From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Luke Lee Newsgroups: gmane.emacs.devel Subject: Re: Fwd: Update earlier posted hideif.el enhancements Date: Wed, 4 Dec 2013 23:28:04 +0800 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=047d7b5d6752a852f304ecb71110 X-Trace: ger.gmane.org 1386170931 25454 80.91.229.3 (4 Dec 2013 15:28:51 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 4 Dec 2013 15:28:51 +0000 (UTC) Cc: emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Dec 04 16:28:57 2013 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 1VoENk-00013H-Cz for ged-emacs-devel@m.gmane.org; Wed, 04 Dec 2013 16:28:57 +0100 Original-Received: from localhost ([::1]:48925 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VoENj-0000Xp-Iz for ged-emacs-devel@m.gmane.org; Wed, 04 Dec 2013 10:28:55 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:42029) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VoENd-0000T5-Mu for emacs-devel@gnu.org; Wed, 04 Dec 2013 10:28:50 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VoENc-0003jH-I2 for emacs-devel@gnu.org; Wed, 04 Dec 2013 10:28:49 -0500 Original-Received: from mail-pb0-x234.google.com ([2607:f8b0:400e:c01::234]:54911) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VoENb-0003j7-Ia for emacs-devel@gnu.org; Wed, 04 Dec 2013 10:28:48 -0500 Original-Received: by mail-pb0-f52.google.com with SMTP id uo5so23749042pbc.11 for ; Wed, 04 Dec 2013 07:28:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=T1GHll5oBThvAB+2Gmj5w6wrQrZx3tO+k+MtIU60P5A=; b=UXs/XB3zl3p7jb1ZYADI60nKe/3IFGOR2VjbxauaNHP+UBVhFYgGiUdyvgEEFJ5AbM m+vUcfVz4bVVYrPYZqF75sC72lH8LOPamXApTK7wjXCIxQsPLpl9mOySb9xW5Gj3xnK+ u4dPu9sqLrlyW24xLr5urqdIjvhWSm72MuiKqK8pSqSBbv8xsaJx4unOZlwR+zmBjxF/ eklE8QytZkQ2v8VS8bV3VqLJjKZK/ECIZJx52PWafcK5icUc9tBJuAFKL1XrVKhThfiQ JddX7FNxyq/fcdiTAGCam6e6F0LgLr9Ouk8b/yssSHdKTXO9cPRav14xAs8h+vOND5jE 73Kw== X-Received: by 10.66.139.166 with SMTP id qz6mr83205153pab.88.1386170926156; Wed, 04 Dec 2013 07:28:46 -0800 (PST) Original-Received: by 10.70.17.226 with HTTP; Wed, 4 Dec 2013 07:28:04 -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:400e:c01::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:166076 Archived-At: --047d7b5d6752a852f304ecb71110 Content-Type: multipart/alternative; boundary=047d7b5d6752a852ef04ecb7110e --047d7b5d6752a852ef04ecb7110e Content-Type: text/plain; charset=ISO-8859-1 Whew! Finally I create 4 featured patches for hideif. I tried to make each of the patch standalone and feature complete but I can't guarantee that. Attached are those 4 patches. Please apply the patches according to the numeric order from 0001~0004.The only guarantee is that hideif.el can still be compiled into .elc file without error when each patch is applied (in order 0001~0004).These 4 patches are created using "git format-patch". -- Best regards, Luke Lee --047d7b5d6752a852ef04ecb7110e Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Whew! Finally I create 4 featured patches for hideif. I tr= ied to make each of=A0
the patch standalone and feature complete but I = can't guarantee that.

Attached are those 4 patches. Please= apply the patches according to the=A0
numeric order from 0001~0004.The only guarantee is that hideif.el can = still
be compiled into .elc file without error when each patch is applie= d (in order
0001~0004).These 4 patches are created using &quo= t;git format-patch".

--=A0=
Best regards,
Luke Lee

--047d7b5d6752a852ef04ecb7110e-- --047d7b5d6752a852f304ecb71110 Content-Type: application/octet-stream; name="0001-Aggregate-hideif-parser-enhancements-for-a-complete-.patch" Content-Disposition: attachment; filename="0001-Aggregate-hideif-parser-enhancements-for-a-complete-.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hosecjko1 RnJvbSAzY2Y5NTQ3M2UzMGQ4YTMwMmQ4NWVjNGY0MmVmNWQ1MDRkNDJmNDg0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWtlIExlZSA8bHVrZS55eC5sZWVAZ21haWwuY29tPgpEYXRl OiBXZWQsIDQgRGVjIDIwMTMgMTQ6MTU6NTYgKzA4MDAKU3ViamVjdDogW1BBVENIIDEvNF0gQWdn cmVnYXRlIGhpZGVpZiBwYXJzZXIgZW5oYW5jZW1lbnRzIGZvciBhIGNvbXBsZXRlCiBzdXBwb3J0 aW5nIG9mIEMvQysrIGV4cHJlc3Npb25zIGFuZCBvcGVyYXRvciBwcmVjZWRlbmNlLgoKLS0tCiBs aXNwL3Byb2dtb2Rlcy9oaWRlaWYuZWwgfCAyMzggKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOTkgaW5zZXJ0aW9ucygrKSwg MzkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMvaGlkZWlmLmVsIGIv bGlzcC9wcm9nbW9kZXMvaGlkZWlmLmVsCmluZGV4IGUyNjQ2ODIuLmNiZWU4OTUgMTAwNjQ0Ci0t LSBhL2xpc3AvcHJvZ21vZGVzL2hpZGVpZi5lbAorKysgYi9saXNwL3Byb2dtb2Rlcy9oaWRlaWYu ZWwKQEAgLTM1LDkgKzM1LDkgQEAKIDs7IE0teCBoaWRlLWlmZGVmcyAgb3IgQy1jIEAgaAogOzsK IDs7IEhpZGUtaWZkZWYgc3VwcHJlc3NlcyB0aGUgZGlzcGxheSBvZiBjb2RlIHRoYXQgdGhlIHBy ZXByb2Nlc3NvciB3b3VsZG4ndAotOzsgcGFzcyB0aHJvdWdoLiAgVGhlIHN1cHBvcnQgb2YgY29u c3RhbnQgZXhwcmVzc2lvbnMgaW4gI2lmIGxpbmVzIGlzCi07OyBsaW1pdGVkIHRvIGlkZW50aWZp ZXJzLCBwYXJlbnMsIGFuZCB0aGUgb3BlcmF0b3JzOiAmJiwgfHwsICEsIGFuZAotOzsgImRlZmlu ZWQiLiAgUGxlYXNlIGV4dGVuZCB0aGlzLgorOzsgcGFzcyB0aHJvdWdoLiAgU3VwcG9ydCBjb21w bGV0ZSBDL0MrKyBleHByZXNzaW9uIGFuZCBwcmVjZWRlbmNlLgorOzsgSXQgd2lsbCBhdXRvbWF0 aWNhbGx5IHNjYW5zIGZvciBuZXcgI2RlZmluZSBzeW1ib2xzIGFuZCBtYWNyb3Mgb24gdGhlIHdh eQorOzsgcGFyc2luZy4KIDs7CiA7OyBUaGUgaGlkZGVuIGNvZGUgaXMgbWFya2VkIGJ5IGVsbGlw c2VzICguLi4pLiAgQmUKIDs7IGNhdXRpb3VzIHdoZW4gZWRpdGluZyBuZWFyIGVsbGlwc2VzLCBz aW5jZSB0aGUgaGlkZGVuIHRleHQgaXMKQEAgLTk3LDYgKzk3LDkgQEAKIDs7CiA7OyBXcml0dGVu IGJ5IEJyaWFuIE1hcmljaywgYXQgR291bGQsIENvbXB1dGVyIFN5c3RlbXMgRGl2aXNpb24sIFVy YmFuYSBJTC4KIDs7IEV4dGVuc2l2ZWx5IG1vZGlmaWVkIGJ5IERhbmllbCBMYUxpYmVydGUgKHdo aWxlIGF0IEdvdWxkKS4KKzs7Cis7OyBFeHRlbnNpdmVseSBtb2RpZmllZCBieSBMdWtlIExlZSBp biAyMDEzIHRvIHN1cHBvcnQgY29tcGxldGUgQyBleHByZXNzaW9uCis7OyBldmFsdWF0aW9uIGFu ZCBhcmd1bWVudGVkIG1hY3JvIGV4cGFuc2lvbi4KCiA7OzsgQ29kZToKCkBAIC0zNTUsNDMgKzM1 OCw2NSBAQCB0aGF0IGZvcm0gc2hvdWxkIGJlIGRpc3BsYXllZC4iKQogOzs7ICBUaGUgY29kZSB0 aGF0IHVuZGVyc3RhbmRzIHdoYXQgaWZzIGFuZCBpZmRlZiBpbiBmaWxlcyBsb29rIGxpa2UuCgog KGRlZmNvbnN0IGhpZi1jcHAtcHJlZml4ICJcXCheXFx8XHJcXClbIFx0XSojWyBcdF0qIikKKyhk ZWZjb25zdCBoaWYtaWZ4ZGVmLXJlZ2V4cCAoY29uY2F0IGhpZi1jcHAtcHJlZml4ICJpZlxcKG5c XCk/ZGVmIikpCiAoZGVmY29uc3QgaGlmLWlmbmRlZi1yZWdleHAgKGNvbmNhdCBoaWYtY3BwLXBy ZWZpeCAiaWZuZGVmIikpCiAoZGVmY29uc3QgaGlmLWlmeC1yZWdleHAgKGNvbmNhdCBoaWYtY3Bw LXByZWZpeCAiaWZcXChuP2RlZlxcKT9bIFx0XSsiKSkKKyhkZWZjb25zdCBoaWYtZWxpZi1yZWdl eHAgICAoY29uY2F0IGhpZi1jcHAtcHJlZml4ICJlbGlmIikpCiAoZGVmY29uc3QgaGlmLWVsc2Ut cmVnZXhwIChjb25jYXQgaGlmLWNwcC1wcmVmaXggImVsc2UiKSkKIChkZWZjb25zdCBoaWYtZW5k aWYtcmVnZXhwIChjb25jYXQgaGlmLWNwcC1wcmVmaXggImVuZGlmIikpCiAoZGVmY29uc3QgaGlm LWlmeC1lbHNlLWVuZGlmLXJlZ2V4cAogICAoY29uY2F0IGhpZi1pZngtcmVnZXhwICJcXHwiIGhp Zi1lbHNlLXJlZ2V4cCAiXFx8IiBoaWYtZW5kaWYtcmVnZXhwKSkKCisoZGVmY29uc3QgaGlmLXdo aXRlICAgICAgICAgIlsgXHRdKiIpCisKIDs7IFVzZWQgdG8gc3RvcmUgdGhlIGN1cnJlbnQgdG9r ZW4gYW5kIHRoZSB3aG9sZSB0b2tlbiBsaXN0IGR1cmluZyBwYXJzaW5nLgogOzsgT25seSBib3Vu ZCBkeW5hbWljYWxseS4KIChkZWZ2YXIgaGlmLXRva2VuKQogKGRlZnZhciBoaWYtdG9rZW4tbGlz dCkKCiAoZGVmY29uc3QgaGlmLXRva2VuLWFsaXN0Ci0gICcoKCJ8fCIgLiBvcikKLSAgICAoIiYm IiAuIGFuZCkKKyAgJygoInx8IiAgLiBoaWYtb3IpCisgICAgKCImJiIgIC4gaGlmLWFuZCkKICAg ICAoInwiICAuIGhpZi1sb2dpb3IpCisgICAgKCJeIiAgIC4gaGlmLWxvZ3hvcikKICAgICAoIiYi ICAuIGhpZi1sb2dhbmQpCi0gICAgKCI9PSIgLiBlcXVhbCkKKyAgICAoIjw8IiAgLiBoaWYtc2hp ZnRsZWZ0KQorICAgICgiPj4iICAuIGhpZi1zaGlmdHJpZ2h0KQorICAgICgiPT0iICAuIGhpZi1l cXVhbCkKKyAgICAoIj0iICAgLiBoaWYtYXNzaWduKQogICAgICgiIT0iIC4gaGlmLW5vdGVxdWFs KQotICAgICgiISIgIC4gbm90KQotICAgICgiKCIgIC4gbHBhcmVuKQotICAgICgiKSIgIC4gcnBh cmVuKQorICAgICgiIyMiICAuIGhpZi10b2tlbi1jb25jYXQpCisgICAgKCIhIiAgIC4gaGlmLW5v dCkKKyAgICAoIn4iICAgLiBoaWYtbG9nbm90KQorICAgICgiKCIgICAuIGhpZi1scGFyZW4pCisg ICAgKCIpIiAgIC4gaGlmLXJwYXJlbikKICAgICAoIj4iICAuIGhpZi1ncmVhdGVyKQogICAgICgi PCIgIC4gaGlmLWxlc3MpCiAgICAgKCI+PSIgLiBoaWYtZ3JlYXRlci1lcXVhbCkKICAgICAoIjw9 IiAuIGhpZi1sZXNzLWVxdWFsKQogICAgICgiKyIgIC4gaGlmLXBsdXMpCiAgICAgKCItIiAgLiBo aWYtbWludXMpCisgICAgKCIqIiAgIC4gaGlmLW11bHRpcGx5KQorICAgICgiLyIgICAuIGhpZi1k aXZpZGUpCisgICAgKCIlIiAgIC4gaGlmLW1vZHVsbykKICAgICAoIj8iICAuIGhpZi1jb25kaXRp b25hbCkKICAgICAoIjoiICAuIGhpZi1jb2xvbikpKQoKIChkZWZjb25zdCBoaWYtdG9rZW4tcmVn ZXhwCi0gIChjb25jYXQgKHJlZ2V4cC1vcHQgKG1hcGNhciAnY2FyIGhpZi10b2tlbi1hbGlzdCkp ICJcXHxcXHcrIikpCisgIChjb25jYXQgKHJlZ2V4cC1vcHQgKG1hcGNhciAnY2FyIGhpZi10b2tl bi1hbGlzdCkpCisgICAgICAgICAgIlxcfDB4WzAtOWEtZkEtRl0rXFwuP1swLTlhLWZBLUZdKiIK KyAgICAgICAgICAiXFx8WzAtOV0rXFwuP1swLTldKiIgIDs7IGRlY2ltYWwvb2N0YWwKKyAgICAg ICAgICAiXFx8XFx3KyIpKQorCisoZGVmY29uc3QgaGlmLXN0cmluZy1saXRlcmFsLXJlZ2V4cAor ICAoY29uY2F0IGhpZi13aGl0ZSAiXFwoXCJbXlwiXSpcIlxcKSIpKQorCisoZGVmdmFyIGhpZi1z aW1wbGUtdG9rZW4tb25seSBuaWwpCgogKGRlZnVuIGhpZi10b2tlbml6ZSAoc3RhcnQgZW5kKQog ICAiU2VwYXJhdGUgc3RyaW5nIGJldHdlZW4gU1RBUlQgYW5kIEVORCBpbnRvIGEgbGlzdCBvZiB0 b2tlbnMuIgogICAobGV0ICgodG9rZW4tbGlzdCBuaWwpKQorICAgIChzZXRxIGhpZi1zaW1wbGUt dG9rZW4tb25seSB0KQogICAgICh3aXRoLXN5bnRheC10YWJsZSBoaWRlLWlmZGVmLXN5bnRheC10 YWJsZQogICAgICAgKHNhdmUtZXhjdXJzaW9uCiAJKGdvdG8tY2hhciBzdGFydCkKQEAgLTQwMSwy MyArNDI2LDU0IEBAIHRoYXQgZm9ybSBzaG91bGQgYmUgZGlzcGxheWVkLiIpCiAJICAgKChsb29r aW5nLWF0ICJcXFxcXG4iKQogCSAgICAoZm9yd2FyZC1jaGFyIDIpKQoKKyAgICAgICAgICAgKChs b29raW5nLWF0IGhpZi1zdHJpbmctbGl0ZXJhbC1yZWdleHApCisgICAgICAgICAgICAocHVzaCAo c3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgKG1hdGNoLXN0cmluZyAxKSkgdG9rZW4tbGlzdCkKKyAg ICAgICAgICAgIChnb3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkpCiAJICAgKChsb29raW5nLWF0IGhp Zi10b2tlbi1yZWdleHApCiAJICAgIChsZXQgKCh0b2tlbiAoYnVmZmVyLXN1YnN0cmluZyAocG9p bnQpIChtYXRjaC1lbmQgMCkpKSkKIAkgICAgICAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkpCiAJ ICAgICAgOzsgKG1lc3NhZ2UgInRva2VuOiAlcyIgdG9rZW4pIChzaXQtZm9yIDEpCiAJICAgICAg KHB1c2ggKG9yIChjZHIgKGFzc29jIHRva2VuIGhpZi10b2tlbi1hbGlzdCkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAoaWYgKHN0cmluZy1lcXVhbCB0b2tlbiAiZGVmaW5lZCIpICdoaWYtZGVm aW5lZCkKLSAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoc3RyaW5nLW1hdGNoICJcXGBbMC05 XSpcXCciIHRva2VuKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctdG8tbnVt YmVyIHRva2VuKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlcm4gdG9rZW4pKQorICAg ICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctbWF0Y2ggIjB4XFwoW2EtZkEtRjAtOV0r XFwpIiB0b2tlbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLXRvLW51bWJl ciAobWF0Y2gtc3RyaW5nIDEgdG9rZW4pIDE2KSkgOzsgaGV4YWRlY2ltYWwKKyAgICAgICAgICAg ICAgICAgICAgICAgIChpZiAoc3RyaW5nLW1hdGNoICJcXGAwWzAtOV0qXFwoXFwuWzAtOV0rXFwp P1xcJyIgdG9rZW4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy10by1udW1i ZXIgdG9rZW4gOCkpIDs7IG9jdGFsCisgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHN0cmlu Zy1tYXRjaCAiXFxgWzEtOV1bMC05XSpcXChcXC5bMC05XStcXCk/XFwnIiB0b2tlbikKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLXRvLW51bWJlciB0b2tlbikpIDs7IGRlY2lt YWwKKyAgICAgICAgICAgICAgICAgICAgICAgIChwcm9nMSAoaW50ZXJuIHRva2VuKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAoc2V0cSBoaWYtc2ltcGxlLXRva2VuLW9ubHkgbmlsKSkpCiAJ CSAgICB0b2tlbi1saXN0KSkpCiAJICAgKHQgKGVycm9yICJCYWQgI2lmIGV4cHJlc3Npb246ICVz IiAoYnVmZmVyLXN0cmluZykpKSkpKSkKICAgICAobnJldmVyc2UgdG9rZW4tbGlzdCkpKQoKLTs7 Oy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi07OzsgVHJhbnNsYXRlIEMgcHJlcHJvY2Vzc29yICNpZiBleHByZXNzaW9ucyB1 c2luZyByZWN1cnNpdmUgZGVzY2VudC4KLTs7OyBUaGlzIHBhcnNlciBpcyBsaW1pdGVkIHRvIHRo ZSBvcGVyYXRvcnMgJiYsIHx8LCAhLCBhbmQgImRlZmluZWQiLgotOzs7IEFkZGVkID09LCAhPSwg KywgYW5kIC0uICBHYXJ5IE9iZXJicnVubmVyLCBnYXJ5b0BhdnMuY29tLCA4LzkvOTQKKzs7LS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCis7OyBUcmFuc2xhdGUgQyBwcmVwcm9jZXNzb3IgI2lmIGV4cHJlc3Npb25z IHVzaW5nIHJlY3Vyc2l2ZSBkZXNjZW50LgorOzsgVGhpcyBwYXJzZXIgaXMgbGltaXRlZCB0byB0 aGUgb3BlcmF0b3JzICYmLCB8fCwgISwgYW5kICJkZWZpbmVkIi4KKzs7IEFkZGVkID09LCAhPSwg KywgYW5kIC0uICBHYXJ5IE9iZXJicnVubmVyLCBnYXJ5b0BhdnMuY29tLCA4LzkvOTQKKzs7Cis7 OyBJbXBsZW1lbnQgdGhlIEMgbGFuZ3VhZ2Ugb3BlcmF0b3IgcHJlY2VkZW5jZSB0YWJsZS4gQWRk IGFsbCB0aG9zZQorOzsgbWlzc2luZyBvcGVyYXRvcnMgdGhhdCBjb3VsZCBiZSB1c2VkIGluIG1h Y3Jvcy4gTHVrZSBMZWUgMjAxMy0wOS0wNAorCis7OyAgfCBPcGVyYXRvciBUeXBlICAgICAgICB8 IE9wZXJhdG9yICAgICAgICAgICAgICAgICAgICB8IEFzc29jaWF0aXZpdHkgfAorOzsgICstLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSsKKzs7ICB8IFByaW1hcnkgRXhwcmVzc2lvbiAgIHwgKCkgW10gLiAtPiBleHByKysg ZXhwci0tICAgIHwgbGVmdC10by1yaWdodCB8Cis7OyAgfCBVbmFyeSBPcGVyYXRvcnMgICAgICB8 ICogJiArIC0gISB+ICsrZXhwciAtLWV4cHIgICB8IHJpZ2h0LXRvLWxlZnQgfAorOzsgIHwgICAg ICAgICAgICAgICAgICAgICAgfCAodHlwZWNhc3QpIHNpemVvZiAgICAgICAgICAgfCAgICAgICAg ICAgICAgIHwKKzs7ICB8IEJpbmFyeSBPcGVyYXRvcnMgICAgIHwgKiAvICUgICAgICAgICAgICAg ICAgICAgICAgIHwgbGVmdC10by1yaWdodCB8Cis7OyAgfCAgICAgICAgICAgICAgICAgICAgICB8 ICsgLSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfAorOzsgIHwgICAg ICAgICAgICAgICAgICAgICAgfCA+PiA8PCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgIHwKKzs7ICB8ICAgICAgICAgICAgICAgICAgICAgIHwgPCA+IDw9ID49ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICB8Cis7OyAgfCAgICAgICAgICAgICAgICAgICAgICB8 ID09ICE9ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfAorOzsgIHwgICAg ICAgICAgICAgICAgICAgICAgfCAmICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgIHwKKzs7ICB8ICAgICAgICAgICAgICAgICAgICAgIHwgXiAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICB8Cis7OyAgfCAgICAgICAgICAgICAgICAgICAgICB8 IHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgfAorOzsgIHwgICAg ICAgICAgICAgICAgICAgICAgfCAmJiAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgIHwKKzs7ICB8ICAgICAgICAgICAgICAgICAgICAgIHwgfHwgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICB8Cis7OyAgfCBUZXJuYXJ5IE9wZXJhdG9yICAgICB8 ID86ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJpZ2h0LXRvLWxlZnQgfAorOzsgeHwgQXNz aWdubWVudCBPcGVyYXRvcnMgfCA9ICs9IC09ICo9IC89ICU9ID4+PSA8PD0gJj0gfCByaWdodC10 by1sZWZ0IHwKKzs7ICB8ICAgICAgICAgICAgICAgICAgICAgIHwgXj0gPSAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICB8Cis7OyAgfCBDb21tYSAgICAgICAgICAgICAgICB8 ICwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGxlZnQtdG8tcmlnaHQgfAoKIChkZWZzdWJz dCBoaWYtbmV4dHRva2VuICgpCiAgICJQb3AgdGhlIG5leHQgdG9rZW4gZnJvbSB0b2tlbi1saXN0 IGludG8gdGhlIGxldCB2YXJpYWJsZSBcImhpZi10b2tlblwiLiIKQEAgLTQyOCwxMCArNDg0LDI2 IEBAIHRoYXQgZm9ybSBzaG91bGQgYmUgZGlzcGxheWVkLiIpCiAgIChsZXQgKChoaWYtdG9rZW4t bGlzdCB0b2tlbi1saXN0KSkKICAgICAoaGlmLW5leHR0b2tlbikKICAgICAocHJvZzEKLSAgICAg ICAgKGhpZi1leHByKQorICAgICAgICAoYW5kIGhpZi10b2tlbgorICAgICAgICAgICAgIChoaWYt ZXhwcmxpc3QpKQogICAgICAgKGlmIGhpZi10b2tlbiA7IGlzIHRoZXJlIHN0aWxsIGEgdG9rZW4/ CiAgICAgICAgICAgKGVycm9yICJFcnJvcjogdW5leHBlY3RlZCB0b2tlbjogJXMiIGhpZi10b2tl bikpKSkpCgorCisoZGVmdW4gaGlmLWV4cHJsaXN0ICgpCisgICJQYXJzZSBhbiBleHBybGlzdDog ZXhwciB7ICcsJyBleHByfSIKKyAgKGxldCAoKHJlc3VsdCAoaGlmLWV4cHIpKQorICAgICAgICBj b21tYSkKKyAgICAod2hpbGUgKGVxIGhpZi10b2tlbiAnaGlmLWNvbW1hKQorICAgICAgKHVubGVz cyBjb21tYQorICAgICAgICAoc2V0cSByZXN1bHQgKGxpc3QgcmVzdWx0KSkpCisgICAgICAoc2V0 cSBjb21tYSB0KQorICAgICAgKGhpZi1uZXh0dG9rZW4pCisgICAgICAoc2V0cSByZXN1bHQgKGFw cGVuZCByZXN1bHQgKGxpc3QgKGhpZi1leHByKSkpKSkKKyAgICAoaWYgY29tbWEKKyAgICAgICAg KGFwcGVuZCAobGlzdCAnaGlmLWNvbW1hKSByZXN1bHQpCisgICAgICByZXN1bHQpKSkKKwogKGRl ZnVuIGhpZi1leHByICgpCiAgICJQYXJzZSBhbiBleHByZXNzaW9uIGFzIGZvdW5kIGluICNpZi4K ICAgICAgICBleHByIDogb3ItZXhwciB8IG9yLWV4cHIgJz8nIGV4cHIgJzonIGV4cHIuIgpAQCAt NDQ4LDY3ICs1MjAsMTI1IEBAIHRoYXQgZm9ybSBzaG91bGQgYmUgZGlzcGxheWVkLiIpCiAgICAg cmVzdWx0KSkKCiAoZGVmdW4gaGlmLW9yLWV4cHIgKCkKLSAgIlBhcnNlIG4gb3ItZXhwciA6IGFu ZC1leHByIHwgb3ItZXhwciAnfHwnIGFuZC1leHByLiIKKyAgIlBhcnNlIGFuIG9yLWV4cHIgOiBh bmQtZXhwciB8IG9yLWV4cHIgJ3x8JyBhbmQtZXhwci4iCiAgIChsZXQgKChyZXN1bHQgKGhpZi1h bmQtZXhwcikpKQotICAgICh3aGlsZSAoZXEgaGlmLXRva2VuICdvcikKKyAgICAod2hpbGUgKGVx IGhpZi10b2tlbiAnaGlmLW9yKQogICAgICAgKGhpZi1uZXh0dG9rZW4pCiAgICAgICAoc2V0cSBy ZXN1bHQgKGxpc3QgJ2hpZi1vciByZXN1bHQgKGhpZi1hbmQtZXhwcikpKSkKICAgcmVzdWx0KSkK CiAoZGVmdW4gaGlmLWFuZC1leHByICgpCi0gICJQYXJzZSBhbiBhbmQtZXhwciA6IGVxLWV4cHIg fCBhbmQtZXhwciAnJiYnIGVxLWV4cHIuIgorICAiUGFyc2UgYW4gYW5kLWV4cHIgOiBsb2dpb3It ZXhwciB8IGFuZC1leHByICcmJicgbG9naW9yLWV4cHIuIgorICAobGV0ICgocmVzdWx0IChoaWYt bG9naW9yLWV4cHIpKSkKKyAgICAod2hpbGUgKGVxIGhpZi10b2tlbiAnaGlmLWFuZCkKKyAgICAg IChoaWYtbmV4dHRva2VuKQorICAgICAgKHNldHEgcmVzdWx0IChsaXN0ICdoaWYtYW5kIHJlc3Vs dCAoaGlmLWxvZ2lvci1leHByKSkpKQorICAgIHJlc3VsdCkpCisKKyhkZWZ1biBoaWYtbG9naW9y LWV4cHIgKCkKKyAgIlBhcnNlIGEgbG9nb3ItZXhwciA6IGxvZ3hvci1leHByIHwgbG9nb3ItZXhw ciAnfCcgbG9neG9yLWV4cHIuIgorICAobGV0ICgocmVzdWx0IChoaWYtbG9neG9yLWV4cHIpKSkK KyAgICAod2hpbGUgKGVxIGhpZi10b2tlbiAnaGlmLWxvZ2lvcikKKyAgICAgIChoaWYtbmV4dHRv a2VuKQorICAgICAgKHNldHEgcmVzdWx0IChsaXN0ICdoaWYtbG9naW9yIHJlc3VsdCAoaGlmLWxv Z3hvci1leHByKSkpKQorICAgIHJlc3VsdCkpCisKKyhkZWZ1biBoaWYtbG9neG9yLWV4cHIgKCkK KyAgIlBhcnNlIGEgbG9neG9yLWV4cHIgOiBsb2dhbmQtZXhwciB8IGxvZ3hvci1leHByICdeJyBs b2dhbmQtZXhwci4iCisgIChsZXQgKChyZXN1bHQgKGhpZi1sb2dhbmQtZXhwcikpKQorICAgICh3 aGlsZSAoZXEgaGlmLXRva2VuICdoaWYtbG9neG9yKQorICAgICAgKGhpZi1uZXh0dG9rZW4pCisg ICAgICAoc2V0cSByZXN1bHQgKGxpc3QgJ2hpZi1sb2d4b3IgcmVzdWx0IChoaWYtbG9nYW5kLWV4 cHIpKSkpCisgICAgcmVzdWx0KSkKKworKGRlZnVuIGhpZi1sb2dhbmQtZXhwciAoKQorICAiUGFy c2UgYSBsb2dhbmQtZXhwciA6IGVxLWV4cHIgfCBsb2dhbmQtZXhwciAnJicgZXEtZXhwci4iCiAg IChsZXQgKChyZXN1bHQgKGhpZi1lcS1leHByKSkpCi0gICAgKHdoaWxlIChlcSBoaWYtdG9rZW4g J2FuZCkKKyAgICAod2hpbGUgKGVxIGhpZi10b2tlbiAnaGlmLWxvZ2FuZCkKICAgICAgIChoaWYt bmV4dHRva2VuKQotICAgICAgKHNldHEgcmVzdWx0IChsaXN0ICdoaWYtYW5kIHJlc3VsdCAoaGlm LWVxLWV4cHIpKSkpCisgICAgICAoc2V0cSByZXN1bHQgKGxpc3QgJ2hpZi1sb2dhbmQgcmVzdWx0 IChoaWYtZXEtZXhwcikpKSkKICAgICByZXN1bHQpKQoKIChkZWZ1biBoaWYtZXEtZXhwciAoKQot ICAiUGFyc2UgYW4gZXEtZXhwciA6IG1hdGggfCBlcS1leHByIGA9PSd8YCE9J3xgPCd8YD4nfGA+ PSd8YDw9JyBtYXRoLiIKLSAgKGxldCAoKHJlc3VsdCAoaGlmLW1hdGgpKQorICAiUGFyc2UgYW4g ZXEtZXhwciA6IGNvbXAgfCBlcS1leHByIGA9PSd8YCE9JyBjb21wLiIKKyAgKGxldCAoKHJlc3Vs dCAoaGlmLWNvbXAtZXhwcikpCiAJKGVxLXRva2VuIG5pbCkpCi0gICAgKHdoaWxlIChtZW1xIGhp Zi10b2tlbiAnKGVxdWFsIGhpZi1ub3RlcXVhbCBoaWYtZ3JlYXRlciBoaWYtbGVzcwotCQkJICAg ICBoaWYtZ3JlYXRlci1lcXVhbCBoaWYtbGVzcy1lcXVhbCkpCisgICAgKHdoaWxlIChtZW1xIGhp Zi10b2tlbiAnKGhpZi1lcXVhbCBoaWYtbm90ZXF1YWwpKQogICAgICAgKHNldHEgZXEtdG9rZW4g aGlmLXRva2VuKQogICAgICAgKGhpZi1uZXh0dG9rZW4pCi0gICAgICAoc2V0cSByZXN1bHQgKGxp c3QgZXEtdG9rZW4gcmVzdWx0IChoaWYtbWF0aCkpKSkKKyAgICAgIChzZXRxIHJlc3VsdCAobGlz dCBlcS10b2tlbiByZXN1bHQgKGhpZi1jb21wLWV4cHIpKSkpCisgICAgcmVzdWx0KSkKKworKGRl ZnVuIGhpZi1jb21wLWV4cHIgKCkKKyAgIlBhcnNlIGEgY29tcC1leHByIDogbG9nc2hpZnQgfCBj b21wLWV4cHIgYDwnfGA+J3xgPj0nfGA8PScgbG9nc2hpZnQuIgorICAobGV0ICgocmVzdWx0ICho aWYtbG9nc2hpZnQtZXhwcikpCisgICAgICAgIChjb21wLXRva2VuIG5pbCkpCisgICAgKHdoaWxl IChtZW1xIGhpZi10b2tlbiAnKGhpZi1ncmVhdGVyIGhpZi1sZXNzIGhpZi1ncmVhdGVyLWVxdWFs IGhpZi1sZXNzLWVxdWFsKSkKKyAgICAgIChzZXRxIGNvbXAtdG9rZW4gaGlmLXRva2VuKQorICAg ICAgKGhpZi1uZXh0dG9rZW4pCisgICAgICAoc2V0cSByZXN1bHQgKGxpc3QgY29tcC10b2tlbiBy ZXN1bHQgKGhpZi1sb2dzaGlmdC1leHByKSkpKQorICAgIHJlc3VsdCkpCisKKyhkZWZ1biBoaWYt bG9nc2hpZnQtZXhwciAoKQorICAiUGFyc2UgYSBsb2dzaGlmdCA6IG1hdGggfCBsb2dzaGlmdCBg PDwnfGA+PicgbWF0aC4iCisgIChsZXQgKChyZXN1bHQgKGhpZi1tYXRoKSkKKyAgICAgICAgKHNo aWZ0LXRva2VuIG5pbCkpCisgICAgKHdoaWxlIChtZW1xIGhpZi10b2tlbiAnKGhpZi1zaGlmdGxl ZnQgaGlmLXNoaWZ0cmlnaHQpKQorICAgICAgKHNldHEgc2hpZnQtdG9rZW4gaGlmLXRva2VuKQor ICAgICAgKGhpZi1uZXh0dG9rZW4pCisgICAgICAoc2V0cSByZXN1bHQgKGxpc3Qgc2hpZnQtdG9r ZW4gcmVzdWx0IChoaWYtbWF0aCkpKSkKICAgICByZXN1bHQpKQoKIChkZWZ1biBoaWYtbWF0aCAo KQotICAiUGFyc2UgYW4gZXhwcmVzc2lvbiB3aXRoICsgb3IgLSBhbmQgc2ltcGxlciB0aGluZ3Mu Ci0gICAgICAgbWF0aCA6IGZhY3RvciB8IG1hdGggJyt8LScgZmFjdG9yLiIKKyAgIlBhcnNlIGFu IGV4cHJlc3Npb24gd2l0aCArIG9yIC0uCisgICAgICAgbWF0aCA6IG11bGRpdiB8IG1hdGggJyt8 LScgbXVsZGl2LiIKKyAgKGxldCAoKHJlc3VsdCAoaGlmLW11bGRpdi1leHByKSkKKyAgICAgICAg KG1hdGgtb3AgbmlsKSkKKyAgICAod2hpbGUgKG1lbXEgaGlmLXRva2VuICcoaGlmLXBsdXMgaGlm LW1pbnVzKSkKKyAgICAgIChzZXRxIG1hdGgtb3AgaGlmLXRva2VuKQorICAgICAgKGhpZi1uZXh0 dG9rZW4pCisgICAgICAoc2V0cSByZXN1bHQgKGxpc3QgbWF0aC1vcCByZXN1bHQgKGhpZi1tdWxk aXYtZXhwcikpKSkKKyAgICByZXN1bHQpKQorCisoZGVmdW4gaGlmLW11bGRpdi1leHByICgpCisg ICJQYXJzZSBhbiBleHByZXNzaW9uIHdpdGggKiwvLCUuCisgICAgICAgbXVsZGl2IDogZmFjdG9y IHwgbXVsZGl2ICcqfC98JScgZmFjdG9yLiIKICAgKGxldCAoKHJlc3VsdCAoaGlmLWZhY3Rvcikp CiAJKG1hdGgtb3AgbmlsKSkKLSAgICAod2hpbGUgKG1lbXEgaGlmLXRva2VuICcoaGlmLXBsdXMg aGlmLW1pbnVzIGhpZi1sb2dpb3IgaGlmLWxvZ2FuZCkpCisgICAgKHdoaWxlIChtZW1xIGhpZi10 b2tlbiAnKGhpZi1tdWx0aXBseSBoaWYtZGl2aWRlIGhpZi1tb2R1bG8pKQogICAgICAgKHNldHEg bWF0aC1vcCBoaWYtdG9rZW4pCiAgICAgICAoaGlmLW5leHR0b2tlbikKICAgICAgIChzZXRxIHJl c3VsdCAobGlzdCBtYXRoLW9wIHJlc3VsdCAoaGlmLWZhY3RvcikpKSkKICAgcmVzdWx0KSkKCiAo ZGVmdW4gaGlmLWZhY3RvciAoKQotICAiUGFyc2UgYSBmYWN0b3I6ICchJyBmYWN0b3IgfCAnKCcg ZXhwciAnKScgfCAnZGVmaW5lZCgnIGlkICcpJyB8IGlkLiIKKyAgIlBhcnNlIGEgZmFjdG9yOiAn IScgZmFjdG9yIHwgJ34nIGZhY3RvciB8ICcoJyBleHByICcpJyB8ICdkZWZpbmVkKCcgaWQgJykn IHwgJ2lkKHBhcm1saXN0KScgfCBzdHJpbmdzIHwgaWQuIgogICAoY29uZAotICAgKChlcSBoaWYt dG9rZW4gJ25vdCkKKyAgICgoZXEgaGlmLXRva2VuICdoaWYtbm90KQogICAgIChoaWYtbmV4dHRv a2VuKQogICAgIChsaXN0ICdoaWYtbm90IChoaWYtZmFjdG9yKSkpCgotICAgKChlcSBoaWYtdG9r ZW4gJ2xwYXJlbikKKyAgICgoZXEgaGlmLXRva2VuICdoaWYtbG9nbm90KQogICAgIChoaWYtbmV4 dHRva2VuKQotICAgIChsZXQgKChyZXN1bHQgKGhpZi1leHByKSkpCi0gICAgICAoaWYgKG5vdCAo ZXEgaGlmLXRva2VuICdycGFyZW4pKQorICAgIChsaXN0ICdoaWYtbG9nbm90IChoaWYtZmFjdG9y KSkpCisKKyAgICgoZXEgaGlmLXRva2VuICdoaWYtbHBhcmVuKQorICAgIChoaWYtbmV4dHRva2Vu KQorICAgIChsZXQgKChyZXN1bHQgKGhpZi1leHBybGlzdCkpKQorICAgICAgKGlmIChub3QgKGVx IGhpZi10b2tlbiAnaGlmLXJwYXJlbikpCiAJICAoZXJyb3IgIkJhZCB0b2tlbiBpbiBwYXJlbnRo ZXNpemVkIGV4cHJlc3Npb246ICVzIiBoaWYtdG9rZW4pCiAJKGhpZi1uZXh0dG9rZW4pCiAJcmVz dWx0KSkpCgogICAgKChlcSBoaWYtdG9rZW4gJ2hpZi1kZWZpbmVkKQogICAgIChoaWYtbmV4dHRv a2VuKQotICAgIChsZXQgKChwYXJlbiAod2hlbiAoZXEgaGlmLXRva2VuICdscGFyZW4pIChoaWYt bmV4dHRva2VuKSB0KSkKKyAgICAobGV0ICgocGFyZW4gKHdoZW4gKGVxIGhpZi10b2tlbiAnaGlm LWxwYXJlbikgKGhpZi1uZXh0dG9rZW4pIHQpKQogCSAgKGlkZW50IGhpZi10b2tlbikpCi0gICAg ICAoaWYgKG1lbXEgaGlmLXRva2VuICcob3IgYW5kIG5vdCBoaWYtZGVmaW5lZCBscGFyZW4gcnBh cmVuKSkKKyAgICAgIChpZiAobWVtcSBoaWYtdG9rZW4gJyhvciBhbmQgbm90IGhpZi1kZWZpbmVk IGhpZi1scGFyZW4gaGlmLXJwYXJlbikpCiAJICAoZXJyb3IgIkVycm9yOiB1bmV4cGVjdGVkIHRv a2VuOiAlcyIgaGlmLXRva2VuKSkKICAgICAgICh3aGVuIHBhcmVuCiAJKGhpZi1uZXh0dG9rZW4p Ci0JKHVubGVzcyAoZXEgaGlmLXRva2VuICdycGFyZW4pCisgICAgICAgICh1bmxlc3MgKGVxIGhp Zi10b2tlbiAnaGlmLXJwYXJlbikKIAkgIChlcnJvciAiRXJyb3I6IGV4cGVjdGVkIFwiKVwiIGFm dGVyIGlkZW50aWZpZXIiKSkpCiAgICAgICAoaGlmLW5leHR0b2tlbikKICAgICAgIGAoaGlmLWRl ZmluZWQgKHF1b3RlICxpZGVudCkpKSkKQEAgLTU0MSwyMSArNjcxLDUxIEBAIHRoYXQgZm9ybSBz aG91bGQgYmUgZGlzcGxheWVkLiIpCiAgIChvciAobm90ICh6ZXJvcCAoaGlmLW1hdGhpZnkgYSkp KSAobm90ICh6ZXJvcCAoaGlmLW1hdGhpZnkgYikpKSkpCiAoZGVmdW4gaGlmLW5vdCAoYSkKICAg KHplcm9wIChoaWYtbWF0aGlmeSBhKSkpCisoZGVmdW4gaGlmLWxvZ25vdCAoYSkKKyAgKGxvZ25v dCBhKSkKCiAoZGVmbWFjcm8gaGlmLW1hdGhpZnktYmlub3AgKGZ1bikKICAgYChsYW1iZGEgKGEg YikKICAgICAgLChmb3JtYXQgIkxpa2UgYCVzJyBidXQgdHJlYXQgdCBhbmQgbmlsIGFzIDEgYW5k IDAuIiBmdW4pCiAgICAgICgsZnVuIChoaWYtbWF0aGlmeSBhKSAoaGlmLW1hdGhpZnkgYikpKSkK CisoZGVmdW4gc2hpZnRsZWZ0LWhpZiAoYSBiKQorICAoaWYgKDwgYSAwKQorICAgICAgKGFzaCBh IGIpCisgICAgKGxzaCBhIGIpKSkKKworKGRlZnVuIHNoaWZ0cmlnaHQtaGlmIChhIGIpCisgIChp ZiAoPCBhIDApCisgICAgICAoYXNoIGEgKC0gMCBiKSkKKyAgICAobHNoIGEgKC0gMCBiKSkpKQor CisKKyhkZWZhbGlhcyAnaGlmLW11bHRpcGx5ICAgICAgKGhpZi1tYXRoaWZ5LWJpbm9wICopKQor KGRlZmFsaWFzICdoaWYtZGl2aWRlICAgICAgICAoaGlmLW1hdGhpZnktYmlub3AgLykpCisoZGVm YWxpYXMgJ2hpZi1tb2R1bG8gICAgICAgIChoaWYtbWF0aGlmeS1iaW5vcCAlKSkKIChkZWZhbGlh cyAnaGlmLXBsdXMgICAgICAgICAgKGhpZi1tYXRoaWZ5LWJpbm9wICspKQogKGRlZmFsaWFzICdo aWYtbWludXMgICAgICAgICAoaGlmLW1hdGhpZnktYmlub3AgLSkpCisoZGVmYWxpYXMgJ2hpZi1l cXVhbCAgICAgICAgIChoaWYtbWF0aGlmeS1iaW5vcCA9KSkKIChkZWZhbGlhcyAnaGlmLW5vdGVx dWFsICAgICAgKGhpZi1tYXRoaWZ5LWJpbm9wIC89KSkKIChkZWZhbGlhcyAnaGlmLWdyZWF0ZXIg ICAgICAgKGhpZi1tYXRoaWZ5LWJpbm9wID4pKQogKGRlZmFsaWFzICdoaWYtbGVzcyAgICAgICAg ICAoaGlmLW1hdGhpZnktYmlub3AgPCkpCiAoZGVmYWxpYXMgJ2hpZi1ncmVhdGVyLWVxdWFsICho aWYtbWF0aGlmeS1iaW5vcCA+PSkpCiAoZGVmYWxpYXMgJ2hpZi1sZXNzLWVxdWFsICAgIChoaWYt bWF0aGlmeS1iaW5vcCA8PSkpCiAoZGVmYWxpYXMgJ2hpZi1sb2dpb3IgICAgICAgIChoaWYtbWF0 aGlmeS1iaW5vcCBsb2dpb3IpKQorKGRlZmFsaWFzICdoaWYtbG9neG9yICAgICAgICAoaGlmLW1h dGhpZnktYmlub3AgbG9neG9yKSkKIChkZWZhbGlhcyAnaGlmLWxvZ2FuZCAgICAgICAgKGhpZi1t YXRoaWZ5LWJpbm9wIGxvZ2FuZCkpCisoZGVmYWxpYXMgJ2hpZi1zaGlmdGxlZnQgICAgIChoaWYt bWF0aGlmeS1iaW5vcCBzaGlmdGxlZnQtaGlmKSkKKyhkZWZhbGlhcyAnaGlmLXNoaWZ0cmlnaHQg ICAgKGhpZi1tYXRoaWZ5LWJpbm9wIHNoaWZ0cmlnaHQtaGlmKSkKKworCisoZGVmdW4gaGlmLWNv bW1hICgmcmVzdCBleHByKQorICAiRXZhbHVhdGUgYSBsaXN0IG9mIGV4cHIsIHJldHVybiB0aGUg cmVzdWx0IG9mIHRoZSBsYXN0IGl0ZW0iCisgIChsZXQgKChyZXN1bHQgbmlsKSkKKyAgICAoZG9s aXN0IChlIGV4cHIpCisgICAgICAoaWdub3JlLWVycm9ycworICAgICAgICAoc2V0cSByZXN1bHQg KGZ1bmNhbGwgaGlkZS1pZmRlZi1ldmFsdWF0b3IgZSkpKSkKKyAgICByZXN1bHQpKQorCgogOzs7 LS0tLS0tLS0tLS0gZW5kIG9mIHBhcnNlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLS0KMS44 LjMuMjQuZzY3YjA5OTgKCg== --047d7b5d6752a852f304ecb71110 Content-Type: application/octet-stream; name="0002-Aggregate-enhancements-for-hideif-macro-expansion.patch" Content-Disposition: attachment; filename="0002-Aggregate-enhancements-for-hideif-macro-expansion.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hosecjkt2 RnJvbSAzOGQzN2U4NjUzNTk0MzVkNTkxOTZiODk0YzM2ZTg3ZDU4ODNmYmUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWtlIExlZSA8bHVrZS55eC5sZWVAZ21haWwuY29tPgpEYXRl OiBXZWQsIDQgRGVjIDIwMTMgMTU6MTU6NDEgKzA4MDAKU3ViamVjdDogW1BBVENIIDIvNF0gQWdn cmVnYXRlIGVuaGFuY2VtZW50cyBmb3IgaGlkZWlmIG1hY3JvIGV4cGFuc2lvbi4KCiogU3VwcG9y dGluZyBhcmd1bWVudGVkIG1hY3JvIGV4cGFuc2lvbi4KKiBTdHJpbmdpZmljYXRpb24sIHRva2Vu aXphdGlvbiBhbmQgY29uY2F0ZW5hdGlvbiBvZiBzdHJpbmdzIGFuZCB0b2tlbnMuCiogQWRkIGZ1 bmN0aW9ucyB0byBmaW5kIGRlZmluZXMgYW5kIHBhcnNlIGFyZ3VtZW50ZWQgbWFjcm9zIGludG8g YSBtYWNybyB0cmVlCiAgY29udGFpbmluZyBtYWNybyBuYW1lLCBmb3JtYWwgcGFyYW1ldGVycyBh bmQgbWFjcm8gYm9keS4KKiBMYXRlciBtYWNybyBleHBhbnNpb24gdGltZSBpdCB3aWxsIGJlIGFw cGxpZWQgYnkgYWN0dWFsIHBhcmFtZXRlcnMgYW5kIHRoZW4KICBnb3QgZXhwYW5kZWQgcmVjdXJz aXZlbHkuCi0tLQogbGlzcC9wcm9nbW9kZXMvaGlkZWlmLmVsIHwgNDU0ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDMxIGlu c2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVz L2hpZGVpZi5lbCBiL2xpc3AvcHJvZ21vZGVzL2hpZGVpZi5lbAppbmRleCBjYmVlODk1Li5jNTMw MzZiIDEwMDY0NAotLS0gYS9saXNwL3Byb2dtb2Rlcy9oaWRlaWYuZWwKKysrIGIvbGlzcC9wcm9n bW9kZXMvaGlkZWlmLmVsCkBAIC0xMDQsNiArMTA0LDcgQEAKIDs7OyBDb2RlOgoKIChyZXF1aXJl ICdjYy1tb2RlKQorKGV2YWwtd2hlbi1jb21waWxlIChyZXF1aXJlICdjbCkpCgogKGRlZmdyb3Vw IGhpZGUtaWZkZWYgbmlsCiAgICJIaWRlIHNlbGVjdGVkIGNvZGUgd2l0aGluIGBpZmRlZicuIgpA QCAtMTM1LDYgKzEzNiwxMCBAQAogICA6Z3JvdXAgJ2hpZGUtaWZkZWYKICAgOnZlcnNpb24gIjIz LjEiKQoKKyhkZWZjdXN0b20gaGlkZS1pZmRlZi1leGNsdWRlLWRlZmluZS1yZWdleHAtcGF0dGVy biBuaWwKKyAgIklnbm9yZSAjZGVmaW5lIG5hbWUgaWYgdGhhdCBuYW1lIG1hdGNoIHRoaXMgZXhj bHVzaW9uIHBhdHRlcm4uIgorICA6dHlwZSAnc3RyaW5nCisgIDpncm91cCAnaGlkZS1pZmRlZikK CiAoZGVmdmFyIGhpZGUtaWZkZWYtbW9kZS1zdWJtYXAKICAgOzsgU2V0IHVwIHRoZSBzdWJtYXAg dGhhdCBnb2VzIGFmdGVyIHRoZSBwcmVmaXgga2V5LgpAQCAtMzY1LDkgKzM3MCwyMCBAQCB0aGF0 IGZvcm0gc2hvdWxkIGJlIGRpc3BsYXllZC4iKQogKGRlZmNvbnN0IGhpZi1lbHNlLXJlZ2V4cCAo Y29uY2F0IGhpZi1jcHAtcHJlZml4ICJlbHNlIikpCiAoZGVmY29uc3QgaGlmLWVuZGlmLXJlZ2V4 cCAoY29uY2F0IGhpZi1jcHAtcHJlZml4ICJlbmRpZiIpKQogKGRlZmNvbnN0IGhpZi1pZngtZWxz ZS1lbmRpZi1yZWdleHAKLSAgKGNvbmNhdCBoaWYtaWZ4LXJlZ2V4cCAiXFx8IiBoaWYtZWxzZS1y ZWdleHAgIlxcfCIgaGlmLWVuZGlmLXJlZ2V4cCkpCisgIChjb25jYXQgaGlmLWlmeC1yZWdleHAg IlxcfCIgaGlmLWVsaWYtcmVnZXhwICJcXHwiIGhpZi1lbHNlLXJlZ2V4cCAiXFx8IiBoaWYtZW5k aWYtcmVnZXhwKSkKKyhkZWZjb25zdCBoaWYtbWFjcm8tZXhwci1wcmVmaXgtcmVnZXhwIChjb25j YXQgaGlmLWNwcC1wcmVmaXggIlxcKGlmXFwobj9kZWZcXCk/XFx8ZWxpZlxcfGRlZmluZVxcKVsg XHRdKyIpKQoKIChkZWZjb25zdCBoaWYtd2hpdGUgICAgICAgICAiWyBcdF0qIikKKyhkZWZjb25z dCBoaWYtZGVmaW5lICAgICAgICAoY29uY2F0IGhpZi1jcHAtcHJlZml4ICJcXChkZWZpbmVcXHx1 bmRlZlxcKSIpKQorKGRlZmNvbnN0IGhpZi1pZCAgICAgICAgICAgIChjb25jYXQgIltBLVphLXpf XVswLTlBLVphLXpfXSoiKSkKKyhkZWZjb25zdCBoaWYtbWFjcm9uYW1lICAgICAoY29uY2F0IGhp Zi13aGl0ZSAiXFwoIiBoaWYtaWQgIlxcKSIgaGlmLXdoaXRlCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiXFwoIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIigiIGhpZi13aGl0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi XFwoIiBoaWYtaWQgIlxcKT8iIGhpZi13aGl0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiXFwoIiAiLCIgaGlmLXdoaXRlIGhpZi1pZCBoaWYtd2hpdGUgIlxcKSoiCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXChcXC5cXC5cXC5cXCk/IiBo aWYtd2hpdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIpIgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcKT8iICkpCgogOzsgVXNlZCB0byBzdG9y ZSB0aGUgY3VycmVudCB0b2tlbiBhbmQgdGhlIHdob2xlIHRva2VuIGxpc3QgZHVyaW5nIHBhcnNp bmcuCiA7OyBPbmx5IGJvdW5kIGR5bmFtaWNhbGx5LgpAQCAtNDAwLDcgKzQxNiwxMiBAQCB0aGF0 IGZvcm0gc2hvdWxkIGJlIGRpc3BsYXllZC4iKQogICAgICgiLyIgICAuIGhpZi1kaXZpZGUpCiAg ICAgKCIlIiAgIC4gaGlmLW1vZHVsbykKICAgICAoIj8iICAuIGhpZi1jb25kaXRpb25hbCkKLSAg ICAoIjoiICAuIGhpZi1jb2xvbikpKQorICAgICgiOiIgICAuIGhpZi1jb2xvbikKKyAgICAoIiwi ICAgLiBoaWYtY29tbWEpCisgICAgKCIjIiAgIC4gaGlmLXN0cmluZ2lmeSkKKyAgICAoIi4uLiIg LiBoaWYtZXRjKSkpCisKKyhkZWZjb25zdCBoaWYtdmFsaWQtdG9rZW4tbGlzdCAobWFwY2FyICdj ZHIgaGlmLXRva2VuLWFsaXN0KSkKCiAoZGVmY29uc3QgaGlmLXRva2VuLXJlZ2V4cAogICAoY29u Y2F0IChyZWdleHAtb3B0IChtYXBjYXIgJ2NhciBoaWYtdG9rZW4tYWxpc3QpKQpAQCAtNDMwLDcg KzQ1MSw3IEBAIHRoYXQgZm9ybSBzaG91bGQgYmUgZGlzcGxheWVkLiIpCiAgICAgICAgICAgICAo cHVzaCAoc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgKG1hdGNoLXN0cmluZyAxKSkgdG9rZW4tbGlz dCkKICAgICAgICAgICAgIChnb3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkpCiAJICAgKChsb29raW5n LWF0IGhpZi10b2tlbi1yZWdleHApCi0JICAgIChsZXQgKCh0b2tlbiAoYnVmZmVyLXN1YnN0cmlu ZyAocG9pbnQpIChtYXRjaC1lbmQgMCkpKSkKKyAgICAgICAgICAgIChsZXQgKCh0b2tlbiAoYnVm ZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChwb2ludCkgKG1hdGNoLWVuZCAwKSkpKQogCSAg ICAgIChnb3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkKIAkgICAgICA7OyAobWVzc2FnZSAidG9rZW46 ICVzIiB0b2tlbikgKHNpdC1mb3IgMSkKIAkgICAgICAocHVzaCAob3IgKGNkciAoYXNzb2MgdG9r ZW4gaGlmLXRva2VuLWFsaXN0KSkKQEAgLTQ3OSw5ICs1MDAsMTA3IEBAIHRoYXQgZm9ybSBzaG91 bGQgYmUgZGlzcGxheWVkLiIpCiAgICJQb3AgdGhlIG5leHQgdG9rZW4gZnJvbSB0b2tlbi1saXN0 IGludG8gdGhlIGxldCB2YXJpYWJsZSBcImhpZi10b2tlblwiLiIKICAgKHNldHEgaGlmLXRva2Vu IChwb3AgaGlmLXRva2VuLWxpc3QpKSkKCi0oZGVmdW4gaGlmLXBhcnNlLWlmLWV4cCAodG9rZW4t bGlzdCkKKyhkZWZzdWJzdCBoaWYtaWYtdmFsaWQtaWRlbnRpZmllciAoaWQpCisgIChub3QgKG9y IChudW1iZXJwIGlkKQorICAgICAgICAgICAoc3RyaW5ncCBpZCkpKSkKKworKGRlZnVuIGhpZi1k ZWZpbmUtb3BlcmF0b3IgKHRva2VucykKKyAgImBVcGdyYWRlJyBoaWYtZGVmaW5lIHh4eCB0byAn KGhpZi1kZWZpbmUgeHh4KScgc28gdGhhdCBpdCB3b24ndCBiZSBzdWJzaXRpdHV0ZWQiCisgIChs ZXQgKChyZXN1bHQgbmlsKQorICAgICAgICAodG9rIG5pbCkpCisgICAgKHdoaWxlIHRva2Vucwor ICAgICAgKHNldHEgdG9rIChjYXIgdG9rZW5zKQorICAgICAgICAgICAgdG9rZW5zIChjZHIgdG9r ZW5zKSkKKyAgICAgIChzZXRxIHJlc3VsdAorICAgICAgICAgICAgKGFwcGVuZAorICAgICAgICAg ICAgIHJlc3VsdAorICAgICAgICAgICAgIChsaXN0CisgICAgICAgICAgICAgIChpZiAoZXEgdG9r ICdoaWYtZGVmaW5lZCkKKyAgICAgICAgICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAgICAg ICAgICAoc2V0cSB0b2sgKGNhZHIgdG9rZW5zKSkKKyAgICAgICAgICAgICAgICAgICAgKGlmIChl cSAoY2FyIHRva2VucykgJ2hpZi1scGFyZW4pCisgICAgICAgICAgICAgICAgICAgICAgICAoaWYg KGFuZCAoaGlmLWlmLXZhbGlkLWlkZW50aWZpZXIgdG9rKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGVxIChjYWRkciB0b2tlbnMpICdoaWYtcnBhcmVuKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc2V0cSB0b2tlbnMgKGNkZGRyIHRva2VucykpCisgICAgICAgICAg ICAgICAgICAgICAgICAgIChlcnJvciAib3BlcmF0b3IgXCJkZWZpbmVkXCIgcmVxdWlyZXMgYW4g aWRlbnRpZmllciIpKQorICAgICAgICAgICAgICAgICAgICAgIChzZXRxIHRvayAoY2FyIHRva2Vu cykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbnMgKGNkciB0b2tlbnMpKQorICAg ICAgICAgICAgICAgICAgICAgICh1bmxlc3MgKGhpZi1pZi12YWxpZC1pZGVudGlmaWVyIHRvaykK KyAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvciAib3BlcmF0b3IgXCJkZWZpbmVkXCIgcmVx dWlyZXMgYW4gaWRlbnRpZmllciIpKSkKKyAgICAgICAgICAgICAgICAgICAgKGxpc3QgJ2hpZi1k ZWZpbmVkICdoaWYtbHBhcmVuIHRvayAnaGlmLXJwYXJlbikpCisgICAgICAgICAgICAgICAgdG9r KSkpKSkKKyAgICByZXN1bHQpKQorCisoZGVmdW4gaGlmLWZsYXR0ZW4gKGwpCisgICJGbGF0dGVu IGEgdHJlZSIKKyAgKGlmIChhbmQgbCAoYXRvbSBsKSkKKyAgICAgIChsaXN0IGwpCisgICAgKGlm IChjb25zcCBsKQorICAgICAgICAobmNvbmMgKGhpZi1mbGF0dGVuIChjYXIgbCkpIChoaWYtZmxh dHRlbiAoY2RyIGwpKSkpKSkKKworKGRlZnVuIGhpZi1leHBhbmQtdG9rZW4tbGlzdCAodG9rZW5z ICZvcHRpb25hbCBtYWNyb25hbWUgcmVmbGlzdCkKKyAgOzsgJ3JlZmxpc3QnIGlzIHRoZSByZWZl cmVuY2UgbGlzdCB0byBwcmV2ZW50IHNlbGYtcmVmZXJlbmNpbmcKKyAgIlBlcmZvcm0gZXhwYW5z aW9uIHRpbGwgZXZlcnl0aGluZyBleHBhbmRlZC4gTm8gc2VsZi1yZWZlcmVuY2UgZXhwYW5zaW9u LiIKKyAgKGNhdGNoICdzZWxmLXJlZmVyZW5jaW5nCisgICAgKGxldCAoKGV4cGFuZGVkIG5pbCkK KyAgICAgICAgICAocmVtYWlucyAoaGlmLWRlZmluZS1vcGVyYXRvcgorICAgICAgICAgICAgICAg ICAgICAoaGlmLXRva2VuLWNvbmNhdGVuYXRpb24gKGhpZi10b2tlbi1zdHJpbmdpZmljYXRpb24g dG9rZW5zKSkpKQorICAgICAgICAgIHRvayByZXApCisgICAgICAoaWYgbWFjcm9uYW1lCisgICAg ICAgICAgKHNldHEgcmVmbGlzdCAoY29ucyBtYWNyb25hbWUgcmVmbGlzdCkpKQorICAgICAgOzsg RXhwYW5kaW5nIGFsbCB0b2tlbnMgdGlsbCBsaXN0IGV4aGF1c3RlZAorICAgICAgKHdoaWxlIHJl bWFpbnMKKyAgICAgICAgKHNldHEgdG9rIChjYXIgcmVtYWlucykKKyAgICAgICAgICAgICAgcmVt YWlucyAoY2RyIHJlbWFpbnMpKQorICAgICAgICAoaWYgKG1lbXEgdG9rIHJlZmxpc3QpIDs7IGZv ciBzZWxmLXJlZmVyZW5jaW5nIHRva2VucywgZG9uJ3QgZXhwYW5kIGl0CisgICAgICAgICAgICAo dGhyb3cgJ3NlbGYtcmVmZXJlbmNpbmcgdG9rZW5zKSkKKyAgICAgICAgKHNldHEgZXhwYW5kZWQK KyAgICAgICAgICAgICAgKGFwcGVuZAorICAgICAgICAgICAgICAgZXhwYW5kZWQKKyAgICAgICAg ICAgICAgIChjb25kCisgICAgICAgICAgICAgICAgKChvciAobWVtcSB0b2sgaGlmLXZhbGlkLXRv a2VuLWxpc3QpCisgICAgICAgICAgICAgICAgICAgICAobnVtYmVycCB0b2spCisgICAgICAgICAg ICAgICAgICAgICAoc3RyaW5ncCB0b2spKQorICAgICAgICAgICAgICAgICAobGlzdCB0b2spKQor CisgICAgICAgICAgICAgICAgKChzZXRxIHJlcCAoaGlmLWxvb2t1cCB0b2spKQorICAgICAgICAg ICAgICAgICAoaWYgKGFuZCAobGlzdHAgcmVwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAo ZXEgKGNhciByZXApICdoaWYtZGVmaW5lLW1hY3JvKSkgOzsgYSBkZWZpbmVkIG1hY3JvCisgICAg ICAgICAgICAgICAgICAgICA7OyByZWN1cnNpdmVseSBleHBhbmQgaXQKKyAgICAgICAgICAgICAg ICAgICAgIChpZiAoY2FkciByZXApIDs7IGFyZ2xpc3QgaXMgbm90IG5pbAorICAgICAgICAgICAg ICAgICAgICAgICAgIChpZiAoZXEgKGNhciByZW1haW5zKSAnaGlmLWxwYXJlbikKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOzsgQXJndW1lbnRlZCBtYWNybywgZ2V0IGFyZ3VtZW50cyBh bmQgaW52b2tlIGl0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQqICgoaGlmLXRv a2VuLWxpc3QgKGNkciByZW1haW5zKSkgOzsgZHluYW1pYyBiaW5kaW5nIGZvciBoaWYtbWFjcm8t c3VwcGx5LWFyZ3VtZW50cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhp Zi10b2tlbiBuaWwpICAgICAgICAgICAgICAgIDs7IGR5bmFtaWMgYmluZGluZyBmb3IgaGlmLW1h Y3JvLXN1cHBseS1hcmd1bWVudHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChwYXJtbGlzdCAobWFwY2FyICdoaWYtZXhwYW5kLXRva2VuLWxpc3QKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoaWYtZ2V0LWFyZ3VtZW50 LWxpc3QgdG9rKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0 IChoaWYtZXhwYW5kLXRva2VuLWxpc3QgKGhpZi1tYWNyby1zdXBwbHktYXJndW1lbnRzIHRvayBw YXJtbGlzdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0b2sgcmVmbGlzdCkpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChzZXRxIHJlbWFpbnMgKGNvbnMgaGlmLXRva2VuIGhpZi10b2tlbi1saXN0KSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICA7OyBubyBhcmd1bWVudCBzdXBwbGllZCwgbm8gaW52b2NhdGlvbiBmb3IgdGhp cyBtYWNybworICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgdG9rKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgOzsgYXJnbGlzdCBpcyBuaWwsIGRpcmVjdCBleHBhbnNpb24KKyAgICAg ICAgICAgICAgICAgICAgICAgKHNldHEgcmVwIChoaWYtZXhwYW5kLXRva2VuLWxpc3QgKGNhZGRy IHJlcCkgOzsgbWFjcm8ncyB0b2tlbiBsaXN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvayByZWZsaXN0KSkKKyAgICAgICAgICAgICAg ICAgICAgICAgKHNldHEgcmVtYWlucyAoc3Vic3RpdHV0ZSB0b2sgcmVwIHJlbWFpbnMpKSA7OyBy ZXBsYWNlIGFsbCByZW1haW5pbmcgcmVmZXJlbmNlcyBpbW1lZGlhdGVseQorICAgICAgICAgICAg ICAgICAgICAgICAobGlzdCByZXApKQorICAgICAgICAgICAgICAgICAgIDs7IGxvb2t1cCB0b2sg cmV0dXJucyBhbiBhdG9tCisgICAgICAgICAgICAgICAgICAgKGxpc3QgcmVwKSkpCisKKyAgICAg ICAgICAgICAgICA7O1syMDEzLTEwLTIyIDE2OjA2OjEyICswODAwXSBNdXN0IGtlZXAgdGhlIHRv a2VuLCByZW1vdmVpbmcgdGhpcyB0b2tlbiBtaWdodCByZXN1bHRzIGluCisgICAgICAgICAgICAg ICAgOzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW4gaW5jb21wbGV0ZSBleHByZXNzaW9u IHRoYXQgY2Fubm90IGJlIHBhcnNlZCBmdXJ0aGVyLgorICAgICAgICAgICAgICAgIDs7KCg9IDEg KGhpZi1kZWZpbmVkIHRvaykpIDs7IGRlZmluZWQgKGhpZi1kZWZpbmVkIHRvayk9MSwgYnV0IGVt cHR5IChoaWYtbG9va3VwIHRvayk9bmlsLCB0aHVzIHJlbW92ZSB0aGlzIHRva2VuCisgICAgICAg ICAgICAgICAgOzsgKHNldHEgcmVtYWlucyAoZGVsZXRlIHRvayByZW1haW5zKSkKKyAgICAgICAg ICAgICAgICA7OyBuaWwpCisKKyAgICAgICAgICAgICAgICAodCA7OyB1c3VhbCBJRHMKKyAgICAg ICAgICAgICAgICAgKGxpc3QgdG9rKSkpKSkpCisgICAgICAoaGlmLWZsYXR0ZW4gZXhwYW5kZWQp KSkpCisKKyhkZWZ1biBoaWYtcGFyc2UtaWYtZXhwICh0b2tlbi1saXN0ICZvcHRpb25hbCBtYWNy b25hbWUpCiAgICJQYXJzZSB0aGUgVE9LRU4tTElTVC4gIFJldHVybiB0cmFuc2xhdGVkIGxpc3Qg aW4gcHJlZml4IGZvcm0uIgotICAobGV0ICgoaGlmLXRva2VuLWxpc3QgdG9rZW4tbGlzdCkpCisg IChsZXQgKChoaWYtdG9rZW4tbGlzdCAoaGlmLWV4cGFuZC10b2tlbi1saXN0IHRva2VuLWxpc3Qg bWFjcm9uYW1lKSkpCiAgICAgKGhpZi1uZXh0dG9rZW4pCiAgICAgKHByb2cxCiAgICAgICAgIChh bmQgaGlmLXRva2VuCkBAIC02NDUsNiArNzY0LDggQEAgdGhhdCBmb3JtIHNob3VsZCBiZSBkaXNw bGF5ZWQuIikKCiAgICAoKG51bWJlcnAgaGlmLXRva2VuKQogICAgIChwcm9nMSBoaWYtdG9rZW4g KGhpZi1uZXh0dG9rZW4pKSkKKyAgICgoc3RyaW5ncCBoaWYtdG9rZW4pCisgICAgKGhpZi1zdHJp bmctY29uY2F0ZW5hdGlvbikpCgogICAgOzsgVW5hcnkgcGx1cy9taW51cy4KICAgICgobWVtcSBo aWYtdG9rZW4gJyhoaWYtbWludXMgaGlmLXBsdXMpKQpAQCAtNjUyLDEwICs3NzMsMTA1IEBAIHRo YXQgZm9ybSBzaG91bGQgYmUgZGlzcGxheWVkLiIpCgogICAgKHQJCQkJCTsgaWRlbnRpZmllcgog ICAgIChsZXQgKChpZGVudCBoaWYtdG9rZW4pKQotICAgICAgKGlmIChtZW1xIGlkZW50ICcob3Ig YW5kKSkKLQkgIChlcnJvciAiRXJyb3I6IG1pc3NpbmcgaWRlbnRpZmllciIpKQogICAgICAgKGhp Zi1uZXh0dG9rZW4pCi0gICAgICBgKGhpZi1sb29rdXAgKHF1b3RlICxpZGVudCkpKSkpKQorICAg ICAgKGlmIChlcSBoaWYtdG9rZW4gJ2hpZi1scGFyZW4pCisgICAgICAgICAgKGhpZi1wbGFjZS1t YWNyby1pbnZvY2F0aW9uIGlkZW50KQorICAgICAgICBgKGhpZi1sb29rdXAgKHF1b3RlICxpZGVu dCkpKSkpKSkKKworKGRlZnVuIGhpZi1nZXQtYXJndW1lbnQtbGlzdCAoaWRlbnQpCisgIChsZXQg KChuZXN0IDApCisgICAgICAgIChwYXJtbGlzdCBuaWwpIDs7IGEgInRva2VuIiBsaXN0IG9mIHBh cmFtZXRlcnMsIHdpbGwgbGF0ZXIgYmUgcGFyc2VkCisgICAgICAgIChwYXJtIG5pbCkpCisgICAg KHdoaWxlIChvciAobm90IChlcSAoaGlmLW5leHR0b2tlbikgJ2hpZi1ycGFyZW4pKQorICAgICAg ICAgICAgICAgKC89IG5lc3QgMCkpCisgICAgICAoaWYgKGVxIChjYXIgcGFybSkgJ2hpZi1jb21t YSkKKyAgICAgICAgICAoc2V0cSBwYXJtIG5pbCkpCisgICAgICAoY29uZAorICAgICAgICgoZXEg aGlmLXRva2VuICdoaWYtbHBhcmVuKQorICAgICAgICAoc2V0cSBuZXN0ICgxKyBuZXN0KSkpCisg ICAgICAgKChlcSBoaWYtdG9rZW4gJ2hpZi1ycGFyZW4pCisgICAgICAgIChzZXRxIG5lc3QgKDEt IG5lc3QpKQorICAgICAgICAoaWYgKDwgbmVzdCAwKQorICAgICAgICAgICAgKGVycm9yICJVbmJh bGFuY2VkIHBhcmVudGhlc2lzIHdoZW4gaW52b2tpbmcgbWFjcm8gJVMiIGlkZW50KSkpCisgICAg ICAgKChhbmQgKGVxIGhpZi10b2tlbiAnaGlmLWNvbW1hKQorICAgICAgICAgICAgICg9IG5lc3Qg MCkpCisgICAgICAgIChzZXRxIHBhcm1saXN0IChhcHBlbmQgcGFybWxpc3QgKGxpc3QgcGFybSkp CisgICAgICAgICAgICAgIHBhcm0gbmlsKSkpCisgICAgICAoc2V0cSBwYXJtIChhcHBlbmQgcGFy bSAobGlzdCBoaWYtdG9rZW4pKSkpCisgICAgKHNldHEgcGFybWxpc3QgKGFwcGVuZCBwYXJtbGlz dCAobGlzdCBwYXJtKSkpIDsgb2theSBldmVuIGlmIHBhcm0gaXMgbmlsCisgICAgKGhpZi1uZXh0 dG9rZW4pIDsgZHJvcCB0aGUgaGlmLXJwYXJlbiwgZ2V0IG5leHQgdG9rZW4KKyAgICBwYXJtbGlz dCkpCisKKyhkZWZ1biBoaWYtcGxhY2UtbWFjcm8taW52b2NhdGlvbiAoaWRlbnQpCisgIChsZXQg KChwYXJtbGlzdCAoaGlmLWdldC1hcmd1bWVudC1saXN0IGlkZW50KSkpCisgICAgYChoaWYtaW52 b2tlIChxdW90ZSAsaWRlbnQpIChxdW90ZSAscGFybWxpc3QpKSkpCisKKyhkZWZ1biBoaWYtc3Ry aW5nLWNvbmNhdGVuYXRpb24gKCkKKyAgIlBhcnNlIGNvbmNhdGVuYXRlZCBzdHJpbmdzOiBzdHJp bmcgfCBzdHJpbmdzIHN0cmluZyIKKyAgKGxldCAoKHJlc3VsdCAoc3Vic3RyaW5nLW5vLXByb3Bl cnRpZXMgaGlmLXRva2VuKSkpCisgICAgKHdoaWxlIChzdHJpbmdwIChoaWYtbmV4dHRva2VuKSkK KyAgICAgIChzZXRxIHJlc3VsdCAoY29uY2F0CisgICAgICAgICAgICAgICAgICAgIChzdWJzdHJp bmcgcmVzdWx0IDAgLTEpICAgIDsgcmVtb3ZlIHRyYWlsaW5nICciJworICAgICAgICAgICAgICAg ICAgICAoc3Vic3RyaW5nIGhpZi10b2tlbiAxKSkpKSA7IHJlbW92ZSBsZWFkaW5nICAnIicKKyAg ICByZXN1bHQpKQorCisoZGVmdW4gaGlmLWRlZmluZS1tYWNybyAocGFybWxpc3QgdG9rZW4tYm9k eSkKKyAgIkEgbWFya2VyIGZvciBkZWZpbmVkIG1hY3JvIHdpdGggYXJndW1lbnRzLCBjYW5ub3Qg YmUgZXZhbHVhdGVkIGFsb25lIHdpdGggbm8gcGFyYW1ldGVycyBpbnB1dGVkLiIKKyAgOzsgVE9E TzogaW5wdXQgcGFyYW1ldGVycyBhdCBydW4gdGltZSwgdXNlIG1pbmlidWZmZXIgdG8gcXVlcnkg YWxsIHBhcmFtZXRlcnMKKyAgKGVycm9yICJBcmd1bWVudGVkIG1hY3JvIGNhbm5vdCBiZSBldmFs dWF0ZWQgd2l0aG91dCBwYXNzaW5nIGFueSBwYXJhbWV0ZXIuIikpCisKKyhkZWZ1biBoaWYtc3Ry aW5naWZ5IChhKQorICAiU3RyaW5naWZ5IGEgbnVtYmVyLCBzdHJpbmcgb3Igc3ltYm9sIgorICAo Y29uZAorICAgKChudW1iZXJwIGEpCisgICAgKG51bWJlci10by1zdHJpbmcgYSkpCisgICAoKGF0 b20gYSkKKyAgICAoc3ltYm9sLW5hbWUgYSkpCisgICAoKHN0cmluZ3AgYSkKKyAgICAoY29uY2F0 ICJcIiIgYSAiXCIiKSkKKyAgICh0CisgICAgKGVycm9yICJJbnZhbGlkIHRva2VuIHRvIHN0cmlu Z2lmeSIpKSkpCisKKyhkZWZ1biBpbnRlcm4tc2FmZSAoc3RyKQorICAoaWYgKHN0cmluZ3Agc3Ry KQorICAgICAgKGludGVybiBzdHIpKSkKKworKGRlZnVuIGhpZi1tZXJnZS1vcGVyYXRvci10b2tl biAoYSBiKQorICAiU3VwcG9ydCB3ZWlyZCAoYnV0IHZhbGlkKSB1c2Ugb2YgdG9rZW4gY29uY2F0 ZW5hdGlvbi4gSGVyZSB3ZSB0YWtlIGNhcmUgb25seSB0aG9zZSB0aGF0IGNhbiBiZSBldmFsdWF0 ZWQgZHVyaW5nCitwcmVwcm9jZXNzaW5nIHRpbWUuIEZvciB0aG9zZSBjb21wdXRhYmxlIHN5bnRh eCB0aGF0IGNhbiBvbmx5IGJlIGV2YWx1YXRlZCBkdXJpbmcgQyBydW50aW1lIChsaWtlICcrKycs Jy0tJywnKz0nLi4uKSwKK3dlIGlnbm9yZSB0aGVtIGFsbCBoZXJlLiIKKyAgKGNvbmQKKyAgICgo YW5kIChlcSBhICdoaWYtbG9naW9yKSAoZXEgYiAnaGlmLWxvZ2lvcikpIDs7ICd8Jyd8JyAtPiAn fHwnCisgICAgJ2hpZi1vcikKKyAgICgoYW5kIChlcSBhICdoaWYtbG9nYW5kKSAoZXEgYiAnaGlm LWxvZ2FuZCkpIDs7ICcmJycmJyAtPiAnJiYnCisgICAgJ2hpZi1hbmQpCisgICAoKGFuZCAoZXEg YSAnaGlmLWFzc2lnbikgKGVxIGIgJ2hpZi1hc3NpZ24pKSA7OyAnPScnPScgLT4gJz09JworICAg ICdoaWYtZXF1YWwpCisgICAoKGFuZCAoZXEgYSAnaGlmLW5vdCkgKGVxIGIgJ2hpZi1hc3NpZ24p KSA7OyAnIScnPScgLT4gJyE9JworICAgICdoaWYtbm90ZXF1YWwpCisgICAoKGVxIGEgJ2hpZi1s ZXNzKQorICAgIChpZiAoZXEgYiAnaGlmLWxlc3MpIDs7ICc8Jyc8JyAtPiAnPDwnCisgICAgICAg ICdoaWYtc2hpZnRsZWZ0CisgICAgICAoaWYgKGVxIGIgJ2hpZi1hc3NpZ24pIDs7ICc8Jyc9JyAt PiAnPD0nCisgICAgICAgICAgJ2hpZi1sZXNzLWVxdWFsKSkpCisgICAoKGVxIGEgJ2hpZi1ncmVh dGVyKQorICAgIChpZiAoZXEgYiAnaGlmLWdyZWF0ZXIpIDs7ICc+Jyc+JyAtPiAnPj4nCisgICAg ICAgICdoaWYtc2hpZnRsZWZ0CisgICAgICAoaWYgKGVxIGIgJ2hpZi1hc3NpZ24pIDs7ICc+Jyc9 JyAtPiAnPj0nCisgICAgICAgICAgJ2hpZi1ncmVhdGVyLWVxdWFsKSkpKSkKKworKGRlZnVuIGhp Zi10b2tlbi1jb25jYXQgKGEgYikKKyAgIkNvbmNhdGVuYXRpb24gdHdvIHN5bWJvbCBuYW1lIGlu dG8gYSBsb25nZXIgc3ltYm9sLCBjdXJyZW50bHkgc3VwcG9ydCBvbmx5IHNpbXBsZSBzeW1ib2wg Y29uY2F0ZW5hdGlvbi4iCisgIChpZiAob3IgKG1lbXEgYSBoaWYtdmFsaWQtdG9rZW4tbGlzdCkK KyAgICAgICAgICAobWVtcSBiIGhpZi12YWxpZC10b2tlbi1saXN0KSkKKyAgICAgIChsZXQgKChy ZXN1bHQgKGhpZi1tZXJnZS1vcGVyYXRvci10b2tlbiBhIGIpKSkKKyAgICAgICAgKG9yIHJlc3Vs dAorICAgICAgICAgICAgOzsoZXJyb3IgIkludmFsaWQgdG9rZW4gdG8gY29uY2F0ZW5hdGUiKQor ICAgICAgICAgICAgKGVycm9yICJwYXN0aW5nIFwiJXNcIiBhbmQgXCIlc1wiIGRvZXMgbm90IGdp dmUgYSB2YWxpZCBwcmVwcm9jZXNzaW5nIHRva2VuIgorICAgICAgICAgICAgICAgICAgIChpZiAo bWVtcSBhIGhpZi12YWxpZC10b2tlbi1saXN0KSAoY2FyIChyYXNzb2MgYSBoaWYtdG9rZW4tYWxp c3QpKSAoc3ltYm9sLW5hbWUgYSkpCisgICAgICAgICAgICAgICAgICAgKGlmIChtZW1xIGIgaGlm LXZhbGlkLXRva2VuLWxpc3QpIChjYXIgKHJhc3NvYyBiIGhpZi10b2tlbi1hbGlzdCkpIChzeW1i b2wtbmFtZSBiKSkpKSkKKyAgICAoaW50ZXJuLXNhZmUgKGNvbmNhdCAoaGlmLXN0cmluZ2lmeSBh KQorICAgICAgICAgICAgICAgICAgICAgICAgIChoaWYtc3RyaW5naWZ5IGIpKSkpKQoKIChkZWZ1 biBoaWYtbWF0aGlmeSAodmFsKQogICAiVHJlYXQgVkFMIGFzIGEgbnVtYmVyOiBpZiBpdCdzIHQg b3IgbmlsLCB1c2UgMSBvciAwLiIKQEAgLTcxNiwyMyArOTMyLDE0OSBAQCB0aGF0IGZvcm0gc2hv dWxkIGJlIGRpc3BsYXllZC4iKQogICAgICAgICAoc2V0cSByZXN1bHQgKGZ1bmNhbGwgaGlkZS1p ZmRlZi1ldmFsdWF0b3IgZSkpKSkKICAgICByZXN1bHQpKQoKKyhkZWZ1biBoaWYtdG9rZW4tc3Ry aW5naWZpY2F0aW9uIChsKQorICAiU2NhbiB0b2tlbiBsaXN0IGZvciAnaGlmLXN0cmluZ2lmeScg KCcjJykgdG9rZW4gYW5kIHN0cmluZ2lmeSB0aGUgbmV4dCB0b2tlbiIKKyAgKGxldCAocmVzdWx0 KQorICAgICh3aGlsZSBsCisgICAgICAoc2V0cSByZXN1bHQKKyAgICAgICAgICAgIChhcHBlbmQg cmVzdWx0CisgICAgICAgICAgICAgICAgICAgIChsaXN0CisgICAgICAgICAgICAgICAgICAgICAo aWYgKGVxIChjYXIgbCkgJ2hpZi1zdHJpbmdpZnkpCisgICAgICAgICAgICAgICAgICAgICAgICAg KHByb2cxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoY2FkciBsKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhpZi1zdHJpbmdpZnkgKGNhZHIgbCkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yICJObyB0b2tlbiB0byBzdHJpbmdpZnki KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIGwgKGNkciBsKSkpCisgICAgICAg ICAgICAgICAgICAgICAgIChjYXIgbCkpKSkpCisgICAgICAoc2V0cSBsIChjZHIgbCkpKQorICAg IHJlc3VsdCkpCisKKyhkZWZ1biBoaWYtdG9rZW4tY29uY2F0ZW5hdGlvbiAobCkKKyAgIlNjYW4g dG9rZW4gbGlzdCBmb3IgJ2hpZi10b2tlbi1jb25jYXQnICgnIyMnKSB0b2tlbiBhbmQgY29uY2F0 ZW5hdGUgdHdvIHRva2VucyIKKyAgKGxldCAoKHByZXYgbmlsKQorICAgICAgICByZXN1bHQpCisg ICAgKHdoaWxlIGwKKyAgICAgICh3aGlsZSAoZXEgKGNhciBsKSAnaGlmLXRva2VuLWNvbmNhdCkK KyAgICAgICAgKHVubGVzcyBwcmV2CisgICAgICAgICAgKGVycm9yICJObyB0b2tlbiBiZWZvcmUg IyMgdG8gY29uY2F0ZW5hdGUiKSkKKyAgICAgICAgKHVubGVzcyAoY2RyIGwpCisgICAgICAgICAg KGVycm9yICJObyB0b2tlbiBhZnRlciAjIyB0byBjb25jYXRlbmF0ZSIpKQorICAgICAgICAoc2V0 cSBwcmV2IChoaWYtdG9rZW4tY29uY2F0IHByZXYgKGNhZHIgbCkpKQorICAgICAgICAoc2V0cSBs IChjZGRyIGwpKSkKKyAgICAgIChpZiBwcmV2CisgICAgICAgIChzZXRxIHJlc3VsdCAoYXBwZW5k IHJlc3VsdCAobGlzdCBwcmV2KSkpKQorICAgICAgKHNldHEgcHJldiAoY2FyIGwpCisgICAgICAg ICAgICBsIChjZHIgbCkpKQorICAgIChpZiBwcmV2CisgICAgICAgIChhcHBlbmQgcmVzdWx0IChs aXN0IHByZXYpKQorICAgICAgcmVzdWx0KSkpCisKKyhkZWZ1biBoaWYtZGVsaW1pdCAobCBhKQor ICAiRGVsbWl0IGEgbGlzdCAnbCcgd2l0aCBkZWxpbWl0ZXIgYXRvbSAnZCciCisgIChuY29uYyAo bWFwY2FuIChsYW1iZGEgKGwpCisgICAgICAgICAgICAgICAgICAgKGxpc3QgbCBhKSkgIChidXRs YXN0IGwpKQorICAgICAgICAgKGxhc3QgbCkpKQorCis7OyBQZXJmb3JtIHRva2VuIHJlcGxhY2Vt ZW50OgorKGRlZnVuIGhpZi1tYWNyby1zdXBwbHktYXJndW1lbnRzIChtYWNyby1uYW1lIGFjdHVh bC1wYXJtcykKKyAgIkV4cGFuZCBhIG1hY3JvIGZ1bmN0aW9uLCByZXBsYWNlICdhY3R1YWwtcGFy bXMnIHRvIHRoZSBmdW5jdGlvbiBib2R5LiIKKyAgKGxldCogKChTQSAgICAgICAgICAgICAgICAg ICAoYXNzb2MgbWFjcm8tbmFtZSBoaWRlLWlmZGVmLWVudikpCisgICAgICAgICAobWFjcm8gICAg ICAgICAgICAgICAgKGFuZCBTQQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGNkciBTQSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcSAoY2FkciBT QSkgJ2hpZi1kZWZpbmUtbWFjcm8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoY2RkciBTQSkpKQorICAgICAgICAgKGZvcm1hbC1wYXJtcyAgICAgICAgIChhbmQgbWFjcm8g KGNhciBtYWNybykpKQorICAgICAgICAgKG1hY3JvLWJvZHkgICAgICAgICAgIChhbmQgbWFjcm8g KGNhZHIgbWFjcm8pKSkKKyAgICAgICAgIChoaWRlLWlmZGVmLWxvY2FsLWVudiBuaWwpIDs7IGR5 bmFtaWMgYmluZGluZyBsb2NhbCB0YWJsZQorICAgICAgICAgYWN0dWFsLWNvdW50CisgICAgICAg ICBmb3JtYWwtY291bnQKKyAgICAgICAgIGFjdHVhbAorICAgICAgICAgZm9ybWFsCisgICAgICAg ICBldGMpCisKKyAgICAod2hlbiAoYW5kIGFjdHVhbC1wYXJtcyBmb3JtYWwtcGFybXMgbWFjcm8t Ym9keSkKKyAgICAgIDs7IEZvciBlYWNoIGFjdHVhbCBwYXJhbWV0ZXIsIGV2YWx1YXRlIGVhY2gg b25lIGFuZCBhc3NvY2lhdGUgaXQKKyAgICAgIDs7IHdpdGggdGhlIGFzc29jaWF0ZWQgYWN0dWFs IHBhcmFtZXRlciwgcHV0IGl0IGludG8gbG9jYWwgdGFibGUgYW5kIGZpbmFsbHkKKyAgICAgIDs7 IGV2YWx1YXRlIHRoZSBtYWNybyBib2R5LgorICAgICAgKGlmIChzZXRxIGV0YyAoZXEgKGNhciBm b3JtYWwtcGFybXMpICdoaWYtZXRjKSkgOzsgVGFrZSBjYXJlIG9mICdoaWYtZXRjIGZpcnN0LiBQ cmVmaXggJ2hpZi1jb21tYSBiYWNrIGlmIG5lZWRlZC4KKyAgICAgICAgICAoc2V0cSBmb3JtYWwt cGFybXMgKGNkciBmb3JtYWwtcGFybXMpKSkKKyAgICAgIChzZXRxIGZvcm1hbC1jb3VudCAobGVu Z3RoIGZvcm1hbC1wYXJtcykKKyAgICAgICAgICAgIGFjdHVhbC1jb3VudCAobGVuZ3RoIGFjdHVh bC1wYXJtcykpCisKKyAgICAgIChpZiAoPiBmb3JtYWwtY291bnQgYWN0dWFsLWNvdW50KQorICAg ICAgICAgIChlcnJvciAiVG9vIGZldyBwYXJtYW1ldGVyIGZvciBtYWNybyAlUyIgbWFjcm8tbmFt ZSkKKyAgICAgICAgKGlmICg8IGZvcm1hbC1jb3VudCBhY3R1YWwtY291bnQpCisgICAgICAgICAg ICAob3IgZXRjCisgICAgICAgICAgICAgICAgKGVycm9yICJUb28gbWFueSBwYXJhbWV0ZXJzIGZv ciBtYWNybyAlUyIgbWFjcm8tbmFtZSkpKSkKKworICAgICAgOzsgUGVyZm9ybSB0b2tlbiByZXBs YWNlbWVudCBvbiB0aGUgbWFjcm8tYm9keSBvbiB0aGUgcGFyYW1ldGVycworICAgICAgKHdoaWxl IChzZXRxIGZvcm1hbCAoY2FyIGZvcm1hbC1wYXJtcykpCisgICAgICAgIChzZXRxIGZvcm1hbC1w YXJtcyAoY2RyIGZvcm1hbC1wYXJtcykpCisgICAgICAgIDs7IFByZXZlbnQgcmVwZXR0YXRpdmUg c3Vic3RpdHV0YXRpb24sIHRodXMgY2Fubm90IHVzZSAnc3Vic3QnCisgICAgICAgIDs7IGZvciBl eGFtcGxlOgorICAgICAgICA7OyAjZGVmaW5lIG1hYyhhLGIpIChhK2IpCisgICAgICAgIDs7ICNk ZWZpbmUgdGVzdG1hYyBtYWMoYix5KQorICAgICAgICA7OyB0ZXN0bWFjIHNob3VsZCBleHBhbmQg dG8gKGIreSk6IHJlcGxhY2Ugb2YgYXJndW1lbnQgYSBhbmQgYiBvY2N1cnMgc2ltdWx0YW5lb3Vz bHkKKyAgICAgICAgOzsgbm90IHNlcXVlbnRpYWxseS4gSWYgdGhpcyBvY2N1cnMgc2VxdWVudGlh bGx5IGFjY29yZGluZyB0byB0aGUgYXJndW1lbnQgb3JkZXIsCisgICAgICAgIDs7ICBpdCB3aWxs IGJlY29tZTogMS4gZm9ybWFsIHBhcm0gIzEgJ2EnIHJlcGxhY2VkIGJ5IGFjdHVhbCBwYXJtICdi JywgdGh1cyAoYStiKSBiZWNvbWVzIChiK2IpCisgICAgICAgIDs7ICAyLiBmb3JtYWwgcGFybSAj MiAnYicgcmVwbGFjZWQgYnkgYWN0dWFsIHBhcm0gJ3knLCB0aHVzIChiK2IpIGJlY29tZXMgKHkr eSkuCisgICAgICAgIChzZXRxIG1hY3JvLWJvZHkKKyAgICAgICAgICAgICAgOzsgVW5saWtlICdz dWJzdCcsICdzdWJzdGl0dXRlJyByZXBsYWNlIG9ubHkgdGhlIHRvcCBsZXZlbCBpbnN0ZWFkIG9m IHRoZSB3aG9sZSB0cmVlLAorICAgICAgICAgICAgICA7OyBtb3JlIGltcG9ydGFudGx5LCBpdCdz IG5vdCBkZXN0cnVjdGl2ZS4KKyAgICAgICAgICAgICAgKGlmIChhbmQgZXRjIChudWxsIGZvcm1h bC1wYXJtcykpCisgICAgICAgICAgICAgICAgICAoc3Vic3RpdHV0ZSAoaGlmLWRlbGltaXQgYWN0 dWFsLXBhcm1zICdoaWYtY29tbWEpIGZvcm1hbCBtYWNyby1ib2R5KQorICAgICAgICAgICAgICAg IChzdWJzdGl0dXRlIChjYXIgYWN0dWFsLXBhcm1zKSBmb3JtYWwgbWFjcm8tYm9keSkpKQorICAg ICAgICAoc2V0cSBhY3R1YWwtcGFybXMgKGNkciBhY3R1YWwtcGFybXMpKSkKKworICAgICAgOzsg UmVwbGFjZW1lbnQgY29tcGxldGVkLCBmbGF0dGVuIHRoZSB3aG9sZSB0b2tlbiBsaXN0LAorICAg ICAgKHNldHEgbWFjcm8tYm9keSAoaGlmLWZsYXR0ZW4gbWFjcm8tYm9keSkpCisKKyAgICAgIDs7 IFN0cmluZ2lmaWNhdGlvbiBhbmQgdG9rZW4gY29uY2F0ZW5hdGlvbiBoYXBwZW5zIGhlcmUKKyAg ICAgIChoaWYtdG9rZW4tY29uY2F0ZW5hdGlvbiAoaGlmLXRva2VuLXN0cmluZ2lmaWNhdGlvbiBt YWNyby1ib2R5KSkpKSkKKworKGRlZnVuIGhpZi1pbnZva2UgKG1hY3JvLW5hbWUgYWN0dWFsLXBh cm1zKQorICAiSW52b2tlIGEgbWFjcm8gYnkgZmlyc3QgZXhwYW5kaW5nIGl0LCB0aGVuIHJlcGFy c2UgdGhlIG1hY3JvLWJvZHksIGZpbmFsbHkgaW52b2tlIHRoZSBtYWNyby4iCisgICAgOzsgUmVw YXJzZSB0aGUgbWFjcm8gYm9keSBhbmQgZXZhbHVhdGUgaXQKKyAgICAoZnVuY2FsbCBoaWRlLWlm ZGVmLWV2YWx1YXRvcgorICAgICAgICAgICAgIChoaWYtcGFyc2UtaWYtZXhwCisgICAgICAgICAg ICAgIChoaWYtbWFjcm8tc3VwcGx5LWFyZ3VtZW50cyBtYWNyby1uYW1lIGFjdHVhbC1wYXJtcykK KyAgICAgICAgICAgICAgbWFjcm8tbmFtZSkpKQoKIDs7Oy0tLS0tLS0tLS0tIGVuZCBvZiBwYXJz ZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgotKGRlZnVuIGhpZi1jYW5vbmljYWxpemUgKCkK LSAgIldoZW4gYXQgYmVnaW5uaW5nIG9mICNpZlgsIHJldHVybiBhIExpc3AgZXhwcmVzc2lvbiBm b3IgaXRzIGNvbmRpdGlvbi4iCisoZGVmdW4gaGlmLWNhbm9uaWNhbGl6ZS10b2tlbnMgKHJlZ2V4 cCkgOzsgZm9yIGRlYnVnZ2luZworICAiUmV0dXJuIHRoZSBleHBhbmRlZCByZXN1bHQgb2YgdGhl IHNjYW5uZWQgdG9rZW5zLiIKICAgKHNhdmUtZXhjdXJzaW9uCi0gICAgKGxldCAoKG5lZ2F0ZSAo bG9va2luZy1hdCBoaWYtaWZuZGVmLXJlZ2V4cCkpKQotICAgICAgKHJlLXNlYXJjaC1mb3J3YXJk IGhpZi1pZngtcmVnZXhwKQorICAgIChyZS1zZWFyY2gtZm9yd2FyZCByZWdleHApCisgICAgKGxl dCogKChjdXJyLXJlZ2V4cCAobWF0Y2gtc3RyaW5nIDApKQorICAgICAgICAgICAoZGVmaW5lZCAo c3RyaW5nLW1hdGNoIGhpZi1pZnhkZWYtcmVnZXhwIGN1cnItcmVnZXhwKSkKKyAgICAgICAgICAg KG5lZ2F0ZSAoYW5kIGRlZmluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmc9ICht YXRjaC1zdHJpbmcgMiBjdXJyLXJlZ2V4cCkgIm4iKSkpKQogICAgICAgKGxldCogKCh0b2tlbnMg KGhpZi10b2tlbml6ZSAocG9pbnQpCi0JCQkJICAgKHByb2duIChoaWYtZW5kLW9mLWxpbmUpIChw b2ludCkpKSkKLQkgICAgIChleHByIChoaWYtcGFyc2UtaWYtZXhwIHRva2VucykpKQotCTs7ICht ZXNzYWdlICJoaWYtY2Fub25pY2FsaXplZDogJXMiIGV4cHIpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChwcm9nbiAoaGlmLWVuZC1vZi1saW5lKSAocG9pbnQpKSkpKQorICAg ICAgICAoaWYgZGVmaW5lZAorICAgICAgICAgICAgKHNldHEgdG9rZW5zIChsaXN0ICdoaWYtZGVm aW5lZCB0b2tlbnMpKSkKIAkoaWYgbmVnYXRlCi0JICAgIChsaXN0ICdoaWYtbm90IGV4cHIpCi0J ICBleHByKSkpKSkKKyAgICAgICAgICAgIChzZXRxIHRva2VucyAobGlzdCAnaGlmLW5vdCB0b2tl bnMpKSkKKyAgICAgICAgdG9rZW5zKSkpKQoKKyhkZWZ1biBoaWYtY2Fub25pY2FsaXplIChyZWdl eHApCisgICJXaGVuIGF0IGJlZ2lubmluZyBvZiBgcmVnZXhwJyAoaS5lLiAjaWZYKSwgcmV0dXJu IGEgTGlzcCBleHByZXNzaW9uIGZvciBpdHMgY29uZGl0aW9uLiIKKyAgKGxldCAoKGNhc2UtZm9s ZC1zZWFyY2ggbmlsKSkKKyAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgIChyZS1zZWFyY2gtZm9y d2FyZCByZWdleHApCisgICAgICAobGV0KiAoKGN1cnItcmVnZXhwIChtYXRjaC1zdHJpbmcgMCkp CisgICAgICAgICAgICAgKGRlZmluZWQgKHN0cmluZy1tYXRjaCBoaWYtaWZ4ZGVmLXJlZ2V4cCBj dXJyLXJlZ2V4cCkpCisgICAgICAgICAgICAgKG5lZ2F0ZSAoYW5kIGRlZmluZWQKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgKHN0cmluZz0gKG1hdGNoLXN0cmluZyAyIGN1cnItcmVnZXhwKSAi biIpKSkKKyAgICAgICAgICAgICAodG9rZW5zIChoaWYtdG9rZW5pemUgKHBvaW50KQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvZ24gKGhpZi1lbmQtb2YtbGluZSkgKHBv aW50KSkpKSkKKyAgICAgICAgKGlmIGRlZmluZWQKKyAgICAgICAgICAgIChzZXRxIHRva2VucyAo bGlzdCAnaGlmLWRlZmluZWQgdG9rZW5zKSkpCisgICAgICAgIChpZiBuZWdhdGUKKyAgICAgICAg ICAgIChzZXRxIHRva2VucyAobGlzdCAnaGlmLW5vdCB0b2tlbnMpKSkKKyAgICAgICAgKGhpZi1w YXJzZS1pZi1leHAgdG9rZW5zKSkpKSkKCiAoZGVmdW4gaGlmLWZpbmQtYW55LWlmWCAoKQogICAi TW92ZSB0byBuZXh0ICNpZi4uLiwgb3IgI2lmbmRlZiwgYXQgcG9pbnQgb3IgYWZ0ZXIuIgpAQCAt OTkxLDcgKzEzMzMsNyBAQCBQb2ludCBpcyBsZWZ0IHVuY2hhbmdlZC4iCiAgICJDYWxsZWQgYXQg I2lmWCBleHByZXNzaW9uLCB0aGlzIGhpZGVzIHRob3NlIHBhcnRzIHRoYXQgc2hvdWxkIGJlIGhp ZGRlbi4KIEl0IHVzZXMgdGhlIGp1ZGdtZW50IG9mIGBoaWRlLWlmZGVmLWV2YWx1YXRvcicuIgog ICA7OyAobWVzc2FnZSAiaGlmLXBvc3NpYmx5LWhpZGUiKSAoc2l0LWZvciAxKQotICAobGV0ICgo dGVzdCAoaGlmLWNhbm9uaWNhbGl6ZSkpCisgIChsZXQgKCh0ZXN0IChoaWYtY2Fub25pY2FsaXpl IGhpZi1pZngtcmVnZXhwKSkKIAkocmFuZ2UgKGhpZi1maW5kLXJhbmdlKSkpCiAgICAgOzsgKG1l c3NhZ2UgInRlc3QgPSAlcyIgdGVzdCkgKHNpdC1mb3IgMSkKCkBAIC0xMDE5LDYgKzEzNjEsNjUg QEAgSXQgdXNlcyB0aGUganVkZ21lbnQgb2YgYGhpZGUtaWZkZWYtZXZhbHVhdG9yJy4iCiAgICAg KGdvdG8tY2hhciAoaGlmLXJhbmdlLWVuZCByYW5nZSkpCiAgICAgKGVuZC1vZi1saW5lKSkpCgor KGRlZnVuIGhpZi1wYXJzZS1tYWNyby1hcmdsaXN0IChzdHIpCisgICJQYXJzZSBhcmd1bWVudCBs aXN0IGZvcm1hdHRlZCBhcyAnKCBhcmcxIFsgLCBhcmduXSBbLi4uXSApJywgaW5jbHVkZWluZyB0 aGUgJy4uLicKK1JldHVybiBhIGxpc3Qgb2YgdGhlIGFyZ3VtZW50cywgaWYgJy4uLicgZXhpc3Rz IHRoZSBmaXJzdCBhcmcgd2lsbCBiZSBoaWYtZXRjLiIKKyAgKGxldCAoKHRva2VubGlzdCAoY2Ry IChoaWYtdG9rZW5pemUgKC0gKHBvaW50KSAobGVuZ3RoIHN0cikpIChwb2ludCkpKSkgOyByZW1v dmUgaGlmLWxwYXJlbgorICAgICAgICByZXN1bHQgdG9rZW4pCisgICAgKHdoaWxlIChub3QgKGVx IChzZXRxIHRva2VuIChjYXIgdG9rZW5saXN0KSkgJ2hpZi1ycGFyZW4pKQorICAgICAgKHNldHEg dG9rZW5saXN0IChjZHIgdG9rZW5saXN0KSkKKyAgICAgIChjb25kCisgICAgICAgKChlcSB0b2tl biAnaGlmLWV0YykKKyAgICAgICAgKHNldHEgcmVzdWx0IChjb25zICdoaWYtZXRjIHJlc3VsdCkp KQorICAgICAgICgoZXEgdG9rZW4gJ2hpZi1jb21tYSkKKyAgICAgICAgdCkKKyAgICAgICAodAor ICAgICAgICAoc2V0cSByZXN1bHQgKGFwcGVuZCByZXN1bHQgKGNvbnMgdG9rZW4gbmlsKSkpKSkp CisgICAgcmVzdWx0KSkKKworKGRlZnVuIGhpZi1maW5kLWRlZmluZSAoJm9wdGlvbmFsIG1pbiBt YXgpCisgIChpbnRlcmFjdGl2ZSkKKyAgKGFuZCBtaW4gKGdvdG8tY2hhciBtaW4pKQorICAoYW5k IChyZS1zZWFyY2gtZm9yd2FyZCBoaWYtZGVmaW5lIG1heCB0KQorICAgICAgIChvcgorICAgICAg ICAobGV0KiAoKGRlZmluaW5nIChzdHJpbmc9ICJkZWZpbmUiIChtYXRjaC1zdHJpbmcgMikpKQor ICAgICAgICAgICAgICAgKG5hbWUgKGFuZCAocmUtc2VhcmNoLWZvcndhcmQgaGlmLW1hY3JvbmFt ZSBtYXggdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoLXN0cmluZyAxKSkpCisg ICAgICAgICAgICAgICAocGFyc2VkIG5pbCkKKyAgICAgICAgICAgICAgIChwYXJtbGlzdCAoYW5k IChtYXRjaC1zdHJpbmcgMykgOzsgZmlyc3QgYXJnIGlkIGZvdW5kCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoaGlmLXBhcnNlLW1hY3JvLWFyZ2xpc3QgKG1hdGNoLXN0cmluZyAyKSkp KSkKKyAgICAgICAgICAoaWYgZGVmaW5pbmcKKyAgICAgICAgICAgICAgOzsgaWdub3JlIG5hbWUg KHN0aWxsIG5lZWQgdG8gcmV0dXJuICd0KSwgb3IgZGVmaW5lIHRoZSBuYW1lCisgICAgICAgICAg ICAgIChvciAoYW5kIGhpZGUtaWZkZWYtZXhjbHVkZS1kZWZpbmUtcmVnZXhwLXBhdHRlcm4KKyAg ICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaCBoaWRlLWlmZGVmLWV4Y2x1ZGUtZGVm aW5lLXJlZ2V4cC1wYXR0ZXJuIG5hbWUpKQorCisgICAgICAgICAgICAgICAgICAobGV0KiAoKHN0 YXJ0IChwb2ludCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZCAgIChwcm9nbiAoaGlm LWVuZC1vZi1saW5lKSAocG9pbnQpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAodG9rZW5z IChhbmQgbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uZGl0 aW9uLWNhc2UgbmlsIDs7IHByZXZlbnQgQyBzdGF0ZW1lbnQgdGhpbmdzIGxpa2UgJ2RvIHsgLi4u IH0gd2hpbGUgKDApJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGhpZi10b2tlbml6ZSBzdGFydCBlbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGVycm9yIDs7IHdlIGNhbid0IGp1c3QgcmV0dXJuIG5pbCBzaW5jZSB0aGlzIHdp bGwgc3RvcCBzZWFyY2hpbmcgZm9yIHRoZSByZW1haW5pbmcgI2RlZmluZXMuCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIGhpZi1zaW1wbGUtdG9rZW4tb25s eSB0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1 YnN0cmluZy1uby1wcm9wZXJ0aWVzIHN0YXJ0IGVuZCkpKSkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgOzsgRm9yIHNpbXBsZSB0b2tlbiB3ZSBzYXZlIG9ubHkgdGhlIHBhcnNlZCByZXN1bHQ7 CisgICAgICAgICAgICAgICAgICAgICAgICAgOzsgb3Igd2Ugc2F2ZSB0aGUgdG9rZW5zLCBwYXJz ZSBpdCBhZnRlciBwYXJhbWV0ZXIgcmVwbGFjZW1lbnQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAoZXhwciAoYW5kIHRva2VucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KG9yIChhbmQgaGlmLXNpbXBsZS10b2tlbi1vbmx5CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobGlzdHAgdG9rZW5zKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKD0gKGxlbmd0aCB0b2tlbnMpIDEpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGlmLXBhcnNlLWlmLWV4cCB0b2tl bnMpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAoaGlmLWRlZmlu ZS1tYWNybyAscGFybWxpc3QgLHRva2VucykpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAo U0EgKGFuZCBuYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFzc29jIChp bnRlcm4gbmFtZSkgaGlkZS1pZmRlZi1lbnYpKSkpCisgICAgICAgICAgICAgICAgICAgIChhbmQg bmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgIChpZiBTQQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAob3IgKHNldGNkciBTQSBleHByKSB0KSA7OyBMYXp5IGV2YWx1YXRpb24sIGV2 YWwgb25seSBpZiBoaWYtbG9va3VwIGZpbmQgaXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg IDs7IGRlZmluZSBpdCBhbnl3YXksIGV2ZW4gaWYgbmlsIGl0J3Mgc3RpbGwgaW4gbGlzdCBhbmQg dGhlcmVmb3JlIGNvbnNpZGVycmVkIGRlZmluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg IChwdXNoIChjb25zIChpbnRlcm4gbmFtZSkgZXhwcikgaGlkZS1pZmRlZi1lbnYpKSkpKQorICAg ICAgICAgICAgOzsgI3VuZGVmCisgICAgICAgICAgICAoYW5kIG5hbWUKKyAgICAgICAgICAgICAg ICAgKGhpZi11bmRlZmluZS1zeW1ib2wgKGludGVybiBuYW1lKSkpKSkpCisgICAgICAgdCkpCgoK IChkZWZ1biBoaWRlLWlmZGVmLWd1dHMgKCkKQEAgLTEwNzgsMTIgKzE0NzksMTYgQEAgSXQgZG9l cyBub3QgZG8gdGhlIHdvcmsgdGhhdCdzIHBvaW50bGVzcyB0byByZWRvIG9uIGEgcmVjdXJzaXZl IGVudHJ5LiIKICAgKGhpZi1zZXQtdmFyIHZhciAxKQogICAoaWYgaGlkZS1pZmRlZi1oaWRpbmcg KGhpZGUtaWZkZWZzKSkpCgotKGRlZnVuIGhpZGUtaWZkZWYtdW5kZWYgKHZhcikKLSAgIlVuZGVm aW5lIGEgVkFSIHNvIHRoYXQgI2lmZGVmIFZBUiB3b3VsZCBub3QgYmUgaW5jbHVkZWQuIgotICAo aW50ZXJhY3RpdmUgIlNVbmRlZmluZSB3aGF0PyAiKQotICAoaGlmLXNldC12YXIgdmFyIG5pbCkK LSAgKGlmIGhpZGUtaWZkZWYtaGlkaW5nIChoaWRlLWlmZGVmcykpKQorKGRlZnVuIGhpZi11bmRl ZmluZS1zeW1ib2wgKHZhcikKKyAgKHNldHEgaGlkZS1pZmRlZi1lbnYKKyAgICAgICAgKGRlbGV0 ZSAoYXNzb2MgdmFyIGhpZGUtaWZkZWYtZW52KSBoaWRlLWlmZGVmLWVudikpKQoKKzs7KGRlZnVu IGhpZGUtaWZkZWYtdW5kZWYgKHZhcikKKzs7ICAiVW5kZWZpbmUgYSBWQVIgc28gdGhhdCAjaWZk ZWYgVkFSIHdvdWxkIG5vdCBiZSBpbmNsdWRlZC4iCis7OyAgKGludGVyYWN0aXZlICJTVW5kZWZp bmUgd2hhdD8gIikKKzs7ICA7OyhoaWYtc2V0LXZhciB2YXIgbmlsKTs7THVrZSBmaXhlZDogc2V0 IGl0IG5pbCBpcyBzdGlsbCBjb25zaWRlcmVkIGRlZmluZWQgc28gI2lmZGVmIFZBUiBpcyBzdGls bCB0cnVlLgorOzsgIChoaWYtdW5kZWZpbmUtc3ltYm9sIHZhcikKKzs7ICAoaWYgaGlkZS1pZmRl Zi1oaWRpbmcgKGhpZGUtaWZkZWZzKSkpCgogKGRlZnVuIGhpZGUtaWZkZWZzICgmb3B0aW9uYWwg bm9tc2cpCiAgICJIaWRlIHRoZSBjb250ZW50cyBvZiBzb21lICNpZmRlZnMuCkBAIC0xMTk1LDUg KzE2MDAsOCBAQCBSZXR1cm4gYXMgKFRPUCAuIEJPVFRPTSkgdGhlIGV4dGVudCBvZiBpZmRlZiBi bG9jay4iCiAgICAgKGlmIGhpZGUtaWZkZWYtaGlkaW5nIChoaWRlLWlmZGVmcykpKSkKCiAocHJv dmlkZSAnaGlkZWlmKQorOzsgTG9jYWwgdmFyaWFibGVzOgorOzsgYnl0ZS1jb21waWxlLXdhcm5p bmdzOiAobm90IGNsLWZ1bmN0aW9ucykKKzs7IEVuZDoKCiA7OzsgaGlkZWlmLmVsIGVuZHMgaGVy ZQotLQoxLjguMy4yNC5nNjdiMDk5OAoK --047d7b5d6752a852f304ecb71110 Content-Type: application/octet-stream; name="0003-Other-hideif-enhancements-and-bug-fixes.patch" Content-Disposition: attachment; filename="0003-Other-hideif-enhancements-and-bug-fixes.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hosecjky3 RnJvbSAwNWQ1OTkzZDgxYmFiMWJlYTE1ZmY4OTc0MWUwMWZjNDYzMmM1ODZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWtlIExlZSA8bHVrZS55eC5sZWVAZ21haWwuY29tPgpEYXRl OiBXZWQsIDQgRGVjIDIwMTMgMTU6Mzk6NTggKzA4MDAKU3ViamVjdDogW1BBVENIIDMvNF0gT3Ro ZXIgaGlkZWlmIGVuaGFuY2VtZW50cyBhbmQgYnVnIGZpeGVzOgoKKiBBZGQgbWFjcm8gZXZhbHVh dGlvbiBmdW5jdGlvbiBhbmQga2V5IGJpbmRpbmcuCiogQXV0b21hdGljIHNlYXJjaCBmb3IgZGVm aW5lcyBvbiBoaWRpbmcuCiogTWVyZ2UgY29udGludW91cyAiLi4uIiBpbnRvIG9uZS4KKiBGaXgg b3JpZ2luYWwgYnVnIHRoYXQgc29tZXRpbWVzIGZhaWwgdG8gaGlkZSB0aGUgY29ycmVjdCBwb3J0 aW9uIGluIGEgbG9uZwogIGlmZGVmcyBjb250YWluaW5nIGVsaWYgYW5kIGVsc2UuCiogU3VwcG9y dCBoaWRlL3Nob3cgY29tbWFuZHMgaW4gYSBtYXJrZWQgcmVnaW9uLgoqIEV4cGFuZCB0b3AgbGV2 ZWwgZm9yIC5oIGZpbGVzIHRvIHByZXZlbnQgcmUtaW5jbHVzaW9uIHByb3RlY3Rpb24uCiogT3Ro ZXJzLgotLS0KIGxpc3AvcHJvZ21vZGVzL2hpZGVpZi5lbCB8IDQ1NSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDM2OCBpbnNl cnRpb25zKCspLCA4NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL3Byb2dtb2Rlcy9o aWRlaWYuZWwgYi9saXNwL3Byb2dtb2Rlcy9oaWRlaWYuZWwKaW5kZXggYzUzMDM2Yi4uMDFlZGZi NCAxMDA2NDQKLS0tIGEvbGlzcC9wcm9nbW9kZXMvaGlkZWlmLmVsCisrKyBiL2xpc3AvcHJvZ21v ZGVzL2hpZGVpZi5lbApAQCAtMTQwLDYgKzE0MCwyNCBAQAogICAiSWdub3JlICNkZWZpbmUgbmFt ZSBpZiB0aGF0IG5hbWUgbWF0Y2ggdGhpcyBleGNsdXNpb24gcGF0dGVybi4iCiAgIDp0eXBlICdz dHJpbmcKICAgOmdyb3VwICdoaWRlLWlmZGVmKQorKGRlZmN1c3RvbSBoaWRlLWlmZGVmLWV4cGFu ZC1yZS1pbmNsdXNpb24tcHJvdGVjdGlvbiB0CisgICJXaGVuIGhpZGluZyBoZWFkZXIgZmlsZXMs IGFsd2F5cyBleHBhbmQgdGhlIHJlLWluY2x1c2lvbiBwcm90ZWN0ZWQKK2lmZGVmcy4gTW9zdCBD L0MrKyBoZWFkZXIgZmlsZXMgYXJlIHdyYXBwZWQgd2l0aCBpZmRlZnMgdG8gcHJldmVudAorcmUt aW5jbHVzaW9uIG9mIHRoaXMgZm9ybQorICAjaWZkZWYgX1hYWF9IRUFERVJfRklMRV9JTkNMVURF RF8KKyAgI2RlZmluZSBfWFhYX0hFQURFUl9GSUxFX0lOQ0xVREVEXworICAuLi4KKyAgI2VuZGlm CitIZW5jZSwgaWYgd2UgdHJ5IHRvIGhpZGUgaWZkZWZzIGluIHRoZSBoZWFkZXIgZmlsZSwgaXQg d2lsbCBoaWRlCitldmVyeXRoaW5nIHdoZW4gd2UgdHJpZWQgdGhlIHNlY29uZCB0aW1lLHNpbmNl IF9YWFhfSEVBREVSX0ZJTEVfSU5DTFVERURfCitpcyBkZWZpbmVkIGF0IHRoZSBmaXJzdCB0aW1l IHRoYXQgd2UgaGlkZSBpdC4iCisgIDp0eXBlICdib29sZWFuCisgIDpncm91cCAnaGlkZS1pZmRl ZikKKworKGRlZmN1c3RvbSBoaWRlLWlmZGVmLWhlYWRlci1yZWdleHAtcGF0dGVybiAiXi4qXFwu W2hIXVxcKFtoSF1cXHxbeFhdW3hYXVxcfFtwUF1bcFBdXFwpPyIKKyAgIkMvQysrIGhlYWRlciBm aWxlIG5hbWUgcGF0dGVybnMuIEVmZmVjdGl2ZSBvbmx5IGlmICdoaWRlLWlmZGVmLWV4cGFuZC1y ZS1pbmNsdXNpb24tcHJvdGVjdGlvbicgaXMgdC4iCisgIDp0eXBlICdzdHJpbmcKKyAgOmdyb3Vw ICdoaWRlLWlmZGVmKQoKIChkZWZ2YXIgaGlkZS1pZmRlZi1tb2RlLXN1Ym1hcAogICA7OyBTZXQg dXAgdGhlIHN1Ym1hcCB0aGF0IGdvZXMgYWZ0ZXIgdGhlIHByZWZpeCBrZXkuCkBAIC0xNTMsNiAr MTcxLDcgQEAKICAgICAoZGVmaW5lLWtleSBtYXAgInMiICdzaG93LWlmZGVmcykKICAgICAoZGVm aW5lLWtleSBtYXAgIlxDLWQiICdoaWRlLWlmZGVmLWJsb2NrKQogICAgIChkZWZpbmUta2V5IG1h cCAiXEMtcyIgJ3Nob3ctaWZkZWYtYmxvY2spCisgICAgKGRlZmluZS1rZXkgbWFwICJlIiAnaGlm LWV2YWx1YXRlLW1hY3JvKQoKICAgICAoZGVmaW5lLWtleSBtYXAgIlxDLXEiICdoaWRlLWlmZGVm LXRvZ2dsZS1yZWFkLW9ubHkpCiAgICAgKGRlZmluZS1rZXkgbWFwICJcQy13IiAnaGlkZS1pZmRl Zi10b2dnbGUtc2hhZG93aW5nKQpAQCAtMjYwLDggKzI3OSw5IEBAIFNldmVyYWwgdmFyaWFibGVz IGFmZmVjdCBob3cgdGhlIGhpZGluZyBpcyBkb25lOgogICAoaWYgaGlkZS1pZmRlZi1tb2RlCiAg ICAgICAocHJvZ24KIAk7OyBpbmhlcml0IGdsb2JhbCB2YWx1ZXMKLQkoc2V0IChtYWtlLWxvY2Fs LXZhcmlhYmxlICdoaWRlLWlmZGVmLWVudikKLQkgICAgIChkZWZhdWx0LXZhbHVlICdoaWRlLWlm ZGVmLWVudikpCis7OyAgICAgIChzZXQgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ2hpZGUtaWZkZWYt ZW52KSA7OyBbMjAxMi0wOS0yNyAxMTowNToyNiArMDgwMF0gTHVrZSByZW0gMiBpbnMgMgorOzsg ICAgICAgICAgIChkZWZhdWx0LXZhbHVlICdoaWRlLWlmZGVmLWVudikpCisgICAgICAgIChzZXQg J2hpZGUtaWZkZWYtZW52IChkZWZhdWx0LXZhbHVlICdoaWRlLWlmZGVmLWVudikpCiAJKHNldCAo bWFrZS1sb2NhbC12YXJpYWJsZSAnaGlkZS1pZmRlZi1oaWRpbmcpCiAJICAgICAoZGVmYXVsdC12 YWx1ZSAnaGlkZS1pZmRlZi1oaWRpbmcpKQogCShzZXQgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ2hp Zi1vdXRzaWRlLXJlYWQtb25seSkgYnVmZmVyLXJlYWQtb25seSkKQEAgLTI5OCwxNyArMzE4LDYx IEBAIFNldmVyYWwgdmFyaWFibGVzIGFmZmVjdCBob3cgdGhlIGhpZGluZyBpcyBkb25lOgogICAo ZW5kLW9mLWxpbmUpCiAgICh3aGlsZSAoPSAobG9nYW5kIDEgKHNraXAtY2hhcnMtYmFja3dhcmQg IlxcXFwiKSkgMSkKICAgICAoZW5kLW9mLWxpbmUgMikpKQorKGRlZnVuIGhpZi1tZXJnZS1pZmRl Zi1yZWdpb24gKHN0YXJ0IGVuZCkKKyAgOzsgR2VuZXJuYWxseSB0aGVyZSBpcyBubyBuZWVkIHRv IGNhbGwgaXRzZWxmIHJlY3Vyc2l2ZWx5IHNpbmNlIHRoZXJlIHNob3VsZCBvcmlnaW5hbGx5Cisg IDs7IGV4aXN0cyBubyB1bi1tZXJnZWQgcmVnaW9uczsgaG93ZXZlciwgaWYgYSBwYXJ0IG9mIHRo ZSBmaWxlIGlzIGhpZGRlbiB3aXRoICdoaWRlLWlmZGVmLWxpbmVzJworICA7OyBhcyBuaWwgd2hp bGUgYW5vdGhlciBwYXJ0IHdpdGggJ3QsIHRoaXMgY2FzZSBoYXBwZW5zLgorICA7OyBUT0RPOiBz aG91bGQgd2UgbWVyZ2U/IG9yIGp1c3QgY3JlYXRlIGEgY29udGFpbmVyIG92ZXJsYXk/IC0tIHRo aXMgY2FuIHByZXZlbnQgaGlkZWlmLXNob3ctaWZkZWYKKyAgOzsgZXhwYW5kIHRvbyBtYW55IHNp bmNlIHRoZXJlIGlzIG9ubHkgYSBiaWcgb3ZlcmxheSBleGlzdHMgdGhlcmUgd2l0aG91dCBhbnkg c21hbGxlciBvdmVybGF5cy4KKyAgIk1lcmdlIG5lYXJieSBpZmRlZiByZWdpb25zIHRvIGZvcm0g YSBiaWdnZXIgb3ZlcmxheS4gVGhpcyB3aWxsIGRlY3JlYXNlIHRoZQordG90YWwgbnVtYmVyIG9m IG92ZXJsYXlzIGNyZWF0ZWQuIgorICAoc2F2ZS1yZXN0cmljdGlvbgorICAgICh3aWRlbikgOzsg b3RoZXJ3aXNlIChwb2ludC1taW4pIGFuZCAocG9pbnQtbWF4KSB3aWxsIGJlCisgICAgICAgICAg ICA7OyByZXN0cmljdGVkIGFuZCB0aHVzIGZhaWwgdG8gZmluZCBuZWlnaGJvciBvdmVybGF5cwor ICAgIChsZXQgKChiZWdvdnJzIChvdmVybGF5cy1pbgorICAgICAgICAgICAgICAgICAgICAobWF4 ICgtIHN0YXJ0IDIpIChwb2ludC1taW4pKQorICAgICAgICAgICAgICAgICAgICAobWF4ICgtIHN0 YXJ0IDEpIChwb2ludC1taW4pKSkpCisgICAgICAgICAgKGVuZG92cnMgKG92ZXJsYXlzLWluCisg ICAgICAgICAgICAgICAgICAgIChtaW4gKCsgZW5kIDEpIChwb2ludC1tYXgpKQorICAgICAgICAg ICAgICAgICAgICAobWluICgrIGVuZCAyKSAocG9pbnQtbWF4KSkpKQorICAgICAgICAgIChvYiBu aWwpCisgICAgICAgICAgKG9lIG5pbCkKKyAgICAgICAgICBiIGUpCisgICAgICA7OyBtZXJnZSBv dmVybGF5cyBiZWZvcmUgJ3N0YXJ0JworICAgICAgKGRvbGlzdCAobyBiZWdvdnJzKQorICAgICAg ICAod2hlbiAob3ZlcmxheS1nZXQgbyAnaGlkZS1pZmRlZikKKyAgICAgICAgICAoc2V0cSBiICht aW4gc3RhcnQgKG92ZXJsYXktc3RhcnQgbykpCisgICAgICAgICAgICAgICAgZSAobWF4IGVuZCAo b3ZlcmxheS1lbmQgbykpKQorICAgICAgICAgIChtb3ZlLW92ZXJsYXkgbyBiIGUpCisgICAgICAg ICAgKGhpZi1tZXJnZS1pZmRlZi1yZWdpb24gYiBlKQorICAgICAgICAgIChzZXRxIG9iIG8pKSkK KyAgICAgIDs7IG1lcmdlIG92ZXJsYXlzIGFmdGVyICdlbmQnCisgICAgICAoZG9saXN0IChvIGVu ZG92cnMpCisgICAgICAgICh3aGVuIChvdmVybGF5LWdldCBvICdoaWRlLWlmZGVmKQorICAgICAg ICAgIChzZXRxIGIgKG1pbiBzdGFydCAob3ZlcmxheS1zdGFydCBvKSkKKyAgICAgICAgICAgICAg ICBlIChtYXggZW5kIChvdmVybGF5LWVuZCBvKSkpCisgICAgICAgICAgKG1vdmUtb3ZlcmxheSBv IGIgZSkKKyAgICAgICAgICAoaGlmLW1lcmdlLWlmZGVmLXJlZ2lvbiBiIGUpCisgICAgICAgICAg KHNldGYgb2UgbykpKQorICAgICAgOzsgaWYgYm90aCAnc3RhcnQnICdlbmQnIG1lcmdpbmcgaGFw cGVucywgbWVyZ2UgaW50byBiaWdnZXIgb25lCisgICAgICAod2hlbiAoYW5kIG9iIG9lKQorICAg ICAgICAobGV0ICgoYiAobWluIChvdmVybGF5LXN0YXJ0IG9iKSAob3ZlcmxheS1zdGFydCBvZSkp KQorICAgICAgICAgICAgICAoZSAobWF4IChvdmVybGF5LWVuZCBvYikgKG92ZXJsYXktZW5kIG9l KSkpKQorICAgICAgICAgIChkZWxldGUtb3ZlcmxheSBvZSkKKyAgICAgICAgICAobW92ZS1vdmVy bGF5IG9iIGIgZSkKKyAgICAgICAgICAoaGlmLW1lcmdlLWlmZGVmLXJlZ2lvbiBiIGUpKSkKKyAg ICAgIChvciBvYiBvZSkpKSkKCiAoZGVmdW4gaGlkZS1pZmRlZi1yZWdpb24taW50ZXJuYWwgKHN0 YXJ0IGVuZCkKLSAgKHJlbW92ZS1vdmVybGF5cyBzdGFydCBlbmQgJ2hpZGUtaWZkZWYgdCkKKyAg KHVubGVzcyAoaGlmLW1lcmdlLWlmZGVmLXJlZ2lvbiBzdGFydCBlbmQpCiAgIChsZXQgKChvICht YWtlLW92ZXJsYXkgc3RhcnQgZW5kKSkpCiAgICAgKG92ZXJsYXktcHV0IG8gJ2hpZGUtaWZkZWYg dCkKICAgICAoaWYgaGlkZS1pZmRlZi1zaGFkb3cKIAkob3ZlcmxheS1wdXQgbyAnZmFjZSAnaGlk ZS1pZmRlZi1zaGFkb3cpCi0gICAgICAob3ZlcmxheS1wdXQgbyAnaW52aXNpYmxlICdoaWRlLWlm ZGVmKSkpKQorICAgICAgICAob3ZlcmxheS1wdXQgbyAnaW52aXNpYmxlICdoaWRlLWlmZGVmKSkp KSkKCiAoZGVmdW4gaGlkZS1pZmRlZi1yZWdpb24gKHN0YXJ0IGVuZCkKLSAgIlNUQVJUIGlzIHRo ZSBzdGFydCBvZiBhICNpZiBvciAjZWxzZSBmb3JtLiAgRU5EIGlzIHRoZSBlbmRpbmcgcGFydC4K KyAgIlNUQVJUIGlzIHRoZSBzdGFydCBvZiBhICNpZiwgI2VsaWYsIG9yICNlbHNlIGZvcm0uICBF TkQgaXMgdGhlIGVuZGluZyBwYXJ0LgogRXZlcnl0aGluZyBpbmNsdWRpbmcgdGhlc2UgbGluZXMg aXMgbWFkZSBpbnZpc2libGUuIgogICAoc2F2ZS1leGN1cnNpb24KICAgICAoZ290by1jaGFyIHN0 YXJ0KSAoaGlmLWVuZC1vZi1saW5lKSAoc2V0cSBzdGFydCAocG9pbnQpKQpAQCAtMzE3LDcgKzM4 MSw5IEBAIEV2ZXJ5dGhpbmcgaW5jbHVkaW5nIHRoZXNlIGxpbmVzIGlzIG1hZGUgaW52aXNpYmxl LiIKCiAoZGVmdW4gaGlmLXNob3ctaWZkZWYtcmVnaW9uIChzdGFydCBlbmQpCiAgICJFdmVyeXRo aW5nIGJldHdlZW4gU1RBUlQgYW5kIEVORCBpcyBtYWRlIHZpc2libGUuIgotICAocmVtb3ZlLW92 ZXJsYXlzIHN0YXJ0IGVuZCAnaGlkZS1pZmRlZiB0KSkKKyAgKGxldCAoKG9udW0gKGxlbmd0aCAo b3ZlcmxheXMtaW4gc3RhcnQgZW5kKSkpKQorICAgIChyZW1vdmUtb3ZlcmxheXMgc3RhcnQgZW5k ICdoaWRlLWlmZGVmIHQpCisgICAgKC89IG9udW0gKGxlbmd0aCAob3ZlcmxheXMtaW4gc3RhcnQg ZW5kKSkpKSkKCgogOzs9PT0lJVNGJSUgZXZhbHVhdGlvbiAoU3RhcnQpICA9PT0KQEAgLTQ2NSw2 ICs1MzEsOCBAQCB0aGF0IGZvcm0gc2hvdWxkIGJlIGRpc3BsYXllZC4iKQogICAgICAgICAgICAg ICAgICAgICAgICAgKHByb2cxIChpbnRlcm4gdG9rZW4pCiAgICAgICAgICAgICAgICAgICAgICAg ICAgIChzZXRxIGhpZi1zaW1wbGUtdG9rZW4tb25seSBuaWwpKSkKIAkJICAgIHRva2VuLWxpc3Qp KSkKKyAgICAgICAgICAgKChsb29raW5nLWF0ICJcciIpIDs7IHNvbWV0aW1lcyBXaW5kb3dzIHVz ZXIgd2lsbCBsZWF2ZSBDUiBpbiB0aGUgc291cmNlIGNvZGUKKyAgICAgICAgICAgIChmb3J3YXJk LWNoYXIgMSkpIDs7IGxldCdzIGRvbid0IHN0dWNrIGhlcmUuCiAJICAgKHQgKGVycm9yICJCYWQg I2lmIGV4cHJlc3Npb246ICVzIiAoYnVmZmVyLXN0cmluZykpKSkpKSkKICAgICAobnJldmVyc2Ug dG9rZW4tbGlzdCkpKQoKQEAgLTEwODUsNyArMTE1Myw3IEBAIHdlIGlnbm9yZSB0aGVtIGFsbCBo ZXJlLiIKCgogKGRlZnVuIGhpZi1maW5kLW5leHQtcmVsZXZhbnQgKCkKLSAgIk1vdmUgdG8gbmV4 dCAjaWYuLi4sICNlbHNlLCBvciAjZW5kaWYsIGFmdGVyIHRoZSBjdXJyZW50IGxpbmUuIgorICAi TW92ZSB0byBuZXh0ICNpZi4uLiwgI2VsaWYuLi4sICNlbHNlLCBvciAjZW5kaWYsIGFmdGVyIHRo ZSBjdXJyZW50IGxpbmUuIgogICA7OyAobWVzc2FnZSAiaGlmLWZpbmQtbmV4dC1yZWxldmFudCBh dCAlZCIgKHBvaW50KSkKICAgKGVuZC1vZi1saW5lKQogICA7OyBhdm9pZCBpbmZpbml0ZSByZWN1 cnNpb24gYnkgb25seSBnb2luZyB0byBiZWdpbm5pbmcgb2YgbGluZSBpZiBtYXRjaCBmb3VuZApA QCAtMTEwOCwxNSArMTE3NiwxOSBAQCB3ZSBpZ25vcmUgdGhlbSBhbGwgaGVyZS4iCiAoZGVmdW4g aGlmLWxvb2tpbmctYXQtZWxzZSAoKQogICAobG9va2luZy1hdCBoaWYtZWxzZS1yZWdleHApKQoK KyhkZWZ1biBoaWYtbG9va2luZy1hdC1lbGlmICgpCisgIChsb29raW5nLWF0IGhpZi1lbGlmLXJl Z2V4cCkpCgoKIChkZWZ1biBoaWYtaWZkZWYtdG8tZW5kaWYgKCkKLSAgIklmIHBvc2l0aW9uZWQg YXQgI2lmWCBvciAjZWxzZSBmb3JtLCBza2lwIHRvIGNvcnJlc3BvbmRpbmcgI2VuZGlmLiIKKyAg IklmIHBvc2l0aW9uZWQgYXQgI2lmWCwgI2VsaWYsIG9yICNlbHNlIGZvcm0sIHNraXAgdG8gY29y cmVzcG9uZGluZyAjZW5kaWYuIgogICA7OyAobWVzc2FnZSAiaGlmLWlmZGVmLXRvLWVuZGlmIGF0 ICVkIiAocG9pbnQpKSAoc2l0LWZvciAxKQogICAoaGlmLWZpbmQtbmV4dC1yZWxldmFudCkKICAg KGNvbmQgKChoaWYtbG9va2luZy1hdC1pZlgpCiAJIChoaWYtaWZkZWYtdG8tZW5kaWYpIDsgZmlu ZCBlbmRpZiBvZiBuZXN0ZWQgaWYKIAkgKGhpZi1pZmRlZi10by1lbmRpZikpIDsgZmluZCBvdXRl ciBlbmRpZiBvciBlbHNlCisgICAgICAgICgoaGlmLWxvb2tpbmctYXQtZWxpZikKKyAgICAgICAg IChoaWYtaWZkZWYtdG8tZW5kaWYpKQogCSgoaGlmLWxvb2tpbmctYXQtZWxzZSkKIAkgKGhpZi1p ZmRlZi10by1lbmRpZikpIDsgZmluZCBlbmRpZiBmb2xsb3dpbmcgZWxzZQogCSgoaGlmLWxvb2tp bmctYXQtZW5kaWYpCkBAIC0xMTM1LDExICsxMjA3LDE0IEBAIHdlIGlnbm9yZSB0aGVtIGFsbCBo ZXJlLiIKICAgKGNvbmQgKChoaWYtbG9va2luZy1hdC1lbmRpZikKIAkgKGhpZi1lbmRpZi10by1p ZmRlZikgOyBmaW5kIGJlZ2lubmluZyBvZiBuZXN0ZWQgaWYKIAkgKGhpZi1lbmRpZi10by1pZmRl ZikpIDsgZmluZCBiZWdpbm5pbmcgb2Ygb3V0ZXIgaWYgb3IgZWxzZQorICAgICAgICAoKGhpZi1s b29raW5nLWF0LWVsaWYpCisgICAgICAgICAoaGlmLWVuZGlmLXRvLWlmZGVmKSkKIAkoKGhpZi1s b29raW5nLWF0LWVsc2UpCiAJIChoaWYtZW5kaWYtdG8taWZkZWYpKQogCSgoaGlmLWxvb2tpbmct YXQtaWZYKQogCSAnZG9uZSkKLQkodCkpKQkJCTsgbmV2ZXIgZ2V0cyBoZXJlCisgICAgICAgICh0 CisgICAgICAgICAoZXJyb3IgIk1pc21hdGNoZWQgI2VuZGlmIikpKSkgICAgICAgICAgICAgICAg IDsgbmV2ZXIgZ2V0cyBoZXJlCgoKIChkZWZ1biBmb3J3YXJkLWlmZGVmICgmb3B0aW9uYWwgYXJn KQpAQCAtMTIzMywyNiArMTMwOCwyNiBAQCBXaXRoIGFyZ3VtZW50LCBkbyB0aGlzIHRoYXQgbWFu eSB0aW1lcy4iCiA7Oz09PSUlU0YlJSBoaWRlLWlmZGVmLWhpZGluZyAoU3RhcnQpICA9PT0KCgot Ozs7IEEgcmFuZ2UgaXMgYSBzdHJ1Y3R1cmUgd2l0aCBmb3VyIGNvbXBvbmVudHM6Ci07OzsgRUxT RS1QCVRydWUgaWYgdGhlcmUgd2FzIGFuIGVsc2UgY2xhdXNlIGZvciB0aGUgaWZkZWYuCi07Ozsg U1RBUlQJVGhlIHN0YXJ0IG9mIHRoZSByYW5nZS4gKGJlZ2lubmluZyBvZiBsaW5lKQotOzs7IEVM U0UJVGhlIGVsc2UgbWFya2VyIChiZWdpbm5pbmcgb2YgbGluZSkKLTs7OwkJCU9ubHkgdmFsaWQg aWYgRUxTRS1QIGlzIHRydWUuCi07OzsgRU5ECQlUaGUgZW5kIG9mIHRoZSByYW5nZS4gIChiZWdp bm5pbmcgb2YgbGluZSkKKzs7IEEgcmFuZ2UgaXMgYSBzdHJ1Y3R1cmUgd2l0aCBmb3VyIGNvbXBv bmVudHM6Cis7OyBTVEFSVCAgICAgICBUaGUgc3RhcnQgb2YgdGhlIHJhbmdlLiAoYmVnaW5uaW5n IG9mIGxpbmUpCis7OyBFTFNFICAgICAgICBUaGUgZWxzZSBtYXJrZXIgKGJlZ2lubmluZyBvZiBs aW5lKQorOzsgRU5EICAgICAgICAgVGhlIGVuZCBvZiB0aGUgcmFuZ2UuICAoYmVnaW5uaW5nIG9m IGxpbmUpCis7OyBFTElGICAgICAgICBBIHNlcXVlbmNlIG9mICNlbGlmIG1hcmtlcnMgKGJlZ2lu bmluZyBvZiBsaW5lKQoKLShkZWZzdWJzdCBoaWYtbWFrZS1yYW5nZSAoc3RhcnQgZW5kICZvcHRp b25hbCBlbHNlKQotICAobGlzdCBzdGFydCBlbHNlIGVuZCkpCisoZGVmc3Vic3QgaGlmLW1ha2Ut cmFuZ2UgKHN0YXJ0IGVuZCAmb3B0aW9uYWwgZWxzZSBlbGlmKQorICAobGlzdCBzdGFydCBlbHNl IGVuZCBlbGlmKSkKCiAoZGVmc3Vic3QgaGlmLXJhbmdlLXN0YXJ0IChyYW5nZSkgKGVsdCByYW5n ZSAwKSkKIChkZWZzdWJzdCBoaWYtcmFuZ2UtZWxzZSAocmFuZ2UpIChlbHQgcmFuZ2UgMSkpCiAo ZGVmc3Vic3QgaGlmLXJhbmdlLWVuZCAocmFuZ2UpIChlbHQgcmFuZ2UgMikpCisoZGVmc3Vic3Qg aGlmLXJhbmdlLWVsaWYgKHJhbmdlKSAoZWx0IHJhbmdlIDMpKQoKCgotOzs7IEZpbmQtUmFuZ2UK LTs7OyBUaGUgd29ya2hvcnNlLCBpdCBkZWxpbWl0cyB0aGUgI2lmIHJlZ2lvbi4gIFJlYXNvbmFi bHkgc2ltcGxlOgotOzs7IFNraXAgdW50aWwgYW4gI2Vsc2Ugb3IgI2VuZGlmIGlzIGZvdW5kLCBy ZW1lbWJlcmluZyBwb3NpdGlvbnMuICBJZgotOzs7IGFuICNlbHNlIHdhcyBmb3VuZCwgc2tpcCBz b21lIG1vcmUsIGxvb2tpbmcgZm9yIHRoZSB0cnVlICNlbmRpZi4KKzs7IEZpbmQtUmFuZ2UKKzs7 IFRoZSB3b3JraG9yc2UsIGl0IGRlbGltaXRzIHRoZSAjaWYgcmVnaW9uLiAgUmVhc29uYWJseSBz aW1wbGU6Cis7OyBTa2lwIHVudGlsIGFuICNlbHNlIG9yICNlbmRpZiBpcyBmb3VuZCwgcmVtZW1i ZXJpbmcgcG9zaXRpb25zLiAgSWYKKzs7IGFuICNlbHNlIHdhcyBmb3VuZCwgc2tpcCBzb21lIG1v cmUsIGxvb2tpbmcgZm9yIHRoZSB0cnVlICNlbmRpZi4KCiAoZGVmdW4gaGlmLWZpbmQtcmFuZ2Ug KCkKICAgIlJldHVybiBhIFJhbmdlIHN0cnVjdHVyZSBkZXNjcmliaW5nIHRoZSBjdXJyZW50ICNp ZiByZWdpb24uCkBAIC0xMjYxLDE5ICsxMzM2LDIzIEBAIFBvaW50IGlzIGxlZnQgdW5jaGFuZ2Vk LiIKICAgKHNhdmUtZXhjdXJzaW9uCiAgICAgKGJlZ2lubmluZy1vZi1saW5lKQogICAgIChsZXQg KChzdGFydCAocG9pbnQpKQorICAgICAgICAgIChlbGlmIG5pbCkKIAkgIChlbHNlIG5pbCkKIAkg IChlbmQgbmlsKSkKLSAgICAgIDs7IFBhcnQgb25lLiAgTG9vayBmb3IgZWl0aGVyICNlbmRpZiBv ciAjZWxzZS4KKyAgICAgIDs7IFBhcnQgb25lLiAgTG9vayBmb3IgZWl0aGVyICNlbGlmLCAjZWxz ZSBvciAjZW5kaWYuCiAgICAgICA7OyBUaGlzIGxvb3AtYW5kLWEtaGFsZiBkZWRpY2F0ZWQgdG8g RS4gRGlqa3N0cmEuCisgICAgICAod2hpbGUgKGFuZCAobm90IGVsc2UpIChub3QgZW5kKSkKICAg ICAgICh3aGlsZSAocHJvZ24KIAkgICAgICAgKGhpZi1maW5kLW5leHQtcmVsZXZhbnQpCiAJICAg ICAgIChoaWYtbG9va2luZy1hdC1pZlgpKQkJOyBTa2lwIG5lc3RlZCBpZmRlZgogCShoaWYtaWZk ZWYtdG8tZW5kaWYpKQotICAgICAgOzsgRm91bmQgZWl0aGVyIGEgI2Vsc2Ugb3IgYW4gI2VuZGlm LgotICAgICAgKGNvbmQgKChoaWYtbG9va2luZy1hdC1lbHNlKQorICAgICAgICA7OyBGb3VuZCBl aXRoZXIgYSAjZWxzZSwgI2VsaWYsIG9yIGFuICNlbmRpZi4KKyAgICAgICAgKGNvbmQgKChoaWYt bG9va2luZy1hdC1lbGlmKQorICAgICAgICAgICAgICAgKHNldHEgZWxpZiAobmNvbmMgZWxpZiAo bGlzdCAocG9pbnQpKSkpKQorICAgICAgICAgICAgICAoKGhpZi1sb29raW5nLWF0LWVsc2UpCiAJ ICAgICAoc2V0cSBlbHNlIChwb2ludCkpKQogCSAgICAodAotCSAgICAgKHNldHEgZW5kIChwb2lu dCkpKSkgOyAobGluZS1lbmQtcG9zaXRpb24pCisgICAgICAgICAgICAgICAoc2V0cSBlbmQgKHBv aW50KSkpKSkKICAgICAgIDs7IElmIGZvdW5kICNlbHNlLCBsb29rIGZvciAjZW5kaWYuCiAgICAg ICAod2hlbiBlbHNlCiAJKHdoaWxlIChwcm9nbgpAQCAtMTI4MywxMCArMTM2MiwxMCBAQCBQb2lu dCBpcyBsZWZ0IHVuY2hhbmdlZC4iCiAJKGlmIChoaWYtbG9va2luZy1hdC1lbHNlKQogCSAgICAo ZXJyb3IgIkZvdW5kIHR3byBlbHNlcyBpbiBhIHJvdz8gIEJyb2tlbiEiKSkKIAkoc2V0cSBlbmQg KHBvaW50KSkpCSAgICAgICA7IChsaW5lLWVuZC1wb3NpdGlvbikKLSAgICAgIChoaWYtbWFrZS1y YW5nZSBzdGFydCBlbmQgZWxzZSkpKSkKKyAgICAgIChoaWYtbWFrZS1yYW5nZSBzdGFydCBlbmQg ZWxzZSBlbGlmKSkpKQoKCi07OzsgQSBiaXQgc2xpbXkuCis7OyBBIGJpdCBzbGlteS4KCiAoZGVm dW4gaGlmLWhpZGUtbGluZSAocG9pbnQpCiAgICJIaWRlIHRoZSBsaW5lIGNvbnRhaW5pbmcgcG9p bnQuICBEb2VzIG5vdGhpbmcgaWYgYGhpZGUtaWZkZWYtbGluZXMnIGlzIG5pbC4iCkBAIC0xMjk3 LDY5ICsxMzc2LDE3MiBAQCBQb2ludCBpcyBsZWZ0IHVuY2hhbmdlZC4iCiAgICAgICAgKGxpbmUt YmVnaW5uaW5nLXBvc2l0aW9uKSAocHJvZ24gKGhpZi1lbmQtb2YtbGluZSkgKHBvaW50KSkpKSkp CgoKLTs7OyAgSGlmLVBvc3NpYmx5LUhpZGUKLTs7OyAgVGhlcmUgYXJlIGZvdXIgY2FzZXMuICBU aGUgI2lmWCBleHByZXNzaW9uIGlzICJ0YWtlbiIgaWYgaXQKLTs7OyAgdGhlIGhpZGUtaWZkZWYt ZXZhbHVhdG9yIHJldHVybnMgVC4gIFByZXN1bWFibHksIHRoaXMgbWVhbnMgdGhlIGNvZGUKLTs7 OyAgaW5zaWRlIHRoZSAjaWZkZWYgd291bGQgYmUgaW5jbHVkZWQgd2hlbiB0aGUgcHJvZ3JhbSB3 YXMKLTs7OyAgY29tcGlsZWQuCi07OzsKLTs7OyAgQ2FzZSAxOiAgI2lmWCB0YWtlbiwgYW5kIHRo ZXJlJ3MgYW4gI2Vsc2UuCi07OzsJVGhlICNlbHNlIHBhcnQgbXVzdCBiZSBoaWRkZW4uICBUaGUg I2lmICh0aGVuKSBwYXJ0IG11c3QgYmUKLTs7Owlwcm9jZXNzZWQgZm9yIG5lc3RlZCAjaWZYJ3Mu Ci07OzsgIENhc2UgMjogICNpZlggdGFrZW4sIGFuZCB0aGVyZSdzIG5vICNlbHNlLgotOzs7CVRo ZSAjaWYgcGFydCBtdXN0IGJlIHByb2Nlc3NlZCBmb3IgbmVzdGVkICNpZlgncy4KLTs7OyAgQ2Fz ZSAzOiAgI2lmWCBub3QgdGFrZW4sIGFuZCB0aGVyZSdzIGFuICNlbHNlLgotOzs7CVRoZSAjaWYg cGFydCBtdXN0IGJlIGhpZGRlbi4gIFRoZSAjZWxzZSBwYXJ0IG11c3QgYmUgcHJvY2Vzc2VkCi07 OzsJZm9yIG5lc3RlZCAjaWZzLgotOzs7ICBDYXNlIDQ6ICAjaWZYIG5vdCB0YWtlbiwgYW5kIHRo ZXJlJ3Mgbm8gI2Vsc2UuCi07OzsJVGhlICNpZlggcGFydCBtdXN0IGJlIGhpZGRlbi4KLTs7Owot Ozs7ICBGdXJ0aGVyIHByb2Nlc3NpbmcgaXMgZG9uZSBieSBuYXJyb3dpbmcgdG8gdGhlIHJlbGV2 YW50IHJlZ2lvbgotOzs7ICBhbmQganVzdCByZWN1cnNpdmVseSBjYWxsaW5nIGhpZGUtaWZkZWYt Z3V0cy4KLTs7OwotOzs7ICBXaGVuIGhpZi1wb3NzaWJseS1oaWRlIHJldHVybnMsIHBvaW50IGlz IGF0IHRoZSBlbmQgb2YgdGhlCi07OzsgIHBvc3NpYmx5LWhpZGRlbiByYW5nZS4KLQotKGRlZnVu IGhpZi1yZWN1cnNlLW9uIChzdGFydCBlbmQpCis7OyAgSGlmLVBvc3NpYmx5LUhpZGUKKzs7ICBU aGVyZSBhcmUgZm91ciBjYXNlcy4gIFRoZSAjaWZYIGV4cHJlc3Npb24gaXMgInRha2VuIiBpZiBp dAorOzsgIHRoZSBoaWRlLWlmZGVmLWV2YWx1YXRvciByZXR1cm5zIFQuICBQcmVzdW1hYmx5LCB0 aGlzIG1lYW5zIHRoZSBjb2RlCis7OyAgaW5zaWRlIHRoZSAjaWZkZWYgd291bGQgYmUgaW5jbHVk ZWQgd2hlbiB0aGUgcHJvZ3JhbSB3YXMKKzs7ICBjb21waWxlZC4KKzs7Cis7OyAgQ2FzZSAxOiAg I2lmWCB0YWtlbiwgYW5kIHRoZXJlJ3MgYW4gI2Vsc2UuCis7OyAgICAgVGhlICNlbHNlIHBhcnQg bXVzdCBiZSBoaWRkZW4uICBUaGUgI2lmICh0aGVuKSBwYXJ0IG11c3QgYmUKKzs7ICAgICBwcm9j ZXNzZWQgZm9yIG5lc3RlZCAjaWZYJ3MuCis7OyAgQ2FzZSAyOiAgI2lmWCB0YWtlbiwgYW5kIHRo ZXJlJ3Mgbm8gI2Vsc2UuCis7OyAgICAgVGhlICNpZiBwYXJ0IG11c3QgYmUgcHJvY2Vzc2VkIGZv ciBuZXN0ZWQgI2lmWCdzLgorOzsgIENhc2UgMzogICNpZlggbm90IHRha2VuLCBhbmQgdGhlcmUn cyBhbiAjZWxpZgorOzsgICAgIFRoZSAjaWYgcGFydCBtdXN0IGJlIGhpZGRlbiwgYW5kIHRoZW4g ZXZhbHVhdGUKKzs7ICAgICB0aGUgI2VsaWYgY29uZGl0aW9uIGxpa2UgYSBuZXcgI2lmWC4KKzs7 ICBDYXNlIDQ6ICAjaWZYIG5vdCB0YWtlbiwgYW5kIHRoZXJlJ3MganVzdCBhbiAjZWxzZS4KKzs7 ICAgICBUaGUgI2lmIHBhcnQgbXVzdCBiZSBoaWRkZW4uICBUaGUgI2Vsc2UgcGFydCBtdXN0IGJl IHByb2Nlc3NlZAorOzsgICAgIGZvciBuZXN0ZWQgI2lmcy4KKzs7ICBDYXNlIDU6ICAjaWZYIG5v dCB0YWtlbiwgYW5kIHRoZXJlJ3Mgbm8gI2Vsc2UuCis7OyAgICAgVGhlICNpZlggcGFydCBtdXN0 IGJlIGhpZGRlbi4KKzs7Cis7OyAgRnVydGhlciBwcm9jZXNzaW5nIGlzIGRvbmUgYnkgbmFycm93 aW5nIHRvIHRoZSByZWxldmFudCByZWdpb24KKzs7ICBhbmQganVzdCByZWN1cnNpdmVseSBjYWxs aW5nIGhpZGUtaWZkZWYtZ3V0cy4KKzs7Cis7OyAgV2hlbiBoaWYtcG9zc2libHktaGlkZSByZXR1 cm5zLCBwb2ludCBpcyBhdCB0aGUgZW5kIG9mIHRoZQorOzsgIHBvc3NpYmx5LWhpZGRlbiByYW5n ZS4KKworKGRlZnZhciBoaWYtcmVjdXJzZS1sZXZlbCAwKQorCisoZGVmdW4gaGlmLXJlY3Vyc2Ut b24gKHN0YXJ0IGVuZCAmb3B0aW9uYWwgZG9udC1nby1lb2wpCiAgICJDYWxsIGBoaWRlLWlmZGVm LWd1dHMnIGFmdGVyIG5hcnJvd2luZyB0byBlbmQgb2YgU1RBUlQgbGluZSBhbmQgRU5EIGxpbmUu IgogICAoc2F2ZS1leGN1cnNpb24KICAgICAoc2F2ZS1yZXN0cmljdGlvbgogICAgICAgKGdvdG8t Y2hhciBzdGFydCkKLSAgICAgIChlbmQtb2YtbGluZSkKKyAgICAgICh1bmxlc3MgZG9udC1nby1l b2wKKyAgICAgICAgKGVuZC1vZi1saW5lKSkKICAgICAgIChuYXJyb3ctdG8tcmVnaW9uIChwb2lu dCkgZW5kKQotICAgICAgKGhpZGUtaWZkZWYtZ3V0cykpKSkKKyAgICAgIChsZXQgKChoaWYtcmVj dXJzZS1sZXZlbCAoMSsgaGlmLXJlY3Vyc2UtbGV2ZWwpKSkKKyAgICAgICAgKGhpZGUtaWZkZWYt Z3V0cykpKSkpCgotKGRlZnVuIGhpZi1wb3NzaWJseS1oaWRlICgpCisoZGVmdW4gaGlmLXBvc3Np Ymx5LWhpZGUgKGV4cGFuZC1yZWluY2x1c2lvbikKICAgIkNhbGxlZCBhdCAjaWZYIGV4cHJlc3Np b24sIHRoaXMgaGlkZXMgdGhvc2UgcGFydHMgdGhhdCBzaG91bGQgYmUgaGlkZGVuLgogSXQgdXNl cyB0aGUganVkZ21lbnQgb2YgYGhpZGUtaWZkZWYtZXZhbHVhdG9yJy4iCiAgIDs7IChtZXNzYWdl ICJoaWYtcG9zc2libHktaGlkZSIpIChzaXQtZm9yIDEpCi0gIChsZXQgKCh0ZXN0IChoaWYtY2Fu b25pY2FsaXplIGhpZi1pZngtcmVnZXhwKSkKLQkocmFuZ2UgKGhpZi1maW5kLXJhbmdlKSkpCisg IChsZXQqICgoY2FzZS1mb2xkLXNlYXJjaCBuaWwpCisgICAgICAgICAodGVzdCAoaGlmLWNhbm9u aWNhbGl6ZSBoaWYtaWZ4LXJlZ2V4cCkpCisgICAgICAgICAocmFuZ2UgKGhpZi1maW5kLXJhbmdl KSkKKyAgICAgICAgIChlbGlmcyAoaGlmLXJhbmdlLWVsaWYgcmFuZ2UpKQorICAgICAgICAgKGlm LXBhcnQgdCkgOzsgZXZlcnl0aW1lIHdlIHN0YXJ0IGZyb20gaWYtcGFydAorICAgICAgICAgKGNv bXBsZXRlIG5pbCkpCiAgICAgOzsgKG1lc3NhZ2UgInRlc3QgPSAlcyIgdGVzdCkgKHNpdC1mb3Ig MSkKCiAgICAgKGhpZi1oaWRlLWxpbmUgKGhpZi1yYW5nZS1lbmQgcmFuZ2UpKQotICAgIChpZiAo bm90IChoaWYtbm90IChmdW5jYWxsIGhpZGUtaWZkZWYtZXZhbHVhdG9yIHRlc3QpKSkKLQkoY29u ZCAoKGhpZi1yYW5nZS1lbHNlIHJhbmdlKQk7IGNhc2UgMQorICAgICh3aGlsZSAobm90IGNvbXBs ZXRlKQorICAgICAgKGlmIChhbmQgKG5vdCAoYW5kIGV4cGFuZC1yZWluY2x1c2lvbiBpZi1wYXJ0 KSkKKyAgICAgICAgICAgICAgIChoaWYtbm90IChmdW5jYWxsIGhpZGUtaWZkZWYtZXZhbHVhdG9y IHRlc3QpKSkKKyAgICAgICAgICA7OyBpZlgvZWxpZiBpcyBGQUxTRQorICAgICAgICAgIChpZiBl bGlmcworICAgICAgICAgICAgICA7OyBDYXNlIDMgLSBIaWRlIHRoZSAjaWZYIGFuZCBldmFsICNl bGlmCisgICAgICAgICAgICAgIChsZXQgKChuZXdzdGFydCAoY2FyIGVsaWZzKSkpCisgICAgICAg ICAgICAgICAgKGhpZi1oaWRlLWxpbmUgKGhpZi1yYW5nZS1zdGFydCByYW5nZSkpCisgICAgICAg ICAgICAgICAgKGhpZGUtaWZkZWYtcmVnaW9uIChoaWYtcmFuZ2Utc3RhcnQgcmFuZ2UpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxLSBuZXdzdGFydCkpCisgICAgICAgICAg ICAgICAgKHNldGNhciByYW5nZSBuZXdzdGFydCkKKyAgICAgICAgICAgICAgICAoZ290by1jaGFy IG5ld3N0YXJ0KQorICAgICAgICAgICAgICAgIChzZXRxIGVsaWZzIChjZHIgZWxpZnMpKQorICAg ICAgICAgICAgICAgIChzZXRxIHRlc3QgKGhpZi1jYW5vbmljYWxpemUgaGlmLWVsaWYtcmVnZXhw KSkpCisKKyAgICAgICAgICAgIDs7IENoZWNrIGZvciAjZWxzZQorICAgICAgICAgICAgKGNvbmQg KChoaWYtcmFuZ2UtZWxzZSByYW5nZSkKKyAgICAgICAgICAgICAgICAgICA7OyBDYXNlIDQgLSAj ZWxzZSBibG9jayB2aXNpYmxlCisgICAgICAgICAgICAgICAgICAgKGhpZi1oaWRlLWxpbmUgKGhp Zi1yYW5nZS1lbHNlIHJhbmdlKSkKKyAgICAgICAgICAgICAgICAgICAoaGlkZS1pZmRlZi1yZWdp b24gKGhpZi1yYW5nZS1zdGFydCByYW5nZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKDEtIChoaWYtcmFuZ2UtZWxzZSByYW5nZSkpKQorICAgICAgICAgICAgICAgICAg IChoaWYtcmVjdXJzZS1vbiAoaGlmLXJhbmdlLWVsc2UgcmFuZ2UpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChoaWYtcmFuZ2UtZW5kIHJhbmdlKSkpCisgICAgICAgICAgICAg ICAgICAodAorICAgICAgICAgICAgICAgICAgIDs7IENhc2UgNSAtIE5vICNlbHNlIGJsb2NrLCBo aWRlICNpZlgKKyAgICAgICAgICAgICAgICAgICAoaGlkZS1pZmRlZi1yZWdpb24gKHBvaW50KQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMS0gKGhpZi1yYW5nZS1lbmQg cmFuZ2UpKSkpKQorICAgICAgICAgICAgKHNldHEgY29tcGxldGUgdCkpCisKKyAgICAgICAgOzsg aWZYL2VsaWYgaXMgVFJVRQorICAgICAgICAoY29uZCAoZWxpZnMKKyAgICAgICAgICAgICAgIDs7 IEx1a2UgZml4OiBkaXN0aW5ndWlzaCBmcm9tICNlbGlmLi4jZWxpZiB0byAjZWxpZi4uI2Vsc2Ug WzIwMTMtMDgtMzAgMTQ6MTA6NDAgKzA4MDBdCisgICAgICAgICAgICAgICAobGV0ICgoZWxpZiAo Y2FyIGVsaWZzKSkpCisgICAgICAgICAgICAgICAgIDs7IGhpZGUgYWxsIGVsaWZzCisgICAgICAg ICAgICAgICAgIChoaWYtaGlkZS1saW5lIGVsaWYpCisgICAgICAgICAgICAgICAgIChoaWRlLWlm ZGVmLXJlZ2lvbiBlbGlmICgxLSAoaGlmLXJhbmdlLWVuZCByYW5nZSkpKQorICAgICAgICAgICAg ICAgICAoaGlmLXJlY3Vyc2Utb24gKGhpZi1yYW5nZS1zdGFydCByYW5nZSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGVsaWYpKSkKKyAgICAgICAgICAgICAgKChoaWYtcmFuZ2Ut ZWxzZSByYW5nZSkKKyAgICAgICAgICAgICAgIDs7IENhc2UgMSAtIEhpZGUgI2VsaWYgYW5kICNl bHNlIGJsb2NrcywgcmVjdXJzZSAjaWZYCiAJICAgICAgIChoaWYtaGlkZS1saW5lIChoaWYtcmFu Z2UtZWxzZSByYW5nZSkpCiAJICAgICAgIChoaWRlLWlmZGVmLXJlZ2lvbiAoaGlmLXJhbmdlLWVs c2UgcmFuZ2UpCiAJCQkJICAoMS0gKGhpZi1yYW5nZS1lbmQgcmFuZ2UpKSkKIAkgICAgICAgKGhp Zi1yZWN1cnNlLW9uIChoaWYtcmFuZ2Utc3RhcnQgcmFuZ2UpCiAJCQkgICAgICAgKGhpZi1yYW5n ZS1lbHNlIHJhbmdlKSkpCi0JICAgICAgKHQJCQk7IGNhc2UgMgorICAgICAgICAgICAgICAodAor ICAgICAgICAgICAgICAgOzsgQ2FzZSAyIC0gTm8gI2Vsc2UsIGp1c3QgcmVjdXJzZSAjaWZYCiAJ ICAgICAgIChoaWYtcmVjdXJzZS1vbiAoaGlmLXJhbmdlLXN0YXJ0IHJhbmdlKQogCQkJICAgICAg IChoaWYtcmFuZ2UtZW5kIHJhbmdlKSkpKQotICAgICAgKGNvbmQgKChoaWYtcmFuZ2UtZWxzZSBy YW5nZSkJOyBjYXNlIDMKLQkgICAgIChoaWYtaGlkZS1saW5lIChoaWYtcmFuZ2UtZWxzZSByYW5n ZSkpCi0JICAgICAoaGlkZS1pZmRlZi1yZWdpb24gKGhpZi1yYW5nZS1zdGFydCByYW5nZSkKLQkJ CQkoMS0gKGhpZi1yYW5nZS1lbHNlIHJhbmdlKSkpCi0JICAgICAoaGlmLXJlY3Vyc2Utb24gKGhp Zi1yYW5nZS1lbHNlIHJhbmdlKQotCQkJICAgICAoaGlmLXJhbmdlLWVuZCByYW5nZSkpKQotCSAg ICAodAkJCQk7IGNhc2UgNAotCSAgICAgKGhpZGUtaWZkZWYtcmVnaW9uIChwb2ludCkKLQkJCQko MS0gKGhpZi1yYW5nZS1lbmQgcmFuZ2UpKSkpKSkKKyAgICAgICAgKHNldHEgY29tcGxldGUgdCkp CisgICAgICAoc2V0cSBpZi1wYXJ0IG5pbCkpCisKKyAgICA7OyBjb21wbGV0ZSA9IHQKICAgICAo aGlmLWhpZGUtbGluZSAoaGlmLXJhbmdlLXN0YXJ0IHJhbmdlKSkgOyBBbHdheXMgaGlkZSBzdGFy dC4KICAgICAoZ290by1jaGFyIChoaWYtcmFuZ2UtZW5kIHJhbmdlKSkKICAgICAoZW5kLW9mLWxp bmUpKSkKKyhkZWZ1biBoaWYtZXZhbHVhdGUtcmVnaW9uIChzdGFydCBlbmQpCisgIChsZXQqICgo dG9rZW5zIChpZ25vcmUtZXJyb3JzIDs7IHByZXZlbnQgQyBzdGF0ZW1lbnQgdGhpbmdzIGxpa2Ug J2RvIHsgLi4uIH0gd2hpbGUgKDApJworICAgICAgICAgICAgICAgICAgIChoaWYtdG9rZW5pemUg c3RhcnQgZW5kKSkpCisgICAgICAgICAoZXhwciAoYW5kIHRva2VucworICAgICAgICAgICAgICAg ICAgICAoY29uZGl0aW9uLWNhc2UgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAoaGlmLXBh cnNlLWlmLWV4cCB0b2tlbnMpCisgICAgICAgICAgICAgICAgICAgICAgKGVycm9yCisgICAgICAg ICAgICAgICAgICAgICAgIHRva2VucykpKSkKKyAgICAgICAgIChyZXN1bHQgKGZ1bmNhbGwgaGlk ZS1pZmRlZi1ldmFsdWF0b3IgZXhwcikpKQorICAgIHJlc3VsdCkpCisKKyhkZWZ1biBoaWYtZXZh bHVhdGUtbWFjcm8gKHJzdGFydCByZW5kKQorICAiRXZhbHVhdGUgdGhlIG1hY3JvIGV4cGFuc2lv biByZXN1bHQgZm9yIGEgcmVnaW9uLiBJZiBubyByZWdpb24gYWN0aXZlLAorZmluZCB0aGUgY3Vy cmVudCAjaWZkZWZzIGFuZCBldmFsdWF0ZSB0aGUgcmVzdWx0LiBDdXJyZW50bHkgaXQgc3VwcG9y dCBvbmx5CittYXRoIGNhbGN1bGF0aW9uLCBubyBzdHJpbmcgb3IgYXJndW1lbnRlZCBtYWNyb3Mg Y2FuIGJlIGV4cGFuZGVkLiIKKyAgKGludGVyYWN0aXZlICJyIikKKyAgKGxldCAoKGNhc2UtZm9s ZC1zZWFyY2ggbmlsKSkKKyAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICh1bmxlc3MgbWFyay1h Y3RpdmUKKyAgICAgICAgKHNldHEgcnN0YXJ0IG5pbCByZW5kIG5pbCkKKyAgICAgICAgKGJlZ2lu bmluZy1vZi1saW5lKQorICAgICAgICAod2hlbiAoYW5kIChyZS1zZWFyY2gtZm9yd2FyZCBoaWYt bWFjcm8tZXhwci1wcmVmaXgtcmVnZXhwIG5pbCB0KQorICAgICAgICAgICAgICAgICAgIChzdHJp bmc9ICJkZWZpbmUiIChtYXRjaC1zdHJpbmcgMikpKQorICAgICAgICAgIChyZS1zZWFyY2gtZm9y d2FyZCBoaWYtbWFjcm9uYW1lIG5pbCB0KSkpCisgICAgICAobGV0KiAoKHN0YXJ0IChvciByc3Rh cnQgKHBvaW50KSkpCisgICAgICAgICAgICAgKGVuZCAgIChvciByZW5kIChwcm9nbiAoaGlmLWVu ZC1vZi1saW5lKSAocG9pbnQpKSkpCisgICAgICAgICAgICAgKGRlZmluZWQgbmlsKQorICAgICAg ICAgICAgIChzaW1wbGUgJ3QpCisgICAgICAgICAgICAgKHRva2VucyAoaWdub3JlLWVycm9ycyA7 OyBwcmV2ZW50IEMgc3RhdGVtZW50IHRoaW5ncyBsaWtlICdkbyB7IC4uLiB9IHdoaWxlICgwKScK KyAgICAgICAgICAgICAgICAgICAgICAgKGhpZi10b2tlbml6ZSBzdGFydCBlbmQpKSkKKyAgICAg ICAgICAgICAoZXhwciAob3IgKGFuZCAoPD0gKGxlbmd0aCB0b2tlbnMpIDEpIDs7IHNpbXBsZSB0 b2tlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIGRlZmluZWQgKGFzc29jIChj YXIgdG9rZW5zKSBoaWRlLWlmZGVmLWVudikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHNldHEgc2ltcGxlIChhdG9tIChoaWYtbG9va3VwIChjYXIgdG9rZW5zKSkpKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChoaWYtbG9va3VwIChjYXIgdG9rZW5zKSkpCisgICAgICAgICAg ICAgICAgICAgICAgIChhbmQgdG9rZW5zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv bmRpdGlvbi1jYXNlIG5pbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGlmLXBh cnNlLWlmLWV4cCB0b2tlbnMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwpKSkpKQorICAgICAgICAgICAgIChy ZXN1bHQgKGZ1bmNhbGwgaGlkZS1pZmRlZi1ldmFsdWF0b3IgZXhwcikpCisgICAgICAgICAgICAg KGV4cHJzdHJpbmcgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZworICAgICAgICAgICAgICAgICAg ICAgICAgICAiXlsgXHRdKlxcKFteIFx0XStcXClbIFx0XSoiICJcXDEiICA7OyB0cmltIG9mZiBs ZWFkaW5nL3RyYWlsaW5nIHdoaXRlcworICAgICAgICAgICAgICAgICAgICAgICAgICAocmVwbGFj ZS1yZWdleHAtaW4tc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiXFwoLy8uKlxc KSIgIiIgOzsgdHJpbSBvZmYgZW5kLW9mLWxpbmUgY29tbWVudHMKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgc3RhcnQgZW5kKSkpKSkK KyAgICAgICAgKGNvbmQKKyAgICAgICAgICgoYW5kICg8PSAobGVuZ3RoIHRva2VucykgMSkgc2lt cGxlKSA7OyBzaW1wbGUgdG9rZW4KKyAgICAgICAgICAoaWYgZGVmaW5lZAorICAgICAgICAgICAg ICAobWVzc2FnZSAiJVMgPD0gYCVzJyIgcmVzdWx0IGV4cHJzdHJpbmcpCisgICAgICAgICAgICAo bWVzc2FnZSAiYCVzJyBpcyBub3QgZGVmaW5lZCIgZXhwcnN0cmluZykpKQorICAgICAgICAgKChp bnRlZ2VycCByZXN1bHQpCisgICAgICAgICAgKGlmIChvciAoPSAwIHJlc3VsdCkgKD0gMSByZXN1 bHQpKQorICAgICAgICAgICAgICAobWVzc2FnZSAiJVMgPD0gYCVzJyIgcmVzdWx0IGV4cHJzdHJp bmcpCisgICAgICAgICAgICAobWVzc2FnZSAiJVMgKDB4JXgpIDw9IGAlcyciIHJlc3VsdCByZXN1 bHQgZXhwcnN0cmluZykpKQorICAgICAgICAgKChudWxsIHJlc3VsdCkgKG1lc3NhZ2UgIiVTIDw9 IGAlcyciICdmYWxzZSBleHByc3RyaW5nKSkKKyAgICAgICAgICgoZXEgdCByZXN1bHQpIChtZXNz YWdlICIlUyA8PSBgJXMnIiAndHJ1ZSBleHByc3RyaW5nKSkKKyAgICAgICAgICh0IChtZXNzYWdl ICIlUyA8PSBgJXMnIiByZXN1bHQgZXhwcnN0cmluZykpKQorICAgICAgICByZXN1bHQpKSkpCgog KGRlZnVuIGhpZi1wYXJzZS1tYWNyby1hcmdsaXN0IChzdHIpCiAgICJQYXJzZSBhcmd1bWVudCBs aXN0IGZvcm1hdHRlZCBhcyAnKCBhcmcxIFsgLCBhcmduXSBbLi4uXSApJywgaW5jbHVkZWluZyB0 aGUgJy4uLicKQEAgLTE0MjEsMTUgKzE2MDMsNDEgQEAgUmV0dXJuIGEgbGlzdCBvZiB0aGUgYXJn dW1lbnRzLCBpZiAnLi4uJyBleGlzdHMgdGhlIGZpcnN0IGFyZyB3aWxsIGJlIGhpZi1ldGMuIgog ICAgICAgICAgICAgICAgICAoaGlmLXVuZGVmaW5lLXN5bWJvbCAoaW50ZXJuIG5hbWUpKSkpKSkK ICAgICAgICB0KSkKCis7OyhkZWZ1biBtYXJrLXJlZ2lvbiAobWluIG1heCkKKzs7ICAoc2V0LW1h cmsgKG9yIG1heCAocG9pbnQtbWF4KSkpCis7OyAgKGdvdG8tY2hhciBtaW4pKQorCisoZGVmdW4g aGlmLWFkZC1uZXctZGVmaW5lcyAoJm9wdGlvbmFsIG1pbiBtYXgpCisgICJTY2FuIGFuZCBhZGQg YWxsICNkZWZpbmUgbWFjcm9zIGJldHdlZW4gbWluIC4uIG1heCIKKyAgKGludGVyYWN0aXZlKQor ICAoc2F2ZS1leGN1cnNpb24KKyAgICAoc2F2ZS1yZXN0cmljdGlvbgorICAgICAgOzsgKG1hcmst cmVnaW9uIG1pbiBtYXgpIDs7IGZvciBkZWJ1Z2dpbmcKKyAgICAgICh3aGlsZSAoaGlmLWZpbmQt ZGVmaW5lIG1pbiBtYXgpCisgICAgICAgIChzZXRmIG1pbiAocG9pbnQpKSkKKyAgICAgIChpZiBt YXggKGdvdG8tY2hhciBtYXgpCisgICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1heCkpKSkpKQoK IChkZWZ1biBoaWRlLWlmZGVmLWd1dHMgKCkKICAgIkRvZXMgbW9zdCBvZiB0aGUgd29yayBvZiBg aGlkZS1pZmRlZnMnLgogSXQgZG9lcyBub3QgZG8gdGhlIHdvcmsgdGhhdCdzIHBvaW50bGVzcyB0 byByZWRvIG9uIGEgcmVjdXJzaXZlIGVudHJ5LiIKICAgOzsgKG1lc3NhZ2UgImhpZGUtaWZkZWYt Z3V0cyIpCiAgIChzYXZlLWV4Y3Vyc2lvbgorICAgIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIG5p bCkKKyAgICAgICAgICAoZXhwYW5kLWhlYWRlciAoYW5kIGhpZGUtaWZkZWYtZXhwYW5kLXJlLWlu Y2x1c2lvbi1wcm90ZWN0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5n LW1hdGNoIGhpZGUtaWZkZWYtaGVhZGVyLXJlZ2V4cC1wYXR0ZXJuCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXItbmFtZSAoY3VycmVudC1idWZmZXIp KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh6ZXJvcCBoaWYtcmVjdXJzZS1sZXZl bCkpKQorICAgICAgICAgIG1pbiBtYXgpCiAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKLSAg ICAod2hpbGUgKGhpZi1maW5kLWFueS1pZlgpCi0gICAgICAoaGlmLXBvc3NpYmx5LWhpZGUpKSkp CisgICAgICAoc2V0ZiBtaW4gKHBvaW50KSkKKyAgICAgIChsb29wIGRvCisgICAgICAgICAgICAo c2V0ZiBtYXggKGhpZi1maW5kLWFueS1pZlgpKQorICAgICAgICAgICAgKGhpZi1hZGQtbmV3LWRl ZmluZXMgbWluIG1heCkKKyAgICAgICAgICAgIChpZiBtYXgKKyAgICAgICAgICAgICAgICAoaGlm LXBvc3NpYmx5LWhpZGUgZXhwYW5kLWhlYWRlcikpCisgICAgICAgICAgICAoc2V0ZiBtaW4gKHBv aW50KSkKKyAgICAgICAgICAgIHdoaWxlIG1heCkpKSkKCiA7Oz09PSUlU0YlJSBoaWRlLWlmZGVm LWhpZGluZyAoRW5kKSAgPT09CgpAQCAtMTQ3MywxMCArMTY4MSwyNCBAQCBJdCBkb2VzIG5vdCBk byB0aGUgd29yayB0aGF0J3MgcG9pbnRsZXNzIHRvIHJlZG8gb24gYSByZWN1cnNpdmUgZW50cnku IgogCSAgKG92ZXJsYXktcHV0IG92ZXJsYXkgJ2ZhY2UgbmlsKQogCSAgKG92ZXJsYXktcHV0IG92 ZXJsYXkgJ2ludmlzaWJsZSAnaGlkZS1pZmRlZikpKSkpKQoKLShkZWZ1biBoaWRlLWlmZGVmLWRl ZmluZSAodmFyKQotICAiRGVmaW5lIGEgVkFSIHNvIHRoYXQgI2lmZGVmIFZBUiB3b3VsZCBiZSBp bmNsdWRlZC4iCi0gIChpbnRlcmFjdGl2ZSAiU0RlZmluZSB3aGF0PyAiKQotICAoaGlmLXNldC12 YXIgdmFyIDEpCisoZGVmdW4gaGlkZS1pZmRlZi1kZWZpbmUgKHZhciB2YWwpCisgICJEZWZpbmUg YSBWQVIsIG9wdGlvbmFsbHkgdG8gYSBzcGVjaWZpYyB2YWx1ZSwgc28gdGhhdCAjaWZkZWYgVkFS Cit3b3VsZCBiZSBpbmNsdWRlZC4iCisgIChpbnRlcmFjdGl2ZQorICAgKGxldCogKChkZWZhdWx0 IChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5l KQorICAgICAgICAgICAgICAgICAgICAgKGNvbmQgKChsb29raW5nLWF0IGhpZi1pZngtZWxzZS1l bmRpZi1yZWdleHApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcndhcmQtd29yZCAy KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50LXdvcmQgJ3N0cmljdCkpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAodAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IG5pbCkpKSkKKyAgICAgICAgICh2YXIgKHJlYWQtbWluaWJ1ZmZlciAiRGVmaW5lIHdoYXQ/ICIg ZGVmYXVsdCkpCisgICAgICAgICAodmFsIChyZWFkLWZyb20tbWluaWJ1ZmZlciAoZm9ybWF0ICJT ZXQgJXMgdG8/IChkZWZhdWx0IDEpOiAiIHZhcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG5pbCBuaWwgdCBuaWwgIjEiKSkpCisgICAgIChsaXN0IHZhciB2YWwpKSkKKyAg IChoaWYtc2V0LXZhciB2YXIgKG9yIHZhbCAxKSkKKyAgIChtZXNzYWdlICIlcyBzZXQgdG8gJXMi IHZhciAob3IgdmFsIDEpKQorICAgKHNsZWVwLWZvciAxKQogICAoaWYgaGlkZS1pZmRlZi1oaWRp bmcgKGhpZGUtaWZkZWZzKSkpCgogKGRlZnVuIGhpZi11bmRlZmluZS1zeW1ib2wgKHZhcikKQEAg LTE0ODksMTcgKzE3MTEsMzQgQEAgSXQgZG9lcyBub3QgZG8gdGhlIHdvcmsgdGhhdCdzIHBvaW50 bGVzcyB0byByZWRvIG9uIGEgcmVjdXJzaXZlIGVudHJ5LiIKIDs7ICA7OyhoaWYtc2V0LXZhciB2 YXIgbmlsKTs7THVrZSBmaXhlZDogc2V0IGl0IG5pbCBpcyBzdGlsbCBjb25zaWRlcmVkIGRlZmlu ZWQgc28gI2lmZGVmIFZBUiBpcyBzdGlsbCB0cnVlLgogOzsgIChoaWYtdW5kZWZpbmUtc3ltYm9s IHZhcikKIDs7ICAoaWYgaGlkZS1pZmRlZi1oaWRpbmcgKGhpZGUtaWZkZWZzKSkpCisoZGVmdW4g aGlkZS1pZmRlZi11bmRlZiAoc3RhcnQgZW5kKQorICAiVW5kZWZpbmUgYSBWQVIgc28gdGhhdCAj aWZkZWYgVkFSIHdvdWxkIG5vdCBiZSBpbmNsdWRlZC4iCisgIChpbnRlcmFjdGl2ZSAiciIpCisg IChsZXQqICgoc3ltc3RyCisgICAgICAgICAgKG9yIChhbmQgbWFyay1hY3RpdmUKKyAgICAgICAg ICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIHN0YXJ0IGVuZCkpCisg ICAgICAgICAgICAgIChyZWFkLXN0cmluZyAiVW5kZWZpbmUgd2hhdD8gIiAoY3VycmVudC13b3Jk KSkpKQorICAgICAgICAgKHN5bSAoYW5kIHN5bXN0cgorICAgICAgICAgICAgICAgICAgIChpbnRl cm4gc3ltc3RyKSkpKQorICAgIChpZiAoemVyb3AgKGhpZi1kZWZpbmVkIHN5bSkpCisgICAgICAg IChtZXNzYWdlICJgJXMnIG5vdCBkZWZpbmVkLCBubyBuZWVkIHRvIHVuZGVmaW5lIGl0IiBzeW1z dHIpCisgICAgICAoaGlmLXVuZGVmaW5lLXN5bWJvbCBzeW0pCisgICAgICAoaWYgaGlkZS1pZmRl Zi1oaWRpbmcgKGhpZGUtaWZkZWZzKSkKKyAgICAgIChtZXNzYWdlICJgJVMnIHVuZGVmaW5lZCIg c3ltKSkpKQoKIChkZWZ1biBoaWRlLWlmZGVmcyAoJm9wdGlvbmFsIG5vbXNnKQogICAiSGlkZSB0 aGUgY29udGVudHMgb2Ygc29tZSAjaWZkZWZzLgogQXNzdW1lIHRoYXQgZGVmaW5lZCBzeW1ib2xz IGhhdmUgYmVlbiBhZGRlZCB0byBgaGlkZS1pZmRlZi1lbnYnLgogVGhlIHRleHQgaGlkZGVuIGlz IHRoZSB0ZXh0IHRoYXQgd291bGQgbm90IGJlIGluY2x1ZGVkIGJ5IHRoZSBDCiBwcmVwcm9jZXNz b3IgaWYgaXQgd2VyZSBnaXZlbiB0aGUgZmlsZSB3aXRoIHRob3NlIHN5bWJvbHMgZGVmaW5lZC4K K0lmIHRoaXMgY29tbWFuZCBpcyBwcmVmaXhlZCwgaGlkZSBhbHNvIHRoZSAjaWZkZWZzIHRoZW1z ZWx2ZXMuCgogVHVybiBvZmYgaGlkaW5nIGJ5IGNhbGxpbmcgYHNob3ctaWZkZWZzJy4iCgogICAo aW50ZXJhY3RpdmUpCi0gIChtZXNzYWdlICJIaWRpbmcuLi4iKQorICAobGV0ICgoaGlkZS1pZmRl Zi1saW5lcyBjdXJyZW50LXByZWZpeC1hcmcpKQorICAgIChvciBub21zZworICAgICAgICAobWVz c2FnZSAiSGlkaW5nLi4uIikpCiAgIChzZXRxIGhpZi1vdXRzaWRlLXJlYWQtb25seSBidWZmZXIt cmVhZC1vbmx5KQogICAodW5sZXNzIGhpZGUtaWZkZWYtbW9kZSAoaGlkZS1pZmRlZi1tb2RlIDEp KSA7IHR1cm4gb24gaGlkZS1pZmRlZi1tb2RlCiAgIChpZiBoaWRlLWlmZGVmLWhpZGluZwpAQCAt MTUwOCw3ICsxNzQ3LDcgQEAgVHVybiBvZmYgaGlkaW5nIGJ5IGNhbGxpbmcgYHNob3ctaWZkZWZz Jy4iCiAgIChoaWRlLWlmZGVmLWd1dHMpCiAgIChzZXRxIGJ1ZmZlci1yZWFkLW9ubHkgKG9yIGhp ZGUtaWZkZWYtcmVhZC1vbmx5IGhpZi1vdXRzaWRlLXJlYWQtb25seSkpCiAgIChvciBub21zZwot ICAgICAgKG1lc3NhZ2UgIkhpZGluZyBkb25lIikpKQorICAgICAgICAobWVzc2FnZSAiSGlkaW5n IGRvbmUiKSkpKQoKCiAoZGVmdW4gc2hvdy1pZmRlZnMgKCkKQEAgLTE1MjIsNiArMTc2MSwyMiBA QCBUdXJuIG9mZiBoaWRpbmcgYnkgY2FsbGluZyBgc2hvdy1pZmRlZnMnLiIKIChkZWZ1biBoaWYt ZmluZC1pZmRlZi1ibG9jayAoKQogICAiVXRpbGl0eSBmb3IgaGlkZSBhbmQgc2hvdyBgaWZkZWYt YmxvY2snLgogUmV0dXJuIGFzIChUT1AgLiBCT1RUT00pIHRoZSBleHRlbnQgb2YgaWZkZWYgYmxv Y2suIgorICAoaWYgKGFuZCAoZmJvdW5kcCAnYy1iYWNrd2FyZC1jb25kaXRpb25hbC13aXRoLWVs c2UpCisgICAgICAgICAgIChmYm91bmRwICdjLWZvcndhcmQtY29uZGl0aW9uYWwtd2l0aC1lbHNl KSkKKyAgICAgIDs7VXNlIG15IG1vZGlmaWVkIGZ1bmN0aW9ucyBpbiBjYy1tb2RlLgorICAgICAg KHNhdmUtZXhjdXJzaW9uCisgICAgICAgIChjb25zCisgICAgICAgICAocHJvZ24KKyAgICAgICAg ICAgKGlmICg9IChsaW5lLW51bWJlci1hdC1wb3MpCisgICAgICAgICAgICAgICAgICAoc2F2ZS1l eGN1cnNpb24KKyAgICAgICAgICAgICAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAg ICAgICAgICAgICAgICAocmUtc2VhcmNoLWZvcndhcmQgaGlmLWlmeC1lbHNlLWVuZGlmLXJlZ2V4 cCkKKyAgICAgICAgICAgICAgICAgICAgKGxpbmUtbnVtYmVyLWF0LXBvcykpKQorICAgICAgICAg ICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAgICAgIChjLWJhY2t3YXJkLWNvbmRp dGlvbmFsLXdpdGgtZWxzZSAxKSkKKyAgICAgICAgICAgKHBvaW50KSkKKyAgICAgICAgIChwcm9n biAoYy1mb3J3YXJkLWNvbmRpdGlvbmFsLXdpdGgtZWxzZSAxKSAoMS0gKHBvaW50KSkpKSkKKyAg ICA7OyBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiBpbiBoaWRlaWYuZWwKICAgKGxldCAobWF4LWJv dHRvbSkKICAgICAoY29ucyAoc2F2ZS1leGN1cnNpb24KIAkgICAgKGJlZ2lubmluZy1vZi1saW5l KQpAQCAtMTUzNywxMiArMTc5MiwxOCBAQCBSZXR1cm4gYXMgKFRPUCAuIEJPVFRPTSkgdGhlIGV4 dGVudCBvZiBpZmRlZiBibG9jay4iCiAJICAgICh3aGlsZSAoaGlmLWxvb2tpbmctYXQtaWZYKQog CSAgICAgIChoaWYtaWZkZWYtdG8tZW5kaWYpCiAJICAgICAgKGhpZi1maW5kLW5leHQtcmVsZXZh bnQpKQotCSAgICAobWluIG1heC1ib3R0b20gKDEtIChwb2ludCkpKSkpKSkKLQotCi0oZGVmdW4g aGlkZS1pZmRlZi1ibG9jayAoKQotICAiSGlkZSB0aGUgaWZkZWYgYmxvY2sgKHRydWUgb3IgZmFs c2UgcGFydCkgZW5jbG9zaW5nIG9yIGJlZm9yZSB0aGUgY3Vyc29yLiIKLSAgKGludGVyYWN0aXZl KQorICAgICAgICAgICAgICAobWluIG1heC1ib3R0b20gKDEtIChwb2ludCkpKSkpKSkpCisKKwor KGRlZnVuIGhpZGUtaWZkZWYtYmxvY2sgKCZvcHRpb25hbCBzdGFydCBlbmQpCisgICJIaWRlIHRo ZSBpZmRlZiBibG9jayAodHJ1ZSBvciBmYWxzZSBwYXJ0KSBlbmNsb3Npbmcgb3IgYmVmb3JlIHRo ZSBjdXJzb3IuCitJZiBwcmVmaXhlZCwgaXQgd2lsbCBhbHNvIGhpZGUgI2lmZGVmcyB0aGVtc2Vs dmVzLiIKKyAgKGludGVyYWN0aXZlICJyIikKKyAgKGxldCAoKGhpZGUtaWZkZWYtbGluZXMgY3Vy cmVudC1wcmVmaXgtYXJnKSkKKyAgICAoaWYgbWFyay1hY3RpdmUKKyAgICAgICAgKGxldCAoKGhp Zi1yZWN1cnNlLWxldmVsICgxKyBoaWYtcmVjdXJzZS1sZXZlbCkpKQorICAgICAgICAgIChoaWYt cmVjdXJzZS1vbiBzdGFydCBlbmQgdCkKKyAgICAgICAgICAoc2V0cSBtYXJrLWFjdGl2ZSBuaWwp KQogICAodW5sZXNzIGhpZGUtaWZkZWYtbW9kZSAoaGlkZS1pZmRlZi1tb2RlIDEpKQogICAobGV0 ICgodG9wLWJvdHRvbSAoaGlmLWZpbmQtaWZkZWYtYmxvY2spKSkKICAgICAoaGlkZS1pZmRlZi1y ZWdpb24gKGNhciB0b3AtYm90dG9tKSAoY2RyIHRvcC1ib3R0b20pKQpAQCAtMTU1MCwxMiArMTgx MSwyNSBAQCBSZXR1cm4gYXMgKFRPUCAuIEJPVFRPTSkgdGhlIGV4dGVudCBvZiBpZmRlZiBibG9j ay4iCiAgICAgICAoaGlmLWhpZGUtbGluZSAoY2FyIHRvcC1ib3R0b20pKQogICAgICAgKGhpZi1o aWRlLWxpbmUgKDErIChjZHIgdG9wLWJvdHRvbSkpKSkKICAgICAoc2V0cSBoaWRlLWlmZGVmLWhp ZGluZyB0KSkKLSAgKHNldHEgYnVmZmVyLXJlYWQtb25seSAob3IgaGlkZS1pZmRlZi1yZWFkLW9u bHkgaGlmLW91dHNpZGUtcmVhZC1vbmx5KSkpCisgICAgICAoc2V0cSBidWZmZXItcmVhZC1vbmx5 IChvciBoaWRlLWlmZGVmLXJlYWQtb25seSBoaWYtb3V0c2lkZS1yZWFkLW9ubHkpKSkpKQoKLShk ZWZ1biBzaG93LWlmZGVmLWJsb2NrICgpCisoZGVmdW4gc2hvdy1pZmRlZi1ibG9jayAoJm9wdGlv bmFsIHN0YXJ0IGVuZCkKICAgIlNob3cgdGhlIGlmZGVmIGJsb2NrICh0cnVlIG9yIGZhbHNlIHBh cnQpIGVuY2xvc2luZyBvciBiZWZvcmUgdGhlIGN1cnNvci4iCi0gIChpbnRlcmFjdGl2ZSkKLSAg KGxldCAoKHRvcC1ib3R0b20gKGhpZi1maW5kLWlmZGVmLWJsb2NrKSkpCisgIChpbnRlcmFjdGl2 ZSAiciIpCisgIChpZiBtYXJrLWFjdGl2ZQorICAgICAgKHByb2duCisgICAgICAgIChkb2xpc3Qg KG8gKG92ZXJsYXlzLWluIHN0YXJ0IGVuZCkpCisgICAgICAgICAgKGlmIChvdmVybGF5LWdldCBv ICdoaWRlLWlmZGVmKQorICAgICAgICAgICAgICAoZGVsZXRlLW92ZXJsYXkgbykpKQorICAgICAg ICAoc2V0cSBtYXJrLWFjdGl2ZSBuaWwpKQorICAgIChsZXQgKCh0b3AtYm90dG9tIChjb25kaXRp b24tY2FzZSBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGhpZi1maW5kLWlmZGVmLWJs b2NrKQorICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yCisgICAgICAgICAgICAgICAgICAg ICAgICAgbmlsKSkpCisgICAgICAgICAgKG92cnMgKG92ZXJsYXlzLWluIChtYXggKHBvaW50LW1p bikgKDEtIChwb2ludCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWluIChwb2lu dC1tYXgpICgxKyAocG9pbnQpKSkpKQorICAgICAgICAgIChkZWwgbmlsKSkKKyAgICAgIChpZiB0 b3AtYm90dG9tCiAgICAgKGlmIGhpZGUtaWZkZWYtbGluZXMKICAJKGhpZi1zaG93LWlmZGVmLXJl Z2lvbgogIAkgKHNhdmUtZXhjdXJzaW9uCkBAIC0xNTYzLDcgKzE4MzcsMTQgQEAgUmV0dXJuIGFz IChUT1AgLiBCT1RUT00pIHRoZSBleHRlbnQgb2YgaWZkZWYgYmxvY2suIgogIAkgKHNhdmUtZXhj dXJzaW9uCiAgCSAgIChnb3RvLWNoYXIgKDErIChjZHIgdG9wLWJvdHRvbSkpKQogCSAgIChoaWYt ZW5kLW9mLWxpbmUpIChwb2ludCkpKQotICAgICAgKGhpZi1zaG93LWlmZGVmLXJlZ2lvbiAoMS0g KGNhciB0b3AtYm90dG9tKSkgKGNkciB0b3AtYm90dG9tKSkpKSkKKyAgICAgICAgICAgIChzZXRm IGRlbCAoaGlmLXNob3ctaWZkZWYtcmVnaW9uICgxLSAoY2FyIHRvcC1ib3R0b20pKSAoY2RyIHRv cC1ib3R0b20pKSkpKQorICAgICAgKGlmIChub3QgKGFuZCB0b3AtYm90dG9tCisgICAgICAgICAg ICAgICAgICAgIGRlbCkpCisgICAgICAgICAgKGRvbGlzdCAobyBvdnJzKQorICAgICAgICAgICAg OzsoZG9saXN0IChvIChvdmVybGF5cy1pbiAoMS0gKHBvaW50KSkgKDErIChwb2ludCkpKSkKKyAg ICAgICAgICAgIDs7ICAgKGlmIChvdmVybGF5LWdldCBvICdoaWRlLWlmZGVmKSAobWVzc2FnZSAi JVMiIG8pKSkKKyAgICAgICAgICAgIChpZiAob3ZlcmxheS1nZXQgbyAnaGlkZS1pZmRlZikKKyAg ICAgICAgICAgICAgICAoZGVsZXRlLW92ZXJsYXkgbykpKSkpKSkKCgogOzs7ICBkZWZpbml0aW9u IGFsaXN0IHN1cHBvcnQKLS0KMS44LjMuMjQuZzY3YjA5OTgKCg== --047d7b5d6752a852f304ecb71110 Content-Type: application/octet-stream; name="0004-Cleanup-hideif.el-for-white-spaces-tabs-and-indentat.patch" Content-Disposition: attachment; filename="0004-Cleanup-hideif.el-for-white-spaces-tabs-and-indentat.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hoseegj83 RnJvbSA0Njc3NDNjMTFkYjVmOTk5MWZlOThmNTQ0ZjE1N2UxNmQ0OWMzMzFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMdWtlIExlZSA8bHVrZS55eC5sZWVAZ21haWwuY29tPgpEYXRl OiBXZWQsIDQgRGVjIDIwMTMgMTU6NTA6NDkgKzA4MDAKU3ViamVjdDogW1BBVENIIDQvNF0gQ2xl YW51cCBoaWRlaWYuZWwgZm9yIHdoaXRlIHNwYWNlcy90YWJzIGFuZCBpbmRlbnRhdGlvbi4KIFVw ZGF0ZSB2ZXJzaW9uIG51bWJlci4KCi0tLQogbGlzcC9wcm9nbW9kZXMvaGlkZWlmLmVsIHwgNDIx ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMjE0IGluc2VydGlvbnMoKyksIDIwNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9saXNwL3Byb2dtb2Rlcy9oaWRlaWYuZWwgYi9saXNwL3Byb2dtb2Rlcy9oaWRlaWYuZWwKaW5k ZXggMDFlZGZiNC4uM2U3NjYwYSAxMDA2NDQKLS0tIGEvbGlzcC9wcm9nbW9kZXMvaGlkZWlmLmVs CisrKyBiL2xpc3AvcHJvZ21vZGVzL2hpZGVpZi5lbApAQCAtMSw5ICsxLDkgQEAKIDs7OyBoaWRl aWYuZWwgLS0tIGhpZGVzIHNlbGVjdGVkIGNvZGUgd2l0aGluIGlmZGVmCgotOzsgQ29weXJpZ2h0 IChDKSAxOTg4LCAxOTk0LCAyMDAxLTIwMTMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu Cis7OyBDb3B5cmlnaHQgKEMpIDE5ODgsIDE5OTQsIDIwMDEtMjAxMyAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCgogOzsgQXV0aG9yOiBCcmlhbiBNYXJpY2sKLTs7CURhbmllbCBMYUxp YmVydGUgPGxpYmVydGVAaG9sb25leHVzLm9yZz4KKzs7ICAgICAgRGFuaWVsIExhTGliZXJ0ZSA8 bGliZXJ0ZUBob2xvbmV4dXMub3JnPgogOzsgTWFpbnRhaW5lcjogRlNGCiA7OyBLZXl3b3Jkczog Yywgb3V0bGluZXMKCkBAIC02NiwxMSArNjYsMTEgQEAKIDs7CiA7OyAoYWRkLWhvb2sgJ2hpZGUt aWZkZWYtbW9kZS1ob29rCiA7OyAgICAgIChsYW1iZGEgKCkKLTs7CSAodW5sZXNzIGhpZGUtaWZk ZWYtZGVmaW5lLWFsaXN0Ci07OwkgICAoc2V0cSBoaWRlLWlmZGVmLWRlZmluZS1hbGlzdAotOzsJ CScoKGxpc3QxIE9ORSBUV08pCi07OwkJICAobGlzdDIgVFdPIFRIUkVFKSkpKQotOzsJIChoaWRl LWlmZGVmLXVzZS1kZWZpbmUtYWxpc3QgJ2xpc3QyKSkpIDsgdXNlIGxpc3QyIGJ5IGRlZmF1bHQK Kzs7ICAgICAgICh1bmxlc3MgaGlkZS1pZmRlZi1kZWZpbmUtYWxpc3QKKzs7ICAgICAgICAgKHNl dHEgaGlkZS1pZmRlZi1kZWZpbmUtYWxpc3QKKzs7ICAgICAgICAgICAgICAnKChsaXN0MSBPTkUg VFdPKQorOzsgICAgICAgICAgICAgICAgKGxpc3QyIFRXTyBUSFJFRSkpKSkKKzs7ICAgICAgICho aWRlLWlmZGVmLXVzZS1kZWZpbmUtYWxpc3QgJ2xpc3QyKSkpIDsgdXNlIGxpc3QyIGJ5IGRlZmF1 bHQKIDs7CiA7OyBZb3UgY2FuIGNhbGwgaGlkZS1pZmRlZi11c2UtZGVmaW5lLWFsaXN0IChDLWMg QCBVKSBhdCBhbnkgdGltZSB0byBzcGVjaWZ5CiA7OyBhbm90aGVyIGxpc3QgdG8gdXNlLgpAQCAt MTI5LDE3ICsxMjksMTggQEAKICAgIk5vbi1uaWwgbWVhbnMgc2hhZG93IHRleHQgaW5zdGVhZCBv ZiBoaWRpbmcgaXQuIgogICA6dHlwZSAnYm9vbGVhbgogICA6Z3JvdXAgJ2hpZGUtaWZkZWYKLSAg OnZlcnNpb24gIjIzLjEiKQorICA6dmVyc2lvbiAiMjUuMCIpCgogKGRlZmZhY2UgaGlkZS1pZmRl Zi1zaGFkb3cgJygodCAoOmluaGVyaXQgc2hhZG93KSkpCiAgICJGYWNlIGZvciBzaGFkb3dpbmcg aWZkZWYgYmxvY2tzLiIKICAgOmdyb3VwICdoaWRlLWlmZGVmCi0gIDp2ZXJzaW9uICIyMy4xIikK KyAgOnZlcnNpb24gIjI1LjAiKQoKIChkZWZjdXN0b20gaGlkZS1pZmRlZi1leGNsdWRlLWRlZmlu ZS1yZWdleHAtcGF0dGVybiBuaWwKICAgIklnbm9yZSAjZGVmaW5lIG5hbWUgaWYgdGhhdCBuYW1l IG1hdGNoIHRoaXMgZXhjbHVzaW9uIHBhdHRlcm4uIgogICA6dHlwZSAnc3RyaW5nCiAgIDpncm91 cCAnaGlkZS1pZmRlZikKKwogKGRlZmN1c3RvbSBoaWRlLWlmZGVmLWV4cGFuZC1yZS1pbmNsdXNp b24tcHJvdGVjdGlvbiB0CiAgICJXaGVuIGhpZGluZyBoZWFkZXIgZmlsZXMsIGFsd2F5cyBleHBh bmQgdGhlIHJlLWluY2x1c2lvbiBwcm90ZWN0ZWQKIGlmZGVmcy4gTW9zdCBDL0MrKyBoZWFkZXIg ZmlsZXMgYXJlIHdyYXBwZWQgd2l0aCBpZmRlZnMgdG8gcHJldmVudApAQCAtMTU5LDYgKzE2MCw3 IEBAIGlzIGRlZmluZWQgYXQgdGhlIGZpcnN0IHRpbWUgdGhhdCB3ZSBoaWRlIGl0LiIKICAgOnR5 cGUgJ3N0cmluZwogICA6Z3JvdXAgJ2hpZGUtaWZkZWYpCgorCiAoZGVmdmFyIGhpZGUtaWZkZWYt bW9kZS1zdWJtYXAKICAgOzsgU2V0IHVwIHRoZSBzdWJtYXAgdGhhdCBnb2VzIGFmdGVyIHRoZSBw cmVmaXgga2V5LgogICAobGV0ICgobWFwIChtYWtlLXNwYXJzZS1rZXltYXApKSkKQEAgLTE3MSw2 ICsxNzMsNyBAQCBpcyBkZWZpbmVkIGF0IHRoZSBmaXJzdCB0aW1lIHRoYXQgd2UgaGlkZSBpdC4i CiAgICAgKGRlZmluZS1rZXkgbWFwICJzIiAnc2hvdy1pZmRlZnMpCiAgICAgKGRlZmluZS1rZXkg bWFwICJcQy1kIiAnaGlkZS1pZmRlZi1ibG9jaykKICAgICAoZGVmaW5lLWtleSBtYXAgIlxDLXMi ICdzaG93LWlmZGVmLWJsb2NrKQorCiAgICAgKGRlZmluZS1rZXkgbWFwICJlIiAnaGlmLWV2YWx1 YXRlLW1hY3JvKQoKICAgICAoZGVmaW5lLWtleSBtYXAgIlxDLXEiICdoaWRlLWlmZGVmLXRvZ2ds ZS1yZWFkLW9ubHkpCkBAIC0yNTIsNDggKzI1NSw0OCBAQCB0aGF0IHRoZSBDIHByZXByb2Nlc3Nv ciB3b3VsZCBlbGltaW5hdGUgbWF5IGJlIGhpZGRlbiBmcm9tIHZpZXcuCiBTZXZlcmFsIHZhcmlh YmxlcyBhZmZlY3QgaG93IHRoZSBoaWRpbmcgaXMgZG9uZToKCiBgaGlkZS1pZmRlZi1lbnYnCi0J QW4gYXNzb2NpYXRpb24gbGlzdCBvZiBkZWZpbmVkIGFuZCB1bmRlZmluZWQgc3ltYm9scyBmb3Ig dGhlCi0JY3VycmVudCBidWZmZXIuICBJbml0aWFsbHksIHRoZSBnbG9iYWwgdmFsdWUgb2YgYGhp ZGUtaWZkZWYtZW52JwotCWlzIHVzZWQuCisgICAgICAgIEFuIGFzc29jaWF0aW9uIGxpc3Qgb2Yg ZGVmaW5lZCBhbmQgdW5kZWZpbmVkIHN5bWJvbHMgZm9yIHRoZQorICAgICAgICBjdXJyZW50IGJ1 ZmZlci4gIEluaXRpYWxseSwgdGhlIGdsb2JhbCB2YWx1ZSBvZiBgaGlkZS1pZmRlZi1lbnYnCisg ICAgICAgIGlzIHVzZWQuCgogYGhpZGUtaWZkZWYtZGVmaW5lLWFsaXN0JwotCUFuIGFzc29jaWF0 aW9uIGxpc3Qgb2YgZGVmaW5lZCBzeW1ib2wgbGlzdHMuCisgICAgICAgIEFuIGFzc29jaWF0aW9u IGxpc3Qgb2YgZGVmaW5lZCBzeW1ib2wgbGlzdHMuCiAgICAgICAgIFVzZSBgaGlkZS1pZmRlZi1z ZXQtZGVmaW5lLWFsaXN0JyB0byBzYXZlIHRoZSBjdXJyZW50IGBoaWRlLWlmZGVmLWVudicKICAg ICAgICAgYW5kIGBoaWRlLWlmZGVmLXVzZS1kZWZpbmUtYWxpc3QnIHRvIHNldCB0aGUgY3VycmVu dCBgaGlkZS1pZmRlZi1lbnYnCiAgICAgICAgIGZyb20gb25lIG9mIHRoZSBsaXN0cyBpbiBgaGlk ZS1pZmRlZi1kZWZpbmUtYWxpc3QnLgoKIGBoaWRlLWlmZGVmLWxpbmVzJwotCVNldCB0byBub24t bmlsIHRvIG5vdCBzaG93ICNpZiwgI2lmZGVmLCAjaWZuZGVmLCAjZWxzZSwgYW5kCi0JI2VuZGlm IGxpbmVzIHdoZW4gaGlkaW5nLgorICAgICAgICBTZXQgdG8gbm9uLW5pbCB0byBub3Qgc2hvdyAj aWYsICNpZmRlZiwgI2lmbmRlZiwgI2Vsc2UsIGFuZAorICAgICAgICAjZW5kaWYgbGluZXMgd2hl biBoaWRpbmcuCgogYGhpZGUtaWZkZWYtaW5pdGlhbGx5JwotCUluZGljYXRlcyB3aGV0aGVyIGBo aWRlLWlmZGVmcycgc2hvdWxkIGJlIGNhbGxlZCB3aGVuIEhpZGUtSWZkZWYgbW9kZQotCWlzIGFj dGl2YXRlZC4KKyAgICAgICAgSW5kaWNhdGVzIHdoZXRoZXIgYGhpZGUtaWZkZWZzJyBzaG91bGQg YmUgY2FsbGVkIHdoZW4gSGlkZS1JZmRlZiBtb2RlCisgICAgICAgIGlzIGFjdGl2YXRlZC4KCiBg aGlkZS1pZmRlZi1yZWFkLW9ubHknCi0JU2V0IHRvIG5vbi1uaWwgaWYgeW91IHdhbnQgdG8gbWFr ZSBidWZmZXJzIHJlYWQgb25seSB3aGlsZSBoaWRpbmcuCi0JQWZ0ZXIgYHNob3ctaWZkZWZzJywg cmVhZC1vbmx5IHN0YXR1cyBpcyByZXN0b3JlZCB0byBwcmV2aW91cyB2YWx1ZS4KKyAgICAgICAg U2V0IHRvIG5vbi1uaWwgaWYgeW91IHdhbnQgdG8gbWFrZSBidWZmZXJzIHJlYWQgb25seSB3aGls ZSBoaWRpbmcuCisgICAgICAgIEFmdGVyIGBzaG93LWlmZGVmcycsIHJlYWQtb25seSBzdGF0dXMg aXMgcmVzdG9yZWQgdG8gcHJldmlvdXMgdmFsdWUuCgogXFx7aGlkZS1pZmRlZi1tb2RlLW1hcH0i CiAgIDpncm91cCAnaGlkZS1pZmRlZiA6bGlnaHRlciAiIElmZGVmIgogICAoaWYgaGlkZS1pZmRl Zi1tb2RlCiAgICAgICAocHJvZ24KLQk7OyBpbmhlcml0IGdsb2JhbCB2YWx1ZXMKKyAgICAgICAg OzsgaW5oZXJpdCBnbG9iYWwgdmFsdWVzCiA7OyAgICAgIChzZXQgKG1ha2UtbG9jYWwtdmFyaWFi bGUgJ2hpZGUtaWZkZWYtZW52KSA7OyBbMjAxMi0wOS0yNyAxMTowNToyNiArMDgwMF0gTHVrZSBy ZW0gMiBpbnMgMgogOzsgICAgICAgICAgIChkZWZhdWx0LXZhbHVlICdoaWRlLWlmZGVmLWVudikp CiAgICAgICAgIChzZXQgJ2hpZGUtaWZkZWYtZW52IChkZWZhdWx0LXZhbHVlICdoaWRlLWlmZGVm LWVudikpCi0JKHNldCAobWFrZS1sb2NhbC12YXJpYWJsZSAnaGlkZS1pZmRlZi1oaWRpbmcpCi0J ICAgICAoZGVmYXVsdC12YWx1ZSAnaGlkZS1pZmRlZi1oaWRpbmcpKQotCShzZXQgKG1ha2UtbG9j YWwtdmFyaWFibGUgJ2hpZi1vdXRzaWRlLXJlYWQtb25seSkgYnVmZmVyLXJlYWQtb25seSkKLQko c2V0IChtYWtlLWxvY2FsLXZhcmlhYmxlICdsaW5lLW1vdmUtaWdub3JlLWludmlzaWJsZSkgdCkK LQkoYWRkLWhvb2sgJ2NoYW5nZS1tYWpvci1tb2RlLWhvb2sKLQkJICAobGFtYmRhICgpIChoaWRl LWlmZGVmLW1vZGUgLTEpKSBuaWwgdCkKLQotCShhZGQtdG8taW52aXNpYmlsaXR5LXNwZWMgJyho aWRlLWlmZGVmIC4gdCkpCi0KLQkoaWYgaGlkZS1pZmRlZi1pbml0aWFsbHkKLQkgICAgKGhpZGUt aWZkZWZzKQotCSAgKHNob3ctaWZkZWZzKSkpCisgICAgICAgIChzZXQgKG1ha2UtbG9jYWwtdmFy aWFibGUgJ2hpZGUtaWZkZWYtaGlkaW5nKQorICAgICAgICAgICAgIChkZWZhdWx0LXZhbHVlICdo aWRlLWlmZGVmLWhpZGluZykpCisgICAgICAgIChzZXQgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ2hp Zi1vdXRzaWRlLXJlYWQtb25seSkgYnVmZmVyLXJlYWQtb25seSkKKyAgICAgICAgKHNldCAobWFr ZS1sb2NhbC12YXJpYWJsZSAnbGluZS1tb3ZlLWlnbm9yZS1pbnZpc2libGUpIHQpCisgICAgICAg IChhZGQtaG9vayAnY2hhbmdlLW1ham9yLW1vZGUtaG9vaworICAgICAgICAgICAgICAgICAgKGxh bWJkYSAoKSAoaGlkZS1pZmRlZi1tb2RlIC0xKSkgbmlsIHQpCisKKyAgICAgICAgKGFkZC10by1p bnZpc2liaWxpdHktc3BlYyAnKGhpZGUtaWZkZWYgLiB0KSkKKworICAgICAgICAoaWYgaGlkZS1p ZmRlZi1pbml0aWFsbHkKKyAgICAgICAgICAgIChoaWRlLWlmZGVmcykKKyAgICAgICAgICAoc2hv dy1pZmRlZnMpKSkKICAgICA7OyBlbHNlIGVuZCBoaWRlLWlmZGVmLW1vZGUKICAgICAoa2lsbC1s b2NhbC12YXJpYWJsZSAnbGluZS1tb3ZlLWlnbm9yZS1pbnZpc2libGUpCiAgICAgKHJlbW92ZS1m cm9tLWludmlzaWJpbGl0eS1zcGVjICcoaGlkZS1pZmRlZiAuIHQpKQpAQCAtMzE4LDYgKzMyMSw3 IEBAIFNldmVyYWwgdmFyaWFibGVzIGFmZmVjdCBob3cgdGhlIGhpZGluZyBpcyBkb25lOgogICAo ZW5kLW9mLWxpbmUpCiAgICh3aGlsZSAoPSAobG9nYW5kIDEgKHNraXAtY2hhcnMtYmFja3dhcmQg IlxcXFwiKSkgMSkKICAgICAoZW5kLW9mLWxpbmUgMikpKQorCiAoZGVmdW4gaGlmLW1lcmdlLWlm ZGVmLXJlZ2lvbiAoc3RhcnQgZW5kKQogICA7OyBHZW5lcm5hbGx5IHRoZXJlIGlzIG5vIG5lZWQg dG8gY2FsbCBpdHNlbGYgcmVjdXJzaXZlbHkgc2luY2UgdGhlcmUgc2hvdWxkIG9yaWdpbmFsbHkK ICAgOzsgZXhpc3RzIG5vIHVuLW1lcmdlZCByZWdpb25zOyBob3dldmVyLCBpZiBhIHBhcnQgb2Yg dGhlIGZpbGUgaXMgaGlkZGVuIHdpdGggJ2hpZGUtaWZkZWYtbGluZXMnCkBAIC0zNjUsMTAgKzM2 OSwxMCBAQCB0b3RhbCBudW1iZXIgb2Ygb3ZlcmxheXMgY3JlYXRlZC4iCgogKGRlZnVuIGhpZGUt aWZkZWYtcmVnaW9uLWludGVybmFsIChzdGFydCBlbmQpCiAgICh1bmxlc3MgKGhpZi1tZXJnZS1p ZmRlZi1yZWdpb24gc3RhcnQgZW5kKQotICAobGV0ICgobyAobWFrZS1vdmVybGF5IHN0YXJ0IGVu ZCkpKQotICAgIChvdmVybGF5LXB1dCBvICdoaWRlLWlmZGVmIHQpCi0gICAgKGlmIGhpZGUtaWZk ZWYtc2hhZG93Ci0JKG92ZXJsYXktcHV0IG8gJ2ZhY2UgJ2hpZGUtaWZkZWYtc2hhZG93KQorICAg IChsZXQgKChvIChtYWtlLW92ZXJsYXkgc3RhcnQgZW5kKSkpCisgICAgICAob3ZlcmxheS1wdXQg byAnaGlkZS1pZmRlZiB0KQorICAgICAgKGlmIGhpZGUtaWZkZWYtc2hhZG93CisgICAgICAgICAg KG92ZXJsYXktcHV0IG8gJ2ZhY2UgJ2hpZGUtaWZkZWYtc2hhZG93KQogICAgICAgICAob3Zlcmxh eS1wdXQgbyAnaW52aXNpYmxlICdoaWRlLWlmZGVmKSkpKSkKCiAoZGVmdW4gaGlkZS1pZmRlZi1y ZWdpb24gKHN0YXJ0IGVuZCkKQEAgLTM4NSw3ICszODksNiBAQCBFdmVyeXRoaW5nIGluY2x1ZGlu ZyB0aGVzZSBsaW5lcyBpcyBtYWRlIGludmlzaWJsZS4iCiAgICAgKHJlbW92ZS1vdmVybGF5cyBz dGFydCBlbmQgJ2hpZGUtaWZkZWYgdCkKICAgICAoLz0gb251bSAobGVuZ3RoIChvdmVybGF5cy1p biBzdGFydCBlbmQpKSkpKQoKLQogOzs9PT0lJVNGJSUgZXZhbHVhdGlvbiAoU3RhcnQpICA9PT0K CiA7OyBJdCBpcyBub3QgdXNlZnVsIHRvIHNldCB0aGlzIHRvIGFueXRoaW5nIGJ1dCBgZXZhbCcu CkBAIC00MDgsMTEgKzQxMSwxMSBAQCB0aGF0IGZvcm0gc2hvdWxkIGJlIGRpc3BsYXllZC4iKQoK IChkZWZ1biBoaWYtbG9va3VwICh2YXIpCiAgIChvciAod2hlbiAoYm91bmQtYW5kLXRydWUtcCBz ZW1hbnRpYy1jLXRha2VvdmVyLWhpZGVpZikKLQkoc2VtYW50aWMtYy1oaWRlaWYtbG9va3VwIHZh cikpCisgICAgICAgIChzZW1hbnRpYy1jLWhpZGVpZi1sb29rdXAgdmFyKSkKICAgICAgIChsZXQg KCh2YWwgKGFzc29jIHZhciBoaWRlLWlmZGVmLWVudikpKQotCShpZiB2YWwKLQkgICAgKGNkciB2 YWwpCi0JICBoaWYtdW5kZWZpbmVkLXN5bWJvbCkpKSkKKyAgICAgICAgKGlmIHZhbAorICAgICAg ICAgICAgKGNkciB2YWwpCisgICAgICAgICAgaGlmLXVuZGVmaW5lZC1zeW1ib2wpKSkpCgogKGRl ZnVuIGhpZi1kZWZpbmVkICh2YXIpCiAgIChjb25kCkBAIC00MjgsMTMgKzQzMSwxMyBAQCB0aGF0 IGZvcm0gc2hvdWxkIGJlIGRpc3BsYXllZC4iKQogOzs9PT0lJVNGJSUgcGFyc2luZyAoU3RhcnQp ICA9PT0KIDs7OyAgVGhlIGNvZGUgdGhhdCB1bmRlcnN0YW5kcyB3aGF0IGlmcyBhbmQgaWZkZWYg aW4gZmlsZXMgbG9vayBsaWtlLgoKLShkZWZjb25zdCBoaWYtY3BwLXByZWZpeCAiXFwoXlxcfFxy XFwpWyBcdF0qI1sgXHRdKiIpCisoZGVmY29uc3QgaGlmLWNwcC1wcmVmaXggICAgIlxcKF5cXHxc clxcKVsgXHRdKiNbIFx0XSoiKQogKGRlZmNvbnN0IGhpZi1pZnhkZWYtcmVnZXhwIChjb25jYXQg aGlmLWNwcC1wcmVmaXggImlmXFwoblxcKT9kZWYiKSkKIChkZWZjb25zdCBoaWYtaWZuZGVmLXJl Z2V4cCAoY29uY2F0IGhpZi1jcHAtcHJlZml4ICJpZm5kZWYiKSkKLShkZWZjb25zdCBoaWYtaWZ4 LXJlZ2V4cCAoY29uY2F0IGhpZi1jcHAtcHJlZml4ICJpZlxcKG4/ZGVmXFwpP1sgXHRdKyIpKQor KGRlZmNvbnN0IGhpZi1pZngtcmVnZXhwICAgIChjb25jYXQgaGlmLWNwcC1wcmVmaXggImlmXFwo bj9kZWZcXCk/WyBcdF0rIikpCiAoZGVmY29uc3QgaGlmLWVsaWYtcmVnZXhwICAgKGNvbmNhdCBo aWYtY3BwLXByZWZpeCAiZWxpZiIpKQotKGRlZmNvbnN0IGhpZi1lbHNlLXJlZ2V4cCAoY29uY2F0 IGhpZi1jcHAtcHJlZml4ICJlbHNlIikpCi0oZGVmY29uc3QgaGlmLWVuZGlmLXJlZ2V4cCAoY29u Y2F0IGhpZi1jcHAtcHJlZml4ICJlbmRpZiIpKQorKGRlZmNvbnN0IGhpZi1lbHNlLXJlZ2V4cCAg IChjb25jYXQgaGlmLWNwcC1wcmVmaXggImVsc2UiKSkKKyhkZWZjb25zdCBoaWYtZW5kaWYtcmVn ZXhwICAoY29uY2F0IGhpZi1jcHAtcHJlZml4ICJlbmRpZiIpKQogKGRlZmNvbnN0IGhpZi1pZngt ZWxzZS1lbmRpZi1yZWdleHAKICAgKGNvbmNhdCBoaWYtaWZ4LXJlZ2V4cCAiXFx8IiBoaWYtZWxp Zi1yZWdleHAgIlxcfCIgaGlmLWVsc2UtcmVnZXhwICJcXHwiIGhpZi1lbmRpZi1yZWdleHApKQog KGRlZmNvbnN0IGhpZi1tYWNyby1leHByLXByZWZpeC1yZWdleHAgKGNvbmNhdCBoaWYtY3BwLXBy ZWZpeCAiXFwoaWZcXChuP2RlZlxcKT9cXHxlbGlmXFx8ZGVmaW5lXFwpWyBcdF0rIikpCkBAIC00 NTksMjkgKzQ2MiwyOSBAQCB0aGF0IGZvcm0gc2hvdWxkIGJlIGRpc3BsYXllZC4iKQogKGRlZmNv bnN0IGhpZi10b2tlbi1hbGlzdAogICAnKCgifHwiICAuIGhpZi1vcikKICAgICAoIiYmIiAgLiBo aWYtYW5kKQotICAgICgifCIgIC4gaGlmLWxvZ2lvcikKKyAgICAoInwiICAgLiBoaWYtbG9naW9y KQogICAgICgiXiIgICAuIGhpZi1sb2d4b3IpCi0gICAgKCImIiAgLiBoaWYtbG9nYW5kKQorICAg ICgiJiIgICAuIGhpZi1sb2dhbmQpCiAgICAgKCI8PCIgIC4gaGlmLXNoaWZ0bGVmdCkKICAgICAo Ij4+IiAgLiBoaWYtc2hpZnRyaWdodCkKICAgICAoIj09IiAgLiBoaWYtZXF1YWwpCiAgICAgKCI9 IiAgIC4gaGlmLWFzc2lnbikKLSAgICAoIiE9IiAuIGhpZi1ub3RlcXVhbCkKKyAgICAoIiE9IiAg LiBoaWYtbm90ZXF1YWwpCiAgICAgKCIjIyIgIC4gaGlmLXRva2VuLWNvbmNhdCkKICAgICAoIiEi ICAgLiBoaWYtbm90KQogICAgICgifiIgICAuIGhpZi1sb2dub3QpCiAgICAgKCIoIiAgIC4gaGlm LWxwYXJlbikKICAgICAoIikiICAgLiBoaWYtcnBhcmVuKQotICAgICgiPiIgIC4gaGlmLWdyZWF0 ZXIpCi0gICAgKCI8IiAgLiBoaWYtbGVzcykKLSAgICAoIj49IiAuIGhpZi1ncmVhdGVyLWVxdWFs KQotICAgICgiPD0iIC4gaGlmLWxlc3MtZXF1YWwpCi0gICAgKCIrIiAgLiBoaWYtcGx1cykKLSAg ICAoIi0iICAuIGhpZi1taW51cykKKyAgICAoIj4iICAgLiBoaWYtZ3JlYXRlcikKKyAgICAoIjwi ICAgLiBoaWYtbGVzcykKKyAgICAoIj49IiAgLiBoaWYtZ3JlYXRlci1lcXVhbCkKKyAgICAoIjw9 IiAgLiBoaWYtbGVzcy1lcXVhbCkKKyAgICAoIisiICAgLiBoaWYtcGx1cykKKyAgICAoIi0iICAg LiBoaWYtbWludXMpCiAgICAgKCIqIiAgIC4gaGlmLW11bHRpcGx5KQogICAgICgiLyIgICAuIGhp Zi1kaXZpZGUpCiAgICAgKCIlIiAgIC4gaGlmLW1vZHVsbykKLSAgICAoIj8iICAuIGhpZi1jb25k aXRpb25hbCkKKyAgICAoIj8iICAgLiBoaWYtY29uZGl0aW9uYWwpCiAgICAgKCI6IiAgIC4gaGlm LWNvbG9uKQogICAgICgiLCIgICAuIGhpZi1jb21tYSkKICAgICAoIiMiICAgLiBoaWYtc3RyaW5n aWZ5KQpAQCAtNTA2LDIxICs1MDksMjIgQEAgdGhhdCBmb3JtIHNob3VsZCBiZSBkaXNwbGF5ZWQu IikKICAgICAoc2V0cSBoaWYtc2ltcGxlLXRva2VuLW9ubHkgdCkKICAgICAod2l0aC1zeW50YXgt dGFibGUgaGlkZS1pZmRlZi1zeW50YXgtdGFibGUKICAgICAgIChzYXZlLWV4Y3Vyc2lvbgotCShn b3RvLWNoYXIgc3RhcnQpCi0JKHdoaWxlIChwcm9nbiAoZm9yd2FyZC1jb21tZW50IChwb2ludC1t YXgpKSAoPCAocG9pbnQpIGVuZCkpCi0JICA7OyAobWVzc2FnZSAiZXhwci1zdGFydCA9ICVkIiBl eHByLXN0YXJ0KSAoc2l0LWZvciAxKQotCSAgKGNvbmQKLQkgICAoKGxvb2tpbmctYXQgIlxcXFxc biIpCi0JICAgIChmb3J3YXJkLWNoYXIgMikpCisgICAgICAgIChnb3RvLWNoYXIgc3RhcnQpCisg ICAgICAgICh3aGlsZSAocHJvZ24gKGZvcndhcmQtY29tbWVudCAocG9pbnQtbWF4KSkgKDwgKHBv aW50KSBlbmQpKQorICAgICAgICAgIDs7IChtZXNzYWdlICJleHByLXN0YXJ0ID0gJWQiIGV4cHIt c3RhcnQpIChzaXQtZm9yIDEpCisgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgKChsb29raW5n LWF0ICJcXFxcXG4iKQorICAgICAgICAgICAgKGZvcndhcmQtY2hhciAyKSkKCiAgICAgICAgICAg ICgobG9va2luZy1hdCBoaWYtc3RyaW5nLWxpdGVyYWwtcmVnZXhwKQogICAgICAgICAgICAgKHB1 c2ggKHN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChtYXRjaC1zdHJpbmcgMSkpIHRva2VuLWxpc3Qp CiAgICAgICAgICAgICAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkpKQotCSAgICgobG9va2luZy1h dCBoaWYtdG9rZW4tcmVnZXhwKQorCisgICAgICAgICAgICgobG9va2luZy1hdCBoaWYtdG9rZW4t cmVnZXhwKQogICAgICAgICAgICAgKGxldCAoKHRva2VuIChidWZmZXItc3Vic3RyaW5nLW5vLXBy b3BlcnRpZXMgKHBvaW50KSAobWF0Y2gtZW5kIDApKSkpCi0JICAgICAgKGdvdG8tY2hhciAobWF0 Y2gtZW5kIDApKQotCSAgICAgIDs7IChtZXNzYWdlICJ0b2tlbjogJXMiIHRva2VuKSAoc2l0LWZv ciAxKQotCSAgICAgIChwdXNoIChvciAoY2RyIChhc3NvYyB0b2tlbiBoaWYtdG9rZW4tYWxpc3Qp KQorICAgICAgICAgICAgICAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkpCisgICAgICAgICAgICAg IDs7IChtZXNzYWdlICJ0b2tlbjogJXMiIHRva2VuKSAoc2l0LWZvciAxKQorICAgICAgICAgICAg ICAocHVzaCAob3IgKGNkciAoYXNzb2MgdG9rZW4gaGlmLXRva2VuLWFsaXN0KSkKICAgICAgICAg ICAgICAgICAgICAgICAgIChpZiAoc3RyaW5nLWVxdWFsIHRva2VuICJkZWZpbmVkIikgJ2hpZi1k ZWZpbmVkKQogICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmctbWF0Y2ggIjB4XFwo W2EtZkEtRjAtOV0rXFwpIiB0b2tlbikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Ry aW5nLXRvLW51bWJlciAobWF0Y2gtc3RyaW5nIDEgdG9rZW4pIDE2KSkgOzsgaGV4YWRlY2ltYWwK QEAgLTUzMCwxMCArNTM0LDEyIEBAIHRoYXQgZm9ybSBzaG91bGQgYmUgZGlzcGxheWVkLiIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy10by1udW1iZXIgdG9rZW4pKSA7OyBk ZWNpbWFsCiAgICAgICAgICAgICAgICAgICAgICAgICAocHJvZzEgKGludGVybiB0b2tlbikKICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgaGlmLXNpbXBsZS10b2tlbi1vbmx5IG5pbCkp KQotCQkgICAgdG9rZW4tbGlzdCkpKQorICAgICAgICAgICAgICAgICAgICB0b2tlbi1saXN0KSkp CisKICAgICAgICAgICAgKChsb29raW5nLWF0ICJcciIpIDs7IHNvbWV0aW1lcyBXaW5kb3dzIHVz ZXIgd2lsbCBsZWF2ZSBDUiBpbiB0aGUgc291cmNlIGNvZGUKICAgICAgICAgICAgIChmb3J3YXJk LWNoYXIgMSkpIDs7IGxldCdzIGRvbid0IHN0dWNrIGhlcmUuCi0JICAgKHQgKGVycm9yICJCYWQg I2lmIGV4cHJlc3Npb246ICVzIiAoYnVmZmVyLXN0cmluZykpKSkpKSkKKworICAgICAgICAgICAo dCAoZXJyb3IgIkJhZCAjaWYgZXhwcmVzc2lvbjogJXMiIChidWZmZXItc3RyaW5nKSkpKSkpKQog ICAgIChucmV2ZXJzZSB0b2tlbi1saXN0KSkpCgogOzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTY5NSwx NSArNzAxLDE1IEBAIHRoYXQgZm9ybSBzaG91bGQgYmUgZGlzcGxheWVkLiIpCiAgICJQYXJzZSBh biBleHByZXNzaW9uIGFzIGZvdW5kIGluICNpZi4KICAgICAgICBleHByIDogb3ItZXhwciB8IG9y LWV4cHIgJz8nIGV4cHIgJzonIGV4cHIuIgogICAobGV0ICgocmVzdWx0IChoaWYtb3ItZXhwcikp Ci0JbWlkZGxlKQorICAgICAgICBtaWRkbGUpCiAgICAgKHdoaWxlIChlcSBoaWYtdG9rZW4gJ2hp Zi1jb25kaXRpb25hbCkKICAgICAgIChoaWYtbmV4dHRva2VuKQogICAgICAgKHNldHEgbWlkZGxl IChoaWYtZXhwcikpCiAgICAgICAoaWYgKGVxIGhpZi10b2tlbiAnaGlmLWNvbG9uKQotCSAgKHBy b2duCi0JICAgIChoaWYtbmV4dHRva2VuKQotCSAgICAoc2V0cSByZXN1bHQgKGxpc3QgJ2hpZi1j b25kaXRpb25hbCByZXN1bHQgbWlkZGxlIChoaWYtZXhwcikpKSkKLQkoZXJyb3IgIkVycm9yOiB1 bmV4cGVjdGVkIHRva2VuOiAlcyIgaGlmLXRva2VuKSkpCisgICAgICAgICAgKHByb2duCisgICAg ICAgICAgICAoaGlmLW5leHR0b2tlbikKKyAgICAgICAgICAgIChzZXRxIHJlc3VsdCAobGlzdCAn aGlmLWNvbmRpdGlvbmFsIHJlc3VsdCBtaWRkbGUgKGhpZi1leHByKSkpKQorICAgICAgICAoZXJy b3IgIkVycm9yOiB1bmV4cGVjdGVkIHRva2VuOiAlcyIgaGlmLXRva2VuKSkpCiAgICAgcmVzdWx0 KSkKCiAoZGVmdW4gaGlmLW9yLWV4cHIgKCkKQEAgLTc0OSw3ICs3NTUsNyBAQCB0aGF0IGZvcm0g c2hvdWxkIGJlIGRpc3BsYXllZC4iKQogKGRlZnVuIGhpZi1lcS1leHByICgpCiAgICJQYXJzZSBh biBlcS1leHByIDogY29tcCB8IGVxLWV4cHIgYD09J3xgIT0nIGNvbXAuIgogICAobGV0ICgocmVz dWx0IChoaWYtY29tcC1leHByKSkKLQkoZXEtdG9rZW4gbmlsKSkKKyAgICAgICAgKGVxLXRva2Vu IG5pbCkpCiAgICAgKHdoaWxlIChtZW1xIGhpZi10b2tlbiAnKGhpZi1lcXVhbCBoaWYtbm90ZXF1 YWwpKQogICAgICAgKHNldHEgZXEtdG9rZW4gaGlmLXRva2VuKQogICAgICAgKGhpZi1uZXh0dG9r ZW4pCkBAIC03OTEsMTIgKzc5NywxMiBAQCB0aGF0IGZvcm0gc2hvdWxkIGJlIGRpc3BsYXllZC4i KQogICAiUGFyc2UgYW4gZXhwcmVzc2lvbiB3aXRoICosLywlLgogICAgICAgIG11bGRpdiA6IGZh Y3RvciB8IG11bGRpdiAnKnwvfCUnIGZhY3Rvci4iCiAgIChsZXQgKChyZXN1bHQgKGhpZi1mYWN0 b3IpKQotCShtYXRoLW9wIG5pbCkpCisgICAgICAgIChtYXRoLW9wIG5pbCkpCiAgICAgKHdoaWxl IChtZW1xIGhpZi10b2tlbiAnKGhpZi1tdWx0aXBseSBoaWYtZGl2aWRlIGhpZi1tb2R1bG8pKQog ICAgICAgKHNldHEgbWF0aC1vcCBoaWYtdG9rZW4pCiAgICAgICAoaGlmLW5leHR0b2tlbikKICAg ICAgIChzZXRxIHJlc3VsdCAobGlzdCBtYXRoLW9wIHJlc3VsdCAoaGlmLWZhY3RvcikpKSkKLSAg cmVzdWx0KSkKKyAgICByZXN1bHQpKQoKIChkZWZ1biBoaWYtZmFjdG9yICgpCiAgICJQYXJzZSBh IGZhY3RvcjogJyEnIGZhY3RvciB8ICd+JyBmYWN0b3IgfCAnKCcgZXhwciAnKScgfCAnZGVmaW5l ZCgnIGlkICcpJyB8ICdpZChwYXJtbGlzdCknIHwgc3RyaW5ncyB8IGlkLiIKQEAgLTgxMywyNSAr ODE5LDI2IEBAIHRoYXQgZm9ybSBzaG91bGQgYmUgZGlzcGxheWVkLiIpCiAgICAgKGhpZi1uZXh0 dG9rZW4pCiAgICAgKGxldCAoKHJlc3VsdCAoaGlmLWV4cHJsaXN0KSkpCiAgICAgICAoaWYgKG5v dCAoZXEgaGlmLXRva2VuICdoaWYtcnBhcmVuKSkKLQkgIChlcnJvciAiQmFkIHRva2VuIGluIHBh cmVudGhlc2l6ZWQgZXhwcmVzc2lvbjogJXMiIGhpZi10b2tlbikKLQkoaGlmLW5leHR0b2tlbikK LQlyZXN1bHQpKSkKKyAgICAgICAgICAoZXJyb3IgIkJhZCB0b2tlbiBpbiBwYXJlbnRoZXNpemVk IGV4cHJlc3Npb246ICVzIiBoaWYtdG9rZW4pCisgICAgICAgIChoaWYtbmV4dHRva2VuKQorICAg ICAgICByZXN1bHQpKSkKCiAgICAoKGVxIGhpZi10b2tlbiAnaGlmLWRlZmluZWQpCiAgICAgKGhp Zi1uZXh0dG9rZW4pCiAgICAgKGxldCAoKHBhcmVuICh3aGVuIChlcSBoaWYtdG9rZW4gJ2hpZi1s cGFyZW4pIChoaWYtbmV4dHRva2VuKSB0KSkKLQkgIChpZGVudCBoaWYtdG9rZW4pKQorICAgICAg ICAgIChpZGVudCBoaWYtdG9rZW4pKQogICAgICAgKGlmIChtZW1xIGhpZi10b2tlbiAnKG9yIGFu ZCBub3QgaGlmLWRlZmluZWQgaGlmLWxwYXJlbiBoaWYtcnBhcmVuKSkKLQkgIChlcnJvciAiRXJy b3I6IHVuZXhwZWN0ZWQgdG9rZW46ICVzIiBoaWYtdG9rZW4pKQorICAgICAgICAgIChlcnJvciAi RXJyb3I6IHVuZXhwZWN0ZWQgdG9rZW46ICVzIiBoaWYtdG9rZW4pKQogICAgICAgKHdoZW4gcGFy ZW4KLQkoaGlmLW5leHR0b2tlbikKKyAgICAgICAgKGhpZi1uZXh0dG9rZW4pCiAgICAgICAgICh1 bmxlc3MgKGVxIGhpZi10b2tlbiAnaGlmLXJwYXJlbikKLQkgIChlcnJvciAiRXJyb3I6IGV4cGVj dGVkIFwiKVwiIGFmdGVyIGlkZW50aWZpZXIiKSkpCisgICAgICAgICAgKGVycm9yICJFcnJvcjog ZXhwZWN0ZWQgXCIpXCIgYWZ0ZXIgaWRlbnRpZmllciIpKSkKICAgICAgIChoaWYtbmV4dHRva2Vu KQogICAgICAgYChoaWYtZGVmaW5lZCAocXVvdGUgLGlkZW50KSkpKQoKICAgICgobnVtYmVycCBo aWYtdG9rZW4pCiAgICAgKHByb2cxIGhpZi10b2tlbiAoaGlmLW5leHR0b2tlbikpKQorCiAgICAo KHN0cmluZ3AgaGlmLXRva2VuKQogICAgIChoaWYtc3RyaW5nLWNvbmNhdGVuYXRpb24pKQoKQEAg LTgzOSw3ICs4NDYsNyBAQCB0aGF0IGZvcm0gc2hvdWxkIGJlIGRpc3BsYXllZC4iKQogICAgKCht ZW1xIGhpZi10b2tlbiAnKGhpZi1taW51cyBoaWYtcGx1cykpCiAgICAgKGxpc3QgKHByb2cxIGhp Zi10b2tlbiAoaGlmLW5leHR0b2tlbikpIDAgKGhpZi1mYWN0b3IpKSkKCi0gICAodAkJCQkJOyBp ZGVudGlmaWVyCisgICAodCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBpZGVu dGlmaWVyCiAgICAgKGxldCAoKGlkZW50IGhpZi10b2tlbikpCiAgICAgICAoaGlmLW5leHR0b2tl bikKICAgICAgIChpZiAoZXEgaGlmLXRva2VuICdoaWYtbHBhcmVuKQpAQCAtOTQ0LDExICs5NTEs MTIgQEAgd2UgaWdub3JlIHRoZW0gYWxsIGhlcmUuIgogKGRlZnVuIGhpZi1tYXRoaWZ5ICh2YWwp CiAgICJUcmVhdCBWQUwgYXMgYSBudW1iZXI6IGlmIGl0J3MgdCBvciBuaWwsIHVzZSAxIG9yIDAu IgogICAoY29uZCAoKGVxIHZhbCB0KSAxKQotCSgobnVsbCB2YWwpIDApCi0JKHQgdmFsKSkpCisg ICAgICAgICgobnVsbCB2YWwpIDApCisgICAgICAgICh0IHZhbCkpKQoKIChkZWZ1biBoaWYtY29u ZGl0aW9uYWwgKGEgYiBjKQogICAoaWYgKG5vdCAoemVyb3AgKGhpZi1tYXRoaWZ5IGEpKSkgKGhp Zi1tYXRoaWZ5IGIpIChoaWYtbWF0aGlmeSBjKSkpCisKIChkZWZ1biBoaWYtYW5kIChhIGIpCiAg IChhbmQgKG5vdCAoemVyb3AgKGhpZi1tYXRoaWZ5IGEpKSkgKG5vdCAoemVyb3AgKGhpZi1tYXRo aWZ5IGIpKSkpKQogKGRlZnVuIGhpZi1vciAoYSBiKQpAQCAtMTExMCw3ICsxMTE4LDYgQEAgd2Ug aWdub3JlIHRoZW0gYWxsIGhlcmUuIgoKIDs7Oy0tLS0tLS0tLS0tIGVuZCBvZiBwYXJzZXIgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KCi0KIChkZWZ1biBoaWYtY2Fub25pY2FsaXplLXRva2VucyAo cmVnZXhwKSA7OyBmb3IgZGVidWdnaW5nCiAgICJSZXR1cm4gdGhlIGV4cGFuZGVkIHJlc3VsdCBv ZiB0aGUgc2Nhbm5lZCB0b2tlbnMuIgogICAoc2F2ZS1leGN1cnNpb24KQEAgLTExMjMsNyArMTEz MCw3IEBAIHdlIGlnbm9yZSB0aGVtIGFsbCBoZXJlLiIKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHByb2duIChoaWYtZW5kLW9mLWxpbmUpIChwb2ludCkpKSkpCiAgICAgICAg IChpZiBkZWZpbmVkCiAgICAgICAgICAgICAoc2V0cSB0b2tlbnMgKGxpc3QgJ2hpZi1kZWZpbmVk IHRva2VucykpKQotCShpZiBuZWdhdGUKKyAgICAgICAgKGlmIG5lZ2F0ZQogICAgICAgICAgICAg KHNldHEgdG9rZW5zIChsaXN0ICdoaWYtbm90IHRva2VucykpKQogICAgICAgICB0b2tlbnMpKSkp CgpAQCAtMTE1MSw3ICsxMTU4LDYgQEAgd2UgaWdub3JlIHRoZW0gYWxsIGhlcmUuIgogICAgICAg KHJlLXNlYXJjaC1mb3J3YXJkIGhpZi1pZngtcmVnZXhwIChwb2ludC1tYXgpIHQpCiAgICAgKGJl Z2lubmluZy1vZi1saW5lKSkpCgotCiAoZGVmdW4gaGlmLWZpbmQtbmV4dC1yZWxldmFudCAoKQog ICAiTW92ZSB0byBuZXh0ICNpZi4uLiwgI2VsaWYuLi4sICNlbHNlLCBvciAjZW5kaWYsIGFmdGVy IHRoZSBjdXJyZW50IGxpbmUuIgogICA7OyAobWVzc2FnZSAiaGlmLWZpbmQtbmV4dC1yZWxldmFu dCBhdCAlZCIgKHBvaW50KSkKQEAgLTExNjksMTMgKzExNzUsMTIgQEAgd2UgaWdub3JlIHRoZW0g YWxsIGhlcmUuIgogICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpKSkKCgotKGRlZnVuIGhpZi1sb29r aW5nLWF0LWlmWCAoKQkJOzsgU2hvdWxkIGV2ZW50dWFsbHkgc2VlICNpZgorKGRlZnVuIGhpZi1s b29raW5nLWF0LWlmWCAoKSAgICAgICAgICAgIDs7IFNob3VsZCBldmVudHVhbGx5IHNlZSAjaWYK ICAgKGxvb2tpbmctYXQgaGlmLWlmeC1yZWdleHApKQogKGRlZnVuIGhpZi1sb29raW5nLWF0LWVu ZGlmICgpCiAgIChsb29raW5nLWF0IGhpZi1lbmRpZi1yZWdleHApKQogKGRlZnVuIGhpZi1sb29r aW5nLWF0LWVsc2UgKCkKICAgKGxvb2tpbmctYXQgaGlmLWVsc2UtcmVnZXhwKSkKLQogKGRlZnVu IGhpZi1sb29raW5nLWF0LWVsaWYgKCkKICAgKGxvb2tpbmctYXQgaGlmLWVsaWYtcmVnZXhwKSkK CkBAIC0xMTg1LDE2ICsxMTkwLDE2IEBAIHdlIGlnbm9yZSB0aGVtIGFsbCBoZXJlLiIKICAgOzsg KG1lc3NhZ2UgImhpZi1pZmRlZi10by1lbmRpZiBhdCAlZCIgKHBvaW50KSkgKHNpdC1mb3IgMSkK ICAgKGhpZi1maW5kLW5leHQtcmVsZXZhbnQpCiAgIChjb25kICgoaGlmLWxvb2tpbmctYXQtaWZY KQotCSAoaGlmLWlmZGVmLXRvLWVuZGlmKSA7IGZpbmQgZW5kaWYgb2YgbmVzdGVkIGlmCi0JICho aWYtaWZkZWYtdG8tZW5kaWYpKSA7IGZpbmQgb3V0ZXIgZW5kaWYgb3IgZWxzZQorICAgICAgICAg KGhpZi1pZmRlZi10by1lbmRpZikgOyBmaW5kIGVuZGlmIG9mIG5lc3RlZCBpZgorICAgICAgICAg KGhpZi1pZmRlZi10by1lbmRpZikpIDsgZmluZCBvdXRlciBlbmRpZiBvciBlbHNlCiAgICAgICAg ICgoaGlmLWxvb2tpbmctYXQtZWxpZikKICAgICAgICAgIChoaWYtaWZkZWYtdG8tZW5kaWYpKQot CSgoaGlmLWxvb2tpbmctYXQtZWxzZSkKLQkgKGhpZi1pZmRlZi10by1lbmRpZikpIDsgZmluZCBl bmRpZiBmb2xsb3dpbmcgZWxzZQotCSgoaGlmLWxvb2tpbmctYXQtZW5kaWYpCi0JICdkb25lKQot CSh0Ci0JIChlcnJvciAiTWlzbWF0Y2hlZCAjaWZkZWYgI2VuZGlmIHBhaXIiKSkpKQorICAgICAg ICAoKGhpZi1sb29raW5nLWF0LWVsc2UpCisgICAgICAgICAoaGlmLWlmZGVmLXRvLWVuZGlmKSkg OyBmaW5kIGVuZGlmIGZvbGxvd2luZyBlbHNlCisgICAgICAgICgoaGlmLWxvb2tpbmctYXQtZW5k aWYpCisgICAgICAgICAnZG9uZSkKKyAgICAgICAgKHQKKyAgICAgICAgIChlcnJvciAiTWlzbWF0 Y2hlZCAjaWZkZWYgI2VuZGlmIHBhaXIiKSkpKQoKCiAoZGVmdW4gaGlmLWVuZGlmLXRvLWlmZGVm ICgpCkBAIC0xMjAzLDE2ICsxMjA4LDE2IEBAIHdlIGlnbm9yZSB0aGVtIGFsbCBoZXJlLiIKICAg KGxldCAoKHN0YXJ0IChwb2ludCkpKQogICAgIChoaWYtZmluZC1wcmV2aW91cy1yZWxldmFudCkK ICAgICAoaWYgKD0gc3RhcnQgKHBvaW50KSkKLQkoZXJyb3IgIk1pc21hdGNoZWQgI2lmZGVmICNl bmRpZiBwYWlyIikpKQorICAgICAgICAoZXJyb3IgIk1pc21hdGNoZWQgI2lmZGVmICNlbmRpZiBw YWlyIikpKQogICAoY29uZCAoKGhpZi1sb29raW5nLWF0LWVuZGlmKQotCSAoaGlmLWVuZGlmLXRv LWlmZGVmKSA7IGZpbmQgYmVnaW5uaW5nIG9mIG5lc3RlZCBpZgotCSAoaGlmLWVuZGlmLXRvLWlm ZGVmKSkgOyBmaW5kIGJlZ2lubmluZyBvZiBvdXRlciBpZiBvciBlbHNlCisgICAgICAgICAoaGlm LWVuZGlmLXRvLWlmZGVmKSA7IGZpbmQgYmVnaW5uaW5nIG9mIG5lc3RlZCBpZgorICAgICAgICAg KGhpZi1lbmRpZi10by1pZmRlZikpIDsgZmluZCBiZWdpbm5pbmcgb2Ygb3V0ZXIgaWYgb3IgZWxz ZQogICAgICAgICAoKGhpZi1sb29raW5nLWF0LWVsaWYpCiAgICAgICAgICAoaGlmLWVuZGlmLXRv LWlmZGVmKSkKLQkoKGhpZi1sb29raW5nLWF0LWVsc2UpCi0JIChoaWYtZW5kaWYtdG8taWZkZWYp KQotCSgoaGlmLWxvb2tpbmctYXQtaWZYKQotCSAnZG9uZSkKKyAgICAgICAgKChoaWYtbG9va2lu Zy1hdC1lbHNlKQorICAgICAgICAgKGhpZi1lbmRpZi10by1pZmRlZikpCisgICAgICAgICgoaGlm LWxvb2tpbmctYXQtaWZYKQorICAgICAgICAgJ2RvbmUpCiAgICAgICAgICh0CiAgICAgICAgICAo ZXJyb3IgIk1pc21hdGNoZWQgI2VuZGlmIikpKSkgICAgICAgICAgICAgICAgIDsgbmV2ZXIgZ2V0 cyBoZXJlCgpAQCAtMTIyNiwxMiArMTIzMSwxMiBAQCBXaXRoIGFyZ3VtZW50LCBkbyB0aGlzIHRo YXQgbWFueSB0aW1lcy4iCiAgICAgKHdoaWxlICg8IDAgYXJnKQogICAgICAgKHNldHEgYXJnICgt IGFyZykpCiAgICAgICAobGV0ICgoc3RhcnQgKHBvaW50KSkpCi0JKHVubGVzcyAoaGlmLWxvb2tp bmctYXQtaWZYKQotCSAgKGhpZi1maW5kLW5leHQtcmVsZXZhbnQpKQotCShpZiAoaGlmLWxvb2tp bmctYXQtaWZYKQotCSAgICAoaGlmLWlmZGVmLXRvLWVuZGlmKQotCSAgKGdvdG8tY2hhciBzdGFy dCkKLQkgIChlcnJvciAiTm8gZm9sbG93aW5nICNpZmRlZiIpKSkpKSkKKyAgICAgICAgKHVubGVz cyAoaGlmLWxvb2tpbmctYXQtaWZYKQorICAgICAgICAgIChoaWYtZmluZC1uZXh0LXJlbGV2YW50 KSkKKyAgICAgICAgKGlmIChoaWYtbG9va2luZy1hdC1pZlgpCisgICAgICAgICAgICAoaGlmLWlm ZGVmLXRvLWVuZGlmKQorICAgICAgICAgIChnb3RvLWNoYXIgc3RhcnQpCisgICAgICAgICAgKGVy cm9yICJObyBmb2xsb3dpbmcgI2lmZGVmIikpKSkpKQoKCiAoZGVmdW4gYmFja3dhcmQtaWZkZWYg KCZvcHRpb25hbCBhcmcpCkBAIC0xMjQ0LDEyICsxMjQ5LDEyIEBAIFdpdGggYXJndW1lbnQsIGRv IHRoaXMgdGhhdCBtYW55IHRpbWVzLiIKICAgICAgIChzZXRxIGFyZyAoMS0gYXJnKSkKICAgICAg IChiZWdpbm5pbmctb2YtbGluZSkKICAgICAgIChsZXQgKChzdGFydCAocG9pbnQpKSkKLQkodW5s ZXNzIChoaWYtbG9va2luZy1hdC1lbmRpZikKLQkgIChoaWYtZmluZC1wcmV2aW91cy1yZWxldmFu dCkpCi0JKGlmIChoaWYtbG9va2luZy1hdC1lbmRpZikKLQkgICAgKGhpZi1lbmRpZi10by1pZmRl ZikKLQkgIChnb3RvLWNoYXIgc3RhcnQpCi0JICAoZXJyb3IgIk5vIHByZXZpb3VzICNpZmRlZiIp KSkpKSkKKyAgICAgICAgKHVubGVzcyAoaGlmLWxvb2tpbmctYXQtZW5kaWYpCisgICAgICAgICAg KGhpZi1maW5kLXByZXZpb3VzLXJlbGV2YW50KSkKKyAgICAgICAgKGlmIChoaWYtbG9va2luZy1h dC1lbmRpZikKKyAgICAgICAgICAgIChoaWYtZW5kaWYtdG8taWZkZWYpCisgICAgICAgICAgKGdv dG8tY2hhciBzdGFydCkKKyAgICAgICAgICAoZXJyb3IgIk5vIHByZXZpb3VzICNpZmRlZiIpKSkp KSkKCgogKGRlZnVuIGRvd24taWZkZWYgKCkKQEAgLTEyNTgsOSArMTI2Myw5IEBAIFdpdGggYXJn dW1lbnQsIGRvIHRoaXMgdGhhdCBtYW55IHRpbWVzLiIKICAgICAobGV0ICgoc3RhcnQgKHBvaW50 KSkpCiAgICAgICAoaGlmLWZpbmQtbmV4dC1yZWxldmFudCkKICAgICAgIChpZiAob3IgKGhpZi1s b29raW5nLWF0LWlmWCkgKGhpZi1sb29raW5nLWF0LWVsc2UpKQotCSAgKCkKLQkoZ290by1jaGFy IHN0YXJ0KQotCShlcnJvciAiTm8gZm9sbG93aW5nICNpZmRlZiIpKSkpCisgICAgICAgICAgKCkK KyAgICAgICAgKGdvdG8tY2hhciBzdGFydCkKKyAgICAgICAgKGVycm9yICJObyBmb2xsb3dpbmcg I2lmZGVmIikpKSkKCgogKGRlZnVuIHVwLWlmZGVmICgpCkBAIC0xMjcxLDkgKzEyNzYsOSBAQCBX aXRoIGFyZ3VtZW50LCBkbyB0aGlzIHRoYXQgbWFueSB0aW1lcy4iCiAgICAgKHVubGVzcyAoaGlm LWxvb2tpbmctYXQtZW5kaWYpCiAgICAgICAoaGlmLWZpbmQtcHJldmlvdXMtcmVsZXZhbnQpKQog ICAgIChpZiAoaGlmLWxvb2tpbmctYXQtZW5kaWYpCi0JKGhpZi1lbmRpZi10by1pZmRlZikpCisg ICAgICAgIChoaWYtZW5kaWYtdG8taWZkZWYpKQogICAgICAgKGlmICg9IHN0YXJ0IChwb2ludCkp Ci0JICAoZXJyb3IgIk5vIHByZXZpb3VzICNpZmRlZiIpKSkpCisgICAgICAgICAgKGVycm9yICJO byBwcmV2aW91cyAjaWZkZWYiKSkpKQoKIChkZWZ1biBuZXh0LWlmZGVmICgmb3B0aW9uYWwgYXJn KQogICAiTW92ZSB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXh0ICNpZlgsICNlbHNlLCBvciAj ZW5kaWYuCkBAIC0xMjg1LDggKzEyOTAsOCBAQCBXaXRoIGFyZ3VtZW50LCBkbyB0aGlzIHRoYXQg bWFueSB0aW1lcy4iCiAgICAgICAoc2V0cSBhcmcgKDEtIGFyZykpCiAgICAgICAoaGlmLWZpbmQt bmV4dC1yZWxldmFudCkKICAgICAgICh3aGVuIChlb2xwKQotCShiZWdpbm5pbmctb2YtbGluZSkK LQkoZXJyb3IgIk5vIGZvbGxvd2luZyAjaWZkZWZzLCAjZWxzZXMsIG9yICNlbmRpZnMiKSkpKSkK KyAgICAgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgICAgICAoZXJyb3IgIk5vIGZvbGxvd2lu ZyAjaWZkZWZzLCAjZWxzZXMsIG9yICNlbmRpZnMiKSkpKSkKCiAoZGVmdW4gcHJldmlvdXMtaWZk ZWYgKCZvcHRpb25hbCBhcmcpCiAgICJNb3ZlIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHByZXZp b3VzICNpZlgsICNlbHNlLCBvciAjZW5kaWYuCkBAIC0xMjk3LDkgKzEzMDIsOSBAQCBXaXRoIGFy Z3VtZW50LCBkbyB0aGlzIHRoYXQgbWFueSB0aW1lcy4iCiAgICAgKHdoaWxlICg8IDAgYXJnKQog ICAgICAgKHNldHEgYXJnICgxLSBhcmcpKQogICAgICAgKGxldCAoKHN0YXJ0IChwb2ludCkpKQot CShoaWYtZmluZC1wcmV2aW91cy1yZWxldmFudCkKLQkoaWYgKD0gc3RhcnQgKHBvaW50KSkKLQkg ICAgKGVycm9yICJObyBwcmV2aW91cyAjaWZkZWZzLCAjZWxzZXMsIG9yICNlbmRpZnMiKSkpKSkp CisgICAgICAgIChoaWYtZmluZC1wcmV2aW91cy1yZWxldmFudCkKKyAgICAgICAgKGlmICg9IHN0 YXJ0IChwb2ludCkpCisgICAgICAgICAgICAoZXJyb3IgIk5vIHByZXZpb3VzICNpZmRlZnMsICNl bHNlcywgb3IgI2VuZGlmcyIpKSkpKSkKCgogOzs9PT0lJVNGJSUgcGFyc2luZyAoRW5kKSAgPT09 CkBAIC0xMzIzLDcgKzEzMjgsNiBAQCBXaXRoIGFyZ3VtZW50LCBkbyB0aGlzIHRoYXQgbWFueSB0 aW1lcy4iCiAoZGVmc3Vic3QgaGlmLXJhbmdlLWVsaWYgKHJhbmdlKSAoZWx0IHJhbmdlIDMpKQoK Ci0KIDs7IEZpbmQtUmFuZ2UKIDs7IFRoZSB3b3JraG9yc2UsIGl0IGRlbGltaXRzIHRoZSAjaWYg cmVnaW9uLiAgUmVhc29uYWJseSBzaW1wbGU6CiA7OyBTa2lwIHVudGlsIGFuICNlbHNlIG9yICNl bmRpZiBpcyBmb3VuZCwgcmVtZW1iZXJpbmcgcG9zaXRpb25zLiAgSWYKQEAgLTEzMzcsMzEgKzEz NDEsMzEgQEAgUG9pbnQgaXMgbGVmdCB1bmNoYW5nZWQuIgogICAgIChiZWdpbm5pbmctb2YtbGlu ZSkKICAgICAobGV0ICgoc3RhcnQgKHBvaW50KSkKICAgICAgICAgICAoZWxpZiBuaWwpCi0JICAo ZWxzZSBuaWwpCi0JICAoZW5kIG5pbCkpCisgICAgICAgICAgKGVsc2UgbmlsKQorICAgICAgICAg IChlbmQgbmlsKSkKICAgICAgIDs7IFBhcnQgb25lLiAgTG9vayBmb3IgZWl0aGVyICNlbGlmLCAj ZWxzZSBvciAjZW5kaWYuCiAgICAgICA7OyBUaGlzIGxvb3AtYW5kLWEtaGFsZiBkZWRpY2F0ZWQg dG8gRS4gRGlqa3N0cmEuCiAgICAgICAod2hpbGUgKGFuZCAobm90IGVsc2UpIChub3QgZW5kKSkK LSAgICAgICh3aGlsZSAocHJvZ24KLQkgICAgICAgKGhpZi1maW5kLW5leHQtcmVsZXZhbnQpCi0J ICAgICAgIChoaWYtbG9va2luZy1hdC1pZlgpKQkJOyBTa2lwIG5lc3RlZCBpZmRlZgotCShoaWYt aWZkZWYtdG8tZW5kaWYpKQorICAgICAgICAod2hpbGUgKHByb2duCisgICAgICAgICAgICAgICAg IChoaWYtZmluZC1uZXh0LXJlbGV2YW50KQorICAgICAgICAgICAgICAgICAoaGlmLWxvb2tpbmct YXQtaWZYKSkgICAgICAgICAgOyBTa2lwIG5lc3RlZCBpZmRlZgorICAgICAgICAgIChoaWYtaWZk ZWYtdG8tZW5kaWYpKQogICAgICAgICA7OyBGb3VuZCBlaXRoZXIgYSAjZWxzZSwgI2VsaWYsIG9y IGFuICNlbmRpZi4KICAgICAgICAgKGNvbmQgKChoaWYtbG9va2luZy1hdC1lbGlmKQogICAgICAg ICAgICAgICAgKHNldHEgZWxpZiAobmNvbmMgZWxpZiAobGlzdCAocG9pbnQpKSkpKQogICAgICAg ICAgICAgICAoKGhpZi1sb29raW5nLWF0LWVsc2UpCi0JICAgICAoc2V0cSBlbHNlIChwb2ludCkp KQotCSAgICAodAorICAgICAgICAgICAgICAgKHNldHEgZWxzZSAocG9pbnQpKSkKKyAgICAgICAg ICAgICAgKHQKICAgICAgICAgICAgICAgIChzZXRxIGVuZCAocG9pbnQpKSkpKQogICAgICAgOzsg SWYgZm91bmQgI2Vsc2UsIGxvb2sgZm9yICNlbmRpZi4KICAgICAgICh3aGVuIGVsc2UKLQkod2hp bGUgKHByb2duCi0JCSAoaGlmLWZpbmQtbmV4dC1yZWxldmFudCkKLQkJIChoaWYtbG9va2luZy1h dC1pZlgpKQk7IFNraXAgbmVzdGVkIGlmZGVmCi0JICAoaGlmLWlmZGVmLXRvLWVuZGlmKSkKLQko aWYgKGhpZi1sb29raW5nLWF0LWVsc2UpCi0JICAgIChlcnJvciAiRm91bmQgdHdvIGVsc2VzIGlu IGEgcm93PyAgQnJva2VuISIpKQotCShzZXRxIGVuZCAocG9pbnQpKSkJICAgICAgIDsgKGxpbmUt ZW5kLXBvc2l0aW9uKQorICAgICAgICAod2hpbGUgKHByb2duCisgICAgICAgICAgICAgICAgICho aWYtZmluZC1uZXh0LXJlbGV2YW50KQorICAgICAgICAgICAgICAgICAoaGlmLWxvb2tpbmctYXQt aWZYKSkgIDsgU2tpcCBuZXN0ZWQgaWZkZWYKKyAgICAgICAgICAoaGlmLWlmZGVmLXRvLWVuZGlm KSkKKyAgICAgICAgKGlmIChoaWYtbG9va2luZy1hdC1lbHNlKQorICAgICAgICAgICAgKGVycm9y ICJGb3VuZCB0d28gZWxzZXMgaW4gYSByb3c/ICBCcm9rZW4hIikpCisgICAgICAgIChzZXRxIGVu ZCAocG9pbnQpKSkgICAgICAgICAgICA7IChsaW5lLWVuZC1wb3NpdGlvbikKICAgICAgIChoaWYt bWFrZS1yYW5nZSBzdGFydCBlbmQgZWxzZSBlbGlmKSkpKQoKCkBAIC0xNDI4LDYgKzE0MzIsNyBA QCBJdCB1c2VzIHRoZSBqdWRnbWVudCBvZiBgaGlkZS1pZmRlZi1ldmFsdWF0b3InLiIKICAgICA7 OyAobWVzc2FnZSAidGVzdCA9ICVzIiB0ZXN0KSAoc2l0LWZvciAxKQoKICAgICAoaGlmLWhpZGUt bGluZSAoaGlmLXJhbmdlLWVuZCByYW5nZSkpCisKICAgICAod2hpbGUgKG5vdCBjb21wbGV0ZSkK ICAgICAgIChpZiAoYW5kIChub3QgKGFuZCBleHBhbmQtcmVpbmNsdXNpb24gaWYtcGFydCkpCiAg ICAgICAgICAgICAgICAoaGlmLW5vdCAoZnVuY2FsbCBoaWRlLWlmZGVmLWV2YWx1YXRvciB0ZXN0 KSkpCkBAIC0xNDY4LDE1ICsxNDczLDE2IEBAIEl0IHVzZXMgdGhlIGp1ZGdtZW50IG9mIGBoaWRl LWlmZGVmLWV2YWx1YXRvcicuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxp ZikpKQogICAgICAgICAgICAgICAoKGhpZi1yYW5nZS1lbHNlIHJhbmdlKQogICAgICAgICAgICAg ICAgOzsgQ2FzZSAxIC0gSGlkZSAjZWxpZiBhbmQgI2Vsc2UgYmxvY2tzLCByZWN1cnNlICNpZlgK LQkgICAgICAgKGhpZi1oaWRlLWxpbmUgKGhpZi1yYW5nZS1lbHNlIHJhbmdlKSkKLQkgICAgICAg KGhpZGUtaWZkZWYtcmVnaW9uIChoaWYtcmFuZ2UtZWxzZSByYW5nZSkKLQkJCQkgICgxLSAoaGlm LXJhbmdlLWVuZCByYW5nZSkpKQotCSAgICAgICAoaGlmLXJlY3Vyc2Utb24gKGhpZi1yYW5nZS1z dGFydCByYW5nZSkKLQkJCSAgICAgICAoaGlmLXJhbmdlLWVsc2UgcmFuZ2UpKSkKKyAgICAgICAg ICAgICAgIChoaWYtaGlkZS1saW5lIChoaWYtcmFuZ2UtZWxzZSByYW5nZSkpCisgICAgICAgICAg ICAgICAoaGlkZS1pZmRlZi1yZWdpb24gKGhpZi1yYW5nZS1lbHNlIHJhbmdlKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgxLSAoaGlmLXJhbmdlLWVuZCByYW5nZSkpKQorICAg ICAgICAgICAgICAgKGhpZi1yZWN1cnNlLW9uIChoaWYtcmFuZ2Utc3RhcnQgcmFuZ2UpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhpZi1yYW5nZS1lbHNlIHJhbmdlKSkpCisKICAg ICAgICAgICAgICAgKHQKICAgICAgICAgICAgICAgIDs7IENhc2UgMiAtIE5vICNlbHNlLCBqdXN0 IHJlY3Vyc2UgI2lmWAotCSAgICAgICAoaGlmLXJlY3Vyc2Utb24gKGhpZi1yYW5nZS1zdGFydCBy YW5nZSkKLQkJCSAgICAgICAoaGlmLXJhbmdlLWVuZCByYW5nZSkpKSkKKyAgICAgICAgICAgICAg IChoaWYtcmVjdXJzZS1vbiAoaGlmLXJhbmdlLXN0YXJ0IHJhbmdlKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChoaWYtcmFuZ2UtZW5kIHJhbmdlKSkpKQogICAgICAgICAoc2V0cSBj b21wbGV0ZSB0KSkKICAgICAgIChzZXRxIGlmLXBhcnQgbmlsKSkKCkBAIC0xNDg0LDYgKzE0OTAs OCBAQCBJdCB1c2VzIHRoZSBqdWRnbWVudCBvZiBgaGlkZS1pZmRlZi1ldmFsdWF0b3InLiIKICAg ICAoaGlmLWhpZGUtbGluZSAoaGlmLXJhbmdlLXN0YXJ0IHJhbmdlKSkgOyBBbHdheXMgaGlkZSBz dGFydC4KICAgICAoZ290by1jaGFyIChoaWYtcmFuZ2UtZW5kIHJhbmdlKSkKICAgICAoZW5kLW9m LWxpbmUpKSkKKworCiAoZGVmdW4gaGlmLWV2YWx1YXRlLXJlZ2lvbiAoc3RhcnQgZW5kKQogICAo bGV0KiAoKHRva2VucyAoaWdub3JlLWVycm9ycyA7OyBwcmV2ZW50IEMgc3RhdGVtZW50IHRoaW5n cyBsaWtlICdkbyB7IC4uLiB9IHdoaWxlICgwKScKICAgICAgICAgICAgICAgICAgICAoaGlmLXRv a2VuaXplIHN0YXJ0IGVuZCkpKQpAQCAtMTYyOSw3ICsxNjM3LDcgQEAgSXQgZG9lcyBub3QgZG8g dGhlIHdvcmsgdGhhdCdzIHBvaW50bGVzcyB0byByZWRvIG9uIGEgcmVjdXJzaXZlIGVudHJ5LiIK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1uYW1l IChjdXJyZW50LWJ1ZmZlcikpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHplcm9w IGhpZi1yZWN1cnNlLWxldmVsKSkpCiAgICAgICAgICAgbWluIG1heCkKLSAgICAoZ290by1jaGFy IChwb2ludC1taW4pKQorICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKICAgICAgIChzZXRm IG1pbiAocG9pbnQpKQogICAgICAgKGxvb3AgZG8KICAgICAgICAgICAgIChzZXRmIG1heCAoaGlm LWZpbmQtYW55LWlmWCkpCkBAIC0xNjQxLDcgKzE2NDksNiBAQCBJdCBkb2VzIG5vdCBkbyB0aGUg d29yayB0aGF0J3MgcG9pbnRsZXNzIHRvIHJlZG8gb24gYSByZWN1cnNpdmUgZW50cnkuIgoKIDs7 PT09JSVTRiUlIGhpZGUtaWZkZWYtaGlkaW5nIChFbmQpICA9PT0KCi0KIDs7PT09JSVTRiUlIGV4 cG9ydHMgKFN0YXJ0KSAgPT09CgogKGRlZnVuIGhpZGUtaWZkZWYtdG9nZ2xlLXJlYWQtb25seSAo KQpAQCAtMTY0OSw3ICsxNjU2LDcgQEAgSXQgZG9lcyBub3QgZG8gdGhlIHdvcmsgdGhhdCdzIHBv aW50bGVzcyB0byByZWRvIG9uIGEgcmVjdXJzaXZlIGVudHJ5LiIKICAgKGludGVyYWN0aXZlKQog ICAoc2V0cSBoaWRlLWlmZGVmLXJlYWQtb25seSAobm90IGhpZGUtaWZkZWYtcmVhZC1vbmx5KSkK ICAgKG1lc3NhZ2UgIkhpZGUtUmVhZC1Pbmx5ICVzIgotCSAgIChpZiBoaWRlLWlmZGVmLXJlYWQt b25seSAiT04iICJPRkYiKSkKKyAgICAgICAgICAgKGlmIGhpZGUtaWZkZWYtcmVhZC1vbmx5ICJP TiIgIk9GRiIpKQogICAoaWYgaGlkZS1pZmRlZi1oaWRpbmcKICAgICAgIChzZXRxIGJ1ZmZlci1y ZWFkLW9ubHkgKG9yIGhpZGUtaWZkZWYtcmVhZC1vbmx5IGhpZi1vdXRzaWRlLXJlYWQtb25seSkp KQogICAoZm9yY2UtbW9kZS1saW5lLXVwZGF0ZSkpCkBAIC0xNjU5LDEwICsxNjY2LDEwIEBAIEl0 IGRvZXMgbm90IGRvIHRoZSB3b3JrIHRoYXQncyBwb2ludGxlc3MgdG8gcmVkbyBvbiBhIHJlY3Vy c2l2ZSBlbnRyeS4iCiAgIChpbnRlcmFjdGl2ZSkKICAgKHNldHEgaGlmLW91dHNpZGUtcmVhZC1v bmx5IChub3QgaGlmLW91dHNpZGUtcmVhZC1vbmx5KSkKICAgKG1lc3NhZ2UgIlJlYWQgb25seSAl cyIKLQkgICAoaWYgaGlmLW91dHNpZGUtcmVhZC1vbmx5ICJPTiIgIk9GRiIpKQorICAgICAgICAg ICAoaWYgaGlmLW91dHNpZGUtcmVhZC1vbmx5ICJPTiIgIk9GRiIpKQogICAoc2V0cSBidWZmZXIt cmVhZC1vbmx5Ci0JKG9yIChhbmQgaGlkZS1pZmRlZi1oaWRpbmcgaGlkZS1pZmRlZi1yZWFkLW9u bHkpCi0JICAgIGhpZi1vdXRzaWRlLXJlYWQtb25seSkpCisgICAgICAgIChvciAoYW5kIGhpZGUt aWZkZWYtaGlkaW5nIGhpZGUtaWZkZWYtcmVhZC1vbmx5KQorICAgICAgICAgICAgaGlmLW91dHNp ZGUtcmVhZC1vbmx5KSkKICAgKGZvcmNlLW1vZGUtbGluZS11cGRhdGUpKQoKIChkZWZ1biBoaWRl LWlmZGVmLXRvZ2dsZS1zaGFkb3dpbmcgKCkKQEAgLTE2NzQsMTIgKzE2ODEsMTIgQEAgSXQgZG9l cyBub3QgZG8gdGhlIHdvcmsgdGhhdCdzIHBvaW50bGVzcyB0byByZWRvIG9uIGEgcmVjdXJzaXZl IGVudHJ5LiIKICAgICAod2lkZW4pCiAgICAgKGRvbGlzdCAob3ZlcmxheSAob3ZlcmxheXMtaW4g KHBvaW50LW1pbikgKHBvaW50LW1heCkpKQogICAgICAgKHdoZW4gKG92ZXJsYXktZ2V0IG92ZXJs YXkgJ2hpZGUtaWZkZWYpCi0JKGlmIGhpZGUtaWZkZWYtc2hhZG93Ci0JICAgIChwcm9nbgotCSAg ICAgIChvdmVybGF5LXB1dCBvdmVybGF5ICdpbnZpc2libGUgbmlsKQotCSAgICAgIChvdmVybGF5 LXB1dCBvdmVybGF5ICdmYWNlICdoaWRlLWlmZGVmLXNoYWRvdykpCi0JICAob3ZlcmxheS1wdXQg b3ZlcmxheSAnZmFjZSBuaWwpCi0JICAob3ZlcmxheS1wdXQgb3ZlcmxheSAnaW52aXNpYmxlICdo aWRlLWlmZGVmKSkpKSkpCisgICAgICAgIChpZiBoaWRlLWlmZGVmLXNoYWRvdworICAgICAgICAg ICAgKHByb2duCisgICAgICAgICAgICAgIChvdmVybGF5LXB1dCBvdmVybGF5ICdpbnZpc2libGUg bmlsKQorICAgICAgICAgICAgICAob3ZlcmxheS1wdXQgb3ZlcmxheSAnZmFjZSAnaGlkZS1pZmRl Zi1zaGFkb3cpKQorICAgICAgICAgIChvdmVybGF5LXB1dCBvdmVybGF5ICdmYWNlIG5pbCkKKyAg ICAgICAgICAob3ZlcmxheS1wdXQgb3ZlcmxheSAnaW52aXNpYmxlICdoaWRlLWlmZGVmKSkpKSkp CgogKGRlZnVuIGhpZGUtaWZkZWYtZGVmaW5lICh2YXIgdmFsKQogICAiRGVmaW5lIGEgVkFSLCBv cHRpb25hbGx5IHRvIGEgc3BlY2lmaWMgdmFsdWUsIHNvIHRoYXQgI2lmZGVmIFZBUgpAQCAtMTY5 OSw3ICsxNzA2LDcgQEAgd291bGQgYmUgaW5jbHVkZWQuIgogICAgKGhpZi1zZXQtdmFyIHZhciAo b3IgdmFsIDEpKQogICAgKG1lc3NhZ2UgIiVzIHNldCB0byAlcyIgdmFyIChvciB2YWwgMSkpCiAg ICAoc2xlZXAtZm9yIDEpCi0gIChpZiBoaWRlLWlmZGVmLWhpZGluZyAoaGlkZS1pZmRlZnMpKSkK KyAgIChpZiBoaWRlLWlmZGVmLWhpZGluZyAoaGlkZS1pZmRlZnMpKSkKCiAoZGVmdW4gaGlmLXVu ZGVmaW5lLXN5bWJvbCAodmFyKQogICAoc2V0cSBoaWRlLWlmZGVmLWVudgpAQCAtMTcxMSw2ICsx NzE4LDcgQEAgd291bGQgYmUgaW5jbHVkZWQuIgogOzsgIDs7KGhpZi1zZXQtdmFyIHZhciBuaWwp OztMdWtlIGZpeGVkOiBzZXQgaXQgbmlsIGlzIHN0aWxsIGNvbnNpZGVyZWQgZGVmaW5lZCBzbyAj aWZkZWYgVkFSIGlzIHN0aWxsIHRydWUuCiA7OyAgKGhpZi11bmRlZmluZS1zeW1ib2wgdmFyKQog OzsgIChpZiBoaWRlLWlmZGVmLWhpZGluZyAoaGlkZS1pZmRlZnMpKSkKKwogKGRlZnVuIGhpZGUt aWZkZWYtdW5kZWYgKHN0YXJ0IGVuZCkKICAgIlVuZGVmaW5lIGEgVkFSIHNvIHRoYXQgI2lmZGVm IFZBUiB3b3VsZCBub3QgYmUgaW5jbHVkZWQuIgogICAoaW50ZXJhY3RpdmUgInIiKQpAQCAtMTcz OSwxNCArMTc0NywxNCBAQCBUdXJuIG9mZiBoaWRpbmcgYnkgY2FsbGluZyBgc2hvdy1pZmRlZnMn LiIKICAgKGxldCAoKGhpZGUtaWZkZWYtbGluZXMgY3VycmVudC1wcmVmaXgtYXJnKSkKICAgICAo b3Igbm9tc2cKICAgICAgICAgKG1lc3NhZ2UgIkhpZGluZy4uLiIpKQotICAoc2V0cSBoaWYtb3V0 c2lkZS1yZWFkLW9ubHkgYnVmZmVyLXJlYWQtb25seSkKLSAgKHVubGVzcyBoaWRlLWlmZGVmLW1v ZGUgKGhpZGUtaWZkZWYtbW9kZSAxKSkgOyB0dXJuIG9uIGhpZGUtaWZkZWYtbW9kZQotICAoaWYg aGlkZS1pZmRlZi1oaWRpbmcKLSAgICAgIChzaG93LWlmZGVmcykpCQkJOyBPdGhlcndpc2UsIGRl ZXAgY29uZnVzaW9uLgotICAoc2V0cSBoaWRlLWlmZGVmLWhpZGluZyB0KQotICAoaGlkZS1pZmRl Zi1ndXRzKQotICAoc2V0cSBidWZmZXItcmVhZC1vbmx5IChvciBoaWRlLWlmZGVmLXJlYWQtb25s eSBoaWYtb3V0c2lkZS1yZWFkLW9ubHkpKQotICAob3Igbm9tc2cKKyAgICAoc2V0cSBoaWYtb3V0 c2lkZS1yZWFkLW9ubHkgYnVmZmVyLXJlYWQtb25seSkKKyAgICAodW5sZXNzIGhpZGUtaWZkZWYt bW9kZSAoaGlkZS1pZmRlZi1tb2RlIDEpKSA7IHR1cm4gb24gaGlkZS1pZmRlZi1tb2RlCisgICAg KGlmIGhpZGUtaWZkZWYtaGlkaW5nCisgICAgICAgIChzaG93LWlmZGVmcykpICAgICAgICAgICAg ICAgICAgICA7IE90aGVyd2lzZSwgZGVlcCBjb25mdXNpb24uCisgICAgKHNldHEgaGlkZS1pZmRl Zi1oaWRpbmcgdCkKKyAgICAoaGlkZS1pZmRlZi1ndXRzKQorICAgIChzZXRxIGJ1ZmZlci1yZWFk LW9ubHkgKG9yIGhpZGUtaWZkZWYtcmVhZC1vbmx5IGhpZi1vdXRzaWRlLXJlYWQtb25seSkpCisg ICAgKG9yIG5vbXNnCiAgICAgICAgIChtZXNzYWdlICJIaWRpbmcgZG9uZSIpKSkpCgoKQEAgLTE3 NzcsMjQgKzE3ODUsMjMgQEAgUmV0dXJuIGFzIChUT1AgLiBCT1RUT00pIHRoZSBleHRlbnQgb2Yg aWZkZWYgYmxvY2suIgogICAgICAgICAgICAocG9pbnQpKQogICAgICAgICAgKHByb2duIChjLWZv cndhcmQtY29uZGl0aW9uYWwtd2l0aC1lbHNlIDEpICgxLSAocG9pbnQpKSkpKQogICAgIDs7IG9y aWdpbmFsIGltcGxlbWVudGF0aW9uIGluIGhpZGVpZi5lbAotICAobGV0IChtYXgtYm90dG9tKQot ICAgIChjb25zIChzYXZlLWV4Y3Vyc2lvbgotCSAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCi0JICAg ICh1bmxlc3MgKG9yIChoaWYtbG9va2luZy1hdC1lbHNlKSAoaGlmLWxvb2tpbmctYXQtaWZYKSkK LQkgICAgICAodXAtaWZkZWYpKQotCSAgICAocHJvZzEgKHBvaW50KQotCSAgICAgIChoaWYtaWZk ZWYtdG8tZW5kaWYpCi0JICAgICAgKHNldHEgbWF4LWJvdHRvbSAoMS0gKHBvaW50KSkpKSkKLQkg IChzYXZlLWV4Y3Vyc2lvbgotCSAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCi0JICAgICh1bmxlc3Mg KGhpZi1sb29raW5nLWF0LWVuZGlmKQotCSAgICAgIChoaWYtZmluZC1uZXh0LXJlbGV2YW50KSkK LQkgICAgKHdoaWxlIChoaWYtbG9va2luZy1hdC1pZlgpCi0JICAgICAgKGhpZi1pZmRlZi10by1l bmRpZikKLQkgICAgICAoaGlmLWZpbmQtbmV4dC1yZWxldmFudCkpCisgICAgKGxldCAobWF4LWJv dHRvbSkKKyAgICAgIChjb25zIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAoYmVnaW5u aW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgICh1bmxlc3MgKG9yIChoaWYtbG9va2luZy1hdC1l bHNlKSAoaGlmLWxvb2tpbmctYXQtaWZYKSkKKyAgICAgICAgICAgICAgICAodXAtaWZkZWYpKQor ICAgICAgICAgICAgICAocHJvZzEgKHBvaW50KQorICAgICAgICAgICAgICAgIChoaWYtaWZkZWYt dG8tZW5kaWYpCisgICAgICAgICAgICAgICAgKHNldHEgbWF4LWJvdHRvbSAoMS0gKHBvaW50KSkp KSkKKyAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAoYmVnaW5uaW5n LW9mLWxpbmUpCisgICAgICAgICAgICAgICh1bmxlc3MgKGhpZi1sb29raW5nLWF0LWVuZGlmKQor ICAgICAgICAgICAgICAgIChoaWYtZmluZC1uZXh0LXJlbGV2YW50KSkKKyAgICAgICAgICAgICAg KHdoaWxlIChoaWYtbG9va2luZy1hdC1pZlgpCisgICAgICAgICAgICAgICAgKGhpZi1pZmRlZi10 by1lbmRpZikKKyAgICAgICAgICAgICAgICAoaGlmLWZpbmQtbmV4dC1yZWxldmFudCkpCiAgICAg ICAgICAgICAgIChtaW4gbWF4LWJvdHRvbSAoMS0gKHBvaW50KSkpKSkpKSkKCi0KIChkZWZ1biBo aWRlLWlmZGVmLWJsb2NrICgmb3B0aW9uYWwgc3RhcnQgZW5kKQogICAiSGlkZSB0aGUgaWZkZWYg YmxvY2sgKHRydWUgb3IgZmFsc2UgcGFydCkgZW5jbG9zaW5nIG9yIGJlZm9yZSB0aGUgY3Vyc29y LgogSWYgcHJlZml4ZWQsIGl0IHdpbGwgYWxzbyBoaWRlICNpZmRlZnMgdGhlbXNlbHZlcy4iCkBA IC0xODA0LDEzICsxODExLDEzIEBAIElmIHByZWZpeGVkLCBpdCB3aWxsIGFsc28gaGlkZSAjaWZk ZWZzIHRoZW1zZWx2ZXMuIgogICAgICAgICAobGV0ICgoaGlmLXJlY3Vyc2UtbGV2ZWwgKDErIGhp Zi1yZWN1cnNlLWxldmVsKSkpCiAgICAgICAgICAgKGhpZi1yZWN1cnNlLW9uIHN0YXJ0IGVuZCB0 KQogICAgICAgICAgIChzZXRxIG1hcmstYWN0aXZlIG5pbCkpCi0gICh1bmxlc3MgaGlkZS1pZmRl Zi1tb2RlIChoaWRlLWlmZGVmLW1vZGUgMSkpCi0gIChsZXQgKCh0b3AtYm90dG9tIChoaWYtZmlu ZC1pZmRlZi1ibG9jaykpKQotICAgIChoaWRlLWlmZGVmLXJlZ2lvbiAoY2FyIHRvcC1ib3R0b20p IChjZHIgdG9wLWJvdHRvbSkpCi0gICAgKHdoZW4gaGlkZS1pZmRlZi1saW5lcwotICAgICAgKGhp Zi1oaWRlLWxpbmUgKGNhciB0b3AtYm90dG9tKSkKLSAgICAgIChoaWYtaGlkZS1saW5lICgxKyAo Y2RyIHRvcC1ib3R0b20pKSkpCi0gICAgKHNldHEgaGlkZS1pZmRlZi1oaWRpbmcgdCkpCisgICAg ICAodW5sZXNzIGhpZGUtaWZkZWYtbW9kZSAoaGlkZS1pZmRlZi1tb2RlIDEpKQorICAgICAgKGxl dCAoKHRvcC1ib3R0b20gKGhpZi1maW5kLWlmZGVmLWJsb2NrKSkpCisgICAgICAgIChoaWRlLWlm ZGVmLXJlZ2lvbiAoY2FyIHRvcC1ib3R0b20pIChjZHIgdG9wLWJvdHRvbSkpCisgICAgICAgICh3 aGVuIGhpZGUtaWZkZWYtbGluZXMKKyAgICAgICAgICAoaGlmLWhpZGUtbGluZSAoY2FyIHRvcC1i b3R0b20pKQorICAgICAgICAgIChoaWYtaGlkZS1saW5lICgxKyAoY2RyIHRvcC1ib3R0b20pKSkp CisgICAgICAgIChzZXRxIGhpZGUtaWZkZWYtaGlkaW5nIHQpKQogICAgICAgKHNldHEgYnVmZmVy LXJlYWQtb25seSAob3IgaGlkZS1pZmRlZi1yZWFkLW9ubHkgaGlmLW91dHNpZGUtcmVhZC1vbmx5 KSkpKSkKCiAoZGVmdW4gc2hvdy1pZmRlZi1ibG9jayAoJm9wdGlvbmFsIHN0YXJ0IGVuZCkKQEAg LTE4MzAsMTMgKzE4MzcsMTMgQEAgSWYgcHJlZml4ZWQsIGl0IHdpbGwgYWxzbyBoaWRlICNpZmRl ZnMgdGhlbXNlbHZlcy4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtaW4gKHBvaW50 LW1heCkgKDErIChwb2ludCkpKSkpCiAgICAgICAgICAgKGRlbCBuaWwpKQogICAgICAgKGlmIHRv cC1ib3R0b20KLSAgICAoaWYgaGlkZS1pZmRlZi1saW5lcwotIAkoaGlmLXNob3ctaWZkZWYtcmVn aW9uCi0gCSAoc2F2ZS1leGN1cnNpb24KLSAJICAgKGdvdG8tY2hhciAoY2FyIHRvcC1ib3R0b20p KSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKQotIAkgKHNhdmUtZXhjdXJzaW9uCi0gCSAgIChn b3RvLWNoYXIgKDErIChjZHIgdG9wLWJvdHRvbSkpKQotCSAgIChoaWYtZW5kLW9mLWxpbmUpIChw b2ludCkpKQorICAgICAgICAgIChpZiBoaWRlLWlmZGVmLWxpbmVzCisgICAgICAgICAgICAgICho aWYtc2hvdy1pZmRlZi1yZWdpb24KKyAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAg ICAgICAgICAgICAgICAoZ290by1jaGFyIChjYXIgdG9wLWJvdHRvbSkpIChsaW5lLWJlZ2lubmlu Zy1wb3NpdGlvbikpCisgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAg ICAgICAgKGdvdG8tY2hhciAoMSsgKGNkciB0b3AtYm90dG9tKSkpCisgICAgICAgICAgICAgICAg IChoaWYtZW5kLW9mLWxpbmUpIChwb2ludCkpKQogICAgICAgICAgICAgKHNldGYgZGVsIChoaWYt c2hvdy1pZmRlZi1yZWdpb24gKDEtIChjYXIgdG9wLWJvdHRvbSkpIChjZHIgdG9wLWJvdHRvbSkp KSkpCiAgICAgICAoaWYgKG5vdCAoYW5kIHRvcC1ib3R0b20KICAgICAgICAgICAgICAgICAgICAg ZGVsKSkKQEAgLTE4NDYsNyArMTg1Myw2IEBAIElmIHByZWZpeGVkLCBpdCB3aWxsIGFsc28gaGlk ZSAjaWZkZWZzIHRoZW1zZWx2ZXMuIgogICAgICAgICAgICAgKGlmIChvdmVybGF5LWdldCBvICdo aWRlLWlmZGVmKQogICAgICAgICAgICAgICAgIChkZWxldGUtb3ZlcmxheSBvKSkpKSkpKQoKLQog Ozs7ICBkZWZpbml0aW9uIGFsaXN0IHN1cHBvcnQKCiAoZGVmdmFyIGhpZGUtaWZkZWYtZGVmaW5l LWFsaXN0IG5pbApAQCAtMTg2MiwyNSArMTg2OCwyNiBAQCBJZiBwcmVmaXhlZCwgaXQgd2lsbCBh bHNvIGhpZGUgI2lmZGVmcyB0aGVtc2VsdmVzLiIKICAgIlNldCB0aGUgYXNzb2NpYXRpb24gZm9y IE5BTUUgdG8gYGhpZGUtaWZkZWYtZW52Jy4iCiAgIChpbnRlcmFjdGl2ZSAiU1NldCBkZWZpbmUg bGlzdDogIikKICAgKHB1c2ggKGNvbnMgbmFtZSAoaGlmLWNvbXByZXNzLWRlZmluZS1saXN0IGhp ZGUtaWZkZWYtZW52KSkKLQloaWRlLWlmZGVmLWRlZmluZS1hbGlzdCkpCisgICAgICAgIGhpZGUt aWZkZWYtZGVmaW5lLWFsaXN0KSkKCiAoZGVmdW4gaGlkZS1pZmRlZi11c2UtZGVmaW5lLWFsaXN0 IChuYW1lKQogICAiU2V0IGBoaWRlLWlmZGVmLWVudicgdG8gdGhlIGRlZmluZSBsaXN0IHNwZWNp ZmllZCBieSBOQU1FLiIKICAgKGludGVyYWN0aXZlCiAgICAobGlzdCAoY29tcGxldGluZy1yZWFk ICJVc2UgZGVmaW5lIGxpc3Q6ICIKLQkJCSAgKG1hcGNhciAobGFtYmRhICh4KSAoc3ltYm9sLW5h bWUgKGNhciB4KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIgKGxhbWJkYSAo eCkgKHN5bWJvbC1uYW1lIChjYXIgeCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGhpZGUtaWZkZWYtZGVmaW5lLWFsaXN0KQogICAgICAgICAgICAgICAgICAgICAgICAgICBu aWwgdCkpKQogICAoaWYgKHN0cmluZ3AgbmFtZSkgKHNldHEgbmFtZSAoaW50ZXJuIG5hbWUpKSkK ICAgKGxldCAoKGRlZmluZS1saXN0IChhc3NvYyBuYW1lIGhpZGUtaWZkZWYtZGVmaW5lLWFsaXN0 KSkpCiAgICAgKGlmIGRlZmluZS1saXN0Ci0JKHNldHEgaGlkZS1pZmRlZi1lbnYKLQkgICAgICAo bWFwY2FyIChsYW1iZGEgKGFyZykgKGNvbnMgYXJnIHQpKQotCQkgICAgICAoY2RyIGRlZmluZS1s aXN0KSkpCisgICAgICAgIChzZXRxIGhpZGUtaWZkZWYtZW52CisgICAgICAgICAgICAgIChtYXBj YXIgKGxhbWJkYSAoYXJnKSAoY29ucyBhcmcgdCkpCisgICAgICAgICAgICAgICAgICAgICAgKGNk ciBkZWZpbmUtbGlzdCkpKQogICAgICAgKGVycm9yICJObyBkZWZpbmUgbGlzdCBmb3IgJXMiIG5h bWUpKQogICAgIChpZiBoaWRlLWlmZGVmLWhpZGluZyAoaGlkZS1pZmRlZnMpKSkpCgogKHByb3Zp ZGUgJ2hpZGVpZikKKwogOzsgTG9jYWwgdmFyaWFibGVzOgogOzsgYnl0ZS1jb21waWxlLXdhcm5p bmdzOiAobm90IGNsLWZ1bmN0aW9ucykKIDs7IEVuZDoKLS0KMS44LjMuMjQuZzY3YjA5OTgKCg== --047d7b5d6752a852f304ecb71110--