From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Nala Ginrut Newsgroups: gmane.lisp.guile.devel Subject: Re: [PATCH] Colorized REPL Date: Thu, 31 Jan 2013 22:31:42 +0800 Message-ID: References: <1354692089.25329.71.camel@Renee-desktop.suse> <1354697316.25329.83.camel@Renee-desktop.suse> <1354703255.25329.107.camel@Renee-desktop.suse> <87a9tmajov.fsf@gnu.org> <1355106191.22533.63.camel@Renee-desktop.suse> <87zk1l1t3x.fsf@gnu.org> <1356942598.2785.174.camel@Renee-desktop.suse> <87623dvy88.fsf@gnu.org> <1357726654.2798.103.camel@Renee-desktop.suse> <87k3rj7psf.fsf@gnu.org> <8738y6umof.fsf@gnu.org> <1359195310.3676.90.camel@Renee-desktop.suse> <87ehh79by5.fsf@pobox.com> <1359346483.2566.16.camel@Renee-desktop.suse> <20130128115824.0ee9fdf7@capac> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=14dae93404154c75c504d4967c6e X-Trace: ger.gmane.org 1359643082 28845 80.91.229.3 (31 Jan 2013 14:38:02 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 31 Jan 2013 14:38:02 +0000 (UTC) Cc: Andy Wingo , =?UTF-8?Q?Ludovic_Court=C3=A8s?= , guile-devel To: David Pirotte Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Thu Jan 31 15:38:21 2013 Return-path: Envelope-to: guile-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 1U0vHO-00015L-Jw for guile-devel@m.gmane.org; Thu, 31 Jan 2013 15:38:19 +0100 Original-Received: from localhost ([::1]:57236 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U0vH6-0007mV-HN for guile-devel@m.gmane.org; Thu, 31 Jan 2013 09:38:00 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:41102) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U0vH3-0007mD-4a for guile-devel@gnu.org; Thu, 31 Jan 2013 09:37:58 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1U0vH1-0000gQ-HQ for guile-devel@gnu.org; Thu, 31 Jan 2013 09:37:57 -0500 Original-Received: from mail-ie0-x22e.google.com ([2607:f8b0:4001:c03::22e]:50301) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1U0vH1-0000fv-9p; Thu, 31 Jan 2013 09:37:55 -0500 Original-Received: by mail-ie0-f174.google.com with SMTP id k10so2340394iea.5 for ; Thu, 31 Jan 2013 06:37:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=ypHsXXoMUy2uugT287CyND3r1GOeI8CaOHaS6DcKZp4=; b=gXhnTf1xOUn2rRiPggfPGInWNBBfLti2oOeiz7W3dMqlXqpiavlR/7mGz6yKqMI9FF k0eOG80JdRlXJg9LnOrbOdKh8/iq0uNtchNNQKncV7IuMOq78+3G6flSieuL5VZjLT4h E/JEGDUxiYpvH2D/+uitcI7axsl35BDpqC/S+WMDLGablYOvqlshy3qMB7gnOqe4sFgX OOz3JvAodvz/e8qVN78gXtO2OVFPX9IC1thASTI1Z4cmEfOMmnoalH5lNX+vkUSNZzus RUHHv2B2VHuMUpoNgcByyNmztFqjgCs1BqhvX++P0uqTbotH2x0YNC444l7ZkUHn2Ayi T3Ag== X-Received: by 10.50.42.200 with SMTP id q8mr1238098igl.102.1359642702411; Thu, 31 Jan 2013 06:31:42 -0800 (PST) Original-Received: by 10.64.35.194 with HTTP; Thu, 31 Jan 2013 06:31:42 -0800 (PST) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:4001:c03::22e X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:15651 Archived-At: --14dae93404154c75c504d4967c6e Content-Type: multipart/alternative; boundary=14dae93404154c75c204d4967c6c --14dae93404154c75c204d4967c6c Content-Type: text/plain; charset=UTF-8 Sorry, forget to add it into ice-9/Makefile.am Send again. On Thu, Jan 31, 2013 at 10:25 PM, Nala Ginrut wrote: > patch updated. > Thanks! > > > On Mon, Jan 28, 2013 at 10:56 PM, Nala Ginrut wrote: > >> Thanks David! >> It's nice to know that, I thought Guile use PCRE, but I realized it's >> posix RE. >> >> >> On Mon, Jan 28, 2013 at 9:58 PM, David Pirotte wrote: >> >>> Hello, >>> >>> > But I have some trouble with the regexp in Guile, seems "\\d+" can't >>> > work, others, like "\\w+" works. >>> >>> i also had this 'problem' and someone suggested to rather use >>> [[:digit:]]+ >>> and friends - [:blank:] [:alpha:] ... >>> >>> Cheers, >>> David >>> >> >> > --14dae93404154c75c204d4967c6c Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Sorry, forget to add it into ice-9/Makefile.am
Send ag= ain.


On Thu, Jan 31, 2013 at 10:25 PM, Nala Ginrut <nalaginrut@gmail.com<= /a>> wrote:
patch updated.
Thanks!<= /div>


On Mon, Jan 28, 2013 at 10:56 PM, Nala Ginrut <nalaginrut@gmail.com> wrote:
Thanks David!
It's = nice to know that, =C2=A0I thought Guile use PCRE, but I realized it's = posix RE.


On Mon, Jan 28, 2013 at 9:58 PM, David Pirotte <david@altosw.be> wrote:
Hello,

> But I have some trouble with the regexp in Guile, seems "\\d+&quo= t; can't
> work, others, like "\\w+" works.

i also had this 'problem' and someone suggested to rather use= [[:digit:]]+
and friends - [:blank:] [:alpha:] ...

Cheers,
David



--14dae93404154c75c204d4967c6c-- --14dae93404154c75c504d4967c6e Content-Type: application/octet-stream; name="0001-Add-colorized-REPL.patch" Content-Disposition: attachment; filename="0001-Add-colorized-REPL.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hcm05b501 RnJvbSBlNmM2MDQ2NzllMzkyOGJiMWIxNzkwNzJhODNiNzJiYzY1YjdkOTZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOYWxhR2lucnV0IDxuYWxhZ2lucnV0QGdtYWlsLmNvbT4KRGF0 ZTogVGh1LCAzMSBKYW4gMjAxMyAyMjoxNzoyNSArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIEFkZCBj b2xvcml6ZWQtUkVQTAoKKiBkb2MvcmVmL21pc2MtbW9kdWxlcy50ZXhpCiogZG9jL3JlZi9zY2hl bWUtdXNpbmcudGV4aTogYWRkIGRvY3MgZm9yIGNvbG9yaXplZC1SRVBMCgoqIG1vZHVsZS9pY2Ut OS9jb2xvcml6ZWQuc2NtOiBhZGQgY29sb3JpemVkLVJFUEwgbW9kdWxlLgoKKiB0ZXN0LXN1aXRl L3Rlc3RzL2NvbG9yaXplZC50ZXN0OiBhZGQgY29sb3JpemVkLVJFUEwgdGVzdCBjYXNlLgoKKiBt b2R1bGUvTWFrZWZpbGUuYW06IGFkZCBpY2UtOS9jb2xvcml6ZWQuc2NtCi0tLQogZG9jL3JlZi9t aXNjLW1vZHVsZXMudGV4aSAgICAgICB8ICAgNjggKysrKysrKysKIGRvYy9yZWYvc2NoZW1lLXVz aW5nLnRleGkgICAgICAgfCAgIDM4ICsrKystCiBtb2R1bGUvTWFrZWZpbGUuYW0gICAgICAgICAg ICAgIHwgICAgMSArCiBtb2R1bGUvaWNlLTkvY29sb3JpemVkLnNjbSAgICAgIHwgIDM1NSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRlc3Qtc3VpdGUvdGVzdHMvY29s b3JpemVkLnRlc3QgfCAgIDg4ICsrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgNTQ3IGluc2Vy dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbW9kdWxlL2ljZS05 L2NvbG9yaXplZC5zY20KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0LXN1aXRlL3Rlc3RzL2NvbG9y aXplZC50ZXN0CgpkaWZmIC0tZ2l0IGEvZG9jL3JlZi9taXNjLW1vZHVsZXMudGV4aSBiL2RvYy9y ZWYvbWlzYy1tb2R1bGVzLnRleGkKaW5kZXggY2YxZTBlNC4uZTJjYTZmOSAxMDA2NDQKLS0tIGEv ZG9jL3JlZi9taXNjLW1vZHVsZXMudGV4aQorKysgYi9kb2MvcmVmL21pc2MtbW9kdWxlcy50ZXhp CkBAIC0xNzg4LDYgKzE3ODgsNzQgQEAgZXhhbXBsZSB3aXRoIHRoZSBTY2hlbWUgQGNvZGV7cmVh ZH0gZnVuY3Rpb24gKEBweHJlZntTY2hlbWUgUmVhZH0pLAogQGVuZCBleGFtcGxlCiBAZW5kIGRl ZmZuCiAKK0Bub2RlIENvbG9yaXplZAorQHNlY3Rpb24gQ29sb3JpemVkCisKK0BjaW5kZXggQ29s b3JpemVkCitUaGUgbW9kdWxlIEBjb2RleyhpY2UtOSBjb2xvcml6ZWQpfSBwcm92aWRlcyB0aGUg cHJvY2VkdXJlCitAY29kZXthY3RpdmF0ZS1jb2xvcml6ZWR9LCB3aGljaCBwcm92aWRlcyBjb2xv cmVkIFJFUEwgb3V0cHV0LgorCitUaGUgbW9kdWxlIGlzIGxvYWRlZCBhbmQgYWN0aXZhdGVkIGJ5 IGVudGVyaW5nIHRoZSBmb2xsb3dpbmc6CisKK0BsaXNwCisodXNlLW1vZHVsZXMgKGljZS05IGNv bG9yaXplZCkpCisoYWN0aXZhdGUtY29sb3JpemVkKQorQGVuZCBsaXNwCisKK0FuZCB5b3UgbWF5 IGFkZCB5b3VyIG93biBjb2xvciBzY2hlbWUgd2l0aCBAY29kZXthZGQtY29sb3Itc2NoZW1lIX06 CisKK0BsaXNwCisoYWRkLWNvbG9yLXNjaGVtZSEgYCgoLChsYW1iZGEgKGRhdGEpIAorICAgICAg ICAgICAgICAgICAgICAgICAgIChhbmQgKG51bWJlcj8gZGF0YSkgKD4gZGF0YSAxMDAwMCkpKQor ICAgICAgICAgICAgICAgICAgICAgICAgICBNWS1MT05HLU5VTSAsY29sb3ItaXQgKFJFRCkpKSkK K0BwcmludHt9CitSZXN1bHQ6IDEwMDAxIChpbiByZWQgY29sb3IpCitAZW5kIGxpc3AKKworQGRl ZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSBhY3RpdmF0ZS1jb2xvcml6ZWQKK0FjdGl2YXRlIGNvbG9y aXplZCBSRVBMLgorQGVuZCBkZWZmbgorCitAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IGFkZC1j b2xvci1zY2hlbWUhIGNvbG9yLXNjaGVtZS1saXN0CitBZGQgdXNlciBkZWZpbmVkIGNvbG9yIHNj aGVtZS4gQGNvZGV7Y29sb3Itc2NoZW1lLWxpc3R9IGNvbnNpc3RlZCBhczoKK0BsaXNwCisobGlz dCAocHJlZCBzY2hlbWUtbmFtZSBjb2xvci1tZXRob2QgY29sb3ItbGlzdCkKKyAgICAgIDs7IG90 aGVyIGNvbG9yIHNjaGVtZSkgCitAZW5kIGxpc3AKK1doaWxlIEBjb2Rle3ByZWR9IGlzIHRoZSBw cmVkaWNhdGUgdG8gY2hlY2tvdXQgaWYgaXQncyB0aGUgdHlwZSB5b3UgbmVlZCwKK0Bjb2Rle3Nj aGVtZS1uYW1lfSBpcyBhIHN5bWJvbCB5b3UgbmFtZWQgdGhpcyBjb2xvciBzY2hlbWUsIAorQGNv ZGV7Y29sb3ItbWV0aG9kfSBpcyB0aGUgY29sb3IgZnVuY3Rpb24sIGFuZCBpdCBjb3VsZCBiZSBA Y29kZXtjb2xvci1pdH0KK2luIGRlZmF1bHQsIGFuZCBAY29kZXtjb2xvci1saXN0fSBpcyBhIGFu c2ktY29sb3Igc3BlY2lmaWMgY29sb3IgbGlzdC4KK0BlbmQgZGVmZm4KKworQGNpbmRleCBDb2xv cml6ZWQgU3RyaW5nCitBbHNvIGV4cG9ydGVkIGJ5IHRoZSBAY29kZXsoaWNlLTkgY29sb3JpemVk KX0gbW9kdWxlIGlzCitAY29kZXtjb2xvcml6ZS1zdHJpbmd9LCBhIHByb2NlZHVyZSB0byBmb3Jt YXQgYSBzdHJpbmcgaW4gY2VydGFpbiBjb2xvci4KK05vdGU6IFRoaXMgZmVhdHVyZSB3b3JrcyB1 bmRlciBtb3N0IG1haW5zdHJlYW0gY29uc29sZSB3aG9zZSByZXNwZWN0IGFuc2ktY29sb3IsCiti dXQgY2F1c2VzIG1lc3NlcyB1bmRlciBzb21lIGNvbnNvbGUuCisKK0BsaXNwCisodXNlLW1vZHVs ZXMgKGljZS05IGNvbG9yaXplZCkpCisoY29sb3JpemUtZGlzcGxheSAiaGVsbG8iICcoQkxVRSBC T0xEKSkKK0BwcmludHt9IGhlbGxvIChpbiBibHVlIGNvbG9yIGFuZCBib2xkIHN0eWxlKQorKGNv bG9yaXplLXN0cmluZyAiaGVsbG8iICcoQkxVRSBCT0xEKSkKK0BwcmludHt9ICJceDFiWzMyOzFt aGVsbG9ceDFiWzBtIgorKGRpc3BsYXkgKGNvbG9yaXplLXN0cmluZyAiaGVsbG8iICcoQkxVRSBC T0xEKSkpCitAcHJpbnR7fSBoZWxsbyAoaW4gYmx1ZSBjb2xvciBhbmQgYm9sZCBzdHlsZSkKK0Bl bmQgbGlzcAorCitAZGVmZm4ge1NjaGVtZSBQcm9jZWR1cmV9IGNvbG9yaXplLXN0cmluZyBzdHIg Y29sb3IKK1JldHVybiBhIHN0cmluZyBmb3JtYXRlZCB3aXRoIEB2YXJ7c3RyfSBpbiBAdmFye2Nv bG9yfSBhY2NvcmRpbmcgdG8gYW5zaQorY29sb3Igc3BlY2lmaWMuICAKK0BlbmQgZGVmZm4KKwor QGRlZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSBjb2xvcml6ZS1kaXNwbGF5IHN0ciBjb2xvcgorUHJp bnQgQHZhcntzdHJ9IGluIEB2YXJ7Y29sb3J9LgorQGVuZCBkZWZmbgorCitAZGVmZm4ge1NjaGVt ZSBQcm9jZWR1cmV9IHNob3ctYWxsLWNvbG9ycworUHJpbnQgYWxsIGF2YWlsYWJsZSBjb2xvcnMu CitAZW5kIGRlZmZuCiAKIEBjIExvY2FsIFZhcmlhYmxlczoKIEBjIFRlWC1tYXN0ZXI6ICJndWls ZS50ZXhpIgpkaWZmIC0tZ2l0IGEvZG9jL3JlZi9zY2hlbWUtdXNpbmcudGV4aSBiL2RvYy9yZWYv c2NoZW1lLXVzaW5nLnRleGkKaW5kZXggZTBmOTFhZi4uN2E3N2M5MiAxMDA2NDQKLS0tIGEvZG9j L3JlZi9zY2hlbWUtdXNpbmcudGV4aQorKysgYi9kb2MvcmVmL3NjaGVtZS11c2luZy50ZXhpCkBA IC0zNyw2ICszNyw3IEBAIHN1cHBvcnQgZm9yIGxhbmd1YWdlcyBvdGhlciB0aGFuIFNjaGVtZS4K IEBtZW51CiAqIEluaXQgRmlsZTo6CiAqIFJlYWRsaW5lOjogICAgICAgICAgICAgICAgICAgIAor KiBDb2xvcml6ZWQgUkVQTDo6CiAqIFZhbHVlIEhpc3Rvcnk6OiAgICAgICAgICAgICAgCiAqIFJF UEwgQ29tbWFuZHM6OiAgICAgICAgICAgICAgIAogKiBFcnJvciBIYW5kbGluZzo6ICAgICAgICAg ICAgICAKQEAgLTc5LDYgKzgwLDM3IEBAIEl0J3MgYSBnb29kIGlkZWEgdG8gcHV0IHRoZXNlIHR3 byBsaW5lcyAod2l0aG91dCB0aGUKIEB4cmVme0luaXQgRmlsZX0sIGZvciBtb3JlIG9uIEBmaWxl ey5ndWlsZX0uCiAKIAorQG5vZGUgQ29sb3JpemVkIFJFUEwKK0BzdWJzZWN0aW9uIENvbG9yaXpl ZCBSRVBMCisKK1RvIG1ha2UgY29sb3JpemVkIHJlc3VsdCBpbiBHdWlsZSBSRVBMLCBvciBhZGQg eW91ciBvd24gY29sb3IKK3NjaGVtZXMgdG8gc2hvdyB0aGUgcmVzdWx0IGluIGNvbG9ycy4KKwor QGxpc3AKK3NjaGVtZUBAKGd1aWxlLXVzZXIpPiAodXNlLW1vZHVsZXMgKGljZS05IGNvbG9yaXpl ZCkpCitzY2hlbWVAQChndWlsZS11c2VyKT4gKGFjdGl2YXRlLWNvbG9yaXplZCkKK0BlbmQgbGlz cAorCitJdCdzIGEgZ29vZCBpZGVhIHRvIHB1dCB0aGVzZSB0d28gbGluZXMgKHdpdGhvdXQgdGhl CitAY29kZXtzY2hlbWVAQChndWlsZS11c2VyKT59IHByb21wdHMpIGluIHlvdXIgQGZpbGV7Lmd1 aWxlfSBmaWxlLgorQmVzaWRlcywgeW91IG1heSBhZGQgeW91ciBjb2xvciBzY2hlbWVzIGZvciB0 aGUgcmVzdWx0OgorQGxpc3AKKyhhZGQtY29sb3Itc2NoZW1lISAobGlzdCAocHJlZCBzY2hlbWUt bmFtZSBjb2xvci1tZXRob2QgY29sb3ItbGlzdCkpKQorZXhhbXBsZToKKyhhZGQtY29sb3Itc2No ZW1lISBgKCgsKGxhbWJkYSAoZGF0YSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAo bnVtYmVyPyBkYXRhKSAoPiBkYXRhIDEwMDAwKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg IE1ZLUxPTkctTlVNICxjb2xvci1pdCAoUkVEKSkpKQorMTAwMDEKK0BwcmludHt9IDEwMDAxIChp biByZWQgY29sb3IpCitAZW5kIGxpc3AKK1doaWxlIEBjb2Rle3ByZWR9IGlzIHRoZSBwcmVkaWNh dGUgdG8gY2hlY2tvdXQgaWYgaXQncyB0aGUgdHlwZSB5b3UgbmVlZCwKK0Bjb2Rle3NjaGVtZS1u YW1lfSBpcyBhIHN5bWJvbCB5b3UgbmFtZWQgdGhpcyBjb2xvciBzY2hlbWUsIAorQGNvZGV7Y29s b3ItbWV0aG9kfSBpcyB0aGUgY29sb3IgZnVuY3Rpb24sIGFuZCBpdCBjb3VsZCBiZSBAY29kZXtj b2xvci1pdH0KK2luIGRlZmF1bHQsIGFuZCBAY29kZXtjb2xvci1saXN0fSBpcyBhIGFuc2ktY29s b3Igc3BlY2lmaWMgY29sb3IgbGlzdCwgCitwbGVhc2Ugc2VlIEB4cmVme0NvbG9yaXplZH0uCitA eHJlZntJbml0IEZpbGV9LCBmb3IgbW9yZSBvbiBAZmlsZXsuZ3VpbGV9LgorCisKIEBub2RlIFZh bHVlIEhpc3RvcnkKIEBzdWJzZWN0aW9uIFZhbHVlIEhpc3RvcnkKIApAQCAtMTQ3LDkgKzE3OSw5 IEBAIGRhdGEgc3RydWN0dXJlIG9yIGNsb3N1cmUsIHRoZXkgbWF5IHRoZW4gYmUgcmVjbGFpbWVk IGJ5IHRoZSBnYXJiYWdlIGNvbGxlY3Rvci4KIAogQGNpbmRleCBjb21tYW5kcwogVGhlIFJFUEwg ZXhpc3RzIHRvIHJlYWQgZXhwcmVzc2lvbnMsIGV2YWx1YXRlIHRoZW0sIGFuZCB0aGVuIHByaW50 IHRoZWlyCi1yZXN1bHRzLiBCdXQgc29tZXRpbWVzIG9uZSB3YW50cyB0byB0ZWxsIHRoZSBSRVBM IHRvIGV2YWx1YXRlIGFuCi1leHByZXNzaW9uIGluIGEgZGlmZmVyZW50IHdheSwgb3IgdG8gZG8g c29tZXRoaW5nIGVsc2UgYWx0b2dldGhlci4gQQotdXNlciBjYW4gYWZmZWN0IHRoZSB3YXkgdGhl IFJFUEwgd29ya3Mgd2l0aCBhIEBkZm57UkVQTCBjb21tYW5kfS4KK3Jlc3VsdHMuIEJ1dCBzb21l dGltZXMgb25lIHdhbnRzIHRvIHRlbGwgdGhlIFJFUEwgdG8gZXZhbHVhdGUgYW4gZXhwcmVzc2lv bgoraW4gYSBkaWZmZXJlbnQgd2F5LCBvciB0byBkbyBzb21ldGhpbmcgZWxzZSBhbHRvZ2V0aGVy LiBBIHVzZXIgY2FuIGFmZmVjdAordGhlIHdheSB0aGUgUkVQTCB3b3JrcyB3aXRoIGEgQGRmbntS RVBMIGNvbW1hbmR9LgogCiBUaGUgcHJldmlvdXMgc2VjdGlvbiBoYWQgYW4gZXhhbXBsZSBvZiBh IGNvbW1hbmQsIGluIHRoZSBmb3JtIG9mCiBAY29kZXssb3B0aW9ufS4KZGlmZiAtLWdpdCBhL21v ZHVsZS9NYWtlZmlsZS5hbSBiL21vZHVsZS9NYWtlZmlsZS5hbQppbmRleCA0NzJiYzQ4Li4yZWVj MGU1IDEwMDY0NAotLS0gYS9tb2R1bGUvTWFrZWZpbGUuYW0KKysrIGIvbW9kdWxlL01ha2VmaWxl LmFtCkBAIC0yNTAsNiArMjUwLDcgQEAgSUNFXzlfU09VUkNFUyA9IFwKICAgaWNlLTkvd2Vhay12 ZWN0b3Iuc2NtIFwKICAgaWNlLTkvbGlzdC5zY20gXAogICBpY2UtOS9zZXJpYWxpemUuc2NtIFwK KyAgaWNlLTkvY29sb3JpemVkLnNjbSBcCiAgIGljZS05L2xvY2FsLWV2YWwuc2NtCiAKIGlmIEhB VkVfRk9SSwpkaWZmIC0tZ2l0IGEvbW9kdWxlL2ljZS05L2NvbG9yaXplZC5zY20gYi9tb2R1bGUv aWNlLTkvY29sb3JpemVkLnNjbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y ODkyZjRiCi0tLSAvZGV2L251bGwKKysrIGIvbW9kdWxlL2ljZS05L2NvbG9yaXplZC5zY20KQEAg LTAsMCArMSwzNTUgQEAKKzs7IENvcHlyaWdodCAoQykgMjAxMyBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKworOzs7OyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCis7Ozs7IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKzs7OzsgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCis7Ozs7IHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K Kzs7OzsgCis7Ozs7IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorOzs7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorOzs7OyBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorOzs7OyBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorOzs7OyAKKzs7Ozsg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYworOzs7OyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdy aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCis7Ozs7IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKworOzs7 OyBBdXRob3I6IE11IExlaSBrbm93biBhcyBOYWxhR2lucnV0IDxuYWxhZ2lucnV0QGdtYWlsLmNv bT4KKworKGRlZmluZS1tb2R1bGUgKGljZS05IGNvbG9yaXplZCkKKyAgIzp1c2UtbW9kdWxlIChp Y2UtOSByZGVsaW0pCisgICM6dXNlLW1vZHVsZSAoKHNyZmkgc3JmaS0xKSAjOnNlbGVjdCAoZmls dGVyLW1hcCBhbnkgcHJvcGVyLWxpc3Q/KSkKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktOSkK KyAgIzp1c2UtbW9kdWxlIChzeXN0ZW0gcmVwbCBjb21tb24pCisgICM6ZXhwb3J0IChhY3RpdmF0 ZS1jb2xvcml6ZWQgY3VzdG9tLWNvbG9yaXplZC1zZXQhIGNvbG9yLWl0IGNvbG9yaXplLWl0IGNv bG9yaXplCisgICAgICAgICAgICBjb2xvci1mdW5jIGNvbG9yaXplLXN0cmluZyBjb2xvcml6ZWQt ZGlzcGxheSBhZGQtY29sb3Itc2NoZW1lIQorICAgICAgICAgICAgc2hvdy1hbGwtY29sb3JzKSkK KworKGRlZmluZSAoY29sb3JpemVkLXJlcGwtcHJpbnRlciByZXBsIHZhbCkKKyAgKGNvbG9yaXpl LWl0IHZhbCkpCisKKyhkZWZpbmUgKGFjdGl2YXRlLWNvbG9yaXplZCkKKyAgKGxldCAoKHJzIChm bHVpZC1yZWYgKnJlcGwtc3RhY2sqKSkpCisgICAgKGlmIChudWxsPyBycykKKwkocmVwbC1kZWZh dWx0LW9wdGlvbi1zZXQhICdwcmludCBjb2xvcml6ZWQtcmVwbC1wcmludGVyKSA7IGlmIG5vIFJF UEwgc3RhcnRlZCwgc2V0IGFzIGRlZmF1bHQgcHJpbnRlcgorCShyZXBsLW9wdGlvbi1zZXQhIChj YXIgcnMpICdwcmludCBjb2xvcml6ZWQtcmVwbC1wcmludGVyKSkpKSA7IG9yIHNldCBhcyB0aGUg dG9wLVJFUEwgcHJpbnRlcgorCis7OyBjb2xvci1zY2hlbWUgY29udGV4dCwgY29udGFpbnMgc29t ZSBpbmZvIHRvIGJlIHVzZWQKKyhkZWZpbmUtcmVjb3JkLXR5cGUgY29sb3Itc2NoZW1lCisgICht YWtlLWNvbG9yLXNjaGVtZSBvYmogdHlwZSBjb2xvciBjb250cm9sIG1ldGhvZCkKKyAgY29sb3It c2NoZW1lPworICAob2JqIGNvbG9yLXNjaGVtZS1vYmopIDsgdGhlIG9iaiB0byBiZSBjb2xvcmVk CisgICh0eXBlIGNvbG9yLXNjaGVtZS10eXBlKSA7IHRoZSBvYmogdHlwZSAoZm9yIGRlYnVnL3Rl c3QpCisgIChjb2xvciBjb2xvci1zY2hlbWUtY29sb3IpIDsgdGhlIGNvbG9yCisgIChjb250cm9s IGNvbG9yLXNjaGVtZS1jb250cm9sKSA7IGFuc2kgY29udHJvbCBjb2RlCisgIChtZXRob2QgY29s b3Itc2NoZW1lLW1ldGhvZCkpIDsgY29sb3JpemVkIG1ldGhvZCBmb3IgdGhlIG9iaiB0eXBlCisK KyhkZWZpbmUgKmNvbG9yLWxpc3QqCisgIGAoKENMRUFSICAgICAgIC4gICAiMCIpCisgICAgKFJF U0VUICAgICAgIC4gICAiMCIpCisgICAgKEJPTEQgICAgICAgIC4gICAiMSIpCisgICAgKERBUksg ICAgICAgIC4gICAiMiIpCisgICAgKFVOREVSTElORSAgIC4gICAiNCIpCisgICAgKFVOREVSU0NP UkUgIC4gICAiNCIpCisgICAgKEJMSU5LICAgICAgIC4gICAiNSIpCisgICAgKFJFVkVSU0UgICAg IC4gICAiNiIpCisgICAgKENPTkNFQUxFRCAgIC4gICAiOCIpCisgICAgKEJMQUNLICAgICAgIC4g ICIzMCIpCisgICAgKFJFRCAgICAgICAgIC4gICIzMSIpCisgICAgKEdSRUVOICAgICAgIC4gICIz MiIpCisgICAgKFlFTExPVyAgICAgIC4gICIzMyIpCisgICAgKEJMVUUgICAgICAgIC4gICIzNCIp CisgICAgKE1BR0VOVEEgICAgIC4gICIzNSIpCisgICAgKENZQU4gICAgICAgIC4gICIzNiIpCisg ICAgKFdISVRFICAgICAgIC4gICIzNyIpCisgICAgKE9OLUJMQUNLICAgIC4gICI0MCIpCisgICAg KE9OLVJFRCAgICAgIC4gICI0MSIpCisgICAgKE9OLUdSRUVOICAgIC4gICI0MiIpCisgICAgKE9O LVlFTExPVyAgIC4gICI0MyIpCisgICAgKE9OLUJMVUUgICAgIC4gICI0NCIpCisgICAgKE9OLU1B R0VOVEEgIC4gICI0NSIpCisgICAgKE9OLUNZQU4gICAgIC4gICI0NiIpCisgICAgKE9OLVdISVRF ICAgIC4gICI0NyIpKSkKKworKGRlZmluZSAoc2hvdy1hbGwtY29sb3JzKQorICAoZm9yLWVhY2gg KGxhbWJkYSAoYykKKyAgICAgICAgICAgICAgKGZvcm1hdCAjdCAifmF+JSIgKGNhciBjKSkpCisg ICAgICAgICAgICAqY29sb3ItbGlzdCopKQorCisoZGVmaW5lIChnZXQtY29sb3IgY29sb3IpCisg IChhc3NxLXJlZiAqY29sb3ItbGlzdCogY29sb3IpKQorCisoZGVmaW5lIChnZW5lcmF0ZS1jb2xv ciBjb2xvcnMpCisgIChsZXQgKChjb2xvci1saXN0CisgICAgICAgICAoZmlsdGVyLW1hcCBnZXQt Y29sb3IgY29sb3JzKSkpCisgICAgKGlmIChudWxsPyBjb2xvci1saXN0KQorICAgICAgICAiIgor ICAgICAgICAoc3RyaW5nLWFwcGVuZCAiXHgxYlsiIChzdHJpbmctam9pbiBjb2xvci1saXN0ICI7 IiAnaW5maXgpICJtIikpKSkKKworKGRlZmluZSAoY29sb3JpemUtc3RyaW5nLWhlbHBlciBjb2xv ciBzdHIgY29udHJvbCkKKyAgKHN0cmluZy1hcHBlbmQgKGdlbmVyYXRlLWNvbG9yIGNvbG9yKSBz dHIgKGdlbmVyYXRlLWNvbG9yIGNvbnRyb2wpKSkKKworOzsgdGVzdC1oZWxwZXIgZnVuY3Rpb25z Cis7OyB3aGVuIGVhbmJsZWQsIGl0IHdvbid0IG91dHB1dCBjb2xvcmVkIHJlc3VsdCwgYnV0IGp1 c3Qgbm9ybWFsLgorOzsgaXQgdXNlZCB0byB0ZXN0IHRoZSBhcnJheS9saXN0L3ZlY3RvciBwcmlu dCByZXN1bHQuCisoZGVmaW5lIGNvbG9yLWZ1bmMgKG1ha2UtcGFyYW1ldGVyIGNvbG9yaXplLXN0 cmluZy1oZWxwZXIpKQorCisoZGVmaW5lIChjb2xvci1pdCBjcykgCisgIChsZXQqICgob2JqIChj b2xvci1zY2hlbWUtb2JqIGNzKSkKKyAgICAgICAgIChzdHIgKG9iamVjdC0+c3RyaW5nIG9iaikp CisgICAgICAgICAoY29sb3IgKGNvbG9yLXNjaGVtZS1jb2xvciBjcykpCisgICAgICAgICAoY29u dHJvbCAoY29sb3Itc2NoZW1lLWNvbnRyb2wgY3MpKSkKKyAgICAoY29sb3ItaXQtaW5uZXIgY29s b3Igc3RyIGNvbnRyb2wpKSkKKworKGRlZmluZSAoY29sb3ItaXQtaW5uZXIgY29sb3Igc3RyIGNv bnRyb2wpCisgICgoY29sb3ItZnVuYykgY29sb3Igc3RyIGNvbnRyb2wpKQorCisoZGVmaW5lKiAo c3BhY2UgIzpvcHRpb25hbCAocG9ydCAoY3VycmVudC1vdXRwdXQtcG9ydCkpKQorICAoZGlzcGxh eSAjXHNwIHBvcnQpKQorCisoZGVmaW5lICpwcmUtc2lnbiogCisgIGAoKExJU1QgICAgICAgLiAg ICIoIikgCisgICAgKFBBSVIgICAgICAgLiAgICIoIikgCisgICAgKFZFQ1RPUiAgICAgLiAgICIj KCIpCisgICAgKEFSUkFZICAgICAgLiAgICNmKSkpIAorOzsgYXJyYXkncyBzaWduIGlzIGNvbXBs aWNhdGVkLCByZXR1cm4gI2Ygc28gaXQgd2lsbCBiZSBoYW5kbGVkIGJ5IHByZS1wcmludAorCiso ZGVmaW5lKiAocHJlLXByaW50IGNzICM6b3B0aW9uYWwgKHBvcnQgKGN1cnJlbnQtb3V0cHV0LXBv cnQpKSkKKyAgKGxldCogKCh0eXBlIChjb2xvci1zY2hlbWUtdHlwZSBjcykpCisgICAgICAgICAo Y29udHJvbCAoY29sb3Itc2NoZW1lLWNvbnRyb2wgY3MpKQorICAgICAgICAgKHNpZ24gKGFzc3Et cmVmICpwcmUtc2lnbiogdHlwZSkpCisgICAgICAgICAoY29sb3IgKGNvbG9yLXNjaGVtZS1jb2xv ciBjcykpKSAKKyAgICAoaWYgc2lnbgorICAgICAgICAoZGlzcGxheSAoY29sb3ItaXQtaW5uZXIg Y29sb3Igc2lnbiBjb250cm9sKSBwb3J0KSAgOyBub3QgYXJyYXkKKyAgICAgICAgOzsgYXJyYXkg Y29tcGxlY2F0ZWQgY29sb3JpbmcKKyAgICAgICAgKGRpc3BsYXkgKGNvbG9yLWFycmF5LWlubmVy IGNzKSBwb3J0KSkpKQorCisoZGVmaW5lIChwcmludC1kb3QgcG9ydCkKKyAgKGxldCAoKGxpZ2h0 LWN5YW4gJyhDWUFOIEJPTEQpKSkKKyAgICAoZGlzcGxheSAoY29sb3ItaXQtaW5uZXIgbGlnaHQt Y3lhbiAiLiIgJyhSRVNFVCkpIHBvcnQpKSkKKworKGRlZmluZSAoZGVsaW1pdGVyPyBjaCkKKyAg KGNoYXItc2V0LWNvbnRhaW5zPyBjaGFyLXNldDpwdW5jdHVhdGlvbiBjaCkpCisKKyhkZWZpbmUg KGNvbG9yLWFycmF5LWlubmVyIGNzKQorICAobGV0KiAoKGNvbG9ycyAoY29sb3Itc2NoZW1lLWNv bG9yIGNzKSkKKyAgICAgICAgIChjb250cm9sIChjb2xvci1zY2hlbWUtY29udHJvbCBjcykpCisg ICAgICAgICAoc2lnbi1jb2xvciAoY2FyIGNvbG9ycykpCisgICAgICAgICAoYXR0ci1jb2xvciAo Y2FkciBjb2xvcnMpKQorICAgICAgICAgKHN0ciAob2JqZWN0LT5zdHJpbmcgKGNvbG9yLXNjaGVt ZS1vYmogY3MpKSkKKyAgICAgICAgIChhdHRycyAoc3RyaW5nLT5saXN0IAorICAgICAgICAgICAg ICAgICAoY2FsbC13aXRoLWlucHV0LXN0cmluZyBzdHIgKGxhbWJkYSAocCkgKHJlYWQtZGVsaW1p dGVkICIoIiBwKSkpKSkpCisgICAgKGNhbGwtd2l0aC1vdXRwdXQtc3RyaW5nCisgICAgIChsYW1i ZGEgKHBvcnQpCisgICAgICAgKGZvci1lYWNoIChsYW1iZGEgKGNoKQorICAgICAgICAgICAgICAg ICAgIChsZXQgKChjb2xvciAoaWYgKGRlbGltaXRlcj8gY2gpIHNpZ24tY29sb3IgYXR0ci1jb2xv cikpKQorICAgICAgICAgICAgICAgICAgICAgKGRpc3BsYXkgKGNvbG9yLWl0LWlubmVyIGNvbG9y IChzdHJpbmcgY2gpIGNvbnRyb2wpIHBvcnQpKSkKKyAgICAgICAgICAgICAgICAgYXR0cnMpCisg ICAgICAgOzsgb3V0cHV0IGxlZnQtcGFyZW4KKyAgICAgICAoZGlzcGxheSAoY29sb3ItaXQtaW5u ZXIgc2lnbi1jb2xvciAiKCIgY29udHJvbCkgcG9ydCkpKSkpCisKKzs7IFdyaXRlIGEgY2xvc2lu ZyBwYXJlbnRoZXNpcy4KKyhkZWZpbmUqIChwb3N0LXByaW50IGNzICM6b3B0aW9uYWwgKHBvcnQg KGN1cnJlbnQtb3V0cHV0LXBvcnQpKSkKKyAgKGxldCogKChjIChjb2xvci1zY2hlbWUtY29sb3Ig Y3MpKQorICAgICAgICAgKGNvbnRyb2wgKGNvbG9yLXNjaGVtZS1jb250cm9sIGNzKSkKKyAgICAg ICAgIChjb2xvciAoaWYgKGxpc3Q/IChjYXIgYykpIChjYXIgYykgYykpKSA7IGFycmF5IGhhcyBh IGNvbG9yLWxpc3QKKyAgICAoZGlzcGxheSAoY29sb3ItaXQtaW5uZXIgY29sb3IgIikiIGNvbnRy b2wpIHBvcnQpKSkKKworKGRlZmluZSAoY29sb3ItaW50ZWdlciBjcykKKyAgKGNvbG9yLWl0IGNz KSkKKworKGRlZmluZSAoY29sb3ItY2hhciBjcykKKyAgKGNvbG9yLWl0IGNzKSkKKworKGRlZmlu ZSAoY29sb3Itc3RyaW5nIGNzKQorICAoY29sb3ItaXQgY3MpKQorCisoZGVmaW5lIChjb2xvci1s aXN0IGNzKQorICAobGV0KiAoKG9iaiAoY29sb3Itc2NoZW1lLW9iaiBjcykpKQorICAgIChpZiAo cHJvcGVyLWxpc3Q/IG9iaikKKyAgICAgICAgKGNhbGwtd2l0aC1vdXRwdXQtc3RyaW5nCisgICAg ICAgICAobGFtYmRhIChwb3J0KQorICAgICAgICAgICAocHJlLXByaW50IGNzIHBvcnQpCisgICAg ICAgICAgIChkaXNwbGF5IChzdHJpbmctam9pbiAobWFwIC0+Y3N0ciBvYmopICIgIikgcG9ydCkK KyAgICAgICAgICAgKHBvc3QtcHJpbnQgY3MgcG9ydCkpKQorICAgICAgICAoY29sb3ItcGFpciBj cykpKSkKKworKGRlZmluZSAoY29sb3ItcGFpciBjcykKKyAgKGxldCogKChvYmogKGNvbG9yLXNj aGVtZS1vYmogY3MpKQorICAgICAgICAgKGQxIChjYXIgb2JqKSkKKyAgICAgICAgIChkMiAoY2Ry IG9iaikpKQorICAgIChjYWxsLXdpdGgtb3V0cHV0LXN0cmluZworICAgICAobGFtYmRhIChwb3J0 KQorICAgICAgIChwcmUtcHJpbnQgY3MgcG9ydCkKKyAgICAgICAoY29sb3JpemUgZDEgcG9ydCkK KyAgICAgICAoc3BhY2UgcG9ydCkgKHByaW50LWRvdCBwb3J0KSAoc3BhY2UgcG9ydCkKKyAgICAg ICAoY29sb3JpemUgZDIgcG9ydCkKKyAgICAgICAocG9zdC1wcmludCBjcyBwb3J0KSkpKSkKKwor KGRlZmluZSAoY29sb3ItY2xhc3MgY3MpCisgIChjb2xvci1pdCBjcykpCisKKyhkZWZpbmUgKGNv bG9yLXByb2NlZHVyZSBjcykKKyAgKGNvbG9yLWl0IGNzKSkKKworKGRlZmluZSAoY29sb3ItdmVj dG9yIGNzKQorICAobGV0ICgobGwgKHZlY3Rvci0+bGlzdCAoY29sb3Itc2NoZW1lLW9iaiBjcykp KSkKKyAgICAoY2FsbC13aXRoLW91dHB1dC1zdHJpbmcKKyAgICAgKGxhbWJkYSAocG9ydCkKKyAg ICAgICAocHJlLXByaW50IGNzIHBvcnQpCisgICAgICAgKGRpc3BsYXkgKHN0cmluZy1qb2luICht YXAgLT5jc3RyIGxsKSAiICIpIHBvcnQpCisgICAgICAgKHBvc3QtcHJpbnQgY3MgcG9ydCkpKSkp CisKKyhkZWZpbmUgKGNvbG9yLWtleXdvcmQgY3MpCisgIChjb2xvci1pdCBjcykpCisKKzs7IFRP RE86IG1heWJlIHByaW50IGl0IGFzIGNoYXIgb25lIGJ5IG9uZT8KKyhkZWZpbmUgKGNvbG9yLWNo YXItc2V0IGNzKQorICAoY29sb3ItaXQgY3MpKQorCisoZGVmaW5lIChjb2xvci1zeW1ib2wgY3Mp CisgIChjb2xvci1pdCBjcykpCisKKyhkZWZpbmUgKGNvbG9yLXN0YWNrIGNzKQorICAoY29sb3It aXQgY3MpKQorCisoZGVmaW5lIChjb2xvci1yZWNvcmQtdHlwZSBjcykKKyAgKGNvbG9yLWl0IGNz KSkKKworKGRlZmluZSAoY29sb3ItaW5leGFjdCBjcykKKyAgKGNvbG9yLWl0IGNzKSkKKworKGRl ZmluZSAoY29sb3ItZXhhY3QgY3MpCisgIChsZXQqICgob2JqIChjb2xvci1zY2hlbWUtb2JqIGNz KSkKKyAgICAgICAgIChjb2xvcnMgKGNvbG9yLXNjaGVtZS1jb2xvciBjcykpCisgICAgICAgICAo bnVtLWNvbG9yIChjYXIgY29sb3JzKSkKKyAgICAgICAgIChkaXYtY29sb3IgKGNhZHIgY29sb3Jz KSkKKyAgICAgICAgIChjb250cm9sIChjb2xvci1zY2hlbWUtY29udHJvbCBjcykpCisgICAgICAg ICAobiAob2JqZWN0LT5zdHJpbmcgKG51bWVyYXRvciBvYmopKSkKKyAgICAgICAgIChkIChvYmpl Y3QtPnN0cmluZyAoZGVub21pbmF0b3Igb2JqKSkpKQorICAgIChjYWxsLXdpdGgtb3V0cHV0LXN0 cmluZworICAgICAobGFtYmRhIChwb3J0KQorICAgICAgIChmb3JtYXQgcG9ydCAifmF+YX5hIiAK KyAgICAgICAgICAgICAgIChjb2xvci1pdC1pbm5lciBudW0tY29sb3IgbiBjb250cm9sKQorICAg ICAgICAgICAgICAgKGNvbG9yLWl0LWlubmVyIGRpdi1jb2xvciAiLyIgY29udHJvbCkKKyAgICAg ICAgICAgICAgIChjb2xvci1pdC1pbm5lciBudW0tY29sb3IgZCBjb250cm9sKSkpKSkpCisKKyhk ZWZpbmUgKGNvbG9yLXJlZ2V4cCBjcykKKyAgKGNvbG9yLWl0IGNzKSkKKworKGRlZmluZSAoY29s b3ItYml0dmVjdG9yIGNzKQorICA7OyBUT0RPOiBpcyBpdCByaWdodD8KKyAgKGNvbG9yLWl0IGNz KSkKKworKGRlZmluZSAoY29sb3ItYm9vbGVhbiBjcykKKyAgKGNvbG9yLWl0IGNzKSkKKworKGRl ZmluZSAoY29sb3ItYXJyYXkgY3MpCisgIChsZXQgKChsbCAoYXJyYXktPmxpc3QgKGNvbG9yLXNj aGVtZS1vYmogY3MpKSkpCisgICAgKGNhbGwtd2l0aC1vdXRwdXQtc3RyaW5nCisgICAgIChsYW1i ZGEgKHBvcnQpCisgICAgICAgKHByZS1wcmludCBjcyBwb3J0KQorICAgICAgIChkaXNwbGF5IChz dHJpbmctam9pbiAobWFwIC0+Y3N0ciBsbCkgIiAiKSBwb3J0KQorICAgICAgIChwb3N0LXByaW50 IGNzIHBvcnQpKSkpKQorCisoZGVmaW5lIChjb2xvci1jb21wbGV4IGNzKQorICAoY29sb3ItaXQg Y3MpKQorCisoZGVmaW5lIChjb2xvci1oYXNodGFibGUgY3MpCisgIChjb2xvci1pdCBjcykpCisK KyhkZWZpbmUgKGNvbG9yLWhvb2sgY3MpCisgIChjb2xvci1pdCBjcykpCisKKyhkZWZpbmUgKGNv bG9yLXVua25vd24gY3MpCisgIChjb2xvci1pdCBjcykpCisKKzs7LS0tIGN1c3RvbSBjb2xvciBz Y2hlbWUgLS0tCisoZGVmaW5lICpjdXN0b20tY29sb3JpemVkLWxpc3QqIChtYWtlLWZsdWlkICco KSkpCisKKyhkZWZpbmUgKGN1c3RvbS1jb2xvcml6ZWQtc2V0ISBsbCkKKyAgKGZsdWlkLXNldCEg KmN1c3RvbS1jb2xvcml6ZWQtbGlzdCogbGwpKQorCisoZGVmaW5lIChjdXJyZW50LWN1c3RvbS1j b2xvcml6ZWQpCisgIChmbHVpZC1yZWYgKmN1c3RvbS1jb2xvcml6ZWQtbGlzdCopKQorCisoZGVm aW5lIChhZGQtY29sb3Itc2NoZW1lISBjcy1saXN0KQorICAobGV0ICgobGwgKGN1cnJlbnQtY3Vz dG9tLWNvbG9yaXplZCkpKQorICAgIChjdXN0b20tY29sb3JpemVkLXNldCEgYCgsQGNzLWxpc3Qg LEBsbCkpKSkKKzs7LS0tIGN1c3RvbSBjb2xvciBzY2hlbWUgZW5kLS0tCisKKyhkZWZpbmUgKGlz LWluZXhhY3Q/IG9iaikKKyAgKGFuZCAobnVtYmVyPyBvYmopIChpbmV4YWN0PyBvYmopKSkKKwor KGRlZmluZSAoaXMtZXhhY3Q/IG9iaikKKyAgKGFuZCAobnVtYmVyPyBvYmopIChleGFjdD8gb2Jq KSkpCisKKzs7IEEgY2xhc3MgaXMgYSBzdHJ1Y3QuCisoZGVmaW5lIChjbGFzcz8gb2JqKQorICAo c3RydWN0PyBvYmopKQorCisoZGVmaW5lICpjb2xvcml6ZS1saXN0KgorICBgKCgsaW50ZWdlcj8g SU5URUdFUiAsY29sb3ItaW50ZWdlciAoQkxVRSBCT0xEKSkKKyAgICAoLGNoYXI/IENIQVIgLGNv bG9yLWNoYXIgKFlFTExPVykpCisgICAgKCxzdHJpbmc/IFNUUklORyAsY29sb3Itc3RyaW5nIChS RUQpKQorICAgICgsbGlzdD8gTElTVCAsY29sb3ItbGlzdCAoQkxVRSBCT0xEKSkKKyAgICAoLHBh aXI/IFBBSVIgLGNvbG9yLWxpc3QgKEJMQUNLIEJPTEQpKSA7IE5PVEU6IHByb3Blci1saXN0IGlz IGEgPHBhaXI+LCBhbmQgY29ucyBpcyA8cGFpcj4gdG9vLCBzbyBjYWxsIGNvbG9yLWxpc3QgZWl0 aGVyLgorICAgICgsY2xhc3M/IENMQVNTICxjb2xvci1jbGFzcyAoQ1lBTiBCT0xEKSkKKyAgICAo LHByb2NlZHVyZT8gUFJPQ0VEVVJFICxjb2xvci1wcm9jZWR1cmUgKFlFTExPVyBCT0xEKSkKKyAg ICAoLHZlY3Rvcj8gVkVDVE9SICxjb2xvci12ZWN0b3IgKE1BR0VOVEEgQk9MRCkpCisgICAgKCxr ZXl3b3JkPyBLRVlXT1JEICxjb2xvci1rZXl3b3JkIChNQUdFTlRBKSkKKyAgICAoLGNoYXItc2V0 PyBDSEFSLVNFVCAsY29sb3ItY2hhci1zZXQgKFdISVRFKSkKKyAgICAoLHN5bWJvbD8gU1lNQk9M ICxjb2xvci1zeW1ib2wgKEdSRUVOIEJPTEQpKQorICAgICgsc3RhY2s/IFNUQUNLICxjb2xvci1z dGFjayAoTUFHRU5UQSkpCisgICAgKCxyZWNvcmQtdHlwZT8gUkVDT1JELVRZUEUgLGNvbG9yLXJl Y29yZC10eXBlIChCTEFDSyBCT0xEKSkKKyAgICA7OyBXZSBkb24ndCBjaGVjayBSRUFMIGhlcmUs IHNpbmNlIGl0J2xsIGNvdmVyIEZMT0FUIGFuZCBGUkFDVElPTiwgYnV0IHVzZXIgbWF5IGN1c3Rv bXMgaXQgYXMgdGhleSB3aXNoLgorICAgICgsaXMtaW5leGFjdD8gRkxPQVQgLGNvbG9yLWluZXhh Y3QgKFlFTExPVykpCisgICAgKCxpcy1leGFjdD8gRlJBQ1RJT04gLGNvbG9yLWV4YWN0ICgoQkxV RSBCT0xEKSAoWUVMTE9XKSkpCisgICAgKCxyZWdleHA/IFJFR0VYUCAsY29sb3ItcmVnZXhwIChH UkVFTikpCisgICAgKCxiaXR2ZWN0b3I/IEJJVFZFQ1RPUiAsY29sb3ItYml0dmVjdG9yIChZRUxM T1cgQk9MRCkpCisgICAgKCxhcnJheT8gQVJSQVkgLGNvbG9yLWFycmF5ICgoQ1lBTiBCT0xEKSAo WUVMTE9XIEJPTEQpKSkKKyAgICAoLGJvb2xlYW4/IEJPT0xFQU4gLGNvbG9yLWJvb2xlYW4gKEJM VUUpKQorICAgICgsY29tcGxleD8gQ09NUExFWCAsY29sb3ItY29tcGxleCAoTUFHRU5UQSkpCisg ICAgKCxoYXNoLXRhYmxlPyBIQVNILVRBQkxFICxjb2xvci1oYXNodGFibGUgKEJMVUUpKQorICAg ICgsaG9vaz8gSE9PSyAsY29sb3ItaG9vayAoR1JFRU4pKSkpCis7OyBUT0RPOiBpZiB0aGVyZSdz IGFueXRoaW5nIHRvIGFkZAorCisoZGVmaW5lIChvYmotPnRva2VuLWNvbG9yIG9iaikKKyAgKGxl dCAoKHByb2MgKGxhbWJkYSAoeCkgKGFuZCAoKGNhciB4KSBvYmopIChjZHIgeCkpKSkpCisgICAg KG9yIChhbnkgcHJvYyAoY3VycmVudC1jdXN0b20tY29sb3JpemVkKSkgOyBjaGVja291dCB1c2Vy IGRlZmluZWQgb2JqIHR5cGUKKyAgICAgICAgKGFueSBwcm9jICpjb2xvcml6ZS1saXN0KikgOyBj aGVja291dCBkZWZhdWx0IG9iaiB0eXBlCisgICAgICAgIGAoVU5LTk9XTiAsY29sb3ItdW5rbm93 biAoV0hJVEUpKSkpKSA7IG5vIHN1aXRhYmxlIG9iaiB0eXBlICxyZXR1cm4gdGhlIHVua25vd24g c29sdXRpb24KKworOzsgTk9URTogd2UgZG9uJ3QgdXNlIGNvbnRyb2wgbm93LCBidXQgSSB3cml0 ZSB0aGUgbWVjaGFuaXNtIGZvciBmdXR1cmUgdXNhZ2UuCisoZGVmaW5lIChnZW5lcmF0ZS1jb2xv ci1zY2hlbWUgb2JqKQorICAobGV0KiAoKHIgKG9iai0+dG9rZW4tY29sb3Igb2JqKSkKKyAgICAg ICAgICh0eXBlIChjYXIgcikpCisgICAgICAgICAobWV0aG9kIChjYWRyIHIpKQorICAgICAgICAg KGNvbG9yIChjYWRkciByKSkpCisgICAgKG1ha2UtY29sb3Itc2NoZW1lIG9iaiB0eXBlIGNvbG9y ICcoUkVTRVQpIG1ldGhvZCkpKQorCisoZGVmaW5lIChnZW5lcmF0ZS1jdXN0b20tc3RyaW5nLWNv bG9yLXNjaGVtZSBzdHIgY29sb3IpCisgIChtYWtlLWNvbG9yLXNjaGVtZSBzdHIgI2YgY29sb3Ig JyhSRVNFVCkgY29sb3Itc3RyaW5nKSkKKworKGRlZmluZSAoY29sb3JpemUtc3RyaW5nIHN0ciBj b2xvcikKKyAgIkV4YW1wbGU6IChjb2xvcml6ZS1zdHJpbmcgXCJoZWxsb1wiICcoQkxVRSBCT0xE KSkiIAorICAoYW5kIChub3QgKGxpc3Q/IGNvbG9yKSkgKGVycm9yIGNvbG9yaXplLXN0cmluZyAi Y29sb3Igc2hvdWxkIGJlIGEgbGlzdCEiIGNvbG9yKSkKKyAgKGNvbG9yaXplLXN0cmluZy1oZWxw ZXIgY29sb3Igc3RyICcoUkVTRVQpKSkKKworKGRlZmluZSAoY29sb3JpemVkLWRpc3BsYXkgc3Ry IGNvbG9yKQorICAiRXhhbXBsZTogKGNvbG9yaXplZC1kaXNwbGF5IFwiaGVsbG9cIiAnKEJMVUUg Qk9MRCkpIgorICAoZGlzcGxheSAoY29sb3JpemUtc3RyaW5nIHN0ciBjb2xvcikpKQorCisoZGVm aW5lKiAoY29sb3JpemUtaXQgb2JqICM6b3B0aW9uYWwgKHBvcnQgKGN1cnJlbnQtb3V0cHV0LXBv cnQpKSkKKyAgKGNvbG9yaXplIG9iaiBwb3J0KQorICAobmV3bGluZSBwb3J0KSkKKworKGRlZmlu ZSogKGNvbG9yaXplIG9iaiAjOm9wdGlvbmFsIChwb3J0IChjdXJyZW50LW91dHB1dC1wb3J0KSkp CisgIChsZXQqICgoY3MgKGdlbmVyYXRlLWNvbG9yLXNjaGVtZSBvYmopKQorICAgICAgICAgKGYg KGNvbG9yLXNjaGVtZS1tZXRob2QgY3MpKSkKKyAgICAoZGlzcGxheSAoZiBjcykgcG9ydCkpKQor CisoZGVmaW5lICgtPmNzdHIgb2JqKQorICAoY2FsbC13aXRoLW91dHB1dC1zdHJpbmcKKyAgIChs YW1iZGEgKHBvcnQpCisgICAgIChjb2xvcml6ZSBvYmogcG9ydCkpKSkKZGlmZiAtLWdpdCBhL3Rl c3Qtc3VpdGUvdGVzdHMvY29sb3JpemVkLnRlc3QgYi90ZXN0LXN1aXRlL3Rlc3RzL2NvbG9yaXpl ZC50ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4YmFhZGIKLS0tIC9k ZXYvbnVsbAorKysgYi90ZXN0LXN1aXRlL3Rlc3RzL2NvbG9yaXplZC50ZXN0CkBAIC0wLDAgKzEs ODggQEAKKzs7OzsgY29sb3JpemVkLnRlc3QgLS0tIHRlc3QgKGljZS05IGNvbG9yaXplZCkgbW9k dWxlIC0qLSBzY2hlbWUgLSotCis7Ozs7IAorOzs7OyBDb3B5cmlnaHQgMjAxMyBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KKzs7OzsgCis7Ozs7IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKzs7OzsgbW9kaWZ5IGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworOzs7OyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK Kzs7OzsgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorOzs7OyAKKzs7OzsgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCis7Ozs7IGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7Ozs7IE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg R05VCis7Ozs7IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu Cis7Ozs7IAorOzs7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljCis7Ozs7IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKzs7OzsgRm91bmRhdGlvbiwg SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0x MzAxIFVTQQorCisoZGVmaW5lLW1vZHVsZSAodGVzdC1zdWl0ZSB0ZXN0LWljZS05LWNvbG9yaXpl ZCkKKyAgIzp1c2UtbW9kdWxlICh0ZXN0LXN1aXRlIGxpYikKKyAgIzp1c2UtbW9kdWxlIChvb3Ag Z29vcHMpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTkpCisgICM6dXNlLW1vZHVsZSAoaWNl LTkgY29sb3JpemVkKSkKKworOzsgY29sb3JpemVkLVJFUEwgdGVzdCBwcmludGVyCisoZGVmaW5l IChjb2xvci1pdC10ZXN0IGNvbG9yIHN0ciBjb250cm9sKSBzdHIpCisKKzs7OworOzs7IGNvbG9y emVkIG9iamVjdCB0ZXN0Cis7OzsKKworKGRlZmluZS1yZWNvcmQtdHlwZSBhYWEgKG1ha2UtYWFh IGEpIGFhYT8gKGEgYSkpCisKKyhkZWZpbmUgKHRlc3QtbWUgb2JqIGluZm8pCisgIChwYXJhbWV0 ZXJpemUgKChjb2xvci1mdW5jIGNvbG9yLWl0LXRlc3QpKQorICAgIChwYXNzLWlmIGluZm8gCisg ICAgICAoZXF1YWw/IChjYWxsLXdpdGgtb3V0cHV0LXN0cmluZworICAgICAgICAgICAgICAgKGxh bWJkYSAocG9ydCkgKGNvbG9yaXplIG9iaiBwb3J0KSkpCisgICAgICAgICAgICAgIChvYmplY3Qt PnN0cmluZyBvYmopKSkpKQorCisod2l0aC10ZXN0LXByZWZpeCAiY29sb3JpemVkIG9iamVjdCB0 ZXN0cyIKKworICAodGVzdC1tZSAxMjMgImludGVnZXIiKQorCisgICh0ZXN0LW1lICNcYyAiY2hh ciIpCisKKyAgKHRlc3QtbWUgImhlbGxvIHdvcmxkXG4iICJzdHJpbmciKQorCisgICh0ZXN0LW1l ICcoMSAyIDMgNCA1KSAibGlzdCIpCisKKyAgKHRlc3QtbWUgKGNvbnMgMSAyKSAicGFpciIpCisg IAorICAodGVzdC1tZSA8aW50ZWdlcj4gImNsYXNzIikKKworICAodGVzdC1tZSArICJwcm9jZWR1 cmUiKQorCisgICh0ZXN0LW1lICh2ZWN0b3IgMSAyIDMpICJ2ZWN0b3IiKQorCisgICh0ZXN0LW1l ICM6dGVzdC1tZSAia2V5d29yZCIpCisKKyAgKHRlc3QtbWUgY2hhci1zZXQ6YXNjaWkgImNoYXIt c2V0IikKKworICAodGVzdC1tZSAndGVzdC1tZSAic3ltYm9sIikKKyAgCisgICh0ZXN0LW1lICht YWtlLXN0YWNrICN0KSAic3RhY2siKQorCisgICh0ZXN0LW1lIGFhYSAicmVjb3JkLXR5cGUiKQor CisgICh0ZXN0LW1lIDEuMiAiaW5leGFjdCIpCisKKyAgKHRlc3QtbWUgMS8yICJleGFjdCIpCisK KyAgKHRlc3QtbWUgKG1ha2UtcmVnZXhwICJbMC05XSoiKSAicmVnZXhwIikKKworICAodGVzdC1t ZSAobWFrZS1iaXR2ZWN0b3IgOCkgImJpdHZlY3RvciIpCisKKyAgKHRlc3QtbWUgIzJ1MzJAMkAz KCgxIDIpICgzIDQpKSAiYXJyYXkiKQorCisgICh0ZXN0LW1lICNmICJib29sZWFuIGZhbHNlIikK KyAgKHRlc3QtbWUgI3QgImJvb2xlYW4gdHJ1ZSIpCisKKyAgKHRlc3QtbWUgMys0aSAiY29tcGxl eCIpCisKKyAgKHRlc3QtbWUgKG1ha2UtaGFzaC10YWJsZSkgImhhc2ggdGFibGUiKQorCisgICh0 ZXN0LW1lIChtYWtlLWhvb2spICJob29rIikpCisKKyAgCi0tIAoxLjcuMC40Cgo= --14dae93404154c75c504d4967c6e--