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 1kVtxB-0007Jf-88 for pgadmin-hackers@arkaria.postgresql.org; Fri, 23 Oct 2020 10:05:45 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kVtx9-0005Kv-Po for pgadmin-hackers@arkaria.postgresql.org; Fri, 23 Oct 2020 10:05:43 +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 1kVtx9-0005Kn-Ee for pgadmin-hackers@lists.postgresql.org; Fri, 23 Oct 2020 10:05:43 +0000 Received: from mail-qt1-x832.google.com ([2607:f8b0:4864:20::832]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kVtx5-0004EM-Ks for pgadmin-hackers@postgresql.org; Fri, 23 Oct 2020 10:05:42 +0000 Received: by mail-qt1-x832.google.com with SMTP id c5so451501qtw.3 for ; Fri, 23 Oct 2020 03:05:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=pNF5Aut0AkrKf8y5SVt2ibL/1DTvk99d3O3ijVvEiAI=; b=v1nAl2nVpXez3fZmJuoeEVwNo0Y2cvX6tTzYey5T4oc9pBYvAbGFDlANwLisIEpjNa 4gL29uM9HxHIw8ituAsnTy/+Zafjj69fovrlKg7teg+Jv+pDsgu3Uls6YsqjB0wQOJPa GHfUOEG/bgZk1uwXl2If13F6W+o2WcjlMKbqNkqHuhbKUbc6BVuwoD65n+oe5TnhlArD poo0xdh9Nx7uLZmO+MJVknEwrwJd+o201vemjfAV5QzB+gakIN3iU7fsLPEOdIRA+am4 5UDtgepYJgtmgEJ2tms5d5SPOZntqjb7gQtqsNtkWjKqY87PNU7BHW9aWIvPxM/6tvFl r2hg== 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=pNF5Aut0AkrKf8y5SVt2ibL/1DTvk99d3O3ijVvEiAI=; b=nP+Wmcq8LGqBpmrMhbsZtGCff1SLFf0WVz2CNduJ7xnMzNAVJMI5VekQ6GHDjh94F3 F43IMKTnaEhfvodxRCAGbaQujj8IYsRAvs2+q/DnLdqIAnqgxBfsDWXpDqtPL8Njxgou QcTq9PDAj3OrE1rIxbNNzN3KeaZfOI88f50tEfZBubc4c4nVHYlPljzzr5Kh25GFTRHh viX0d2PeS/qmvCh9hfX8LPvJmV+zqsM29IBMvVTUBWe99MoILSVix36aZ178L+QFzkl0 1/RhfE21jSlsE+yNWkJ0F5QAYRyoWsWLJS9BnWvKgQu2Z/bM8r/Wc+mNmH8ag4oU/azc 13oQ== X-Gm-Message-State: AOAM533Tucv42dmew5Gr8EYqDmk3/MM1j4GsBEnldzfJw3LbAaO4nEqP 9gMvn8IoVOMONSsrdwkXp9RDixESKrj/sPpL/28QDgRX3wXARJfcddI2sUnHn2z0w/4rcDWrp1Q qxLMIKeFc/KigcaopLQrOH+g1vILcv3QiIueXzfRek3W51ad4MajFuDuBxYAwLNN5UVIHefbmRS LQpLYJ6SrbHfF9WcgmJIoj8ToVA9CNgoHPjg0+5bYoWT6oAUtuhVc6Kj41DQ== X-Google-Smtp-Source: ABdhPJx08WFMnafn+gKJzC75D64niSUJvywjFnHFKEtyFcfTYzDQgrq4zUiNpQ1YWO94/HdSGB8xT8VSdF0oqbmVG50= X-Received: by 2002:ac8:1af1:: with SMTP id h46mr1199569qtk.371.1603447537159; Fri, 23 Oct 2020 03:05:37 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Rahul Shirsat Date: Fri, 23 Oct 2020 15:35:00 +0530 Message-ID: Subject: Re: [pgAdmin][RM3318] Download Backup Files To: Akshay Joshi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000de97fe05b253b8f5" 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 --000000000000de97fe05b253b8f5 Content-Type: multipart/alternative; boundary="000000000000de97fc05b253b8f3" --000000000000de97fc05b253b8f3 Content-Type: text/plain; charset="UTF-8" Hi Akshay, Please find below comments on review points. On Wed, Oct 21, 2020 at 4:56 PM Akshay Joshi wrote: > Hi Rahul > > Following are the review comments: > > - Add "..." to the Storage Manager menu - *DONE* > - Storage manager icon is not visible on process watcher if we provide > file name without directory. - *DONE* > - Renaming the directory not working from Storage Manager. - As > discussed in scrum update on 23'Oct, this issue would be taken care in > RM5943 > > Please fix and send the patch. > > On Tue, Oct 20, 2020 at 9:27 PM Rahul Shirsat < > rahul.shirsat@enterprisedb.com> wrote: > >> Hi Hackers, >> >> Please find the below patch which allows users to download the backup and >> export files generated on shared drive. >> >> -- >> *Rahul Shirsat* >> Software Engineer | EnterpriseDB Corporation. >> > > > -- > *Thanks & Regards* > *Akshay Joshi* > *pgAdmin Hacker | Sr. Software Architect* > *EDB Postgres * > > *Mobile: +91 976-788-8246* > -- *Rahul Shirsat* Software Engineer | EnterpriseDB Corporation. --000000000000de97fc05b253b8f3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Akshay,

Please = find below comments on review points.

On Wed, Oct 21, 2020 at 4:56 PM = Akshay Joshi <akshay.jo= shi@enterprisedb.com> wrote:
Hi=C2=A0Rahul

Follo= wing are the=C2=A0review comments:
  • Add "..." to= the Storage Manager menu - DONE
  • Storage manager icon is not= visible on process watcher if we provide file name without=C2=A0directory.= - DONE
  • Renaming the directory not working from Storage Mana= ger. - As discussed in scrum update on 23'Oct, this issue would be take= n care in RM5943= =C2=A0
Please fix and send the patch.

On Tue, Oct 20, 2020 at= 9:27 PM Rahul Shirsat <rahul.shirsat@enterprisedb.com> wrote:
=
Hi Hacke= rs,

Please find the below patch=C2=A0which allows users = to download the backup and export files generated on shared drive.

--
Rahul Shirsat
Software Engineer=C2=A0|=C2=A0EnterpriseDB=C2=A0Corporat= ion.


--
Thank= s & Regards
Akshay Joshi
pgAdmin Hacker | Sr. Software Ar= chitect
EDB Postgres=
Mobile: +91 976-788-8246



--
Rahul Shirsat
Software Engineer=C2=A0|=C2=A0EnterpriseDB=C2=A0Corporation.=
--000000000000de97fc05b253b8f3-- --000000000000de97fe05b253b8f5 Content-Type: application/octet-stream; name="RM3318_v3.patch" Content-Disposition: attachment; filename="RM3318_v3.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kgm38i8w0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2MvYmdwcm9jZXNzL3Byb2Nlc3Nlcy5weSBiL3dl Yi9wZ2FkbWluL21pc2MvYmdwcm9jZXNzL3Byb2Nlc3Nlcy5weQppbmRleCBjYmNhNjViZDcuLjIy Zjc2YmU4NiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vbWlzYy9iZ3Byb2Nlc3MvcHJvY2Vzc2Vz LnB5CisrKyBiL3dlYi9wZ2FkbWluL21pc2MvYmdwcm9jZXNzL3Byb2Nlc3Nlcy5weQpAQCAtMjIs NyArMjIsNyBAQCBmcm9tIHN1YnByb2Nlc3MgaW1wb3J0IFBvcGVuLCBQSVBFCiBpbXBvcnQgbG9n Z2luZwogCiBmcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IHVfZW5jb2RlLCBmaWxlX3F1b3RlLCBm c19lbmNvZGluZywgXAotICAgIGdldF9jb21wbGV0ZV9maWxlX3BhdGgKKyAgICBnZXRfY29tcGxl dGVfZmlsZV9wYXRoLCBnZXRfc3RvcmFnZV9kaXJlY3RvcnksIElTX1dJTgogCiBpbXBvcnQgcHl0 egogZnJvbSBkYXRldXRpbCBpbXBvcnQgcGFyc2VyCkBAIC01OSw2ICs1OSw0OCBAQCBjbGFzcyBJ UHJvY2Vzc0Rlc2Mob2JqZWN0LCBtZXRhY2xhc3M9QUJDTWV0YSk6CiAgICAgZGVmIGRldGFpbHMo c2VsZiwgY21kLCBhcmdzKToKICAgICAgICAgcGFzcwogCisgICAgQHByb3BlcnR5CisgICAgZGVm IGN1cnJlbnRfc3RvcmFnZV9kaXIoc2VsZik6CisKKyAgICAgICAgaWYgY29uZmlnLlNFUlZFUl9N T0RFOgorCisgICAgICAgICAgICBmaWxlID0gc2VsZi5iZmlsZQorICAgICAgICAgICAgdHJ5Ogor ICAgICAgICAgICAgICAgICMgY2hlY2sgaWYgZmlsZSBuYW1lIGlzIGVuY29kZWQgd2l0aCBVVEYt OAorICAgICAgICAgICAgICAgIGZpbGUgPSBzZWxmLmJmaWxlLmRlY29kZSgndXRmLTgnKQorICAg ICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgIHN0cihlKQor ICAgICAgICAgICAgICAgICMgZG8gbm90aGluZyBpZiBiZmlsZSBpcyBub3QgZW5jb2RlZC4KKwor ICAgICAgICAgICAgcGF0aCA9IGdldF9jb21wbGV0ZV9maWxlX3BhdGgoZmlsZSkKKyAgICAgICAg ICAgIHBhdGggPSBmaWxlIGlmIHBhdGggaXMgTm9uZSBlbHNlIHBhdGgKKworICAgICAgICAgICAg aWYgSVNfV0lOOgorICAgICAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLnJlYWxwYXRoKHBhdGgp CisKKyAgICAgICAgICAgIHN0b3JhZ2VfZGlyZWN0b3J5ID0gb3MucGF0aC5iYXNlbmFtZShnZXRf c3RvcmFnZV9kaXJlY3RvcnkoKSkKKworICAgICAgICAgICAgaWYgc3RvcmFnZV9kaXJlY3Rvcnkg aW4gcGF0aDoKKyAgICAgICAgICAgICAgICBzdGFydCA9IHBhdGguaW5kZXgoc3RvcmFnZV9kaXJl Y3RvcnkpCisgICAgICAgICAgICAgICAgZW5kID0gc3RhcnQgKyAobGVuKHN0b3JhZ2VfZGlyZWN0 b3J5KSkKKyAgICAgICAgICAgICAgICBsYXN0X2RpciA9IG9zLnBhdGguZGlybmFtZShwYXRoW2Vu ZDpdKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBsYXN0X2RpciA9IGZpbGUK KworICAgICAgICAgICAgaWYgSVNfV0lOOgorICAgICAgICAgICAgICAgIGlmICdcXCcgaW4gbGFz dF9kaXI6CisgICAgICAgICAgICAgICAgICAgIGlmIGxlbihsYXN0X2RpcikgPT0gMToKKyAgICAg ICAgICAgICAgICAgICAgICAgIGxhc3RfZGlyID0gbGFzdF9kaXIucmVwbGFjZSgnXFwnLCAnXFxc XCcpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBs YXN0X2RpciA9IGxhc3RfZGlyLnJlcGxhY2UoJ1xcJywgJy8nKQorICAgICAgICAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgICAgICAgIGxhc3RfZGlyID0gbGFzdF9kaXIucmVwbGFjZSgnXFwn LCAnLycpCisKKyAgICAgICAgICAgIHJldHVybiBOb25lIGlmIGhhc2F0dHIoc2VsZiwgJ2lzX2lt cG9ydCcpIGFuZCBzZWxmLmlzX2ltcG9ydCBcCisgICAgICAgICAgICAgICAgZWxzZSBsYXN0X2Rp cgorCisgICAgICAgIHJldHVybiBOb25lCisKIAogY2xhc3MgQmF0Y2hQcm9jZXNzKG9iamVjdCk6 CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKQEAgLTU0Myw4ICs1ODUsMTIgQEAg Y2xhc3MgQmF0Y2hQcm9jZXNzKG9iamVjdCk6CiAgICAgICAgIGRlc2MgPSBsb2FkcyhwLmRlc2Mp CiAgICAgICAgIGRldGFpbHMgPSBkZXNjCiAgICAgICAgIHR5cGVfZGVzYyA9ICcnCisgICAgICAg IGN1cnJlbnRfc3RvcmFnZV9kaXIgPSBOb25lCiAKICAgICAgICAgaWYgaXNpbnN0YW5jZShkZXNj LCBJUHJvY2Vzc0Rlc2MpOgorCisgICAgICAgICAgICBmcm9tIHBnYWRtaW4udG9vbHMuYmFja3Vw IGltcG9ydCBCYWNrdXBNZXNzYWdlCisgICAgICAgICAgICBmcm9tIHBnYWRtaW4udG9vbHMuaW1w b3J0X2V4cG9ydCBpbXBvcnQgSUVNZXNzYWdlCiAgICAgICAgICAgICBhcmdzID0gW10KICAgICAg ICAgICAgIGFyZ3NfY3N2ID0gU3RyaW5nSU8oCiAgICAgICAgICAgICAgICAgcC5hcmd1bWVudHMu ZW5jb2RlKCd1dGYtOCcpCkBAIC01NTUsOSArNjAxLDExIEBAIGNsYXNzIEJhdGNoUHJvY2Vzcyhv YmplY3QpOgogICAgICAgICAgICAgICAgIGFyZ3MgPSBhcmdzICsgYXJnCiAgICAgICAgICAgICBk ZXRhaWxzID0gZGVzYy5kZXRhaWxzKHAuY29tbWFuZCwgYXJncykKICAgICAgICAgICAgIHR5cGVf ZGVzYyA9IGRlc2MudHlwZV9kZXNjCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGRlc2MsIChC YWNrdXBNZXNzYWdlLCBJRU1lc3NhZ2UpKToKKyAgICAgICAgICAgICAgICBjdXJyZW50X3N0b3Jh Z2VfZGlyID0gZGVzYy5jdXJyZW50X3N0b3JhZ2VfZGlyCiAgICAgICAgICAgICBkZXNjID0gZGVz Yy5tZXNzYWdlCiAKLSAgICAgICAgcmV0dXJuIGRlc2MsIGRldGFpbHMsIHR5cGVfZGVzYworICAg ICAgICByZXR1cm4gZGVzYywgZGV0YWlscywgdHlwZV9kZXNjLCBjdXJyZW50X3N0b3JhZ2VfZGly CiAKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVmIGxpc3QoKToKQEAgLTU4NCw3ICs2MzIsOCBA QCBjbGFzcyBCYXRjaFByb2Nlc3Mob2JqZWN0KToKIAogICAgICAgICAgICAgZXhlY3V0aW9uX3Rp bWUgPSBCYXRjaFByb2Nlc3MudG90YWxfc2Vjb25kcyhldGltZSAtIHN0aW1lKQogCi0gICAgICAg ICAgICBkZXNjLCBkZXRhaWxzLCB0eXBlX2Rlc2MgPSBCYXRjaFByb2Nlc3MuX2NoZWNrX3Byb2Nl c3NfZGVzYyhwKQorICAgICAgICAgICAgZGVzYywgZGV0YWlscywgdHlwZV9kZXNjLCBjdXJyZW50 X3N0b3JhZ2VfZGlyID0gQmF0Y2hQcm9jZXNzLlwKKyAgICAgICAgICAgICAgICBfY2hlY2tfcHJv Y2Vzc19kZXNjKHApCiAKICAgICAgICAgICAgIHJlcy5hcHBlbmQoewogICAgICAgICAgICAgICAg ICdpZCc6IHAucGlkLApAQCAtNTk2LDcgKzY0NSw4IEBAIGNsYXNzIEJhdGNoUHJvY2VzcyhvYmpl Y3QpOgogICAgICAgICAgICAgICAgICdleGl0X2NvZGUnOiBwLmV4aXRfY29kZSwKICAgICAgICAg ICAgICAgICAnYWNrbm93bGVkZ2UnOiBwLmFja25vd2xlZGdlLAogICAgICAgICAgICAgICAgICdl eGVjdXRpb25fdGltZSc6IGV4ZWN1dGlvbl90aW1lLAotICAgICAgICAgICAgICAgICdwcm9jZXNz X3N0YXRlJzogcC5wcm9jZXNzX3N0YXRlCisgICAgICAgICAgICAgICAgJ3Byb2Nlc3Nfc3RhdGUn OiBwLnByb2Nlc3Nfc3RhdGUsCisgICAgICAgICAgICAgICAgJ2N1cnJlbnRfc3RvcmFnZV9kaXIn OiBjdXJyZW50X3N0b3JhZ2VfZGlyLAogICAgICAgICAgICAgfSkKIAogICAgICAgICBpZiBjaGFu Z2VkOgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9iZ3Byb2Nlc3Mvc3RhdGljL2Nzcy9i Z3Byb2Nlc3MuY3NzIGIvd2ViL3BnYWRtaW4vbWlzYy9iZ3Byb2Nlc3Mvc3RhdGljL2Nzcy9iZ3By b2Nlc3MuY3NzCmluZGV4IGM1ZjQzMWEzNS4uNGUzY2MwNDEyIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9taXNjL2JncHJvY2Vzcy9zdGF0aWMvY3NzL2JncHJvY2Vzcy5jc3MKKysrIGIvd2ViL3Bn YWRtaW4vbWlzYy9iZ3Byb2Nlc3Mvc3RhdGljL2Nzcy9iZ3Byb2Nlc3MuY3NzCkBAIC01NywzICs1 Nyw3IEBAIG9sLnBnLWJnLXByb2Nlc3MtbG9ncyB7CiAucGctYmctYmdwcm9jZXNzOmhvdmVyIC5i Zy1jbG9zZSB7CiAgIG9wYWNpdHk6IDAuOTU7CiB9CisKKy5pY29uLXN0b3JhZ2UtbWFuYWdlcjpi ZWZvcmUgeworICBmb250LWljb246IHVybCgnLi4vaW1nL3N0b3JhZ2VfbWFuYWdlci5zdmcnKTsK K30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2MvYmdwcm9jZXNzL3N0YXRpYy9pbWcvc3Rv cmFnZV9tYW5hZ2VyLnN2ZyBiL3dlYi9wZ2FkbWluL21pc2MvYmdwcm9jZXNzL3N0YXRpYy9pbWcv c3RvcmFnZV9tYW5hZ2VyLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAu LjhlZjk4MzU3NgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL21pc2MvYmdwcm9jZXNz L3N0YXRpYy9pbWcvc3RvcmFnZV9tYW5hZ2VyLnN2ZwpAQCAtMCwwICsxLDEzIEBACis8P3htbCB2 ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBHZW5lcmF0b3I6IEFkb2JlIEls bHVzdHJhdG9yIDI0LjMuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAg QnVpbGQgMCkgIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8x OTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKKwkgdmlld0JveD0iMCAwIDE2IDE2IiBzdHlsZT0i ZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNiAxNjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgor PGc+CisJPHBhdGggZD0iTTQuMyw1LjNoOC44VjRjMC0wLjctMC42LTEuMy0xLjMtMS4zSDcuNUw1 LjgsMUgxLjVDMC44LDEsMC4yLDEuNiwwLjIsMi4zdjcuNEwyLDYuNUMyLjYsNS44LDMuNCw1LjMs NC4zLDUuM3oiLz4KKwk8cGF0aCBkPSJNNy41LDguOWMwLTEuMiwwLjctMi4zLDEuNi0yLjhINC4z QzMuNyw2LjEsMy4xLDYuNCwyLjgsN2wtMS45LDMuM2MtMC4yLDAuNCwwLjEsMSwwLjYsMWg3Qzcu OCwxMC43LDcuNSw5LjgsNy41LDguOXoiLz4KKwk8cGF0aCBkPSJNMTUsNi4xaC0yLjZjMSwwLjYs MS42LDEuNiwxLjYsMi44YzAsMC4zLTAuMSwwLjYtMC4xLDAuOUwxNS41LDdDMTUuOCw2LjcsMTUu NSw2LjEsMTUsNi4xeiIvPgorCTxjaXJjbGUgY3g9IjEwLjgiIGN5PSI4LjkiIHI9IjIuOCIvPgor PC9nPgorPHBhdGggZD0iTTE0LDExLjhsLTEuMi0wLjNjLTEuMywwLjktMi45LDAuOC0zLjgsMGwt MS4yLDAuM0M3LDEyLDYuNSwxMi43LDYuNSwxMy41djAuN2MwLDAuNCwwLjMsMC45LDAuOSwwLjlo Mi4zbDEuMS0yLjRsMS4zLDIuNAorCWgyLjRjMC40LDAsMC45LTAuMywwLjktMC45di0wLjhDMTUu MiwxMi42LDE0LjgsMTEuOSwxNCwxMS44eiIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9taXNjL2JncHJvY2Vzcy9zdGF0aWMvanMvYmdwcm9jZXNzLmpzIGIvd2ViL3BnYWRtaW4v bWlzYy9iZ3Byb2Nlc3Mvc3RhdGljL2pzL2JncHJvY2Vzcy5qcwppbmRleCBkMTdkNjNjMmUuLjI4 NTYwN2ZjMiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vbWlzYy9iZ3Byb2Nlc3Mvc3RhdGljL2pz L2JncHJvY2Vzcy5qcworKysgYi93ZWIvcGdhZG1pbi9taXNjL2JncHJvY2Vzcy9zdGF0aWMvanMv Ymdwcm9jZXNzLmpzCkBAIC0yMCw2ICsyMCw4IEBAIGRlZmluZSgnbWlzYy5iZ3Byb2Nlc3MnLCBb CiAgICAgcmV0dXJuIHBnQnJvd3Nlci5CYWNrZ3JvdW5kUHJvY2Vzc09ic29ydmVyOwogICB9CiAK KyAgdmFyIGlzU2VydmVyTW9kZSA9IChmdW5jdGlvbigpIHsgcmV0dXJuIHBnQWRtaW4uc2VydmVy X21vZGUgPT0gJ1RydWUnOyB9KSgpOworCiAgIHZhciB3Y0RvY2tlciA9IHdpbmRvdy53Y0RvY2tl cjsKIAogICB2YXIgQkdQcm9jZXNzID0gZnVuY3Rpb24oaW5mbywgbm90aWZ5KSB7CkBAIC02MSw2 ICs2Myw3IEBAIGRlZmluZSgnbWlzYy5iZ3Byb2Nlc3MnLCBbCiAgICAgICAgICAgY3Vycl9zdGF0 dXM6IG51bGwsCiAgICAgICAgICAgc3RhdGU6IDAsIC8vIDA6IE5PVCBTdGFydGVkLCAxOiBTdGFy dGVkLCAyOiBGaW5pc2hlZCwgMzogVGVybWluYXRlZAogICAgICAgICAgIGNvbXBsZXRlZDogZmFs c2UsCisgICAgICAgICAgY3VycmVudF9zdG9yYWdlX2RpcjogbnVsbCwKIAogICAgICAgICAgIGlk OiBpbmZvWydpZCddLAogICAgICAgICAgIHR5cGVfZGVzYzogbnVsbCwKQEAgLTE2MSw2ICsxNjQs OSBAQCBkZWZpbmUoJ21pc2MuYmdwcm9jZXNzJywgWwogICAgICAgICBpZiAoJ3Byb2Nlc3Nfc3Rh dGUnIGluIGRhdGEpCiAgICAgICAgICAgc2VsZi5zdGF0ZSA9IGRhdGEucHJvY2Vzc19zdGF0ZTsK IAorICAgICAgICBpZiAoJ2N1cnJlbnRfc3RvcmFnZV9kaXInIGluIGRhdGEpCisgICAgICAgICAg c2VsZi5jdXJyZW50X3N0b3JhZ2VfZGlyID0gZGF0YS5jdXJyZW50X3N0b3JhZ2VfZGlyOworCiAg ICAgICAgIGlmICgnb3V0JyBpbiBkYXRhKSB7CiAgICAgICAgICAgc2VsZi5vdXQgPSBkYXRhLm91 dCAmJiBkYXRhLm91dC5wb3M7CiAKQEAgLTMyNSw4ICszMzEsOCBAQCBkZWZpbmUoJ21pc2MuYmdw cm9jZXNzJywgWwogICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICA8 ZGl2IGNsYXNzPSJwZy1iZy1ldGltZSBteS1hdXRvIG1yLTIiPjwvZGl2PgogICAgICAgICAgICAg ICAgICAgPGRpdiBjbGFzcz0ibWwtYXV0byI+Ci0gICAgICAgICAgICAgICAgICAgIDxidXR0b24g Y2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IHBnLWJnLW1vcmUtZGV0YWlscyI+PHNwYW4gY2xhc3M9 ImZhIGZhLWluZm8tY2lyY2xlIiByb2xlPSJpbWciPjwvc3Bhbj4mbmJzcDtgICsgZ2V0dGV4dCgn TW9yZSBkZXRhaWxzLi4uJykgKyBgPC9idXR0b24+Ci0gICAgICAgICAgICAgICAgICAgIDxidXR0 b24gY2xhc3M9ImJ0biBidG4tZGFuZ2VyIGJnLXByb2Nlc3Mtc3RvcCIgZGlzYWJsZWQ+PHNwYW4g Y2xhc3M9ImZhIGZhLXRpbWVzLWNpcmNsZSIgcm9sZT0iaW1nIj48L3NwYW4+Jm5ic3A7YCArIGdl dHRleHQoJ1N0b3AgUHJvY2VzcycpICsgYDwvYnV0dG9uPgorICAgICAgICAgICAgICAgICAgICA8 YnV0dG9uIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBwZy1iZy1tb3JlLWRldGFpbHMiIHRpdGxl PSJNb3JlIERldGFpbHMiPjxzcGFuIGNsYXNzPSJmYSBmYS1pbmZvLWNpcmNsZSIgcm9sZT0iaW1n Ij48L3NwYW4+Jm5ic3A7YCArIGdldHRleHQoJ01vcmUgZGV0YWlscy4uLicpICsgYDwvYnV0dG9u PgorICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRhbmdlciBiZy1w cm9jZXNzLXN0b3AiIGRpc2FibGVkPjxzcGFuIGNsYXNzPSJmYSBmYS10aW1lcy1jaXJjbGUiIHJv bGU9ImltZyIgdGl0bGU9IlN0b3AgdGhlIG9wZXJhdGlvbiI+PC9zcGFuPiZuYnNwO2AgKyBnZXR0 ZXh0KCdTdG9wIFByb2Nlc3MnKSArIGA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgIDwvZGl2 PgogICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBn LWJnLXN0YXR1cyBweS0xIj4KQEAgLTM4Nyw2ICszOTMsNyBAQCBkZWZpbmUoJ21pc2MuYmdwcm9j ZXNzJywgWwogICAgICAgICAgIHZhciAkc3RhdHVzX2JhciA9ICQoc2VsZi5jb250YWluZXIuZmlu ZCgnLnBnLWJnLXN0YXR1cycpKTsKICAgICAgICAgICAkc3RhdHVzX2Jhci5odG1sKHNlbGYuY3Vy cl9zdGF0dXMpOwogICAgICAgICAgIHZhciAkYnRuX3N0b3BfcHJvY2VzcyA9ICQoc2VsZi5jb250 YWluZXIuZmluZCgnLmJnLXByb2Nlc3Mtc3RvcCcpKTsKKwogICAgICAgICAgIC8vIEVuYWJsZSBT dG9wIFByb2Nlc3MgYnV0dG9uIG9ubHkgd2hlbiBwcm9jZXNzIGlzIHJ1bm5pbmcKICAgICAgICAg ICBpZiAocGFyc2VJbnQoc2VsZi5zdGF0ZSkgPT09IDEpIHsKICAgICAgICAgICAgICRidG5fc3Rv cF9wcm9jZXNzLmF0dHIoJ2Rpc2FibGVkJywgZmFsc2UpOwpAQCAtNDE1LDcgKzQyMiwyNyBAQCBk ZWZpbmUoJ21pc2MuYmdwcm9jZXNzJywgWwogICAgICAgICAgICRsb2dzID0gY29udGFpbmVyLmZp bmQoJy5iZy1wcm9jZXNzLXdhdGNoZXInKSwKICAgICAgICAgICAkaGVhZGVyID0gY29udGFpbmVy LmZpbmQoJy5iZy1wcm9jZXNzLWRldGFpbHMnKSwKICAgICAgICAgICAkZm9vdGVyID0gY29udGFp bmVyLmZpbmQoJy5iZy1wcm9jZXNzLWZvb3RlcicpLAotICAgICAgICAgICRidG5fc3RvcF9wcm9j ZXNzID0gY29udGFpbmVyLmZpbmQoJy5iZy1wcm9jZXNzLXN0b3AnKTsKKyAgICAgICAgICAkYnRu X3N0b3BfcHJvY2VzcyA9IGNvbnRhaW5lci5maW5kKCcuYmctcHJvY2Vzcy1zdG9wJyksCisgICAg ICAgICAgJGJ0bl9zdG9yYWdlX21hbmFnZXIgPSBjb250YWluZXIuZmluZCgnLmJnLXByb2Nlc3Mt c3RvcmFnZS1tYW5hZ2VyJyk7CisKKyAgICAgICAgaWYoc2VsZi5jdXJyZW50X3N0b3JhZ2VfZGly ICYmIGlzU2VydmVyTW9kZSkgeyAvL2ZvciBiYWNrdXAgJiBleHBvcnRzIHdpdGggc2VydmVyIG1v ZGUsIG9wZXJhdGUgb3ZlciBzdG9yYWdlIG1hbmFnZXIKKworICAgICAgICAgIGlmKCRidG5fc3Rv cmFnZV9tYW5hZ2VyLmxlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICB2YXIgc3RyX3N0b3JhZ2Vf bWFuYWdlcl9idG4gPSAnPGJ1dHRvbiBpZD0iYmctcHJvY2Vzcy1zdG9yYWdlLW1hbmFnZXIiIGNs YXNzPSJidG4gYnRuLXNlY29uZGFyeSBiZy1wcm9jZXNzLXN0b3JhZ2UtbWFuYWdlciIgdGl0bGU9 IkNsaWNrIHRvIG9wZW4gZmlsZSBsb2NhdGlvbiIgYXJpYS1sYWJlbD0iU3RvcmFnZSBNYW5hZ2Vy IiB0YWJpbmRleD0iMCIgZGlzYWJsZWQ+PHNwYW4gY2xhc3M9InBnLWZvbnQtaWNvbiBpY29uLXN0 b3JhZ2UtbWFuYWdlciIgcm9sZT0iaW1nIj48L3NwYW4+PC9idXR0b24+Jm5ic3A7JzsKKyAgICAg ICAgICAgIGNvbnRhaW5lci5maW5kKCcuYmctcHJvY2Vzcy1kZXRhaWxzIC5iZy1idG4tc2VjdGlv bicpLnByZXBlbmQoc3RyX3N0b3JhZ2VfbWFuYWdlcl9idG4pOworICAgICAgICAgICAgJGJ0bl9z dG9yYWdlX21hbmFnZXIgPSBjb250YWluZXIuZmluZCgnLmJnLXByb2Nlc3Mtc3RvcmFnZS1tYW5h Z2VyJyk7CisgICAgICAgICAgfQorCisgICAgICAgICAgLy8gRGlzYWJsZSBzdG9yYWdlIG1hbmFn ZXIgYnV0dG9uIG9ubHkgd2hlbiBwcm9jZXNzIGlzIHJ1bm5pbmcKKyAgICAgICAgICBpZiAocGFy c2VJbnQoc2VsZi5zdGF0ZSkgPT09IDEpIHsKKyAgICAgICAgICAgICRidG5fc3RvcmFnZV9tYW5h Z2VyLmF0dHIoJ2Rpc2FibGVkJywgdHJ1ZSk7CisgICAgICAgICAgfQorICAgICAgICAgIGVsc2Ug eworICAgICAgICAgICAgJGJ0bl9zdG9yYWdlX21hbmFnZXIuYXR0cignZGlzYWJsZWQnLCBmYWxz ZSk7CisgICAgICAgICAgfQorICAgICAgICAgIC8vIE9uIENsaWNrIGV2ZW50IGZvciBzdG9yYWdl IG1hbmFnZXIgYnV0dG9uLgorICAgICAgICAgICRidG5fc3RvcmFnZV9tYW5hZ2VyLm9mZignY2xp Y2snKS5vbignY2xpY2snLCBzZWxmLnN0b3JhZ2VfbWFuYWdlci5iaW5kKHRoaXMpKTsKKyAgICAg ICAgfQogCiAgICAgICAgIC8vIEVuYWJsZSBTdG9wIFByb2Nlc3MgYnV0dG9uIG9ubHkgd2hlbiBw cm9jZXNzIGlzIHJ1bm5pbmcKICAgICAgICAgaWYgKHBhcnNlSW50KHNlbGYuc3RhdGUpID09PSAx KSB7CkBAIC01MjYsNiArNTUzLDE1IEBAIGRlZmluZSgnbWlzYy5iZ3Byb2Nlc3MnLCBbCiAgICAg ICAgICAgfSk7CiAgICAgICB9LAogCisgICAgICBzdG9yYWdlX21hbmFnZXI6IGZ1bmN0aW9uKCkg eworCisgICAgICAgIHZhciBzZWxmID0gdGhpczsKKyAgICAgICAgaWYoc2VsZi5jdXJyZW50X3N0 b3JhZ2VfZGlyKSB7CisgICAgICAgICAgcGdCcm93c2VyLkV2ZW50cy50cmlnZ2VyKAorICAgICAg ICAgICAgJ3BnYWRtaW46dG9vbHM6c3RvcmFnZV9tYW5hZ2VyJywgc2VsZi5jdXJyZW50X3N0b3Jh Z2VfZGlyCisgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgICAgfSwKICAgICB9KTsKIAogICBf LmV4dGVuZCgKQEAgLTYzNCw3ICs2NzAsNyBAQCBkZWZpbmUoJ21pc2MuYmdwcm9jZXNzJywgWwog ICAgICAgICAgICAgICAgICAgJzxzcGFuPicgKyBnZXR0ZXh0KCdTdGFydCB0aW1lJykgKyAnOiA8 c3BhbiBjbGFzcz0iYmdwcm9jZXNzLXN0YXJ0LXRpbWUiPjwvc3Bhbj4nICsKICAgICAgICAgICAg ICAgICAgICc8L3NwYW4+JysKICAgICAgICAgICAgICAgICAnPC9kaXY+JyArCi0gICAgICAgICAg ICAgICAgJzxkaXYgY2xhc3M9Im1sLWF1dG8iPicgKworICAgICAgICAgICAgICAgICc8ZGl2IGNs YXNzPSJtbC1hdXRvIGJnLWJ0bi1zZWN0aW9uIj4nICsKICAgICAgICAgICAgICAgICAgICc8YnV0 dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGFuZ2VyIGJnLXByb2Nlc3Mtc3RvcCIg ZGlzYWJsZWQ+PHNwYW4gY2xhc3M9ImZhIGZhLXRpbWVzLWNpcmNsZSIgcm9sZT0iaW1nIj48L3Nw YW4+Jm5ic3A7JyArIGdldHRleHQoJ1N0b3AgUHJvY2VzcycpICsgJzwvYnV0dG9uPicgKwogICAg ICAgICAgICAgICAgICc8L2Rpdj4nICsKICAgICAgICAgICAgICAgJzwvZGl2PicgKwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvX19pbml0X18ucHkgYi93ZWIvcGdh ZG1pbi9taXNjL2ZpbGVfbWFuYWdlci9fX2luaXRfXy5weQppbmRleCA2M2UyZGQ3YTMuLjRhYjU4 ZmI5MSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvX19pbml0X18u cHkKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvX19pbml0X18ucHkKQEAgLTIz LDcgKzIzLDcgQEAgZnJvbSB3ZXJremV1Zy5leGNlcHRpb25zIGltcG9ydCBJbnRlcm5hbFNlcnZl ckVycm9yCiAKIGltcG9ydCBzaW1wbGVqc29uIGFzIGpzb24KIGZyb20gZmxhc2sgaW1wb3J0IHJl bmRlcl90ZW1wbGF0ZSwgUmVzcG9uc2UsIHNlc3Npb24sIHJlcXVlc3QgYXMgcmVxLCBcCi0gICAg dXJsX2ZvciwgY3VycmVudF9hcHAKKyAgICB1cmxfZm9yLCBjdXJyZW50X2FwcCwgc2VuZF9mcm9t X2RpcmVjdG9yeQogZnJvbSBmbGFza19iYWJlbGV4IGltcG9ydCBnZXR0ZXh0CiBmcm9tIGZsYXNr X3NlY3VyaXR5IGltcG9ydCBsb2dpbl9yZXF1aXJlZAogZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9y dCBQZ0FkbWluTW9kdWxlCkBAIC0xMjE0LDExICsxMjE0LDE2IEBAIGNsYXNzIEZpbGVtYW5hZ2Vy KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgJ2F0dGFjaG1lbnQ7IGZpbGVuYW1lPScgKyBuYW1l CiAgICAgICAgICAgICByZXR1cm4gcmVzcAogCi0gICAgICAgIG5hbWUgPSBwYXRoLnNwbGl0KCcv JylbLTFdCi0gICAgICAgIGNvbnRlbnQgPSBvcGVuKG9yaWdfcGF0aCwgJ3JiJykKLSAgICAgICAg cmVzcCA9IFJlc3BvbnNlKGNvbnRlbnQpCi0gICAgICAgIHJlc3AuaGVhZGVyc1snQ29udGVudC1E aXNwb3NpdGlvbiddID0gJ2F0dGFjaG1lbnQ7IGZpbGVuYW1lPScgKyBuYW1lCi0gICAgICAgIHJl dHVybiByZXNwCisgICAgICAgIG5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHBhdGgpCisgICAgICAg IGlmIG9yaWdfcGF0aCBhbmQgbGVuKG9yaWdfcGF0aCkgPiAwOgorICAgICAgICAgICAgZGlyX3Bh dGggPSBvcy5wYXRoLmRpcm5hbWUob3JpZ19wYXRoKQorICAgICAgICBlbHNlOgorICAgICAgICAg ICAgZGlyX3BhdGggPSBvcy5wYXRoLmRpcm5hbWUocGF0aCkKKworICAgICAgICByZXNwb25zZSA9 IHNlbmRfZnJvbV9kaXJlY3RvcnkoZGlyX3BhdGgsIG5hbWUsIGFzX2F0dGFjaG1lbnQ9VHJ1ZSkK KyAgICAgICAgcmVzcG9uc2UuaGVhZGVyc1siZmlsZW5hbWUiXSA9IG5hbWUKKworICAgICAgICBy ZXR1cm4gcmVzcG9uc2UKIAogICAgIGRlZiBwZXJtaXNzaW9uKHNlbGYsIHBhdGg9Tm9uZSwgcmVx PU5vbmUpOgogICAgICAgICB0aGVfZGlyID0gc2VsZi5kaXIgaWYgc2VsZi5kaXIgaXMgbm90IE5v bmUgZWxzZSAnJwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvc3Rh dGljL2pzL2ZpbGVfbWFuYWdlci5qcyBiL3dlYi9wZ2FkbWluL21pc2MvZmlsZV9tYW5hZ2VyL3N0 YXRpYy9qcy9maWxlX21hbmFnZXIuanMKaW5kZXggMWRhODY4ODk2Li5jMmJkODdjOWYgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL21pc2MvZmlsZV9tYW5hZ2VyL3N0YXRpYy9qcy9maWxlX21hbmFn ZXIuanMKKysrIGIvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvc3RhdGljL2pzL2ZpbGVf bWFuYWdlci5qcwpAQCAtOSw2ICs5LDcgQEAKIAogaW1wb3J0ICcuL3NlbGVjdF9kaWFsb2d1ZSc7 CiBpbXBvcnQgJy4vY3JlYXRlX2RpYWxvZ3VlJzsKK2ltcG9ydCAnLi9zdG9yYWdlX2RpYWxvZ3Vl JzsKIAogZGVmaW5lKCdtaXNjLmZpbGVfbWFuYWdlcicsIFsKICAgJ3NvdXJjZXMvZ2V0dGV4dCcs ICdzb3VyY2VzL3VybF9mb3InLCAnanF1ZXJ5JywgJ3VuZGVyc2NvcmUnLApAQCAtNDEsNyArNDIs MTAgQEAgZGVmaW5lKCdtaXNjLmZpbGVfbWFuYWdlcicsIFsKICAgICAgIGxldCBkaWFsb2dIZWln aHQgPSBwZ0FkbWluLkJyb3dzZXIuc3RkSC5jYWxjKHBnQWRtaW4uQnJvd3Nlci5zdGRILmxnKTsK ICAgICAgIGlmIChwYXJhbXMuZGlhbG9nX3R5cGUgPT0gJ2NyZWF0ZV9maWxlJykgewogICAgICAg ICBBbGVydGlmeS5jcmVhdGVNb2RlRGxnKHBhcmFtcykucmVzaXplVG8oZGlhbG9nV2lkdGgsIGRp YWxvZ0hlaWdodCk7Ci0gICAgICB9IGVsc2UgeworICAgICAgfSBlbHNlIGlmKHBhcmFtcy5kaWFs b2dfdHlwZSA9PSAnc3RvcmFnZV9kaWFsb2cnKSB7CisgICAgICAgIEFsZXJ0aWZ5LmZpbGVTdG9y YWdlRGxnKHBhcmFtcykucmVzaXplVG8oZGlhbG9nV2lkdGgsIGRpYWxvZ0hlaWdodCk7CisgICAg ICB9CisgICAgICBlbHNlIHsKICAgICAgICAgQWxlcnRpZnkuZmlsZVNlbGVjdGlvbkRsZyhwYXJh bXMpLnJlc2l6ZVRvKGRpYWxvZ1dpZHRoLCBkaWFsb2dIZWlnaHQpOwogICAgICAgfQogICAgIH0s CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL2ZpbGVfbWFuYWdlci9zdGF0aWMvanMvc2Vs ZWN0X2RpYWxvZ3VlLmpzIGIvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvc3RhdGljL2pz L3NlbGVjdF9kaWFsb2d1ZS5qcwppbmRleCA3YjY1MTU1OTMuLmY0NGY0YWM0MCAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvc3RhdGljL2pzL3NlbGVjdF9kaWFsb2d1 ZS5qcworKysgYi93ZWIvcGdhZG1pbi9taXNjL2ZpbGVfbWFuYWdlci9zdGF0aWMvanMvc2VsZWN0 X2RpYWxvZ3VlLmpzCkBAIC03Nyw3ICs3Nyw4IEBAIG1vZHVsZS5leHBvcnRzID0gIEFsZXJ0aWZ5 LmRpYWxvZygnZmlsZVNlbGVjdGlvbkRsZycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICQoJChz ZWxmLmVsZW1lbnRzLmZvb3RlcikuZmluZCgnLmZpbGVfbWFuYWdlcl9vaycpKS50cmlnZ2VyKCdj bGljaycpOwogICAgICAgICB9KTsKICAgICAgIH0sIDIwMCk7Ci0gICAgICBzZWxmLl9faW50ZXJu YWwuYnV0dG9uc1sxXS5lbGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKKyAgICAgIGlmKHNlbGYuX19p bnRlcm5hbC5idXR0b25zWzFdKQorICAgICAgICBzZWxmLl9faW50ZXJuYWwuYnV0dG9uc1sxXS5l bGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKICAgICB9LAogICAgIHNldHVwOiBmdW5jdGlvbigpIHsK ICAgICAgIHJldHVybiB7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNjL2ZpbGVfbWFuYWdl ci9zdGF0aWMvanMvc3RvcmFnZV9kaWFsb2d1ZS5qcyBiL3dlYi9wZ2FkbWluL21pc2MvZmlsZV9t YW5hZ2VyL3N0YXRpYy9qcy9zdG9yYWdlX2RpYWxvZ3VlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMC4uZTY0NDQ1NTExCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vbWlzYy9maWxlX21hbmFnZXIvc3RhdGljL2pzL3N0b3JhZ2VfZGlhbG9ndWUuanMKQEAgLTAs MCArMSw0NSBAQAorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLworLy8KKy8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKy8v CisvLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBU ZWFtCisvLyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExp Y2VuY2UKKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLworCitpbXBvcnQgZ2V0dGV4dCBmcm9tICdzb3VyY2VzL2dldHRleHQn OworaW1wb3J0IEFsZXJ0aWZ5IGZyb20gJ3BnYWRtaW4uYWxlcnRpZnlqcyc7CisKKy8vIERlY2xh cmUgdGhlIFN0b3JhZ2UgZGlhbG9nCittb2R1bGUuZXhwb3J0cyA9ICBBbGVydGlmeS5kaWFsb2co J2ZpbGVTdG9yYWdlRGxnJywgZnVuY3Rpb24oKSB7CisgIC8vIERpYWxvZyBwcm9wZXJ0eQorICBy ZXR1cm4geworICAgIHNldHRpbmdVcGRhdGVkOiBmdW5jdGlvbihrZXksIG9sZFZhbHVlLCBuZXdW YWx1ZSkgeworICAgICAgaWYoa2V5ID09ICdtZXNzYWdlJykgeworICAgICAgICB0aGlzLnNldE1l c3NhZ2UobmV3VmFsdWUpOworICAgICAgfQorICAgIH0sCisgICAgc2V0dXA6IGZ1bmN0aW9uKCkg eworICAgICAgcmV0dXJuIHsKKyAgICAgICAgYnV0dG9uczogW3sKKyAgICAgICAgICB0ZXh0OiBn ZXR0ZXh0KCdDYW5jZWwnKSwKKyAgICAgICAgICBrZXk6IDI3LAorICAgICAgICAgIGNsYXNzTmFt ZTogJ2J0biBidG4tc2Vjb25kYXJ5IGZhIGZhLXRpbWVzIHBnLWFsZXJ0aWZ5LWJ1dHRvbicsCisg ICAgICAgIH1dLAorICAgICAgICBvcHRpb25zOiB7CisgICAgICAgICAgY2xvc2FibGVCeURpbW1l cjogZmFsc2UsCisgICAgICAgICAgbWF4aW1pemFibGU6IGZhbHNlLAorICAgICAgICAgIGNsb3Nh YmxlOiBmYWxzZSwKKyAgICAgICAgICBtb3ZhYmxlOiB0cnVlLAorICAgICAgICAgIHBhZGRpbmc6 ICExLAorICAgICAgICAgIG92ZXJmbG93OiAhMSwKKyAgICAgICAgICBtb2RlbDogMCwKKyAgICAg ICAgICByZXNpemFibGU6IHRydWUsCisgICAgICAgICAgcGlubmFibGU6IGZhbHNlLAorICAgICAg ICAgIG1vZGFsOiBmYWxzZSwKKyAgICAgICAgICBhdXRvUmVzZXQ6IGZhbHNlLAorICAgICAgICB9 LAorICAgICAgfTsKKyAgICB9LAorICB9OworfSwgdHJ1ZSwgJ2ZpbGVTZWxlY3Rpb25EbGcnKTsK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL21pc2MvZmlsZV9tYW5hZ2VyL3N0YXRpYy9qcy91dGls aXR5LmpzIGIvd2ViL3BnYWRtaW4vbWlzYy9maWxlX21hbmFnZXIvc3RhdGljL2pzL3V0aWxpdHku anMKaW5kZXggMzQ5NGIxMjdjLi5jOTdlNTRkOTAgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL21p c2MvZmlsZV9tYW5hZ2VyL3N0YXRpYy9qcy91dGlsaXR5LmpzCisrKyBiL3dlYi9wZ2FkbWluL21p c2MvZmlsZV9tYW5hZ2VyL3N0YXRpYy9qcy91dGlsaXR5LmpzCkBAIC0yMyw2ICsyMyw4IEBAIGRl ZmluZShbCiAgICdzb3VyY2VzL2NzcmYnLCAndGFibGVzb3J0ZXInLCAndGFibGVzb3J0ZXItbWV0 cmljJywKIF0sIGZ1bmN0aW9uKCQsIF8sIEFsZXJ0aWZ5LCBnZXR0ZXh0LCB1cmxfZm9yLCBEcm9w em9uZSwgcGdBZG1pbiwgY3NyZikgewogCisgIHBnQWRtaW4uQnJvd3NlciA9IHBnQWRtaW4uQnJv d3NlciB8fCB7fTsKKwogICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIERlZmluZSBmdW5jdGlvbnMgdXNlZCBmb3IgdmFyaW91 cyBvcGVyYXRpb25zCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSovCkBAIC0xNzksMTQgKzE4MSwxNyBAQCBkZWZpbmUoWwogICAgICAg JCgnLmZpbGVfbWFuYWdlcicpLmZpbmQoJ2J1dHRvbi5kb3dubG9hZCcpLmhpZGUoKTsKICAgICB9 IGVsc2UgewogICAgICAgJCgnLmZpbGVfbWFuYWdlcicpLmZpbmQoJ2J1dHRvbi5kb3dubG9hZCcp Lm9mZigpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgcGF0aDsKKyAgICAg ICAgdmFyIHBhdGgsCisgICAgICAgICAgcGFyYW1zID0ge307CisKKyAgICAgICAgcGFyYW1zW3Bn QWRtaW4uY3NyZl90b2tlbl9oZWFkZXJdID0gcGdBZG1pbi5jc3JmX3Rva2VuOworCiAgICAgICAg IGlmICgkKCcuZmlsZWluZm8nKS5kYXRhKCd2aWV3JykgPT0gJ2dyaWQnKSB7CiAgICAgICAgICAg cGF0aCA9ICQoJy5maWxlaW5mbyBsaS5zZWxlY3RlZCcpLmZpbmQoJy5jbGlwIHNwYW4nKS5hdHRy KCdkYXRhLWFsdCcpOwotICAgICAgICAgIHdpbmRvdy5vcGVuKHBnQWRtaW4uRmlsZVV0aWxzLmZp bGVDb25uZWN0b3IgKyAnP189JyArIERhdGUubm93KCkgKyAnbW9kZT1kb3dubG9hZCZwYXRoPScg KyBwYXRoLCAnX2JsYW5rJyk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgcGF0aCA9ICQo Jy5maWxlaW5mbycpLmZpbmQoJ3RhYmxlI2NvbnRlbnRzIHRib2R5IHRyLnNlbGVjdGVkIHRkOmZp cnN0LWNoaWxkJykuYXR0cigndGl0bGUnKTsKLSAgICAgICAgICB3aW5kb3cub3BlbihwZ0FkbWlu LkZpbGVVdGlscy5maWxlQ29ubmVjdG9yICsgJz9fPScgKyBEYXRlLm5vdygpICsgJ21vZGU9ZG93 bmxvYWQmcGF0aD0nICsgcGF0aCwgJ19ibGFuaycpOwogICAgICAgICB9CisgICAgICAgIGRvd25s b2FkX2ZpbGUocGF0aCk7CiAgICAgICB9KTsKICAgICB9CiAgIH07CkBAIC0xMDMwLDEyICsxMDM1 LDE1IEBAIGRlZmluZShbCiAKICAgICAgICAgICAgICAgICAkKCcuZmlsZV9tYW5hZ2VyX29rJyku cmVtb3ZlQ2xhc3MoJ2Rpc2FibGVkJyk7CiAgICAgICAgICAgICAgICAgJCgnLmZpbGVfbWFuYWdl cl9vaycpLmF0dHIoJ2Rpc2FibGVkJywgZmFsc2UpOwotICAgICAgICAgICAgICAgICQoJy5maWxl X21hbmFnZXIgYnV0dG9uLmRlbGV0ZSwgLmZpbGVfbWFuYWdlciBidXR0b24ucmVuYW1lJykucmVt b3ZlQXR0cigKKyAgICAgICAgICAgICAgICAkKCcuZmlsZV9tYW5hZ2VyIGJ1dHRvbi5kZWxldGUn KS5yZW1vdmVBdHRyKAogICAgICAgICAgICAgICAgICAgJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJwog ICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgJCgnLmZpbGVfbWFuYWdlciBidXR0 b24uZG93bmxvYWQnKS5hdHRyKAogICAgICAgICAgICAgICAgICAgJ2Rpc2FibGVkJywgJ2Rpc2Fi bGVkJwogICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgJCgnLmZpbGVfbWFuYWdl ciBidXR0b24ucmVuYW1lJykuYXR0cigKKyAgICAgICAgICAgICAgICAgICdkaXNhYmxlZCcsICdk aXNhYmxlZCcKKyAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgIC8vIHNldCBzZWxl Y3RlZCBmb2xkZXIgbmFtZSBpbiBicmVhZGNydW1zCiAgICAgICAgICAgICAgICAgJCgnLmZpbGVf bWFuYWdlciAjdXBsb2FkZXIgLmlucHV0LXBhdGgnKS5oaWRlKCk7CiAgICAgICAgICAgICAgICAg JCgnLmZpbGVfbWFuYWdlciAjdXBsb2FkZXIgLnNob3dfc2VsZWN0ZWRfZmlsZScpLnJlbW92ZSgp OwpAQCAtMTA3OCw3ICsxMDg2LDggQEAgZGVmaW5lKFsKICAgICAgICAgICAgICAgICAkKCcuZmls ZV9tYW5hZ2VyX29rJykucmVtb3ZlQ2xhc3MoJ2Rpc2FibGVkJyk7CiAgICAgICAgICAgICAgICAg JCgnLmZpbGVfbWFuYWdlcl9vaycpLmF0dHIoJ2Rpc2FibGVkJywgZmFsc2UpOwogICAgICAgICAg ICAgICAgICQoJy5maWxlX21hbmFnZXIgYnV0dG9uLmRvd25sb2FkJykuYXR0cignZGlzYWJsZWQn LCAnZGlzYWJsZWQnKTsKLSAgICAgICAgICAgICAgICAkKCcuZmlsZV9tYW5hZ2VyIGJ1dHRvbi5k ZWxldGUsIC5maWxlX21hbmFnZXIgYnV0dG9uLnJlbmFtZScpLnJlbW92ZUF0dHIoJ2Rpc2FibGVk Jyk7CisgICAgICAgICAgICAgICAgJCgnLmZpbGVfbWFuYWdlciBidXR0b24ucmVuYW1lJykuYXR0 cignZGlzYWJsZWQnLCAnZGlzYWJsZWQnKTsKKyAgICAgICAgICAgICAgICAkKCcuZmlsZV9tYW5h Z2VyIGJ1dHRvbi5kZWxldGUnKS5yZW1vdmVBdHRyKCdkaXNhYmxlZCcpOwogCiAgICAgICAgICAg ICAgICAgLy8gc2V0IHNlbGVjdGVkIGZvbGRlciBuYW1lIGluIGJyZWFkY3J1bXMKICAgICAgICAg ICAgICAgICAkKCcuZmlsZV9tYW5hZ2VyICN1cGxvYWRlciAuaW5wdXQtcGF0aCcpLmhpZGUoKTsK QEAgLTExNjgsNiArMTE3Nyw2MCBAQCBkZWZpbmUoWwogICAgICAgaXNfcHJvdGVjdGVkID09IHVu ZGVmaW5lZDsKICAgfTsKIAorICAvLyBEb3dubG9hZCBzZWxlY3RlZCBmaWxlCisgIHZhciBkb3du bG9hZF9maWxlID0gZnVuY3Rpb24gKHBhdGgpIHsKKworICAgIHZhciBkYXRhID0geyAncGF0aCc6 IHBhdGgsICdtb2RlJzogJ2Rvd25sb2FkJyB9LAorICAgICAgcGFyYW1zID0ge307CisKKyAgICBw YXJhbXNbcGdBZG1pbi5jc3JmX3Rva2VuX2hlYWRlcl0gPSBwZ0FkbWluLmNzcmZfdG9rZW47CisK KyAgICAkLmFqYXgoeworICAgICAgdHlwZTogJ1BPU1QnLAorICAgICAgdXJsOiBwZ0FkbWluLkZp bGVVdGlscy5maWxlQ29ubmVjdG9yLAorICAgICAgY29udGVudFR5cGU6IGZhbHNlLAorICAgICAg aGVhZGVyczogcGFyYW1zLAorICAgICAgeGhyRmllbGRzOiB7CisgICAgICAgIHJlc3BvbnNlVHlw ZTogJ2Jsb2InLAorICAgICAgfSwKKyAgICAgIGNhY2hlOiBmYWxzZSwKKyAgICAgIGRhdGE6IEpT T04uc3RyaW5naWZ5KGRhdGEpLAorICAgICAgc3VjY2VzczogZnVuY3Rpb24gKGJsb2IsIHN0YXR1 cywgeGhyKSB7CisgICAgICAgIC8vIGNoZWNrIGZvciBhIGZpbGVuYW1lCisgICAgICAgIHZhciBm aWxlbmFtZSA9IHhoci5nZXRSZXNwb25zZUhlYWRlcignZmlsZW5hbWUnKTsKKworICAgICAgICBp ZiAodHlwZW9mIHdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlQmxvYiAhPT0gJ3VuZGVmaW5lZCcpIHsK KyAgICAgICAgICAvLyBJRSB3b3JrYXJvdW5kIGZvciAiSFRNTDcwMDc6IE9uZSBvciBtb3JlIGJs b2IgVVJMcyB3ZXJlIHJldm9rZWQgYnkgY2xvc2luZyB0aGUgYmxvYiBmb3Igd2hpY2ggdGhleSB3 ZXJlIGNyZWF0ZWQuIFRoZXNlIFVSTHMgd2lsbCBubyBsb25nZXIgcmVzb2x2ZSBhcyB0aGUgZGF0 YSBiYWNraW5nIHRoZSBVUkwgaGFzIGJlZW4gZnJlZWQuIgorICAgICAgICAgIHdpbmRvdy5uYXZp Z2F0b3IubXNTYXZlQmxvYihibG9iLCBmaWxlbmFtZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAg ICAgICAgdmFyIFVSTCA9IHdpbmRvdy5VUkwgfHwgd2luZG93LndlYmtpdFVSTDsKKyAgICAgICAg ICB2YXIgZG93bmxvYWRVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOworCisgICAgICAg ICAgaWYgKGZpbGVuYW1lKSB7CisgICAgICAgICAgICAvLyB1c2UgSFRNTDUgYVtkb3dubG9hZF0g YXR0cmlidXRlIHRvIHNwZWNpZnkgZmlsZW5hbWUKKyAgICAgICAgICAgIHZhciBhID0gZG9jdW1l bnQuY3JlYXRlRWxlbWVudCgnYScpOworICAgICAgICAgICAgLy8gc2FmYXJpIGRvZXNuJ3Qgc3Vw cG9ydCB0aGlzIHlldAorICAgICAgICAgICAgaWYgKHR5cGVvZiBhLmRvd25sb2FkID09PSAndW5k ZWZpbmVkJykgeworICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGRvd25sb2Fk VXJsOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgYS5ocmVmID0gZG93bmxv YWRVcmw7CisgICAgICAgICAgICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZTsKKyAgICAgICAgICAg ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTsKKyAgICAgICAgICAgICAgYS5jbGljaygp OworICAgICAgICAgICAgfQorICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB3aW5kb3cu bG9jYXRpb24uaHJlZiA9IGRvd25sb2FkVXJsOworICAgICAgICAgIH0KKworICAgICAgICAgIHNl dFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBVUkwucmV2b2tlT2JqZWN0VVJMKGRvd25sb2FkVXJsKTsg fSwgMTAwKTsgLy8gY2xlYW51cAorICAgICAgICB9CisgICAgICB9LAorICAgICAgZXJyb3I6IGZ1 bmN0aW9uIChlcnJvcikgeworICAgICAgICBBbGVydGlmeS5lcnJvcihlcnJvcik7CisgICAgICB9 LAorICAgIH0pOworICB9OworCiAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgSW5pdGlhbGl6YXRpb24gLSBFbnRyeSBwb2lu dAogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0qLwpAQCAtMTQ0NiwxMiArMTUwOSwxMyBAQCBkZWZpbmUoWwogICAgICAgICAgICAgICAg ICkgewogICAgICAgICAgICAgICAgICAgJCgnLmZpbGVfbWFuYWdlcl9vaycpLnJlbW92ZUNsYXNz KCdkaXNhYmxlZCcpOwogICAgICAgICAgICAgICAgICAgJCgnLmZpbGVfbWFuYWdlcl9vaycpLmF0 dHIoJ2Rpc2FibGVkJywgZmFsc2UpOwotICAgICAgICAgICAgICAgICAgJCgnLmZpbGVfbWFuYWdl ciBidXR0b24uZGVsZXRlLCAuZmlsZV9tYW5hZ2VyIGJ1dHRvbi5yZW5hbWUnKS5yZW1vdmVBdHRy KAorICAgICAgICAgICAgICAgICAgJCgnLmZpbGVfbWFuYWdlciBidXR0b24uZGVsZXRlJykucmVt b3ZlQXR0cigKICAgICAgICAgICAgICAgICAgICAgJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJwogICAg ICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICQoJy5maWxlX21hbmFnZXIgYnV0 dG9uLmRvd25sb2FkJykuYXR0cigKICAgICAgICAgICAgICAgICAgICAgJ2Rpc2FibGVkJywgJ2Rp c2FibGVkJwogICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgICAgICQoJy5maWxl X21hbmFnZXIgYnV0dG9uLnJlbmFtZScpLmF0dHIoJ2Rpc2FibGVkJywgJ2Rpc2FibGVkJyk7CiAg ICAgICAgICAgICAgICAgICAvLyBzZXQgc2VsZWN0ZWQgZm9sZGVyIG5hbWUgaW4gYnJlYWRjcnVt cwogICAgICAgICAgICAgICAgICAgJCgnLmZpbGVfbWFuYWdlciAjdXBsb2FkZXIgLmlucHV0LXBh dGgnKS5oaWRlKCk7CiAgICAgICAgICAgICAgICAgICAkKCcuZmlsZV9tYW5hZ2VyICN1cGxvYWRl ciAuc2hvd19zZWxlY3RlZF9maWxlJykucmVtb3ZlKCk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi90b29scy9iYWNrdXAvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi90b29scy9iYWNrdXAvX19p bml0X18ucHkKaW5kZXggZGEzODhhZDI2Li42ZGRkMzhkYjQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL3Rvb2xzL2JhY2t1cC9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy9iYWNr dXAvX19pbml0X18ucHkKQEAgLTE0MSw2ICsxNDEsMTEgQEAgY2xhc3MgQmFja3VwTWVzc2FnZShJ UHJvY2Vzc0Rlc2MpOgogICAgICAgICAgICAgIyBJdCBzaG91bGQgbmV2ZXIgcmVhY2ggaGVyZS4K ICAgICAgICAgICAgIHJldHVybiBfKCJVbmtub3duIEJhY2t1cCIpCiAKKyAgICAjIEBwcm9wZXJ0 eQorICAgICMgZGVmIGN1cnJlbnRfc3RvcmFnZV9kaXIoc2VsZik6CisgICAgIyAgICAgcmV0dXJu IHNlbGYuYmZpbGUgaWYgb3MucGF0aC5pc2RpcihzZWxmLmJmaWxlKSBcCisgICAgIyAgICAgICAg IGVsc2Ugb3MucGF0aC5kaXJuYW1lKHNlbGYuYmZpbGUpCisKICAgICBAcHJvcGVydHkKICAgICBk ZWYgbWVzc2FnZShzZWxmKToKICAgICAgICAgbmFtZSwgaG9zdCwgcG9ydCA9IHNlbGYuZ2V0X3Nl cnZlcl9kZXRhaWxzKCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2JhY2t1cC90ZXN0 cy90ZXN0X2JhY2t1cF9tZXNzYWdlLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvYmFja3VwL3Rlc3Rz L3Rlc3RfYmFja3VwX21lc3NhZ2UucHkKaW5kZXggNGUwOGRmZjE0Li4xZDIzZmY2ZjggMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL2JhY2t1cC90ZXN0cy90ZXN0X2JhY2t1cF9tZXNzYWdl LnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2JhY2t1cC90ZXN0cy90ZXN0X2JhY2t1cF9tZXNz YWdlLnB5CkBAIC0xNCw2ICsxNCwxMCBAQCBmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNo CiAKIGNsYXNzIEJhY2t1cE1lc3NhZ2VUZXN0KEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAiIiJU ZXN0IHRoZSBCYWNrdXBNZXNzYWdlIGNsYXNzIiIiCisKKyAgICBleHBlY3RlZF9zdG9yYWdlX2Rp ciA9ICcvdGVzdF9wYXRoJworICAgIHBnX2R1bXAgPSAiL3BnX2R1bXAiCisKICAgICBzY2VuYXJp b3MgPSBbCiAgICAgICAgICgnV2hlbiBCYWNrdXAgc2VydmVyJywKICAgICAgICAgIGRpY3QoCkBA IC0yNCw3ICsyOCw3IEBAIGNsYXNzIEJhY2t1cE1lc3NhZ2VUZXN0KEJhc2VUZXN0R2VuZXJhdG9y KToKICAgICAgICAgICAgICAgICAgcG9ydD01NDQ0LAogICAgICAgICAgICAgICAgICBob3N0PSds b2NhbGhvc3QnLAogICAgICAgICAgICAgICAgICBkYXRhYmFzZT0ncG9zdGdyZXMnLAotICAgICAg ICAgICAgICAgICBiZmlsZT0ndGVzdF9yZXN0b3JlJywKKyAgICAgICAgICAgICAgICAgYmZpbGU9 Jy90ZXN0X3BhdGgvdGVzdF9yZXN0b3JlLnNxbCcsCiAgICAgICAgICAgICAgICAgIGFyZ3M9Wwog ICAgICAgICAgICAgICAgICAgICAgJy0tZmlsZScsCiAgICAgICAgICAgICAgICAgICAgICAiYmFj a3VwX2ZpbGUiLApAQCAtMzgsMTQgKzQyLDE1IEBAIGNsYXNzIEJhY2t1cE1lc3NhZ2VUZXN0KEJh c2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAgICAgICctLWRhdGFiYXNlJywKICAg ICAgICAgICAgICAgICAgICAgICJwb3N0Z3JlcyIKICAgICAgICAgICAgICAgICAgXSwKLSAgICAg ICAgICAgICAgICAgY21kPSIvdGVzdF9wYXRoL3BnX2R1bXAiCisgICAgICAgICAgICAgICAgIGNt ZD1leHBlY3RlZF9zdG9yYWdlX2RpciArIHBnX2R1bXAKICAgICAgICAgICAgICApLAogICAgICAg ICAgICAgIGV4cGVjdGVkX21zZz0iQmFja2luZyB1cCB0aGUgc2VydmVyIgogICAgICAgICAgICAg ICAgICAgICAgICAgICAiICd0ZXN0X2JhY2t1cF9zZXJ2ZXIgKGxvY2FsaG9zdDo1NDQ0KSciLAog ICAgICAgICAgICAgIGV4cGVjdGVkX2RldGFpbHNfY21kPScvdGVzdF9wYXRoL3BnX2R1bXAgLS1m aWxlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnImJhY2t1cF9maWxlIiAt LWhvc3QgImxvY2FsaG9zdCIgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICct LXBvcnQgIjU0NDQiIC0tdXNlcm5hbWUgInBvc3RncmVzIiAnCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJy0tbm8tcGFzc3dvcmQgLS1kYXRhYmFzZSAicG9zdGdyZXMiJworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLW5vLXBhc3N3b3JkIC0tZGF0YWJhc2Ug InBvc3RncmVzIicsCisgICAgICAgICAgICAgZXhwZWN0ZWRfc3RvcmFnZV9kaXI9ZXhwZWN0ZWRf c3RvcmFnZV9kaXIKIAogICAgICAgICAgKSksCiAgICAgICAgICgnV2hlbiBCYWNrdXAgZ2xvYmFs JywKQEAgLTU3LDcgKzYyLDcgQEAgY2xhc3MgQmFja3VwTWVzc2FnZVRlc3QoQmFzZVRlc3RHZW5l cmF0b3IpOgogICAgICAgICAgICAgICAgICBwb3J0PTU0NDQsCiAgICAgICAgICAgICAgICAgIGhv c3Q9J2xvY2FsaG9zdCcsCiAgICAgICAgICAgICAgICAgIGRhdGFiYXNlPSdwb3N0Z3JlcycsCi0g ICAgICAgICAgICAgICAgIGJmaWxlPSd0ZXN0X2JhY2t1cCcsCisgICAgICAgICAgICAgICAgIGJm aWxlPScvdGVzdF9wYXRoL3Rlc3RfYmFja3VwJywKICAgICAgICAgICAgICAgICAgYXJncz1bCiAg ICAgICAgICAgICAgICAgICAgICAnLS1maWxlJywKICAgICAgICAgICAgICAgICAgICAgICdiYWNr dXBfZmlsZScsCkBAIC03MSwxNCArNzYsMTUgQEAgY2xhc3MgQmFja3VwTWVzc2FnZVRlc3QoQmFz ZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAgICAgICAgJy0tZGF0YWJhc2UnLAogICAg ICAgICAgICAgICAgICAgICAgJ3Bvc3RncmVzJwogICAgICAgICAgICAgICAgICBdLAotICAgICAg ICAgICAgICAgICBjbWQ9Ii90ZXN0X3BhdGgvcGdfZHVtcCIKKyAgICAgICAgICAgICAgICAgY21k PWV4cGVjdGVkX3N0b3JhZ2VfZGlyICsgcGdfZHVtcAogICAgICAgICAgICAgICksCiAgICAgICAg ICAgICAgZXhwZWN0ZWRfbXNnPSJCYWNraW5nIHVwIHRoZSBnbG9iYWwgb2JqZWN0cyBvbiB0aGUg c2VydmVyICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIid0ZXN0X2JhY2t1cF9zZXJ2ZXIg KGxvY2FsaG9zdDo1NDQ0KSciLAogICAgICAgICAgICAgIGV4cGVjdGVkX2RldGFpbHNfY21kPScv dGVzdF9wYXRoL3BnX2R1bXAgLS1maWxlICJiYWNrdXBfZmlsZSIgJwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICctLWhvc3QgImxvY2FsaG9zdCInCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJyAtLXBvcnQgIjU0NDQiIC0tdXNlcm5hbWUgInBvc3RncmVzIiAn Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tbm8tcGFzc3dvcmQgLS1kYXRh YmFzZSAicG9zdGdyZXMiJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLW5v LXBhc3N3b3JkIC0tZGF0YWJhc2UgInBvc3RncmVzIicsCisgICAgICAgICAgICAgZXhwZWN0ZWRf c3RvcmFnZV9kaXI9ZXhwZWN0ZWRfc3RvcmFnZV9kaXIKIAogICAgICAgICAgKSksCiAgICAgICAg ICgnV2hlbiBiYWNrdXAgb2JqZWN0JywKQEAgLTkwLDcgKzk2LDcgQEAgY2xhc3MgQmFja3VwTWVz c2FnZVRlc3QoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAgICBwb3J0PTU0NDQs CiAgICAgICAgICAgICAgICAgIGhvc3Q9J2xvY2FsaG9zdCcsCiAgICAgICAgICAgICAgICAgIGRh dGFiYXNlPSdwb3N0Z3JlcycsCi0gICAgICAgICAgICAgICAgIGJmaWxlPSd0ZXN0X2JhY2t1cCcs CisgICAgICAgICAgICAgICAgIGJmaWxlPScvdGVzdF9wYXRoL3Rlc3RfYmFja3VwJywKICAgICAg ICAgICAgICAgICAgYXJncz1bCiAgICAgICAgICAgICAgICAgICAgICAnLS1maWxlJywKICAgICAg ICAgICAgICAgICAgICAgICdiYWNrdXBfZmlsZScsCkBAIC0xMDQsNyArMTEwLDcgQEAgY2xhc3Mg QmFja3VwTWVzc2FnZVRlc3QoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAgICAg ICAgJy0tZGF0YWJhc2UnLAogICAgICAgICAgICAgICAgICAgICAgJ3Bvc3RncmVzJwogICAgICAg ICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICBjbWQ9Ii90ZXN0X3BhdGgvcGdfZHVtcCIK KyAgICAgICAgICAgICAgICAgY21kPWV4cGVjdGVkX3N0b3JhZ2VfZGlyICsgcGdfZHVtcAogICAg ICAgICAgICAgICksCiAgICAgICAgICAgICAgZXhwZWN0ZWRfbXNnPSJCYWNraW5nIHVwIGFuIG9i amVjdCBvbiB0aGUgc2VydmVyICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIid0ZXN0X2Jh Y2t1cF9zZXJ2ZXIgKGxvY2FsaG9zdDo1NDQ0KSciCkBAIC0xMTIsMTMgKzExOCwxNSBAQCBjbGFz cyBCYWNrdXBNZXNzYWdlVGVzdChCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgZXhw ZWN0ZWRfZGV0YWlsc19jbWQ9Jy90ZXN0X3BhdGgvcGdfZHVtcCAtLWZpbGUgImJhY2t1cF9maWxl IiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0taG9zdCAibG9jYWxob3N0 IiAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tcG9ydCAiNTQ0NCIgLS11 c2VybmFtZSAicG9zdGdyZXMiICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn LS1uby1wYXNzd29yZCAtLWRhdGFiYXNlICJwb3N0Z3JlcyInCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJy0tbm8tcGFzc3dvcmQgLS1kYXRhYmFzZSAicG9zdGdyZXMiJywKKyAg ICAgICAgICAgICBleHBlY3RlZF9zdG9yYWdlX2Rpcj1leHBlY3RlZF9zdG9yYWdlX2RpcgogCiAg ICAgICAgICApKQogICAgIF0KIAorICAgIEBwYXRjaCgncGdhZG1pbi51dGlscy5nZXRfc3RvcmFn ZV9kaXJlY3RvcnknKQogICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5iYWNrdXAuQmFja3VwTWVz c2FnZS5nZXRfc2VydmVyX2RldGFpbHMnKQotICAgIGRlZiBydW5UZXN0KHNlbGYsIGdldF9zZXJ2 ZXJfZGV0YWlsc19tb2NrKToKKyAgICBkZWYgcnVuVGVzdChzZWxmLCBnZXRfc2VydmVyX2RldGFp bHNfbW9jaywgZ2V0X3N0b3JhZ2VfZGlyZWN0b3J5X21vY2spOgogICAgICAgICBnZXRfc2VydmVy X2RldGFpbHNfbW9jay5yZXR1cm5fdmFsdWUgPSBcCiAgICAgICAgICAgICBzZWxmLmNsYXNzX3Bh cmFtc1snbmFtZSddLFwKICAgICAgICAgICAgIHNlbGYuY2xhc3NfcGFyYW1zWydob3N0J10sXApA QCAtMTMyLDEwICsxNDAsMTYgQEAgY2xhc3MgQmFja3VwTWVzc2FnZVRlc3QoQmFzZVRlc3RHZW5l cmF0b3IpOgogICAgICAgICAgICAgKip7J2RhdGFiYXNlJzogc2VsZi5jbGFzc19wYXJhbXNbJ2Rh dGFiYXNlJ119CiAgICAgICAgICkKIAorICAgICAgICBnZXRfc3RvcmFnZV9kaXJlY3RvcnlfbW9j ay5yZXR1cm5fdmFsdWUgPSAnLycKKwogICAgICAgICAjIENoZWNrIHRoZSBleHBlY3RlZCBtZXNz YWdlIHJldHVybmVkCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYmFja3VwX29iai5tZXNzYWdl LCBzZWxmLmV4cGVjdGVkX21zZykKIAogICAgICAgICAjIENoZWNrIHRoZSBjb21tYW5kCiAgICAg ICAgIG9ial9kZXRhaWxzID0gYmFja3VwX29iai5kZXRhaWxzKHNlbGYuY2xhc3NfcGFyYW1zWydj bWQnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jbGFz c19wYXJhbXNbJ2FyZ3MnXSkKKworICAgICAgICBzdG9yYWdlX2RpciA9IGJhY2t1cF9vYmouY3Vy cmVudF9zdG9yYWdlX2RpcgorCiAgICAgICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi5leHBlY3RlZF9k ZXRhaWxzX2NtZCwgb2JqX2RldGFpbHMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5l eHBlY3RlZF9zdG9yYWdlX2Rpciwgc3RvcmFnZV9kaXIpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi90b29scy9pbXBvcnRfZXhwb3J0L19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvaW1w b3J0X2V4cG9ydC9fX2luaXRfXy5weQppbmRleCA3Y2E3NTQ3ZTguLmQxMTllOTc5ZiAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvaW1wb3J0X2V4cG9ydC9fX2luaXRfXy5weQorKysgYi93 ZWIvcGdhZG1pbi90b29scy9pbXBvcnRfZXhwb3J0L19faW5pdF9fLnB5CkBAIC0yMyw2ICsyMyw3 IEBAIGZyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIGJh ZF9yZXF1ZXN0CiBmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKIGZyb20gcGdh ZG1pbi5tb2RlbCBpbXBvcnQgU2VydmVyCiBmcm9tIHBnYWRtaW4udXRpbHMuY29uc3RhbnRzIGlt cG9ydCBNSU1FVFlQRV9BUFBfSlMKK2ltcG9ydCBjb25maWcKIAogTU9EVUxFX05BTUUgPSAnaW1w b3J0X2V4cG9ydCcKIApAQCAtNzEsMTYgKzcyLDE3IEBAIGNsYXNzIElFTWVzc2FnZShJUHJvY2Vz c0Rlc2MpOgogCiAgICAgRGVmaW5lcyB0aGUgbWVzc2FnZSBzaG93biBmb3IgdGhlIGltcG9ydC9l eHBvcnQgb3BlcmF0aW9uLgogICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIF9zaWQs IF9zY2hlbWEsIF90YmwsIF9kYXRhYmFzZSwgX3N0b3JhZ2UsICpfYXJncyk6Ci0gICAgICAgIHNl bGYuc2lkID0gX3NpZAotICAgICAgICBzZWxmLnNjaGVtYSA9IF9zY2hlbWEKLSAgICAgICAgc2Vs Zi50YWJsZSA9IF90YmwKLSAgICAgICAgc2VsZi5kYXRhYmFzZSA9IF9kYXRhYmFzZQorICAgIGRl ZiBfX2luaXRfXyhzZWxmLCAqX2FyZ3MsICoqaW9fcGFyYW1zKToKKyAgICAgICAgc2VsZi5zaWQg PSBpb19wYXJhbXNbJ3NpZCddCisgICAgICAgIHNlbGYuc2NoZW1hID0gaW9fcGFyYW1zWydzY2hl bWEnXQorICAgICAgICBzZWxmLnRhYmxlID0gaW9fcGFyYW1zWyd0YWJsZSddCisgICAgICAgIHNl bGYuZGF0YWJhc2UgPSBpb19wYXJhbXNbJ2RhdGFiYXNlJ10KICAgICAgICAgc2VsZi5fY21kID0g JycKKyAgICAgICAgc2VsZi5pc19pbXBvcnQgPSBpb19wYXJhbXNbJ2lzX2ltcG9ydCddCisgICAg ICAgIHNlbGYuYmZpbGUgPSBpb19wYXJhbXNbJ2ZpbGVuYW1lJ10KIAotICAgICAgICBpZiBfc3Rv cmFnZToKLSAgICAgICAgICAgIF9zdG9yYWdlID0gX3N0b3JhZ2UucmVwbGFjZSgnXFwnLCAnLycp CisgICAgICAgIGlmIGlvX3BhcmFtc1snc3RvcmFnZSddOgorICAgICAgICAgICAgaW9fcGFyYW1z WydzdG9yYWdlJ10gPSBpb19wYXJhbXNbJ3N0b3JhZ2UnXS5yZXBsYWNlKCdcXCcsICcvJykKIAog ICAgICAgICBkZWYgY21kX2FyZyh4KToKICAgICAgICAgICAgIGlmIHg6CkBAIC05OSwxOSArMTAx LDI1IEBAIGNsYXNzIElFTWVzc2FnZShJUHJvY2Vzc0Rlc2MpOgogICAgICAgICAgICAgICAgIHNl bGYuX2NtZCArPSAnICcgKyBhcmcKICAgICAgICAgICAgIGVsaWYgcmVwbGFjZV9uZXh0OgogICAg ICAgICAgICAgICAgIGFyZyA9IGNtZF9hcmcoYXJnKQotICAgICAgICAgICAgICAgIGlmIF9zdG9y YWdlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICBhcmcgPSBhcmcucmVwbGFjZShf c3RvcmFnZSwgJzxTVE9SQUdFX0RJUj4nKQorICAgICAgICAgICAgICAgIGlmIGlvX3BhcmFtc1sn c3RvcmFnZSddIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBhcmcgPSBhcmcucmVw bGFjZShpb19wYXJhbXNbJ3N0b3JhZ2UnXSwgJzxTVE9SQUdFX0RJUj4nKQogICAgICAgICAgICAg ICAgIHNlbGYuX2NtZCArPSAnICInICsgYXJnICsgJyInCiAgICAgICAgICAgICBlbHNlOgogICAg ICAgICAgICAgICAgIHNlbGYuX2NtZCArPSBjbWRfYXJnKGFyZykKIAotICAgIEBwcm9wZXJ0eQot ICAgIGRlZiBtZXNzYWdlKHNlbGYpOgorICAgIGRlZiBnZXRfc2VydmVyX2RldGFpbHMoc2VsZik6 CiAgICAgICAgICMgRmV0Y2ggdGhlIHNlcnZlciBkZXRhaWxzIGxpa2UgaG9zdG5hbWUsIHBvcnQs IHJvbGVzIGV0YwogICAgICAgICBzID0gU2VydmVyLnF1ZXJ5LmZpbHRlcl9ieSgKICAgICAgICAg ICAgIGlkPXNlbGYuc2lkLCB1c2VyX2lkPWN1cnJlbnRfdXNlci5pZAogICAgICAgICApLmZpcnN0 KCkKIAorICAgICAgICByZXR1cm4gcy5uYW1lLCBzLmhvc3QsIHMucG9ydAorCisgICAgQHByb3Bl cnR5CisgICAgZGVmIG1lc3NhZ2Uoc2VsZik6CisgICAgICAgICMgRmV0Y2ggdGhlIHNlcnZlciBk ZXRhaWxzIGxpa2UgaG9zdG5hbWUsIHBvcnQsIHJvbGVzIGV0YworICAgICAgICBuYW1lLCBob3N0 LCBwb3J0ID0gc2VsZi5nZXRfc2VydmVyX2RldGFpbHMoKQorCiAgICAgICAgIHJldHVybiBfKAog ICAgICAgICAgICAgIkNvcHlpbmcgdGFibGUgZGF0YSAnezB9LnsxfScgb24gZGF0YWJhc2UgJ3sy fScgIgogICAgICAgICAgICAgImFuZCBzZXJ2ZXIgKHszfTp7NH0pIgpAQCAtMTE5LDE5ICsxMjcs MzkgQEAgY2xhc3MgSUVNZXNzYWdlKElQcm9jZXNzRGVzYyk6CiAgICAgICAgICAgICBodG1sLnNh ZmVfc3RyKHNlbGYuc2NoZW1hKSwKICAgICAgICAgICAgIGh0bWwuc2FmZV9zdHIoc2VsZi50YWJs ZSksCiAgICAgICAgICAgICBodG1sLnNhZmVfc3RyKHNlbGYuZGF0YWJhc2UpLAotICAgICAgICAg ICAgaHRtbC5zYWZlX3N0cihzLmhvc3QpLAotICAgICAgICAgICAgaHRtbC5zYWZlX3N0cihzLnBv cnQpCisgICAgICAgICAgICBodG1sLnNhZmVfc3RyKGhvc3QpLAorICAgICAgICAgICAgaHRtbC5z YWZlX3N0cihwb3J0KQogICAgICAgICApCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgdHlwZV9k ZXNjKHNlbGYpOgotICAgICAgICByZXR1cm4gXygiQ29weWluZyB0YWJsZSBkYXRhIikKKyAgICAg ICAgX3R5cGVfZGVzYyA9IF8oIkltcG9ydCAtICIpIGlmIHNlbGYuaXNfaW1wb3J0IGVsc2UgXygi RXhwb3J0IC0gIikKKyAgICAgICAgcmV0dXJuIF90eXBlX2Rlc2MgKyBfKCJDb3B5aW5nIHRhYmxl IGRhdGEiKQorCisgICAgIyBAcHJvcGVydHkKKyAgICAjIGRlZiBjdXJyZW50X3N0b3JhZ2VfZGly KHNlbGYpOgorICAgICMKKyAgICAjICAgICBpZiBjb25maWcuU0VSVkVSX01PREU6CisgICAgIyAg ICAgICAgIHBhdGggPSBvcy5wYXRoLnJlYWxwYXRoKHNlbGYuYmZpbGUpCisgICAgIyAgICAgICAg IGlmIGdldF9zdG9yYWdlX2RpcmVjdG9yeSgpIDwgcGF0aDoKKyAgICAjICAgICAgICAgICAgIHN0 b3JhZ2VfZGlyZWN0b3J5ID0gb3MucGF0aC5iYXNlbmFtZShnZXRfc3RvcmFnZV9kaXJlY3Rvcnko KSkKKyAgICAjICAgICAgICAgICAgIHN0YXJ0ID0gcGF0aC5pbmRleChzdG9yYWdlX2RpcmVjdG9y eSkKKyAgICAjICAgICAgICAgICAgIGVuZCA9IHN0YXJ0ICsgKGxlbihzdG9yYWdlX2RpcmVjdG9y eSkpCisgICAgIworICAgICMgICAgICAgICAgICAgbGFzdF9kaXIgPSBvcy5wYXRoLmRpcm5hbWUo cGF0aFtlbmQ6XSkKKyAgICAjICAgICAgICAgZWxzZToKKyAgICAjICAgICAgICAgICAgIGxhc3Rf ZGlyID0gJ1xcJworICAgICMKKyAgICAjICAgICBlbHNlOgorICAgICMgICAgICAgICBsYXN0X2Rp ciA9IG9zLnBhdGguZGlybmFtZShzZWxmLmJmaWxlKSBcCisgICAgIyAgICAgICAgICAgICBpZiBv cy5wYXRoLmlzZmlsZShzZWxmLmJmaWxlKSBcCisgICAgIyAgICAgICAgICAgICBlbHNlIHNlbGYu YmZpbGUKKyAgICAjCisgICAgIyAgICAgcmV0dXJuIE5vbmUgaWYgc2VsZi5pc19pbXBvcnQgZWxz ZSBsYXN0X2RpcgogCiAgICAgZGVmIGRldGFpbHMoc2VsZiwgY21kLCBhcmdzKToKICAgICAgICAg IyBGZXRjaCB0aGUgc2VydmVyIGRldGFpbHMgbGlrZSBob3N0bmFtZSwgcG9ydCwgcm9sZXMgZXRj Ci0gICAgICAgIHMgPSBTZXJ2ZXIucXVlcnkuZmlsdGVyX2J5KAotICAgICAgICAgICAgaWQ9c2Vs Zi5zaWQsIHVzZXJfaWQ9Y3VycmVudF91c2VyLmlkCi0gICAgICAgICkuZmlyc3QoKQorICAgICAg ICBuYW1lLCBob3N0LCBwb3J0ID0gc2VsZi5nZXRfc2VydmVyX2RldGFpbHMoKQogCiAgICAgICAg IHJlcyA9ICc8ZGl2PicKICAgICAgICAgcmVzICs9IF8oCkBAIC0xNDIsOSArMTcwLDkgQEAgY2xh c3MgSUVNZXNzYWdlKElQcm9jZXNzRGVzYyk6CiAgICAgICAgICAgICBodG1sLnNhZmVfc3RyKHNl bGYudGFibGUpLAogICAgICAgICAgICAgaHRtbC5zYWZlX3N0cihzZWxmLmRhdGFiYXNlKSwKICAg ICAgICAgICAgICJ7MH0gKHsxfTp7Mn0pIi5mb3JtYXQoCi0gICAgICAgICAgICAgICAgaHRtbC5z YWZlX3N0cihzLm5hbWUpLAotICAgICAgICAgICAgICAgIGh0bWwuc2FmZV9zdHIocy5ob3N0KSwK LSAgICAgICAgICAgICAgICBodG1sLnNhZmVfc3RyKHMucG9ydCkKKyAgICAgICAgICAgICAgICBo dG1sLnNhZmVfc3RyKG5hbWUpLAorICAgICAgICAgICAgICAgIGh0bWwuc2FmZV9zdHIoaG9zdCks CisgICAgICAgICAgICAgICAgaHRtbC5zYWZlX3N0cihwb3J0KQogICAgICAgICAgICAgKQogICAg ICAgICApCiAKQEAgLTMwNCw4ICszMzIsNyBAQCBkZWYgY3JlYXRlX2ltcG9ydF9leHBvcnRfam9i KHNpZCk6CiAKICAgICAgICAgaWYgbm90IF9maWxlOgogICAgICAgICAgICAgcmV0dXJuIGJhZF9y ZXF1ZXN0KGVycm9ybXNnPV8oJ1BsZWFzZSBzcGVjaWZ5IGEgdmFsaWQgZmlsZScpKQotCi0gICAg ICAgIGlmIElTX1dJTjoKKyAgICAgICAgZWxpZiBJU19XSU46CiAgICAgICAgICAgICBfZmlsZSA9 IF9maWxlLnJlcGxhY2UoJ1xcJywgJy8nKQogCiAgICAgICAgIGRhdGFbJ2ZpbGVuYW1lJ10gPSBf ZmlsZQpAQCAtMzI4LDE0ICszNTUsMjIgQEAgZGVmIGNyZWF0ZV9pbXBvcnRfZXhwb3J0X2pvYihz aWQpOgogICAgIGFyZ3MgPSBbJy0tY29tbWFuZCcsIHF1ZXJ5XQogCiAgICAgdHJ5OgorCisgICAg ICAgIGlvX3BhcmFtcyA9IHsKKyAgICAgICAgICAgICdzaWQnOiBzaWQsCisgICAgICAgICAgICAn c2NoZW1hJzogZGF0YVsnc2NoZW1hJ10sCisgICAgICAgICAgICAndGFibGUnOiBkYXRhWyd0YWJs ZSddLAorICAgICAgICAgICAgJ2RhdGFiYXNlJzogZGF0YVsnZGF0YWJhc2UnXSwKKyAgICAgICAg ICAgICdpc19pbXBvcnQnOiBkYXRhWydpc19pbXBvcnQnXSwKKyAgICAgICAgICAgICdmaWxlbmFt ZSc6IGRhdGFbJ2ZpbGVuYW1lJ10sCisgICAgICAgICAgICAnc3RvcmFnZSc6IHN0b3JhZ2VfZGly LAorICAgICAgICAgICAgJ3V0aWxpdHknOiB1dGlsaXR5CisgICAgICAgIH0KKwogICAgICAgICBw ID0gQmF0Y2hQcm9jZXNzKAogICAgICAgICAgICAgZGVzYz1JRU1lc3NhZ2UoCi0gICAgICAgICAg ICAgICAgc2lkLAotICAgICAgICAgICAgICAgIGRhdGFbJ3NjaGVtYSddLAotICAgICAgICAgICAg ICAgIGRhdGFbJ3RhYmxlJ10sCi0gICAgICAgICAgICAgICAgZGF0YVsnZGF0YWJhc2UnXSwKLSAg ICAgICAgICAgICAgICBzdG9yYWdlX2RpciwKLSAgICAgICAgICAgICAgICB1dGlsaXR5LCAqYXJn cworICAgICAgICAgICAgICAgICphcmdzLAorICAgICAgICAgICAgICAgICoqaW9fcGFyYW1zCiAg ICAgICAgICAgICApLAogICAgICAgICAgICAgY21kPXV0aWxpdHksIGFyZ3M9YXJncwogICAgICAg ICApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9pbXBvcnRfZXhwb3J0L3Rlc3RzL3Rl c3RfYmF0Y2hfcHJvY2Vzcy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL2ltcG9ydF9leHBvcnQvdGVz dHMvdGVzdF9iYXRjaF9wcm9jZXNzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMC4uMjQxYzNhMDZmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvaW1w b3J0X2V4cG9ydC90ZXN0cy90ZXN0X2JhdGNoX3Byb2Nlc3MucHkKQEAgLTAsMCArMSwyNDQgQEAK KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMK KyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVh bQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gcGdhZG1pbi5taXNjLmJncHJvY2Vzcy5w cm9jZXNzZXMgaW1wb3J0IEJhdGNoUHJvY2VzcywgSVByb2Nlc3NEZXNjLCBcCisgICAgY3VycmVu dF9hcHAKK2Zyb20gcGdhZG1pbi50b29scy5pbXBvcnRfZXhwb3J0IGltcG9ydCBJRU1lc3NhZ2UK K2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20g cGlja2xlIGltcG9ydCBkdW1wcywgbG9hZHMKK2Zyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0 Y2gsIE1hZ2ljTW9jaworCisKK2NsYXNzIEJhdGNoUHJvY2Vzc1Rlc3QoQmFzZVRlc3RHZW5lcmF0 b3IpOgorICAgICIiIlRlc3QgdGhlIEJhdGNoUHJvY2VzcyBjbGFzcyIiIgorICAgIHNjZW5hcmlv cyA9IFsKKyAgICAgICAgKCdXaGVuIGV4cG9ydCBmaWxlIHdpdGggZGVmYXVsdCBvcHRpb25zJywK KyAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgY2xhc3NfcGFyYW1zPWRpY3QoCisgICAgICAg ICAgICAgICAgIHNpZD0xLAorICAgICAgICAgICAgICAgICBuYW1lPSd0ZXN0X2V4cG9ydF9zZXJ2 ZXInLAorICAgICAgICAgICAgICAgICBwb3J0PTU0NDQsCisgICAgICAgICAgICAgICAgIGhvc3Q9 J2xvY2FsaG9zdCcsCisgICAgICAgICAgICAgICAgIGRhdGFiYXNlPSdwb3N0Z3JlcycsCisgICAg ICAgICAgICAgICAgIGJmaWxlPSd0ZXN0X2V4cG9ydCcsCisgICAgICAgICAgICAgICAgIHVzZXJu YW1lPSdwb3N0Z3JlcycsCisgICAgICAgICAgICAgICAgIGFyZ3M9WworICAgICAgICAgICAgICAg ICAgICAgJyAtLWNvbW1hbmQnLAorICAgICAgICAgICAgICAgICAgICAgJ1xcY29weSB7MH0uezF9 ICAoezJ9LHszfSkgIFRPIFwnezR9XCcgICBDU1YgICAnCisgICAgICAgICAgICAgICAgICAgICAn UVVPVEUgezV9IEVTQ0FQRSBcJ1wnXCdcJzsnCisgICAgICAgICAgICAgICAgIF0sCisgICAgICAg ICAgICAgICAgIGNtZD0naW1wb3J0X2V4cG9ydCcKKyAgICAgICAgICAgICApLAorICAgICAgICAg ICAgIHBhcmFtcz1kaWN0KAorICAgICAgICAgICAgICAgICBmaWxlbmFtZT0ndGVzdF9leHBvcnRf ZmlsZS5jc3YnLAorICAgICAgICAgICAgICAgICBmb3JtYXQ9J2NzdicsCisgICAgICAgICAgICAg ICAgIGlzX2ltcG9ydD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgZGVsaW1pdGVyPSIiLAorICAg ICAgICAgICAgICAgICBxdW90ZT0iXCIiLAorICAgICAgICAgICAgICAgICBlc2NhcGU9IiciLAor ICAgICAgICAgICAgICAgICBkYXRhYmFzZT0ncG9zdGdyZXMnLAorICAgICAgICAgICAgICAgICBj b2x1bW5zPVsndGVzdF9jb2xfMScsICd0ZXN0X2NvbF8yJ10sCisgICAgICAgICAgICAgICAgIGlj b2x1bW5zPVtdLAorICAgICAgICAgICAgICAgICBzY2hlbWE9ImV4cG9ydF90ZXN0X3NjaGVtYSIs CisgICAgICAgICAgICAgICAgIHRhYmxlPSJleHBvcnRfdGVzdF90YWJsZSIsCisgICAgICAgICAg ICAgICAgIHN0b3JhZ2U9Jy8nCisgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICB1cmw9Jy9p bXBvcnRfZXhwb3J0L2pvYi97MH0nLAorICAgICAgICAgICAgIGV4cGVjdGVkX2NtZF9vcHRzPVsn LS1jb21tYW5kJywgJ2NvcHknLCAnVE8nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnZXhwb3J0X3Rlc3Rfc2NoZW1hJywgJ2V4cG9ydF90ZXN0X3RhYmxlJ10sCisgICAgICAgICAg ICAgbm90X2V4cGVjdGVkX2NtZF9vcHRzPVtdLAorICAgICAgICAgICAgIGV4cGVjdGVkX2V4aXRf Y29kZT1bMCwgTm9uZV0KKyAgICAgICAgICkpLAorICAgICAgICAoJ1doZW4gaW1wb3J0IGZpbGUg d2l0aCBkZWZhdWx0IG9wdGlvbnMnLAorICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICBjbGFz c19wYXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAgICAgc2lkPTEsCisgICAgICAgICAgICAgICAg IG5hbWU9J3Rlc3RfaW1wb3J0X3NlcnZlcicsCisgICAgICAgICAgICAgICAgIHBvcnQ9NTQ0NCwK KyAgICAgICAgICAgICAgICAgaG9zdD0nbG9jYWxob3N0JywKKyAgICAgICAgICAgICAgICAgZGF0 YWJhc2U9J3Bvc3RncmVzJywKKyAgICAgICAgICAgICAgICAgYmZpbGU9J3Rlc3RfZXhwb3J0JywK KyAgICAgICAgICAgICAgICAgdXNlcm5hbWU9J3Bvc3RncmVzJywKKyAgICAgICAgICAgICAgICAg YXJncz1bCisgICAgICAgICAgICAgICAgICAgICAnIC0tY29tbWFuZCcsCisgICAgICAgICAgICAg ICAgICAgICAnXFxjb3B5IHswfS57MX0gICh7Mn0sezN9KSAgRlJPTSBcJ3s0fVwnICAgQ1NWICAg JworICAgICAgICAgICAgICAgICAgICAgJ1FVT1RFIHs1fSBFU0NBUEUgXCdcJ1wnXCc7JworICAg ICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICBjbWQ9J2ltcG9ydF9leHBvcnQnCisg ICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICBwYXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAg ICAgZmlsZW5hbWU9J3Rlc3RfaW1wb3J0X2ZpbGUuY3N2JywKKyAgICAgICAgICAgICAgICAgZm9y bWF0PSdjc3YnLAorICAgICAgICAgICAgICAgICBpc19pbXBvcnQ9VHJ1ZSwKKyAgICAgICAgICAg ICAgICAgZGVsaW1pdGVyPSIiLAorICAgICAgICAgICAgICAgICBxdW90ZT0iXCIiLAorICAgICAg ICAgICAgICAgICBlc2NhcGU9IiciLAorICAgICAgICAgICAgICAgICBkYXRhYmFzZT0ncG9zdGdy ZXMnLAorICAgICAgICAgICAgICAgICBjb2x1bW5zPVsndGVzdF9jb2xfMScsICd0ZXN0X2NvbF8y J10sCisgICAgICAgICAgICAgICAgIGljb2x1bW5zPVtdLAorICAgICAgICAgICAgICAgICBzY2hl bWE9ImltcG9ydF90ZXN0X3NjaGVtYSIsCisgICAgICAgICAgICAgICAgIHRhYmxlPSJpbXBvcnRf dGVzdF90YWJsZSIsCisgICAgICAgICAgICAgICAgIHN0b3JhZ2U9Jy8nCisgICAgICAgICAgICAg KSwKKyAgICAgICAgICAgICB1cmw9Jy9pbXBvcnRfZXhwb3J0L2pvYi97MH0nLAorICAgICAgICAg ICAgIGV4cGVjdGVkX2NtZF9vcHRzPVsnLS1jb21tYW5kJywgJ2NvcHknLCAnRlJPTScsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbXBvcnRfdGVzdF9zY2hlbWEnLCAnaW1wb3J0 X3Rlc3RfdGFibGUnXSwKKyAgICAgICAgICAgICBub3RfZXhwZWN0ZWRfY21kX29wdHM9W10sCisg ICAgICAgICAgICAgZXhwZWN0ZWRfZXhpdF9jb2RlPVswLCBOb25lXQorICAgICAgICAgKSkKKyAg ICBdCisKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuaW1wb3J0X2V4cG9ydC5JRU1lc3NhZ2Uu Z2V0X3NlcnZlcl9kZXRhaWxzJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4ubWlzYy5iZ3Byb2Nlc3Mu cHJvY2Vzc2VzLlBvcGVuJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4ubWlzYy5iZ3Byb2Nlc3MucHJv Y2Vzc2VzLmRiJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuaW1wb3J0X2V4cG9ydC5jdXJy ZW50X3VzZXInKQorICAgIEBwYXRjaCgncGdhZG1pbi5taXNjLmJncHJvY2Vzcy5wcm9jZXNzZXMu Y3VycmVudF91c2VyJykKKyAgICBkZWYgcnVuVGVzdChzZWxmLCBjdXJyZW50X3VzZXJfbW9jaywg Y3VycmVudF91c2VyLCBkYl9tb2NrLAorICAgICAgICAgICAgICAgIHBvcGVuX21vY2ssIGdldF9z ZXJ2ZXJfZGV0YWlsc19tb2NrKToKKyAgICAgICAgd2l0aCBzZWxmLmFwcC5hcHBfY29udGV4dCgp OgorICAgICAgICAgICAgY3VycmVudF91c2VyLmlkID0gMQorICAgICAgICAgICAgY3VycmVudF91 c2VyX21vY2suaWQgPSAxCisgICAgICAgICAgICBjdXJyZW50X2FwcC5QR0FETUlOX1JVTlRJTUUg PSBGYWxzZQorCisgICAgICAgICAgICBkZWYgZGJfc2Vzc2lvbl9hZGRfbW9jayhqKToKKyAgICAg ICAgICAgICAgICBjbWRfb2JqID0gbG9hZHMoai5kZXNjKQorICAgICAgICAgICAgICAgIHNlbGYu YXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGNtZF9vYmosIElQcm9jZXNzRGVzYykpCisKKyAgICAgICAg ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtZF9vYmouYmZpbGUsIHNlbGYucGFyYW1zWydmaWxl bmFtZSddKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY21kX29iai5kYXRhYmFz ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2xhc3NfcGFyYW1zWydk YXRhYmFzZSddKQorCisgICAgICAgICAgICAgICAgY29tbWFuZCA9ICcgIicgKyBzZWxmLmNsYXNz X3BhcmFtc1snYXJncyddWzBdICsgJyInICsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAn ICInICsgJ1xcJyArIHNlbGYuY2xhc3NfcGFyYW1zWydhcmdzJ11bMV0uZm9ybWF0KAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wYXJhbXNbJ3NjaGVtYSddLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5wYXJhbXNbJ3RhYmxlJ10sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnBhcmFtc1snY29sdW1ucyddWzBdLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5wYXJhbXNbJ2NvbHVtbnMnXVsxXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYucGFyYW1zWydmaWxlbmFtZSddLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ1xcJyArIHNlbGYucGFyYW1zWydxdW90ZSddCisgICAgICAgICAg ICAgICAgKSArICciJworICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY21kX29iai5f Y21kLCBjb21tYW5kKQorCisgICAgICAgICAgICBkYl9tb2NrLnNlc3Npb24uYWRkLnNpZGVfZWZm ZWN0ID0gZGJfc2Vzc2lvbl9hZGRfbW9jaworICAgICAgICAgICAgZGJfbW9jay5zZXNzaW9uLmNv bW1pdCA9IE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9VHJ1ZSkKKworICAgICAgICAgICAgZ2V0X3Nl cnZlcl9kZXRhaWxzX21vY2sucmV0dXJuX3ZhbHVlID0gXAorICAgICAgICAgICAgICAgIHNlbGYu Y2xhc3NfcGFyYW1zWyduYW1lJ10sIFwKKyAgICAgICAgICAgICAgICBzZWxmLmNsYXNzX3BhcmFt c1snaG9zdCddLCBcCisgICAgICAgICAgICAgICAgc2VsZi5jbGFzc19wYXJhbXNbJ3BvcnQnXQor CisgICAgICAgICAgICBhcmdzID0gc2VsZi5jbGFzc19wYXJhbXNbJ2FyZ3MnXVsxXS5mb3JtYXQo CisgICAgICAgICAgICAgICAgc2VsZi5wYXJhbXNbJ3NjaGVtYSddLAorICAgICAgICAgICAgICAg IHNlbGYucGFyYW1zWyd0YWJsZSddLAorICAgICAgICAgICAgICAgIHNlbGYucGFyYW1zWydjb2x1 bW5zJ11bMF0sCisgICAgICAgICAgICAgICAgc2VsZi5wYXJhbXNbJ2NvbHVtbnMnXVsxXSwKKyAg ICAgICAgICAgICAgICBzZWxmLnBhcmFtc1snZmlsZW5hbWUnXSwKKyAgICAgICAgICAgICAgICBz ZWxmLnBhcmFtc1sncXVvdGUnXQorICAgICAgICAgICAgKQorCisgICAgICAgICAgICBpbXBvcnRf ZXhwb3J0X29iaiA9IElFTWVzc2FnZSgKKyAgICAgICAgICAgICAgICAqW3NlbGYuY2xhc3NfcGFy YW1zWydhcmdzJ11bMF0sIGFyZ3NdLAorICAgICAgICAgICAgICAgICoqeworICAgICAgICAgICAg ICAgICAgICAnc2lkJzogc2VsZi5jbGFzc19wYXJhbXNbJ3NpZCddLAorICAgICAgICAgICAgICAg ICAgICAnc2NoZW1hJzogc2VsZi5wYXJhbXNbJ3NjaGVtYSddLAorICAgICAgICAgICAgICAgICAg ICAndGFibGUnOiBzZWxmLnBhcmFtc1sndGFibGUnXSwKKyAgICAgICAgICAgICAgICAgICAgJ2lz X2ltcG9ydCc6IHNlbGYucGFyYW1zWydpc19pbXBvcnQnXSwKKyAgICAgICAgICAgICAgICAgICAg J2RhdGFiYXNlJzogc2VsZi5wYXJhbXNbJ2RhdGFiYXNlJ10sCisgICAgICAgICAgICAgICAgICAg ICdmaWxlbmFtZSc6IHNlbGYucGFyYW1zWydmaWxlbmFtZSddLAorICAgICAgICAgICAgICAgICAg ICAnc3RvcmFnZSc6IHNlbGYucGFyYW1zWydzdG9yYWdlJ10sCisgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgKQorCisgICAgICAgICAgICBwID0gQmF0Y2hQcm9jZXNzKAorICAgICAgICAg ICAgICAgIGRlc2M9aW1wb3J0X2V4cG9ydF9vYmosCisgICAgICAgICAgICAgICAgY21kPXNlbGYu Y2xhc3NfcGFyYW1zWydjbWQnXSwKKyAgICAgICAgICAgICAgICBhcmdzPWFyZ3MKKyAgICAgICAg ICAgICkKKworICAgICAgICAgICAgIyBDaGVjayB0aGF0IF9jcmVhdGVfcHJvY2VzcyBoYXMgYmVl biBjYWxsZWQKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShkYl9tb2NrLnNlc3Npb24uYWRk LmNhbGxlZCkKKworICAgICAgICAgICAgIyBDaGVjayBzdGFydCBtZXRob2QKKyAgICAgICAgICAg IHNlbGYuX2NoZWNrX3N0YXJ0KHBvcGVuX21vY2ssIHAsIGltcG9ydF9leHBvcnRfb2JqKQorCisg ICAgICAgICAgICAjIENoZWNrIGxpc3QgbWV0aG9kCisgICAgICAgICAgICBzZWxmLl9jaGVja19s aXN0KHAsIGltcG9ydF9leHBvcnRfb2JqKQorCisgICAgQHBhdGNoKCdwZ2FkbWluLm1pc2MuYmdw cm9jZXNzLnByb2Nlc3Nlcy5Qcm9jZXNzJykKKyAgICBkZWYgX2NoZWNrX3N0YXJ0KHNlbGYsIHBv cGVuX21vY2ssIHAsIGltcG9ydF9leHBvcnRfb2JqLCBwcm9jZXNzX21vY2spOgorICAgICAgICBj bGFzcyBUZXN0TW9ja1Byb2Nlc3MoKToKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBk ZXNjLCBhcmdzLCBjbWQpOgorICAgICAgICAgICAgICAgIHNlbGYucGlkID0gMQorICAgICAgICAg ICAgICAgIHNlbGYuZXhpdF9jb2RlID0gMQorICAgICAgICAgICAgICAgIHNlbGYuc3RhcnRfdGlt ZSA9ICcyMDE4LTA0LTE3IDA2OjE4OjU2LjMxNTQ0NSArMDAwMCcKKyAgICAgICAgICAgICAgICBz ZWxmLmVuZF90aW1lID0gTm9uZQorICAgICAgICAgICAgICAgIHNlbGYuZGVzYyA9IGR1bXBzKGRl c2MpCisgICAgICAgICAgICAgICAgc2VsZi5hcmd1bWVudHMgPSAiICIuam9pbihhcmdzKQorICAg ICAgICAgICAgICAgIHNlbGYuY29tbWFuZCA9IGNtZAorICAgICAgICAgICAgICAgIHNlbGYuYWNr bm93bGVkZ2UgPSBOb25lCisgICAgICAgICAgICAgICAgc2VsZi5wcm9jZXNzX3N0YXRlID0gMAor CisgICAgICAgIG1vY2tfcmVzdWx0ID0gcHJvY2Vzc19tb2NrLnF1ZXJ5LmZpbHRlcl9ieS5yZXR1 cm5fdmFsdWUKKyAgICAgICAgbW9ja19yZXN1bHQuZmlyc3QucmV0dXJuX3ZhbHVlID0gVGVzdE1v Y2tQcm9jZXNzKAorICAgICAgICAgICAgaW1wb3J0X2V4cG9ydF9vYmosIHNlbGYuY2xhc3NfcGFy YW1zWydhcmdzJ10sCisgICAgICAgICAgICBzZWxmLmNsYXNzX3BhcmFtc1snY21kJ10pCisKKyAg ICAgICAgY21kX3Rlc3QgPSBzZWxmLmNsYXNzX3BhcmFtc1snY21kJ10KKyAgICAgICAgYXNzZXJ0 X3RydWUgPSBzZWxmLmFzc2VydFRydWUKKworICAgICAgICBjbGFzcyBQb3Blbk1vY2tTaWRlRWZm ZWN0KCk6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgY21kLCAqKmt3YXJncyk6Cisg ICAgICAgICAgICAgICAgYXNzZXJ0X3RydWUoY21kX3Rlc3QgaW4gY21kKQorICAgICAgICAgICAg ICAgIGFzc2VydF90cnVlKCdlbnYnIGluIGt3YXJncykKKworICAgICAgICAgICAgIyBOZWVkIG5v dCB0byBjYWxsIHRoZSBhY3R1YWwgcG9sbCwgc28gcGFzc2luZy4KKyAgICAgICAgICAgIGRlZiBw b2xsKHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICBwb3Blbl9tb2NrLnNp ZGVfZWZmZWN0ID0gUG9wZW5Nb2NrU2lkZUVmZmVjdAorICAgICAgICBwLnN0YXJ0KCkKKworICAg ICAgICBzZWxmLmFzc2VydFRydWUocG9wZW5fbW9jay5jYWxsZWQpCisKKyAgICBAcGF0Y2goJ29z LnBhdGgucmVhbHBhdGgnKQorICAgIEBwYXRjaCgncGdhZG1pbi5taXNjLmJncHJvY2Vzcy5wcm9j ZXNzZXMuZ2V0X3N0b3JhZ2VfZGlyZWN0b3J5JykKKyAgICBAcGF0Y2goJ3BnYWRtaW4ubWlzYy5i Z3Byb2Nlc3MucHJvY2Vzc2VzLmdldF9jb21wbGV0ZV9maWxlX3BhdGgnKQorICAgIEBwYXRjaCgn cGdhZG1pbi5taXNjLmJncHJvY2Vzcy5wcm9jZXNzZXMuUHJvY2VzcycpCisgICAgQHBhdGNoKCdw Z2FkbWluLm1pc2MuYmdwcm9jZXNzLnByb2Nlc3Nlcy5CYXRjaFByb2Nlc3MuJworICAgICAgICAg ICAndXBkYXRlX3Byb2Nlc3NfaW5mbycpCisgICAgZGVmIF9jaGVja19saXN0KHNlbGYsIHAsIGlt cG9ydF9leHBvcnRfb2JqLCB1cGRhdGVfcHJvY2Vzc19pbmZvX21vY2ssCisgICAgICAgICAgICAg ICAgICAgIHByb2Nlc3NfbW9jaywKKyAgICAgICAgICAgICAgICAgICAgZ2V0X3N0b3JhZ2VfZGly ZWN0b3J5X21vY2ssIGdldF9jb21wbGV0ZV9maWxlX3BhdGhfbW9jaywKKyAgICAgICAgICAgICAg ICAgICAgcmVhbHBhdGhfbW9jayk6CisgICAgICAgIGNsYXNzIFRlc3RNb2NrUHJvY2VzcygpOgor ICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRlc2MsIGFyZ3MsIGNtZCk6CisgICAgICAg ICAgICAgICAgc2VsZi5waWQgPSAxCisgICAgICAgICAgICAgICAgc2VsZi5leGl0X2NvZGUgPSAx CisgICAgICAgICAgICAgICAgc2VsZi5zdGFydF90aW1lID0gJzIwMTgtMDQtMTcgMDY6MTg6NTYu MzE1NDQ1ICswMDAwJworICAgICAgICAgICAgICAgIHNlbGYuZW5kX3RpbWUgPSBOb25lCisgICAg ICAgICAgICAgICAgc2VsZi5kZXNjID0gZHVtcHMoZGVzYykKKyAgICAgICAgICAgICAgICBzZWxm LmFyZ3VtZW50cyA9ICIgIi5qb2luKGFyZ3MpCisgICAgICAgICAgICAgICAgc2VsZi5jb21tYW5k ID0gY21kCisgICAgICAgICAgICAgICAgc2VsZi5hY2tub3dsZWRnZSA9IE5vbmUKKyAgICAgICAg ICAgICAgICBzZWxmLnByb2Nlc3Nfc3RhdGUgPSAwCisKKyAgICAgICAgcHJvY2Vzc19tb2NrLnF1 ZXJ5LmZpbHRlcl9ieS5yZXR1cm5fdmFsdWUgPSBbCisgICAgICAgICAgICBUZXN0TW9ja1Byb2Nl c3MoaW1wb3J0X2V4cG9ydF9vYmosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5j bGFzc19wYXJhbXNbJ2FyZ3MnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNs YXNzX3BhcmFtc1snY21kJ10pXQorCisgICAgICAgIHVwZGF0ZV9wcm9jZXNzX2luZm9fbW9jay5y ZXR1cm5fdmFsdWUgPSBbVHJ1ZSwgVHJ1ZV0KKyAgICAgICAgZ2V0X2NvbXBsZXRlX2ZpbGVfcGF0 aF9tb2NrLnJldHVybl92YWx1ZSA9IHNlbGYucGFyYW1zWydmaWxlbmFtZSddCisgICAgICAgIHJl YWxwYXRoX21vY2sucmV0dXJuX3ZhbHVlID0gc2VsZi5wYXJhbXNbJ2ZpbGVuYW1lJ10KKyAgICAg ICAgZ2V0X3N0b3JhZ2VfZGlyZWN0b3J5X21vY2sucmV0dXJuX3ZhbHVlID0gJy8vJworCisgICAg ICAgIHJldF92YWx1ZSA9IHAubGlzdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVu KHJldF92YWx1ZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnZGV0YWlscycgaW4gcmV0X3Zh bHVlWzBdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2Rlc2MnIGluIHJldF92YWx1ZVswXSkK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2ltcG9ydF9leHBvcnQvdGVzdHMvdGVzdF9j cmVhdGVfZXhwb3J0X2pvYi5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL2ltcG9ydF9leHBvcnQvdGVz dHMvdGVzdF9jcmVhdGVfZXhwb3J0X2pvYi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAuLmI3ODQ5Y2UxNgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xz L2ltcG9ydF9leHBvcnQvdGVzdHMvdGVzdF9jcmVhdGVfZXhwb3J0X2pvYi5weQpAQCAtMCwwICsx LDE0OSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBU b29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9w bWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVT UUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IG9zCisKK2Zyb20gcGdh ZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lv biBpbXBvcnQgcGFyZW50X25vZGVfZGljdAoraW1wb3J0IHBnYWRtaW4udG9vbHMuaW1wb3J0X2V4 cG9ydC50ZXN0cy50ZXN0X2ltcG9ydF9leHBvcnRfdXRpbHMgXAorICAgIGFzIGltcG9ydF9leHBv cnRfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgZG9lc191dGlsaXR5X2V4aXN0CisK K2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVz dHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworCisKK2NsYXNzIEV4cG9y dEpvYlRlc3QoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIkV4cG9ydCBhcGkgdGVzdCBjYXNl cyIiIgorCisgICAgaW1wb3J0X2V4cG9ydF91cmwgPSAnL2ltcG9ydF9leHBvcnQvam9iL3swfScK KworICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgKCdXaGVuIGV4cG9ydGluZyBhIHRhYmxlIHdp dGggdGhlIGRlZmF1bHQgb3B0aW9ucycsCisgICAgICAgICBkaWN0KAorICAgICAgICAgICAgIHBh cmFtcz1kaWN0KAorICAgICAgICAgICAgICAgICBmaWxlbmFtZT0ndGVzdF9pbXBvcnRfZXhwb3J0 JywKKyAgICAgICAgICAgICAgICAgZm9ybWF0PSdjc3YnLAorICAgICAgICAgICAgICAgICBpc19p bXBvcnQ9RmFsc2UsCisgICAgICAgICAgICAgICAgIGRlbGltaXRlcj0iIiwKKyAgICAgICAgICAg ICAgICAgcXVvdGU9IlwiIiwKKyAgICAgICAgICAgICAgICAgZXNjYXBlPSInIiwKKyAgICAgICAg ICAgICAgICAgZGF0YWJhc2U9JycsCisgICAgICAgICAgICAgICAgIGNvbHVtbnM9W10sCisgICAg ICAgICAgICAgICAgIGljb2x1bW5zPVtdLAorICAgICAgICAgICAgICAgICBzY2hlbWE9IiIsCisg ICAgICAgICAgICAgICAgIHRhYmxlPSIiCisgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICB1 cmw9aW1wb3J0X2V4cG9ydF91cmwsCisgICAgICAgICAgICAgZXhwZWN0ZWRfcGFyYW1zPWRpY3Qo CisgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2NtZF9vcHRzPVsnLS1jb21tYW5kJywgJ2NvcHkn LCAnVE8nXSwKKyAgICAgICAgICAgICAgICAgbm90X2V4cGVjdGVkX2NtZF9vcHRzPVtdLAorICAg ICAgICAgICAgICAgICBleHBlY3RlZF9leGl0X2NvZGU9WzAsIE5vbmVdCisgICAgICAgICAgICAg KQorICAgICAgICAgKSksCisgICAgICAgICgnV2hlbiBleHBvcnRpbmcgYSB0YWJsZSB3aXRoIGJp bmFyeSwgZW5jb2RpbmcsIGRlbGltaXRlciwgcXVvdGUnLAorICAgICAgICAgZGljdCgKKyAgICAg ICAgICAgICBwYXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAgICAgZmlsZW5hbWU9J3Rlc3RfaW1w b3J0X2V4cG9ydF9iaW4nLAorICAgICAgICAgICAgICAgICBmb3JtYXQ9J2JpbmFyeScsCisgICAg ICAgICAgICAgICAgIGlzX2ltcG9ydD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9 IkxBVElOMSIsCisgICAgICAgICAgICAgICAgIGRlbGltaXRlcj0ifCIsCisgICAgICAgICAgICAg ICAgIHF1b3RlPSInIiwKKyAgICAgICAgICAgICAgICAgZXNjYXBlPSInIiwKKyAgICAgICAgICAg ICAgICAgZGF0YWJhc2U9JycsCisgICAgICAgICAgICAgICAgIGNvbHVtbnM9W10sCisgICAgICAg ICAgICAgICAgIGljb2x1bW5zPVtdLAorICAgICAgICAgICAgICAgICBzY2hlbWE9IiIsCisgICAg ICAgICAgICAgICAgIHRhYmxlPSIiCisgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICB1cmw9 aW1wb3J0X2V4cG9ydF91cmwsCisgICAgICAgICAgICAgZXhwZWN0ZWRfcGFyYW1zPWRpY3QoCisg ICAgICAgICAgICAgICAgIGV4cGVjdGVkX2NtZF9vcHRzPVsnLS1jb21tYW5kJywgJ2NvcHknLCAn VE8nXSwKKyAgICAgICAgICAgICAgICAgbm90X2V4cGVjdGVkX2NtZF9vcHRzPVtdLAorICAgICAg ICAgICAgICAgICBleHBlY3RlZF9leGl0X2NvZGU9WzAsIE5vbmVdCisgICAgICAgICAgICAgKQor ICAgICAgICAgKSksCisgICAgICAgICgnV2hlbiBleHBvcnRpbmcgYSB0YWJsZSB3aXRoIHRleHQs IGVuY29kaW5nLCBkZWxpbWl0ZXIsIHF1b3RlJywKKyAgICAgICAgIGRpY3QoCisgICAgICAgICAg ICAgcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAgIGZpbGVuYW1lPSd0ZXN0X2ltcG9ydF9l eHBvcnRfdGV4dCcsCisgICAgICAgICAgICAgICAgIGZvcm1hdD0ndGV4dCcsCisgICAgICAgICAg ICAgICAgIGlzX2ltcG9ydD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9IklTT184 ODU5XzUiLAorICAgICAgICAgICAgICAgICBkZWxpbWl0ZXI9Ilt0YWJdIiwKKyAgICAgICAgICAg ICAgICAgcXVvdGU9IlwiIiwKKyAgICAgICAgICAgICAgICAgZXNjYXBlPSInIiwKKyAgICAgICAg ICAgICAgICAgZGF0YWJhc2U9JycsCisgICAgICAgICAgICAgICAgIGNvbHVtbnM9W10sCisgICAg ICAgICAgICAgICAgIGljb2x1bW5zPVtdLAorICAgICAgICAgICAgICAgICBzY2hlbWE9IiIsCisg ICAgICAgICAgICAgICAgIHRhYmxlPSIiCisgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICB1 cmw9aW1wb3J0X2V4cG9ydF91cmwsCisgICAgICAgICAgICAgZXhwZWN0ZWRfcGFyYW1zPWRpY3Qo CisgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2NtZF9vcHRzPVsnLS1jb21tYW5kJywgJ2NvcHkn LCAnVE8nXSwKKyAgICAgICAgICAgICAgICAgbm90X2V4cGVjdGVkX2NtZF9vcHRzPVtdLAorICAg ICAgICAgICAgICAgICBleHBlY3RlZF9leGl0X2NvZGU9WzAsIE5vbmVdCisgICAgICAgICAgICAg KQorICAgICAgICAgKSkKKyAgICBdCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisKKyAgICAgICAg aW1wb3J0X2V4cG9ydF91dGlscy5zZXR1cF9leHBvcnRfZGF0YShzZWxmKQorCisgICAgICAgIHNl bGYucGFyYW1zWydkYXRhYmFzZSddID0gc2VsZi5kYl9uYW1lCisgICAgICAgIHNlbGYucGFyYW1z WydzY2hlbWEnXSA9IHNlbGYuc2NoZW1hX25hbWUKKyAgICAgICAgc2VsZi5wYXJhbXNbJ3RhYmxl J10gPSBzZWxmLnRhYmxlX25hbWUKKyAgICAgICAgc2VsZi5wYXJhbXNbJ2NvbHVtbnMnXSA9IFtz ZWxmLmNvbHVtbl9uYW1lLCBzZWxmLmNvbHVtbl9uYW1lXzFdCisKKyAgICAgICAgaWYgJ2RlZmF1 bHRfYmluYXJ5X3BhdGhzJyBub3QgaW4gc2VsZi5zZXJ2ZXIgb3IgXAorICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJbJ2RlZmF1bHRfYmluYXJ5X3BhdGhzJ10gaXMgTm9uZSBvciBcCisgICAgICAgICAg ICBzZWxmLnNlcnZlclsndHlwZSddIG5vdCBpbiBzZWxmLnNlcnZlclsnZGVmYXVsdF9iaW5hcnlf cGF0aHMnXSBvclwKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGVmYXVsdF9iaW5hcnlf cGF0aHMnXVtzZWxmLnNlcnZlclsndHlwZSddXSA9PSAnJzoKKyAgICAgICAgICAgIHNlbGYuc2tp cFRlc3QoCisgICAgICAgICAgICAgICAgImRlZmF1bHRfYmluYXJ5X3BhdGhzIGlzIG5vdCBzZXQg Zm9yIHRoZSBzZXJ2ZXIgezB9Ii5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgIHNlbGYuc2Vy dmVyWyduYW1lJ10KKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisKKyAgICAgICAg YmluX3AgPSBzZWxmLnNlcnZlclsnZGVmYXVsdF9iaW5hcnlfcGF0aHMnXVtzZWxmLnNlcnZlclsn dHlwZSddXQorCisgICAgICAgIGJpbmFyeV9wYXRoID0gb3MucGF0aC5qb2luKGJpbl9wLCAncHNx bCcpCisKKyAgICAgICAgaWYgb3MubmFtZSA9PSAnbnQnOgorICAgICAgICAgICAgYmluYXJ5X3Bh dGggPSBiaW5hcnlfcGF0aCArICcuZXhlJworCisgICAgICAgIHJldF92YWwgPSBkb2VzX3V0aWxp dHlfZXhpc3QoYmluYXJ5X3BhdGgpCisgICAgICAgIGlmIHJldF92YWwgaXMgbm90IE5vbmU6Cisg ICAgICAgICAgICBzZWxmLnNraXBUZXN0KHJldF92YWwpCisKKyAgICBkZWYgcnVuVGVzdChzZWxm KToKKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVst MV1bInNlcnZlcl9pZCJdCisgICAgICAgIHVybCA9IHNlbGYudXJsLmZvcm1hdChzZWxmLnNlcnZl cl9pZCkKKworICAgICAgICAjIENyZWF0ZSB0aGUgaW1wb3J0L2V4cG9ydCBqb2IKKyAgICAgICAg am9iX2lkID0gaW1wb3J0X2V4cG9ydF91dGlscy5jcmVhdGVfaW1wb3J0X2V4cG9ydF9qb2Ioc2Vs Zi50ZXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wYXJhbXMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWwpCisgICAgICAgIGV4cG9ydF9maWxlID0gaW1wb3J0X2V4cG9ydF91dGlsc1wKKyAgICAg ICAgICAgIC5ydW5faW1wb3J0X2V4cG9ydF9qb2Ioc2VsZi50ZXN0ZXIsIGpvYl9pZCwgc2VsZi5l eHBlY3RlZF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu YXNzZXJ0SW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0 Tm90SW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgIGlmIGV4 cG9ydF9maWxlIGlzIG5vdCBOb25lIGFuZCBvcy5wYXRoLmlzZmlsZShleHBvcnRfZmlsZSk6Cisg ICAgICAgICAgICBvcy5yZW1vdmUoZXhwb3J0X2ZpbGUpCisKKyAgICBkZWYgdGVhckRvd24oc2Vs Zik6CisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2Vf dXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9p ZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2ltcG9ydF9leHBvcnQvdGVzdHMvdGVz dF9jcmVhdGVfaW1wb3J0X2pvYi5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL2ltcG9ydF9leHBvcnQv dGVzdHMvdGVzdF9jcmVhdGVfaW1wb3J0X2pvYi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAuLmZlMmU5M2QzZAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3Rv b2xzL2ltcG9ydF9leHBvcnQvdGVzdHMvdGVzdF9jcmVhdGVfaW1wb3J0X2pvYi5weQpAQCAtMCww ICsxLDI0MSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNR TCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZl bG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3Rn cmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IG9zCisKK2Zyb20g cGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVz c2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAoraW1wb3J0IHBnYWRtaW4udG9vbHMuaW1wb3J0 X2V4cG9ydC50ZXN0cy50ZXN0X2ltcG9ydF9leHBvcnRfdXRpbHMgXAorICAgIGFzIGltcG9ydF9l eHBvcnRfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgZG9lc191dGlsaXR5X2V4aXN0 CisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu dGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWlu LnRvb2xzLmltcG9ydF9leHBvcnQudGVzdHMgaW1wb3J0IFwKKyAgICB0ZXN0X2ltcG9ydF9leHBv cnRfdXRpbHMgYXMgaW9fdXRpbHMKKworCitjbGFzcyBJbXBvcnRKb2JUZXN0KEJhc2VUZXN0R2Vu ZXJhdG9yKToKKyAgICAiIiJJbXBvcnQgYXBpIHRlc3QgY2FzZXMiIiIKKworICAgIGltcG9ydF9l eHBvcnRfdXJsID0gJy9pbXBvcnRfZXhwb3J0L2pvYi97MH0nCisKKyAgICBzY2VuYXJpb3MgPSBb CisgICAgICAgICgnV2hlbiBpbXBvcnRpbmcgYSB0YWJsZSB3aXRoIHRoZSBkZWZhdWx0IG9wdGlv bnMnLAorICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICBwYXJhbXM9ZGljdCgKKyAgICAgICAg ICAgICAgICAgZmlsZW5hbWU9J3Rlc3RfaW1wb3J0X2V4cG9ydCcsCisgICAgICAgICAgICAgICAg IGZvcm1hdD0nY3N2JywKKyAgICAgICAgICAgICAgICAgaXNfaW1wb3J0PVRydWUsCisgICAgICAg ICAgICAgICAgIGRlbGltaXRlcj0iIiwKKyAgICAgICAgICAgICAgICAgcXVvdGU9IlwiIiwKKyAg ICAgICAgICAgICAgICAgZXNjYXBlPSInIiwKKyAgICAgICAgICAgICAgICAgZGF0YWJhc2U9Jycs CisgICAgICAgICAgICAgICAgIGNvbHVtbnM9W10sCisgICAgICAgICAgICAgICAgIGljb2x1bW5z PVtdLAorICAgICAgICAgICAgICAgICBzY2hlbWE9IiIsCisgICAgICAgICAgICAgICAgIHRhYmxl PSIiCisgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICB1cmw9aW1wb3J0X2V4cG9ydF91cmws CisgICAgICAgICAgICAgZXhwZWN0ZWRfcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAgIGV4 cGVjdGVkX2NtZF9vcHRzPVsnLS1jb21tYW5kJywgJ2NvcHknLCAnRlJPTSddLAorICAgICAgICAg ICAgICAgICBub3RfZXhwZWN0ZWRfY21kX29wdHM9W10sCisgICAgICAgICAgICAgICAgIGV4cGVj dGVkX2V4aXRfY29kZT1bMCwgTm9uZV0KKyAgICAgICAgICAgICApLAorICAgICAgICAgICAgIGV4 cG9ydF9vcHRpb25zPWRpY3QoCisgICAgICAgICAgICAgICAgIHBhcmFtcz1kaWN0KAorICAgICAg ICAgICAgICAgICAgICAgZmlsZW5hbWU9J3Rlc3RfaW1wb3J0X2V4cG9ydCcsCisgICAgICAgICAg ICAgICAgICAgICBmb3JtYXQ9J2NzdicsCisgICAgICAgICAgICAgICAgICAgICBpc19pbXBvcnQ9 RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICBkZWxpbWl0ZXI9IiIsCisgICAgICAgICAgICAg ICAgICAgICBxdW90ZT0iXCIiLAorICAgICAgICAgICAgICAgICAgICAgZXNjYXBlPSInIiwKKyAg ICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlPScnLAorICAgICAgICAgICAgICAgICAgICAgY29s dW1ucz1bXSwKKyAgICAgICAgICAgICAgICAgICAgIGljb2x1bW5zPVtdLAorICAgICAgICAgICAg ICAgICAgICAgc2NoZW1hPSIiLAorICAgICAgICAgICAgICAgICAgICAgdGFibGU9IiIKKyAgICAg ICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgdXJsPWltcG9ydF9leHBvcnRfdXJsLAor ICAgICAgICAgICAgICAgICBleHBlY3RlZF9wYXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAgICAg ICAgIGV4cGVjdGVkX2NtZF9vcHRzPVsnLS1jb21tYW5kJywgJ2NvcHknLCAnVE8nXSwKKyAgICAg ICAgICAgICAgICAgICAgIG5vdF9leHBlY3RlZF9jbWRfb3B0cz1bXSwKKyAgICAgICAgICAgICAg ICAgICAgIGV4cGVjdGVkX2V4aXRfY29kZT1bMCwgTm9uZV0KKyAgICAgICAgICAgICAgICAgKQor ICAgICAgICAgICAgICkKKyAgICAgICAgICkpLAorICAgICAgICAoJ1doZW4gaW1wb3J0aW5nIGEg dGFibGUgd2l0aCBiaW5hcnksIGVuY29kaW5nLCBkZWxpbWl0ZXIsIHF1b3RlJywKKyAgICAgICAg IGRpY3QoCisgICAgICAgICAgICAgcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAgIGZpbGVu YW1lPSd0ZXN0X2ltcG9ydF9leHBvcnRfYmluJywKKyAgICAgICAgICAgICAgICAgZm9ybWF0PSdi aW5hcnknLAorICAgICAgICAgICAgICAgICBpc19pbXBvcnQ9VHJ1ZSwKKyAgICAgICAgICAgICAg ICAgZGVsaW1pdGVyPSIiLAorICAgICAgICAgICAgICAgICBxdW90ZT0iXCIiLAorICAgICAgICAg ICAgICAgICBlc2NhcGU9IiciLAorICAgICAgICAgICAgICAgICBkYXRhYmFzZT0nJywKKyAgICAg ICAgICAgICAgICAgY29sdW1ucz1bXSwKKyAgICAgICAgICAgICAgICAgaWNvbHVtbnM9W10sCisg ICAgICAgICAgICAgICAgIHNjaGVtYT0iIiwKKyAgICAgICAgICAgICAgICAgdGFibGU9IiIKKyAg ICAgICAgICAgICApLAorICAgICAgICAgICAgIHVybD1pbXBvcnRfZXhwb3J0X3VybCwKKyAgICAg ICAgICAgICBleHBlY3RlZF9wYXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAgICAgZXhwZWN0ZWRf Y21kX29wdHM9WyctLWNvbW1hbmQnLCAnY29weScsICdGUk9NJ10sCisgICAgICAgICAgICAgICAg IG5vdF9leHBlY3RlZF9jbWRfb3B0cz1bXSwKKyAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZXhp dF9jb2RlPVswLCBOb25lXQorICAgICAgICAgICAgICksCisgICAgICAgICAgICAgZXhwb3J0X29w dGlvbnM9ZGljdCgKKyAgICAgICAgICAgICAgICAgcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAg ICAgICAgICBmaWxlbmFtZT0ndGVzdF9pbXBvcnRfZXhwb3J0X2JpbicsCisgICAgICAgICAgICAg ICAgICAgICBmb3JtYXQ9J2JpbmFyeScsCisgICAgICAgICAgICAgICAgICAgICBpc19pbXBvcnQ9 RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICBlbmNvZGluZz0iTEFUSU4xIiwKKyAgICAgICAg ICAgICAgICAgICAgIGRlbGltaXRlcj0ifCIsCisgICAgICAgICAgICAgICAgICAgICBxdW90ZT0i JyIsCisgICAgICAgICAgICAgICAgICAgICBlc2NhcGU9IiciLAorICAgICAgICAgICAgICAgICAg ICAgZGF0YWJhc2U9JycsCisgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zPVtdLAorICAgICAg ICAgICAgICAgICAgICAgaWNvbHVtbnM9W10sCisgICAgICAgICAgICAgICAgICAgICBzY2hlbWE9 IiIsCisgICAgICAgICAgICAgICAgICAgICB0YWJsZT0iIgorICAgICAgICAgICAgICAgICApLAor ICAgICAgICAgICAgICAgICB1cmw9aW1wb3J0X2V4cG9ydF91cmwsCisgICAgICAgICAgICAgICAg IGV4cGVjdGVkX3BhcmFtcz1kaWN0KAorICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfY21k X29wdHM9WyctLWNvbW1hbmQnLCAnY29weScsICdUTyddLAorICAgICAgICAgICAgICAgICAgICAg bm90X2V4cGVjdGVkX2NtZF9vcHRzPVtdLAorICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRf ZXhpdF9jb2RlPVswLCBOb25lXQorICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgKQor ICAgICAgICAgKSksCisgICAgICAgICgnV2hlbiBpbXBvcnRpbmcgYSB0YWJsZSB3aXRoIHRleHQs IGVuY29kaW5nLCBkZWxpbWl0ZXIsIHF1b3RlJywKKyAgICAgICAgIGRpY3QoCisgICAgICAgICAg ICAgcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAgIGZpbGVuYW1lPSd0ZXN0X2ltcG9ydF9l eHBvcnRfdGV4dCcsCisgICAgICAgICAgICAgICAgIGZvcm1hdD0ndGV4dCcsCisgICAgICAgICAg ICAgICAgIGlzX2ltcG9ydD1UcnVlLAorICAgICAgICAgICAgICAgICBlbmNvZGluZz0iSVNPXzg4 NTlfNSIsCisgICAgICAgICAgICAgICAgIGRlbGltaXRlcj0iW3RhYl0iLAorICAgICAgICAgICAg ICAgICBxdW90ZT0iXCIiLAorICAgICAgICAgICAgICAgICBlc2NhcGU9IiciLAorICAgICAgICAg ICAgICAgICBkYXRhYmFzZT0nJywKKyAgICAgICAgICAgICAgICAgY29sdW1ucz1bXSwKKyAgICAg ICAgICAgICAgICAgaWNvbHVtbnM9W10sCisgICAgICAgICAgICAgICAgIHNjaGVtYT0iIiwKKyAg ICAgICAgICAgICAgICAgdGFibGU9IiIKKyAgICAgICAgICAgICApLAorICAgICAgICAgICAgIHVy bD1pbXBvcnRfZXhwb3J0X3VybCwKKyAgICAgICAgICAgICBleHBlY3RlZF9wYXJhbXM9ZGljdCgK KyAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfY21kX29wdHM9WyctLWNvbW1hbmQnLCAnY29weScs ICdGUk9NJ10sCisgICAgICAgICAgICAgICAgIG5vdF9leHBlY3RlZF9jbWRfb3B0cz1bXSwKKyAg ICAgICAgICAgICAgICAgZXhwZWN0ZWRfZXhpdF9jb2RlPVswLCBOb25lXQorICAgICAgICAgICAg ICksCisgICAgICAgICAgICAgZXhwb3J0X29wdGlvbnM9ZGljdCgKKyAgICAgICAgICAgICAgICAg cGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZT0ndGVzdF9pbXBvcnRf ZXhwb3J0X3RleHQnLAorICAgICAgICAgICAgICAgICAgICAgZm9ybWF0PSd0ZXh0JywKKyAgICAg ICAgICAgICAgICAgICAgIGlzX2ltcG9ydD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgIGVu Y29kaW5nPSJJU09fODg1OV81IiwKKyAgICAgICAgICAgICAgICAgICAgIGRlbGltaXRlcj0iW3Rh Yl0iLAorICAgICAgICAgICAgICAgICAgICAgcXVvdGU9IiciLAorICAgICAgICAgICAgICAgICAg ICAgZXNjYXBlPSInIiwKKyAgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlPScnLAorICAgICAg ICAgICAgICAgICAgICAgY29sdW1ucz1bXSwKKyAgICAgICAgICAgICAgICAgICAgIGljb2x1bW5z PVtdLAorICAgICAgICAgICAgICAgICAgICAgc2NoZW1hPSIiLAorICAgICAgICAgICAgICAgICAg ICAgdGFibGU9IiIKKyAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgdXJsPWlt cG9ydF9leHBvcnRfdXJsLAorICAgICAgICAgICAgICAgICBleHBlY3RlZF9wYXJhbXM9ZGljdCgK KyAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2NtZF9vcHRzPVsnLS1jb21tYW5kJywgJ2Nv cHknLCAnVE8nXSwKKyAgICAgICAgICAgICAgICAgICAgIG5vdF9leHBlY3RlZF9jbWRfb3B0cz1b XSwKKyAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2V4aXRfY29kZT1bMCwgTm9uZV0KKyAg ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICkKKyAgICAgICAgICkpCisgICAgXQorCisg ICAgZGVmIHNldFVwKHNlbGYpOgorCisgICAgICAgIGltcG9ydF9leHBvcnRfdXRpbHMuc2V0dXBf ZXhwb3J0X2RhdGEoc2VsZikKKworICAgICAgICBzZWxmLmV4cG9ydF9vcHRpb25zWydwYXJhbXMn XVsnZGF0YWJhc2UnXSA9IHNlbGYuZGJfbmFtZQorICAgICAgICBzZWxmLmV4cG9ydF9vcHRpb25z WydwYXJhbXMnXVsnc2NoZW1hJ10gPSBzZWxmLnNjaGVtYV9uYW1lCisgICAgICAgIHNlbGYuZXhw b3J0X29wdGlvbnNbJ3BhcmFtcyddWyd0YWJsZSddID0gc2VsZi50YWJsZV9uYW1lCisgICAgICAg IHNlbGYuZXhwb3J0X29wdGlvbnNbJ3BhcmFtcyddWydjb2x1bW5zJ10gPSBbc2VsZi5jb2x1bW5f bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmNvbHVtbl9uYW1lXzFdCisKKyAgICAgICAgc2VsZi5wYXJhbXNbJ2RhdGFiYXNlJ10g PSBzZWxmLmRiX25hbWUKKyAgICAgICAgc2VsZi5wYXJhbXNbJ3NjaGVtYSddID0gc2VsZi5zY2hl bWFfbmFtZQorICAgICAgICBzZWxmLnBhcmFtc1sndGFibGUnXSA9IHNlbGYudGFibGVfbmFtZQor ICAgICAgICBzZWxmLnBhcmFtc1snY29sdW1ucyddID0gW3NlbGYuY29sdW1uX25hbWUsIHNlbGYu Y29sdW1uX25hbWVfMV0KKworICAgICAgICBpZiAnZGVmYXVsdF9iaW5hcnlfcGF0aHMnIG5vdCBp biBzZWxmLnNlcnZlciBvciBcCisgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGVmYXVsdF9iaW5h cnlfcGF0aHMnXSBpcyBOb25lIG9yIFwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWyd0eXBlJ10g bm90IGluIFwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydkZWZhdWx0X2JpbmFyeV9wYXRocydd IG9yIFwKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGVmYXVsdF9iaW5hcnlfcGF0aHMn XVtzZWxmLnNlcnZlclsndHlwZSddXSA9PSAnJzoKKworICAgICAgICAgICAgc2VsZi5za2lwVGVz dCgKKyAgICAgICAgICAgICAgICAiZGVmYXVsdF9iaW5hcnlfcGF0aHMgaXMgbm90IHNldCBmb3Ig dGhlIHNlcnZlciB7MH0iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJb J25hbWUnXQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKworICAgICAgICBiaW5f cCA9IHNlbGYuc2VydmVyWydkZWZhdWx0X2JpbmFyeV9wYXRocyddW3NlbGYuc2VydmVyWyd0eXBl J11dCisKKyAgICAgICAgYmluYXJ5X3BhdGggPSBvcy5wYXRoLmpvaW4oYmluX3AsICdwc3FsJykK KworICAgICAgICBpZiBvcy5uYW1lID09ICdudCc6CisgICAgICAgICAgICBiaW5hcnlfcGF0aCA9 IGJpbmFyeV9wYXRoICsgJy5leGUnCisKKyAgICAgICAgcmV0X3ZhbCA9IGRvZXNfdXRpbGl0eV9l eGlzdChiaW5hcnlfcGF0aCkKKyAgICAgICAgaWYgcmV0X3ZhbCBpcyBub3QgTm9uZToKKyAgICAg ICAgICAgIHNlbGYuc2tpcFRlc3QocmV0X3ZhbCkKKworICAgIGRlZiBjcmVhdGVfZXhwb3J0KHNl bGYpOgorICAgICAgICB1cmwgPSBzZWxmLmV4cG9ydF9vcHRpb25zWyd1cmwnXS5mb3JtYXQoc2Vs Zi5zZXJ2ZXJfaWQpCisgICAgICAgIGpvYl9pZCA9IGlvX3V0aWxzLmNyZWF0ZV9pbXBvcnRfZXhw b3J0X2pvYihzZWxmLnRlc3RlciwgdXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBvcnRfb3B0aW9uc1sKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFyYW1zJ10sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKQorICAgICAgICBzZWxmLmV4cG9ydF9maWxlID0gaW9fdXRpbHMucnVuX2ltcG9ydF9l eHBvcnRfam9iKAorICAgICAgICAgICAgc2VsZi50ZXN0ZXIsCisgICAgICAgICAgICBqb2JfaWQs CisgICAgICAgICAgICBzZWxmLmV4cG9ydF9vcHRpb25zWydleHBlY3RlZF9wYXJhbXMnXSwKKyAg ICAgICAgICAgIHNlbGYuYXNzZXJ0SW4sCisgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluLAor ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbAorICAgICAgICApCisKKyAgICBkZWYgcnVuVGVz dChzZWxmKToKKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2 ZXIiXVstMV1bInNlcnZlcl9pZCJdCisgICAgICAgIHVybCA9IHNlbGYudXJsLmZvcm1hdChzZWxm LnNlcnZlcl9pZCkKKworICAgICAgICBzZWxmLmNyZWF0ZV9leHBvcnQoKQorCisgICAgICAgICMg Q3JlYXRlIHRoZSBpbXBvcnQvZXhwb3J0IGpvYgorICAgICAgICBqb2JfaWQgPSBpbXBvcnRfZXhw b3J0X3V0aWxzLmNyZWF0ZV9pbXBvcnRfZXhwb3J0X2pvYihzZWxmLnRlc3RlciwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJs LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCkKKyAgICAgICAgaW1w b3J0X2ZpbGUgPSBpbXBvcnRfZXhwb3J0X3V0aWxzXAorICAgICAgICAgICAgLnJ1bl9pbXBvcnRf ZXhwb3J0X2pvYihzZWxmLnRlc3Rlciwgam9iX2lkLCBzZWxmLmV4cGVjdGVkX3BhcmFtcywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJbiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCisKKyAgICAgICAgaWYgaW1wb3J0X2ZpbGUgaXMgbm90IE5v bmUgYW5kIG9zLnBhdGguaXNmaWxlKGltcG9ydF9maWxlKToKKyAgICAgICAgICAgIG9zLnJlbW92 ZShpbXBvcnRfZmlsZSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKworICAgICAgICAjIERp c2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi90b29scy9pbXBvcnRfZXhwb3J0L3Rlc3RzL3Rlc3RfaW1wb3J0X2V4cG9ydF9j cmVhdGVfam9iX3VuaXRfdGVzdC5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL2ltcG9ydF9leHBvcnQv dGVzdHMvdGVzdF9pbXBvcnRfZXhwb3J0X2NyZWF0ZV9qb2JfdW5pdF90ZXN0LnB5Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMDIyN2IzY2E4Ci0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vdG9vbHMvaW1wb3J0X2V4cG9ydC90ZXN0cy90ZXN0X2ltcG9ydF9leHBv cnRfY3JlYXRlX2pvYl91bml0X3Rlc3QucHkKQEAgLTAsMCArMSwzNTMgQEAKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0 IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNv ZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisKK2ltcG9ydCBzaW1wbGVqc29uIGFzIGpzb24KK2ltcG9ydCBvcworCitm cm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJl Z3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscyBpbXBv cnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscywgZG9lc191dGlsaXR5X2V4aXN0Citmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGlt cG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gdW5pdHRlc3QubW9jayBp bXBvcnQgcGF0Y2gsIE1hZ2ljTW9jaworCisKK2NsYXNzIElFQ3JlYXRlSm9iVGVzdChCYXNlVGVz dEdlbmVyYXRvcik6CisgICAgIiIiVGVzdCB0aGUgSUVDcmVhdGVKb2IgY2xhc3MiIiIKKworICAg IGltcG9ydF9leHBvcnRfdXJsID0gJy9pbXBvcnRfZXhwb3J0L2pvYi97MH0nCisKKyAgICBzY2Vu YXJpb3MgPSBbCisgICAgICAgICgnV2hlbiBleHBvcnQgZmlsZSB3aXRoIGRlZmF1bHQgb3B0aW9u cycsCisgICAgICAgICBkaWN0KAorICAgICAgICAgICAgIGNsYXNzX3BhcmFtcz1kaWN0KAorICAg ICAgICAgICAgICAgICBzaWQ9MSwKKyAgICAgICAgICAgICAgICAgbmFtZT0ndGVzdF9leHBvcnRf c2VydmVyJywKKyAgICAgICAgICAgICAgICAgcG9ydD01NDQ0LAorICAgICAgICAgICAgICAgICBo b3N0PSdsb2NhbGhvc3QnLAorICAgICAgICAgICAgICAgICBkYXRhYmFzZT0ncG9zdGdyZXMnLAor ICAgICAgICAgICAgICAgICBiZmlsZT0ndGVzdF9leHBvcnQnLAorICAgICAgICAgICAgICAgICB1 c2VybmFtZT0ncG9zdGdyZXMnCisgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICBwYXJhbXM9 ZGljdCgKKyAgICAgICAgICAgICAgICAgZmlsZW5hbWU9J3Rlc3RfZXhwb3J0X2ZpbGUuY3N2JywK KyAgICAgICAgICAgICAgICAgZm9ybWF0PSdjc3YnLAorICAgICAgICAgICAgICAgICBpc19pbXBv cnQ9RmFsc2UsCisgICAgICAgICAgICAgICAgIGRlbGltaXRlcj0iIiwKKyAgICAgICAgICAgICAg ICAgcXVvdGU9IlwiIiwKKyAgICAgICAgICAgICAgICAgZXNjYXBlPSInIiwKKyAgICAgICAgICAg ICAgICAgZGF0YWJhc2U9J3Bvc3RncmVzJywKKyAgICAgICAgICAgICAgICAgY29sdW1ucz1bJ3Rl c3RfY29sXzEnLCAndGVzdF9jb2xfMiddLAorICAgICAgICAgICAgICAgICBpY29sdW1ucz1bXSwK KyAgICAgICAgICAgICAgICAgc2NoZW1hPSJleHBvcnRfdGVzdF9zY2hlbWEiLAorICAgICAgICAg ICAgICAgICB0YWJsZT0iZXhwb3J0X3Rlc3RfdGFibGUiCisgICAgICAgICAgICAgKSwKKyAgICAg ICAgICAgICB1cmw9aW1wb3J0X2V4cG9ydF91cmwsCisgICAgICAgICAgICAgZXhwZWN0ZWRfY21k X29wdHM9WyctLWNvbW1hbmQnLCAnY29weScsICdUTycsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdleHBvcnRfdGVzdF9zY2hlbWEnLCAnZXhwb3J0X3Rlc3RfdGFibGUnXSwKKyAg ICAgICAgICAgICBub3RfZXhwZWN0ZWRfY21kX29wdHM9W10sCisgICAgICAgICAgICAgZXhwZWN0 ZWRfZXhpdF9jb2RlPVswLCBOb25lXQorICAgICAgICAgKSksCisgICAgICAgICgnV2hlbiBleHBv cnQgZmlsZSB3aXRoIGNzdiBmaWxlLCBoZWFkZXIsIGRlbGltaXRlcj10YWIsICcKKyAgICAgICAg ICdlbmNvZGluZz1MQVRJTjEnLAorICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICBjbGFzc19w YXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAgICAgc2lkPTEsCisgICAgICAgICAgICAgICAgIG5h bWU9J3Rlc3RfZXhwb3J0X3NlcnZlcicsCisgICAgICAgICAgICAgICAgIHBvcnQ9NTQ0NCwKKyAg ICAgICAgICAgICAgICAgaG9zdD0nbG9jYWxob3N0JywKKyAgICAgICAgICAgICAgICAgZGF0YWJh c2U9J3Bvc3RncmVzJywKKyAgICAgICAgICAgICAgICAgYmZpbGU9J3Rlc3RfZXhwb3J0JywKKyAg ICAgICAgICAgICAgICAgdXNlcm5hbWU9J3Bvc3RncmVzJworICAgICAgICAgICAgICksCisgICAg ICAgICAgICAgcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAgIGZpbGVuYW1lPSd0ZXN0X2V4 cG9ydF9maWxlXzAxJywKKyAgICAgICAgICAgICAgICAgZm9ybWF0PSJjc3YiLAorICAgICAgICAg ICAgICAgICBlbmNvZGluZz0iTEFUSU4xIiwKKyAgICAgICAgICAgICAgICAgaGVhZGVyPVRydWUs CisgICAgICAgICAgICAgICAgIGRlbGltaXRlcj0iW3RhYl0iLAorICAgICAgICAgICAgICAgICBx dW90ZT0iJyIsCisgICAgICAgICAgICAgICAgIGVzY2FwZT0iXCIiLAorICAgICAgICAgICAgICAg ICBpc19pbXBvcnQ9RmFsc2UsCisgICAgICAgICAgICAgICAgIGRhdGFiYXNlPSdwb3N0Z3Jlcycs CisgICAgICAgICAgICAgICAgIGNvbHVtbnM9Wyd0ZXN0X2NvbF8wMTAnLCAndGVzdF9jb2xfMDEx J10sCisgICAgICAgICAgICAgICAgIGljb2x1bW5zPVtdLAorICAgICAgICAgICAgICAgICBzY2hl bWE9InRlc3Rfc2NoZW1hXzAxIiwKKyAgICAgICAgICAgICAgICAgdGFibGU9ImV4cG9ydF90ZXN0 X3RhYmxlXzAxIgorICAgICAgICAgICAgICksCisgICAgICAgICAgICAgdXJsPWltcG9ydF9leHBv cnRfdXJsLAorICAgICAgICAgICAgIGV4cGVjdGVkX2NtZF9vcHRzPVsnLS1jb21tYW5kJywgJ2Nv cHknLCAnVE8nLCAndGVzdF9zY2hlbWFfMDEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnZXhwb3J0X3Rlc3RfdGFibGVfMDEnLCAnSEVBREVSJywgJ0RFTElNSVRFUicsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdMQVRJTjEnXSwKKyAgICAgICAgICAgICBub3Rf ZXhwZWN0ZWRfY21kX29wdHM9W10sCisgICAgICAgICAgICAgZXhwZWN0ZWRfZXhpdF9jb2RlPVsw LCBOb25lXQorICAgICAgICAgKSksCisgICAgICAgICgnV2hlbiBleHBvcnQgZmlsZSB3aXRoIGNz diBmaWxlLCBoZWFkZXIsIGRlbGltaXRlcj10YWIsICcKKyAgICAgICAgICdlbmNvZGluZz1MQVRJ TjEnLAorICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICBjbGFzc19wYXJhbXM9ZGljdCgKKyAg ICAgICAgICAgICAgICAgc2lkPTEsCisgICAgICAgICAgICAgICAgIG5hbWU9J3Rlc3RfZXhwb3J0 X3NlcnZlcicsCisgICAgICAgICAgICAgICAgIHBvcnQ9NTQ0NCwKKyAgICAgICAgICAgICAgICAg aG9zdD0nbG9jYWxob3N0JywKKyAgICAgICAgICAgICAgICAgZGF0YWJhc2U9J3Bvc3RncmVzJywK KyAgICAgICAgICAgICAgICAgYmZpbGU9J3Rlc3RfZXhwb3J0JywKKyAgICAgICAgICAgICAgICAg dXNlcm5hbWU9J3Bvc3RncmVzJworICAgICAgICAgICAgICksCisgICAgICAgICAgICAgcGFyYW1z PWRpY3QoCisgICAgICAgICAgICAgICAgIGZpbGVuYW1lPSd0ZXN0X2V4cG9ydF9maWxlXzAxJywK KyAgICAgICAgICAgICAgICAgZm9ybWF0PSJjc3YiLAorICAgICAgICAgICAgICAgICBlbmNvZGlu Zz0iTEFUSU4xIiwKKyAgICAgICAgICAgICAgICAgaGVhZGVyPVRydWUsCisgICAgICAgICAgICAg ICAgIGRlbGltaXRlcj0iW3RhYl0iLAorICAgICAgICAgICAgICAgICBxdW90ZT0iJyIsCisgICAg ICAgICAgICAgICAgIGVzY2FwZT0iXCIiLAorICAgICAgICAgICAgICAgICBpc19pbXBvcnQ9RmFs c2UsCisgICAgICAgICAgICAgICAgIGRhdGFiYXNlPSdwb3N0Z3JlcycsCisgICAgICAgICAgICAg ICAgIGNvbHVtbnM9Wyd0ZXN0X2NvbF8wMTAnLCAndGVzdF9jb2xfMDExJ10sCisgICAgICAgICAg ICAgICAgIGljb2x1bW5zPVtdLAorICAgICAgICAgICAgICAgICBzY2hlbWE9InRlc3Rfc2NoZW1h XzAxIiwKKyAgICAgICAgICAgICAgICAgdGFibGU9ImV4cG9ydF90ZXN0X3RhYmxlXzAxIgorICAg ICAgICAgICAgICksCisgICAgICAgICAgICAgdXJsPWltcG9ydF9leHBvcnRfdXJsLAorICAgICAg ICAgICAgIGV4cGVjdGVkX2NtZF9vcHRzPVsnLS1jb21tYW5kJywgJ2NvcHknLCAnVE8nLCAndGVz dF9zY2hlbWFfMDEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXhwb3J0X3Rl c3RfdGFibGVfMDEnLCAnSEVBREVSJywgJ0RFTElNSVRFUicsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdMQVRJTjEnXSwKKyAgICAgICAgICAgICBub3RfZXhwZWN0ZWRfY21kX29w dHM9W10sCisgICAgICAgICAgICAgZXhwZWN0ZWRfZXhpdF9jb2RlPVswLCBOb25lXQorICAgICAg ICAgKSksCisgICAgICAgICgnV2hlbiBleHBvcnQgZmlsZSB3aXRoIGJpbmFyeSBmaWxlLCBvaWQs IGVuY29kaW5nPVVURjgnLAorICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICBjbGFzc19wYXJh bXM9ZGljdCgKKyAgICAgICAgICAgICAgICAgc2lkPTEsCisgICAgICAgICAgICAgICAgIG5hbWU9 J3Rlc3RfZXhwb3J0X3NlcnZlcicsCisgICAgICAgICAgICAgICAgIHBvcnQ9NTQ0NCwKKyAgICAg ICAgICAgICAgICAgaG9zdD0nbG9jYWxob3N0JywKKyAgICAgICAgICAgICAgICAgZGF0YWJhc2U9 J3Bvc3RncmVzJywKKyAgICAgICAgICAgICAgICAgYmZpbGU9J3Rlc3RfZXhwb3J0JywKKyAgICAg ICAgICAgICAgICAgdXNlcm5hbWU9J3Bvc3RncmVzJworICAgICAgICAgICAgICksCisgICAgICAg ICAgICAgcGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAgIGZpbGVuYW1lPSd0ZXN0X2V4cG9y dF9maWxlXzAyJywKKyAgICAgICAgICAgICAgICAgZm9ybWF0PSJiaW5hcnkiLAorICAgICAgICAg ICAgICAgICBlbmNvZGluZz0iVVRGOCIsCisgICAgICAgICAgICAgICAgIG9pZD1UcnVlLAorICAg ICAgICAgICAgICAgICBkZWxpbWl0ZXI9IiIsCisgICAgICAgICAgICAgICAgIHF1b3RlPSJcIiIs CisgICAgICAgICAgICAgICAgIGVzY2FwZT0iJyIsCisgICAgICAgICAgICAgICAgIGlzX2ltcG9y dD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgZGF0YWJhc2U9J3Bvc3RncmVzJywKKyAgICAgICAg ICAgICAgICAgY29sdW1ucz1bJ3Rlc3RfY29sXzAyMCcsICd0ZXN0X2NvbF8wMjEnXSwKKyAgICAg ICAgICAgICAgICAgaWNvbHVtbnM9W10sCisgICAgICAgICAgICAgICAgIHNjaGVtYT0idGVzdF9z Y2hlbWFfMDIiLAorICAgICAgICAgICAgICAgICB0YWJsZT0iZXhwb3J0X3Rlc3RfdGFibGVfMDIi CisgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICBzZXJ2ZXJfbWF4X3ZlcnNpb249MTE5OTk5 LAorICAgICAgICAgICAgIHNraXBfbXNnPSJPSURzIG5vdCBzdXBwb3J0ZWQgYnkgRVBBUy9QRyAx Mi4wIGFuZCBhYm92ZS4iLAorICAgICAgICAgICAgIHVybD1pbXBvcnRfZXhwb3J0X3VybCwKKyAg ICAgICAgICAgICBleHBlY3RlZF9jbWRfb3B0cz1bJy0tY29tbWFuZCcsICdjb3B5JywgJ1RPJywg J3Rlc3Rfc2NoZW1hXzAyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4cG9y dF90ZXN0X3RhYmxlXzAyJywgJ1VURjgnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnT0lEUyddLAorICAgICAgICAgICAgIG5vdF9leHBlY3RlZF9jbWRfb3B0cz1bXSwKKyAgICAg ICAgICAgICBleHBlY3RlZF9leGl0X2NvZGU9WzAsIE5vbmVdCisgICAgICAgICApKSwKKyAgICAg ICAgKCdXaGVuIGV4cG9ydCBmaWxlIHdpdGggdGV4dCBmaWxlLCBkZWxpbWl0ZXI9fCwgZW5jb2Rp bmc9SVNPXzg4NTlfNicsCisgICAgICAgICBkaWN0KAorICAgICAgICAgICAgIGNsYXNzX3BhcmFt cz1kaWN0KAorICAgICAgICAgICAgICAgICBzaWQ9MSwKKyAgICAgICAgICAgICAgICAgbmFtZT0n dGVzdF9leHBvcnRfc2VydmVyJywKKyAgICAgICAgICAgICAgICAgcG9ydD01NDQ0LAorICAgICAg ICAgICAgICAgICBob3N0PSdsb2NhbGhvc3QnLAorICAgICAgICAgICAgICAgICBkYXRhYmFzZT0n cG9zdGdyZXMnLAorICAgICAgICAgICAgICAgICBiZmlsZT0ndGVzdF9leHBvcnQnLAorICAgICAg ICAgICAgICAgICB1c2VybmFtZT0ncG9zdGdyZXMnCisgICAgICAgICAgICAgKSwKKyAgICAgICAg ICAgICBwYXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAgICAgZmlsZW5hbWU9J3Rlc3RfZXhwb3J0 X2ZpbGVfMDMnLAorICAgICAgICAgICAgICAgICBmb3JtYXQ9InRleHQiLAorICAgICAgICAgICAg ICAgICBlbmNvZGluZz0iSVNPXzg4NTlfNiIsCisgICAgICAgICAgICAgICAgIGRlbGltaXRlcj0i fCIsCisgICAgICAgICAgICAgICAgIHF1b3RlPSJcIiIsCisgICAgICAgICAgICAgICAgIGVzY2Fw ZT0iJyIsCisgICAgICAgICAgICAgICAgIGlzX2ltcG9ydD1GYWxzZSwKKyAgICAgICAgICAgICAg ICAgZGF0YWJhc2U9J3Bvc3RncmVzJywKKyAgICAgICAgICAgICAgICAgY29sdW1ucz1bJ3Rlc3Rf Y29sXzAzMCcsICd0ZXN0X2NvbF8wMzEnXSwKKyAgICAgICAgICAgICAgICAgaWNvbHVtbnM9W10s CisgICAgICAgICAgICAgICAgIHNjaGVtYT0idGVzdF9zY2hlbWFfMDMiLAorICAgICAgICAgICAg ICAgICB0YWJsZT0iZXhwb3J0X3Rlc3RfdGFibGVfMDMiCisgICAgICAgICAgICAgKSwKKyAgICAg ICAgICAgICB1cmw9aW1wb3J0X2V4cG9ydF91cmwsCisgICAgICAgICAgICAgZXhwZWN0ZWRfY21k X29wdHM9WyctLWNvbW1hbmQnLCAnY29weScsICdUTycsICd0ZXN0X3NjaGVtYV8wMycsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdleHBvcnRfdGVzdF90YWJsZV8wMycsICdERUxJ TUlURVInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnSVNPXzg4NTlfNiddLAor ICAgICAgICAgICAgIG5vdF9leHBlY3RlZF9jbWRfb3B0cz1bXSwKKyAgICAgICAgICAgICBleHBl Y3RlZF9leGl0X2NvZGU9WzAsIE5vbmVdCisgICAgICAgICApKSwKKyAgICAgICAgKCdXaGVuIGV4 cG9ydCBmaWxlIHdpdGggYmluYXJ5IGZpbGUsIGRlbGltaXRlcj10YWIsICcKKyAgICAgICAgICdl bmNvZGluZz1JU09fODg1OV82JywKKyAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgY2xhc3Nf cGFyYW1zPWRpY3QoCisgICAgICAgICAgICAgICAgIHNpZD0xLAorICAgICAgICAgICAgICAgICBu YW1lPSd0ZXN0X2V4cG9ydF9zZXJ2ZXInLAorICAgICAgICAgICAgICAgICBwb3J0PTU0NDQsCisg ICAgICAgICAgICAgICAgIGhvc3Q9J2xvY2FsaG9zdCcsCisgICAgICAgICAgICAgICAgIGRhdGFi YXNlPSdwb3N0Z3JlcycsCisgICAgICAgICAgICAgICAgIGJmaWxlPSd0ZXN0X2V4cG9ydCcsCisg ICAgICAgICAgICAgICAgIHVzZXJuYW1lPSdwb3N0Z3JlcycKKyAgICAgICAgICAgICApLAorICAg ICAgICAgICAgIHBhcmFtcz1kaWN0KAorICAgICAgICAgICAgICAgICBmaWxlbmFtZT0ndGVzdF9l eHBvcnRfZmlsZV8wNCcsCisgICAgICAgICAgICAgICAgIGZvcm1hdD0iYmluYXJ5IiwKKyAgICAg ICAgICAgICAgICAgZW5jb2Rpbmc9IklTT184ODU5XzYiLAorICAgICAgICAgICAgICAgICBxdW90 ZT0iXCIiLAorICAgICAgICAgICAgICAgICBlc2NhcGU9IiciLAorICAgICAgICAgICAgICAgICBp c19pbXBvcnQ9RmFsc2UsCisgICAgICAgICAgICAgICAgIGRhdGFiYXNlPSdwb3N0Z3JlcycsCisg ICAgICAgICAgICAgICAgIGNvbHVtbnM9Wyd0ZXN0X2NvbF8wNDAnLCAndGVzdF9jb2xfMDQxJ10s CisgICAgICAgICAgICAgICAgIGljb2x1bW5zPVtdLAorICAgICAgICAgICAgICAgICBzY2hlbWE9 InRlc3Rfc2NoZW1hXzA0IiwKKyAgICAgICAgICAgICAgICAgdGFibGU9ImV4cG9ydF90ZXN0X3Rh YmxlXzA0IgorICAgICAgICAgICAgICksCisgICAgICAgICAgICAgdXJsPWltcG9ydF9leHBvcnRf dXJsLAorICAgICAgICAgICAgIGV4cGVjdGVkX2NtZF9vcHRzPVsnLS1jb21tYW5kJywgJ2NvcHkn LCAnVE8nLCAndGVzdF9zY2hlbWFfMDQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnZXhwb3J0X3Rlc3RfdGFibGVfMDQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnSVNPXzg4NTlfNiddLAorICAgICAgICAgICAgIG5vdF9leHBlY3RlZF9jbWRfb3B0cz1bJ0RF TElNSVRFUiddLAorICAgICAgICAgICAgIGV4cGVjdGVkX2V4aXRfY29kZT1bMCwgTm9uZV0KKyAg ICAgICAgICkpLAorICAgICAgICAoJ1doZW4gaW1wb3J0IGZpbGUgd2l0aCBkZWZhdWx0IG9wdGlv bnMnLAorICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICBjbGFzc19wYXJhbXM9ZGljdCgKKyAg ICAgICAgICAgICAgICAgc2lkPTEsCisgICAgICAgICAgICAgICAgIG5hbWU9J3Rlc3RfZXhwb3J0 X3NlcnZlcicsCisgICAgICAgICAgICAgICAgIHBvcnQ9NTQ0NCwKKyAgICAgICAgICAgICAgICAg aG9zdD0nbG9jYWxob3N0JywKKyAgICAgICAgICAgICAgICAgZGF0YWJhc2U9J3Bvc3RncmVzJywK KyAgICAgICAgICAgICAgICAgYmZpbGU9J3Rlc3RfZXhwb3J0JywKKyAgICAgICAgICAgICAgICAg dXNlcm5hbWU9J3Bvc3RncmVzJworICAgICAgICAgICAgICksCisgICAgICAgICAgICAgcGFyYW1z PWRpY3QoCisgICAgICAgICAgICAgICAgIGZpbGVuYW1lPSd0ZXN0X2ltcG9ydF9maWxlLmNzdics CisgICAgICAgICAgICAgICAgIGZvcm1hdD0nY3N2JywKKyAgICAgICAgICAgICAgICAgaXNfaW1w b3J0PVRydWUsCisgICAgICAgICAgICAgICAgIGRlbGltaXRlcj0iIiwKKyAgICAgICAgICAgICAg ICAgcXVvdGU9IlwiIiwKKyAgICAgICAgICAgICAgICAgZXNjYXBlPSInIiwKKyAgICAgICAgICAg ICAgICAgZGF0YWJhc2U9J3Bvc3RncmVzJywKKyAgICAgICAgICAgICAgICAgY29sdW1ucz1bJ3Rl c3RfY29sXzEnLCAndGVzdF9jb2xfMiddLAorICAgICAgICAgICAgICAgICBpY29sdW1ucz1bXSwK KyAgICAgICAgICAgICAgICAgc2NoZW1hPSJpbXBvcnRfdGVzdF9zY2hlbWEiLAorICAgICAgICAg ICAgICAgICB0YWJsZT0iaW1wb3J0X3Rlc3RfdGFibGUiCisgICAgICAgICAgICAgKSwKKyAgICAg ICAgICAgICB1cmw9aW1wb3J0X2V4cG9ydF91cmwsCisgICAgICAgICAgICAgZXhwZWN0ZWRfY21k X29wdHM9WyctLWNvbW1hbmQnLCAnY29weScsICdGUk9NJywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ2ltcG9ydF90ZXN0X3NjaGVtYScsICdpbXBvcnRfdGVzdF90YWJsZSddLAor ICAgICAgICAgICAgIG5vdF9leHBlY3RlZF9jbWRfb3B0cz1bXSwKKyAgICAgICAgICAgICBleHBl Y3RlZF9leGl0X2NvZGU9WzAsIE5vbmVdCisgICAgICAgICApKSwKKyAgICBdCisKKyAgICBkZWYg c2V0VXAoc2VsZik6CisKKyAgICAgICAgaWYgJ2RlZmF1bHRfYmluYXJ5X3BhdGhzJyBub3QgaW4g c2VsZi5zZXJ2ZXIgb3IgXAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RlZmF1bHRfYmluYXJ5 X3BhdGhzJ10gaXMgTm9uZSBvciBcCisgICAgICAgICAgICBzZWxmLnNlcnZlclsndHlwZSddIG5v dCBpbiBzZWxmLnNlcnZlclsnZGVmYXVsdF9iaW5hcnlfcGF0aHMnXSBvciBcCisgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJbJ2RlZmF1bHRfYmluYXJ5X3BhdGhzJ11bc2VsZi5zZXJ2ZXJbJ3R5 cGUnXV0gPT0gJyc6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KAorICAgICAgICAgICAgICAg ICJkZWZhdWx0X2JpbmFyeV9wYXRocyBpcyBub3Qgc2V0IGZvciB0aGUgc2VydmVyIHswfSIuZm9y bWF0KAorICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnbmFtZSddCisgICAgICAgICAg ICAgICAgKQorICAgICAgICAgICAgKQorCisgICAgICAgIGJpbl9wID0gc2VsZi5zZXJ2ZXJbJ2Rl ZmF1bHRfYmluYXJ5X3BhdGhzJ11bc2VsZi5zZXJ2ZXJbJ3R5cGUnXV0KKworICAgICAgICBiaW5h cnlfcGF0aCA9IG9zLnBhdGguam9pbihiaW5fcCwgJ3BzcWwnKQorCisgICAgICAgIGlmIG9zLm5h bWUgPT0gJ250JzoKKyAgICAgICAgICAgIGJpbmFyeV9wYXRoID0gYmluYXJ5X3BhdGggKyAnLmV4 ZScKKworICAgICAgICByZXRfdmFsID0gZG9lc191dGlsaXR5X2V4aXN0KGJpbmFyeV9wYXRoKQor ICAgICAgICBpZiByZXRfdmFsIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5za2lwVGVz dChyZXRfdmFsKQorCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLmltcG9ydF9leHBvcnQuU2Vy dmVyJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuaW1wb3J0X2V4cG9ydC5JRU1lc3NhZ2Un KQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5pbXBvcnRfZXhwb3J0LmZpbGVuYW1lX3dpdGhf ZmlsZV9tYW5hZ2VyX3BhdGgnKQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5pbXBvcnRfZXhw b3J0LkJhdGNoUHJvY2VzcycpCisgICAgQHBhdGNoKCdwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3lj b3BnMi5zZXJ2ZXJfbWFuYWdlci5TZXJ2ZXJNYW5hZ2VyLicKKyAgICAgICAgICAgJ2V4cG9ydF9w YXNzd29yZF9lbnYnKQorICAgIGRlZiBydW5UZXN0KHNlbGYsIGV4cG9ydF9wYXNzd29yZF9lbnZf bW9jaywgYmF0Y2hfcHJvY2Vzc19tb2NrLAorICAgICAgICAgICAgICAgIGZpbGVuYW1lX21vY2ss IGllX21lc3NhZ2VfbW9jaywgc2VydmVyX21vY2spOgorICAgICAgICBjbGFzcyBUZXN0TW9ja1Nl cnZlcigpOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIGhvc3QsIHBvcnQs IGlkLCB1c2VybmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBtYWludGVuYW5jZV9kYik6 CisgICAgICAgICAgICAgICAgc2VsZi5uYW1lID0gbmFtZQorICAgICAgICAgICAgICAgIHNlbGYu aG9zdCA9IGhvc3QKKyAgICAgICAgICAgICAgICBzZWxmLnBvcnQgPSBwb3J0CisgICAgICAgICAg ICAgICAgc2VsZi5pZCA9IGlkCisgICAgICAgICAgICAgICAgc2VsZi51c2VybmFtZSA9IHVzZXJu YW1lCisgICAgICAgICAgICAgICAgc2VsZi5tYWludGVuYW5jZV9kYiA9IG1haW50ZW5hbmNlX2Ri CisKKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVst MV1bInNlcnZlcl9pZCJdCisgICAgICAgIG1vY2tfb2JqID0gVGVzdE1vY2tTZXJ2ZXIoc2VsZi5j bGFzc19wYXJhbXNbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmNsYXNzX3BhcmFtc1snaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuY2xhc3NfcGFyYW1zWydwb3J0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5jbGFzc19wYXJhbXNbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5jbGFzc19wYXJhbXNbJ2RhdGFiYXNlJ10KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICApCisgICAgICAgIG1vY2tfcmVzdWx0ID0gc2VydmVyX21vY2su cXVlcnkuZmlsdGVyX2J5LnJldHVybl92YWx1ZQorICAgICAgICBtb2NrX3Jlc3VsdC5maXJzdC5y ZXR1cm5fdmFsdWUgPSBtb2NrX29iagorCisgICAgICAgIGZpbGVuYW1lX21vY2sucmV0dXJuX3Zh bHVlID0gc2VsZi5wYXJhbXNbJ2ZpbGVuYW1lJ10KKworICAgICAgICBiYXRjaF9wcm9jZXNzX21v Y2suc2V0X2Vudl92YXJpYWJsZXMgPSBNYWdpY01vY2soCisgICAgICAgICAgICByZXR1cm5fdmFs dWU9VHJ1ZQorICAgICAgICApCisgICAgICAgIGJhdGNoX3Byb2Nlc3NfbW9jay5zdGFydCA9IE1h Z2ljTW9jaygKKyAgICAgICAgICAgIHJldHVybl92YWx1ZT1UcnVlCisgICAgICAgICkKKworICAg ICAgICBleHBvcnRfcGFzc3dvcmRfZW52X21vY2sucmV0dXJuX3ZhbHVlID0gVHJ1ZQorCisgICAg ICAgIHNlcnZlcl9yZXNwb25zZSA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBz ZWxmLnNlcnZlcl9pZCkKKyAgICAgICAgaWYgc2VydmVyX3Jlc3BvbnNlWyJpbmZvIl0gPT0gIlNl cnZlciBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIGRiX293bmVyID0gc2VydmVyX3Jlc3BvbnNl WydkYXRhJ11bJ3VzZXInXVsnbmFtZSddCisgICAgICAgICAgICBzZWxmLmRhdGEgPSBkYXRhYmFz ZV91dGlscy5nZXRfZGJfZGF0YShkYl9vd25lcikKKworICAgICAgICAgICAgaWYgaGFzYXR0cihz ZWxmLCAnc2VydmVyX21heF92ZXJzaW9uJykgXAorICAgICAgICAgICAgICAgIGFuZCBzZXJ2ZXJf cmVzcG9uc2VbImRhdGEiXVsidmVyc2lvbiJdID4gc2VsZi5cCisgICAgICAgICAgICAgICAgICAg IHNlcnZlcl9tYXhfdmVyc2lvbjoKKyAgICAgICAgICAgICAgICBzZWxmLnNraXBUZXN0KHNlbGYu c2tpcF9tc2cpCisKKyAgICAgICAgdXJsID0gc2VsZi51cmwuZm9ybWF0KHNlbGYuc2VydmVyX2lk KQorCisgICAgICAgICMgQ3JlYXRlIHRoZSBpbXBvcnQvZXhwb3J0IGpvYgorICAgICAgICByZXNw b25zZSA9IHNlbGYudGVzdGVyLnBvc3QodXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYucGFyYW1zKSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKyAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgICAgIHNlbGYu YXNzZXJ0VHJ1ZShpZV9tZXNzYWdlX21vY2suY2FsbGVkKQorICAgICAgICBzZWxmLmFzc2VydFRy dWUoYmF0Y2hfcHJvY2Vzc19tb2NrLmNhbGxlZCkKKworICAgICAgICBpZiBzZWxmLmV4cGVjdGVk X2NtZF9vcHRzOgorICAgICAgICAgICAgZm9yIG9wdCBpbiBzZWxmLmV4cGVjdGVkX2NtZF9vcHRz OgorICAgICAgICAgICAgICAgIGFyZyA9IHJlcHIoYmF0Y2hfcHJvY2Vzc19tb2NrLmNhbGxfYXJn c19saXN0WzBdWzFdWydhcmdzJ10pCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigKKyAg ICAgICAgICAgICAgICAgICAgb3B0LAorICAgICAgICAgICAgICAgICAgICBhcmcKKyAgICAgICAg ICAgICAgICApCisgICAgICAgIGlmIHNlbGYubm90X2V4cGVjdGVkX2NtZF9vcHRzOgorICAgICAg ICAgICAgZm9yIG9wdCBpbiBzZWxmLm5vdF9leHBlY3RlZF9jbWRfb3B0czoKKyAgICAgICAgICAg ICAgICBhcmcgPSByZXByKGJhdGNoX3Byb2Nlc3NfbW9jay5jYWxsX2FyZ3NfbGlzdFswXVsxXVsn YXJncyddKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oCisgICAgICAgICAgICAg ICAgICAgIG9wdCwKKyAgICAgICAgICAgICAgICAgICAgYXJnCisgICAgICAgICAgICAgICAgKQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvaW1wb3J0X2V4cG9ydC90ZXN0cy90ZXN0X2lt cG9ydF9leHBvcnRfbWVzc2FnZS5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL2ltcG9ydF9leHBvcnQv dGVzdHMvdGVzdF9pbXBvcnRfZXhwb3J0X21lc3NhZ2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwLi42NTAxMDY4ZDEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi90b29scy9pbXBvcnRfZXhwb3J0L3Rlc3RzL3Rlc3RfaW1wb3J0X2V4cG9ydF9tZXNzYWdlLnB5 CkBAIC0wLDAgKzEsMTM1IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHBnYWRt aW4udG9vbHMuaW1wb3J0X2V4cG9ydCBpbXBvcnQgSUVNZXNzYWdlCitmcm9tIHBnYWRtaW4udXRp bHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1w b3J0IHBhdGNoCitpbXBvcnQgY29uZmlnCisKKworY2xhc3MgSUVNZXNzYWdlVGVzdChCYXNlVGVz dEdlbmVyYXRvcik6CisgICAgIiIiVGVzdCB0aGUgSUVNZXNzYWdlIGNsYXNzIiIiCisgICAgc2Nl bmFyaW9zID0gWworICAgICAgICAoJ1doZW4gRXhwb3J0IHRhYmxlIHdpdGggZGVmYXVsdCBvcHRp b25zJywKKyAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgY2xhc3NfcGFyYW1zPWRpY3QoCisg ICAgICAgICAgICAgICAgIHNpZD0xLAorICAgICAgICAgICAgICAgICBzY2hlbWE9J3B1YmxpYycs CisgICAgICAgICAgICAgICAgIG5hbWU9J3Rlc3RfZXhwb3J0JywKKyAgICAgICAgICAgICAgICAg aXNfaW1wb3J0PUZhbHNlLAorICAgICAgICAgICAgICAgICBwb3J0PTU0NDQsCisgICAgICAgICAg ICAgICAgIGhvc3Q9J2xvY2FsaG9zdCcsCisgICAgICAgICAgICAgICAgIGRhdGFiYXNlPSdwb3N0 Z3JlcycsCisgICAgICAgICAgICAgICAgIHNlcnZlcj0ncG9zdGdyZXMgeCcsCisgICAgICAgICAg ICAgICAgIGZpbGVuYW1lPScvdGVzdF9leHBvcnRfZmlsZS5jc3YnLAorICAgICAgICAgICAgICAg ICBzdG9yYWdlPScvJywKKyAgICAgICAgICAgICAgICAgdGFibGU9J3Rlc3RfdGFibGUnLAorICAg ICAgICAgICAgICAgICBjbWQ9Ii90ZXN0X3BhdGgiLAorICAgICAgICAgICAgICAgICBhcmdzPVsK KyAgICAgICAgICAgICAgICAgICAgICctLWNvbW1hbmQnLAorICAgICAgICAgICAgICAgICAgICAg J1xcY29weSBwdWJsaWMudGVzdF90YWJsZSAgKG1faWQpICBUTyAnCisgICAgICAgICAgICAgICAg ICAgICAnXCcvdGVzdF9wYXRoL3RleHRfZXhwb3J0LmNzdlwnICAgQ1NWICAgJworICAgICAgICAg ICAgICAgICAgICAgJ1FVT1RFIFwnIlwnIEVTQ0FQRSBcJ1wnXCdcJzsnCisgICAgICAgICAgICAg ICAgIF0KKyAgICAgICAgICAgICApLAorICAgICAgICAgICAgIGV4cGVjdGVkX21zZz0iQ29weWlu ZyB0YWJsZSBkYXRhICd7MH0uezF9JyBvbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJk YXRhYmFzZSAnezJ9JyBhbmQgc2VydmVyICh7M306ezR9KSIsCisgICAgICAgICAgICAgZXhwZWN0 ZWRfc3RvcmFnZV9kaXI9Jy8nCisKKyAgICAgICAgICkpLAorICAgICAgICAoJ1doZW4gRXhwb3J0 IHRhYmxlIHdpdGggZm9sZGVyIHBhdGgnLAorICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICBj bGFzc19wYXJhbXM9ZGljdCgKKyAgICAgICAgICAgICAgICAgc2lkPTEsCisgICAgICAgICAgICAg ICAgIHNjaGVtYT0ncHVibGljJywKKyAgICAgICAgICAgICAgICAgbmFtZT0ndGVzdF9leHBvcnQn LAorICAgICAgICAgICAgICAgICBpc19pbXBvcnQ9RmFsc2UsCisgICAgICAgICAgICAgICAgIHBv cnQ9NTQ0NCwKKyAgICAgICAgICAgICAgICAgaG9zdD0nbG9jYWxob3N0JywKKyAgICAgICAgICAg ICAgICAgZGF0YWJhc2U9J3Bvc3RncmVzJywKKyAgICAgICAgICAgICAgICAgc2VydmVyPSdwb3N0 Z3JlcyB4JywKKyAgICAgICAgICAgICAgICAgZmlsZW5hbWU9Jy90ZXN0X3BhdGgvdGVzdF9leHBv cnRfZmlsZS5jc3YnLAorICAgICAgICAgICAgICAgICBzdG9yYWdlPScvJywKKyAgICAgICAgICAg ICAgICAgdGFibGU9J3Rlc3RfdGFibGUnLAorICAgICAgICAgICAgICAgICBjbWQ9Ii90ZXN0X3Bh dGgiLAorICAgICAgICAgICAgICAgICBhcmdzPVsKKyAgICAgICAgICAgICAgICAgICAgICctLWNv bW1hbmQnLAorICAgICAgICAgICAgICAgICAgICAgJ1xcY29weSBwdWJsaWMudGVzdF90YWJsZSAg KG1faWQpICBUTyAnCisgICAgICAgICAgICAgICAgICAgICAnXCcvdGVzdF9wYXRoL3RleHRfZXhw b3J0LmNzdlwnICAgQ1NWICAgJworICAgICAgICAgICAgICAgICAgICAgJ1FVT1RFIFwnIlwnIEVT Q0FQRSBcJ1wnXCdcJzsnCisgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICApLAorICAg ICAgICAgICAgIGV4cGVjdGVkX21zZz0iQ29weWluZyB0YWJsZSBkYXRhICd7MH0uezF9JyBvbiAi CisgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXRhYmFzZSAnezJ9JyBhbmQgc2VydmVyICh7 M306ezR9KSIsCisgICAgICAgICAgICAgZXhwZWN0ZWRfc3RvcmFnZV9kaXI9Jy90ZXN0X3BhdGgn CisKKyAgICAgICAgICkpLAorICAgIF0KKworICAgIEBwYXRjaCgnb3MucGF0aC5yZWFscGF0aCcp CisgICAgQHBhdGNoKCdwZ2FkbWluLm1pc2MuYmdwcm9jZXNzLnByb2Nlc3Nlcy5nZXRfc3RvcmFn ZV9kaXJlY3RvcnknKQorICAgIEBwYXRjaCgncGdhZG1pbi5taXNjLmJncHJvY2Vzcy5wcm9jZXNz ZXMuZ2V0X2NvbXBsZXRlX2ZpbGVfcGF0aCcpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLmlt cG9ydF9leHBvcnQuSUVNZXNzYWdlLmdldF9zZXJ2ZXJfZGV0YWlscycpCisgICAgZGVmIHJ1blRl c3Qoc2VsZiwgZ2V0X3NlcnZlcl9kZXRhaWxzX21vY2ssCisgICAgICAgICAgICAgICAgZ2V0X2Nv bXBsZXRlX2ZpbGVfcGF0aF9tb2NrLAorICAgICAgICAgICAgICAgIGdldF9zdG9yYWdlX2RpcmVj dG9yeV9tb2NrLAorICAgICAgICAgICAgICAgIHJlYWxwYXRoX21vY2spOgorCisgICAgICAgIG5h bWUgPSBzZWxmLmNsYXNzX3BhcmFtc1snbmFtZSddCisgICAgICAgIGhvc3QgPSBzZWxmLmNsYXNz X3BhcmFtc1snaG9zdCddCisgICAgICAgIHBvcnQgPSBzZWxmLmNsYXNzX3BhcmFtc1sncG9ydCdd CisKKyAgICAgICAgZ2V0X3NlcnZlcl9kZXRhaWxzX21vY2sucmV0dXJuX3ZhbHVlID0gbmFtZSwg aG9zdCwgcG9ydAorCisgICAgICAgIGdldF9jb21wbGV0ZV9maWxlX3BhdGhfbW9jay5yZXR1cm5f dmFsdWUgXAorICAgICAgICAgICAgPSBzZWxmLmNsYXNzX3BhcmFtc1snZmlsZW5hbWUnXQorICAg ICAgICByZWFscGF0aF9tb2NrLnJldHVybl92YWx1ZSA9IHNlbGYuY2xhc3NfcGFyYW1zWydmaWxl bmFtZSddCisgICAgICAgIGdldF9zdG9yYWdlX2RpcmVjdG9yeV9tb2NrLnJldHVybl92YWx1ZSA9 ICcvLycKKworICAgICAgICBpbXBvcnRfZXhwb3J0X29iaiA9IElFTWVzc2FnZSgKKyAgICAgICAg ICAgICpzZWxmLmNsYXNzX3BhcmFtc1snYXJncyddLAorICAgICAgICAgICAgKip7CisgICAgICAg ICAgICAgICAgJ3NpZCc6IHNlbGYuY2xhc3NfcGFyYW1zWydzaWQnXSwKKyAgICAgICAgICAgICAg ICAnc2NoZW1hJzogc2VsZi5jbGFzc19wYXJhbXNbJ3NjaGVtYSddLAorICAgICAgICAgICAgICAg ICd0YWJsZSc6IHNlbGYuY2xhc3NfcGFyYW1zWyd0YWJsZSddLAorICAgICAgICAgICAgICAgICdp c19pbXBvcnQnOiBzZWxmLmNsYXNzX3BhcmFtc1snaXNfaW1wb3J0J10sCisgICAgICAgICAgICAg ICAgJ2RhdGFiYXNlJzogc2VsZi5jbGFzc19wYXJhbXNbJ2RhdGFiYXNlJ10sCisgICAgICAgICAg ICAgICAgJ2ZpbGVuYW1lJzogc2VsZi5jbGFzc19wYXJhbXNbJ2ZpbGVuYW1lJ10sCisgICAgICAg ICAgICAgICAgJ3N0b3JhZ2UnOiBzZWxmLmNsYXNzX3BhcmFtc1snc3RvcmFnZSddLAorICAgICAg ICAgICAgfQorICAgICAgICApCisKKyAgICAgICAgZXhwZWN0ZWRfbXNnID0gc2VsZi5leHBlY3Rl ZF9tc2cuZm9ybWF0KAorICAgICAgICAgICAgc2VsZi5jbGFzc19wYXJhbXNbJ3NjaGVtYSddLAor ICAgICAgICAgICAgc2VsZi5jbGFzc19wYXJhbXNbJ3RhYmxlJ10sCisgICAgICAgICAgICBzZWxm LmNsYXNzX3BhcmFtc1snZGF0YWJhc2UnXSwKKyAgICAgICAgICAgIHNlbGYuY2xhc3NfcGFyYW1z Wydob3N0J10sCisgICAgICAgICAgICBzZWxmLmNsYXNzX3BhcmFtc1sncG9ydCddCisgICAgICAg ICkKKworICAgICAgICAjIENoZWNrIHRoZSBleHBlY3RlZCBtZXNzYWdlIHJldHVybmVkCisgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW1wb3J0X2V4cG9ydF9vYmoubWVzc2FnZSwgZXhwZWN0ZWRf bXNnKQorCisgICAgICAgICMgQ2hlY2sgdGhlIGNvbW1hbmQKKyAgICAgICAgb2JqX2RldGFpbHMg PSBpbXBvcnRfZXhwb3J0X29iai5kZXRhaWxzKHNlbGYuY2xhc3NfcGFyYW1zWydjbWQnXSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2xhc3Nf cGFyYW1zWydhcmdzJ10pCisKKyAgICAgICAgc2VsZi5hc3NlcnRJbihzZWxmLmNsYXNzX3BhcmFt c1snc2NoZW1hJ10sIG9ial9kZXRhaWxzKQorICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYuY2xh c3NfcGFyYW1zWyd0YWJsZSddLCBvYmpfZGV0YWlscykKKyAgICAgICAgc2VsZi5hc3NlcnRJbihz ZWxmLmNsYXNzX3BhcmFtc1snZGF0YWJhc2UnXSwgb2JqX2RldGFpbHMpCisgICAgICAgIHNlbGYu YXNzZXJ0SW4oc2VsZi5jbGFzc19wYXJhbXNbJ2hvc3QnXSwgb2JqX2RldGFpbHMpCisgICAgICAg IHNlbGYuYXNzZXJ0SW4oc3RyKHNlbGYuY2xhc3NfcGFyYW1zWydwb3J0J10pLCBvYmpfZGV0YWls cykKKworICAgICAgICBpZiBjb25maWcuU0VSVkVSX01PREUgaXMgRmFsc2U6CisgICAgICAgICAg ICBzZWxmLnNraXBUZXN0KAorICAgICAgICAgICAgICAgICJTa2lwcGluZyB0ZXN0cyBmb3IgU3Rv cmFnZSBtYW5hZ2VyIGluIERlc2t0b3AgbW9kZS4iCisgICAgICAgICAgICApCisgICAgICAgIGVs c2U6CisgICAgICAgICAgICBzdG9yYWdlX2RpciA9IGltcG9ydF9leHBvcnRfb2JqLmN1cnJlbnRf c3RvcmFnZV9kaXIKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5leHBlY3RlZF9z dG9yYWdlX2Rpciwgc3RvcmFnZV9kaXIpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9p bXBvcnRfZXhwb3J0L3Rlc3RzL3Rlc3RfaW1wb3J0X2V4cG9ydF91dGlscy5weSBiL3dlYi9wZ2Fk bWluL3Rvb2xzL2ltcG9ydF9leHBvcnQvdGVzdHMvdGVzdF9pbXBvcnRfZXhwb3J0X3V0aWxzLnB5 Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZTY5Yzk1MjZhCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvaW1wb3J0X2V4cG9ydC90ZXN0cy90ZXN0X2lt cG9ydF9leHBvcnRfdXRpbHMucHkKQEAgLTAsMCArMSwxOTQgQEAKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAy MDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJl IGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisKK2ltcG9ydCB0aW1lCitpbXBvcnQgcmFuZG9tCitpbXBvcnQgc2ltcGxlanNvbiBh cyBqc29uCitpbXBvcnQgdXVpZAoraW1wb3J0IHJlCisKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQg cGFyZW50X25vZGVfZGljdAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKKyAgICBpbXBvcnQgdXRpbHMg YXMgdGFibGVzX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hlbWFf dXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSByZWdy ZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMu XAorICAgIHRhYmxlcy5jb2x1bW5zLnRlc3RzIGltcG9ydCB1dGlscyBhcyBjb2x1bW5zX3V0aWxz CisKKworZGVmIGNyZWF0ZV9pbXBvcnRfZXhwb3J0X2pvYih0ZXN0ZXIsIHVybCwgcGFyYW1zLCBh c3NlcnRfZXF1YWwpOgorICAgICMgQ3JlYXRlIHRoZSBpbXBvcnQvZXhwb3J0IGpvYgorICAgIHJl c3BvbnNlID0gdGVzdGVyLnBvc3QodXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YT1qc29uLmR1bXBzKHBhcmFtcyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50 X3R5cGU9J2h0bWwvanNvbicpCisgICAgYXNzZXJ0X2VxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2Rl LCAyMDApCisgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNv ZGUoJ3V0Zi04JykpCisgICAgam9iX2lkID0gcmVzcG9uc2VfZGF0YVsnZGF0YSddWydqb2JfaWQn XQorICAgIHJldHVybiBqb2JfaWQKKworCitkZWYgcnVuX2ltcG9ydF9leHBvcnRfam9iKHRlc3Rl ciwgam9iX2lkLCBleHBlY3RlZF9wYXJhbXMsIGFzc2VydF9pbiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNzZXJ0X25vdF9pbiwgYXNzZXJ0X2VxdWFsKToKKyAgICBjbnQgPSAwCisgICAg dGhlX3Byb2Nlc3MgPSBOb25lCisgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgaWYgY250ID49IDU6 CisgICAgICAgICAgICBicmVhaworICAgICAgICAjIENoZWNrIHRoZSBwcm9jZXNzIGxpc3QKKyAg ICAgICAgcmVzcG9uc2UxID0gdGVzdGVyLmdldCgnL21pc2MvYmdwcm9jZXNzLz9fPXswfScuZm9y bWF0KAorICAgICAgICAgICAgcmFuZG9tLnJhbmRpbnQoMSwgOTk5OTk5OSkpKQorICAgICAgICBh c3NlcnRfZXF1YWwocmVzcG9uc2UxLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHByb2Nlc3Nf bGlzdCA9IGpzb24ubG9hZHMocmVzcG9uc2UxLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQorCisgICAg ICAgIHRyeToKKyAgICAgICAgICAgIHRoZV9wcm9jZXNzID0gbmV4dCgKKyAgICAgICAgICAgICAg ICBwIGZvciBwIGluIHByb2Nlc3NfbGlzdCBpZiBwWydpZCddID09IGpvYl9pZCkKKyAgICAgICAg ZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHRoZV9wcm9jZXNzID0gTm9uZQorCisgICAg ICAgIGlmIHRoZV9wcm9jZXNzIGFuZCAnZXhlY3V0aW9uX3RpbWUnIGluIHRoZV9wcm9jZXNzOgor ICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgdGltZS5zbGVlcCgwLjUpCisgICAgICAgIGNudCAr PSAxCisKKyAgICBhc3NlcnRfZXF1YWwoJ2V4ZWN1dGlvbl90aW1lJyBpbiB0aGVfcHJvY2Vzcywg VHJ1ZSkKKyAgICBhc3NlcnRfZXF1YWwoJ3N0aW1lJyBpbiB0aGVfcHJvY2VzcywgVHJ1ZSkKKyAg ICBhc3NlcnRfZXF1YWwoJ2V4aXRfY29kZScgaW4gdGhlX3Byb2Nlc3MsIFRydWUpCisgICAgYXNz ZXJ0X2VxdWFsKHRoZV9wcm9jZXNzWydleGl0X2NvZGUnXSBpbiBleHBlY3RlZF9wYXJhbXNbCisg ICAgICAgICdleHBlY3RlZF9leGl0X2NvZGUnCisgICAgXSwgVHJ1ZSkKKworICAgIGlvX2ZpbGUg PSBOb25lCisgICAgaWYgJ2RldGFpbHMnIGluIHRoZV9wcm9jZXNzOgorICAgICAgICBpb19kZXQg PSB0aGVfcHJvY2Vzc1snZGV0YWlscyddCisKKyAgICAgICAgdGVtcF9pb19kZXQgPSBpb19kZXQu dXBwZXIoKQorCisgICAgICAgIGlmIHRlbXBfaW9fZGV0LmZpbmQoJyBUTyAnKSA+IDA6CisgICAg ICAgICAgICBpb19maWxlID0gdGVtcF9pb19kZXRbdGVtcF9pb19kZXQuZmluZCgnIFRPICcpICsg MzpdLnNwbGl0KCcgJylbMV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGZyb21fZmluZCA9 IHRlbXBfaW9fZGV0LmZpbmQoJyBGUk9NICcpICsgNQorICAgICAgICAgICAgaW9fZmlsZSA9IHRl bXBfaW9fZGV0W2Zyb21fZmluZDpdLnNwbGl0KCcgJylbMV0KKworICAgIGlmIGV4cGVjdGVkX3Bh cmFtc1snZXhwZWN0ZWRfY21kX29wdHMnXToKKyAgICAgICAgZm9yIG9wdCBpbiBleHBlY3RlZF9w YXJhbXNbJ2V4cGVjdGVkX2NtZF9vcHRzJ106CisgICAgICAgICAgICBhc3NlcnRfaW4ob3B0LCB0 aGVfcHJvY2Vzc1snZGV0YWlscyddKQorICAgIGlmIGV4cGVjdGVkX3BhcmFtc1snbm90X2V4cGVj dGVkX2NtZF9vcHRzJ106CisgICAgICAgIGZvciBvcHQgaW4gZXhwZWN0ZWRfcGFyYW1zWydub3Rf ZXhwZWN0ZWRfY21kX29wdHMnXToKKyAgICAgICAgICAgIGFzc2VydF9ub3RfaW4ob3B0LCB0aGVf cHJvY2Vzc1snZGV0YWlscyddKQorCisgICAgIyBDaGVjayB0aGUgcHJvY2VzcyBkZXRhaWxzCisg ICAgcF9kZXRhaWxzID0gdGVzdGVyLmdldCgnL21pc2MvYmdwcm9jZXNzL3swfT9fPXsxfScuZm9y bWF0KAorICAgICAgICBqb2JfaWQsIHJhbmRvbS5yYW5kaW50KDEsIDk5OTk5OTkpKQorICAgICkK KyAgICBhc3NlcnRfZXF1YWwocF9kZXRhaWxzLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICBwX2Rl dGFpbHMgPSB0ZXN0ZXIuZ2V0KCcvbWlzYy9iZ3Byb2Nlc3MvezB9L3sxfS97Mn0vP189ezN9Jy5m b3JtYXQoCisgICAgICAgIGpvYl9pZCwgMCwgMCwgcmFuZG9tLnJhbmRpbnQoMSwgOTk5OTk5OSkp CisgICAgKQorICAgIGFzc2VydF9lcXVhbChwX2RldGFpbHMuc3RhdHVzX2NvZGUsIDIwMCkKKyAg ICBwX2RldGFpbHNfZGF0YSA9IGpzb24ubG9hZHMocF9kZXRhaWxzLmRhdGEuZGVjb2RlKCd1dGYt OCcpKQorCisgICAgY250ID0gMAorICAgICMgUmV0cmlldmUgdGhlIGlvIGpvYiBwcm9jZXNzIGxv Z3MKKyAgICB3aGlsZSBUcnVlOgorICAgICAgICBvdXQsIGVyciwgc3RhdHVzID0gZ2V0X3BhcmFt cyhwX2RldGFpbHNfZGF0YSkKKyAgICAgICAgaWYgc3RhdHVzIG9yIGNudCA+PSA1OgorICAgICAg ICAgICAgYnJlYWsKKworICAgICAgICBwX2RldGFpbHMgPSB0ZXN0ZXIuZ2V0KAorICAgICAgICAg ICAgJy9taXNjL2JncHJvY2Vzcy97MH0vezF9L3syfS8/Xz17M30nLmZvcm1hdCgKKyAgICAgICAg ICAgICAgICBqb2JfaWQsIG91dCwgZXJyLCByYW5kb20ucmFuZGludCgxLCA5OTk5OTk5KSkKKyAg ICAgICAgKQorICAgICAgICBhc3NlcnRfZXF1YWwocF9kZXRhaWxzLnN0YXR1c19jb2RlLCAyMDAp CisgICAgICAgIHBfZGV0YWlsc19kYXRhID0ganNvbi5sb2FkcyhwX2RldGFpbHMuZGF0YS5kZWNv ZGUoJ3V0Zi04JykpCisKKyAgICAgICAgY250ICs9IDEKKyAgICAgICAgdGltZS5zbGVlcCgxKQor CisgICAgIyBDaGVjayB0aGUgam9iIGlzIGNvbXBsZXRlLgorICAgIGlvX2FjayA9IHRlc3Rlci5w dXQoJy9taXNjL2JncHJvY2Vzcy97MH0nLmZvcm1hdChqb2JfaWQpKQorICAgIGFzc2VydF9lcXVh bChpb19hY2suc3RhdHVzX2NvZGUsIDIwMCkKKyAgICBpb19hY2tfcmVzID0ganNvbi5sb2Fkcyhp b19hY2suZGF0YS5kZWNvZGUoJ3V0Zi04JykpCisKKyAgICBhc3NlcnRfZXF1YWwoaW9fYWNrX3Jl c1snc3VjY2VzcyddLCAxKQorCisgICAgcmV0dXJuIGlvX2ZpbGUKKworCitkZWYgZ2V0X3BhcmFt cyhkYXRhKToKKyAgICBvdXQgPSAwCisgICAgb3V0X2RvbmUgPSBGYWxzZQorICAgIGVyciA9IDAK KyAgICBlcnJfZG9uZSA9IEZhbHNlCisgICAgaWYgJ291dCcgaW4gZGF0YToKKyAgICAgICAgb3V0 ID0gZGF0YVsnb3V0J10gYW5kIGRhdGFbJ291dCddWydwb3MnXQorCisgICAgICAgIGlmICdkb25l JyBpbiBkYXRhWydvdXQnXToKKyAgICAgICAgICAgIG91dF9kb25lID0gZGF0YVsnb3V0J11bJ2Rv bmUnXQorCisgICAgaWYgJ2VycicgaW4gZGF0YToKKyAgICAgICAgZXJyID0gZGF0YVsnZXJyJ10g YW5kIGRhdGFbJ2VyciddWydwb3MnXQorCisgICAgICAgIGlmICdkb25lJyBpbiBkYXRhWydlcnIn XToKKyAgICAgICAgICAgIGVycl9kb25lID0gZGF0YVsnZXJyJ11bJ2RvbmUnXQorCisgICAgcmV0 dXJuIG91dCwgZXJyLCAob3V0X2RvbmUgYW5kIGVycl9kb25lKQorCisKK2RlZiBzZXR1cF9leHBv cnRfZGF0YShzb2JqZWN0KToKKyAgICAjIENyZWF0ZSBkYiBjb25uZWN0aW9uCisgICAgc29iamVj dC5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQor CisgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAgICBz b2JqZWN0LnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQorICAgIHNvYmplY3Qu ZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQorICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxz LmNvbm5lY3RfZGF0YWJhc2Uoc29iamVjdCwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29iamVjdC5zZXJ2ZXJfaWQsIHNv YmplY3QuZGJfaWQpCisgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBh ZGQgYSB0YWJsZS4iKQorCisgICAgIyBDcmVhdGUgc2NoZW1hCisgICAgc29iamVjdC5zY2hlbWFf aWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICBzb2JqZWN0LnNjaGVtYV9uYW1lID0g c2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFf dXRpbHMudmVyaWZ5X3NjaGVtYXMoc29iamVjdC5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvYmplY3QuZGJfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29iamVjdC5zY2hlbWFf bmFtZSkKKworICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSB0YWJsZS4iKQorCisgICAg IyBDcmVhdGUgdGFibGUKKyAgICBzb2JqZWN0LnRhYmxlX25hbWUgPSAidGFibGVfdG9fZXhwb3J0 XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgIHNvYmplY3QudGFibGVfaWQgPSB0 YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNvYmplY3Quc2VydmVyLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvYmplY3QuZGJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2JqZWN0LnNjaGVt YV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNvYmplY3QudGFibGVfbmFtZSkKKworICAgICMgQ3JlYXRlIGNvbHVtbgorICAgIHNvYmplY3Qu Y29sdW1uX25hbWUgPSAiY29sdW1uX3RvX2V4cG9ydF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlb MTo4XSkKKyAgICBzb2JqZWN0LmNvbHVtbl9pZCA9IGNvbHVtbnNfdXRpbHMuY3JlYXRlX2NvbHVt bihzb2JqZWN0LnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzb2JqZWN0LmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc29iamVjdC5zY2hlbWFfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2JqZWN0LnRhYmxl X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc29iamVjdC5jb2x1bW5fbmFtZSkKKworICAgICMgQ3JlYXRlIGNvbHVtbgorICAgIHNvYmpl Y3QuY29sdW1uX25hbWVfMSA9ICJjb2x1bW5fdG9fZXhwb3J0XyVzIiAlIChzdHIodXVpZC51dWlk NCgpKVsxOjhdKQorICAgIHNvYmplY3QuY29sdW1uX2lkXzEgPSBjb2x1bW5zX3V0aWxzLmNyZWF0 ZV9jb2x1bW4oc29iamVjdC5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzb2JqZWN0LmRiX25hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2JqZWN0LnNjaGVtYV9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c29iamVjdC50YWJsZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc29iamVjdC5jb2x1bW5fbmFtZV8xKQorCisgICAgcmV0dXJuIE5v bmUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3N0b3JhZ2VfbWFuYWdlci9fX2luaXRf Xy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3N0b3JhZ2VfbWFuYWdlci9fX2luaXRfXy5weQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjExODUzNzVkZQotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3N0b3JhZ2VfbWFuYWdlci9fX2luaXRfXy5weQpAQCAt MCwwICsxLDc1IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3Jl U1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERl dmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9z dGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisiIiJBIGJsdWVwcmludCBt b2R1bGUgaW1wbGVtZW50aW5nIHRoZSBzdG9yYWdlIG1hbmFnZXIgZnVuY3Rpb25hbGl0eSIiIgor CitpbXBvcnQgc2ltcGxlanNvbiBhcyBqc29uCitpbXBvcnQgb3MKKworZnJvbSBmbGFzayBpbXBv cnQgdXJsX2ZvciwgUmVzcG9uc2UsIHJlbmRlcl90ZW1wbGF0ZSwgcmVxdWVzdCwgY3VycmVudF9h cHAKK2Zyb20gZmxhc2tfYmFiZWxleCBpbXBvcnQgZ2V0dGV4dCBhcyBfCitmcm9tIGZsYXNrX3Nl Y3VyaXR5IGltcG9ydCBsb2dpbl9yZXF1aXJlZCwgY3VycmVudF91c2VyCitmcm9tIHBnYWRtaW4u bWlzYy5iZ3Byb2Nlc3MucHJvY2Vzc2VzIGltcG9ydCBCYXRjaFByb2Nlc3MsIElQcm9jZXNzRGVz YworZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBQZ0FkbWluTW9kdWxlLCBnZXRfc3RvcmFnZV9k aXJlY3RvcnksIGh0bWwsIFwKKyAgICBmc19zaG9ydF9wYXRoLCBkb2N1bWVudF9kaXIsIElTX1dJ TiwgZG9lc191dGlsaXR5X2V4aXN0Citmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFr ZV9qc29uX3Jlc3BvbnNlLCBiYWRfcmVxdWVzdAorCitmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVG QVVMVF9EUklWRVIKK2Zyb20gcGdhZG1pbi5tb2RlbCBpbXBvcnQgU2VydmVyCitmcm9tIHBnYWRt aW4udXRpbHMuY29uc3RhbnRzIGltcG9ydCBNSU1FVFlQRV9BUFBfSlMKKworTU9EVUxFX05BTUUg PSAnc3RvcmFnZV9tYW5hZ2VyJworCisKK2NsYXNzIFN0b3JhZ2VNYW5hZ2VyTW9kdWxlKFBnQWRt aW5Nb2R1bGUpOgorICAgICIiIgorICAgIGNsYXNzIFN0b3JhZ2VNYW5hZ2VyTW9kdWxlKFBnQWRt aW5Nb2R1bGUpCisKKyAgICAgICAgQSBtb2R1bGUgY2xhc3MgZm9yIG1hbmlwdWxhdGluZyBmaWxl IG9wZXJhdGlvbiB3aGljaCBpcyBkZXJpdmVkIGZyb20KKyAgICAgICAgUGdBZG1pbk1vZHVsZS4K KyAgICAiIiIKKworICAgIExBQkVMID0gXygnU3RvcmFnZSBNYW5hZ2VyJykKKworICAgIGRlZiBn ZXRfb3duX2phdmFzY3JpcHRzKHNlbGYpOgorICAgICAgICAiIiIiCisgICAgICAgIFJldHVybnM6 CisgICAgICAgICAgICBsaXN0OiBqcyBmaWxlcyB1c2VkIGJ5IHRoaXMgbW9kdWxlCisgICAgICAg ICIiIgorICAgICAgICBzY3JpcHRzID0gbGlzdCgpCisgICAgICAgIGZvciBuYW1lLCBzY3JpcHQg aW4gWworICAgICAgICAgICAgWydwZ2FkbWluLnRvb2xzLnN0b3JhZ2VfbWFuYWdlcicsICdqcy9z dG9yYWdlX21hbmFnZXInXQorICAgICAgICBdOgorICAgICAgICAgICAgc2NyaXB0cy5hcHBlbmQo eworICAgICAgICAgICAgICAgICduYW1lJzogbmFtZSwKKyAgICAgICAgICAgICAgICAncGF0aCc6 IHVybF9mb3IoJ3N0b3JhZ2VfbWFuYWdlci5pbmRleCcpICsgc2NyaXB0LAorICAgICAgICAgICAg ICAgICd3aGVuJzogTm9uZQorICAgICAgICAgICAgfSkKKworICAgICAgICByZXR1cm4gc2NyaXB0 cworCisKK2JsdWVwcmludCA9IFN0b3JhZ2VNYW5hZ2VyTW9kdWxlKE1PRFVMRV9OQU1FLCBfX25h bWVfXykKKworCitAYmx1ZXByaW50LnJvdXRlKCIvIikKK0Bsb2dpbl9yZXF1aXJlZAorZGVmIGlu ZGV4KCk6CisgICAgcmV0dXJuIGJhZF9yZXF1ZXN0KGVycm9ybXNnPV8oIlRoaXMgVVJMIGNhbm5v dCBiZSBjYWxsZWQgZGlyZWN0bHkuIikpCisKKworQGJsdWVwcmludC5yb3V0ZSgiL2pzL3N0b3Jh Z2VfbWFuYWdlci5qcyIpCitAbG9naW5fcmVxdWlyZWQKK2RlZiBzY3JpcHQoKToKKyAgICAiIiJy ZW5kZXIgdGhlIGltcG9ydC9leHBvcnQgamF2YXNjcmlwdCBmaWxlIiIiCisgICAgcmV0dXJuIFJl c3BvbnNlKAorICAgICAgICByZXNwb25zZT1yZW5kZXJfdGVtcGxhdGUoInN0b3JhZ2VfbWFuYWdl ci9qcy9zdG9yYWdlX21hbmFnZXIuanMiLCBfPV8pLAorICAgICAgICBzdGF0dXM9MjAwLAorICAg ICAgICBtaW1ldHlwZT1NSU1FVFlQRV9BUFBfSlMKKyAgICApCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi90b29scy9zdG9yYWdlX21hbmFnZXIvc3RhdGljL2pzL3N0b3JhZ2VfbWFuYWdlci5qcyBi L3dlYi9wZ2FkbWluL3Rvb2xzL3N0b3JhZ2VfbWFuYWdlci9zdGF0aWMvanMvc3RvcmFnZV9tYW5h Z2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMWY1YjFmZjQyCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3RvcmFnZV9tYW5hZ2VyL3N0YXRp Yy9qcy9zdG9yYWdlX21hbmFnZXIuanMKQEAgLTAsMCArMSw5MyBAQAorLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8vIHBn QWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAy MDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisvLyBUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKy8vCisvLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworaW1wb3J0IHsg c2V0X2xhc3RfdHJhdmVyc2VkX2RpciwgZ2V0VHJhbnNJZCB9IGZyb20gJy4uLy4uLy4uLy4uL21p c2MvZmlsZV9tYW5hZ2VyL3N0YXRpYy9qcy9oZWxwZXJzJzsKKworZGVmaW5lKFsKKyAgJ3NvdXJj ZXMvZ2V0dGV4dCcsICdzb3VyY2VzL3VybF9mb3InLCAnanF1ZXJ5JywgJ3VuZGVyc2NvcmUnLCAn cGdhZG1pbi5hbGVydGlmeWpzJywKKyAgJ3NvdXJjZXMvcGdhZG1pbicsICdwZ2FkbWluLmJyb3dz ZXInLCAnc291cmNlcy9jc3JmJywgJ3BnYWRtaW4uZmlsZV9tYW5hZ2VyJywKK10sIGZ1bmN0aW9u ICgKKyAgZ2V0dGV4dCwgdXJsX2ZvciwgJCwgXywgYWxlcnRpZnksIHBnQWRtaW4sIHBnQnJvd3Nl ciwgY3NyZlRva2VuCispIHsKKworICBwZ0FkbWluID0gcGdBZG1pbiB8fCB3aW5kb3cucGdBZG1p biB8fCB7fTsKKyAgdmFyIGlzU2VydmVyTW9kZSA9IChmdW5jdGlvbigpIHsgcmV0dXJuIHBnQWRt aW4uc2VydmVyX21vZGUgPT0gJ1RydWUnOyB9KSgpOworCisgIHZhciBwZ1Rvb2xzID0gcGdBZG1p bi5Ub29scyA9IHBnQWRtaW4uVG9vbHMgfHwge307CisKKyAgaWYoIWlzU2VydmVyTW9kZSkgewor ICAgIHJldHVybjsKKyAgfQorCisgIC8vIFJldHVybiBiYWNrLCB0aGlzIGhhcyBiZWVuIGNhbGxl ZCBtb3JlIHRoYW4gb25jZQorICBpZiAocGdBZG1pbi5Ub29scy5zdG9yYWdlX21hbmFnZXIpCisg ICAgcmV0dXJuIHBnQWRtaW4uVG9vbHMuc3RvcmFnZV9tYW5hZ2VyOworCisgIHBnVG9vbHMuc3Rv cmFnZV9tYW5hZ2VyID0geworICAgIGluaXQ6IGZ1bmN0aW9uICgpIHsKKyAgICAgIC8vIFdlIGRv IG5vdCB3YW50IHRvIGluaXRpYWxpemUgdGhlIG1vZHVsZSBtdWx0aXBsZSB0aW1lcy4KKyAgICAg IGlmICh0aGlzLmluaXRpYWxpemVkKQorICAgICAgICByZXR1cm47CisKKyAgICAgIHRoaXMuaW5p dGlhbGl6ZWQgPSB0cnVlOworICAgICAgY3NyZlRva2VuLnNldFBHQ1NSRlRva2VuKHBnQWRtaW4u Y3NyZl90b2tlbl9oZWFkZXIsIHBnQWRtaW4uY3NyZl90b2tlbik7CisKKyAgICAgIHZhciBzdG9y YWdlX21hbmFnZXIgPSB0aGlzLmNhbGxiYWNrX3N0b3JhZ2VfbWFuYWdlci5iaW5kKHRoaXMpOwor CisgICAgICBwZ0Jyb3dzZXIuRXZlbnRzLm9uKAorICAgICAgICAncGdhZG1pbjp0b29sczpzdG9y YWdlX21hbmFnZXInLCBzdG9yYWdlX21hbmFnZXIKKyAgICAgICk7CisKKyAgICAgIC8vIERlZmlu ZSB0aGUgbm9kZXMgb24gd2hpY2ggdGhlIG1lbnVzIHRvIGJlIGFwcGVhcgorICAgICAgdmFyIG1l bnVzID0gW3sKKyAgICAgICAgbmFtZTogJ3N0b3JhZ2VfbWFuYWdlcicsCisgICAgICAgIG1vZHVs ZTogdGhpcywKKyAgICAgICAgYXBwbGllczogWyd0b29scyddLAorICAgICAgICBjYWxsYmFjazog J2NhbGxiYWNrX3N0b3JhZ2VfbWFuYWdlcicsCisgICAgICAgIHByaW9yaXR5OiAyLAorICAgICAg ICBsYWJlbDogZ2V0dGV4dCgnU3RvcmFnZSBNYW5hZ2VyLi4uJyksCisgICAgICAgIGVuYWJsZTog dHJ1ZSwKKyAgICAgIH1dOworCisgICAgICBwZ0Jyb3dzZXIuYWRkX21lbnVzKG1lbnVzKTsKKyAg ICB9LAorCisgICAgLyoKKyAgICAgIE9wZW4gdGhlIGRpYWxvZyBmb3IgdGhlIHN0b3JhZ2UgZnVu Y3Rpb25hbGl0eQorICAgICovCisgICAgY2FsbGJhY2tfc3RvcmFnZV9tYW5hZ2VyOiBmdW5jdGlv biAocGF0aCkgeworCisgICAgICB2YXIgcGFyYW1zID0geworICAgICAgICBzdXBwb3J0ZWRfdHlw ZXM6IFsnc3FsJywgJ2NzdicsICcqJ10sCisgICAgICAgIGRpYWxvZ190eXBlOiAnc3RvcmFnZV9k aWFsb2cnLAorICAgICAgICBkaWFsb2dfdGl0bGU6ICdTdG9yYWdlIE1hbmFnZXIuLi4nLAorICAg ICAgICBidG5fcHJpbWFyeTogdW5kZWZpbmVkLAorICAgICAgfTsKKworICAgICAgaWYgKCFfLmlz VW5kZWZpbmVkKHBhdGgpICYmICFfLmlzTnVsbChwYXRoKSAmJiAhXy5pc0VtcHR5KHBhdGgpKSB7 CisKKyAgICAgICAgdmFyIHRyYW5zSWQgPSBnZXRUcmFuc0lkKEpTT04uc3RyaW5naWZ5KHBhcmFt cykpOworICAgICAgICB2YXIgdF9yZXM7CisgICAgICAgIGlmICh0cmFuc0lkLnJlYWR5U3RhdGUg PT0gNCkgeworICAgICAgICAgIHRfcmVzID0gSlNPTi5wYXJzZSh0cmFuc0lkLnJlc3BvbnNlVGV4 dCk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHRyYW5zX2lkID0gXy5pc1VuZGVmaW5lZCh0X3Jl cykgPyAwIDogdF9yZXMuZGF0YS5maWxlVHJhbnNJZDsKKworICAgICAgICBzZXRfbGFzdF90cmF2 ZXJzZWRfZGlyKHsncGF0aCc6IHBhdGh9LCB0cmFuc19pZCk7CisgICAgICAgIHBnQWRtaW4uRmls ZU1hbmFnZXIuaW5pdCgpOworICAgICAgICBwZ0FkbWluLkZpbGVNYW5hZ2VyLnNob3dfZGlhbG9n KHBhcmFtcyk7CisgICAgICB9CisgICAgICBlbHNlIHsKKyAgICAgICAgcGdBZG1pbi5GaWxlTWFu YWdlci5pbml0KCk7CisgICAgICAgIHBnQWRtaW4uRmlsZU1hbmFnZXIuc2hvd19kaWFsb2cocGFy YW1zKTsKKyAgICAgIH0KKyAgICB9LAorICB9OworCisgIHJldHVybiBwZ0FkbWluLlRvb2xzLnN0 b3JhZ2VfbWFuYWdlcjsKK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlw dC9maWxlX21hbmFnZXIvZmlsZV9tYW5hZ2VyX3NwZWNzLmpzIGIvd2ViL3JlZ3Jlc3Npb24vamF2 YXNjcmlwdC9maWxlX21hbmFnZXIvZmlsZV9tYW5hZ2VyX3NwZWNzLmpzCmluZGV4IGRlNGMxZGU2 OS4uOGU4NTI1ZmJjIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2ZpbGVf bWFuYWdlci9maWxlX21hbmFnZXJfc3BlY3MuanMKKysrIGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNj cmlwdC9maWxlX21hbmFnZXIvZmlsZV9tYW5hZ2VyX3NwZWNzLmpzCkBAIC0xNDksNCArMTQ5LDIy IEBAIGRlc2NyaWJlKCdmaWxlU2VsZWN0RGlhbG9nJywgZnVuY3Rpb24gKCkgewogICAgICAgZXhw ZWN0KEFsZXJ0aWZ5LmNyZWF0ZU1vZGVEbGcpLnRvSGF2ZUJlZW5DYWxsZWQoKTsKICAgICB9KTsK ICAgfSk7CisKKyAgZGVzY3JpYmUoJ1doZW4gZGlhbG9nIGlzIGNhbGxlZCBmb3Igc3RvcmFnZSBm aWxlJywgKCkgPT4geworICAgIGl0KCdTdG9yYWdlIGZpbGUgZGlhbG9nJywgZnVuY3Rpb24oKSB7 CisgICAgICBwYXJhbXMgPSB7CisgICAgICAgICdkaWFsb2dfdGl0bGUnOiAnU3RvcmFnZSBNYW5h Z2VyJywKKyAgICAgICAgJ2RpYWxvZ190eXBlJzogJ3N0b3JhZ2VfZGlhbG9nJywKKyAgICAgIH07 CisKKyAgICAgIHNweU9uKEFsZXJ0aWZ5LCAnZmlsZVN0b3JhZ2VEbGcnKS5hbmQuY2FsbEZha2Uo ZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMucmVzaXplVG8gPSBmdW5jdGlvbigpIHt9OworICAg ICAgICByZXR1cm4gdGhpczsKKyAgICAgIH0pOworCisgICAgICBwZ0FkbWluLkZpbGVNYW5hZ2Vy LnNob3dfZGlhbG9nKHBhcmFtcyk7CisKKyAgICAgIGV4cGVjdChBbGVydGlmeS5maWxlU3RvcmFn ZURsZykudG9IYXZlQmVlbkNhbGxlZCgpOworICAgIH0pOworICB9KTsKIH0pOwpkaWZmIC0tZ2l0 IGEvd2ViL3dlYnBhY2suY29uZmlnLmpzIGIvd2ViL3dlYnBhY2suY29uZmlnLmpzCmluZGV4IGE1 MDU4ODU1Ni4uYzlkZGY4MGMyIDEwMDY0NAotLS0gYS93ZWIvd2VicGFjay5jb25maWcuanMKKysr IGIvd2ViL3dlYnBhY2suY29uZmlnLmpzCkBAIC01MDAsNiArNTAwLDcgQEAgbW9kdWxlLmV4cG9y dHMgPSBbewogICAgICAgICAnLHBnYWRtaW4udG9vbHMuZGVidWdnZXIuZGlyZWN0JyArCiAgICAg ICAgICcscGdhZG1pbi5ub2RlLnBnYV9qb2InICsKICAgICAgICAgJyxwZ2FkbWluLnRvb2xzLnNj aGVtYV9kaWZmJyArCisgICAgICAgICcscGdhZG1pbi50b29scy5zdG9yYWdlX21hbmFnZXInICsK ICAgICAgICAgJyxwZ2FkbWluLnRvb2xzLnNlYXJjaF9vYmplY3RzJywKICAgICAgIH0sCiAgICAg fSwgewpkaWZmIC0tZ2l0IGEvd2ViL3dlYnBhY2suc2hpbS5qcyBiL3dlYi93ZWJwYWNrLnNoaW0u anMKaW5kZXggZGExOWI2ODk3Li4xNTVmYjllYWYgMTAwNjQ0Ci0tLSBhL3dlYi93ZWJwYWNrLnNo aW0uanMKKysrIGIvd2ViL3dlYnBhY2suc2hpbS5qcwpAQCAtMjc0LDYgKzI3NCw3IEBAIHZhciB3 ZWJwYWNrU2hpbUNvbmZpZyA9IHsKICAgICAncGdhZG1pbi50b29scy5zY2hlbWFfZGlmZic6IHBh dGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vdG9vbHMvc2NoZW1hX2RpZmYvc3RhdGljL2pz L3NjaGVtYV9kaWZmJyksCiAgICAgJ3BnYWRtaW4udG9vbHMuc2NoZW1hX2RpZmZfdWknOiBwYXRo LmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL3N0YXRpYy9qcy9z Y2hlbWFfZGlmZl91aScpLAogICAgICdwZ2FkbWluLnRvb2xzLnNlYXJjaF9vYmplY3RzJzogcGF0 aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi90b29scy9zZWFyY2hfb2JqZWN0cy9zdGF0aWMv anMvc2VhcmNoX29iamVjdHMnKSwKKyAgICAncGdhZG1pbi50b29scy5zdG9yYWdlX21hbmFnZXIn OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL3Rvb2xzL3N0b3JhZ2VfbWFuYWdlci9z dGF0aWMvanMvc3RvcmFnZV9tYW5hZ2VyJyksCiAgICAgJ3BnYWRtaW4uc2VhcmNoX29iamVjdHMn OiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL3Rvb2xzL3NlYXJjaF9vYmplY3RzL3N0 YXRpYy9qcycpLAogICAgICdwZ2FkbWluLnRvb2xzLnVzZXJfbWFuYWdlbWVudCc6IHBhdGguam9p bihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vdG9vbHMvdXNlcl9tYW5hZ2VtZW50L3N0YXRpYy9qcy91 c2VyX21hbmFnZW1lbnQnKSwKICAgICAncGdhZG1pbi51c2VyX21hbmFnZW1lbnQuY3VycmVudF91 c2VyJzogJy91c2VyX21hbmFnZW1lbnQvY3VycmVudF91c2VyJywK --000000000000de97fe05b253b8f5--