From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Philipp Stephani Newsgroups: gmane.emacs.devel Subject: Re: Character literals for Unicode (control) characters Date: Sun, 20 Mar 2016 13:25:55 +0000 Message-ID: References: <87r3fsjenn.fsf@gnus.org> <56D8623F.6060806@cs.ucla.edu> <838u1vwqj9.fsf@gnu.org> <56DC7227.10708@cs.ucla.edu> <56DC7F18.8050103@cs.ucla.edu> <83si03v0c3.fsf@gnu.org> <56E7191A.60507@cs.ucla.edu> <56EE9E76.1090002@cs.ucla.edu> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a114080c022b0cb052e7aec36 X-Trace: ger.gmane.org 1458480396 21387 80.91.229.3 (20 Mar 2016 13:26:36 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 20 Mar 2016 13:26:36 +0000 (UTC) Cc: larsi@gnus.org, johnw@gnu.org, emacs-devel@gnu.org To: Paul Eggert , Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Mar 20 14:26:32 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ahdNH-0005nP-GG for ged-emacs-devel@m.gmane.org; Sun, 20 Mar 2016 14:26:31 +0100 Original-Received: from localhost ([::1]:52949 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ahdNG-00025A-Dc for ged-emacs-devel@m.gmane.org; Sun, 20 Mar 2016 09:26:30 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55705) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ahdMu-0001sl-Fi for emacs-devel@gnu.org; Sun, 20 Mar 2016 09:26:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ahdMt-0002Y8-Gf for emacs-devel@gnu.org; Sun, 20 Mar 2016 09:26:08 -0400 Original-Received: from mail-lf0-x234.google.com ([2a00:1450:4010:c07::234]:34518) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ahdMs-0002Y3-UQ; Sun, 20 Mar 2016 09:26:07 -0400 Original-Received: by mail-lf0-x234.google.com with SMTP id e196so17133930lfg.1; Sun, 20 Mar 2016 06:26:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=kMNjROTzeE4mjKKxIdF3Qy7ZOfFgtJzxJaeWesupBf0=; b=Co2NfpGEt2fAD7rKOdQ535dhS+86IWRiA8vIzRNpzfYBfGA2BDAUT6EAvkFZ3eZB0s b1vF3zVXK5jlMZ8jW7Ge+VeOzJRNMgHxaOPO6vDbkr2IdqTpLhtaXiWlyFymWEvRt774 xBPmH5HAxIjD2zFG+fjkr8a7MBZxNDldVzBRewH0tc5jStn+NrUsIVTeJ7w5dczGAU9l VojR8+Ph7u+uHHpKMzoFkG6TNVbH9/rCq9sqYmW8WliaD8kKQKKSL7SCRND116n8wwcj g+J1dJpikFA12wydft2q29Z2L5Btv2WAGA9P/uaBYf+axoStdoJHQegzoIHMFpszmz7p GaGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=kMNjROTzeE4mjKKxIdF3Qy7ZOfFgtJzxJaeWesupBf0=; b=nAC+zIfWz0QjMEZUzeHCPKuvTlQMLMdujfny65IfBJ8dCpxFbqdv2YqH0ydoJQZpq5 /5ZSOYZsk33g4NsmZYkdQp4tdpunZEv6H5nSxNxgOKBsyzQp2s0JaSzS64daBSzU5rZF c9DeeOiyK3PhZztdG/czrM7/X4gIUXJRc4RpHq7A01lN0YesEgDrZxsZSuA1ftli2JLY kiitXQzSr38KM72txKiJbpIiaq5xzp8kTN7Q7OrWcT0F7Ry/jsObXn1qOIJyNGLYRe1b y2wC+Q450Pc5R2tb8g5CQnDdf6VsZDvfsIpRtsxclTaubBkxCj+/ki2apRSp1yP1ezZO hSwQ== X-Gm-Message-State: AD7BkJJO3NRLd3/XeEcbHsBUYVxQmuH/XjjlHTcFnMwiuKSo6Jzjh46y0Vlv7HO1RcorBLHDcO28Mt2nOsTLiw== X-Received: by 10.25.81.144 with SMTP id f138mr9240378lfb.146.1458480365974; Sun, 20 Mar 2016 06:26:05 -0700 (PDT) In-Reply-To: <56EE9E76.1090002@cs.ucla.edu> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2a00:1450:4010:c07::234 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:201928 Archived-At: --001a114080c022b0cb052e7aec36 Content-Type: multipart/alternative; boundary=001a114080c022b0c5052e7aec34 --001a114080c022b0c5052e7aec34 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Paul Eggert schrieb am So., 20. M=C3=A4rz 2016 um 13:5= 8 Uhr: > Thanks, one thing I didn't notice earlier: > > + xsignal1 (Qinvalid_read_syntax, > + CALLN (Fformat, build_pure_c_string ("\\N{%s}"), name)); > > This can run Emacs out of pure space unnecessarily. Use AUTO_STRING > instead of > build_pure_c_string. > > Also, I've lost track of what this patch is building on. Perhaps send all > the > patches next time.... > Done. Attached all patches. --001a114080c022b0c5052e7aec34 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


Paul E= ggert <eggert@cs.ucla.edu> = schrieb am So., 20. M=C3=A4rz 2016 um 13:58=C2=A0Uhr:
Thanks, one thing I didn't notice earlier:

+=C2=A0 xsignal1 (Qinvalid_read_syntax,
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 CALLN (Fformat, build_pure_c_str= ing ("\\N{%s}"), name));

This can run Emacs out of pure space unnecessarily.=C2=A0 Use AUTO_STRING i= nstead of
build_pure_c_string.

Also, I've lost track of what this patch is building on. Perhaps send a= ll the
patches next time....

Done. Attached al= l patches.=C2=A0
--001a114080c022b0c5052e7aec34-- --001a114080c022b0cb052e7aec36 Content-Type: application/octet-stream; name="0003-Minor-cleanups-for-character-name-escapes.patch" Content-Disposition: attachment; filename="0003-Minor-cleanups-for-character-name-escapes.patch" Content-Transfer-Encoding: base64 Content-ID: <1539433ff9211d10e3> X-Attachment-Id: 1539433ff9211d10e3 RnJvbSAzMGU2ZDlkZDRlODNhMzZmZTA3YmJlYWU2NzhiM2YwODY3NzMzNDZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwIFN0ZXBoYW5pIDxwaHN0QGdvb2dsZS5jb20+CkRh dGU6IFN1biwgNiBNYXIgMjAxNiAxOToyNzoyMSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMy80XSBN aW5vciBjbGVhbnVwcyBmb3IgY2hhcmFjdGVyIG5hbWUgZXNjYXBlcy4KCiogbHJlYWQuYyAoaW5p dF9jaGFyYWN0ZXJfbmFtZXMpOiBBZGQgbWlzc2luZyBgdm9pZCcuICBSZW1vdmUKdG9wLWxldmVs IGBjb25zdCcuCihyZWFkX2VzY2FwZSk6IFNpbXBsaWZ5IGxvb3AgYSBiaXQuICBSZW1vdmUgdG9w LWxldmVsIGBjb25zdCcuCi0tLQogc3JjL2xyZWFkLmMgfCAyNyArKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmMvbHJlYWQuYyBiL3NyYy9scmVhZC5jCmluZGV4IDZlODRmYzgu LjQwMDA2MzcgMTAwNjQ0Ci0tLSBhL3NyYy9scmVhZC5jCisrKyBiL3NyYy9scmVhZC5jCkBAIC0y MTU5LDIwICsyMTU5LDIwIEBAIHN0YXRpYyBwdHJkaWZmX3QgbWF4X2NoYXJhY3Rlcl9uYW1lX2xl bmd0aDsKIAogLyogSW5pdGlhbGl6ZXMgYGNoYXJhY3Rlcl9uYW1lcycgYW5kIGBtYXhfY2hhcmFj dGVyX25hbWVfbGVuZ3RoJy4KICAgIENhbGxlZCBieSBgcmVhZF9lc2NhcGUnLiAgKi8KLXZvaWQg aW5pdF9jaGFyYWN0ZXJfbmFtZXMgKCkKK3ZvaWQgaW5pdF9jaGFyYWN0ZXJfbmFtZXMgKHZvaWQp CiB7CiAgIGNoYXJhY3Rlcl9uYW1lcyA9IENBTExOIChGbWFrZV9oYXNoX3RhYmxlLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUUN0ZXN0LCBRZXF1YWwsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiBDdXJyZW50bHkgYXJvdW5kIDEwMCwwMDAgVW5pY29kZQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2hhcmFjdGVycyBhcmUgZGVmaW5lZC4gICovCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBRQ3NpemUsIG1ha2VfbmF0bnVtICgxMDAwMDApKTsKLSAgY29uc3Qg TGlzcF9PYmplY3QgZ2V0X3Byb3BlcnR5ID0KKyAgTGlzcF9PYmplY3QgZ2V0X3Byb3BlcnR5ID0K ICAgICBGc3ltYm9sX2Z1bmN0aW9uIChpbnRlcm5fY19zdHJpbmcgKCJnZXQtY2hhci1jb2RlLXBy b3BlcnR5IikpOwogICBwdHJkaWZmX3QgbGVuZ3RoID0gMDsKICAgZm9yIChpbnQgaSA9IDA7IGkg PD0gTUFYX1VOSUNPREVfQ0hBUjsgKytpKQogICAgIHsKLSAgICAgIGNvbnN0IExpc3BfT2JqZWN0 IGNvZGUgPSBtYWtlX25hdG51bSAoaSk7Ci0gICAgICBjb25zdCBMaXNwX09iamVjdCBuYW1lID0g Y2FsbDIgKGdldF9wcm9wZXJ0eSwgY29kZSwgUW5hbWUpOworICAgICAgTGlzcF9PYmplY3QgY29k ZSA9IG1ha2VfbmF0bnVtIChpKTsKKyAgICAgIExpc3BfT2JqZWN0IG5hbWUgPSBjYWxsMiAoZ2V0 X3Byb3BlcnR5LCBjb2RlLCBRbmFtZSk7CiAgICAgICBpZiAoTklMUCAobmFtZSkpIGNvbnRpbnVl OwogICAgICAgQ0hFQ0tfU1RSSU5HIChuYW1lKTsKICAgICAgIGxlbmd0aCA9IG1heCAobGVuZ3Ro LCBTQllURVMgKG5hbWUpKTsKQEAgLTI0MTgsMjUgKzI0MTgsMjIgQEAgcmVhZF9lc2NhcGUgKExp c3BfT2JqZWN0IHJlYWRjaGFyZnVuLCBib29sIHN0cmluZ3ApCiAgICAgICAgICAgICAgICBjaGFy YWN0ZXIgbmFtZXMgaW4gZS5nLiBtdWx0aS1saW5lIHN0cmluZ3MuICAqLwogICAgICAgICAgICAg aWYgKGNfaXNzcGFjZSAoYykpCiAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAo ISB3aGl0ZXNwYWNlKQotICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICB3 aGl0ZXNwYWNlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgbmFtZVtsZW5ndGgrK10gPSAn ICc7Ci0gICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHdoaXRlc3BhY2Up CisgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBjID0gJyAnOwor ICAgICAgICAgICAgICAgIHdoaXRlc3BhY2UgPSB0cnVlOwogICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB3aGl0ZXNwYWNl ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgbmFtZVtsZW5ndGgrK10gPSBjOwotICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgIHdoaXRlc3BhY2UgPSBmYWxzZTsKKyAgICAgICAgICAgIG5h bWVbbGVuZ3RoKytdID0gYzsKICAgICAgICAgICAgIGlmIChsZW5ndGggPj0gbWF4X2NoYXJhY3Rl cl9uYW1lX2xlbmd0aCkKICAgICAgICAgICAgICAgaW52YWxpZF9zeW50YXggKCJDaGFyYWN0ZXIg bmFtZSB0b28gbG9uZyIpOwogICAgICAgICAgIH0KICAgICAgICAgaWYgKGxlbmd0aCA9PSAwKQog ICAgICAgICAgIGludmFsaWRfc3ludGF4ICgiRW1wdHkgY2hhcmFjdGVyIG5hbWUiKTsKICAgICAg ICAgbmFtZVtsZW5ndGhdID0gMDsKLSAgICAgICAgY29uc3QgTGlzcF9PYmplY3QgbGlzcF9uYW1l ID0gbWFrZV91bmlieXRlX3N0cmluZyAobmFtZSwgbGVuZ3RoKTsKLSAgICAgICAgY29uc3QgTGlz cF9PYmplY3QgY29kZSA9CisgICAgICAgIExpc3BfT2JqZWN0IGxpc3BfbmFtZSA9IG1ha2VfdW5p Ynl0ZV9zdHJpbmcgKG5hbWUsIGxlbmd0aCk7CisgICAgICAgIExpc3BfT2JqZWN0IGNvZGUgPQog ICAgICAgICAgIChsZW5ndGggPj0gMyAmJiBsZW5ndGggPD0gMTAgJiYgbmFtZVswXSA9PSAnVScg JiYgbmFtZVsxXSA9PSAnKycpID8KICAgICAgICAgICAvKiBDb2RlIHBvaW50IGFzIFUrTiwgd2hl cmUgTiBpcyBiZXR3ZWVuIDEgYW5kIDggaGV4YWRlY2ltYWwKICAgICAgICAgICAgICBkaWdpdHMu ICAqLwotLSAKMi43LjAKCg== --001a114080c022b0cb052e7aec36 Content-Type: application/octet-stream; name="0001-Implement-named-character-escapes-similar-to-Perl.patch" Content-Disposition: attachment; filename="0001-Implement-named-character-escapes-similar-to-Perl.patch" Content-Transfer-Encoding: base64 Content-ID: <1539433ff77797e18101> X-Attachment-Id: 1539433ff77797e18101 RnJvbSAyMmUyOTljZDIzYTcyYTA3MjQ2MWJlZmEzMGEwNGJmNTU3YWVjYWM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwIFN0ZXBoYW5pIDxwaHN0QGdvb2dsZS5jb20+CkRh dGU6IFN1biwgNiBNYXIgMjAxNiAxNjoxNjoyOSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMS80XSBJ bXBsZW1lbnQgbmFtZWQgY2hhcmFjdGVyIGVzY2FwZXMsIHNpbWlsYXIgdG8gUGVybAoKKiBscmVh ZC5jIChpbml0X2NoYXJhY3Rlcl9uYW1lcyk6IE5ldyBmdW5jdGlvbi4KKHJlYWRfZXNjYXBlKTog UmVhZCBQZXJsLXN0eWxlIG5hbWVkIGNoYXJhY3RlciBlc2NhcGUgc2VxdWVuY2VzLgooc3ltc19v Zl9scmVhZCk6IEluaXRpYWxpemUgbmV3IHZhcmlhYmxlIGBjaGFyYWN0ZXJfbmFtZXMnLgoqIHRl c3Qvc3JjL2xyZWFkLXRlc3RzLmVsIChscmVhZC1jaGFyLWVtcHR5LW5hbWUpOiBBZGQgdGVzdCBm aWxlCmZvciBzcmMvbHJlYWQuYy4KLS0tCiBzcmMvbHJlYWQuYyAgICAgICAgICAgICB8IDk2ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRlc3Qvc3Jj L2xyZWFkLXRlc3RzLmVsIHwgNTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxl cyBjaGFuZ2VkLCAxNTAgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3Qvc3Jj L2xyZWFkLXRlc3RzLmVsCgpkaWZmIC0tZ2l0IGEvc3JjL2xyZWFkLmMgYi9zcmMvbHJlYWQuYwpp bmRleCAyNWUzZmYwLi42ZTg0ZmM4IDEwMDY0NAotLS0gYS9zcmMvbHJlYWQuYworKysgYi9zcmMv bHJlYWQuYwpAQCAtNDMsNiArNDMsNyBAQCBhbG9uZyB3aXRoIEdOVSBFbWFjcy4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCiAjaW5jbHVkZSAic3lzdGlt ZS5oIgogI2luY2x1ZGUgInRlcm1ob29rcy5oIgogI2luY2x1ZGUgImJsb2NraW5wdXQuaCIKKyNp bmNsdWRlIDxjLWN0eXBlLmg+CiAKICNpZmRlZiBNU0RPUwogI2luY2x1ZGUgIm1zZG9zLmgiCkBA IC0yMTUwLDYgKzIxNTEsMzYgQEAgZ3Jvd19yZWFkX2J1ZmZlciAodm9pZCkKIAkJCSBNQVhfTVVM VElCWVRFX0xFTkdUSCwgLTEsIDEpOwogfQogCisvKiBIYXNoIHRhYmxlIHRoYXQgbWFwcyBVbmlj b2RlIGNoYXJhY3RlciBuYW1lcyB0byBjb2RlIHBvaW50cy4gICovCitzdGF0aWMgTGlzcF9PYmpl Y3QgY2hhcmFjdGVyX25hbWVzOworCisvKiBMZW5ndGggb2YgdGhlIGxvbmdlc3QgVW5pY29kZSBj aGFyYWN0ZXIgbmFtZSwgaW4gYnl0ZXMuICovCitzdGF0aWMgcHRyZGlmZl90IG1heF9jaGFyYWN0 ZXJfbmFtZV9sZW5ndGg7CisKKy8qIEluaXRpYWxpemVzIGBjaGFyYWN0ZXJfbmFtZXMnIGFuZCBg bWF4X2NoYXJhY3Rlcl9uYW1lX2xlbmd0aCcuCisgICBDYWxsZWQgYnkgYHJlYWRfZXNjYXBlJy4g ICovCit2b2lkIGluaXRfY2hhcmFjdGVyX25hbWVzICgpCit7CisgIGNoYXJhY3Rlcl9uYW1lcyA9 IENBTExOIChGbWFrZV9oYXNoX3RhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUUN0 ZXN0LCBRZXF1YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDdXJyZW50bHkgYXJv dW5kIDEwMCwwMDAgVW5pY29kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcmFj dGVycyBhcmUgZGVmaW5lZC4gICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICBRQ3NpemUs IG1ha2VfbmF0bnVtICgxMDAwMDApKTsKKyAgY29uc3QgTGlzcF9PYmplY3QgZ2V0X3Byb3BlcnR5 ID0KKyAgICBGc3ltYm9sX2Z1bmN0aW9uIChpbnRlcm5fY19zdHJpbmcgKCJnZXQtY2hhci1jb2Rl LXByb3BlcnR5IikpOworICBwdHJkaWZmX3QgbGVuZ3RoID0gMDsKKyAgZm9yIChpbnQgaSA9IDA7 IGkgPD0gTUFYX1VOSUNPREVfQ0hBUjsgKytpKQorICAgIHsKKyAgICAgIGNvbnN0IExpc3BfT2Jq ZWN0IGNvZGUgPSBtYWtlX25hdG51bSAoaSk7CisgICAgICBjb25zdCBMaXNwX09iamVjdCBuYW1l ID0gY2FsbDIgKGdldF9wcm9wZXJ0eSwgY29kZSwgUW5hbWUpOworICAgICAgaWYgKE5JTFAgKG5h bWUpKSBjb250aW51ZTsKKyAgICAgIENIRUNLX1NUUklORyAobmFtZSk7CisgICAgICBsZW5ndGgg PSBtYXggKGxlbmd0aCwgU0JZVEVTIChuYW1lKSk7CisgICAgICBGcHV0aGFzaCAobmFtZSwgY29k ZSwgY2hhcmFjdGVyX25hbWVzKTsKKyAgICB9CisgIG1heF9jaGFyYWN0ZXJfbmFtZV9sZW5ndGgg PSBsZW5ndGg7Cit9CisKIC8qIFJlYWQgYSBcLWVzY2FwZSBzZXF1ZW5jZSwgYXNzdW1pbmcgd2Ug YWxyZWFkeSByZWFkIHRoZSBgXCcuCiAgICBJZiB0aGUgZXNjYXBlIHNlcXVlbmNlIGZvcmNlcyB1 bmlieXRlLCByZXR1cm4gZWlnaHQtYml0IGNoYXIuICAqLwogCkBAIC0yMzU3LDYgKzIzODgsNjgg QEAgcmVhZF9lc2NhcGUgKExpc3BfT2JqZWN0IHJlYWRjaGFyZnVuLCBib29sIHN0cmluZ3ApCiAJ cmV0dXJuIGk7CiAgICAgICB9CiAKKyAgICBjYXNlICdOJzoKKyAgICAgIC8qIE5hbWVkIGNoYXJh Y3Rlci4gICovCisgICAgICB7CisgICAgICAgIGMgPSBSRUFEQ0hBUjsKKyAgICAgICAgaWYgKGMg IT0gJ3snKQorICAgICAgICAgIGludmFsaWRfc3ludGF4ICgiRXhwZWN0ZWQgb3BlbmluZyBicmFj ZSBhZnRlciBcXE4iKTsKKyAgICAgICAgaWYgKE5JTFAgKGNoYXJhY3Rlcl9uYW1lcykpCisgICAg ICAgICAgaW5pdF9jaGFyYWN0ZXJfbmFtZXMgKCk7CisgICAgICAgIFVTRV9TQUZFX0FMTE9DQTsK KyAgICAgICAgY2hhciAqbmFtZSA9IFNBRkVfQUxMT0NBIChtYXhfY2hhcmFjdGVyX25hbWVfbGVu Z3RoICsgMSk7CisgICAgICAgIGJvb2wgd2hpdGVzcGFjZSA9IGZhbHNlOworICAgICAgICBwdHJk aWZmX3QgbGVuZ3RoID0gMDsKKyAgICAgICAgd2hpbGUgKHRydWUpCisgICAgICAgICAgeworICAg ICAgICAgICAgYyA9IFJFQURDSEFSOworICAgICAgICAgICAgaWYgKGMgPCAwKQorICAgICAgICAg ICAgICBlbmRfb2ZfZmlsZV9lcnJvciAoKTsKKyAgICAgICAgICAgIGlmIChjID09ICd9JykKKyAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBpZiAoISBjX2lzYXNjaWkgKGMpKQorICAg ICAgICAgICAgICB4c2lnbmFsMSAoUWludmFsaWRfcmVhZF9zeW50YXgsCisgICAgICAgICAgICAg ICAgICAgICAgICBDQUxMTiAoRmZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBidWlsZF9wdXJlX2Nfc3RyaW5nICgiTm9uLUFTQ0lJIGNoYXJhY3RlciBVKyUwNFgiCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBpbiBjaGFy YWN0ZXIgbmFtZSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ha2VfbmF0bnVt IChjKSkpOworICAgICAgICAgICAgLyogV2UgdHJlYXQgbXVsdGlwbGUgYWRqYWNlbnQgd2hpdGVz cGFjZSBjaGFyYWN0ZXJzIGFzIGEKKyAgICAgICAgICAgICAgIHNpbmdsZSBzcGFjZSBjaGFyYWN0 ZXIuICBUaGlzIG1ha2VzIGl0IGVhc2llciB0byB1c2UKKyAgICAgICAgICAgICAgIGNoYXJhY3Rl ciBuYW1lcyBpbiBlLmcuIG11bHRpLWxpbmUgc3RyaW5ncy4gICovCisgICAgICAgICAgICBpZiAo Y19pc3NwYWNlIChjKSkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICghIHdo aXRlc3BhY2UpCisgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHdoaXRl c3BhY2UgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBuYW1lW2xlbmd0aCsrXSA9ICcgJzsK KyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQor ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgd2hpdGVzcGFjZSA9IGZhbHNlOworICAg ICAgICAgICAgICAgIG5hbWVbbGVuZ3RoKytdID0gYzsKKyAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgaWYgKGxlbmd0aCA+PSBtYXhfY2hhcmFjdGVyX25hbWVfbGVuZ3RoKQorICAgICAgICAg ICAgICBpbnZhbGlkX3N5bnRheCAoIkNoYXJhY3RlciBuYW1lIHRvbyBsb25nIik7CisgICAgICAg ICAgfQorICAgICAgICBpZiAobGVuZ3RoID09IDApCisgICAgICAgICAgaW52YWxpZF9zeW50YXgg KCJFbXB0eSBjaGFyYWN0ZXIgbmFtZSIpOworICAgICAgICBuYW1lW2xlbmd0aF0gPSAwOworICAg ICAgICBjb25zdCBMaXNwX09iamVjdCBsaXNwX25hbWUgPSBtYWtlX3VuaWJ5dGVfc3RyaW5nIChu YW1lLCBsZW5ndGgpOworICAgICAgICBjb25zdCBMaXNwX09iamVjdCBjb2RlID0KKyAgICAgICAg ICAobGVuZ3RoID49IDMgJiYgbGVuZ3RoIDw9IDEwICYmIG5hbWVbMF0gPT0gJ1UnICYmIG5hbWVb MV0gPT0gJysnKSA/CisgICAgICAgICAgLyogQ29kZSBwb2ludCBhcyBVK04sIHdoZXJlIE4gaXMg YmV0d2VlbiAxIGFuZCA4IGhleGFkZWNpbWFsCisgICAgICAgICAgICAgZGlnaXRzLiAgKi8KKyAg ICAgICAgICBzdHJpbmdfdG9fbnVtYmVyIChuYW1lICsgMiwgMTYsIGZhbHNlKSA6CisgICAgICAg ICAgRmdldGhhc2ggKGxpc3BfbmFtZSwgY2hhcmFjdGVyX25hbWVzLCBRbmlsKTsKKyAgICAgICAg U0FGRV9GUkVFICgpOworICAgICAgICBpZiAoISBSQU5HRURfSU5URUdFUlAgKDAsIGNvZGUsIE1B WF9VTklDT0RFX0NIQVIpKQorICAgICAgICAgIHhzaWduYWwxIChRaW52YWxpZF9yZWFkX3N5bnRh eCwKKyAgICAgICAgICAgICAgICAgICAgQ0FMTE4gKEZmb3JtYXQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICBidWlsZF9wdXJlX2Nfc3RyaW5nICgiXFxOeyVzfSIpLCBsaXNwX25hbWUpKTsK KyAgICAgICAgcmV0dXJuIFhJTlQgKGNvZGUpOworICAgICAgfQorCiAgICAgZGVmYXVsdDoKICAg ICAgIHJldHVybiBjOwogICAgIH0KQEAgLTQ3NDUsNCArNDgzOCw3IEBAIHRoYXQgYXJlIGxvYWRl ZCBiZWZvcmUgeW91ciBjdXN0b21pemF0aW9ucyBhcmUgcmVhZCEgICovKTsKICAgREVGU1lNIChR d2Vha25lc3MsICJ3ZWFrbmVzcyIpOwogICBERUZTWU0gKFFyZWhhc2hfc2l6ZSwgInJlaGFzaC1z aXplIik7CiAgIERFRlNZTSAoUXJlaGFzaF90aHJlc2hvbGQsICJyZWhhc2gtdGhyZXNob2xkIik7 CisKKyAgY2hhcmFjdGVyX25hbWVzID0gUW5pbDsKKyAgc3RhdGljcHJvICgmY2hhcmFjdGVyX25h bWVzKTsKIH0KZGlmZiAtLWdpdCBhL3Rlc3Qvc3JjL2xyZWFkLXRlc3RzLmVsIGIvdGVzdC9zcmMv bHJlYWQtdGVzdHMuZWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWY4NzMz NAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3Qvc3JjL2xyZWFkLXRlc3RzLmVsCkBAIC0wLDAgKzEs NTQgQEAKKzs7OyBscmVhZC10ZXN0cy5lbCAtLS0gdGVzdHMgZm9yIGxyZWFkLmMgLSotIGxleGlj YWwtYmluZGluZzogdDsgLSotCisKKzs7IENvcHlyaWdodCAoQykgMjAxNiAgR29vZ2xlIEluYy4K KworOzsgQXV0aG9yOiBQaGlsaXBwIFN0ZXBoYW5pIDxwaHN0QGdvb2dsZS5jb20+CisKKzs7IFRo aXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBFbWFjcy4KKworOzsgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKzs7IGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5Cis7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcgorOzsgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKworOzsgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCis7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorOzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorOzsgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworOzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKzs7IGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LgorCis7OzsgQ29tbWVudGFyeToKKworOzsgVW5pdCB0ZXN0cyBmb3IgY29kZSBpbiBzcmMvbHJl YWQuYy4KKworOzs7IENvZGU6CisKKyhlcnQtZGVmdGVzdCBscmVhZC1jaGFyLW51bWJlciAoKQor ICAoc2hvdWxkIChlcXVhbCA/XE57VStBODE3fSAjeEE4MTcpKSkKKworKGVydC1kZWZ0ZXN0IGxy ZWFkLWNoYXItbmFtZSAoKQorICAoc2hvdWxkIChlcXVhbCA/XE57U1lMT1RJICBOQUdSSSBMRVRU RVIKKyAgICAgICAgICAgICAgICAgREhPfQorICAgICAgICAgICAgICAgICAjeEE4MTcpKSkKKwor KGVydC1kZWZ0ZXN0IGxyZWFkLWNoYXItaW52YWxpZC1udW1iZXIgKCkKKyAgKHNob3VsZC1lcnJv ciAocmVhZCAiP1xcTntVKzExMDAwMH0iKSA6dHlwZSAnaW52YWxpZC1yZWFkLXN5bnRheCkpCisK KyhlcnQtZGVmdGVzdCBscmVhZC1jaGFyLWludmFsaWQtbmFtZSAoKQorICAoc2hvdWxkLWVycm9y IChyZWFkICI/XFxOe0RPRVMgTk9UIEVYSVNUfSIpKSA6dHlwZSAnaW52YWxpZC1yZWFkLXN5bnRh eCkKKworKGVydC1kZWZ0ZXN0IGxyZWFkLWNoYXItbm9uLWFzY2lpLW5hbWUgKCkKKyAgKHNob3Vs ZC1lcnJvciAocmVhZCAiP1xcTntMQVRJTiBDQVBJVEFMIExFVFRFUiDDmH0iKSkgJ2ludmFsaWQt cmVhZC1zeW50YXgpCisKKyhlcnQtZGVmdGVzdCBscmVhZC1jaGFyLWVtcHR5LW5hbWUgKCkKKyAg KHNob3VsZC1lcnJvciAocmVhZCAiP1xcTnt9IikpICdpbnZhbGlkLXJlYWQtc3ludGF4KQorCiso ZXJ0LWRlZnRlc3QgbHJlYWQtc3RyaW5nLWNoYXItbnVtYmVyICgpCisgIChzaG91bGQgKGVxdWFs ICJhXE57VStBODE3fWIiICJhXHVBODE3YiIpKSkKKworKGVydC1kZWZ0ZXN0IGxyZWFkLXN0cmlu Zy1jaGFyLW5hbWUgKCkKKyAgKHNob3VsZCAoZXF1YWwgImFcTntTWUxPVEkgTkFHUkkgIExFVFRF UiBESE99YiIgImFcdUE4MTdiIikpKQorCis7OzsgbHJlYWQtdGVzdHMuZWwgZW5kcyBoZXJlCi0t IAoyLjcuMAoK --001a114080c022b0cb052e7aec36 Content-Type: application/octet-stream; name="0002-Add-documentation-for-character-name-escapes.patch" Content-Disposition: attachment; filename="0002-Add-documentation-for-character-name-escapes.patch" Content-Transfer-Encoding: base64 Content-ID: <1539433ff88bc4c427c2> X-Attachment-Id: 1539433ff88bc4c427c2 RnJvbSBkMGQ1MjE5YTM1OGEyZDhlODUzZjFjZTExY2YxNmZiMjYyOTY5N2M2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwIFN0ZXBoYW5pIDxwaHN0QGdvb2dsZS5jb20+CkRh dGU6IFN1biwgNiBNYXIgMjAxNiAxOTowNzowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMi80XSBB ZGQgZG9jdW1lbnRhdGlvbiBmb3IgY2hhcmFjdGVyIG5hbWUgZXNjYXBlcwoKLS0tCiBkb2MvbGlz cHJlZi9ub25hc2NpaS50ZXhpIHwgIDIgKy0KIGRvYy9saXNwcmVmL29iamVjdHMudGV4aSAgfCAx MCArKysrKysrKysrCiBldGMvTkVXUyAgICAgICAgICAgICAgICAgIHwgIDUgKysrKysKIDMgZmls ZXMgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L2RvYy9saXNwcmVmL25vbmFzY2lpLnRleGkgYi9kb2MvbGlzcHJlZi9ub25hc2NpaS50ZXhpCmlu ZGV4IDljZjNiNTcuLjY2YWQ5YWMgMTAwNjQ0Ci0tLSBhL2RvYy9saXNwcmVmL25vbmFzY2lpLnRl eGkKKysrIGIvZG9jL2xpc3ByZWYvbm9uYXNjaWkudGV4aQpAQCAtNjMzLDcgKzYzMyw3IEBAIENo YXJhY3RlciBQcm9wZXJ0aWVzCiBAZW5kIGdyb3VwCiBAZ3JvdXAKIDs7IFUrMjE2MyBST01BTiBO VU1FUkFMIEZPVVIKLShnZXQtY2hhci1jb2RlLXByb3BlcnR5ID9cdTIxNjMgJ251bWVyaWMtdmFs dWUpCisoZ2V0LWNoYXItY29kZS1wcm9wZXJ0eSA/XE5Ae1JPTUFOIE5VTUVSQUwgRk9VUkB9ICdu dW1lcmljLXZhbHVlKQogICAgICBAcmVzdWx0e30gNAogQGVuZCBncm91cAogQGdyb3VwCmRpZmYg LS1naXQgYS9kb2MvbGlzcHJlZi9vYmplY3RzLnRleGkgYi9kb2MvbGlzcHJlZi9vYmplY3RzLnRl eGkKaW5kZXggMzI0NTkzMC4uOTZiMzM0ZCAxMDA2NDQKLS0tIGEvZG9jL2xpc3ByZWYvb2JqZWN0 cy50ZXhpCisrKyBiL2RvYy9saXNwcmVmL29iamVjdHMudGV4aQpAQCAtMzg3LDYgKzM4NywxNiBA QCBHZW5lcmFsIEVzY2FwZSBTeW50YXgKIGZvciB0aGUgY2hhcmFjdGVyIEBrYmR7Qy1ifS4gIE9u bHkgY2hhcmFjdGVycyB1cCB0byBvY3RhbCBjb2RlIDc3NyBjYW4KIGJlIHNwZWNpZmllZCB0aGlz IHdheS4KIAorICBGb3VydGhseSwgeW91IGNhbiBzcGVjaWZ5IGNoYXJhY3RlcnMgYnkgdGhlaXIg bmFtZS4gIEEgY2hhcmFjdGVyCituYW1lIGVzY2FwZSBzZXF1ZW5jZSBjb25zaXN0cyBvZiBhIGJh Y2tzbGFzaCwgQHNhbXB7TkB7fSwgdGhlIFVuaWNvZGUKK2NoYXJhY3RlciBuYW1lLCBhbmQgQHNh bXB7QH19LiAgQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBhbHNvIHB1dCB0aGUKK251bWVyaWMgY29k ZSBwb2ludCB2YWx1ZSBiZXR3ZWVuIHRoZSBicmFjZXMsIHVzaW5nIHRoZSBzeW50YXgKK0BzYW1w e1xOQHtVK25ubm5AfX0sIHdoZXJlIEBzYW1we25ubm59IGRlbm90ZXMgYmV0d2VlbiBvbmUgYW5k IGVpZ2h0CitoZXhhZGVjaW1hbCBkaWdpdHMuICBUaHVzLCBAc2FtcHs/XE5Ae0xBVElOIENBUElU QUwgTEVUVEVSIEFAfX0gYW5kCitAc2FtcHs/XE5Ae1UrNDFAfX0gYm90aCBkZW5vdGUgdGhlIGNo YXJhY3RlciBAa2Jke0F9LiAgVG8gc2ltcGxpZnkKK2VudGVyaW5nIG11bHRpLWxpbmUgc3RyaW5n cywgeW91IGNhbiByZXBsYWNlIHNwYWNlcyBpbiB0aGUgY2hhcmFjdGVyCituYW1lcyBieSBhcmJp dHJhcnkgbm9uLWVtcHR5IHNlcXVlbmNlIG9mIHdoaXRlc3BhY2UgKGUuZy4sIG5ld2xpbmVzKS4K KwogICBUaGVzZSBlc2NhcGUgc2VxdWVuY2VzIG1heSBhbHNvIGJlIHVzZWQgaW4gc3RyaW5ncy4g IEB4cmVme05vbi1BU0NJSQogaW4gU3RyaW5nc30uCiAKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIv ZXRjL05FV1MKaW5kZXggOTJkNjlkMi4uOWM3NzQ3NCAxMDA2NDQKLS0tIGEvZXRjL05FV1MKKysr IGIvZXRjL05FV1MKQEAgLTE1OSw2ICsxNTksMTEgQEAgdGhhdCBuZWdvdGlhdGlvbiBzaG91bGQg Y29tcGxldGUgZXZlbiBvbiBub24tYmxvY2tpbmcgc29ja2V0cy4KIGB3aW5kb3ctcGl4ZWwtaGVp Z2h0LWJlZm9yZS1zaXplLWNoYW5nZScgYWxsb3cgdG8gZGV0ZWN0IHdoaWNoIHdpbmRvdwogY2hh bmdlZCBzaXplIHdoZW4gYHdpbmRvdy1zaXplLWNoYW5nZS1mdW5jdGlvbnMnIGFyZSBydW4uCiAK KysrKworKiogRW1hY3Mgbm93IHN1cHBvcnRzIGNoYXJhY3RlciBuYW1lIGVzY2FwZSBzZXF1ZW5j ZXMgaW4gY2hhcmFjdGVyIGFuZAorc3RyaW5nIGxpdGVyYWxzLiAgVGhlIHN5bnRheCB2YXJpYW50 cyBcTntjaGFyYWN0ZXIgbmFtZX0gYW5kCitcTntVK2NvZGV9IGFyZSBzdXBwb3J0ZWQuCisKIAwK ICogQ2hhbmdlcyBpbiBFbWFjcyAyNS4yIG9uIE5vbi1GcmVlIE9wZXJhdGluZyBTeXN0ZW1zCiAK LS0gCjIuNy4wCgo= --001a114080c022b0cb052e7aec36 Content-Type: application/octet-stream; name="0004-Use-ucs-names-for-character-name-escapes.patch" Content-Disposition: attachment; filename="0004-Use-ucs-names-for-character-name-escapes.patch" Content-Transfer-Encoding: base64 Content-ID: <1539433ff9ed080216e4> X-Attachment-Id: 1539433ff9ed080216e4 RnJvbSAxNzNlYjhiMzhiNGI0OTVhNDZiY2EwMjc3OWFlNTkwMTMwMzI4MTc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwIFN0ZXBoYW5pIDxwaHN0QGdvb2dsZS5jb20+CkRh dGU6IFN1biwgMTMgTWFyIDIwMTYgMjE6Mjc6MzAgKzAxMDAKU3ViamVjdDogW1BBVENIIDQvNF0g VXNlIGB1Y3MtbmFtZXMnIGZvciBjaGFyYWN0ZXIgbmFtZSBlc2NhcGVzCgoqIGxyZWFkLmMgKGlu dmFsaWRfY2hhcmFjdGVyX25hbWUsIGNoZWNrX3NjYWxhcl92YWx1ZSkKKHBhcnNlX2NvZGVfYWZ0 ZXJfcHJlZml4LCBjaGFyYWN0ZXJfbmFtZV90b19jb2RlKTogTmV3IGhlbHBlcgpmdW5jdGlvbnMg dGhhdCB1c2UgYHVjcy1uYW1lcycgYW5kIHBhcnNpbmcgZm9yIENKSyBpZGVvZ3JhcGhzLgoocmVh ZF9lc2NhcGUpOiBVc2UgaGVscGVyIGZ1bmN0aW9ucy4KKHN5bXNfb2ZfbHJlYWQpOiBOZXcgc3lt Ym9sIGB1Y3MtbmFtZXMnLgoqIHRlc3Qvc3JjL2xyZWFkLXRlc3RzLmVsOiBOZXcgdGVzdHM7IGZp eCBhIGNvdXBsZSBvZiBidWdzIGluCmV4aXN0aW5nIHRlc3RzLgotLS0KIHNyYy9scmVhZC5jICAg ICAgICAgICAgIHwgMTI2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLQogdGVzdC9zcmMvbHJlYWQtdGVzdHMuZWwgfCAgMTEgKysrKy0KIDIgZmlsZXMgY2hh bmdlZCwgOTEgaW5zZXJ0aW9ucygrKSwgNDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj L2xyZWFkLmMgYi9zcmMvbHJlYWQuYwppbmRleCA0MDAwNjM3Li5kYzAyM2ViIDEwMDY0NAotLS0g YS9zcmMvbHJlYWQuYworKysgYi9zcmMvbHJlYWQuYwpAQCAtNDQsNiArNDQsNyBAQCBhbG9uZyB3 aXRoIEdOVSBFbWFjcy4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4gICovCiAjaW5jbHVkZSAidGVybWhvb2tzLmgiCiAjaW5jbHVkZSAiYmxvY2tpbnB1dC5oIgog I2luY2x1ZGUgPGMtY3R5cGUuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KIAogI2lmZGVmIE1TRE9T CiAjaW5jbHVkZSAibXNkb3MuaCIKQEAgLTIxNTEsMzYgKzIxNTIsOTAgQEAgZ3Jvd19yZWFkX2J1 ZmZlciAodm9pZCkKIAkJCSBNQVhfTVVMVElCWVRFX0xFTkdUSCwgLTEsIDEpOwogfQogCi0vKiBI YXNoIHRhYmxlIHRoYXQgbWFwcyBVbmljb2RlIGNoYXJhY3RlciBuYW1lcyB0byBjb2RlIHBvaW50 cy4gICovCi1zdGF0aWMgTGlzcF9PYmplY3QgY2hhcmFjdGVyX25hbWVzOworLyogU2lnbmFsIGFu IGludmFsaWQtcmVhZC1zeW50YXggZXJyb3IgaW5kaWNhdGluZyB0aGF0IHRoZSBjaGFyYWN0ZXIK KyAgIG5hbWUgaW4gYW4gXE574oCmfSBsaXRlcmFsIGlzIGludmFsaWQuICAqLworc3RhdGljIF9O b3JldHVybiB2b2lkCitpbnZhbGlkX2NoYXJhY3Rlcl9uYW1lIChMaXNwX09iamVjdCBuYW1lKQor eworICB4c2lnbmFsMSAoUWludmFsaWRfcmVhZF9zeW50YXgsCisgICAgICAgICAgICBDQUxMTiAo RmZvcm1hdCwgYnVpbGRfcHVyZV9jX3N0cmluZyAoIlxcTnslc30iKSwgbmFtZSkpOworfQogCi0v KiBMZW5ndGggb2YgdGhlIGxvbmdlc3QgVW5pY29kZSBjaGFyYWN0ZXIgbmFtZSwgaW4gYnl0ZXMu ICovCi1zdGF0aWMgcHRyZGlmZl90IG1heF9jaGFyYWN0ZXJfbmFtZV9sZW5ndGg7CisvKiBDaGVj ayB0aGF0IENPREUgaXMgYSB2YWxpZCBVbmljb2RlIHNjYWxhciB2YWx1ZSwgYW5kIHJldHVybiBp dHMKKyAgIHZhbHVlLiAgQ09ERSBzaG91bGQgYmUgcGFyc2VkIGZyb20gdGhlIGNoYXJhY3RlciBu YW1lIGdpdmVuIGJ5CisgICBOQU1FLiAgTkFNRSBpcyB1c2VkIGZvciBlcnJvciBtZXNzYWdlcy4g ICovCitzdGF0aWMgaW50CitjaGVja19zY2FsYXJfdmFsdWUgKExpc3BfT2JqZWN0IGNvZGUsIExp c3BfT2JqZWN0IG5hbWUpCit7CisgIGlmICghIE5VTUJFUlAgKGNvZGUpKQorICAgIGludmFsaWRf Y2hhcmFjdGVyX25hbWUgKG5hbWUpOworICBFTUFDU19JTlQgaSA9IFhJTlQgKGNvZGUpOworICBp ZiAoISAoMCA8PSBpICYmIGkgPD0gTUFYX1VOSUNPREVfQ0hBUikKKyAgICAgIC8qIERvbid0IGFs bG93IHN1cnJvZ2F0ZXMuICAqLworICAgICAgfHwgKDB4RDgwMCA8PSBjb2RlICYmIGNvZGUgPD0g MHhERkZGKSkKKyAgICBpbnZhbGlkX2NoYXJhY3Rlcl9uYW1lIChuYW1lKTsKKyAgcmV0dXJuIGk7 Cit9CiAKLS8qIEluaXRpYWxpemVzIGBjaGFyYWN0ZXJfbmFtZXMnIGFuZCBgbWF4X2NoYXJhY3Rl cl9uYW1lX2xlbmd0aCcuCi0gICBDYWxsZWQgYnkgYHJlYWRfZXNjYXBlJy4gICovCi12b2lkIGlu aXRfY2hhcmFjdGVyX25hbWVzICh2b2lkKQorLyogSWYgTkFNRSBzdGFydHMgd2l0aCBQUkVGSVgs IGludGVycHJldCB0aGUgcmVzdCBhcyBhIGhleGFkZWNpbWFsCisgICBudW1iZXIgYW5kIHJldHVy biBpdHMgdmFsdWUuICBSYWlzZSBpbnZhbGlkLXJlYWQtc3ludGF4IGlmIHRoZQorICAgbnVtYmVy IGlzIG5vdCBhIHZhbGlkIHNjYWxhciB2YWx1ZS4gIFJldHVybiDiiJIxIGlmIE5BTUUgZG9lc27i gJl0CisgICBzdGFydCB3aXRoIFBSRUZJWC4gICovCitzdGF0aWMgaW50CitwYXJzZV9jb2RlX2Fm dGVyX3ByZWZpeCAoTGlzcF9PYmplY3QgbmFtZSwgY29uc3QgY2hhciAqcHJlZml4KQogewotICBj aGFyYWN0ZXJfbmFtZXMgPSBDQUxMTiAoRm1ha2VfaGFzaF90YWJsZSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgIFFDdGVzdCwgUWVxdWFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogQ3VycmVudGx5IGFyb3VuZCAxMDAsMDAwIFVuaWNvZGUKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNoYXJhY3RlcnMgYXJlIGRlZmluZWQuICAqLwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgUUNzaXplLCBtYWtlX25hdG51bSAoMTAwMDAwKSk7Ci0gIExpc3BfT2JqZWN0IGdl dF9wcm9wZXJ0eSA9Ci0gICAgRnN5bWJvbF9mdW5jdGlvbiAoaW50ZXJuX2Nfc3RyaW5nICgiZ2V0 LWNoYXItY29kZS1wcm9wZXJ0eSIpKTsKLSAgcHRyZGlmZl90IGxlbmd0aCA9IDA7Ci0gIGZvciAo aW50IGkgPSAwOyBpIDw9IE1BWF9VTklDT0RFX0NIQVI7ICsraSkKKyAgcHRyZGlmZl90IG5hbWVf bGVuID0gU0JZVEVTIChuYW1lKTsKKyAgcHRyZGlmZl90IHByZWZpeF9sZW4gPSBzdHJsZW4gKHBy ZWZpeCk7CisgIC8qIEFsbG93IGJldHdlZW4gb25lIGFuZCBlaWdodCBoZXhhZGVjaW1hbCBkaWdp dHMgYWZ0ZXIgdGhlCisgICAgIHByZWZpeC4gICovCisgIGlmIChwcmVmaXhfbGVuIDwgbmFtZV9s ZW4gJiYgbmFtZV9sZW4gPD0gcHJlZml4X2xlbiArIDgKKyAgICAgICYmIG1lbWNtcCAoU0RBVEEg KG5hbWUpLCBwcmVmaXgsIHByZWZpeF9sZW4pID09IDApCiAgICAgewotICAgICAgTGlzcF9PYmpl Y3QgY29kZSA9IG1ha2VfbmF0bnVtIChpKTsKLSAgICAgIExpc3BfT2JqZWN0IG5hbWUgPSBjYWxs MiAoZ2V0X3Byb3BlcnR5LCBjb2RlLCBRbmFtZSk7Ci0gICAgICBpZiAoTklMUCAobmFtZSkpIGNv bnRpbnVlOwotICAgICAgQ0hFQ0tfU1RSSU5HIChuYW1lKTsKLSAgICAgIGxlbmd0aCA9IG1heCAo bGVuZ3RoLCBTQllURVMgKG5hbWUpKTsKLSAgICAgIEZwdXRoYXNoIChuYW1lLCBjb2RlLCBjaGFy YWN0ZXJfbmFtZXMpOworICAgICAgTGlzcF9PYmplY3QgY29kZSA9IHN0cmluZ190b19udW1iZXIg KFNEQVRBIChuYW1lKSArIHByZWZpeF9sZW4sIDE2LCBmYWxzZSk7CisgICAgICBpZiAoTlVNQkVS UCAoY29kZSkpCisgICAgICAgIHJldHVybiBjaGVja19zY2FsYXJfdmFsdWUgKGNvZGUsIG5hbWUp OwogICAgIH0KLSAgbWF4X2NoYXJhY3Rlcl9uYW1lX2xlbmd0aCA9IGxlbmd0aDsKKyAgcmV0dXJu IC0xOwogfQogCisvKiBSZXR1cm5zIHRoZSBzY2FsYXIgdmFsdWUgdGhhdCBoYXMgdGhlIFVuaWNv ZGUgY2hhcmFjdGVyIG5hbWUgTkFNRS4KKyAgIFJhaXNlcyBgaW52YWxpZC1yZWFkLXN5bnRheCcg aWYgdGhlcmUgaXMgbm8gc3VjaCBjaGFyYWN0ZXIuICAqLworc3RhdGljIGludAorY2hhcmFjdGVy X25hbWVfdG9fY29kZSAoTGlzcF9PYmplY3QgbmFtZSkKK3sKKyAgLyogQ29kZSBwb2ludCBhcyBV K04sIHdoZXJlIE4gaXMgYmV0d2VlbiAxIGFuZCA4IGhleGFkZWNpbWFsCisgICAgIGRpZ2l0cy4g ICovCisgIGludCBjb2RlID0gcGFyc2VfY29kZV9hZnRlcl9wcmVmaXggKG5hbWUsICJVKyIpOwor ICBpZiAoY29kZSA+PSAwKQorICAgIHJldHVybiBjb2RlOworCisgIC8qIENKSyBpZGVvZ3JhcGhz IGFyZSBub3QgY29udGFpbmVkIGluIHRoZSBhc3NvY2lhdGlvbiBsaXN0IHJldHVybmVkCisgICAg IGJ5IGB1Y3MtbmFtZXMnLiAgQnV0IHRoZXkgZm9sbG93IGEgcHJlZGljdGFibGUgbmFtaW5nIHBh dHRlcm46IGEKKyAgICAgZml4ZWQgcHJlZml4IHBsdXMgdGhlIGhleGFkZWNpbWFsIGNvZGVwb2lu dCB2YWx1ZS4gICovCisgIGNvZGUgPSBwYXJzZV9jb2RlX2FmdGVyX3ByZWZpeCAobmFtZSwgIkNK SyBJREVPR1JBUEgtIik7CisgIGlmIChjb2RlID49IDApCisgICAgeworICAgICAgLyogVmFyaW91 cyByYW5nZXMgb2YgQ0pLIGNoYXJhY3RlcnM7IHNlZSBVbmljb2RlRGF0YS50eHQuICAqLworICAg ICAgaWYgKCgweDM0MDAgPD0gY29kZSAmJiBjb2RlIDw9IDB4NERCNSkKKyAgICAgICAgICB8fCAo MHg0RTAwIDw9IGNvZGUgJiYgY29kZSA8PSAweDlGRDUpCisgICAgICAgICAgfHwgKDB4MjAwMDAg PD0gY29kZSAmJiBjb2RlIDw9IDB4MkE2RDYpCisgICAgICAgICAgfHwgKDB4MkE3MDAgPD0gY29k ZSAmJiBjb2RlIDw9IDB4MkI3MzQpCisgICAgICAgICAgfHwgKDB4MkI3NDAgPD0gY29kZSAmJiBj b2RlIDw9IDB4MkI4MUQpCisgICAgICAgICAgfHwgKDB4MkI4MjAgPD0gY29kZSAmJiBjb2RlIDw9 IDB4MkNFQTEpKQorICAgICAgICByZXR1cm4gY29kZTsKKyAgICAgIGVsc2UKKyAgICAgICAgaW52 YWxpZF9jaGFyYWN0ZXJfbmFtZSAobmFtZSk7CisgICAgfQorCisgIC8qIExvb2sgdXAgdGhlIG5h bWUgaW4gdGhlIHRhYmxlIHJldHVybmVkIGJ5IGB1Y3MtbmFtZXMnLiAgKi8KKyAgTGlzcF9PYmpl Y3QgbmFtZXMgPSBjYWxsMCAoUXVjc19uYW1lcyk7CisgIHJldHVybiBjaGVja19zY2FsYXJfdmFs dWUgKENEUiAoRmFzc29jIChuYW1lLCBuYW1lcykpLCBuYW1lKTsKK30KKworLyogQm91bmQgb24g dGhlIGxlbmd0aCBvZiBhIFVuaWNvZGUgY2hhcmFjdGVyIG5hbWUuICBBcyBvZgorICAgVW5pY29k ZcKgOS4wLjAgdGhlIG1heGltdW0gaXMgODMsIHNvIHRoaXMgc2hvdWxkIGJlIHNhZmUuICovCitl bnVtIHsgVU5JQ09ERV9DSEFSQUNURVJfTkFNRV9MRU5HVEhfQk9VTkQgPSAyMDAgfTsKKwogLyog UmVhZCBhIFwtZXNjYXBlIHNlcXVlbmNlLCBhc3N1bWluZyB3ZSBhbHJlYWR5IHJlYWQgdGhlIGBc Jy4KICAgIElmIHRoZSBlc2NhcGUgc2VxdWVuY2UgZm9yY2VzIHVuaWJ5dGUsIHJldHVybiBlaWdo dC1iaXQgY2hhci4gICovCiAKQEAgLTIzOTQsMTAgKzI0NDksNyBAQCByZWFkX2VzY2FwZSAoTGlz cF9PYmplY3QgcmVhZGNoYXJmdW4sIGJvb2wgc3RyaW5ncCkKICAgICAgICAgYyA9IFJFQURDSEFS OwogICAgICAgICBpZiAoYyAhPSAneycpCiAgICAgICAgICAgaW52YWxpZF9zeW50YXggKCJFeHBl Y3RlZCBvcGVuaW5nIGJyYWNlIGFmdGVyIFxcTiIpOwotICAgICAgICBpZiAoTklMUCAoY2hhcmFj dGVyX25hbWVzKSkKLSAgICAgICAgICBpbml0X2NoYXJhY3Rlcl9uYW1lcyAoKTsKLSAgICAgICAg VVNFX1NBRkVfQUxMT0NBOwotICAgICAgICBjaGFyICpuYW1lID0gU0FGRV9BTExPQ0EgKG1heF9j aGFyYWN0ZXJfbmFtZV9sZW5ndGggKyAxKTsKKyAgICAgICAgY2hhciBuYW1lW1VOSUNPREVfQ0hB UkFDVEVSX05BTUVfTEVOR1RIX0JPVU5EICsgMV07CiAgICAgICAgIGJvb2wgd2hpdGVzcGFjZSA9 IGZhbHNlOwogICAgICAgICBwdHJkaWZmX3QgbGVuZ3RoID0gMDsKICAgICAgICAgd2hpbGUgKHRy dWUpCkBAIC0yNDI2LDI1ICsyNDc4LDEyIEBAIHJlYWRfZXNjYXBlIChMaXNwX09iamVjdCByZWFk Y2hhcmZ1biwgYm9vbCBzdHJpbmdwKQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICB3 aGl0ZXNwYWNlID0gZmFsc2U7CiAgICAgICAgICAgICBuYW1lW2xlbmd0aCsrXSA9IGM7Ci0gICAg ICAgICAgICBpZiAobGVuZ3RoID49IG1heF9jaGFyYWN0ZXJfbmFtZV9sZW5ndGgpCisgICAgICAg ICAgICBpZiAobGVuZ3RoID49IHNpemVvZiBuYW1lKQogICAgICAgICAgICAgICBpbnZhbGlkX3N5 bnRheCAoIkNoYXJhY3RlciBuYW1lIHRvbyBsb25nIik7CiAgICAgICAgICAgfQogICAgICAgICBp ZiAobGVuZ3RoID09IDApCiAgICAgICAgICAgaW52YWxpZF9zeW50YXggKCJFbXB0eSBjaGFyYWN0 ZXIgbmFtZSIpOwotICAgICAgICBuYW1lW2xlbmd0aF0gPSAwOwotICAgICAgICBMaXNwX09iamVj dCBsaXNwX25hbWUgPSBtYWtlX3VuaWJ5dGVfc3RyaW5nIChuYW1lLCBsZW5ndGgpOwotICAgICAg ICBMaXNwX09iamVjdCBjb2RlID0KLSAgICAgICAgICAobGVuZ3RoID49IDMgJiYgbGVuZ3RoIDw9 IDEwICYmIG5hbWVbMF0gPT0gJ1UnICYmIG5hbWVbMV0gPT0gJysnKSA/Ci0gICAgICAgICAgLyog Q29kZSBwb2ludCBhcyBVK04sIHdoZXJlIE4gaXMgYmV0d2VlbiAxIGFuZCA4IGhleGFkZWNpbWFs Ci0gICAgICAgICAgICAgZGlnaXRzLiAgKi8KLSAgICAgICAgICBzdHJpbmdfdG9fbnVtYmVyIChu YW1lICsgMiwgMTYsIGZhbHNlKSA6Ci0gICAgICAgICAgRmdldGhhc2ggKGxpc3BfbmFtZSwgY2hh cmFjdGVyX25hbWVzLCBRbmlsKTsKLSAgICAgICAgU0FGRV9GUkVFICgpOwotICAgICAgICBpZiAo ISBSQU5HRURfSU5URUdFUlAgKDAsIGNvZGUsIE1BWF9VTklDT0RFX0NIQVIpKQotICAgICAgICAg IHhzaWduYWwxIChRaW52YWxpZF9yZWFkX3N5bnRheCwKLSAgICAgICAgICAgICAgICAgICAgQ0FM TE4gKEZmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZF9wdXJlX2Nfc3Ry aW5nICgiXFxOeyVzfSIpLCBsaXNwX25hbWUpKTsKLSAgICAgICAgcmV0dXJuIFhJTlQgKGNvZGUp OworICAgICAgICByZXR1cm4gY2hhcmFjdGVyX25hbWVfdG9fY29kZSAobWFrZV91bmlieXRlX3N0 cmluZyAobmFtZSwgbGVuZ3RoKSk7CiAgICAgICB9CiAKICAgICBkZWZhdWx0OgpAQCAtNDgzNiw2 ICs0ODc1LDUgQEAgdGhhdCBhcmUgbG9hZGVkIGJlZm9yZSB5b3VyIGN1c3RvbWl6YXRpb25zIGFy ZSByZWFkISAgKi8pOwogICBERUZTWU0gKFFyZWhhc2hfc2l6ZSwgInJlaGFzaC1zaXplIik7CiAg IERFRlNZTSAoUXJlaGFzaF90aHJlc2hvbGQsICJyZWhhc2gtdGhyZXNob2xkIik7CiAKLSAgY2hh cmFjdGVyX25hbWVzID0gUW5pbDsKLSAgc3RhdGljcHJvICgmY2hhcmFjdGVyX25hbWVzKTsKKyAg REVGU1lNIChRdWNzX25hbWVzLCAidWNzLW5hbWVzIik7CiB9CmRpZmYgLS1naXQgYS90ZXN0L3Ny Yy9scmVhZC10ZXN0cy5lbCBiL3Rlc3Qvc3JjL2xyZWFkLXRlc3RzLmVsCmluZGV4IDFmODczMzQu LmZmNWQwZjYgMTAwNjQ0Ci0tLSBhL3Rlc3Qvc3JjL2xyZWFkLXRlc3RzLmVsCisrKyBiL3Rlc3Qv c3JjL2xyZWFkLXRlc3RzLmVsCkBAIC00MCwxMCArNDAsMTcgQEAKICAgKHNob3VsZC1lcnJvciAo cmVhZCAiP1xcTntET0VTIE5PVCBFWElTVH0iKSkgOnR5cGUgJ2ludmFsaWQtcmVhZC1zeW50YXgp CiAKIChlcnQtZGVmdGVzdCBscmVhZC1jaGFyLW5vbi1hc2NpaS1uYW1lICgpCi0gIChzaG91bGQt ZXJyb3IgKHJlYWQgIj9cXE57TEFUSU4gQ0FQSVRBTCBMRVRURVIgw5h9IikpICdpbnZhbGlkLXJl YWQtc3ludGF4KQorICAoc2hvdWxkLWVycm9yIChyZWFkICI/XFxOe0xBVElOIENBUElUQUwgTEVU VEVSIMOYfSIpCisgICAgICAgICAgICAgICAgOnR5cGUgJ2ludmFsaWQtcmVhZC1zeW50YXgpKQog CiAoZXJ0LWRlZnRlc3QgbHJlYWQtY2hhci1lbXB0eS1uYW1lICgpCi0gIChzaG91bGQtZXJyb3Ig KHJlYWQgIj9cXE57fSIpKSAnaW52YWxpZC1yZWFkLXN5bnRheCkKKyAgKHNob3VsZC1lcnJvciAo cmVhZCAiP1xcTnt9IikgOnR5cGUgJ2ludmFsaWQtcmVhZC1zeW50YXgpKQorCisoZXJ0LWRlZnRl c3QgbHJlYWQtY2hhci1jamstbmFtZSAoKQorICAoc2hvdWxkIChlcXVhbCA/XE57Q0pLIElERU9H UkFQSC0yQjczNH0gI3gyQjczNCkpKQorCisoZXJ0LWRlZnRlc3QgbHJlYWQtY2hhci1pbnZhbGlk LWNqay1uYW1lICgpCisgIChzaG91bGQtZXJyb3IgKHJlYWQgIj9cXE57Q0pLIElERU9HUkFQSC0y QjczNX0iKSA6dHlwZSAnaW52YWxpZC1yZWFkLXN5bnRheCkpCiAKIChlcnQtZGVmdGVzdCBscmVh ZC1zdHJpbmctY2hhci1udW1iZXIgKCkKICAgKHNob3VsZCAoZXF1YWwgImFcTntVK0E4MTd9YiIg ImFcdUE4MTdiIikpKQotLSAKMi43LjAKCg== --001a114080c022b0cb052e7aec36--