Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hTKBf-0003Tl-GF for pgadmin-hackers@arkaria.postgresql.org; Wed, 22 May 2019 05:53:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hTKBe-0008BR-Aa for pgadmin-hackers@arkaria.postgresql.org; Wed, 22 May 2019 05:53:14 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hTKBd-0008Ah-My for pgadmin-hackers@lists.postgresql.org; Wed, 22 May 2019 05:53:14 +0000 Received: from mail-lf1-x133.google.com ([2a00:1450:4864:20::133]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hTKBa-0004iT-F3 for pgadmin-hackers@postgresql.org; Wed, 22 May 2019 05:53:12 +0000 Received: by mail-lf1-x133.google.com with SMTP id h13so695553lfc.7 for ; Tue, 21 May 2019 22:53:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=0clrN1A1f2tmVtg+2K0a/DaVM1MPsL/yU9qLD1CjRw0=; b=aEk2fZuN1ujNu+SCovvfpnQCdSO6Qohtmrmd5esZKYCL+SgEhvGUuEA/K/J2yQuEqt TUvO7KjJX6sLJH7BuNr662RY9mc1tcWJrIuldJcgrPQHj161bNXL1d89UexUqxo0LbJC Rqm/j46pcNtSfj0xb2t0vbdMf+bD5Hc9XCPgXh1ZiDb5Q58/RcViBraRs/JO6mu6B63e QmMmbBY1gaaY9ZXLftgnXtAYzIKNQqX373qYhp3Sk+M8q3FphG/iJ+oUwnpoEdery9tZ /wln47pb5eSK+dvefPrAl6pvokS/BLjVRBg2IQ8yYFp7sumjYrPPVAx7EjQKl20G9KMk NflA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=0clrN1A1f2tmVtg+2K0a/DaVM1MPsL/yU9qLD1CjRw0=; b=roLlWeaMQlQeBt0DUp7n2v3/wOD/hW1uZ2AQotbi6ZuWflHm1vWfkDfNut90LjWf9V 6L9wApi3mMLRsD73SoCUVHATNkfTyhfLbLPDUgyibblnW56DAhGRiPqlIWC0ccjYj+CR PQl7YV7s+7Qw8z18x0ItgjxcVuFfErnTdX/kUzHyhVtiQhLCQo/hYHe09OMCQUnBLN4t wnasT6qPskyjr15J2wJtQ2Px8oZ9dBAMwC75J7V5NsI56f7NMteJpiYgVEaYZEx2fyls qpqY+Z5R1Q0SqKjAkzkz4SyWyFFezjNXFzHIJlnWUMczcfcW2C8/SP2uQqv4UOYPsb71 3yiw== X-Gm-Message-State: APjAAAWaZ7wCHwi74TwJWQzeSpQi2CISqASVxFYJZTgGn2xWFQLswoOm aRqFXLscR0sxqEcuLvEs3YXTyQSI6TGJmcF/psQrOA== X-Google-Smtp-Source: APXvYqyHwzxlDnL+hwnPFqqT8EvM1iNI2/rjiT4VRgATzzAVTeedwaex8yBjTmkPocZ8n1OrsB105zByt+j7hoF9BGo= X-Received: by 2002:a19:700d:: with SMTP id h13mr4678854lfc.39.1558504387983; Tue, 21 May 2019 22:53:07 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Aditya Toshniwal Date: Wed, 22 May 2019 11:22:31 +0530 Message-ID: Subject: Re: [pgAdmin][RM4195] Tab navigation is broken in Query tool (Accessibility) To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="0000000000006d734f05897394e7" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --0000000000006d734f05897394e7 Content-Type: multipart/alternative; boundary="0000000000006d734c05897394e5" --0000000000006d734c05897394e5 Content-Type: text/plain; charset="UTF-8" Hi, Attached is the updated patch with doc changes. On Tue, May 21, 2019 at 5:42 PM Aditya Toshniwal < aditya.toshniwal@enterprisedb.com> wrote: > Hi, > > On Tue, May 21, 2019 at 5:32 PM Dave Page wrote: > >> Hi >> >> On Tue, May 21, 2019 at 10:01 AM Aditya Toshniwal < >> aditya.toshniwal@enterprisedb.com> wrote: >> >>> Hi Hackers, >>> >>> Attached is the patch to fix the accessibility issue in query tool. >>> >>> The query tool can be completely restructured unlike previously where >>> query tool used to stick at top and other tabs in the bottom. >>> - I have added a new shortcut to switch between frames if in query tool >>> the tab positions are changed. On switching the frames, the frame will >>> blink to show it is focussed. >>> - In the frame, you can switch tab same as previous. The tabs in SQL >>> editor are cyclic now, which means if you execute shortcut to go right on >>> the last tab then it will cycle to first tab. >>> - I have also changed the default shortcut to switch between tabs from >>> Shift+Ctrl+ArrowKeys to Shift+Ctrl+[ and ] similar to what we have in >>> browser tabs. >>> - Similar changes done for debugger also. >>> >> >> Shouldn't there be documentation changes to go with this? >> > Yes, definitely :P > Will send the updated patch. > >> >> Otherwise, it seems to work :-) >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> > > > -- > Thanks and Regards, > Aditya Toshniwal > Software Engineer | EnterpriseDB India | Pune > "Don't Complain about Heat, Plant a TREE" > -- Thanks and Regards, Aditya Toshniwal Software Engineer | EnterpriseDB India | Pune "Don't Complain about Heat, Plant a TREE" --0000000000006d734c05897394e5 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

Attached is the updated patch with doc changes.
<= /div>
O= n Tue, May 21, 2019 at 5:42 PM Aditya Toshniwal <aditya.toshniwal@enterprisedb.com> wro= te:
Hi,

On Tue, May 21, 2019 at 5:32 PM Dave Page <dpage@pgadmin.org&g= t; wrote:
Hi

On Tue, May 21, 2019 at 10:01 AM Aditya Toshn= iwal <aditya.toshniwal@enterprisedb.com> wrote:
Hi Hackers,

Attached is the patch to fix the accessibility issue in query = tool.

The query tool can be completely rest= ructured unlike previously where query tool used to stick at top and other = tabs in the bottom.=C2=A0
- I have added a new shortcut to switch between frames if in query tool t= he tab positions are changed. On switching the frames, the frame will blink= to show it is focussed.=C2=A0
- In the frame, you can switch tab same as previous. The tabs in SQL= editor are cyclic now, which means if you execute shortcut to go right on = the last tab then it will cycle to first tab.
- I have also changed the default shortcut to switch = between tabs from Shift+Ctrl+ArrowKeys to Shift+Ctrl+[ and ] similar to wha= t we have in browser tabs.
- Similar changes done for debugger also.
<= br>
Shouldn't there be documentation changes to go with this?= =C2=A0
Yes, definitely :P
<= span class=3D"gmail_default" style=3D"font-family:verdana,sans-serif">Will = send the updated patch.=C2=A0

Otherwise, it seems to work :-)

--
Dave Page
Blog: http://pgsnake.blogspot.com
= Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise = PostgreSQL Company


--
<= div dir=3D"ltr">
Thanks and Regards,
Aditya Toshniwal
= Software Engineer |=C2=A0EnterpriseDB In= dia |=C2=A0Pune
"Don't Complain about Heat, Plant a TREE"
=


--
Adi= tya Toshniwal
Software Engineer |=C2=A0EnterpriseDB India |=C2=A0Pune
"Don't Complain a= bout Heat, Plant a TREE"
--0000000000006d734c05897394e5-- --0000000000006d734f05897394e7 Content-Type: application/octet-stream; name="RM4195_v2.patch" Content-Disposition: attachment; filename="RM4195_v2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jvyt8wny0 ZGlmZiAtLWdpdCBhL2RvY3MvZW5fVVMva2V5Ym9hcmRfc2hvcnRjdXRzLnJzdCBiL2RvY3MvZW5f VVMva2V5Ym9hcmRfc2hvcnRjdXRzLnJzdAppbmRleCBhMGZmNTgwZC4uZWJlNmQ0ZWQgMTAwNjQ0 Ci0tLSBhL2RvY3MvZW5fVVMva2V5Ym9hcmRfc2hvcnRjdXRzLnJzdAorKysgYi9kb2NzL2VuX1VT L2tleWJvYXJkX3Nob3J0Y3V0cy5yc3QKQEAgLTE5MywyMyArMTkzLDI1IEBAIFdoZW4gdXNpbmcg dGhlIERlYnVnZ2VyLCB0aGUgZm9sbG93aW5nIHNob3J0Y3V0cyBhcmUgYXZhaWxhYmxlOgogICAg fCBBbHQgKyBTaGlmdCArIHEgICAgICAgICAgfCBBbHQgKyBTaGlmdCArIHEgICAgfCBFbnRlciBv ciBFZGl0IHZhbHVlcyBpbiBHcmlkICAgICAgfAogICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKwogCi1Jbm5lciBQYW5lbCBOYXZpZ2F0aW9uCi0qKioqKioqKioqKioqKioqKioqKioqCitJ bm5lciBUYWJzIGFuZCBQYW5lbHMgTmF2aWdhdGlvbgorKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKIAogV2hlbiB1c2luZyB0aGUgUXVlcnkgVG9vbCBhbmQgRGVidWdnZXIsIHRoZSBm b2xsb3dpbmcgc2hvcnRjdXRzIGFyZSBhdmFpbGFibGUKLWZvciBpbm5lciBwYW5lbCBuYXZpZ2F0 aW9uOgorZm9yIGlubmVyIHRhYnMgYW5kIHBhbmVscyBuYXZpZ2F0aW9uOgogCiAuLiB0YWJsZTo6 CiAgICA6Y2xhc3M6IGxvbmd0YWJsZQogICAgOndpZHRoczogMiAyIDMKIAotICAgKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0gICB8IFNob3J0Y3V0IChXaW5kb3dzL0xpbnV4KSB8IFNo b3J0Y3V0IChNYWMpICAgICAgICAgICAgfCBGdW5jdGlvbiAgICAgICAgICAgICAgICAgICAgIHwK LSAgICs9PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09 PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KwotICAgfCBBbHQgKyBTaGlmdCArIFJp Z2h0IEFycm93fCBBbHQgKyBTaGlmdCArIFJpZ2h0IEFycm93IHwgTW92ZSB0byBuZXh0IGlubmVy IHBhbmVsICAgICB8Ci0gICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLSAgIHwgQWx0 ICsgU2hpZnQgKyBMZWZ0IEFycm93IHwgQWx0ICsgU2hpZnQgKyBMZWZ0IEFycm93ICB8IE1vdmUg dG8gcHJldmlvdXMgaW5uZXIgcGFuZWwgfAotICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rCisgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgIHwgU2hvcnRj dXQgKFdpbmRvd3MvTGludXgpIHwgU2hvcnRjdXQgKE1hYykgICAgICAgICAgICB8IEZ1bmN0aW9u ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgKz09PT09PT09PT09PT09PT09PT09PT09 PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0rCisgICB8IEFsdCArIFNoaWZ0ICsgXSAgICAgICAgICB8IEFsdCArIFNoaWZ0 ICsgXSAgICAgICAgICAgfCBNb3ZlIHRvIG5leHQgdGFiIHdpdGhpbiBhIHBhbmVsICAgIHwKKyAg ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgfCBBbHQgKyBTaGlmdCAr IFsgICAgICAgICAgfCBBbHQgKyBTaGlmdCArIFsgICAgICAgICAgIHwgTW92ZSB0byBwcmV2aW91 cyB0YWIgd2l0aGluIGEgcGFuZWx8CisgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSsKKyAgIHwgQWx0ICsgU2hpZnQgKyBUYWIgICAgICAgIHwgQWx0ICsgU2hpZnQgKyBUYWIg ICAgICAgICB8IE1vdmUgYmV0d2VlbiBpbm5lciBwYW5lbHMgICAgICAgICAgfAorICAgKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAKIEFjY2VzcyBLZXkKICoqKioqKioqKioK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9rZXlib2FyZF9zaG9ydGN1dHMuanMg Yi93ZWIvcGdhZG1pbi9zdGF0aWMvanMva2V5Ym9hcmRfc2hvcnRjdXRzLmpzCmluZGV4IDAxNzUy OWI3Li5iZTFiZGM5MyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2tleWJvYXJk X3Nob3J0Y3V0cy5qcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMva2V5Ym9hcmRfc2hvcnRj dXRzLmpzCkBAIC05LDYgKzksNyBAQAogCiBpbXBvcnQgJCBmcm9tICdqcXVlcnknOwogaW1wb3J0 IGdldHRleHQgZnJvbSAnc291cmNlcy9nZXR0ZXh0JzsKK2ltcG9ydCB7IGdldE1vZCB9IGZyb20g J3NvdXJjZXMvdXRpbHMnOwogCiBjb25zdCBQRVJJT0RfS0VZID0gMTkwLAogICBGV0RfU0xBU0hf S0VZID0gMTkxLApAQCAtMTE2LDkgKzExNyw0NCBAQCBmdW5jdGlvbiB2YWxpZGF0ZVNob3J0Y3V0 S2V5cyh1c2VyX2RlZmluZWRfc2hvcnRjdXQsIGV2ZW50KSB7CiAgICAgdXNlcl9kZWZpbmVkX3No b3J0Y3V0LmtleS5rZXlfY29kZSA9PSBrZXlDb2RlOwogfQogCisvLyBGaW5kcyB0aGUgZGVzaXJl ZCBwYW5lbCBvbiB3aGljaCB1c2VyIHdhbnRzIHRvIG5hdmlnYXRlIHRvCitmdW5jdGlvbiBmb2N1 c0RvY2tlclBhbmVsKGRvY2tlciwgb3ApIHsKKyAgaWYoIWRvY2tlciB8fCAhZG9ja2VyLl9mb2N1 c0ZyYW1lKSB7CisgICAgcmV0dXJuOworICB9CisKKyAgbGV0IGZvY3VzX2ZyYW1lID0gZG9ja2Vy Ll9mb2N1c0ZyYW1lLAorICAgIGZvY3VzX2lkID0gMCwKKyAgICBmbGFzaCA9IGZhbHNlOworCisg IC8vIE1vZCBpcyB1c2VkIHRvIGN5Y2xlIHRoZSBvcAorICBpZiAob3AgPT0gJ3N3aXRjaCcpIHsK KyAgICBsZXQgaSA9IDAsIHRvdGFsX2ZyYW1lcyA9IGRvY2tlci5fZnJhbWVMaXN0Lmxlbmd0aDsK KworICAgIGZvcihpID0gMDsgaSA8IHRvdGFsX2ZyYW1lczsgaSsrKSB7CisgICAgICBpZihmb2N1 c19mcmFtZSA9PT0gZG9ja2VyLl9mcmFtZUxpc3RbaV0pIGJyZWFrOworICAgIH0KKyAgICBmb2N1 c19mcmFtZSA9IGRvY2tlci5fZnJhbWVMaXN0W2dldE1vZChpKzEsdG90YWxfZnJhbWVzKV07Cisg ICAgZm9jdXNfaWQgPSBmb2N1c19mcmFtZS5fY3VyVGFiOworICAgIGZsYXNoID0gdHJ1ZTsKKyAg fSBlbHNlIGlmIChvcCA9PSAnbGVmdCcpIHsKKyAgICBmb2N1c19pZCA9IGdldE1vZChmb2N1c19m cmFtZS5fY3VyVGFiLTEsIGZvY3VzX2ZyYW1lLl9wYW5lbExpc3QubGVuZ3RoKTsKKyAgICBmbGFz aCA9IGZhbHNlOworICB9IGVsc2UgaWYgKG9wID09ICdyaWdodCcpIHsKKyAgICBmb2N1c19pZCA9 IGdldE1vZChmb2N1c19mcmFtZS5fY3VyVGFiKzEsIGZvY3VzX2ZyYW1lLl9wYW5lbExpc3QubGVu Z3RoKTsKKyAgICBmbGFzaCA9IGZhbHNlOworICB9CisKKyAgbGV0IGZvY3VzX3BhbmVsID0gZm9j dXNfZnJhbWUuX3BhbmVsTGlzdFtmb2N1c19pZF07CisKKyAgZm9jdXNfcGFuZWwuJGNvbnRhaW5l ci5maW5kKCcqW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PSItMSJdKScpLnRyaWdnZXIoJ2ZvY3Vz Jyk7CisgIGZvY3VzX3BhbmVsLmZvY3VzKGZsYXNoKTsKKyAgcmV0dXJuIGZvY3VzX3BhbmVsLl90 eXBlOworfQorCiAvKiBEZWJ1Z2dlcjogS2V5Ym9hcmQgU2hvcnRjdXRzIGhhbmRsaW5nICovCi1m dW5jdGlvbiBrZXlib2FyZFNob3J0Y3V0c0RlYnVnZ2VyKCRlbCwgZXZlbnQsIHByZWZlcmVuY2Vz KSB7Ci0gIGxldCBwYW5lbF9pZCwgcGFuZWxfY29udGVudCwgJGlucHV0OworZnVuY3Rpb24ga2V5 Ym9hcmRTaG9ydGN1dHNEZWJ1Z2dlcigkZWwsIGV2ZW50LCBwcmVmZXJlbmNlcywgZG9ja2VyKSB7 CisgIGxldCBwYW5lbF90eXBlID0gJycsIHBhbmVsX2NvbnRlbnQsICRpbnB1dDsKIAogICBpZih0 aGlzLnZhbGlkYXRlU2hvcnRjdXRLZXlzKHByZWZlcmVuY2VzLmVkaXRfZ3JpZF92YWx1ZXMsIGV2 ZW50KSkgewogICAgIHRoaXMuX3N0b3BFdmVudFByb3BhZ2F0aW9uKGV2ZW50KTsKQEAgLTEzMiw1 NCArMTY4LDMyIEBAIGZ1bmN0aW9uIGtleWJvYXJkU2hvcnRjdXRzRGVidWdnZXIoJGVsLCBldmVu dCwgcHJlZmVyZW5jZXMpIHsKICAgICB9CiAgIH0gZWxzZSBpZih0aGlzLnZhbGlkYXRlU2hvcnRj dXRLZXlzKHByZWZlcmVuY2VzLm1vdmVfbmV4dCwgZXZlbnQpKSB7CiAgICAgdGhpcy5fc3RvcEV2 ZW50UHJvcGFnYXRpb24oZXZlbnQpOwotICAgIHBhbmVsX2lkID0gdGhpcy5nZXRJbm5lclBhbmVs KCRlbCwgJ3JpZ2h0Jyk7CisgICAgcGFuZWxfdHlwZSA9IHRoaXMuZm9jdXNEb2NrZXJQYW5lbChk b2NrZXIsICdyaWdodCcpOwogICB9IGVsc2UgaWYodGhpcy52YWxpZGF0ZVNob3J0Y3V0S2V5cyhw cmVmZXJlbmNlcy5tb3ZlX3ByZXZpb3VzLCBldmVudCkpIHsKICAgICB0aGlzLl9zdG9wRXZlbnRQ cm9wYWdhdGlvbihldmVudCk7Ci0gICAgcGFuZWxfaWQgPSB0aGlzLmdldElubmVyUGFuZWwoJGVs LCAnbGVmdCcpOwotICB9Ci0gIHJldHVybiBwYW5lbF9pZDsKLX0KLQotLy8gRmluZHMgdGhlIGRl c2lyZWQgcGFuZWwgb24gd2hpY2ggdXNlciB3YW50cyB0byBuYXZpZ2F0ZSB0bwotZnVuY3Rpb24g Z2V0SW5uZXJQYW5lbCgkZWwsIGRpcmVjdGlvbikgewotICBpZighJGVsIHx8ICEkZWwubGVuZ3Ro KQotICAgIHJldHVybiBmYWxzZTsKLQotICBsZXQgdG90YWxfcGFuZWxzID0gJGVsLmZpbmQoJy53 Y1BhbmVsVGFiJyk7Ci0gIC8vIElmIG5vIHBhbmVscyBmb3VuZCBPUiBpZiBzaW5nbGUgcGFuZWwK LSAgaWYgKCF0b3RhbF9wYW5lbHMubGVuZ3RoIHx8IHRvdGFsX3BhbmVscy5sZW5ndGggPT0gMSkK LSAgICByZXR1cm4gZmFsc2U7Ci0KLSAgbGV0IGFjdGl2ZV9wYW5lbCA9ICQodG90YWxfcGFuZWxz KS5maWx0ZXIoJy53Y1BhbmVsVGFiQWN0aXZlJyksCi0gICAgaWQgPSBwYXJzZUludCgkKGFjdGl2 ZV9wYW5lbCkuYXR0cignaWQnKSksCi0gICAgZmlzdF9wYW5lbCA9IDAsCi0gICAgbGFzdF9wYW5l bCA9IHRvdGFsX3BhbmVscy5sZW5ndGggLSAxOwotCi0gIC8vIEZpbmQgZGVzaXJlZCBwYW5lbAot ICBpZiAoZGlyZWN0aW9uID09ICdsZWZ0JykgewotICAgIGlmKGlkID4gZmlzdF9wYW5lbCkKLSAg ICAgIGlkLS07Ci0gIH0gZWxzZSB7Ci0gICAgaWYgKGlkIDwgbGFzdF9wYW5lbCkKLSAgICAgIGlk Kys7CisgICAgcGFuZWxfdHlwZSA9IHRoaXMuZm9jdXNEb2NrZXJQYW5lbChkb2NrZXIsICdsZWZ0 Jyk7CisgIH0gZWxzZSBpZih0aGlzLnZhbGlkYXRlU2hvcnRjdXRLZXlzKHByZWZlcmVuY2VzLnN3 aXRjaF9wYW5lbCwgZXZlbnQpKSB7CisgICAgdGhpcy5fc3RvcEV2ZW50UHJvcGFnYXRpb24oZXZl bnQpOworICAgIHBhbmVsX3R5cGUgPSB0aGlzLmZvY3VzRG9ja2VyUGFuZWwoZG9ja2VyLCAnc3dp dGNoJyk7CiAgIH0KLSAgcmV0dXJuIGlkOworICByZXR1cm4gcGFuZWxfdHlwZTsKIH0KIAogLyog UXVlcnkgdG9vbDogS2V5Ym9hcmQgU2hvcnRjdXRzIGhhbmRsaW5nICovCiBmdW5jdGlvbiBrZXli b2FyZFNob3J0Y3V0c1F1ZXJ5VG9vbCgKLSAgc3FsRWRpdG9yQ29udHJvbGxlciwgcXVlcnlUb29s QWN0aW9ucywgZXZlbnQKKyAgc3FsRWRpdG9yQ29udHJvbGxlciwgcXVlcnlUb29sQWN0aW9ucywg ZXZlbnQsIGRvY2tlcgogKSB7CiAgIGlmIChzcWxFZGl0b3JDb250cm9sbGVyLmlzUXVlcnlSdW5u aW5nKCkpIHsKICAgICByZXR1cm47CiAgIH0KLSAgbGV0IGtleUNvZGUgPSBldmVudC53aGljaCB8 fCBldmVudC5rZXlDb2RlLCBwYW5lbF9pZDsKKyAgbGV0IGtleUNvZGUgPSBldmVudC53aGljaCB8 fCBldmVudC5rZXlDb2RlLCBwYW5lbF90eXBlID0gJyc7CiAgIGxldCBleGVjdXRlS2V5cyA9IHNx bEVkaXRvckNvbnRyb2xsZXIucHJlZmVyZW5jZXMuZXhlY3V0ZV9xdWVyeTsKICAgbGV0IGV4cGxh aW5LZXlzID0gc3FsRWRpdG9yQ29udHJvbGxlci5wcmVmZXJlbmNlcy5leHBsYWluX3F1ZXJ5Owog ICBsZXQgZXhwbGFpbkFuYWx5emVLZXlzID0gc3FsRWRpdG9yQ29udHJvbGxlci5wcmVmZXJlbmNl cy5leHBsYWluX2FuYWx5emVfcXVlcnk7CiAgIGxldCBkb3dubG9hZENzdktleXMgPSBzcWxFZGl0 b3JDb250cm9sbGVyLnByZWZlcmVuY2VzLmRvd25sb2FkX2NzdjsKLSAgbGV0IG5leHRQYW5lbEtl eXMgPSBzcWxFZGl0b3JDb250cm9sbGVyLnByZWZlcmVuY2VzLm1vdmVfbmV4dDsKLSAgbGV0IHBy ZXZpb3VzUGFuZWxLZXlzID0gc3FsRWRpdG9yQ29udHJvbGxlci5wcmVmZXJlbmNlcy5tb3ZlX3By ZXZpb3VzOworICBsZXQgbmV4dFRhYktleXMgPSBzcWxFZGl0b3JDb250cm9sbGVyLnByZWZlcmVu Y2VzLm1vdmVfbmV4dDsKKyAgbGV0IHByZXZpb3VzVGFiS2V5cyA9IHNxbEVkaXRvckNvbnRyb2xs ZXIucHJlZmVyZW5jZXMubW92ZV9wcmV2aW91czsKKyAgbGV0IHN3aXRjaFBhbmVsS2V5cyA9IHNx bEVkaXRvckNvbnRyb2xsZXIucHJlZmVyZW5jZXMuc3dpdGNoX3BhbmVsOwogICBsZXQgdG9nZ2xl Q2FzZUtleXMgPSBzcWxFZGl0b3JDb250cm9sbGVyLnByZWZlcmVuY2VzLnRvZ2dsZV9jYXNlOwog ICBsZXQgY29tbWl0S2V5cyA9IHNxbEVkaXRvckNvbnRyb2xsZXIucHJlZmVyZW5jZXMuY29tbWl0 X3RyYW5zYWN0aW9uOwogICBsZXQgcm9sbGJhY2tLZXlzID0gc3FsRWRpdG9yQ29udHJvbGxlci5w cmVmZXJlbmNlcy5yb2xsYmFja190cmFuc2FjdGlvbjsKQEAgLTIzNiwxMiArMjUwLDE1IEBAIGZ1 bmN0aW9uIGtleWJvYXJkU2hvcnRjdXRzUXVlcnlUb29sKAogICAgICAgICAmJiAkKGV2ZW50LnRh cmdldCkuY2xvc2VzdCgnLmRyb3Bkb3duLXN1Ym1lbnUnKS5sZW5ndGggPiAwKSB7CiAgICAgICAk KGV2ZW50LnRhcmdldCkuY2xvc2VzdCgnLmRyb3Bkb3duLXN1Ym1lbnUnKS5maW5kKCcuZHJvcGRv d24tbWVudScpLnJlbW92ZUNsYXNzKCdzaG93Jyk7CiAgICAgfQotICB9IGVsc2UgaWYodGhpcy52 YWxpZGF0ZVNob3J0Y3V0S2V5cyhuZXh0UGFuZWxLZXlzLCBldmVudCkpIHsKKyAgfSBlbHNlIGlm KHRoaXMudmFsaWRhdGVTaG9ydGN1dEtleXMobmV4dFRhYktleXMsIGV2ZW50KSkgeworICAgIHRo aXMuX3N0b3BFdmVudFByb3BhZ2F0aW9uKGV2ZW50KTsKKyAgICBwYW5lbF90eXBlID0gdGhpcy5m b2N1c0RvY2tlclBhbmVsKGRvY2tlciwgJ3JpZ2h0Jyk7CisgIH0gZWxzZSBpZih0aGlzLnZhbGlk YXRlU2hvcnRjdXRLZXlzKHByZXZpb3VzVGFiS2V5cywgZXZlbnQpKSB7CiAgICAgdGhpcy5fc3Rv cEV2ZW50UHJvcGFnYXRpb24oZXZlbnQpOwotICAgIHBhbmVsX2lkID0gdGhpcy5nZXRJbm5lclBh bmVsKHNxbEVkaXRvckNvbnRyb2xsZXIuY29udGFpbmVyLCAncmlnaHQnKTsKLSAgfSBlbHNlIGlm KHRoaXMudmFsaWRhdGVTaG9ydGN1dEtleXMocHJldmlvdXNQYW5lbEtleXMsIGV2ZW50KSkgewor ICAgIHBhbmVsX3R5cGUgPSB0aGlzLmZvY3VzRG9ja2VyUGFuZWwoZG9ja2VyLCAnbGVmdCcpOwor ICB9IGVsc2UgaWYodGhpcy52YWxpZGF0ZVNob3J0Y3V0S2V5cyhzd2l0Y2hQYW5lbEtleXMsIGV2 ZW50KSkgewogICAgIHRoaXMuX3N0b3BFdmVudFByb3BhZ2F0aW9uKGV2ZW50KTsKLSAgICBwYW5l bF9pZCA9IHRoaXMuZ2V0SW5uZXJQYW5lbChzcWxFZGl0b3JDb250cm9sbGVyLmNvbnRhaW5lciwg J2xlZnQnKTsKKyAgICBwYW5lbF90eXBlID0gdGhpcy5mb2N1c0RvY2tlclBhbmVsKGRvY2tlciwg J3N3aXRjaCcpOwogICB9IGVsc2UgaWYoa2V5Q29kZSA9PT0gVVBfS0VZIHx8IGtleUNvZGUgPT09 IERPV05fS0VZKSB7CiAgICAgLypBcHBseSBvbmx5IGZvciBkcm9wZG93biovCiAgICAgaWYoJChl dmVudC50YXJnZXQpLmNsb3Nlc3QoJy5kcm9wZG93bi1tZW51JykubGVuZ3RoID4gMCkgewpAQCAt MjkzLDEzICszMTAsMTMgQEAgZnVuY3Rpb24ga2V5Ym9hcmRTaG9ydGN1dHNRdWVyeVRvb2woCiAg ICAgfQogICB9CiAKLSAgcmV0dXJuIHBhbmVsX2lkOworICByZXR1cm4gcGFuZWxfdHlwZTsKIH0K IAogZXhwb3J0IHsKICAga2V5Ym9hcmRTaG9ydGN1dHNEZWJ1Z2dlciBhcyBwcm9jZXNzRXZlbnRE ZWJ1Z2dlciwKICAga2V5Ym9hcmRTaG9ydGN1dHNRdWVyeVRvb2wgYXMgcHJvY2Vzc0V2ZW50UXVl cnlUb29sLAotICBnZXRJbm5lclBhbmVsLCB2YWxpZGF0ZVNob3J0Y3V0S2V5cywKKyAgZm9jdXNE b2NrZXJQYW5lbCwgdmFsaWRhdGVTaG9ydGN1dEtleXMsCiAgIF9zdG9wRXZlbnRQcm9wYWdhdGlv biwgaXNNYWMsIGlzS2V5Q3RybEFsdCwgaXNLZXlBbHRTaGlmdCwgaXNLZXlDdHJsU2hpZnQsCiAg IGlzS2V5Q3RybEFsdFNoaWZ0LCBpc0FsdFNoaWZ0Qm90aCwgaXNDdHJsU2hpZnRCb3RoLCBpc0N0 cmxBbHRCb3RoLAogICBzaG9ydGN1dF9rZXksIHNob3J0Y3V0X3RpdGxlLCBzaG9ydGN1dF9hY2Nl c3NrZXlfdGl0bGUsCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvdXRpbHMuanMg Yi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvdXRpbHMuanMKaW5kZXggNmIxZWQ5YWQuLjFjNThhOWVi IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvdXRpbHMuanMKKysrIGIvd2ViL3Bn YWRtaW4vc3RhdGljL2pzL3V0aWxzLmpzCkBAIC03OSwzICs3OSw3IEBAIGV4cG9ydCBmdW5jdGlv biBnZXRHQ0QoaW5wX2FycikgewogCiAgIHJldHVybiByZXN1bHQ7CiB9CisKK2V4cG9ydCBmdW5j dGlvbiBnZXRNb2Qobm8sIGRpdmlzb3IpIHsKKyAgcmV0dXJuICgobm8gJSBkaXZpc29yKSArIGRp dmlzb3IpICUgZGl2aXNvcjsKK30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVn Z2VyL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvX19pbml0X18ucHkK aW5kZXggNDRkNTVkYTguLmEyYzU5MmUwIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9k ZWJ1Z2dlci9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dlci9fX2lu aXRfXy5weQpAQCAtMTg0LDggKzE4NCw4IEBAIGNsYXNzIERlYnVnZ2VyTW9kdWxlKFBnQWRtaW5N b2R1bGUpOgogICAgICAgICAgICAgICAgICdzaGlmdCc6IFRydWUsCiAgICAgICAgICAgICAgICAg J2NvbnRyb2wnOiBGYWxzZSwKICAgICAgICAgICAgICAgICAna2V5JzogewotICAgICAgICAgICAg ICAgICAgICAna2V5X2NvZGUnOiAzNywKLSAgICAgICAgICAgICAgICAgICAgJ2NoYXInOiAnQXJy b3dMZWZ0JworICAgICAgICAgICAgICAgICAgICAna2V5X2NvZGUnOiA5MSwKKyAgICAgICAgICAg ICAgICAgICAgJ2NoYXInOiAnWycKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9LAog ICAgICAgICAgICAgY2F0ZWdvcnlfbGFiZWw9Z2V0dGV4dCgnS2V5Ym9hcmQgc2hvcnRjdXRzJyks CkBAIC0yMDIsOCArMjAyLDI2IEBAIGNsYXNzIERlYnVnZ2VyTW9kdWxlKFBnQWRtaW5Nb2R1bGUp OgogICAgICAgICAgICAgICAgICdzaGlmdCc6IFRydWUsCiAgICAgICAgICAgICAgICAgJ2NvbnRy b2wnOiBGYWxzZSwKICAgICAgICAgICAgICAgICAna2V5JzogewotICAgICAgICAgICAgICAgICAg ICAna2V5X2NvZGUnOiAzOSwKLSAgICAgICAgICAgICAgICAgICAgJ2NoYXInOiAnQXJyb3dSaWdo dCcKKyAgICAgICAgICAgICAgICAgICAgJ2tleV9jb2RlJzogOTMsCisgICAgICAgICAgICAgICAg ICAgICdjaGFyJzogJ10nCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAg ICAgICAgIGNhdGVnb3J5X2xhYmVsPWdldHRleHQoJ0tleWJvYXJkIHNob3J0Y3V0cycpLAorICAg ICAgICAgICAgZmllbGRzPXNob3J0Y3V0X2ZpZWxkcworICAgICAgICApCisKKyAgICAgICAgc2Vs Zi5wcmVmZXJlbmNlLnJlZ2lzdGVyKAorICAgICAgICAgICAgJ2tleWJvYXJkX3Nob3J0Y3V0cycs CisgICAgICAgICAgICAnc3dpdGNoX3BhbmVsJywKKyAgICAgICAgICAgIGdldHRleHQoJ1N3aXRj aCBQYW5lbCcpLAorICAgICAgICAgICAgJ2tleWJvYXJkc2hvcnRjdXQnLAorICAgICAgICAgICAg eworICAgICAgICAgICAgICAgICdhbHQnOiBUcnVlLAorICAgICAgICAgICAgICAgICdzaGlmdCc6 IFRydWUsCisgICAgICAgICAgICAgICAgJ2NvbnRyb2wnOiBGYWxzZSwKKyAgICAgICAgICAgICAg ICAna2V5JzogeworICAgICAgICAgICAgICAgICAgICAna2V5X2NvZGUnOiA5LAorICAgICAgICAg ICAgICAgICAgICAnY2hhcic6ICdUYWInCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg fSwKICAgICAgICAgICAgIGNhdGVnb3J5X2xhYmVsPWdldHRleHQoJ0tleWJvYXJkIHNob3J0Y3V0 cycpLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvc3RhdGljL2pzL2Rp cmVjdC5qcyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3N0YXRpYy9qcy9kaXJlY3QuanMK aW5kZXggZDBiY2YzZWUuLjVjNjQ5YjRiIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9k ZWJ1Z2dlci9zdGF0aWMvanMvZGlyZWN0LmpzCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVn Z2VyL3N0YXRpYy9qcy9kaXJlY3QuanMKQEAgLTE1MTAsMTcgKzE1MTAsMTcgQEAgZGVmaW5lKFsK ICAgICAgIGNvbnRyb2xsZXIuU3RlcF9pbnRvKHBnVG9vbHMuRGlyZWN0RGVidWcudHJhbnNfaWQp OwogICAgIH0sCiAgICAga2V5QWN0aW9uOiBmdW5jdGlvbiAoZXZlbnQpIHsKLSAgICAgIHZhciAk ZWwgPSB0aGlzLiRlbCwgcGFuZWxfaWQsIGFjdHVhbF9wYW5lbCwKLSAgICAgICAgc2VsZiA9IHRo aXM7CisgICAgICBsZXQgcGFuZWxfdHlwZT0nJzsKIAotICAgICAgcGFuZWxfaWQgPSBrZXlib2Fy ZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnREZWJ1Z2dlcigKLSAgICAgICAgJGVsLCBldmVudCwgc2Vs Zi5wcmVmZXJlbmNlcworICAgICAgcGFuZWxfdHlwZSA9IGtleWJvYXJkU2hvcnRjdXRzLnByb2Nl c3NFdmVudERlYnVnZ2VyKAorICAgICAgICB0aGlzLiRlbCwgZXZlbnQsIHRoaXMucHJlZmVyZW5j ZXMsIHBnVG9vbHMuRGlyZWN0RGVidWcuZG9ja2VyCiAgICAgICApOwogCi0gICAgICAvLyBQYW5l bCBuYXZpZ2F0aW9uCi0gICAgICBpZighXy5pc1VuZGVmaW5lZChwYW5lbF9pZCkgJiYgIV8uaXNO dWxsKHBhbmVsX2lkKSkgewotICAgICAgICBhY3R1YWxfcGFuZWwgPSBwYW5lbF9pZCArIDE7Ci0g ICAgICAgIHBnVG9vbHMuRGlyZWN0RGVidWcuZG9ja2VyLmZpbmRQYW5lbHMoKVthY3R1YWxfcGFu ZWxdLmZvY3VzKCk7CisKKyAgICAgIGlmKCFfLmlzTnVsbChwYW5lbF90eXBlKSAmJiAhXy5pc1Vu ZGVmaW5lZChwYW5lbF90eXBlKSAmJiBwYW5lbF90eXBlICE9ICcnKSB7CisgICAgICAgIHNldFRp bWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgcGdCcm93c2VyLkV2ZW50cy50cmlnZ2VyKGBw Z2FkbWluOmRlYnVnZ2VyOiR7cGFuZWxfdHlwZX06Zm9jdXNgKTsKKyAgICAgICAgfSwgMTAwKTsK ICAgICAgIH0KICAgICB9LAogICB9KTsKQEAgLTE4NTMsNiArMTg1MywxMCBAQCBkZWZpbmUoWwog ICAgICAgICB9CiAgICAgICB9KTsKIAorICAgICAgcGdCcm93c2VyLkV2ZW50cy5vbigncGdhZG1p bjpkZWJ1Z2dlcjpjb2RlOmZvY3VzJywgKCk9PnsKKyAgICAgICAgc2VsZi5lZGl0b3IuZm9jdXMo KTsKKyAgICAgIH0pOworCiAgICAgICAvLyBPbiBsb2FkaW5nIHRoZSBkb2NrZXIsIHJlZ2lzdGVy IHRoZSBjYWxsYmFja3MKICAgICAgIHZhciBvbkxvYWQgPSBmdW5jdGlvbigpIHsKICAgICAgICAg c2VsZi5kb2NrZXIuZmluaXNoTG9hZGluZygxMDApOwpAQCAtMTkwMyw2ICsxOTA3LDE2IEBAIGRl ZmluZShbCiAgICAgICAvLyBDcmVhdGUgdGhlIHRvb2xiYXIgdmlldyBmb3IgZGVidWdnaW5nIHRo ZSBmdW5jdGlvbgogICAgICAgdGhpcy50b29sYmFyVmlldyA9IG5ldyBEZWJ1Z2dlclRvb2xiYXJW aWV3KCk7CiAKKyAgICAgIC8qIHdjRG9ja2VyIGZvY3VzZXMgb24gd2luZG93IGFsd2F5cywgYW5k IGFsbCBvdXIgc2hvcnRjdXRzIGFyZQorICAgICAgICogYmluZCB0byBlZGl0b3ItcGFuZWwuIFNv IHdoZW4gd2UgdXNlIHdjRG9ja2VyIGZvY3VzLCBlZGl0b3ItcGFuZWwKKyAgICAgICAqIGxvc2Vz IGZvY3VzIGFuZCBldmVudHMgZG9uJ3Qgd29yay4KKyAgICAgICAqLworICAgICAgJCh3aW5kb3cp Lm9uKCdrZXlkb3duJywgKGUpPT57CisgICAgICAgIGlmKHNlbGYudG9vbGJhclZpZXcua2V5QWN0 aW9uKSB7CisgICAgICAgICAgc2VsZi50b29sYmFyVmlldy5rZXlBY3Rpb24oZSk7CisgICAgICAg IH0KKyAgICAgIH0pOworCiAgICAgICAvKiBDYWNoZSBtYXkgdGFrZSB0aW1lIHRvIGxvYWQgZm9y IHRoZSBmaXJzdCB0aW1lCiAgICAgICAgKiBLZWVwIHRyeWluZyB0aWxsIGF2YWlsYWJsZQogICAg ICAgICovCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2pz L3NxbGVkaXRvci5qcyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc3Fs ZWRpdG9yLmpzCmluZGV4IGZjYzMxY2YzLi42YWYxNGJjMyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9zcWxlZGl0b3IuanMKKysrIGIvd2ViL3BnYWRt aW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9zcWxlZGl0b3IuanMKQEAgLTE5Miw4ICsxOTIs OCBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICAgICAgICdmaWxlbmFtZSc6 ICdjc3MnLAogICAgICAgICAgIH0pLAogICAgICAgICAgIHRoZW1lOiAnd2ViY2FiaW4ub3ZlcnJp ZGVzLmNzcycsCi0gICAgICAgIH0pOwotCisgICAgICAgIH0KKyAgICAgICk7CiAKICAgICAgIC8v IENyZWF0ZSB0aGUgcGFuZWxzCiAgICAgICB2YXIgc3FsX3BhbmVsID0gbmV3IHBnQWRtaW4uQnJv d3Nlci5QYW5lbCh7CkBAIC0yMTMsNyArMjEzLDcgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wn LCBbCiAgICAgICAgIGlzQ2xvc2VhYmxlOiBmYWxzZSwKICAgICAgICAgaXNQcml2YXRlOiB0cnVl LAogICAgICAgICBleHRyYUNsYXNzZXM6ICdoaWRlLXZlcnRpY2FsLXNjcm9sbGJhcicsCi0gICAg ICAgIGNvbnRlbnQ6ICc8ZGl2IGlkID0iZGF0YWdyaWQiIGNsYXNzPSJzcWwtZWRpdG9yLWdyaWQt Y29udGFpbmVyIHRleHQtMTIiIHRhYmluZGV4OiAiMCI+PC9kaXY+JywKKyAgICAgICAgY29udGVu dDogJzxkaXYgaWQgPSJkYXRhZ3JpZCIgY2xhc3M9InNxbC1lZGl0b3ItZ3JpZC1jb250YWluZXIg dGV4dC0xMiIgdGFiaW5kZXg9IjAiPjwvZGl2PicsCiAgICAgICB9KTsKIAogICAgICAgdmFyIGV4 cGxhaW4gPSBuZXcgcGdBZG1pbi5Ccm93c2VyLlBhbmVsKHsKQEAgLTIyMyw3ICsyMjMsNyBAQCBk ZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICAgaGVpZ2h0OiAnMTAwJScsCiAgICAg ICAgIGlzQ2xvc2VhYmxlOiBmYWxzZSwKICAgICAgICAgaXNQcml2YXRlOiB0cnVlLAotICAgICAg ICBjb250ZW50OiAnPGRpdiBjbGFzcz0ic3FsLWVkaXRvci1leHBsYWluIiB0YWJpbmRleDogIjAi PjwvZGl2PicsCisgICAgICAgIGNvbnRlbnQ6ICc8ZGl2IGNsYXNzPSJzcWwtZWRpdG9yLWV4cGxh aW4iIHRhYmluZGV4PSIwIj48L2Rpdj4nLAogICAgICAgfSk7CiAKICAgICAgIHZhciBtZXNzYWdl cyA9IG5ldyBwZ0FkbWluLkJyb3dzZXIuUGFuZWwoewpAQCAtMjMzLDcgKzIzMyw3IEBAIGRlZmlu ZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAgICBoZWlnaHQ6ICcxMDAlJywKICAgICAgICAg aXNDbG9zZWFibGU6IGZhbHNlLAogICAgICAgICBpc1ByaXZhdGU6IHRydWUsCi0gICAgICAgIGNv bnRlbnQ6ICc8ZGl2IGNsYXNzPSJzcWwtZWRpdG9yLW1lc3NhZ2UiIHRhYmluZGV4OiAiMCI+PC9k aXY+JywKKyAgICAgICAgY29udGVudDogJzxkaXYgY2xhc3M9InNxbC1lZGl0b3ItbWVzc2FnZSIg dGFiaW5kZXg9ICIwIj48L2Rpdj4nLAogICAgICAgfSk7CiAKICAgICAgIHZhciBoaXN0b3J5ID0g bmV3IHBnQWRtaW4uQnJvd3Nlci5QYW5lbCh7CkBAIC0yNDMsNyArMjQzLDcgQEAgZGVmaW5lKCd0 b29scy5xdWVyeXRvb2wnLCBbCiAgICAgICAgIGhlaWdodDogJzMzJScsCiAgICAgICAgIGlzQ2xv c2VhYmxlOiBmYWxzZSwKICAgICAgICAgaXNQcml2YXRlOiB0cnVlLAotICAgICAgICBjb250ZW50 OiAnPGRpdiBpZCA9Imhpc3RvcnlfZ3JpZCIgY2xhc3M9InNxbC1lZGl0b3ItaGlzdG9yeS1jb250 YWluZXIiIHRhYmluZGV4OiAiMCI+PC9kaXY+JywKKyAgICAgICAgY29udGVudDogJzxkaXYgaWQg PSJoaXN0b3J5X2dyaWQiIGNsYXNzPSJzcWwtZWRpdG9yLWhpc3RvcnktY29udGFpbmVyIiB0YWJp bmRleD0gIjAiPjwvZGl2PicsCiAgICAgICB9KTsKIAogICAgICAgdmFyIHNjcmF0Y2ggPSBuZXcg cGdBZG1pbi5Ccm93c2VyLlBhbmVsKHsKQEAgLTI1Myw3ICsyNTMsNyBAQCBkZWZpbmUoJ3Rvb2xz LnF1ZXJ5dG9vbCcsIFsKICAgICAgICAgaGVpZ2h0OiAnMzMlJywKICAgICAgICAgaXNDbG9zZWFi bGU6IHRydWUsCiAgICAgICAgIGlzUHJpdmF0ZTogZmFsc2UsCi0gICAgICAgIGNvbnRlbnQ6ICc8 ZGl2IGNsYXNzPSJzcWwtc2NyYXRjaCIgdGFiaW5kZXg6ICIwIj48dGV4dGFyZWEgd3JhcD0ib2Zm Ij48L3RleHRhcmVhPjwvZGl2PicsCisgICAgICAgIGNvbnRlbnQ6ICc8ZGl2IGNsYXNzPSJzcWwt c2NyYXRjaCI+PHRleHRhcmVhIHdyYXA9Im9mZiIgdGFiaW5kZXg9ICIwIj48L3RleHRhcmVhPjwv ZGl2PicsCiAgICAgICB9KTsKIAogICAgICAgdmFyIG5vdGlmaWNhdGlvbnMgPSBuZXcgcGdBZG1p bi5Ccm93c2VyLlBhbmVsKHsKQEAgLTI2Myw3ICsyNjMsNyBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5 dG9vbCcsIFsKICAgICAgICAgaGVpZ2h0OiAnMTAwJScsCiAgICAgICAgIGlzQ2xvc2VhYmxlOiBm YWxzZSwKICAgICAgICAgaXNQcml2YXRlOiB0cnVlLAotICAgICAgICBjb250ZW50OiAnPGRpdiBp ZCA9Im5vdGlmaWNhdGlvbl9ncmlkIiBjbGFzcz0ic3FsLWVkaXRvci1ub3RpZmljYXRpb25zIiB0 YWJpbmRleDogIjAiPjwvZGl2PicsCisgICAgICAgIGNvbnRlbnQ6ICc8ZGl2IGlkID0ibm90aWZp Y2F0aW9uX2dyaWQiIGNsYXNzPSJzcWwtZWRpdG9yLW5vdGlmaWNhdGlvbnMiIHRhYmluZGV4PSAi MCI+PC9kaXY+JywKICAgICAgIH0pOwogCiAgICAgICB2YXIgZ2VvbWV0cnlfdmlld2VyID0gbmV3 IHBnQWRtaW4uQnJvd3Nlci5QYW5lbCh7CkBAIC0yNzMsNyArMjczLDcgQEAgZGVmaW5lKCd0b29s cy5xdWVyeXRvb2wnLCBbCiAgICAgICAgIGhlaWdodDogJzEwMCUnLAogICAgICAgICBpc0Nsb3Nl YWJsZTogdHJ1ZSwKICAgICAgICAgaXNQcml2YXRlOiB0cnVlLAotICAgICAgICBjb250ZW50OiAn PGRpdiBpZCA9Imdlb21ldHJ5X3ZpZXdlcl9wYW5lbCIgY2xhc3M9InNxbC1lZGl0b3ItZ2VvbWV0 cnktdmlld2VyIiB0YWJpbmRleDogIjAiPjwvZGl2PicsCisgICAgICAgIGNvbnRlbnQ6ICc8ZGl2 IGlkID0iZ2VvbWV0cnlfdmlld2VyX3BhbmVsIiBjbGFzcz0ic3FsLWVkaXRvci1nZW9tZXRyeS12 aWV3ZXIiIHRhYmluZGV4PSAiMCI+PC9kaXY+JywKICAgICAgIH0pOwogCiAgICAgICAvLyBMb2Fk IGFsbCB0aGUgY3JlYXRlZCBwYW5lbHMKQEAgLTMxMyw4ICszMTMsOCBAQCBkZWZpbmUoJ3Rvb2xz LnF1ZXJ5dG9vbCcsIFsKICAgICAgIHNlbGYucmVuZGVyX2hpc3RvcnlfZ3JpZCgpOwogICAgICAg cXVlcnlUb29sTm90aWZpY2F0aW9ucy5yZW5kZXJOb3RpZmljYXRpb25zR3JpZChzZWxmLm5vdGlm aWNhdGlvbnNfcGFuZWwpOwogCi0gICAgICB2YXIgdGV4dF9jb250YWluZXIgPSAkKCc8dGV4dGFy ZWEgaWQ9InNxbF9xdWVyeV90b29sIiB0YWJpbmRleDogIi0xIj48L3RleHRhcmVhPicpOwotICAg ICAgdmFyIG91dHB1dF9jb250YWluZXIgPSAkKCc8ZGl2IGlkPSJvdXRwdXQtcGFuZWwiIHRhYmlu ZGV4OiAiMCI+PC9kaXY+JykuYXBwZW5kKHRleHRfY29udGFpbmVyKTsKKyAgICAgIHZhciB0ZXh0 X2NvbnRhaW5lciA9ICQoJzx0ZXh0YXJlYSBpZD0ic3FsX3F1ZXJ5X3Rvb2wiIHRhYmluZGV4PSIt MSI+PC90ZXh0YXJlYT4nKTsKKyAgICAgIHZhciBvdXRwdXRfY29udGFpbmVyID0gJCgnPGRpdiBp ZD0ib3V0cHV0LXBhbmVsIiB0YWJpbmRleD0iMCI+PC9kaXY+JykuYXBwZW5kKHRleHRfY29udGFp bmVyKTsKICAgICAgIHNlbGYuc3FsX3BhbmVsX29iai4kY29udGFpbmVyLmZpbmQoJy5wZy1wYW5l bC1jb250ZW50JykuYXBwZW5kKG91dHB1dF9jb250YWluZXIpOwogCiAgICAgICBzZWxmLnF1ZXJ5 X3Rvb2xfb2JqID0gQ29kZU1pcnJvci5mcm9tVGV4dEFyZWEodGV4dF9jb250YWluZXIuZ2V0KDAp LCB7CkBAIC0zMzgsNiArMzM4LDEwIEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAg ICAgICBzY3JvbGxiYXJTdHlsZTogJ3NpbXBsZScsCiAgICAgICB9KTsKIAorICAgICAgcGdCcm93 c2VyLkV2ZW50cy5vbigncGdhZG1pbjpxdWVyeV90b29sOnNxbF9wYW5lbDpmb2N1cycsICgpPT57 CisgICAgICAgIHNlbGYucXVlcnlfdG9vbF9vYmouZm9jdXMoKTsKKyAgICAgIH0pOworCiAgICAg ICBpZiAoIXNlbGYucHJlZmVyZW5jZXMubmV3X2Jyb3dzZXJfdGFiKSB7CiAgICAgICAgIC8vIExp c3RlbiBvbiB0aGUgcGFuZWwgY2xvc2VkIGV2ZW50IGFuZCBub3RpZnkgdXNlciB0byBzYXZlIG1v ZGlmaWNhdGlvbnMuCiAgICAgICAgIF8uZWFjaCh3aW5kb3cudG9wLnBnQWRtaW4uQnJvd3Nlci5k b2NrZXIuZmluZFBhbmVscygnZnJtX2RhdGFncmlkJyksIGZ1bmN0aW9uKHApIHsKQEAgLTE4NDgs MjMgKzE4NTIsMTkgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgfSwKIAogICAg IGtleUFjdGlvbjogZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgIHZhciBwYW5lbF9pZCwgc2VsZiA9 IHRoaXM7Ci0gICAgICBwYW5lbF9pZCA9IGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1 ZXJ5VG9vbCgKLSAgICAgICAgdGhpcy5oYW5kbGVyLCBxdWVyeVRvb2xBY3Rpb25zLCBldmVudAor ICAgICAgdmFyIHBhbmVsX3R5cGU9Jyc7CisKKyAgICAgIHBhbmVsX3R5cGUgPSBrZXlib2FyZFNo b3J0Y3V0cy5wcm9jZXNzRXZlbnRRdWVyeVRvb2woCisgICAgICAgIHRoaXMuaGFuZGxlciwgcXVl cnlUb29sQWN0aW9ucywgZXZlbnQsIHRoaXMuZG9ja2VyCiAgICAgICApOwogCi0gICAgICAvLyBJ ZiBpdCByZXR1cm4gcGFuZWwgaWQgdGhlbiBmb2N1cyBpdAotICAgICAgaWYoIV8uaXNOdWxsKHBh bmVsX2lkKSAmJiAhXy5pc1VuZGVmaW5lZChwYW5lbF9pZCkpIHsKLSAgICAgICAgLy8gUmV0dXJu ZWQgcGFuZWwgaW5kZXgsIGJ5IGluY3JlbWVudGluZyBpdCBieSAxIHdlIHdpbGwgZ2V0IGFjdHVh bCBwYW5lbAotICAgICAgICBwYW5lbF9pZCsrOwotICAgICAgICB0aGlzLmRvY2tlci5maW5kUGFu ZWxzKClbcGFuZWxfaWRdLmZvY3VzKCk7Ci0gICAgICAgIC8vIFdlIHNldCBmb2N1cyBvbiBoaXN0 b3J5IHRhYiBzbyB3ZSBuZWVkIHRvIHNldCB0aGUgZm9jdXMgb24KLSAgICAgICAgLy8gZWRpdG9y IGV4cGxpY2l0bHkKLSAgICAgICAgaWYocGFuZWxfaWQgPT0gMykgewotICAgICAgICAgIHNldFRp bWVvdXQoZnVuY3Rpb24oKSB7IHNlbGYucXVlcnlfdG9vbF9vYmouZm9jdXMoKTsgfSwgMTAwKTsK LSAgICAgICAgfQorICAgICAgaWYoIV8uaXNOdWxsKHBhbmVsX3R5cGUpICYmICFfLmlzVW5kZWZp bmVkKHBhbmVsX3R5cGUpICYmIHBhbmVsX3R5cGUgIT0gJycpIHsKKyAgICAgICAgc2V0VGltZW91 dChmdW5jdGlvbigpIHsKKyAgICAgICAgICBwZ0Jyb3dzZXIuRXZlbnRzLnRyaWdnZXIoYHBnYWRt aW46cXVlcnlfdG9vbDoke3BhbmVsX3R5cGV9OmZvY3VzYCk7CisgICAgICAgIH0sIDEwMCk7CiAg ICAgICB9CiAgICAgfSwKKwogICAgIC8vIENhbGxiYWNrIGZ1bmN0aW9uIGZvciB0aGUgY29tbWl0 IGJ1dHRvbiBjbGljay4KICAgICBvbl9jb21taXRfdHJhbnNhY3Rpb246IGZ1bmN0aW9uKCkgewog ICAgICAgcXVlcnlUb29sQWN0aW9ucy5leGVjdXRlQ29tbWl0KHRoaXMuaGFuZGxlcik7CkBAIC0y MTE2LDYgKzIxMTYsMTYgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgICAgIC8v IFJlbmRlciB0aGUgaGVhZGVyCiAgICAgICAgIHNlbGYuZ3JpZFZpZXcucmVuZGVyKCk7CiAKKyAg ICAgICAgLyogd2NEb2NrZXIgZm9jdXNlcyBvbiB3aW5kb3cgYWx3YXlzLCBhbmQgYWxsIG91ciBz aG9ydGN1dHMgYXJlCisgICAgICAgICAqIGJpbmQgdG8gZWRpdG9yLXBhbmVsLiBTbyB3aGVuIHdl IHVzZSB3Y0RvY2tlciBmb2N1cywgZWRpdG9yLXBhbmVsCisgICAgICAgICAqIGxvc2VzIGZvY3Vz IGFuZCBldmVudHMgZG9uJ3Qgd29yay4KKyAgICAgICAgICovCisgICAgICAgICQod2luZG93KS5v bigna2V5ZG93bicsIChlKT0+eworICAgICAgICAgIGlmKHNlbGYuZ3JpZFZpZXcua2V5QWN0aW9u KSB7CisgICAgICAgICAgICBzZWxmLmdyaWRWaWV3LmtleUFjdGlvbihlKTsKKyAgICAgICAgICB9 CisgICAgICAgIH0pOworCiAgICAgICAgIGlmIChzZWxmLmlzX3F1ZXJ5X3Rvb2wpIHsKICAgICAg ICAgICAvLyBGZXRjaCB0aGUgU1FMIGZvciBTY3JpcHRzIChlZzogQ1JFQVRFL1VQREFURS9ERUxF VEUvU0VMRUNUKQogICAgICAgICAgIC8vIENhbGwgQUpBWCBvbmx5IGlmIHNjcmlwdCB0eXBlIHVy bCBpcyBwcmVzZW50CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdXRp bHMvcXVlcnlfdG9vbF9wcmVmZXJlbmNlcy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRv ci91dGlscy9xdWVyeV90b29sX3ByZWZlcmVuY2VzLnB5CmluZGV4IDhmYmM4OGFiLi4xNWM1ZDg3 MCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxzL3F1ZXJ5X3Rv b2xfcHJlZmVyZW5jZXMucHkKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxz L3F1ZXJ5X3Rvb2xfcHJlZmVyZW5jZXMucHkKQEAgLTM1NCw4ICszNTQsOCBAQCBkZWYgUmVnaXN0 ZXJRdWVyeVRvb2xQcmVmZXJlbmNlcyhzZWxmKToKICAgICAgICAgICAgICdzaGlmdCc6IFRydWUs CiAgICAgICAgICAgICAnY29udHJvbCc6IEZhbHNlLAogICAgICAgICAgICAgJ2tleSc6IHsKLSAg ICAgICAgICAgICAgICAna2V5X2NvZGUnOiAzNywKLSAgICAgICAgICAgICAgICAnY2hhcic6ICdB cnJvd0xlZnQnCisgICAgICAgICAgICAgICAgJ2tleV9jb2RlJzogOTEsCisgICAgICAgICAgICAg ICAgJ2NoYXInOiAnWycKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKICAgICAgICAgY2F0ZWdv cnlfbGFiZWw9Z2V0dGV4dCgnS2V5Ym9hcmQgc2hvcnRjdXRzJyksCkBAIC0zNzIsOCArMzcyLDI2 IEBAIGRlZiBSZWdpc3RlclF1ZXJ5VG9vbFByZWZlcmVuY2VzKHNlbGYpOgogICAgICAgICAgICAg J3NoaWZ0JzogVHJ1ZSwKICAgICAgICAgICAgICdjb250cm9sJzogRmFsc2UsCiAgICAgICAgICAg ICAna2V5JzogewotICAgICAgICAgICAgICAgICdrZXlfY29kZSc6IDM5LAotICAgICAgICAgICAg ICAgICdjaGFyJzogJ0Fycm93UmlnaHQnCisgICAgICAgICAgICAgICAgJ2tleV9jb2RlJzogOTMs CisgICAgICAgICAgICAgICAgJ2NoYXInOiAnXScKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwK KyAgICAgICAgY2F0ZWdvcnlfbGFiZWw9Z2V0dGV4dCgnS2V5Ym9hcmQgc2hvcnRjdXRzJyksCisg ICAgICAgIGZpZWxkcz1zaG9ydGN1dF9maWVsZHMKKyAgICApCisKKyAgICBzZWxmLnByZWZlcmVu Y2UucmVnaXN0ZXIoCisgICAgICAgICdrZXlib2FyZF9zaG9ydGN1dHMnLAorICAgICAgICAnc3dp dGNoX3BhbmVsJywKKyAgICAgICAgZ2V0dGV4dCgnU3dpdGNoIFBhbmVsJyksCisgICAgICAgICdr ZXlib2FyZHNob3J0Y3V0JywKKyAgICAgICAgeworICAgICAgICAgICAgJ2FsdCc6IFRydWUsCisg ICAgICAgICAgICAnc2hpZnQnOiBUcnVlLAorICAgICAgICAgICAgJ2NvbnRyb2wnOiBGYWxzZSwK KyAgICAgICAgICAgICdrZXknOiB7CisgICAgICAgICAgICAgICAgJ2tleV9jb2RlJzogOSwKKyAg ICAgICAgICAgICAgICAnY2hhcic6ICdUYWInCiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCiAg ICAgICAgIGNhdGVnb3J5X2xhYmVsPWdldHRleHQoJ0tleWJvYXJkIHNob3J0Y3V0cycpLApkaWZm IC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9jb21tb25fa2V5Ym9hcmRfc2hvcnRj dXRzX3NwZWMuanMgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2NvbW1vbl9rZXlib2FyZF9z aG9ydGN1dHNfc3BlYy5qcwppbmRleCBhYmU1YmFjNS4uYTc0ZjNjZTUgMTAwNjQ0Ci0tLSBhL3dl Yi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvY29tbW9uX2tleWJvYXJkX3Nob3J0Y3V0c19zcGVjLmpz CisrKyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvY29tbW9uX2tleWJvYXJkX3Nob3J0Y3V0 c19zcGVjLmpzCkBAIC04LDYgKzgsNyBAQAogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAogaW1wb3J0ICog YXMga2V5Ym9hcmRTaG9ydGN1dHMgZnJvbSAnc291cmNlcy9rZXlib2FyZF9zaG9ydGN1dHMnOwor aW1wb3J0ICQgZnJvbSAnanF1ZXJ5JzsKIAogZGVzY3JpYmUoJ3RoZSBrZXlib2FyZCBzaG9ydGN1 dHMnLCAoKSA9PiB7CiAgIGNvbnN0IEYxX0tFWSA9IDExMjsKQEAgLTQ1LDkgKzQ2LDMwIEBAIGRl c2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRjdXRzJywgKCkgPT4gewogICB9KTsKIAogICBkZXNj cmliZSgnd2hlbiB1c2VyIHdhbnRzIHRvIGdvdG8gbmV4dCBwYW5lbCcsIGZ1bmN0aW9uICgpIHsK LQotICAgIGl0KCdyZXR1cm5zIHBhbmVsIGlkJywgZnVuY3Rpb24gKCkgewotICAgICAgZXhwZWN0 KGtleWJvYXJkU2hvcnRjdXRzLmdldElubmVyUGFuZWwoZGVidWdnZXJFbGVtZW50U3B5LCAncmln aHQnKSkudG9FcXVhbChmYWxzZSk7CisgICAgbGV0IGRvY2tlclNweSA9IHsKKyAgICAgICdfZm9j dXNGcmFtZSc6IHsKKyAgICAgICAgJ19jdXJUYWInOiAwLAorICAgICAgICAnX3BhbmVsTGlzdCc6 IFsKKyAgICAgICAgICB7JGNvbnRhaW5lcjogJCgnPGIvPicpLCAnX3R5cGUnOiAndHlwZTEnLCAn Zm9jdXMnOiBmdW5jdGlvbigpIHtyZXR1cm4gdHJ1ZTt9fSwKKyAgICAgICAgICB7JGNvbnRhaW5l cjogJCgnPGIvPicpLCAnX3R5cGUnOiAndHlwZTInLCAnZm9jdXMnOiBmdW5jdGlvbigpIHtyZXR1 cm4gdHJ1ZTt9fSwKKyAgICAgICAgXSwKKyAgICAgIH0sCisgICAgfTsKKyAgICBpdCgncmlnaHQg a2V5JywgZnVuY3Rpb24gKCkgeworICAgICAgZG9ja2VyU3B5Ll9mb2N1c0ZyYW1lLl9jdXJUYWIg PSAwOworICAgICAgZXhwZWN0KGtleWJvYXJkU2hvcnRjdXRzLmZvY3VzRG9ja2VyUGFuZWwoZG9j a2VyU3B5LCAncmlnaHQnKSkudG9FcXVhbCgndHlwZTInKTsKKyAgICB9KTsKKyAgICBpdCgnbGVm dCBrZXknLCBmdW5jdGlvbiAoKSB7CisgICAgICBkb2NrZXJTcHkuX2ZvY3VzRnJhbWUuX2N1clRh YiA9IDE7CisgICAgICBleHBlY3Qoa2V5Ym9hcmRTaG9ydGN1dHMuZm9jdXNEb2NrZXJQYW5lbChk b2NrZXJTcHksICdsZWZ0JykpLnRvRXF1YWwoJ3R5cGUxJyk7CisgICAgfSk7CisgICAgaXQoJ2xl ZnQga2V5IGN5Y2xlJywgZnVuY3Rpb24gKCkgeworICAgICAgZG9ja2VyU3B5Ll9mb2N1c0ZyYW1l Ll9jdXJUYWIgPSAwOworICAgICAgZXhwZWN0KGtleWJvYXJkU2hvcnRjdXRzLmZvY3VzRG9ja2Vy UGFuZWwoZG9ja2VyU3B5LCAnbGVmdCcpKS50b0VxdWFsKCd0eXBlMicpOworICAgIH0pOworICAg IGl0KCdyaWdodCBrZXkgY3ljbGUnLCBmdW5jdGlvbiAoKSB7CisgICAgICBkb2NrZXJTcHkuX2Zv Y3VzRnJhbWUuX2N1clRhYiA9IDE7CisgICAgICBleHBlY3Qoa2V5Ym9hcmRTaG9ydGN1dHMuZm9j dXNEb2NrZXJQYW5lbChkb2NrZXJTcHksICdsZWZ0JykpLnRvRXF1YWwoJ3R5cGUxJyk7CiAgICAg fSk7CiAgIH0pOwogCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3BnYWRt aW5fdXRpbHNfc3BlYy5qcyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvcGdhZG1pbl91dGls c19zcGVjLmpzCmluZGV4IDM5ZmU4N2RmLi4wMmJkNTQ3OCAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jl c3Npb24vamF2YXNjcmlwdC9wZ2FkbWluX3V0aWxzX3NwZWMuanMKKysrIGIvd2ViL3JlZ3Jlc3Np b24vamF2YXNjcmlwdC9wZ2FkbWluX3V0aWxzX3NwZWMuanMKQEAgLTcsNyArNyw3IEBACiAvLwog Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8KIAotaW1wb3J0IHsgZ2V0RXBvY2gsIGdldEdDRCB9IGZyb20gJ3NvdXJjZXMvdXRpbHMn OworaW1wb3J0IHsgZ2V0RXBvY2gsIGdldEdDRCwgZ2V0TW9kIH0gZnJvbSAnc291cmNlcy91dGls cyc7CiAKIGRlc2NyaWJlKCdnZXRFcG9jaCcsIGZ1bmN0aW9uICgpIHsKICAgaXQoJ3Nob3VsZCBy ZXR1cm4gbm9uIHplcm8nLCBmdW5jdGlvbiAoKSB7CkBAIC0zMywzICszMywyMSBAQCBkZXNjcmli ZSgnZ2V0R0NEJywgZnVuY3Rpb24gKCkgewogICAgIGV4cGVjdChnZXRHQ0Qobm9zKSkudG9FcXVh bCgzKTsKICAgfSk7CiB9KTsKKworZGVzY3JpYmUoJ2dldE1vZCcsIGZ1bmN0aW9uICgpIHsKKyAg aXQoJ2NvbXBsZXRlIGRpdmlzaWJsZScsIGZ1bmN0aW9uICgpIHsKKyAgICBleHBlY3QoZ2V0TW9k KDUsNSkpLnRvRXF1YWwoMCk7CisgIH0pOworCisgIGl0KCdpbmNvbXBsZXRlIGRpdmlzaWJsZSBs ZXNzIGRpdmlzb3InLCBmdW5jdGlvbiAoKSB7CisgICAgZXhwZWN0KGdldE1vZCg3LDUpKS50b0Vx dWFsKDIpOworICB9KTsKKworICBpdCgnaW5jb21wbGV0ZSBkaXZpc2libGUgZ3JlYXRlciBkaXZp c29yJywgZnVuY3Rpb24gKCkgeworICAgIGV4cGVjdChnZXRNb2QoNSw3KSkudG9FcXVhbCg1KTsK KyAgfSk7CisKKyAgaXQoJ25lZ2F0aXZlIG51bWJlcicsIGZ1bmN0aW9uICgpIHsKKyAgICBleHBl Y3QoZ2V0TW9kKC03LDUpKS50b0VxdWFsKDMpOworICB9KTsKK30pOwo= --0000000000006d734f05897394e7--