Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l02gI-0002bB-Fk for pgadmin-hackers@arkaria.postgresql.org; Thu, 14 Jan 2021 13:28:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1l02gH-0001CX-8d for pgadmin-hackers@arkaria.postgresql.org; Thu, 14 Jan 2021 13:28:53 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l02gG-0001CP-Mh for pgadmin-hackers@lists.postgresql.org; Thu, 14 Jan 2021 13:28:53 +0000 Received: from mail-pg1-x536.google.com ([2607:f8b0:4864:20::536]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1l02gC-0006hg-9K for pgadmin-hackers@postgresql.org; Thu, 14 Jan 2021 13:28:51 +0000 Received: by mail-pg1-x536.google.com with SMTP id n10so3769325pgl.10 for ; Thu, 14 Jan 2021 05:28:47 -0800 (PST) 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=RiVRiLNzU2ywTL9k16praEXLfjslFztyMdHUJAFmubU=; b=T6vGIyfa8SNIqWGh8UJj56+JuJvoDjJsBcJ7hDXEasf4y8V1D6kaisMplkxFdx9V2R mEK9hU2MALquHpgkGA9vekjEEmKL8eX6jr7MzQ1aMagY5/KaPAopXsAtXN+vXHulXULs 6BrlgrpiHIx2fUJg4sV6W3gPUyqVxJfoJ3aSXOtrmB5NYF5K75ANuIjJ5MypyFvaRs1X pqFA76GF6UztOVejlBY8T41fYRMa+E7GgW7IP43TTnoROeKeCZL5NQnuuGKeFqnGtIVq d5PBkJyNnfjth+G9AXuShpH7dI834Lcds2Kmi5lBa8p3S0Z2m66T+1Cno99t0nVyEEtu hZSg== 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=RiVRiLNzU2ywTL9k16praEXLfjslFztyMdHUJAFmubU=; b=K7QNFkKuqE3GqpEOzuFkJFrluYto0NPD+ihLKywxWn3KatTAjMARuG4k7kubTZH/C/ GGzTkSLusrtO8ZJZeZFKrHBKe0XEAYV5FjoL2DS/cqHdd9V1CNi9lvPdFGCxbgJ0HAe0 0AdGp2IoYITbgM2tJ5Fleo8CAGxvSU9Z3ss+xGrszKdeuNHuE26FlLh6Fv/tdW5qB0cF Z7CcEeeguFEX94/B8QpGdPrV2ZjKu+A2AzSqT73TKwg6Umh/d0Ms7MYGbFbZ4vqrsXR0 NcOlqnD2ehdE9MzOTT6hCZO4W3NqMyYDeqLJnX3VmKK3Kpi5yobdW48mLY6TJrTEYLNp HXCA== X-Gm-Message-State: AOAM530MV6ezrZNGwSlKgovmd3axACAtdI0+poA6YY4y1Za7ngnUnHrx tBOfI7ED6wAbgRWiSjD7R2PObmyBfUUAhFq2tpJZNnj+3xSH/fNNe11elsIukFNU5+6jmVbCiPp +wWf1wBOLfPsInMngspCgBRScPqUmmBYA0Q3Ir9CiPjznFotZSjgZDBezSiG5h+v/DP+45YQVCV mlIkBiyFveGJcT27iinP93WKPAERQWWnKGXgvI3z/V+/E1CN+0omCw6ti0Cg== X-Google-Smtp-Source: ABdhPJzs5JzsfV4iumJ5612UFp8Jnq4JGemZaXDzxxK6sWV/sZrRXEcJ4I8sZSPr3ALnlTmCDl3k5S1alfYVEbInblU= X-Received: by 2002:a65:4347:: with SMTP id k7mr7561846pgq.186.1610630925232; Thu, 14 Jan 2021 05:28:45 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Pradip Parkale Date: Thu, 14 Jan 2021 18:58:34 +0530 Message-ID: Subject: Re: [pgAdmin][RM5912]: Added support for Logical Replication. To: Akshay Joshi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="0000000000002a444805b8dc3cfe" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --0000000000002a444805b8dc3cfe Content-Type: multipart/alternative; boundary="0000000000002a444605b8dc3cfc" --0000000000002a444605b8dc3cfc Content-Type: text/plain; charset="UTF-8" Hi Akshay, Please find the latest patch. I missed some files in my previous patch. On Thu, Jan 14, 2021 at 5:49 PM Akshay Joshi wrote: > Hi Pradip > > The patch is applied, but not working. Please check and send the patch > again. > > On Wed, Jan 13, 2021 at 9:08 AM Pradip Parkale < > pradip.parkale@enterprisedb.com> wrote: > >> Hi Akshay, >> >> Please ignore my previous patch. Please find my updated patch. >> >> >> On Mon, Jan 11, 2021 at 5:07 PM Pradip Parkale < >> pradip.parkale@enterprisedb.com> wrote: >> >>> Hi Hackers, >>> >>> Please find the attached patch for logical replication support. >>> >>> -- >>> Thanks & Regards, >>> Pradip Parkale >>> Software Engineer | EnterpriseDB Corporation >>> >> >> >> -- >> Thanks & Regards, >> Pradip Parkale >> Software Engineer | EnterpriseDB Corporation >> > > > -- > *Thanks & Regards* > *Akshay Joshi* > *pgAdmin Hacker | Principal Software Architect* > *EDB Postgres * > > *Mobile: +91 976-788-8246* > -- Thanks & Regards, Pradip Parkale Software Engineer | EnterpriseDB Corporation --0000000000002a444605b8dc3cfc Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi=C2=A0Akshay,
Please find the latest patch. I missed= some files in my previous patch.

On Thu, Jan 14, 2021 at 5:49 PM Aksh= ay Joshi <akshay.joshi@= enterprisedb.com> wrote:
= Hi=C2=A0Pradip

The patch is applied, but not working. Pl= ease check and send the patch again.

On Wed, Jan 13, 2021 at 9:08 AM P= radip Parkale <pradip.parkale@enterprisedb.com> wrote:
Hi Akshay,

Please ignore=C2= =A0my=C2=A0previous patch. Please find my updated patch.

=

On Mon, Jan 11, 2021 at 5:07 PM Pradip Parkale <pradip.parkale@enterpris= edb.com> wrote:
Hi Hacker= s,

Please find the attached patch for logical replicatio= n support.

--
Thanks & Regards,
Pradip Parkale
Software Engineer | Enterpri= seDB Corporation


--
Thanks & Regards,
=
Pradip Parkale
Software Engineer |= EnterpriseDB Corporation


--
Thank= s & Regards
Akshay Joshi
pgAdmin Hacker | Principal Softw= are Architect
EDB Po= stgres
Mobile: +91 976-788-8246



--
Thanks & Regards,
Pradip Park= ale
Software Engineer | EnterpriseDB Corporation
--0000000000002a444605b8dc3cfc-- --0000000000002a444805b8dc3cfe Content-Type: application/octet-stream; name="RM-5912_v3.patch" Content-Disposition: attachment; filename="RM-5912_v3.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kjww1sw90 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9wdWJsaWNhdGlvbnMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL19faW5pdF9fLnB5Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYzliODNjMTA4Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3B1YmxpY2F0aW9ucy9fX2luaXRfXy5weQpAQCAtMCwwICsxLDgyOCBAQAorIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmln aHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMg c29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKworIiIiSW1wbGVtZW50cyBQdWJsaWNhdGlvbiBOb2RlIiIiCitpbXBv cnQgc2ltcGxlanNvbiBhcyBqc29uCitmcm9tIGZ1bmN0b29scyBpbXBvcnQgd3JhcHMKKworaW1w b3J0IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzIGFzIGRh dGFiYXNlcworZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCByZXF1ZXN0LCBqc29u aWZ5Citmcm9tIGZsYXNrX2JhYmVsZXggaW1wb3J0IGdldHRleHQKK2Zyb20gcGdhZG1pbi5icm93 c2VyLmNvbGxlY3Rpb24gaW1wb3J0IENvbGxlY3Rpb25Ob2RlTW9kdWxlCitmcm9tIHBnYWRtaW4u YnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5vZGVWaWV3Citmcm9tIHBnYWRtaW4udXRpbHMu YWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIFwK KyAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGdvbmUKK2Zyb20gcGdhZG1pbi51 dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9ydCBQR19ERUZB VUxUX0RSSVZFUgorZnJvbSBwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLmNvbXBhcmUgaW1wb3J0 IFNjaGVtYURpZmZPYmplY3RDb21wYXJlCisKKworY2xhc3MgUHVibGljYXRpb25Nb2R1bGUoQ29s bGVjdGlvbk5vZGVNb2R1bGUpOgorICAgICIiIgorICAgIGNsYXNzIFB1YmxpY2F0aW9uTW9kdWxl KENvbGxlY3Rpb25Ob2RlTW9kdWxlKQorCisgICAgICAgIEEgbW9kdWxlIGNsYXNzIGZvciBQdWJs aWNhdGlvbiBub2RlIGRlcml2ZWQgZnJvbSBDb2xsZWN0aW9uTm9kZU1vZHVsZS4KKworICAgIE1l dGhvZHM6CisgICAgLS0tLS0tLQorICAgICogX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAg ICAgLSBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSBQdWJsaWNhdGlvbk1vZHVsZSBh bmQgaXQncworICAgICAgYmFzZSBtb2R1bGUuCisKKyAgICAqIGdldF9ub2RlcyhnaWQsIHNpZCwg ZGlkKQorICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgYnJvd3NlciBjb2xs ZWN0aW9uIG5vZGUuCisKKyAgICAqIG5vZGVfaW5vZGUoKQorICAgICAgLSBNZXRob2QgaXMgb3Zl cnJpZGRlbiBmcm9tIGl0cyBiYXNlIGNsYXNzIHRvIG1ha2UgdGhlIG5vZGUgYXMgbGVhZiBub2Rl LgorCisgICAgKiBzY3JpcHRfbG9hZCgpCisgICAgICAtIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQg Zm9yIHB1YmxpY2F0aW9uLCB3aGVuIGFueSBvZiB0aGUgZGF0YWJhc2Ugbm9kZQorICAgICAgaXMg aW5pdGlhbGl6ZWQuCisgICAgIiIiCisKKyAgICBfTk9ERV9UWVBFID0gJ3B1YmxpY2F0aW9uJwor ICAgIF9DT0xMRUNUSU9OX0xBQkVMID0gZ2V0dGV4dCgiUHVibGljYXRpb25zIikKKworICAgIGRl ZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAg TWV0aG9kIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgUHVibGljYXRpb25Nb2R1bGUgYW5kIGl0 J3MKKyAgICAgICAgYmFzZSBtb2R1bGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgICph cmdzOgorICAgICAgICAgICAgKiprd2FyZ3M6CisgICAgICAgICIiIgorICAgICAgICBzdXBlcihQ dWJsaWNhdGlvbk1vZHVsZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAg ICBzZWxmLm1pbl92ZXIgPSAxMDAwMDAKKyAgICAgICAgc2VsZi5tYXhfdmVyID0gTm9uZQorCisg ICAgZGVmIGdldF9ub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkKToKKyAgICAgICAgIiIiCisgICAg ICAgIE1ldGhvZCBpcyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBicm93c2VyIGNvbGxlY3Rpb24gbm9k ZQorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAg ICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAg ICAgICAgIiIiCisgICAgICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9u X25vZGUoZGlkKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG5vZGVfaW5vZGUoc2VsZik6Cisg ICAgICAgICIiIgorICAgICAgICBPdmVycmlkZSB0aGlzIHByb3BlcnR5IHRvIG1ha2UgdGhlIG5v ZGUgYSBsZWFmIG5vZGUuCisKKyAgICAgICAgUmV0dXJuczogRmFsc2UgYXMgdGhpcyBpcyB0aGUg bGVhZiBub2RlCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIEBwcm9w ZXJ0eQorICAgIGRlZiBzY3JpcHRfbG9hZChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIExv YWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9yIHB1YmxpY2F0aW9uLCB3aGVuIGFueSBvZiB0aGUgZGF0 YWJhc2Ugbm9kZXMKKyAgICAgICAgYXJlIGluaXRpYWxpemVkLgorCisgICAgICAgIFJldHVybnM6 IG5vZGUgdHlwZSBvZiB0aGUgc2VydmVyIG1vZHVsZS4KKyAgICAgICAgIiIiCisgICAgICAgIHJl dHVybiBkYXRhYmFzZXMuRGF0YWJhc2VNb2R1bGUubm9kZV90eXBlCisKKyAgICBAcHJvcGVydHkK KyAgICBkZWYgbW9kdWxlX3VzZV90ZW1wbGF0ZV9qYXZhc2NyaXB0KHNlbGYpOgorICAgICAgICAi IiIKKyAgICAgICAgUmV0dXJucyB3aGV0aGVyIEppbmphMiB0ZW1wbGF0ZSBpcyB1c2VkIGZvciBn ZW5lcmF0aW5nIHRoZSBqYXZhc2NyaXB0CisgICAgICAgIG1vZHVsZS4KKyAgICAgICAgIiIiCisg ICAgICAgIHJldHVybiBGYWxzZQorCisKK2JsdWVwcmludCA9IFB1YmxpY2F0aW9uTW9kdWxlKF9f bmFtZV9fKQorCisKK2NsYXNzIFB1YmxpY2F0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcsIFNjaGVt YURpZmZPYmplY3RDb21wYXJlKToKKyAgICAiIiIKKyAgICBjbGFzcyBQdWJsaWNhdGlvblZpZXco UEdDaGlsZE5vZGVWaWV3KQorCisgICAgICAgIEEgdmlldyBjbGFzcyBmb3IgUHVibGljYXRpb24g bm9kZSBkZXJpdmVkIGZyb20gUEdDaGlsZE5vZGVWaWV3LgorICAgICAgICBUaGlzIGNsYXNzIGlz IHJlc3BvbnNpYmxlIGZvciBhbGwgdGhlIHN0dWZmIHJlbGF0ZWQgdG8gdmlldyBsaWtlCisgICAg ICAgIHVwZGF0aW5nIHB1YmxpY2F0aW9uIG5vZGUsIHNob3dpbmcgcHJvcGVydGllcywgc2hvd2lu ZyBzcWwgaW4gc3FsIHBhbmUuCisKKyAgICBNZXRob2RzOgorICAgIC0tLS0tLS0KKyAgICAqIF9f aW5pdF9fKCoqa3dhcmdzKQorICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRo ZSBQdWJsaWNhdGlvblZpZXcgYW5kIGl0J3MgYmFzZSB2aWV3LgorCisgICAgKiBjaGVja19wcmVj b25kaXRpb24oKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgYmVoYXZlIGFzIGEgZGVjb3Jh dG9yIHdoaWNoIHdpbGwgY2hlY2tzCisgICAgICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3Jl IHJ1bm5pbmcgdmlldywgaXQgd2lsbCBhbHNvIGF0dGFjaGVzCisgICAgICAgIG1hbmFnZXIsY29u biAmIHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCisKKyAgICAqIGxpc3QoKQorICAg ICAgLSBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gbGlzdCBhbGwgdGhlIHB1YmxpY2F0aW9uIG5v ZGVzIHdpdGhpbiB0aGF0CisgICAgICBjb2xsZWN0aW9uLgorCisgICAgKiBub2RlcygpCisgICAg ICAtIFRoaXMgZnVuY3Rpb24gd2lsbCB1c2VkIHRvIGNyZWF0ZSBhbGwgdGhlIGNoaWxkIG5vZGUg d2l0aGluIHRoYXQKKyAgICAgIGNvbGxlY3Rpb24uIEhlcmUgaXQgd2lsbCBjcmVhdGUgYWxsIHRo ZSBwdWJsaWNhdGlvbiBub2RlLgorCisgICAgKiBwcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQsIHBi aWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBzaG93IHRoZSBwcm9wZXJ0aWVzIG9mIHRo ZSBzZWxlY3RlZCBwdWJsaWNhdGlvbiBub2RlCisKKyAgICAqIHVwZGF0ZShnaWQsIHNpZCwgZGlk LCBwYmlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRoZSBkYXRhIGZvciB0 aGUgc2VsZWN0ZWQgcHVibGljYXRpb24gbm9kZQorCisgICAgKiBjcmVhdGUoZ2lkLCBzaWQsIGRp ZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSB0aGUgbmV3IHB1YmxpY2F0aW9u IG5vZGUKKworICAgICogZGVsZXRlKGdpZCwgc2lkLCBkaWQsIHBiaWQpCisgICAgICAtIFRoaXMg ZnVuY3Rpb24gd2lsbCBkZWxldGUgdGhlIHNlbGVjdGVkIHB1YmxpY2F0aW9uIG5vZGUKKworICAg ICogbXNxbChnaWQsIHNpZCwgZGlkLCBwYmlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIGlzIHVz ZWQgdG8gcmV0dXJuIG1vZGlmaWVkIFNRTCBmb3IgdGhlIHNlbGVjdGVkCisgICAgICBwdWJsaWNh dGlvbiBub2RlCisKKyAgICAqIGdldF9zcWwoZGF0YSwgcGJpZCkKKyAgICAgIC0gVGhpcyBmdW5j dGlvbiB3aWxsIGdlbmVyYXRlIHNxbCBmcm9tIG1vZGVsIGRhdGEKKworICAgICogZ2V0X3RhYmxl cyhnaWQsIHNpZCwgZGlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGhhbmRs ZXIgYW5kIGlubGluZSBmdW5jdGlvbnMgZm9yIHRoZQorICAgICAgc2VsZWN0ZWQgcHVibGljYXRp b24gbm9kZQorCisgICAgKiBnZXRfdGVtcGxhdGVzKGdpZCwgc2lkLCBkaWQpCisgICAgICAtIFRo aXMgZnVuY3Rpb24gcmV0dXJucyBwdWJsaWNhdGlvbiB0ZW1wbGF0ZXMuCisKKyAgICAqIHNxbChn aWQsIHNpZCwgZGlkLCBwYmlkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRl IHNxbCB0byBzaG93IGl0IGluIHNxbCBwYW5lIGZvciB0aGUKKyAgICAgIHNlbGVjdGVkIHB1Ymxp Y2F0aW9uIG5vZGUuCisKKyAgICAqIGRlcGVuZGVudHMoZ2lkLCBzaWQsIGRpZCwgcGJpZCk6Cisg ICAgICAtIFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBkZXBlbmRlbnRzIGFuZCByZXR1cm4gYWpheCBy ZXNwb25zZSBmb3IgdGhlCisgICAgICBwdWJsaWNhdGlvbiBub2RlLgorCisgICAgKiBkZXBlbmRl bmNpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgcGJpZCk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24g Z2V0IHRoZSBkZXBlbmRlbmNpZXMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlIGZvciB0aGUKKyAg ICAgIHB1YmxpY2F0aW9uIG5vZGUuCisgICAgIiIiCisKKyAgICBfTk9UX0ZPVU5EX1BVQl9JTkZP Uk1BVElPTiA9IFwKKyAgICAgICAgZ2V0dGV4dCgiQ291bGQgbm90IGZpbmQgdGhlIHB1YmxpY2F0 aW9uIGluZm9ybWF0aW9uLiIpCisgICAgbm9kZV90eXBlID0gYmx1ZXByaW50Lm5vZGVfdHlwZQor CisgICAgcGFyZW50X2lkcyA9IFsKKyAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdnaWQn fSwKKyAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdzaWQnfSwKKyAgICAgICAgeyd0eXBl JzogJ2ludCcsICdpZCc6ICdkaWQnfQorICAgIF0KKyAgICBpZHMgPSBbCisgICAgICAgIHsndHlw ZSc6ICdpbnQnLCAnaWQnOiAncGJpZCd9CisgICAgXQorCisgICAgb3BlcmF0aW9ucyA9IGRpY3Qo eworICAgICAgICAnb2JqJzogWworICAgICAgICAgICAgeydnZXQnOiAncHJvcGVydGllcycsICdk ZWxldGUnOiAnZGVsZXRlJywgJ3B1dCc6ICd1cGRhdGUnfSwKKyAgICAgICAgICAgIHsnZ2V0Jzog J2xpc3QnLCAncG9zdCc6ICdjcmVhdGUnLCAnZGVsZXRlJzogJ2RlbGV0ZSd9CisgICAgICAgIF0s CisgICAgICAgICdub2Rlcyc6IFt7J2dldCc6ICdub2RlJ30sIHsnZ2V0JzogJ25vZGVzJ31dLAor ICAgICAgICAnc3FsJzogW3snZ2V0JzogJ3NxbCd9XSwKKyAgICAgICAgJ21zcWwnOiBbeydnZXQn OiAnbXNxbCd9LCB7J2dldCc6ICdtc3FsJ31dLAorICAgICAgICAnc3RhdHMnOiBbeydnZXQnOiAn c3RhdGlzdGljcyd9XSwKKyAgICAgICAgJ2RlcGVuZGVuY3knOiBbeydnZXQnOiAnZGVwZW5kZW5j aWVzJ31dLAorICAgICAgICAnZGVwZW5kZW50JzogW3snZ2V0JzogJ2RlcGVuZGVudHMnfV0sCisg ICAgICAgICdnZXRfdGFibGVzJzogW3t9LCB7J2dldCc6ICdnZXRfdGFibGVzJ31dLAorICAgICAg ICAnZ2V0X3RlbXBsYXRlcyc6IFt7fSwgeydnZXQnOiAnZ2V0X3RlbXBsYXRlcyd9XSwKKyAgICAg ICAgJ2RlbGV0ZSc6IFt7J2RlbGV0ZSc6ICdkZWxldGUnfSwgeydkZWxldGUnOiAnZGVsZXRlJ31d CisgICAgfSkKKworICAgIGRlZiBfaW5pdF8oc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICAiIiIK KyAgICAgICAgTWV0aG9kIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgUHVibGljYXRpb25WaWV3 IGFuZCBpdHMgYmFzZSB2aWV3LgorICAgICAgICBJbml0aWFsaXplIGFsbCB0aGUgdmFyaWFibGVz IGNyZWF0ZS91c2VkIGR5bmFtaWNhbGx5IGxpa2UgY29ubiwKKyAgICAgICAgdGVtcGxhdGVfcGF0 aC4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgKiprd2FyZ3M6CisgICAgICAgICIiIgor ICAgICAgICBzZWxmLmNvbm4gPSBOb25lCisgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9IE5v bmUKKyAgICAgICAgc2VsZi5tYW5hZ2VyID0gTm9uZQorCisgICAgICAgIHN1cGVyKFB1YmxpY2F0 aW9uVmlldywgc2VsZikuX19pbml0X18oKiprd2FyZ3MpCisKKyAgICBkZWYgY2hlY2tfcHJlY29u ZGl0aW9uKGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2 ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNrIHRoZQorICAgICAgICBkYXRhYmFzZSBj b25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIHRoZSB2aWV3LiBJdCBhbHNvIGF0dGFjaGVzCisgICAg ICAgIG1hbmFnZXIsIGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2VsZgorICAg ICAgICAiIiIKKworICAgICAgICBAd3JhcHMoZikKKyAgICAgICAgZGVmIHdyYXAoKmFyZ3MsICoq a3dhcmdzKToKKyAgICAgICAgICAgICMgSGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dh cmdzIHdpbGwgaG9sZCBnaWQsc2lkLGRpZAorICAgICAgICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAg ICAgICAgICAgIHNlbGYuZHJpdmVyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikKKyAg ICAgICAgICAgIHNlbGYubWFuYWdlciA9IHNlbGYuZHJpdmVyLmNvbm5lY3Rpb25fbWFuYWdlcihr d2FyZ3NbJ3NpZCddKQorICAgICAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5l Y3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAgICAgICBzZWxmLmRhdGxhc3RzeXNvaWQg PSBzZWxmLm1hbmFnZXIuZGJfaW5mb1trd2FyZ3NbJ2RpZCddXVsKKyAgICAgICAgICAgICAgICAn ZGF0bGFzdHN5c29pZCddIGlmIHNlbGYubWFuYWdlci5kYl9pbmZvIGlzIG5vdCBOb25lIFwKKyAg ICAgICAgICAgICAgICBhbmQga3dhcmdzWydkaWQnXSBpbiBzZWxmLm1hbmFnZXIuZGJfaW5mbyBl bHNlIDAKKworICAgICAgICAgICAgIyBTZXQgdGhlIHRlbXBsYXRlIHBhdGggZm9yIHRoZSBTUUwg c2NyaXB0cworICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gKAorICAgICAgICAgICAg ICAgICJwdWJsaWNhdGlvbnMvc3FsLyNncGRiI3swfSMiLmZvcm1hdChzZWxmLm1hbmFnZXIudmVy c2lvbikgaWYKKyAgICAgICAgICAgICAgICBzZWxmLm1hbmFnZXIuc2VydmVyX3R5cGUgPT0gJ2dw ZGInIGVsc2UKKyAgICAgICAgICAgICAgICAicHVibGljYXRpb25zL3NxbC8jezB9IyIuZm9ybWF0 KHNlbGYubWFuYWdlci52ZXJzaW9uKQorICAgICAgICAgICAgKQorCisgICAgICAgICAgICByZXR1 cm4gZigqYXJncywgKiprd2FyZ3MpCisKKyAgICAgICAgcmV0dXJuIHdyYXAKKworICAgIEBzdGF0 aWNtZXRob2QKKyAgICBkZWYgX3BhcnNlcl9kYXRhX2lucHV0X2Zyb21fY2xpZW50KGRhdGEpOgor ICAgICAgICAiIiIKKworICAgICAgICA6cGFyYW0gZGF0YToKKyAgICAgICAgOnJldHVybjogZGF0 YQorICAgICAgICAiIiIKKworICAgICAgICBpZiAncHVidGFibGUnIGluIGRhdGEgYW5kIGRhdGFb J3B1YnRhYmxlJ10gIT0gJyc6CisgICAgICAgICAgICBkYXRhWydwdWJ0YWJsZSddID0ganNvbi5s b2FkcygKKyAgICAgICAgICAgICAgICBkYXRhWydwdWJ0YWJsZSddLCBlbmNvZGluZz0ndXRmLTgn CisgICAgICAgICAgICApCisgICAgICAgIHJldHVybiBkYXRhCisKKyAgICBAY2hlY2tfcHJlY29u ZGl0aW9uCisgICAgZGVmIGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCk6CisgICAgICAgICIiIgor ICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gbGlzdCBhbGwgdGhlIHB1YmxpY2F0aW9u IG5vZGVzIHdpdGhpbiB0aGF0CisgICAgICAgIGNvbGxlY3Rpb24uCisKKyAgICAgICAgQXJnczoK KyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZl ciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAiIiIKKyAgICAgICAg c3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fUFJPUEVSVElFU19TUUxd KSkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKwor ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAg ICAgICAgICAgcmVzcG9uc2U9cmVzWydyb3dzJ10sCisgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbm9kZXMoc2VsZiwg Z2lkLCBzaWQsIGRpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVz ZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hpbGQgbm9kZXMgd2l0aGluIHRoZQorICAgICAgICBjb2xs ZWN0aW9uLiBIZXJlIGl0IHdpbGwgY3JlYXRlIGFsbCB0aGUgcHVibGljYXRpb24gbm9kZXMuCisK KyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAg ICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAg ICAiIiIKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIv Ii5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ25vZGVzLnNxbCddKSkKKyAgICAgICAgc3RhdHVzLCByZXN1bHQgPSBzZWxm LmNvbm4uZXhlY3V0ZV8yZGFycmF5KHNxbCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzdWx0KQorCisg ICAgICAgIGZvciByb3cgaW4gcmVzdWx0Wydyb3dzJ106CisgICAgICAgICAgICByZXMuYXBwZW5k KAorICAgICAgICAgICAgICAgIHNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgK KyAgICAgICAgICAgICAgICAgICAgcm93WydvaWQnXSwKKyAgICAgICAgICAgICAgICAgICAgZGlk LAorICAgICAgICAgICAgICAgICAgICByb3dbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAg aWNvbj0iaWNvbi1wdWJsaWNhdGlvbiIKKyAgICAgICAgICAgICAgICApKQorCisgICAgICAgIHJl dHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICBkYXRhPXJlcywKKyAgICAgICAg ICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAg IGRlZiBub2RlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHBiaWQpOgorICAgICAgICAiIiIKKyAgICAg ICAgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIHByb3BlcnRpZXMgb2YgdGhlIHB1YmxpY2F0aW9u IG5vZGVzLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJ RAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2Ug SUQKKyAgICAgICAgICAgIHBiaWQ6IFB1YmxpY2F0aW9uIElECisgICAgICAgICIiIgorICAgICAg ICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9QUk9QRVJUSUVTX1NR TF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGJpZD1wYmlkKQorICAgICAgICBz dGF0dXMsIHJlc3VsdCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoc3FsKQorICAgICAgICBp ZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1yZXN1bHQpCisKKyAgICAgICAgZm9yIHJvdyBpbiByZXN1bHRbJ3Jvd3MnXToKKyAg ICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgZGF0 YT1zZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAg ICAgIHJvd1snb2lkJ10sCisgICAgICAgICAgICAgICAgICAgIGRpZCwKKyAgICAgICAgICAgICAg ICAgICAgcm93WyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgIGljb249Imljb24tcHVibGlj YXRpb24iCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICAgICApCisKKyAgICAgICAgcmV0dXJuIGdvbmUoZ2V0dGV4dCgiQ291bGQgbm90IGZp bmQgdGhlIHNwZWNpZmllZCBwdWJsaWNhdGlvbi4iKSkKKworICAgIEBjaGVja19wcmVjb25kaXRp b24KKyAgICBkZWYgcHJvcGVydGllcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBwYmlkKToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBzaG93IHRoZSBwcm9wZXJ0aWVzIG9m IHRoZQorICAgICAgICBzZWxlY3RlZCBwdWJsaWNhdGlvbiBub2RlLgorCisgICAgICAgIEFyZ3M6 CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2 ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgIHBiaWQ6IFB1 YmxpY2F0aW9uIElECisgICAgICAgICIiIgorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuX2Zl dGNoX3Byb3BlcnRpZXMoZGlkLCBwYmlkKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAg ICAgICAgICByZXR1cm4gcmVzCisKKyAgICAgICAgaWYgJ2FsbF90YWJsZScgaW4gcmVzIGFuZCBy ZXNbJ2FsbF90YWJsZSddOgorICAgICAgICAgICAgcmVzWydwdWJ0YWJsZSddID0gJycKKworICAg ICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPXJlcywKKyAg ICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgZGVmIF9mZXRjaF9wcm9wZXJ0 aWVzKHNlbGYsIGRpZCwgcGJpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9u IGZldGNoIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBleHRlbnNpb24uCisgICAgICAgIDpwYXJhbSBk aWQ6CisgICAgICAgIDpwYXJhbSBwYmlkOgorICAgICAgICA6cmV0dXJuOgorICAgICAgICAiIiIK KyAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgIi8iLmpvaW4oW3Nl bGYudGVtcGxhdGVfcGF0aCwgc2VsZi5fUFJPUEVSVElFU19TUUxdKSwKKyAgICAgICAgICAgIHBi aWQ9cGJpZAorICAgICAgICApCisKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9kaWN0KHNxbCkKKworICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0 dXJuIEZhbHNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAg IGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZSwgZ29u ZShzZWxmLl9OT1RfRk9VTkRfUFVCX0lORk9STUFUSU9OKQorCisgICAgICAgIGdldF9uYW1lX3Nx bCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRl X3BhdGgsIHNlbGYuX0RFTEVURV9TUUxdKSwKKyAgICAgICAgICAgIHBiaWQ9cGJpZCwgY29ubj1z ZWxmLmNvbm4KKyAgICAgICAgKQorICAgICAgICBzdGF0dXMsIHBuYW1lID0gc2VsZi5jb25uLmV4 ZWN1dGVfc2NhbGFyKGdldF9uYW1lX3NxbCkKKyAgICAgICAgdGFibGVfc3FsID0gcmVuZGVyX3Rl bXBsYXRlKAorICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2dldF90 YWJsZXMuc3FsJ10pLAorICAgICAgICAgICAgcG5hbWU9cG5hbWUKKyAgICAgICAgKQorCisgICAg ICAgIHB1Yl90YWJsZSA9IFtdCisgICAgICAgIHN0YXR1cywgdGFibGVfcmVzID0gc2VsZi5jb25u LmV4ZWN1dGVfZGljdCh0YWJsZV9zcWwpCisKKyAgICAgICAgZm9yIHRhYmxlIGluIHRhYmxlX3Jl c1sncm93cyddOgorICAgICAgICAgICAgcHViX3RhYmxlLmFwcGVuZCh0YWJsZVsncHVidGFibGUn XSkKKworICAgICAgICByZXNbJ3Jvd3MnXVswXVsncHVidGFibGUnXSA9IHB1Yl90YWJsZQorCisg ICAgICAgIHJldHVybiBUcnVlLCByZXNbJ3Jvd3MnXVswXQorCisgICAgQGNoZWNrX3ByZWNvbmRp dGlvbgorICAgIGRlZiB1cGRhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgcGJpZCk6CisgICAgICAg ICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRoZSBkYXRhIGZvciB0aGUg c2VsZWN0ZWQgcHVibGljYXRpb24gbm9kZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAg Z2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAg ICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICBwYmlkOiBQdWJsaWNhdGlvbiBJRAor ICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZvcm0g ZWxzZSBqc29uLmxvYWRzKAorICAgICAgICAgICAgcmVxdWVzdC5kYXRhLCBlbmNvZGluZz0ndXRm LTgnCisgICAgICAgICkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBkYXRhID0gc2VsZi5f cGFyc2VyX2RhdGFfaW5wdXRfZnJvbV9jbGllbnQoZGF0YSkKKworICAgICAgICAgICAgc3FsLCBu YW1lID0gc2VsZi5nZXRfc3FsKGRhdGEsIHBiaWQpCisKKyAgICAgICAgICAgICMgTW9zdCBwcm9i YWJseSB0aGlzIGlzIGR1ZSB0byBlcnJvcgorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uo c3FsLCBzdHIpOgorICAgICAgICAgICAgICAgIHJldHVybiBzcWwKKyAgICAgICAgICAgIHNxbCA9 IHNxbC5zdHJpcCgnXG4nKS5zdHJpcCgnICcpCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNl bGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykK KworICAgICAgICAgICAgcmV0dXJuIGpzb25pZnkoCisgICAgICAgICAgICAgICAgbm9kZT1zZWxm LmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAgIHBi aWQsCisgICAgICAgICAgICAgICAgICAgIGRpZCwKKyAgICAgICAgICAgICAgICAgICAgbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgaWNvbj0iaWNvbi0lcyIgJSBzZWxmLm5vZGVfdHlwZQorICAg ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh cyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1z dHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGNyZWF0ZShzZWxmLCBn aWQsIHNpZCwgZGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBj cmVhdGUgdGhlIHB1YmxpY2F0aW9uIG9iamVjdAorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAg ICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAg ICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVpcmVkX2Fy Z3MgPSBbCisgICAgICAgICAgICAnbmFtZScKKyAgICAgICAgXQorCisgICAgICAgIGRhdGEgPSBy ZXF1ZXN0LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVsc2UganNvbi5sb2FkcygKKyAgICAgICAgICAg IHJlcXVlc3QuZGF0YSwgZW5jb2Rpbmc9J3V0Zi04JworICAgICAgICApCisgICAgICAgIGZvciBh cmcgaW4gcmVxdWlyZWRfYXJnczoKKyAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gZGF0YToKKyAg ICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAg ICAgICBzdGF0dXM9NDEwLAorICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTAsCisgICAgICAg ICAgICAgICAgICAgIGVycm9ybXNnPWdldHRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAi Q291bGQgbm90IGZpbmQgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAoe30pLiIKKyAgICAgICAgICAg ICAgICAgICAgKS5mb3JtYXQoYXJnKQorICAgICAgICAgICAgICAgICkKKworICAgICAgICB0cnk6 CisgICAgICAgICAgICBkYXRhID0gc2VsZi5fcGFyc2VyX2RhdGFfaW5wdXRfZnJvbV9jbGllbnQo ZGF0YSkKKworICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxm LnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuX0NSRUFURV9TUUxdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYXRhPWRhdGEsIGNvbm49c2VsZi5jb25uKQorCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9 IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJl cykKKworICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAg ICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdnZXRfcG9zaXRpb24uc3FsJ10pLAorICAg ICAgICAgICAgICAgIGNvbm49c2VsZi5jb25uLCBwdWJuYW1lPWRhdGFbJ25hbWUnXQorICAgICAg ICAgICAgKQorCisgICAgICAgICAgICBzdGF0dXMsIHJfc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVf ZGljdChzcWwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJl dHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cl9zZXQpCisKKyAgICAgICAgICAg IHJldHVybiBqc29uaWZ5KAorICAgICAgICAgICAgICAgIG5vZGU9c2VsZi5ibHVlcHJpbnQuZ2Vu ZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAgICAgICAgICAgICAgICByX3NldFsncm93cyddWzBd WydvaWQnXSwKKyAgICAgICAgICAgICAgICAgICAgZGlkLAorICAgICAgICAgICAgICAgICAgICBy X3NldFsncm93cyddWzBdWyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgIGljb249J2ljb24t cHVibGljYXRpb24nCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorCisgICAgICAg IGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAg IGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgcGJpZD1Ob25lKToKKyAgICAgICAgIiIi CisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBkcm9wIHRoZSBwdWJsaWNhdGlvbiBvYmplY3QK KworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAg ICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAg ICAgICAgICBwYmlkOiBQdWJsaWNhdGlvbiBJRAorICAgICAgICAiIiIKKyAgICAgICAgaWYgcGJp ZCBpcyBOb25lOgorICAgICAgICAgICAgZGF0YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZv cm0gZWxzZSBqc29uLmxvYWRzKAorICAgICAgICAgICAgICAgIHJlcXVlc3QuZGF0YSwgZW5jb2Rp bmc9J3V0Zi04JworICAgICAgICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZGF0 YSA9IHsnaWRzJzogW3BiaWRdfQorCisgICAgICAgIGNhc2NhZGUgPSBzZWxmLl9jaGVja19jYXNj YWRlX29wZXJhdGlvbigpCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZm9yIHBiaWQgaW4g ZGF0YVsnaWRzJ106CisgICAgICAgICAgICAgICAgIyBHZXQgbmFtZSBmb3IgcHVibGljYXRpb24g ZnJvbSBwYmlkCisgICAgICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAg ICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCBzZWxmLl9ERUxFVEVf U1FMXSksCisgICAgICAgICAgICAgICAgICAgIHBiaWQ9cGJpZCwgY29ubj1zZWxmLmNvbm4KKyAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgc3RhdHVzLCBwbmFtZSA9IHNlbGYuY29u bi5leGVjdXRlX3NjYWxhcihzcWwpCisKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXBuYW1lKQorCisgICAgICAgICAgICAgICAgIyBkcm9wIHB1YmxpY2F0aW9uCisgICAgICAgICAg ICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAgICAiLyIuam9p bihbc2VsZi50ZW1wbGF0ZV9wYXRoLCBzZWxmLl9ERUxFVEVfU1FMXSksCisgICAgICAgICAgICAg ICAgICAgIHBuYW1lPXBuYW1lLCBjYXNjYWRlPWNhc2NhZGUsIGNvbm49c2VsZi5jb25uCisgICAg ICAgICAgICAgICAgKQorCisgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4u ZXhlY3V0ZV9zY2FsYXIoc3FsKQorICAgICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAg ICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVz KQorCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAg ICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICBpbmZvPWdldHRleHQoIlB1YmxpY2F0aW9u IGRyb3BwZWQiKQorICAgICAgICAgICAgKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMg ZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3Ry KGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBtc3FsKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHBiaWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9u IGlzIHVzZWQgdG8gcmV0dXJuIG1vZGlmaWVkIFNRTCBmb3IgdGhlIHNlbGVjdGVkCisgICAgICAg IHB1YmxpY2F0aW9uIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2Vy dmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlk OiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgcGJpZDogUHVibGljYXRpb24gSUQKKyAgICAgICAg IiIiCisgICAgICAgIGRhdGEgPSB7fQorICAgICAgICBmb3IgaywgdiBpbiByZXF1ZXN0LmFyZ3Mu aXRlbXMoKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAjIGNvbW1lbnRzIHNo b3VsZCBiZSB0YWtlbiBhcyBpcyBiZWNhdXNlIGlmIHVzZXIgZW50ZXJzIGEKKyAgICAgICAgICAg ICAgICAjIGpzb24gY29tbWVudCBpdCBpcyBwYXJzZWQgYnkgbG9hZHMgd2hpY2ggc2hvdWxkIG5v dCBoYXBwZW4KKyAgICAgICAgICAgICAgICBpZiBrIGluICgnZGVzY3JpcHRpb24nLCk6CisgICAg ICAgICAgICAgICAgICAgIGRhdGFba10gPSB2CisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICAgICAgICAgZGF0YVtrXSA9IGpzb24ubG9hZHModiwgZW5jb2Rpbmc9J3V0Zi04JykK KyAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAgIGRhdGFba10g PSB2CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNxbCwgbmFtZSA9IHNlbGYuZ2V0X3NxbChk YXRhLCBwYmlkKQorICAgICAgICAgICAgIyBNb3N0IHByb2JhYmx5IHRoaXMgaXMgZHVlIHRvIGVy cm9yCisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShzcWwsIHN0cik6CisgICAgICAgICAg ICAgICAgcmV0dXJuIHNxbAorICAgICAgICAgICAgaWYgc3FsID09ICcnOgorICAgICAgICAgICAg ICAgIHNxbCA9ICItLW1vZGlmaWVkIFNRTCIKKworICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNv bl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBkYXRhPXNxbCwKKyAgICAgICAgICAgICAgICBz dGF0dXM9MjAwCisgICAgICAgICAgICApCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToK KyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUp KQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBfZ2V0X29wdGlvbl9kZXRhaWxzKG9sZF9k YXRhLCBkYXRhKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiB0aGUgb3B0aW9uIGRldGFp bHMKKyAgICAgICAgOnBhcmFtIG9sZF9kYXRhOgorICAgICAgICA6cGFyYW0gZGF0YToKKyAgICAg ICAgOnJldHVybjogZGF0YQorICAgICAgICAiIiIKKyAgICAgICAgaWYgJ2V2bnRfaW5zZXJ0JyBp biBkYXRhIG9yICdldm50X2RlbGV0ZScgaW4gZGF0YSBvciBcCisgICAgICAgICAgICAgICAgJ2V2 bnRfdXBkYXRlJyBpbiBkYXRhIG9yICdldm50X3RydW5jYXRlJyBpbiBkYXRhOgorCisgICAgICAg ICAgICBpZiAnZXZudF9pbnNlcnQnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgIGRhdGFb J2V2bnRfaW5zZXJ0J10gPSBvbGRfZGF0YVsnZXZudF9pbnNlcnQnXQorCisgICAgICAgICAgICBp ZiAnZXZudF9kZWxldGUnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgIGRhdGFbJ2V2bnRf ZGVsZXRlJ10gPSBvbGRfZGF0YVsnZXZudF9kZWxldGUnXQorCisgICAgICAgICAgICBpZiAnZXZu dF91cGRhdGUnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgIGRhdGFbJ2V2bnRfdXBkYXRl J10gPSBvbGRfZGF0YVsnZXZudF91cGRhdGUnXQorCisgICAgICAgICAgICBpZiAnZXZudF90cnVu Y2F0ZScgbm90IGluIGRhdGEgYW5kICdldm50X3RydW5jYXRlJyBpbiBvbGRfZGF0YToKKyAgICAg ICAgICAgICAgICBkYXRhWydldm50X3RydW5jYXRlJ10gPSBvbGRfZGF0YVsnZXZudF90cnVuY2F0 ZSddCisKKyAgICAgICAgcmV0dXJuIGRhdGEKKworICAgIGRlZiBnZXRfc3FsKHNlbGYsIGRhdGEs IHBiaWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2Vu ZXJhdGUgc3FsIGZyb20gbW9kZWwgZGF0YS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAg ZGF0YTogQ29udGFpbnMgdGhlIGRhdGEgb2YgdGhlIHNlbGVjdGVkIHB1YmxpY2F0aW9uIG5vZGUu CisgICAgICAgICAgICBwYmlkOiBQdWJsaWNhdGlvbiBJRAorICAgICAgICAiIiIKKyAgICAgICAg cmVxdWlyZWRfYXJncyA9IFsKKyAgICAgICAgICAgICduYW1lJworICAgICAgICBdCisgICAgICAg IGRyb3BfdGFibGUgPSBGYWxzZQorCisgICAgICAgIGlmIHBiaWQgaXMgbm90IE5vbmU6CisgICAg ICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgIi8iLmpvaW4o W3NlbGYudGVtcGxhdGVfcGF0aCwgc2VsZi5fUFJPUEVSVElFU19TUUxdKSwgcGJpZD1wYmlkCisg ICAgICAgICAgICApCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRl X2RpY3Qoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAg aWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAgICAgICAgICAgIHJldHVybiBnb25lKHNl bGYuX05PVF9GT1VORF9QVUJfSU5GT1JNQVRJT04pCisKKyAgICAgICAgICAgIG9sZF9kYXRhID0g c2VsZi5fZ2V0X29sZF90YWJsZV9kYXRhKHJlc1sncm93cyddWzBdWyduYW1lJ10sIHJlcykKKwor ICAgICAgICAgICAgZHJvcF90YWJsZV9kYXRhID0gW10KKworICAgICAgICAgICAgZm9yIHRhYmxl IGluIG9sZF9kYXRhWydwdWJ0YWJsZSddOgorICAgICAgICAgICAgICAgIGlmIHRhYmxlIG5vdCBp biBkYXRhWydwdWJ0YWJsZSddOgorICAgICAgICAgICAgICAgICAgICBkcm9wX3RhYmxlX2RhdGEu YXBwZW5kKHRhYmxlKQorICAgICAgICAgICAgICAgICAgICBkcm9wX3RhYmxlID0gVHJ1ZQorCisg ICAgICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICAgICAgaWYg YXJnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgICAgICBkYXRhW2FyZ10gPSBvbGRfZGF0 YVthcmddCisKKyAgICAgICAgICAgICMgQWRkIG9sZCBldmVudCBzZXR0aW5nIGZvciBmdXR1cmUg cmVmZXJlbmNlCisgICAgICAgICAgICBkYXRhID0gc2VsZi5fZ2V0X29wdGlvbl9kZXRhaWxzKG9s ZF9kYXRhLCBkYXRhKQorCisgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAg ICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgc2VsZi5fVVBEQVRFX1NR TF0pLAorICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgb19kYXRhPW9sZF9kYXRhLCBjb25uPXNl bGYuY29ubiwKKyAgICAgICAgICAgICAgICBkcm9wX3RhYmxlPWRyb3BfdGFibGUsIGRyb3BfdGFi bGVfZGF0YT1kcm9wX3RhYmxlX2RhdGEKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHJldHVy biBzcWwuc3RyaXAoJ1xuJyksIGRhdGFbJ25hbWUnXSBpZiAnbmFtZScgaW4gZGF0YSBcCisgICAg ICAgICAgICAgICAgZWxzZSBvbGRfZGF0YVsnbmFtZSddCisgICAgICAgIGVsc2U6CisKKyAgICAg ICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRo LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9DUkVB VEVfU1FMXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBj b25uPXNlbGYuY29ubikKKyAgICAgICAgICAgIHJldHVybiBzcWwuc3RyaXAoJ1xuJyksIGRhdGFb J25hbWUnXQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBnZXRfdGFibGVzKHNl bGYsIGdpZCwgc2lkLCBkaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBy ZXR1cm5zIHRoZSB0YWJsZXMgbGlzdC4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lk OiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAg ICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICIiIgorICAgICAgICByZXMgPSBbeydsYWJlbCc6 ICcnLCAndmFsdWUnOiAnJ31dCisKKyAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5q b2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ2dldF9hbGxfdGFibGVzLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNob3dfc3lzX29iamVjdHM9c2VsZi5ibHVlcHJpbnQuCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaG93X3N5c3RlbV9vYmplY3RzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyX3R5cGU9c2VsZi5tYW5hZ2VyLnNlcnZlcl90eXBlCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5l eGVjdXRlXzJkYXJyYXkoc3FsKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgIGZvciBy b3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgICAgICdsYWJlbCc6IHJvd1sndGFibGUnXSwKKyAgICAg ICAgICAgICAgICAgICAgJ3ZhbHVlJzogcm93Wyd0YWJsZSddCisgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgKQorICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAg ICAgICAgZGF0YT1yZXMsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAg IGRlZiBfZ2V0X29sZF90YWJsZV9kYXRhKHNlbGYsIHBuYW1lLCByZXMpOgorICAgICAgICAiIiIK KyAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm4gdGFibGUgZGV0YWlscyBiZWZvcmUgdXBkYXRl CisgICAgICAgIDpwYXJhbSBwbmFtZToKKyAgICAgICAgOnBhcmFtIHJlczoKKyAgICAgICAgOnJl dHVybjpvbGRfZGF0YQorICAgICAgICAiIiIKKworICAgICAgICB0YWJsZV9zcWwgPSByZW5kZXJf dGVtcGxhdGUoCisgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnZ2V0 X3RhYmxlcy5zcWwnXSksCisgICAgICAgICAgICBwbmFtZT1wbmFtZQorICAgICAgICApCisKKyAg ICAgICAgcHViX3RhYmxlID0gW10KKyAgICAgICAgc3RhdHVzLCB0YWJsZV9yZXMgPSBzZWxmLmNv bm4uZXhlY3V0ZV9kaWN0KHRhYmxlX3NxbCkKKworICAgICAgICBmb3IgdGFibGUgaW4gdGFibGVf cmVzWydyb3dzJ106CisgICAgICAgICAgICBwdWJfdGFibGUuYXBwZW5kKHRhYmxlWydwdWJ0YWJs ZSddKQorCisgICAgICAgIHJlc1sncm93cyddWzBdWydwdWJ0YWJsZSddID0gcHViX3RhYmxlCisK KyAgICAgICAgIyBNYWtpbmcgY29weSBvZiBvdXRwdXQgZm9yIGZ1dHVyZSB1c2UKKyAgICAgICAg b2xkX2RhdGEgPSBkaWN0KHJlc1sncm93cyddWzBdKQorCisgICAgICAgIGlmICdhbGxfdGFibGUn IGluIG9sZF9kYXRhIGFuZCBvbGRfZGF0YVsnYWxsX3RhYmxlJ106CisgICAgICAgICAgICBvbGRf ZGF0YVsncHVidGFibGUnXSA9ICcnCisKKyAgICAgICAgcmV0dXJuIG9sZF9kYXRhCisKKyAgICBA Y2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHNxbChzZWxmLCBnaWQsIHNpZCwgZGlkLCBwYmlk LCBqc29uX3Jlc3A9VHJ1ZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdp bGwgZ2VuZXJhdGUgc3FsIHRvIHNob3cgaW4gdGhlIHNxbCBwYW5lbCBmb3IgdGhlCisgICAgICAg IHNlbGVjdGVkIHB1YmxpY2F0aW9uIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAg IGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAg ICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgcGJpZDogUHVibGljYXRpb24gSUQK KyAgICAgICAgICAgIGpzb25fcmVzcDoKKyAgICAgICAgIiIiCisgICAgICAgIHNxbCA9IHJlbmRl cl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsIHNl bGYuX1BST1BFUlRJRVNfU1FMXSksCisgICAgICAgICAgICBwYmlkPXBiaWQKKyAgICAgICAgKQor ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAg ICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgorICAg ICAgICAgICAgcmV0dXJuIGdvbmUoc2VsZi5fTk9UX0ZPVU5EX1BVQl9JTkZPUk1BVElPTikKKwor ICAgICAgICBnZXRfbmFtZV9zcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAiLyIu am9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCBzZWxmLl9ERUxFVEVfU1FMXSksCisgICAgICAgICAg ICBwYmlkPXBiaWQsIGNvbm49c2VsZi5jb25uCisgICAgICAgICkKKyAgICAgICAgc3RhdHVzLCBw bmFtZSA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihnZXRfbmFtZV9zcWwpCisKKyAgICAgICAg IyBHZXQgb2xkIHRhYmxlIGRldGFpbHMKKyAgICAgICAgb2xkX2RhdGEgPSBzZWxmLl9nZXRfb2xk X3RhYmxlX2RhdGEocG5hbWUsIHJlcykKKworICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUo Ii8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLl9DUkVBVEVfU1FMXSksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkYXRhPW9sZF9kYXRhLCBjb25uPXNlbGYuY29ubikKKworICAgICAgICBzcWxfaGVh ZGVyID0gIi0tIFB1YmxpY2F0aW9uIDoge307Ii5mb3JtYXQob2xkX2RhdGFbJ25hbWUnXSkKKyAg ICAgICAgc3FsX2hlYWRlciArPSAiXG4iCisKKyAgICAgICAgc3FsX2hlYWRlciArPSAiLS0gIgor CisgICAgICAgIHNxbF9oZWFkZXIgKz0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgIi8i LmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgc2VsZi5fREVMRVRFX1NRTF0pLAorICAgICAgICAg ICAgcG5hbWU9b2xkX2RhdGFbJ25hbWUnXSwgKQorCisgICAgICAgIHNxbF9oZWFkZXIgKz0gIlxu IgorCisgICAgICAgIHNxbCA9IHNxbF9oZWFkZXIgKyBzcWwKKworICAgICAgICBpZiBub3QganNv bl9yZXNwOgorICAgICAgICAgICAgcmV0dXJuIHNxbAorCisgICAgICAgIHJldHVybiBhamF4X3Jl c3BvbnNlKHJlc3BvbnNlPXNxbCkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg ZGVwZW5kZW50cyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBwYmlkKToKKyAgICAgICAgIiIiCisgICAg ICAgIFRoaXMgZnVuY3Rpb24gZ2V0cyB0aGUgZGVwZW5kZW50cyBhbmQgcmV0dXJucyBhbiBhamF4 IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUgcHVibGljYXRpb24gbm9kZS4KKworICAgICAgICBB cmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDog U2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICBwYmlk OiBQdWJsaWNhdGlvbiBJRAorICAgICAgICAiIiIKKyAgICAgICAgZGVwZW5kZW50c19yZXN1bHQg PSBzZWxmLmdldF9kZXBlbmRlbnRzKHNlbGYuY29ubiwgcGJpZCkKKyAgICAgICAgcmV0dXJuIGFq YXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZT1kZXBlbmRlbnRzX3Jlc3VsdCwKKyAg ICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlv bgorICAgIGRlZiBkZXBlbmRlbmNpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgcGJpZCk6CisgICAg ICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldHMgdGhlIGRlcGVuZGVuY2llcyBhbmQg cmV0dXJucyBhbiBhamF4IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUgcHVibGljYXRpb24gbm9k ZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAg ICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisg ICAgICAgICAgICBwYmlkOiBQdWJsaWNhdGlvbiBJRAorICAgICAgICAiIiIKKyAgICAgICAgZGVw ZW5kZW5jaWVzX3Jlc3VsdCA9IHNlbGYuZ2V0X2RlcGVuZGVuY2llcyhzZWxmLmNvbm4sIHBiaWQp CisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9uc2U9ZGVw ZW5kZW5jaWVzX3Jlc3VsdCwKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisK K1B1YmxpY2F0aW9uVmlldy5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1 YmxpY2F0aW9ucy9zdGF0aWMvaW1nL2NvbGwtcHVibGljYXRpb24uc3ZnIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy9zdGF0 aWMvaW1nL2NvbGwtcHVibGljYXRpb24uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMC4uY2M5NDY5MTliCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy9zdGF0aWMvaW1n L2NvbGwtcHVibGljYXRpb24uc3ZnCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEu MCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3Ig MjQuMC4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAg LS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3Lncz Lm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsi IHg9IjBweCIgeT0iMHB4IgorCSB2aWV3Qm94PSIwIDAgMTYgMTYiIHN0eWxlPSJlbmFibGUtYmFj a2dyb3VuZDpuZXcgMCAwIDE2IDE2OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+Cis8c3R5bGUgdHlw ZT0idGV4dC9jc3MiPgorCS5zdDB7ZmlsbDojRERFMUYwO3N0cm9rZTojNEI1RkFEO3N0cm9rZS13 aWR0aDowLjY1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJv a2UtbWl0ZXJsaW1pdDoxMDt9CisJLnN0MXtmaWxsOiM0QjVGQUQ7fQorCS5zdDJ7ZmlsbDpub25l O3N0cm9rZTojNEI1RkFEO3N0cm9rZS13aWR0aDowLjY1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0 cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9Cis8L3N0eWxlPgorPGc+ CisJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEwLDEzYy0yLDItNS4xLDItNy4xLDBzLTItNS4xLDAt Ny4xQzQuNSw3LjUsOC41LDExLjUsMTAsMTN6Ii8+Cis8L2c+Cis8Zz4KKwk8cGF0aCBjbGFzcz0i c3QwIiBkPSJNMTEuOCwxMS4zYy0yLDItNS4xLDItNy4xLDBzLTItNS4xLDAtNy4xQzYuMiw1Ljcs MTAuMiw5LjgsMTEuOCwxMS4zeiIvPgorPC9nPgorPHBhdGggY2xhc3M9InN0MSIgZD0iTTguNyw3 LjhsMC44LTAuN2MwLjEsMC4xLDAuMywwLjEsMC40LDAuMWMwLjYsMCwxLTAuNCwxLTFzLTAuNC0x LTEtMXMtMSwwLjQtMSwxYzAsMC4xLDAsMC4zLDAuMSwwLjRMOC4yLDcuMworCUw4LjcsNy44eiIv PgorPGc+CisJPHBhdGggY2xhc3M9InN0MiIgZD0iTTEwLjUsMS42YzIuMiwwLDQsMS44LDQsNCIv PgorCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xMC42LDMuNmMxLjEsMCwyLDAuOSwyLDIiLz4KKzwv Zz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy9zdGF0aWMvaW1nL2NvbGwtc3Vic2NyaXB0 aW9uLnN2ZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9wdWJsaWNhdGlvbnMvc3RhdGljL2ltZy9jb2xsLXN1YnNjcmlwdGlvbi5zdmcKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5kMTRhZGZkMzkKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv cHVibGljYXRpb25zL3N0YXRpYy9pbWcvY29sbC1zdWJzY3JpcHRpb24uc3ZnCkBAIC0wLDAgKzEs MzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIEdlbmVy YXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjQuMC4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcg VmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVy XzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6 Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgorCSB2aWV3Qm94PSIwIDAg MTYgMTYiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDE2IDE2OyIgeG1sOnNwYWNl PSJwcmVzZXJ2ZSI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCS5zdDB7ZmlsbDojRkJFRURG O3N0cm9rZTojRTU4RTI2O3N0cm9rZS13aWR0aDowLjY1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0 cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9CisJLnN0MXtmaWxsOiNF NThFMjY7fQorCS5zdDJ7ZmlsbDpub25lO3N0cm9rZTojRTU4RTI2O3N0cm9rZS13aWR0aDowLjY1 O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJs aW1pdDoxMDt9Cis8L3N0eWxlPgorPGc+CisJPGc+CisJCTxnPgorCQkJPHBhdGggY2xhc3M9InN0 MCIgZD0iTTEyLjksNS43YzIsMiwyLDUuMSwwLDcuMXMtNS4xLDItNy4xLDBDNy4zLDExLjMsMTEu NCw3LjIsMTIuOSw1Ljd6Ii8+CisJCTwvZz4KKwk8L2c+CisJPGc+CisJCTxnPgorCQkJPHBhdGgg Y2xhc3M9InN0MCIgZD0iTTExLjQsNC4yYzIsMiwyLDUuMSwwLDcuMXMtNS4xLDItNy4xLDBDNS44 LDkuOCw5LjksNS43LDExLjQsNC4yeiIvPgorCQk8L2c+CisJCTxnPgorCQkJPHBhdGggY2xhc3M9 InN0MSIgZD0iTTcuOCw3LjNMNy4xLDYuNmMwLjEtMC4xLDAuMS0wLjMsMC4xLTAuNGMwLTAuNi0w LjQtMS0xLTFzLTEsMC40LTEsMXMwLjQsMSwxLDFjMC4xLDAsMC4zLDAsMC40LTAuMQorCQkJCWww LjcsMC43Ii8+CisJCQk8Zz4KKwkJCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNNS42LDEuN2MwLDIu Mi0xLjgsNC00LDQiLz4KKwkJCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMy43LDEuOGMwLDEuMS0w LjksMi0yLDIiLz4KKwkJCTwvZz4KKwkJPC9nPgorCTwvZz4KKzwvZz4KKzwvc3ZnPgpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3B1YmxpY2F0aW9ucy9zdGF0aWMvaW1nL3B1YmxpY2F0aW9uLnN2ZyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvc3RhdGlj L2ltZy9wdWJsaWNhdGlvbi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw Li4zYjU4MmNmNTEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3N0YXRpYy9pbWcvcHVibGlj YXRpb24uc3ZnCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9 InV0Zi04Ij8+Cis8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjMuMC42LCBTVkcg RXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+Cis8c3ZnIHZl cnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2 ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0i MHB4IgorCSB2aWV3Qm94PSIwIDAgMTYgMTYiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcg MCAwIDE2IDE2OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3Mi PgorCS5zdDB7ZmlsbDojRERFMUYwO3N0cm9rZTojNEI1RkFEO3N0cm9rZS13aWR0aDowLjY1O3N0 cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1p dDoxMDt9CisJLnN0MXtmaWxsOiM0QjVGQUQ7fQorCS5zdDJ7ZmlsbDpub25lO3N0cm9rZTojNEI1 RkFEO3N0cm9rZS13aWR0aDowLjY1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9p bjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9Cis8L3N0eWxlPgorPGc+CisJPGc+CisJCTxw YXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMSwxMmMtMiwyLTUuMSwyLTcuMSwwcy0yLTUuMSwwLTcuMUM1 LjQsNi40LDkuNSwxMC41LDExLDEyeiIvPgorCTwvZz4KKwk8Zz4KKwkJPHBhdGggY2xhc3M9InN0 MSIgZD0iTTcuOSw4LjZsMC43LTAuN0M4LjcsOCw4LjksOCw5LDhjMC42LDAsMS0wLjQsMS0xUzku Niw2LDksNlM4LDYuNCw4LDdjMCwwLjEsMCwwLjMsMC4xLDAuNEw3LjQsOC4xIi8+CisJCTxnPgor CQkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTkuNiwyLjVjMi4yLDAsNCwxLjgsNCw0Ii8+CisJCQk8 cGF0aCBjbGFzcz0ic3QyIiBkPSJNOS43LDQuNGMxLjEsMCwyLDAuOSwyLDIiLz4KKwkJPC9nPgor CTwvZz4KKzwvZz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy9zdGF0aWMvaW1nL3N1YnNj cmlwdGlvbi5zdmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvcHVibGljYXRpb25zL3N0YXRpYy9pbWcvc3Vic2NyaXB0aW9uLnN2ZwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjYzYTE1M2M2ZAotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9w dWJsaWNhdGlvbnMvc3RhdGljL2ltZy9zdWJzY3JpcHRpb24uc3ZnCkBAIC0wLDAgKzEsMjIgQEAK Kzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIEdlbmVyYXRvcjog QWRvYmUgSWxsdXN0cmF0b3IgMjMuMC42LCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lv bjogNi4wMCBCdWlsZCAwKSAgLS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHht bG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cu dzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgorCSB2aWV3Qm94PSIwIDAgMTYgMTYi IHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDE2IDE2OyIgeG1sOnNwYWNlPSJwcmVz ZXJ2ZSI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCS5zdDB7ZmlsbDojRkJFRURGO3N0cm9r ZTojRTU4RTI2O3N0cm9rZS13aWR0aDowLjY1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1s aW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9CisJLnN0MXtmaWxsOiNFNThFMjY7 fQorCS5zdDJ7ZmlsbDpub25lO3N0cm9rZTojRTU4RTI2O3N0cm9rZS13aWR0aDowLjY1O3N0cm9r ZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDox MDt9Cis8L3N0eWxlPgorPGc+CisJPGc+CisJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMi4yLDVj MiwyLDIsNS4xLDAsNy4xcy01LjEsMi03LjEsMEM2LjYsMTAuNiwxMC43LDYuNSwxMi4yLDV6Ii8+ CisJPC9nPgorCTxnPgorCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNOC42LDguMUw3LjksNy40Qzgs Ny4zLDgsNy4xLDgsN2MwLTAuNi0wLjQtMS0xLTFTNiw2LjQsNiw3czAuNCwxLDEsMWMwLjEsMCww LjMsMCwwLjQtMC4xbDAuNywwLjciLz4KKwkJPGc+CisJCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJN Ni40LDIuNWMwLDIuMi0xLjgsNC00LDQiLz4KKwkJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik00LjUs Mi42YzAsMS4xLTAuOSwyLTIsMiIvPgorCQk8L2c+CisJPC9nPgorPC9nPgorPC9zdmc+CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvcHVibGljYXRpb25zL3N0YXRpYy9qcy9wdWJsaWNhdGlvbi5qcyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvc3RhdGlj L2pzL3B1YmxpY2F0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4u MTYwY2UyZThjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy9zdGF0aWMvanMvcHVibGljYXRp b24uanMKQEAgLTAsMCArMSwyMzIgQEAKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyBwZ0FkbWluIDQgLSBQb3N0Z3Jl U1FMIFRvb2xzCisvLworLy8gQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4g RGV2ZWxvcG1lbnQgVGVhbQorLy8gVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUg UG9zdGdyZVNRTCBMaWNlbmNlCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworZGVmaW5lKCdwZ2FkbWluLm5vZGUucHVi bGljYXRpb24nLCBbCisgICdzb3VyY2VzL2dldHRleHQnLCAnc291cmNlcy91cmxfZm9yJywgJ2px dWVyeScsICd1bmRlcnNjb3JlJywKKyAgJ3NvdXJjZXMvcGdhZG1pbicsICdwZ2FkbWluLmJyb3dz ZXInLCAncGdhZG1pbi5iYWNrZm9ybScsCisgICdwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbics ICdwZ2FkbWluLmJyb3dzZXIuc2VydmVyLnByaXZpbGVnZScsCitdLCBmdW5jdGlvbihnZXR0ZXh0 LCB1cmxfZm9yLCAkLCBfLCBwZ0FkbWluLCBwZ0Jyb3dzZXIsIEJhY2tmb3JtKSB7CisKKyAgLy8g RXh0ZW5kIHRoZSBicm93c2VyJ3MgY29sbGVjdGlvbiBjbGFzcyBmb3IgcHVibGljYXRpb25zIGNv bGxlY3Rpb24KKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwtcHVibGljYXRpb24nXSkgewor ICAgIHBnQnJvd3Nlci5Ob2Rlc1snY29sbC1wdWJsaWNhdGlvbiddID0KKyAgICAgIHBnQnJvd3Nl ci5Db2xsZWN0aW9uLmV4dGVuZCh7CisgICAgICAgIG5vZGU6ICdwdWJsaWNhdGlvbicsCisgICAg ICAgIGxhYmVsOiBnZXR0ZXh0KCdQdWJsaWNhdGlvbnMnKSwKKyAgICAgICAgdHlwZTogJ2NvbGwt cHVibGljYXRpb24nLAorICAgICAgICBjb2x1bW5zOiBbJ25hbWUnLCAncHVib3duZXInLCAnYWxs X3RhYmxlJ10sCisgICAgICB9KTsKKyAgfQorCisgIC8vIEV4dGVuZCB0aGUgYnJvd3NlcidzIG5v ZGUgY2xhc3MgZm9yIHB1YmxpY2F0aW9uIG5vZGUKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ3B1 YmxpY2F0aW9uJ10pIHsKKyAgICBwZ0Jyb3dzZXIuTm9kZXNbJ3B1YmxpY2F0aW9uJ10gPSBwZ0Jy b3dzZXIuTm9kZS5leHRlbmQoeworICAgICAgcGFyZW50X3R5cGU6ICdkYXRhYmFzZScsCisgICAg ICB0eXBlOiAncHVibGljYXRpb24nLAorICAgICAgc3FsQWx0ZXJIZWxwOiAnc3FsLWFsdGVycHVi bGljYXRpb24uaHRtbCcsCisgICAgICBzcWxDcmVhdGVIZWxwOiAnc3FsLWNyZWF0ZXB1YmxpY2F0 aW9uLmh0bWwnLAorICAgICAgZGlhbG9nSGVscDogdXJsX2ZvcignaGVscC5zdGF0aWMnLCB7J2Zp bGVuYW1lJzogJ3B1YmxpY2F0aW9uX2RpYWxvZy5odG1sJ30pLAorICAgICAgbGFiZWw6IGdldHRl eHQoJ1B1YmxpY2F0aW9uJyksCisgICAgICBoYXNTUUw6ICB0cnVlLAorICAgICAgY2FuRHJvcDog dHJ1ZSwKKyAgICAgIGNhbkRyb3BDYXNjYWRlOiB0cnVlLAorICAgICAgaGFzRGVwZW5kczogdHJ1 ZSwKKyAgICAgIEluaXQ6IGZ1bmN0aW9uKCkgeworCisgICAgICAgIC8vIEF2b2lkIG11bHRpcGxl IHJlZ2lzdHJhdGlvbiBvZiBtZW51cworICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkKKyAg ICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7CisKKwor ICAgICAgICAvLyBBZGQgY29udGV4dCBtZW51cyBmb3IgcHVibGljYXRpb24KKyAgICAgICAgcGdC cm93c2VyLmFkZF9tZW51cyhbeworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfcHVibGljYXRpb25f b25fZGF0YWJhc2UnLCBub2RlOiAnZGF0YWJhc2UnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAg YXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3Bl cnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVs OiBnZXR0ZXh0KCdQdWJsaWNhdGlvbi4uLicpLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24g aWNvbi1wdWJsaWNhdGlvbicsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUnfSwKKyAgICAgICAgICBl bmFibGU6IHBnQnJvd3Nlci5Ob2Rlc1snZGF0YWJhc2UnXS5jYW5DcmVhdGUsCisgICAgICAgIH0s eworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfcHVibGljYXRpb25fb25fY29sbCcsIG5vZGU6ICdj b2xsLXB1YmxpY2F0aW9uJywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2Jq ZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAg ICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJlbDogZ2V0dGV4dCgnUHVi bGljYXRpb24uLi4nKSwKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tcHVibGljYXRp b24nLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJ30sCisgICAgICAgIH0seworICAgICAgICAgIG5h bWU6ICdjcmVhdGVfcHVibGljYXRpb24nLCBub2RlOiAncHVibGljYXRpb24nLCBtb2R1bGU6IHRo aXMsCisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazog J3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJp b3JpdHk6IDQsIGxhYmVsOiBnZXR0ZXh0KCdQdWJsaWNhdGlvbi4uLicpLAorICAgICAgICAgIGlj b246ICd3Y1RhYkljb24gaWNvbi1wdWJsaWNhdGlvbicsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUn fSwKKyAgICAgICAgfV0pOworICAgICAgfSwKKyAgICAgIC8vIERlZmluZSB0aGUgbW9kZWwgZm9y IHB1YmxpY2F0aW9uIG5vZGUKKyAgICAgIG1vZGVsOiBwZ0Jyb3dzZXIuTm9kZS5Nb2RlbC5leHRl bmQoeworICAgICAgICBpZEF0dHJpYnV0ZTogJ29pZCcsCisgICAgICAgIGRlZmF1bHRzOiB7Cisg ICAgICAgICAgbmFtZTogdW5kZWZpbmVkLAorICAgICAgICAgIHB1Ym93bmVyOiB1bmRlZmluZWQs CisgICAgICAgICAgcHVidGFibGU6IHVuZGVmaW5lZCwKKyAgICAgICAgICBhbGxfdGFibGU6IHVu ZGVmaW5lZCwKKyAgICAgICAgICBldm50X2luc2VydDp0cnVlLAorICAgICAgICAgIGV2bnRfZGVs ZXRlOnRydWUsCisgICAgICAgICAgZXZudF91cGRhdGU6dHJ1ZSwKKyAgICAgICAgICBldm50X3Ry dW5jYXRlOnRydWUsCisgICAgICAgICAgb25seV90YWJsZTogdW5kZWZpbmVkLAorICAgICAgICB9 LAorCisgICAgICAgIC8vIERlZmF1bHQgdmFsdWVzIQorICAgICAgICBpbml0aWFsaXplOiBmdW5j dGlvbihhdHRycywgYXJncykgeworICAgICAgICAgIHZhciBpc05ldyA9IChfLnNpemUoYXR0cnMp ID09PSAwKTsKKyAgICAgICAgICBpZiAoaXNOZXcpIHsKKyAgICAgICAgICAgIHZhciB1c2VySW5m byA9IHBnQnJvd3Nlci5zZXJ2ZXJJbmZvW2FyZ3Mubm9kZV9pbmZvLnNlcnZlci5faWRdLnVzZXI7 CisKKyAgICAgICAgICAgIHRoaXMuc2V0KHsncHVib3duZXInOiB1c2VySW5mby5uYW1lfSwge3Np bGVudDogdHJ1ZX0pOworICAgICAgICAgIH0KKyAgICAgICAgICBwZ0Jyb3dzZXIuTm9kZS5Nb2Rl bC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworICAgICAgICB9 LAorCisgICAgICAgIC8vIERlZmluZSB0aGUgc2NoZW1hIGZvciB0aGUgcHVibGljYXRpb24gbm9k ZQorICAgICAgICBzY2hlbWE6IFt7CisgICAgICAgICAgaWQ6ICduYW1lJywgbGFiZWw6IGdldHRl eHQoJ05hbWUnKSwgdHlwZTogJ3RleHQnLAorICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycs ICdjcmVhdGUnLCAnZWRpdCddLAorICAgICAgICAgIHZpc2libGU6IGZ1bmN0aW9uKCkgeworICAg ICAgICAgICAgaWYoIV8uaXNVbmRlZmluZWQodGhpcy5ub2RlX2luZm8pICYmICFfLmlzVW5kZWZp bmVkKHRoaXMubm9kZV9pbmZvLnNlcnZlcikKKyAgICAgICAgICAgICAgJiYgIV8uaXNVbmRlZmlu ZWQodGhpcy5ub2RlX2luZm8uc2VydmVyLnZlcnNpb24pICYmCisgICAgICAgICAgICAgICAgdGhp cy5ub2RlX2luZm8uc2VydmVyLnZlcnNpb24gPj0gMTAwMDAwKSB7CisgICAgICAgICAgICAgIHJl dHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg ICAgICAgIH0sCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnb2lkJywgbGFiZWw6IGdldHRl eHQoJ09JRCcpLCBjZWxsOiAnc3RyaW5nJywgbW9kZTogWydwcm9wZXJ0aWVzJ10sCisgICAgICAg ICAgdHlwZTogJ3RleHQnLAorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3B1Ym93bmVyJywg bGFiZWw6IGdldHRleHQoJ093bmVyJyksIHR5cGU6ICd0ZXh0JywKKyAgICAgICAgICBjb250cm9s OiBCYWNrZm9ybS5Ob2RlTGlzdEJ5TmFtZUNvbnRyb2wsIG5vZGU6ICdyb2xlJywKKyAgICAgICAg ICBtb2RlOiBbJ2VkaXQnLCAncHJvcGVydGllcycsICdjcmVhdGUnXSwgc2VsZWN0MjogeyBhbGxv d0NsZWFyOiBmYWxzZX0sCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnYWxsX3RhYmxlJywg bGFiZWw6IGdldHRleHQoJ0FsbCB0YWJsZT8nKSwgdHlwZTogJ3N3aXRjaCcsCisgICAgICAgICAg Z3JvdXA6IGdldHRleHQoJ0RlZmluaXRpb24nKSwgbW9kZTogWydlZGl0JywgJ3Byb3BlcnRpZXMn LCAnY3JlYXRlJ10sIGRlcHM6IFsnbmFtZSddLAorICAgICAgICAgIHJlYWRvbmx5OiBmdW5jdGlv bihtKSB7cmV0dXJuICFtLmlzTmV3KCk7fSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg ICAgIGlkOiAnb25seV90YWJsZScsIGxhYmVsOiBnZXR0ZXh0KCdPbmx5IHRhYmxlJyksIHR5cGU6 ICdzd2l0Y2gnLAorICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdEZWZpbml0aW9uJyksIG1vZGU6 IFsnZWRpdCcsICdjcmVhdGUnXSwKKyAgICAgICAgICBkZXBzOiBbJ25hbWUnLCAncHVidGFibGUn LCAnYWxsX3RhYmxlJ10sIHJlYWRvbmx5OiAnaXNUYWJsZScsCisgICAgICAgIH0sCisgICAgICAg IHsKKyAgICAgICAgICBpZDogJ3B1YnRhYmxlJywgbGFiZWw6IGdldHRleHQoJ1RhYmxlJyksIHR5 cGU6ICdhcnJheScsc2VsZWN0MjogeyBhbGxvd0NsZWFyOiB0cnVlLCBtdWx0aXBsZTogdHJ1ZSB9 LAorICAgICAgICAgIGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycsIHVybDonZ2V0X3RhYmxl cycsCisgICAgICAgICAgZ3JvdXA6IGdldHRleHQoJ0RlZmluaXRpb24nKSwgbW9kZTogWydlZGl0 JywgJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJ10sCisgICAgICAgICAgZGVwczogWydhbGxfdGFibGUn XSwgZGlzYWJsZWQ6ICdpc0FsbFRhYmxlJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg ICAgIHR5cGU6ICduZXN0ZWQnLCBjb250cm9sOiAnZmllbGRzZXQnLCBtb2RlOiBbJ2NyZWF0ZScs J2VkaXQnLCAncHJvcGVydGllcyddLAorICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdXaXRoJyks IGdyb3VwOiBnZXR0ZXh0KCdEZWZpbml0aW9uJyksIGNvbnRlbnRDbGFzczogJ3JvdycsCisgICAg ICAgICAgc2NoZW1hOlt7CisgICAgICAgICAgICBpZDogJ2V2bnRfaW5zZXJ0JywgbGFiZWw6IGdl dHRleHQoJ0lOU0VSVCcpLAorICAgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsIG1vZGU6IFsnY3Jl YXRlJywnZWRpdCcsICdwcm9wZXJ0aWVzJ10sCisgICAgICAgICAgICBncm91cDogZ2V0dGV4dCgn V2l0aCcpLAorICAgICAgICAgICAgZXh0cmFUb2dnbGVDbGFzc2VzOiAncGctZWwtc20tNicsCisg ICAgICAgICAgICBjb250cm9sTGFiZWxDbGFzc05hbWU6ICdjb250cm9sLWxhYmVsIHBnLWVsLXNt LTUgcGctZWwtMTInLAorICAgICAgICAgICAgY29udHJvbHNDbGFzc05hbWU6ICdwZ2FkbWluLWNv bnRyb2xzIHBnLWVsLXNtLTcgcGctZWwtMTInLAorICAgICAgICAgIH0seworICAgICAgICAgICAg aWQ6ICdldm50X3VwZGF0ZScsIGxhYmVsOiBnZXR0ZXh0KCdVUERBVEUnKSwKKyAgICAgICAgICAg IHR5cGU6ICdzd2l0Y2gnLCBtb2RlOiBbJ2NyZWF0ZScsJ2VkaXQnLCAncHJvcGVydGllcyddLAor ICAgICAgICAgICAgZ3JvdXA6IGdldHRleHQoJ1dpdGgnKSwKKyAgICAgICAgICAgIGV4dHJhVG9n Z2xlQ2xhc3NlczogJ3BnLWVsLXNtLTYnLAorICAgICAgICAgICAgY29udHJvbExhYmVsQ2xhc3NO YW1lOiAnY29udHJvbC1sYWJlbCBwZy1lbC1zbS01IHBnLWVsLTEyJywKKyAgICAgICAgICAgIGNv bnRyb2xzQ2xhc3NOYW1lOiAncGdhZG1pbi1jb250cm9scyBwZy1lbC1zbS03IHBnLWVsLTEyJywK KyAgICAgICAgICB9LHsKKyAgICAgICAgICAgIGlkOiAnZXZudF9kZWxldGUnLCBsYWJlbDogZ2V0 dGV4dCgnREVMRVRFJyksCisgICAgICAgICAgICB0eXBlOiAnc3dpdGNoJywgbW9kZTogWydjcmVh dGUnLCdlZGl0JywgJ3Byb3BlcnRpZXMnXSwKKyAgICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdX aXRoJyksCisgICAgICAgICAgICBleHRyYVRvZ2dsZUNsYXNzZXM6ICdwZy1lbC1zbS02JywKKyAg ICAgICAgICAgIGNvbnRyb2xMYWJlbENsYXNzTmFtZTogJ2NvbnRyb2wtbGFiZWwgcGctZWwtc20t NSBwZy1lbC0xMicsCisgICAgICAgICAgICBjb250cm9sc0NsYXNzTmFtZTogJ3BnYWRtaW4tY29u dHJvbHMgcGctZWwtc20tNyBwZy1lbC0xMicsCisgICAgICAgICAgfSx7CisgICAgICAgICAgICBp ZDogJ2V2bnRfdHJ1bmNhdGUnLCBsYWJlbDogZ2V0dGV4dCgnVFJVTkNBVEUnKSwKKyAgICAgICAg ICAgIHR5cGU6ICdzd2l0Y2gnLCBncm91cDogZ2V0dGV4dCgnV2l0aCcpLAorICAgICAgICAgICAg ZXh0cmFUb2dnbGVDbGFzc2VzOiAncGctZWwtc20tNicsCisgICAgICAgICAgICBjb250cm9sTGFi ZWxDbGFzc05hbWU6ICdjb250cm9sLWxhYmVsIHBnLWVsLXNtLTUgcGctZWwtMTInLAorICAgICAg ICAgICAgY29udHJvbHNDbGFzc05hbWU6ICdwZ2FkbWluLWNvbnRyb2xzIHBnLWVsLXNtLTcgcGct ZWwtMTInLAorICAgICAgICAgICAgdmlzaWJsZTogZnVuY3Rpb24obSkgeworICAgICAgICAgICAg ICBpZighXy5pc1VuZGVmaW5lZChtLm5vZGVfaW5mbykgJiYgIV8uaXNVbmRlZmluZWQobS5ub2Rl X2luZm8uc2VydmVyKQorICAgICAgICAgICAgICAmJiAhXy5pc1VuZGVmaW5lZChtLm5vZGVfaW5m by5zZXJ2ZXIudmVyc2lvbikgJiYKKyAgICAgICAgICAgICAgICBtLm5vZGVfaW5mby5zZXJ2ZXIu dmVyc2lvbiA+PSAxMTAwMDApCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgICB9XSwKKyAg ICAgICAgfSwKKyAgICAgICAgXSwKKworICAgICAgICBpc0FsbFRhYmxlOiAgZnVuY3Rpb24obSl7 CisgICAgICAgICAgdmFyIGFsbF90YWJsZSA9IG0uZ2V0KCdhbGxfdGFibGUnKTsKKyAgICAgICAg ICBpZihhbGxfdGFibGUpeworICAgICAgICAgICAgc2V0VGltZW91dCggZnVuY3Rpb24oKSB7Cisg ICAgICAgICAgICAgIG0uc2V0KCdwdWJ0YWJsZScsICcnKTsKKyAgICAgICAgICAgIH0sIDEwKTsK KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgIH0KKyAgICAgICAgICByZXR1cm4g ZmFsc2U7CisgICAgICAgIH0sCisgICAgICAgIGlzVGFibGU6ICBmdW5jdGlvbihtKXsKKyAgICAg ICAgICB2YXIgYWxsX3RhYmxlID0gbS5nZXQoJ2FsbF90YWJsZScpLAorICAgICAgICAgICAgdGFi bGUgPSBtLmdldCgncHVidGFibGUnKTsKKyAgICAgICAgICBpZihhbGxfdGFibGUpeworICAgICAg ICAgICAgc2V0VGltZW91dCggZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIG0uc2V0KCdvbmx5 X3RhYmxlJywgZmFsc2UpOworICAgICAgICAgICAgfSwgMTApOworICAgICAgICAgICAgcmV0dXJu IHRydWU7CisgICAgICAgICAgfQorCisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGFibGUp IHx8IHRhYmxlLmxlbmd0aCA8IDEpeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg ICAgfQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSwKKworICAgICAgICAvKiB2 YWxpZGF0ZSBmdW5jdGlvbiBpcyB1c2VkIHRvIHZhbGlkYXRlIHRoZSBpbnB1dCBnaXZlbiBieQor ICAgICAgICAgKiB0aGUgdXNlci4gSW4gY2FzZSBvZiBlcnJvciwgbWVzc2FnZSB3aWxsIGJlIGRp c3BsYXllZCBvbgorICAgICAgICAgKiB0aGUgR1VJIGZvciB0aGUgcmVzcGVjdGl2ZSBjb250cm9s LgorICAgICAgICAgKi8KKyAgICAgICAgdmFsaWRhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgICAg IHZhciBuYW1lID0gdGhpcy5nZXQoJ25hbWUnKSwKKyAgICAgICAgICAgIG1zZzsKKworICAgICAg ICAgIGlmIChfLmlzVW5kZWZpbmVkKG5hbWUpIHx8IF8uaXNOdWxsKG5hbWUpIHx8CisgICAgICAg ICAgICBTdHJpbmcobmFtZSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAg ICAgICAgICAgbXNnID0gZ2V0dGV4dCgnTmFtZSBjYW5ub3QgYmUgZW1wdHkuJyk7CisgICAgICAg ICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCduYW1lJywgbXNnKTsKKyAgICAgICAgICAgIHJldHVy biBtc2c7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC51 bnNldCgnbmFtZScpOworICAgICAgICAgIH0KKyAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAg ICAgfSwKKyAgICAgICAgY2FuQ3JlYXRlOiBmdW5jdGlvbihpdGVtRGF0YSwgaXRlbSkgeworCisg ICAgICAgICAgdmFyIHRyZWVEYXRhID0gdGhpcy5nZXRUcmVlTm9kZUhpZXJhcmNoeShpdGVtKSwK KyAgICAgICAgICAgIHNlcnZlciA9IHRyZWVEYXRhWydzZXJ2ZXInXTsKKworICAgICAgICAgIC8v IElmIHNlcnZlciBpcyBsZXNzIHRoYW4gMTAgdGhlbiBkbyBub3QgYWxsb3cgJ2NyZWF0ZScgbWVu dQorICAgICAgICAgIGlmIChzZXJ2ZXIgJiYgc2VydmVyLnZlcnNpb24gPCAxMDAwMDApCisgICAg ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAvLyBieSBkZWZhdWx0IHdlIHdhbnQg dG8gYWxsb3cgY3JlYXRlIG1lbnUKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSwK KworICAgICAgfSksCisgICAgfSk7CisgIH0KKyAgcmV0dXJuIHBnQnJvd3Nlci5Ob2Rlc1snY29s bC1wdWJsaWNhdGlvbiddOworfSk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9wdWJs aWNhdGlvbnMvc3FsLzExX3BsdXMvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9w dWJsaWNhdGlvbnMvc3FsLzExX3BsdXMvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwLi40MmY1MzcyMzgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25z L3RlbXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsLzExX3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAs MCArMSw4IEBACitzZWxlY3QgYy5vaWQgYXMgb2lkLCBjLnB1Ym5hbWUgYXMgbmFtZSwKK3B1Ymlu c2VydCBhcyBldm50X2luc2VydCwgcHVidXBkYXRlIGFzIGV2bnRfdXBkYXRlLCBwdWJkZWxldGUg YXMgZXZudF9kZWxldGUsIHB1YnRydW5jYXRlIGFzIGV2bnRfdHJ1bmNhdGUsCitwdWJhbGx0YWJs ZXMgYXMgYWxsX3RhYmxlLAorcGdhLnJvbG5hbWUgYXMgcHVib3duZXIgZnJvbSBwZ19wdWJsaWNh dGlvbiBjCitqb2luIHBnX2F1dGhpZCBwZ2Egb24gYy5wdWJvd25lcj0gcGdhLm9pZAoreyUgIGlm IHBiaWQgJX0KKyAgICB3aGVyZSBjLm9pZCA9IHt7IHBiaWQgfX0KK3slIGVuZGlmICV9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsL2RlZmF1bHQvY3JlYXRl LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVmYXVsdC9jcmVhdGUu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMjcyZGVmOTkyCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0 L2NyZWF0ZS5zcWwKQEAgLTAsMCArMSwyMCBAQAoreyUgaWYgZGF0YS5ldm50X2RlbGV0ZSBvciBk YXRhLmV2bnRfdXBkYXRlIG9yIGRhdGEuZXZudF90cnVuY2F0ZSAlfQoreyUgc2V0IGFkZF9jb21t YV9hZnRlcl9pbnNlcnQgPSAnaW5zZXJ0JyAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZXZu dF90cnVuY2F0ZSAlfQoreyUgc2V0IGFkZF9jb21tYV9hZnRlcl9kZWxldGUgPSAnZGVsZXRlJyAl fQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZXZudF9kZWxldGUgb3IgZGF0YS5ldm50X3RydW5j YXRlJX0KK3slIHNldCBhZGRfY29tbWFfYWZ0ZXJfdXBkYXRlID0gJ3VwZGF0ZScgJX0KK3slIGVu ZGlmICV9CisKK0NSRUFURSBQVUJMSUNBVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9 fQoreyUgaWYgZGF0YS5hbGxfdGFibGUgJX0KKyAgICBGT1IgQUxMIFRBQkxFUworeyUgZWxpZiBk YXRhLnB1YnRhYmxlICV9CisgICAgRk9SIFRBQkxFIHslIGlmIGRhdGEub25seV90YWJsZSV9T05M WSB7JSBlbmRpZiAlfXslIGZvciB0YWJsZSBpbiBkYXRhLnB1YnRhYmxlICV9eyUgaWYgbG9vcC5p bmRleCAhPSAxICV9LCB7JSBlbmRpZiAlfXt7IHRhYmxlIH19eyUgZW5kZm9yICV9CisKK3slIGVu ZGlmICV9Cit7JSBpZiBkYXRhLmV2bnRfaW5zZXJ0IG9yIGRhdGEuZXZudF91cGRhdGUgb3IgZGF0 YS5ldm50X2RlbGV0ZSBvciBkYXRhLmV2bnRfdHJ1bmNhdGUgJX0KK1dJVEggKHB1Ymxpc2ggPSAn eyUgaWYgZGF0YS5ldm50X2luc2VydCAlfWluc2VydHslIGlmIGFkZF9jb21tYV9hZnRlcl9pbnNl cnQgPT0gJ2luc2VydCcgJX0sIHslIGVuZGlmICV9eyUgZW5kaWYgJX17JSBpZiBkYXRhLmV2bnRf dXBkYXRlICV9dXBkYXRleyUgaWYgYWRkX2NvbW1hX2FmdGVyX3VwZGF0ZSA9PSAndXBkYXRlJyAl fSwgeyUgZW5kaWYgJX17JSBlbmRpZiAlfXslIGlmIGRhdGEuZXZudF9kZWxldGUgJX1kZWxldGV7 JSBpZiBhZGRfY29tbWFfYWZ0ZXJfZGVsZXRlID09ICdkZWxldGUnICV9LCB7JSBlbmRpZiAlfXsl IGVuZGlmICV9eyUgaWYgZGF0YS5ldm50X3RydW5jYXRlICV9dHJ1bmNhdGV7JSBlbmRpZiAlfScp OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9u cy9zcWwvZGVmYXVsdC9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25z L3NxbC9kZWZhdWx0L2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwLi45OGNiNWQwZDEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9wdWJs aWNhdGlvbnMvc3FsL2RlZmF1bHQvZGVsZXRlLnNxbApAQCAtMCwwICsxLDggQEAKK3sjID09PT09 PT09PT09PT0gR2V0IHRoZSBwdWJsaWNhdGlvbiBuYW1lIHVzaW5nIG9pZCA9PT09PT09PT09PT09 ICN9Cit7JSBpZiBwYmlkICV9CisgICAgU0VMRUNUIHB1Ym5hbWUgRlJPTSBwZ19wdWJsaWNhdGlv biBXSEVSRSBvaWQgPSB7e3BiaWR9fTo6b2lkOworeyUgZW5kaWYgJX0KK3sjID09PT09PT09PT09 PT0gRHJvcCB0aGUgcHVibGljYXRpb24gPT09PT09PT09PT09PSAjfQoreyUgaWYgcG5hbWUgJX0K K0RST1AgUFVCTElDQVRJT04ge3sgY29ubnxxdElkZW50KHBuYW1lKSB9fXslIGlmIGNhc2NhZGUg JX0gQ0FTQ0FERXslIGVuZGlmJX07Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90 ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0L2dldF9hbGxfdGFibGVzLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNh dGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVmYXVsdC9nZXRfYWxsX3RhYmxlcy5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5iNDkzYWJjN2IKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsL2RlZmF1bHQv Z2V0X2FsbF90YWJsZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUIHF1b3RlX2lkZW50KGMu dGFibGVfc2NoZW1hKXx8Jy4nfHxxdW90ZV9pZGVudChjLnRhYmxlX25hbWUpIEFTIHRhYmxlCitm cm9tIGluZm9ybWF0aW9uX3NjaGVtYS50YWJsZXMgYword2hlcmUgYy50YWJsZV90eXBlID0gJ0JB U0UgVEFCTEUnCisgICAgICBBTkQgYy50YWJsZV9zY2hlbWEgTk9UIExJS0UgJ3BnXF8lJworICAg ICAgQU5EIGMudGFibGVfc2NoZW1hIE5PVCBMSUtFICdwZ2FnZW50JworICAgICAgQU5EIGMudGFi bGVfc2NoZW1hIE5PVCBJTiAoJ2luZm9ybWF0aW9uX3NjaGVtYScpIE9SREVSIEJZIDE7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsL2RlZmF1bHQvZ2V0X3Bv c2l0aW9uLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVmYXVsdC9n ZXRfcG9zaXRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMjkz ZjRmNjkyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25z L3NxbC9kZWZhdWx0L2dldF9wb3NpdGlvbi5zcWwKQEAgLTAsMCArMSBAQAorc2VsZWN0IG9pZCwg cHVibmFtZSBhcyBuYW1lIGZyb20gcGdfcHVibGljYXRpb24gd2hlcmUgcHVibmFtZSA9ICd7eyBw dWJuYW1lIH19JzsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9z cWwvZGVmYXVsdC9nZXRfdGFibGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9u cy9zcWwvZGVmYXVsdC9nZXRfdGFibGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAuLjdmNTFjNzJkMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVz L3B1YmxpY2F0aW9ucy9zcWwvZGVmYXVsdC9nZXRfdGFibGVzLnNxbApAQCAtMCwwICsxIEBACitz ZWxlY3QgcXVvdGVfaWRlbnQocGdiX3RhYmxlLnNjaGVtYW5hbWUpfHwnLid8fHF1b3RlX2lkZW50 KHBnYl90YWJsZS50YWJsZW5hbWUpICBhcyBwdWJ0YWJsZSAgZnJvbSBwZ19wdWJsaWNhdGlvbl90 YWJsZXMgcGdiX3RhYmxlIHdoZXJlIHB1Ym5hbWUgPSAne3sgcG5hbWUgfX0nIGFuZCBwZ2JfdGFi bGUuc2NoZW1hbmFtZSBOT1QgTElLRSAncGdhZ2VudCc7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rl bXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsL2RlZmF1bHQvbm9kZXMuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1w bGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0L25vZGVzLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAuLmM4MTU3ZjE4MAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlv bnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVmYXVsdC9ub2Rlcy5zcWwKQEAgLTAsMCAr MSBAQAorc2VsZWN0IG9pZCAsIHB1Ym5hbWUgYXMgbmFtZSBmcm9tIHBnX3B1YmxpY2F0aW9uOwpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0L3By b3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0 L3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNzVi YTA3NWU0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25z L3NxbC9kZWZhdWx0L3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsOCBAQAorc2VsZWN0IGMub2lk IGFzIG9pZCwgYy5wdWJuYW1lIGFzIG5hbWUsCitwdWJpbnNlcnQgYXMgZXZudF9pbnNlcnQsIHB1 YnVwZGF0ZSBhcyBldm50X3VwZGF0ZSwgcHViZGVsZXRlIGFzIGV2bnRfZGVsZXRlLAorcHViYWxs dGFibGVzIGFzIGFsbF90YWJsZSwKK3BnYS5yb2xuYW1lIGFzIHB1Ym93bmVyIGZyb20gcGdfcHVi bGljYXRpb24gYworam9pbiBwZ19hdXRoaWQgcGdhIG9uIGMucHVib3duZXI9IHBnYS5vaWQKK3sl ICBpZiBwYmlkICV9CisgICAgd2hlcmUgYy5vaWQgPSB7eyBwYmlkIH19Cit7JSBlbmRpZiAlfQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0L3Vw ZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsL2RlZmF1bHQvdXBk YXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjE5MGJiZjNkNgot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVm YXVsdC91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMzQgQEAKK3slIGlmIGRhdGEuZXZudF9kZWxldGUg b3IgZGF0YS5ldm50X3VwZGF0ZSBvciBkYXRhLmV2bnRfdHJ1bmNhdGUgJX0KK3slIHNldCBhZGRf Y29tbWFfYWZ0ZXJfaW5zZXJ0ID0gJ2luc2VydCcgJX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRh LmV2bnRfdHJ1bmNhdGUgJX0KK3slIHNldCBhZGRfY29tbWFfYWZ0ZXJfZGVsZXRlID0gJ2RlbGV0 ZScgJX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmV2bnRfZGVsZXRlIG9yIGRhdGEuZXZudF90 cnVuY2F0ZSV9Cit7JSBzZXQgYWRkX2NvbW1hX2FmdGVyX3VwZGF0ZSA9ICd1cGRhdGUnICV9Cit7 JSBlbmRpZiAlfQorCit7JSBpZiBkYXRhLnB1Ym93bmVyICV9CitBTFRFUiBQVUJMSUNBVElPTiB7 eyBjb25ufHF0SWRlbnQob19kYXRhLm5hbWUpIH19IE9XTkVSIFRPIHt7IGRhdGEucHVib3duZXIg fX07Cit7JSBlbmRpZiAlfQorCit7JSBpZiBkYXRhLmV2bnRfaW5zZXJ0IG9yIGRhdGEuZXZudF91 cGRhdGUgb3IgZGF0YS5ldm50X2RlbGV0ZSAlfQorQUxURVIgUFVCTElDQVRJT04ge3sgY29ubnxx dElkZW50KG9fZGF0YS5uYW1lKSB9fSBTRVQKKyhwdWJsaXNoID0gJ3slIGlmIGRhdGEuZXZudF9p bnNlcnQgJX1pbnNlcnR7JSBpZiBhZGRfY29tbWFfYWZ0ZXJfaW5zZXJ0ID09ICdpbnNlcnQnICV9 LCB7JSBlbmRpZiAlfXslIGVuZGlmICV9eyUgaWYgZGF0YS5ldm50X3VwZGF0ZSAlfXVwZGF0ZXsl IGlmIGFkZF9jb21tYV9hZnRlcl91cGRhdGUgPT0gJ3VwZGF0ZScgJX0sIHslIGVuZGlmICV9eyUg ZW5kaWYgJX17JSBpZiBkYXRhLmV2bnRfZGVsZXRlICV9ZGVsZXRleyUgaWYgYWRkX2NvbW1hX2Fm dGVyX2RlbGV0ZSA9PSAnZGVsZXRlJyAlfSwgeyUgZW5kaWYgJX17JSBlbmRpZiAlfXslIGlmIGRh dGEuZXZudF90cnVuY2F0ZSAlfXRydW5jYXRleyUgZW5kaWYgJX0nKTsKK3slIGVuZGlmICV9CisK K3slIGlmIGRyb3BfdGFibGUgJX0KK0FMVEVSIFBVQkxJQ0FUSU9OIHt7IGNvbm58cXRJZGVudChv X2RhdGEubmFtZSkgfX0gRFJPUCBUQUJMRSB7JSBpZiBkYXRhLm9ubHlfdGFibGUlfU9OTFkgeyUg ZW5kaWYgJX17JSBmb3IgdGFibGUgaW4gZHJvcF90YWJsZV9kYXRhICV9eyUgaWYgbG9vcC5pbmRl eCAhPSAxICV9LCB7JSBlbmRpZiAlfXt7IHRhYmxlIH19eyUgZW5kZm9yICV9OworeyUgZW5kaWYg JX0KKworeyUgaWYgZGF0YS5wdWJ0YWJsZSAlfQorQUxURVIgUFVCTElDQVRJT04ge3sgY29ubnxx dElkZW50KG9fZGF0YS5uYW1lKSB9fSBTRVQgVEFCTEUgeyUgaWYgZGF0YS5vbmx5X3RhYmxlJX1P TkxZIHslIGVuZGlmICV9eyUgZm9yIHRhYmxlIGluIGRhdGEucHVidGFibGUgJX17JSBpZiBsb29w LmluZGV4ICE9IDEgJX0sIHslIGVuZGlmICV9e3sgdGFibGUgfX17JSBlbmRmb3IgJX07Cit7JSBl bmRpZiAlfQorCit7JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FMVEVSIFBVQkxJ Q0FUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEubmFtZSkgfX0gUkVOQU1FIFRPIHt7IGNvbm58 cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUgZW5kaWYgJX0KKworCisKKwpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1Ymxp Y2F0aW9ucy90ZXN0cy8xMF9wbHVzL2FsdGVyX3B1YmxpY2F0aW9uLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVz dHMvMTBfcGx1cy9hbHRlcl9wdWJsaWNhdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwLi41MzBiYTE0OWIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3Rz LzEwX3BsdXMvYWx0ZXJfcHVibGljYXRpb24uc3FsCkBAIC0wLDAgKzEsNyBAQAorLS0gUHVibGlj YXRpb24gOiBhbHRlcmRfcHVibGljYXRpb247CistLSBEUk9QIFBVQkxJQ0FUSU9OIGFsdGVyZF9w dWJsaWNhdGlvbjsKKworCitDUkVBVEUgUFVCTElDQVRJT04gYWx0ZXJkX3B1YmxpY2F0aW9uCisg ICAgRk9SIEFMTCBUQUJMRVMKK1dJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUnKTsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvMTBfcGx1cy9hbHRlcl9wdWJsaWNhdGlvbl9ldmVudC5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv cHVibGljYXRpb25zL3Rlc3RzLzEwX3BsdXMvYWx0ZXJfcHVibGljYXRpb25fZXZlbnQuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNTMwYmExNDliCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL2FsdGVyX3B1YmxpY2F0aW9uX2V2ZW50LnNx bApAQCAtMCwwICsxLDcgQEAKKy0tIFB1YmxpY2F0aW9uIDogYWx0ZXJkX3B1YmxpY2F0aW9uOwor LS0gRFJPUCBQVUJMSUNBVElPTiBhbHRlcmRfcHVibGljYXRpb247CisKKworQ1JFQVRFIFBVQkxJ Q0FUSU9OIGFsdGVyZF9wdWJsaWNhdGlvbgorICAgIEZPUiBBTEwgVEFCTEVTCitXSVRIIChwdWJs aXNoID0gJ2luc2VydCwgdXBkYXRlJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzLzEwX3Bs dXMvYWx0ZXJfcHVibGljYXRpb25fZXZlbnRfbXNxbC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzLzEwX3Bs dXMvYWx0ZXJfcHVibGljYXRpb25fZXZlbnRfbXNxbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwLi5mMDE1OTRkYTIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rl c3RzLzEwX3BsdXMvYWx0ZXJfcHVibGljYXRpb25fZXZlbnRfbXNxbC5zcWwKQEAgLTAsMCArMSwy IEBACitBTFRFUiBQVUJMSUNBVElPTiBhbHRlcmRfcHVibGljYXRpb25fZXZlbnQgU0VUCisocHVi bGlzaCA9ICdpbnNlcnQsIHVwZGF0ZScpOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9w bHVzL2FsdGVyX3B1YmxpY2F0aW9uX21zcWwuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL2Fs dGVyX3B1YmxpY2F0aW9uX21zcWwuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMC4uMzA4NjlkMmE4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVz L2FsdGVyX3B1YmxpY2F0aW9uX21zcWwuc3FsCkBAIC0wLDAgKzEgQEAKK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RfcHVibGljYXRpb25fdG9fYWx0ZXIgUkVOQU1FIFRPIGFsdGVyZF9wdWJsaWNhdGlv bjsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfcHVibGljYXRpb24u c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9wdWJsaWNhdGlvbi5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi43YzA5NjA4YWUKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv cHVibGljYXRpb25zL3Rlc3RzLzEwX3BsdXMvY3JlYXRlX3B1YmxpY2F0aW9uLnNxbApAQCAtMCww ICsxLDcgQEAKKy0tIFB1YmxpY2F0aW9uIDogdGVzdF9wdWJsaWNhdGlvbl9jcmVhdGU7CistLSBE Uk9QIFBVQkxJQ0FUSU9OIHRlc3RfcHVibGljYXRpb25fY3JlYXRlOworCisKK0NSRUFURSBQVUJM SUNBVElPTiB0ZXN0X3B1YmxpY2F0aW9uX2NyZWF0ZQorICAgIEZPUiBBTEwgVEFCTEVTCitXSVRI IChwdWJsaXNoID0gJ2luc2VydCwgdXBkYXRlJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3Rz LzEwX3BsdXMvY3JlYXRlX3B1YmxpY2F0aW9uX21zcWwuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9w bHVzL2NyZWF0ZV9wdWJsaWNhdGlvbl9tc3FsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAuLmI2ZDFlNmY3YwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMv MTBfcGx1cy9jcmVhdGVfcHVibGljYXRpb25fbXNxbC5zcWwKQEAgLTAsMCArMSwzIEBACitDUkVB VEUgUFVCTElDQVRJT04gdGVzdF9wdWJsaWNhdGlvbl9jcmVhdGUKKyAgICBGT1IgQUxMIFRBQkxF UworV0lUSCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZScpOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9u cy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9wdWJsaWNhdGlvbl91cGRhdGUuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90 ZXN0cy8xMF9wbHVzL2NyZWF0ZV9wdWJsaWNhdGlvbl91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMmUxZjhlZWRmCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0 aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9wdWJsaWNhdGlvbl91cGRhdGUuc3FsCkBAIC0wLDAg KzEsNyBAQAorLS0gUHVibGljYXRpb24gOiB0ZXN0X3B1YmxpY2F0aW9uX3dpdGhfdXBkYXRlOwor LS0gRFJPUCBQVUJMSUNBVElPTiB0ZXN0X3B1YmxpY2F0aW9uX3dpdGhfdXBkYXRlOworCisKK0NS RUFURSBQVUJMSUNBVElPTiB0ZXN0X3B1YmxpY2F0aW9uX3dpdGhfdXBkYXRlCisgICAgRk9SIEFM TCBUQUJMRVMKK1dJVEggKHB1Ymxpc2ggPSAndXBkYXRlJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25z L3Rlc3RzLzEwX3BsdXMvY3JlYXRlX3B1YmxpY2F0aW9uX3VwZGF0ZV9tc3FsLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlv bnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfcHVibGljYXRpb25fdXBkYXRlX21zcWwuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMGRhMThmNjU2Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9wdWJsaWNhdGlvbl91cGRhdGVfbXNx bC5zcWwKQEAgLTAsMCArMSwzIEBACitDUkVBVEUgUFVCTElDQVRJT04gdGVzdF9wdWJsaWNhdGlv bl93aXRoX3VwZGF0ZQorICAgIEZPUiBBTEwgVEFCTEVTCitXSVRIIChwdWJsaXNoID0gJ3VwZGF0 ZScpOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL3Rlc3QuanNvbiBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlv bnMvdGVzdHMvMTBfcGx1cy90ZXN0Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwLi45OWQ2MDU3ODMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzLzEwX3Bs dXMvdGVzdC5qc29uCkBAIC0wLDAgKzEsNzkgQEAKK3sKKyAgInNjZW5hcmlvcyI6IFsKKyAgICB7 CisgICAgICAidHlwZSI6ICJjcmVhdGUiLAorICAgICAgIm5hbWUiOiAiQ3JlYXRlIFRhYmxlIEZv ciBwdWJsaWNhdGlvbiIsCisgICAgICAiZW5kcG9pbnQiOiAiTk9ERS10YWJsZS5vYmoiLAorICAg ICAgInNxbF9lbmRwb2ludCI6ICJOT0RFLXRhYmxlLnNxbF9pZCIsCisgICAgICAiZGF0YSI6IHsK KyAgICAgICAgIm5hbWUiOiAidGVzdF9wdWJsaWNhdGlvbiIsCisgICAgICAgICJjb2x1bW5zIjog WworICAgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImVtcF9pZCIsCisgICAgICAgICAg ICAiY2x0eXBlIjogImludGVnZXIiLAorICAgICAgICAgICAgImlzX3ByaW1hcnlfa2V5IjogdHJ1 ZQorICAgICAgICAgIH0sCisgICAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAibmFtZSIs CisgICAgICAgICAgICAiY2x0eXBlIjogInRleHQiCisgICAgICAgICAgfSwKKyAgICAgICAgICB7 CisgICAgICAgICAgICAibmFtZSI6ICJzYWxhcnkiLAorICAgICAgICAgICAgImNsdHlwZSI6ICJi aWdpbnQiCisgICAgICAgICAgfQorICAgICAgICBdLAorICAgICAgICAiaXNfcGFydGl0aW9uZWQi OiBmYWxzZSwKKyAgICAgICAgInNjaGVtYSI6ICJwdWJsaWMiLAorICAgICAgICAic3BjbmFtZSI6 ICJwZ19kZWZhdWx0IgorICAgICAgfSwKKyAgICAgICJzdG9yZV9vYmplY3RfaWQiOiB0cnVlCisg ICAgfSwKKyAgICB7CisgICAgICAidHlwZSI6ICJjcmVhdGUiLAorICAgICAgIm5hbWUiOiAiQ3Jl YXRlICBQdWJsaWNhdGlvbiIsCisgICAgICAiZW5kcG9pbnQiOiAiTk9ERS1wdWJsaWNhdGlvbi5v YmoiLAorICAgICAgInNxbF9lbmRwb2ludCI6ICJOT0RFLXB1YmxpY2F0aW9uLnNxbF9pZCIsCisg ICAgICAibXNxbF9lbmRwb2ludCI6ICJOT0RFLXB1YmxpY2F0aW9uLm1zcWwiLAorICAgICAgImRh dGEiOiB7CisgICAgICAgICJuYW1lIjogInRlc3RfcHVibGljYXRpb25fY3JlYXRlIiwKKyAgICAg ICAgImV2bnRfaW5zZXJ0IjogdHJ1ZSwKKyAgICAgICAgImV2bnRfdXBkYXRlIjogdHJ1ZSwKKyAg ICAgICAgImV2bnRfZGVsZXRlIjogZmFsc2UsCisgICAgICAgICJldm50X3RydW5jYXRlIjogZmFs c2UsCisgICAgICAgICJwdWJvd25lciI6ICJwb3N0Z3JlcyIsCisgICAgICAgICJhbGxfdGFibGUi OiB0cnVlLAorICAgICAgICAicHVidGFibGUiOiAiIgorICAgICAgfSwKKyAgICAgICJleHBlY3Rl ZF9zcWxfZmlsZSI6ICJjcmVhdGVfcHVibGljYXRpb24uc3FsIiwKKyAgICAgICJleHBlY3RlZF9t c3FsX2ZpbGUiOiAiY3JlYXRlX3B1YmxpY2F0aW9uX21zcWwuc3FsIgorICAgIH0sCisgICAgewor ICAgICAgInR5cGUiOiAiYWx0ZXIiLAorICAgICAgIm5hbWUiOiAiQWx0ZXIgIFB1YmxpY2F0aW9u IG5hbWUiLAorICAgICAgImVuZHBvaW50IjogIk5PREUtcHVibGljYXRpb24ub2JqX2lkIiwKKyAg ICAgICJzcWxfZW5kcG9pbnQiOiAiTk9ERS1wdWJsaWNhdGlvbi5zcWxfaWQiLAorICAgICAgImRh dGEiOiB7CisgICAgICAgICJuYW1lIjogImFsdGVyZF9wdWJsaWNhdGlvbiIKKyAgICAgIH0sCisg ICAgICAiZXhwZWN0ZWRfc3FsX2ZpbGUiOiAiYWx0ZXJfcHVibGljYXRpb24uc3FsIgorICAgIH0s CisgICAgeworICAgICAgInR5cGUiOiAiYWx0ZXIiLAorICAgICAgIm5hbWUiOiAiQWx0ZXIgIFB1 YmxpY2F0aW9uIGV2ZW50IiwKKyAgICAgICJlbmRwb2ludCI6ICJOT0RFLXB1YmxpY2F0aW9uLm9i al9pZCIsCisgICAgICAic3FsX2VuZHBvaW50IjogIk5PREUtcHVibGljYXRpb24uc3FsX2lkIiwK KyAgICAgICJkYXRhIjogeworICAgICAgICAiZXZudF9pbnNlcnQiOiB0cnVlCisgICAgICB9LAor ICAgICAgImV4cGVjdGVkX3NxbF9maWxlIjogImFsdGVyX3B1YmxpY2F0aW9uX2V2ZW50LnNxbCIK KyAgICB9LAorICAgIHsKKyAgICAgICJ0eXBlIjogImRlbGV0ZSIsCisgICAgICAibmFtZSI6ICJE cm9wIHB1YmxpY2F0aW9uIiwKKyAgICAgICJlbmRwb2ludCI6ICJOT0RFLXB1YmxpY2F0aW9uLmRl bGV0ZV9pZCIsCisgICAgICAiZGF0YSI6IHsKKyAgICAgICAgIm5hbWUiOiAiYWx0ZXJkX3B1Ymxp Y2F0aW9uX2V2ZW50IgorICAgICAgfQorICAgIH0KKyAgXQorfQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9u cy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvX19pbml0X18ucHkKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4yN2NkODkwNjcKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVi bGljYXRpb25zL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0 IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNv ZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKKworCitjbGFzcyBSdWxlc1Rlc3RHZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0b3Ip OgorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1 YmxpY2F0aW9ucy90ZXN0cy9wdWJsaWNhdGlvbl90ZXN0X2RhdGEuanNvbiBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVz dHMvcHVibGljYXRpb25fdGVzdF9kYXRhLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwLi5kYTA4NDA4ZGIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzL3B1 YmxpY2F0aW9uX3Rlc3RfZGF0YS5qc29uCkBAIC0wLDAgKzEsMzk3IEBACit7CisgICJhZGRfcHVi bGljYXRpb24iOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiQ3JlYXRlIHB1YmxpY2F0aW9uIHdp dGggaW5zZXJ0IGFuZCB1cGRhdGUiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlv bi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2Rh dGEiOiB7CisgICAgICAgICJuYW1lIjogIlBMQUNFSE9MREVSIiwKKyAgICAgICAgImV2bnRfaW5z ZXJ0IjogdHJ1ZSwKKyAgICAgICAgImV2bnRfdXBkYXRlIjogdHJ1ZSwKKyAgICAgICAgImV2bnRf ZGVsZXRlIjogZmFsc2UsCisgICAgICAgICJldm50X3RydW5jYXRlIjogZmFsc2UsCisgICAgICAg ICJwdWJvd25lciI6ICJwb3N0Z3JlcyIsCisgICAgICAgICJhbGxfdGFibGUiOiB0cnVlLAorICAg ICAgICAicHVidGFibGUiOiAiIgorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjog ZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsK KyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAg ICAibmFtZSI6ICJDcmVhdGUgcHVibGljYXRpb24gZm9yIGZldyB0YWJsZXMiLAorICAgICAgInVy bCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0 IjogdHJ1ZSwKKyAgICAgICJmZXdfdGFibGVzIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7 CisgICAgICAgICJuYW1lIjogIlBMQUNFSE9MREVSIiwKKyAgICAgICAgImV2bnRfaW5zZXJ0Ijog dHJ1ZSwKKyAgICAgICAgImV2bnRfdXBkYXRlIjogdHJ1ZSwKKyAgICAgICAgImV2bnRfZGVsZXRl IjogZmFsc2UsCisgICAgICAgICJldm50X3RydW5jYXRlIjogZmFsc2UsCisgICAgICAgICJwdWJv d25lciI6ICJwb3N0Z3JlcyIsCisgICAgICAgICJhbGxfdGFibGUiOiBmYWxzZSwKKyAgICAgICAg InB1YnRhYmxlIjogIlBMQUNFX0hPTERFUiIKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1 aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2Rh dGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAg eworICAgICAgIm5hbWUiOiAiQ3JlYXRlIGEgcHVibGljYXRpb24gd2l0aG91dCBuYW1lIiwKKyAg ICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGljYXRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRp dmVfdGVzdCI6IGZhbHNlLAorICAgICAgIndpdGhvdXRfbmFtZSI6IHRydWUsCisgICAgICAidGVz dF9kYXRhIjogeworICAgICAgICAibmFtZSI6ICJQTEFDRUhPTERFUiIsCisgICAgICAgICJldm50 X2luc2VydCI6IHRydWUsCisgICAgICAgICJldm50X3VwZGF0ZSI6IHRydWUsCisgICAgICAgICJl dm50X2RlbGV0ZSI6IGZhbHNlLAorICAgICAgICAiZXZudF90cnVuY2F0ZSI6IGZhbHNlLAorICAg ICAgICAicHVib3duZXIiOiAicG9zdGdyZXMiLAorICAgICAgICAiYWxsX3RhYmxlIjogdHJ1ZSwK KyAgICAgICAgInB1YnRhYmxlIjogIiIKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJl ZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEi OiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDQxMAorICAgICAgfQorICAgIH0sCisgICAgewor ICAgICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgYWRkaW5nIGEgcHVibGljYXRpb24iLAorICAgICAg InVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90 ZXN0IjogZmFsc2UsCisgICAgICAiZXJyb3JfY3JlYXRpbmdfcHVibGljYXRpb24iOiB0cnVlLAor ICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAgIm5hbWUiOiAiUExBQ0VIT0xERVIiLAorICAg ICAgICAiZXZudF9pbnNlcnQiOiB0cnVlLAorICAgICAgICAiZXZudF91cGRhdGUiOiB0cnVlLAor ICAgICAgICAiZXZudF9kZWxldGUiOiBmYWxzZSwKKyAgICAgICAgImV2bnRfdHJ1bmNhdGUiOiBm YWxzZSwKKyAgICAgICAgInB1Ym93bmVyIjogInBvc3RncmVzIiwKKyAgICAgICAgImFsbF90YWJs ZSI6IHRydWUsCisgICAgICAgICJwdWJ0YWJsZSI6ICIiCisgICAgICB9LAorICAgICAgIm1vY2tp bmdfcmVxdWlyZWQiOiB0cnVlLAorICAgICAgIm1vY2tfZGF0YSI6IHsKKyAgICAgICAgImZ1bmN0 aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuY29ubmVjdGlvbi5Db25u ZWN0aW9uLmV4ZWN1dGVfZGljdCIsCisgICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAn TW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvciAnKSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0 ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICB9CisgICAgfSwK KyAgICB7CisgICAgICAibmFtZSI6ICJFeGNlcHRpb24gd2hpbGUgYWRkaW5nIGEgcHVibGljYXRp b24iLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJp c19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAi bmFtZSI6ICJQTEFDRUhPTERFUiIsCisgICAgICAgICJldm50X2luc2VydCI6IHRydWUsCisgICAg ICAgICJldm50X3VwZGF0ZSI6IHRydWUsCisgICAgICAgICJldm50X2RlbGV0ZSI6IGZhbHNlLAor ICAgICAgICAiZXZudF90cnVuY2F0ZSI6IGZhbHNlLAorICAgICAgICAicHVib3duZXIiOiAicG9z dGdyZXMiLAorICAgICAgICAiYWxsX3RhYmxlIjogdHJ1ZSwKKyAgICAgICAgInB1YnRhYmxlIjog IiIKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IHRydWUsCisgICAgICAibW9j a19kYXRhIjogeworICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZl ci5wc3ljb3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9kaWN0IiwKKyAgICAgICAg InJldHVybl92YWx1ZSI6ICIoVHJ1ZSwgVHJ1ZSkoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2Vy dmVyIEVycm9yICcpIgorICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAg ICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgIH0KKyAgICB9CisgIF0sCisgICJnZXRfcHVibGlj YXRpb24iOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiR2V0IGEgcHVibGljYXRpb24gVVJMIiwK KyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGljYXRpb24vb2JqLyIsCisgICAgICAiaXNfcG9z aXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAg ICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJz dGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAi RXJyb3Igd2hpbGUgZmV0Y2hpbmcgYSBwdWJsaWNhdGlvbiBwcm9wZXJ0aWVzIiwKKyAgICAgICJ1 cmwiOiAiL2Jyb3dzZXIvcHVibGljYXRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVz dCI6IGZhbHNlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiB0cnVlLAorICAgICAgIm1vY2tf ZGF0YSI6IHsKKyAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIu cHN5Y29wZzIuY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfZGljdCIsCisgICAgICAgICJy ZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvcicpIgor ICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUi OiA1MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkdldCBhIHB1Ymxp Y2F0aW9uIHByb3BlcnRpZXMgdW5kZXIgZGF0YWJhc2Ugbm9kZXMiLAorICAgICAgInVybCI6ICIv YnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1 ZSwKKyAgICAgICJkYXRhYmFzZV9ub2RlcyI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJl ZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEi OiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgewor ICAgICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgYSBwdWJsaWNhdGlvbiBwcm9wZXJ0 aWVzIHVuZGVyIGRhdGFiYXNlIG5vZGVzIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGlj YXRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAgImRh dGFiYXNlX25vZGVzIjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogdHJ1ZSwKKyAg ICAgICJtb2NrX2RhdGEiOiB7CisgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRp bHMuZHJpdmVyLnBzeWNvcGcyLmNvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX2RpY3QiLAor ICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIg RXJyb3InKSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0 YXR1c19jb2RlIjogNTAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJH ZXQgYSBwdWJsaWNhdGlvbiBOb2RlIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGljYXRp b24vbm9kZXMvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2Nr aW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhw ZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAg fSwKKyAgICB7CisgICAgICAibmFtZSI6ICJHZXQgYSBwdWJsaWNhdGlvbiBOb2RlIGRlcGVuZGFu dHMiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9kZXBlbmRlbnQvIiwKKyAg ICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjog ZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsK KyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAg ICAibmFtZSI6ICJHZXQgYSBwdWJsaWNhdGlvbiBOb2RlIGRlcGVuZGVuY3kiLAorICAgICAgInVy bCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9kZXBlbmRlbmN5LyIsCisgICAgICAiaXNfcG9zaXRp dmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAg Im1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0 dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRXJy b3Igd2hpbGUgZmV0Y2hpbmcgdGhlIHB1YmxpY2F0aW9uIHVuZGVyIHRoZSBkYXRhYmFzZSBub2Rl cyB1c2luZyB3cm9uZyBkYXRhYmFzZSBpZCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3B1Ymxp Y2F0aW9uL25vZGVzLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAg Im1vY2tpbmdfcmVxdWlyZWQiOiB0cnVlLAorICAgICAgIm1vY2tfZGF0YSI6IHsKKyAgICAgICAg ImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuY29ubmVjdGlv bi5Db25uZWN0aW9uLmV4ZWN1dGVfMmRhcnJheSIsCisgICAgICAgICJyZXR1cm5fdmFsdWUiOiAi KEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvcicpIgorICAgICAgfSwKKyAgICAg ICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgIH0K KyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkdldCBhbGwgdGhlIHB1YmxpY2F0aW9uIHVu ZGVyIHRoZSBkYXRhYmFzZSBub2RlcyIsCisgICAgICAidXJsIjogIi9icm93c2VyL3B1YmxpY2F0 aW9uL25vZGVzLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9j a2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgImRhdGFiYXNlX25vZGVzIjogdHJ1ZSwKKyAg ICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAi c3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjog IkdldCBhbGwgdGhlIHB1YmxpY2F0aW9uIHVuZGVyIHRoZSBkYXRhYmFzZSBub2RlcyB1c2luZyB3 cm9uZyBkYXRhYmFzZSBpZCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3B1YmxpY2F0aW9uL25v ZGVzLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAiaW5jb3JyZWN0 X2RhdGFiYXNlX2lkIjogdHJ1ZSwKKyAgICAgICJkYXRhYmFzZV9ub2RlcyI6IHRydWUsCisgICAg ICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAg ICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAg fQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgYWxs IHRoZSBwdWJsaWNhdGlvbiB1bmRlciB0aGUgZGF0YWJhc2Ugbm9kZXMgdXNpbmcgd3JvbmcgZGF0 YWJhc2UgaWQiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9ub2Rlcy8iLAor ICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAgICJkYXRhYmFzZV9ub2RlcyI6 IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IHRydWUsCisgICAgICAibW9ja19kYXRh IjogeworICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3lj b3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV8yZGFycmF5IiwKKyAgICAgICAgInJl dHVybl92YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yJykiCisg ICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6 IDUwMAorICAgICAgfQorICAgIH0KKyAgXSwKKyAgImRlbGV0ZV9wdWJsaWNhdGlvbiI6IFsKKyAg ICB7CisgICAgICAibmFtZSI6ICJEZWxldGUgYSBwdWJsaWNhdGlvbiBVUkwiLAorICAgICAgInVy bCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0 IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19k YXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2Rl IjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJFcnJvciB3aGls ZSBkZWxldGluZyB0aGUgcHVibGljYXRpb24iLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJs aWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAi bW9ja2luZ19yZXF1aXJlZCI6IHRydWUsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgICAi ZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9u LkNvbm5lY3Rpb24uZXhlY3V0ZV9zY2FsYXIiLAorICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihG YWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InKSIKKyAgICAgIH0sCisgICAgICAi ZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICB9Cisg ICAgfQorICBdLAorICAidXBkYXRlX3B1YmxpY2F0aW9uIjogWworICAgIHsKKyAgICAgICJuYW1l IjogInVwZGF0ZSBhIHB1YmxpY2F0aW9uIG5hbWUiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9w dWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAg ICJ1cGRhdGVfbmFtZSI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAibmFt ZSI6ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAiaWQiOiAiUExBQ0VfSE9MREVSIgorICAgICAg fSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjog e30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAw CisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJ1cGRhdGUgYSBwdWJsaWNh dGlvbiBldmVudCBpbnNlcnQiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9v YmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJvd25lcl9wdWJs aWNhdGlvbiI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAiaWQiOiAiUExB Q0VfSE9MREVSIiwKKyAgICAgICAgImV2bnRfaW5zZXJ0IjogIlBMQUNFSE9MREVSIgorICAgICAg fSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjog e30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAw CisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJ1cGRhdGUgYSBwdWJsaWNh dGlvbiBldmVudCBkZWxldGUiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9v YmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJvd25lcl9wdWJs aWNhdGlvbiI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAiaWQiOiAiUExB Q0VfSE9MREVSIiwKKyAgICAgICAgImV2bnRfZGVsZXRlIjogIlBMQUNFSE9MREVSIgorICAgICAg fSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjog e30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAw CisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJFcnJvciB3aGlsZSBmZXRj aGluZyBhIHB1YmxpY2F0aW9uIHRvIHVwZGF0ZSIsCisgICAgICAidXJsIjogIi9icm93c2VyL3B1 YmxpY2F0aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAg ICJtb2NraW5nX3JlcXVpcmVkIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAg ICJuYW1lIjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xERVIiCisg ICAgICB9LAorICAgICAgIm1vY2tfZGF0YSI6IHsKKyAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAi cGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1 dGVfZGljdCIsCisgICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVy bmFsIFNlcnZlciBFcnJvcicpIgorICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogewor ICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAg ICJuYW1lIjogIkVycm9yIHdoaWxlIGZldGNoaW5nIGEgcHVibGljYXRpb24gdG8gdXBkYXRlIHVz aW5nIHdyb25nIHB1YmxpY2F0aW9uIGlkIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGlj YXRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAid3Jv bmdfcHVibGljYXRpb25faWQiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxz ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xERVIiCisg ICAgICB9LAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7 CisgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgfQorICAgIH0KKyAgXSwKKyAgImRl bGV0ZV9tdWx0aXBsZV9wdWJsaWNhdGlvbiI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJEZWxl dGUgbXVsdGlwbGUgcHVibGljYXRpb24iLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNh dGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2Nr aW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhw ZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAg fQorICBdLAorICAic3FsX3B1YmxpY2F0aW9uIjogWworICAgIHsKKyAgICAgICJuYW1lIjogIkZl dGNoIHRoZSBwdWJsaWNhdGlvbiBTUUwiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNh dGlvbi9zcWwvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2Nr aW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgfSwKKyAg ICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAg IH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkVycm9yIHdoaWxlIGZldGNoaW5nIGEg cHVibGljYXRpb24gU1FMIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGljYXRpb24vc3Fs LyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAgIm1vY2tpbmdfcmVx dWlyZWQiOiB0cnVlLAorICAgICAgIm1vY2tfZGF0YSI6IHsKKyAgICAgICAgImZ1bmN0aW9uX25h bWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuY29ubmVjdGlvbi5Db25uZWN0aW9u LmV4ZWN1dGVfZGljdCIsCisgICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2Vk IEludGVybmFsIFNlcnZlciBFcnJvcicpIgorICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRh IjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsK KyAgICAgICJuYW1lIjogIkZldGNoaW5nIGEgcHVibGljYXRpb24gbVNRTCIsCisgICAgICAidXJs IjogIi9icm93c2VyL3B1YmxpY2F0aW9uL21zcWwvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0 IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19k YXRhIjogeworICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5w c3ljb3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9kaWN0IiwKKyAgICAgICAgInJl dHVybl92YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yJykiCisg ICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6 IDIwMAorICAgICAgfQorICAgIH0KKyAgXQorfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy90 ZXN0X3B1YmxpY2F0aW9uX2NyZWF0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvdGVzdF9wdWJsaWNhdGlv bl9jcmVhdGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5hYWQzYjMz ZDIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzL3Rlc3RfcHVibGljYXRpb25fY3Jl YXRlLnB5CkBAIC0wLDAgKzEsOTUgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4g NCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhl IHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVu ZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9y dCBqc29uCitpbXBvcnQgdXVpZAorZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAorCitm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVt YXMudGFibGVzLnRlc3RzIFwKKyAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCitmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGlt cG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5y b3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFy ZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0 ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHB1YmxpY2F0aW9uX3V0 aWxzCisKKworY2xhc3MgUHVibGljYXRpb25zQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3Ip OgorICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IHB1YmxpY2F0aW9uIiIiCisgICAgc2Nl bmFyaW9zID0gdXRpbHMuZ2VuZXJhdGVfc2NlbmFyaW9zKCdhZGRfcHVibGljYXRpb24nLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWNhdGlvbl91dGlscy50 ZXN0X2Nhc2VzKQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmRiX25hbWUg PSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAgICAgIHNj aGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCisgICAgICAgIHNlbGYu c2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCisgICAgICAgIHNlbGYuZGJfaWQg PSBzY2hlbWFfaW5mb1siZGJfaWQiXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1h X2luZm9bInNjaGVtYV9uYW1lIl0KKworICAgICAgICBzZWxmLnNlcnZlcl92ZXJzaW9uID0gc2No ZW1hX2luZm9bInNlcnZlcl92ZXJzaW9uIl0KKyAgICAgICAgaWYgc2VsZi5zZXJ2ZXJfdmVyc2lv biA8IDk5OTk5OgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgKKyAgICAgICAgICAgICAgICAi TG9naWNhbCByZXBsaWNhdGlvbiBpcyBub3Qgc3VwcG9ydGVkICIKKyAgICAgICAgICAgICAgICAi Zm9yIHNlcnZlciB2ZXJzaW9uIGxlc3MgdGhhbiAxMCIKKworICAgICAgICAgICAgKQorCisgICAg ICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMu U0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29u WydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAg ICAgICAgICAgICAgICJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSBwdWJs aWNhdGlvbi4iKQorCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdCBhbmQgaGFzYXR0 cihzZWxmLCAnZmV3X3RhYmxlcycpOgorICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRh YmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgICAgIHNl bGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuIFwKKyAgICAgICAgICAgICAgICBjcmVhdGVfdGFi bGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQorCisgICAgICAgICAgICBzZWxm LnRlc3RfZGF0YVsncHVidGFibGUnXSA9IHB1YmxpY2F0aW9uX3V0aWxzLmdldF90YWJsZXMoc2Vs ZikKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdp bGwgcHVibGljYXRpb24uIiIiCisgICAgICAgIHNlbGYudGVzdF9kYXRhWyduYW1lJ10gPSBcCisg ICAgICAgICAgICAidGVzdF9wdWJsaWNhdGlvbl9hZGRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0pCisKKyAgICAgICAgZGF0YSA9IHNlbGYudGVzdF9kYXRhCisgICAgICAgIGlmIHNlbGYu aXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5jcmVhdGVfcHVi bGljYXRpb24oKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAn d2l0aG91dF9uYW1lJyk6CisgICAgICAgICAgICAgICAgZGVsIGRhdGFbIm5hbWUiXQorICAgICAg ICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5jcmVhdGVfcHVibGljYXRpb24oKQorICAgICAgICAg ICAgZWxpZiBoYXNhdHRyKHNlbGYsICdlcnJvcl9jcmVhdGluZ19wdWJsaWNhdGlvbicpOgorICAg ICAgICAgICAgICAgIHdpdGggcGF0Y2goc2VsZi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1ldmFsKHNlbGYubW9ja19k YXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNl bGYuY3JlYXRlX3B1YmxpY2F0aW9uKCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg ICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2lkZV9lZmZlY3Q9c2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1 ZSJdKToKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmNyZWF0ZV9wdWJsaWNh dGlvbigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBlY3RlZF9kYXRhWyJzdGF0dXNfY29kZSJd KQorCisgICAgZGVmIGNyZWF0ZV9wdWJsaWNhdGlvbihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl bGYudGVzdGVyLnBvc3QoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJf R1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBz dHIoCisgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkgKyAnLycsCisgICAgICAgICAgICBkYXRh PWpzb24uZHVtcHMoc2VsZi50ZXN0X2RhdGEpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdo dG1sL2pzb24nKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBpZiBub3QgaGFz YXR0cihzZWxmLCAnd2l0aG91dF9uYW1lJyk6CisgICAgICAgICAgICBwdWJsaWNhdGlvbl91dGls cy5kZWxldGVfcHVibGljYXRpb24oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3RfZGF0YVsn bmFtZSddKQorCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0 YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2Vs Zi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvdGVzdF9wdWJsaWNhdGlvbl9kZWxl dGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvcHVibGljYXRpb25zL3Rlc3RzL3Rlc3RfcHVibGljYXRpb25fZGVsZXRlLnB5Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uODgzOWJkMjNmCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1 YmxpY2F0aW9ucy90ZXN0cy90ZXN0X3B1YmxpY2F0aW9uX2RlbGV0ZS5weQpAQCAtMCwwICsxLDk0 IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xz CisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50 IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBM aWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgdXVpZAorZnJvbSB1bml0dGVz dC5tb2NrIGltcG9ydCBwYXRjaAorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2No ZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20g cGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVz c2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0 X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFz IHB1YmxpY2F0aW9uX3V0aWxzCisKKworY2xhc3MgUHVibGljYXRpb25EZWxldGVUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSBwdWJsaWNh dGlvbi4iIiIKKyAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoJ2RlbGV0 ZV9wdWJsaWNhdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHB1YmxpY2F0aW9uX3V0aWxzLnRlc3RfY2FzZXMpCisKKyAgICBkZWYgc2V0VXAoc2VsZik6Cisg ICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJk Yl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEi XVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0K KyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIHNlbGYu c2VydmVyX3ZlcnNpb24gPSBzY2hlbWFfaW5mb1sic2VydmVyX3ZlcnNpb24iXQorICAgICAgICBp ZiBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgOTk5OTk6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0 KAorICAgICAgICAgICAgICAgICJMb2dpY2FsIHJlcGxpY2F0aW9uIGlzIG5vdCBzdXBwb3J0ZWQg IgorICAgICAgICAgICAgICAgICJmb3Igc2VydmVyIHZlcnNpb24gbGVzcyB0aGFuIDEwIgorCisg ICAgICAgICAgICApCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0 YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAg ICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRh YmFzZSB0byBkZWxldGUgcHVibGljYXRpb24uIikKKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBz Y2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVt YV9pbmZvWyJzY2hlbWFfbmFtZSJdCisKKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1h X3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFf bmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBkZWxldGUgcHVibGljYXRp b24uIikKKyAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lID0gInRlc3RfcHVibGljYXRpb25f ZGVsZXRlXyVzIiAlICgKKyAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisKKyAg ICAgICAgc2VsZi5wdWJsaWNhdGlvbl9pZCA9IFwKKyAgICAgICAgICAgIHB1YmxpY2F0aW9uX3V0 aWxzLmNyZWF0ZV9wdWJsaWNhdGlvbihzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1l KQorCisgICAgZGVmIGRlbGV0ZV9wdWJsaWNhdGlvbihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl bGYudGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZF Ul9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyAr IHN0cihzZWxmLmRiX2lkKSArCisgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5wdWJsaWNhdGlv bl9pZCksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICBkZWYgcnVu VGVzdChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBwdWJsaWNh dGlvbiIiIgorICAgICAgICBwdWJsaWNhdGlvbl9yZXNwb25zZSA9IHB1YmxpY2F0aW9uX3V0aWxz LiBcCisgICAgICAgICAgICB2ZXJpZnlfcHVibGljYXRpb24oc2VsZi5zZXJ2ZXIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYucHVibGljYXRpb25fbmFtZSkKKyAgICAgICAgaWYgbm90IHB1Ymxp Y2F0aW9uX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg ZmluZCB0aGUgcHVibGljYXRpb24gdG8gZGVsZXRlLiIpCisKKyAgICAgICAgaWYgc2VsZi5pc19w b3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAiaW52YWxpZF9wdWJs aWNhdGlvbl9pZCIpOgorICAgICAgICAgICAgICAgIHNlbGYucHVibGljYXRpb25faWQgPSA5OTk5 CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZGVsZXRlX3B1YmxpY2F0aW9uKCkKKyAgICAg ICAgZWxzZToKKyAgICAgICAgICAgIHdpdGggcGF0Y2goc2VsZi5tb2NrX2RhdGFbImZ1bmN0aW9u X25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPWV2YWwoc2VsZi5t b2NrX2RhdGFbInJldHVybl92YWx1ZSJdKSk6CisgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLmRlbGV0ZV9wdWJsaWNhdGlvbigpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNw b25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVk X2RhdGFbInN0YXR1c19jb2RlIl0pCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAg ICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgaWYgbm90IHNlbGYuaXNfcG9zaXRp dmVfdGVzdCBvciBoYXNhdHRyKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnaW52YWxpZF9wdWJsaWNhdGlvbl9pZCcpOgorICAgICAgICAgICAg cHVibGljYXRpb25fdXRpbHMuZGVsZXRlX3B1YmxpY2F0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5wdWJsaWNhdGlvbl9uYW1lKQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0 X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1Ymxp Y2F0aW9ucy90ZXN0cy90ZXN0X3B1YmxpY2F0aW9uX2RlbGV0ZV9tdWx0aXBsZS5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlv bnMvdGVzdHMvdGVzdF9wdWJsaWNhdGlvbl9kZWxldGVfbXVsdGlwbGUucHkKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5hOTY4MTJiMjQKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGlj YXRpb25zL3Rlc3RzL3Rlc3RfcHVibGljYXRpb25fZGVsZXRlX211bHRpcGxlLnB5CkBAIC0wLDAg KzEsMTAzIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FM IFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVs b3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdy ZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgdXVpZAoraW1wb3J0 IGpzb24KKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCisgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191 dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGlt cG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5y b3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFy ZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0 ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHB1YmxpY2F0aW9uX3V0 aWxzCisKKworY2xhc3MgUHVibGljYXRpb25EZWxldGVUZXN0Q2FzZXMoQmFzZVRlc3RHZW5lcmF0 b3IpOgorICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBkZWxldGUgcHVibGljYXRpb24uIiIiCisKKyAg ICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoJ2RlbGV0ZV9tdWx0aXBsZV9w dWJsaWNhdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1 YmxpY2F0aW9uX3V0aWxzLnRlc3RfY2FzZXMpCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAg ICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9u YW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVst MV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAg ICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIGRiX2NvbiA9 IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQ LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNv bm5lY3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAg ICJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBkZWxldGUgcHVibGljYXRpb24uIikK KyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAg IHNlbGYuc2VydmVyX3ZlcnNpb24gPSBzY2hlbWFfaW5mb1sic2VydmVyX3ZlcnNpb24iXQorICAg ICAgICBpZiBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgOTk5OTk6CisgICAgICAgICAgICBzZWxmLnNr aXBUZXN0KAorICAgICAgICAgICAgICAgICJMb2dpY2FsIHJlcGxpY2F0aW9uIGlzIG5vdCBzdXBw b3J0ZWQgIgorICAgICAgICAgICAgICAgICJmb3Igc2VydmVyIHZlcnNpb24gbGVzcyB0aGFuIDEw IgorCisgICAgICAgICAgICApCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGls cy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUp CisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlIHB1YmxpY2F0aW9uLiIp CisgICAgICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0YWJsZV9jb2x1bW5fJXMiICUgKHN0cih1dWlk LnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3Jl YXRlX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFt ZSkKKyAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lID0gInRlc3RfcHVibGljYXRpb25fZGVs ZXRlXyVzIiAlICgKKyAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAg IHNlbGYucHVibGljYXRpb25fbmFtZV8xID0gInRlc3RfcHVibGljYXRpb25fZGVsZXRlXyVzIiAl ICgKKyAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNlbGYucHVi bGljYXRpb25faWRzID0gWworICAgICAgICAgICAgcHVibGljYXRpb25fdXRpbHMuY3JlYXRlX3B1 YmxpY2F0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lKSwKKyAg ICAgICAgICAgIHB1YmxpY2F0aW9uX3V0aWxzLmNyZWF0ZV9wdWJsaWNhdGlvbihzZWxmLnNlcnZl ciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYucHVibGljYXRpb25fbmFtZV8xKSwKKyAgICAgICAgXQorCisgICAgZGVm IGRlbGV0ZV9tdWx0aXBsZV9wdWJsaWNhdGlvbihzZWxmLCBkYXRhKToKKyAgICAgICAgcmV0dXJu IHNlbGYudGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS8iLmZvcm1h dChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1 ZSwKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgIGNvbnRl bnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICApCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToK KyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBwdWJsaWNhdGlvbi4iIiIKKyAg ICAgICAgcnVsZV9yZXNwb25zZSA9IHB1YmxpY2F0aW9uX3V0aWxzLiBcCisgICAgICAgICAgICB2 ZXJpZnlfcHVibGljYXRpb24oc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu cHVibGljYXRpb25fbmFtZSkKKyAgICAgICAgaWYgbm90IHJ1bGVfcmVzcG9uc2U6CisgICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBwdWJsaWNhdGlvbiB0byBk ZWxldGUuIikKKworICAgICAgICBydWxlX3Jlc3BvbnNlID0gcHVibGljYXRpb25fdXRpbHMuIFwK KyAgICAgICAgICAgIHZlcmlmeV9wdWJsaWNhdGlvbihzZWxmLnNlcnZlciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lXzEpCisgICAgICAgIGlmIG5vdCBydWxlX3Jl c3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUg cHVibGljYXRpb24gdG8gZGVsZXRlLiIpCisKKyAgICAgICAgZGF0YSA9IHsnaWRzJzogc2VsZi5w dWJsaWNhdGlvbl9pZHN9CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi5kZWxldGVfbXVsdGlwbGVf cHVibGljYXRpb24oZGF0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0 dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkX2RhdGFbInN0 YXR1c19jb2RlIl0pCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICMgRGlzY29u bmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRh YmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlv bnMvdGVzdHMvdGVzdF9wdWJsaWNhdGlvbl9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzL3Rlc3RfcHVi bGljYXRpb25fZ2V0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uY2Jh ODc5NGNmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy90ZXN0X3B1YmxpY2F0aW9u X2dldC5weQpAQCAtMCwwICsxLDEwMCBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1p biA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBU aGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQg dW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1w b3J0IHV1aWQKK2Zyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gKKworZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50 ZXN0cyBcCisgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscworZnJvbSBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9y dCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAg ZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSBy ZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitm cm9tIC4gaW1wb3J0IHV0aWxzIGFzIHB1YmxpY2F0aW9uX3V0aWxzCisKKworY2xhc3MgUHVibGlj YXRpb25HZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3 aWxsIGZldGNoIHRoZSBwdWJsaWNhdGlvbiB1bmRlciB0YWJsZSBub2RlLiIiIgorICAgIHNjZW5h cmlvcyA9IHV0aWxzLmdlbmVyYXRlX3NjZW5hcmlvcygnZ2V0X3B1YmxpY2F0aW9uJywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljYXRpb25fdXRpbHMudGVz dF9jYXNlcykKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5kYl9uYW1lID0g cGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBzY2hl bWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQorICAgICAgICBzZWxmLnNl cnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQorICAgICAgICBzZWxmLmRiX2lkID0g c2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA9IHNjaGVt YV9pbmZvWyJzZXJ2ZXJfdmVyc2lvbiJdCisgICAgICAgIGlmIHNlbGYuc2VydmVyX3ZlcnNpb24g PCA5OTk5OToKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoCisgICAgICAgICAgICAgICAgIkxv Z2ljYWwgcmVwbGljYXRpb24gaXMgbm90IHN1cHBvcnRlZCAiCisgICAgICAgICAgICAgICAgImZv ciBzZXJ2ZXIgdmVyc2lvbiBsZXNzIHRoYW4gMTAiCisKKyAgICAgICAgICAgICkKKyAgICAgICAg ZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJW RVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bJ2Rh dGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAg ICAgICAgICAgIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGRlbGV0ZSBwdWJsaWNh dGlvbi4iKQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQi XQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0K KyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNl bGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKworICAgICAgICBpZiBub3Qg c2NoZW1hX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg ZmluZCB0aGUgc2NoZW1hIHRvIGRlbGV0ZSBwdWJsaWNhdGlvbi4iKQorICAgICAgICBzZWxmLnRh YmxlX25hbWUgPSAidGFibGVfY29sdW1uXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQor ICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNl cnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCisgICAgICAgIHNlbGYu cHVibGljYXRpb25fbmFtZSA9ICJ0ZXN0X3B1YmxpY2F0aW9uX2dldF8lcyIgJSAoCisgICAgICAg ICAgICBzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX2lk ID0gcHVibGljYXRpb25fdXRpbHMuIFwKKyAgICAgICAgICAgIGNyZWF0ZV9wdWJsaWNhdGlvbihz ZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lKQor CisgICAgZGVmIGdldF9wdWJsaWNhdGlvbihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYudGVz dGVyLmdldCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkg KyAnLycgKyBzdHIoCisgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAg ICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArIHN0cihzZWxmLnB1YmxpY2F0aW9uX2lk KSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAgIGRlZiBydW5U ZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIHB1Ymxp Y2F0aW9uLiIiIgorCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAg ICAgIGlmIGhhc2F0dHIoc2VsZiwgImRhdGFiYXNlX25vZGVzIik6CisgICAgICAgICAgICAgICAg c2VsZi5wdWJsaWNhdGlvbl9pZCA9ICcnCisgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxm LmdldF9wdWJsaWNhdGlvbigpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJl c3BvbnNlID0gc2VsZi5nZXRfcHVibGljYXRpb24oKQorICAgICAgICBlbHNlOgorICAgICAgICAg ICAgaWYgaGFzYXR0cihzZWxmLCAiZGF0YWJhc2Vfbm9kZXMiKToKKyAgICAgICAgICAgICAgICBz ZWxmLnB1YmxpY2F0aW9uX2lkID0gJycKKyAgICAgICAgICAgICAgICB3aXRoIHBhdGNoKHNlbGYu bW9ja19kYXRhWyJmdW5jdGlvbl9uYW1lIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVlIl0pKToKKyAgICAg ICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmdldF9wdWJsaWNhdGlvbigpCisgICAgICAg ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHdpdGggcGF0Y2goc2VsZi5tb2NrX2RhdGFbImZ1 bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1l dmFsKHNlbGYubW9ja19kYXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAgICAgICAgICAgICAgICAg ICByZXNwb25zZSA9IHNlbGYuZ2V0X3B1YmxpY2F0aW9uKCkKKworICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZXhwZWN0ZWRfZGF0YVsic3RhdHVzX2NvZGUiXSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxm KToKKyAgICAgICAgcHVibGljYXRpb25fdXRpbHMuZGVsZXRlX3B1YmxpY2F0aW9uKHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX25hbWUpCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUg ZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxm LCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMv dGVzdF9wdWJsaWNhdGlvbl9wdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzL3Rlc3RfcHVibGljYXRpb25f cHV0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYmMzMTYwMmFiCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy90ZXN0X3B1YmxpY2F0aW9uX3B1dC5weQpA QCAtMCwwICsxLDEyNyBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9z dGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1p biBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IGpzb24K K2ltcG9ydCB1dWlkCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCisKK2Zyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJs ZXMudGVzdHMgXAorICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKK2Zyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBp bXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAor ICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zy b20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGls cworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBwdWJsaWNhdGlvbl91dGlscworCisKK2NsYXNzIFB1 YmxpY2F0aW9uVXBkYXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRoaXMg Y2xhc3Mgd2lsbCB1cGRhdGUgdGhlIHB1YmxpY2F0aW9uLiIiIgorICAgIHNjZW5hcmlvcyA9IHV0 aWxzLmdlbmVyYXRlX3NjZW5hcmlvcygndXBkYXRlX3B1YmxpY2F0aW9uJywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljYXRpb25fdXRpbHMudGVzdF9jYXNl cykKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50 X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBzY2hlbWFfaW5m byA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9p ZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1h X2luZm9bImRiX2lkIl0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA9IHNjaGVtYV9pbmZv WyJzZXJ2ZXJfdmVyc2lvbiJdCisgICAgICAgIGlmIHNlbGYuc2VydmVyX3ZlcnNpb24gPCA5OTk5 OToKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoCisgICAgICAgICAgICAgICAgIkxvZ2ljYWwg cmVwbGljYXRpb24gaXMgbm90IHN1cHBvcnRlZCAiCisgICAgICAgICAgICAgICAgImZvciBzZXJ2 ZXIgdmVyc2lvbiBsZXNzIHRoYW4gMTAiCisKKyAgICAgICAgICAgICkKKyAgICAgICAgZGJfY29u ID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JP VVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsi Y29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAg ICAgIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGRlbGV0ZSBwdWJsaWNhdGlvbi4i KQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAg ICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAg ICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2Vy dmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9y ZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhl IHNjaGVtYSB0byBkZWxldGUgcHVibGljYXRpb24uIikKKyAgICAgICAgc2VsZi50YWJsZV9uYW1l ID0gInRhYmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKworICAgICAg ICBzZWxmLnNlcnZlcl92ZXJzaW9uID0gc2NoZW1hX2luZm9bInNlcnZlcl92ZXJzaW9uIl0KKyAg ICAgICAgaWYgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA8IDk5OTk5OgorICAgICAgICAgICAgc2VsZi5z a2lwVGVzdCgKKyAgICAgICAgICAgICAgICAiTG9naWNhbCByZXBsaWNhdGlvbiBpcyBub3Qgc3Vw cG9ydGVkICIKKyAgICAgICAgICAgICAgICAiZm9yIHNlcnZlciB2ZXJzaW9uIGxlc3MgdGhhbiAx MCIKKworICAgICAgICAgICAgKQorICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxz LmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxl X25hbWUpCisgICAgICAgIHNlbGYucHVibGljYXRpb25fbmFtZSA9ICJ0ZXN0X3B1YmxpY2F0aW9u X3VwZGF0ZV8lcyIgJSAoCisgICAgICAgICAgICBzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAg ICAgICBzZWxmLnB1YmxpY2F0aW9uX2lkID0gXAorICAgICAgICAgICAgcHVibGljYXRpb25fdXRp bHMuY3JlYXRlX3B1YmxpY2F0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wdWJsaWNhdGlv bl9uYW1lKQorCisgICAgZGVmIHVwZGF0ZV9wdWJsaWNhdGlvbihzZWxmLCBkYXRhKToKKyAgICAg ICAgcmV0dXJuIHNlbGYudGVzdGVyLnB1dCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0 aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lk KSArICcvJyArIHN0cigKKyAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKSArCisgICAgICAgICAg ICAnLycgKyBzdHIoc2VsZi5wdWJsaWNhdGlvbl9pZCksCisgICAgICAgICAgICBkYXRhPWpzb24u ZHVtcHMoZGF0YSksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICBk ZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0 aGUgcHVibGljYXRpb24uIiIiCisKKyAgICAgICAgcHVibGljYXRpb25fbmFtZSA9IHB1YmxpY2F0 aW9uX3V0aWxzLiBcCisgICAgICAgICAgICB2ZXJpZnlfcHVibGljYXRpb24oc2VsZi5zZXJ2ZXIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHVibGljYXRpb25fbmFtZSkKKyAgICAgICAgaWYg aGFzYXR0cihzZWxmLCAidXBkYXRlX25hbWUiKToKKyAgICAgICAgICAgIHNlbGYudGVzdF9kYXRh WyduYW1lJ10gPSAidGVzdF9wdWJsaWNhdGlvbl91cGRhdGVfJXMiICUgKAorICAgICAgICAgICAg ICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBz ZWxmLnRlc3RfZGF0YVsnbmFtZSddID0gc2VsZi5wdWJsaWNhdGlvbl9uYW1lCisgICAgICAgIHNl bGYudGVzdF9kYXRhWydpZCddID0gc2VsZi5wdWJsaWNhdGlvbl9pZAorCisgICAgICAgIGlmIG5v dCBwdWJsaWNhdGlvbl9uYW1lOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgZmluZCB0aGUgcHVibGljYXRpb24gdG8gdXBkYXRlLiIpCisKKyAgICAgICAgaWYgc2VsZi5p c19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAid3JvbmdfcHVi bGljYXRpb25faWQiKToKKyAgICAgICAgICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX2lkID0gOTk5 OQorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAicGxpZF9ub25lIik6CisgICAgICAgICAg ICAgICAgc2VsZi5wdWJsaWNhdGlvbl9pZCA9ICcnCisgICAgICAgICAgICByZXNwb25zZSA9IHNl bGYudXBkYXRlX3B1YmxpY2F0aW9uKHNlbGYudGVzdF9kYXRhKQorICAgICAgICBlbHNlOgorICAg ICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0 dXJuX3ZhbHVlIl0pKToKKyAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJ3cm9uZ19w dWJsaWNhdGlvbl9pZCIpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX2lk ID0gOTk5OQorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi51cGRhdGVfcHVibGljYXRp b24oc2VsZi50ZXN0X2RhdGEpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5z dGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkX2RhdGFb InN0YXR1c19jb2RlIl0pCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIGNvbm5l Y3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxmLnNlcnZlclsnZGInXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2Vy bmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydzc2xtb2RlJ10p CisKKyAgICAgICAgcHVibGljYXRpb25fdXRpbHMuZGVsZXRlX3B1YmxpY2F0aW9uKHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnRlc3RfZGF0YVsnbmFtZSddKQorCisgICAgICAgICMgRGlzY29ubmVjdCB0 aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShz ZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVz dHMvdGVzdF9wdWJsaWNhdGlvbl9zcWwucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzL3Rlc3RfcHVibGljYXRp b25fc3FsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYjFhY2I3ODc0 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy90ZXN0X3B1YmxpY2F0aW9uX3NxbC5w eQpAQCAtMCwwICsxLDg4IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgdXVp ZAorZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAoraW1wb3J0IGpzb24KK2Zyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJs ZXMudGVzdHMgXAorICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKK2Zyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBp bXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAor ICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zy b20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGls cworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBwdWJsaWNhdGlvbl91dGlscworCisKK2NsYXNzIFB1 YmxpY2F0aW9uR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRoaXMgY2xh c3Mgd2lsbCBmZXRjaCB0aGUgcHVibGljYXRpb24gdW5kZXIgdGFibGUgbm9kZS4iIiIKKyAgICBz Y2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoJ3NxbF9wdWJsaWNhdGlvbicsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY2F0aW9uX3V0aWxz LnRlc3RfY2FzZXMpCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFt ZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAg c2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9p ZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIHNlbGYuc2VydmVyX3ZlcnNpb24gPSBz Y2hlbWFfaW5mb1sic2VydmVyX3ZlcnNpb24iXQorICAgICAgICBpZiBzZWxmLnNlcnZlcl92ZXJz aW9uIDwgOTk5OTk6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KAorICAgICAgICAgICAgICAg ICJMb2dpY2FsIHJlcGxpY2F0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgIgorICAgICAgICAgICAgICAg ICJmb3Igc2VydmVyIHZlcnNpb24gbGVzcyB0aGFuIDEwIgorCisgICAgICAgICAgICApCisgICAg ICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMu U0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29u WydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAg ICAgICAgICAgICAgICJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBkZWxldGUgcHVi bGljYXRpb24uIikKKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1h X2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFt ZSJdCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1h cyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5v dCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5v dCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlIHB1YmxpY2F0aW9uLiIpCisgICAgICAgIHNlbGYu dGFibGVfbmFtZSA9ICJ0YWJsZV9jb2x1bW5fJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0p CisgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYu c2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKKyAgICAgICAgc2Vs Zi5wdWJsaWNhdGlvbl9uYW1lID0gInRlc3RfcHVibGljYXRpb25fZGVsZXRlXyVzIiAlICgKKyAg ICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNlbGYucHVibGljYXRp b25faWQgPSBcCisgICAgICAgICAgICBwdWJsaWNhdGlvbl91dGlscy5jcmVhdGVfcHVibGljYXRp b24oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX25hbWUpCisKKyAgICBkZWYg Z2V0X3NxbChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAg ICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKyBzdHIoCisgICAg ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxm LmRiX2lkKSArICcvJyArIHN0cihzZWxmLnB1YmxpY2F0aW9uX2lkKSwKKyAgICAgICAgICAgIGNv bnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAg ICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIHB1YmxpY2F0aW9uIHVuZGVyIHRhYmxl IG5vZGUuIiIiCisKKyAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAg ICAgcmVzcG9uc2UgPSBzZWxmLmdldF9zcWwoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg d2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVl Il0pKToKKyAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X3NxbCgpCisKKyAgICAg ICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmV4cGVjdGVkX2RhdGFbInN0YXR1c19jb2RlIl0pCisKKyAgICBkZWYg dGVhckRvd24oc2VsZik6CisgICAgICAgIHB1YmxpY2F0aW9uX3V0aWxzLmRlbGV0ZV9wdWJsaWNh dGlvbihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lKQorICAgICAgICAjIERp c2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGlj YXRpb25zL3Rlc3RzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy91dGlscy5weQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmJlMzk5YTRjNgotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJs aWNhdGlvbnMvdGVzdHMvdXRpbHMucHkKQEAgLTAsMCArMSwxNTIgQEAKKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChD KSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3 YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisKKworaW1wb3J0IHN5cworaW1wb3J0IG9zCitpbXBvcnQganNvbgoraW1wb3J0 IHRyYWNlYmFjaworCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRl c3RfdXRpbHMgYXMgdXRpbHMKKworQ1VSUkVOVF9QQVRIID0gb3MucGF0aC5kaXJuYW1lKG9zLnBh dGgucmVhbHBhdGgoX19maWxlX18pKQord2l0aCBvcGVuKENVUlJFTlRfUEFUSCArICIvcHVibGlj YXRpb25fdGVzdF9kYXRhLmpzb24iKSBhcyBkYXRhX2ZpbGU6CisgICAgdGVzdF9jYXNlcyA9IGpz b24ubG9hZChkYXRhX2ZpbGUpCisKKworZGVmIGdldF90YWJsZXMoc2VsZik6CisgICAgdGFibGVz ID0gc2VsZi50ZXN0ZXIuZ2V0KAorICAgICAgICAnL2Jyb3dzZXIvcHVibGljYXRpb24vZ2V0X3Rh Ymxlcy8nICsgc3RyKAorICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0 cigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgIHN0cihzZWxm LmRiX2lkKSArICcvJywKKyAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgIHJl dHVybiBqc29uLmR1bXBzKFt0YWJsZXMuanNvblsnZGF0YSddWzFdWyd2YWx1ZSddXSkKKworCitk ZWYgY3JlYXRlX3B1YmxpY2F0aW9uX2FwaShzZWxmKToKKyAgICByZXR1cm4gc2VsZi50ZXN0ZXIu cG9zdCgKKyAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyAr CisgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoCisgICAgICAgICAgICBz ZWxmLmRiX2lkKSArICcvJywKKyAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYudGVzdF9kYXRh KSwKKyAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisKK2RlZiBjcmVhdGVfcHVi bGljYXRpb24oc2VydmVyLCBkYl9uYW1lLCBwdWJsaWNhdGlvbl9uYW1lKToKKyAgICAiIiIKKyAg ICBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYSBwdWJsaWNhdGlvbiB1bmRlciBwcm92aWRlZCB0YWJs ZS4KKyAgICA6cGFyYW0gc2VydmVyOiBzZXJ2ZXIgZGV0YWlscworICAgIDp0eXBlIHNlcnZlcjog ZGljdAorICAgIDpwYXJhbSBkYl9uYW1lOiBkYXRhYmFzZSBuYW1lCisgICAgOnR5cGUgZGJfbmFt ZTogc3RyCisgICAgOnBhcmFtIHB1YmxpY2F0aW9uX25hbWU6IHB1YmxpY2F0aW9uIG5hbWUKKyAg ICA6dHlwZSBwdWJsaWNhdGlvbl9uYW1lOiBzdHIKKyAgICA6cmV0dXJuIHB1YmxpY2F0aW9uX2lk OiBwdWJsaWNhdGlvbiBpZAorICAgIDpydHlwZTogaW50CisgICAgIiIiCisgICAgdHJ5OgorICAg ICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oZGJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUn XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsn ZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyWydwb3J0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXJ2ZXJbJ3NzbG1vZGUnXSkKKyAgICAgICAgb2xkX2lzb2xhdGlvbl9s ZXZlbCA9IGNvbm5lY3Rpb24uaXNvbGF0aW9uX2xldmVsCisgICAgICAgIGNvbm5lY3Rpb24uc2V0 X2lzb2xhdGlvbl9sZXZlbCgwKQorICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNv cigpCisgICAgICAgIHF1ZXJ5ID0gIkNSRUFURSBwdWJsaWNhdGlvbiAlcyBGT1IgQUxMIFRBQkxF UyIgJSBcCisgICAgICAgICAgICAgICAgKHB1YmxpY2F0aW9uX25hbWUpCisgICAgICAgIHBnX2N1 cnNvci5leGVjdXRlKHF1ZXJ5KQorICAgICAgICBjb25uZWN0aW9uLnNldF9pc29sYXRpb25fbGV2 ZWwob2xkX2lzb2xhdGlvbl9sZXZlbCkKKyAgICAgICAgY29ubmVjdGlvbi5jb21taXQoKQorICAg ICAgICAjIEdldCByb2xlIG9pZCBvZiBuZXdseSBhZGRlZCBwdWJsaWNhdGlvbgorICAgICAgICBw Z19jdXJzb3IuZXhlY3V0ZSgic2VsZWN0IG9pZCBmcm9tIHBnX3B1YmxpY2F0aW9uIHB1YiB3aGVy ZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJwdWIucHVibmFtZT0nJXMnIiAlCisgICAg ICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY2F0aW9uX25hbWUpCisgICAgICAgIHB1YmxpY2F0 aW9uID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAgICAgICAgcHVibGljYXRpb25faWQgPSAnJwor ICAgICAgICBpZiBwdWJsaWNhdGlvbjoKKyAgICAgICAgICAgIHB1YmxpY2F0aW9uX2lkID0gcHVi bGljYXRpb25bMF0KKyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgpCisgICAgICAgIHJldHVybiBw dWJsaWNhdGlvbl9pZAorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHRyYWNlYmFjay5w cmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICByYWlzZQorCisKK2RlZiB2ZXJpZnlf cHVibGljYXRpb24oc2VydmVyLCBkYl9uYW1lLCBwdWJsaWNhdGlvbl9uYW1lKToKKyAgICAiIiIK KyAgICBUaGlzIGZ1bmN0aW9uIHZlcmlmaWVzIHB1YmxpY2F0aW9uIGV4aXN0IGluIGRhdGFiYXNl IG9yIG5vdC4KKyAgICA6cGFyYW0gc2VydmVyOiBzZXJ2ZXIgZGV0YWlscworICAgIDp0eXBlIHNl cnZlcjogZGljdAorICAgIDpwYXJhbSBkYl9uYW1lOiBkYXRhYmFzZSBuYW1lCisgICAgOnR5cGUg ZGJfbmFtZTogc3RyCisgICAgOnBhcmFtIHB1YmxpY2F0aW9uX25hbWU6IHB1YmxpY2F0aW9uIG5h bWUKKyAgICA6dHlwZSBwdWJsaWNhdGlvbl9uYW1lOiBzdHIKKyAgICA6cmV0dXJuIHB1YmxpY2F0 aW9uOiBwdWJsaWNhdGlvbiByZWNvcmQgZnJvbSBkYXRhYmFzZQorICAgIDpydHlwZTogdHVwbGUK KyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29u bmVjdGlvbihkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydob3N0J10sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnc3NsbW9kZSddKQor ICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgIHBnX2N1cnNv ci5leGVjdXRlKCJzZWxlY3QgKiBmcm9tIHBnX3B1YmxpY2F0aW9uIHB1YiAiCisgICAgICAgICAg ICAgICAgICAgICAgICAgICJ3aGVyZSBwdWIucHVibmFtZT0nJXMnIiAlCisgICAgICAgICAgICAg ICAgICAgICAgICAgIHB1YmxpY2F0aW9uX25hbWUpCisgICAgICAgIHB1YmxpY2F0aW9uID0gcGdf Y3Vyc29yLmZldGNob25lKCkKKyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgpCisgICAgICAgIHJl dHVybiBwdWJsaWNhdGlvbgorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHRyYWNlYmFj ay5wcmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICByYWlzZQorCisKK2RlZiBkZWxl dGVfcHVibGljYXRpb24oc2VydmVyLCBkYl9uYW1lLCBwdWJsaWNhdGlvbl9uYW1lKToKKyAgICAi IiIKKyAgICBUaGlzIGZ1bmN0aW9uIHVzZSB0byBkZWxldGUgdGhlIGV4aXN0aW5nIHJvbGVzIGlu IHRoZSBzZXJ2ZXJzCisKKyAgICA6cGFyYW0gZGJfbmFtZTogIGRiX25hbWUKKyAgICA6dHlwZSBk Yl9uYW1lOiBkYl9uYW1lIG9iamVjdAorICAgIDpwYXJhbSBzZXJ2ZXI6IHNlcnZlcgorICAgIDp0 eXBlIHNlcnZlcjogc2VydmVyIG9iamVjdAorICAgIDpwYXJhbSBwdWJsaWNhdGlvbl9uYW1lOiBw dWJsaWNhdGlvbiBuYW1lCisgICAgOnR5cGUgcHVibGljYXRpb25fbmFtZTogc3RyCisgICAgOnJl dHVybjogTm9uZQorICAgICIiIgorCisgICAgdHJ5OgorICAgICAgICBjb25uZWN0aW9uID0gdXRp bHMuZ2V0X2RiX2Nvbm5lY3Rpb24oZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCddLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydwb3J0 J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJb J3NzbG1vZGUnXSkKKyAgICAgICAgcGdfY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorCisg ICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCJzZWxlY3QgKiBmcm9tIHBnX3B1YmxpY2F0aW9uIHB1 YiB3aGVyZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJwdWIucHVibmFtZT0nJXMnIiAl CisgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY2F0aW9uX25hbWUpCisgICAgICAgIHB1 YmxpY2F0aW9uX2NvdW50ID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAgICAgICAgaWYgcHVibGlj YXRpb25fY291bnQ6CisgICAgICAgICAgICBvbGRfaXNvbGF0aW9uX2xldmVsID0gY29ubmVjdGlv bi5pc29sYXRpb25fbGV2ZWwKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9s ZXZlbCgwKQorICAgICAgICAgICAgcGdfY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAg ICAgICAgICAgcXVlcnkgPSAiRFJPUCBwdWJsaWNhdGlvbiAlcyIgJSBwdWJsaWNhdGlvbl9uYW1l CisgICAgICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZShxdWVyeSkKKyAgICAgICAgICAgIGNvbm5l Y3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZlbChvbGRfaXNvbGF0aW9uX2xldmVsKQorICAgICAgICAg ICAgY29ubmVjdGlvbi5jb21taXQoKQorICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCkKKyAgICBl eGNlcHQgRXhjZXB0aW9uOgorICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lzLnN0 ZGVycikKKyAgICAgICAgcmFpc2UKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9zdGF0aWMvanMvdGFi bGUuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvc3RhdGljL2pzL3RhYmxlLmpzCmluZGV4IGZmZWI2OWY2Ni4uYjRh MjNjNGVlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvc3RhdGljL2pzL3RhYmxlLmpzCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9zdGF0aWMvanMvdGFibGUuanMKQEAgLTUxNyw2ICs1MTcsMTEgQEAgZGVmaW5lKCdw Z2FkbWluLm5vZGUudGFibGUnLCBbCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg ICB9LAogICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdyZXBsaWNhX2lkZW50 aXR5JywgbGFiZWw6IGdldHRleHQoJ1JlcGxpY2EgSWRlbnRpdHknKSwKKyAgICAgICAgICBncm91 cDogZ2V0dGV4dCgnYWR2YW5jZWQnKSwgdHlwZTogJ3RleHQnLG1vZGU6IFsnZWRpdCcsICdwcm9w ZXJ0aWVzJ10sCisgICAgICAgIH0sCisKICAgICAgICAgewogICAgICAgICAgIGlkOiAnYWR2YW5j ZWQnLCBsYWJlbDogZ2V0dGV4dCgnQWR2YW5jZWQnKSwgdHlwZTogJ2dyb3VwJywKICAgICAgICAg ICB2aXNpYmxlOiBTaG93QWR2YW5jZWRUYWIuc2hvd19hZHZhbmNlZF90YWIsCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlcy9zcWwvMTBfcGx1cy9wcm9wZXJ0aWVzLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMF9wbHVzL3Byb3BlcnRpZXMuc3FsCmlu ZGV4IGQ1MmVjMmE2My4uY2I0ZDQ3Yzk0IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVz L3RhYmxlcy9zcWwvMTBfcGx1cy9wcm9wZXJ0aWVzLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxh dGVzL3RhYmxlcy9zcWwvMTBfcGx1cy9wcm9wZXJ0aWVzLnNxbApAQCAtNCw2ICs0LDEyIEBAIFNF TEVDVCByZWwub2lkLCByZWwucmVsbmFtZSBBUyBuYW1lLCByZWwucmVsdGFibGVzcGFjZSBBUyBz cGNvaWQscmVsLnJlbGFjbCBBUyByCiAgICAgSk9JTiBwZ190YWJsZXNwYWNlIHNwIE9OIGR0Yi5k YXR0YWJsZXNwYWNlPXNwLm9pZAogICAgIFdIRVJFIGR0Yi5vaWQgPSB7eyBkaWQgfX06Om9pZCkK ICAgRU5EKSBhcyBzcGNuYW1lLAorICAoQ0FTRSByZWwucmVscmVwbGlkZW50CisgICAgICAgICAg V0hFTiAnZCcgVEhFTiAnZGVmYXVsdCcKKyAgICAgICAgICBXSEVOICduJyBUSEVOICdub3RoaW5n JworICAgICAgICAgIFdIRU4gJ2YnIFRIRU4gJ2Z1bGwnCisgICAgICAgICAgV0hFTiAnaScgVEhF TiAnaW5kZXgnCisgIEVORCkgYXMgcmVwbGljYV9pZGVudGl0eSwKICAgKHNlbGVjdCBuc3BuYW1l IEZST00gcGdfbmFtZXNwYWNlIFdIRVJFIG9pZCA9IHt7c2NpZH19OjpvaWQgKSBhcyBzY2hlbWEs CiAgIHBnX2dldF91c2VyYnlpZChyZWwucmVsb3duZXIpIEFTIHJlbG93bmVyLCByZWwucmVsaGFz b2lkcywgcmVsLnJlbGtpbmQsCiAgIChDQVNFIFdIRU4gcmVsLnJlbGtpbmQgPSAncCcgVEhFTiB0 cnVlIEVMU0UgZmFsc2UgRU5EKSBBUyBpc19wYXJ0aXRpb25lZCwKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMV9wbHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3RlbXBsYXRlcy90YWJsZXMvc3FsLzExX3BsdXMvcHJvcGVydGllcy5zcWwKaW5kZXggODJm OWE0MzU4Li5mZWEzMTYyODkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVz L3NxbC8xMV9wbHVzL3Byb3BlcnRpZXMuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFi bGVzL3NxbC8xMV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC00LDYgKzQsMTIgQEAgU0VMRUNUIHJl bC5vaWQsIHJlbC5yZWxuYW1lIEFTIG5hbWUsIHJlbC5yZWx0YWJsZXNwYWNlIEFTIHNwY29pZCxy ZWwucmVsYWNsIEFTIHIKICAgICBKT0lOIHBnX3RhYmxlc3BhY2Ugc3AgT04gZHRiLmRhdHRhYmxl c3BhY2U9c3Aub2lkCiAgICAgV0hFUkUgZHRiLm9pZCA9IHt7IGRpZCB9fTo6b2lkKQogICBFTkQp IGFzIHNwY25hbWUsCisgIChDQVNFIHJlbC5yZWxyZXBsaWRlbnQKKyAgICAgICAgICBXSEVOICdk JyBUSEVOICdkZWZhdWx0JworICAgICAgICAgIFdIRU4gJ24nIFRIRU4gJ25vdGhpbmcnCisgICAg ICAgICAgV0hFTiAnZicgVEhFTiAnZnVsbCcKKyAgICAgICAgICBXSEVOICdpJyBUSEVOICdpbmRl eCcKKyAgRU5EKSBhcyByZXBsaWNhX2lkZW50aXR5LAogICAoc2VsZWN0IG5zcG5hbWUgRlJPTSBw Z19uYW1lc3BhY2UgV0hFUkUgb2lkID0ge3tzY2lkfX06Om9pZCApIGFzIHNjaGVtYSwKICAgcGdf Z2V0X3VzZXJieWlkKHJlbC5yZWxvd25lcikgQVMgcmVsb3duZXIsIHJlbC5yZWxoYXNvaWRzLCBy ZWwucmVsa2luZCwKICAgKENBU0UgV0hFTiByZWwucmVsa2luZCA9ICdwJyBUSEVOIHRydWUgRUxT RSBmYWxzZSBFTkQpIEFTIGlzX3BhcnRpdGlvbmVkLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rl bXBsYXRlcy90YWJsZXMvc3FsLzExX3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0 ZXMvdGFibGVzL3NxbC8xMV9wbHVzL3VwZGF0ZS5zcWwKaW5kZXggNDhlYzAzNDk0Li4zNWQ3Njky NjkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMV9wbHVzL3Vw ZGF0ZS5zcWwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZXMvc3FsLzExX3BsdXMvdXBk YXRlLnNxbApAQCAtMjc5LDMgKzI3OSwxNSBAQCBBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChk YXRhLnNjaGVtYSwgZGF0YS5uYW1lKX19CiB7JSBlbmRpZiAlfQogCiB7JSBlbmRpZiAlfQoreyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjfQoreyMj IENoYW5nZSByZXBsaWNhIGlkZW50aXR5ICMjfQoreyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjfQoreyUgaWYgZGF0YS5yZXBsaWNhX2lkZW50aXR5 IGFuZCBkYXRhLnJlcGxpY2FfaWRlbnRpdHkgIT0gb19kYXRhLnJlcGxpY2FfaWRlbnRpdHkgJX0K K0FMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpfX0gUkVQ TElDQSBJREVOVElUWSB7e2RhdGEucmVwbGljYV9pZGVudGl0eSB9fTsKK3slIGVuZGlmICV9Cit7 IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyN9Cit7 IyMgQ2hhbmdlIHJlcGxpY2EgaWRlbnRpdHkgIyN9Cit7IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyN9Cit7JSBpZiBkYXRhLnJlcGxpY2FfaWRlbnRp dHkgYW5kIGRhdGEucmVwbGljYV9pZGVudGl0eSAhPSBvX2RhdGEucmVwbGljYV9pZGVudGl0eSAl fQorQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSl9fSBS RVBMSUNBIElERU5USVRZIHt7ZGF0YS5yZXBsaWNhX2lkZW50aXR5IH19OworeyUgZW5kaWYgJX0K ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMl9wbHVzL3Byb3Bl cnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZXMvc3FsLzEyX3BsdXMvcHJvcGVy dGllcy5zcWwKaW5kZXggNWEyZGJiNGE4Li4yYzcyNWI2YmYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMl9wbHVzL3Byb3BlcnRpZXMuc3FsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMl9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC00LDYg KzQsMTIgQEAgU0VMRUNUIHJlbC5vaWQsIHJlbC5yZWxuYW1lIEFTIG5hbWUsIHJlbC5yZWx0YWJs ZXNwYWNlIEFTIHNwY29pZCxyZWwucmVsYWNsIEFTIHIKICAgICBKT0lOIHBnX3RhYmxlc3BhY2Ug c3AgT04gZHRiLmRhdHRhYmxlc3BhY2U9c3Aub2lkCiAgICAgV0hFUkUgZHRiLm9pZCA9IHt7IGRp ZCB9fTo6b2lkKQogICBFTkQpIGFzIHNwY25hbWUsCisgIChDQVNFIHJlbC5yZWxyZXBsaWRlbnQK KyAgICAgICAgICBXSEVOICdkJyBUSEVOICdkZWZhdWx0JworICAgICAgICAgIFdIRU4gJ24nIFRI RU4gJ25vdGhpbmcnCisgICAgICAgICAgV0hFTiAnZicgVEhFTiAnZnVsbCcKKyAgICAgICAgICBX SEVOICdpJyBUSEVOICdpbmRleCcKKyAgRU5EKSBhcyByZXBsaWNhX2lkZW50aXR5LAogICAoc2Vs ZWN0IG5zcG5hbWUgRlJPTSBwZ19uYW1lc3BhY2UgV0hFUkUgb2lkID0ge3tzY2lkfX06Om9pZCAp IGFzIHNjaGVtYSwKICAgcGdfZ2V0X3VzZXJieWlkKHJlbC5yZWxvd25lcikgQVMgcmVsb3duZXIs IHJlbC5yZWxraW5kLAogICAoQ0FTRSBXSEVOIHJlbC5yZWxraW5kID0gJ3AnIFRIRU4gdHJ1ZSBF TFNFIGZhbHNlIEVORCkgQVMgaXNfcGFydGl0aW9uZWQsCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dGVtcGxhdGVzL3RhYmxlcy9zcWwvMTJfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBs YXRlcy90YWJsZXMvc3FsLzEyX3BsdXMvdXBkYXRlLnNxbAppbmRleCAyNWUxYjYyOTUuLmMyZTYx NTM1ZiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZXMvc3FsLzEyX3BsdXMv dXBkYXRlLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlcy9zcWwvMTJfcGx1cy91 cGRhdGUuc3FsCkBAIC0yNzIsMyArMjcyLDE1IEBAIENPTU1FTlQgT04gVEFCTEUge3tjb25ufHF0 SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSl9fQogeyUgZW5kaWYgJX0KIAogeyUgZW5kaWYg JX0KK3sjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj I30KK3sjIyBDaGFuZ2UgcmVwbGljYSBpZGVudGl0eSAjI30KK3sjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI30KK3slIGlmIGRhdGEucmVwbGljYV9p ZGVudGl0eSBhbmQgZGF0YS5yZXBsaWNhX2lkZW50aXR5ICE9IG9fZGF0YS5yZXBsaWNhX2lkZW50 aXR5ICV9CitBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1l KX19IFJFUExJQ0EgSURFTlRJVFkge3tkYXRhLnJlcGxpY2FfaWRlbnRpdHkgfX07Cit7JSBlbmRp ZiAlfQoreyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjfQoreyMjIENoYW5nZSByZXBsaWNhIGlkZW50aXR5ICMjfQoreyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjfQoreyUgaWYgZGF0YS5yZXBsaWNh X2lkZW50aXR5IGFuZCBkYXRhLnJlcGxpY2FfaWRlbnRpdHkgIT0gb19kYXRhLnJlcGxpY2FfaWRl bnRpdHkgJX0KK0FMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5h bWUpfX0gUkVQTElDQSBJREVOVElUWSB7e2RhdGEucmVwbGljYV9pZGVudGl0eSB9fTsKK3slIGVu ZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlcy9zcWwvZGVmYXVs dC91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZXMvc3FsL2RlZmF1bHQvdXBk YXRlLnNxbAppbmRleCA0ZDg0YmFiY2UuLmVmMGVjNGUyMyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L3RlbXBsYXRlcy90YWJsZXMvc3FsL2RlZmF1bHQvdXBkYXRlLnNxbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dGVtcGxhdGVzL3RhYmxlcy9zcWwvZGVmYXVsdC91cGRhdGUuc3FsCkBAIC0yNTYsMyArMjU2LDE3 IEBAIENPTU1FTlQgT04gVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFt ZSl9fQogeyUgZW5kaWYgJX0KIAogeyUgZW5kaWYgJX0KKworeyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjfQoreyMjIENoYW5nZSByZXBsaWNhIGlk ZW50aXR5ICMjfQoreyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjfQoreyUgaWYgZGF0YS5yZXBsaWNhX2lkZW50aXR5IGFuZCBkYXRhLnJlcGxpY2Ff aWRlbnRpdHkgIT0gb19kYXRhLnJlcGxpY2FfaWRlbnRpdHkgJX0KK0FMVEVSIFRBQkxFIHt7Y29u bnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpfX0gUkVQTElDQSBJREVOVElUWSB7e2Rh dGEucmVwbGljYV9pZGVudGl0eSB9fTsKK3slIGVuZGlmICV9CisKK3sjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI30KK3sjIyBDaGFuZ2UgcmVwbGlj YSBpZGVudGl0eSAjI30KK3sjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjI30KK3slIGlmIGRhdGEucmVwbGljYV9pZGVudGl0eSBhbmQgZGF0YS5yZXBs aWNhX2lkZW50aXR5ICE9IG9fZGF0YS5yZXBsaWNhX2lkZW50aXR5ICV9CitBTFRFUiBUQUJMRSB7 e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKX19IFJFUExJQ0EgSURFTlRJVFkg e3tkYXRhLnJlcGxpY2FfaWRlbnRpdHkgfX07Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N0YXRpYy9q cy9kYXRhYmFzZS5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zdGF0aWMvanMvZGF0YWJhc2UuanMKaW5kZXggNmE5N2RkNWJhLi43NmIxYTA5 ZDggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zdGF0aWMvanMvZGF0YWJhc2UuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N0YXRpYy9qcy9kYXRhYmFzZS5qcwpA QCAtOTUsNiArOTUsMTggQEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUuZGF0YWJhc2UnLCBbCiAKICAg ICAgICAgcmV0dXJuIHNlcnZlci5jb25uZWN0ZWQgJiYgc2VydmVyLnVzZXIuY2FuX2NyZWF0ZV9k YjsKICAgICAgIH0sCisgICAgICBjYW5DcmVhdGU6IGZ1bmN0aW9uKGl0ZW1EYXRhLCBpdGVtKSB7 CisgICAgICAgIHZhciB0cmVlRGF0YSA9IHRoaXMuZ2V0VHJlZU5vZGVIaWVyYXJjaHkoaXRlbSks CisgICAgICAgICAgc2VydmVyID0gdHJlZURhdGFbJ3NlcnZlciddOworCisgICAgICAgIC8vIElm IHNlcnZlciBpcyBsZXNzIHRoYW4gMTAgdGhlbiBkbyBub3QgYWxsb3cgJ2NyZWF0ZScgbWVudQor ICAgICAgICBpZiAoc2VydmVyICYmIHNlcnZlci52ZXJzaW9uIDwgMTAwMDAwKQorICAgICAgICAg IHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBieSBkZWZhdWx0IHdlIHdhbnQgdG8gYWxsb3cg Y3JlYXRlIG1lbnUKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICB9LAorCiAgICAgICBpc19u b3RfY29ubmVjdGVkOiBmdW5jdGlvbihub2RlKSB7CiAgICAgICAgIHJldHVybiAobm9kZSAmJiBu b2RlLmNvbm5lY3RlZCAhPSB0cnVlICYmIG5vZGUuYWxsb3dDb25uID09IHRydWUpOwogICAgICAg fSwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvX19pbml0X18u cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5mNWRmZDljZDYKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc3Vic2NyaXB0aW9ucy9fX2luaXRfXy5weQpAQCAtMCwwICsxLDc5MSBAQAorIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBD b3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisj IFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQor IworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIiIiSW1wbGVtZW50cyBTdWJzY3JpcHRpb24gTm9kZSIi IgorCitpbXBvcnQgc2ltcGxlanNvbiBhcyBqc29uCitmcm9tIGZ1bmN0b29scyBpbXBvcnQgd3Jh cHMKKworaW1wb3J0IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzIGFzIGRhdGFiYXNlcworZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCByZXF1 ZXN0LCBqc29uaWZ5Citmcm9tIGZsYXNrX2JhYmVsZXggaW1wb3J0IGdldHRleHQKK2Zyb20gcGdh ZG1pbi5icm93c2VyLmNvbGxlY3Rpb24gaW1wb3J0IENvbGxlY3Rpb25Ob2RlTW9kdWxlCitmcm9t IHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5vZGVWaWV3Citmcm9tIHBnYWRt aW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IsIFwKKyAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGdvbmUKK2Zyb20g cGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9y dCBQR19ERUZBVUxUX0RSSVZFUgorZnJvbSBwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLm5vZGVf cmVnaXN0cnkgaW1wb3J0IFNjaGVtYURpZmZSZWdpc3RyeQorZnJvbSBwZ2FkbWluLnRvb2xzLnNj aGVtYV9kaWZmLmNvbXBhcmUgaW1wb3J0IFNjaGVtYURpZmZPYmplY3RDb21wYXJlCitpbXBvcnQg cHN5Y29wZzIKK2Zyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgZ2V0X2NvbXBsZXRlX2ZpbGVfcGF0 aAorCisKK2NsYXNzIFN1YnNjcmlwdGlvbk1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSk6Cisg ICAgIiIiCisgICAgY2xhc3MgU3Vic2NyaXB0aW9uTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxl KQorCisgICAgICAgIEEgbW9kdWxlIGNsYXNzIGZvciBTdWJzY3JpcHRpb24gbm9kZSBkZXJpdmVk IGZyb20gQ29sbGVjdGlvbk5vZGVNb2R1bGUuCisKKyAgICBNZXRob2RzOgorICAgIC0tLS0tLS0K KyAgICAqIF9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKyAgICAgIC0gTWV0aG9kIGlzIHVzZWQg dG8gaW5pdGlhbGl6ZSB0aGUgU3Vic2NyaXB0aW9uTW9kdWxlIGFuZCBpdCdzCisgICAgICBiYXNl IG1vZHVsZS4KKworICAgICogZ2V0X25vZGVzKGdpZCwgc2lkLCBkaWQpCisgICAgICAtIE1ldGhv ZCBpcyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBicm93c2VyIGNvbGxlY3Rpb24gbm9kZS4KKworICAg ICogbm9kZV9pbm9kZSgpCisgICAgICAtIE1ldGhvZCBpcyBvdmVycmlkZGVuIGZyb20gaXRzIGJh c2UgY2xhc3MgdG8gbWFrZSB0aGUgbm9kZSBhcyBsZWFmIG5vZGUuCisKKyAgICAqIHNjcmlwdF9s b2FkKCkKKyAgICAgIC0gTG9hZCB0aGUgbW9kdWxlIHNjcmlwdCBmb3Igc3Vic2NyaXB0aW9uLCB3 aGVuIGFueSBvZiB0aGUgZGF0YWJhc2Ugbm9kZQorICAgICAgaXMgaW5pdGlhbGl6ZWQuCisgICAg IiIiCisKKyAgICBfTk9ERV9UWVBFID0gJ3N1YnNjcmlwdGlvbicKKyAgICBfQ09MTEVDVElPTl9M QUJFTCA9IGdldHRleHQoIlN1YnNjcmlwdGlvbnMiKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYs ICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICIiIgorICAgICAgICBNZXRob2QgaXMgdXNlZCB0 byBpbml0aWFsaXplIHRoZSBTdWJzY3JpcHRpb25Nb2R1bGUgYW5kIGl0J3MKKyAgICAgICAgYmFz ZSBtb2R1bGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgICphcmdzOgorICAgICAgICAg ICAgKiprd2FyZ3M6CisgICAgICAgICIiIgorICAgICAgICBzdXBlcihTdWJzY3JpcHRpb25Nb2R1 bGUsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5taW5fdmVy ID0gMTAwMDAwCisgICAgICAgIHNlbGYubWF4X3ZlciA9IE5vbmUKKworICAgIGRlZiBnZXRfbm9k ZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCk6CisgICAgICAgICIiIgorICAgICAgICBNZXRob2QgaXMg dXNlZCB0byBnZW5lcmF0ZSB0aGUgYnJvd3NlciBjb2xsZWN0aW9uIG5vZGUKKworICAgICAgICBB cmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDog U2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgICIiIgorICAg ICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKGRpZCkKKwor ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBub2RlX2lub2RlKHNlbGYpOgorICAgICAgICAiIiIKKyAg ICAgICAgT3ZlcnJpZGUgdGhpcyBwcm9wZXJ0eSB0byBtYWtlIHRoZSBub2RlIGEgbGVhZiBub2Rl LgorCisgICAgICAgIFJldHVybnM6IEZhbHNlIGFzIHRoaXMgaXMgdGhlIGxlYWYgbm9kZQorICAg ICAgICAiIiIKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYg c2NyaXB0X2xvYWQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBMb2FkIHRoZSBtb2R1bGUg c2NyaXB0IGZvciBzdWJzY3JpcHRpb24sIHdoZW4gYW55IG9mIHRoZSBkYXRhYmFzZSBub2Rlcwor ICAgICAgICBhcmUgaW5pdGlhbGl6ZWQuCisKKyAgICAgICAgUmV0dXJuczogbm9kZSB0eXBlIG9m IHRoZSBzZXJ2ZXIgbW9kdWxlLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIGRhdGFiYXNl cy5EYXRhYmFzZU1vZHVsZS5ub2RlX3R5cGUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBtb2R1 bGVfdXNlX3RlbXBsYXRlX2phdmFzY3JpcHQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBS ZXR1cm5zIHdoZXRoZXIgSmluamEyIHRlbXBsYXRlIGlzIHVzZWQgZm9yIGdlbmVyYXRpbmcgdGhl IGphdmFzY3JpcHQKKyAgICAgICAgbW9kdWxlLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJu IEZhbHNlCisKKworYmx1ZXByaW50ID0gU3Vic2NyaXB0aW9uTW9kdWxlKF9fbmFtZV9fKQorCisK K2NsYXNzIFN1YnNjcmlwdGlvblZpZXcoUEdDaGlsZE5vZGVWaWV3LCBTY2hlbWFEaWZmT2JqZWN0 Q29tcGFyZSk6CisgICAgIiIiCisgICAgY2xhc3MgU3Vic2NyaXB0aW9uVmlldyhQR0NoaWxkTm9k ZVZpZXcpCisKKyAgICAgICAgQSB2aWV3IGNsYXNzIGZvciBTdWJzY3JpcHRpb24gbm9kZSBkZXJp dmVkIGZyb20gUEdDaGlsZE5vZGVWaWV3LgorICAgICAgICBUaGlzIGNsYXNzIGlzIHJlc3BvbnNp YmxlIGZvciBhbGwgdGhlIHN0dWZmIHJlbGF0ZWQgdG8gdmlldyBsaWtlCisgICAgICAgIHVwZGF0 aW5nIHN1YnNjcmlwdGlvbiBub2RlLCBzaG93aW5nIHByb3BlcnRpZXMsIHNob3dpbmcgc3FsCisg ICAgICAgIGluIHNxbCBwYW5lLgorCisgICAgTWV0aG9kczoKKyAgICAtLS0tLS0tCisgICAgKiBf X2luaXRfXygqKmt3YXJncykKKyAgICAgIC0gTWV0aG9kIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0 aGUgU3Vic2NyaXB0aW9uVmlldyBhbmQgaXQncyBiYXNlIHZpZXcuCisKKyAgICAqIGNoZWNrX3By ZWNvbmRpdGlvbigpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNv cmF0b3Igd2hpY2ggd2lsbCBjaGVja3MKKyAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZv cmUgcnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAgICAgICAgbWFuYWdlcixj b25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKworICAgICogbGlzdCgpCisg ICAgICAtIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBsaXN0IGFsbCB0aGUgc3Vic2NyaXB0aW9u IG5vZGVzIHdpdGhpbiB0aGF0CisgICAgICBjb2xsZWN0aW9uLgorCisgICAgKiBub2RlcygpCisg ICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCB1c2VkIHRvIGNyZWF0ZSBhbGwgdGhlIGNoaWxkIG5v ZGUgd2l0aGluIHRoYXQKKyAgICAgIGNvbGxlY3Rpb24uIEhlcmUgaXQgd2lsbCBjcmVhdGUgYWxs IHRoZSBzdWJzY3JpcHRpb24gbm9kZS4KKworICAgICogcHJvcGVydGllcyhnaWQsIHNpZCwgZGlk LCBzdWJpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIHNob3cgdGhlIHByb3BlcnRpZXMg b2YgdGhlIHNlbGVjdGVkCisgICAgICBzdWJzY3JpcHRpb24gbm9kZQorCisgICAgKiB1cGRhdGUo Z2lkLCBzaWQsIGRpZCwgc3ViaWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUg dGhlIGRhdGEgZm9yIHRoZSBzZWxlY3RlZCBzdWJzY3JpcHRpb24gbm9kZQorCisgICAgKiBjcmVh dGUoZ2lkLCBzaWQsIGRpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSB0aGUg bmV3IHN1YnNjcmlwdGlvbiBub2RlCisKKyAgICAqIGRlbGV0ZShnaWQsIHNpZCwgZGlkLCBzdWJp ZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSB0aGUgc2VsZWN0ZWQgc3Vic2Ny aXB0aW9uIG5vZGUKKworICAgICogbXNxbChnaWQsIHNpZCwgZGlkLCBzdWJpZCkKKyAgICAgIC0g VGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHJldHVybiBtb2RpZmllZCBTUUwgZm9yIHRoZSBzZWxl Y3RlZAorICAgICAgc3Vic2NyaXB0aW9uIG5vZGUKKworICAgICogZ2V0X3NxbChkYXRhLCBzdWJp ZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlIHNxbCBmcm9tIG1vZGVsIGRh dGEKKworICAgICogZ2V0X3B1YmxpY2F0aW9ucyhnaWQsIHNpZCwgZGlkKQorICAgICAgLSBUaGlz IGZ1bmN0aW9uIHJldHVybnMgdGhlIHB1YmxpY2F0aW9ucyBsaXN0CisKKyAgICAqIGdldF90ZW1w bGF0ZXMoZ2lkLCBzaWQsIGRpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiByZXR1cm5zIHN1YnNj cmlwdGlvbiB0ZW1wbGF0ZXMuCisKKyAgICAqIHNxbChnaWQsIHNpZCwgZGlkLCBzdWJpZCk6Cisg ICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBzcWwgdG8gc2hvdyBpdCBpbiBzcWwg cGFuZSBmb3IgdGhlCisgICAgICBzZWxlY3RlZCBzdWJzY3JpcHRpb24gbm9kZS4KKworICAgICog ZGVwZW5kZW50cyhnaWQsIHNpZCwgZGlkLCBzdWJpZCk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24g Z2V0IHRoZSBkZXBlbmRlbnRzIGFuZCByZXR1cm4gYWpheCByZXNwb25zZSBmb3IgdGhlCisgICAg ICBzdWJzY3JpcHRpb24gbm9kZS4KKworICAgICogZGVwZW5kZW5jaWVzKHNlbGYsIGdpZCwgc2lk LCBkaWQsIHN1YmlkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVuY2ll cyBhbmQgcmV0dXJuIGFqYXggcmVzcG9uc2UgZm9yIHRoZQorICAgICAgc3Vic2NyaXB0aW9uIG5v ZGUuCisgICAgIiIiCisKKyAgICBfTk9UX0ZPVU5EX1BVQl9JTkZPUk1BVElPTiA9IFwKKyAgICAg ICAgZ2V0dGV4dCgiQ291bGQgbm90IGZpbmQgdGhlIHN1YnNjcmlwdGlvbiBpbmZvcm1hdGlvbi4i KQorICAgIG5vZGVfdHlwZSA9IGJsdWVwcmludC5ub2RlX3R5cGUKKworICAgIHBhcmVudF9pZHMg PSBbCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZ2lkJ30sCisgICAgICAgIHsndHlw ZSc6ICdpbnQnLCAnaWQnOiAnc2lkJ30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAn ZGlkJ30KKyAgICBdCisgICAgaWRzID0gWworICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzog J3N1YmlkJ30KKyAgICBdCisKKyAgICBvcGVyYXRpb25zID0gZGljdCh7CisgICAgICAgICdvYmon OiBbCisgICAgICAgICAgICB7J2dldCc6ICdwcm9wZXJ0aWVzJywgJ2RlbGV0ZSc6ICdkZWxldGUn LCAncHV0JzogJ3VwZGF0ZSd9LAorICAgICAgICAgICAgeydnZXQnOiAnbGlzdCcsICdwb3N0Jzog J2NyZWF0ZScsICdkZWxldGUnOiAnZGVsZXRlJ30KKyAgICAgICAgXSwKKyAgICAgICAgJ25vZGVz JzogW3snZ2V0JzogJ25vZGUnfSwgeydnZXQnOiAnbm9kZXMnfV0sCisgICAgICAgICdzcWwnOiBb eydnZXQnOiAnc3FsJ31dLAorICAgICAgICAnbXNxbCc6IFt7J2dldCc6ICdtc3FsJ30sIHsnZ2V0 JzogJ21zcWwnfV0sCisgICAgICAgICdzdGF0cyc6IFt7J2dldCc6ICdzdGF0aXN0aWNzJ31dLAor ICAgICAgICAnZGVwZW5kZW5jeSc6IFt7J2dldCc6ICdkZXBlbmRlbmNpZXMnfV0sCisgICAgICAg ICdkZXBlbmRlbnQnOiBbeydnZXQnOiAnZGVwZW5kZW50cyd9XSwKKyAgICAgICAgJ2dldF9wdWJs aWNhdGlvbnMnOiBbe30sIHsnZ2V0JzogJ2dldF9wdWJsaWNhdGlvbnMnfV0sCisgICAgICAgICdn ZXRfdGVtcGxhdGVzJzogW3t9LCB7J2dldCc6ICdnZXRfdGVtcGxhdGVzJ31dLAorICAgICAgICAn ZGVsZXRlJzogW3snZGVsZXRlJzogJ2RlbGV0ZSd9LCB7J2RlbGV0ZSc6ICdkZWxldGUnfV0KKyAg ICB9KQorCisgICAgZGVmIF9pbml0XyhzZWxmLCAqKmt3YXJncyk6CisgICAgICAgICIiIgorICAg ICAgICBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSBTdWJzY3JpcHRpb25WaWV3IGFu ZCBpdHMgYmFzZSB2aWV3LgorICAgICAgICBJbml0aWFsaXplIGFsbCB0aGUgdmFyaWFibGVzIGNy ZWF0ZS91c2VkIGR5bmFtaWNhbGx5IGxpa2UgY29ubiwKKyAgICAgICAgdGVtcGxhdGVfcGF0aC4K KworICAgICAgICBBcmdzOgorICAgICAgICAgICAgKiprd2FyZ3M6CisgICAgICAgICIiIgorICAg ICAgICBzZWxmLmNvbm4gPSBOb25lCisgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9IE5vbmUK KyAgICAgICAgc2VsZi5tYW5hZ2VyID0gTm9uZQorCisgICAgICAgIHN1cGVyKFN1YnNjcmlwdGlv blZpZXcsIHNlbGYpLl9faW5pdF9fKCoqa3dhcmdzKQorCisgICAgZGVmIGNoZWNrX3ByZWNvbmRp dGlvbihmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUg YXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVjayB0aGUKKyAgICAgICAgZGF0YWJhc2UgY29u bmVjdGlvbiBiZWZvcmUgcnVubmluZyB0aGUgdmlldy4gSXQgYWxzbyBhdHRhY2hlcworICAgICAg ICBtYW5hZ2VyLCBjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKyAgICAg ICAgIiIiCisKKyAgICAgICAgQHdyYXBzKGYpCisgICAgICAgIGRlZiB3cmFwKCphcmdzLCAqKmt3 YXJncyk6CisgICAgICAgICAgICAjIEhlcmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJn cyB3aWxsIGhvbGQgZ2lkLHNpZCxkaWQKKyAgICAgICAgICAgIHNlbGYgPSBhcmdzWzBdCisgICAg ICAgICAgICBzZWxmLmRyaXZlciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIpCisgICAg ICAgICAgICBzZWxmLm1hbmFnZXIgPSBzZWxmLmRyaXZlci5jb25uZWN0aW9uX21hbmFnZXIoa3dh cmdzWydzaWQnXSkKKyAgICAgICAgICAgIHNlbGYuY29ubiA9IHNlbGYubWFuYWdlci5jb25uZWN0 aW9uKGRpZD1rd2FyZ3NbJ2RpZCddKQorICAgICAgICAgICAgc2VsZi5kYXRsYXN0c3lzb2lkID0g c2VsZi5tYW5hZ2VyLmRiX2luZm9ba3dhcmdzWydkaWQnXV1bCisgICAgICAgICAgICAgICAgJ2Rh dGxhc3RzeXNvaWQnXSBpZiBzZWxmLm1hbmFnZXIuZGJfaW5mbyBpcyBub3QgTm9uZSBcCisgICAg ICAgICAgICAgICAgYW5kIGt3YXJnc1snZGlkJ10gaW4gc2VsZi5tYW5hZ2VyLmRiX2luZm8gZWxz ZSAwCisKKyAgICAgICAgICAgICMgU2V0IHRoZSB0ZW1wbGF0ZSBwYXRoIGZvciB0aGUgU1FMIHNj cmlwdHMKKyAgICAgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9ICgKKyAgICAgICAgICAgICAg ICAic3Vic2NyaXB0aW9ucy9zcWwvI2dwZGIjezB9IyIuZm9ybWF0KHNlbGYubWFuYWdlci52ZXJz aW9uKSBpZgorICAgICAgICAgICAgICAgIHNlbGYubWFuYWdlci5zZXJ2ZXJfdHlwZSA9PSAnZ3Bk YicgZWxzZQorICAgICAgICAgICAgICAgICJzdWJzY3JpcHRpb25zL3NxbC8jezB9IyIuZm9ybWF0 KHNlbGYubWFuYWdlci52ZXJzaW9uKQorICAgICAgICAgICAgKQorCisgICAgICAgICAgICByZXR1 cm4gZigqYXJncywgKiprd2FyZ3MpCisKKyAgICAgICAgcmV0dXJuIHdyYXAKKworICAgIEBjaGVj a19wcmVjb25kaXRpb24KKyAgICBkZWYgbGlzdChzZWxmLCBnaWQsIHNpZCwgZGlkKToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBsaXN0IGFsbCB0aGUgc3Vi c2NyaXB0aW9uIG5vZGVzIHdpdGhpbiB0aGF0CisgICAgICAgIGNvbGxlY3Rpb24uCisKKyAgICAg ICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBz aWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAiIiIK KyAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3Bh dGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fUFJPUEVS VElFU19TUUxdKSwgZGlkPWRpZCkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9kaWN0KHNxbCkKKworICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgIHJldHVybiBh amF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9uc2U9cmVzWydyb3dzJ10sCisgICAgICAg ICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAg ICBkZWYgbm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCk6CisgICAgICAgICIiIgorICAgICAgICBU aGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hpbGQgbm9kZXMgd2l0aGlu IHRoZQorICAgICAgICBjb2xsZWN0aW9uLiBIZXJlIGl0IHdpbGwgY3JlYXRlIGFsbCB0aGUgc3Vi c2NyaXB0aW9uIG5vZGVzLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZl ciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDog RGF0YWJhc2UgSUQKKyAgICAgICAgIiIiCisgICAgICAgIHJlcyA9IFtdCisgICAgICAgIHNxbCA9 IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub2Rlcy5zcWwnXSksIGRpZD1kaWQpCisg ICAgICAgIHN0YXR1cywgcmVzdWx0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShzcWwpCisg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXJlc3VsdCkKKworICAgICAgICBmb3Igcm93IGluIHJlc3VsdFsncm93 cyddOgorICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICBzZWxmLmJsdWVw cmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAgIHJvd1snb2lk J10sCisgICAgICAgICAgICAgICAgICAgIGRpZCwKKyAgICAgICAgICAgICAgICAgICAgcm93Wydu YW1lJ10sCisgICAgICAgICAgICAgICAgICAgIGljb249Imljb24tc3Vic2NyaXB0aW9uIgorICAg ICAgICAgICAgICAgICkpCisKKyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAg ICAgICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisK KyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIG5vZGUoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgc3ViaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNo IHByb3BlcnRpZXMgb2YgdGhlIHN1YnNjcmlwdGlvbiBub2Rlcy4KKworICAgICAgICBBcmdzOgor ICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVy IElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICBzdWJpZDogU3Vi c2NyaXB0aW9uIElECisgICAgICAgICIiIgorICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUo Ii8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLl9QUk9QRVJUSUVTX1NRTF0pLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3ViaWQ9c3ViaWQpCisgICAgICAgIHN0YXR1cywgcmVzdWx0ID0gc2VsZi5j b25uLmV4ZWN1dGVfMmRhcnJheShzcWwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlc3VsdCkKKworICAg ICAgICBmb3Igcm93IGluIHJlc3VsdFsncm93cyddOgorICAgICAgICAgICAgcmV0dXJuIG1ha2Vf anNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBkYXRhPXNlbGYuYmx1ZXByaW50LmdlbmVy YXRlX2Jyb3dzZXJfbm9kZSgKKyAgICAgICAgICAgICAgICAgICAgcm93WydvaWQnXSwKKyAgICAg ICAgICAgICAgICAgICAgZGlkLAorICAgICAgICAgICAgICAgICAgICByb3dbJ25hbWUnXSwKKyAg ICAgICAgICAgICAgICAgICAgaWNvbj0iaWNvbi1zdWJzY3JpcHRpb24iCisgICAgICAgICAgICAg ICAgKSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICApCisKKyAgICAg ICAgcmV0dXJuIGdvbmUoZ2V0dGV4dCgiQ291bGQgbm90IGZpbmQgdGhlIHNwZWNpZmllZCBzdWJz Y3JpcHRpb24uIikpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHByb3BlcnRp ZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc3ViaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhp cyBmdW5jdGlvbiB3aWxsIHNob3cgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNlbGVjdGVkIHN1YnNj cmlwdGlvbgorICAgICAgICBub2RlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6 IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAg IGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgIHN1YmlkOiBTdWJzY3JpcHRpb24gSUQKKyAg ICAgICAgIiIiCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5fZmV0Y2hfcHJvcGVydGllcyhk aWQsIHN1YmlkKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4g cmVzCisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25z ZT1yZXMsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAgIGRlZiBfZmV0 Y2hfcHJvcGVydGllcyhzZWxmLCBkaWQsIHN1YmlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRo aXMgZnVuY3Rpb24gZmV0Y2ggdGhlIHByb3BlcnRpZXMgb2YgdGhlIGV4dGVuc2lvbi4KKyAgICAg ICAgOnBhcmFtIGRpZDoKKyAgICAgICAgOnBhcmFtIHN1YmlkOgorICAgICAgICA6cmV0dXJuOgor ICAgICAgICAiIiIKKyAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAg Ii8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgc2VsZi5fUFJPUEVSVElFU19TUUxdKSwKKyAg ICAgICAgICAgIHN1YmlkPXN1YmlkLCBkaWQ9ZGlkLAorICAgICAgICApCisgICAgICAgIHN0YXR1 cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwpCisKKyAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKKworICAgICAgICBpZiBsZW4ocmVzWydyb3dzJ10pID09IDA6CisgICAgICAg ICAgICByZXR1cm4gRmFsc2UsIGdvbmUoc2VsZi5fTk9UX0ZPVU5EX1BVQl9JTkZPUk1BVElPTikK KworICAgICAgICByZXR1cm4gVHJ1ZSwgcmVzWydyb3dzJ11bMF0KKworICAgIEBjaGVja19wcmVj b25kaXRpb24KKyAgICBkZWYgdXBkYXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHN1YmlkKToKKyAg ICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGRhdGEgZm9y IHRoZSBzZWxlY3RlZCBzdWJzY3JpcHRpb24gbm9kZS4KKworICAgICAgICBBcmdzOgorICAgICAg ICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisg ICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICBzdWJpZDogU3Vic2NyaXB0 aW9uIElECisgICAgICAgICIiIgorICAgICAgICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVl c3QuZm9ybSBlbHNlIGpzb24ubG9hZHMoCisgICAgICAgICAgICByZXF1ZXN0LmRhdGEsIGVuY29k aW5nPSd1dGYtOCcKKyAgICAgICAgKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmICdw dWInIGluIGRhdGE6CisgICAgICAgICAgICAgICAgZGF0YVsncHViJ10gPSBqc29uLmxvYWRzKAor ICAgICAgICAgICAgICAgICAgICBkYXRhWydwdWInXSwgZW5jb2Rpbmc9J3V0Zi04JworICAgICAg ICAgICAgICAgICkKKyAgICAgICAgICAgIHNxbCwgbmFtZSA9IHNlbGYuZ2V0X3NxbChkYXRhLCBz dWJpZCkKKyAgICAgICAgICAgICMgTW9zdCBwcm9iYWJseSB0aGlzIGlzIGR1ZSB0byBlcnJvcgor ICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc3FsLCBzdHIpOgorICAgICAgICAgICAgICAg IHJldHVybiBzcWwKKyAgICAgICAgICAgIHNxbCA9IHNxbC5zdHJpcCgnXG4nKS5zdHJpcCgnICcp CisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQor ICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgcmV0dXJuIGpzb25p ZnkoCisgICAgICAgICAgICAgICAgbm9kZT1zZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2Vy X25vZGUoCisgICAgICAgICAgICAgICAgICAgIHN1YmlkLAorICAgICAgICAgICAgICAgICAgICBk aWQsCisgICAgICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgICAgIGljb249 Imljb24tJXMiICUgc2VsZi5ub2RlX3R5cGUKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAg ICApCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNv bmRpdGlvbgorICAgIGRlZiBjcmVhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCk6CisgICAgICAgICIi IgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlIHRoZSBzdWJzY3JpcHRpb24gb2Jq ZWN0CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisg ICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAor ICAgICAgICAiIiIKKyAgICAgICAgcmVxdWlyZWRfYXJncyA9IFsKKyAgICAgICAgICAgICduYW1l JworICAgICAgICBdCisKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZv cm0gZWxzZSBqc29uLmxvYWRzKAorICAgICAgICAgICAgcmVxdWVzdC5kYXRhLCBlbmNvZGluZz0n dXRmLTgnCisgICAgICAgICkKKyAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9hcmdzOgorICAg ICAgICAgICAgaWYgYXJnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgIHJldHVybiBtYWtl X2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz00MTAsCisgICAgICAg ICAgICAgICAgICAgIHN1Y2Nlc3M9MCwKKyAgICAgICAgICAgICAgICAgICAgZXJyb3Jtc2c9Z2V0 dGV4dCgKKyAgICAgICAgICAgICAgICAgICAgICAgICJDb3VsZCBub3QgZmluZCB0aGUgcmVxdWly ZWQgcGFyYW1ldGVyICh7fSkuIgorICAgICAgICAgICAgICAgICAgICApLmZvcm1hdChhcmcpCisg ICAgICAgICAgICAgICAgKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGRhdGFbJ3B1Yidd ID0ganNvbi5sb2FkcygKKyAgICAgICAgICAgICAgICBkYXRhWydwdWInXSwgZW5jb2Rpbmc9J3V0 Zi04JworICAgICAgICAgICAgKQorCisgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUo Ii8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5fQ1JFQVRFX1NRTF0pLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgY29ubj1zZWxmLmNvbm4pCisgICAgICAgICAgICBz dGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAg ICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdnZXRfcG9zaXRpb24u c3FsJ10pLAorICAgICAgICAgICAgICAgIGNvbm49c2VsZi5jb25uLCBzdWJuYW1lPWRhdGFbJ25h bWUnXQorICAgICAgICAgICAgKQorCisgICAgICAgICAgICBzdGF0dXMsIHJfc2V0ID0gc2VsZi5j b25uLmV4ZWN1dGVfZGljdChzcWwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cl9zZXQpCisK KyAgICAgICAgICAgIHJldHVybiBqc29uaWZ5KAorICAgICAgICAgICAgICAgIG5vZGU9c2VsZi5i bHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAgICAgICAgICAgICAgICByX3Nl dFsncm93cyddWzBdWydvaWQnXSwKKyAgICAgICAgICAgICAgICAgICAgZGlkLAorICAgICAgICAg ICAgICAgICAgICByX3NldFsncm93cyddWzBdWyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAg IGljb249J2ljb24tc3Vic2NyaXB0aW9uJworICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAg ICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVj b25kaXRpb24KKyAgICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHN1YmlkPU5vbmUp OgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGRyb3AgdGhlIHN1YnNj cmlwdGlvbiBvYmplY3QKKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIg R3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERh dGFiYXNlIElECisgICAgICAgICAgICBzdWJpZDogU3Vic2NyaXB0aW9uIElECisgICAgICAgICAg ICBvbmx5X3NxbDoKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHN1YmlkIGlzIE5vbmU6CisgICAg ICAgICAgICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNlIGpzb24ubG9h ZHMoCisgICAgICAgICAgICAgICAgcmVxdWVzdC5kYXRhLCBlbmNvZGluZz0ndXRmLTgnCisgICAg ICAgICAgICApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBkYXRhID0geydpZHMnOiBbc3Vi aWRdfQorCisgICAgICAgIGNhc2NhZGUgPSBzZWxmLl9jaGVja19jYXNjYWRlX29wZXJhdGlvbigp CisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZm9yIHN1YmlkIGluIGRhdGFbJ2lkcyddOgor ICAgICAgICAgICAgICAgICMgR2V0IG5hbWUgZm9yIHN1YnNjcmlwdGlvbiBmcm9tIHN1YmlkCisg ICAgICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAg ICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCBzZWxmLl9ERUxFVEVfU1FMXSksCisgICAg ICAgICAgICAgICAgICAgIHN1YmlkPXN1YmlkLCBjb25uPXNlbGYuY29ubgorICAgICAgICAgICAg ICAgICkKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHN1Ym5hbWUgPSBzZWxmLmNvbm4uZXhlY3V0 ZV9zY2FsYXIoc3FsKQorCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdWJuYW1l KQorCisgICAgICAgICAgICAgICAgIyBkcm9wIHN1YnNjcmlwdGlvbgorICAgICAgICAgICAgICAg IHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgIi8iLmpvaW4oW3Nl bGYudGVtcGxhdGVfcGF0aCwgc2VsZi5fREVMRVRFX1NRTF0pLAorICAgICAgICAgICAgICAgICAg ICBzdWJuYW1lPXN1Ym5hbWUsIGNhc2NhZGU9Y2FzY2FkZSwgY29ubj1zZWxmLmNvbm4KKyAgICAg ICAgICAgICAgICApCisKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5l eGVjdXRlX3NjYWxhcihzcWwpCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMp CisKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAg ICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgIGluZm89Z2V0dGV4dCgiU3Vic2NyaXB0aW9u IGRyb3BwZWQiKQorICAgICAgICAgICAgKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMg ZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3Ry KGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBtc3FsKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHN1YmlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlv biBpcyB1c2VkIHRvIHJldHVybiBtb2RpZmllZCBTUUwgZm9yIHRoZSBzZWxlY3RlZAorICAgICAg ICBzdWJzY3JpcHRpb24gbm9kZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBT ZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBk aWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICBzdWJpZDogU3Vic2NyaXB0aW9uIElECisgICAg ICAgICIiIgorICAgICAgICBkYXRhID0ge30KKyAgICAgICAgZm9yIGssIHYgaW4gcmVxdWVzdC5h cmdzLml0ZW1zKCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgIyBjb21tZW50 cyBzaG91bGQgYmUgdGFrZW4gYXMgaXMgYmVjYXVzZSBpZiB1c2VyIGVudGVycyBhCisgICAgICAg ICAgICAgICAgIyBqc29uIGNvbW1lbnQgaXQgaXMgcGFyc2VkIGJ5IGxvYWRzIHdoaWNoIHNob3Vs ZCBub3QgaGFwcGVuCisgICAgICAgICAgICAgICAgaWYgayBpbiAoJ2Rlc2NyaXB0aW9uJywpOgor ICAgICAgICAgICAgICAgICAgICBkYXRhW2tdID0gdgorICAgICAgICAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgICAgICAgIGRhdGFba10gPSBqc29uLmxvYWRzKHYsIGVuY29kaW5nPSd1dGYt OCcpCisgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICBkYXRh W2tdID0gdgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzcWwsIG5hbWUgPSBzZWxmLmdldF9z cWwoZGF0YSwgc3ViaWQpCisgICAgICAgICAgICAjIE1vc3QgcHJvYmFibHkgdGhpcyBpcyBkdWUg dG8gZXJyb3IKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHNxbCwgc3RyKToKKyAgICAg ICAgICAgICAgICByZXR1cm4gc3FsCisgICAgICAgICAgICBpZiBzcWwgPT0gJyc6CisgICAgICAg ICAgICAgICAgc3FsID0gIi0tbW9kaWZpZWQgU1FMIgorCisgICAgICAgICAgICByZXR1cm4gbWFr ZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIGRhdGE9c3FsLAorICAgICAgICAgICAg ICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh cyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1z dHIoZSkpCisKKyAgICBkZWYgZ2V0X2RldGFpbHMoc2VsZiwgZGF0YSwgb2xkX2RhdGEpOgorICAg ICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSByZXF1aXJlZCBkYXRh IHRvIGNyZWF0ZSBzdWJzY3JpcHRpb24KKyAgICAgICAgOnBhcmFtIGRhdGE6CisgICAgICAgIDpy ZXR1cm46CisKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVpcmVkX2FyZ3MgPSBbJ25hbWUnXQor CisgICAgICAgIHJlcXVpcmVkX2Nvbm5lY3Rpb25fYXJncyA9IFsnaG9zdCcsICdwb3J0JywgJ3Vz ZXJuYW1lJywgJ2RiJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZXJ2 aWNlJywgJ3Bhc3NmaWxlJ10KKyAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9hcmdzOgorICAg ICAgICAgICAgaWYgYXJnIG5vdCBpbiBkYXRhIGFuZCBhcmcgaW4gb2xkX2RhdGE6CisgICAgICAg ICAgICAgICAgZGF0YVthcmddID0gb2xkX2RhdGFbYXJnXQorCisgICAgICAgIGZvciBhcmcgaW4g cmVxdWlyZWRfY29ubmVjdGlvbl9hcmdzOgorICAgICAgICAgICAgaWYgYXJnIG5vdCBpbiBkYXRh IGFuZCBhcmcgaW4gb2xkX2RhdGE6CisgICAgICAgICAgICAgICAgZGF0YVthcmddID0gb2xkX2Rh dGFbYXJnXQorCisgICAgICAgIHJldHVybiBkYXRhCisKKyAgICBkZWYgZ2V0X3NxbChzZWxmLCBk YXRhLCBzdWJpZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2ls bCBnZW5lcmF0ZSBzcWwgZnJvbSBtb2RlbCBkYXRhLgorCisgICAgICAgIEFyZ3M6CisgICAgICAg ICAgICBkYXRhOiBDb250YWlucyB0aGUgZGF0YSBvZiB0aGUgc2VsZWN0ZWQgc3Vic2NyaXB0aW9u IG5vZGUuCisgICAgICAgICAgICBzdWJpZDogU3Vic2NyaXB0aW9uIElECisgICAgICAgICIiIgor CisgICAgICAgIHJlcXVpcmVkX2FyZ3MgPSBbJ25hbWUnXQorCisgICAgICAgIHJlcXVpcmVkX2Nv bm5lY3Rpb25fYXJncyA9IFsnaG9zdCcsICdwb3J0JywgJ3VzZXJuYW1lJywgJ2RiJywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZXJ2aWNlJywgJ3Bhc3NmaWxlJ10KKwor ICAgICAgICBpZiBzdWJpZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90 ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCBz ZWxmLl9QUk9QRVJUSUVTX1NRTF0pLAorICAgICAgICAgICAgICAgIHN1YmlkPXN1YmlkCisgICAg ICAgICAgICApCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2Rp Y3Qoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgaWYg bGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAgICAgICAgICAgIHJldHVybiBnb25lKHNlbGYu X05PVF9GT1VORF9QVUJfSU5GT1JNQVRJT04pCisKKyAgICAgICAgICAgIG9sZF9kYXRhID0gcmVz Wydyb3dzJ11bMF0KKyAgICAgICAgICAgIGZvciBhcmcgaW4gcmVxdWlyZWRfYXJnczoKKyAgICAg ICAgICAgICAgICBpZiBhcmcgbm90IGluIGRhdGE6CisgICAgICAgICAgICAgICAgICAgIGRhdGFb YXJnXSA9IG9sZF9kYXRhW2FyZ10KKworICAgICAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9j b25uZWN0aW9uX2FyZ3M6CisgICAgICAgICAgICAgICAgaWYgYXJnIGluIGRhdGE6CisgICAgICAg ICAgICAgICAgICAgIG9sZF9kYXRhW2FyZ10gPSBkYXRhW2FyZ10KKworICAgICAgICAgICAgc3Fs ID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBs YXRlX3BhdGgsIHNlbGYuX1VQREFURV9TUUxdKSwKKyAgICAgICAgICAgICAgICBkYXRhPWRhdGEs IG9fZGF0YT1vbGRfZGF0YSwgY29ubj1zZWxmLmNvbm4KKyAgICAgICAgICAgICkKKyAgICAgICAg ICAgIHJldHVybiBzcWwuc3RyaXAoJ1xuJyksIGRhdGFbJ25hbWUnXSBpZiAnbmFtZScgaW4gZGF0 YSBcCisgICAgICAgICAgICAgICAgZWxzZSBvbGRfZGF0YVsnbmFtZSddCisgICAgICAgIGVsc2U6 CisKKyAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1w bGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLl9DUkVBVEVfU1FMXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YT1kYXRhLCBjb25uPXNlbGYuY29ubikKKyAgICAgICAgICAgIHJldHVybiBzcWwuc3RyaXAoJ1xu JyksIGRhdGFbJ25hbWUnXQorCisgICAgZGVmIGdldF9jb25uZWN0aW9uKHNlbGYsIGNvbm5lY3Rp b25fZGV0YWlscyk6CisKKyAgICAgICAgcGFzc2ZpbGUgPSBcCisgICAgICAgICAgICBjb25uZWN0 aW9uX2RldGFpbHNbJ3Bhc3NmaWxlJ10gaWYgJ3Bhc3NmaWxlJyBcCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gY29ubmVjdGlvbl9kZXRhaWxzIGFuZCBc CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlv bl9kZXRhaWxzWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAncGFzc2ZpbGUnXSAhPSAnJyBlbHNlIE5vbmUKKworICAgICAgICBzZXJ2aWNlID0gXAor ICAgICAgICAgICAgY29ubmVjdGlvbl9kZXRhaWxzWydzZXJ2aWNlJ10gaWYgJ3NlcnZpY2UnIGlu IGNvbm5lY3Rpb25fZGV0YWlscyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhbmQgY29ubmVjdGlvbl9kZXRhaWxzWydzZXJ2aWNlJ11cCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhPSAnJyBlbHNlIE5vbmUKKworICAg ICAgICBjb25uID0gcHN5Y29wZzIuY29ubmVjdCgKKyAgICAgICAgICAgIGhvc3Q9Y29ubmVjdGlv bl9kZXRhaWxzWydob3N0J10gaWYgbm90IHNlcnZpY2UgZWxzZSBOb25lLAorICAgICAgICAgICAg ZGF0YWJhc2U9Y29ubmVjdGlvbl9kZXRhaWxzWydkYiddLAorICAgICAgICAgICAgdXNlcj1jb25u ZWN0aW9uX2RldGFpbHNbJ3VzZXJuYW1lJ10gaWYgbm90IHNlcnZpY2UgZWxzZSBOb25lLAorICAg ICAgICAgICAgcGFzc3dvcmQ9Y29ubmVjdGlvbl9kZXRhaWxzWydwYXNzd29yZCddIGlmIG5vdCBz ZXJ2aWNlIGVsc2UgTm9uZSwKKyAgICAgICAgICAgIHBvcnQ9Y29ubmVjdGlvbl9kZXRhaWxzWydw b3J0J10gaWYgbm90IHNlcnZpY2UgZWxzZSBOb25lLAorICAgICAgICAgICAgcGFzc2ZpbGU9Z2V0 X2NvbXBsZXRlX2ZpbGVfcGF0aChwYXNzZmlsZSksCisgICAgICAgICAgICBzZXJ2aWNlPXNlcnZp Y2UKKyAgICAgICAgKQorICAgICAgICAjIGNyZWF0ZSBhIGN1cnNvcgorICAgICAgICBjdXIgPSBj b25uLmN1cnNvcigpCisgICAgICAgIGN1ci5leGVjdXRlKCdTRUxFQ1QgcHVibmFtZSBmcm9tIHBn X3B1YmxpY2F0aW9uJykKKworICAgICAgICBwdWJsaWNhdGlvbnMgPSBjdXIuZmV0Y2hhbGwoKQor ICAgICAgICAjIENsb3NlIHRoZSBjb25uZWN0aW9uCisgICAgICAgIGNvbm4uY2xvc2UoKQorCisg ICAgICAgIHJldHVybiBwdWJsaWNhdGlvbnMKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAg ICBkZWYgZ2V0X3B1YmxpY2F0aW9ucyhzZWxmLCBnaWQsIHNpZCwgZGlkLCAqYXJncywgKiprd2Fy Z3MpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBwdWJs aWNhdGlvbiBsaXN0CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdy b3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRh YmFzZSBJRAorICAgICAgICAiIiIKKworICAgICAgICB1cmxfcGFyYW1zID0gTm9uZQorICAgICAg ICBpZiByZXF1ZXN0LmFyZ3M6CisgICAgICAgICAgICB1cmxfcGFyYW1zID0ge2s6IHYgZm9yIGss IHYgaW4gcmVxdWVzdC5hcmdzLml0ZW1zKCl9CisKKyAgICAgICAgaWYgJ29pZCcgaW4gdXJsX3Bh cmFtczoKKyAgICAgICAgICAgIHN0YXR1cywgcGFyYW1zID0gc2VsZi5fZmV0Y2hfcHJvcGVydGll cyhkaWQsIHVybF9wYXJhbXNbJ29pZCddKQorICAgICAgICAgICAgcGFyYW1zWydwYXNzd29yZCdd ID0gdXJsX3BhcmFtc1sncGFzc3dvcmQnXQorICAgICAgICAgICAgdXJsX3BhcmFtcyA9IHBhcmFt cworCisgICAgICAgIHJlcyA9IHNlbGYuZ2V0X2Nvbm5lY3Rpb24odXJsX3BhcmFtcykKKworICAg ICAgICByZXN1bHQgPSBbXQorICAgICAgICBmb3IgcHViIGluIHJlczoKKyAgICAgICAgICAgIHJl c3VsdC5hcHBlbmQoeworICAgICAgICAgICAgICAgICJ2YWx1ZSI6IHB1YlswXSwKKyAgICAgICAg ICAgICAgICAibGFiZWwiOiBwdWJbMF0KKyAgICAgICAgICAgIH0pCisKKyAgICAgICAgcmV0dXJu IG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgIGRhdGE9cmVzdWx0LAorICAgICAgICAg ICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAg ZGVmIHNxbChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzdWJpZCwganNvbl9yZXNwPVRydWUpOgorICAg ICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlIHNxbCB0byBzaG93 IGluIHRoZSBzcWwgcGFuZSBmb3IgdGhlCisgICAgICAgIHNlbGVjdGVkIHB1YmxpY2F0aW9uIG5v ZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisg ICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAor ICAgICAgICAgICAgc3ViaWQ6IFB1YmxpY2F0aW9uIElECisgICAgICAgICAgICBqc29uX3Jlc3A6 CisgICAgICAgICIiIgorICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAg ICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCBzZWxmLl9QUk9QRVJUSUVTX1NRTF0pLAor ICAgICAgICAgICAgc3ViaWQ9c3ViaWQKKyAgICAgICAgKQorICAgICAgICBzdGF0dXMsIHJlcyA9 IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAg ICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAgICAgICAgcmV0dXJuIGdvbmUo c2VsZi5fTk9UX0ZPVU5EX1BVQl9JTkZPUk1BVElPTikKKworICAgICAgICAjIE1ha2luZyBjb3B5 IG9mIG91dHB1dCBmb3IgZnV0dXJlIHVzZQorICAgICAgICBvbGRfZGF0YSA9IGRpY3QocmVzWydy b3dzJ11bMF0pCisgICAgICAgIGlmIG9sZF9kYXRhWydzbG90X25hbWUnXSBpcyBOb25lIGFuZCAn Y3JlYXRlX3Nsb3QnIG5vdCBpbiBvbGRfZGF0YToKKyAgICAgICAgICAgIG9sZF9kYXRhWydjcmVh dGVfc2xvdCddID0gRmFsc2UKKworICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLl9DUkVBVEVfU1FMXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYXRhPW9sZF9kYXRhLCBjb25uPXNlbGYuY29ubikKKyAgICAgICAgc3FsICs9ICJcblxuIgor CisgICAgICAgIHNxbF9oZWFkZXIgPSAiLS0gU3Vic2NyaXB0aW9uIDoge307Ii5mb3JtYXQob2xk X2RhdGFbJ25hbWUnXSkKKyAgICAgICAgc3FsX2hlYWRlciArPSAiXG4iCisKKyAgICAgICAgc3Fs X2hlYWRlciArPSAiLS0gRFJPUCBTVUJTQ1JJUFRJT04ge307Ii5mb3JtYXQob2xkX2RhdGFbJ25h bWUnXSkKKworICAgICAgICBzcWxfaGVhZGVyICs9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAg ICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsIHNlbGYuX0RFTEVURV9TUUxdKSwKKyAg ICAgICAgICAgIHNuYW1lPW9sZF9kYXRhWyduYW1lJ10sICkKKworICAgICAgICBzcWxfaGVhZGVy ICs9ICJcbiIKKworICAgICAgICBzcWwgPSBzcWxfaGVhZGVyICsgc3FsCisKKyAgICAgICAgaWYg bm90IGpzb25fcmVzcDoKKyAgICAgICAgICAgIHJldHVybiBzcWwKKworICAgICAgICByZXR1cm4g YWpheF9yZXNwb25zZShyZXNwb25zZT1zcWwpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisg ICAgZGVmIGRlcGVuZGVudHMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc3ViaWQpOgorICAgICAgICAi IiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBnZXRzIHRoZSBkZXBlbmRlbnRzIGFuZCByZXR1cm5z IGFuIGFqYXggcmVzcG9uc2UKKyAgICAgICAgZm9yIHRoZSBzdWJzY3JpcHRpb24gbm9kZS4KKwor ICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAg ICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAg ICAgICBzdWJpZDogU3Vic2NyaXB0aW9uIElECisgICAgICAgICIiIgorICAgICAgICBkZXBlbmRl bnRzX3Jlc3VsdCA9IHNlbGYuZ2V0X2RlcGVuZGVudHMoc2VsZi5jb25uLCBzdWJpZCkKKyAgICAg ICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZT1kZXBlbmRlbnRz X3Jlc3VsdCwKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZXBlbmRlbmNpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwg c3ViaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBnZXRzIHRoZSBkZXBl bmRlbmNpZXMgYW5kIHJldHVybnMgYW4gYWpheCByZXNwb25zZQorICAgICAgICBmb3IgdGhlIHN1 YnNjcmlwdGlvbiBub2RlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZl ciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDog RGF0YWJhc2UgSUQKKyAgICAgICAgICAgIHN1YmlkOiBTdWJzY3JpcHRpb24gSUQKKyAgICAgICAg IiIiCisgICAgICAgIGRlcGVuZGVuY2llc19yZXN1bHQgPSBzZWxmLmdldF9kZXBlbmRlbmNpZXMo c2VsZi5jb25uLCBzdWJpZCkKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAg ICAgICByZXNwb25zZT1kZXBlbmRlbmNpZXNfcmVzdWx0LAorICAgICAgICAgICAgc3RhdHVzPTIw MAorICAgICAgICApCisKKworU3Vic2NyaXB0aW9uVmlldy5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1 ZXByaW50KQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvc3RhdGljL2ltZy9jb2xsLXB1YmxpY2F0aW9u LnN2ZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zdWJzY3JpcHRpb25zL3N0YXRpYy9pbWcvY29sbC1wdWJsaWNhdGlvbi5zdmcKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5jYzk0NjkxOWIKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vi c2NyaXB0aW9ucy9zdGF0aWMvaW1nL2NvbGwtcHVibGljYXRpb24uc3ZnCkBAIC0wLDAgKzEsMjIg QEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIEdlbmVyYXRv cjogQWRvYmUgSWxsdXN0cmF0b3IgMjQuMC4xLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVy c2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEi IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93 d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgorCSB2aWV3Qm94PSIwIDAgMTYg MTYiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDE2IDE2OyIgeG1sOnNwYWNlPSJw cmVzZXJ2ZSI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCS5zdDB7ZmlsbDojRERFMUYwO3N0 cm9rZTojNEI1RkFEO3N0cm9rZS13aWR0aDowLjY1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9r ZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9CisJLnN0MXtmaWxsOiM0QjVG QUQ7fQorCS5zdDJ7ZmlsbDpub25lO3N0cm9rZTojNEI1RkFEO3N0cm9rZS13aWR0aDowLjY1O3N0 cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1p dDoxMDt9Cis8L3N0eWxlPgorPGc+CisJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEwLDEzYy0yLDIt NS4xLDItNy4xLDBzLTItNS4xLDAtNy4xQzQuNSw3LjUsOC41LDExLjUsMTAsMTN6Ii8+Cis8L2c+ Cis8Zz4KKwk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTEuOCwxMS4zYy0yLDItNS4xLDItNy4xLDBz LTItNS4xLDAtNy4xQzYuMiw1LjcsMTAuMiw5LjgsMTEuOCwxMS4zeiIvPgorPC9nPgorPHBhdGgg Y2xhc3M9InN0MSIgZD0iTTguNyw3LjhsMC44LTAuN2MwLjEsMC4xLDAuMywwLjEsMC40LDAuMWMw LjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMXMtMSwwLjQtMSwxYzAsMC4xLDAsMC4zLDAuMSwwLjRM OC4yLDcuMworCUw4LjcsNy44eiIvPgorPGc+CisJPHBhdGggY2xhc3M9InN0MiIgZD0iTTEwLjUs MS42YzIuMiwwLDQsMS44LDQsNCIvPgorCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xMC42LDMuNmMx LjEsMCwyLDAuOSwyLDIiLz4KKzwvZz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvc3Rh dGljL2ltZy9jb2xsLXN1YnNjcmlwdGlvbi5zdmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy9zdGF0aWMvaW1nL2NvbGwt c3Vic2NyaXB0aW9uLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmQx NGFkZmQzOQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3N0YXRpYy9pbWcvY29sbC1zdWJz Y3JpcHRpb24uc3ZnCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp bmc9InV0Zi04Ij8+Cis8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjQuMC4xLCBT VkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+Cis8c3Zn IHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAw L3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIg eT0iMHB4IgorCSB2aWV3Qm94PSIwIDAgMTYgMTYiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpu ZXcgMCAwIDE2IDE2OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+Cis8c3R5bGUgdHlwZT0idGV4dC9j c3MiPgorCS5zdDB7ZmlsbDojRkJFRURGO3N0cm9rZTojRTU4RTI2O3N0cm9rZS13aWR0aDowLjY1 O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJs aW1pdDoxMDt9CisJLnN0MXtmaWxsOiNFNThFMjY7fQorCS5zdDJ7ZmlsbDpub25lO3N0cm9rZToj RTU4RTI2O3N0cm9rZS13aWR0aDowLjY1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5l am9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9Cis8L3N0eWxlPgorPGc+CisJPGc+CisJ CTxnPgorCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTEyLjksNS43YzIsMiwyLDUuMSwwLDcuMXMt NS4xLDItNy4xLDBDNy4zLDExLjMsMTEuNCw3LjIsMTIuOSw1Ljd6Ii8+CisJCTwvZz4KKwk8L2c+ CisJPGc+CisJCTxnPgorCQkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTExLjQsNC4yYzIsMiwyLDUu MSwwLDcuMXMtNS4xLDItNy4xLDBDNS44LDkuOCw5LjksNS43LDExLjQsNC4yeiIvPgorCQk8L2c+ CisJCTxnPgorCQkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTcuOCw3LjNMNy4xLDYuNmMwLjEtMC4x LDAuMS0wLjMsMC4xLTAuNGMwLTAuNi0wLjQtMS0xLTFzLTEsMC40LTEsMXMwLjQsMSwxLDFjMC4x LDAsMC4zLDAsMC40LTAuMQorCQkJCWwwLjcsMC43Ii8+CisJCQk8Zz4KKwkJCQk8cGF0aCBjbGFz cz0ic3QyIiBkPSJNNS42LDEuN2MwLDIuMi0xLjgsNC00LDQiLz4KKwkJCQk8cGF0aCBjbGFzcz0i c3QyIiBkPSJNMy43LDEuOGMwLDEuMS0wLjksMi0yLDIiLz4KKwkJCTwvZz4KKwkJPC9nPgorCTwv Zz4KKzwvZz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvc3RhdGljL2ltZy9wdWJsaWNh dGlvbi5zdmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc3Vic2NyaXB0aW9ucy9zdGF0aWMvaW1nL3B1YmxpY2F0aW9uLnN2ZwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjNiNTgyY2Y1MQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJz Y3JpcHRpb25zL3N0YXRpYy9pbWcvcHVibGljYXRpb24uc3ZnCkBAIC0wLDAgKzEsMjIgQEAKKzw/ eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8IS0tIEdlbmVyYXRvcjogQWRv YmUgSWxsdXN0cmF0b3IgMjMuMC42LCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjog Ni4wMCBCdWlsZCAwKSAgLS0+Cis8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5z PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMu b3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgorCSB2aWV3Qm94PSIwIDAgMTYgMTYiIHN0 eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDE2IDE2OyIgeG1sOnNwYWNlPSJwcmVzZXJ2 ZSI+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorCS5zdDB7ZmlsbDojRERFMUYwO3N0cm9rZToj NEI1RkFEO3N0cm9rZS13aWR0aDowLjY1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5l am9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9CisJLnN0MXtmaWxsOiM0QjVGQUQ7fQor CS5zdDJ7ZmlsbDpub25lO3N0cm9rZTojNEI1RkFEO3N0cm9rZS13aWR0aDowLjY1O3N0cm9rZS1s aW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9 Cis8L3N0eWxlPgorPGc+CisJPGc+CisJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMSwxMmMtMiwy LTUuMSwyLTcuMSwwcy0yLTUuMSwwLTcuMUM1LjQsNi40LDkuNSwxMC41LDExLDEyeiIvPgorCTwv Zz4KKwk8Zz4KKwkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTcuOSw4LjZsMC43LTAuN0M4LjcsOCw4 LjksOCw5LDhjMC42LDAsMS0wLjQsMS0xUzkuNiw2LDksNlM4LDYuNCw4LDdjMCwwLjEsMCwwLjMs MC4xLDAuNEw3LjQsOC4xIi8+CisJCTxnPgorCQkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTkuNiwy LjVjMi4yLDAsNCwxLjgsNCw0Ii8+CisJCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNOS43LDQuNGMx LjEsMCwyLDAuOSwyLDIiLz4KKwkJPC9nPgorCTwvZz4KKzwvZz4KKzwvc3ZnPgpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1 YnNjcmlwdGlvbnMvc3RhdGljL2ltZy9zdWJzY3JpcHRpb24uc3ZnIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvc3RhdGlj L2ltZy9zdWJzY3JpcHRpb24uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MC4uNjNhMTUzYzZkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvc3RhdGljL2ltZy9zdWJz Y3JpcHRpb24uc3ZnCkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp bmc9InV0Zi04Ij8+Cis8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjMuMC42LCBT VkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+Cis8c3Zn IHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAw L3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIg eT0iMHB4IgorCSB2aWV3Qm94PSIwIDAgMTYgMTYiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpu ZXcgMCAwIDE2IDE2OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+Cis8c3R5bGUgdHlwZT0idGV4dC9j c3MiPgorCS5zdDB7ZmlsbDojRkJFRURGO3N0cm9rZTojRTU4RTI2O3N0cm9rZS13aWR0aDowLjY1 O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJs aW1pdDoxMDt9CisJLnN0MXtmaWxsOiNFNThFMjY7fQorCS5zdDJ7ZmlsbDpub25lO3N0cm9rZToj RTU4RTI2O3N0cm9rZS13aWR0aDowLjY1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5l am9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoxMDt9Cis8L3N0eWxlPgorPGc+CisJPGc+CisJ CTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMi4yLDVjMiwyLDIsNS4xLDAsNy4xcy01LjEsMi03LjEs MEM2LjYsMTAuNiwxMC43LDYuNSwxMi4yLDV6Ii8+CisJPC9nPgorCTxnPgorCQk8cGF0aCBjbGFz cz0ic3QxIiBkPSJNOC42LDguMUw3LjksNy40QzgsNy4zLDgsNy4xLDgsN2MwLTAuNi0wLjQtMS0x LTFTNiw2LjQsNiw3czAuNCwxLDEsMWMwLjEsMCwwLjMsMCwwLjQtMC4xbDAuNywwLjciLz4KKwkJ PGc+CisJCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNNi40LDIuNWMwLDIuMi0xLjgsNC00LDQiLz4K KwkJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik00LjUsMi42YzAsMS4xLTAuOSwyLTIsMiIvPgorCQk8 L2c+CisJPC9nPgorPC9nPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy9zdGF0aWMvanMv c3Vic2NyaXB0aW9uLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvc3RhdGljL2pzL3N1YnNjcmlwdGlvbi5qcwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjAxM2RmNGY2NQotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zdWJzY3JpcHRpb25zL3N0YXRpYy9qcy9zdWJzY3JpcHRpb24uanMKQEAgLTAsMCArMSw0MDcg QEAKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8KKy8vCisvLyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisvLworLy8gQ29w eXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorLy8g VGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisv LworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8KKworZGVmaW5lKCdwZ2FkbWluLm5vZGUuc3Vic2NyaXB0aW9uJywgWworICAnc291 cmNlcy9nZXR0ZXh0JywgJ3NvdXJjZXMvdXJsX2ZvcicsICdqcXVlcnknLCAndW5kZXJzY29yZScs CisgICdzb3VyY2VzL3BnYWRtaW4nLCAncGdhZG1pbi5icm93c2VyJywgJ3BnYWRtaW4uYmFja2Zv cm0nLAorICAnc291cmNlcy9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9tb2RlbF92YWxp ZGF0aW9uJywgJ3BnYWRtaW4uYWxlcnRpZnlqcycsICdwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlv bicsCitdLCBmdW5jdGlvbihnZXR0ZXh0LCB1cmxfZm9yLCAkLCBfLCBwZ0FkbWluLCBwZ0Jyb3dz ZXIsIEJhY2tmb3JtLCBtb2RlbFZhbGlkYXRpb24sIEFsZXJ0aWZ5KSB7CisKKyAgLy8gRXh0ZW5k IHRoZSBicm93c2VyJ3MgY29sbGVjdGlvbiBjbGFzcyBmb3Igc3Vic2NyaXB0aW9ucyBjb2xsZWN0 aW9uCisgIGlmICghcGdCcm93c2VyLk5vZGVzWydjb2xsLXN1YnNjcmlwdGlvbiddKSB7CisgICAg cGdCcm93c2VyLk5vZGVzWydjb2xsLXN1YnNjcmlwdGlvbiddID0KKyAgICAgIHBnQnJvd3Nlci5D b2xsZWN0aW9uLmV4dGVuZCh7CisgICAgICAgIG5vZGU6ICdzdWJzY3JpcHRpb24nLAorICAgICAg ICBsYWJlbDogZ2V0dGV4dCgnU3Vic2NyaXB0aW9ucycpLAorICAgICAgICB0eXBlOiAnY29sbC1z dWJzY3JpcHRpb24nLAorICAgICAgICBjb2x1bW5zOiBbJ25hbWUnLCAnc3Vib3duZXInLCAncHVi JywgJ2VuYWJsZWQnXSwKKyAgICAgIH0pOworICB9CisKKyAgLy8gRXh0ZW5kIHRoZSBicm93c2Vy J3Mgbm9kZSBjbGFzcyBmb3Igc3Vic2NyaXB0aW9uIG5vZGUKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9k ZXNbJ3N1YnNjcmlwdGlvbiddKSB7CisgICAgcGdCcm93c2VyLk5vZGVzWydzdWJzY3JpcHRpb24n XSA9IHBnQnJvd3Nlci5Ob2RlLmV4dGVuZCh7CisgICAgICBwYXJlbnRfdHlwZTogJ2RhdGFiYXNl JywKKyAgICAgIHR5cGU6ICdzdWJzY3JpcHRpb24nLAorICAgICAgc3FsQWx0ZXJIZWxwOiAnc3Fs LWFsdGVyc3Vic2NyaXB0aW9uLmh0bWwnLAorICAgICAgc3FsQ3JlYXRlSGVscDogJ3NxbC1jcmVh dGVzdWJzY3JpcHRpb24uaHRtbCcsCisgICAgICBkaWFsb2dIZWxwOiB1cmxfZm9yKCdoZWxwLnN0 YXRpYycsIHsnZmlsZW5hbWUnOiAnc3Vic2NyaXB0aW9uX2RpYWxvZy5odG1sJ30pLAorICAgICAg bGFiZWw6IGdldHRleHQoJ1N1YnNjcmlwdGlvbicpLAorICAgICAgaGFzU1FMOiAgdHJ1ZSwKKyAg ICAgIGNhbkRyb3A6IHRydWUsCisgICAgICBjYW5Ecm9wQ2FzY2FkZTogdHJ1ZSwKKyAgICAgIGhh c0RlcGVuZHM6IHRydWUsCisgICAgICB3aWR0aDogJzUxMHB4JywKKyAgICAgIEluaXQ6IGZ1bmN0 aW9uKCkgeworCisgICAgICAgIC8vIEF2b2lkIG11bHRpcGxlIHJlZ2lzdHJhdGlvbiBvZiBtZW51 cworICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkKKyAgICAgICAgICByZXR1cm47CisKKyAg ICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7CisKKworICAgICAgICAvLyBBZGQgY29udGV4 dCBtZW51cyBmb3Igc3Vic2NyaXB0aW9uCisgICAgICAgIHBnQnJvd3Nlci5hZGRfbWVudXMoW3sK KyAgICAgICAgICBuYW1lOiAnY3JlYXRlX3N1YnNjcmlwdGlvbl9vbl9kYXRhYmFzZScsIG5vZGU6 ICdkYXRhYmFzZScsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcs ICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAg Y2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6IGdldHRleHQoJ1N1YnNjcmlw dGlvbi4uLicpLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1zdWJzY3JpcHRpb24n LCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJ30sCisgICAgICAgICAgZW5hYmxlOiBwZ0Jyb3dzZXIu Tm9kZXNbJ2RhdGFiYXNlJ10uY2FuQ3JlYXRlLAorICAgICAgICB9LHsKKyAgICAgICAgICBuYW1l OiAnY3JlYXRlX3N1YnNjcmlwdGlvbl9vbl9jb2xsJywgbm9kZTogJ2NvbGwtc3Vic2NyaXB0aW9u JywgbW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQn XSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTog J2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJlbDogZ2V0dGV4dCgnU3Vic2NyaXB0aW9uLi4uJyks CisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLXN1YnNjcmlwdGlvbicsIGRhdGE6IHth Y3Rpb246ICdjcmVhdGUnfSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUnLAorICAgICAg ICB9LHsKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX3N1YnNjcmlwdGlvbicsIG5vZGU6ICdzdWJz Y3JpcHRpb24nLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAn Y29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNh dGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiBnZXR0ZXh0KCdTdWJzY3JpcHRp b24uLi4nKSwKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tc3Vic2NyaXB0aW9uJywg ZGF0YToge2FjdGlvbjogJ2NyZWF0ZSd9LAorICAgICAgICAgIGVuYWJsZTogJ2NhbkNyZWF0ZScs CisgICAgICAgIH1dKTsKKyAgICAgIH0sCisgICAgICAvLyBEZWZpbmUgdGhlIG1vZGVsIGZvciBz dWJzY3JpcHRpb24gbm9kZQorICAgICAgbW9kZWw6IHBnQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVu ZCh7CisgICAgICAgIGlkQXR0cmlidXRlOiAnb2lkJywKKyAgICAgICAgZGVmYXVsdHM6IHsKKyAg ICAgICAgICBuYW1lOiB1bmRlZmluZWQsCisgICAgICAgICAgc3Vib3duZXI6IHVuZGVmaW5lZCwK KyAgICAgICAgICBwdWJ0YWJsZTogdW5kZWZpbmVkLAorICAgICAgICAgIHB1YjpbXSwKKyAgICAg ICAgICBlbmFibGVkOnRydWUsCisgICAgICAgICAgY3JlYXRlX3Nsb3Q6IHRydWUsCisgICAgICAg ICAgY29weV9kYXRhOnRydWUsCisgICAgICAgICAgY29ubmVjdDp0cnVlLAorICAgICAgICAgIHN5 bmM6J29mZicsCisgICAgICAgIH0sCisKKyAgICAgICAgLy8gRGVmYXVsdCB2YWx1ZXMhCisgICAg ICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGF0dHJzLCBhcmdzKSB7CisgICAgICAgICAgdmFyIGlz TmV3ID0gKF8uc2l6ZShhdHRycykgPT09IDApOworICAgICAgICAgIGlmIChpc05ldykgeworICAg ICAgICAgICAgdmFyIHVzZXJJbmZvID0gcGdCcm93c2VyLnNlcnZlckluZm9bYXJncy5ub2RlX2lu Zm8uc2VydmVyLl9pZF0udXNlcjsKKworICAgICAgICAgICAgdGhpcy5zZXQoeydzdWJvd25lcic6 IHVzZXJJbmZvLm5hbWV9LCB7c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgfQorICAgICAgICAg IHBnQnJvd3Nlci5Ob2RlLk1vZGVsLnByb3RvdHlwZS5pbml0aWFsaXplLmFwcGx5KHRoaXMsIGFy Z3VtZW50cyk7CisgICAgICAgIH0sCisKKyAgICAgICAgLy8gRGVmaW5lIHRoZSBzY2hlbWEgZm9y IHRoZSBzdWJzY3JpcHRpb24gbm9kZQorICAgICAgICBzY2hlbWE6IFt7CisgICAgICAgICAgaWQ6 ICduYW1lJywgbGFiZWw6IGdldHRleHQoJ05hbWUnKSwgdHlwZTogJ3RleHQnLAorICAgICAgICAg IG1vZGU6IFsncHJvcGVydGllcycsICdjcmVhdGUnLCAnZWRpdCddLAorICAgICAgICAgIHZpc2li bGU6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYoIV8uaXNVbmRlZmluZWQodGhpcy5ub2Rl X2luZm8pICYmICFfLmlzVW5kZWZpbmVkKHRoaXMubm9kZV9pbmZvLnNlcnZlcikKKyAgICAgICAg ICAgICAgJiYgIV8uaXNVbmRlZmluZWQodGhpcy5ub2RlX2luZm8uc2VydmVyLnZlcnNpb24pICYm CisgICAgICAgICAgICAgICAgdGhpcy5ub2RlX2luZm8uc2VydmVyLnZlcnNpb24gPj0gMTAwMDAw KSB7CisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAg ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgIH0sCisgICAgICAgIH0seworICAgICAgICAgIGlk OiAnb2lkJywgbGFiZWw6IGdldHRleHQoJ09JRCcpLCBjZWxsOiAnc3RyaW5nJywgbW9kZTogWydw cm9wZXJ0aWVzJ10sCisgICAgICAgICAgdHlwZTogJ3RleHQnLAorICAgICAgICB9LAorICAgICAg ICB7CisgICAgICAgICAgaWQ6ICdzdWJvd25lcicsIGxhYmVsOiBnZXR0ZXh0KCdPd25lcicpLCB0 eXBlOiAndGV4dCcsCisgICAgICAgICAgY29udHJvbDogQmFja2Zvcm0uTm9kZUxpc3RCeU5hbWVD b250cm9sLCBub2RlOiAncm9sZScsCisgICAgICAgICAgbW9kZTogWydlZGl0JywgJ3Byb3BlcnRp ZXMnLCAnY3JlYXRlJ10sIHNlbGVjdDI6IHsgYWxsb3dDbGVhcjogZmFsc2V9LAorICAgICAgICB9 LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdob3N0JywgbGFiZWw6IGdldHRleHQoJ0hvc3Qg bmFtZS9hZGRyZXNzJyksIHR5cGU6ICd0ZXh0JywgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24n KSwKKyAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSxkaXNh YmxlZDogJ2lzU2hhcmVkJywKKyAgICAgICAgICBjb250cm9sOiBCYWNrZm9ybS5JbnB1dENvbnRy b2wuZXh0ZW5kKHsKKyAgICAgICAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbigpIHsKKyAgICAgICAg ICAgICAgQmFja2Zvcm0uSW5wdXRDb250cm9sLnByb3RvdHlwZS5vbkNoYW5nZS5hcHBseSh0aGlz LCBhcmd1bWVudHMpOworICAgICAgICAgICAgICBpZiAoIXRoaXMubW9kZWwgfHwgIXRoaXMubW9k ZWwuY2hhbmdlZCkgeworICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuaW5mb3JtX3RleHQgPSB1 bmRlZmluZWQ7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICB9CisgICAg ICAgICAgICB9LAorICAgICAgICAgIH0pLAorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3Bv cnQnLCBsYWJlbDogZ2V0dGV4dCgnUG9ydCcpLCB0eXBlOiAnaW50JywgZ3JvdXA6IGdldHRleHQo J0Nvbm5lY3Rpb24nKSwKKyAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdj cmVhdGUnXSwgbWluOiAxLCBtYXg6IDY1NTM1LCBkaXNhYmxlZDogJ2lzU2hhcmVkJywKKyAgICAg ICAgICBjb250cm9sOiBCYWNrZm9ybS5JbnB1dENvbnRyb2wuZXh0ZW5kKHsKKyAgICAgICAgICAg IG9uQ2hhbmdlOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgQmFja2Zvcm0uSW5wdXRDb250 cm9sLnByb3RvdHlwZS5vbkNoYW5nZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworICAgICAgICAg ICAgICBpZiAoIXRoaXMubW9kZWwgfHwgIXRoaXMubW9kZWwuY2hhbmdlZCkgeworICAgICAgICAg ICAgICAgIHRoaXMubW9kZWwuaW5mb3JtX3RleHQgPSB1bmRlZmluZWQ7CisgICAgICAgICAgICAg ICAgcmV0dXJuOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgIH0p LAorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3VzZXJuYW1lJywgbGFiZWw6IGdldHRleHQo J1VzZXJuYW1lJyksIHR5cGU6ICd0ZXh0JywgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwK KyAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwKKyAgICAg ICAgICBjb250cm9sOiBCYWNrZm9ybS5JbnB1dENvbnRyb2wuZXh0ZW5kKHsKKyAgICAgICAgICAg IG9uQ2hhbmdlOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgQmFja2Zvcm0uSW5wdXRDb250 cm9sLnByb3RvdHlwZS5vbkNoYW5nZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworICAgICAgICAg ICAgICBpZiAoIXRoaXMubW9kZWwgfHwgIXRoaXMubW9kZWwuY2hhbmdlZCkgeworICAgICAgICAg ICAgICAgIHRoaXMubW9kZWwuaW5mb3JtX3RleHQgPSB1bmRlZmluZWQ7CisgICAgICAgICAgICAg ICAgcmV0dXJuOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgIH0p LAorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3Bhc3N3b3JkJywgbGFiZWw6IGdldHRleHQo J1Bhc3N3b3JkJyksIHR5cGU6ICdwYXNzd29yZCcsIG1heGxlbmd0aDogbnVsbCwKKyAgICAgICAg ICBncm91cDogZ2V0dGV4dCgnQ29ubmVjdGlvbicpLCBjb250cm9sOiAnaW5wdXQnLCBtb2RlOiBb J2NyZWF0ZScsICdlZGl0J10sIGRlcHM6IFsnY29ubmVjdF9ub3cnXSwKKyAgICAgICAgfSx7Cisg ICAgICAgICAgaWQ6ICdkYicsIGxhYmVsOiBnZXR0ZXh0KCdNYWludGVuYW5jZSBkYXRhYmFzZScp LCB0eXBlOiAndGV4dCcsIGdyb3VwOiBnZXR0ZXh0KCdDb25uZWN0aW9uJyksCisgICAgICAgICAg bW9kZTogWydwcm9wZXJ0aWVzJywgJ2VkaXQnLCAnY3JlYXRlJ10sCisgICAgICAgIH0seworICAg ICAgICAgIGlkOiAnc2VydmljZScsIGxhYmVsOiBnZXR0ZXh0KCdTZXJ2aWNlJyksIHR5cGU6ICd0 ZXh0JywKKyAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwK KyAgICAgICAgICBncm91cDogZ2V0dGV4dCgnQ29ubmVjdGlvbicpLAorICAgICAgICB9LAorICAg ICAgICB7CisgICAgICAgICAgaWQ6ICdwYXNzZmlsZScsIGxhYmVsOiBnZXR0ZXh0KCdQYXNzZmls ZScpLCB0eXBlOiAndGV4dCcsIGdyb3VwOiBnZXR0ZXh0KCdDb25uZWN0aW9uJyksCisgICAgICAg ICAgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2VkaXQnLCAnY3JlYXRlJ10sCisgICAgICAgIH0sCisg ICAgICAgIHsKKyAgICAgICAgICBpZDogJ3B1YicsIGxhYmVsOiBnZXR0ZXh0KCdQdWJsaWNhdGlv bicpLCB0eXBlOiAndGV4dCcsIGdyb3VwOiBnZXR0ZXh0KCdDb25uZWN0aW9uJyksCisgICAgICAg ICAgbW9kZTogWydwcm9wZXJ0aWVzJ10sCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg ICBpZDogJ2N1cl9wdWInLCBsYWJlbDogZ2V0dGV4dCgnQ3VycmVudCBwdWJsaWNhdGlvbicpLCB0 eXBlOiAndGV4dCcsIGdyb3VwOiBnZXR0ZXh0KCdDb25uZWN0aW9uJyksCisgICAgICAgICAgbW9k ZTogWydlZGl0J10sIGRpc2FibGVkOnRydWUsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg ICAgICBpZDogJ3B1YicsIGxhYmVsOiBnZXR0ZXh0KCdQdWJsaWNhdGlvbicpLCB0eXBlOiAnYXJy YXknLCBzZWxlY3QyOiB7IGFsbG93Q2xlYXI6IHRydWUsIG11bHRpcGxlOiB0cnVlLCB3aWR0aDog JzkxJSd9LAorICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdDb25uZWN0aW9uJyksIG1vZGU6IFsn Y3JlYXRlJywgJ2VkaXQnXSxjb250cm9sc0NsYXNzTmFtZTogJ3BnYWRtaW4tY29udHJvbHMgcGct ZWwtc20tMTEgcGctZWwtMTInLAorICAgICAgICAgIGRlcHM6IFsnYWxsX3RhYmxlJ10sCisgICAg ICAgICAgaGVscE1lc3NhZ2U6IGdldHRleHQoJ0NsaWNrcyBvbiB0aGUgYnV0dG9uIHRvIGdldCBQ dWJsaWNhdGlvbicpLAorICAgICAgICAgIGNvbnRyb2w6IEJhY2tmb3JtLlNlbGVjdDJDb250cm9s LmV4dGVuZCh7CisgICAgICAgICAgICBkZWZhdWx0czogXy5leHRlbmQoQmFja2Zvcm0uU2VsZWN0 MkNvbnRyb2wucHJvdG90eXBlLmRlZmF1bHRzLCB7CisgICAgICAgICAgICAgIHNlbGVjdDI6IHsK KyAgICAgICAgICAgICAgICBhbGxvd0NsZWFyOiB0cnVlLAorICAgICAgICAgICAgICAgIHNlbGVj dE9uQmx1cjogdHJ1ZSwKKyAgICAgICAgICAgICAgICB0YWdzOiB0cnVlLAorICAgICAgICAgICAg ICAgIHBsYWNlaG9sZGVyOiBnZXR0ZXh0KCdTZWxlY3QgYW4gaXRlbS4uLicpLAorICAgICAgICAg ICAgICAgIHdpZHRoOiAnc3R5bGUnLAorICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfSks CisgICAgICAgICAgICB0ZW1wbGF0ZTogXy50ZW1wbGF0ZShbCisgICAgICAgICAgICAgICc8bGFi ZWwgY2xhc3M9IjwlPUJhY2tmb3JtLmNvbnRyb2xMYWJlbENsYXNzTmFtZSU+IiBmb3I9IjwlPWNJ ZCU+Ij48JT1sYWJlbCU+PC9sYWJlbD4nLAorICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iPCU9 QmFja2Zvcm0uY29udHJvbHNDbGFzc05hbWUlPiI+JywKKyAgICAgICAgICAgICAgJzxkaXYgY2xh c3M9ImlucHV0LWdyb3VwIj4nLAorICAgICAgICAgICAgICAnIDxzZWxlY3QgdGl0bGU9IjwlPW5h bWUlPiIgaWQ9IjwlPWNJZCU+IiBjbGFzcz0iPCU9QmFja2Zvcm0uY29udHJvbENsYXNzTmFtZSU+ IDwlPWV4dHJhQ2xhc3Nlcy5qb2luKFwnIFwnKSU+IicsCisgICAgICAgICAgICAgICcgIG5hbWU9 IjwlPW5hbWUlPiIgdmFsdWU9IjwlLXZhbHVlJT4iIDwlPWRpc2FibGVkID8gImRpc2FibGVkIiA6 ICIiJT4gPCU9cmVhZG9ubHkgPyAiZGlzYWJsZWQiIDogIiIlPicsCisgICAgICAgICAgICAgICcg IDwlPXJlcXVpcmVkID8gInJlcXVpcmVkIiA6ICIiJT48JT0gc2VsZWN0Mi5tdWx0aXBsZSA/ICIg bXVsdGlwbGU+IiA6ICI+IiAlPicsCisgICAgICAgICAgICAgICcgIDwlPXNlbGVjdDIuZmlyc3Rf ZW1wdHkgPyAiIDxvcHRpb24+PC9vcHRpb24+IiA6ICIiJT4nLAorICAgICAgICAgICAgICAnICA8 JSBmb3IgKHZhciBpPTA7IGkgPCBvcHRpb25zLmxlbmd0aDsgaSsrKSB7JT4nLAorICAgICAgICAg ICAgICAnICAgPCUgdmFyIG9wdGlvbiA9IG9wdGlvbnNbaV07ICU+JywKKyAgICAgICAgICAgICAg JyAgIDxvcHRpb24gJywKKyAgICAgICAgICAgICAgJyAgICA8JSBpZiAob3B0aW9uLmltYWdlKSB7 ICU+IGRhdGEtaW1hZ2U9PCU9b3B0aW9uLmltYWdlJT4gPCV9JT4nLAorICAgICAgICAgICAgICAn ICAgIHZhbHVlPTwlLSBmb3JtYXR0ZXIuZnJvbVJhdyhvcHRpb24udmFsdWUpICU+JywKKyAgICAg ICAgICAgICAgJyAgICA8JSBpZiAob3B0aW9uLnNlbGVjdGVkKSB7JT5zZWxlY3RlZD0ic2VsZWN0 ZWQiPCV9IGVsc2UgeyU+JywKKyAgICAgICAgICAgICAgJyAgICA8JSBpZiAoIXNlbGVjdDIubXVs dGlwbGUgJiYgb3B0aW9uLnZhbHVlID09PSByYXdWYWx1ZSkgeyU+c2VsZWN0ZWQ9InNlbGVjdGVk IjwlfSU+JywKKyAgICAgICAgICAgICAgJyAgICA8JSBpZiAoc2VsZWN0Mi5tdWx0aXBsZSAmJiBy YXdWYWx1ZSAmJiByYXdWYWx1ZS5pbmRleE9mKG9wdGlvbi52YWx1ZSkgIT0gLTEpeyU+c2VsZWN0 ZWQ9InNlbGVjdGVkIiBkYXRhLWluZGV4PSJyYXdWYWx1ZS5pbmRleE9mKG9wdGlvbi52YWx1ZSki PCV9JT4nLAorICAgICAgICAgICAgICAnICAgIDwlfSU+JywKKyAgICAgICAgICAgICAgJyAgICA8 JT0gZGlzYWJsZWQgPyAiZGlzYWJsZWQiIDogIiIlPiA8JT1yZWFkb25seSA/ICJkaXNhYmxlZCIg OiAiIiU+PjwlLW9wdGlvbi5sYWJlbCU+PC9vcHRpb24+JywKKyAgICAgICAgICAgICAgJyAgPCV9 JT4nLAorICAgICAgICAgICAgICAnIDwvc2VsZWN0PicsCisgICAgICAgICAgICAgICc8ZGl2IGNs YXNzPSJpbnB1dC1ncm91cC1hcHBlbmQiPicsCisgICAgICAgICAgICAgICc8YnV0dG9uIGNsYXNz PSJidG4gYnRuLXByaW1hcnktaWNvbiBmYSBmYS1zeW5jIGdldF9wdWJsaWNhdGlvbiIgPCU9ZGlz YWJsZWQgPyAiZGlzYWJsZWQiIDogIiIlPiA8JT1yZWFkb25seSA/ICJkaXNhYmxlZCIgOiAiIiU+ IGFyaWEtaGlkZGVuPSJ0cnVlIiBhcmlhLWxhYmVsPSInICsgZ2V0dGV4dCgnR2V0IFB1YmxpY2F0 aW9uJykgKyAnIiB0aXRsZT0iJyArIGdldHRleHQoJ0dldCBQdWJsaWNhdGlvbicpICsgJyI+PC9i dXR0b24+JywKKyAgICAgICAgICAgICAgJzwvZGl2PicsCisgICAgICAgICAgICAgICc8L2Rpdj4n LAorICAgICAgICAgICAgICAnPCUgaWYgKGhlbHBNZXNzYWdlICYmIGhlbHBNZXNzYWdlLmxlbmd0 aCkgeyAlPicsCisgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz0iPCU9QmFja2Zvcm0uaGVscE1l c3NhZ2VDbGFzc05hbWUlPiI+PCU9aGVscE1lc3NhZ2UlPjwvc3Bhbj4nLAorICAgICAgICAgICAg ICAnPCUgfSAlPicsCisgICAgICAgICAgICAgICc8L2Rpdj4nLAorICAgICAgICAgICAgXS5qb2lu KCdcbicpKSwKKworICAgICAgICAgICAgZXZlbnRzOiAgXy5leHRlbmQoe30sIEJhY2tmb3JtLlNl bGVjdDJDb250cm9sLnByb3RvdHlwZS5ldmVudHMoKSwgeworICAgICAgICAgICAgICAnY2xpY2sg LmdldF9wdWJsaWNhdGlvbic6ICdnZXRQdWJsaWNhdGlvbicsCisgICAgICAgICAgICB9KSwKKwor ICAgICAgICAgICAgcmVuZGVyOiBmdW5jdGlvbigpeworICAgICAgICAgICAgICByZXR1cm4gQmFj a2Zvcm0uU2VsZWN0MkNvbnRyb2wucHJvdG90eXBlLnJlbmRlci5hcHBseSh0aGlzLCBhcmd1bWVu dHMpOworICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgZ2V0UHVibGljYXRpb246IGZ1bmN0 aW9uKCkgeworICAgICAgICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CisgICAgICAgICAgICAgIHZh ciBwdWJsaWNhdGlvbl91cmwgPSBwZ0Jyb3dzZXIuTm9kZXNbJ2RhdGFiYXNlJ10uZ2VuZXJhdGVf dXJsLmFwcGx5KAorICAgICAgICAgICAgICAgIHBnQnJvd3Nlci5Ob2Rlc1snc3Vic2NyaXB0aW9u J10sIFsKKyAgICAgICAgICAgICAgICAgIG51bGwsICdnZXRfcHVibGljYXRpb25zJywgdGhpcy5m aWVsZC5nZXQoJ25vZGVfZGF0YScpLCBudWxsLAorICAgICAgICAgICAgICAgICAgdGhpcy5maWVs ZC5nZXQoJ25vZGVfaW5mbycpLCBwZ0Jyb3dzZXIuTm9kZXNbJ2RhdGFiYXNlJ10udXJsX2p1bXBf YWZ0ZXJfbm9kZSwKKyAgICAgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgICAgdmFyIHJlc3Vs dCA9ICcnOworCisgICAgICAgICAgICAgICQuYWpheCh7CisgICAgICAgICAgICAgICAgdXJsOiBw dWJsaWNhdGlvbl91cmwsCisgICAgICAgICAgICAgICAgdHlwZTogJ0dFVCcsCisgICAgICAgICAg ICAgICAgZGF0YTogc2VsZi5tb2RlbC50b0pTT04odHJ1ZSwgJ0dFVCcpLAorICAgICAgICAgICAg ICAgIGRhdGFUeXBlOiAnanNvbicsCisgICAgICAgICAgICAgICAgY29udGVudFR5cGU6ICdhcHBs aWNhdGlvbi9qc29uJywKKyAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAuZG9uZShm dW5jdGlvbihyZXMpIHsKKyAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlcy5kYXRhOworICAg ICAgICAgICAgICAgICAgc2VsZi5maWVsZC5zZXQoJ29wdGlvbnMnLCByZXN1bHQpOworICAgICAg ICAgICAgICAgICAgQmFja2Zvcm0uU2VsZWN0MkNvbnRyb2wucHJvdG90eXBlLnJlbmRlci5hcHBs eShzZWxmLCBhcmd1bWVudHMpOworCisgICAgICAgICAgICAgICAgICB2YXIgdHJhbnNmb3JtID0g c2VsZi5maWVsZC5nZXQoJ3RyYW5zZm9ybScpIHx8IHNlbGYuZGVmYXVsdHMudHJhbnNmb3JtOwor ICAgICAgICAgICAgICAgICAgaWYgKHRyYW5zZm9ybSAmJiBfLmlzRnVuY3Rpb24odHJhbnNmb3Jt KSkgeworICAgICAgICAgICAgICAgICAgICBzZWxmLmZpZWxkLnNldCgnb3B0aW9ucycsIHRyYW5z Zm9ybS5iaW5kKHNlbGYsIHJlc3VsdCkpOworICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg ICAgICAgICAgICAgICAgICAgc2VsZi5maWVsZC5zZXQoJ29wdGlvbnMnLCByZXN1bHQpOworICAg ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAu ZmFpbChmdW5jdGlvbihyZXMpIHsKKyAgICAgICAgICAgICAgICAgIEFsZXJ0aWZ5LmFsZXJ0KAor ICAgICAgICAgICAgICAgICAgICBnZXR0ZXh0KCdDaGVjayBjb25uZWN0aW9uPycpLAorICAgICAg ICAgICAgICAgICAgICBnZXR0ZXh0KHJlcy5yZXNwb25zZUpTT04uZXJyb3Jtc2cpCisgICAgICAg ICAgICAgICAgICApOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSwKKyAgICAg ICAgICB9KSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnY29weV9kYXRh X2FmdGVyX3JlZnJlc2gnLCBsYWJlbDogZ2V0dGV4dCgnQ29weSBkYXRhJyksCisgICAgICAgICAg dHlwZTogJ3N3aXRjaCcsIG1vZGU6IFsnZWRpdCddLAorICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0 KCdXaXRoJyksCisgICAgICAgICAgZXh0cmFUb2dnbGVDbGFzc2VzOiAncGctZWwtc20tNicsCisg ICAgICAgICAgY29udHJvbExhYmVsQ2xhc3NOYW1lOiAnY29udHJvbC1sYWJlbCBwZy1lbC1zbS01 IHBnLWVsLTEyJywKKyAgICAgICAgICBjb250cm9sc0NsYXNzTmFtZTogJ3BnYWRtaW4tY29udHJv bHMgcGctZWwtc20tNyBwZy1lbC0xMicsCisgICAgICAgICAgcmVhZG9ubHk6ICdpc1JlZnJlc2gn LCBkZXBzIDpbJ3JlZnJlc2hfcHViJ10sCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg ICBpZDogJ2NvcHlfZGF0YScsIGxhYmVsOiBnZXR0ZXh0KCdDb3B5IGRhdGEnKSwKKyAgICAgICAg ICB0eXBlOiAnc3dpdGNoJywgbW9kZTogWydjcmVhdGUnXSwKKyAgICAgICAgICBncm91cDogZ2V0 dGV4dCgnV2l0aCcpLAorICAgICAgICAgIGV4dHJhVG9nZ2xlQ2xhc3NlczogJ3BnLWVsLXNtLTYn LAorICAgICAgICAgIGNvbnRyb2xMYWJlbENsYXNzTmFtZTogJ2NvbnRyb2wtbGFiZWwgcGctZWwt c20tNSBwZy1lbC0xMicsCisgICAgICAgICAgY29udHJvbHNDbGFzc05hbWU6ICdwZ2FkbWluLWNv bnRyb2xzIHBnLWVsLXNtLTcgcGctZWwtMTInLAorICAgICAgICAgIHJlYWRvbmx5OiAnaXNDb25u ZWN0JywgZGVwcyA6Wydjb25uZWN0J10sCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg ICBpZDogJ2NyZWF0ZV9zbG90JywgbGFiZWw6IGdldHRleHQoJ0NyZWF0ZSBzbG90JyksCisgICAg ICAgICAgdHlwZTogJ3N3aXRjaCcsIG1vZGU6IFsnY3JlYXRlJ10sCisgICAgICAgICAgZ3JvdXA6 IGdldHRleHQoJ1dpdGgnKSwKKyAgICAgICAgICBleHRyYVRvZ2dsZUNsYXNzZXM6ICdwZy1lbC1z bS02JywKKyAgICAgICAgICBjb250cm9sTGFiZWxDbGFzc05hbWU6ICdjb250cm9sLWxhYmVsIHBn LWVsLXNtLTUgcGctZWwtMTInLAorICAgICAgICAgIGNvbnRyb2xzQ2xhc3NOYW1lOiAncGdhZG1p bi1jb250cm9scyBwZy1lbC1zbS03IHBnLWVsLTEyJywKKyAgICAgICAgICBkaXNhYmxlZDogJ2lz RGlzYWJsZScsCisgICAgICAgICAgcmVhZG9ubHk6ICdpc0Nvbm5lY3QnLCBkZXBzIDpbJ2Nvbm5l Y3QnXSwKKworICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdlbmFibGVkJywg bGFiZWw6IGdldHRleHQoJ0VuYWJsZWQnKSwKKyAgICAgICAgICB0eXBlOiAnc3dpdGNoJywgbW9k ZTogWydjcmVhdGUnLCdlZGl0JywgJ3Byb3BlcnRpZXMnXSwKKyAgICAgICAgICBncm91cDogZ2V0 dGV4dCgnV2l0aCcpLAorICAgICAgICAgIGV4dHJhVG9nZ2xlQ2xhc3NlczogJ3BnLWVsLXNtLTYn LAorICAgICAgICAgIGNvbnRyb2xMYWJlbENsYXNzTmFtZTogJ2NvbnRyb2wtbGFiZWwgcGctZWwt c20tNSBwZy1lbC0xMicsCisgICAgICAgICAgY29udHJvbHNDbGFzc05hbWU6ICdwZ2FkbWluLWNv bnRyb2xzIHBnLWVsLXNtLTcgcGctZWwtMTInLAorICAgICAgICAgIHJlYWRvbmx5OiAnaXNDb25u ZWN0JywgZGVwcyA6Wydjb25uZWN0J10sCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg ICBpZDogJ3JlZnJlc2hfcHViJywgbGFiZWw6IGdldHRleHQoJ1JlZnJlc2ggcHVibGljYXRpb24n KSwKKyAgICAgICAgICB0eXBlOiAnc3dpdGNoJywgbW9kZTogWydlZGl0J10sCisgICAgICAgICAg Z3JvdXA6IGdldHRleHQoJ1dpdGgnKSwKKyAgICAgICAgICBleHRyYVRvZ2dsZUNsYXNzZXM6ICdw Zy1lbC1zbS02JywKKyAgICAgICAgICBjb250cm9sTGFiZWxDbGFzc05hbWU6ICdjb250cm9sLWxh YmVsIHBnLWVsLXNtLTUgcGctZWwtMTInLAorICAgICAgICAgIGNvbnRyb2xzQ2xhc3NOYW1lOiAn cGdhZG1pbi1jb250cm9scyBwZy1lbC1zbS03IHBnLWVsLTEyJywKKyAgICAgICAgfSx7CisgICAg ICAgICAgaWQ6ICdjb25uZWN0JywgbGFiZWw6IGdldHRleHQoJ0Nvbm5lY3QnKSwKKyAgICAgICAg ICB0eXBlOiAnc3dpdGNoJywgbW9kZTogWydjcmVhdGUnXSwKKyAgICAgICAgICBncm91cDogZ2V0 dGV4dCgnV2l0aCcpLAorICAgICAgICAgIGV4dHJhVG9nZ2xlQ2xhc3NlczogJ3BnLWVsLXNtLTYn LAorICAgICAgICAgIGNvbnRyb2xMYWJlbENsYXNzTmFtZTogJ2NvbnRyb2wtbGFiZWwgcGctZWwt c20tNSBwZy1lbC0xMicsCisgICAgICAgICAgY29udHJvbHNDbGFzc05hbWU6ICdwZ2FkbWluLWNv bnRyb2xzIHBnLWVsLXNtLTcgcGctZWwtMTInLAorICAgICAgICAgIGRpc2FibGVkOiAnaXNEaXNh YmxlJywgZGVwczpbJ2VuYWJsZWQnLCAnY3JlYXRlX3Nsb3QnLCAnY29weV9kYXRhJ10sCisgICAg ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ3Nsb3RfbmFtZScsIGxhYmVsOiBnZXR0 ZXh0KCdTbG90IG5hbWUnKSwKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIG1vZGU6IFsnY3JlYXRl JywnZWRpdCcsICdwcm9wZXJ0aWVzJ10sCisgICAgICAgICAgZ3JvdXA6IGdldHRleHQoJ1dpdGgn KSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnc3luYycsIGxhYmVsOiBn ZXR0ZXh0KCdTeW5jaHJvbm91cyBjb21taXQnKSwgY29udHJvbDogJ3NlbGVjdDInLCBkZXBzOlsn ZXZlbnQnXSwKKyAgICAgICAgICBncm91cDogZ2V0dGV4dCgnV2l0aCcpLCB0eXBlOiAndGV4dCcs CisgICAgICAgICAgc2VsZWN0MjogeworICAgICAgICAgICAgd2lkdGg6ICcxMDAlJywKKyAgICAg ICAgICAgIGFsbG93Q2xlYXI6IGZhbHNlLAorICAgICAgICAgIH0sCisgICAgICAgICAgb3B0aW9u czpbCisgICAgICAgICAgICB7bGFiZWw6ICdsb2NhbCcsIHZhbHVlOiAnbG9jYWwnfSwKKyAgICAg ICAgICAgIHtsYWJlbDogJ3JlbW90ZV93cml0ZScsIHZhbHVlOiAncmVtb3RlX3dyaXRlJ30sCisg ICAgICAgICAgICB7bGFiZWw6ICdyZW1vdGVfYXBwbHknLCB2YWx1ZTogJ3JlbW90ZV9hcHBseSd9 LAorICAgICAgICAgICAge2xhYmVsOiAnb24nLCB2YWx1ZTogJ29uJ30sCisgICAgICAgICAgICB7 bGFiZWw6ICdvZmYnLCB2YWx1ZTogJ29mZid9LAorICAgICAgICAgIF0sCisgICAgICAgIH0sCisg ICAgICAgIF0sCisgICAgICAgIGlzU2hhcmVkOiBmdW5jdGlvbigpeworICAgICAgICAgIHJldHVy biBmYWxzZTsKKyAgICAgICAgfSwKKyAgICAgICAgaXNEaXNhYmxlOmZ1bmN0aW9uKG0peworICAg ICAgICAgIGlmIChtLmlzTmV3KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg ICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0sCisKKyAgICAgICAgaXNDb25uZWN0OiBmdW5jdGlv bihtKXsKKyAgICAgICAgICBpZighbS5nZXQoJ2Nvbm5lY3QnKSl7CisgICAgICAgICAgICBzZXRU aW1lb3V0KCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgbS5zZXQoJ2NvcHlfZGF0YScsIGZh bHNlKTsKKyAgICAgICAgICAgICAgbS5zZXQoJ2NyZWF0ZV9zbG90JywgZmFsc2UpOworICAgICAg ICAgICAgICBtLnNldCgnZW5hYmxlZCcsIGZhbHNlKTsKKyAgICAgICAgICAgIH0sIDEwKTsKKyAg ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgIH0KKyAgICAgICAgICByZXR1cm4gZmFs c2U7CisgICAgICAgIH0sCisgICAgICAgIGlzUmVmcmVzaDogZnVuY3Rpb24obSl7CisgICAgICAg ICAgaWYgKCFtLmdldCgncmVmcmVzaF9wdWInKSB8fCBfLmlzVW5kZWZpbmVkKG0uZ2V0KCdyZWZy ZXNoX3B1YicpKSl7CisgICAgICAgICAgICBzZXRUaW1lb3V0KCBmdW5jdGlvbigpIHsKKyAgICAg ICAgICAgICAgbS5zZXQoJ2NvcHlfZGF0YV9hZnRlcl9yZWZyZXNoJywgZmFsc2UpOworICAgICAg ICAgICAgfSwgMTApOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgfQorICAg ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSwKKyAgICAgICAgLyogdmFsaWRhdGUgZnVu Y3Rpb24gaXMgdXNlZCB0byB2YWxpZGF0ZSB0aGUgaW5wdXQgZ2l2ZW4gYnkKKyAgICAgICAgICog dGhlIHVzZXIuIEluIGNhc2Ugb2YgZXJyb3IsIG1lc3NhZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQgb24K KyAgICAgICAgICogdGhlIEdVSSBmb3IgdGhlIHJlc3BlY3RpdmUgY29udHJvbC4KKyAgICAgICAg ICovCisgICAgICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICB2YXIgbXNnOwor ICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5jbGVhcigpOworICAgICAgICAgIHZhciBuYW1lID0g dGhpcy5nZXQoJ25hbWUnKTsKKworICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKG5hbWUpIHx8 IF8uaXNOdWxsKG5hbWUpIHx8CisgICAgICAgICAgICBTdHJpbmcobmFtZSkucmVwbGFjZSgvXlxz K3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgbXNnID0gZ2V0dGV4dCgnTmFtZSBj YW5ub3QgYmUgZW1wdHkuJyk7CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCduYW1l JywgbXNnKTsKKyAgICAgICAgICAgIHJldHVybiBtc2c7CisgICAgICAgICAgfQorCisgICAgICAg ICAgY29uc3QgdmFsaWRhdGVNb2RlbCA9IG5ldyBtb2RlbFZhbGlkYXRpb24uTW9kZWxWYWxpZGF0 aW9uKHRoaXMpOworICAgICAgICAgIHJldHVybiB2YWxpZGF0ZU1vZGVsLnZhbGlkYXRlKCk7Cisg ICAgICAgIH0sCisgICAgICAgIGNhbkNyZWF0ZTogZnVuY3Rpb24oaXRlbURhdGEsIGl0ZW0pIHsK KyAgICAgICAgICB2YXIgdHJlZURhdGEgPSB0aGlzLmdldFRyZWVOb2RlSGllcmFyY2h5KGl0ZW0p LAorICAgICAgICAgICAgc2VydmVyID0gdHJlZURhdGFbJ3NlcnZlciddOworCisgICAgICAgICAg Ly8gSWYgc2VydmVyIGlzIGxlc3MgdGhhbiAxMCB0aGVuIGRvIG5vdCBhbGxvdyAnY3JlYXRlJyBt ZW51CisgICAgICAgICAgaWYgKHNlcnZlciAmJiBzZXJ2ZXIudmVyc2lvbiA8IDEwMDAwMCkKKyAg ICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgIC8vIGJ5IGRlZmF1bHQgd2Ugd2Fu dCB0byBhbGxvdyBjcmVhdGUgbWVudQorICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9 LAorCisgICAgICB9KSwKKyAgICB9KTsKKyAgfQorICByZXR1cm4gcGdCcm93c2VyLk5vZGVzWydj b2xsLXN1YnNjcmlwdGlvbiddOworfSk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0ZXMv c3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVsdC9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVtcGxhdGVz L3N1YnNjcmlwdGlvbnMvc3FsL2RlZmF1bHQvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAuLmZlYzJjNTU4YgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25z L3RlbXBsYXRlcy9zdWJzY3JpcHRpb25zL3NxbC9kZWZhdWx0L2NyZWF0ZS5zcWwKQEAgLTAsMCAr MSwyNCBAQAoreyUgaWYgZGF0YS5jb3B5X2RhdGEgaXMgZGVmaW5lZCBvciBkYXRhLmNyZWF0ZV9z bG90IGlzIGRlZmluZWQgb3IgZGF0YS5zbG90X25hbWUgaXMgZGVmaW5lZCBvciBkYXRhLnN5bmMg aXMgZGVmaW5lZCAlfQoreyUgc2V0IGFkZF9zZW1pY29sb25fYWZ0ZXJfZW5hYmxlZCA9ICdlbmFi bGVkJyAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuY3JlYXRlX3Nsb3QgaXMgZGVmaW5lZCBv ciBkYXRhLnNsb3RfbmFtZSBpcyBkZWZpbmVkICV9Cit7JSBzZXQgYWRkX3NlbWljb2xvbl9hZnRl cl9jb3B5X2RhdGEgPSAnY29weV9kYXRhJyAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuc2xv dF9uYW1lIGlzIGRlZmluZWQgb3IgZGF0YS5zeW5jIGlzIGRlZmluZWQgJX0KK3slIHNldCBhZGRf c2VtaWNvbG9uX2FmdGVyX2NyZWF0ZV9zbG90ID0gJ2NyZWF0ZV9zbG90JyAlfQoreyUgZW5kaWYg JX0KK3slIGlmIGRhdGEuc3luYyBpcyBkZWZpbmVkICV9Cit7JSBzZXQgYWRkX3NlbWljb2xvbl9h ZnRlcl9zbG90X25hbWUgPSAnc2xvdF9uYW1lJyAlfQoreyUgZW5kaWYgJX0KKworQ1JFQVRFIFNV QlNDUklQVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fQoreyUgaWYgZGF0YS5ob3N0 IG9yIGRhdGEucG9ydCBvciBkYXRhLnVzZXJuYW1lIG9yIGRhdGEucGFzc3dvcmQgIG9yIGRhdGEu ZGIgJX0KK0NPTk5FQ1RJT04gJyB7JSBpZiBkYXRhLmhvc3QgJX1ob3N0PXt7IGRhdGEuaG9zdH19 IHslIGVuZGlmICV9eyUgaWYgZGF0YS5wb3J0ICV9cG9ydD17eyBkYXRhLnBvcnQgfX0geyUgZW5k aWYgJX17JSBpZiBkYXRhLnVzZXJuYW1lICV9dXNlcj17eyBkYXRhLnVzZXJuYW1lIH19IHslIGVu ZGlmICV9eyUgaWYgZGF0YS5kYiAlfWRibmFtZT17eyBkYXRhLmRiIH19IHslIGVuZGlmICV9eyUg aWYgZGF0YS5zZXJ2aWNlICV9c2VydmljZT17eyBkYXRhLnNlcnZpY2UgfX0geyUgZW5kaWYgJX17 JSBpZiBkYXRhLnBhc3NmaWxlICV9cGFzc2ZpbGU9e3sgZGF0YS5wYXNzZmlsZSB9fSB7JSBlbmRp ZiAlfXslIGlmIGRhdGEucGFzc3dvcmQgJX1wYXNzd29yZD17eyBkYXRhLnBhc3N3b3JkfX17JSBl bmRpZiAlfScKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLnB1YiAlfQorUFVCTElDQVRJT04geyUg Zm9yIHB1YiBpbiBkYXRhLnB1YiAlfXslIGlmIGxvb3AuaW5kZXggIT0gMSAlfSx7JSBlbmRpZiAl fXt7IGNvbm58cXRJZGVudChwdWIpIH19eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQorCit3aXRo ICh7JSBpZiBkYXRhLmNvbm5lY3QgaXMgZGVmaW5lZCAlfWNvbm5lY3QgPSB7eyBkYXRhLmNvbm5l Y3R9fSwgeyUgZW5kaWYgJX1lbmFibGVkID0ge3sgZGF0YS5lbmFibGVkfX0sIHslIGlmIGRhdGEu Y29weV9kYXRhICV9Y29weV9kYXRhID0ge3sgZGF0YS5jb3B5X2RhdGF9fXslIGlmIGFkZF9zZW1p Y29sb25fYWZ0ZXJfY29weV9kYXRhID09ICdjb3B5X2RhdGEnICV9LHslIGVuZGlmICV9eyUgZW5k aWYgJX0KK3slIGlmIGRhdGEuY3JlYXRlX3Nsb3QgaXMgZGVmaW5lZCAlfSBjcmVhdGVfc2xvdCA9 IHt7IGRhdGEuY3JlYXRlX3Nsb3QgfX17JSBpZiBhZGRfc2VtaWNvbG9uX2FmdGVyX2NyZWF0ZV9z bG90ID09ICdjcmVhdGVfc2xvdCcgJX0seyUgZW5kaWYgJX17JSBlbmRpZiAlfQoreyUgaWYgZGF0 YS5zbG90X25hbWUgaXMgZGVmaW5lZCAgYW5kIGRhdGEuc2xvdF9uYW1lICE9ICcnJX0gc2xvdF9u YW1lID0ge3sgZGF0YS5zbG90X25hbWUgfX17JSBpZiBhZGRfc2VtaWNvbG9uX2FmdGVyX3Nsb3Rf bmFtZSA9PSAnc2xvdF9uYW1lJyAlfSx7JSBlbmRpZiAlfXslIGVuZGlmICV9eyUgaWYgZGF0YS5z eW5jICV9IHN5bmNocm9ub3VzX2NvbW1pdCA9ICd7eyBkYXRhLnN5bmMgfX0neyUgZW5kaWYgJX0p OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVtcGxhdGVzL3N1YnNjcmlwdGlvbnMvc3FsL2RlZmF1 bHQvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3RlbXBsYXRlcy9zdWJzY3JpcHRpb25zL3NxbC9kZWZh dWx0L2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4zMzk0 MmZhOTkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9u cy9zcWwvZGVmYXVsdC9kZWxldGUuc3FsCkBAIC0wLDAgKzEsOCBAQAoreyMgPT09PT09PT09PT09 PSBHZXQgdGhlIHN1YnNjcmlwdGlvbiBuYW1lIHVzaW5nIG9pZCA9PT09PT09PT09PT09ICN9Cit7 JSBpZiBzdWJpZCAlfQorICAgIFNFTEVDVCBzdWJuYW1lIEZST00gcGdfc3Vic2NyaXB0aW9uIFdI RVJFIG9pZCA9IHt7c3ViaWR9fTo6b2lkOworeyUgZW5kaWYgJX0KK3sjID09PT09PT09PT09PT0g RHJvcCB0aGUgbGFuZ3VhZ2UgPT09PT09PT09PT09PSAjfQoreyUgaWYgc3VibmFtZSAlfQorRFJP UCBTVUJTQ1JJUFRJT04ge3sgY29ubnxxdElkZW50KHN1Ym5hbWUpIH19eyUgaWYgY2FzY2FkZSAl fSBDQVNDQURFeyUgZW5kaWYlfTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90 ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVsdC9nZXRfcG9zaXRpb24uc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlw dGlvbnMvdGVtcGxhdGVzL3N1YnNjcmlwdGlvbnMvc3FsL2RlZmF1bHQvZ2V0X3Bvc2l0aW9uLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjQ2YWFjMTE4MQotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zdWJzY3JpcHRpb25zL3RlbXBsYXRlcy9zdWJzY3JpcHRpb25zL3NxbC9kZWZhdWx0 L2dldF9wb3NpdGlvbi5zcWwKQEAgLTAsMCArMSBAQAorc2VsZWN0IG9pZCwgc3VibmFtZSBhcyBu YW1lIGZyb20gcGdfc3Vic2NyaXB0aW9uIHdoZXJlIHN1Ym5hbWUgPSAne3sgc3VibmFtZSB9fSc7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVs dC9ub2Rlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVs dC9ub2Rlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4xMGY4NDE3 NDMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9z cWwvZGVmYXVsdC9ub2Rlcy5zcWwKQEAgLTAsMCArMSw3IEBACitzZWxlY3Qgb2lkLCBzdWIuc3Vi bmFtZSBhcyBuYW1lIGZyb20gcGdfc3Vic2NyaXB0aW9uIHN1YgorV0hFUkUKK3slIGlmIHN1Ymlk ICV9CisgICAgc3ViLm9pZCA9IHt7IHN1YmlkIH19OworeyUgZWxzZSAlfQorICAgIHN1Yi5zdWJk YmlkID0ge3sgZGlkIH19OworeyUgZW5kaWYgJX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1w bGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVsdC9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25z L3RlbXBsYXRlcy9zdWJzY3JpcHRpb25zL3NxbC9kZWZhdWx0L3Byb3BlcnRpZXMuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uN2RkMThiNTE3Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3N1YnNjcmlwdGlvbnMvdGVtcGxhdGVzL3N1YnNjcmlwdGlvbnMvc3FsL2RlZmF1bHQvcHJvcGVy dGllcy5zcWwKQEAgLTAsMCArMSwyMSBAQAorU0VMRUNUICBzdWIub2lkIGFzIG9pZCwKKyAgICAg ICAgc3VibmFtZSBhcyBuYW1lLAorICAgICAgICBzdWJwdWJsaWNhdGlvbnMgYXMgcHViLAorICAg ICAgICBzdWIuc3Vic3luY2NvbW1pdCBhcyBzeW5jLAorICAgICAgICBzdWJwdWJsaWNhdGlvbnMg YXMgY3VyX3B1YiwKKyAgICAgICAgcGdhLnJvbG5hbWUgYXMgc3Vib3duZXIsCisgICAgICAgIHN1 YnNsb3RuYW1lIGFzIHNsb3RfbmFtZSwKKyAgICAgICAgc3ViZW5hYmxlZCBhcyBlbmFibGVkLAor CQlTUExJVF9QQVJUKFNQTElUX1BBUlQoc3ViY29ubmluZm8sJ3BvcnQnLDEpLCAnPScsMikgYXMg aG9zdCwKKwkJU1BMSVRfUEFSVChTUExJVF9QQVJUKHN1YmNvbm5pbmZvLCdwb3J0PScsMiksICcg JywxKSBhcyBwb3J0LAorCQlTUExJVF9QQVJUKFNQTElUX1BBUlQoc3ViY29ubmluZm8sJ3VzZXI9 JywyKSwgJyAnLDEpIGFzIHVzZXJuYW1lLAorCQlTUExJVF9QQVJUKFNQTElUX1BBUlQoc3ViY29u bmluZm8sJ2RibmFtZT0nLDIpLCAnICcsMSkgYXMgZGIsCisJCVNQTElUX1BBUlQoU1BMSVRfUEFS VChzdWJjb25uaW5mbywnc2VydmljZT0nLDIpLCAnICcsMSkgYXMgc2VydmljZSwKKwkJU1BMSVRf UEFSVChTUExJVF9QQVJUKHN1YmNvbm5pbmZvLCdwYXNzZmlsZT0nLDIpLCAnICcsMSkgYXMgcGFz c2ZpbGUKK0ZST00gcGdfc3Vic2NyaXB0aW9uIHN1YiBqb2luIHBnX2F1dGhpZCBwZ2Egb24gc3Vi LnN1Ym93bmVyPSBwZ2Eub2lkCitXSEVSRQoreyUgaWYgc3ViaWQgJX0KKyAgICBzdWIub2lkID0g e3sgc3ViaWQgfX07Cit7JSBlbHNlICV9CisgICAgc3ViLnN1YmRiaWQgPSB7eyBkaWQgfX07Cit7 JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVtcGxhdGVzL3N1YnNjcmlwdGlvbnMv c3FsL2RlZmF1bHQvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3RlbXBsYXRlcy9zdWJzY3JpcHRpb25z L3NxbC9kZWZhdWx0L3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwLi43ODk3NjFlMDYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0ZXMvc3Vi c2NyaXB0aW9ucy9zcWwvZGVmYXVsdC91cGRhdGUuc3FsCkBAIC0wLDAgKzEsNTIgQEAKK3slIGlm IGRhdGEuc3luYyBpcyBkZWZpbmVkICV9Cit7JSBzZXQgYWRkX3NlbWljb2xvbl9hZnRlcl9zbG90 X25hbWUgPSAnc2xvdF9uYW1lJyAlfQoreyUgZW5kaWYgJX0KKworeyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjfQoreyMjIENoYW5nZSBvd25lciBv ZiBzdWJzY3JpcHRpb24gIyN9Cit7IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyN9Cit7JSBpZiBkYXRhLnN1Ym93bmVyIGFuZCBkYXRhLnN1Ym93bmVy ICE9IG9fZGF0YS5zdWJvd25lciAlfQorQUxURVIgU1VCU0NSSVBUSU9OIHt7IGNvbm58cXRJZGVu dChvX2RhdGEubmFtZSkgfX0gT1dORVIgVE8ge3sgZGF0YS5zdWJvd25lciB9fTsKK3slIGVuZGlm ICV9CisKK3slIGlmIGRhdGEubmFtZSBhbmQgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitB TFRFUiBTVUJTQ1JJUFRJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5uYW1lKSB9fSBSRU5BTUUg VE8ge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07Cit7JSBlbmRpZiAlfQorCit7JSBpZiBk YXRhLmVuYWJsZWQgaXMgZGVmaW5lZCBhbmQgZGF0YS5lbmFibGVkICE9IG9fZGF0YS5lbmFibGVk ICV9Cit7JSBpZiBub3QgZGF0YS5lbmFibGVkICV9CitBTFRFUiBTVUJTQ1JJUFRJT04ge3sgY29u bnxxdElkZW50KG9fZGF0YS5uYW1lKSB9fSBESVNBQkxFOworeyUgZW5kaWYgJX0KK3slIGVuZGlm ICV9CisKK3slIGlmIGRhdGEuc2xvdF9uYW1lIG9yIGRhdGEuc3luYyAlfQorQUxURVIgU1VCU0NS SVBUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEubmFtZSkgfX0gU0VUICh7JSBpZiBkYXRhLnNs b3RfbmFtZSAlfXNsb3RfbmFtZSA9IHt7IGRhdGEuc2xvdF9uYW1lIH19eyUgaWYgYWRkX3NlbWlj b2xvbl9hZnRlcl9zbG90X25hbWUgPT0gJ3Nsb3RfbmFtZScgJX0sIHslIGVuZGlmICV9eyUgZW5k aWYgJX17JSBpZiBkYXRhLnN5bmMgJX1zeW5jaHJvbm91c19jb21taXQgPSAne3sgZGF0YS5zeW5j IH19J3slIGVuZGlmICV9KTsKK3slIGVuZGlmICV9CisKK3slIGlmIGRhdGEuZW5hYmxlZCBpcyBk ZWZpbmVkIGFuZCBkYXRhLmVuYWJsZWQgIT0gb19kYXRhLmVuYWJsZWQgJX0KK3slIGlmIGRhdGEu ZW5hYmxlZCAlfQorQUxURVIgU1VCU0NSSVBUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEubmFt ZSkgfX0gRU5BQkxFOworeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CisKK3slIGlmIGRhdGEucmVm cmVzaF9wdWIgJX0KK0FMVEVSIFNVQlNDUklQVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLm5h bWUpIH19IFJFRlJFU0ggUFVCTElDQVRJT057JSBpZiBub3QgZGF0YS5jb3B5X2RhdGFfYWZ0ZXJf cmVmcmVzaCAlfSBXSVRIIChjb3B5X2RhdGEgPSBGYWxzZSl7JSBlbHNlICV9IFdJVEggKGNvcHlf ZGF0YSA9IFRydWUpeyUgZW5kaWYgJX07Cit7JSBlbmRpZiAlfQorCit7JSBpZiBkYXRhLnB1YiV9 Cit7JSBpZiBkYXRhLnB1YiBhbmQgbm90IGRhdGEucmVmcmVzaF9wdWIgYW5kIG5vdCBkYXRhLmVu YWJsZWQgJX0KK0FMVEVSIFNVQlNDUklQVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLm5hbWUp IH19IFNFVCBQVUJMSUNBVElPTiB7JSBmb3IgcHViIGluIGRhdGEucHViICV9eyUgaWYgbG9vcC5p bmRleCAhPSAxICV9LHslIGVuZGlmICV9e3sgY29ubnxxdElkZW50KHB1YikgfX17JSBlbmRmb3Ig JX0gV0lUSCAocmVmcmVzaCA9IGZhbHNlKTsKK3slIGVsc2UgJX0KK0FMVEVSIFNVQlNDUklQVElP TiB7eyBjb25ufHF0SWRlbnQob19kYXRhLm5hbWUpIH19IFNFVCBQVUJMSUNBVElPTiB7JSBmb3Ig cHViIGluIGRhdGEucHViICV9eyUgaWYgbG9vcC5pbmRleCAhPSAxICV9LHslIGVuZGlmICV9e3sg Y29ubnxxdElkZW50KHB1YikgfX17JSBlbmRmb3IgJX07Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYg JX0KKworeyUgaWYgZGF0YS5ob3N0IG9yIGRhdGEucG9ydCBvciBkYXRhLnVzZXJuYW1lIG9yIGRh dGEucGFzc3dvcmQgIG9yIGRhdGEuZGIgb3IgIGRhdGEuc2VydmljZSBvciBkYXRhLnBhc3NmaWxl ICV9CitBTFRFUiBTVUJTQ1JJUFRJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5uYW1lKSB9fSBD T05ORUNUSU9OICdob3N0PXt7IG9fZGF0YS5ob3N0fX0gcG9ydD17eyBvX2RhdGEucG9ydCB9fSB1 c2VyPXt7IG9fZGF0YS51c2VybmFtZSB9fSBkYm5hbWU9e3sgb19kYXRhLmRiIH19eyUgaWYgZGF0 YS5zZXJ2aWNlICV9IHNlcnZpY2U9e3sgb19kYXRhLnNlcnZpY2UgfX17JSBlbmRpZiAlfXslIGlm IGRhdGEucGFzc2ZpbGUgJX0gcGFzc2ZpbGU9e3sgb19kYXRhLnBhc3NmaWxlIH19eyUgZW5kaWYg JX17JSBpZiBkYXRhLnBhc3N3b3JkICV9IHBhc3N3b3JkPXt7IGRhdGEucGFzc3dvcmR9fXslIGVu ZGlmICV9JzsKK3slIGVuZGlmICV9CisKKworCisKKworCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90 ZXN0cy8xMF9wbHVzL2FsdGVyX21haW50ZW5hbmNlX2RiLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzLzEw X3BsdXMvYWx0ZXJfbWFpbnRlbmFuY2VfZGIuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMC4uNmY2MjZmYWJmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMv MTBfcGx1cy9hbHRlcl9tYWludGVuYW5jZV9kYi5zcWwKQEAgLTAsMCArMSw3IEBACistLSBTdWJz Y3JpcHRpb24gOiB0ZXN0X2FsdGVyX3N1YnNjcmlwdGlvbjsKKy0tIERST1AgU1VCU0NSSVBUSU9O IHRlc3RfYWx0ZXJfc3Vic2NyaXB0aW9uOworCitDUkVBVEUgU1VCU0NSSVBUSU9OIHRlc3RfYWx0 ZXJfc3Vic2NyaXB0aW9uCitDT05ORUNUSU9OICcgaG9zdD1sb2NhbGhvc3QgICBwb3J0PTU0MzIg dXNlcj1wb3N0Z3JlcyBkYm5hbWU9ZWRiICcKK1BVQkxJQ0FUSU9OIHNhbXBsZV9fMQord2l0aCAo ZW5hYmxlZCA9IEZhbHNlLCAgY3JlYXRlX3Nsb3QgPSBGYWxzZSwgc2xvdF9uYW1lID0gTm9uZSwg c3luY2hyb25vdXNfY29tbWl0ID0gJ3JlbW90ZV9hcHBseScpOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlv bnMvdGVzdHMvMTBfcGx1cy9hbHRlcl9zdWJzY3JpcHRpb24uc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMv MTBfcGx1cy9hbHRlcl9zdWJzY3JpcHRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMC4uNWY4OTY1MDJjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMv MTBfcGx1cy9hbHRlcl9zdWJzY3JpcHRpb24uc3FsCkBAIC0wLDAgKzEsNyBAQAorLS0gU3Vic2Ny aXB0aW9uIDogdGVzdF9hbHRlcl9zdWJzY3JpcHRpb247CistLSBEUk9QIFNVQlNDUklQVElPTiB0 ZXN0X2FsdGVyX3N1YnNjcmlwdGlvbjsKKworQ1JFQVRFIFNVQlNDUklQVElPTiB0ZXN0X2FsdGVy X3N1YnNjcmlwdGlvbgorQ09OTkVDVElPTiAnIGhvc3Q9bG9jYWxob3N0ICBwb3J0PTU0MzIgdXNl cj1wb3N0Z3JlcyBkYm5hbWU9cG9zdGdyZXMgJworUFVCTElDQVRJT04gc2FtcGxlX18xCit3aXRo IChlbmFibGVkID0gRmFsc2UsICBjcmVhdGVfc2xvdCA9IEZhbHNlLCBzbG90X25hbWUgPSBOb25l LCBzeW5jaHJvbm91c19jb21taXQgPSAnb2ZmJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0 cy8xMF9wbHVzL2FsdGVyX3N5bmMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy9hbHRlcl9z eW5jLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjVlMjRkYmI2YQot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzLzEwX3BsdXMvYWx0ZXJfc3luYy5zcWwK QEAgLTAsMCArMSw3IEBACistLSBTdWJzY3JpcHRpb24gOiB0ZXN0X2FsdGVyX3N1YnNjcmlwdGlv bjsKKy0tIERST1AgU1VCU0NSSVBUSU9OIHRlc3RfYWx0ZXJfc3Vic2NyaXB0aW9uOworCitDUkVB VEUgU1VCU0NSSVBUSU9OIHRlc3RfYWx0ZXJfc3Vic2NyaXB0aW9uCitDT05ORUNUSU9OICcgaG9z dD1sb2NhbGhvc3QgIHBvcnQ9NTQzMiB1c2VyPXBvc3RncmVzIGRibmFtZT1wb3N0Z3JlcyAnCitQ VUJMSUNBVElPTiBzYW1wbGVfXzEKK3dpdGggKGVuYWJsZWQgPSBGYWxzZSwgIGNyZWF0ZV9zbG90 ID0gRmFsc2UsIHNsb3RfbmFtZSA9IE5vbmUsIHN5bmNocm9ub3VzX2NvbW1pdCA9ICdyZW1vdGVf YXBwbHknKTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzLzEwX3BsdXMvY3JlYXRlX3N1YnNj cmlwdGlvbi5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9zdWJzY3JpcHRpb24u c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYTBhMjMzOGFiCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfc3Vic2NyaXB0aW9u LnNxbApAQCAtMCwwICsxLDcgQEAKKy0tIFN1YnNjcmlwdGlvbiA6IHRlc3RfY3JlYXRlX3N1YnNj cmlwdGlvbjsKKy0tIERST1AgU1VCU0NSSVBUSU9OIHRlc3RfY3JlYXRlX3N1YnNjcmlwdGlvbjsK KworQ1JFQVRFIFNVQlNDUklQVElPTiB0ZXN0X2NyZWF0ZV9zdWJzY3JpcHRpb24KK0NPTk5FQ1RJ T04gJyBob3N0PWxvY2FsaG9zdCAgcG9ydD01NDMyIHVzZXI9cG9zdGdyZXMgZGJuYW1lPXBvc3Rn cmVzICcKK1BVQkxJQ0FUSU9OIHNhbXBsZV9fMQord2l0aCAoZW5hYmxlZCA9IEZhbHNlLCAgY3Jl YXRlX3Nsb3QgPSBGYWxzZSwgc2xvdF9uYW1lID0gTm9uZSwgc3luY2hyb25vdXNfY29tbWl0ID0g J29mZicpOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfc3Vic2Ny aXB0aW9uX21zcWwuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfc3Vic2NyaXB0 aW9uX21zcWwuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNmY3NTlj ZTI3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfc3Vi c2NyaXB0aW9uX21zcWwuc3FsCkBAIC0wLDAgKzEsNCBAQAorQ1JFQVRFIFNVQlNDUklQVElPTiB0 ZXN0X2NyZWF0ZV9zdWJzY3JpcHRpb24KK0NPTk5FQ1RJT04gJyBob3N0PWxvY2FsaG9zdCBwb3J0 PTU0MzIgdXNlcj1wb3N0Z3JlcyBkYm5hbWU9cG9zdGdyZXMgcGFzc3dvcmQ9ZWRiJworUFVCTElD QVRJT04gc2FtcGxlX18xCit3aXRoIChjb25uZWN0ID0gRmFsc2UsIGVuYWJsZWQgPSBGYWxzZSwg IGNyZWF0ZV9zbG90ID0gRmFsc2UsIHNsb3RfbmFtZSA9IE5vbmUsIHN5bmNocm9ub3VzX2NvbW1p dCA9ICdvZmYnKTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzLzEwX3BsdXMvdGVzdC5qc29u IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1 YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy90ZXN0Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwLi5kOWNmNDViZGQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90 ZXN0cy8xMF9wbHVzL3Rlc3QuanNvbgpAQCAtMCwwICsxLDcwIEBACit7CisgICJzY2VuYXJpb3Mi OiBbCisgICAgeworICAgICAgInR5cGUiOiAiY3JlYXRlIiwKKyAgICAgICJuYW1lIjogIkNyZWF0 ZSAgU3Vic2NyaXB0aW9uIiwKKyAgICAgICJlbmRwb2ludCI6ICJOT0RFLXN1YnNjcmlwdGlvbi5v YmoiLAorICAgICAgInNxbF9lbmRwb2ludCI6ICJOT0RFLXN1YnNjcmlwdGlvbi5zcWxfaWQiLAor ICAgICAgIm1zcWxfZW5kcG9pbnQiOiAiTk9ERS1zdWJzY3JpcHRpb24ubXNxbCIsCisgICAgICAi ZGF0YSI6IHsKKyAgICAgICAgICAidXNlcm5hbWUiOiAicG9zdGdyZXMiLAorICAgICAgICAgICJu YW1lIjogInRlc3RfY3JlYXRlX3N1YnNjcmlwdGlvbiIsCisgICAgICAgICAgImNvbm5lY3QiOiBm YWxzZSwKKyAgICAgICAgICAiY29weV9kYXRhIjogZmFsc2UsCisgICAgICAgICAgImNyZWF0ZV9z bG90IjogZmFsc2UsCisgICAgICAgICAgImRiIjogInBvc3RncmVzIiwKKyAgICAgICAgICAic3Vi b3duZXIiOiAicG9zdGdyZXMiLAorICAgICAgICAgICJlbmFibGVkIjogZmFsc2UsCisgICAgICAg ICAgImhvc3QiOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAic2xvdF9uYW1lIjogIk5vbmUiLAor ICAgICAgICAgICJzZXJ2aWNlIjogIiIsCisgICAgICAgICAgInBvcnQiOiA1NDMyLAorICAgICAg ICAgICJwYXNzd29yZCI6ICJlZGIiLAorICAgICAgICAgICJzeW5jIjogIm9mZiIsCisgICAgICAg ICAgInB1YiI6ICJbXCJzYW1wbGVfXzFcIl0iCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX3Nx bF9maWxlIjogImNyZWF0ZV9zdWJzY3JpcHRpb24uc3FsIiwKKyAgICAgICJleHBlY3RlZF9tc3Fs X2ZpbGUiOiAiY3JlYXRlX3N1YnNjcmlwdGlvbl9tc3FsLnNxbCIKKyAgICB9LAorICAgIHsKKyAg ICAgICJ0eXBlIjogImFsdGVyIiwKKyAgICAgICJuYW1lIjogIkFsdGVyICBTdWJzY3JpcHRpb24i LAorICAgICAgImVuZHBvaW50IjogIk5PREUtc3Vic2NyaXB0aW9uLm9ial9pZCIsCisgICAgICAi c3FsX2VuZHBvaW50IjogIk5PREUtc3Vic2NyaXB0aW9uLnNxbF9pZCIsCisgICAgICAiZGF0YSI6 IHsKKyAgICAgICAgICAibmFtZSI6ICJ0ZXN0X2FsdGVyX3N1YnNjcmlwdGlvbiIKKyAgICAgIH0s CisgICAgICAiZXhwZWN0ZWRfc3FsX2ZpbGUiOiAiYWx0ZXJfc3Vic2NyaXB0aW9uLnNxbCIKKyAg ICB9LAorICAgIHsKKyAgICAgICJ0eXBlIjogImFsdGVyIiwKKyAgICAgICJuYW1lIjogIkFsdGVy ICBzeW5jIG9mIHN1YnNjcmlwdGlvbiIsCisgICAgICAiZW5kcG9pbnQiOiAiTk9ERS1zdWJzY3Jp cHRpb24ub2JqX2lkIiwKKyAgICAgICJzcWxfZW5kcG9pbnQiOiAiTk9ERS1zdWJzY3JpcHRpb24u c3FsX2lkIiwKKyAgICAgICJkYXRhIjogeworICAgICAgICAgICJzeW5jIjogInJlbW90ZV9hcHBs eSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfc3FsX2ZpbGUiOiAiYWx0ZXJfc3luYy5zcWwi CisgICAgfSwKKworICAgIHsKKyAgICAgICJ0eXBlIjogImFsdGVyIiwKKyAgICAgICJuYW1lIjog IkFsdGVyICBtYWludGFpbmFuY2UgREIgaW4gY29ubmVjdGlvbiBzdHJpbmcgb2Ygc3Vic2NyaXB0 aW9uIiwKKyAgICAgICJlbmRwb2ludCI6ICJOT0RFLXN1YnNjcmlwdGlvbi5vYmpfaWQiLAorICAg ICAgInNxbF9lbmRwb2ludCI6ICJOT0RFLXN1YnNjcmlwdGlvbi5zcWxfaWQiLAorICAgICAgImRh dGEiOiB7CisgICAgICAgICAgImRiIjogImVkYiIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRf c3FsX2ZpbGUiOiAiYWx0ZXJfbWFpbnRlbmFuY2VfZGIuc3FsIgorICAgIH0sCisKKyAgICB7Cisg ICAgICAidHlwZSI6ICJkZWxldGUiLAorICAgICAgIm5hbWUiOiAiRHJvcCBzdWJzY3JpcHRpb24i LAorICAgICAgImVuZHBvaW50IjogIk5PREUtc3Vic2NyaXB0aW9uLmRlbGV0ZV9pZCIsCisgICAg ICAiZGF0YSI6IHsKKyAgICAgICAgIm5hbWUiOiAidGVzdF9hbHRlcl9zdWJzY3JpcHRpb24iCisg ICAgICB9CisgICAgfQorICBdCit9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy9fX2luaXRf Xy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zdWJzY3JpcHRpb25zL3Rlc3RzL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMC4uMjdjZDg5MDY3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVz dHMvX19pbml0X18ucHkKQEAgLTAsMCArMSwxNiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMg cGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAy MDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorCisK K2NsYXNzIFJ1bGVzVGVzdEdlbmVyYXRvcihCYXNlVGVzdEdlbmVyYXRvcik6CisKKyAgICBkZWYg cnVuVGVzdChzZWxmKToKKyAgICAgICAgcmV0dXJuIFtdCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90 ZXN0cy9zdWJzY3JpcHRpb25fdGVzdF9kYXRhLmpzb24gYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy9zdWJzY3Jp cHRpb25fdGVzdF9kYXRhLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw Li40NzczNTU3ZmUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy9zdWJzY3JpcHRp b25fdGVzdF9kYXRhLmpzb24KQEAgLTAsMCArMSw0MzIgQEAKK3sKKyAgImFkZF9zdWJzY3JpcHRp b24iOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiQ3JlYXRlIHN1YnNjcmlwdGlvbiB3aXRoIGlu c2VydCBhbmQgdXBkYXRlIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL29i ai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgInRlc3RfZGF0YSI6 IHsKKyAgICAgICAgICAidXNlcm5hbWUiOiAicG9zdGdyZXMiLAorICAgICAgICAgICJuYW1lIjog IlBMQUNFSE9MREVSIiwKKyAgICAgICAgICAiY29ubmVjdCI6IGZhbHNlLAorICAgICAgICAgICJj b3B5X2RhdGEiOiBmYWxzZSwKKyAgICAgICAgICAiY3JlYXRlX3Nsb3QiOiBmYWxzZSwKKyAgICAg ICAgICAiZGIiOiAicG9zdGdyZXMiLAorICAgICAgICAgICJzdWJvd25lciI6ICJwb3N0Z3JlcyIs CisgICAgICAgICAgImVuYWJsZWQiOiBmYWxzZSwKKyAgICAgICAgICAiaG9zdCI6ICJsb2NhbGhv c3QiLAorICAgICAgICAgICJzbG90X25hbWUiOiAiTk9ORSIsCisgICAgICAgICAgInNlcnZpY2Ui OiAiIiwKKyAgICAgICAgICAicG9ydCI6IDU0MzIsCisgICAgICAgICAgInBhc3N3b3JkIjogIiIs CisgICAgICAgICAgInN5bmMiOiAib2ZmIiwKKyAgICAgICAgICAicHViIjogIlBMQUNFX0hPTERF UiIKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1v Y2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNf Y29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiQ3JlYXRl IHN1YnNjcmlwdGlvbiBmb3IgZmV3IHRhYmxlcyIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1 YnNjcmlwdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAg ICJnZXRfcHVibGljYXRpb24iOiB0cnVlLAorICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAg ICAidXNlcm5hbWUiOiAicG9zdGdyZXMiLAorICAgICAgICAgICJuYW1lIjogIlBMQUNFSE9MREVS IiwKKyAgICAgICAgICAiY29ubmVjdCI6IGZhbHNlLAorICAgICAgICAgICJjb3B5X2RhdGEiOiBm YWxzZSwKKyAgICAgICAgICAiY3JlYXRlX3Nsb3QiOiBmYWxzZSwKKyAgICAgICAgICAiZGIiOiAi cG9zdGdyZXMiLAorICAgICAgICAgICJzdWJvd25lciI6ICJwb3N0Z3JlcyIsCisgICAgICAgICAg ImVuYWJsZWQiOiBmYWxzZSwKKyAgICAgICAgICAiaG9zdCI6ICJsb2NhbGhvc3QiLAorICAgICAg ICAgICJzbG90X25hbWUiOiAiTk9ORSIsCisgICAgICAgICAgInNlcnZpY2UiOiAiIiwKKyAgICAg ICAgICAicG9ydCI6IDU0MzIsCisgICAgICAgICAgInBhc3N3b3JkIjogIiIsCisgICAgICAgICAg InN5bmMiOiAib2ZmIiwKKyAgICAgICAgICAicHViIjogIlBMQUNFX0hPTERFUiIKKyAgICAgIH0s CisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9 LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAor ICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiQ3JlYXRlIGEgc3Vic2NyaXB0 aW9uIHdpdGhvdXQgbmFtZSIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9v YmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAid2l0aG91dF9u YW1lIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICAgInVzZXJuYW1lIjog InBvc3RncmVzIiwKKyAgICAgICAgICAibmFtZSI6ICJQTEFDRUhPTERFUiIsCisgICAgICAgICAg ImNvbm5lY3QiOiBmYWxzZSwKKyAgICAgICAgICAiY29weV9kYXRhIjogZmFsc2UsCisgICAgICAg ICAgImNyZWF0ZV9zbG90IjogZmFsc2UsCisgICAgICAgICAgImRiIjogInBvc3RncmVzIiwKKyAg ICAgICAgICAic3Vib3duZXIiOiAicG9zdGdyZXMiLAorICAgICAgICAgICJlbmFibGVkIjogZmFs c2UsCisgICAgICAgICAgImhvc3QiOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAic2xvdF9uYW1l IjogIk5PTkUiLAorICAgICAgICAgICJzZXJ2aWNlIjogIiIsCisgICAgICAgICAgInBvcnQiOiA1 NDMyLAorICAgICAgICAgICJwYXNzd29yZCI6ICIiLAorICAgICAgICAgICJzeW5jIjogIm9mZiIs CisgICAgICAgICAgInB1YiI6ICJQTEFDRV9IT0xERVIiCisgICAgICB9LAorICAgICAgIm1vY2tp bmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBl Y3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA0MTAKKyAgICAgIH0KKyAgICB9 LAorICAgIHsKKyAgICAgICJuYW1lIjogIkVycm9yIHdoaWxlIGFkZGluZyBhIHN1YnNjcmlwdGlv biIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9vYmovIiwKKyAgICAgICJp c19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAiZXJyb3JfY3JlYXRpbmdfc3Vic2NyaXB0 aW9uIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICAgInVzZXJuYW1lIjog InBvc3RncmVzIiwKKyAgICAgICAgICAibmFtZSI6ICJQTEFDRUhPTERFUiIsCisgICAgICAgICAg ImNvbm5lY3QiOiBmYWxzZSwKKyAgICAgICAgICAiY29weV9kYXRhIjogZmFsc2UsCisgICAgICAg ICAgImNyZWF0ZV9zbG90IjogZmFsc2UsCisgICAgICAgICAgImRiIjogInBvc3RncmVzIiwKKyAg ICAgICAgICAic3Vib3duZXIiOiAicG9zdGdyZXMiLAorICAgICAgICAgICJlbmFibGVkIjogZmFs c2UsCisgICAgICAgICAgImhvc3QiOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAic2xvdF9uYW1l IjogIk5PTkUiLAorICAgICAgICAgICJzZXJ2aWNlIjogIiIsCisgICAgICAgICAgInBvcnQiOiA1 NDMyLAorICAgICAgICAgICJwYXNzd29yZCI6ICIiLAorICAgICAgICAgICJzeW5jIjogIm9mZiIs CisgICAgICAgICAgInB1YiI6ICJQTEFDRV9IT0xERVIiCisgICAgICB9LAorICAgICAgIm1vY2tp bmdfcmVxdWlyZWQiOiB0cnVlLAorICAgICAgIm1vY2tfZGF0YSI6IHsKKyAgICAgICAgImZ1bmN0 aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuY29ubmVjdGlvbi5Db25u ZWN0aW9uLmV4ZWN1dGVfZGljdCIsCisgICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAn TW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvciAnKSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0 ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICB9CisgICAgfSwK KyAgICB7CisgICAgICAibmFtZSI6ICJFeGNlcHRpb24gd2hpbGUgYWRkaW5nIGEgc3Vic2NyaXB0 aW9uIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL29iai8iLAorICAgICAg ImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAg ICAgInVzZXJuYW1lIjogInBvc3RncmVzIiwKKyAgICAgICAgICAibmFtZSI6ICJQTEFDRUhPTERF UiIsCisgICAgICAgICAgImNvbm5lY3QiOiBmYWxzZSwKKyAgICAgICAgICAiY29weV9kYXRhIjog ZmFsc2UsCisgICAgICAgICAgImNyZWF0ZV9zbG90IjogZmFsc2UsCisgICAgICAgICAgImRiIjog InBvc3RncmVzIiwKKyAgICAgICAgICAic3Vib3duZXIiOiAicG9zdGdyZXMiLAorICAgICAgICAg ICJlbmFibGVkIjogZmFsc2UsCisgICAgICAgICAgImhvc3QiOiAibG9jYWxob3N0IiwKKyAgICAg ICAgICAic2xvdF9uYW1lIjogIk5PTkUiLAorICAgICAgICAgICJzZXJ2aWNlIjogIiIsCisgICAg ICAgICAgInBvcnQiOiA1NDMyLAorICAgICAgICAgICJwYXNzd29yZCI6ICIiLAorICAgICAgICAg ICJzeW5jIjogIm9mZiIsCisgICAgICAgICAgInB1YiI6ICJQTEFDRV9IT0xERVIiCisgICAgICB9 LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiB0cnVlLAorICAgICAgIm1vY2tfZGF0YSI6IHsK KyAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIu Y29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfZGljdCIsCisgICAgICAgICJyZXR1cm5fdmFs dWUiOiAiKFRydWUsIFRydWUpKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvciAn KSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19j b2RlIjogNTAwCisgICAgICB9CisgICAgfQorICBdLAorICAiZ2V0X3N1YnNjcmlwdGlvbiI6IFsK KyAgICB7CisgICAgICAibmFtZSI6ICJHZXQgYSBzdWJzY3JpcHRpb24gVVJMIiwKKyAgICAgICJ1 cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rl c3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2Nr X2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2Nv ZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkVycm9yIHdo aWxlIGZldGNoaW5nIGEgc3Vic2NyaXB0aW9uIHByb3BlcnRpZXMiLAorICAgICAgInVybCI6ICIv YnJvd3Nlci9zdWJzY3JpcHRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZh bHNlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiB0cnVlLAorICAgICAgIm1vY2tfZGF0YSI6 IHsKKyAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29w ZzIuY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfZGljdCIsCisgICAgICAgICJyZXR1cm5f dmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvcicpIgorICAgICAg fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAK KyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkdldCBhIHN1YnNjcmlwdGlv biBwcm9wZXJ0aWVzIHVuZGVyIGRhdGFiYXNlIG5vZGVzIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dz ZXIvc3Vic2NyaXB0aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAor ICAgICAgImRhdGFiYXNlX25vZGVzIjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjog ZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsK KyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAg ICAibmFtZSI6ICJFcnJvciB3aGlsZSBmZXRjaGluZyBhIHN1YnNjcmlwdGlvbiBwcm9wZXJ0aWVz IHVuZGVyIGRhdGFiYXNlIG5vZGVzIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0 aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAgICJkYXRh YmFzZV9ub2RlcyI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IHRydWUsCisgICAg ICAibW9ja19kYXRhIjogeworICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxz LmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9kaWN0IiwKKyAg ICAgICAgInJldHVybl92YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVy cm9yJykiCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0 dXNfY29kZSI6IDUwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiR2V0 IGEgc3Vic2NyaXB0aW9uIE5vZGUiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRp b24vbm9kZXMvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2Nr aW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhw ZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAg fSwKKyAgICB7CisgICAgICAibmFtZSI6ICJHZXQgYSBzdWJzY3JpcHRpb24gTm9kZSBkZXBlbmRh bnRzIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL2RlcGVuZGVudC8iLAor ICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQi OiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjog eworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAg ICAgICJuYW1lIjogIkdldCBhIHN1YnNjcmlwdGlvbiBOb2RlIGRlcGVuZGVuY3kiLAorICAgICAg InVybCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vZGVwZW5kZW5jeS8iLAorICAgICAgImlzX3Bv c2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAg ICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAi c3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjog IkVycm9yIHdoaWxlIGZldGNoaW5nIHRoZSBzdWJzY3JpcHRpb24gdW5kZXIgdGhlIGRhdGFiYXNl IG5vZGVzIHVzaW5nIHdyb25nIGRhdGFiYXNlIGlkIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIv c3Vic2NyaXB0aW9uL25vZGVzLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAor ICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiB0cnVlLAorICAgICAgIm1vY2tfZGF0YSI6IHsKKyAg ICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuY29u bmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfMmRhcnJheSIsCisgICAgICAgICJyZXR1cm5fdmFs dWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvcicpIgorICAgICAgfSwK KyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAg ICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkdldCBhbGwgdGhlIHN1YnNjcmlw dGlvbiB1bmRlciB0aGUgZGF0YWJhc2Ugbm9kZXMiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9z dWJzY3JpcHRpb24vbm9kZXMvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAg ICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAiZGF0YWJhc2Vfbm9kZXMiOiB0 cnVlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7Cisg ICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAg Im5hbWUiOiAiR2V0IGFsbCB0aGUgc3Vic2NyaXB0aW9uIHVuZGVyIHRoZSBkYXRhYmFzZSBub2Rl cyB1c2luZyB3cm9uZyBkYXRhYmFzZSBpZCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNj cmlwdGlvbi9ub2Rlcy8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAg ImluY29ycmVjdF9kYXRhYmFzZV9pZCI6IHRydWUsCisgICAgICAiZGF0YWJhc2Vfbm9kZXMiOiB0 cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEi OiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAy MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkVycm9yIHdoaWxlIGZl dGNoaW5nIGFsbCB0aGUgc3Vic2NyaXB0aW9uIHVuZGVyIHRoZSBkYXRhYmFzZSBub2RlcyB1c2lu ZyB3cm9uZyBkYXRhYmFzZSBpZCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlv bi9ub2Rlcy8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAgICJkYXRh YmFzZV9ub2RlcyI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IHRydWUsCisgICAg ICAibW9ja19kYXRhIjogeworICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxz LmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV8yZGFycmF5IiwK KyAgICAgICAgInJldHVybl92YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVy IEVycm9yJykiCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJz dGF0dXNfY29kZSI6IDUwMAorICAgICAgfQorICAgIH0KKyAgXSwKKyAgImRlbGV0ZV9zdWJzY3Jp cHRpb24iOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiRGVsZXRlIGEgc3Vic2NyaXB0aW9uIFVS TCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9vYmovIiwKKyAgICAgICJp c19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2Us CisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAg ICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFt ZSI6ICJFcnJvciB3aGlsZSBkZWxldGluZyB0aGUgc3Vic2NyaXB0aW9uIiwKKyAgICAgICJ1cmwi OiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3Qi OiBmYWxzZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogdHJ1ZSwKKyAgICAgICJtb2NrX2Rh dGEiOiB7CisgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBz eWNvcGcyLmNvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX3NjYWxhciIsCisgICAgICAgICJy ZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvcicpIgor ICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUi OiA1MDAKKyAgICAgIH0KKyAgICB9CisgIF0sCisgICJ1cGRhdGVfc3Vic2NyaXB0aW9uIjogWwor ICAgIHsKKyAgICAgICJuYW1lIjogInVwZGF0ZSBhIHN1YnNjcmlwdGlvbiBuYW1lIiwKKyAgICAg ICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZl X3Rlc3QiOiB0cnVlLAorICAgICAgInVwZGF0ZV9uYW1lIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2Rh dGEiOiB7CisgICAgICAgICJuYW1lIjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJpZCI6ICJQ TEFDRV9IT0xERVIiCisgICAgICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwK KyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAg ICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1l IjogInVwZGF0ZSBhIHBvcnQgaW4gY29ubmVjdGlvbiBkZXRhaWxzIG9mIHN1YnNjcmlwdGlvbiIs CisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9vYmovIiwKKyAgICAgICJpc19w b3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJvd25lcl9zdWJzY3JpcHRpb24iOiB0cnVlLAor ICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAgImlkIjogIlBMQUNFX0hPTERFUiIsCisgICAg ICAgICJwb3J0IjogIjU0NDQiCisgICAgICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBm YWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogewor ICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAg ICJuYW1lIjogInVwZGF0ZSBhIHVzZXJuYW1lIGluIGNvbm5lY3Rpb24gZGV0YWlscyBvZiBzdWJz Y3JpcHRpb24iLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vb2JqLyIsCisg ICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAib3duZXJfc3Vic2NyaXB0aW9u IjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xE RVIiLAorICAgICAgICAidXNlcm5hbWUiOiAic2FtcGxlX3VzZXJuYW1lIgorICAgICAgfSwKKyAg ICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisg ICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAg ICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJFcnJvciB3aGlsZSBmZXRjaGluZyBh IHN1YnNjcmlwdGlvbiB0byB1cGRhdGUiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zdWJzY3Jp cHRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAgIm1v Y2tpbmdfcmVxdWlyZWQiOiB0cnVlLAorICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAgIm5h bWUiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAgICAgImlkIjogIlBMQUNFX0hPTERFUiIKKyAgICAg IH0sCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2Fk bWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9k aWN0IiwKKyAgICAgICAgInJldHVybl92YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwg U2VydmVyIEVycm9yJykiCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAg ICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5h bWUiOiAiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgYSBzdWJzY3JpcHRpb24gdG8gdXBkYXRlIHVzaW5n IHdyb25nIHN1YnNjcmlwdGlvbiBpZCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlw dGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJ3cm9u Z19zdWJzY3JpcHRpb25faWQiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxz ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xERVIiCisg ICAgICB9LAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7 CisgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgfQorICAgIH0KKyAgXSwKKyAgImRl bGV0ZV9tdWx0aXBsZV9zdWJzY3JpcHRpb24iOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiRGVs ZXRlIG11bHRpcGxlIHN1YnNjcmlwdGlvbiIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNj cmlwdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJt b2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAi ZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9Cisg ICAgfQorICBdLAorICAic3FsX3N1YnNjcmlwdGlvbiI6IFsKKyAgICB7CisgICAgICAibmFtZSI6 ICJGZXRjaCB0aGUgc3Vic2NyaXB0aW9uIFNRTCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1 YnNjcmlwdGlvbi9zcWwvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAg ICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAg fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAK KyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkVycm9yIHdoaWxlIGZldGNo aW5nIGEgc3Vic2NyaXB0aW9uIFNRTCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlw dGlvbi9zcWwvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAibW9j a2luZ19yZXF1aXJlZCI6IHRydWUsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgICAiZnVu Y3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9uLkNv bm5lY3Rpb24uZXhlY3V0ZV9kaWN0IiwKKyAgICAgICAgInJldHVybl92YWx1ZSI6ICIoRmFsc2Us ICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yJykiCisgICAgICB9LAorICAgICAgImV4cGVj dGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgfQorICAgIH0s CisgICAgeworICAgICAgIm5hbWUiOiAiRmV0Y2hpbmcgYSBzdWJzY3JpcHRpb24gbVNRTCIsCisg ICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9tc3FsLyIsCisgICAgICAiaXNfcG9z aXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAg ICAgIm1vY2tfZGF0YSI6IHsKKyAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGls cy5kcml2ZXIucHN5Y29wZzIuY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfZGljdCIsCisg ICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBF cnJvcicpIgorICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3Rh dHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9CisgIF0KK30KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRp b25zL3Rlc3RzL3Rlc3Rfc3Vic2NyaXB0aW9uX2NyZWF0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3Rl c3Rfc3Vic2NyaXB0aW9uX2NyZWF0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAuLjczYmQzNTNiOAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3Rlc3Rf c3Vic2NyaXB0aW9uX2NyZWF0ZS5weQpAQCAtMCwwICsxLDk3IEBACisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykg MjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2Fy ZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworCitpbXBvcnQganNvbgoraW1wb3J0IHV1aWQKK2Zyb20gdW5pdHRlc3QubW9jayBp bXBvcnQgcGF0Y2gKKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCisgICAgaW1wb3J0IHV0aWxzIGFzIHRh Ymxlc191dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jl c3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVz dF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBh cyBzdWJzY3JpcHRpb25fdXRpbHMKKworCitjbGFzcyBQdWJsaWNhdGlvbnNBZGRUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcgc3Vic2Ny aXB0aW9uIiIiCisgICAgc2NlbmFyaW9zID0gdXRpbHMuZ2VuZXJhdGVfc2NlbmFyaW9zKCdhZGRf c3Vic2NyaXB0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3Vic2NyaXB0aW9uX3V0aWxzLnRlc3RfY2FzZXMpCisKKyAgICBkZWYgc2V0VXAoc2VsZik6Cisg ICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJk Yl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEi XVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0K KyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIHNlbGYu c2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQorICAgICAgICBzZWxmLnNl cnZlcl92ZXJzaW9uID0gc2NoZW1hX2luZm9bInNlcnZlcl92ZXJzaW9uIl0KKyAgICAgICAgaWYg c2VsZi5zZXJ2ZXJfdmVyc2lvbiA8IDk5OTk5OgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgK KyAgICAgICAgICAgICAgICAiTG9naWNhbCByZXBsaWNhdGlvbiBpcyBub3Qgc3VwcG9ydGVkICIK KyAgICAgICAgICAgICAgICAiZm9yIHNlcnZlciB2ZXJzaW9uIGxlc3MgdGhhbiAxMCIKKworICAg ICAgICAgICAgKQorCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0 YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAg ICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRh YmFzZSB0byBhZGQgYSBzdWJzY3JpcHRpb24uIikKKworICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0 aXZlX3Rlc3QgYW5kIGhhc2F0dHIoc2VsZiwgJ2Zld190YWJsZXNfMTEnKToKKyAgICAgICAgICAg IHNlbGYudGFibGVfbmFtZSA9ICJ0YWJsZV9jb2x1bW5fJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0pCisgICAgICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90 YWJsZShzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25h bWUpCisKKyAgICAgICAgICAgIHNlbGYudGVzdF9kYXRhWydwdWJ0YWJsZSddID0gc3Vic2NyaXB0 aW9uX3V0aWxzLmdldF90YWJsZXMoc2VsZikKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAg ICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgc3Vic2NyaXB0aW9uLiIiIgorICAgICAgICBzZWxm LnRlc3RfZGF0YVsnbmFtZSddID0gXAorICAgICAgICAgICAgInRlc3Rfc3Vic2NyaXB0aW9uX2Fk ZF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKworICAgICAgICBzZWxmLnRlc3RfZGF0 YVsncHViJ10gPSAiIiJbInNhbXBsZV9fMSJdIiIiCisKKyAgICAgICAgZGF0YSA9IHNlbGYudGVz dF9kYXRhCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAgICAgIHJl c3BvbnNlID0gc2VsZi5jcmVhdGVfc3Vic2NyaXB0aW9uKCkKKyAgICAgICAgZWxzZToKKyAgICAg ICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ3dpdGhvdXRfbmFtZScpOgorICAgICAgICAgICAgICAg IGRlbCBkYXRhWyJuYW1lIl0KKyAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuY3JlYXRl X3N1YnNjcmlwdGlvbigpCisgICAgICAgICAgICBlbGlmIGhhc2F0dHIoc2VsZiwgJ2Vycm9yX2Ny ZWF0aW5nX3N1YnNjcmlwdGlvbicpOgorICAgICAgICAgICAgICAgIHdpdGggcGF0Y2goc2VsZi5t b2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybl92YWx1ZT1ldmFsKHNlbGYubW9ja19kYXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAgICAg ICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuY3JlYXRlX3N1YnNjcmlwdGlvbigpCisgICAg ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHdpdGggcGF0Y2goc2VsZi5tb2NrX2RhdGFb ImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZGVfZWZmZWN0 PXNlbGYubW9ja19kYXRhWyJyZXR1cm5fdmFsdWUiXSk6CisgICAgICAgICAgICAgICAgICAgIHJl c3BvbnNlID0gc2VsZi5jcmVhdGVfc3Vic2NyaXB0aW9uKCkKKyAgICAgICAgc2VsZi5hc3NlcnRF cXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmV4cGVjdGVkX2RhdGFbInN0YXR1c19jb2RlIl0pCisKKyAgICBkZWYgY3JlYXRlX3N1YnNjcmlw dGlvbihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYudGVzdGVyLnBvc3QoCisgICAgICAgICAg ICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAg IHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoCisgICAgICAgICAgICAgICAgc2VsZi5k Yl9pZCkgKyAnLycsCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi50ZXN0X2RhdGEp LAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgZGVmIHRlYXJE b3duKHNlbGYpOgorICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAg ICBzdWJzY3JpcHRpb25fdXRpbHMuZGVsZXRlX3N1YnNjcmlwdGlvbihzZWxmLnNlcnZlciwgc2Vs Zi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi50ZXN0X2RhdGFbJ25hbWUnXSkKKworICAgICAgICAjIERpc2Nvbm5lY3QgdGhl IGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2Vs Ziwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0 cy90ZXN0X3N1YnNjcmlwdGlvbl9kZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy90ZXN0X3N1YnNj cmlwdGlvbl9kZWxldGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi43 Y2QyYWFmY2UKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy90ZXN0X3N1YnNjcmlw dGlvbl9kZWxldGUucHkKQEAgLTAsMCArMSw5MyBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMg cGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAy MDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KworaW1wb3J0IHV1aWQKK2Zyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gKKworZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRl c3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBh cyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQg QmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGlj dAorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFz IHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHN1YnNjcmlwdGlvbl91dGlscworCisKK2Ns YXNzIFB1YmxpY2F0aW9uRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIi IlRoaXMgY2xhc3Mgd2lsbCBkZWxldGUgc3Vic2NyaXB0aW9uLiIiIgorICAgIHNjZW5hcmlvcyA9 IHV0aWxzLmdlbmVyYXRlX3NjZW5hcmlvcygnZGVsZXRlX3N1YnNjcmlwdGlvbicsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbl91dGlscy50ZXN0 X2Nhc2VzKQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmRiX25hbWUgPSBw YXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAgICAgIHNjaGVt YV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCisgICAgICAgIHNlbGYuc2Vy dmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCisgICAgICAgIHNlbGYuZGJfaWQgPSBz Y2hlbWFfaW5mb1siZGJfaWQiXQorICAgICAgICBzZWxmLnNlcnZlcl92ZXJzaW9uID0gc2NoZW1h X2luZm9bInNlcnZlcl92ZXJzaW9uIl0KKyAgICAgICAgaWYgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA8 IDk5OTk5OgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgKKyAgICAgICAgICAgICAgICAiTG9n aWNhbCByZXBsaWNhdGlvbiBpcyBub3Qgc3VwcG9ydGVkICIKKyAgICAgICAgICAgICAgICAiZm9y IHNlcnZlciB2ZXJzaW9uIGxlc3MgdGhhbiAxMCIKKworICAgICAgICAgICAgKQorICAgICAgICBk Yl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZF Ul9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0 YSddWyJjb25uZWN0ZWQiXToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAg ICAgICAgICAiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gZGVsZXRlIHN1YnNjcmlw dGlvbi4iKQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQi XQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0K KyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNl bGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNj aGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZp bmQgdGhlIHNjaGVtYSB0byBkZWxldGUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz dWJzY3JpcHRpb24uIikKKyAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25fbmFtZSA9ICJ0ZXN0X3N1 YnNjcmlwdGlvbl9kZWxldGVfJXMiICUgKAorICAgICAgICAgICAgc3RyKHV1aWQudXVpZDQoKSlb MTo4XSkKKworICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9pZCA9IHN1YnNjcmlwdGlvbl91dGls cy5jcmVhdGVfc3Vic2NyaXB0aW9uKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsCisgICAgICAg ICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lKQor CisgICAgZGVmIGRlbGV0ZV9zdWJzY3JpcHRpb24oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxm LnRlc3Rlci5kZWxldGUoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJf R1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBz dHIoc2VsZi5kYl9pZCkgKworICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc3Vic2NyaXB0aW9u X2lkKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAgIGRlZiBydW5U ZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHN1YnNjcmlw dGlvbiIiIgorICAgICAgICBzdWJzY3JpcHRpb25fcmVzcG9uc2UgPSBzdWJzY3JpcHRpb25fdXRp bHMudmVyaWZ5X3N1YnNjcmlwdGlvbigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLAorICAgICAg ICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25fbmFtZSkK KyAgICAgICAgaWYgbm90IHN1YnNjcmlwdGlvbl9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHN1YnNjcmlwdGlvbiB0byBkZWxldGUuIikK KworICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICBpZiBoYXNh dHRyKHNlbGYsICJpbnZhbGlkX3N1YnNjcmlwdGlvbl9pZCIpOgorICAgICAgICAgICAgICAgIHNl bGYuc3Vic2NyaXB0aW9uX2lkID0gOTk5OQorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmRl bGV0ZV9zdWJzY3JpcHRpb24oKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2l0aCBwYXRj aChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVlIl0pKToKKyAg ICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZGVsZXRlX3N1YnNjcmlwdGlvbigpCisKKyAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkX2RhdGFbInN0YXR1c19jb2RlIl0pCisKKyAgICBk ZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAg ICAgICAgc3Vic2NyaXB0aW9uX3V0aWxzLmRlbGV0ZV9zdWJzY3JpcHRpb24oc2VsZi5zZXJ2ZXIs IHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zdWJzY3JpcHRpb25fbmFtZSkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlz Y29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zdWJzY3JpcHRpb25zL3Rlc3RzL3Rlc3Rfc3Vic2NyaXB0aW9uX2RlbGV0ZV9tdWx0aXBsZS5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z dWJzY3JpcHRpb25zL3Rlc3RzL3Rlc3Rfc3Vic2NyaXB0aW9uX2RlbGV0ZV9tdWx0aXBsZS5weQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmVhOTNjMDZmMgotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3Rlc3Rfc3Vic2NyaXB0aW9uX2RlbGV0ZV9tdWx0aXBs ZS5weQpAQCAtMCwwICsxLDEwNiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0 IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUg cGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0 IHV1aWQKK2ltcG9ydCBqc29uCisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAorICAgIGltcG9ydCB1dGls cyBhcyB0YWJsZXNfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVt YV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBn YWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Np b24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91 dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBz dWJzY3JpcHRpb25fdXRpbHMKKworCitjbGFzcyBQdWJsaWNhdGlvbkRlbGV0ZVRlc3RDYXNlcyhC YXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSBzdWJzY3Jp cHRpb24uIiIiCisKKyAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoJ2Rl bGV0ZV9tdWx0aXBsZV9zdWJzY3JpcHRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdWJzY3JpcHRpb25fdXRpbHMudGVzdF9jYXNlcykKKworICAgIGRlZiBz ZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0 YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2Rl X2RpY3RbInNjaGVtYSJdWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZv WyJzZXJ2ZXJfaWQiXQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0K KyAgICAgICAgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfdmVyc2lv biJdCisgICAgICAgIGlmIHNlbGYuc2VydmVyX3ZlcnNpb24gPCA5OTk5OToKKyAgICAgICAgICAg IHNlbGYuc2tpcFRlc3QoCisgICAgICAgICAgICAgICAgIkxvZ2ljYWwgcmVwbGljYXRpb24gaXMg bm90IHN1cHBvcnRlZCAiCisgICAgICAgICAgICAgICAgImZvciBzZXJ2ZXIgdmVyc2lvbiBsZXNz IHRoYW4gMTAiCisKKyAgICAgICAgICAgICkKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRp bHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNl bGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Cisg ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBj b25uZWN0IHRvIGRhdGFiYXNlIHRvIGRlbGV0ZSBzdWJzY3JpcHRpb24uIikKKyAgICAgICAgc2Vs Zi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAgIHNjaGVtYV9yZXNw b25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gIgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZWxldGUgc3Vic2NyaXB0aW9uLiIpCisgICAg ICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0YWJsZV9jb2x1bW5fJXMiICUgKHN0cih1dWlkLnV1aWQ0 KCkpWzE6OF0pCisgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3Rh YmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKKyAg ICAgICAgc2VsZi5zdWJzY3JpcHRpb25fbmFtZSA9ICJ0ZXN0X3N1YnNjcmlwdGlvbl9kZWxldGVf JXMiICUgKAorICAgICAgICAgICAgc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgc2Vs Zi5zdWJzY3JpcHRpb25fbmFtZV8xID0gInRlc3Rfc3Vic2NyaXB0aW9uX2RlbGV0ZV8lcyIgJSAo CisgICAgICAgICAgICBzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBzZWxmLnN1YnNj cmlwdGlvbl9pZHMgPSBbCisgICAgICAgICAgICBzdWJzY3JpcHRpb25fdXRpbHMuY3JlYXRlX3N1 YnNjcmlwdGlvbihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25fbmFtZSks CisgICAgICAgICAgICBzdWJzY3JpcHRpb25fdXRpbHMuY3JlYXRlX3N1YnNjcmlwdGlvbihzZWxm LnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25fbmFtZV8xKSwKKyAgICAgICAgXQor CisgICAgZGVmIGRlbGV0ZV9tdWx0aXBsZV9zdWJzY3JpcHRpb24oc2VsZiwgZGF0YSk6CisgICAg ICAgIHJldHVybiBzZWxmLnRlc3Rlci5kZWxldGUoCisgICAgICAgICAgICAiezB9ezF9L3syfS97 M30vIi5mb3JtYXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICBmb2xsb3dfcmVk aXJlY3RzPVRydWUsCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAg ICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAgICAgKQorCisgICAgZGVmIHJ1blRl c3Qoc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgc3Vic2NyaXB0 aW9uLiIiIgorICAgICAgICBzdWJzY3JpcHRpb25fcmVzcG9uc2UgPSBzdWJzY3JpcHRpb25fdXRp bHMudmVyaWZ5X3N1YnNjcmlwdGlvbigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLAorICAgICAg ICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25fbmFtZSkK KyAgICAgICAgaWYgbm90IHN1YnNjcmlwdGlvbl9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHN1YnNjcmlwdGlvbiB0byBkZWxldGUuIikK KworICAgICAgICBzdWJzY3JpcHRpb25fcmVzcG9uc2UgPSBzdWJzY3JpcHRpb25fdXRpbHMudmVy aWZ5X3N1YnNjcmlwdGlvbigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLAorICAgICAgICAgICAg c2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25fbmFtZV8xKQorICAg ICAgICBpZiBub3Qgc3Vic2NyaXB0aW9uX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc3Vic2NyaXB0aW9uIHRvIGRlbGV0ZS4iKQorCisg ICAgICAgIGRhdGEgPSB7J2lkcyc6IHNlbGYuc3Vic2NyaXB0aW9uX2lkc30KKyAgICAgICAgaWYg c2VsZi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmRlbGV0 ZV9tdWx0aXBsZV9zdWJzY3JpcHRpb24oZGF0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChy ZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVj dGVkX2RhdGFbInN0YXR1c19jb2RlIl0pCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAg ICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKworICAgICAgICBkYXRhYmFzZV91dGlscy5k aXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvdGVzdF9zdWJzY3JpcHRpb25fZ2V0LnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlv bnMvdGVzdHMvdGVzdF9zdWJzY3JpcHRpb25fZ2V0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMC4uYjYwN2MzMzk5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVz dHMvdGVzdF9zdWJzY3JpcHRpb25fZ2V0LnB5CkBAIC0wLDAgKzEsOTkgQEAKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0 IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNv ZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisKK2ltcG9ydCB1dWlkCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBh dGNoCisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAorICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRp bHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu c2NoZW1hcy50ZXN0cyBpbXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBv cnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVu dF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVz dF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBzdWJzY3JpcHRpb25fdXRp bHMKKworCitjbGFzcyBQdWJsaWNhdGlvbkdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK KyAgICAiIiJUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggdGhlIHN1YnNjcmlwdGlvbiB1bmRlciB0YWJs ZSBub2RlLiIiIgorICAgIHNjZW5hcmlvcyA9IHV0aWxzLmdlbmVyYXRlX3NjZW5hcmlvcygnZ2V0 X3N1YnNjcmlwdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN1YnNjcmlwdGlvbl91dGlscy50ZXN0X2Nhc2VzKQorCisgICAgZGVmIHNldFVwKHNlbGYpOgor ICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsi ZGJfbmFtZSJdCisgICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1h Il1bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJd CisgICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQorICAgICAgICBzZWxm LnNlcnZlcl92ZXJzaW9uID0gc2NoZW1hX2luZm9bInNlcnZlcl92ZXJzaW9uIl0KKyAgICAgICAg aWYgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA8IDk5OTk5OgorICAgICAgICAgICAgc2VsZi5za2lwVGVz dCgKKyAgICAgICAgICAgICAgICAiTG9naWNhbCByZXBsaWNhdGlvbiBpcyBub3Qgc3VwcG9ydGVk ICIKKyAgICAgICAgICAgICAgICAiZm9yIHNlcnZlciB2ZXJzaW9uIGxlc3MgdGhhbiAxMCIKKwor ICAgICAgICAgICAgKQorICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2Rh dGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAg ICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gIgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJkZWxldGUgc3Vic2NyaXB0aW9uLiIpCisgICAgICAgIHNl bGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCisgICAgICAgIHNlbGYuc2No ZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQorICAgICAgICBzY2hlbWFfcmVz cG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgorICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGRl bGV0ZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnNjcmlwdGlvbi4iKQorICAg ICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfY29sdW1uXyVzIiAlIChzdHIodXVpZC51dWlk NCgpKVsxOjhdKQorICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90 YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCisg ICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX25hbWUgPSAidGVzdF9zdWJzY3JpcHRpb25fZGVsZXRl XyVzIiAlICgKKyAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNl bGYuc3Vic2NyaXB0aW9uX2lkID0gc3Vic2NyaXB0aW9uX3V0aWxzLmNyZWF0ZV9zdWJzY3JpcHRp b24oCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAg c2VsZi5zdWJzY3JpcHRpb25fbmFtZSkKKworICAgIGRlZiBnZXRfc3Vic2NyaXB0aW9uKHNlbGYp OgorICAgICAgICByZXR1cm4gc2VsZi50ZXN0ZXIuZ2V0KAorICAgICAgICAgICAgc2VsZi51cmwg KyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0cigKKyAgICAgICAgICAgICAgICBz ZWxmLnNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8n ICsgc3RyKHNlbGYuc3Vic2NyaXB0aW9uX2lkKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0n aHRtbC9qc29uJykKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1 bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIHN1YnNjcmlwdGlvbi4iIiIKKworICAgICAgICBpZiBzZWxm LmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJkYXRhYmFz ZV9ub2RlcyIpOgorICAgICAgICAgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX2lkID0gJycKKyAg ICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X3N1YnNjcmlwdGlvbigpCisgICAgICAg ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5nZXRfc3Vic2NyaXB0 aW9uKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgImRhdGFi YXNlX25vZGVzIik6CisgICAgICAgICAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25faWQgPSAnJwor ICAgICAgICAgICAgICAgIHdpdGggcGF0Y2goc2VsZi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUi XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1ldmFsKHNlbGYubW9j a19kYXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9 IHNlbGYuZ2V0X3N1YnNjcmlwdGlvbigpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg ICAgIHdpdGggcGF0Y2goc2VsZi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1ldmFsKHNlbGYubW9ja19kYXRhWyJyZXR1 cm5fdmFsdWUiXSkpOgorICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X3N1 YnNjcmlwdGlvbigpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNf Y29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkX2RhdGFbInN0YXR1 c19jb2RlIl0pCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICMgRGlzY29ubmVj dCB0aGUgZGF0YWJhc2UKKyAgICAgICAgc3Vic2NyaXB0aW9uX3V0aWxzLmRlbGV0ZV9zdWJzY3Jp cHRpb24oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25fbmFtZSkKKyAgICAgICAg ZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwg c2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3Rlc3Rfc3Vic2NyaXB0aW9u X3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3Rlc3Rfc3Vic2NyaXB0aW9uX3B1dC5weQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjJkNDc5YjFhMwotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z dWJzY3JpcHRpb25zL3Rlc3RzL3Rlc3Rfc3Vic2NyaXB0aW9uX3B1dC5weQpAQCAtMCwwICsxLDEx MiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29s cworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVu dCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwg TGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IGpzb24KK2ltcG9ydCB1dWlk Citmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCisKK2Zyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAor ICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAorICAg IHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNl X3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Citmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lv bi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGlt cG9ydCB1dGlscyBhcyBzdWJzY3JpcHRpb25fdXRpbHMKKworCitjbGFzcyBQdWJsaWNhdGlvblVw ZGF0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiJUaGlzIGNsYXNzIHdpbGwg dXBkYXRlIHRoZSBzdWJzY3JpcHRpb24uIiIiCisgICAgc2NlbmFyaW9zID0gdXRpbHMuZ2VuZXJh dGVfc2NlbmFyaW9zKCd1cGRhdGVfc3Vic2NyaXB0aW9uJywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uX3V0aWxzLnRlc3RfY2FzZXMpCisKKyAg ICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2Rp Y3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJl bnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hl bWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJk Yl9pZCJdCisgICAgICAgIHNlbGYuc2VydmVyX3ZlcnNpb24gPSBzY2hlbWFfaW5mb1sic2VydmVy X3ZlcnNpb24iXQorICAgICAgICBpZiBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgOTk5OTk6CisgICAg ICAgICAgICBzZWxmLnNraXBUZXN0KAorICAgICAgICAgICAgICAgICJMb2dpY2FsIHJlcGxpY2F0 aW9uIGlzIG5vdCBzdXBwb3J0ZWQgIgorICAgICAgICAgICAgICAgICJmb3Igc2VydmVyIHZlcnNp b24gbGVzcyB0aGFuIDEwIgorCisgICAgICAgICAgICApCisgICAgICAgIGRiX2NvbiA9IGRhdGFi YXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3Rl ZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJDb3Vs ZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBkZWxldGUgc3Vic2NyaXB0aW9uLiIpCisgICAg ICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCisgICAgICAgIHNl bGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQorICAgICAgICBzY2hl bWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNl OgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1h IHRvIGRlbGV0ZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnNjcmlwdGlvbi4i KQorICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfY29sdW1uXyVzIiAlIChzdHIodXVp ZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNy ZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25h bWUpCisgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX25hbWUgPSAidGVzdF9zdWJzY3JpcHRpb25f dXBkYXRlXyVzIiAlICgKKyAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAg ICAgIHNlbGYuc3Vic2NyaXB0aW9uX2lkID0gXAorICAgICAgICAgICAgc3Vic2NyaXB0aW9uX3V0 aWxzLmNyZWF0ZV9zdWJzY3JpcHRpb24oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3Vic2Ny aXB0aW9uX25hbWUpCisKKyAgICBkZWYgdXBkYXRlX3N1YnNjcmlwdGlvbihzZWxmLCBkYXRhKToK KyAgICAgICAgcmV0dXJuIHNlbGYudGVzdGVyLnB1dCgKKyAgICAgICAgICAgIHNlbGYudXJsICsg c3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2Vy dmVyX2lkKSArICcvJyArIHN0cigKKyAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKSArCisgICAg ICAgICAgICAnLycgKyBzdHIoc2VsZi5zdWJzY3JpcHRpb25faWQpLAorICAgICAgICAgICAgZGF0 YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQor CisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCB1 cGRhdGUgdGhlIHN1YnNjcmlwdGlvbi4iIiIKKyAgICAgICAgc3Vic2NyaXB0aW9uX25hbWUgPSBc CisgICAgICAgICAgICBzdWJzY3JpcHRpb25fdXRpbHMudmVyaWZ5X3N1YnNjcmlwdGlvbihzZWxm LnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25fbmFtZSkKKyAgICAgICAgaWYgaGFz YXR0cihzZWxmLCAidXBkYXRlX25hbWUiKToKKyAgICAgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9u X25hbWUgPSAidGVzdF9zdWJzY3JpcHRpb25fdXBkYXRlXzJfJXMiICUgKAorICAgICAgICAgICAg ICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgICAgICBzZWxmLnRlc3RfZGF0YVsn bmFtZSddID0gc2VsZi5zdWJzY3JpcHRpb25fbmFtZQorICAgICAgICBlbHNlOgorICAgICAgICAg ICAgc2VsZi50ZXN0X2RhdGFbJ25hbWUnXSA9IHNlbGYuc3Vic2NyaXB0aW9uX25hbWUKKyAgICAg ICAgc2VsZi50ZXN0X2RhdGFbJ2lkJ10gPSBzZWxmLnN1YnNjcmlwdGlvbl9pZAorCisgICAgICAg IGlmIG5vdCBzdWJzY3JpcHRpb25fbmFtZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGZpbmQgdGhlIHN1YnNjcmlwdGlvbiB0byB1cGRhdGUuIikKKworICAgICAgICBp ZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJ3 cm9uZ19zdWJzY3JpcHRpb25faWQiKToKKyAgICAgICAgICAgICAgICBzZWxmLnN1YnNjcmlwdGlv bl9pZCA9IDk5OTkKKyAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgInBsaWRfbm9uZSIpOgor ICAgICAgICAgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX2lkID0gJycKKyAgICAgICAgICAgIHJl c3BvbnNlID0gc2VsZi51cGRhdGVfc3Vic2NyaXB0aW9uKHNlbGYudGVzdF9kYXRhKQorICAgICAg ICBlbHNlOgorICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25f bmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1v Y2tfZGF0YVsicmV0dXJuX3ZhbHVlIl0pKToKKyAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKHNl bGYsICJ3cm9uZ19zdWJzY3JpcHRpb25faWQiKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5z dWJzY3JpcHRpb25faWQgPSA5OTk5CisgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnVw ZGF0ZV9zdWJzY3JpcHRpb24oc2VsZi50ZXN0X2RhdGEpCisKKyAgICAgICAgc2VsZi5hc3NlcnRF cXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmV4cGVjdGVkX2RhdGFbInN0YXR1c19jb2RlIl0pCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6 CisKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBzdWJzY3JpcHRp b25fdXRpbHMuZGVsZXRlX3N1YnNjcmlwdGlvbihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN1YnNj cmlwdGlvbl9uYW1lKQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNl KHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMv dGVzdHMvdGVzdF9zdWJzY3JpcHRpb25fc3FsLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvdGVzdF9zdWJz Y3JpcHRpb25fc3FsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNzk3 ZGYzMzIzCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvdGVzdF9zdWJzY3JpcHRp b25fc3FsLnB5CkBAIC0wLDAgKzEsODggQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRt aW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwg VGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2lt cG9ydCB1dWlkCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCitmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRl c3RzIFwKKyAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0 IFwKKyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBk YXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHJl Z3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zy b20gLiBpbXBvcnQgdXRpbHMgYXMgc3Vic2NyaXB0aW9uX3V0aWxzCisKKworY2xhc3MgUHVibGlj YXRpb25HZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3 aWxsIGZldGNoIHRoZSBzdWJzY3JpcHRpb24gdW5kZXIgdGFibGUgbm9kZS4iIiIKKyAgICBzY2Vu YXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoJ3NxbF9zdWJzY3JpcHRpb24nLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25fdXRpbHMu dGVzdF9jYXNlcykKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5kYl9uYW1l ID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBz Y2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQorICAgICAgICBzZWxm LnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQorICAgICAgICBzZWxmLmRiX2lk ID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA9IHNj aGVtYV9pbmZvWyJzZXJ2ZXJfdmVyc2lvbiJdCisgICAgICAgIGlmIHNlbGYuc2VydmVyX3ZlcnNp b24gPCA5OTk5OToKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoCisgICAgICAgICAgICAgICAg IkxvZ2ljYWwgcmVwbGljYXRpb24gaXMgbm90IHN1cHBvcnRlZCAiCisgICAgICAgICAgICAgICAg ImZvciBzZXJ2ZXIgdmVyc2lvbiBsZXNzIHRoYW4gMTAiCisKKyAgICAgICAgICAgICkKKyAgICAg ICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5T RVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25b J2RhdGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAg ICAgICAgICAgICAgIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGRlbGV0ZSBzdWJz Y3JpcHRpb24uIikKKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1h X2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFt ZSJdCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1h cyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5v dCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5v dCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAic3Vic2NyaXB0aW9uLiIpCisgICAgICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0YWJsZV9jb2x1 bW5fJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNlbGYudGFibGVfaWQg PSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2No ZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYudGFibGVfbmFtZSkKKyAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25fbmFtZSA9ICJ0 ZXN0X3N1YnNjcmlwdGlvbl9kZWxldGVfJXMiICUgKAorICAgICAgICAgICAgc3RyKHV1aWQudXVp ZDQoKSlbMTo4XSkKKyAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25faWQgPSBcCisgICAgICAgICAg ICBzdWJzY3JpcHRpb25fdXRpbHMuY3JlYXRlX3N1YnNjcmlwdGlvbihzZWxmLnNlcnZlciwgc2Vs Zi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zdWJzY3JpcHRpb25fbmFtZSkKKworICAgIGRlZiBnZXRfc3FsKHNlbGYpOgor ICAgICAgICByZXR1cm4gc2VsZi50ZXN0ZXIuZ2V0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBz dHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0cigKKyAgICAgICAgICAgICAgICBzZWxm LnNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsg c3RyKHNlbGYuc3Vic2NyaXB0aW9uX2lkKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRt bC9qc29uJykKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0 aW9uIHdpbGwgZmV0Y2ggdGhlIHN1YnNjcmlwdGlvbiB1bmRlciB0YWJsZSBub2RlLiIiIgorCisg ICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAgICAgIHJlc3BvbnNlID0g c2VsZi5nZXRfc3FsKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHdpdGggcGF0Y2goc2Vs Zi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuX3ZhbHVlPWV2YWwoc2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1ZSJdKSk6CisgICAgICAg ICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmdldF9zcWwoKQorCisgICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5leHBlY3RlZF9kYXRhWyJzdGF0dXNfY29kZSJdKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYp OgorICAgICAgICBzdWJzY3JpcHRpb25fdXRpbHMuZGVsZXRlX3N1YnNjcmlwdGlvbihzZWxmLnNl cnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lKQorICAgICAgICAjIERpc2Nvbm5lY3Qg dGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uo c2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90 ZXN0cy91dGlscy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3V0aWxzLnB5Cm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMC4uMzg1ZDdjNzNlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlv bnMvdGVzdHMvdXRpbHMucHkKQEAgLTAsMCArMSwxNTcgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisj CisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEz IC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlz IHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisKKworaW1wb3J0IHN5cworaW1wb3J0IG9zCitpbXBvcnQganNvbgoraW1wb3J0IHRyYWNl YmFjaworCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRp bHMgYXMgdXRpbHMKKworQ1VSUkVOVF9QQVRIID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgucmVh bHBhdGgoX19maWxlX18pKQord2l0aCBvcGVuKENVUlJFTlRfUEFUSCArICIvc3Vic2NyaXB0aW9u X3Rlc3RfZGF0YS5qc29uIikgYXMgZGF0YV9maWxlOgorICAgIHRlc3RfY2FzZXMgPSBqc29uLmxv YWQoZGF0YV9maWxlKQorCisKK2RlZiBnZXRfdGFibGVzKHNlbGYpOgorICAgIHRhYmxlcyA9IHNl bGYudGVzdGVyLmdldCgKKyAgICAgICAgJy9icm93c2VyL3N1YnNjcmlwdGlvbi9nZXRfdGFibGVz LycgKyBzdHIoCisgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsgc3RyKAor ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgc3RyKHNlbGYuZGJf aWQpICsgJy8nLAorICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisgICAgcmV0dXJu IGpzb24uZHVtcHMoW3RhYmxlcy5qc29uWydkYXRhJ11bMV1bJ3ZhbHVlJ11dKQorCisKK2RlZiBj cmVhdGVfc3Vic2NyaXB0aW9uX2FwaShzZWxmKToKKyAgICByZXR1cm4gc2VsZi50ZXN0ZXIucG9z dCgKKyAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisg ICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoCisgICAgICAgICAgICBzZWxm LmRiX2lkKSArICcvJywKKyAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYudGVzdF9kYXRhKSwK KyAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisKK2RlZiBjcmVhdGVfc3Vic2Ny aXB0aW9uKHNlcnZlciwgZGJfbmFtZSwgc3Vic2NyaXB0aW9uX25hbWUpOgorICAgICIiIgorICAg IFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIHN1YnNjcmlwdGlvbi4KKyAgICA6cGFyYW0gc2VydmVy OiBzZXJ2ZXIgZGV0YWlscworICAgIDp0eXBlIHNlcnZlcjogZGljdAorICAgIDpwYXJhbSBkYl9u YW1lOiBkYXRhYmFzZSBuYW1lCisgICAgOnR5cGUgZGJfbmFtZTogc3RyCisgICAgOnBhcmFtIHN1 YnNjcmlwdGlvbl9uYW1lOiBzdWJzY3JpcHRpb24gbmFtZQorICAgIDp0eXBlIHN1YnNjcmlwdGlv bl9uYW1lOiBzdHIKKyAgICA6cmV0dXJuIHN1YnNjcmlwdGlvbl9pZDogc3Vic2NyaXB0aW9uIGlk CisgICAgOnJ0eXBlOiBpbnQKKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIGNvbm5lY3Rpb24g PSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydkYl9wYXNzd29yZCddLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydob3N0 J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJb J3BvcnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl cnZlclsnc3NsbW9kZSddKQorICAgICAgICBvbGRfaXNvbGF0aW9uX2xldmVsID0gY29ubmVjdGlv bi5pc29sYXRpb25fbGV2ZWwKKyAgICAgICAgY29ubmVjdGlvbi5zZXRfaXNvbGF0aW9uX2xldmVs KDApCisgICAgICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAgcXVl cnkgPSAiIiJDUkVBVEUgU1VCU0NSSVBUSU9OICIlcyIgIiIiIFwKKyAgICAgICAgICAgICAgICAi IiJDT05ORUNUSU9OICdob3N0PTE5Mi4xNjguMS41MCBwb3J0PTU0MzIgdXNlcj1mb28gIiIiIFwK KyAgICAgICAgICAgICAgICAiIiJkYm5hbWU9Zm9vZGInICIiIiBcCisgICAgICAgICAgICAgICAg IiIiUFVCTElDQVRJT04gaW5zZXJ0X29ubHkgV0lUSCAoY3JlYXRlX3Nsb3QgPSBmYWxzZSwgIiIi IFwKKyAgICAgICAgICAgICAgICAiIiJlbmFibGVkID0gZmFsc2UsIHNsb3RfbmFtZT1OT05FLCBj b25uZWN0PWZhbHNlKTsiIiIgJSAoCisgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9u YW1lKQorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZShxdWVyeSkKKyAgICAgICAgY29ubmVjdGlv bi5zZXRfaXNvbGF0aW9uX2xldmVsKG9sZF9pc29sYXRpb25fbGV2ZWwpCisgICAgICAgIGNvbm5l Y3Rpb24uY29tbWl0KCkKKyAgICAgICAgIyBHZXQgcm9sZSBvaWQgb2YgbmV3bHkgYWRkZWQgc3Vi c2NyaXB0aW9uCisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCJzZWxlY3Qgb2lkIGZyb20gcGdf c3Vic2NyaXB0aW9uIHN1YiB3aGVyZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWIu c3VibmFtZT0nJXMnIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbl9u YW1lKQorICAgICAgICBzdWJzY3JpcHRpb24gPSBwZ19jdXJzb3IuZmV0Y2hvbmUoKQorICAgICAg ICBzdWJzY3JpcHRpb25faWQgPSAnJworICAgICAgICBpZiBzdWJzY3JpcHRpb246CisgICAgICAg ICAgICBzdWJzY3JpcHRpb25faWQgPSBzdWJzY3JpcHRpb25bMF0KKyAgICAgICAgY29ubmVjdGlv bi5jbG9zZSgpCisgICAgICAgIHJldHVybiBzdWJzY3JpcHRpb25faWQKKyAgICBleGNlcHQgRXhj ZXB0aW9uOgorICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lzLnN0ZGVycikKKyAg ICAgICAgcmFpc2UKKworCitkZWYgdmVyaWZ5X3N1YnNjcmlwdGlvbihzZXJ2ZXIsIGRiX25hbWUs IHN1YnNjcmlwdGlvbl9uYW1lKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHZlcmlmaWVz IHN1YnNjcmlwdGlvbiBleGlzdCBpbiBkYXRhYmFzZSBvciBub3QuCisgICAgOnBhcmFtIHNlcnZl cjogc2VydmVyIGRldGFpbHMKKyAgICA6dHlwZSBzZXJ2ZXI6IGRpY3QKKyAgICA6cGFyYW0gZGJf bmFtZTogZGF0YWJhc2UgbmFtZQorICAgIDp0eXBlIGRiX25hbWU6IHN0cgorICAgIDpwYXJhbSBz dWJzY3JpcHRpb25fbmFtZTogc3Vic2NyaXB0aW9uIG5hbWUKKyAgICA6dHlwZSBzdWJzY3JpcHRp b25fbmFtZTogc3RyCisgICAgOnJldHVybiBzdWJzY3JpcHRpb246IHN1YnNjcmlwdGlvbiByZWNv cmQgZnJvbSBkYXRhYmFzZQorICAgIDpydHlwZTogdHVwbGUKKyAgICAiIiIKKyAgICB0cnk6Cisg ICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihkYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWyd1c2VybmFt ZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVy WydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyWydob3N0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlcnZlclsnc3NsbW9kZSddKQorICAgICAgICBwZ19jdXJzb3IgPSBj b25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCJzZWxlY3QgKiBm cm9tIHBnX3N1YnNjcmlwdGlvbiBzdWIgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAid2hl cmUgc3ViLnN1Ym5hbWU9JyVzJyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3Jp cHRpb25fbmFtZSkKKyAgICAgICAgc3Vic2NyaXB0aW9uID0gcGdfY3Vyc29yLmZldGNob25lKCkK KyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgpCisgICAgICAgIHJldHVybiBzdWJzY3JpcHRpb24K KyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9 c3lzLnN0ZGVycikKKyAgICAgICAgcmFpc2UKKworCitkZWYgZGVsZXRlX3N1YnNjcmlwdGlvbihz ZXJ2ZXIsIGRiX25hbWUsIHN1YnNjcmlwdGlvbl9uYW1lKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1 bmN0aW9uIHVzZSB0byBkZWxldGUgdGhlIGV4aXN0aW5nIHN1YnNjcmlwdGlvbgorCisgICAgOnBh cmFtIGRiX25hbWU6ICBkYl9uYW1lCisgICAgOnR5cGUgZGJfbmFtZTogZGJfbmFtZSBvYmplY3QK KyAgICA6cGFyYW0gc2VydmVyOiBzZXJ2ZXIKKyAgICA6dHlwZSBzZXJ2ZXI6IHNlcnZlciBvYmpl Y3QKKyAgICA6cGFyYW0gc3Vic2NyaXB0aW9uX25hbWU6IHN1YnNjcmlwdGlvbiBuYW1lCisgICAg OnR5cGUgc3Vic2NyaXB0aW9uX25hbWU6IHN0cgorICAgIDpyZXR1cm46IE5vbmUKKyAgICAiIiIK KworICAgIHRyeToKKyAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9u KGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZXJ2ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsncG9ydCddLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydzc2xtb2RlJ10pCisgICAgICAg IHBnX2N1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKworICAgICAgICBwZ19jdXJzb3IuZXhl Y3V0ZSgic2VsZWN0ICogZnJvbSBwZ19zdWJzY3JpcHRpb24gc3ViIHdoZXJlICIKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgInN1Yi5zdWJuYW1lPSclcyciICUKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgc3Vic2NyaXB0aW9uX25hbWUpCisgICAgICAgIHN1YnNjcmlwdGlvbl9jb3VudCA9 IHBnX2N1cnNvci5mZXRjaG9uZSgpCisgICAgICAgIGlmIHN1YnNjcmlwdGlvbl9jb3VudDoKKyAg ICAgICAgICAgIG9sZF9pc29sYXRpb25fbGV2ZWwgPSBjb25uZWN0aW9uLmlzb2xhdGlvbl9sZXZl bAorICAgICAgICAgICAgY29ubmVjdGlvbi5zZXRfaXNvbGF0aW9uX2xldmVsKDApCisgICAgICAg ICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgICAgICBxdWVyeSA9 ICJEUk9QIHN1YnNjcmlwdGlvbiAlcyIgJSBcCisgICAgICAgICAgICAgICAgICAgIChzdWJzY3Jp cHRpb25fbmFtZSkKKyAgICAgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKHF1ZXJ5KQorICAgICAg ICAgICAgY29ubmVjdGlvbi5zZXRfaXNvbGF0aW9uX2xldmVsKG9sZF9pc29sYXRpb25fbGV2ZWwp CisgICAgICAgICAgICBjb25uZWN0aW9uLmNvbW1pdCgpCisgICAgICAgIGNvbm5lY3Rpb24uY2xv c2UoKQorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMo ZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICByYWlzZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v c3RhdGljL2pzL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL21vZGVsX3ZhbGlkYXRpb24u anMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv bW9kZWxfdmFsaWRhdGlvbi5qcwppbmRleCA1MWIxMTA4NDcuLjNmZjI1MGJmNyAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL21v ZGVsX3ZhbGlkYXRpb24uanMKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL21vZGVsX3ZhbGlkYXRpb24uanMKQEAgLTE5LDcgKzE5LDggQEAg ZXhwb3J0IGNsYXNzIE1vZGVsVmFsaWRhdGlvbiB7CiAgIH0KIAogICB2YWxpZGF0ZSgpIHsKLSAg ICBjb25zdCBzZXJ2aWNlSWQgPSB0aGlzLm1vZGVsLmdldCgnc2VydmljZScpOworICAgIGNvbnN0 IHNlcnZpY2VJZCA9IHRoaXMubW9kZWwuZ2V0KCdzZXJ2aWNlJyksCisgICAgICBwdWIgPSB0aGlz Lm1vZGVsLmdldCgncHViJyk7CiAKICAgICBpZiAoIXRoaXMubW9kZWwuaXNOZXcoKSAmJiAnaWQn IGluIHRoaXMubW9kZWwuc2Vzc0F0dHJzKSB7CiAgICAgICB0aGlzLmVyclsnaWQnXSA9IGdldHRl eHQoJ1RoZSBJRCBjYW5ub3QgYmUgY2hhbmdlZC4nKTsKQEAgLTM4LDggKzM5LDE0IEBAIGV4cG9y dCBjbGFzcyBNb2RlbFZhbGlkYXRpb24gewogICAgICAgdGhpcy5jaGVja0ZvckVtcHR5KCdkYics IGdldHRleHQoJ01haW50ZW5hbmNlIGRhdGFiYXNlIG11c3QgYmUgc3BlY2lmaWVkLicpKTsKICAg ICAgIHRoaXMuY2hlY2tGb3JFbXB0eSgndXNlcm5hbWUnLCBnZXR0ZXh0KCdVc2VybmFtZSBtdXN0 IGJlIHNwZWNpZmllZC4nKSk7CiAgICAgICB0aGlzLmNoZWNrRm9yRW1wdHkoJ3BvcnQnLCBnZXR0 ZXh0KCdQb3J0IG11c3QgYmUgc3BlY2lmaWVkLicpKTsKKyAgICAgIGlmKCFfLmlzVW5kZWZpbmVk KHB1YikgJiYgcHViLmxlbmd0aCA9PSAwKXsKKyAgICAgICAgdGhpcy5jaGVja0ZvckVtcHR5KCdw dWInLCBnZXR0ZXh0KCdQdWJsaWNhdGlvbiBtdXN0IGJlIHNwZWNpZmllZC4nKSk7CisgICAgICB9 CiAgICAgfSBlbHNlIHsKICAgICAgIHRoaXMuY2hlY2tGb3JFbXB0eSgnZGInLCBnZXR0ZXh0KCdN YWludGVuYW5jZSBkYXRhYmFzZSBtdXN0IGJlIHNwZWNpZmllZC4nKSk7CisgICAgICBpZighXy5p c1VuZGVmaW5lZChwdWIpICYmIHB1Yi5sZW5ndGggPT0gMCl7CisgICAgICAgIHRoaXMuY2hlY2tG b3JFbXB0eSgncHViJywgZ2V0dGV4dCgnUHVibGljYXRpb24gbXVzdCBiZSBzcGVjaWZpZWQuJykp OworICAgICAgfQogICAgICAgdGhpcy5jbGVhckhvc3RBZGRyZXNzQW5kRGJFcnJvcnMoKTsKICAg ICB9CiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NlYXJjaF9vYmplY3RzL3RlbXBs YXRlcy9zZWFyY2hfb2JqZWN0cy9zcWwvcGcvMTBfcGx1cy9zZWFyY2guc3FsIGIvd2ViL3BnYWRt aW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdGVtcGxhdGVzL3NlYXJjaF9vYmplY3RzL3NxbC9wZy8x MF9wbHVzL3NlYXJjaC5zcWwKaW5kZXggYWMyMTVlZWZkLi4zODI4ZDkwNjggMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL3Rvb2xzL3NlYXJjaF9vYmplY3RzL3RlbXBsYXRlcy9zZWFyY2hfb2JqZWN0 cy9zcWwvcGcvMTBfcGx1cy9zZWFyY2guc3FsCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NlYXJj aF9vYmplY3RzL3RlbXBsYXRlcy9zZWFyY2hfb2JqZWN0cy9zcWwvcGcvMTBfcGx1cy9zZWFyY2gu c3FsCkBAIC0zMjAsNiArMzIwLDI0IEBAIEZST00gKAogeyUgaWYgYWxsX29iaiAlfQogICAgIFVO SU9OCiB7JSBlbmRpZiAlfQorCit7JSBpZiBhbGxfb2JqIG9yIG9ial90eXBlIGluIFsncHVibGlj YXRpb24nXSAlfQorICAgIFNFTEVDVCAncHVibGljYXRpb24nOjp0ZXh0IEFTIG9ial90eXBlLCBw dWJuYW1lIEFTIG9ial9uYW1lLCAnOnB1YmxpY2F0aW9uLid8fHB1Yi5vaWR8fCc6LycgfHwgcHVi bmFtZSBBUyBvYmpfcGF0aCwgJyc6OnRleHQgQVMgc2NoZW1hX25hbWUsCisgICAge3sgc2hvd19u b2RlX3ByZWZzWydwdWJsaWNhdGlvbiddIH19IEFTIHNob3dfbm9kZSwgTlVMTCBBUyBvdGhlcl9p bmZvCisgICAgRlJPTSBwZ19wdWJsaWNhdGlvbiBwdWIKK3slIGVuZGlmICV9Cit7JSBpZiBhbGxf b2JqICV9CisgICAgVU5JT04KK3slIGVuZGlmICV9CisKK3slIGlmIGFsbF9vYmogb3Igb2JqX3R5 cGUgaW4gWydzdWJzY3JpcHRpb24nXSAlfQorICAgIFNFTEVDVCAnc3Vic2NyaXB0aW9uJzo6dGV4 dCBBUyBvYmpfdHlwZSwgc3VibmFtZSBBUyBvYmpfbmFtZSwgJzpzdWJzY3JpcHRpb24uJ3x8cHVi Lm9pZHx8JzovJyB8fCBzdWJuYW1lIEFTIG9ial9wYXRoLCAnJzo6dGV4dCBBUyBzY2hlbWFfbmFt ZSwKKyAgICB7eyBzaG93X25vZGVfcHJlZnNbJ3N1YnNjcmlwdGlvbiddIH19IEFTIHNob3dfbm9k ZSwgTlVMTCBBUyBvdGhlcl9pbmZvCisgICAgRlJPTSBwZ19zdWJzY3JpcHRpb24gcHViCit7JSBl bmRpZiAlfQoreyUgaWYgYWxsX29iaiAlfQorICAgIFVOSU9OCit7JSBlbmRpZiAlfQogeyUgaWYg YWxsX29iaiBvciBvYmpfdHlwZSBpbiBbJ2xhbmd1YWdlJ10gJX0KICAgICBTRUxFQ1QgJ2xhbmd1 YWdlJzo6dGV4dCBBUyBvYmpfdHlwZSwgbGFubmFtZSBBUyBvYmpfbmFtZSwgJzpsYW5ndWFnZS4n fHxsYW4ub2lkfHwnOi8nIHx8IGxhbm5hbWUgQVMgb2JqX3BhdGgsICcnOjp0ZXh0IEFTIHNjaGVt YV9uYW1lLAogICAgIHt7IHNob3dfbm9kZV9wcmVmc1snbGFuZ3VhZ2UnXSB9fSBBUyBzaG93X25v ZGUsIE5VTEwgQVMgb3RoZXJfaW5mbwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc2Vh cmNoX29iamVjdHMvdGVtcGxhdGVzL3NlYXJjaF9vYmplY3RzL3NxbC9wZy8xMV9wbHVzL3NlYXJj aC5zcWwgYi93ZWIvcGdhZG1pbi90b29scy9zZWFyY2hfb2JqZWN0cy90ZW1wbGF0ZXMvc2VhcmNo X29iamVjdHMvc3FsL3BnLzExX3BsdXMvc2VhcmNoLnNxbAppbmRleCA0ZTA3ZmYwNzkuLmU4NjMx ZjEzNiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdGVtcGxh dGVzL3NlYXJjaF9vYmplY3RzL3NxbC9wZy8xMV9wbHVzL3NlYXJjaC5zcWwKKysrIGIvd2ViL3Bn YWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdGVtcGxhdGVzL3NlYXJjaF9vYmplY3RzL3NxbC9w Zy8xMV9wbHVzL3NlYXJjaC5zcWwKQEAgLTMzNyw2ICszMzcsMjQgQEAgRlJPTSAoCiB7JSBpZiBh bGxfb2JqICV9CiAgICAgVU5JT04KIHslIGVuZGlmICV9CisKK3slIGlmIGFsbF9vYmogb3Igb2Jq X3R5cGUgaW4gWydwdWJsaWNhdGlvbiddICV9CisgICAgU0VMRUNUICdwdWJsaWNhdGlvbic6OnRl eHQgQVMgb2JqX3R5cGUsIHB1Ym5hbWUgQVMgb2JqX25hbWUsICc6cHVibGljYXRpb24uJ3x8cHVi Lm9pZHx8JzovJyB8fCBwdWJuYW1lIEFTIG9ial9wYXRoLCAnJzo6dGV4dCBBUyBzY2hlbWFfbmFt ZSwKKyAgICB7eyBzaG93X25vZGVfcHJlZnNbJ3B1YmxpY2F0aW9uJ10gfX0gQVMgc2hvd19ub2Rl LCBOVUxMIEFTIG90aGVyX2luZm8KKyAgICBGUk9NIHBnX3B1YmxpY2F0aW9uIHB1YgoreyUgZW5k aWYgJX0KK3slIGlmIGFsbF9vYmogJX0KKyAgICBVTklPTgoreyUgZW5kaWYgJX0KKworeyUgaWYg YWxsX29iaiBvciBvYmpfdHlwZSBpbiBbJ3N1YnNjcmlwdGlvbiddICV9CisgICAgU0VMRUNUICdz dWJzY3JpcHRpb24nOjp0ZXh0IEFTIG9ial90eXBlLCBzdWJuYW1lIEFTIG9ial9uYW1lLCAnOnN1 YnNjcmlwdGlvbi4nfHxwdWIub2lkfHwnOi8nIHx8IHN1Ym5hbWUgQVMgb2JqX3BhdGgsICcnOjp0 ZXh0IEFTIHNjaGVtYV9uYW1lLAorICAgIHt7IHNob3dfbm9kZV9wcmVmc1snc3Vic2NyaXB0aW9u J10gfX0gQVMgc2hvd19ub2RlLCBOVUxMIEFTIG90aGVyX2luZm8KKyAgICBGUk9NIHBnX3N1YnNj cmlwdGlvbiBwdWIKK3slIGVuZGlmICV9Cit7JSBpZiBhbGxfb2JqICV9CisgICAgVU5JT04KK3sl IGVuZGlmICV9CiB7JSBpZiBhbGxfb2JqIG9yIG9ial90eXBlIGluIFsnbGFuZ3VhZ2UnXSAlfQog ICAgIFNFTEVDVCAnbGFuZ3VhZ2UnOjp0ZXh0IEFTIG9ial90eXBlLCBsYW5uYW1lIEFTIG9ial9u YW1lLCAnOmxhbmd1YWdlLid8fGxhbi5vaWR8fCc6LycgfHwgbGFubmFtZSBBUyBvYmpfcGF0aCwg Jyc6OnRleHQgQVMgc2NoZW1hX25hbWUsCiAgICAge3sgc2hvd19ub2RlX3ByZWZzWydsYW5ndWFn ZSddIH19IEFTIHNob3dfbm9kZSwgTlVMTCBBUyBvdGhlcl9pbmZvCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi90b29scy9zZWFyY2hfb2JqZWN0cy90ZW1wbGF0ZXMvc2VhcmNoX29iamVjdHMvc3Fs L3BwYXMvMTBfcGx1cy9zZWFyY2guc3FsIGIvd2ViL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVj dHMvdGVtcGxhdGVzL3NlYXJjaF9vYmplY3RzL3NxbC9wcGFzLzEwX3BsdXMvc2VhcmNoLnNxbApp bmRleCBhNDFhMzc1ZWIuLjRlZDcxNTQ2MyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMv c2VhcmNoX29iamVjdHMvdGVtcGxhdGVzL3NlYXJjaF9vYmplY3RzL3NxbC9wcGFzLzEwX3BsdXMv c2VhcmNoLnNxbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9zZWFyY2hfb2JqZWN0cy90ZW1wbGF0 ZXMvc2VhcmNoX29iamVjdHMvc3FsL3BwYXMvMTBfcGx1cy9zZWFyY2guc3FsCkBAIC0zNjEsNiAr MzYxLDI1IEBAIEZST00gKAogeyUgaWYgYWxsX29iaiAlfQogICAgIFVOSU9OCiB7JSBlbmRpZiAl fQorCit7JSBpZiBhbGxfb2JqIG9yIG9ial90eXBlIGluIFsncHVibGljYXRpb24nXSAlfQorICAg IFNFTEVDVCAncHVibGljYXRpb24nOjp0ZXh0IEFTIG9ial90eXBlLCBwdWJuYW1lIEFTIG9ial9u YW1lLCAnOnB1YmxpY2F0aW9uLid8fHB1Yi5vaWR8fCc6LycgfHwgcHVibmFtZSBBUyBvYmpfcGF0 aCwgJyc6OnRleHQgQVMgc2NoZW1hX25hbWUsCisgICAge3sgc2hvd19ub2RlX3ByZWZzWydwdWJs aWNhdGlvbiddIH19IEFTIHNob3dfbm9kZSwgTlVMTCBBUyBvdGhlcl9pbmZvCisgICAgRlJPTSBw Z19wdWJsaWNhdGlvbiBwdWIKK3slIGVuZGlmICV9Cit7JSBpZiBhbGxfb2JqICV9CisgICAgVU5J T04KK3slIGVuZGlmICV9CisKK3slIGlmIGFsbF9vYmogb3Igb2JqX3R5cGUgaW4gWydzdWJzY3Jp cHRpb24nXSAlfQorICAgIFNFTEVDVCAnc3Vic2NyaXB0aW9uJzo6dGV4dCBBUyBvYmpfdHlwZSwg c3VibmFtZSBBUyBvYmpfbmFtZSwgJzpzdWJzY3JpcHRpb24uJ3x8cHViLm9pZHx8JzovJyB8fCBz dWJuYW1lIEFTIG9ial9wYXRoLCAnJzo6dGV4dCBBUyBzY2hlbWFfbmFtZSwKKyAgICB7eyBzaG93 X25vZGVfcHJlZnNbJ3N1YnNjcmlwdGlvbiddIH19IEFTIHNob3dfbm9kZSwgTlVMTCBBUyBvdGhl cl9pbmZvCisgICAgRlJPTSBwZ19zdWJzY3JpcHRpb24gcHViCit7JSBlbmRpZiAlfQoreyUgaWYg YWxsX29iaiAlfQorICAgIFVOSU9OCit7JSBlbmRpZiAlfQorCiB7JSBpZiBhbGxfb2JqIG9yIG9i al90eXBlIGluIFsnbGFuZ3VhZ2UnXSAlfQogICAgIFNFTEVDVCAnbGFuZ3VhZ2UnOjp0ZXh0IEFT IG9ial90eXBlLCBsYW5uYW1lIEFTIG9ial9uYW1lLCAnOmxhbmd1YWdlLid8fGxhbi5vaWR8fCc6 LycgfHwgbGFubmFtZSBBUyBvYmpfcGF0aCwgJyc6OnRleHQgQVMgc2NoZW1hX25hbWUsCiAgICAg e3sgc2hvd19ub2RlX3ByZWZzWydsYW5ndWFnZSddIH19IEFTIHNob3dfbm9kZSwgTlVMTCBBUyBv dGhlcl9pbmZvCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zZWFyY2hfb2JqZWN0cy90 ZW1wbGF0ZXMvc2VhcmNoX29iamVjdHMvc3FsL3BwYXMvMTJfcGx1cy9zZWFyY2guc3FsIGIvd2Vi L3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdGVtcGxhdGVzL3NlYXJjaF9vYmplY3RzL3Nx bC9wcGFzLzEyX3BsdXMvc2VhcmNoLnNxbAppbmRleCA3OTZmYzMwYjguLjM2MzM5NzRlYyAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdGVtcGxhdGVzL3NlYXJj aF9vYmplY3RzL3NxbC9wcGFzLzEyX3BsdXMvc2VhcmNoLnNxbAorKysgYi93ZWIvcGdhZG1pbi90 b29scy9zZWFyY2hfb2JqZWN0cy90ZW1wbGF0ZXMvc2VhcmNoX29iamVjdHMvc3FsL3BwYXMvMTJf cGx1cy9zZWFyY2guc3FsCkBAIC0zNjgsNiArMzY4LDI1IEBAIEZST00gKAogeyUgaWYgYWxsX29i aiAlfQogICAgIFVOSU9OCiB7JSBlbmRpZiAlfQorCit7JSBpZiBhbGxfb2JqIG9yIG9ial90eXBl IGluIFsncHVibGljYXRpb24nXSAlfQorICAgIFNFTEVDVCAncHVibGljYXRpb24nOjp0ZXh0IEFT IG9ial90eXBlLCBwdWJuYW1lIEFTIG9ial9uYW1lLCAnOnB1YmxpY2F0aW9uLid8fHB1Yi5vaWR8 fCc6LycgfHwgcHVibmFtZSBBUyBvYmpfcGF0aCwgJyc6OnRleHQgQVMgc2NoZW1hX25hbWUsCisg ICAge3sgc2hvd19ub2RlX3ByZWZzWydwdWJsaWNhdGlvbiddIH19IEFTIHNob3dfbm9kZSwgTlVM TCBBUyBvdGhlcl9pbmZvCisgICAgRlJPTSBwZ19wdWJsaWNhdGlvbiBwdWIKK3slIGVuZGlmICV9 Cit7JSBpZiBhbGxfb2JqICV9CisgICAgVU5JT04KK3slIGVuZGlmICV9CisKK3slIGlmIGFsbF9v Ymogb3Igb2JqX3R5cGUgaW4gWydzdWJzY3JpcHRpb24nXSAlfQorICAgIFNFTEVDVCAnc3Vic2Ny aXB0aW9uJzo6dGV4dCBBUyBvYmpfdHlwZSwgc3VibmFtZSBBUyBvYmpfbmFtZSwgJzpzdWJzY3Jp cHRpb24uJ3x8cHViLm9pZHx8JzovJyB8fCBzdWJuYW1lIEFTIG9ial9wYXRoLCAnJzo6dGV4dCBB UyBzY2hlbWFfbmFtZSwKKyAgICB7eyBzaG93X25vZGVfcHJlZnNbJ3N1YnNjcmlwdGlvbiddIH19 IEFTIHNob3dfbm9kZSwgTlVMTCBBUyBvdGhlcl9pbmZvCisgICAgRlJPTSBwZ19zdWJzY3JpcHRp b24gcHViCit7JSBlbmRpZiAlfQoreyUgaWYgYWxsX29iaiAlfQorICAgIFVOSU9OCit7JSBlbmRp ZiAlfQorCiB7JSBpZiBhbGxfb2JqIG9yIG9ial90eXBlIGluIFsnbGFuZ3VhZ2UnXSAlfQogICAg IFNFTEVDVCAnbGFuZ3VhZ2UnOjp0ZXh0IEFTIG9ial90eXBlLCBsYW5uYW1lIEFTIG9ial9uYW1l LCAnOmxhbmd1YWdlLid8fGxhbi5vaWR8fCc6LycgfHwgbGFubmFtZSBBUyBvYmpfcGF0aCwgJyc6 OnRleHQgQVMgc2NoZW1hX25hbWUsCiAgICAge3sgc2hvd19ub2RlX3ByZWZzWydsYW5ndWFnZSdd IH19IEFTIHNob3dfbm9kZSwgTlVMTCBBUyBvdGhlcl9pbmZvCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi90b29scy9zZWFyY2hfb2JqZWN0cy91dGlscy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3Nl YXJjaF9vYmplY3RzL3V0aWxzLnB5CmluZGV4IGNlNWVjZTI4ZC4uYTdkNTU2ODUzIDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi90b29scy9zZWFyY2hfb2JqZWN0cy91dGlscy5weQorKysgYi93ZWIv cGdhZG1pbi90b29scy9zZWFyY2hfb2JqZWN0cy91dGlscy5weQpAQCAtNDMsNyArNDMsOCBAQCBj bGFzcyBTZWFyY2hPYmplY3RzSGVscGVyOgogICAgICAgICAgICAgJ3RyaWdnZXJfZnVuY3Rpb24n LCAnZnRzX3RlbXBsYXRlJywgJ2NvbGxhdGlvbicsICd2aWV3JywgJ212aWV3JywKICAgICAgICAg ICAgICdmdHNfY29uZmlndXJhdGlvbicsICdleHRlbnNpb24nLCAnbGFuZ3VhZ2UnLAogICAgICAg ICAgICAgJ2V2ZW50X3RyaWdnZXInLCAnZm9yZWlnbl9zZXJ2ZXInLCAndXNlcl9tYXBwaW5nJywK LSAgICAgICAgICAgICdmb3JlaWduX2RhdGFfd3JhcHBlcicsICdyb3dfc2VjdXJpdHlfcG9saWN5 JworICAgICAgICAgICAgJ2ZvcmVpZ25fZGF0YV93cmFwcGVyJywgJ3Jvd19zZWN1cml0eV9wb2xp Y3knLAorICAgICAgICAgICAgJ3B1YmxpY2F0aW9uJywgJ3N1YnNjcmlwdGlvbicKICAgICAgICAg XSBpZiBub2RlX3R5cGVzIGlzIE5vbmUgZWxzZSBub2RlX3R5cGVzCiAKICAgICBAcHJvcGVydHkK ZGlmZiAtLWdpdCBhL3dlYi93ZWJwYWNrLmNvbmZpZy5qcyBiL3dlYi93ZWJwYWNrLmNvbmZpZy5q cwppbmRleCA5NmVmNzA4YWIuLjdmMjEwOTU1ZSAxMDA2NDQKLS0tIGEvd2ViL3dlYnBhY2suY29u ZmlnLmpzCisrKyBiL3dlYi93ZWJwYWNrLmNvbmZpZy5qcwpAQCAtNDMyLDYgKzQzMiw4IEBAIG1v ZHVsZS5leHBvcnRzID0gW3sKICAgICAgICAgJyxwZ2FkbWluLm5vZGUuZGF0YWJhc2UnICsKICAg ICAgICAgJyxwZ2FkbWluLm5vZGUucm9sZScgKwogICAgICAgICAnLHBnYWRtaW4ubm9kZS5jYXN0 JyArCisgICAgICAgICcscGdhZG1pbi5ub2RlLnB1YmxpY2F0aW9uJyArCisgICAgICAgICcscGdh ZG1pbi5ub2RlLnN1YnNjcmlwdGlvbicgKwogICAgICAgICAnLHBnYWRtaW4ubm9kZS50YWJsZXNw YWNlJyArCiAgICAgICAgICcscGdhZG1pbi5ub2RlLnJlc291cmNlX2dyb3VwJyArCiAgICAgICAg ICcscGdhZG1pbi5ub2RlLmV2ZW50X3RyaWdnZXInICsKZGlmZiAtLWdpdCBhL3dlYi93ZWJwYWNr LnNoaW0uanMgYi93ZWIvd2VicGFjay5zaGltLmpzCmluZGV4IDZmYzI2MDIxZS4uMjU5MzQ4NTMz IDEwMDY0NAotLS0gYS93ZWIvd2VicGFjay5zaGltLmpzCisrKyBiL3dlYi93ZWJwYWNrLnNoaW0u anMKQEAgLTIwMiw2ICsyMDIsOCBAQCB2YXIgd2VicGFja1NoaW1Db25maWcgPSB7CiAgICAgJ3Bn YWRtaW4uaGVscCc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vaGVscC9zdGF0aWMv anMvaGVscCcpLAogICAgICdwZ2FkbWluLm1pc2MuZXhwbGFpbic6IHBhdGguam9pbihfX2Rpcm5h bWUsICcuL3BnYWRtaW4vbWlzYy9zdGF0aWMvZXhwbGFpbi9qcy9leHBsYWluJyksCiAgICAgJ3Bn YWRtaW4ubm9kZS5jYXN0JzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMvc3RhdGljL2pzL2Nhc3QnKSwK KyAgICAncGdhZG1pbi5ub2RlLnB1YmxpY2F0aW9uJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4v cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRp b25zL3N0YXRpYy9qcy9wdWJsaWNhdGlvbicpLAorICAgICdwZ2FkbWluLm5vZGUuc3Vic2NyaXB0 aW9uJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy9zdGF0aWMvanMvc3Vic2NyaXB0aW9u JyksCiAgICAgJ3BnYWRtaW4ubm9kZS5jYXRhbG9nJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4v cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9z dGF0aWMvanMvY2F0YWxvZycpLAogICAgICdwZ2FkbWluLm5vZGUuY2F0YWxvZ19vYmplY3QnOiBw YXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NhdGFsb2dfb2JqZWN0cy9zdGF0aWMvanMvY2F0YWxvZ19v YmplY3QnKSwKICAgICAncGdhZG1pbi5ub2RlLmNhdGFsb2dfb2JqZWN0X2NvbHVtbic6IHBhdGgu am9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvY2F0YWxvZ19vYmplY3RzL2NvbHVtbnMvc3RhdGljL2pzL2NhdGFs b2dfb2JqZWN0X2NvbHVtbicpLAo= --0000000000002a444805b8dc3cfe--