Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fadx9-0003Js-51 for pgadmin-hackers@arkaria.postgresql.org; Wed, 04 Jul 2018 09:20:00 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fadx7-0006Ru-1D for pgadmin-hackers@arkaria.postgresql.org; Wed, 04 Jul 2018 09:19:57 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fadx6-0006Rn-In for pgadmin-hackers@lists.postgresql.org; Wed, 04 Jul 2018 09:19:56 +0000 Received: from mail-lj1-x241.google.com ([2a00:1450:4864:20::241]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1fadwx-0005ik-C3 for pgadmin-hackers@postgresql.org; Wed, 04 Jul 2018 09:19:55 +0000 Received: by mail-lj1-x241.google.com with SMTP id c11-v6so3756352lja.4 for ; Wed, 04 Jul 2018 02:19:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=/1p5HSYxl+QtKj1tsbL1HRg0bwKEnSScGH9RVZKvEG4=; b=SAAbVU9a1GMTZHtpoLzDFrqeRTReier/I+TVlxp/8zKqPrDx8xM/jEEcrOpX7+asSm pFPKgS3CkX5RUZmsGQ2M9LmVADShfZd3MBQ5PTDh+tgXXiA+gRqPbvUvQTxOZ/aYb7tu FY7HdqhWOQcEyRBoADoXGvhOpgWUvHv0/l+4A8WMGoRiLq/i2pCmsiibzmTTDw0lfgCh aq+pNa+2RS/ndkmXypfGSIRrLDNY/+3L9h2DdOmJ5kT/ovr4OFbLKtWjValSIthG9iU/ U3Ypii0oY5vXJ4ip+MBv66j/pPez9rVp3SDBS189pcZx8cg5xJtX3IAy/a15bkY9+vFI 1ejw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=/1p5HSYxl+QtKj1tsbL1HRg0bwKEnSScGH9RVZKvEG4=; b=sxIRNKQN/36MdyQtECgaIgRZXkmr7NkPI0Uh/d2ErQZ375uPnzNpN6OCYW8PUsiy66 aVSGySWjHZsO17R+iQIUdPRjHYltXqNXDQ3v8fs9YSVCnQmQqKfWKFjLcmrsyRDYn/Qs VZ+bYdv6uYSRUoXDNqI6uaWtpMeaTtnbtiYXgaBF+EpyS2NYDT7nitQV/phs4sVS1MOO l9ZW1fQii+zRo5zUkcxT4sg48PMWfjYmjeygxfHNp2zfJ/Z5tJ8M+Z6KrZXBhH9Z/Jb0 GCPhAbDgke+Iu4UpaP3z2hShFvJ/hp6WDYrBMOOYRaKm/P5jvK/rxPVCY46APg2/aayw L+GA== X-Gm-Message-State: APt69E2uOGftL92IYmZhi9gOyVL0QsBqJrbcHHh1Fv+DbHaaa8HpiDUt jih+SpJxUoZTI6A0AJn1dXHb8n6hG4iNlMISMKSGhg== X-Google-Smtp-Source: AAOMgpcrQxsXMD4HsTsKOIhhsz7xzHfuUXpr76I8x16zkI3gr3RpcyHdUZjUbQVfN0gOlXVoBrqOb57ovF7jUcxR/9M= X-Received: by 2002:a2e:750d:: with SMTP id q13-v6mr945965ljc.56.1530695985672; Wed, 04 Jul 2018 02:19:45 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a2e:850b:0:0:0:0:0 with HTTP; Wed, 4 Jul 2018 02:19:44 -0700 (PDT) In-Reply-To: References: From: Aditya Toshniwal Date: Wed, 4 Jul 2018 14:49:44 +0530 Message-ID: Subject: Re: [pgAdmin4][RM3294] User need to reset the layout to see the changed preferences parameters To: Dave Page Cc: Akshay Joshi , pgadmin-hackers Content-Type: multipart/mixed; boundary="0000000000007c6c89057028ee93" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --0000000000007c6c89057028ee93 Content-Type: multipart/alternative; boundary="0000000000007c6c84057028ee91" --0000000000007c6c84057028ee91 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Hackers, Attached is the updated patch for the RM. Change of the flags like auto commit, explain->verbose, etc. will reflect in all other open sql editors. Kindly review. On Fri, Jun 29, 2018 at 10:39 PM, Aditya Toshniwal < aditya.toshniwal@enterprisedb.com> wrote: > Hi Dave, > > On Fri, Jun 29, 2018 at 9:30 PM, Dave Page wrote: > >> Hi >> >> On Fri, Jun 29, 2018 at 3:14 PM, Aditya Toshniwal < >> aditya.toshniwal@enterprisedb.com> wrote: >> >>> Hi Hackers, >>> >>> Attached is the updated patch. >>> >> >> This seems to work for the most part, however I saw what seemed like odd >> behaviour. If I have 2 query tool windows open; >> >> - Changing a preference from the Preferences dialogue updates both query >> tools. >> >> - Changing a preference from a Query Tool updates the Preferences >> dialogue. >> >> - Changing a preference from a Query Tool does *not* update the other >> Query Tool. >> >> The last point seems odd to me, though it also kinda makes sense to not >> have one query tool affect the other. The problem with that is that it >> could get quite confusing when they get out of sync. I think it would be >> better for a change in one Query Tool to update the other(s). >> >> What do you think? Was this behaviour intentional? >> > > =E2=80=8BNo this was not intentional. It should reflect in other query to= ols as > well because changing the flags like Auto Commit changes the preferences > config and is not local to a Query tool. I missed the fact that some > preferences can be changed from other than preference dialog.=E2=80=8B > > =E2=80=8BWill send the updated patch with the fix.=E2=80=8B > >> >> (FYI, in case this was a one-off bug, I was testing using "Auto Commit?"= ) >> >> >>> >>> On Fri, Jun 29, 2018 at 4:46 PM, Aditya Toshniwal < >>> aditya.toshniwal@enterprisedb.com> wrote: >>> >>>> Hi Akshay, >>>> >>>> On Fri, Jun 29, 2018 at 3:42 PM, Akshay Joshi < >>>> akshay.joshi@enterprisedb.com> wrote: >>>> >>>>> Hi Aditya >>>>> >>>>> I have applied your patch and run pgAdmin4. I have found following tw= o >>>>> issue in the browser: >>>>> >>>>> - Found error while open Preferences dialog. Refer >>>>> Open_Preferences_Dialog.png >>>>> >>>>> =E2=80=8BThis error occurs even with the latest pull without changes.= =E2=80=8B >>>> >>>> >>>>> >>>>> - Set the preferences setting "Open in new browser tab" to True >>>>> and open the query tool. Refer "Open_In_New_Broswer.png". >>>>> >>>>> =E2=80=8BWill look into this.=E2=80=8B >>>> >>>> >>>>> I haven't review the code. >>>>> >>>>> On Thu, Jun 28, 2018 at 8:04 PM, Aditya Toshniwal < >>>>> aditya.toshniwal@enterprisedb.com> wrote: >>>>> >>>>>> Hi Hackers, >>>>>> >>>>>> Attached is the patch for making preferences realtime and applying >>>>>> without reseting the layout. Please note, the patch is only for one = module >>>>>> - SQL Editor and is the first part for the RM. There are lot of chan= ges to >>>>>> be done to cover all and hence sending in parts. This will not affec= t/break >>>>>> existing code. Further patches will cover other modules. >>>>>> >>>>>> Highlights of this patch include: >>>>>> - Changes will affect SQL Editors in Create dialog boxes, SQL tab of >>>>>> the main screen, Query tool, History entries in the query tool, Quer= y tool >>>>>> opened in New Tab/Window >>>>>> - All the components of SQL editor will refer to single source of >>>>>> preferences which is cached in the Browser object. All other redunda= nt ajax >>>>>> get preference calls are removed. >>>>>> - SQL editor will not refer template JS variables anymore, once all >>>>>> the references are removed the template variables will also be remov= ed. >>>>>> - Code refactoring wherever possible. >>>>>> - Covered JS test cases wherever possible. >>>>>> >>>>>> Request you to kindly review. >>>>>> >>>>>> -- >>>>>> Thanks and Regards, >>>>>> Aditya Toshniwal >>>>>> Software Engineer | EnterpriseDB Software Solutions | Pune >>>>>> "Don't Complain about Heat, Plant a tree" >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> *Akshay Joshi* >>>>> >>>>> *Sr. Software Architect * >>>>> >>>>> >>>>> >>>>> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >>>>> >>>> >>>> >>>> >>>> -- >>>> Thanks and Regards, >>>> Aditya Toshniwal >>>> Software Engineer | EnterpriseDB Software Solutions | Pune >>>> "Don't Complain about Heat, Plant a tree" >>>> >>> >>> >>> >>> -- >>> Thanks and Regards, >>> Aditya Toshniwal >>> Software Engineer | EnterpriseDB Software Solutions | Pune >>> "Don't Complain about Heat, Plant a tree" >>> >> >> >> >> -- >> 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 Software Solutions | Pune > "Don't Complain about Heat, Plant a tree" > --=20 Thanks and Regards, Aditya Toshniwal Software Engineer | EnterpriseDB Software Solutions | Pune "Don't Complain about Heat, Plant a tree" --0000000000007c6c84057028ee91 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

Attached is the updated patch for the RM. Chan= ge of the flags like auto commit, explain->verbose, etc. will reflect in= all other open sql editors.
Kindly review.

On Fri, Jun 29, 2018 at 10:39 PM, Adi= tya Toshniwal <aditya.toshniwal@enterprisedb.com> wrote:
Hi Dave,
<= div class=3D"gmail_extra">
O= n Fri, Jun 29, 2018 at 9:30 PM, Dave Page <dpage@pgadmin.org> wrote:
Hi

On Fri, Jun 29, 2018= at 3:14 PM, Aditya Toshniwal <aditya.toshniwal@enterprise= db.com> wrote:
=
Hi Hackers,= =C2=A0

Attached is the updated patch.
=

This seems to work for the most part= , however I saw what seemed like odd behaviour. If I have 2 query tool wind= ows open;

- Changing a preference from the Prefere= nces dialogue updates both query tools.

- Changing= a preference from a Query Tool updates the Preferences dialogue.

- Changing a preference from a Query Tool does *not* update= the other Query Tool.

The last point seems odd to= me, though it also kinda makes sense to not have one query tool affect the= other. The problem with that is that it could get quite confusing when the= y get out of sync. I think it would be better for a change in one Query Too= l to update the other(s).=C2=A0

What do you think?= Was this behaviour intentional?
=C2=A0
=E2=80=8BNo this was not intentional. It should refle= ct in other query tools as well because changing the flags like Auto Commit= changes the preferences config and is not local to a Query tool. I missed = the fact that some preferences can be changed from other than preference di= alog.=E2=80=8B
=C2=A0
=E2=80=8BWill send the updated patch wi= th the fix.=E2=80=8B

(FYI, in case this was a one-off bug, I was test= ing using "Auto Commit?")
=C2=A0

On Fri, Jun 29, 2018 at 4:46 PM, Aditya Toshniwal <aditya.toshniwal@enterprisedb.com> wrote:
Hi Akshay,

On Fri, Jun 29, 2018 at 3:42 PM, Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi Aditya=C2=A0

=
I have applied your patch and run pgAdmin4. I have found following two= issue in the browser:
  • Found error while open Preferences= dialog. Refer Open_Preferences_Dialog.png
= =E2=80=8BThis error occurs even with the latest pull without changes.=E2=80= =8B
=C2=A0
=
  • Set the preferences setting "Open in new browser tab"= ; to True and open the query tool. Refer "Open_In_New_Broswer.png"= ;.
=E2=80=8BWill look into this.=E2=80=8B=C2=A0
I haven't review the code.

On Thu, J= un 28, 2018 at 8:04 PM, Aditya Toshniwal <aditya.toshniwal= @enterprisedb.com> wrote:
Hi Hacke= rs,

Attached is the patch for making prefer= ences realtime and applying without reseting the layout. Please note, the p= atch is only for one module - SQL Editor and is the first part for the RM. = There are lot of changes to be done to cover all and hence sending in parts= . This will not affect/break existing code. Further patches will cover othe= r modules.

Highlights of this patch include= :
- Changes will affect = SQL Editors in Create dialog boxes, SQL tab of the main screen, Query tool,= History entries in the query tool, Query tool opened in New Tab/Window
- All the components of SQL= editor will refer to single source of preferences which is cached in the B= rowser object. All other redundant ajax get preference calls are removed.
-=C2=A0SQL editor will = not refer template JS variables anymore, once all the references are remove= d the template variables will also be removed.
- Code refactoring wherever possible.
- Covered JS test cases whereve= r possible.

Request you to kindly review.

--
<= div dir=3D"ltr">
Thanks and Regards,
Aditya Toshniwal
= Software Engineer |=C2=A0EnterpriseDB So= ftware Solutions |=C2=A0Pune
= "Don't Compla= in about Heat, Plant a tree"



--
<= b>Akshay Joshi
Sr. Software Architect

<= div>
Phone= : +91 20-3058-9517
Mobile: +91 976-788-8246



=
--
Thanks and Regards,<= div>Aditya Toshniwal
Software Enginee= r |=C2=A0EnterpriseDB Software Solutions |=C2=A0Pune
"Don&#= 39;t Complain about Heat, Plant a tree"



--
Thanks and Regards,
Aditya Toshniwal
Software Engineer |=C2=A0EnterpriseDB Software Solutions |=C2= =A0Pune
"Don't Complain about Heat, Plant a tree"



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

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



--
<= font face=3D"trebuchet ms, sans-serif" size=3D"2" color=3D"#000000">Thanks = and Regards,
<= font face=3D"trebuchet ms, sans-serif" size=3D"2" color=3D"#000000">Aditya = Toshniwal
Software Engineer |=C2=A0EnterpriseDB Software Solutions |=C2=A0<= /span>Pune
"Don't Complain about Heat, Plant a tree"=



--
Thanks and Regards,
Aditya Toshniwal
Software Engineer |=C2=A0EnterpriseDB Software Sol= utions |=C2=A0Pune
"Don't Complain about Heat, Plant a tr= ee"
--0000000000007c6c84057028ee91-- --0000000000007c6c89057028ee93 Content-Type: application/octet-stream; name="0001-RM3294.patch" Content-Disposition: attachment; filename="0001-RM3294.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jj6wuze70 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvX19pbml0X18ucHkgYi93ZWIvcGdhZG1p bi9icm93c2VyL19faW5pdF9fLnB5CmluZGV4IDM3NDFkOWQzLi5mYjFlYjdkYiAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL19faW5pdF9fLnB5CkBAIC02ODAsMTcgKzY4MCw2IEBAIGRlZiBicm93c2VyX2NzcygpOgog ICAgICIiIlJlbmRlciBhbmQgcmV0dXJuIENTUyBzbmlwcGV0cyBmcm9tIHRoZSBub2RlcyBhbmQg bW9kdWxlcy4iIiIKICAgICBzbmlwcGV0cyA9IFtdCiAKLSAgICAjIEdldCBjb25maWd1cmFibGUg b3B0aW9ucwotICAgIHByZWZzID0gUHJlZmVyZW5jZXMubW9kdWxlKCdzcWxlZGl0b3InKQotCi0g ICAgc3FsX2ZvbnRfc2l6ZV9wcmVmID0gcHJlZnMucHJlZmVyZW5jZSgnc3FsX2ZvbnRfc2l6ZScp Ci0gICAgc3FsX2ZvbnRfc2l6ZSA9IHJvdW5kKGZsb2F0KHNxbF9mb250X3NpemVfcHJlZi5nZXQo KSksIDIpCi0KLSAgICBpZiBzcWxfZm9udF9zaXplICE9IDA6Ci0gICAgICAgIHNuaXBwZXRzLmFw cGVuZCgKLSAgICAgICAgICAgICcuQ29kZU1pcnJvciB7IGZvbnQtc2l6ZTogJXNlbTsgfScgJSBz dHIoc3FsX2ZvbnRfc2l6ZSkKLSAgICAgICAgKQotCiAgICAgZm9yIHN1Ym1vZHVsZSBpbiBibHVl cHJpbnQuc3VibW9kdWxlczoKICAgICAgICAgc25pcHBldHMuZXh0ZW5kKHN1Ym1vZHVsZS5jc3Nz bmlwcGV0cykKICAgICByZXR1cm4gbWFrZV9yZXNwb25zZSgKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc3RhdGljL2Nzcy9icm93c2VyLmNzcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c3RhdGljL2Nzcy9icm93c2VyLmNzcwppbmRleCAzYmEzMzBkMy4uNTAyODEyYjggMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2Nzcy9icm93c2VyLmNzcworKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3N0YXRpYy9jc3MvYnJvd3Nlci5jc3MKQEAgLTEsMyArMSw2IEBACis6 cm9vdCB7CisgIC0tY29kZW1pcnJvci1mb250LXNpemUgOiAxZW07Cit9CiAvKiBTdHlsZXMgZm9y IHRoZSBtYWluIGJyb3dzZXIgKi8KIC5icm93c2VyLXBhbmUtY29udGFpbmVyIHsKICAgICBwb3Np dGlvbjogYWJzb2x1dGU7CkBAIC02NiwzICs2OSw3IEBAIHNhbXAsCiAucGctbG9naW4taWNvbiB7 CiAgIGZvbnQtc2l6ZTogMTZweDsKIH0KKworLkNvZGVNaXJyb3IgeworICBmb250LXNpemU6IHZh cigtLWNvZGVtaXJyb3ItZm9udC1zaXplLCAnMWVtJyk7Cit9CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3N0YXRpYy9qcy9icm93c2VyLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z dGF0aWMvanMvYnJvd3Nlci5qcwppbmRleCBiMjY3MzhjZi4uYzMzMGE4NzEgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL2Jyb3dzZXIuanMKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zdGF0aWMvanMvYnJvd3Nlci5qcwpAQCAtMiw4ICsyLDggQEAgZGVmaW5lKCdw Z2FkbWluLmJyb3dzZXInLCBbCiAgICdzb3VyY2VzL3RyZWUvdHJlZScsCiAgICdzb3VyY2VzL2dl dHRleHQnLCAnc291cmNlcy91cmxfZm9yJywgJ3JlcXVpcmUnLCAnanF1ZXJ5JywgJ3VuZGVyc2Nv cmUnLCAndW5kZXJzY29yZS5zdHJpbmcnLAogICAnYm9vdHN0cmFwJywgJ3NvdXJjZXMvcGdhZG1p bicsICdwZ2FkbWluLmFsZXJ0aWZ5anMnLCAnYnVuZGxlZF9jb2RlbWlycm9yJywKLSAgJ3NvdXJj ZXMvY2hlY2tfbm9kZV92aXNpYmlsaXR5JywgJ3NvdXJjZXMvbW9kaWZ5X2FuaW1hdGlvbicsICdw Z2FkbWluLmJyb3dzZXIudXRpbHMnLCAnd2Nkb2NrZXInLAotICAnanF1ZXJ5LmNvbnRleHRtZW51 JywgJ2pxdWVyeS5hY2lwbHVnaW4nLCAnanF1ZXJ5LmFjaXRyZWUnLAorICAnc291cmNlcy9jaGVj a19ub2RlX3Zpc2liaWxpdHknLCAncGdhZG1pbi5icm93c2VyLnV0aWxzJywgJ3djZG9ja2VyJywK KyAgJ2pxdWVyeS5jb250ZXh0bWVudScsICdqcXVlcnkuYWNpcGx1Z2luJywgJ2pxdWVyeS5hY2l0 cmVlJywgJ3BnYWRtaW4uYnJvd3Nlci5wcmVmZXJlbmNlcycsCiAgICdwZ2FkbWluLmJyb3dzZXIu bWVzc2FnZXMnLAogICAncGdhZG1pbi5icm93c2VyLm1lbnUnLCAncGdhZG1pbi5icm93c2VyLnBh bmVsJywKICAgJ3BnYWRtaW4uYnJvd3Nlci5lcnJvcicsICdwZ2FkbWluLmJyb3dzZXIuZnJhbWUn LApAQCAtMTMsNyArMTMsNyBAQCBkZWZpbmUoJ3BnYWRtaW4uYnJvd3NlcicsIFsKIF0sIGZ1bmN0 aW9uKAogICB0cmVlLAogICBnZXR0ZXh0LCB1cmxfZm9yLCByZXF1aXJlLCAkLCBfLCBTLCBCb290 c3RyYXAsIHBnQWRtaW4sIEFsZXJ0aWZ5LAotICBjb2RlbWlycm9yLCBjaGVja05vZGVWaXNpYmls aXR5LCBtb2RpZnlBbmltYXRpb24KKyAgY29kZW1pcnJvciwgY2hlY2tOb2RlVmlzaWJpbGl0eQog KSB7CiAgIHdpbmRvdy5qUXVlcnkgPSB3aW5kb3cuJCA9ICQ7CiAgIC8vIFNvbWUgc2NyaXB0cyBk byBleHBvcnQgdGhlaXIgb2JqZWN0IGluIHRoZSB3aW5kb3cgb25seS4KQEAgLTM0Miw3ICszNDIs NyBAQCBkZWZpbmUoJ3BnYWRtaW4uYnJvd3NlcicsIFsKIAogICAgICAgLy8gQ2FjaGUgcHJlZmVy ZW5jZXMKICAgICAgIG9iai5jYWNoZV9wcmVmZXJlbmNlcygpOwotICAgICAgdGhpcy5hZGRfcGFu ZWxzKCk7CisgICAgICBvYmouYWRkX3BhbmVscygpOwogICAgICAgLy8gSW5pdGlhbGl6ZSB0aGUg RG9ja2VyCiAgICAgICBvYmouZG9ja2VyID0gbmV3IHdjRG9ja2VyKAogICAgICAgICAnI2RvY2tl ckNvbnRhaW5lcicsIHsKQEAgLTQwMCwxMSArNDAwLDIyIEBAIGRlZmluZSgncGdhZG1pbi5icm93 c2VyJywgWwogICAgICAgICAgIG1vZGU6ICd0ZXh0L3gtcGdzcWwnLAogICAgICAgICAgIHJlYWRP bmx5OiB0cnVlLAogICAgICAgICAgIGV4dHJhS2V5czogcGdBZG1pbi5Ccm93c2VyLmVkaXRvcl9z aG9ydGN1dF9rZXlzLAotICAgICAgICAgIHRhYlNpemU6IHBnQWRtaW4uQnJvd3Nlci5lZGl0b3Jf b3B0aW9ucy50YWJTaXplLAotICAgICAgICAgIGxpbmVXcmFwcGluZzogcGdBZG1pbi5Ccm93c2Vy LmVkaXRvcl9vcHRpb25zLndyYXBDb2RlLAotICAgICAgICAgIGF1dG9DbG9zZUJyYWNrZXRzOiBw Z0FkbWluLkJyb3dzZXIuZWRpdG9yX29wdGlvbnMuaW5zZXJ0X3BhaXJfYnJhY2tldHMsCi0gICAg ICAgICAgbWF0Y2hCcmFja2V0czogcGdBZG1pbi5Ccm93c2VyLmVkaXRvcl9vcHRpb25zLmJyYWNl X21hdGNoaW5nLAogICAgICAgICB9KTsKKyAgICAgIC8qIENhY2hlIG1heSB0YWtlIHRpbWUgdG8g bG9hZCBmb3IgdGhlIGZpcnN0IHRpbWUKKyAgICAgICAqIFJlZmxlY3QgdGhlIGNoYW5nZXMgb25j ZSBjYWNoZSBpcyBhdmFpbGFibGUKKyAgICAgICAqLworICAgICAgbGV0IGNhY2hlSW50ZXJ2YWxJ ZCA9IHNldEludGVydmFsKCgpPT4geworICAgICAgICBsZXQgc3FsRWRpdFByZWZlcmVuY2VzID0g b2JqLmdldF9wcmVmZXJlbmNlc19mb3JfbW9kdWxlKCdzcWxlZGl0b3InKTsKKyAgICAgICAgaWYo c3FsRWRpdFByZWZlcmVuY2VzKSB7CisgICAgICAgICAgY2xlYXJJbnRlcnZhbChjYWNoZUludGVy dmFsSWQpOworICAgICAgICAgIG9iai5yZWZsZWN0UHJlZmVyZW5jZXMoJ3NxbGVkaXRvcicpOwor ICAgICAgICB9CisgICAgICB9LCA1MDApOworCisgICAgICAvKiBDaGVjayBmb3Igc3FsIGVkaXRv ciBwcmVmZXJlbmNlIGNoYW5nZXMgKi8KKyAgICAgIG9iai5vblByZWZlcmVuY2VzQ2hhbmdlKCdz cWxlZGl0b3InLCBmdW5jdGlvbigpIHsKKyAgICAgICAgb2JqLnJlZmxlY3RQcmVmZXJlbmNlcygn c3FsZWRpdG9yJyk7CisgICAgICB9KTsKIAogICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsK ICAgICAgICAgb2JqLmVkaXRvci5zZXRWYWx1ZSgnLS0gJyArIHNlbGVjdF9vYmplY3RfbXNnKTsK QEAgLTUxNCwxMCArNTI1LDYgQEAgZGVmaW5lKCdwZ2FkbWluLmJyb3dzZXInLCBbCiAgICAgICB9 OwogICAgIH0sCiAKLSAgICAvLyBUaGlzIHdpbGwgaG9sZCBwcmVmZXJlbmNlIGRhdGEgKFdvcmtz IGFzIGEgY2FjaGUgb2JqZWN0KQotICAgIC8vIEhlcmUgbm9kZSB3aWxsIGJlIGEga2V5IGFuZCBp dCdzIHByZWZlcmVuY2UgZGF0YSB3aWxsIGJlIHZhbHVlCi0gICAgcHJlZmVyZW5jZXNfY2FjaGU6 IHt9LAotCiAgICAgLy8gQWRkIG1lbnVzIG9mIG1vZHVsZS9leHRlbnNpb24gYXQgYXBwcm9wcmlh dGUgbWVudQogICAgIGFkZF9tZW51czogZnVuY3Rpb24obWVudXMpIHsKICAgICAgIHZhciBzZWxm ID0gdGhpcywKQEAgLTY2MSw0NiArNjY4LDYgQEAgZGVmaW5lKCdwZ2FkbWluLmJyb3dzZXInLCBb CiAgICAgICAgIH0KICAgICAgIH0KICAgICB9LAotCi0gICAgLy8gR2V0IHByZWZlcmVuY2UgdmFs dWUgZnJvbSBjYWNoZQotICAgIGdldF9wcmVmZXJlbmNlOiBmdW5jdGlvbihtb2R1bGUsIHByZWZl cmVuY2UpIHsKLSAgICAgIHZhciBzZWxmID0gdGhpczsKLSAgICAgIC8vIElmIGNhY2hlIGlzIG5v dCB5ZXQgbG9hZGVkIHRoZW4ga2VlcCBjaGVja2luZwotICAgICAgaWYoXy5zaXplKHNlbGYucHJl ZmVyZW5jZXNfY2FjaGUpID09IDApIHsKLSAgICAgICAgdmFyIGNoZWNrX3ByZWZlcmVuY2UgPSBm dW5jdGlvbigpIHsKLSAgICAgICAgICAgIGlmKF8uc2l6ZShzZWxmLnByZWZlcmVuY2VzX2NhY2hl KSA+IDApIHsKLSAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChwcmVmZXJlbmNlVGltZW91dCk7 Ci0gICAgICAgICAgICAgIHJldHVybiBfLmZpbmRXaGVyZSgKLSAgICAgICAgICAgICAgc2VsZi5w cmVmZXJlbmNlc19jYWNoZSwgeydtb2R1bGUnOiBtb2R1bGUsICduYW1lJzogcHJlZmVyZW5jZX0K LSAgICAgICAgICAgICk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBw cmVmZXJlbmNlVGltZW91dCA9IHNldEludGVydmFsKGNoZWNrX3ByZWZlcmVuY2UsIDEwMDApOwot ICAgICAgfQotICAgICAgZWxzZSB7Ci0gICAgICAgIHJldHVybiBfLmZpbmRXaGVyZSgKLSAgICAg ICAgICBzZWxmLnByZWZlcmVuY2VzX2NhY2hlLCB7J21vZHVsZSc6IG1vZHVsZSwgJ25hbWUnOiBw cmVmZXJlbmNlfQotICAgICAgICApOwotICAgICAgfQotICAgIH0sCi0KLSAgICAvLyBHZXQgYW5k IGNhY2hlIHRoZSBwcmVmZXJlbmNlcwotICAgIGNhY2hlX3ByZWZlcmVuY2VzOiBmdW5jdGlvbiAo KSB7Ci0gICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0gICAgICAkLmFqYXgoewotICAgICAgICB1cmw6 IHVybF9mb3IoJ3ByZWZlcmVuY2VzLmdldF9hbGwnKSwKLSAgICAgICAgc3VjY2VzczogZnVuY3Rp b24ocmVzKSB7Ci0gICAgICAgICAgc2VsZi5wcmVmZXJlbmNlc19jYWNoZSA9IHJlczsKLSAgICAg ICAgICBwZ0Jyb3dzZXIua2V5Ym9hcmROYXZpZ2F0aW9uLmluaXQoKTsKLSAgICAgICAgICBtb2Rp ZnlBbmltYXRpb24ubW9kaWZ5QWNpdHJlZUFuaW1hdGlvbihzZWxmKTsKLSAgICAgICAgICBtb2Rp ZnlBbmltYXRpb24ubW9kaWZ5QWxlcnRpZnlBbmltYXRpb24oc2VsZik7Ci0gICAgICAgIH0sCi0g ICAgICAgIGVycm9yOiBmdW5jdGlvbih4aHIsIHN0YXR1cywgZXJyb3IpIHsKLSAgICAgICAgICBB bGVydGlmeS5wZ1Jlc3BFcnJvck5vdGlmeSh4aHIsIGVycm9yKTsKLSAgICAgICAgfSwKLSAgICAg IH0pOwotICAgIH0sCi0KICAgICBfZmluZFRyZWVDaGlsZE5vZGU6IGZ1bmN0aW9uKF9pLCBfZCwg X28pIHsKICAgICAgIHZhciBsb2FkZWQgPSBfby50Lndhc0xvYWQoX2kpLAogICAgICAgICBvbkxv YWQgPSBmdW5jdGlvbigpIHsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGlj L2pzL3ByZWZlcmVuY2VzLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvcHJlZmVy ZW5jZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLmIwYzZkYzQ4Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvcHJlZmVyZW5j ZXMuanMKQEAgLTAsMCArMSwxNDYgQEAKK2ltcG9ydCBwZ0FkbWluIGZyb20gJ3NvdXJjZXMvcGdh ZG1pbic7CitpbXBvcnQgdXJsX2ZvciBmcm9tICdzb3VyY2VzL3VybF9mb3InOworaW1wb3J0ICog YXMgbW9kaWZ5QW5pbWF0aW9uIGZyb20gJ3NvdXJjZXMvbW9kaWZ5X2FuaW1hdGlvbic7CitpbXBv cnQgJCBmcm9tICdqcXVlcnknOworaW1wb3J0ICogYXMgQWxlcnRpZnkgZnJvbSAncGdhZG1pbi5h bGVydGlmeWpzJzsKK2ltcG9ydCAqIGFzIFNxbEVkaXRvclV0aWxzIGZyb20gJ3NvdXJjZXMvc3Fs ZWRpdG9yX3V0aWxzJzsKKworY29uc3QgcGdCcm93c2VyID0gcGdBZG1pbi5Ccm93c2VyID0gcGdB ZG1pbi5Ccm93c2VyIHx8IHt9OworCisvKiBBZGQgY2FjaGUgcmVsYXRlZCBtZXRob2RzIGFuZCBw cm9wZXJ0aWVzICovCitfLmV4dGVuZChwZ0Jyb3dzZXIsIHsKKyAgLyogVGhpcyB3aWxsIGhvbGQg cHJlZmVyZW5jZSBkYXRhIChXb3JrcyBhcyBhIGNhY2hlIG9iamVjdCkKKyAgICogSGVyZSBub2Rl IHdpbGwgYmUgYSBrZXkgYW5kIGl0J3MgcHJlZmVyZW5jZSBkYXRhIHdpbGwgYmUgdmFsdWUKKyAg ICovCisgIHByZWZlcmVuY2VzX2NhY2hlOiBbXSwKKworICAvKiBUaGlzIHdpbGwgYmUgdXNlZCBi eSBwb2xsZXIgb2YgbmV3IHRhYnMvd2luZG93cyB0byBjaGVjaworICAgKiBpZiBwcmVmZXJlbmNl IGNhY2hlIGlzIHVwZGF0ZWQgaW4gcGFyZW50L3dpbmRvdy5vcGVuZXIuCisgICAqLworICBwcmVm Y2FjaGVfdmVyc2lvbjogMCwKKworICAvKiBHZW5lcmF0ZSBhIHVuaXF1ZSB2ZXJzaW9uIG51bWJl ciAqLworICBnZW5lcmF0ZV9wcmVmZXJlbmNlX3ZlcnNpb246IGZ1bmN0aW9uKCkgeworICAgIHJl dHVybiAobmV3IERhdGUoKSkuZ2V0VGltZSgpOworICB9LAorCisgIHByZWZlcmVuY2VfdmVyc2lv bjogZnVuY3Rpb24odmVyc2lvbikgeworICAgIGlmKHZlcnNpb24pIHsKKyAgICAgIHRoaXMucHJl ZmNhY2hlX3ZlcnNpb24gPSB2ZXJzaW9uOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgIHJldHVy biB0aGlzLnByZWZjYWNoZV92ZXJzaW9uOworICAgIH0KKyAgfSwKKworICAvKiBHZXQgY2FjaGVk IHByZWZlcmVuY2UgKi8KKyAgZ2V0X3ByZWZlcmVuY2U6IGZ1bmN0aW9uKG1vZHVsZSwgcHJlZmVy ZW5jZSl7CisgICAgY29uc3Qgc2VsZiA9IHRoaXM7CisgICAgLy8gSWYgY2FjaGUgaXMgbm90IHll dCBsb2FkZWQgdGhlbiBrZWVwIGNoZWNraW5nCisgICAgaWYoXy5zaXplKHNlbGYucHJlZmVyZW5j ZXNfY2FjaGUpID09IDApIHsKKyAgICAgIHZhciBjaGVja19wcmVmZXJlbmNlID0gZnVuY3Rpb24o KSB7CisgICAgICAgICAgaWYoc2VsZi5wcmVmZXJlbmNlc19jYWNoZS5sZW5ndGggPiAwKSB7Cisg ICAgICAgICAgICBjbGVhckludGVydmFsKHByZWZlcmVuY2VUaW1lb3V0KTsKKyAgICAgICAgICAg IHJldHVybiBfLmZpbmRXaGVyZSgKKyAgICAgICAgICAgIHNlbGYucHJlZmVyZW5jZXNfY2FjaGUs IHsnbW9kdWxlJzogbW9kdWxlLCAnbmFtZSc6IHByZWZlcmVuY2V9CisgICAgICAgICAgKTsKKyAg ICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHByZWZlcmVuY2VUaW1lb3V0ID0gc2V0SW50 ZXJ2YWwoY2hlY2tfcHJlZmVyZW5jZSwgMTAwMCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAg cmV0dXJuIF8uZmluZFdoZXJlKAorICAgICAgICBzZWxmLnByZWZlcmVuY2VzX2NhY2hlLCB7J21v ZHVsZSc6IG1vZHVsZSwgJ25hbWUnOiBwcmVmZXJlbmNlfQorICAgICAgKTsKKyAgICB9CisgIH0s CisKKyAgLyogR2V0IGFsbCB0aGUgcHJlZmVyZW5jZXMgb2YgYSBtb2R1bGUgKi8KKyAgZ2V0X3By ZWZlcmVuY2VzX2Zvcl9tb2R1bGU6IGZ1bmN0aW9uKG1vZHVsZSkgeworICAgIHZhciBzZWxmID0g dGhpczsKKyAgICBsZXQgcHJlZmVyZW5jZXMgPSB7fTsKKyAgICBfLmVhY2goCisgICAgICBfLndo ZXJlKHNlbGYucHJlZmVyZW5jZXNfY2FjaGUsIHsnbW9kdWxlJzogbW9kdWxlfSksCisgICAgICAo cHJlZmVyZW5jZSkgPT4geworICAgICAgICBwcmVmZXJlbmNlc1twcmVmZXJlbmNlLm5hbWVdID0g cHJlZmVyZW5jZS52YWx1ZTsKKyAgICAgIH0KKyAgICApOworICAgIHJldHVybiBwcmVmZXJlbmNl czsKKyAgfSwKKworICAvKiBHZXQgcHJlZmVyZW5jZSBvZiBhbiBpZCwgaWQgaXMgbnVtZXJpYyAq LworICBnZXRfcHJlZmVyZW5jZV9mb3JfaWQgOiBmdW5jdGlvbihpZCkgeworICAgIHZhciBzZWxm ID0gdGhpczsKKyAgICByZXR1cm4gXy5maW5kV2hlcmUoc2VsZi5wcmVmZXJlbmNlc19jYWNoZSwg eydpZCc6IGlkfSk7CisgIH0sCisKKyAgLy8gR2V0IGFuZCBjYWNoZSB0aGUgcHJlZmVyZW5jZXMK KyAgY2FjaGVfcHJlZmVyZW5jZXM6IGZ1bmN0aW9uIChtb2R1bGVzQ2hhbmdlZCkgeworICAgIHZh ciBzZWxmID0gdGhpczsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgJC5hamF4 KHsKKyAgICAgICAgdXJsOiB1cmxfZm9yKCdwcmVmZXJlbmNlcy5nZXRfYWxsJyksCisgICAgICAg IHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykgeworICAgICAgICAgIHNlbGYucHJlZmVyZW5jZXNfY2Fj aGUgPSByZXM7CisgICAgICAgICAgc2VsZi5wcmVmZXJlbmNlX3ZlcnNpb24oc2VsZi5nZW5lcmF0 ZV9wcmVmZXJlbmNlX3ZlcnNpb24oKSk7CisKKyAgICAgICAgICBwZ0Jyb3dzZXIua2V5Ym9hcmRO YXZpZ2F0aW9uLmluaXQoKTsKKyAgICAgICAgICBpZihwZ0Jyb3dzZXIudHJlZSkgeworICAgICAg ICAgICAgbW9kaWZ5QW5pbWF0aW9uLm1vZGlmeUFjaXRyZWVBbmltYXRpb24oc2VsZik7CisgICAg ICAgICAgICBtb2RpZnlBbmltYXRpb24ubW9kaWZ5QWxlcnRpZnlBbmltYXRpb24oc2VsZik7Cisg ICAgICAgICAgfQorCisgICAgICAgICAgLyogT25jZSB0aGUgY2FjaGUgaXMgbG9hZGVkIGFmdGVy IGNoYW5naW5nIHRoZSBwcmVmZXJlbmNlcywKKyAgICAgICAgICAgKiBub3RpZnkgdGhlIG1vZHVs ZXMgb2YgdGhlIGNoYW5nZQorICAgICAgICAgICAqLworICAgICAgICAgIGlmKG1vZHVsZXNDaGFu Z2VkKSB7CisgICAgICAgICAgICBpZih0eXBlb2YgbW9kdWxlc0NoYW5nZWQgPT09ICdzdHJpbmcn KXsKKyAgICAgICAgICAgICAgJC5ldmVudC50cmlnZ2VyKCdwcmVmY2hhbmdlOicrbW9kdWxlc0No YW5nZWQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgXy5lYWNoKG1vZHVs ZXNDaGFuZ2VkLCAodmFsLCBrZXkpPT4geworICAgICAgICAgICAgICAgICQuZXZlbnQudHJpZ2dl cigncHJlZmNoYW5nZTonK2tleSk7CisgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQor ICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgZXJyb3I6IGZ1bmN0aW9uKHhociwgc3Rh dHVzLCBlcnJvcikgeworICAgICAgICAgIEFsZXJ0aWZ5LnBnUmVzcEVycm9yTm90aWZ5KHhociwg ZXJyb3IpOworICAgICAgICB9LAorICAgICAgfSk7CisgICAgfSwgNTAwKTsKKyAgfSwKKworICBy ZWZsZWN0UHJlZmVyZW5jZXM6IGZ1bmN0aW9uKG1vZHVsZSkgeworICAgIGxldCBvYmogPSB0aGlz OworCisgICAgaWYobW9kdWxlID09PSAnc3FsZWRpdG9yJyB8fCBtb2R1bGUgPT09IG51bGwgfHwg dHlwZW9mIG1vZHVsZSA9PT0gJ3VuZGVmaW5lZCcpIHsKKyAgICAgIGxldCBzcWxFZGl0UHJlZmVy ZW5jZXMgPSBvYmouZ2V0X3ByZWZlcmVuY2VzX2Zvcl9tb2R1bGUoJ3NxbGVkaXRvcicpOworCisg ICAgICAkKG9iai5lZGl0b3IuZ2V0V3JhcHBlckVsZW1lbnQoKSkuY3NzKAorICAgICAgICAnZm9u dC1zaXplJyxTcWxFZGl0b3JVdGlscy5jYWxjRm9udFNpemUoc3FsRWRpdFByZWZlcmVuY2VzLnNx bF9mb250X3NpemUpCisgICAgICApOworICAgICAgb2JqLmVkaXRvci5zZXRPcHRpb24oJ3RhYlNp emUnLCBzcWxFZGl0UHJlZmVyZW5jZXMudGFiX3NpemUpOworICAgICAgb2JqLmVkaXRvci5zZXRP cHRpb24oJ2xpbmVXcmFwcGluZycsIHNxbEVkaXRQcmVmZXJlbmNlcy53cmFwX2NvZGUpOworICAg ICAgb2JqLmVkaXRvci5zZXRPcHRpb24oJ2F1dG9DbG9zZUJyYWNrZXRzJywgc3FsRWRpdFByZWZl cmVuY2VzLmluc2VydF9wYWlyX2JyYWNrZXRzKTsKKyAgICAgIG9iai5lZGl0b3Iuc2V0T3B0aW9u KCdtYXRjaEJyYWNrZXRzJywgc3FsRWRpdFByZWZlcmVuY2VzLmJyYWNlX21hdGNoaW5nKTsKKyAg ICAgIG9iai5lZGl0b3IucmVmcmVzaCgpOworICAgIH0KKyAgfSwKKworICBvblByZWZlcmVuY2Vz Q2hhbmdlOiBmdW5jdGlvbihtb2R1bGUsIGV2ZW50SGFuZGxlcikgeworICAgIHdpbmRvdy5wYXJl bnQuJChwYXJlbnQuZG9jdW1lbnQpLm9uKCdwcmVmY2hhbmdlOicrbW9kdWxlLCBmdW5jdGlvbihl dmVudCkgeworICAgICAgLyogSWYgYSBzcWxlZGl0b3IgaXMgY2xvc2VkLCBldmVudCBoYW5kbGVy IHdpbGwgYmUgY2FsbGVkCisgICAgICAgKiBidXQgdGhlIHdpbmRvdy50b3Agd2lsbCBiZSBudWxs LiBVbmJpbmQgdGhlIGV2ZW50IGhhbmRsZXIKKyAgICAgICAqLworICAgICAgaWYod2luZG93LnRv cCA9PT0gbnVsbCkgeworICAgICAgICB3aW5kb3cuJChkb2N1bWVudCkub2ZmKGV2ZW50KTsKKyAg ICAgIH0KKyAgICAgIGVsc2UgeworICAgICAgICBldmVudEhhbmRsZXIoZXZlbnQpOworICAgICAg fQorICAgIH0pOworICB9LAorCit9KTsKKworZXhwb3J0IHtwZ0Jyb3dzZXJ9OwpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vcHJlZmVyZW5jZXMvc3RhdGljL2pzL3ByZWZlcmVuY2VzLmpzIGIvd2Vi L3BnYWRtaW4vcHJlZmVyZW5jZXMvc3RhdGljL2pzL3ByZWZlcmVuY2VzLmpzCmluZGV4IGNkYmRh MGNkLi5lZWFmNGJiMCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vcHJlZmVyZW5jZXMvc3RhdGlj L2pzL3ByZWZlcmVuY2VzLmpzCisrKyBiL3dlYi9wZ2FkbWluL3ByZWZlcmVuY2VzL3N0YXRpYy9q cy9wcmVmZXJlbmNlcy5qcwpAQCAtNDM5LDggKzQzOSwxOCBAQCBkZWZpbmUoJ3BnYWRtaW4ucHJl ZmVyZW5jZXMnLCBbCiAKICAgICAgICAgICAgIGlmIChlLmJ1dHRvbi50ZXh0ID09IGdldHRleHQo J09LJykpIHsKICAgICAgICAgICAgICAgcHJlZmVyZW5jZXMudXBkYXRlQWxsKCk7CisKKyAgICAg ICAgICAgICAgLyogRmluZCB0aGUgbW9kdWxlcyBjaGFuZ2VkICovCisgICAgICAgICAgICAgIGxl dCBtb2R1bGVzQ2hhbmdlZCA9IHt9OworICAgICAgICAgICAgICBfLmVhY2goY2hhbmdlZCwgKHZh bCwga2V5KT0+IHsKKyAgICAgICAgICAgICAgICBsZXQgcHJlZiA9IHBnQnJvd3Nlci5nZXRfcHJl ZmVyZW5jZV9mb3JfaWQoTnVtYmVyKGtleSkpOworICAgICAgICAgICAgICAgIGlmKCFtb2R1bGVz Q2hhbmdlZFtwcmVmLm1vZHVsZV0pIHsKKyAgICAgICAgICAgICAgICAgIG1vZHVsZXNDaGFuZ2Vk W3ByZWYubW9kdWxlXSA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9 KTsKKwogICAgICAgICAgICAgICAvLyBSZWZyZXNoIHByZWZlcmVuY2VzIGNhY2hlCi0gICAgICAg ICAgICAgIHNldFRpbWVvdXQocGdCcm93c2VyLmNhY2hlX3ByZWZlcmVuY2VzKCksIDIwMDApOwor ICAgICAgICAgICAgICBwZ0Jyb3dzZXIuY2FjaGVfcHJlZmVyZW5jZXMobW9kdWxlc0NoYW5nZWQp OwogICAgICAgICAgICAgfQogICAgICAgICAgIH0sCiAgICAgICAgICAgYnVpbGQ6IGZ1bmN0aW9u KCkgewpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2JhY2tmb3JtLnBnYWRtaW4u anMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvYmFja2Zvcm0ucGdhZG1pbi5qcwppbmRleCBmMzM2 NGM5ZC4uYjk3OTI5MWIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9iYWNrZm9y bS5wZ2FkbWluLmpzCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9iYWNrZm9ybS5wZ2FkbWlu LmpzCkBAIC0xLDEwICsxLDExIEBACiBkZWZpbmUoWwogICAnc291cmNlcy9nZXR0ZXh0JywgJ3Vu ZGVyc2NvcmUnLCAndW5kZXJzY29yZS5zdHJpbmcnLCAnanF1ZXJ5JywKLSAgJ2JhY2tib25lJywg J2JhY2tmb3JtJywgJ2JhY2tncmlkJywgJ2NvZGVtaXJyb3InLCAnc3BlY3RydW0nLAotICAncGdh ZG1pbi5iYWNrZ3JpZCcsICdzZWxlY3QyJywKLV0sIGZ1bmN0aW9uKGdldHRleHQsIF8sIFMsICQs IEJhY2tib25lLCBCYWNrZm9ybSwgQmFja2dyaWQsIENvZGVNaXJyb3IpIHsKKyAgJ2JhY2tib25l JywgJ2JhY2tmb3JtJywgJ2JhY2tncmlkJywgJ2NvZGVtaXJyb3InLCAnc291cmNlcy9zcWxlZGl0 b3JfdXRpbHMnLAorICAnc3BlY3RydW0nLCAncGdhZG1pbi5iYWNrZ3JpZCcsICdzZWxlY3QyJywK K10sIGZ1bmN0aW9uKGdldHRleHQsIF8sIFMsICQsIEJhY2tib25lLCBCYWNrZm9ybSwgQmFja2dy aWQsIENvZGVNaXJyb3IsIFNxbEVkaXRvclV0aWxzKSB7CiAKLSAgdmFyIHBnQWRtaW4gPSAod2lu ZG93LnBnQWRtaW4gPSB3aW5kb3cucGdBZG1pbiB8fCB7fSk7CisgIHZhciBwZ0FkbWluID0gKHdp bmRvdy5wZ0FkbWluID0gd2luZG93LnBnQWRtaW4gfHwge30pLAorICAgIHBnQnJvd3NlciA9IHBn QWRtaW4uQnJvd3NlcjsKIAogICBwZ0FkbWluLmVkaXRhYmxlQ2VsbCA9IGZ1bmN0aW9uKCkgewog ICAgIGlmICh0aGlzLmF0dHJpYnV0ZXMgJiYgIV8uaXNVbmRlZmluZWQodGhpcy5hdHRyaWJ1dGVz LmRpc2FibGVkKSAmJgpAQCAtMTI1OSw4ICsxMjYwLDcgQEAgZGVmaW5lKFsKICAgICAgIHZhciBz dWJub2RlID0gZGF0YS5zdWJub2RlLnNjaGVtYSA/IGRhdGEuc3Vibm9kZSA6IGRhdGEuc3Vibm9k ZS5wcm90b3R5cGUsCiAgICAgICAgIGdyaWRTY2hlbWEgPSBCYWNrZm9ybS5nZW5lcmF0ZUdyaWRD b2x1bW5zRnJvbU1vZGVsKAogICAgICAgICAgIGRhdGEubm9kZV9pbmZvLCBzdWJub2RlLCB0aGlz LmZpZWxkLmdldCgnbW9kZScpLCBkYXRhLmNvbHVtbnMsIGRhdGEuc2NoZW1hX25vZGUKLSAgICAg ICAgKSwKLSAgICAgICAgcGdCcm93c2VyID0gd2luZG93LnBnQWRtaW4uQnJvd3NlcjsKKyAgICAg ICAgKTsKIAogICAgICAgLy8gQ2xlYW4gdXAgZXhpc3RpbmcgZ3JpZCBpZiBhbnkgKGluIGNhc2Ug b2YgcmUtcmVuZGVyKQogICAgICAgaWYgKHNlbGYuZ3JpZCkgewpAQCAtMTQyOCw2ICsxNDI4LDIz IEBAIGRlZmluZShbCiAgICAgZ2V0VmFsdWVGcm9tRE9NOiBmdW5jdGlvbigpIHsKICAgICAgIHJl dHVybiB0aGlzLmZvcm1hdHRlci50b1Jhdyh0aGlzLiRlbC5maW5kKCd0ZXh0YXJlYScpLnZhbCgp LCB0aGlzLm1vZGVsKTsKICAgICB9LAorCisgICAgcmVmbGVjdFByZWZlcmVuY2VzOiBmdW5jdGlv bigpIHsKKyAgICAgIHZhciBzZWxmID0gdGhpczsKKyAgICAgIC8qIHNlbGYuc3FsQ3RybCBpcyBu dWxsIHdoZW4gU1FMIHRhYiBpcyBub3QgYWN0aXZlICovCisgICAgICBpZihzZWxmLnNxbEN0cmwp IHsKKyAgICAgICAgbGV0IHNxbEVkaXRQcmVmZXJlbmNlcyA9IHBnQWRtaW4uQnJvd3Nlci5nZXRf cHJlZmVyZW5jZXNfZm9yX21vZHVsZSgnc3FsZWRpdG9yJyk7CisKKyAgICAgICAgJChzZWxmLnNx bEN0cmwuZ2V0V3JhcHBlckVsZW1lbnQoKSkuY3NzKAorICAgICAgICAgICdmb250LXNpemUnLFNx bEVkaXRvclV0aWxzLmNhbGNGb250U2l6ZShzcWxFZGl0UHJlZmVyZW5jZXMuc3FsX2ZvbnRfc2l6 ZSkKKyAgICAgICAgKTsKKyAgICAgICAgc2VsZi5zcWxDdHJsLnNldE9wdGlvbigndGFiU2l6ZScs IHNxbEVkaXRQcmVmZXJlbmNlcy50YWJfc2l6ZSk7CisgICAgICAgIHNlbGYuc3FsQ3RybC5zZXRP cHRpb24oJ2xpbmVXcmFwcGluZycsIHNxbEVkaXRQcmVmZXJlbmNlcy53cmFwX2NvZGUpOworICAg ICAgICBzZWxmLnNxbEN0cmwuc2V0T3B0aW9uKCdhdXRvQ2xvc2VCcmFja2V0cycsIHNxbEVkaXRQ cmVmZXJlbmNlcy5pbnNlcnRfcGFpcl9icmFja2V0cyk7CisgICAgICAgIHNlbGYuc3FsQ3RybC5z ZXRPcHRpb24oJ21hdGNoQnJhY2tldHMnLCBzcWxFZGl0UHJlZmVyZW5jZXMuYnJhY2VfbWF0Y2hp bmcpOworICAgICAgICBzZWxmLnNxbEN0cmwucmVmcmVzaCgpOworICAgICAgfQorICAgIH0sCiAg ICAgcmVuZGVyOiBmdW5jdGlvbigpIHsKICAgICAgIGlmICh0aGlzLnNxbEN0cmwpIHsKICAgICAg ICAgdGhpcy5zcWxDdHJsLnRvVGV4dEFyZWEoKTsKQEAgLTE0NDYsMTIgKzE0NjMsMTYgQEAgZGVm aW5lKFsKICAgICAgICAgICBtb2RlOiAndGV4dC94LXBnc3FsJywKICAgICAgICAgICByZWFkT25s eTogdHJ1ZSwKICAgICAgICAgICBleHRyYUtleXM6IHBnQWRtaW4uQnJvd3Nlci5lZGl0b3Jfc2hv cnRjdXRfa2V5cywKLSAgICAgICAgICB0YWJTaXplOiBwZ0FkbWluLkJyb3dzZXIuZWRpdG9yX29w dGlvbnMudGFiU2l6ZSwKLSAgICAgICAgICBsaW5lV3JhcHBpbmc6IHBnQWRtaW4uQnJvd3Nlci5l ZGl0b3Jfb3B0aW9ucy53cmFwQ29kZSwKLSAgICAgICAgICBhdXRvQ2xvc2VCcmFja2V0czogcGdB ZG1pbi5Ccm93c2VyLmVkaXRvcl9vcHRpb25zLmluc2VydF9wYWlyX2JyYWNrZXRzLAotICAgICAg ICAgIG1hdGNoQnJhY2tldHM6IHBnQWRtaW4uQnJvd3Nlci5lZGl0b3Jfb3B0aW9ucy5icmFjZV9t YXRjaGluZywKICAgICAgICAgfSk7CiAKKyAgICAgIHRoaXMucmVmbGVjdFByZWZlcmVuY2VzKCk7 CisKKyAgICAgIC8qIENoZWNrIGZvciBzcWwgZWRpdG9yIHByZWZlcmVuY2UgY2hhbmdlcyAqLwor ICAgICAgbGV0IHNlbGYgPSB0aGlzOworICAgICAgcGdCcm93c2VyLm9uUHJlZmVyZW5jZXNDaGFu Z2UoJ3NxbGVkaXRvcicsIGZ1bmN0aW9uKCkgeworICAgICAgICBzZWxmLnJlZmxlY3RQcmVmZXJl bmNlcygpOworICAgICAgfSk7CisKICAgICAgIC8qCiAgICAgICAgKiBXZSB3aWxsIGxpc3RlbiB0 byB0aGUgdGFiIGNoYW5nZSBldmVudCB0byBjaGVjaywgaWYgdGhlIFNRTCB0YWIgaGFzCiAgICAg ICAgKiBiZWVuIGNsaWNrZWQgb3IsIG5vdC4KQEAgLTE1NzEsNyArMTU5Miw2IEBAIGRlZmluZShb CiAgICkgewogICAgIHZhciBwcm90byA9IChNb2RlbCAmJiBNb2RlbC5wcm90b3R5cGUpIHx8IE1v ZGVsLAogICAgICAgc2NoZW1hID0gc3Vic2NoZW1hIHx8IChwcm90byAmJiBwcm90by5zY2hlbWEp LAotICAgICAgcGdCcm93c2VyID0gd2luZG93LnBnQWRtaW4uQnJvd3NlciwKICAgICAgIGZpZWxk cyA9IFtdLAogICAgICAgZ3JvdXBJbmZvID0ge307CiAKQEAgLTIwNTEsNiArMjA3MSwyNSBAQCBk ZWZpbmUoWwogICAgICAgcmV0dXJuIHRoaXMuc3FsQ3RybC5nZXRWYWx1ZSgpOwogICAgIH0sCiAK KyAgICByZWZsZWN0UHJlZmVyZW5jZXM6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIHNlbGYgPSB0 aGlzOworICAgICAgLyogc2VsZi5zcWxDdHJsIGlzIG51bGwgd2hlbiBEZWZpbml0aW9uIHRhYiBp cyBub3QgYWN0aXZlICovCisgICAgICBpZihzZWxmLnNxbEN0cmwpIHsKKyAgICAgICAgbGV0IHNx bEVkaXRQcmVmZXJlbmNlcyA9IHBnQWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVyZW5jZXNfZm9yX21v ZHVsZSgnc3FsZWRpdG9yJyk7CisKKyAgICAgICAgJChzZWxmLnNxbEN0cmwuZ2V0V3JhcHBlckVs ZW1lbnQoKSkuY3NzKAorICAgICAgICAgICdmb250LXNpemUnLFNxbEVkaXRvclV0aWxzLmNhbGNG b250U2l6ZShzcWxFZGl0UHJlZmVyZW5jZXMuc3FsX2ZvbnRfc2l6ZSkKKyAgICAgICAgKTsKKyAg ICAgICAgc2VsZi5zcWxDdHJsLnNldE9wdGlvbignaW5kZW50V2l0aFRhYnMnLCAhc3FsRWRpdFBy ZWZlcmVuY2VzLnVzZV9zcGFjZXMpOworICAgICAgICBzZWxmLnNxbEN0cmwuc2V0T3B0aW9uKCdp bmRlbnRVbml0Jywgc3FsRWRpdFByZWZlcmVuY2VzLnRhYl9zaXplKTsKKyAgICAgICAgc2VsZi5z cWxDdHJsLnNldE9wdGlvbigndGFiU2l6ZScsIHNxbEVkaXRQcmVmZXJlbmNlcy50YWJfc2l6ZSk7 CisgICAgICAgIHNlbGYuc3FsQ3RybC5zZXRPcHRpb24oJ2xpbmVXcmFwcGluZycsIHNxbEVkaXRQ cmVmZXJlbmNlcy53cmFwX2NvZGUpOworICAgICAgICBzZWxmLnNxbEN0cmwuc2V0T3B0aW9uKCdh dXRvQ2xvc2VCcmFja2V0cycsIHNxbEVkaXRQcmVmZXJlbmNlcy5pbnNlcnRfcGFpcl9icmFja2V0 cyk7CisgICAgICAgIHNlbGYuc3FsQ3RybC5zZXRPcHRpb24oJ21hdGNoQnJhY2tldHMnLCBzcWxF ZGl0UHJlZmVyZW5jZXMuYnJhY2VfbWF0Y2hpbmcpOworICAgICAgICBzZWxmLnNxbEN0cmwucmVm cmVzaCgpOworICAgICAgfQorICAgIH0sCisKICAgICByZW5kZXI6IGZ1bmN0aW9uKCkgewogICAg ICAgLy8gQ2xlYW4gdXAgdGhlIGV4aXN0aW5nIHNxbCBjb250cm9sCiAgICAgICBpZiAodGhpcy5z cWxDdHJsKSB7CkBAIC0yMDkzLDE0ICsyMTMyLDE0IEBAIGRlZmluZShbCiAgICAgICAgICAgbGlu ZU51bWJlcnM6IHRydWUsCiAgICAgICAgICAgbW9kZTogJ3RleHQveC1wZ3NxbCcsCiAgICAgICAg ICAgZXh0cmFLZXlzOiBwZ0FkbWluLkJyb3dzZXIuZWRpdG9yX3Nob3J0Y3V0X2tleXMsCi0gICAg ICAgICAgaW5kZW50V2l0aFRhYnM6IHBnQWRtaW4uQnJvd3Nlci5lZGl0b3Jfb3B0aW9ucy5pbmRl bnRfd2l0aF90YWJzLAotICAgICAgICAgIGluZGVudFVuaXQ6IHBnQWRtaW4uQnJvd3Nlci5lZGl0 b3Jfb3B0aW9ucy50YWJTaXplLAotICAgICAgICAgIHRhYlNpemU6IHBnQWRtaW4uQnJvd3Nlci5l ZGl0b3Jfb3B0aW9ucy50YWJTaXplLAotICAgICAgICAgIGxpbmVXcmFwcGluZzogcGdBZG1pbi5C cm93c2VyLmVkaXRvcl9vcHRpb25zLndyYXBDb2RlLAotICAgICAgICAgIGF1dG9DbG9zZUJyYWNr ZXRzOiBwZ0FkbWluLkJyb3dzZXIuZWRpdG9yX29wdGlvbnMuaW5zZXJ0X3BhaXJfYnJhY2tldHMs Ci0gICAgICAgICAgbWF0Y2hCcmFja2V0czogcGdBZG1pbi5Ccm93c2VyLmVkaXRvcl9vcHRpb25z LmJyYWNlX21hdGNoaW5nLAogICAgICAgICB9KTsKIAorICAgICAgc2VsZi5yZWZsZWN0UHJlZmVy ZW5jZXMoKTsKKyAgICAgIC8qIENoZWNrIGZvciBzcWwgZWRpdG9yIHByZWZlcmVuY2UgY2hhbmdl cyAqLworICAgICAgcGdCcm93c2VyLm9uUHJlZmVyZW5jZXNDaGFuZ2UoJ3NxbGVkaXRvcicsIGZ1 bmN0aW9uKCkgeworICAgICAgICBzZWxmLnJlZmxlY3RQcmVmZXJlbmNlcygpOworICAgICAgfSk7 CisKICAgICAgIC8vIERpc2FibGUgZWRpdG9yCiAgICAgICBpZiAoaXNEaXNhYmxlZCkgewogICAg ICAgICAvLyBzZXQgcmVhZCBvbmx5IG1vZGUgdG8gdHJ1ZSBpbnN0ZWFkIG9mICdub2N1cnNvcics IGFuZCBoaWRlIGN1cnNvciB1c2luZyBhIGNsYXNzIHNvIHRoYXQgY29weWluZyBpcyBlbmFibGVk CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMva2V5Ym9hcmRfc2hvcnRjdXRzLmpz IGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2tleWJvYXJkX3Nob3J0Y3V0cy5qcwppbmRleCAxZmUw N2U5Yi4uNTdkOGEzMDMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9rZXlib2Fy ZF9zaG9ydGN1dHMuanMKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2tleWJvYXJkX3Nob3J0 Y3V0cy5qcwpAQCAtOCw2ICs4LDcgQEAKIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKIGltcG9ydCAkIGZy b20gJ2pxdWVyeSc7CitpbXBvcnQgZ2V0dGV4dCBmcm9tICdzb3VyY2VzL2dldHRleHQnOwogCiBj b25zdCBQRVJJT0RfS0VZID0gMTkwLAogICBGV0RfU0xBU0hfS0VZID0gMTkxLApAQCAtNDksNiAr NTAsNTIgQEAgZnVuY3Rpb24gaXNDdHJsQWx0Qm90aChldmVudCkgewogICByZXR1cm4gZXZlbnQu Y3RybEtleSAmJiBldmVudC5hbHRLZXkgJiYgIWV2ZW50LnNoaWZ0S2V5OwogfQogCisvKiBSZXR1 cm5zIHRoZSBrZXkgb2Ygc2hvcnRjdXQgKi8KK2Z1bmN0aW9uIHNob3J0Y3V0X2tleShzaG9ydGN1 dCkgeworICBsZXQga2V5ID0gJyc7CisgIGlmKHNob3J0Y3V0WydrZXknXSAmJiBzaG9ydGN1dFsn a2V5J11bJ2NoYXInXSkgeworICAgIGtleSA9IHNob3J0Y3V0WydrZXknXVsnY2hhciddLnRvVXBw ZXJDYXNlKCk7CisgIH0KKyAgcmV0dXJuIGtleTsKK30KKworLyogQ29udmVydHMgc2hvcnRjdXQg b2JqZWN0IHRvIHRpdGxlIHJlcHJlc2VudGF0aW9uCisgKiBTaG9ydGN1dCBvYmplY3QgaXMgYnJv d3Nlci5nZXRfcHJlZmVyZW5jZSgpLnZhbHVlCisgKi8KK2Z1bmN0aW9uIHNob3J0Y3V0X3RpdGxl KHRpdGxlLCBzaG9ydGN1dCkgeworICBsZXQgdGV4dF9yZXByZXNlbnRhdGlvbiA9ICcnOworCisg IGlmICh0eXBlb2Ygc2hvcnRjdXQgPT09ICd1bmRlZmluZWQnIHx8IHNob3J0Y3V0ID09PSBudWxs KSB7CisgICAgcmV0dXJuIHRleHRfcmVwcmVzZW50YXRpb247CisgIH0KKyAgaWYoc2hvcnRjdXRb J2FsdCddKSB7CisgICAgdGV4dF9yZXByZXNlbnRhdGlvbiA9IGdldHRleHQoJ0FsdCcpICsgJysn OworICB9CisgIGlmKHNob3J0Y3V0WydzaGlmdCddKSB7CisgICAgdGV4dF9yZXByZXNlbnRhdGlv biArPSBnZXR0ZXh0KCdTaGlmdCcpICsgJysnOworICB9CisgIGlmKHNob3J0Y3V0Wydjb250cm9s J10pIHsKKyAgICB0ZXh0X3JlcHJlc2VudGF0aW9uICs9IGdldHRleHQoJ0N0cmwnKSArICcrJzsK KyAgfQorICB0ZXh0X3JlcHJlc2VudGF0aW9uICs9IHNob3J0Y3V0X2tleShzaG9ydGN1dCk7CisK KyAgcmV0dXJuIGdldHRleHQoJyUodGl0bGUpcyAoJSh0ZXh0X3JlcHJlc2VudGF0aW9uKXMpJyx7 CisgICAgJ3RpdGxlJzogdGl0bGUsCisgICAgJ3RleHRfcmVwcmVzZW50YXRpb24nOiB0ZXh0X3Jl cHJlc2VudGF0aW9uLAorICB9KTsKK30KKworLyogUmV0dXJucyB0aGUga2V5IGNoYXIgb2Ygc2hv cnRjdXQKKyAqIHNob3J0Y3V0IG9iamVjdCBpcyBicm93c2VyLmdldF9wcmVmZXJlbmNlKCkudmFs dWUKKyAqLworZnVuY3Rpb24gc2hvcnRjdXRfYWNjZXNza2V5X3RpdGxlKHRpdGxlLCBzaG9ydGN1 dCkgeworICByZXR1cm4gZ2V0dGV4dCgnJSh0aXRsZSlzIChhY2Nlc3NrZXkgKyAlKGtleSlzKScs eworICAgICd0aXRsZSc6IHRpdGxlLAorICAgICdrZXknOiBzaG9ydGN1dF9rZXkoc2hvcnRjdXQp LAorICB9KTsKK30KKworCiBmdW5jdGlvbiBfc3RvcEV2ZW50UHJvcGFnYXRpb24oZXZlbnQpIHsK ICAgZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZTsKICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsK QEAgLTEyNCwxOSArMTcxLDE5IEBAIGZ1bmN0aW9uIGdldElubmVyUGFuZWwoJGVsLCBkaXJlY3Rp b24pIHsKIAogLyogUXVlcnkgdG9vbDogS2V5Ym9hcmQgU2hvcnRjdXRzIGhhbmRsaW5nICovCiBm dW5jdGlvbiBrZXlib2FyZFNob3J0Y3V0c1F1ZXJ5VG9vbCgKLSAgc3FsRWRpdG9yQ29udHJvbGxl ciwga2V5Ym9hcmRTaG9ydGN1dENvbmZpZywgcXVlcnlUb29sQWN0aW9ucywgZXZlbnQKKyAgc3Fs RWRpdG9yQ29udHJvbGxlciwgcXVlcnlUb29sQWN0aW9ucywgZXZlbnQKICkgewogICBpZiAoc3Fs RWRpdG9yQ29udHJvbGxlci5pc1F1ZXJ5UnVubmluZygpKSB7CiAgICAgcmV0dXJuOwogICB9CiAg IGxldCBrZXlDb2RlID0gZXZlbnQud2hpY2ggfHwgZXZlbnQua2V5Q29kZSwgcGFuZWxfaWQ7Ci0g IGxldCBleGVjdXRlS2V5cyA9IGtleWJvYXJkU2hvcnRjdXRDb25maWdbJ2V4ZWN1dGUnXTsKLSAg bGV0IGV4cGxhaW5LZXlzID0ga2V5Ym9hcmRTaG9ydGN1dENvbmZpZ1snZXhwbGFpbiddOwotICBs ZXQgZXhwbGFpbkFuYWx5emVLZXlzID0ga2V5Ym9hcmRTaG9ydGN1dENvbmZpZ1snZXhwbGFpbl9h bmFseXplJ107Ci0gIGxldCBkb3dubG9hZENzdktleXMgPSBrZXlib2FyZFNob3J0Y3V0Q29uZmln Wydkb3dubG9hZF9jc3YnXTsKLSAgbGV0IG5leHRQYW5lbEtleXMgPSBrZXlib2FyZFNob3J0Y3V0 Q29uZmlnWydtb3ZlX25leHQnXTsKLSAgbGV0IHByZXZpb3VzUGFuZWxLZXlzID0ga2V5Ym9hcmRT aG9ydGN1dENvbmZpZ1snbW92ZV9wcmV2aW91cyddOwotICBsZXQgdG9nZ2xlQ2FzZUtleXMgPSBr ZXlib2FyZFNob3J0Y3V0Q29uZmlnWyd0b2dnbGVfY2FzZSddOworICBsZXQgZXhlY3V0ZUtleXMg PSBzcWxFZGl0b3JDb250cm9sbGVyLnByZWZlcmVuY2VzLmV4ZWN1dGVfcXVlcnk7CisgIGxldCBl eHBsYWluS2V5cyA9IHNxbEVkaXRvckNvbnRyb2xsZXIucHJlZmVyZW5jZXMuZXhwbGFpbl9xdWVy eTsKKyAgbGV0IGV4cGxhaW5BbmFseXplS2V5cyA9IHNxbEVkaXRvckNvbnRyb2xsZXIucHJlZmVy ZW5jZXMuZXhwbGFpbl9hbmFseXplX3F1ZXJ5OworICBsZXQgZG93bmxvYWRDc3ZLZXlzID0gc3Fs RWRpdG9yQ29udHJvbGxlci5wcmVmZXJlbmNlcy5kb3dubG9hZF9jc3Y7CisgIGxldCBuZXh0UGFu ZWxLZXlzID0gc3FsRWRpdG9yQ29udHJvbGxlci5wcmVmZXJlbmNlcy5tb3ZlX25leHQ7CisgIGxl dCBwcmV2aW91c1BhbmVsS2V5cyA9IHNxbEVkaXRvckNvbnRyb2xsZXIucHJlZmVyZW5jZXMubW92 ZV9wcmV2aW91czsKKyAgbGV0IHRvZ2dsZUNhc2VLZXlzID0gc3FsRWRpdG9yQ29udHJvbGxlci5w cmVmZXJlbmNlcy50b2dnbGVfY2FzZTsKIAogICBpZiAodGhpcy52YWxpZGF0ZVNob3J0Y3V0S2V5 cyhleGVjdXRlS2V5cywgZXZlbnQpKSB7CiAgICAgdGhpcy5fc3RvcEV2ZW50UHJvcGFnYXRpb24o ZXZlbnQpOwpAQCAtMjQ1LDQgKzI5Miw3IEBAIG1vZHVsZS5leHBvcnRzID0gewogICBpc0FsdFNo aWZ0Qm90aDogaXNBbHRTaGlmdEJvdGgsCiAgIGlzQ3RybFNoaWZ0Qm90aDogaXNDdHJsU2hpZnRC b3RoLAogICBpc0N0cmxBbHRCb3RoOiBpc0N0cmxBbHRCb3RoLAorICBzaG9ydGN1dF9rZXkgOiBz aG9ydGN1dF9rZXksCisgIHNob3J0Y3V0X3RpdGxlIDogc2hvcnRjdXRfdGl0bGUsCisgIHNob3J0 Y3V0X2FjY2Vzc2tleV90aXRsZSA6IHNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZSwKIH07CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfYWN0aW9u cy5qcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9hY3Rpb25z LmpzCmluZGV4IDQxMWM2ZWQ1Li42Y2JiY2UwZiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vc3Rh dGljL2pzL3NxbGVkaXRvci9xdWVyeV90b29sX2FjdGlvbnMuanMKKysrIGIvd2ViL3BnYWRtaW4v c3RhdGljL2pzL3NxbGVkaXRvci9xdWVyeV90b29sX2FjdGlvbnMuanMKQEAgLTExOSw1OCArMTE5 LDYgQEAgbGV0IHF1ZXJ5VG9vbEFjdGlvbnMgPSB7CiAgICAgd2luZG93LnRvcC5kb2N1bWVudC5h Y3RpdmVFbGVtZW50LmJsdXIoKTsKICAgfSwKIAotICBnZXRLZXlib2FyZFNob3J0Y3V0czogZnVu Y3Rpb24gKHNxbEVkaXRvckNvbnRyb2xsZXIpIHsKLSAgICBsZXQgZXhlY3V0ZVF1ZXJ5UHJlZiA9 IHdpbmRvdy50b3AucGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlKAotICAgICAgJ3NxbGVk aXRvcicsICdleGVjdXRlX3F1ZXJ5Jyk7Ci0gICAgbGV0IGV4cGxhaW5RdWVyeVByZWYgPSB3aW5k b3cudG9wLnBnQWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVyZW5jZSgKLSAgICAgICdzcWxlZGl0b3In LCAnZXhwbGFpbl9xdWVyeScpOwotICAgIGxldCBleHBsYWluQW5hbHl6ZVF1ZXJ5UHJlZiA9IHdp bmRvdy50b3AucGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlKAotICAgICAgJ3NxbGVkaXRv cicsICdleHBsYWluX2FuYWx5emVfcXVlcnknKTsKLSAgICBsZXQgZG93bmxvYWRDc3ZQcmVmID0g d2luZG93LnRvcC5wZ0FkbWluLkJyb3dzZXIuZ2V0X3ByZWZlcmVuY2UoCi0gICAgICAnc3FsZWRp dG9yJywgJ2Rvd25sb2FkX2NzdicpOwotICAgIGxldCBuZXh0UGFuZWxQZXJmID0gd2luZG93LnRv cC5wZ0FkbWluLkJyb3dzZXIuZ2V0X3ByZWZlcmVuY2UoCi0gICAgICAnc3FsZWRpdG9yJywgJ21v dmVfbmV4dCcpOwotICAgIGxldCBwcmV2aW91c1BhbmVsUGVyZiA9IHdpbmRvdy50b3AucGdBZG1p bi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlKAotICAgICAgJ3NxbGVkaXRvcicsICdtb3ZlX3ByZXZp b3VzJyk7Ci0gICAgbGV0IHRvZ2dsZUNhc2VQZXJmID0gd2luZG93LnRvcC5wZ0FkbWluLkJyb3dz ZXIuZ2V0X3ByZWZlcmVuY2UoCi0gICAgICAnc3FsZWRpdG9yJywgJ3RvZ2dsZV9jYXNlJyk7Ci0K LSAgICBpZighZXhlY3V0ZVF1ZXJ5UHJlZiAmJiBzcWxFZGl0b3JDb250cm9sbGVyLmhhbmRsZXIu aXNfbmV3X2Jyb3dzZXJfdGFiKSB7Ci0gICAgICBleGVjdXRlUXVlcnlQcmVmID0gd2luZG93Lm9w ZW5lci5wZ0FkbWluLkJyb3dzZXIuZ2V0X3ByZWZlcmVuY2UoCi0gICAgICAgICdzcWxlZGl0b3In LCAnZXhlY3V0ZV9xdWVyeScKLSAgICAgICksCi0gICAgICBleHBsYWluUXVlcnlQcmVmID0gd2lu ZG93Lm9wZW5lci5wZ0FkbWluLkJyb3dzZXIuZ2V0X3ByZWZlcmVuY2UoCi0gICAgICAgICdzcWxl ZGl0b3InLCAnZXhwbGFpbl9xdWVyeScKLSAgICAgICksCi0gICAgICBleHBsYWluQW5hbHl6ZVF1 ZXJ5UHJlZiA9IHdpbmRvdy5vcGVuZXIucGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlKAot ICAgICAgICAnc3FsZWRpdG9yJywgJ2V4cGxhaW5fYW5hbHl6ZV9xdWVyeScKLSAgICAgICksCi0g ICAgICBkb3dubG9hZENzdlByZWYgPSB3aW5kb3cub3BlbmVyLnBnQWRtaW4uQnJvd3Nlci5nZXRf cHJlZmVyZW5jZSgKLSAgICAgICAgJ3NxbGVkaXRvcicsICdkb3dubG9hZF9jc3YnCi0gICAgICAp LAotICAgICAgbmV4dFBhbmVsUGVyZiA9IHdpbmRvdy5vcGVuZXIucGdBZG1pbi5Ccm93c2VyLmdl dF9wcmVmZXJlbmNlKAotICAgICAgICAnc3FsZWRpdG9yJywgJ21vdmVfbmV4dCcKLSAgICAgICks Ci0gICAgICBwcmV2aW91c1BhbmVsUGVyZiA9IHdpbmRvdy5vcGVuZXIucGdBZG1pbi5Ccm93c2Vy LmdldF9wcmVmZXJlbmNlKAotICAgICAgICAnc3FsZWRpdG9yJywgJ21vdmVfcHJldmlvdXMnCi0g ICAgICApLAotICAgICAgdG9nZ2xlQ2FzZVBlcmYgPSB3aW5kb3cub3BlbmVyLnBnQWRtaW4uQnJv d3Nlci5nZXRfcHJlZmVyZW5jZSgKLSAgICAgICAgJ3NxbGVkaXRvcicsICd0b2dnbGVfY2FzZScK LSAgICAgICk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHsKLSAgICAgICdleGVjdXRlJzogZXhlY3V0 ZVF1ZXJ5UHJlZi52YWx1ZSwKLSAgICAgICdleHBsYWluJzogZXhwbGFpblF1ZXJ5UHJlZi52YWx1 ZSwKLSAgICAgICdleHBsYWluX2FuYWx5emUnOiBleHBsYWluQW5hbHl6ZVF1ZXJ5UHJlZi52YWx1 ZSwKLSAgICAgICdkb3dubG9hZF9jc3YnOiBkb3dubG9hZENzdlByZWYudmFsdWUsCi0gICAgICAn bW92ZV9uZXh0JzogbmV4dFBhbmVsUGVyZi52YWx1ZSwKLSAgICAgICdtb3ZlX3ByZXZpb3VzJzog cHJldmlvdXNQYW5lbFBlcmYudmFsdWUsCi0gICAgICAndG9nZ2xlX2Nhc2UnOiB0b2dnbGVDYXNl UGVyZi52YWx1ZSwKLSAgICB9OwotCi0gIH0sCi0KICAgdG9nZ2xlQ2FzZU9mU2VsZWN0ZWRUZXh0 OiBmdW5jdGlvbiAoc3FsRWRpdG9yQ29udHJvbGxlcikgewogICAgIGxldCBjb2RlTWlycm9yT2Jq ID0gc3FsRWRpdG9yQ29udHJvbGxlci5ncmlkVmlldy5xdWVyeV90b29sX29iajsKICAgICBsZXQg c2VsZWN0ZWRUZXh0ID0gY29kZU1pcnJvck9iai5nZXRTZWxlY3Rpb24oKTsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9wcmVmZXJlbmNlcy5q cyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9wcmVmZXJlbmNl cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uZjI2YTIzYTIKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xf cHJlZmVyZW5jZXMuanMKQEAgLTAsMCArMSwxNzkgQEAKK2ltcG9ydCB7c2hvcnRjdXRfa2V5LCBz aG9ydGN1dF9hY2Nlc3NrZXlfdGl0bGUsIHNob3J0Y3V0X3RpdGxlfQorICBmcm9tICdzb3VyY2Vz L2tleWJvYXJkX3Nob3J0Y3V0cyc7CitpbXBvcnQgKiBhcyBTcWxFZGl0b3JVdGlscyBmcm9tICdz b3VyY2VzL3NxbGVkaXRvcl91dGlscyc7CitpbXBvcnQgJCBmcm9tICdqcXVlcnknOworCitmdW5j dGlvbiB1cGRhdGVVSVByZWZlcmVuY2VzKHNxbEVkaXRvcikgeworICBsZXQgJGVsID0gc3FsRWRp dG9yLiRlbCwKKyAgICBwcmVmZXJlbmNlcyA9IHNxbEVkaXRvci5wcmVmZXJlbmNlczsKKworICBp ZihzcWxFZGl0b3IuaGFuZGxlci5zbGlja2dyaWQpIHsKKyAgICBzcWxFZGl0b3IuaGFuZGxlci5z bGlja2dyaWQuQ1NWT3B0aW9ucyA9IHsKKyAgICAgIHF1b3Rpbmc6IHNxbEVkaXRvci5wcmVmZXJl bmNlcy5yZXN1bHRzX2dyaWRfcXVvdGluZywKKyAgICAgIHF1b3RlX2NoYXI6IHNxbEVkaXRvci5w cmVmZXJlbmNlcy5yZXN1bHRzX2dyaWRfcXVvdGVfY2hhciwKKyAgICAgIGZpZWxkX3NlcGFyYXRv cjogc3FsRWRpdG9yLnByZWZlcmVuY2VzLnJlc3VsdHNfZ3JpZF9maWVsZF9zZXBhcmF0b3IsCisg ICAgfTsKKyAgfQorCisgIC8qIEFjY2Vzc2VkIHVzaW5nIGFjY2Vzc2tleSBkaXJlY3Qgdy9vIGN0 cmwsYXRsLHNoaWZ0ICovCisgICRlbC5maW5kKCcjYnRuLWxvYWQtZmlsZScpCisgICAgLmF0dHIo J3RpdGxlJywgc2hvcnRjdXRfYWNjZXNza2V5X3RpdGxlKCdPcGVuIEZpbGUnLHByZWZlcmVuY2Vz LmJ0bl9vcGVuX2ZpbGUpKQorICAgIC5hdHRyKCdhY2Nlc3NrZXknLCBzaG9ydGN1dF9rZXkocHJl ZmVyZW5jZXMuYnRuX29wZW5fZmlsZSkpOworCisgICRlbC5maW5kKCcjYnRuLXNhdmUnKQorICAg IC5hdHRyKCd0aXRsZScsIHNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZSgnU2F2ZSBGaWxlJyxwcmVm ZXJlbmNlcy5idG5fc2F2ZV9maWxlKSkKKyAgICAuYXR0cignYWNjZXNza2V5Jywgc2hvcnRjdXRf a2V5KHByZWZlcmVuY2VzLmJ0bl9zYXZlX2ZpbGUpKTsKKworICAkZWwuZmluZCgnI2J0bi1maW5k LW1lbnUtZHJvcGRvd24nKQorICAgIC5hdHRyKCd0aXRsZScsIHNob3J0Y3V0X2FjY2Vzc2tleV90 aXRsZSgnRmluZCcscHJlZmVyZW5jZXMuYnRuX2ZpbmRfb3B0aW9ucykpCisgICAgLmF0dHIoJ2Fj Y2Vzc2tleScsIHNob3J0Y3V0X2tleShwcmVmZXJlbmNlcy5idG5fZmluZF9vcHRpb25zKSk7CisK KyAgJGVsLmZpbmQoJyNidG4tY29weS1yb3cnKQorICAgIC5hdHRyKCd0aXRsZScsIHNob3J0Y3V0 X2FjY2Vzc2tleV90aXRsZSgnQ29weScscHJlZmVyZW5jZXMuYnRuX2NvcHlfcm93KSkKKyAgICAu YXR0cignYWNjZXNza2V5Jywgc2hvcnRjdXRfa2V5KHByZWZlcmVuY2VzLmJ0bl9jb3B5X3Jvdykp OworCisgICRlbC5maW5kKCcjYnRuLXBhc3RlLXJvdycpCisgICAgLmF0dHIoJ3RpdGxlJywgc2hv cnRjdXRfYWNjZXNza2V5X3RpdGxlKCdQYXN0ZScscHJlZmVyZW5jZXMuYnRuX3Bhc3RlX3Jvdykp CisgICAgLmF0dHIoJ2FjY2Vzc2tleScsIHNob3J0Y3V0X2tleShwcmVmZXJlbmNlcy5idG5fcGFz dGVfcm93KSk7CisKKyAgJGVsLmZpbmQoJyNidG4tZGVsZXRlLXJvdycpCisgICAgLmF0dHIoJ3Rp dGxlJywgc2hvcnRjdXRfYWNjZXNza2V5X3RpdGxlKCdEZWxldGUnLHByZWZlcmVuY2VzLmJ0bl9k ZWxldGVfcm93KSkKKyAgICAuYXR0cignYWNjZXNza2V5Jywgc2hvcnRjdXRfa2V5KHByZWZlcmVu Y2VzLmJ0bl9kZWxldGVfcm93KSk7CisKKyAgJGVsLmZpbmQoJyNidG4tZmlsdGVyJykKKyAgICAu YXR0cigndGl0bGUnLCBzaG9ydGN1dF9hY2Nlc3NrZXlfdGl0bGUoJ0ZpbHRlcicscHJlZmVyZW5j ZXMuYnRuX2ZpbHRlcl9kaWFsb2cpKQorICAgIC5hdHRyKCdhY2Nlc3NrZXknLCBzaG9ydGN1dF9r ZXkocHJlZmVyZW5jZXMuYnRuX2ZpbHRlcl9kaWFsb2cpKTsKKworICAkZWwuZmluZCgnI2J0bi1m aWx0ZXItZHJvcGRvd24nKQorICAgIC5hdHRyKCd0aXRsZScsIHNob3J0Y3V0X2FjY2Vzc2tleV90 aXRsZSgnRmlsdGVyIG9wdGlvbnMnLHByZWZlcmVuY2VzLmJ0bl9maWx0ZXJfb3B0aW9ucykpCisg ICAgLmF0dHIoJ2FjY2Vzc2tleScsIHNob3J0Y3V0X2tleShwcmVmZXJlbmNlcy5idG5fZmlsdGVy X29wdGlvbnMpKTsKKworICAkZWwuZmluZCgnI2J0bi1yb3dzLWxpbWl0JykKKyAgICAuYXR0cign dGl0bGUnLCBzaG9ydGN1dF9hY2Nlc3NrZXlfdGl0bGUoJ1Jvd3MgbGltaXQnLHByZWZlcmVuY2Vz LmJ0bl9yb3dzX2xpbWl0KSkKKyAgICAuYXR0cignYWNjZXNza2V5Jywgc2hvcnRjdXRfa2V5KHBy ZWZlcmVuY2VzLmJ0bl9yb3dzX2xpbWl0KSk7CisKKyAgJGVsLmZpbmQoJyNidG4tcXVlcnktZHJv cGRvd24nKQorICAgIC5hdHRyKCd0aXRsZScsIHNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZSgnRXhl Y3V0ZSBvcHRpb25zJyxwcmVmZXJlbmNlcy5idG5fZXhlY3V0ZV9vcHRpb25zKSkKKyAgICAuYXR0 cignYWNjZXNza2V5Jywgc2hvcnRjdXRfa2V5KHByZWZlcmVuY2VzLmJ0bl9leGVjdXRlX29wdGlv bnMpKTsKKworICAkZWwuZmluZCgnI2J0bi1jYW5jZWwtcXVlcnknKQorICAgIC5hdHRyKCd0aXRs ZScsIHNob3J0Y3V0X2FjY2Vzc2tleV90aXRsZSgnQ2FuY2VsIHF1ZXJ5JyxwcmVmZXJlbmNlcy5i dG5fY2FuY2VsX3F1ZXJ5KSkKKyAgICAuYXR0cignYWNjZXNza2V5Jywgc2hvcnRjdXRfa2V5KHBy ZWZlcmVuY2VzLmJ0bl9jYW5jZWxfcXVlcnkpKTsKKworICAkZWwuZmluZCgnI2J0bi1jbGVhci1k cm9wZG93bicpCisgICAgLmF0dHIoJ3RpdGxlJywgc2hvcnRjdXRfYWNjZXNza2V5X3RpdGxlKCdD bGVhcicscHJlZmVyZW5jZXMuYnRuX2NsZWFyX29wdGlvbnMpKQorICAgIC5hdHRyKCdhY2Nlc3Nr ZXknLCBzaG9ydGN1dF9rZXkocHJlZmVyZW5jZXMuYnRuX2NsZWFyX29wdGlvbnMpKTsKKworICAk ZWwuZmluZCgnI2J0bi1jb25uLXN0YXR1cycpCisgICAgLmF0dHIoJ2FjY2Vzc2tleScsIHNob3J0 Y3V0X2tleShwcmVmZXJlbmNlcy5idG5fY29ubl9zdGF0dXMpKQorICAgIC5maW5kKCdpJykKKyAg ICAuYXR0cigndGl0bGUnLAorICAgICAgc2hvcnRjdXRfYWNjZXNza2V5X3RpdGxlKCdDb25uZWN0 aW9uIHN0YXR1cyAoY2xpY2sgZm9yIGRldGFpbHMpJywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwcmVmZXJlbmNlcy5idG5fY29ubl9zdGF0dXMpKTsKKworICAvKiBBY2Nlc3NlZCB1c2lu ZyBjdHJsLGF0bCxzaGlmdCBhbmQga2V5ICovCisgICRlbC5maW5kKCcjYnRuLWZsYXNoJykKKyAg ICAuYXR0cigndGl0bGUnLAorICAgICAgc2hvcnRjdXRfdGl0bGUoJ0V4ZWN1dGUvUmVmcmVzaCcs cHJlZmVyZW5jZXMuZXhlY3V0ZV9xdWVyeSkpOworCisgICRlbC5maW5kKCcjYnRuLWZsYXNoLW1l bnUgc3BhbicpCisgICAgLnRleHQoc2hvcnRjdXRfdGl0bGUoJ0V4ZWN1dGUvUmVmcmVzaCcscHJl ZmVyZW5jZXMuZXhlY3V0ZV9xdWVyeSkpOworCisgICRlbC5maW5kKCcjYnRuLWV4cGxhaW4gc3Bh bicpCisgICAgLnRleHQoc2hvcnRjdXRfdGl0bGUoJ0V4cGxhaW4nLHByZWZlcmVuY2VzLmV4cGxh aW5fcXVlcnkpKTsKKworICAkZWwuZmluZCgnI2J0bi1leHBsYWluLWFuYWx5emUgc3BhbicpCisg ICAgLnRleHQoc2hvcnRjdXRfdGl0bGUoJ0V4cGxhaW4gQW5hbHl6ZScscHJlZmVyZW5jZXMuZXhw bGFpbl9hbmFseXplX3F1ZXJ5KSk7CisKKyAgJGVsLmZpbmQoJyNidG4tZG93bmxvYWQnKQorICAg IC5hdHRyKCd0aXRsZScsCisgICAgICBzaG9ydGN1dF90aXRsZSgnRG93bmxvYWQgYXMgQ1NWJyxw cmVmZXJlbmNlcy5kb3dubG9hZF9jc3YpKTsKKworICAvKiBTZXQgQXV0by1jb21taXQgYW5kIGF1 dG8tcm9sbGJhY2sgb24gcXVlcnkgZWRpdG9yICovCisgIGlmIChwcmVmZXJlbmNlcy5hdXRvX2Nv bW1pdCkgeworICAgICRlbC5maW5kKCcuYXV0by1jb21taXQnKS5yZW1vdmVDbGFzcygndmlzaWJp bGl0eS1oaWRkZW4nKTsKKyAgfQorICBlbHNlIHsKKyAgICAkZWwuZmluZCgnLmF1dG8tY29tbWl0 JykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7CisgIH0KKyAgaWYgKHByZWZlcmVuY2Vz LmF1dG9fcm9sbGJhY2spIHsKKyAgICAkZWwuZmluZCgnLmF1dG8tcm9sbGJhY2snKS5yZW1vdmVD bGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKKyAgfQorICBlbHNlIHsKKyAgICAkZWwuZmluZCgn LmF1dG8tcm9sbGJhY2snKS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKKyAgfQorCisg IC8qIFNldCBleHBsYWluIG9wdGlvbnMgb24gcXVlcnkgZWRpdG9yICovCisgIGlmIChwcmVmZXJl bmNlcy5leHBsYWluX3ZlcmJvc2UpeworICAgICRlbC5maW5kKCcuZXhwbGFpbi12ZXJib3NlJyku cmVtb3ZlQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7CisgIH0KKyAgZWxzZSB7CisgICAgJGVs LmZpbmQoJy5leHBsYWluLXZlcmJvc2UnKS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsK KyAgfQorCisgIGlmIChwcmVmZXJlbmNlcy5leHBsYWluX2Nvc3RzKXsKKyAgICAkZWwuZmluZCgn LmV4cGxhaW4tY29zdHMnKS5yZW1vdmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKKyAgfQor ICBlbHNlIHsKKyAgICAkZWwuZmluZCgnLmV4cGxhaW4tY29zdHMnKS5hZGRDbGFzcygndmlzaWJp bGl0eS1oaWRkZW4nKTsKKyAgfQorCisgIGlmIChwcmVmZXJlbmNlcy5leHBsYWluX2J1ZmZlcnMp eworICAgICRlbC5maW5kKCcuZXhwbGFpbi1idWZmZXJzJykucmVtb3ZlQ2xhc3MoJ3Zpc2liaWxp dHktaGlkZGVuJyk7CisgIH0KKyAgZWxzZSB7CisgICAgJGVsLmZpbmQoJy5leHBsYWluLWJ1ZmZl cnMnKS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKKyAgfQorCisgIGlmIChwcmVmZXJl bmNlcy5leHBsYWluX3RpbWluZykgeworICAgICRlbC5maW5kKCcuZXhwbGFpbi10aW1pbmcnKS5y ZW1vdmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKKyAgfQorICBlbHNlIHsKKyAgICAkZWwu ZmluZCgnLmV4cGxhaW4tdGltaW5nJykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7Cisg IH0KKworICAvKiBDb25uZWN0aW9uIHN0YXR1cyBjaGVjayAqLworICAvKiByZW1vdmUgdGhlIHN0 YXR1cyBjaGVja2VyIGlmIHByZXNlbnQgKi8KKyAgaWYoc3FsRWRpdG9yLmNvbm5JbnRlcnZhbElk ICE9IG51bGwpIHsKKyAgICBjbGVhckludGVydmFsKHNxbEVkaXRvci5jb25uSW50ZXJ2YWxJZCk7 CisgICAgc3FsRWRpdG9yLmNvbm5JbnRlcnZhbElkID0gbnVsbDsKKyAgfQorICBpZiAocHJlZmVy ZW5jZXMuY29ubmVjdGlvbl9zdGF0dXMpIHsKKyAgICBsZXQgJGNvbm5fc3RhdHVzID0gJGVsLmZp bmQoJyNidG4tY29ubi1zdGF0dXMnKSwKKyAgICAgICRzdGF0dXNfZWwgPSAkY29ubl9zdGF0dXMu ZmluZCgnaScpOworICAgICRjb25uX3N0YXR1cy5wb3BvdmVyKCk7CisKKyAgICAkY29ubl9zdGF0 dXMucmVtb3ZlQ2xhc3MoJ2Nvbm5lY3Rpb24tc3RhdHVzLWhpZGUnKTsKKyAgICAkZWwuZmluZCgn LmVkaXRvci10aXRsZScpLmFkZENsYXNzKCdlZGl0b3ItdGl0bGUtY29ubmVjdGlvbicpOworCisg ICAgLy8gVG8gc2V0IGluaXRpYWwgY29ubmVjdGlvbgorICAgIFNxbEVkaXRvclV0aWxzLmZldGNo Q29ubmVjdGlvblN0YXR1cyhzcWxFZGl0b3IuaGFuZGxlciwgJGNvbm5fc3RhdHVzLCAkc3RhdHVz X2VsKTsKKworICAgIC8vIENhbGxpbmcgaXQgYWdhaW4gaW4gc3BlY2lmaWVkIGludGVydmFsCisg ICAgc3FsRWRpdG9yLmNvbm5JbnRlcnZhbElkID0gIHNldEludGVydmFsKAorICAgICAgICBTcWxF ZGl0b3JVdGlscy5mZXRjaENvbm5lY3Rpb25TdGF0dXMuYmluZChudWxsLCBzcWxFZGl0b3IuaGFu ZGxlciwgJGNvbm5fc3RhdHVzLCAkc3RhdHVzX2VsKSwKKyAgICAgICAgcHJlZmVyZW5jZXMuY29u bmVjdGlvbl9zdGF0dXNfZmV0Y2hfdGltZSAqIDEwMDAKKyAgICApOworICB9CisgIGVsc2Ugewor ICAgICRlbC5maW5kKCcjYnRuLWNvbm4tc3RhdHVzJykuYWRkQ2xhc3MoJ2Nvbm5lY3Rpb24tc3Rh dHVzLWhpZGUnKTsKKyAgICAkZWwuZmluZCgnLmVkaXRvci10aXRsZScpLnJlbW92ZUNsYXNzKCdl ZGl0b3ItdGl0bGUtY29ubmVjdGlvbicpOworICB9CisKKyAgLyogQ29kZSBNaXJyb3IgUHJlZmVy ZW5jZXMgKi8KKyAgbGV0IHNxbF9mb250X3NpemUgPSBTcWxFZGl0b3JVdGlscy5jYWxjRm9udFNp emUocHJlZmVyZW5jZXMuc3FsX2ZvbnRfc2l6ZSk7CisgICQoc3FsRWRpdG9yLnF1ZXJ5X3Rvb2xf b2JqLmdldFdyYXBwZXJFbGVtZW50KCkpLmNzcygnZm9udC1zaXplJywgc3FsX2ZvbnRfc2l6ZSk7 CisKKyAgc3FsRWRpdG9yLnF1ZXJ5X3Rvb2xfb2JqLnNldE9wdGlvbignaW5kZW50V2l0aFRhYnMn LCAhcHJlZmVyZW5jZXMudXNlX3NwYWNlcyk7CisgIHNxbEVkaXRvci5xdWVyeV90b29sX29iai5z ZXRPcHRpb24oJ2luZGVudFVuaXQnLCBwcmVmZXJlbmNlcy50YWJfc2l6ZSk7CisgIHNxbEVkaXRv ci5xdWVyeV90b29sX29iai5zZXRPcHRpb24oJ3RhYlNpemUnLCBwcmVmZXJlbmNlcy50YWJfc2l6 ZSk7CisgIHNxbEVkaXRvci5xdWVyeV90b29sX29iai5zZXRPcHRpb24oJ2xpbmVXcmFwcGluZycs IHByZWZlcmVuY2VzLndyYXBfY29kZSk7CisgIHNxbEVkaXRvci5xdWVyeV90b29sX29iai5zZXRP cHRpb24oJ2F1dG9DbG9zZUJyYWNrZXRzJywgcHJlZmVyZW5jZXMuaW5zZXJ0X3BhaXJfYnJhY2tl dHMpOworICBzcWxFZGl0b3IucXVlcnlfdG9vbF9vYmouc2V0T3B0aW9uKCdtYXRjaEJyYWNrZXRz JywgcHJlZmVyZW5jZXMuYnJhY2VfbWF0Y2hpbmcpOworICBzcWxFZGl0b3IucXVlcnlfdG9vbF9v YmoucmVmcmVzaCgpOworCisgIC8qIFJlbmRlciBoaXN0b3J5IHRvIHJlZmxlY3QgRm9udCBzaXpl IGNoYW5nZSAqLworICBzcWxFZGl0b3IucmVuZGVyX2hpc3RvcnlfZ3JpZCgpOworfQorCitleHBv cnQge3VwZGF0ZVVJUHJlZmVyZW5jZXN9OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGlj L2pzL3NxbGVkaXRvcl91dGlscy5qcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3Jf dXRpbHMuanMKaW5kZXggYmU0MTU2NmYuLjBmZmYxZDk1IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9zdGF0aWMvanMvc3FsZWRpdG9yX3V0aWxzLmpzCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9zcWxlZGl0b3JfdXRpbHMuanMKQEAgLTE3OCwyNCArMTc4LDYgQEAgZGVmaW5lKFsnanF1ZXJ5 JywgJ3NvdXJjZXMvZ2V0dGV4dCcsICdzb3VyY2VzL3VybF9mb3InXSwKICAgICAgICAgfSk7CiAg ICAgICB9LAogCi0gICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRoZSBjb25uZWN0 aW9uIHN0YXR1cwotICAgICAgdXBkYXRlQ29ubmVjdGlvblN0YXR1czogZnVuY3Rpb24odGFyZ2V0 LCBwb2xsX3RpbWUpIHsKLSAgICAgICAgdmFyICRlbCA9ICQodGFyZ2V0LmdyaWRWaWV3LiRlbC5m aW5kKCcuY29ubmVjdGlvbl9zdGF0dXMnKSksCi0gICAgICAgICAgJHN0YXR1c19lbCA9ICQoJGVs LmZpbmQoJy5mYS1jdXN0b20nKSk7Ci0KLSAgICAgICAgLy8gQXBwbHkgcG9wb3ZlciBvbiBlbGVt ZW50Ci0gICAgICAgICRlbC5wb3BvdmVyKCk7Ci0KLSAgICAgICAgLy8gVG8gc2V0IGluaXRpYWwg Y29ubmVjdGlvbiBzdGF0dXNzb3VyY2UkZWwucG9wb3ZlcigpCi0gICAgICAgIHNxbEVkaXRvclV0 aWxzLmZldGNoQ29ubmVjdGlvblN0YXR1cyh0YXJnZXQsICRlbCwgJHN0YXR1c19lbCk7Ci0KLSAg ICAgICAgLy8gQ2FsbGluZyBpdCBhZ2FpbiBpbiBzcGVjaWZpZWQgaW50ZXJ2YWwKLSAgICAgICAg c2V0SW50ZXJ2YWwoCi0gICAgICAgICAgc3FsRWRpdG9yVXRpbHMuZmV0Y2hDb25uZWN0aW9uU3Rh dHVzLmJpbmQobnVsbCwgdGFyZ2V0LCAkZWwsICRzdGF0dXNfZWwpLAotICAgICAgICAgIHBvbGxf dGltZSAqIDEwMDAKLSAgICAgICAgKTsKLSAgICAgIH0sCi0KICAgICAgIC8vIFVwZGF0ZXMgdGhl IGZsYWcgZm9yIGNvbm5lY3Rpb24gc3RhdHVzIHBvbGwKICAgICAgIHVwZGF0ZUNvbm5lY3Rpb25T dGF0dXNGbGFnOiBmdW5jdGlvbihzdGF0dXMpIHsKICAgICAgICAgdmFyICRlbCA9ICQoJy5jb25u ZWN0aW9uX3N0YXR1cycpOwpAQCAtMjAzLDYgKzE4NSwxNSBAQCBkZWZpbmUoWydqcXVlcnknLCAn c291cmNlcy9nZXR0ZXh0JywgJ3NvdXJjZXMvdXJsX2ZvciddLAogICAgICAgICAgICRlbC5kYXRh KCdwYW5lbC12aXNpYmxlJywgc3RhdHVzKTsKICAgICAgICAgfQogICAgICAgfSwKKworICAgICAg Y2FsY0ZvbnRTaXplOiBmdW5jdGlvbihmb250U2l6ZSkgeworICAgICAgICBpZihmb250U2l6ZSkg eworICAgICAgICAgIHJldHVybiBOdW1iZXIoKE1hdGgucm91bmQoZm9udFNpemUgKyAnZSsyJykg KyAnZS0yJykpICsgJ2VtJzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICBy ZXR1cm4gJzBlbSc7CisgICAgICAgIH0KKyAgICAgIH0sCiAgICAgfTsKICAgICByZXR1cm4gc3Fs RWRpdG9yVXRpbHM7CiAgIH0pOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzeC9o aXN0b3J5L2RldGFpbC9jb2RlX21pcnJvci5qc3ggYi93ZWIvcGdhZG1pbi9zdGF0aWMvanN4L2hp c3RvcnkvZGV0YWlsL2NvZGVfbWlycm9yLmpzeAppbmRleCA2ZTk4MjEyOC4uMDM4Y2MyMDAgMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qc3gvaGlzdG9yeS9kZXRhaWwvY29kZV9taXJy b3IuanN4CisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qc3gvaGlzdG9yeS9kZXRhaWwvY29kZV9t aXJyb3IuanN4CkBAIC01MCw2ICs1MCwxMSBAQCBleHBvcnQgZGVmYXVsdCBjbGFzcyBDb2RlTWly cm9yIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKICAgICBPYmplY3Qua2V5cyhwcm9wcy5vcHRp b25zIHx8IHt9KS5mb3JFYWNoKGtleSA9PiB0aGlzLmVkaXRvci5zZXRPcHRpb24oa2V5LCBwcm9w cy5vcHRpb25zW2tleV0pKTsKIAogICAgIHRoaXMuZWRpdG9yLnNldFZhbHVlKHByb3BzLnZhbHVl IHx8ICcnKTsKKworICAgIGlmKHByb3BzLnNxbEZvbnRTaXplKSB7CisgICAgICAkKHRoaXMuZWRp dG9yLmdldFdyYXBwZXJFbGVtZW50KCkpLmNzcygnZm9udC1zaXplJywgcHJvcHMuc3FsRm9udFNp emUpOworICAgIH0KKwogICAgIHRoaXMuZWRpdG9yLnJlZnJlc2goKTsKICAgfQogCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanN4L2hpc3RvcnkvZGV0YWlsL2hpc3RvcnlfZGV0YWls X3F1ZXJ5LmpzeCBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qc3gvaGlzdG9yeS9kZXRhaWwvaGlzdG9y eV9kZXRhaWxfcXVlcnkuanN4CmluZGV4IGRjZTM0NjA3Li5lYWU1NWRlZSAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vc3RhdGljL2pzeC9oaXN0b3J5L2RldGFpbC9oaXN0b3J5X2RldGFpbF9xdWVy eS5qc3gKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzeC9oaXN0b3J5L2RldGFpbC9oaXN0b3J5 X2RldGFpbF9xdWVyeS5qc3gKQEAgLTY0LDYgKzY0LDcgQEAgZXhwb3J0IGRlZmF1bHQgY2xhc3Mg SGlzdG9yeURldGFpbFF1ZXJ5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKICAgICAgICAgICAg IG1vZGU6ICd0ZXh0L3gtcGdzcWwnLAogICAgICAgICAgICAgcmVhZE9ubHk6IHRydWUsCiAgICAg ICAgICAgfX0KKyAgICAgICAgICBzcWxGb250U2l6ZT0ge3RoaXMucHJvcHMuc3FsRWRpdG9yUHJl Zi5zcWxfZm9udF9zaXplfQogICAgICAgICAvPgogICAgICAgPC9kaXY+KTsKICAgfQpAQCAtNzEs NCArNzIsNSBAQCBleHBvcnQgZGVmYXVsdCBjbGFzcyBIaXN0b3J5RGV0YWlsUXVlcnkgZXh0ZW5k cyBSZWFjdC5Db21wb25lbnQgewogCiBIaXN0b3J5RGV0YWlsUXVlcnkucHJvcFR5cGVzID0gewog ICBoaXN0b3J5RW50cnk6IFNoYXBlcy5oaXN0b3J5RGV0YWlsLAorICBzcWxFZGl0b3JQcmVmOiBT aGFwZXMuc3FsRWRpdG9yUHJlZk9iaiwKIH07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0 aWMvanN4L2hpc3RvcnkvcXVlcnlfaGlzdG9yeS5qc3ggYi93ZWIvcGdhZG1pbi9zdGF0aWMvanN4 L2hpc3RvcnkvcXVlcnlfaGlzdG9yeS5qc3gKaW5kZXggM2MwN2I1YmQuLjhiNWZmZDJhIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanN4L2hpc3RvcnkvcXVlcnlfaGlzdG9yeS5qc3gK KysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzeC9oaXN0b3J5L3F1ZXJ5X2hpc3RvcnkuanN4CkBA IC05NywxMyArOTcsMTYgQEAgZXhwb3J0IGRlZmF1bHQgY2xhc3MgUXVlcnlIaXN0b3J5IGV4dGVu ZHMgUmVhY3QuQ29tcG9uZW50IHsKICAgICAgICAgICBzZWxlY3RlZEVudHJ5PXt0aGlzLnN0YXRl LnNlbGVjdGVkRW50cnl9CiAgICAgICAgICAgb25TZWxlY3RFbnRyeT17dGhpcy5zZWxlY3RIaXN0 b3J5RW50cnl9CiAgICAgICAgIC8+Ci0gICAgICAgIDxRdWVyeUhpc3RvcnlEZXRhaWwgaGlzdG9y eUVudHJ5PXt0aGlzLnN0YXRlLmN1cnJlbnRIaXN0b3J5RGV0YWlsfS8+CisgICAgICAgIDxRdWVy eUhpc3RvcnlEZXRhaWwgaGlzdG9yeUVudHJ5PXt0aGlzLnN0YXRlLmN1cnJlbnRIaXN0b3J5RGV0 YWlsfQorICAgICAgICAgICAgc3FsRWRpdG9yUHJlZj17dGhpcy5wcm9wcy5zcWxFZGl0b3JQcmVm fQorICAgICAgICAvPgogICAgICAgPC9TcGxpdFBhbmU+KTsKICAgfQogfQogCiBRdWVyeUhpc3Rv cnkucHJvcFR5cGVzID0gewogICBoaXN0b3J5Q29sbGVjdGlvbjogU2hhcGVzLmhpc3RvcnlDb2xs ZWN0aW9uQ2xhc3MuaXNSZXF1aXJlZCwKKyAgc3FsRWRpdG9yUHJlZjogU2hhcGVzLnNxbEVkaXRv clByZWZPYmosCiB9OwogCiBleHBvcnQgewpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGlj L2pzeC9yZWFjdF9zaGFwZXMuanN4IGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzeC9yZWFjdF9zaGFw ZXMuanN4CmluZGV4IDQ1NGFiNDQ2Li5mODk0OGI1ZiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v c3RhdGljL2pzeC9yZWFjdF9zaGFwZXMuanN4CisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qc3gv cmVhY3Rfc2hhcGVzLmpzeApAQCAtMjUsNyArMjUsMTMgQEAgbGV0IGhpc3RvcnlDb2xsZWN0aW9u Q2xhc3MgPQogICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLAogICB9KTsK IAorbGV0IHNxbEVkaXRvclByZWZPYmogPQorICBQcm9wVHlwZXMuc2hhcGUoeworICAgIHNxbF9m b250X3NpemU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCwKKyAgfSk7CisKIGV4cG9ydCBk ZWZhdWx0IHsKICAgaGlzdG9yeURldGFpbCwKICAgaGlzdG9yeUNvbGxlY3Rpb25DbGFzcywKKyAg c3FsRWRpdG9yUHJlZk9iaiwKIH07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9kYXRh Z3JpZC9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL19faW5pdF9fLnB5 CmluZGV4IGQzYzNiZjljLi4wNGUyYTY4MyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMv ZGF0YWdyaWQvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvX19p bml0X18ucHkKQEAgLTI0LDEyICsyNCw5IEBAIGZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9y dCBtYWtlX2pzb25fcmVzcG9uc2UsIGJhZF9yZXF1ZXN0LCBcCiAgICAgaW50ZXJuYWxfc2VydmVy X2Vycm9yCiAKIGZyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgotZnJvbSBwZ2Fk bWluLnV0aWxzLnByZWZlcmVuY2VzIGltcG9ydCBQcmVmZXJlbmNlcwogZnJvbSBwZ2FkbWluLm1v ZGVsIGltcG9ydCBTZXJ2ZXIKIGZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9k cml2ZXIKIGZyb20gcGdhZG1pbi51dGlscy5leGNlcHRpb24gaW1wb3J0IENvbm5lY3Rpb25Mb3N0 LCBTU0hUdW5uZWxDb25uZWN0aW9uTG9zdAotZnJvbSBwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51 dGlscy5xdWVyeV90b29sX3ByZWZlcmVuY2VzIGltcG9ydCBcCi0gICAgZ2V0X3F1ZXJ5X3Rvb2xf a2V5Ym9hcmRfc2hvcnRjdXRzLCBnZXRfdGV4dF9yZXByZXNlbnRhdGlvbl9vZl9zaG9ydGN1dAog CiAKIGNsYXNzIERhdGFHcmlkTW9kdWxlKFBnQWRtaW5Nb2R1bGUpOgpAQCAtMTg0LDEzICsxODEs OSBAQCBkZWYgaW5pdGlhbGl6ZV9kYXRhZ3JpZChjbWRfdHlwZSwgb2JqX3R5cGUsIHNnaWQsIHNp ZCwgZGlkLCBvYmpfaWQpOgogICAgICMgU3RvcmUgdGhlIGdyaWQgZGljdGlvbmFyeSBpbnRvIHRo ZSBzZXNzaW9uIHZhcmlhYmxlCiAgICAgc2Vzc2lvblsnZ3JpZERhdGEnXSA9IHNxbF9ncmlkX2Rh dGEKIAotICAgIHByZWYgPSBQcmVmZXJlbmNlcy5tb2R1bGUoJ3NxbGVkaXRvcicpCi0gICAgbmV3 X2Jyb3dzZXJfdGFiID0gcHJlZi5wcmVmZXJlbmNlKCduZXdfYnJvd3Nlcl90YWInKS5nZXQoKQot CiAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKICAgICAgICAgZGF0YT17Ci0gICAgICAg ICAgICAnZ3JpZFRyYW5zSWQnOiB0cmFuc19pZCwKLSAgICAgICAgICAgICduZXdCcm93c2VyVGFi JzogbmV3X2Jyb3dzZXJfdGFiCisgICAgICAgICAgICAnZ3JpZFRyYW5zSWQnOiB0cmFuc19pZAog ICAgICAgICB9CiAgICAgKQogCkBAIC0yNDYsMTIgKzIzOSw2IEBAIGRlZiBwYW5lbCh0cmFuc19p ZCwgaXNfcXVlcnlfdG9vbCwgZWRpdG9yX3RpdGxlKToKICAgICBpZiAibGludXgiIGluIF9wbGF0 Zm9ybToKICAgICAgICAgaXNfbGludXhfcGxhdGZvcm0gPSBUcnVlCiAKLSAgICBwcmVmID0gUHJl ZmVyZW5jZXMubW9kdWxlKCdzcWxlZGl0b3InKQotICAgIGlmIHByZWYucHJlZmVyZW5jZSgnbmV3 X2Jyb3dzZXJfdGFiJykuZ2V0KCk6Ci0gICAgICAgIG5ld19icm93c2VyX3RhYiA9ICd0cnVlJwot ICAgIGVsc2U6Ci0gICAgICAgIG5ld19icm93c2VyX3RhYiA9ICdmYWxzZScKLQogICAgICMgRmV0 Y2ggdGhlIHNlcnZlciBkZXRhaWxzCiAgICAgYmdjb2xvciA9IE5vbmUKICAgICBmZ2NvbG9yID0g Tm9uZQpAQCAtMjcxLDE2ICsyNTgsMTAgQEAgZGVmIHBhbmVsKHRyYW5zX2lkLCBpc19xdWVyeV90 b29sLCBlZGl0b3JfdGl0bGUpOgogCiAgICAgdXJsX3BhcmFtcyA9IGRpY3QoKQogICAgIGlmIGlz X3F1ZXJ5X3Rvb2wgPT0gJ3RydWUnOgotICAgICAgICBwcm9tcHRfc2F2ZV9jaGFuZ2VzID0gcHJl Zi5wcmVmZXJlbmNlKAotICAgICAgICAgICAgJ3Byb21wdF9zYXZlX3F1ZXJ5X2NoYW5nZXMnCi0g ICAgICAgICkuZ2V0KCkKICAgICAgICAgdXJsX3BhcmFtc1snc2dpZCddID0gdHJhbnNfb2JqLnNn aWQKICAgICAgICAgdXJsX3BhcmFtc1snc2lkJ10gPSB0cmFuc19vYmouc2lkCiAgICAgICAgIHVy bF9wYXJhbXNbJ2RpZCddID0gdHJhbnNfb2JqLmRpZAogICAgIGVsc2U6Ci0gICAgICAgIHByb21w dF9zYXZlX2NoYW5nZXMgPSBwcmVmLnByZWZlcmVuY2UoCi0gICAgICAgICAgICAncHJvbXB0X3Nh dmVfZGF0YV9jaGFuZ2VzJwotICAgICAgICApLmdldCgpCiAgICAgICAgIHVybF9wYXJhbXNbJ2Nt ZF90eXBlJ10gPSB0cmFuc19vYmouY21kX3R5cGUKICAgICAgICAgdXJsX3BhcmFtc1snb2JqX3R5 cGUnXSA9IHRyYW5zX29iai5vYmplY3RfdHlwZQogICAgICAgICB1cmxfcGFyYW1zWydzZ2lkJ10g PSB0cmFuc19vYmouc2dpZApAQCAtMjg4LDkgKzI2OSw2IEBAIGRlZiBwYW5lbCh0cmFuc19pZCwg aXNfcXVlcnlfdG9vbCwgZWRpdG9yX3RpdGxlKToKICAgICAgICAgdXJsX3BhcmFtc1snZGlkJ10g PSB0cmFuc19vYmouZGlkCiAgICAgICAgIHVybF9wYXJhbXNbJ29ial9pZCddID0gdHJhbnNfb2Jq Lm9ial9pZAogCi0gICAgZGlzcGxheV9jb25uZWN0aW9uX3N0YXR1cyA9IHByZWYucHJlZmVyZW5j ZSgnY29ubmVjdGlvbl9zdGF0dXMnKS5nZXQoKQotICAgIHF1ZXJ5VG9vbFNob3J0Y3V0cyA9IGdl dF9xdWVyeV90b29sX2tleWJvYXJkX3Nob3J0Y3V0cygpCi0KICAgICByZXR1cm4gcmVuZGVyX3Rl bXBsYXRlKAogICAgICAgICAiZGF0YWdyaWQvaW5kZXguaHRtbCIsCiAgICAgICAgIF89Z2V0dGV4 dCwKQEAgLTMwMCwxOSArMjc4LDExIEBAIGRlZiBwYW5lbCh0cmFuc19pZCwgaXNfcXVlcnlfdG9v bCwgZWRpdG9yX3RpdGxlKToKICAgICAgICAgc2NyaXB0X3R5cGVfdXJsPXNVUkwsCiAgICAgICAg IGlzX2Rlc2t0b3BfbW9kZT1hcHAuUEdBRE1JTl9SVU5USU1FLAogICAgICAgICBpc19saW51eD1p c19saW51eF9wbGF0Zm9ybSwKLSAgICAgICAgaXNfbmV3X2Jyb3dzZXJfdGFiPW5ld19icm93c2Vy X3RhYiwKICAgICAgICAgc2VydmVyX3R5cGU9c2VydmVyX3R5cGUsCiAgICAgICAgIGNsaWVudF9w bGF0Zm9ybT11c2VyX2FnZW50LnBsYXRmb3JtLAogICAgICAgICBiZ2NvbG9yPWJnY29sb3IsCiAg ICAgICAgIGZnY29sb3I9Zmdjb2xvciwKLSAgICAgICAgIyBjb252ZXJ0IHB5dGhvbiBib29sZWFu IHZhbHVlIHRvIGVxdWl2YWxlbnQganMgYm9vbGVhbiBsaXRlcmFsCi0gICAgICAgICMgYmVmb3Jl IHBhc3NpbmcgaXQgdG8gaHRtbCB0ZW1wbGF0ZS4KLSAgICAgICAgcHJvbXB0X3NhdmVfY2hhbmdl cz0ndHJ1ZScgaWYgcHJvbXB0X3NhdmVfY2hhbmdlcyBlbHNlICdmYWxzZScsCi0gICAgICAgIGRp c3BsYXlfY29ubmVjdGlvbl9zdGF0dXM9ZGlzcGxheV9jb25uZWN0aW9uX3N0YXR1cywKLSAgICAg ICAgdXJsX3BhcmFtcz1qc29uLmR1bXBzKHVybF9wYXJhbXMpLAotICAgICAgICBrZXk9cXVlcnlU b29sU2hvcnRjdXRzLmdldCgna2V5cycpLAotICAgICAgICBzaG9ydGN1dHM9cXVlcnlUb29sU2hv cnRjdXRzLmdldCgnc2hvcnRjdXRzJyksCi0gICAgICAgIGdldF9zaG9ydGN1dF90ZXh0PWdldF90 ZXh0X3JlcHJlc2VudGF0aW9uX29mX3Nob3J0Y3V0CisgICAgICAgIHVybF9wYXJhbXM9anNvbi5k dW1wcyh1cmxfcGFyYW1zKQogICAgICkKIAogCkBAIC0zODcsMTMgKzM1Nyw5IEBAIGRlZiBpbml0 aWFsaXplX3F1ZXJ5X3Rvb2woc2dpZCwgc2lkLCBkaWQ9Tm9uZSk6CiAgICAgIyBTdG9yZSB0aGUg Z3JpZCBkaWN0aW9uYXJ5IGludG8gdGhlIHNlc3Npb24gdmFyaWFibGUKICAgICBzZXNzaW9uWydn cmlkRGF0YSddID0gc3FsX2dyaWRfZGF0YQogCi0gICAgcHJlZiA9IFByZWZlcmVuY2VzLm1vZHVs ZSgnc3FsZWRpdG9yJykKLSAgICBuZXdfYnJvd3Nlcl90YWIgPSBwcmVmLnByZWZlcmVuY2UoJ25l d19icm93c2VyX3RhYicpLmdldCgpCi0KICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAog ICAgICAgICBkYXRhPXsKLSAgICAgICAgICAgICdncmlkVHJhbnNJZCc6IHRyYW5zX2lkLAotICAg ICAgICAgICAgJ25ld0Jyb3dzZXJUYWInOiBuZXdfYnJvd3Nlcl90YWIKKyAgICAgICAgICAgICdn cmlkVHJhbnNJZCc6IHRyYW5zX2lkCiAgICAgICAgIH0KICAgICApCiAKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3N0YXRpYy9qcy9kYXRhZ3JpZC5qcyBiL3dlYi9wZ2Fk bWluL3Rvb2xzL2RhdGFncmlkL3N0YXRpYy9qcy9kYXRhZ3JpZC5qcwppbmRleCBjNzMwYjE4MC4u NGNkZGRmMzggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3N0YXRpYy9q cy9kYXRhZ3JpZC5qcworKysgYi93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC9zdGF0aWMvanMv ZGF0YWdyaWQuanMKQEAgLTI5LDYgKzI5LDIzIEBAIGRlZmluZSgncGdhZG1pbi5kYXRhZ3JpZCcs IFsKICAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7CiAgICAgICAgIHRoaXMudGl0bGVf aW5kZXggPSAxOwogCisKKyAgICAgICAgbGV0IHNlbGYgPSB0aGlzOworICAgICAgICAvKiBDYWNo ZSBtYXkgdGFrZSB0aW1lIHRvIGxvYWQgZm9yIHRoZSBmaXJzdCB0aW1lCisgICAgICAgICAqIEtl ZXAgdHJ5aW5nIHRpbGwgYXZhaWxhYmxlCisgICAgICAgICAqLworICAgICAgICBsZXQgY2FjaGVJ bnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYocGdCcm93 c2VyLnByZWZlcmVuY2VfdmVyc2lvbigpID4gMCkgeworICAgICAgICAgICAgc2VsZi5wcmVmZXJl bmNlcyA9IHBnQnJvd3Nlci5nZXRfcHJlZmVyZW5jZXNfZm9yX21vZHVsZSgnc3FsZWRpdG9yJyk7 CisgICAgICAgICAgICBjbGVhckludGVydmFsKGNhY2hlSW50ZXJ2YWxJZCk7CisgICAgICAgICAg fQorICAgICAgICB9LDApOworCisgICAgICAgIHBnQnJvd3Nlci5vblByZWZlcmVuY2VzQ2hhbmdl KCdzcWxlZGl0b3InLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICBzZWxmLnByZWZlcmVuY2VzID0g cGdCcm93c2VyLmdldF9wcmVmZXJlbmNlc19mb3JfbW9kdWxlKCdzcWxlZGl0b3InKTsKKyAgICAg ICAgfSk7CisKKwogICAgICAgICB0aGlzLnNwaW5uZXJfZWwgPSAnPGRpdiBjbGFzcz0id2NMb2Fk aW5nQ29udGFpbmVyIj4nKwogICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0id2NMb2FkaW5nQmFj a2dyb3VuZCI+PC9kaXY+JysKICAgICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0id2NMb2FkaW5n SWNvbkNvbnRhaW5lciI+JysKQEAgLTI3OSwxMiArMjk2LDEyIEBAIGRlZmluZSgncGdhZG1pbi5k YXRhZ3JpZCcsIFsKICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXJzOiB0cnVlLAogICAgICAg ICAgICAgICAgICAgbW9kZTogJ3RleHQveC1wZ3NxbCcsCiAgICAgICAgICAgICAgICAgICBleHRy YUtleXM6IHBnQnJvd3Nlci5lZGl0b3Jfc2hvcnRjdXRfa2V5cywKLSAgICAgICAgICAgICAgICAg IGluZGVudFdpdGhUYWJzOiBwZ0FkbWluLkJyb3dzZXIuZWRpdG9yX29wdGlvbnMuaW5kZW50X3dp dGhfdGFicywKLSAgICAgICAgICAgICAgICAgIGluZGVudFVuaXQ6IHBnQWRtaW4uQnJvd3Nlci5l ZGl0b3Jfb3B0aW9ucy50YWJTaXplLAotICAgICAgICAgICAgICAgICAgdGFiU2l6ZTogcGdCcm93 c2VyLmVkaXRvcl9vcHRpb25zLnRhYlNpemUsCi0gICAgICAgICAgICAgICAgICBsaW5lV3JhcHBp bmc6IHBnQWRtaW4uQnJvd3Nlci5lZGl0b3Jfb3B0aW9ucy53cmFwQ29kZSwKLSAgICAgICAgICAg ICAgICAgIGF1dG9DbG9zZUJyYWNrZXRzOiBwZ0FkbWluLkJyb3dzZXIuZWRpdG9yX29wdGlvbnMu aW5zZXJ0X3BhaXJfYnJhY2tldHMsCi0gICAgICAgICAgICAgICAgICBtYXRjaEJyYWNrZXRzOiBw Z0FkbWluLkJyb3dzZXIuZWRpdG9yX29wdGlvbnMuYnJhY2VfbWF0Y2hpbmcsCisgICAgICAgICAg ICAgICAgICBpbmRlbnRXaXRoVGFiczogIXRoaXMucHJlZmVyZW5jZXMudXNlX3NwYWNlcywKKyAg ICAgICAgICAgICAgICAgIGluZGVudFVuaXQ6IHRoaXMucHJlZmVyZW5jZXMudGFiX3NpemUsCisg ICAgICAgICAgICAgICAgICB0YWJTaXplOiB0aGlzLnByZWZlcmVuY2VzLnRhYl9zaXplLAorICAg ICAgICAgICAgICAgICAgbGluZVdyYXBwaW5nOiB0aGlzLnByZWZlcmVuY2VzLndyYXBfY29kZSwK KyAgICAgICAgICAgICAgICAgIGF1dG9DbG9zZUJyYWNrZXRzOiB0aGlzLnByZWZlcmVuY2VzLmlu c2VydF9wYWlyX2JyYWNrZXRzLAorICAgICAgICAgICAgICAgICAgbWF0Y2hCcmFja2V0czogdGhp cy5wcmVmZXJlbmNlcy5icmFjZV9tYXRjaGluZywKICAgICAgICAgICAgICAgICB9KTsKIAogICAg ICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CkBAIC00MTUsMTMgKzQzMiwyMCBA QCBkZWZpbmUoJ3BnYWRtaW4uZGF0YWdyaWQnLCBbCiAgICAgICAgICAgfQogICAgICAgICB9CiAK LSAgICAgICAgaWYgKHRyYW5zX29iai5uZXdCcm93c2VyVGFiKSB7CisgICAgICAgIGlmIChzZWxm LnByZWZlcmVuY2VzLm5ld19icm93c2VyX3RhYikgewogICAgICAgICAgIHZhciBuZXdXaW4gPSB3 aW5kb3cub3BlbihiYXNlVXJsLCAnX2JsYW5rJyk7CiAKICAgICAgICAgICAvLyBhZGQgYSBsb2Fk IGxpc3RlbmVyIHRvIHRoZSB3aW5kb3cgc28gdGhhdCB0aGUgdGl0bGUgZ2V0cyBjaGFuZ2VkIG9u IHBhZ2UgbG9hZAogICAgICAgICAgIG5ld1dpbi5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVu Y3Rpb24oKSB7CiAgICAgICAgICAgICBuZXdXaW4uZG9jdW1lbnQudGl0bGUgPSBwYW5lbF90aXRs ZTsKKworICAgICAgICAgICAgLyogU2V0IHRoZSBpbml0aWFsIHZlcnNpb24gb2YgcHJlZiBjYWNo ZSB0aGUgbmV3IHdpbmRvdyBpcyBoYXZpbmcKKyAgICAgICAgICAgICAqIFRoaXMgd2lsbCBiZSB1 c2VkIGJ5IHRoZSBwb2xsZXIgdG8gY29tcGFyZSB3aXRoIHdpbmRvdyBvcGVuZXJzCisgICAgICAg ICAgICAgKiBwcmVmIGNhY2hlIHZlcnNpb24KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAg Ly9uZXdXaW4ucGdBZG1pbi5Ccm93c2VyLnByZWZlcmVuY2VfdmVyc2lvbihwZ0Jyb3dzZXIucHJl ZmVyZW5jZV92ZXJzaW9uKCkpOwogICAgICAgICAgIH0pOworCiAgICAgICAgIH0gZWxzZSB7CiAg ICAgICAgICAgLyogT24gc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemF0aW9uIGZpbmQgdGhlIGRhc2hi b2FyZCBwYW5lbCwKICAgICAgICAgICAgKiBjcmVhdGUgbmV3IHBhbmVsIGFuZCBhZGQgaXQgdG8g dGhlIGRhc2hib2FyZCBwYW5lbC4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFn cmlkL3RlbXBsYXRlcy9kYXRhZ3JpZC9pbmRleC5odG1sIGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0 YWdyaWQvdGVtcGxhdGVzL2RhdGFncmlkL2luZGV4Lmh0bWwKaW5kZXggYWQwOTAyNjIuLjM3MTg3 ZTQ1IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZW1wbGF0ZXMvZGF0 YWdyaWQvaW5kZXguaHRtbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC90ZW1wbGF0 ZXMvZGF0YWdyaWQvaW5kZXguaHRtbApAQCAtMTAsMTMgKzEwLDYgQEAKICAgICAuYWxlcnRpZnkg LmFqcy1kaWFsb2cuYWpzLXNoYWtley13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IG5vbmU7fQogICAg IC5zcWwtZWRpdG9yLWJ1c3ktaWNvbi5mYS1wdWxzZXstd2Via2l0LWFuaW1hdGlvbjogbm9uZTt9 CiAgICAgeyUgZW5kaWYgJX0KLQotICAgIHsjIE5vdGU6IElmIHdlIHdpbGwgZGlzcGxheSBjb25u ZWN0aW9uIHN0YXR1cyB0aGVuIHdlIGhhdmUgdG8gcHJvdmlkZSBzb21lCi0gICAgc3BhY2UgdG8g ZGlzcGxheSBzdGF0dXMgaWNvbiBlbHNlIHdlIGNhbiB1c2UgYWxsIHRoZSBzcGFjZSBhdmFpbGFi bGUgI30KLSAgICAuZWRpdG9yLXRpdGxlIHsKLSAgICAgIHdpZHRoOnslIGlmIGRpc3BsYXlfY29u bmVjdGlvbl9zdGF0dXMgLSV9IGNhbGMoMTAwJSAtIDQzcHgpCi0gICAgeyUgZWxzZSAlfSAxMDAl IHslLSBlbmRpZiAlfTsKLSAgICB9CiA8L3N0eWxlPgogPGRpdiBpZD0ibWFpbi1lZGl0b3JfcGFu ZWwiPgogICAgIDxkaXYgaWQ9ImZldGNoaW5nX2RhdGEiIGNsYXNzPSJ3Y0xvYWRpbmdJY29uQ29u dGFpbmVyIHNxbC1lZGl0b3ItYnVzeS1mZXRjaGluZyBoaWRlIj4KQEAgLTI4LDE0ICsyMSwxNCBA QAogICAgICAgICA8ZGl2IGlkPSJidG4tdG9vbGJhciIgY2xhc3M9InBnLXByb3AtYnRuLWdyb3Vw IGJnLWdyYXktMiBib3JkZXItZ3JheS0zIiByb2xlPSJ0b29sYmFyIiBhcmlhLWxhYmVsPSIiPgog ICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuLWdyb3VwIiByb2xlPSJncm91cCIgYXJpYS1sYWJl bD0iIj4KICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tbG9hZC1maWxlIiB0eXBlPSJi dXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgYnRuLWxvYWQtZmlsZSIKLSAgICAgICAgICAg ICAgICAgICAgICAgIHRpdGxlPSJ7eyBfKCdPcGVuIEZpbGUnKSB9fXt7IF8oJyAoYWNjZXNza2V5 K3swfSknLmZvcm1hdChrZXkub3Blbl9maWxlLnVwcGVyKCkpKSB9fSIKLSAgICAgICAgICAgICAg ICAgICAgICAgIGFjY2Vzc2tleT0ie3trZXkub3Blbl9maWxlfX0iCisgICAgICAgICAgICAgICAg ICAgICAgICB0aXRsZT0iIgorICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSIiCiAg ICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD0iMCI+CiAgICAgICAgICAgICAgICAgICAg IDxpIGNsYXNzPSJmYSBmYS1mb2xkZXItb3Blbi1vIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgog ICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0 bi1zYXZlIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiCi0gICAgICAgICAg ICAgICAgICAgICAgICB0aXRsZT0ie3sgXygnU2F2ZScpIH19e3sgXygnIChhY2Nlc3NrZXkrezB9 KScuZm9ybWF0KGtleS5zYXZlX2ZpbGUudXBwZXIoKSkpIH19IgotICAgICAgICAgICAgICAgICAg ICAgICAgYWNjZXNza2V5PSJ7e2tleS5zYXZlX2ZpbGV9fSIKKyAgICAgICAgICAgICAgICAgICAg ICAgIHRpdGxlPSIiCisgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9IiIKICAgICAg ICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPgogICAgICAgICAgICAgICAgICAgICA8aSBjbGFz cz0iZmEgZmEtZmxvcHB5LW8iIGFyaWEtaGlkZGVuPSJ0cnVlIiB0YWJpbmRleD0iMCI+PC9pPgog ICAgICAgICAgICAgICAgIDwvYnV0dG9uPgpAQCAtNjMsOCArNTYsOCBAQAogICAgICAgICAgICAg ICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1maW5kLW1lbnUt ZHJvcGRvd24iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBkcm9wZG93bi10 b2dnbGUiCiAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIGFy aWEtaGFzcG9wdXA9InRydWUiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIgotICAgICAgICAgICAgICAg ICAgICAgICAgdGl0bGU9Int7IF8oJ0ZpbmQgb3B0aW9ucycpIH19e3sgXygnIChhY2Nlc3NrZXkr ezB9KScuZm9ybWF0KGtleS5maW5kX29wdGlvbnMudXBwZXIoKSkpIH19IgotICAgICAgICAgICAg ICAgICAgICAgICAgYWNjZXNza2V5PSJ7e2tleS5maW5kX29wdGlvbnN9fSIKKyAgICAgICAgICAg ICAgICAgICAgICAgIHRpdGxlPSIiCisgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9 IiIKICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIwIj4KICAgICAgICAgICAgICAg ICAgICAgPHNwYW4gY2xhc3M9ImNhcmV0Ij48L3NwYW4+IDxzcGFuIGNsYXNzPSJzci1vbmx5Ij5U b2dnbGUgRHJvcGRvd248L3NwYW4+CiAgICAgICAgICAgICAgICAgPC9idXR0b24+CkBAIC0xMjIs MjIgKzExNSwyMiBAQAogICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICA8ZGl2IGNsYXNz PSJidG4tZ3JvdXAiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSIiPgogICAgICAgICAgICAgICAg IDxidXR0b24gaWQ9ImJ0bi1jb3B5LXJvdyIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1k ZWZhdWx0IgotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9Int7IF8oJ0NvcHknKSB9fXt7 IF8oJyAoYWNjZXNza2V5K3swfSknLmZvcm1hdChrZXkuY29weV9yb3cudXBwZXIoKSkpIH19Igot ICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSJ7e2tleS5jb3B5X3Jvd319IgorICAg ICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IiIKKyAgICAgICAgICAgICAgICAgICAgICAgIGFj Y2Vzc2tleT0iIgogICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9IjAiIGRpc2FibGVk PgogICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtZmlsZXMtbyIgYXJpYS1oaWRk ZW49InRydWUiPjwvaT4KICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAg ICA8YnV0dG9uIGlkPSJidG4tcGFzdGUtcm93IiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRu LWRlZmF1bHQiCi0gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0ie3sgXygnUGFzdGUnKSB9 fXt7IF8oJyAoYWNjZXNza2V5K3swfSknLmZvcm1hdChrZXkucGFzdGVfcm93LnVwcGVyKCkpKSB9 fSIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0ie3trZXkucGFzdGVfcm93fX0i CisgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0iIgorICAgICAgICAgICAgICAgICAgICAg ICAgYWNjZXNza2V5PSIiCiAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD0iMCIgZGlz YWJsZWQ+CiAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1jbGlwYm9hcmQiIGFy aWEtaGlkZGVuPSJ0cnVlIj48L2k+CiAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAg ICAgICA8L2Rpdj4KICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bi1ncm91cCIgcm9sZT0iZ3Jv dXAiIGFyaWEtbGFiZWw9IiI+CiAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWRlbGV0 ZS1yb3ciIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIKLSAgICAgICAgICAg ICAgICAgICAgICAgIHRpdGxlPSJ7eyBfKCdEZWxldGUnKSB9fXt7IF8oJyAoYWNjZXNza2V5K3sw fSknLmZvcm1hdChrZXkuZGVsZXRlX3Jvdy51cHBlcigpKSkgfX0iCi0gICAgICAgICAgICAgICAg ICAgICAgICBhY2Nlc3NrZXk9Int7a2V5LmRlbGV0ZV9yb3d9fSIKKyAgICAgICAgICAgICAgICAg ICAgICAgIHRpdGxlPSIiCisgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9IiIKICAg ICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PSIwIiBkaXNhYmxlZD4KICAgICAgICAgICAg ICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRyYXNoIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgog ICAgICAgICAgICAgICAgIDwvYnV0dG9uPgpAQCAtMTg4LDE1ICsxODEsMTUgQEAKICAgICAgICAg ICAgIDwvZGl2PgogICAgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuLWdyb3VwIiByb2xlPSJncm91 cCIgYXJpYS1sYWJlbD0iIj4KICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tZmlsdGVy IiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiCi0gICAgICAgICAgICAgICAg ICAgICAgICB0aXRsZT0ie3sgXygnRmlsdGVyJykgfX17eyBfKCcgKGFjY2Vzc2tleSt7MH0pJy5m b3JtYXQoa2V5LmZpbHRlcl9kaWFsb2cudXBwZXIoKSkpIH19IgotICAgICAgICAgICAgICAgICAg ICAgICAgYWNjZXNza2V5PSJ7e2tleS5maWx0ZXJfZGlhbG9nfX0iCisgICAgICAgICAgICAgICAg ICAgICAgICB0aXRsZT0iIgorICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSIiCiAg ICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD0iMCIgZGlzYWJsZWQ+CiAgICAgICAgICAg ICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1maWx0ZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+ CiAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0i YnRuLWZpbHRlci1kcm9wZG93biIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0 IGRyb3Bkb3duLXRvZ2dsZSIKICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPSJk cm9wZG93biIgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgYXJpYS1leHBhbmRlZD0iZmFsc2UiCi0gICAg ICAgICAgICAgICAgICAgICAgICB0aXRsZT0ie3sgXygnRmlsdGVyIG9wdGlvbnMnKSB9fXt7IF8o JyAoYWNjZXNza2V5K3swfSknLmZvcm1hdChrZXkuZmlsdGVyX29wdGlvbnMudXBwZXIoKSkpIH19 IgotICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSJ7e2tleS5maWx0ZXJfb3B0aW9u c319IgorICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IiIKKyAgICAgICAgICAgICAgICAg ICAgICAgIGFjY2Vzc2tleT0iIgogICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQgdGFi aW5kZXg9IjAiPgogICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bh bj4gPHNwYW4gY2xhc3M9InNyLW9ubHkiPnt7IF8oJ1RvZ2dsZSBEcm9wZG93bicpIH19PC9zcGFu PgogICAgICAgICAgICAgICAgIDwvYnV0dG9uPgpAQCAtMjEwLDkgKzIwMyw5IEBACiAgICAgICAg ICAgICAgICAgPC91bD4KICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgPGRpdiBjbGFz cz0iYnRuLWdyb3VwIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iIj4KLSAgICAgICAgICAgICAg ICA8c2VsZWN0IGNsYXNzPSJsaW1pdCIgc3R5bGU9ImhlaWdodDogMzBweDsgd2lkdGg6IDkwcHg7 IiBkaXNhYmxlZAotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9Int7IF8oJ1Jvd3MgbGlt aXQnKSB9fXt7IF8oJyAoYWNjZXNza2V5K3swfSknLmZvcm1hdChrZXkucm93c19saW1pdC51cHBl cigpKSkgfX0iCi0gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9Int7a2V5LnJvd3Nf bGltaXR9fSIKKyAgICAgICAgICAgICAgICA8c2VsZWN0IGlkPSJidG4tcm93cy1saW1pdCIgY2xh c3M9ImxpbWl0IiBzdHlsZT0iaGVpZ2h0OiAzMHB4OyB3aWR0aDogOTBweDsiIGRpc2FibGVkCisg ICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0iIgorICAgICAgICAgICAgICAgICAgICAgICAg YWNjZXNza2V5PSIiCiAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD0iMCI+CiAgICAg ICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ii0xIj57eyBfKCdObyBsaW1pdCcpIH19PC9v cHRpb24+CiAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjEwMDAiPnt7IF8oJzEw MDAgcm93cycpIH19PC9vcHRpb24+CkBAIC0yMjMsMzEgKzIxNiwzMSBAQAogCiAgICAgICAgICAg ICA8ZGl2IGNsYXNzPSJidG4tZ3JvdXAiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSIiPgogICAg ICAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1mbGFzaCIgZGF0YS10ZXN0LXNlbGVjdG9yPSJl eGVjdXRlLXJlZnJlc2gtYnV0dG9uIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1 bHQiIHN0eWxlPSJ3aWR0aDogNDBweDsiCi0gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT0i e3sgXygnRXhlY3V0ZS9SZWZyZXNoJykgfX17eyBfKCcgKHswfSknLmZvcm1hdChnZXRfc2hvcnRj dXRfdGV4dChzaG9ydGN1dHMuZXhlY3V0ZV9xdWVyeSkpKSB9fSIKKyAgICAgICAgICAgICAgICAg ICAgICAgIHRpdGxlPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD0iMCI+CiAg ICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1ib2x0IiBhcmlhLWhpZGRlbj0idHJ1 ZSI+PC9pPgogICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgIDxidXR0 b24gaWQ9ImJ0bi1xdWVyeS1kcm9wZG93biIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1k ZWZhdWx0IGRyb3Bkb3duLXRvZ2dsZSIKICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdG9n Z2xlPSJkcm9wZG93biIgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgYXJpYS1leHBhbmRlZD0iZmFsc2Ui Ci0gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NrZXk9Int7a2V5LmV4ZWN1dGVfb3B0aW9u c319IgotICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9Int7IF8oJ0V4ZWN1dGUgb3B0aW9u cycpIH19e3sgXygnIChhY2Nlc3NrZXkrezB9KScuZm9ybWF0KGtleS5leGVjdXRlX29wdGlvbnMu dXBwZXIoKSkpIH19IgorICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSIiCisgICAg ICAgICAgICAgICAgICAgICAgICB0aXRsZT0iIgogICAgICAgICAgICAgICAgICAgICAgICAgdGFi aW5kZXg9IjAiPgogICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bh bj4gPHNwYW4gY2xhc3M9InNyLW9ubHkiPnt7IF8oJ1RvZ2dsZSBEcm9wZG93bicpIH19PC9zcGFu PgogICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0i ZHJvcGRvd24tbWVudSIgcm9sZT0ibWVudSI+CiAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAg ICAgICAgICAgICAgICAgICAgICAgIDxhIGlkPSJidG4tZmxhc2gtbWVudSIgaHJlZj0iIyIgdGFi aW5kZXg9IjAiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IF8oJ0V4ZWN1 dGUvUmVmcmVzaCcpIH19e3sgXygnICh7MH0pJy5mb3JtYXQoZ2V0X3Nob3J0Y3V0X3RleHQoc2hv cnRjdXRzLmV4ZWN1dGVfcXVlcnkpKSkgfX08L3NwYW4+CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPHNwYW4+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAg ICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAg ICAgICAgICAgICAgICA8YSBpZD0iYnRuLWV4cGxhaW4iIGhyZWY9IiMiIHRhYmluZGV4PSIwIj4K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBfKCdFeHBsYWluJykgfX17eyBf KCcgKHswfSknLmZvcm1hdChnZXRfc2hvcnRjdXRfdGV4dChzaG9ydGN1dHMuZXhwbGFpbl9xdWVy eSkpKSB9fTwvc3Bhbj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48L3NwYW4+ CiAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgIDwvbGk+ CiAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGlk PSJidG4tZXhwbGFpbi1hbmFseXplIiBocmVmPSIjIiB0YWJpbmRleD0iMCI+Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgXygnRXhwbGFpbiBBbmFseXplJykgfX17eyBfKCcg KHswfSknLmZvcm1hdChnZXRfc2hvcnRjdXRfdGV4dChzaG9ydGN1dHMuZXhwbGFpbl9hbmFseXpl X3F1ZXJ5KSkpIH19PC9zcGFuPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjwv c3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAg PC9saT4KICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkaXZpZGVyIj48L2xpPgpAQCAt Mjk1LDggKzI4OCw4IEBACiAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAg ICAgPC91bD4KICAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tY2FuY2VsLXF1ZXJ5IiB0 eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiCi0gICAgICAgICAgICAgICAgICAg ICAgICB0aXRsZT0ie3sgXygnQ2FuY2VsIHF1ZXJ5JykgfX17eyBfKCcgKGFjY2Vzc2tleSt7MH0p Jy5mb3JtYXQoa2V5LmNhbmNlbF9xdWVyeS51cHBlcigpKSkgfX0iCi0gICAgICAgICAgICAgICAg ICAgICAgICBhY2Nlc3NrZXk9Int7a2V5LmNhbmNlbF9xdWVyeX19IgorICAgICAgICAgICAgICAg ICAgICAgICAgdGl0bGU9IiIKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0iIgog ICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9IjAiIGRpc2FibGVkID4KICAgICAgICAg ICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXN0b3AiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+ CiAgICAgICAgICAgICAgICAgPC9idXR0b24+CkBAIC0zMDQsOCArMjk3LDggQEAKICAgICAgICAg ICAgIDxkaXYgY2xhc3M9ImJ0bi1ncm91cCIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9IiI+CiAg ICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWNsZWFyLWRyb3Bkb3duIiB0eXBlPSJidXR0 b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgZHJvcGRvd24tdG9nZ2xlIgogICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YS10b2dnbGU9ImRyb3Bkb3duIiBhcmlhLWhhc3BvcHVwPSJ0cnVlIiBh cmlhLWV4cGFuZGVkPSJmYWxzZSIKLSAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSJ7eyBf KCdDbGVhcicpIH19e3sgXygnIChhY2Nlc3NrZXkrezB9KScuZm9ybWF0KGtleS5jbGVhcl9vcHRp b25zLnVwcGVyKCkpKSB9fSIKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0ie3tr ZXkuY2xlYXJfb3B0aW9uc319IgorICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9IiIKKyAg ICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0iIgogICAgICAgICAgICAgICAgICAgICAg ICAgdGFiaW5kZXg9IjAiPgogICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtZXJh c2VyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgICAgICA8c3BhbiBj bGFzcz0iY2FyZXQiPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InNyLW9ubHkiPnt7IF8oJ1RvZ2dsZSBE cm9wZG93bicpIH19PC9zcGFuPgpAQCAtMzI1LDcgKzMxOCw3IEBACiAgICAgICAgICAgICA8L2Rp dj4KICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bi1ncm91cCIgcm9sZT0iZ3JvdXAiIGFyaWEt bGFiZWw9IiI+CiAgICAgICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWRvd25sb2FkIiB0eXBl PSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiCi0gICAgICAgICAgICAgICAgICAgICAg ICB0aXRsZT0ie3sgXygnRG93bmxvYWQgYXMgQ1NWJykgfX17eyBfKCcgKHswfSknLmZvcm1hdChn ZXRfc2hvcnRjdXRfdGV4dChzaG9ydGN1dHMuZG93bmxvYWRfY3N2KSkpIH19IgorICAgICAgICAg ICAgICAgICAgICAgICAgdGl0bGU9IiIKICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4 PSIwIj4KICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWRvd25sb2FkIiBhcmlh LWhpZGRlbj0idHJ1ZSI+PC9pPgogICAgICAgICAgICAgICAgIDwvYnV0dG9uPgpAQCAtMzMzLDIx ICszMjYsMTcgQEAKICAgICAgICAgPC9kaXY+CiAKICAgICAgICAgPGRpdiBjbGFzcz0iY29ubmVj dGlvbl9zdGF0dXNfd3JhcHBlciI+Ci0gICAgICAgICAgICB7JSBpZiBkaXNwbGF5X2Nvbm5lY3Rp b25fc3RhdHVzICV9Ci0gICAgICAgICAgICA8ZGl2IHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxv Y2s7IgotICAgICAgICAgICAgICAgICB0aXRsZT0ie3sgXygnQ29ubmVjdGlvbiBzdGF0dXMgKGNs aWNrIGZvciBkZXRhaWxzKSAoYWNjZXNza2V5K3swfSknLmZvcm1hdChrZXkuY29ubl9zdGF0dXMu dXBwZXIoKSkpIH19Ij4KLSAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb25uZWN0aW9uX3N0 YXR1cyIgZGF0YS1jb250YWluZXI9ImJvZHkiCi0gICAgICAgICAgICAgICAgICAgICBkYXRhLXRv Z2dsZT0icG9wb3ZlciIgZGF0YS1wbGFjZW1lbnQ9ImJvdHRvbSIKLSAgICAgICAgICAgICAgICAg ICAgIGRhdGEtY29udGVudD0iIgotICAgICAgICAgICAgICAgICAgICAgZGF0YS1wYW5lbC12aXNp YmxlPSJ2aXNpYmxlIgotICAgICAgICAgICAgICAgICAgICAgYWNjZXNza2V5PSJ7e2tleS5jb25u X3N0YXR1c319IgotICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9IjAiPgotICAgICAgICAg ICAgICAgICAgICA8aSBjbGFzcz0iZmEtY3VzdG9tIGZhLXF1ZXJ5LXRvb2wtZGlzY29ubmVjdGVk IiBhcmlhLWhpZGRlbj0idHJ1ZSIKLSAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPSJ7eyBf KCdDb25uZWN0aW9uIHN0YXR1cyAoY2xpY2sgZm9yIGRldGFpbHMpIChhY2Nlc3NrZXkrezB9KScu Zm9ybWF0KGtleS5jb25uX3N0YXR1cy51cHBlcigpKSkgfX0iPgotICAgICAgICAgICAgICAgICAg ICA8L2k+Ci0gICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8ZGl2IGlkPSJidG4t Y29ubi1zdGF0dXMiCisgICAgICAgICAgICAgICAgIGNsYXNzPSJjb25uZWN0aW9uX3N0YXR1cyBj b25uZWN0aW9uLXN0YXR1cy1zaG93IiBkYXRhLWNvbnRhaW5lcj0iYm9keSIKKyAgICAgICAgICAg ICAgICAgZGF0YS10b2dnbGU9InBvcG92ZXIiIGRhdGEtcGxhY2VtZW50PSJib3R0b20iCisgICAg ICAgICAgICAgICAgIGRhdGEtY29udGVudD0iIgorICAgICAgICAgICAgICAgICBkYXRhLXBhbmVs LXZpc2libGU9InZpc2libGUiCisgICAgICAgICAgICAgICAgIGFjY2Vzc2tleT0iIgorICAgICAg ICAgICAgICAgICB0YWJpbmRleD0iMCI+CisgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhLWN1 c3RvbSBmYS1xdWVyeS10b29sLWRpc2Nvbm5lY3RlZCIgYXJpYS1oaWRkZW49InRydWUiCisgICAg ICAgICAgICAgICAgICAgIHRpdGxlPSIiPgorICAgICAgICAgICAgICAgIDwvaT4KICAgICAgICAg ICAgIDwvZGl2PgotICAgICAgICAgICAgeyUgZW5kaWYgJX0KICAgICAgICAgICAgIDxkaXYgY2xh c3M9ImVkaXRvci10aXRsZSIKICAgICAgICAgICAgICAgICAgc3R5bGU9ImJhY2tncm91bmQtY29s b3I6IHslIGlmIGZnY29sb3IgJX17eyBiZ2NvbG9yIG9yICcjRkZGRkZGJyB9fXslIGVsc2UgJX17 eyBiZ2NvbG9yIG9yICcjMkM3NkI0JyB9fXslIGVuZGlmICV9OyBjb2xvcjoge3sgZmdjb2xvciBv ciAnd2hpdGUnIH19OyI+PC9kaXY+CiAgICAgICAgIDwvZGl2PgpAQCAtMzk4LDkgKzM4Nyw3IEBA CiAgICAgICAgIHt7IGlzX3F1ZXJ5X3Rvb2wgfX0sCiAgICAgICAgICJ7eyBlZGl0b3JfdGl0bGUg fX0iLAogICAgICAgICBzY3JpcHRfdHlwZV91cmwsCi0gICAgICAgIHt7IGlzX25ld19icm93c2Vy X3RhYiB9fSwKICAgICAgICAgInt7IHNlcnZlcl90eXBlIH19IiwKLSAgICAgICAge3sgcHJvbXB0 X3NhdmVfY2hhbmdlcyB9fSwKICAgICAgICAge3sgdXJsX3BhcmFtc3xzYWZlfX0KICAgICApOwog fSk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2Nzcy9z cWxlZGl0b3IuY3NzIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9jc3Mvc3Fs ZWRpdG9yLmNzcwppbmRleCBjNTQ1OTBkMy4uNzVlYWQyNjMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvY3NzL3NxbGVkaXRvci5jc3MKKysrIGIvd2ViL3Bn YWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9jc3Mvc3FsZWRpdG9yLmNzcwpAQCAtNjI1LDMg KzYyNSwxOSBAQCBpbnB1dC5lZGl0b3ItY2hlY2tib3g6Zm9jdXMgewogLmRhdGFfc29ydGluZ19k aWFsb2cgLmRhdGFfc29ydGluZyB7CiAgIHBhZGRpbmc6IDEwcHggMHB4OwogfQorCisuZWRpdG9y LXRpdGxlIHsKKyAgd2lkdGg6MTAwJTsKK30KKworLmVkaXRvci10aXRsZS1jb25uZWN0aW9uIHsK KyAgd2lkdGg6Y2FsYygxMDAlIC0gNDNweCk7Cit9CisKKy5jb25uZWN0aW9uLXN0YXR1cy1zaG93 IHsKKyAgZGlzcGxheTogaW5saW5lLWJsb2NrOworfQorCisuY29ubmVjdGlvbi1zdGF0dXMtaGlk ZSB7CisgIGRpc3BsYXk6IG5vbmU7Cit9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9z cWxlZGl0b3Ivc3RhdGljL2pzL3NxbGVkaXRvci5qcyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVk aXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzCmluZGV4IGMzNjA0MjEzLi42ZDRlYjMxZSAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9zcWxlZGl0b3Iu anMKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9zcWxlZGl0b3Iu anMKQEAgLTE2LDcgKzE2LDcgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICdzb3Vy Y2VzL3NxbGVkaXRvci9xdWVyeV90b29sX2h0dHBfZXJyb3JfaGFuZGxlcicsCiAgICdzb3VyY2Vz L3NxbGVkaXRvci9maWx0ZXJfZGlhbG9nJywKICAgJ3NvdXJjZXMvaGlzdG9yeS9pbmRleC5qcycs Ci0gICdzb3VyY2VzLy4uL2pzeC9oaXN0b3J5L3F1ZXJ5X2hpc3RvcnknLAorICAnc291cmNlc2pz eC9oaXN0b3J5L3F1ZXJ5X2hpc3RvcnknLAogICAncmVhY3QnLCAncmVhY3QtZG9tJywKICAgJ3Nv dXJjZXMva2V5Ym9hcmRfc2hvcnRjdXRzJywKICAgJ3NvdXJjZXMvc3FsZWRpdG9yL3F1ZXJ5X3Rv b2xfYWN0aW9ucycsCkBAIC0yNSw2ICsyNSw3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywg WwogICAnc291cmNlcy9tb2RpZnlfYW5pbWF0aW9uJywKICAgJ3NvdXJjZXMvc3FsZWRpdG9yL2Nh bGN1bGF0ZV9xdWVyeV9ydW5fdGltZScsCiAgICdzb3VyY2VzL3NxbGVkaXRvci9jYWxsX3JlbmRl cl9hZnRlcl9wb2xsJywKKyAgJ3NvdXJjZXMvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfcHJlZmVyZW5j ZXMnLAogICAnc291cmNlcy8uLi9idW5kbGUvc2xpY2tncmlkJywKICAgJ3BnYWRtaW4uZmlsZV9t YW5hZ2VyJywKICAgJ2JhY2tncmlkLnNpemVhYmxlLmNvbHVtbnMnLApAQCAtMzgsNyArMzksNyBA QCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgWENlbGxTZWxlY3Rpb25Nb2RlbCwgc2V0 U3RhZ2VkUm93cywgU3FsRWRpdG9yVXRpbHMsIEV4ZWN1dGVRdWVyeSwgaHR0cEVycm9ySGFuZGxl ciwgRmlsdGVySGFuZGxlciwKICAgSGlzdG9yeUJ1bmRsZSwgcXVlcnlIaXN0b3J5LCBSZWFjdCwg UmVhY3RET00sCiAgIGtleWJvYXJkU2hvcnRjdXRzLCBxdWVyeVRvb2xBY3Rpb25zLCBxdWVyeVRv b2xOb3RpZmljYXRpb25zLCBEYXRhZ3JpZCwKLSAgbW9kaWZ5QW5pbWF0aW9uLCBjYWxjdWxhdGVR dWVyeVJ1blRpbWUsIGNhbGxSZW5kZXJBZnRlclBvbGwpIHsKKyAgbW9kaWZ5QW5pbWF0aW9uLCBj YWxjdWxhdGVRdWVyeVJ1blRpbWUsIGNhbGxSZW5kZXJBZnRlclBvbGwsIHF1ZXJ5VG9vbFByZWYp IHsKICAgLyogUmV0dXJuIGJhY2ssIHRoaXMgaGFzIGJlZW4gY2FsbGVkIG1vcmUgdGhhbiBvbmNl ICovCiAgIGlmIChwZ0FkbWluLlNxbEVkaXRvcikKICAgICByZXR1cm4gcGdBZG1pbi5TcWxFZGl0 b3I7CkBAIC01OCw2ICs1OSwxMSBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAg IHRoaXMuJGVsID0gb3B0cy5lbDsKICAgICAgIHRoaXMuaGFuZGxlciA9IG9wdHMuaGFuZGxlcjsK ICAgICAgIHRoaXMuaGFuZGxlclsnY29sX3NpemUnXSA9IHt9OworICAgICAgbGV0IGJyb3dzZXIg PSB3aW5kb3cub3BlbmVyID8KKyAgICAgICAgICAgICAgd2luZG93Lm9wZW5lci5wZ0FkbWluLkJy b3dzZXIgOiB3aW5kb3cudG9wLnBnQWRtaW4uQnJvd3NlcjsKKyAgICAgIHRoaXMucHJlZmVyZW5j ZXMgPSBicm93c2VyLmdldF9wcmVmZXJlbmNlc19mb3JfbW9kdWxlKCdzcWxlZGl0b3InKTsKKyAg ICAgIHRoaXMuaGFuZGxlci5wcmVmZXJlbmNlcyA9IHRoaXMucHJlZmVyZW5jZXM7CisgICAgICB0 aGlzLmNvbm5JbnRlcnZhbElkID0gbnVsbDsKICAgICB9LAogCiAgICAgLy8gQmluZCBhbGwgdGhl IGV2ZW50cwpAQCAtMTEyLDE1ICsxMTgsMzAgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBb CiAgICAgICAnY2xpY2sgI2J0bi11bmluZGVudC1jb2RlJzogJ29uX3VuaW5kZW50X2NvZGUnLAog ICAgIH0sCiAKKyAgICByZWZsZWN0UHJlZmVyZW5jZXM6IGZ1bmN0aW9uKCkgeworICAgICAgbGV0 IHNlbGYgPSB0aGlzLAorICAgICAgICBicm93c2VyID0gd2luZG93Lm9wZW5lciA/CisgICAgICAg ICAgICAgIHdpbmRvdy5vcGVuZXIucGdBZG1pbi5Ccm93c2VyIDogd2luZG93LnRvcC5wZ0FkbWlu LkJyb3dzZXI7CisKKyAgICAgIC8qIHBnQnJvd3NlciBpcyBkaWZmZXJlbnQgb2JqIGZyb20gd2lu ZG93LnRvcC5wZ0FkbWluLkJyb3dzZXIKKyAgICAgICAqIE1ha2Ugc3VyZSB0byBnZXQgb25seSB0 aGUgbGF0ZXN0IHVwZGF0ZS4gT2xkZXIgdmVyc2lvbnMgd2lsbCBiZSBkaXNjYXJkZWQKKyAgICAg ICAqIGlmIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBvbGRlciBldmVudHMuCisgICAgICAgKiBUaGlz IHdvcmtzIGZvciBuZXcgdGFiIHNxbCBlZGl0b3IgYWxzbyBhcyBpdCBwb2xscyBpZiBsYXRlc3Qg dmVyc2lvbiBhdmFpbGFibGUKKyAgICAgICAqIFRoaXMgaXMgcmVxdWlyZWQgYmVjYXVzZSBzcWwg ZWRpdG9yIGNhbiB1cGRhdGUgcHJlZmVyZW5jZXMgZGlyZWN0bHkKKyAgICAgICAqLworICAgICAg aWYocGdCcm93c2VyLnByZWZlcmVuY2VfdmVyc2lvbigpIDwgYnJvd3Nlci5wcmVmZXJlbmNlX3Zl cnNpb24oKSl7CisgICAgICAgIHBnQnJvd3Nlci5wcmVmZXJlbmNlX3ZlcnNpb24oYnJvd3Nlci5w cmVmZXJlbmNlX3ZlcnNpb24oKSk7CisgICAgICAgIHNlbGYucHJlZmVyZW5jZXMgPSBicm93c2Vy LmdldF9wcmVmZXJlbmNlc19mb3JfbW9kdWxlKCdzcWxlZGl0b3InKTsKKyAgICAgICAgc2VsZi5o YW5kbGVyLnByZWZlcmVuY2VzID0gc2VsZi5wcmVmZXJlbmNlczsKKyAgICAgICAgcXVlcnlUb29s UHJlZi51cGRhdGVVSVByZWZlcmVuY2VzKHNlbGYpOworICAgICAgfQorICAgIH0sCisKICAgICAv LyBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gcmVuZGVyIHRoZSB0ZW1wbGF0ZS4KICAgICByZW5k ZXI6IGZ1bmN0aW9uKCkgewogICAgICAgdmFyIHNlbGYgPSB0aGlzOwogCiAgICAgICAkKCcuZWRp dG9yLXRpdGxlJykudGV4dChfLnVuZXNjYXBlKHNlbGYuZWRpdG9yX3RpdGxlKSk7Ci0gICAgICBz ZWxmLmNoZWNrQ29ubmVjdGlvblN0YXR1cygpOwotCi0gICAgICAvLyBGZXRjaCBhbmQgYXNzaWdu IHRoZSBzaG9ydGN1dHMgdG8gY3VycmVudCBpbnN0YW5jZQotICAgICAgc2VsZi5rZXlib2FyZFNo b3J0Y3V0Q29uZmlnID0gcXVlcnlUb29sQWN0aW9ucy5nZXRLZXlib2FyZFNob3J0Y3V0cyhzZWxm KTsKIAogICAgICAgLy8gVXBkYXRlcyBjb25uZWN0aW9uIHN0YXR1cyBmbGFnCiAgICAgICBzZWxm LmdhaW5fZm9jdXMgPSBmdW5jdGlvbigpIHsKQEAgLTE4MywxMyArMjA0LDcgQEAgZGVmaW5lKCd0 b29scy5xdWVyeXRvb2wnLCBbCiAgICAgICAgIH0sCiAgICAgICAgIGd1dHRlcnM6IFsnQ29kZU1p cnJvci1saW5lbnVtYmVycycsICdDb2RlTWlycm9yLWZvbGRndXR0ZXInXSwKICAgICAgICAgZXh0 cmFLZXlzOiBwZ0Jyb3dzZXIuZWRpdG9yX3Nob3J0Y3V0X2tleXMsCi0gICAgICAgIGluZGVudFdp dGhUYWJzOiBwZ0FkbWluLkJyb3dzZXIuZWRpdG9yX29wdGlvbnMuaW5kZW50X3dpdGhfdGFicywK LSAgICAgICAgaW5kZW50VW5pdDogcGdBZG1pbi5Ccm93c2VyLmVkaXRvcl9vcHRpb25zLnRhYlNp emUsCi0gICAgICAgIHRhYlNpemU6IHBnQWRtaW4uQnJvd3Nlci5lZGl0b3Jfb3B0aW9ucy50YWJT aXplLAotICAgICAgICBsaW5lV3JhcHBpbmc6IHBnQWRtaW4uQnJvd3Nlci5lZGl0b3Jfb3B0aW9u cy53cmFwQ29kZSwKICAgICAgICAgc2Nyb2xsYmFyU3R5bGU6ICdzaW1wbGUnLAotICAgICAgICBh dXRvQ2xvc2VCcmFja2V0czogcGdBZG1pbi5Ccm93c2VyLmVkaXRvcl9vcHRpb25zLmluc2VydF9w YWlyX2JyYWNrZXRzLAotICAgICAgICBtYXRjaEJyYWNrZXRzOiBwZ0FkbWluLkJyb3dzZXIuZWRp dG9yX29wdGlvbnMuYnJhY2VfbWF0Y2hpbmcsCiAgICAgICB9KTsKIAogICAgICAgLy8gUmVmcmVz aCBDb2RlIG1pcnJvciBvbiBTUUwgcGFuZWwgcmVzaXplIHRvCkBAIC0yNzAsMzIgKzI4NSwzMiBA QCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgIHNlbGYucmVuZGVyX2hpc3Rvcnlf Z3JpZCgpOwogICAgICAgcXVlcnlUb29sTm90aWZpY2F0aW9ucy5yZW5kZXJOb3RpZmljYXRpb25z R3JpZChzZWxmLm5vdGlmaWNhdGlvbnNfcGFuZWwpOwogCi0gICAgICBpZiAoIXNlbGYuaGFuZGxl ci5pc19uZXdfYnJvd3Nlcl90YWIpIHsKKyAgICAgIGlmICghc2VsZi5wcmVmZXJlbmNlcy5uZXdf YnJvd3Nlcl90YWIpIHsKICAgICAgICAgLy8gTGlzdGVuIG9uIHRoZSBwYW5lbCBjbG9zZWQgZXZl bnQgYW5kIG5vdGlmeSB1c2VyIHRvIHNhdmUgbW9kaWZpY2F0aW9ucy4KICAgICAgICAgXy5lYWNo KHdpbmRvdy50b3AucGdBZG1pbi5Ccm93c2VyLmRvY2tlci5maW5kUGFuZWxzKCdmcm1fZGF0YWdy aWQnKSwgZnVuY3Rpb24ocCkgewogICAgICAgICAgIGlmIChwLmlzVmlzaWJsZSgpKSB7Ci0gICAg ICAgICAgICBpZiAoc2VsZi5oYW5kbGVyLnByb21wdF9zYXZlX2NoYW5nZXMpIHsKLSAgICAgICAg ICAgICAgcC5vbih3Y0RvY2tlci5FVkVOVC5DTE9TSU5HLCBmdW5jdGlvbigpIHsKLSAgICAgICAg ICAgICAgICAvLyBPbmx5IGlmIHdlIGNhbiBlZGl0IGRhdGEgdGhlbiBwZXJmb3JtIHRoaXMgY2hl Y2sKLSAgICAgICAgICAgICAgICB2YXIgbm90aWZ5ID0gZmFsc2UsCi0gICAgICAgICAgICAgICAg ICBtc2c7Ci0gICAgICAgICAgICAgICAgaWYgKHNlbGYuaGFuZGxlci5jYW5fZWRpdCkgewotICAg ICAgICAgICAgICAgICAgdmFyIGRhdGFfc3RvcmUgPSBzZWxmLmhhbmRsZXIuZGF0YV9zdG9yZTsK LSAgICAgICAgICAgICAgICAgIGlmIChkYXRhX3N0b3JlICYmIChfLnNpemUoZGF0YV9zdG9yZS5h ZGRlZCkgfHwKLSAgICAgICAgICAgICAgICAgICAgICBfLnNpemUoZGF0YV9zdG9yZS51cGRhdGVk KSkpIHsKLSAgICAgICAgICAgICAgICAgICAgbXNnID0gZ2V0dGV4dCgnVGhlIGRhdGEgaGFzIGNo YW5nZWQuIERvIHlvdSB3YW50IHRvIHNhdmUgY2hhbmdlcz8nKTsKLSAgICAgICAgICAgICAgICAg ICAgbm90aWZ5ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9 IGVsc2UgaWYgKHNlbGYuaGFuZGxlci5pc19xdWVyeV90b29sICYmIHNlbGYuaGFuZGxlci5pc19x dWVyeV9jaGFuZ2VkKSB7Ci0gICAgICAgICAgICAgICAgICBtc2cgPSBnZXR0ZXh0KCdUaGUgdGV4 dCBoYXMgY2hhbmdlZC4gRG8geW91IHdhbnQgdG8gc2F2ZSBjaGFuZ2VzPycpOworICAgICAgICAg ICAgcC5vbih3Y0RvY2tlci5FVkVOVC5DTE9TSU5HLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg ICAgLy8gT25seSBpZiB3ZSBjYW4gZWRpdCBkYXRhIHRoZW4gcGVyZm9ybSB0aGlzIGNoZWNrCisg ICAgICAgICAgICAgIHZhciBub3RpZnkgPSBmYWxzZSwKKyAgICAgICAgICAgICAgICBtc2c7Cisg ICAgICAgICAgICAgIGlmIChzZWxmLmhhbmRsZXIuY2FuX2VkaXQKKyAgICAgICAgICAgICAgICAg ICYmIHNlbGYucHJlZmVyZW5jZXMucHJvbXB0X3NhdmVfZGF0YV9jaGFuZ2VzKSB7CisgICAgICAg ICAgICAgICAgdmFyIGRhdGFfc3RvcmUgPSBzZWxmLmhhbmRsZXIuZGF0YV9zdG9yZTsKKyAgICAg ICAgICAgICAgICBpZiAoZGF0YV9zdG9yZSAmJiAoXy5zaXplKGRhdGFfc3RvcmUuYWRkZWQpIHx8 CisgICAgICAgICAgICAgICAgICAgIF8uc2l6ZShkYXRhX3N0b3JlLnVwZGF0ZWQpKSkgeworICAg ICAgICAgICAgICAgICAgbXNnID0gZ2V0dGV4dCgnVGhlIGRhdGEgaGFzIGNoYW5nZWQuIERvIHlv dSB3YW50IHRvIHNhdmUgY2hhbmdlcz8nKTsKICAgICAgICAgICAgICAgICAgIG5vdGlmeSA9IHRy dWU7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChub3RpZnkpIHsKLSAg ICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnVzZXJfY29uZmlybWF0aW9uKHAsIG1zZyk7Ci0g ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAg ICAgICB9KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgfSBlbHNlIGlmIChzZWxmLmhh bmRsZXIuaXNfcXVlcnlfdG9vbCAmJiBzZWxmLmhhbmRsZXIuaXNfcXVlcnlfY2hhbmdlZAorICAg ICAgICAgICAgICAgICAgICAgICAgICYmIHNlbGYucHJlZmVyZW5jZXMucHJvbXB0X3NhdmVfcXVl cnlfY2hhbmdlcykgeworICAgICAgICAgICAgICAgIG1zZyA9IGdldHRleHQoJ1RoZSB0ZXh0IGhh cyBjaGFuZ2VkLiBEbyB5b3Ugd2FudCB0byBzYXZlIGNoYW5nZXM/Jyk7CisgICAgICAgICAgICAg ICAgbm90aWZ5ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBpZiAobm90 aWZ5KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYudXNlcl9jb25maXJtYXRpb24ocCwg bXNnKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg ICAgICAgIH0pOwogCiAgICAgICAgICAgICAvLyBTZXQgZm9jdXMgb24gcXVlcnkgdG9vbCBvZiBh Y3RpdmUgcGFuZWwKICAgICAgICAgICAgIHAub24od2NEb2NrZXIuRVZFTlQuR0FJTl9GT0NVUywg ZnVuY3Rpb24oKSB7CkBAIC00ODMsMzMgKzQ5OCwyNyBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9v bCcsIFsKICAgICAgICAgICB9LmJpbmQoY3R4KSwKICAgICAgICAgfTsKICAgICAgIH0pOwotICAg IH0sCiAKLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgY2hlY2sgdGhlIGNvbm5lY3Rpb24gc3Rh dHVzIGF0IHNwZWNpZmljCi0gICAgLy8gaW50ZXJ2YWwgZGVmaW5lZCBieSB0aGUgdXNlciBpbiBw cmVmZXJlbmNlCi0gICAgY2hlY2tDb25uZWN0aW9uU3RhdHVzOiBmdW5jdGlvbigpIHsKLSAgICAg IHZhciBzZWxmID0gdGhpcywKLSAgICAgICAgcHJlZmVyZW5jZSA9IHdpbmRvdy50b3AucGdBZG1p bi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlKAotICAgICAgICAgICdzcWxlZGl0b3InLCAnY29ubmVj dGlvbl9zdGF0dXNfZmV0Y2hfdGltZScKLSAgICAgICAgKSwKLSAgICAgICAgZGlzcGxheV9zdGF0 dXMgPSB3aW5kb3cudG9wLnBnQWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVyZW5jZSgKLSAgICAgICAg ICAnc3FsZWRpdG9yJywgJ2Nvbm5lY3Rpb25fc3RhdHVzJwotICAgICAgICApOwotICAgICAgaWYo IXByZWZlcmVuY2UgJiYgc2VsZi5oYW5kbGVyLmlzX25ld19icm93c2VyX3RhYikgewotICAgICAg ICBwcmVmZXJlbmNlID0gd2luZG93Lm9wZW5lci5wZ0FkbWluLkJyb3dzZXIuZ2V0X3ByZWZlcmVu Y2UoCi0gICAgICAgICAgJ3NxbGVkaXRvcicsICdjb25uZWN0aW9uX3N0YXR1c19mZXRjaF90aW1l JwotICAgICAgICApOwotICAgICAgICBkaXNwbGF5X3N0YXR1cyA9IHdpbmRvdy5vcGVuZXIucGdB ZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNlKAotICAgICAgICAgICdzcWxlZGl0b3InLCAnY29u bmVjdGlvbl9zdGF0dXMnCi0gICAgICAgICk7Ci0gICAgICB9CiAKLSAgICAgIC8vIE9ubHkgZW5h YmxlIHBvb2xpbmcgaWYgaXQgaXMgZW5hYmxlZAotICAgICAgaWYgKGRpc3BsYXlfc3RhdHVzICYm IGRpc3BsYXlfc3RhdHVzLnZhbHVlKSB7Ci0gICAgICAgIFNxbEVkaXRvclV0aWxzLnVwZGF0ZUNv bm5lY3Rpb25TdGF0dXMoCi0gICAgICAgICAgc2VsZi5oYW5kbGVyLAotICAgICAgICAgIHByZWZl cmVuY2UudmFsdWUKLSAgICAgICAgKTsKKyAgICAgIHNlbGYucmVmbGVjdFByZWZlcmVuY2VzKCk7 CisKKyAgICAgIC8qIFJlZ2lzdGVyIGZvciBwcmVmZXJlbmNlIGNoYW5nZWQgZXZlbnQgYnJvYWRj YXN0ZWQgaW4gcGFyZW50CisgICAgICAgKiB0byByZWxvYWQgdGhlIHNob3JjdXRzLiBBcyBzcWxl ZGl0b3IgaXMgaW4gaUZyYW1lIG9mIHdjRG9ja2VyCisgICAgICAgKiB3aW5kb3cgcGFyZW50IGlz IHJlZmVycmVkCisgICAgICAgKi8KKyAgICAgIHBnQnJvd3Nlci5vblByZWZlcmVuY2VzQ2hhbmdl KCdzcWxlZGl0b3InLCBmdW5jdGlvbigpIHsKKyAgICAgICAgc2VsZi5yZWZsZWN0UHJlZmVyZW5j ZXMoKTsKKyAgICAgIH0pOworCisgICAgICAvKiBJZiBzcWwgZWRpdG9yIGlzIGluIGEgbmV3IHRh YiwgZXZlbnQgZmlyZWQgaXMgbm90IGF2YWlsYWJsZQorICAgICAgICogaW5zdGVhZCwgYSBwb2xs ZXIgaXMgc2V0IHVwIHdobyB3aWxsIGNoZWNrCisgICAgICAgKi8KKyAgICAgIGlmKHNlbGYucHJl ZmVyZW5jZXMubmV3X2Jyb3dzZXJfdGFiKSB7CisgICAgICAgIHNldEludGVydmFsKCgpPT57Cisg ICAgICAgICAgaWYod2luZG93Lm9wZW5lci5wZ0FkbWluKSB7CisgICAgICAgICAgICBzZWxmLnJl ZmxlY3RQcmVmZXJlbmNlcygpOworICAgICAgICAgIH0KKyAgICAgICAgfSwgMTAwMCk7CiAgICAg ICB9CiAgICAgfSwKIApAQCAtODA1LDYgKzgxNCwxMSBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9v bCcsIFsKICAgICAgIH07CiAKICAgICAgIHNlbGYuaGFuZGxlci5zbGlja2dyaWQgPSBncmlkOwor ICAgICAgc2VsZi5oYW5kbGVyLnNsaWNrZ3JpZC5DU1ZPcHRpb25zID0geworICAgICAgICBxdW90 aW5nOiBzZWxmLnByZWZlcmVuY2VzLnJlc3VsdHNfZ3JpZF9xdW90aW5nLAorICAgICAgICBxdW90 ZV9jaGFyOiBzZWxmLnByZWZlcmVuY2VzLnJlc3VsdHNfZ3JpZF9xdW90ZV9jaGFyLAorICAgICAg ICBmaWVsZF9zZXBhcmF0b3I6IHNlbGYucHJlZmVyZW5jZXMucmVzdWx0c19ncmlkX2ZpZWxkX3Nl cGFyYXRvciwKKyAgICAgIH07CiAKICAgICAgIC8vIExpc3RlbmVyIGZ1bmN0aW9uIHRvIHdhdGNo IHNlbGVjdGVkIHJvd3MgZnJvbSBncmlkCiAgICAgICBpZiAoZWRpdG9yX2RhdGEuc2VsZWN0aW9u KSB7CkBAIC05MDMsMjkgKzkxNyw2IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAg ICAgICAgICAgaGFuZGxlUXVlcnlPdXRwdXRLZXlib2FyZEV2ZW50KGV2ZW50LCBhcmdzKTsKICAg ICAgICAgICB9KTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICB2YXIgcHJlZl9jYWNoZSA9 IHVuZGVmaW5lZDsKLSAgICAgICAgICBhcmdzLmdyaWQuQ1NWT3B0aW9ucyA9IHt9OwotCi0gICAg ICAgICAgaWYgKHNlbGYuaGFuZGxlci5pc19uZXdfYnJvd3Nlcl90YWIpIHsKLSAgICAgICAgICAg IHByZWZfY2FjaGUgPSB3aW5kb3cub3BlbmVyLnBnQWRtaW4uQnJvd3Nlci5wcmVmZXJlbmNlc19j YWNoZTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHJlZl9jYWNoZSA9IHdpbmRv dy50b3AucGdBZG1pbi5Ccm93c2VyLnByZWZlcmVuY2VzX2NhY2hlOwotICAgICAgICAgIH0KLQot ICAgICAgICAgIC8vIEdldCBDU1Ygb3B0aW9ucyBmcm9tIHByZWZlcmVuY2VzIGNhY2hlCi0gICAg ICAgICAgYXJncy5ncmlkLkNTVk9wdGlvbnMucXVvdGluZyA9IF8uZmluZFdoZXJlKHByZWZfY2Fj aGUsIHsKLSAgICAgICAgICAgICdtb2R1bGUnOiAnc3FsZWRpdG9yJywKLSAgICAgICAgICAgICdu YW1lJzogJ3Jlc3VsdHNfZ3JpZF9xdW90aW5nJywKLSAgICAgICAgICB9KS52YWx1ZTsKLSAgICAg ICAgICBhcmdzLmdyaWQuQ1NWT3B0aW9ucy5xdW90ZV9jaGFyID0gXy5maW5kV2hlcmUocHJlZl9j YWNoZSwgewotICAgICAgICAgICAgJ21vZHVsZSc6ICdzcWxlZGl0b3InLAotICAgICAgICAgICAg J25hbWUnOiAncmVzdWx0c19ncmlkX3F1b3RlX2NoYXInLAotICAgICAgICAgIH0pLnZhbHVlOwot ICAgICAgICAgIGFyZ3MuZ3JpZC5DU1ZPcHRpb25zLmZpZWxkX3NlcGFyYXRvciA9IF8uZmluZFdo ZXJlKHByZWZfY2FjaGUsIHsKLSAgICAgICAgICAgICdtb2R1bGUnOiAnc3FsZWRpdG9yJywKLSAg ICAgICAgICAgICduYW1lJzogJ3Jlc3VsdHNfZ3JpZF9maWVsZF9zZXBhcmF0b3InLAotICAgICAg ICAgIH0pLnZhbHVlOwotCiAgICAgICAgICAgaGFuZGxlUXVlcnlPdXRwdXRLZXlib2FyZEV2ZW50 KGV2ZW50LCBhcmdzKTsKICAgICAgICAgfQogICAgICAgfSk7CkBAIC0xMTk2LDcgKzExODcsMTAg QEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgcmVuZGVyX2hpc3RvcnlfZ3JpZDog ZnVuY3Rpb24oKSB7CiAgICAgICB2YXIgc2VsZiA9IHRoaXM7CiAKLSAgICAgIHNlbGYuaGlzdG9y eV9jb2xsZWN0aW9uID0gbmV3IEhpc3RvcnlCdW5kbGUuSGlzdG9yeUNvbGxlY3Rpb24oW10pOwor ICAgICAgLyogU2hvdWxkIG5vdCByZXNldCBpZiBmdW5jdGlvbiBjYWxsZWQgYWdhaW4gKi8KKyAg ICAgIGlmKCFzZWxmLmhpc3RvcnlfY29sbGVjdGlvbikgeworICAgICAgICBzZWxmLmhpc3Rvcnlf Y29sbGVjdGlvbiA9IG5ldyBIaXN0b3J5QnVuZGxlLkhpc3RvcnlDb2xsZWN0aW9uKFtdKTsKKyAg ICAgIH0KIAogICAgICAgdmFyIGhpc3RvcnlDb21wb25lbnQ7CiAgICAgICB2YXIgaGlzdG9yeUNv bGxlY3Rpb25SZWFjdEVsZW1lbnQgPSBSZWFjdC5jcmVhdGVFbGVtZW50KApAQCAtMTIwNSw5ICsx MTk5LDEzIEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAgICAgIHJlZjogZnVu Y3Rpb24oY29tcG9uZW50KSB7CiAgICAgICAgICAgICBoaXN0b3J5Q29tcG9uZW50ID0gY29tcG9u ZW50OwogICAgICAgICAgIH0sCisgICAgICAgICAgc3FsRWRpdG9yUHJlZjogeworICAgICAgICAg ICAgc3FsX2ZvbnRfc2l6ZTogU3FsRWRpdG9yVXRpbHMuY2FsY0ZvbnRTaXplKHRoaXMucHJlZmVy ZW5jZXMuc3FsX2ZvbnRfc2l6ZSksCisgICAgICAgICAgfSwKICAgICAgICAgfSk7CiAgICAgICBS ZWFjdERPTS5yZW5kZXIoaGlzdG9yeUNvbGxlY3Rpb25SZWFjdEVsZW1lbnQsICQoJyNoaXN0b3J5 X2dyaWQnKVswXSk7CiAKKyAgICAgIHNlbGYuaGlzdG9yeV9wYW5lbC5vZmYod2NEb2NrZXIuRVZF TlQuVklTSUJJTElUWV9DSEFOR0VEKTsKICAgICAgIHNlbGYuaGlzdG9yeV9wYW5lbC5vbih3Y0Rv Y2tlci5FVkVOVC5WSVNJQklMSVRZX0NIQU5HRUQsIGZ1bmN0aW9uKCkgewogICAgICAgICBoaXN0 b3J5Q29tcG9uZW50LnJlZm9jdXMoKTsKICAgICAgIH0pOwpAQCAtMTQxNiwyOSArMTQxNCw3IEBA IGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogCiAgICAgLy8gQ2FsbGJhY2sgZnVuY3Rpb24g Zm9yIGNvcHkgYnV0dG9uIGNsaWNrLgogICAgIG9uX2NvcHlfcm93OiBmdW5jdGlvbigpIHsKLSAg ICAgIHZhciBzZWxmID0gdGhpcywKLSAgICAgICAgcHJlZl9jYWNoZSA9IHVuZGVmaW5lZDsKLSAg ICAgIHNlbGYuZ3JpZC5DU1ZPcHRpb25zID0ge307Ci0KLSAgICAgIGlmIChzZWxmLmhhbmRsZXIu aXNfbmV3X2Jyb3dzZXJfdGFiKSB7Ci0gICAgICAgIHByZWZfY2FjaGUgPSB3aW5kb3cub3BlbmVy LnBnQWRtaW4uQnJvd3Nlci5wcmVmZXJlbmNlc19jYWNoZTsKLSAgICAgIH0gZWxzZSB7Ci0gICAg ICAgIHByZWZfY2FjaGUgPSB3aW5kb3cudG9wLnBnQWRtaW4uQnJvd3Nlci5wcmVmZXJlbmNlc19j YWNoZTsKLSAgICAgIH0KLQotICAgICAgLy8gR2V0IENTViBvcHRpb25zIGZyb20gcHJlZmVyZW5j ZXMgY2FjaGUKLSAgICAgIHNlbGYuZ3JpZC5DU1ZPcHRpb25zLnF1b3RpbmcgPSBfLmZpbmRXaGVy ZShwcmVmX2NhY2hlLCB7Ci0gICAgICAgICdtb2R1bGUnOiAnc3FsZWRpdG9yJywKLSAgICAgICAg J25hbWUnOiAncmVzdWx0c19ncmlkX3F1b3RpbmcnLAotICAgICAgfSkudmFsdWU7Ci0gICAgICBz ZWxmLmdyaWQuQ1NWT3B0aW9ucy5xdW90ZV9jaGFyID0gXy5maW5kV2hlcmUocHJlZl9jYWNoZSwg ewotICAgICAgICAnbW9kdWxlJzogJ3NxbGVkaXRvcicsCi0gICAgICAgICduYW1lJzogJ3Jlc3Vs dHNfZ3JpZF9xdW90ZV9jaGFyJywKLSAgICAgIH0pLnZhbHVlOwotICAgICAgc2VsZi5ncmlkLkNT Vk9wdGlvbnMuZmllbGRfc2VwYXJhdG9yID0gXy5maW5kV2hlcmUocHJlZl9jYWNoZSwgewotICAg ICAgICAnbW9kdWxlJzogJ3NxbGVkaXRvcicsCi0gICAgICAgICduYW1lJzogJ3Jlc3VsdHNfZ3Jp ZF9maWVsZF9zZXBhcmF0b3InLAotICAgICAgfSkudmFsdWU7CisgICAgICB2YXIgc2VsZiA9IHRo aXM7CiAKICAgICAgIC8vIFRyaWdnZXIgdGhlIGNvcHkgc2lnbmFsIHRvIHRoZSBTcWxFZGl0b3JD b250cm9sbGVyIGNsYXNzCiAgICAgICBzZWxmLmhhbmRsZXIudHJpZ2dlcigKQEAgLTE3MDgsNyAr MTY4NCw3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgIGtleUFjdGlvbjogZnVu Y3Rpb24oZXZlbnQpIHsKICAgICAgIHZhciBwYW5lbF9pZCwgc2VsZiA9IHRoaXM7CiAgICAgICBw YW5lbF9pZCA9IGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAg ICAgdGhpcy5oYW5kbGVyLCB0aGlzLmtleWJvYXJkU2hvcnRjdXRDb25maWcsIHF1ZXJ5VG9vbEFj dGlvbnMsIGV2ZW50CisgICAgICAgIHRoaXMuaGFuZGxlciwgcXVlcnlUb29sQWN0aW9ucywgZXZl bnQKICAgICAgICk7CiAKICAgICAgIC8vIElmIGl0IHJldHVybiBwYW5lbCBpZCB0aGVuIGZvY3Vz IGl0CkBAIC0xOTMzLDIzICsxOTA5LDE3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwog ICAgICAgICogaGVhZGVyIGFuZCBsb2FkaW5nIGljb24gYW5kIHN0YXJ0IGV4ZWN1dGlvbiBvZiB0 aGUgc3FsIHF1ZXJ5LgogICAgICAgICovCiAgICAgICBzdGFydDogZnVuY3Rpb24odHJhbnNJZCwg aXNfcXVlcnlfdG9vbCwgZWRpdG9yX3RpdGxlLCBzY3JpcHRfdHlwZV91cmwsCi0gICAgICAgICAg aXNfbmV3X2Jyb3dzZXJfdGFiLCBzZXJ2ZXJfdHlwZSwgcHJvbXB0X3NhdmVfY2hhbmdlcywgdXJs X3BhcmFtcworICAgICAgICBzZXJ2ZXJfdHlwZSwgdXJsX3BhcmFtcwogICAgICAgKSB7CiAgICAg ICAgIHZhciBzZWxmID0gdGhpczsKIAogICAgICAgICBzZWxmLmlzX3F1ZXJ5X3Rvb2wgPSBpc19x dWVyeV90b29sOwogICAgICAgICBzZWxmLnJvd3NfYWZmZWN0ZWQgPSAwOwogICAgICAgICBzZWxm Lm1hcmtlZF9saW5lX25vID0gMDsKLSAgICAgICAgc2VsZi5leHBsYWluX3ZlcmJvc2UgPSBmYWxz ZTsKLSAgICAgICAgc2VsZi5leHBsYWluX2Nvc3RzID0gZmFsc2U7Ci0gICAgICAgIHNlbGYuZXhw bGFpbl9idWZmZXJzID0gZmFsc2U7Ci0gICAgICAgIHNlbGYuZXhwbGFpbl90aW1pbmcgPSBmYWxz ZTsKLSAgICAgICAgc2VsZi5pc19uZXdfYnJvd3Nlcl90YWIgPSBpc19uZXdfYnJvd3Nlcl90YWI7 CiAgICAgICAgIHNlbGYuaGFzX21vcmVfcm93cyA9IGZhbHNlOwogICAgICAgICBzZWxmLmZldGNo aW5nX3Jvd3MgPSBmYWxzZTsKICAgICAgICAgc2VsZi5jbG9zZV9vbl9zYXZlID0gZmFsc2U7CiAg ICAgICAgIHNlbGYuc2VydmVyX3R5cGUgPSBzZXJ2ZXJfdHlwZTsKLSAgICAgICAgc2VsZi5wcm9t cHRfc2F2ZV9jaGFuZ2VzID0gcHJvbXB0X3NhdmVfY2hhbmdlczsKICAgICAgICAgc2VsZi51cmxf cGFyYW1zID0gdXJsX3BhcmFtczsKICAgICAgICAgc2VsZi5zY3JpcHRfdHlwZV91cmwgPSBzY3Jp cHRfdHlwZV91cmw7CiAKQEAgLTIwMjIsNyArMTk5Miw2IEBAIGRlZmluZSgndG9vbHMucXVlcnl0 b29sJywgWwogICAgICAgICAvLyBMaXN0ZW4gdG8gdGhlIGNvZGVtaXJyb3Igb24gdGV4dCBjaGFu Z2UgZXZlbnQKICAgICAgICAgLy8gb25seSBpbiBxdWVyeSBlZGl0b3IgdG9vbAogICAgICAgICBp ZiAoc2VsZi5pc19xdWVyeV90b29sKSB7Ci0gICAgICAgICAgc2VsZi5nZXRfcHJlZmVyZW5jZXMo KTsKICAgICAgICAgICBzZWxmLmdyaWRWaWV3LnF1ZXJ5X3Rvb2xfb2JqLm9uKCdjaGFuZ2UnLCBz ZWxmLl9vbl9xdWVyeV9jaGFuZ2UuYmluZChzZWxmKSk7CiAgICAgICAgIH0KIApAQCAtMjgzMCw3 ICsyNzk5LDcgQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgICBzZXRUaXRsZTog ZnVuY3Rpb24odGl0bGUsIHVuc2FmZSkgewogICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CiAKLSAg ICAgICAgaWYgKHNlbGYuaXNfbmV3X2Jyb3dzZXJfdGFiKSB7CisgICAgICAgIGlmIChzZWxmLnBy ZWZlcmVuY2VzLm5ld19icm93c2VyX3RhYikgewogICAgICAgICAgIHdpbmRvdy5kb2N1bWVudC50 aXRsZSA9IHRpdGxlOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgIF8uZWFjaCh3aW5kb3cu dG9wLnBnQWRtaW4uQnJvd3Nlci5kb2NrZXIuZmluZFBhbmVscygnZnJtX2RhdGFncmlkJyksIGZ1 bmN0aW9uKHApIHsKQEAgLTI5OTIsNyArMjk2MSw3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29s JywgWwogICAgICAgICAgICAgdmFyIHRpdGxlID0gc2VsZi5ncmlkVmlldy5jdXJyZW50X2ZpbGUu cmVwbGFjZSgvXi4qW1xcXC9dL2csICcnKSArICcgKic7CiAgICAgICAgICAgICBzZWxmLnNldFRp dGxlKHRpdGxlLCB0cnVlKTsKICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKHNl bGYuaXNfbmV3X2Jyb3dzZXJfdGFiKSB7CisgICAgICAgICAgICBpZiAoc2VsZi5wcmVmZXJlbmNl cy5uZXdfYnJvd3Nlcl90YWIpIHsKICAgICAgICAgICAgICAgdGl0bGUgPSB3aW5kb3cuZG9jdW1l bnQudGl0bGUgKyAnIConOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgLy8g RmluZCB0aGUgdGl0bGUgb2YgdGhlIHZpc2libGUgcGFuZWwKQEAgLTM1MDUsNiArMzQ3NCwxNSBA QCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICAgbGluay5hdHRyKCdzcmMnLCB1 cmwpOwogICAgICAgfSwKIAorICAgICAgY2FsbF9jYWNoZV9wcmVmZXJlbmNlczogZnVuY3Rpb24o KSB7CisgICAgICAgIGxldCBicm93c2VyID0gd2luZG93Lm9wZW5lciA/CisgICAgICAgICAgICAg IHdpbmRvdy5vcGVuZXIucGdBZG1pbi5Ccm93c2VyIDogd2luZG93LnRvcC5wZ0FkbWluLkJyb3dz ZXI7CisgICAgICAgIGJyb3dzZXIuY2FjaGVfcHJlZmVyZW5jZXMoJ3NxbGVkaXRvcicpOworCisg ICAgICAgIC8qIFRoaXMgd2lsbCBtYWtlIHN1cmUgdG8gZ2V0IGxhdGVzdCB1cGRhdGVzIG9ubHkg YW5kIG5vdCBvbGRlciBldmVudHMgKi8KKyAgICAgICAgcGdCcm93c2VyLnByZWZlcmVuY2VfdmVy c2lvbihwZ0Jyb3dzZXIuZ2VuZXJhdGVfcHJlZmVyZW5jZV92ZXJzaW9uKCkpOworICAgICAgfSwK KwogICAgICAgX2F1dG9fcm9sbGJhY2s6IGZ1bmN0aW9uKCkgewogICAgICAgICB2YXIgc2VsZiA9 IHRoaXMsCiAgICAgICAgICAgYXV0b19yb2xsYmFjayA9IHRydWU7CkBAIC0zNTI3LDYgKzM1MDUs OCBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICAgICBzdWNjZXNzOiBmdW5j dGlvbihyZXMpIHsKICAgICAgICAgICAgIGlmICghcmVzLmRhdGEuc3RhdHVzKQogICAgICAgICAg ICAgICBhbGVydGlmeS5hbGVydChnZXR0ZXh0KCdBdXRvIFJvbGxiYWNrIEVycm9yJyksIHJlcy5k YXRhLnJlc3VsdCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgIHNlbGYuY2FsbF9j YWNoZV9wcmVmZXJlbmNlcygpOwogICAgICAgICAgIH0sCiAgICAgICAgICAgZXJyb3I6IGZ1bmN0 aW9uKGUpIHsKIApAQCAtMzU2MCw2ICszNTQwLDggQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wn LCBbCiAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24ocmVzKSB7CiAgICAgICAgICAgICBpZiAo IXJlcy5kYXRhLnN0YXR1cykKICAgICAgICAgICAgICAgYWxlcnRpZnkuYWxlcnQoZ2V0dGV4dCgn QXV0byBDb21taXQgRXJyb3InKSwgcmVzLmRhdGEucmVzdWx0KTsKKyAgICAgICAgICAgIGVsc2UK KyAgICAgICAgICAgICAgc2VsZi5jYWxsX2NhY2hlX3ByZWZlcmVuY2VzKCk7CiAgICAgICAgICAg fSwKICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgbGV0IG1zZyA9 IGh0dHBFcnJvckhhbmRsZXIuaGFuZGxlUXVlcnlUb29sQWpheEVycm9yKApAQCAtMzU2OCwyNCAr MzU1MCwxMSBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICAgICAgIGFsZXJ0 aWZ5LmFsZXJ0KGdldHRleHQoJ0F1dG8gQ29tbWl0IEVycm9yJyksIG1zZyk7CiAgICAgICAgICAg fSwKICAgICAgICAgfSk7Ci0gICAgICB9LAotCi0gICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwg dG9nZ2xlICJ2ZXJib3NlIiBvcHRpb24gaW4gZXhwbGFpbgotICAgICAgX2V4cGxhaW5fdmVyYm9z ZTogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBzZWxmID0gdGhpczsKLSAgICAgICAgaWYgKCQo Jy5leHBsYWluLXZlcmJvc2UnKS5oYXNDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKSA9PT0gdHJ1 ZSkgewotICAgICAgICAgICQoJy5leHBsYWluLXZlcmJvc2UnKS5yZW1vdmVDbGFzcygndmlzaWJp bGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICBzZWxmLmV4cGxhaW5fdmVyYm9zZSA9IHRydWU7Ci0g ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgJCgnLmV4cGxhaW4tdmVyYm9zZScpLmFkZENsYXNz KCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAgICAgICAgIHNlbGYuZXhwbGFpbl92ZXJib3NlID0g ZmFsc2U7Ci0gICAgICAgIH0KIAotICAgICAgICAvLyBTZXQgdGhpcyBvcHRpb24gaW4gcHJlZmVy ZW5jZXMKLSAgICAgICAgdmFyIGRhdGEgPSB7Ci0gICAgICAgICAgJ2V4cGxhaW5fdmVyYm9zZSc6 IHNlbGYuZXhwbGFpbl92ZXJib3NlLAotICAgICAgICB9OworICAgICAgfSwKIAorICAgICAgZXhw bGFpblByZWZlcmVuY2VVcGRhdGU6ICBmdW5jdGlvbihzdWJJdGVtLCBkYXRhLCBjYWxsZXIpIHsK KyAgICAgICAgbGV0IHNlbGYgPSB0aGlzOwogICAgICAgICAkLmFqYXgoewogICAgICAgICAgIHVy bDogdXJsX2Zvcignc3FsZWRpdG9yLnF1ZXJ5X3Rvb2xfcHJlZmVyZW5jZXMnLCB7CiAgICAgICAg ICAgICAndHJhbnNfaWQnOiBzZWxmLnRyYW5zSWQsCkBAIC0zNTk2LDEzMyArMzU2NSw5NiBAQCBk ZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihy ZXMpIHsKICAgICAgICAgICAgIGlmIChyZXMuc3VjY2VzcyA9PSB1bmRlZmluZWQgfHwgIXJlcy5z dWNjZXNzKSB7CiAgICAgICAgICAgICAgIGFsZXJ0aWZ5LmFsZXJ0KGdldHRleHQoJ0V4cGxhaW4g b3B0aW9ucyBlcnJvcicpLAotICAgICAgICAgICAgICAgIGdldHRleHQoJ0Vycm9yIG9jY3VycmVk IHdoaWxlIHNldHRpbmcgdmVyYm9zZSBvcHRpb24gaW4gZXhwbGFpbi4nKQorICAgICAgICAgICAg ICAgIGdldHRleHQoJ0Vycm9yIG9jY3VycmVkIHdoaWxlIHNldHRpbmcgJShzdWJJdGVtKXMgb3B0 aW9uIGluIGV4cGxhaW4uJywKKyAgICAgICAgICAgICAgICAgICAgICAgIHtzdWJJdGVtIDogc3Vi SXRlbX0pCiAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNl CisgICAgICAgICAgICAgIHNlbGYuY2FsbF9jYWNoZV9wcmVmZXJlbmNlcygpOwogICAgICAgICAg IH0sCiAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgIGxldCBtc2cg PSBodHRwRXJyb3JIYW5kbGVyLmhhbmRsZVF1ZXJ5VG9vbEFqYXhFcnJvcigKLSAgICAgICAgICAg ICAgcGdBZG1pbiwgc2VsZiwgZSwgJ19leHBsYWluX3ZlcmJvc2UnLCBbXSwgdHJ1ZQorICAgICAg ICAgICAgICBwZ0FkbWluLCBzZWxmLCBlLCBjYWxsZXIsIFtdLCB0cnVlCiAgICAgICAgICAgICAp OwogICAgICAgICAgICAgYWxlcnRpZnkuYWxlcnQoZ2V0dGV4dCgnRXhwbGFpbiBvcHRpb25zIGVy cm9yJyksIG1zZyk7CiAgICAgICAgICAgfSwKICAgICAgICAgfSk7CiAgICAgICB9LAogCisgICAg ICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgdG9nZ2xlICJ2ZXJib3NlIiBvcHRpb24gaW4gZXhwbGFp bgorICAgICAgX2V4cGxhaW5fdmVyYm9zZTogZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBzZWxm ID0gdGhpczsKKyAgICAgICAgbGV0IGV4cGxhaW5fdmVyYm9zZSA9IGZhbHNlOworICAgICAgICBp ZiAoJCgnLmV4cGxhaW4tdmVyYm9zZScpLmhhc0NsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpID09 PSB0cnVlKSB7CisgICAgICAgICAgJCgnLmV4cGxhaW4tdmVyYm9zZScpLnJlbW92ZUNsYXNzKCd2 aXNpYmlsaXR5LWhpZGRlbicpOworICAgICAgICAgIGV4cGxhaW5fdmVyYm9zZSA9IHRydWU7Cisg ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgJCgnLmV4cGxhaW4tdmVyYm9zZScpLmFkZENsYXNz KCd2aXNpYmlsaXR5LWhpZGRlbicpOworICAgICAgICAgIGV4cGxhaW5fdmVyYm9zZSA9IGZhbHNl OworICAgICAgICB9CisKKyAgICAgICAgc2VsZi5leHBsYWluUHJlZmVyZW5jZVVwZGF0ZSgKKyAg ICAgICAgICAndmVyYm9zZScsIHsKKyAgICAgICAgICAgICdleHBsYWluX3ZlcmJvc2UnOiBleHBs YWluX3ZlcmJvc2UsCisgICAgICAgICAgfSwgJ19leHBsYWluX3ZlcmJvc2UnCisgICAgICAgICk7 CisgICAgICB9LAorCiAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgdG9nZ2xlICJjb3N0cyIg b3B0aW9uIGluIGV4cGxhaW4KICAgICAgIF9leHBsYWluX2Nvc3RzOiBmdW5jdGlvbigpIHsKICAg ICAgICAgdmFyIHNlbGYgPSB0aGlzOworICAgICAgICBsZXQgZXhwbGFpbl9jb3N0cyA9IGZhbHNl OwogICAgICAgICBpZiAoJCgnLmV4cGxhaW4tY29zdHMnKS5oYXNDbGFzcygndmlzaWJpbGl0eS1o aWRkZW4nKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICQoJy5leHBsYWluLWNvc3RzJykucmVtb3Zl Q2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7Ci0gICAgICAgICAgc2VsZi5leHBsYWluX2Nvc3Rz ID0gdHJ1ZTsKKyAgICAgICAgICBleHBsYWluX2Nvc3RzID0gdHJ1ZTsKICAgICAgICAgfSBlbHNl IHsKICAgICAgICAgICAkKCcuZXhwbGFpbi1jb3N0cycpLmFkZENsYXNzKCd2aXNpYmlsaXR5LWhp ZGRlbicpOwotICAgICAgICAgIHNlbGYuZXhwbGFpbl9jb3N0cyA9IGZhbHNlOworICAgICAgICAg IGV4cGxhaW5fY29zdHMgPSBmYWxzZTsKICAgICAgICAgfQogCi0gICAgICAgIC8vIFNldCB0aGlz IG9wdGlvbiBpbiBwcmVmZXJlbmNlcwotICAgICAgICB2YXIgZGF0YSA9IHsKLSAgICAgICAgICAn ZXhwbGFpbl9jb3N0cyc6IHNlbGYuZXhwbGFpbl9jb3N0cywKLSAgICAgICAgfTsKLQotICAgICAg ICAkLmFqYXgoewotICAgICAgICAgIHVybDogdXJsX2Zvcignc3FsZWRpdG9yLnF1ZXJ5X3Rvb2xf cHJlZmVyZW5jZXMnLCB7Ci0gICAgICAgICAgICAndHJhbnNfaWQnOiBzZWxmLnRyYW5zSWQsCi0g ICAgICAgICAgfSksCi0gICAgICAgICAgbWV0aG9kOiAnUFVUJywKLSAgICAgICAgICBjb250ZW50 VHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLAotICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5 KGRhdGEpLAotICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykgewotICAgICAgICAgICAg aWYgKHJlcy5zdWNjZXNzID09IHVuZGVmaW5lZCB8fCAhcmVzLnN1Y2Nlc3MpIHsKLSAgICAgICAg ICAgICAgYWxlcnRpZnkuYWxlcnQoZ2V0dGV4dCgnRXhwbGFpbiBvcHRpb25zIGVycm9yJyksCi0g ICAgICAgICAgICAgICAgZ2V0dGV4dCgnRXJyb3Igb2NjdXJyZWQgd2hpbGUgc2V0dGluZyBjb3N0 cyBvcHRpb24gaW4gZXhwbGFpbi4nKQotICAgICAgICAgICAgICApOwotICAgICAgICAgICAgfQot ICAgICAgICAgIH0sCi0gICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAg IGxldCBtc2cgPSBodHRwRXJyb3JIYW5kbGVyLmhhbmRsZVF1ZXJ5VG9vbEFqYXhFcnJvcigKLSAg ICAgICAgICAgICAgcGdBZG1pbiwgc2VsZiwgZSwgJ19leHBsYWluX2Nvc3RzJywgW10sIHRydWUK LSAgICAgICAgICAgICk7Ci0gICAgICAgICAgICBhbGVydGlmeS5hbGVydChnZXR0ZXh0KCdFeHBs YWluIG9wdGlvbnMgZXJyb3InKSwgbXNnKTsKLSAgICAgICAgICB9LAotICAgICAgICB9KTsKKyAg ICAgICAgc2VsZi5leHBsYWluUHJlZmVyZW5jZVVwZGF0ZSgKKyAgICAgICAgICAnY29zdHMnLCB7 CisgICAgICAgICAgICAnZXhwbGFpbl9jb3N0cyc6IGV4cGxhaW5fY29zdHMsCisgICAgICAgICAg fSwgJ19leHBsYWluX2Nvc3RzJworICAgICAgICApOwogICAgICAgfSwKIAogICAgICAgLy8gVGhp cyBmdW5jdGlvbiB3aWxsIHRvZ2dsZSAiYnVmZmVycyIgb3B0aW9uIGluIGV4cGxhaW4KICAgICAg IF9leHBsYWluX2J1ZmZlcnM6IGZ1bmN0aW9uKCkgewogICAgICAgICB2YXIgc2VsZiA9IHRoaXM7 CisgICAgICAgIGxldCBleHBsYWluX2J1ZmZlcnMgPSBmYWxzZTsKICAgICAgICAgaWYgKCQoJy5l eHBsYWluLWJ1ZmZlcnMnKS5oYXNDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKSA9PT0gdHJ1ZSkg ewogICAgICAgICAgICQoJy5leHBsYWluLWJ1ZmZlcnMnKS5yZW1vdmVDbGFzcygndmlzaWJpbGl0 eS1oaWRkZW4nKTsKLSAgICAgICAgICBzZWxmLmV4cGxhaW5fYnVmZmVycyA9IHRydWU7CisgICAg ICAgICAgZXhwbGFpbl9idWZmZXJzID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg ICAkKCcuZXhwbGFpbi1idWZmZXJzJykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7Ci0g ICAgICAgICAgc2VsZi5leHBsYWluX2J1ZmZlcnMgPSBmYWxzZTsKKyAgICAgICAgICBleHBsYWlu X2J1ZmZlcnMgPSBmYWxzZTsKICAgICAgICAgfQogCi0gICAgICAgIC8vIFNldCB0aGlzIG9wdGlv biBpbiBwcmVmZXJlbmNlcwotICAgICAgICB2YXIgZGF0YSA9IHsKLSAgICAgICAgICAnZXhwbGFp bl9idWZmZXJzJzogc2VsZi5leHBsYWluX2J1ZmZlcnMsCi0gICAgICAgIH07Ci0KLSAgICAgICAg JC5hamF4KHsKLSAgICAgICAgICB1cmw6IHVybF9mb3IoJ3NxbGVkaXRvci5xdWVyeV90b29sX3By ZWZlcmVuY2VzJywgewotICAgICAgICAgICAgJ3RyYW5zX2lkJzogc2VsZi50cmFuc0lkLAotICAg ICAgICAgIH0pLAotICAgICAgICAgIG1ldGhvZDogJ1BVVCcsCi0gICAgICAgICAgY29udGVudFR5 cGU6ICdhcHBsaWNhdGlvbi9qc29uJywKLSAgICAgICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShk YXRhKSwKLSAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHsKLSAgICAgICAgICAgIGlm IChyZXMuc3VjY2VzcyA9PSB1bmRlZmluZWQgfHwgIXJlcy5zdWNjZXNzKSB7Ci0gICAgICAgICAg ICAgIGFsZXJ0aWZ5LmFsZXJ0KGdldHRleHQoJ0V4cGxhaW4gb3B0aW9ucyBlcnJvcicpLAotICAg ICAgICAgICAgICAgIGdldHRleHQoJ0Vycm9yIG9jY3VycmVkIHdoaWxlIHNldHRpbmcgYnVmZmVy cyBvcHRpb24gaW4gZXhwbGFpbi4nKQotICAgICAgICAgICAgICApOwotICAgICAgICAgICAgfQot ICAgICAgICAgIH0sCi0gICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAg IGxldCBtc2cgPSBodHRwRXJyb3JIYW5kbGVyLmhhbmRsZVF1ZXJ5VG9vbEFqYXhFcnJvcigKLSAg ICAgICAgICAgICAgcGdBZG1pbiwgc2VsZiwgZSwgJ19leHBsYWluX2J1ZmZlcnMnLCBbXSwgdHJ1 ZQotICAgICAgICAgICAgKTsKLSAgICAgICAgICAgIGFsZXJ0aWZ5LmFsZXJ0KGdldHRleHQoJ0V4 cGxhaW4gb3B0aW9ucyBlcnJvcicpLCBtc2cpOwotICAgICAgICAgIH0sCi0gICAgICAgIH0pOwor ICAgICAgICBzZWxmLmV4cGxhaW5QcmVmZXJlbmNlVXBkYXRlKAorICAgICAgICAgICdidWZmZXJz JywgeworICAgICAgICAgICAgJ2V4cGxhaW5fYnVmZmVycyc6IGV4cGxhaW5fYnVmZmVycywKKyAg ICAgICAgICB9LCAnX2V4cGxhaW5fYnVmZmVycycKKyAgICAgICAgKTsKICAgICAgIH0sCiAKICAg ICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCB0b2dnbGUgInRpbWluZyIgb3B0aW9uIGluIGV4cGxh aW4KICAgICAgIF9leHBsYWluX3RpbWluZzogZnVuY3Rpb24oKSB7CiAgICAgICAgIHZhciBzZWxm ID0gdGhpczsKKyAgICAgICAgbGV0IGV4cGxhaW5fdGltaW5nID0gZmFsc2U7CiAgICAgICAgIGlm ICgkKCcuZXhwbGFpbi10aW1pbmcnKS5oYXNDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKSA9PT0g dHJ1ZSkgewogICAgICAgICAgICQoJy5leHBsYWluLXRpbWluZycpLnJlbW92ZUNsYXNzKCd2aXNp YmlsaXR5LWhpZGRlbicpOwotICAgICAgICAgIHNlbGYuZXhwbGFpbl90aW1pbmcgPSB0cnVlOwor ICAgICAgICAgIGV4cGxhaW5fdGltaW5nID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlIHsKICAgICAg ICAgICAkKCcuZXhwbGFpbi10aW1pbmcnKS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsK LSAgICAgICAgICBzZWxmLmV4cGxhaW5fdGltaW5nID0gZmFsc2U7CisgICAgICAgICAgZXhwbGFp bl90aW1pbmcgPSBmYWxzZTsKICAgICAgICAgfQotICAgICAgICAvLyBTZXQgdGhpcyBvcHRpb24g aW4gcHJlZmVyZW5jZXMKLSAgICAgICAgdmFyIGRhdGEgPSB7Ci0gICAgICAgICAgJ2V4cGxhaW5f dGltaW5nJzogc2VsZi5leHBsYWluX3RpbWluZywKLSAgICAgICAgfTsKIAotICAgICAgICAkLmFq YXgoewotICAgICAgICAgIHVybDogdXJsX2Zvcignc3FsZWRpdG9yLnF1ZXJ5X3Rvb2xfcHJlZmVy ZW5jZXMnLCB7Ci0gICAgICAgICAgICAndHJhbnNfaWQnOiBzZWxmLnRyYW5zSWQsCi0gICAgICAg ICAgfSksCi0gICAgICAgICAgbWV0aG9kOiAnUFVUJywKLSAgICAgICAgICBjb250ZW50VHlwZTog J2FwcGxpY2F0aW9uL2pzb24nLAotICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KGRhdGEp LAotICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykgewotICAgICAgICAgICAgaWYgKHJl cy5zdWNjZXNzID09IHVuZGVmaW5lZCB8fCAhcmVzLnN1Y2Nlc3MpIHsKLSAgICAgICAgICAgICAg YWxlcnRpZnkuYWxlcnQoZ2V0dGV4dCgnRXhwbGFpbiBvcHRpb25zIGVycm9yJyksCi0gICAgICAg ICAgICAgICAgZ2V0dGV4dCgnRXJyb3Igb2NjdXJyZWQgd2hpbGUgc2V0dGluZyB0aW1pbmcgb3B0 aW9uIGluIGV4cGxhaW4uJykKLSAgICAgICAgICAgICAgKTsKLSAgICAgICAgICAgIH0KLSAgICAg ICAgICB9LAotICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihlKSB7Ci0gICAgICAgICAgICBsZXQg bXNnID0gaHR0cEVycm9ySGFuZGxlci5oYW5kbGVRdWVyeVRvb2xBamF4RXJyb3IoCi0gICAgICAg ICAgICAgIHBnQWRtaW4sIHNlbGYsIGUsICdfZXhwbGFpbl90aW1pbmcnLCBbXSwgdHJ1ZQotICAg ICAgICAgICAgKTsKLSAgICAgICAgICAgIGFsZXJ0aWZ5LmFsZXJ0KGdldHRleHQoJ0V4cGxhaW4g b3B0aW9ucyBlcnJvcicpLCBtc2cpOwotICAgICAgICAgIH0sCi0gICAgICAgIH0pOworICAgICAg ICBzZWxmLmV4cGxhaW5QcmVmZXJlbmNlVXBkYXRlKAorICAgICAgICAgICd0aW1pbmcnLCB7Cisg ICAgICAgICAgICAnZXhwbGFpbl90aW1pbmcnOiBleHBsYWluX3RpbWluZywKKyAgICAgICAgICB9 LCAnX2V4cGxhaW5fdGltaW5nJworICAgICAgICApOwogICAgICAgfSwKIAogICAgICAgLyoKQEAg LTM3NTEsODUgKzM2ODMsNiBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICAg aXNfcXVlcnlfcnVubmluZyA9IHZhbHVlOwogICAgICAgfSwKIAotICAgICAgLyoKLSAgICAgICAq IFRoaXMgZnVuY3Rpb24gZ2V0IGV4cGxhaW4gb3B0aW9ucyBhbmQgYXV0byByb2xsYmFjay9hdXRv IGNvbW1pdAotICAgICAgICogdmFsdWVzIGZyb20gcHJlZmVyZW5jZXMKLSAgICAgICAqLwotICAg ICAgZ2V0X3ByZWZlcmVuY2VzOiBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHNlbGYgPSB0aGlz LAotICAgICAgICAgIGV4cGxhaW5fdmVyYm9zZSA9IGZhbHNlLAotICAgICAgICAgIGV4cGxhaW5f Y29zdHMgPSBmYWxzZSwKLSAgICAgICAgICBleHBsYWluX2J1ZmZlcnMgPSBmYWxzZSwKLSAgICAg ICAgICBleHBsYWluX3RpbWluZyA9IGZhbHNlLAotICAgICAgICAgIGF1dG9fY29tbWl0ID0gdHJ1 ZSwKLSAgICAgICAgICBhdXRvX3JvbGxiYWNrID0gZmFsc2UsCi0gICAgICAgICAgdXBkYXRlVUkg PSBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIC8vIFNldCBBdXRvLWNvbW1pdCBhbmQgYXV0by1y b2xsYmFjayBvbiBxdWVyeSBlZGl0b3IKLSAgICAgICAgICAgIGlmIChhdXRvX2NvbW1pdCAmJgot ICAgICAgICAgICAgICAkKCcuYXV0by1jb21taXQnKS5oYXNDbGFzcygndmlzaWJpbGl0eS1oaWRk ZW4nKSA9PT0gdHJ1ZSkKLSAgICAgICAgICAgICAgJCgnLmF1dG8tY29tbWl0JykucmVtb3ZlQ2xh c3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg ICAgJCgnLmF1dG8tY29tbWl0JykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7Ci0gICAg ICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoYXV0b19yb2xsYmFjayAmJgotICAgICAgICAgICAg ICAkKCcuYXV0by1yb2xsYmFjaycpLmhhc0NsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpID09PSB0 cnVlKQotICAgICAgICAgICAgICAkKCcuYXV0by1yb2xsYmFjaycpLnJlbW92ZUNsYXNzKCd2aXNp YmlsaXR5LWhpZGRlbicpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICQoJy5h dXRvLXJvbGxiYWNrJykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJyk7Ci0gICAgICAgICAg ICB9Ci0KLSAgICAgICAgICAgIC8vIFNldCBleHBsYWluIG9wdGlvbnMgb24gcXVlcnkgZWRpdG9y Ci0gICAgICAgICAgICBpZiAoZXhwbGFpbl92ZXJib3NlICYmCi0gICAgICAgICAgICAgICQoJy5l eHBsYWluLXZlcmJvc2UnKS5oYXNDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKSA9PT0gdHJ1ZSkK LSAgICAgICAgICAgICAgJCgnLmV4cGxhaW4tdmVyYm9zZScpLnJlbW92ZUNsYXNzKCd2aXNpYmls aXR5LWhpZGRlbicpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICQoJy5leHBs YWluLXZlcmJvc2UnKS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICAg IH0KLSAgICAgICAgICAgIGlmIChleHBsYWluX2Nvc3RzICYmCi0gICAgICAgICAgICAgICQoJy5l eHBsYWluLWNvc3RzJykuaGFzQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVuJykgPT09IHRydWUpCi0g ICAgICAgICAgICAgICQoJy5leHBsYWluLWNvc3RzJykucmVtb3ZlQ2xhc3MoJ3Zpc2liaWxpdHkt aGlkZGVuJyk7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgJCgnLmV4cGxhaW4t Y29zdHMnKS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICAgIH0KLSAg ICAgICAgICAgIGlmIChleHBsYWluX2J1ZmZlcnMgJiYKLSAgICAgICAgICAgICAgJCgnLmV4cGxh aW4tYnVmZmVycycpLmhhc0NsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpID09PSB0cnVlKQotICAg ICAgICAgICAgICAkKCcuZXhwbGFpbi1idWZmZXJzJykucmVtb3ZlQ2xhc3MoJ3Zpc2liaWxpdHkt aGlkZGVuJyk7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgJCgnLmV4cGxhaW4t YnVmZmVycycpLmFkZENsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAgICAgICAgICAgfQot ICAgICAgICAgICAgaWYgKGV4cGxhaW5fdGltaW5nICYmCi0gICAgICAgICAgICAgICQoJy5leHBs YWluLXRpbWluZycpLmhhc0NsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpID09PSB0cnVlKQotICAg ICAgICAgICAgICAkKCcuZXhwbGFpbi10aW1pbmcnKS5yZW1vdmVDbGFzcygndmlzaWJpbGl0eS1o aWRkZW4nKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAkKCcuZXhwbGFpbi10 aW1pbmcnKS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICAgIH0KLSAg ICAgICAgICB9OwotCi0gICAgICAgICQuYWpheCh7Ci0gICAgICAgICAgdXJsOiB1cmxfZm9yKCdz cWxlZGl0b3IucXVlcnlfdG9vbF9wcmVmZXJlbmNlcycsIHsKLSAgICAgICAgICAgICd0cmFuc19p ZCc6IHNlbGYudHJhbnNJZCwKLSAgICAgICAgICB9KSwKLSAgICAgICAgICBtZXRob2Q6ICdHRVQn LAotICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykgewotICAgICAgICAgICAgaWYgKHJl cy5kYXRhKSB7Ci0gICAgICAgICAgICAgIGV4cGxhaW5fdmVyYm9zZSA9IHJlcy5kYXRhLmV4cGxh aW5fdmVyYm9zZTsKLSAgICAgICAgICAgICAgZXhwbGFpbl9jb3N0cyA9IHJlcy5kYXRhLmV4cGxh aW5fY29zdHM7Ci0gICAgICAgICAgICAgIGV4cGxhaW5fYnVmZmVycyA9IHJlcy5kYXRhLmV4cGxh aW5fYnVmZmVyczsKLSAgICAgICAgICAgICAgZXhwbGFpbl90aW1pbmcgPSByZXMuZGF0YS5leHBs YWluX3RpbWluZzsKLSAgICAgICAgICAgICAgYXV0b19jb21taXQgPSByZXMuZGF0YS5hdXRvX2Nv bW1pdDsKLSAgICAgICAgICAgICAgYXV0b19yb2xsYmFjayA9IHJlcy5kYXRhLmF1dG9fcm9sbGJh Y2s7Ci0gICAgICAgICAgICAgIHVwZGF0ZVVJKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg fSwKLSAgICAgICAgICBlcnJvcjogZnVuY3Rpb24oZSkgewotICAgICAgICAgICAgbGV0IG1zZyA9 IGh0dHBFcnJvckhhbmRsZXIuaGFuZGxlUXVlcnlUb29sQWpheEVycm9yKAotICAgICAgICAgICAg ICBwZ0FkbWluLCBzZWxmLCBlLCAnZ2V0X3ByZWZlcmVuY2VzJywgW10sIHRydWUKLSAgICAgICAg ICAgICk7Ci0gICAgICAgICAgICB1cGRhdGVVSSgpOwotICAgICAgICAgICAgYWxlcnRpZnkuYWxl cnQoZ2V0dGV4dCgnR2V0IFByZWZlcmVuY2VzIGVycm9yJyksIG1zZyk7Ci0gICAgICAgICAgfSwK LSAgICAgICAgfSk7Ci0gICAgICB9LAogICAgICAgY2xvc2U6IGZ1bmN0aW9uKCkgewogICAgICAg ICB2YXIgc2VsZiA9IHRoaXM7CiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVk aXRvci90ZXN0cy90ZXN0X3ByZWZfdXRpbGl0aWVzLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3Fs ZWRpdG9yL3Rlc3RzL3Rlc3RfcHJlZl91dGlsaXRpZXMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGNiZDE0MWIwLi4wMDAwMDAwMAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zcWxl ZGl0b3IvdGVzdHMvdGVzdF9wcmVmX3V0aWxpdGllcy5weQorKysgL2Rldi9udWxsCkBAIC0xLDEw MCArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FM IFRvb2xzCi0jCi0jIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTgsIFRoZSBwZ0FkbWluIERldmVs b3BtZW50IFRlYW0KLSMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdy ZVNRTCBMaWNlbmNlCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotZnJvbSBwZ2FkbWluLnV0aWxzLnJv dXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSBwZ2FkbWluLnRvb2xzLnNxbGVkaXRv ci51dGlscy5xdWVyeV90b29sX3ByZWZlcmVuY2VzIGltcG9ydCBcCi0gICAgZ2V0X3RleHRfcmVw cmVzZW50YXRpb25fb2Zfc2hvcnRjdXQKLQotCi1jbGFzcyBUZXN0UXVlcnlUb29sUHJlZmVyZW5j ZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiCi0gICAgRW5zdXJlcyB0aGF0IHdlIGFyZSBh YmxlIHRvIGZldGNoIHByZWZlcmVuY2VzIHByb3Blcmx5Ci0gICAgIiIiCi0gICAgc2NlbmFyaW9z ID0gWwotICAgICAgICAoJ0NoZWNrIHRleHQgcmVwcmVzZW50YXRpb24gb2YgYSB2YWxpZCBzaG9y dGN1dHMnLCBkaWN0KAotICAgICAgICAgICAgZmV0Y2hfcHJlZj1UcnVlLAotICAgICAgICAgICAg c2FtcGxlX3Nob3J0Y3V0PWRpY3QoCi0gICAgICAgICAgICAgICAgYWx0PUZhbHNlLAotICAgICAg ICAgICAgICAgIHNoaWZ0PUZhbHNlLAotICAgICAgICAgICAgICAgIGNvbnRyb2w9RmFsc2UsCi0g ICAgICAgICAgICAgICAga2V5PWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIGNoYXI9J2EnLAot ICAgICAgICAgICAgICAgICAgICBrZXlDb2RlPTY1Ci0gICAgICAgICAgICAgICAgKQotICAgICAg ICAgICAgKSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0nYScKLSAgICAgICAgKSksCi0K LSAgICAgICAgKCdDaGVjayB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIGEgdmFsaWQgc2hvcnRjdXRz JywgZGljdCgKLSAgICAgICAgICAgIGZldGNoX3ByZWY9VHJ1ZSwKLSAgICAgICAgICAgIHNhbXBs ZV9zaG9ydGN1dD1kaWN0KAotICAgICAgICAgICAgICAgIGFsdD1UcnVlLAotICAgICAgICAgICAg ICAgIHNoaWZ0PUZhbHNlLAotICAgICAgICAgICAgICAgIGNvbnRyb2w9RmFsc2UsCi0gICAgICAg ICAgICAgICAga2V5PWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIGNoYXI9J2EnLAotICAgICAg ICAgICAgICAgICAgICBrZXlDb2RlPTY1Ci0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAg KSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0nQWx0K2EnCi0gICAgICAgICkpLAotCi0g ICAgICAgICgnQ2hlY2sgdGV4dCByZXByZXNlbnRhdGlvbiBvZiBhIHZhbGlkIHNob3J0Y3V0cycs IGRpY3QoCi0gICAgICAgICAgICBmZXRjaF9wcmVmPVRydWUsCi0gICAgICAgICAgICBzYW1wbGVf c2hvcnRjdXQ9ZGljdCgKLSAgICAgICAgICAgICAgICBhbHQ9VHJ1ZSwKLSAgICAgICAgICAgICAg ICBzaGlmdD1UcnVlLAotICAgICAgICAgICAgICAgIGNvbnRyb2w9VHJ1ZSwKLSAgICAgICAgICAg ICAgICBrZXk9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgY2hhcj0nYScsCi0gICAgICAgICAg ICAgICAgICAgIGtleUNvZGU9NjUKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICApLAot ICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PSdBbHQrU2hpZnQrQ3RybCthJwotICAgICAgICAp KSwKLQotICAgICAgICAoJ0NoZWNrIHRleHQgcmVwcmVzZW50YXRpb24gb2YgYSB2YWxpZCBzaG9y dGN1dHMnLCBkaWN0KAotICAgICAgICAgICAgZmV0Y2hfcHJlZj1UcnVlLAotICAgICAgICAgICAg c2FtcGxlX3Nob3J0Y3V0PWRpY3QoCi0gICAgICAgICAgICAgICAgYWx0PUZhbHNlLAotICAgICAg ICAgICAgICAgIHNoaWZ0PVRydWUsCi0gICAgICAgICAgICAgICAgY29udHJvbD1GYWxzZSwKLSAg ICAgICAgICAgICAgICBrZXk9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgY2hhcj0nYScsCi0g ICAgICAgICAgICAgICAgICAgIGtleUNvZGU9NjUKLSAgICAgICAgICAgICAgICApCi0gICAgICAg ICAgICApLAotICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PSdTaGlmdCthJwotICAgICAgICAp KSwKLQotICAgICAgICAoJ0NoZWNrIHRleHQgcmVwcmVzZW50YXRpb24gb2YgYSB2YWxpZCBzaG9y dGN1dHMnLCBkaWN0KAotICAgICAgICAgICAgZmV0Y2hfcHJlZj1UcnVlLAotICAgICAgICAgICAg c2FtcGxlX3Nob3J0Y3V0PWRpY3QoCi0gICAgICAgICAgICAgICAgYWx0PVRydWUsCi0gICAgICAg ICAgICAgICAgc2hpZnQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICBjb250cm9sPUZhbHNlLAotICAg ICAgICAgICAgICAgIGtleT1kaWN0KAotICAgICAgICAgICAgICAgICAgICBjaGFyPSdhJywKLSAg ICAgICAgICAgICAgICAgICAga2V5Q29kZT02NQotICAgICAgICAgICAgICAgICkKLSAgICAgICAg ICAgICksCi0gICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9J0FsdCtTaGlmdCthJwotICAgICAg ICApKSwKLQotICAgICAgICAoJ0NoZWNrIHRleHQgcmVwcmVzZW50YXRpb24gb2YgYSBpbnZhbGlk IHNob3J0Y3V0cycsIGRpY3QoCi0gICAgICAgICAgICBmZXRjaF9wcmVmPVRydWUsCi0gICAgICAg ICAgICBzYW1wbGVfc2hvcnRjdXQ9Tm9uZSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0n JwotICAgICAgICApKQotCi0gICAgXQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAg ICIiIkNoZWNrIGNvcnJlY3QgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGhhbmRsZSB0byBydW4gcXVl cnkuIiIiCi0gICAgICAgIHJlc3VsdCA9IGdldF90ZXh0X3JlcHJlc2VudGF0aW9uX29mX3Nob3J0 Y3V0KHNlbGYuc2FtcGxlX3Nob3J0Y3V0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXN1 bHQsIHNlbGYuZXhwZWN0ZWRfcmVzdWx0KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMv c3FsZWRpdG9yL3V0aWxzL3F1ZXJ5X3Rvb2xfcHJlZmVyZW5jZXMucHkgYi93ZWIvcGdhZG1pbi90 b29scy9zcWxlZGl0b3IvdXRpbHMvcXVlcnlfdG9vbF9wcmVmZXJlbmNlcy5weQppbmRleCBhNWE3 YmNiOC4uNWUyYThlZjEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91 dGlscy9xdWVyeV90b29sX3ByZWZlcmVuY2VzLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3Nx bGVkaXRvci91dGlscy9xdWVyeV90b29sX3ByZWZlcmVuY2VzLnB5CkBAIC01NjAsMTIzICs1NjAs MyBAQCBkZWYgUmVnaXN0ZXJRdWVyeVRvb2xQcmVmZXJlbmNlcyhzZWxmKToKICAgICAgICAgaGVs cF9zdHI9Z2V0dGV4dCgnSWYgc2V0IHRvIFRydWUsIEtleXdvcmRzIHdpbGwgYmUgZGlzcGxheWVk ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnaW4gdXBwZXIgY2FzZSBmb3IgYXV0byBjb21w bGV0aW9uLicpCiAgICAgKQotCi0KLWRlZiBnZXRfcXVlcnlfdG9vbF9rZXlib2FyZF9zaG9ydGN1 dHMoKToKLQotICAgICIiIgotICAgIEZldGNoIGFsbCB0aGUgcXVlcnkgdG9vbCBzaG9ydGN1dCBw cmVmZXJlbmNlcwotCi0gICAgUmV0dXJuczoKLSAgICAgICAgTGlzdCBvZiBxdWVyeSB0b29sIHNo b3J0Y3V0IHByZWZlcmVuY2VzCi0gICAgIiIiCi0gICAgcXRfcGVyZiA9IFByZWZlcmVuY2VzLm1v ZHVsZSgnc3FsZWRpdG9yJykKLSAgICBjb25uX3N0YXR1cyA9IHF0X3BlcmYucHJlZmVyZW5jZSgn YnRuX2Nvbm5fc3RhdHVzJykuZ2V0KCkKLSAgICBjbGVhcl9vcHRpb25zID0gcXRfcGVyZi5wcmVm ZXJlbmNlKCdidG5fY2xlYXJfb3B0aW9ucycpLmdldCgpCi0gICAgY2FuY2VsX3F1ZXJ5ID0gcXRf cGVyZi5wcmVmZXJlbmNlKCdidG5fY2FuY2VsX3F1ZXJ5JykuZ2V0KCkKLSAgICBleGVjdXRlX29w dGlvbnMgPSBxdF9wZXJmLnByZWZlcmVuY2UoJ2J0bl9leGVjdXRlX29wdGlvbnMnKS5nZXQoKQot ICAgIGZpbHRlcl9vcHRpb25zID0gcXRfcGVyZi5wcmVmZXJlbmNlKCdidG5fZmlsdGVyX29wdGlv bnMnKS5nZXQoKQotICAgIHJvd3NfbGltaXQgPSBxdF9wZXJmLnByZWZlcmVuY2UoJ2J0bl9yb3dz X2xpbWl0JykuZ2V0KCkKLSAgICBmaWx0ZXJfZGlhbG9nID0gcXRfcGVyZi5wcmVmZXJlbmNlKCdi dG5fZmlsdGVyX2RpYWxvZycpLmdldCgpCi0gICAgZGVsZXRlX3JvdyA9IHF0X3BlcmYucHJlZmVy ZW5jZSgnYnRuX2RlbGV0ZV9yb3cnKS5nZXQoKQotICAgIHBhc3RlX3JvdyA9IHF0X3BlcmYucHJl ZmVyZW5jZSgnYnRuX3Bhc3RlX3JvdycpLmdldCgpCi0gICAgY29weV9yb3cgPSBxdF9wZXJmLnBy ZWZlcmVuY2UoJ2J0bl9jb3B5X3JvdycpLmdldCgpCi0gICAgc2F2ZV9maWxlID0gcXRfcGVyZi5w cmVmZXJlbmNlKCdidG5fc2F2ZV9maWxlJykuZ2V0KCkKLSAgICBvcGVuX2ZpbGUgPSBxdF9wZXJm LnByZWZlcmVuY2UoJ2J0bl9vcGVuX2ZpbGUnKS5nZXQoKQotICAgIG1vdmVfbmV4dCA9IHF0X3Bl cmYucHJlZmVyZW5jZSgnbW92ZV9uZXh0JykuZ2V0KCkKLSAgICBtb3ZlX3ByZXZpb3VzID0gcXRf cGVyZi5wcmVmZXJlbmNlKCdtb3ZlX3ByZXZpb3VzJykuZ2V0KCkKLSAgICBkb3dubG9hZF9jc3Yg PSBxdF9wZXJmLnByZWZlcmVuY2UoJ2Rvd25sb2FkX2NzdicpLmdldCgpCi0gICAgZXhlY3V0ZV9x dWVyeSA9IHF0X3BlcmYucHJlZmVyZW5jZSgnZXhlY3V0ZV9xdWVyeScpLmdldCgpCi0gICAgZXhw bGFpbl9xdWVyeSA9IHF0X3BlcmYucHJlZmVyZW5jZSgnZXhwbGFpbl9xdWVyeScpLmdldCgpCi0g ICAgZXhwbGFpbl9hbmFseXplX3F1ZXJ5ID0gcXRfcGVyZi5wcmVmZXJlbmNlKCdleHBsYWluX2Fu YWx5emVfcXVlcnknKS5nZXQoKQotICAgIGZpbmRfb3B0aW9ucyA9IHF0X3BlcmYucHJlZmVyZW5j ZSgnYnRuX2ZpbmRfb3B0aW9ucycpLmdldCgpCi0gICAgdG9nZ2xlX2Nhc2UgPSBxdF9wZXJmLnBy ZWZlcmVuY2UoJ3RvZ2dsZV9jYXNlJykuZ2V0KCkKLQotICAgIHJldHVybiB7Ci0gICAgICAgICdr ZXlzJzogewotICAgICAgICAgICAgJ2Nvbm5fc3RhdHVzJzogY29ubl9zdGF0dXMuZ2V0KCdrZXkn KS5nZXQoJ2NoYXInKSwKLSAgICAgICAgICAgICdjbGVhcl9vcHRpb25zJzogY2xlYXJfb3B0aW9u cy5nZXQoJ2tleScpLmdldCgnY2hhcicpLAotICAgICAgICAgICAgJ2NhbmNlbF9xdWVyeSc6IGNh bmNlbF9xdWVyeS5nZXQoJ2tleScpLmdldCgnY2hhcicpLAotICAgICAgICAgICAgJ2V4ZWN1dGVf b3B0aW9ucyc6IGV4ZWN1dGVfb3B0aW9ucy5nZXQoJ2tleScpLmdldCgnY2hhcicpLAotICAgICAg ICAgICAgJ2ZpbHRlcl9vcHRpb25zJzogZmlsdGVyX29wdGlvbnMuZ2V0KCdrZXknKS5nZXQoJ2No YXInKSwKLSAgICAgICAgICAgICdyb3dzX2xpbWl0Jzogcm93c19saW1pdC5nZXQoJ2tleScpLmdl dCgnY2hhcicpLAotICAgICAgICAgICAgJ2ZpbHRlcl9kaWFsb2cnOiBmaWx0ZXJfZGlhbG9nLmdl dCgna2V5JykuZ2V0KCdjaGFyJyksCi0gICAgICAgICAgICAnZGVsZXRlX3Jvdyc6IGRlbGV0ZV9y b3cuZ2V0KCdrZXknKS5nZXQoJ2NoYXInKSwKLSAgICAgICAgICAgICdwYXN0ZV9yb3cnOiBwYXN0 ZV9yb3cuZ2V0KCdrZXknKS5nZXQoJ2NoYXInKSwKLSAgICAgICAgICAgICdjb3B5X3Jvdyc6IGNv cHlfcm93LmdldCgna2V5JykuZ2V0KCdjaGFyJyksCi0gICAgICAgICAgICAnc2F2ZV9maWxlJzog c2F2ZV9maWxlLmdldCgna2V5JykuZ2V0KCdjaGFyJyksCi0gICAgICAgICAgICAnb3Blbl9maWxl Jzogb3Blbl9maWxlLmdldCgna2V5JykuZ2V0KCdjaGFyJyksCi0gICAgICAgICAgICAnbW92ZV9u ZXh0JzogbW92ZV9uZXh0LmdldCgna2V5JykuZ2V0KCdjaGFyJyksCi0gICAgICAgICAgICAnbW92 ZV9wcmV2aW91cyc6IG1vdmVfcHJldmlvdXMuZ2V0KCdrZXknKS5nZXQoJ2NoYXInKSwKLSAgICAg ICAgICAgICdkb3dubG9hZF9jc3YnOiBkb3dubG9hZF9jc3YuZ2V0KCdrZXknKS5nZXQoJ2NoYXIn KSwKLSAgICAgICAgICAgICdleGVjdXRlX3F1ZXJ5JzogZXhlY3V0ZV9xdWVyeS5nZXQoJ2tleScp LmdldCgnY2hhcicpLAotICAgICAgICAgICAgJ2V4cGxhaW5fcXVlcnknOiBleHBsYWluX3F1ZXJ5 LmdldCgna2V5JykuZ2V0KCdjaGFyJyksCi0gICAgICAgICAgICAnZXhwbGFpbl9hbmFseXplX3F1 ZXJ5JzogZXhwbGFpbl9hbmFseXplX3F1ZXJ5LmdldCgna2V5JykuZ2V0KAotICAgICAgICAgICAg ICAgICdjaGFyJwotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICdmaW5kX29wdGlvbnMnOiBm aW5kX29wdGlvbnMuZ2V0KCdrZXknKS5nZXQoJ2NoYXInKSwKLSAgICAgICAgICAgICd0b2dnbGVf Y2FzZSc6IHRvZ2dsZV9jYXNlLmdldCgna2V5JykuZ2V0KCdjaGFyJykKLSAgICAgICAgfSwKLSAg ICAgICAgJ3Nob3J0Y3V0cyc6IHsKLSAgICAgICAgICAgICdjb25uX3N0YXR1cyc6IGNvbm5fc3Rh dHVzLAotICAgICAgICAgICAgJ2NsZWFyX29wdGlvbnMnOiBjbGVhcl9vcHRpb25zLAotICAgICAg ICAgICAgJ2NhbmNlbF9xdWVyeSc6IGNhbmNlbF9xdWVyeSwKLSAgICAgICAgICAgICdleGVjdXRl X29wdGlvbnMnOiBleGVjdXRlX29wdGlvbnMsCi0gICAgICAgICAgICAnZmlsdGVyX29wdGlvbnMn OiBmaWx0ZXJfb3B0aW9ucywKLSAgICAgICAgICAgICdyb3dzX2xpbWl0Jzogcm93c19saW1pdCwK LSAgICAgICAgICAgICdmaWx0ZXJfZGlhbG9nJzogZmlsdGVyX2RpYWxvZywKLSAgICAgICAgICAg ICdkZWxldGVfcm93JzogZGVsZXRlX3JvdywKLSAgICAgICAgICAgICdwYXN0ZV9yb3cnOiBwYXN0 ZV9yb3csCi0gICAgICAgICAgICAnY29weV9yb3cnOiBjb3B5X3JvdywKLSAgICAgICAgICAgICdz YXZlX2ZpbGUnOiBzYXZlX2ZpbGUsCi0gICAgICAgICAgICAnb3Blbl9maWxlJzogb3Blbl9maWxl LAotICAgICAgICAgICAgJ21vdmVfbmV4dCc6IG1vdmVfbmV4dCwKLSAgICAgICAgICAgICdtb3Zl X3ByZXZpb3VzJzogbW92ZV9wcmV2aW91cywKLSAgICAgICAgICAgICdkb3dubG9hZF9jc3YnOiBk b3dubG9hZF9jc3YsCi0gICAgICAgICAgICAnZXhlY3V0ZV9xdWVyeSc6IGV4ZWN1dGVfcXVlcnks Ci0gICAgICAgICAgICAnZXhwbGFpbl9xdWVyeSc6IGV4cGxhaW5fcXVlcnksCi0gICAgICAgICAg ICAnZXhwbGFpbl9hbmFseXplX3F1ZXJ5JzogZXhwbGFpbl9hbmFseXplX3F1ZXJ5LAotICAgICAg ICAgICAgJ2ZpbmRfb3B0aW9ucyc6IGZpbmRfb3B0aW9ucywKLSAgICAgICAgICAgICd0b2dnbGVf Y2FzZSc6IHRvZ2dsZV9jYXNlCi0gICAgICAgIH0sCi0gICAgfQotCi0KLWRlZiBnZXRfdGV4dF9y ZXByZXNlbnRhdGlvbl9vZl9zaG9ydGN1dChzaG9ydGN1dCk6Ci0gICAgIiIiCi0gICAgQ292ZXJ0 cyBzaG9ydGN1dCBvYmplY3QgdG8gdGV4dCByZXByZXNlbnRhdGlvbgotCi0gICAgQXJnczoKLSAg ICAgICAgc2hvcnRjdXQ6IFNob3J0Y3V0IG9iamVjdAotCi0gICAgUmV0dXJuczoKLSAgICAgICAg VGV4dCByZXByZXNlbnRhdGlvbiBvZiBnaXZlbiBzaG9ydGN1dAotICAgICIiIgotICAgIHRleHRf cmVwcmVzZW50YXRpb24gPSAnJwotICAgIGlzX3BsdXNfcmVxdWlyZWQgPSBGYWxzZQotCi0gICAg aWYgbm90IHNob3J0Y3V0OgotICAgICAgICByZXR1cm4gdGV4dF9yZXByZXNlbnRhdGlvbgotCi0g ICAgaWYgc2hvcnRjdXRbJ2FsdCddOgotICAgICAgICB0ZXh0X3JlcHJlc2VudGF0aW9uID0gZ2V0 dGV4dCgnQWx0JykKLSAgICAgICAgaXNfcGx1c19yZXF1aXJlZCA9IFRydWUKLQotICAgIGlmIHNo b3J0Y3V0WydzaGlmdCddOgotICAgICAgICBpZiBpc19wbHVzX3JlcXVpcmVkOgotICAgICAgICAg ICAgdGV4dF9yZXByZXNlbnRhdGlvbiArPSAnKycKLSAgICAgICAgdGV4dF9yZXByZXNlbnRhdGlv biArPSBnZXR0ZXh0KCdTaGlmdCcpCi0gICAgICAgIGlzX3BsdXNfcmVxdWlyZWQgPSBUcnVlCi0K LSAgICBpZiBzaG9ydGN1dFsnY29udHJvbCddOgotICAgICAgICBpZiBpc19wbHVzX3JlcXVpcmVk OgotICAgICAgICAgICAgdGV4dF9yZXByZXNlbnRhdGlvbiArPSAnKycKLSAgICAgICAgdGV4dF9y ZXByZXNlbnRhdGlvbiArPSBnZXR0ZXh0KCdDdHJsJykKLSAgICAgICAgaXNfcGx1c19yZXF1aXJl ZCA9IFRydWUKLQotICAgIGlmIHNob3J0Y3V0WydrZXknXSBhbmQgc2hvcnRjdXRbJ2tleSddWydj aGFyJ106Ci0gICAgICAgIGlmIGlzX3BsdXNfcmVxdWlyZWQ6Ci0gICAgICAgICAgICB0ZXh0X3Jl cHJlc2VudGF0aW9uICs9ICcrJwotICAgICAgICB0ZXh0X3JlcHJlc2VudGF0aW9uICs9ICd7MH0n LmZvcm1hdChzaG9ydGN1dFsna2V5J11bJ2NoYXInXSkKLQotICAgIHJldHVybiB0ZXh0X3JlcHJl c2VudGF0aW9uCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2Jyb3dzZXIv cHJlZmVyZW5jZXNfc3BlYy5qcyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvYnJvd3Nlci9w cmVmZXJlbmNlc19zcGVjLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi4x NGJjMzJlZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvYnJv d3Nlci9wcmVmZXJlbmNlc19zcGVjLmpzCkBAIC0wLDAgKzEsMTUyIEBACitpbXBvcnQge3BnQnJv d3Nlcn0gZnJvbSAncGdhZG1pbi5icm93c2VyLnByZWZlcmVuY2VzJzsKK2ltcG9ydCAkIGZyb20g J2pxdWVyeSc7CisKK3ZhciBkdW1teV9jYWNoZSA9IFsKKyAgeworICAgIGlkOiAxLAorICAgIG1p ZDogMSwKKyAgICBtb2R1bGU6J21vZHVsZTEnLAorICAgIG5hbWU6J3ByZWYxJywKKyAgICB2YWx1 ZTp7CisgICAgICBhbHQ6IGZhbHNlLAorICAgICAgc2hpZnQ6IGZhbHNlLAorICAgICAgY29udHJv bDogZmFsc2UsCisgICAgICBrZXk6IHsKKyAgICAgICAgY2hhcjogJ2EnLAorICAgICAgICBrZXlf Y29kZTogNjUsCisgICAgICB9LAorICAgIH0sCisgIH0seworICAgIGlkOiAyLAorICAgIG1pZDog MSwKKyAgICBtb2R1bGU6J21vZHVsZTEnLAorICAgIG5hbWU6J3ByZWYyJywKKyAgICB2YWx1ZTog MTIzLAorICB9LHsKKyAgICBpZDogMywKKyAgICBtaWQ6IDIsCisgICAgbW9kdWxlOidtb2R1bGUy JywKKyAgICBuYW1lOidwcmVmMicsCisgICAgdmFsdWU6IHRydWUsCisgIH0sCitdOworCitkZXNj cmliZSgncHJlZmVyZW5jZXMgcmVsYXRlZCBmdW5jdGlvbnMgdGVzdCcsIGZ1bmN0aW9uKCkgewor ICBkZXNjcmliZSgnZ2V0IHByZWZlcmVuY2UgZGF0YSByZWxhdGVkIGZ1bmN0aW9ucycsIGZ1bmN0 aW9uKCl7CisgICAgYmVmb3JlRWFjaChmdW5jdGlvbigpeworICAgICAgcGdCcm93c2VyLnByZWZl cmVuY2VzX2NhY2hlID0gZHVtbXlfY2FjaGU7CisgICAgfSk7CisKKyAgICBpdCgnZ2VuZXJhdGVf cHJlZmVyZW5jZV92ZXJzaW9uJywgZnVuY3Rpb24oKSB7CisgICAgICBwZ0Jyb3dzZXIuZ2VuZXJh dGVfcHJlZmVyZW5jZV92ZXJzaW9uKCk7CisgICAgICBleHBlY3QocGdCcm93c2VyLmdlbmVyYXRl X3ByZWZlcmVuY2VfdmVyc2lvbigpKS50b0JlR3JlYXRlclRoYW4oMCk7CisgICAgfSk7CisKKyAg ICBpdCgncHJlZmVyZW5jZV92ZXJzaW9uJywgZnVuY3Rpb24oKSB7CisgICAgICBsZXQgdmVyc2lv biA9IDEyMzsKKyAgICAgIHBnQnJvd3Nlci5wcmVmZXJlbmNlX3ZlcnNpb24odmVyc2lvbik7Cisg ICAgICBleHBlY3QocGdCcm93c2VyLnByZWZjYWNoZV92ZXJzaW9uKS50b0VxdWFsKHZlcnNpb24p OworICAgICAgZXhwZWN0KHBnQnJvd3Nlci5wcmVmZXJlbmNlX3ZlcnNpb24oKSkudG9FcXVhbCh2 ZXJzaW9uKTsKKyAgICB9KTsKKworICAgIGl0KCdnZXRfcHJlZmVyZW5jZScsIGZ1bmN0aW9uKCl7 CisgICAgICBleHBlY3QocGdCcm93c2VyLmdldF9wcmVmZXJlbmNlKCdtb2R1bGUxJywncHJlZjEn KSkudG9FcXVhbCh7CisgICAgICAgIGlkOiAxLAorICAgICAgICBtaWQ6IDEsCisgICAgICAgIG1v ZHVsZTonbW9kdWxlMScsCisgICAgICAgIG5hbWU6J3ByZWYxJywKKyAgICAgICAgdmFsdWU6ewor ICAgICAgICAgIGFsdDogZmFsc2UsCisgICAgICAgICAgc2hpZnQ6IGZhbHNlLAorICAgICAgICAg IGNvbnRyb2w6IGZhbHNlLAorICAgICAgICAgIGtleTogeworICAgICAgICAgICAgY2hhcjogJ2En LAorICAgICAgICAgICAga2V5X2NvZGU6IDY1LAorICAgICAgICAgIH0sCisgICAgICAgIH0sCisg ICAgICB9KTsKKyAgICB9KTsKKworICAgIGl0KCdnZXRfcHJlZmVyZW5jZXNfZm9yX21vZHVsZScs IGZ1bmN0aW9uKCkgeworICAgICAgZXhwZWN0KHBnQnJvd3Nlci5nZXRfcHJlZmVyZW5jZXNfZm9y X21vZHVsZSgnbW9kdWxlMScpKS50b0VxdWFsKHsKKyAgICAgICAgJ3ByZWYxJzp7CisgICAgICAg ICAgYWx0OiBmYWxzZSwKKyAgICAgICAgICBzaGlmdDogZmFsc2UsCisgICAgICAgICAgY29udHJv bDogZmFsc2UsCisgICAgICAgICAga2V5OiB7CisgICAgICAgICAgICBjaGFyOiAnYScsCisgICAg ICAgICAgICBrZXlfY29kZTogNjUsCisgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAgICAgICAg J3ByZWYyJzogMTIzLAorICAgICAgfSk7CisgICAgfSk7CisKKyAgICBpdCgnZ2V0X3ByZWZlcmVu Y2VfZm9yX2lkJywgZnVuY3Rpb24oKSB7CisgICAgICBleHBlY3QocGdCcm93c2VyLmdldF9wcmVm ZXJlbmNlX2Zvcl9pZCgzKSkudG9FcXVhbCh7CisgICAgICAgIGlkOiAzLAorICAgICAgICBtaWQ6 IDIsCisgICAgICAgIG1vZHVsZTonbW9kdWxlMicsCisgICAgICAgIG5hbWU6J3ByZWYyJywKKyAg ICAgICAgdmFsdWU6IHRydWUsCisgICAgICB9KTsKKyAgICB9KTsKKworICAgIGl0KCdyZWZsZWN0 UHJlZmVyZW5jZXMnLCBmdW5jdGlvbigpIHsKKworICAgICAgbGV0IGVkaXRvck9wdGlvbnMgPSB7 CisgICAgICAgICd0YWJTaXplJzoyLAorICAgICAgICAnbGluZVdyYXBwaW5nJzpmYWxzZSwKKyAg ICAgICAgJ2F1dG9DbG9zZUJyYWNrZXRzJzp0cnVlLAorICAgICAgICAnbWF0Y2hCcmFja2V0cyc6 dHJ1ZSwKKyAgICAgIH07CisgICAgICBwZ0Jyb3dzZXIucHJlZmVyZW5jZXNfY2FjaGUucHVzaCh7 CisgICAgICAgIGlkOiA0LCBtaWQ6IDMsIG1vZHVsZTonc3FsZWRpdG9yJywgbmFtZTonc3FsX2Zv bnRfc2l6ZScsIHZhbHVlOiAxLjQ1NiwKKyAgICAgIH0pOworICAgICAgcGdCcm93c2VyLnByZWZl cmVuY2VzX2NhY2hlLnB1c2goeworICAgICAgICBpZDogNCwgbWlkOiAzLCBtb2R1bGU6J3NxbGVk aXRvcicsIG5hbWU6J3RhYl9zaXplJywgdmFsdWU6IGVkaXRvck9wdGlvbnMudGFiU2l6ZSwKKyAg ICAgIH0pOworICAgICAgcGdCcm93c2VyLnByZWZlcmVuY2VzX2NhY2hlLnB1c2goeworICAgICAg ICBpZDogNCwgbWlkOiAzLCBtb2R1bGU6J3NxbGVkaXRvcicsIG5hbWU6J3dyYXBfY29kZScsIHZh bHVlOiBlZGl0b3JPcHRpb25zLmxpbmVXcmFwcGluZywKKyAgICAgIH0pOworICAgICAgcGdCcm93 c2VyLnByZWZlcmVuY2VzX2NhY2hlLnB1c2goeworICAgICAgICBpZDogNCwgbWlkOiAzLCBtb2R1 bGU6J3NxbGVkaXRvcicsIG5hbWU6J2luc2VydF9wYWlyX2JyYWNrZXRzJywgdmFsdWU6IGVkaXRv ck9wdGlvbnMuYXV0b0Nsb3NlQnJhY2tldHMsCisgICAgICB9KTsKKyAgICAgIHBnQnJvd3Nlci5w cmVmZXJlbmNlc19jYWNoZS5wdXNoKHsKKyAgICAgICAgaWQ6IDQsIG1pZDogMywgbW9kdWxlOidz cWxlZGl0b3InLCBuYW1lOidicmFjZV9tYXRjaGluZycsIHZhbHVlOiBlZGl0b3JPcHRpb25zLm1h dGNoQnJhY2tldHMsCisgICAgICB9KTsKKworICAgICAgLyogU3BpZXMgKi8KKyAgICAgIHBnQnJv d3Nlci5lZGl0b3IgPSBqYXNtaW5lLmNyZWF0ZVNweU9iaigKKyAgICAgICAgJ0NvZGVNaXJyb3In LCBbJ3NldE9wdGlvbicsJ3JlZnJlc2gnLCdnZXRXcmFwcGVyRWxlbWVudCddCisgICAgICApOwor ICAgICAgc3B5T24oJC5mbiwgJ2NzcycpOworCisgICAgICAvKiBDYWxsICovCisgICAgICBwZ0Jy b3dzZXIucmVmbGVjdFByZWZlcmVuY2VzKCk7CisKKyAgICAgIC8qIFRlc3RzICovCisgICAgICBl eHBlY3QocGdCcm93c2VyLmVkaXRvci5nZXRXcmFwcGVyRWxlbWVudCkudG9IYXZlQmVlbkNhbGxl ZCgpOworICAgICAgZXhwZWN0KCQuZm4uY3NzKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnZm9udC1z aXplJywgJzEuNDZlbScpOworCisgICAgICBsZXQgc2V0T3B0aW9uQ2FsbHMgPSBwZ0Jyb3dzZXIu ZWRpdG9yLnNldE9wdGlvbi5jYWxsczsKKyAgICAgIGV4cGVjdChzZXRPcHRpb25DYWxscy5jb3Vu dCgpKS50b0JlKE9iamVjdC5rZXlzKGVkaXRvck9wdGlvbnMpLmxlbmd0aCk7CisKKyAgICAgIGZv cihsZXQgaSA9IDA7IGkgPCBPYmplY3Qua2V5cyhlZGl0b3JPcHRpb25zKS5sZW5ndGg7IGkrKykg eworICAgICAgICBsZXQgb3B0aW9uID0gT2JqZWN0LmtleXMoZWRpdG9yT3B0aW9ucylbaV07Cisg ICAgICAgIGV4cGVjdChzZXRPcHRpb25DYWxscy5hcmdzRm9yKGkpKS50b0VxdWFsKFtvcHRpb24s IGVkaXRvck9wdGlvbnNbb3B0aW9uXV0pOworICAgICAgfQorICAgICAgZXhwZWN0KHBnQnJvd3Nl ci5lZGl0b3IucmVmcmVzaCkudG9IYXZlQmVlbkNhbGxlZCgpOworICAgIH0pOworCisgICAgaXQo J29uUHJlZmVyZW5jZXNDaGFuZ2UnLCBmdW5jdGlvbigpIHsKKworICAgICAgd2luZG93LnBhcmVu dC4kID0gJDsKKyAgICAgIHNweU9uKCQuZm4sICdvbicpOworCisgICAgICB2YXIgZXZlbnRIYW5k bGVyID0gamFzbWluZS5jcmVhdGVTcHkoJ2V2ZW50SGFuZGxlcicpOworICAgICAgcGdCcm93c2Vy Lm9uUHJlZmVyZW5jZXNDaGFuZ2UoJ3NvbWVtb2R1bGUnLCBldmVudEhhbmRsZXIpOworICAgICAg ZXhwZWN0KCQuZm4ub24uY2FsbHMubW9zdFJlY2VudCgpLmFyZ3NbMF0pLnRvRXF1YWwoJ3ByZWZj aGFuZ2U6c29tZW1vZHVsZScpOworICAgIH0pOworICB9KTsKK30pOwpkaWZmIC0tZ2l0IGEvd2Vi L3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9oaXN0b3J5L3F1ZXJ5X2hpc3Rvcnlfc3BlYy5qc3ggYi93 ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2hpc3RvcnkvcXVlcnlfaGlzdG9yeV9zcGVjLmpzeApp bmRleCBjNDliMTlmMC4uYjkwZDJhMzAgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL2phdmFz Y3JpcHQvaGlzdG9yeS9xdWVyeV9oaXN0b3J5X3NwZWMuanN4CisrKyBiL3dlYi9yZWdyZXNzaW9u L2phdmFzY3JpcHQvaGlzdG9yeS9xdWVyeV9oaXN0b3J5X3NwZWMuanN4CkBAIC0yOSw3ICsyOSw3 IEBAIGltcG9ydCAnLi4vaGVscGVyL2VuenltZS5oZWxwZXInOwogZGVzY3JpYmUoJ1F1ZXJ5SGlz dG9yeScsICgpID0+IHsKICAgbGV0IGhpc3RvcnlDb2xsZWN0aW9uOwogICBsZXQgaGlzdG9yeVdy YXBwZXI7Ci0KKyAgbGV0IHNxbEVkaXRvclByZWYgPSB7c3FsX2ZvbnRfc2l6ZTogJzFlbSd9Owog ICBiZWZvcmVFYWNoKCgpID0+IHsKICAgICBqYXNtaW5lRW56eW1lKCk7CiAgIH0pOwpAQCAtMzcs NyArMzcsOSBAQCBkZXNjcmliZSgnUXVlcnlIaXN0b3J5JywgKCkgPT4gewogICBkZXNjcmliZSgn d2hlbiB0aGVyZSBpcyBubyBoaXN0b3J5JywgKCkgPT4gewogICAgIGJlZm9yZUVhY2goKCkgPT4g ewogICAgICAgaGlzdG9yeUNvbGxlY3Rpb24gPSBuZXcgSGlzdG9yeUNvbGxlY3Rpb24oW10pOwot ICAgICAgaGlzdG9yeVdyYXBwZXIgPSBtb3VudCg8UXVlcnlIaXN0b3J5IGhpc3RvcnlDb2xsZWN0 aW9uPXtoaXN0b3J5Q29sbGVjdGlvbn0vPik7CisgICAgICBoaXN0b3J5V3JhcHBlciA9IG1vdW50 KDxRdWVyeUhpc3RvcnkgaGlzdG9yeUNvbGxlY3Rpb249e2hpc3RvcnlDb2xsZWN0aW9ufQorICAg ICAgICBzcWxFZGl0b3JQcmVmPXtzcWxFZGl0b3JQcmVmfQorICAgICAgLz4pOwogICAgIH0pOwog CiAgICAgZGVzY3JpYmUoJ3doZW4gd2Ugc3dpdGNoIHRvIHRoZSBxdWVyeSBoaXN0b3J5IHRhYics ICgpID0+IHsKQEAgLTg5LDggKzkxLDkgQEAgZGVzY3JpYmUoJ1F1ZXJ5SGlzdG9yeScsICgpID0+ IHsKICAgICAgICAgICBtZXNzYWdlOiAnc29tZXRoaW5nIGltcG9ydGFudCBFUlJPUjogIG1lc3Nh Z2UgZnJvbSBzZWNvbmQgc3FsIHF1ZXJ5JywKICAgICAgICAgfV07CiAgICAgICAgIGhpc3RvcnlD b2xsZWN0aW9uID0gbmV3IEhpc3RvcnlDb2xsZWN0aW9uKGhpc3RvcnlPYmplY3RzKTsKLQotICAg ICAgICBoaXN0b3J5V3JhcHBlciA9IG1vdW50KDxRdWVyeUhpc3RvcnkgaGlzdG9yeUNvbGxlY3Rp b249e2hpc3RvcnlDb2xsZWN0aW9ufS8+KTsKKyAgICAgICAgaGlzdG9yeVdyYXBwZXIgPSBtb3Vu dCg8UXVlcnlIaXN0b3J5IGhpc3RvcnlDb2xsZWN0aW9uPXtoaXN0b3J5Q29sbGVjdGlvbn0KKyAg ICAgICAgICAgIHNxbEVkaXRvclByZWY9e3NxbEVkaXRvclByZWZ9CisgICAgICAgIC8+KTsKIAog ICAgICAgICBxdWVyeUhpc3RvcnlFbnRyaWVzQ29tcG9uZW50ID0gaGlzdG9yeVdyYXBwZXIuZmlu ZChRdWVyeUhpc3RvcnlFbnRyaWVzKTsKICAgICAgICAgaXNJbnZpc2libGVTcHkgPSBzcHlPbihx dWVyeUhpc3RvcnlFbnRyaWVzQ29tcG9uZW50Lmluc3RhbmNlKCksICdpc0ludmlzaWJsZScpCkBA IC00NzksNyArNDgyLDkgQEAgZGVzY3JpYmUoJ1F1ZXJ5SGlzdG9yeScsICgpID0+IHsKICAgICAg ICAgfV07CiAgICAgICAgIGhpc3RvcnlDb2xsZWN0aW9uID0gbmV3IEhpc3RvcnlDb2xsZWN0aW9u KGhpc3RvcnlPYmplY3RzKTsKIAotICAgICAgICBoaXN0b3J5V3JhcHBlciA9IG1vdW50KDxRdWVy eUhpc3RvcnkgaGlzdG9yeUNvbGxlY3Rpb249e2hpc3RvcnlDb2xsZWN0aW9ufS8+KTsKKyAgICAg ICAgaGlzdG9yeVdyYXBwZXIgPSBtb3VudCg8UXVlcnlIaXN0b3J5IGhpc3RvcnlDb2xsZWN0aW9u PXtoaXN0b3J5Q29sbGVjdGlvbn0KKyAgICAgICAgICAgIHNxbEVkaXRvclByZWY9e3NxbEVkaXRv clByZWZ9CisgICAgICAgIC8+KTsKIAogICAgICAgICBjb25zdCBxdWVyeUhpc3RvcnlFbnRyaWVz Q29tcG9uZW50ID0gaGlzdG9yeVdyYXBwZXIuZmluZChRdWVyeUhpc3RvcnlFbnRyaWVzKTsKICAg ICAgICAgaXNJbnZpc2libGVTcHkgPSBzcHlPbihxdWVyeUhpc3RvcnlFbnRyaWVzQ29tcG9uZW50 Lmluc3RhbmNlKCksICdpc0ludmlzaWJsZScpCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9q YXZhc2NyaXB0L3NxbGVkaXRvci9rZXlib2FyZF9zaG9ydGN1dHNfc3BlYy5qcyBiL3dlYi9yZWdy ZXNzaW9uL2phdmFzY3JpcHQvc3FsZWRpdG9yL2tleWJvYXJkX3Nob3J0Y3V0c19zcGVjLmpzCmlu ZGV4IDA2NTg2ZDM0Li4wZTc3NDgxNCAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNj cmlwdC9zcWxlZGl0b3Iva2V5Ym9hcmRfc2hvcnRjdXRzX3NwZWMuanMKKysrIGIvd2ViL3JlZ3Jl c3Npb24vamF2YXNjcmlwdC9zcWxlZGl0b3Iva2V5Ym9hcmRfc2hvcnRjdXRzX3NwZWMuanMKQEAg LTksNiArOSw3IEBACiAKIGltcG9ydCBrZXlib2FyZFNob3J0Y3V0cyBmcm9tICdzb3VyY2VzL2tl eWJvYXJkX3Nob3J0Y3V0cyc7CiBpbXBvcnQge3F1ZXJ5VG9vbEFjdGlvbnN9IGZyb20gJ3NvdXJj ZXMvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfYWN0aW9ucyc7CitpbXBvcnQgZ2V0dGV4dCBmcm9tICdz b3VyY2VzL2dldHRleHQnOwogCiBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgp ID0+IHsKICAgY29uc3QgRjFfS0VZID0gMTEyLApAQCAtMTgsNyArMTksNyBAQCBkZXNjcmliZSgn dGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgpID0+IHsKICAgICBQRVJJT0RfS0VZID0gMTkwLAog ICAgIEZXRF9TTEFTSF9LRVkgPSAxOTE7CiAKLSAgbGV0IHNxbEVkaXRvckNvbnRyb2xsZXJTcHks IGV2ZW50LCBxdWVyeVRvb2xBY3Rpb25zU3B5LCBxdWVyeVRvb2xrZXlib2FyZFNob3J0Y3V0c0Nv bmZpZzsKKyAgbGV0IHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIGV2ZW50LCBxdWVyeVRvb2xBY3Rp b25zU3B5OwogICBiZWZvcmVFYWNoKCgpID0+IHsKICAgICBldmVudCA9IHsKICAgICAgIHNoaWZ0 OiBmYWxzZSwKQEAgLTI5LDggKzMwLDIyIEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRj dXRzJywgKCkgPT4gewogICAgICAgc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOiBqYXNtaW5lLmNy ZWF0ZVNweSgnc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uJyksCiAgICAgfTsKIAotICAgIHF1ZXJ5 VG9vbGtleWJvYXJkU2hvcnRjdXRzQ29uZmlnID0gewotICAgICAgZXhlY3V0ZTogeworICAgIGxl dCBncmlkVmlldyA9IHsKKyAgICAgIHF1ZXJ5X3Rvb2xfb2JqOiB7CisgICAgICAgIGdldFNlbGVj dGlvbjogamFzbWluZS5jcmVhdGVTcHkoJ2dldFNlbGVjdGlvbicpLAorICAgICAgICBnZXRWYWx1 ZTogamFzbWluZS5jcmVhdGVTcHkoJ2dldFZhbHVlJyksCisgICAgICB9LAorICAgIH07CisKKyAg ICBzcWxFZGl0b3JDb250cm9sbGVyU3B5ID0gamFzbWluZS5jcmVhdGVTcHlPYmooJ1NxbEVkaXRv ckNvbnRyb2xsZXInLCBbCisgICAgICAnaXNRdWVyeVJ1bm5pbmcnLAorICAgICAgJ2V4ZWN1dGUn LAorICAgIF0pOworCisgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweS5ncmlkVmlldyA9IGdyaWRW aWV3OworCisgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweS5wcmVmZXJlbmNlcyA9IHsKKyAgICAg IGV4ZWN1dGVfcXVlcnk6IHsKICAgICAgICAgYWx0OiBmYWxzZSwKICAgICAgICAgc2hpZnQ6IGZh bHNlLAogICAgICAgICBjb250cm9sOiBmYWxzZSwKQEAgLTM4LDcgKzUzLDcgQEAgZGVzY3JpYmUo J3RoZSBrZXlib2FyZCBzaG9ydGN1dHMnLCAoKSA9PiB7CiAgICAgICAgICAga2V5X2NvZGU6IEY1 X0tFWSwKICAgICAgICAgfSwKICAgICAgIH0sCi0gICAgICBleHBsYWluOiB7CisgICAgICBleHBs YWluX3F1ZXJ5OiB7CiAgICAgICAgIGFsdDogZmFsc2UsCiAgICAgICAgIHNoaWZ0OiBmYWxzZSwK ICAgICAgICAgY29udHJvbDogZmFsc2UsCkBAIC00Niw3ICs2MSw3IEBAIGRlc2NyaWJlKCd0aGUg a2V5Ym9hcmQgc2hvcnRjdXRzJywgKCkgPT4gewogICAgICAgICAgIGtleV9jb2RlOiBGN19LRVks CiAgICAgICAgIH0sCiAgICAgICB9LAotICAgICAgZXhwbGFpbl9hbmFseXplOiB7CisgICAgICBl eHBsYWluX2FuYWx5emVfcXVlcnk6IHsKICAgICAgICAgYWx0OiBmYWxzZSwKICAgICAgICAgc2hp ZnQ6IHRydWUsCiAgICAgICAgIGNvbnRyb2w6IGZhbHNlLApAQCAtODAsMjAgKzk1LDYgQEAgZGVz Y3JpYmUoJ3RoZSBrZXlib2FyZCBzaG9ydGN1dHMnLCAoKSA9PiB7CiAgICAgICB9LAogICAgIH07 CiAKLSAgICBsZXQgZ3JpZFZpZXcgPSB7Ci0gICAgICBxdWVyeV90b29sX29iajogewotICAgICAg ICBnZXRTZWxlY3Rpb246IGphc21pbmUuY3JlYXRlU3B5KCdnZXRTZWxlY3Rpb24nKSwKLSAgICAg ICAgZ2V0VmFsdWU6IGphc21pbmUuY3JlYXRlU3B5KCdnZXRWYWx1ZScpLAotICAgICAgfSwKLSAg ICB9OwotCi0gICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSA9IGphc21pbmUuY3JlYXRlU3B5T2Jq KCdTcWxFZGl0b3JDb250cm9sbGVyJywgWwotICAgICAgJ2lzUXVlcnlSdW5uaW5nJywKLSAgICAg ICdleGVjdXRlJywKLSAgICBdKTsKLQotICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHkuZ3JpZFZp ZXcgPSBncmlkVmlldzsKLQogICAgIHF1ZXJ5VG9vbEFjdGlvbnNTcHkgPSBqYXNtaW5lLmNyZWF0 ZVNweU9iaihxdWVyeVRvb2xBY3Rpb25zLCBbCiAgICAgICAnZXhwbGFpbkFuYWx5emUnLAogICAg ICAgJ2V4cGxhaW4nLApAQCAtMTEwLDggKzExMSw3IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQg c2hvcnRjdXRzJywgKCkgPT4gewogICAgIGJlZm9yZUVhY2goKCkgPT4gewogICAgICAgZXZlbnQu d2hpY2ggPSBGMV9LRVk7CiAgICAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnRRdWVy eVRvb2woCi0gICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbGtleWJvYXJk U2hvcnRjdXRzQ29uZmlnLAotICAgICAgICBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAorICAg ICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAog ICAgICAgKTsKICAgICB9KTsKIApAQCAtMTI4LDggKzEyOCw3IEBAIGRlc2NyaWJlKCd0aGUga2V5 Ym9hcmQgc2hvcnRjdXRzJywgKCkgPT4gewogICAgICAgICBldmVudC5zaGlmdEtleSA9IGZhbHNl OwogICAgICAgICBldmVudC5jdHJsS2V5ID0gZmFsc2U7CiAgICAgICAgIGtleWJvYXJkU2hvcnRj dXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVy U3B5LCBxdWVyeVRvb2xrZXlib2FyZFNob3J0Y3V0c0NvbmZpZywKLSAgICAgICAgICBxdWVyeVRv b2xBY3Rpb25zU3B5LCBldmVudAorICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1 ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAgICAgICAgICk7CiAgICAgICB9KTsKIApAQCAtMTUx LDggKzE1MCw3IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRjdXRzJywgKCkgPT4gewog ICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LmlzUXVlcnlSdW5uaW5nLmFuZC5yZXR1cm5W YWx1ZSh0cnVlKTsKIAogICAgICAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnRRdWVy eVRvb2woCi0gICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sa2V5Ym9h cmRTaG9ydGN1dHNDb25maWcsCi0gICAgICAgICAgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQK KyAgICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xBY3Rpb25zU3B5LCBl dmVudAogICAgICAgICApOwogCiAgICAgICAgIGV4cGVjdChxdWVyeVRvb2xBY3Rpb25zU3B5LmV4 ZWN1dGVRdWVyeSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTsKQEAgLTE2OCw4ICsxNjYsNyBAQCBk ZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgpID0+IHsKICAgICAgICAgZXZlbnQu c2hpZnRLZXkgPSBmYWxzZTsKICAgICAgICAgZXZlbnQuY3RybEtleSA9IGZhbHNlOwogICAgICAg ICBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnRRdWVyeVRvb2woCi0gICAgICAgICAgc3Fs RWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1dHNDb25maWcsCi0g ICAgICAgICAgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKKyAgICAgICAgICBzcWxFZGl0b3JD b250cm9sbGVyU3B5LCBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAogICAgICAgICApOwogICAg ICAgfSk7CiAKQEAgLTE4OSw4ICsxODYsNyBAQCBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0 Y3V0cycsICgpID0+IHsKICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweS5pc1F1ZXJ5UnVu bmluZy5hbmQucmV0dXJuVmFsdWUodHJ1ZSk7CiAKICAgICAgICAga2V5Ym9hcmRTaG9ydGN1dHMu cHJvY2Vzc0V2ZW50UXVlcnlUb29sKAotICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHks IHF1ZXJ5VG9vbGtleWJvYXJkU2hvcnRjdXRzQ29uZmlnLAotICAgICAgICAgIHF1ZXJ5VG9vbEFj dGlvbnNTcHksIGV2ZW50CisgICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlU b29sQWN0aW9uc1NweSwgZXZlbnQKICAgICAgICAgKTsKIAogICAgICAgICBleHBlY3QocXVlcnlU b29sQWN0aW9uc1NweS5leHBsYWluKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpOwpAQCAtMjA2LDgg KzIwMiw3IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRjdXRzJywgKCkgPT4gewogICAg ICAgICBldmVudC5hbHRLZXkgPSBmYWxzZTsKICAgICAgICAgZXZlbnQuY3RybEtleSA9IGZhbHNl OwogICAgICAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnRRdWVyeVRvb2woCi0gICAg ICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVlcnlUb29sa2V5Ym9hcmRTaG9ydGN1dHND b25maWcsCi0gICAgICAgICAgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKKyAgICAgICAgICBz cWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAogICAgICAg ICApOwogICAgICAgfSk7CiAKQEAgLTIyOCw4ICsyMjMsNyBAQCBkZXNjcmliZSgndGhlIGtleWJv YXJkIHNob3J0Y3V0cycsICgpID0+IHsKICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweS5p c1F1ZXJ5UnVubmluZy5hbmQucmV0dXJuVmFsdWUodHJ1ZSk7CiAKICAgICAgICAga2V5Ym9hcmRT aG9ydGN1dHMucHJvY2Vzc0V2ZW50UXVlcnlUb29sKAotICAgICAgICAgIHNxbEVkaXRvckNvbnRy b2xsZXJTcHksIHF1ZXJ5VG9vbGtleWJvYXJkU2hvcnRjdXRzQ29uZmlnLAotICAgICAgICAgIHF1 ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CisgICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNw eSwgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKICAgICAgICAgKTsKIAogICAgICAgICBleHBl Y3QocXVlcnlUb29sQWN0aW9uc1NweS5leHBsYWluQW5hbHl6ZSkubm90LnRvSGF2ZUJlZW5DYWxs ZWQoKTsKQEAgLTI0Niw4ICsyNDAsNyBAQCBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0 cycsICgpID0+IHsKICAgICAgICAgZXZlbnQuY3RybEtleSA9IGZhbHNlOwogCiAgICAgICAgIGtl eWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICBzcWxFZGl0 b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xrZXlib2FyZFNob3J0Y3V0c0NvbmZpZywKLSAgICAg ICAgICBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAorICAgICAgICAgIHNxbEVkaXRvckNvbnRy b2xsZXJTcHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAgICAgICAgICk7CiAgICAgICB9 KTsKIApAQCAtMjcwLDggKzI2Myw3IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRjdXRz JywgKCkgPT4gewogICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LmlzUXVlcnlSdW5uaW5n LmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsKIAogICAgICAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9j ZXNzRXZlbnRRdWVyeVRvb2woCi0gICAgICAgICAgc3FsRWRpdG9yQ29udHJvbGxlclNweSwgcXVl cnlUb29sa2V5Ym9hcmRTaG9ydGN1dHNDb25maWcsCi0gICAgICAgICAgcXVlcnlUb29sQWN0aW9u c1NweSwgZXZlbnQKKyAgICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xB Y3Rpb25zU3B5LCBldmVudAogICAgICAgICApOwogCiAgICAgICAgIGV4cGVjdChxdWVyeVRvb2xB Y3Rpb25zU3B5LmRvd25sb2FkKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpOwpAQCAtMjg2LDggKzI3 OCw3IEBAIGRlc2NyaWJlKCd0aGUga2V5Ym9hcmQgc2hvcnRjdXRzJywgKCkgPT4gewogICAgICAg ICAgIG1hY0tleXNTZXR1cCgpOwogICAgICAgICAgIGV2ZW50LndoaWNoID0gRldEX1NMQVNIX0tF WTsKICAgICAgICAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnRRdWVyeVRvb2woCi0g ICAgICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xrZXlib2FyZFNob3J0 Y3V0c0NvbmZpZywKLSAgICAgICAgICAgIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CisgICAg ICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVu dAogICAgICAgICAgICk7CiAgICAgICAgIH0pOwogCkBAIC0zMDMsOCArMjk0LDcgQEAgZGVzY3Jp YmUoJ3RoZSBrZXlib2FyZCBzaG9ydGN1dHMnLCAoKSA9PiB7CiAgICAgICAgICAgd2luZG93c0tl eXNTZXR1cCgpOwogICAgICAgICAgIGV2ZW50LndoaWNoID0gRldEX1NMQVNIX0tFWTsKICAgICAg ICAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnRRdWVyeVRvb2woCi0gICAgICAgICAg ICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xrZXlib2FyZFNob3J0Y3V0c0NvbmZp ZywKLSAgICAgICAgICAgIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CisgICAgICAgICAgICBz cWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAogICAgICAg ICAgICk7CiAgICAgICAgIH0pOwogCkBAIC0zMjgsOCArMzE4LDcgQEAgZGVzY3JpYmUoJ3RoZSBr ZXlib2FyZCBzaG9ydGN1dHMnLCAoKSA9PiB7CiAKICAgICAgICAgaXQoJ2RvZXMgbm90aGluZycs ICgpID0+IHsKICAgICAgICAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnRRdWVyeVRv b2woCi0gICAgICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xrZXlib2Fy ZFNob3J0Y3V0c0NvbmZpZywKLSAgICAgICAgICAgIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50 CisgICAgICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xBY3Rpb25zU3B5 LCBldmVudAogICAgICAgICAgICk7CiAKICAgICAgICAgICBleHBlY3QocXVlcnlUb29sQWN0aW9u c1NweS5jb21tZW50TGluZUNvZGUpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7CkBAIC0zNDQsOCAr MzMzLDcgQEAgZGVzY3JpYmUoJ3RoZSBrZXlib2FyZCBzaG9ydGN1dHMnLCAoKSA9PiB7CiAKICAg ICAgICAgaXQoJ2RvZXMgbm90aGluZycsICgpID0+IHsKICAgICAgICAgICBrZXlib2FyZFNob3J0 Y3V0cy5wcm9jZXNzRXZlbnRRdWVyeVRvb2woCi0gICAgICAgICAgICBzcWxFZGl0b3JDb250cm9s bGVyU3B5LCBxdWVyeVRvb2xrZXlib2FyZFNob3J0Y3V0c0NvbmZpZywKLSAgICAgICAgICAgIHF1 ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CisgICAgICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVy U3B5LCBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAogICAgICAgICAgICk7CiAKICAgICAgICAg ICBleHBlY3QocXVlcnlUb29sQWN0aW9uc1NweS5jb21tZW50TGluZUNvZGUpLm5vdC50b0hhdmVC ZWVuQ2FsbGVkKCk7CkBAIC0zNjEsOCArMzQ5LDcgQEAgZGVzY3JpYmUoJ3RoZSBrZXlib2FyZCBz aG9ydGN1dHMnLCAoKSA9PiB7CiAgICAgICAgICAgbWFjS2V5c1NldHVwKCk7CiAgICAgICAgICAg ZXZlbnQud2hpY2ggPSBQRVJJT0RfS0VZOwogICAgICAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnBy b2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHks IHF1ZXJ5VG9vbGtleWJvYXJkU2hvcnRjdXRzQ29uZmlnLAotICAgICAgICAgICAgcXVlcnlUb29s QWN0aW9uc1NweSwgZXZlbnQKKyAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1 ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAgICAgICAgICAgKTsKICAgICAgICAgfSk7CiAKQEAg LTM3Nyw4ICszNjQsNyBAQCBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgpID0+ IHsKICAgICAgICAgICB3aW5kb3dzS2V5c1NldHVwKCk7CiAgICAgICAgICAgZXZlbnQud2hpY2gg PSBQRVJJT0RfS0VZOwogICAgICAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1 ZXJ5VG9vbCgKLSAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbGtl eWJvYXJkU2hvcnRjdXRzQ29uZmlnLAotICAgICAgICAgICAgcXVlcnlUb29sQWN0aW9uc1NweSwg ZXZlbnQKKyAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFjdGlv bnNTcHksIGV2ZW50CiAgICAgICAgICAgKTsKICAgICAgICAgfSk7CiAKQEAgLTQwMiw4ICszODgs NyBAQCBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgpID0+IHsKIAogICAgICAg ICBpdCgnZG9lcyBub3RoaW5nJywgKCkgPT4gewogICAgICAgICAgIGtleWJvYXJkU2hvcnRjdXRz LnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJT cHksIHF1ZXJ5VG9vbGtleWJvYXJkU2hvcnRjdXRzQ29uZmlnLAotICAgICAgICAgICAgcXVlcnlU b29sQWN0aW9uc1NweSwgZXZlbnQKKyAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHks IHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50CiAgICAgICAgICAgKTsKICAgICAgICAgICBleHBl Y3QocXVlcnlUb29sQWN0aW9uc1NweS51bmNvbW1lbnRMaW5lQ29kZSkubm90LnRvSGF2ZUJlZW5D YWxsZWQoKTsKICAgICAgICAgfSk7CkBAIC00MTYsOCArNDAxLDcgQEAgZGVzY3JpYmUoJ3RoZSBr ZXlib2FyZCBzaG9ydGN1dHMnLCAoKSA9PiB7CiAKICAgICAgICAgaXQoJ2RvZXMgbm90aGluZycs ICgpID0+IHsKICAgICAgICAgICBrZXlib2FyZFNob3J0Y3V0cy5wcm9jZXNzRXZlbnRRdWVyeVRv b2woCi0gICAgICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xrZXlib2Fy ZFNob3J0Y3V0c0NvbmZpZywKLSAgICAgICAgICAgIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50 CisgICAgICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5LCBxdWVyeVRvb2xBY3Rpb25zU3B5 LCBldmVudAogICAgICAgICAgICk7CiAKICAgICAgICAgICBleHBlY3QocXVlcnlUb29sQWN0aW9u c1NweS51bmNvbW1lbnRMaW5lQ29kZSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTsKQEAgLTQzNCw4 ICs0MTgsNyBAQCBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgpID0+IHsKICAg ICAgICAgICBldmVudC53aGljaCA9IEZXRF9TTEFTSF9LRVk7CiAgICAgICAgICAgZXZlbnQuc2hp ZnRLZXkgPSB0cnVlOwogICAgICAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1 ZXJ5VG9vbCgKLSAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbGtl eWJvYXJkU2hvcnRjdXRzQ29uZmlnLAotICAgICAgICAgICAgcXVlcnlUb29sQWN0aW9uc1NweSwg ZXZlbnQKKyAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFjdGlv bnNTcHksIGV2ZW50CiAgICAgICAgICAgKTsKICAgICAgICAgfSk7CiAKQEAgLTQ1NCw4ICs0Mzcs NyBAQCBkZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgpID0+IHsKICAgICAgICAg ICBldmVudC53aGljaCA9IEZXRF9TTEFTSF9LRVk7CiAgICAgICAgICAgZXZlbnQuc2hpZnRLZXkg PSB0cnVlOwogICAgICAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9v bCgKLSAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbGtleWJvYXJk U2hvcnRjdXRzQ29uZmlnLAotICAgICAgICAgICAgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQK KyAgICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHks IGV2ZW50CiAgICAgICAgICAgKTsKICAgICAgICAgfSk7CiAKQEAgLTQ3Nyw4ICs0NTksNyBAQCBk ZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgpID0+IHsKICAgICAgICAgICBldmVu dC53aGljaCA9IEZXRF9TTEFTSF9LRVk7CiAgICAgICAgICAgZXZlbnQuc2hpZnRLZXkgPSB0cnVl OwogICAgICAgICAgIGtleWJvYXJkU2hvcnRjdXRzLnByb2Nlc3NFdmVudFF1ZXJ5VG9vbCgKLSAg ICAgICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbGtleWJvYXJkU2hvcnRj dXRzQ29uZmlnLAotICAgICAgICAgICAgcXVlcnlUb29sQWN0aW9uc1NweSwgZXZlbnQKKyAgICAg ICAgICAgIHNxbEVkaXRvckNvbnRyb2xsZXJTcHksIHF1ZXJ5VG9vbEFjdGlvbnNTcHksIGV2ZW50 CiAgICAgICAgICAgKTsKICAgICAgICAgfSk7CiAgICAgICAgIGl0KCdkb2VzIG5vdGhpbmcnLCAo KSA9PiB7CkBAIC00OTEsOCArNDcyLDcgQEAgZGVzY3JpYmUoJ3RoZSBrZXlib2FyZCBzaG9ydGN1 dHMnLCAoKSA9PiB7CiAgICAgICAgICAgZXZlbnQud2hpY2ggPSBGV0RfU0xBU0hfS0VZOwogICAg ICAgICAgIGV2ZW50LnNoaWZ0S2V5ID0gdHJ1ZTsKICAgICAgICAgICBrZXlib2FyZFNob3J0Y3V0 cy5wcm9jZXNzRXZlbnRRdWVyeVRvb2woCi0gICAgICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVy U3B5LCBxdWVyeVRvb2xrZXlib2FyZFNob3J0Y3V0c0NvbmZpZywKLSAgICAgICAgICAgIHF1ZXJ5 VG9vbEFjdGlvbnNTcHksIGV2ZW50CisgICAgICAgICAgICBzcWxFZGl0b3JDb250cm9sbGVyU3B5 LCBxdWVyeVRvb2xBY3Rpb25zU3B5LCBldmVudAogICAgICAgICAgICk7CiAgICAgICAgIH0pOwog ICAgICAgICBpdCgnZG9lcyBub3RoaW5nJywgKCkgPT4gewpAQCAtNTAyLDYgKzQ4Miw0NSBAQCBk ZXNjcmliZSgndGhlIGtleWJvYXJkIHNob3J0Y3V0cycsICgpID0+IHsKICAgICB9KTsKICAgfSk7 CiAKKyAgZGVzY3JpYmUoJ3Nob3J0Y3V0IHRvIHRleHQgY29udmVydGVycycsICgpPT4geworICAg IHZhciBzaG9ydGN1dCA9IHsKKyAgICAgIGFsdDogZmFsc2UsCisgICAgICBzaGlmdDogZmFsc2Us CisgICAgICBjb250cm9sOiBmYWxzZSwKKyAgICAgIGtleTogeworICAgICAgICBjaGFyOiAnYScs CisgICAgICAgIGtleV9jb2RlOiA2NSwKKyAgICAgIH0sCisgICAgfTsKKworICAgIGl0KCdzaG9y dGN1dF9rZXknLCgpPT57CisgICAgICBleHBlY3Qoa2V5Ym9hcmRTaG9ydGN1dHMuc2hvcnRjdXRf a2V5KHNob3J0Y3V0KSkudG9CZSgnQScpOworICAgIH0pOworCisgICAgaXQoJ3Nob3J0Y3V0X2Fj Y2Vzc2tleV90aXRsZScsKCk9PnsKKyAgICAgIGV4cGVjdChrZXlib2FyZFNob3J0Y3V0cy5zaG9y dGN1dF9hY2Nlc3NrZXlfdGl0bGUoCisgICAgICAgICdUaXRsZScsIHNob3J0Y3V0KSkudG9CZShn ZXR0ZXh0KCdUaXRsZSAoYWNjZXNza2V5ICsgQSknKSk7CisgICAgfSk7CisKKyAgICBpdCgnc2hv cnRjdXRfdGl0bGUnLCgpPT57CisgICAgICBzaG9ydGN1dC5hbHQgPSB0cnVlLCBzaG9ydGN1dC5z aGlmdCA9IGZhbHNlLCBzaG9ydGN1dC5jb250cm9sID0gZmFsc2U7CisgICAgICBleHBlY3Qoa2V5 Ym9hcmRTaG9ydGN1dHMuc2hvcnRjdXRfdGl0bGUoCisgICAgICAgICdUaXRsZScsIHNob3J0Y3V0 KSkudG9CZShnZXR0ZXh0KCdUaXRsZSAoQWx0K0EpJykpOworCisgICAgICBzaG9ydGN1dC5hbHQg PSBmYWxzZSwgc2hvcnRjdXQuc2hpZnQgPSB0cnVlLCBzaG9ydGN1dC5jb250cm9sID0gZmFsc2U7 CisgICAgICBleHBlY3Qoa2V5Ym9hcmRTaG9ydGN1dHMuc2hvcnRjdXRfdGl0bGUoCisgICAgICAg ICdUaXRsZScsIHNob3J0Y3V0KSkudG9CZShnZXR0ZXh0KCdUaXRsZSAoU2hpZnQrQSknKSk7CisK KyAgICAgIHNob3J0Y3V0LmFsdCA9IGZhbHNlLCBzaG9ydGN1dC5zaGlmdCA9IGZhbHNlLCBzaG9y dGN1dC5jb250cm9sID0gdHJ1ZTsKKyAgICAgIGV4cGVjdChrZXlib2FyZFNob3J0Y3V0cy5zaG9y dGN1dF90aXRsZSgKKyAgICAgICAgJ1RpdGxlJywgc2hvcnRjdXQpKS50b0JlKGdldHRleHQoJ1Rp dGxlIChDdHJsK0EpJykpOworCisgICAgICBzaG9ydGN1dC5hbHQgPSB0cnVlLCBzaG9ydGN1dC5z aGlmdCA9IHRydWUsIHNob3J0Y3V0LmNvbnRyb2wgPSB0cnVlOworICAgICAgZXhwZWN0KGtleWJv YXJkU2hvcnRjdXRzLnNob3J0Y3V0X3RpdGxlKAorICAgICAgICAnVGl0bGUnLCBzaG9ydGN1dCkp LnRvQmUoZ2V0dGV4dCgnVGl0bGUgKEFsdCtTaGlmdCtDdHJsK0EpJykpOworICAgIH0pOworICB9 KTsKKwogICBmdW5jdGlvbiBleHBlY3RFdmVudFByb3BhZ2F0aW9uVG9TdG9wKCkgewogICAgIGRl c2NyaWJlKCdzdG9wcyBhbGwgZXZlbnQgcHJvcG9nYXRpb24nLCAoKSA9PiB7CiAKZGlmZiAtLWdp dCBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvc3FsZWRpdG9yX3V0aWxzX3NwZWMuanMgYi93 ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NxbGVkaXRvcl91dGlsc19zcGVjLmpzCmluZGV4IGM3 MzhmODJhLi43NWMzNGFmYyAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9z cWxlZGl0b3JfdXRpbHNfc3BlYy5qcworKysgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3Nx bGVkaXRvcl91dGlsc19zcGVjLmpzCkBAIC0yOCw1ICsyOCwxMyBAQCBmdW5jdGlvbiAoU3FsRWRp dG9yVXRpbHMpIHsKICAgICAgICAgZXhwZWN0KFNxbEVkaXRvclV0aWxzLmNhcGl0YWxpemVGaXJz dExldHRlcignY3JlYXRlIHNjcmlwdCcpKS50b0VxdWFsKCdDcmVhdGUgc2NyaXB0Jyk7CiAgICAg ICB9KTsKICAgICB9KTsKKworICAgIGRlc2NyaWJlKCdDYWxjdWxhdGUgZm9udCBzaXplIG9mIGlu cHV0IG51bWJlciBwYXNzZWQnLCBmdW5jdGlvbiAoKSB7CisgICAgICBpdCgnY2FsY0ZvbnRTaXpl JywgZnVuY3Rpb24gKCkgeworICAgICAgICBleHBlY3QoU3FsRWRpdG9yVXRpbHMuY2FsY0ZvbnRT aXplKDEuNDU2KSkudG9FcXVhbCgnMS40NmVtJyk7CisgICAgICAgIGV4cGVjdChTcWxFZGl0b3JV dGlscy5jYWxjRm9udFNpemUoKSkudG9FcXVhbCgnMGVtJyk7CisgICAgICAgIGV4cGVjdChTcWxF ZGl0b3JVdGlscy5jYWxjRm9udFNpemUoMikpLnRvRXF1YWwoJzJlbScpOworICAgICAgfSk7Cisg ICAgfSk7CiAgIH0pOwogfSk7CmRpZmYgLS1naXQgYS93ZWIvd2VicGFjay5zaGltLmpzIGIvd2Vi L3dlYnBhY2suc2hpbS5qcwppbmRleCBjMTJlN2YzYi4uNDFiZjEwMzMgMTAwNjQ0Ci0tLSBhL3dl Yi93ZWJwYWNrLnNoaW0uanMKKysrIGIvd2ViL3dlYnBhY2suc2hpbS5qcwpAQCAtMTI0LDYgKzEy NCw3IEBAIHZhciB3ZWJwYWNrU2hpbUNvbmZpZyA9IHsKICAgICAnYnVuZGxlZF9jb2RlbWlycm9y JzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi9zdGF0aWMvYnVuZGxlL2NvZGVtaXJy b3InKSwKICAgICAnYnVuZGxlZF9icm93c2VyJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdh ZG1pbi9zdGF0aWMvYnVuZGxlL2Jyb3dzZXInKSwKICAgICAnc291cmNlcyc6IHBhdGguam9pbihf X2Rpcm5hbWUsICcuL3BnYWRtaW4vc3RhdGljL2pzJyksCisgICAgJ3NvdXJjZXNqc3gnOiBwYXRo LmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL3N0YXRpYy9qc3gnKSwKICAgICAncGdhZG1pbic6 IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vc3RhdGljL2pzL3BnYWRtaW4nKSwKICAg ICAndHJhbnNsYXRpb25zJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi90b29scy90 ZW1wbGF0ZXMvanMvdHJhbnNsYXRpb25zJyksCiAgICAgJ3NvdXJjZXMvZ2V0dGV4dCc6IHBhdGgu am9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vc3RhdGljL2pzL2dldHRleHQnKSwKQEAgLTE3OSw2 ICsxODAsNyBAQCB2YXIgd2VicGFja1NoaW1Db25maWcgPSB7CiAgICAgJ3BnYWRtaW4uYnJvd3Nl ci5lcnJvcic6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMv anMvZXJyb3InKSwKICAgICAncGdhZG1pbi5icm93c2VyLmZyYW1lJzogcGF0aC5qb2luKF9fZGly bmFtZSwgJy4vcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9mcmFtZScpLAogICAgICdwZ2FkbWlu LmJyb3dzZXIua2V5Ym9hcmQnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL2Jyb3dz ZXIvc3RhdGljL2pzL2tleWJvYXJkJyksCisgICAgJ3BnYWRtaW4uYnJvd3Nlci5wcmVmZXJlbmNl cyc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvcHJl ZmVyZW5jZXMnKSwKICAgICAncGdhZG1pbi5icm93c2VyLm1lbnUnOiBwYXRoLmpvaW4oX19kaXJu YW1lLCAnLi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL21lbnUnKSwKICAgICAncGdhZG1pbi5i cm93c2VyLm1lc3NhZ2VzJzogJy9icm93c2VyL2pzL21lc3NhZ2VzJywKICAgICAncGdhZG1pbi5i cm93c2VyLm5vZGUnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL2Jyb3dzZXIvc3Rh dGljL2pzL25vZGUnKSwKZGlmZiAtLWdpdCBhL3dlYi93ZWJwYWNrLnRlc3QuY29uZmlnLmpzIGIv d2ViL3dlYnBhY2sudGVzdC5jb25maWcuanMKaW5kZXggZWY4OTNlMGIuLjc1NzEwN2NhIDEwMDY0 NAotLS0gYS93ZWIvd2VicGFjay50ZXN0LmNvbmZpZy5qcworKysgYi93ZWIvd2VicGFjay50ZXN0 LmNvbmZpZy5qcwpAQCAtODMsNiArODMsNyBAQCBtb2R1bGUuZXhwb3J0cyA9IHsKICAgICAgICdw Z2FkbWluLmJhY2tmb3JtJzogc291cmNlc0RpciArICcvanMvYmFja2Zvcm0ucGdhZG1pbicsCiAg ICAgICAncGdicm93c2VyJzogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3JlZ3Jlc3Npb24vamF2 YXNjcmlwdC9mYWtlX2Jyb3dzZXInKSwKICAgICAgICdwZ2FkbWluLnNjaGVtYS5kaXInOiBwYXRo LnJlc29sdmUoX19kaXJuYW1lLCAncGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9zdGF0aWMvanMnKSwKKyAgICAgICdwZ2FkbWluLmJyb3dzZXIu cHJlZmVyZW5jZXMnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL2Jyb3dzZXIvc3Rh dGljL2pzL3ByZWZlcmVuY2VzJyksCiAgICAgfSwKICAgfSwKIH07Cg== --0000000000007c6c89057028ee93--