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 1k96C6-0002A8-9V for pgadmin-hackers@arkaria.postgresql.org; Fri, 21 Aug 2020 12:30:54 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1k96C5-0003VY-2T for pgadmin-hackers@arkaria.postgresql.org; Fri, 21 Aug 2020 12:30:53 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1k96C4-0003VQ-GX for pgadmin-hackers@lists.postgresql.org; Fri, 21 Aug 2020 12:30:52 +0000 Received: from mail-pg1-x531.google.com ([2607:f8b0:4864:20::531]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1k96C0-000297-5i for pgadmin-hackers@postgresql.org; Fri, 21 Aug 2020 12:30:51 +0000 Received: by mail-pg1-x531.google.com with SMTP id j21so932088pgi.9 for ; Fri, 21 Aug 2020 05:30:46 -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=0YwAvywK32b+O6BxoBdpVZ2mIvctN+zPNOikQd6VZNU=; b=YPHM4wN1QKUsXqcaVb8FVcUasOzDUqb0GL1EHyq+MUGRY0yi+PqFggjmqpRfdXg5C5 cqK98RhWkJulb3K4fyU7Yqm4xDYN2JkFf90Qvpg8v5pTuP4o3icAFs6etX8T9RGPSM11 zOzoa9aAdbgGiISF8JOPwqhP7UExCXAKujHd3bPB1DnSO6iMwUzD0AOeytZsqrexB1PB I3IYWW/LSn5m38h14jviPijJzaowTkK8pTkc//i9oQyO5cIyBheDKVeEyVR2JrGdzcU8 gLba9YJJ9uFmh8Di0xvPP+YjIvAUvE9vlDw+T6uUCq4wnTEURqPry6W9qZrhXZA6V0dB YLWQ== 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=0YwAvywK32b+O6BxoBdpVZ2mIvctN+zPNOikQd6VZNU=; b=sD+/8ArBaFiGa+AgxWkrLrqGZAuVKJ1kqeYP07Pc/dS03XB3a385yagT0MxFhSCeEb S4JF01B8S2NznQbfD2dr3yAgYecxlPd+v9VpTFNlbt0CrywgTG02P+B/H0ubcJ0n7HfZ w6nItRoMJq4EaEzrSG2wciz4KK4sj97W9o+ExlWRvY1z2GWzUoI6eOneqZFGXqJVKa4R HFDoNX0qNliTe0Dy/VjQmNqNS28wVPEbkob83tQ748E5+0sSg4X84LNP/CCouFfASBFR lTiGiI1BN9U9xhLXHsRNtAdkNrsbvA6lkqiHfGIwHL6B7dmN7KApMJEeV63Z88OZybOB cqZA== X-Gm-Message-State: AOAM532u8onAc40X384AJtKGAoFqb7PQd5X6P8RhtA1fmO/VOQ884ueu HYk+JDPvIDk4yUbJjnSjM1ww4ZFRBu6HQKWSzdRN0WAOz2lwhDMViQ3TSPvhyLCRjR3tWgI5ZLs AJWgC9ow9klWhRXSegmI7r5w2nuwlutAVSDK9L9D4agxrSJssCpu3PGB4T+scCFfRfSkuYfNRI+ vM+/zs65PNMdAblELUizoJ3YJrPdXsa9sUQRQbyiEXjHuXzyFAz1fP3562Jw== X-Google-Smtp-Source: ABdhPJx3my/NlvTHETbNNZK3pPGxGNb+4g/1WElxea67PDPa7iiEKmndA+ribyZqOVa9dSh2xuKNusd1uMTg0yQTQkI= X-Received: by 2002:aa7:9682:: with SMTP id f2mr2356646pfk.75.1598013044663; Fri, 21 Aug 2020 05:30:44 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Pradip Parkale Date: Fri, 21 Aug 2020 18:00:33 +0530 Message-ID: Subject: Re: [pgAdmin][RM4979]: Configuration files for data sources or similar. To: Akshay Joshi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000dff95705ad6267b6" 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 --000000000000dff95705ad6267b6 Content-Type: multipart/alternative; boundary="000000000000dff95305ad6267b4" --000000000000dff95305ad6267b4 Content-Type: text/plain; charset="UTF-8" Hi Akshay, Please find the updated patch. On Fri, Aug 21, 2020 at 1:55 PM Akshay Joshi wrote: > Hi Pradip > > The patch is not applied, can you please rebase and send it again. > > On Thu, Aug 20, 2020 at 3:58 PM Pradip Parkale < > pradip.parkale@enterprisedb.com> wrote: > >> Hi Hackers, >> >> Please find the attached patch for the shared server implementation. >> >> Few key points: >> >> 1. The admin who is the owner of the server user can share the server >> with other users. >> 2. This option will be available only for admin users. >> 3. If the user doesn't want to see the shared server then the option >> to hide the shared server is available in preferences. >> 4. The user who is not the owner of the server, can't delete the >> shared server and server group. >> 5. This option is only available in server mode. >> >> >> -- >> Thanks & Regards, >> Pradip Parkale >> Software Engineer | EnterpriseDB Corporation >> > > > -- > *Thanks & Regards* > *Akshay Joshi* > *pgAdmin Hacker | Sr. Software Architect* > *EDB Postgres * > > *Mobile: +91 976-788-8246* > -- Thanks & Regards, Pradip Parkale Software Engineer | EnterpriseDB Corporation --000000000000dff95305ad6267b4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Akshay,
Please find the updated patch.
<= br>
On Fri,= Aug 21, 2020 at 1:55 PM Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi Pradip

T= he patch is not applied, can you please rebase and send it again.
=

= On Thu, Aug 20, 2020 at 3:58 PM Pradip Parkale <pradip.parkale@enterprisedb.co= m> wrote:
Hi Hack= ers,

Please find the attached patch for the shared server impleme= ntation.

Few key points:
  1. The admin who is the owner of t= he server user can share the server with other users.=C2=A0
  2. = This option will be available only for adm= in users.=C2=A0
  3. If the user= doesn't want to see the shared server then the option to hide the shar= ed server is available=C2=A0in preferences.
  4. The user who is not the owner of the server, can't del= ete the shared server and server group.
  5. This option is only available in server mode.
=

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


--
Thanks & R= egards
Akshay Joshi
pgAdmin Hacker | Sr. Software Architect=
= EDB Postgres
Mobile: +91 976-788-8246



--
Thanks & Regards,
Pradip Park= ale
Software Engineer | EnterpriseDB Corporation
--000000000000dff95305ad6267b4-- --000000000000dff95705ad6267b6 Content-Type: application/octet-stream; name="RM4979_v2.patch" Content-Disposition: attachment; filename="RM4979_v2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ke47osmn0 ZGlmZiAtLWdpdCBhL3dlYi9taWdyYXRpb25zL3ZlcnNpb25zL2EwOTFjOTYxMWQyMF8ucHkgYi93 ZWIvbWlncmF0aW9ucy92ZXJzaW9ucy9hMDkxYzk2MTFkMjBfLnB5Cm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMC4uZDlkYTJiMTBmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL21p Z3JhdGlvbnMvdmVyc2lvbnMvYTA5MWM5NjExZDIwXy5weQpAQCAtMCwwICsxLDcyIEBACisKKyIi ImVtcHR5IG1lc3NhZ2UKKworUmV2aXNpb24gSUQ6IGEwOTFjOTYxMWQyMAorUmV2aXNlczogODQ3 MDAxMzliZWIwCitDcmVhdGUgRGF0ZTogMjAyMC0wNy0xNCAxNzoyMDoyMi43MDU3MzcKKworIiIi Citmcm9tIHBnYWRtaW4ubW9kZWwgaW1wb3J0IGRiCisKKworIyByZXZpc2lvbiBpZGVudGlmaWVy cywgdXNlZCBieSBBbGVtYmljLgorcmV2aXNpb24gPSAnYTA5MWM5NjExZDIwJworZG93bl9yZXZp c2lvbiA9ICc4NDcwMDEzOWJlYjAnCiticmFuY2hfbGFiZWxzID0gTm9uZQorZGVwZW5kc19vbiA9 IE5vbmUKKworCitkZWYgdXBncmFkZSgpOgorICAgIGRiLmVuZ2luZS5leGVjdXRlKAorICAgICAg ICAnQUxURVIgVEFCTEUgc2VydmVyIEFERCBDT0xVTU4gc2hhcmVkIEJPT0xFQU4nCisgICAgKQor CisgICAgZGIuZW5naW5lLmV4ZWN1dGUoIiIiCisgICAgICAgICAgICBDUkVBVEUgVEFCTEUgc2hh cmVkc2VydmVyICgKKyAgICAgICAgICAgIGlkCUlOVEVHRVIgTk9UIE5VTEwsCisgICAgICAgICAg ICB1c2VyX2lkCUlOVEVHRVIgTk9UIE5VTEwsCisgICAgICAgICAgICBzZXJ2ZXJfb3duZXIgVkFS Q0hBUig2NCksCisgICAgICAgICAgICBzZXJ2ZXJncm91cF9pZAlJTlRFR0VSIE5PVCBOVUxMLAor ICAgICAgICAgICAgbmFtZQlWQVJDSEFSKDEyOCkgTk9UIE5VTEwsCisgICAgICAgICAgICBob3N0 CVZBUkNIQVIoMTI4KSwKKyAgICAgICAgICAgIHBvcnQJSU5URUdFUiBOT1QgTlVMTCBDSEVDSyhw b3J0ID49IDEgQU5EIHBvcnQgPD0gNjU1MzQpLAorICAgICAgICAgICAgbWFpbnRlbmFuY2VfZGIJ VkFSQ0hBUig2NCksCisgICAgICAgICAgICB1c2VybmFtZQlWQVJDSEFSKDY0KSwKKyAgICAgICAg ICAgIHBhc3N3b3JkCVZBUkNIQVIoNjQpLAorICAgICAgICAgICAgcm9sZQlWQVJDSEFSKDY0KSwK KyAgICAgICAgICAgIHNzbF9tb2RlCVZBUkNIQVIoMTYpIE5PVCBOVUxMIENIRUNLKHNzbF9tb2Rl IElOCisgICAgICAgICAgICAgICAgKCAnYWxsb3cnICwgJ3ByZWZlcicgLCAncmVxdWlyZScgLCAn ZGlzYWJsZScgLAorICAgICAgICAgICAgICAgICAgJ3ZlcmlmeS1jYScgLCAndmVyaWZ5LWZ1bGwn ICkKKyAgICAgICAgICAgICksCisgICAgICAgICAgICBjb21tZW50CVZBUkNIQVIoMTAyNCksCisg ICAgICAgICAgICBkaXNjb3ZlcnlfaWQJVkFSQ0hBUigxMjgpLAorICAgICAgICAgICAgaG9zdGFk ZHIJVEVYVCgxMDI0KSwKKyAgICAgICAgICAgIGRiX3JlcwlURVhULAorICAgICAgICAgICAgcGFz c2ZpbGUJVEVYVCwKKyAgICAgICAgICAgIHNzbGNlcnQJVEVYVCwKKyAgICAgICAgICAgIHNzbGtl eQlURVhULAorICAgICAgICAgICAgc3Nscm9vdGNlcnQJVEVYVCwKKyAgICAgICAgICAgIHNzbGNy bAlURVhULAorICAgICAgICAgICAgc3NsY29tcHJlc3Npb24JSU5URUdFUiBERUZBVUxUIDAsCisg ICAgICAgICAgICBiZ2NvbG9yIFRFWFQoMTApLAorICAgICAgICAgICAgZmdjb2xvciBURVhUKDEw KSwKKyAgICAgICAgICAgIHNlcnZpY2UgVEVYVCwKKyAgICAgICAgICAgIHVzZV9zc2hfdHVubmVs IElOVEVHRVIgREVGQVVMVCAwLAorICAgICAgICAgICAgdHVubmVsX2hvc3QgVEVYVCwKKyAgICAg ICAgICAgIHR1bm5lbF9wb3J0IFRFWFQsCisgICAgICAgICAgICB0dW5uZWxfdXNlcm5hbWUgVEVY VCwKKyAgICAgICAgICAgIHR1bm5lbF9hdXRoZW50aWNhdGlvbiBJTlRFR0VSIERFRkFVTFQgMCwK KyAgICAgICAgICAgIHR1bm5lbF9pZGVudGl0eV9maWxlIFRFWFQsCisgICAgICAgICAgICBzaGFy ZWQgQk9PTEVBTiBOT1QgTlVMTCwKKyAgICAgICAgICAgIHNhdmVfcGFzc3dvcmQgQk9PTEVBTiBO T1QgTlVMTCwKKyAgICAgICAgICAgIHR1bm5lbF9wYXNzd29yZCBWQVJDSEFSKDY0KSwKKyAgICAg ICAgICAgIGNvbm5lY3RfdGltZW91dCBJTlRFR0VSICwKKyAgICAgICAgICAgIFBSSU1BUlkgS0VZ KGlkKSwKKyAgICAgICAgICAgIEZPUkVJR04gS0VZKHVzZXJfaWQpIFJFRkVSRU5DRVMgdXNlcihp ZCksCisgICAgICAgICAgICBGT1JFSUdOIEtFWShzZXJ2ZXJncm91cF9pZCkgUkVGRVJFTkNFUyBz ZXJ2ZXJncm91cChpZCkKKyAgICAgICAgKTsKKyAgICAiIiIpCisKKworZGVmIGRvd25ncmFkZSgp OgorICAgIHBhc3MKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvcmVnaXN0ZXJfYnJv d3Nlcl9wcmVmZXJlbmNlcy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvcmVnaXN0ZXJfYnJvd3Nl cl9wcmVmZXJlbmNlcy5weQppbmRleCA5NDhiZTQxYjguLjIxNTQyMWNiZiAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9yZWdpc3Rlcl9icm93c2VyX3ByZWZlcmVuY2VzLnB5CisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvcmVnaXN0ZXJfYnJvd3Nlcl9wcmVmZXJlbmNlcy5weQpAQCAt OSw2ICs5LDcgQEAKIGZyb20gZmxhc2tfYmFiZWxleCBpbXBvcnQgZ2V0dGV4dAogZnJvbSBwZ2Fk bWluLnV0aWxzLmNvbnN0YW50cyBpbXBvcnQgUFJFRl9MQUJFTF9ESVNQTEFZLFwKICAgICBQUkVG X0xBQkVMX0tFWUJPQVJEX1NIT1JUQ1VUUworaW1wb3J0IGNvbmZpZwogCiBMT0NLX0xBWU9VVF9M RVZFTCA9IHsKICAgICAnUFJFVkVOVF9ET0NLSU5HJzogJ2RvY2tpbmcnLApAQCAtMjMsNiArMjQs MTUgQEAgZGVmIHJlZ2lzdGVyX2Jyb3dzZXJfcHJlZmVyZW5jZXMoc2VsZik6CiAgICAgICAgIGdl dHRleHQoIlNob3cgc3lzdGVtIG9iamVjdHM/IiksICdib29sZWFuJywgRmFsc2UsCiAgICAgICAg IGNhdGVnb3J5X2xhYmVsPVBSRUZfTEFCRUxfRElTUExBWQogICAgICkKKyAgICBpZiBjb25maWcu U0VSVkVSX01PREU6CisgICAgICAgIHNlbGYuaGlkZV9zaGFyZWRfc2VydmVyID0gc2VsZi5wcmVm ZXJlbmNlLnJlZ2lzdGVyKAorICAgICAgICAgICAgJ2Rpc3BsYXknLCAnaGlkZV9zaGFyZWRfc2Vy dmVyJywKKyAgICAgICAgICAgIGdldHRleHQoIkhpZGUgc2hhcmVkIHNlcnZlcj8iKSwgJ2Jvb2xl YW4nLCBGYWxzZSwKKyAgICAgICAgICAgIGNhdGVnb3J5X2xhYmVsPWdldHRleHQoJ0Rpc3BsYXkn KSwKKyAgICAgICAgICAgIGhlbHBfc3RyPWdldHRleHQoCisgICAgICAgICAgICAgICAgJ0lmIHNl dCB0byB0cnVlLCB0aGVuIGFsbCBzaGFyZWQgc2VydmVyIHdpbGwgYmUgaGlkZGVuJworICAgICAg ICAgICAgKQorICAgICAgICApCiAKICAgICBzZWxmLnByZWZlcmVuY2UucmVnaXN0ZXIoCiAgICAg ICAgICdkaXNwbGF5JywgJ2VuYWJsZV9hY2l0cmVlX2FuaW1hdGlvbicsCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvX19pbml0X18ucHkKaW5kZXggM2M0ZWM2ODMxLi5iZjVi ZTZjODQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9fX2lu aXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvX19pbml0X18u cHkKQEAgLTEzLDcgKzEzLDcgQEAgaW1wb3J0IHNpbXBsZWpzb24gYXMganNvbgogZnJvbSBhYmMg aW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0bWV0aG9kCiAKIGltcG9ydCBzaXgKLWZyb20gZmxhc2sg aW1wb3J0IHJlcXVlc3QsIGpzb25pZnkKK2Zyb20gZmxhc2sgaW1wb3J0IHJlcXVlc3QsIGpzb25p ZnksIHJlbmRlcl90ZW1wbGF0ZQogZnJvbSBmbGFza19iYWJlbGV4IGltcG9ydCBnZXR0ZXh0CiBm cm9tIGZsYXNrX3NlY3VyaXR5IGltcG9ydCBjdXJyZW50X3VzZXIsIGxvZ2luX3JlcXVpcmVkCiBm cm9tIHBnYWRtaW4uYnJvd3NlciBpbXBvcnQgQnJvd3NlclBsdWdpbk1vZHVsZQpAQCAtMjIsNyAr MjIsMjcgQEAgZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25z ZSwgZ29uZSwgXAogICAgIG1ha2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgYmFkX3JlcXVl c3QKIGZyb20gcGdhZG1pbi51dGlscy5tZW51IGltcG9ydCBNZW51SXRlbQogZnJvbSBzcWxhbGNo ZW15IGltcG9ydCBleGMKLWZyb20gcGdhZG1pbi5tb2RlbCBpbXBvcnQgZGIsIFNlcnZlckdyb3Vw Citmcm9tIHBnYWRtaW4ubW9kZWwgaW1wb3J0IGRiLCBTZXJ2ZXJHcm91cCwgU2VydmVyCitpbXBv cnQgY29uZmlnCitmcm9tIHBnYWRtaW4udXRpbHMucHJlZmVyZW5jZXMgaW1wb3J0IFByZWZlcmVu Y2VzCisKKworZGVmIGdldF9pY29uX2Nzc19jbGFzcyhncm91cF9pZCwgZ3JvdXBfdXNlcl9pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdF92YWw9J2ljb24tc2VydmVyX2dyb3VwJyk6 CisgICAgIiIiCisgICAgUmV0dXJucyBjc3MgdmFsdWUKKyAgICA6cGFyYW0gZ3JvdXBfaWQ6Cisg ICAgOnBhcmFtIGdyb3VwX3VzZXJfaWQ6CisgICAgOnBhcmFtIGRlZmF1bHRfdmFsOgorICAgIDpy ZXR1cm46IGRlZmF1bHRfdmFsCisgICAgIiIiCisgICAgaWYgKGNvbmZpZy5TRVJWRVJfTU9ERSBh bmQKKyAgICAgICAgZ3JvdXBfdXNlcl9pZCAhPSBjdXJyZW50X3VzZXIuaWQgYW5kCisgICAgICAg ICAgICBTZXJ2ZXJHcm91cE1vZHVsZS5oYXNfc2hhcmVkX3NlcnZlcihncm91cF9pZCkpOgorICAg ICAgICBkZWZhdWx0X3ZhbCA9ICdpY29uLXNlcnZlcl9ncm91cF9zaGFyZWQnCisKKyAgICByZXR1 cm4gZGVmYXVsdF92YWwKKwogCiBTR19OT1RfRk9VTkRfRVJST1IgPSAnVGhlIHNwZWNpZmllZCBz ZXJ2ZXIgZ3JvdXAgY291bGQgbm90IGJlIGZvdW5kLicKIApAQCAtMzEsMTkgKzUxLDYzIEBAIGNs YXNzIFNlcnZlckdyb3VwTW9kdWxlKEJyb3dzZXJQbHVnaW5Nb2R1bGUpOgogICAgIF9OT0RFX1RZ UEUgPSAic2VydmVyX2dyb3VwIgogICAgIG5vZGVfaWNvbiA9ICJpY29uLSVzIiAlIF9OT0RFX1RZ UEUKIAorICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjc3NzbmlwcGV0cyhzZWxmKToKKyAgICAgICAg IiIiCisgICAgICAgIFJldHVybnMgYSBzbmlwcGV0IG9mIGNzcyB0byBpbmNsdWRlIGluIHRoZSBw YWdlCisgICAgICAgICIiIgorICAgICAgICBzbmlwcGV0cyA9IFtyZW5kZXJfdGVtcGxhdGUoImNz cy9zZXJ2ZXJfZ3JvdXAuY3NzIildCisKKyAgICAgICAgZm9yIHN1Ym1vZHVsZSBpbiBzZWxmLnN1 Ym1vZHVsZXM6CisgICAgICAgICAgICBzbmlwcGV0cy5leHRlbmQoc3VibW9kdWxlLmNzc3NuaXBw ZXRzKQorCisgICAgICAgIHJldHVybiBzbmlwcGV0cworCisgICAgQHN0YXRpY21ldGhvZAorICAg IGRlZiBoYXNfc2hhcmVkX3NlcnZlcihnaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVG8gY2hl Y2sgd2hldGhlciBnaXZlbiBzZXJ2ZXIgZ3JvdXAgY29udGFpbnMgc2hhcmVkIHNlcnZlciBvciBu b3QKKyAgICAgICAgOnBhcmFtIGdpZDoKKyAgICAgICAgOnJldHVybjogVHJ1ZSBpZiBzZXJ2ZXJn cm91cCBjb250YWlucyBzaGFyZWQgc2VydmVyIGVsc2UgZmFsc2UKKyAgICAgICAgIiIiCisgICAg ICAgIHNlcnZlcnMgPSBTZXJ2ZXIucXVlcnkuZmlsdGVyX2J5KHNlcnZlcmdyb3VwX2lkPWdpZCkK KyAgICAgICAgZm9yIHMgaW4gc2VydmVyczoKKyAgICAgICAgICAgIGlmIHMuc2hhcmVkOgorICAg ICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCiAgICAgZGVm IGdldF9ub2RlcyhzZWxmLCAqYXJnLCAqKmt3YXJncyk6CiAgICAgICAgICIiIlJldHVybiBhIEpT T04gZG9jdW1lbnQgbGlzdGluZyB0aGUgc2VydmVyIGdyb3VwcyBmb3IgdGhlIHVzZXIiIiIKLSAg ICAgICAgZ3JvdXBzID0gU2VydmVyR3JvdXAucXVlcnkuZmlsdGVyX2J5KAotICAgICAgICAgICAg dXNlcl9pZD1jdXJyZW50X3VzZXIuaWQKLSAgICAgICAgKS5vcmRlcl9ieSgiaWQiKQorCisgICAg ICAgIGhpZGVfc2hhcmVkX3NlcnZlciA9IE5vbmUKKyAgICAgICAgaWYgY29uZmlnLlNFUlZFUl9N T0RFOgorICAgICAgICAgICAgcHJlZiA9IFByZWZlcmVuY2VzLm1vZHVsZSgnYnJvd3NlcicpCisg ICAgICAgICAgICBoaWRlX3NoYXJlZF9zZXJ2ZXIgPSBwcmVmLnByZWZlcmVuY2UoJ2hpZGVfc2hh cmVkX3NlcnZlcicpLmdldCgpCisKKyAgICAgICAgaWYgY29uZmlnLlNFUlZFUl9NT0RFOgorICAg ICAgICAgICAgc2VydmVyX2dyb3VwcyA9IFNlcnZlckdyb3VwLnF1ZXJ5LmFsbCgpCisgICAgICAg ICAgICBncm91cHMgPSBbXQorICAgICAgICAgICAgZm9yIGdyb3VwIGluIHNlcnZlcl9ncm91cHM6 CisgICAgICAgICAgICAgICAgaWYgaGlkZV9zaGFyZWRfc2VydmVyIGFuZCBzZWxmLmhhc19zaGFy ZWRfc2VydmVyKAorICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAuaWQpIGFuZCBncm91cC51 c2VyX2lkICE9IGN1cnJlbnRfdXNlci5pZDoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUK KyAgICAgICAgICAgICAgICBpZiBncm91cC51c2VyX2lkID09IGN1cnJlbnRfdXNlci5pZCBvciBc CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmhhc19zaGFyZWRfc2VydmVyKGdyb3VwLmlk KToKKyAgICAgICAgICAgICAgICAgICAgZ3JvdXBzLmFwcGVuZChncm91cCkKKyAgICAgICAgZWxz ZToKKyAgICAgICAgICAgIGdyb3VwcyA9IFNlcnZlckdyb3VwLnF1ZXJ5LmZpbHRlcl9ieSgKKyAg ICAgICAgICAgICAgICB1c2VyX2lkPWN1cnJlbnRfdXNlci5pZAorICAgICAgICAgICAgKS5vcmRl cl9ieSgiaWQiKQorCiAgICAgICAgIGZvciBpZHgsIGdyb3VwIGluIGVudW1lcmF0ZShncm91cHMp OgogICAgICAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX25vZGUoCiAgICAgICAg ICAgICAgICAgIiVkIiAlIChncm91cC5pZCksIE5vbmUsCiAgICAgICAgICAgICAgICAgZ3JvdXAu bmFtZSwKLSAgICAgICAgICAgICAgICBzZWxmLm5vZGVfaWNvbiwKKyAgICAgICAgICAgICAgICBn ZXRfaWNvbl9jc3NfY2xhc3MoZ3JvdXAuaWQsIGdyb3VwLnVzZXJfaWQpLAogICAgICAgICAgICAg ICAgIFRydWUsCiAgICAgICAgICAgICAgICAgc2VsZi5ub2RlX3R5cGUsCi0gICAgICAgICAgICAg ICAgY2FuX2RlbGV0ZT1UcnVlIGlmIGlkeCA+IDAgZWxzZSBGYWxzZQorICAgICAgICAgICAgICAg IGNhbl9kZWxldGU9VHJ1ZSBpZiBpZHggPiAwIGVsc2UgRmFsc2UsCisgICAgICAgICAgICAgICAg dXNlcl9pZD1ncm91cC51c2VyX2lkCiAgICAgICAgICAgICApCiAKICAgICBAcHJvcGVydHkKQEAg LTE5Niw3ICsyNjAsNyBAQCBjbGFzcyBTZXJ2ZXJHcm91cFZpZXcoTm9kZVZpZXcpOgogICAgICAg ICAgICAgICAgIGdpZCwKICAgICAgICAgICAgICAgICBOb25lLAogICAgICAgICAgICAgICAgIHNl cnZlcmdyb3VwLm5hbWUsCi0gICAgICAgICAgICAgICAgc2VsZi5ub2RlX2ljb24sCisgICAgICAg ICAgICAgICAgZ2V0X2ljb25fY3NzX2NsYXNzKGdpZCwgc2VydmVyZ3JvdXAudXNlcl9pZCksCiAg ICAgICAgICAgICAgICAgVHJ1ZSwKICAgICAgICAgICAgICAgICBzZWxmLm5vZGVfdHlwZSwKICAg ICAgICAgICAgICAgICBjYW5fZGVsZXRlPVRydWUgICMgVGhpcyBpcyB1c2VyIGNyZWF0ZWQgaGVu Y2UgY2FuIGRlbGV0ZWQKQEAgLTIwNywxMCArMjcxLDcgQEAgY2xhc3MgU2VydmVyR3JvdXBWaWV3 KE5vZGVWaWV3KToKICAgICBkZWYgcHJvcGVydGllcyhzZWxmLCBnaWQpOgogICAgICAgICAiIiJV cGRhdGUgdGhlIHNlcnZlci1ncm91cCBwcm9wZXJ0aWVzIiIiCiAKLSAgICAgICAgIyBUaGVyZSBj YW4gYmUgb25seSBvbmUgcmVjb3JkIGF0IG1vc3QKLSAgICAgICAgc2cgPSBTZXJ2ZXJHcm91cC5x dWVyeS5maWx0ZXJfYnkoCi0gICAgICAgICAgICB1c2VyX2lkPWN1cnJlbnRfdXNlci5pZCwKLSAg ICAgICAgICAgIGlkPWdpZCkuZmlyc3QoKQorICAgICAgICBzZyA9IFNlcnZlckdyb3VwLnF1ZXJ5 LmZpbHRlcihTZXJ2ZXJHcm91cC5pZCA9PSBnaWQpLmZpcnN0KCkKIAogICAgICAgICBpZiBzZyBp cyBOb25lOgogICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKQEAgLTIyMCw3 ICsyODEsNyBAQCBjbGFzcyBTZXJ2ZXJHcm91cFZpZXcoTm9kZVZpZXcpOgogICAgICAgICAgICAg KQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCi0gICAg ICAgICAgICAgICAgcmVzcG9uc2U9eydpZCc6IHNnLmlkLCAnbmFtZSc6IHNnLm5hbWV9LAorICAg ICAgICAgICAgICAgIHJlc3BvbnNlPXsnaWQnOiBzZy5pZCwgJ25hbWUnOiBzZy5uYW1lLCAndXNl cl9pZCc6IHNnLnVzZXJfaWR9LAogICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKICAgICAgICAg ICAgICkKIApAQCAtMjQ2LDcgKzMwNyw3IEBAIGNsYXNzIFNlcnZlckdyb3VwVmlldyhOb2RlVmll dyk6CiAgICAgICAgICAgICAgICAgICAgICAgICAiJWQiICUgc2cuaWQsCiAgICAgICAgICAgICAg ICAgICAgICAgICBOb25lLAogICAgICAgICAgICAgICAgICAgICAgICAgc2cubmFtZSwKLSAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYubm9kZV9pY29uLAorICAgICAgICAgICAgICAgICAgICAg ICAgZ2V0X2ljb25fY3NzX2NsYXNzKHNnLmlkLCBzZy51c2VyX2lkKSwKICAgICAgICAgICAgICAg ICAgICAgICAgIFRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm5vZGVfdHlwZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICMgVGhpcyBpcyB1c2VyIGNyZWF0ZWQgaGVuY2UgY2Fu IGRlbGV0ZWQKQEAgLTMwNiwxNCArMzY3LDE0IEBAIGNsYXNzIFNlcnZlckdyb3VwVmlldyhOb2Rl Vmlldyk6CiAgICAgICAgICAgICAgICAgICAgICAgICAiJWQiICUgZ3JvdXAuaWQsCiAgICAgICAg ICAgICAgICAgICAgICAgICBOb25lLAogICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAubmFt ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubm9kZV9pY29uLAorICAgICAgICAgICAg ICAgICAgICAgICAgZ2V0X2ljb25fY3NzX2NsYXNzKGdyb3VwLmlkLCBncm91cC51c2VyX2lkKSwK ICAgICAgICAgICAgICAgICAgICAgICAgIFRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLm5vZGVfdHlwZQogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgKQog ICAgICAgICBlbHNlOgotICAgICAgICAgICAgZ3JvdXAgPSBTZXJ2ZXJHcm91cC5xdWVyeS5maWx0 ZXJfYnkodXNlcl9pZD1jdXJyZW50X3VzZXIuaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZD1naWQpLmZpcnN0KCkKKyAgICAgICAgICAgIGdyb3Vw ID0gU2VydmVyR3JvdXAucXVlcnkuZmlsdGVyKFNlcnZlckdyb3VwLmlkID09IGdpZCkuZmlyc3Qo KQorCiAgICAgICAgICAgICBpZiBub3QgZ3JvdXA6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGdv bmUoCiAgICAgICAgICAgICAgICAgICAgIGVycm9ybXNnPWdldHRleHQoIkNvdWxkIG5vdCBmaW5k IHRoZSBzZXJ2ZXIgZ3JvdXAuIikKQEAgLTMyMiw3ICszODMsNyBAQCBjbGFzcyBTZXJ2ZXJHcm91 cFZpZXcoTm9kZVZpZXcpOgogICAgICAgICAgICAgbm9kZXMgPSBzZWxmLmJsdWVwcmludC5nZW5l cmF0ZV9icm93c2VyX25vZGUoCiAgICAgICAgICAgICAgICAgIiVkIiAlIChncm91cC5pZCksIE5v bmUsCiAgICAgICAgICAgICAgICAgZ3JvdXAubmFtZSwKLSAgICAgICAgICAgICAgICBzZWxmLm5v ZGVfaWNvbiwKKyAgICAgICAgICAgICAgICBnZXRfaWNvbl9jc3NfY2xhc3MoZ3JvdXAuaWQsIGdy b3VwLnVzZXJfaWQpLAogICAgICAgICAgICAgICAgIFRydWUsCiAgICAgICAgICAgICAgICAgc2Vs Zi5ub2RlX3R5cGUKICAgICAgICAgICAgICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvX19pbml0X18ucHkKaW5kZXggOThiYjE5NzRkLi43MTRi NGM5ZTAgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL19faW5pdF9fLnB5CkBAIC0yMyw3ICsyMyw3IEBAIGZyb20gcGdhZG1pbi50b29scy5z cWxlZGl0b3IudXRpbHMucXVlcnlfaGlzdG9yeSBpbXBvcnQgUXVlcnlIaXN0b3J5CiAKIGltcG9y dCBjb25maWcKIGZyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgotZnJvbSBwZ2Fk bWluLm1vZGVsIGltcG9ydCBkYiwgU2VydmVyLCBTZXJ2ZXJHcm91cCwgVXNlcgorZnJvbSBwZ2Fk bWluLm1vZGVsIGltcG9ydCBkYiwgU2VydmVyLCBTZXJ2ZXJHcm91cCwgVXNlciwgU2hhcmVkU2Vy dmVyCiBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCiBmcm9tIHBn YWRtaW4udXRpbHMubWFzdGVyX3Bhc3N3b3JkIGltcG9ydCBnZXRfY3J5cHRfa2V5CiBmcm9tIHBn YWRtaW4udXRpbHMuZXhjZXB0aW9uIGltcG9ydCBDcnlwdEtleU1pc3NpbmcKQEAgLTMxLDYgKzMx LDggQEAgZnJvbSBwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLm5vZGVfcmVnaXN0cnkgaW1wb3J0 IFNjaGVtYURpZmZSZWdpc3RyeQogZnJvbSBwc3ljb3BnMiBpbXBvcnQgRXJyb3IgYXMgcHN5Y29w ZzJfRXJyb3IsIE9wZXJhdGlvbmFsRXJyb3IKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy51dGlscyBpbXBvcnQgaXNfdmFsaWRfaXBhZGRyZXNzCiBmcm9tIHBnYWRt aW4udXRpbHMuY29uc3RhbnRzIGltcG9ydCBVTkFVVEhfUkVRLCBNSU1FVFlQRV9BUFBfSlMKK2Zy b20gc3FsYWxjaGVteSBpbXBvcnQgb3JfCitmcm9tIHBnYWRtaW4udXRpbHMucHJlZmVyZW5jZXMg aW1wb3J0IFByZWZlcmVuY2VzCiAKIAogZGVmIGhhc19hbnkoZGF0YSwga2V5cyk6CkBAIC05MSw2 ICs5MywxMCBAQCBkZWYgc2VydmVyX2ljb25fYW5kX2JhY2tncm91bmQoaXNfY29ubmVjdGVkLCBt YW5hZ2VyLCBzZXJ2ZXIpOgogICAgICAgICByZXR1cm4gJ2ljb24tezB9ezF9Jy5mb3JtYXQoCiAg ICAgICAgICAgICBtYW5hZ2VyLnNlcnZlcl90eXBlLCBzZXJ2ZXJfYmFja2dyb3VuZF9jb2xvcgog ICAgICAgICApCisgICAgZWxpZiBzZXJ2ZXIuc2hhcmVkIGFuZCBjb25maWcuU0VSVkVSX01PREU6 CisgICAgICAgIHJldHVybiAnaWNvbi1zaGFyZWQtc2VydmVyLW5vdC1jb25uZWN0ZWR7MH0nLmZv cm1hdCgKKyAgICAgICAgICAgIHNlcnZlcl9iYWNrZ3JvdW5kX2NvbG9yCisgICAgICAgICkKICAg ICBlbHNlOgogICAgICAgICByZXR1cm4gJ2ljb24tc2VydmVyLW5vdC1jb25uZWN0ZWR7MH0nLmZv cm1hdCgKICAgICAgICAgICAgIHNlcnZlcl9iYWNrZ3JvdW5kX2NvbG9yCkBAIC0xMTMsMTUgKzEx OSw1NSBAQCBjbGFzcyBTZXJ2ZXJNb2R1bGUoc2cuU2VydmVyR3JvdXBQbHVnaW5Nb2R1bGUpOgog ICAgICAgICAiIiIKICAgICAgICAgcmV0dXJuIHNnLlNlcnZlckdyb3VwTW9kdWxlLm5vZGVfdHlw ZQogCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBnZXRfc2hhcmVkX3NlcnZlcl9wcm9wZXJ0 aWVzKHNlcnZlciwgc2hhcmVkc2VydmVyKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiBz aGFyZWQgc2VydmVyIHByb3BlcnRpZXMKKyAgICAgICAgOnBhcmFtIHNlcnZlcjoKKyAgICAgICAg OnBhcmFtIHNoYXJlZHNlcnZlcjoKKyAgICAgICAgOnJldHVybjoKKyAgICAgICAgIiIiCisKKyAg ICAgICAgc2VydmVyLmJnY29sb3IgPSBzaGFyZWRzZXJ2ZXIuYmdjb2xvcgorICAgICAgICBzZXJ2 ZXIuZmdjb2xvciA9IHNoYXJlZHNlcnZlci5mZ2NvbG9yCisgICAgICAgIHNlcnZlci5uYW1lID0g c2hhcmVkc2VydmVyLm5hbWUKKyAgICAgICAgc2VydmVyLnJvbGUgPSBzaGFyZWRzZXJ2ZXIucm9s ZQorICAgICAgICBzZXJ2ZXIudHVubmVsX3VzZXJuYW1lID0gc2hhcmVkc2VydmVyLnR1bm5lbF91 c2VybmFtZQorICAgICAgICBzZXJ2ZXIudHVubmVsX3Bhc3N3b3JkID0gc2hhcmVkc2VydmVyLnR1 bm5lbF9wYXNzd29yZAorICAgICAgICBzZXJ2ZXIuc2F2ZV9wYXNzd29yZCA9IHNoYXJlZHNlcnZl ci5zYXZlX3Bhc3N3b3JkCisgICAgICAgIHNlcnZlci5wYXNzZmlsZSA9IHNoYXJlZHNlcnZlci5w YXNzZmlsZQorICAgICAgICBzZXJ2ZXIuc2VydmVyZ3JvdXBfaWQgPSBzaGFyZWRzZXJ2ZXIuc2Vy dmVyZ3JvdXBfaWQKKyAgICAgICAgc2VydmVyLnNzbGNlcnQgPSBzaGFyZWRzZXJ2ZXIuc3NsY2Vy dAorICAgICAgICBzZXJ2ZXIudXNlcm5hbWUgPSBzaGFyZWRzZXJ2ZXIudXNlcm5hbWUKKyAgICAg ICAgc2VydmVyLnNlcnZlcl9vd25lciA9IHNoYXJlZHNlcnZlci5zZXJ2ZXJfb3duZXIKKworICAg ICAgICByZXR1cm4gc2VydmVyCisKICAgICBAbG9naW5fcmVxdWlyZWQKICAgICBkZWYgZ2V0X25v ZGVzKHNlbGYsIGdpZCk6CiAgICAgICAgICIiIlJldHVybiBhIEpTT04gZG9jdW1lbnQgbGlzdGlu ZyB0aGUgc2VydmVyIGdyb3VwcyBmb3IgdGhlIHVzZXIiIiIKLSAgICAgICAgc2VydmVycyA9IFNl cnZlci5xdWVyeS5maWx0ZXJfYnkodXNlcl9pZD1jdXJyZW50X3VzZXIuaWQsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcmdyb3VwX2lkPWdpZCkKKworICAg ICAgICBoaWRlX3NoYXJlZF9zZXJ2ZXIgPSBOb25lCisgICAgICAgIGlmIGNvbmZpZy5TRVJWRVJf TU9ERToKKyAgICAgICAgICAgIHByZWYgPSBQcmVmZXJlbmNlcy5tb2R1bGUoJ2Jyb3dzZXInKQor ICAgICAgICAgICAgaGlkZV9zaGFyZWRfc2VydmVyID0gcHJlZi5wcmVmZXJlbmNlKCdoaWRlX3No YXJlZF9zZXJ2ZXInKS5nZXQoKQorCisgICAgICAgIHNlcnZlcnMgPSBTZXJ2ZXIucXVlcnkuZmls dGVyKAorICAgICAgICAgICAgb3JfKFNlcnZlci51c2VyX2lkID09IGN1cnJlbnRfdXNlci5pZCwg U2VydmVyLnNoYXJlZCksCisgICAgICAgICAgICBTZXJ2ZXIuc2VydmVyZ3JvdXBfaWQgPT0gZ2lk KQogCiAgICAgICAgIGRyaXZlciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIpCiAKICAg ICAgICAgZm9yIHNlcnZlciBpbiBzZXJ2ZXJzOgorICAgICAgICAgICAgaWYgc2VydmVyLnNoYXJl ZCBhbmQgc2VydmVyLnVzZXJfaWQgIT0gY3VycmVudF91c2VyLmlkOgorICAgICAgICAgICAgICAg ICMgRG9uJ3QgaW5jbHVkZSBzaGFyZWQgc2VydmVyIGlmIGhpZGUgc2hhcmVkIHNlcnZlciBpcwor ICAgICAgICAgICAgICAgICMgc2V0IHRvIHRydWUKKyAgICAgICAgICAgICAgICBpZiBoaWRlX3No YXJlZF9zZXJ2ZXI6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAg ICAgc2hhcmVkX3NlcnZlciA9IHNlbGYuZ2V0X3NoYXJlZF9zZXJ2ZXIoc2VydmVyLCBnaWQpCisg ICAgICAgICAgICAgICAgc2VydmVyID0gc2VsZi5nZXRfc2hhcmVkX3NlcnZlcl9wcm9wZXJ0aWVz KHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2hhcmVkX3NlcnZlcikKKwogICAgICAgICAgICAgY29ubmVjdGVkID0gRmFs c2UKICAgICAgICAgICAgIG1hbmFnZXIgPSBOb25lCiAgICAgICAgICAgICBlcnJtc2cgPSBOb25l CkBAIC0xNTcsNyArMjAzLDEwIEBAIGNsYXNzIFNlcnZlck1vZHVsZShzZy5TZXJ2ZXJHcm91cFBs dWdpbk1vZHVsZSk6CiAgICAgICAgICAgICAgICAgaXNfdHVubmVsX3Bhc3N3b3JkX3NhdmVkPVRy dWUKICAgICAgICAgICAgICAgICBpZiBzZXJ2ZXIudHVubmVsX3Bhc3N3b3JkIGlzIG5vdCBOb25l IGVsc2UgRmFsc2UsCiAgICAgICAgICAgICAgICAgd2FzX2Nvbm5lY3RlZD13YXNfY29ubmVjdGVk LAotICAgICAgICAgICAgICAgIGVycm1zZz1lcnJtc2cKKyAgICAgICAgICAgICAgICBlcnJtc2c9 ZXJybXNnLAorICAgICAgICAgICAgICAgIHVzZXJfaWQ9c2VydmVyLnVzZXJfaWQsCisgICAgICAg ICAgICAgICAgdXNlcl9uYW1lPXNlcnZlci51c2VybmFtZSwKKyAgICAgICAgICAgICAgICBzaGFy ZWQ9c2VydmVyLnNoYXJlZAogICAgICAgICAgICAgKQogCiAgICAgQHByb3BlcnR5CkBAIC0yMjks NiArMjc4LDc5IEBAIGNsYXNzIFNlcnZlck1vZHVsZShzZy5TZXJ2ZXJHcm91cFBsdWdpbk1vZHVs ZSk6CiAgICAgZGVmIGdldF9leHBvc2VkX3VybF9lbmRwb2ludHMoc2VsZik6CiAgICAgICAgIHJl dHVybiBbJ05PREUtc2VydmVyLmNvbm5lY3RfaWQnXQogCisgICAgQHN0YXRpY21ldGhvZAorICAg IGRlZiBjcmVhdGVfc2hhcmVkX3NlcnZlcihkYXRhLCBnaWQpOgorICAgICAgICAiIiIKKyAgICAg ICAgQ3JlYXRlIHNoYXJlZCBzZXJ2ZXIKKyAgICAgICAgOnBhcmFtIGRhdGE6CisgICAgICAgIDpw YXJhbSBnaWQ6CisgICAgICAgIDpyZXR1cm46IE5vbmUKKyAgICAgICAgIiIiCisKKyAgICAgICAg c2hhcmVkX3NlcnZlciA9IE5vbmUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdXNlciA9IFVz ZXIucXVlcnkuZmlsdGVyX2J5KGlkPWRhdGEudXNlcl9pZCkuZmlyc3QoKQorICAgICAgICAgICAg c2hhcmVkX3NlcnZlciA9IFNoYXJlZFNlcnZlcigKKyAgICAgICAgICAgICAgICB1c2VyX2lkPWN1 cnJlbnRfdXNlci5pZCwKKyAgICAgICAgICAgICAgICBzZXJ2ZXJfb3duZXI9dXNlci51c2VybmFt ZSwKKyAgICAgICAgICAgICAgICBzZXJ2ZXJncm91cF9pZD1naWQsCisgICAgICAgICAgICAgICAg bmFtZT1kYXRhLm5hbWUsCisgICAgICAgICAgICAgICAgaG9zdD1kYXRhLmhvc3QsCisgICAgICAg ICAgICAgICAgaG9zdGFkZHI9ZGF0YS5ob3N0YWRkciwKKyAgICAgICAgICAgICAgICBwb3J0PWRh dGEucG9ydCwKKyAgICAgICAgICAgICAgICBtYWludGVuYW5jZV9kYj1Ob25lLAorICAgICAgICAg ICAgICAgIHVzZXJuYW1lPU5vbmUsCisgICAgICAgICAgICAgICAgc2F2ZV9wYXNzd29yZD0wLAor ICAgICAgICAgICAgICAgIHNzbF9tb2RlPWRhdGEuc3NsX21vZGUsCisgICAgICAgICAgICAgICAg Y29tbWVudD1Ob25lLAorICAgICAgICAgICAgICAgIHJvbGU9ZGF0YS5yb2xlLAorICAgICAgICAg ICAgICAgIHNzbGNlcnQ9Tm9uZSwKKyAgICAgICAgICAgICAgICBzc2xrZXk9Tm9uZSwKKyAgICAg ICAgICAgICAgICBzc2xyb290Y2VydD1Ob25lLAorICAgICAgICAgICAgICAgIHNzbGNybD1Ob25l LAorICAgICAgICAgICAgICAgIGJnY29sb3I9ZGF0YS5iZ2NvbG9yIGlmIGRhdGEuYmdjb2xvciBl bHNlIE5vbmUsCisgICAgICAgICAgICAgICAgZmdjb2xvcj1kYXRhLmZnY29sb3IgaWYgZGF0YS5m Z2NvbG9yIGVsc2UgTm9uZSwKKyAgICAgICAgICAgICAgICBzZXJ2aWNlPWRhdGEuc2VydmljZSBp ZiBkYXRhLnNlcnZpY2UgZWxzZSBOb25lLAorICAgICAgICAgICAgICAgIGNvbm5lY3RfdGltZW91 dD0wLAorICAgICAgICAgICAgICAgIHVzZV9zc2hfdHVubmVsPTAsCisgICAgICAgICAgICAgICAg dHVubmVsX2hvc3Q9Tm9uZSwKKyAgICAgICAgICAgICAgICB0dW5uZWxfcG9ydD0yMiwKKyAgICAg ICAgICAgICAgICB0dW5uZWxfdXNlcm5hbWU9Tm9uZSwKKyAgICAgICAgICAgICAgICB0dW5uZWxf YXV0aGVudGljYXRpb249MCwKKyAgICAgICAgICAgICAgICB0dW5uZWxfaWRlbnRpdHlfZmlsZT1O b25lLAorICAgICAgICAgICAgICAgIHNoYXJlZD1kYXRhLnNoYXJlZCBpZiBkYXRhLnNoYXJlZCBl bHNlIE5vbmUKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIGRiLnNlc3Npb24uYWRkKHNoYXJl ZF9zZXJ2ZXIpCisgICAgICAgICAgICBkYi5zZXNzaW9uLmNvbW1pdCgpCisgICAgICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIGlmIHNoYXJlZF9zZXJ2ZXI6CisgICAgICAg ICAgICAgICAgZGIuc2Vzc2lvbi5kZWxldGUoc2hhcmVkX3NlcnZlcikKKyAgICAgICAgICAgICAg ICBkYi5zZXNzaW9uLmNvbW1pdCgpCisKKyAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5l eGNlcHRpb24oZSkKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9c3RyKGUpKQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBnZXRfc2hhcmVkX3Nl cnZlcihzZXJ2ZXIsIGdpZCk6CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gdGhlIHNoYXJl ZCBzZXJ2ZXIKKyAgICAgICAgOnBhcmFtIHNlcnZlcjoKKyAgICAgICAgOnBhcmFtIGdpZDoKKyAg ICAgICAgOnJldHVybjogc2hhcmVkX3NlcnZlcgorICAgICAgICAiIiIKKyAgICAgICAgc2hhcmVk X3NlcnZlciA9IFNoYXJlZFNlcnZlci5xdWVyeS5maWx0ZXJfYnkoCisgICAgICAgICAgICBuYW1l PXNlcnZlci5uYW1lLCB1c2VyX2lkPWN1cnJlbnRfdXNlci5pZCwKKyAgICAgICAgICAgIHNlcnZl cmdyb3VwX2lkPWdpZCkuZmlyc3QoKQorCisgICAgICAgIGlmIHNoYXJlZF9zZXJ2ZXIgaXMgTm9u ZToKKyAgICAgICAgICAgIFNlcnZlck1vZHVsZS5jcmVhdGVfc2hhcmVkX3NlcnZlcihzZXJ2ZXIs IGdpZCkKKworICAgICAgICAgICAgc2hhcmVkX3NlcnZlciA9IFNoYXJlZFNlcnZlci5xdWVyeS5m aWx0ZXJfYnkoCisgICAgICAgICAgICAgICAgbmFtZT1zZXJ2ZXIubmFtZSwgdXNlcl9pZD1jdXJy ZW50X3VzZXIuaWQsCisgICAgICAgICAgICAgICAgc2VydmVyZ3JvdXBfaWQ9Z2lkKS5maXJzdCgp CisKKyAgICAgICAgcmV0dXJuIHNoYXJlZF9zZXJ2ZXIKKwogCiBjbGFzcyBTZXJ2ZXJNZW51SXRl bShNZW51SXRlbSk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKQEAgLTMyNiwx MiArNDQ4LDE5IEBAIGNsYXNzIFNlcnZlck5vZGUoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAg UmV0dXJuIGEgSlNPTiBkb2N1bWVudCBsaXN0aW5nIHRoZSBzZXJ2ZXJzIHVuZGVyIHRoaXMgc2Vy dmVyIGdyb3VwCiAgICAgICAgIGZvciB0aGUgdXNlci4KICAgICAgICAgIiIiCi0gICAgICAgIHNl cnZlcnMgPSBTZXJ2ZXIucXVlcnkuZmlsdGVyX2J5KHVzZXJfaWQ9Y3VycmVudF91c2VyLmlkLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJncm91cF9pZD1n aWQpCisgICAgICAgIHNlcnZlcnMgPSBTZXJ2ZXIucXVlcnkuZmlsdGVyKAorICAgICAgICAgICAg b3JfKFNlcnZlci51c2VyX2lkID09IGN1cnJlbnRfdXNlci5pZCwKKyAgICAgICAgICAgICAgICBT ZXJ2ZXIuc2hhcmVkKSwKKyAgICAgICAgICAgIFNlcnZlci5zZXJ2ZXJncm91cF9pZCA9PSBnaWQp CiAKICAgICAgICAgZHJpdmVyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikKIAogICAg ICAgICBmb3Igc2VydmVyIGluIHNlcnZlcnM6CisgICAgICAgICAgICBpZiBzZXJ2ZXIuc2hhcmVk IGFuZCBzZXJ2ZXIudXNlcl9pZCAhPSBjdXJyZW50X3VzZXIuaWQ6CisgICAgICAgICAgICAgICAg c2hhcmVkX3NlcnZlciA9IFNlcnZlck1vZHVsZS5nZXRfc2hhcmVkX3NlcnZlcihzZXJ2ZXIsIGdp ZCkKKyAgICAgICAgICAgICAgICBzZXJ2ZXIgPSBcCisgICAgICAgICAgICAgICAgICAgIFNlcnZl ck1vZHVsZS5nZXRfc2hhcmVkX3NlcnZlcl9wcm9wZXJ0aWVzKHNlcnZlciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVk X3NlcnZlcikKICAgICAgICAgICAgIG1hbmFnZXIgPSBkcml2ZXIuY29ubmVjdGlvbl9tYW5hZ2Vy KHNlcnZlci5pZCkKICAgICAgICAgICAgIGNvbm4gPSBtYW5hZ2VyLmNvbm5lY3Rpb24oKQogICAg ICAgICAgICAgY29ubmVjdGVkID0gY29ubi5jb25uZWN0ZWQoKQpAQCAtMzY0LDcgKzQ5Myw5IEBA IGNsYXNzIFNlcnZlck5vZGUoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgICAgICAgICAg aXNfcGFzc3dvcmRfc2F2ZWQ9Ym9vbChzZXJ2ZXIuc2F2ZV9wYXNzd29yZCksCiAgICAgICAgICAg ICAgICAgICAgIGlzX3R1bm5lbF9wYXNzd29yZF9zYXZlZD1UcnVlCiAgICAgICAgICAgICAgICAg ICAgIGlmIHNlcnZlci50dW5uZWxfcGFzc3dvcmQgaXMgbm90IE5vbmUgZWxzZSBGYWxzZSwKLSAg ICAgICAgICAgICAgICAgICAgZXJybXNnPWVycm1zZworICAgICAgICAgICAgICAgICAgICBlcnJt c2c9ZXJybXNnLAorICAgICAgICAgICAgICAgICAgICB1c2VyX25hbWU9c2VydmVyLnVzZXJuYW1l LAorICAgICAgICAgICAgICAgICAgICBzaGFyZWQ9c2VydmVyLnNoYXJlZAogICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgICkKIApAQCAtMzc4LDkgKzUwOSw3IEBAIGNsYXNzIFNlcnZlck5v ZGUoUEdDaGlsZE5vZGVWaWV3KToKICAgICBAbG9naW5fcmVxdWlyZWQKICAgICBkZWYgbm9kZShz ZWxmLCBnaWQsIHNpZCk6CiAgICAgICAgICIiIlJldHVybiBhIEpTT04gZG9jdW1lbnQgbGlzdGlu ZyB0aGUgc2VydmVyIGdyb3VwcyBmb3IgdGhlIHVzZXIiIiIKLSAgICAgICAgc2VydmVyID0gU2Vy dmVyLnF1ZXJ5LmZpbHRlcl9ieSh1c2VyX2lkPWN1cnJlbnRfdXNlci5pZCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJncm91cF9pZD1naWQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9c2lkKS5maXJzdCgpCisgICAgICAg IHNlcnZlciA9IFNlcnZlci5xdWVyeS5maWx0ZXJfYnkoaWQ9c2lkKS5maXJzdCgpCiAKICAgICAg ICAgaWYgc2VydmVyIGlzIE5vbmU6CiAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3Bv bnNlKApAQCAtNDI1LDE0ICs1NTQsMzYgQEAgY2xhc3MgU2VydmVyTm9kZShQR0NoaWxkTm9kZVZp ZXcpOgogICAgICAgICAgICAgICAgIGlzX3Bhc3N3b3JkX3NhdmVkPWJvb2woc2VydmVyLnNhdmVf cGFzc3dvcmQpLAogICAgICAgICAgICAgICAgIGlzX3R1bm5lbF9wYXNzd29yZF9zYXZlZD1UcnVl CiAgICAgICAgICAgICAgICAgaWYgc2VydmVyLnR1bm5lbF9wYXNzd29yZCBpcyBub3QgTm9uZSBl bHNlIEZhbHNlLAotICAgICAgICAgICAgICAgIGVycm1zZz1lcnJtc2cKKyAgICAgICAgICAgICAg ICBlcnJtc2c9ZXJybXNnLAorICAgICAgICAgICAgICAgIHNoYXJlZD1zZXJ2ZXIuc2hhcmVkCiAg ICAgICAgICAgICApLAogICAgICAgICApCiAKKyAgICBkZWYgZGVsZXRlX3NoYXJlZF9zZXJ2ZXIo c2VsZiwgc2VydmVyX25hbWUsIGdpZCk6CisgICAgICAgICIiIgorICAgICAgICBEZWxldGUgdGhl IHNoYXJlZCBzZXJ2ZXIKKyAgICAgICAgOnBhcmFtIHNlcnZlcl9uYW1lOgorICAgICAgICA6cmV0 dXJuOgorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2hhcmVkX3NlcnZl ciA9IFNoYXJlZFNlcnZlci5xdWVyeS5maWx0ZXJfYnkobmFtZT1zZXJ2ZXJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZl cmdyb3VwX2lkPWdpZCkKKyAgICAgICAgICAgIGZvciBzIGluIHNoYXJlZF9zZXJ2ZXI6CisgICAg ICAgICAgICAgICAgZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikuZGVsZXRlX21hbmFnZXIo cy5pZCkKKyAgICAgICAgICAgICAgICBkYi5zZXNzaW9uLmRlbGV0ZShzKQorICAgICAgICAgICAg ZGIuc2Vzc2lvbi5jb21taXQoKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAg ICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5leGNlcHRpb24oZSkKKyAgICAgICAgICAgIHJl dHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAorICAg ICAgICAgICAgICAgIGVycm9ybXNnPWUubWVzc2FnZSkKKwogICAgIEBsb2dpbl9yZXF1aXJlZAog ICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQpOgogICAgICAgICAiIiJEZWxldGUgYSBzZXJ2 ZXIgbm9kZSBpbiB0aGUgc2V0dGluZ3MgZGF0YWJhc2UuIiIiCiAgICAgICAgIHNlcnZlcnMgPSBT ZXJ2ZXIucXVlcnkuZmlsdGVyX2J5KHVzZXJfaWQ9Y3VycmVudF91c2VyLmlkLCBpZD1zaWQpCisg ICAgICAgIHNlcnZlcl9uYW1lID0gTm9uZQogCiAgICAgICAgICMgVE9ETzo6IEEgc2VydmVyLCB3 aGljaCBpcyBjb25uZWN0ZWQsIGNhbm5vdCBiZSBkZWxldGVkCiAgICAgICAgIGlmIHNlcnZlcnMg aXMgTm9uZToKQEAgLTQ0OCwxMCArNTk5LDExIEBAIGNsYXNzIFNlcnZlck5vZGUoUEdDaGlsZE5v ZGVWaWV3KToKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAg ICBmb3IgcyBpbiBzZXJ2ZXJzOgorICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfbmFtZSA9IHMu bmFtZQogICAgICAgICAgICAgICAgICAgICBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKS5k ZWxldGVfbWFuYWdlcihzLmlkKQogICAgICAgICAgICAgICAgICAgICBkYi5zZXNzaW9uLmRlbGV0 ZShzKQogICAgICAgICAgICAgICAgIGRiLnNlc3Npb24uY29tbWl0KCkKLQorICAgICAgICAgICAg ICAgIHNlbGYuZGVsZXRlX3NoYXJlZF9zZXJ2ZXIoc2VydmVyX25hbWUsIGdpZCkKICAgICAgICAg ICAgICAgICBRdWVyeUhpc3RvcnkuY2xlYXJfaGlzdG9yeShjdXJyZW50X3VzZXIuaWQsIHNpZCkK IAogICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgpAQCAtNDY2LDggKzYxOCw4IEBA IGNsYXNzIFNlcnZlck5vZGUoUEdDaGlsZE5vZGVWaWV3KToKICAgICBAbG9naW5fcmVxdWlyZWQK ICAgICBkZWYgdXBkYXRlKHNlbGYsIGdpZCwgc2lkKToKICAgICAgICAgIiIiVXBkYXRlIHRoZSBz ZXJ2ZXIgc2V0dGluZ3MiIiIKLSAgICAgICAgc2VydmVyID0gU2VydmVyLnF1ZXJ5LmZpbHRlcl9i eSgKLSAgICAgICAgICAgIHVzZXJfaWQ9Y3VycmVudF91c2VyLmlkLCBpZD1zaWQpLmZpcnN0KCkK KyAgICAgICAgc2VydmVyID0gU2VydmVyLnF1ZXJ5LmZpbHRlcl9ieShpZD1zaWQpLmZpcnN0KCkK KyAgICAgICAgc2hhcmVkc2VydmVyID0gTm9uZQogCiAgICAgICAgIGlmIHNlcnZlciBpcyBOb25l OgogICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKQEAgLTQ3Niw2ICs2Mjgs MTAgQEAgY2xhc3MgU2VydmVyTm9kZShQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAgICAgICAg IGVycm9ybXNnPWdldHRleHQoIkNvdWxkIG5vdCBmaW5kIHRoZSByZXF1aXJlZCBzZXJ2ZXIuIikK ICAgICAgICAgICAgICkKIAorICAgICAgICBpZiBjb25maWcuU0VSVkVSX01PREUgYW5kIHNlcnZl ci5zaGFyZWQgYW5kIFwKKyAgICAgICAgICAgICAgICBzZXJ2ZXIudXNlcl9pZCAhPSBjdXJyZW50 X3VzZXIuaWQ6CisgICAgICAgICAgICBzaGFyZWRzZXJ2ZXIgPSBTZXJ2ZXJNb2R1bGUuZ2V0X3No YXJlZF9zZXJ2ZXIoc2VydmVyLCBnaWQpCisKICAgICAgICAgIyBOb3QgYWxsIHBhcmFtZXRlcnMg Y2FuIGJlIG1vZGlmaWVkLCB3aGlsZSB0aGUgc2VydmVyIGlzIGNvbm5lY3RlZAogICAgICAgICBj b25maWdfcGFyYW1fbWFwID0gewogICAgICAgICAgICAgJ25hbWUnOiAnbmFtZScsCkBAIC01MDUs MTEgKzY2MSwxMiBAQCBjbGFzcyBTZXJ2ZXJOb2RlKFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAg ICAgICAndHVubmVsX3VzZXJuYW1lJzogJ3R1bm5lbF91c2VybmFtZScsCiAgICAgICAgICAgICAn dHVubmVsX2F1dGhlbnRpY2F0aW9uJzogJ3R1bm5lbF9hdXRoZW50aWNhdGlvbicsCiAgICAgICAg ICAgICAndHVubmVsX2lkZW50aXR5X2ZpbGUnOiAndHVubmVsX2lkZW50aXR5X2ZpbGUnLAorICAg ICAgICAgICAgJ3NoYXJlZCc6ICdzaGFyZWQnCiAgICAgICAgIH0KIAogICAgICAgICBkaXNwX2xi bCA9IHsKICAgICAgICAgICAgICduYW1lJzogZ2V0dGV4dCgnbmFtZScpLAotICAgICAgICAgICAg J2hvc3QnOiBnZXR0ZXh0KCdIb3N0IG5hbWUvYWRkcmVzcycpLAorICAgICAgICAgICAgJ2hvc3Rh ZGRyJzogZ2V0dGV4dCgnSG9zdCBuYW1lL2FkZHJlc3MnKSwKICAgICAgICAgICAgICdwb3J0Jzog Z2V0dGV4dCgnUG9ydCcpLAogICAgICAgICAgICAgJ2RiJzogZ2V0dGV4dCgnTWFpbnRlbmFuY2Ug ZGF0YWJhc2UnKSwKICAgICAgICAgICAgICd1c2VybmFtZSc6IGdldHRleHQoJ1VzZXJuYW1lJyks CkBAIC01NDAsNyArNjk3LDggQEAgY2xhc3MgU2VydmVyTm9kZShQR0NoaWxkTm9kZVZpZXcpOgog ICAgICAgICBzZWxmLl9zZXJ2ZXJfbW9kaWZ5X2Rpc2FsbG93ZWRfd2hlbl9jb25uZWN0ZWQoCiAg ICAgICAgICAgICBjb25uZWN0ZWQsIGRhdGEsIGRpc3BfbGJsKQogCi0gICAgICAgIGlkeCA9IHNl bGYuX3NldF92YWxpZF9hdHRyX3ZhbHVlKGRhdGEsIGNvbmZpZ19wYXJhbV9tYXAsIHNlcnZlcikK KyAgICAgICAgaWR4ID0gc2VsZi5fc2V0X3ZhbGlkX2F0dHJfdmFsdWUoZGF0YSwgY29uZmlnX3Bh cmFtX21hcCwgc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzaGFyZWRzZXJ2ZXIpCiAKICAgICAgICAgaWYgaWR4ID09IDA6CiAgICAgICAgICAgICByZXR1 cm4gbWFrZV9qc29uX3Jlc3BvbnNlKApAQCAtNTY3LDcgKzcyNSw3IEBAIGNsYXNzIFNlcnZlck5v ZGUoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgIG5vZGU9c2VsZi5ibHVlcHJpbnQuZ2Vu ZXJhdGVfYnJvd3Nlcl9ub2RlKAogICAgICAgICAgICAgICAgICIlZCIgJSAoc2VydmVyLmlkKSwg c2VydmVyLnNlcnZlcmdyb3VwX2lkLAogICAgICAgICAgICAgICAgIHNlcnZlci5uYW1lLAotICAg ICAgICAgICAgICAgIHNlcnZlcl9pY29uX2FuZF9iYWNrZ3JvdW5kKGNvbm5lY3RlZCwgbWFuYWdl ciwgc2VydmVyKSwKKyAgICAgICAgICAgICAgICBzZXJ2ZXJfaWNvbl9hbmRfYmFja2dyb3VuZChj b25uZWN0ZWQsIG1hbmFnZXIsIHNoYXJlZHNlcnZlcikgaWYgc2VydmVyLnNoYXJlZCBhbmQgc2Vy dmVyLnVzZXJfaWQgIT0gY3VycmVudF91c2VyLmlkIGVsc2Ugc2VydmVyX2ljb25fYW5kX2JhY2tn cm91bmQoY29ubmVjdGVkLCBtYW5hZ2VyLCBzZXJ2ZXIpLAogICAgICAgICAgICAgICAgIFRydWUs CiAgICAgICAgICAgICAgICAgc2VsZi5ub2RlX3R5cGUsCiAgICAgICAgICAgICAgICAgY29ubmVj dGVkPWNvbm5lY3RlZCwKQEAgLTU3Niw3ICs3MzQsNyBAQCBjbGFzcyBTZXJ2ZXJOb2RlKFBHQ2hp bGROb2RlVmlldyk6CiAgICAgICAgICAgICApCiAgICAgICAgICkKIAotICAgIGRlZiBfc2V0X3Zh bGlkX2F0dHJfdmFsdWUoc2VsZiwgZGF0YSwgY29uZmlnX3BhcmFtX21hcCwgc2VydmVyKToKKyAg ICBkZWYgX3NldF92YWxpZF9hdHRyX3ZhbHVlKHNlbGYsIGRhdGEsIGNvbmZpZ19wYXJhbV9tYXAs IHNlcnZlciwgc2hhcmVkc2VydmVyKToKIAogICAgICAgICBpZHggPSAwCiAgICAgICAgIGZvciBh cmcgaW4gY29uZmlnX3BhcmFtX21hcDoKQEAgLTU4Niw3ICs3NDQsMTEgQEAgY2xhc3MgU2VydmVy Tm9kZShQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAgICAgICAgICMgaXQgbWFudWFsbHkgdG8g aW50ZWdlcgogICAgICAgICAgICAgICAgIGlmIGFyZyA9PSAnc3NsY29tcHJlc3Npb24nOgogICAg ICAgICAgICAgICAgICAgICB2YWx1ZSA9IDEgaWYgdmFsdWUgZWxzZSAwCi0gICAgICAgICAgICAg ICAgc2V0YXR0cihzZXJ2ZXIsIGNvbmZpZ19wYXJhbV9tYXBbYXJnXSwgdmFsdWUpCisgICAgICAg ICAgICAgICAgIyBzZXRhdHRyKHNlcnZlciwgY29uZmlnX3BhcmFtX21hcFthcmddLCB2YWx1ZSkK KyAgICAgICAgICAgICAgICBpZiBzZXJ2ZXIuc2hhcmVkIGFuZCBzZXJ2ZXIudXNlcl9pZCAhPSBj dXJyZW50X3VzZXIuaWQ6CisgICAgICAgICAgICAgICAgICAgIHNldGF0dHIoc2hhcmVkc2VydmVy LCBjb25maWdfcGFyYW1fbWFwW2FyZ10sIHZhbHVlKQorICAgICAgICAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgICAgICAgIHNldGF0dHIoc2VydmVyLCBjb25maWdfcGFyYW1fbWFwW2FyZ10s IHZhbHVlKQogICAgICAgICAgICAgICAgIGlkeCArPSAxCiAKICAgICAgICAgcmV0dXJuIGlkeApA QCAtNjEyLDExICs3NzQsMTEgQEAgY2xhc3MgU2VydmVyTm9kZShQR0NoaWxkTm9kZVZpZXcpOgog ICAgICAgICAiIiIKICAgICAgICAgUmV0dXJuIGxpc3Qgb2YgYXR0cmlidXRlcyBvZiBhbGwgc2Vy dmVycy4KICAgICAgICAgIiIiCi0gICAgICAgIHNlcnZlcnMgPSBTZXJ2ZXIucXVlcnkuZmlsdGVy X2J5KAotICAgICAgICAgICAgdXNlcl9pZD1jdXJyZW50X3VzZXIuaWQsCi0gICAgICAgICAgICBz ZXJ2ZXJncm91cF9pZD1naWQpLm9yZGVyX2J5KFNlcnZlci5uYW1lKQorICAgICAgICBzZXJ2ZXJz ID0gU2VydmVyLnF1ZXJ5LmZpbHRlcigKKyAgICAgICAgICAgIG9yXyhTZXJ2ZXIudXNlcl9pZCA9 PSBjdXJyZW50X3VzZXIuaWQsCisgICAgICAgICAgICAgICAgU2VydmVyLnNoYXJlZCksCisgICAg ICAgICAgICBTZXJ2ZXIuc2VydmVyZ3JvdXBfaWQgPT0gZ2lkKS5vcmRlcl9ieShTZXJ2ZXIubmFt ZSkKICAgICAgICAgc2cgPSBTZXJ2ZXJHcm91cC5xdWVyeS5maWx0ZXJfYnkoCi0gICAgICAgICAg ICB1c2VyX2lkPWN1cnJlbnRfdXNlci5pZCwKICAgICAgICAgICAgIGlkPWdpZAogICAgICAgICAp LmZpcnN0KCkKICAgICAgICAgcmVzID0gW10KQEAgLTY1Myw3ICs4MTUsNiBAQCBjbGFzcyBTZXJ2 ZXJOb2RlKFBHQ2hpbGROb2RlVmlldyk6CiAgICAgZGVmIHByb3BlcnRpZXMoc2VsZiwgZ2lkLCBz aWQpOgogICAgICAgICAiIiJSZXR1cm4gbGlzdCBvZiBhdHRyaWJ1dGVzIG9mIGEgc2VydmVyIiIi CiAgICAgICAgIHNlcnZlciA9IFNlcnZlci5xdWVyeS5maWx0ZXJfYnkoCi0gICAgICAgICAgICB1 c2VyX2lkPWN1cnJlbnRfdXNlci5pZCwKICAgICAgICAgICAgIGlkPXNpZCkuZmlyc3QoKQogCiAg ICAgICAgIGlmIHNlcnZlciBpcyBOb25lOgpAQCAtNjYyLDkgKzgyMyw3IEBAIGNsYXNzIFNlcnZl ck5vZGUoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgICAgICBzdWNjZXNzPTAsCiAgICAg ICAgICAgICAgICAgZXJyb3Jtc2c9c2VsZi5ub3RfZm91bmRfZXJyb3JfbXNnKCkKICAgICAgICAg ICAgICkKLQogICAgICAgICBzZyA9IFNlcnZlckdyb3VwLnF1ZXJ5LmZpbHRlcl9ieSgKLSAgICAg ICAgICAgIHVzZXJfaWQ9Y3VycmVudF91c2VyLmlkLAogICAgICAgICAgICAgaWQ9c2VydmVyLnNl cnZlcmdyb3VwX2lkCiAgICAgICAgICkuZmlyc3QoKQogCkBAIC02NzYsNTAgKzgzNSw2MSBAQCBj bGFzcyBTZXJ2ZXJOb2RlKFBHQ2hpbGROb2RlVmlldyk6CiAKICAgICAgICAgaXNfc3NsID0gVHJ1 ZSBpZiBzZXJ2ZXIuc3NsX21vZGUgaW4gc2VsZi5TU0xfTU9ERVMgZWxzZSBGYWxzZQogCi0gICAg ICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAotICAgICAgICAgICAgcmVzcG9uc2U9ewotICAgICAg ICAgICAgICAgICdpZCc6IHNlcnZlci5pZCwKLSAgICAgICAgICAgICAgICAnbmFtZSc6IHNlcnZl ci5uYW1lLAotICAgICAgICAgICAgICAgICdob3N0Jzogc2VydmVyLmhvc3QsCi0gICAgICAgICAg ICAgICAgJ2hvc3RhZGRyJzogc2VydmVyLmhvc3RhZGRyLAotICAgICAgICAgICAgICAgICdwb3J0 Jzogc2VydmVyLnBvcnQsCi0gICAgICAgICAgICAgICAgJ2RiJzogc2VydmVyLm1haW50ZW5hbmNl X2RiLAotICAgICAgICAgICAgICAgICd1c2VybmFtZSc6IHNlcnZlci51c2VybmFtZSwKLSAgICAg ICAgICAgICAgICAnZ2lkJzogc3RyKHNlcnZlci5zZXJ2ZXJncm91cF9pZCksCi0gICAgICAgICAg ICAgICAgJ2dyb3VwLW5hbWUnOiBzZy5uYW1lLAotICAgICAgICAgICAgICAgICdjb21tZW50Jzog c2VydmVyLmNvbW1lbnQsCi0gICAgICAgICAgICAgICAgJ3JvbGUnOiBzZXJ2ZXIucm9sZSwKLSAg ICAgICAgICAgICAgICAnY29ubmVjdGVkJzogY29ubmVjdGVkLAotICAgICAgICAgICAgICAgICd2 ZXJzaW9uJzogbWFuYWdlci52ZXIsCi0gICAgICAgICAgICAgICAgJ3NzbG1vZGUnOiBzZXJ2ZXIu c3NsX21vZGUsCi0gICAgICAgICAgICAgICAgJ3NlcnZlcl90eXBlJzogbWFuYWdlci5zZXJ2ZXJf dHlwZSBpZiBjb25uZWN0ZWQgZWxzZSAncGcnLAotICAgICAgICAgICAgICAgICdiZ2NvbG9yJzog c2VydmVyLmJnY29sb3IsCi0gICAgICAgICAgICAgICAgJ2ZnY29sb3InOiBzZXJ2ZXIuZmdjb2xv ciwKLSAgICAgICAgICAgICAgICAnZGJfcmVzJzogc2VydmVyLmRiX3Jlcy5zcGxpdCgnLCcpIGlm IHNlcnZlci5kYl9yZXMgZWxzZSBOb25lLAotICAgICAgICAgICAgICAgICdwYXNzZmlsZSc6IHNl cnZlci5wYXNzZmlsZSBpZiBzZXJ2ZXIucGFzc2ZpbGUgZWxzZSBOb25lLAotICAgICAgICAgICAg ICAgICdzc2xjZXJ0Jzogc2VydmVyLnNzbGNlcnQgaWYgaXNfc3NsIGVsc2UgTm9uZSwKLSAgICAg ICAgICAgICAgICAnc3Nsa2V5Jzogc2VydmVyLnNzbGtleSBpZiBpc19zc2wgZWxzZSBOb25lLAot ICAgICAgICAgICAgICAgICdzc2xyb290Y2VydCc6IHNlcnZlci5zc2xyb290Y2VydCBpZiBpc19z c2wgZWxzZSBOb25lLAotICAgICAgICAgICAgICAgICdzc2xjcmwnOiBzZXJ2ZXIuc3NsY3JsIGlm IGlzX3NzbCBlbHNlIE5vbmUsCi0gICAgICAgICAgICAgICAgJ3NzbGNvbXByZXNzaW9uJzogVHJ1 ZSBpZiBpc19zc2wgYW5kIHNlcnZlci5zc2xjb21wcmVzc2lvbgotICAgICAgICAgICAgICAgIGVs c2UgRmFsc2UsCi0gICAgICAgICAgICAgICAgJ3NlcnZpY2UnOiBzZXJ2ZXIuc2VydmljZSBpZiBz ZXJ2ZXIuc2VydmljZSBlbHNlIE5vbmUsCi0gICAgICAgICAgICAgICAgJ2Nvbm5lY3RfdGltZW91 dCc6Ci0gICAgICAgICAgICAgICAgICAgIHNlcnZlci5jb25uZWN0X3RpbWVvdXQgaWYgc2VydmVy LmNvbm5lY3RfdGltZW91dCBlbHNlIDAsCi0gICAgICAgICAgICAgICAgJ3VzZV9zc2hfdHVubmVs Jzogc2VydmVyLnVzZV9zc2hfdHVubmVsCi0gICAgICAgICAgICAgICAgaWYgc2VydmVyLnVzZV9z c2hfdHVubmVsIGVsc2UgMCwKLSAgICAgICAgICAgICAgICAndHVubmVsX2hvc3QnOiBzZXJ2ZXIu dHVubmVsX2hvc3QgaWYgc2VydmVyLnR1bm5lbF9ob3N0Ci0gICAgICAgICAgICAgICAgZWxzZSBO b25lLAotICAgICAgICAgICAgICAgICd0dW5uZWxfcG9ydCc6IHNlcnZlci50dW5uZWxfcG9ydCBp ZiBzZXJ2ZXIudHVubmVsX3BvcnQKLSAgICAgICAgICAgICAgICBlbHNlIDIyLAotICAgICAgICAg ICAgICAgICd0dW5uZWxfdXNlcm5hbWUnOiBzZXJ2ZXIudHVubmVsX3VzZXJuYW1lCi0gICAgICAg ICAgICAgICAgaWYgc2VydmVyLnR1bm5lbF91c2VybmFtZSBlbHNlIE5vbmUsCi0gICAgICAgICAg ICAgICAgJ3R1bm5lbF9pZGVudGl0eV9maWxlJzogc2VydmVyLnR1bm5lbF9pZGVudGl0eV9maWxl Ci0gICAgICAgICAgICAgICAgaWYgc2VydmVyLnR1bm5lbF9pZGVudGl0eV9maWxlIGVsc2UgTm9u ZSwKLSAgICAgICAgICAgICAgICAndHVubmVsX2F1dGhlbnRpY2F0aW9uJzogc2VydmVyLnR1bm5l bF9hdXRoZW50aWNhdGlvbgotICAgICAgICAgICAgICAgIGlmIHNlcnZlci50dW5uZWxfYXV0aGVu dGljYXRpb24gZWxzZSAwCi0gICAgICAgICAgICB9Ci0gICAgICAgICkKKyAgICAgICAgIyBpZiBz ZXJ2ZXIuc2hhcmVkIGFuZCBub3QgY3VycmVudF91c2VyLmhhc19yb2xlKCJBZG1pbmlzdHJhdG9y Iik6CisgICAgICAgIGlmIHNlcnZlci5zaGFyZWQgYW5kIHNlcnZlci51c2VyX2lkICE9IGN1cnJl bnRfdXNlci5pZDoKKyAgICAgICAgICAgIHNoYXJlZF9zZXJ2ZXIgPSBTZXJ2ZXJNb2R1bGUuZ2V0 X3NoYXJlZF9zZXJ2ZXIoc2VydmVyLCBnaWQpCisgICAgICAgICAgICBzZXJ2ZXIgPSBTZXJ2ZXJN b2R1bGUuZ2V0X3NoYXJlZF9zZXJ2ZXJfcHJvcGVydGllcyhzZXJ2ZXIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWRf c2VydmVyKQorCisgICAgICAgIHJlc3BvbnNlID0geworICAgICAgICAgICAgJ2lkJzogc2VydmVy LmlkLAorICAgICAgICAgICAgJ25hbWUnOiBzZXJ2ZXIubmFtZSwKKyAgICAgICAgICAgICdzZXJ2 ZXJfb3duZXInOiBzZXJ2ZXIuc2VydmVyX293bmVyIGlmICgKKyAgICAgICAgICAgICAgICBzZXJ2 ZXIuc2hhcmVkIGFuZCBub3QgY3VycmVudF91c2VyLmhhc19yb2xlKAorICAgICAgICAgICAgICAg ICAgICAiQWRtaW5pc3RyYXRvciIpKSBlbHNlIE5vbmUsCisgICAgICAgICAgICAndXNlcl9pZCc6 IHNlcnZlci51c2VyX2lkLAorICAgICAgICAgICAgJ2hvc3QnOiBzZXJ2ZXIuaG9zdCwKKyAgICAg ICAgICAgICdob3N0YWRkcic6IHNlcnZlci5ob3N0YWRkciwKKyAgICAgICAgICAgICdwb3J0Jzog c2VydmVyLnBvcnQsCisgICAgICAgICAgICAnZGInOiBzZXJ2ZXIubWFpbnRlbmFuY2VfZGIsCisg ICAgICAgICAgICAnc2hhcmVkJzogc2VydmVyLnNoYXJlZCBpZiBjb25maWcuU0VSVkVSX01PREUg ZWxzZSBOb25lLAorICAgICAgICAgICAgJ3VzZXJuYW1lJzogc2VydmVyLnVzZXJuYW1lLAorICAg ICAgICAgICAgJ2dpZCc6IHN0cihzZXJ2ZXIuc2VydmVyZ3JvdXBfaWQpLAorICAgICAgICAgICAg J2dyb3VwLW5hbWUnOiBzZy5uYW1lLAorICAgICAgICAgICAgJ2NvbW1lbnQnOiBzZXJ2ZXIuY29t bWVudCwKKyAgICAgICAgICAgICdyb2xlJzogc2VydmVyLnJvbGUsCisgICAgICAgICAgICAnY29u bmVjdGVkJzogY29ubmVjdGVkLAorICAgICAgICAgICAgJ3ZlcnNpb24nOiBtYW5hZ2VyLnZlciwK KyAgICAgICAgICAgICdzc2xtb2RlJzogc2VydmVyLnNzbF9tb2RlLAorICAgICAgICAgICAgJ3Nl cnZlcl90eXBlJzogbWFuYWdlci5zZXJ2ZXJfdHlwZSBpZiBjb25uZWN0ZWQgZWxzZSAncGcnLAor ICAgICAgICAgICAgJ2JnY29sb3InOiBzZXJ2ZXIuYmdjb2xvciwKKyAgICAgICAgICAgICdmZ2Nv bG9yJzogc2VydmVyLmZnY29sb3IsCisgICAgICAgICAgICAnZGJfcmVzJzogc2VydmVyLmRiX3Jl cy5zcGxpdCgnLCcpIGlmIHNlcnZlci5kYl9yZXMgZWxzZSBOb25lLAorICAgICAgICAgICAgJ3Bh c3NmaWxlJzogc2VydmVyLnBhc3NmaWxlIGlmIHNlcnZlci5wYXNzZmlsZSBlbHNlIE5vbmUsCisg ICAgICAgICAgICAnc3NsY2VydCc6IHNlcnZlci5zc2xjZXJ0IGlmIGlzX3NzbCBlbHNlIE5vbmUs CisgICAgICAgICAgICAnc3Nsa2V5Jzogc2VydmVyLnNzbGtleSBpZiBpc19zc2wgZWxzZSBOb25l LAorICAgICAgICAgICAgJ3NzbHJvb3RjZXJ0Jzogc2VydmVyLnNzbHJvb3RjZXJ0IGlmIGlzX3Nz bCBlbHNlIE5vbmUsCisgICAgICAgICAgICAnc3NsY3JsJzogc2VydmVyLnNzbGNybCBpZiBpc19z c2wgZWxzZSBOb25lLAorICAgICAgICAgICAgJ3NzbGNvbXByZXNzaW9uJzogVHJ1ZSBpZiBpc19z c2wgYW5kIHNlcnZlci5zc2xjb21wcmVzc2lvbgorICAgICAgICAgICAgZWxzZSBGYWxzZSwKKyAg ICAgICAgICAgICdzZXJ2aWNlJzogc2VydmVyLnNlcnZpY2UgaWYgc2VydmVyLnNlcnZpY2UgZWxz ZSBOb25lLAorICAgICAgICAgICAgJ2Nvbm5lY3RfdGltZW91dCc6CisgICAgICAgICAgICAgICAg c2VydmVyLmNvbm5lY3RfdGltZW91dCBpZiBzZXJ2ZXIuY29ubmVjdF90aW1lb3V0IGVsc2UgMCwK KyAgICAgICAgICAgICd1c2Vfc3NoX3R1bm5lbCc6IHNlcnZlci51c2Vfc3NoX3R1bm5lbAorICAg ICAgICAgICAgaWYgc2VydmVyLnVzZV9zc2hfdHVubmVsIGVsc2UgMCwKKyAgICAgICAgICAgICd0 dW5uZWxfaG9zdCc6IHNlcnZlci50dW5uZWxfaG9zdCBpZiBzZXJ2ZXIudHVubmVsX2hvc3QKKyAg ICAgICAgICAgIGVsc2UgTm9uZSwKKyAgICAgICAgICAgICd0dW5uZWxfcG9ydCc6IHNlcnZlci50 dW5uZWxfcG9ydCBpZiBzZXJ2ZXIudHVubmVsX3BvcnQKKyAgICAgICAgICAgIGVsc2UgMjIsCisg ICAgICAgICAgICAndHVubmVsX3VzZXJuYW1lJzogc2VydmVyLnR1bm5lbF91c2VybmFtZQorICAg ICAgICAgICAgaWYgc2VydmVyLnR1bm5lbF91c2VybmFtZSBlbHNlIE5vbmUsCisgICAgICAgICAg ICAndHVubmVsX2lkZW50aXR5X2ZpbGUnOiBzZXJ2ZXIudHVubmVsX2lkZW50aXR5X2ZpbGUKKyAg ICAgICAgICAgIGlmIHNlcnZlci50dW5uZWxfaWRlbnRpdHlfZmlsZSBlbHNlIE5vbmUsCisgICAg ICAgICAgICAndHVubmVsX2F1dGhlbnRpY2F0aW9uJzogc2VydmVyLnR1bm5lbF9hdXRoZW50aWNh dGlvbgorICAgICAgICAgICAgaWYgc2VydmVyLnR1bm5lbF9hdXRoZW50aWNhdGlvbiBlbHNlIDAK KyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKHJlc3BvbnNlKQogCiAg ICAgQGxvZ2luX3JlcXVpcmVkCiAgICAgZGVmIGNyZWF0ZShzZWxmLCBnaWQpOgpAQCAtODAxLDEx ICs5NzEsMTEgQEAgY2xhc3MgU2VydmVyTm9kZShQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAg ICAgICAgIHR1bm5lbF9wb3J0PWRhdGEuZ2V0KCd0dW5uZWxfcG9ydCcsIDIyKSwKICAgICAgICAg ICAgICAgICB0dW5uZWxfdXNlcm5hbWU9ZGF0YS5nZXQoJ3R1bm5lbF91c2VybmFtZScsIE5vbmUp LAogICAgICAgICAgICAgICAgIHR1bm5lbF9hdXRoZW50aWNhdGlvbj1kYXRhLmdldCgndHVubmVs X2F1dGhlbnRpY2F0aW9uJywgMCksCi0gICAgICAgICAgICAgICAgdHVubmVsX2lkZW50aXR5X2Zp bGU9ZGF0YS5nZXQoJ3R1bm5lbF9pZGVudGl0eV9maWxlJywgTm9uZSkKKyAgICAgICAgICAgICAg ICB0dW5uZWxfaWRlbnRpdHlfZmlsZT1kYXRhLmdldCgndHVubmVsX2lkZW50aXR5X2ZpbGUnLCBO b25lKSwKKyAgICAgICAgICAgICAgICBzaGFyZWQ9ZGF0YS5nZXQoJ3NoYXJlZCcsIE5vbmUpCiAg ICAgICAgICAgICApCiAgICAgICAgICAgICBkYi5zZXNzaW9uLmFkZChzZXJ2ZXIpCiAgICAgICAg ICAgICBkYi5zZXNzaW9uLmNvbW1pdCgpCi0KICAgICAgICAgICAgIGNvbm5lY3RlZCA9IEZhbHNl CiAgICAgICAgICAgICB1c2VyID0gTm9uZQogICAgICAgICAgICAgbWFuYWdlciA9IE5vbmUKQEAg LTEwMDUsNiArMTE3NSwxMSBAQCBjbGFzcyBTZXJ2ZXJOb2RlKFBHQ2hpbGROb2RlVmlldyk6CiAK ICAgICAgICAgIyBGZXRjaCBTZXJ2ZXIgRGV0YWlscwogICAgICAgICBzZXJ2ZXIgPSBTZXJ2ZXIu cXVlcnkuZmlsdGVyX2J5KGlkPXNpZCkuZmlyc3QoKQorICAgICAgICBzaGFyZWRfc2VydmVyID0g Tm9uZQorICAgICAgICBpZiBzZXJ2ZXIuc2hhcmVkIGFuZCBzZXJ2ZXIudXNlcl9pZCAhPSBjdXJy ZW50X3VzZXIuaWQ6CisgICAgICAgICAgICBzaGFyZWRfc2VydmVyID0gU2VydmVyTW9kdWxlLmdl dF9zaGFyZWRfc2VydmVyKHNlcnZlciwgZ2lkKQorICAgICAgICAgICAgc2VydmVyID0gU2VydmVy TW9kdWxlLmdldF9zaGFyZWRfc2VydmVyX3Byb3BlcnRpZXMoc2VydmVyLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVk X3NlcnZlcikKICAgICAgICAgaWYgc2VydmVyIGlzIE5vbmU6CiAgICAgICAgICAgICByZXR1cm4g YmFkX3JlcXVlc3Qoc2VsZi5ub3RfZm91bmRfZXJyb3JfbXNnKCkpCiAKQEAgLTEwNjIsNyArMTIz Nyw2IEBAIGNsYXNzIFNlcnZlck5vZGUoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgICAg ICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfYXBw LmxvZ2dlci5leGNlcHRpb24oZSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCi0KICAgICAgICAgaWYgJ3Bhc3N3b3JkJyBu b3QgaW4gZGF0YToKICAgICAgICAgICAgIGNvbm5fcGFzc3dkID0gZ2V0YXR0cihjb25uLCAncGFz c3dvcmQnLCBOb25lKQogICAgICAgICAgICAgaWYgY29ubl9wYXNzd2QgaXMgTm9uZSBhbmQgbm90 IHNlcnZlci5zYXZlX3Bhc3N3b3JkIGFuZCBcCkBAIC0xMTI0LDEwICsxMjk4LDE4IEBAIGNsYXNz IFNlcnZlck5vZGUoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgICAgICAgICAgIyBldmVy eSB0aW1lIHVzZXIgdHJ5IHRvIGNvbm5lY3QKICAgICAgICAgICAgICAgICAgICAgIyAxIGlzIFRy dWUgaW4gU1FMaXRlIGFzIG5vIGJvb2xlYW4gdHlwZQogICAgICAgICAgICAgICAgICAgICBzZXRh dHRyKHNlcnZlciwgJ3NhdmVfcGFzc3dvcmQnLCAxKQorICAgICAgICAgICAgICAgICAgICBpZiBz ZXJ2ZXIuc2hhcmVkIGFuZCBzZXJ2ZXIudXNlcl9pZCAhPSBjdXJyZW50X3VzZXIuaWQ6CisgICAg ICAgICAgICAgICAgICAgICAgICBzZXRhdHRyKHNoYXJlZF9zZXJ2ZXIsICdzYXZlX3Bhc3N3b3Jk JywgMSkKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAg IHNldGF0dHIoc2VydmVyLCAnc2F2ZV9wYXNzd29yZCcsIDEpCisKICAgICAgICAgICAgICAgICAg ICAgIyBTYXZlIHRoZSBlbmNyeXB0ZWQgcGFzc3dvcmQgdXNpbmcgdGhlIHVzZXIncyBsb2dpbgog ICAgICAgICAgICAgICAgICAgICAjIHBhc3N3b3JkIGtleSwgaWYgdGhlcmUgaXMgYW55IHBhc3N3 b3JkIHRvIHNhdmUKICAgICAgICAgICAgICAgICAgICAgaWYgcGFzc3dvcmQ6Ci0gICAgICAgICAg ICAgICAgICAgICAgICBzZXRhdHRyKHNlcnZlciwgJ3Bhc3N3b3JkJywgcGFzc3dvcmQpCisgICAg ICAgICAgICAgICAgICAgICAgICBpZiBzZXJ2ZXIuc2hhcmVkIGFuZCBzZXJ2ZXIudXNlcl9pZCAh PSBjdXJyZW50X3VzZXIuaWQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0YXR0cihz aGFyZWRfc2VydmVyLCAncGFzc3dvcmQnLCBwYXNzd29yZCkKKyAgICAgICAgICAgICAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0YXR0cihzZXJ2ZXIsICdw YXNzd29yZCcsIHBhc3N3b3JkKQogICAgICAgICAgICAgICAgICAgICBkYi5zZXNzaW9uLmNvbW1p dCgpCiAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAg ICAgICAgICAjIFJlbGVhc2UgQ29ubmVjdGlvbgpAQCAtMTU2MSwyMSArMTc0MywzOSBAQCBjbGFz cyBTZXJ2ZXJOb2RlKFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgIDpyZXR1cm46CiAgICAgICAg ICIiIgogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZXJ2ZXIgPSBTZXJ2ZXIucXVlcnkuZmls dGVyX2J5KAotICAgICAgICAgICAgICAgIHVzZXJfaWQ9Y3VycmVudF91c2VyLmlkLCBpZD1zaWQK LSAgICAgICAgICAgICkuZmlyc3QoKQotCisgICAgICAgICAgICBzZXJ2ZXIgPSBTZXJ2ZXIucXVl cnkuZmlsdGVyX2J5KGlkPXNpZCkuZmlyc3QoKQorICAgICAgICAgICAgc2hhcmVkX3NlcnZlciA9 IE5vbmUKICAgICAgICAgICAgIGlmIHNlcnZlciBpcyBOb25lOgogICAgICAgICAgICAgICAgIHJl dHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCiAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MCwK ICAgICAgICAgICAgICAgICAgICAgaW5mbz1zZWxmLm5vdF9mb3VuZF9lcnJvcl9tc2coKQogICAg ICAgICAgICAgICAgICkKIAotICAgICAgICAgICAgc2V0YXR0cihzZXJ2ZXIsICdwYXNzd29yZCcs IE5vbmUpCisgICAgICAgICAgICBpZiBzZXJ2ZXIuc2hhcmVkIGFuZCBzZXJ2ZXIudXNlcl9pZCAh PSBjdXJyZW50X3VzZXIuaWQ6CisgICAgICAgICAgICAgICAgc2hhcmVkX3NlcnZlciA9IFNoYXJl ZFNlcnZlci5xdWVyeS5maWx0ZXJfYnkoCisgICAgICAgICAgICAgICAgICAgIG5hbWU9c2VydmVy Lm5hbWUsIHVzZXJfaWQ9Y3VycmVudF91c2VyLmlkLAorICAgICAgICAgICAgICAgICAgICBzZXJ2 ZXJncm91cF9pZD1naWQpLmZpcnN0KCkKKworICAgICAgICAgICAgICAgIGlmIHNoYXJlZF9zZXJ2 ZXIgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25z ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MCwKKyAgICAgICAgICAgICAgICAg ICAgICAgIGluZm89Z2V0dGV4dCgiQ291bGQgbm90IGZpbmQgdGhlIHJlcXVpcmVkIHNlcnZlci4i KQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgc2VydmVyID0gU2VydmVy TW9kdWxlLiBcCisgICAgICAgICAgICAgICAgICAgIGdldF9zaGFyZWRfc2VydmVyX3Byb3BlcnRp ZXMoc2VydmVyLCBzaGFyZWRfc2VydmVyKQorCisgICAgICAgICAgICBpZiBzZXJ2ZXIuc2hhcmVk IGFuZCBzZXJ2ZXIudXNlcl9pZCAhPSBjdXJyZW50X3VzZXIuaWQ6CisgICAgICAgICAgICAgICAg c2V0YXR0cihzaGFyZWRfc2VydmVyLCAnc2F2ZV9wYXNzd29yZCcsIE5vbmUpCisgICAgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgICAgIHNldGF0dHIoc2VydmVyLCAnc2F2ZV9wYXNzd29yZCcs IE5vbmUpCisKICAgICAgICAgICAgICMgSWYgcGFzc3dvcmQgd2FzIHNhdmVkIHRoZW4gY2xlYXIg dGhlIGZsYWcgYWxzbwogICAgICAgICAgICAgIyAwIGlzIEZhbHNlIGluIFNRTGl0ZSBkYgogICAg ICAgICAgICAgaWYgc2VydmVyLnNhdmVfcGFzc3dvcmQ6Ci0gICAgICAgICAgICAgICAgc2V0YXR0 cihzZXJ2ZXIsICdzYXZlX3Bhc3N3b3JkJywgMCkKKyAgICAgICAgICAgICAgICBpZiBzZXJ2ZXIu c2hhcmVkIGFuZCBzZXJ2ZXIudXNlcl9pZCAhPSBjdXJyZW50X3VzZXIuaWQ6CisgICAgICAgICAg ICAgICAgICAgIHNldGF0dHIoc2hhcmVkX3NlcnZlciwgJ3NhdmVfcGFzc3dvcmQnLCAwKQorICAg ICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHNldGF0dHIoc2VydmVyLCAn c2F2ZV9wYXNzd29yZCcsIDApCiAgICAgICAgICAgICBkYi5zZXNzaW9uLmNvbW1pdCgpCiAgICAg ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dl ci5lcnJvcigKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3N0YXRpYy9pbWcvc2hhcmVkc2VydmVyYmFkLnN2ZyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3N0YXRpYy9pbWcvc2hhcmVkc2VydmVyYmFkLnN2Zwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjQ0NTUwODlhYwotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3N0YXRp Yy9pbWcvc2hhcmVkc2VydmVyYmFkLnN2ZwpAQCAtMCwwICsxLDQ1IEBACis8P3htbCB2ZXJzaW9u PSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJh dG9yIDI0LjIuMiwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQg MCkgIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3 dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hs aW5rIiB4PSIwcHgiIHk9IjBweCIKKwkgdmlld0JveD0iMCAwIDE2IDE2IiBzdHlsZT0iZW5hYmxl LWJhY2tncm91bmQ6bmV3IDAgMCAxNiAxNjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgorPHN0eWxl IHR5cGU9InRleHQvY3NzIj4KKwkuc3Qwe2ZpbGw6I0YyRjJGMjt9CisJLnN0MXtmaWxsOiM5QkE1 QjA7fQorCS5zdDJ7ZmlsbDpub25lO3N0cm9rZTojOUJBNUIwO3N0cm9rZS13aWR0aDowLjc1O3N0 cm9rZS1taXRlcmxpbWl0OjE7fQorCS5zdDN7ZmlsbDojRjdGN0Y3O30KKwkuc3Q0e2ZpbGw6IzM1 NEE1Rjt9CisJLnN0NXtmaWxsOm5vbmU7c3Ryb2tlOiNEMDAyMUI7c3Ryb2tlLXdpZHRoOjEuNTtz dHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7fQorPC9zdHlsZT4KKzxn PgorCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik02LjcsMi4xaDQuNmMwLjYsMCwxLjEsMC41LDEuMSwx LjF2MC44YzAsMC42LTAuNSwxLjEtMS4xLDEuMUg2LjdjLTAuNiwwLTEuMS0wLjUtMS4xLTEuMVYz LjIKKwkJQzUuNiwyLjYsNi4xLDIuMSw2LjcsMi4xeiIvPgorCTxwYXRoIGNsYXNzPSJzdDEiIGQ9 Ik0xMS4zLDIuNWMwLjQsMCwwLjgsMC4zLDAuOCwwLjh2MC44YzAsMC40LTAuMywwLjgtMC44LDAu OEg2LjdDNi4zLDQuOCw2LDQuNSw2LDQuMVYzLjIKKwkJYzAtMC40LDAuMy0wLjcsMC44LTAuN0gx MS4zIE0xMS4zLDEuN0g2LjdjLTAuOCwwLTEuNSwwLjctMS41LDEuNXYwLjhjMCwwLjgsMC43LDEu NSwxLjUsMS41aDQuNmMwLjgsMCwxLjUtMC43LDEuNS0xLjVWMy4yCisJCUMxMi44LDIuNCwxMi4x LDEuNywxMS4zLDEuN0wxMS4zLDEuN3oiLz4KKwk8bGluZSBjbGFzcz0ic3QyIiB4MT0iOC45IiB5 MT0iMy42IiB4Mj0iNi44IiB5Mj0iMy42Ii8+CisJPHBhdGggY2xhc3M9InN0MCIgZD0iTTYuNyw1 LjJoNC42YzAuNiwwLDEuMSwwLjUsMS4xLDEuMXYwLjhjMCwwLjYtMC41LDEuMS0xLjEsMS4xSDYu N2MtMC42LDAtMS4xLTAuNS0xLjEtMS4xVjYuMworCQlDNS42LDUuNyw2LjEsNS4yLDYuNyw1LjJ6 Ii8+CisJPHBhdGggY2xhc3M9InN0MSIgZD0iTTExLjMsNS42YzAuNCwwLDAuOCwwLjMsMC44LDAu OHYwLjhjMCwwLjQtMC4zLDAuOC0wLjgsMC44SDYuN0M2LjMsNy45LDYsNy42LDYsNy4xVjYuMwor CQljMC0wLjQsMC4zLTAuNywwLjgtMC43SDExLjMgTTExLjMsNC44SDYuN2MtMC44LDAtMS41LDAu Ny0xLjUsMS41djAuOGMwLDAuOCwwLjcsMS41LDEuNSwxLjVoNC42YzAuOCwwLDEuNS0wLjcsMS41 LTEuNVY2LjMKKwkJQzEyLjgsNS41LDEyLjEsNC44LDExLjMsNC44TDExLjMsNC44eiIvPgorCTxs aW5lIGNsYXNzPSJzdDIiIHgxPSI4LjkiIHkxPSI2LjciIHgyPSI2LjgiIHkyPSI2LjciLz4KKwk8 cGF0aCBjbGFzcz0ic3QwIiBkPSJNNi43LDguM2g0LjZjMC42LDAsMS4xLDAuNSwxLjEsMS4xdjAu OWMwLDAuNi0wLjUsMS4xLTEuMSwxLjFjMCwwLDAsMCwwLDBINi43Yy0wLjYsMC0xLjEtMC41LTEu MS0xLjFsMCwwCisJCVY5LjRDNS42LDguOCw2LjEsOC4zLDYuNyw4LjNDNi43LDguMyw2LjcsOC4z LDYuNyw4LjN6Ii8+CisJPHBhdGggY2xhc3M9InN0MSIgZD0iTTExLjMsOC43YzAuNCwwLDAuOCww LjMsMC44LDAuOHYwLjhjMCwwLjQtMC4zLDAuOC0wLjgsMC44SDYuN0M2LjMsMTEsNiwxMC43LDYs MTAuM1Y5LjRDNiw5LDYuMyw4LjcsNi43LDguNworCQlIMTEuMyBNMTEuMyw3LjlINi43Yy0wLjgs MC0xLjUsMC43LTEuNSwxLjV2MC44YzAsMC44LDAuNywxLjUsMS41LDEuNWg0LjZjMC44LDAsMS41 LTAuNywxLjUtMS41VjkuNEMxMi44LDguNiwxMi4xLDcuOSwxMS4zLDcuOXoKKwkJIi8+CisJPGxp bmUgY2xhc3M9InN0MiIgeDE9IjguOSIgeTE9IjkuOCIgeDI9IjYuOCIgeTI9IjkuOCIvPgorPC9n PgorPHBhdGggY2xhc3M9InN0MyIgZD0iTTExLjYsMTAuNWMtMC42LDAuMy0wLjgsMC4xLTEuMS0w LjJjLTAuMS0wLjItMC4zLTAuNC0wLjYtMC41TDcuMSw4LjVDNi44LDguNCw2LjQsOC4zLDYuMSw4 LjMKKwlDNS4xLDguMSw0LjIsOC40LDMuNCw5bC0xLjQsMS4xdjIuN2gwLjl2LTAuMmwzLjcsMS44 YzAuNCwwLjIsMC43LDAuMywxLjEsMC4zYzAuMywwLDAuNy0wLjEsMS0wLjJsNi4xLTIuNgorCWMw LjMtMC4xLDAuNi0wLjQsMC43LTAuN2MwLjEtMC4zLDAuMS0wLjcsMC0xYy0wLjMtMC42LTEuMS0w LjktMS43LTAuNmwtMC40LDAuMkwxMS42LDEwLjUiLz4KKzxwYXRoIGNsYXNzPSJzdDQiIGQ9Ik0x NS41LDEwLjJjLTAuMy0wLjYtMS4xLTAuOS0xLjctMC42bC0wLjQsMC4ybC0xLjgsMC44bDAuMyww LjhsMS44LTAuOGwwLjQtMC4yYzAuMi0wLjEsMC41LDAsMC42LDAuMgorCWMwLjEsMC4xLDAuMSww LjIsMCwwLjNjMCwwLjEtMC4xLDAuMi0wLjIsMC4ybC02LjEsMi42Yy0wLjUsMC4yLTEsMC4yLTEu NCwwbC00LjEtMnYtMS4ybDEtMC44QzQuNSw5LjIsNS4yLDksNiw5LjEKKwljMC4zLDAsMC42LDAu MSwwLjgsMC4ybDIuOCwxLjJjMC4xLDAsMC4xLDAuMSwwLjIsMC4yYzAuMSwwLjEsMC4xLDAuMyww LDAuNGMwLDAsMCwwLjEtMC4xLDAuMWMtMC4xLDAuMS0wLjMsMC4yLTAuNSwwLjFsLTIuMi0xCisJ bC0wLjQsMC44bDIuMiwxYzAuMiwwLjEsMC40LDAuMSwwLjUsMC4xYzAuNCwwLDAuNy0wLjIsMS0w LjRjMC4xLTAuMSwwLjItMC4yLDAuMi0wLjNjMC4yLTAuNCwwLjEtMC45LTAuMS0xLjIKKwljLTAu MS0wLjItMC4zLTAuNC0wLjYtMC41TDcuMSw4LjVDNi44LDguNCw2LjQsOC4zLDYuMSw4LjNDNS4x LDguMSw0LjIsOC40LDMuNCw5TDIuOSw5LjRWOS4zYzAtMC42LTAuNC0xLTEtMUgxLjQKKwljLTAu NiwwLTEsMC40LTEsMXY0LjFjMCwwLjYsMC40LDEsMSwxaDAuNWMwLjYsMCwxLTAuNCwxLTF2LTAu Nmgwdi0wLjJsMy43LDEuOGMwLjQsMC4yLDAuNywwLjMsMS4xLDAuM2MwLjMsMCwwLjctMC4xLDEt MC4yCisJbDYuMS0yLjZjMC4zLTAuMSwwLjYtMC40LDAuNy0wLjdDMTUuNywxMC45LDE1LjcsMTAu NSwxNS41LDEwLjJ6IE0xLjksMTMuNEgxLjRWOS4zaDAuNUwxLjksMTMuNHoiLz4KKzxsaW5lIGNs YXNzPSJzdDUiIHgxPSIxMy44IiB5MT0iMS4zIiB4Mj0iMTAuOCIgeTI9IjQuMyIvPgorPGxpbmUg Y2xhc3M9InN0NSIgeDE9IjEzLjgiIHkxPSI0LjMiIHgyPSIxMC44IiB5Mj0iMS4zIi8+Cis8L3N2 Zz4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3N0YXRpYy9qcy9zZXJ2ZXIuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9zdGF0aWMvanMvc2VydmVyLmpzCmluZGV4IDdjMWI1OGJlOC4uYTVlZjUzMmM2IDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9zdGF0 aWMvanMvc2VydmVyLmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3N0YXRpYy9qcy9zZXJ2ZXIuanMKQEAgLTU2LDcgKzU2LDEyIEBAIGRlZmluZSgncGdh ZG1pbi5ub2RlLnNlcnZlcicsIFsKICAgICAgIHR5cGU6ICdzZXJ2ZXInLAogICAgICAgZGlhbG9n SGVscDogdXJsX2ZvcignaGVscC5zdGF0aWMnLCB7J2ZpbGVuYW1lJzogJ3NlcnZlcl9kaWFsb2cu aHRtbCd9KSwKICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdTZXJ2ZXInKSwKLSAgICAgIGNhbkRyb3A6 IHRydWUsCisgICAgICBjYW5Ecm9wOiBmdW5jdGlvbihub2RlKXsKKyAgICAgICAgdmFyIHNlcnZl ck93bmVyID0gbm9kZS51c2VyX2lkOworICAgICAgICBpZiAoc2VydmVyT3duZXIgIT0gY3VycmVu dF91c2VyLmlkKQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRydWU7 CisgICAgICB9LAogICAgICAgZHJvcEFzUmVtb3ZlOiB0cnVlLAogICAgICAgZHJvcFByaW9yaXR5 OiA1LAogICAgICAgaGFzU3RhdGlzdGljczogdHJ1ZSwKQEAgLTc1LDEyICs4MCwxMiBAQCBkZWZp bmUoJ3BnYWRtaW4ubm9kZS5zZXJ2ZXInLCBbCiAgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9zZXJ2 ZXJfb25fc2cnLCBub2RlOiAnc2VydmVyX2dyb3VwJywgbW9kdWxlOiB0aGlzLAogICAgICAgICAg IGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9w ZXJ0aWVzJywKICAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiAxLCBsYWJl bDogZ2V0dGV4dCgnU2VydmVyLi4uJyksCi0gICAgICAgICAgZGF0YToge2FjdGlvbjogJ2NyZWF0 ZSd9LCBpY29uOiAnd2NUYWJJY29uIGljb24tc2VydmVyJywKKyAgICAgICAgICBkYXRhOiB7YWN0 aW9uOiAnY3JlYXRlJ30sIGljb246ICd3Y1RhYkljb24gaWNvbi1zZXJ2ZXInLCBlbmFibGU6ICdj YW5DcmVhdGUnLAogICAgICAgICB9LHsKICAgICAgICAgICBuYW1lOiAnY3JlYXRlX3NlcnZlcics IG5vZGU6ICdzZXJ2ZXInLCBtb2R1bGU6IHRoaXMsCiAgICAgICAgICAgYXBwbGllczogWydvYmpl Y3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAogICAgICAg ICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDMsIGxhYmVsOiBnZXR0ZXh0KCdTZXJ2 ZXIuLi4nKSwKLSAgICAgICAgICBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJ30sIGljb246ICd3Y1Rh Ykljb24gaWNvbi1zZXJ2ZXInLAorICAgICAgICAgIGRhdGE6IHthY3Rpb246ICdjcmVhdGUnfSwg aWNvbjogJ3djVGFiSWNvbiBpY29uLXNlcnZlcicsIGVuYWJsZTogJ2NhbkNyZWF0ZScsCiAgICAg ICAgIH0sewogICAgICAgICAgIG5hbWU6ICdjb25uZWN0X3NlcnZlcicsIG5vZGU6ICdzZXJ2ZXIn LCBtb2R1bGU6IHRoaXMsCiAgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCdd LCBjYWxsYmFjazogJ2Nvbm5lY3Rfc2VydmVyJywKQEAgLTE1MCw2ICsxNTUsMTMgQEAgZGVmaW5l KCdwZ2FkbWluLm5vZGUuc2VydmVyJywgWwogICAgICAgaXNfbm90X2Nvbm5lY3RlZDogZnVuY3Rp b24obm9kZSkgewogICAgICAgICByZXR1cm4gKG5vZGUgJiYgbm9kZS5jb25uZWN0ZWQgIT0gdHJ1 ZSk7CiAgICAgICB9LAorICAgICAgY2FuQ3JlYXRlOiBmdW5jdGlvbihub2RlKXsKKyAgICAgICAg dmFyIHNlcnZlck93bmVyID0gbm9kZS51c2VyX2lkOworICAgICAgICBpZiAoc2VydmVyT3duZXIg PT0gY3VycmVudF91c2VyLmlkIHx8IF8uaXNVbmRlZmluZWQoc2VydmVyT3duZXIpKQorICAgICAg ICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgIH0sCiAgICAg ICBpc19jb25uZWN0ZWQ6IGZ1bmN0aW9uKG5vZGUpIHsKICAgICAgICAgcmV0dXJuIChub2RlICYm IG5vZGUuY29ubmVjdGVkID09IHRydWUpOwogICAgICAgfSwKQEAgLTIyNiwyOCArMjM4LDI1IEBA IGRlZmluZSgncGdhZG1pbi5ub2RlLnNlcnZlcicsIFsKICAgICAgICAgICAgICAgICAgICAgZCA9 IHQuaXRlbURhdGEoaSk7CiAgICAgICAgICAgICAgICAgICAgIHQucmVtb3ZlSWNvbihpKTsKICAg ICAgICAgICAgICAgICAgICAgZC5jb25uZWN0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAg ICAgZC5pY29uID0gJ2ljb24tc2VydmVyLW5vdC1jb25uZWN0ZWQnOworICAgICAgICAgICAgICAg ICAgICBpZiAoZC5zaGFyZWQpeworICAgICAgICAgICAgICAgICAgICAgIGQuaWNvbiA9ICdpY29u LXNoYXJlZC1zZXJ2ZXItbm90LWNvbm5lY3RlZCc7CisgICAgICAgICAgICAgICAgICAgIH1lbHNl eworICAgICAgICAgICAgICAgICAgICAgIGQuaWNvbiA9ICdpY29uLXNlcnZlci1ub3QtY29ubmVj dGVkJzsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB0LmFkZElj b24oaSwge2ljb246IGQuaWNvbn0pOwogICAgICAgICAgICAgICAgICAgICBvYmouY2FsbGJhY2tz LnJlZnJlc2guYXBwbHkob2JqLCBbbnVsbCwgaV0pOwogICAgICAgICAgICAgICAgICAgICBpZiAo cGdCcm93c2VyLnNlcnZlckluZm8gJiYgZC5faWQgaW4gcGdCcm93c2VyLnNlcnZlckluZm8pIHsK ICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgcGdCcm93c2VyLnNlcnZlckluZm9bZC5faWRd OwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHBnQnJvd3Nlci5l bmFibGVfZGlzYWJsZV9tZW51cyhpKTsKLSAgICAgICAgICAgICAgICAgICAgLy8gVHJpZ2dlciBz ZXJ2ZXIgZGlzY29ubmVjdCBldmVudAotICAgICAgICAgICAgICAgICAgICBwZ0Jyb3dzZXIuRXZl bnRzLnRyaWdnZXIoCi0gICAgICAgICAgICAgICAgICAgICAgJ3BnYWRtaW46c2VydmVyOmRpc2Nv bm5lY3QnLAotICAgICAgICAgICAgICAgICAgICAgIHtpdGVtOiBpLCBkYXRhOiBkfSwgZmFsc2UK LSAgICAgICAgICAgICAgICAgICAgKTsKLSAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg ICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAg ICAgICAgIEFsZXJ0aWZ5LmVycm9yKHJlcy5lcnJvcm1zZyk7Ci0gICAgICAgICAgICAgICAgICAg IH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oZS5zdGFj ayB8fCBlKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAg ICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFsZXJ0aWZ5LmVycm9yKHJlcy5lcnJv cm1zZyk7CisgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAg ICAgICAgICAgICAgY29uc29sZS53YXJuKGUuc3RhY2sgfHwgZSk7CisgICAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgIHQudW5sb2FkKGkpOwogICAgICAgICAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHQudW5sb2FkKGkpOwotICAgICAgICAgICAg ICAgICAgfQotICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICB9fSkKICAgICAg ICAgICAgICAgICAuZmFpbChmdW5jdGlvbih4aHIsIHN0YXR1cywgZXJyb3IpIHsKICAgICAgICAg ICAgICAgICAgIEFsZXJ0aWZ5LnBnUmVzcEVycm9yTm90aWZ5KHhociwgZXJyb3IpOwogICAgICAg ICAgICAgICAgICAgdC51bmxvYWQoaSk7CkBAIC03NDUsMTIgKzc1NCwyMSBAQCBkZWZpbmUoJ3Bn YWRtaW4ubm9kZS5zZXJ2ZXInLCBbCiAgICAgICAgICAgaWQ6ICdpZCcsIGxhYmVsOiBnZXR0ZXh0 KCdJRCcpLCB0eXBlOiAnaW50JywgbW9kZTogWydwcm9wZXJ0aWVzJ10sCiAgICAgICAgIH0sewog ICAgICAgICAgIGlkOiAnbmFtZScsIGxhYmVsOiBnZXR0ZXh0KCdOYW1lJyksIHR5cGU6ICd0ZXh0 JywKLSAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwKLSAg ICAgICAgfSx7CisgICAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2VkaXQnLCAnY3JlYXRl J10sIGRpc2FibGVkOiBmdW5jdGlvbihtb2RlbCl7CisgICAgICAgICAgICBpZiAobW9kZWwuYXR0 cmlidXRlcy5zaGFyZWQpCisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAg cmV0dXJuIGZhbHNlOworICAgICAgICAgIH0sCisgICAgICAgIH0sCisgICAgICAgIHsKICAgICAg ICAgICBpZDogJ2dpZCcsIGxhYmVsOiBnZXR0ZXh0KCdTZXJ2ZXIgZ3JvdXAnKSwgdHlwZTogJ2lu dCcsCiAgICAgICAgICAgY29udHJvbDogJ25vZGUtbGlzdC1ieS1pZCcsIG5vZGU6ICdzZXJ2ZXJf Z3JvdXAnLAotICAgICAgICAgIG1vZGU6IFsnY3JlYXRlJywgJ2VkaXQnXSwgc2VsZWN0Mjoge2Fs bG93Q2xlYXI6IGZhbHNlfSwKLSAgICAgICAgfSx7CisgICAgICAgICAgbW9kZTogWydjcmVhdGUn LCAnZWRpdCddLCBzZWxlY3QyOiB7YWxsb3dDbGVhcjogZmFsc2V9LCB2aXNpYmxlOiAnaXNWaXNp YmxlJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnc2VydmVyX293bmVy JywgbGFiZWw6IGdldHRleHQoJ1NoYXJlZCBTZXJ2ZXIgT3duZXInKSwgdHlwZTogJ3RleHQnLCBt b2RlOiBbJ3Byb3BlcnRpZXMnXSwKKyAgICAgICAgfSwKKyAgICAgICAgewogICAgICAgICAgIGlk OiAnc2VydmVyX3R5cGUnLCBsYWJlbDogZ2V0dGV4dCgnU2VydmVyIHR5cGUnKSwgdHlwZTogJ29w dGlvbnMnLAogICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcyddLCB2aXNpYmxlOiAnaXNDb25u ZWN0ZWQnLAogICAgICAgICAgICdvcHRpb25zJzogc3VwcG9ydGVkX3NlcnZlcnMsCkBAIC03NzMs NiArNzkxLDIyIEBAIGRlZmluZSgncGdhZG1pbi5ub2RlLnNlcnZlcicsIFsKICAgICAgICAgICBp ZDogJ2Nvbm5lY3Rfbm93JywgY29udHJvbExhYmVsOiBnZXR0ZXh0KCdDb25uZWN0IG5vdz8nKSwg dHlwZTogJ2NoZWNrYm94JywKICAgICAgICAgICBncm91cDogbnVsbCwgbW9kZTogWydjcmVhdGUn XSwKICAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdzaGFyZWQnLCBsYWJlbDogZ2V0dGV4dCgn U2hhcmVkIHdpdGggYWxsPycpLCB0eXBlOiAnc3dpdGNoJywKKyAgICAgICAgICBtb2RlOiBbJ3By b3BlcnRpZXMnLCAnY3JlYXRlJywgJ2VkaXQnXSwgJ29wdGlvbnMnOiB7J3NpemUnOiAnbWluaSd9 LAorICAgICAgICAgIHJlYWRvbmx5OiBmdW5jdGlvbihtb2RlbCl7CisgICAgICAgICAgICB2YXIg c2VydmVyT3duZXIgPSBtb2RlbC5hdHRyaWJ1dGVzLnVzZXJfaWQ7CisgICAgICAgICAgICBpZiAo IW1vZGVsLmlzTmV3KCkgJiYgc2VydmVyT3duZXIgIT0gY3VycmVudF91c2VyLmlkKXsKKyAgICAg ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4g ZmFsc2U7CisgICAgICAgICAgfSx2aXNpYmxlOiBmdW5jdGlvbigpeworICAgICAgICAgICAgaWYg KGN1cnJlbnRfdXNlci5pc19hZG1pbiAmJiBwZ0FkbWluLnNlcnZlcl9tb2RlID09ICdUcnVlJykK KyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK KyAgICAgICAgICB9LAorICAgICAgICB9LAorICAgICAgICB7CiAgICAgICAgICAgaWQ6ICdjb21t ZW50JywgbGFiZWw6IGdldHRleHQoJ0NvbW1lbnRzJyksIHR5cGU6ICdtdWx0aWxpbmUnLCBncm91 cDogbnVsbCwKICAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUn XSwKICAgICAgICAgfSx7CkBAIC0xMDU3LDcgKzEwOTEsMjMgQEAgZGVmaW5lKCdwZ2FkbWluLm5v ZGUuc2VydmVyJywgWwogICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2Ny ZWF0ZSddLCByZWFkb25seTogJ2lzQ29ubmVjdGVkJywKICAgICAgICAgICBtaW46IDAsCiAgICAg ICAgIH1dLAorICAgICAgICBpc1Zpc2libGU6IGZ1bmN0aW9uKG1vZGVsKXsKKyAgICAgICAgICB2 YXIgc2VydmVyT3duZXIgPSBtb2RlbC5hdHRyaWJ1dGVzLnVzZXJfaWQ7CisgICAgICAgICAgaWYg KCFtb2RlbC5pc05ldygpICYmIHNlcnZlck93bmVyICE9IGN1cnJlbnRfdXNlci5pZCl7CisgICAg ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgfQorICAgICAgICAgIHJldHVybiB0cnVl OworCisgICAgICAgIH0sCiAgICAgICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpIHsKKyAgICAgICAg ICB2YXIgbXNnOworICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5jbGVhcigpOworICAgICAgICAg IGlmICghdGhpcy5pc05ldygpICYmIHRoaXMuYXR0cmlidXRlcy5zaGFyZWQgJiYgdGhpcy5hdHRy aWJ1dGVzLnVzZXJfaWQgIT0gY3VycmVudF91c2VyLmlkICYmKF8uaXNOdWxsKHRoaXMuZ2V0KCd1 c2VybmFtZScpKSkpIHsKKyAgICAgICAgICAgIG1zZyA9IGdldHRleHQoJ1VzZXJuYW1lIGlzIG5v dCBzZXQsUGxlYXNlIHNldCB0aGUgdXNlcm5hbWUuJyk7CisgICAgICAgICAgICB0aGlzLmVycm9y TW9kZWwuc2V0KCd1c2VybmFtZScsIG1zZyk7CisgICAgICAgICAgICByZXR1cm4gbXNnOworICAg ICAgICAgIH0KKwogICAgICAgICAgIGNvbnN0IHZhbGlkYXRlTW9kZWwgPSBuZXcgbW9kZWxWYWxp ZGF0aW9uLk1vZGVsVmFsaWRhdGlvbih0aGlzKTsKICAgICAgICAgICByZXR1cm4gdmFsaWRhdGVN b2RlbC52YWxpZGF0ZSgpOwogICAgICAgICB9LApAQCAtMTE1Myw3ICsxMjAzLDE4IEBAIGRlZmlu ZSgncGdhZG1pbi5ub2RlLnNlcnZlcicsIFsKICAgICAgICAgfQogICAgICAgfSwKICAgICB9KTsK KwogICAgIHZhciBjb25uZWN0X3RvX3NlcnZlciA9IGZ1bmN0aW9uKG9iaiwgZGF0YSwgdHJlZSwg aXRlbSwgcmVjb25uZWN0KSB7CisgICAgLy8gT3BlbiBwcm9wZXJ0aWVzIGRpYWxvZyBpbiBlZGl0 IG1vZGUKKyAgICAgIGNvbnN0IHNlbGVjdGVkVHJlZU5vZGUgPSB0cmVlLnNlbGVjdGVkKCkubGVu Z3RoID4gMCA/IHRyZWUuc2VsZWN0ZWQoKSA6IHRyZWUuZmlyc3QoKTsKKyAgICAgIGNvbnN0IHNl bGVjdGVkVHJlZU5vZGVEYXRhID0gc2VsZWN0ZWRUcmVlTm9kZSAmJiBzZWxlY3RlZFRyZWVOb2Rl Lmxlbmd0aCA9PT0gMSA/IHRyZWUuaXRlbURhdGEoc2VsZWN0ZWRUcmVlTm9kZSkgOiB1bmRlZmlu ZWQ7CisgICAgICBpZiAoZGF0YS5zaGFyZWQgJiYgXy5pc051bGwoZGF0YS51c2VyX25hbWUpICYm IGRhdGEudXNlcl9pZCAhPSBjdXJyZW50X3VzZXIuaWQpeworICAgICAgICBpZiAoc2VsZWN0ZWRU cmVlTm9kZURhdGEuX3R5cGUgPT0gJ3NlcnZlcicpCisgICAgICAgICAgcGdBZG1pbi5Ccm93c2Vy Lk5vZGUuY2FsbGJhY2tzLnNob3dfb2JqX3Byb3BlcnRpZXMuY2FsbCgKKyAgICAgICAgICAgIHBn QWRtaW4uQnJvd3Nlci5Ob2Rlc1t0cmVlLml0ZW1EYXRhKHNlbGVjdGVkVHJlZU5vZGUpLl90eXBl XSwge2FjdGlvbjogJ2VkaXQnfQorICAgICAgICAgICk7CisgICAgICAgIHJldHVybjsKKyAgICAg IH0KICAgICAgIHZhciB3YXNDb25uZWN0ZWQgPSByZWNvbm5lY3QgfHwgZGF0YS5jb25uZWN0ZWQs CiAgICAgICAgIG9uRmFpbHVyZSA9IGZ1bmN0aW9uKAogICAgICAgICAgIHhociwgc3RhdHVzLCBl cnJvciwgX25vZGUsIF9kYXRhLCBfdHJlZSwgX2l0ZW0sIF93YXNDb25uZWN0ZWQKQEAgLTExNjQs NyArMTIyNSwxMiBAQCBkZWZpbmUoJ3BnYWRtaW4ubm9kZS5zZXJ2ZXInLCBbCiAgICAgICAgICAg Ly8gTGV0J3Mgbm90IGNoYW5nZSB0aGUgc3RhdHVzIG9mIHRoZSB0cmVlIG5vZGUgbm93LgogICAg ICAgICAgIGlmICghX3dhc0Nvbm5lY3RlZCkgewogICAgICAgICAgICAgdHJlZS5zZXRJbm9kZShf aXRlbSk7Ci0gICAgICAgICAgICB0cmVlLmFkZEljb24oX2l0ZW0sIHtpY29uOiAnaWNvbi1zZXJ2 ZXItbm90LWNvbm5lY3RlZCd9KTsKKyAgICAgICAgICAgIGlmIChkYXRhLnNoYXJlZCl7CisgICAg ICAgICAgICAgIHRyZWUuYWRkSWNvbihfaXRlbSwge2ljb246ICdpY29uLXNoYXJlZC1zZXJ2ZXIt bm90LWNvbm5lY3RlZCd9KTsKKyAgICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgICB0cmVl LmFkZEljb24oX2l0ZW0sIHtpY29uOiAnaWNvbi1zZXJ2ZXItbm90LWNvbm5lY3RlZCd9KTsKKyAg ICAgICAgICAgIH0KKwogICAgICAgICAgIH0KIAogICAgICAgICAgIEFsZXJ0aWZ5LnBnTm90aWZp ZXIoJ2Vycm9yJywgeGhyLCBlcnJvciwgZnVuY3Rpb24obXNnKSB7CkBAIC0xMzEyLDcgKzEzNzgs MTEgQEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUuc2VydmVyJywgWwogICAgICAgICBfdHJlZS51bmxv YWQoX2l0ZW0pOwogICAgICAgICBfdHJlZS5zZXRJbm9kZShfaXRlbSk7CiAgICAgICAgIF90cmVl LnJlbW92ZUljb24oX2l0ZW0pOwotICAgICAgICBfdHJlZS5hZGRJY29uKF9pdGVtLCB7aWNvbjog J2ljb24tc2VydmVyLW5vdC1jb25uZWN0ZWQnfSk7CisgICAgICAgIGlmIChfZGF0YS5zaGFyZWQp eworICAgICAgICAgIF90cmVlLmFkZEljb24oX2l0ZW0sIHtpY29uOiAnaWNvbi1zaGFyZWQtc2Vy dmVyLW5vdC1jb25uZWN0ZWQnfSk7CisgICAgICAgIH1lbHNleworICAgICAgICAgIF90cmVlLmFk ZEljb24oX2l0ZW0sIHtpY29uOiAnaWNvbi1zZXJ2ZXItbm90LWNvbm5lY3RlZCd9KTsKKyAgICAg ICAgfQogICAgICAgICBvYmoudHJpZ2dlcignY29ubmVjdDpjYW5jZWxsZWQnLCBkYXRhLl9pZCwg ZGF0YS5kYiwgb2JqLCBfaXRlbSwgX2RhdGEpOwogICAgICAgICBwZ0Jyb3dzZXIuRXZlbnRzLnRy aWdnZXIoCiAgICAgICAgICAgJ3BnYWRtaW46c2VydmVyOmNvbm5lY3Q6Y2FuY2VsbGVkJywgZGF0 YS5faWQsIF9pdGVtLCBfZGF0YSwgb2JqCkBAIC0xMzc4LDcgKzE0NDgsMTEgQEAgZGVmaW5lKCdw Z2FkbWluLm5vZGUuc2VydmVyJywgWwogICAgICAgICB9KQogICAgICAgICAuZmFpbChmdW5jdGlv bih4aHIsIHN0YXR1cywgZXJyb3IpIHsKICAgICAgICAgICB0cmVlLnNldElub2RlKGl0ZW0pOwot ICAgICAgICAgIHRyZWUuYWRkSWNvbihpdGVtLCB7aWNvbjogJ2ljb24tc2VydmVyLW5vdC1jb25u ZWN0ZWQnfSk7CisgICAgICAgICAgaWYgKGRhdGEuc2hhcmVkKXsKKyAgICAgICAgICAgIHRyZWUu YWRkSWNvbihpdGVtLCB7aWNvbjogJ2ljb24tc2hhcmVkLXNlcnZlci1ub3QtY29ubmVjdGVkJ30p OworICAgICAgICAgIH1lbHNleworICAgICAgICAgICAgdHJlZS5hZGRJY29uKGl0ZW0sIHtpY29u OiAnaWNvbi1zZXJ2ZXItbm90LWNvbm5lY3RlZCd9KTsKKyAgICAgICAgICB9CiAgICAgICAgICAg QWxlcnRpZnkucGdSZXNwRXJyb3JOb3RpZnkoeGhyLCBlcnJvcik7CiAgICAgICAgIH0pOwogICAg IH07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy90ZW1wbGF0ZXMvY3NzL3NlcnZlcnMuY3NzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvdGVtcGxhdGVzL2Nzcy9zZXJ2ZXJzLmNzcwppbmRleCA5M2M0NTM2ZDQu LmExNzhmNGZlNSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvdGVtcGxhdGVzL2Nzcy9zZXJ2ZXJzLmNzcworKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZW1wbGF0ZXMvY3NzL3NlcnZlcnMuY3NzCkBAIC0x NSwzICsxNSwxMiBAQAogICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICBoZWlnaHQ6IDEuM2Vt OwogfQorCisuaWNvbi1zaGFyZWQtc2VydmVyLW5vdC1jb25uZWN0ZWQgeworICBiYWNrZ3JvdW5k LWltYWdlOiB1cmwoJ3t7IHVybF9mb3IoJ05PREUtc2VydmVyLnN0YXRpYycsIGZpbGVuYW1lPSdp bWcvc2hhcmVkc2VydmVyYmFkLnN2ZycpIH19JykgIWltcG9ydGFudDsKKyAgYmFja2dyb3VuZC1y ZXBlYXQ6IG5vLXJlcGVhdDsKKyAgYmFja2dyb3VuZC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7Cisg IGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsKKyAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKKyAgaGVp Z2h0OiAxLjNlbTsKK30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3Rlc3RzL3NlcnZlcnNfdGVzdF9kYXRhLmpzb24gYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy9zZXJ2ZXJzX3Rlc3RfZGF0YS5qc29u Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZTllYjczY2UwCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVz dHMvc2VydmVyc190ZXN0X2RhdGEuanNvbgpAQCAtMCwwICsxLDg2MyBAQAoreworICAiYWRkX3Nl cnZlciI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJBZGQgc2VydmVyIHdpdGggc2VydmljZSBp ZCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9vYmovIiwKKyAgICAgICJpc19wb3Np dGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJvd25lcl9zZXJ2ZXIiOiB0cnVlLAorICAgICAgInRl c3RfZGF0YSI6IHsKKyAgICAgICAgInNlcnZpY2UiOiAiVGVzdERCIgorICAgICAgfSwKKyAgICAg ICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAg ICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9 CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJUZXN0IGRlZmF1bHQgc2VydmVyIHVybCIs CisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2 ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJvd25lcl9zZXJ2ZXIiOiB0cnVlLAorICAgICAgInRlc3Rf ZGF0YSI6IHsKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAg ICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJz dGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAi QWRkIHNlcnZlciB3aXRoIGNvbm5lY3QgdGltZW91dCIsCisgICAgICAidXJsIjogIi9icm93c2Vy L3NlcnZlci9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJ0 ZXN0X2RhdGEiOiB7CisgICAgICAgICJjb25uZWN0X3RpbWVvdXQiOiA1CisgICAgICB9LAorICAg ICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAg ICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAg IH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkFkZCBzZXJ2ZXIgdXNpbmcgU1NIIHR1 bm5lbCB3aXRoIHBhc3N3b3JkIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL29iai8i LAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgInNzaF90dW5uZWwiOiB0 cnVlLAorICAgICAgIndpdGhfcGFzc3dvcmQiOiB0cnVlLAorICAgICAgInNhdmVfcGFzc3dvcmQi OiBmYWxzZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJ1c2Vfc3NoX3R1bm5lbCI6 IDEsCisgICAgICAgICJ0dW5uZWxfaG9zdCI6ICIxMjcuMC4wLjEiLAorICAgICAgICAidHVubmVs X3BvcnQiOiAyMiwKKyAgICAgICAgInR1bm5lbF91c2VybmFtZSI6ICJ1c2VyIiwKKyAgICAgICAg InR1bm5lbF9hdXRoZW50aWNhdGlvbiI6IDEsCisgICAgICAgICJ0dW5uZWxfaWRlbnRpdHlfZmls ZSI6ICJwa2V5X3JzYSIKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNl LAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAg ICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5h bWUiOiAiQWRkIHNlcnZlciB1c2luZyBTU0ggdHVubmVsIHdpdGggaWRlbnRpdHkgZmlsZSIsCisg ICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90 ZXN0IjogdHJ1ZSwKKyAgICAgICJzc2hfdHVubmVsIjogdHJ1ZSwKKyAgICAgICJ3aXRoX3Bhc3N3 b3JkIjogZmFsc2UsCisgICAgICAic2F2ZV9wYXNzd29yZCI6IGZhbHNlLAorICAgICAgInRlc3Rf ZGF0YSI6IHsKKyAgICAgICAgInVzZV9zc2hfdHVubmVsIjogMSwKKyAgICAgICAgInR1bm5lbF9o b3N0IjogIjEyNy4wLjAuMSIsCisgICAgICAgICJ0dW5uZWxfcG9ydCI6IDIyLAorICAgICAgICAi dHVubmVsX3VzZXJuYW1lIjogInVzZXIiLAorICAgICAgICAidHVubmVsX2F1dGhlbnRpY2F0aW9u IjogMSwKKyAgICAgICAgInR1bm5lbF9pZGVudGl0eV9maWxlIjogInBrZXlfcnNhIgorICAgICAg fSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjog e30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAw CisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJBZGQgc2VydmVyIHVzaW5n IFNTSCB0dW5uZWwgd2l0aCBwYXNzd29yZCBhbmQgc2F2ZWQgaXQiLAorICAgICAgInVybCI6ICIv YnJvd3Nlci9zZXJ2ZXIvb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisg ICAgICAic3NoX3R1bm5lbCI6IHRydWUsCisgICAgICAid2l0aF9wYXNzd29yZCI6IHRydWUsCisg ICAgICAic2F2ZV9wYXNzd29yZCI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAg ICAidXNlX3NzaF90dW5uZWwiOiAxLAorICAgICAgICAidHVubmVsX2hvc3QiOiAiMTI3LjAuMC4x IiwKKyAgICAgICAgInR1bm5lbF9wb3J0IjogMjIsCisgICAgICAgICJ0dW5uZWxfdXNlcm5hbWUi OiAidXNlciIsCisgICAgICAgICJ0dW5uZWxfYXV0aGVudGljYXRpb24iOiAwLAorICAgICAgICAi dHVubmVsX3Bhc3N3b3JkIjogIjEyMzQ1NiIKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1 aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2Rh dGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAg eworICAgICAgIm5hbWUiOiAiQWRkIHNlcnZlciB1c2luZyBTU0ggdHVubmVsIHdpdGggaWRlbnRp dHkgZmlsZSBhbmQgc2F2ZSB0aGUgcGFzc3dvcmQiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9z ZXJ2ZXIvb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAic3No X3R1bm5lbCI6IHRydWUsCisgICAgICAid2l0aF9wYXNzd29yZCI6IGZhbHNlLAorICAgICAgInNh dmVfcGFzc3dvcmQiOiB0cnVlLAorICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAgInVzZV9z c2hfdHVubmVsIjogMSwKKyAgICAgICAgInR1bm5lbF9ob3N0IjogIjEyNy4wLjAuMSIsCisgICAg ICAgICJ0dW5uZWxfcG9ydCI6IDIyLAorICAgICAgICAidHVubmVsX3VzZXJuYW1lIjogInVzZXIi LAorICAgICAgICAidHVubmVsX2F1dGhlbnRpY2F0aW9uIjogMSwKKyAgICAgICAgInR1bm5lbF9p ZGVudGl0eV9maWxlIjogInBrZXlfcnNhIiwKKyAgICAgICAgInR1bm5lbF9wYXNzd29yZCI6ICIx MjM0NTYiCisgICAgICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAg ICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3Rh dHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkFk ZCBzZXJ2ZXIgd2l0aCBwYXNzd29yZCBhbmQgc2F2ZSBwYXNzd29yZCB0byB0cnVlIiwKKyAgICAg ICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3Qi OiB0cnVlLAorICAgICAgIndpdGhfcHdkIjogdHJ1ZSwKKyAgICAgICJ3aXRoX3NhdmUiOiB0cnVl LAorICAgICAgIm93bmVyX3NlcnZlciI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAg ICAgICAic2VydmljZSI6ICJUZXN0REIiCisgICAgICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWly ZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRh IjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsK KyAgICAgICJuYW1lIjogIkFkZCBzZXJ2ZXIgd2l0aCBwYXNzd29yZCBhbmQgc2F2ZSBwYXNzd29y ZCB0byBmYWxzZSIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9vYmovIiwKKyAgICAg ICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJ3aXRoX3B3ZCI6IHRydWUsCisgICAg ICAid2l0aF9zYXZlIjogZmFsc2UsCisgICAgICAib3duZXJfc2VydmVyIjogdHJ1ZSwKKyAgICAg ICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJzZXJ2aWNlIjogIlRlc3REQiIKKyAgICAgIH0sCisg ICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAor ICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAg ICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiQWRkIHNlcnZlciB3aXRob3V0IHBh c3N3b3JkIGFuZCBzYXZlIHBhc3N3b3JkIHRvIHRydWUiLAorICAgICAgInVybCI6ICIvYnJvd3Nl ci9zZXJ2ZXIvb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAi d2l0aF9wd2QiOiBmYWxzZSwKKyAgICAgICJ3aXRoX3NhdmUiOiB0cnVlLAorICAgICAgIm93bmVy X3NlcnZlciI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAic2VydmljZSI6 ICJUZXN0REIiCisgICAgICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAg ICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAi c3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjog IkFkZCBzZXJ2ZXIgd2l0aCBjb25uZWN0IG5vdyIsCisgICAgICAidXJsIjogIi9icm93c2VyL3Nl cnZlci9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJvd25l cl9zZXJ2ZXIiOiB0cnVlLAorICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAgInNlcnZpY2Ui OiAiVGVzdERCIgorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisg ICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAg InN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfQorICBdLAorICAiaXNfcGFzc3dvcmRf c2F2ZWQiOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiQ29ubmVjdCBzZXJ2ZXIgd2l0aCAnc2F2 ZSBwYXNzd29yZCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9jb25uZWN0LyIsCisg ICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAg ICAgICAiaXNfcGFzc3dvcmRfc2F2ZWQiOiB0cnVlCisgICAgICB9LAorICAgICAgIm1vY2tpbmdf cmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3Rl ZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAsCisgICAgICAgICJtZXNzYWdl IjogIlNlcnZlciBjb25uZWN0ZWQuIgorICAgICAgfQorICAgIH0KKyAgXSwKKyAgImdldF9zZXJ2 ZXIiOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiR2V0IGEgc2VydmVyIFVSTCIsCisgICAgICAi dXJsIjogIi9icm93c2VyL3NlcnZlci9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0Ijog dHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRh Ijoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjog MjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJSZWxvYWQgYSBzZXJ2 ZXIgY29uZmlndXJhdGlvbiIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9yZWxvYWQv IiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVp cmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0 YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7 CisgICAgICAibmFtZSI6ICJHZXQgYSBzZXJ2ZXIgVVJMIHVzaW5nIHdyb25nIHNlcnZlciBpZCIs CisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2 ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJpbmNvcnJlY3Rfc2VydmVyX2lkIjogdHJ1ZSwKKyAgICAg ICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAg ICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNDEwCisgICAgICB9 CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJHZXQgYSBzZXJ2ZXIgTm9kZSBkZXBlbmRh bnRzIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL2RlcGVuZGVudC8iLAorICAgICAg ImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxz ZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAg ICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJu YW1lIjogIkdldCBhIHNlcnZlciBOb2RlIGRlcGVuZGVuY3kiLAorICAgICAgInVybCI6ICIvYnJv d3Nlci9zZXJ2ZXIvZGVwZW5kZW5jeS8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVl LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7 fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAK KyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkdldCBhIHNlcnZlciBOb2Rl IHNxbCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9zcWwvIiwKKyAgICAgICJpc19w b3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisg ICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAg InN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6 ICJHZXQgYSBzZXJ2ZXIgTm9kZSBtc3FsIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVy L21zcWwvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5n X3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0 ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwK KyAgICB7CisgICAgICAibmFtZSI6ICJHZXQgYSBzZXJ2ZXIgTm9kZSBzdGF0aXN0aWNzIiwKKyAg ICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL3N0YXRzLyIsCisgICAgICAiaXNfcG9zaXRpdmVf dGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1v Y2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNf Y29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiR2V0IGEg c2VydmVyIHBncGFzcyBkZXRhaWxzIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL2No ZWNrX3BncGFzcy8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1v Y2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJl eHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA0MTAKKyAgICAgIH0KKyAg ICB9CisgIF0sCisgICJnZXRfc2hhcmVkX3NlcnZlciI6IFsKKyAgICB7CisgICAgICAibmFtZSI6 ICJHZXQgYSBzaGFyZWQgc2VydmVyIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL29i ai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgInNoYXJlZCI6IHRy dWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6 IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIw MAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiR2V0IGEgYWxsIHNoYXJl ZCBzZXJ2ZXIiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvb2JqLyIsCisgICAgICAi aXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAic2hhcmVkIjogdHJ1ZSwKKyAgICAgICJu b19zZXJ2ZXJfaWQiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAg ICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAi c3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjog IkdldCB0aGUgYWxsIGF2YWlsYWJsZSBzaGFyZWQgc2VydmVyIiwKKyAgICAgICJ1cmwiOiAiL2Jy b3dzZXIvc2VydmVyL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAg ICAgIm5vX3NlcnZlcl9pZCI6IHRydWUsCisgICAgICAic2hhcmVkIjogdHJ1ZSwKKyAgICAgICJz ZXJ2ZXJfbGlzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAg ICAgIm1vY2tfZGF0YSI6IHsKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAg ICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfQorICBdLAorICAiZ2V0X2Fs bF9zZXJ2ZXIiOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiR2V0IHRoZSBhbGwgY2hpbGRyZW4g b2Ygc2VydmVyIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL2NoaWxkcmVuLyIsCisg ICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAiY2hpbGRyZW4iOiB0cnVlLAor ICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7Cisg ICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6 IDUwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiR2V0IHRoZSBhbGwg YXZhaWxhYmxlIHNlcnZlcnMiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvbm9kZXMv IiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJpbnZhbGlkX3NlcnZl cl9ncm91cCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAg Im1vY2tfZGF0YSI6IHsKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAg ICAgInN0YXR1c19jb2RlIjogNDEwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFt ZSI6ICJHZXQgdGhlIGFsbCBhdmFpbGFibGUgc2VydmVyIG9mIHNlcnZlciBncm91cCIsCisgICAg ICAidXJsIjogIi9icm93c2VyL3NlcnZlci9ub2Rlcy8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rl c3QiOiB0cnVlLAorICAgICAgInNlcnZlcl9saXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3Jl cXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgfSwKKyAgICAgICJl eHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAg ICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkdldCB0aGUgYWxsIGF2YWlsYWJsZSBzZXJ2ZXIg b2Ygc2VydmVyIGdyb3VwIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL25vZGVzLyIs CisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAic2VydmVyX2xpc3QiOiB0 cnVlLAorICAgICAgInNlcnZlcnMiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBm YWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7CisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2Rh dGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAg eworICAgICAgIm5hbWUiOiAiR2V0IHRoZSBhbGwgY29ubmVjdGVkIHNlcnZlcnMiLAorICAgICAg InVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvbm9kZXMvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0 IjogdHJ1ZSwKKyAgICAgICJzZXJ2ZXJfbGlzdCI6IHRydWUsCisgICAgICAic2VydmVycyI6IHRy dWUsCisgICAgICAiY29ubmVjdGVkIjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjog ZmFsc2UsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9k YXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9CisgIF0s CisgICJjb25uZWN0X3NlcnZlciI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJHZXQgYSBzZXJ2 ZXIgY29ubmVjdGlvbiIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9jb25uZWN0LyIs CisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJl ZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEi OiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgewor ICAgICAgIm5hbWUiOiAiY29ubmVjdCB0byBhIHNlcnZlciB1c2luZyBwYXNzd29yZCIsCisgICAg ICAidXJsIjogIi9icm93c2VyL3NlcnZlci9jb25uZWN0LyIsCisgICAgICAiaXNfcG9zaXRpdmVf dGVzdCI6IHRydWUsCisgICAgICAiY29ubmVjdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1 aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2Rh dGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAg eworICAgICAgIm5hbWUiOiAiRGlzY29ubmVjdCBzZXJ2ZXIgdGVzdCIsCisgICAgICAidXJsIjog Ii9icm93c2VyL3NlcnZlci9jb25uZWN0LyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRy dWUsCisgICAgICAiZGlzY29ubmVjdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6 IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7 CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAg ICAgIm5hbWUiOiAiRGlzY29ubmVjdCBzZXJ2ZXIgd2hlbiB3cm9uZyBzZXJ2ZXIgaWQgcGFzc2Vk IiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL2Nvbm5lY3QvIiwKKyAgICAgICJpc19w b3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJkaXNjb25uZWN0IjogdHJ1ZSwKKyAgICAgICJ3 cm9uZ19zZXJ2ZXJfaWQiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwK KyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAg ICAic3RhdHVzX2NvZGUiOiA0MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1l IjogIlJlbG9hZCBhIHNlcnZlciBjb25maWd1cmF0aW9uIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dz ZXIvc2VydmVyL3JlbG9hZC8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAg ICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAg ICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAg IH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkVycm9yIHdoaWxlIGNyZWF0aW5nIHNl cnZlciByZXN0b3JlIHBvaW50IiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL3Jlc3Rv cmVfcG9pbnQvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJyZXN0 b3JlX3BvaW50IjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJOYW1lZCBy ZXN0b3JlIHBvaW50IGNyZWF0ZWQiOiAiUExBQ0VfSE9MREVSIgorICAgICAgfSwKKyAgICAgICJt b2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAi ZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICB9Cisg ICAgfQorICBdLAorICAiZGVsZXRlX3NlcnZlciI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJE ZWxldGUgYSBzZXJ2ZXIgVVJMIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL29iai8i LAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWly ZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRh IjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsK KyAgICAgICJuYW1lIjogIkRpc2Nvbm5lY3Qgc2VydmVyIHRlc3QiLAorICAgICAgInVybCI6ICIv YnJvd3Nlci9zZXJ2ZXIvY29ubmVjdC8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVl LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7 fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAK KyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkVycm9yIHdoaWxlIGZldGNo aW5nIGEgc2VydmVyIHRvIGRlbGV0ZSIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9v YmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAibW9ja2luZ19y ZXF1aXJlZCI6IHRydWUsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgICAiZnVuY3Rpb25f bmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rp b24uZXhlY3V0ZV9kaWN0IiwKKyAgICAgICAgInJldHVybl92YWx1ZSI6ICIoVHJ1ZSwgJ01vY2tl ZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InKSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0 YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICB9CisgICAgfSwKKyAgICB7 CisgICAgICAibmFtZSI6ICJzZXJ2ZXIgbm90IGZvdW5kIHdoaWxlIGRlbGV0aW5nIGEgc2VydmVy IiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL29iai8iLAorICAgICAgImlzX3Bvc2l0 aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgImludmFsaWRfc2VydmVyX2lkIjogdHJ1ZSwKKyAgICAg ICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAg ICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNDEwCisgICAgICB9 CisgICAgfQorICBdLAorICAidXBkYXRlX3NlcnZlciI6IFsKKyAgICB7CisgICAgICAibmFtZSI6 ICJ1cGRhdGUgYSBzZXJ2ZXIgbmFtZSIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9v YmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEi OiB7CisgICAgICAgICJjb21tZW50IjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJpZCI6ICJQ TEFDRV9IT0xERVIiLAorICAgICAgICAic3NsY29tcHJlc3Npb24iOiAxCisgICAgICB9LAorICAg ICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAg ICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAg IH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogInVwZGF0ZSBhIHNlcnZlciBkZXRhaWxz IHdpdGhvdXQgZGF0YSIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9vYmovIiwKKyAg ICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7fSwKKyAg ICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisg ICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAg ICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJVcGRhdGUgc2VydmVyIHdpdGggd3Jv bmcgc2VydmVyIGlkIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL29iai8iLAorICAg ICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAgICJjbGVhcl9zYXZlX3Bhc3N3b3Jk IjogdHJ1ZSwKKyAgICAgICJ3cm9uZ19zZXJ2ZXJfaWQiOiB0cnVlLAorICAgICAgInRlc3RfZGF0 YSI6IHsKKyAgICAgICAgImNvbW1lbnQiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAgICAgImlkIjog IlBMQUNFX0hPTERFUiIKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNl LAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAg ICAgICJzdGF0dXNfY29kZSI6IDQxMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5h bWUiOiAiVXBkYXRlIHNlcnZlciB3aXRoIGluY29ycmVjdCBob3N0YWRkciIsCisgICAgICAidXJs IjogIi9icm93c2VyL3NlcnZlci9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1 ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJjb21tZW50IjogIlBMQUNFX0hPTERF UiIsCisgICAgICAgICJob3N0YWRkciI6ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAiZGJfcmVz IjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xERVIiCisgICAgICB9 LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7 fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA0MDAK KyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogInVwZGF0ZSBhIHNlcnZlciAs IG1ha2Ugc2VydmVyIHNoYXJlZCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9vYmov IiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJvd25lcl9zZXJ2ZXIi OiB0cnVlLAorICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAgImNvbW1lbnQiOiAiUExBQ0Vf SE9MREVSIiwKKyAgICAgICAgImlkIjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJzaGFyZWQi OiB0cnVlCisgICAgICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAg ICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3Rh dHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkNs ZWFyIHNhdmVkIHBhc3N3b3JkIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL2NsZWFy X3NhdmVkX3Bhc3N3b3JkLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAg ICAiY2xlYXJfc2F2ZV9wYXNzd29yZCI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAg ICAgICAiY29tbWVudCI6ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAiaWQiOiAiUExBQ0VfSE9M REVSIiwKKyAgICAgICAgImlzX3Bhc3N3b3JkX3NhdmVkIjogZmFsc2UKKyAgICAgIH0sCisgICAg ICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAg ICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAg fQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiQ2xlYXIgc2F2ZWQgcGFzc3dvcmQgd2l0 aCB3cm9uZyBzZXJ2ZXIgaWQiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvY2xlYXJf c2F2ZWRfcGFzc3dvcmQvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAg ICAiY2xlYXJfc2F2ZV9wYXNzd29yZCI6IHRydWUsCisgICAgICAid3Jvbmdfc2VydmVyX2lkIjog dHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJjb21tZW50IjogIlBMQUNFX0hP TERFUiIsCisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAiaXNfcGFzc3dv cmRfc2F2ZWQiOiBmYWxzZQorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFs c2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAg ICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAi bmFtZSI6ICJ3YWwgcmVwbGF5IiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL3dhbF9y ZXBsYXkvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2Rh dGEiOiB7CisgICAgICAgICJjb21tZW50IjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJpZCI6 ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAiaXNfcGFzc3dvcmRfc2F2ZWQiOiBmYWxzZQorICAg ICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRh Ijoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjog NDEwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJDbGVhciBzc2ggdHVu bmVsIHBhc3N3b3JkIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL2NsZWFyX3NzaHR1 bm5lbF9wYXNzd29yZC8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAg ImNsZWFyX3NhdmVfcGFzc3dvcmQiOiB0cnVlLAorICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAg ICAgImNvbW1lbnQiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAgICAgImlkIjogIlBMQUNFX0hPTERF UiIsCisgICAgICAgICJpc19wYXNzd29yZF9zYXZlZCI6IGZhbHNlCisgICAgICB9LAorICAgICAg Im1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAg ICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0K KyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkNsZWFyIHNzaCB0dW5uZWwgcGFzc3dvcmQg d2l0aCB3cm9uZyBzZXJ2ZXIgaWQiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvY2xl YXJfc3NodHVubmVsX3Bhc3N3b3JkLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNl LAorICAgICAgImNsZWFyX3NhdmVfcGFzc3dvcmQiOiB0cnVlLAorICAgICAgIndyb25nX3NlcnZl cl9pZCI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAiY29tbWVudCI6ICJQ TEFDRV9IT0xERVIiLAorICAgICAgICAiaWQiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAgICAgImlz X3Bhc3N3b3JkX3NhdmVkIjogZmFsc2UKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJl ZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEi OiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgewor ICAgICAgIm5hbWUiOiAiZXJyb3Igd2hpbGUgY2xlYXJpbmcgYSBzc2ggcGFzc3dvcmQiLAorICAg ICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvY2xlYXJfc3NodHVubmVsX3Bhc3N3b3JkLyIsCisg ICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAgImVycm9yX2NsZWFyaW5nX3Bh c3N3b3JkIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJjb21tZW50Ijog IlBMQUNFX0hPTERFUiIsCisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAi aXNfcGFzc3dvcmRfc2F2ZWQiOiBmYWxzZQorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVp cmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0 YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfQorICBdLAor ICAidXBkYXRlX3NoYXJlZF9zZXJ2ZXIiOiBbCisgICAgeworICAgICAgIm5hbWUiOiAidXBkYXRl IGEgc2VydmVyIG5hbWUiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvb2JqLyIsCisg ICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAg ICAgICAiY29tbWVudCI6ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAiaWQiOiAiUExBQ0VfSE9M REVSIiwKKyAgICAgICAgInNzbGNvbXByZXNzaW9uIjogMQorICAgICAgfSwKKyAgICAgICJtb2Nr aW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhw ZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAg fSwKKyAgICB7CisgICAgICAibmFtZSI6ICJ1cGRhdGUgYSBzZXJ2ZXIgZGV0YWlscyB3aXRob3V0 IGRhdGEiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvb2JqLyIsCisgICAgICAiaXNf cG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjoge30sCisgICAgICAibW9j a2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4 cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAg IH0sCisgICAgeworICAgICAgIm5hbWUiOiAiVXBkYXRlIHNlcnZlciB3aXRoIHdyb25nIHNlcnZl ciBpZCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9vYmovIiwKKyAgICAgICJpc19w b3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAiY2xlYXJfc2F2ZV9wYXNzd29yZCI6IHRydWUs CisgICAgICAid3Jvbmdfc2VydmVyX2lkIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7Cisg ICAgICAgICJjb21tZW50IjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJpZCI6ICJQTEFDRV9I T0xERVIiCisgICAgICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAg ICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3Rh dHVzX2NvZGUiOiA0MTAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIlVw ZGF0ZSBzZXJ2ZXIgd2l0aCBpbmNvcnJlY3QgaG9zdGFkZHIiLAorICAgICAgInVybCI6ICIvYnJv d3Nlci9zZXJ2ZXIvb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAg ICAidGVzdF9kYXRhIjogeworICAgICAgICAiY29tbWVudCI6ICJQTEFDRV9IT0xERVIiLAorICAg ICAgICAiaG9zdGFkZHIiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAgICAgImRiX3JlcyI6ICJQTEFD RV9IT0xERVIiLAorICAgICAgICAiaWQiOiAiUExBQ0VfSE9MREVSIgorICAgICAgfSwKKyAgICAg ICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAg ICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNDAwCisgICAgICB9 CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJ1cGRhdGUgYSBzZXJ2ZXIgLCBtYWtlIHNl cnZlciBzaGFyZWQiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zZXJ2ZXIvb2JqLyIsCisgICAg ICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAib3duZXJfc2VydmVyIjogdHJ1ZSwK KyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJjb21tZW50IjogIlBMQUNFX0hPTERFUiIs CisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAic2hhcmVkIjogdHJ1ZQor ICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19k YXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2Rl IjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJDbGVhciBzYXZl ZCBwYXNzd29yZCB3aGVuIGxvZ2luIHVzZXIgaXMgbm90IG93bmVyIG9mIHNlcnZlciIsCisgICAg ICAidXJsIjogIi9icm93c2VyL3NlcnZlci9jbGVhcl9zYXZlZF9wYXNzd29yZC8iLAorICAgICAg ImlzX3Bvc2l0aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgImNsZWFyX3NhdmVfcGFzc3dvcmQiOiB0 cnVlLAorICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAgImNvbW1lbnQiOiAiUExBQ0VfSE9M REVSIiwKKyAgICAgICAgImlkIjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJpc19wYXNzd29y ZF9zYXZlZCI6IGZhbHNlCisgICAgICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxz ZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAg ICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJu YW1lIjogIkNsZWFyIHNhdmVkIHBhc3N3b3JkIHdpdGggd3Jvbmcgc2VydmVyIGlkIiwKKyAgICAg ICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL2NsZWFyX3NhdmVkX3Bhc3N3b3JkLyIsCisgICAgICAi aXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAgImNsZWFyX3NhdmVfcGFzc3dvcmQiOiB0 cnVlLAorICAgICAgIndyb25nX3NlcnZlcl9pZCI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjog eworICAgICAgICAiY29tbWVudCI6ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAiaWQiOiAiUExB Q0VfSE9MREVSIiwKKyAgICAgICAgImlzX3Bhc3N3b3JkX3NhdmVkIjogZmFsc2UKKyAgICAgIH0s CisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9 LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAor ICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiQ2xlYXIgc3NoIHR1bm5lbCBw YXNzd29yZCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9jbGVhcl9zc2h0dW5uZWxf cGFzc3dvcmQvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJjbGVh cl9zYXZlX3Bhc3N3b3JkIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJj b21tZW50IjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xERVIiLAor ICAgICAgICAiaXNfcGFzc3dvcmRfc2F2ZWQiOiBmYWxzZQorICAgICAgfSwKKyAgICAgICJtb2Nr aW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhw ZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAg fSwKKyAgICB7CisgICAgICAibmFtZSI6ICJDbGVhciBzc2ggdHVubmVsIHBhc3N3b3JkIHdpdGgg d3Jvbmcgc2VydmVyIGlkIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc2VydmVyL2NsZWFyX3Nz aHR1bm5lbF9wYXNzd29yZC8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAg ICAgICJjbGVhcl9zYXZlX3Bhc3N3b3JkIjogdHJ1ZSwKKyAgICAgICJ3cm9uZ19zZXJ2ZXJfaWQi OiB0cnVlLAorICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAgImNvbW1lbnQiOiAiUExBQ0Vf SE9MREVSIiwKKyAgICAgICAgImlkIjogIlBMQUNFX0hPTERFUiIsCisgICAgICAgICJpc19wYXNz d29yZF9zYXZlZCI6IGZhbHNlCisgICAgICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBm YWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogewor ICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAg ICJuYW1lIjogImVycm9yIHdoaWxlIGNsZWFyaW5nIGEgc3NoIHBhc3N3b3JkIiwKKyAgICAgICJ1 cmwiOiAiL2Jyb3dzZXIvc2VydmVyL2NsZWFyX3NzaHR1bm5lbF9wYXNzd29yZC8iLAorICAgICAg ImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAgICJlcnJvcl9jbGVhcmluZ19wYXNzd29y ZCI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAiY29tbWVudCI6ICJQTEFD RV9IT0xERVIiLAorICAgICAgICAiaWQiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAgICAgImlzX3Bh c3N3b3JkX3NhdmVkIjogZmFsc2UKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6 IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7 CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0KKyAgXSwKKyAgImRl bGV0ZV9tdWx0aXBsZV9zZXJ2ZXIiOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiRGVsZXRlIG11 bHRpcGxlIHNlcnZlciIsCisgICAgICAidXJsIjogIi9icm93c2VyL3NlcnZlci9vYmovIiwKKyAg ICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjog ZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsK KyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfQorICBdCit9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90 ZXN0X2FkZF9zZXJ2ZXIucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90ZXN0cy90ZXN0X2FkZF9zZXJ2ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwLi4xYjIzZmNkYjgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2FkZF9zZXJ2ZXIucHkKQEAgLTAs MCArMSw4NCBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNR TCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZl bG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3Rn cmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IGpzb24KKworZnJv bSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdy ZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9t IC4gaW1wb3J0IHV0aWxzIGFzIHNlcnZlcnNfdXRpbHMKKworCitjbGFzcyBBZGRTZXJ2ZXJUZXN0 KEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCB0aGUgc2Vy dmVycyB1bmRlciBkZWZhdWx0IHNlcnZlciBncm91cC4gIiIiCisKKyAgICBzY2VuYXJpb3MgPSB1 dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoJ2FkZF9zZXJ2ZXInLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJzX3V0aWxzLnRlc3RfY2FzZXMpCisKKyAgICBk ZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBjcmVhdGVfc2VydmVyKHNl bGYsIHVybCk6CisgICAgICAgIHJldHVybiBzZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICAgICAg dXJsLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYuc2VydmVyKSwKKyAgICAgICAg ICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICApCisKKyAgICBkZWYgcnVuVGVz dChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgdGhlIHNlcnZlciB1 bmRlciBkZWZhdWx0IHNlcnZlciBncm91cC4iIiIKKyAgICAgICAgdXJsID0gInswfXsxfS8iLmZv cm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQKQorCisgICAgICAgICMgQWRkIHNlcnZp Y2UgbmFtZSBpbiB0aGUgY29uZmlnCisgICAgICAgIGlmICdjb25uZWN0X3RpbWVvdXQnIGluIHNl bGYudGVzdF9kYXRhOgorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2Nvbm5lY3RfdGltZW91dCdd ID0gc2VsZi50ZXN0X2RhdGFbJ2Nvbm5lY3RfdGltZW91dCddCisgICAgICAgIGVsaWYgJ3NoYXJl ZCcgaW4gc2VsZi50ZXN0X2RhdGE6CisgICAgICAgICAgICBzZWxmLnNlcnZlclsnc2hhcmVkJ10g PSBzZWxmLnRlc3RfZGF0YVsnc2hhcmVkJ10KKyAgICAgICAgZWxpZiAnc2VydmljZScgaW4gc2Vs Zi50ZXN0X2RhdGE6CisgICAgICAgICAgICBzZWxmLnNlcnZlclsnc2VydmljZSddID0gc2VsZi50 ZXN0X2RhdGFbJ3NlcnZpY2UnXQorCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ3NzaF90dW5u ZWwnKToKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2Vfc3NoX3R1bm5lbCddID0gc2VsZi50 ZXN0X2RhdGFbJ3VzZV9zc2hfdHVubmVsJ10KKyAgICAgICAgICAgIHNlbGYuc2VydmVyWyd0dW5u ZWxfaG9zdCddID0gc2VsZi50ZXN0X2RhdGFbJ3R1bm5lbF9ob3N0J10KKyAgICAgICAgICAgIHNl bGYuc2VydmVyWyd0dW5uZWxfcG9ydCddID0gc2VsZi50ZXN0X2RhdGFbJ3R1bm5lbF9wb3J0J10K KyAgICAgICAgICAgIHNlbGYuc2VydmVyWyd0dW5uZWxfdXNlcm5hbWUnXSA9IHNlbGYudGVzdF9k YXRhWyd0dW5uZWxfdXNlcm5hbWUnXQorCisgICAgICAgICAgICBpZiBzZWxmLndpdGhfcGFzc3dv cmQ6CisgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3R1bm5lbF9hdXRoZW50aWNhdGlvbidd ID0gc2VsZi50ZXN0X2RhdGFbCisgICAgICAgICAgICAgICAgICAgICd0dW5uZWxfYXV0aGVudGlj YXRpb24nXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsn dHVubmVsX2F1dGhlbnRpY2F0aW9uJ10gPSAxCisgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJb J3R1bm5lbF9pZGVudGl0eV9maWxlJ10gPSAncGtleV9yc2EnCisKKyAgICAgICAgICAgIGlmIHNl bGYuc2F2ZV9wYXNzd29yZDoKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsndHVubmVsX3Bh c3N3b3JkJ10gPSBzZWxmLnRlc3RfZGF0YVsKKyAgICAgICAgICAgICAgICAgICAgJ3R1bm5lbF9w YXNzd29yZCddCisgICAgICAgIGlmICdjb25uZWN0X25vdycgaW4gc2VsZi50ZXN0X2RhdGE6Cisg ICAgICAgICAgICBzZWxmLnNlcnZlclsnY29ubmVjdF9ub3cnXSA9IHNlbGYudGVzdF9kYXRhWydj b25uZWN0X25vdyddCisgICAgICAgICAgICBzZWxmLnNlcnZlclsncGFzc3dvcmQnXSA9IHNlbGYu c2VydmVyWydkYl9wYXNzd29yZCddCisKKyAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0 OgorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnd2l0aF9zYXZlJyk6CisgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJbJ3NhdmVfcGFzc3dvcmQnXSA9IHNlbGYud2l0aF9zYXZlCisgICAg ICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICd3aXRoX3B3ZCcpIGFuZCBub3Qgc2VsZi53aXRoX3B3 ZDoKKyAgICAgICAgICAgICAgICAjIFJlbW92ZSB0aGUgcGFzc3dvcmQgZnJvbSBzZXJ2ZXIgb2Jq ZWN0CisgICAgICAgICAgICAgICAgZGJfcGFzc3dvcmQgPSBzZWxmLnNlcnZlclsnZGJfcGFzc3dv cmQnXQorICAgICAgICAgICAgICAgIGRlbCBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXQorICAg ICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmNyZWF0ZV9zZXJ2ZXIodXJsKQorICAgICAgICBzZWxm LmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5leHBlY3RlZF9kYXRhWyJzdGF0dXNfY29kZSJdKQorICAgICAgICByZXNwb25z ZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKKyAgICAg ICAgc2VsZi5zZXJ2ZXJfaWQgPSByZXNwb25zZV9kYXRhWydub2RlJ11bJ19pZCddCisKKyAgICAg ICAgaWYgaGFzYXR0cihzZWxmLCAnd2l0aF9wd2QnKSBhbmQgbm90IHNlbGYud2l0aF9wd2Q6Cisg ICAgICAgICAgICAjIFJlbW92ZSB0aGUgcGFzc3dvcmQgZnJvbSBzZXJ2ZXIgb2JqZWN0CisgICAg ICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSA9IGRiX3Bhc3N3b3JkCisKKyAgICBk ZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRoZSBz ZXJ2ZXIgZnJvbSBTUUxpdGUgIiIiCisgICAgICAgIHV0aWxzLmRlbGV0ZV9zZXJ2ZXJfd2l0aF9h cGkoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9hZGRfc2VydmVyX3dpdGhf Y29ubmVjdF90aW1lb3V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGVzdHMvdGVzdF9hZGRfc2VydmVyX3dpdGhfY29ubmVjdF90aW1lb3V0LnB5CmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjY2UwMzA0MWEuLjAwMDAwMDAwMAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2FkZF9zZXJ2 ZXJfd2l0aF9jb25uZWN0X3RpbWVvdXQucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBA Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCi0j Ci0jIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRl YW0KLSMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl bmNlCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1pbXBvcnQganNvbgotCi1mcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24ucHl0 aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKLQotCi1jbGFzcyBTZXJ2 ZXJzV2l0aENvbm5lY3RUaW1lb3V0QWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAg ICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRkIHRoZSBzZXJ2ZXJzIHVuZGVyIGRlZmF1bHQgc2VydmVy IGdyb3VwLiAiIiIKLQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaCB0aGUgZGVm YXVsdCB1cmwgZm9yIHNlcnZlciBvYmplY3QKLSAgICAgICAgKAotICAgICAgICAgICAgJ0RlZmF1 bHQgU2VydmVyIE5vZGUgdXJsJywgZGljdCgKLSAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2Vy L3NlcnZlci9vYmovJwotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgXQotCi0gICAgZGVm IHNldFVwKHNlbGYpOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAg ICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgdGhlIHNlcnZlciB1bmRlciBkZWZhdWx0 IHNlcnZlciBncm91cC4iIiIKLSAgICAgICAgdXJsID0gInswfXsxfS8iLmZvcm1hdChzZWxmLnVy bCwgdXRpbHMuU0VSVkVSX0dST1VQKQotICAgICAgICAjIEFkZCBzZXJ2aWNlIG5hbWUgaW4gdGhl IGNvbmZpZwotICAgICAgICBzZWxmLnNlcnZlclsnY29ubmVjdF90aW1lb3V0J10gPSA1Ci0gICAg ICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKLSAgICAgICAgICAgIHVybCwKLSAgICAg ICAgICAgIGRhdGE9anNvbi5kdW1wcyhzZWxmLnNlcnZlciksCi0gICAgICAgICAgICBjb250ZW50 X3R5cGU9J2h0bWwvanNvbicKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhy ZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotICAgICAgICByZXNwb25zZV9kYXRhID0ganNvbi5s b2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKLSAgICAgICAgc2VsZi5zZXJ2ZXJf aWQgPSByZXNwb25zZV9kYXRhWydub2RlJ11bJ19pZCddCi0KLSAgICBkZWYgdGVhckRvd24oc2Vs Zik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRoZSBzZXJ2ZXIgZnJvbSBTUUxp dGUgIiIiCi0gICAgICAgIHV0aWxzLmRlbGV0ZV9zZXJ2ZXJfd2l0aF9hcGkoc2VsZi50ZXN0ZXIs IHNlbGYuc2VydmVyX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9hZGRfc2VydmVyX3dpdGhfc2VydmljZV9pZC5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfYWRk X3NlcnZlcl93aXRoX3NlcnZpY2VfaWQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDlkOGRhOTRmZC4uMDAwMDAwMDAwCi0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfYWRkX3NlcnZlcl93aXRoX3NlcnZpY2VfaWQucHkKKysr IC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBwZ0Fk bWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCi0jCi0jIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAs IFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KLSMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNl ZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1p bXBvcnQganNvbgotCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2Vu ZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRp bHMgYXMgdXRpbHMKLQotCi1jbGFzcyBTZXJ2ZXJzV2l0aFNlcnZpY2VJREFkZFRlc3RDYXNlKEJh c2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCB0aGUgc2VydmVy cyB1bmRlciBkZWZhdWx0IHNlcnZlciBncm91cC4gIiIiCi0KLSAgICBzY2VuYXJpb3MgPSBbCi0g ICAgICAgICMgRmV0Y2ggdGhlIGRlZmF1bHQgdXJsIGZvciBzZXJ2ZXIgb2JqZWN0Ci0gICAgICAg ICgKLSAgICAgICAgICAgICdEZWZhdWx0IFNlcnZlciBOb2RlIHVybCcsIGRpY3QoCi0gICAgICAg ICAgICAgICAgdXJsPScvYnJvd3Nlci9zZXJ2ZXIvb2JqLycKLSAgICAgICAgICAgICkKLSAgICAg ICAgKQotICAgIF0KLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgcGFzcwotCi0gICAg ZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIHRo ZSBzZXJ2ZXIgdW5kZXIgZGVmYXVsdCBzZXJ2ZXIgZ3JvdXAuIiIiCi0gICAgICAgIHVybCA9ICJ7 MH17MX0vIi5mb3JtYXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCkKLSAgICAgICAgIyBB ZGQgc2VydmljZSBuYW1lIGluIHRoZSBjb25maWcKLSAgICAgICAgc2VsZi5zZXJ2ZXJbJ3NlcnZp Y2UnXSA9ICJUZXN0REIiCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKLSAg ICAgICAgICAgIHVybCwKLSAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhzZWxmLnNlcnZlciks Ci0gICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKLSAgICAgICAgKQotICAgICAg ICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotICAgICAgICBy ZXNwb25zZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkK LSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSByZXNwb25zZV9kYXRhWydub2RlJ11bJ19pZCddCi0K LSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRl IHRoZSBzZXJ2ZXIgZnJvbSBTUUxpdGUgIiIiCi0gICAgICAgIHV0aWxzLmRlbGV0ZV9zZXJ2ZXJf d2l0aF9hcGkoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9hZGRfc2VydmVy X3dpdGhfc3NoX3R1bm5lbC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3Rlc3RzL3Rlc3RfYWRkX3NlcnZlcl93aXRoX3NzaF90dW5uZWwucHkKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4YjQ4YzBmYy4uMDAwMDAwMDAwCi0tLSBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfYWRkX3NlcnZlcl93 aXRoX3NzaF90dW5uZWwucHkKKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi0jIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwotIwotIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCi0jCi0jIENvcHly aWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KLSMgVGhp cyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCi0jCi0j IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIwotCi1pbXBvcnQganNvbgotCi1mcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3Rf dXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKLQotCi1jbGFzcyBTZXJ2ZXJzV2l0aFNT SFR1bm5lbEFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFz cyB3aWxsIGFkZCB0aGUgc2VydmVycyB1bmRlciBkZWZhdWx0IHNlcnZlciBncm91cC4gIiIiCi0K LSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgKLSAgICAgICAgICAgICdBZGQgc2VydmVyIHVz aW5nIFNTSCB0dW5uZWwgd2l0aCBwYXNzd29yZCcsIGRpY3QoCi0gICAgICAgICAgICAgICAgdXJs PScvYnJvd3Nlci9zZXJ2ZXIvb2JqLycsCi0gICAgICAgICAgICAgICAgd2l0aF9wYXNzd29yZD1U cnVlLAotICAgICAgICAgICAgICAgIHNhdmVfcGFzc3dvcmQ9RmFsc2UsCi0gICAgICAgICAgICAp Ci0gICAgICAgICksCi0gICAgICAgICgKLSAgICAgICAgICAgICdBZGQgc2VydmVyIHVzaW5nIFNT SCB0dW5uZWwgd2l0aCBpZGVudGl0eSBmaWxlJywgZGljdCgKLSAgICAgICAgICAgICAgICB1cmw9 Jy9icm93c2VyL3NlcnZlci9vYmovJywKLSAgICAgICAgICAgICAgICB3aXRoX3Bhc3N3b3JkPUZh bHNlLAotICAgICAgICAgICAgICAgIHNhdmVfcGFzc3dvcmQ9RmFsc2UsCi0gICAgICAgICAgICAp Ci0gICAgICAgICksCi0gICAgICAgICgKLSAgICAgICAgICAgICdBZGQgc2VydmVyIHVzaW5nIFNT SCB0dW5uZWwgd2l0aCBwYXNzd29yZCBhbmQgc2F2ZWQgaXQnLCBkaWN0KAotICAgICAgICAgICAg ICAgIHVybD0nL2Jyb3dzZXIvc2VydmVyL29iai8nLAotICAgICAgICAgICAgICAgIHdpdGhfcGFz c3dvcmQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICBzYXZlX3Bhc3N3b3JkPVRydWUsCi0gICAgICAg ICAgICApCi0gICAgICAgICksCi0gICAgICAgICgKLSAgICAgICAgICAgICdBZGQgc2VydmVyIHVz aW5nIFNTSCB0dW5uZWwgd2l0aCBpZGVudGl0eSBmaWxlIGFuZCBzYXZlIHRoZSAnCi0gICAgICAg ICAgICAncGFzc3dvcmQnLCBkaWN0KAotICAgICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvc2Vy dmVyL29iai8nLAotICAgICAgICAgICAgICAgIHdpdGhfcGFzc3dvcmQ9RmFsc2UsCi0gICAgICAg ICAgICAgICAgc2F2ZV9wYXNzd29yZD1UcnVlLAotICAgICAgICAgICAgKQotICAgICAgICApLAot ICAgIF0KLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIHJ1 blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIHRoZSBzZXJ2 ZXIgdW5kZXIgZGVmYXVsdCBzZXJ2ZXIgZ3JvdXAuIiIiCi0gICAgICAgIHVybCA9ICJ7MH17MX0v Ii5mb3JtYXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCkKLSAgICAgICAgIyBBZGQgc2Vy dmljZSBuYW1lIGluIHRoZSBjb25maWcKLSAgICAgICAgc2VsZi5zZXJ2ZXJbJ3VzZV9zc2hfdHVu bmVsJ10gPSAxCi0gICAgICAgIHNlbGYuc2VydmVyWyd0dW5uZWxfaG9zdCddID0gJzEyNy4wLjAu MScKLSAgICAgICAgc2VsZi5zZXJ2ZXJbJ3R1bm5lbF9wb3J0J10gPSAyMgotICAgICAgICBzZWxm LnNlcnZlclsndHVubmVsX3VzZXJuYW1lJ10gPSAndXNlcicKLSAgICAgICAgaWYgc2VsZi53aXRo X3Bhc3N3b3JkOgotICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3R1bm5lbF9hdXRoZW50aWNhdGlv biddID0gMAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3R1bm5lbF9h dXRoZW50aWNhdGlvbiddID0gMQotICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3R1bm5lbF9pZGVu dGl0eV9maWxlJ10gPSAncGtleV9yc2EnCi0KLSAgICAgICAgaWYgc2VsZi5zYXZlX3Bhc3N3b3Jk OgotICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3R1bm5lbF9wYXNzd29yZCddID0gJzEyMzQ1NicK LQotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCi0gICAgICAgICAgICB1cmws Ci0gICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi5zZXJ2ZXIpLAotICAgICAgICAgICAg Y29udGVudF90eXBlPSdodG1sL2pzb24nCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRF cXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAgcmVzcG9uc2VfZGF0YSA9 IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCi0gICAgICAgIHNlbGYu c2VydmVyX2lkID0gcmVzcG9uc2VfZGF0YVsnbm9kZSddWydfaWQnXQotCi0gICAgZGVmIHRlYXJE b3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgc2VydmVyIGZy b20gU1FMaXRlICIiIgotICAgICAgICB1dGlscy5kZWxldGVfc2VydmVyX3dpdGhfYXBpKHNlbGYu dGVzdGVyLCBzZWxmLnNlcnZlcl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfYWxsX3NlcnZlcl9nZXQucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2FsbF9zZXJ2 ZXJfZ2V0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uY2QzNWE3YTA1 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGVzdHMvdGVzdF9hbGxfc2VydmVyX2dldC5weQpAQCAtMCwwICsxLDc4IEBACisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENv cHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMg VGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisj CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworaW1wb3J0IHJhbmRvbQorCitmcm9tIHBnYWRtaW4udXRpbHMu cm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBh cmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQg dGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBzZXJ2ZXJzX3V0aWxz CisKKworY2xhc3MgQWxsU2VydmVyc0dldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAg ICAiIiIKKyAgICBUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggYWRkZWQgc2VydmVycyB1bmRlciBkZWZh dWx0IHNlcnZlciBncm91cAorICAgIGJ5IHJlc3BvbnNlIGNvZGUuCisgICAgIiIiCisKKyAgICBz Y2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoJ2dldF9hbGxfc2VydmVyJywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyc191dGlscy50ZXN0 X2Nhc2VzKQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9u IGFkZCB0aGUgc2VydmVyIHRvIHRlc3QgdGhlIEdFVCBBUEkiIiIKKyAgICAgICAgc2VsZi5zZXJ2 ZXJbJ3Bhc3N3b3JkJ10gPSAnZWRiJworICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHV0aWxzLmNy ZWF0ZV9zZXJ2ZXIoc2VsZi5zZXJ2ZXIpCisgICAgICAgIHNlcnZlcl9kaWN0ID0geyJzZXJ2ZXJf aWQiOiBzZWxmLnNlcnZlcl9pZH0KKyAgICAgICAgdXRpbHMud3JpdGVfbm9kZV9pbmZvKCJzaWQi LCBzZXJ2ZXJfZGljdCkKKworICAgIGRlZiBnZXRfc2VydmVyKHNlbGYpOgorICAgICAgICByZXR1 cm4gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJsLCBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisKKyAg ICBkZWYgY29ubmVjdF90b19zZXJ2ZXIoc2VsZiwgdXJsKToKKyAgICAgICAgcmV0dXJuIHNlbGYu dGVzdGVyLnBvc3QoCisgICAgICAgICAgICB1cmwsCisgICAgICAgICAgICBkYXRhPXNlbGYuc2Vy dmVyLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nCisgICAgICAgICkKKwor ICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGZl dGNoIHRoZSBhZGRlZCBzZXJ2ZXJzIHRvIG9iamVjdCBicm93c2VyLiAiIiIKKyAgICAgICAgc2Vy dmVyX2lkID0gcGFyZW50X25vZGVfZGljdFsic2VydmVyIl1bLTFdWyJzZXJ2ZXJfaWQiXQorICAg ICAgICBpZiBub3Qgc2VydmVyX2lkOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJTZXJ2 ZXIgbm90IGZvdW5kIHRvIHRlc3QgR0VUIEFQSSIpCisgICAgICAgIHJlc3BvbnNlID0gTm9uZQor ICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICBpZiBoYXNhdHRy KHNlbGYsICdpbnZhbGlkX3NlcnZlcl9ncm91cCcpOgorICAgICAgICAgICAgICAgIHNlbGYudXJs ID0gc2VsZi51cmwgKyAnezB9L3sxfT9fPXsxfScuZm9ybWF0KAorICAgICAgICAgICAgICAgICAg ICB1dGlscy5TRVJWRVJfR1JPVVAsIHJhbmRvbS5yYW5kaW50KDEsIDk5OTk5OTkpKQorICAgICAg ICAgICAgZWxpZiBoYXNhdHRyKHNlbGYsICdjaGlsZHJlbicpOgorCisgICAgICAgICAgICAgICAg c2VsZi51cmwgPSBzZWxmLnVybCArICd7MH0vezF9Jy5mb3JtYXQoCisgICAgICAgICAgICAgICAg ICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwgc2VydmVyX2lkKQorICAgICAgICAgICAgZWxpZiBoYXNh dHRyKHNlbGYsICdzZXJ2ZXJfbGlzdCcpOgorICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIoc2Vs ZiwgJ3NlcnZlcnMnKToKKyAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkID0gJycKKyAgICAg ICAgICAgICAgICBzZWxmLnVybCA9IHNlbGYudXJsICsgJ3swfS97MX0nLmZvcm1hdCgKKyAgICAg ICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLCBzZXJ2ZXJfaWQpCisgICAgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgImNvbm5lY3RlZCIpOgor ICAgICAgICAgICAgICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvc2VydmVyL2Nvbm5lY3QvJyArICd7 MH0vezF9Jy5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JP VVAsCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCkKKyAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3Bhc3N3b3JkJ10gPSAnZWRiJworCisgICAgICAgICAgICAg ICAgICAgIHNlbGYuY29ubmVjdF90b19zZXJ2ZXIodXJsKQorICAgICAgICAgICAgICAgIHNlbGYu dXJsID0gc2VsZi51cmwgKyAnezB9L3sxfT9fPXsyfScuZm9ybWF0KAorICAgICAgICAgICAgICAg ICAgICB1dGlscy5TRVJWRVJfR1JPVVAsIHNlcnZlcl9pZCwgcmFuZG9tLnJhbmRpbnQoMSwgOTk5 OTk5OSkpCisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X3NlcnZlcigpCisgICAgICAg IHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmV4cGVjdGVkX2RhdGFbInN0YXR1c19jb2RlIl0pCisKKyAgICBkZWYg dGVhckRvd24oc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRoZSBzZXJ2 ZXIgZnJvbSBTUUxpdGUgIiIiCisgICAgICAgIHV0aWxzLmRlbGV0ZV9zZXJ2ZXJfd2l0aF9hcGko c2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9jaGVja19jb25uZWN0LnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9jaGVj a19jb25uZWN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uY2NhN2Nl NTdmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvdGVzdHMvdGVzdF9jaGVja19jb25uZWN0LnB5CkBAIC0wLDAgKzEsMTIyIEBACisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisj IENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0K KyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNl CisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0 IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2Rp Y3QKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBh cyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBzZXJ2ZXJzX3V0aWxzCitpbXBvcnQganNv bgorZnJvbSByZWdyZXNzaW9uLnRlc3Rfc2V0dXAgaW1wb3J0IGNvbmZpZ19kYXRhCisKK3Rlc3Rf dXNlcl9kZXRhaWxzID0gY29uZmlnX2RhdGFbJ3BnQWRtaW40X3Rlc3Rfbm9uX2FkbWluX2NyZWRl bnRpYWxzJ10KKworCitjbGFzcyBTZXJ2ZXJzQ29ubmVjdFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJh dG9yKToKKyAgICAiIiIKKyAgICBUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggYWRkZWQgc2VydmVycyB1 bmRlciBkZWZhdWx0IHNlcnZlciBncm91cAorICAgIGJ5IHJlc3BvbnNlIGNvZGUuCisgICAgIiIi CisKKyAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoJ2Nvbm5lY3Rfc2Vy dmVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyc191 dGlscy50ZXN0X2Nhc2VzKQorCisgICAgZGVmIGdldF9zc2hfdHVubmVsKHNlbGYpOgorICAgICAg ICBwcmludCgiaW5fZ2V0X3NzaCIpCisgICAgICAgIHNlbGYuc2VydmVyWyd1c2Vfc3NoX3R1bm5l bCddID0gMQorICAgICAgICBzZWxmLnNlcnZlclsndHVubmVsX2hvc3QnXSA9ICcxMjcuMC4wLjEn CisgICAgICAgIHNlbGYuc2VydmVyWyd0dW5uZWxfcG9ydCddID0gMjIKKyAgICAgICAgc2VsZi5z ZXJ2ZXJbJ3R1bm5lbF91c2VybmFtZSddID0gJ3VzZXInCisgICAgICAgIGlmIHNlbGYud2l0aF9w YXNzd29yZDoKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWyd0dW5uZWxfYXV0aGVudGljYXRpb24n XSA9IDAKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWyd0dW5uZWxfYXV0 aGVudGljYXRpb24nXSA9IDEKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWyd0dW5uZWxfaWRlbnRp dHlfZmlsZSddID0gJ3BrZXlfcnNhJworCisgICAgICAgIGlmIHNlbGYuc2F2ZV9wYXNzd29yZDoK KyAgICAgICAgICAgIHNlbGYuc2VydmVyWyd0dW5uZWxfcGFzc3dvcmQnXSA9ICcxMjM0NTYnCisg ICAgICAgICMgc2VsZi5zZXJ2ZXJbJ3VzZV9zc2hfdHVubmVsJ10gPSBzZWxmLnRlc3RfZGF0YVsn dXNlX3NzaF90dW5uZWwnXQorICAgICAgICAjIHNlbGYuc2VydmVyWyd0dW5uZWxfaG9zdCddID0g c2VsZi50ZXN0X2RhdGFbJ3R1bm5lbF9ob3N0J10KKyAgICAgICAgIyBzZWxmLnNlcnZlclsndHVu bmVsX3BvcnQnXSA9IHNlbGYudGVzdF9kYXRhWyd0dW5uZWxfcG9ydCddCisgICAgICAgICMgc2Vs Zi5zZXJ2ZXJbJ3R1bm5lbF91c2VybmFtZSddID0gc2VsZi50ZXN0X2RhdGFbJ3R1bm5lbF91c2Vy bmFtZSddCisgICAgICAgICMKKyAgICAgICAgIyBpZiBzZWxmLndpdGhfcGFzc3dvcmQ6CisgICAg ICAgICMgICAgIHNlbGYuc2VydmVyWyd0dW5uZWxfYXV0aGVudGljYXRpb24nXSA9IHNlbGYudGVz dF9kYXRhWworICAgICAgICAjICAgICAgICAgJ3R1bm5lbF9hdXRoZW50aWNhdGlvbiddCisgICAg ICAgICMKKyAgICAgICAgIyBpZiBzZWxmLnNhdmVfcGFzc3dvcmQ6CisgICAgICAgICMgICAgIHNl bGYuc2VydmVyWyd0dW5uZWxfcGFzc3dvcmQnXSA9IHNlbGYudGVzdF9kYXRhWworICAgICAgICAj ICAgICAgICAgJ3R1bm5lbF9wYXNzd29yZCddCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAg ICAgICIiIlRoaXMgZnVuY3Rpb24gYWRkIHRoZSBzZXJ2ZXIgdG8gdGVzdCB0aGUgR0VUIEFQSSIi IgorCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gdXRpbHMuY3JlYXRlX3NlcnZlcihzZWxmLnNl cnZlcikKKyAgICAgICAgc2VydmVyX2RpY3QgPSB7InNlcnZlcl9pZCI6IHNlbGYuc2VydmVyX2lk fQorICAgICAgICB1dGlscy53cml0ZV9ub2RlX2luZm8oInNpZCIsIHNlcnZlcl9kaWN0KQorCisg ICAgZGVmIGdldF9zZXJ2ZXJfY29ubmVjdGlvbihzZWxmLCBzZXJ2ZXJfaWQpOgorICAgICAgICBy ZXR1cm4gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkg KyAnLycgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKwor ICAgIGRlZiBzZXJ2ZXJfZGlzb25uZWN0KHNlbGYsIHNlcnZlcl9pZCk6CisgICAgICAgIHJldHVy biBzZWxmLnRlc3Rlci5kZWxldGUoc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSAr ICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkp CisKKyAgICBkZWYgY29ubmVjdF90b19zZXJ2ZXIoc2VsZiwgdXJsKToKKyAgICAgICAgcmV0dXJu IHNlbGYudGVzdGVyLnBvc3QoCisgICAgICAgICAgICB1cmwsCisgICAgICAgICAgICBkYXRhPWpz b24uZHVtcHMoc2VsZi5zZXJ2ZXIpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pz b24nCisgICAgICAgICkKKworICAgIGRlZiBhZGRfc2VydmVyX2RldGFpbHMoc2VsZiwgdXJsKToK KyAgICAgICAgcmV0dXJuIHNlbGYudGVzdGVyLnBvc3QoCisgICAgICAgICAgICB1cmwsCisgICAg ICAgICAgICBkYXRhPXN0cihzZWxmLnRlc3RfZGF0YSksCisgICAgICAgICAgICBjb250ZW50X3R5 cGU9J2h0bWwvanNvbicKKyAgICAgICAgKQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAg ICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIGFkZGVkIHNlcnZlcnMgdG8gb2Jq ZWN0IGJyb3dzZXIuICIiIgorICAgICAgICBzZXJ2ZXJfaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJz ZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCisgICAgICAgIGlmIG5vdCBzZXJ2ZXJfaWQ6CisgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIlNlcnZlciBub3QgZm91bmQgdG8gdGVzdCBHRVQgQVBJ IikKKyAgICAgICAgcmVzcG9uc2UgPSBOb25lCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVf dGVzdDoKKyAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ2Rpc2Nvbm5lY3QnKToKKyAgICAg ICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICd3cm9uZ19zZXJ2ZXJfaWQnKToKKyAgICAgICAg ICAgICAgICAgICAgc2VydmVyX2lkID0gOTk5OTkKKyAgICAgICAgICAgICAgICByZXNwb25zZSA9 IHNlbGYuc2VydmVyX2Rpc29ubmVjdChzZXJ2ZXJfaWQpCisgICAgICAgICAgICBlbGlmIGhhc2F0 dHIoc2VsZiwgImNvbm5lY3QiKToKKyAgICAgICAgICAgICAgICB1cmwgPSBzZWxmLnVybCArICd7 MH0vezF9Jy5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwK KyAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQpCisgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJbJ3Bhc3N3b3JkJ10gPSBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXQorICAgICAg ICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5jb25uZWN0X3RvX3NlcnZlcih1cmwpCisgICAgICAg ICAgICBlbGlmIGhhc2F0dHIoc2VsZiwgJ3Jlc3RvcmVfcG9pbnQnKSBvciBoYXNhdHRyKHNlbGYs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdjaGFuZ2VfcGFzc3dvcmQnKToKKyAgICAgICAgICAgICAgICBjb25uZWN0X3VybCA9ICcv YnJvd3Nlci9zZXJ2ZXIvY29ubmVjdC97MH0vezF9Jy5mb3JtYXQoCisgICAgICAgICAgICAgICAg ICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJf aWQpCisgICAgICAgICAgICAgICAgdXJsID0gc2VsZi51cmwgKyAnezB9L3sxfScuZm9ybWF0KAor ICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyX2lkKQorCisgICAgICAgICAgICAgICAgc2VsZi5jb25uZWN0X3RvX3Nl cnZlcihjb25uZWN0X3VybCkKKyAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuYWRkX3Nl cnZlcl9kZXRhaWxzKHVybCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVz cG9uc2UgPSBzZWxmLmdldF9zZXJ2ZXJfY29ubmVjdGlvbihzZXJ2ZXJfaWQpCisKKyAgICAgICAg c2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfZGF0YVsic3RhdHVzX2NvZGUiXSkKKworICAgIGRlZiB0 ZWFyRG93bihzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIHNlcnZl ciBmcm9tIFNRTGl0ZSAiIiIKKyAgICAgICAgdXRpbHMuZGVsZXRlX3NlcnZlcl93aXRoX2FwaShz ZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2lzX3Bhc3N3b3JkX3NhdmVkLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9p c19wYXNzd29yZF9zYXZlZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAu LjdkMTQ0ZDNkNwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfaXNfcGFzc3dvcmRfc2F2ZWQucHkKQEAgLTAsMCAr MSw1MiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBU b29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9w bWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVT UUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IGpzb24KKworZnJvbSBw Z2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNz aW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4g aW1wb3J0IHV0aWxzIGFzIHNlcnZlcnNfdXRpbHMKKworCitjbGFzcyBJc1Bhc3N3b3JkU2F2ZWQo QmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgdGVzdCB0aGUgc2F2 ZSBwYXNzd29yZCBmdW5jdGlvbmFsaXR5LiAiIiIKKworICAgIHNjZW5hcmlvcyA9IHV0aWxzLmdl bmVyYXRlX3NjZW5hcmlvcygnaXNfcGFzc3dvcmRfc2F2ZWQnLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJzX3V0aWxzLnRlc3RfY2FzZXMpCisKKyAgICBk ZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gdXRpbHMuY3JlYXRlX3Nl cnZlcihzZWxmLnNlcnZlcikKKyAgICAgICAgc2VydmVyX2RpY3QgPSB7InNlcnZlcl9pZCI6IHNl bGYuc2VydmVyX2lkfQorICAgICAgICB1dGlscy53cml0ZV9ub2RlX2luZm8oInNpZCIsIHNlcnZl cl9kaWN0KQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rp b24gd2lsbCBleGVjdXRlIHRoZSBjb25uZWN0IHNlcnZlciBBUElzIiIiCisgICAgICAgIHJlc3Bv bnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxz LlNFUlZFUl9HUk9VUCkgKyAnLycgKyBzdHIoc2VsZi5zZXJ2ZXJfaWQpLAorICAgICAgICAgICAg ZGF0YT1kaWN0KAorICAgICAgICAgICAgICAgIHBhc3N3b3JkPXNlbGYuc2VydmVyWydkYl9wYXNz d29yZCddLAorICAgICAgICAgICAgICAgIHNhdmVfcGFzc3dvcmQ9J29uJyksCisgICAgICAgICAg ICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICAgICAgZXhwZWN0ZWRfc3RhdHVzX2NvZGUg PSBzZWxmLmV4cGVjdGVkX2RhdGFbInN0YXR1c19jb2RlIl0KKyAgICAgICAgYWN0dWFsX3N0YXR1 c19jb2RlID0gcmVzcG9uc2Uuc3RhdHVzX2NvZGUKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo YWN0dWFsX3N0YXR1c19jb2RlLCBleHBlY3RlZF9zdGF0dXNfY29kZSkKKyAgICAgICAgcmVzcG9u c2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCisKKyAg ICAgICAgZXhwZWN0ZWRfbWVzc2FnZSA9IHNlbGYuZXhwZWN0ZWRfZGF0YVsibWVzc2FnZSJdCisg ICAgICAgIGFjdHVhbF9tZXNzYWdlID0gcmVzcG9uc2VfZGF0YVsiaW5mbyJdCisgICAgICAgIHNl bGYuYXNzZXJ0RXF1YWxzKGFjdHVhbF9tZXNzYWdlLCBleHBlY3RlZF9tZXNzYWdlKQorCisgICAg ICAgIGV4cGVjdGVkX2lzX3Bhc3N3b3JkX3NhdmVkID0gc2VsZi50ZXN0X2RhdGFbImlzX3Bhc3N3 b3JkX3NhdmVkIl0KKyAgICAgICAgYWN0dWFsX2lzX3Bhc3N3b3JkX3NhdmVkID0gcmVzcG9uc2Vf ZGF0YVsiZGF0YSJdWyJpc19wYXNzd29yZF9zYXZlZCJdCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWxzKGFjdHVhbF9pc19wYXNzd29yZF9zYXZlZCwgZXhwZWN0ZWRfaXNfcGFzc3dvcmRfc2F2ZWQp CisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVs ZXRlIHRoZSBzZXJ2ZXIgZnJvbSBTUUxpdGUgIiIiCisgICAgICAgIHV0aWxzLmRlbGV0ZV9zZXJ2 ZXJfd2l0aF9hcGkoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkKQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJf YWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMv dGVzdF9zZXJ2ZXJfYWRkLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZmUzY2Y2 YTguLjAwMDAwMDAwMAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90ZXN0cy90ZXN0X3NlcnZlcl9hZGQucHkKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCww IEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xz Ci0jCi0jIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50 IFRlYW0KLSMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBM aWNlbmNlCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1pbXBvcnQganNvbgotaW1wb3J0IGNvcHkK LWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20g cmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwot Ci0KLWNsYXNzIFNlcnZlcnNBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIi IFRoaXMgY2xhc3Mgd2lsbCBhZGQgdGhlIHNlcnZlcnMgdW5kZXIgZGVmYXVsdCBzZXJ2ZXIgZ3Jv dXAuICIiIgotCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoIHRoZSBkZWZhdWx0 IHVybCBmb3Igc2VydmVyIG9iamVjdAotICAgICAgICAoJ0RlZmF1bHQgU2VydmVyIE5vZGUgdXJs JywgZGljdCh1cmw9Jy9icm93c2VyL3NlcnZlci9vYmovJykpCi0gICAgXQotCi0gICAgZGVmIHNl dFVwKHNlbGYpOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAg ICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgdGhlIHNlcnZlciB1bmRlciBkZWZhdWx0IHNl cnZlciBncm91cC4iIiIKLSAgICAgICAgdXJsID0gInswfXsxfS8iLmZvcm1hdChzZWxmLnVybCwg dXRpbHMuU0VSVkVSX0dST1VQKQotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3Qo dXJsLCBkYXRhPWpzb24uZHVtcHMoc2VsZi5zZXJ2ZXIpLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQotICAgICAgICBzZWxmLmFz c2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotICAgICAgICByZXNwb25zZV9k YXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKLSAgICAgICAg c2VsZi5zZXJ2ZXJfaWQgPSByZXNwb25zZV9kYXRhWydub2RlJ11bJ19pZCddCi0gICAgICAgIHNl cnZlcl9kaWN0ID0geyJzZXJ2ZXJfaWQiOiBpbnQoc2VsZi5zZXJ2ZXJfaWQpfQotICAgICAgICB1 dGlscy53cml0ZV9ub2RlX2luZm8oInNpZCIsIHNlcnZlcl9kaWN0KQotCi0gICAgZGVmIHRlYXJE b3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgc2VydmVyIGZy b20gU1FMaXRlICIiIgotICAgICAgICB1dGlscy5kZWxldGVfc2VydmVyX3dpdGhfYXBpKHNlbGYu dGVzdGVyLCBzZWxmLnNlcnZlcl9pZCkKLQotCi1jbGFzcyBBZGRTZXJ2ZXJzV2l0aFNhdmVQYXNz d29yZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxs IGFkZCB0aGUgc2VydmVycyB1bmRlciBkZWZhdWx0IHNlcnZlciBncm91cC4gIiIiCi0KLSAgICBz Y2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2ggdGhlIGRlZmF1bHQgdXJsIGZvciBzZXJ2ZXIg b2JqZWN0Ci0gICAgICAgICgnQWRkIHNlcnZlciB3aXRoIHBhc3N3b3JkIGFuZCBzYXZlIHBhc3N3 b3JkIHRvIHRydWUnLAotICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL3NlcnZlci9vYmovJywg d2l0aF9wd2Q9VHJ1ZSwgd2l0aF9zYXZlPVRydWUpKSwKLSAgICAgICAgKCdBZGQgc2VydmVyIHdp dGggcGFzc3dvcmQgYW5kIHNhdmUgcGFzc3dvcmQgdG8gZmFsc2UnLAotICAgICAgICAgZGljdCh1 cmw9Jy9icm93c2VyL3NlcnZlci9vYmovJywgd2l0aF9wd2Q9VHJ1ZSwgd2l0aF9zYXZlPUZhbHNl KSksCi0gICAgICAgICgnQWRkIHNlcnZlciB3aXRob3V0IHBhc3N3b3JkIGFuZCBzYXZlIHBhc3N3 b3JkIHRvIHRydWUnLAotICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL3NlcnZlci9vYmovJywg d2l0aF9wd2Q9RmFsc2UsIHdpdGhfc2F2ZT1UcnVlKSksCi0gICAgXQotCi0gICAgZGVmIHNldFVw KHNlbGYpOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAg IiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgdGhlIHNlcnZlciB1bmRlciBkZWZhdWx0IHNlcnZl ciBncm91cC4iIiIKLSAgICAgICAgdXJsID0gInswfXsxfS8iLmZvcm1hdChzZWxmLnVybCwgdXRp bHMuU0VSVkVSX0dST1VQKQotICAgICAgICBfc2VydmVyID0gY29weS5kZWVwY29weShzZWxmLnNl cnZlcikKLSAgICAgICAgIyBVcGRhdGUgdGhlIGZsYWcgYXMgcmVxdWlyZWQKLSAgICAgICAgX3Nl cnZlclsnc2F2ZV9wYXNzd29yZCddID0gc2VsZi53aXRoX3NhdmUKLSAgICAgICAgaWYgbm90IHNl bGYud2l0aF9wd2Q6Ci0gICAgICAgICAgICAjIFJlbW92ZSB0aGUgcGFzc3dvcmQgZnJvbSBzZXJ2 ZXIgb2JqZWN0Ci0gICAgICAgICAgICBkZWwgX3NlcnZlclsnZGJfcGFzc3dvcmQnXQotCi0gICAg ICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCh1cmwsIGRhdGE9anNvbi5kdW1wcyhfc2Vy dmVyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0n aHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2Nv ZGUsIDIwMCkKLSAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0 YS5kZWNvZGUoJ3V0Zi04JykpCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gcmVzcG9uc2VfZGF0 YVsnbm9kZSddWydfaWQnXQotICAgICAgICBzZXJ2ZXJfZGljdCA9IHsic2VydmVyX2lkIjogaW50 KHNlbGYuc2VydmVyX2lkKX0KLSAgICAgICAgIyBGZXRjaCB0aGUgbm9kZSBpbmZvIHRvIGNoZWNr IGlmIHBhc3N3b3JkIHdhcyBzYXZlZCBvciBub3QKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5nZXQoc2VsZi51cmwucmVwbGFjZSgnb2JqJywgJ25vZGVzJykgKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCksCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkK LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAg ICAgICAgc2VsZi5hc3NlcnRUcnVlKCdpc19wYXNzd29yZF9zYXZlZCcgaW4gcmVzcG9uc2UuanNv blsncmVzdWx0J10pCi0gICAgICAgIHV0aWxzLndyaXRlX25vZGVfaW5mbygic2lkIiwgc2VydmVy X2RpY3QpCi0KLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rp b24gZGVsZXRlIHRoZSBzZXJ2ZXIgZnJvbSBTUUxpdGUgIiIiCi0gICAgICAgIHV0aWxzLmRlbGV0 ZV9zZXJ2ZXJfd2l0aF9hcGkoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkKQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9z ZXJ2ZXJfZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZGVsZXRlLnB5CmluZGV4IGMyYjE4NDI5NS4uNDMyMjBlYjJm IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90 ZXN0cy90ZXN0X3NlcnZlcl9kZWxldGUucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZGVsZXRlLnB5CkBAIC05LDE1ICs5 LDE0IEBACiAKIGZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0 b3IKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBh cyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBzZXJ2ZXJzX3V0aWxzCiAKIAogY2xhc3Mg U2VydmVyRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICIiIiBUaGlzIGNs YXNzIHdpbGwgZGVsZXRlIHRoZSBsYXN0IHNlcnZlciBwcmVzZW50IHVuZGVyIHRyZWUgbm9kZS4i IiIKIAotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyB0aGUgZGVmYXVsdCB1 cmwgZm9yIHNlcnZlciBub2RlCi0gICAgICAgICgnRGVmYXVsdCBTZXJ2ZXIgTm9kZSB1cmwnLCBk aWN0KHVybD0nL2Jyb3dzZXIvc2VydmVyL29iai8nKSkKLSAgICBdCisgICAgc2NlbmFyaW9zID0g dXRpbHMuZ2VuZXJhdGVfc2NlbmFyaW9zKCdkZWxldGVfc2VydmVyJywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyc191dGlscy50ZXN0X2Nhc2VzKQogCiAg ICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGFkZCB0aGUgc2Vy dmVyIHRvIHRlc3QgdGhlIERFTEVURSBBUEkiIiIKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2dldC5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVy X2dldC5weQppbmRleCA5ZjkyZmZjY2UuLjVhODNlMmEwOCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZ2V0LnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rl c3Rfc2VydmVyX2dldC5weQpAQCAtMTAsNiArMTAsOCBAQAogZnJvbSBwZ2FkbWluLnV0aWxzLnJv dXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJl bnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRl c3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgc2VydmVyc191dGlscwor aW1wb3J0IGpzb24KIAogCiBjbGFzcyBTZXJ2ZXJzR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgpAQCAtMTgsMjYgKzIwLDUwIEBAIGNsYXNzIFNlcnZlcnNHZXRUZXN0Q2FzZShCYXNlVGVz dEdlbmVyYXRvcik6CiAgICAgYnkgcmVzcG9uc2UgY29kZS4KICAgICAiIiIKIAotICAgIHNjZW5h cmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaCB0aGUgZGVmYXVsdCB1cmwgZm9yIHNlcnZlciBub2Rl Ci0gICAgICAgICgnRGVmYXVsdCBTZXJ2ZXIgTm9kZSB1cmwnLCBkaWN0KHVybD0nL2Jyb3dzZXIv c2VydmVyL29iai8nKSkKLSAgICBdCisgICAgc2NlbmFyaW9zID0gdXRpbHMuZ2VuZXJhdGVfc2Nl bmFyaW9zKCdnZXRfc2VydmVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyc191dGlscy50ZXN0X2Nhc2VzKQogCiAgICAgZGVmIHNldFVwKHNlbGYpOgog ICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGFkZCB0aGUgc2VydmVyIHRvIHRlc3QgdGhlIEdFVCBB UEkiIiIKLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSB1dGlscy5jcmVhdGVfc2VydmVyKHNlbGYu c2VydmVyKQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdzaGFyZWQnKToKKworICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJbJ3NoYXJlZCddID0gVHJ1ZQorICAgICAgICAgICAgdXJsID0gInswfXsx fS8iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQKQorICAgICAgICAgICAgcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICAgICAgICAgIHVybCwKKyAgICAgICAg ICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi5zZXJ2ZXIpLAorICAgICAgICAgICAgICAgIGNv bnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICAgICAgKQorICAgICAgICAgICAgcmVzcG9u c2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCisgICAg ICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHJlc3BvbnNlX2RhdGFbJ25vZGUnXVsnX2lkJ10KKyAg ICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkID0gdXRpbHMuY3JlYXRlX3Nl cnZlcihzZWxmLnNlcnZlcikKICAgICAgICAgc2VydmVyX2RpY3QgPSB7InNlcnZlcl9pZCI6IHNl bGYuc2VydmVyX2lkfQogICAgICAgICB1dGlscy53cml0ZV9ub2RlX2luZm8oInNpZCIsIHNlcnZl cl9kaWN0KQogCisgICAgZGVmIGdldF9zZXJ2ZXIoc2VsZiwgc2VydmVyX2lkKToKKyAgICAgICAg cmV0dXJuIHNlbGYudGVzdGVyLmdldChzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVAp ICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VydmVyX2lkKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisK ICAgICBkZWYgcnVuVGVzdChzZWxmKToKICAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBm ZXRjaCB0aGUgYWRkZWQgc2VydmVycyB0byBvYmplY3QgYnJvd3Nlci4gIiIiCiAgICAgICAgIHNl cnZlcl9pZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2VydmVyX2lkIl0KICAg ICAgICAgaWYgbm90IHNlcnZlcl9pZDoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiU2Vy dmVyIG5vdCBmb3VuZCB0byB0ZXN0IEdFVCBBUEkiKQotICAgICAgICByZXNwb25zZSA9IHNlbGYu dGVzdGVyLmdldChzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCksCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAg ICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAg cmVzcG9uc2UgPSBOb25lCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAgICAg ICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgImluY29ycmVjdF9zZXJ2ZXJfaWQiKToKKyAgICAgICAg ICAgICAgICBzZXJ2ZXJfaWQgPSA5OTk5CisgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJz ZXJ2ZXJfbGlzdCIpOgorICAgICAgICAgICAgICAgIHNlcnZlcl9pZCA9ICcnCisgICAgICAgICAg ICBpZiBoYXNhdHRyKHNlbGYsICJzZXJ2ZXJfbm9kZSIpOgorICAgICAgICAgICAgICAgIHNlcnZl cl9pZCA9ICcnCisgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdzaGFyZWQnKToKKyAgICAg ICAgICAgICAgICBzZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9pZAorICAgICAgICAgICAgcmVzcG9u c2UgPSBzZWxmLmdldF9zZXJ2ZXIoc2VydmVyX2lkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs cyhyZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5l eHBlY3RlZF9kYXRhWyJzdGF0dXNfY29kZSJdKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgog ICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgc2VydmVyIGZyb20gU1FMaXRlICIi IgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv dGVzdHMvdGVzdF9zZXJ2ZXJfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfcHV0LnB5CmluZGV4IDhhNjk1NThlOS4uNzQ2 NzRjN2NiIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90ZXN0cy90ZXN0X3NlcnZlcl9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfcHV0LnB5CkBAIC0xMSwzMiAr MTEsNjEgQEAgaW1wb3J0IGpzb24KIAogZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBC YXNlVGVzdEdlbmVyYXRvcgogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9y dCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHNlcnZlcnNfdXRp bHMKIAogCiBjbGFzcyBTZXJ2ZXJVcGRhdGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAg ICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCB1cGRhdGUgc2VydmVyJ3MgY29tbWVudCBmaWVsZC4gIiIi CiAKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgdGhlIGRlZmF1bHQgdXJs IGZvciBzZXJ2ZXIgbm9kZQotICAgICAgICAoJ0RlZmF1bHQgU2VydmVyIE5vZGUgdXJsJywgZGlj dCh1cmw9Jy9icm93c2VyL3NlcnZlci9vYmovJykpCi0gICAgXQorICAgIHNjZW5hcmlvcyA9IHV0 aWxzLmdlbmVyYXRlX3NjZW5hcmlvcygndXBkYXRlX3NlcnZlcicsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcnNfdXRpbHMudGVzdF9jYXNlcykKIAogICAg IGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBhZGQgdGhlIHNlcnZl ciB0byB0ZXN0IHRoZSBQVVQgQVBJIiIiCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gdXRpbHMu Y3JlYXRlX3NlcnZlcihzZWxmLnNlcnZlcikKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnY2xl YXJfc2F2ZV9wYXNzd29yZCcpOgorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3NhdmVfcGFzc3dv cmQnXSA9IDEKKyAgICAgICAgY3JlYXRlX3NlcnZlcl91cmwgPSAiL2Jyb3dzZXIvc2VydmVyL29i ai97MH0vIi5mb3JtYXQoCisgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVApCisKKyAgICAg ICAgc2VsZi5zZXJ2ZXJfaWQgPSBcCisgICAgICAgICAgICBzZXJ2ZXJzX3V0aWxzLmNyZWF0ZV9z ZXJ2ZXJfd2l0aF9hcGkoc2VsZiwgY3JlYXRlX3NlcnZlcl91cmwpCiAgICAgICAgIHNlcnZlcl9k aWN0ID0geyJzZXJ2ZXJfaWQiOiBzZWxmLnNlcnZlcl9pZH0KICAgICAgICAgdXRpbHMud3JpdGVf bm9kZV9pbmZvKCJzaWQiLCBzZXJ2ZXJfZGljdCkKIAorICAgIGRlZiB1cGRhdGVfc2VydmVyKHNl bGYpOgorICAgICAgICByZXR1cm4gc2VsZi50ZXN0ZXIucHV0KAorICAgICAgICAgICAgc2VsZi51 cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2Vs Zi5zZXJ2ZXJfaWQpLCBkYXRhPWpzb24uZHVtcHMoc2VsZi50ZXN0X2RhdGEpLAorICAgICAgICAg ICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgZGVmIGNvbm5lY3RfdG9fc2VydmVy KHNlbGYsIHVybCk6CisgICAgICAgIHJldHVybiBzZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICAg ICAgdXJsLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYuc2VydmVyKSwKKyAgICAg ICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICApCisKICAgICBkZWYgcnVu VGVzdChzZWxmKToKICAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB1cGRhdGUgdGhlIHNlcnZlciBk ZXRhaWxzIiIiCiAgICAgICAgIGlmIG5vdCBzZWxmLnNlcnZlcl9pZDoKICAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiTm8gc2VydmVyIHRvIHVwZGF0ZS4iKQotICAgICAgICBkYXRhID0geyJj b21tZW50Ijogc2VsZi5zZXJ2ZXJbJ2NvbW1lbnQnXSwgImlkIjogc2VsZi5zZXJ2ZXJfaWR9Ci0g ICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKLSAgICAgICAgICAgIHNlbGYu dXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKHNl bGYuc2VydmVyX2lkKSwgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAotICAgICAgICAgICAgY29udGVu dF90eXBlPSdodG1sL2pzb24nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwdXRfcmVzcG9u c2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgaWYgJ2NvbW1lbnQnIGluIHNlbGYudGVzdF9k YXRhOgorICAgICAgICAgICAgc2VsZi50ZXN0X2RhdGFbImNvbW1lbnQiXSA9IHNlbGYuc2VydmVy Wydjb21tZW50J10KKyAgICAgICAgc2VsZi50ZXN0X2RhdGFbImlkIl0gPSBzZWxmLnNlcnZlcl9p ZAorICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICBpZiBoYXNh dHRyKHNlbGYsICdzZXJ2ZXJfY29ubmVjdGVkJyk6CisgICAgICAgICAgICAgICAgdXJsID0gJy9i cm93c2VyL3NlcnZlci9jb25uZWN0L3swfS97MX0nLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAg ICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9p ZCkKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsncGFzc3dvcmQnXSA9IHNlbGYuc2VydmVy WydkYl9wYXNzd29yZCddCisgICAgICAgICAgICAgICAgc2VsZi5jb25uZWN0X3RvX3NlcnZlcih1 cmwpCisgICAgICAgICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnVwZGF0ZV9zZXJ2ZXIoKQorICAg ICAgICBlbHNlOgorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnd3Jvbmdfc2VydmVyX2lk Jyk6CisgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSA5OTk5CisgICAgICAgICAgICBw dXRfcmVzcG9uc2UgPSBzZWxmLnVwZGF0ZV9zZXJ2ZXIoKQorICAgICAgICBzZWxmLmFzc2VydEVx dWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuZXhwZWN0ZWRfZGF0YVsic3RhdHVzX2NvZGUiXSkKIAogICAgIGRlZiB0ZWFyRG93bihz ZWxmKToKICAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIHNlcnZlciBmcm9tIFNR TGl0ZSIiIgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGVzdHMvdGVzdF9zaGFyZWRfc2VydmVyLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zaGFyZWRfc2VydmVyLnB5Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYmYzNGFkMTIzCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9z aGFyZWRfc2VydmVyLnB5CkBAIC0wLDAgKzEsMTI1IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIwor IyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyBy ZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitm cm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lvbi5w eXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9y dCB1dGlscyBhcyBzZXJ2ZXJzX3V0aWxzCitpbXBvcnQganNvbgorZnJvbSByZWdyZXNzaW9uLnRl c3Rfc2V0dXAgaW1wb3J0IGNvbmZpZ19kYXRhCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3Rf dXRpbHMudGVzdF91dGlscyBpbXBvcnQgXAorICAgIGNyZWF0ZV91c2VyX3dpc2VfdGVzdF9jbGll bnQKKwordGVzdF91c2VyX2RldGFpbHMgPSBjb25maWdfZGF0YVsKKyAgICAncGdBZG1pbjRfdGVz dF9ub25fYWRtaW5fY3JlZGVudGlhbHMnXQorCisKK2NsYXNzIFNoYXJlZFNlcnZlcnNHZXRUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiCisgICAgVGhpcyBjbGFzcyB3aWxsIGZl dGNoIGFkZGVkIHNlcnZlcnMgdW5kZXIgZGVmYXVsdCBzZXJ2ZXIgZ3JvdXAKKyAgICBieSByZXNw b25zZSBjb2RlLgorICAgICIiIgorCisgICAgc2NlbmFyaW9zID0gdXRpbHMuZ2VuZXJhdGVfc2Nl bmFyaW9zKCdnZXRfc2hhcmVkX3NlcnZlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlcnZlcnNfdXRpbHMudGVzdF9jYXNlcykKKworICAgIGRlZiBzZXRVcChz ZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBhZGQgdGhlIHNlcnZlciB0byB0ZXN0IHRo ZSBHRVQgQVBJIiIiCisgICAgICAgIHNlbGYuc2VydmVyWydzaGFyZWQnXSA9IFRydWUKKyAgICAg ICAgdXJsID0gInswfXsxfS8iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQKQor ICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCisgICAgICAgICAgICB1cmwsCisg ICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi5zZXJ2ZXIpLAorICAgICAgICAgICAgY29u dGVudF90eXBlPSdodG1sL2pzb24nCisgICAgICAgICkKKyAgICAgICAgcmVzcG9uc2VfZGF0YSA9 IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCisgICAgICAgIHNlbGYu c2VydmVyX2lkID0gcmVzcG9uc2VfZGF0YVsnbm9kZSddWydfaWQnXQorCisgICAgICAgIHNlcnZl cl9kaWN0ID0geyJzZXJ2ZXJfaWQiOiBzZWxmLnNlcnZlcl9pZH0KKyAgICAgICAgdXRpbHMud3Jp dGVfbm9kZV9pbmZvKCJzaWQiLCBzZXJ2ZXJfZGljdCkKKworICAgIGRlZiBnZXRfc2VydmVyKHNl bGYsIHNlcnZlcl9pZCk6CisgICAgICAgIHJldHVybiBzZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwg KyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RyKHNlcnZlcl9pZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Zm9sbG93X3JlZGlyZWN0cz1UcnVlKQorCisgICAgQGNyZWF0ZV91c2VyX3dpc2VfdGVzdF9jbGll bnQodGVzdF91c2VyX2RldGFpbHMpCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIi IiBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIGFkZGVkIHNlcnZlcnMgdG8gb2JqZWN0IGJy b3dzZXIuICIiIgorICAgICAgICBpZiBub3Qgc2VsZi5zZXJ2ZXJfaWQ6CisgICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIlNlcnZlciBub3QgZm91bmQgdG8gdGVzdCBHRVQgQVBJIikKKyAgICAg ICAgcmVzcG9uc2UgPSBOb25lCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAg ICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ25vX3NlcnZlcl9pZCcpOgorICAgICAgICAgICAg ICAgIGlmIGhhc2F0dHIoc2VsZiwgJ3NlcnZlcl9saXN0Jyk6CisgICAgICAgICAgICAgICAgICAg IHNlbGYudXJsID0gJy9icm93c2VyL3NlcnZlci9ub2Rlcy8nCisgICAgICAgICAgICAgICAgc2Vy dmVyX2lkID0gJycKKyAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X3NlcnZlcihz ZXJ2ZXJfaWQpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0g c2VsZi5nZXRfc2VydmVyKHNlbGYuc2VydmVyX2lkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs cyhyZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5l eHBlY3RlZF9kYXRhWyJzdGF0dXNfY29kZSJdKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgor ICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgc2VydmVyIGZyb20gU1FMaXRlICIi IgorICAgICAgICB1dGlscy5kZWxldGVfc2VydmVyX3dpdGhfYXBpKHNlbGYudGVzdGVyLCBzZWxm LnNlcnZlcl9pZCkKKworCitjbGFzcyBTaGFyZWRTZXJ2ZXJVcGRhdGVUZXN0Q2FzZShCYXNlVGVz dEdlbmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCB1cGRhdGUgc2VydmVyJ3MgY29t bWVudCBmaWVsZC4gIiIiCisKKyAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJp b3MoJ3VwZGF0ZV9zaGFyZWRfc2VydmVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VydmVyc191dGlscy50ZXN0X2Nhc2VzKQorCisgICAgZGVmIHNldFVwKHNl bGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGFkZCB0aGUgc2VydmVyIHRvIHRlc3QgdGhl IFBVVCBBUEkiIiIKKyAgICAgICAgc2VsZi5zZXJ2ZXJbJ3NoYXJlZCddID0gVHJ1ZQorICAgICAg ICBpZiBoYXNhdHRyKHNlbGYsICdjbGVhcl9zYXZlX3Bhc3N3b3JkJyk6CisgICAgICAgICAgICBz ZWxmLnNlcnZlclsnc2F2ZV9wYXNzd29yZCddID0gMQorICAgICAgICBjcmVhdGVfc2VydmVyX3Vy bCA9ICIvYnJvd3Nlci9zZXJ2ZXIvb2JqL3swfS8iLmZvcm1hdCgKKyAgICAgICAgICAgIHV0aWxz LlNFUlZFUl9HUk9VUCkKKworICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IFwKKyAgICAgICAgICAg IHNlcnZlcnNfdXRpbHMuY3JlYXRlX3NlcnZlcl93aXRoX2FwaShzZWxmLCBjcmVhdGVfc2VydmVy X3VybCkKKyAgICAgICAgc2VydmVyX2RpY3QgPSB7InNlcnZlcl9pZCI6IHNlbGYuc2VydmVyX2lk fQorICAgICAgICB1dGlscy53cml0ZV9ub2RlX2luZm8oInNpZCIsIHNlcnZlcl9kaWN0KQorCisg ICAgZGVmIHVwZGF0ZV9zZXJ2ZXIoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnRlc3Rlci5w dXQoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8n ICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCksIGRhdGE9anNvbi5kdW1wcyhzZWxm LnRlc3RfZGF0YSksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAg ICBkZWYgY29ubmVjdF90b19zZXJ2ZXIoc2VsZiwgdXJsKToKKyAgICAgICAgcmV0dXJuIHNlbGYu dGVzdGVyLnBvc3QoCisgICAgICAgICAgICB1cmwsCisgICAgICAgICAgICBkYXRhPWpzb24uZHVt cHMoc2VsZi5zZXJ2ZXIpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nCisg ICAgICAgICkKKworICAgIEBjcmVhdGVfdXNlcl93aXNlX3Rlc3RfY2xpZW50KHRlc3RfdXNlcl9k ZXRhaWxzKQorICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9u IHVwZGF0ZSB0aGUgc2VydmVyIGRldGFpbHMiIiIKKyAgICAgICAgaWYgbm90IHNlbGYuc2VydmVy X2lkOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyBzZXJ2ZXIgdG8gdXBkYXRlLiIp CisgICAgICAgIGlmICdjb21tZW50JyBpbiBzZWxmLnRlc3RfZGF0YToKKyAgICAgICAgICAgIHNl bGYudGVzdF9kYXRhWyJjb21tZW50Il0gPSBzZWxmLnNlcnZlclsnY29tbWVudCddCisgICAgICAg IHNlbGYudGVzdF9kYXRhWyJpZCJdID0gc2VsZi5zZXJ2ZXJfaWQKKyAgICAgICAgaWYgc2VsZi5p c19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi51cGRhdGVf c2VydmVyKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ3dy b25nX3NlcnZlcl9pZCcpOgorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkID0gOTk5OQor ICAgICAgICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi51cGRhdGVfc2VydmVyKCkKKyAgICAgICAg c2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLAorICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkX2RhdGFbInN0YXR1c19jb2RlIl0pCisKKyAgICBk ZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRoZSBz ZXJ2ZXIgZnJvbSBTUUxpdGUiIiIKKyAgICAgICAgdXRpbHMuZGVsZXRlX3NlcnZlcl93aXRoX2Fw aShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy91dGlscy5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3V0aWxzLnB5Cm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uODY4MGIyOWZiCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdXRpbHMucHkK QEAgLTAsMCArMSw1MiBAQAoraW1wb3J0IG9zCitpbXBvcnQganNvbgoraW1wb3J0IHNxbGl0ZTMK K2ltcG9ydCBjb25maWcKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQg dGVzdF91dGlscyBhcyB1dGlscworCisKK0NVUlJFTlRfUEFUSCA9IG9zLnBhdGguZGlybmFtZShv cy5wYXRoLnJlYWxwYXRoKF9fZmlsZV9fKSkKK3dpdGggb3BlbihDVVJSRU5UX1BBVEggKyAiL3Nl cnZlcnNfdGVzdF9kYXRhLmpzb24iKSBhcyBkYXRhX2ZpbGU6CisgICAgdGVzdF9jYXNlcyA9IGpz b24ubG9hZChkYXRhX2ZpbGUpCisKKworZGVmIGNyZWF0ZV9zZXJ2ZXIoc2VydmVyLCBTRVJWRVJf R1JPVVApOgorICAgICIiIlRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBjcmVhdGUgc2VydmVyIiIi CisgICAgdHJ5OgorICAgICAgICBjb25uID0gc3FsaXRlMy5jb25uZWN0KGNvbmZpZy5URVNUX1NR TElURV9QQVRIKQorICAgICAgICAjIENyZWF0ZSB0aGUgc2VydmVyCisgICAgICAgIGN1ciA9IGNv bm4uY3Vyc29yKCkKKyAgICAgICAgaWYgJ3NoYXJlZCcgbm90IGluIHNlcnZlcjoKKyAgICAgICAg ICAgIHNlcnZlclsnc2hhcmVkJ10gPSBGYWxzZQorICAgICAgICBzZXJ2ZXJfZGV0YWlscyA9ICgx LCBTRVJWRVJfR1JPVVAsIHNlcnZlclsnbmFtZSddLCBzZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VydmVyWydwb3J0J10sIHNlcnZlclsnZGInXSwgc2VydmVyWyd1 c2VybmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3JvbGUnXSwgc2Vy dmVyWydzc2xtb2RlJ10sIHNlcnZlclsnY29tbWVudCddLAorICAgICAgICAgICAgICAgICAgICAg ICAgICBzZXJ2ZXJbJ3NoYXJlZCddKQorICAgICAgICBjdXIuZXhlY3V0ZSgnSU5TRVJUIElOVE8g c2VydmVyICh1c2VyX2lkLCBzZXJ2ZXJncm91cF9pZCwgbmFtZSwgaG9zdCwgJworICAgICAgICAg ICAgICAgICAgICAncG9ydCwgbWFpbnRlbmFuY2VfZGIsIHVzZXJuYW1lLCByb2xlLCBzc2xfbW9k ZSwnCisgICAgICAgICAgICAgICAgICAgICcgY29tbWVudCwgc2hhcmVkKSBWQUxVRVMgKD8sPyw/ LD8sPyw/LD8sPyw/LD8sPyknLAorICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfZGV0YWlscykK KyAgICAgICAgc2VydmVyX2lkID0gY3VyLmxhc3Ryb3dpZAorICAgICAgICBjb25uLmNvbW1pdCgp CisgICAgICAgIGNvbm4uY2xvc2UoKQorCisgICAgICAgIHR5cGUgPSB1dGlscy5nZXRfc2VydmVy X3R5cGUoc2VydmVyKQorICAgICAgICBzZXJ2ZXJbJ3R5cGUnXSA9IHR5cGUKKworICAgICAgICBy ZXR1cm4gc2VydmVyX2lkCisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGNlcHRpb246CisgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiRXJyb3Igd2hpbGUgY3JlYXRpbmcgc2VydmVyLiAlcyIgJSBl eGNlcHRpb24pCisKKworZGVmIGNyZWF0ZV9zZXJ2ZXJfd2l0aF9hcGkoc2VsZiwgdXJsKToKKyAg ICB0cnk6CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgICAg IHVybCwKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhzZWxmLnNlcnZlciksCisgICAgICAg ICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAgICAgKQorICAgICAgICByZXNwb25z ZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKKyAgICAg ICAgc2VydmVyX2lkID0gcmVzcG9uc2VfZGF0YVsnbm9kZSddWydfaWQnXQorICAgICAgICByZXR1 cm4gc2VydmVyX2lkCisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGNlcHRpb246CisgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigiRXJyb3Igd2hpbGUgY3JlYXRpbmcgc2VydmVyLiAlcyIgJSBleGNl cHRpb24pCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc3Rh dGljL2ltZy9zZXJ2ZXJfZ3JvdXBfc2hhcmVkLnN2ZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zdGF0aWMvaW1nL3NlcnZlcl9ncm91cF9zaGFyZWQuc3ZnCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNmE0ZTIyYmY4Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3N0YXRpYy9pbWcvc2VydmVyX2dyb3Vw X3NoYXJlZC5zdmcKQEAgLTAsMCArMSw0MiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu Zz0idXRmLTgiPz4KKzwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNC4yLjMsIFNW RyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4KKzxzdmcg dmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv c3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5 PSIwcHgiCisJIHZpZXdCb3g9IjAgMCAxNiAxNiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5l dyAwIDAgMTYgMTY7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2Nz cyI+CisJLnN0MHtmaWxsOiNGMkYyRjI7fQorCS5zdDF7ZmlsbDojOUJBNUIwO30KKwkuc3Qye2Zp bGw6bm9uZTtzdHJva2U6IzlCQTVCMDtzdHJva2Utd2lkdGg6MC43NTtzdHJva2UtbWl0ZXJsaW1p dDoxO30KKwkuc3Qze2ZpbGw6I0Y3RjdGNzt9CisJLnN0NHtmaWxsOiMzNTRBNUY7fQorPC9zdHls ZT4KKzxnPgorCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik02LjcsMi4xaDQuNmMwLjYsMCwxLjEsMC41 LDEuMSwxLjFWNGMwLDAuNi0wLjUsMS4xLTEuMSwxLjFINi43QzYuMSw1LjEsNS42LDQuNiw1LjYs NFYzLjIKKwkJQzUuNiwyLjYsNi4xLDIuMSw2LjcsMi4xeiIvPgorCTxwYXRoIGNsYXNzPSJzdDEi IGQ9Ik0xMS4zLDIuNWMwLjQsMCwwLjgsMC4zLDAuOCwwLjh2MC44YzAsMC40LTAuMywwLjgtMC44 LDAuOEg2LjdDNi4zLDQuOCw2LDQuNSw2LDQuMVYzLjIKKwkJYzAtMC40LDAuMy0wLjcsMC44LTAu N0gxMS4zIE0xMS4zLDEuN0g2LjdjLTAuOCwwLTEuNSwwLjctMS41LDEuNVY0YzAsMC44LDAuNywx LjUsMS41LDEuNWg0LjZjMC44LDAsMS41LTAuNywxLjUtMS41VjMuMgorCQlDMTIuOCwyLjQsMTIu MSwxLjcsMTEuMywxLjdMMTEuMywxLjd6Ii8+CisJPGxpbmUgY2xhc3M9InN0MiIgeDE9IjguOSIg eTE9IjMuNiIgeDI9IjYuOCIgeTI9IjMuNiIvPgorCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik02Ljcs NS4yaDQuNmMwLjYsMCwxLjEsMC41LDEuMSwxLjF2MC44YzAsMC42LTAuNSwxLjEtMS4xLDEuMUg2 LjdjLTAuNiwwLTEuMS0wLjUtMS4xLTEuMVY2LjMKKwkJQzUuNiw1LjcsNi4xLDUuMiw2LjcsNS4y eiIvPgorCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0xMS4zLDUuNmMwLjQsMCwwLjgsMC4zLDAuOCww Ljh2MC44YzAsMC40LTAuMywwLjgtMC44LDAuOEg2LjdDNi4zLDcuOSw2LDcuNiw2LDcuMVY2LjMK KwkJYzAtMC40LDAuMy0wLjcsMC44LTAuN0wxMS4zLDUuNiBNMTEuMyw0LjhINi43Yy0wLjgsMC0x LjUsMC43LTEuNSwxLjV2MC44YzAsMC44LDAuNywxLjUsMS41LDEuNWg0LjZjMC44LDAsMS41LTAu NywxLjUtMS41VjYuMworCQlDMTIuOCw1LjUsMTIuMSw0LjgsMTEuMyw0LjhMMTEuMyw0Ljh6Ii8+ CisJPGxpbmUgY2xhc3M9InN0MiIgeDE9IjguOSIgeTE9IjYuNyIgeDI9IjYuOCIgeTI9IjYuNyIv PgorCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik02LjcsOC4zaDQuNmMwLjYsMCwxLjEsMC41LDEuMSwx LjF2MC45YzAsMC42LTAuNSwxLjEtMS4xLDEuMWwwLDBINi43Yy0wLjYsMC0xLjEtMC41LTEuMS0x LjFsMCwwVjkuNAorCQlDNS42LDguOCw2LjEsOC4zLDYuNyw4LjNMNi43LDguM3oiLz4KKwk8cGF0 aCBjbGFzcz0ic3QxIiBkPSJNMTEuMyw4LjdjMC40LDAsMC44LDAuMywwLjgsMC44djAuOGMwLDAu NC0wLjMsMC44LTAuOCwwLjhINi43QzYuMywxMSw2LDEwLjcsNiwxMC4zVjkuNEM2LDksNi4zLDgu Nyw2LjcsOC43CisJCUgxMS4zIE0xMS4zLDcuOUg2LjdjLTAuOCwwLTEuNSwwLjctMS41LDEuNXYw LjhjMCwwLjgsMC43LDEuNSwxLjUsMS41aDQuNmMwLjgsMCwxLjUtMC43LDEuNS0xLjVWOS40QzEy LjgsOC42LDEyLjEsNy45LDExLjMsNy45egorCQkiLz4KKwk8bGluZSBjbGFzcz0ic3QyIiB4MT0i OC45IiB5MT0iOS44IiB4Mj0iNi44IiB5Mj0iOS44Ii8+Cis8L2c+Cis8cGF0aCBjbGFzcz0ic3Qz IiBkPSJNMTEuNiwxMC41Yy0wLjYsMC4zLTAuOCwwLjEtMS4xLTAuMmMtMC4xLTAuMi0wLjMtMC40 LTAuNi0wLjVMNy4xLDguNWMtMC4zLTAuMS0wLjctMC4yLTEtMC4yCisJQzUuMSw4LjEsNC4yLDgu NCwzLjQsOUwyLDEwLjF2Mi43aDAuOXYtMC4ybDMuNywxLjhjMC40LDAuMiwwLjcsMC4zLDEuMSww LjNjMC4zLDAsMC43LTAuMSwxLTAuMmw2LjEtMi42YzAuMy0wLjEsMC42LTAuNCwwLjctMC43CisJ YzAuMS0wLjMsMC4xLTAuNywwLTFjLTAuMy0wLjYtMS4xLTAuOS0xLjctMC42bC0wLjQsMC4yTDEx LjYsMTAuNSIvPgorPHBhdGggY2xhc3M9InN0NCIgZD0iTTE1LjUsMTAuMmMtMC4zLTAuNi0xLjEt MC45LTEuNy0wLjZsLTAuNCwwLjJsLTEuOCwwLjhsMC4zLDAuOGwxLjgtMC44bDAuNC0wLjJjMC4y LTAuMSwwLjUsMCwwLjYsMC4yCisJYzAuMSwwLjEsMC4xLDAuMiwwLDAuM2MwLDAuMS0wLjEsMC4y LTAuMiwwLjJsLTYuMSwyLjZjLTAuNSwwLjItMSwwLjItMS40LDBsLTQuMS0ydi0xLjJsMS0wLjhD NC41LDkuMiw1LjIsOSw2LDkuMQorCWMwLjMsMCwwLjYsMC4xLDAuOCwwLjJsMi44LDEuMmMwLjEs MCwwLjEsMC4xLDAuMiwwLjJjMC4xLDAuMSwwLjEsMC4zLDAsMC40YzAsMCwwLDAuMS0wLjEsMC4x Yy0wLjEsMC4xLTAuMywwLjItMC41LDAuMWwtMi4yLTEKKwlsLTAuNCwwLjhsMi4yLDFjMC4yLDAu MSwwLjQsMC4xLDAuNSwwLjFjMC40LDAsMC43LTAuMiwxLTAuNGMwLjEtMC4xLDAuMi0wLjIsMC4y LTAuM2MwLjItMC40LDAuMS0wLjktMC4xLTEuMgorCWMtMC4xLTAuMi0wLjMtMC40LTAuNi0wLjVM Ny4xLDguNWMtMC4zLTAuMS0wLjctMC4yLTEtMC4yQzUuMSw4LjEsNC4yLDguNCwzLjQsOUwyLjks OS40VjkuM2MwLTAuNi0wLjQtMS0xLTFIMS40Yy0wLjYsMC0xLDAuNC0xLDEKKwl2NC4xYzAsMC42 LDAuNCwxLDEsMWgwLjVjMC42LDAsMS0wLjQsMS0xdi0wLjZsMCwwdi0wLjJsMy43LDEuOGMwLjQs MC4yLDAuNywwLjMsMS4xLDAuM2MwLjMsMCwwLjctMC4xLDEtMC4ybDYuMS0yLjYKKwljMC4zLTAu MSwwLjYtMC40LDAuNy0wLjdDMTUuNywxMC45LDE1LjcsMTAuNSwxNS41LDEwLjJ6IE0xLjksMTMu NEgxLjRWOS4zaDAuNVYxMy40eiIvPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc3RhdGljL2pzL3NlcnZlcl9ncm91cC5qcyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zdGF0aWMvanMvc2VydmVyX2dyb3VwLmpzCmluZGV4 IDliZDdkZjBmMy4uMjE5YjU5NTRhIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc3RhdGljL2pzL3NlcnZlcl9ncm91cC5qcworKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc3RhdGljL2pzL3NlcnZlcl9ncm91cC5qcwpAQCAtOSw4ICs5 LDggQEAKIAogZGVmaW5lKCdwZ2FkbWluLm5vZGUuc2VydmVyX2dyb3VwJywgWwogICAnc291cmNl cy9nZXR0ZXh0JywgJ3NvdXJjZXMvdXJsX2ZvcicsICdqcXVlcnknLCAndW5kZXJzY29yZScsCi0g ICdzb3VyY2VzL3BnYWRtaW4nLCAncGdhZG1pbi5icm93c2VyJywgJ3BnYWRtaW4uYnJvd3Nlci5u b2RlJywKLV0sIGZ1bmN0aW9uKGdldHRleHQsIHVybF9mb3IsICQsIF8sIHBnQWRtaW4pIHsKKyAg J3NvdXJjZXMvcGdhZG1pbicsICdwZ2FkbWluLnVzZXJfbWFuYWdlbWVudC5jdXJyZW50X3VzZXIn LCAncGdhZG1pbi5icm93c2VyJywgJ3BnYWRtaW4uYnJvd3Nlci5ub2RlJywKK10sIGZ1bmN0aW9u KGdldHRleHQsIHVybF9mb3IsICQsIF8sIHBnQWRtaW4sIGN1cnJlbnRfdXNlcikgewogCiAgIGlm ICghcGdBZG1pbi5Ccm93c2VyLk5vZGVzWydzZXJ2ZXJfZ3JvdXAnXSkgewogICAgIHBnQWRtaW4u QnJvd3Nlci5Ob2Rlc1snc2VydmVyX2dyb3VwJ10gPSBwZ0FkbWluLkJyb3dzZXIuTm9kZS5leHRl bmQoewpAQCAtMzksMTQgKzM5LDI3IEBAIGRlZmluZSgncGdhZG1pbi5ub2RlLnNlcnZlcl9ncm91 cCcsIFsKICAgICAgICAgZGVmYXVsdHM6IHsKICAgICAgICAgICBpZDogdW5kZWZpbmVkLAogICAg ICAgICAgIG5hbWU6IG51bGwsCisgICAgICAgICAgdXNlcl9pZDogdW5kZWZpbmVkLAogICAgICAg ICB9LAogICAgICAgICBzY2hlbWE6IFsKICAgICAgICAgICB7CiAgICAgICAgICAgICBpZDogJ2lk JywgbGFiZWw6IGdldHRleHQoJ0lEJyksIHR5cGU6ICdpbnQnLCBncm91cDogbnVsbCwKICAgICAg ICAgICAgIG1vZGU6IFsncHJvcGVydGllcyddLAorICAgICAgICAgICAgdmlzaWJsZTogZnVuY3Rp b24obW9kZWwpeworICAgICAgICAgICAgICBpZiAobW9kZWwuYXR0cmlidXRlcy51c2VyX2lkICE9 IGN1cnJlbnRfdXNlci5pZCAmJiAhY3VycmVudF91c2VyLmlzX2FkbWluKQorICAgICAgICAgICAg ICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg ICAgIH0sCiAgICAgICAgICAgfSx7CiAgICAgICAgICAgICBpZDogJ25hbWUnLCBsYWJlbDogZ2V0 dGV4dCgnTmFtZScpLCB0eXBlOiAndGV4dCcsIGdyb3VwOiBudWxsLAogICAgICAgICAgICAgbW9k ZTogWydwcm9wZXJ0aWVzJywgJ2VkaXQnLCAnY3JlYXRlJ10sCisgICAgICAgICAgICBkaXNhYmxl ZDogZnVuY3Rpb24obW9kZWwpeworICAgICAgICAgICAgICBpZiAobW9kZWwuYXR0cmlidXRlcy51 c2VyX2lkICE9IGN1cnJlbnRfdXNlci5pZCAmJiAhXy5pc1VuZGVmaW5lZChtb2RlbC5hdHRyaWJ1 dGVzLnVzZXJfaWQpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAg ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0sCiAgICAgICAgICAgfSwKICAgICAgICAg XSwKICAgICAgICAgdmFsaWRhdGU6IGZ1bmN0aW9uKCkgewpAQCAtNjksNyArODIsMTEgQEAgZGVm aW5lKCdwZ2FkbWluLm5vZGUuc2VydmVyX2dyb3VwJywgWwogICAgICAgICAgIHJldHVybiBudWxs OwogICAgICAgICB9LAogICAgICAgfSksCi0gICAgICBjYW5Ecm9wOiBmdW5jdGlvbihpdGVtRGF0 YSkgeyByZXR1cm4gaXRlbURhdGEuY2FuX2RlbGV0ZTsgfSwKKyAgICAgIGNhbkRyb3A6IGZ1bmN0 aW9uKGl0ZW1EYXRhKSB7CisgICAgICAgIHZhciBzZXJ2ZXJPd25lciA9IGl0ZW1EYXRhLnVzZXJf aWQ7CisgICAgICAgIGlmIChzZXJ2ZXJPd25lciAhPSBjdXJyZW50X3VzZXIuaWQpCisgICAgICAg ICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gaXRlbURhdGEuY2FuX2RlbGV0ZTsgfSwK ICAgICAgIGRyb3BBc1JlbW92ZTogdHJ1ZSwKICAgICAgIGNhbkRlbGV0ZTogZnVuY3Rpb24oaSkg ewogICAgICAgICB2YXIgcyA9IHBnQWRtaW4uQnJvd3Nlci50cmVlLnNpYmxpbmdzKGksIHRydWUp OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3RlbXBsYXRl cy9jc3Mvc2VydmVyX2dyb3VwLmNzcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy90ZW1wbGF0ZXMvY3NzL3NlcnZlcl9ncm91cC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwLi4zYjViOGU1OGEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvdGVtcGxhdGVzL2Nzcy9zZXJ2ZXJfZ3JvdXAuY3NzCkBAIC0w LDAgKzEsMTcgQEAKKy5pY29uLXNlcnZlcl9ncm91cCB7CisgIGJhY2tncm91bmQtaW1hZ2U6IHVy bCgne3sgdXJsX2ZvcignTk9ERS1zZXJ2ZXJfZ3JvdXAuc3RhdGljJywgZmlsZW5hbWU9J2ltZy9z ZXJ2ZXJfZ3JvdXAuc3ZnJykgfX0nKSAhaW1wb3J0YW50OworICBiYWNrZ3JvdW5kLXJlcGVhdDog bm8tcmVwZWF0OworICBiYWNrZ3JvdW5kLXNpemU6IDIwcHggIWltcG9ydGFudDsKKyAgYWxpZ24t Y29udGVudDogY2VudGVyOworICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOworICBoZWlnaHQ6IDEu M2VtOworfQorCisuaWNvbi1zZXJ2ZXJfZ3JvdXBfc2hhcmVkIHsKKyAgYmFja2dyb3VuZC1pbWFn ZTogdXJsKCd7eyB1cmxfZm9yKCdOT0RFLXNlcnZlcl9ncm91cC5zdGF0aWMnLCBmaWxlbmFtZT0n aW1nL3NlcnZlcl9ncm91cF9zaGFyZWQuc3ZnJykgfX0nKSAhaW1wb3J0YW50OworICBiYWNrZ3Jv dW5kLXJlcGVhdDogbm8tcmVwZWF0OworICBiYWNrZ3JvdW5kLXNpemU6IDIwcHggIWltcG9ydGFu dDsKKyAgYWxpZ24tY29udGVudDogY2VudGVyOworICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwor ICBoZWlnaHQ6IDEuM2VtOworfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZW1w bGF0ZXMvYnJvd3Nlci9qcy91dGlscy5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVtcGxhdGVz L2Jyb3dzZXIvanMvdXRpbHMuanMKaW5kZXggMzNkZDY4MDllLi41MTZiNjI2OTcgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVtcGxhdGVzL2Jyb3dzZXIvanMvdXRpbHMuanMKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZW1wbGF0ZXMvYnJvd3Nlci9qcy91dGlscy5qcwpAQCAt NDQsNiArNDQsNyBAQCBkZWZpbmUoJ3BnYWRtaW4uYnJvd3Nlci51dGlscycsCiAKICAgcGdBZG1p blsnY3NyZl90b2tlbl9oZWFkZXInXSA9ICd7eyBjdXJyZW50X2FwcC5jb25maWcuZ2V0KCdXVEZf Q1NSRl9IRUFERVJTJylbMF0gfX0nOwogICBwZ0FkbWluWydjc3JmX3Rva2VuJ10gPSAne3sgY3Ny Zl90b2tlbigpIH19JzsKKyAgcGdBZG1pblsnc2VydmVyX21vZGUnXSA9ICd7eyBjdXJyZW50X2Fw cC5jb25maWcuZ2V0KCdTRVJWRVJfTU9ERScpIH19JzsKIAogICAvKiBHZXQgdGhlIGluYWN0aXZp dHkgcmVsYXRlZCBjb25maWcgKi8KICAgcGdBZG1pblsndXNlcl9pbmFjdGl2aXR5X3RpbWVvdXQn XSA9IHt7IGN1cnJlbnRfYXBwLmNvbmZpZy5nZXQoJ1VTRVJfSU5BQ1RJVklUWV9USU1FT1VUJykg fX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9tb2RlbC9fX2luaXRfXy5weSBiL3dlYi9wZ2Fk bWluL21vZGVsL19faW5pdF9fLnB5CmluZGV4IDAzNjgxZTEyMC4uYjMzYWRjMDYyIDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi9tb2RlbC9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9tb2Rl bC9fX2luaXRfXy5weQpAQCAtMjksNyArMjksNyBAQCBmcm9tIGZsYXNrX3NxbGFsY2hlbXkgaW1w b3J0IFNRTEFsY2hlbXkKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKLVNDSEVNQV9WRVJTSU9OID0g MjUKK1NDSEVNQV9WRVJTSU9OID0gMjYKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMKQEAgLTE3Myw2 ICsxNzMsNyBAQCBjbGFzcyBTZXJ2ZXIoZGIuTW9kZWwpOgogICAgICkKICAgICB0dW5uZWxfaWRl bnRpdHlfZmlsZSA9IGRiLkNvbHVtbihkYi5TdHJpbmcoNjQpLCBudWxsYWJsZT1UcnVlKQogICAg IHR1bm5lbF9wYXNzd29yZCA9IGRiLkNvbHVtbihkYi5TdHJpbmcoNjQpLCBudWxsYWJsZT1UcnVl KQorICAgIHNoYXJlZCA9IGRiLkNvbHVtbihkYi5Cb29sZWFuKCksIG51bGxhYmxlPUZhbHNlKQog CiAKIGNsYXNzIE1vZHVsZVByZWZlcmVuY2UoZGIuTW9kZWwpOgpAQCAtMzA1LDMgKzMwNiw4OCBA QCBjbGFzcyBEYXRhYmFzZShkYi5Nb2RlbCk6CiAgICAgICAgIG51bGxhYmxlPUZhbHNlLAogICAg ICAgICBwcmltYXJ5X2tleT1UcnVlCiAgICAgKQorCisKK2NsYXNzIFNoYXJlZFNlcnZlcihkYi5N b2RlbCk6CisgICAgIiIiRGVmaW5lIGEgc2hhcmVkIFBvc3RncmVzIHNlcnZlciIiIgorCisgICAg X190YWJsZW5hbWVfXyA9ICdzaGFyZWRzZXJ2ZXInCisgICAgaWQgPSBkYi5Db2x1bW4oZGIuSW50 ZWdlciwgcHJpbWFyeV9rZXk9VHJ1ZSkKKyAgICB1c2VyX2lkID0gZGIuQ29sdW1uKAorICAgICAg ICBkYi5JbnRlZ2VyLAorICAgICAgICBkYi5Gb3JlaWduS2V5KCd1c2VyLmlkJykKKyAgICApCisg ICAgc2VydmVyX293bmVyID0gZGIuQ29sdW1uKAorICAgICAgICBkYi5TdHJpbmcoMTI4KSwKKyAg ICAgICAgZGIuRm9yZWlnbktleSgndXNlci51c2VybmFtZScpCisgICAgKQorICAgIHNlcnZlcmdy b3VwX2lkID0gZGIuQ29sdW1uKAorICAgICAgICBkYi5JbnRlZ2VyLAorICAgICAgICBkYi5Gb3Jl aWduS2V5KCdzZXJ2ZXJncm91cC5pZCcpLAorICAgICAgICBudWxsYWJsZT1GYWxzZQorICAgICkK KyAgICBuYW1lID0gZGIuQ29sdW1uKGRiLlN0cmluZygxMjgpLCBudWxsYWJsZT1GYWxzZSkKKyAg ICBob3N0ID0gZGIuQ29sdW1uKGRiLlN0cmluZygxMjgpLCBudWxsYWJsZT1UcnVlKQorICAgIGhv c3RhZGRyID0gZGIuQ29sdW1uKGRiLlN0cmluZygxMjgpLCBudWxsYWJsZT1UcnVlKQorICAgIHBv cnQgPSBkYi5Db2x1bW4oCisgICAgICAgIGRiLkludGVnZXIoKSwKKyAgICAgICAgZGIuQ2hlY2tD b25zdHJhaW50KCdwb3J0ID49IDEgQU5EIHBvcnQgPD0gNjU1MzQnKSwKKyAgICAgICAgbnVsbGFi bGU9RmFsc2UpCisgICAgbWFpbnRlbmFuY2VfZGIgPSBkYi5Db2x1bW4oZGIuU3RyaW5nKDY0KSwg bnVsbGFibGU9VHJ1ZSkKKyAgICB1c2VybmFtZSA9IGRiLkNvbHVtbihkYi5TdHJpbmcoNjQpLCBu dWxsYWJsZT1GYWxzZSkKKyAgICBwYXNzd29yZCA9IGRiLkNvbHVtbihkYi5TdHJpbmcoNjQpLCBu dWxsYWJsZT1UcnVlKQorICAgIHNhdmVfcGFzc3dvcmQgPSBkYi5Db2x1bW4oCisgICAgICAgIGRi LkludGVnZXIoKSwKKyAgICAgICAgZGIuQ2hlY2tDb25zdHJhaW50KCdzYXZlX3Bhc3N3b3JkID49 IDAgQU5EIHNhdmVfcGFzc3dvcmQgPD0gMScpLAorICAgICAgICBudWxsYWJsZT1GYWxzZQorICAg ICkKKyAgICByb2xlID0gZGIuQ29sdW1uKGRiLlN0cmluZyg2NCksIG51bGxhYmxlPVRydWUpCisg ICAgc3NsX21vZGUgPSBkYi5Db2x1bW4oCisgICAgICAgIGRiLlN0cmluZygxNiksCisgICAgICAg IGRiLkNoZWNrQ29uc3RyYWludCgKKyAgICAgICAgICAgICJzc2xfbW9kZSBJTiAoJ2FsbG93Jywg J3ByZWZlcicsICdyZXF1aXJlJywgJ2Rpc2FibGUnLCAiCisgICAgICAgICAgICAiJ3ZlcmlmeS1j YScsICd2ZXJpZnktZnVsbCcpIgorICAgICAgICApLAorICAgICAgICBudWxsYWJsZT1GYWxzZSkK KyAgICBjb21tZW50ID0gZGIuQ29sdW1uKGRiLlN0cmluZygxMDI0KSwgbnVsbGFibGU9VHJ1ZSkK KyAgICBkaXNjb3ZlcnlfaWQgPSBkYi5Db2x1bW4oZGIuU3RyaW5nKDEyOCksIG51bGxhYmxlPVRy dWUpCisgICAgc2VydmVycyA9IGRiLnJlbGF0aW9uc2hpcCgKKyAgICAgICAgJ1NlcnZlckdyb3Vw JywKKyAgICAgICAgYmFja3JlZj1kYi5iYWNrcmVmKCdzaGFyZWRzZXJ2ZXInLCBjYXNjYWRlPSJh bGwsIGRlbGV0ZS1vcnBoYW4iKSwKKyAgICAgICAgbGF6eT0nam9pbmVkJworICAgICkKKyAgICBk Yl9yZXMgPSBkYi5Db2x1bW4oZGIuVGV4dCgpLCBudWxsYWJsZT1UcnVlKQorICAgIHBhc3NmaWxl ID0gZGIuQ29sdW1uKGRiLlRleHQoKSwgbnVsbGFibGU9VHJ1ZSkKKyAgICBzc2xjZXJ0ID0gZGIu Q29sdW1uKGRiLlRleHQoKSwgbnVsbGFibGU9VHJ1ZSkKKyAgICBzc2xrZXkgPSBkYi5Db2x1bW4o ZGIuVGV4dCgpLCBudWxsYWJsZT1UcnVlKQorICAgIHNzbHJvb3RjZXJ0ID0gZGIuQ29sdW1uKGRi LlRleHQoKSwgbnVsbGFibGU9VHJ1ZSkKKyAgICBzc2xjcmwgPSBkYi5Db2x1bW4oZGIuVGV4dCgp LCBudWxsYWJsZT1UcnVlKQorICAgIHNzbGNvbXByZXNzaW9uID0gZGIuQ29sdW1uKAorICAgICAg ICBkYi5JbnRlZ2VyKCksCisgICAgICAgIGRiLkNoZWNrQ29uc3RyYWludCgnc3NsY29tcHJlc3Np b24gPj0gMCBBTkQgc3NsY29tcHJlc3Npb24gPD0gMScpLAorICAgICAgICBudWxsYWJsZT1GYWxz ZQorICAgICkKKyAgICBiZ2NvbG9yID0gZGIuQ29sdW1uKGRiLlRleHQoMTApLCBudWxsYWJsZT1U cnVlKQorICAgIGZnY29sb3IgPSBkYi5Db2x1bW4oZGIuVGV4dCgxMCksIG51bGxhYmxlPVRydWUp CisgICAgc2VydmljZSA9IGRiLkNvbHVtbihkYi5UZXh0KCksIG51bGxhYmxlPVRydWUpCisgICAg Y29ubmVjdF90aW1lb3V0ID0gZGIuQ29sdW1uKGRiLkludGVnZXIoKSwgbnVsbGFibGU9RmFsc2Up CisgICAgdXNlX3NzaF90dW5uZWwgPSBkYi5Db2x1bW4oCisgICAgICAgIGRiLkludGVnZXIoKSwK KyAgICAgICAgZGIuQ2hlY2tDb25zdHJhaW50KCd1c2Vfc3NoX3R1bm5lbCA+PSAwIEFORCB1c2Vf c3NoX3R1bm5lbCA8PSAxJyksCisgICAgICAgIG51bGxhYmxlPUZhbHNlCisgICAgKQorICAgIHR1 bm5lbF9ob3N0ID0gZGIuQ29sdW1uKGRiLlN0cmluZygxMjgpLCBudWxsYWJsZT1UcnVlKQorICAg IHR1bm5lbF9wb3J0ID0gZGIuQ29sdW1uKAorICAgICAgICBkYi5JbnRlZ2VyKCksCisgICAgICAg IGRiLkNoZWNrQ29uc3RyYWludCgncG9ydCA8PSA2NTUzNCcpLAorICAgICAgICBudWxsYWJsZT1U cnVlKQorICAgIHR1bm5lbF91c2VybmFtZSA9IGRiLkNvbHVtbihkYi5TdHJpbmcoNjQpLCBudWxs YWJsZT1UcnVlKQorICAgIHR1bm5lbF9hdXRoZW50aWNhdGlvbiA9IGRiLkNvbHVtbigKKyAgICAg ICAgZGIuSW50ZWdlcigpLAorICAgICAgICBkYi5DaGVja0NvbnN0cmFpbnQoJ3R1bm5lbF9hdXRo ZW50aWNhdGlvbiA+PSAwIEFORCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAndHVubmVs X2F1dGhlbnRpY2F0aW9uIDw9IDEnKSwKKyAgICAgICAgbnVsbGFibGU9RmFsc2UKKyAgICApCisg ICAgdHVubmVsX2lkZW50aXR5X2ZpbGUgPSBkYi5Db2x1bW4oZGIuU3RyaW5nKDY0KSwgbnVsbGFi bGU9VHJ1ZSkKKyAgICB0dW5uZWxfcGFzc3dvcmQgPSBkYi5Db2x1bW4oZGIuU3RyaW5nKDY0KSwg bnVsbGFibGU9VHJ1ZSkKKyAgICBzaGFyZWQgPSBkYi5Db2x1bW4oZGIuQm9vbGVhbigpLCBudWxs YWJsZT1GYWxzZSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3Bn Mi9zZXJ2ZXJfbWFuYWdlci5weSBiL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3BnMi9z ZXJ2ZXJfbWFuYWdlci5weQppbmRleCBlYTFkOWVmZTEuLjc3YzRkZWMyMiAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vdXRpbHMvZHJpdmVyL3BzeWNvcGcyL3NlcnZlcl9tYW5hZ2VyLnB5CisrKyBi L3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3BnMi9zZXJ2ZXJfbWFuYWdlci5weQpAQCAt NjYsNiArNjYsNyBAQCBjbGFzcyBTZXJ2ZXJNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIHNlbGYu aG9zdGFkZHIgPSBzZXJ2ZXIuaG9zdGFkZHIKICAgICAgICAgc2VsZi5wb3J0ID0gc2VydmVyLnBv cnQKICAgICAgICAgc2VsZi5kYiA9IHNlcnZlci5tYWludGVuYW5jZV9kYgorICAgICAgICBzZWxm LnNoYXJlZCA9IHNlcnZlci5zaGFyZWQKICAgICAgICAgc2VsZi5kaWQgPSBOb25lCiAgICAgICAg IHNlbGYudXNlciA9IHNlcnZlci51c2VybmFtZQogICAgICAgICBzZWxmLnBhc3N3b3JkID0gc2Vy dmVyLnBhc3N3b3JkCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9weXRob25fdGVzdF91dGls cy90ZXN0X3V0aWxzLnB5IGIvd2ViL3JlZ3Jlc3Npb24vcHl0aG9uX3Rlc3RfdXRpbHMvdGVzdF91 dGlscy5weQppbmRleCAyZjM2YjVlODEuLmFlNjBlMzc5ZiAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jl c3Npb24vcHl0aG9uX3Rlc3RfdXRpbHMvdGVzdF91dGlscy5weQorKysgYi93ZWIvcmVncmVzc2lv bi9weXRob25fdGVzdF91dGlscy90ZXN0X3V0aWxzLnB5CkBAIC0zNiw2ICszNiw4IEBAIGZyb20g cmVncmVzc2lvbiBpbXBvcnQgdGVzdF9zZXR1cAogCiBmcm9tIHBnYWRtaW4udXRpbHMucHJlZmVy ZW5jZXMgaW1wb3J0IFByZWZlcmVuY2VzCiAKK2Zyb20gZnVuY3Rvb2xzIGltcG9ydCB3cmFwcwor CiBDVVJSRU5UX1BBVEggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGly bmFtZSgKICAgICBvcy5wYXRoLnJlYWxwYXRoKF9fZmlsZV9fKSksICIuLi8iKSkKIApAQCAtMTU4 NSwzICsxNTg3LDExMCBAQCBkZWYgZ2V0X3NlbGVub2lkX2Jyb3dzZXJzX2xpc3QoYXJndW1lbnRz KToKICAgICAgICAgbGlzdF9vZl9icm93c2VycyA9IHRlc3Rfc2V0dXAuY29uZmlnX2RhdGFbJ3Nl bGVub2lkX2NvbmZpZyddWwogICAgICAgICAgICAgJ2Jyb3dzZXJzX2xpc3QnXQogICAgIHJldHVy biBsaXN0X29mX2Jyb3dzZXJzCisKKworZGVmIGxvZ2luX3VzaW5nX3VzZXJfYWNjb3VudCh0ZXN0 ZXIpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gbG9naW4gdGhlIHRlc3QgY2xpZW50IHVz ZXJuYW1lIGFuZCBwYXNzd29yZAorICAgIDpwYXJhbSB0ZXN0ZXI6IHRlc3QgY2xpZW50CisgICAg OnR5cGUgdGVzdGVyOiBmbGFzayB0ZXN0IGNsaWVudCBvYmplY3QKKyAgICA6cmV0dXJuOiBOb25l CisgICAgIiIiCisgICAgdXNlcm5hbWUgPSB0ZXN0ZXIudGVzdF9jb25maWdfZGF0YVsnbG9naW5f dXNlcm5hbWUnXQorICAgIHBhc3N3b3JkID0gdGVzdGVyLnRlc3RfY29uZmlnX2RhdGFbJ2xvZ2lu X3Bhc3N3b3JkJ10KKyAgICByZXNwb25zZSA9IHRlc3Rlci5sb2dpbih1c2VybmFtZSwgcGFzc3dv cmQpCisKKyAgICBpZiByZXNwb25zZS5zdGF0dXNfY29kZSAhPSAzMDI6CisgICAgICAgIHByaW50 KCJVbmFibGUgdG8gbG9naW4gdGVzdCBjbGllbnQsIGVtYWlsIGFuZCBwYXNzd29yZCBub3QgZm91 bmQuIiwKKyAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICBzeXMuZXhpdCgx KQorCisKK2RlZiBsb2dvdXRfdGVzdGVyX2FjY291bnQodGVzdGVyKToKKyAgICAiIiIKKyAgICBU aGlzIGZ1bmN0aW9uIGxvZ291dCB0aGUgdGVzdCBhY2NvdW50CisgICAgOnBhcmFtIHRlc3Rlcjog dGVzdCBjbGllbnQKKyAgICA6dHlwZSB0ZXN0ZXI6IGZsYXNrIHRlc3QgY2xpZW50IG9iamVjdAor ICAgIDpyZXR1cm46IE5vbmUKKyAgICAiIiIKKyAgICB0ZXN0ZXIubG9nb3V0KCkKKworCitkZWYg Y3JlYXRlX3VzZXIodXNlcl9kZXRhaWxzKToKKyAgICB0cnk6CisgICAgICAgIGNvbm4gPSBzcWxp dGUzLmNvbm5lY3QoY29uZmlnLlRFU1RfU1FMSVRFX1BBVEgpCisgICAgICAgICMgQ3JlYXRlIHRo ZSBzZXJ2ZXIKKyAgICAgICAgY3VyID0gY29ubi5jdXJzb3IoKQorICAgICAgICB1c2VyX2RldGFp bHMgPSAoCisgICAgICAgICAgICB1c2VyX2RldGFpbHNbJ2xvZ2luX3VzZXJuYW1lJ10sIHVzZXJf ZGV0YWlsc1snbG9naW5fdXNlcm5hbWUnXSwKKyAgICAgICAgICAgIHVzZXJfZGV0YWlsc1snbG9n aW5fcGFzc3dvcmQnXSwgMSkKKworICAgICAgICBjdXIuZXhlY3V0ZSgKKyAgICAgICAgICAgICdz ZWxlY3QgKiBmcm9tIHVzZXIgd2hlcmUgdXNlcm5hbWUgPSAiJXMiJyAlIHVzZXJfZGV0YWlsc1sw XSkKKyAgICAgICAgdXNlciA9IGN1ci5mZXRjaG9uZSgpCisgICAgICAgIGlmIHVzZXIgaXMgTm9u ZToKKyAgICAgICAgICAgIGN1ci5leGVjdXRlKCdJTlNFUlQgSU5UTyB1c2VyICh1c2VybmFtZSwg ZW1haWwsIHBhc3N3b3JkLCBhY3RpdmUpICcKKyAgICAgICAgICAgICAgICAgICAgICAgICdWQUxV RVMgKD8sPyw/LD8pJywgdXNlcl9kZXRhaWxzKQorICAgICAgICAgICAgdXNlcl9pZCA9IGN1ci5s YXN0cm93aWQKKyAgICAgICAgICAgIGNvbm4uY29tbWl0KCkKKyAgICAgICAgZWxzZToKKyAgICAg ICAgICAgIHVzZXJfaWQgPSB1c2VyWzBdCisgICAgICAgIGNvbm4uY2xvc2UoKQorCisgICAgICAg IHJldHVybiB1c2VyX2lkCisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGNlcHRpb246CisgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiRXJyb3Igd2hpbGUgY3JlYXRpbmcgc2VydmVyLiAlcyIgJSBl eGNlcHRpb24pCisKKworZGVmIGdldF90ZXN0X3VzZXIoc2VsZiwgdXNlcl9kZXRhaWxzLAorICAg ICAgICAgICAgICAgICAgaXNfYXBpPVRydWUsIGNyZWF0ZV9jb25uPVRydWUpOgorICAgICMgYXNz ZXJ0IGlkID09IDEgb3IgaWQgPT0gMAorICAgIHRlc3RfY2xpZW50ID0gc2VsZi5hcHAudGVzdF9j bGllbnQoKQorICAgIGlmIHVzZXJfZGV0YWlscyBpcyBOb25lOgorICAgICAgICByZXR1cm4gTm9u ZSwgTm9uZQorCisgICAgaWYgaXNfYXBpIGlzIFRydWU6CisKKyAgICAgICAgIyBDcmVhdGUgdGVz dF9jbGllbnQgZm9yIHRoaXMgdXNlciwgYW5kIGxvZ2luIHRocm91Z2ggaXQuCisgICAgICAgIHRl c3RfY2xpZW50ID0gc2VsZi5hcHAudGVzdF9jbGllbnQoKQorICAgICAgICB1c2VyID0gY3JlYXRl X3VzZXIodXNlcl9kZXRhaWxzKQorICAgICAgICBpZiB1c2VyIGlzIG5vdCBOb25lOgorICAgICAg ICAgICAgdGVzdF9jbGllbnQudGVzdF9jb25maWdfZGF0YSA9IGRpY3QoeworICAgICAgICAgICAg ICAgICJsb2dpbl91c2VybmFtZSI6IHVzZXJfZGV0YWlsc1snbG9naW5fdXNlcm5hbWUnXSwKKyAg ICAgICAgICAgICAgICAibG9naW5fcGFzc3dvcmQiOiB1c2VyX2RldGFpbHNbJ2xvZ2luX3Bhc3N3 b3JkJ10KKyAgICAgICAgICAgIH0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4g IlVzZXIgbm90IGNyZWF0ZWQiCisgICAgICAgIGxvZ2luX3VzaW5nX3VzZXJfYWNjb3VudCh0ZXN0 X2NsaWVudCkKKyAgICAgICAgdXNlciA9IHRlc3RfY2xpZW50CisKKyAgICByZXR1cm4gdXNlcgor CisKK2RlZiBjcmVhdGVfdXNlcl93aXNlX3Rlc3RfY2xpZW50KHVzZXIpOgorICAgICIiIgorICAg IFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBuZXcgdGVzdCBjbGllbnQgYW5kIHBlbSBkYXRhYmFzZSBj b25uZWN0aW9uIGFzIHBlcgorICAgIHByb3ZpZGVkIHVzZXIgYW5kIGV4ZWN1dGUgdGhlIHRlc3Qg Y2FzZXMuCisgICAgOnJldHVybjogTm9uZQorICAgICIiIgorCisgICAgZGVmIG11bHRpX3VzZXJf ZGVjb3JhdG9yKGZ1bmMpOgorICAgICAgICBAd3JhcHMoZnVuYykKKyAgICAgICAgZGVmIHdyYXBw ZXIoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgICMgc2VsZi51c2VyID0gdXNl cgorICAgICAgICAgICAgbWFpbl90ZXN0ZXIgPSBzZWxmLl9fY2xhc3NfXy50ZXN0ZXIKKyAgICAg ICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAjIExvZ2luIHdpdGggbm9uLWFkbWluX3VzZXIK KyAgICAgICAgICAgICAgICB0ZXN0X3VzZXIgPSBnZXRfdGVzdF91c2VyKHNlbGYsIHVzZXIpCisg ICAgICAgICAgICAgICAgc2VsZi5zZXRUZXN0Q2xpZW50KHRlc3RfdXNlcikKKyAgICAgICAgICAg ICAgICAjIHNlbGYuc2V0VGVzdENsaWVudCh0ZXN0X3VzZXJbJ3Rlc3RlciddKQorCisgICAgICAg ICAgICAgICAgIyBDYWxsICdydW5UZXN0JyB3aXRoIG5ldyB0ZXN0IGNsaWVudAorICAgICAgICAg ICAgICAgIGZ1bmMoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICAgICAgZmluYWxseToK KyAgICAgICAgICAgICAgICAjIFJlc3RvcmUgdGhlIG9yaWdpbmFsIHVzZXIgYW5kIGRyaXZlcgor ICAgICAgICAgICAgICAgIHNlbGYuX19jbGFzc19fLnRlc3RlciA9IG1haW5fdGVzdGVyCisKKyAg ICAgICAgcmV0dXJuIHdyYXBwZXIKKworICAgIHJldHVybiBtdWx0aV91c2VyX2RlY29yYXRvcgpk aWZmIC0tZ2l0IGEvd2ViL3NldHVwLnB5IGIvd2ViL3NldHVwLnB5CmluZGV4IDE0YmQ1ZjljYy4u ZThhNzFmODEyIDEwMDY0NAotLS0gYS93ZWIvc2V0dXAucHkKKysrIGIvd2ViL3NldHVwLnB5CkBA IC0xMTAsNiArMTEwLDcgQEAgZGVmIGR1bXBfc2VydmVycyhhcmdzKToKICAgICAgICAgICAgICAg ICBhZGRfdmFsdWUoYXR0cl9kaWN0LCAiUm9sZSIsIHNlcnZlci5yb2xlKQogICAgICAgICAgICAg ICAgIGFkZF92YWx1ZShhdHRyX2RpY3QsICJTU0xNb2RlIiwgc2VydmVyLnNzbF9tb2RlKQogICAg ICAgICAgICAgICAgIGFkZF92YWx1ZShhdHRyX2RpY3QsICJDb21tZW50Iiwgc2VydmVyLmNvbW1l bnQpCisgICAgICAgICAgICAgICAgYWRkX3ZhbHVlKGF0dHJfZGljdCwgIlNoYXJlZCIsIHNlcnZl ci5zaGFyZWQpCiAgICAgICAgICAgICAgICAgYWRkX3ZhbHVlKGF0dHJfZGljdCwgIkRCUmVzdHJp Y3Rpb24iLCBzZXJ2ZXIuZGJfcmVzKQogICAgICAgICAgICAgICAgIGFkZF92YWx1ZShhdHRyX2Rp Y3QsICJQYXNzRmlsZSIsIHNlcnZlci5wYXNzZmlsZSkKICAgICAgICAgICAgICAgICBhZGRfdmFs dWUoYXR0cl9kaWN0LCAiU1NMQ2VydCIsIHNlcnZlci5zc2xjZXJ0KQpAQCAtMjQ0LDYgKzI0NSwx NCBAQCBkZWYgbG9hZF9zZXJ2ZXJzKGFyZ3MpOgogICAgICAgICAgICAgICAgIHByaW50X3N1bW1h cnkoKQogICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCiAKKyAgICAgICAgICAgICMgQ2hlY2sg aWYgc2VydmVyIGlzIHNoYXJlZC5Xb24ndCBpbXBvcnQgaWYgdXNlciBpcyBub24tYWRtaW4KKyAg ICAgICAgICAgIGlmICdTaGFyZWQnIGluIG9iajoKKyAgICAgICAgICAgICAgICBpZiBvYmpbJ1No YXJlZCddIGFuZCBcCisgICAgICAgICAgICAgICAgICAgICAgICBub3QgdXNlci5oYXNfcm9sZSgi QWRtaW5pc3RyYXRvciIpOgorICAgICAgICAgICAgICAgICAgICBwcmludCgiQ2FuJ3QgaW1wb3J0 IHRoZSBzZXJ2ZXIgJyVzJyBhcyBpdCBpcyBzaGFyZWQgIiAlCisgICAgICAgICAgICAgICAgICAg ICAgICAgIG9ialsiTmFtZSJdKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorCiAgICAg ICAgICAgICAjIEdldCB0aGUgZ3JvdXAuIENyZWF0ZSBpZiBuZWNlc3NhcnkKICAgICAgICAgICAg IGdyb3VwX2lkID0gLTEKICAgICAgICAgICAgIGZvciBnIGluIGdyb3VwczoK --000000000000dff95705ad6267b6--