Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84) (envelope-from ) id 1adu5B-0001Tp-2O for pgadmin-hackers@arkaria.postgresql.org; Thu, 10 Mar 2016 06:28:25 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1adu5A-0003fC-Kw for pgadmin-hackers@arkaria.postgresql.org; Thu, 10 Mar 2016 06:28:24 +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.84) (envelope-from ) id 1adu58-0003Ys-1q for pgadmin-hackers@postgresql.org; Thu, 10 Mar 2016 06:28:22 +0000 Received: from mail-yw0-x231.google.com ([2607:f8b0:4002:c05::231]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1adu50-0004QB-PY for pgadmin-hackers@postgresql.org; Thu, 10 Mar 2016 06:28:21 +0000 Received: by mail-yw0-x231.google.com with SMTP id d65so60167210ywb.0 for ; Wed, 09 Mar 2016 22:28:14 -0800 (PST) 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:date:message-id:subject:from:to; bh=bAxK5eZXNaE7y5ZPmdRt/Wx4+LMf1TgoEBNdHNSqljM=; b=y/vuPzOhOCiV97Ut3LH0vdAzCGObSxE4TDTjbrunujMdYmGxz3VCWVCvWqOqKaXd4M Su6pnmDaT0AA0ewn0JJHvivz/kaD3FI8lKifu9Zsvo21t7KqXYLWy62rW+3I04swMmnC gi2HeU251OjylbJBZImaYAKQrIK/L2q+7g9SSZUFIrEzw4zfC4BCbyU1uJV2iac+WREH 9zJaiindv+7MtGnrFab4Ox2v01KVmLTr0YpgerW/Ng1uCK5Ymo+wLdvcdx1J9alaJA3w E7Zd+RokCfUGmhpLfYRbRNlv/u0oM87Xr4xBPDUXRTcsHuOq+gS+gcB9XtQ8X5XX1Nnj XP7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to; bh=bAxK5eZXNaE7y5ZPmdRt/Wx4+LMf1TgoEBNdHNSqljM=; b=KBUmwuDb2DbeQpl6+EVD0ISi/y4EUpN64pI3Sjif2vn1/7Um1wR1cl0+R6B52czlKi O9ccjvRkJrnnBmW9oTnSfMWpDv4B/WYHp3kNerll5wJ73CEfaP5lu8kiB2WS3DXwEhar sHOxqihDknR/Q0c9jpo/psq8WEL2eyqTBGypjkgX23qOfmHiwqy73MgBlaK5463SofN+ ECozD6fB/Q4HrI2z2ZeQAxSSfAU3J3htng4xiq43X4kLqbK5piOPVHDS0nAF9ml7YPn7 d7zK3+xLLLGQN/AwyGUsX/w2xYJt09LWCQHMNBD+Hwspwep86lYgdA6HbZDUYKbIQLv0 +qPA== X-Gm-Message-State: AD7BkJLc8Z9k2H5ukvP3huSTHRonfCJxT+oFN6VwCw43esIPScsU2G1wZIBsPnKqHoJArZ/dO5/u3UewitYz86Z9 MIME-Version: 1.0 X-Received: by 10.129.87.87 with SMTP id l84mr925531ywb.344.1457591292928; Wed, 09 Mar 2016 22:28:12 -0800 (PST) Received: by 10.13.207.199 with HTTP; Wed, 9 Mar 2016 22:28:12 -0800 (PST) In-Reply-To: References: Date: Thu, 10 Mar 2016 11:58:12 +0530 Message-ID: Subject: Re: PATCH: PGADMIN 4 - FTS templates node From: Sanket Mehta To: Dave Page , pgadmin-hackers Content-Type: multipart/mixed; boundary=001a113aa1643ee3ec052dabeb37 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a113aa1643ee3ec052dabeb37 Content-Type: multipart/alternative; boundary=001a113aa1643ee3e7052dabeb35 --001a113aa1643ee3e7052dabeb35 Content-Type: text/plain; charset=UTF-8 Hi, PFA the patch for fts template after *replacing collectionNodeModule with SchemaChildModule* in __init__.py Apart from that, there was an error while updating the name of fts template which I have resolved in the same. Please do review it and let me know in case of any changes. Regards, Sanket Mehta Sr Software engineer Enterprisedb On Tue, Mar 1, 2016 at 4:56 PM, Sanket Mehta wrote: > Hi Dave, > > For your first comment, > > "When creating a new template, errors in the dialogue are not cleared - > e.g. the "Name must not be empty" doesn't clear, and save is not enabled, > even when a name is entered." > > This issue should not be handled only at FTS template level but the top > level as it occurs in all nodes. > I have created a bug node in kanban-chi regarding the same. > We will take this issue as per priority and send the patch for the same > later. > > > > Regards, > Sanket Mehta > Sr Software engineer > Enterprisedb > > On Tue, Mar 1, 2016 at 4:34 PM, Sanket Mehta < > sanket.mehta@enterprisedb.com> wrote: > >> Hi Dave, >> >> All comments are resolved. >> PFA the revised patch. >> >> Regards, >> Sanket Mehta >> Sr Software engineer >> Enterprisedb >> >> On Thu, Feb 25, 2016 at 7:37 PM, Dave Page wrote: >> >>> Hi >>> >>> On Tue, Feb 23, 2016 at 1:44 PM, Sanket Mehta < >>> sanket.mehta@enterprisedb.com> wrote: >>> >>>> Hi, >>>> >>>> PFA the revised patch for fts template node which includes dependency >>>> and dependent route handling code. >>>> Please do review it and if found proper please do commit it. >>>> >>> >>> - When creating a new template, errors in the dialogue are not cleared - >>> e.g. the "Name must not be empty" doesn't clear, and save is not enabled, >>> even when a name is entered. >>> >>> - "Fts Templates" should be "FTS Templates" on the treeview. >>> >>> - The "Init" field should be labelled "Init Function" >>> >>> - The "Lexize" field should be labelled "Lexize Function" >>> >>> - Selecting a schema should be optional, with the default being the >>> current schema. >>> >>> - 4 character indents are not consistently used in SQL templates >>> >>> Thanks. >>> >>> -- >>> Dave Page >>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >>> EnterpriseDB UK: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >> >> > --001a113aa1643ee3e7052dabeb35 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

PFA the patch for fts temp= late after replacing collectionNodeModule with SchemaChildModule in = __init__.py

Apart from that, there was an error while updating= the name of fts template which I have resolved in the same.

P= lease do review it and let me know in case of any changes.



Regards,
Sanket Mehta
Sr Software eng= ineer
Enterprisedb

On Tue, Mar 1, 2016 at 4:56 PM, Sanket Mehta= <sanket.mehta@enterprisedb.com> wrote:
Hi Dave,

For = your first comment,=C2=A0

=C2=A0"When creating a new template, errors = in the dialogue are not cleared - e.g. the "Name must not be empty&quo= t; doesn't clear, and save is not enabled, even when a name is entered.= "

This issue should not be = handled only at FTS template level but the top level as it occurs in all no= des.
I have created a bug node in kanban-chi regarding the same.<= /div>
We will take this issue as per priority and send the patch for th= e same later.



Regard= s,
Sanket Mehta
Sr Software engineer
Enterprisedb


Regards,
Sanket Mehta
Sr= Software engineer
Enterprisedb

On Thu, Feb 25, 2016 at 7:3= 7 PM, Dave Page <dpage@pgadmin.org> wrote:
Hi

On Tue, Feb 23, 2016 at 1:44 PM, Sanket Mehta = <sanket.mehta@enterprisedb.com> wrote:
Hi,

PFA the= revised patch for fts template node which includes dependency and dependen= t route handling code.
Please do review it and if fou= nd proper please do commit it.

- When creating a new template, errors in the dialogue are not cleared - e= .g. the "Name must not be empty" doesn't clear, and save is n= ot enabled, even when a name is entered.

- "F= ts Templates" should be "FTS Templates" on the treeview.

- The "Init" field should be labelled "= ;Init Function"

- The "Lexize" fiel= d should be labelled "Lexize Function"

-= Selecting a schema should be optional, with the default being the current = schema.

- 4 character indents are not consistently= used in SQL templates=C2=A0

Thanks.

--



--001a113aa1643ee3e7052dabeb35-- --001a113aa1643ee3ec052dabeb37 Content-Type: text/x-patch; charset=US-ASCII; name="fts_templatev4.patch" Content-Disposition: attachment; filename="fts_templatev4.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_illw60150 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvX19p bml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL19faW5p dF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMy NjZjODUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNf dGVtcGxhdGVzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNzAwIEBACisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxNiwgVGhl IHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlz IHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyIiIkRlZmluZXMgdmll d3MgZm9yIG1hbmFnZW1lbnQgb2YgRnRzIFRlbXBsYXRlIG5vZGUiIiIKKwor aW1wb3J0IGpzb24KK2Zyb20gZmxhc2sgaW1wb3J0IHJlbmRlcl90ZW1wbGF0 ZSwgbWFrZV9yZXNwb25zZSwgY3VycmVudF9hcHAsIHJlcXVlc3QsIGpzb25p ZnkKK2Zyb20gZmxhc2suZXh0LmJhYmVsIGltcG9ydCBnZXR0ZXh0Citmcm9t IHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNl LCBcCisgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IKK2Zyb20gcGdhZG1pbi5icm93c2VyLnV0aWxz IGltcG9ydCBQR0NoaWxkTm9kZVZpZXcKK2Zyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy51dGls cyBpbXBvcnQgU2NoZW1hQ2hpbGRNb2R1bGUKK2ltcG9ydCBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFz IGFzIHNjaGVtYXMKK2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBw cmVjb25kaXRpb25fcmVxdWlyZWQKK2Zyb20gcGdhZG1pbi51dGlscy5kcml2 ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9ydCBQR19E RUZBVUxUX0RSSVZFUgorZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHdyYXBzCisK KworY2xhc3MgRnRzVGVtcGxhdGVNb2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUp OgorICAgICIiIgorICAgICBjbGFzcyBGdHNUZW1wbGF0ZU1vZHVsZShTY2hl bWFDaGlsZE1vZHVsZSkKKworICAgICAgICBBIG1vZHVsZSBjbGFzcyBmb3Ig RlRTIFRlbXBsYXRlIG5vZGUgZGVyaXZlZCBmcm9tIFNjaGVtYUNoaWxkTW9k dWxlLgorCisgICAgTWV0aG9kczoKKyAgICAtLS0tLS0tCisgICAgKiBfX2lu aXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAtIE1ldGhvZCBpcyB1c2Vk IHRvIGluaXRpYWxpemUgdGhlIEZ0c1RlbXBsYXRlTW9kdWxlIGFuZCBpdCdz IGJhc2UgbW9kdWxlLgorCisgICAgKiBnZXRfbm9kZXMoZ2lkLCBzaWQsIGRp ZCwgc2NpZCkKKyAgICAgIC0gTWV0aG9kIGlzIHVzZWQgdG8gZ2VuZXJhdGUg dGhlIGJyb3dzZXIgY29sbGVjdGlvbiBub2RlLgorCisgICAgKiBub2RlX2lu b2RlKCkKKyAgICAgIC0gTWV0aG9kIGlzIG92ZXJyaWRkZW4gZnJvbSBpdHMg YmFzZSBjbGFzcyB0byBtYWtlIHRoZSBub2RlIGFzIGxlYWYgbm9kZS4KKwor ICAgICogc2NyaXB0X2xvYWQoKQorICAgICAgLSBMb2FkIHRoZSBtb2R1bGUg c2NyaXB0IGZvciBGVFMgVGVtcGxhdGUsIHdoZW4gYW55IG9mIHRoZSBzY2hl bWEgbm9kZSBpcworICAgICAgICBpbml0aWFsaXplZC4KKyAgICAiIiIKKyAg ICBOT0RFX1RZUEUgPSAnZnRzX3RlbXBsYXRlJworICAgIENPTExFQ1RJT05f TEFCRUwgPSBnZXR0ZXh0KCdGVFMgVGVtcGxhdGVzJykKKworICAgIGRlZiBf X2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBzZWxm Lm1pbl92ZXIgPSBOb25lCisgICAgICAgIHNlbGYubWF4X3ZlciA9IE5vbmUK KyAgICAgICAgc3VwZXIoRnRzVGVtcGxhdGVNb2R1bGUsIHNlbGYpLl9faW5p dF9fKCphcmdzLCAqKmt3YXJncykKKworICAgIGRlZiBnZXRfbm9kZXMoc2Vs ZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAgICIiIgorICAgICAg ICBHZW5lcmF0ZSB0aGUgY29sbGVjdGlvbiBub2RlCisgICAgICAgIDpwYXJh bSBnaWQ6IGdyb3VwIGlkCisgICAgICAgIDpwYXJhbSBzaWQ6IHNlcnZlciBp ZAorICAgICAgICA6cGFyYW0gZGlkOiBkYXRhYmFzZSBpZAorICAgICAgICA6 cGFyYW0gc2NpZDogc2NoZW1hIGlkCisgICAgICAgICIiIgorICAgICAgICB5 aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKHNj aWQpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbm9kZV9pbm9kZShzZWxm KToKKyAgICAgICAgIiIiCisgICAgICAgIE92ZXJyaWRlIHRoZSBwcm9wZXJ0 eSB0byBtYWtlIHRoZSBub2RlIGFzIGxlYWYgbm9kZQorICAgICAgICAiIiIK KyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBAcHJvcGVydHkKKyAgICBk ZWYgc2NyaXB0X2xvYWQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBM b2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBmdHMgdGVtcGxhdGUsIHdoZW4g YW55IG9mIHRoZSBzY2hlbWEgbm9kZSBpcworICAgICAgICBpbml0aWFsaXpl ZC4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzY2hlbWFzLlNjaGVt YU1vZHVsZS5OT0RFX1RZUEUKKworCitibHVlcHJpbnQgPSBGdHNUZW1wbGF0 ZU1vZHVsZShfX25hbWVfXykKKworCitjbGFzcyBGdHNUZW1wbGF0ZVZpZXco UEdDaGlsZE5vZGVWaWV3KToKKyAgICAiIiIKKyAgICBjbGFzcyBGdHNUZW1w bGF0ZVZpZXcoUEdDaGlsZE5vZGVWaWV3KQorCisgICAgICAgIEEgdmlldyBj bGFzcyBmb3IgRlRTIFRlbXBhbHRlIG5vZGUgZGVyaXZlZCBmcm9tIFBHQ2hp bGROb2RlVmlldy4gVGhpcyBjbGFzcyBpcworICAgICAgICByZXNwb25zaWJs ZSBmb3IgYWxsIHRoZSBzdHVmZiByZWxhdGVkIHRvIHZpZXcgbGlrZSBjcmVh dGUvdXBkYXRlL2RlbGV0ZQorICAgICAgICBGVFMgdGVtcGxhdGUsIHNob3dp bmcgcHJvcGVydGllcyBvZiBub2RlLCBzaG93aW5nIHNxbCBpbiBzcWwgcGFu ZS4KKworICAgIE1ldGhvZHM6CisgICAgLS0tLS0tLQorICAgICogX19pbml0 X18oKiprd2FyZ3MpCisgICAgICAtIE1ldGhvZCBpcyB1c2VkIHRvIGluaXRp YWxpemUgdGhlIEZ0c1RlbXBsYXRlVmlldyBhbmQgaXQncyBiYXNlIHZpZXcu CisKKyAgICAqIG1vZHVsZV9qcygpCisgICAgICAtIFRoaXMgcHJvcGVydHkg ZGVmaW5lcyAoaWYgamF2YXNjcmlwdCkgZXhpc3RzIGZvciB0aGlzIG5vZGUu CisgICAgICAgIE92ZXJyaWRlIHRoaXMgcHJvcGVydHkgZm9yIHlvdXIgb3du IGxvZ2ljCisKKyAgICAqIGNoZWNrX3ByZWNvbmRpdGlvbigpCisgICAgICAt IFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hp Y2ggd2lsbCBjaGVja3MKKyAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBi ZWZvcmUgcnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAg ICAgICAgbWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVz IHRvIHNlbGYKKworICAgICogbGlzdCgpCisgICAgICAtIFRoaXMgZnVuY3Rp b24gaXMgdXNlZCB0byBsaXN0IGFsbCB0aGUgIG5vZGVzIHdpdGhpbiB0aGF0 IGNvbGxlY3Rpb24uCisKKyAgICAqIG5vZGVzKCkKKyAgICAgIC0gVGhpcyBm dW5jdGlvbiB3aWxsIHVzZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hpbGQgbm9k ZSB3aXRoaW4gdGhhdCBjb2xsZWN0aW9uLgorICAgICAgICBIZXJlIGl0IHdp bGwgY3JlYXRlIGFsbCB0aGUgRlRTIFRlbXBsYXRlIG5vZGVzLgorCisgICAg KiBwcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQsIHJnX2lkKQorICAgICAgLSBU aGlzIGZ1bmN0aW9uIHdpbGwgc2hvdyB0aGUgcHJvcGVydGllcyBvZiB0aGUg c2VsZWN0ZWQgRlRTIFRlbXBsYXRlIG5vZGUKKworICAgICogY3JlYXRlKGdp ZCwgc2lkLCBkaWQsIHJnX2lkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdp bGwgY3JlYXRlIHRoZSBuZXcgRlRTIFRlbXBsYXRlIG9iamVjdAorCisgICAg KiB1cGRhdGUoZ2lkLCBzaWQsIGRpZCwgcmdfaWQpCisgICAgICAtIFRoaXMg ZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGRhdGEgZm9yIHRoZSBzZWxlY3Rl ZCBGVFMgVGVtcGxhdGUgbm9kZQorCisgICAgKiBkZWxldGUoc2VsZiwgZ2lk LCBzaWQsIHJnX2lkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGRy b3AgdGhlIEZUUyBUZW1wbGF0ZSBvYmplY3QKKworICAgICogbXNxbChnaWQs IHNpZCwgZGlkLCByZ19pZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiBpcyB1 c2VkIHRvIHJldHVybiBtb2RpZmllZCBTUUwgZm9yIHRoZSBzZWxlY3RlZCBG VFMgVGVtcGxhdGUgbm9kZQorCisgICAgKiBnZXRfc3FsKGRhdGEsIHJnX2lk KQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3FsIGZy b20gbW9kZWwgZGF0YQorCisgICAgKiBzcWwoZ2lkLCBzaWQsIGRpZCwgcmdf aWQpOgorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3Fs IHRvIHNob3cgaXQgaW4gc3FsIHBhbmUgZm9yIHRoZSBzZWxlY3RlZCBGVFMg VGVtcGxhdGUgbm9kZS4KKworICAgICogZ2V0X3R5cGUoKToKKyAgICAgIC0g VGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIGFsbCB0aGUgdHlwZXMgZm9yIHNv dXJjZSBhbmQgdGFyZ2V0IHR5cGVzIHNlbGVjdCBjb250cm9sLgorCisgICAg KiBnZXRfZnVuY3Rpb25zKCk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2ls bCBmZXRjaCBhc3NvY2lhdGVkIGZ1bmN0aW9ucyBsaXN0IGRlcGVuZGluZyBv biBzZWxlY3RlZCBzb3VyY2UKKyAgICAgICAgYW5kIHRhcmdldCB0eXBlcyB3 aGlsZSBjcmVhdGluZyBhIG5ldyBGVFMgVGVtcGxhdGUgbm9kZS4KKworICAg ICogZGVwZW5kZW50cyhnaWQsIHNpZCwgZGlkLCBsaWQpOgorICAgICAgLSBU aGlzIGZ1bmN0aW9uIGdldCB0aGUgZGVwZW5kZW50cyBhbmQgcmV0dXJuIGFq YXggcmVzcG9uc2UgZm9yIHRoZSBGdHMgVGVtcGFsdGUgbm9kZS4KKworICAg ICogZGVwZW5kZW5jaWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIGxpZCk6Cisg ICAgICAtIFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBkZXBlbmRlbmNpZXMgYW5k IHJldHVybiBhamF4IHJlc3BvbnNlIGZvciB0aGUgRlRTIFRlbXBhbHRlIG5v ZGUuCisKKyAgICAiIiIKKworICAgIG5vZGVfdHlwZSA9IGJsdWVwcmludC5u b2RlX3R5cGUKKworICAgIHBhcmVudF9pZHMgPSBbCisgICAgICAgIHsndHlw ZSc6ICdpbnQnLCAnaWQnOiAnZ2lkJ30sCisgICAgICAgIHsndHlwZSc6ICdp bnQnLCAnaWQnOiAnc2lkJ30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAn aWQnOiAnZGlkJ30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAn c2NpZCd9CisgICAgXQorICAgIGlkcyA9IFsKKyAgICAgICAgeyd0eXBlJzog J2ludCcsICdpZCc6ICd0aWQnfQorICAgIF0KKworICAgIG9wZXJhdGlvbnMg PSBkaWN0KHsKKyAgICAgICAgJ29iaic6IFsKKyAgICAgICAgICAgIHsnZ2V0 JzogJ3Byb3BlcnRpZXMnLCAnZGVsZXRlJzogJ2RlbGV0ZScsICdwdXQnOiAn dXBkYXRlJ30sCisgICAgICAgICAgICB7J2dldCc6ICdsaXN0JywgJ3Bvc3Qn OiAnY3JlYXRlJ30KKyAgICAgICAgXSwKKyAgICAgICAgJ2NoaWxkcmVuJzog W3sKKyAgICAgICAgICAgICdnZXQnOiAnY2hpbGRyZW4nCisgICAgICAgIH1d LAorICAgICAgICAnZGVsZXRlJzogW3snZGVsZXRlJzogJ2RlbGV0ZSd9XSwK KyAgICAgICAgJ25vZGVzJzogW3snZ2V0JzogJ25vZGUnfSwgeydnZXQnOiAn bm9kZXMnfV0sCisgICAgICAgICdzcWwnOiBbeydnZXQnOiAnc3FsJ31dLAor ICAgICAgICAnbXNxbCc6IFt7J2dldCc6ICdtc3FsJ30sIHsnZ2V0JzogJ21z cWwnfV0sCisgICAgICAgICdzdGF0cyc6IFt7J2dldCc6ICdzdGF0aXN0aWNz J31dLAorICAgICAgICAnZGVwZW5kZW5jeSc6IFt7J2dldCc6ICdkZXBlbmRl bmNpZXMnfV0sCisgICAgICAgICdkZXBlbmRlbnQnOiBbeydnZXQnOiAnZGVw ZW5kZW50cyd9XSwKKyAgICAgICAgJ21vZHVsZS5qcyc6IFt7fSwge30sIHsn Z2V0JzogJ21vZHVsZV9qcyd9XSwKKyAgICAgICAgJ2dldF9sZXhpemUnOiBb eydnZXQnOiAnZ2V0X2xleGl6ZSd9LCB7J2dldCc6ICdnZXRfbGV4aXplJ31d LAorICAgICAgICAnZ2V0X2luaXQnOiBbeydnZXQnOiAnZ2V0X2luaXQnfSwg eydnZXQnOiAnZ2V0X2luaXQnfV0sCisgICAgfSkKKworICAgIGRlZiBfaW5p dF8oc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLmNvbm4gPSBOb25l CisgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9IE5vbmUKKyAgICAgICAg c2VsZi5tYW5hZ2VyID0gTm9uZQorICAgICAgICBzdXBlcihGdHNUZW1wbGF0 ZVZpZXcsIHNlbGYpLl9faW5pdF9fKCoqa3dhcmdzKQorCisgICAgZGVmIG1v ZHVsZV9qcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgcHJv cGVydHkgZGVmaW5lcyB3aGV0aGVyIGphdmFzY3JpcHQgZXhpc3RzIGZvciB0 aGlzIG5vZGUuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gbWFrZV9y ZXNwb25zZSgKKyAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAg ICAgICAgICAgICAiZnRzX3RlbXBsYXRlL2pzL2Z0c190ZW1wbGF0ZXMuanMi LAorICAgICAgICAgICAgICAgIF89Z2V0dGV4dAorICAgICAgICAgICAgKSwK KyAgICAgICAgICAgIDIwMCwgeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRp b24veC1qYXZhc2NyaXB0J30KKyAgICAgICAgKQorCisgICAgZGVmIGNoZWNr X3ByZWNvbmRpdGlvbihmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMg ZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2ls bCBjaGVja3MKKyAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUg cnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAgICAgICAg bWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNl bGYKKyAgICAgICAgIiIiCisKKyAgICAgICAgQHdyYXBzKGYpCisgICAgICAg IGRlZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICAjIEhl cmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJncyB3aWxsIGhvbGQg Z2lkLHNpZCxkaWQKKyAgICAgICAgICAgIHNlbGYgPSBhcmdzWzBdCisgICAg ICAgICAgICBzZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRf RFJJVkVSKS5jb25uZWN0aW9uX21hbmFnZXIoCisgICAgICAgICAgICAgICAg a3dhcmdzWydzaWQnXSkKKyAgICAgICAgICAgIHNlbGYuY29ubiA9IHNlbGYu bWFuYWdlci5jb25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2RpZCddKQorICAgICAg ICAgICAgIyBJZiBEQiBub3QgY29ubmVjdGVkIHRoZW4gcmV0dXJuIGVycm9y IHRvIGJyb3dzZXIKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29u bmVjdGVkKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlv bl9yZXF1aXJlZCgKKyAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAg ICAgICAgICAgICAgICAgICAgICAgICJDb25uZWN0aW9uIHRvIHRoZSBzZXJ2 ZXIgaGFzIGJlZW4gbG9zdCEiCisgICAgICAgICAgICAgICAgICAgICkKKyAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICAjIHdlIHdpbGwgc2V0IHRl bXBsYXRlIHBhdGggZm9yIHNxbCBzY3JpcHRzIGRlcGVuZGluZyB1cG9uIHNl cnZlciB2ZXJzaW9uCisgICAgICAgICAgICB2ZXIgPSBzZWxmLm1hbmFnZXIu dmVyc2lvbgorICAgICAgICAgICAgaWYgdmVyID49IDkwMTAwOgorICAgICAg ICAgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9ICdmdHNfdGVtcGxhdGUv c3FsLzkuMV9wbHVzJworICAgICAgICAgICAgcmV0dXJuIGYoKmFyZ3MsICoq a3dhcmdzKQorCisgICAgICAgIHJldHVybiB3cmFwCisKKyAgICBAY2hlY2tf cHJlY29uZGl0aW9uCisgICAgZGVmIGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgc2NpZCk6CisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAg ICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9w ZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgIHNjaWQ9c2NpZAorICAgICAg ICApCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVf ZGljdChzcWwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVz KQorCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAg ICAgcmVzcG9uc2U9cmVzWydyb3dzJ10sCisgICAgICAgICAgICBzdGF0dXM9 MjAwCisgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAg ICBkZWYgbm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAg ICAgIHJlcyA9IFtdCisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgK KyAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdw cm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgIHNjaWQ9c2NpZAorICAg ICAgICApCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVj dXRlXzJkYXJyYXkoc3FsKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1yc2V0KQorCisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgor ICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICBzZWxm LmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAg ICAgICAgICAgIHJvd1snb2lkJ10sCisgICAgICAgICAgICAgICAgICAgIGRp ZCwKKyAgICAgICAgICAgICAgICAgICAgcm93Wyd0bXBsbmFtZSddLAorICAg ICAgICAgICAgICAgICAgICBpY29uPSJpY29uLWZ0c190ZW1wbGF0ZSIKKyAg ICAgICAgICAgICAgICApKQorCisgICAgICAgIHJldHVybiBtYWtlX2pzb25f cmVzcG9uc2UoCisgICAgICAgICAgICBkYXRhPXJlcywKKyAgICAgICAgICAg IHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRp dGlvbgorICAgIGRlZiBwcm9wZXJ0aWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQs IHNjaWQsIHRpZCk6CisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgK KyAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdw cm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgIHNjaWQ9c2NpZCwKKyAg ICAgICAgICAgIHRpZD10aWQKKyAgICAgICAgKQorICAgICAgICBzdGF0dXMs IHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorCisgICAgICAg IGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICByZXR1cm4g YWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPXJlc1sncm93 cyddWzBdLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisK KyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGNyZWF0ZShzZWxm LCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGVzIG5ldyB0aGUgZnRzX3RlbXBs YXRlIG9iamVjdAorICAgICAgICA6cGFyYW0gZ2lkOiBncm91cCBpZAorICAg ICAgICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAgOnBhcmFtIGRp ZDogZGF0YWJhc2UgaWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IHNjaGVtYSBp ZAorICAgICAgICAiIiIKKworICAgICAgICAjIE1hbmRhdG9yeSBmaWVsZHMg dG8gY3JlYXRlIGEgbmV3IGZ0cyB0ZW1wbGF0ZQorICAgICAgICByZXF1aXJl ZF9hcmdzID0gWworICAgICAgICAgICAgJ3RtcGxsZXhpemUnLAorICAgICAg ICAgICAgJ3NjaGVtYScsCisgICAgICAgICAgICAndG1wbG5hbWUnCisgICAg ICAgIF0KKworICAgICAgICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVl c3QuZm9ybSBlbHNlIGpzb24ubG9hZHMoCisgICAgICAgICAgICByZXF1ZXN0 LmRhdGEuZGVjb2RlKCkpCisgICAgICAgIGZvciBhcmcgaW4gcmVxdWlyZWRf YXJnczoKKyAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gZGF0YToKKyAgICAg ICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgICAgICBzdGF0dXM9NDEwLAorICAgICAgICAgICAgICAgICAg ICBzdWNjZXNzPTAsCisgICAgICAgICAgICAgICAgICAgIGVycm9ybXNnPWdl dHRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAiQ291bGRuJ3QgZmlu ZCB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICglcykuIiAlIGFyZworICAgICAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKQorICAgICAgICB0 cnk6CisgICAgICAgICAgICAjIEZldGNoIHNjaGVtYSBuYW1lIGZyb20gc2No ZW1hIG9pZAorICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIv Ii5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdzY2hlbWEuc3FsJ10pLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uPXNlbGYu Y29ubiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisK KyAgICAgICAgICAgIHN0YXR1cywgc2NoZW1hID0gc2VsZi5jb25uLmV4ZWN1 dGVfc2NhbGFyKHNxbCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6Cisg ICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1zY2hlbWEpCisKKyAgICAgICAgICAgICMgcmVwbGFjZSBzY2hl bWEgb2lkIHdpdGggc2NoZW1hIG5hbWUgYmVmb3JlIHBhc3NpbmcgdG8gY3Jl YXRlLnNxbAorICAgICAgICAgICAgIyB0byBnZW5lcmF0ZSBwcm9wZXIgc3Fs IHF1ZXJ5CisgICAgICAgICAgICBuZXdfZGF0YSA9IGRhdGEuY29weSgpCisg ICAgICAgICAgICBuZXdfZGF0YVsnc2NoZW1hJ10gPSBzY2hlbWEKKyAgICAg ICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLCAnY3JlYXRlLnNxbCddKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYXRhPW5ld19kYXRhLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm49c2VsZi5jb25uLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKHNxbCkK KyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisK KyAgICAgICAgICAgICMgd2UgbmVlZCBmdHNfdGVtcGxhdGUgaWQgdG8gdG8g YWRkIG9iamVjdCBpbiB0cmVlIGF0IGJyb3dzZXIsCisgICAgICAgICAgICAj IGJlbG93IHNxbCB3aWxsIGdpdmUgdGhlIHNhbWUKKyAgICAgICAgICAgIHNx bCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAiLyIuam9p bihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSksCisg ICAgICAgICAgICAgICAgbmFtZT1kYXRhWyd0bXBsbmFtZSddCisgICAgICAg ICAgICApCisgICAgICAgICAgICBzdGF0dXMsIHRpZCA9IHNlbGYuY29ubi5l eGVjdXRlX3NjYWxhcihzcWwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVz OgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9dGlkKQorCisgICAgICAgICAgICByZXR1cm4ganNvbmlm eSgKKyAgICAgICAgICAgICAgICBub2RlPXNlbGYuYmx1ZXByaW50LmdlbmVy YXRlX2Jyb3dzZXJfbm9kZSgKKyAgICAgICAgICAgICAgICAgICAgdGlkLAor ICAgICAgICAgICAgICAgICAgICBkaWQsCisgICAgICAgICAgICAgICAgICAg IGRhdGFbJ3RtcGxuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgIGljb249 Imljb24tZnRzX3RlbXBsYXRlIgorICAgICAgICAgICAgICAgICkKKyAgICAg ICAgICAgICkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVm IHVwZGF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpOgorICAg ICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0 ZXh0IHNlYXJjaCB0ZW1wbGF0ZSBvYmplY3QKKyAgICAgICAgOnBhcmFtIGdp ZDogZ3JvdXAgaWQKKyAgICAgICAgOnBhcmFtIHNpZDogc2VydmVyIGlkCisg ICAgICAgIDpwYXJhbSBkaWQ6IGRhdGFiYXNlIGlkCisgICAgICAgIDpwYXJh bSBzY2lkOiBzY2hlbWEgaWQKKyAgICAgICAgOnBhcmFtIHRpZDogZnRzIHRl bXBhdGUgaWQKKyAgICAgICAgIiIiCisgICAgICAgIGRhdGEgPSByZXF1ZXN0 LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVsc2UganNvbi5sb2FkcygKKyAgICAg ICAgICAgIHJlcXVlc3QuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICAjIEZl dGNoIHNxbCBxdWVyeSB0byB1cGRhdGUgZnRzIHRlbXBsYXRlCisgICAgICAg IHNxbCA9IHNlbGYuZ2V0X3NxbChnaWQsIHNpZCwgZGlkLCBzY2lkLCBkYXRh LCB0aWQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIHNxbCBhbmQg c3FsLnN0cmlwKCdcbicpIGFuZCBzcWwuc3RyaXAoJyAnKToKKyAgICAgICAg ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxh cihzcWwpCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9q c29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTEs CisgICAgICAgICAgICAgICAgICAgIGluZm89IkZUUyBUZW1wbGF0ZSB1cGRh dGVkIiwKKyAgICAgICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAgICAg ICAgICAgICAgICAgICAnaWQnOiB0aWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2dp ZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdkaWQnOiBkaWQs CisgICAgICAgICAgICAgICAgICAgICAgICAnc2NpZCc6IHNjaWQKKyAgICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9y ZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAg ICAgICAgICAgICAgICAgICBpbmZvPSJOb3RoaW5nIHRvIHVwZGF0ZSIsCisg ICAgICAgICAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAgICAgICAg ICAgICAgJ2lkJzogdGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Np ZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdnaWQnOiBnaWQs CisgICAgICAgICAgICAgICAgICAgICAgICAnZGlkJzogZGlkLAorICAgICAg ICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lkCisgICAgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgZXhjZXB0 IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tf cHJlY29uZGl0aW9uCisgICAgZGVmIGRlbGV0ZShzZWxmLCBnaWQsIHNpZCwg ZGlkLCBzY2lkLCB0aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBm dW5jdGlvbiB3aWxsIGRyb3AgdGhlIGZ0c190ZW1wbGF0ZSBvYmplY3QKKyAg ICAgICAgOnBhcmFtIGdpZDogZ3JvdXAgaWQKKyAgICAgICAgOnBhcmFtIHNp ZDogc2VydmVyIGlkCisgICAgICAgIDpwYXJhbSBkaWQ6IGRhdGFiYXNlIGlk CisgICAgICAgIDpwYXJhbSBzY2lkOiBzY2hlbWEgaWQKKyAgICAgICAgOnBh cmFtIHRpZDogZnRzIHRlbXBhdGUgaWQKKyAgICAgICAgIiIiCisgICAgICAg ICMgQmVsb3cgd2lsbCBkZWNpZGUgaWYgaXQncyBzaW1wbGUgZHJvcCBvciBk cm9wIHdpdGggY2FzY2FkZSBjYWxsCisgICAgICAgIGlmIHNlbGYuY21kID09 ICdkZWxldGUnOgorICAgICAgICAgICAgIyBUaGlzIGlzIGEgY2FzY2FkZSBv cGVyYXRpb24KKyAgICAgICAgICAgIGNhc2NhZGUgPSBUcnVlCisgICAgICAg IGVsc2U6CisgICAgICAgICAgICBjYXNjYWRlID0gRmFsc2UKKworICAgICAg ICB0cnk6CisgICAgICAgICAgICAjIEdldCBuYW1lIGZvciB0ZW1wbGF0ZSBm cm9tIHRpZAorICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIv Ii5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdkZWxldGUuc3FsJ10pLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD10aWQpCisg ICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2Rp Y3Qoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICAgICAgIyBEcm9wIGZ0cyB0ZW1wbGF0ZQorICAg ICAgICAgICAgcmVzdWx0ID0gcmVzWydyb3dzJ11bMF0KKyAgICAgICAgICAg IHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLCAnZGVsZXRlLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBuYW1lPXJlc3VsdFsnbmFtZSddLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYT1yZXN1bHRbJ3NjaGVt YSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Nh ZGU9Y2FzY2FkZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKKworICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9zY2FsYXIoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNv bl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBzdWNjZXNzPTEsCisgICAg ICAgICAgICAgICAgaW5mbz1nZXR0ZXh0KCJGdHMgdGVtcGxhdGUgZHJvcHBl ZCIpLAorICAgICAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAgICAg ICAgICAnaWQnOiB0aWQsCisgICAgICAgICAgICAgICAgICAgICdzaWQnOiBz aWQsCisgICAgICAgICAgICAgICAgICAgICdnaWQnOiBnaWQsCisgICAgICAg ICAgICAgICAgICAgICdkaWQnOiBkaWQsCisgICAgICAgICAgICAgICAgICAg ICdzY2lkJzogc2NpZAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0 cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbXNx bChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQ9Tm9uZSk6CisgICAg ICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgbW9kaWZp ZWQgU1FMCisgICAgICAgIDpwYXJhbSBnaWQ6IGdyb3VwIGlkCisgICAgICAg IDpwYXJhbSBzaWQ6IHNlcnZlciBpZAorICAgICAgICA6cGFyYW0gZGlkOiBk YXRhYmFzZSBpZAorICAgICAgICA6cGFyYW0gc2NpZDogc2NoZW1hIGlkCisg ICAgICAgIDpwYXJhbSB0aWQ6IGZ0cyB0ZW1wYXRlIGlkCisgICAgICAgICIi IgorICAgICAgICBkYXRhID0gcmVxdWVzdC5hcmdzCisKKyAgICAgICAgIyBG ZXRjaCBzcWwgcXVlcnkgZm9yIG1vZGlmaWVkIGRhdGEKKyAgICAgICAgc3Fs ID0gc2VsZi5nZXRfc3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRhdGEsIHRp ZCkKKworICAgICAgICBpZiBpc2luc3RhbmNlKHNxbCwgc3RyKSBhbmQgc3Fs IGFuZCBzcWwuc3RyaXAoJ1xuJykgYW5kIHNxbC5zdHJpcCgnICcpOgorICAg ICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAg ICAgICAgICBkYXRhPXNxbCwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAw CisgICAgICAgICAgICApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBy ZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIGRh dGE9Ii0tbW9kaWZpZWQgU1FMIiwKKyAgICAgICAgICAgICAgICBzdGF0dXM9 MjAwCisgICAgICAgICAgICApCisKKyAgICBkZWYgZ2V0X3NxbChzZWxmLCBn aWQsIHNpZCwgZGlkLCBzY2lkLCBkYXRhLCB0aWQ9Tm9uZSk6CisgICAgICAg ICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIFNRTCBm b3IgbW9kZWwgZGF0YQorICAgICAgICA6cGFyYW0gZ2lkOiBncm91cCBpZAor ICAgICAgICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAgOnBhcmFt IGRpZDogZGF0YWJhc2UgaWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IHNjaGVt YSBpZAorICAgICAgICA6cGFyYW0gdGlkOiBmdHMgdGVtcGF0ZSBpZAorICAg ICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBGZXRjaCBz cWwgZm9yIHVwZGF0ZQorICAgICAgICAgICAgaWYgdGlkIGlzIG5vdCBOb25l OgorICAgICAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAg ICAgICAgICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0 aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICB0 aWQ9dGlkLAorICAgICAgICAgICAgICAgICAgICBzY2lkPXNjaWQKKyAgICAg ICAgICAgICAgICApCisKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9 IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICAgICAgICAg IGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAg ICAgICAgICAgb2xkX2RhdGEgPSByZXNbJ3Jvd3MnXVswXQorCisgICAgICAg ICAgICAgICAgIyBJZiB1c2VyIGhhcyBjaGFuZ2VkIHRoZSBzY2hlbWEgdGhl biBmZXRjaCBuZXcgc2NoZW1hIGRpcmVjdGx5CisgICAgICAgICAgICAgICAg IyB1c2luZyBpdHMgb2lkIG90aGVyd2lzZSBmZXRjaCBvbGQgc2NoZW1hIG5h bWUgdXNpbmcgZnRzIHRlbXBsYXRlIG9pZAorICAgICAgICAgICAgICAgIHNx bCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgIi8i LmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NjaGVtYS5zcWwnXSksCisg ICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSkKKworICAgICAgICAgICAg ICAgIHN0YXR1cywgbmV3X3NjaGVtYSA9IHNlbGYuY29ubi5leGVjdXRlX3Nj YWxhcihzcWwpCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1uZXdfc2NoZW1hKQorCisgICAgICAgICAgICAgICAgIyBS ZXBsYWNlIHNjaGVtYSBvaWQgd2l0aCBzY2hlbWEgbmFtZQorICAgICAgICAg ICAgICAgIG5ld19kYXRhID0gZGF0YS5jb3B5KCkKKyAgICAgICAgICAgICAg ICBpZiAnc2NoZW1hJyBpbiBuZXdfZGF0YToKKyAgICAgICAgICAgICAgICAg ICAgbmV3X2RhdGFbJ3NjaGVtYSddID0gbmV3X3NjaGVtYQorCisgICAgICAg ICAgICAgICAgIyBGZXRjaCBvbGQgc2NoZW1hIG5hbWUgdXNpbmcgb2xkIHNj aGVtYSBvaWQKKyAgICAgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxh dGUoCisgICAgICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBs YXRlX3BhdGgsICdzY2hlbWEuc3FsJ10pLAorICAgICAgICAgICAgICAgICAg ICBkYXRhPW9sZF9kYXRhKQorCisgICAgICAgICAgICAgICAgc3RhdHVzLCBv bGRfc2NoZW1hID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKHNxbCkKKyAg ICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPW9s ZF9zY2hlbWEpCisKKyAgICAgICAgICAgICAgICAjIFJlcGxhY2Ugb2xkIHNj aGVtYSBvaWQgd2l0aCBvbGQgc2NoZW1hIG5hbWUKKyAgICAgICAgICAgICAg ICBvbGRfZGF0YVsnc2NoZW1hJ10gPSBvbGRfc2NoZW1hCisKKyAgICAgICAg ICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAg ICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICd1cGRhdGUu c3FsJ10pLAorICAgICAgICAgICAgICAgICAgICBkYXRhPW5ld19kYXRhLCBv X2RhdGE9b2xkX2RhdGEKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAg ICAgICAgIyBGZXRjaCBzcWwgcXVlcnkgZm9yIG1vZGlmaWVkIGRhdGEKKyAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBGZXRjaCBzY2hl bWEgbmFtZSBmcm9tIHNjaGVtYSBvaWQKKyAgICAgICAgICAgICAgICBzcWwg PSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0 aCwgJ3NjaGVtYS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGE9ZGF0YSkKKworICAgICAgICAgICAgICAgIHN0 YXR1cywgc2NoZW1hID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKHNxbCkK KyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXNjaGVtYSkKKworICAgICAgICAgICAgICAgICMgUmVwbGFjZSBzY2hlbWEg b2lkIHdpdGggc2NoZW1hIG5hbWUKKyAgICAgICAgICAgICAgICBuZXdfZGF0 YSA9IGRhdGEuY29weSgpCisgICAgICAgICAgICAgICAgbmV3X2RhdGFbJ3Nj aGVtYSddID0gc2NoZW1hCisKKyAgICAgICAgICAgICAgICBpZiAndG1wbGxl eGl6ZScgaW4gbmV3X2RhdGEgYW5kIFwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ3RtcGxuYW1lJyBpbiBuZXdfZGF0YSBhbmQgXAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NoZW1hJyBpbiBuZXdf ZGF0YToKKyAgICAgICAgICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Ny ZWF0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkYXRhPW5ld19kYXRhLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29ubj1zZWxmLmNvbm4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAg ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBzcWwgPSAi LS0gaW5jb21wbGV0ZSBkZWZpbml0aW9uIgorICAgICAgICAgICAgcmV0dXJu IHNxbC5zdHJpcCgnXG4nKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24g YXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlv bgorICAgIGRlZiBnZXRfbGV4aXplKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNj aWQsIHRpZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVu Y3Rpb24gd2lsbCByZXR1cm4gbGV4aXplIGZ1bmN0aW9ucyBsaXN0IGZvciBm dHMgdGVtcGxhdGUKKyAgICAgICAgOnBhcmFtIGdpZDogZ3JvdXAgaWQKKyAg ICAgICAgOnBhcmFtIHNpZDogc2VydmVyIGlkCisgICAgICAgIDpwYXJhbSBk aWQ6IGRhdGFiYXNlIGlkCisgICAgICAgIDpwYXJhbSBzY2lkOiBzY2hlbWEg aWQKKyAgICAgICAgOnBhcmFtIHRpZDogZnRzIHRlbXBhdGUgaWQKKyAgICAg ICAgIiIiCisgICAgICAgIGRhdGEgPSByZXF1ZXN0LmFyZ3MKKyAgICAgICAg c3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRl X3BhdGgsICdmdW5jdGlvbnMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGV4aXplPVRydWUpCisgICAgICAgIHN0YXR1cywgcnNl dCA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorCisgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXJzZXQpCisKKyAgICAgICAgIyBFbXB0eSBz ZXQgaXMgYWRkZWQgYmVmb3JlIGFjdHVhbCBsaXN0IGFzIGluaXRpYWxseSBp dCB3aWxsIGJlIHZpc2libGUKKyAgICAgICAgIyBhdCBsZXhpemUgc2VsZWN0 IGNvbnRyb2wgd2hpbGUgY3JlYXRpbmcgYSBuZXcgZnRzIHRlbXBsYXRlCisg ICAgICAgIHJlcyA9IFt7J2xhYmVsJzogJycsICd2YWx1ZSc6ICcnfV0KKyAg ICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICBy ZXMuYXBwZW5kKHsnbGFiZWwnOiByb3dbJ3Byb25hbWUnXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICd2YWx1ZSc6IHJvd1sncHJvbmFtZSddfSkKKyAg ICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg IGRhdGE9cmVzLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAp CisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGdldF9pbml0 KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZD1Ob25lKToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gaW5p dCBmdW5jdGlvbnMgbGlzdCBmb3IgZnRzIHRlbXBsYXRlCisgICAgICAgIDpw YXJhbSBnaWQ6IGdyb3VwIGlkCisgICAgICAgIDpwYXJhbSBzaWQ6IHNlcnZl ciBpZAorICAgICAgICA6cGFyYW0gZGlkOiBkYXRhYmFzZSBpZAorICAgICAg ICA6cGFyYW0gc2NpZDogc2NoZW1hIGlkCisgICAgICAgIDpwYXJhbSB0aWQ6 IGZ0cyB0ZW1wYXRlIGlkCisgICAgICAgICIiIgorICAgICAgICBkYXRhID0g cmVxdWVzdC5hcmdzCisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgi LyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnZnVuY3Rpb25zLnNxbCdd KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXQ9VHJ1ZSkK KyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfZGlj dChzcWwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkK KworICAgICAgICAjIFdlIGhhdmUgYWRkZWQgdGhpcyB0byBtYXAgYWdhaW5z dCAnLScgd2hpY2ggaXMgY29taW5nIGZyb20gc2VydmVyCisgICAgICAgIHJl cyA9IFt7J2xhYmVsJzogJycsICd2YWx1ZSc6ICctJ31dCisgICAgICAgIGZv ciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgcmVzLmFwcGVu ZCh7J2xhYmVsJzogcm93Wydwcm9uYW1lJ10sCisgICAgICAgICAgICAgICAg ICAgICAgICAndmFsdWUnOiByb3dbJ3Byb25hbWUnXX0pCisgICAgICAgIHJl dHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICBkYXRhPXJl cywKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAg QGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBzcWwoc2VsZiwgZ2lkLCBz aWQsIGRpZCwgc2NpZCwgdGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRo aXMgZnVuY3Rpb24gd2lsbCByZXZlcnNlIGdlbmVyYXRlIHNxbCBmb3Igc3Fs IHBhbmVsCisgICAgICAgIDpwYXJhbSBnaWQ6IGdyb3VwIGlkCisgICAgICAg IDpwYXJhbSBzaWQ6IHNlcnZlciBpZAorICAgICAgICA6cGFyYW0gZGlkOiBk YXRhYmFzZSBpZAorICAgICAgICA6cGFyYW0gc2NpZDogc2NoZW1hIGlkCisg ICAgICAgIDpwYXJhbSB0aWQ6IGZ0cyB0ZW1wYXRlIGlkCisgICAgICAgICIi IgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVt cGxhdGUoCisgICAgICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxh dGVfcGF0aCwgJ3NxbC5zcWwnXSksCisgICAgICAgICAgICAgICAgdGlkPXRp ZCwKKyAgICAgICAgICAgICAgICBzY2lkPXNjaWQsCisgICAgICAgICAgICAg ICAgY29ubj1zZWxmLmNvbm4KKyAgICAgICAgICAgICkKKyAgICAgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKHNxbCkK KyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcigKKyAgICAgICAgICAgICAg ICAgICAgXygKKyAgICAgICAgICAgICAgICAgICAgICAgICJFUlJPUjogQ291 bGRuJ3QgZ2VuZXJhdGUgcmV2ZXJzZWQgZW5naW5lZXJlZCBRdWVyeSBmb3Ig dGhlIGZ0cyB0ZW1wbGF0ZSFcbnswfSIpLmZvcm1hdCgKKyAgICAgICAgICAg ICAgICAgICAgICAgIHJlcworICAgICAgICAgICAgICAgICAgICApCisgICAg ICAgICAgICAgICAgKQorCisgICAgICAgICAgICBpZiByZXMgaXMgTm9uZToK KyAgICAgICAgICAgICAgICByZXR1cm4gZ29uZSgKKyAgICAgICAgICAgICAg ICAgICAgXygKKyAgICAgICAgICAgICAgICAgICAgICAgICJFUlJPUjogQ291 bGRuJ3QgZ2VuZXJhdGUgcmV2ZXJzZWQgZW5naW5lZXJlZCBRdWVyeSBmb3Ig ZnRzIHRlbXBsYXRlIG5vZGUhIikKKyAgICAgICAgICAgICAgICApCisKKyAg ICAgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKHJlc3BvbnNlPXJlcykK KworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihl KSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5k ZW50cyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAg ICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVu dHMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUg RlRTIFRlbXBsYXRlIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAg ICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNl cnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAg ICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAgICB0aWQ6IEZUUyBU ZW1wbGF0ZSBJRAorICAgICAgICAiIiIKKyAgICAgICAgZGVwZW5kZW50c19y ZXN1bHQgPSBzZWxmLmdldF9kZXBlbmRlbnRzKHNlbGYuY29ubiwgdGlkKQor ICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAg ICByZXNwb25zZT1kZXBlbmRlbnRzX3Jlc3VsdCwKKyAgICAgICAgICAgICAg ICBzdGF0dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZXBlbmRlbmNpZXMoc2VsZiwgZ2lk LCBzaWQsIGRpZCwgc2NpZCwgdGlkKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBkZXBlbmRlbmNpZXMgYW5kIHJldHVy biBhamF4IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUgRlRTIFRlbXBsYXRl IG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2Vy dmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAg ICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgc2NpZDog U2NoZW1hIElECisgICAgICAgICAgICB0aWQ6IEZUUyBUZW1wYWx0ZSBJRAor ICAgICAgICAiIiIKKyAgICAgICAgZGVwZW5kZW5jaWVzX3Jlc3VsdCA9IHNl bGYuZ2V0X2RlcGVuZGVuY2llcyhzZWxmLmNvbm4sIHRpZCkKKyAgICAgICAg cmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgcmVzcG9u c2U9ZGVwZW5kZW5jaWVzX3Jlc3VsdCwKKyAgICAgICAgICAgICAgICBzdGF0 dXM9MjAwCisgICAgICAgICAgICAgICAgKQorCitGdHNUZW1wbGF0ZVZpZXcu cmVnaXN0ZXJfbm9kZV92aWV3KGJsdWVwcmludCkKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvc3RhdGljL2ltZy9jb2xsLWZ0 c190ZW1wbGF0ZS5wbmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVz L3N0YXRpYy9pbWcvY29sbC1mdHNfdGVtcGxhdGUucG5nCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAuLmZhYmQ0N2RhN2FlMjdiMDRiMGJmZDM4YTdiMWVlOWY2 YzFhNzRkMmMKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDYwMQp6Y21ZKzlZ ZS1XODZ2eXVqISE1Pzd6RFM9N2Y/UW5KRVp2OGl3WElFWiptakV3JUg3PXVJ THBpcEw4N2IkbU9hb1kKekdeNTlJQ09TOypLfCY4aHZ9cUV7QSYhdWNHQkFw OGNsV2pYVU5gO0poeVZHVjFMcF9sdntremc9eWpXUTAwOEorCnpQTWIkJTts QzhEUXxtVVAhSztGPUpfeS1XQ2EwUGNANSp6elI0ekJDRDZAKzROdFVOMlg7 UEJqPVdfR1daa3dWYwp6V2NoPEF6VUtMLUkxVll3WEI8QnklVHBOVW1aVUto dHJVYjg5MmIlMDhDaX0/KHpxelQ2fiQzT2MrVF5LOU17TFAKenc9dHxyNnlK I0FEP3UzSGA1NEROS0BjbTtjR0dtTEFpTlpXVlYpbzB4TSgpfWZNdlRGPGAl PTtLKypqaSpPU2ZPCnpYVzM0TT43ZU9yZXQjKU53UGRzUlNvUkxYdzl8QU9N T34oLTNuYlpgJCVPcD1HTWNedSEpQSYpNTVyKDQ2Wkg5dAp6MzhJZG9FfEtJ cGw1RU9rOFZSREZBT2goJG89JjMrTFFPekBVSzhAVHk/fU4zMyQ2fkAySXNN JE82T2BFQU01dDAKek9fJDQ3MFRzPDVKflhVeHRPdEY1OUxIZXtgU31lRT5s KTVSV0FJWGljVmhCLVV1JkQ4TzIyOFpeWEExISRIPitHCnp5SmIjbVVhIU1i ZEU5WnRlTndYfVFzOWE5NCkoPFFoOH1BLSZnS215UV8xPGMtSm0mNzJifERC JFNIcFN1WkxeJQp6cEI0NFQ3dmliSjsmQFY5NDB3TTBTXkItYV44SHRTYUlB QiplZlV2fSltSTFzNkkwVXdLcmIzMVVsU1hlKUR5UmMKej5fPFo9OUt0TH1C Yz1pe2ZoQ31eI0FGMFpBUU5hWUAzZmRwd31ZaD81UFowQEJsZSRnYFYzbCZI P0lqYGBLcTk5ClluPVJuM0hEUlhmQFNyTEhGMXk8e3c5Z20qMyNjNzVkakoz YwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnRzX3RlbXBsYXRlcy9zdGF0aWMvaW1nL2Z0c190ZW1wbGF0 ZS5wbmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3N0YXRpYy9p bWcvZnRzX3RlbXBsYXRlLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l Yjc4MGJmMGJiMGY1ZDc3N2U4YTcyNzIwYjVlZDBlMmFkNDhiYzQ1CkdJVCBi aW5hcnkgcGF0Y2gKbGl0ZXJhbCA2OTYKemNtWStDUzQ+akA2b3prY3E+d1E1 IUdMayNDTHpVM1Mpb1EhWXIkZUZVPC10JGNIS3EtaChiZF5RMn5oLU1Jak1v CnpCTylSSjFUPTAlPldHWGVWTSU8Xl8rJkl1ZGlURCFVZzYxeXxOUTRxJmlD QD8pVEFVR0BieXttMHwwPDtxRTJnJgp6Sm04PD9FMko1c0BIWWEwPmA7bjZI Q35Ee1ZgV24jdV4hS1kkMV5YQXYhWGFIaWt9MndRVl87P3s9TUN2PUpDd2cK ej9NNnxZZn1xMktGYitZPEpwVHJRXmM/cD42bFg7N3FhYUtPIVV2dnolayFm Z19tYm5Edmd7KzQ5cD9GV0puIVBUCnpSfit8QFdnb05iMUJTVjh2dVNDJW85 OVAzP201ZG9WY0NaYUdzck1+Rzx9eipaJk9xfE5qQlNUSStoKGBuMH1oPgp6 cTNKRyk+WSU2PWxEdWlMczBpWEohd2ZMWUoofDhsUU1WfG5sX1ZRVUA7WDZX IXx9XkZlaTZmfVh1OHZDalUmaz4Kemw1OE18SSliPUA8Q2sjITApfHpYJX1O dzRDQ004RVFCTSVISVBTI3BZN0RFeXUoSyN5aE4yfTFRajgjbEk5X0ExCnpN NHsrdXZsJXAqNmZqKDFHS0lxTWFTU187cUd1NHFmZ3E8NDxPQkBvIUVtbkla RmpxRVpudCQreHdsM3RST1Q9dwp6ODNGWj1GTG8oLXBWVmEqT1JpZnwhYkQh MnZ+KHFFX29XOFRTeHFqV1J4ZndTKlAxTT16MUYyaW0tcj14P1F7WSQKens8 fUFpUiY+QDYlZUNyO1dQT2d0YTQ7KCYtRVhVRk9VT2BYWn0maH5VeXQ5S2Za NkghKkBjPFViMWA3R2RefDl5Cnp3Vyp+IUowbU18fEh9T1FLZmdDX1htMn1g XkVLRk9hWnxfOVoqaX5CaUwlT28lRmdmZyk1RVpIeSFVNklRPVErSQp6dHVF SSVFUVRUPFpFJXpWK2BCQ3pia0RBc0lgOTV0YXY0emlEYDtXQnhjJVA7P1Fx MHJJQmFHSXFfUCU0a154RkUKejk4YG9XNjx+Tyg1PiFQLXMzTjA2ITYrMzdi fVdZVntSYjJqK0gmbj4lSyNYPTFXNERCRGxtRShtfjJjTmtOX1l0CkxLMW47 TUY7KUVxMDQ4eU4KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0 c190ZW1wbGF0ZS9qcy9mdHNfdGVtcGxhdGVzLmpzIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL2pzL2Z0 c190ZW1wbGF0ZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZTQ2ZmZjMwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9qcy9m dHNfdGVtcGxhdGVzLmpzCkBAIC0wLDAgKzEsMTMzIEBACitkZWZpbmUoCisg ICAgICAgIFsnanF1ZXJ5JywgJ3VuZGVyc2NvcmUnLCAndW5kZXJzY29yZS5z dHJpbmcnLCAncGdhZG1pbicsICdwZ2FkbWluLmJyb3dzZXInLCAnYWxlcnRp ZnknLCAncGdhZG1pbi5icm93c2VyLmNvbGxlY3Rpb24nXSwKK2Z1bmN0aW9u KCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgYWxlcnRpZnkpIHsKKwor ICAvLyBFeHRlbmQgdGhlIGNvbGxlY3Rpb24gY2xhc3MgZm9yIGZ0cyB0ZW1w bGF0ZQorICBpZiAoIXBnQnJvd3Nlci5Ob2Rlc1snY29sbC1mdHNfdGVtcGxh dGUnXSkgeworICAgIHZhciBmdHNfdGVtcGxhdGVzID0gcGdBZG1pbi5Ccm93 c2VyLk5vZGVzWydjb2xsLWZ0c190ZW1wbGF0ZSddID0KKyAgICAgIHBnQWRt aW4uQnJvd3Nlci5Db2xsZWN0aW9uLmV4dGVuZCh7CisgICAgICAgIG5vZGU6 ICdmdHNfdGVtcGxhdGUnLAorICAgICAgICBsYWJlbDogJ3t7IF8oJ0ZUUyBU ZW1wbGF0ZXMnKSB9fScsCisgICAgICAgIHR5cGU6ICdjb2xsLWZ0c190ZW1w bGF0ZScsCisgICAgICAgIGNvbHVtbnM6IFsndG1wbG5hbWUnLCAnZGVzY3Jp cHRpb24nXQorICAgICAgfSk7CisgIH07CisKKyAgLy8gRXh0ZW5kIHRoZSBu b2RlIGNsYXNzIGZvciBmdHMgdGVtcGxhdGUKKyAgaWYgKCFwZ0Jyb3dzZXIu Tm9kZXNbJ2Z0c190ZW1wbGF0ZSddKSB7CisgICAgcGdBZG1pbi5Ccm93c2Vy Lk5vZGVzWydmdHNfdGVtcGxhdGUnXSA9IHBnQWRtaW4uQnJvd3Nlci5Ob2Rl LmV4dGVuZCh7CisgICAgICBwYXJlbnRfdHlwZTogJ3NjaGVtYScsCisgICAg ICB0eXBlOiAnZnRzX3RlbXBsYXRlJywKKyAgICAgIGNhbkRyb3A6IHRydWUs CisgICAgICBjYW5Ecm9wQ2FzY2FkZTogdHJ1ZSwKKyAgICAgIGxhYmVsOiAn e3sgXygnRlRTIFRlbXBsYXRlcycpIH19JywKKyAgICAgIGhhc1NRTDogdHJ1 ZSwKKyAgICAgIGhhc0RlcGVuZHM6IHRydWUsCisgICAgICBJbml0OiBmdW5j dGlvbigpIHsKKworICAgICAgICAvLyBBdm9pZCBtdWx0aXBsZSByZWdpc3Ry YXRpb24gb2YgbWVudXMKKyAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQp CisgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuaW5pdGlhbGl6 ZWQgPSB0cnVlOworCisgICAgICAgIC8vIEFkZCBjb250ZXh0IG1lbnVzIGZv ciBmdHMgdGVtcGxhdGUKKyAgICAgICAgcGdCcm93c2VyLmFkZF9tZW51cyhb eworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfZnRzX3RlbXBsYXRlX29uX3Nj aGVtYScsIG5vZGU6ICdzY2hlbWEnLCBtb2R1bGU6IHRoaXMsCisgICAgICAg ICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazog J3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAn Y3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygnRlRTIFRlbXBs YXRlLi4uJykgfX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNv bi1mdHNfdGVtcGxhdGUnLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJ30KKyAg ICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX2Z0c190ZW1w bGF0ZV9vbl9jb2xsJywgbm9kZTogJ2NvbGwtZnRzX3RlbXBsYXRlJywgbW9k dWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2Nv bnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAg ICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJl bDogJ3t7IF8oJ0ZUUyBUZW1wbGF0ZS4uLicpIH19JywKKyAgICAgICAgICBp Y29uOiAnd2NUYWJJY29uIGljb24tZnRzX3RlbXBsYXRlJywgZGF0YToge2Fj dGlvbjogJ2NyZWF0ZSd9CisgICAgICAgICAgfSx7CisgICAgICAgICAgbmFt ZTogJ2NyZWF0ZV9mdHNfdGVtcGxhdGUnLCBub2RlOiAnZnRzX3RlbXBsYXRl JywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0 JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVz JywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0 LCBsYWJlbDogJ3t7IF8oJ0ZUUyBUZW1wbGF0ZS4uLicpIH19JywKKyAgICAg ICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tZnRzX3RlbXBsYXRlJywgZGF0 YToge2FjdGlvbjogJ2NyZWF0ZSd9CisgICAgICAgICAgfV0pOworCisgICAg ICB9LAorCisgICAgICAvLyBEZWZpbmluZyBiYWNrZm9ybSBtb2RlbCBmb3Ig ZnRzIHRlbXBsYXRlIG5vZGUKKyAgICAgIG1vZGVsOiBwZ0FkbWluLkJyb3dz ZXIuTm9kZS5Nb2RlbC5leHRlbmQoeworICAgICAgICBkZWZhdWx0czogewor ICAgICAgICAgIHRtcGxuYW1lOiB1bmRlZmluZWQsICAgICAgLy8gRnRzIHRl bXBsYXRlIG5hbWUKKyAgICAgICAgICBkZXNjcmlwdGlvbjogdW5kZWZpbmVk LCAgIC8vIENvbW1lbnQgb24gdGVtcGxhdGUKKyAgICAgICAgICBzY2hlbWE6 IHVuZGVmaW5lZCwgICAgICAgIC8vIFNjaGVtYSBuYW1lIHRvIHdoaWNoIHRl bXBsYXRlIGJlbG9uZ3MKKyAgICAgICAgICB0bXBsaW5pdDogdW5kZWZpbmVk LCAgICAgIC8vIEluaXQgZnVuY3Rpb24gZm9yIGZ0cyB0ZW1wbGF0ZQorICAg ICAgICAgIHRtcGxsZXhpemU6IHVuZGVmaW5lZCAgICAgLy8gTGV4aXplIGZ1 bmN0aW9uIGZvciBmdHMgdGVtcGxhdGUKKyAgICAgICAgfSwKKyAgICAgICAg aW5pdGlhbGl6ZTogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBwZ0FkbWlu LkJyb3dzZXIuTm9kZS5Nb2RlbC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5hcHBs eSh0aGlzLCBhcmd1bWVudHMpOworICAgICAgICAgICAgaWYgKF8uaXNVbmRl ZmluZWQodGhpcy5nZXQoJ3NjaGVtYScpKSkgeworICAgICAgICAgICAgICAg IHRoaXMuc2V0KCdzY2hlbWEnLCB0aGlzLm5vZGVfaW5mby5zY2hlbWEuX2lk KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgLy8gRGVm aW5pbmcgc2NoZW1hIGZvciBmdHMgdGVtcGxhdGUKKyAgICAgICAgc2NoZW1h OiBbeworICAgICAgICAgIGlkOiAndG1wbG5hbWUnLCBsYWJlbDogJ3t7IF8o J05hbWUnKSB9fScsIGNlbGw6ICdzdHJpbmcnLCBncm91cDogJ0RlZmluaXRp b24nLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgY2VsbEhlYWRlckNsYXNz ZXM6ICd3aWR0aF9wZXJjZW50XzUwJworICAgICAgICB9LHsKKyAgICAgICAg ICBpZDogJ29pZCcsIGxhYmVsOid7eyBfKCdPaWQnKSB9fScsIGNlbGw6ICdz dHJpbmcnLCBncm91cDogJ0RlZmluaXRpb24nLAorICAgICAgICAgIGVkaXRh YmxlOiBmYWxzZSwgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDogdHJ1ZQorICAg ICAgICB9LHsKKyAgICAgICAgICBpZDogJ2Rlc2NyaXB0aW9uJywgbGFiZWw6 J3t7IF8oJ0NvbW1lbnQnKSB9fScsIGNlbGw6ICdzdHJpbmcnLCBncm91cDog J0RlZmluaXRpb24nLAorICAgICAgICAgIHR5cGU6ICdtdWx0aWxpbmUnLCBj ZWxsSGVhZGVyQ2xhc3NlczogJ3dpZHRoX3BlcmNlbnRfNTAnCisgICAgICAg IH0seworICAgICAgICAgIGlkOiAndG1wbGluaXQnLCBsYWJlbDogJ3t7IF8o J0luaXQgRnVuY3Rpb24nKX19JywgZ3JvdXA6ICdEZWZpbml0aW9uJywKKyAg ICAgICAgICB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7 IHJldHVybiAhbS5pc05ldygpOyB9LAorICAgICAgICAgIGNvbnRyb2w6ICdu b2RlLWFqYXgtb3B0aW9ucycsIHVybDogJ2dldF9pbml0JworICAgICAgICB9 LHsKKyAgICAgICAgICBpZDogJ3RtcGxsZXhpemUnLCBsYWJlbDogJ3t7IF8o J0xleGl6ZSBGdW5jdGlvbicpfX0nLCBncm91cDogJ0RlZmluaXRpb24nLAor ICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0p IHsgcmV0dXJuICFtLmlzTmV3KCk7IH0sCisgICAgICAgICAgY29udHJvbDog J25vZGUtYWpheC1vcHRpb25zJywgdXJsOiAnZ2V0X2xleGl6ZScKKyAgICAg ICAgfSx7CisgICAgICAgICAgaWQ6ICdzY2hlbWEnLCBsYWJlbDogJ3t7IF8o J1NjaGVtYScpfX0nLCBjZWxsOiAnc3RyaW5nJywgZ3JvdXA6ICdEZWZpbml0 aW9uJywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIG1vZGU6IFsnY3JlYXRl JywnZWRpdCddLCBub2RlOiAnc2NoZW1hJywKKyAgICAgICAgICBjb250cm9s OiAnbm9kZS1saXN0LWJ5LWlkJworICAgICAgICB9XSwKKworICAgICAgICAv KgorICAgICAgICAgKiBUcmlnZ2VycyBjb250cm9sIHNwZWNpZmljIGVycm9y IG1lc3NhZ2VzIGZvciB0ZW1wbGF0ZSBuYW1lLAorICAgICAgICAgKiBsZXhp emUgZnVuY3Rpb24gYW5kIHNjaGVtYSwgaWYgYW55IG9uZSBvZiB0aGVtIGlz IG5vdCBzcGVjaWZpZWQKKyAgICAgICAgICogd2hpbGUgY3JlYXRpbmcgbmV3 IGZ0cyB0ZW1wbGF0ZQorICAgICAgICAgKi8KKyAgICAgICAgdmFsaWRhdGU6 IGZ1bmN0aW9uKGtleXMpeworICAgICAgICAgIHZhciBuYW1lID0gdGhpcy5n ZXQoJ3RtcGxuYW1lJyk7CisgICAgICAgICAgdmFyIGxleGl6ZSA9IHRoaXMu Z2V0KCd0bXBsbGV4aXplJyk7CisgICAgICAgICAgdmFyIHNjaGVtYSA9IHRo aXMuZ2V0KCdzY2hlbWEnKTsKKworICAgICAgICAgIC8vIFZhbGlkYXRlIGZ0 cyB0ZW1wbGF0ZSBuYW1lCisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQo bmFtZSkgfHwgXy5pc051bGwobmFtZSkgfHwgU3RyaW5nKG5hbWUpLnJlcGxh Y2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIHZh ciBtc2cgPSAne3sgXygnTmFtZSBtdXN0IGJlIHNwZWNpZmllZCEnKSB9fSc7 CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCduYW1lJywgbXNn KTsKKyAgICAgICAgICAgIHJldHVybiBtc2c7CisgICAgICAgICAgfQorCisg ICAgICAgICAgLy8gVmFsaWRhdGUgbGV4aXplIGZ1bmN0aW9uIGNvbnRyb2wK KyAgICAgICAgICBlbHNlIGlmIChfLmlzVW5kZWZpbmVkKGxleGl6ZSkgfHwg Xy5pc051bGwobGV4aXplKSB8fCBTdHJpbmcobGV4aXplKS5yZXBsYWNlKC9e XHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICB2YXIgbXNn ID0gJ3t7IF8oJ0xleGl6ZSBmdW5jdGlvbiBtdXN0IGJlIHNlbGVjdGVkIScp IH19JzsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ3RtcGxs ZXhpemUnLCBtc2cpOworICAgICAgICAgICAgcmV0dXJuIG1zZzsKKyAgICAg ICAgICB9CisKKyAgICAgICAgICAvLyBWYWxpZGF0ZSBzY2hlbWEgZm9yIGZ0 cyB0ZW1wbGF0ZQorICAgICAgICAgIGVsc2UgaWYgKF8uaXNVbmRlZmluZWQo c2NoZW1hKSB8fCBfLmlzTnVsbChzY2hlbWEpIHx8IFN0cmluZyhzY2hlbWEp LnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAg ICAgIHZhciBtc2cgPSAne3sgXygnU2NoZW1hIG11c3QgYmUgc2VsZWN0ZWQh JykgfX0nOworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgnc2No ZW1hJywgbXNnKTsKKyAgICAgICAgICAgIHJldHVybiBtc2c7CisgICAgICAg ICAgfQorICAgICAgICAgIGVsc2UgdGhpcy5lcnJvck1vZGVsLmNsZWFyKCk7 CisKKyAgICAgICAgICB0aGlzLnRyaWdnZXIoJ29uLXN0YXR1cy1jbGVhcicp OworICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICB9 KQorICAgIH0pOworICB9CisKK3JldHVybiBwZ0Jyb3dzZXIuTm9kZXNbJ2Nv bGwtZnRzX3RlbXBsYXRlJ107Cit9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxh dGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL2NyZWF0 ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRl cy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzg0ZjczNwotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVt cGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbApA QCAtMCwwICsxLDExIEBACit7IyBDUkVBVEUgVEVYVCBTRUFSQ0ggVEVNUExB VEUgU3RhdGVtZW50ICN9Cit7JSBpZiBkYXRhIGFuZCBkYXRhLnNjaGVtYSBh bmQgZGF0YS50bXBsbmFtZSBhbmQgZGF0YS50bXBsbGV4aXplICV9CitDUkVB VEUgVEVYVCBTRUFSQ0ggVEVNUExBVEUge3sgY29ubnxxdElkZW50KGRhdGEu c2NoZW1hLCBkYXRhLnRtcGxuYW1lKSB9fSAoCit7JSBpZiBkYXRhLnRtcGxp bml0IGFuZCBkYXRhLnRtcGxpbml0ICE9ICctJyV9ICBJTklUID0ge3tkYXRh LnRtcGxpbml0fX0seyUgZW5kaWYgJX0KKyAgTEVYSVpFID0ge3tkYXRhLnRt cGxsZXhpemV9fQorKTsKK3sjIERlc2NyaXB0aW9uIGZvciBURVhUIFNFQVJD SCBURU1QTEFURSAjfQoreyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorQ09N TUVOVCBPTiBURVhUIFNFQVJDSCBURU1QTEFURSB7eyBjb25ufHF0SWRlbnQo ZGF0YS5zY2hlbWEsIGRhdGEudG1wbG5hbWUpIH19CisgICAgICBJUyB7eyBk YXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmICV9eyUg ZW5kaWYgJX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9m dHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUv c3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uY2NhOGRjNAotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1w bGF0ZS9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApAQCAtMCwwICsxLDIzIEBA Cit7IyBGRVRDSCBURVhUIFNFQVJDSCBURU1QTEFURSBOQU1FIFN0YXRlbWVu dCAjfQoreyUgaWYgdGlkICV9CitTRUxFQ1QKKyAgICB0LnRtcGxuYW1lIEFT IG5hbWUsCisgICAgKAorICAgIFNFTEVDVAorICAgICAgICBuc3BuYW1lCisg ICAgRlJPTQorICAgICAgICBwZ19uYW1lc3BhY2UKKyAgICBXSEVSRQorICAg ICAgICBvaWQgPSB0LnRtcGxuYW1lc3BhY2UKKyAgICApIGFzIHNjaGVtYQor RlJPTQorICAgIHBnX3RzX3RlbXBsYXRlIHQgTEVGVCBKT0lOIHBnX2Rlc2Ny aXB0aW9uIGQKKyAgICBPTiBkLm9iam9pZD10Lm9pZCBBTkQgZC5jbGFzc29p ZD0ncGdfdHNfdGVtcGxhdGUnOjpyZWdjbGFzcworV0hFUkUKKyAgICB0Lm9p ZCA9IHt7dGlkfX06Ok9JRDsKK3slIGVuZGlmICV9CisKK3sjIERST1AgVEVY VCBTRUFSQ0ggVEVNUExBVEUgU3RhdGVtZW50ICN9Cit7JSBpZiBzY2hlbWEg YW5kIG5hbWUgJX0KK0RST1AgVEVYVCBTRUFSQ0ggVEVNUExBVEUge3tjb25u fHF0SWRlbnQoc2NoZW1hKX19Lnt7Y29ubnxxdElkZW50KG5hbWUpfX0geyUg aWYgY2FzY2FkZSAlfUNBU0NBREV7JWVuZGlmJX07Cit7JSBlbmRpZiAlfQpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0 ZS9zcWwvOS4xX3BsdXMvZnVuY3Rpb25zLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4x X3BsdXMvZnVuY3Rpb25zLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4yZmU5ZTAyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRl L3NxbC85LjFfcGx1cy9mdW5jdGlvbnMuc3FsCkBAIC0wLDAgKzEsMjMgQEAK K3sjIEZFVENIIGxleGl6ZSBmdW5jdGlvbnMgZm9yIFRFWFQgU0VBUkNIIFRF TVBMQVRFICN9Cit7JSBpZiBsZXhpemUgJX0KK1NFTEVDVAorICAgIHByb25h bWUsIG5zcG5hbWUKK0ZST00KKyAgICBwZ19wcm9jIEpPSU4gcGdfbmFtZXNw YWNlIG4gT04gbi5vaWQ9cHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHByb3Jl dHR5cGU9MjI4MQorICAgIEFORCBwcm9hcmd0eXBlcz0nMjI4MSAyMjgxIDIy ODEgMjI4MScKK09SREVSIEJZIHByb25hbWU7Cit7JSBlbmRpZiAlfQorCit7 IyBGRVRDSCBpbml0IGZ1bmN0aW9ucyBmb3IgVEVYVCBTRUFSQ0ggVEVNUExB VEUgI30KK3slIGlmIGluaXQgJX0KK1NFTEVDVAorICAgIHByb25hbWUsIG5z cG5hbWUKK0ZST00KKyAgICBwZ19wcm9jIEpPSU4gcGdfbmFtZXNwYWNlIG4g T04gbi5vaWQ9cHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHByb3JldHR5cGU9 MjI4MSBhbmQgcHJvYXJndHlwZXM9JzIyODEnCitPUkRFUiBCWQorICAgIHBy b25hbWU7Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85 LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190 ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMv cHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uOGIyYTcwYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwv OS4xX3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSwyNyBAQAoreyMg R2V0IHByb3BlcnRpZXMgZm9yIEZUUyBURU1QTEFURSAjfQorU0VMRUNUCisg ICAgdG1wbC5vaWQsCisgICAgdG1wbC50bXBsbmFtZSwKKyAgICB0bXBsLnRt cGxpbml0LAorICAgIHRtcGwudG1wbGxleGl6ZSwKKyAgICBkZXNjcmlwdGlv biwKKyAgICB0bXBsLnRtcGxuYW1lc3BhY2UgQVMgc2NoZW1hCitGUk9NCisg ICAgcGdfdHNfdGVtcGxhdGUgdG1wbAorICAgIExFRlQgT1VURVIgSk9JTiBw Z19kZXNjcmlwdGlvbiBkZXMKK09OCisgICAgKAorICAgIGRlcy5vYmpvaWQ9 dG1wbC5vaWQKKyAgICBBTkQgZGVzLmNsYXNzb2lkPSdwZ190c190ZW1wbGF0 ZSc6OnJlZ2NsYXNzCisgICAgKQorV0hFUkUKK3slIGlmIHNjaWQgJX0KKyAg ICB0bXBsLnRtcGxuYW1lc3BhY2UgPSB7e3NjaWR9fTo6T0lECit7JSBlbGlm IG5hbWUgJX0KKyAgICB0bXBsLnRtcGxuYW1lID0ge3tuYW1lfHF0TGl0ZXJh bH19Cit7JSBlbmRpZiAlfQoreyUgaWYgdGlkICV9CisgICAgQU5EIHRtcGwu b2lkID0ge3t0aWR9fTo6T0lECit7JSBlbmRpZiAlfQorT1JERVIgQlkKKyAg ICB0bXBsLnRtcGxuYW1lClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1w bGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9zY2hlbWEuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3Rl bXBsYXRlL3NxbC85LjFfcGx1cy9zY2hlbWEuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmN2RkYjMKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9m dHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL3NjaGVtYS5zcWwKQEAgLTAsMCAr MSwxOSBAQAoreyMgU0NIRU1BIG5hbWUgRkVUQ0ggc3RhdGVtZW50ICN9Cit7 JSBpZiBkYXRhLnNjaGVtYSAlfQorU0VMRUNUCisgICAgbnNwbmFtZQorRlJP TQorICAgIHBnX25hbWVzcGFjZQorV0hFUkUKKyAgICBvaWQgPSB7e2RhdGEu c2NoZW1hfX06Ok9JRAorCit7JSBlbGlmIGRhdGEuaWQgJX0KK1NFTEVDVAor ICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UgbnNwCisgICAg TEVGVCBKT0lOIHBnX3RzX3RlbXBsYXRlIHRzCisgICAgT04gdHMudG1wbG5h bWVzcGFjZSA9IG5zcC5vaWQKK1dIRVJFCisgICAgdHMub2lkID0ge3tkYXRh LmlkfX06Ok9JRAoreyUgZW5kaWYgJX0KXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxh dGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL3NxbC5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9m dHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL3NxbC5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTAzYzdiZgotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVz L2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvc3FsLnNxbApAQCAtMCwwICsx LDQxIEBACit7IyBSZXZlcnNlIGVuZ2luZWVyZWQgc3FsIGZvciBGVFMgVEVN UExBVEUgI30KK1NFTEVDVAorICAgIGFycmF5X3RvX3N0cmluZyhhcnJheV9h Z2coc3FsKSwgRSdcblxuJykgYXMgc3FsCitGUk9NCisgICAgKAorICAgIFNF TEVDVAorICAgICAgICBFJy0tIFRleHQgU2VhcmNoIFRlbXBsYXRlOiAnIHx8 IG5zcG5hbWUgfHwgRScuJyB8fCB0bXBsLnRtcGxuYW1lIHx8CisgICAgICAg IEUnXG5cbi0tIERST1AgVEVYVCBTRUFSQ0ggVEVNUExBVEUgJyB8fCBuc3Bu YW1lIHx8IEUnLicgfHwgdG1wbC50bXBsbmFtZSB8fAorICAgICAgICBFJ1xu XG4gIENSRUFURSBURVhUIFNFQVJDSCBURU1QTEFURSAnIHx8IG5zcG5hbWUg fHwgRScuJyB8fCAgdG1wbC50bXBsbmFtZSB8fCBFJyhcbicgfHwKKyAgICAg ICAgQ0FTRQorICAgICAgICAgICAgV0hFTiB0bXBsLnRtcGxpbml0ICE9ICct Jzo6cmVnY2xhc3MgVEhFTiBFJ1x0SU5JVCA9ICcgfHwgdG1wbC50bXBsaW5p dCB8fCBFJyxcbicKKyAgICAgICAgICAgIEVMU0UgJycgRU5EIHx8CisgICAg ICAgIEUnXHRMRVhJWkUgPSAnIHx8IHRtcGwudG1wbGxleGl6ZSB8fCBFJ1xu KTsnIHx8CisgICAgICAgIENBU0UKKyAgICAgICAgICAgIFdIRU4gYS5kZXNj cmlwdGlvbiBJUyBOT1QgTlVMTCBUSEVOCisgICAgICAgICAgICAgICAgRSdc blxuQ09NTUVOVCBPTiBURVhUIFNFQVJDSCBURU1QTEFURSAnIHx8IG5zcG5h bWUgfHwgRScuJyB8fCB0bXBsLnRtcGxuYW1lIHx8CisgICAgICAgICAgICAg ICAgRScgSVMgJyB8fCBwZ19jYXRhbG9nLnF1b3RlX2xpdGVyYWwoZGVzY3Jp cHRpb24pIHx8IEUnOycKKyAgICAgICAgICAgIEVMU0UgJycgIEVORCBhcyBz cWwKK0ZST00KKyAgICBwZ190c190ZW1wbGF0ZSB0bXBsCisgICAgTEVGVCBK T0lOICgKKyAgICAgICAgICAgICAgICBTRUxFQ1QKKyAgICAgICAgICAgICAg ICAgICAgZGVzLmRlc2NyaXB0aW9uIGFzIGRlc2NyaXB0aW9uLAorICAgICAg ICAgICAgICAgICAgICBkZXMub2Jqb2lkIGFzIGRlc2NvaWQKKyAgICAgICAg ICAgICAgICBGUk9NCisgICAgICAgICAgICAgICAgICAgIHBnX2Rlc2NyaXB0 aW9uIGRlcworICAgICAgICAgICAgICAgIFdIRVJFCisgICAgICAgICAgICAg ICAgICAgIGRlcy5vYmpvaWQ9e3t0aWR9fTo6T0lEIEFORCBkZXMuY2xhc3Nv aWQ9J3BnX3RzX3RlbXBsYXRlJzo6cmVnY2xhc3MKKyAgICAgICAgICAgICAg KSBhIE9OIChhLmRlc2NvaWQgPSB0bXBsLm9pZCkKKyAgICBMRUZUIEpPSU4g KAorICAgICAgICAgICAgICAgIFNFTEVDVAorICAgICAgICAgICAgICAgICAg ICBuc3BuYW1lLAorICAgICAgICAgICAgICAgICAgICBuc3Aub2lkIGFzIG5v aWQKKyAgICAgICAgICAgICAgICBGUk9NCisgICAgICAgICAgICAgICAgICAg IHBnX25hbWVzcGFjZSBuc3AKKyAgICAgICAgICAgICAgICBXSEVSRQorICAg ICAgICAgICAgICAgICAgICBvaWQgPSB7e3NjaWR9fTo6T0lECisgICAgICAg ICAgICAgICkgYiBPTiAoYi5ub2lkID0gdG1wbC50bXBsbmFtZXNwYWNlKQor V0hFUkUKKyAgICB0bXBsLm9pZD17e3RpZH19OjpPSUQKKykgYXMgYzsKXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUv c3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNf dGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVz L3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uOTM1YzY0OQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4x X3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDIyIEBACit7IyBVUERBVEUg c3RhdGVtZW50IGZvciBURVhUIFNFQVJDSCBURU1QTEFURSAjfQoreyUgaWYg ZGF0YSAlfQoreyUgaWYgZGF0YS50bXBsbmFtZSBhbmQgZGF0YS50bXBsbmFt ZSAhPSBvX2RhdGEudG1wbG5hbWUgJX0KK0FMVEVSIFRFWFQgU0VBUkNIIFRF TVBMQVRFIHt7Y29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEpfX0ue3tjb25u fHF0SWRlbnQob19kYXRhLnRtcGxuYW1lKX19CisgICAgUkVOQU1FIFRPIHt7 ZGF0YS50bXBsbmFtZX19OworeyUgZW5kaWYgJX0KKworeyNpbiBjYXNlIG9m IHJlbmFtZSwgdXNlIG5ldyBmdHMgdGVtcGxhdGUgbmFtZSAjfQoreyUgaWYg ZGF0YS50bXBsbmFtZSBhbmQgZGF0YS50bXBsbmFtZSAhPSBvX2RhdGEudG1w bG5hbWUgJX0KK3slIHNldCBuYW1lID0gZGF0YS50bXBsbmFtZSAlfQoreyUg ZWxzZSAlfQoreyUgc2V0IG5hbWUgPSBvX2RhdGEudG1wbG5hbWUgJX0KK3sl IGVuZGlmICV9Cit7JSBpZiBkYXRhLnNjaGVtYSBhbmQgZGF0YS5zY2hlbWEg IT0gb19kYXRhLnNjaGVtYSAlfQorQUxURVIgVEVYVCBTRUFSQ0ggVEVNUExB VEUge3tjb25ufHF0SWRlbnQob19kYXRhLnNjaGVtYSl9fS57e2Nvbm58cXRJ ZGVudChuYW1lKX19CisgICAgU0VUIFNDSEVNQSB7e2RhdGEuc2NoZW1hfX07 Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5kZXNjcmlwdGlvbiBhbmQgZGF0 YS5kZXNjcmlwdGlvbiAhPSBvX2RhdGEuZGVzY3JpcHRpb24gJX0KK0NPTU1F TlQgT04gVEVYVCBTRUFSQ0ggVEVNUExBVEUge3tjb25ufHF0SWRlbnQob19k YXRhLnNjaGVtYSl9fS57e2Nvbm58cXRJZGVudChuYW1lKX19CisgICAgSVMg e3sgZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAl fQoreyUgZW5kaWYgJX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg== --001a113aa1643ee3ec052dabeb37 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a113aa1643ee3ec052dabeb37--