Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hgquR-0005Vq-3Z for pgadmin-hackers@arkaria.postgresql.org; Fri, 28 Jun 2019 13:27:23 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hgquO-0007rT-1L for pgadmin-hackers@arkaria.postgresql.org; Fri, 28 Jun 2019 13:27:20 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hgquN-0007nT-B0 for pgadmin-hackers@lists.postgresql.org; Fri, 28 Jun 2019 13:27:19 +0000 Received: from mail-lj1-x241.google.com ([2a00:1450:4864:20::241]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hgquJ-0001Nu-FW for pgadmin-hackers@postgresql.org; Fri, 28 Jun 2019 13:27:17 +0000 Received: by mail-lj1-x241.google.com with SMTP id 16so5961012ljv.10 for ; Fri, 28 Jun 2019 06:27:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ndPWRSKY1c8XQPG9pcWR79PL+FkUZfM4EKqm0EKaclI=; b=G7F+AI8JNV7h5xKm7rIzBTxtAkTz/iplYU64MeP2DQ2N1GTGNUmdPsQrI7NBZQv0wP AiCWp/0dDrRP5I8GpvS4j/VvmLnjAXCuZZu8TZeqNTegFNZ2/2khxL0ZKoE5zzcKL0/k OuKW9B591bWOYhy1QaDzfPYaCNpeCtuPlg/2ufVszbocn9i+hkkKEWlsJDYXtkiOuaTR yTPXQQDxScwTbbEM66ZkubqKT4/kHczwjSvsIq0pIHT22MN2uktTz4HOunLHfehSxr0N fSYqrOmg1ruuSwMy46Us0uutC50pIACsjd1acqEX60KdA8hG8vys3LxNTE3X+GcrtQ6d vTBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ndPWRSKY1c8XQPG9pcWR79PL+FkUZfM4EKqm0EKaclI=; b=Z/Zc2xGvh0b3CRPyPWdqv7TWkiWp56s0hmZE8g7VHBOJKEl0f43yCki/bho57MwT2T wA7seqiQplYVfb25H8w3DQRVPPJq6fjPuutpQoWAT2Yr/CakK1ejpW8SsRq/h0a0N7kh 5lgvqPiyfE2IfbyEhZkqi9wYV75nP1hmzhLhK53O8++iaLR2S+C93a2tdVxC0mP8ih2M vMRJXwkKy8GOt99YkAnw7NX3z+YggpdmZHn+/M5eTjkYbYywGzQH5m/Naq+MpLQavkNa 5CkEDDUMBH07aOLFMQANXUgSqYIgcrwovNaqfUquVb/0uyCWT+8fCmUbOomtvD+VUHcD kJbQ== X-Gm-Message-State: APjAAAWQfXIHdoNexA1tv1xBvokZ2bJUzUO2+kdJL84M0h/0dhDXzRTu o4LGoi1cKLEe5BWJXOKvwudCp648Higw3/Z0oTOIOQ== X-Google-Smtp-Source: APXvYqyD7tGnSgv66L8rviW/pyHYd4+AlE9Hru1ZrMWh9gv2kXGcYmL/vUNAEjFm9I3Uj9BFR9hx/2CBJBJYjHfONWs= X-Received: by 2002:a2e:5c09:: with SMTP id q9mr6287392ljb.120.1561728433677; Fri, 28 Jun 2019 06:27:13 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Aditya Toshniwal Date: Fri, 28 Jun 2019 18:56:37 +0530 Message-ID: Subject: Re: [pgAdmin][RM4335] Add EXPLAIN option SETTINGS and SUMMARY To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000869adf058c623ccb" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000869adf058c623ccb Content-Type: multipart/alternative; boundary="000000000000869adb058c623cc9" --000000000000869adb058c623cc9 Content-Type: text/plain; charset="UTF-8" Hi Hackers, Attached is the updated patch to fix the review comments of trailing mail. Kindly review. On Thu, Jun 27, 2019 at 4:49 PM Dave Page wrote: > Hi > > On Thu, Jun 27, 2019 at 12:32 AM Aditya Toshniwal < > aditya.toshniwal@enterprisedb.com> wrote: > >> Hi, >> >> On Wed, Jun 26, 2019 at 8:22 PM Dave Page wrote: >> >>> Hi >>> >>> Something isn't working correctly - I turned on the summary option, and >>> this is the query that was run when I hit the EXPLAIN button: >>> >>> EXPLAIN (FORMAT JSON,ANALYZE False,VERBOSE False,COSTS False,TIMING >>> False,SUMMARY False,BUFFERS False) select * from pg_tables >>> >> >>> Aside from the formatting (s/True/true, s/False/false, missing spaces >>> etc), shouldn't it say SUMMARY true? I've cleared the browser and bundle >>> caches, rebundled etc. >>> >> I think I misunderstood the documents - >> https://www.postgresql.org/docs/12/sql-explain.html. Few of the >> parameters are applicable only to EXPLAIN ANALYSE and not to EXPLAIN. Will >> make the changes, along with formatting to existing codes as well. >> > > I'm not sure that explains why the summary option is set to *false* for an > EXPLAIN action, but anyway, please make sure it works :-) > > >> >>> Shouldn't there also be documentation updates? >>> >> Yeah. (I always miss that :/) >> >>> >>> On Wed, Jun 26, 2019 at 7:59 AM Aditya Toshniwal < >>> aditya.toshniwal@enterprisedb.com> wrote: >>> >>>> Hi Hackers, >>>> >>>> Attached is the patch to add support for SETTINGS(v12+) and >>>> SUMMARY(v10+) explain options. These options will be visible only if >>>> version is supported. >>>> >>>> I have also created and fixed RM4395. The explain options changed on >>>> one query tool should not change explain options on other query tools or >>>> preferences. The initial values will be taken from preferences are usual. >>>> >>>> Kindly review. >>>> >>>> -- >>>> Thanks and Regards, >>>> Aditya Toshniwal >>>> Software Engineer | EnterpriseDB India | 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 India | 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 India | Pune "Don't Complain about Heat, Plant a TREE" --000000000000869adb058c623cc9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

Attached is the updated patch to fix the revie= w comments of trailing mail.
Kindly review.

On Thu, Jun 27, 2019 at 4:= 49 PM Dave Page <dpage@pgadmin.org<= /a>> wrote:
<= div dir=3D"ltr">
Hi

Hi,

On Wed, Jun 26, = 2019 at 8:22 PM Dave Page <dpage@pgadmin.org> wrote:
Hi

Somethi= ng isn't working correctly - I turned on the summary option, and this i= s the query that was run when I hit the EXPLAIN button:

EXPLAIN (FORMAT JSON,ANALYZE False,VERBOSE False,COSTS False,TIMING F= alse,SUMMARY False,BUFFERS False) select * from pg_tables
<= div>

Aside from the formatting (s/True/true, s/Fal= se/false, missing spaces etc), shouldn't it say SUMMARY true? I've = cleared the browser and bundle caches, rebundled etc.
I think I misunderstood the documents -=C2=A0https://www.= postgresql.org/docs/12/sql-explain.html. Few of the parameters are applicab= le only to EXPLAIN ANALYSE and not to EXPLAIN. Will make the changes, along= with formatting to existing codes as well.=C2=A0
<= /blockquote>

I'm not sure that explains why the summ= ary option is set to *false* for an EXPLAIN action, but anyway, please make= sure it works :-)
=C2=A0

Sho= uldn't there also be documentation updates?
Ye= ah. (I always miss that :/)=C2=A0

On Wed, Jun 26, 2019 at 7:59 AM Aditya Toshniwal <aditya.tos= hniwal@enterprisedb.com> wrote:
Hi Hackers,
<= br>Attached is the patch to add support for SETTINGS(v12+) and SUMMARY(v10+= ) explain options. These options will be visible only if version is support= ed.

I have also created and fixed RM4395. T= he explain options changed on one query tool should not change explain opti= ons on other query tools or preferences. The initial values will be taken f= rom preferences are usual.

Kindly review.

--
Thanks and Regards,
Ad= itya Toshniwal
<= span style=3D"background-color:rgb(255,255,255)">Software Engineer |=C2=A0EnterpriseDB India |=C2=A0<= span style=3D"color:rgb(0,0,0)">Pune
"Don't Complain = about Heat, Plant a TREE"


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

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


--
Thanks and Regards= ,
Aditya Toshniwal
Software E= ngineer |=C2=A0EnterpriseDB India |=C2=A0Pune
"Don't Complain about Heat, Plant a= TREE"


--
Dave Page
Blog: <= a href=3D"http://pgsnake.blogspot.com" target=3D"_blank">http://pgsnake.blo= gspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.comThe Enterprise PostgreSQL Company


--
Adi= tya Toshniwal
Software Engineer |=C2=A0EnterpriseDB India |=C2=A0Pune
"Don't Complain a= bout Heat, Plant a TREE"
--000000000000869adb058c623cc9-- --000000000000869adf058c623ccb Content-Type: application/octet-stream; name="RM4335_4395_v2.patch" Content-Disposition: attachment; filename="RM4335_4395_v2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jxg4rcap0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9rZXlib2FyZF9zaG9ydGN1dHMuanMg Yi93ZWIvcGdhZG1pbi9zdGF0aWMvanMva2V5Ym9hcmRfc2hvcnRjdXRzLmpzCmluZGV4IGM1NjVi ODYyLi4xMDFhZmY1YiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2tleWJvYXJk X3Nob3J0Y3V0cy5qcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMva2V5Ym9hcmRfc2hvcnRj dXRzLmpzCkBAIC0yODIsOCArMjgyLDkgQEAgZnVuY3Rpb24ga2V5Ym9hcmRTaG9ydGN1dHNRdWVy eVRvb2woCiAgICAgICAgIGN1cnJMaSA9IGN1cnJMaS5uZXh0KCk7CiAgICAgICB9CiAKLSAgICAg IC8qZG8gbm90IGZvY3VzIG9uIGRpdmlkZXIgYW5kIGRpc2FibGVkICovCisgICAgICAvKmRvIG5v dCBmb2N1cyBvbiBkaXZpZGVyLCBkaXNhYmxlZCBhbmQgZC1ub25lICovCiAgICAgICB3aGlsZShj dXJyTGkuaGFzQ2xhc3MoJ2Ryb3Bkb3duLWRpdmlkZXInKQorICAgICAgICB8fCBjdXJyTGkuaGFz Q2xhc3MoJ2Qtbm9uZScpCiAgICAgICAgIHx8IGN1cnJMaS5maW5kKCcuZHJvcGRvd24taXRlbScp LmZpcnN0KCkuaGFzQ2xhc3MoJ2Rpc2FibGVkJykpIHsKICAgICAgICAgaWYoa2V5Q29kZSA9PT0g VVBfS0VZKSB7CiAgICAgICAgICAgY3VyckxpID0gY3VyckxpLnByZXYoKTsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9hY3Rpb25zLmpzIGIv d2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9xdWVyeV90b29sX2FjdGlvbnMuanMKaW5k ZXggNzczOWU5YjUuLmQzZjZkOWUxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMv c3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfYWN0aW9ucy5qcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMv anMvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfYWN0aW9ucy5qcwpAQCAtMjYsNiArMjYsMTQgQEAgbGV0 IHF1ZXJ5VG9vbEFjdGlvbnMgPSB7CiAgICAgcmV0dXJuICEkKCcuZXhwbGFpbi10aW1pbmcnKS5o YXNDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKICAgfSwKIAorICBfc3VtbWFyeTogZnVuY3Rp b24gKCkgeworICAgIHJldHVybiAhJCgnLmV4cGxhaW4tc3VtbWFyeScpLmhhc0NsYXNzKCd2aXNp YmlsaXR5LWhpZGRlbicpOworICB9LAorCisgIF9zZXR0aW5nczogZnVuY3Rpb24gKCkgeworICAg IHJldHVybiAhJCgnLmV4cGxhaW4tc2V0dGluZ3MnKS5oYXNDbGFzcygndmlzaWJpbGl0eS1oaWRk ZW4nKTsKKyAgfSwKKwogICBfY2xlYXJNZXNzYWdlVGFiOiBmdW5jdGlvbiAoKSB7CiAgICAgJCgn LnNxbC1lZGl0b3ItbWVzc2FnZScpLmh0bWwoJycpOwogICB9LApAQCAtNDEsMzYgKzQ5LDMxIEBA IGxldCBxdWVyeVRvb2xBY3Rpb25zID0gewogICB9LAogCiAgIGV4cGxhaW5BbmFseXplOiBmdW5j dGlvbiAoc3FsRWRpdG9yQ29udHJvbGxlcikgewotICAgIGxldCBjb3N0RW5hYmxlZCA9IHRoaXMu X2Nvc3RzRW5hYmxlZCgpOwotICAgIGxldCB2ZXJib3NlID0gdGhpcy5fdmVyYm9zZSgpOwotICAg IGxldCBidWZmZXJzID0gdGhpcy5fYnVmZmVycygpOwotICAgIGxldCB0aW1pbmcgPSB0aGlzLl90 aW1pbmcoKTsKICAgICBjb25zdCBleHBsYWluT2JqZWN0ID0gewogICAgICAgZm9ybWF0OiAnanNv bicsCiAgICAgICBhbmFseXplOiB0cnVlLAotICAgICAgdmVyYm9zZTogdmVyYm9zZSwKLSAgICAg IGNvc3RzOiBjb3N0RW5hYmxlZCwKLSAgICAgIGJ1ZmZlcnM6IGJ1ZmZlcnMsCi0gICAgICB0aW1p bmc6IHRpbWluZywKLSAgICAgIHN1bW1hcnk6IGZhbHNlLAorICAgICAgdmVyYm9zZTogdGhpcy5f dmVyYm9zZSgpLAorICAgICAgY29zdHM6IHRoaXMuX2Nvc3RzRW5hYmxlZCgpLAorICAgICAgYnVm ZmVyczogdGhpcy5fYnVmZmVycygpLAorICAgICAgdGltaW5nOiB0aGlzLl90aW1pbmcoKSwKKyAg ICAgIHN1bW1hcnk6IHRoaXMuX3N1bW1hcnkoKSwKKyAgICAgIHNldHRpbmdzOiB0aGlzLl9zZXR0 aW5ncygpLAogICAgIH07CiAgICAgdGhpcy5fY2xlYXJNZXNzYWdlVGFiKCk7CiAgICAgc3FsRWRp dG9yQ29udHJvbGxlci5leGVjdXRlKGV4cGxhaW5PYmplY3QpOwogICB9LAogCiAgIGV4cGxhaW46 IGZ1bmN0aW9uIChzcWxFZGl0b3JDb250cm9sbGVyKSB7Ci0gICAgbGV0IGNvc3RFbmFibGVkID0g dGhpcy5fY29zdHNFbmFibGVkKCk7Ci0gICAgbGV0IHZlcmJvc2UgPSB0aGlzLl92ZXJib3NlKCk7 Ci0KICAgICAvLyBsZXQgZXhwbGFpblF1ZXJ5ID0gYEVYUExBSU4gKEZPUk1BVCBKU09OLCBBTkFM WVpFIE9GRiwgVkVSQk9TRSAke3ZlcmJvc2V9LCBDT1NUUyAke2Nvc3RFbmFibGVkfSwgQlVGRkVS UyBPRkYsIFRJTUlORyBPRkYpIGA7CiAgICAgY29uc3QgZXhwbGFpbk9iamVjdCA9IHsKICAgICAg IGZvcm1hdDogJ2pzb24nLAogICAgICAgYW5hbHl6ZTogZmFsc2UsCi0gICAgICB2ZXJib3NlOiB2 ZXJib3NlLAotICAgICAgY29zdHM6IGNvc3RFbmFibGVkLAorICAgICAgdmVyYm9zZTogdGhpcy5f dmVyYm9zZSgpLAorICAgICAgY29zdHM6IHRoaXMuX2Nvc3RzRW5hYmxlZCgpLAogICAgICAgYnVm ZmVyczogZmFsc2UsCiAgICAgICB0aW1pbmc6IGZhbHNlLAotICAgICAgc3VtbWFyeTogZmFsc2Us CisgICAgICBzdW1tYXJ5OiB0aGlzLl9zdW1tYXJ5KCksCisgICAgICBzZXR0aW5nczogdGhpcy5f c2V0dGluZ3MoKSwKICAgICB9OwogICAgIHRoaXMuX2NsZWFyTWVzc2FnZVRhYigpOwogICAgIHNx bEVkaXRvckNvbnRyb2xsZXIuZXhlY3V0ZShleHBsYWluT2JqZWN0KTsKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9wcmVmZXJlbmNlcy5qcyBi L3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9wcmVmZXJlbmNlcy5q cwppbmRleCBjMzkwNmFhYS4uN2ZkMTliNDAgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3N0YXRp Yy9qcy9zcWxlZGl0b3IvcXVlcnlfdG9vbF9wcmVmZXJlbmNlcy5qcworKysgYi93ZWIvcGdhZG1p bi9zdGF0aWMvanMvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfcHJlZmVyZW5jZXMuanMKQEAgLTEzNCw2 ICsxMzQsMjAgQEAgZnVuY3Rpb24gdXBkYXRlVUlQcmVmZXJlbmNlcyhzcWxFZGl0b3IpIHsKICAg ICAkZWwuZmluZCgnLmV4cGxhaW4tdGltaW5nJykuYWRkQ2xhc3MoJ3Zpc2liaWxpdHktaGlkZGVu Jyk7CiAgIH0KIAorICBpZiAocHJlZmVyZW5jZXMuZXhwbGFpbl9zdW1tYXJ5KSB7CisgICAgJGVs LmZpbmQoJy5leHBsYWluLXN1bW1hcnknKS5yZW1vdmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4n KTsKKyAgfQorICBlbHNlIHsKKyAgICAkZWwuZmluZCgnLmV4cGxhaW4tc3VtbWFyeScpLmFkZENs YXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOworICB9CisKKyAgaWYgKHByZWZlcmVuY2VzLmV4cGxh aW5fc2V0dGluZ3MpIHsKKyAgICAkZWwuZmluZCgnLmV4cGxhaW4tc2V0dGluZ3MnKS5yZW1vdmVD bGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKKyAgfQorICBlbHNlIHsKKyAgICAkZWwuZmluZCgn LmV4cGxhaW4tc2V0dGluZ3MnKS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKKyAgfQor CiAgIC8qIENvbm5lY3Rpb24gc3RhdHVzIGNoZWNrICovCiAgIC8qIHJlbW92ZSB0aGUgc3RhdHVz IGNoZWNrZXIgaWYgcHJlc2VudCAqLwogICBpZihzcWxFZGl0b3IuY29ubkludGVydmFsSWQgIT0g bnVsbCkgewpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvX19pbml0X18u cHkgYi93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC9fX2luaXRfXy5weQppbmRleCBmYmM4NDJm Yy4uZTg3NzkzNTEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL19faW5p dF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL19faW5pdF9fLnB5CkBAIC0y MzQsNiArMjM0LDExIEBAIGRlZiBwYW5lbCh0cmFuc19pZCwgaXNfcXVlcnlfdG9vbCwgZWRpdG9y X3RpdGxlKToKICAgICBlbHNlOgogICAgICAgICBzZXJ2ZXJfdHlwZSA9IE5vbmUKIAorICAgIGlm IHJlcXVlc3QuYXJncyBhbmQgJ3NlcnZlcl92ZXInIGluIHJlcXVlc3QuYXJnczoKKyAgICAgICAg c2VydmVyX3ZlciA9IHJlcXVlc3QuYXJnc1snc2VydmVyX3ZlciddCisgICAgZWxzZToKKyAgICAg ICAgc2VydmVyX3ZlciA9IDAKKwogICAgICMgSWYgdGl0bGUgaGFzIHNsYXNoKGVzKSBpbiBpdCB0 aGVuIHJlcGxhY2UgaXQKICAgICBpZiByZXF1ZXN0LmFyZ3MgYW5kIHJlcXVlc3QuYXJnc1snZnNs YXNoZXMnXSAhPSAnJzoKICAgICAgICAgdHJ5OgpAQCAtMzExLDYgKzMxNiw3IEBAIGRlZiBwYW5l bCh0cmFuc19pZCwgaXNfcXVlcnlfdG9vbCwgZWRpdG9yX3RpdGxlKToKICAgICAgICAgaXNfZGVz a3RvcF9tb2RlPWFwcC5QR0FETUlOX1JVTlRJTUUsCiAgICAgICAgIGlzX2xpbnV4PWlzX2xpbnV4 X3BsYXRmb3JtLAogICAgICAgICBzZXJ2ZXJfdHlwZT1zZXJ2ZXJfdHlwZSwKKyAgICAgICAgc2Vy dmVyX3Zlcj1zZXJ2ZXJfdmVyLAogICAgICAgICBjbGllbnRfcGxhdGZvcm09dXNlcl9hZ2VudC5w bGF0Zm9ybSwKICAgICAgICAgYmdjb2xvcj1iZ2NvbG9yLAogICAgICAgICBmZ2NvbG9yPWZnY29s b3IsCkBAIC00MDgsNyArNDE0LDggQEAgZGVmIGluaXRpYWxpemVfcXVlcnlfdG9vbChzZ2lkLCBz aWQsIGRpZD1Ob25lKToKIAogICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCiAgICAgICAg IGRhdGE9ewotICAgICAgICAgICAgJ2dyaWRUcmFuc0lkJzogdHJhbnNfaWQKKyAgICAgICAgICAg ICdncmlkVHJhbnNJZCc6IHRyYW5zX2lkLAorICAgICAgICAgICAgJ3NlcnZlclZlcnNpb24nOiBt YW5hZ2VyLnZlcnNpb24sCiAgICAgICAgIH0KICAgICApCiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL3Rvb2xzL2RhdGFncmlkL3N0YXRpYy9qcy9kYXRhZ3JpZC5qcyBiL3dlYi9wZ2FkbWluL3Rv b2xzL2RhdGFncmlkL3N0YXRpYy9qcy9kYXRhZ3JpZC5qcwppbmRleCBjYzA5NTE5NC4uYTQwNWI3 ZGUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3N0YXRpYy9qcy9kYXRh Z3JpZC5qcworKysgYi93ZWIvcGdhZG1pbi90b29scy9kYXRhZ3JpZC9zdGF0aWMvanMvZGF0YWdy aWQuanMKQEAgLTI3NSw2ICsyNzUsNyBAQCBkZWZpbmUoJ3BnYWRtaW4uZGF0YWdyaWQnLCBbCiAg ICAgICAgICAgYmFzZVVybCA9IHVybF9mb3IoJ2RhdGFncmlkLnBhbmVsJywgdXJsX3BhcmFtcykg KwogICAgICAgICAgICAgJz8nICsgJ3F1ZXJ5X3VybD0nICsgZW5jb2RlVVJJKHRyYW5zX29iai5z VVJMKSArCiAgICAgICAgICAgICAnJnNlcnZlcl90eXBlPScgKyBlbmNvZGVVUklDb21wb25lbnQo dHJhbnNfb2JqLnNlcnZlcl90eXBlKSArCisgICAgICAgICAgICAnJnNlcnZlcl92ZXI9JyArIHRy YW5zX29iai5zZXJ2ZXJWZXJzaW9uKwogICAgICAgICAgICAgJyZmc2xhc2hlcz0nICsgdGl0aWxl Rm9yVVJMT2JqLnNsYXNoTG9jYXRpb25zOwogCiAgICAgICAgIGlmIChzZWxmLnByZWZlcmVuY2Vz Lm5ld19icm93c2VyX3RhYikgewpAQCAtMjgzLDEyICsyODQsNiBAQCBkZWZpbmUoJ3BnYWRtaW4u ZGF0YWdyaWQnLCBbCiAgICAgICAgICAgLy8gYWRkIGEgbG9hZCBsaXN0ZW5lciB0byB0aGUgd2lu ZG93IHNvIHRoYXQgdGhlIHRpdGxlIGdldHMgY2hhbmdlZCBvbiBwYWdlIGxvYWQKICAgICAgICAg ICBuZXdXaW4uYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uKCkgewogICAgICAgICAg ICAgbmV3V2luLmRvY3VtZW50LnRpdGxlID0gcGFuZWxfdGl0bGU7Ci0KLSAgICAgICAgICAgIC8q IFNldCB0aGUgaW5pdGlhbCB2ZXJzaW9uIG9mIHByZWYgY2FjaGUgdGhlIG5ldyB3aW5kb3cgaXMg aGF2aW5nCi0gICAgICAgICAgICAgKiBUaGlzIHdpbGwgYmUgdXNlZCBieSB0aGUgcG9sbGVyIHRv IGNvbXBhcmUgd2l0aCB3aW5kb3cgb3BlbmVycwotICAgICAgICAgICAgICogcHJlZiBjYWNoZSB2 ZXJzaW9uCi0gICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIC8vbmV3V2luLnBnQWRtaW4uQnJv d3Nlci5wcmVmZXJlbmNlX3ZlcnNpb24ocGdCcm93c2VyLnByZWZlcmVuY2VfdmVyc2lvbigpKTsK ICAgICAgICAgICB9KTsKIAogICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vdG9vbHMvZGF0YWdyaWQvdGVtcGxhdGVzL2RhdGFncmlkL2luZGV4Lmh0bWwgYi93ZWIvcGdh ZG1pbi90b29scy9kYXRhZ3JpZC90ZW1wbGF0ZXMvZGF0YWdyaWQvaW5kZXguaHRtbAppbmRleCBm MTM4YjlhNC4uNjViNmM0ZWMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlk L3RlbXBsYXRlcy9kYXRhZ3JpZC9pbmRleC5odG1sCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2Rh dGFncmlkL3RlbXBsYXRlcy9kYXRhZ3JpZC9pbmRleC5odG1sCkBAIC0yODUsNiArMjg1LDE4IEBA CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IF8oJ1RpbWluZycpIH19IDwv c3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAg PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpIGRhdGEtbWluLXZlcj0iMTAwMDAwIj4KKyAg ICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJkcm9wZG93bi1pdGVtIiBpZD0iYnRuLWV4 cGxhaW4tc3VtbWFyeSIgaHJlZj0iIyIgdGFiaW5kZXg9IjAiPgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDxpIGNsYXNzPSJleHBsYWluLXN1bW1hcnkgZmEgZmEtY2hlY2sgdmlzaWJpbGl0 eS1oaWRkZW4iIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPHNwYW4+IHt7IF8oJ1N1bW1hcnknKSB9fSA8L3NwYW4+CisgICAgICAgICAgICAgICAg ICAgICAgICA8L2E+CisgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAg ICAgIDxsaSBkYXRhLW1pbi12ZXI9IjEyMDAwMCI+CisgICAgICAgICAgICAgICAgICAgICAgICA8 YSBjbGFzcz0iZHJvcGRvd24taXRlbSIgaWQ9ImJ0bi1leHBsYWluLXNldHRpbmdzIiBocmVmPSIj IiB0YWJpbmRleD0iMCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImV4 cGxhaW4tc2V0dGluZ3MgZmEgZmEtY2hlY2sgdmlzaWJpbGl0eS1oaWRkZW4iIGFyaWEtaGlkZGVu PSJ0cnVlIj48L2k+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IF8oJ1Nl dHRpbmdzJykgfX0gPC9zcGFuPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgorICAgICAg ICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICA8 L2Rpdj4KICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bi1ncm91cCBtci0xIiByb2xlPSJncm91 cCIgYXJpYS1sYWJlbD0iIj4KQEAgLTQxMiw3ICs0MjQsOCBAQAogICAgICAgICBzY3JpcHRfdHlw ZV91cmwsCiAgICAgICAgICJ7eyBzZXJ2ZXJfdHlwZSB9fSIsCiAgICAgICAgIHt7IHVybF9wYXJh bXN8c2FmZX19LAotICAgICAgICAne3sgbGF5b3V0fHNhZmUgfX0nCisgICAgICAgICd7eyBsYXlv dXR8c2FmZSB9fScsCisgICAgICAgIHt7IHNlcnZlcl92ZXIgfX0KICAgICApOwogfSk7CiB7JSBl bmRibG9jayAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL19faW5p dF9fLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL19faW5pdF9fLnB5CmluZGV4IGFj OTIzYTU1Li4xZDI3OTZlYyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9y L19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9fX2luaXRfXy5w eQpAQCAtOTUsNyArOTUsNiBAQCBjbGFzcyBTcWxFZGl0b3JNb2R1bGUoUGdBZG1pbk1vZHVsZSk6 CiAgICAgICAgIHJldHVybiBbCiAgICAgICAgICAgICAnc3FsZWRpdG9yLnZpZXdfZGF0YV9zdGFy dCcsCiAgICAgICAgICAgICAnc3FsZWRpdG9yLnF1ZXJ5X3Rvb2xfc3RhcnQnLAotICAgICAgICAg ICAgJ3NxbGVkaXRvci5xdWVyeV90b29sX3ByZWZlcmVuY2VzJywKICAgICAgICAgICAgICdzcWxl ZGl0b3IucG9sbCcsCiAgICAgICAgICAgICAnc3FsZWRpdG9yLmZldGNoJywKICAgICAgICAgICAg ICdzcWxlZGl0b3IuZmV0Y2hfYWxsJywKQEAgLTMzMCwzOCArMzI5LDYgQEAgZGVmIGV4dHJhY3Rf c3FsX2Zyb21fbmV0d29ya19wYXJhbWV0ZXJzKHJlcXVlc3RfZGF0YSwgcmVxdWVzdF9hcmd1bWVu dHMsCiAgICAgICAgIHJldHVybiByZXF1ZXN0X2FyZ3VtZW50cyBvciByZXF1ZXN0X2Zvcm1fZGF0 YQogCiAKLUBibHVlcHJpbnQucm91dGUoCi0gICAgJy9xdWVyeV90b29sL3ByZWZlcmVuY2VzLzxp bnQ6dHJhbnNfaWQ+JywKLSAgICBtZXRob2RzPVsiUFVUIl0sIGVuZHBvaW50PSdxdWVyeV90b29s X3ByZWZlcmVuY2VzJwotKQotQGxvZ2luX3JlcXVpcmVkCi1kZWYgcHJlZmVyZW5jZXModHJhbnNf aWQpOgotICAgICIiIgotICAgICAgICBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGdldC9wdXQgZXhw bGFpbiBvcHRpb25zIGZyb20vdG8gcHJlZmVyZW5jZXMKLQotICAgICAgICBBcmdzOgotICAgICAg ICAgICAgdHJhbnNfaWQ6IHVuaXF1ZSB0cmFuc2FjdGlvbiBpZAotICAgICIiIgotCi0gICAgZGF0 YSA9IE5vbmUKLSAgICBpZiByZXF1ZXN0LmRhdGE6Ci0gICAgICAgIGRhdGEgPSBqc29uLmxvYWRz KHJlcXVlc3QuZGF0YSwgZW5jb2Rpbmc9J3V0Zi04JykKLSAgICBlbHNlOgotICAgICAgICBkYXRh ID0gcmVxdWVzdC5hcmdzIG9yIHJlcXVlc3QuZm9ybQotICAgIGZvciBrLCB2IGluIGRhdGEuaXRl bXMoKToKLSAgICAgICAgdiA9IGJvb2wodikKLSAgICAgICAgaWYgayA9PSAnZXhwbGFpbl92ZXJi b3NlJzoKLSAgICAgICAgICAgIGJsdWVwcmludC5leHBsYWluX3ZlcmJvc2Uuc2V0KHYpCi0gICAg ICAgIGVsaWYgayA9PSAnZXhwbGFpbl9jb3N0cyc6Ci0gICAgICAgICAgICBibHVlcHJpbnQuZXhw bGFpbl9jb3N0cy5zZXQodikKLSAgICAgICAgZWxpZiBrID09ICdleHBsYWluX2J1ZmZlcnMnOgot ICAgICAgICAgICAgYmx1ZXByaW50LmV4cGxhaW5fYnVmZmVycy5zZXQodikKLSAgICAgICAgZWxp ZiBrID09ICdleHBsYWluX3RpbWluZyc6Ci0gICAgICAgICAgICBibHVlcHJpbnQuZXhwbGFpbl90 aW1pbmcuc2V0KHYpCi0KLSAgICByZXR1cm4gc3VjY2Vzc19yZXR1cm4oKQotCi0KIEBibHVlcHJp bnQucm91dGUoJy9wb2xsLzxpbnQ6dHJhbnNfaWQ+JywgbWV0aG9kcz1bIkdFVCJdLCBlbmRwb2lu dD0ncG9sbCcpCiBAbG9naW5fcmVxdWlyZWQKIGRlZiBwb2xsKHRyYW5zX2lkKToKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzIGIv d2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9qcy9zcWxlZGl0b3IuanMKaW5kZXgg OGJmMDQxZjYuLmY3ZjZmODk3IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0 b3Ivc3RhdGljL2pzL3NxbGVkaXRvci5qcworKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0 b3Ivc3RhdGljL2pzL3NxbGVkaXRvci5qcwpAQCAtODEsNiArODEsNyBAQCBkZWZpbmUoJ3Rvb2xz LnF1ZXJ5dG9vbCcsIFsKICAgICAgIHRoaXMuaGFuZGxlci5wcmVmZXJlbmNlcyA9IHRoaXMucHJl ZmVyZW5jZXM7CiAgICAgICB0aGlzLmNvbm5JbnRlcnZhbElkID0gbnVsbDsKICAgICAgIHRoaXMu bGF5b3V0ID0gb3B0cy5sYXlvdXQ7CisgICAgICB0aGlzLnNldF9zZXJ2ZXJfdmVyc2lvbihvcHRz LnNlcnZlcl92ZXIpOwogICAgIH0sCiAKICAgICAvLyBCaW5kIGFsbCB0aGUgZXZlbnRzCkBAIC0x MjEsNiArMTIyLDggQEAgZGVmaW5lKCd0b29scy5xdWVyeXRvb2wnLCBbCiAgICAgICAnY2xpY2sg I2J0bi1leHBsYWluLWNvc3RzJzogJ29uX2V4cGxhaW5fY29zdHMnLAogICAgICAgJ2NsaWNrICNi dG4tZXhwbGFpbi1idWZmZXJzJzogJ29uX2V4cGxhaW5fYnVmZmVycycsCiAgICAgICAnY2xpY2sg I2J0bi1leHBsYWluLXRpbWluZyc6ICdvbl9leHBsYWluX3RpbWluZycsCisgICAgICAnY2xpY2sg I2J0bi1leHBsYWluLXN1bW1hcnknOiAnb25fZXhwbGFpbl9zdW1tYXJ5JywKKyAgICAgICdjbGlj ayAjYnRuLWV4cGxhaW4tc2V0dGluZ3MnOiAnb25fZXhwbGFpbl9zZXR0aW5ncycsCiAgICAgICAn Y2hhbmdlIC5saW1pdCc6ICdvbl9saW1pdF9jaGFuZ2UnLAogICAgICAgJ2tleWRvd24nOiAna2V5 QWN0aW9uJywKICAgICAgIC8vIENvbW1lbnQgb3B0aW9ucwpAQCAtMTY2LDYgKzE2OSwyMiBAQCBk ZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgIGRvY2tlci5hZGRQYW5lbCgnbm90aWZp Y2F0aW9ucycsIHdjRG9ja2VyLkRPQ0suU1RBQ0tFRCwgZGF0YV9vdXRwdXRfcGFuZWwpOwogICAg IH0sCiAKKyAgICBzZXRfc2VydmVyX3ZlcnNpb246IGZ1bmN0aW9uKHNlcnZlcl92ZXIpIHsKKyAg ICAgIGxldCBzZWxmID0gdGhpczsKKyAgICAgIHNlbGYuc2VydmVyX3ZlciA9IHNlcnZlcl92ZXI7 CisKKyAgICAgIHRoaXMuJGVsLmZpbmQoJypbZGF0YS1taW4tdmVyXScpLm1hcChmdW5jdGlvbigp IHsKKyAgICAgICAgbGV0IG1pblZlciA9IDAsCisgICAgICAgICAgZWxlID0gJCh0aGlzKTsKKyAg ICAgICAgbWluVmVyID0gcGFyc2VJbnQoZWxlLmF0dHIoJ2RhdGEtbWluLXZlcicpKTsKKyAgICAg ICAgaWYobWluVmVyID4gc2VsZi5zZXJ2ZXJfdmVyKSB7CisgICAgICAgICAgZWxlLmFkZENsYXNz KCdkLW5vbmUnKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBlbGUucmVtb3ZlQ2xhc3Mo J2Qtbm9uZScpOworICAgICAgICB9CisgICAgICB9KTsKKyAgICB9LAorCiAgICAgLy8gVGhpcyBm dW5jdGlvbiBpcyB1c2VkIHRvIHJlbmRlciB0aGUgdGVtcGxhdGUuCiAgICAgcmVuZGVyOiBmdW5j dGlvbigpIHsKICAgICAgIHZhciBzZWxmID0gdGhpczsKQEAgLTE4NTUsNiArMTg3NCwzMSBAQCBk ZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICk7CiAgICAgfSwKIAorICAgIG9uX2V4 cGxhaW5fc3VtbWFyeTogZnVuY3Rpb24oZXYpIHsKKyAgICAgIHZhciBzZWxmID0gdGhpczsKKwor ICAgICAgdGhpcy5fc3RvcEV2ZW50UHJvcG9nYXRpb24oZXYpOworCisgICAgICBzZWxmLmhhbmRs ZXIudHJpZ2dlcigKKyAgICAgICAgJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpleHBsYWluLXN1 bW1hcnknLAorICAgICAgICBzZWxmLAorICAgICAgICBzZWxmLmhhbmRsZXIKKyAgICAgICk7Cisg ICAgfSwKKworICAgIG9uX2V4cGxhaW5fc2V0dGluZ3M6IGZ1bmN0aW9uKGV2KSB7CisgICAgICB2 YXIgc2VsZiA9IHRoaXM7CisKKyAgICAgIHRoaXMuX3N0b3BFdmVudFByb3BvZ2F0aW9uKGV2KTsK KworICAgICAgc2VsZi5oYW5kbGVyLnRyaWdnZXIoCisgICAgICAgICdwZ2FkbWluLXNxbGVkaXRv cjpidXR0b246ZXhwbGFpbi1zZXR0aW5ncycsCisgICAgICAgIHNlbGYsCisgICAgICAgIHNlbGYu aGFuZGxlcgorICAgICAgKTsKKyAgICB9LAorCisKICAgICBkb19ub3RfY2xvc2VfbWVudTogZnVu Y3Rpb24oZXYpIHsKICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpOwogICAgIH0sCkBAIC0yMTE3 LDcgKzIxNjEsNyBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICAqIGhlYWRl ciBhbmQgbG9hZGluZyBpY29uIGFuZCBzdGFydCBleGVjdXRpb24gb2YgdGhlIHNxbCBxdWVyeS4K ICAgICAgICAqLwogICAgICAgc3RhcnQ6IGZ1bmN0aW9uKHRyYW5zSWQsIGlzX3F1ZXJ5X3Rvb2ws IGVkaXRvcl90aXRsZSwgc2NyaXB0X3R5cGVfdXJsLAotICAgICAgICBzZXJ2ZXJfdHlwZSwgdXJs X3BhcmFtcywgbGF5b3V0CisgICAgICAgIHNlcnZlcl90eXBlLCB1cmxfcGFyYW1zLCBsYXlvdXQs IHNlcnZlcl92ZXIKICAgICAgICkgewogICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CiAKQEAgLTIx NDAsNiArMjE4NCw3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAgICAgIGVs OiBzZWxmLmNvbnRhaW5lciwKICAgICAgICAgICBoYW5kbGVyOiBzZWxmLAogICAgICAgICAgIGxh eW91dDogbGF5b3V0LAorICAgICAgICAgIHNlcnZlcl92ZXI6IHNlcnZlcl92ZXIsCiAgICAgICAg IH0pOwogICAgICAgICBzZWxmLnRyYW5zSWQgPSBzZWxmLmdyaWRWaWV3LnRyYW5zSWQgPSB0cmFu c0lkOwogCkBAIC0yMjMzLDYgKzIyNzgsOCBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsK ICAgICAgICAgc2VsZi5vbigncGdhZG1pbi1zcWxlZGl0b3I6YnV0dG9uOmV4cGxhaW4tY29zdHMn LCBzZWxmLl9leHBsYWluX2Nvc3RzLCBzZWxmKTsKICAgICAgICAgc2VsZi5vbigncGdhZG1pbi1z cWxlZGl0b3I6YnV0dG9uOmV4cGxhaW4tYnVmZmVycycsIHNlbGYuX2V4cGxhaW5fYnVmZmVycywg c2VsZik7CiAgICAgICAgIHNlbGYub24oJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpleHBsYWlu LXRpbWluZycsIHNlbGYuX2V4cGxhaW5fdGltaW5nLCBzZWxmKTsKKyAgICAgICAgc2VsZi5vbign cGdhZG1pbi1zcWxlZGl0b3I6YnV0dG9uOmV4cGxhaW4tc3VtbWFyeScsIHNlbGYuX2V4cGxhaW5f c3VtbWFyeSwgc2VsZik7CisgICAgICAgIHNlbGYub24oJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRv bjpleHBsYWluLXNldHRpbmdzJywgc2VsZi5fZXhwbGFpbl9zZXR0aW5ncywgc2VsZik7CiAgICAg ICAgIC8vIEluZGVudGF0aW9uIHJlbGF0ZWQKICAgICAgICAgc2VsZi5vbigncGdhZG1pbi1zcWxl ZGl0b3I6aW5kZW50X3NlbGVjdGVkX2NvZGUnLCBzZWxmLl9pbmRlbnRfc2VsZWN0ZWRfY29kZSwg c2VsZik7CiAgICAgICAgIHNlbGYub24oJ3BnYWRtaW4tc3FsZWRpdG9yOnVuaW5kZW50X3NlbGVj dGVkX2NvZGUnLCBzZWxmLl91bmluZGVudF9zZWxlY3RlZF9jb2RlLCBzZWxmKTsKQEAgLTM4ODgs MTA4ICszOTM1LDM3IEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogCiAgICAgICB9LAog Ci0gICAgICBleHBsYWluUHJlZmVyZW5jZVVwZGF0ZTogIGZ1bmN0aW9uKHN1Ykl0ZW0sIGRhdGEs IGNhbGxlcikgewotICAgICAgICBsZXQgc2VsZiA9IHRoaXM7Ci0gICAgICAgICQuYWpheCh7Ci0g ICAgICAgICAgdXJsOiB1cmxfZm9yKCdzcWxlZGl0b3IucXVlcnlfdG9vbF9wcmVmZXJlbmNlcycs IHsKLSAgICAgICAgICAgICd0cmFuc19pZCc6IHNlbGYudHJhbnNJZCwKLSAgICAgICAgICB9KSwK LSAgICAgICAgICBtZXRob2Q6ICdQVVQnLAotICAgICAgICAgIGNvbnRlbnRUeXBlOiAnYXBwbGlj YXRpb24vanNvbicsCi0gICAgICAgICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoZGF0YSksCi0gICAg ICAgIH0pCi0gICAgICAgICAgLmRvbmUoZnVuY3Rpb24ocmVzKSB7Ci0gICAgICAgICAgICBpZiAo cmVzLnN1Y2Nlc3MgPT0gdW5kZWZpbmVkIHx8ICFyZXMuc3VjY2VzcykgewotICAgICAgICAgICAg ICBhbGVydGlmeS5hbGVydChnZXR0ZXh0KCdFeHBsYWluIG9wdGlvbnMgZXJyb3InKSwKLSAgICAg ICAgICAgICAgICBnZXR0ZXh0KCdFcnJvciBvY2N1cnJlZCB3aGlsZSBzZXR0aW5nICUoc3ViSXRl bSlzIG9wdGlvbiBpbiBleHBsYWluLicsCi0gICAgICAgICAgICAgICAgICB7c3ViSXRlbSA6IHN1 Ykl0ZW19KQotICAgICAgICAgICAgICApOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxz ZQotICAgICAgICAgICAgICBzZWxmLmNhbGxfY2FjaGVfcHJlZmVyZW5jZXMoKTsKLSAgICAgICAg ICB9KQotICAgICAgICAgIC5mYWlsKGZ1bmN0aW9uKGUpIHsKLSAgICAgICAgICAgIGxldCBtc2cg PSBodHRwRXJyb3JIYW5kbGVyLmhhbmRsZVF1ZXJ5VG9vbEFqYXhFcnJvcigKLSAgICAgICAgICAg ICAgcGdBZG1pbiwgc2VsZiwgZSwgY2FsbGVyLCBbXSwgdHJ1ZQotICAgICAgICAgICAgKTsKLSAg ICAgICAgICAgIGFsZXJ0aWZ5LmFsZXJ0KGdldHRleHQoJ0V4cGxhaW4gb3B0aW9ucyBlcnJvcicp LCBtc2cpOwotICAgICAgICAgIH0pOworICAgICAgX3RvZ2dsZV9leHBsYWluX29wdGlvbjogZnVu Y3Rpb24odHlwZSkgeworICAgICAgICBsZXQgc2VsZWN0b3IgPSBgLmV4cGxhaW4tJHt0eXBlfWA7 CisgICAgICAgICQoc2VsZWN0b3IpLnRvZ2dsZUNsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwog ICAgICAgfSwKIAogICAgICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIHRvZ2dsZSAidmVyYm9zZSIg b3B0aW9uIGluIGV4cGxhaW4KICAgICAgIF9leHBsYWluX3ZlcmJvc2U6IGZ1bmN0aW9uKCkgewot ICAgICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0gICAgICAgIGxldCBleHBsYWluX3ZlcmJvc2UgPSBm YWxzZTsKLSAgICAgICAgaWYgKCQoJy5leHBsYWluLXZlcmJvc2UnKS5oYXNDbGFzcygndmlzaWJp bGl0eS1oaWRkZW4nKSA9PT0gdHJ1ZSkgewotICAgICAgICAgICQoJy5leHBsYWluLXZlcmJvc2Un KS5yZW1vdmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICBleHBsYWluX3Zl cmJvc2UgPSB0cnVlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICQoJy5leHBsYWluLXZl cmJvc2UnKS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICBleHBsYWlu X3ZlcmJvc2UgPSBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIHNlbGYuZXhwbGFpblByZWZl cmVuY2VVcGRhdGUoCi0gICAgICAgICAgJ3ZlcmJvc2UnLCB7Ci0gICAgICAgICAgICAnZXhwbGFp bl92ZXJib3NlJzogZXhwbGFpbl92ZXJib3NlLAotICAgICAgICAgIH0sICdfZXhwbGFpbl92ZXJi b3NlJwotICAgICAgICApOworICAgICAgICB0aGlzLl90b2dnbGVfZXhwbGFpbl9vcHRpb24oJ3Zl cmJvc2UnKTsKICAgICAgIH0sCiAKICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCB0b2dnbGUg ImNvc3RzIiBvcHRpb24gaW4gZXhwbGFpbgogICAgICAgX2V4cGxhaW5fY29zdHM6IGZ1bmN0aW9u KCkgewotICAgICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0gICAgICAgIGxldCBleHBsYWluX2Nvc3Rz ID0gZmFsc2U7Ci0gICAgICAgIGlmICgkKCcuZXhwbGFpbi1jb3N0cycpLmhhc0NsYXNzKCd2aXNp YmlsaXR5LWhpZGRlbicpID09PSB0cnVlKSB7Ci0gICAgICAgICAgJCgnLmV4cGxhaW4tY29zdHMn KS5yZW1vdmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICBleHBsYWluX2Nv c3RzID0gdHJ1ZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAkKCcuZXhwbGFpbi1jb3N0 cycpLmFkZENsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAgICAgICAgIGV4cGxhaW5fY29z dHMgPSBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIHNlbGYuZXhwbGFpblByZWZlcmVuY2VV cGRhdGUoCi0gICAgICAgICAgJ2Nvc3RzJywgewotICAgICAgICAgICAgJ2V4cGxhaW5fY29zdHMn OiBleHBsYWluX2Nvc3RzLAotICAgICAgICAgIH0sICdfZXhwbGFpbl9jb3N0cycKLSAgICAgICAg KTsKKyAgICAgICAgdGhpcy5fdG9nZ2xlX2V4cGxhaW5fb3B0aW9uKCdjb3N0cycpOwogICAgICAg fSwKIAogICAgICAgLy8gVGhpcyBmdW5jdGlvbiB3aWxsIHRvZ2dsZSAiYnVmZmVycyIgb3B0aW9u IGluIGV4cGxhaW4KICAgICAgIF9leHBsYWluX2J1ZmZlcnM6IGZ1bmN0aW9uKCkgewotICAgICAg ICB2YXIgc2VsZiA9IHRoaXM7Ci0gICAgICAgIGxldCBleHBsYWluX2J1ZmZlcnMgPSBmYWxzZTsK LSAgICAgICAgaWYgKCQoJy5leHBsYWluLWJ1ZmZlcnMnKS5oYXNDbGFzcygndmlzaWJpbGl0eS1o aWRkZW4nKSA9PT0gdHJ1ZSkgewotICAgICAgICAgICQoJy5leHBsYWluLWJ1ZmZlcnMnKS5yZW1v dmVDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICBleHBsYWluX2J1ZmZlcnMg PSB0cnVlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICQoJy5leHBsYWluLWJ1ZmZlcnMn KS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICBleHBsYWluX2J1ZmZl cnMgPSBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIHNlbGYuZXhwbGFpblByZWZlcmVuY2VV cGRhdGUoCi0gICAgICAgICAgJ2J1ZmZlcnMnLCB7Ci0gICAgICAgICAgICAnZXhwbGFpbl9idWZm ZXJzJzogZXhwbGFpbl9idWZmZXJzLAotICAgICAgICAgIH0sICdfZXhwbGFpbl9idWZmZXJzJwot ICAgICAgICApOworICAgICAgICB0aGlzLl90b2dnbGVfZXhwbGFpbl9vcHRpb24oJ2J1ZmZlcnMn KTsKICAgICAgIH0sCiAKICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCB0b2dnbGUgInRpbWlu ZyIgb3B0aW9uIGluIGV4cGxhaW4KICAgICAgIF9leHBsYWluX3RpbWluZzogZnVuY3Rpb24oKSB7 Ci0gICAgICAgIHZhciBzZWxmID0gdGhpczsKLSAgICAgICAgbGV0IGV4cGxhaW5fdGltaW5nID0g ZmFsc2U7Ci0gICAgICAgIGlmICgkKCcuZXhwbGFpbi10aW1pbmcnKS5oYXNDbGFzcygndmlzaWJp bGl0eS1oaWRkZW4nKSA9PT0gdHJ1ZSkgewotICAgICAgICAgICQoJy5leHBsYWluLXRpbWluZycp LnJlbW92ZUNsYXNzKCd2aXNpYmlsaXR5LWhpZGRlbicpOwotICAgICAgICAgIGV4cGxhaW5fdGlt aW5nID0gdHJ1ZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAkKCcuZXhwbGFpbi10aW1p bmcnKS5hZGRDbGFzcygndmlzaWJpbGl0eS1oaWRkZW4nKTsKLSAgICAgICAgICBleHBsYWluX3Rp bWluZyA9IGZhbHNlOwotICAgICAgICB9CisgICAgICAgIHRoaXMuX3RvZ2dsZV9leHBsYWluX29w dGlvbigndGltaW5nJyk7CisgICAgICB9LAogCi0gICAgICAgIHNlbGYuZXhwbGFpblByZWZlcmVu Y2VVcGRhdGUoCi0gICAgICAgICAgJ3RpbWluZycsIHsKLSAgICAgICAgICAgICdleHBsYWluX3Rp bWluZyc6IGV4cGxhaW5fdGltaW5nLAotICAgICAgICAgIH0sICdfZXhwbGFpbl90aW1pbmcnCi0g ICAgICAgICk7CisgICAgICBfZXhwbGFpbl9zdW1tYXJ5OiBmdW5jdGlvbigpIHsKKyAgICAgICAg dGhpcy5fdG9nZ2xlX2V4cGxhaW5fb3B0aW9uKCdzdW1tYXJ5Jyk7CisgICAgICB9LAorCisgICAg ICBfZXhwbGFpbl9zZXR0aW5nczogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuX3RvZ2dsZV9l eHBsYWluX29wdGlvbignc2V0dGluZ3MnKTsKICAgICAgIH0sCiAKICAgICAgIC8qCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVtcGxhdGVzL3NxbGVkaXRvci9zcWwv MTBfcGx1cy9leHBsYWluX3BsYW4uc3FsIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rl bXBsYXRlcy9zcWxlZGl0b3Ivc3FsLzEwX3BsdXMvZXhwbGFpbl9wbGFuLnNxbAppbmRleCAyNjc0 M2Y5ZS4uNWIzMGExM2UgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90 ZW1wbGF0ZXMvc3FsZWRpdG9yL3NxbC8xMF9wbHVzL2V4cGxhaW5fcGxhbi5zcWwKKysrIGIvd2Vi L3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3RlbXBsYXRlcy9zcWxlZGl0b3Ivc3FsLzEwX3BsdXMv ZXhwbGFpbl9wbGFuLnNxbApAQCAtMSwxNSArMSwxNiBAQAoreyUgaW1wb3J0ICdzcWwvbWFjcm9z L3V0aWxzLm1hY3JvcycgYXMgVVRJTFMgJX0KIEVYUExBSU4gKHslIGlmIGZvcm1hdCAtJX0KLSAg Rk9STUFUIHt7IGZvcm1hdC51cHBlcigpIH19LAorICBGT1JNQVQge3sgZm9ybWF0LnVwcGVyKCkg fX0KIHslLSBlbmRpZiAlfXslIGlmIGFuYWx5emUgaXMgZGVmaW5lZCAtJX0KLSAgQU5BTFlaRSB7 eyBhbmFseXplIH19LAorICAsIEFOQUxZWkUge3sgVVRJTFMuQk9PTF9URVhUKGFuYWx5emUpIH19 CiB7JS0gZW5kaWYgJX17JSBpZiB2ZXJib3NlIGlzIGRlZmluZWQgLSV9Ci0gIFZFUkJPU0Uge3sg dmVyYm9zZSB9fSwKKyAgLCBWRVJCT1NFIHt7IFVUSUxTLkJPT0xfVEVYVCh2ZXJib3NlKSB9fQog eyUtIGVuZGlmICV9eyUgaWYgY29zdHMgaXMgZGVmaW5lZCAtJX0KLSAgQ09TVFMge3sgY29zdHMg fX0sCisgICwgQ09TVFMge3sgVVRJTFMuQk9PTF9URVhUKGNvc3RzKSB9fQogeyUtIGVuZGlmICV9 eyUgaWYgdGltaW5nIGlzIGRlZmluZWQgLSV9Ci0gIFRJTUlORyB7eyB0aW1pbmcgfX0sCi17JS0g ZW5kaWYgJX17JSBpZiBzdW1tYXJ5IGlzIGRlZmluZWQgLSV9Ci0gIFNVTU1BUlkge3sgc3VtbWFy eSB9fSwKKyAgLCBUSU1JTkcge3sgVVRJTFMuQk9PTF9URVhUKHRpbWluZykgfX0KIHslLSBlbmRp ZiAlfXslIGlmIGJ1ZmZlcnMgaXMgZGVmaW5lZCAtJX0KLSAgQlVGRkVSUyB7eyBidWZmZXJzIH19 CisgICwgQlVGRkVSUyB7eyBVVElMUy5CT09MX1RFWFQoYnVmZmVycykgfX0KK3slLSBlbmRpZiAl fXslIGlmIHN1bW1hcnkgaXMgZGVmaW5lZCAtJX0KKyAgLCBTVU1NQVJZIHt7IFVUSUxTLkJPT0xf VEVYVChzdW1tYXJ5KSB9fQogeyUtIGVuZGlmICV9KSB7eyBzcWwgfX0KZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZW1wbGF0ZXMvc3FsZWRpdG9yL3NxbC8xMl9wbHVz L2V4cGxhaW5fcGxhbi5zcWwgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVtcGxhdGVz L3NxbGVkaXRvci9zcWwvMTJfcGx1cy9leHBsYWluX3BsYW4uc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwLi44OGNlOWM5MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL3Rvb2xzL3NxbGVkaXRvci90ZW1wbGF0ZXMvc3FsZWRpdG9yL3NxbC8xMl9wbHVzL2V4cGxh aW5fcGxhbi5zcWwKQEAgLTAsMCArMSwxOCBAQAoreyUgaW1wb3J0ICdzcWwvbWFjcm9zL3V0aWxz Lm1hY3JvcycgYXMgVVRJTFMgJX0KK0VYUExBSU4gKHslIGlmIGZvcm1hdCAtJX0KKyAgRk9STUFU IHt7IGZvcm1hdC51cHBlcigpIH19Cit7JS0gZW5kaWYgJX17JSBpZiBhbmFseXplIGlzIGRlZmlu ZWQgLSV9CisgICwgQU5BTFlaRSB7eyBVVElMUy5CT09MX1RFWFQoYW5hbHl6ZSkgfX0KK3slLSBl bmRpZiAlfXslIGlmIHZlcmJvc2UgaXMgZGVmaW5lZCAtJX0KKyAgLCBWRVJCT1NFIHt7IFVUSUxT LkJPT0xfVEVYVCh2ZXJib3NlKSB9fQoreyUtIGVuZGlmICV9eyUgaWYgY29zdHMgaXMgZGVmaW5l ZCAtJX0KKyAgLCBDT1NUUyB7eyBVVElMUy5CT09MX1RFWFQoY29zdHMpIH19Cit7JS0gZW5kaWYg JX17JSBpZiB0aW1pbmcgaXMgZGVmaW5lZCAtJX0KKyAgLCBUSU1JTkcge3sgVVRJTFMuQk9PTF9U RVhUKHRpbWluZykgfX0KK3slLSBlbmRpZiAlfXslIGlmIGJ1ZmZlcnMgaXMgZGVmaW5lZCAtJX0K KyAgLCBCVUZGRVJTIHt7IFVUSUxTLkJPT0xfVEVYVChidWZmZXJzKSB9fQoreyUtIGVuZGlmICV9 eyUgaWYgc3VtbWFyeSBpcyBkZWZpbmVkIC0lfQorICAsIFNVTU1BUlkge3sgVVRJTFMuQk9PTF9U RVhUKHN1bW1hcnkpIH19Cit7JS0gZW5kaWYgJX17JSBpZiBzZXR0aW5ncyBpcyBkZWZpbmVkIC0l fQorICAsIFNFVFRJTkdTIHt7IFVUSUxTLkJPT0xfVEVYVChzZXR0aW5ncykgfX0KK3slLSBlbmRp ZiAlfSkge3sgc3FsIH19CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Iv dGVtcGxhdGVzL3NxbGVkaXRvci9zcWwvOS4yX3BsdXMvZXhwbGFpbl9wbGFuLnNxbCBiL3dlYi9w Z2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZW1wbGF0ZXMvc3FsZWRpdG9yL3NxbC85LjJfcGx1cy9l eHBsYWluX3BsYW4uc3FsCmluZGV4IDY1NDBmODBhLi5mMWJjYmViYyAxMDA2NDQKLS0tIGEvd2Vi L3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3RlbXBsYXRlcy9zcWxlZGl0b3Ivc3FsLzkuMl9wbHVz L2V4cGxhaW5fcGxhbi5zcWwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3RlbXBs YXRlcy9zcWxlZGl0b3Ivc3FsLzkuMl9wbHVzL2V4cGxhaW5fcGxhbi5zcWwKQEAgLTEsMTMgKzEs MTQgQEAKK3slIGltcG9ydCAnc3FsL21hY3Jvcy91dGlscy5tYWNyb3MnIGFzIFVUSUxTICV9CiBF WFBMQUlOICh7JSBpZiBmb3JtYXQgLSV9Ci0gIEZPUk1BVCB7eyBmb3JtYXQudXBwZXIoKSB9fSwK KyAgRk9STUFUIHt7IGZvcm1hdC51cHBlcigpIH19CiB7JS0gZW5kaWYgJX17JSBpZiBhbmFseXpl IGlzIGRlZmluZWQgLSV9Ci0gIEFOQUxZWkUge3sgYW5hbHl6ZSB9fSwKKyAgLCBBTkFMWVpFIHt7 IFVUSUxTLkJPT0xfVEVYVChhbmFseXplKSB9fQogeyUtIGVuZGlmICV9eyUgaWYgdmVyYm9zZSBp cyBkZWZpbmVkIC0lfQotICBWRVJCT1NFIHt7IHZlcmJvc2UgfX0sCisgICwgVkVSQk9TRSB7eyBV VElMUy5CT09MX1RFWFQodmVyYm9zZSkgfX0KIHslLSBlbmRpZiAlfXslIGlmIGNvc3RzIGlzIGRl ZmluZWQgLSV9Ci0gIENPU1RTIHt7IGNvc3RzIH19LAorICAsIENPU1RTIHt7IFVUSUxTLkJPT0xf VEVYVChjb3N0cykgfX0KIHslLSBlbmRpZiAlfXslIGlmIHRpbWluZyBpcyBkZWZpbmVkIC0lfQot ICBUSU1JTkcge3sgdGltaW5nIH19LAorICAsIFRJTUlORyB7eyBVVElMUy5CT09MX1RFWFQodGlt aW5nKSB9fQogeyUtIGVuZGlmICV9eyUgaWYgYnVmZmVycyBpcyBkZWZpbmVkIC0lfQotICBCVUZG RVJTIHt7IGJ1ZmZlcnMgfX0KKyAgLCBCVUZGRVJTIHt7IFVUSUxTLkJPT0xfVEVYVChidWZmZXJz KSB9fQogeyUtIGVuZGlmICV9KSB7eyBzcWwgfX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rv b2xzL3NxbGVkaXRvci90ZW1wbGF0ZXMvc3FsZWRpdG9yL3NxbC9kZWZhdWx0L2V4cGxhaW5fcGxh bi5zcWwgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVtcGxhdGVzL3NxbGVkaXRvci9z cWwvZGVmYXVsdC9leHBsYWluX3BsYW4uc3FsCmluZGV4IDI5NDVkZTQ0Li5mMWJjYmViYyAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3RlbXBsYXRlcy9zcWxlZGl0b3Iv c3FsL2RlZmF1bHQvZXhwbGFpbl9wbGFuLnNxbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxl ZGl0b3IvdGVtcGxhdGVzL3NxbGVkaXRvci9zcWwvZGVmYXVsdC9leHBsYWluX3BsYW4uc3FsCkBA IC0xLDEwICsxLDE0IEBACit7JSBpbXBvcnQgJ3NxbC9tYWNyb3MvdXRpbHMubWFjcm9zJyBhcyBV VElMUyAlfQogRVhQTEFJTiAoeyUgaWYgZm9ybWF0IC0lfQotICBGT1JNQVQge3sgZm9ybWF0LnVw cGVyKCkgfX0sCisgIEZPUk1BVCB7eyBmb3JtYXQudXBwZXIoKSB9fQogeyUtIGVuZGlmICV9eyUg aWYgYW5hbHl6ZSBpcyBkZWZpbmVkIC0lfQotICBBTkFMWVpFIHt7IGFuYWx5emUgfX0seyUtIGVu ZGlmICV9eyUgaWYgdmVyYm9zZSBpcyBkZWZpbmVkIC0lfQotICBWRVJCT1NFIHt7IHZlcmJvc2Ug fX0sCisgICwgQU5BTFlaRSB7eyBVVElMUy5CT09MX1RFWFQoYW5hbHl6ZSkgfX0KK3slLSBlbmRp ZiAlfXslIGlmIHZlcmJvc2UgaXMgZGVmaW5lZCAtJX0KKyAgLCBWRVJCT1NFIHt7IFVUSUxTLkJP T0xfVEVYVCh2ZXJib3NlKSB9fQogeyUtIGVuZGlmICV9eyUgaWYgY29zdHMgaXMgZGVmaW5lZCAt JX0KLSAgQ09TVFMge3sgY29zdHMgfX0sCisgICwgQ09TVFMge3sgVVRJTFMuQk9PTF9URVhUKGNv c3RzKSB9fQoreyUtIGVuZGlmICV9eyUgaWYgdGltaW5nIGlzIGRlZmluZWQgLSV9CisgICwgVElN SU5HIHt7IFVUSUxTLkJPT0xfVEVYVCh0aW1pbmcpIH19CiB7JS0gZW5kaWYgJX17JSBpZiBidWZm ZXJzIGlzIGRlZmluZWQgLSV9Ci0gIEJVRkZFUlMge3sgYnVmZmVycyB9fQorICAsIEJVRkZFUlMg e3sgVVRJTFMuQk9PTF9URVhUKGJ1ZmZlcnMpIH19CiB7JS0gZW5kaWYgJX0pIHt7IHNxbCB9fQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3RfZXhwbGFp bl9wbGFuX3RlbXBsYXRlcy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90 ZXN0X2V4cGxhaW5fcGxhbl90ZW1wbGF0ZXMucHkKaW5kZXggMjY2NTg4NDUuLmRmYTZlMGI3IDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9leHBsYWlu X3BsYW5fdGVtcGxhdGVzLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0 cy90ZXN0X2V4cGxhaW5fcGxhbl90ZW1wbGF0ZXMucHkKQEAgLTEwLDEwICsxMCwxMSBAQAogaW1w b3J0IG9zCiAKIGZyb20gZmxhc2sgaW1wb3J0IEZsYXNrLCByZW5kZXJfdGVtcGxhdGUKLWZyb20g amluamEyIGltcG9ydCBGaWxlU3lzdGVtTG9hZGVyCitmcm9tIGppbmphMiBpbXBvcnQgRmlsZVN5 c3RlbUxvYWRlciwgQ2hvaWNlTG9hZGVyCiAKIGZyb20gcGdhZG1pbiBpbXBvcnQgVmVyc2lvbmVk VGVtcGxhdGVMb2FkZXIKIGZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKK2Zyb20gcGdhZG1pbiBpbXBvcnQgdG9vbHMKIAogCiBjbGFzcyBUZXN0RXhwbGFp blBsYW5UZW1wbGF0ZXMoQmFzZVRlc3RHZW5lcmF0b3IpOgpAQCAtMzQsOSArMzUsOSBAQCBjbGFz cyBUZXN0RXhwbGFpblBsYW5UZW1wbGF0ZXMoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAg ICAgICAgICksCiAgICAgICAgICAgICAgICAgc3FsX3N0YXRlbWVudD0nU0VMRUNUICogRlJPTSBw bGFjZXMnLAogICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JldHVybl92YWx1ZT0nRVhQTEFJTiAn Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoRk9STUFUIFhNTCxBTkFM WVpFIFRydWUsJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVkVSQk9T RSBUcnVlLENPU1RTIEZhbHNlLCcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ0JVRkZFUlMgVHJ1ZSkgU0VMRUNUICogRlJPTSBwbGFjZXMnCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICcoRk9STUFUIFhNTCwgQU5BTFlaRSB0cnVlLCAnCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdWRVJCT1NFIHRydWUsIENPU1RTIGZh bHNlLCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCVUZGRVJTIHRy dWUpIFNFTEVDVCAqIEZST00gcGxhY2VzJwogICAgICAgICAgICAgKQogICAgICAgICApLAogICAg ICAgICAoCkBAIC01Miw3ICs1Myw3IEBAIGNsYXNzIFRlc3RFeHBsYWluUGxhblRlbXBsYXRlcyhC YXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICBz cWxfc3RhdGVtZW50PSdTRUxFQ1QgKiBGUk9NIHBsYWNlcycsCiAgICAgICAgICAgICAgICAgZXhw ZWN0ZWRfcmV0dXJuX3ZhbHVlPSdFWFBMQUlOICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJyhGT1JNQVQgSlNPTixCVUZGRVJTIFRydWUpICcKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJyhGT1JNQVQgSlNPTiwgQlVGRkVSUyB0cnVlKSAnCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTRUxFQ1QgKiBGUk9NIHBsYWNl cycKICAgICAgICAgICAgICkKICAgICAgICAgKSwKQEAgLTcwLDggKzcxLDggQEAgY2xhc3MgVGVz dEV4cGxhaW5QbGFuVGVtcGxhdGVzKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICAg ICApLAogICAgICAgICAgICAgICAgIHNxbF9zdGF0ZW1lbnQ9J1NFTEVDVCAqIEZST00gcGxhY2Vz JywKICAgICAgICAgICAgICAgICBleHBlY3RlZF9yZXR1cm5fdmFsdWU9J0VYUExBSU4gJwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKEZPUk1BVCBKU09OLFRJTUlORyBG YWxzZSwnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCVUZGRVJTIFRy dWUpIFNFTEVDVCAqIEZST00gcGxhY2VzJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnKEZPUk1BVCBKU09OLCBUSU1JTkcgZmFsc2UsICcKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ0JVRkZFUlMgdHJ1ZSkgU0VMRUNUICogRlJPTSBwbGFjZXMn CiAgICAgICAgICAgICApCiAgICAgICAgICksCiAgICAgICAgICgKQEAgLTg5LDggKzkwLDMwIEBA IGNsYXNzIFRlc3RFeHBsYWluUGxhblRlbXBsYXRlcyhCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAg ICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICBzcWxfc3RhdGVtZW50PSdTRUxFQ1QgKiBG Uk9NIHBsYWNlcycsCiAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPSdFWFBM QUlOICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhGT1JNQVQgWUFN TCxUSU1JTkcgRmFsc2UsJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn U1VNTUFSWSBUcnVlLEJVRkZFUlMgVHJ1ZSkgJworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnKEZPUk1BVCBZQU1MLCBUSU1JTkcgZmFsc2UsICcKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ0JVRkZFUlMgdHJ1ZSwgU1VNTUFSWSB0cnVlKSAnCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTRUxFQ1QgKiBGUk9NIHBsYWNl cycKKyAgICAgICAgICAgICkKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAgICAgICAgJ1do ZW4gcmVuZGVyaW5nIFBvc3RncmVzIDEyIHRlbXBsYXRlLCAnCisgICAgICAgICAgICAnd2hlbiBz ZXR0aW5ncyBpcyBwcmVzZW50LCcKKyAgICAgICAgICAgICdpdCByZXR1cm5zIHRoZSBleHBsYWlu IHBsYW4gd2l0aCBzZXR0aW5ncycsCisgICAgICAgICAgICBkaWN0KAorICAgICAgICAgICAgICAg IHRlbXBsYXRlX3BhdGg9J3NxbGVkaXRvci9zcWwvMTJfcGx1cy9leHBsYWluX3BsYW4uc3FsJywK KyAgICAgICAgICAgICAgICBpbnB1dF9wYXJhbWV0ZXJzPWRpY3QoCisgICAgICAgICAgICAgICAg ICAgIHNxbD0nU0VMRUNUICogRlJPTSBwbGFjZXMnLAorICAgICAgICAgICAgICAgICAgICBmb3Jt YXQ9J2pzb24nLAorICAgICAgICAgICAgICAgICAgICBidWZmZXJzPUZhbHNlLAorICAgICAgICAg ICAgICAgICAgICB0aW1pbmc9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgIHN1bW1hcnk9RmFs c2UsCisgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzPVRydWUKKyAgICAgICAgICAgICAgICAp LAorICAgICAgICAgICAgICAgIHNxbF9zdGF0ZW1lbnQ9J1NFTEVDVCAqIEZST00gcGxhY2VzJywK KyAgICAgICAgICAgICAgICBleHBlY3RlZF9yZXR1cm5fdmFsdWU9J0VYUExBSU4gJworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKEZPUk1BVCBKU09OLCBUSU1JTkcgZmFs c2UsICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0JVRkZFUlMgZmFs c2UsIFNVTU1BUlkgZmFsc2UsICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ1NFVFRJTkdTIHRydWUpICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ1NFTEVDVCAqIEZST00gcGxhY2VzJwogICAgICAgICAgICAgKQogICAgICAgICApLApAQCAt MTUzLDYgKzE3NiwxMSBAQCBjbGFzcyBUZXN0RXhwbGFpblBsYW5UZW1wbGF0ZXMoQmFzZVRlc3RH ZW5lcmF0b3IpOgogY2xhc3MgRmFrZUFwcChGbGFzayk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYp OgogICAgICAgICBzdXBlcihGYWtlQXBwLCBzZWxmKS5fX2luaXRfXygiIikKLSAgICAgICAgc2Vs Zi5qaW5qYV9sb2FkZXIgPSBGaWxlU3lzdGVtTG9hZGVyKAotICAgICAgICAgICAgb3MucGF0aC5k aXJuYW1lKG9zLnBhdGgucmVhbHBhdGgoX19maWxlX18pKSArICIvLi4vdGVtcGxhdGVzIgotICAg ICAgICApCisgICAgICAgIHNlbGYuamluamFfbG9hZGVyID0gQ2hvaWNlTG9hZGVyKFsKKyAgICAg ICAgICAgIEZpbGVTeXN0ZW1Mb2FkZXIoCisgICAgICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1l KG9zLnBhdGgucmVhbHBhdGgoX19maWxlX18pKSArICIvLi4vdGVtcGxhdGVzIgorICAgICAgICAg ICAgKSwKKyAgICAgICAgICAgIEZpbGVTeXN0ZW1Mb2FkZXIoCisgICAgICAgICAgICAgICAgb3Mu cGF0aC5qb2luKG9zLnBhdGguZGlybmFtZSh0b29scy5fX2ZpbGVfXyksICd0ZW1wbGF0ZXMnKQor ICAgICAgICAgICAgKQorICAgICAgICBdKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMv c3FsZWRpdG9yL3V0aWxzL3F1ZXJ5X3Rvb2xfcHJlZmVyZW5jZXMucHkgYi93ZWIvcGdhZG1pbi90 b29scy9zcWxlZGl0b3IvdXRpbHMvcXVlcnlfdG9vbF9wcmVmZXJlbmNlcy5weQppbmRleCBjYTA5 ZWFlYy4uNjRjNzU3NTQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91 dGlscy9xdWVyeV90b29sX3ByZWZlcmVuY2VzLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3Nx bGVkaXRvci91dGlscy9xdWVyeV90b29sX3ByZWZlcmVuY2VzLnB5CkBAIC02Miw2ICs2MiwxOCBA QCBkZWYgUmVnaXN0ZXJRdWVyeVRvb2xQcmVmZXJlbmNlcyhzZWxmKToKICAgICAgICAgY2F0ZWdv cnlfbGFiZWw9Z2V0dGV4dCgnRXhwbGFpbicpCiAgICAgKQogCisgICAgc2VsZi5leHBsYWluX3N1 bW1hcnkgPSBzZWxmLnByZWZlcmVuY2UucmVnaXN0ZXIoCisgICAgICAgICdFeHBsYWluJywgJ2V4 cGxhaW5fc3VtbWFyeScsCisgICAgICAgIGdldHRleHQoIlNob3cgc3VtbWFyeT8iKSwgJ2Jvb2xl YW4nLCBGYWxzZSwKKyAgICAgICAgY2F0ZWdvcnlfbGFiZWw9Z2V0dGV4dCgnRXhwbGFpbicpCisg ICAgKQorCisgICAgc2VsZi5leHBsYWluX3NldHRpbmdzID0gc2VsZi5wcmVmZXJlbmNlLnJlZ2lz dGVyKAorICAgICAgICAnRXhwbGFpbicsICdleHBsYWluX3NldHRpbmdzJywKKyAgICAgICAgZ2V0 dGV4dCgiU2hvdyBzZXR0aW5ncz8iKSwgJ2Jvb2xlYW4nLCBGYWxzZSwKKyAgICAgICAgY2F0ZWdv cnlfbGFiZWw9Z2V0dGV4dCgnRXhwbGFpbicpCisgICAgKQorCiAgICAgc2VsZi5hdXRvX2NvbW1p dCA9IHNlbGYucHJlZmVyZW5jZS5yZWdpc3RlcigKICAgICAgICAgJ09wdGlvbnMnLCAnYXV0b19j b21taXQnLAogICAgICAgICBnZXR0ZXh0KCJBdXRvIGNvbW1pdD8iKSwgJ2Jvb2xlYW4nLCBUcnVl LApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvdGVtcGxhdGVzL3NxbC9tYWNyb3MvdXRp bHMubWFjcm9zIGIvd2ViL3BnYWRtaW4vdG9vbHMvdGVtcGxhdGVzL3NxbC9tYWNyb3MvdXRpbHMu bWFjcm9zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi5mMzg1MTE2YQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3RlbXBsYXRlcy9zcWwvbWFjcm9zL3V0 aWxzLm1hY3JvcwpAQCAtMCwwICsxLDMgQEAKK3slIG1hY3JvIEJPT0xfVEVYVChib29sX3ZhbCkg JX0KK3slIGlmIGJvb2xfdmFsICV9dHJ1ZXslIGVsc2UgJX1mYWxzZXslIGVuZGlmICV9Cit7JSBl bmRtYWNybyAlfQpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zcWxlZGl0 b3IvcXVlcnlfdG9vbF9hY3Rpb25zX3NwZWMuanMgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0 L3NxbGVkaXRvci9xdWVyeV90b29sX2FjdGlvbnNfc3BlYy5qcwppbmRleCBiMmI0ZTg3MS4uZTVl NDg2NTcgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvc3FsZWRpdG9yL3F1 ZXJ5X3Rvb2xfYWN0aW9uc19zcGVjLmpzCisrKyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQv c3FsZWRpdG9yL3F1ZXJ5X3Rvb2xfYWN0aW9uc19zcGVjLmpzCkBAIC01NSw2ICs1NSw4IEBAIGRl c2NyaWJlKCdxdWVyeVRvb2xBY3Rpb25zJywgKCkgPT4gewogICAgICAgICBzcHlPbihxdWVyeVRv b2xBY3Rpb25zLCAnX2Nvc3RzRW5hYmxlZCcpLmFuZC5yZXR1cm5WYWx1ZShmYWxzZSk7CiAgICAg ICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfYnVmZmVycycpLmFuZC5yZXR1cm5WYWx1ZShm YWxzZSk7CiAgICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfdGltaW5nJykuYW5kLnJl dHVyblZhbHVlKGZhbHNlKTsKKyAgICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9ucywgJ19zdW1t YXJ5JykuYW5kLnJldHVyblZhbHVlKGZhbHNlKTsKKyAgICAgICAgc3B5T24ocXVlcnlUb29sQWN0 aW9ucywgJ19zZXR0aW5ncycpLmFuZC5yZXR1cm5WYWx1ZShmYWxzZSk7CiAgICAgICB9KTsKIAog ICAgICAgaXQoJ2NhbGxzIHRoZSBleGVjdXRlIGZ1bmN0aW9uJywgKCkgPT4gewpAQCAtNjksMTkg KzcxLDIyIEBAIGRlc2NyaWJlKCdxdWVyeVRvb2xBY3Rpb25zJywgKCkgPT4gewogICAgICAgICAg IGJ1ZmZlcnM6IGZhbHNlLAogICAgICAgICAgIHRpbWluZzogZmFsc2UsCiAgICAgICAgICAgc3Vt bWFyeTogZmFsc2UsCisgICAgICAgICAgc2V0dGluZ3M6IGZhbHNlLAogICAgICAgICB9OwogCiAg ICAgICAgIGV4cGVjdChzcWxFZGl0b3JDb250cm9sbGVyLmV4ZWN1dGUpLnRvSGF2ZUJlZW5DYWxs ZWRXaXRoKGV4cGxhaW5PYmplY3QpOwogICAgICAgfSk7CiAgICAgfSk7CiAKLSAgICBkZXNjcmli ZSgnd2hlbiB2ZXJib3NlIGFuZCBjb3N0cyBhbmQgYnVmZmVycyBhbmQgdGltaW5nIGFyZSBhbGwg c2VsZWN0ZWQnLCAoKSA9PiB7CisgICAgZGVzY3JpYmUoJ3doZW4gYWxsIG9wdGlvbnMgYXJlIHNl bGVjdGVkJywgKCkgPT4gewogICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7CiAgICAgICAgIHNldFVw U3BpZXMoJycsICcnKTsKICAgICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9ucywgJ192ZXJib3Nl JykuYW5kLnJldHVyblZhbHVlKHRydWUpOwogICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25z LCAnX2Nvc3RzRW5hYmxlZCcpLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsKICAgICAgICAgc3B5T24o cXVlcnlUb29sQWN0aW9ucywgJ19idWZmZXJzJykuYW5kLnJldHVyblZhbHVlKHRydWUpOwogICAg ICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX3RpbWluZycpLmFuZC5yZXR1cm5WYWx1ZSh0 cnVlKTsKKyAgICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9ucywgJ19zdW1tYXJ5JykuYW5kLnJl dHVyblZhbHVlKHRydWUpOworICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX3NldHRp bmdzJykuYW5kLnJldHVyblZhbHVlKHRydWUpOwogICAgICAgfSk7CiAgICAgICBpdCgnY2FsbHMg dGhlIGV4ZWN1dGUgZnVuY3Rpb24nLCAoKSA9PiB7CiAgICAgICAgIHF1ZXJ5VG9vbEFjdGlvbnMu ZXhwbGFpbkFuYWx5emUoc3FsRWRpdG9yQ29udHJvbGxlcik7CkBAIC05Miw3ICs5Nyw4IEBAIGRl c2NyaWJlKCdxdWVyeVRvb2xBY3Rpb25zJywgKCkgPT4gewogICAgICAgICAgIGNvc3RzOiB0cnVl LAogICAgICAgICAgIGJ1ZmZlcnM6IHRydWUsCiAgICAgICAgICAgdGltaW5nOiB0cnVlLAotICAg ICAgICAgIHN1bW1hcnk6IGZhbHNlLAorICAgICAgICAgIHN1bW1hcnk6IHRydWUsCisgICAgICAg ICAgc2V0dGluZ3M6IHRydWUsCiAgICAgICAgIH07CiAgICAgICAgIGV4cGVjdChzcWxFZGl0b3JD b250cm9sbGVyLmV4ZWN1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGV4cGxhaW5PYmplY3QpOwog ICAgICAgfSk7CkBAIC0xMDUsNiArMTExLDggQEAgZGVzY3JpYmUoJ3F1ZXJ5VG9vbEFjdGlvbnMn LCAoKSA9PiB7CiAgICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfY29zdHNFbmFibGVk JykuYW5kLnJldHVyblZhbHVlKGZhbHNlKTsKICAgICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9u cywgJ19idWZmZXJzJykuYW5kLnJldHVyblZhbHVlKHRydWUpOwogICAgICAgICBzcHlPbihxdWVy eVRvb2xBY3Rpb25zLCAnX3RpbWluZycpLmFuZC5yZXR1cm5WYWx1ZShmYWxzZSk7CisgICAgICAg IHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfc3VtbWFyeScpLmFuZC5yZXR1cm5WYWx1ZShmYWxz ZSk7CisgICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfc2V0dGluZ3MnKS5hbmQucmV0 dXJuVmFsdWUoZmFsc2UpOwogICAgICAgfSk7CiAgICAgICBpdCgnY2FsbHMgdGhlIGV4ZWN1dGUg ZnVuY3Rpb24nLCAoKSA9PiB7CiAgICAgICAgIHF1ZXJ5VG9vbEFjdGlvbnMuZXhwbGFpbkFuYWx5 emUoc3FsRWRpdG9yQ29udHJvbGxlcik7CkBAIC0xMTcsNiArMTI1LDcgQEAgZGVzY3JpYmUoJ3F1 ZXJ5VG9vbEFjdGlvbnMnLCAoKSA9PiB7CiAgICAgICAgICAgYnVmZmVyczogdHJ1ZSwKICAgICAg ICAgICB0aW1pbmc6IGZhbHNlLAogICAgICAgICAgIHN1bW1hcnk6IGZhbHNlLAorICAgICAgICAg IHNldHRpbmdzOiBmYWxzZSwKICAgICAgICAgfTsKIAogICAgICAgICBleHBlY3Qoc3FsRWRpdG9y Q29udHJvbGxlci5leGVjdXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChleHBsYWluT2JqZWN0KTsK QEAgLTEzMCw2ICsxMzksOCBAQCBkZXNjcmliZSgncXVlcnlUb29sQWN0aW9ucycsICgpID0+IHsK ICAgICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9ucywgJ19jb3N0c0VuYWJsZWQnKS5hbmQucmV0 dXJuVmFsdWUodHJ1ZSk7CiAgICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfYnVmZmVy cycpLmFuZC5yZXR1cm5WYWx1ZShmYWxzZSk7CiAgICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlv bnMsICdfdGltaW5nJykuYW5kLnJldHVyblZhbHVlKHRydWUpOworICAgICAgICBzcHlPbihxdWVy eVRvb2xBY3Rpb25zLCAnX3N1bW1hcnknKS5hbmQucmV0dXJuVmFsdWUoZmFsc2UpOworICAgICAg ICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX3NldHRpbmdzJykuYW5kLnJldHVyblZhbHVlKGZh bHNlKTsKICAgICAgIH0pOwogICAgICAgaXQoJ2NhbGxzIHRoZSBleGVjdXRlIGZ1bmN0aW9uJywg KCkgPT4gewogICAgICAgICBxdWVyeVRvb2xBY3Rpb25zLmV4cGxhaW5BbmFseXplKHNxbEVkaXRv ckNvbnRyb2xsZXIpOwpAQCAtMTQyLDYgKzE1MywzNSBAQCBkZXNjcmliZSgncXVlcnlUb29sQWN0 aW9ucycsICgpID0+IHsKICAgICAgICAgICBidWZmZXJzOiBmYWxzZSwKICAgICAgICAgICB0aW1p bmc6IHRydWUsCiAgICAgICAgICAgc3VtbWFyeTogZmFsc2UsCisgICAgICAgICAgc2V0dGluZ3M6 IGZhbHNlLAorICAgICAgICB9OworCisgICAgICAgIGV4cGVjdChzcWxFZGl0b3JDb250cm9sbGVy LmV4ZWN1dGUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGV4cGxhaW5PYmplY3QpOworICAgICAgfSk7 CisgICAgfSk7CisKKyAgICBkZXNjcmliZSgnd2hlbiBhbGwgYXJlIG5vdCBzZWxlY3RlZCBleGNl cHQgc3VtbWFyeSBhbmQgc2V0dGluZ3MnLCAoKSA9PiB7CisgICAgICBiZWZvcmVFYWNoKCgpID0+ IHsKKyAgICAgICAgc2V0VXBTcGllcygnJywgJycpOworICAgICAgICBzcHlPbihxdWVyeVRvb2xB Y3Rpb25zLCAnX3ZlcmJvc2UnKS5hbmQucmV0dXJuVmFsdWUoZmFsc2UpOworICAgICAgICBzcHlP bihxdWVyeVRvb2xBY3Rpb25zLCAnX2Nvc3RzRW5hYmxlZCcpLmFuZC5yZXR1cm5WYWx1ZShmYWxz ZSk7CisgICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfYnVmZmVycycpLmFuZC5yZXR1 cm5WYWx1ZShmYWxzZSk7CisgICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfdGltaW5n JykuYW5kLnJldHVyblZhbHVlKGZhbHNlKTsKKyAgICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9u cywgJ19zdW1tYXJ5JykuYW5kLnJldHVyblZhbHVlKHRydWUpOworICAgICAgICBzcHlPbihxdWVy eVRvb2xBY3Rpb25zLCAnX3NldHRpbmdzJykuYW5kLnJldHVyblZhbHVlKHRydWUpOworICAgICAg fSk7CisgICAgICBpdCgnY2FsbHMgdGhlIGV4ZWN1dGUgZnVuY3Rpb24nLCAoKSA9PiB7CisgICAg ICAgIHF1ZXJ5VG9vbEFjdGlvbnMuZXhwbGFpbkFuYWx5emUoc3FsRWRpdG9yQ29udHJvbGxlcik7 CisKKyAgICAgICAgY29uc3QgZXhwbGFpbk9iamVjdCA9IHsKKyAgICAgICAgICBmb3JtYXQ6ICdq c29uJywKKyAgICAgICAgICBhbmFseXplOiB0cnVlLAorICAgICAgICAgIHZlcmJvc2U6IGZhbHNl LAorICAgICAgICAgIGNvc3RzOiBmYWxzZSwKKyAgICAgICAgICBidWZmZXJzOiBmYWxzZSwKKyAg ICAgICAgICB0aW1pbmc6IGZhbHNlLAorICAgICAgICAgIHN1bW1hcnk6IHRydWUsCisgICAgICAg ICAgc2V0dGluZ3M6IHRydWUsCiAgICAgICAgIH07CiAKICAgICAgICAgZXhwZWN0KHNxbEVkaXRv ckNvbnRyb2xsZXIuZXhlY3V0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZXhwbGFpbk9iamVjdCk7 CkBAIC0xNTUsNiArMTk1LDEwIEBAIGRlc2NyaWJlKCdxdWVyeVRvb2xBY3Rpb25zJywgKCkgPT4g ewogICAgICAgICBzZXRVcFNwaWVzKCcnLCAnJyk7CiAgICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFj dGlvbnMsICdfdmVyYm9zZScpLmFuZC5yZXR1cm5WYWx1ZSh0cnVlKTsKICAgICAgICAgc3B5T24o cXVlcnlUb29sQWN0aW9ucywgJ19jb3N0c0VuYWJsZWQnKS5hbmQucmV0dXJuVmFsdWUodHJ1ZSk7 CisgICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfc3VtbWFyeScpLmFuZC5yZXR1cm5W YWx1ZShmYWxzZSk7CisgICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfc2V0dGluZ3Mn KS5hbmQucmV0dXJuVmFsdWUoZmFsc2UpOworICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25z LCAnX3N1bW1hcnknKS5hbmQucmV0dXJuVmFsdWUoZmFsc2UpOworICAgICAgICBzcHlPbihxdWVy eVRvb2xBY3Rpb25zLCAnX3NldHRpbmdzJykuYW5kLnJldHVyblZhbHVlKGZhbHNlKTsKICAgICAg IH0pOwogCiAgICAgICBpdCgnY2FsbHMgdGhlIGV4ZWN1dGUgZnVuY3Rpb24nLCAoKSA9PiB7CkBA IC0xNjcsNiArMjExLDcgQEAgZGVzY3JpYmUoJ3F1ZXJ5VG9vbEFjdGlvbnMnLCAoKSA9PiB7CiAg ICAgICAgICAgYnVmZmVyczogZmFsc2UsCiAgICAgICAgICAgdGltaW5nOiBmYWxzZSwKICAgICAg ICAgICBzdW1tYXJ5OiBmYWxzZSwKKyAgICAgICAgICBzZXR0aW5nczogZmFsc2UsCiAgICAgICAg IH07CiAgICAgICAgIGV4cGVjdChzcWxFZGl0b3JDb250cm9sbGVyLmV4ZWN1dGUpLnRvSGF2ZUJl ZW5DYWxsZWRXaXRoKGV4cGxhaW5PYmplY3QpOwogICAgICAgfSk7CkBAIC0xNzcsNiArMjIyLDgg QEAgZGVzY3JpYmUoJ3F1ZXJ5VG9vbEFjdGlvbnMnLCAoKSA9PiB7CiAgICAgICAgIHNldFVwU3Bp ZXMoJycsICcnKTsKICAgICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9ucywgJ192ZXJib3NlJyku YW5kLnJldHVyblZhbHVlKGZhbHNlKTsKICAgICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9ucywg J19jb3N0c0VuYWJsZWQnKS5hbmQucmV0dXJuVmFsdWUoZmFsc2UpOworICAgICAgICBzcHlPbihx dWVyeVRvb2xBY3Rpb25zLCAnX3N1bW1hcnknKS5hbmQucmV0dXJuVmFsdWUoZmFsc2UpOworICAg ICAgICBzcHlPbihxdWVyeVRvb2xBY3Rpb25zLCAnX3NldHRpbmdzJykuYW5kLnJldHVyblZhbHVl KGZhbHNlKTsKICAgICAgIH0pOwogCiAgICAgICBpdCgnY2FsbHMgdGhlIGV4ZWN1dGUgZnVuY3Rp b24nLCAoKSA9PiB7CkBAIC0xODksNiArMjM2LDcgQEAgZGVzY3JpYmUoJ3F1ZXJ5VG9vbEFjdGlv bnMnLCAoKSA9PiB7CiAgICAgICAgICAgYnVmZmVyczogZmFsc2UsCiAgICAgICAgICAgdGltaW5n OiBmYWxzZSwKICAgICAgICAgICBzdW1tYXJ5OiBmYWxzZSwKKyAgICAgICAgICBzZXR0aW5nczog ZmFsc2UsCiAgICAgICAgIH07CiAKICAgICAgICAgZXhwZWN0KHNxbEVkaXRvckNvbnRyb2xsZXIu ZXhlY3V0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZXhwbGFpbk9iamVjdCk7CkBAIC0yMDAsNiAr MjQ4LDggQEAgZGVzY3JpYmUoJ3F1ZXJ5VG9vbEFjdGlvbnMnLCAoKSA9PiB7CiAgICAgICAgIHNl dFVwU3BpZXMoJycsICcnKTsKICAgICAgICAgc3B5T24ocXVlcnlUb29sQWN0aW9ucywgJ192ZXJi b3NlJykuYW5kLnJldHVyblZhbHVlKHRydWUpOwogICAgICAgICBzcHlPbihxdWVyeVRvb2xBY3Rp b25zLCAnX2Nvc3RzRW5hYmxlZCcpLmFuZC5yZXR1cm5WYWx1ZShmYWxzZSk7CisgICAgICAgIHNw eU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfc3VtbWFyeScpLmFuZC5yZXR1cm5WYWx1ZShmYWxzZSk7 CisgICAgICAgIHNweU9uKHF1ZXJ5VG9vbEFjdGlvbnMsICdfc2V0dGluZ3MnKS5hbmQucmV0dXJu VmFsdWUoZmFsc2UpOwogICAgICAgfSk7CiAKICAgICAgIGl0KCdjYWxscyB0aGUgZXhlY3V0ZSBm dW5jdGlvbicsICgpID0+IHsKQEAgLTIxMiw2ICsyNjIsNyBAQCBkZXNjcmliZSgncXVlcnlUb29s QWN0aW9ucycsICgpID0+IHsKICAgICAgICAgICBidWZmZXJzOiBmYWxzZSwKICAgICAgICAgICB0 aW1pbmc6IGZhbHNlLAogICAgICAgICAgIHN1bW1hcnk6IGZhbHNlLAorICAgICAgICAgIHNldHRp bmdzOiBmYWxzZSwKICAgICAgICAgfTsKICAgICAgICAgZXhwZWN0KHNxbEVkaXRvckNvbnRyb2xs ZXIuZXhlY3V0ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoZXhwbGFpbk9iamVjdCk7CiAgICAgICB9 KTsK --000000000000869adf058c623ccb--