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 1ltopm-0004lJ-IQ for pgadmin-hackers@arkaria.postgresql.org; Thu, 17 Jun 2021 10:01:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1ltopk-0004OJ-EM for pgadmin-hackers@arkaria.postgresql.org; Thu, 17 Jun 2021 10:01:12 +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 1ltopj-0004OA-NP for pgadmin-hackers@lists.postgresql.org; Thu, 17 Jun 2021 10:01:12 +0000 Received: from mail-vs1-xe33.google.com ([2607:f8b0:4864:20::e33]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1ltopc-0002BO-5Z for pgadmin-hackers@postgresql.org; Thu, 17 Jun 2021 10:01:10 +0000 Received: by mail-vs1-xe33.google.com with SMTP id x13so2653090vsf.11 for ; Thu, 17 Jun 2021 03:01:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=wTAWbrXpbpETGfu1KUb1LyDO/kuObYBjI6qcxxSAgFI=; b=xTBJGIrz4j6SCcsbMPWFJcsWinVn2M3p0kqMGmxCiurwr/ZT52dr71JY+unjRvzDmY YxPBunvxTAZujgXo8HDEu3TmYCj8CDcWEIKRJKv80wzjH/XgMpD63OmUOrG7jMlonaWs b0QkTDdkHBC/Gbk8iXQCiXDN5gciATBYSf7n7qWn8HiePUsH94egb4ULTcuGEx7uOs+0 9istKw4aLmS9Ow/BQypu31ip2WcF+cWA71Oz2cPk6s6Mn8l6TqoIDiNxLEu5PwJlFRtJ VRyNlTtmZMX9r38wOEqQp0yZbQModgFY074vmuEYOyzbvbXU8fqRHDAmazxIUCiKjsXU /Yjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=wTAWbrXpbpETGfu1KUb1LyDO/kuObYBjI6qcxxSAgFI=; b=A7cuzOvN3GSlV8fOIEGw4MDKlammdoSCZNsNz33WnJOptHL3t3EwE1eurV1fpLIyiX hgNerfFVz26bWdk4l2yFB7sqv7fKPElNBgpqY8ClQRUXy/NdQwCoHimYr9Hui5DWp3FX eA5dZu/IMRC5mZs3FMpIwjfgPDEHjhE1K35As9aF0jT6qA2ykpOysOCffzNE+jPdUJjd es2GKzS8QWyBGTeidxn7nJl0Gkfb+Lomzr6TJ4DU5mGNzs0ql7RqFX4a+zZNOXzKY/Uz gRuo3K3YVwuTgIkaB5Cvw4SS7C8EZm3NVE6nQKIUGg/9rTxKXG/puLISeia4QZscX0S5 k02w== X-Gm-Message-State: AOAM532b/+6iXWTIuGjk6pDPyHj79d0eidC2n3T4pwQFFJtnVGcbm8II 8ptpPXNGXSregBTyE0T50DbRrb0pl9TSTtShnoq46/h0T2v2J+WW5SfMihTK4jUvBKNKo+uQnHX er8dYxPMtC0TdOup55iamWKSpmx01xT22PaFYRvfztn67n323jx/vbSh90gG44YLAcmPVAzf9vs FjiJ5R5eJpVk7lKurzTbCrviTjVmibHC/7MLitiRMYM8OHphEFF0bpo0aNTb4cLYhJcw== X-Google-Smtp-Source: ABdhPJwlo06MhffB0/ESME+SYlIiJuQgQOTEuyARN2QbQuigMBBMOqxoool5Y1QFUBZdOhv1bX8iwQ6s3Wq9CEPPpXc= X-Received: by 2002:a67:f7c2:: with SMTP id a2mr3435008vsp.17.1623924061695; Thu, 17 Jun 2021 03:01:01 -0700 (PDT) MIME-Version: 1.0 From: Aditya Toshniwal Date: Thu, 17 Jun 2021 15:30:25 +0530 Message-ID: Subject: [pgAdmin][RM6130] React based framework for properties dialog and port Server Group, Server and Database dialogs To: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000d7c34c05c4f348c1" 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: Archived-At: Precedence: bulk --000000000000d7c34c05c4f348c1 Content-Type: multipart/alternative; boundary="000000000000d7c34805c4f348bf" --000000000000d7c34805c4f348bf Content-Type: text/plain; charset="UTF-8" Hi Hackers, Attached patch marks the beginning of migrating properties dialog/tab to React based code, which is easy to maintain, performant and testable using automation. Patch includes: - Framework for creating React based dynamic form view out of a pre-defined UI schema. Previously, it was based on Backform/Backbone. - The new framework and components will use MaterialUI as base. Previously, Bootstrap/Backform/jQuery components were used. - The new code uses JSS instead of CSS since material ui and most modern React libraries also use JSS. In future, this will allow us to change the theme in real-time without refresh. - 90% code covered by 80-85 new jasmine test cases. - Server group node UI Schema migration to new, with schema test cases. - Server node UI Schema migration to new, with schema test cases. - Database node UI Schema migration to new, with schema test cases. - Few other UI changes. PS: Until all the nodes are migrated, this will not go in the main branch. References: https://material-ui.com/ https://cssinjs.org/ https://react-select.com/ https://react-table.tanstack.com/ -- Thanks, Aditya Toshniwal pgAdmin hacker | Sr. Software Engineer | *edbpostgres.com* "Don't Complain about Heat, Plant a TREE" --000000000000d7c34805c4f348bf Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

Attached patch marks the beginning=C2=A0of mig= rating properties dialog/tab to React based code, which is easy to maintain= , performant and testable using automation.
Patch includes:
- Framewor= k for creating=C2=A0React based dynamic form view out of a pre-defined UI = schema. Previously, it was based on Backform/Backbone.
- The new framework = and components will use MaterialUI as base. Previously, Bootstrap/Backform/= jQuery components were used.
- The new code uses JSS instead of CSS sin= ce material ui and most modern React libraries also use JSS. In future, thi= s will=C2=A0allow us to change the=C2=A0theme in real-time without refresh.=
- 90% code covered by 80-85 new jasmine test cases.
- Server group node U= I Schema migration to new, with schema test cases.
- Server node UI Schema = migration to new, with schema test cases.
- Database node UI Schema mig= ration to new, with schema test cases.
- Few other UI changes.

PS: Unt= il=C2=A0all the nodes are migrated, this will not go in the main branch.
Re= ferences:
https://react-select.com/


--
Thanks,
Aditya Toshniwal
pgAdmin hacker=C2=A0= | Sr. = Software Engineer | edbpostgres.co= m
"Don't Complain about Heat, Plant a TRE= E"
--000000000000d7c34805c4f348bf-- --000000000000d7c34c05c4f348c1 Content-Type: application/octet-stream; name="RM6130.patch" Content-Disposition: attachment; filename="RM6130.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kq0qfl6w0 ZGlmZiAtLWdpdCBhL3dlYi9wYWNrYWdlLmpzb24gYi93ZWIvcGFja2FnZS5qc29uCmluZGV4IGQz MGYwMjM4Yy4uOTdhMzFiYWRjIDEwMDY0NAotLS0gYS93ZWIvcGFja2FnZS5qc29uCisrKyBiL3dl Yi9wYWNrYWdlLmpzb24KQEAgLTEzLDggKzEzLDEwIEBACiAgICAgIkBiYWJlbC9wbHVnaW4tcHJv cG9zYWwtb2JqZWN0LXJlc3Qtc3ByZWFkIjogIl43LjkuNiIsCiAgICAgIkBiYWJlbC9wcmVzZXQt ZW52IjogIl43LjEwLjIiLAogICAgICJAZW1vdGlvbi9jb3JlIjogIl4xMC4wLjE0IiwKKyAgICAi QGVtb3Rpb24vbWVtb2l6ZSI6ICJeMC43LjUiLAogICAgICJAZW1vdGlvbi9yZWFjdCI6ICJeMTEu MS41IiwKICAgICAiQGVtb3Rpb24vc3R5bGVkIjogIl4xMC4wLjE0IiwKKyAgICAiQGVtb3Rpb24v dXRpbHMiOiAiXjEuMC4wIiwKICAgICAiQHdvanRla21hai9lbnp5bWUtYWRhcHRlci1yZWFjdC0x NyI6ICJeMC40LjEiLAogICAgICJhdXRvcHJlZml4ZXIiOiAiXjEwLjIuNCIsCiAgICAgImF4aW9z LW1vY2stYWRhcHRlciI6ICJeMS4xNy4wIiwKQEAgLTQ4LDcgKzUwLDcgQEAKICAgICAia2FybWEt c291cmNlbWFwLWxvYWRlciI6ICJeMC4zLjciLAogICAgICJrYXJtYS13ZWJwYWNrIjogIl41LjAu MCIsCiAgICAgIm1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIjogIl4xLjMuNSIsCi0gICAgInBvcHBl ci5qcyI6ICJeMS4xNC43IiwKKyAgICAicG9wcGVyLmpzIjogIl4xLjE2LjEiLAogICAgICJwb3N0 Y3NzLWxvYWRlciI6ICJeNS4wLjAiLAogICAgICJwcm9jZXNzIjogIl4wLjExLjEwIiwKICAgICAi cHJvcC10eXBlcyI6ICJeMTUuNy4yIiwKQEAgLTY4LDcgKzcwLDEyIEBACiAgICJkZXBlbmRlbmNp ZXMiOiB7CiAgICAgIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtY2xhc3MtcHJvcGVydGllcyI6ICJe Ny4xMC40IiwKICAgICAiQGJhYmVsL3ByZXNldC1yZWFjdCI6ICJeNy4xMi4xMyIsCisgICAgIkBl bW90aW9uL3NoZWV0IjogIl4xLjAuMSIsCiAgICAgIkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1m cmVlIjogIl41LjE0LjAiLAorICAgICJAbWF0ZXJpYWwtdWkvY29yZSI6ICJeNC4xMS40IiwKKyAg ICAiQG1hdGVyaWFsLXVpL2ljb25zIjogIl40LjExLjIiLAorICAgICJAbWF0ZXJpYWwtdWkvbGFi IjogIl40LjAuMC1hbHBoYS41OCIsCisgICAgIkBtYXRlcmlhbC11aS9waWNrZXJzIjogIl4zLjIu MTAiLAogICAgICJAcHJvamVjdHN0b3JtL3JlYWN0LWRpYWdyYW1zIjogIl42LjQuMiIsCiAgICAg IkBzaW1vbndlcC9waWNrciI6ICJeMS41LjEiLAogICAgICJAdGlwcHlqcy9yZWFjdCI6ICJeNC4y LjAiLApAQCAtOTAsNiArOTcsNyBAQAogICAgICJjc3MtbG9hZGVyIjogIl41LjAuMSIsCiAgICAg ImNzc25hbm8iOiAiXjUuMC4yIiwKICAgICAiZGFncmUiOiAiXjAuOC40IiwKKyAgICAiZGlmZi1h cnJheXMtb2Ytb2JqZWN0cyI6ICJeMS4xLjgiLAogICAgICJkcm9wem9uZSI6ICJeNS43LjQiLAog ICAgICJodG1sMmNhbnZhcyI6ICJeMS4wLjAtcmMuNyIsCiAgICAgImltbXV0YWJpbGl0eS1oZWxw ZXIiOiAiXjMuMC4wIiwKQEAgLTExMywxMiArMTIxLDE1IEBACiAgICAgInJhZiI6ICJeMy40LjEi LAogICAgICJyZWFjdCI6ICJeMTcuMC4xIiwKICAgICAicmVhY3QtZG9tIjogIl4xNy4wLjEiLAor ICAgICJyZWFjdC1zZWxlY3QiOiAiXjQuMi4xIiwKKyAgICAicmVhY3QtdGFibGUiOiAiXjcuNi4z IiwKICAgICAic2VsZWN0MiI6ICJeNC4wLjEzIiwKICAgICAic2hpbS1sb2FkZXIiOiAiXjEuMC4x IiwKICAgICAic2xpY2tncmlkIjogImdpdCtodHRwczovL2dpdGh1Yi5jb20vNnBhYy9TbGlja0dy aWQuZ2l0IzIuMy4xNiIsCiAgICAgInNuYXBzdmctY2pzIjogIl4wLjAuNiIsCiAgICAgInNvY2tl dC5pby1jbGllbnQiOiAiXjQuMC4wIiwKICAgICAic3BsaXQuanMiOiAiXjEuNS4xMCIsCisgICAg InN0eWxlZC1jb21wb25lbnRzIjogIl41LjIuMSIsCiAgICAgInRhYmxlc29ydGVyIjogIl4yLjMx LjIiLAogICAgICJ0ZW1wdXNkb21pbnVzLWJvb3RzdHJhcC00IjogIl41LjEuMiIsCiAgICAgInRl bXB1c2RvbWludXMtY29yZSI6ICJeNS4wLjMiLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N0YXRpYy9qcy9kYXRhYmFzZS5q cyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z dGF0aWMvanMvZGF0YWJhc2UuanMKaW5kZXggZWIyMGNhYzVmLi43YjRlZTBhOTggMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z dGF0aWMvanMvZGF0YWJhc2UuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N0YXRpYy9qcy9kYXRhYmFzZS5qcwpAQCAtNyw2ICs3LDEx IEBACiAvLwogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8KIAoraW1wb3J0IHsgZ2V0Tm9kZUFqYXhPcHRpb25zLCBnZXROb2RlTGlz dEJ5TmFtZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3N0YXRpYy9qcy9ub2RlX2FqYXgnOworaW1w b3J0IHsgZ2V0Tm9kZVByaXZpbGVnZVJvbGVTY2hlbWEgfSBmcm9tICcuLi8uLi8uLi9zdGF0aWMv anMvcHJpdmlsZWdlLnVpJzsKK2ltcG9ydCB7IGdldE5vZGVWYXJpYWJsZVNjaGVtYSB9IGZyb20g Jy4uLy4uLy4uL3N0YXRpYy9qcy92YXJpYWJsZS51aSc7CitpbXBvcnQgRGF0YWJhc2VTY2hlbWEg ZnJvbSAnLi9kYXRhYmFzZS51aSc7CisKIGRlZmluZSgncGdhZG1pbi5ub2RlLmRhdGFiYXNlJywg WwogICAnc291cmNlcy9nZXR0ZXh0JywgJ3NvdXJjZXMvdXJsX2ZvcicsICdqcXVlcnknLCAndW5k ZXJzY29yZScsCiAgICdzb3VyY2VzL3V0aWxzJywgJ3NvdXJjZXMvcGdhZG1pbicsICdwZ2FkbWlu LmJyb3dzZXIudXRpbHMnLApAQCAtMzA2LDMwICszMTEsNTYgQEAgZGVmaW5lKCdwZ2FkbWluLm5v ZGUuZGF0YWJhc2UnLCBbCiAgICAgICAgICAgcGdCcm93c2VyLk5vZGUuY2FsbGJhY2tzLnJlZnJl c2guYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgICAgfSwKICAgICAgIH0sCisgICAgICBn ZXRTY2hlbWE6IGZ1bmN0aW9uKHRyZWVOb2RlSW5mbywgaXRlbU5vZGVEYXRhKSB7CisgICAgICAg IHJldHVybiBuZXcgRGF0YWJhc2VTY2hlbWEoCisgICAgICAgICAgKCk9PmdldE5vZGVWYXJpYWJs ZVNjaGVtYSh0aGlzLCB0cmVlTm9kZUluZm8sIGl0ZW1Ob2RlRGF0YSwgZmFsc2UsIHRydWUpLAor ICAgICAgICAgIChwcml2aWxlZ2VzKT0+Z2V0Tm9kZVByaXZpbGVnZVJvbGVTY2hlbWEodGhpcywg dHJlZU5vZGVJbmZvLCBpdGVtTm9kZURhdGEsIHByaXZpbGVnZXMpLAorICAgICAgICAgIHsKKyAg ICAgICAgICAgIHJvbGU6ICgpPT5nZXROb2RlTGlzdEJ5TmFtZSgncm9sZScsIHRyZWVOb2RlSW5m bywgaXRlbU5vZGVEYXRhKSwKKyAgICAgICAgICAgIGVuY29kaW5nOgorICAgICAgICAgICAgICAo KT0+Z2V0Tm9kZUFqYXhPcHRpb25zKCdnZXRfZW5jb2RpbmdzJywgdGhpcywgdHJlZU5vZGVJbmZv LCBpdGVtTm9kZURhdGEsIHsKKyAgICAgICAgICAgICAgICBjYWNoZUxldmVsOiAnc2VydmVyJywK KyAgICAgICAgICAgICAgfSksCisgICAgICAgICAgICB0ZW1wbGF0ZToKKyAgICAgICAgICAgICAg KCk9PmdldE5vZGVBamF4T3B0aW9ucygnZ2V0X2RhdGFiYXNlcycsIHRoaXMsIHRyZWVOb2RlSW5m bywgaXRlbU5vZGVEYXRhLCB7CisgICAgICAgICAgICAgICAgY2FjaGVMZXZlbDogJ3NlcnZlcics CisgICAgICAgICAgICAgIH0sIChkYXRhKT0+eworICAgICAgICAgICAgICAgIGxldCByZXMgPSBb XTsKKyAgICAgICAgICAgICAgICBpZiAoZGF0YSAmJiBfLmlzQXJyYXkoZGF0YSkpIHsKKyAgICAg ICAgICAgICAgICAgIF8uZWFjaChkYXRhLCBmdW5jdGlvbihkKSB7CisgICAgICAgICAgICAgICAg ICAgIHJlcy5wdXNoKHtsYWJlbDogZCwgdmFsdWU6IGQsCisgICAgICAgICAgICAgICAgICAgICAg aW1hZ2U6ICdwZy1pY29uLWRhdGFiYXNlJ30pOworICAgICAgICAgICAgICAgICAgfSk7CisgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiByZXM7CisgICAgICAgICAgICAg IH0pLAorICAgICAgICAgICAgc3BjbmFtZToKKyAgICAgICAgICAgICAgKCk9PmdldE5vZGVMaXN0 QnlOYW1lKCd0YWJsZXNwYWNlJywgdHJlZU5vZGVJbmZvLCBpdGVtTm9kZURhdGEsIChtKT0+ewor ICAgICAgICAgICAgICAgIHJldHVybiAobS5sYWJlbCAhPSAncGdfZ2xvYmFsJyk7CisgICAgICAg ICAgICAgIH0pLAorICAgICAgICAgICAgZGF0Y29sbGF0ZToKKyAgICAgICAgICAgICAgKCk9Pmdl dE5vZGVBamF4T3B0aW9ucygnZ2V0X2N0eXBlcycsIHRoaXMsIHRyZWVOb2RlSW5mbywgaXRlbU5v ZGVEYXRhLCB7CisgICAgICAgICAgICAgICAgY2FjaGVMZXZlbDogJ3NlcnZlcicsCisgICAgICAg ICAgICAgIH0pLAorICAgICAgICAgICAgZGF0Y3R5cGU6CisgICAgICAgICAgICAgICgpPT5nZXRO b2RlQWpheE9wdGlvbnMoJ2dldF9jdHlwZXMnLCB0aGlzLCB0cmVlTm9kZUluZm8sIGl0ZW1Ob2Rl RGF0YSwgeworICAgICAgICAgICAgICAgIGNhY2hlTGV2ZWw6ICdzZXJ2ZXInLAorICAgICAgICAg ICAgICB9KSwKKyAgICAgICAgICB9LAorICAgICAgICAgIHsKKyAgICAgICAgICAgIGRhdG93bmVy OiBwZ0Jyb3dzZXIuc2VydmVySW5mb1t0cmVlTm9kZUluZm8uc2VydmVyLl9pZF0udXNlci5uYW1l LAorICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICAgIH0sCisgICAgICAvKiBGZXcgZmllbGRz IGFyZSBrZXB0IHNpbmNlIHRoZSBwcm9wZXJ0aWVzIHRhYiBmb3IgY29sbGVjdGlvbiBpcyBub3QK KyAgICAgIHlldCBtaWdyYXRlZCB0byBuZXcgcmVhY3Qgc2NoZW1hLiBPbmNlIHRoZSBwcm9wZXJ0 aWVzIGZvciBjb2xsZWN0aW9uCisgICAgICBpcyByZW1vdmVkLCByZW1vdmUgdGhpcyBtb2RlbCAq LwogICAgICAgbW9kZWw6IHBnQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CiAgICAgICAgIGlk QXR0cmlidXRlOiAnZGlkJywKICAgICAgICAgZGVmYXVsdHM6IHsKICAgICAgICAgICBuYW1lOiB1 bmRlZmluZWQsCiAgICAgICAgICAgb3duZXI6IHVuZGVmaW5lZCwKLSAgICAgICAgICBpc19zeXNf b2JqOiB1bmRlZmluZWQsCiAgICAgICAgICAgY29tbWVudDogdW5kZWZpbmVkLAotICAgICAgICAg IGVuY29kaW5nOiAnVVRGOCcsCi0gICAgICAgICAgdGVtcGxhdGU6IHVuZGVmaW5lZCwKLSAgICAg ICAgICB0YWJsZXNwYWNlOiB1bmRlZmluZWQsCi0gICAgICAgICAgY29sbGF0aW9uOiB1bmRlZmlu ZWQsCi0gICAgICAgICAgY2hhcl90eXBlOiB1bmRlZmluZWQsCi0gICAgICAgICAgZGF0Y29ubmxp bWl0OiAtMSwKLSAgICAgICAgICBkYXRhbGxvd2Nvbm46IHVuZGVmaW5lZCwKLSAgICAgICAgICB2 YXJpYWJsZXM6IFtdLAotICAgICAgICAgIHByaXZpbGVnZXM6IFtdLAotICAgICAgICAgIHNlY3Vy aXRpZXM6IFtdLAotICAgICAgICAgIGRhdGFjbDogW10sCi0gICAgICAgICAgZGVmdGJsYWNsOiBb XSwKLSAgICAgICAgICBkZWZmdW5jYWNsOiBbXSwKLSAgICAgICAgICBkZWZzZXFhY2w6IFtdLAot ICAgICAgICAgIGlzX3RlbXBsYXRlOiBmYWxzZSwKLSAgICAgICAgICBkZWZ0eXBlYWNsOiBbXSwK LSAgICAgICAgICBzY2hlbWFfcmVzOicnLAogICAgICAgICB9LAogCiAgICAgICAgIC8vIERlZmF1 bHQgdmFsdWVzIQpAQCAtMzU0LDE4NyArMzg1LDExIEBAIGRlZmluZSgncGdhZG1pbi5ub2RlLmRh dGFiYXNlJywgWwogICAgICAgICAgICAgaWQ6ICdkYXRvd25lcicsIGxhYmVsOiBnZXR0ZXh0KCdP d25lcicpLAogICAgICAgICAgICAgZWRpdGFibGU6IGZhbHNlLCB0eXBlOiAndGV4dCcsIG5vZGU6 ICdyb2xlJywKICAgICAgICAgICAgIGNvbnRyb2w6IEJhY2tmb3JtLk5vZGVMaXN0QnlOYW1lQ29u dHJvbCwgc2VsZWN0MjogeyBhbGxvd0NsZWFyOiBmYWxzZSB9LAotICAgICAgICAgIH0sewotICAg ICAgICAgICAgaWQ6ICdhY2wnLCBsYWJlbDogZ2V0dGV4dCgnUHJpdmlsZWdlcycpLCB0eXBlOiAn dGV4dCcsCi0gICAgICAgICAgICBncm91cDogZ2V0dGV4dCgnU2VjdXJpdHknKSwgbW9kZTogWydw cm9wZXJ0aWVzJ10sCi0gICAgICAgICAgfSx7Ci0gICAgICAgICAgICBpZDogJ3RibGFjbCcsIGxh YmVsOiBnZXR0ZXh0KCdEZWZhdWx0IFRBQkxFIHByaXZpbGVnZXMnKSwgdHlwZTogJ3RleHQnLAot ICAgICAgICAgICAgZ3JvdXA6IGdldHRleHQoJ1NlY3VyaXR5JyksIG1vZGU6IFsncHJvcGVydGll cyddLAotICAgICAgICAgIH0sewotICAgICAgICAgICAgaWQ6ICdzZXFhY2wnLCBsYWJlbDogZ2V0 dGV4dCgnRGVmYXVsdCBTRVFVRU5DRSBwcml2aWxlZ2VzJyksIHR5cGU6ICd0ZXh0JywKLSAgICAg ICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdTZWN1cml0eScpLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwK LSAgICAgICAgICB9LHsKLSAgICAgICAgICAgIGlkOiAnZnVuY2FjbCcsIGxhYmVsOiBnZXR0ZXh0 KCdEZWZhdWx0IEZVTkNUSU9OIHByaXZpbGVnZXMnKSwgdHlwZTogJ3RleHQnLAotICAgICAgICAg ICAgZ3JvdXA6IGdldHRleHQoJ1NlY3VyaXR5JyksIG1vZGU6IFsncHJvcGVydGllcyddLAotICAg ICAgICAgIH0sewotICAgICAgICAgICAgaWQ6ICd0eXBlYWNsJywgbGFiZWw6IGdldHRleHQoJ0Rl ZmF1bHQgVFlQRSBwcml2aWxlZ2VzJyksIHR5cGU6ICd0ZXh0JywKLSAgICAgICAgICAgIGdyb3Vw OiBnZXR0ZXh0KCdTZWN1cml0eScpLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwgbWluX3ZlcnNpb246 IDkwMjAwLAotICAgICAgICAgIH0sewotICAgICAgICAgICAgaWQ6ICdpc19zeXNfb2JqJywgbGFi ZWw6IGdldHRleHQoJ1N5c3RlbSBkYXRhYmFzZT8nKSwKLSAgICAgICAgICAgIGNlbGw6J2Jvb2xl YW4nLCB0eXBlOiAnc3dpdGNoJywgbW9kZTogWydwcm9wZXJ0aWVzJ10sCiAgICAgICAgICAgfSx7 CiAgICAgICAgICAgICBpZDogJ2NvbW1lbnRzJywgbGFiZWw6IGdldHRleHQoJ0NvbW1lbnQnKSwK ICAgICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZSwgdHlwZTogJ211bHRpbGluZScsCi0gICAgICAg ICAgfSx7Ci0gICAgICAgICAgICBpZDogJ2VuY29kaW5nJywgbGFiZWw6IGdldHRleHQoJ0VuY29k aW5nJyksCi0gICAgICAgICAgICBlZGl0YWJsZTogZmFsc2UsIHR5cGU6ICd0ZXh0JywgZ3JvdXA6 IGdldHRleHQoJ0RlZmluaXRpb24nKSwKLSAgICAgICAgICAgIHJlYWRvbmx5OiBmdW5jdGlvbiht KSB7IHJldHVybiAhbS5pc05ldygpOyB9LCB1cmw6ICdnZXRfZW5jb2RpbmdzJywKLSAgICAgICAg ICAgIGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycsIGNhY2hlX2xldmVsOiAnc2VydmVyJywK LSAgICAgICAgICB9LHsKLSAgICAgICAgICAgIGlkOiAndGVtcGxhdGUnLCBsYWJlbDogZ2V0dGV4 dCgnVGVtcGxhdGUnKSwKLSAgICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZSwgdHlwZTogJ3RleHQn LCBncm91cDogZ2V0dGV4dCgnRGVmaW5pdGlvbicpLAotICAgICAgICAgICAgcmVhZG9ubHk6IGZ1 bmN0aW9uKG0pIHsgcmV0dXJuICFtLmlzTmV3KCk7IH0sCi0gICAgICAgICAgICBjb250cm9sOiAn bm9kZS1saXN0LWJ5LW5hbWUnLCB1cmw6ICdnZXRfZGF0YWJhc2VzJywgY2FjaGVfbGV2ZWw6ICdz ZXJ2ZXInLAotICAgICAgICAgICAgc2VsZWN0MjogeyBhbGxvd0NsZWFyOiBmYWxzZSB9LCBtb2Rl OiBbJ2NyZWF0ZSddLAotICAgICAgICAgICAgdHJhbnNmb3JtOiBmdW5jdGlvbihkYXRhLCBjZWxs KSB7Ci0gICAgICAgICAgICAgIHZhciByZXMgPSBbXSwKLSAgICAgICAgICAgICAgICBjb250cm9s ID0gY2VsbCB8fCB0aGlzLAotICAgICAgICAgICAgICAgIGxhYmVsID0gY29udHJvbC5tb2RlbC5n ZXQoJ25hbWUnKTsKLQotICAgICAgICAgICAgICBpZiAoIWNvbnRyb2wubW9kZWwuaXNOZXcoKSkg ewotICAgICAgICAgICAgICAgIHJlcy5wdXNoKHtsYWJlbDogbGFiZWwsIHZhbHVlOiBsYWJlbH0p OwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAg IGlmIChkYXRhICYmIF8uaXNBcnJheShkYXRhKSkgewotICAgICAgICAgICAgICAgICAgXy5lYWNo KGRhdGEsIGZ1bmN0aW9uKGQpIHsKLSAgICAgICAgICAgICAgICAgICAgcmVzLnB1c2goe2xhYmVs OiBkLCB2YWx1ZTogZCwKLSAgICAgICAgICAgICAgICAgICAgICBpbWFnZTogJ3BnLWljb24tZGF0 YWJhc2UnfSk7Ci0gICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgcmV0dXJuIHJlczsKLSAgICAgICAgICAgIH0sCi0g ICAgICAgICAgfSx7Ci0gICAgICAgICAgICBpZDogJ3NwY25hbWUnLCBsYWJlbDogZ2V0dGV4dCgn VGFibGVzcGFjZScpLAotICAgICAgICAgICAgZWRpdGFibGU6IGZhbHNlLCB0eXBlOiAndGV4dCcs IGdyb3VwOiBnZXR0ZXh0KCdEZWZpbml0aW9uJyksCi0gICAgICAgICAgICBjb250cm9sOiAnbm9k ZS1saXN0LWJ5LW5hbWUnLCBub2RlOiAndGFibGVzcGFjZScsCi0gICAgICAgICAgICBzZWxlY3Qy OiB7IGFsbG93Q2xlYXI6IGZhbHNlIH0sCi0gICAgICAgICAgICBmaWx0ZXI6IGZ1bmN0aW9uKG0p IHsKLSAgICAgICAgICAgICAgcmV0dXJuIChtLmxhYmVsICE9ICdwZ19nbG9iYWwnKTsKLSAgICAg ICAgICAgIH0sCi0gICAgICAgICAgfSx7Ci0gICAgICAgICAgICBpZDogJ2RhdGNvbGxhdGUnLCBs YWJlbDogZ2V0dGV4dCgnQ29sbGF0aW9uJyksCi0gICAgICAgICAgICBlZGl0YWJsZTogZmFsc2Us IHR5cGU6ICd0ZXh0JywgZ3JvdXA6IGdldHRleHQoJ0RlZmluaXRpb24nKSwKLSAgICAgICAgICAg IHJlYWRvbmx5OiBmdW5jdGlvbihtKSB7IHJldHVybiAhbS5pc05ldygpOyB9LCB1cmw6ICdnZXRf Y3R5cGVzJywKLSAgICAgICAgICAgIGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycsIGNhY2hl X2xldmVsOiAnc2VydmVyJywKLSAgICAgICAgICB9LHsKLSAgICAgICAgICAgIGlkOiAnZGF0Y3R5 cGUnLCBsYWJlbDogZ2V0dGV4dCgnQ2hhcmFjdGVyIHR5cGUnKSwKLSAgICAgICAgICAgIGVkaXRh YmxlOiBmYWxzZSwgdHlwZTogJ3RleHQnLCBncm91cDogZ2V0dGV4dCgnRGVmaW5pdGlvbicpLAot ICAgICAgICAgICAgcmVhZG9ubHk6IGZ1bmN0aW9uKG0pIHsgcmV0dXJuICFtLmlzTmV3KCk7IH0s IHVybDogJ2dldF9jdHlwZXMnLAotICAgICAgICAgICAgY29udHJvbDogJ25vZGUtYWpheC1vcHRp b25zJywgY2FjaGVfbGV2ZWw6ICdzZXJ2ZXInLAotICAgICAgICAgIH0sewotICAgICAgICAgICAg aWQ6ICdkYXRjb25ubGltaXQnLCBsYWJlbDogZ2V0dGV4dCgnQ29ubmVjdGlvbiBsaW1pdCcpLAot ICAgICAgICAgICAgZWRpdGFibGU6IGZhbHNlLCB0eXBlOiAnaW50JywgZ3JvdXA6IGdldHRleHQo J0RlZmluaXRpb24nKSwgbWluOiAtMSwKLSAgICAgICAgICB9LHsKLSAgICAgICAgICAgIGlkOiAn aXNfdGVtcGxhdGUnLCBsYWJlbDogZ2V0dGV4dCgnVGVtcGxhdGU/JyksCi0gICAgICAgICAgICBl ZGl0YWJsZTogZmFsc2UsIHR5cGU6ICdzd2l0Y2gnLCBncm91cDogZ2V0dGV4dCgnRGVmaW5pdGlv bicpLAotICAgICAgICAgICAgcmVhZG9ubHk6IHRydWUsICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAn ZWRpdCddLAotICAgICAgICAgIH0sewotICAgICAgICAgICAgaWQ6ICdkYXRhbGxvd2Nvbm4nLCBs YWJlbDogZ2V0dGV4dCgnQWxsb3cgY29ubmVjdGlvbnM/JyksCi0gICAgICAgICAgICBlZGl0YWJs ZTogZmFsc2UsIHR5cGU6ICdzd2l0Y2gnLCBncm91cDogZ2V0dGV4dCgnRGVmaW5pdGlvbicpLAot ICAgICAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJ10sCi0gICAgICAgICAgfSx7Ci0gICAgICAg ICAgICBpZDogJ2RhdGFjbCcsIGxhYmVsOiBnZXR0ZXh0KCdQcml2aWxlZ2VzJyksIHR5cGU6ICdj b2xsZWN0aW9uJywKLSAgICAgICAgICAgIG1vZGVsOiBwZ0Jyb3dzZXIuTm9kZS5Qcml2aWxlZ2VS b2xlTW9kZWwuZXh0ZW5kKHsKLSAgICAgICAgICAgICAgcHJpdmlsZWdlczogWydDJywgJ1QnLCAn YyddLAotICAgICAgICAgICAgfSksIHVuaXF1ZUNvbCA6IFsnZ3JhbnRlZScsICdncmFudG9yJ10s IGVkaXRhYmxlOiBmYWxzZSwKLSAgICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdTZWN1cml0eScp LCBtb2RlOiBbJ2VkaXQnLCAnY3JlYXRlJ10sCi0gICAgICAgICAgICBjYW5BZGQ6IHRydWUsIGNh bkRlbGV0ZTogdHJ1ZSwgY29udHJvbDogJ3VuaXF1ZS1jb2wtY29sbGVjdGlvbicsCi0gICAgICAg ICAgfSx7Ci0gICAgICAgICAgICBpZDogJ3ZhcmlhYmxlcycsIGxhYmVsOiAnJywgdHlwZTogJ2Nv bGxlY3Rpb24nLAotICAgICAgICAgICAgbW9kZWw6IHBnQnJvd3Nlci5Ob2RlLlZhcmlhYmxlTW9k ZWwuZXh0ZW5kKHtrZXlzOlsnbmFtZScsICdyb2xlJ119KSwgZWRpdGFibGU6IGZhbHNlLAotICAg ICAgICAgICAgZ3JvdXA6IGdldHRleHQoJ1BhcmFtZXRlcnMnKSwgbW9kZTogWydlZGl0JywgJ2Ny ZWF0ZSddLAotICAgICAgICAgICAgY2FuQWRkOiB0cnVlLCBjYW5FZGl0OiBmYWxzZSwgY2FuRGVs ZXRlOiB0cnVlLCBoYXNSb2xlOiB0cnVlLAotICAgICAgICAgICAgY29udHJvbDogQmFja2Zvcm0u VmFyaWFibGVDb2xsZWN0aW9uQ29udHJvbCwgbm9kZTogJ3JvbGUnLAotICAgICAgICAgIH0sewot ICAgICAgICAgICAgaWQ6ICdzZWNsYWJlbHMnLCBsYWJlbDogZ2V0dGV4dCgnU2VjdXJpdHkgbGFi ZWxzJyksCi0gICAgICAgICAgICBtb2RlbDogcGdCcm93c2VyLlNlY0xhYmVsTW9kZWwsCi0gICAg ICAgICAgICBlZGl0YWJsZTogZmFsc2UsIHR5cGU6ICdjb2xsZWN0aW9uJywgY2FuRWRpdDogZmFs c2UsCi0gICAgICAgICAgICBncm91cDogZ2V0dGV4dCgnU2VjdXJpdHknKSwgY2FuRGVsZXRlOiB0 cnVlLAotICAgICAgICAgICAgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLCBjYW5BZGQ6IHRydWUs Ci0gICAgICAgICAgICBjb250cm9sOiAndW5pcXVlLWNvbC1jb2xsZWN0aW9uJywgdW5pcXVlQ29s IDogWydwcm92aWRlciddLAotICAgICAgICAgICAgbWluX3ZlcnNpb246IDkwMjAwLAotICAgICAg ICAgIH0sewotICAgICAgICAgICAgdHlwZTogJ25lc3RlZCcsIGNvbnRyb2w6ICd0YWInLCBncm91 cDogZ2V0dGV4dCgnRGVmYXVsdCBQcml2aWxlZ2VzJyksCi0gICAgICAgICAgICBtb2RlOiBbJ2Vk aXQnXSwKLSAgICAgICAgICAgIHNjaGVtYTpbewotICAgICAgICAgICAgICBpZDogJ2RlZnRibGFj bCcsIG1vZGVsOiBwZ0Jyb3dzZXIuTm9kZS5Qcml2aWxlZ2VSb2xlTW9kZWwuZXh0ZW5kKAotICAg ICAgICAgICAgICAgIHtwcml2aWxlZ2VzOiBbJ2EnLCAncicsICd3JywgJ2QnLCAnRCcsICd4Jywg J3QnXX0pLCBsYWJlbDogJycsCi0gICAgICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZSwgdHlwZTog J2NvbGxlY3Rpb24nLCBncm91cDogZ2V0dGV4dCgnVGFibGVzJyksCi0gICAgICAgICAgICAgIG1v ZGU6IFsnZWRpdCcsICdjcmVhdGUnXSwgY29udHJvbDogJ3VuaXF1ZS1jb2wtY29sbGVjdGlvbics Ci0gICAgICAgICAgICAgIGNhbkFkZDogdHJ1ZSwgY2FuRGVsZXRlOiB0cnVlLCB1bmlxdWVDb2wg OiBbJ2dyYW50ZWUnLCAnZ3JhbnRvciddLAotICAgICAgICAgICAgfSx7Ci0gICAgICAgICAgICAg IGlkOiAnZGVmc2VxYWNsJywgbW9kZWw6IHBnQnJvd3Nlci5Ob2RlLlByaXZpbGVnZVJvbGVNb2Rl bC5leHRlbmQoCi0gICAgICAgICAgICAgICAge3ByaXZpbGVnZXM6IFsncicsICd3JywgJ1UnXX0p LCBsYWJlbDogJycsCi0gICAgICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZSwgdHlwZTogJ2NvbGxl Y3Rpb24nLCBncm91cDogZ2V0dGV4dCgnU2VxdWVuY2VzJyksCi0gICAgICAgICAgICAgIG1vZGU6 IFsnZWRpdCcsICdjcmVhdGUnXSwgY29udHJvbDogJ3VuaXF1ZS1jb2wtY29sbGVjdGlvbicsCi0g ICAgICAgICAgICAgIGNhbkFkZDogdHJ1ZSwgY2FuRGVsZXRlOiB0cnVlLCB1bmlxdWVDb2wgOiBb J2dyYW50ZWUnLCAnZ3JhbnRvciddLAotICAgICAgICAgICAgfSx7Ci0gICAgICAgICAgICAgIGlk OiAnZGVmZnVuY2FjbCcsIG1vZGVsOiBwZ0Jyb3dzZXIuTm9kZS5Qcml2aWxlZ2VSb2xlTW9kZWwu ZXh0ZW5kKAotICAgICAgICAgICAgICAgIHtwcml2aWxlZ2VzOiBbJ1gnXX0pLCBsYWJlbDogJycs Ci0gICAgICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZSwgdHlwZTogJ2NvbGxlY3Rpb24nLCBncm91 cDogZ2V0dGV4dCgnRnVuY3Rpb25zJyksCi0gICAgICAgICAgICAgIG1vZGU6IFsnZWRpdCcsICdj cmVhdGUnXSwgY29udHJvbDogJ3VuaXF1ZS1jb2wtY29sbGVjdGlvbicsCi0gICAgICAgICAgICAg IGNhbkFkZDogdHJ1ZSwgY2FuRGVsZXRlOiB0cnVlLCB1bmlxdWVDb2wgOiBbJ2dyYW50ZWUnLCAn Z3JhbnRvciddLAotICAgICAgICAgICAgfSx7Ci0gICAgICAgICAgICAgIGlkOiAnZGVmdHlwZWFj bCcsIG1vZGVsOiBwZ0Jyb3dzZXIuTm9kZS5Qcml2aWxlZ2VSb2xlTW9kZWwuZXh0ZW5kKAotICAg ICAgICAgICAgICAgIHtwcml2aWxlZ2VzOiBbJ1UnXX0pLCAgbGFiZWw6ICcnLAotICAgICAgICAg ICAgICBlZGl0YWJsZTogZmFsc2UsIHR5cGU6ICdjb2xsZWN0aW9uJywgZ3JvdXA6ICdkZWZ0eXBl c2FjbF9ncm91cCcsCi0gICAgICAgICAgICAgIG1vZGU6IFsnZWRpdCcsICdjcmVhdGUnXSwgY29u dHJvbDogJ3VuaXF1ZS1jb2wtY29sbGVjdGlvbicsCi0gICAgICAgICAgICAgIGNhbkFkZDogdHJ1 ZSwgY2FuRGVsZXRlOiB0cnVlLCB1bmlxdWVDb2wgOiBbJ2dyYW50ZWUnLCAnZ3JhbnRvciddLAot ICAgICAgICAgICAgICBtaW5fdmVyc2lvbjogOTAyMDAsCi0gICAgICAgICAgICB9LHsKLSAgICAg ICAgICAgICAgaWQ6ICdkZWZ0eXBlc2FjbF9ncm91cCcsIHR5cGU6ICdncm91cCcsIGxhYmVsOiBn ZXR0ZXh0KCdUeXBlcycpLAotICAgICAgICAgICAgICBtb2RlOiBbJ2VkaXQnLCAnY3JlYXRlJ10s IG1pbl92ZXJzaW9uOiA5MDIwMCwKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBdLAotICAg ICAgICAgIH0sewotICAgICAgICAgICAgdHlwZTogJ2NvbGxlY3Rpb24nLCBncm91cDogZ2V0dGV4 dCgnQWR2YW5jZWQnKSwKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIGlk OiAnc2NoZW1hX3JlcycsIGxhYmVsOiBnZXR0ZXh0KCdTY2hlbWEgcmVzdHJpY3Rpb24nKSwKLSAg ICAgICAgICAgIHR5cGU6ICdzZWxlY3QyJywgZ3JvdXA6IGdldHRleHQoJ0FkdmFuY2VkJyksCi0g ICAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwKLSAgICAg ICAgICAgIGhlbHBNZXNzYWdlOiBnZXR0ZXh0KCdOb3RlOiBDaGFuZ2VzIHRvIHRoZSBzY2hlbWEg cmVzdHJpY3Rpb24gd2lsbCByZXF1aXJlIHRoZSBTY2hlbWFzIG5vZGUgaW4gdGhlIGJyb3dzZXIg dG8gYmUgcmVmcmVzaGVkIGJlZm9yZSB0aGV5IHdpbGwgYmUgc2hvd24uJyksCi0gICAgICAgICAg ICBzZWxlY3QyOiB7Ci0gICAgICAgICAgICAgIG11bHRpcGxlOiB0cnVlLCBhbGxvd0NsZWFyOiBm YWxzZSwgdGFnczogdHJ1ZSwKLSAgICAgICAgICAgICAgdG9rZW5TZXBhcmF0b3JzOiBbJywnXSwg Zmlyc3RfZW1wdHk6IGZhbHNlLAotICAgICAgICAgICAgICBzZWxlY3RPbkNsb3NlOiB0cnVlLCBl bXB0eU9wdGlvbnM6IHRydWUsCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgY29udHJvbDog QmFja2Zvcm0uU2VsZWN0MkNvbnRyb2wuZXh0ZW5kKHsKLSAgICAgICAgICAgICAgb25DaGFuZ2U6 IGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIEJhY2tmb3JtLlNlbGVjdDJDb250cm9sLnBy b3RvdHlwZS5vbkNoYW5nZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwotICAgICAgICAgICAgICAg IGlmICghdGhpcy5tb2RlbCB8fCAhKAotICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5jaGFu Z2VkICYmCi0gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5nZXQoJ29pZCcpICE9PSB1bmRlZmlu ZWQKLSAgICAgICAgICAgICAgICApKSB7Ci0gICAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLmlu Zm9ybV90ZXh0ID0gdW5kZWZpbmVkOwotICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAg ICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGlmKHRoaXMubW9kZWwub3JpZ1Nlc3NBdHRy cy5zY2hlbWFfcmVzICE9IHRoaXMubW9kZWwuY2hhbmdlZC5zY2hlbWFfcmVzKQotICAgICAgICAg ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuaW5mb3JtX3RleHQgPSBnZXR0 ZXh0KAotICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIHJlZnJlc2ggdGhlIFNjaGVtYXMgbm9k ZSB0byBtYWtlIGNoYW5nZXMgdG8gdGhlIHNjaGVtYSByZXN0cmljdGlvbiB0YWtlIGVmZmVjdC4n Ci0gICAgICAgICAgICAgICAgICApOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg ICAgICAgICAgICB0aGlzLm1vZGVsLmluZm9ybV90ZXh0ID0gdW5kZWZpbmVkOwotICAgICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIH0pLAogICAgICAgICAgIH0s CiAgICAgICAgIF0sCi0gICAgICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICB2 YXIgbmFtZSA9IHRoaXMuZ2V0KCduYW1lJyk7Ci0gICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQo bmFtZSkgfHwgXy5pc051bGwobmFtZSkgfHwKLSAgICAgICAgICAgIFN0cmluZyhuYW1lKS5yZXBs YWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7Ci0gICAgICAgICAgICB2YXIgbXNnID0gZ2V0 dGV4dCgnTmFtZSBjYW5ub3QgYmUgZW1wdHkuJyk7Ci0gICAgICAgICAgICB0aGlzLmVycm9yTW9k ZWwuc2V0KCduYW1lJywgbXNnKTsKLSAgICAgICAgICAgIHJldHVybiBtc2c7Ci0gICAgICAgICAg fSBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC51bnNldCgnbmFtZScpOwotICAg ICAgICAgIH0KLSAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfSwKICAgICAgIH0pLAog ICAgIH0pOwogCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc3RhdGljL2pzL2RhdGFiYXNlLnVpLmpzIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N0YXRpYy9qcy9kYXRhYmFz ZS51aS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmFlOTdhOGY2OAot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zdGF0aWMvanMvZGF0YWJhc2UudWkuanMKQEAgLTAsMCArMSwyMDcgQEAK K2ltcG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJjZXMvZ2V0dGV4dCc7CitpbXBvcnQgQmFzZVVJU2No ZW1hIGZyb20gJ3NvdXJjZXMvU2NoZW1hVmlldy9iYXNlX3NjaGVtYS51aSc7CitpbXBvcnQgU2Vj TGFiZWxTY2hlbWEgZnJvbSAnLi4vLi4vLi4vc3RhdGljL2pzL3NlY19sYWJlbC51aSc7CisKK2V4 cG9ydCBjbGFzcyBEZWZhdWx0UHJpdlNjaGVtYSBleHRlbmRzIEJhc2VVSVNjaGVtYSB7CisgIGNv bnN0cnVjdG9yKGdldFByaXZpbGVnZVJvbGVTY2hlbWEpIHsKKyAgICBzdXBlcigpOworICAgIHRo aXMuZ2V0UHJpdmlsZWdlUm9sZVNjaGVtYSA9IGdldFByaXZpbGVnZVJvbGVTY2hlbWE7CisgIH0K KworICBnZXQgZmllbGRzKCkgeworICAgIHJldHVybiBbCisgICAgICB7CisgICAgICAgIGlkOiAn ZGVmdGJsYWNsJywgdHlwZTogJ2NvbGxlY3Rpb24nLCBncm91cDogZ2V0dGV4dCgnVGFibGVzJyks CisgICAgICAgIHNjaGVtYTogdGhpcy5nZXRQcml2aWxlZ2VSb2xlU2NoZW1hKFsnYScsICdyJywg J3cnLCAnZCcsICdEJywgJ3gnLCAndCddKSwKKyAgICAgICAgbW9kZTogWydlZGl0JywgJ2NyZWF0 ZSddLAorICAgICAgICBjYW5BZGQ6IHRydWUsIGNhbkRlbGV0ZTogdHJ1ZSwKKyAgICAgICAgdW5p cXVlQ29sIDogWydncmFudGVlJywgJ2dyYW50b3InXSwKKyAgICAgIH0seworICAgICAgICBpZDog J2RlZnNlcWFjbCcsIHR5cGU6ICdjb2xsZWN0aW9uJywgZ3JvdXA6IGdldHRleHQoJ1NlcXVlbmNl cycpLAorICAgICAgICBzY2hlbWE6IHRoaXMuZ2V0UHJpdmlsZWdlUm9sZVNjaGVtYShbJ3InLCAn dycsICdVJ10pLAorICAgICAgICBtb2RlOiBbJ2VkaXQnLCAnY3JlYXRlJ10sCisgICAgICAgIGNh bkFkZDogdHJ1ZSwgY2FuRGVsZXRlOiB0cnVlLAorICAgICAgICB1bmlxdWVDb2wgOiBbJ2dyYW50 ZWUnLCAnZ3JhbnRvciddLAorICAgICAgfSx7CisgICAgICAgIGlkOiAnZGVmZnVuY2FjbCcsIHR5 cGU6ICdjb2xsZWN0aW9uJywgZ3JvdXA6IGdldHRleHQoJ0Z1bmN0aW9ucycpLAorICAgICAgICBz Y2hlbWE6IHRoaXMuZ2V0UHJpdmlsZWdlUm9sZVNjaGVtYShbJ1gnXSksCisgICAgICAgIG1vZGU6 IFsnZWRpdCcsICdjcmVhdGUnXSwKKyAgICAgICAgY2FuQWRkOiB0cnVlLCBjYW5EZWxldGU6IHRy dWUsIHVuaXF1ZUNvbCA6IFsnZ3JhbnRlZScsICdncmFudG9yJ10sCisgICAgICB9LHsKKyAgICAg ICAgaWQ6ICdkZWZ0eXBlYWNsJywgdHlwZTogJ2NvbGxlY3Rpb24nLCBncm91cDogZ2V0dGV4dCgn VHlwZXMnKSwKKyAgICAgICAgc2NoZW1hOiB0aGlzLmdldFByaXZpbGVnZVJvbGVTY2hlbWEoWydV J10pLCBtaW5fdmVyc2lvbjogOTAyMDAsCisgICAgICAgIG1vZGU6IFsnZWRpdCcsICdjcmVhdGUn XSwKKyAgICAgICAgY2FuQWRkOiB0cnVlLCBjYW5EZWxldGU6IHRydWUsIHVuaXF1ZUNvbCA6IFsn Z3JhbnRlZScsICdncmFudG9yJ10sCisgICAgICB9LAorICAgIF07CisgIH0KK30KKworZXhwb3J0 IGRlZmF1bHQgY2xhc3MgRGF0YWJhc2VTY2hlbWEgZXh0ZW5kcyBCYXNlVUlTY2hlbWEgeworICBj b25zdHJ1Y3RvcihnZXRWYXJpYWJsZVNjaGVtYSwgZ2V0UHJpdmlsZWdlUm9sZVNjaGVtYSwgZmll bGRPcHRpb25zPXt9LCBpbml0VmFsdWVzKSB7CisgICAgc3VwZXIoeworICAgICAgbmFtZTogdW5k ZWZpbmVkLAorICAgICAgb3duZXI6IHVuZGVmaW5lZCwKKyAgICAgIGlzX3N5c19vYmo6IHVuZGVm aW5lZCwKKyAgICAgIGNvbW1lbnQ6IHVuZGVmaW5lZCwKKyAgICAgIGVuY29kaW5nOiAnVVRGOCcs CisgICAgICB0ZW1wbGF0ZTogdW5kZWZpbmVkLAorICAgICAgdGFibGVzcGFjZTogdW5kZWZpbmVk LAorICAgICAgY29sbGF0aW9uOiB1bmRlZmluZWQsCisgICAgICBjaGFyX3R5cGU6IHVuZGVmaW5l ZCwKKyAgICAgIGRhdGNvbm5saW1pdDogLTEsCisgICAgICBkYXRhbGxvd2Nvbm46IHVuZGVmaW5l ZCwKKyAgICAgIHZhcmlhYmxlczogW10sCisgICAgICBwcml2aWxlZ2VzOiBbXSwKKyAgICAgIHNl Y3VyaXRpZXM6IFtdLAorICAgICAgZGF0YWNsOiBbXSwKKyAgICAgIGRlZnRibGFjbDogW10sCisg ICAgICBkZWZmdW5jYWNsOiBbXSwKKyAgICAgIGRlZnNlcWFjbDogW10sCisgICAgICBpc190ZW1w bGF0ZTogZmFsc2UsCisgICAgICBkZWZ0eXBlYWNsOiBbXSwKKyAgICAgIHNjaGVtYV9yZXM6Jycs CisgICAgICAuLi5pbml0VmFsdWVzLAorICAgIH0pOworICAgIHRoaXMuZ2V0VmFyaWFibGVTY2hl bWEgPSBnZXRWYXJpYWJsZVNjaGVtYTsKKyAgICB0aGlzLmdldFByaXZpbGVnZVJvbGVTY2hlbWEg PSBnZXRQcml2aWxlZ2VSb2xlU2NoZW1hOworICAgIHRoaXMuZmllbGRPcHRpb25zID0geworICAg ICAgcm9sZTogW10sCisgICAgICBlbmNvZGluZzogW10sCisgICAgICB0ZW1wbGF0ZTogW10sCisg ICAgICBzcGNuYW1lOiBbXSwKKyAgICAgIGRhdGNvbGxhdGU6IFtdLAorICAgICAgZGF0Y3R5cGU6 IFtdLAorICAgICAgLi4uZmllbGRPcHRpb25zLAorICAgIH07CisgIH0KKworICBnZXQgaWRBdHRy aWJ1dGUoKSB7CisgICAgcmV0dXJuICdkaWQnOworICB9CisKKyAgZ2V0IGZpZWxkcygpIHsKKyAg ICBsZXQgb2JqID0gdGhpczsKKyAgICByZXR1cm4gWworICAgICAgeworICAgICAgICBpZDogJ25h bWUnLCBsYWJlbDogZ2V0dGV4dCgnRGF0YWJhc2UnKSwgY2VsbDogJ3RleHQnLAorICAgICAgICBl ZGl0YWJsZTogZmFsc2UsIHR5cGU6ICd0ZXh0Jywgbm9FbXB0eTogdHJ1ZSwKKyAgICAgIH0sewor ICAgICAgICBpZDogJ2RpZCcsIGxhYmVsOiBnZXR0ZXh0KCdPSUQnKSwgY2VsbDogJ3RleHQnLCBt b2RlOiBbJ3Byb3BlcnRpZXMnXSwKKyAgICAgICAgZWRpdGFibGU6IGZhbHNlLCB0eXBlOiAndGV4 dCcsCisgICAgICB9LHsKKyAgICAgICAgaWQ6ICdkYXRvd25lcicsIGxhYmVsOiBnZXR0ZXh0KCdP d25lcicpLAorICAgICAgICBlZGl0YWJsZTogZmFsc2UsIHR5cGU6ICdzZWxlY3QnLCBvcHRpb25z OiB0aGlzLmZpZWxkT3B0aW9ucy5yb2xlLAorICAgICAgICBjb250cm9sUHJvcHM6IHsgYWxsb3dD bGVhcjogZmFsc2UgfSwKKyAgICAgIH0seworICAgICAgICBpZDogJ2lzX3N5c19vYmonLCBsYWJl bDogZ2V0dGV4dCgnU3lzdGVtIGRhdGFiYXNlPycpLAorICAgICAgICBjZWxsOiAnc3dpdGNoJywg dHlwZTogJ3N3aXRjaCcsIG1vZGU6IFsncHJvcGVydGllcyddLAorICAgICAgfSx7CisgICAgICAg IGlkOiAnY29tbWVudHMnLCBsYWJlbDogZ2V0dGV4dCgnQ29tbWVudCcpLAorICAgICAgICBlZGl0 YWJsZTogZmFsc2UsIHR5cGU6ICdtdWx0aWxpbmUnLAorICAgICAgfSx7CisgICAgICAgIGlkOiAn ZW5jb2RpbmcnLCBsYWJlbDogZ2V0dGV4dCgnRW5jb2RpbmcnKSwKKyAgICAgICAgZWRpdGFibGU6 IGZhbHNlLCB0eXBlOiAnc2VsZWN0JywgZ3JvdXA6IGdldHRleHQoJ0RlZmluaXRpb24nKSwKKyAg ICAgICAgcmVhZG9ubHk6IGZ1bmN0aW9uKHN0YXRlKSB7cmV0dXJuICFvYmouaXNOZXcoc3RhdGUp OyB9LAorICAgICAgICBvcHRpb25zOiB0aGlzLmZpZWxkT3B0aW9ucy5lbmNvZGluZywKKyAgICAg IH0seworICAgICAgICBpZDogJ3RlbXBsYXRlJywgbGFiZWw6IGdldHRleHQoJ1RlbXBsYXRlJyks CisgICAgICAgIGVkaXRhYmxlOiBmYWxzZSwgdHlwZTogJ3NlbGVjdCcsIGdyb3VwOiBnZXR0ZXh0 KCdEZWZpbml0aW9uJyksCisgICAgICAgIHJlYWRvbmx5OiBmdW5jdGlvbihzdGF0ZSkge3JldHVy biAhb2JqLmlzTmV3KHN0YXRlKTsgfSwKKyAgICAgICAgb3B0aW9uczogdGhpcy5maWVsZE9wdGlv bnMudGVtcGxhdGUsCisgICAgICAgIGNvbnRyb2xQcm9wczogeyBhbGxvd0NsZWFyOiBmYWxzZSB9 LCBtb2RlOiBbJ2NyZWF0ZSddLAorICAgICAgfSx7CisgICAgICAgIGlkOiAnc3BjbmFtZScsIGxh YmVsOiBnZXR0ZXh0KCdUYWJsZXNwYWNlJyksCisgICAgICAgIGVkaXRhYmxlOiBmYWxzZSwgdHlw ZTogJ3NlbGVjdCcsIGdyb3VwOiBnZXR0ZXh0KCdEZWZpbml0aW9uJyksCisgICAgICAgIG9wdGlv bnM6IHRoaXMuZmllbGRPcHRpb25zLnNwY25hbWUsCisgICAgICAgIGNvbnRyb2xQcm9wczogeyBh bGxvd0NsZWFyOiBmYWxzZSB9LAorICAgICAgfSx7CisgICAgICAgIGlkOiAnZGF0Y29sbGF0ZScs IGxhYmVsOiBnZXR0ZXh0KCdDb2xsYXRpb24nKSwKKyAgICAgICAgZWRpdGFibGU6IGZhbHNlLCB0 eXBlOiAnc2VsZWN0JywgZ3JvdXA6IGdldHRleHQoJ0RlZmluaXRpb24nKSwKKyAgICAgICAgcmVh ZG9ubHk6IGZ1bmN0aW9uKHN0YXRlKSB7cmV0dXJuICFvYmouaXNOZXcoc3RhdGUpOyB9LAorICAg ICAgICBvcHRpb25zOiB0aGlzLmZpZWxkT3B0aW9ucy5kYXRjb2xsYXRlLAorICAgICAgfSx7Cisg ICAgICAgIGlkOiAnZGF0Y3R5cGUnLCBsYWJlbDogZ2V0dGV4dCgnQ2hhcmFjdGVyIHR5cGUnKSwK KyAgICAgICAgZWRpdGFibGU6IGZhbHNlLCB0eXBlOiAnc2VsZWN0JywgZ3JvdXA6IGdldHRleHQo J0RlZmluaXRpb24nKSwKKyAgICAgICAgcmVhZG9ubHk6IGZ1bmN0aW9uKHN0YXRlKSB7cmV0dXJu ICFvYmouaXNOZXcoc3RhdGUpOyB9LAorICAgICAgICBvcHRpb25zOiB0aGlzLmZpZWxkT3B0aW9u cy5kYXRjdHlwZSwKKyAgICAgIH0seworICAgICAgICBpZDogJ2RhdGNvbm5saW1pdCcsIGxhYmVs OiBnZXR0ZXh0KCdDb25uZWN0aW9uIGxpbWl0JyksCisgICAgICAgIGVkaXRhYmxlOiBmYWxzZSwg dHlwZTogJ2ludCcsIGdyb3VwOiBnZXR0ZXh0KCdEZWZpbml0aW9uJyksCisgICAgICAgIG1pbjog LTEsCisgICAgICB9LHsKKyAgICAgICAgaWQ6ICdpc190ZW1wbGF0ZScsIGxhYmVsOiBnZXR0ZXh0 KCdUZW1wbGF0ZT8nKSwKKyAgICAgICAgZWRpdGFibGU6IGZhbHNlLCB0eXBlOiAnc3dpdGNoJywg Z3JvdXA6IGdldHRleHQoJ0RlZmluaXRpb24nKSwKKyAgICAgICAgcmVhZG9ubHk6IHRydWUsICBt b2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCddLAorICAgICAgfSx7CisgICAgICAgIGlkOiAnZGF0 YWxsb3djb25uJywgbGFiZWw6IGdldHRleHQoJ0FsbG93IGNvbm5lY3Rpb25zPycpLAorICAgICAg ICBlZGl0YWJsZTogZmFsc2UsIHR5cGU6ICdzd2l0Y2gnLCBncm91cDogZ2V0dGV4dCgnRGVmaW5p dGlvbicpLAorICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwKKyAgICAgIH0seworICAgICAg ICBpZDogJ2FjbCcsIGxhYmVsOiBnZXR0ZXh0KCdQcml2aWxlZ2VzJyksIHR5cGU6ICd0ZXh0JywK KyAgICAgICAgZ3JvdXA6IGdldHRleHQoJ1NlY3VyaXR5JyksIG1vZGU6IFsncHJvcGVydGllcydd LAorICAgICAgfSx7CisgICAgICAgIGlkOiAndGJsYWNsJywgbGFiZWw6IGdldHRleHQoJ0RlZmF1 bHQgVEFCTEUgcHJpdmlsZWdlcycpLCB0eXBlOiAndGV4dCcsCisgICAgICAgIGdyb3VwOiBnZXR0 ZXh0KCdTZWN1cml0eScpLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwKKyAgICAgIH0seworICAgICAg ICBpZDogJ3NlcWFjbCcsIGxhYmVsOiBnZXR0ZXh0KCdEZWZhdWx0IFNFUVVFTkNFIHByaXZpbGVn ZXMnKSwgdHlwZTogJ3RleHQnLAorICAgICAgICBncm91cDogZ2V0dGV4dCgnU2VjdXJpdHknKSwg bW9kZTogWydwcm9wZXJ0aWVzJ10sCisgICAgICB9LHsKKyAgICAgICAgaWQ6ICdmdW5jYWNsJywg bGFiZWw6IGdldHRleHQoJ0RlZmF1bHQgRlVOQ1RJT04gcHJpdmlsZWdlcycpLCB0eXBlOiAndGV4 dCcsCisgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdTZWN1cml0eScpLCBtb2RlOiBbJ3Byb3BlcnRp ZXMnXSwKKyAgICAgIH0seworICAgICAgICBpZDogJ3R5cGVhY2wnLCBsYWJlbDogZ2V0dGV4dCgn RGVmYXVsdCBUWVBFIHByaXZpbGVnZXMnKSwgdHlwZTogJ3RleHQnLAorICAgICAgICBncm91cDog Z2V0dGV4dCgnU2VjdXJpdHknKSwgbW9kZTogWydwcm9wZXJ0aWVzJ10sIG1pbl92ZXJzaW9uOiA5 MDIwMCwKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGlkOiAnZGF0YWNsJywgbGFiZWw6IGdl dHRleHQoJ1ByaXZpbGVnZXMnKSwgdHlwZTogJ2NvbGxlY3Rpb24nLAorICAgICAgICBzY2hlbWE6 IHRoaXMuZ2V0UHJpdmlsZWdlUm9sZVNjaGVtYShbJ0MnLCAnVCcsICdjJ10pLAorICAgICAgICB1 bmlxdWVDb2wgOiBbJ2dyYW50ZWUnLCAnZ3JhbnRvciddLAorICAgICAgICBlZGl0YWJsZTogZmFs c2UsCisgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdTZWN1cml0eScpLCBtb2RlOiBbJ2VkaXQnLCAn Y3JlYXRlJ10sCisgICAgICAgIGNhbkFkZDogdHJ1ZSwgY2FuRGVsZXRlOiB0cnVlLAorICAgICAg fSwKKyAgICAgIHsKKyAgICAgICAgaWQ6ICd2YXJpYWJsZXMnLCBsYWJlbDogJycsIHR5cGU6ICdj b2xsZWN0aW9uJywKKyAgICAgICAgc2NoZW1hOiB0aGlzLmdldFZhcmlhYmxlU2NoZW1hKCksCisg ICAgICAgIGVkaXRhYmxlOiBmYWxzZSwKKyAgICAgICAgZ3JvdXA6IGdldHRleHQoJ1BhcmFtZXRl cnMnKSwgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICBjYW5BZGQ6IHRydWUsIGNh bkVkaXQ6IGZhbHNlLCBjYW5EZWxldGU6IHRydWUsIGhhc1JvbGU6IHRydWUsCisgICAgICAgIG5v ZGU6ICdyb2xlJywKKyAgICAgIH0seworICAgICAgICBpZDogJ3NlY2xhYmVscycsIGxhYmVsOiBn ZXR0ZXh0KCdTZWN1cml0eSBsYWJlbHMnKSwgdHlwZTogJ2NvbGxlY3Rpb24nLAorICAgICAgICBz Y2hlbWE6IG5ldyBTZWNMYWJlbFNjaGVtYSgpLAorICAgICAgICBlZGl0YWJsZTogZmFsc2UsIGdy b3VwOiBnZXR0ZXh0KCdTZWN1cml0eScpLAorICAgICAgICBtb2RlOiBbJ2VkaXQnLCAnY3JlYXRl J10sCisgICAgICAgIGNhbkFkZDogdHJ1ZSwgY2FuRWRpdDogZmFsc2UsIGNhbkRlbGV0ZTogdHJ1 ZSwKKyAgICAgICAgdW5pcXVlQ29sIDogWydwcm92aWRlciddLAorICAgICAgICBtaW5fdmVyc2lv bjogOTAyMDAsCisgICAgICB9LHsKKyAgICAgICAgdHlwZTogJ25lc3RlZC10YWInLCBncm91cDog Z2V0dGV4dCgnRGVmYXVsdCBQcml2aWxlZ2VzJyksCisgICAgICAgIG1vZGU6IFsnZWRpdCddLAor ICAgICAgICBzY2hlbWE6IG5ldyBEZWZhdWx0UHJpdlNjaGVtYSh0aGlzLmdldFByaXZpbGVnZVJv bGVTY2hlbWEpLAorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgaWQ6ICdzY2hlbWFfcmVzJywg bGFiZWw6IGdldHRleHQoJ1NjaGVtYSByZXN0cmljdGlvbicpLAorICAgICAgICB0eXBlOiAnc2Vs ZWN0JywgZ3JvdXA6IGdldHRleHQoJ0FkdmFuY2VkJyksCisgICAgICAgIG1vZGU6IFsncHJvcGVy dGllcycsICdlZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICBoZWxwTWVzc2FnZTogZ2V0dGV4dCgn Tm90ZTogQ2hhbmdlcyB0byB0aGUgc2NoZW1hIHJlc3RyaWN0aW9uIHdpbGwgcmVxdWlyZSB0aGUg U2NoZW1hcyBub2RlIGluIHRoZSBicm93c2VyIHRvIGJlIHJlZnJlc2hlZCBiZWZvcmUgdGhleSB3 aWxsIGJlIHNob3duLicpLAorICAgICAgICBjb250cm9sUHJvcHM6IHsKKyAgICAgICAgICBtdWx0 aXBsZTogdHJ1ZSwgYWxsb3dDbGVhcjogZmFsc2UsIGNyZWF0YWJsZTogdHJ1ZSwKKyAgICAgICAg fSwgZGVwQ2hhbmdlOiAoc3RhdGUpPT57CisgICAgICAgICAgaWYoIV8uaXNVbmRlZmluZWQoc3Rh dGUub2lkKSkgeworICAgICAgICAgICAgb2JqLmluZm9ybVRleHQgPSB1bmRlZmluZWQ7CisgICAg ICAgICAgfQorCisgICAgICAgICAgaWYob2JqLm9yaWdEYXRhLnNjaGVtYV9yZXMgIT0gc3RhdGUu c2NoZW1hX3JlcykgeworICAgICAgICAgICAgb2JqLmluZm9ybVRleHQgPSBnZXR0ZXh0KAorICAg ICAgICAgICAgICAnUGxlYXNlIHJlZnJlc2ggdGhlIFNjaGVtYXMgbm9kZSB0byBtYWtlIGNoYW5n ZXMgdG8gdGhlIHNjaGVtYSByZXN0cmljdGlvbiB0YWtlIGVmZmVjdC4nCisgICAgICAgICAgICAp OworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBvYmouaW5mb3JtVGV4dCA9IHVuZGVm aW5lZDsKKyAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICB9LAorICAgIF07CisgIH0KK30K ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3N0 YXRpYy9qcy9wcml2aWxlZ2UudWkuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9zdGF0aWMvanMvcHJpdmlsZWdlLnVpLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMC4uMGMwYmQ4MTRlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvc3RhdGljL2pzL3ByaXZpbGVnZS51aS5q cwpAQCAtMCwwICsxLDczIEBACitpbXBvcnQgZ2V0dGV4dCBmcm9tICdzb3VyY2VzL2dldHRleHQn OworaW1wb3J0IEJhc2VVSVNjaGVtYSBmcm9tICdzb3VyY2VzL1NjaGVtYVZpZXcvYmFzZV9zY2hl bWEudWknOworaW1wb3J0IHsgZ2V0Tm9kZUxpc3RCeU5hbWUgfSBmcm9tICcuLi8uLi8uLi8uLi9z dGF0aWMvanMvbm9kZV9hamF4JzsKKworZXhwb3J0IGZ1bmN0aW9uIGdldE5vZGVQcml2aWxlZ2VS b2xlU2NoZW1hKG5vZGVPYmosIHRyZWVOb2RlSW5mbywgaXRlbU5vZGVEYXRhLCBwcml2aWxlZ2Vz KSB7CisgIGxldCBrZXlzID0gWydncmFudGVlJywgJ3ByaXZpbGVnZXMnLCAnZ3JhbnRvciddOwor ICByZXR1cm4gbmV3IFByaXZpbGVnZVJvbGVTY2hlbWEoCisgICAgKCk9PmdldE5vZGVMaXN0QnlO YW1lKCdyb2xlJywgdHJlZU5vZGVJbmZvLCBpdGVtTm9kZURhdGEsICgpPT50cnVlLCAocmVzKT0+ eworICAgICAgcmVzLnVuc2hpZnQoe2xhYmVsOiAnUFVCTElDJywgdmFsdWU6ICdQVUJMSUMnfSk7 CisgICAgICByZXR1cm4gcmVzOworICAgIH0pLAorICAgICgpPT5nZXROb2RlTGlzdEJ5TmFtZSgn cm9sZScsIHRyZWVOb2RlSW5mbywgaXRlbU5vZGVEYXRhKSwKKyAgICBrZXlzLAorICAgIHRyZWVO b2RlSW5mbywKKyAgICBwcml2aWxlZ2VzCisgICk7Cit9CisKK2V4cG9ydCBkZWZhdWx0IGNsYXNz IFByaXZpbGVnZVJvbGVTY2hlbWEgZXh0ZW5kcyBCYXNlVUlTY2hlbWEgeworICBjb25zdHJ1Y3Rv cihncmFudGVlT3B0aW9ucywgZ3JhbnRvck9wdGlvbnMsIGtleXMsIG5vZGVJbmZvLCBzdXBwb3J0 ZWRQcml2cykgeworICAgIHN1cGVyKHsKKyAgICAgIGdyYW50ZWU6IHVuZGVmaW5lZCwKKyAgICAg IGdyYW50b3I6IG5vZGVJbmZvPy5zZXJ2ZXI/LnVzZXI/Lm5hbWUsCisgICAgICBwcml2aWxlZ2Vz OiB1bmRlZmluZWQsCisgICAgfSk7CisgICAgdGhpcy5ncmFudGVlT3B0aW9ucyA9IGdyYW50ZWVP cHRpb25zOworICAgIHRoaXMuZ3JhbnRvck9wdGlvbnMgPSBncmFudG9yT3B0aW9uczsKKyAgICB0 aGlzLm5vZGVJbmZvID0gbm9kZUluZm87CisgICAgdGhpcy5zdXBwb3J0ZWRQcml2cyA9IHN1cHBv cnRlZFByaXZzIHx8IFtdOworICAgIHRoaXMua2V5cyA9IGtleXM7CisgIH0KKworICBnZXQgYmFz ZUZpZWxkcygpIHsKKyAgICBsZXQgb2JqID0gdGhpczsKKworICAgIHJldHVybiBbeworICAgICAg aWQ6ICdncmFudGVlJywgbGFiZWw6IGdldHRleHQoJ0dyYW50ZWUnKSwgdHlwZTondGV4dCcsCisg ICAgICBlZGl0YWJsZTogdHJ1ZSwKKyAgICAgIGNlbGw6ICgpPT4oeworICAgICAgICBjZWxsOiAn c2VsZWN0Jywgb3B0aW9uczogdGhpcy5ncmFudGVlT3B0aW9ucywKKyAgICAgICAgY29udHJvbFBy b3BzOiB7CisgICAgICAgICAgYWxsb3dDbGVhcjogZmFsc2UsCisgICAgICAgIH0KKyAgICAgIH0p LAorICAgICAgbm9FbXB0eTogdHJ1ZSwKKyAgICB9LAorICAgIHsKKyAgICAgIGlkOiAncHJpdmls ZWdlcycsIGxhYmVsOiBnZXR0ZXh0KCdQcml2aWxlZ2VzJyksCisgICAgICB0eXBlOiAndGV4dCcs IGdyb3VwOiBudWxsLAorICAgICAgY2VsbDogKCk9Pih7Y2VsbDogJ3ByaXZpbGVnZScsIGNvbnRy b2xQcm9wczogeworICAgICAgICBzdXBwb3J0ZWRQcml2czogdGhpcy5zdXBwb3J0ZWRQcml2cywK KyAgICAgIH19KSwgbWluV2lkdGg6IDI4MCwKKyAgICAgIGRpc2FibGVkIDogZnVuY3Rpb24oc3Rh dGUpIHsKKyAgICAgICAgcmV0dXJuICEoCisgICAgICAgICAgb2JqLm5vZGVJbmZvICYmCisgICAg ICAgICAgICBvYmoubm9kZUluZm8uc2VydmVyLnVzZXIubmFtZSA9PSBzdGF0ZVsnZ3JhbnRvcidd CisgICAgICAgICk7CisgICAgICB9LAorICAgIH0sCisgICAgeworICAgICAgaWQ6ICdncmFudG9y JywgbGFiZWw6IGdldHRleHQoJ0dyYW50b3InKSwgdHlwZTogJ3RleHQnLCByZWFkb25seTogdHJ1 ZSwKKyAgICAgIGNlbGw6ICgpPT4oe2NlbGw6ICdzZWxlY3QnLCBvcHRpb25zOiBvYmouZ3JhbnRv ck9wdGlvbnN9KSwKKyAgICB9XTsKKyAgfQorCisgIHZhbGlkYXRlKHN0YXRlLCBzZXRFcnJvcikg eworICAgIGlmKChzdGF0ZS5wcml2aWxlZ2VzIHx8IFtdKS5sZW5ndGggPD0gMCkgeworICAgICAg c2V0RXJyb3IoJ3ByaXZpbGVnZXMnLCBnZXR0ZXh0KCdBdCBsZWFzdCBvbmUgcHJpdmlsZWdlIHNo b3VsZCBiZSBzZWxlY3RlZC4nKSk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0 dXJuIGZhbHNlOworICB9Cit9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9zdGF0aWMvanMvc2VjX2xhYmVsLnVpLmpzIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvc3RhdGljL2pzL3NlY19sYWJlbC51aS5qcwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjRhMjlhYjMyYQotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3N0YXRp Yy9qcy9zZWNfbGFiZWwudWkuanMKQEAgLTAsMCArMSwyMyBAQAoraW1wb3J0IGdldHRleHQgZnJv bSAnc291cmNlcy9nZXR0ZXh0JzsKK2ltcG9ydCBCYXNlVUlTY2hlbWEgZnJvbSAnc291cmNlcy9T Y2hlbWFWaWV3L2Jhc2Vfc2NoZW1hLnVpJzsKKworZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VjTGFi ZWxTY2hlbWEgZXh0ZW5kcyBCYXNlVUlTY2hlbWEgeworICBjb25zdHJ1Y3RvcigpIHsKKyAgICBz dXBlcih7CisgICAgICBwcm92aWRlcjogdW5kZWZpbmVkLAorICAgICAgbGFiZWw6IHVuZGVmaW5l ZCwKKyAgICB9KTsKKyAgICB0aGlzLmtleXMgPSBbJ3Byb3ZpZGVyJywgJ2xhYmVsJ107CisgIH0K KworICBnZXQgYmFzZUZpZWxkcygpIHsKKyAgICByZXR1cm4gW3sKKyAgICAgIGlkOiAncHJvdmlk ZXInLCBsYWJlbDogZ2V0dGV4dCgnUHJvdmlkZXInKSwKKyAgICAgIHR5cGU6ICd0ZXh0JywgZWRp dGFibGU6IHRydWUsIGNlbGw6ICd0ZXh0JywKKyAgICB9LAorICAgIHsKKyAgICAgIGlkOiAnbGFi ZWwnLCBsYWJlbDogZ2V0dGV4dCgnU2VjdXJpdHkgbGFiZWwnKSwKKyAgICAgIHR5cGU6ICd0ZXh0 JywgZWRpdGFibGU6IHRydWUsIGNlbGw6ICd0ZXh0Jywgbm9FbXB0eTogdHJ1ZSwKKyAgICB9XTsK KyAgfQorfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvc3RhdGljL2pzL3NlcnZlci5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3N0YXRpYy9qcy9zZXJ2ZXIuanMKaW5kZXggZmZkNzE1ZjhlLi44MDg2ZGQ0 MDggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3N0YXRpYy9qcy9zZXJ2ZXIuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvc3RhdGljL2pzL3NlcnZlci5qcwpAQCAtNywyMyArNywyMiBAQAogLy8KIC8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vCiAKK2ltcG9ydCB7IGdldE5vZGVMaXN0QnlJZCB9IGZyb20gJy4uLy4uLy4uLy4uL3N0YXRp Yy9qcy9ub2RlX2FqYXgnOworaW1wb3J0IFNlcnZlclNjaGVtYSBmcm9tICcuL3NlcnZlci51aSc7 CisKIGRlZmluZSgncGdhZG1pbi5ub2RlLnNlcnZlcicsIFsKICAgJ3NvdXJjZXMvZ2V0dGV4dCcs ICdzb3VyY2VzL3VybF9mb3InLCAnanF1ZXJ5JywgJ3VuZGVyc2NvcmUnLCAnYmFja2JvbmUnLAog ICAnc291cmNlcy9wZ2FkbWluJywgJ3BnYWRtaW4uYnJvd3NlcicsCi0gICdwZ2FkbWluLnNlcnZl ci5zdXBwb3J0ZWRfc2VydmVycycsICdwZ2FkbWluLnVzZXJfbWFuYWdlbWVudC5jdXJyZW50X3Vz ZXInLAorICAncGdhZG1pbi51c2VyX21hbmFnZW1lbnQuY3VycmVudF91c2VyJywKICAgJ3BnYWRt aW4uYWxlcnRpZnlqcycsICdwZ2FkbWluLmJhY2tmb3JtJywKLSAgJ3NvdXJjZXMvYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvbW9kZWxfdmFsaWRhdGlvbicsCiAgICdwZ2FkbWluLmF1dGhl bnRpY2F0ZS5rZXJiZXJvcycsCiAgICdwZ2FkbWluLmJyb3dzZXIuc2VydmVyLnByaXZpbGVnZScs CiBdLCBmdW5jdGlvbigKICAgZ2V0dGV4dCwgdXJsX2ZvciwgJCwgXywgQmFja2JvbmUsIHBnQWRt aW4sIHBnQnJvd3NlciwKLSAgc3VwcG9ydGVkX3NlcnZlcnMsIGN1cnJlbnRfdXNlciwgQWxlcnRp ZnksIEJhY2tmb3JtLAotICBtb2RlbFZhbGlkYXRpb24sIEtlcmJlcm9zLAorICBjdXJyZW50X3Vz ZXIsIEFsZXJ0aWZ5LCBCYWNrZm9ybSwgS2VyYmVyb3MsCiApIHsKIAogICBpZiAoIXBnQnJvd3Nl ci5Ob2Rlc1snc2VydmVyJ10pIHsKLSAgICB2YXIgU1NMX01PREVTID0gWydwcmVmZXInLCAncmVx dWlyZScsICd2ZXJpZnktY2EnLCAndmVyaWZ5LWZ1bGwnXTsKLQogICAgIHBnQnJvd3Nlci5TZWNM YWJlbE1vZGVsID0gcGdCcm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5kKHsKICAgICAgIGRlZmF1bHRz OiB7CiAgICAgICAgIHByb3ZpZGVyOiB1bmRlZmluZWQsCkBAIC03MzgsNDY5ICs3MzcsMTUgQEAg ZGVmaW5lKCdwZ2FkbWluLm5vZGUuc2VydmVyJywgWwogICAgICAgICAgIHBnQnJvd3Nlci5wc3Fs LnBzcWxfdG9vbChkLCBpLCB0cnVlKTsKICAgICAgICAgfQogICAgICAgfSwKLSAgICAgIG1vZGVs OiBwZ0FkbWluLkJyb3dzZXIuTm9kZS5Nb2RlbC5leHRlbmQoewotICAgICAgICBkZWZhdWx0czog ewotICAgICAgICAgIGdpZDogdW5kZWZpbmVkLAotICAgICAgICAgIGlkOiB1bmRlZmluZWQsCi0g ICAgICAgICAgbmFtZTogJycsCi0gICAgICAgICAgc3NsbW9kZTogJ3ByZWZlcicsCi0gICAgICAg ICAgaG9zdDogJycsCi0gICAgICAgICAgaG9zdGFkZHI6ICcnLAotICAgICAgICAgIHBvcnQ6IDU0 MzIsCi0gICAgICAgICAgZGI6ICdwb3N0Z3JlcycsCi0gICAgICAgICAgdXNlcm5hbWU6IGN1cnJl bnRfdXNlci5uYW1lLAotICAgICAgICAgIHJvbGU6IG51bGwsCi0gICAgICAgICAgY29ubmVjdF9u b3c6IHRydWUsCi0gICAgICAgICAgcGFzc3dvcmQ6IHVuZGVmaW5lZCwKLSAgICAgICAgICBzYXZl X3Bhc3N3b3JkOiBmYWxzZSwKLSAgICAgICAgICBkYl9yZXM6ICcnLAotICAgICAgICAgIHBhc3Nm aWxlOiB1bmRlZmluZWQsCi0gICAgICAgICAgc3NsY29tcHJlc3Npb246IGZhbHNlLAotICAgICAg ICAgIHNzbGNlcnQ6IHVuZGVmaW5lZCwKLSAgICAgICAgICBzc2xrZXk6IHVuZGVmaW5lZCwKLSAg ICAgICAgICBzc2xyb290Y2VydDogdW5kZWZpbmVkLAotICAgICAgICAgIHNzbGNybDogdW5kZWZp bmVkLAotICAgICAgICAgIHNlcnZpY2U6IHVuZGVmaW5lZCwKLSAgICAgICAgICB1c2Vfc3NoX3R1 bm5lbDogMCwKLSAgICAgICAgICB0dW5uZWxfaG9zdDogdW5kZWZpbmVkLAotICAgICAgICAgIHR1 bm5lbF9wb3J0OiAyMiwKLSAgICAgICAgICB0dW5uZWxfdXNlcm5hbWU6IHVuZGVmaW5lZCwKLSAg ICAgICAgICB0dW5uZWxfaWRlbnRpdHlfZmlsZTogdW5kZWZpbmVkLAotICAgICAgICAgIHR1bm5l bF9wYXNzd29yZDogdW5kZWZpbmVkLAotICAgICAgICAgIHR1bm5lbF9hdXRoZW50aWNhdGlvbjog MCwKLSAgICAgICAgICBzYXZlX3R1bm5lbF9wYXNzd29yZDogZmFsc2UsCi0gICAgICAgICAgY29u bmVjdF90aW1lb3V0OiAxMCwKLSAgICAgICAgfSwKLSAgICAgICAgLy8gRGVmYXVsdCB2YWx1ZXMh Ci0gICAgICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGF0dHJzLCBhcmdzKSB7Ci0gICAgICAgICAg dmFyIGlzTmV3ID0gKF8uc2l6ZShhdHRycykgPT09IDApOwotCi0gICAgICAgICAgaWYgKGlzTmV3 KSB7Ci0gICAgICAgICAgICB0aGlzLnNldCh7J2dpZCc6IGFyZ3Mubm9kZV9pbmZvWydzZXJ2ZXJf Z3JvdXAnXS5faWR9KTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcGdBZG1pbi5Ccm93c2VyLk5v ZGUuTW9kZWwucHJvdG90eXBlLmluaXRpYWxpemUuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKLSAg ICAgICAgfSwKLSAgICAgICAgc2NoZW1hOiBbewotICAgICAgICAgIGlkOiAnaWQnLCBsYWJlbDog Z2V0dGV4dCgnSUQnKSwgdHlwZTogJ2ludCcsIG1vZGU6IFsncHJvcGVydGllcyddLAotICAgICAg ICAgIHZpc2libGU6IGZ1bmN0aW9uKG1vZGVsKXsKLSAgICAgICAgICAgIGlmIChtb2RlbC5hdHRy aWJ1dGVzLnVzZXJfaWQgIT0gY3VycmVudF91c2VyLmlkICYmIHBnQWRtaW4uc2VydmVyX21vZGUg PT0gJ1RydWUnKQotICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICByZXR1 cm4gdHJ1ZTsKLSAgICAgICAgICB9LAotICAgICAgICB9LHsKLSAgICAgICAgICBpZDogJ25hbWUn LCBsYWJlbDogZ2V0dGV4dCgnTmFtZScpLCB0eXBlOiAndGV4dCcsCi0gICAgICAgICAgbW9kZTog Wydwcm9wZXJ0aWVzJywgJ2VkaXQnLCAnY3JlYXRlJ10sIGRpc2FibGVkOiAnaXNTaGFyZWQnLAot ICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgaWQ6ICdnaWQnLCBsYWJlbDogZ2V0dGV4 dCgnU2VydmVyIGdyb3VwJyksIHR5cGU6ICdpbnQnLAotICAgICAgICAgIGNvbnRyb2w6ICdub2Rl LWxpc3QtYnktaWQnLCBub2RlOiAnc2VydmVyX2dyb3VwJywKLSAgICAgICAgICBtb2RlOiBbJ2Ny ZWF0ZScsICdlZGl0J10sIHNlbGVjdDI6IHthbGxvd0NsZWFyOiBmYWxzZX0sIGRpc2FibGVkOiAn aXNTaGFyZWQnLAotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgaWQ6ICdzZXJ2ZXJf b3duZXInLCBsYWJlbDogZ2V0dGV4dCgnU2hhcmVkIFNlcnZlciBPd25lcicpLCB0eXBlOiAndGV4 dCcsIG1vZGU6IFsncHJvcGVydGllcyddLAotICAgICAgICAgIHZpc2libGU6ZnVuY3Rpb24obW9k ZWwpewotICAgICAgICAgICAgdmFyIHNlcnZlck93bmVyID0gbW9kZWwuYXR0cmlidXRlcy51c2Vy X2lkOwotICAgICAgICAgICAgaWYgKG1vZGVsLmF0dHJpYnV0ZXMuc2hhcmVkICYmIHNlcnZlck93 bmVyICE9IGN1cnJlbnRfdXNlci5pZCAmJiBwZ0FkbWluLnNlcnZlcl9tb2RlID09ICdUcnVlJyl7 Ci0gICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg cmV0dXJuIGZhbHNlOwotCi0gICAgICAgICAgfSwKLSAgICAgICAgfSwKLSAgICAgICAgewotICAg ICAgICAgIGlkOiAnc2VydmVyX3R5cGUnLCBsYWJlbDogZ2V0dGV4dCgnU2VydmVyIHR5cGUnKSwg dHlwZTogJ29wdGlvbnMnLAotICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcyddLCB2aXNpYmxl OiAnaXNDb25uZWN0ZWQnLAotICAgICAgICAgICdvcHRpb25zJzogc3VwcG9ydGVkX3NlcnZlcnMs Ci0gICAgICAgIH0sewotICAgICAgICAgIGlkOiAnY29ubmVjdGVkJywgbGFiZWw6IGdldHRleHQo J0Nvbm5lY3RlZD8nKSwgdHlwZTogJ3N3aXRjaCcsCi0gICAgICAgICAgbW9kZTogWydwcm9wZXJ0 aWVzJ10sIGdyb3VwOiBnZXR0ZXh0KCdDb25uZWN0aW9uJyksICdvcHRpb25zJzogewotICAgICAg ICAgICAgJ29uVGV4dCc6ICBnZXR0ZXh0KCdUcnVlJyksICdvZmZUZXh0JzogIGdldHRleHQoJ0Zh bHNlJyksICdzaXplJzogJ21pbmknLAotICAgICAgICAgIH0sCi0gICAgICAgIH0sewotICAgICAg ICAgIGlkOiAndmVyc2lvbicsIGxhYmVsOiBnZXR0ZXh0KCdWZXJzaW9uJyksIHR5cGU6ICd0ZXh0 JywgZ3JvdXA6IG51bGwsCi0gICAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJ10sIHZpc2libGU6 ICdpc0Nvbm5lY3RlZCcsCi0gICAgICAgIH0sewotICAgICAgICAgIGlkOiAnYmdjb2xvcicsIGxh YmVsOiBnZXR0ZXh0KCdCYWNrZ3JvdW5kJyksIHR5cGU6ICdjb2xvcicsCi0gICAgICAgICAgZ3Jv dXA6IG51bGwsIG1vZGU6IFsnZWRpdCcsICdjcmVhdGUnXSwgZGlzYWJsZWQ6ICdpc2ZnQ29sb3JT ZXQnLAotICAgICAgICAgIGRlcHM6IFsnZmdjb2xvciddLAotICAgICAgICB9LHsKLSAgICAgICAg ICBpZDogJ2ZnY29sb3InLCBsYWJlbDogZ2V0dGV4dCgnRm9yZWdyb3VuZCcpLCB0eXBlOiAnY29s b3InLAotICAgICAgICAgIGdyb3VwOiBudWxsLCBtb2RlOiBbJ2VkaXQnLCAnY3JlYXRlJ10sIGRp c2FibGVkOiAnaXNDb25uZWN0ZWQnLAotICAgICAgICB9LHsKLSAgICAgICAgICBpZDogJ2Nvbm5l Y3Rfbm93JywgY29udHJvbExhYmVsOiBnZXR0ZXh0KCdDb25uZWN0IG5vdz8nKSwgdHlwZTogJ2No ZWNrYm94JywKLSAgICAgICAgICBncm91cDogbnVsbCwgbW9kZTogWydjcmVhdGUnXSwKLSAgICAg ICAgfSx7Ci0gICAgICAgICAgaWQ6ICdzaGFyZWQnLCBsYWJlbDogZ2V0dGV4dCgnU2hhcmVkPycp LCB0eXBlOiAnc3dpdGNoJywKLSAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3JlYXRl JywgJ2VkaXQnXSwgJ29wdGlvbnMnOiB7J3NpemUnOiAnbWluaSd9LAotICAgICAgICAgIHJlYWRv bmx5OiBmdW5jdGlvbihtb2RlbCl7Ci0gICAgICAgICAgICB2YXIgc2VydmVyT3duZXIgPSBtb2Rl bC5hdHRyaWJ1dGVzLnVzZXJfaWQ7Ci0gICAgICAgICAgICBpZiAoIW1vZGVsLmlzTmV3KCkgJiYg c2VydmVyT3duZXIgIT0gY3VycmVudF91c2VyLmlkKXsKLSAgICAgICAgICAgICAgcmV0dXJuIHRy dWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAg fSx2aXNpYmxlOiBmdW5jdGlvbigpewotICAgICAgICAgICAgaWYgKGN1cnJlbnRfdXNlci5pc19h ZG1pbiAmJiBwZ0FkbWluLnNlcnZlcl9tb2RlID09ICdUcnVlJykKLSAgICAgICAgICAgICAgcmV0 dXJuIHRydWU7Ci0KLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICB9LAotICAg ICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgaWQ6ICdjb21tZW50JywgbGFiZWw6IGdldHRl eHQoJ0NvbW1lbnRzJyksIHR5cGU6ICdtdWx0aWxpbmUnLCBncm91cDogbnVsbCwKLSAgICAgICAg ICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwKLSAgICAgICAgfSx7Ci0g ICAgICAgICAgaWQ6ICdob3N0JywgbGFiZWw6IGdldHRleHQoJ0hvc3QgbmFtZS9hZGRyZXNzJyks IHR5cGU6ICd0ZXh0JywgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwKLSAgICAgICAgICBt b2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSxkaXNhYmxlZDogJ2lzU2hhcmVk JywKLSAgICAgICAgICBjb250cm9sOiBCYWNrZm9ybS5JbnB1dENvbnRyb2wuZXh0ZW5kKHsKLSAg ICAgICAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgICAgQmFja2Zvcm0u SW5wdXRDb250cm9sLnByb3RvdHlwZS5vbkNoYW5nZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwot ICAgICAgICAgICAgICBpZiAoIXRoaXMubW9kZWwgfHwgIXRoaXMubW9kZWwuY2hhbmdlZCkgewot ICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuaW5mb3JtX3RleHQgPSB1bmRlZmluZWQ7Ci0gICAg ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgaWYo dGhpcy5tb2RlbC5vcmlnU2Vzc0F0dHJzLmhvc3QgIT0gdGhpcy5tb2RlbC5jaGFuZ2VkLmhvc3Qg JiYgIXRoaXMubW9kZWwuaXNOZXcoKSAmJiB0aGlzLm1vZGVsLmdldCgnY29ubmVjdGVkJykpCi0g ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLmluZm9ybV90ZXh0ID0g Z2V0dGV4dCgKLSAgICAgICAgICAgICAgICAgICdUbyBhcHBseSBjaGFuZ2VzIHRvIHRoZSBjb25u ZWN0aW9uIGNvbmZpZ3VyYXRpb24sIHBsZWFzZSBkaXNjb25uZWN0IGZyb20gdGhlIHNlcnZlciBh bmQgdGhlbiByZWNvbm5lY3QuJwotICAgICAgICAgICAgICAgICk7Ci0gICAgICAgICAgICAgIH0g ZWxzZSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5pbmZvcm1fdGV4dCA9IHVuZGVmaW5l ZDsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSwKLSAgICAgICAgICB9KSwKLSAgICAg ICAgfSx7Ci0gICAgICAgICAgaWQ6ICdwb3J0JywgbGFiZWw6IGdldHRleHQoJ1BvcnQnKSwgdHlw ZTogJ2ludCcsIGdyb3VwOiBnZXR0ZXh0KCdDb25uZWN0aW9uJyksCi0gICAgICAgICAgbW9kZTog Wydwcm9wZXJ0aWVzJywgJ2VkaXQnLCAnY3JlYXRlJ10sIG1pbjogMSwgbWF4OiA2NTUzNSwgZGlz YWJsZWQ6ICdpc1NoYXJlZCcsCi0gICAgICAgICAgY29udHJvbDogQmFja2Zvcm0uSW5wdXRDb250 cm9sLmV4dGVuZCh7Ci0gICAgICAgICAgICBvbkNoYW5nZTogZnVuY3Rpb24oKSB7Ci0gICAgICAg ICAgICAgIEJhY2tmb3JtLklucHV0Q29udHJvbC5wcm90b3R5cGUub25DaGFuZ2UuYXBwbHkodGhp cywgYXJndW1lbnRzKTsKLSAgICAgICAgICAgICAgaWYgKCF0aGlzLm1vZGVsIHx8ICF0aGlzLm1v ZGVsLmNoYW5nZWQpIHsKLSAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLmluZm9ybV90ZXh0ID0g dW5kZWZpbmVkOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgfQotCi0g ICAgICAgICAgICAgIGlmKHRoaXMubW9kZWwub3JpZ1Nlc3NBdHRycy5wb3J0ICE9IHRoaXMubW9k ZWwuY2hhbmdlZC5wb3J0ICYmICF0aGlzLm1vZGVsLmlzTmV3KCkgJiYgdGhpcy5tb2RlbC5nZXQo J2Nvbm5lY3RlZCcpKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdGhpcy5tb2Rl bC5pbmZvcm1fdGV4dCA9IGdldHRleHQoCi0gICAgICAgICAgICAgICAgICAnVG8gYXBwbHkgY2hh bmdlcyB0byB0aGUgY29ubmVjdGlvbiBjb25maWd1cmF0aW9uLCBwbGVhc2UgZGlzY29ubmVjdCBm cm9tIHRoZSBzZXJ2ZXIgYW5kIHRoZW4gcmVjb25uZWN0LicKLSAgICAgICAgICAgICAgICApOwot ICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuaW5mb3Jt X3RleHQgPSB1bmRlZmluZWQ7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0sCi0gICAg ICAgICAgfSksCi0gICAgICAgIH0sewotICAgICAgICAgIGlkOiAnZGInLCBsYWJlbDogZ2V0dGV4 dCgnTWFpbnRlbmFuY2UgZGF0YWJhc2UnKSwgdHlwZTogJ3RleHQnLCBncm91cDogZ2V0dGV4dCgn Q29ubmVjdGlvbicpLAotICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2Ny ZWF0ZSddLCByZWFkb25seTogJ2lzQ29ubmVjdGVkJyxkaXNhYmxlZDogJ2lzU2hhcmVkJywKLSAg ICAgICAgfSx7Ci0gICAgICAgICAgaWQ6ICd1c2VybmFtZScsIGxhYmVsOiBnZXR0ZXh0KCdVc2Vy bmFtZScpLCB0eXBlOiAndGV4dCcsIGdyb3VwOiBnZXR0ZXh0KCdDb25uZWN0aW9uJyksCi0gICAg ICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2VkaXQnLCAnY3JlYXRlJ10sCi0gICAgICAgICAg Y29udHJvbDogQmFja2Zvcm0uSW5wdXRDb250cm9sLmV4dGVuZCh7Ci0gICAgICAgICAgICBvbkNo YW5nZTogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgIEJhY2tmb3JtLklucHV0Q29udHJvbC5w cm90b3R5cGUub25DaGFuZ2UuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKLSAgICAgICAgICAgICAg aWYgKCF0aGlzLm1vZGVsIHx8ICF0aGlzLm1vZGVsLmNoYW5nZWQpIHsKLSAgICAgICAgICAgICAg ICB0aGlzLm1vZGVsLmluZm9ybV90ZXh0ID0gdW5kZWZpbmVkOwotICAgICAgICAgICAgICAgIHJl dHVybjsKLSAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgIGlmKHRoaXMubW9kZWwub3Jp Z1Nlc3NBdHRycy51c2VybmFtZSAhPSB0aGlzLm1vZGVsLmNoYW5nZWQudXNlcm5hbWUgJiYgIXRo aXMubW9kZWwuaXNOZXcoKSAmJiB0aGlzLm1vZGVsLmdldCgnY29ubmVjdGVkJykpCi0gICAgICAg ICAgICAgIHsKLSAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLmluZm9ybV90ZXh0ID0gZ2V0dGV4 dCgKLSAgICAgICAgICAgICAgICAgICdUbyBhcHBseSBjaGFuZ2VzIHRvIHRoZSBjb25uZWN0aW9u IGNvbmZpZ3VyYXRpb24sIHBsZWFzZSBkaXNjb25uZWN0IGZyb20gdGhlIHNlcnZlciBhbmQgdGhl biByZWNvbm5lY3QuJwotICAgICAgICAgICAgICAgICk7Ci0gICAgICAgICAgICAgIH0gZWxzZSB7 Ci0gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5pbmZvcm1fdGV4dCA9IHVuZGVmaW5lZDsKLSAg ICAgICAgICAgICAgfQotICAgICAgICAgICAgfSwKLSAgICAgICAgICB9KSwKLSAgICAgICAgfSx7 Ci0gICAgICAgICAgaWQ6ICdrZXJiZXJvc19jb25uJywgbGFiZWw6IGdldHRleHQoJ0tlcmJlcm9z IGF1dGhlbnRpY2F0aW9uPycpLCB0eXBlOiAnc3dpdGNoJywKLSAgICAgICAgICBncm91cDogZ2V0 dGV4dCgnQ29ubmVjdGlvbicpLCAnb3B0aW9ucyc6IHsKLSAgICAgICAgICAgICdvblRleHQnOiAg Z2V0dGV4dCgnVHJ1ZScpLCAnb2ZmVGV4dCc6ICBnZXR0ZXh0KCdGYWxzZScpLCAnc2l6ZSc6ICdt aW5pJywKLSAgICAgICAgICB9Ci0gICAgICAgIH0sewotICAgICAgICAgIGlkOiAnZ3NzX2F1dGhl bnRpY2F0ZWQnLCBsYWJlbDogZ2V0dGV4dCgnR1NTIGF1dGhlbnRpY2F0ZWQ/JyksIHR5cGU6ICdz d2l0Y2gnLAotICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdDb25uZWN0aW9uJyksICdvcHRpb25z JzogewotICAgICAgICAgICAgJ29uVGV4dCc6ICBnZXR0ZXh0KCdUcnVlJyksICdvZmZUZXh0Jzog IGdldHRleHQoJ0ZhbHNlJyksICdzaXplJzogJ21pbmknLAotICAgICAgICAgIH0sIG1vZGU6IFsn cHJvcGVydGllcyddLCB2aXNpYmxlOiAnaXNDb25uZWN0ZWQnCi0gICAgICAgIH0sewotICAgICAg ICAgIGlkOiAnZ3NzX2VuY3J5cHRlZCcsIGxhYmVsOiBnZXR0ZXh0KCdHU1MgZW5jcnlwdGVkPycp LCB0eXBlOiAnc3dpdGNoJywKLSAgICAgICAgICBncm91cDogZ2V0dGV4dCgnQ29ubmVjdGlvbicp LCAnb3B0aW9ucyc6IHsKLSAgICAgICAgICAgICdvblRleHQnOiAgZ2V0dGV4dCgnVHJ1ZScpLCAn b2ZmVGV4dCc6ICBnZXR0ZXh0KCdGYWxzZScpLCAnc2l6ZSc6ICdtaW5pJywKLSAgICAgICAgICB9 LCBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwgdmlzaWJsZTogJ2lzQ29ubmVjdGVkJywKLSAgICAgICAg fSx7Ci0gICAgICAgICAgaWQ6ICdwYXNzd29yZCcsIGxhYmVsOiBnZXR0ZXh0KCdQYXNzd29yZCcp LCB0eXBlOiAncGFzc3dvcmQnLCBtYXhsZW5ndGg6IG51bGwsCi0gICAgICAgICAgZ3JvdXA6IGdl dHRleHQoJ0Nvbm5lY3Rpb24nKSwgY29udHJvbDogJ2lucHV0JywgbW9kZTogWydjcmVhdGUnXSwK LSAgICAgICAgICBkZXBzOiBbJ2Nvbm5lY3Rfbm93JywgJ2tlcmJlcm9zX2Nvbm4nXSwKLSAgICAg ICAgICB2aXNpYmxlOiBmdW5jdGlvbihtb2RlbCkgewotICAgICAgICAgICAgcmV0dXJuIG1vZGVs LmdldCgnY29ubmVjdF9ub3cnKSAmJiBtb2RlbC5pc05ldygpOwotICAgICAgICAgIH0sCi0gICAg ICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKG1vZGVsKSB7Ci0gICAgICAgICAgICBpZiAobW9kZWwu Z2V0KCdrZXJiZXJvc19jb25uJykpCi0gICAgICAgICAgICAgIHJldHVybiB0cnVlOwotCi0gICAg ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgfSwKLSAgICAgICAgfSx7Ci0gICAgICAg ICAgaWQ6ICdzYXZlX3Bhc3N3b3JkJywgY29udHJvbExhYmVsOiBnZXR0ZXh0KCdTYXZlIHBhc3N3 b3JkPycpLAotICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsIGdyb3VwOiBnZXR0ZXh0KCdDb25u ZWN0aW9uJyksIG1vZGU6IFsnY3JlYXRlJ10sCi0gICAgICAgICAgZGVwczogWydjb25uZWN0X25v dycsICdrZXJiZXJvc19jb25uJ10sIHZpc2libGU6IGZ1bmN0aW9uKG1vZGVsKSB7Ci0gICAgICAg ICAgICByZXR1cm4gbW9kZWwuZ2V0KCdjb25uZWN0X25vdycpICYmIG1vZGVsLmlzTmV3KCk7Ci0g ICAgICAgICAgfSwKLSAgICAgICAgICBkaXNhYmxlZDogZnVuY3Rpb24obW9kZWwpIHsKLSAgICAg ICAgICAgIGlmICghY3VycmVudF91c2VyLmFsbG93X3NhdmVfcGFzc3dvcmQgfHwgbW9kZWwuZ2V0 KCdrZXJiZXJvc19jb25uJykpCi0gICAgICAgICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgICAg ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgfSwKLSAgICAgICAgfSx7Ci0gICAgICAgICAg aWQ6ICdyb2xlJywgbGFiZWw6IGdldHRleHQoJ1JvbGUnKSwgdHlwZTogJ3RleHQnLCBncm91cDog Z2V0dGV4dCgnQ29ubmVjdGlvbicpLAotICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdl ZGl0JywgJ2NyZWF0ZSddLCByZWFkb25seTogJ2lzQ29ubmVjdGVkJywKLSAgICAgICAgfSx7Ci0g ICAgICAgICAgaWQ6ICdzZXJ2aWNlJywgbGFiZWw6IGdldHRleHQoJ1NlcnZpY2UnKSwgdHlwZTog J3RleHQnLAotICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSdd LCByZWFkb25seTogJ2lzQ29ubmVjdGVkJywKLSAgICAgICAgICBncm91cDogZ2V0dGV4dCgnQ29u bmVjdGlvbicpLAotICAgICAgICB9LHsKLSAgICAgICAgICBpZDogJ3NzbG1vZGUnLCBsYWJlbDog Z2V0dGV4dCgnU1NMIG1vZGUnKSwgY29udHJvbDogJ3NlbGVjdDInLCBncm91cDogZ2V0dGV4dCgn U1NMJyksCi0gICAgICAgICAgc2VsZWN0MjogewotICAgICAgICAgICAgYWxsb3dDbGVhcjogZmFs c2UsCi0gICAgICAgICAgICBtaW5pbXVtUmVzdWx0c0ZvclNlYXJjaDogSW5maW5pdHksCi0gICAg ICAgICAgfSwKLSAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUn XSwgZGlzYWJsZWQ6ICdpc0Nvbm5lY3RlZCcsCi0gICAgICAgICAgJ29wdGlvbnMnOiBbCi0gICAg ICAgICAgICB7bGFiZWw6IGdldHRleHQoJ0FsbG93JyksIHZhbHVlOiAnYWxsb3cnfSwKLSAgICAg ICAgICAgIHtsYWJlbDogZ2V0dGV4dCgnUHJlZmVyJyksIHZhbHVlOiAncHJlZmVyJ30sCi0gICAg ICAgICAgICB7bGFiZWw6IGdldHRleHQoJ1JlcXVpcmUnKSwgdmFsdWU6ICdyZXF1aXJlJ30sCi0g ICAgICAgICAgICB7bGFiZWw6IGdldHRleHQoJ0Rpc2FibGUnKSwgdmFsdWU6ICdkaXNhYmxlJ30s Ci0gICAgICAgICAgICB7bGFiZWw6IGdldHRleHQoJ1ZlcmlmeS1DQScpLCB2YWx1ZTogJ3Zlcmlm eS1jYSd9LAotICAgICAgICAgICAge2xhYmVsOiBnZXR0ZXh0KCdWZXJpZnktRnVsbCcpLCB2YWx1 ZTogJ3ZlcmlmeS1mdWxsJ30sCi0gICAgICAgICAgXSwKLSAgICAgICAgfSx7Ci0gICAgICAgICAg aWQ6ICdzc2xjZXJ0JywgbGFiZWw6IGdldHRleHQoJ0NsaWVudCBjZXJ0aWZpY2F0ZScpLCB0eXBl OiAndGV4dCcsCi0gICAgICAgICAgZ3JvdXA6IGdldHRleHQoJ1NTTCcpLCBtb2RlOiBbJ2VkaXQn LCAnY3JlYXRlJ10sCi0gICAgICAgICAgZGlzYWJsZWQ6ICdpc1NTTCcsIHJlYWRvbmx5OiAnaXND b25uZWN0ZWQnLCBjb250cm9sOiBCYWNrZm9ybS5GaWxlQ29udHJvbCwKLSAgICAgICAgICBkaWFs b2dfdHlwZTogJ3NlbGVjdF9maWxlJywgc3VwcF90eXBlczogWycqJ10sCi0gICAgICAgICAgZGVw czogWydzc2xtb2RlJ10sCi0gICAgICAgIH0sewotICAgICAgICAgIGlkOiAnc3Nsa2V5JywgbGFi ZWw6IGdldHRleHQoJ0NsaWVudCBjZXJ0aWZpY2F0ZSBrZXknKSwgdHlwZTogJ3RleHQnLAotICAg ICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdTU0wnKSwgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLAot ICAgICAgICAgIGRpc2FibGVkOiAnaXNTU0wnLCByZWFkb25seTogJ2lzQ29ubmVjdGVkJywgY29u dHJvbDogQmFja2Zvcm0uRmlsZUNvbnRyb2wsCi0gICAgICAgICAgZGlhbG9nX3R5cGU6ICdzZWxl Y3RfZmlsZScsIHN1cHBfdHlwZXM6IFsnKiddLAotICAgICAgICAgIGRlcHM6IFsnc3NsbW9kZSdd LAotICAgICAgICB9LHsKLSAgICAgICAgICBpZDogJ3NzbHJvb3RjZXJ0JywgbGFiZWw6IGdldHRl eHQoJ1Jvb3QgY2VydGlmaWNhdGUnKSwgdHlwZTogJ3RleHQnLAotICAgICAgICAgIGdyb3VwOiBn ZXR0ZXh0KCdTU0wnKSwgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLAotICAgICAgICAgIGRpc2Fi bGVkOiAnaXNTU0wnLCByZWFkb25seTogJ2lzQ29ubmVjdGVkJywgY29udHJvbDogQmFja2Zvcm0u RmlsZUNvbnRyb2wsCi0gICAgICAgICAgZGlhbG9nX3R5cGU6ICdzZWxlY3RfZmlsZScsIHN1cHBf dHlwZXM6IFsnKiddLAotICAgICAgICAgIGRlcHM6IFsnc3NsbW9kZSddLAotICAgICAgICB9LHsK LSAgICAgICAgICBpZDogJ3NzbGNybCcsIGxhYmVsOiBnZXR0ZXh0KCdDZXJ0aWZpY2F0ZSByZXZv Y2F0aW9uIGxpc3QnKSwgdHlwZTogJ3RleHQnLAotICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdT U0wnKSwgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLAotICAgICAgICAgIGRpc2FibGVkOiAnaXNT U0wnLCByZWFkb25seTogJ2lzQ29ubmVjdGVkJywgY29udHJvbDogQmFja2Zvcm0uRmlsZUNvbnRy b2wsCi0gICAgICAgICAgZGlhbG9nX3R5cGU6ICdzZWxlY3RfZmlsZScsIHN1cHBfdHlwZXM6IFsn KiddLAotICAgICAgICAgIGRlcHM6IFsnc3NsbW9kZSddLAotICAgICAgICB9LHsKLSAgICAgICAg ICBpZDogJ3NzbGNvbXByZXNzaW9uJywgbGFiZWw6IGdldHRleHQoJ1NTTCBjb21wcmVzc2lvbj8n KSwgdHlwZTogJ3N3aXRjaCcsCi0gICAgICAgICAgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLCBn cm91cDogZ2V0dGV4dCgnU1NMJyksCi0gICAgICAgICAgJ29wdGlvbnMnOiB7J3NpemUnOiAnbWlu aSd9LAotICAgICAgICAgIGRlcHM6IFsnc3NsbW9kZSddLCBkaXNhYmxlZDogJ2lzU1NMJywgcmVh ZG9ubHk6ICdpc0Nvbm5lY3RlZCcsCi0gICAgICAgIH0sewotICAgICAgICAgIGlkOiAnc3NsY2Vy dCcsIGxhYmVsOiBnZXR0ZXh0KCdDbGllbnQgY2VydGlmaWNhdGUnKSwgdHlwZTogJ3RleHQnLAot ICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdTU0wnKSwgbW9kZTogWydwcm9wZXJ0aWVzJ10sCi0g ICAgICAgICAgZGVwczogWydzc2xtb2RlJ10sCi0gICAgICAgICAgdmlzaWJsZTogZnVuY3Rpb24o bW9kZWwpIHsKLSAgICAgICAgICAgIHZhciBzc2xjZXJ0ID0gbW9kZWwuZ2V0KCdzc2xjZXJ0Jyk7 Ci0gICAgICAgICAgICByZXR1cm4gIV8uaXNVbmRlZmluZWQoc3NsY2VydCkgJiYgIV8uaXNOdWxs KHNzbGNlcnQpOwotICAgICAgICAgIH0sCi0gICAgICAgIH0sewotICAgICAgICAgIGlkOiAnc3Ns a2V5JywgbGFiZWw6IGdldHRleHQoJ0NsaWVudCBjZXJ0aWZpY2F0ZSBrZXknKSwgdHlwZTogJ3Rl eHQnLAotICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdTU0wnKSwgbW9kZTogWydwcm9wZXJ0aWVz J10sCi0gICAgICAgICAgZGVwczogWydzc2xtb2RlJ10sCi0gICAgICAgICAgdmlzaWJsZTogZnVu Y3Rpb24obW9kZWwpIHsKLSAgICAgICAgICAgIHZhciBzc2xrZXkgPSBtb2RlbC5nZXQoJ3NzbGtl eScpOwotICAgICAgICAgICAgcmV0dXJuICFfLmlzVW5kZWZpbmVkKHNzbGtleSkgJiYgIV8uaXNO dWxsKHNzbGtleSk7Ci0gICAgICAgICAgfSwKLSAgICAgICAgfSx7Ci0gICAgICAgICAgaWQ6ICdz c2xyb290Y2VydCcsIGxhYmVsOiBnZXR0ZXh0KCdSb290IGNlcnRpZmljYXRlJyksIHR5cGU6ICd0 ZXh0JywKLSAgICAgICAgICBncm91cDogZ2V0dGV4dCgnU1NMJyksIG1vZGU6IFsncHJvcGVydGll cyddLAotICAgICAgICAgIGRlcHM6IFsnc3NsbW9kZSddLAotICAgICAgICAgIHZpc2libGU6IGZ1 bmN0aW9uKG1vZGVsKSB7Ci0gICAgICAgICAgICB2YXIgc3Nscm9vdGNlcnQgPSBtb2RlbC5nZXQo J3NzbHJvb3RjZXJ0Jyk7Ci0gICAgICAgICAgICByZXR1cm4gIV8uaXNVbmRlZmluZWQoc3Nscm9v dGNlcnQpICYmICFfLmlzTnVsbChzc2xyb290Y2VydCk7Ci0gICAgICAgICAgfSwKLSAgICAgICAg fSx7Ci0gICAgICAgICAgaWQ6ICdzc2xjcmwnLCBsYWJlbDogZ2V0dGV4dCgnQ2VydGlmaWNhdGUg cmV2b2NhdGlvbiBsaXN0JyksIHR5cGU6ICd0ZXh0JywKLSAgICAgICAgICBncm91cDogZ2V0dGV4 dCgnU1NMJyksIG1vZGU6IFsncHJvcGVydGllcyddLAotICAgICAgICAgIGRlcHM6IFsnc3NsbW9k ZSddLAotICAgICAgICAgIHZpc2libGU6IGZ1bmN0aW9uKG1vZGVsKSB7Ci0gICAgICAgICAgICB2 YXIgc3NsY3JsID0gbW9kZWwuZ2V0KCdzc2xjcmwnKTsKLSAgICAgICAgICAgIHJldHVybiAhXy5p c1VuZGVmaW5lZChzc2xjcmwpICYmICFfLmlzTnVsbChzc2xjcmwpOwotICAgICAgICAgIH0sCi0g ICAgICAgIH0sewotICAgICAgICAgIGlkOiAnc3NsY29tcHJlc3Npb24nLCBsYWJlbDogZ2V0dGV4 dCgnU1NMIGNvbXByZXNzaW9uPycpLCB0eXBlOiAnc3dpdGNoJywKLSAgICAgICAgICBtb2RlOiBb J3Byb3BlcnRpZXMnXSwgZ3JvdXA6IGdldHRleHQoJ1NTTCcpLAotICAgICAgICAgICdvcHRpb25z JzogeydzaXplJzogJ21pbmknfSwKLSAgICAgICAgICBkZXBzOiBbJ3NzbG1vZGUnXSwgdmlzaWJs ZTogZnVuY3Rpb24obW9kZWwpIHsKLSAgICAgICAgICAgIHZhciBzc2xtb2RlID0gbW9kZWwuZ2V0 KCdzc2xtb2RlJyk7Ci0gICAgICAgICAgICByZXR1cm4gXy5pbmRleE9mKFNTTF9NT0RFUywgc3Ns bW9kZSkgIT0gLTE7Ci0gICAgICAgICAgfSwKLSAgICAgICAgfSx7Ci0gICAgICAgICAgaWQ6ICd1 c2Vfc3NoX3R1bm5lbCcsIGxhYmVsOiBnZXR0ZXh0KCdVc2UgU1NIIHR1bm5lbGluZycpLCB0eXBl OiAnc3dpdGNoJywKLSAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVh dGUnXSwgZ3JvdXA6IGdldHRleHQoJ1NTSCBUdW5uZWwnKSwKLSAgICAgICAgICAnb3B0aW9ucyc6 IHsnc2l6ZSc6ICdtaW5pJ30sCi0gICAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKG1vZGVsKSB7 Ci0gICAgICAgICAgICBpZiAoIXBnQWRtaW4uQnJvd3Nlci51dGlscy5zdXBwb3J0X3NzaF90dW5u ZWwpIHsKLSAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAg ICAgICBtb2RlbC5zZXQoJ3VzZV9zc2hfdHVubmVsJywgMCk7Ci0gICAgICAgICAgICAgIH0sIDEw KTsKLQotICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAg ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgIH0sCi0gICAgICAgICAgcmVhZG9ubHk6ICdp c0Nvbm5lY3RlZCcsCi0gICAgICAgIH0sewotICAgICAgICAgIGlkOiAndHVubmVsX2hvc3QnLCBs YWJlbDogZ2V0dGV4dCgnVHVubmVsIGhvc3QnKSwgdHlwZTogJ3RleHQnLCBncm91cDogZ2V0dGV4 dCgnU1NIIFR1bm5lbCcpLAotICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0Jywg J2NyZWF0ZSddLCBkZXBzOiBbJ3VzZV9zc2hfdHVubmVsJ10sCi0gICAgICAgICAgZGlzYWJsZWQ6 IGZ1bmN0aW9uKG1vZGVsKSB7Ci0gICAgICAgICAgICByZXR1cm4gIW1vZGVsLmdldCgndXNlX3Nz aF90dW5uZWwnKTsKLSAgICAgICAgICB9LAotICAgICAgICAgIHJlYWRvbmx5OiAnaXNDb25uZWN0 ZWQnLAotICAgICAgICB9LHsKLSAgICAgICAgICBpZDogJ3R1bm5lbF9wb3J0JywgbGFiZWw6IGdl dHRleHQoJ1R1bm5lbCBwb3J0JyksIHR5cGU6ICdpbnQnLCBncm91cDogZ2V0dGV4dCgnU1NIIFR1 bm5lbCcpLAotICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSdd LCBkZXBzOiBbJ3VzZV9zc2hfdHVubmVsJ10sIG1heDogNjU1MzUsCi0gICAgICAgICAgZGlzYWJs ZWQ6IGZ1bmN0aW9uKG1vZGVsKSB7Ci0gICAgICAgICAgICByZXR1cm4gIW1vZGVsLmdldCgndXNl X3NzaF90dW5uZWwnKTsKLSAgICAgICAgICB9LAotICAgICAgICAgIHJlYWRvbmx5OiAnaXNDb25u ZWN0ZWQnLAotICAgICAgICB9LHsKLSAgICAgICAgICBpZDogJ3R1bm5lbF91c2VybmFtZScsIGxh YmVsOiBnZXR0ZXh0KCdVc2VybmFtZScpLCB0eXBlOiAndGV4dCcsIGdyb3VwOiBnZXR0ZXh0KCdT U0ggVHVubmVsJyksCi0gICAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2VkaXQnLCAnY3Jl YXRlJ10sIGRlcHM6IFsndXNlX3NzaF90dW5uZWwnXSwKLSAgICAgICAgICBkaXNhYmxlZDogZnVu Y3Rpb24obW9kZWwpIHsKLSAgICAgICAgICAgIHJldHVybiAhbW9kZWwuZ2V0KCd1c2Vfc3NoX3R1 bm5lbCcpOwotICAgICAgICAgIH0sCi0gICAgICAgICAgcmVhZG9ubHk6ICdpc0Nvbm5lY3RlZCcs Ci0gICAgICAgIH0sewotICAgICAgICAgIGlkOiAndHVubmVsX2F1dGhlbnRpY2F0aW9uJywgbGFi ZWw6IGdldHRleHQoJ0F1dGhlbnRpY2F0aW9uJyksIHR5cGU6ICdzd2l0Y2gnLAotICAgICAgICAg IG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSddLCBncm91cDogZ2V0dGV4dCgn U1NIIFR1bm5lbCcpLAotICAgICAgICAgICdvcHRpb25zJzogeydvblRleHQnOiAgZ2V0dGV4dCgn SWRlbnRpdHkgZmlsZScpLAotICAgICAgICAgICAgJ29mZlRleHQnOiAgZ2V0dGV4dCgnUGFzc3dv cmQnKSwgJ3NpemUnOiAnbWluaScsIHdpZHRoOiAnOTAnfSwKLSAgICAgICAgICBkZXBzOiBbJ3Vz ZV9zc2hfdHVubmVsJ10sCi0gICAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKG1vZGVsKSB7Ci0g ICAgICAgICAgICByZXR1cm4gIW1vZGVsLmdldCgndXNlX3NzaF90dW5uZWwnKTsKLSAgICAgICAg ICB9LAotICAgICAgICAgIHJlYWRvbmx5OiAnaXNDb25uZWN0ZWQnLAotICAgICAgICB9LCB7Ci0g ICAgICAgICAgaWQ6ICd0dW5uZWxfaWRlbnRpdHlfZmlsZScsIGxhYmVsOiBnZXR0ZXh0KCdJZGVu dGl0eSBmaWxlJyksIHR5cGU6ICd0ZXh0JywKLSAgICAgICAgICBncm91cDogZ2V0dGV4dCgnU1NI IFR1bm5lbCcpLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwKLSAgICAg ICAgICBjb250cm9sOiBCYWNrZm9ybS5GaWxlQ29udHJvbCwgZGlhbG9nX3R5cGU6ICdzZWxlY3Rf ZmlsZScsIHN1cHBfdHlwZXM6IFsnKiddLAotICAgICAgICAgIGRlcHM6IFsndHVubmVsX2F1dGhl bnRpY2F0aW9uJywgJ3VzZV9zc2hfdHVubmVsJ10sCi0gICAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0 aW9uKG1vZGVsKSB7Ci0gICAgICAgICAgICBsZXQgZmlsZSA9IG1vZGVsLmdldCgndHVubmVsX2lk ZW50aXR5X2ZpbGUnKTsKLSAgICAgICAgICAgIGlmICghbW9kZWwuZ2V0KCd0dW5uZWxfYXV0aGVu dGljYXRpb24nKSAmJiBmaWxlKSB7Ci0gICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o KSB7Ci0gICAgICAgICAgICAgICAgbW9kZWwuc2V0KCd0dW5uZWxfaWRlbnRpdHlfZmlsZScsIG51 bGwpOwotICAgICAgICAgICAgICB9LCAxMCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBy ZXR1cm4gIW1vZGVsLmdldCgndHVubmVsX2F1dGhlbnRpY2F0aW9uJykgfHwgIW1vZGVsLmdldCgn dXNlX3NzaF90dW5uZWwnKTsKLSAgICAgICAgICB9LAotICAgICAgICB9LHsKLSAgICAgICAgICBp ZDogJ3R1bm5lbF9wYXNzd29yZCcsIGxhYmVsOiBnZXR0ZXh0KCdQYXNzd29yZCcpLCB0eXBlOiAn cGFzc3dvcmQnLAotICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdTU0ggVHVubmVsJyksIGNvbnRy b2w6ICdpbnB1dCcsIG1vZGU6IFsnY3JlYXRlJ10sCi0gICAgICAgICAgZGVwczogWyd1c2Vfc3No X3R1bm5lbCddLAotICAgICAgICAgIGRpc2FibGVkOiBmdW5jdGlvbihtb2RlbCkgewotICAgICAg ICAgICAgcmV0dXJuICFtb2RlbC5nZXQoJ3VzZV9zc2hfdHVubmVsJyk7Ci0gICAgICAgICAgfSwK LSAgICAgICAgICByZWFkb25seTogJ2lzQ29ubmVjdGVkJywKLSAgICAgICAgfSwgewotICAgICAg ICAgIGlkOiAnc2F2ZV90dW5uZWxfcGFzc3dvcmQnLCBjb250cm9sTGFiZWw6IGdldHRleHQoJ1Nh dmUgcGFzc3dvcmQ/JyksCi0gICAgICAgICAgdHlwZTogJ2NoZWNrYm94JywgZ3JvdXA6IGdldHRl eHQoJ1NTSCBUdW5uZWwnKSwgbW9kZTogWydjcmVhdGUnXSwKLSAgICAgICAgICBkZXBzOiBbJ2Nv bm5lY3Rfbm93JywgJ3VzZV9zc2hfdHVubmVsJ10sIHZpc2libGU6IGZ1bmN0aW9uKG1vZGVsKSB7 Ci0gICAgICAgICAgICByZXR1cm4gbW9kZWwuZ2V0KCdjb25uZWN0X25vdycpICYmIG1vZGVsLmlz TmV3KCk7Ci0gICAgICAgICAgfSwKLSAgICAgICAgICBkaXNhYmxlZDogZnVuY3Rpb24obW9kZWwp IHsKLSAgICAgICAgICAgIGlmICghY3VycmVudF91c2VyLmFsbG93X3NhdmVfdHVubmVsX3Bhc3N3 b3JkIHx8Ci0gICAgICAgICAgICAgICFtb2RlbC5nZXQoJ3VzZV9zc2hfdHVubmVsJykpCi0gICAg ICAgICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg ICAgICAgfSwKLSAgICAgICAgfSwgewotICAgICAgICAgIGlkOiAnaG9zdGFkZHInLCBsYWJlbDog Z2V0dGV4dCgnSG9zdCBhZGRyZXNzJyksIHR5cGU6ICd0ZXh0JywgZ3JvdXA6IGdldHRleHQoJ0Fk dmFuY2VkJyksCi0gICAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2VkaXQnLCAnY3JlYXRl J10sIHJlYWRvbmx5OiAnaXNDb25uZWN0ZWQnLAotICAgICAgICB9LHsKLSAgICAgICAgICBpZDog J2RiX3JlcycsIGxhYmVsOiBnZXR0ZXh0KCdEQiByZXN0cmljdGlvbicpLCB0eXBlOiAnc2VsZWN0 MicsIGdyb3VwOiBnZXR0ZXh0KCdBZHZhbmNlZCcpLAotICAgICAgICAgIG1vZGU6IFsncHJvcGVy dGllcycsICdlZGl0JywgJ2NyZWF0ZSddLCByZWFkb25seTogJ2lzQ29ubmVjdGVkJywgc2VsZWN0 Mjoge211bHRpcGxlOiB0cnVlLCBhbGxvd0NsZWFyOiBmYWxzZSwKLSAgICAgICAgICAgIHRhZ3M6 IHRydWUsIHRva2VuU2VwYXJhdG9yczogWycsJ10sIGZpcnN0X2VtcHR5OiBmYWxzZSwgc2VsZWN0 T25DbG9zZTogdHJ1ZSwgZW1wdHlPcHRpb25zOiB0cnVlfSwKLSAgICAgICAgfSx7Ci0gICAgICAg ICAgaWQ6ICdwYXNzZmlsZScsIGxhYmVsOiBnZXR0ZXh0KCdQYXNzd29yZCBmaWxlJyksIHR5cGU6 ICd0ZXh0JywKLSAgICAgICAgICBncm91cDogZ2V0dGV4dCgnQWR2YW5jZWQnKSwgbW9kZTogWydl ZGl0JywgJ2NyZWF0ZSddLAotICAgICAgICAgIGRpc2FibGVkOiAnaXNWYWxpZExpYicsIHJlYWRv bmx5OiAnaXNDb25uZWN0ZWQnLCBjb250cm9sOiBCYWNrZm9ybS5GaWxlQ29udHJvbCwKLSAgICAg ICAgICBkaWFsb2dfdHlwZTogJ3NlbGVjdF9maWxlJywgc3VwcF90eXBlczogWycqJ10sCi0gICAg ICAgIH0sewotICAgICAgICAgIGlkOiAncGFzc2ZpbGUnLCBsYWJlbDogZ2V0dGV4dCgnUGFzc3dv cmQgZmlsZScpLCB0eXBlOiAndGV4dCcsCi0gICAgICAgICAgZ3JvdXA6IGdldHRleHQoJ0FkdmFu Y2VkJyksIG1vZGU6IFsncHJvcGVydGllcyddLAotICAgICAgICAgIHZpc2libGU6IGZ1bmN0aW9u KG1vZGVsKSB7Ci0gICAgICAgICAgICB2YXIgcGFzc2ZpbGUgPSBtb2RlbC5nZXQoJ3Bhc3NmaWxl Jyk7Ci0gICAgICAgICAgICByZXR1cm4gIV8uaXNVbmRlZmluZWQocGFzc2ZpbGUpICYmICFfLmlz TnVsbChwYXNzZmlsZSk7Ci0gICAgICAgICAgfSwKLSAgICAgICAgfSx7Ci0gICAgICAgICAgaWQ6 ICdjb25uZWN0X3RpbWVvdXQnLCBsYWJlbDogZ2V0dGV4dCgnQ29ubmVjdGlvbiB0aW1lb3V0IChz ZWNvbmRzKScpLAotICAgICAgICAgIHR5cGU6ICdpbnQnLCBncm91cDogZ2V0dGV4dCgnQWR2YW5j ZWQnKSwKLSAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwg cmVhZG9ubHk6ICdpc0Nvbm5lY3RlZCcsCi0gICAgICAgICAgbWluOiAwLAotICAgICAgICB9XSwK LSAgICAgICAgaXNWaXNpYmxlOiBmdW5jdGlvbihtb2RlbCl7Ci0gICAgICAgICAgdmFyIHNlcnZl ck93bmVyID0gbW9kZWwuYXR0cmlidXRlcy51c2VyX2lkOwotICAgICAgICAgIGlmICghbW9kZWwu aXNOZXcoKSAmJiBzZXJ2ZXJPd25lciAhPSBjdXJyZW50X3VzZXIuaWQpewotICAgICAgICAgICAg cmV0dXJuIGZhbHNlOworICAgICAgZ2V0U2NoZW1hOiAodHJlZU5vZGVJbmZvLCBpdGVtTm9kZURh dGEpPT57CisgICAgICAgIGxldCBzY2hlbWEgPSBuZXcgU2VydmVyU2NoZW1hKAorICAgICAgICAg IGdldE5vZGVMaXN0QnlJZChwZ0Jyb3dzZXIuTm9kZXNbJ3NlcnZlcl9ncm91cCddLCB0cmVlTm9k ZUluZm8sIGl0ZW1Ob2RlRGF0YSksCisgICAgICAgICAgeworICAgICAgICAgICAgZ2lkOiB0cmVl Tm9kZUluZm9bJ3NlcnZlcl9ncm91cCddLl9pZCwKICAgICAgICAgICB9Ci0gICAgICAgICAgcmV0 dXJuIHRydWU7Ci0KLSAgICAgICAgfSwKLSAgICAgICAgaXNTaGFyZWQ6IGZ1bmN0aW9uKG1vZGVs KXsKLSAgICAgICAgICB2YXIgc2VydmVyT3duZXIgPSBtb2RlbC5hdHRyaWJ1dGVzLnVzZXJfaWQ7 Ci0gICAgICAgICAgaWYgKCFtb2RlbC5pc05ldygpICYmIHNlcnZlck93bmVyICE9IGN1cnJlbnRf dXNlci5pZCAmJiBtb2RlbC5hdHRyaWJ1dGVzLnNoYXJlZCl7Ci0gICAgICAgICAgICByZXR1cm4g dHJ1ZTsKLSAgICAgICAgICB9Ci0gICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9LAot ICAgICAgICB2YWxpZGF0ZTogZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgY29uc3QgdmFsaWRhdGVN b2RlbCA9IG5ldyBtb2RlbFZhbGlkYXRpb24uTW9kZWxWYWxpZGF0aW9uKHRoaXMpOwotICAgICAg ICAgIHJldHVybiB2YWxpZGF0ZU1vZGVsLnZhbGlkYXRlKCk7Ci0gICAgICAgIH0sCi0gICAgICAg IGlzQ29ubmVjdGVkOiBmdW5jdGlvbihtb2RlbCkgewotICAgICAgICAgIHJldHVybiBtb2RlbC5n ZXQoJ2Nvbm5lY3RlZCcpOwotICAgICAgICB9LAotICAgICAgICBpc2ZnQ29sb3JTZXQ6IGZ1bmN0 aW9uKG1vZGVsKSB7Ci0gICAgICAgICAgdmFyIGJnY29sb3IgPSBtb2RlbC5nZXQoJ2JnY29sb3In KSwKLSAgICAgICAgICAgIGZnY29sb3IgPSBtb2RlbC5nZXQoJ2ZnY29sb3InKTsKLQotICAgICAg ICAgIGlmKG1vZGVsLmdldCgnY29ubmVjdGVkJykpIHsKLSAgICAgICAgICAgIHJldHVybiB0cnVl OwotICAgICAgICAgIH0KLSAgICAgICAgICAvLyBJZiBmZ2NvbG9yIGlzIHNldCBhbmQgYmdjb2xv ciBpcyBub3Qgc2V0IHRoZW4gZm9yY2UgYmdjb2xvcgotICAgICAgICAgIC8vIHRvIHNldCBhcyB3 aGl0ZQotICAgICAgICAgIGlmKF8uaXNVbmRlZmluZWQoYmdjb2xvcikgfHwgXy5pc051bGwoYmdj b2xvcikgfHwgIWJnY29sb3IpIHsKLSAgICAgICAgICAgIGlmKGZnY29sb3IpIHsKLSAgICAgICAg ICAgICAgbW9kZWwuc2V0KCdiZ2NvbG9yJywgJyNmZmZmZmYnKTsKLSAgICAgICAgICAgIH0KLSAg ICAgICAgICB9Ci0KLSAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0sCi0gICAgICAg IGlzU1NMOiBmdW5jdGlvbihtb2RlbCkgewotICAgICAgICAgIHZhciBzc2xfbW9kZSA9IG1vZGVs LmdldCgnc3NsbW9kZScpOwotICAgICAgICAgIHJldHVybiBfLmluZGV4T2YoU1NMX01PREVTLCBz c2xfbW9kZSkgPT0gLTE7Ci0gICAgICAgIH0sCi0gICAgICAgIGlzVmFsaWRMaWI6IGZ1bmN0aW9u KCkgewotICAgICAgICAgIC8vIG9sZGVyIHZlcnNpb24gb2YgbGlicHEgZG8gbm90IHN1cHBvcnQg J3Bhc3NmaWxlJyBwYXJhbWV0ZXIgaW4KLSAgICAgICAgICAvLyBjb25uZWN0IG1ldGhvZCwgdmFs aWQgbGlicHEgbXVzdCBoYXZlIHZlcnNpb24gPj0gMTAwMDAwCi0gICAgICAgICAgcmV0dXJuIHBn QnJvd3Nlci51dGlscy5wZ19saWJwcV92ZXJzaW9uIDwgMTAwMDAwOwotICAgICAgICB9LAotICAg ICAgfSksCisgICAgICAgICk7CisgICAgICAgIHJldHVybiBzY2hlbWE7CisgICAgICB9LAogICAg ICAgY29ubmVjdGlvbl9sb3N0OiBmdW5jdGlvbihpLCByZXNwKSB7CiAgICAgICAgIGlmIChwZ0Jy b3dzZXIudHJlZSkgewogICAgICAgICAgIHZhciB0ID0gcGdCcm93c2VyLnRyZWUsCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9zdGF0aWMvanMv c2VydmVyLnVpLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv c3RhdGljL2pzL3NlcnZlci51aS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAuLmFmZmY0MDlhOQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL3N0YXRpYy9qcy9zZXJ2ZXIudWkuanMKQEAgLTAsMCArMSw1Mjkg QEAKK2ltcG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJjZXMvZ2V0dGV4dCc7CitpbXBvcnQgXyBmcm9t ICdsb2Rhc2gnOworaW1wb3J0IHtBZGRyZXNzNCwgQWRkcmVzczZ9IGZyb20gJ2lwLWFkZHJlc3Mn OworCitpbXBvcnQgQmFzZVVJU2NoZW1hIGZyb20gJ3NvdXJjZXMvU2NoZW1hVmlldy9iYXNlX3Nj aGVtYS51aSc7CitpbXBvcnQgcGdBZG1pbiBmcm9tICdzb3VyY2VzL3BnYWRtaW4nOworaW1wb3J0 IHtkZWZhdWx0IGFzIHN1cHBvcnRlZFNlcnZlcnN9IGZyb20gJ3BnYWRtaW4uc2VydmVyLnN1cHBv cnRlZF9zZXJ2ZXJzJzsKKworaW1wb3J0IGN1cnJlbnRfdXNlciBmcm9tICdwZ2FkbWluLnVzZXJf bWFuYWdlbWVudC5jdXJyZW50X3VzZXInOworaW1wb3J0IHsgaXNFbXB0eVN0cmluZyB9IGZyb20g J3NvdXJjZXMvdmFsaWRhdG9ycyc7CisKK2V4cG9ydCBkZWZhdWx0IGNsYXNzIFNlcnZlclNjaGVt YSBleHRlbmRzIEJhc2VVSVNjaGVtYSB7CisgIGNvbnN0cnVjdG9yKHNlcnZlckdyb3VwT3B0aW9u cz1bXSwgaW5pdFZhbHVlcykgeworICAgIHN1cGVyKHsKKyAgICAgIGdpZDogdW5kZWZpbmVkLAor ICAgICAgaWQ6IHVuZGVmaW5lZCwKKyAgICAgIG5hbWU6ICcnLAorICAgICAgYmdjb2xvcjogJycs CisgICAgICBmZ2NvbG9yOiAnJywKKyAgICAgIHNzbG1vZGU6ICdwcmVmZXInLAorICAgICAgaG9z dDogJycsCisgICAgICBob3N0YWRkcjogJycsCisgICAgICBwb3J0OiA1NDMyLAorICAgICAgZGI6 ICdwb3N0Z3JlcycsCisgICAgICB1c2VybmFtZTogY3VycmVudF91c2VyLm5hbWUsCisgICAgICBy b2xlOiBudWxsLAorICAgICAgY29ubmVjdF9ub3c6IHRydWUsCisgICAgICBwYXNzd29yZDogdW5k ZWZpbmVkLAorICAgICAgc2F2ZV9wYXNzd29yZDogZmFsc2UsCisgICAgICBkYl9yZXM6ICcnLAor ICAgICAgcGFzc2ZpbGU6IHVuZGVmaW5lZCwKKyAgICAgIHNzbGNvbXByZXNzaW9uOiBmYWxzZSwK KyAgICAgIHNzbGNlcnQ6IHVuZGVmaW5lZCwKKyAgICAgIHNzbGtleTogdW5kZWZpbmVkLAorICAg ICAgc3Nscm9vdGNlcnQ6IHVuZGVmaW5lZCwKKyAgICAgIHNzbGNybDogdW5kZWZpbmVkLAorICAg ICAgc2VydmljZTogdW5kZWZpbmVkLAorICAgICAgdXNlX3NzaF90dW5uZWw6IDAsCisgICAgICB0 dW5uZWxfaG9zdDogdW5kZWZpbmVkLAorICAgICAgdHVubmVsX3BvcnQ6IDIyLAorICAgICAgdHVu bmVsX3VzZXJuYW1lOiB1bmRlZmluZWQsCisgICAgICB0dW5uZWxfaWRlbnRpdHlfZmlsZTogdW5k ZWZpbmVkLAorICAgICAgdHVubmVsX3Bhc3N3b3JkOiB1bmRlZmluZWQsCisgICAgICB0dW5uZWxf YXV0aGVudGljYXRpb246IGZhbHNlLAorICAgICAgc2F2ZV90dW5uZWxfcGFzc3dvcmQ6IGZhbHNl LAorICAgICAgY29ubmVjdF90aW1lb3V0OiAxMCwKKyAgICAgIC4uLmluaXRWYWx1ZXMsCisgICAg fSk7CisKKyAgICB0aGlzLnNlcnZlckdyb3VwT3B0aW9ucyA9IHNlcnZlckdyb3VwT3B0aW9uczsK KyAgICBfLmJpbmRBbGwodGhpcywgJ2lzU2hhcmVkJywgJ2lzU1NMJyk7CisgIH0KKworICBnZXQg U1NMX01PREVTKCkgeyByZXR1cm4gWydwcmVmZXInLCAncmVxdWlyZScsICd2ZXJpZnktY2EnLCAn dmVyaWZ5LWZ1bGwnXTsgfQorCisgIGlzU2hhcmVkKHN0YXRlKSB7CisgICAgaWYoIXRoaXMuaXNO ZXcoc3RhdGUpICYmIHN0YXRlLnVzZXJfaWQgIT0gY3VycmVudF91c2VyLmlkICYmIHN0YXRlLnNo YXJlZCkgeworICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKKyAg fQorCisgIGlzQ29ubmVjdGVkKHN0YXRlKSB7CisgICAgcmV0dXJuIEJvb2xlYW4oc3RhdGUuY29u bmVjdGVkKTsKKyAgfQorCisgIGlzU1NMKHN0YXRlKSB7CisgICAgcmV0dXJuIHRoaXMuU1NMX01P REVTLmluZGV4T2Yoc3RhdGUuc3NsbW9kZSkgPT0gLTE7CisgIH0KKworICBpc1ZhbGlkTGliKCkg eworICAgIC8vIG9sZGVyIHZlcnNpb24gb2YgbGlicHEgZG8gbm90IHN1cHBvcnQgJ3Bhc3NmaWxl JyBwYXJhbWV0ZXIgaW4KKyAgICAvLyBjb25uZWN0IG1ldGhvZCwgdmFsaWQgbGlicHEgbXVzdCBo YXZlIHZlcnNpb24gPj0gMTAwMDAwCisgICAgcmV0dXJuIHBnQWRtaW4uQnJvd3Nlci51dGlscy5w Z19saWJwcV92ZXJzaW9uIDwgMTAwMDAwOworICB9CisKKyAgZ2V0IGJhc2VGaWVsZHMoKSB7Cisg ICAgbGV0IG9iaiA9IHRoaXM7CisgICAgcmV0dXJuIFsKKyAgICAgIHsKKyAgICAgICAgaWQ6ICdp ZCcsIGxhYmVsOiBnZXR0ZXh0KCdJRCcpLCB0eXBlOiAnaW50JywgZ3JvdXA6IG51bGwsCisgICAg ICAgIG1vZGU6IFsncHJvcGVydGllcyddLAorICAgICAgfSx7CisgICAgICAgIGlkOiAnbmFtZScs IGxhYmVsOiBnZXR0ZXh0KCdOYW1lJyksIHR5cGU6ICd0ZXh0JywgZ3JvdXA6IG51bGwsCisgICAg ICAgIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSddLCBub0VtcHR5OiB0cnVl LAorICAgICAgICBkaXNhYmxlZDogb2JqLmlzU2hhcmVkLAorICAgICAgfSx7CisgICAgICAgIGlk OiAnZ2lkJywgbGFiZWw6IGdldHRleHQoJ1NlcnZlciBncm91cCcpLCB0eXBlOiAnc2VsZWN0JywK KyAgICAgICAgb3B0aW9uczogb2JqLnNlcnZlckdyb3VwT3B0aW9ucywKKyAgICAgICAgbW9kZTog WydjcmVhdGUnLCAnZWRpdCddLAorICAgICAgICBjb250cm9sUHJvcHM6IHsgYWxsb3dDbGVhcjog ZmFsc2UgfSwKKyAgICAgICAgZGlzYWJsZWQ6IG9iai5pc1NoYXJlZCwKKyAgICAgIH0sCisgICAg ICB7CisgICAgICAgIGlkOiAnc2VydmVyX293bmVyJywgbGFiZWw6IGdldHRleHQoJ1NoYXJlZCBT ZXJ2ZXIgT3duZXInKSwgdHlwZTogJ3RleHQnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwKKyAgICAg ICAgdmlzaWJsZTogZnVuY3Rpb24oc3RhdGUpIHsKKyAgICAgICAgICB2YXIgc2VydmVyT3duZXIg PSBzdGF0ZS51c2VyX2lkOworICAgICAgICAgIGlmIChzdGF0ZS5zaGFyZWQgJiYgc2VydmVyT3du ZXIgIT0gY3VycmVudF91c2VyLmlkICYmIHBnQWRtaW4uc2VydmVyX21vZGUgPT0gJ1RydWUnKXsK KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgIH0KKyAgICAgICAgICByZXR1cm4g ZmFsc2U7CisgICAgICAgIH0sCisgICAgICB9LAorICAgICAgeworICAgICAgICBpZDogJ3NlcnZl cl90eXBlJywgbGFiZWw6IGdldHRleHQoJ1NlcnZlciB0eXBlJyksIHR5cGU6ICdzZWxlY3QnLAor ICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwgdmlzaWJsZTogb2JqLmlzQ29ubmVjdGVkLAor ICAgICAgICBvcHRpb25zOiBzdXBwb3J0ZWRTZXJ2ZXJzLAorICAgICAgfSwgeworICAgICAgICBp ZDogJ2Nvbm5lY3RlZCcsIGxhYmVsOiBnZXR0ZXh0KCdDb25uZWN0ZWQ/JyksIHR5cGU6ICdzd2l0 Y2gnLAorICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwgZ3JvdXA6IGdldHRleHQoJ0Nvbm5l Y3Rpb24nKSwKKyAgICAgIH0sIHsKKyAgICAgICAgaWQ6ICd2ZXJzaW9uJywgbGFiZWw6IGdldHRl eHQoJ1ZlcnNpb24nKSwgdHlwZTogJ3RleHQnLCBncm91cDogbnVsbCwKKyAgICAgICAgbW9kZTog Wydwcm9wZXJ0aWVzJ10sIHZpc2libGU6IG9iai5pc0Nvbm5lY3RlZCwKKyAgICAgIH0sCisgICAg ICB7CisgICAgICAgIGlkOiAnYmdjb2xvcicsIGxhYmVsOiBnZXR0ZXh0KCdCYWNrZ3JvdW5kJyks IHR5cGU6ICdjb2xvcicsCisgICAgICAgIGdyb3VwOiBudWxsLCBtb2RlOiBbJ2VkaXQnLCAnY3Jl YXRlJ10sCisgICAgICAgIGRpc2FibGVkOiBvYmouaXNDb25uZWN0ZWQsIGRlcHM6IFsnZmdjb2xv ciddLCBkZXBDaGFuZ2U6IChzdGF0ZSk9PnsKKyAgICAgICAgICBpZighc3RhdGUuYmdjb2xvciAm JiBzdGF0ZS5mZ2NvbG9yKSB7CisgICAgICAgICAgICByZXR1cm4geydiZ2NvbG9yJzogJyNmZmZm ZmYnfTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0seworICAgICAgICBpZDogJ2Zn Y29sb3InLCBsYWJlbDogZ2V0dGV4dCgnRm9yZWdyb3VuZCcpLCB0eXBlOiAnY29sb3InLAorICAg ICAgICBncm91cDogbnVsbCwgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLCBkaXNhYmxlZDogb2Jq LmlzQ29ubmVjdGVkLAorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgaWQ6ICdjb25uZWN0X25v dycsIGxhYmVsOiBnZXR0ZXh0KCdDb25uZWN0IG5vdz8nKSwgdHlwZTogJ3N3aXRjaCcsCisgICAg ICAgIGdyb3VwOiBudWxsLCBtb2RlOiBbJ2NyZWF0ZSddLAorICAgICAgfSwKKyAgICAgIHsKKyAg ICAgICAgaWQ6ICdzaGFyZWQnLCBsYWJlbDogZ2V0dGV4dCgnU2hhcmVkPycpLCB0eXBlOiAnc3dp dGNoJywKKyAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0ZScsICdlZGl0J10sCisg ICAgICAgIHJlYWRvbmx5OiBmdW5jdGlvbihzdGF0ZSl7CisgICAgICAgICAgdmFyIHNlcnZlck93 bmVyID0gc3RhdGUudXNlcl9pZDsKKyAgICAgICAgICBpZiAob2JqLmlzTmV3KHN0YXRlKSAmJiBz ZXJ2ZXJPd25lciAhPSBjdXJyZW50X3VzZXIuaWQpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVl OworICAgICAgICAgIH0KKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0sIHZpc2li bGU6IGZ1bmN0aW9uKCl7CisgICAgICAgICAgaWYgKGN1cnJlbnRfdXNlci5pc19hZG1pbiAmJiBw Z0FkbWluLnNlcnZlcl9tb2RlID09ICdUcnVlJykKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor CisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9LAorICAgICAgfSwKKyAgICAgIHsK KyAgICAgICAgaWQ6ICdjb21tZW50JywgbGFiZWw6IGdldHRleHQoJ0NvbW1lbnRzJyksIHR5cGU6 ICdtdWx0aWxpbmUnLCBncm91cDogbnVsbCwKKyAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJywg J2VkaXQnLCAnY3JlYXRlJ10sCisgICAgICB9LAorICAgICAgeworICAgICAgICBpZDogJ2hvc3Qn LCBsYWJlbDogZ2V0dGV4dCgnSG9zdCBuYW1lL2FkZHJlc3MnKSwgdHlwZTogJ3RleHQnLCBncm91 cDogZ2V0dGV4dCgnQ29ubmVjdGlvbicpLAorICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAn ZWRpdCcsICdjcmVhdGUnXSwgZGlzYWJsZWQ6IG9iai5pc1NoYXJlZCwKKyAgICAgICAgZGVwQ2hh bmdlOiAoc3RhdGUpPT57CisgICAgICAgICAgaWYob2JqLm9yaWdEYXRhLmhvc3QgIT0gc3RhdGUu aG9zdCAmJiAhb2JqLmlzTmV3KHN0YXRlKSAmJiBzdGF0ZS5jb25uZWN0ZWQpeworICAgICAgICAg ICAgb2JqLmluZm9ybVRleHQgPSBnZXR0ZXh0KAorICAgICAgICAgICAgICAnVG8gYXBwbHkgY2hh bmdlcyB0byB0aGUgY29ubmVjdGlvbiBjb25maWd1cmF0aW9uLCBwbGVhc2UgZGlzY29ubmVjdCBm cm9tIHRoZSBzZXJ2ZXIgYW5kIHRoZW4gcmVjb25uZWN0LicKKyAgICAgICAgICAgICk7CisgICAg ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG9iai5pbmZvcm1UZXh0ID0gdW5kZWZpbmVkOwor ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgaWQ6ICdw b3J0JywgbGFiZWw6IGdldHRleHQoJ1BvcnQnKSwgdHlwZTogJ2ludCcsIGdyb3VwOiBnZXR0ZXh0 KCdDb25uZWN0aW9uJyksCisgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2Ny ZWF0ZSddLCBtaW46IDEsIG1heDogNjU1MzUsIGRpc2FibGVkOiBvYmouaXNTaGFyZWQsCisgICAg ICAgIGRlcENoYW5nZTogKHN0YXRlKT0+eworICAgICAgICAgIGlmKG9iai5vcmlnRGF0YS5wb3J0 ICE9IHN0YXRlLnBvcnQgJiYgIW9iai5pc05ldyhzdGF0ZSkgJiYgc3RhdGUuY29ubmVjdGVkKXsK KyAgICAgICAgICAgIG9iai5pbmZvcm1UZXh0ID0gZ2V0dGV4dCgKKyAgICAgICAgICAgICAgJ1Rv IGFwcGx5IGNoYW5nZXMgdG8gdGhlIGNvbm5lY3Rpb24gY29uZmlndXJhdGlvbiwgcGxlYXNlIGRp c2Nvbm5lY3QgZnJvbSB0aGUgc2VydmVyIGFuZCB0aGVuIHJlY29ubmVjdC4nCisgICAgICAgICAg ICApOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBvYmouaW5mb3JtVGV4dCA9IHVu ZGVmaW5lZDsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0seworICAgICAgICBpZDog J2RiJywgbGFiZWw6IGdldHRleHQoJ01haW50ZW5hbmNlIGRhdGFiYXNlJyksIHR5cGU6ICd0ZXh0 JywgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwKKyAgICAgICAgbW9kZTogWydwcm9wZXJ0 aWVzJywgJ2VkaXQnLCAnY3JlYXRlJ10sIHJlYWRvbmx5OiBvYmouaXNDb25uZWN0ZWQsIGRpc2Fi bGVkOiBvYmouaXNTaGFyZWQsCisgICAgICAgIG5vRW1wdHk6IHRydWUsCisgICAgICB9LHsKKyAg ICAgICAgaWQ6ICd1c2VybmFtZScsIGxhYmVsOiBnZXR0ZXh0KCdVc2VybmFtZScpLCB0eXBlOiAn dGV4dCcsIGdyb3VwOiBnZXR0ZXh0KCdDb25uZWN0aW9uJyksCisgICAgICAgIG1vZGU6IFsncHJv cGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICBkZXBDaGFuZ2U6IChzdGF0ZSk9 PnsKKyAgICAgICAgICBpZihvYmoub3JpZ0RhdGEudXNlcm5hbWUgIT0gc3RhdGUudXNlcm5hbWUg JiYgIW9iai5pc05ldyhzdGF0ZSkgJiYgc3RhdGUuY29ubmVjdGVkKXsKKyAgICAgICAgICAgIG9i ai5pbmZvcm1UZXh0ID0gZ2V0dGV4dCgKKyAgICAgICAgICAgICAgJ1RvIGFwcGx5IGNoYW5nZXMg dG8gdGhlIGNvbm5lY3Rpb24gY29uZmlndXJhdGlvbiwgcGxlYXNlIGRpc2Nvbm5lY3QgZnJvbSB0 aGUgc2VydmVyIGFuZCB0aGVuIHJlY29ubmVjdC4nCisgICAgICAgICAgICApOworICAgICAgICAg IH0gZWxzZSB7CisgICAgICAgICAgICBvYmouaW5mb3JtVGV4dCA9IHVuZGVmaW5lZDsKKyAgICAg ICAgICB9CisgICAgICAgIH0KKyAgICAgIH0seworICAgICAgICBpZDogJ2tlcmJlcm9zX2Nvbm4n LCBsYWJlbDogZ2V0dGV4dCgnS2VyYmVyb3MgYXV0aGVudGljYXRpb24/JyksIHR5cGU6ICdzd2l0 Y2gnLAorICAgICAgICBncm91cDogZ2V0dGV4dCgnQ29ubmVjdGlvbicpLAorICAgICAgfSx7Cisg ICAgICAgIGlkOiAnZ3NzX2F1dGhlbnRpY2F0ZWQnLCBsYWJlbDogZ2V0dGV4dCgnR1NTIGF1dGhl bnRpY2F0ZWQ/JyksIHR5cGU6ICdzd2l0Y2gnLAorICAgICAgICBncm91cDogZ2V0dGV4dCgnQ29u bmVjdGlvbicpLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwgdmlzaWJsZTogb2JqLmlzQ29ubmVjdGVk LAorICAgICAgfSx7CisgICAgICAgIGlkOiAnZ3NzX2VuY3J5cHRlZCcsIGxhYmVsOiBnZXR0ZXh0 KCdHU1MgZW5jcnlwdGVkPycpLCB0eXBlOiAnc3dpdGNoJywKKyAgICAgICAgZ3JvdXA6IGdldHRl eHQoJ0Nvbm5lY3Rpb24nKSwgbW9kZTogWydwcm9wZXJ0aWVzJ10sIHZpc2libGU6IG9iai5pc0Nv bm5lY3RlZCwKKyAgICAgIH0seworICAgICAgICBpZDogJ3Bhc3N3b3JkJywgbGFiZWw6IGdldHRl eHQoJ1Bhc3N3b3JkJyksIHR5cGU6ICdwYXNzd29yZCcsIG1heGxlbmd0aDogbnVsbCwKKyAgICAg ICAgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwKKyAgICAgICAgbW9kZTogWydjcmVhdGUn XSwKKyAgICAgICAgZGVwczogWydjb25uZWN0X25vdycsICdrZXJiZXJvc19jb25uJ10sCisgICAg ICAgIHZpc2libGU6IGZ1bmN0aW9uKHN0YXRlKSB7CisgICAgICAgICAgcmV0dXJuIHN0YXRlLmNv bm5lY3Rfbm93ICYmIG9iai5pc05ldyhzdGF0ZSk7CisgICAgICAgIH0sCisgICAgICAgIGRpc2Fi bGVkOiBmdW5jdGlvbihzdGF0ZSkge3JldHVybiBzdGF0ZS5rZXJiZXJvc19jb25uO30sCisgICAg ICB9LHsKKyAgICAgICAgaWQ6ICdzYXZlX3Bhc3N3b3JkJywgbGFiZWw6IGdldHRleHQoJ1NhdmUg cGFzc3dvcmQ/JyksCisgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBncm91cDogZ2V0dGV4dCgnQ29u bmVjdGlvbicpLCBtb2RlOiBbJ2NyZWF0ZSddLAorICAgICAgICBkZXBzOiBbJ2Nvbm5lY3Rfbm93 JywgJ2tlcmJlcm9zX2Nvbm4nXSwKKyAgICAgICAgdmlzaWJsZTogZnVuY3Rpb24oc3RhdGUpIHsK KyAgICAgICAgICByZXR1cm4gc3RhdGUuY29ubmVjdF9ub3cgJiYgb2JqLmlzTmV3KHN0YXRlKTsK KyAgICAgICAgfSwKKyAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKHN0YXRlKSB7CisgICAgICAg ICAgaWYgKCFjdXJyZW50X3VzZXIuYWxsb3dfc2F2ZV9wYXNzd29yZCB8fCBzdGF0ZS5rZXJiZXJv c19jb25uKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgcmV0dXJuIGZhbHNl OworICAgICAgICB9LAorICAgICAgfSx7CisgICAgICAgIGlkOiAncm9sZScsIGxhYmVsOiBnZXR0 ZXh0KCdSb2xlJyksIHR5cGU6ICd0ZXh0JywgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwK KyAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2VkaXQnLCAnY3JlYXRlJ10sIHJlYWRvbmx5 OiBvYmouaXNDb25uZWN0ZWQsCisgICAgICB9LHsKKyAgICAgICAgaWQ6ICdzZXJ2aWNlJywgbGFi ZWw6IGdldHRleHQoJ1NlcnZpY2UnKSwgdHlwZTogJ3RleHQnLAorICAgICAgICBtb2RlOiBbJ3By b3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwgcmVhZG9ubHk6IG9iai5pc0Nvbm5lY3RlZCwK KyAgICAgICAgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwKKyAgICAgIH0sCisgICAgICB7 CisgICAgICAgIGlkOiAnc3NsbW9kZScsIGxhYmVsOiBnZXR0ZXh0KCdTU0wgbW9kZScpLCB0eXBl OiAnc2VsZWN0JywgZ3JvdXA6IGdldHRleHQoJ1NTTCcpLAorICAgICAgICBjb250cm9sUHJvcHM6 IHsKKyAgICAgICAgICBhbGxvd0NsZWFyOiBmYWxzZSwKKyAgICAgICAgfSwKKyAgICAgICAgbW9k ZTogWydwcm9wZXJ0aWVzJywgJ2VkaXQnLCAnY3JlYXRlJ10sIGRpc2FibGVkOiBvYmouaXNDb25u ZWN0ZWQsCisgICAgICAgIG9wdGlvbnM6IFsKKyAgICAgICAgICB7bGFiZWw6IGdldHRleHQoJ0Fs bG93JyksIHZhbHVlOiAnYWxsb3cnfSwKKyAgICAgICAgICB7bGFiZWw6IGdldHRleHQoJ1ByZWZl cicpLCB2YWx1ZTogJ3ByZWZlcid9LAorICAgICAgICAgIHtsYWJlbDogZ2V0dGV4dCgnUmVxdWly ZScpLCB2YWx1ZTogJ3JlcXVpcmUnfSwKKyAgICAgICAgICB7bGFiZWw6IGdldHRleHQoJ0Rpc2Fi bGUnKSwgdmFsdWU6ICdkaXNhYmxlJ30sCisgICAgICAgICAge2xhYmVsOiBnZXR0ZXh0KCdWZXJp ZnktQ0EnKSwgdmFsdWU6ICd2ZXJpZnktY2EnfSwKKyAgICAgICAgICB7bGFiZWw6IGdldHRleHQo J1ZlcmlmeS1GdWxsJyksIHZhbHVlOiAndmVyaWZ5LWZ1bGwnfSwKKyAgICAgICAgXSwKKyAgICAg IH0sCisgICAgICB7CisgICAgICAgIGlkOiAnc3NsY2VydCcsIGxhYmVsOiBnZXR0ZXh0KCdDbGll bnQgY2VydGlmaWNhdGUnKSwgdHlwZTogJ2ZpbGUnLAorICAgICAgICBncm91cDogZ2V0dGV4dCgn U1NMJyksIG1vZGU6IFsnZWRpdCcsICdjcmVhdGUnXSwKKyAgICAgICAgZGlzYWJsZWQ6IG9iai5p c1NTTCwgcmVhZG9ubHk6IG9iai5pc0Nvbm5lY3RlZCwKKyAgICAgICAgY29udHJvbFByb3BzOiB7 CisgICAgICAgICAgZGlhbG9nVHlwZTogJ3NlbGVjdF9maWxlJywgc3VwcG9ydGVkVHlwZXM6IFsn KiddLAorICAgICAgICB9LAorICAgICAgICBkZXBzOiBbJ3NzbG1vZGUnXSwKKyAgICAgIH0sCisg ICAgICB7CisgICAgICAgIGlkOiAnc3Nsa2V5JywgbGFiZWw6IGdldHRleHQoJ0NsaWVudCBjZXJ0 aWZpY2F0ZSBrZXknKSwgdHlwZTogJ2ZpbGUnLAorICAgICAgICBncm91cDogZ2V0dGV4dCgnU1NM JyksIG1vZGU6IFsnZWRpdCcsICdjcmVhdGUnXSwKKyAgICAgICAgZGlzYWJsZWQ6IG9iai5pc1NT TCwgcmVhZG9ubHk6IG9iai5pc0Nvbm5lY3RlZCwKKyAgICAgICAgY29udHJvbFByb3BzOiB7Cisg ICAgICAgICAgZGlhbG9nVHlwZTogJ3NlbGVjdF9maWxlJywgc3VwcG9ydGVkVHlwZXM6IFsnKidd LAorICAgICAgICB9LAorICAgICAgICBkZXBzOiBbJ3NzbG1vZGUnXSwKKyAgICAgIH0seworICAg ICAgICBpZDogJ3NzbHJvb3RjZXJ0JywgbGFiZWw6IGdldHRleHQoJ1Jvb3QgY2VydGlmaWNhdGUn KSwgdHlwZTogJ2ZpbGUnLAorICAgICAgICBncm91cDogZ2V0dGV4dCgnU1NMJyksIG1vZGU6IFsn ZWRpdCcsICdjcmVhdGUnXSwKKyAgICAgICAgZGlzYWJsZWQ6IG9iai5pc1NTTCwgcmVhZG9ubHk6 IG9iai5pc0Nvbm5lY3RlZCwKKyAgICAgICAgY29udHJvbFByb3BzOiB7CisgICAgICAgICAgZGlh bG9nVHlwZTogJ3NlbGVjdF9maWxlJywgc3VwcG9ydGVkVHlwZXM6IFsnKiddLAorICAgICAgICB9 LAorICAgICAgICBkZXBzOiBbJ3NzbG1vZGUnXSwKKyAgICAgIH0seworICAgICAgICBpZDogJ3Nz bGNybCcsIGxhYmVsOiBnZXR0ZXh0KCdDZXJ0aWZpY2F0ZSByZXZvY2F0aW9uIGxpc3QnKSwgdHlw ZTogJ2ZpbGUnLAorICAgICAgICBncm91cDogZ2V0dGV4dCgnU1NMJyksIG1vZGU6IFsnZWRpdCcs ICdjcmVhdGUnXSwKKyAgICAgICAgZGlzYWJsZWQ6IG9iai5pc1NTTCwgcmVhZG9ubHk6IG9iai5p c0Nvbm5lY3RlZCwKKyAgICAgICAgY29udHJvbFByb3BzOiB7CisgICAgICAgICAgZGlhbG9nVHlw ZTogJ3NlbGVjdF9maWxlJywgc3VwcG9ydGVkVHlwZXM6IFsnKiddLAorICAgICAgICB9LAorICAg ICAgICBkZXBzOiBbJ3NzbG1vZGUnXSwKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGlkOiAn c3NsY29tcHJlc3Npb24nLCBsYWJlbDogZ2V0dGV4dCgnU1NMIGNvbXByZXNzaW9uPycpLCB0eXBl OiAnc3dpdGNoJywKKyAgICAgICAgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLCBncm91cDogZ2V0 dGV4dCgnU1NMJyksCisgICAgICAgIGRpc2FibGVkOiBvYmouaXNTU0wsIHJlYWRvbmx5OiBvYmou aXNDb25uZWN0ZWQsCisgICAgICAgIGRlcHM6IFsnc3NsbW9kZSddLAorICAgICAgfSwKKyAgICAg IHsKKyAgICAgICAgaWQ6ICdzc2xjZXJ0JywgbGFiZWw6IGdldHRleHQoJ0NsaWVudCBjZXJ0aWZp Y2F0ZScpLCB0eXBlOiAndGV4dCcsCisgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdTU0wnKSwgbW9k ZTogWydwcm9wZXJ0aWVzJ10sCisgICAgICAgIGRlcHM6IFsnc3NsbW9kZSddLAorICAgICAgICB2 aXNpYmxlOiBmdW5jdGlvbihzdGF0ZSkgeworICAgICAgICAgIHZhciBzc2xjZXJ0ID0gc3RhdGUu c3NsY2VydDsKKyAgICAgICAgICByZXR1cm4gIV8uaXNVbmRlZmluZWQoc3NsY2VydCkgJiYgIV8u aXNOdWxsKHNzbGNlcnQpOworICAgICAgICB9LAorICAgICAgfSx7CisgICAgICAgIGlkOiAnc3Ns a2V5JywgbGFiZWw6IGdldHRleHQoJ0NsaWVudCBjZXJ0aWZpY2F0ZSBrZXknKSwgdHlwZTogJ3Rl eHQnLAorICAgICAgICBncm91cDogZ2V0dGV4dCgnU1NMJyksIG1vZGU6IFsncHJvcGVydGllcydd LAorICAgICAgICBkZXBzOiBbJ3NzbG1vZGUnXSwKKyAgICAgICAgdmlzaWJsZTogZnVuY3Rpb24o c3RhdGUpIHsKKyAgICAgICAgICB2YXIgc3Nsa2V5ID0gc3RhdGUuc3Nsa2V5OworICAgICAgICAg IHJldHVybiAhXy5pc1VuZGVmaW5lZChzc2xrZXkpICYmICFfLmlzTnVsbChzc2xrZXkpOworICAg ICAgICB9LAorICAgICAgfSx7CisgICAgICAgIGlkOiAnc3Nscm9vdGNlcnQnLCBsYWJlbDogZ2V0 dGV4dCgnUm9vdCBjZXJ0aWZpY2F0ZScpLCB0eXBlOiAndGV4dCcsCisgICAgICAgIGdyb3VwOiBn ZXR0ZXh0KCdTU0wnKSwgbW9kZTogWydwcm9wZXJ0aWVzJ10sCisgICAgICAgIGRlcHM6IFsnc3Ns bW9kZSddLAorICAgICAgICB2aXNpYmxlOiBmdW5jdGlvbihzdGF0ZSkgeworICAgICAgICAgIHZh ciBzc2xyb290Y2VydCA9IHN0YXRlLnNzbHJvb3RjZXJ0OworICAgICAgICAgIHJldHVybiAhXy5p c1VuZGVmaW5lZChzc2xyb290Y2VydCkgJiYgIV8uaXNOdWxsKHNzbHJvb3RjZXJ0KTsKKyAgICAg ICAgfSwKKyAgICAgIH0seworICAgICAgICBpZDogJ3NzbGNybCcsIGxhYmVsOiBnZXR0ZXh0KCdD ZXJ0aWZpY2F0ZSByZXZvY2F0aW9uIGxpc3QnKSwgdHlwZTogJ3RleHQnLAorICAgICAgICBncm91 cDogZ2V0dGV4dCgnU1NMJyksIG1vZGU6IFsncHJvcGVydGllcyddLAorICAgICAgICBkZXBzOiBb J3NzbG1vZGUnXSwKKyAgICAgICAgdmlzaWJsZTogZnVuY3Rpb24oc3RhdGUpIHsKKyAgICAgICAg ICB2YXIgc3NsY3JsID0gc3RhdGUuc3NsY3JsOworICAgICAgICAgIHJldHVybiAhXy5pc1VuZGVm aW5lZChzc2xjcmwpICYmICFfLmlzTnVsbChzc2xjcmwpOworICAgICAgICB9LAorICAgICAgfSx7 CisgICAgICAgIGlkOiAnc3NsY29tcHJlc3Npb24nLCBsYWJlbDogZ2V0dGV4dCgnU1NMIGNvbXBy ZXNzaW9uPycpLCB0eXBlOiAnc3dpdGNoJywKKyAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJ10s IGdyb3VwOiBnZXR0ZXh0KCdTU0wnKSwKKyAgICAgICAgZGVwczogWydzc2xtb2RlJ10sCisgICAg ICAgIHZpc2libGU6IGZ1bmN0aW9uKHN0YXRlKSB7CisgICAgICAgICAgcmV0dXJuIF8uaW5kZXhP ZihvYmouU1NMX01PREVTLCBzdGF0ZS5zc2xtb2RlKSAhPSAtMTsKKyAgICAgICAgfSwKKyAgICAg IH0sCisgICAgICB7CisgICAgICAgIGlkOiAndXNlX3NzaF90dW5uZWwnLCBsYWJlbDogZ2V0dGV4 dCgnVXNlIFNTSCB0dW5uZWxpbmcnKSwgdHlwZTogJ3N3aXRjaCcsCisgICAgICAgIG1vZGU6IFsn cHJvcGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSddLCBncm91cDogZ2V0dGV4dCgnU1NIIFR1bm5l bCcpLAorICAgICAgICBkaXNhYmxlZDogZnVuY3Rpb24oKSB7CisgICAgICAgICAgcmV0dXJuICFw Z0FkbWluLkJyb3dzZXIudXRpbHMuc3VwcG9ydF9zc2hfdHVubmVsOworICAgICAgICB9LAorICAg ICAgICByZWFkb25seTogb2JqLmlzQ29ubmVjdGVkLAorICAgICAgfSx7CisgICAgICAgIGlkOiAn dHVubmVsX2hvc3QnLCBsYWJlbDogZ2V0dGV4dCgnVHVubmVsIGhvc3QnKSwgdHlwZTogJ3RleHQn LCBncm91cDogZ2V0dGV4dCgnU1NIIFR1bm5lbCcpLAorICAgICAgICBtb2RlOiBbJ3Byb3BlcnRp ZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwgZGVwczogWyd1c2Vfc3NoX3R1bm5lbCddLAorICAgICAg ICBkaXNhYmxlZDogZnVuY3Rpb24oc3RhdGUpIHsKKyAgICAgICAgICByZXR1cm4gIXN0YXRlLnVz ZV9zc2hfdHVubmVsOworICAgICAgICB9LAorICAgICAgICByZWFkb25seTogb2JqLmlzQ29ubmVj dGVkLAorICAgICAgfSx7CisgICAgICAgIGlkOiAndHVubmVsX3BvcnQnLCBsYWJlbDogZ2V0dGV4 dCgnVHVubmVsIHBvcnQnKSwgdHlwZTogJ2ludCcsIGdyb3VwOiBnZXR0ZXh0KCdTU0ggVHVubmVs JyksCisgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSddLCBkZXBz OiBbJ3VzZV9zc2hfdHVubmVsJ10sIG1heDogNjU1MzUsCisgICAgICAgIGRpc2FibGVkOiBmdW5j dGlvbihzdGF0ZSkgeworICAgICAgICAgIHJldHVybiAhc3RhdGUudXNlX3NzaF90dW5uZWw7Cisg ICAgICAgIH0sCisgICAgICAgIHJlYWRvbmx5OiBvYmouaXNDb25uZWN0ZWQsCisgICAgICB9LHsK KyAgICAgICAgaWQ6ICd0dW5uZWxfdXNlcm5hbWUnLCBsYWJlbDogZ2V0dGV4dCgnVXNlcm5hbWUn KSwgdHlwZTogJ3RleHQnLCBncm91cDogZ2V0dGV4dCgnU1NIIFR1bm5lbCcpLAorICAgICAgICBt b2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwgZGVwczogWyd1c2Vfc3NoX3R1 bm5lbCddLAorICAgICAgICBkaXNhYmxlZDogZnVuY3Rpb24oc3RhdGUpIHsKKyAgICAgICAgICBy ZXR1cm4gIXN0YXRlLnVzZV9zc2hfdHVubmVsOworICAgICAgICB9LAorICAgICAgICByZWFkb25s eTogb2JqLmlzQ29ubmVjdGVkLAorICAgICAgfSx7CisgICAgICAgIGlkOiAndHVubmVsX2F1dGhl bnRpY2F0aW9uJywgbGFiZWw6IGdldHRleHQoJ0F1dGhlbnRpY2F0aW9uJyksIHR5cGU6ICd0b2dn bGUnLAorICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwgZ3Jv dXA6IGdldHRleHQoJ1NTSCBUdW5uZWwnKSwKKyAgICAgICAgb3B0aW9uczogWworICAgICAgICAg IHsnbGFiZWwnOiBnZXR0ZXh0KCdQYXNzd29yZCcpLCB2YWx1ZTogZmFsc2V9LAorICAgICAgICAg IHsnbGFiZWwnOiBnZXR0ZXh0KCdJZGVudGl0eSBmaWxlJyksIHZhbHVlOiB0cnVlfSwKKyAgICAg ICAgXSwKKyAgICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKHN0YXRlKSB7CisgICAgICAgICAgcmV0 dXJuICFzdGF0ZS51c2Vfc3NoX3R1bm5lbDsKKyAgICAgICAgfSwKKyAgICAgICAgcmVhZG9ubHk6 IG9iai5pc0Nvbm5lY3RlZCwKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGlkOiAndHVubmVs X2lkZW50aXR5X2ZpbGUnLCBsYWJlbDogZ2V0dGV4dCgnSWRlbnRpdHkgZmlsZScpLCB0eXBlOiAn ZmlsZScsCisgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdTU0ggVHVubmVsJyksIG1vZGU6IFsncHJv cGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICBjb250cm9sUHJvcHM6IHsKKyAg ICAgICAgICBkaWFsb2dUeXBlOiAnc2VsZWN0X2ZpbGUnLCBzdXBwb3J0ZWRUeXBlczogWycqJ10s CisgICAgICAgIH0sCisgICAgICAgIGRlcHM6IFsndHVubmVsX2F1dGhlbnRpY2F0aW9uJywgJ3Vz ZV9zc2hfdHVubmVsJ10sCisgICAgICAgIGRlcENoYW5nZTogKHN0YXRlKT0+eworICAgICAgICAg IGlmICghc3RhdGUudHVubmVsX2F1dGhlbnRpY2F0aW9uICYmIHN0YXRlLnR1bm5lbF9pZGVudGl0 eV9maWxlKSB7CisgICAgICAgICAgICByZXR1cm4ge3R1bm5lbF9pZGVudGl0eV9maWxlOiBudWxs fTsKKyAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIGRpc2FibGVkOiBmdW5jdGlvbihz dGF0ZSkgeworICAgICAgICAgIHJldHVybiAhc3RhdGUudHVubmVsX2F1dGhlbnRpY2F0aW9uIHx8 ICFzdGF0ZS51c2Vfc3NoX3R1bm5lbDsKKyAgICAgICAgfSwKKyAgICAgIH0sCisgICAgICB7Cisg ICAgICAgIGlkOiAndHVubmVsX3Bhc3N3b3JkJywgbGFiZWw6IGdldHRleHQoJ1Bhc3N3b3JkJyks IHR5cGU6ICdwYXNzd29yZCcsCisgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdTU0ggVHVubmVsJyks IG1vZGU6IFsnY3JlYXRlJ10sCisgICAgICAgIGRlcHM6IFsndXNlX3NzaF90dW5uZWwnXSwKKyAg ICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKHN0YXRlKSB7CisgICAgICAgICAgcmV0dXJuICFzdGF0 ZS51c2Vfc3NoX3R1bm5lbDsKKyAgICAgICAgfSwKKyAgICAgICAgcmVhZG9ubHk6IG9iai5pc0Nv bm5lY3RlZCwKKyAgICAgIH0sIHsKKyAgICAgICAgaWQ6ICdzYXZlX3R1bm5lbF9wYXNzd29yZCcs IGxhYmVsOiBnZXR0ZXh0KCdTYXZlIHBhc3N3b3JkPycpLAorICAgICAgICB0eXBlOiAnc3dpdGNo JywgZ3JvdXA6IGdldHRleHQoJ1NTSCBUdW5uZWwnKSwgbW9kZTogWydjcmVhdGUnXSwKKyAgICAg ICAgZGVwczogWydjb25uZWN0X25vdycsICd1c2Vfc3NoX3R1bm5lbCddLAorICAgICAgICB2aXNp YmxlOiBmdW5jdGlvbihzdGF0ZSkgeworICAgICAgICAgIHJldHVybiBzdGF0ZS5jb25uZWN0X25v dyAmJiBvYmouaXNOZXcoc3RhdGUpOworICAgICAgICB9LAorICAgICAgICBkaXNhYmxlZDogZnVu Y3Rpb24oc3RhdGUpIHsKKyAgICAgICAgICByZXR1cm4gKCFjdXJyZW50X3VzZXIuYWxsb3dfc2F2 ZV90dW5uZWxfcGFzc3dvcmQgfHwgIXN0YXRlLnVzZV9zc2hfdHVubmVsKTsKKyAgICAgICAgfSwK KyAgICAgIH0sIHsKKyAgICAgICAgaWQ6ICdob3N0YWRkcicsIGxhYmVsOiBnZXR0ZXh0KCdIb3N0 IGFkZHJlc3MnKSwgdHlwZTogJ3RleHQnLCBncm91cDogZ2V0dGV4dCgnQWR2YW5jZWQnKSwKKyAg ICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2VkaXQnLCAnY3JlYXRlJ10sIHJlYWRvbmx5OiBv YmouaXNDb25uZWN0ZWQsCisgICAgICB9LAorICAgICAgeworICAgICAgICBpZDogJ2RiX3Jlcycs IGxhYmVsOiBnZXR0ZXh0KCdEQiByZXN0cmljdGlvbicpLCB0eXBlOiAnc2VsZWN0JywgZ3JvdXA6 IGdldHRleHQoJ0FkdmFuY2VkJyksCisgICAgICAgIG9wdGlvbnM6IFtdLAorICAgICAgICBtb2Rl OiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwgcmVhZG9ubHk6IG9iai5pc0Nvbm5l Y3RlZCwgY29udHJvbFByb3BzOiB7CisgICAgICAgICAgbXVsdGlwbGU6IHRydWUsIGFsbG93Q2xl YXI6IGZhbHNlLCBjcmVhdGFibGU6IHRydWV9LAorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAg aWQ6ICdwYXNzZmlsZScsIGxhYmVsOiBnZXR0ZXh0KCdQYXNzd29yZCBmaWxlJyksIHR5cGU6ICdm aWxlJywKKyAgICAgICAgZ3JvdXA6IGdldHRleHQoJ0FkdmFuY2VkJyksIG1vZGU6IFsnZWRpdCcs ICdjcmVhdGUnXSwKKyAgICAgICAgZGlzYWJsZWQ6IG9iai5pc1ZhbGlkTGliLCByZWFkb25seTog b2JqLmlzQ29ubmVjdGVkLAorICAgICAgICBjb250cm9sUHJvcHM6IHsKKyAgICAgICAgICBkaWFs b2dUeXBlOiAnc2VsZWN0X2ZpbGUnLCBzdXBwb3J0ZWRUeXBlczogWycqJ10sCisgICAgICAgIH0s CisgICAgICB9LAorICAgICAgeworICAgICAgICBpZDogJ3Bhc3NmaWxlJywgbGFiZWw6IGdldHRl eHQoJ1Bhc3N3b3JkIGZpbGUnKSwgdHlwZTogJ3RleHQnLAorICAgICAgICBncm91cDogZ2V0dGV4 dCgnQWR2YW5jZWQnKSwgbW9kZTogWydwcm9wZXJ0aWVzJ10sCisgICAgICAgIHZpc2libGU6IGZ1 bmN0aW9uKHN0YXRlKSB7CisgICAgICAgICAgdmFyIHBhc3NmaWxlID0gc3RhdGUucGFzc2ZpbGU7 CisgICAgICAgICAgcmV0dXJuICFfLmlzVW5kZWZpbmVkKHBhc3NmaWxlKSAmJiAhXy5pc051bGwo cGFzc2ZpbGUpOworICAgICAgICB9LAorICAgICAgfSx7CisgICAgICAgIGlkOiAnY29ubmVjdF90 aW1lb3V0JywgbGFiZWw6IGdldHRleHQoJ0Nvbm5lY3Rpb24gdGltZW91dCAoc2Vjb25kcyknKSwK KyAgICAgICAgdHlwZTogJ2ludCcsIGdyb3VwOiBnZXR0ZXh0KCdBZHZhbmNlZCcpLAorICAgICAg ICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwgcmVhZG9ubHk6IG9iai5p c0Nvbm5lY3RlZCwKKyAgICAgICAgbWluOiAwLAorICAgICAgfQorICAgIF07CisgIH0KKworICB2 YWxpZGF0ZShzdGF0ZSwgc2V0RXJyb3IpIHsKKyAgICBsZXQgZXJybXNnID0gbnVsbDsKKworICAg IGlmIChpc0VtcHR5U3RyaW5nKHN0YXRlLnNlcnZpY2UpKSB7CisgICAgICBlcnJtc2cgPSBnZXR0 ZXh0KCdFaXRoZXIgSG9zdCBuYW1lLCBBZGRyZXNzIG9yIFNlcnZpY2UgbXVzdCBiZSBzcGVjaWZp ZWQuJyk7CisgICAgICBpZihpc0VtcHR5U3RyaW5nKHN0YXRlLmhvc3QpICYmIGlzRW1wdHlTdHJp bmcoc3RhdGUuaG9zdGFkZHIpKSB7CisgICAgICAgIHNldEVycm9yKCdob3N0JywgZXJybXNnKTsK KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICB9IGVsc2UgeworICAgICAgICBlcnJtc2cgPSBu dWxsOworICAgICAgICBzZXRFcnJvcignaG9zdCcsIGVycm1zZyk7CisgICAgICAgIHNldEVycm9y KCdob3N0YWRkcicsIGVycm1zZyk7CisgICAgICB9CisKKyAgICAgIC8qIElQIGFkZHJlc3MgdmFs aWRhdGUgKi8KKyAgICAgIGlmIChzdGF0ZS5ob3N0YWRkcikgeworICAgICAgICB0cnkgeworICAg ICAgICAgIG5ldyBBZGRyZXNzNChzdGF0ZS5ob3N0YWRkcik7CisgICAgICAgIH0gY2F0Y2goZSkg eworICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICBuZXcgQWRkcmVzczYoc3RhdGUuaG9zdGFk ZHIpOworICAgICAgICAgIH0gY2F0Y2goZXgpIHsKKyAgICAgICAgICAgIGVycm1zZyA9IGdldHRl eHQoJ0hvc3QgYWRkcmVzcyBtdXN0IGJlIHZhbGlkIElQdjQgb3IgSVB2NiBhZGRyZXNzLicpOwor ICAgICAgICAgICAgc2V0RXJyb3IoJ2hvc3RhZGRyJywgZXJybXNnKTsKKyAgICAgICAgICAgIHJl dHVybiB0cnVlOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfSBlbHNlIHsKKyAgICAg ICAgc2V0RXJyb3IoJ2hvc3RhZGRyJywgbnVsbCk7CisgICAgICB9CisKKyAgICAgIGlmKGlzRW1w dHlTdHJpbmcoc3RhdGUudXNlcm5hbWUpKSB7CisgICAgICAgIGVycm1zZyA9IGdldHRleHQoJ1Vz ZXJuYW1lIG11c3QgYmUgc3BlY2lmaWVkLicpOworICAgICAgICBzZXRFcnJvcigndXNlcm5hbWUn LCBlcnJtc2cpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAg IGVycm1zZyA9IG51bGw7CisgICAgICAgIHNldEVycm9yKCd1c2VybmFtZScsIGVycm1zZyk7Cisg ICAgICB9CisKKyAgICAgIGlmKGlzRW1wdHlTdHJpbmcoc3RhdGUucG9ydCkpIHsKKyAgICAgICAg ZXJybXNnID0gZ2V0dGV4dCgnUG9ydCBtdXN0IGJlIHNwZWNpZmllZC4nKTsKKyAgICAgICAgc2V0 RXJyb3IoJ3BvcnQnLCBlcnJtc2cpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIH0gZWxz ZSB7CisgICAgICAgIGVycm1zZyA9IG51bGw7CisgICAgICAgIHNldEVycm9yKCdwb3J0JywgZXJy bXNnKTsKKyAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgZXJybXNnID0gbnVsbDsKKyAgICAg IF8uZWFjaChbJ2hvc3QnLCAnaG9zdGFkZHInLCAnZGInLCAndXNlcm5hbWUnLCAncG9ydCddLCAo aXRlbSkgPT4geworICAgICAgICBzZXRFcnJvcihpdGVtLCBlcnJtc2cpOworICAgICAgfSk7Cisg ICAgfQorCisgICAgaWYgKHN0YXRlLnVzZV9zc2hfdHVubmVsKSB7CisgICAgICBpZihpc0VtcHR5 U3RyaW5nKHN0YXRlLnR1bm5lbF9ob3N0KSkgeworICAgICAgICBlcnJtc2cgPSBnZXR0ZXh0KCdT U0ggVHVubmVsIGhvc3QgbXVzdCBiZSBzcGVjaWZpZWQuJyk7CisgICAgICAgIHNldEVycm9yKCd0 dW5uZWxfaG9zdCcsIGVycm1zZyk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgfSBlbHNl IHsKKyAgICAgICAgZXJybXNnID0gbnVsbDsKKyAgICAgICAgc2V0RXJyb3IoJ3R1bm5lbF9ob3N0 JywgZXJybXNnKTsKKyAgICAgIH0KKworICAgICAgaWYoaXNFbXB0eVN0cmluZyhzdGF0ZS50dW5u ZWxfcG9ydCkpIHsKKyAgICAgICAgZXJybXNnID0gZ2V0dGV4dCgnU1NIIFR1bm5lbCBwb3J0IG11 c3QgYmUgc3BlY2lmaWVkLicpOworICAgICAgICBzZXRFcnJvcigndHVubmVsX3BvcnQnLCBlcnJt c2cpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGVycm1z ZyA9IG51bGw7CisgICAgICAgIHNldEVycm9yKCd0dW5uZWxfcG9ydCcsIGVycm1zZyk7CisgICAg ICB9CisKKyAgICAgIGlmKGlzRW1wdHlTdHJpbmcoc3RhdGUudHVubmVsX3VzZXJuYW1lKSkgewor ICAgICAgICBlcnJtc2cgPSBnZXR0ZXh0KCdTU0ggVHVubmVsIHVzZXJuYW1lIG11c3QgYmUgc3Bl Y2lmaWVkLicpOworICAgICAgICBzZXRFcnJvcigndHVubmVsX3VzZXJuYW1lJywgZXJybXNnKTsK KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICB9IGVsc2UgeworICAgICAgICBlcnJtc2cgPSBu dWxsOworICAgICAgICBzZXRFcnJvcigndHVubmVsX3VzZXJuYW1lJywgZXJybXNnKTsKKyAgICAg IH0KKworICAgICAgaWYgKHN0YXRlLnR1bm5lbF9hdXRoZW50aWNhdGlvbikgeworICAgICAgICBp Zihpc0VtcHR5U3RyaW5nKHN0YXRlLnR1bm5lbF9pZGVudGl0eV9maWxlKSkgeworICAgICAgICAg IGVycm1zZyA9IGdldHRleHQoJ1NTSCBUdW5uZWwgaWRlbnRpdHkgZmlsZSBtdXN0IGJlIHNwZWNp ZmllZC4nKTsKKyAgICAgICAgICBzZXRFcnJvcigndHVubmVsX2lkZW50aXR5X2ZpbGUnLCBlcnJt c2cpOworICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg IGVycm1zZyA9IG51bGw7CisgICAgICAgICAgc2V0RXJyb3IoJ3R1bm5lbF9pZGVudGl0eV9maWxl JywgZXJybXNnKTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gZmFsc2U7 CisgIH0KK30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3N0YXRpYy9qcy92YXJpYWJsZS51aS5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL3N0YXRpYy9qcy92YXJpYWJsZS51aS5qcwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjI1ZDMwNzI5ZAotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3N0YXRpYy9qcy92YXJpYWJs ZS51aS5qcwpAQCAtMCwwICsxLDEzMCBAQAoraW1wb3J0IGdldHRleHQgZnJvbSAnc291cmNlcy9n ZXR0ZXh0JzsKK2ltcG9ydCBfIGZyb20gJ2xvZGFzaCc7CitpbXBvcnQgQmFzZVVJU2NoZW1hIGZy b20gJ3NvdXJjZXMvU2NoZW1hVmlldy9iYXNlX3NjaGVtYS51aSc7CitpbXBvcnQgeyBnZXROb2Rl QWpheE9wdGlvbnMsIGdldE5vZGVMaXN0QnlOYW1lIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3RhdGlj L2pzL25vZGVfYWpheCc7CisKK2V4cG9ydCBmdW5jdGlvbiBnZXROb2RlVmFyaWFibGVTY2hlbWEo bm9kZU9iaiwgdHJlZU5vZGVJbmZvLCBpdGVtTm9kZURhdGEsIGhhc0RhdGFiYXNlLCBoYXNSb2xl KSB7CisgIGxldCBrZXlzID0gWyduYW1lJywgJ3ZhbHVlJ107CisgIGlmKGhhc0RhdGFiYXNlKSB7 CisgICAga2V5cy5wdXNoKCdkYXRhYmFzZScpOworICB9CisgIGlmKGhhc1JvbGUpIHsKKyAgICBr ZXlzLnB1c2goJ3JvbGUnKTsKKyAgfQorICByZXR1cm4gbmV3IFZhcmlhYmxlU2NoZW1hKAorICAg ICgpPT5nZXROb2RlQWpheE9wdGlvbnMoJ3ZvcHRzJywgbm9kZU9iaiwgdHJlZU5vZGVJbmZvLCBp dGVtTm9kZURhdGEsIG51bGwsICh2YXJzKT0+eworICAgICAgdmFyIHJlcyA9IFtdOworICAgICAg Xy5lYWNoKHZhcnMsIGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgcmVzLnB1c2goeworICAgICAgICAg ICd2YWx1ZSc6IHYubmFtZSwKKyAgICAgICAgICAnaW1hZ2UnOiB1bmRlZmluZWQsCisgICAgICAg ICAgJ2xhYmVsJzogdi5uYW1lLAorICAgICAgICAgICd2YXJ0eXBlJzogdi52YXJ0eXBlLAorICAg ICAgICAgICdlbnVtdmFscyc6IHYuZW51bXZhbHMsCisgICAgICAgICAgJ21heF92YWwnOiB2Lm1h eF92YWwsCisgICAgICAgICAgJ21pbl92YWwnOiB2Lm1pbl92YWwsCisgICAgICAgIH0pOworICAg ICAgfSk7CisKKyAgICAgIHJldHVybiByZXM7CisgICAgfSksCisgICAgKCk9PmdldE5vZGVMaXN0 QnlOYW1lKCdkYXRhYmFzZScsIHRyZWVOb2RlSW5mbywgaXRlbU5vZGVEYXRhKSwKKyAgICAoKT0+ Z2V0Tm9kZUxpc3RCeU5hbWUoJ3JvbGUnLCB0cmVlTm9kZUluZm8sIGl0ZW1Ob2RlRGF0YSksCisg ICAga2V5cworICApOworfQorCitleHBvcnQgZGVmYXVsdCBjbGFzcyBWYXJpYWJsZVNjaGVtYSBl eHRlbmRzIEJhc2VVSVNjaGVtYSB7CisgIGNvbnN0cnVjdG9yKHZuYW1lT3B0aW9ucywgZGF0YWJh c2VPcHRpb25zLCByb2xlT3B0aW9ucywga2V5cykgeworICAgIHN1cGVyKHsKKyAgICAgIG5hbWU6 IHVuZGVmaW5lZCwKKyAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICByb2xlOiBudWxsLAor ICAgICAgZGF0YWJhc2U6IG51bGwsCisgICAgfSk7CisgICAgdGhpcy52bmFtZU9wdGlvbnMgPSB2 bmFtZU9wdGlvbnM7CisgICAgdGhpcy5kYXRhYmFzZU9wdGlvbnMgPSBkYXRhYmFzZU9wdGlvbnM7 CisgICAgdGhpcy5yb2xlT3B0aW9ucyA9IHJvbGVPcHRpb25zOworICAgIHRoaXMudmFyVHlwZXMg PSB7fTsKKyAgICB0aGlzLmtleXMgPSBrZXlzOworICB9CisKKyAgc2V0VmFyVHlwZXMob3B0aW9u cykgeworICAgIG9wdGlvbnMuZm9yRWFjaCgob3B0aW9uKT0+eworICAgICAgdGhpcy52YXJUeXBl c1tvcHRpb24udmFsdWVdID0geworICAgICAgICAuLi5vcHRpb24sCisgICAgICB9OworICAgIH0p OworICB9CisKKyAgZ2V0VmFsdWVGaWVsZFByb3BzKHZhcmlhYmxlKSB7CisgICAgc3dpdGNoKHZh cmlhYmxlPy52YXJ0eXBlKSB7CisgICAgY2FzZSAnYm9vbCc6CisgICAgICByZXR1cm4gJ3N3aXRj aCc7CisgICAgY2FzZSAnZW51bSc6CisgICAgICByZXR1cm4geworICAgICAgICBjZWxsOiAnc2Vs ZWN0JywKKyAgICAgICAgb3B0aW9uczogKHZhcmlhYmxlLmVudW12YWxzIHx8IFtdKS5tYXAoKHZh bCk9Pih7CisgICAgICAgICAgbGFiZWw6IHZhbCwKKyAgICAgICAgICB2YWx1ZTogdmFsCisgICAg ICAgIH0pKQorICAgICAgfTsKKyAgICBjYXNlICdpbnRlZ2VyJzoKKyAgICAgIHJldHVybiAnaW50 JzsKKyAgICBjYXNlICdyZWFsJzoKKyAgICAgIHJldHVybiAnbnVtYmVyJzsKKyAgICBjYXNlICdz dHJpbmcnOgorICAgICAgcmV0dXJuICd0ZXh0JzsKKyAgICBkZWZhdWx0OgorICAgICAgcmV0dXJu ICcnOworICAgIH0KKyAgfQorCisgIGdldCBiYXNlRmllbGRzKCkgeworICAgIGxldCBvYmogPSB0 aGlzOworICAgIHJldHVybiBbCisgICAgICB7CisgICAgICAgIGlkOiAnaWQnLCBsYWJlbDogZ2V0 dGV4dCgnSUQnKSwgdHlwZTogJ2ludCcsIGdyb3VwOiBudWxsLAorICAgICAgICBtb2RlOiBbJ3By b3BlcnRpZXMnXSwKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGlkOiAnbmFtZScsIGxhYmVs OiBnZXR0ZXh0KCdOYW1lJyksIHR5cGU6J3RleHQnLAorICAgICAgICByZWFkb25seTogZnVuY3Rp b24oc3RhdGUpIHsKKyAgICAgICAgICByZXR1cm4gIW9iai5pc05ldyhzdGF0ZSk7CisgICAgICAg IH0sCisgICAgICAgIGNlbGw6ICgpPT4oeworICAgICAgICAgIGNlbGw6ICdzZWxlY3QnLAorICAg ICAgICAgIG9wdGlvbnM6IHRoaXMudm5hbWVPcHRpb25zLAorICAgICAgICAgIG9wdGlvbnNMb2Fk ZWQ6IChvcHRpb25zKT0+e29iai5zZXRWYXJUeXBlcyhvcHRpb25zKTt9LAorICAgICAgICAgIGNv bnRyb2xQcm9wczogeyBhbGxvd0NsZWFyOiBmYWxzZSB9LAorICAgICAgICB9KSwKKyAgICAgICAg bm9FbXB0eTogdHJ1ZSwKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGlkOiAndmFsdWUnLCBs YWJlbDogZ2V0dGV4dCgnVmFsdWUnKSwgdHlwZTogJ3RleHQnLAorICAgICAgICBub0VtcHR5OiB0 cnVlLCBkZXBzOiBbJ25hbWUnXSwKKyAgICAgICAgZGVwQ2hhbmdlOiAoc3RhdGUsIGNoYW5nZVNv dXJjZSk9PnsKKyAgICAgICAgICBpZihjaGFuZ2VTb3VyY2UgPT0gJ25hbWUnKSB7CisgICAgICAg ICAgICByZXR1cm4gey4uLnN0YXRlCisgICAgICAgICAgICAgICwgdmFsdWU6IG51bGwKKyAgICAg ICAgICAgIH07CisgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICBjZWxsOiAocm93KT0+ eworICAgICAgICAgIGxldCB2YXJpYWJsZSA9IHRoaXMudmFyVHlwZXNbcm93Lm5hbWVdOworICAg ICAgICAgIHJldHVybiB0aGlzLmdldFZhbHVlRmllbGRQcm9wcyh2YXJpYWJsZSk7CisgICAgICAg IH0KKyAgICAgIH0sCisgICAgICB7aWQ6ICdkYXRhYmFzZScsIGxhYmVsOiBnZXR0ZXh0KCdEYXRh YmFzZScpLCB0eXBlOiAndGV4dCcsCisgICAgICAgIGNlbGw6ICgpPT4oe2NlbGw6ICdzZWxlY3Qn LCBvcHRpb25zOiB0aGlzLmRhdGFiYXNlT3B0aW9ucyB9KSwKKyAgICAgIH0sCisgICAgICB7aWQ6 ICdyb2xlJywgbGFiZWw6IGdldHRleHQoJ1JvbGUnKSwgdHlwZTogJ3RleHQnLAorICAgICAgICBj ZWxsOiAoKT0+KHtjZWxsOiAnc2VsZWN0Jywgb3B0aW9uczogdGhpcy5yb2xlT3B0aW9ucywKKyAg ICAgICAgICBjb250cm9sUHJvcHM6IHsKKyAgICAgICAgICAgIGFsbG93Q2xlYXI6IGZhbHNlLAor ICAgICAgICAgIH0KKyAgICAgICAgfSksCisgICAgICB9LAorICAgIF07CisgIH0KK30KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zdGF0aWMvanMvc2VydmVy X2dyb3VwLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3N0YXRpYy9qcy9z ZXJ2ZXJfZ3JvdXAuanMKaW5kZXggNjk0MmI4MzA4Li41YzZjNDFkZmEgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zdGF0aWMvanMvc2VydmVyX2dyb3VwLmpz CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zdGF0aWMvanMvc2VydmVy X2dyb3VwLmpzCkBAIC02LDYgKzYsNyBAQAogLy8gVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1 bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAvLwogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK2ltcG9ydCBTZXJ2ZXJHcm91 cFNjaGVtYSBmcm9tICcuL3NlcnZlcl9ncm91cC51aSc7CiAKIGRlZmluZSgncGdhZG1pbi5ub2Rl LnNlcnZlcl9ncm91cCcsIFsKICAgJ3NvdXJjZXMvZ2V0dGV4dCcsICdzb3VyY2VzL3VybF9mb3In LCAnanF1ZXJ5JywgJ3VuZGVyc2NvcmUnLApAQCAtMzUsNTIgKzM2LDcgQEAgZGVmaW5lKCdwZ2Fk bWluLm5vZGUuc2VydmVyX2dyb3VwJywgWwogICAgICAgICAgIGRhdGE6IHsnYWN0aW9uJzogJ2Ny ZWF0ZSd9LCBpY29uOiAnd2NUYWJJY29uIGljb24tc2VydmVyX2dyb3VwJywKICAgICAgICAgfV0p OwogICAgICAgfSwKLSAgICAgIG1vZGVsOiBwZ0FkbWluLkJyb3dzZXIuTm9kZS5Nb2RlbC5leHRl bmQoewotICAgICAgICBkZWZhdWx0czogewotICAgICAgICAgIGlkOiB1bmRlZmluZWQsCi0gICAg ICAgICAgbmFtZTogbnVsbCwKLSAgICAgICAgICB1c2VyX2lkOiB1bmRlZmluZWQsCi0gICAgICAg IH0sCi0gICAgICAgIHNjaGVtYTogWwotICAgICAgICAgIHsKLSAgICAgICAgICAgIGlkOiAnaWQn LCBsYWJlbDogZ2V0dGV4dCgnSUQnKSwgdHlwZTogJ2ludCcsIGdyb3VwOiBudWxsLAotICAgICAg ICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJ10sCi0gICAgICAgICAgICB2aXNpYmxlOiBmdW5jdGlv bihtb2RlbCl7Ci0gICAgICAgICAgICAgIGlmIChtb2RlbC5hdHRyaWJ1dGVzLnVzZXJfaWQgIT0g Y3VycmVudF91c2VyLmlkICYmICFjdXJyZW50X3VzZXIuaXNfYWRtaW4pCi0gICAgICAgICAgICAg ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAg IH0sCi0gICAgICAgICAgfSx7Ci0gICAgICAgICAgICBpZDogJ25hbWUnLCBsYWJlbDogZ2V0dGV4 dCgnTmFtZScpLCB0eXBlOiAndGV4dCcsIGdyb3VwOiBudWxsLAotICAgICAgICAgICAgbW9kZTog Wydwcm9wZXJ0aWVzJywgJ2VkaXQnLCAnY3JlYXRlJ10sCi0gICAgICAgICAgICBkaXNhYmxlZDog ZnVuY3Rpb24obW9kZWwpewotICAgICAgICAgICAgICBpZiAobW9kZWwuYXR0cmlidXRlcy51c2Vy X2lkICE9IGN1cnJlbnRfdXNlci5pZCAmJiAhXy5pc1VuZGVmaW5lZChtb2RlbC5hdHRyaWJ1dGVz LnVzZXJfaWQpKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICBy ZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgIH0sCi0gICAgICAgIF0sCi0g ICAgICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpIHsKLSAgICAgICAgICB2YXIgZXJybXNnID0gbnVs bDsKLQotICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5jbGVhcigpOwotCi0gICAgICAgICAgaWYg KCF0aGlzLmlzTmV3KCkgJiYgJ2lkJyBpbiB0aGlzLmNoYW5nZWQpIHsKLSAgICAgICAgICAgIGVy cm1zZyA9IGdldHRleHQoJ1RoZSBJRCBjYW5ub3QgYmUgY2hhbmdlZC4nKTsKLSAgICAgICAgICAg IHRoaXMuZXJyb3JNb2RlbC5zZXQoJ2lkJywgZXJybXNnKTsKLSAgICAgICAgICAgIHJldHVybiBl cnJtc2c7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0 KCduYW1lJykpIHx8Ci0gICAgICAgICAgICBfLmlzTnVsbCh0aGlzLmdldCgnbmFtZScpKSB8fAot ICAgICAgICAgICAgICBTdHJpbmcodGhpcy5nZXQoJ25hbWUnKSkucmVwbGFjZSgvXlxzK3xccysk L2csICcnKSA9PSAnJykgewotICAgICAgICAgICAgZXJybXNnID0gZ2V0dGV4dCgnTmFtZSBjYW5u b3QgYmUgZW1wdHkuJyk7Ci0gICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCduYW1lJywg ZXJybXNnKTsKLSAgICAgICAgICAgIHJldHVybiBlcnJtc2c7Ci0gICAgICAgICAgfQotICAgICAg ICAgIHJldHVybiBudWxsOwotICAgICAgICB9LAotICAgICAgfSksCi0KKyAgICAgIGdldFNjaGVt YTogKCk9Pm5ldyBTZXJ2ZXJHcm91cFNjaGVtYSgpLAogICAgICAgY2FuRHJvcDogZnVuY3Rpb24o aXRlbURhdGEpIHsKICAgICAgICAgdmFyIHNlcnZlck93bmVyID0gaXRlbURhdGEudXNlcl9pZDsK ICAgICAgICAgaWYgKHNlcnZlck93bmVyICE9IGN1cnJlbnRfdXNlci5pZCAmJiAhXy5pc1VuZGVm aW5lZChzZXJ2ZXJPd25lcikpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc3RhdGljL2pzL3NlcnZlcl9ncm91cC51aS5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zdGF0aWMvanMvc2VydmVyX2dyb3VwLnVpLmpzCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZjYzMzY0MGFlCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3N0YXRpYy9qcy9zZXJ2ZXJfZ3JvdXAu dWkuanMKQEAgLTAsMCArMSwyNSBAQAoraW1wb3J0IGdldHRleHQgZnJvbSAnc291cmNlcy9nZXR0 ZXh0JzsKK2ltcG9ydCBCYXNlVUlTY2hlbWEgZnJvbSAnc291cmNlcy9TY2hlbWFWaWV3L2Jhc2Vf c2NoZW1hLnVpJzsKKworZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VydmVyR3JvdXBTY2hlbWEgZXh0 ZW5kcyBCYXNlVUlTY2hlbWEgeworICBjb25zdHJ1Y3RvcigpIHsKKyAgICBzdXBlcih7CisgICAg ICBpZDogdW5kZWZpbmVkLAorICAgICAgbmFtZTogbnVsbCwKKyAgICAgIHVzZXJfaWQ6IHVuZGVm aW5lZCwKKyAgICB9KTsKKyAgfQorCisgIGdldCBiYXNlRmllbGRzKCkgeworICAgIHJldHVybiBb CisgICAgICB7CisgICAgICAgIGlkOiAnaWQnLCBsYWJlbDogZ2V0dGV4dCgnSUQnKSwgdHlwZTog J2ludCcsIGdyb3VwOiBudWxsLAorICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwgdmlzaWJs ZTogdHJ1ZSwKKyAgICAgIH0seworICAgICAgICBpZDogJ25hbWUnLCBsYWJlbDogZ2V0dGV4dCgn TmFtZScpLCB0eXBlOiAndGV4dCcsIGdyb3VwOiBudWxsLAorICAgICAgICBtb2RlOiBbJ3Byb3Bl cnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwgbm9FbXB0eTogdHJ1ZSwKKyAgICAgICAgZGlzYWJs ZWQ6IGZhbHNlLAorICAgICAgfQorICAgIF07CisgIH0KK30KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc3RhdGljL2pzL2NvbGxlY3Rpb24uanMgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3N0YXRpYy9qcy9jb2xsZWN0aW9uLmpzCmluZGV4IDQ3Yzg3NzE1Ni4uYWFkYzM0YjZjIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9jb2xsZWN0aW9uLmpzCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL2NvbGxlY3Rpb24uanMKQEAgLTcsNiArNyw4 IEBACiAvLwogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8KIAoraW1wb3J0IHtyZW1vdmVOb2RlVmlld30gZnJvbSAnLi9ub2RlX3Zp ZXcnOworCiBkZWZpbmUoWwogICAnc291cmNlcy9nZXR0ZXh0JywgJ2pxdWVyeScsICd1bmRlcnNj b3JlJywgJ3NvdXJjZXMvcGdhZG1pbicsCiAgICdiYWNrYm9uZScsICdhbGVydGlmeScsICdiYWNr Zm9ybScsICdiYWNrZ3JpZCcsICdzb3VyY2VzL2Jyb3dzZXIvZ2VuZXJhdGVfdXJsJywKQEAgLTIz OCw2ICsyNDAsOCBAQCBkZWZpbmUoWwogICAgICAgICAgIGouZGF0YSgnb2JqLXZpZXcnLCBudWxs KTsKICAgICAgICAgfQogCisgICAgICAgIC8qIFJlbW92ZSBhbnkgZG9tIHJlbmRlcmVkIGJ5IGdl dE5vZGVWaWV3ICovCisgICAgICAgIHJlbW92ZU5vZGVWaWV3KGpbMF0pOwogICAgICAgICAvLyBN YWtlIHN1cmUgdGhlIEhUTUwgZWxlbWVudCBpcyBlbXB0eS4KICAgICAgICAgai5lbXB0eSgpOwog ICAgICAgICBqLmRhdGEoJ29iai12aWV3JywgZ3JpZFZpZXcpOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvbm9kZS5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3Rh dGljL2pzL25vZGUuanMKaW5kZXggZDU4YTJlMDM3Li4xYjAwMTE3ZDEgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL25vZGUuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zdGF0aWMvanMvbm9kZS5qcwpAQCAtNyw2ICs3LDggQEAKIC8vCiAvLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCitpbXBv cnQge2dldE5vZGVWaWV3LCByZW1vdmVOb2RlVmlld30gZnJvbSAnLi9ub2RlX3ZpZXcnOworCiBk ZWZpbmUoJ3BnYWRtaW4uYnJvd3Nlci5ub2RlJywgWwogICAnc291cmNlcy90cmVlL3BnYWRtaW5f dHJlZV9ub2RlJywgJ3NvdXJjZXMvdXJsX2ZvcicsCiAgICdzb3VyY2VzL2dldHRleHQnLCAnanF1 ZXJ5JywgJ3VuZGVyc2NvcmUnLCAnc291cmNlcy9wZ2FkbWluJywKQEAgLTEyMTYsNiArMTIxOCwy MiBAQCBkZWZpbmUoJ3BnYWRtaW4uYnJvd3Nlci5ub2RlJywgWwogICAgICAgICAgIC8vIENhY2hl IHRoZSBjdXJyZW50IElEcyBmb3IgbmV4dCB0aW1lCiAgICAgICAgICAgJCh0aGlzKS5kYXRhKCdu b2RlLXByb3AnLCB0cmVlSGllcmFyY2h5KTsKIAorICAgICAgICAgIC8qIFJlbW92ZSBhbnkgZG9t IHJlbmRlcmVkIGJ5IGdldE5vZGVWaWV3ICovCisgICAgICAgICAgcmVtb3ZlTm9kZVZpZXcoalsw XSk7CisgICAgICAgICAgLyogZ2V0U2NoZW1hIGlzIGEgc2NoZW1hIGZvciBSZWFjdC4gR2V0IHRo ZSByZWFjdCBub2RlIHZpZXcgKi8KKyAgICAgICAgICBpZih0aGF0LmdldFNjaGVtYSkgeworICAg ICAgICAgICAgbGV0IHRyZWVOb2RlSW5mbyA9IHRoYXQuZ2V0VHJlZU5vZGVIaWVyYXJjaHkuYXBw bHkodGhpcywgW2l0ZW1dKTsKKyAgICAgICAgICAgIGdldE5vZGVWaWV3KAorICAgICAgICAgICAg ICB0aGF0LnR5cGUsIHRyZWVOb2RlSW5mbywgJ3Byb3BlcnRpZXMnLCBkYXRhLCAndGFiJywgalsw XSwgdGhpcywgb25DYW5jZWxGdW5jLCBvbkVkaXQsCisgICAgICAgICAgICAgIChub2RlRGF0YSk9 PnsKKyAgICAgICAgICAgICAgICBpZihub2RlRGF0YS5ub2RlKSB7CisgICAgICAgICAgICAgICAg ICBvblNhdmVGdW5jKG5vZGVEYXRhLm5vZGUsIHRyZWVOb2RlSW5mbyk7CisgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworICAgICAgICAgICAgcmV0dXJu OworICAgICAgICAgIH0KKwogICAgICAgICAgIGlmICghY29udGVudC5oYXNDbGFzcygnaGFzLXBn LXByb3AtYnRuLWdyb3VwJykpCiAgICAgICAgICAgICBjb250ZW50LmFkZENsYXNzKCdoYXMtcGct cHJvcC1idG4tZ3JvdXAnKTsKIApAQCAtMTQ2MCw2ICsxNDc4LDI4IEBAIGRlZmluZSgncGdhZG1p bi5icm93c2VyLm5vZGUnLCBbCiAgICAgICAgICAgICBhY3Rpb24gPSAnZWRpdCc7CiAgICAgICAg ICAgfQogICAgICAgICAgIHNlbGYuJGNvbnRhaW5lci5hdHRyKCdhY3Rpb24tbW9kZScsIGFjdGlv bik7CisKKyAgICAgICAgICBzZWxmLmljb24oCisgICAgICAgICAgICBfLmlzRnVuY3Rpb24odGhh dFsnbm9kZV9pbWFnZSddKSA/CisgICAgICAgICAgICAgICh0aGF0Wydub2RlX2ltYWdlJ10pLmFw cGx5KHRoYXQsIFtkYXRhXSkgOgorICAgICAgICAgICAgICAodGhhdFsnbm9kZV9pbWFnZSddIHx8 ICgnaWNvbi0nICsgdGhhdC50eXBlKSkKKyAgICAgICAgICApOworICAgICAgICAgIC8qIFJlbW92 ZSBhbnkgZG9tIHJlbmRlcmVkIGJ5IGdldE5vZGVWaWV3ICovCisgICAgICAgICAgcmVtb3ZlTm9k ZVZpZXcoalswXSk7CisgICAgICAgICAgLyogZ2V0U2NoZW1hIGlzIGEgc2NoZW1hIGZvciBSZWFj dC4gR2V0IHRoZSByZWFjdCBub2RlIHZpZXcgKi8KKyAgICAgICAgICBpZih0aGF0LmdldFNjaGVt YSkgeworICAgICAgICAgICAgbGV0IHRyZWVOb2RlSW5mbyA9IHRoYXQuZ2V0VHJlZU5vZGVIaWVy YXJjaHkuYXBwbHkodGhpcywgW2l0ZW1dKTsKKyAgICAgICAgICAgIGdldE5vZGVWaWV3KAorICAg ICAgICAgICAgICB0aGF0LnR5cGUsIHRyZWVOb2RlSW5mbywgYWN0aW9uLCBkYXRhLCAnZGlhbG9n JywgalswXSwgdGhpcywgb25DYW5jZWxGdW5jLCBvbkVkaXQsCisgICAgICAgICAgICAgIChub2Rl RGF0YSk9PnsKKyAgICAgICAgICAgICAgICBpZihub2RlRGF0YS5ub2RlKSB7CisgICAgICAgICAg ICAgICAgICBvblNhdmVGdW5jKG5vZGVEYXRhLm5vZGUsIHRyZWVOb2RlSW5mbyk7CisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICB9CisgICAgICAgICAgICApOworICAgICAgICAgICAg cmV0dXJuOworICAgICAgICAgIH0KKwogICAgICAgICAgIC8vIFdlIG5lZWQgdG8gcmVsZWFzZSBh bnkgZXhpc3RpbmcgdmlldywgYmVmb3JlCiAgICAgICAgICAgLy8gY3JlYXRpbmcgdGhlIG5ldyB2 aWV3LgogICAgICAgICAgIGlmICh2aWV3KSB7CkBAIC0xNjU0LDEwICsxNjk0LDEwIEBAIGRlZmlu ZSgncGdhZG1pbi5icm93c2VyLm5vZGUnLCBbCiAgICAgICAgICAgLy8gQ2xvc2luZyB0aGlzIHBh bmVsCiAgICAgICAgICAgdGhpcy5jbG9zZSgpOwogICAgICAgICB9LmJpbmQocGFuZWwpLAotICAg ICAgICB1cGRhdGVUcmVlSXRlbSA9IGZ1bmN0aW9uKG9iaikgeworICAgICAgICB1cGRhdGVUcmVl SXRlbSA9IGZ1bmN0aW9uKG9iaiwgdG5vZGUsIG5vZGVfaW5mbykgewogICAgICAgICAgIHZhciBf b2xkID0gZGF0YSwKLSAgICAgICAgICAgIF9uZXcgPSBfLmNsb25lKHZpZXcubW9kZWwudG5vZGUp LAotICAgICAgICAgICAgaW5mbyA9IF8uY2xvbmUodmlldy5tb2RlbC5ub2RlX2luZm8pOworICAg ICAgICAgICAgX25ldyA9IHRub2RlIHx8IF8uY2xvbmUodmlldy5tb2RlbC50bm9kZSksCisgICAg ICAgICAgICBpbmZvID0gbm9kZV9pbmZvIHx8IF8uY2xvbmUodmlldy5tb2RlbC5ub2RlX2luZm8p OwogCiAgICAgICAgICAgLy8gQ2xlYXIgdGhlIGNhY2hlIGZvciB0aGlzIG5vZGUgbm93LgogICAg ICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CkBAIC0xNjgxLDcgKzE3MjEsNyBAQCBkZWZp bmUoJ3BnYWRtaW4uYnJvd3Nlci5ub2RlJywgWwogICAgICAgICAgICk7CiAgICAgICAgICAgY2xv c2VQYW5lbChmYWxzZSk7CiAgICAgICAgIH0sCi0gICAgICAgIHNhdmVOZXdOb2RlID0gZnVuY3Rp b24ob2JqKSB7CisgICAgICAgIHNhdmVOZXdOb2RlID0gZnVuY3Rpb24ob2JqLCB0bm9kZSwgbm9k ZV9pbmZvKSB7CiAgICAgICAgICAgdmFyICRwcm9wcyA9IHRoaXMuJGNvbnRhaW5lci5maW5kKCcu b2JqX3Byb3BlcnRpZXMnKS5maXJzdCgpLAogICAgICAgICAgICAgb2JqdmlldyA9ICRwcm9wcy5k YXRhKCdvYmotdmlldycpOwogCkBAIC0xNjkxLDggKzE3MzEsOCBAQCBkZWZpbmUoJ3BnYWRtaW4u YnJvd3Nlci5ub2RlJywgWwogICAgICAgICAgIH0sIDApOwogICAgICAgICAgIHRyeSB7CiAgICAg ICAgICAgICBwZ0Jyb3dzZXIuRXZlbnRzLnRyaWdnZXIoCi0gICAgICAgICAgICAgICdwZ2FkbWlu OmJyb3dzZXI6dHJlZTphZGQnLCBfLmNsb25lKG9ianZpZXcubW9kZWwudG5vZGUpLAotICAgICAg ICAgICAgICBfLmNsb25lKG9ianZpZXcubW9kZWwubm9kZV9pbmZvKQorICAgICAgICAgICAgICAn cGdhZG1pbjpicm93c2VyOnRyZWU6YWRkJywgXy5jbG9uZSh0bm9kZSB8fCBvYmp2aWV3Lm1vZGVs LnRub2RlKSwKKyAgICAgICAgICAgICAgXy5jbG9uZShub2RlX2luZm8gfHwgb2Jqdmlldy5tb2Rl bC5ub2RlX2luZm8pCiAgICAgICAgICAgICApOwogICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAg ICAgICAgICAgIGNvbnNvbGUud2FybihlLnN0YWNrIHx8IGUpOwpAQCAtMTcyNCwxMCArMTc2NCwx MCBAQCBkZWZpbmUoJ3BnYWRtaW4uYnJvd3Nlci5ub2RlJywgWwogICAgICAgICB9CiAgICAgICB9 IGVsc2UgewogICAgICAgICAvKiBTaG93IHByb3BlcnRpZXMgKi8KLSAgICAgICAgcHJvcGVydGll cygpOwogICAgICAgICBvbkVkaXQgPSBlZGl0SW5OZXdQYW5lbC5iaW5kKHBhbmVsKTsKKyAgICAg ICAgcHJvcGVydGllcygpOwogICAgICAgfQotICAgICAgaWYgKHBhbmVsLmNsb3NlYWJsZSgpKSB7 CisgICAgICBpZiAocGFuZWwuY2xvc2VhYmxlKCkgJiYgIXRoYXQuZ2V0U2NoZW1hKSB7CiAgICAg ICAgIHBhbmVsLm9uKHdjRG9ja2VyLkVWRU5ULkNMT1NJTkcsIHdhcm5CZWZvcmVDaGFuZ2VzTG9z dC5iaW5kKAogICAgICAgICAgIHBhbmVsLAogICAgICAgICAgIGdldHRleHQoJ0NoYW5nZXMgd2ls bCBiZSBsb3N0LiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gY2xvc2UgdGhlIGRpYWxvZz8nKSwK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL25vZGVfYWpheC5qcyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL25vZGVfYWpheC5qcwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjQ5NGNiYjgzOAotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL25vZGVfYWpheC5qcwpAQCAtMCwwICsxLDE2NCBA QAorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLworLy8KKy8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKy8vCisvLyBDb3B5 cmlnaHQgKEMpIDIwMTMgLSAyMDIxLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisvLyBU aGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKy8v CisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLworCitpbXBvcnQgXyBmcm9tICdsb2Rhc2gnOworaW1wb3J0IGdldEFwaUluc3RhbmNl IGZyb20gJy4uLy4uLy4uL3N0YXRpYy9qcy9hcGlfaW5zdGFuY2UnOworaW1wb3J0IHtnZW5lcmF0 ZV91cmx9IGZyb20gJ3NvdXJjZXMvYnJvd3Nlci9nZW5lcmF0ZV91cmwnOworaW1wb3J0IHBnQWRt aW4gZnJvbSAnc291cmNlcy9wZ2FkbWluJzsKKworLyogSXQgZ2VuZXJhdGVzIHRoZSBVUkwgYmFz ZWQgb24gdHJlZSBub2RlIHNlbGVjdGVkICovCitleHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVOb2Rl VXJsKHRyZWVOb2RlSW5mbywgYWN0aW9uVHlwZSwgaXRlbU5vZGVEYXRhLCB3aXRoSWQsIGp1bXBB ZnRlck5vZGUpIHsKKyAgbGV0IG9wVVJMID0geworICAgICAgJ2NyZWF0ZSc6ICdvYmonLAorICAg ICAgJ2Ryb3AnOiAnb2JqJywKKyAgICAgICdlZGl0JzogJ29iaicsCisgICAgICAncHJvcGVydGll cyc6ICdvYmonLAorICAgICAgJ3N0YXRpc3RpY3MnOiAnc3RhdHMnLAorICAgIH0sCisgICAgcHJp b3JpdHkgPSAtSW5maW5pdHk7CisgIGxldCBub2RlT2JqID0gdGhpczsKKyAgbGV0IGl0ZW1JRCA9 IHdpdGhJZCAmJiBpdGVtTm9kZURhdGEuX3R5cGUgPT0gbm9kZU9iai50eXBlID8gZW5jb2RlVVJJ Q29tcG9uZW50KGl0ZW1Ob2RlRGF0YS5faWQpIDogJyc7CisgIGFjdGlvblR5cGUgPSBhY3Rpb25U eXBlIGluIG9wVVJMID8gb3BVUkxbYWN0aW9uVHlwZV0gOiBhY3Rpb25UeXBlOworCisgIGlmIChu b2RlT2JqLnBhcmVudF90eXBlKSB7CisgICAgaWYgKF8uaXNTdHJpbmcobm9kZU9iai5wYXJlbnRf dHlwZSkpIHsKKyAgICAgIGxldCBwID0gdHJlZU5vZGVJbmZvW25vZGVPYmoucGFyZW50X3R5cGVd OworICAgICAgaWYgKHApIHsKKyAgICAgICAgcHJpb3JpdHkgPSBwLnByaW9yaXR5OworICAgICAg fQorICAgIH0gZWxzZSB7CisgICAgICBfLmVhY2gobm9kZU9iai5wYXJlbnRfdHlwZSwgZnVuY3Rp b24obykgeworICAgICAgICBsZXQgcCA9IHRyZWVOb2RlSW5mb1tvXTsKKyAgICAgICAgaWYgKHAp IHsKKyAgICAgICAgICBpZiAocHJpb3JpdHkgPCBwLnByaW9yaXR5KSB7CisgICAgICAgICAgICBw cmlvcml0eSA9IHAucHJpb3JpdHk7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9KTsK KyAgICB9CisgIH0KKworICBsZXQganVtcF9hZnRlcl9wcmlvcml0eSA9IHByaW9yaXR5OworICBp ZihqdW1wQWZ0ZXJOb2RlICYmIHRyZWVOb2RlSW5mb1tqdW1wQWZ0ZXJOb2RlXSkgeworICAgIGp1 bXBfYWZ0ZXJfcHJpb3JpdHkgPSB0cmVlTm9kZUluZm9banVtcEFmdGVyTm9kZV0ucHJpb3JpdHk7 CisgIH0KKworICB2YXIgbm9kZVBpY2tGdW5jdGlvbiA9IGZ1bmN0aW9uKHRyZWVJbmZvVmFsdWUp IHsKKyAgICByZXR1cm4gKHRyZWVJbmZvVmFsdWUucHJpb3JpdHkgPD0ganVtcF9hZnRlcl9wcmlv cml0eSB8fCB0cmVlSW5mb1ZhbHVlLnByaW9yaXR5ID09IHByaW9yaXR5KTsKKyAgfTsKKworICBy ZXR1cm4gZ2VuZXJhdGVfdXJsKHBnQWRtaW4uQnJvd3Nlci5VUkwsIHRyZWVOb2RlSW5mbywgYWN0 aW9uVHlwZSwgbm9kZU9iai50eXBlLCBub2RlUGlja0Z1bmN0aW9uLCBpdGVtSUQpOworfQorCisK Ky8qIEdldCB0aGUgbm9kZXMgbGlzdCBhcyBvcHRpb25zIHJlcXVpcmVkIGJ5IHNlbGVjdCBjb250 cm9scworICogVGhlIG9wdGlvbnMgYXJlIGNhY2hlZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4K KyAqLworZXhwb3J0IGZ1bmN0aW9uIGdldE5vZGVBamF4T3B0aW9ucyh1cmwsIG5vZGVPYmosIHRy ZWVOb2RlSW5mbywgaXRlbU5vZGVEYXRhLCBwYXJhbXM9e30sIHRyYW5zZm9ybT0oZGF0YSk9PmRh dGEpIHsKKyAgbGV0IG90aGVyUGFyYW1zID0geworICAgIHVybFdpdGhJZDogZmFsc2UsCisgICAg anVtcEFmdGVyTm9kZTogbnVsbCwKKyAgICAuLi5wYXJhbXMKKyAgfTsKKyAgcmV0dXJuIG5ldyBQ cm9taXNlKChyZXNvbHZlLCByZWplY3QpPT57CisgICAgY29uc3QgYXBpID0gZ2V0QXBpSW5zdGFu Y2UoKTsKKyAgICBsZXQgZnVsbFVybCA9ICcnOworICAgIGlmKHVybCkgeworICAgICAgZnVsbFVy bCA9IGdlbmVyYXRlTm9kZVVybC5jYWxsKAorICAgICAgICBub2RlT2JqLCB0cmVlTm9kZUluZm8s IHVybCwgaXRlbU5vZGVEYXRhLCBvdGhlclBhcmFtcy51cmxXaXRoSWQsIG5vZGVPYmoucGFyZW50 X3R5cGUsIG90aGVyUGFyYW1zLmp1bXBBZnRlck5vZGUKKyAgICAgICk7CisgICAgfQorCisgICAg aWYgKHVybCkgeworICAgICAgbGV0IGNhY2hlTm9kZSA9IHBnQWRtaW4uQnJvd3Nlci5Ob2Rlc1tv dGhlclBhcmFtcy5jYWNoZU5vZGVdIHx8IG5vZGVPYmo7CisgICAgICBsZXQgY2FjaGVMZXZlbCA9 IG90aGVyUGFyYW1zLmNhY2hlTGV2ZWwgfHwgY2FjaGVOb2RlLmNhY2hlX2xldmVsKHRyZWVOb2Rl SW5mbywgb3RoZXJQYXJhbXMudXJsV2l0aElkKTsKKyAgICAgIC8qCisgICAgICAqIFdlIG5lZWRz IHRvIGNoZWNrLCBpZiB3ZSBoYXZlIGFscmVhZHkgY2FjaGVkIGRhdGEgZm9yIHRoaXMgdXJsLgor ICAgICAgKiBJZiB5ZXMgLSB1c2UgdGhhdCwgYW5kIGRvIG5vdCBib3RoZXIgYWJvdXQgZmV0Y2hp bmcgaXQgYWdhaW4sCisgICAgICAqIGFuZCB1c2UgaXQuCisgICAgICAqLworICAgICAgdmFyIGRh dGEgPSBjYWNoZU5vZGUuY2FjaGUobm9kZU9iai50eXBlICsgJyMnICsgdXJsLCB0cmVlTm9kZUlu Zm8sIGNhY2hlTGV2ZWwpOworCisgICAgICBpZiAoXy5pc1VuZGVmaW5lZChkYXRhKSB8fCBfLmlz TnVsbChkYXRhKSkgeworICAgICAgICBhcGkuZ2V0KGZ1bGxVcmwpCisgICAgICAgICAgLnRoZW4o KHJlcyk9PnsKKyAgICAgICAgICAgIGRhdGEgPSByZXMuZGF0YS5kYXRhOworICAgICAgICAgICAg Y2FjaGVOb2RlLmNhY2hlKG5vZGVPYmoudHlwZSArICcjJyArIHVybCwgdHJlZU5vZGVJbmZvLCBj YWNoZUxldmVsLCBkYXRhKTsKKyAgICAgICAgICAgIHJlc29sdmUodHJhbnNmb3JtKGRhdGEpKTsK KyAgICAgICAgICB9KQorICAgICAgICAgIC5jYXRjaCgoZXJyKT0+eworICAgICAgICAgICAgcmVq ZWN0KGVycik7CisgICAgICAgICAgfSk7CisgICAgICB9IGVsc2UgeworICAgICAgICAvLyBUbyBm ZXRjaCBvbmx5IG9wdGlvbnMgZnJvbSBjYWNoZSwgd2UgZG8gbm90IG5lZWQgdGltZSBmcm9tICdh dCcKKyAgICAgICAgLy8gYXR0cmlidXRlIGJ1dCBvbmx5IG9wdGlvbnMuCisgICAgICAgIHJlc29s dmUodHJhbnNmb3JtKGRhdGEuZGF0YSB8fCBbXSkpOworICAgICAgfQorICAgIH0KKyAgfSk7Cit9 CisKKy8qIEdldCB0aGUgbm9kZXMgbGlzdCBiYXNlZCBvbiBjdXJyZW50IHNlbGVjdGVkIG5vZGUg aWQgKi8KK2V4cG9ydCBmdW5jdGlvbiBnZXROb2RlTGlzdEJ5SWQobm9kZU9iaiwgdHJlZU5vZGVJ bmZvLCBpdGVtTm9kZURhdGEsIGZpbHRlcj0oKT0+dHJ1ZSkgeworICAvKiBUcmFuc2Zvcm0gdGhl IHJlc3VsdCB0byBhZGQgaW1hZ2UgZGV0YWlscyAqLworICBjb25zdCB0cmFuc2Zvcm0gPSAocm93 cykgPT4geworICAgIHZhciByZXMgPSBbXTsKKworICAgIF8uZWFjaChyb3dzLCBmdW5jdGlvbihy KSB7CisgICAgICBpZiAoZmlsdGVyKHIpKSB7CisgICAgICAgIHZhciBsID0gKF8uaXNGdW5jdGlv bihub2RlT2JqWydub2RlX2xhYmVsJ10pID8KKyAgICAgICAgICAgIChub2RlT2JqWydub2RlX2xh YmVsJ10pLmFwcGx5KG5vZGVPYmosIFtyXSkgOgorICAgICAgICAgICAgci5sYWJlbCksCisgICAg ICAgICAgaW1hZ2UgPSAoXy5pc0Z1bmN0aW9uKG5vZGVPYmpbJ25vZGVfaW1hZ2UnXSkgPworICAg ICAgICAgICAgKG5vZGVPYmpbJ25vZGVfaW1hZ2UnXSkuYXBwbHkobm9kZU9iaiwgW3JdKSA6Cisg ICAgICAgICAgICAobm9kZU9ialsnbm9kZV9pbWFnZSddIHx8ICgnaWNvbi0nICsgbm9kZU9iai50 eXBlKSkpOworCisgICAgICAgIHJlcy5wdXNoKHsKKyAgICAgICAgICAndmFsdWUnOiByLl9pZCwK KyAgICAgICAgICAnaW1hZ2UnOiBpbWFnZSwKKyAgICAgICAgICAnbGFiZWwnOiBsLAorICAgICAg ICB9KTsKKyAgICAgIH0KKyAgICB9KTsKKworICAgIHJldHVybiByZXM7CisgIH07CisKKyAgcmV0 dXJuIGdldE5vZGVBamF4T3B0aW9ucygnbm9kZXMnLCBub2RlT2JqLCB0cmVlTm9kZUluZm8sIGl0 ZW1Ob2RlRGF0YSwgbnVsbCwgdHJhbnNmb3JtKTsKK30KKworLyogR2V0IHRoZSBub2RlcyBsaXN0 IGJhc2VkIG9uIG5vZGUgbmFtZSBwYXNzZWQgKi8KK2V4cG9ydCBmdW5jdGlvbiBnZXROb2RlTGlz dEJ5TmFtZShub2RlLCB0cmVlTm9kZUluZm8sIGl0ZW1Ob2RlRGF0YSwgZmlsdGVyPSgpPT50cnVl LCBwb3N0VHJhbnNmb3JtPShyZXMpPT5yZXMpIHsKKyAgbGV0IG5vZGVPYmogPSBwZ0FkbWluLkJy b3dzZXIuTm9kZXNbbm9kZV07CisgIC8qIFRyYW5zZm9ybSB0aGUgcmVzdWx0IHRvIGFkZCBpbWFn ZSBkZXRhaWxzICovCisgIGNvbnN0IHRyYW5zZm9ybSA9IChyb3dzKSA9PiB7CisgICAgdmFyIHJl cyA9IFtdOworCisgICAgXy5lYWNoKHJvd3MsIGZ1bmN0aW9uKHIpIHsKKyAgICAgIGlmIChmaWx0 ZXIocikpIHsKKyAgICAgICAgdmFyIGwgPSAoXy5pc0Z1bmN0aW9uKG5vZGVPYmpbJ25vZGVfbGFi ZWwnXSkgPworICAgICAgICAgICAgKG5vZGVPYmpbJ25vZGVfbGFiZWwnXSkuYXBwbHkobm9kZU9i aiwgW3JdKSA6CisgICAgICAgICAgICByLmxhYmVsKSwKKyAgICAgICAgICBpbWFnZSA9IChfLmlz RnVuY3Rpb24obm9kZU9ialsnbm9kZV9pbWFnZSddKSA/CisgICAgICAgICAgICAobm9kZU9ialsn bm9kZV9pbWFnZSddKS5hcHBseShub2RlT2JqLCBbcl0pIDoKKyAgICAgICAgICAgIChub2RlT2Jq Wydub2RlX2ltYWdlJ10gfHwgKCdpY29uLScgKyBub2RlT2JqLnR5cGUpKSk7CisKKyAgICAgICAg cmVzLnB1c2goeworICAgICAgICAgICd2YWx1ZSc6IHIubGFiZWwsCisgICAgICAgICAgJ2ltYWdl JzogaW1hZ2UsCisgICAgICAgICAgJ2xhYmVsJzogbCwKKyAgICAgICAgfSk7CisgICAgICB9Cisg ICAgfSk7CisKKyAgICByZXR1cm4gcG9zdFRyYW5zZm9ybShyZXMpOworICB9OworCisgIHJldHVy biBnZXROb2RlQWpheE9wdGlvbnMoJ25vZGVzJywgbm9kZU9iaiwgdHJlZU5vZGVJbmZvLCBpdGVt Tm9kZURhdGEsIG51bGwsIHRyYW5zZm9ybSk7Cit9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3N0YXRpYy9qcy9ub2RlX3ZpZXcuanN4IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zdGF0 aWMvanMvbm9kZV92aWV3LmpzeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAu LjgzNzM2NDc2OQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGlj L2pzL25vZGVfdmlldy5qc3gKQEAgLTAsMCArMSwxOTggQEAKKy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyBwZ0FkbWlu IDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisvLworLy8gQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMSwg VGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorLy8gVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNl ZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworaW1wb3J0IFJlYWN0 IGZyb20gJ3JlYWN0JzsKK2ltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nOworCitpbXBv cnQgcGdBZG1pbiBmcm9tICdzb3VyY2VzL3BnYWRtaW4nOworaW1wb3J0IGdldEFwaUluc3RhbmNl IGZyb20gJ3NvdXJjZXMvYXBpX2luc3RhbmNlJzsKK2ltcG9ydCB7Z2V0SGVscFVybH0gZnJvbSAn cGdhZG1pbi5oZWxwJzsKK2ltcG9ydCBTY2hlbWFWaWV3IGZyb20gJ3NvdXJjZXMvU2NoZW1hVmll dyc7CitpbXBvcnQgeyBnZW5lcmF0ZU5vZGVVcmwgfSBmcm9tICcuL25vZGVfYWpheCc7CitpbXBv cnQgQWxlcnRpZnkgZnJvbSAncGdhZG1pbi5hbGVydGlmeWpzJzsKK2ltcG9ydCBnZXR0ZXh0IGZy b20gJ3NvdXJjZXMvZ2V0dGV4dCc7CitpbXBvcnQgJ3djZG9ja2VyJzsKKworLyogVGhlIGVudHJ5 IHBvaW50IGZvciByZW5kZXJpbmcgUmVhY3QgYmFzZWQgdmlldyBpbiBwcm9wZXJ0aWVzLCBjYWxs ZWQgaW4gbm9kZS5qcyAqLworZXhwb3J0IGZ1bmN0aW9uIGdldE5vZGVWaWV3KG5vZGVUeXBlLCB0 cmVlTm9kZUluZm8sIGFjdGlvblR5cGUsIGl0ZW1Ob2RlRGF0YSwgZm9ybVR5cGUsIGNvbnRhaW5l ciwgY29udGFpbmVyUGFuZWwsIG9uQ2FuY2VsLCBvbkVkaXQsIG9uU2F2ZSkgeworICBsZXQgbm9k ZU9iaiA9IHBnQWRtaW4uQnJvd3Nlci5Ob2Rlc1tub2RlVHlwZV07CisgIGxldCBzZXJ2ZXJJbmZv ID0gdHJlZU5vZGVJbmZvICYmICgnc2VydmVyJyBpbiB0cmVlTm9kZUluZm8pICYmCisgICAgICBw Z0FkbWluLkJyb3dzZXIuc2VydmVySW5mbyAmJiBwZ0FkbWluLkJyb3dzZXJbdHJlZU5vZGVJbmZv LnNlcnZlci5faWRdOworICBsZXQgaW5DYXRhbG9nID0gdHJlZU5vZGVJbmZvICYmICgnY2F0YWxv ZycgaW4gdHJlZU5vZGVJbmZvKTsKKyAgbGV0IHVybEJhc2UgPSBnZW5lcmF0ZU5vZGVVcmwuY2Fs bChub2RlT2JqLCB0cmVlTm9kZUluZm8sIGFjdGlvblR5cGUsIGl0ZW1Ob2RlRGF0YSwgZmFsc2Us IG51bGwpOworICBjb25zdCBhcGkgPSBnZXRBcGlJbnN0YW5jZSgpOworICBjb25zdCB1cmwgPSAo aXNOZXcpPT57CisgICAgcmV0dXJuIHVybEJhc2UgKyAoaXNOZXcgPyAnJyA6IGl0ZW1Ob2RlRGF0 YS5faWQpOworICB9OworICBsZXQgaXNEaXJ0eSA9IGZhbHNlOyAvLyB1c2VmdWxsIGZvciB3YXJu aW5ncworICBsZXQgd2Fybk9uQ2xvc2VGbGFnID0gdHJ1ZTsKKyAgY29uc3QgY29uZmlybU9uQ2xv c2VSZXNldCA9IHBnQWRtaW4uQnJvd3Nlci5nZXRfcHJlZmVyZW5jZXNfZm9yX21vZHVsZSgnYnJv d3NlcicpLmNvbmZpcm1fb25fcHJvcGVydGllc19jbG9zZTsKKworICAvKiBDYWxsZWQgd2hlbiBk aWFsb2cgaXMgb3BlbmVkIGluIGVkaXQgbW9kZSwgcHJvbWlzZSByZXF1aXJlZCAqLworICBsZXQg aW5pdERhdGEgPSAoKT0+bmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk9PnsKKyAgICBhcGku Z2V0KHVybChmYWxzZSkpCisgICAgICAudGhlbigocmVzKT0+eworICAgICAgICByZXNvbHZlKHJl cy5kYXRhKTsKKyAgICAgIH0pCisgICAgICAuY2F0Y2goKGVycik9PnsKKyAgICAgICAgaWYoZXJy LnJlc3BvbnNlKXsKKyAgICAgICAgICBjb25zb2xlLmVycm9yKCdlcnJvciByZXNwJywgZXJyLnJl c3BvbnNlKTsKKyAgICAgICAgfSBlbHNlIGlmKGVyci5yZXF1ZXN0KXsKKyAgICAgICAgICBjb25z b2xlLmVycm9yKCdlcnJvciByZXEnLCBlcnIucmVxdWVzdCk7CisgICAgICAgIH0gZWxzZSBpZihl cnIubWVzc2FnZSl7CisgICAgICAgICAgY29uc29sZS5lcnJvcignZXJyb3IgbXNnJywgZXJyLm1l c3NhZ2UpOworICAgICAgICB9CisgICAgICAgIHJlamVjdChlcnIpOworICAgICAgfSk7CisgIH0p OworCisgIC8qIG9uIHNhdmUgYnV0dG9uIGNhbGxiYWNrLCBwcm9taXNlIHJlcXVpcmVkICovCisg IGNvbnN0IG9uU2F2ZUNsaWNrID0gKGlzTmV3LCBkYXRhKT0+bmV3IFByb21pc2UoKHJlc29sdmUs IHJlamVjdCk9PnsKKyAgICByZXR1cm4gYXBpKHsKKyAgICAgIHVybDogdXJsKGlzTmV3KSwKKyAg ICAgIG1ldGhvZDogaXNOZXcgPyAnUE9TVCcgOiAnUFVUJywKKyAgICAgIGRhdGE6IGRhdGEsCisg ICAgfSkudGhlbigocmVzKT0+eworICAgICAgLyogRG9uJ3Qgd2FybiB0aGUgdXNlciBiZWZvcmUg Y2xvc2luZyBkaWFsb2cgKi8KKyAgICAgIHdhcm5PbkNsb3NlRmxhZyA9IGZhbHNlOworICAgICAg cmVzb2x2ZShyZXMuZGF0YSk7CisgICAgICBvblNhdmUocmVzLmRhdGEpOworICAgIH0pLmNhdGNo KChlcnIpPT57CisgICAgICByZWplY3QoZXJyKTsKKyAgICB9KTsKKyAgfSk7CisKKyAgLyogQ2Fs bGVkIHdoZW4gc3dpdGNoZWQgdG8gU1FMIHRhYiwgcHJvbWlzZSByZXF1aXJlZCAqLworICBjb25z dCBnZXRTUUxWYWx1ZSA9IChpc05ldywgY2hhbmdlZERhdGEpPT57CisgICAgY29uc3QgbXNxbFVy bCA9IGdlbmVyYXRlTm9kZVVybC5jYWxsKG5vZGVPYmosIHRyZWVOb2RlSW5mbywgJ21zcWwnLCBp dGVtTm9kZURhdGEsICFpc05ldywgbnVsbCk7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNv bHZlLCByZWplY3QpPT57CisgICAgICBhcGkoeworICAgICAgICB1cmw6IG1zcWxVcmwsCisgICAg ICAgIG1ldGhvZDogJ0dFVCcsCisgICAgICAgIHBhcmFtczogY2hhbmdlZERhdGEsCisgICAgICB9 KS50aGVuKChyZXMpPT57CisgICAgICAgIHJlc29sdmUocmVzLmRhdGEuZGF0YSk7CisgICAgICB9 KS5jYXRjaCgoZXJyKT0+eworICAgICAgICBpZihlcnIucmVzcG9uc2UpeworICAgICAgICAgIGNv bnNvbGUuZXJyb3IoJ2Vycm9yIHJlc3AnLCBlcnIucmVzcG9uc2UpOworICAgICAgICB9IGVsc2Ug aWYoZXJyLnJlcXVlc3QpeworICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm9yIHJlcScsIGVy ci5yZXF1ZXN0KTsKKyAgICAgICAgfSBlbHNlIGlmKGVyci5tZXNzYWdlKXsKKyAgICAgICAgICBj b25zb2xlLmVycm9yKCdlcnJvciBtc2cnLCBlcnIubWVzc2FnZSk7CisgICAgICAgIH0KKyAgICAg ICAgcmVqZWN0KGVycik7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfTsKKworICAvKiBDYWxsYmFj ayBmb3IgaGVscCBidXR0b24gKi8KKyAgY29uc3Qgb25IZWxwID0gKGlzU3FsSGVscD1mYWxzZSwg aXNOZXc9ZmFsc2UpPT57CisgICAgaWYoaXNTcWxIZWxwKSB7CisgICAgICBsZXQgc2VydmVyID0g dHJlZU5vZGVJbmZvLnNlcnZlcjsKKyAgICAgIGxldCB1cmwgPSBwZ0FkbWluLkJyb3dzZXIudXRp bHMucGdfaGVscF9wYXRoOworICAgICAgaWYgKHNlcnZlci5zZXJ2ZXJfdHlwZSA9PSAncHBhcycp IHsKKyAgICAgICAgdXJsID0gcGdBZG1pbi5Ccm93c2VyLnV0aWxzLmVkYmFzX2hlbHBfcGF0aDsK KyAgICAgIH0KKworICAgICAgbGV0IGZ1bGxVcmwgPSAnJzsKKyAgICAgIGlmIChub2RlT2JqLnNx bENyZWF0ZUhlbHAgPT0gJycgJiYgbm9kZU9iai5zcWxBbHRlckhlbHAgIT0gJycpIHsKKyAgICAg ICAgZnVsbFVybCA9IGdldEhlbHBVcmwodXJsLCBub2RlT2JqLnNxbEFsdGVySGVscCwgc2VydmVy LnZlcnNpb24sIHNlcnZlci5zZXJ2ZXJfdHlwZSk7CisgICAgICB9IGVsc2UgaWYgKG5vZGVPYmou c3FsQ3JlYXRlSGVscCAhPSAnJyAmJiBub2RlT2JqLnNxbEFsdGVySGVscCA9PSAnJykgeworICAg ICAgICBmdWxsVXJsID0gZ2V0SGVscFVybCh1cmwsIG5vZGVPYmouc3FsQ3JlYXRlSGVscCwgc2Vy dmVyLnZlcnNpb24sIHNlcnZlci5zZXJ2ZXJfdHlwZSk7CisgICAgICB9IGVsc2UgeworICAgICAg ICBpZiAoaXNOZXcpIHsKKyAgICAgICAgICBmdWxsVXJsID0gZ2V0SGVscFVybCh1cmwsIG5vZGVP Ymouc3FsQ3JlYXRlSGVscCwgc2VydmVyLnZlcnNpb24sIHNlcnZlci5zZXJ2ZXJfdHlwZSk7Cisg ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgZnVsbFVybCA9IGdldEhlbHBVcmwodXJsLCBub2Rl T2JqLnNxbEFsdGVySGVscCwgc2VydmVyLnZlcnNpb24sIHNlcnZlci5zZXJ2ZXJfdHlwZSk7Cisg ICAgICAgIH0KKyAgICAgIH0KKworICAgICAgd2luZG93Lm9wZW4oZnVsbFVybCwgJ3Bvc3RncmVz X2hlbHAnKTsKKyAgICB9IGVsc2UgeworICAgICAgd2luZG93Lm9wZW4obm9kZU9iai5kaWFsb2dI ZWxwLCAncGdhZG1pbl9oZWxwJyk7CisgICAgfQorICB9OworCisgIC8qIEEgd2FybmluZyBiZWZv cmUgY2xvc2luZyB0aGUgZGlhbG9nIHdpdGggdW5zYXZlZCBjaGFuZ2VzLCBiYXNlZCBvbiBwcmVm ZXJlbmNlICovCisgIGxldCB3YXJuQmVmb3JlQ2hhbmdlc0xvc3QgPSAoeWVzQ2FsbGJhY2spPT57 CisgICAgbGV0IGNvbmZpcm1PbkNsb3NlID0gcGdBZG1pbi5Ccm93c2VyLmdldF9wcmVmZXJlbmNl c19mb3JfbW9kdWxlKCdicm93c2VyJykuY29uZmlybV9vbl9wcm9wZXJ0aWVzX2Nsb3NlOworICAg IGlmICh3YXJuT25DbG9zZUZsYWcgJiYgY29uZmlybU9uQ2xvc2UpIHsKKyAgICAgIGlmKGlzRGly dHkpeworICAgICAgICBBbGVydGlmeS5jb25maXJtKAorICAgICAgICAgIGdldHRleHQoJ1dhcm5p bmcnKSwKKyAgICAgICAgICBnZXR0ZXh0KCdDaGFuZ2VzIHdpbGwgYmUgbG9zdC4gQXJlIHlvdSBz dXJlIHlvdSB3YW50IHRvIGNsb3NlIHRoZSBkaWFsb2c/JyksCisgICAgICAgICAgZnVuY3Rpb24o KSB7CisgICAgICAgICAgICB5ZXNDYWxsYmFjaygpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7 CisgICAgICAgICAgfSwKKyAgICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJldHVy biB0cnVlOworICAgICAgICAgIH0KKyAgICAgICAgKS5zZXQoJ2xhYmVscycsIHsKKyAgICAgICAg ICBvazogZ2V0dGV4dCgnWWVzJyksCisgICAgICAgICAgY2FuY2VsOiBnZXR0ZXh0KCdObycpLAor ICAgICAgICB9KS5zaG93KCk7CisgICAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gdHJ1ZTsK KyAgICAgIH0KKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgeWVzQ2Fs bGJhY2soKTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgfTsKKworICAvKiBCaW5kIHRo ZSB3Y0RvY2tlciBkaWFsb2cgY2xvc2UgZXZlbnQgYW5kIGNoZWNrIGlmIHVzZXIgc2hvdWxkIGJl IHdhcm5lZCAqLworICBpZiAoY29udGFpbmVyUGFuZWwuY2xvc2VhYmxlKCkpIHsKKyAgICBjb250 YWluZXJQYW5lbC5vbih3aW5kb3cud2NEb2NrZXIuRVZFTlQuQ0xPU0lORywgd2FybkJlZm9yZUNo YW5nZXNMb3N0LmJpbmQoCisgICAgICBjb250YWluZXJQYW5lbCwKKyAgICAgIGZ1bmN0aW9uKCkg eworICAgICAgICBjb250YWluZXJQYW5lbC5vZmYod2luZG93LndjRG9ja2VyLkVWRU5ULkNMT1NJ TkcpOworICAgICAgICAvKiBBbHdheXMgY2xlYW4gdXAgdGhlIHJlYWN0IG1vdW50ZWQgZG9tIGJl Zm9yZSBjbG9zaW5nICovCisgICAgICAgIHJlbW92ZU5vZGVWaWV3KGNvbnRhaW5lcik7CisgICAg ICAgIGNvbnRhaW5lclBhbmVsLmNsb3NlKCk7CisgICAgICB9CisgICAgKSk7CisgIH0KKworICAv KiBBbGwgb3RoZXIgdXNlZnVsIGRldGFpbHMgY2FuIGdvIHdpdGggdGhpcyBvYmplY3QgKi8KKyAg Y29uc3Qgdmlld0hlbHBlclByb3BzID0geworICAgIG1vZGU6IGFjdGlvblR5cGUsCisgICAgc2Vy dmVySW5mbzogc2VydmVySW5mbyA/IHsKKyAgICAgIHR5cGU6IHNlcnZlckluZm8udHlwZSwKKyAg ICAgIHZlcnNpb246IHNlcnZlckluZm8udmVyc2lvbiwKKyAgICB9OiB1bmRlZmluZWQsCisgICAg aW5DYXRhbG9nOiBpbkNhdGFsb2csCisgIH07CisKKyAgLyogRmlyZSBhdCB3aWxsLCBtb3VudCB0 aGUgRE9NICovCisgIFJlYWN0RE9NLnJlbmRlcigKKyAgICA8U2NoZW1hVmlldworICAgICAgZm9y bVR5cGU9e2Zvcm1UeXBlfQorICAgICAgZ2V0SW5pdERhdGE9e2luaXREYXRhfQorICAgICAgc2No ZW1hPXtub2RlT2JqLmdldFNjaGVtYS5jYWxsKG5vZGVPYmosIHRyZWVOb2RlSW5mbywgaXRlbU5v ZGVEYXRhKX0KKyAgICAgIHZpZXdIZWxwZXJQcm9wcz17dmlld0hlbHBlclByb3BzfQorICAgICAg b25TYXZlPXtvblNhdmVDbGlja30KKyAgICAgIG9uQ2xvc2U9eygpPT5jb250YWluZXJQYW5lbC5j bG9zZSgpfQorICAgICAgb25IZWxwPXtvbkhlbHB9CisgICAgICBvbkVkaXQ9e29uRWRpdH0KKyAg ICAgIG9uRGF0YUNoYW5nZT17KGRhdGFDaGFuZ2VkKT0+eworICAgICAgICBpc0RpcnR5ID0gZGF0 YUNoYW5nZWQ7CisgICAgICB9fQorICAgICAgY29uZmlybU9uQ2xvc2VSZXNldD17Y29uZmlybU9u Q2xvc2VSZXNldH0KKyAgICAgIGhhc1NRTD17bm9kZU9iai5oYXNTUUwgJiYgKGFjdGlvblR5cGUg PT09ICdjcmVhdGUnIHx8IGFjdGlvblR5cGUgPT09ICdlZGl0Jyl9CisgICAgICBnZXRTUUxWYWx1 ZT17Z2V0U1FMVmFsdWV9CisgICAgICBkaXNhYmxlU3FsSGVscD17bm9kZU9iai5zcWxBbHRlckhl bHAgPT0gJycgJiYgbm9kZU9iai5zcWxDcmVhdGVIZWxwID09ICcnfQorICAgIC8+LCBjb250YWlu ZXIpOworfQorCisvKiBXaGVuIHN3aXRjaGluZyBmcm9tIG5vcm1hbCBub2RlIHRvIGNvbGxlY3Rp b24gbm9kZSwgY2xlYW4gdXAgdGhlIFJlYWN0IG1vdW50ZWQgRE9NICovCitleHBvcnQgZnVuY3Rp b24gcmVtb3ZlTm9kZVZpZXcoY29udGFpbmVyKSB7CisgIFJlYWN0RE9NLnVubW91bnRDb21wb25l bnRBdE5vZGUoY29udGFpbmVyKTsKK30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv dGVtcGxhdGVzL2Jyb3dzZXIvanMvbWVzc2FnZXMuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rl bXBsYXRlcy9icm93c2VyL2pzL21lc3NhZ2VzLmpzCmluZGV4IGExMDEwMzNkMS4uZGJhNWQ2Njg3 IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3RlbXBsYXRlcy9icm93c2VyL2pzL21l c3NhZ2VzLmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVtcGxhdGVzL2Jyb3dzZXIvanMv bWVzc2FnZXMuanMKQEAgLTI4LDYgKzI4LDcgQEAgZGVmaW5lKAogICAgICdNVVNUX0JFX05VTScg OiBnZXR0ZXh0KCInJXMnIG11c3QgYmUgYSBudW1lcmljLiIpLAogICAgICdNVVNUX0dSX0VRJyA6 IGdldHRleHQoIiclcycgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMuIiksCiAg ICAgJ01VU1RfTEVTU19FUScgOiBnZXR0ZXh0KCInJXMnIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVx dWFsIHRvICVzLiIpLAorICAgICdDQU5OT1RfQkVfRU1QVFknOiBnZXR0ZXh0KCInJXMnIGNhbm5v dCBiZSBlbXB0eS4iKSwKICAgICAnU1RBVElTVElDU19MQUJFTCc6IGdldHRleHQoIlN0YXRpc3Rp Y3MiKSwKICAgICAnU1RBVElTVElDU19WQUxVRV9MQUJFTCc6IGdldHRleHQoIlZhbHVlIiksCiAg ICAgJ05PREVfSEFTX05PX1NRTCc6IGdldHRleHQoIk5vIFNRTCBjb3VsZCBiZSBnZW5lcmF0ZWQg Zm9yIHRoZSBzZWxlY3RlZCBvYmplY3QuIiksCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9taXNj L3RoZW1lcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL21pc2MvdGhlbWVzL19faW5pdF9fLnB5 CmluZGV4IDE5ZGNkOTY1ZC4uOGViZTg2YzM5IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9taXNj L3RoZW1lcy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9taXNjL3RoZW1lcy9fX2luaXRf Xy5weQpAQCAtNDIsNyArNDIsNyBAQCBkZWYgdGhlbWVzKGFwcCk6CiAgICAgICAgICAgICAgICAg IyBMZXQgdGhlIGRlZmF1bHQgdGhlbWUgZ28gaWYgZXhjZXB0aW9uIG9jY3VycwogICAgICAgICAg ICAgICAgIHBhc3MKIAotICAgICAgICAgICAgcmV0dXJuIHRoZW1lX2NzcworICAgICAgICAgICAg cmV0dXJuIHRoZW1lX2NzcywgdGhlbWUKIAogICAgICAgICByZXR1cm4gewogICAgICAgICAgICAg J2dldF90aGVtZV9jc3MnOiBnZXRfdGhlbWVfY3NzLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v c3RhdGljL2pzL1NjaGVtYVZpZXcvRGF0YUdyaWRWaWV3LmpzeCBiL3dlYi9wZ2FkbWluL3N0YXRp Yy9qcy9TY2hlbWFWaWV3L0RhdGFHcmlkVmlldy5qc3gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwLi4zY2YxNjc4M2IKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9z dGF0aWMvanMvU2NoZW1hVmlldy9EYXRhR3JpZFZpZXcuanN4CkBAIC0wLDAgKzEsMzk5IEBACisv Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vCisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdo dCAoQykgMjAxMyAtIDIwMjEsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKy8vIFRoaXMg c29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorLy8KKy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vCisKKy8qIFRoZSBEYXRhR3JpZFZpZXcgY29tcG9uZW50IGlzIGJhc2VkIG9uIHJlYWN0LXRh YmxlIGNvbXBvbmVudCAqLworCitpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZU1lbW8s IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnOworaW1wb3J0IHsgQm94IH0gZnJvbSAnQG1hdGVyaWFs LXVpL2NvcmUnOworaW1wb3J0IHsgbWFrZVN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3Jl L3N0eWxlcyc7CitpbXBvcnQgeyBQZ0ljb25CdXR0b24gfSBmcm9tICcuLi9jb21wb25lbnRzL0J1 dHRvbnMnOworaW1wb3J0IEFkZEljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0FkZE91dGxp bmVkJzsKK2ltcG9ydCB7IE1hcHBlZENlbGxDb250cm9sIH0gZnJvbSAnLi9NYXBwZWRDb250cm9s JzsKK2ltcG9ydCBFZGl0Um91bmRlZEljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0VkaXRS b3VuZGVkJzsKK2ltcG9ydCBEZWxldGVSb3VuZGVkSWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNv bnMvRGVsZXRlUm91bmRlZCc7CitpbXBvcnQgeyB1c2VUYWJsZSwgdXNlQmxvY2tMYXlvdXQsIHVz ZVJlc2l6ZUNvbHVtbnMsIHVzZVNvcnRCeSwgdXNlRXhwYW5kZWQgfSBmcm9tICdyZWFjdC10YWJs ZSc7CitpbXBvcnQgY2xzeCBmcm9tICdjbHN4JzsKK2ltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJv cC10eXBlcyc7CitpbXBvcnQgXyBmcm9tICdsb2Rhc2gnOworCitpbXBvcnQgZ2V0dGV4dCBmcm9t ICdzb3VyY2VzL2dldHRleHQnOworaW1wb3J0IHsgU0NIRU1BX1NUQVRFX0FDVElPTlMgfSBmcm9t ICcuJzsKK2ltcG9ydCBGb3JtVmlldyBmcm9tICcuL0Zvcm1WaWV3JzsKK2ltcG9ydCB7IGNvbmZp cm1EZWxldGVSb3cgfSBmcm9tICcuLi9oZWxwZXJzL2xlZ2FjeUNvbm5lY3Rvcic7CitpbXBvcnQg Q3VzdG9tUHJvcFR5cGVzIGZyb20gJ3NvdXJjZXMvY3VzdG9tX3Byb3BfdHlwZXMnOworaW1wb3J0 IHsgZXZhbEZ1bmMgfSBmcm9tICdzb3VyY2VzL3V0aWxzJzsKKworY29uc3QgdXNlU3R5bGVzID0g bWFrZVN0eWxlcygodGhlbWUpPT4oeworICBncmlkOiB7CisgICAgLi4udGhlbWUubWl4aW5zLnBh bmVsQm9yZGVyLAorICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5iYWNrZ3JvdW5k LmRlZmF1bHQsCisgIH0sCisgIGdyaWRIZWFkZXI6IHsKKyAgICBkaXNwbGF5OiAnZmxleCcsCisg ICAgLi4udGhlbWUubWl4aW5zLnBhbmVsQm9yZGVyLmJvdHRvbSwKKyAgICBiYWNrZ3JvdW5kQ29s b3I6IHRoZW1lLm90aGVyVmFycy5oZWFkZXJCZywKKyAgfSwKKyAgZ3JpZEhlYWRlclRleHQ6IHsK KyAgICBwYWRkaW5nOiB0aGVtZS5zcGFjaW5nKDAuNSwgMSksCisgICAgZm9udFdlaWdodDogdGhl bWUudHlwb2dyYXBoeS5mb250V2VpZ2h0Qm9sZCwKKyAgfSwKKyAgZ3JpZENvbnRyb2xzOiB7Cisg ICAgbWFyZ2luTGVmdDogJ2F1dG8nLAorICB9LAorICBncmlkQ29udHJvbHNCdXR0b246IHsKKyAg ICBib3JkZXI6IDAsCisgICAgYm9yZGVyUmFkaXVzOiAwLAorICAgIC4uLnRoZW1lLm1peGlucy5w YW5lbEJvcmRlci5sZWZ0LAorICB9LAorICBncmlkUm93QnV0dG9uOiB7CisgICAgYm9yZGVyOiAw LAorICAgIGJvcmRlclJhZGl1czogMCwKKyAgICBwYWRkaW5nOiAwLAorICAgIG1pbldpZHRoOiAw LAorICAgIGJhY2tncm91bmRDb2xvcjogJ2luaGVyaXQnLAorICB9LAorICBncmlkVGFibGVDb250 YWluZXI6IHsKKyAgICBvdmVyZmxvdzogJ2F1dG8nLAorICAgIHdpZHRoOiAnMTAwJScsCisgIH0s CisgIHRhYmxlOiB7CisgICAgYm9yZGVyU3BhY2luZzogMCwKKyAgICB3aWR0aDogJzEwMCUnLAor ICAgIG92ZXJmbG93OiAnYXV0bycsCisgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5vdGhlclZh cnMudGFibGVCZywKKyAgfSwKKyAgdGFibGVDZWxsOiB7CisgICAgbWFyZ2luOiAwLAorICAgIHBh ZGRpbmc6IHRoZW1lLnNwYWNpbmcoMC41KSwKKyAgICAuLi50aGVtZS5taXhpbnMucGFuZWxCb3Jk ZXIuYm90dG9tLAorICAgIC4uLnRoZW1lLm1peGlucy5wYW5lbEJvcmRlci5yaWdodCwKKyAgICBw b3NpdGlvbjogJ3JlbGF0aXZlJywKKyAgICB0ZXh0QWxpZ246ICdjZW50ZXInCisgIH0sCisgIHRh YmxlQ2VsbEhlYWRlcjogeworICAgIGZvbnRXZWlnaHQ6IHRoZW1lLnR5cG9ncmFwaHkuZm9udFdl aWdodEJvbGQsCisgICAgcGFkZGluZzogdGhlbWUuc3BhY2luZygxLCAwLjUpLAorICAgIHRleHRB bGlnbjogJ2xlZnQnLAorICB9LAorICByZXNpemVyOiB7CisgICAgZGlzcGxheTogJ2lubGluZS1i bG9jaycsCisgICAgd2lkdGg6ICc1cHgnLAorICAgIGhlaWdodDogJzEwMCUnLAorICAgIHBvc2l0 aW9uOiAnYWJzb2x1dGUnLAorICAgIHJpZ2h0OiAwLAorICAgIHRvcDogMCwKKyAgICB0cmFuc2Zv cm06ICd0cmFuc2xhdGVYKDUwJSknLAorICAgIHpJbmRleDogMSwKKyAgICB0b3VjaEFjdGlvbjog J25vbmUnLAorICB9LAorfSkpOworCitmdW5jdGlvbiBEYXRhVGFibGVIZWFkZXIoe2hlYWRlckdy b3Vwc30pIHsKKyAgY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlcygpOworICByZXR1cm4gKAorICAg IDxkaXY+CisgICAgICB7aGVhZGVyR3JvdXBzLm1hcCgoaGVhZGVyR3JvdXAsIGhpKSA9PiAoCisg ICAgICAgIDxkaXYga2V5PXtoaX0gey4uLmhlYWRlckdyb3VwLmdldEhlYWRlckdyb3VwUHJvcHMo KX0+CisgICAgICAgICAge2hlYWRlckdyb3VwLmhlYWRlcnMubWFwKChjb2x1bW4sIGNpKSA9PiAo CisgICAgICAgICAgICA8ZGl2IGtleT17Y2l9IHsuLi5jb2x1bW4uZ2V0SGVhZGVyUHJvcHMoKX0+ CisgICAgICAgICAgICAgIDxkaXYgey4uLihjb2x1bW4uc29ydGFibGUgPyBjb2x1bW4uZ2V0U29y dEJ5VG9nZ2xlUHJvcHMoKSA6IHt9KX0gY2xhc3NOYW1lPXtjbHN4KGNsYXNzZXMudGFibGVDZWxs LCBjbGFzc2VzLnRhYmxlQ2VsbEhlYWRlcil9PgorICAgICAgICAgICAgICAgIHtjb2x1bW4ucmVu ZGVyKCdIZWFkZXInKX0KKyAgICAgICAgICAgICAgICA8c3Bhbj4KKyAgICAgICAgICAgICAgICAg IHtjb2x1bW4uaXNTb3J0ZWQKKyAgICAgICAgICAgICAgICAgICAgPyBjb2x1bW4uaXNTb3J0ZWRE ZXNjCisgICAgICAgICAgICAgICAgICAgICAgPyAnIPCflL0nCisgICAgICAgICAgICAgICAgICAg ICAgOiAnIPCflLwnCisgICAgICAgICAgICAgICAgICAgIDogJyd9CisgICAgICAgICAgICAgICAg PC9zcGFuPgorICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAge2NvbHVtbi5yZXNp emFibGUgJiYKKyAgICAgICAgICAgICAgICA8ZGl2CisgICAgICAgICAgICAgICAgICB7Li4uY29s dW1uLmdldFJlc2l6ZXJQcm9wcygpfQorICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFz c2VzLnJlc2l6ZXJ9CisgICAgICAgICAgICAgICAgLz59CisgICAgICAgICAgICA8L2Rpdj4KKyAg ICAgICAgICApKX0KKyAgICAgICAgPC9kaXY+CisgICAgICApKX0KKyAgICA8L2Rpdj4KKyAgKTsK K30KKworRGF0YVRhYmxlSGVhZGVyLnByb3BUeXBlcyA9IHsKKyAgaGVhZGVyR3JvdXBzOiBQcm9w VHlwZXMuYXJyYXkuaXNSZXF1aXJlZCwKK307CisKK2Z1bmN0aW9uIERhdGFUYWJsZVJvdyh7cm93 LCB0b3RhbFJvd3MsIGNhbkV4cGFuZCwgaXNSZXNpemluZywgdmlld0hlbHBlclByb3BzLCBmb3Jt RXJyLCBzY2hlbWEsIGRhdGFEaXNwYXRjaCwgYWNjZXNzUGF0aH0pIHsKKyAgY29uc3QgY2xhc3Nl cyA9IHVzZVN0eWxlcygpOworICBjb25zdCBba2V5LCBzZXRLZXldID0gdXNlU3RhdGUoZmFsc2Up OworICAvLyBsZXQga2V5ID0gdXNlUmVmKHRydWUpOworICAvKiBNZW1vaXplIHRoZSByb3cgdG8g YXZvaWQgdW5uZWNlc3NhcnkgcmUtcmVuZGVyLgorICAgKiBJZiB0YWJsZSBkYXRhIGNoYW5nZXMs IHRoZW4gcmVhY3QtdGFibGUgcmUtcmVuZGVycyB0aGUgY29tcGxldGUgdGFibGVzCisgICAqIFdl IGNhbiBhdm9pZCByZS1yZW5kZXIgYnkgaWYgcm93IGRhdGEgaXMgbm90IGNoYW5nZWQKKyAgICov CisgIGxldCBkZXBzTWFwID0gXy52YWx1ZXMocm93Lm9yaWdpbmFsLCBPYmplY3Qua2V5cyhyb3cu b3JpZ2luYWwpLmZpbHRlcigoayk9PiFrLnN0YXJ0c1dpdGgoJ2J0bicpKSk7CisgIGRlcHNNYXAg PSBkZXBzTWFwLmNvbmNhdChbdG90YWxSb3dzLCByb3cuaXNFeHBhbmRlZCwga2V5LCBpc1Jlc2l6 aW5nXSk7CisgIHJldHVybiAoCisgICAgdXNlTWVtbygoKT0+CisgICAgICA8PgorICAgICAgICA8 ZGl2IHsuLi5yb3cuZ2V0Um93UHJvcHMoKX0gY2xhc3NOYW1lPSJ0ciI+CisgICAgICAgICAge3Jv dy5jZWxscy5tYXAoKGNlbGwsIGNpKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gKAorICAgICAg ICAgICAgICA8ZGl2IGtleT17Y2l9IHsuLi5jZWxsLmdldENlbGxQcm9wcygpfSBjbGFzc05hbWU9 e2NsYXNzZXMudGFibGVDZWxsfT4KKyAgICAgICAgICAgICAgICB7Y2VsbC5yZW5kZXIoJ0NlbGwn LCB7CisgICAgICAgICAgICAgICAgICByZVJlbmRlclJvdzogKCk9PntzZXRLZXkoKGN1cnJLZXkp PT4hY3VycktleSk7fQorICAgICAgICAgICAgICAgIH0pfQorICAgICAgICAgICAgICA8L2Rpdj4K KyAgICAgICAgICAgICk7CisgICAgICAgICAgfSl9CisgICAgICAgIDwvZGl2PgorICAgICAgICB7 CisgICAgICAgICAgY2FuRXhwYW5kICYmIHJvdy5pc0V4cGFuZGVkICYmCisgICAgICAgICAgPEZv cm1WaWV3IGtleT17cm93LmluZGV4fSB2YWx1ZT17cm93Lm9yaWdpbmFsfSB2aWV3SGVscGVyUHJv cHM9e3ZpZXdIZWxwZXJQcm9wc30gZm9ybUVycj17Zm9ybUVycn0gZGF0YURpc3BhdGNoPXtkYXRh RGlzcGF0Y2h9CisgICAgICAgICAgICBzY2hlbWE9e3NjaGVtYX0gYWNjZXNzUGF0aD17YWNjZXNz UGF0aH0gaXNOZXN0ZWQ9e3RydWV9Lz4KKyAgICAgICAgfQorICAgICAgPC8+CisgICAgLCBkZXBz TWFwKQorICApOworfQorCitleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEYXRhR3JpZFZpZXcoewor ICB2YWx1ZSwgdmlld0hlbHBlclByb3BzLCBmb3JtRXJyLCBzY2hlbWEsIGFjY2Vzc1BhdGgsIGRh dGFEaXNwYXRjaCwgY29udGFpbmVyQ2xhc3NOYW1lLCAuLi5wcm9wc30pIHsKKyAgY29uc3QgY2xh c3NlcyA9IHVzZVN0eWxlcygpOworICAvKiBDYWxjdWxhdGUgdGhlIGZpZWxkcyB3aGljaCBkZXBl bmRzIG9uIHRoZSBjdXJyZW50IGZpZWxkCisgIGRlcHMgaGFzIGluZm8gb24gZmllbGRzIHdoaWNo IHRoZSBjdXJyZW50IGZpZWxkIGRlcGVuZHMgb24uICovCisgIGNvbnN0IGRlcGVuZHNPbkZpZWxk ID0gdXNlTWVtbygoKT0+eworICAgIGxldCByZXMgPSB7fTsKKyAgICBzY2hlbWEuZmllbGRzLmZv ckVhY2goKGZpZWxkKT0+eworICAgICAgKGZpZWxkLmRlcHMgfHwgW10pLmZvckVhY2goKGRlcCk9 PnsKKyAgICAgICAgcmVzW2RlcF0gPSByZXNbZGVwXSB8fCBbXTsKKyAgICAgICAgcmVzW2RlcF0u cHVzaChmaWVsZC5pZCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgICByZXR1cm4gcmVzOworICB9 LCBbXSk7CisgIGxldCBjb2x1bW5zID0gdXNlTWVtbygKKyAgICAoKT0+eworICAgICAgbGV0IGNv bHMgPSBbXTsKKyAgICAgIGlmKHByb3BzLmNhbkVkaXQpIHsKKyAgICAgICAgbGV0IGNvbEluZm8g PSB7CisgICAgICAgICAgSGVhZGVyOiA8PiZuYnNwOzwvPiwKKyAgICAgICAgICBpZDogJ2J0bi1l ZGl0JywKKyAgICAgICAgICBhY2Nlc3NvcjogKCk9Pnt9LAorICAgICAgICAgIHJlc2l6YWJsZTog ZmFsc2UsCisgICAgICAgICAgc29ydGFibGU6IGZhbHNlLAorICAgICAgICAgIGRhdGFUeXBlOiAn ZWRpdCcsCisgICAgICAgICAgd2lkdGg6IDMwLAorICAgICAgICAgIG1pbldpZHRoOiAnMCcsCisg ICAgICAgICAgQ2VsbDogKHtyb3d9KT0+PFBnSWNvbkJ1dHRvbiBkYXRhLXRlc3Q9ImV4cGFuZC1y b3ciIHRpdGxlPXtnZXR0ZXh0KCdFZGl0IHJvdycpfSBpY29uPXs8RWRpdFJvdW5kZWRJY29uIC8+ fSBjbGFzc05hbWU9e2NsYXNzZXMuZ3JpZFJvd0J1dHRvbn0KKyAgICAgICAgICAgIG9uQ2xpY2s9 eygpPT57CisgICAgICAgICAgICAgIHJvdy50b2dnbGVSb3dFeHBhbmRlZCghcm93LmlzRXhwYW5k ZWQpOworICAgICAgICAgICAgfX0KKyAgICAgICAgICAvPgorICAgICAgICB9OworICAgICAgICBj b2xJbmZvLkNlbGwuZGlzcGxheU5hbWUgPSAnQ2VsbCcsCisgICAgICAgIGNvbEluZm8uQ2VsbC5w cm9wVHlwZXMgPSB7CisgICAgICAgICAgcm93OiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQs CisgICAgICAgIH07CisgICAgICAgIGNvbHMucHVzaChjb2xJbmZvKTsKKyAgICAgIH0KKyAgICAg IGlmKHByb3BzLmNhbkRlbGV0ZSkgeworICAgICAgICBsZXQgY29sSW5mbyA9IHsKKyAgICAgICAg ICBIZWFkZXI6IDw+Jm5ic3A7PC8+LAorICAgICAgICAgIGlkOiAnYnRuLWRlbGV0ZScsCisgICAg ICAgICAgYWNjZXNzb3I6ICgpPT57fSwKKyAgICAgICAgICByZXNpemFibGU6IGZhbHNlLAorICAg ICAgICAgIHNvcnRhYmxlOiBmYWxzZSwKKyAgICAgICAgICBkYXRhVHlwZTogJ2RlbGV0ZScsCisg ICAgICAgICAgd2lkdGg6IDMwLAorICAgICAgICAgIG1pbldpZHRoOiAnMCcsCisgICAgICAgICAg Q2VsbDogKHtyb3d9KSA9PiB7CisgICAgICAgICAgICByZXR1cm4gKAorICAgICAgICAgICAgICA8 UGdJY29uQnV0dG9uIGRhdGEtdGVzdD0iZGVsZXRlLXJvdyIgdGl0bGU9e2dldHRleHQoJ0RlbGV0 ZSByb3cnKX0gaWNvbj17PERlbGV0ZVJvdW5kZWRJY29uIC8+fQorICAgICAgICAgICAgICAgIG9u Q2xpY2s9eygpPT57CisgICAgICAgICAgICAgICAgICBjb25maXJtRGVsZXRlUm93KCgpPT57Cisg ICAgICAgICAgICAgICAgICAgIGRhdGFEaXNwYXRjaCh7CisgICAgICAgICAgICAgICAgICAgICAg dHlwZTogU0NIRU1BX1NUQVRFX0FDVElPTlMuREVMRVRFX1JPVywKKyAgICAgICAgICAgICAgICAg ICAgICBwYXRoOiBhY2Nlc3NQYXRoLAorICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiByb3cu aW5kZXgsCisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgfSwgKCk9 Pnt9LCBwcm9wcy5jdXN0b21EZWxldGVUaXRsZSwgcHJvcHMuY3VzdG9tRGVsZXRlTXNnKTsKKyAg ICAgICAgICAgICAgICB9fSBjbGFzc05hbWU9e2NsYXNzZXMuZ3JpZFJvd0J1dHRvbn0gLz4KKyAg ICAgICAgICAgICk7CisgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICBjb2xJbmZvLkNl bGwuZGlzcGxheU5hbWUgPSAnQ2VsbCcsCisgICAgICAgIGNvbEluZm8uQ2VsbC5wcm9wVHlwZXMg PSB7CisgICAgICAgICAgcm93OiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsCisgICAgICAg IH07CisgICAgICAgIGNvbHMucHVzaChjb2xJbmZvKTsKKyAgICAgIH0KKworICAgICAgY29scyA9 IGNvbHMuY29uY2F0KAorICAgICAgICBzY2hlbWEuZmllbGRzCisgICAgICAgICAgLm1hcCgoZmll bGQpPT57CisgICAgICAgICAgICBsZXQgY29sSW5mbyA9IHsKKyAgICAgICAgICAgICAgSGVhZGVy OiBmaWVsZC5sYWJlbCwKKyAgICAgICAgICAgICAgYWNjZXNzb3I6IGZpZWxkLmlkLAorICAgICAg ICAgICAgICBmaWVsZDogZmllbGQsCisgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSwKKyAg ICAgICAgICAgICAgc29ydGFibGU6IHRydWUsCisgICAgICAgICAgICAgIC4uLihmaWVsZC5taW5X aWR0aCA/ICB7bWluV2lkdGg6IGZpZWxkLm1pbldpZHRofSA6IHt9KSwKKyAgICAgICAgICAgICAg Q2VsbDogKHt2YWx1ZSwgcm93LCAuLi5vdGhlcn0pID0+IHsKKyAgICAgICAgICAgICAgICBsZXQg e3Zpc2libGUsIGRpc2FibGVkLCByZWFkb25seSwgLi4uX2ZpZWxkfSA9IGZpZWxkOworCisgICAg ICAgICAgICAgICAgbGV0IHZlckluTGltaXQgPSAoXy5pc1VuZGVmaW5lZCh2aWV3SGVscGVyUHJv cHMuc2VydmVySW5mbykgPyB0cnVlIDoKKyAgICAgICAgICAgICAgICAgICgoXy5pc1VuZGVmaW5l ZChmaWVsZC5zZXJ2ZXJfdHlwZSkgPyB0cnVlIDoKKyAgICAgICAgICAgICAgICAgICAgKHZpZXdI ZWxwZXJQcm9wcy5zZXJ2ZXJJbmZvLnR5cGUgaW4gZmllbGQuc2VydmVyX3R5cGUpKSAmJgorICAg ICAgICAgICAgICAgICAgKF8uaXNVbmRlZmluZWQoZmllbGQubWluX3ZlcnNpb24pID8gdHJ1ZSA6 CisgICAgICAgICAgICAgICAgICAgICh2aWV3SGVscGVyUHJvcHMuc2VydmVySW5mby52ZXJzaW9u ID49IGZpZWxkLm1pbl92ZXJzaW9uKSkgJiYKKyAgICAgICAgICAgICAgICAgIChfLmlzVW5kZWZp bmVkKGZpZWxkLm1heF92ZXJzaW9uKSA/IHRydWUgOgorICAgICAgICAgICAgICAgICAgICAodmll d0hlbHBlclByb3BzLnNlcnZlckluZm8udmVyc2lvbiA8PSBmaWVsZC5tYXhfdmVyc2lvbikpKSk7 CisgICAgICAgICAgICAgICAgbGV0IF9yZWFkb25seSA9IHZpZXdIZWxwZXJQcm9wcy5pbkNhdGFs b2cgfHwgKHZpZXdIZWxwZXJQcm9wcy5tb2RlID09ICdwcm9wZXJ0aWVzJyk7CisgICAgICAgICAg ICAgICAgaWYoIV9yZWFkb25seSkgeworICAgICAgICAgICAgICAgICAgX3JlYWRvbmx5ID0gZXZh bEZ1bmMocmVhZG9ubHksIHJvdy5vcmlnaW5hbCB8fCB7fSk7CisgICAgICAgICAgICAgICAgfQor CisgICAgICAgICAgICAgICAgbGV0IF92aXNpYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBp Zih2aXNpYmxlKSB7CisgICAgICAgICAgICAgICAgICBfdmlzaWJsZSA9IGV2YWxGdW5jKHZpc2li bGUsIHJvdy5vcmlnaW5hbCB8fCB7fSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgIF92aXNpYmxlID0gX3Zpc2libGUgJiYgdmVySW5MaW1pdDsKKworICAgICAgICAgICAgICAg IGRpc2FibGVkID0gZXZhbEZ1bmMoZGlzYWJsZWQsIHJvdy5vcmlnaW5hbCB8fCB7fSk7CisKKyAg ICAgICAgICAgICAgICByZXR1cm4gPE1hcHBlZENlbGxDb250cm9sIHJvd0luZGV4PXtyb3cuaW5k ZXh9IHZhbHVlPXt2YWx1ZX0KKyAgICAgICAgICAgICAgICAgIHJvdz17cm93Lm9yaWdpbmFsfSB7 Li4uX2ZpZWxkfQorICAgICAgICAgICAgICAgICAgcmVhZG9ubHk9e19yZWFkb25seX0KKyAgICAg ICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH0KKyAgICAgICAgICAgICAgICAgIHZpc2li bGU9e192aXNpYmxlfQorICAgICAgICAgICAgICAgICAgb25DZWxsQ2hhbmdlPXsodmFsdWUpPT57 CisgICAgICAgICAgICAgICAgICAgIC8qIEdldCB0aGUgY2hhbmdlcyBvbiBkZXBlbmRlbnQgZmll bGRzIGFzIHdlbGwuCisgICAgICAgICAgICAgICAgICAgICAqIFRoZSByZXR1cm4gdmFsdWUgb2Yg ZGVwQ2hhbmdlIGZ1bmN0aW9uIGlzIG1lcmdlZCBhbmQgcGFzc2VkIHRvIHN0YXRlLgorICAgICAg ICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVwQ2hhbmdlID0g KHN0YXRlKT0+eworICAgICAgICAgICAgICAgICAgICAgIGxldCByb3dkYXRhID0gXy5nZXQoc3Rh dGUsIGFjY2Vzc1BhdGguY29uY2F0KHJvdy5pbmRleCkpOworICAgICAgICAgICAgICAgICAgICAg IF9maWVsZC5kZXBDaGFuZ2UgJiYgXy5tZXJnZShyb3dkYXRhLCBfZmllbGQuZGVwQ2hhbmdlKHJv d2RhdGEsIF9maWVsZC5pZCkgfHwge30pOworICAgICAgICAgICAgICAgICAgICAgIChkZXBlbmRz T25GaWVsZFtfZmllbGQuaWRdIHx8IFtdKS5mb3JFYWNoKChkKT0+eworICAgICAgICAgICAgICAg ICAgICAgICAgZCA9IF8uZmluZChzY2hlbWEuZmllbGRzLCAoZik9PmYuaWQ9PWQpOworICAgICAg ICAgICAgICAgICAgICAgICAgaWYoZC5kZXBDaGFuZ2UpIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgXy5tZXJnZShyb3dkYXRhLCBkLmRlcENoYW5nZShyb3dkYXRhLCBfZmllbGQuaWQpIHx8 IHt9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICB9 KTsKKyAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGU7CisgICAgICAgICAgICAgICAg ICAgIH07CisgICAgICAgICAgICAgICAgICAgIGRhdGFEaXNwYXRjaCh7CisgICAgICAgICAgICAg ICAgICAgICAgdHlwZTogU0NIRU1BX1NUQVRFX0FDVElPTlMuU0VUX1ZBTFVFLAorICAgICAgICAg ICAgICAgICAgICAgIHBhdGg6IGFjY2Vzc1BhdGguY29uY2F0KFtyb3cuaW5kZXgsIF9maWVsZC5p ZF0pLAorICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSwKKyAgICAgICAgICAgICAg ICAgICAgICBkZXBDaGFuZ2U6IGRlcENoYW5nZSwKKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg ICAgICAgICAgICAgICAgICB9fQorICAgICAgICAgICAgICAgICAgcmVSZW5kZXJSb3c9e290aGVy LnJlUmVuZGVyUm93fQorICAgICAgICAgICAgICAgIC8+OworICAgICAgICAgICAgICB9LAorICAg ICAgICAgICAgfTsKKyAgICAgICAgICAgIGNvbEluZm8uQ2VsbC5kaXNwbGF5TmFtZSA9ICdDZWxs JywKKyAgICAgICAgICAgIGNvbEluZm8uQ2VsbC5wcm9wVHlwZXMgPSB7CisgICAgICAgICAgICAg IHJvdzogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLAorICAgICAgICAgICAgICB2YWx1ZTog UHJvcFR5cGVzLmFueSwKKyAgICAgICAgICAgICAgb25DZWxsQ2hhbmdlOiBQcm9wVHlwZXMuZnVu YywKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4gY29sSW5mbzsKKyAgICAgICAg ICB9KQorICAgICAgKTsKKyAgICAgIHJldHVybiBjb2xzOworICAgIH0sW10pOworCisgIGNvbnN0 IG9uQWRkQ2xpY2sgPSB1c2VDYWxsYmFjaygoKT0+eworICAgIGxldCBuZXdSb3cgPSB7fTsKKyAg ICBjb2x1bW5zLmZvckVhY2goKGNvbHVtbik9PnsKKyAgICAgIGlmKGNvbHVtbi5maWVsZCkgewor ICAgICAgICBuZXdSb3dbY29sdW1uLmZpZWxkLmlkXSA9IHNjaGVtYS5kZWZhdWx0c1tjb2x1bW4u ZmllbGQuaWRdOworICAgICAgfQorICAgIH0pOworICAgIGRhdGFEaXNwYXRjaCh7CisgICAgICB0 eXBlOiBTQ0hFTUFfU1RBVEVfQUNUSU9OUy5BRERfUk9XLAorICAgICAgcGF0aDogYWNjZXNzUGF0 aCwKKyAgICAgIHZhbHVlOiBuZXdSb3csCisgICAgfSk7CisgIH0pOworCisgIGNvbnN0IGRlZmF1 bHRDb2x1bW4gPSB1c2VNZW1vKCgpPT4oeworICAgIG1pbldpZHRoOiAxNzUsCisgIH0pKTsKKwor ICBsZXQgdGFibGVQbHVnaW5zID0gWworICAgIHVzZUJsb2NrTGF5b3V0LAorICAgIHVzZVJlc2l6 ZUNvbHVtbnMsCisgICAgdXNlU29ydEJ5LAorICBdOworICBpZihwcm9wcy5jYW5FZGl0KSB7Cisg ICAgdGFibGVQbHVnaW5zLnB1c2godXNlRXhwYW5kZWQpOworICB9CisgIGNvbnN0IHsKKyAgICBn ZXRUYWJsZVByb3BzLAorICAgIGdldFRhYmxlQm9keVByb3BzLAorICAgIGhlYWRlckdyb3VwcywK KyAgICByb3dzLAorICAgIHByZXBhcmVSb3csCisgIH0gPSB1c2VUYWJsZSgKKyAgICB7CisgICAg ICBjb2x1bW5zLAorICAgICAgZGF0YTogdmFsdWUgfHwgW10sCisgICAgICBkZWZhdWx0Q29sdW1u LAorICAgICAgbWFudWFsU29ydEJ5OiB0cnVlLAorICAgICAgYXV0b1Jlc2V0U29ydEJ5OiBmYWxz ZSwKKyAgICAgIGF1dG9SZXNldEV4cGFuZGVkOiBmYWxzZSwKKyAgICB9LAorICAgIC4uLnRhYmxl UGx1Z2lucywKKyAgKTsKKworICBjb25zdCBpc1Jlc2l6aW5nID0gXy5mbGF0TWFwKGhlYWRlckdy b3VwcywgaGVhZGVyR3JvdXAgPT4gaGVhZGVyR3JvdXAuaGVhZGVycy5tYXAoY29sPT5jb2wuaXNS ZXNpemluZykpLmluY2x1ZGVzKHRydWUpOworCisgIHJldHVybiAoCisgICAgPEJveCBjbGFzc05h bWU9e2NvbnRhaW5lckNsYXNzTmFtZX0+CisgICAgICA8Qm94IGNsYXNzTmFtZT17Y2xhc3Nlcy5n cmlkfT4KKyAgICAgICAgPEJveCBjbGFzc05hbWU9e2NsYXNzZXMuZ3JpZEhlYWRlcn0+CisgICAg ICAgICAgPEJveCBjbGFzc05hbWU9e2NsYXNzZXMuZ3JpZEhlYWRlclRleHR9Pntwcm9wcy5sYWJl bH08L0JveD4KKyAgICAgICAgICA8Qm94IGNsYXNzTmFtZT17Y2xhc3Nlcy5ncmlkQ29udHJvbHN9 PgorICAgICAgICAgICAge3Byb3BzLmNhbkFkZCAmJiA8UGdJY29uQnV0dG9uIGRhdGEtdGVzdD0i YWRkLXJvdyIgdGl0bGU9e2dldHRleHQoJ0FkZCByb3cnKX0gb25DbGljaz17b25BZGRDbGlja30g aWNvbj17PEFkZEljb24gLz59IGNsYXNzTmFtZT17Y2xhc3Nlcy5ncmlkQ29udHJvbHNCdXR0b259 IC8+fQorICAgICAgICAgIDwvQm94PgorICAgICAgICA8L0JveD4KKyAgICAgICAgPGRpdiB7Li4u Z2V0VGFibGVQcm9wcygpfSBjbGFzc05hbWU9e2NsYXNzZXMudGFibGV9PgorICAgICAgICAgIDxE YXRhVGFibGVIZWFkZXIgaGVhZGVyR3JvdXBzPXtoZWFkZXJHcm91cHN9IC8+CisgICAgICAgICAg PGRpdiB7Li4uZ2V0VGFibGVCb2R5UHJvcHMoKX0+CisgICAgICAgICAgICB7cm93cy5tYXAoKHJv dywgaSkgPT4geworICAgICAgICAgICAgICBwcmVwYXJlUm93KHJvdyk7CisgICAgICAgICAgICAg IHJldHVybiA8RGF0YVRhYmxlUm93IGtleT17aX0gcm93PXtyb3d9IHRvdGFsUm93cz17cm93cy5s ZW5ndGh9IGNhbkV4cGFuZD17cHJvcHMuY2FuRWRpdH0KKyAgICAgICAgICAgICAgICB2YWx1ZT17 dmFsdWV9IHZpZXdIZWxwZXJQcm9wcz17dmlld0hlbHBlclByb3BzfSBmb3JtRXJyPXtmb3JtRXJy fSBpc1Jlc2l6aW5nPXtpc1Jlc2l6aW5nfQorICAgICAgICAgICAgICAgIHNjaGVtYT17c2NoZW1h fSBhY2Nlc3NQYXRoPXthY2Nlc3NQYXRoLmNvbmNhdChbcm93LmluZGV4XSl9IGRhdGFEaXNwYXRj aD17ZGF0YURpc3BhdGNofSAvPjsKKyAgICAgICAgICAgIH0pfQorICAgICAgICAgIDwvZGl2Pgor ICAgICAgICA8L2Rpdj4KKyAgICAgIDwvQm94PgorICAgIDwvQm94PgorICApOworfQorCitEYXRh R3JpZFZpZXcucHJvcFR5cGVzID0geworICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZywKKyAgdmFs dWU6IFByb3BUeXBlcy5hcnJheSwKKyAgdmlld0hlbHBlclByb3BzOiBQcm9wVHlwZXMub2JqZWN0 LAorICBmb3JtRXJyOiBQcm9wVHlwZXMub2JqZWN0LAorICBzY2hlbWE6IEN1c3RvbVByb3BUeXBl cy5zY2hlbWFVSSwKKyAgYWNjZXNzUGF0aDogUHJvcFR5cGVzLmFycmF5LmlzUmVxdWlyZWQsCisg IGRhdGFEaXNwYXRjaDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCwKKyAgY29udGFpbmVyQ2xh c3NOYW1lOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMub2JqZWN0LCBQcm9wVHlwZXMu c3RyaW5nXSksCisgIGNhbkVkaXQ6IFByb3BUeXBlcy5ib29sLAorICBjYW5BZGQ6IFByb3BUeXBl cy5ib29sLAorICBjYW5EZWxldGU6IFByb3BUeXBlcy5ib29sLAorICBjdXN0b21EZWxldGVUaXRs ZTogUHJvcFR5cGVzLnN0cmluZywKKyAgY3VzdG9tRGVsZXRlTXNnOiBQcm9wVHlwZXMuc3RyaW5n LAorfTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9TY2hlbWFWaWV3L0Zvcm1W aWV3LmpzeCBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9TY2hlbWFWaWV3L0Zvcm1WaWV3LmpzeApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjQ4NWQ5ODNkZAotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9TY2hlbWFWaWV3L0Zvcm1WaWV3LmpzeApA QCAtMCwwICsxLDI1NyBAQAorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9v bHMKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIxLCBUaGUgcGdBZG1pbiBEZXZlbG9w bWVudCBUZWFtCisvLyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3Jl U1FMIExpY2VuY2UKKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VN ZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnOworaW1wb3J0IHsgQm94LCBtYWtl U3R5bGVzLCBUYWIsIFRhYnMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZSc7CitpbXBvcnQgXyBm cm9tICdsb2Rhc2gnOworaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJzsKKworaW1w b3J0IHsgTWFwcGVkRm9ybUNvbnRyb2wgfSBmcm9tICcuL01hcHBlZENvbnRyb2wnOworaW1wb3J0 IFRhYlBhbmVsIGZyb20gJy4uL2NvbXBvbmVudHMvVGFiUGFuZWwnOworaW1wb3J0IERhdGFHcmlk VmlldyBmcm9tICcuL0RhdGFHcmlkVmlldyc7CitpbXBvcnQgeyBTQ0hFTUFfU1RBVEVfQUNUSU9O UyB9IGZyb20gJy4nOworaW1wb3J0IHsgSW5wdXRTUUwgfSBmcm9tICcuLi9jb21wb25lbnRzL0Zv cm1Db21wb25lbnRzJzsKK2ltcG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJjZXMvZ2V0dGV4dCc7Citp bXBvcnQgeyBldmFsRnVuYyB9IGZyb20gJ3NvdXJjZXMvdXRpbHMnOworaW1wb3J0IEN1c3RvbVBy b3BUeXBlcyBmcm9tICcuLi9jdXN0b21fcHJvcF90eXBlcyc7CisKK2NvbnN0IHVzZVN0eWxlcyA9 IG1ha2VTdHlsZXMoKHRoZW1lKT0+KHsKKyAgZnVsbFNwYWNlOiB7CisgICAgcGFkZGluZzogMCwK KyAgICBoZWlnaHQ6ICcxMDAlJworICB9LAorICBjb250cm9sUm93OiB7CisgICAgcGFkZGluZ0Jv dHRvbTogdGhlbWUuc3BhY2luZygxKSwKKyAgfSwKK30pKTsKKworLyogT3B0aW9uYWwgU1FMIHRh YiAqLworZnVuY3Rpb24gU1FMVGFiKHthY3RpdmUsIGdldFNRTFZhbHVlfSkgeworICBjb25zdCBb c3FsLCBzZXRTcWxdID0gdXNlU3RhdGUoJ0xvYWRpbmcuLi4nKTsKKyAgdXNlRWZmZWN0KCgpPT57 CisgICAgbGV0IHVubW91bnRlZCA9IGZhbHNlOworICAgIGlmKGFjdGl2ZSkgeworICAgICAgc2V0 U3FsKCdMb2FkaW5nLi4uJyk7CisgICAgICBnZXRTUUxWYWx1ZSgpLnRoZW4oKHZhbHVlKT0+ewor ICAgICAgICBpZighdW5tb3VudGVkKSB7CisgICAgICAgICAgc2V0U3FsKHZhbHVlKTsKKyAgICAg ICAgfQorICAgICAgfSk7CisgICAgfQorICAgIHJldHVybiAoKT0+e3VubW91bnRlZD10cnVlO307 CisgIH0sIFthY3RpdmVdKTsKKworICByZXR1cm4gPElucHV0U1FMCisgICAgdmFsdWU9e3NxbH0K KyAgICBvcHRpb25zPXt7CisgICAgICByZWFkT25seTogdHJ1ZSwKKyAgICB9fQorICAvPjsKK30K KworU1FMVGFiLnByb3BUeXBlcyA9IHsKKyAgYWN0aXZlOiBQcm9wVHlwZXMuYm9vbCwKKyAgZ2V0 U1FMVmFsdWU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsCit9OworCisvKiBUaGUgZmlyc3Qg Y29tcG9uZW50IG9mIHNjaGVtYSB2aWV3IGZvcm0gKi8KK2V4cG9ydCBkZWZhdWx0IGZ1bmN0aW9u IEZvcm1WaWV3KHsKKyAgdmFsdWUsIGZvcm1FcnIsIHNjaGVtYT17fSwgdmlld0hlbHBlclByb3Bz LCBpc05lc3RlZD1mYWxzZSwgYWNjZXNzUGF0aCwgZGF0YURpc3BhdGNoLCBoYXNTUUxUYWIsIGdl dFNRTFZhbHVlLCBvblRhYkNoYW5nZSwgZmlyc3RFbGVSZWZ9KSB7CisgIGxldCBkZWZhdWx0VGFi ID0gJ0dlbmVyYWwnOworICBsZXQgdGFicyA9IHt9OworICBsZXQgdGFic0NsYXNzbmFtZSA9IHt9 OworICBjb25zdCBbdGFiVmFsdWUsIHNldFRhYlZhbHVlXSA9IHVzZVN0YXRlKDApOworICBjb25z dCBjbGFzc2VzID0gdXNlU3R5bGVzKCk7CisgIGNvbnN0IGZpcnN0RWxlbWVudCA9IHVzZVJlZigp OworCisgIHNjaGVtYSA9IHNjaGVtYSB8fCB7ZmllbGRzOiBbXX07CisKKyAgLyogQ2FsY3VsYXRl IHRoZSBmaWVsZHMgd2hpY2ggZGVwZW5kcyBvbiB0aGUgY3VycmVudCBmaWVsZAorICBkZXBzIGhh cyBpbmZvIG9uIGZpZWxkcyB3aGljaCB0aGUgY3VycmVudCBmaWVsZCBkZXBlbmRzIG9uLiAqLwor ICBjb25zdCBkZXBlbmRzT25GaWVsZCA9IHVzZU1lbW8oKCk9PnsKKyAgICBsZXQgcmVzID0ge307 CisgICAgc2NoZW1hLmZpZWxkcy5mb3JFYWNoKChmaWVsZCk9PnsKKyAgICAgIChmaWVsZC5kZXBz IHx8IFtdKS5mb3JFYWNoKChkZXApPT57CisgICAgICAgIHJlc1tkZXBdID0gcmVzW2RlcF0gfHwg W107CisgICAgICAgIHJlc1tkZXBdLnB1c2goZmllbGQuaWQpOworICAgICAgfSk7CisgICAgfSk7 CisgICAgcmV0dXJuIHJlczsKKyAgfSwgW10pOworCisgIC8qIFByZXBhcmUgdGhlIGFycmF5IG9m IGNvbXBvbmVudHMgYmFzZWQgb24gdGhlIHR5cGVzICovCisgIHNjaGVtYS5maWVsZHMuZm9yRWFj aCgoZik9PnsKKyAgICBsZXQgbW9kZVN1cHBvdGVkID0gdHJ1ZTsKKyAgICBpZihmLm1vZGUpIHsK KyAgICAgIG1vZGVTdXBwb3RlZCA9IChmLm1vZGUuaW5kZXhPZih2aWV3SGVscGVyUHJvcHMubW9k ZSkgPiAtMSk7CisgICAgfQorICAgIGlmKG1vZGVTdXBwb3RlZCkgeworICAgICAgbGV0IHt2aXNp YmxlLCBkaXNhYmxlZCwgZ3JvdXAsIHJlYWRvbmx5LCAuLi5maWVsZH0gPSBmOworICAgICAgZ3Jv dXAgPSBncm91cCB8fCBkZWZhdWx0VGFiOworCisgICAgICBsZXQgdmVySW5MaW1pdCA9IChfLmlz VW5kZWZpbmVkKHZpZXdIZWxwZXJQcm9wcy5zZXJ2ZXJJbmZvKSA/IHRydWUgOgorICAgICAgICAo KF8uaXNVbmRlZmluZWQoZmllbGQuc2VydmVyX3R5cGUpID8gdHJ1ZSA6CisgICAgICAgICAgKHZp ZXdIZWxwZXJQcm9wcy5zZXJ2ZXJJbmZvLnR5cGUgaW4gZmllbGQuc2VydmVyX3R5cGUpKSAmJgor ICAgICAgICAgIChfLmlzVW5kZWZpbmVkKGZpZWxkLm1pbl92ZXJzaW9uKSA/IHRydWUgOgorICAg ICAgICAgICAgKHZpZXdIZWxwZXJQcm9wcy5zZXJ2ZXJJbmZvLnZlcnNpb24gPj0gZmllbGQubWlu X3ZlcnNpb24pKSAmJgorICAgICAgICAgIChfLmlzVW5kZWZpbmVkKGZpZWxkLm1heF92ZXJzaW9u KSA/IHRydWUgOgorICAgICAgICAgICAgKHZpZXdIZWxwZXJQcm9wcy5zZXJ2ZXJJbmZvLnZlcnNp b24gPD0gZmllbGQubWF4X3ZlcnNpb24pKSkpOworCisgICAgICBsZXQgX3JlYWRvbmx5ID0gdmll d0hlbHBlclByb3BzLmluQ2F0YWxvZyB8fCAodmlld0hlbHBlclByb3BzLm1vZGUgPT0gJ3Byb3Bl cnRpZXMnKTsKKyAgICAgIGlmKCFfcmVhZG9ubHkpIHsKKyAgICAgICAgX3JlYWRvbmx5ID0gZXZh bEZ1bmMocmVhZG9ubHksIHZhbHVlKTsKKyAgICAgIH0KKworICAgICAgbGV0IF92aXNpYmxlID0g dHJ1ZTsKKworICAgICAgaWYodmlzaWJsZSkgeworICAgICAgICBfdmlzaWJsZSA9IGV2YWxGdW5j KHZpc2libGUsIHZhbHVlKTsKKyAgICAgIH0KKyAgICAgIF92aXNpYmxlID0gX3Zpc2libGUgJiYg dmVySW5MaW1pdDsKKworICAgICAgZGlzYWJsZWQgPSBldmFsRnVuYyhkaXNhYmxlZCwgdmFsdWUp OworCisKKyAgICAgIGlmKCF0YWJzW2dyb3VwXSkgdGFic1tncm91cF0gPSBbXTsKKworICAgICAg LyogTGV0cyBjaG9vc2UgdGhlIHBhdGggYmFzZWQgb24gdHlwZSAqLworICAgICAgaWYoZmllbGQu dHlwZSA9PT0gJ25lc3RlZC10YWInKSB7CisgICAgICAgIC8qIFBhc3Mgb24gdGhlIHRvcCBzY2hl bWEgKi8KKyAgICAgICAgZmllbGQuc2NoZW1hLnRvcCA9IHNjaGVtYS50b3A7CisgICAgICAgIHRh YnNbZ3JvdXBdLnB1c2goCisgICAgICAgICAgPEZvcm1WaWV3IGtleT17YG5lc3RlZCR7dGFic1tn cm91cF0ubGVuZ3RofWB9IHZhbHVlPXt2YWx1ZX0gdmlld0hlbHBlclByb3BzPXt2aWV3SGVscGVy UHJvcHN9IGZvcm1FcnI9e2Zvcm1FcnJ9CisgICAgICAgICAgICBzY2hlbWE9e2ZpZWxkLnNjaGVt YX0gYWNjZXNzUGF0aD17YWNjZXNzUGF0aH0gZGF0YURpc3BhdGNoPXtkYXRhRGlzcGF0Y2h9IGlz TmVzdGVkPXt0cnVlfSAvPgorICAgICAgICApOworICAgICAgfSBlbHNlIGlmKGZpZWxkLnR5cGUg PT09ICdjb2xsZWN0aW9uJykgeworICAgICAgICAvKiBQYXNzIG9uIHRoZSB0b3Agc2NoZW1hICov CisgICAgICAgIGZpZWxkLnNjaGVtYS50b3AgPSBzY2hlbWEudG9wOworICAgICAgICAvKiBJZiBp dHMgYSBjb2xsZWN0aW9uLCBsZXQgZGF0YSBncmlkIHZpZXcgaGFuZGxlIGl0ICovCisgICAgICAg IHRhYnNbZ3JvdXBdLnB1c2goCisgICAgICAgICAgdXNlTWVtbygoKT0+PERhdGFHcmlkVmlldyBr ZXk9e2ZpZWxkLmlkfSB2YWx1ZT17dmFsdWVbZmllbGQuaWRdfSB2aWV3SGVscGVyUHJvcHM9e3Zp ZXdIZWxwZXJQcm9wc30gZm9ybUVycj17Zm9ybUVycn0KKyAgICAgICAgICAgIHNjaGVtYT17Zmll bGQuc2NoZW1hfSBhY2Nlc3NQYXRoPXthY2Nlc3NQYXRoLmNvbmNhdChmaWVsZC5pZCl9IGRhdGFE aXNwYXRjaD17ZGF0YURpc3BhdGNofSBjb250YWluZXJDbGFzc05hbWU9e2NsYXNzZXMuY29udHJv bFJvd30KKyAgICAgICAgICAgIHsuLi5maWVsZH0vPiwgW3ZhbHVlW2ZpZWxkLmlkXV0pCisgICAg ICAgICk7CisgICAgICB9IGVsc2UgeworICAgICAgICAvKiBJdHMgYSBmb3JtIGNvbnRyb2wgKi8K KyAgICAgICAgY29uc3QgaGFzRXJyb3IgPSBmaWVsZC5pZCA9PSBmb3JtRXJyLm5hbWU7CisgICAg ICAgIC8qIFdoZW4gdGhlcmUgaXMgYSBjaGFuZ2UsIHRoZSBkZXBlbmRlbnQgdmFsdWVzIGNhbiBj aGFuZ2UKKyAgICAgICAgICogbGV0cyBwYXNzIHRoZSBuZXcgY2hhbmdlcyB0byBkZXBlbmRlbnQg YW5kIGdldCB0aGUgbmV3IHZhbHVlcworICAgICAgICAgKiBmcm9tIHRoZXJlIGFzIHdlbGwuCisg ICAgICAgICAqLworICAgICAgICB0YWJzW2dyb3VwXS5wdXNoKAorICAgICAgICAgIHVzZU1lbW8o KCk9PjxNYXBwZWRGb3JtQ29udHJvbAorICAgICAgICAgICAgaW5wdXRSZWY9eyhlbGUpPT57Cisg ICAgICAgICAgICAgIGlmKGZpcnN0RWxlUmVmICYmICFmaXJzdEVsZVJlZi5jdXJyZW50KSB7Cisg ICAgICAgICAgICAgICAgZmlyc3RFbGVSZWYuY3VycmVudCA9IGVsZTsKKyAgICAgICAgICAgICAg fQorICAgICAgICAgICAgfX0KKyAgICAgICAgICAgIGtleT17ZmllbGQuaWR9CisgICAgICAgICAg ICB2aWV3SGVscGVyUHJvcHM9e3ZpZXdIZWxwZXJQcm9wc30KKyAgICAgICAgICAgIG5hbWU9e2Zp ZWxkLmlkfQorICAgICAgICAgICAgdmFsdWU9e3ZhbHVlW2ZpZWxkLmlkXX0KKyAgICAgICAgICAg IHJlYWRvbmx5PXtfcmVhZG9ubHl9CisgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9Cisg ICAgICAgICAgICB2aXNpYmxlPXtfdmlzaWJsZX0KKyAgICAgICAgICAgIHsuLi5maWVsZH0KKyAg ICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWUpPT57CisgICAgICAgICAgICAgIC8qIEdldCB0aGUg Y2hhbmdlcyBvbiBkZXBlbmRlbnQgZmllbGRzIGFzIHdlbGwgKi8KKyAgICAgICAgICAgICAgY29u c3QgZGVwQ2hhbmdlID0gKHN0YXRlKT0+eworICAgICAgICAgICAgICAgIGZpZWxkLmRlcENoYW5n ZSAmJiBfLm1lcmdlKHN0YXRlLCBmaWVsZC5kZXBDaGFuZ2Uoc3RhdGUpIHx8IHt9KTsKKyAgICAg ICAgICAgICAgICAoZGVwZW5kc09uRmllbGRbZmllbGQuaWRdIHx8IFtdKS5mb3JFYWNoKChkKT0+ eworICAgICAgICAgICAgICAgICAgZCA9IF8uZmluZChzY2hlbWEuZmllbGRzLCAoZik9PmYuaWQ9 PWQpOworICAgICAgICAgICAgICAgICAgaWYoZC5kZXBDaGFuZ2UpIHsKKyAgICAgICAgICAgICAg ICAgICAgXy5tZXJnZShzdGF0ZSwgZC5kZXBDaGFuZ2Uoc3RhdGUpIHx8IHt9KTsKKyAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4g c3RhdGU7CisgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgIGRhdGFEaXNwYXRjaCh7Cisg ICAgICAgICAgICAgICAgdHlwZTogU0NIRU1BX1NUQVRFX0FDVElPTlMuU0VUX1ZBTFVFLAorICAg ICAgICAgICAgICAgIHBhdGg6IGFjY2Vzc1BhdGguY29uY2F0KGZpZWxkLmlkKSwKKyAgICAgICAg ICAgICAgICB2YWx1ZTogdmFsdWUsCisgICAgICAgICAgICAgICAgZGVwQ2hhbmdlOiBkZXBDaGFu Z2UsCisgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfX0KKyAgICAgICAgICAgIGhhc0Vy cm9yPXtoYXNFcnJvcn0KKyAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5jb250cm9sUm93 fQorICAgICAgICAgIC8+LCBbCisgICAgICAgICAgICB2YWx1ZVtmaWVsZC5pZF0sCisgICAgICAg ICAgICBfcmVhZG9ubHksCisgICAgICAgICAgICBkaXNhYmxlZCwKKyAgICAgICAgICAgIF92aXNp YmxlLAorICAgICAgICAgICAgaGFzRXJyb3IsCisgICAgICAgICAgICBjbGFzc2VzLmNvbnRyb2xS b3csCisgICAgICAgICAgICAuLi4oZmllbGQuZGVwcyB8fCBbXSkubWFwKChkZXApPT52YWx1ZVtk ZXBdKQorICAgICAgICAgIF0pCisgICAgICAgICk7CisgICAgICB9CisgICAgfQorICB9KTsKKwor ICAvKiBBZGQgdGhlIFNRTCB0YWIgaWYgcmVxdWlyZWQgKi8KKyAgbGV0IHNxbFRhYkFjdGl2ZSA9 IGZhbHNlOworICBpZihoYXNTUUxUYWIpIHsKKyAgICBsZXQgc3FsVGFiTmFtZSA9IGdldHRleHQo J1NRTCcpOworICAgIHNxbFRhYkFjdGl2ZSA9IChPYmplY3Qua2V5cyh0YWJzKS5sZW5ndGggPT09 IHRhYlZhbHVlKTsKKyAgICAvKiBSZS1yZW5kZXIgYW5kIGZldGNoIHRoZSBTUUwgdGFiIHdoZW4g aXQgaXMgYWN0aXZlICovCisgICAgdGFic1tzcWxUYWJOYW1lXSA9IFsKKyAgICAgIHVzZU1lbW8o KCk9PjxTUUxUYWIga2V5PSJzcWx0YWIiIGFjdGl2ZT17c3FsVGFiQWN0aXZlfSBnZXRTUUxWYWx1 ZT17Z2V0U1FMVmFsdWV9IC8+LCBbc3FsVGFiQWN0aXZlXSksCisgICAgXTsKKyAgICB0YWJzQ2xh c3NuYW1lW3NxbFRhYk5hbWVdID0gY2xhc3Nlcy5mdWxsU3BhY2U7CisgIH0KKworICB1c2VFZmZl Y3QoKCk9PnsKKyAgICBmaXJzdEVsZW1lbnQuY3VycmVudCAmJiBmaXJzdEVsZW1lbnQuY3VycmVu dC5mb2N1cygpOworICB9LCBbXSk7CisKKyAgdXNlRWZmZWN0KCgpPT57CisgICAgb25UYWJDaGFu Z2UgJiYgb25UYWJDaGFuZ2UodGFiVmFsdWUsIE9iamVjdC5rZXlzKHRhYnMpW3RhYlZhbHVlXSwg c3FsVGFiQWN0aXZlKTsKKyAgfSwgW3RhYlZhbHVlXSk7CisKKyAgcmV0dXJuICgKKyAgICA8Pgor ICAgICAgPEJveD4KKyAgICAgICAgPFRhYnMKKyAgICAgICAgICB2YWx1ZT17dGFiVmFsdWV9Cisg ICAgICAgICAgb25DaGFuZ2U9eyhldmVudCwgc2VsVGFiVmFsdWUpID0+IHsKKyAgICAgICAgICAg IHNldFRhYlZhbHVlKHNlbFRhYlZhbHVlKTsKKyAgICAgICAgICB9fQorICAgICAgICAgIC8vIGlu ZGljYXRvckNvbG9yPSJwcmltYXJ5IgorICAgICAgICAgIHZhcmlhbnQ9InNjcm9sbGFibGUiCisg ICAgICAgICAgc2Nyb2xsQnV0dG9ucz0iYXV0byIKKyAgICAgICAgICBhY3Rpb249eyhyZWYpPT5y ZWYgJiYgcmVmLnVwZGF0ZUluZGljYXRvcigpfQorICAgICAgICA+CisgICAgICAgICAge09iamVj dC5rZXlzKHRhYnMpLm1hcCgodGFiTmFtZSk9PnsKKyAgICAgICAgICAgIHJldHVybiA8VGFiIGtl eT17dGFiTmFtZX0gbGFiZWw9e3RhYk5hbWV9IC8+OworICAgICAgICAgIH0pfQorICAgICAgICA8 L1RhYnM+CisgICAgICA8L0JveD4KKyAgICAgIHtPYmplY3Qua2V5cyh0YWJzKS5tYXAoKHRhYk5h bWUsIGkpPT57CisgICAgICAgIHJldHVybiAoCisgICAgICAgICAgPFRhYlBhbmVsIGtleT17dGFi TmFtZX0gdmFsdWU9e3RhYlZhbHVlfSBpbmRleD17aX0gY2xhc3NOYW1lUm9vdD17aXNOZXN0ZWQg PyBjbGFzc2VzLmZ1bGxTcGFjZSA6IHRhYnNDbGFzc25hbWVbdGFiTmFtZV19PgorICAgICAgICAg ICAge3RhYnNbdGFiTmFtZV19CisgICAgICAgICAgPC9UYWJQYW5lbD4KKyAgICAgICAgKTsKKyAg ICAgIH0pfQorICAgIDwvPik7Cit9CisKK0Zvcm1WaWV3LnByb3BUeXBlcyA9IHsKKyAgdmFsdWU6 IFByb3BUeXBlcy5hbnksCisgIGZvcm1FcnI6IFByb3BUeXBlcy5vYmplY3QsCisgIHNjaGVtYTog Q3VzdG9tUHJvcFR5cGVzLnNjaGVtYVVJLmlzUmVxdWlyZWQsCisgIHZpZXdIZWxwZXJQcm9wczog UHJvcFR5cGVzLm9iamVjdCwKKyAgaXNOZXN0ZWQ6IFByb3BUeXBlcy5ib29sLAorICBhY2Nlc3NQ YXRoOiBQcm9wVHlwZXMuYXJyYXkuaXNSZXF1aXJlZCwKKyAgZGF0YURpc3BhdGNoOiBQcm9wVHlw ZXMuZnVuYywKKyAgaGFzU1FMVGFiOiBQcm9wVHlwZXMuYm9vbCwKKyAgZ2V0U1FMVmFsdWU6IFBy b3BUeXBlcy5mdW5jLAorICBvblRhYkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsCisgIGZpcnN0RWxl UmVmOiBDdXN0b21Qcm9wVHlwZXMucmVmLAorfTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0 YXRpYy9qcy9TY2hlbWFWaWV3L01hcHBlZENvbnRyb2wuanN4IGIvd2ViL3BnYWRtaW4vc3RhdGlj L2pzL1NjaGVtYVZpZXcvTWFwcGVkQ29udHJvbC5qc3gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwLi40NmE4MTUyNDUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9z dGF0aWMvanMvU2NoZW1hVmlldy9NYXBwZWRDb250cm9sLmpzeApAQCAtMCwwICsxLDE5OSBAQAor Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLworLy8KKy8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKy8vCisvLyBDb3B5cmln aHQgKEMpIDIwMTMgLSAyMDIxLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisvLyBUaGlz IHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKy8vCisv Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLworCitpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCc7CitpbXBv cnQgXyBmcm9tICdsb2Rhc2gnOworCitpbXBvcnQgeyBGb3JtSW5wdXRUZXh0LCBGb3JtSW5wdXRT ZWxlY3QsIEZvcm1JbnB1dFN3aXRjaCwgRm9ybUlucHV0Q2hlY2tib3gsIElucHV0U1FMLCBGb3Jt SW5wdXRDb2xvciwgRm9ybUlucHV0RmlsZVNlbGVjdCwgRm9ybUlucHV0VG9nZ2xlLCBJbnB1dFN3 aXRjaCB9IGZyb20gJy4uL2NvbXBvbmVudHMvRm9ybUNvbXBvbmVudHMnOworaW1wb3J0IHsgSW5w dXRTZWxlY3QsIElucHV0VGV4dCB9IGZyb20gJy4uL2NvbXBvbmVudHMvRm9ybUNvbXBvbmVudHMn OworaW1wb3J0IFByaXZpbGVnZSBmcm9tICcuLi9jb21wb25lbnRzL1ByaXZpbGVnZSc7CitpbXBv cnQgeyBldmFsRnVuYyB9IGZyb20gJ3NvdXJjZXMvdXRpbHMnOworaW1wb3J0IFByb3BUeXBlcyBm cm9tICdwcm9wLXR5cGVzJzsKK2ltcG9ydCBDdXN0b21Qcm9wVHlwZXMgZnJvbSAnLi4vY3VzdG9t X3Byb3BfdHlwZXMnOworCisvKiBDb250cm9sIG1hcHBpbmcgZm9yIGZvcm0gdmlldyAqLworZnVu Y3Rpb24gTWFwcGVkRm9ybUNvbnRyb2xCYXNlKHt0eXBlLCB2YWx1ZSwgaWQsIG9uQ2hhbmdlLCBj bGFzc05hbWUsIHZpc2libGUsIGlucHV0UmVmLCAuLi5wcm9wc30pIHsKKyAgY29uc3QgbmFtZSA9 IGlkOworICBjb25zdCBvblRleHRDaGFuZ2UgPSB1c2VDYWxsYmFjaygoZSkgPT4geworICAgIGxl dCB2YWx1ZSA9IGU7CisgICAgaWYoZSAmJiBlLnRhcmdldCkgeworICAgICAgdmFsdWUgPSBlLnRh cmdldC52YWx1ZTsKKyAgICB9CisgICAgb25DaGFuZ2UgJiYgb25DaGFuZ2UodmFsdWUpOworICB9 KTsKKworICBjb25zdCBvbkludENoYW5nZSA9IHVzZUNhbGxiYWNrKChlKSA9PiB7CisgICAgbGV0 IHZhbHVlID0gZTsKKyAgICBpZihlICYmIGUudGFyZ2V0KSB7CisgICAgICB2YWx1ZSA9IGUudGFy Z2V0LnZhbHVlOworICAgIH0KKyAgICBpZighaXNOYU4ocGFyc2VJbnQodmFsdWUpKSkgeworICAg ICAgdmFsdWUgPSBwYXJzZUludCh2YWx1ZSk7CisgICAgfQorICAgIG9uQ2hhbmdlICYmIG9uQ2hh bmdlKHZhbHVlKTsKKyAgfSk7CisKKyAgaWYoIXZpc2libGUpIHsKKyAgICByZXR1cm4gPD48Lz47 CisgIH0KKworICAvKiBUaGUgbWFwcGluZyB1c2VzIEZvcm0qIGNvbXBvbmVudHMgYXMgaXQgY29t ZXMgd2l0aCBsYWJlbHMgKi8KKyAgc3dpdGNoICh0eXBlKSB7CisgIGNhc2UgJ2ludCc6CisgICAg cmV0dXJuIDxGb3JtSW5wdXRUZXh0IG5hbWU9e25hbWV9IHZhbHVlPXt2YWx1ZX0gb25DaGFuZ2U9 e29uSW50Q2hhbmdlfSBjbGFzc05hbWU9e2NsYXNzTmFtZX0gaW5wdXRSZWY9e2lucHV0UmVmfSB7 Li4ucHJvcHN9Lz47CisgIGNhc2UgJ3RleHQnOgorICAgIHJldHVybiA8Rm9ybUlucHV0VGV4dCBu YW1lPXtuYW1lfSB2YWx1ZT17dmFsdWV9IG9uQ2hhbmdlPXtvblRleHRDaGFuZ2V9IGNsYXNzTmFt ZT17Y2xhc3NOYW1lfSBpbnB1dFJlZj17aW5wdXRSZWZ9IHsuLi5wcm9wc30vPjsKKyAgY2FzZSAn bXVsdGlsaW5lJzoKKyAgICByZXR1cm4gPEZvcm1JbnB1dFRleHQgbmFtZT17bmFtZX0gdmFsdWU9 e3ZhbHVlfSBvbkNoYW5nZT17b25UZXh0Q2hhbmdlfSBjbGFzc05hbWU9e2NsYXNzTmFtZX0KKyAg ICAgIGlucHV0UmVmPXtpbnB1dFJlZn0gY29udHJvbFByb3BzPXt7bXVsdGlsaW5lOiB0cnVlfX0g ey4uLnByb3BzfS8+OworICBjYXNlICdwYXNzd29yZCc6CisgICAgcmV0dXJuIDxGb3JtSW5wdXRU ZXh0IG5hbWU9e25hbWV9IHZhbHVlPXt2YWx1ZX0gb25DaGFuZ2U9e29uVGV4dENoYW5nZX0gY2xh c3NOYW1lPXtjbGFzc05hbWV9IHR5cGU9J3Bhc3N3b3JkJyBpbnB1dFJlZj17aW5wdXRSZWZ9IHsu Li5wcm9wc30vPjsKKyAgY2FzZSAnc2VsZWN0JzoKKyAgICByZXR1cm4gPEZvcm1JbnB1dFNlbGVj dCBuYW1lPXtuYW1lfSB2YWx1ZT17dmFsdWV9IG9uQ2hhbmdlPXtvblRleHRDaGFuZ2V9IGNsYXNz TmFtZT17Y2xhc3NOYW1lfSB7Li4ucHJvcHN9IC8+OworICBjYXNlICdzd2l0Y2gnOgorICAgIHJl dHVybiA8Rm9ybUlucHV0U3dpdGNoIG5hbWU9e25hbWV9IHZhbHVlPXt2YWx1ZX0KKyAgICAgIG9u Q2hhbmdlPXsoZSk9Pm9uVGV4dENoYW5nZShlLnRhcmdldC5jaGVja2VkLCBlLnRhcmdldC5uYW1l KX0gY2xhc3NOYW1lPXtjbGFzc05hbWV9CisgICAgICB7Li4ucHJvcHN9IC8+OworICBjYXNlICdj aGVja2JveCc6CisgICAgcmV0dXJuIDxGb3JtSW5wdXRDaGVja2JveCBuYW1lPXtuYW1lfSB2YWx1 ZT17dmFsdWV9CisgICAgICBvbkNoYW5nZT17KGUpPT5vblRleHRDaGFuZ2UoZS50YXJnZXQuY2hl Y2tlZCwgZS50YXJnZXQubmFtZSl9IGNsYXNzTmFtZT17Y2xhc3NOYW1lfQorICAgICAgey4uLnBy b3BzfSAvPjsKKyAgY2FzZSAndG9nZ2xlJzoKKyAgICByZXR1cm4gPEZvcm1JbnB1dFRvZ2dsZSBu YW1lPXtuYW1lfSB2YWx1ZT17dmFsdWV9CisgICAgICBvbkNoYW5nZT17b25UZXh0Q2hhbmdlfSBj bGFzc05hbWU9e2NsYXNzTmFtZX0KKyAgICAgIHsuLi5wcm9wc30gLz47CisgIGNhc2UgJ2NvbG9y JzoKKyAgICByZXR1cm4gPEZvcm1JbnB1dENvbG9yIG5hbWU9e25hbWV9IHZhbHVlPXt2YWx1ZX0g b25DaGFuZ2U9e29uVGV4dENoYW5nZX0gY2xhc3NOYW1lPXtjbGFzc05hbWV9IHsuLi5wcm9wc30g Lz47CisgIGNhc2UgJ2ZpbGUnOgorICAgIHJldHVybiA8Rm9ybUlucHV0RmlsZVNlbGVjdCBuYW1l PXtuYW1lfSB2YWx1ZT17dmFsdWV9IG9uQ2hhbmdlPXtvblRleHRDaGFuZ2V9IGNsYXNzTmFtZT17 Y2xhc3NOYW1lfSB7Li4ucHJvcHN9IC8+OworICBjYXNlICdzcWwnOgorICAgIHJldHVybiA8SW5w dXRTUUwgbmFtZT17bmFtZX0gdmFsdWU9e3ZhbHVlfSBvbkNoYW5nZT17b25UZXh0Q2hhbmdlfSBj bGFzc05hbWU9e2NsYXNzTmFtZX0gey4uLnByb3BzfS8+OworICBkZWZhdWx0OgorICAgIHJldHVy biA8PjwvPjsKKyAgfQorfQorCitNYXBwZWRGb3JtQ29udHJvbEJhc2UucHJvcFR5cGVzID0gewor ICB0eXBlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFsKKyAgICBQcm9wVHlwZXMuc3RyaW5nLCBQcm9w VHlwZXMuZnVuYywKKyAgXSkuaXNSZXF1aXJlZCwKKyAgdmFsdWU6IFByb3BUeXBlcy5hbnksCisg IGlkOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVt YmVyXSkuaXNSZXF1aXJlZCwKKyAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLAorICBjbGFzc05h bWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoWworICAgIFByb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBl cy5vYmplY3QsCisgIF0pLAorICB2aXNpYmxlOiBQcm9wVHlwZXMuYm9vbCwKKyAgaW5wdXRSZWY6 IEN1c3RvbVByb3BUeXBlcy5yZWYsCit9OworCisvKiBDb250cm9sIG1hcHBpbmcgZm9yIGdyaWQg Y2VsbCB2aWV3ICovCitmdW5jdGlvbiBNYXBwZWRDZWxsQ29udHJvbEJhc2Uoe2NlbGwsIHZhbHVl LCBpZCwgb3B0aW9uc0xvYWRlZCwgb25DZWxsQ2hhbmdlLCB2aXNpYmxlLCByZVJlbmRlclJvdywu Li5wcm9wc30pIHsKKyAgY29uc3QgbmFtZSA9IGlkOworICBjb25zdCBvblRleHRDaGFuZ2UgPSB1 c2VDYWxsYmFjaygoZSkgPT4geworICAgIGxldCB2YWx1ZSA9IGU7CisgICAgaWYoZSAmJiBlLnRh cmdldCkgeworICAgICAgdmFsdWUgPSBlLnRhcmdldC52YWx1ZTsKKyAgICB9CisKKyAgICBvbkNl bGxDaGFuZ2UodmFsdWUpOworICB9KTsKKworICAvKiBTb21lIGdyaWQgY2VsbHMgYXJlIGJhc2Vk IG9uIG9wdGlvbnMgc2VsZWN0ZWQgaW4gb3RoZXIgY2VsbHMuCisgICAqIGxldHMgdHJpZ2dlciBh IHJlLXJlbmRlciBmb3IgdGhlIHJvdyBpZiBvcHRpb25zTG9hZGVkCisgICAqLworICBjb25zdCBv cHRpb25zTG9hZGVkUmVyZW5kZXIgPSB1c2VDYWxsYmFjaygocmVzKT0+eworICAgIC8qIG9wdGlv bnNMb2FkZWQgaXMgY2FsbGVkIHdoZW4gc2VsZWN0IG9wdGlvbnMgYXJlIGZldGNoZWQgKi8KKyAg ICBvcHRpb25zTG9hZGVkICYmIG9wdGlvbnNMb2FkZWQocmVzKTsKKyAgICByZVJlbmRlclJvdyAm JiByZVJlbmRlclJvdygpOworICB9KTsKKworICBpZighdmlzaWJsZSkgeworICAgIHJldHVybiA8 PjwvPjsKKyAgfQorCisgIC8qIFRoZSBtYXBwaW5nIGRvZXMgbm90IG5lZWQgRm9ybSogY29tcG9u ZW50cyBhcyBsYWJlbHMgYXJlIG5vdCBuZWVkZWQgZm9yIGdyaWQgY2VsbHMgKi8KKyAgc3dpdGNo KGNlbGwpIHsKKyAgY2FzZSAnaW50JzoKKyAgY2FzZSAnbnVtYmVyJzoKKyAgY2FzZSAndGV4dCc6 CisgICAgcmV0dXJuIDxJbnB1dFRleHQgbmFtZT17bmFtZX0gdmFsdWU9e3ZhbHVlfSBvbkNoYW5n ZT17b25UZXh0Q2hhbmdlfSB7Li4ucHJvcHN9Lz47CisgIGNhc2UgJ3Bhc3N3b3JkJzoKKyAgICBy ZXR1cm4gPElucHV0VGV4dCBuYW1lPXtuYW1lfSB2YWx1ZT17dmFsdWV9IG9uQ2hhbmdlPXtvblRl eHRDaGFuZ2V9IHsuLi5wcm9wc30vPjsKKyAgY2FzZSAnc2VsZWN0JzoKKyAgICByZXR1cm4gPElu cHV0U2VsZWN0IG5hbWU9e25hbWV9IHZhbHVlPXt2YWx1ZX0gb25DaGFuZ2U9e29uVGV4dENoYW5n ZX0gb3B0aW9uc0xvYWRlZD17b3B0aW9uc0xvYWRlZFJlcmVuZGVyfSB7Li4ucHJvcHN9Lz47Cisg IGNhc2UgJ3N3aXRjaCc6CisgICAgcmV0dXJuIDxJbnB1dFN3aXRjaCBuYW1lPXtuYW1lfSB2YWx1 ZT17dmFsdWV9CisgICAgICBvbkNoYW5nZT17KGUpPT5vblRleHRDaGFuZ2UoZS50YXJnZXQuY2hl Y2tlZCwgZS50YXJnZXQubmFtZSl9IHsuLi5wcm9wc30gLz47CisgIGNhc2UgJ3ByaXZpbGVnZSc6 CisgICAgcmV0dXJuIDxQcml2aWxlZ2UgbmFtZT17bmFtZX0gdmFsdWU9e3ZhbHVlfSBvbkNoYW5n ZT17b25UZXh0Q2hhbmdlfSB7Li4ucHJvcHN9Lz47CisgIGRlZmF1bHQ6CisgICAgcmV0dXJuIDw+ PC8+OworICB9Cit9CisKK01hcHBlZENlbGxDb250cm9sQmFzZS5wcm9wVHlwZXMgPSB7CisgIGNl bGw6IFByb3BUeXBlcy5vbmVPZlR5cGUoWworICAgIFByb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBl cy5mdW5jLAorICBdKS5pc1JlcXVpcmVkLAorICB2YWx1ZTogUHJvcFR5cGVzLmFueSwKKyAgaWQ6 IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJd KS5pc1JlcXVpcmVkLAorICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsCisgIHJlUmVuZGVyUm93 OiBQcm9wVHlwZXMuZnVuYywKKyAgb3B0aW9uc0xvYWRlZDogUHJvcFR5cGVzLmZ1bmMsCisgIG9u Q2VsbENoYW5nZTogUHJvcFR5cGVzLmZ1bmMsCisgIHZpc2libGU6IFByb3BUeXBlcy5ib29sCit9 OworCitjb25zdCBBTExPV0VEX1BST1BTX0ZJRUxEX0NPTU1PTiA9IFsKKyAgJ21vZGUnLCAndmFs dWUnLCAncmVhZG9ubHknLCAnZGlzYWJsZWQnLCAnaGFzRXJyb3InLCAnaWQnLAorICAnbGFiZWwn LCAnb3B0aW9ucycsICdvcHRpb25zTG9hZGVkJywgJ2NvbnRyb2xQcm9wcycsICdzY2hlbWEnLCAn aW5wdXRSZWYnLAorICAndmlzaWJsZScsICdhdXRvRm9jdXMnLCAnaGVscE1lc3NhZ2UnLCAnY2xh c3NOYW1lJworXTsKKworY29uc3QgQUxMT1dFRF9QUk9QU19GSUVMRF9GT1JNID0gWworICAndHlw ZScsICdvbkNoYW5nZScKK107CisKK2NvbnN0IEFMTE9XRURfUFJPUFNfRklFTERfQ0VMTCA9IFsK KyAgJ2NlbGwnLCAnb25DZWxsQ2hhbmdlJywgJ3JvdycsICdyZVJlbmRlclJvdycsCitdOworCisK K2V4cG9ydCBjb25zdCBNYXBwZWRGb3JtQ29udHJvbCA9IChwcm9wcyk9PnsKKyAgbGV0IG5ld1By b3BzID0gey4uLnByb3BzfTsKKyAgbGV0IHR5cGVQcm9wcyA9IGV2YWxGdW5jKG5ld1Byb3BzLnR5 cGUsIG5ld1Byb3BzLnZhbHVlKTsKKyAgaWYodHlwZW9mKHR5cGVQcm9wcykgPT09ICdvYmplY3Qn KSB7CisgICAgbmV3UHJvcHMgPSB7CisgICAgICAuLi5uZXdQcm9wcywKKyAgICAgIC4uLnR5cGVQ cm9wcywKKyAgICB9OworICB9IGVsc2UgeworICAgIG5ld1Byb3BzLnR5cGUgPSB0eXBlUHJvcHM7 CisgIH0KKworICAvKiBGaWx0ZXIgb3V0IGdhcmJhZ2UgcHJvcHMgaWYgYW55IHVzaW5nIEFMTE9X RURfUFJPUFNfRklFTEQgKi8KKyAgcmV0dXJuIDxNYXBwZWRGb3JtQ29udHJvbEJhc2Ugey4uLl8u cGljayhuZXdQcm9wcywgXy51bmlvbihBTExPV0VEX1BST1BTX0ZJRUxEX0NPTU1PTiwgQUxMT1dF RF9QUk9QU19GSUVMRF9GT1JNKSl9Lz47Cit9OworCitleHBvcnQgY29uc3QgTWFwcGVkQ2VsbENv bnRyb2wgPSAocHJvcHMpPT57CisgIGxldCBuZXdQcm9wcyA9IHsuLi5wcm9wc307CisgIGxldCBj ZWxsUHJvcHMgPSBldmFsRnVuYyhuZXdQcm9wcy5jZWxsLCBuZXdQcm9wcy5yb3cpOworICBpZih0 eXBlb2YoY2VsbFByb3BzKSA9PT0gJ29iamVjdCcpIHsKKyAgICBuZXdQcm9wcyA9IHsKKyAgICAg IC4uLm5ld1Byb3BzLAorICAgICAgLi4uY2VsbFByb3BzLAorICAgIH07CisgIH0gZWxzZSB7Cisg ICAgbmV3UHJvcHMuY2VsbCA9IGNlbGxQcm9wczsKKyAgfQorCisgIC8qIEZpbHRlciBvdXQgZ2Fy YmFnZSBwcm9wcyBpZiBhbnkgdXNpbmcgQUxMT1dFRF9QUk9QU19GSUVMRCAqLworICByZXR1cm4g PE1hcHBlZENlbGxDb250cm9sQmFzZSB7Li4uXy5waWNrKG5ld1Byb3BzLCBfLnVuaW9uKEFMTE9X RURfUFJPUFNfRklFTERfQ09NTU9OLCBBTExPV0VEX1BST1BTX0ZJRUxEX0NFTEwpKX0vPjsKK307 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvU2NoZW1hVmlldy9iYXNlX3NjaGVt YS51aS5qcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9TY2hlbWFWaWV3L2Jhc2Vfc2NoZW1hLnVp LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZmIwMWEyNGQyCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL1NjaGVtYVZpZXcvYmFzZV9zY2hl bWEudWkuanMKQEAgLTAsMCArMSw5MSBAQAorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8vIHBnQWRtaW4gNCAtIFBvc3Rn cmVTUUwgVG9vbHMKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIxLCBUaGUgcGdBZG1p biBEZXZlbG9wbWVudCBUZWFtCisvLyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRo ZSBQb3N0Z3JlU1FMIExpY2VuY2UKKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvKiBUaGlzIGlzIHRoZSBiYXNlIHNj aGVtYSBjbGFzcyBmb3IgU2NoZW1hVmlldy4KKyAqIEEgVUkgc2NoZW1hIG11c3QgaW5oZXJpdCB0 aGlzIHRvIHVzZSBTY2hlbWFWaWV3IGZvciBVSS4KKyAqLworZXhwb3J0IGRlZmF1bHQgY2xhc3Mg QmFzZVVJU2NoZW1hIHsKKyAgY29uc3RydWN0b3IoZGVmYXVsdHMpIHsKKyAgICAvKiBQYXNzIHRo ZSBpbml0aWFsIGRhdGEgdG8gY29uc3RydWN0b3Igc28gdGhhdAorICAgIHRoZXkgd2lsbCBzZXQg dG8gZGVmYXVsdHMgKi8KKyAgICB0aGlzLl9kZWZhdWx0cyA9IGRlZmF1bHRzOworCisgICAgdGhp cy5rZXlzID0gbnVsbDsgLy8gSWYgc2V0LCBvdGhlciBmaWVsZHMgZXhjZXB0IGtleXMgd2lsbCBi ZSBmaWx0ZXJlZAorICAgIHRoaXMuaW5mb3JtVGV4dCA9IG51bGw7IC8vIEluZm9ybSB0ZXh0IHRv IHNob3cgYWZ0ZXIgc2F2ZSwgdGhpcyBvbmx5IHNhdmVzIGl0CisgICAgdGhpcy5fdG9wID0gbnVs bDsKKyAgfQorCisgIC8qIFRvcCBzY2hlbWEgaXMgaGVscGZ1bCBpZiB0aGlzIGlzIHVzZWQgYXMg Y2hpbGQgKi8KKyAgc2V0IHRvcCh2YWwpIHsKKyAgICB0aGlzLl90b3AgPSB2YWw7CisgIH0KKwor ICBnZXQgdG9wKCkgeworICAgIC8qIElmIG5vIHRvcCwgSSdtIHRoZSB0b3AgKi8KKyAgICByZXR1 cm4gdGhpcy5fdG9wIHx8IHRoaXM7CisgIH0KKworICAvKiBUaGUgb3JpZ2luYWwgZGF0YSBiZWZv cmUgYW55IGNoYW5nZXMgKi8KKyAgc2V0IG9yaWdEYXRhKHZhbCkgeworICAgIHRoaXMuX29yaWdE YXRhID0gdmFsOworICB9CisKKyAgZ2V0IG9yaWdEYXRhKCkgeworICAgIHJldHVybiB0aGlzLl9v cmlnRGF0YSB8fCB7fTsKKyAgfQorCisgIC8qIFByb3BlcnR5IGFsbG93cyB0byByZXN0cmljdCBz ZXR0aW5nIHRoaXMgbGF0ZXIgKi8KKyAgZ2V0IGRlZmF1bHRzKCkgeworICAgIHJldHVybiB0aGlz Ll9kZWZhdWx0cyB8fCB7fTsKKyAgfQorCisgIC8qIElEIGtleSBmb3IgdGhlIHZpZXcgc3RhdGUg Ki8KKyAgZ2V0IGlkQXR0cmlidXRlKCkgeworICAgIHJldHVybiAnaWQnOworICB9CisKKyAgLyog U2NoZW1hIGZpZWxkcywgdG8gYmUgZGVmaW5lZCBieSBpbmhlcml0ZWQgVUkgc2NoZW1hLiBPdmVy cmlkZSB0aGlzICovCisgIGdldCBiYXNlRmllbGRzKCkgeworICAgIHRocm93IG5ldyBFcnJvcign UHJvcGVydHkgbWV0aG9kIFwnYmFzZUZpZWxkcygpXCcgbXVzdCBiZSBpbXBsZW1lbnRlZC4nKTsK KyAgfQorCisgIC8qIFVzZWQgYnkgc2NoZW1hIHZpZXcgY29tcG9uZW50LiBEbyBub3Qgb3ZlcnJp ZGUgdGhpcywgaXQgd2lsbAorICBjb25jYXQgYmFzZSBmaWVsZHMgd2l0aCBleHRyYUZpZWxkcy4K KyAgKi8KKyAgZ2V0IGZpZWxkcygpIHsKKyAgICAvKiBTZWxlY3Qgb25seSBrZXlzIGlmIHNwZWNp ZmllZCAqLworICAgIHJldHVybiB0aGlzLmJhc2VGaWVsZHMKKyAgICAgIC5maWx0ZXIoKGZpZWxk KT0+dGhpcy5rZXlzID8gdGhpcy5rZXlzLmluZGV4T2YoZmllbGQuaWQpID4gLTEgOiB0cnVlKTsK KyAgfQorCisgIC8qIENoZWNrIGlmIGN1cnJlbnQgZGF0YSBpcyBuZXcgb3IgZXhpc3RpbmcgKi8K KyAgaXNOZXcoc3RhdGUpIHsKKyAgICBpZihfLmhhcyhzdGF0ZSwgdGhpcy5pZEF0dHJpYnV0ZSkp IHsKKyAgICAgIHJldHVybiBfLmlzVW5kZWZpbmVkKHN0YXRlW3RoaXMuaWRBdHRyaWJ1dGVdKQor ICAgICAgICB8fCBfLmlzTnVsbChzdGF0ZVt0aGlzLmlkQXR0cmlidXRlXSk7CisgICAgfQorICAg IC8qIE5lc3RlZCBjb2xsZWN0aW9uIHJvd3MgbWF5IG9yIG1heSBub3QgaGF2ZSBpZEF0dHJpYnV0 ZS4KKyAgICBTbyB0byBkZWNpZGUgd2hldGhlciByb3cgaXMgbmV3IG9yIG5vdCBzZXQsIHRoZSBj aWQgc3RhcnRzIHdpdGgKKyAgICBubiAobm90IG5ldykgZm9yIGV4aXN0aW5nIHJvd3MuIE5ld2x5 IGFkZGVkIHdpbGwgc3RhcnQgd2l0aCAnYycgKGNyZWF0ZWQpCisgICAgKi8KKyAgICBpZihfLmhh cyhzdGF0ZSwgJ2NpZCcpKSB7CisgICAgICByZXR1cm4gIXN0YXRlLmNpZC5zdGFydHNXaXRoKCdu bicpOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorCisgIC8qIENhbGxlZCBieSBTY2hl bWFWaWV3IHRvIHZhbGlkYXRlIGRhdGEsIHJldHVybiB0cnVlIGluZGljYXRlcyBpbnZhbGlkLgor ICB2YWxpZGF0ZSB3aWxsIHJlY2VpdmUgdHdvIHBhcmFtcyBzdGF0ZSBhbmQgc2V0RXJyb3IgZnVu YworICBFZyAtIHNldEVycm9yKCdmaWVsZG5hbWUnLCAnU29tZSBlcnJvcicpLgorICBBbmQgcmV0 dXJuIHRydWUgaWYgaW52YWxpZCwgb3RoZXJ3aXNlIGZhbHNlLgorICAqLworICB2YWxpZGF0ZSgp IHsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KK30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0 YXRpYy9qcy9TY2hlbWFWaWV3L2luZGV4LmpzeCBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9TY2hl bWFWaWV3L2luZGV4LmpzeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmMz MTA2YjM2YwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9TY2hlbWFW aWV3L2luZGV4LmpzeApAQCAtMCwwICsxLDY2MyBAQAorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8vIHBnQWRtaW4gNCAt IFBvc3RncmVTUUwgVG9vbHMKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIxLCBUaGUg cGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisvLyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVu ZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitpbXBvcnQgUmVhY3QsIHsg dXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVkdWNlciwgdXNlUmVmLCB1c2VT dGF0ZSB9IGZyb20gJ3JlYWN0JzsKK2ltcG9ydCB7IEJveCwgbWFrZVN0eWxlcyB9IGZyb20gJ0Bt YXRlcmlhbC11aS9jb3JlJzsKK2ltcG9ydCB7QWNjb3JkaW9uLCBBY2NvcmRpb25TdW1tYXJ5LCBB Y2NvcmRpb25EZXRhaWxzfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZSc7CitpbXBvcnQgRXhwYW5k TW9yZUljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0V4cGFuZE1vcmUnOworaW1wb3J0IFNh dmVJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9TYXZlJzsKK2ltcG9ydCBTZXR0aW5nc0Jh Y2t1cFJlc3RvcmVJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9TZXR0aW5nc0JhY2t1cFJl c3RvcmUnOworaW1wb3J0IENsb3NlSWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvQ2xvc2Un OworaW1wb3J0IEluZm9JY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9JbmZvUm91bmRlZCc7 CitpbXBvcnQgSGVscEljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0hlbHBSb3VuZGVkJzsK K2ltcG9ydCBFZGl0SWNvbiBmcm9tICdAbWF0ZXJpYWwtdWkvaWNvbnMvRWRpdCc7CitpbXBvcnQg ZGlmZkFycmF5IGZyb20gJ2RpZmYtYXJyYXlzLW9mLW9iamVjdHMnOworaW1wb3J0IF8gZnJvbSAn bG9kYXNoJzsKKworaW1wb3J0IHtGb3JtRm9vdGVyTWVzc2FnZSwgTUVTU0FHRV9UWVBFIH0gZnJv bSAnc291cmNlcy9jb21wb25lbnRzL0Zvcm1Db21wb25lbnRzJzsKK2ltcG9ydCBUaGVtZSBmcm9t ICdzb3VyY2VzL1RoZW1lJzsKK2ltcG9ydCB7IFByaW1hcnlCdXR0b24sIERlZmF1bHRCdXR0b24s IFBnSWNvbkJ1dHRvbiB9IGZyb20gJ3NvdXJjZXMvY29tcG9uZW50cy9CdXR0b25zJzsKK2ltcG9y dCBMb2FkZXIgZnJvbSAnc291cmNlcy9jb21wb25lbnRzL0xvYWRlcic7CitpbXBvcnQgeyBtaW5N YXhWYWxpZGF0b3IsIG51bWJlclZhbGlkYXRvciwgaW50ZWdlclZhbGlkYXRvciwgZW1wdHlWYWxp ZGF0b3IsIGNoZWNrVW5pcXVlQ29sIH0gZnJvbSAnLi4vdmFsaWRhdG9ycyc7CitpbXBvcnQgeyBN YXBwZWRGb3JtQ29udHJvbCB9IGZyb20gJy4vTWFwcGVkQ29udHJvbCc7CitpbXBvcnQgZ2V0dGV4 dCBmcm9tICdzb3VyY2VzL2dldHRleHQnOworaW1wb3J0IEJhc2VVSVNjaGVtYSBmcm9tICdzb3Vy Y2VzL1NjaGVtYVZpZXcvYmFzZV9zY2hlbWEudWknOworaW1wb3J0IEZvcm1WaWV3IGZyb20gJy4v Rm9ybVZpZXcnOworaW1wb3J0IHsgcGdBbGVydGlmeSB9IGZyb20gJy4uL2hlbHBlcnMvbGVnYWN5 Q29ubmVjdG9yJzsKK2ltcG9ydCB7IGV2YWxGdW5jIH0gZnJvbSAnc291cmNlcy91dGlscyc7Citp bXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnOworaW1wb3J0IEN1c3RvbVByb3BUeXBl cyBmcm9tICcuLi9jdXN0b21fcHJvcF90eXBlcyc7CitpbXBvcnQgeyBwYXJzZUFwaUVycm9yIH0g ZnJvbSAnLi4vYXBpX2luc3RhbmNlJzsKKworY29uc3QgdXNlRGlhbG9nU3R5bGVzID0gbWFrZVN0 eWxlcygodGhlbWUpPT4oeworICByb290OiB7CisgICAgZGlzcGxheTogJ2ZsZXgnLAorICAgIGZs ZXhEaXJlY3Rpb246ICdjb2x1bW4nLAorICAgIGhlaWdodDogJzEwMCUnLAorICB9LAorICBmb3Jt OiB7CisgICAgZmxleEdyb3c6IDEsCisgICAgcG9zaXRpb246ICdyZWxhdGl2ZScsCisgICAgbWlu SGVpZ2h0OiAwLAorICAgIGRpc3BsYXk6ICdmbGV4JywKKyAgICBmbGV4RGlyZWN0aW9uOiAnY29s dW1uJywKKyAgfSwKKyAgZm9vdGVyOiB7CisgICAgcGFkZGluZzogdGhlbWUuc3BhY2luZygxKSwK KyAgICBiYWNrZ3JvdW5kOiB0aGVtZS5vdGhlclZhcnMuaGVhZGVyQmcsCisgICAgZGlzcGxheTog J2ZsZXgnLAorICAgIHpJbmRleDogMTAxMCwKKyAgICAuLi50aGVtZS5taXhpbnMucGFuZWxCb3Jk ZXIudG9wLAorICB9LAorICBtYXBwZWRDb250cm9sOiB7CisgICAgcGFkZGluZ0JvdHRvbTogdGhl bWUuc3BhY2luZygxKSwKKyAgfSwKKyAgYnV0dG9uTWFyZ2luOiB7CisgICAgbWFyZ2luUmlnaHQ6 ICcwLjVyZW0nLAorICB9LAorfSkpOworCisvKiBDb21wYXJlIHRoZSBzZXNzRGF0YSB3aXRoIHNj aGVtYS5vcmlnRGF0YQorc2NoZW1hLm9yaWdEYXRhIGlzIHNldCB0byBpbmNvbWluZyBvciBkZWZh dWx0IGRhdGEKKyovCitmdW5jdGlvbiBnZXRDaGFuZ2VkRGF0YSh0b3BTY2hlbWEsIG1vZGUsIHNl c3NEYXRhLCBzdHJpbmdpZnk9ZmFsc2UpIHsKKyAgbGV0IGNoYW5nZWREYXRhID0ge307CisgIGxl dCBpc0VkaXQgPSBtb2RlID09PSAnZWRpdCc7CisKKyAgLyogVGhlIGNvbXBhcmF0b3IgYW5kIHNl dHRlciAqLworICBjb25zdCBhdHRyQ2hhbmdlZCA9IChjdXJyUGF0aCwgY2hhbmdlLCBmb3JjZT1m YWxzZSk9PnsKKyAgICBsZXQgb3JpZ1ZhbCA9IF8uZ2V0KHRvcFNjaGVtYS5vcmlnRGF0YSwgY3Vy clBhdGgpOworICAgIGxldCBzZXNzVmFsID0gXy5nZXQoc2Vzc0RhdGEsIGN1cnJQYXRoKTsKKyAg ICBsZXQgYXR0ckRlZmluZWQgPSAhXy5pc1VuZGVmaW5lZChvcmlnVmFsKSAmJiAhXy5pc1VuZGVm aW5lZChzZXNzVmFsKSAmJiAhXy5pc051bGwob3JpZ1ZhbCkgJiYgIV8uaXNOdWxsKHNlc3NWYWwp OworCisgICAgLyogSWYgdGhlIG9yaWcgdmFsdWUgd2FzIG51bGwgYW5kIG5ldyBvbmUgaXMgZW1w dHkgc3RyaW5nLCB0aGVuIGl0cyBhICJubyBjaGFuZ2UiICovCisgICAgLyogSWYgdGhlIG9yaWcg dmFsdWUgYW5kIG5ldyB2YWx1ZSBhcmUgb2YgZGlmZmVyZW50IGRhdGF0eXBlIGJ1dCBvZiBzYW1l IHZhbHVlKG51bWVyaWMpICJubyBjaGFuZ2UiICovCisgICAgaWYgKChfLmlzRXF1YWwob3JpZ1Zh bCwgc2Vzc1ZhbCkKKyAgICAgIHx8ICgob3JpZ1ZhbCA9PT0gbnVsbCB8fCBfLmlzVW5kZWZpbmVk KG9yaWdWYWwpKSAmJiBzZXNzVmFsID09PSAnJykKKyAgICAgIHx8IChhdHRyRGVmaW5lZCA/IF8u aXNFcXVhbChvcmlnVmFsLnRvU3RyaW5nKCksIHNlc3NWYWwudG9TdHJpbmcoKSkgOiBmYWxzZSkp CisgICAgICAgJiYgIWZvcmNlKSB7CisgICAgICByZXR1cm47CisgICAgfSBlbHNlIHsKKyAgICAg IGNoYW5nZSA9IGNoYW5nZSB8fCBfLmdldChzZXNzRGF0YSwgY3VyclBhdGgpOworICAgICAgXy5z ZXQoY2hhbmdlZERhdGEsIGN1cnJQYXRoLCBzdHJpbmdpZnkgPyBKU09OLnN0cmluZ2lmeShjaGFu Z2UpIDogY2hhbmdlKTsKKyAgICB9CisgIH07CisKKyAgLyogV2lsbCBiZSBjYWxsZWQgcmVjdXJz aXZlbHkgYXMgZGF0YSBjYW4gYmUgbmVzdGVkICovCisgIGNvbnN0IHBhcnNlQ2hhbmdlcyA9IChz Y2hlbWEsIGFjY2Vzc1BhdGgsIGNoYW5nZWREYXRhKT0+eworICAgIHNjaGVtYS5maWVsZHMuZm9y RWFjaCgoZmllbGQpPT57CisgICAgICBpZihmaWVsZC50eXBlID09PSAnbmVzdGVkLXRhYicpIHsK KyAgICAgICAgLyogaXRzIG5lc3RlZCAqLworICAgICAgICBwYXJzZUNoYW5nZXMoZmllbGQuc2No ZW1hLCBhY2Nlc3NQYXRoLCBjaGFuZ2VkRGF0YSk7CisgICAgICB9IGVsc2UgeworICAgICAgICBs ZXQgY3VyclBhdGggPSBhY2Nlc3NQYXRoLmNvbmNhdChmaWVsZC5pZCk7CisgICAgICAgIC8qIENo ZWNrIGZvciBjaGFuZ2VzIG9ubHkgaWYgaXRzIGluIGVkaXQgbW9kZSwgb3RoZXJ3aXNlIGV2ZXJ5 dGhpbmcgaXMgY2hhbmdlZCAqLworICAgICAgICBpZihpc0VkaXQgJiYgIV8uaXNFcXVhbChfLmdl dCh0b3BTY2hlbWEub3JpZ0RhdGEsIGN1cnJQYXRoKSwgXy5nZXQoc2Vzc0RhdGEsIGN1cnJQYXRo KSkpIHsKKyAgICAgICAgICBsZXQgY2hhbmdlID0gbnVsbDsKKyAgICAgICAgICBpZihmaWVsZC50 eXBlID09PSAnY29sbGVjdGlvbicpIHsKKyAgICAgICAgICAgIC8qIFVzZSBkaWZmQXJyYXkgcGFj a2FnZSB0byBnZXQgdGhlIGFycmF5IGRpZmYgYW5kIGV4dHJhY3QgdGhlIGluZm8KKyAgICAgICAg ICAgIGNpZCBpcyB1c2VkIHRvIGlkZW50aWZ5IHRoZSByb3dzIHVuaXF1ZWx5ICovCisgICAgICAg ICAgICBjb25zdCBjaGFuZ2VEaWZmID0gZGlmZkFycmF5KAorICAgICAgICAgICAgICBfLmdldCh0 b3BTY2hlbWEub3JpZ0RhdGEsIGN1cnJQYXRoKSwKKyAgICAgICAgICAgICAgXy5nZXQoc2Vzc0Rh dGEsIGN1cnJQYXRoKSwKKyAgICAgICAgICAgICAgJ2NpZCcKKyAgICAgICAgICAgICk7CisgICAg ICAgICAgICBjaGFuZ2UgPSB7fTsKKyAgICAgICAgICAgIGlmKGNoYW5nZURpZmYuYWRkZWQubGVu Z3RoID4gMCkgeworICAgICAgICAgICAgICBjaGFuZ2VbJ2FkZGVkJ10gPSBjbGVhbkNpZChjaGFu Z2VEaWZmLmFkZGVkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmKGNoYW5nZURpZmYu cmVtb3ZlZC5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICAgIGNoYW5nZVsnZGVsZXRlZCddID0g Y2xlYW5DaWQoY2hhbmdlRGlmZi5yZW1vdmVkLm1hcCgocm93KT0+eworICAgICAgICAgICAgICAg IC8qIERlbGV0ZWQgcmVjb3JkcyBzaG91bGQgYmUgb3JpZ2luYWwsIG5vdCB0aGUgY2hhbmdlZCAq LworICAgICAgICAgICAgICAgIHJldHVybiBfLmZpbmQoXy5nZXQodG9wU2NoZW1hLm9yaWdEYXRh LCBjdXJyUGF0aCksIFsnY2lkJywgcm93LmNpZF0pOworICAgICAgICAgICAgICB9KSk7CisgICAg ICAgICAgICB9CisgICAgICAgICAgICBpZihjaGFuZ2VEaWZmLnVwZGF0ZWQubGVuZ3RoID4gMCkg eworICAgICAgICAgICAgICBjaGFuZ2VbJ2NoYW5nZWQnXSA9IGNsZWFuQ2lkKGNoYW5nZURpZmYu dXBkYXRlZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZihPYmplY3Qua2V5cyhjaGFu Z2UpLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgICAgYXR0ckNoYW5nZWQoY3VyclBhdGgsIGNo YW5nZSwgdHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg ICAgIGF0dHJDaGFuZ2VkKGN1cnJQYXRoKTsKKyAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBp ZighaXNFZGl0KSB7CisgICAgICAgICAgaWYoZmllbGQudHlwZSA9PT0gJ2NvbGxlY3Rpb24nKSB7 CisgICAgICAgICAgICBsZXQgY2hhbmdlID0gY2xlYW5DaWQoXy5nZXQoc2Vzc0RhdGEsIGN1cnJQ YXRoKSk7CisgICAgICAgICAgICBhdHRyQ2hhbmdlZChjdXJyUGF0aCwgY2hhbmdlKTsKKyAgICAg ICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXR0ckNoYW5nZWQoY3VyclBhdGgpOworICAgICAg ICAgIH0KKyAgICAgICAgfQorICAgICAgfQorICAgIH0pOworICB9OworCisgIHBhcnNlQ2hhbmdl cyh0b3BTY2hlbWEsIFtdLCBjaGFuZ2VkRGF0YSk7CisgIHJldHVybiBjaGFuZ2VkRGF0YTsKK30K KworZnVuY3Rpb24gdmFsaWRhdGVTY2hlbWEoc2NoZW1hLCBzZXNzRGF0YSwgc2V0RXJyb3IpIHsK KyAgc2Vzc0RhdGEgPSBzZXNzRGF0YSB8fCB7fTsKKyAgZm9yKGxldCBmaWVsZCBvZiBzY2hlbWEu ZmllbGRzKSB7CisgICAgLyogU2tpcCBpZCB2YWxpZGF0aW9uICovCisgICAgaWYoc2NoZW1hLmlk QXR0cmlidXRlID09IGZpZWxkLmlkKSB7CisgICAgICBjb250aW51ZTsKKyAgICB9CisgICAgLyog SWYgdGhlIGZpZWxkIGlzIGhhcyBuZXN0ZWQgc2NoZW1hIHRoZW4gdmFsaWRhdGUgdGhlIHNjaGVt YSAqLworICAgIGlmKGZpZWxkLnNjaGVtYSAmJiAoZmllbGQuc2NoZW1hIGluc3RhbmNlb2YgQmFz ZVVJU2NoZW1hKSkgeworICAgICAgLyogQSBjb2xsZWN0aW9uIGlzIGFuIGFycmF5ICovCisgICAg ICBpZihmaWVsZC50eXBlID09PSAnY29sbGVjdGlvbicpIHsKKyAgICAgICAgbGV0IHJvd3MgPSBz ZXNzRGF0YVtmaWVsZC5pZF0gfHwgW107CisKKyAgICAgICAgLyogVmFsaWRhdGUgZHVwbGljYXRl IHJvd3MgKi8KKyAgICAgICAgbGV0IGR1cEluZCA9IGNoZWNrVW5pcXVlQ29sKHJvd3MsIGZpZWxk LnVuaXF1ZUNvbCk7CisgICAgICAgIGlmKGR1cEluZCA+IDApIHsKKyAgICAgICAgICBsZXQgdW5p cXVlQ29sTmFtZXMgPSBfLmZpbHRlcihmaWVsZC5zY2hlbWEuZmllbGRzLCAodWYpPT5maWVsZC51 bmlxdWVDb2wuaW5kZXhPZih1Zi5pZCkgPiAtMSkKKyAgICAgICAgICAgIC5tYXAoKHVmKT0+dWYu bGFiZWwpLmpvaW4oJywgJyk7CisgICAgICAgICAgc2V0RXJyb3IoZmllbGQudW5pcXVlQ29sWzBd LCBnZXR0ZXh0KCclcyBpbiAlcyBtdXN0IGJlIHVuaXF1ZS4nLCB1bmlxdWVDb2xOYW1lcywgZmll bGQubGFiZWwpKTsKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAv KiBMb29wIHRocm91Z2ggZGF0YSAqLworICAgICAgICBmb3IoY29uc3Qgcm93IG9mIHJvd3MpIHsK KyAgICAgICAgICBpZih2YWxpZGF0ZVNjaGVtYShmaWVsZC5zY2hlbWEsIHJvdywgc2V0RXJyb3Ip KSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyAg ICAgIH0gZWxzZSB7CisgICAgICAgIC8qIEEgbmVzdGVkIHNjaGVtYSA/IFJlY3Vyc2UgKi8KKyAg ICAgICAgaWYodmFsaWRhdGVTY2hlbWEoZmllbGQuc2NoZW1hLCBzZXNzRGF0YSwgc2V0RXJyb3Ip KSB7CisgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9IGVs c2UgeworICAgICAgLyogTm9ybWFsIGZpZWxkLCBkZWZhdWx0IHZhbGlkYXRpb25zICovCisgICAg ICBsZXQgdmFsdWUgPSBzZXNzRGF0YVtmaWVsZC5pZF07CisgICAgICBsZXQgbWVzc2FnZSA9IG51 bGw7CisgICAgICBpZihmaWVsZC5ub0VtcHR5KSB7CisgICAgICAgIG1lc3NhZ2UgPSBlbXB0eVZh bGlkYXRvcihmaWVsZC5sYWJlbCwgdmFsdWUpOworICAgICAgfQorICAgICAgaWYoIW1lc3NhZ2Ug JiYgKGZpZWxkLnR5cGUgPT0gJ2ludCcgfHwgZmllbGQudHlwZSA9PSAnbnVtZXJpYycpKSB7Cisg ICAgICAgIG1lc3NhZ2UgPSBtaW5NYXhWYWxpZGF0b3IoZmllbGQubGFiZWwsIHZhbHVlLCBmaWVs ZC5taW4sIGZpZWxkLm1heCk7CisgICAgICB9CisgICAgICBpZighbWVzc2FnZSAmJiBmaWVsZC50 eXBlID09ICdpbnQnKSB7CisgICAgICAgIG1lc3NhZ2UgPSBpbnRlZ2VyVmFsaWRhdG9yKGZpZWxk LmxhYmVsLCB2YWx1ZSk7CisgICAgICB9IGVsc2UgaWYoIW1lc3NhZ2UgJiYgZmllbGQudHlwZSA9 PSAnbnVtZXJpYycpIHsKKyAgICAgICAgbWVzc2FnZSA9IG51bWJlclZhbGlkYXRvcihmaWVsZC5s YWJlbCwgdmFsdWUpOworICAgICAgfQorICAgICAgaWYobWVzc2FnZSkgeworICAgICAgICBzZXRF cnJvcihmaWVsZC5pZCwgbWVzc2FnZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgfQor ICAgIH0KKyAgfQorICByZXR1cm4gc2NoZW1hLnZhbGlkYXRlKHNlc3NEYXRhLCBzZXRFcnJvcik7 Cit9CisKK2V4cG9ydCBjb25zdCBTQ0hFTUFfU1RBVEVfQUNUSU9OUyA9IHsKKyAgSU5JVDogJ2lu aXQnLAorICBTRVRfVkFMVUU6ICdzZXRfdmFsdWUnLAorICBBRERfUk9XOiAnYWRkX3JvdycsCisg IERFTEVURV9ST1c6ICdkZWxldGVfcm93JywKKyAgUkVSRU5ERVI6ICdyZXJlbmRlcicsCit9Owor CisvKiBUaGUgbWFpbiBmdW5jdGlvbiB3aGljaCBtYW5pcHVsYXRlcyB0aGUgc2Vzc2lvbiBzdGF0 ZSBiYXNlZCBvbiBhY3Rpb25zICovCisvKgorVGhlIHN0YXRlIGlzIG1hbmFnZWQgYmFzZWQgb24g cGF0aCBhcnJheSBvZiBhIHBhcnRpY3VsYXIga2V5CitGb3IgRWcuIGlmIHRoZSBzdGF0ZSBpcwor eworICBrZXkxOiB7CisgICAgY2tleTE6IFsKKyAgICAgIHthOiAwLCBiOiAwfSwKKyAgICAgIHth OiAxLCBiOiAxfQorICAgIF0KKyAgfQorfQorVGhlIHBhdGggZm9yIGIgaW4gZmlyc3Qgcm93IHdp bGwgYmUgW2tleTEsIGNrZXkxLCAwLCBiXQorVGhlIHBhdGggZm9yIHNlY29uZCByb3cgb2YgY2tl eTEgd2lsbCBiZSBba2V5MSwgY2tleTEsIDFdCitUaGUgcGF0aCBmb3Iga2V5MSBpcyBba2V5MV0K K1RoZSBzdGF0ZSBzdGFydHMgd2l0aCBwYXRoIFtdCisqLworY29uc3Qgc2Vzc0RhdGFSZWR1Y2Vy ID0gKHN0YXRlLCBhY3Rpb24pPT57CisgIGxldCBkYXRhID0gXy5jbG9uZURlZXAoc3RhdGUpOwor ICBsZXQgcm93cywgY2lkOworICBzd2l0Y2goYWN0aW9uLnR5cGUpIHsKKyAgY2FzZSBTQ0hFTUFf U1RBVEVfQUNUSU9OUy5JTklUOgorICAgIGRhdGEgPSBhY3Rpb24ucGF5bG9hZDsKKyAgICBicmVh azsKKyAgY2FzZSBTQ0hFTUFfU1RBVEVfQUNUSU9OUy5TRVRfVkFMVUU6CisgICAgXy5zZXQoZGF0 YSwgYWN0aW9uLnBhdGgsIGFjdGlvbi52YWx1ZSk7CisgICAgLyogSWYgdGhlcmUgaXMgYW55IGRl cCBsaXN0ZW5lcnMgZ2V0IHRoZSBjaGFuZ2VzICovCisgICAgaWYoYWN0aW9uLmRlcENoYW5nZSkg eworICAgICAgXy5zZXQoZGF0YSwgYWN0aW9uLmRlcENoYW5nZShkYXRhKSk7CisgICAgfQorICAg IGJyZWFrOworICBjYXNlIFNDSEVNQV9TVEFURV9BQ1RJT05TLkFERF9ST1c6CisgICAgLyogQ3Jl YXRlIGlkIHRvIGlkZW50aWZ5IGEgcm93IHVuaXF1ZWx5LCB1c2VmdWxsIHdoZW4gZ2V0dGluZyBk aWZmICovCisgICAgY2lkID0gXy51bmlxdWVJZCgnYycpOworICAgIGFjdGlvbi52YWx1ZVsnY2lk J10gPSBjaWQ7CisgICAgcm93cyA9IChfLmdldChkYXRhLCBhY3Rpb24ucGF0aCl8fFtdKS5jb25j YXQoYWN0aW9uLnZhbHVlKTsKKyAgICBfLnNldChkYXRhLCBhY3Rpb24ucGF0aCwgcm93cyk7Cisg ICAgYnJlYWs7CisgIGNhc2UgU0NIRU1BX1NUQVRFX0FDVElPTlMuREVMRVRFX1JPVzoKKyAgICBy b3dzID0gXy5nZXQoZGF0YSwgYWN0aW9uLnBhdGgpfHxbXTsKKyAgICByb3dzLnNwbGljZShhY3Rp b24udmFsdWUsIDEpOworICAgIF8uc2V0KGRhdGEsIGFjdGlvbi5wYXRoLCByb3dzKTsKKyAgICBi cmVhazsKKyAgfQorICByZXR1cm4gZGF0YTsKK307CisKKy8qIFJlbW92ZSBjaWQga2V5IGFkZGVk IGJ5IHByZXBhcmVEYXRhICovCitmdW5jdGlvbiBjbGVhbkNpZChjb2xsKSB7CisgIGlmKCFjb2xs KSB7CisgICAgcmV0dXJuIGNvbGw7CisgIH0KKyAgcmV0dXJuIGNvbGwubWFwKChvKT0+Xy5waWNr QnkobywgKHYsIGspPT5rIT0nY2lkJykpOworfQorCitmdW5jdGlvbiBwcmVwYXJlRGF0YShvcmln RGF0YSkgeworICBfLmZvckluKG9yaWdEYXRhLCBmdW5jdGlvbiAodmFsKSB7CisgICAgaWYgKF8u aXNBcnJheSh2YWwpKSB7CisgICAgICB2YWwuZm9yRWFjaChmdW5jdGlvbihlbCkgeworICAgICAg ICBpZiAoXy5pc09iamVjdChlbCkpIHsKKyAgICAgICAgICAvKiBUaGUgZWFjaCByb3cgaW4gY29s bGVjdGlvbiBuZWVkIHRvIGhhdmUgYW4gaWQgdG8gaWRlbnRpZnkgdGhlbSB1bmlxdWVseQorICAg ICAgICAgIFRoaXMgaGVscHMgaW4gZWFzaWx5IGdldHRpbmcgd2hhdCBoYXMgY2hhbmdlZCAqLwor ICAgICAgICAgIC8qIE5lc3RlZCBjb2xsZWN0aW9uIHJvd3MgbWF5IG9yIG1heSBub3QgaGF2ZSBp ZEF0dHJpYnV0ZS4KKyAgICAgICAgICBTbyB0byBkZWNpZGUgd2hldGhlciByb3cgaXMgbmV3IG9y IG5vdCBzZXQsIHRoZSBjaWQgc3RhcnRzIHdpdGgKKyAgICAgICAgICBubiAobm90IG5ldykgZm9y IGV4aXN0aW5nIHJvd3MuIE5ld2x5IGFkZGVkIHdpbGwgc3RhcnQgd2l0aCAnYycgKGNyZWF0ZWQp CisgICAgICAgICAgKi8KKyAgICAgICAgICBlbFsnY2lkJ10gPSBfLnVuaXF1ZUlkKCdubicpOwor ICAgICAgICAgIHByZXBhcmVEYXRhKGVsKTsKKyAgICAgICAgfQorICAgICAgfSk7CisgICAgfQor ICAgIGlmIChfLmlzT2JqZWN0KHZhbCkpIHsKKyAgICAgIHByZXBhcmVEYXRhKHZhbCk7CisgICAg fQorICB9KTsKKyAgcmV0dXJuIG9yaWdEYXRhOworfQorCisvKiBJZiBpdHMgdGhlIGRpYWxvZyAq LworZnVuY3Rpb24gU2NoZW1hRGlhbG9nVmlldyh7CisgIGdldEluaXREYXRhLCB2aWV3SGVscGVy UHJvcHMsIHNjaGVtYT17fSwgLi4ucHJvcHN9KSB7CisgIGNvbnN0IGNsYXNzZXMgPSB1c2VEaWFs b2dTdHlsZXMoKTsKKyAgLyogU29tZSB1c2VmdWwgc3RhdGVzICovCisgIGNvbnN0IFtkaXJ0eSwg c2V0RGlydHldID0gdXNlU3RhdGUoZmFsc2UpOworICAvKiBmb3JtRXJyIGhhcyAyIGtleXMgLSBu YW1lIGFuZCBtZXNzYWdlLgorICBGb290ZXIgbWVzc2FnZSB3aWxsIGJlIGRpc3BsYXllZCBpZiBt ZXNzYWdlIGlzIHNldC4KKyAgKi8KKyAgY29uc3QgW2Zvcm1FcnIsIHNldEZvcm1FcnJdID0gdXNl U3RhdGUoe30pOworICBjb25zdCBbbG9hZGVyVGV4dCwgc2V0TG9hZGVyVGV4dF0gPSB1c2VTdGF0 ZSgnJyk7CisgIGNvbnN0IFtzYXZpbmcsIHNldFNhdmluZ10gPSB1c2VTdGF0ZShmYWxzZSk7Cisg IGNvbnN0IFtzcWxUYWJBY3RpdmUsIHNldFNxbFRhYkFjdGl2ZV0gPSB1c2VTdGF0ZShmYWxzZSk7 CisgIGNvbnN0IFtmb3JtUmVhZHksIHNldEZvcm1SZWFkeV0gPSB1c2VTdGF0ZShmYWxzZSk7Cisg IGNvbnN0IGZpcnN0RWxlUmVmID0gdXNlUmVmKCk7CisgIGNvbnN0IGlzTmV3ID0gc2NoZW1hLmlz TmV3KHNjaGVtYS5vcmlnRGF0YSk7CisgIC8qIFRoZSBzZXNzaW9uIGRhdGEgKi8KKyAgY29uc3Qg W3Nlc3NEYXRhLCBzZXNzRGlzcGF0Y2hdID0gdXNlUmVkdWNlcihzZXNzRGF0YVJlZHVjZXIsIHt9 KTsKKworICB1c2VFZmZlY3QoKCk9PnsKKyAgICAvKiBpZiBzZXNzRGF0YSBjaGFuZ2VzLCB2YWxp ZGF0ZSB0aGUgc2NoZW1hICovCisgICAgaWYoIWZvcm1SZWFkeSkgcmV0dXJuOworICAgIGxldCBp c05vdFZhbGlkID0gdmFsaWRhdGVTY2hlbWEoc2NoZW1hLCBzZXNzRGF0YSwgKG5hbWUsIG1lc3Nh Z2UpPT57CisgICAgICBpZihtZXNzYWdlKSB7CisgICAgICAgIHNldEZvcm1FcnIoeworICAgICAg ICAgIG5hbWU6IG5hbWUsCisgICAgICAgICAgbWVzc2FnZTogbWVzc2FnZSwKKyAgICAgICAgfSk7 CisgICAgICB9CisgICAgfSk7CisgICAgaWYoIWlzTm90VmFsaWQpIHNldEZvcm1FcnIoe30pOwor CisgICAgLyogY2hlY2sgaWYgYW55dGhpbmcgY2hhbmdlZCAqLworICAgIGxldCBkYXRhQ2hhbmdl ZCA9IE9iamVjdC5rZXlzKGdldENoYW5nZWREYXRhKHNjaGVtYSwgdmlld0hlbHBlclByb3BzLm1v ZGUsIHNlc3NEYXRhKSkubGVuZ3RoID4gMDsKKyAgICBzZXREaXJ0eShkYXRhQ2hhbmdlZCk7CisK KyAgICAvKiB0ZWxsIHRoZSBjYWxsYmFja3MgdGhlIGRhdGEgaGFzIGNoYW5nZWQgKi8KKyAgICBw cm9wcy5vbkRhdGFDaGFuZ2UgJiYgcHJvcHMub25EYXRhQ2hhbmdlKGRhdGFDaGFuZ2VkKTsKKyAg fSwgW3Nlc3NEYXRhXSk7CisKKyAgdXNlRWZmZWN0KCgpPT57CisgICAgLyogRG9ja2VyIG9uIGxv YWQgZm9jdXNzZXMgaXRzZWxmLCBzbyBvdXIgZm9jdXMgc2hvdWxkIGV4ZWN1dGUgbGF0ZXIgKi8K KyAgICBsZXQgZm9jdXNUaW1lb3V0ID0gc2V0VGltZW91dCgoKT0+eworICAgICAgZmlyc3RFbGVS ZWYuY3VycmVudCAmJiBmaXJzdEVsZVJlZi5jdXJyZW50LmZvY3VzKCk7CisgICAgfSwgMjUwKTsK KworICAgIC8qIFJlLXRyaWdnZXJpbmcgZm9jdXMgb24gYWxyZWFkeSBmb2N1c3NlZCBsb3NlcyB0 aGUgZm9jdXMgKi8KKyAgICBpZih2aWV3SGVscGVyUHJvcHMubW9kZSA9PT0gJ2VkaXQnKSB7Cisg ICAgICBzZXRMb2FkZXJUZXh0KCdMb2FkaW5nLi4uJyk7CisgICAgICAvKiBJZiBpdHMgYW4gZWRp dCBtb2RlLCBnZXQgdGhlIGluaXRpYWwgZGF0YSB1c2luZyBnZXRJbml0RGF0YQorICAgICAgZ2V0 SW5pdERhdGEgc2hvdWxkIGJlIGEgcHJvbWlzZSAqLworICAgICAgaWYoIWdldEluaXREYXRhKSB7 CisgICAgICAgIHRocm93IG5ldyBFcnJvcignZ2V0SW5pdERhdGEgbXVzdCBiZSBwYXNzZWQgZm9y IGVkaXQnKTsKKyAgICAgIH0KKyAgICAgIGdldEluaXREYXRhICYmIGdldEluaXREYXRhKCkudGhl bigoZGF0YSk9PntmaXJzdEVsZVJlZi5jdXJyZW50OworICAgICAgICBkYXRhID0gZGF0YSB8fCB7 fTsKKyAgICAgICAgLyogU2V0IHRoZSBvcmlnRGF0YSB0byBpbmNvbWluZyBkYXRhLCB1c2VmdWwg Zm9yIGNvbXBhcmluZyBhbmQgcmVzZXQgKi8KKyAgICAgICAgc2NoZW1hLm9yaWdEYXRhID0gcHJl cGFyZURhdGEoZGF0YSB8fCB7fSk7CisgICAgICAgIHNlc3NEaXNwYXRjaCh7CisgICAgICAgICAg dHlwZTogU0NIRU1BX1NUQVRFX0FDVElPTlMuSU5JVCwKKyAgICAgICAgICBwYXlsb2FkOiBzY2hl bWEub3JpZ0RhdGEsCisgICAgICAgIH0pOworICAgICAgICBzZXRGb3JtUmVhZHkodHJ1ZSk7Cisg ICAgICAgIHNldExvYWRlclRleHQoJycpOworCisgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAg ICAgLyogVXNlIHRoZSBkZWZhdWx0cyBhcyB0aGUgaW5pdGl0YWwgZGF0YSAqLworICAgICAgc2No ZW1hLm9yaWdEYXRhID0gcHJlcGFyZURhdGEoc2NoZW1hLmRlZmF1bHRzKTsKKyAgICAgIHNlc3NE aXNwYXRjaCh7CisgICAgICAgIHR5cGU6IFNDSEVNQV9TVEFURV9BQ1RJT05TLklOSVQsCisgICAg ICAgIHBheWxvYWQ6IHNjaGVtYS5vcmlnRGF0YSwKKyAgICAgIH0pOworICAgICAgc2V0Rm9ybVJl YWR5KHRydWUpOworICAgICAgc2V0TG9hZGVyVGV4dCgnJyk7CisgICAgfQorCisgICAgLyogQ2xl YXIgdGhlIGZvY3VzIHRpbWVvdXQgaXQgdW5tb3VudGVkICovCisgICAgcmV0dXJuICgpPT5jbGVh clRpbWVvdXQoZm9jdXNUaW1lb3V0KTsKKyAgfSwgW10pOworCisgIGNvbnN0IG9uUmVzZXRDbGlj ayA9ICgpPT57CisgICAgY29uc3QgcmVzZXRJdCA9ICgpPT57CisgICAgICBzZXNzRGlzcGF0Y2go eworICAgICAgICB0eXBlOiBTQ0hFTUFfU1RBVEVfQUNUSU9OUy5JTklULAorICAgICAgICBwYXls b2FkOiBzY2hlbWEub3JpZ0RhdGEsCisgICAgICB9KTsKKyAgICAgIHJldHVybiB0cnVlOworICAg IH07CisgICAgLyogQ29uZmlybSBiZWZvcmUgcmVzZXQgKi8KKyAgICBpZihwcm9wcy5jb25maXJt T25DbG9zZVJlc2V0KSB7CisgICAgICBwZ0FsZXJ0aWZ5KCkuY29uZmlybSgKKyAgICAgICAgZ2V0 dGV4dCgnV2FybmluZycpLAorICAgICAgICBnZXR0ZXh0KCdDaGFuZ2VzIHdpbGwgYmUgbG9zdC4g QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlc2V0PycpLAorICAgICAgICByZXNldEl0LAorICAg ICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAg ICAgKS5zZXQoJ2xhYmVscycsIHsKKyAgICAgICAgb2s6IGdldHRleHQoJ1llcycpLAorICAgICAg ICBjYW5jZWw6IGdldHRleHQoJ05vJyksCisgICAgICB9KS5zaG93KCk7CisgICAgfSBlbHNlIHsK KyAgICAgIHJlc2V0SXQoKTsKKyAgICB9CisgIH07CisKKyAgY29uc3Qgb25TYXZlQ2xpY2sgPSAo KT0+eworICAgIHNldFNhdmluZyh0cnVlKTsKKyAgICBzZXRMb2FkZXJUZXh0KCdTYXZpbmcuLi4n KTsKKyAgICAvKiBHZXQgdGhlIGNoYW5nZWQgZGF0YSAqLworICAgIGxldCBkYXRhID0gZ2V0Q2hh bmdlZERhdGEoc2NoZW1hLCB2aWV3SGVscGVyUHJvcHMubW9kZSwgc2Vzc0RhdGEpOworCisgICAg LyogQWRkIHRoZSBpZCB3aGVuIGluIGVkaXQgbW9kZSAqLworICAgIGlmKHZpZXdIZWxwZXJQcm9w cy5tb2RlID09PSAnZWRpdCcpIHsKKyAgICAgIGRhdGFbc2NoZW1hLmlkQXR0cmlidXRlXSA9IHNj aGVtYS5vcmlnRGF0YVtzY2hlbWEuaWRBdHRyaWJ1dGVdOworICAgIH0gZWxzZSB7CisgICAgICAv KiBJZiBuZXcgdGhlbiBtZXJnZSB0aGUgY2hhbmdlZCBkYXRhIHdpdGggb3JpZ0RhdGEgKi8KKyAg ICAgIGRhdGEgPSBfLm1lcmdlKHNjaGVtYS5vcmlnRGF0YSwgZGF0YSk7CisgICAgfQorICAgIHBy b3BzLm9uU2F2ZShpc05ldywgZGF0YSkKKyAgICAgIC50aGVuKCgpPT57CisgICAgICAgIGlmKHNj aGVtYS5pbmZvcm1UZXh0KSB7CisgICAgICAgICAgcGdBbGVydGlmeSgpLmFsZXJ0KAorICAgICAg ICAgICAgZ2V0dGV4dCgnV2FybmluZycpLAorICAgICAgICAgICAgc2NoZW1hLmluZm9ybVRleHQs CisgICAgICAgICAgKTsKKyAgICAgICAgfQorICAgICAgfSkuY2F0Y2goKGVycik9PnsKKyAgICAg ICAgc2V0Rm9ybUVycih7CisgICAgICAgICAgbmFtZTogJ2FwaWVycm9yJywKKyAgICAgICAgICBt ZXNzYWdlOiBwYXJzZUFwaUVycm9yKGVyciksCisgICAgICAgIH0pOworICAgICAgfSkuZmluYWxs eSgoKT0+eworICAgICAgICBzZXRTYXZpbmcoZmFsc2UpOworICAgICAgICBzZXRMb2FkZXJUZXh0 KCcnKTsKKyAgICAgIH0pOworICB9OworCisgIGNvbnN0IG9uRXJyQ2xvc2UgPSB1c2VDYWxsYmFj aygoKT0+eworICAgIC8qIFVuc2V0IHRoZSBlcnJvciBtZXNzYWdlLCBidXQgbm90IHRoZSBuYW1l ICovCisgICAgc2V0Rm9ybUVycigocHJldik9Pih7CisgICAgICAuLi5wcmV2LAorICAgICAgbWVz c2FnZTogJycsCisgICAgfSkpOworICB9KTsKKworICBjb25zdCBnZXRTUUxWYWx1ZSA9ICgpPT57 CisgICAgLyogQ2FsbGVkIHdoZW4gU1FMIHRhYiBpcyBhY3RpdmUgKi8KKyAgICBpZihkaXJ0eSkg eworICAgICAgaWYoIWZvcm1FcnIubmFtZSkgeworICAgICAgICBsZXQgY2hhbmdlRGF0YSA9IGdl dENoYW5nZWREYXRhKHNjaGVtYSwgdmlld0hlbHBlclByb3BzLm1vZGUsIHNlc3NEYXRhLCB0cnVl KTsKKyAgICAgICAgLyogQ2FsbCB0aGUgcGFzc2VkIGluY29taW5nIGdldFNRTFZhbHVlIGZ1bmMg dG8gZ2V0IHRoZSBTUUwKKyAgICAgICAgcmV0dXJuIG9mIGdldFNRTFZhbHVlIHNob3VsZCBiZSBh IHByb21pc2UuCisgICAgICAgICovCisgICAgICAgIHJldHVybiBwcm9wcy5nZXRTUUxWYWx1ZShp c05ldywgY2hhbmdlRGF0YSk7CisgICAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gUHJvbWlz ZS5yZXNvbHZlKCctLSAnICsgZ2V0dGV4dCgnRGVmaW5pdGlvbiBpbmNvbXBsZXRlLicpKTsKKyAg ICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgnLS0gJyAr IGdldHRleHQoJ05vIHVwZGF0ZXMuJykpOworICAgIH0KKyAgfTsKKworICAvKiBJIGFtIEdyb290 ICovCisgIHJldHVybiAoCisgICAgPEJveCBjbGFzc05hbWU9e2NsYXNzZXMucm9vdH0+CisgICAg ICA8Qm94IGNsYXNzTmFtZT17Y2xhc3Nlcy5mb3JtfT4KKyAgICAgICAgPExvYWRlciBtZXNzYWdl PXtsb2FkZXJUZXh0fS8+CisgICAgICAgIDxGb3JtVmlldyB2YWx1ZT17c2Vzc0RhdGF9IHZpZXdI ZWxwZXJQcm9wcz17dmlld0hlbHBlclByb3BzfSBmb3JtRXJyPXtmb3JtRXJyfQorICAgICAgICAg IHNjaGVtYT17c2NoZW1hfSBhY2Nlc3NQYXRoPXtbXX0gZGF0YURpc3BhdGNoPXtzZXNzRGlzcGF0 Y2h9CisgICAgICAgICAgaGFzU1FMVGFiPXtwcm9wcy5oYXNTUUx9IGdldFNRTFZhbHVlPXtnZXRT UUxWYWx1ZX0gb25UYWJDaGFuZ2U9eyhpLCB0YWJOYW1lLCBzcWxBY3RpdmUpPT5zZXRTcWxUYWJB Y3RpdmUoc3FsQWN0aXZlKX0KKyAgICAgICAgICBmaXJzdEVsZVJlZj17Zmlyc3RFbGVSZWZ9IC8+ CisgICAgICAgIDxGb3JtRm9vdGVyTWVzc2FnZSB0eXBlPXtNRVNTQUdFX1RZUEUuRVJST1J9IG1l c3NhZ2U9e3NxbFRhYkFjdGl2ZSA/ICcnIDogZm9ybUVyci5tZXNzYWdlfQorICAgICAgICAgIG9u Q2xvc2U9e29uRXJyQ2xvc2V9IC8+CisgICAgICA8L0JveD4KKyAgICAgIDxCb3ggY2xhc3NOYW1l PXtjbGFzc2VzLmZvb3Rlcn0+CisgICAgICAgIHt1c2VNZW1vKCgpPT48Qm94PgorICAgICAgICAg IDxQZ0ljb25CdXR0b24gZGF0YS10ZXN0PSJzcWwtaGVscCIgb25DbGljaz17KCk9PnByb3BzLm9u SGVscCh0cnVlLCBpc05ldyl9IGljb249ezxJbmZvSWNvbiAvPn0KKyAgICAgICAgICAgIGRpc2Fi bGVkPXtwcm9wcy5kaXNhYmxlU3FsSGVscH0gY2xhc3NOYW1lPXtjbGFzc2VzLmJ1dHRvbk1hcmdp bn0gdGl0bGU9IlNRTCBoZWxwIGZvciB0aGlzIG9iamVjdCB0eXBlLiIvPgorICAgICAgICAgIDxQ Z0ljb25CdXR0b24gZGF0YS10ZXN0PSJkaWFsb2ctaGVscCIgb25DbGljaz17KCk9PnByb3BzLm9u SGVscChmYWxzZSwgaXNOZXcpfSBpY29uPXs8SGVscEljb24gLz59IHRpdGxlPSJIZWxwIGZvciB0 aGlzIGRpYWxvZy4iLz4KKyAgICAgICAgPC9Cb3g+LCBbXSl9CisgICAgICAgIDxCb3ggbWFyZ2lu TGVmdD0iYXV0byI+CisgICAgICAgICAgPERlZmF1bHRCdXR0b24gZGF0YS10ZXN0PSJDbG9zZSIg b25DbGljaz17cHJvcHMub25DbG9zZX0gc3RhcnRJY29uPXs8Q2xvc2VJY29uIC8+fSBjbGFzc05h bWU9e2NsYXNzZXMuYnV0dG9uTWFyZ2lufT4KKyAgICAgICAgICAgIHtnZXR0ZXh0KCdDbG9zZScp fQorICAgICAgICAgIDwvRGVmYXVsdEJ1dHRvbj4KKyAgICAgICAgICA8RGVmYXVsdEJ1dHRvbiBk YXRhLXRlc3Q9IlJlc2V0IiBvbkNsaWNrPXtvblJlc2V0Q2xpY2t9IHN0YXJ0SWNvbj17PFNldHRp bmdzQmFja3VwUmVzdG9yZUljb24gLz59IGRpc2FibGVkPXshZGlydHkgfHwgc2F2aW5nfSBjbGFz c05hbWU9e2NsYXNzZXMuYnV0dG9uTWFyZ2lufT4KKyAgICAgICAgICAgIHtnZXR0ZXh0KCdSZXNl dCcpfQorICAgICAgICAgIDwvRGVmYXVsdEJ1dHRvbj4KKyAgICAgICAgICA8UHJpbWFyeUJ1dHRv biBkYXRhLXRlc3Q9IlNhdmUiIG9uQ2xpY2s9e29uU2F2ZUNsaWNrfSBzdGFydEljb249ezxTYXZl SWNvbiAvPn0gZGlzYWJsZWQ9eyFkaXJ0eSB8fCBzYXZpbmcgfHwgQm9vbGVhbihmb3JtRXJyLm5h bWUpIHx8ICFmb3JtUmVhZHl9PgorICAgICAgICAgICAge2dldHRleHQoJ1NhdmUnKX0KKyAgICAg ICAgICA8L1ByaW1hcnlCdXR0b24+CisgICAgICAgIDwvQm94PgorICAgICAgPC9Cb3g+CisgICAg PC9Cb3g+CisgICk7Cit9CisKK1NjaGVtYURpYWxvZ1ZpZXcucHJvcFR5cGVzID0geworICBnZXRJ bml0RGF0YTogUHJvcFR5cGVzLmZ1bmMsCisgIHZpZXdIZWxwZXJQcm9wczogUHJvcFR5cGVzLnNo YXBlKHsKKyAgICBtb2RlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsCisgICAgc2VydmVy SW5mbzogUHJvcFR5cGVzLnNoYXBlKHsKKyAgICAgIHR5cGU6IFByb3BUeXBlcy5zdHJpbmcsCisg ICAgICB2ZXJzaW9uOiBQcm9wVHlwZXMubnVtYmVyLAorICAgIH0pLAorICAgIGluQ2F0YWxvZzog UHJvcFR5cGVzLmJvb2wsCisgIH0pLmlzUmVxdWlyZWQsCisgIHNjaGVtYTogQ3VzdG9tUHJvcFR5 cGVzLnNjaGVtYVVJLAorICBvblNhdmU6IFByb3BUeXBlcy5mdW5jLAorICBvbkNsb3NlOiBQcm9w VHlwZXMuZnVuYywKKyAgb25IZWxwOiBQcm9wVHlwZXMuZnVuYywKKyAgb25EYXRhQ2hhbmdlOiBQ cm9wVHlwZXMuZnVuYywKKyAgY29uZmlybU9uQ2xvc2VSZXNldDogUHJvcFR5cGVzLmJvb2wsCisg IGhhc1NRTDogUHJvcFR5cGVzLmJvb2wsCisgIGdldFNRTFZhbHVlOiBQcm9wVHlwZXMuZnVuYywK KyAgZGlzYWJsZVNxbEhlbHA6IFByb3BUeXBlcy5ib29sLAorfTsKKworY29uc3QgdXNlUHJvcHNT dHlsZXMgPSBtYWtlU3R5bGVzKCh0aGVtZSk9Pih7CisgIHJvb3Q6IHsKKyAgICBoZWlnaHQ6ICcx MDAlJywKKyAgICBtaW5IZWlnaHQ6IDAsCisgICAgZGlzcGxheTogJ2ZsZXgnLAorICAgIGZsZXhE aXJlY3Rpb246ICdjb2x1bW4nCisgIH0sCisgIGNvbnRyb2xSb3c6IHsKKyAgICBwYWRkaW5nQm90 dG9tOiB0aGVtZS5zcGFjaW5nKDEpLAorICB9LAorICBmb3JtOiB7CisgICAgcGFkZGluZzogdGhl bWUuc3BhY2luZygxKSwKKyAgICBvdmVyZmxvdzogJ2F1dG8nLAorICAgIGZsZXhHcm93OiAxLAor ICB9LAorICB0b29sYmFyOiB7CisgICAgcGFkZGluZzogdGhlbWUuc3BhY2luZygwLjUpLAorICAg IGJhY2tncm91bmQ6IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5kZWZhdWx0LAorICAgIC4uLnRo ZW1lLm1peGlucy5wYW5lbEJvcmRlci5ib3R0b20sCisgIH0sCisgIGJ1dHRvbk1hcmdpbjogewor ICAgIG1hcmdpblJpZ2h0OiAnMC41cmVtJywKKyAgfSwKK30pKTsKKworLyogSWYgaXRzIHRoZSBw cm9wZXJ0aWVzIHRhYiAqLworZnVuY3Rpb24gU2NoZW1hUHJvcGVydGllc1ZpZXcoeworICBnZXRJ bml0RGF0YSwgdmlld0hlbHBlclByb3BzLCBzY2hlbWE9e30sIC4uLnByb3BzfSkgeworICBjb25z dCBjbGFzc2VzID0gdXNlUHJvcHNTdHlsZXMoKTsKKyAgbGV0IGRlZmF1bHRUYWIgPSAnR2VuZXJh bCc7CisgIGxldCB0YWJzID0ge307CisgIGNvbnN0IFtvcmlnRGF0YSwgc2V0T3JpZ0RhdGFdID0g dXNlU3RhdGUoe30pOworICBjb25zdCBbbG9hZGVyVGV4dCwgc2V0TG9hZGVyVGV4dF0gPSB1c2VT dGF0ZSgnJyk7CisKKyAgdXNlRWZmZWN0KCgpPT57CisgICAgc2V0TG9hZGVyVGV4dCgnTG9hZGlu Zy4uLicpOworICAgIGdldEluaXREYXRhKCkudGhlbigoZGF0YSk9PnsKKyAgICAgIGRhdGEgPSBk YXRhIHx8IHt9OworICAgICAgc2V0T3JpZ0RhdGEoZGF0YSB8fCB7fSk7CisgICAgICBzZXRMb2Fk ZXJUZXh0KCcnKTsKKyAgICB9KTsKKyAgfSwgW2dldEluaXREYXRhXSk7CisKKyAgLyogQSBzaW1w bGUgbG9vcCB0byBnZXQgYWxsIHRoZSBjb250cm9scyBmb3IgdGhlIGZpZWxkcyAqLworICBzY2hl bWEuZmllbGRzLmZvckVhY2goKGYpPT57CisgICAgbGV0IHt2aXNpYmxlLCBkaXNhYmxlZCwgZ3Jv dXAsIHJlYWRvbmx5LCAuLi5maWVsZH0gPSBmOworICAgIGdyb3VwID0gZ3JvdXAgfHwgZGVmYXVs dFRhYjsKKworICAgIGxldCB2ZXJJbkxpbWl0ID0gKF8uaXNVbmRlZmluZWQodmlld0hlbHBlclBy b3BzLnNlcnZlckluZm8pID8gdHJ1ZSA6CisgICAgICAoKF8uaXNVbmRlZmluZWQoZmllbGQuc2Vy dmVyX3R5cGUpID8gdHJ1ZSA6CisgICAgICAgICh2aWV3SGVscGVyUHJvcHMuc2VydmVySW5mby50 eXBlIGluIGZpZWxkLnNlcnZlcl90eXBlKSkgJiYKKyAgICAgICAgKF8uaXNVbmRlZmluZWQoZmll bGQubWluX3ZlcnNpb24pID8gdHJ1ZSA6CisgICAgICAgICAgKHZpZXdIZWxwZXJQcm9wcy5zZXJ2 ZXJJbmZvLnZlcnNpb24gPj0gZmllbGQubWluX3ZlcnNpb24pKSAmJgorICAgICAgICAoXy5pc1Vu ZGVmaW5lZChmaWVsZC5tYXhfdmVyc2lvbikgPyB0cnVlIDoKKyAgICAgICAgICAodmlld0hlbHBl clByb3BzLnNlcnZlckluZm8udmVyc2lvbiA8PSBmaWVsZC5tYXhfdmVyc2lvbikpKSk7CisKKyAg ICBsZXQgX3Zpc2libGUgPSB0cnVlOworICAgIGlmKGZpZWxkLm1vZGUpIHsKKyAgICAgIF92aXNp YmxlID0gKGZpZWxkLm1vZGUuaW5kZXhPZih2aWV3SGVscGVyUHJvcHMubW9kZSkgPiAtMSk7Cisg ICAgfQorICAgIGlmKF92aXNpYmxlICYmIHZpc2libGUpIHsKKyAgICAgIF92aXNpYmxlID0gZXZh bEZ1bmModmlzaWJsZSwgb3JpZ0RhdGEpOworICAgIH0KKworICAgIGRpc2FibGVkID0gZXZhbEZ1 bmMoZGlzYWJsZWQsIG9yaWdEYXRhKTsKKyAgICByZWFkb25seSA9IHRydWU7CisgICAgaWYoX3Zp c2libGUgJiYgdmVySW5MaW1pdCkgeworICAgICAgaWYoIXRhYnNbZ3JvdXBdKSB0YWJzW2dyb3Vw XSA9IFtdOworICAgICAgdGFic1tncm91cF0ucHVzaCgKKyAgICAgICAgPE1hcHBlZEZvcm1Db250 cm9sCisgICAgICAgICAga2V5PXtmaWVsZC5pZH0KKyAgICAgICAgICB2aWV3SGVscGVyUHJvcHM9 e3ZpZXdIZWxwZXJQcm9wc30KKyAgICAgICAgICBuYW1lPXtmaWVsZC5pZH0KKyAgICAgICAgICB2 YWx1ZT17b3JpZ0RhdGFbZmllbGQuaWRdfQorICAgICAgICAgIHJlYWRvbmx5PXtyZWFkb25seX0K KyAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9CisgICAgICAgICAgdmlzaWJsZT17X3Zpc2li bGV9CisgICAgICAgICAgey4uLmZpZWxkfQorICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5j b250cm9sUm93fQorICAgICAgICAvPgorICAgICAgKTsKKyAgICB9CisgIH0pOworCisgIHJldHVy biAoCisgICAgPEJveCBjbGFzc05hbWU9e2NsYXNzZXMucm9vdH0+CisgICAgICA8TG9hZGVyIG1l c3NhZ2U9e2xvYWRlclRleHR9Lz4KKyAgICAgIDxCb3ggY2xhc3NOYW1lPXtjbGFzc2VzLnRvb2xi YXJ9PgorICAgICAgICA8UGdJY29uQnV0dG9uCisgICAgICAgICAgZGF0YS10ZXN0PSJoZWxwIiBv bkNsaWNrPXsoKT0+cHJvcHMub25IZWxwKHRydWUsIGZhbHNlKX0gaWNvbj17PEluZm9JY29uIC8+ fSBkaXNhYmxlZD17cHJvcHMuZGlzYWJsZVNxbEhlbHB9CisgICAgICAgICAgdGl0bGU9IlNRTCBo ZWxwIGZvciB0aGlzIG9iamVjdCB0eXBlLiIgY2xhc3NOYW1lPXtjbGFzc2VzLmJ1dHRvbk1hcmdp bn0gLz4KKyAgICAgICAgPFBnSWNvbkJ1dHRvbiBkYXRhLXRlc3Q9ImVkaXQiCisgICAgICAgICAg b25DbGljaz17cHJvcHMub25FZGl0fSBpY29uPXs8RWRpdEljb24gLz59IHRpdGxlPSJFZGl0IHRo ZSBvYmplY3QiIC8+CisgICAgICA8L0JveD4KKyAgICAgIDxCb3ggY2xhc3NOYW1lPXtjbGFzc2Vz LmZvcm19PgorICAgICAgICA8Qm94PgorICAgICAgICAgIHtPYmplY3Qua2V5cyh0YWJzKS5tYXAo KHRhYk5hbWUpPT57CisgICAgICAgICAgICBsZXQgaWQgPSB0YWJOYW1lLnJlcGxhY2UoJyAnLCAn Jyk7CisgICAgICAgICAgICByZXR1cm4gKAorICAgICAgICAgICAgICA8QWNjb3JkaW9uIGtleT17 aWR9PgorICAgICAgICAgICAgICAgIDxBY2NvcmRpb25TdW1tYXJ5CisgICAgICAgICAgICAgICAg ICBleHBhbmRJY29uPXs8RXhwYW5kTW9yZUljb24gLz59CisgICAgICAgICAgICAgICAgICBhcmlh LWNvbnRyb2xzPXtgJHtpZH0tY29udGVudGB9CisgICAgICAgICAgICAgICAgICBpZD17YCR7aWR9 LWhlYWRlcmB9CisgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAge3RhYk5hbWV9 CisgICAgICAgICAgICAgICAgPC9BY2NvcmRpb25TdW1tYXJ5PgorICAgICAgICAgICAgICAgIDxB Y2NvcmRpb25EZXRhaWxzPgorICAgICAgICAgICAgICAgICAgPEJveCBzdHlsZT17e3dpZHRoOiAn MTAwJSd9fT4KKyAgICAgICAgICAgICAgICAgICAge3RhYnNbdGFiTmFtZV19CisgICAgICAgICAg ICAgICAgICA8L0JveD4KKyAgICAgICAgICAgICAgICA8L0FjY29yZGlvbkRldGFpbHM+CisgICAg ICAgICAgICAgIDwvQWNjb3JkaW9uPgorICAgICAgICAgICAgKTsKKyAgICAgICAgICB9KX0KKyAg ICAgICAgPC9Cb3g+CisgICAgICA8L0JveD4KKyAgICA8L0JveD4KKyAgKTsKK30KKworU2NoZW1h UHJvcGVydGllc1ZpZXcucHJvcFR5cGVzID0geworICBnZXRJbml0RGF0YTogUHJvcFR5cGVzLmZ1 bmMuaXNSZXF1aXJlZCwKKyAgdmlld0hlbHBlclByb3BzOiBQcm9wVHlwZXMuc2hhcGUoeworICAg IG1vZGU6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCwKKyAgICBzZXJ2ZXJJbmZvOiBQcm9w VHlwZXMuc2hhcGUoeworICAgICAgdHlwZTogUHJvcFR5cGVzLnN0cmluZywKKyAgICAgIHZlcnNp b246IFByb3BUeXBlcy5udW1iZXIsCisgICAgfSksCisgICAgaW5DYXRhbG9nOiBQcm9wVHlwZXMu Ym9vbCwKKyAgfSkuaXNSZXF1aXJlZCwKKyAgc2NoZW1hOiBDdXN0b21Qcm9wVHlwZXMuc2NoZW1h VUksCisgIG9uSGVscDogUHJvcFR5cGVzLmZ1bmMsCisgIGRpc2FibGVTcWxIZWxwOiBQcm9wVHlw ZXMuYm9vbCwKKyAgb25FZGl0OiBQcm9wVHlwZXMuZnVuYywKK307CisKK2V4cG9ydCBkZWZhdWx0 IGZ1bmN0aW9uIFNjaGVtYVZpZXcoe2Zvcm1UeXBlLCAuLi5wcm9wc30pIHsKKyAgLyogU3dpdGNo IHRoZSB2aWV3IGJhc2VkIG9uIGZvcm1UeXBlICovCisgIGlmKGZvcm1UeXBlID09PSAndGFiJykg eworICAgIHJldHVybiAoCisgICAgICA8VGhlbWU+CisgICAgICAgIDxTY2hlbWFQcm9wZXJ0aWVz VmlldyB7Li4ucHJvcHN9Lz4KKyAgICAgIDwvVGhlbWU+CisgICAgKTsKKyAgfQorICByZXR1cm4g KAorICAgIDxUaGVtZT4KKyAgICAgIDxTY2hlbWFEaWFsb2dWaWV3IHsuLi5wcm9wc30vPgorICAg IDwvVGhlbWU+CisgICk7Cit9CisKK1NjaGVtYVZpZXcucHJvcFR5cGVzID0geworICBmb3JtVHlw ZTogUHJvcFR5cGVzLm9uZU9mKFsndGFiJywgJ2RpYWxvZyddKSwKK307CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9zdGF0aWMvanMvVGhlbWUvZGFyay5qcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9UaGVtZS9kYXJrLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYWI4 NDE0NjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL1RoZW1lL2Rh cmsuanMKQEAgLTAsMCArMSw4OSBAQAorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8vIHBnQWRtaW4gNCAtIFBvc3RncmVT UUwgVG9vbHMKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIxLCBUaGUgcGdBZG1pbiBE ZXZlbG9wbWVudCBUZWFtCisvLyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQ b3N0Z3JlU1FMIExpY2VuY2UKKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvKiBUaGUgZGFyayB0aGVtZSAqLworaW1w b3J0IHsgY3JlYXRlTXVpVGhlbWUgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnOwor aW1wb3J0IHsgZGFya2VuIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzL2NvbG9yTWFu aXB1bGF0b3InOworCitleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihiYXNpY1NldHRpbmdzKSB7Cisg IHJldHVybiBjcmVhdGVNdWlUaGVtZShiYXNpY1NldHRpbmdzLCB7CisgICAgcGFsZXR0ZTogewor ICAgICAgZGVmYXVsdDogeworICAgICAgICBtYWluOiAnIzZiNmI2YicsCisgICAgICAgIGNvbnRy YXN0VGV4dDogJyNmZmYnLAorICAgICAgICBib3JkZXJDb2xvcjogJyMyZTJlMmUnLAorICAgICAg ICBkaXNhYmxlZEJvcmRlckNvbG9yOiAnIzJlMmUyZScsCisgICAgICAgIGRpc2FibGVkQ29udHJh c3RUZXh0OiAnI2ZmZicsCisgICAgICAgIGhvdmVyTWFpbjogJyMzMDMwMzAnLAorICAgICAgICBo b3ZlckNvbnRyYXN0VGV4dDogJyNmZmYnLAorICAgICAgICBob3ZlckJvcmRlckNvbG9yOiAnIzJl MmUyZScsCisgICAgICB9LAorICAgICAgcHJpbWFyeTogeworICAgICAgICBtYWluOiAnIzIzNGQ2 ZScsCisgICAgICAgIGxpZ2h0OiAnI2Q2ZWZmYycsCisgICAgICAgIGNvbnRyYXN0VGV4dDogJyNm ZmYnLAorICAgICAgICBob3Zlck1haW46IGRhcmtlbignIzIzNGQ2ZScsIDAuMjUpLAorICAgICAg ICBob3ZlckJvcmRlckNvbG9yOiBkYXJrZW4oJyMyMzRkNmUnLCAwLjI1KSwKKyAgICAgICAgZGlz YWJsZWRNYWluOiAnIzIzNGQ2ZScsCisgICAgICB9LAorICAgICAgc3VjY2VzczogIHsKKyAgICAg ICAgbWFpbjogJyMyNjg1MkInLAorICAgICAgICBsaWdodDogJyMyQjQ3MkMnLAorICAgICAgICBj b250cmFzdFRleHQ6ICcjMDAwJywKKyAgICAgIH0sCisgICAgICBlcnJvcjogeworICAgICAgICBt YWluOiAnI2RhNjc1OCcsCisgICAgICAgIGxpZ2h0OiAnIzIxMjEyMScsCisgICAgICAgIGNvbnRy YXN0VGV4dDogJyNmZmYnLAorICAgICAgICBsaWdodGVyOiAnIzIxMjEyMScsCisgICAgICB9LAor ICAgICAgd2FybmluZzogeworICAgICAgICBtYWluOiAnI2VlYTIzNicsCisgICAgICAgIGxpZ2h0 OiAnI2IxOGQ1YScsCisgICAgICAgIGNvbnRyYXN0VGV4dDogJyNmZmYnLAorICAgICAgfSwKKyAg ICAgIGluZm86IHsKKyAgICAgICAgbWFpbjogJyNmZGU3NGMnLAorICAgICAgfSwKKyAgICAgIGdy ZXk6IHsKKyAgICAgICAgJzIwMCc6ICcjNDI0MjQyJywKKyAgICAgICAgJzQwMCc6ICcjMzAzMDMw JywKKyAgICAgICAgJzYwMCc6ICcjMmUyZTJlJywKKyAgICAgICAgJzgwMCc6ICcjMjEyMTIxJywK KyAgICAgIH0sCisgICAgICB0ZXh0OiB7CisgICAgICAgIHByaW1hcnk6ICcjZDRkNGQ0JywKKyAg ICAgIH0sCisgICAgICBiYWNrZ3JvdW5kOiB7CisgICAgICAgIHBhcGVyOiAnIzIxMjEyMScsCisg ICAgICAgIGRlZmF1bHQ6ICcjMjEyMTIxJywKKyAgICAgIH0KKyAgICB9LAorICAgIGN1c3RvbTog eworICAgICAgaWNvbjogeworICAgICAgICBtYWluOiAnIzZiNmI2YicsCisgICAgICAgIGNvbnRy YXN0VGV4dDogJyNmZmYnLAorICAgICAgICBib3JkZXJDb2xvcjogJyMyZTJlMmUnLAorICAgICAg ICBkaXNhYmxlZE1haW46ICcjNmI2YjZiJywKKyAgICAgICAgZGlzYWJsZWRDb250cmFzdFRleHQ6 ICcjZmZmJywKKyAgICAgICAgZGlzYWJsZWRCb3JkZXJDb2xvcjogJyMyZTJlMmUnLAorICAgICAg ICBob3Zlck1haW46ICcjMzAzMDMwJywKKyAgICAgICAgaG92ZXJDb250cmFzdFRleHQ6ICcjZmZm JywKKyAgICAgIH0KKyAgICB9LAorICAgIG90aGVyVmFyczogeworICAgICAgYm9yZGVyQ29sb3I6 ICcjNGE0YTRhJywKKyAgICAgIGlucHV0Qm9yZGVyQ29sb3I6ICcjNmI2YjZiJywKKyAgICAgIGlu cHV0RGlzYWJsZWRCZzogJ2luaGVyaXQnLAorICAgICAgaGVhZGVyQmc6ICcjNDI0MjQyJywKKyAg ICAgIGFjdGl2ZUNvbG9yOiAnI2Q0ZDRkNCcsCisgICAgICB0YWJsZUJnOiAnIzQyNDI0MicsCisg ICAgfQorICB9KTsKK30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9UaGVtZS9o aWdoX2NvbnRyYXN0LmpzIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL1RoZW1lL2hpZ2hfY29udHJh c3QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi44OTg1ODlkNWIKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvVGhlbWUvaGlnaF9jb250cmFz dC5qcwpAQCAtMCwwICsxLDg3IEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNR TCBUb29scworLy8KKy8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjEsIFRoZSBwZ0FkbWluIERl dmVsb3BtZW50IFRlYW0KKy8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBv c3RncmVTUUwgTGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8qIFRoZSBkYXJrIHRoZW1lICovCitpbXBv cnQgeyBjcmVhdGVNdWlUaGVtZSB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcyc7CisK K2V4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGJhc2ljU2V0dGluZ3MpIHsKKyAgcmV0dXJuIGNyZWF0 ZU11aVRoZW1lKGJhc2ljU2V0dGluZ3MsIHsKKyAgICBwYWxldHRlOiB7CisgICAgICBkZWZhdWx0 OiB7CisgICAgICAgIG1haW46ICd0cmFuc3BhcmVudCcsCisgICAgICAgIGNvbnRyYXN0VGV4dDog JyM4NGQ2ZmYnLAorICAgICAgICBib3JkZXJDb2xvcjogJyM4NGQ2ZmYnLAorICAgICAgICBkaXNh YmxlZEJvcmRlckNvbG9yOiAnIzhCOUNBRCcsCisgICAgICAgIGRpc2FibGVkQ29udHJhc3RUZXh0 OiAnIzhCOUNBRCcsCisgICAgICAgIGhvdmVyTWFpbjogJ3RyYW5zcGFyZW50JywKKyAgICAgICAg aG92ZXJDb250cmFzdFRleHQ6ICcjZmZmJywKKyAgICAgICAgaG92ZXJCb3JkZXJDb2xvcjogJyNm ZmYnLAorICAgICAgfSwKKyAgICAgIHByaW1hcnk6IHsKKyAgICAgICAgbWFpbjogJyM4NEQ2RkYn LAorICAgICAgICBsaWdodDogJyM4NEQ2RkYnLAorICAgICAgICBjb250cmFzdFRleHQ6ICcjMDEw QjE1JywKKyAgICAgICAgaG92ZXJNYWluOiAnI2ZmZicsCisgICAgICAgIGhvdmVyQm9yZGVyQ29s b3I6ICcjZmZmJywKKyAgICAgICAgZGlzYWJsZWRNYWluOiAnIzhCOUNBRCcsCisgICAgICB9LAor ICAgICAgc3VjY2VzczogIHsKKyAgICAgICAgbWFpbjogJyM0NUQ0OEEnLAorICAgICAgICBsaWdo dDogJyMwMTBCMTUnLAorICAgICAgICBjb250cmFzdFRleHQ6ICcjMDAwJywKKyAgICAgIH0sCisg ICAgICBlcnJvcjogeworICAgICAgICBtYWluOiAnI0VFN0E1NScsCisgICAgICAgIGxpZ2h0OiAn I0VFN0E1NScsCisgICAgICAgIGNvbnRyYXN0VGV4dDogJyMwMTBCMTUnLAorICAgICAgfSwKKyAg ICAgIHdhcm5pbmc6IHsKKyAgICAgICAgbWFpbjogJyNGNEQzNUUnLAorICAgICAgICBsaWdodDog JyNGNEQzNUUnLAorICAgICAgICBjb250cmFzdFRleHQ6ICcjMDEwQjE1JywKKyAgICAgIH0sCisg ICAgICBpbmZvOiB7CisgICAgICAgIG1haW46ICcjZmRlNzRjJywKKyAgICAgIH0sCisgICAgICBn cmV5OiB7CisgICAgICAgICcyMDAnOiAnIzhCOUNBRCcsCisgICAgICAgICc0MDAnOiAnIzJEM0E0 OCcsCisgICAgICAgICc2MDAnOiAnIzFGMjkzMicsCisgICAgICAgICc4MDAnOiAnIzAxMEIxNScs CisgICAgICB9LAorICAgICAgdGV4dDogeworICAgICAgICBwcmltYXJ5OiAnI2ZmZicsCisgICAg ICB9LAorICAgICAgYmFja2dyb3VuZDogeworICAgICAgICBwYXBlcjogJyMwMTBCMTUnLAorICAg ICAgICBkZWZhdWx0OiAnIzAxMEIxNScsCisgICAgICB9LAorICAgIH0sCisgICAgY3VzdG9tOiB7 CisgICAgICBpY29uOiB7CisgICAgICAgIG1haW46ICcjMDEwQjE1JywKKyAgICAgICAgY29udHJh c3RUZXh0OiAnI2ZmZicsCisgICAgICAgIGJvcmRlckNvbG9yOiAnI2ZmZicsCisgICAgICAgIGRp c2FibGVkTWFpbjogJyMxRjI5MzInLAorICAgICAgICBkaXNhYmxlZENvbnRyYXN0VGV4dDogJyM4 QjlDQUQnLAorICAgICAgICBkaXNhYmxlZEJvcmRlckNvbG9yOiAnIzhCOUNBRCcsCisgICAgICAg IGhvdmVyTWFpbjogJyNmZmYnLAorICAgICAgICBob3ZlckNvbnRyYXN0VGV4dDogJyMwMTBCMTUn LAorICAgICAgfQorICAgIH0sCisgICAgb3RoZXJWYXJzOiB7CisgICAgICBib3JkZXJDb2xvcjog JyM0YTRhNGEnLAorICAgICAgaW5wdXRCb3JkZXJDb2xvcjogJyM2YjZiNmInLAorICAgICAgaW5w dXREaXNhYmxlZEJnOiAnIzFGMjkzMicsCisgICAgICBoZWFkZXJCZzogJyMwMTBCMTUnLAorICAg ICAgYWN0aXZlQ29sb3I6ICcjZDRkNGQ0JywKKyAgICAgIHRhYmxlQmc6ICcjMDEwQjE1JywKKyAg ICB9CisgIH0pOworfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL1RoZW1lL2lu ZGV4LmpzeCBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9UaGVtZS9pbmRleC5qc3gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi41N2JmNzI5NjQKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvVGhlbWUvaW5kZXguanN4CkBAIC0wLDAgKzEsMzUzIEBA CisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHly aWdodCAoQykgMjAxMyAtIDIwMjEsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKy8vIFRo aXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorLy8K Ky8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vCisKKy8qIFRoZSBjb21wbGV0ZSBzdHlsaW5nIGZpbGUgZm9yIE1hdGVyaWFsLVVJIGNv bXBvbmVudHMgdXNlZAorICogVGhpcyB3aWxsIGJlY29tZSB0aGUgbWFpbiB0aGVtZSBmaWxlIGZv ciBwZ0FkbWluLiBBbGwgdGhlCisgKiBjdXN0b20gdGhlbWVzIGluZm8gd2lsbCBjb21lIGhlcmUu CisgKi8KKworaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7CitpbXBvcnQg eyBjcmVhdGVNdWlUaGVtZSwgVGhlbWVQcm92aWRlciB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3Jl L3N0eWxlcyc7CitpbXBvcnQgQ3VzdG9tUHJvcFR5cGVzIGZyb20gJy4uL2N1c3RvbV9wcm9wX3R5 cGVzJzsKKworaW1wb3J0IGdldFN0YW5kYXJkVGhlbWUgZnJvbSAnLi9zdGFuZGFyZCc7CitpbXBv cnQgZ2V0RGFya1RoZW1lIGZyb20gJy4vZGFyayc7CitpbXBvcnQgZ2V0SGlnaHRDb250cmFzdFRo ZW1lIGZyb20gJy4vaGlnaF9jb250cmFzdCc7CisKKy8qIENvbW1vbiBzZXR0aW5ncyBhY3Jvc3Mg YWxsIHRoZW1lcyAqLworbGV0IGJhc2ljU2V0dGluZ3MgPSBjcmVhdGVNdWlUaGVtZSgpOworYmFz aWNTZXR0aW5ncyA9IGNyZWF0ZU11aVRoZW1lKGJhc2ljU2V0dGluZ3MsIHsKKyAgdHlwb2dyYXBo eTogeworICAgIGZvbnRTaXplOiAxNCwKKyAgICBodG1sRm9udFNpemU6IDE0LAorICB9LAorICBz aGFwZTogeworICAgIGJvcmRlclJhZGl1czogNCwKKyAgfSwKKyAgb3ZlcnJpZGVzOiB7CisgICAg TXVpVGFiczogeworICAgICAgcm9vdDogeworICAgICAgICBtaW5IZWlnaHQ6IDAsCisgICAgICB9 CisgICAgfSwKKyAgICBQcml2YXRlVGFiSW5kaWNhdG9yOiB7CisgICAgICByb290OiB7CisgICAg ICAgIGhlaWdodDogJzNweCcsCisgICAgICAgIHRyYW5zaXRpb246IGJhc2ljU2V0dGluZ3MudHJh bnNpdGlvbnMuY3JlYXRlKFsnYWxsJ10sIHtkdXJhdGlvbjogJzE1MG1zJ30pLAorICAgICAgfQor ICAgIH0sCisgICAgTXVpVGFiOiB7CisgICAgICByb290OiB7CisgICAgICAgIHRleHRUcmFuc2Zv cm06ICdub25lJywKKyAgICAgICAgbWluSGVpZ2h0OiAwLAorICAgICAgICBwYWRkaW5nOiAnNXB4 IDEwcHgnLAorICAgICAgICBbYmFzaWNTZXR0aW5ncy5icmVha3BvaW50cy51cCgneHMnKV06IHsK KyAgICAgICAgICBtaW5XaWR0aDogMCwKKyAgICAgICAgfSwKKyAgICAgICAgW2Jhc2ljU2V0dGlu Z3MuYnJlYWtwb2ludHMudXAoJ3NtJyldOiB7CisgICAgICAgICAgbWluV2lkdGg6IDAsCisgICAg ICAgIH0sCisgICAgICAgIFtiYXNpY1NldHRpbmdzLmJyZWFrcG9pbnRzLnVwKCdtZCcpXTogewor ICAgICAgICAgIG1pbldpZHRoOiAwLAorICAgICAgICB9LAorICAgICAgICBbYmFzaWNTZXR0aW5n cy5icmVha3BvaW50cy51cCgnbGcnKV06IHsKKyAgICAgICAgICBtaW5XaWR0aDogMCwKKyAgICAg ICAgfSwKKyAgICAgIH0sCisgICAgICB0ZXh0Q29sb3JJbmhlcml0OiB7CisgICAgICAgIHRleHRU cmFuc2Zvcm06ICdub25lJywKKyAgICAgICAgb3BhY2l0eTogMSwKKyAgICAgIH0KKyAgICB9LAor ICAgIE11aUJ1dHRvbjogeworICAgICAgcm9vdDogeworICAgICAgICB0ZXh0VHJhbnNmb3JtOiAn bm9uZSwnLAorICAgICAgICBwYWRkaW5nOiBiYXNpY1NldHRpbmdzLnNwYWNpbmcoMC41LCAxLjUp LAorICAgICAgICAnJi5NdWktZGlzYWJsZWQnOiB7CisgICAgICAgICAgb3BhY2l0eTogMC42NSwK KyAgICAgICAgfQorICAgICAgfSwKKyAgICAgIGNvbnRhaW5lZDogeworICAgICAgICBib3hTaGFk b3c6ICdub25lJywKKyAgICAgICAgJyY6aG92ZXInOiB7CisgICAgICAgICAgYm94U2hhZG93OiAn bm9uZScsCisgICAgICAgIH0KKyAgICAgIH0sCisgICAgICBvdXRsaW5lZDogeworICAgICAgICBw YWRkaW5nOiBiYXNpY1NldHRpbmdzLnNwYWNpbmcoMC4zNzUsIDEpLAorICAgICAgfSwKKyAgICAg IHN0YXJ0SWNvbjogeworICAgICAgICBtYXJnaW5SaWdodDogYmFzaWNTZXR0aW5ncy5zcGFjaW5n KDAuNSksCisgICAgICB9CisgICAgfSwKKyAgICBNdWlPdXRsaW5lZElucHV0OiB7CisgICAgICBt dWx0aWxpbmU6IHsKKyAgICAgICAgcGFkZGluZzogJzBweCcsCisgICAgICB9LAorICAgICAgaW5w dXQ6IHsKKyAgICAgICAgcGFkZGluZzogYmFzaWNTZXR0aW5ncy5zcGFjaW5nKDAuNzUsIDEuNSks CisgICAgICAgIGJvcmRlclJhZGl1czogJ2luaGVyaXQnLAorICAgICAgfSwKKyAgICAgIGlucHV0 TXVsdGlsaW5lOiB7CisgICAgICAgIHBhZGRpbmc6IGJhc2ljU2V0dGluZ3Muc3BhY2luZygwLjc1 LCAxLjUpLAorICAgICAgfSwKKyAgICAgIGFkb3JuZWRFbmQ6IHsKKyAgICAgICAgcGFkZGluZ1Jp Z2h0OiBiYXNpY1NldHRpbmdzLnNwYWNpbmcoMS41KSwKKyAgICAgIH0KKyAgICB9LAorICAgIE11 aVRvZ2dsZUJ1dHRvbjogeworICAgICAgcm9vdDogeworICAgICAgICB0ZXh0VHJhbnNmb3JtOiAn bm9uZSwnLAorICAgICAgICBwYWRkaW5nOiBiYXNpY1NldHRpbmdzLnNwYWNpbmcoMC41LCAyLjUs IDAuNSwgMC41KSwKKyAgICAgICAgY29sb3I6ICdhYmMnLAorICAgICAgICAnJjpob3Zlcic6ewor ICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ2FiYycsCisgICAgICAgIH0sCisgICAgICAgICcm JHNlbGVjdGVkJzogeworICAgICAgICAgIGNvbG9yOiAnYWJjJywKKyAgICAgICAgICBiYWNrZ3Jv dW5kQ29sb3I6ICdhYmMnLAorICAgICAgICAgICcmOmhvdmVyJzp7CisgICAgICAgICAgICBiYWNr Z3JvdW5kQ29sb3I6ICdhYmMnLAorICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfQorICAg IH0sCisgICAgTXVpQWNjb3JkaW9uOiB7CisgICAgICByb290OiB7CisgICAgICAgIGJveFNoYWRv dzogJ25vbmUnLAorICAgICAgfQorICAgIH0sCisgICAgTXVpQWNjb3JkaW9uU3VtbWFyeTogewor ICAgICAgcm9vdDogeworICAgICAgICBtaW5IZWlnaHQ6IDAsCisgICAgICAgICcmLk11aS1leHBh bmRlZCc6IHsKKyAgICAgICAgICBtaW5IZWlnaHQ6IDAsCisgICAgICAgIH0sCisgICAgICAgIHBh ZGRpbmc6IGJhc2ljU2V0dGluZ3Muc3BhY2luZygwLCAxKSwKKyAgICAgICAgZm9udFdlaWdodDog YmFzaWNTZXR0aW5ncy50eXBvZ3JhcGh5LmZvbnRXZWlnaHRCb2xkLAorICAgICAgfSwKKyAgICAg IGNvbnRlbnQ6IHsKKyAgICAgICAgbWFyZ2luOiBiYXNpY1NldHRpbmdzLnNwYWNpbmcoMSksCisg ICAgICAgICcmLk11aS1leHBhbmRlZCc6IHsKKyAgICAgICAgICBtYXJnaW46IGJhc2ljU2V0dGlu Z3Muc3BhY2luZygxKSwKKyAgICAgICAgfQorICAgICAgfSwKKyAgICAgIGV4cGFuZEljb246IHsK KyAgICAgICAgb3JkZXI6IC0xLAorICAgICAgfQorICAgIH0sCisgICAgTXVpQWNjb3JkaW9uRGV0 YWlsczogeworICAgICAgcm9vdDogeworICAgICAgICBwYWRkaW5nOiBiYXNpY1NldHRpbmdzLnNw YWNpbmcoMSksCisgICAgICB9CisgICAgfSwKKyAgICBNdWlGb3JtQ29udHJvbExhYmVsOiB7Cisg ICAgICByb290OiB7CisgICAgICAgIG1hcmdpbkJvdHRvbTogMCwKKyAgICAgICAgbWFyZ2luTGVm dDogMCwKKyAgICAgICAgbWFyZ2luUmlnaHQ6IDAsCisgICAgICB9CisgICAgfSwKKyAgICBNdWlG b3JtSGVscGVyVGV4dDogeworICAgICAgcm9vdDogeworICAgICAgICBmb250U2l6ZTogJzFlbScs CisgICAgICB9CisgICAgfSwKKyAgICBNdWlUeXBvZ3JhcGh5OiB7CisgICAgICBib2R5MTogewor ICAgICAgICBmb250U2l6ZTogJzFlbScsCisgICAgICB9CisgICAgfQorICB9LAorICB0cmFuc2l0 aW9uczogeworICAgIGR1cmF0aW9uOiB7CisgICAgICBzaG9ydGVzdDogNTAsCisgICAgICBzaG9y dGVyOiAxMDAsCisgICAgICBzaG9ydDogMTUwLAorICAgICAgc3RhbmRhcmQ6IDIwMCwKKyAgICAg IGNvbXBsZXg6IDE3NSwKKyAgICAgIGVudGVyaW5nU2NyZWVuOiAxMjUsCisgICAgICBsZWF2aW5n U2NyZWVuOiA5NSwKKyAgICB9CisgIH0sCisgIHByb3BzOiB7CisgICAgTXVpVGV4dEZpZWxkOiB7 CisgICAgICB2YXJpYW50OiAnb3V0bGluZWQnLAorICAgIH0sCisgICAgTXVpQnV0dG9uOiB7Cisg ICAgICBkaXNhYmxlVG91Y2hSaXBwbGU6IHRydWUsCisgICAgfSwKKyAgICBNdWlJY29uQnV0dG9u OiB7CisgICAgICBzaXplOiAnc21hbGwnLAorICAgICAgZGlzYWJsZVRvdWNoUmlwcGxlOiB0cnVl LAorICAgIH0sCisgICAgTXVpQWNjb3JkaW9uOiB7CisgICAgICBkZWZhdWx0RXhwYW5kZWQ6IHRy dWUsCisgICAgfSwKKyAgICBNdWlUYWI6IHsKKyAgICAgIHRleHRDb2xvcjogJ2luaGVyaXQnLAor ICAgIH0KKyAgfSwKK30pOworCisvKiBHZXQgdGhlIGZpbmFsIHRoZW1lIGFmdGVyIG1lcmdpbmcg YmFzZSB0aGVtZSB3aXRoIHNlbGVjdGVkIHRoZW1lICovCitmdW5jdGlvbiBnZXRGaW5hbFRoZW1l KGJhc2VUaGVtZSkgeworICBsZXQgbWl4aW5zID0geworICAgIHBhbmVsQm9yZGVyOiB7CisgICAg ICBib3JkZXI6ICcxcHggc29saWQgJytiYXNlVGhlbWUub3RoZXJWYXJzLmJvcmRlckNvbG9yLAor ICAgICAgdG9wOiB7CisgICAgICAgIGJvcmRlclRvcDogJzFweCBzb2xpZCAnK2Jhc2VUaGVtZS5v dGhlclZhcnMuYm9yZGVyQ29sb3IsCisgICAgICB9LAorICAgICAgYm90dG9tOiB7CisgICAgICAg IGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCAnK2Jhc2VUaGVtZS5vdGhlclZhcnMuYm9yZGVyQ29s b3IsCisgICAgICB9LAorICAgICAgcmlnaHQ6IHsKKyAgICAgICAgYm9yZGVyUmlnaHQ6ICcxcHgg c29saWQgJytiYXNlVGhlbWUub3RoZXJWYXJzLmJvcmRlckNvbG9yLAorICAgICAgfQorICAgIH0s CisgICAgbm9kZUljb246IHsKKyAgICAgIGJhY2tncm91bmRQb3NpdGlvbjogJ2NlbnRlcicsCisg ICAgICBwYWRkaW5nOiBiYXNlVGhlbWUuc3BhY2luZygwLCAxLjUpLAorICAgIH0KKyAgfTsKKwor ICByZXR1cm4gY3JlYXRlTXVpVGhlbWUoeworICAgIG1peGluczogbWl4aW5zLAorICAgIG92ZXJy aWRlczogeworICAgICAgTXVpT3V0bGluZWRJbnB1dDogIHsKKyAgICAgICAgbm90Y2hlZE91dGxp bmU6IHsKKyAgICAgICAgICBib3JkZXJDb2xvcjogYmFzZVRoZW1lLm90aGVyVmFycy5pbnB1dEJv cmRlckNvbG9yLAorICAgICAgICB9CisgICAgICB9LAorICAgICAgTXVpVGFiczogeworICAgICAg ICByb290OiB7CisgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBiYXNlVGhlbWUub3RoZXJWYXJz LmhlYWRlckJnLAorICAgICAgICAgIC4uLm1peGlucy5wYW5lbEJvcmRlci5ib3R0b20KKyAgICAg ICAgfSwKKyAgICAgICAgaW5kaWNhdG9yOiB7CisgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBi YXNlVGhlbWUub3RoZXJWYXJzLmFjdGl2ZUNvbG9yLAorICAgICAgICB9CisgICAgICB9LAorICAg ICAgTXVpRm9ybUxhYmVsOiB7CisgICAgICAgIHJvb3Q6IHsKKyAgICAgICAgICBjb2xvcjogYmFz ZVRoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5LAorICAgICAgICAgIGZvbnRTaXplOiBiYXNlVGhl bWUudHlwb2dyYXBoeS5mb250U2l6ZSwKKyAgICAgICAgfSwKKyAgICAgICAgYXN0ZXJpc2s6IHsK KyAgICAgICAgICBjb2xvcjogYmFzZVRoZW1lLnBhbGV0dGUuZXJyb3IubWFpbiwKKyAgICAgICAg fQorICAgICAgfSwKKyAgICAgIE11aUlucHV0QmFzZTogeworICAgICAgICByb290OiB7CisgICAg ICAgICAgYmFja2dyb3VuZENvbG9yOiBiYXNlVGhlbWUucGFsZXR0ZS5iYWNrZ3JvdW5kLmRlZmF1 bHQsCisgICAgICAgIH0sCisgICAgICAgIGlucHV0TXVsdGlsaW5lOiB7CisgICAgICAgICAgZm9u dFNpemU6IGJhc2VUaGVtZS50eXBvZ3JhcGh5LmZvbnRTaXplLAorICAgICAgICAgIGhlaWdodDog J3Vuc2V0JywKKyAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGJhc2VUaGVtZS5wYWxldHRlLmJh Y2tncm91bmQuZGVmYXVsdCwKKyAgICAgICAgICAnJltyZWFkb25seV0nOiB7CisgICAgICAgICAg ICBiYWNrZ3JvdW5kQ29sb3I6IGJhc2VUaGVtZS5wYWxldHRlLmlucHV0RGlzYWJsZWRCZywKKyAg ICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIGlucHV0OiB7CisgICAgICAgICAgZm9udFNp emU6IGJhc2VUaGVtZS50eXBvZ3JhcGh5LmZvbnRTaXplLAorICAgICAgICAgIGhlaWdodDogJ3Vu c2V0JywKKyAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGJhc2VUaGVtZS5wYWxldHRlLmJhY2tn cm91bmQuZGVmYXVsdCwKKyAgICAgICAgICAnJltyZWFkb25seV0nOiB7CisgICAgICAgICAgICBi YWNrZ3JvdW5kQ29sb3I6IGJhc2VUaGVtZS5vdGhlclZhcnMuaW5wdXREaXNhYmxlZEJnLAorICAg ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfSwKKyAgICAgIE11aUljb25CdXR0b246IHsKKyAg ICAgICAgcm9vdDogeworICAgICAgICAgIGNvbG9yOiBiYXNlVGhlbWUucGFsZXR0ZS50ZXh0LnBy aW1hcnksCisgICAgICAgIH0KKyAgICAgIH0sCisgICAgICBNdWlBY2NvcmRpb246IHsKKyAgICAg ICAgcm9vdDogeworICAgICAgICAgIC4uLm1peGlucy5wYW5lbEJvcmRlciwKKyAgICAgICAgfQor ICAgICAgfSwKKyAgICAgIE11aUFjY29yZGlvblN1bW1hcnk6IHsKKyAgICAgICAgcm9vdDogewor ICAgICAgICAgIC4uLm1peGlucy5wYW5lbEJvcmRlci5ib3R0b20sCisgICAgICAgICAgYmFja2dy b3VuZENvbG9yOiBiYXNlVGhlbWUub3RoZXJWYXJzLmhlYWRlckJnLAorICAgICAgICB9CisgICAg ICB9LAorICAgICAgTXVpU3dpdGNoOiB7CisgICAgICAgIHJvb3Q6IHsKKyAgICAgICAgICB3aWR0 aDogNTQsCisgICAgICAgICAgaGVpZ2h0OiAyOCwKKyAgICAgICAgICBwYWRkaW5nOiAnN3B4IDEy cHgnLAorICAgICAgICB9LAorICAgICAgICBzd2l0Y2hCYXNlOiB7CisgICAgICAgICAgcGFkZGlu ZzogYmFzZVRoZW1lLnNwYWNpbmcoMC41KSwKKyAgICAgICAgICAnJi5NdWktY2hlY2tlZCc6IHsK KyAgICAgICAgICAgIGNvbG9yOiBiYXNlVGhlbWUucGFsZXR0ZS5zdWNjZXNzLm1haW4sCisgICAg ICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDI0cHgpJywKKyAgICAgICAgICB9LAorICAg ICAgICAgICcmLk11aS1jaGVja2VkICsgLk11aVN3aXRjaC10cmFjayc6IHsKKyAgICAgICAgICAg IGJhY2tncm91bmRDb2xvcjogYmFzZVRoZW1lLnBhbGV0dGUuc3VjY2Vzcy5saWdodCwKKyAgICAg ICAgICB9LAorICAgICAgICB9LAorICAgICAgfSwKKyAgICAgIE11aUNoZWNrYm94OiB7CisgICAg ICAgIHJvb3Q6IHsKKyAgICAgICAgICBwYWRkaW5nOiAnMHB4JywKKyAgICAgICAgICBjb2xvcjog YmFzZVRoZW1lLm90aGVyVmFycy5pbnB1dEJvcmRlckNvbG9yLAorICAgICAgICB9CisgICAgICB9 LAorICAgICAgTXVpVG9nZ2xlQnV0dG9uOiB7CisgICAgICAgIHJvb3Q6IHsKKyAgICAgICAgICBw YWRkaW5nUmlnaHQ6IGJhc2VUaGVtZS5zcGFjaW5nKDIuNSksCisgICAgICAgICAgcGFkZGluZ0xl ZnQ6IGJhc2VUaGVtZS5zcGFjaW5nKDAuNSksCisgICAgICAgICAgY29sb3I6ICdhYmMnLAorICAg ICAgICAgICcmOmhvdmVyJzp7CisgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdhYmMnLAor ICAgICAgICAgIH0sCisgICAgICAgICAgJyYkc2VsZWN0ZWQnOiB7CisgICAgICAgICAgICBjb2xv cjogJ2FiYycsCisgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdhYmMnLAorICAgICAgICAg ICAgJyY6aG92ZXInOnsKKyAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnYWJjJywKKyAg ICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0sCisgICAgfQorICB9 LCBiYXNlVGhlbWUpOworfQorCisvKiBUaGVtZSB3cmFwcGVyIHVzZWQgYnkgRE9NIGNvbnRhaW5l cnMgdG8gYXBwbHkgdGhlbWUgKi8KKy8qIEluIGZ1dHVyZSwgdGhpcyB3aWxsIGJlIG1vdmVkIHRv IEFwcCBjb250YWluZXIgKi8KK2V4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFRoZW1lKHByb3BzKSB7 CisgIGNvbnN0IHRoZW1lID0gdXNlTWVtbygoKT0+eworICAgIC8qIFdlJ2xsIHJlbW92ZSB0aGlz IGluIGZ1dHVyZSwgd2UgY2FuIGdldCB0aGUgdmFsdWUgZnJvbSBwcmVmZXJlbmNlcyBkaXJlY3Rs eSAqLworICAgIGxldCB0aGVtZU5hbWUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdsaW5rW2Rh dGEtdGhlbWVdJyk/LmdldEF0dHJpYnV0ZSgnZGF0YS10aGVtZScpOworICAgIGxldCBiYXNlVGhl bWUgPSBnZXRTdGFuZGFyZFRoZW1lKGJhc2ljU2V0dGluZ3MpOworICAgIHN3aXRjaCh0aGVtZU5h bWUpIHsKKyAgICBjYXNlICdkYXJrJzoKKyAgICAgIGJhc2VUaGVtZSA9IGdldERhcmtUaGVtZShi YXNlVGhlbWUpOworICAgICAgYnJlYWs7CisgICAgY2FzZSAnaGlnaF9jb250cmFzdCc6CisgICAg ICBiYXNlVGhlbWUgPSBnZXRIaWdodENvbnRyYXN0VGhlbWUoYmFzZVRoZW1lKTsKKyAgICAgIGJy ZWFrOworICAgIH0KKyAgICByZXR1cm4gZ2V0RmluYWxUaGVtZShiYXNlVGhlbWUpOworICB9LCBb XSk7CisgIHJldHVybiAoCisgICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoZW1lfT4KKyAgICAg IHtwcm9wcy5jaGlsZHJlbn0KKyAgICA8L1RoZW1lUHJvdmlkZXI+CisgICk7Cit9CisKK1RoZW1l LnByb3BUeXBlcyA9IHsKKyAgY2hpbGRyZW46IEN1c3RvbVByb3BUeXBlcy5jaGlsZHJlbiwKK307 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvVGhlbWUvc3RhbmRhcmQuanMgYi93 ZWIvcGdhZG1pbi9zdGF0aWMvanMvVGhlbWUvc3RhbmRhcmQuanMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwLi40NjU4NmY3MmUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9zdGF0aWMvanMvVGhlbWUvc3RhbmRhcmQuanMKQEAgLTAsMCArMSw5NSBAQAorLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwor Ly8KKy8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKy8vCisvLyBDb3B5cmlnaHQgKEMp IDIwMTMgLSAyMDIxLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisvLyBUaGlzIHNvZnR3 YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKy8vCisvLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwor CisvKiBUaGUgc3RhbmRhcmQgdGhlbWUgKi8KK2ltcG9ydCB7IGNyZWF0ZU11aVRoZW1lIH0gZnJv bSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJzsKK2ltcG9ydCB7IGZhZGUsIGRhcmtlbiB9IGZy b20gJ0BtYXRlcmlhbC11aS9jb3JlL3N0eWxlcy9jb2xvck1hbmlwdWxhdG9yJzsKKworZXhwb3J0 IGRlZmF1bHQgZnVuY3Rpb24oYmFzaWNTZXR0aW5ncykgeworICByZXR1cm4gY3JlYXRlTXVpVGhl bWUoYmFzaWNTZXR0aW5ncywgeworICAgIHBhbGV0dGU6IHsKKyAgICAgIGRlZmF1bHQ6IHsKKyAg ICAgICAgbWFpbjogJyNmZmYnLAorICAgICAgICBjb250cmFzdFRleHQ6ICcjMjIyJywKKyAgICAg ICAgYm9yZGVyQ29sb3I6ICcjYmFjMWNkJywKKyAgICAgICAgZGlzYWJsZWRCb3JkZXJDb2xvcjog JyNiYWMxY2QnLAorICAgICAgICBkaXNhYmxlZENvbnRyYXN0VGV4dDogJyMyMjInLAorICAgICAg ICBob3Zlck1haW46ICcjZWJlZWYzJywKKyAgICAgICAgaG92ZXJDb250cmFzdFRleHQ6ICcjMjIy JywKKyAgICAgICAgaG92ZXJCb3JkZXJDb2xvcjogJyNiYWMxY2QnLAorICAgICAgfSwKKyAgICAg IHByaW1hcnk6IHsKKyAgICAgICAgbWFpbjogJyMzMjY2OTAnLAorICAgICAgICBsaWdodDogJyNk NmVmZmMnLAorICAgICAgICBjb250cmFzdFRleHQ6ICcjZmZmJywKKyAgICAgICAgaG92ZXJNYWlu OiBkYXJrZW4oJyMzMjY2OTAnLCAwLjI1KSwKKyAgICAgICAgaG92ZXJCb3JkZXJDb2xvcjogZGFy a2VuKCcjMzI2NjkwJywgMC4yNSksCisgICAgICAgIGRpc2FibGVkTWFpbjogJyMzMjY2OTAnLAor ICAgICAgfSwKKyAgICAgIHN1Y2Nlc3M6ICB7CisgICAgICAgIG1haW46ICcjMjY4NTJCJywKKyAg ICAgICAgbGlnaHQ6ICcjRDlFQ0RBJywKKyAgICAgICAgY29udHJhc3RUZXh0OiAnIzAwMCcsCisg ICAgICB9LAorICAgICAgZXJyb3I6IHsKKyAgICAgICAgbWFpbjogJyNDQzAwMDAnLAorICAgICAg ICBsaWdodDogJyNGQUVDRUMnLAorICAgICAgICBjb250cmFzdFRleHQ6ICcjZmZmJywKKyAgICAg IH0sCisgICAgICB3YXJuaW5nOiB7CisgICAgICAgIG1haW46ICcjZWVhMjM2JywKKyAgICAgICAg bGlnaHQ6ICcjZmNlNWM1JywKKyAgICAgICAgY29udHJhc3RUZXh0OiAnIzAwMCcsCisgICAgICB9 LAorICAgICAgaW5mbzogeworICAgICAgICBtYWluOiAnI2ZkZTc0YycsCisgICAgICB9LAorICAg ICAgZ3JleTogeworICAgICAgICAnMjAwJzogJyNmM2Y1ZjknLAorICAgICAgICAnNDAwJzogJyNl YmVlZjMnLAorICAgICAgICAnNjAwJzogJyNiYWMxY2QnLAorICAgICAgICAnODAwJzogJyM4NDhl YTAnLAorICAgICAgfSwKKyAgICAgIHRleHQ6IHsKKyAgICAgICAgcHJpbWFyeTogJyMyMjInLAor ICAgICAgfSwKKyAgICAgIGJhY2tncm91bmQ6IHsKKyAgICAgICAgcGFwZXI6ICcjZmZmJywKKyAg ICAgICAgZGVmYXVsdDogJyNmZmYnLAorICAgICAgfSwKKyAgICB9LAorICAgIGN1c3RvbTogewor ICAgICAgaWNvbjogeworICAgICAgICBtYWluOiAnI2ZmZicsCisgICAgICAgIGNvbnRyYXN0VGV4 dDogJyMyMjInLAorICAgICAgICBib3JkZXJDb2xvcjogJyNiYWMxY2QnLAorICAgICAgICBkaXNh YmxlZE1haW46ICcjZmZmJywKKyAgICAgICAgZGlzYWJsZWRDb250cmFzdFRleHQ6ICcjMjIyJywK KyAgICAgICAgZGlzYWJsZWRCb3JkZXJDb2xvcjogJyNiYWMxY2QnLAorICAgICAgICBob3Zlck1h aW46ICcjZWJlZWYzJywKKyAgICAgICAgaG92ZXJDb250cmFzdFRleHQ6ICcjMjIyJywKKyAgICAg IH0KKyAgICB9LAorICAgIG90aGVyVmFyczogeworICAgICAgcmVhY3RTZWxlY3Q6IHsKKyAgICAg ICAgcGFkZGluZzogJzVweCA4cHgnLAorICAgICAgfSwKKyAgICAgIGJvcmRlckNvbG9yOiAnI2Rk ZTBlNicsCisgICAgICBsb2FkZXI6IHsKKyAgICAgICAgYmFja2dyb3VuZENvbG9yOiBmYWRlKCcj MDAwJywgMC42NSksCisgICAgICAgIGNvbG9yOiAnI2ZmZicsCisgICAgICB9LAorICAgICAgaW5w dXRCb3JkZXJDb2xvcjogJyNkZGUwZTYnLAorICAgICAgaW5wdXREaXNhYmxlZEJnOiAnI2YzZjVm OScsCisgICAgICBoZWFkZXJCZzogJyNmZmYnLAorICAgICAgYWN0aXZlQ29sb3I6ICcjMzI2Njkw JywKKyAgICAgIHRhYmxlQmc6ICcjZmZmJywKKyAgICB9CisgIH0pOworfQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vc3RhdGljL2pzL2FwaV9pbnN0YW5jZS5qcyBiL3dlYi9wZ2FkbWluL3N0YXRp Yy9qcy9hcGlfaW5zdGFuY2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw Li4zMGUyZjcwN2EKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvYXBp X2luc3RhbmNlLmpzCkBAIC0wLDAgKzEsNDUgQEAKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisvLworLy8gQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMSwgVGhlIHBn QWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorLy8gVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRl ciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworaW1wb3J0IHBnQWRtaW4gZnJv bSAnc291cmNlcy9wZ2FkbWluJzsKK2ltcG9ydCBnZXR0ZXh0IGZyb20gJ3NvdXJjZXMvZ2V0dGV4 dCc7CitpbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnOworCisvKiBHZXQgdGhlIGF4aW9zIGluc3Rh bmNlIHRvIGNhbGwgYmFjayBlbmQgQVBJcy4KK0RvIG5vdCBpbXBvcnQgYXhpb3MgZGlyZWN0bHks IGluc3RlYWQgdXNlIHRoaXMgKi8KK2V4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldEFwaUluc3Rh bmNlKGhlYWRlcnM9e30pIHsKKyAgY29uc3QgYXBpID0gYXhpb3MuY3JlYXRlKHsKKyAgICBoZWFk ZXJzOiB7CisgICAgICAnQ29udGVudC10eXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLAorICAgICAg W3BnQWRtaW4uY3NyZl90b2tlbl9oZWFkZXJdOiBwZ0FkbWluLmNzcmZfdG9rZW4sCisgICAgICAu Li5oZWFkZXJzLAorICAgIH0KKyAgfSk7CisgIHJldHVybiBhcGk7Cit9CisKK2V4cG9ydCBmdW5j dGlvbiBwYXJzZUFwaUVycm9yKGVycm9yKSB7CisgIGlmIChlcnJvci5yZXNwb25zZSkgeworICAg IC8vIFRoZSByZXF1ZXN0IHdhcyBtYWRlIGFuZCB0aGUgc2VydmVyIHJlc3BvbmRlZCB3aXRoIGEg c3RhdHVzIGNvZGUKKyAgICAvLyB0aGF0IGZhbGxzIG91dCBvZiB0aGUgcmFuZ2Ugb2YgMnh4Cisg ICAgaWYoZXJyb3IucmVzcG9uc2UuaGVhZGVyc1snY29udGVudC10eXBlJ10gPT0gJ2FwcGxpY2F0 aW9uL2pzb24nKSB7CisgICAgICByZXR1cm4gZXJyb3IucmVzcG9uc2UuZGF0YS5lcnJvcm1zZzsK KyAgICB9IGVsc2UgeworICAgICAgcmV0dXJuIGVycm9yLnJlc3BvbnNlLnN0YXR1c1RleHQ7Cisg ICAgfQorICB9IGVsc2UgaWYgKGVycm9yLnJlcXVlc3QpIHsKKyAgICAvLyBUaGUgcmVxdWVzdCB3 YXMgbWFkZSBidXQgbm8gcmVzcG9uc2Ugd2FzIHJlY2VpdmVkCisgICAgLy8gYGVycm9yLnJlcXVl c3RgIGlzIGFuIGluc3RhbmNlIG9mIFhNTEh0dHBSZXF1ZXN0IGluIHRoZSBicm93c2VyIGFuZCBh biBpbnN0YW5jZSBvZgorICAgIC8vIGh0dHAuQ2xpZW50UmVxdWVzdCBpbiBub2RlLmpzCisgICAg cmV0dXJuIGdldHRleHQoJ0Nvbm5lY3Rpb24gdG8gcGdBZG1pbiBzZXJ2ZXIgaGFzIGJlZW4gbG9z dCcpOworICB9IGVsc2UgeworICAgIC8vIFNvbWV0aGluZyBoYXBwZW5lZCBpbiBzZXR0aW5nIHVw IHRoZSByZXF1ZXN0IHRoYXQgdHJpZ2dlcmVkIGFuIEVycm9yCisgICAgcmV0dXJuIGVycm9yLm1l c3NhZ2U7CisgIH0KK30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9jb21wb25l bnRzL0J1dHRvbnMuanN4IGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2NvbXBvbmVudHMvQnV0dG9u cy5qc3gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi45ODFmOTAyNDYKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvY29tcG9uZW50cy9CdXR0b25z LmpzeApAQCAtMCwwICsxLDEwNiBAQAorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8vIHBnQWRtaW4gNCAtIFBvc3RncmVT UUwgVG9vbHMKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIxLCBUaGUgcGdBZG1pbiBE ZXZlbG9wbWVudCBUZWFtCisvLyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQ b3N0Z3JlU1FMIExpY2VuY2UKKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitpbXBvcnQgeyBCdXR0b24sIG1ha2VTdHls ZXMsIFRvb2x0aXAgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZSc7CitpbXBvcnQgUmVhY3QsIHsg Zm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JzsKK2ltcG9ydCBjbHN4IGZyb20gJ2Nsc3gnOworaW1w b3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJzsKK2ltcG9ydCBDdXN0b21Qcm9wVHlwZXMg ZnJvbSAnLi4vY3VzdG9tX3Byb3BfdHlwZXMnOworCitjb25zdCB1c2VTdHlsZXMgPSBtYWtlU3R5 bGVzKCh0aGVtZSk9Pih7CisgIHByaW1hcnlCdXR0b246IHsKKyAgICAnJi5NdWktZGlzYWJsZWQn OiB7CisgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5wcmltYXJ5LmNvbnRyYXN0VGV4dCwKKyAg ICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5wcmltYXJ5LmRpc2FibGVkTWFpbiwK KyAgICB9LAorICAgICcmOmhvdmVyJzogeworICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5w YWxldHRlLnByaW1hcnkuaG92ZXJNYWluLAorICAgICAgYm9yZGVyQ29sb3I6IHRoZW1lLnBhbGV0 dGUucHJpbWFyeS5ob3ZlckJvcmRlckNvbG9yLAorICAgIH0sCisgIH0sCisgIGRlZmF1bHRCdXR0 b246IHsKKyAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUuZGVmYXVsdC5tYWluLAor ICAgIGNvbG9yOiB0aGVtZS5wYWxldHRlLmRlZmF1bHQuY29udHJhc3RUZXh0LAorICAgIGJvcmRl cjogJzFweCBzb2xpZCAnK3RoZW1lLnBhbGV0dGUuZGVmYXVsdC5ib3JkZXJDb2xvciwKKyAgICAn Ji5NdWktZGlzYWJsZWQnOiB7CisgICAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5kZWZhdWx0LmRp c2FibGVkQ29udHJhc3RUZXh0LAorICAgICAgYm9yZGVyQ29sb3I6IHRoZW1lLnBhbGV0dGUuZGVm YXVsdC5kaXNhYmxlZEJvcmRlckNvbG9yCisgICAgfSwKKyAgICAnJjpob3Zlcic6IHsKKyAgICAg IGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5kZWZhdWx0LmhvdmVyTWFpbiwKKyAgICAg IGNvbG9yOiB0aGVtZS5wYWxldHRlLmRlZmF1bHQuaG92ZXJDb250cmFzdFRleHQsCisgICAgICBi b3JkZXJDb2xvcjogdGhlbWUucGFsZXR0ZS5kZWZhdWx0LmhvdmVyQm9yZGVyQ29sb3IsCisgICAg fQorICB9LAorICBpY29uQnV0dG9uOiB7CisgICAgcGFkZGluZzogJzNweCA2cHgnLAorICAgIGJv cmRlckNvbG9yOiB0aGVtZS5jdXN0b20uaWNvbi5ib3JkZXJDb2xvciwKKyAgICBjb2xvcjogdGhl bWUuY3VzdG9tLmljb24uY29udHJhc3RUZXh0LAorICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUu Y3VzdG9tLmljb24ubWFpbiwKKyAgICAnJi5NdWktZGlzYWJsZWQnOiB7CisgICAgICBib3JkZXJD b2xvcjogdGhlbWUuY3VzdG9tLmljb24uZGlzYWJsZWRCb3JkZXJDb2xvciwKKyAgICAgIGJhY2tn cm91bmRDb2xvcjogdGhlbWUuY3VzdG9tLmljb24uZGlzYWJsZWRNYWluLAorICAgICAgY29sb3I6 IHRoZW1lLmN1c3RvbS5pY29uLmRpc2FibGVkQ29udHJhc3RUZXh0LAorICAgIH0sCisgICAgJyY6 aG92ZXInOiB7CisgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmN1c3RvbS5pY29uLmhvdmVy TWFpbiwKKyAgICAgIGNvbG9yOiB0aGVtZS5jdXN0b20uaWNvbi5ob3ZlckNvbnRyYXN0VGV4dCwK KyAgICB9CisgIH0KK30pKTsKKworLyogcGdBZG1pbiBwcmltYXJ5IGJ1dHRvbiAqLworZXhwb3J0 IGNvbnN0IFByaW1hcnlCdXR0b24gPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKT0+eworICBsZXQg e2NoaWxkcmVuLCBjbGFzc05hbWUsIC4uLm90aGVyUHJvcHN9ID0gcHJvcHM7CisgIGNvbnN0IGNs YXNzZXMgPSB1c2VTdHlsZXMoKTsKKworICByZXR1cm4gKAorICAgIDxCdXR0b24gcmVmPXtyZWZ9 IHZhcmlhbnQ9ImNvbnRhaW5lZCIgY29sb3I9InByaW1hcnkiIGNsYXNzTmFtZT17Y2xzeChjbGFz c2VzLnByaW1hcnlCdXR0b24sIGNsYXNzTmFtZSl9IHsuLi5vdGhlclByb3BzfT57Y2hpbGRyZW59 PC9CdXR0b24+CisgICk7Cit9KTsKK1ByaW1hcnlCdXR0b24uZGlzcGxheU5hbWUgPSAnUHJpbWFy eUJ1dHRvbic7CitQcmltYXJ5QnV0dG9uLnByb3BUeXBlcyA9IHsKKyAgY2hpbGRyZW46IEN1c3Rv bVByb3BUeXBlcy5jaGlsZHJlbiwKKyAgY2xhc3NOYW1lOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQ cm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMub2JqZWN0XSksCit9OworCisvKiBwZ0FkbWluIGRl ZmF1bHQgYnV0dG9uICovCitleHBvcnQgY29uc3QgRGVmYXVsdEJ1dHRvbiA9IGZvcndhcmRSZWYo KHByb3BzLCByZWYpPT57CisgIGxldCB7Y2hpbGRyZW4sIGNsYXNzTmFtZSwgLi4ub3RoZXJQcm9w c30gPSBwcm9wczsKKyAgY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlcygpOworCisgIHJldHVybiAo CisgICAgPEJ1dHRvbiByZWY9e3JlZn0gdmFyaWFudD0ib3V0bGluZWQiIGNvbG9yPSJkZWZhdWx0 IiBjbGFzc05hbWU9e2Nsc3goY2xhc3Nlcy5kZWZhdWx0QnV0dG9uLCBjbGFzc05hbWUpfSB7Li4u b3RoZXJQcm9wc30+e2NoaWxkcmVufTwvQnV0dG9uPgorICApOworfSk7CitEZWZhdWx0QnV0dG9u LmRpc3BsYXlOYW1lID0gJ0RlZmF1bHRCdXR0b24nOworRGVmYXVsdEJ1dHRvbi5wcm9wVHlwZXMg PSB7CisgIGNoaWxkcmVuOiBDdXN0b21Qcm9wVHlwZXMuY2hpbGRyZW4sCisgIGNsYXNzTmFtZTog UHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmluZywgUHJvcFR5cGVzLm9iamVjdF0p LAorfTsKKworLyogcGdBZG1pbiBJY29uIGJ1dHRvbiwgdGFrZXMgSWNvbiBjb21wb25lbnQgYXMg aW5wdXQgKi8KK2V4cG9ydCBjb25zdCBQZ0ljb25CdXR0b24gPSBmb3J3YXJkUmVmKCh7aWNvbiwg dGl0bGUsIGNsYXNzTmFtZSwgLi4ucHJvcHN9LCByZWYpPT57CisgIGNvbnN0IGNsYXNzZXMgPSB1 c2VTdHlsZXMoKTsKKworICAvKiBUb29sdGlwIGRvZXMgbm90IHdvcmsgZm9yIGRpc2FibGVkIGl0 ZW1zICovCisgIHJldHVybiAoCisgICAgPFRvb2x0aXAgdGl0bGU9e3RpdGxlIHx8ICcnfSBhcmlh LWxhYmVsPXt0aXRsZSB8fCAnJ30+CisgICAgICA8RGVmYXVsdEJ1dHRvbiByZWY9e3JlZn0gc3R5 bGU9e3ttaW5XaWR0aDogMH19IGNsYXNzTmFtZT17Y2xzeChjbGFzc2VzLmljb25CdXR0b24sIGNs YXNzTmFtZSl9IHsuLi5wcm9wc30+CisgICAgICAgIHtpY29ufQorICAgICAgPC9EZWZhdWx0QnV0 dG9uPgorICAgIDwvVG9vbHRpcD4KKyAgKTsKK30pOworUGdJY29uQnV0dG9uLmRpc3BsYXlOYW1l ID0gJ1BnSWNvbkJ1dHRvbic7CitQZ0ljb25CdXR0b24ucHJvcFR5cGVzID0geworICBpY29uOiBD dXN0b21Qcm9wVHlwZXMuY2hpbGRyZW4sCisgIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVx dWlyZWQsCisgIGNsYXNzTmFtZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLnN0cmlu ZywgUHJvcFR5cGVzLm9iamVjdF0pLAorfTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRp Yy9qcy9jb21wb25lbnRzL0NvZGVNaXJyb3IuanN4IGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2Nv bXBvbmVudHMvQ29kZU1pcnJvci5qc3gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwLi42ZmFjN2UyY2QKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMv Y29tcG9uZW50cy9Db2RlTWlycm9yLmpzeApAQCAtMCwwICsxLDQwIEBACisvLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8g cGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdodCAoQykgMjAxMyAt IDIwMjEsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKy8vIFRoaXMgc29mdHdhcmUgaXMg cmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK2ltcG9y dCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JzsKK2ltcG9ydCB7ZGVm YXVsdCBhcyBPcmlnQ29kZU1pcnJvcn0gZnJvbSAnYnVuZGxlZF9jb2RlbWlycm9yJzsKK2ltcG9y dCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7CisKKy8qIFJlYWN0IHdyYXBwZXIgZm9yIENv ZGVNaXJyb3IgKi8KK2V4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIENvZGVNaXJyb3Ioe25hbWUsIHZh bHVlLCBvcHRpb25zfSkgeworICBjb25zdCB0YVJlZiA9IHVzZVJlZigpOworICBjb25zdCBjbU9i aiA9IHVzZVJlZigpOworCisgIHVzZUVmZmVjdCgoKT0+eworICAgIC8qIENyZWF0ZSB0aGUgb2Jq ZWN0IG9ubHkgb25jZSBvbiBtb3VudCAqLworICAgIGNtT2JqLmN1cnJlbnQgPSBuZXcgT3JpZ0Nv ZGVNaXJyb3IuZnJvbVRleHRBcmVhKAorICAgICAgdGFSZWYuY3VycmVudCwgb3B0aW9ucyk7Cisg IH0sIFtdKTsKKworICB1c2VFZmZlY3QoKCk9PnsKKyAgICAvKiBSZWZyZXNoIHdoZW4gdmFsdWUg Y2hhbmdlcyAqLworICAgIGlmKGNtT2JqLmN1cnJlbnQpIHsKKyAgICAgIGNtT2JqLmN1cnJlbnQu c2V0VmFsdWUodmFsdWUpOworICAgICAgY21PYmouY3VycmVudC5yZWZyZXNoKCk7CisgICAgfQor ICB9LCBbdmFsdWVdKTsKKworICByZXR1cm4gPHRleHRhcmVhIHJlZj17dGFSZWZ9IG5hbWU9e25h bWV9IC8+OworfQorCitDb2RlTWlycm9yLnByb3BUeXBlcyA9IHsKKyAgbmFtZTogUHJvcFR5cGVz LnN0cmluZywKKyAgdmFsdWU6IFByb3BUeXBlcy5zdHJpbmcsCisgIG9wdGlvbnM6IFByb3BUeXBl cy5vYmplY3QKK307CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvY29tcG9uZW50 cy9Gb3JtQ29tcG9uZW50cy5qc3ggYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvY29tcG9uZW50cy9G b3JtQ29tcG9uZW50cy5qc3gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi42 NjAzNjY4NTEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvY29tcG9u ZW50cy9Gb3JtQ29tcG9uZW50cy5qc3gKQEAgLTAsMCArMSw4NDIgQEAKKy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyBw Z0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisvLworLy8gQ29weXJpZ2h0IChDKSAyMDEzIC0g MjAyMSwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorLy8gVGhpcyBzb2Z0d2FyZSBpcyBy ZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisvLworLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8qIENvbW1v biBmb3JtIGNvbXBvbmVudHMgdXNlZCBpbiBwZ0FkbWluICovCisKK2ltcG9ydCBSZWFjdCwgeyBm b3J3YXJkUmVmLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJv bSAncmVhY3QnOworaW1wb3J0IHsgbWFrZVN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3Jl L3N0eWxlcyc7CitpbXBvcnQgeyBCb3gsIEZvcm1Db250cm9sLCBPdXRsaW5lZElucHV0LCBGb3Jt SGVscGVyVGV4dCwKKyAgR3JpZCwgSWNvbkJ1dHRvbiwgRm9ybUNvbnRyb2xMYWJlbCwgU3dpdGNo LCBDaGVja2JveCwgdXNlVGhlbWUsIElucHV0TGFiZWwgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29y ZSc7CitpbXBvcnQgeyBUb2dnbGVCdXR0b24sIFRvZ2dsZUJ1dHRvbkdyb3VwIH0gZnJvbSAnQG1h dGVyaWFsLXVpL2xhYic7CitpbXBvcnQgUmVwb3J0UHJvYmxlbUljb24gZnJvbSAnQG1hdGVyaWFs LXVpL2ljb25zL1JlcG9ydFByb2JsZW1Sb3VuZGVkJzsKK2ltcG9ydCBJbmZvSWNvbiBmcm9tICdA bWF0ZXJpYWwtdWkvaWNvbnMvSW5mb1JvdW5kZWQnOworaW1wb3J0IENsb3NlSWNvbiBmcm9tICdA bWF0ZXJpYWwtdWkvaWNvbnMvQ2xvc2VSb3VuZGVkJzsKK2ltcG9ydCBDaGVja0ljb24gZnJvbSAn QG1hdGVyaWFsLXVpL2ljb25zL0NoZWNrQ2lyY2xlT3V0bGluZVJvdW5kZWQnOworaW1wb3J0IENo ZWNrUm91bmRlZEljb24gZnJvbSAnQG1hdGVyaWFsLXVpL2ljb25zL0NoZWNrUm91bmRlZCc7Citp bXBvcnQgRm9sZGVyT3BlblJvdW5kZWRJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29ucy9Gb2xk ZXJPcGVuUm91bmRlZCc7CitpbXBvcnQgU2VsZWN0LCB7Y29tcG9uZW50cyBhcyBSU0NvbXBvbmVu dHN9IGZyb20gJ3JlYWN0LXNlbGVjdCc7CitpbXBvcnQgQ3JlYXRhYmxlU2VsZWN0IGZyb20gJ3Jl YWN0LXNlbGVjdC9jcmVhdGFibGUnOworaW1wb3J0IFBpY2tyIGZyb20gJ0BzaW1vbndlcC9waWNr cic7CitpbXBvcnQgY2xzeCBmcm9tICdjbHN4JzsKK2ltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJv cC10eXBlcyc7CisKK2ltcG9ydCBDb2RlTWlycm9yIGZyb20gJy4vQ29kZU1pcnJvcic7CitpbXBv cnQgZ2V0dGV4dCBmcm9tICdzb3VyY2VzL2dldHRleHQnOworaW1wb3J0IHsgc2hvd0ZpbGVEaWFs b2cgfSBmcm9tICcuLi9oZWxwZXJzL2xlZ2FjeUNvbm5lY3Rvcic7CitpbXBvcnQgXyBmcm9tICds b2Rhc2gnOworaW1wb3J0IHsgRGVmYXVsdEJ1dHRvbiwgUHJpbWFyeUJ1dHRvbiwgUGdJY29uQnV0 dG9uIH0gZnJvbSAnLi9CdXR0b25zJzsKK2ltcG9ydCBDdXN0b21Qcm9wVHlwZXMgZnJvbSAnLi4v Y3VzdG9tX3Byb3BfdHlwZXMnOworCisKK2NvbnN0IHVzZVN0eWxlcyA9IG1ha2VTdHlsZXMoKHRo ZW1lKSA9PiAoeworICBmb3JtUm9vdDogeworICAgIHBhZGRpbmc6ICcxcmVtJworICB9LAorICBp bWc6IHsKKyAgICBtYXhXaWR0aDogJzEwMCUnLAorICAgIGhlaWdodDogJ2F1dG8nCisgIH0sCisg IGluZm86IHsKKyAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5pbmZvLm1haW4sCisgICAgbWFyZ2lu TGVmdDogJzAuMjVyZW0nLAorICAgIGZvbnRTaXplOiAnMXJlbScsCisgIH0sCisgIGZvcm1MYWJl bDogeworICAgIG1hcmdpbjogdGhlbWUuc3BhY2luZygwLjc1LCAwLjc1LCAwLjc1LCAwLjc1KSwK KyAgICBkaXNwbGF5OiAnZmxleCcsCisgIH0sCisgIGZvcm1MYWJlbEVycm9yOiAgeworICAgIGNv bG9yOiB0aGVtZS5wYWxldHRlLmVycm9yLm1haW4sCisgIH0sCisgIHNxbDogeworICAgIGhlaWdo dDogJzEwMCUnLAorICB9LAorICBvcHRpb25JY29uOiB7CisgICAgLi4udGhlbWUubWl4aW5zLm5v ZGVJY29uLAorICB9LAorICBjb2xvckJ0bjogeworICAgIGhlaWdodDogdGhlbWUuc3BhY2luZygz LjUpLAorICAgIG1pbkhlaWdodDogdGhlbWUuc3BhY2luZygzLjUpLAorICAgIHdpZHRoOiB0aGVt ZS5zcGFjaW5nKDMuNSksCisgICAgbWluV2lkdGg6IHRoZW1lLnNwYWNpbmcoMy41KSwKKyAgfQor fSkpOworCisKK2V4cG9ydCBjb25zdCBNRVNTQUdFX1RZUEUgPSB7CisgIFNVQ0NFU1M6ICdTdWNj ZXNzJywKKyAgRVJST1I6ICdFcnJvcicsCisgIElORk86ICdJbmZvJywKKyAgQ0xPU0U6ICdDbG9z ZScsCit9OworCisvKiBJY29uIGJhc2VkIG9uIE1FU1NBR0VfVFlQRSAqLworZnVuY3Rpb24gRm9y bUljb24oe3R5cGUsIGNsb3NlPWZhbHNlLCAuLi5wcm9wc30pIHsKKyAgbGV0IFRoZUljb24gPSBu dWxsOworICBpZihjbG9zZSkgeworICAgIFRoZUljb24gPSBDbG9zZUljb247CisgIH0gZWxzZSBp Zih0eXBlID09PSBNRVNTQUdFX1RZUEUuU1VDQ0VTUykgeworICAgIFRoZUljb24gPSBDaGVja0lj b247CisgIH0gZWxzZSBpZih0eXBlID09PSBNRVNTQUdFX1RZUEUuRVJST1IpIHsKKyAgICBUaGVJ Y29uID0gUmVwb3J0UHJvYmxlbUljb247CisgIH0gZWxzZSBpZih0eXBlID09PSBNRVNTQUdFX1RZ UEUuSU5GTykgeworICAgIFRoZUljb24gPSBJbmZvSWNvbjsKKyAgfQorCisgIHJldHVybiA8VGhl SWNvbiBmb250U2l6ZT0ic21hbGwiIHsuLi5wcm9wc30gLz47Cit9CitGb3JtSWNvbi5wcm9wVHlw ZXMgPSB7CisgIHR5cGU6IFByb3BUeXBlcy5vbmVPZihPYmplY3QudmFsdWVzKE1FU1NBR0VfVFlQ RSkpLAorICBjbG9zZTogUHJvcFR5cGVzLmJvb2wsCit9OworCisvKiBXcmFwcGVyIG9uIGFueSBm b3JtIGNvbXBvbmVudCB0byBhZGQgbGFiZWwsIGVycm9yIGluZGljYXRvciBhbmQgaGVscCBtZXNz YWdlICovCitleHBvcnQgZnVuY3Rpb24gRm9ybUlucHV0KHtjaGlsZHJlbiwgZXJyb3IsIGNsYXNz TmFtZSwgbGFiZWwsIGhlbHBNZXNzYWdlLCByZXF1aXJlZCwgdGVzdGNpZH0pIHsKKyAgY29uc3Qg Y2xhc3NlcyA9IHVzZVN0eWxlcygpOworICBjb25zdCBjaWQgPSB0ZXN0Y2lkIHx8IF8udW5pcXVl SWQoJ2MnKTsKKyAgY29uc3QgaGVscGlkID0gYGgke2NpZH1gOworICByZXR1cm4gKAorICAgIDxH cmlkIGNvbnRhaW5lciBzcGFjaW5nPXswfSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+CisgICAgICA8 R3JpZCBpdGVtIGxnPXszfSBtZD17M30gc209ezN9IHhzPXsxMn0+CisgICAgICAgIDxJbnB1dExh YmVsIGh0bWxGb3I9e2NpZH0gY2xhc3NOYW1lPXtjbHN4KGNsYXNzZXMuZm9ybUxhYmVsLCBlcnJv cj9jbGFzc2VzLmZvcm1MYWJlbEVycm9yIDogbnVsbCl9IHJlcXVpcmVkPXtyZXF1aXJlZH0+Cisg ICAgICAgICAge2xhYmVsfQorICAgICAgICAgIHtlcnJvciAmJiA8Rm9ybUljb24gdHlwZT17TUVT U0FHRV9UWVBFLkVSUk9SfSBzdHlsZT17e21hcmdpbkxlZnQ6ICdhdXRvJ319Lz59CisgICAgICAg IDwvSW5wdXRMYWJlbD4KKyAgICAgIDwvR3JpZD4KKyAgICAgIDxHcmlkIGl0ZW0gbGc9ezl9IG1k PXs5fSBzbT17OX0geHM9ezEyfT4KKyAgICAgICAgPEZvcm1Db250cm9sIGVycm9yPXtCb29sZWFu KGVycm9yKX0gZnVsbFdpZHRoPgorICAgICAgICAgIHtSZWFjdC5jbG9uZUVsZW1lbnQoY2hpbGRy ZW4sIHtjaWQsIGhlbHBpZH0pfQorICAgICAgICA8L0Zvcm1Db250cm9sPgorICAgICAgICA8Rm9y bUhlbHBlclRleHQgaWQ9e2hlbHBpZH0gdmFyaWFudD0ib3V0bGluZWQiPntoZWxwTWVzc2FnZX08 L0Zvcm1IZWxwZXJUZXh0PgorICAgICAgPC9HcmlkPgorICAgIDwvR3JpZD4KKyAgKTsKK30KK0Zv cm1JbnB1dC5wcm9wVHlwZXMgPSB7CisgIGNoaWxkcmVuOiBDdXN0b21Qcm9wVHlwZXMuY2hpbGRy ZW4sCisgIGVycm9yOiBQcm9wVHlwZXMuYm9vbCwKKyAgY2xhc3NOYW1lOiBDdXN0b21Qcm9wVHlw ZXMuY2xhc3NOYW1lLAorICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZywKKyAgaGVscE1lc3NhZ2U6 IFByb3BUeXBlcy5zdHJpbmcsCisgIHJlcXVpcmVkOiBQcm9wVHlwZXMuYm9vbCwKKyAgdGVzdGNp ZDogUHJvcFR5cGVzLmFueSwKK307CisKK2V4cG9ydCBmdW5jdGlvbiBJbnB1dFNRTCh7dmFsdWUs IG9wdGlvbnN9KSB7CisgIGNvbnN0IGNsYXNzZXMgPSB1c2VTdHlsZXMoKTsKKyAgcmV0dXJuICgK KyAgICA8Q29kZU1pcnJvcgorICAgICAgdmFsdWU9e3ZhbHVlfHwnJ30KKyAgICAgIG9wdGlvbnM9 e3sKKyAgICAgICAgbGluZU51bWJlcnM6IHRydWUsCisgICAgICAgIG1vZGU6ICd0ZXh0L3gtcGdz cWwnLAorICAgICAgICAuLi5vcHRpb25zLAorICAgICAgfX0KKyAgICAgIGNsYXNzTmFtZT17Y2xh c3Nlcy5zcWx9CisgICAgLz4KKyAgKTsKK30KK0lucHV0U1FMLnByb3BUeXBlcyA9IHsKKyAgdmFs dWU6IFByb3BUeXBlcy5zdHJpbmcsCisgIG9wdGlvbnM6IFByb3BUeXBlcy5vYmplY3QsCit9Owor CitleHBvcnQgZnVuY3Rpb24gRm9ybUlucHV0U1FMKHtoYXNFcnJvciwgcmVxdWlyZWQsIGxhYmVs LCBjbGFzc05hbWUsIGhlbHBNZXNzYWdlLCB0ZXN0Y2lkLCB2YWx1ZSwgY29udHJvbFByb3BzfSkg eworICByZXR1cm4gKAorICAgIDxGb3JtSW5wdXQgcmVxdWlyZWQ9e3JlcXVpcmVkfSBsYWJlbD17 bGFiZWx9IGVycm9yPXtoYXNFcnJvcn0gY2xhc3NOYW1lPXtjbGFzc05hbWV9IGhlbHBNZXNzYWdl PXtoZWxwTWVzc2FnZX0gdGVzdGNpZD17dGVzdGNpZH0+CisgICAgICA8SW5wdXRTUUwgdmFsdWU9 e3ZhbHVlfSBvcHRpb25zPXtjb250cm9sUHJvcHN9Lz4KKyAgICA8L0Zvcm1JbnB1dD4KKyAgKTsK K30KK0Zvcm1JbnB1dFNRTC5wcm9wVHlwZXMgPSB7CisgIGhhc0Vycm9yOiBQcm9wVHlwZXMuYm9v bCwKKyAgcmVxdWlyZWQ6IFByb3BUeXBlcy5ib29sLAorICBsYWJlbDogUHJvcFR5cGVzLnN0cmlu ZywKKyAgY2xhc3NOYW1lOiBDdXN0b21Qcm9wVHlwZXMuY2xhc3NOYW1lLAorICBoZWxwTWVzc2Fn ZTogUHJvcFR5cGVzLnN0cmluZywKKyAgdGVzdGNpZDogUHJvcFR5cGVzLnN0cmluZywKKyAgdmFs dWU6IFByb3BUeXBlcy5zdHJpbmcsCisgIGNvbnRyb2xQcm9wczogUHJvcFR5cGVzLm9iamVjdCwK K307CisKKworLyogVXNlIGZvcndhcmRSZWYgdG8gcGFzcyByZWYgcHJvcCB0byBPdXRsaW5lZElu cHV0ICovCitleHBvcnQgY29uc3QgSW5wdXRUZXh0ID0gZm9yd2FyZFJlZigoeworICBjaWQsIGhl bHBpZCwgcmVhZG9ubHksIGRpc2FibGVkLCBtYXhsZW5ndGg9MjU1LCB2YWx1ZSwgb25DaGFuZ2Us IGNvbnRyb2xQcm9wcywgLi4ucHJvcHN9LCByZWYpPT57CisKKyAgY29uc3QgY2xhc3NlcyA9IHVz ZVN0eWxlcygpOworCisgIHJldHVybigKKyAgICA8T3V0bGluZWRJbnB1dAorICAgICAgcmVmPXty ZWZ9CisgICAgICBjb2xvcj0icHJpbWFyeSIKKyAgICAgIGZ1bGxXaWR0aAorICAgICAgY2xhc3NO YW1lPXtjbGFzc2VzLmZvcm1JbnB1dH0KKyAgICAgIGlucHV0UHJvcHM9e3sKKyAgICAgICAgaWQ6 IGNpZCwKKyAgICAgICAgbWF4TGVuZ3RoOiBtYXhsZW5ndGgsCisgICAgICAgICdhcmlhLWRlc2Ny aWJlZGJ5JzogaGVscGlkLAorICAgICAgfX0KKyAgICAgIHJlYWRPbmx5PXtCb29sZWFuKHJlYWRv bmx5KX0KKyAgICAgIGRpc2FibGVkPXtCb29sZWFuKGRpc2FibGVkKX0KKyAgICAgIHJvd3M9ezR9 CisgICAgICBub3RjaGVkPXtmYWxzZX0KKyAgICAgIHZhbHVlPXt2YWx1ZSB8fCAnJ30KKyAgICAg IG9uQ2hhbmdlPXtvbkNoYW5nZX0KKyAgICAgIHsuLi5jb250cm9sUHJvcHN9CisgICAgICB7Li4u cHJvcHN9CisgICAgLz4KKyAgKTsKK30pOworSW5wdXRUZXh0LmRpc3BsYXlOYW1lID0gJ0lucHV0 VGV4dCc7CitJbnB1dFRleHQucHJvcFR5cGVzID0geworICBjaWQ6IFByb3BUeXBlcy5zdHJpbmcs CisgIGhlbHBpZDogUHJvcFR5cGVzLnN0cmluZywKKyAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcs CisgIHJlYWRvbmx5OiBQcm9wVHlwZXMuYm9vbCwKKyAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29s LAorICBtYXhsZW5ndGg6IFByb3BUeXBlcy5udW1iZXIsCisgIHZhbHVlOiBQcm9wVHlwZXMub25l T2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSksCisgIG9uQ2hhbmdl OiBQcm9wVHlwZXMuZnVuYywKKyAgY29udHJvbFByb3BzOiBQcm9wVHlwZXMub2JqZWN0LAorfTsK KworZXhwb3J0IGZ1bmN0aW9uIEZvcm1JbnB1dFRleHQoe2hhc0Vycm9yLCByZXF1aXJlZCwgbGFi ZWwsIGNsYXNzTmFtZSwgaGVscE1lc3NhZ2UsIHRlc3RjaWQsIC4uLnByb3BzfSkgeworICByZXR1 cm4gKAorICAgIDxGb3JtSW5wdXQgcmVxdWlyZWQ9e3JlcXVpcmVkfSBsYWJlbD17bGFiZWx9IGVy cm9yPXtoYXNFcnJvcn0gY2xhc3NOYW1lPXtjbGFzc05hbWV9IGhlbHBNZXNzYWdlPXtoZWxwTWVz c2FnZX0gdGVzdGNpZD17dGVzdGNpZH0+CisgICAgICA8SW5wdXRUZXh0IGxhYmVsPXtsYWJlbH0g ey4uLnByb3BzfS8+CisgICAgPC9Gb3JtSW5wdXQ+CisgICk7Cit9CitGb3JtSW5wdXRUZXh0LnBy b3BUeXBlcyA9IHsKKyAgaGFzRXJyb3I6IFByb3BUeXBlcy5ib29sLAorICByZXF1aXJlZDogUHJv cFR5cGVzLmJvb2wsCisgIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLAorICBjbGFzc05hbWU6IEN1 c3RvbVByb3BUeXBlcy5jbGFzc05hbWUsCisgIGhlbHBNZXNzYWdlOiBQcm9wVHlwZXMuc3RyaW5n LAorICB0ZXN0Y2lkOiBQcm9wVHlwZXMuc3RyaW5nLAorfTsKKworLyogVXNpbmcgdGhlIGV4aXN0 aW5nIGZpbGUgZGlhbG9nIGZ1bmN0aW9ucyB1c2luZyBzaG93RmlsZURpYWxvZyAqLworZXhwb3J0 IGZ1bmN0aW9uIElucHV0RmlsZVNlbGVjdCh7Y29udHJvbFByb3BzLCBvbkNoYW5nZSwgZGlzYWJs ZWQsIHJlYWRvbmx5LCAuLi5wcm9wc30pIHsKKyAgY29uc3QgaW5wUmVmID0gdXNlUmVmKCk7Cisg IGNvbnN0IG9uRmlsZVNlbGVjdCA9ICh2YWx1ZSk9PnsKKyAgICBvbkNoYW5nZSAmJiBvbkNoYW5n ZShkZWNvZGVVUkkodmFsdWUpKTsKKyAgICBpbnBSZWYuY3VycmVudC5mb2N1cygpOworICB9Owor ICByZXR1cm4gKAorICAgIDxJbnB1dFRleHQgcmVmPXtpbnBSZWZ9IGRpc2FibGVkPXtkaXNhYmxl ZH0gcmVhZG9ubHk9e3JlYWRvbmx5fSB7Li4ucHJvcHN9IGVuZEFkb3JubWVudD17CisgICAgICA8 SWNvbkJ1dHRvbiBvbkNsaWNrPXsoKT0+c2hvd0ZpbGVEaWFsb2coY29udHJvbFByb3BzLCBvbkZp bGVTZWxlY3QpfQorICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR8fHJlYWRvbmx5fSBhcmlhLWxh YmVsPXtnZXR0ZXh0KCdTZWxlY3QgYSBmaWxlJyl9PjxGb2xkZXJPcGVuUm91bmRlZEljb24gLz48 L0ljb25CdXR0b24+CisgICAgfSAvPgorICApOworfQorSW5wdXRGaWxlU2VsZWN0LnByb3BUeXBl cyA9IHsKKyAgY29udHJvbFByb3BzOiBQcm9wVHlwZXMub2JqZWN0LAorICBvbkNoYW5nZTogUHJv cFR5cGVzLmZ1bmMsCisgIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCwKKyAgcmVhZG9ubHk6IFBy b3BUeXBlcy5ib29sLAorfTsKKworZXhwb3J0IGZ1bmN0aW9uIEZvcm1JbnB1dEZpbGVTZWxlY3Qo eworICBoYXNFcnJvciwgcmVxdWlyZWQsIGxhYmVsLCBjbGFzc05hbWUsIGhlbHBNZXNzYWdlLCB0 ZXN0Y2lkLCAuLi5wcm9wc30pIHsKKworICByZXR1cm4gKAorICAgIDxGb3JtSW5wdXQgcmVxdWly ZWQ9e3JlcXVpcmVkfSBsYWJlbD17bGFiZWx9IGVycm9yPXtoYXNFcnJvcn0gY2xhc3NOYW1lPXtj bGFzc05hbWV9IGhlbHBNZXNzYWdlPXtoZWxwTWVzc2FnZX0gdGVzdGNpZD17dGVzdGNpZH0+Cisg ICAgICA8SW5wdXRGaWxlU2VsZWN0IHJlcXVpcmVkPXtyZXF1aXJlZH0gbGFiZWw9e2xhYmVsfSB7 Li4ucHJvcHN9Lz4KKyAgICA8L0Zvcm1JbnB1dD4KKyAgKTsKK30KK0Zvcm1JbnB1dEZpbGVTZWxl Y3QucHJvcFR5cGVzID0geworICBoYXNFcnJvcjogUHJvcFR5cGVzLmJvb2wsCisgIHJlcXVpcmVk OiBQcm9wVHlwZXMuYm9vbCwKKyAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsCisgIGNsYXNzTmFt ZTogQ3VzdG9tUHJvcFR5cGVzLmNsYXNzTmFtZSwKKyAgaGVscE1lc3NhZ2U6IFByb3BUeXBlcy5z dHJpbmcsCisgIHRlc3RjaWQ6IFByb3BUeXBlcy5zdHJpbmcsCit9OworCitleHBvcnQgZnVuY3Rp b24gSW5wdXRTd2l0Y2goe2NpZCwgaGVscGlkLCB2YWx1ZSwgb25DaGFuZ2UsIHJlYWRvbmx5LCBj b250cm9sUHJvcHMsIC4uLnByb3BzfSkgeworICByZXR1cm4gKAorICAgIDxTd2l0Y2ggY29sb3I9 InByaW1hcnkiCisgICAgICBjaGVja2VkPXtCb29sZWFuKHZhbHVlKX0KKyAgICAgIG9uQ2hhbmdl PXsKKyAgICAgICAgcmVhZG9ubHkgPyAoKT0+e30gOiBvbkNoYW5nZQorICAgICAgfQorICAgICAg aWQ9e2NpZH0KKyAgICAgIGlucHV0UHJvcHM9e3sKKyAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnkn OiBoZWxwaWQsCisgICAgICB9fQorICAgICAgey4uLmNvbnRyb2xQcm9wc30KKyAgICAgIHsuLi5w cm9wc30KKyAgICAvPgorICApOworfQorSW5wdXRTd2l0Y2gucHJvcFR5cGVzID0geworICBjaWQ6 IFByb3BUeXBlcy5zdHJpbmcsCisgIGhlbHBpZDogUHJvcFR5cGVzLnN0cmluZywKKyAgdmFsdWU6 IFByb3BUeXBlcy5hbnksCisgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYywKKyAgcmVhZG9ubHk6 IFByb3BUeXBlcy5ib29sLAorICBjb250cm9sUHJvcHM6IFByb3BUeXBlcy5vYmplY3QsCit9Owor CitleHBvcnQgZnVuY3Rpb24gRm9ybUlucHV0U3dpdGNoKHtoYXNFcnJvciwgcmVxdWlyZWQsIGxh YmVsLCBjbGFzc05hbWUsIGhlbHBNZXNzYWdlLCB0ZXN0Y2lkLCAuLi5wcm9wc30pIHsKKworICBy ZXR1cm4gKAorICAgIDxGb3JtSW5wdXQgcmVxdWlyZWQ9e3JlcXVpcmVkfSBsYWJlbD17bGFiZWx9 IGVycm9yPXtoYXNFcnJvcn0gY2xhc3NOYW1lPXtjbGFzc05hbWV9IGhlbHBNZXNzYWdlPXtoZWxw TWVzc2FnZX0gdGVzdGNpZD17dGVzdGNpZH0+CisgICAgICA8SW5wdXRTd2l0Y2ggey4uLnByb3Bz fS8+CisgICAgPC9Gb3JtSW5wdXQ+CisgICk7Cit9CitGb3JtSW5wdXRTd2l0Y2gucHJvcFR5cGVz ID0geworICBoYXNFcnJvcjogUHJvcFR5cGVzLmJvb2wsCisgIHJlcXVpcmVkOiBQcm9wVHlwZXMu Ym9vbCwKKyAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsCisgIGNsYXNzTmFtZTogQ3VzdG9tUHJv cFR5cGVzLmNsYXNzTmFtZSwKKyAgaGVscE1lc3NhZ2U6IFByb3BUeXBlcy5zdHJpbmcsCisgIHRl c3RjaWQ6IFByb3BUeXBlcy5zdHJpbmcsCit9OworCitleHBvcnQgZnVuY3Rpb24gSW5wdXRDaGVj a2JveCh7Y2lkLCBoZWxwaWQsIHZhbHVlLCBvbkNoYW5nZSwgY29udHJvbFByb3BzLCByZWFkb25s eSwgLi4ucHJvcHN9KSB7CisgIGNvbnRyb2xQcm9wcyA9IGNvbnRyb2xQcm9wcyB8fCB7fTsKKyAg cmV0dXJuICgKKyAgICA8Rm9ybUNvbnRyb2xMYWJlbAorICAgICAgY29udHJvbD17CisgICAgICAg IDxDaGVja2JveAorICAgICAgICAgIGlkPXtjaWR9CisgICAgICAgICAgY2hlY2tlZD17Qm9vbGVh bih2YWx1ZSl9CisgICAgICAgICAgb25DaGFuZ2U9e3JlYWRvbmx5ID8gKCk9Pnt9IDogb25DaGFu Z2V9CisgICAgICAgICAgY29sb3I9InByaW1hcnkiCisgICAgICAgICAgaW5wdXRQcm9wcz17ewor ICAgICAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiBoZWxwaWQsCisgICAgICAgICAgfX0KKyAg ICAgICAgICB7Li4ucHJvcHN9CisgICAgICAgIC8+CisgICAgICB9CisgICAgICBsYWJlbD17Y29u dHJvbFByb3BzLmxhYmVsfQorICAgIC8+CisKKyAgKTsKK30KK0lucHV0Q2hlY2tib3gucHJvcFR5 cGVzID0geworICBjaWQ6IFByb3BUeXBlcy5zdHJpbmcsCisgIGhlbHBpZDogUHJvcFR5cGVzLnN0 cmluZywKKyAgdmFsdWU6IFByb3BUeXBlcy5ib29sLAorICBjb250cm9sUHJvcHM6IFByb3BUeXBl cy5vYmplY3QsCisgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYywKKyAgcmVhZG9ubHk6IFByb3BU eXBlcy5ib29sLAorfTsKKworZXhwb3J0IGZ1bmN0aW9uIEZvcm1JbnB1dENoZWNrYm94KHtoYXNF cnJvciwgcmVxdWlyZWQsIGxhYmVsLAorICBjbGFzc05hbWUsIGhlbHBNZXNzYWdlLCB0ZXN0Y2lk LCAuLi5wcm9wc30pIHsKKworICByZXR1cm4gKAorICAgIDxGb3JtSW5wdXQgcmVxdWlyZWQ9e3Jl cXVpcmVkfSBsYWJlbD17bGFiZWx9IGVycm9yPXtoYXNFcnJvcn0gY2xhc3NOYW1lPXtjbGFzc05h bWV9IGhlbHBNZXNzYWdlPXtoZWxwTWVzc2FnZX0gdGVzdGNpZD17dGVzdGNpZH0+CisgICAgICA8 SW5wdXRDaGVja2JveCB7Li4ucHJvcHN9Lz4KKyAgICA8L0Zvcm1JbnB1dD4KKyAgKTsKK30KK0Zv cm1JbnB1dENoZWNrYm94LnByb3BUeXBlcyA9IHsKKyAgaGFzRXJyb3I6IFByb3BUeXBlcy5ib29s LAorICByZXF1aXJlZDogUHJvcFR5cGVzLmJvb2wsCisgIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5n LAorICBjbGFzc05hbWU6IEN1c3RvbVByb3BUeXBlcy5jbGFzc05hbWUsCisgIGhlbHBNZXNzYWdl OiBQcm9wVHlwZXMuc3RyaW5nLAorICB0ZXN0Y2lkOiBQcm9wVHlwZXMuc3RyaW5nLAorfTsKKwor CitleHBvcnQgZnVuY3Rpb24gSW5wdXRUb2dnbGUoe2NpZCwgdmFsdWUsIG9uQ2hhbmdlLCBvcHRp b25zLCBkaXNhYmxlZCwgcmVhZG9ubHksIC4uLnByb3BzfSkgeworICByZXR1cm4gKAorICAgIDxU b2dnbGVCdXR0b25Hcm91cAorICAgICAgaWQ9e2NpZH0KKyAgICAgIHZhbHVlPXt2YWx1ZX0KKyAg ICAgIGV4Y2x1c2l2ZQorICAgICAgb25DaGFuZ2U9eyhlLCB2YWwpPT57dmFsIT09bnVsbCAmJiBv bkNoYW5nZSh2YWwpO319CisgICAgICB7Li4ucHJvcHN9CisgICAgPgorICAgICAgeworICAgICAg ICAob3B0aW9uc3x8W10pLm1hcCgob3B0aW9uKT0+eworICAgICAgICAgIGNvbnN0IGlzU2VsZWN0 ZWQgPSBvcHRpb24udmFsdWUgPT09IHZhbHVlOworICAgICAgICAgIGNvbnN0IGlzRGlzYWJsZWQg PSBkaXNhYmxlZCB8fCAocmVhZG9ubHkgJiYgaXNTZWxlY3RlZCk7CisgICAgICAgICAgcmV0dXJu ICgKKyAgICAgICAgICAgIDxUb2dnbGVCdXR0b24ga2V5PXtvcHRpb24ubGFiZWx9IHZhbHVlPXtv cHRpb24udmFsdWV9IGNvbXBvbmVudD17aXNTZWxlY3RlZCA/IFByaW1hcnlCdXR0b24gOiBEZWZh dWx0QnV0dG9ufQorICAgICAgICAgICAgICBkaXNhYmxlZD17aXNEaXNhYmxlZH0gYXJpYS1sYWJl bD17b3B0aW9uLmxhYmVsfT4KKyAgICAgICAgICAgICAgPENoZWNrUm91bmRlZEljb24gc3R5bGU9 e3t2aXNpYmlsaXR5OiBpc1NlbGVjdGVkID8gJ3Zpc2libGUnOiAnaGlkZGVuJ319Lz4mbmJzcDt7 b3B0aW9uLmxhYmVsfQorICAgICAgICAgICAgPC9Ub2dnbGVCdXR0b24+CisgICAgICAgICAgKTsK KyAgICAgICAgfSkKKyAgICAgIH0KKyAgICA8L1RvZ2dsZUJ1dHRvbkdyb3VwPgorICApOworfQor SW5wdXRUb2dnbGUucHJvcFR5cGVzID0geworICBjaWQ6IFByb3BUeXBlcy5zdHJpbmcsCisgIHZh bHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVt YmVyLCBQcm9wVHlwZXMuYm9vbF0pLAorICBvcHRpb25zOiBQcm9wVHlwZXMuYXJyYXksCisgIGNv bnRyb2xQcm9wczogUHJvcFR5cGVzLm9iamVjdCwKKyAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5j LAorICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsCisgIHJlYWRvbmx5OiBQcm9wVHlwZXMuYm9v bCwKK307CisKK2V4cG9ydCBmdW5jdGlvbiBGb3JtSW5wdXRUb2dnbGUoe2hhc0Vycm9yLCByZXF1 aXJlZCwgbGFiZWwsCisgIGNsYXNzTmFtZSwgaGVscE1lc3NhZ2UsIHRlc3RjaWQsIC4uLnByb3Bz fSkgeworCisgIHJldHVybiAoCisgICAgPEZvcm1JbnB1dCByZXF1aXJlZD17cmVxdWlyZWR9IGxh YmVsPXtsYWJlbH0gZXJyb3I9e2hhc0Vycm9yfSBjbGFzc05hbWU9e2NsYXNzTmFtZX0gaGVscE1l c3NhZ2U9e2hlbHBNZXNzYWdlfSB0ZXN0Y2lkPXt0ZXN0Y2lkfT4KKyAgICAgIDxJbnB1dFRvZ2ds ZSB7Li4ucHJvcHN9Lz4KKyAgICA8L0Zvcm1JbnB1dD4KKyAgKTsKK30KK0Zvcm1JbnB1dFRvZ2ds ZS5wcm9wVHlwZXMgPSB7CisgIGhhc0Vycm9yOiBQcm9wVHlwZXMuYm9vbCwKKyAgcmVxdWlyZWQ6 IFByb3BUeXBlcy5ib29sLAorICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZywKKyAgY2xhc3NOYW1l OiBDdXN0b21Qcm9wVHlwZXMuY2xhc3NOYW1lLAorICBoZWxwTWVzc2FnZTogUHJvcFR5cGVzLnN0 cmluZywKKyAgdGVzdGNpZDogUHJvcFR5cGVzLnN0cmluZywKK307CisKKy8qIHJlYWN0LXNlbGVj dCBwYWNrYWdlIGlzIHVzZWQgZm9yIHNlbGVjdCBpbnB1dAorICogQ3VzdG9taXppbmcgdGhlIHNl bGVjdCBzdHlsZXMgdG8gZml0IGV4aXN0aW5nIHRoZW1lCisgKi8KK2NvbnN0IGN1c3RvbVJlYWN0 U2VsZWN0U3R5bGVzID0gKHRoZW1lLCByZWFkb25seSk9Pih7CisgIGlucHV0OiAocHJvdmlkZWQp ID0+IHsKKyAgICByZXR1cm4gey4uLnByb3ZpZGVkLCBwYWRkaW5nOiAwLCBtYXJnaW46IDAsIGNv bG9yOiAnaW5oZXJpdCd9OworICB9LAorICBzaW5nbGVWYWx1ZTogKHByb3ZpZGVkKSA9PiB7Cisg ICAgcmV0dXJuIHsKKyAgICAgIC4uLnByb3ZpZGVkLAorICAgICAgY29sb3I6ICdpbmhlcml0JywK KyAgICB9OworICB9LAorICBjb250cm9sOiAocHJvdmlkZWQsIHN0YXRlKSA9PiAoeworICAgIC4u LnByb3ZpZGVkLAorICAgIG1pbkhlaWdodDogJzAnLAorICAgIGJhY2tncm91bmRDb2xvcjogcmVh ZG9ubHkgPyB0aGVtZS5vdGhlclZhcnMuaW5wdXREaXNhYmxlZEJnIDogdGhlbWUucGFsZXR0ZS5i YWNrZ3JvdW5kLmRlZmF1bHQsCisgICAgYm9yZGVyQ29sb3I6IHRoZW1lLm90aGVyVmFycy5pbnB1 dEJvcmRlckNvbG9yLAorICAgIC4uLihzdGF0ZS5pc0ZvY3VzZWQgPyB7CisgICAgICBib3JkZXJD b2xvcjogdGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW4sCisgICAgICBib3hTaGFkb3c6ICdpbnNl dCAwIDAgMCAxcHggJyt0aGVtZS5wYWxldHRlLnByaW1hcnkubWFpbiwKKyAgICAgICcmOmhvdmVy JzogeworICAgICAgICBib3JkZXJDb2xvcjogdGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW4sCisg ICAgICB9CisgICAgfSA6IHt9KSwKKyAgfSksCisgIGRyb3Bkb3duSW5kaWNhdG9yOiAocHJvdmlk ZWQpPT4oeworICAgIC4uLnByb3ZpZGVkLAorICAgIHBhZGRpbmc6ICcwcmVtIDAuMjVyZW0nLAor ICB9KSwKKyAgaW5kaWNhdG9yc0NvbnRhaW5lcjogKHByb3ZpZGVkKT0+KHsKKyAgICAuLi5wcm92 aWRlZCwKKyAgICAuLi4ocmVhZG9ubHkgPyB7ZGlzcGxheTogJ25vbmUnfSA6IHt9KQorICB9KSwK KyAgY2xlYXJJbmRpY2F0b3I6IChwcm92aWRlZCk9Pih7CisgICAgLi4ucHJvdmlkZWQsCisgICAg cGFkZGluZzogJzByZW0gMC4yNXJlbScsCisgIH0pLAorICB2YWx1ZUNvbnRhaW5lcjogKHByb3Zp ZGVkKT0+KHsKKyAgICAuLi5wcm92aWRlZCwKKyAgICBwYWRkaW5nOiB0aGVtZS5vdGhlclZhcnMu cmVhY3RTZWxlY3QucGFkZGluZywKKyAgfSksCisgIG1lbnU6IChwcm92aWRlZCk9Pih7CisgICAg Li4ucHJvdmlkZWQsCisgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmJhY2tncm91 bmQuZGVmYXVsdCwKKyAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS50ZXh0LnByaW1hcnksCisgICAg Ym94U2hhZG93OiAnbm9uZScsCisgICAgYm9yZGVyOiAnMXB4IHNvbGlkICcgKyB0aGVtZS5vdGhl clZhcnMuaW5wdXRCb3JkZXJDb2xvciwKKyAgfSksCisgIG1lbnVQb3J0YWw6IChwcm92aWRlZCk9 Pih7CisgICAgLi4ucHJvdmlkZWQsIHpJbmRleDogOTk5OSwKKyAgICBiYWNrZ3JvdW5kQ29sb3I6 ICdpbmhlcml0JywKKyAgICBjb2xvcjogJ2luaGVyaXQnLAorICB9KSwKKyAgb3B0aW9uOiAocHJv dmlkZWQsIHN0YXRlKT0+KHsKKyAgICAuLi5wcm92aWRlZCwKKyAgICBwYWRkaW5nOiAnMC41cmVt JywKKyAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0YXRlLmlzRm9jdXNlZCA/IHRoZW1lLnBhbGV0dGUu Z3JleVsyMDBdIDoKKyAgICAgIChzdGF0ZS5pc1NlbGVjdGVkID8gdGhlbWUucGFsZXR0ZS5wcmlt YXJ5Lm1haW4gOiAnaW5oZXJpdCcpLAorICB9KSwKKyAgbXVsdGlWYWx1ZTogKHByb3ZpZGVkKT0+ KHsKKyAgICAuLi5wcm92aWRlZCwKKyAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUu Z3JleVs0MDBdLAorICB9KSwKKyAgbXVsdGlWYWx1ZUxhYmVsOiAocHJvdmlkZWQpPT4oeworICAg IC4uLnByb3ZpZGVkLAorICAgIGZvbnRTaXplOiAnMWVtJywKKyAgICB6SW5kZXg6IDk5OTksCisg ICAgY29sb3I6IHRoZW1lLnBhbGV0dGUudGV4dC5wcmltYXJ5CisgIH0pLAorICBtdWx0aVZhbHVl UmVtb3ZlOiAocHJvdmlkZWQpPT4oeworICAgIC4uLnByb3ZpZGVkLAorICAgICcmOmhvdmVyJzog eworICAgICAgYmFja2dyb3VuZENvbG9yOiAndW5zZXQnLAorICAgICAgY29sb3I6IHRoZW1lLnBh bGV0dGUuZXJyb3IubWFpbiwKKyAgICB9LAorICAgIC4uLihyZWFkb25seSA/IHtkaXNwbGF5OiAn bm9uZSd9IDoge30pCisgIH0pLAorfSk7CisKK2Z1bmN0aW9uIE9wdGlvblZpZXcoe2ltYWdlLCBs YWJlbH0pIHsKKyAgY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlcygpOworICByZXR1cm4gKAorICAg IDw+CisgICAgICB7aW1hZ2UgJiYgPHNwYW4gY2xhc3NOYW1lPXtjbHN4KGNsYXNzZXMub3B0aW9u SWNvbiwgaW1hZ2UpfT48L3NwYW4+fQorICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj4KKyAgICA8 Lz4KKyAgKTsKK30KK09wdGlvblZpZXcucHJvcFR5cGVzID0geworICBpbWFnZTogUHJvcFR5cGVz LnN0cmluZywKKyAgbGFiZWw6IFByb3BUeXBlcy5zdHJpbmcsCit9OworCitmdW5jdGlvbiBDdXN0 b21TZWxlY3RPcHRpb24ocHJvcHMpIHsKKyAgcmV0dXJuICgKKyAgICA8UlNDb21wb25lbnRzLk9w dGlvbiB7Li4ucHJvcHN9PgorICAgICAgPE9wdGlvblZpZXcgaW1hZ2U9e3Byb3BzLmRhdGEuaW1h Z2V9IGxhYmVsPXtwcm9wcy5kYXRhLmxhYmVsfSAvPgorICAgIDwvUlNDb21wb25lbnRzLk9wdGlv bj4KKyAgKTsKK30KK0N1c3RvbVNlbGVjdE9wdGlvbi5wcm9wVHlwZXMgPSB7CisgIGRhdGE6IFBy b3BUeXBlcy5vYmplY3QsCit9OworCitmdW5jdGlvbiBDdXN0b21TZWxlY3RTaW5nbGVWYWx1ZShw cm9wcykgeworICByZXR1cm4gKAorICAgIDxSU0NvbXBvbmVudHMuU2luZ2xlVmFsdWUgey4uLnBy b3BzfT4KKyAgICAgIDxPcHRpb25WaWV3IGltYWdlPXtwcm9wcy5kYXRhLmltYWdlfSBsYWJlbD17 cHJvcHMuZGF0YS5sYWJlbH0gLz4KKyAgICA8L1JTQ29tcG9uZW50cy5TaW5nbGVWYWx1ZT4KKyAg KTsKK30KK0N1c3RvbVNlbGVjdFNpbmdsZVZhbHVlLnByb3BUeXBlcyA9IHsKKyAgZGF0YTogUHJv cFR5cGVzLm9iamVjdCwKK307CisKK2Z1bmN0aW9uIGdldFJlYWxWYWx1ZShvcHRpb25zLCB2YWx1 ZSwgY3JlYXRhYmxlKSB7CisgIGxldCByZWFsVmFsdWUgPSBudWxsOworICBpZihfLmlzQXJyYXko dmFsdWUpKSB7CisgICAgaWYoY3JlYXRhYmxlKSB7CisgICAgICByZWFsVmFsdWUgPSB2YWx1ZS5t YXAoKHZhbCk9Pih7bGFiZWw6dmFsLCB2YWx1ZTogdmFsfSkpOworICAgIH0gZWxzZSB7CisgICAg ICByZWFsVmFsdWUgPSB2YWx1ZS5tYXAoKHZhbCk9PihfLmZpbmQob3B0aW9ucywgKG9wdGlvbik9 Pm9wdGlvbi52YWx1ZT09dmFsKSkpOworICAgIH0KKyAgfSBlbHNlIHsKKyAgICByZWFsVmFsdWUg PSBfLmZpbmQob3B0aW9ucywgKG9wdGlvbik9Pm9wdGlvbi52YWx1ZT09dmFsdWUpIHx8IG51bGw7 CisgIH0KKyAgcmV0dXJuIHJlYWxWYWx1ZTsKK30KKworZXhwb3J0IGZ1bmN0aW9uIElucHV0U2Vs ZWN0KHsKKyAgY2lkLCBvbkNoYW5nZSwgb3B0aW9ucywgcmVhZG9ubHk9ZmFsc2UsIHZhbHVlLCBj b250cm9sUHJvcHM9e30sIG9wdGlvbnNMb2FkZWQsIGRpc2FibGVkLCAuLi5wcm9wc30pIHsKKyAg Y29uc3QgW1tmaW5hbE9wdGlvbnMsIGlzTG9hZGluZ10sIHNldEZpbmFsT3B0aW9uc10gPSB1c2VT dGF0ZShbW10sIHRydWVdKTsKKyAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpOworCisgIHVzZUVm ZmVjdCgoKT0+eworICAgIGxldCBvcHRQcm9taXNlID0gb3B0aW9ucywgdW1vdW50ZWQ9ZmFsc2U7 CisgICAgaWYodHlwZW9mIG9wdGlvbnMgPT09ICdmdW5jdGlvbicpIHsKKyAgICAgIG9wdFByb21p c2UgPSBvcHRpb25zKCk7CisgICAgfQorICAgIFByb21pc2UucmVzb2x2ZShvcHRQcm9taXNlKQor ICAgICAgLnRoZW4oKHJlcyk9PnsKKyAgICAgICAgLyogSWYgY29tcG9uZW50IHVubW91bnRlZCwg ZG9udCB1cGRhdGUgc3RhdGUgKi8KKyAgICAgICAgaWYoIXVtb3VudGVkKSB7CisgICAgICAgICAg b3B0aW9uc0xvYWRlZCAmJiBvcHRpb25zTG9hZGVkKHJlcywgdmFsdWUpOworICAgICAgICAgIHNl dEZpbmFsT3B0aW9ucyhbcmVzIHx8IFtdLCBmYWxzZV0pOworICAgICAgICB9CisgICAgICB9KTsK KyAgICByZXR1cm4gKCk9PnVtb3VudGVkPXRydWU7CisgIH0sIFtdKTsKKworICBjb25zdCBvbkNo YW5nZU9wdGlvbiA9IHVzZUNhbGxiYWNrKChzZWxlY3RWYWwsIGFjdGlvbik9PnsKKyAgICBpZihf LmlzQXJyYXkoc2VsZWN0VmFsKSkgeworICAgICAgb25DaGFuZ2UgJiYgb25DaGFuZ2Uoc2VsZWN0 VmFsLm1hcCgob3B0aW9uKT0+b3B0aW9uLnZhbHVlLCBhY3Rpb24ubmFtZSkpOworICAgIH0gZWxz ZSB7CisgICAgICBvbkNoYW5nZSAmJiBvbkNoYW5nZShzZWxlY3RWYWwgPyBzZWxlY3RWYWwudmFs dWUgOiBudWxsLCBhY3Rpb24ubmFtZSk7CisgICAgfQorICB9LCBbb25DaGFuZ2VdKTsKKworICBj b25zdCByZWFsVmFsdWUgPSBnZXRSZWFsVmFsdWUoZmluYWxPcHRpb25zLCB2YWx1ZSwgY29udHJv bFByb3BzLmNyZWF0YWJsZSk7CisgIGNvbnN0IG90aGVyUHJvcHMgPSB7CisgICAgaXNTZWFyY2hh YmxlOiAhcmVhZG9ubHksCisgICAgaXNDbGVhcmFibGU6ICFyZWFkb25seSAmJiAoIV8uaXNVbmRl ZmluZWQoY29udHJvbFByb3BzLmFsbG93Q2xlYXIpID8gY29udHJvbFByb3BzLmFsbG93Q2xlYXIg OiB0cnVlKSwKKyAgICBpc0Rpc2FibGVkOiBCb29sZWFuKGRpc2FibGVkKSwKKyAgfTsKKworICBj b25zdCBzdHlsZXMgPSBjdXN0b21SZWFjdFNlbGVjdFN0eWxlcyh0aGVtZSwgcmVhZG9ubHkgfHwg ZGlzYWJsZWQpOworCisgIGNvbnN0IGNvbW1vblByb3BzID0geworICAgIGNvbXBvbmVudHM6IHsK KyAgICAgIE9wdGlvbjogQ3VzdG9tU2VsZWN0T3B0aW9uLAorICAgICAgU2luZ2xlVmFsdWU6IEN1 c3RvbVNlbGVjdFNpbmdsZVZhbHVlLAorICAgIH0sCisgICAgaXNNdWx0aTogQm9vbGVhbihjb250 cm9sUHJvcHMubXVsdGlwbGUpLAorICAgIG9wZW5NZW51T25DbGljazogIXJlYWRvbmx5LAorICAg IG9uQ2hhbmdlOiBvbkNoYW5nZU9wdGlvbiwKKyAgICBpc0xvYWRpbmc6IGlzTG9hZGluZywKKyAg ICBvcHRpb25zOiBmaW5hbE9wdGlvbnMsCisgICAgdmFsdWU6IHJlYWxWYWx1ZSwKKyAgICBtZW51 UG9ydGFsVGFyZ2V0OiBkb2N1bWVudC5ib2R5LAorICAgIHN0eWxlczogc3R5bGVzLAorICAgIGlu cHV0SWQ6IGNpZCwKKyAgICAuLi5vdGhlclByb3BzLAorICAgIC4uLnByb3BzCisgIH07CisgIGlm KCFjb250cm9sUHJvcHMuY3JlYXRhYmxlKSB7CisgICAgcmV0dXJuICgKKyAgICAgIDxTZWxlY3Qg ey4uLmNvbW1vblByb3BzfS8+CisgICAgKTsKKyAgfSBlbHNlIHsKKyAgICByZXR1cm4gKAorICAg ICAgPENyZWF0YWJsZVNlbGVjdCB7Li4uY29tbW9uUHJvcHN9Lz4KKyAgICApOworICB9Cit9CitJ bnB1dFNlbGVjdC5wcm9wVHlwZXMgPSB7CisgIGNpZDogUHJvcFR5cGVzLnN0cmluZywKKyAgdmFs dWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1i ZXIsIFByb3BUeXBlcy5hcnJheV0pLAorICBvcHRpb25zOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQ cm9wVHlwZXMuYXJyYXksIFByb3BUeXBlcy5pbnN0YW5jZU9mKFByb21pc2UpLCBQcm9wVHlwZXMu ZnVuY10pLAorICBjb250cm9sUHJvcHM6IFByb3BUeXBlcy5vYmplY3QsCisgIG9wdGlvbnNMb2Fk ZWQ6IFByb3BUeXBlcy5mdW5jLAorICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsCisgIGRpc2Fi bGVkOiBQcm9wVHlwZXMuYm9vbCwKKyAgcmVhZG9ubHk6IFByb3BUeXBlcy5ib29sLAorfTsKKwor CitleHBvcnQgZnVuY3Rpb24gRm9ybUlucHV0U2VsZWN0KHsKKyAgaGFzRXJyb3IsIHJlcXVpcmVk LCBjbGFzc05hbWUsIGxhYmVsLCBoZWxwTWVzc2FnZSwgdGVzdGNpZCwgLi4ucHJvcHN9KSB7CisK KyAgcmV0dXJuICgKKyAgICA8Rm9ybUlucHV0IHJlcXVpcmVkPXtyZXF1aXJlZH0gbGFiZWw9e2xh YmVsfSBlcnJvcj17aGFzRXJyb3J9IGNsYXNzTmFtZT17Y2xhc3NOYW1lfSBoZWxwTWVzc2FnZT17 aGVscE1lc3NhZ2V9IHRlc3RjaWQ9e3Rlc3RjaWR9PgorICAgICAgPElucHV0U2VsZWN0IHsuLi5w cm9wc30vPgorICAgIDwvRm9ybUlucHV0PgorICApOworfQorRm9ybUlucHV0U2VsZWN0LnByb3BU eXBlcyA9IHsKKyAgaGFzRXJyb3I6IFByb3BUeXBlcy5ib29sLAorICByZXF1aXJlZDogUHJvcFR5 cGVzLmJvb2wsCisgIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLAorICBjbGFzc05hbWU6IEN1c3Rv bVByb3BUeXBlcy5jbGFzc05hbWUsCisgIGhlbHBNZXNzYWdlOiBQcm9wVHlwZXMuc3RyaW5nLAor ICB0ZXN0Y2lkOiBQcm9wVHlwZXMuc3RyaW5nLAorfTsKKworLyogUmVhY3Qgd3JhcHBlciBvbiBj b2xvciBwaWNrciAqLworZXhwb3J0IGZ1bmN0aW9uIElucHV0Q29sb3Ioe3ZhbHVlLCBjb250cm9s UHJvcHMsIGRpc2FibGVkLCBvbkNoYW5nZSwgY3Vyck9ian0pIHsKKyAgY29uc3QgcGlja3JPcHRp b25zID0geworICAgIHNob3dQYWxldHRlOiB0cnVlLAorICAgIGFsbG93RW1wdHk6IHRydWUsCisg ICAgY29sb3JGb3JtYXQ6ICdIRVgnLAorICAgIGRlZmF1bHRDb2xvcjogbnVsbCwKKyAgICBwb3Np dGlvbjogJ3JpZ2h0LW1pZGRsZScsCisgICAgY2xlYXJUZXh0OiBnZXR0ZXh0KCdObyBjb2xvcicp LAorICAgIC4uLmNvbnRyb2xQcm9wcywKKyAgICBkaXNhYmxlZDogZGlzYWJsZWQsCisgIH07Cisg IGNvbnN0IGVsZVJlZiA9IHVzZVJlZigpOworICBjb25zdCBwaWNrck9iaiA9IHVzZVJlZigpOwor ICBjb25zdCBjbGFzc2VzID0gdXNlU3R5bGVzKCk7CisKKyAgY29uc3Qgc2V0Q29sb3IgPSAodmFs dWUpPT57CisgICAgcGlja3JPYmouY3VycmVudCAmJgorICAgICAgcGlja3JPYmouY3VycmVudC5z ZXRDb2xvcigoXy5pc1VuZGVmaW5lZCh2YWx1ZSkgfHwgdmFsdWUgPT0gJycpID8gcGlja3JPcHRp b25zLmRlZmF1bHRDb2xvciA6IHZhbHVlKTsKKyAgfTsKKworICBjb25zdCBkZXN0cm95UGlja3Ig PSAoKT0+eworICAgIGlmKHBpY2tyT2JqLmN1cnJlbnQpIHsKKyAgICAgIHBpY2tyT2JqLmN1cnJl bnQuZGVzdHJveSgpOworICAgICAgcGlja3JPYmouY3VycmVudCA9IG51bGw7CisgICAgfQorICB9 OworCisgIGNvbnN0IGluaXRQaWNrciA9ICgpPT57CisgICAgLyogcGlja3IgZG9lcyBub3QgaGF2 ZSB3YXkgdG8gdXBkYXRlIG9wdGlvbnMsIG5lZWQgdG8KKyAgICBkZXN0cm95IGFuZCByZWNyZWF0 ZSBwaWNrciB0byByZWZsZWN0IG9wdGlvbnMgKi8KKyAgICBkZXN0cm95UGlja3IoKTsKKworICAg IHBpY2tyT2JqLmN1cnJlbnQgPSBuZXcgUGlja3IoeworICAgICAgZWw6IGVsZVJlZi5jdXJyZW50 LAorICAgICAgdXNlQXNCdXR0b246IHRydWUsCisgICAgICB0aGVtZTogJ21vbm9saXRoJywKKyAg ICAgIHN3YXRjaGVzOiBbCisgICAgICAgICcjMDAwJywgJyM2NjYnLCAnI2NjYycsICcjZmZmJywg JyNmOTAnLCAnI2ZmMCcsICcjMGYwJywKKyAgICAgICAgJyNmMGYnLCAnI2Y0Y2NjYycsICcjZmNl NWNkJywgJyNkMGUwZTMnLCAnI2NmZTJmMycsICcjZWFkMWRjJywgJyNlYTk5OTknLAorICAgICAg ICAnI2I2ZDdhOCcsICcjYTJjNGM5JywgJyNkNWE2YmQnLCAnI2UwNjY2NicsJyM5M2M0N2QnLCAn Izc2YTVhZicsICcjYzI3YmEwJywKKyAgICAgICAgJyNmMWMyMzInLCAnIzZhYTg0ZicsICcjNDU4 MThlJywgJyNhNjRkNzknLCAnI2JmOTAwMCcsICcjMGMzNDNkJywgJyM0YzExMzAnLAorICAgICAg XSwKKyAgICAgIHBvc2l0aW9uOiBwaWNrck9wdGlvbnMucG9zaXRpb24sCisgICAgICBzdHJpbmdz OiB7CisgICAgICAgIGNsZWFyOiBwaWNrck9wdGlvbnMuY2xlYXJUZXh0LAorICAgICAgfSwKKyAg ICAgIGNvbXBvbmVudHM6IHsKKyAgICAgICAgcGFsZXR0ZTogcGlja3JPcHRpb25zLnNob3dQYWxl dHRlLAorICAgICAgICBwcmV2aWV3OiB0cnVlLAorICAgICAgICBodWU6IHBpY2tyT3B0aW9ucy5z aG93UGFsZXR0ZSwKKyAgICAgICAgaW50ZXJhY3Rpb246IHsKKyAgICAgICAgICBjbGVhcjogcGlj a3JPcHRpb25zLmFsbG93RW1wdHksCisgICAgICAgICAgZGVmYXVsdFJlcHJlc2VudGF0aW9uOiBw aWNrck9wdGlvbnMuY29sb3JGb3JtYXQsCisgICAgICAgICAgZGlzYWJsZWQ6IHBpY2tyT3B0aW9u cy5kaXNhYmxlZCwKKyAgICAgICAgfSwKKyAgICAgIH0sCisgICAgfSkub24oJ2luaXQnLCBpbnN0 YW5jZSA9PiB7CisgICAgICBzZXRDb2xvcih2YWx1ZSk7CisgICAgICBkaXNhYmxlZCAmJiBpbnN0 YW5jZS5kaXNhYmxlKCk7CisKKyAgICAgIGNvbnN0IHtsYXN0Q29sb3J9ID0gaW5zdGFuY2UuZ2V0 Um9vdCgpLnByZXZpZXc7CisgICAgICBjb25zdCB7Y2xlYXJ9ID0gaW5zdGFuY2UuZ2V0Um9vdCgp LmludGVyYWN0aW9uOworCisgICAgICAvKiBDeWNsZSB0aGUga2V5Ym9hcmQgbmF2aWdhdGlvbiB3 aXRoaW4gdGhlIGNvbG9yIHBpY2tlciAqLworICAgICAgY2xlYXIuYWRkRXZlbnRMaXN0ZW5lcign a2V5ZG93bicsIChlKT0+eworICAgICAgICBpZihlLmtleUNvZGUgPT09IDkpIHsKKyAgICAgICAg ICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAg ICAgICAgICBsYXN0Q29sb3IuZm9jdXMoKTsKKyAgICAgICAgfQorICAgICAgfSk7CisKKyAgICAg IGxhc3RDb2xvci5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGUpPT57CisgICAgICAgIGlm KGUua2V5Q29kZSA9PT0gOSAmJiBlLnNoaWZ0S2V5KSB7CisgICAgICAgICAgZS5wcmV2ZW50RGVm YXVsdCgpOworICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgICAgY2xlYXIu Zm9jdXMoKTsKKyAgICAgICAgfQorICAgICAgfSk7CisgICAgfSkub24oJ2NsZWFyJywgKCkgPT4g eworICAgICAgb25DaGFuZ2UgJiYgb25DaGFuZ2UoJycpOworICAgIH0pLm9uKCdjaGFuZ2UnLCAo Y29sb3IpID0+IHsKKyAgICAgIG9uQ2hhbmdlICYmIG9uQ2hhbmdlKGNvbG9yLnRvSEVYQSgpLnRv U3RyaW5nKCkpOworICAgIH0pLm9uKCdzaG93JywgKGNvbG9yLCBpbnN0YW5jZSkgPT4geworICAg ICAgY29uc3Qge3BhbGV0dGV9ID0gaW5zdGFuY2UuZ2V0Um9vdCgpLnBhbGV0dGU7CisgICAgICBw YWxldHRlLmZvY3VzKCk7CisgICAgfSkub24oJ2hpZGUnLCAoaW5zdGFuY2UpID0+IHsKKyAgICAg IGNvbnN0IGJ1dHRvbiA9IGluc3RhbmNlLmdldFJvb3QoKS5idXR0b247CisgICAgICBidXR0b24u Zm9jdXMoKTsKKyAgICB9KTsKKworICAgIGlmKGN1cnJPYmopIHsKKyAgICAgIGN1cnJPYmoocGlj a3JPYmouY3VycmVudCk7CisgICAgfQorICB9OworCisgIHVzZUVmZmVjdCgoKT0+eworICAgIGlu aXRQaWNrcigpOworICAgIHJldHVybiAoKT0+eworICAgICAgZGVzdHJveVBpY2tyKCk7CisgICAg fTsKKyAgfSwgWy4uLk9iamVjdC52YWx1ZXMocGlja3JPcHRpb25zKV0pOworCisgIHVzZUVmZmVj dCgoKT0+eworICAgIGlmKHBpY2tyT2JqLmN1cnJlbnQpIHsKKyAgICAgIHNldENvbG9yKHZhbHVl KTsKKyAgICB9CisgIH0sIFt2YWx1ZV0pOworCisgIGxldCBidG5TdHlsZXMgPSB7YmFja2dyb3Vu ZENvbG9yOiB2YWx1ZX07CisgIHJldHVybiAoCisgICAgLy8gPEJ1dHRvbiB2YXJpYW50PSJjb250 YWluZWQiIHJlZj17ZWxlUmVmfSBjbGFzc05hbWU9e2NsYXNzZXMuY29sb3JCdG59IHN0eWxlPXti dG5TdHlsZXN9IGRpc2FibGVkPXtwaWNrck9wdGlvbnMuZGlzYWJsZWR9PgorICAgIC8vICAgeyhf LmlzVW5kZWZpbmVkKHZhbHVlKSB8fCBfLmlzTnVsbCh2YWx1ZSkgfHwgdmFsdWUgPT09ICcnKSAm JiA8Q2xvc2VJY29uIC8+fQorICAgIC8vIDwvQnV0dG9uPgorICAgIDxQZ0ljb25CdXR0b24gcmVm PXtlbGVSZWZ9IHRpdGxlPXtnZXR0ZXh0KCdTZWxlY3QgdGhlIGNvbG9yJyl9IGNsYXNzTmFtZT17 Y2xhc3Nlcy5jb2xvckJ0bn0gc3R5bGU9e2J0blN0eWxlc30gZGlzYWJsZWQ9e3BpY2tyT3B0aW9u cy5kaXNhYmxlZH0KKyAgICAgIGljb249eyhfLmlzVW5kZWZpbmVkKHZhbHVlKSB8fCBfLmlzTnVs bCh2YWx1ZSkgfHwgdmFsdWUgPT09ICcnKSAmJiA8Q2xvc2VJY29uIC8+fQorICAgIC8+CisgICk7 Cit9CitJbnB1dENvbG9yLnByb3BUeXBlcyA9IHsKKyAgdmFsdWU6IFByb3BUeXBlcy5zdHJpbmcs CisgIGNvbnRyb2xQcm9wczogUHJvcFR5cGVzLm9iamVjdCwKKyAgb25DaGFuZ2U6IFByb3BUeXBl cy5mdW5jLAorICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsCisgIGN1cnJPYmo6IFByb3BUeXBl cy5mdW5jLAorfTsKKworZXhwb3J0IGZ1bmN0aW9uIEZvcm1JbnB1dENvbG9yKHsKKyAgaGFzRXJy b3IsIHJlcXVpcmVkLCBjbGFzc05hbWUsIGxhYmVsLCBoZWxwTWVzc2FnZSwgdGVzdGNpZCwgLi4u cHJvcHN9KSB7CisKKyAgcmV0dXJuICgKKyAgICA8Rm9ybUlucHV0IHJlcXVpcmVkPXtyZXF1aXJl ZH0gbGFiZWw9e2xhYmVsfSBlcnJvcj17aGFzRXJyb3J9IGNsYXNzTmFtZT17Y2xhc3NOYW1lfSBo ZWxwTWVzc2FnZT17aGVscE1lc3NhZ2V9IHRlc3RjaWQ9e3Rlc3RjaWR9PgorICAgICAgPElucHV0 Q29sb3Igey4uLnByb3BzfS8+CisgICAgPC9Gb3JtSW5wdXQ+CisgICk7Cit9CitGb3JtSW5wdXRD b2xvci5wcm9wVHlwZXMgPSB7CisgIGhhc0Vycm9yOiBQcm9wVHlwZXMuYm9vbCwKKyAgcmVxdWly ZWQ6IFByb3BUeXBlcy5ib29sLAorICBjbGFzc05hbWU6IEN1c3RvbVByb3BUeXBlcy5jbGFzc05h bWUsCisgIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLAorICBoZWxwTWVzc2FnZTogUHJvcFR5cGVz LnN0cmluZywKKyAgdGVzdGNpZDogUHJvcFR5cGVzLnN0cmluZywKK307CisKKworY29uc3QgdXNl U3R5bGVzRm9ybUZvb3RlciA9IG1ha2VTdHlsZXMoKHRoZW1lKT0+KHsKKyAgcm9vdDogeworICAg IHBhZGRpbmc6IHRoZW1lLnNwYWNpbmcoMC41KSwKKyAgICBwb3NpdGlvbjogJ2Fic29sdXRlJywK KyAgICBib3R0b206IDAsCisgICAgbGVmdDogMCwKKyAgICByaWdodDogMCwKKyAgfSwKKyAgY29u dGFpbmVyOiB7CisgICAgYm9yZGVyV2lkdGg6ICcxcHgnLAorICAgIGJvcmRlclN0eWxlOiAnc29s aWQnLAorICAgIGJvcmRlclJhZGl1czogdGhlbWUuc2hhcGUuYm9yZGVyUmFkaXVzLAorICAgIHBh ZGRpbmc6IHRoZW1lLnNwYWNpbmcoMC41KSwKKyAgICBkaXNwbGF5OiAnZmxleCcsCisgICAgYWxp Z25JdGVtczogJ2NlbnRlcicsCisgIH0sCisgIGNvbnRhaW5lclN1Y2Nlc3M6IHsKKyAgICBib3Jk ZXJDb2xvcjogdGhlbWUucGFsZXR0ZS5zdWNjZXNzLm1haW4sCisgICAgYmFja2dyb3VuZENvbG9y OiB0aGVtZS5wYWxldHRlLnN1Y2Nlc3MubGlnaHQsCisgIH0sCisgIGljb25TdWNjZXNzOiB7Cisg ICAgY29sb3I6IHRoZW1lLnBhbGV0dGUuc3VjY2Vzcy5tYWluLAorICB9LAorICBjb250YWluZXJF cnJvcjogeworICAgIGJvcmRlckNvbG9yOiB0aGVtZS5wYWxldHRlLmVycm9yLm1haW4sCisgICAg YmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLmVycm9yLmxpZ2h0LAorICB9LAorICBpY29u RXJyb3I6IHsKKyAgICBjb2xvcjogdGhlbWUucGFsZXR0ZS5lcnJvci5tYWluLAorICB9LAorICBt ZXNzYWdlOiB7CisgICAgbWFyZ2luTGVmdDogdGhlbWUuc3BhY2luZygwLjUpLAorICB9LAorICBj bG9zZUJ1dHRvbjogeworICAgIG1hcmdpbkxlZnQ6ICdhdXRvJywKKyAgfSwKK30pKTsKKworLyog VGhlIGZvcm0gZm9vdGVyIHVzZWQgbW9zdGx5IGZvciBzaG93aW5nIGVycm9yICovCitleHBvcnQg ZnVuY3Rpb24gRm9ybUZvb3Rlck1lc3NhZ2Uoe3R5cGU9TUVTU0FHRV9UWVBFLlNVQ0NFU1MsIG1l c3NhZ2UsIGNsb3NhYmxlPXRydWUsIG9uQ2xvc2U9KCk9Pnt9fSkgeworICBjb25zdCBjbGFzc2Vz ID0gdXNlU3R5bGVzRm9ybUZvb3RlcigpOworCisgIGlmKCFtZXNzYWdlKSB7CisgICAgcmV0dXJu IDw+PC8+OworICB9CisgIHJldHVybiAoCisgICAgPEJveCBjbGFzc05hbWU9e2NsYXNzZXMucm9v dH0+CisgICAgICA8Qm94IGNsYXNzTmFtZT17Y2xzeChjbGFzc2VzLmNvbnRhaW5lciwgY2xhc3Nl c1tgY29udGFpbmVyJHt0eXBlfWBdKX0+CisgICAgICAgIDxGb3JtSWNvbiB0eXBlPXt0eXBlfSBj bGFzc05hbWU9e2NsYXNzZXNbYGljb24ke3R5cGV9YF19Lz4KKyAgICAgICAgPEJveCBjbGFzc05h bWU9e2NsYXNzZXMubWVzc2FnZX0+e21lc3NhZ2V9PC9Cb3g+CisgICAgICAgIHtjbG9zYWJsZSAm JiA8SWNvbkJ1dHRvbiBjbGFzc05hbWU9e2Nsc3goY2xhc3Nlcy5jbG9zZUJ1dHRvbiwgY2xhc3Nl c1tgaWNvbiR7dHlwZX1gXSl9IG9uQ2xpY2s9e29uQ2xvc2V9PgorICAgICAgICAgIDxGb3JtSWNv biBjbG9zZT17dHJ1ZX0vPgorICAgICAgICA8L0ljb25CdXR0b24+fQorICAgICAgPC9Cb3g+Cisg ICAgPC9Cb3g+CisgICk7Cit9CisKK0Zvcm1Gb290ZXJNZXNzYWdlLnByb3BUeXBlcyA9IHsKKyAg dHlwZTogUHJvcFR5cGVzLm9uZU9mKE9iamVjdC52YWx1ZXMoTUVTU0FHRV9UWVBFKSkuaXNSZXF1 aXJlZCwKKyAgbWVzc2FnZTogUHJvcFR5cGVzLnN0cmluZywKKyAgY2xvc2FibGU6IFByb3BUeXBl cy5ib29sLAorICBvbkNsb3NlOiBQcm9wVHlwZXMuZnVuYywKK307CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9zdGF0aWMvanMvY29tcG9uZW50cy9Mb2FkZXIuanN4IGIvd2ViL3BnYWRtaW4vc3Rh dGljL2pzL2NvbXBvbmVudHMvTG9hZGVyLmpzeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAuLjE5MWI5M2Q4NwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRp Yy9qcy9jb21wb25lbnRzL0xvYWRlci5qc3gKQEAgLTAsMCArMSw1NyBAQAorLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8v IHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTMg LSAyMDIxLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisvLyBUaGlzIHNvZnR3YXJlIGlz IHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKy8vCisvLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitpbXBv cnQgeyBDaXJjdWxhclByb2dyZXNzLCBCb3gsIFR5cG9ncmFwaHksIG1ha2VTdHlsZXMgfSBmcm9t ICdAbWF0ZXJpYWwtdWkvY29yZSc7CitpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnOworaW1wb3J0 IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJzsKKworY29uc3QgdXNlU3R5bGVzID0gbWFrZVN0 eWxlcygodGhlbWUpPT4oeworICByb290OiB7CisgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsCisg ICAgdG9wOiAwLAorICAgIGJvdHRvbTogMCwKKyAgICBsZWZ0OiAwLAorICAgIHJpZ2h0OiAwLAor ICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUub3RoZXJWYXJzLmxvYWRlci5iYWNrZ3JvdW5kQ29s b3IsCisgICAgY29sb3I6IHRoZW1lLm90aGVyVmFycy5sb2FkZXIuY29sb3IsCisgICAgekluZGV4 OiAxMDAwLAorICAgIGRpc3BsYXk6ICdmbGV4JywKKyAgfSwKKyAgbG9hZGVyUm9vdDogeworICAg IGNvbG9yOiB0aGVtZS5vdGhlclZhcnMubG9hZGVyLmNvbG9yLAorICAgIGRpc3BsYXk6ICdmbGV4 JywKKyAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJywKKyAgICBtYXJnaW46ICdhdXRvJywKKyAgICAn Lk11aVR5cG9ncmFwaHktcm9vdCc6IHsKKyAgICAgIG1hcmdpbkxlZnQ6IHRoZW1lLnNwYWNpbmco MSksCisgICAgfQorICB9LAorICBsb2FkZXI6IHsKKyAgICBjb2xvcjogdGhlbWUub3RoZXJWYXJz LmxvYWRlci5jb2xvciwKKyAgfQorfSkpOworCitleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBMb2Fk ZXIoe21lc3NhZ2V9KSB7CisgIGNvbnN0IGNsYXNzZXMgPSB1c2VTdHlsZXMoKTsKKyAgaWYoIW1l c3NhZ2UpIHsKKyAgICByZXR1cm4gPD48Lz47CisgIH0KKyAgcmV0dXJuICgKKyAgICA8Qm94IGNs YXNzTmFtZT17Y2xhc3Nlcy5yb290fT4KKyAgICAgIDxCb3ggY2xhc3NOYW1lPXtjbGFzc2VzLmxv YWRlclJvb3R9PgorICAgICAgICA8Q2lyY3VsYXJQcm9ncmVzcyBjbGFzc05hbWU9e2NsYXNzZXMu bG9hZGVyfSAvPgorICAgICAgICA8VHlwb2dyYXBoeT57bWVzc2FnZX08L1R5cG9ncmFwaHk+Cisg ICAgICA8L0JveD4KKyAgICA8L0JveD4KKyAgKTsKK30KKworTG9hZGVyLnByb3BUeXBlcyA9IHsK KyAgbWVzc2FnZTogUHJvcFR5cGVzLnN0cmluZywKK307CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9zdGF0aWMvanMvY29tcG9uZW50cy9Qcml2aWxlZ2UuanN4IGIvd2ViL3BnYWRtaW4vc3RhdGlj L2pzL2NvbXBvbmVudHMvUHJpdmlsZWdlLmpzeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAuLmRiMmJhY2JmYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRp Yy9qcy9jb21wb25lbnRzL1ByaXZpbGVnZS5qc3gKQEAgLTAsMCArMSwxNzYgQEAKKy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8v CisvLyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisvLworLy8gQ29weXJpZ2h0IChDKSAy MDEzIC0gMjAyMSwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorLy8gVGhpcyBzb2Z0d2Fy ZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisvLworLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKwor aW1wb3J0IHsgbWFrZVN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlJzsKK2ltcG9ydCBf IGZyb20gJ2xvZGFzaCc7CitpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnOworaW1wb3J0IHsgSW5w dXRDaGVja2JveCwgSW5wdXRUZXh0IH0gZnJvbSAnLi9Gb3JtQ29tcG9uZW50cyc7CitpbXBvcnQg Y2xzeCBmcm9tICdjbHN4JzsKK2ltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7CisK K2NvbnN0IHVzZVN0eWxlcyA9IG1ha2VTdHlsZXMoKCk9Pih7CisgIC8qIERpc3BsYXkgdGhlIHBy aXZzIHRhYmxlIG9ubHkgd2hlbiBmb2N1c3NlZCAqLworICByb290OiB7CisgICAgJyY6bm90KDpm b2N1cy13aXRoaW4pIC5wcml2LXRhYmxlJzogeworICAgICAgZGlzcGxheTogJ25vbmUnLAorICAg IH0KKyAgfSwKKyAgdGFibGU6IHsKKyAgICBib3JkZXJTcGFjaW5nOiAwLAorICAgIHdpZHRoOiAn MTAwJScsCisgICAgZm9udFNpemU6ICcwLjhlbScsCisgIH0sCisgIHRhYmxlQ2VsbDogeworICAg IHRleHRBbGlnbjogJ2xlZnQnLAorICB9Cit9KSk7CisKK2V4cG9ydCBkZWZhdWx0IGZ1bmN0aW9u IFByaXZpbGVnZSh7dmFsdWUsIG9uQ2hhbmdlLCBjb250cm9sUHJvcHN9KSB7CisgIC8vIEFsbCBh dmFpbGFibGUgcHJpdmlsZWdlcyBpbiB0aGUgUG9zdGdyZVNRTCBkYXRhYmFzZSBzZXJ2ZXIgZm9y CisgIC8vIGdlbmVyYXRpbmcgdGhlIGxhYmVsIGZvciB0aGUgc3BlY2lmaWMgQ29udHJvbAorICBj b25zdCBMQUJFTFMgPSB7CisgICAgJ0MnOiAnQ1JFQVRFJywKKyAgICAnVCc6ICdURU1QT1JBUlkn LAorICAgICdjJzogJ0NPTk5FQ1QnLAorICAgICdhJzogJ0lOU0VSVCcsCisgICAgJ3InOiAnU0VM RUNUJywKKyAgICAndyc6ICdVUERBVEUnLAorICAgICdkJzogJ0RFTEVURScsCisgICAgJ0QnOiAn VFJVTkNBVEUnLAorICAgICd4JzogJ1JFRkVSRU5DRVMnLAorICAgICd0JzogJ1RSSUdHRVInLAor ICAgICdVJzogJ1VTQUdFJywKKyAgICAnWCc6ICdFWEVDVVRFJywKKyAgfTsKKyAgbGV0IGFsbCA9 IGZhbHNlOworICBsZXQgYWxsV2l0aEdyYW50ID0gZmFsc2U7CisgIGNvbnN0IGNsYXNzZXMgPSB1 c2VTdHlsZXMoKTsKKyAgbGV0IHRleHRWYWx1ZSA9ICcnOworICBmb3IoY29uc3QgdiBvZiB2YWx1 ZXx8W10pIHsKKyAgICBpZih2LnByaXZpbGVnZSkgeworICAgICAgdGV4dFZhbHVlICs9IHYucHJp dmlsZWdlX3R5cGU7CisgICAgICBpZih2LndpdGhfZ3JhbnQpIHsKKyAgICAgICAgdGV4dFZhbHVl ICs9ICcqJzsKKyAgICAgIH0KKyAgICB9CisgIH0KKworICBjb25zdCBjaGVja2JveElkID0gXy51 bmlxdWVJZCgpOworICAvKiBDYWxjdWxhdGUgdGhlIHJlYWwgZGlzcGxheSB2YWx1ZSBieSBtZXJn aW5nIGFsbCBzdXBwb3J0ZWQgcHJpdnMgd2l0aCBpbmNvbWluZyB2YWx1ZSAqLworICBjb25zdCBy ZWFsVmFsID0gKGNvbnRyb2xQcm9wcz8uc3VwcG9ydGVkUHJpdnMgfHwgW10pLm1hcCgocHJpdik9 PnsKKyAgICBsZXQgaW5WYWx1ZSA9IF8uZmluZCh2YWx1ZSwgKHYpPT52LnByaXZpbGVnZV90eXBl PT09cHJpdikgfHwgeworICAgICAgcHJpdmlsZWdlOiBmYWxzZSwgd2l0aF9ncmFudDogZmFsc2Us CisgICAgfTsKKyAgICByZXR1cm4geworICAgICAgcHJpdmlsZWdlX3R5cGU6IHByaXYsCisgICAg ICBwcml2aWxlZ2U6IEJvb2xlYW4oaW5WYWx1ZS5wcml2aWxlZ2UpLAorICAgICAgd2l0aF9ncmFu dDogQm9vbGVhbihpblZhbHVlLndpdGhfZ3JhbnQpLAorICAgIH07CisgIH0pOworCisgIGNvbnN0 IG9uQ2hlY2tBbGwgPSAoZSwgZm9yV2l0aEdyYW50KT0+eworICAgIGxldCBuZXdWYWx1ZSA9IFtd OworICAgIC8qIFB1c2ggYWxsIHRoZSBwcml2cyBvciBpZ25vcmUgaWYgdW5jaGVja2VkIGFuZCBy ZXR1cm4gZW1wdHkgKi8KKyAgICByZWFsVmFsLmZvckVhY2goKHYpPT57CisgICAgICBpZihmb3JX aXRoR3JhbnQpIHsKKyAgICAgICAgbmV3VmFsdWUucHVzaCh7CisgICAgICAgICAgLi4udiwKKyAg ICAgICAgICBwcml2aWxlZ2U6IHRydWUsCisgICAgICAgICAgd2l0aF9ncmFudDogZS50YXJnZXQu Y2hlY2tlZCwKKyAgICAgICAgfSk7CisgICAgICB9IGVsc2UgaWYoZS50YXJnZXQuY2hlY2tlZCkg eworICAgICAgICBuZXdWYWx1ZS5wdXNoKHsKKyAgICAgICAgICAuLi52LAorICAgICAgICAgIHBy aXZpbGVnZTogZS50YXJnZXQuY2hlY2tlZCwKKyAgICAgICAgfSk7CisgICAgICB9CisgICAgfSk7 CisgICAgb25DaGFuZ2UobmV3VmFsdWUpOworICB9OworCisgIGNvbnN0IG9uQ2hlY2sgPSAoZSwg Zm9yV2l0aEdyYW50KT0+eworICAgIGxldCBleGlzdHMgPSBmYWxzZTsKKyAgICBsZXQgbmV3VmFs dWUgPSBbXTsKKworICAgIC8qIENhbGN1bGF0ZSB0aGUgbmV3VmFsdWUgYnkgcHVzaGluZyBhbGwg c2VsZWN0ZWQgYW5kIGlnbm9yZSBpZiB1bmNoZWNrZWQgKi8KKyAgICAodmFsdWV8fFtdKS5mb3JF YWNoKCh2KT0+eworICAgICAgaWYodi5wcml2aWxlZ2VfdHlwZSA9PT0gZS50YXJnZXQubmFtZSkg eworICAgICAgICBleGlzdHMgPSB0cnVlOworICAgICAgICBpZihmb3JXaXRoR3JhbnQpIHsKKyAg ICAgICAgICBuZXdWYWx1ZS5wdXNoKHsKKyAgICAgICAgICAgIC4uLnYsCisgICAgICAgICAgICB3 aXRoX2dyYW50OiBlLnRhcmdldC5jaGVja2VkLAorICAgICAgICAgIH0pOworICAgICAgICB9Cisg ICAgICB9IGVsc2UgeworICAgICAgICBuZXdWYWx1ZS5wdXNoKHYpOworICAgICAgfQorICAgIH0p OworCisgICAgaWYoIWV4aXN0cyAmJiBlLnRhcmdldC5jaGVja2VkKSB7CisgICAgICBuZXdWYWx1 ZS5wdXNoKHsKKyAgICAgICAgcHJpdmlsZWdlX3R5cGU6IGUudGFyZ2V0Lm5hbWUsCisgICAgICAg IHByaXZpbGVnZTogZS50YXJnZXQuY2hlY2tlZCwKKyAgICAgICAgd2l0aF9ncmFudDogZmFsc2Us CisgICAgICB9KTsKKyAgICB9CisKKyAgICBvbkNoYW5nZShuZXdWYWx1ZSk7CisgIH07CisKKyAg LyogSWYgYWxsIHN1cHBvcnRlZCBwcml2cyBhbmQgaW5jb21pbmcgdmFsdWUgbGVuZ3RoIG1hdGNo ZXMsIGNsZWFybHkgYWxsIGFyZSBzZWxlY3RlZCAqLworICBhbGwgPSAocmVhbFZhbC5sZW5ndGgg PT09ICh2YWx1ZSB8fCBbXSkubGVuZ3RoKTsKKyAgYWxsV2l0aEdyYW50ID0gKHJlYWxWYWwubGVu Z3RoID09PSAodmFsdWUgfHwgW10pLmxlbmd0aCkgJiYgKHZhbHVlIHx8IFtdKS5ldmVyeSgoZCk9 PmQud2l0aF9ncmFudCk7CisKKyAgcmV0dXJuICgKKyAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3Nl cy5yb290fT4KKyAgICAgIDxJbnB1dFRleHQgdmFsdWU9e3RleHRWYWx1ZX0gcmVhZE9ubHkvPgor ICAgICAgPHRhYmxlIGNsYXNzTmFtZT17Y2xzeChjbGFzc2VzLnRhYmxlLCAncHJpdi10YWJsZScp fT4KKyAgICAgICAgeyhyZWFsVmFsLmxlbmd0aCA+IDEpICYmIDx0aGVhZD4KKyAgICAgICAgICA8 dHI+CisgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPXtjbGFzc2VzLnRhYmxlQ2VsbH0+CisgICAg ICAgICAgICAgIDxJbnB1dENoZWNrYm94IG5hbWU9ImFsbCIgY29udHJvbFByb3BzPXt7bGFiZWw6 ICdBTEwnfX0gaWQ9e2NoZWNrYm94SWR9IHNpemU9InNtYWxsIgorICAgICAgICAgICAgICAgIG9u Q2hhbmdlPXsoZSk9Pm9uQ2hlY2tBbGwoZSwgZmFsc2UpfSB2YWx1ZT17YWxsfS8+CisgICAgICAg ICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzTmFtZT17Y2xhc3Nlcy50YWJsZUNlbGx9 PgorICAgICAgICAgICAgICA8SW5wdXRDaGVja2JveCBuYW1lPSJhbGwiIGNvbnRyb2xQcm9wcz17 e2xhYmVsOiAnV0lUSCBHUkFOVCBPUFRJT04nfX0gaWQ9e2NoZWNrYm94SWR9IHNpemU9InNtYWxs IgorICAgICAgICAgICAgICAgIGRpc2FibGVkPXshYWxsfSBvbkNoYW5nZT17KGUpPT5vbkNoZWNr QWxsKGUsIHRydWUpfSB2YWx1ZT17YWxsV2l0aEdyYW50fS8+CisgICAgICAgICAgICA8L3RkPgor ICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGhlYWQ+fQorICAgICAgICA8dGJvZHk+CisgICAg ICAgICAgeworICAgICAgICAgICAgcmVhbFZhbC5tYXAoKGQpPT57CisgICAgICAgICAgICAgIHJl dHVybiAoCisgICAgICAgICAgICAgICAgPHRyIGtleT17ZC5wcml2aWxlZ2VfdHlwZX0+CisgICAg ICAgICAgICAgICAgICA8dGQgY2xhc3NOYW1lPXtjbGFzc2VzLnRhYmxlQ2VsbH0+CisgICAgICAg ICAgICAgICAgICAgIDxJbnB1dENoZWNrYm94IG5hbWU9e2QucHJpdmlsZWdlX3R5cGV9IGNvbnRy b2xQcm9wcz17e2xhYmVsOiBMQUJFTFNbZC5wcml2aWxlZ2VfdHlwZV19fQorICAgICAgICAgICAg ICAgICAgICAgIGlkPXtjaGVja2JveElkfSB2YWx1ZT17Qm9vbGVhbihkLnByaXZpbGVnZSl9IHNp emU9InNtYWxsIgorICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSk9Pm9uQ2hlY2so ZSwgZmFsc2UpfS8+CisgICAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgICAg PHRkIGNsYXNzTmFtZT17Y2xhc3Nlcy50YWJsZUNlbGx9PgorICAgICAgICAgICAgICAgICAgICA8 SW5wdXRDaGVja2JveCBuYW1lPXtkLnByaXZpbGVnZV90eXBlfSBjb250cm9sUHJvcHM9e3tsYWJl bDogJ1dJVEggR1JBTlQgT1BUSU9OJ319CisgICAgICAgICAgICAgICAgICAgICAgaWQ9e2NoZWNr Ym94SWR9IHZhbHVlPXtCb29sZWFuKGQud2l0aF9ncmFudCl9IHNpemU9InNtYWxsIiBkaXNhYmxl ZD17IWQucHJpdmlsZWdlfQorICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSk9Pm9u Q2hlY2soZSwgdHJ1ZSl9Lz4KKyAgICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAg ICAgPC90cj4KKyAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgfQor ICAgICAgICA8L3Rib2R5PgorICAgICAgPC90YWJsZT4KKyAgICA8L2Rpdj4KKyAgKTsKK30KKwor UHJpdmlsZWdlLnByb3BUeXBlcyA9IHsKKyAgdmFsdWU6IFByb3BUeXBlcy5hcnJheSwKKyAgb25D aGFuZ2U6IFByb3BUeXBlcy5mdW5jLAorICBjb250cm9sUHJvcHM6IFByb3BUeXBlcy5vYmplY3Qs Cit9OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2NvbXBvbmVudHMvVGFiUGFu ZWwuanN4IGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2NvbXBvbmVudHMvVGFiUGFuZWwuanN4Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uY2U0NmJhNzA3Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2NvbXBvbmVudHMvVGFiUGFuZWwuanN4CkBA IC0wLDAgKzEsNDIgQEAKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xz CisvLworLy8gQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMSwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1l bnQgVGVhbQorLy8gVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNR TCBMaWNlbmNlCisvLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8KKworaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JzsKK2ltcG9y dCB7Qm94LCBtYWtlU3R5bGVzfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZSc7CitpbXBvcnQgY2xz eCBmcm9tICdjbHN4JzsKK2ltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7CitpbXBv cnQgQ3VzdG9tUHJvcFR5cGVzIGZyb20gJy4uL2N1c3RvbV9wcm9wX3R5cGVzJzsKKworY29uc3Qg dXNlU3R5bGVzID0gbWFrZVN0eWxlcygodGhlbWUpPT4oeworICByb290OiB7CisgICAgaGVpZ2h0 OiAnMTAwJScsCisgICAgcGFkZGluZzogdGhlbWUuc3BhY2luZygxKSwKKyAgICBvdmVyZmxvdzog J2F1dG8nLAorICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUucGFsZXR0ZS5ncmV5WzQwMF0KKyAg fQorfSkpOworCisvKiBNYXRlcmlhbCBVSSBkb2VzIG5vdCBoYXZlIGFueSB0YWJwYW5lbCBjb21w b25lbnQsIHdlIGNyZWF0ZSBvbmUgZm9yIHVzICovCitleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBU YWJQYW5lbCh7Y2hpbGRyZW4sIGNsYXNzTmFtZVJvb3QsIGNsYXNzTmFtZSwgdmFsdWUsIGluZGV4 fSkgeworICBjb25zdCBjbGFzc2VzID0gdXNlU3R5bGVzKCk7CisgIGNvbnN0IGFjdGl2ZSA9IHZh bHVlID09PSBpbmRleDsKKyAgcmV0dXJuICgKKyAgICA8Qm94IGNsYXNzTmFtZT17Y2xzeChjbGFz c2VzLnJvb3QsIGNsYXNzTmFtZVJvb3QpfSBjb21wb25lbnQ9ImRpdiIgaGlkZGVuPXshYWN0aXZl fT4KKyAgICAgIDxCb3ggc3R5bGU9e3toZWlnaHQ6ICcxMDAlJ319IGNsYXNzTmFtZT17Y2xhc3NO YW1lfT57Y2hpbGRyZW59PC9Cb3g+CisgICAgPC9Cb3g+CisgICk7Cit9CisKK1RhYlBhbmVsLnBy b3BUeXBlcyA9IHsKKyAgY2hpbGRyZW46IEN1c3RvbVByb3BUeXBlcy5jaGlsZHJlbiwKKyAgY2xh c3NOYW1lUm9vdDogQ3VzdG9tUHJvcFR5cGVzLmNsYXNzTmFtZSwKKyAgY2xhc3NOYW1lOiBDdXN0 b21Qcm9wVHlwZXMuY2xhc3NOYW1lLAorICB2YWx1ZTogUHJvcFR5cGVzLmFueS5pc1JlcXVpcmVk LAorICBpbmRleDogUHJvcFR5cGVzLmFueS5pc1JlcXVpcmVkLAorfTsKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL3N0YXRpYy9qcy9jdXN0b21fcHJvcF90eXBlcy5qcyBiL3dlYi9wZ2FkbWluL3N0 YXRpYy9qcy9jdXN0b21fcHJvcF90eXBlcy5qcwppbmRleCA0ZTRmNDViOWIuLjQ1MTNiNmQzYSAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2N1c3RvbV9wcm9wX3R5cGVzLmpzCisr KyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9jdXN0b21fcHJvcF90eXBlcy5qcwpAQCAtMSwxMCAr MSwzMiBAQAorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLworLy8KKy8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKy8vCisv LyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIxLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFt CisvLyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLwogaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJzsKK2ltcG9y dCBCYXNlVUlTY2hlbWEgZnJvbSAnc291cmNlcy9TY2hlbWFWaWV3L2Jhc2Vfc2NoZW1hLnVpJzsK IAorLyogQ29tbW9uIFByb3AgdHlwZXMgKi8KIGNvbnN0IEN1c3RvbVByb3BUeXBlcyA9IHsKICAg cmVmOiBQcm9wVHlwZXMub25lT2ZUeXBlKFsKICAgICBQcm9wVHlwZXMuZnVuYywKICAgICBQcm9w VHlwZXMuc2hhcGUoeyBjdXJyZW50OiBQcm9wVHlwZXMuaW5zdGFuY2VPZihFbGVtZW50KSB9KSwK ICAgXSksCisKKyAgc2NoZW1hVUk6IFByb3BUeXBlcy5pbnN0YW5jZU9mKEJhc2VVSVNjaGVtYSks CisKKyAgY2hpbGRyZW46IFByb3BUeXBlcy5vbmVPZlR5cGUoWworICAgIFByb3BUeXBlcy5hcnJh eU9mKFByb3BUeXBlcy5ub2RlKSwKKyAgICBQcm9wVHlwZXMubm9kZQorICBdKSwKKworICBjbGFz c05hbWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoWworICAgIFByb3BUeXBlcy5zdHJpbmcsCisgICAg UHJvcFR5cGVzLm9iamVjdCwKKyAgXSkKIH07CiAKIGV4cG9ydCBkZWZhdWx0IEN1c3RvbVByb3BU eXBlczsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9oZWxwZXJzL2xlZ2FjeUNv bm5lY3Rvci5qcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9oZWxwZXJzL2xlZ2FjeUNvbm5lY3Rv ci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjkyNTdhODIxOQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9oZWxwZXJzL2xlZ2FjeUNvbm5l Y3Rvci5qcwpAQCAtMCwwICsxLDY2IEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdy ZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjEsIFRoZSBwZ0FkbWlu IERldmVsb3BtZW50IFRlYW0KKy8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKKy8qIFRoaXMgZmlsZSB3aWxsIGhhdmUg d3JhcHBlcnMgYW5kIGNvbm5lY3RvcnMgdXNlZCBieSBSZWFjdCBjb21wb25lbnRzIHRvCisgKiBy ZS11c2UgYW55IGV4aXN0aW5nIG5vbi1yZWFjdCBjb21wb25lbnRzLgorICogVGhlc2UgZnVuY3Rp b25zIG1heSBub3QgYmUgbmVlZGVkIG9uY2UgYWxsIGFyZSBtaWdyYXRlZAorICovCisKK2ltcG9y dCBBbGVydGlmeSBmcm9tICdwZ2FkbWluLmFsZXJ0aWZ5anMnOworaW1wb3J0IGdldHRleHQgZnJv bSAnc291cmNlcy9nZXR0ZXh0JzsKK2ltcG9ydCBwZ0FkbWluIGZyb20gJ3NvdXJjZXMvcGdhZG1p bic7CisKK2V4cG9ydCBmdW5jdGlvbiBjb25maXJtRGVsZXRlUm93KG9uT0ssIG9uQ2FuY2VsLCB0 aXRsZSwgbWVzc2FnZSkgeworICBBbGVydGlmeS5jb25maXJtKAorICAgIHRpdGxlIHx8IGdldHRl eHQoJ0RlbGV0ZSBSb3cnKSwKKyAgICBtZXNzYWdlIHx8IGdldHRleHQoJ0FyZSB5b3Ugc3VyZSB5 b3Ugd2lzaCB0byBkZWxldGUgdGhpcyByb3c/JyksCisgICAgZnVuY3Rpb24oKSB7CisgICAgICBv bk9LKCk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorICAgIGZ1bmN0aW9uKCkgeworICAg ICAgb25DYW5jZWwoKTsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgKTsKK30KKworLyog RG9uJ3QgaW1wb3J0IGFsZXJ0Zml5IGRpcmVjdGx5IGluIHJlYWN0IGZpbGVzLiBOb3QgZ29vZCBm b3IgdGVzdGFiaWxpdHkgKi8KK2V4cG9ydCBmdW5jdGlvbiBwZ0FsZXJ0aWZ5KCkgeworICByZXR1 cm4gQWxlcnRpZnk7Cit9CisKKy8qIFVzZWQgYnkgZmlsZSBzZWxlY3QgY29tcG9uZW50IHRvIHJl LXVzZSBleGlzdGluZyBsb2dpYyAqLworZXhwb3J0IGZ1bmN0aW9uIHNob3dGaWxlRGlhbG9nKGRp YWxvZ1BhcmFtcywgb25GaWxlU2VsZWN0KSB7CisgIGxldCBwYXJhbXMgPSB7CisgICAgc3VwcG9y dGVkX3R5cGVzOiBkaWFsb2dQYXJhbXMuc3VwcG9ydGVkVHlwZXMgfHwgW10sCisgICAgZGlhbG9n X3R5cGU6IGRpYWxvZ1BhcmFtcy5kaWFsb2dUeXBlIHx8ICdzZWxlY3RfZmlsZScsCisgICAgZGlh bG9nX3RpdGxlOiBkaWFsb2dQYXJhbXMuZGlhbG9nVGl0bGUgfHwgJycsCisgICAgYnRuX3ByaW1h cnk6IGRpYWxvZ1BhcmFtcy5idG5QcmltYXJ5IHx8ICcnLAorICB9OworICBwZ0FkbWluLkZpbGVN YW5hZ2VyLmluaXQoKTsKKyAgcGdBZG1pbi5GaWxlTWFuYWdlci5zaG93X2RpYWxvZyhwYXJhbXMp OworCisgIGNvbnN0IG9uRGlhbG9nQ2xvc2UgPSAoKT0+cmVtb3ZlTGlzdGVuZXJzKCk7CisgIHBn QWRtaW4uQnJvd3Nlci5FdmVudHMub24oJ3BnYWRtaW4tc3RvcmFnZTpmaW5pc2hfYnRuOicgKyBw YXJhbXMuZGlhbG9nX3R5cGUsIG9uRmlsZVNlbGVjdCk7CisgIHBnQWRtaW4uQnJvd3Nlci5FdmVu dHMub24oJ3BnYWRtaW4tc3RvcmFnZTpjYW5jZWxfYnRuOicgKyBwYXJhbXMuZGlhbG9nX3R5cGUs IG9uRGlhbG9nQ2xvc2UpOworCisgIGNvbnN0IHJlbW92ZUxpc3RlbmVycyA9ICgpPT57CisgICAg cGdBZG1pbi5Ccm93c2VyLkV2ZW50cy5vZmYoJ3BnYWRtaW4tc3RvcmFnZTpmaW5pc2hfYnRuOicg KyBwYXJhbXMuZGlhbG9nX3R5cGUsIG9uRmlsZVNlbGVjdCk7CisgICAgcGdBZG1pbi5Ccm93c2Vy LkV2ZW50cy5vZmYoJ3BnYWRtaW4tc3RvcmFnZTpjYW5jZWxfYnRuOicgKyBwYXJhbXMuZGlhbG9n X3R5cGUsIG9uRGlhbG9nQ2xvc2UpOworICB9OworfQorCitleHBvcnQgZnVuY3Rpb24gb25QZ2Fk bWluRXZlbnQoZXZlbnROYW1lLCBoYW5kbGVyKSB7CisgIHBnQWRtaW4uQnJvd3Nlci5FdmVudHMu b24oZXZlbnROYW1lLCBoYW5kbGVyKTsKK30KKworZXhwb3J0IGZ1bmN0aW9uIG9mZlBnYWRtaW5F dmVudChldmVudE5hbWUsIGhhbmRsZXIpIHsKKyAgcGdBZG1pbi5Ccm93c2VyLkV2ZW50cy5vZmYo ZXZlbnROYW1lLCBoYW5kbGVyKTsKK30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy91dGlscy5qcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy91dGlscy5qcwppbmRleCA3OWIwYmNl ZmUuLjgxYTNiMGZlOCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3V0aWxzLmpz CisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy91dGlscy5qcwpAQCAtNDA4LDMgKzQwOCwxMSBA QCBmdW5jdGlvbiBjaGVja0JpbmFyeVBhdGhFeGlzdHMoYmluYXJ5UGF0aEFycmF5LCBzZWxlY3Rl ZFNlcnZlclZlcnNpb24pIHsKIAogICByZXR1cm4gKHNlcnZlclNwZWNpZmljUGF0aEV4aXN0IHwg Zm91bmREZWZhdWx0UGF0aCk7CiB9CisKKy8qIElmIGEgZnVuY3Rpb24sIHRoZW4gZXZhbHVhdGUg Ki8KK2V4cG9ydCBmdW5jdGlvbiBldmFsRnVuYyhmdW5jLCBwYXJhbSkgeworICBpZihfLmlzRnVu Y3Rpb24oZnVuYykpIHsKKyAgICByZXR1cm4gZnVuYy5hcHBseShudWxsLCBbcGFyYW1dKTsKKyAg fQorICByZXR1cm4gZnVuYzsKK30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy92 YWxpZGF0b3JzLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL3ZhbGlkYXRvcnMuanMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5hMzM0MzQ4MGEKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvdmFsaWRhdG9ycy5qcwpAQCAtMCwwICsxLDcwIEBA CisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHly aWdodCAoQykgMjAxMyAtIDIwMjEsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKy8vIFRo aXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorLy8K Ky8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vCisKK2ltcG9ydCB7c3ByaW50Zn0gZnJvbSAnc291cmNlcy91dGlscyc7CitpbXBvcnQg XyBmcm9tICdsb2Rhc2gnOworaW1wb3J0IHBnQWRtaW4gZnJvbSAnc291cmNlcy9wZ2FkbWluJzsK KworLyogVmFsaWRhdGUgdmFsdWUgZm9yIG1pbiBtYXggcmFuZ2UgKi8KK2V4cG9ydCBmdW5jdGlv biBtaW5NYXhWYWxpZGF0b3IobGFiZWwsIHZhbHVlLCBtaW5WYWx1ZSwgbWF4VmFsdWUpIHsKKyAg aWYoKF8uaXNVbmRlZmluZWQodmFsdWUpIHx8IF8uaXNOdWxsKHZhbHVlKSB8fCBTdHJpbmcodmFs dWUpID09PSAnJykpCisgICAgcmV0dXJuIG51bGw7CisgIGlmICghXy5pc1VuZGVmaW5lZChtaW5W YWx1ZSkgJiYgdmFsdWUgPCBtaW5WYWx1ZSkgeworICAgIHJldHVybiBzcHJpbnRmKHBnQWRtaW4u QnJvd3Nlci5tZXNzYWdlcy5NVVNUX0dSX0VRLCBsYWJlbCwgbWluVmFsdWUpOworICB9IGVsc2Ug aWYgKCFfLmlzVW5kZWZpbmVkKG1heFZhbHVlKSAmJiB2YWx1ZSA+IG1heFZhbHVlKSB7CisgICAg cmV0dXJuIHNwcmludGYocGdBZG1pbi5Ccm93c2VyLm1lc3NhZ2VzLk1VU1RfTEVTU19FUSwgbGFi ZWwsIG1heFZhbHVlKTsKKyAgfQorICByZXR1cm4gbnVsbDsKK30KKworLyogVmFsaWRhdGUgdmFs dWUgdG8gY2hlY2sgaWYgaXQgaXMgYSBudW1iZXIgKi8KK2V4cG9ydCBmdW5jdGlvbiBudW1iZXJW YWxpZGF0b3IobGFiZWwsIHZhbHVlKSB7CisgIGlmKChfLmlzVW5kZWZpbmVkKHZhbHVlKSB8fCBf LmlzTnVsbCh2YWx1ZSkgfHwgU3RyaW5nKHZhbHVlKSA9PT0gJycpKQorICAgIHJldHVybiBudWxs OworICB2YXIgcGF0dGVybiA9IG5ldyBSZWdFeHAoJ14tP1swLTldKyhcLj9bMC05XSopPyQnKTsK KyAgaWYgKCFwYXR0ZXJuLnRlc3QodmFsdWUpKSB7CisgICAgcmV0dXJuIHNwcmludGYocGdBZG1p bi5Ccm93c2VyLm1lc3NhZ2VzLk1VU1RfQkVfTlVNLCBsYWJlbCk7CisgIH0KKyAgcmV0dXJuIG51 bGw7Cit9CisKKy8qIFZhbGlkYXRlIHZhbHVlIHRvIGNoZWNrIGlmIGl0IGlzIGFuIGludGVnZXIg Ki8KK2V4cG9ydCBmdW5jdGlvbiBpbnRlZ2VyVmFsaWRhdG9yKGxhYmVsLCB2YWx1ZSkgeworICBp ZigoXy5pc1VuZGVmaW5lZCh2YWx1ZSkgfHwgXy5pc051bGwodmFsdWUpIHx8IFN0cmluZyh2YWx1 ZSkgPT09ICcnKSkKKyAgICByZXR1cm4gbnVsbDsKKyAgdmFyIHBhdHRlcm4gPSBuZXcgUmVnRXhw KCdeLT9bMC05XSokJyk7CisgIGlmICghcGF0dGVybi50ZXN0KHZhbHVlKSkgeworICAgIHJldHVy biBzcHJpbnRmKHBnQWRtaW4uQnJvd3Nlci5tZXNzYWdlcy5NVVNUX0JFX0lOVCwgbGFiZWwpOwor ICB9CisgIHJldHVybiBudWxsOworfQorCisvKiBWYWxpZGF0ZSB2YWx1ZSB0byBjaGVjayBpZiBp dCBpcyBlbXB0eSAqLworZXhwb3J0IGZ1bmN0aW9uIGVtcHR5VmFsaWRhdG9yKGxhYmVsLCB2YWx1 ZSkgeworICBpZihpc0VtcHR5U3RyaW5nKHZhbHVlKSB8fCBTdHJpbmcodmFsdWUpLnJlcGxhY2Uo L15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICByZXR1cm4gc3ByaW50ZihwZ0FkbWluLkJy b3dzZXIubWVzc2FnZXMuQ0FOTk9UX0JFX0VNUFRZLCBsYWJlbCk7CisgIH0KKyAgcmV0dXJuIG51 bGw7Cit9CisKK2V4cG9ydCBmdW5jdGlvbiBpc0VtcHR5U3RyaW5nKHN0cmluZykgeworICByZXR1 cm4gXy5pc1VuZGVmaW5lZChzdHJpbmcpIHx8IF8uaXNOdWxsKHN0cmluZykgfHwgU3RyaW5nKHN0 cmluZykudHJpbSgpID09PSAnJzsKK30KKworLyogVmFsaWRhdGUgcm93cyB0byBjaGVjayBmb3Ig YW55IGR1cGxpY2F0ZSByb3dzIGJhc2VkIG9uIHVuaXF1ZUNvbHMtY29sdW1ucyBhcnJheSAqLwor ZXhwb3J0IGZ1bmN0aW9uIGNoZWNrVW5pcXVlQ29sKHJvd3MsIHVuaXF1ZUNvbHMpIHsKKyAgaWYo dW5pcXVlQ29scykgeworICAgIGZvcihjb25zdCBbaSwgcm93XSBvZiByb3dzLmVudHJpZXMoKSkg eworICAgICAgZm9yKGNvbnN0IGNoZWNrUm93IG9mIHJvd3Muc2xpY2UoMCwgaSkpIHsKKyAgICAg ICAgaWYoXy5pc0VxdWFsKF8ucGljayhjaGVja1JvdywgdW5pcXVlQ29scyksIF8ucGljayhyb3cs IHVuaXF1ZUNvbHMpKSkgcmV0dXJuIGk7CisgICAgICB9CisgICAgfQorICB9CisgIHJldHVybiAt MTsKK30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9zY3NzL19ib290c3RyYXAub3Zl cnJpZGVzLnNjc3MgYi93ZWIvcGdhZG1pbi9zdGF0aWMvc2Nzcy9fYm9vdHN0cmFwLm92ZXJyaWRl cy5zY3NzCmluZGV4IDU1YTU5MDI1Yi4uNGNhYTM3MmZkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9zdGF0aWMvc2Nzcy9fYm9vdHN0cmFwLm92ZXJyaWRlcy5zY3NzCisrKyBiL3dlYi9wZ2FkbWlu L3N0YXRpYy9zY3NzL19ib290c3RyYXAub3ZlcnJpZGVzLnNjc3MKQEAgLTEwNyw3ICsxMDcsNyBA QCBsZWdlbmQgewogCSAgY29sb3I6ICRidG4tc2Vjb25kYXJ5LWhvdmVyLWZnICFpbXBvcnRhbnQ7 CiAJfSAmLmRpc2FibGVkLCAmOmRpc2FibGVkIHsKIAkgIGNvbG9yOiAkYnRuLXNlY29uZGFyeS1k aXNhYmxlZC1mZyAhaW1wb3J0YW50OwotCSAgYm9yZGVyLWNvbG9yOiAkYnRuLXNlY29uZGFyeS1k aXNhYmxlZC1iZyAhaW1wb3J0YW50OworCSAgYm9yZGVyLWNvbG9yOiAkYnRuLXNlY29uZGFyeS1k aXNhYmxlZC1ib3JkZXItY29sb3IgIWltcG9ydGFudDsKIAl9CiAJY29sb3I6ICRidG4tc2Vjb25k YXJ5LWZnICFpbXBvcnRhbnQ7CiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9zY3Nz L19wZ2FkbWluLnN0eWxlLnNjc3MgYi93ZWIvcGdhZG1pbi9zdGF0aWMvc2Nzcy9fcGdhZG1pbi5z dHlsZS5zY3NzCmluZGV4IDZhMTg1NDcxYi4uMDIxM2RiMzAxIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9zdGF0aWMvc2Nzcy9fcGdhZG1pbi5zdHlsZS5zY3NzCisrKyBiL3dlYi9wZ2FkbWluL3N0 YXRpYy9zY3NzL19wZ2FkbWluLnN0eWxlLnNjc3MKQEAgLTI2NCw2ICsyNjQsNyBAQAogCiAub2Jq X3Byb3BlcnRpZXMgewogICAgIHBhZGRpbmc6IDBweDsKKyAgICBoZWlnaHQ6IDEwMCU7CiB9CiAK IC5vYmpfcHJvcGVydGllcyAucGdhZG1pbi1jb250cm9sIC51bmVkaXRhYmxlLWlucHV0IHsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9zY3NzL193ZWJjYWJpbi5wZ2FkbWluLnNjc3Mg Yi93ZWIvcGdhZG1pbi9zdGF0aWMvc2Nzcy9fd2ViY2FiaW4ucGdhZG1pbi5zY3NzCmluZGV4IGJh MTVlZGMxNS4uN2Q5ZDQyODllIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvc2Nzcy9f d2ViY2FiaW4ucGdhZG1pbi5zY3NzCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9zY3NzL193ZWJj YWJpbi5wZ2FkbWluLnNjc3MKQEAgLTE4OSw3ICsxODksNyBAQAogLndjRnJhbWVFZGdlIHsKICAg YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgIGJvcmRlcjogbm9uZTsKLSAgei1pbmRl eDogNTsKKyAgei1pbmRleDogNTAwMDsKIH0KIAogLndjRnJhbWVFZGdlTiwgLndjRnJhbWVFZGdl UyB7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvc2Nzcy9yZXNvdXJjZXMvX2RlZmF1 bHQudmFyaWFibGVzLnNjc3MgYi93ZWIvcGdhZG1pbi9zdGF0aWMvc2Nzcy9yZXNvdXJjZXMvX2Rl ZmF1bHQudmFyaWFibGVzLnNjc3MKaW5kZXggZDlmYjY2NTNhLi43YjE4N2E0NWMgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9zY3NzL3Jlc291cmNlcy9fZGVmYXVsdC52YXJpYWJsZXMu c2NzcworKysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvc2Nzcy9yZXNvdXJjZXMvX2RlZmF1bHQudmFy aWFibGVzLnNjc3MKQEAgLTI4Niw3ICsyODYsNyBAQCAkYnRuLXNlY29uZGFyeS1mZzogJGNvbG9y LWZnICFkZWZhdWx0OwogJGJ0bi1zZWNvbmRhcnktaG92ZXItZmc6ICRjb2xvci1mZyAhZGVmYXVs dDsKICRidG4tc2Vjb25kYXJ5LWJvcmRlcjogJGNvbG9yLWdyYXkgIWRlZmF1bHQ7CiAkYnRuLXNl Y29uZGFyeS1ob3Zlci1iZzogJGNvbG9yLWdyYXktbGlnaHQgIWRlZmF1bHQ7Ci0kYnRuLXNlY29u ZGFyeS1kaXNhYmxlZC1iZzogJGNvbG9yLWdyYXkgIWRlZmF1bHQ7CiskYnRuLXNlY29uZGFyeS1k aXNhYmxlZC1ib3JkZXItY29sb3I6ICRjb2xvci1ncmF5ICFkZWZhdWx0OwogJGJ0bi1zZWNvbmRh cnktZGlzYWJsZWQtZmc6ICRjb2xvci1mZyAhZGVmYXVsdDsKIAogJGJ0bi1mcmFtZS1jbG9zZS1i ZzokYnRuLXNlY29uZGFyeS1ob3Zlci1iZyAhZGVmYXVsdDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL3N0YXRpYy9zY3NzL3Jlc291cmNlcy9oaWdoX2NvbnRyYXN0L190aGVtZS52YXJpYWJsZXMu c2NzcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9zY3NzL3Jlc291cmNlcy9oaWdoX2NvbnRyYXN0L190 aGVtZS52YXJpYWJsZXMuc2NzcwppbmRleCBiNDc4M2JjZTAuLmNkNjQ2MmRmNCAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vc3RhdGljL3Njc3MvcmVzb3VyY2VzL2hpZ2hfY29udHJhc3QvX3RoZW1l LnZhcmlhYmxlcy5zY3NzCisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9zY3NzL3Jlc291cmNlcy9o aWdoX2NvbnRyYXN0L190aGVtZS52YXJpYWJsZXMuc2NzcwpAQCAtMTUxLDcgKzE1MSw3IEBAICRi dG4tc2Vjb25kYXJ5LWJnOiB0cmFuc3BhcmVudDsKICRidG4tc2Vjb25kYXJ5LWZnOiAkY29sb3It cHJpbWFyeTsKICRidG4tc2Vjb25kYXJ5LWhvdmVyLWZnOiAkY29sb3ItZmc7CiAkYnRuLXNlY29u ZGFyeS1ib3JkZXI6ICRjb2xvci1wcmltYXJ5OwotJGJ0bi1zZWNvbmRhcnktZGlzYWJsZWQtYmc6 ICRjb2xvci1ncmF5LWxpZ2h0ZXI7CiskYnRuLXNlY29uZGFyeS1kaXNhYmxlZC1ib3JkZXItY29s b3I6ICRjb2xvci1ncmF5LWxpZ2h0ZXI7CiAkYnRuLXNlY29uZGFyeS1kaXNhYmxlZC1mZzogJGNv bG9yLWdyYXktbGlnaHRlcjsKIAogJGJ0bi1mcmFtZS1jbG9zZS1iZzogJGNvbG9yLWdyYXktbGln aHQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90ZW1wbGF0ZXMvYmFzZS5odG1sIGIvd2ViL3Bn YWRtaW4vdGVtcGxhdGVzL2Jhc2UuaHRtbAppbmRleCBjZTM3NWVjNDQuLjk5MWI3NDViMyAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vdGVtcGxhdGVzL2Jhc2UuaHRtbAorKysgYi93ZWIvcGdhZG1p bi90ZW1wbGF0ZXMvYmFzZS5odG1sCkBAIC0yMSw3ICsyMSw4IEBACiAgICAgPCEtLSBCYXNlIHRl bXBsYXRlIHN0eWxlc2hlZXRzIC0tPgogICAgIDxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0 eWxlc2hlZXQiIGhyZWY9Int7IHVybF9mb3IoJ3N0YXRpYycsIGZpbGVuYW1lPSdqcy9nZW5lcmF0 ZWQvc3R5bGUuY3NzJyl9fSIvPgogICAgIDxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxl c2hlZXQiIGhyZWY9Int7IHVybF9mb3IoJ3N0YXRpYycsIGZpbGVuYW1lPSdqcy9nZW5lcmF0ZWQv cGdhZG1pbi5zdHlsZS5jc3MnKX19Ii8+Ci0gICAgPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJlbD0i c3R5bGVzaGVldCIgaHJlZj0ie3sgdXJsX2Zvcignc3RhdGljJywgZmlsZW5hbWU9KCdqcy9nZW5l cmF0ZWQvJytnZXRfdGhlbWVfY3NzKCkpKSB9fSIvPgorICAgIHslIHNldCB0aGVtZSA9IGdldF90 aGVtZV9jc3MoKSAlfQorICAgIDxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQi IGhyZWY9Int7IHVybF9mb3IoJ3N0YXRpYycsIGZpbGVuYW1lPSgnanMvZ2VuZXJhdGVkLycrdGhl bWVbMF0pKSB9fSIgZGF0YS10aGVtZT0ie3t0aGVtZVsxXX19Ii8+CiAKICAgICAgPCEtLVZpZXcg c3BlY2lmaWVkIHN0eWxlc2hlZXRzLS0+CiAgICAgeyUgYmxvY2sgY3NzX2xpbmsgJX17JSBlbmRi bG9jayAlfQpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9TY2hlbWFWaWV3 L1NjaGVtYVZpZXcuc3BlYy5qcyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvU2NoZW1hVmll dy9TY2hlbWFWaWV3LnNwZWMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw Li4xNmJiMjhmOGEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0 L1NjaGVtYVZpZXcvU2NoZW1hVmlldy5zcGVjLmpzCkBAIC0wLDAgKzEsNDkyIEBACitpbXBvcnQg amFzbWluZUVuenltZSBmcm9tICdqYXNtaW5lLWVuenltZSc7CitpbXBvcnQgUmVhY3QgZnJvbSAn cmVhY3QnOworaW1wb3J0ICcuLi9oZWxwZXIvZW56eW1lLmhlbHBlcic7CitpbXBvcnQgeyBjcmVh dGVNb3VudCB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3Rlc3QtdXRpbHMnOworaW1wb3J0IHtU ZXN0U2NoZW1hLCBUZXN0U2NoZW1hQWxsVHlwZXN9IGZyb20gJy4vVGVzdFNjaGVtYS51aSc7Citp bXBvcnQgcGdBZG1pbiBmcm9tICdzb3VyY2VzL3BnYWRtaW4nOworaW1wb3J0IHttZXNzYWdlc30g ZnJvbSAnLi4vZmFrZV9tZXNzYWdlcyc7CitpbXBvcnQgU2NoZW1hVmlldyBmcm9tICcuLi8uLi8u Li9wZ2FkbWluL3N0YXRpYy9qcy9TY2hlbWFWaWV3JzsKK2ltcG9ydCAqIGFzIGxlZ2FjeUNvbm5l Y3RvciBmcm9tICdzb3VyY2VzL2hlbHBlcnMvbGVnYWN5Q29ubmVjdG9yJzsKKworY29uc3QgaW5p dERhdGEgPSB7CisgIGlkOiAxLAorICBmaWVsZDE6ICdmaWVsZDF2YWwnLAorICBmaWVsZDI6IDEs CisgIGZpZWxkY29sbDogWworICAgIHtmaWVsZDM6IDEsIGZpZWxkNDogJ2ZpZWxkNHZhbDEnLCBm aWVsZDU6ICdmaWVsZDV2YWwxJ30sCisgICAge2ZpZWxkMzogMiwgZmllbGQ0OiAnZmllbGQ0dmFs MicsIGZpZWxkNTogJ2ZpZWxkNXZhbDInfSwKKyAgXSwKKyAgZmllbGQzOiAzLAorICBmaWVsZDQ6 ICdmaWVsZDR2YWwnLAorfTsKKworZnVuY3Rpb24gZ2V0SW5pdERhdGEoKSB7CisgIHJldHVybiBQ cm9taXNlLnJlc29sdmUoaW5pdERhdGEpOworfQorCitmdW5jdGlvbiBnZXRTY2hlbWEoKSB7Cisg IHJldHVybiBuZXcgVGVzdFNjaGVtYSgpOworfQorCitmdW5jdGlvbiBnZXRTY2hlbWFBbGxUeXBl cygpIHsKKyAgcmV0dXJuIG5ldyBUZXN0U2NoZW1hQWxsVHlwZXMoKTsKK30KKworZGVzY3JpYmUo J1NjaGVtYVZpZXcnLCAoKT0+eworICBsZXQgbW91bnQ7CisKKyAgLyogVXNlIGNyZWF0ZU1vdW50 IHNvIHRoYXQgbWF0ZXJpYWwgdWkgY29tcG9uZW50cyBnZXRzIHRoZSByZXF1aXJlZCBjb250ZXh0 ICovCisgIC8qIGh0dHBzOi8vbWF0ZXJpYWwtdWkuY29tL2d1aWRlcy90ZXN0aW5nLyNhcGkgKi8K KyAgYmVmb3JlQWxsKCgpPT57CisgICAgbW91bnQgPSBjcmVhdGVNb3VudCgpOworICB9KTsKKwor ICBhZnRlckFsbCgoKSA9PiB7CisgICAgbW91bnQuY2xlYW5VcCgpOworICB9KTsKKworICBiZWZv cmVFYWNoKCgpPT57CisgICAgamFzbWluZUVuenltZSgpOworICAgIC8qIG1lc3NhZ2VzIHVzZWQg YnkgdmFsaWRhdG9ycyAqLworICAgIHBnQWRtaW4uQnJvd3NlciA9IHBnQWRtaW4uQnJvd3NlciB8 fCB7fTsKKyAgICBwZ0FkbWluLkJyb3dzZXIubWVzc2FnZXMgPSBwZ0FkbWluLkJyb3dzZXIubWVz c2FnZXMgfHwgbWVzc2FnZXM7CisgIH0pOworCisgIGRlc2NyaWJlKCdTY2hlbWFEaWFsb2dWaWV3 JywgKCk9PnsKKyAgICBsZXQgY3RybCwKKyAgICAgIG9uU2F2ZT1qYXNtaW5lLmNyZWF0ZVNweSgn b25TYXZlJykuYW5kLnJldHVyblZhbHVlKFByb21pc2UucmVzb2x2ZSgpKSwKKyAgICAgIG9uQ2xv c2U9amFzbWluZS5jcmVhdGVTcHkoJ29uQ2xvc2UnKSwKKyAgICAgIG9uSGVscD1qYXNtaW5lLmNy ZWF0ZVNweSgnb25IZWxwJyksCisgICAgICBvbkVkaXQ9amFzbWluZS5jcmVhdGVTcHkoJ29uRWRp dCcpLAorICAgICAgb25EYXRhQ2hhbmdlPWphc21pbmUuY3JlYXRlU3B5KCdvbkRhdGFDaGFuZ2Un KSwKKyAgICAgIGdldFNRTFZhbHVlPWphc21pbmUuY3JlYXRlU3B5KCdvbkVkaXQnKS5hbmQucmV0 dXJuVmFsdWUoUHJvbWlzZS5yZXNvbHZlKCdzZWxlY3QgMTsnKSksCisgICAgICBjdHJsTW91bnQg PSAocHJvcHMpPT57CisgICAgICAgIGN0cmw/LnVubW91bnQoKTsKKyAgICAgICAgY3RybCA9IG1v dW50KDxTY2hlbWFWaWV3CisgICAgICAgICAgZm9ybVR5cGU9J2RpYWxvZycKKyAgICAgICAgICBz Y2hlbWE9e2dldFNjaGVtYSgpfQorICAgICAgICAgIHZpZXdIZWxwZXJQcm9wcz17eworICAgICAg ICAgICAgbW9kZTogJ2NyZWF0ZScsCisgICAgICAgICAgfX0KKyAgICAgICAgICBvblNhdmU9e29u U2F2ZX0KKyAgICAgICAgICBvbkNsb3NlPXtvbkNsb3NlfQorICAgICAgICAgIG9uSGVscD17b25I ZWxwfQorICAgICAgICAgIG9uRWRpdD17b25FZGl0fQorICAgICAgICAgIG9uRGF0YUNoYW5nZT17 b25EYXRhQ2hhbmdlfQorICAgICAgICAgIGNvbmZpcm1PbkNsb3NlUmVzZXQ9e3RydWV9CisgICAg ICAgICAgaGFzU1FMPXt0cnVlfQorICAgICAgICAgIGdldFNRTFZhbHVlPXtnZXRTUUxWYWx1ZX0K KyAgICAgICAgICBkaXNhYmxlU3FsSGVscD17ZmFsc2V9CisgICAgICAgICAgey4uLnByb3BzfQor ICAgICAgICAvPik7CisgICAgICB9LAorICAgICAgc2ltdWxhdGVWYWxpZERhdGEgPSAoKT0+ewor ICAgICAgICBjdHJsLmZpbmQoJ01hcHBlZEZvcm1Db250cm9sW2lkPSJmaWVsZDEiXScpLmZpbmQo J2lucHV0Jykuc2ltdWxhdGUoJ2NoYW5nZScsIHt0YXJnZXQ6IHt2YWx1ZTogJ3ZhbDEnfX0pOwor ICAgICAgICBjdHJsLmZpbmQoJ01hcHBlZEZvcm1Db250cm9sW2lkPSJmaWVsZDIiXScpLmZpbmQo J2lucHV0Jykuc2ltdWxhdGUoJ2NoYW5nZScsIHt0YXJnZXQ6IHt2YWx1ZTogJzInfX0pOworICAg ICAgICBjdHJsLmZpbmQoJ01hcHBlZEZvcm1Db250cm9sW2lkPSJmaWVsZDUiXScpLmZpbmQoJ3Rl eHRhcmVhJykuc2ltdWxhdGUoJ2NoYW5nZScsIHt0YXJnZXQ6IHt2YWx1ZTogJ3ZhbDUnfX0pOwor ICAgICAgICAvKiBBZGQgYSByb3cgKi8KKyAgICAgICAgY3RybC5maW5kKCdEYXRhR3JpZFZpZXcn KS5maW5kKCdQZ0ljb25CdXR0b25bZGF0YS10ZXN0PSJhZGQtcm93Il0nKS5maW5kKCdidXR0b24n KS5zaW11bGF0ZSgnY2xpY2snKTsKKyAgICAgICAgY3RybC5maW5kKCdEYXRhR3JpZFZpZXcnKS5m aW5kKCdQZ0ljb25CdXR0b25bZGF0YS10ZXN0PSJhZGQtcm93Il0nKS5maW5kKCdidXR0b24nKS5z aW11bGF0ZSgnY2xpY2snKTsKKyAgICAgICAgY3RybC5maW5kKCdNYXBwZWRDZWxsQ29udHJvbFtp ZD0iZmllbGQ1Il0nKS5hdCgwKS5maW5kKCdpbnB1dCcpLnNpbXVsYXRlKCdjaGFuZ2UnLCB7dGFy Z2V0OiB7dmFsdWU6ICdydmFsNTEnfX0pOworICAgICAgICBjdHJsLmZpbmQoJ01hcHBlZENlbGxD b250cm9sW2lkPSJmaWVsZDUiXScpLmF0KDEpLmZpbmQoJ2lucHV0Jykuc2ltdWxhdGUoJ2NoYW5n ZScsIHt0YXJnZXQ6IHt2YWx1ZTogJ3J2YWw1Mid9fSk7CisgICAgICB9OworICAgIGJlZm9yZUVh Y2goKCk9PnsKKyAgICAgIGN0cmxNb3VudCgpOworICAgIH0pOworCisgICAgaXQoJ2luaXQnLCAo ZG9uZSk9PnsKKyAgICAgIHNldFRpbWVvdXQoKCk9PnsKKyAgICAgICAgY3RybC51cGRhdGUoKTsK KyAgICAgICAgZXhwZWN0KGN0cmwuZmluZCgnTWFwcGVkRm9ybUNvbnRyb2wnKS5sZW5ndGgpLnRv QmUoNik7CisgICAgICAgIGV4cGVjdChjdHJsLmZpbmQoJ0Zvcm1WaWV3JykubGVuZ3RoKS50b0Jl KDIpOworICAgICAgICBleHBlY3QoY3RybC5maW5kKCdEYXRhR3JpZFZpZXcnKS5sZW5ndGgpLnRv QmUoMSk7CisgICAgICAgIGV4cGVjdChjdHJsLmZpbmQoJ0RlZmF1bHRCdXR0b25bZGF0YS10ZXN0 PSJSZXNldCJdJykucHJvcCgnZGlzYWJsZWQnKSkudG9CZVRydWUoKTsKKyAgICAgICAgZXhwZWN0 KGN0cmwuZmluZCgnUHJpbWFyeUJ1dHRvbltkYXRhLXRlc3Q9IlNhdmUiXScpLnByb3AoJ2Rpc2Fi bGVkJykpLnRvQmVUcnVlKCk7CisKKyAgICAgICAgZG9uZSgpOworICAgICAgfSwgMCk7CisgICAg fSk7CisKKyAgICBpdCgnY2hhbmdlIHRleHQnLCAoZG9uZSk9PnsKKyAgICAgIGN0cmwuZmluZCgn TWFwcGVkRm9ybUNvbnRyb2xbaWQ9ImZpZWxkMiJdJykuZmluZCgnaW5wdXQnKS5zaW11bGF0ZSgn Y2hhbmdlJywge3RhcmdldDoge3ZhbHVlOiAnMid9fSk7CisgICAgICBzZXRUaW1lb3V0KCgpPT57 CisgICAgICAgIGN0cmwudXBkYXRlKCk7CisgICAgICAgIC8qIEVycm9yIHNob3VsZCBjb21lIGZv ciBmaWVsZDEgYXMgaXQgaXMgZW1wdHkgYW5kIG5vRW1wdHkgdHJ1ZSAqLworICAgICAgICBleHBl Y3QoY3RybC5maW5kKCdGb3JtRm9vdGVyTWVzc2FnZScpLnByb3AoJ21lc3NhZ2UnKSkudG9CZSgn XCdGaWVsZDFcJyBjYW5ub3QgYmUgZW1wdHkuJyk7CisgICAgICAgIGV4cGVjdChjdHJsLmZpbmQo J1ByaW1hcnlCdXR0b25bZGF0YS10ZXN0PSJTYXZlIl0nKS5wcm9wKCdkaXNhYmxlZCcpKS50b0Jl VHJ1ZSgpOworICAgICAgICBkb25lKCk7CisgICAgICB9LCAwKTsKKyAgICB9KTsKKworICAgIGl0 KCdjbG9zZSBlcnJvciBvbiBjbGljaycsIChkb25lKT0+eworICAgICAgY3RybC5maW5kKCdGb3Jt Rm9vdGVyTWVzc2FnZScpLmZpbmQoJ2J1dHRvbicpLnNpbXVsYXRlKCdjbGljaycpOworICAgICAg c2V0VGltZW91dCgoKT0+eworICAgICAgICBjdHJsLnVwZGF0ZSgpOworICAgICAgICBleHBlY3Qo Y3RybC5maW5kKCdGb3JtRm9vdGVyTWVzc2FnZScpLnByb3AoJ21lc3NhZ2UnKSkudG9CZSgnJyk7 CisgICAgICAgIGRvbmUoKTsKKyAgICAgIH0sIDApOworICAgIH0pOworCisgICAgaXQoJ3ZhbGlk IGZvcm0gZGF0YScsIChkb25lKT0+eworICAgICAgc2ltdWxhdGVWYWxpZERhdGEoKTsKKyAgICAg IHNldFRpbWVvdXQoKCk9PnsKKyAgICAgICAgY3RybC51cGRhdGUoKTsKKyAgICAgICAgZXhwZWN0 KGN0cmwuZmluZCgnRm9ybUZvb3Rlck1lc3NhZ2UnKS5wcm9wKCdtZXNzYWdlJykpLnRvQmVGYWxz eSgpOworICAgICAgICBkb25lKCk7CisgICAgICB9LCAwKTsKKyAgICB9KTsKKworICAgIGRlc2Ny aWJlKCdEYXRhR3JpZFZpZXcnLCAoKT0+eworICAgICAgaXQoJ2FkZCByb3cnLCAoZG9uZSk9PnsK KyAgICAgICAgY3RybC5maW5kKCdEYXRhR3JpZFZpZXcnKS5maW5kKCdQZ0ljb25CdXR0b25bZGF0 YS10ZXN0PSJhZGQtcm93Il0nKS5maW5kKCdidXR0b24nKS5zaW11bGF0ZSgnY2xpY2snKTsKKyAg ICAgICAgc2V0VGltZW91dCgoKT0+eworICAgICAgICAgIGN0cmwudXBkYXRlKCk7CisgICAgICAg ICAgZXhwZWN0KGN0cmwuZmluZCgnRGF0YUdyaWRWaWV3JykuZmluZCgnRGF0YVRhYmxlUm93Jyku bGVuZ3RoKS50b0JlKDEpOworICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSwgMCk7CisgICAg ICB9KTsKKworICAgICAgaXQoJ3JlbW92ZSByb3cnLCAoZG9uZSk9PnsKKyAgICAgICAgc2ltdWxh dGVWYWxpZERhdGEoKTsKKworICAgICAgICAvKiBQcmVzcyBPSyAqLworICAgICAgICBsZXQgY29u ZmlybVNweSA9IHNweU9uKGxlZ2FjeUNvbm5lY3RvciwgJ2NvbmZpcm1EZWxldGVSb3cnKS5hbmQu Y2FsbEZha2UoKHllc0ZuKT0+eworICAgICAgICAgIHllc0ZuKCk7CisgICAgICAgIH0pOworICAg ICAgICBjdHJsLmZpbmQoJ0RhdGFHcmlkVmlldycpLmZpbmQoJ1BnSWNvbkJ1dHRvbltkYXRhLXRl c3Q9ImRlbGV0ZS1yb3ciXScpLmF0KDApLmZpbmQoJ2J1dHRvbicpLnNpbXVsYXRlKCdjbGljaycp OworICAgICAgICBleHBlY3QoY29uZmlybVNweS5jYWxscy5hcmdzRm9yKDApWzJdKS50b0JlKCdD dXN0b20gZGVsZXRlIHRpdGxlJyk7CisgICAgICAgIGV4cGVjdChjb25maXJtU3B5LmNhbGxzLmFy Z3NGb3IoMClbM10pLnRvQmUoJ0N1c3RvbSBkZWxldGUgbWVzc2FnZScpOworCisgICAgICAgIC8q IFByZXNzIENhbmNlbCAqLworICAgICAgICBzcHlPbihsZWdhY3lDb25uZWN0b3IsICdjb25maXJt RGVsZXRlUm93JykuYW5kLmNhbGxGYWtlKCh5ZXNGbiwgY2FuY2VsRm4pPT57CisgICAgICAgICAg Y2FuY2VsRm4oKTsKKyAgICAgICAgfSk7CisgICAgICAgIGN0cmwuZmluZCgnRGF0YUdyaWRWaWV3 JykuZmluZCgnUGdJY29uQnV0dG9uW2RhdGEtdGVzdD0iZGVsZXRlLXJvdyJdJykuYXQoMCkuZmlu ZCgnYnV0dG9uJykuc2ltdWxhdGUoJ2NsaWNrJyk7CisgICAgICAgIHNldFRpbWVvdXQoKCk9PnsK KyAgICAgICAgICBjdHJsLnVwZGF0ZSgpOworICAgICAgICAgIGV4cGVjdChjdHJsLmZpbmQoJ0Rh dGFHcmlkVmlldycpLmZpbmQoJ0RhdGFUYWJsZVJvdycpLmxlbmd0aCkudG9CZSgxKTsKKyAgICAg ICAgICBkb25lKCk7CisgICAgICAgIH0sIDApOworICAgICAgfSk7CisKKyAgICAgIGl0KCdleHBh bmQgcm93JywgKGRvbmUpPT57CisgICAgICAgIHNpbXVsYXRlVmFsaWREYXRhKCk7CisgICAgICAg IGN0cmwuZmluZCgnRGF0YUdyaWRWaWV3JykuZmluZCgnUGdJY29uQnV0dG9uW2RhdGEtdGVzdD0i ZXhwYW5kLXJvdyJdJykuYXQoMCkuZmluZCgnYnV0dG9uJykuc2ltdWxhdGUoJ2NsaWNrJyk7Cisg ICAgICAgIHNldFRpbWVvdXQoKCk9PnsKKyAgICAgICAgICBjdHJsLnVwZGF0ZSgpOworICAgICAg ICAgIGV4cGVjdChjdHJsLmZpbmQoJ0RhdGFHcmlkVmlldycpLmZpbmQoJ0Zvcm1WaWV3JykubGVu Z3RoKS50b0JlKDEpOworICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSwgMCk7CisgICAgICB9 KTsKKworICAgICAgaXQoJ3VuaXF1ZSBjb2wgdGVzdCcsIChkb25lKT0+eworICAgICAgICBzaW11 bGF0ZVZhbGlkRGF0YSgpOworICAgICAgICBjdHJsLmZpbmQoJ01hcHBlZENlbGxDb250cm9sW2lk PSJmaWVsZDUiXScpLmF0KDEpLmZpbmQoJ2lucHV0Jykuc2ltdWxhdGUoJ2NoYW5nZScsIHt0YXJn ZXQ6IHt2YWx1ZTogJ3J2YWw1MSd9fSk7CisgICAgICAgIHNldFRpbWVvdXQoKCk9PnsKKyAgICAg ICAgICBjdHJsLnVwZGF0ZSgpOworICAgICAgICAgIGV4cGVjdChjdHJsLmZpbmQoJ0Zvcm1Gb290 ZXJNZXNzYWdlJykucHJvcCgnbWVzc2FnZScpKS50b0JlKCdGaWVsZDUgaW4gRmllbGRDb2xsIG11 c3QgYmUgdW5pcXVlLicpOworICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSwgMCk7CisgICAg ICB9KTsKKyAgICB9KTsKKworICAgIGRlc2NyaWJlKCdTUUwgdGFiJywgKCk9PnsKKyAgICAgIGl0 KCdubyBjaGFuZ2VzJywgKGRvbmUpPT57CisgICAgICAgIGN0cmwuZmluZCgnRm9yd2FyZFJlZihU YWIpW2xhYmVsPSJTUUwiXScpLmZpbmQoJ2J1dHRvbicpLnNpbXVsYXRlKCdjbGljaycpOworICAg ICAgICBzZXRUaW1lb3V0KCgpPT57CisgICAgICAgICAgY3RybC51cGRhdGUoKTsKKyAgICAgICAg ICAvKiBEb250IHNob3cgZXJyb3IgbWVzc2FnZSAqLworICAgICAgICAgIGV4cGVjdChjdHJsLmZp bmQoJ0Zvcm1Gb290ZXJNZXNzYWdlJykucHJvcCgnbWVzc2FnZScpKS50b0JlKCcnKTsKKyAgICAg ICAgICBleHBlY3QoY3RybC5maW5kKCdDb2RlTWlycm9yJykucHJvcCgndmFsdWUnKSkudG9CZSgn LS0gTm8gdXBkYXRlcy4nKTsKKyAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0sIDApOworICAg ICAgfSk7CisKKyAgICAgIGl0KCdkYXRhIGludmFsaWQnLCAoZG9uZSk9PnsKKyAgICAgICAgY3Ry bC5maW5kKCdNYXBwZWRGb3JtQ29udHJvbFtpZD0iZmllbGQyIl0nKS5maW5kKCdpbnB1dCcpLnNp bXVsYXRlKCdjaGFuZ2UnLCB7dGFyZ2V0OiB7dmFsdWU6ICcyJ319KTsKKyAgICAgICAgY3RybC5m aW5kKCdGb3J3YXJkUmVmKFRhYilbbGFiZWw9IlNRTCJdJykuZmluZCgnYnV0dG9uJykuc2ltdWxh dGUoJ2NsaWNrJyk7CisgICAgICAgIHNldFRpbWVvdXQoKCk9PnsKKyAgICAgICAgICBjdHJsLnVw ZGF0ZSgpOworICAgICAgICAgIGV4cGVjdChjdHJsLmZpbmQoJ0NvZGVNaXJyb3InKS5wcm9wKCd2 YWx1ZScpKS50b0JlKCctLSBEZWZpbml0aW9uIGluY29tcGxldGUuJyk7CisgICAgICAgICAgZG9u ZSgpOworICAgICAgICB9LCAwKTsKKyAgICAgIH0pOworCisgICAgICBpdCgndmFsaWQgZGF0YScs IChkb25lKT0+eworICAgICAgICBzaW11bGF0ZVZhbGlkRGF0YSgpOworICAgICAgICBjdHJsLmZp bmQoJ0ZvcndhcmRSZWYoVGFiKVtsYWJlbD0iU1FMIl0nKS5maW5kKCdidXR0b24nKS5zaW11bGF0 ZSgnY2xpY2snKTsKKyAgICAgICAgc2V0VGltZW91dCgoKT0+eworICAgICAgICAgIGN0cmwudXBk YXRlKCk7CisgICAgICAgICAgZXhwZWN0KGN0cmwuZmluZCgnQ29kZU1pcnJvcicpLnByb3AoJ3Zh bHVlJykpLnRvQmUoJ3NlbGVjdCAxOycpOworICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSwg MCk7CisgICAgICB9KTsKKyAgICB9KTsKKworICAgIGl0KCdvblNhdmUgY2xpY2snLCAoZG9uZSk9 PnsKKyAgICAgIHNpbXVsYXRlVmFsaWREYXRhKCk7CisgICAgICBsZXQgYWxlcnRTcHkgPSBzcHlP bihsZWdhY3lDb25uZWN0b3IucGdBbGVydGlmeSgpLCAnYWxlcnQnKTsKKyAgICAgIG9uU2F2ZS5j YWxscy5yZXNldCgpOworICAgICAgY3RybC5maW5kKCdQcmltYXJ5QnV0dG9uW2RhdGEtdGVzdD0i U2F2ZSJdJykuc2ltdWxhdGUoJ2NsaWNrJyk7CisgICAgICBzZXRUaW1lb3V0KCgpPT57CisgICAg ICAgIGV4cGVjdChvblNhdmUuY2FsbHMuYXJnc0ZvcigwKVswXSkudG9CZSh0cnVlKTsKKyAgICAg ICAgZXhwZWN0KG9uU2F2ZS5jYWxscy5hcmdzRm9yKDApWzFdKS50b0VxdWFsKHsKKyAgICAgICAg ICBpZDogdW5kZWZpbmVkLAorICAgICAgICAgIGZpZWxkMTogJ3ZhbDEnLAorICAgICAgICAgIGZp ZWxkMjogMiwKKyAgICAgICAgICBmaWVsZDU6ICd2YWw1JywKKyAgICAgICAgICBmaWVsZGNvbGw6 IFsKKyAgICAgICAgICAgIHtmaWVsZDM6IG51bGwsIGZpZWxkNDogbnVsbCwgZmllbGQ1OiAgJ3J2 YWw1MSd9LAorICAgICAgICAgICAge2ZpZWxkMzogbnVsbCwgZmllbGQ0OiBudWxsLCBmaWVsZDU6 ICAncnZhbDUyJ30sCisgICAgICAgICAgXQorICAgICAgICB9KTsKKyAgICAgICAgZXhwZWN0KGFs ZXJ0U3B5KS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnV2FybmluZycsICdzb21lIGluZm9ybSB0ZXh0 Jyk7CisgICAgICAgIGRvbmUoKTsKKyAgICAgIH0sIDApOworICAgIH0pOworCisgICAgZGVzY3Jp YmUoJ29uUmVzZXQnLCAoKT0+eworICAgICAgaXQoJ3dpdGggY29uZmlybSBjaGVjayBhbmQgeWVz IGNsaWNrJywgKGRvbmUpPT57CisgICAgICAgIHNpbXVsYXRlVmFsaWREYXRhKCk7CisgICAgICAg IG9uRGF0YUNoYW5nZS5jYWxscy5yZXNldCgpOworICAgICAgICBsZXQgY29uZmlybVNweSA9IHNw eU9uKGxlZ2FjeUNvbm5lY3Rvci5wZ0FsZXJ0aWZ5KCksICdjb25maXJtJykuYW5kLmNhbGxUaHJv dWdoKCk7CisgICAgICAgIGN0cmwuZmluZCgnRGVmYXVsdEJ1dHRvbltkYXRhLXRlc3Q9IlJlc2V0 Il0nKS5zaW11bGF0ZSgnY2xpY2snKTsKKyAgICAgICAgLyogUHJlc3MgT0sgKi8KKyAgICAgICAg Y29uZmlybVNweS5jYWxscy5hcmdzRm9yKDApWzJdKCk7CisgICAgICAgIHNldFRpbWVvdXQoKCk9 PnsKKyAgICAgICAgICBjdHJsLnVwZGF0ZSgpOworICAgICAgICAgIGV4cGVjdChjdHJsLmZpbmQo J0RlZmF1bHRCdXR0b25bZGF0YS10ZXN0PSJSZXNldCJdJykucHJvcCgnZGlzYWJsZWQnKSkudG9C ZVRydWUoKTsKKyAgICAgICAgICBleHBlY3QoY3RybC5maW5kKCdQcmltYXJ5QnV0dG9uW2RhdGEt dGVzdD0iU2F2ZSJdJykucHJvcCgnZGlzYWJsZWQnKSkudG9CZVRydWUoKTsKKyAgICAgICAgICBl eHBlY3Qob25EYXRhQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChmYWxzZSk7CisgICAgICAg ICAgZG9uZSgpOworICAgICAgICB9LCAwKTsKKyAgICAgIH0pOworCisgICAgICBpdCgnd2l0aCBj b25maXJtIGNoZWNrIGFuZCBjYW5jZWwgY2xpY2snLCAoZG9uZSk9PnsKKyAgICAgICAgc2ltdWxh dGVWYWxpZERhdGEoKTsKKyAgICAgICAgbGV0IGNvbmZpcm1TcHkgPSBzcHlPbihsZWdhY3lDb25u ZWN0b3IucGdBbGVydGlmeSgpLCAnY29uZmlybScpLmFuZC5jYWxsVGhyb3VnaCgpOworICAgICAg ICBjdHJsLmZpbmQoJ0RlZmF1bHRCdXR0b25bZGF0YS10ZXN0PSJSZXNldCJdJykuc2ltdWxhdGUo J2NsaWNrJyk7CisgICAgICAgIC8qIFByZXNzIGNhbmNlbCAqLworICAgICAgICBjb25maXJtU3B5 LmNhbGxzLmFyZ3NGb3IoMClbM10oKTsKKyAgICAgICAgc2V0VGltZW91dCgoKT0+eworICAgICAg ICAgIGN0cmwudXBkYXRlKCk7CisgICAgICAgICAgZXhwZWN0KGN0cmwuZmluZCgnRGVmYXVsdEJ1 dHRvbltkYXRhLXRlc3Q9IlJlc2V0Il0nKS5wcm9wKCdkaXNhYmxlZCcpKS50b0JlRmFsc2UoKTsK KyAgICAgICAgICBleHBlY3QoY3RybC5maW5kKCdQcmltYXJ5QnV0dG9uW2RhdGEtdGVzdD0iU2F2 ZSJdJykucHJvcCgnZGlzYWJsZWQnKSkudG9CZUZhbHNlKCk7CisgICAgICAgICAgZG9uZSgpOwor ICAgICAgICB9LCAwKTsKKyAgICAgIH0pOworCisKKyAgICAgIGl0KCdubyBjb25maXJtIGNoZWNr JywgKGRvbmUpPT57CisgICAgICAgIGN0cmxNb3VudCh7CisgICAgICAgICAgY29uZmlybU9uQ2xv c2VSZXNldDogZmFsc2UsCisgICAgICAgIH0pOworICAgICAgICBjdHJsLnVwZGF0ZSgpOworICAg ICAgICBzaW11bGF0ZVZhbGlkRGF0YSgpOworICAgICAgICBvbkRhdGFDaGFuZ2UuY2FsbHMucmVz ZXQoKTsKKyAgICAgICAgbGV0IGNvbmZpcm1TcHkgPSBzcHlPbihsZWdhY3lDb25uZWN0b3IucGdB bGVydGlmeSgpLCAnY29uZmlybScpLmFuZC5jYWxsVGhyb3VnaCgpOworICAgICAgICBjdHJsLmZp bmQoJ0RlZmF1bHRCdXR0b25bZGF0YS10ZXN0PSJSZXNldCJdJykuc2ltdWxhdGUoJ2NsaWNrJyk7 CisgICAgICAgIHNldFRpbWVvdXQoKCk9PnsKKyAgICAgICAgICBjdHJsLnVwZGF0ZSgpOworICAg ICAgICAgIGV4cGVjdChjb25maXJtU3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpOworICAgICAg ICAgIGV4cGVjdChjdHJsLmZpbmQoJ0RlZmF1bHRCdXR0b25bZGF0YS10ZXN0PSJSZXNldCJdJyku cHJvcCgnZGlzYWJsZWQnKSkudG9CZVRydWUoKTsKKyAgICAgICAgICBleHBlY3QoY3RybC5maW5k KCdQcmltYXJ5QnV0dG9uW2RhdGEtdGVzdD0iU2F2ZSJdJykucHJvcCgnZGlzYWJsZWQnKSkudG9C ZVRydWUoKTsKKyAgICAgICAgICBleHBlY3Qob25EYXRhQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVk V2l0aChmYWxzZSk7CisgICAgICAgICAgZG9uZSgpOworICAgICAgICB9LCAwKTsKKyAgICAgIH0p OworICAgIH0pOworCisgICAgaXQoJ29uSGVscCBTUUwnLCAoZG9uZSk9PnsKKyAgICAgIGN0cmwu ZmluZCgnUGdJY29uQnV0dG9uW2RhdGEtdGVzdD0ic3FsLWhlbHAiXScpLmZpbmQoJ2J1dHRvbicp LnNpbXVsYXRlKCdjbGljaycpOworICAgICAgc2V0VGltZW91dCgoKT0+eworICAgICAgICBjdHJs LnVwZGF0ZSgpOworICAgICAgICBleHBlY3Qob25IZWxwKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh0 cnVlLCB0cnVlKTsKKyAgICAgICAgZG9uZSgpOworICAgICAgfSwgMCk7CisgICAgfSk7CisKKyAg ICBpdCgnb25IZWxwIERpYWxvZycsIChkb25lKT0+eworICAgICAgY3RybC5maW5kKCdQZ0ljb25C dXR0b25bZGF0YS10ZXN0PSJkaWFsb2ctaGVscCJdJykuZmluZCgnYnV0dG9uJykuc2ltdWxhdGUo J2NsaWNrJyk7CisgICAgICBzZXRUaW1lb3V0KCgpPT57CisgICAgICAgIGN0cmwudXBkYXRlKCk7 CisgICAgICAgIGV4cGVjdChvbkhlbHApLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGZhbHNlLCB0cnVl KTsKKyAgICAgICAgZG9uZSgpOworICAgICAgfSwgMCk7CisgICAgfSk7CisKKyAgICBkZXNjcmli ZSgnZWRpdCBtb2RlJywgKCk9PnsKKyAgICAgIGxldCBzaW11bGF0ZUNoYW5nZXMgPSAoKT0+ewor ICAgICAgICBjdHJsLmZpbmQoJ01hcHBlZEZvcm1Db250cm9sW2lkPSJmaWVsZDEiXScpLmZpbmQo J2lucHV0Jykuc2ltdWxhdGUoJ2NoYW5nZScsIHt0YXJnZXQ6IHt2YWx1ZTogJ3ZhbDEnfX0pOwor ICAgICAgICBjdHJsLmZpbmQoJ01hcHBlZEZvcm1Db250cm9sW2lkPSJmaWVsZDUiXScpLmZpbmQo J3RleHRhcmVhJykuc2ltdWxhdGUoJ2NoYW5nZScsIHt0YXJnZXQ6IHt2YWx1ZTogJ3ZhbDUnfX0p OworCisgICAgICAgIC8qIEFkZCBhIHJvdyAqLworICAgICAgICBjdHJsLmZpbmQoJ0RhdGFHcmlk VmlldycpLmZpbmQoJ1BnSWNvbkJ1dHRvbltkYXRhLXRlc3Q9ImFkZC1yb3ciXScpLmZpbmQoJ2J1 dHRvbicpLnNpbXVsYXRlKCdjbGljaycpOworICAgICAgICBjdHJsLmZpbmQoJ01hcHBlZENlbGxD b250cm9sW2lkPSJmaWVsZDUiXScpLmF0KDIpLmZpbmQoJ2lucHV0Jykuc2ltdWxhdGUoJ2NoYW5n ZScsIHt0YXJnZXQ6IHt2YWx1ZTogJ3J2YWw1Myd9fSk7CisKKyAgICAgICAgLyogUmVtb3ZlIHRo ZSAxc3Qgcm93ICovCisgICAgICAgIGN0cmwuZmluZCgnRGF0YVRhYmxlUm93JykuZmluZCgnUGdJ Y29uQnV0dG9uW2RhdGEtdGVzdD0iZGVsZXRlLXJvdyJdJykuYXQoMCkuZmluZCgnYnV0dG9uJyku c2ltdWxhdGUoJ2NsaWNrJyk7CisKKyAgICAgICAgLyogRWRpdCB0aGUgMm5kIHJvdyB3aGljaCBp cyBmaXJzdCBub3cqLworICAgICAgICBjdHJsLmZpbmQoJ01hcHBlZENlbGxDb250cm9sW2lkPSJm aWVsZDUiXScpLmF0KDApLmZpbmQoJ2lucHV0Jykuc2ltdWxhdGUoJ2NoYW5nZScsIHt0YXJnZXQ6 IHt2YWx1ZTogJ3J2YWxuZXcnfX0pOworCisgICAgICB9OworICAgICAgYmVmb3JlRWFjaCgoKT0+ eworICAgICAgICBjdHJsTW91bnQoeworICAgICAgICAgIGdldEluaXREYXRhOiBnZXRJbml0RGF0 YSwKKyAgICAgICAgICB2aWV3SGVscGVyUHJvcHM6IHsKKyAgICAgICAgICAgIG1vZGU6ICdlZGl0 JywKKyAgICAgICAgICB9CisgICAgICAgIH0pOworCisgICAgICAgIC8qIFByZXNzIE9LICovCisg ICAgICAgIHNweU9uKGxlZ2FjeUNvbm5lY3RvciwgJ2NvbmZpcm1EZWxldGVSb3cnKS5hbmQuY2Fs bEZha2UoKHllc0ZuKT0+eworICAgICAgICAgIHllc0ZuKCk7CisgICAgICAgIH0pOworICAgICAg fSk7CisgICAgICBpdCgnaW5pdCcsIChkb25lKT0+eworICAgICAgICBzZXRUaW1lb3V0KCgpPT57 CisgICAgICAgICAgY3RybC51cGRhdGUoKTsKKyAgICAgICAgICBleHBlY3QoY3RybC5maW5kKCdN YXBwZWRGb3JtQ29udHJvbCcpLmxlbmd0aCkudG9CZSg0KTsKKyAgICAgICAgICBleHBlY3QoY3Ry bC5maW5kKCdGb3JtVmlldycpLmxlbmd0aCkudG9CZSgyKTsKKyAgICAgICAgICBleHBlY3QoY3Ry bC5maW5kKCdEYXRhR3JpZFZpZXcnKS5sZW5ndGgpLnRvQmUoMSk7CisgICAgICAgICAgZXhwZWN0 KGN0cmwuZmluZCgnRGF0YVRhYmxlUm93JykubGVuZ3RoKS50b0JlKDIpOworICAgICAgICAgIGV4 cGVjdChjdHJsLmZpbmQoJ0RlZmF1bHRCdXR0b25bZGF0YS10ZXN0PSJSZXNldCJdJykucHJvcCgn ZGlzYWJsZWQnKSkudG9CZVRydWUoKTsKKyAgICAgICAgICBleHBlY3QoY3RybC5maW5kKCdQcmlt YXJ5QnV0dG9uW2RhdGEtdGVzdD0iU2F2ZSJdJykucHJvcCgnZGlzYWJsZWQnKSkudG9CZVRydWUo KTsKKworICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfSwgMCk7CisgICAgICB9KTsKKworICAg ICAgaXQoJ29uU2F2ZSBhZnRlciBjaGFuZ2UnLCAoZG9uZSk9PnsKKyAgICAgICAgc2V0VGltZW91 dCgoKT0+eworICAgICAgICAgIGN0cmwudXBkYXRlKCk7CisgICAgICAgICAgc2ltdWxhdGVDaGFu Z2VzKCk7CisKKyAgICAgICAgICBsZXQgYWxlcnRTcHkgPSBzcHlPbihsZWdhY3lDb25uZWN0b3Iu cGdBbGVydGlmeSgpLCAnYWxlcnQnKTsKKyAgICAgICAgICBvblNhdmUuY2FsbHMucmVzZXQoKTsK KyAgICAgICAgICBjdHJsLmZpbmQoJ1ByaW1hcnlCdXR0b25bZGF0YS10ZXN0PSJTYXZlIl0nKS5z aW11bGF0ZSgnY2xpY2snKTsKKyAgICAgICAgICBzZXRUaW1lb3V0KCgpPT57CisgICAgICAgICAg ICBjdHJsLnVwZGF0ZSgpOworICAgICAgICAgICAgZXhwZWN0KG9uU2F2ZS5jYWxscy5hcmdzRm9y KDApWzBdKS50b0JlKGZhbHNlKTsKKyAgICAgICAgICAgIGV4cGVjdChvblNhdmUuY2FsbHMuYXJn c0ZvcigwKVsxXSkudG9FcXVhbCh7CisgICAgICAgICAgICAgIGlkOiAxLAorICAgICAgICAgICAg ICBmaWVsZDE6ICd2YWwxJywKKyAgICAgICAgICAgICAgZmllbGQ1OiAndmFsNScsCisgICAgICAg ICAgICAgIGZpZWxkY29sbDogeworICAgICAgICAgICAgICAgIGFkZGVkOiBbCisgICAgICAgICAg ICAgICAgICB7IGZpZWxkMzogbnVsbCwgZmllbGQ0OiBudWxsLCBmaWVsZDU6ICdydmFsNTMnfQor ICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgY2hhbmdlZDogWworICAgICAgICAg ICAgICAgICAgeyBmaWVsZDM6IDIsIGZpZWxkNDogJ2ZpZWxkNHZhbDInLCBmaWVsZDU6ICdydmFs bmV3J30KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgIGRlbGV0ZWQ6IFsKKyAg ICAgICAgICAgICAgICAgIHsgZmllbGQzOiAxLCBmaWVsZDQ6ICdmaWVsZDR2YWwxJywgZmllbGQ1 OiAnZmllbGQ1dmFsMSd9CisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICB9CisgICAg ICAgICAgICB9KTsKKyAgICAgICAgICAgIGV4cGVjdChhbGVydFNweSkudG9IYXZlQmVlbkNhbGxl ZFdpdGgoJ1dhcm5pbmcnLCAnc29tZSBpbmZvcm0gdGV4dCcpOworICAgICAgICAgICAgZG9uZSgp OworICAgICAgICAgIH0sIDApOworICAgICAgICB9LCAwKTsKKyAgICAgIH0pOworCisgICAgICBp dCgnb25SZXNldCBhZnRlciBjaGFuZ2UnLCAoZG9uZSk9PnsKKyAgICAgICAgc2V0VGltZW91dCgo KT0+eworICAgICAgICAgIGN0cmwudXBkYXRlKCk7CisgICAgICAgICAgc2ltdWxhdGVDaGFuZ2Vz KCk7CisgICAgICAgICAgb25EYXRhQ2hhbmdlLmNhbGxzLnJlc2V0KCk7CisgICAgICAgICAgbGV0 IGNvbmZpcm1TcHkgPSBzcHlPbihsZWdhY3lDb25uZWN0b3IucGdBbGVydGlmeSgpLCAnY29uZmly bScpLmFuZC5jYWxsVGhyb3VnaCgpOworICAgICAgICAgIGN0cmwuZmluZCgnRGVmYXVsdEJ1dHRv bltkYXRhLXRlc3Q9IlJlc2V0Il0nKS5zaW11bGF0ZSgnY2xpY2snKTsKKyAgICAgICAgICAvKiBQ cmVzcyBPSyAqLworICAgICAgICAgIGNvbmZpcm1TcHkuY2FsbHMuYXJnc0ZvcigwKVsyXSgpOwor ICAgICAgICAgIHNldFRpbWVvdXQoKCk9PnsKKyAgICAgICAgICAgIGN0cmwudXBkYXRlKCk7Cisg ICAgICAgICAgICBleHBlY3QoY3RybC5maW5kKCdEZWZhdWx0QnV0dG9uW2RhdGEtdGVzdD0iUmVz ZXQiXScpLnByb3AoJ2Rpc2FibGVkJykpLnRvQmVUcnVlKCk7CisgICAgICAgICAgICBleHBlY3Qo Y3RybC5maW5kKCdQcmltYXJ5QnV0dG9uW2RhdGEtdGVzdD0iU2F2ZSJdJykucHJvcCgnZGlzYWJs ZWQnKSkudG9CZVRydWUoKTsKKyAgICAgICAgICAgIGV4cGVjdChvbkRhdGFDaGFuZ2UpLnRvSGF2 ZUJlZW5DYWxsZWRXaXRoKGZhbHNlKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgICB9 LCAwKTsKKyAgICAgICAgfSwgMCk7CisgICAgICB9KTsKKyAgICB9KTsKKyAgfSk7CisKKyAgZGVz Y3JpYmUoJ2FsbCB0eXBlcycsICgpPT57CisgICAgbGV0IGN0cmw7CisgICAgYmVmb3JlRWFjaCgo KT0+eworICAgICAgY3RybD8udW5tb3VudCgpOworICAgICAgY3RybCA9IG1vdW50KDxTY2hlbWFW aWV3CisgICAgICAgIGZvcm1UeXBlPSdkaWFsb2cnCisgICAgICAgIHNjaGVtYT17Z2V0U2NoZW1h QWxsVHlwZXMoKX0KKyAgICAgICAgdmlld0hlbHBlclByb3BzPXt7CisgICAgICAgICAgbW9kZTog J2NyZWF0ZScsCisgICAgICAgIH19CisgICAgICAgIG9uU2F2ZT17KCk9Pnt9fQorICAgICAgICBv bkNsb3NlPXsoKT0+e319CisgICAgICAgIG9uSGVscD17KCk9Pnt9fQorICAgICAgICBvbkVkaXQ9 eygpPT57fX0KKyAgICAgICAgb25EYXRhQ2hhbmdlPXsoKT0+e319CisgICAgICAgIGNvbmZpcm1P bkNsb3NlUmVzZXQ9e2ZhbHNlfQorICAgICAgICBoYXNTUUw9e3RydWV9CisgICAgICAgIGdldFNR TFZhbHVlPXsoKT0+J3NlbGVjdCAxOyd9CisgICAgICAgIGRpc2FibGVTcWxIZWxwPXtmYWxzZX0K KyAgICAgIC8+KTsKKyAgICB9KTsKKworICAgIGl0KCdpbml0JywgKCk9PnsKKyAgICAgIC8qIEFk ZCBhIHJvdyAqLworICAgICAgY3RybC5maW5kKCdEYXRhR3JpZFZpZXcnKS5maW5kKCdQZ0ljb25C dXR0b25bZGF0YS10ZXN0PSJhZGQtcm93Il0nKS5maW5kKCdidXR0b24nKS5zaW11bGF0ZSgnY2xp Y2snKTsKKyAgICAgIHNldFRpbWVvdXQoKCk9PnsKKyAgICAgICAgY3RybC51cGRhdGUoKTsKKyAg ICAgIH0sIDApOworICAgIH0pOworICB9KTsKKworICBkZXNjcmliZSgnU2NoZW1hUHJvcGVydGll c1ZpZXcnLCAoKT0+eworICAgIGxldCBvbkVkaXQgPSBqYXNtaW5lLmNyZWF0ZVNweSgnb25FZGl0 JyksCisgICAgICBvbkhlbHAgPSBqYXNtaW5lLmNyZWF0ZVNweSgnb25IZWxwJyksCisgICAgICBj dHJsID0gbnVsbDsKKworICAgIGJlZm9yZUVhY2goKCk9PnsKKyAgICAgIGN0cmwgPSBtb3VudCg8 U2NoZW1hVmlldworICAgICAgICBmb3JtVHlwZT0ndGFiJworICAgICAgICBzY2hlbWE9e2dldFNj aGVtYSgpfQorICAgICAgICBnZXRJbml0RGF0YT17Z2V0SW5pdERhdGF9CisgICAgICAgIHZpZXdI ZWxwZXJQcm9wcz17eworICAgICAgICAgIG1vZGU6ICdwcm9wZXJ0aWVzJywKKyAgICAgICAgfX0K KyAgICAgICAgb25IZWxwPXtvbkhlbHB9CisgICAgICAgIGRpc2FibGVTcWxIZWxwPXtmYWxzZX0K KyAgICAgICAgb25FZGl0PXtvbkVkaXR9CisgICAgICAvPik7CisgICAgfSk7CisKKyAgICBpdCgn aW5pdCcsIChkb25lKT0+eworICAgICAgc2V0VGltZW91dCgoKT0+eworICAgICAgICBjdHJsLnVw ZGF0ZSgpOworICAgICAgICBleHBlY3QoY3RybC5maW5kKCdNYXBwZWRGb3JtQ29udHJvbCcpLmxl bmd0aCkudG9CZSg2KTsKKyAgICAgICAgZXhwZWN0KGN0cmwuZmluZCgnRm9yd2FyZFJlZihBY2Nv cmRpb24pJykubGVuZ3RoKS50b0JlKDIpOworICAgICAgICBkb25lKCk7CisgICAgICB9LCAwKTsK KyAgICB9KTsKKworICAgIGl0KCdvbkhlbHAnLCAoZG9uZSk9PnsKKyAgICAgIGN0cmwuZmluZCgn UGdJY29uQnV0dG9uW2RhdGEtdGVzdD0iaGVscCJdJykuZmluZCgnYnV0dG9uJykuc2ltdWxhdGUo J2NsaWNrJyk7CisgICAgICBzZXRUaW1lb3V0KCgpPT57CisgICAgICAgIGN0cmwudXBkYXRlKCk7 CisgICAgICAgIGV4cGVjdChvbkhlbHApLnRvSGF2ZUJlZW5DYWxsZWQoKTsKKyAgICAgICAgZG9u ZSgpOworICAgICAgfSwgMCk7CisgICAgfSk7CisKKyAgICBpdCgnb25FZGl0JywgKGRvbmUpPT57 CisgICAgICBjdHJsLmZpbmQoJ1BnSWNvbkJ1dHRvbltkYXRhLXRlc3Q9ImVkaXQiXScpLmZpbmQo J2J1dHRvbicpLnNpbXVsYXRlKCdjbGljaycpOworICAgICAgc2V0VGltZW91dCgoKT0+eworICAg ICAgICBjdHJsLnVwZGF0ZSgpOworICAgICAgICBleHBlY3Qob25FZGl0KS50b0hhdmVCZWVuQ2Fs bGVkKCk7CisgICAgICAgIGRvbmUoKTsKKyAgICAgIH0sIDApOworICAgIH0pOworICB9KTsKK30p OwpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9TY2hlbWFWaWV3L1Rlc3RT Y2hlbWEudWkuanMgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L1NjaGVtYVZpZXcvVGVzdFNj aGVtYS51aS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmJmYTRkYjZh YgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvU2NoZW1hVmll dy9UZXN0U2NoZW1hLnVpLmpzCkBAIC0wLDAgKzEsMTgxIEBACitpbXBvcnQgQmFzZVVJU2NoZW1h IGZyb20gJ3NvdXJjZXMvU2NoZW1hVmlldy9iYXNlX3NjaGVtYS51aSc7CisKK2NsYXNzIFRlc3RT dWJTY2hlbWEgZXh0ZW5kcyBCYXNlVUlTY2hlbWEgeworICBjb25zdHJ1Y3RvcigpIHsKKyAgICBz dXBlcih7CisgICAgICBmaWVsZDM6IG51bGwsCisgICAgICBmaWVsZDQ6IG51bGwsCisgICAgfSk7 CisKKyAgICB0aGlzLmtleXMgPSBbJ2ZpZWxkMycsICdmaWVsZDQnLCAnZmllbGQ1J107CisgIH0K KworICBnZXQgYmFzZUZpZWxkcygpIHsKKyAgICByZXR1cm4gWworICAgICAgeworICAgICAgICBp ZDogJ2ZpZWxkMycsIGxhYmVsOiAnRmllbGQzJywgdHlwZTogJ2ludCcsIGdyb3VwOiBudWxsLAor ICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwgdmlzaWJsZTogdHJ1ZSwgY2VsbDogJ2ludCcK KyAgICAgIH0sCisgICAgICB7CisgICAgICAgIGlkOiAnZmllbGQ0JywgbGFiZWw6ICdGaWVsZDQn LCB0eXBlOiAnc2VsZWN0JywgZ3JvdXA6IG51bGwsCisgICAgICAgIGNlbGw6ICgpPT4oe2NlbGw6 ICdzZWxlY3QnLCBvcHRpb25zOiBbXX0pLAorICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAn ZWRpdCcsICdjcmVhdGUnXSwKKyAgICAgICAgZGlzYWJsZWQ6IChzdGF0ZSk9PnRoaXMuaXNOZXco c3RhdGUpLCBkZXBzOiBbJ2ZpZWxkNSddLAorICAgICAgICBkZXBDaGFuZ2U6ICgpPT57fSwgb3B0 aW9uc0xvYWRlZDogKCk9Pnt9LAorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgaWQ6ICdmaWVs ZDUnLCBsYWJlbDogJ0ZpZWxkNScsIHR5cGU6ICdtdWx0aWxpbmUnLCBncm91cDogbnVsbCwKKyAg ICAgICAgY2VsbDogJ3RleHQnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUn XSwgZGlzYWJsZWQ6IGZhbHNlLAorICAgICAgICBub0VtcHR5OiB0cnVlLCBtaW5XaWR0aDogJzUw JScsCisgICAgICB9LAorICAgICAgeworICAgICAgICBpZDogJ2ZpZWxkc2tpcCcsIGxhYmVsOiAn RmllbGRTa2lwJywgdHlwZTogJ3RleHQnLCBncm91cDogbnVsbCwKKyAgICAgICAgY2VsbDogJ3Rl eHQnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwgZGlzYWJsZWQ6IGZh bHNlLAorICAgICAgICBub0VtcHR5OiB0cnVlLAorICAgICAgfQorICAgIF07CisgIH0KK30KKwor ZXhwb3J0IGNsYXNzIFRlc3RTY2hlbWEgZXh0ZW5kcyBCYXNlVUlTY2hlbWEgeworICBjb25zdHJ1 Y3RvcigpIHsKKyAgICBzdXBlcih7CisgICAgICBpZDogdW5kZWZpbmVkLAorICAgICAgZmllbGQx OiBudWxsLAorICAgICAgZmllbGQyOiBudWxsLAorICAgICAgZmllbGRjb2xsOiBudWxsLAorICAg IH0pOworCisgICAgdGhpcy5pbmZvcm1UZXh0ID0gJ3NvbWUgaW5mb3JtIHRleHQnOworICB9CisK KyAgZ2V0IGJhc2VGaWVsZHMoKSB7CisgICAgcmV0dXJuIFsKKyAgICAgIHsKKyAgICAgICAgaWQ6 ICdpZCcsIGxhYmVsOiAnSUQnLCB0eXBlOiAnaW50JywgZ3JvdXA6IG51bGwsCisgICAgICAgIG1v ZGU6IFsncHJvcGVydGllcyddLAorICAgICAgfSx7CisgICAgICAgIGlkOiAnZmllbGQxJywgbGFi ZWw6ICdGaWVsZDEnLCB0eXBlOiAndGV4dCcsIGdyb3VwOiBudWxsLAorICAgICAgICBtb2RlOiBb J3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwgZGlzYWJsZWQ6IGZhbHNlLAorICAgICAg ICBub0VtcHR5OiB0cnVlLCB2aXNpYmxlOiB0cnVlLAorICAgICAgfSx7CisgICAgICAgIGlkOiAn ZmllbGQyJywgbGFiZWw6ICdGaWVsZDInLCB0eXBlOiAoKT0+KHsKKyAgICAgICAgICB0eXBlOiAn aW50JywgbWluOiAwLCBtYXg6IDI1NSwKKyAgICAgICAgfSksIGdyb3VwOiBudWxsLCBtb2RlOiBb J3Byb3BlcnRpZXMnLCAnY3JlYXRlJ10sCisgICAgICAgIGRpc2FibGVkOiAoKT0+ZmFsc2UsIHZp c2libGU6ICgpPT50cnVlLCBkZXBzOiBbJ2ZpZWxkMSddLAorICAgICAgICBkZXBDaGFuZ2U6ICgp PT4oe30pCisgICAgICB9LHsKKyAgICAgICAgaWQ6ICdmaWVsZGNvbGwnLCBsYWJlbDogJ0ZpZWxk Q29sbCcsIHR5cGU6ICdjb2xsZWN0aW9uJywgZ3JvdXA6IG51bGwsCisgICAgICAgIG1vZGU6IFsn ZWRpdCcsICdjcmVhdGUnXSwgc2NoZW1hOiBuZXcgVGVzdFN1YlNjaGVtYSgpLAorICAgICAgICBj YW5BZGQ6IHRydWUsIGNhbkVkaXQ6IHRydWUsIGNhbkRlbGV0ZTogdHJ1ZSwgdW5pcXVlQ29sOiBb J2ZpZWxkNSddLAorICAgICAgICBjdXN0b21EZWxldGVUaXRsZTogJ0N1c3RvbSBkZWxldGUgdGl0 bGUnLAorICAgICAgICBjdXN0b21EZWxldGVNc2c6ICdDdXN0b20gZGVsZXRlIG1lc3NhZ2UnLAor ICAgICAgfSx7CisgICAgICAgIHR5cGU6ICduZXN0ZWQtdGFiJywgZ3JvdXA6IG51bGwsCisgICAg ICAgIG1vZGU6IFsnZWRpdCcsICdjcmVhdGUnXSwgc2NoZW1hOiBuZXcgVGVzdFN1YlNjaGVtYSgp LAorICAgICAgfSx7CisgICAgICAgIGlkOiAnZmllbGQ2JywgbGFiZWw6ICdGaWVsZDYnLCB0eXBl OiAnbnVtZXJpYycsIGdyb3VwOiBudWxsLAorICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAn Y3JlYXRlJ10sCisgICAgICAgIGRpc2FibGVkOiBmYWxzZSwKKyAgICAgIH0seworICAgICAgICBp ZDogJ2ZpZWxkNycsIGxhYmVsOiAnRmllbGQ3JywgdHlwZTogJ3RleHQnLCBncm91cDogJ0FkdmFu Y2VkJywKKyAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJ10sCisgICAgICB9LHsKKyAgICAgICAg aWQ6ICdmaWVsZGludmlzJywgbGFiZWw6ICdmaWVsZGludmlzJywgdHlwZTogJ3RleHQnLCBncm91 cDogJ0FkdmFuY2VkJywKKyAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2VkaXQnLCAnY3Jl YXRlJ10sIHZpc2libGU6IGZhbHNlLAorICAgICAgfSwKKyAgICBdOworICB9CisKKyAgdmFsaWRh dGUoKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9Cit9CisKKworY2xhc3MgVGVzdFN1YlNjaGVt YUFsbFR5cGVzIGV4dGVuZHMgQmFzZVVJU2NoZW1hIHsKKyAgY29uc3RydWN0b3IoKSB7CisgICAg c3VwZXIoKTsKKyAgfQorCisgIGdldCBiYXNlRmllbGRzKCkgeworICAgIHJldHVybiBbCisgICAg ICB7CisgICAgICAgIGlkOiAnaW50JywgbGFiZWw6ICdpbnQnLCB0eXBlOiAnaW50JywgZ3JvdXA6 IG51bGwsCisgICAgICAgIG1vZGU6IFsnY3JlYXRlJ10sIGNlbGw6ICdpbnQnCisgICAgICB9LHsK KyAgICAgICAgaWQ6ICd0ZXh0JywgbGFiZWw6ICd0ZXh0JywgdHlwZTogJ3RleHQnLCBncm91cDog bnVsbCwKKyAgICAgICAgbW9kZTogWydjcmVhdGUnXSwgY2VsbDogJ3RleHQnCisgICAgICB9LHsK KyAgICAgICAgaWQ6ICdwYXNzd29yZCcsIGxhYmVsOiAncGFzc3dvcmQnLCB0eXBlOiAncGFzc3dv cmQnLCBncm91cDogbnVsbCwKKyAgICAgICAgbW9kZTogWydjcmVhdGUnXSwgY2VsbDogJ3Bhc3N3 b3JkJywKKyAgICAgIH0seworICAgICAgICBpZDogJ3NlbGVjdCcsIGxhYmVsOiAnc2VsZWN0Jywg dHlwZTogJ3NlbGVjdCcsIGdyb3VwOiBudWxsLAorICAgICAgICBtb2RlOiBbJ2NyZWF0ZSddLCBv cHRpb25zOiBbXSwgY2VsbDogJ3NlbGVjdCcKKyAgICAgIH0seworICAgICAgICBpZDogJ3N3aXRj aCcsIGxhYmVsOiAnc3dpdGNoJywgdHlwZTogJ3N3aXRjaCcsIGdyb3VwOiBudWxsLAorICAgICAg ICBtb2RlOiBbJ2NyZWF0ZSddLCBvcHRpb25zOiBbXSwgY2VsbDogJ3N3aXRjaCcKKyAgICAgIH0s eworICAgICAgICBpZDogJ3ByaXZpbGVnZScsIGxhYmVsOiAncHJpdmlsZWdlJywgdHlwZTogJ3By aXZpbGVnZScsIGdyb3VwOiBudWxsLAorICAgICAgICBtb2RlOiBbJ2NyZWF0ZSddLCBvcHRpb25z OiBbXSwgY2VsbDogJ3ByaXZpbGVnZScsCisgICAgICB9CisgICAgXTsKKyAgfQorfQorCisKK2V4 cG9ydCBjbGFzcyBUZXN0U2NoZW1hQWxsVHlwZXMgZXh0ZW5kcyBCYXNlVUlTY2hlbWEgeworICBj b25zdHJ1Y3RvcigpIHsKKyAgICBzdXBlcigpOworICB9CisKKyAgZ2V0IGJhc2VGaWVsZHMoKSB7 CisgICAgcmV0dXJuIFsKKyAgICAgIHsKKyAgICAgICAgaWQ6ICdpbnQnLCBsYWJlbDogJ2ludCcs IHR5cGU6ICdpbnQnLCBncm91cDogbnVsbCwKKyAgICAgICAgbW9kZTogWydjcmVhdGUnXSwKKyAg ICAgIH0seworICAgICAgICBpZDogJ3RleHQnLCBsYWJlbDogJ3RleHQnLCB0eXBlOiAndGV4dCcs IGdyb3VwOiBudWxsLAorICAgICAgICBtb2RlOiBbJ2NyZWF0ZSddLAorICAgICAgfSx7CisgICAg ICAgIGlkOiAnbXVsdGlsaW5lJywgbGFiZWw6ICdtdWx0aWxpbmUnLCB0eXBlOiAnbXVsdGlsaW5l JywgZ3JvdXA6IG51bGwsCisgICAgICAgIG1vZGU6IFsnY3JlYXRlJ10sCisgICAgICB9LHsKKyAg ICAgICAgaWQ6ICdwYXNzd29yZCcsIGxhYmVsOiAncGFzc3dvcmQnLCB0eXBlOiAncGFzc3dvcmQn LCBncm91cDogbnVsbCwKKyAgICAgICAgbW9kZTogWydjcmVhdGUnXSwKKyAgICAgIH0seworICAg ICAgICBpZDogJ3NlbGVjdCcsIGxhYmVsOiAnc2VsZWN0JywgdHlwZTogJ3NlbGVjdCcsIGdyb3Vw OiBudWxsLAorICAgICAgICBtb2RlOiBbJ2NyZWF0ZSddLCBvcHRpb25zOiBbXSwKKyAgICAgIH0s eworICAgICAgICBpZDogJ3N3aXRjaCcsIGxhYmVsOiAnc3dpdGNoJywgdHlwZTogJ3N3aXRjaCcs IGdyb3VwOiBudWxsLAorICAgICAgICBtb2RlOiBbJ2NyZWF0ZSddLCBvcHRpb25zOiBbXSwKKyAg ICAgIH0seworICAgICAgICBpZDogJ2NoZWNrYm94JywgbGFiZWw6ICdjaGVja2JveCcsIHR5cGU6 ICdjaGVja2JveCcsIGdyb3VwOiBudWxsLAorICAgICAgICBtb2RlOiBbJ2NyZWF0ZSddLAorICAg ICAgfSx7CisgICAgICAgIGlkOiAndG9nZ2xlJywgbGFiZWw6ICd0b2dnbGUnLCB0eXBlOiAndG9n Z2xlJywgZ3JvdXA6IG51bGwsCisgICAgICAgIG1vZGU6IFsnY3JlYXRlJ10sCisgICAgICB9LHsK KyAgICAgICAgaWQ6ICdjb2xvcicsIGxhYmVsOiAnY29sb3InLCB0eXBlOiAnY29sb3InLCBncm91 cDogbnVsbCwKKyAgICAgICAgbW9kZTogWydjcmVhdGUnXSwKKyAgICAgIH0seworICAgICAgICBp ZDogJ2ZpbGUnLCBsYWJlbDogJ2ZpbGUnLCB0eXBlOiAnZmlsZScsIGdyb3VwOiBudWxsLAorICAg ICAgICBtb2RlOiBbJ2NyZWF0ZSddLAorICAgICAgfSx7CisgICAgICAgIGlkOiAnc3FsJywgbGFi ZWw6ICdzcWwnLCB0eXBlOiAnc3FsJywgZ3JvdXA6IG51bGwsCisgICAgICAgIG1vZGU6IFsnY3Jl YXRlJ10sCisgICAgICB9LHsKKyAgICAgICAgaWQ6ICdmdW5jdGlvbicsIGxhYmVsOiAnZnVuY3Rp b24nLCB0eXBlOiAoKT0+J3RleHQnLAorICAgICAgICBncm91cDogbnVsbCxtb2RlOiBbJ2NyZWF0 ZSddLAorICAgICAgfSx7CisgICAgICAgIGlkOiAnY29sbGVjdGlvbicsIGxhYmVsOiAnY29sbGVj dGlvbicsIHR5cGU6ICdjb2xsZWN0aW9uJywgZ3JvdXA6IG51bGwsCisgICAgICAgIG1vZGU6IFsn ZWRpdCcsICdjcmVhdGUnXSwgc2NoZW1hOiBuZXcgVGVzdFN1YlNjaGVtYUFsbFR5cGVzKCksCisg ICAgICAgIGNhbkFkZDogdHJ1ZSwgY2FuRWRpdDogdHJ1ZSwgY2FuRGVsZXRlOiB0cnVlLAorICAg ICAgfQorICAgIF07CisgIH0KKworICB2YWxpZGF0ZSgpIHsKKyAgICByZXR1cm4gZmFsc2U7Cisg IH0KK30KZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvY29tcG9uZW50cy9C dXR0b25zLnNwZWMuanMgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2NvbXBvbmVudHMvQnV0 dG9ucy5zcGVjLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMTU1YTBk ZjMzCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9jb21wb25l bnRzL0J1dHRvbnMuc3BlYy5qcwpAQCAtMCwwICsxLDQ3IEBACitpbXBvcnQgamFzbWluZUVuenlt ZSBmcm9tICdqYXNtaW5lLWVuenltZSc7CitpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnOworaW1w b3J0ICcuLi9oZWxwZXIvZW56eW1lLmhlbHBlcic7CitpbXBvcnQgeyB3aXRoVGhlbWUgfSBmcm9t ICcuLi9mYWtlX3RoZW1lJzsKK2ltcG9ydCB7IGNyZWF0ZU1vdW50IH0gZnJvbSAnQG1hdGVyaWFs LXVpL2NvcmUvdGVzdC11dGlscyc7CitpbXBvcnQgSW5mb0ljb24gZnJvbSAnQG1hdGVyaWFsLXVp L2ljb25zL0luZm9Sb3VuZGVkJzsKKworaW1wb3J0IHtQcmltYXJ5QnV0dG9uLCBEZWZhdWx0QnV0 dG9uLCBQZ0ljb25CdXR0b259IGZyb20gJ3NvdXJjZXMvY29tcG9uZW50cy9CdXR0b25zJzsKKwor LyogTVVJIENvbXBvbmVudHMgbmVlZCB0byBiZSB3cmFwcGVkIGluIFRoZW1lIGZvciB0aGVtZSB2 YXJzICovCitkZXNjcmliZSgnY29tcG9uZW50cyBCdXR0b25zJywgKCk9PnsKKyAgbGV0IG1vdW50 OworCisgIC8qIFVzZSBjcmVhdGVNb3VudCBzbyB0aGF0IG1hdGVyaWFsIHVpIGNvbXBvbmVudHMg Z2V0cyB0aGUgcmVxdWlyZWQgY29udGV4dCAqLworICAvKiBodHRwczovL21hdGVyaWFsLXVpLmNv bS9ndWlkZXMvdGVzdGluZy8jYXBpICovCisgIGJlZm9yZUFsbCgoKT0+eworICAgIG1vdW50ID0g Y3JlYXRlTW91bnQoKTsKKyAgfSk7CisKKyAgYWZ0ZXJBbGwoKCkgPT4geworICAgIG1vdW50LmNs ZWFuVXAoKTsKKyAgfSk7CisKKyAgYmVmb3JlRWFjaCgoKT0+eworICAgIGphc21pbmVFbnp5bWUo KTsKKyAgfSk7CisKKyAgaXQoJ1ByaW1hcnlCdXR0b24nLCAoKT0+eworICAgIGxldCBUaGVtZWRC dG4gPSB3aXRoVGhlbWUoUHJpbWFyeUJ1dHRvbik7CisgICAgbGV0IGJ0biA9IG1vdW50KDxUaGVt ZWRCdG4+VGVzdDwvVGhlbWVkQnRuPik7CisgICAgZXhwZWN0KGJ0bi5nZXRET01Ob2RlKCkuY2xh c3NMaXN0LmNvbnRhaW5zKCdNdWlCdXR0b24tY29udGFpbmVkUHJpbWFyeScpKS50b0JlKHRydWUp OworICB9KTsKKworICBpdCgnRGVmYXVsdEJ1dHRvbicsICgpPT57CisgICAgbGV0IFRoZW1lZEJ0 biA9IHdpdGhUaGVtZShEZWZhdWx0QnV0dG9uKTsKKyAgICBsZXQgYnRuID0gbW91bnQoPFRoZW1l ZEJ0biBjbGFzc05hbWU9InRlc3RDbGFzcyI+VGVzdDwvVGhlbWVkQnRuPik7CisgICAgZXhwZWN0 KGJ0bi5nZXRET01Ob2RlKCkuY2xhc3NMaXN0LmNvbnRhaW5zKCdNdWlCdXR0b24tb3V0bGluZWQn KSkudG9CZSh0cnVlKTsKKyAgICBleHBlY3QoYnRuLmdldERPTU5vZGUoKS5jbGFzc0xpc3QuY29u dGFpbnMoJ3Rlc3RDbGFzcycpKS50b0JlKHRydWUpOworICB9KTsKKworICBpdCgnUGdJY29uQnV0 dG9uJywgKCk9PnsKKyAgICBsZXQgSWNvbiA9IDxJbmZvSWNvbiAvPjsKKyAgICBsZXQgVGhlbWVk QnRuID0gd2l0aFRoZW1lKFBnSWNvbkJ1dHRvbik7CisgICAgbGV0IGJ0biA9IG1vdW50KDxUaGVt ZWRCdG4gdGl0bGU9IlRoZSBpY29uIGJ1dHRvbiIgaWNvbj17SWNvbn0gY2xhc3NOYW1lPSJ0ZXN0 Q2xhc3MiPjwvVGhlbWVkQnRuPik7CisgICAgZXhwZWN0KGJ0bi5maW5kKEluZm9JY29uKSkubm90 LnRvQmUobnVsbCk7CisgIH0pOworfSk7CmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9qYXZh c2NyaXB0L2NvbXBvbmVudHMvQ29kZU1pcnJvci5zcGVjLmpzIGIvd2ViL3JlZ3Jlc3Npb24vamF2 YXNjcmlwdC9jb21wb25lbnRzL0NvZGVNaXJyb3Iuc3BlYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAuLmI1MDNjZDI1NAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9yZWdy ZXNzaW9uL2phdmFzY3JpcHQvY29tcG9uZW50cy9Db2RlTWlycm9yLnNwZWMuanMKQEAgLTAsMCAr MSwzNyBAQAoraW1wb3J0IGphc21pbmVFbnp5bWUgZnJvbSAnamFzbWluZS1lbnp5bWUnOworaW1w b3J0IFJlYWN0IGZyb20gJ3JlYWN0JzsKK2ltcG9ydCAnLi4vaGVscGVyL2VuenltZS5oZWxwZXIn OworaW1wb3J0IHtkZWZhdWx0IGFzIE9yaWdDb2RlTWlycm9yfSBmcm9tICdidW5kbGVkX2NvZGVt aXJyb3InOworCitpbXBvcnQgQ29kZU1pcnJvciBmcm9tICdzb3VyY2VzL2NvbXBvbmVudHMvQ29k ZU1pcnJvcic7CitpbXBvcnQgeyBtb3VudCB9IGZyb20gJ2VuenltZSc7CisKK2Rlc2NyaWJlKCdD b2RlTWlycm9yJywgKCk9PnsKKyAgbGV0IGNtSW5zdGFuY2UsIG9wdGlvbnM9eworICAgICAgbGlu ZU51bWJlcnM6IHRydWUsCisgICAgICBtb2RlOiAndGV4dC94LXBnc3FsJywKKyAgICB9LCBjbU9i aiA9IGphc21pbmUuY3JlYXRlU3B5T2JqKCdjbU9iaicsIHsnc2V0VmFsdWUnOiAoKT0+e30sICdy ZWZyZXNoJzogKCk9Pnt9fSk7CisgIGJlZm9yZUVhY2goKCk9PnsKKyAgICBqYXNtaW5lRW56eW1l KCk7CisgICAgc3B5T24oT3JpZ0NvZGVNaXJyb3IsICdmcm9tVGV4dEFyZWEnKS5hbmQucmV0dXJu VmFsdWUoY21PYmopOworICAgIGNtSW5zdGFuY2UgPSBtb3VudCgKKyAgICAgIDxDb2RlTWlycm9y CisgICAgICAgIHZhbHVlPXsnSW5pdCB0ZXh0J30KKyAgICAgICAgb3B0aW9ucz17b3B0aW9uc30K KyAgICAgICAgY2xhc3NOYW1lPSJ0ZXN0Q2xhc3MiCisgICAgICAvPik7CisgIH0pOworCisgIGl0 KCdpbml0JywgKCk9PnsKKyAgICAvKiB0ZXh0YXJlYSByZWYgcGFzc2VkIHRvIGZyb21UZXh0QXJl YSAqLworICAgIGV4cGVjdChPcmlnQ29kZU1pcnJvci5mcm9tVGV4dEFyZWEpLnRvSGF2ZUJlZW5D YWxsZWRXaXRoKGNtSW5zdGFuY2UuZ2V0RE9NTm9kZSgpLCBvcHRpb25zKTsKKyAgICBleHBlY3Qo Y21PYmouc2V0VmFsdWUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdJbml0IHRleHQnKTsKKyAgICBl eHBlY3QoY21PYmoucmVmcmVzaCkudG9IYXZlQmVlbkNhbGxlZCgpOworICB9KTsKKworICBpdCgn Y2hhbmdlIHZhbHVlJywgKCk9PnsKKyAgICBjbUluc3RhbmNlLnNldFByb3BzKHt2YWx1ZTogJ3Ro ZSBuZXcgdGV4dCd9KTsKKyAgICBleHBlY3QoY21PYmouc2V0VmFsdWUpLnRvSGF2ZUJlZW5DYWxs ZWRXaXRoKCd0aGUgbmV3IHRleHQnKTsKKyAgICBleHBlY3QoY21PYmoucmVmcmVzaCkudG9IYXZl QmVlbkNhbGxlZCgpOworICB9KTsKK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2 YXNjcmlwdC9jb21wb25lbnRzL0Zvcm1Db21wb25lbnRzLnNwZWMuanMgYi93ZWIvcmVncmVzc2lv bi9qYXZhc2NyaXB0L2NvbXBvbmVudHMvRm9ybUNvbXBvbmVudHMuc3BlYy5qcwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmUyMzU5ZmY0NQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvY29tcG9uZW50cy9Gb3JtQ29tcG9uZW50cy5zcGVj LmpzCkBAIC0wLDAgKzEsNTk3IEBACitpbXBvcnQgamFzbWluZUVuenltZSBmcm9tICdqYXNtaW5l LWVuenltZSc7CitpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnOworaW1wb3J0ICcuLi9oZWxwZXIv ZW56eW1lLmhlbHBlcic7CitpbXBvcnQgeyB3aXRoVGhlbWUgfSBmcm9tICcuLi9mYWtlX3RoZW1l JzsKK2ltcG9ydCB7IGNyZWF0ZU1vdW50IH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvdGVzdC11 dGlscyc7CitpbXBvcnQgeyBPdXRsaW5lZElucHV0LCBGb3JtSGVscGVyVGV4dCwgSWNvbkJ1dHRv biwgRm9ybUNvbnRyb2xMYWJlbCwKKyAgU3dpdGNoLCBDaGVja2JveCwgQnV0dG9uLCBJbnB1dExh YmVsIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUnOworaW1wb3J0IFNlbGVjdCBmcm9tICdyZWFj dC1zZWxlY3QnOworaW1wb3J0IENyZWF0YWJsZVNlbGVjdCBmcm9tICdyZWFjdC1zZWxlY3QvY3Jl YXRhYmxlJzsKK2ltcG9ydCBDaGVja1JvdW5kZWRJY29uIGZyb20gJ0BtYXRlcmlhbC11aS9pY29u cy9DaGVja1JvdW5kZWQnOworaW1wb3J0IFJlcG9ydFByb2JsZW1JY29uIGZyb20gJ0BtYXRlcmlh bC11aS9pY29ucy9SZXBvcnRQcm9ibGVtUm91bmRlZCc7CitpbXBvcnQgSW5mb0ljb24gZnJvbSAn QG1hdGVyaWFsLXVpL2ljb25zL0luZm9Sb3VuZGVkJzsKK2ltcG9ydCBDbG9zZUljb24gZnJvbSAn QG1hdGVyaWFsLXVpL2ljb25zL0Nsb3NlUm91bmRlZCc7CitpbXBvcnQgQ2hlY2tJY29uIGZyb20g J0BtYXRlcmlhbC11aS9pY29ucy9DaGVja0NpcmNsZU91dGxpbmVSb3VuZGVkJzsKKworCitpbXBv cnQge0Zvcm1JbnB1dFRleHQsIEZvcm1JbnB1dEZpbGVTZWxlY3QsIEZvcm1JbnB1dFNRTCwKKyAg Rm9ybUlucHV0U3dpdGNoLCBGb3JtSW5wdXRDaGVja2JveCwgRm9ybUlucHV0VG9nZ2xlLCBGb3Jt SW5wdXRTZWxlY3QsCisgIEZvcm1JbnB1dENvbG9yLAorICBGb3JtRm9vdGVyTWVzc2FnZSwKKyAg TUVTU0FHRV9UWVBFfSBmcm9tICcuLi8uLi8uLi9wZ2FkbWluL3N0YXRpYy9qcy9jb21wb25lbnRz L0Zvcm1Db21wb25lbnRzJzsKK2ltcG9ydCAqIGFzIGxlZ2FjeUNvbm5lY3RvciBmcm9tICcuLi8u Li8uLi9wZ2FkbWluL3N0YXRpYy9qcy9oZWxwZXJzL2xlZ2FjeUNvbm5lY3Rvcic7CitpbXBvcnQg Q29kZU1pcnJvciBmcm9tICcuLi8uLi8uLi9wZ2FkbWluL3N0YXRpYy9qcy9jb21wb25lbnRzL0Nv ZGVNaXJyb3InOworaW1wb3J0IHsgVG9nZ2xlQnV0dG9uIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2xh Yic7CitpbXBvcnQgeyBEZWZhdWx0QnV0dG9uLCBQcmltYXJ5QnV0dG9uIH0gZnJvbSAnLi4vLi4v Li4vcGdhZG1pbi9zdGF0aWMvanMvY29tcG9uZW50cy9CdXR0b25zJzsKKworLyogTVVJIENvbXBv bmVudHMgbmVlZCB0byBiZSB3cmFwcGVkIGluIFRoZW1lIGZvciB0aGVtZSB2YXJzICovCitkZXNj cmliZSgnRm9ybUNvbXBvbmVudHMnLCAoKT0+eworICBsZXQgbW91bnQ7CisKKyAgLyogVXNlIGNy ZWF0ZU1vdW50IHNvIHRoYXQgbWF0ZXJpYWwgdWkgY29tcG9uZW50cyBnZXRzIHRoZSByZXF1aXJl ZCBjb250ZXh0ICovCisgIC8qIGh0dHBzOi8vbWF0ZXJpYWwtdWkuY29tL2d1aWRlcy90ZXN0aW5n LyNhcGkgKi8KKyAgYmVmb3JlQWxsKCgpPT57CisgICAgbW91bnQgPSBjcmVhdGVNb3VudCgpOwor ICB9KTsKKworICBhZnRlckFsbCgoKSA9PiB7CisgICAgbW91bnQuY2xlYW5VcCgpOworICB9KTsK KworICBiZWZvcmVFYWNoKCgpPT57CisgICAgamFzbWluZUVuenltZSgpOworICB9KTsKKworICBk ZXNjcmliZSgnRm9ybUlucHV0VGV4dCcsICgpPT57CisgICAgbGV0IFRoZW1lZEZvcm1JbnB1dFRl eHQgPSB3aXRoVGhlbWUoRm9ybUlucHV0VGV4dCksIGN0cmw7CisKKyAgICBiZWZvcmVFYWNoKCgp PT57CisgICAgICBjdHJsID0gbW91bnQoCisgICAgICAgIDxUaGVtZWRGb3JtSW5wdXRUZXh0Cisg ICAgICAgICAgbGFiZWw9IkZpcnN0IgorICAgICAgICAgIGNsYXNzTmFtZT0ic29tZUNsYXNzIgor ICAgICAgICAgIHRlc3RjaWQ9ImlucENpZCIKKyAgICAgICAgICBoZWxwTWVzc2FnZT0ic29tZSBo ZWxwIG1lc3NhZ2UiCisgICAgICAgICAgLyogSW5wdXRUZXh0ICovCisgICAgICAgICAgcmVhZG9u bHk9e2ZhbHNlfQorICAgICAgICAgIGRpc2FibGVkPXtmYWxzZX0KKyAgICAgICAgICBtYXhsZW5n dGg9ezUwfQorICAgICAgICAgIHZhbHVlPXsndGhldmFsdWUnfQorICAgICAgICAgIGNvbnRyb2xQ cm9wcz17eworICAgICAgICAgICAgZXh0cmFwcm9wOiAndGVzdCcKKyAgICAgICAgICB9fQorICAg ICAgICAvPik7CisgICAgfSk7CisKKyAgICBpdCgnaW5pdCcsICgpPT57CisgICAgICBleHBlY3Qo Y3RybC5maW5kKElucHV0TGFiZWwpLnRleHQoKSkudG9CZSgnRmlyc3QnKTsKKyAgICAgIGV4cGVj dChjdHJsLmZpbmQoT3V0bGluZWRJbnB1dCkucHJvcCgnZXh0cmFwcm9wJykpLnRvRXF1YWwoJ3Rl c3QnKTsKKyAgICAgIGV4cGVjdCggY3RybC5maW5kKE91dGxpbmVkSW5wdXQpLnByb3AoJ2lucHV0 UHJvcHMnKSkudG9FcXVhbChqYXNtaW5lLm9iamVjdENvbnRhaW5pbmcoeworICAgICAgICBtYXhM ZW5ndGg6IDUwLAorICAgICAgfSkpOworICAgICAgZXhwZWN0KGN0cmwuZmluZChPdXRsaW5lZElu cHV0KS5wcm9wKCdyZWFkT25seScpKS50b0JlKGZhbHNlKTsKKyAgICAgIGV4cGVjdChjdHJsLmZp bmQoT3V0bGluZWRJbnB1dCkucHJvcCgnZGlzYWJsZWQnKSkudG9CZShmYWxzZSk7CisgICAgICBl eHBlY3QoY3RybC5maW5kKE91dGxpbmVkSW5wdXQpLnByb3AoJ3ZhbHVlJykpLnRvQmUoJ3RoZXZh bHVlJyk7CisgICAgICBleHBlY3QoY3RybC5maW5kKEZvcm1IZWxwZXJUZXh0KS50ZXh0KCkpLnRv QmUoJ3NvbWUgaGVscCBtZXNzYWdlJyk7CisgICAgfSk7CisKKyAgICBpdCgncHJvcHMgY2hhbmdl JywgKCk9PnsKKyAgICAgIGxldCBvbkNoYW5nZSA9ICgpPT57fTsKKyAgICAgIGN0cmwuc2V0UHJv cHMoeworICAgICAgICByZWFkb25seTogdHJ1ZSwKKyAgICAgICAgZGlzYWJsZWQ6IHRydWUsCisg ICAgICAgIHZhbHVlOiAnbmV3IHZhbHVlJywKKyAgICAgICAgb25DaGFuZ2U6IG9uQ2hhbmdlLAor ICAgICAgfSk7CisKKyAgICAgIGV4cGVjdChjdHJsLmZpbmQoT3V0bGluZWRJbnB1dCkucHJvcCgn cmVhZE9ubHknKSkudG9CZSh0cnVlKTsKKyAgICAgIGV4cGVjdChjdHJsLmZpbmQoT3V0bGluZWRJ bnB1dCkucHJvcCgnZGlzYWJsZWQnKSkudG9CZSh0cnVlKTsKKyAgICAgIGV4cGVjdChjdHJsLmZp bmQoT3V0bGluZWRJbnB1dCkucHJvcCgndmFsdWUnKSkudG9CZSgnbmV3IHZhbHVlJyk7CisgICAg ICBleHBlY3QoY3RybC5maW5kKE91dGxpbmVkSW5wdXQpLnByb3AoJ29uQ2hhbmdlJykpLnRvQmUo b25DaGFuZ2UpOworICAgIH0pOworCisgICAgaXQoJ2FjY2Vzc2liaWxpdHknLCAoKT0+eworICAg ICAgZXhwZWN0KGN0cmwuZmluZChJbnB1dExhYmVsKSkudG9IYXZlUHJvcCgnaHRtbEZvcicsICdp bnBDaWQnKTsKKyAgICAgIGV4cGVjdChjdHJsLmZpbmQoRm9ybUhlbHBlclRleHQpKS50b0hhdmVQ cm9wKCdpZCcsICdoaW5wQ2lkJyk7CisgICAgICBsZXQgaW5wdXRQcm9wcyA9IGN0cmwuZmluZChP dXRsaW5lZElucHV0KS5wcm9wKCdpbnB1dFByb3BzJyk7CisgICAgICBleHBlY3QoaW5wdXRQcm9w cykudG9FcXVhbChqYXNtaW5lLm9iamVjdENvbnRhaW5pbmcoeworICAgICAgICBpZDogJ2lucENp ZCcsCisgICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogJ2hpbnBDaWQnLAorICAgICAgfSkpOwor ICAgIH0pOworICB9KTsKKworICBkZXNjcmliZSgnRm9ybUlucHV0RmlsZVNlbGVjdCcsICgpPT57 CisgICAgbGV0IFRoZW1lZEZvcm1JbnB1dEZpbGVTZWxlY3QgPSB3aXRoVGhlbWUoRm9ybUlucHV0 RmlsZVNlbGVjdCksIGN0cmw7CisKKyAgICBiZWZvcmVFYWNoKCgpPT57CisgICAgICBzcHlPbihs ZWdhY3lDb25uZWN0b3IsICdzaG93RmlsZURpYWxvZycpLmFuZC5jYWxsRmFrZSgoY29udHJvbFBy b3BzLCBvbkZpbGVTZWxlY3QpPT57CisgICAgICAgIG9uRmlsZVNlbGVjdCgnc2VsZWN0ZWQvZmls ZScpOworICAgICAgfSk7CisgICAgICBjdHJsID0gbW91bnQoCisgICAgICAgIDxUaGVtZWRGb3Jt SW5wdXRGaWxlU2VsZWN0CisgICAgICAgICAgbGFiZWw9IkZpcnN0IgorICAgICAgICAgIGNsYXNz TmFtZT0ic29tZUNsYXNzIgorICAgICAgICAgIHRlc3RjaWQ9ImlucENpZCIKKyAgICAgICAgICBo ZWxwTWVzc2FnZT0ic29tZSBoZWxwIG1lc3NhZ2UiCisgICAgICAgICAgLyogSW5wdXRUZXh0ICov CisgICAgICAgICAgcmVhZG9ubHk9e2ZhbHNlfQorICAgICAgICAgIGRpc2FibGVkPXtmYWxzZX0K KyAgICAgICAgICB2YWx1ZT17J3RoZXZhbHVlJ30KKyAgICAgICAgICBjb250cm9sUHJvcHM9e3sK KyAgICAgICAgICAgIGRpYWxvZ1R5cGU6ICdzZWxlY3RfZmlsZScsIHN1cHBvcnRlZFR5cGVzOiBb JyonXSwKKyAgICAgICAgICB9fQorICAgICAgICAvPik7CisgICAgfSk7CisKKyAgICBpdCgnaW5p dCcsICgpPT57CisgICAgICBleHBlY3QoY3RybC5maW5kKElucHV0TGFiZWwpLnRleHQoKSkudG9C ZSgnRmlyc3QnKTsKKyAgICAgIGV4cGVjdChjdHJsLmZpbmQoT3V0bGluZWRJbnB1dCkucHJvcCgn cmVhZE9ubHknKSkudG9CZShmYWxzZSk7CisgICAgICBleHBlY3QoY3RybC5maW5kKE91dGxpbmVk SW5wdXQpLnByb3AoJ2Rpc2FibGVkJykpLnRvQmUoZmFsc2UpOworICAgICAgZXhwZWN0KGN0cmwu ZmluZChPdXRsaW5lZElucHV0KS5wcm9wKCd2YWx1ZScpKS50b0JlKCd0aGV2YWx1ZScpOworICAg ICAgZXhwZWN0KGN0cmwuZmluZChGb3JtSGVscGVyVGV4dCkudGV4dCgpKS50b0JlKCdzb21lIGhl bHAgbWVzc2FnZScpOworICAgIH0pOworCisgICAgaXQoJ3Byb3BzIGNoYW5nZScsICgpPT57Cisg ICAgICBjdHJsLnNldFByb3BzKHsKKyAgICAgICAgcmVhZG9ubHk6IHRydWUsCisgICAgICAgIGRp c2FibGVkOiB0cnVlLAorICAgICAgICB2YWx1ZTogJ25ldyB2YWx1ZScsCisgICAgICB9KTsKKwor ICAgICAgZXhwZWN0KGN0cmwuZmluZChPdXRsaW5lZElucHV0KS5wcm9wKCdyZWFkT25seScpKS50 b0JlKHRydWUpOworICAgICAgZXhwZWN0KGN0cmwuZmluZChPdXRsaW5lZElucHV0KS5wcm9wKCdk aXNhYmxlZCcpKS50b0JlKHRydWUpOworICAgICAgZXhwZWN0KGN0cmwuZmluZChPdXRsaW5lZElu cHV0KS5wcm9wKCd2YWx1ZScpKS50b0JlKCduZXcgdmFsdWUnKTsKKyAgICAgIGV4cGVjdChjdHJs LmZpbmQoSWNvbkJ1dHRvbikucHJvcCgnZGlzYWJsZWQnKSkudG9CZSh0cnVlKTsKKyAgICB9KTsK KworCisgICAgaXQoJ2ZpbGUgc2VsZWN0JywgKGRvbmUpPT57CisgICAgICBsZXQgb25DaGFuZ2Ug PSBqYXNtaW5lLmNyZWF0ZVNweSgpOworICAgICAgY3RybC5zZXRQcm9wcyh7CisgICAgICAgIG9u Q2hhbmdlOiBvbkNoYW5nZSwKKyAgICAgIH0pOworICAgICAgY3RybC5maW5kKEljb25CdXR0b24p LnNpbXVsYXRlKCdjbGljaycpOworICAgICAgc2V0VGltZW91dCgoKT0+eworICAgICAgICBleHBl Y3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdzZWxlY3RlZC9maWxlJyk7CisgICAg ICAgIGRvbmUoKTsKKyAgICAgIH0sIDApOworICAgIH0pOworCisgICAgaXQoJ2FjY2Vzc2liaWxp dHknLCAoKT0+eworICAgICAgZXhwZWN0KGN0cmwuZmluZChJbnB1dExhYmVsKSkudG9IYXZlUHJv cCgnaHRtbEZvcicsICdpbnBDaWQnKTsKKyAgICAgIGV4cGVjdChjdHJsLmZpbmQoRm9ybUhlbHBl clRleHQpKS50b0hhdmVQcm9wKCdpZCcsICdoaW5wQ2lkJyk7CisgICAgICBsZXQgaW5wdXRQcm9w cyA9IGN0cmwuZmluZChPdXRsaW5lZElucHV0KS5wcm9wKCdpbnB1dFByb3BzJyk7CisgICAgICBl eHBlY3QoaW5wdXRQcm9wcykudG9FcXVhbChqYXNtaW5lLm9iamVjdENvbnRhaW5pbmcoeworICAg ICAgICBpZDogJ2lucENpZCcsCisgICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogJ2hpbnBDaWQn LAorICAgICAgfSkpOworICAgIH0pOworICB9KTsKKworICBkZXNjcmliZSgnRm9ybUlucHV0U1FM JywgKCk9PnsKKyAgICBsZXQgVGhlbWVkRm9ybUlucHV0U1FMID0gd2l0aFRoZW1lKEZvcm1JbnB1 dFNRTCksIGN0cmw7CisKKyAgICBiZWZvcmVFYWNoKCgpPT57CisgICAgICBjdHJsID0gbW91bnQo CisgICAgICAgIDxUaGVtZWRGb3JtSW5wdXRTUUwKKyAgICAgICAgICBsYWJlbD0iRmlyc3QiCisg ICAgICAgICAgY2xhc3NOYW1lPSJzb21lQ2xhc3MiCisgICAgICAgICAgdGVzdGNpZD0iaW5wQ2lk IgorICAgICAgICAgIGhlbHBNZXNzYWdlPSJzb21lIGhlbHAgbWVzc2FnZSIKKyAgICAgICAgICAv KiBJbnB1dFNRTCAqLworICAgICAgICAgIHZhbHVlPXsndGhldmFsdWUnfQorICAgICAgICAgIGNv bnRyb2xQcm9wcz17eworICAgICAgICAgICAgb3AxOiAndGVzdCcKKyAgICAgICAgICB9fQorICAg ICAgICAvPik7CisgICAgfSk7CisKKyAgICBpdCgnaW5pdCcsICgpPT57CisgICAgICBleHBlY3Qo Y3RybC5maW5kKElucHV0TGFiZWwpLnRleHQoKSkudG9CZSgnRmlyc3QnKTsKKyAgICAgIGV4cGVj dChjdHJsLmZpbmQoQ29kZU1pcnJvcikucHJvcCgndmFsdWUnKSkudG9FcXVhbCgndGhldmFsdWUn KTsKKyAgICAgIGV4cGVjdChjdHJsLmZpbmQoQ29kZU1pcnJvcikucHJvcCgnb3B0aW9ucycpKS50 b0VxdWFsKGphc21pbmUub2JqZWN0Q29udGFpbmluZyh7CisgICAgICAgIG9wMTogJ3Rlc3QnCisg ICAgICB9KSk7CisgICAgICBleHBlY3QoY3RybC5maW5kKEZvcm1IZWxwZXJUZXh0KS50ZXh0KCkp LnRvQmUoJ3NvbWUgaGVscCBtZXNzYWdlJyk7CisgICAgfSk7CisgIH0pOworCisgIGRlc2NyaWJl KCdGb3JtSW5wdXRTd2l0Y2gnLCAoKT0+eworICAgIGxldCBUaGVtZWRGb3JtSW5wdXRTd2l0Y2gg PSB3aXRoVGhlbWUoRm9ybUlucHV0U3dpdGNoKSwgY3RybCwgb25DaGFuZ2U9KCk9PntyZXR1cm4g MTt9OworCisgICAgYmVmb3JlRWFjaCgoKT0+eworICAgICAgY3RybCA9IG1vdW50KAorICAgICAg ICA8VGhlbWVkRm9ybUlucHV0U3dpdGNoCisgICAgICAgICAgbGFiZWw9IkZpcnN0IgorICAgICAg ICAgIGNsYXNzTmFtZT0ic29tZUNsYXNzIgorICAgICAgICAgIHRlc3RjaWQ9ImlucENpZCIKKyAg ICAgICAgICBoZWxwTWVzc2FnZT0ic29tZSBoZWxwIG1lc3NhZ2UiCisgICAgICAgICAgLyogSW5w dXRTd2l0Y2ggKi8KKyAgICAgICAgICByZWFkb25seT17ZmFsc2V9CisgICAgICAgICAgdmFsdWU9 e2ZhbHNlfQorICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX0KKyAgICAgICAgLz4pOworICAg IH0pOworCisgICAgaXQoJ2luaXQnLCAoKT0+eworICAgICAgZXhwZWN0KGN0cmwuZmluZChJbnB1 dExhYmVsKS50ZXh0KCkpLnRvQmUoJ0ZpcnN0Jyk7CisgICAgICBleHBlY3QoY3RybC5maW5kKFN3 aXRjaCkucHJvcCgnY2hlY2tlZCcpKS50b0JlKGZhbHNlKTsKKyAgICAgIGV4cGVjdChjdHJsLmZp bmQoU3dpdGNoKS5wcm9wKCdvbkNoYW5nZScpKS50b0JlKG9uQ2hhbmdlKTsKKyAgICAgIGV4cGVj dChjdHJsLmZpbmQoRm9ybUhlbHBlclRleHQpLnRleHQoKSkudG9CZSgnc29tZSBoZWxwIG1lc3Nh Z2UnKTsKKyAgICB9KTsKKworICAgIGl0KCdwcm9wcyBjaGFuZ2UnLCAoKT0+eworICAgICAgY3Ry bC5zZXRQcm9wcyh7CisgICAgICAgIHJlYWRvbmx5OiB0cnVlLAorICAgICAgICB2YWx1ZTogdHJ1 ZSwKKyAgICAgIH0pOworCisgICAgICBleHBlY3QoY3RybC5maW5kKFN3aXRjaCkucHJvcCgnY2hl Y2tlZCcpKS50b0JlKHRydWUpOworICAgICAgZXhwZWN0KGN0cmwuZmluZChTd2l0Y2gpLnByb3Ao J29uQ2hhbmdlJykpLm5vdC50b0JlKG9uQ2hhbmdlKTsKKyAgICB9KTsKKworICAgIGl0KCdhY2Nl c3NpYmlsaXR5JywgKCk9PnsKKyAgICAgIGV4cGVjdChjdHJsLmZpbmQoSW5wdXRMYWJlbCkpLnRv SGF2ZVByb3AoJ2h0bWxGb3InLCAnaW5wQ2lkJyk7CisgICAgICBleHBlY3QoY3RybC5maW5kKEZv cm1IZWxwZXJUZXh0KSkudG9IYXZlUHJvcCgnaWQnLCAnaGlucENpZCcpOworICAgICAgZXhwZWN0 KGN0cmwuZmluZChTd2l0Y2gpLnByb3AoJ2lkJykpLnRvQmUoJ2lucENpZCcpOworICAgICAgbGV0 IGlucHV0UHJvcHMgPSBjdHJsLmZpbmQoU3dpdGNoKS5wcm9wKCdpbnB1dFByb3BzJyk7CisgICAg ICBleHBlY3QoaW5wdXRQcm9wcykudG9FcXVhbChqYXNtaW5lLm9iamVjdENvbnRhaW5pbmcoewor ICAgICAgICAnYXJpYS1kZXNjcmliZWRieSc6ICdoaW5wQ2lkJywKKyAgICAgIH0pKTsKKyAgICB9 KTsKKyAgfSk7CisKKyAgZGVzY3JpYmUoJ0Zvcm1JbnB1dENoZWNrYm94JywgKCk9PnsKKyAgICBs ZXQgVGhlbWVkRm9ybUlucHV0Q2hlY2tib3ggPSB3aXRoVGhlbWUoRm9ybUlucHV0Q2hlY2tib3gp LCBjdHJsLCBvbkNoYW5nZT0oKT0+e3JldHVybiAxO307CisKKyAgICBiZWZvcmVFYWNoKCgpPT57 CisgICAgICBjdHJsID0gbW91bnQoCisgICAgICAgIDxUaGVtZWRGb3JtSW5wdXRDaGVja2JveAor ICAgICAgICAgIGxhYmVsPSJGaXJzdCIKKyAgICAgICAgICBjbGFzc05hbWU9InNvbWVDbGFzcyIK KyAgICAgICAgICB0ZXN0Y2lkPSJpbnBDaWQiCisgICAgICAgICAgaGVscE1lc3NhZ2U9InNvbWUg aGVscCBtZXNzYWdlIgorICAgICAgICAgIC8qIElucHV0Q2hlY2tib3ggKi8KKyAgICAgICAgICBk aXNhYmxlZD17ZmFsc2V9CisgICAgICAgICAgdmFsdWU9e2ZhbHNlfQorICAgICAgICAgIG9uQ2hh bmdlPXtvbkNoYW5nZX0KKyAgICAgICAgICBjb250cm9sUHJvcHM9e3sKKyAgICAgICAgICAgIGxh YmVsOiAnU2Vjb25kJworICAgICAgICAgIH19CisgICAgICAgIC8+KTsKKyAgICB9KTsKKworICAg IGl0KCdpbml0JywgKCk9PnsKKyAgICAgIGV4cGVjdChjdHJsLmZpbmQoSW5wdXRMYWJlbCkudGV4 dCgpKS50b0JlKCdGaXJzdCcpOworICAgICAgZXhwZWN0KGN0cmwuZmluZChGb3JtQ29udHJvbExh YmVsKS5wcm9wKCdsYWJlbCcpKS50b0JlKCdTZWNvbmQnKTsKKyAgICAgIGV4cGVjdChjdHJsLmZp bmQoQ2hlY2tib3gpLnByb3AoJ2NoZWNrZWQnKSkudG9CZShmYWxzZSk7CisgICAgICBleHBlY3Qo Y3RybC5maW5kKENoZWNrYm94KS5wcm9wKCdvbkNoYW5nZScpKS50b0JlKG9uQ2hhbmdlKTsKKyAg ICAgIGV4cGVjdChjdHJsLmZpbmQoRm9ybUhlbHBlclRleHQpLnRleHQoKSkudG9CZSgnc29tZSBo ZWxwIG1lc3NhZ2UnKTsKKyAgICB9KTsKKworICAgIGl0KCdwcm9wcyBjaGFuZ2UnLCAoKT0+ewor ICAgICAgY3RybC5zZXRQcm9wcyh7CisgICAgICAgIHJlYWRvbmx5OiB0cnVlLAorICAgICAgICB2 YWx1ZTogdHJ1ZSwKKyAgICAgIH0pOworCisgICAgICBleHBlY3QoY3RybC5maW5kKENoZWNrYm94 KS5wcm9wKCdjaGVja2VkJykpLnRvQmUodHJ1ZSk7CisgICAgICBleHBlY3QoY3RybC5maW5kKENo ZWNrYm94KS5wcm9wKCdvbkNoYW5nZScpKS5ub3QudG9CZShvbkNoYW5nZSk7CisgICAgfSk7CisK KyAgICBpdCgnYWNjZXNzaWJpbGl0eScsICgpPT57CisgICAgICBleHBlY3QoY3RybC5maW5kKElu cHV0TGFiZWwpKS50b0hhdmVQcm9wKCdodG1sRm9yJywgJ2lucENpZCcpOworICAgICAgZXhwZWN0 KGN0cmwuZmluZChGb3JtSGVscGVyVGV4dCkpLnRvSGF2ZVByb3AoJ2lkJywgJ2hpbnBDaWQnKTsK KyAgICAgIGV4cGVjdChjdHJsLmZpbmQoQ2hlY2tib3gpLnByb3AoJ2lkJykpLnRvQmUoJ2lucENp ZCcpOworICAgICAgbGV0IGlucHV0UHJvcHMgPSBjdHJsLmZpbmQoQ2hlY2tib3gpLnByb3AoJ2lu cHV0UHJvcHMnKTsKKyAgICAgIGV4cGVjdChpbnB1dFByb3BzKS50b0VxdWFsKGphc21pbmUub2Jq ZWN0Q29udGFpbmluZyh7CisgICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogJ2hpbnBDaWQnLAor ICAgICAgfSkpOworICAgIH0pOworICB9KTsKKworICBkZXNjcmliZSgnRm9ybUlucHV0VG9nZ2xl JywgKCk9PnsKKyAgICBsZXQgVGhlbWVkRm9ybUlucHV0VG9nZ2xlID0gd2l0aFRoZW1lKEZvcm1J bnB1dFRvZ2dsZSksIGN0cmwsIG9uQ2hhbmdlPSgpPT57cmV0dXJuIDE7fTsKKworICAgIGJlZm9y ZUVhY2goKCk9PnsKKyAgICAgIGN0cmwgPSBtb3VudCgKKyAgICAgICAgPFRoZW1lZEZvcm1JbnB1 dFRvZ2dsZQorICAgICAgICAgIGxhYmVsPSJGaXJzdCIKKyAgICAgICAgICBjbGFzc05hbWU9InNv bWVDbGFzcyIKKyAgICAgICAgICB0ZXN0Y2lkPSJpbnBDaWQiCisgICAgICAgICAgaGVscE1lc3Nh Z2U9InNvbWUgaGVscCBtZXNzYWdlIgorICAgICAgICAgIC8qIElucHV0VG9nZ2xlICovCisgICAg ICAgICAgZGlzYWJsZWQ9e2ZhbHNlfQorICAgICAgICAgIG9wdGlvbnM9e1sKKyAgICAgICAgICAg IHtsYWJlbDogJ09wMScsIHZhbHVlOiAxfSwKKyAgICAgICAgICAgIHtsYWJlbDogJ09wMicsIHZh bHVlOiAyfSwKKyAgICAgICAgICAgIHtsYWJlbDogJ09wMycsIHZhbHVlOiAzfSwKKyAgICAgICAg ICBdfQorICAgICAgICAgIHZhbHVlPXsyfQorICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX0K KyAgICAgICAgLz4pOworICAgIH0pOworCisgICAgaXQoJ2luaXQnLCAoKT0+eworICAgICAgZXhw ZWN0KGN0cmwuZmluZChJbnB1dExhYmVsKS50ZXh0KCkpLnRvQmUoJ0ZpcnN0Jyk7CisgICAgICBl eHBlY3QoY3RybC5maW5kKFRvZ2dsZUJ1dHRvbikubGVuZ3RoKS50b0JlKDMpOworICAgICAgZXhw ZWN0KGN0cmwuZmluZChQcmltYXJ5QnV0dG9uKS5sZW5ndGgpLnRvQmUoMSk7CisgICAgICBleHBl Y3QoY3RybC5maW5kKERlZmF1bHRCdXR0b24pLmxlbmd0aCkudG9CZSgyKTsKKyAgICAgIGV4cGVj dChjdHJsLmZpbmQoVG9nZ2xlQnV0dG9uKS5hdCgxKS5wcm9wKCdjb21wb25lbnQnKSkudG9CZShQ cmltYXJ5QnV0dG9uKTsKKyAgICAgIGV4cGVjdChjdHJsLmZpbmQoRm9ybUhlbHBlclRleHQpLnRl eHQoKSkudG9CZSgnc29tZSBoZWxwIG1lc3NhZ2UnKTsKKyAgICB9KTsKKworICAgIGl0KCdwcm9w cyBjaGFuZ2UnLCAoKT0+eworICAgICAgY3RybC5zZXRQcm9wcyh7CisgICAgICAgIHZhbHVlOiAx LAorICAgICAgfSk7CisgICAgICBleHBlY3QoY3RybC5maW5kKFRvZ2dsZUJ1dHRvbikuYXQoMCku cHJvcCgnY29tcG9uZW50JykpLnRvQmUoUHJpbWFyeUJ1dHRvbik7CisgICAgICBleHBlY3QoY3Ry bC5maW5kKFRvZ2dsZUJ1dHRvbikuYXQoMCkKKyAgICAgICAgLmZpbmQoQ2hlY2tSb3VuZGVkSWNv bikKKyAgICAgICAgLnByb3AoJ3N0eWxlJykpLnRvRXF1YWwoamFzbWluZS5vYmplY3RDb250YWlu aW5nKHsKKyAgICAgICAgdmlzaWJpbGl0eTogJ3Zpc2libGUnCisgICAgICB9KSk7CisgICAgfSk7 CisKKyAgICBpdCgnYWNjZXNzaWJpbGl0eScsICgpPT57CisgICAgICBleHBlY3QoY3RybC5maW5k KElucHV0TGFiZWwpKS50b0hhdmVQcm9wKCdodG1sRm9yJywgJ2lucENpZCcpOworICAgICAgZXhw ZWN0KGN0cmwuZmluZChGb3JtSGVscGVyVGV4dCkpLnRvSGF2ZVByb3AoJ2lkJywgJ2hpbnBDaWQn KTsKKyAgICB9KTsKKyAgfSk7CisKKyAgZGVzY3JpYmUoJ0Zvcm1JbnB1dFNlbGVjdCcsICgpPT57 CisgICAgbGV0IFRoZW1lZEZvcm1JbnB1dFNlbGVjdCA9IHdpdGhUaGVtZShGb3JtSW5wdXRTZWxl Y3QpLCBjdHJsLCBvbkNoYW5nZT1qYXNtaW5lLmNyZWF0ZVNweSgnb25DaGFuZ2UnKSwKKyAgICAg IGN0cmxNb3VudCA9IChwcm9wcyk9PnsKKyAgICAgICAgY3RybD8udW5tb3VudCgpOworICAgICAg ICBjdHJsID0gbW91bnQoCisgICAgICAgICAgPFRoZW1lZEZvcm1JbnB1dFNlbGVjdAorICAgICAg ICAgICAgbGFiZWw9IkZpcnN0IgorICAgICAgICAgICAgY2xhc3NOYW1lPSJzb21lQ2xhc3MiCisg ICAgICAgICAgICB0ZXN0Y2lkPSJpbnBDaWQiCisgICAgICAgICAgICBoZWxwTWVzc2FnZT0ic29t ZSBoZWxwIG1lc3NhZ2UiCisgICAgICAgICAgICAvKiBJbnB1dFNlbGVjdCAqLworICAgICAgICAg ICAgcmVhZG9ubHk9e2ZhbHNlfQorICAgICAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfQorICAgICAg ICAgICAgb3B0aW9ucz17WworICAgICAgICAgICAgICB7bGFiZWw6ICdPcDEnLCB2YWx1ZTogMX0s CisgICAgICAgICAgICAgIHtsYWJlbDogJ09wMicsIHZhbHVlOiAyfSwKKyAgICAgICAgICAgICAg e2xhYmVsOiAnT3AzJywgdmFsdWU6IDN9LAorICAgICAgICAgICAgXX0KKyAgICAgICAgICAgIHZh bHVlPXsxfQorICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfQorICAgICAgICAgICAgey4u LnByb3BzfQorICAgICAgICAgIC8+KTsKKyAgICAgIH07CisKKyAgICBiZWZvcmVFYWNoKCgpPT57 CisgICAgICBjdHJsTW91bnQoKTsKKyAgICB9KTsKKworICAgIGl0KCdpbml0JywgKGRvbmUpPT57 CisgICAgICBleHBlY3QoY3RybC5maW5kKFNlbGVjdCkuZXhpc3RzKCkpLnRvQmUodHJ1ZSk7Cisg ICAgICBleHBlY3QoY3RybC5maW5kKENyZWF0YWJsZVNlbGVjdCkuZXhpc3RzKCkpLnRvQmUoZmFs c2UpOworICAgICAgZXhwZWN0KGN0cmwuZmluZChGb3JtSGVscGVyVGV4dCkudGV4dCgpKS50b0Jl KCdzb21lIGhlbHAgbWVzc2FnZScpOworCisgICAgICBzZXRUaW1lb3V0KCgpPT57CisgICAgICAg IGN0cmwudXBkYXRlKCk7CisgICAgICAgIGV4cGVjdChjdHJsLmZpbmQoU2VsZWN0KS5wcm9wcygp KS50b0VxdWFsKGphc21pbmUub2JqZWN0Q29udGFpbmluZyh7CisgICAgICAgICAgaXNNdWx0aTog ZmFsc2UsCisgICAgICAgICAgdmFsdWU6IHtsYWJlbDogJ09wMScsIHZhbHVlOiAxfSwKKyAgICAg ICAgICBpbnB1dElkOiAnaW5wQ2lkJywKKyAgICAgICAgICBpc1NlYXJjaGFibGU6IHRydWUsCisg ICAgICAgICAgaXNDbGVhcmFibGU6IHRydWUsCisgICAgICAgICAgaXNEaXNhYmxlZDogZmFsc2Us CisgICAgICAgIH0pKTsKKyAgICAgICAgZG9uZSgpOworICAgICAgfSwgMCk7CisgICAgfSk7CisK KyAgICBpdCgncmVhZG9ubHkgZGlzYWJsZWQnLCAoZG9uZSk9PnsKKyAgICAgIGN0cmwuc2V0UHJv cHMoeworICAgICAgICByZWFkb25seTogdHJ1ZSwKKyAgICAgICAgZGlzYWJsZWQ6IHRydWUsCisg ICAgICB9KTsKKworICAgICAgc2V0VGltZW91dCgoKT0+eworICAgICAgICBjdHJsLnVwZGF0ZSgp OworICAgICAgICBleHBlY3QoY3RybC5maW5kKFNlbGVjdCkucHJvcHMoKSkudG9FcXVhbChqYXNt aW5lLm9iamVjdENvbnRhaW5pbmcoeworICAgICAgICAgIGlzU2VhcmNoYWJsZTogZmFsc2UsCisg ICAgICAgICAgaXNDbGVhcmFibGU6IGZhbHNlLAorICAgICAgICAgIGlzRGlzYWJsZWQ6IHRydWUs CisgICAgICAgICAgb3Blbk1lbnVPbkNsaWNrOiBmYWxzZSwKKyAgICAgICAgfSkpOworICAgICAg ICBkb25lKCk7CisgICAgICB9LCAwKTsKKyAgICB9KTsKKworICAgIGl0KCduby1jbGVhciB3aXRo IG11bHRpJywgKGRvbmUpPT57CisgICAgICBjdHJsLnNldFByb3BzKHsKKyAgICAgICAgY29udHJv bFByb3BzOiB7CisgICAgICAgICAgYWxsb3dDbGVhcjogZmFsc2UsCisgICAgICAgICAgbXVsdGlw bGU6IHRydWUsCisgICAgICAgIH0sCisgICAgICAgIHZhbHVlOiBbMiwgM10sCisgICAgICB9KTsK KworICAgICAgc2V0VGltZW91dCgoKT0+eworICAgICAgICBjdHJsLnVwZGF0ZSgpOworICAgICAg ICBleHBlY3QoY3RybC5maW5kKFNlbGVjdCkucHJvcHMoKSkudG9FcXVhbChqYXNtaW5lLm9iamVj dENvbnRhaW5pbmcoeworICAgICAgICAgIGlzTXVsdGk6IHRydWUsCisgICAgICAgICAgaXNDbGVh cmFibGU6IGZhbHNlLAorICAgICAgICAgIHZhbHVlOiBbe2xhYmVsOiAnT3AyJywgdmFsdWU6IDJ9 LCB7bGFiZWw6ICdPcDMnLCB2YWx1ZTogM31dCisgICAgICAgIH0pKTsKKyAgICAgICAgZG9uZSgp OworICAgICAgfSwgMCk7CisgICAgfSk7CisKKyAgICBpdCgnY3JlYXRhYmxlIHdpdGggbXVsdGkn LCAoZG9uZSk9PnsKKyAgICAgIGN0cmwuc2V0UHJvcHMoeworICAgICAgICBjb250cm9sUHJvcHM6 IHsKKyAgICAgICAgICBjcmVhdGFibGU6IHRydWUsCisgICAgICAgICAgbXVsdGlwbGU6IHRydWUs CisgICAgICAgIH0sCisgICAgICAgIHZhbHVlOiBbJ3ZhbDEnLCAndmFsMiddLAorICAgICAgfSk7 CisKKyAgICAgIHNldFRpbWVvdXQoKCk9PnsKKyAgICAgICAgY3RybC51cGRhdGUoKTsKKyAgICAg ICAgZXhwZWN0KGN0cmwuZmluZChTZWxlY3QpLmV4aXN0cygpKS50b0JlKGZhbHNlKTsKKyAgICAg ICAgZXhwZWN0KGN0cmwuZmluZChDcmVhdGFibGVTZWxlY3QpLmV4aXN0cygpKS50b0JlKHRydWUp OworCisgICAgICAgIGV4cGVjdChjdHJsLmZpbmQoQ3JlYXRhYmxlU2VsZWN0KS5wcm9wcygpKS50 b0VxdWFsKGphc21pbmUub2JqZWN0Q29udGFpbmluZyh7CisgICAgICAgICAgaXNNdWx0aTogdHJ1 ZSwKKyAgICAgICAgICB2YWx1ZTogW3tsYWJlbDogJ3ZhbDEnLCB2YWx1ZTogJ3ZhbDEnfSwge2xh YmVsOiAndmFsMicsIHZhbHVlOiAndmFsMid9XQorICAgICAgICB9KSk7CisgICAgICAgIGRvbmUo KTsKKyAgICAgIH0sIDApOworICAgIH0pOworCisgICAgaXQoJ3Byb21pc2Ugb3B0aW9ucycsIChk b25lKT0+eworICAgICAgbGV0IG9wdGlvbnNMb2FkZWQgPSBqYXNtaW5lLmNyZWF0ZVNweSgpOwor ICAgICAgbGV0IHJlcyA9IFsKKyAgICAgICAge2xhYmVsOiAnUHJPcDEnLCB2YWx1ZTogMX0sCisg ICAgICAgIHtsYWJlbDogJ1ByT3AyJywgdmFsdWU6IDJ9LAorICAgICAgICB7bGFiZWw6ICdQck9w MycsIHZhbHVlOiAzfSwKKyAgICAgIF07CisgICAgICAvKiBGb3Igb3B0aW9ucyBjaGFuZ2UsIHJl bW91bnQgbmVlZGVkICovCisgICAgICBjdHJsTW91bnQoeworICAgICAgICBvcHRpb25zOiAoKT0+ UHJvbWlzZS5yZXNvbHZlKHJlcyksCisgICAgICAgIHZhbHVlOiAzLAorICAgICAgICBvcHRpb25z TG9hZGVkOiBvcHRpb25zTG9hZGVkLAorICAgICAgfSk7CisKKyAgICAgIHNldFRpbWVvdXQoKCk9 PnsKKyAgICAgICAgY3RybC51cGRhdGUoKTsKKyAgICAgICAgZXhwZWN0KG9wdGlvbnNMb2FkZWQp LnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHJlcywgMyk7CisgICAgICAgIGV4cGVjdChjdHJsLmZpbmQo U2VsZWN0KS5wcm9wcygpKS50b0VxdWFsKGphc21pbmUub2JqZWN0Q29udGFpbmluZyh7CisgICAg ICAgICAgdmFsdWU6IHtsYWJlbDogJ1ByT3AzJywgdmFsdWU6IDN9LAorICAgICAgICB9KSk7Cisg ICAgICAgIGRvbmUoKTsKKyAgICAgIH0sIDApOworICAgIH0pOworCisgICAgaXQoJ2FjY2Vzc2li aWxpdHknLCAoKT0+eworICAgICAgZXhwZWN0KGN0cmwuZmluZChJbnB1dExhYmVsKSkudG9IYXZl UHJvcCgnaHRtbEZvcicsICdpbnBDaWQnKTsKKyAgICAgIGV4cGVjdChjdHJsLmZpbmQoRm9ybUhl bHBlclRleHQpKS50b0hhdmVQcm9wKCdpZCcsICdoaW5wQ2lkJyk7CisgICAgfSk7CisgIH0pOwor CisgIGRlc2NyaWJlKCdGb3JtSW5wdXRDb2xvcicsICgpPT57CisgICAgbGV0IHBpY2tyT2JqID0g UmVhY3QuY3JlYXRlUmVmKCk7CisgICAgbGV0IFRoZW1lZEZvcm1JbnB1dENvbG9yID0gd2l0aFRo ZW1lKEZvcm1JbnB1dENvbG9yKSwgY3RybCwgb25DaGFuZ2U9amFzbWluZS5jcmVhdGVTcHkoJ29u Q2hhbmdlJyk7CisKKyAgICBiZWZvcmVFYWNoKCgpPT57CisgICAgICBjdHJsID0gbW91bnQoCisg ICAgICAgIDxUaGVtZWRGb3JtSW5wdXRDb2xvcgorICAgICAgICAgIGxhYmVsPSJGaXJzdCIKKyAg ICAgICAgICBjbGFzc05hbWU9InNvbWVDbGFzcyIKKyAgICAgICAgICB0ZXN0Y2lkPSJpbnBDaWQi CisgICAgICAgICAgaGVscE1lc3NhZ2U9InNvbWUgaGVscCBtZXNzYWdlIgorICAgICAgICAgIC8q IElucHV0Q29sb3IgKi8KKyAgICAgICAgICBkaXNhYmxlZD17ZmFsc2V9CisgICAgICAgICAgdmFs dWU9IiNmMGYiCisgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfQorICAgICAgICAgIGN1cnJP Ymo9eyhvYmopPT5waWNrck9iai5jdXJyZW50PW9ian0KKyAgICAgICAgLz4pOworICAgIH0pOwor CisgICAgYWZ0ZXJFYWNoKCgpPT57CisgICAgICBjdHJsLnVubW91bnQoKTsKKyAgICB9KTsKKwor ICAgIGl0KCdpbml0JywgKGRvbmUpPT57CisgICAgICBzZXRUaW1lb3V0KCgpPT57CisgICAgICAg IGN0cmwudXBkYXRlKCk7CisgICAgICAgIGV4cGVjdChjdHJsLmZpbmQoQnV0dG9uKS5wcm9wKCdz dHlsZScpKS50b0VxdWFsKGphc21pbmUub2JqZWN0Q29udGFpbmluZyh7CisgICAgICAgICAgYmFj a2dyb3VuZENvbG9yOiAnI2YwZicsCisgICAgICAgIH0pKTsKKyAgICAgICAgZG9uZSgpOworICAg ICAgfSwgMCk7CisgICAgfSk7CisKKyAgICBpdCgnbm8gY29sb3InLCAoZG9uZSk9PnsKKyAgICAg IGN0cmwuc2V0UHJvcHMoeworICAgICAgICB2YWx1ZTogbnVsbCwKKyAgICAgIH0pOworICAgICAg c2V0VGltZW91dCgoKT0+eworICAgICAgICBjdHJsLnVwZGF0ZSgpOworICAgICAgICBleHBlY3Qo Y3RybC5maW5kKEJ1dHRvbikucHJvcCgnc3R5bGUnKSkudG9FcXVhbChqYXNtaW5lLm9iamVjdENv bnRhaW5pbmcoeworICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogbnVsbCwKKyAgICAgICAgfSkp OworICAgICAgICBleHBlY3QoY3RybC5maW5kKEJ1dHRvbikuZmluZChDbG9zZUljb24pLmV4aXN0 cygpKS50b0JlKHRydWUpOworICAgICAgICBkb25lKCk7CisgICAgICB9LCAwKTsKKyAgICB9KTsK KworICAgIGl0KCdvdGhlciBldmVudHMnLCAoZG9uZSk9PnsKKyAgICAgIHBpY2tyT2JqLmN1cnJl bnQuYXBwbHlDb2xvcihmYWxzZSk7CisgICAgICBzZXRUaW1lb3V0KCgpPT57CisgICAgICAgIGV4 cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZCgpOworICAgICAgICBkb25lKCk7CisgICAg ICB9LCAwKTsKKyAgICB9KTsKKworICAgIGl0KCdhY2Nlc3NpYmlsaXR5JywgKCk9PnsKKyAgICAg IGV4cGVjdChjdHJsLmZpbmQoSW5wdXRMYWJlbCkpLnRvSGF2ZVByb3AoJ2h0bWxGb3InLCAnaW5w Q2lkJyk7CisgICAgICBleHBlY3QoY3RybC5maW5kKEZvcm1IZWxwZXJUZXh0KSkudG9IYXZlUHJv cCgnaWQnLCAnaGlucENpZCcpOworICAgIH0pOworICB9KTsKKworICBkZXNjcmliZSgnRm9ybUZv b3Rlck1lc3NhZ2UnLCAoKT0+eworICAgIGxldCBUaGVtZWRGb3JtRm9vdGVyTWVzc2FnZSA9IHdp dGhUaGVtZShGb3JtRm9vdGVyTWVzc2FnZSksIGN0cmwsIG9uQ2xvc2U9amFzbWluZS5jcmVhdGVT cHkoJ29uQ2xvc2UnKTsKKworICAgIGJlZm9yZUVhY2goKCk9PnsKKyAgICAgIGN0cmwgPSBtb3Vu dCgKKyAgICAgICAgPFRoZW1lZEZvcm1Gb290ZXJNZXNzYWdlCisgICAgICAgICAgdHlwZT17TUVT U0FHRV9UWVBFLlNVQ0NFU1N9CisgICAgICAgICAgbWVzc2FnZT0iU29tZSBtZXNzYWdlIgorICAg ICAgICAgIGNsb3NhYmxlPXtmYWxzZX0KKyAgICAgICAgICBvbkNsb3NlPXtvbkNsb3NlfQorICAg ICAgICAvPik7CisgICAgfSk7CisKKyAgICAvLyBpZihjbG9zZSkgeworICAgIC8vICAgVGhlSWNv biA9IENsb3NlSWNvbjsKKyAgICAvLyB9IGVsc2UgaWYodHlwZSA9PT0gTUVTU0FHRV9UWVBFLlNV Q0NFU1MpIHsKKyAgICAvLyAgIFRoZUljb24gPSBDaGVja0ljb247CisgICAgLy8gfSBlbHNlIGlm KHR5cGUgPT09IE1FU1NBR0VfVFlQRS5FUlJPUikgeworICAgIC8vICAgVGhlSWNvbiA9IFJlcG9y dFByb2JsZW1JY29uOworICAgIC8vIH0gZWxzZSBpZih0eXBlID09PSBNRVNTQUdFX1RZUEUuSU5G TykgeworICAgIC8vICAgVGhlSWNvbiA9IEluZm9JY29uOworICAgIC8vIH0KKworICAgIGl0KCdp bml0JywgKCk9PnsKKyAgICAgIGV4cGVjdChjdHJsLmZpbmQoQ2hlY2tJY29uKS5leGlzdHMoKSku dG9CZVRydWUoKTsKKyAgICAgIGV4cGVjdChjdHJsLnRleHQoKSkudG9CZSgnU29tZSBtZXNzYWdl Jyk7CisgICAgfSk7CisKKyAgICBpdCgnY2hhbmdlIHR5cGVzJywgKCk9PnsKKyAgICAgIGN0cmwu c2V0UHJvcHMoeworICAgICAgICB0eXBlOiBNRVNTQUdFX1RZUEUuRVJST1IsCisgICAgICB9KTsK KyAgICAgIGV4cGVjdChjdHJsLmZpbmQoUmVwb3J0UHJvYmxlbUljb24pLmV4aXN0cygpKS50b0Jl VHJ1ZSgpOworCisgICAgICBjdHJsLnNldFByb3BzKHsKKyAgICAgICAgdHlwZTogTUVTU0FHRV9U WVBFLklORk8sCisgICAgICB9KTsKKyAgICAgIGV4cGVjdChjdHJsLmZpbmQoSW5mb0ljb24pLmV4 aXN0cygpKS50b0JlVHJ1ZSgpOworICAgIH0pOworCisgICAgaXQoJ2Nsb3NhYmxlJywgKCk9PnsK KyAgICAgIGN0cmwuc2V0UHJvcHMoeworICAgICAgICBjbG9zYWJsZTogdHJ1ZSwKKyAgICAgIH0p OworICAgICAgZXhwZWN0KGN0cmwuZmluZChDbG9zZUljb24pLmV4aXN0cygpKS50b0JlVHJ1ZSgp OworICAgICAgY3RybC5maW5kKEljb25CdXR0b24pLnNpbXVsYXRlKCdjbGljaycpOworICAgICAg ZXhwZWN0KG9uQ2xvc2UpLnRvSGF2ZUJlZW5DYWxsZWQoKTsKKyAgICB9KTsKKworICAgIGl0KCdu byBtZXNzYWdlJywgKCk9PnsKKyAgICAgIGN0cmwuc2V0UHJvcHMoeworICAgICAgICBtZXNzYWdl OiAnJywKKyAgICAgIH0pOworICAgICAgZXhwZWN0KGN0cmwuaXNFbXB0eVJlbmRlcigpKS50b0Jl VHJ1ZSgpOworICAgIH0pOworICB9KTsKK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24v amF2YXNjcmlwdC9jb21wb25lbnRzL0xvYWRlci5zcGVjLmpzIGIvd2ViL3JlZ3Jlc3Npb24vamF2 YXNjcmlwdC9jb21wb25lbnRzL0xvYWRlci5zcGVjLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMC4uNTNlNGUxNGJlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3JlZ3Jlc3Np b24vamF2YXNjcmlwdC9jb21wb25lbnRzL0xvYWRlci5zcGVjLmpzCkBAIC0wLDAgKzEsNDMgQEAK K2ltcG9ydCBqYXNtaW5lRW56eW1lIGZyb20gJ2phc21pbmUtZW56eW1lJzsKK2ltcG9ydCBSZWFj dCBmcm9tICdyZWFjdCc7CitpbXBvcnQgJy4uL2hlbHBlci9lbnp5bWUuaGVscGVyJzsKK2ltcG9y dCB7IGNyZWF0ZU1vdW50IH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvdGVzdC11dGlscyc7Citp bXBvcnQgeyB3aXRoVGhlbWUgfSBmcm9tICcuLi9mYWtlX3RoZW1lJzsKK2ltcG9ydCBMb2FkZXIg ZnJvbSAnc291cmNlcy9jb21wb25lbnRzL0xvYWRlcic7CisKKworLyogTVVJIENvbXBvbmVudHMg bmVlZCB0byBiZSB3cmFwcGVkIGluIFRoZW1lIGZvciB0aGVtZSB2YXJzICovCitkZXNjcmliZSgn TG9hZGVyJywgKCk9PnsKKyAgbGV0IG1vdW50LCBsb2FkZXJJbnN0LCBUaGVtZWRMb2FkZXI7CisK KyAgLyogVXNlIGNyZWF0ZU1vdW50IHNvIHRoYXQgbWF0ZXJpYWwgdWkgY29tcG9uZW50cyBnZXRz IHRoZSByZXF1aXJlZCBjb250ZXh0ICovCisgIC8qIGh0dHBzOi8vbWF0ZXJpYWwtdWkuY29tL2d1 aWRlcy90ZXN0aW5nLyNhcGkgKi8KKyAgYmVmb3JlQWxsKCgpPT57CisgICAgbW91bnQgPSBjcmVh dGVNb3VudCgpOworICAgIC8qIExvYWRlciBuZWVkIE11aSBUaGVtZSBjb250ZXh0IGFzIHdlbGwg Ki8KKyAgICBUaGVtZWRMb2FkZXIgPSB3aXRoVGhlbWUoTG9hZGVyKTsKKyAgfSk7CisKKyAgYWZ0 ZXJBbGwoKCkgPT4geworICAgIG1vdW50LmNsZWFuVXAoKTsKKyAgfSk7CisKKyAgYmVmb3JlRWFj aCgoKT0+eworICAgIGphc21pbmVFbnp5bWUoKTsKKyAgICBsb2FkZXJJbnN0ID0gbW91bnQoPFRo ZW1lZExvYWRlciBtZXNzYWdlPXsnbG9hZGluZyd9IC8+KTsKKyAgfSk7CisKKyAgaXQoJ2luaXQn LCAoKT0+eworICAgIGV4cGVjdChsb2FkZXJJbnN0LmZpbmQoJy5NdWlUeXBvZ3JhcGh5LXJvb3Qn KS50ZXh0KCkpLnRvQmUoJ2xvYWRpbmcnKTsKKyAgfSk7CisKKyAgaXQoJ25vIG1lc3NhZ2UnLCAo KT0+eworICAgIGxvYWRlckluc3Quc2V0UHJvcHMoe21lc3NhZ2U6ICcnfSk7CisgICAgZXhwZWN0 KGxvYWRlckluc3QuaXNFbXB0eVJlbmRlcigpKS50b0JlVHJ1dGh5KCk7CisgIH0pOworCisgIGl0 KCdjaGFuZ2UgbWVzc2FnZScsICgpPT57CisgICAgbG9hZGVySW5zdC5zZXRQcm9wcyh7bWVzc2Fn ZTogJ3Rlc3QgbWVzc2FnZSd9KTsKKyAgICBleHBlY3QobG9hZGVySW5zdC5maW5kKCcuTXVpVHlw b2dyYXBoeS1yb290JykudGV4dCgpKS50b0JlKCd0ZXN0IG1lc3NhZ2UnKTsKKyAgfSk7Cit9KTsK ZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvY29tcG9uZW50cy9Qcml2aWxl Z2Uuc3BlYy5qcyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvY29tcG9uZW50cy9Qcml2aWxl Z2Uuc3BlYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjA5ZGU1ZWEw YwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvY29tcG9uZW50 cy9Qcml2aWxlZ2Uuc3BlYy5qcwpAQCAtMCwwICsxLDE5NSBAQAoraW1wb3J0IGphc21pbmVFbnp5 bWUgZnJvbSAnamFzbWluZS1lbnp5bWUnOworaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JzsKK2lt cG9ydCAnLi4vaGVscGVyL2VuenltZS5oZWxwZXInOworaW1wb3J0IFByaXZpbGVnZSBmcm9tICdz b3VyY2VzL2NvbXBvbmVudHMvUHJpdmlsZWdlJzsKK2ltcG9ydCB7IG1vdW50IH0gZnJvbSAnZW56 eW1lJzsKKworZGVzY3JpYmUoJ1ByaXZpbGVnZScsICgpPT57CisgIGxldCBjdHJsLCBvbkNoYW5n ZSA9IGphc21pbmUuY3JlYXRlU3B5KCdvbkNoYW5nZScpOworICBiZWZvcmVFYWNoKCgpPT57Cisg ICAgamFzbWluZUVuenltZSgpOworICAgIGN0cmwgPSBtb3VudCgKKyAgICAgIDxQcml2aWxlZ2UK KyAgICAgICAgdmFsdWU9e1t7CisgICAgICAgICAgcHJpdmlsZWdlX3R5cGU6ICdDJywKKyAgICAg ICAgICBwcml2aWxlZ2U6IHRydWUsCisgICAgICAgICAgd2l0aF9ncmFudDogZmFsc2UsCisgICAg ICAgIH0seworICAgICAgICAgIHByaXZpbGVnZV90eXBlOiAnYScsCisgICAgICAgICAgcHJpdmls ZWdlOiB0cnVlLAorICAgICAgICAgIHdpdGhfZ3JhbnQ6IHRydWUsCisgICAgICAgIH1dfQorICAg ICAgICBjb250cm9sUHJvcHM9e3sKKyAgICAgICAgICBzdXBwb3J0ZWRQcml2czogWydDJywgJ2En LCAnciddCisgICAgICAgIH19CisgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX0KKyAgICAgIC8+ KTsKKyAgfSk7CisKKyAgaXQoJ2luaXQnLCAoKT0+eworICAgIGV4cGVjdChjdHJsLmZpbmQoJ0lu cHV0VGV4dCcpLnByb3AoJ3ZhbHVlJykpLnRvQmUoJ0NhKicpOworICAgIGV4cGVjdChjdHJsLmZp bmQoJ0lucHV0Q2hlY2tib3hbbmFtZT0iQyJdJykuYXQoMCkucHJvcCgndmFsdWUnKSkudG9CZVRy dWUoKTsKKyAgICBleHBlY3QoY3RybC5maW5kKCdJbnB1dENoZWNrYm94W25hbWU9IkMiXScpLmF0 KDEpLnByb3AoJ3ZhbHVlJykpLnRvQmVGYWxzZSgpOworCisgICAgZXhwZWN0KGN0cmwuZmluZCgn SW5wdXRDaGVja2JveFtuYW1lPSJhIl0nKS5hdCgwKS5wcm9wKCd2YWx1ZScpKS50b0JlVHJ1ZSgp OworICAgIGV4cGVjdChjdHJsLmZpbmQoJ0lucHV0Q2hlY2tib3hbbmFtZT0iYSJdJykuYXQoMSku cHJvcCgndmFsdWUnKSkudG9CZVRydWUoKTsKKworICAgIGV4cGVjdChjdHJsLmZpbmQoJ0lucHV0 Q2hlY2tib3hbbmFtZT0iciJdJykuYXQoMCkucHJvcCgndmFsdWUnKSkudG9CZUZhbHNlKCk7Cisg ICAgZXhwZWN0KGN0cmwuZmluZCgnSW5wdXRDaGVja2JveFtuYW1lPSJyIl0nKS5hdCgxKS5wcm9w KCd2YWx1ZScpKS50b0JlRmFsc2UoKTsKKyAgfSk7CisKKyAgaXQoJ2NoYW5nZSBwcm9wIHZhbHVl JywgKCk9PnsKKyAgICBjdHJsLnNldFByb3BzKHt2YWx1ZTogW3sKKyAgICAgIHByaXZpbGVnZV90 eXBlOiAnQycsCisgICAgICBwcml2aWxlZ2U6IHRydWUsCisgICAgICB3aXRoX2dyYW50OiB0cnVl LAorICAgIH0seworICAgICAgcHJpdmlsZWdlX3R5cGU6ICdyJywKKyAgICAgIHByaXZpbGVnZTog dHJ1ZSwKKyAgICAgIHdpdGhfZ3JhbnQ6IGZhbHNlLAorICAgIH1dfSk7CisKKyAgICBleHBlY3Qo Y3RybC5maW5kKCdJbnB1dFRleHQnKS5wcm9wKCd2YWx1ZScpKS50b0JlKCdDKnInKTsKKyAgICBl eHBlY3QoY3RybC5maW5kKCdJbnB1dENoZWNrYm94W25hbWU9IkMiXScpLmF0KDApLnByb3AoJ3Zh bHVlJykpLnRvQmVUcnVlKCk7CisgICAgZXhwZWN0KGN0cmwuZmluZCgnSW5wdXRDaGVja2JveFtu YW1lPSJDIl0nKS5hdCgxKS5wcm9wKCd2YWx1ZScpKS50b0JlVHJ1ZSgpOworCisgICAgZXhwZWN0 KGN0cmwuZmluZCgnSW5wdXRDaGVja2JveFtuYW1lPSJhIl0nKS5hdCgwKS5wcm9wKCd2YWx1ZScp KS50b0JlRmFsc2UoKTsKKyAgICBleHBlY3QoY3RybC5maW5kKCdJbnB1dENoZWNrYm94W25hbWU9 ImEiXScpLmF0KDEpLnByb3AoJ3ZhbHVlJykpLnRvQmVGYWxzZSgpOworCisgICAgZXhwZWN0KGN0 cmwuZmluZCgnSW5wdXRDaGVja2JveFtuYW1lPSJyIl0nKS5hdCgwKS5wcm9wKCd2YWx1ZScpKS50 b0JlVHJ1ZSgpOworICAgIGV4cGVjdChjdHJsLmZpbmQoJ0lucHV0Q2hlY2tib3hbbmFtZT0iciJd JykuYXQoMSkucHJvcCgndmFsdWUnKSkudG9CZUZhbHNlKCk7CisgIH0pOworCisgIGl0KCdubyBw cm9wIHZhbHVlJywgKCk9PnsKKyAgICBjdHJsLnNldFByb3BzKHt2YWx1ZTogbnVsbH0pOworCisg ICAgZXhwZWN0KGN0cmwuZmluZCgnSW5wdXRUZXh0JykucHJvcCgndmFsdWUnKSkudG9CZSgnJyk7 CisgICAgZXhwZWN0KGN0cmwuZmluZCgnSW5wdXRDaGVja2JveFtuYW1lPSJDIl0nKS5hdCgwKS5w cm9wKCd2YWx1ZScpKS50b0JlRmFsc2UoKTsKKyAgICBleHBlY3QoY3RybC5maW5kKCdJbnB1dENo ZWNrYm94W25hbWU9IkMiXScpLmF0KDEpLnByb3AoJ3ZhbHVlJykpLnRvQmVGYWxzZSgpOworCisg ICAgZXhwZWN0KGN0cmwuZmluZCgnSW5wdXRDaGVja2JveFtuYW1lPSJhIl0nKS5hdCgwKS5wcm9w KCd2YWx1ZScpKS50b0JlRmFsc2UoKTsKKyAgICBleHBlY3QoY3RybC5maW5kKCdJbnB1dENoZWNr Ym94W25hbWU9ImEiXScpLmF0KDEpLnByb3AoJ3ZhbHVlJykpLnRvQmVGYWxzZSgpOworCisgICAg ZXhwZWN0KGN0cmwuZmluZCgnSW5wdXRDaGVja2JveFtuYW1lPSJyIl0nKS5hdCgwKS5wcm9wKCd2 YWx1ZScpKS50b0JlRmFsc2UoKTsKKyAgICBleHBlY3QoY3RybC5maW5kKCdJbnB1dENoZWNrYm94 W25hbWU9InIiXScpLmF0KDEpLnByb3AoJ3ZhbHVlJykpLnRvQmVGYWxzZSgpOworICB9KTsKKwor ICBpdCgnd2l0aCBncmFudCBkaXNhYmxlZCcsICgpPT57CisgICAgZXhwZWN0KGN0cmwuZmluZCgn SW5wdXRDaGVja2JveFtuYW1lPSJhbGwiXScpLmF0KDEpLnByb3AoJ2Rpc2FibGVkJykpLnRvQmVU cnVlKCk7CisgICAgZXhwZWN0KGN0cmwuZmluZCgnSW5wdXRDaGVja2JveFtuYW1lPSJyIl0nKS5h dCgxKS5wcm9wKCdkaXNhYmxlZCcpKS50b0JlVHJ1ZSgpOworICB9KTsKKworICBpdCgnb24gY2hl Y2sgY2xpY2snLCAoZG9uZSk9PnsKKyAgICBvbkNoYW5nZS5jYWxscy5yZXNldCgpOworICAgIGN0 cmwuZmluZCgnSW5wdXRDaGVja2JveFtuYW1lPSJDIl0nKS5hdCgwKS5maW5kKCdpbnB1dCcpLgor ICAgICAgc2ltdWxhdGUoJ2NoYW5nZScsIHt0YXJnZXQ6IHtjaGVja2VkOiBmYWxzZSwgbmFtZTog J0MnfX0pOworCisgICAgc2V0VGltZW91dCgoKT0+eworICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50 b0hhdmVCZWVuQ2FsbGVkV2l0aChbeworICAgICAgICBwcml2aWxlZ2VfdHlwZTogJ2EnLAorICAg ICAgICBwcml2aWxlZ2U6IHRydWUsCisgICAgICAgIHdpdGhfZ3JhbnQ6IHRydWUsCisgICAgICB9 XSk7CisgICAgICBkb25lKCk7CisgICAgfSwgNTAwKTsKKyAgfSk7CisKKyAgaXQoJ29uIG5ldyBj aGVjayBjbGljaycsIChkb25lKT0+eworICAgIG9uQ2hhbmdlLmNhbGxzLnJlc2V0KCk7CisgICAg Y3RybC5maW5kKCdJbnB1dENoZWNrYm94W25hbWU9InIiXScpLmF0KDApLmZpbmQoJ2lucHV0Jyku CisgICAgICBzaW11bGF0ZSgnY2hhbmdlJywge3RhcmdldDoge2NoZWNrZWQ6IHRydWUsIG5hbWU6 ICdyJ319KTsKKworICAgIHNldFRpbWVvdXQoKCk9PnsKKyAgICAgIGV4cGVjdChvbkNoYW5nZSku dG9IYXZlQmVlbkNhbGxlZFdpdGgoW3sKKyAgICAgICAgcHJpdmlsZWdlX3R5cGU6ICdDJywKKyAg ICAgICAgcHJpdmlsZWdlOiB0cnVlLAorICAgICAgICB3aXRoX2dyYW50OiBmYWxzZSwKKyAgICAg IH0seworICAgICAgICBwcml2aWxlZ2VfdHlwZTogJ2EnLAorICAgICAgICBwcml2aWxlZ2U6IHRy dWUsCisgICAgICAgIHdpdGhfZ3JhbnQ6IHRydWUsCisgICAgICB9LHsKKyAgICAgICAgcHJpdmls ZWdlX3R5cGU6ICdyJywKKyAgICAgICAgcHJpdmlsZWdlOiB0cnVlLAorICAgICAgICB3aXRoX2dy YW50OiBmYWxzZSwKKyAgICAgIH1dKTsKKyAgICAgIGRvbmUoKTsKKyAgICB9LCA1MDApOworICB9 KTsKKworICBpdCgnb24gY2hlY2sgZ3JhbnQgY2xpY2snLCAoZG9uZSk9PnsKKyAgICBvbkNoYW5n ZS5jYWxscy5yZXNldCgpOworICAgIGN0cmwuZmluZCgnSW5wdXRDaGVja2JveFtuYW1lPSJDIl0n KS5hdCgxKS5maW5kKCdpbnB1dCcpLgorICAgICAgc2ltdWxhdGUoJ2NoYW5nZScsIHt0YXJnZXQ6 IHtjaGVja2VkOiB0cnVlLCBuYW1lOiAnQyd9fSk7CisKKyAgICBzZXRUaW1lb3V0KCgpPT57Cisg ICAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKFt7CisgICAgICAgIHBy aXZpbGVnZV90eXBlOiAnQycsCisgICAgICAgIHByaXZpbGVnZTogdHJ1ZSwKKyAgICAgICAgd2l0 aF9ncmFudDogdHJ1ZSwKKyAgICAgIH0seworICAgICAgICBwcml2aWxlZ2VfdHlwZTogJ2EnLAor ICAgICAgICBwcml2aWxlZ2U6IHRydWUsCisgICAgICAgIHdpdGhfZ3JhbnQ6IHRydWUsCisgICAg ICB9XSk7CisgICAgICBkb25lKCk7CisgICAgfSwgNTAwKTsKKyAgfSk7CisKKyAgaXQoJ29uIGFs bCBjbGljaycsIChkb25lKT0+eworICAgIGN0cmwuZmluZCgnSW5wdXRDaGVja2JveFtuYW1lPSJh bGwiXScpLmF0KDApLmZpbmQoJ2lucHV0Jykuc2ltdWxhdGUoJ2NoYW5nZScsIHt0YXJnZXQ6IHtj aGVja2VkOiB0cnVlfX0pOworCisgICAgc2V0VGltZW91dCgoKT0+eworICAgICAgZXhwZWN0KG9u Q2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChbeworICAgICAgICBwcml2aWxlZ2VfdHlwZTog J0MnLAorICAgICAgICBwcml2aWxlZ2U6IHRydWUsCisgICAgICAgIHdpdGhfZ3JhbnQ6IGZhbHNl LAorICAgICAgfSx7CisgICAgICAgIHByaXZpbGVnZV90eXBlOiAnYScsCisgICAgICAgIHByaXZp bGVnZTogdHJ1ZSwKKyAgICAgICAgd2l0aF9ncmFudDogdHJ1ZSwKKyAgICAgIH0seworICAgICAg ICBwcml2aWxlZ2VfdHlwZTogJ3InLAorICAgICAgICBwcml2aWxlZ2U6IHRydWUsCisgICAgICAg IHdpdGhfZ3JhbnQ6IGZhbHNlLAorICAgICAgfV0pOworICAgICAgZG9uZSgpOworICAgIH0sIDUw MCk7CisgIH0pOworCisgIGl0KCdvbiBhbGwgd2l0aCBncmFudCBjbGljaycsIChkb25lKT0+ewor ICAgIGN0cmwuc2V0UHJvcHMoeworICAgICAgdmFsdWU6IFt7CisgICAgICAgIHByaXZpbGVnZV90 eXBlOiAnQycsCisgICAgICAgIHByaXZpbGVnZTogdHJ1ZSwKKyAgICAgICAgd2l0aF9ncmFudDog ZmFsc2UsCisgICAgICB9LHsKKyAgICAgICAgcHJpdmlsZWdlX3R5cGU6ICdhJywKKyAgICAgICAg cHJpdmlsZWdlOiB0cnVlLAorICAgICAgICB3aXRoX2dyYW50OiB0cnVlLAorICAgICAgfSx7Cisg ICAgICAgIHByaXZpbGVnZV90eXBlOiAncicsCisgICAgICAgIHByaXZpbGVnZTogdHJ1ZSwKKyAg ICAgICAgd2l0aF9ncmFudDogZmFsc2UsCisgICAgICB9XQorICAgIH0pOworICAgIGN0cmwuZmlu ZCgnSW5wdXRDaGVja2JveFtuYW1lPSJhbGwiXScpLmF0KDEpLmZpbmQoJ2lucHV0Jykuc2ltdWxh dGUoJ2NoYW5nZScsIHt0YXJnZXQ6IHtjaGVja2VkOiB0cnVlfX0pOworCisgICAgc2V0VGltZW91 dCgoKT0+eworICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChbewor ICAgICAgICBwcml2aWxlZ2VfdHlwZTogJ0MnLAorICAgICAgICBwcml2aWxlZ2U6IHRydWUsCisg ICAgICAgIHdpdGhfZ3JhbnQ6IHRydWUsCisgICAgICB9LHsKKyAgICAgICAgcHJpdmlsZWdlX3R5 cGU6ICdhJywKKyAgICAgICAgcHJpdmlsZWdlOiB0cnVlLAorICAgICAgICB3aXRoX2dyYW50OiB0 cnVlLAorICAgICAgfSx7CisgICAgICAgIHByaXZpbGVnZV90eXBlOiAncicsCisgICAgICAgIHBy aXZpbGVnZTogdHJ1ZSwKKyAgICAgICAgd2l0aF9ncmFudDogdHJ1ZSwKKyAgICAgIH1dKTsKKyAg ICAgIGRvbmUoKTsKKyAgICB9LCA1MDApOworICB9KTsKK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3Jl Z3Jlc3Npb24vamF2YXNjcmlwdC9jb21wb25lbnRzL1RhYlBhbmVsLnNwZWMuanMgYi93ZWIvcmVn cmVzc2lvbi9qYXZhc2NyaXB0L2NvbXBvbmVudHMvVGFiUGFuZWwuc3BlYy5qcwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjA0MzNlOTA4MAotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvY29tcG9uZW50cy9UYWJQYW5lbC5zcGVjLmpzCkBA IC0wLDAgKzEsMzkgQEAKK2ltcG9ydCBqYXNtaW5lRW56eW1lIGZyb20gJ2phc21pbmUtZW56eW1l JzsKK2ltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7CitpbXBvcnQgJy4uL2hlbHBlci9lbnp5bWUu aGVscGVyJzsKK2ltcG9ydCB7IGNyZWF0ZU1vdW50IH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUv dGVzdC11dGlscyc7CitpbXBvcnQgeyB3aXRoVGhlbWUgfSBmcm9tICcuLi9mYWtlX3RoZW1lJzsK K2ltcG9ydCBUYWJQYW5lbCBmcm9tICdzb3VyY2VzL2NvbXBvbmVudHMvVGFiUGFuZWwnOworCisK Ky8qIE1VSSBDb21wb25lbnRzIG5lZWQgdG8gYmUgd3JhcHBlZCBpbiBUaGVtZSBmb3IgdGhlbWUg dmFycyAqLworZGVzY3JpYmUoJ1RhYlBhbmVsJywgKCk9PnsKKyAgbGV0IG1vdW50LCBwYW5lbElu c3QsIFRoZW1lZFBhbmVsOworCisgIC8qIFVzZSBjcmVhdGVNb3VudCBzbyB0aGF0IG1hdGVyaWFs IHVpIGNvbXBvbmVudHMgZ2V0cyB0aGUgcmVxdWlyZWQgY29udGV4dCAqLworICAvKiBodHRwczov L21hdGVyaWFsLXVpLmNvbS9ndWlkZXMvdGVzdGluZy8jYXBpICovCisgIGJlZm9yZUFsbCgoKT0+ eworICAgIG1vdW50ID0gY3JlYXRlTW91bnQoKTsKKyAgICAvKiBOZWVkIE11aSBUaGVtZSBjb250 ZXh0IGFzIHdlbGwgKi8KKyAgICBUaGVtZWRQYW5lbCA9IHdpdGhUaGVtZShUYWJQYW5lbCk7Cisg IH0pOworCisgIGFmdGVyQWxsKCgpID0+IHsKKyAgICBtb3VudC5jbGVhblVwKCk7CisgIH0pOwor CisgIGJlZm9yZUVhY2goKCk9PnsKKyAgICBqYXNtaW5lRW56eW1lKCk7CisgICAgcGFuZWxJbnN0 ID0gbW91bnQoPFRoZW1lZFBhbmVsIHZhbHVlPXsxfSBpbmRleD17MH0+PGgxPnRlc3Q8L2gxPjwv VGhlbWVkUGFuZWw+KTsKKyAgfSk7CisKKyAgaXQoJ2luaXQnLCAoKT0+eworICAgIGV4cGVjdChw YW5lbEluc3QuZ2V0RE9NTm9kZSgpLmhpZGRlbikudG9CZVRydWUoKTsKKyAgICBleHBlY3QocGFu ZWxJbnN0LmZpbmQoJ2gxJykpLm5vdC50b0JlKG51bGwpOworICB9KTsKKworICBpdCgndGFiIHNl bGVjdCcsICgpPT57CisgICAgcGFuZWxJbnN0LnNldFByb3BzKHt2YWx1ZTogMH0pOworICAgIGV4 cGVjdChwYW5lbEluc3QuZ2V0RE9NTm9kZSgpLmhpZGRlbikudG9CZUZhbHNlKCk7CisgIH0pOwor fSk7CmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2Zha2VfY3VycmVudF91 c2VyLmpzIGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9mYWtlX2N1cnJlbnRfdXNlci5qcwpp bmRleCA2YWQwYjQ1YjguLmIzMmRhNWI5MSAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vamF2 YXNjcmlwdC9mYWtlX2N1cnJlbnRfdXNlci5qcworKysgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2Ny aXB0L2Zha2VfY3VycmVudF91c2VyLmpzCkBAIC05LDYgKzksNyBAQAogCiBkZWZpbmUoZnVuY3Rp b24gKCkgewogICByZXR1cm4geworICAgICdpZCc6ICdwZ2FkbWluNEBwZ2FkbWluLm9yZycsCiAg ICAgJ2N1cnJlbnRfYXV0aF9zb3VyY2UnOiAnaW50ZXJuYWwnCiAgIH07CiB9KTsKZGlmZiAtLWdp dCBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvZmFrZV9tZXNzYWdlcy5qcyBiL3dlYi9yZWdy ZXNzaW9uL2phdmFzY3JpcHQvZmFrZV9tZXNzYWdlcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAuLmY4ODg4YTgzOAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9yZWdyZXNz aW9uL2phdmFzY3JpcHQvZmFrZV9tZXNzYWdlcy5qcwpAQCAtMCwwICsxLDIwIEBACisvLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLworLy8KKy8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKy8vCisvLyBD b3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIxLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisv LyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UK Ky8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitkZWZpbmUoJ3BnYWRtaW4uYnJvd3Nlci5tZXNzYWdl cycsWydzb3VyY2VzL3BnYWRtaW4nXSwgZnVuY3Rpb24ocGdBZG1pbikgeworICB2YXIgcGdCcm93 c2VyID0gcGdBZG1pbi5Ccm93c2VyID0gcGdBZG1pbi5Ccm93c2VyIHx8IHt9OworCisgIGlmIChw Z0Jyb3dzZXIubWVzc2FnZXMpCisgICAgcmV0dXJuIHBnQnJvd3Nlci5tZXNzYWdlczsKKworICBw Z0Jyb3dzZXIubWVzc2FnZXMgPSB7CisgICAgJ0NBTk5PVF9CRV9FTVBUWSc6ICdcJyVzXCcgY2Fu bm90IGJlIGVtcHR5LicsCisgIH07CisgIHJldHVybiBwZ0Jyb3dzZXI7Cit9KTsKZGlmZiAtLWdp dCBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvZmFrZV9zdXBwb3J0ZWRfc2VydmVycy5qcyBi L3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvZmFrZV9zdXBwb3J0ZWRfc2VydmVycy5qcwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmQ5MGY3NmYzYQotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvZmFrZV9zdXBwb3J0ZWRfc2VydmVycy5q cwpAQCAtMCwwICsxLDE3IEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8vIHBnQWRtaW4gNCAt IFBvc3RncmVTUUwgVG9vbHMKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIxLCBUaGUg cGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisvLyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVu ZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitkZWZp bmUoZnVuY3Rpb24gKCkgeworICByZXR1cm4gWworICAgIHtsYWJlbDogJ0dyZWVucGx1bSBEYXRh YmFzZScsIHZhbHVlOiAnZ3BkYid9LAorICAgIHtsYWJlbDogJ0VEQiBBZHZhbmNlZCBTZXJ2ZXIn LCB2YWx1ZTogJ3BwYXMnfSwKKyAgICB7bGFiZWw6ICdQb3N0Z3JlU1FMJywgdmFsdWU6ICdwZyd9 LAorICAgIHtsYWJlbDogJ1Vua25vd24nLCB2YWx1ZTogJyd9LAorICBdOworfSk7CmRpZmYgLS1n aXQgYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L2Zha2VfdGhlbWUuanMgYi93ZWIvcmVncmVz c2lvbi9qYXZhc2NyaXB0L2Zha2VfdGhlbWUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwLi44NzVlOGZhM2IKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcmVncmVzc2lvbi9q YXZhc2NyaXB0L2Zha2VfdGhlbWUuanMKQEAgLTAsMCArMSw5IEBACitpbXBvcnQgUmVhY3QgZnJv bSAncmVhY3QnOworaW1wb3J0IFRoZW1lIGZyb20gJ3NvdXJjZXMvVGhlbWUnOworCitleHBvcnQg ZnVuY3Rpb24gd2l0aFRoZW1lKFdyYXBwZWRDb21wKSB7CisgIGxldCBOZXdDb21wID0gKHByb3Bz KT0+eworICAgIHJldHVybiA8VGhlbWU+PFdyYXBwZWRDb21wIHsuLi5wcm9wc30vPjwvVGhlbWU+ OworICB9OworICByZXR1cm4gTmV3Q29tcDsKK30KZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9u L2phdmFzY3JpcHQvc2NoZW1hX3VpX2ZpbGVzL2RhdGFiYXNlLnVpLnNwZWMuanMgYi93ZWIvcmVn cmVzc2lvbi9qYXZhc2NyaXB0L3NjaGVtYV91aV9maWxlcy9kYXRhYmFzZS51aS5zcGVjLmpzCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uOGE1ZjIxNTdlCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zY2hlbWFfdWlfZmlsZXMvZGF0YWJh c2UudWkuc3BlYy5qcwpAQCAtMCwwICsxLDExMSBAQAoraW1wb3J0IGphc21pbmVFbnp5bWUgZnJv bSAnamFzbWluZS1lbnp5bWUnOworaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JzsKK2ltcG9ydCBf IGZyb20gJ2xvZGFzaCc7CitpbXBvcnQgJy4uL2hlbHBlci9lbnp5bWUuaGVscGVyJzsKK2ltcG9y dCB7IGNyZWF0ZU1vdW50IH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvdGVzdC11dGlscyc7Citp bXBvcnQgcGdBZG1pbiBmcm9tICdzb3VyY2VzL3BnYWRtaW4nOworaW1wb3J0IHttZXNzYWdlc30g ZnJvbSAnLi4vZmFrZV9tZXNzYWdlcyc7CitpbXBvcnQgU2NoZW1hVmlldyBmcm9tICcuLi8uLi8u Li9wZ2FkbWluL3N0YXRpYy9qcy9TY2hlbWFWaWV3JzsKK2ltcG9ydCBCYXNlVUlTY2hlbWEgZnJv bSAnc291cmNlcy9TY2hlbWFWaWV3L2Jhc2Vfc2NoZW1hLnVpJzsKK2ltcG9ydCBEYXRhYmFzZVNj aGVtYSBmcm9tICcuLi8uLi8uLi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zdGF0aWMvanMvZGF0YWJhc2UudWknOworCitjbGFzcyBNb2NrU2NoZW1hIGV4 dGVuZHMgQmFzZVVJU2NoZW1hIHsKKyAgZ2V0IGJhc2VGaWVsZHMoKSB7CisgICAgcmV0dXJuIFtd OworICB9Cit9CisKK2Rlc2NyaWJlKCdEYXRhYmFzZVNjaGVtYScsICgpPT57CisgIGxldCBtb3Vu dDsKKyAgbGV0IHNjaGVtYU9iaiA9IG5ldyBEYXRhYmFzZVNjaGVtYSgKKyAgICAoKT0+bmV3IE1v Y2tTY2hlbWEoKSwKKyAgICAoKT0+bmV3IE1vY2tTY2hlbWEoKSwKKyAgICB7CisgICAgICByb2xl OiAoKT0+W10sCisgICAgICBlbmNvZGluZzogKCk9PltdLAorICAgICAgdGVtcGxhdGU6ICgpPT5b XSwKKyAgICAgIHNwY25hbWU6ICgpPT5bXSwKKyAgICAgIGRhdGNvbGxhdGU6ICgpPT5bXSwKKyAg ICAgIGRhdGN0eXBlOiAoKT0+W10sCisgICAgfSwKKyAgICB7CisgICAgICBkYXRvd25lcjogJ3Bv c3RncmVzJywKKyAgICB9CisgICk7CisgIGxldCBnZXRJbml0RGF0YSA9ICgpPT5Qcm9taXNlLnJl c29sdmUoe30pOworCisgIC8qIFVzZSBjcmVhdGVNb3VudCBzbyB0aGF0IG1hdGVyaWFsIHVpIGNv bXBvbmVudHMgZ2V0cyB0aGUgcmVxdWlyZWQgY29udGV4dCAqLworICAvKiBodHRwczovL21hdGVy aWFsLXVpLmNvbS9ndWlkZXMvdGVzdGluZy8jYXBpICovCisgIGJlZm9yZUFsbCgoKT0+eworICAg IG1vdW50ID0gY3JlYXRlTW91bnQoKTsKKyAgfSk7CisKKyAgYWZ0ZXJBbGwoKCkgPT4geworICAg IG1vdW50LmNsZWFuVXAoKTsKKyAgfSk7CisKKyAgYmVmb3JlRWFjaCgoKT0+eworICAgIGphc21p bmVFbnp5bWUoKTsKKyAgICAvKiBtZXNzYWdlcyB1c2VkIGJ5IHZhbGlkYXRvcnMgKi8KKyAgICBw Z0FkbWluLkJyb3dzZXIgPSBwZ0FkbWluLkJyb3dzZXIgfHwge307CisgICAgcGdBZG1pbi5Ccm93 c2VyLm1lc3NhZ2VzID0gcGdBZG1pbi5Ccm93c2VyLm1lc3NhZ2VzIHx8IG1lc3NhZ2VzOworICAg IHBnQWRtaW4uQnJvd3Nlci51dGlscyA9IHBnQWRtaW4uQnJvd3Nlci51dGlscyB8fCB7fTsKKyAg ICBwZ0FkbWluLkJyb3dzZXIudXRpbHMuc3VwcG9ydF9zc2hfdHVubmVsID0gdHJ1ZTsKKyAgfSk7 CisKKyAgaXQoJ2NyZWF0ZScsICgpPT57CisgICAgbW91bnQoPFNjaGVtYVZpZXcKKyAgICAgIGZv cm1UeXBlPSdkaWFsb2cnCisgICAgICBzY2hlbWE9e3NjaGVtYU9ian0KKyAgICAgIHZpZXdIZWxw ZXJQcm9wcz17eworICAgICAgICBtb2RlOiAnY3JlYXRlJywKKyAgICAgIH19CisgICAgICBvblNh dmU9eygpPT57fX0KKyAgICAgIG9uQ2xvc2U9eygpPT57fX0KKyAgICAgIG9uSGVscD17KCk9Pnt9 fQorICAgICAgb25FZGl0PXsoKT0+e319CisgICAgICBvbkRhdGFDaGFuZ2U9eygpPT57fX0KKyAg ICAgIGNvbmZpcm1PbkNsb3NlUmVzZXQ9e2ZhbHNlfQorICAgICAgaGFzU1FMPXtmYWxzZX0KKyAg ICAgIGRpc2FibGVTcWxIZWxwPXtmYWxzZX0KKyAgICAvPik7CisgIH0pOworCisgIGl0KCdlZGl0 JywgKCk9PnsKKyAgICBtb3VudCg8U2NoZW1hVmlldworICAgICAgZm9ybVR5cGU9J2RpYWxvZycK KyAgICAgIHNjaGVtYT17c2NoZW1hT2JqfQorICAgICAgZ2V0SW5pdERhdGE9e2dldEluaXREYXRh fQorICAgICAgdmlld0hlbHBlclByb3BzPXt7CisgICAgICAgIG1vZGU6ICdjcmVhdGUnLAorICAg ICAgfX0KKyAgICAgIG9uU2F2ZT17KCk9Pnt9fQorICAgICAgb25DbG9zZT17KCk9Pnt9fQorICAg ICAgb25IZWxwPXsoKT0+e319CisgICAgICBvbkVkaXQ9eygpPT57fX0KKyAgICAgIG9uRGF0YUNo YW5nZT17KCk9Pnt9fQorICAgICAgY29uZmlybU9uQ2xvc2VSZXNldD17ZmFsc2V9CisgICAgICBo YXNTUUw9e2ZhbHNlfQorICAgICAgZGlzYWJsZVNxbEhlbHA9e2ZhbHNlfQorICAgIC8+KTsKKyAg fSk7CisKKyAgaXQoJ3Byb3BlcnRpZXMnLCAoKT0+eworICAgIG1vdW50KDxTY2hlbWFWaWV3Cisg ICAgICBmb3JtVHlwZT0ndGFiJworICAgICAgc2NoZW1hPXtzY2hlbWFPYmp9CisgICAgICBnZXRJ bml0RGF0YT17Z2V0SW5pdERhdGF9CisgICAgICB2aWV3SGVscGVyUHJvcHM9e3sKKyAgICAgICAg bW9kZTogJ3Byb3BlcnRpZXMnLAorICAgICAgfX0KKyAgICAgIG9uSGVscD17KCk9Pnt9fQorICAg ICAgb25FZGl0PXsoKT0+e319CisgICAgLz4pOworICB9KTsKKworICBpdCgnc2NoZW1hX3JlcyBk ZXBDaGFuZ2UnLCAoKT0+eworICAgIGxldCBkZXBDaGFuZ2UgPSBfLmZpbmQoc2NoZW1hT2JqLmZp ZWxkcywgKGYpPT5mLmlkPT0nc2NoZW1hX3JlcycpLmRlcENoYW5nZTsKKyAgICBkZXBDaGFuZ2Uo e3NjaGVtYV9yZXM6ICdhYmMnfSk7CisgICAgZXhwZWN0KHNjaGVtYU9iai5pbmZvcm1UZXh0KS50 b0JlKCdQbGVhc2UgcmVmcmVzaCB0aGUgU2NoZW1hcyBub2RlIHRvIG1ha2UgY2hhbmdlcyB0byB0 aGUgc2NoZW1hIHJlc3RyaWN0aW9uIHRha2UgZWZmZWN0LicpOworICB9KTsKK30pOwpkaWZmIC0t Z2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zY2hlbWFfdWlfZmlsZXMvcHJpdmlsZWdl LnVpLnNwZWMuanMgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NjaGVtYV91aV9maWxlcy9w cml2aWxlZ2UudWkuc3BlYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAu LmZhMmFmNjM1ZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQv c2NoZW1hX3VpX2ZpbGVzL3ByaXZpbGVnZS51aS5zcGVjLmpzCkBAIC0wLDAgKzEsMTIxIEBACitp bXBvcnQgamFzbWluZUVuenltZSBmcm9tICdqYXNtaW5lLWVuenltZSc7CitpbXBvcnQgUmVhY3Qg ZnJvbSAncmVhY3QnOworaW1wb3J0ICcuLi9oZWxwZXIvZW56eW1lLmhlbHBlcic7CitpbXBvcnQg eyBjcmVhdGVNb3VudCB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3Rlc3QtdXRpbHMnOworaW1w b3J0IHBnQWRtaW4gZnJvbSAnc291cmNlcy9wZ2FkbWluJzsKK2ltcG9ydCB7bWVzc2FnZXN9IGZy b20gJy4uL2Zha2VfbWVzc2FnZXMnOworaW1wb3J0IFNjaGVtYVZpZXcgZnJvbSAnLi4vLi4vLi4v cGdhZG1pbi9zdGF0aWMvanMvU2NoZW1hVmlldyc7CitpbXBvcnQgUHJpdmlsZWdlUm9sZVNjaGVt YSwge2dldE5vZGVQcml2aWxlZ2VSb2xlU2NoZW1hfSBmcm9tICcuLi8uLi8uLi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3N0YXRpYy9qcy9wcml2aWxlZ2UudWknOworaW1w b3J0IHtEZWZhdWx0UHJpdlNjaGVtYX0gZnJvbSAnLi4vLi4vLi4vcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3RhdGljL2pzL2RhdGFiYXNlLnVpJzsKK2lt cG9ydCAqIGFzIG5vZGVBamF4IGZyb20gJy4uLy4uLy4uL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMv anMvbm9kZV9hamF4JzsKKworZGVzY3JpYmUoJ1ByaXZpbGVnZVNjaGVtYScsICgpPT57CisgIGxl dCBtb3VudDsKKyAgbGV0IHNjaGVtYU9iaiA9IG5ldyBQcml2aWxlZ2VSb2xlU2NoZW1hKAorICAg ICgpPT5bXSwKKyAgICAoKT0+W10sCisgICAgbnVsbCwKKyAgICB7c2VydmVyOiB7dXNlcjoge25h bWU6ICdwb3N0Z3Jlcyd9fX0sCisgICAgWydYJ10KKyAgKTsKKyAgbGV0IGdldEluaXREYXRhID0g KCk9PlByb21pc2UucmVzb2x2ZSh7fSk7CisKKyAgLyogVXNlIGNyZWF0ZU1vdW50IHNvIHRoYXQg bWF0ZXJpYWwgdWkgY29tcG9uZW50cyBnZXRzIHRoZSByZXF1aXJlZCBjb250ZXh0ICovCisgIC8q IGh0dHBzOi8vbWF0ZXJpYWwtdWkuY29tL2d1aWRlcy90ZXN0aW5nLyNhcGkgKi8KKyAgYmVmb3Jl QWxsKCgpPT57CisgICAgbW91bnQgPSBjcmVhdGVNb3VudCgpOworICB9KTsKKworICBhZnRlckFs bCgoKSA9PiB7CisgICAgbW91bnQuY2xlYW5VcCgpOworICB9KTsKKworICBiZWZvcmVFYWNoKCgp PT57CisgICAgamFzbWluZUVuenltZSgpOworICAgIC8qIG1lc3NhZ2VzIHVzZWQgYnkgdmFsaWRh dG9ycyAqLworICAgIHBnQWRtaW4uQnJvd3NlciA9IHBnQWRtaW4uQnJvd3NlciB8fCB7fTsKKyAg ICBwZ0FkbWluLkJyb3dzZXIubWVzc2FnZXMgPSBwZ0FkbWluLkJyb3dzZXIubWVzc2FnZXMgfHwg bWVzc2FnZXM7CisgICAgcGdBZG1pbi5Ccm93c2VyLnV0aWxzID0gcGdBZG1pbi5Ccm93c2VyLnV0 aWxzIHx8IHt9OworICAgIHBnQWRtaW4uQnJvd3Nlci51dGlscy5zdXBwb3J0X3NzaF90dW5uZWwg PSB0cnVlOworICB9KTsKKworICBpdCgnY3JlYXRlJywgKCk9PnsKKyAgICBtb3VudCg8U2NoZW1h VmlldworICAgICAgZm9ybVR5cGU9J2RpYWxvZycKKyAgICAgIHNjaGVtYT17c2NoZW1hT2JqfQor ICAgICAgdmlld0hlbHBlclByb3BzPXt7CisgICAgICAgIG1vZGU6ICdjcmVhdGUnLAorICAgICAg fX0KKyAgICAgIG9uU2F2ZT17KCk9Pnt9fQorICAgICAgb25DbG9zZT17KCk9Pnt9fQorICAgICAg b25IZWxwPXsoKT0+e319CisgICAgICBvbkVkaXQ9eygpPT57fX0KKyAgICAgIG9uRGF0YUNoYW5n ZT17KCk9Pnt9fQorICAgICAgY29uZmlybU9uQ2xvc2VSZXNldD17ZmFsc2V9CisgICAgICBoYXNT UUw9e2ZhbHNlfQorICAgICAgZGlzYWJsZVNxbEhlbHA9e2ZhbHNlfQorICAgIC8+KTsKKyAgfSk7 CisKKyAgaXQoJ2VkaXQnLCAoKT0+eworICAgIG1vdW50KDxTY2hlbWFWaWV3CisgICAgICBmb3Jt VHlwZT0nZGlhbG9nJworICAgICAgc2NoZW1hPXtzY2hlbWFPYmp9CisgICAgICBnZXRJbml0RGF0 YT17Z2V0SW5pdERhdGF9CisgICAgICB2aWV3SGVscGVyUHJvcHM9e3sKKyAgICAgICAgbW9kZTog J2NyZWF0ZScsCisgICAgICB9fQorICAgICAgb25TYXZlPXsoKT0+e319CisgICAgICBvbkNsb3Nl PXsoKT0+e319CisgICAgICBvbkhlbHA9eygpPT57fX0KKyAgICAgIG9uRWRpdD17KCk9Pnt9fQor ICAgICAgb25EYXRhQ2hhbmdlPXsoKT0+e319CisgICAgICBjb25maXJtT25DbG9zZVJlc2V0PXtm YWxzZX0KKyAgICAgIGhhc1NRTD17ZmFsc2V9CisgICAgICBkaXNhYmxlU3FsSGVscD17ZmFsc2V9 CisgICAgLz4pOworICB9KTsKKworICBpdCgncHJvcGVydGllcycsICgpPT57CisgICAgbW91bnQo PFNjaGVtYVZpZXcKKyAgICAgIGZvcm1UeXBlPSd0YWInCisgICAgICBzY2hlbWE9e3NjaGVtYU9i an0KKyAgICAgIGdldEluaXREYXRhPXtnZXRJbml0RGF0YX0KKyAgICAgIHZpZXdIZWxwZXJQcm9w cz17eworICAgICAgICBtb2RlOiAncHJvcGVydGllcycsCisgICAgICB9fQorICAgICAgb25IZWxw PXsoKT0+e319CisgICAgICBvbkVkaXQ9eygpPT57fX0KKyAgICAvPik7CisgIH0pOworCisgIGl0 KCd2YWxpZGF0ZScsICgpPT57CisgICAgbGV0IHN0YXRlID0ge307CisgICAgbGV0IHNldEVycm9y ID0gamFzbWluZS5jcmVhdGVTcHkoJ3NldEVycm9yJyk7CisKKyAgICBzY2hlbWFPYmoudmFsaWRh dGUoc3RhdGUsIHNldEVycm9yKTsKKyAgICBleHBlY3Qoc2V0RXJyb3IpLnRvSGF2ZUJlZW5DYWxs ZWRXaXRoKCdwcml2aWxlZ2VzJywgJ0F0IGxlYXN0IG9uZSBwcml2aWxlZ2Ugc2hvdWxkIGJlIHNl bGVjdGVkLicpOworICB9KTsKKworICBpdCgnRGVmYXVsdFByaXZTY2hlbWEnLCAoKT0+eworICAg IHNweU9uKG5vZGVBamF4LCAnZ2V0Tm9kZUxpc3RCeU5hbWUnKS5hbmQucmV0dXJuVmFsdWUoW10p OworICAgIGxldCBkZWZQcml2T2JqID0gbmV3IERlZmF1bHRQcml2U2NoZW1hKChwcml2aWxlZ2Vz KT0+Z2V0Tm9kZVByaXZpbGVnZVJvbGVTY2hlbWEoe30sIHtzZXJ2ZXI6IHt1c2VyOiB7bmFtZTog J3Bvc3RncmVzJ319fSwge30sIHByaXZpbGVnZXMpKTsKKyAgICBsZXQgY3RybCA9IG1vdW50KDxT Y2hlbWFWaWV3CisgICAgICBmb3JtVHlwZT0nZGlhbG9nJworICAgICAgc2NoZW1hPXtkZWZQcml2 T2JqfQorICAgICAgdmlld0hlbHBlclByb3BzPXt7CisgICAgICAgIG1vZGU6ICdjcmVhdGUnLAor ICAgICAgfX0KKyAgICAgIG9uU2F2ZT17KCk9Pnt9fQorICAgICAgb25DbG9zZT17KCk9Pnt9fQor ICAgICAgb25IZWxwPXsoKT0+e319CisgICAgICBvbkVkaXQ9eygpPT57fX0KKyAgICAgIG9uRGF0 YUNoYW5nZT17KCk9Pnt9fQorICAgICAgY29uZmlybU9uQ2xvc2VSZXNldD17ZmFsc2V9CisgICAg ICBoYXNTUUw9e2ZhbHNlfQorICAgICAgZGlzYWJsZVNxbEhlbHA9e2ZhbHNlfQorICAgIC8+KTsK KyAgICAvKiBNYWtlIHN1cmUgeW91IGhpdCBldmVyeSBjb3JuZXIgKi8KKyAgICBjdHJsLmZpbmQo J0RhdGFHcmlkVmlldycpLmF0KDApLmZpbmQoJ1BnSWNvbkJ1dHRvbltkYXRhLXRlc3Q9ImFkZC1y b3ciXScpLmZpbmQoJ2J1dHRvbicpLnNpbXVsYXRlKCdjbGljaycpOworICB9KTsKK30pOwpkaWZm IC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zY2hlbWFfdWlfZmlsZXMvc2VydmVy LnVpLnNwZWMuanMgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NjaGVtYV91aV9maWxlcy9z ZXJ2ZXIudWkuc3BlYy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjVi ODMxOWVjNQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvc2No ZW1hX3VpX2ZpbGVzL3NlcnZlci51aS5zcGVjLmpzCkBAIC0wLDAgKzEsMTMwIEBACitpbXBvcnQg amFzbWluZUVuenltZSBmcm9tICdqYXNtaW5lLWVuenltZSc7CitpbXBvcnQgUmVhY3QgZnJvbSAn cmVhY3QnOworaW1wb3J0ICcuLi9oZWxwZXIvZW56eW1lLmhlbHBlcic7CitpbXBvcnQgeyBjcmVh dGVNb3VudCB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3Rlc3QtdXRpbHMnOworaW1wb3J0IHBn QWRtaW4gZnJvbSAnc291cmNlcy9wZ2FkbWluJzsKK2ltcG9ydCB7bWVzc2FnZXN9IGZyb20gJy4u L2Zha2VfbWVzc2FnZXMnOworaW1wb3J0IFNjaGVtYVZpZXcgZnJvbSAnLi4vLi4vLi4vcGdhZG1p bi9zdGF0aWMvanMvU2NoZW1hVmlldyc7CitpbXBvcnQgU2VydmVyU2NoZW1hIGZyb20gJy4uLy4u Ly4uL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvc3RhdGljL2pzL3NlcnZl ci51aSc7CisKK2Rlc2NyaWJlKCdTZXJ2ZXJTY2hlbWEnLCAoKT0+eworICBsZXQgbW91bnQ7Cisg IGxldCBzY2hlbWFPYmogPSBuZXcgU2VydmVyU2NoZW1hKFt7CisgICAgbGFiZWw6ICdTZXJ2ZXJz JywgdmFsdWU6IDEsCisgIH1dLCB7CisgICAgdXNlcl9pZDogJ2phc21pbmUnLAorICB9KTsKKyAg bGV0IGdldEluaXREYXRhID0gKCk9PlByb21pc2UucmVzb2x2ZSh7fSk7CisKKyAgLyogVXNlIGNy ZWF0ZU1vdW50IHNvIHRoYXQgbWF0ZXJpYWwgdWkgY29tcG9uZW50cyBnZXRzIHRoZSByZXF1aXJl ZCBjb250ZXh0ICovCisgIC8qIGh0dHBzOi8vbWF0ZXJpYWwtdWkuY29tL2d1aWRlcy90ZXN0aW5n LyNhcGkgKi8KKyAgYmVmb3JlQWxsKCgpPT57CisgICAgbW91bnQgPSBjcmVhdGVNb3VudCgpOwor ICB9KTsKKworICBhZnRlckFsbCgoKSA9PiB7CisgICAgbW91bnQuY2xlYW5VcCgpOworICB9KTsK KworICBiZWZvcmVFYWNoKCgpPT57CisgICAgamFzbWluZUVuenltZSgpOworICAgIC8qIG1lc3Nh Z2VzIHVzZWQgYnkgdmFsaWRhdG9ycyAqLworICAgIHBnQWRtaW4uQnJvd3NlciA9IHBnQWRtaW4u QnJvd3NlciB8fCB7fTsKKyAgICBwZ0FkbWluLkJyb3dzZXIubWVzc2FnZXMgPSBwZ0FkbWluLkJy b3dzZXIubWVzc2FnZXMgfHwgbWVzc2FnZXM7CisgICAgcGdBZG1pbi5Ccm93c2VyLnV0aWxzID0g cGdBZG1pbi5Ccm93c2VyLnV0aWxzIHx8IHt9OworICAgIHBnQWRtaW4uQnJvd3Nlci51dGlscy5z dXBwb3J0X3NzaF90dW5uZWwgPSB0cnVlOworICB9KTsKKworICBpdCgnY3JlYXRlJywgKCk9PnsK KyAgICBtb3VudCg8U2NoZW1hVmlldworICAgICAgZm9ybVR5cGU9J2RpYWxvZycKKyAgICAgIHNj aGVtYT17c2NoZW1hT2JqfQorICAgICAgdmlld0hlbHBlclByb3BzPXt7CisgICAgICAgIG1vZGU6 ICdjcmVhdGUnLAorICAgICAgfX0KKyAgICAgIG9uU2F2ZT17KCk9Pnt9fQorICAgICAgb25DbG9z ZT17KCk9Pnt9fQorICAgICAgb25IZWxwPXsoKT0+e319CisgICAgICBvbkVkaXQ9eygpPT57fX0K KyAgICAgIG9uRGF0YUNoYW5nZT17KCk9Pnt9fQorICAgICAgY29uZmlybU9uQ2xvc2VSZXNldD17 ZmFsc2V9CisgICAgICBoYXNTUUw9e2ZhbHNlfQorICAgICAgZGlzYWJsZVNxbEhlbHA9e2ZhbHNl fQorICAgIC8+KTsKKyAgfSk7CisKKyAgaXQoJ2VkaXQnLCAoKT0+eworICAgIG1vdW50KDxTY2hl bWFWaWV3CisgICAgICBmb3JtVHlwZT0nZGlhbG9nJworICAgICAgc2NoZW1hPXtzY2hlbWFPYmp9 CisgICAgICBnZXRJbml0RGF0YT17Z2V0SW5pdERhdGF9CisgICAgICB2aWV3SGVscGVyUHJvcHM9 e3sKKyAgICAgICAgbW9kZTogJ2NyZWF0ZScsCisgICAgICB9fQorICAgICAgb25TYXZlPXsoKT0+ e319CisgICAgICBvbkNsb3NlPXsoKT0+e319CisgICAgICBvbkhlbHA9eygpPT57fX0KKyAgICAg IG9uRWRpdD17KCk9Pnt9fQorICAgICAgb25EYXRhQ2hhbmdlPXsoKT0+e319CisgICAgICBjb25m aXJtT25DbG9zZVJlc2V0PXtmYWxzZX0KKyAgICAgIGhhc1NRTD17ZmFsc2V9CisgICAgICBkaXNh YmxlU3FsSGVscD17ZmFsc2V9CisgICAgLz4pOworICB9KTsKKworICBpdCgncHJvcGVydGllcycs ICgpPT57CisgICAgbW91bnQoPFNjaGVtYVZpZXcKKyAgICAgIGZvcm1UeXBlPSd0YWInCisgICAg ICBzY2hlbWE9e3NjaGVtYU9ian0KKyAgICAgIGdldEluaXREYXRhPXtnZXRJbml0RGF0YX0KKyAg ICAgIHZpZXdIZWxwZXJQcm9wcz17eworICAgICAgICBtb2RlOiAncHJvcGVydGllcycsCisgICAg ICB9fQorICAgICAgb25IZWxwPXsoKT0+e319CisgICAgICBvbkVkaXQ9eygpPT57fX0KKyAgICAv Pik7CisgIH0pOworCisgIGl0KCd2YWxpZGF0ZScsICgpPT57CisgICAgbGV0IHN0YXRlID0ge307 CisgICAgbGV0IHNldEVycm9yID0gamFzbWluZS5jcmVhdGVTcHkoJ3NldEVycm9yJyk7CisKKyAg ICBzY2hlbWFPYmoudmFsaWRhdGUoc3RhdGUsIHNldEVycm9yKTsKKyAgICBleHBlY3Qoc2V0RXJy b3IpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdob3N0JywgJ0VpdGhlciBIb3N0IG5hbWUsIEFkZHJl c3Mgb3IgU2VydmljZSBtdXN0IGJlIHNwZWNpZmllZC4nKTsKKworICAgIHN0YXRlLmhvc3RhZGRy ID0gJ2luY29ycmVjdGlwJzsKKyAgICBzY2hlbWFPYmoudmFsaWRhdGUoc3RhdGUsIHNldEVycm9y KTsKKyAgICBleHBlY3Qoc2V0RXJyb3IpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdob3N0YWRkcics ICdIb3N0IGFkZHJlc3MgbXVzdCBiZSB2YWxpZCBJUHY0IG9yIElQdjYgYWRkcmVzcy4nKTsKKwor ICAgIHN0YXRlLmhvc3QgPSAnMTI3LjAuMC4xJzsKKyAgICBzdGF0ZS5ob3N0YWRkciA9IG51bGw7 CisgICAgc2NoZW1hT2JqLnZhbGlkYXRlKHN0YXRlLCBzZXRFcnJvcik7CisgICAgZXhwZWN0KHNl dEVycm9yKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgndXNlcm5hbWUnLCAnVXNlcm5hbWUgbXVzdCBi ZSBzcGVjaWZpZWQuJyk7CisKKyAgICBzdGF0ZS51c2VybmFtZSA9ICdwb3N0Z3Jlcyc7CisgICAg c2NoZW1hT2JqLnZhbGlkYXRlKHN0YXRlLCBzZXRFcnJvcik7CisgICAgZXhwZWN0KHNldEVycm9y KS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgncG9ydCcsICdQb3J0IG11c3QgYmUgc3BlY2lmaWVkLicp OworCisgICAgc3RhdGUucG9ydCA9IDU0MzI7CisgICAgc3RhdGUudXNlX3NzaF90dW5uZWwgPSB0 cnVlOworICAgIHNjaGVtYU9iai52YWxpZGF0ZShzdGF0ZSwgc2V0RXJyb3IpOworICAgIGV4cGVj dChzZXRFcnJvcikudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ3R1bm5lbF9ob3N0JywgJ1NTSCBUdW5u ZWwgaG9zdCBtdXN0IGJlIHNwZWNpZmllZC4nKTsKKworICAgIHN0YXRlLnNlcnZpY2UgPSAncGdz ZXJ2aWNlJzsKKyAgICBzdGF0ZS50dW5uZWxfaG9zdCA9ICdsb2NhbGhvc3QnOworICAgIHNjaGVt YU9iai52YWxpZGF0ZShzdGF0ZSwgc2V0RXJyb3IpOworICAgIGV4cGVjdChzZXRFcnJvcikudG9I YXZlQmVlbkNhbGxlZFdpdGgoJ3R1bm5lbF9wb3J0JywgJ1NTSCBUdW5uZWwgcG9ydCBtdXN0IGJl IHNwZWNpZmllZC4nKTsKKworICAgIHN0YXRlLnR1bm5lbF9wb3J0ID0gODA4MDsKKyAgICBzY2hl bWFPYmoudmFsaWRhdGUoc3RhdGUsIHNldEVycm9yKTsKKyAgICBleHBlY3Qoc2V0RXJyb3IpLnRv SGF2ZUJlZW5DYWxsZWRXaXRoKCd0dW5uZWxfdXNlcm5hbWUnLCAnU1NIIFR1bm5lbCB1c2VybmFt ZSBtdXN0IGJlIHNwZWNpZmllZC4nKTsKKworICAgIHN0YXRlLnR1bm5lbF91c2VybmFtZSA9ICdq YXNtaW5lJzsKKyAgICBzdGF0ZS50dW5uZWxfYXV0aGVudGljYXRpb24gPSB0cnVlOworICAgIHNj aGVtYU9iai52YWxpZGF0ZShzdGF0ZSwgc2V0RXJyb3IpOworICAgIGV4cGVjdChzZXRFcnJvciku dG9IYXZlQmVlbkNhbGxlZFdpdGgoJ3R1bm5lbF9pZGVudGl0eV9maWxlJywgJ1NTSCBUdW5uZWwg aWRlbnRpdHkgZmlsZSBtdXN0IGJlIHNwZWNpZmllZC4nKTsKKworICAgIHN0YXRlLnR1bm5lbF9p ZGVudGl0eV9maWxlID0gJy9maWxlL3BhdGgveHl6LnBlbSc7CisgICAgZXhwZWN0KHNjaGVtYU9i ai52YWxpZGF0ZShzdGF0ZSwgc2V0RXJyb3IpKS50b0JlRmFsc2UoKTsKKyAgfSk7Cit9KTsKZGlm ZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvc2NoZW1hX3VpX2ZpbGVzL3NlcnZl cl9ncm91cC51aS5zcGVjLmpzIGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zY2hlbWFfdWlf ZmlsZXMvc2VydmVyX2dyb3VwLnVpLnNwZWMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwLi4zYzFlOTc3ZWIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcmVncmVzc2lvbi9q YXZhc2NyaXB0L3NjaGVtYV91aV9maWxlcy9zZXJ2ZXJfZ3JvdXAudWkuc3BlYy5qcwpAQCAtMCww ICsxLDgxIEBACitpbXBvcnQgamFzbWluZUVuenltZSBmcm9tICdqYXNtaW5lLWVuenltZSc7Citp bXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnOworaW1wb3J0ICcuLi9oZWxwZXIvZW56eW1lLmhlbHBl cic7CitpbXBvcnQgeyBjcmVhdGVNb3VudCB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL3Rlc3Qt dXRpbHMnOworaW1wb3J0IHBnQWRtaW4gZnJvbSAnc291cmNlcy9wZ2FkbWluJzsKK2ltcG9ydCB7 bWVzc2FnZXN9IGZyb20gJy4uL2Zha2VfbWVzc2FnZXMnOworaW1wb3J0IFNjaGVtYVZpZXcgZnJv bSAnLi4vLi4vLi4vcGdhZG1pbi9zdGF0aWMvanMvU2NoZW1hVmlldyc7CitpbXBvcnQgU2VydmVy R3JvdXBTY2hlbWEgZnJvbSAnLi4vLi4vLi4vcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c3RhdGljL2pzL3NlcnZlcl9ncm91cC51aSc7CisKK2Rlc2NyaWJlKCdTZXJ2ZXJHcm91cFNjaGVt YScsICgpPT57CisgIGxldCBtb3VudDsKKyAgbGV0IHNjaGVtYU9iaiA9IG5ldyBTZXJ2ZXJHcm91 cFNjaGVtYSgpOworICBsZXQgZ2V0SW5pdERhdGEgPSAoKT0+UHJvbWlzZS5yZXNvbHZlKHt9KTsK KworICAvKiBVc2UgY3JlYXRlTW91bnQgc28gdGhhdCBtYXRlcmlhbCB1aSBjb21wb25lbnRzIGdl dHMgdGhlIHJlcXVpcmVkIGNvbnRleHQgKi8KKyAgLyogaHR0cHM6Ly9tYXRlcmlhbC11aS5jb20v Z3VpZGVzL3Rlc3RpbmcvI2FwaSAqLworICBiZWZvcmVBbGwoKCk9PnsKKyAgICBtb3VudCA9IGNy ZWF0ZU1vdW50KCk7CisgIH0pOworCisgIGFmdGVyQWxsKCgpID0+IHsKKyAgICBtb3VudC5jbGVh blVwKCk7CisgIH0pOworCisgIGJlZm9yZUVhY2goKCk9PnsKKyAgICBqYXNtaW5lRW56eW1lKCk7 CisgICAgLyogbWVzc2FnZXMgdXNlZCBieSB2YWxpZGF0b3JzICovCisgICAgcGdBZG1pbi5Ccm93 c2VyID0gcGdBZG1pbi5Ccm93c2VyIHx8IHt9OworICAgIHBnQWRtaW4uQnJvd3Nlci5tZXNzYWdl cyA9IHBnQWRtaW4uQnJvd3Nlci5tZXNzYWdlcyB8fCBtZXNzYWdlczsKKyAgfSk7CisKKyAgaXQo J2NyZWF0ZScsICgpPT57CisgICAgbW91bnQoPFNjaGVtYVZpZXcKKyAgICAgIGZvcm1UeXBlPSdk aWFsb2cnCisgICAgICBzY2hlbWE9e3NjaGVtYU9ian0KKyAgICAgIHZpZXdIZWxwZXJQcm9wcz17 eworICAgICAgICBtb2RlOiAnY3JlYXRlJywKKyAgICAgIH19CisgICAgICBvblNhdmU9eygpPT57 fX0KKyAgICAgIG9uQ2xvc2U9eygpPT57fX0KKyAgICAgIG9uSGVscD17KCk9Pnt9fQorICAgICAg b25FZGl0PXsoKT0+e319CisgICAgICBvbkRhdGFDaGFuZ2U9eygpPT57fX0KKyAgICAgIGNvbmZp cm1PbkNsb3NlUmVzZXQ9e2ZhbHNlfQorICAgICAgaGFzU1FMPXtmYWxzZX0KKyAgICAgIGRpc2Fi bGVTcWxIZWxwPXtmYWxzZX0KKyAgICAvPik7CisgIH0pOworCisgIGl0KCdlZGl0JywgKCk9PnsK KyAgICBtb3VudCg8U2NoZW1hVmlldworICAgICAgZm9ybVR5cGU9J2RpYWxvZycKKyAgICAgIHNj aGVtYT17c2NoZW1hT2JqfQorICAgICAgZ2V0SW5pdERhdGE9e2dldEluaXREYXRhfQorICAgICAg dmlld0hlbHBlclByb3BzPXt7CisgICAgICAgIG1vZGU6ICdjcmVhdGUnLAorICAgICAgfX0KKyAg ICAgIG9uU2F2ZT17KCk9Pnt9fQorICAgICAgb25DbG9zZT17KCk9Pnt9fQorICAgICAgb25IZWxw PXsoKT0+e319CisgICAgICBvbkVkaXQ9eygpPT57fX0KKyAgICAgIG9uRGF0YUNoYW5nZT17KCk9 Pnt9fQorICAgICAgY29uZmlybU9uQ2xvc2VSZXNldD17ZmFsc2V9CisgICAgICBoYXNTUUw9e2Zh bHNlfQorICAgICAgZGlzYWJsZVNxbEhlbHA9e2ZhbHNlfQorICAgIC8+KTsKKyAgfSk7CisKKyAg aXQoJ3Byb3BlcnRpZXMnLCAoKT0+eworICAgIG1vdW50KDxTY2hlbWFWaWV3CisgICAgICBmb3Jt VHlwZT0ndGFiJworICAgICAgc2NoZW1hPXtzY2hlbWFPYmp9CisgICAgICBnZXRJbml0RGF0YT17 Z2V0SW5pdERhdGF9CisgICAgICB2aWV3SGVscGVyUHJvcHM9e3sKKyAgICAgICAgbW9kZTogJ3By b3BlcnRpZXMnLAorICAgICAgfX0KKyAgICAgIG9uSGVscD17KCk9Pnt9fQorICAgICAgb25FZGl0 PXsoKT0+e319CisgICAgLz4pOworICB9KTsKK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Np b24vamF2YXNjcmlwdC9zY2hlbWFfdWlfZmlsZXMvdmFyaWFibGUudWkuc3BlYy5qcyBiL3dlYi9y ZWdyZXNzaW9uL2phdmFzY3JpcHQvc2NoZW1hX3VpX2ZpbGVzL3ZhcmlhYmxlLnVpLnNwZWMuanMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi43MWRjOTEwYmIKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NjaGVtYV91aV9maWxlcy92YXJp YWJsZS51aS5zcGVjLmpzCkBAIC0wLDAgKzEsMTQ2IEBACitpbXBvcnQgamFzbWluZUVuenltZSBm cm9tICdqYXNtaW5lLWVuenltZSc7CitpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnOworaW1wb3J0 ICcuLi9oZWxwZXIvZW56eW1lLmhlbHBlcic7CitpbXBvcnQgeyBjcmVhdGVNb3VudCB9IGZyb20g J0BtYXRlcmlhbC11aS9jb3JlL3Rlc3QtdXRpbHMnOworaW1wb3J0IHBnQWRtaW4gZnJvbSAnc291 cmNlcy9wZ2FkbWluJzsKK2ltcG9ydCB7bWVzc2FnZXN9IGZyb20gJy4uL2Zha2VfbWVzc2FnZXMn OworaW1wb3J0IFNjaGVtYVZpZXcgZnJvbSAnLi4vLi4vLi4vcGdhZG1pbi9zdGF0aWMvanMvU2No ZW1hVmlldyc7CitpbXBvcnQgQmFzZVVJU2NoZW1hIGZyb20gJ3NvdXJjZXMvU2NoZW1hVmlldy9i YXNlX3NjaGVtYS51aSc7CitpbXBvcnQgVmFyaWFibGVTY2hlbWEsIHtnZXROb2RlVmFyaWFibGVT Y2hlbWF9IGZyb20gJy4uLy4uLy4uL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvc3RhdGljL2pzL3ZhcmlhYmxlLnVpJzsKK2ltcG9ydCAqIGFzIG5vZGVBamF4IGZyb20gJy4u Ly4uLy4uL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvbm9kZV9hamF4JzsKKworCisvKiBVc2Vk IHRvIGNoZWNrIGNvbGxlY3Rpb24gbW9kZSAqLworY2xhc3MgTW9ja1NjaGVtYSBleHRlbmRzIEJh c2VVSVNjaGVtYSB7CisgIGNvbnN0cnVjdG9yKGdldFZhcmlhYmxlU2NoZW1hKSB7CisgICAgc3Vw ZXIoKTsKKyAgICB0aGlzLmdldFZhcmlhYmxlU2NoZW1hID0gZ2V0VmFyaWFibGVTY2hlbWE7Cisg IH0KKworICBnZXQgYmFzZUZpZWxkcygpIHsKKyAgICByZXR1cm4gW3sKKyAgICAgIGlkOiAndmFy aWFibGVzJywgbGFiZWw6ICcnLCB0eXBlOiAnY29sbGVjdGlvbicsCisgICAgICBzY2hlbWE6IHRo aXMuZ2V0VmFyaWFibGVTY2hlbWEoKSwKKyAgICAgIGVkaXRhYmxlOiBmYWxzZSwKKyAgICAgIGdy b3VwOiAnUGFyYW1ldGVycycsIG1vZGU6IFsnZWRpdCcsICdjcmVhdGUnXSwKKyAgICAgIGNhbkFk ZDogdHJ1ZSwgY2FuRWRpdDogZmFsc2UsIGNhbkRlbGV0ZTogdHJ1ZSwgaGFzUm9sZTogdHJ1ZSwK KyAgICAgIG5vZGU6ICdyb2xlJywKKyAgICB9XTsKKyAgfQorfQorCitkZXNjcmliZSgnUHJpdmls ZWdlU2NoZW1hJywgKCk9PnsKKyAgbGV0IG1vdW50OworICBsZXQgc2NoZW1hT2JqID0gbmV3IFZh cmlhYmxlU2NoZW1hKAorICAgICgpPT5bXSwKKyAgICAoKT0+W10sCisgICAgKCk9PltdLAorICAg IG51bGwKKyAgKTsKKyAgbGV0IGdldEluaXREYXRhID0gKCk9PlByb21pc2UucmVzb2x2ZSh7fSk7 CisKKyAgLyogVXNlIGNyZWF0ZU1vdW50IHNvIHRoYXQgbWF0ZXJpYWwgdWkgY29tcG9uZW50cyBn ZXRzIHRoZSByZXF1aXJlZCBjb250ZXh0ICovCisgIC8qIGh0dHBzOi8vbWF0ZXJpYWwtdWkuY29t L2d1aWRlcy90ZXN0aW5nLyNhcGkgKi8KKyAgYmVmb3JlQWxsKCgpPT57CisgICAgbW91bnQgPSBj cmVhdGVNb3VudCgpOworICB9KTsKKworICBhZnRlckFsbCgoKSA9PiB7CisgICAgbW91bnQuY2xl YW5VcCgpOworICB9KTsKKworICBiZWZvcmVFYWNoKCgpPT57CisgICAgamFzbWluZUVuenltZSgp OworICAgIC8qIG1lc3NhZ2VzIHVzZWQgYnkgdmFsaWRhdG9ycyAqLworICAgIHBnQWRtaW4uQnJv d3NlciA9IHBnQWRtaW4uQnJvd3NlciB8fCB7fTsKKyAgICBwZ0FkbWluLkJyb3dzZXIubWVzc2Fn ZXMgPSBwZ0FkbWluLkJyb3dzZXIubWVzc2FnZXMgfHwgbWVzc2FnZXM7CisgICAgcGdBZG1pbi5C cm93c2VyLnV0aWxzID0gcGdBZG1pbi5Ccm93c2VyLnV0aWxzIHx8IHt9OworICAgIHBnQWRtaW4u QnJvd3Nlci51dGlscy5zdXBwb3J0X3NzaF90dW5uZWwgPSB0cnVlOworICB9KTsKKworICBpdCgn Y3JlYXRlJywgKCk9PnsKKyAgICBtb3VudCg8U2NoZW1hVmlldworICAgICAgZm9ybVR5cGU9J2Rp YWxvZycKKyAgICAgIHNjaGVtYT17c2NoZW1hT2JqfQorICAgICAgdmlld0hlbHBlclByb3BzPXt7 CisgICAgICAgIG1vZGU6ICdjcmVhdGUnLAorICAgICAgfX0KKyAgICAgIG9uU2F2ZT17KCk9Pnt9 fQorICAgICAgb25DbG9zZT17KCk9Pnt9fQorICAgICAgb25IZWxwPXsoKT0+e319CisgICAgICBv bkVkaXQ9eygpPT57fX0KKyAgICAgIG9uRGF0YUNoYW5nZT17KCk9Pnt9fQorICAgICAgY29uZmly bU9uQ2xvc2VSZXNldD17ZmFsc2V9CisgICAgICBoYXNTUUw9e2ZhbHNlfQorICAgICAgZGlzYWJs ZVNxbEhlbHA9e2ZhbHNlfQorICAgIC8+KTsKKyAgfSk7CisKKyAgaXQoJ2VkaXQnLCAoKT0+ewor ICAgIG1vdW50KDxTY2hlbWFWaWV3CisgICAgICBmb3JtVHlwZT0nZGlhbG9nJworICAgICAgc2No ZW1hPXtzY2hlbWFPYmp9CisgICAgICBnZXRJbml0RGF0YT17Z2V0SW5pdERhdGF9CisgICAgICB2 aWV3SGVscGVyUHJvcHM9e3sKKyAgICAgICAgbW9kZTogJ2NyZWF0ZScsCisgICAgICB9fQorICAg ICAgb25TYXZlPXsoKT0+e319CisgICAgICBvbkNsb3NlPXsoKT0+e319CisgICAgICBvbkhlbHA9 eygpPT57fX0KKyAgICAgIG9uRWRpdD17KCk9Pnt9fQorICAgICAgb25EYXRhQ2hhbmdlPXsoKT0+ e319CisgICAgICBjb25maXJtT25DbG9zZVJlc2V0PXtmYWxzZX0KKyAgICAgIGhhc1NRTD17ZmFs c2V9CisgICAgICBkaXNhYmxlU3FsSGVscD17ZmFsc2V9CisgICAgLz4pOworICB9KTsKKworICBp dCgncHJvcGVydGllcycsICgpPT57CisgICAgbW91bnQoPFNjaGVtYVZpZXcKKyAgICAgIGZvcm1U eXBlPSd0YWInCisgICAgICBzY2hlbWE9e3NjaGVtYU9ian0KKyAgICAgIGdldEluaXREYXRhPXtn ZXRJbml0RGF0YX0KKyAgICAgIHZpZXdIZWxwZXJQcm9wcz17eworICAgICAgICBtb2RlOiAncHJv cGVydGllcycsCisgICAgICB9fQorICAgICAgb25IZWxwPXsoKT0+e319CisgICAgICBvbkVkaXQ9 eygpPT57fX0KKyAgICAvPik7CisgIH0pOworCisgIGl0KCdnZXRWYWx1ZUZpZWxkUHJvcHMnLCAo KT0+eworICAgIGV4cGVjdChzY2hlbWFPYmouZ2V0VmFsdWVGaWVsZFByb3BzKHt2YXJ0eXBlOiAn Ym9vbCd9KSkudG9CZSgnc3dpdGNoJyk7CisgICAgZXhwZWN0KHNjaGVtYU9iai5nZXRWYWx1ZUZp ZWxkUHJvcHMoe3ZhcnR5cGU6ICdlbnVtJywgZW51bXZhbHM6IFtdfSkpLnRvRXF1YWwoamFzbWlu ZS5vYmplY3RDb250YWluaW5nKHsKKyAgICAgIGNlbGw6ICdzZWxlY3QnLAorICAgIH0pKTsKKyAg ICBleHBlY3Qoc2NoZW1hT2JqLmdldFZhbHVlRmllbGRQcm9wcyh7dmFydHlwZTogJ2ludGVnZXIn fSkpLnRvQmUoJ2ludCcpOworICAgIGV4cGVjdChzY2hlbWFPYmouZ2V0VmFsdWVGaWVsZFByb3Bz KHt2YXJ0eXBlOiAncmVhbCd9KSkudG9CZSgnbnVtYmVyJyk7CisgICAgZXhwZWN0KHNjaGVtYU9i ai5nZXRWYWx1ZUZpZWxkUHJvcHMoe3ZhcnR5cGU6ICdzdHJpbmcnfSkpLnRvQmUoJ3RleHQnKTsK KyAgICBleHBlY3Qoc2NoZW1hT2JqLmdldFZhbHVlRmllbGRQcm9wcyh7fSkpLnRvQmUoJycpOwor ICB9KTsKKworICBpdCgndmFyaWFibGUgY29sbGVjdGlvbicsICgpPT57CisgICAgc3B5T24obm9k ZUFqYXgsICdnZXROb2RlQWpheE9wdGlvbnMnKS5hbmQucmV0dXJuVmFsdWUoW10pOworICAgIHNw eU9uKG5vZGVBamF4LCAnZ2V0Tm9kZUxpc3RCeU5hbWUnKS5hbmQucmV0dXJuVmFsdWUoW10pOwor ICAgIGxldCB2YXJDb2xsT2JqID0gbmV3IE1vY2tTY2hlbWEoKCk9PmdldE5vZGVWYXJpYWJsZVNj aGVtYSh7fSwge3NlcnZlcjoge3VzZXI6IHtuYW1lOiAncG9zdGdyZXMnfX19LCB7fSwgdHJ1ZSwg dHJ1ZSkpOworICAgIGxldCBjdHJsID0gbW91bnQoPFNjaGVtYVZpZXcKKyAgICAgIGZvcm1UeXBl PSdkaWFsb2cnCisgICAgICBzY2hlbWE9e3ZhckNvbGxPYmp9CisgICAgICB2aWV3SGVscGVyUHJv cHM9e3sKKyAgICAgICAgbW9kZTogJ2NyZWF0ZScsCisgICAgICB9fQorICAgICAgb25TYXZlPXso KT0+e319CisgICAgICBvbkNsb3NlPXsoKT0+e319CisgICAgICBvbkhlbHA9eygpPT57fX0KKyAg ICAgIG9uRWRpdD17KCk9Pnt9fQorICAgICAgb25EYXRhQ2hhbmdlPXsoKT0+e319CisgICAgICBj b25maXJtT25DbG9zZVJlc2V0PXtmYWxzZX0KKyAgICAgIGhhc1NRTD17ZmFsc2V9CisgICAgICBk aXNhYmxlU3FsSGVscD17ZmFsc2V9CisgICAgLz4pOworICAgIC8qIE1ha2Ugc3VyZSB5b3UgaGl0 IGV2ZXJ5IGNvcm5lciAqLworICAgIGN0cmwuZmluZCgnRGF0YUdyaWRWaWV3JykuYXQoMCkuZmlu ZCgnUGdJY29uQnV0dG9uW2RhdGEtdGVzdD0iYWRkLXJvdyJdJykuZmluZCgnYnV0dG9uJykuc2lt dWxhdGUoJ2NsaWNrJyk7CisgIH0pOworCisKK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3dlYnBhY2su c2hpbS5qcyBiL3dlYi93ZWJwYWNrLnNoaW0uanMKaW5kZXggZTBiMjgwOTFjLi43M2MxN2VjYjgg MTAwNjQ0Ci0tLSBhL3dlYi93ZWJwYWNrLnNoaW0uanMKKysrIGIvd2ViL3dlYnBhY2suc2hpbS5q cwpAQCAtMTUxLDcgKzE1MSw5IEBAIHZhciB3ZWJwYWNrU2hpbUNvbmZpZyA9IHsKICAgICAnZGFn cmUnOiAgcGF0aC5qb2luKF9fZGlybmFtZSwgJ25vZGVfbW9kdWxlcy9kYWdyZScpLAogICAgICdn cmFwaGxpYic6IHBhdGguam9pbihfX2Rpcm5hbWUsICdub2RlX21vZHVsZXMvZ3JhcGhsaWInKSwK ICAgICAncmVhY3QnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnbm9kZV9tb2R1bGVzL3JlYWN0Jyks CisgICAgJ3JlYWN0LWRvbSc6IHBhdGguam9pbihfX2Rpcm5hbWUsICdub2RlX21vZHVsZXMvcmVh Y3QtZG9tJyksCiAgICAgJ3N0eWxpcyc6IHBhdGguam9pbihfX2Rpcm5hbWUsICdub2RlX21vZHVs ZXMvc3R5bGlzJyksCisgICAgJ3BvcHBlci5qcyc6IHBhdGguam9pbihfX2Rpcm5hbWUsICdub2Rl X21vZHVsZXMvcG9wcGVyLmpzJyksCiAKICAgICAvLyBBY2lUcmVlCiAgICAgJ2pxdWVyeS5hY2l0 cmVlJzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vbm9kZV9tb2R1bGVzL2FjaXRyZWUvanMvanF1 ZXJ5LmFjaVRyZWUubWluJyksCmRpZmYgLS1naXQgYS93ZWIvd2VicGFjay50ZXN0LmNvbmZpZy5q cyBiL3dlYi93ZWJwYWNrLnRlc3QuY29uZmlnLmpzCmluZGV4IDNjYzA3OWY5Mi4uYzA1ZTlkYWNi IDEwMDY0NAotLS0gYS93ZWIvd2VicGFjay50ZXN0LmNvbmZpZy5qcworKysgYi93ZWIvd2VicGFj ay50ZXN0LmNvbmZpZy5qcwpAQCAtMTYwLDYgKzE2MCw4IEBAIG1vZHVsZS5leHBvcnRzID0gewog ICAgICAgJ2JhY2tncmlkLmZpbHRlcic6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL25vZGVfbW9k dWxlcy9iYWNrZ3JpZC1maWx0ZXIvYmFja2dyaWQtZmlsdGVyJyksCiAgICAgICAnc291cmNlcyc6 IHNvdXJjZXNEaXIgKyAnL2pzJywKICAgICAgICd0cmFuc2xhdGlvbnMnOiByZWdyZXNzaW9uRGly ICsgJy9qYXZhc2NyaXB0L2Zha2VfdHJhbnNsYXRpb25zJywKKyAgICAgICdwZ2FkbWluLmJyb3dz ZXIubWVzc2FnZXMnOiByZWdyZXNzaW9uRGlyICsgJy9qYXZhc2NyaXB0L2Zha2VfbWVzc2FnZXMn LAorICAgICAgJ3BnYWRtaW4uc2VydmVyLnN1cHBvcnRlZF9zZXJ2ZXJzJzogcmVncmVzc2lvbkRp ciArICcvamF2YXNjcmlwdC9mYWtlX3N1cHBvcnRlZF9zZXJ2ZXJzJywKICAgICAgICdwZ2FkbWlu LmJyb3dzZXIuZW5kcG9pbnRzJzogcmVncmVzc2lvbkRpciArICcvamF2YXNjcmlwdC9mYWtlX2Vu ZHBvaW50cycsCiAgICAgICAnc2xpY2tncmlkJzogbm9kZU1vZHVsZXNEaXIgKyAnL3NsaWNrZ3Jp ZC8nLAogICAgICAgJ3NsaWNrZ3JpZC5wbHVnaW5zJzogbm9kZU1vZHVsZXNEaXIgKyAnL3NsaWNr Z3JpZC9wbHVnaW5zLycsCmRpZmYgLS1naXQgYS93ZWIveWFybi5sb2NrIGIvd2ViL3lhcm4ubG9j awppbmRleCBjZDYxNDI4M2IuLjQxNDIxM2FlNSAxMDA2NDQKLS0tIGEvd2ViL3lhcm4ubG9jawor KysgYi93ZWIveWFybi5sb2NrCkBAIC0xNiw1OCArMTYsNTkgQEAKICAgZGVwZW5kZW5jaWVzOgog ICAgICJAYmFiZWwvaGlnaGxpZ2h0IiAiXjcuMTIuMTMiCiAKLSJAYmFiZWwvY29tcGF0LWRhdGFA XjcuMTMuMTEiLCAiQGJhYmVsL2NvbXBhdC1kYXRhQF43LjEzLjE1IiwgIkBiYWJlbC9jb21wYXQt ZGF0YUBeNy4xNC4wIjoKLSAgdmVyc2lvbiAiNy4xNC4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvY29tcGF0LWRhdGEvLS9jb21wYXQtZGF0YS03LjE0 LjAudGd6I2E5MDExMjhiY2UyYWQwMjU2NWRmOTVlNmVjYmYxOTVjZjk0NjU5MTkiCi0gIGludGVn cml0eSBzaGE1MTItdnU5VjN1TU0vMW81SGw1T2VrTVVvd28zRnFYTEpTdytzKzY2bnQwZlNXVldU dG1vc2R6bjQ1SkhPQjNjUHRab2U2Q1RCRHp2U3cwUmRPWTg1UTM3K1E9PQorIkBiYWJlbC9jb21w YXQtZGF0YUBeNy4xMy4wIiwgIkBiYWJlbC9jb21wYXQtZGF0YUBeNy4xMy44IjoKKyAgdmVyc2lv biAiNy4xMy44IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFi ZWwvY29tcGF0LWRhdGEvLS9jb21wYXQtZGF0YS03LjEzLjgudGd6IzViNzgzYjk4MDhmMTVjZWY3 MTU0N2YxYjY5MWYzNGY4ZmY2MDAzYTYiCisgIGludGVncml0eSBzaGE1MTItRWFJMzN6MTlUNHFO M3hMWHNHZjQ4TTJjRHFhNmVpOXRQWmxmTGRiMkhDK2UvY0Z0UkVpUmQ4aGRTcURid2RMQjAvK2dM d3FKbUNZQVNIMHoyYlVkb2c9PQogCiAiQGJhYmVsL2NvcmVAXjcuMTAuMiIsICJAYmFiZWwvY29y ZUBeNy43LjUiOgotICB2ZXJzaW9uICI3LjE0LjMiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9jb3JlLy0vY29yZS03LjE0LjMudGd6IzUzOTVlMzA0MDVm MDc3NjA2N2ZiZDljZjA4ODRmMTViZmI3NzBhMzgiCi0gIGludGVncml0eSBzaGE1MTItakI1QW1U S09DU0pJWjcyc2Q3OEVDRWh1UGlETUtsUWRESS80UVJJNmx6WUFUeDVTU29nUzFvUUEyQW9QZWNS Q2tubTMwZ0hpMmwrUVZ2TlV1M3daQWc9PQorICB2ZXJzaW9uICI3LjEzLjgiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9jb3JlLy0vY29yZS03LjEzLjgu dGd6I2MxOTFkOWM1ODcxNzg4YTU5MWQ2OWVhMWRjMDNlNTg0M2EzNjgwZmIiCisgIGludGVncml0 eSBzaGE1MTItb1lhcEl5U0d3MXpHaEVGUmQ2bHpXTkxXRlgyczVkQS9qbStQdy8rNTlaZFh0anlJ dXdsWGJySWQyMk1kMHJnWlZvcCthVm9xb3cycmlYaEJMTnl1UWc9PQogICBkZXBlbmRlbmNpZXM6 CiAgICAgIkBiYWJlbC9jb2RlLWZyYW1lIiAiXjcuMTIuMTMiCi0gICAgIkBiYWJlbC9nZW5lcmF0 b3IiICJeNy4xNC4zIgotICAgICJAYmFiZWwvaGVscGVyLWNvbXBpbGF0aW9uLXRhcmdldHMiICJe Ny4xMy4xNiIKLSAgICAiQGJhYmVsL2hlbHBlci1tb2R1bGUtdHJhbnNmb3JtcyIgIl43LjE0LjIi Ci0gICAgIkBiYWJlbC9oZWxwZXJzIiAiXjcuMTQuMCIKLSAgICAiQGJhYmVsL3BhcnNlciIgIl43 LjE0LjMiCisgICAgIkBiYWJlbC9nZW5lcmF0b3IiICJeNy4xMy4wIgorICAgICJAYmFiZWwvaGVs cGVyLWNvbXBpbGF0aW9uLXRhcmdldHMiICJeNy4xMy44IgorICAgICJAYmFiZWwvaGVscGVyLW1v ZHVsZS10cmFuc2Zvcm1zIiAiXjcuMTMuMCIKKyAgICAiQGJhYmVsL2hlbHBlcnMiICJeNy4xMy4w IgorICAgICJAYmFiZWwvcGFyc2VyIiAiXjcuMTMuNCIKICAgICAiQGJhYmVsL3RlbXBsYXRlIiAi XjcuMTIuMTMiCi0gICAgIkBiYWJlbC90cmF2ZXJzZSIgIl43LjE0LjIiCi0gICAgIkBiYWJlbC90 eXBlcyIgIl43LjE0LjIiCisgICAgIkBiYWJlbC90cmF2ZXJzZSIgIl43LjEzLjAiCisgICAgIkBi YWJlbC90eXBlcyIgIl43LjEzLjAiCiAgICAgY29udmVydC1zb3VyY2UtbWFwICJeMS43LjAiCiAg ICAgZGVidWcgIl40LjEuMCIKICAgICBnZW5zeW5jICJeMS4wLjAtYmV0YS4yIgogICAgIGpzb241 ICJeMi4xLjIiCisgICAgbG9kYXNoICJeNC4xNy4xOSIKICAgICBzZW12ZXIgIl42LjMuMCIKICAg ICBzb3VyY2UtbWFwICJeMC41LjAiCiAKICJAYmFiZWwvZXNsaW50LXBhcnNlckBeNy4xMi4xMyI6 Ci0gIHZlcnNpb24gIjcuMTQuMyIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vQGJhYmVsL2VzbGludC1wYXJzZXIvLS9lc2xpbnQtcGFyc2VyLTcuMTQuMy50Z3ojOGYy OTJjYWY4M2RkMmQ3YjM2NGY5MzhmZTcwNzQ4MDZhZjZkNzBlYSIKLSAgaW50ZWdyaXR5IHNoYTUx Mi1JZkpYS0VWUlYvR2lzdmdtaWgvKzA1Z2tCenpnNER5MGdjeGtaODRpRmlMSzgrTytmSTFITG5H SnYzVXJVTVBwc01tbVRoTmE2OXYrVW5GODBYUCtrQT09CisgIHZlcnNpb24gIjcuMTMuOCIKKyAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2VzbGludC1wYXJz ZXIvLS9lc2xpbnQtcGFyc2VyLTcuMTMuOC50Z3ojNmYyYmRlNmIwNjkwZmNjMDU5OGI0ODY5ZmM3 YzhlOGI1NWIxNzY4NyIKKyAgaW50ZWdyaXR5IHNoYTUxMi1YZXdLa2l5dWtyR3pNZXFUb1hKUWs2 aGpnMnZlSTlTTlFFbEd6QW9Bakt4WUNMYmdjVlg0S0EyV2hveXFNb245TjRSTWRDWmhOVEpOT0Jj cDlzcHNpdz09CiAgIGRlcGVuZGVuY2llczoKLSAgICBlc2xpbnQtc2NvcGUgIl41LjEuMCIKLSAg ICBlc2xpbnQtdmlzaXRvci1rZXlzICJeMi4xLjAiCisgICAgZXNsaW50LXNjb3BlICI1LjEuMCIK KyAgICBlc2xpbnQtdmlzaXRvci1rZXlzICJeMS4zLjAiCiAgICAgc2VtdmVyICJeNi4zLjAiCiAK ICJAYmFiZWwvZXNsaW50LXBsdWdpbkBeNy4xMi4xMyI6Ci0gIHZlcnNpb24gIjcuMTMuMTYiCi0g IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9lc2xpbnQtcGx1 Z2luLy0vZXNsaW50LXBsdWdpbi03LjEzLjE2LnRneiNkNjkzNzYzNmM1NjdiNDFkNmNhNDZkMjkx YzdiMmQxMDFlNmNjYWYzIgotICBpbnRlZ3JpdHkgc2hhNTEyLVJOTDBkTEhCdmpYVzg1N0p3elRv VEh4dGJPWmZHY3ZkU2VnY2dYQzFjMVBxZkUrby9RTjhNdWdrZ0tqMnZYRnhDY01CeWZ4SnJtcENi THpWQlZsZ0lBPT0KKyAgdmVyc2lvbiAiNy4xMy4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9AYmFiZWwvZXNsaW50LXBsdWdpbi8tL2VzbGludC1wbHVnaW4tNy4x My4wLnRneiNlNmQ5OWVmY2Q2Yjg1NTFhZGY0NzllMzgyYTQ3MjE4NzI2MTc5YjFiIgorICBpbnRl Z3JpdHkgc2hhNTEyLVlHd0NMYy91L3VjM2JVK3EvZnZnUlE2MitUa3h1eVZ2ZG15Yks2RWx6RTQ5 dk9EcCtSblJlMTZlSnpNTTdFd3ZjUlBRZlF2Y09TdUdtemZjYlpFMit3PT0KICAgZGVwZW5kZW5j aWVzOgogICAgIGVzbGludC1ydWxlLWNvbXBvc2VyICJeMC4zLjAiCiAKLSJAYmFiZWwvZ2VuZXJh dG9yQF43LjE0LjIiLCAiQGJhYmVsL2dlbmVyYXRvckBeNy4xNC4zIjoKLSAgdmVyc2lvbiAiNy4x NC4zIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvZ2Vu ZXJhdG9yLy0vZ2VuZXJhdG9yLTcuMTQuMy50Z3ojMGMyNjUyZDkxZjdiZGRhYjdjY2NjNmJhODE1 N2U0ZjQwZGNlZGI5MSIKLSAgaW50ZWdyaXR5IHNoYTUxMi1ibjBTNmZsRy9qMHh0UWR6M2hzako2 MjRoM1cwcjNsbHR0Qk1meUhYM1lyWi9LdExZcjE1YmpBMEZYa2dXN0ZwdnJEdVR1RWxYZVZqaUts WVJwbk9GQT09CisiQGJhYmVsL2dlbmVyYXRvckBeNy4xMy4wIjoKKyAgdmVyc2lvbiAiNy4xMy45 IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvZ2VuZXJh dG9yLy0vZ2VuZXJhdG9yLTcuMTMuOS50Z3ojM2E3YWE5NmY5ZWZiOGUyYmU0MmQzOGQ4MGUyY2Vi NGM2NGQ4ZGUzOSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1tSE9PbVkwQXhsL0pDVGt4VFU2TGY1c1dP Zy92OG5VYStYa3Q0ek1UZnRYMHdxbWI2U2g3SjhndmNlaEJ3N3EwQWhyaEFSK0ZEYWNLakNaMlg4 SytTdz09CiAgIGRlcGVuZGVuY2llczoKLSAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTQuMiIKKyAg ICAiQGJhYmVsL3R5cGVzIiAiXjcuMTMuMCIKICAgICBqc2VzYyAiXjIuNS4xIgogICAgIHNvdXJj ZS1tYXAgIl4wLjUuMCIKIAotIkBiYWJlbC9oZWxwZXItYW5ub3RhdGUtYXMtcHVyZUBeNy4xMC40 IiwgIkBiYWJlbC9oZWxwZXItYW5ub3RhdGUtYXMtcHVyZUBeNy4xMi4xMyI6CisiQGJhYmVsL2hl bHBlci1hbm5vdGF0ZS1hcy1wdXJlQF43LjAuMCIsICJAYmFiZWwvaGVscGVyLWFubm90YXRlLWFz LXB1cmVAXjcuMTAuNCIsICJAYmFiZWwvaGVscGVyLWFubm90YXRlLWFzLXB1cmVAXjcuMTIuMTMi OgogICB2ZXJzaW9uICI3LjEyLjEzIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9AYmFiZWwvaGVscGVyLWFubm90YXRlLWFzLXB1cmUvLS9oZWxwZXItYW5ub3RhdGUt YXMtcHVyZS03LjEyLjEzLnRneiMwZjU4ZTg2ZGZjNGJiM2IxZmNkN2RiODA2NTcwZTE3N2Q0Mzli NmFiIgogICBpbnRlZ3JpdHkgc2hhNTEyLTdZWGZYNXdRNWFZTS9CT2xiU2NjSERidVhYRlB4ZW9V bWZXdHo4bGUyeVRrVFpjK0J4c2lFbkVORm9pMlNsbUE4ZXdEa0cyTGdJTUlWenpuMmg4a2Z3PT0K QEAgLTgyLDI2ICs4MywyNSBAQAogICAgICJAYmFiZWwvaGVscGVyLWV4cGxvZGUtYXNzaWduYWJs ZS1leHByZXNzaW9uIiAiXjcuMTIuMTMiCiAgICAgIkBiYWJlbC90eXBlcyIgIl43LjEyLjEzIgog Ci0iQGJhYmVsL2hlbHBlci1jb21waWxhdGlvbi10YXJnZXRzQF43LjEzLjAiLCAiQGJhYmVsL2hl bHBlci1jb21waWxhdGlvbi10YXJnZXRzQF43LjEzLjE2IjoKLSAgdmVyc2lvbiAiNy4xMy4xNiIK LSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2hlbHBlci1j b21waWxhdGlvbi10YXJnZXRzLy0vaGVscGVyLWNvbXBpbGF0aW9uLXRhcmdldHMtNy4xMy4xNi50 Z3ojNmU5MWRjY2YxNWUzZjQzZTU1NTZkZmZlMzJkODYwMTA5ODg3NTYzYyIKLSAgaW50ZWdyaXR5 IHNoYTUxMi0zZ21rWUlycHFzTGxpZUZ3amtHZ0xhU0htaG52bEFZelpMbFlWamxXK1F3SSsxekUx N2tHeHVKR21JcURRZFlwNTZYZG1HZUQrQnN3eDBVVHlHMTh4QT09CisiQGJhYmVsL2hlbHBlci1j b21waWxhdGlvbi10YXJnZXRzQF43LjEzLjAiLCAiQGJhYmVsL2hlbHBlci1jb21waWxhdGlvbi10 YXJnZXRzQF43LjEzLjgiOgorICB2ZXJzaW9uICI3LjEzLjgiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9oZWxwZXItY29tcGlsYXRpb24tdGFyZ2V0cy8t L2hlbHBlci1jb21waWxhdGlvbi10YXJnZXRzLTcuMTMuOC50Z3ojMDJiZGIyMjc4MzQzOWFmYjEx YjJmMDA5ODE0YmRkODgzODRiZDQ2OCIKKyAgaW50ZWdyaXR5IHNoYTUxMi1wQmxqVUdDMXkzeEtM bjFucngyZUFodXJMTUE4T3FCdEJQL0p3RzRVOHNrTjdrZjgvYXF3d3hwVjFONlQwZTdyNis3dU5p dElhL2ZVeFBGYWdTWHAzQT09CiAgIGRlcGVuZGVuY2llczoKLSAgICAiQGJhYmVsL2NvbXBhdC1k YXRhIiAiXjcuMTMuMTUiCisgICAgIkBiYWJlbC9jb21wYXQtZGF0YSIgIl43LjEzLjgiCiAgICAg IkBiYWJlbC9oZWxwZXItdmFsaWRhdG9yLW9wdGlvbiIgIl43LjEyLjE3IgogICAgIGJyb3dzZXJz bGlzdCAiXjQuMTQuNSIKICAgICBzZW12ZXIgIl42LjMuMCIKIAotIkBiYWJlbC9oZWxwZXItY3Jl YXRlLWNsYXNzLWZlYXR1cmVzLXBsdWdpbkBeNy4xMy4wIiwgIkBiYWJlbC9oZWxwZXItY3JlYXRl LWNsYXNzLWZlYXR1cmVzLXBsdWdpbkBeNy4xNC4wIiwgIkBiYWJlbC9oZWxwZXItY3JlYXRlLWNs YXNzLWZlYXR1cmVzLXBsdWdpbkBeNy4xNC4zIjoKLSAgdmVyc2lvbiAiNy4xNC4zIgotICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvaGVscGVyLWNyZWF0ZS1j bGFzcy1mZWF0dXJlcy1wbHVnaW4vLS9oZWxwZXItY3JlYXRlLWNsYXNzLWZlYXR1cmVzLXBsdWdp bi03LjE0LjMudGd6IzgzMjExMWJjZjRmNTdjYTU3YTRjNWIxYTAwMGZjMTI1YWJjNjU1NGEiCi0g IGludGVncml0eSBzaGE1MTItQm5FZmk1KzZKMkx0ZTlMZWlMNlR4TFdkSWxFdjlXb2FjYzFxWHpY QmdiaWtjT3pNUk0yT3lhNVhHZy9mL25nb3R2MWVqMkEvYiszaUpIOHdiUzErbFE9PQorIkBiYWJl bC9oZWxwZXItY3JlYXRlLWNsYXNzLWZlYXR1cmVzLXBsdWdpbkBeNy4xMy4wIjoKKyAgdmVyc2lv biAiNy4xMy44IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFi ZWwvaGVscGVyLWNyZWF0ZS1jbGFzcy1mZWF0dXJlcy1wbHVnaW4vLS9oZWxwZXItY3JlYXRlLWNs YXNzLWZlYXR1cmVzLXBsdWdpbi03LjEzLjgudGd6IzAzNjdiZDBhNzUwNTE1NmNlMDE4Y2E0NjRm N2FjOTFiYTU4YzFhMDQiCisgIGludGVncml0eSBzaGE1MTItcWlvYVJyS0hRYm40aGtSS0RIYm51 UTZrQXhtbU9GK2t6S0duSWZ4UEs0ajJyY2tTSkNwS3pyL1NTVGxvaFNDaUUzdUFRcE5ESjlGSWg0 YmFlRThXK3c9PQogICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItYW5ub3RhdGUt YXMtcHVyZSIgIl43LjEyLjEzIgotICAgICJAYmFiZWwvaGVscGVyLWZ1bmN0aW9uLW5hbWUiICJe Ny4xNC4yIgotICAgICJAYmFiZWwvaGVscGVyLW1lbWJlci1leHByZXNzaW9uLXRvLWZ1bmN0aW9u cyIgIl43LjEzLjEyIgorICAgICJAYmFiZWwvaGVscGVyLWZ1bmN0aW9uLW5hbWUiICJeNy4xMi4x MyIKKyAgICAiQGJhYmVsL2hlbHBlci1tZW1iZXItZXhwcmVzc2lvbi10by1mdW5jdGlvbnMiICJe Ny4xMy4wIgogICAgICJAYmFiZWwvaGVscGVyLW9wdGltaXNlLWNhbGwtZXhwcmVzc2lvbiIgIl43 LjEyLjEzIgotICAgICJAYmFiZWwvaGVscGVyLXJlcGxhY2Utc3VwZXJzIiAiXjcuMTQuMyIKKyAg ICAiQGJhYmVsL2hlbHBlci1yZXBsYWNlLXN1cGVycyIgIl43LjEzLjAiCiAgICAgIkBiYWJlbC9o ZWxwZXItc3BsaXQtZXhwb3J0LWRlY2xhcmF0aW9uIiAiXjcuMTIuMTMiCiAKICJAYmFiZWwvaGVs cGVyLWNyZWF0ZS1yZWdleHAtZmVhdHVyZXMtcGx1Z2luQF43LjEyLjEzIjoKQEAgLTExMiwxMCAr MTEyLDEwIEBACiAgICAgIkBiYWJlbC9oZWxwZXItYW5ub3RhdGUtYXMtcHVyZSIgIl43LjEyLjEz IgogICAgIHJlZ2V4cHUtY29yZSAiXjQuNy4xIgogCi0iQGJhYmVsL2hlbHBlci1kZWZpbmUtcG9s eWZpbGwtcHJvdmlkZXJAXjAuMi4yIjoKLSAgdmVyc2lvbiAiMC4yLjMiCi0gIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9oZWxwZXItZGVmaW5lLXBvbHlmaWxs LXByb3ZpZGVyLy0vaGVscGVyLWRlZmluZS1wb2x5ZmlsbC1wcm92aWRlci0wLjIuMy50Z3ojMDUy NWVkZWM1MDk0NjUzYTI4MjY4OGQzNGQ4NDZlNGM3NWU5YzBiNiIKLSAgaW50ZWdyaXR5IHNoYTUx Mi1SSDNRREFmUk16ajcrME5xdTVvcWdPNXE5bUZ0UUVWdkNSc2k4cUNFZnpMUjlwMkJIZm41Rnpo U0Iyb2oxZkY3STIrRGNUT1JrWWFRNmFUUjlDb2Zldz09CisiQGJhYmVsL2hlbHBlci1kZWZpbmUt cG9seWZpbGwtcHJvdmlkZXJAXjAuMS41IjoKKyAgdmVyc2lvbiAiMC4xLjUiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9oZWxwZXItZGVmaW5lLXBvbHlm aWxsLXByb3ZpZGVyLy0vaGVscGVyLWRlZmluZS1wb2x5ZmlsbC1wcm92aWRlci0wLjEuNS50Z3oj M2MyZjkxYjc5NzFiOWZjMTFmZTc3OWM5NDVjMDE0MDY1ZGVhMzQwZSIKKyAgaW50ZWdyaXR5IHNo YTUxMi1uWHV6Q1N3bEovV0tyOHF4elc4MTZnd3lUNlZaZ2lKRzE3elI0MGZvdTcweWZBY3Fqb055 VExsL0RRK0ZFeHc1SHg1S05xc2htTjhMZGwvcjJON2NUZz09CiAgIGRlcGVuZGVuY2llczoKICAg ICAiQGJhYmVsL2hlbHBlci1jb21waWxhdGlvbi10YXJnZXRzIiAiXjcuMTMuMCIKICAgICAiQGJh YmVsL2hlbHBlci1tb2R1bGUtaW1wb3J0cyIgIl43LjEyLjEzIgpAQCAtMTMzLDcgKzEzMyw3IEBA CiAgIGRlcGVuZGVuY2llczoKICAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTMuMCIKIAotIkBiYWJl bC9oZWxwZXItZnVuY3Rpb24tbmFtZUBeNy4xMi4xMyIsICJAYmFiZWwvaGVscGVyLWZ1bmN0aW9u LW5hbWVAXjcuMTQuMiI6CisiQGJhYmVsL2hlbHBlci1mdW5jdGlvbi1uYW1lQF43LjEyLjEzIjoK ICAgdmVyc2lvbiAiNy4xNC4yIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9AYmFiZWwvaGVscGVyLWZ1bmN0aW9uLW5hbWUvLS9oZWxwZXItZnVuY3Rpb24tbmFtZS03 LjE0LjIudGd6IzM5NzY4OGI1OTA3NjBiNmVmNzcyNWI1ZjA4NjBjODI0MjdlYmFhYzIiCiAgIGlu dGVncml0eSBzaGE1MTItTllabGtaUnlkeHcrWVQ1NklsaEljUzhQQWhiK0ZFVWlPenVoRlRmcUR5 UG16QWhSZ2U2dWEwZFFZVC9VaDB0L0VESHEwNS9pK2U1TTJkNFh2amdhclE9PQpAQCAtMTUwLDE5 ICsxNTAsMTkgQEAKICAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTIuMTMiCiAKICJAYmFiZWwvaGVs cGVyLWhvaXN0LXZhcmlhYmxlc0BeNy4xMy4wIjoKLSAgdmVyc2lvbiAiNy4xMy4xNiIKLSAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2hlbHBlci1ob2lzdC12 YXJpYWJsZXMvLS9oZWxwZXItaG9pc3QtdmFyaWFibGVzLTcuMTMuMTYudGd6IzFiMTY1MTI0OWU5 NGI1MWY4ZjBkMzM0Mzk4NDNlMzNlMzk3NzViMzAiCi0gIGludGVncml0eSBzaGE1MTItMWVNdFRy WHRyd3NjamNBZU80QlZLK3Z2a3hhTEpTUEZ6MXcxS0xhd3o2SExOaTliUEZHQk53d0R5VmZpdTFU di92UlJGWWZvR2FLaG1BUVBHUG41V2c9PQorICB2ZXJzaW9uICI3LjEzLjAiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9oZWxwZXItaG9pc3QtdmFyaWFi bGVzLy0vaGVscGVyLWhvaXN0LXZhcmlhYmxlcy03LjEzLjAudGd6IzVkNTg4MmU4NTViNWM1ZWRh OTFlMGNhZGMyNmM2ZTdhMmM4NTkzZDgiCisgIGludGVncml0eSBzaGE1MTItMGtCenZYaUlLZnND QTB5NmNGRUlKZjRPZHpmcFJ1Tms0K1lUZUhacEdHYzY2NlNBVEZLVHo2c1JuY3dGblFrNy91Z0o0 ZFNyQ2o2aUp1dlc0UXdyMmc9PQogICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC90cmF2ZXJz ZSIgIl43LjEzLjE1IgotICAgICJAYmFiZWwvdHlwZXMiICJeNy4xMy4xNiIKKyAgICAiQGJhYmVs L3RyYXZlcnNlIiAiXjcuMTMuMCIKKyAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTMuMCIKIAotIkBi YWJlbC9oZWxwZXItbWVtYmVyLWV4cHJlc3Npb24tdG8tZnVuY3Rpb25zQF43LjEzLjEyIjoKLSAg dmVyc2lvbiAiNy4xMy4xMiIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vQGJhYmVsL2hlbHBlci1tZW1iZXItZXhwcmVzc2lvbi10by1mdW5jdGlvbnMvLS9oZWxwZXIt bWVtYmVyLWV4cHJlc3Npb24tdG8tZnVuY3Rpb25zLTcuMTMuMTIudGd6I2RmZTM2OGYyNmQ0MjZh MDcyOTlkOGQ2NTEzODIxNzY4MjE2ZTZkNzIiCi0gIGludGVncml0eSBzaGE1MTItNDhxbDFDTEw1 OWFLYlU5NFk4OFhnYjJWRnk3YTk1eWtHUmJKSmFhVnYrTFg1VTh3RnBMZmlHWEpKR1VvenNtQTFv RWgvbzVCcDYwVm9xN0FDeUEvU3c9PQorIkBiYWJlbC9oZWxwZXItbWVtYmVyLWV4cHJlc3Npb24t dG8tZnVuY3Rpb25zQF43LjEzLjAiOgorICB2ZXJzaW9uICI3LjEzLjAiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9oZWxwZXItbWVtYmVyLWV4cHJlc3Np b24tdG8tZnVuY3Rpb25zLy0vaGVscGVyLW1lbWJlci1leHByZXNzaW9uLXRvLWZ1bmN0aW9ucy03 LjEzLjAudGd6IzZhYTRiYjY3OGUwZjhjMjJmNThjZGI3OTQ1MWQzMDQ5NDQ2MWIwOTEiCisgIGlu dGVncml0eSBzaGE1MTIteXZSZjhJdms2Mkp3aXNxVjFyRlJNeGlTTURHbk42S0gxL21ETW1Jcmlq NGp6dHBRTlJvSHFxTUczVTZhcFliR1JQSnBnUGFsaHZhOVlkMDZIbFV4SlE9PQogICBkZXBlbmRl bmNpZXM6Ci0gICAgIkBiYWJlbC90eXBlcyIgIl43LjEzLjEyIgorICAgICJAYmFiZWwvdHlwZXMi ICJeNy4xMy4wIgogCiAiQGJhYmVsL2hlbHBlci1tb2R1bGUtaW1wb3J0c0BeNy4wLjAiLCAiQGJh YmVsL2hlbHBlci1tb2R1bGUtaW1wb3J0c0BeNy4xMi4xMyIsICJAYmFiZWwvaGVscGVyLW1vZHVs ZS1pbXBvcnRzQF43LjEzLjEyIjoKICAgdmVyc2lvbiAiNy4xMy4xMiIKQEAgLTE3MSwxOSArMTcx LDIwIEBACiAgIGRlcGVuZGVuY2llczoKICAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTMuMTIiCiAK LSJAYmFiZWwvaGVscGVyLW1vZHVsZS10cmFuc2Zvcm1zQF43LjEzLjAiLCAiQGJhYmVsL2hlbHBl ci1tb2R1bGUtdHJhbnNmb3Jtc0BeNy4xNC4wIiwgIkBiYWJlbC9oZWxwZXItbW9kdWxlLXRyYW5z Zm9ybXNAXjcuMTQuMiI6Ci0gIHZlcnNpb24gIjcuMTQuMiIKLSAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2hlbHBlci1tb2R1bGUtdHJhbnNmb3Jtcy8tL2hl bHBlci1tb2R1bGUtdHJhbnNmb3Jtcy03LjE0LjIudGd6I2FjMWNjMzBlZTQ3Yjk0NWUzZTBjNGRi MTJmYTBjNTM4OTUwOWRmZTUiCi0gIGludGVncml0eSBzaGE1MTItT3puSlVkYS9zb0tYdjBYaHB2 ekdXRG5tbDRRbndwMTZHTitEL2taSWRMc1dvSGowNWt5dThSbTVrWG1NZWYrclZKWjArNHBTR0xr ZWl4ZHFOVUFUREE9PQorIkBiYWJlbC9oZWxwZXItbW9kdWxlLXRyYW5zZm9ybXNAXjcuMTMuMCI6 CisgIHZlcnNpb24gIjcuMTMuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vQGJhYmVsL2hlbHBlci1tb2R1bGUtdHJhbnNmb3Jtcy8tL2hlbHBlci1tb2R1bGUtdHJh bnNmb3Jtcy03LjEzLjAudGd6IzQyZWI0YmQ4ZWVhNjhiYWI0Njc1MTIxMmMzNTdiZmVkOGI0MGY2 ZjEiCisgIGludGVncml0eSBzaGE1MTItTHM4L1ZCd0g1NzcrcHc3S3UxUWtVV0l5UlJOSHBZbHRz NytxU3FCQkZDVzNJOFF0ZUI5RHhmY1o1WUpwT3dINkloZS93bjhjaDdmTUdPUDFPaEVJdnc9PQog ICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItbW9kdWxlLWltcG9ydHMiICJeNy4x My4xMiIKLSAgICAiQGJhYmVsL2hlbHBlci1yZXBsYWNlLXN1cGVycyIgIl43LjEzLjEyIgotICAg ICJAYmFiZWwvaGVscGVyLXNpbXBsZS1hY2Nlc3MiICJeNy4xMy4xMiIKKyAgICAiQGJhYmVsL2hl bHBlci1tb2R1bGUtaW1wb3J0cyIgIl43LjEyLjEzIgorICAgICJAYmFiZWwvaGVscGVyLXJlcGxh Y2Utc3VwZXJzIiAiXjcuMTMuMCIKKyAgICAiQGJhYmVsL2hlbHBlci1zaW1wbGUtYWNjZXNzIiAi XjcuMTIuMTMiCiAgICAgIkBiYWJlbC9oZWxwZXItc3BsaXQtZXhwb3J0LWRlY2xhcmF0aW9uIiAi XjcuMTIuMTMiCi0gICAgIkBiYWJlbC9oZWxwZXItdmFsaWRhdG9yLWlkZW50aWZpZXIiICJeNy4x NC4wIgorICAgICJAYmFiZWwvaGVscGVyLXZhbGlkYXRvci1pZGVudGlmaWVyIiAiXjcuMTIuMTEi CiAgICAgIkBiYWJlbC90ZW1wbGF0ZSIgIl43LjEyLjEzIgotICAgICJAYmFiZWwvdHJhdmVyc2Ui ICJeNy4xNC4yIgotICAgICJAYmFiZWwvdHlwZXMiICJeNy4xNC4yIgorICAgICJAYmFiZWwvdHJh dmVyc2UiICJeNy4xMy4wIgorICAgICJAYmFiZWwvdHlwZXMiICJeNy4xMy4wIgorICAgIGxvZGFz aCAiXjQuMTcuMTkiCiAKICJAYmFiZWwvaGVscGVyLW9wdGltaXNlLWNhbGwtZXhwcmVzc2lvbkBe Ny4xMi4xMyI6CiAgIHZlcnNpb24gIjcuMTIuMTMiCkBAIC0yMDYsMTcgKzIwNywxNyBAQAogICAg ICJAYmFiZWwvaGVscGVyLXdyYXAtZnVuY3Rpb24iICJeNy4xMy4wIgogICAgICJAYmFiZWwvdHlw ZXMiICJeNy4xMy4wIgogCi0iQGJhYmVsL2hlbHBlci1yZXBsYWNlLXN1cGVyc0BeNy4xMi4xMyIs ICJAYmFiZWwvaGVscGVyLXJlcGxhY2Utc3VwZXJzQF43LjEzLjEyIiwgIkBiYWJlbC9oZWxwZXIt cmVwbGFjZS1zdXBlcnNAXjcuMTQuMyI6Ci0gIHZlcnNpb24gIjcuMTQuMyIKLSAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2hlbHBlci1yZXBsYWNlLXN1cGVy cy8tL2hlbHBlci1yZXBsYWNlLXN1cGVycy03LjE0LjMudGd6I2NhMTdiMzE4Yjg1OWQxMDdmMGU5 YjcyMmQ1OGNmMTJkOTQ0MzY2MDAiCi0gIGludGVncml0eSBzaGE1MTItUmxoOHFFV1pTVGZkeit0 Z05WL040Z3oxYTBUTU53Q1VjRU5oTWpIVEhLcDNMc2VZSDVKaGEwTlNseVRRV01uamJZY3dGdCti cUFNcVNMSFZYa1E2VUE9PQorIkBiYWJlbC9oZWxwZXItcmVwbGFjZS1zdXBlcnNAXjcuMTIuMTMi LCAiQGJhYmVsL2hlbHBlci1yZXBsYWNlLXN1cGVyc0BeNy4xMy4wIjoKKyAgdmVyc2lvbiAiNy4x My4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvaGVs cGVyLXJlcGxhY2Utc3VwZXJzLy0vaGVscGVyLXJlcGxhY2Utc3VwZXJzLTcuMTMuMC50Z3ojNjAz NGI3YjUxOTQzMDk0Y2I0MTYyNzg0OGNiMjE5Y2IwMmJlMWQyNCIKKyAgaW50ZWdyaXR5IHNoYTUx Mi1TZWdkNW1lMStQeitybU4vTkZCT3BsTWJaRzNTcVJKT0JsWSttQTBTeEF2NnJqajd6SnFyMUFW cjNTZnpVVlRMQ3Y3WkxVNUZ5Y09NL1NCR3VMUGJadz09CiAgIGRlcGVuZGVuY2llczoKLSAgICAi QGJhYmVsL2hlbHBlci1tZW1iZXItZXhwcmVzc2lvbi10by1mdW5jdGlvbnMiICJeNy4xMy4xMiIK KyAgICAiQGJhYmVsL2hlbHBlci1tZW1iZXItZXhwcmVzc2lvbi10by1mdW5jdGlvbnMiICJeNy4x My4wIgogICAgICJAYmFiZWwvaGVscGVyLW9wdGltaXNlLWNhbGwtZXhwcmVzc2lvbiIgIl43LjEy LjEzIgotICAgICJAYmFiZWwvdHJhdmVyc2UiICJeNy4xNC4yIgotICAgICJAYmFiZWwvdHlwZXMi ICJeNy4xNC4yIgorICAgICJAYmFiZWwvdHJhdmVyc2UiICJeNy4xMy4wIgorICAgICJAYmFiZWwv dHlwZXMiICJeNy4xMy4wIgogCi0iQGJhYmVsL2hlbHBlci1zaW1wbGUtYWNjZXNzQF43LjEzLjEy IjoKKyJAYmFiZWwvaGVscGVyLXNpbXBsZS1hY2Nlc3NAXjcuMTIuMTMiOgogICB2ZXJzaW9uICI3 LjEzLjEyIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwv aGVscGVyLXNpbXBsZS1hY2Nlc3MvLS9oZWxwZXItc2ltcGxlLWFjY2Vzcy03LjEzLjEyLnRneiNk ZDZjNTM4YWZiNjE4MTlkMjA1YTAxMmMzMTc5MmEzOWM3YTVlYWY2IgogICBpbnRlZ3JpdHkgc2hh NTEyLTdGRWpicng1U0w5Y1d2WGlvRGJubFlUcHBjWkd1Q1k2b3czL0Q1dk1nZ2IyWXdndTRkTXJw VEpYMEpkUUFJY1JSVUVsT0l4RjN5RW9vYTlnVWI5WmJBPT0KQEAgLTI1Nyw0MiArMjU4LDMzIEBA CiAgICAgIkBiYWJlbC90cmF2ZXJzZSIgIl43LjEzLjAiCiAgICAgIkBiYWJlbC90eXBlcyIgIl43 LjEzLjAiCiAKLSJAYmFiZWwvaGVscGVyc0BeNy4xNC4wIjoKLSAgdmVyc2lvbiAiNy4xNC4wIgot ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvaGVscGVycy8t L2hlbHBlcnMtNy4xNC4wLnRneiNlYTliNmJlOTQ3OGExM2Q2Zjk2MWRiYjVmMzZiZjc1ZTJmM2I4 ZjYyIgotICBpbnRlZ3JpdHkgc2hhNTEyLSt1ZnVYcHJ0UTFEMWlaVE8vSzkrRUJSbitxUFdNSmpa U3cvUzBLbEZyeEN3NHRrcnp2OWdyZ3BESGtZOU1lUVRqVFk4aTJzcDdKZXA4RGZVNnROOU1nPT0K KyJAYmFiZWwvaGVscGVyc0BeNy4xMy4wIjoKKyAgdmVyc2lvbiAiNy4xMy4wIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvaGVscGVycy8tL2hlbHBlcnMt Ny4xMy4wLnRneiM3NjQ3YWU1NzM3N2I0ZjA0MDhiZjRmOGE3YWYwMWM0MmU0MWJhZGMwIgorICBp bnRlZ3JpdHkgc2hhNTEyLWFhbjFNZUZQeEZhY1plU3o2TGQ3WVpvNWFQdXFuS2xENytIWlk3NXhR c3VlY3pGY2NQOUE3VjA1K29lMFhwTHdISzNvTG9yUGU5ZWFBVWxqTDdXRWFRPT0KICAgZGVwZW5k ZW5jaWVzOgogICAgICJAYmFiZWwvdGVtcGxhdGUiICJeNy4xMi4xMyIKLSAgICAiQGJhYmVsL3Ry YXZlcnNlIiAiXjcuMTQuMCIKLSAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTQuMCIKKyAgICAiQGJh YmVsL3RyYXZlcnNlIiAiXjcuMTMuMCIKKyAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTMuMCIKIAog IkBiYWJlbC9oaWdobGlnaHRAXjcuMTAuNCIsICJAYmFiZWwvaGlnaGxpZ2h0QF43LjEyLjEzIjoK LSAgdmVyc2lvbiAiNy4xNC4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9AYmFiZWwvaGlnaGxpZ2h0Ly0vaGlnaGxpZ2h0LTcuMTQuMC50Z3ojMzE5N2UzNzU3MTFl ZjZiZjgzNGU2N2QwZGFlYzg4ZTRmNDYxMTNjZiIKLSAgaW50ZWdyaXR5IHNoYTUxMi1ZU0NPd3h2 VFlFSU1TR2FCUWI1a0REc0NvcERkaVVHc3FwYXRwM2ZPbEk0KzJIUVNrVG1FVlduVnV5U2RBQzVF V0NxU1dXVHYwaWI2M1JqUjdkVEJkZz09CisgIHZlcnNpb24gIjcuMTMuOCIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL2hpZ2hsaWdodC8tL2hpZ2hsaWdo dC03LjEzLjgudGd6IzEwYjJkYWM3ODUyNjQyNGRmYzFmNDc2NTBkMGU0MTVkZmQ5ZGM0ODEiCisg IGludGVncml0eSBzaGE1MTItNHZySWhmSnlmTmYrbEN0WEMyY2sxcktTekR3Y2lxRjdJV0ZoWFhy U09VQzJPNURyVnArdzRjNmVkNEFsbFR4aFRrVVA1eDJ0WWo0MVZheGRWTU1SRHc9PQogICBkZXBl bmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItdmFsaWRhdG9yLWlkZW50aWZpZXIiICJeNy4x NC4wIgorICAgICJAYmFiZWwvaGVscGVyLXZhbGlkYXRvci1pZGVudGlmaWVyIiAiXjcuMTIuMTEi CiAgICAgY2hhbGsgIl4yLjAuMCIKICAgICBqcy10b2tlbnMgIl40LjAuMCIKIAotIkBiYWJlbC9w YXJzZXJAXjcuMTIuMTMiLCAiQGJhYmVsL3BhcnNlckBeNy4xNC4yIiwgIkBiYWJlbC9wYXJzZXJA XjcuMTQuMyI6Ci0gIHZlcnNpb24gIjcuMTQuMyIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vQGJhYmVsL3BhcnNlci8tL3BhcnNlci03LjE0LjMudGd6IzliNTMwZWVj YjA3MWZkMGM5MzUxOWRmMjVjNWZmOWYxNDc1OWYyOTgiCi0gIGludGVncml0eSBzaGE1MTItN01w WkRJZkk3c1VDNXpXbzIrZm9KNTBDU0k1bGNxRGVoWjBsVmdJaFNpNGJGRWs5NGZMQUtsRjNRMG56 U1FRK2NhMGxtK082Rzl6dEtWQmV1OFBNUlE9PQorIkBiYWJlbC9wYXJzZXJAXjcuMTIuMTMiLCAi QGJhYmVsL3BhcnNlckBeNy4xMy4wIiwgIkBiYWJlbC9wYXJzZXJAXjcuMTMuNCI6CisgIHZlcnNp b24gIjcuMTMuOSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJh YmVsL3BhcnNlci8tL3BhcnNlci03LjEzLjkudGd6I2NhMzRjYjk1ZTFjMmRkMTI2ODYzYTg0NDY1 YWU4ZWY2NjExNGJlOTkiCisgIGludGVncml0eSBzaGE1MTItbkVVZlJpQVJDY2FWbzNueTNaUWpV UmpIUVpVby9Ka0V3N3JMbFNaeS9wc1dHbnZ3WEZ0UGNyNmpiN1liNDFEVlc1TFRlNktScTlMR2xl Uk5zZzFGcnc9PQogCi0iQGJhYmVsL3BsdWdpbi1idWdmaXgtdjgtc3ByZWFkLXBhcmFtZXRlcnMt aW4tb3B0aW9uYWwtY2hhaW5pbmdAXjcuMTMuMTIiOgotICB2ZXJzaW9uICI3LjEzLjEyIgotICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLWJ1Z2Zp eC12OC1zcHJlYWQtcGFyYW1ldGVycy1pbi1vcHRpb25hbC1jaGFpbmluZy8tL3BsdWdpbi1idWdm aXgtdjgtc3ByZWFkLXBhcmFtZXRlcnMtaW4tb3B0aW9uYWwtY2hhaW5pbmctNy4xMy4xMi50Z3oj YTM0ODRkODRkMGI1NDlmM2ZjOTE2Yjk5ZWU0NzgzZjI2ZmFiYWQyYSIKLSAgaW50ZWdyaXR5IHNo YTUxMi1kMHUzeldLY29aZjM3OWZPZUpkcjFhNVdQRG55NGFPRlo2aGxmS2l2Z0swTFk3WnhOZm9h SEwyZld3ZEd0SHlWdnJhMzhGQytIVllrTytieWZTQThBUT09Ci0gIGRlcGVuZGVuY2llczoKLSAg ICAiQGJhYmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xMy4wIgotICAgICJAYmFiZWwvaGVs cGVyLXNraXAtdHJhbnNwYXJlbnQtZXhwcmVzc2lvbi13cmFwcGVycyIgIl43LjEyLjEiCi0gICAg IkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtb3B0aW9uYWwtY2hhaW5pbmciICJeNy4xMy4xMiIKLQot IkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtYXN5bmMtZ2VuZXJhdG9yLWZ1bmN0aW9uc0BeNy4xNC4y IjoKLSAgdmVyc2lvbiAiNy4xNC4yIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9AYmFiZWwvcGx1Z2luLXByb3Bvc2FsLWFzeW5jLWdlbmVyYXRvci1mdW5jdGlvbnMv LS9wbHVnaW4tcHJvcG9zYWwtYXN5bmMtZ2VuZXJhdG9yLWZ1bmN0aW9ucy03LjE0LjIudGd6IzNh MjA4NWFiYmY1ZDVmOTYyZDQ4MGRiYzgxMzQ3Mzg1ZWQ2MmViMWUiCi0gIGludGVncml0eSBzaGE1 MTItYjFBTTRGNmZ3Y2s0TjhJdFovQXRDNEZQL2NxWnFtS1JRNEZhVER1dHdTWXlqdWh0dnNHRU1M SzROL3p0Vi9JbVA0MEJqSUR5TWdCUUFlQU1zUVlWRlE9PQorIkBiYWJlbC9wbHVnaW4tcHJvcG9z YWwtYXN5bmMtZ2VuZXJhdG9yLWZ1bmN0aW9uc0BeNy4xMy44IjoKKyAgdmVyc2lvbiAiNy4xMy44 IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2lu LXByb3Bvc2FsLWFzeW5jLWdlbmVyYXRvci1mdW5jdGlvbnMvLS9wbHVnaW4tcHJvcG9zYWwtYXN5 bmMtZ2VuZXJhdG9yLWZ1bmN0aW9ucy03LjEzLjgudGd6Izg3YWFjYjU3NGIzYmM0YjU2MDNmNmZl NDE0NThkNzJhNWEyZWM0YjEiCisgIGludGVncml0eSBzaGE1MTItclBCbmhqK1dnb1NtZ3ErNGdR VXRYeC92T2NVK1VZdGp5MUFBL2FlRDYxSHdqNDEwZndZeXFmVWNSUDNsUjh1Y2dsaVZKTC9HN3NY Y05VZWNDNzVJWEE9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2lu LXV0aWxzIiAiXjcuMTMuMCIKICAgICAiQGJhYmVsL2hlbHBlci1yZW1hcC1hc3luYy10by1nZW5l cmF0b3IiICJeNy4xMy4wIgpAQCAtMzA2LDI0ICsyOTgsMTUgQEAKICAgICAiQGJhYmVsL2hlbHBl ci1jcmVhdGUtY2xhc3MtZmVhdHVyZXMtcGx1Z2luIiAiXjcuMTMuMCIKICAgICAiQGJhYmVsL2hl bHBlci1wbHVnaW4tdXRpbHMiICJeNy4xMy4wIgogCi0iQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1j bGFzcy1zdGF0aWMtYmxvY2tAXjcuMTMuMTEiOgotICB2ZXJzaW9uICI3LjE0LjMiCi0gIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tcHJvcG9zYWwt Y2xhc3Mtc3RhdGljLWJsb2NrLy0vcGx1Z2luLXByb3Bvc2FsLWNsYXNzLXN0YXRpYy1ibG9jay03 LjE0LjMudGd6IzVhNTI3ZTJjYWU0YTQ3NTMxMTljM2EzZTdmNjRlY2FlOGNjZjEzNjAiCi0gIGlu dGVncml0eSBzaGE1MTItSEVqenA1cStsV1NqQWdKdFNsdUZEckdHb3Ntd1RnS3dDWGREUVp2aEtz Umx3djNZZGtVRXF4TnJyamVzSmQrQjlFOXp2cjFQVlBWQnZoWVo5bXNqdlE9PQotICBkZXBlbmRl bmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItY3JlYXRlLWNsYXNzLWZlYXR1cmVzLXBsdWdpbiIg Il43LjE0LjMiCi0gICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTMuMCIKLSAg ICAiQGJhYmVsL3BsdWdpbi1zeW50YXgtY2xhc3Mtc3RhdGljLWJsb2NrIiAiXjcuMTIuMTMiCi0K LSJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLWR5bmFtaWMtaW1wb3J0QF43LjE0LjIiOgotICB2ZXJz aW9uICI3LjE0LjIiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0Bi YWJlbC9wbHVnaW4tcHJvcG9zYWwtZHluYW1pYy1pbXBvcnQvLS9wbHVnaW4tcHJvcG9zYWwtZHlu YW1pYy1pbXBvcnQtNy4xNC4yLnRneiMwMWViYWJkN2MzODFjZmYyMzFmYTQzZTMwMjkzOWE5ZGU1 YmU5ZDlmIgotICBpbnRlZ3JpdHkgc2hhNTEyLW94VlFaSVdGaDkxdnVORU1LbHRxTnNLTEZXa09J eUpjOTVrMkd2OWxXVnlEZlBVUUdTU2xiREVnV3VKVVUxYWZHRTlXd2x6cHVjTVozeURSSElJdGtB PT0KKyJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLWR5bmFtaWMtaW1wb3J0QF43LjEzLjgiOgorICB2 ZXJzaW9uICI3LjEzLjgiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L0BiYWJlbC9wbHVnaW4tcHJvcG9zYWwtZHluYW1pYy1pbXBvcnQvLS9wbHVnaW4tcHJvcG9zYWwt ZHluYW1pYy1pbXBvcnQtNy4xMy44LnRneiM4NzZhMWY2OTY2ZTFkZWMzMzJlOGM5NDUxYWZkYTNi ZWJjZGYyZTFkIgorICBpbnRlZ3JpdHkgc2hhNTEyLU9OV0tqMEg2K3dJUkNrWmk5elNiWnRFL3I3 M3VPaE1WSGgyNTZ5czBVemZNN0kzZDRuK3NwWk5Xak9uSnYyZ3pvcHVtUDJXeGkxODZ2SThOMFky SnlRPT0KICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIg Il43LjEzLjAiCiAgICAgIkBiYWJlbC9wbHVnaW4tc3ludGF4LWR5bmFtaWMtaW1wb3J0IiAiXjcu OC4zIgogCi0iQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1leHBvcnQtbmFtZXNwYWNlLWZyb21AXjcu MTQuMiI6CisiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1leHBvcnQtbmFtZXNwYWNlLWZyb21AXjcu MTIuMTMiOgogICB2ZXJzaW9uICI3LjE0LjIiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tcHJvcG9zYWwtZXhwb3J0LW5hbWVzcGFjZS1mcm9t Ly0vcGx1Z2luLXByb3Bvc2FsLWV4cG9ydC1uYW1lc3BhY2UtZnJvbS03LjE0LjIudGd6IzYyNTQy Zjk0YWE5Y2U4ZjZkYmE3OWVlYzY5OGFmMjIxMTIyNTM3OTEiCiAgIGludGVncml0eSBzaGE1MTIt c1J4VzN6M1pwM3BGZkxBZ1ZFdnpURnV0VFhheDgzN29PYXRVSXZTRzlvNWdSajltS3dtM2JyMVNl NWY0UWFsVFFzOXg0QXpsQS9IckNXYlFJSEFTVVE9PQpAQCAtMzMxLDMxICszMTQsMzEgQEAKICAg ICAiQGJhYmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xMy4wIgogICAgICJAYmFiZWwvcGx1 Z2luLXN5bnRheC1leHBvcnQtbmFtZXNwYWNlLWZyb20iICJeNy44LjMiCiAKLSJAYmFiZWwvcGx1 Z2luLXByb3Bvc2FsLWpzb24tc3RyaW5nc0BeNy4xNC4yIjoKLSAgdmVyc2lvbiAiNy4xNC4yIgot ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXBy b3Bvc2FsLWpzb24tc3RyaW5ncy8tL3BsdWdpbi1wcm9wb3NhbC1qc29uLXN0cmluZ3MtNy4xNC4y LnRneiM4MzBiNGUyNDI2YTc4MmU4YjI4NzhmYmZlMmNiYTg1YjcwY2JmOThjIgotICBpbnRlZ3Jp dHkgc2hhNTEyLXcyRHRzZlhCQkpkZEphY1hNQmhFbEdFWXFDWlFxTjk5U2UxcWVZbjhEVkxCMzNv d2xybExmdEliTXpuNW56MU9JVGZEVmtuWEY0MzN0QnJMRUFPRWpBPT0KKyJAYmFiZWwvcGx1Z2lu LXByb3Bvc2FsLWpzb24tc3RyaW5nc0BeNy4xMy44IjoKKyAgdmVyc2lvbiAiNy4xMy44IgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXByb3Bv c2FsLWpzb24tc3RyaW5ncy8tL3BsdWdpbi1wcm9wb3NhbC1qc29uLXN0cmluZ3MtNy4xMy44LnRn eiNiZjFmYjM2MjU0NzA3NWFmZGEzNjM0ZWQzMTU3MWM1OTAxYWZlZjdiIgorICBpbnRlZ3JpdHkg c2hhNTEyLXc0ek9QS1VGUFgxbWd2VG1ML2ZjRXF5MzRoclExQ1JjR3hkcGhCYzZzbkRubnFKNDdF WkRJeW9wNkl3WHpBQzhHOTE2aHNJdVhCMlpNQkNFeEM1azdRPT0KICAgZGVwZW5kZW5jaWVzOgog ICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43LjEzLjAiCiAgICAgIkBiYWJlbC9w bHVnaW4tc3ludGF4LWpzb24tc3RyaW5ncyIgIl43LjguMyIKIAotIkBiYWJlbC9wbHVnaW4tcHJv cG9zYWwtbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9yc0BeNy4xNC4yIjoKLSAgdmVyc2lvbiAi Ny4xNC4yIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwv cGx1Z2luLXByb3Bvc2FsLWxvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnMvLS9wbHVnaW4tcHJv cG9zYWwtbG9naWNhbC1hc3NpZ25tZW50LW9wZXJhdG9ycy03LjE0LjIudGd6IzIyMjM0OGMwODBh MTY3OGUwZTc0ZWE2M2ZlNzZmMjc1ODgyZDFmZDciCi0gIGludGVncml0eSBzaGE1MTItMUpBWnRV cnFZeUdzUzdJRG1GZWFlbSsvTEpxdWpmTFoyd2VMUjl1Z0IwdWZVUGp6ZjhjZ3V5VlQxZzVpbTdm N1JYeHVMcTF4VXhFenZtNjh1WVJ0R2c9PQorIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtbG9naWNh bC1hc3NpZ25tZW50LW9wZXJhdG9yc0BeNy4xMy44IjoKKyAgdmVyc2lvbiAiNy4xMy44IgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXByb3Bv c2FsLWxvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnMvLS9wbHVnaW4tcHJvcG9zYWwtbG9naWNh bC1hc3NpZ25tZW50LW9wZXJhdG9ycy03LjEzLjgudGd6IzkzZmE3OGQ2Mzg1N2M0MGNlM2M4YzMz MTUyMjBmZDAwYmZiYjRlMWEiCisgIGludGVncml0eSBzaGE1MTItYXVsNnpuWUI0TjRIR3dlSW1x S241OVN1OVJTOGxiVUlxeHRYVE9jQUd0TklEY3pvRUZ2K2wxRWhtWDhyVUJwM0cxak1qS0ptOG0w alhWcDYzWnBTNEE9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2lu LXV0aWxzIiAiXjcuMTMuMCIKICAgICAiQGJhYmVsL3BsdWdpbi1zeW50YXgtbG9naWNhbC1hc3Np Z25tZW50LW9wZXJhdG9ycyIgIl43LjEwLjQiCiAKLSJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLW51 bGxpc2gtY29hbGVzY2luZy1vcGVyYXRvckBeNy4xNC4yIjoKLSAgdmVyc2lvbiAiNy4xNC4yIgot ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXBy b3Bvc2FsLW51bGxpc2gtY29hbGVzY2luZy1vcGVyYXRvci8tL3BsdWdpbi1wcm9wb3NhbC1udWxs aXNoLWNvYWxlc2Npbmctb3BlcmF0b3ItNy4xNC4yLnRneiM0MjViMTFkYzYyZmMyNjkzOWEyYWI0 MmNiYmE2ODBiZGY1NzM0NTQ2IgotICBpbnRlZ3JpdHkgc2hhNTEyLWViUjB6VTlPdkkyTjRxaUFD MzhLSUFLNzVLSXRwSVBUcEF0ZDJyNE9abU1GZUtiS0pwVUZMWVAyRXVEdXQ4MitCbVlpOHN6NDJC K1RmVHB0SjlpRzVRPT0KKyJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLW51bGxpc2gtY29hbGVzY2lu Zy1vcGVyYXRvckBeNy4xMy44IjoKKyAgdmVyc2lvbiAiNy4xMy44IgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXByb3Bvc2FsLW51bGxpc2gt Y29hbGVzY2luZy1vcGVyYXRvci8tL3BsdWdpbi1wcm9wb3NhbC1udWxsaXNoLWNvYWxlc2Npbmct b3BlcmF0b3ItNy4xMy44LnRneiMzNzMwYTMxZGFmZDNjMTBkOGNjZDEwNjQ4ZWQ4MGEyYWM1NDcy ZWYzIgorICBpbnRlZ3JpdHkgc2hhNTEyLWllUGxEUEJuLy9VaHhFeHlTOUt5ZVlVN1JNOVdTY0FH K0QzSGhubzBQTEplYkFFcERaTW9jYkRlNjRlcXluaE5Bbnd6L3Zab0wvcS9RQjJUMU9IMzlBPT0K ICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43LjEz LjAiCiAgICAgIkBiYWJlbC9wbHVnaW4tc3ludGF4LW51bGxpc2gtY29hbGVzY2luZy1vcGVyYXRv ciIgIl43LjguMyIKIAotIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtbnVtZXJpYy1zZXBhcmF0b3JA XjcuMTQuMiI6CisiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1udW1lcmljLXNlcGFyYXRvckBeNy4x Mi4xMyI6CiAgIHZlcnNpb24gIjcuMTQuMiIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1udW1lcmljLXNlcGFyYXRvci8tL3Bs dWdpbi1wcm9wb3NhbC1udW1lcmljLXNlcGFyYXRvci03LjE0LjIudGd6IzgyYjRjYzA2NTcxMTQz ZmFmNTA2MjYxMDRiMzM1ZGQ3MWJhYTRmOWUiCiAgIGludGVncml0eSBzaGE1MTItRGNUUVk5c3l4 dTlCcFUzVW85NGZqQ0IzTE45L2hnUFM4b1VMN0tyU1czYkEyZVByS1paUEpjYzV5MGhvSkFNOWRm dDNwR2ZFcnRFVXZ4WFFjZkx4VWc9PQpAQCAtMzYzLDI5ICszNDYsMjkgQEAKICAgICAiQGJhYmVs L2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xMy4wIgogICAgICJAYmFiZWwvcGx1Z2luLXN5bnRh eC1udW1lcmljLXNlcGFyYXRvciIgIl43LjEwLjQiCiAKLSJAYmFiZWwvcGx1Z2luLXByb3Bvc2Fs LW9iamVjdC1yZXN0LXNwcmVhZEBeNy4xNC4yIiwgIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtb2Jq ZWN0LXJlc3Qtc3ByZWFkQF43LjkuNiI6Ci0gIHZlcnNpb24gIjcuMTQuMiIKLSAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1vYmpl Y3QtcmVzdC1zcHJlYWQvLS9wbHVnaW4tcHJvcG9zYWwtb2JqZWN0LXJlc3Qtc3ByZWFkLTcuMTQu Mi50Z3ojZTE3ZDQxOGY4MWNjMTAzZmVkZDRjZTAzN2UxODFjODA1NjIyNWFiYyIKLSAgaW50ZWdy aXR5IHNoYTUxMi1oQklRRnh3Wmk4R0lwOTM0K25qNXVWMzFtcWNsQzFhWURoY3REdTVraFRpOVBD Q1VPY3p5eTBiMzRXMG9FOVUvZUpYaXFRYUt5VnNtamVhZ09hU2xidz09CisiQGJhYmVsL3BsdWdp bi1wcm9wb3NhbC1vYmplY3QtcmVzdC1zcHJlYWRAXjcuMTMuOCIsICJAYmFiZWwvcGx1Z2luLXBy b3Bvc2FsLW9iamVjdC1yZXN0LXNwcmVhZEBeNy45LjYiOgorICB2ZXJzaW9uICI3LjEzLjgiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tcHJv cG9zYWwtb2JqZWN0LXJlc3Qtc3ByZWFkLy0vcGx1Z2luLXByb3Bvc2FsLW9iamVjdC1yZXN0LXNw cmVhZC03LjEzLjgudGd6IzVkMjEwYTRkNzI3ZDZjZTNiMThmOWRlODJjYzk5YTM5NjRlZWQ2MGEi CisgIGludGVncml0eSBzaGE1MTItRGhCMkV1QjFJaDdTMy9JUlg1QUZWZ1oxNmszRXpmUmJxOTdD eEFWSTFLU1ljVytsZXhWOFZaYjdHN0w4enVQVlNkUU1SbjBraUJwZi9ZenU5WktIMGc9PQogICBk ZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9jb21wYXQtZGF0YSIgIl43LjE0LjAiCi0gICAgIkBi YWJlbC9oZWxwZXItY29tcGlsYXRpb24tdGFyZ2V0cyIgIl43LjEzLjE2IgorICAgICJAYmFiZWwv Y29tcGF0LWRhdGEiICJeNy4xMy44IgorICAgICJAYmFiZWwvaGVscGVyLWNvbXBpbGF0aW9uLXRh cmdldHMiICJeNy4xMy44IgogICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43LjEz LjAiCiAgICAgIkBiYWJlbC9wbHVnaW4tc3ludGF4LW9iamVjdC1yZXN0LXNwcmVhZCIgIl43Ljgu MyIKLSAgICAiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tcGFyYW1ldGVycyIgIl43LjE0LjIiCisg ICAgIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXBhcmFtZXRlcnMiICJeNy4xMy4wIgogCi0iQGJh YmVsL3BsdWdpbi1wcm9wb3NhbC1vcHRpb25hbC1jYXRjaC1iaW5kaW5nQF43LjE0LjIiOgotICB2 ZXJzaW9uICI3LjE0LjIiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L0BiYWJlbC9wbHVnaW4tcHJvcG9zYWwtb3B0aW9uYWwtY2F0Y2gtYmluZGluZy8tL3BsdWdpbi1w cm9wb3NhbC1vcHRpb25hbC1jYXRjaC1iaW5kaW5nLTcuMTQuMi50Z3ojMTUwZDRlNThlNTI1YjE2 YTlhMTQzMWJkNTMyNmM0ZWVkODcwZDcxNyIKLSAgaW50ZWdyaXR5IHNoYTUxMi1YdGtKc21KdEJh VWJPeFpzTmswRnZydjhlaXFnbmV1ZzBBNmFxTEZaNFRTa2FyMkw1ZFNYV2NuVUtIZ21qSnQ0OXB5 Qi82Wkh2a3IzZFBnbDlNT1dSUT09CisiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1vcHRpb25hbC1j YXRjaC1iaW5kaW5nQF43LjEzLjgiOgorICB2ZXJzaW9uICI3LjEzLjgiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tcHJvcG9zYWwtb3B0aW9u YWwtY2F0Y2gtYmluZGluZy8tL3BsdWdpbi1wcm9wb3NhbC1vcHRpb25hbC1jYXRjaC1iaW5kaW5n LTcuMTMuOC50Z3ojM2FkNmJkNTkwMTUwNmVhOTk2ZmMzMWJkY2YzY2NmYTJiZWQ3MTEwNyIKKyAg aW50ZWdyaXR5IHNoYTUxMi0wd1MvNERVRjFDdVRtR28rTmlhSGZIY1ZTZVNMajVTM2U2Uml2UFRn LzJrM3dPdjNqTzM1dFo2L1pXc1FoUU12ZGdJN0N3cGhqUWEvY2Nhckx5bUhWQT09CiAgIGRlcGVu ZGVuY2llczoKICAgICAiQGJhYmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xMy4wIgogICAg ICJAYmFiZWwvcGx1Z2luLXN5bnRheC1vcHRpb25hbC1jYXRjaC1iaW5kaW5nIiAiXjcuOC4zIgog Ci0iQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1vcHRpb25hbC1jaGFpbmluZ0BeNy4xMy4xMiIsICJA YmFiZWwvcGx1Z2luLXByb3Bvc2FsLW9wdGlvbmFsLWNoYWluaW5nQF43LjE0LjIiOgotICB2ZXJz aW9uICI3LjE0LjIiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0Bi YWJlbC9wbHVnaW4tcHJvcG9zYWwtb3B0aW9uYWwtY2hhaW5pbmcvLS9wbHVnaW4tcHJvcG9zYWwt b3B0aW9uYWwtY2hhaW5pbmctNy4xNC4yLnRneiNkZjgxNzFhOGI5YzQzZWJmNGMxZGFiZTYzMTFi NDMyZDgzZTFiMzRlIgotICBpbnRlZ3JpdHkgc2hhNTEyLXFRQnlNUlB3TVpKYWluZmlnMTBCb2FE bGR4LytWRHROY3JBN3FkTmFFT0FqNlZYdWQrZ2Zya0E4ajRDUkFVNUhqbldSRVhxSXBTcEgzMHFa WDF4aXZBPT0KKyJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLW9wdGlvbmFsLWNoYWluaW5nQF43LjEz LjgiOgorICB2ZXJzaW9uICI3LjEzLjgiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tcHJvcG9zYWwtb3B0aW9uYWwtY2hhaW5pbmcvLS9wbHVn aW4tcHJvcG9zYWwtb3B0aW9uYWwtY2hhaW5pbmctNy4xMy44LnRneiNlMzlkZjkzZWZlN2U3ZTYy MTg0MWJhYmMxOTc5ODJlMTQwZTkwNzU2IgorICBpbnRlZ3JpdHkgc2hhNTEyLWhwYkJ3YlRnZDdD ejFRcnl2d0paUm8xVTBrMXE4dXlCbWVYT1NRVWpkZy9BMlRBU2toUi9yejdBeXFaL2tTOGticHNO QTgwck9ZYnh5U0JKQXFtaGhRPT0KICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvaGVscGVy LXBsdWdpbi11dGlscyIgIl43LjEzLjAiCiAgICAgIkBiYWJlbC9oZWxwZXItc2tpcC10cmFuc3Bh cmVudC1leHByZXNzaW9uLXdyYXBwZXJzIiAiXjcuMTIuMSIKQEAgLTM5OSwxNiArMzgyLDYgQEAK ICAgICAiQGJhYmVsL2hlbHBlci1jcmVhdGUtY2xhc3MtZmVhdHVyZXMtcGx1Z2luIiAiXjcuMTMu MCIKICAgICAiQGJhYmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xMy4wIgogCi0iQGJhYmVs L3BsdWdpbi1wcm9wb3NhbC1wcml2YXRlLXByb3BlcnR5LWluLW9iamVjdEBeNy4xNC4wIjoKLSAg dmVyc2lvbiAiNy4xNC4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9AYmFiZWwvcGx1Z2luLXByb3Bvc2FsLXByaXZhdGUtcHJvcGVydHktaW4tb2JqZWN0Ly0vcGx1 Z2luLXByb3Bvc2FsLXByaXZhdGUtcHJvcGVydHktaW4tb2JqZWN0LTcuMTQuMC50Z3ojYjFhMWYy MDMwNTg2YjlkMzQ4OWNjMjYxNzlkMmViNTg4MzI3NzYzNiIKLSAgaW50ZWdyaXR5IHNoYTUxMi01 OUFOZG1Fd3dSVWtMakI3Q1J0d0p4eHd0akVTdytYMkllUEl0QStSR1FoK295NVJtcENoL0V2VlZ2 aDVYUWMzeXhzbTVndHYwK2k5b0JaaGFETlZUZz09Ci0gIGRlcGVuZGVuY2llczoKLSAgICAiQGJh YmVsL2hlbHBlci1hbm5vdGF0ZS1hcy1wdXJlIiAiXjcuMTIuMTMiCi0gICAgIkBiYWJlbC9oZWxw ZXItY3JlYXRlLWNsYXNzLWZlYXR1cmVzLXBsdWdpbiIgIl43LjE0LjAiCi0gICAgIkBiYWJlbC9o ZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTMuMCIKLSAgICAiQGJhYmVsL3BsdWdpbi1zeW50YXgt cHJpdmF0ZS1wcm9wZXJ0eS1pbi1vYmplY3QiICJeNy4xNC4wIgotCiAiQGJhYmVsL3BsdWdpbi1w cm9wb3NhbC11bmljb2RlLXByb3BlcnR5LXJlZ2V4QF43LjEyLjEzIiwgIkBiYWJlbC9wbHVnaW4t cHJvcG9zYWwtdW5pY29kZS1wcm9wZXJ0eS1yZWdleEBeNy40LjQiOgogICB2ZXJzaW9uICI3LjEy LjEzIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1 Z2luLXByb3Bvc2FsLXVuaWNvZGUtcHJvcGVydHktcmVnZXgvLS9wbHVnaW4tcHJvcG9zYWwtdW5p Y29kZS1wcm9wZXJ0eS1yZWdleC03LjEyLjEzLnRneiNiZWJkZTUxMzM5YmU4MjljMTdhYWFhY2Vk MTg2NDFkZWI2MmIzOWJhIgpAQCAtNDMxLDEzICs0MDQsNiBAQAogICBkZXBlbmRlbmNpZXM6CiAg ICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTIuMTMiCiAKLSJAYmFiZWwvcGx1 Z2luLXN5bnRheC1jbGFzcy1zdGF0aWMtYmxvY2tAXjcuMTIuMTMiOgotICB2ZXJzaW9uICI3LjEy LjEzIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1 Z2luLXN5bnRheC1jbGFzcy1zdGF0aWMtYmxvY2svLS9wbHVnaW4tc3ludGF4LWNsYXNzLXN0YXRp Yy1ibG9jay03LjEyLjEzLnRneiM4ZTNkNjc0YjA2MTNlNjc5NzVjZWFjMjc3NmM5N2I2MGNhZmM1 YzljIgotICBpbnRlZ3JpdHkgc2hhNTEyLVptS1EwWlhSMG5ZcEhaSUl1ajl6RTdvSXFDeDJodzlU S2krbElvNzNOTnJNUEFaR0hmUzkyL1ZSVjBabVBqNkgyZmZCZ3lGSFh2SjVOWXNOZUVhUDJBPT0K LSAgZGVwZW5kZW5jaWVzOgotICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43LjEy LjEzIgotCiAiQGJhYmVsL3BsdWdpbi1zeW50YXgtZHluYW1pYy1pbXBvcnRAXjcuOC4zIjoKICAg dmVyc2lvbiAiNy44LjMiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L0BiYWJlbC9wbHVnaW4tc3ludGF4LWR5bmFtaWMtaW1wb3J0Ly0vcGx1Z2luLXN5bnRheC1keW5h bWljLWltcG9ydC03LjguMy50Z3ojNjJiZjk4YjJkYTNjZDIxZDYyNjE1NGZjOTZlZTViM2NiNjhl YWNiMyIKQEAgLTUwOCwxMyArNDc0LDYgQEAKICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwv aGVscGVyLXBsdWdpbi11dGlscyIgIl43LjguMCIKIAotIkBiYWJlbC9wbHVnaW4tc3ludGF4LXBy aXZhdGUtcHJvcGVydHktaW4tb2JqZWN0QF43LjE0LjAiOgotICB2ZXJzaW9uICI3LjE0LjAiCi0g IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tc3lu dGF4LXByaXZhdGUtcHJvcGVydHktaW4tb2JqZWN0Ly0vcGx1Z2luLXN5bnRheC1wcml2YXRlLXBy b3BlcnR5LWluLW9iamVjdC03LjE0LjAudGd6Izc2MmE0YmFiZWM2MTE3NmZlYzZjODg0ODBkZWM0 MDM3MmIxNDBjMGIiCi0gIGludGVncml0eSBzaGE1MTItYmRhM3hGOHdHbDUvNWJ0Rjc5NHV0Tk9M MEp3KzlqRTVDMXNMWmNvSzdjNHVvbkUveTNpUWl5RytLYmtGM1dCVi9wYVg1OFZDcGpoeExQa2Rq NUZlNHc9PQotICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxz IiAiXjcuMTMuMCIKLQogIkBiYWJlbC9wbHVnaW4tc3ludGF4LXRvcC1sZXZlbC1hd2FpdEBeNy4x Mi4xMyI6CiAgIHZlcnNpb24gIjcuMTIuMTMiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tc3ludGF4LXRvcC1sZXZlbC1hd2FpdC8tL3BsdWdp bi1zeW50YXgtdG9wLWxldmVsLWF3YWl0LTcuMTIuMTMudGd6I2M1ZjBmYTZlMjQ5ZjViNzM5NzI3 ZjkyMzU0MGNmN2E4MDYxMzAxNzgiCkBAIC01NDUsMjMgKzUwNCwyMyBAQAogICBkZXBlbmRlbmNp ZXM6CiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTIuMTMiCiAKLSJAYmFi ZWwvcGx1Z2luLXRyYW5zZm9ybS1ibG9jay1zY29waW5nQF43LjE0LjIiOgorIkBiYWJlbC9wbHVn aW4tdHJhbnNmb3JtLWJsb2NrLXNjb3BpbmdAXjcuMTIuMTMiOgogICB2ZXJzaW9uICI3LjE0LjIi CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4t dHJhbnNmb3JtLWJsb2NrLXNjb3BpbmcvLS9wbHVnaW4tdHJhbnNmb3JtLWJsb2NrLXNjb3Bpbmct Ny4xNC4yLnRneiM3NjFjYjEyYWI1YTg4ZDY0MGFkNGFmNGFhODFmODIwZTZiNWZkZjVjIgogICBp bnRlZ3JpdHkgc2hhNTEyLW5lWlpjUDE5TnVnWlpxTndNVEgrS29Cang1V3l2RVNQU0lPUWI0Skhw ZmQrelBmcWNINjVSTXU1eEpqdTUrNnEvWTJWellybGVRVHIrYjZNRVR5eXhnPT0KICAgZGVwZW5k ZW5jaWVzOgogICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43LjEzLjAiCiAKLSJA YmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1jbGFzc2VzQF43LjE0LjIiOgotICB2ZXJzaW9uICI3LjE0 LjIiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVn aW4tdHJhbnNmb3JtLWNsYXNzZXMvLS9wbHVnaW4tdHJhbnNmb3JtLWNsYXNzZXMtNy4xNC4yLnRn eiMzZjExOTZjNTcwOWYwNjRjMjUyYWQwNTYyMDdkODdiN2FlYjJkMDNkIgotICBpbnRlZ3JpdHkg c2hhNTEyLTdvYWZBVmN1Y0hxdUEvVlpDc1h2L2dtdWlIZVlkNjRVSnl5VFlVK01QZk51MEtlTmx4 dzA2SWVFTkJPOGJKalhWYm9sdStqMU1NNWFLUXRIMU9NQ05nPT0KKyJAYmFiZWwvcGx1Z2luLXRy YW5zZm9ybS1jbGFzc2VzQF43LjEzLjAiOgorICB2ZXJzaW9uICI3LjEzLjAiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWNs YXNzZXMvLS9wbHVnaW4tdHJhbnNmb3JtLWNsYXNzZXMtNy4xMy4wLnRneiMwMjY1MTU1MDc1YzQy OTE4YmY0ZDNhNDA1MzEzNDE3NmFkOWI1MzNiIgorICBpbnRlZ3JpdHkgc2hhNTEyLTlCdEhDUFVB UnlWSDFvWEdjU0pEM1lwc3FSTFJPSng1Wk5QNnRONXZuazE3TjBTVmY5V0N0ZjhOdWgxQ0ZtZ0J5 S0tBSU1zdGl0S2R1b0Ntc2FESzVnPT0KICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvaGVs cGVyLWFubm90YXRlLWFzLXB1cmUiICJeNy4xMi4xMyIKLSAgICAiQGJhYmVsL2hlbHBlci1mdW5j dGlvbi1uYW1lIiAiXjcuMTQuMiIKKyAgICAiQGJhYmVsL2hlbHBlci1mdW5jdGlvbi1uYW1lIiAi XjcuMTIuMTMiCiAgICAgIkBiYWJlbC9oZWxwZXItb3B0aW1pc2UtY2FsbC1leHByZXNzaW9uIiAi XjcuMTIuMTMiCiAgICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTMuMCIKLSAg ICAiQGJhYmVsL2hlbHBlci1yZXBsYWNlLXN1cGVycyIgIl43LjEzLjEyIgorICAgICJAYmFiZWwv aGVscGVyLXJlcGxhY2Utc3VwZXJzIiAiXjcuMTMuMCIKICAgICAiQGJhYmVsL2hlbHBlci1zcGxp dC1leHBvcnQtZGVjbGFyYXRpb24iICJeNy4xMi4xMyIKICAgICBnbG9iYWxzICJeMTEuMS4wIgog CkBAIC01NzIsMTAgKzUzMSwxMCBAQAogICBkZXBlbmRlbmNpZXM6CiAgICAgIkBiYWJlbC9oZWxw ZXItcGx1Z2luLXV0aWxzIiAiXjcuMTMuMCIKIAotIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWRl c3RydWN0dXJpbmdAXjcuMTMuMTciOgotICB2ZXJzaW9uICI3LjEzLjE3IgotICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1kZXN0 cnVjdHVyaW5nLy0vcGx1Z2luLXRyYW5zZm9ybS1kZXN0cnVjdHVyaW5nLTcuMTMuMTcudGd6IzY3 OGQ5NjU3NjYzOGMxOWQ1YjM2YjMzMjUwNGQzZmQ2ZTA2ZGVhMjciCi0gIGludGVncml0eSBzaGE1 MTItVUFVcWlMdit1UkxPK3h1QktLTUVwQyt0N1lSTlZScUJzV1dxMXlLWGJCWkJqZS90M0lYQ2lT aW5aaGpuL0RDM3F6QmZJQ2VZZDJFRkdFYkhzaDVSTEE9PQorIkBiYWJlbC9wbHVnaW4tdHJhbnNm b3JtLWRlc3RydWN0dXJpbmdAXjcuMTMuMCI6CisgIHZlcnNpb24gIjcuMTMuMCIKKyAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0t ZGVzdHJ1Y3R1cmluZy8tL3BsdWdpbi10cmFuc2Zvcm0tZGVzdHJ1Y3R1cmluZy03LjEzLjAudGd6 I2M1ZGNlMjcwMDE0ZDRlMWViYjFkODA2MTE2Njk0YzEyYjcwMjg5NjMiCisgIGludGVncml0eSBz aGE1MTItenltNWVtN3RlUG9OVDlzOTY0YzAvS1UzSlBQbnVxN1ZoSXhQUmVmSjQvczgyY0QrcTFt Z0tmdUdSRE1DUEwwSFR5S3o0ZElTdVFsQ3VzZmdDSjg2SEE9PQogICBkZXBlbmRlbmNpZXM6CiAg ICAgIkBiYWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTMuMCIKIApAQCAtNjMxLDIzICs1 OTAsMjMgQEAKICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGls cyIgIl43LjEyLjEzIgogCi0iQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbW9kdWxlcy1hbWRAXjcu MTQuMiI6Ci0gIHZlcnNpb24gIjcuMTQuMiIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbW9kdWxlcy1hbWQvLS9wbHVnaW4t dHJhbnNmb3JtLW1vZHVsZXMtYW1kLTcuMTQuMi50Z3ojNjYyMjgwNmZlMWE3YzA3YTEzODg0NDQy MjJlZjk1MzVmMmNhMTdiMCIKLSAgaW50ZWdyaXR5IHNoYTUxMi1oUEM2WEJzd3Q4UDNHMkQxdFNW Mkh6ZEt2a3FPcG1ieW95K2c3M0pHMHFsRi9xeDJ5M0thTW1YYjFmTHJwbVdHTFpZQTBvakN2YUhk ekZXamxtVitQdz09CisiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbW9kdWxlcy1hbWRAXjcuMTMu MCI6CisgIHZlcnNpb24gIjcuMTMuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbW9kdWxlcy1hbWQvLS9wbHVnaW4tdHJh bnNmb3JtLW1vZHVsZXMtYW1kLTcuMTMuMC50Z3ojMTlmNTExZDYwZTNkODc1M2NjNWE2ZDRlNzc1 ZDNhNTE4NDg2NmNjMyIKKyAgaW50ZWdyaXR5IHNoYTUxMi1FS3kvRTJOSGhZLzZWdzVkMWszcmdv b2JmdGNOVW1wOWZHamI5WFp3UUx0VGN0c1JCT1RSTzdSSEh4ZklreTFvZ01ONUJ4TjdwOXVNQTNT elBmb3RNUT09CiAgIGRlcGVuZGVuY2llczoKLSAgICAiQGJhYmVsL2hlbHBlci1tb2R1bGUtdHJh bnNmb3JtcyIgIl43LjE0LjIiCisgICAgIkBiYWJlbC9oZWxwZXItbW9kdWxlLXRyYW5zZm9ybXMi ICJeNy4xMy4wIgogICAgICJAYmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43LjEzLjAiCiAg ICAgYmFiZWwtcGx1Z2luLWR5bmFtaWMtaW1wb3J0LW5vZGUgIl4yLjMuMyIKIAotIkBiYWJlbC9w bHVnaW4tdHJhbnNmb3JtLW1vZHVsZXMtY29tbW9uanNAXjcuMTQuMCI6Ci0gIHZlcnNpb24gIjcu MTQuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3Bs dWdpbi10cmFuc2Zvcm0tbW9kdWxlcy1jb21tb25qcy8tL3BsdWdpbi10cmFuc2Zvcm0tbW9kdWxl cy1jb21tb25qcy03LjE0LjAudGd6IzUyYmMxOTljYjU4MWUwOTkyZWRiYTBmMGY4MDM1NjQ2NzU4 N2YxNjEiCi0gIGludGVncml0eSBzaGE1MTItRVg0UWVQbHNUYVJaUW13OUJzb1BleWg1T0N0UkdJ aHdmTHF1aHhHcDVlMzJ3K2R5TDhodE9jRHdhbWxpdG1ORks2eEJaWWx5Z2pkeWU5ZGJkOXJVbFE9 PQorIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW1vZHVsZXMtY29tbW9uanNAXjcuMTMuOCI6Cisg IHZlcnNpb24gIjcuMTMuOCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbW9kdWxlcy1jb21tb25qcy8tL3BsdWdpbi10cmFu c2Zvcm0tbW9kdWxlcy1jb21tb25qcy03LjEzLjgudGd6IzdiMDFhZDdjMmRjZjIyNzViMDZmYTE3 ODFlMDBkMTNkNDIwYjNlMWIiCisgIGludGVncml0eSBzaGE1MTItOVFpT3g0TUVHZ2xmWVo0WE9u VTc5T0hyNnZJV1Vha0lqOWI0bWlvTjhlUUlvRWgrcGY1cC96RUIzNkpwREZXQTEybk5NaVJmN2Jm b1J2bDlSbjc5Qnc9PQogICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJlbC9oZWxwZXItbW9kdWxl LXRyYW5zZm9ybXMiICJeNy4xNC4wIgorICAgICJAYmFiZWwvaGVscGVyLW1vZHVsZS10cmFuc2Zv cm1zIiAiXjcuMTMuMCIKICAgICAiQGJhYmVsL2hlbHBlci1wbHVnaW4tdXRpbHMiICJeNy4xMy4w IgotICAgICJAYmFiZWwvaGVscGVyLXNpbXBsZS1hY2Nlc3MiICJeNy4xMy4xMiIKKyAgICAiQGJh YmVsL2hlbHBlci1zaW1wbGUtYWNjZXNzIiAiXjcuMTIuMTMiCiAgICAgYmFiZWwtcGx1Z2luLWR5 bmFtaWMtaW1wb3J0LW5vZGUgIl4yLjMuMyIKIAogIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW1v ZHVsZXMtc3lzdGVtanNAXjcuMTMuOCI6CkBAIC02NjEsMTIgKzYyMCwxMiBAQAogICAgICJAYmFi ZWwvaGVscGVyLXZhbGlkYXRvci1pZGVudGlmaWVyIiAiXjcuMTIuMTEiCiAgICAgYmFiZWwtcGx1 Z2luLWR5bmFtaWMtaW1wb3J0LW5vZGUgIl4yLjMuMyIKIAotIkBiYWJlbC9wbHVnaW4tdHJhbnNm b3JtLW1vZHVsZXMtdW1kQF43LjE0LjAiOgotICB2ZXJzaW9uICI3LjE0LjAiCi0gIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW1v ZHVsZXMtdW1kLy0vcGx1Z2luLXRyYW5zZm9ybS1tb2R1bGVzLXVtZC03LjE0LjAudGd6IzJmODE3 OWQxYmJjOTI2MzY2NWNlNGE2NWYzMDU1MjZiMmVhOGFjMzQiCi0gIGludGVncml0eSBzaGE1MTIt blBaZG5XdFhYZVk3STg3VVpyOVZsc1dtZTNZMGNmRkZFNDFXYnh6NGJiYWV4QWpOTUluWFBGVXBS UlVKOE5vTW0wQ3crenhicWpkUG1MaGNqZmF6TXc9PQorIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3Jt LW1vZHVsZXMtdW1kQF43LjEzLjAiOgorICB2ZXJzaW9uICI3LjEzLjAiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW1vZHVs ZXMtdW1kLy0vcGx1Z2luLXRyYW5zZm9ybS1tb2R1bGVzLXVtZC03LjEzLjAudGd6IzhhM2Q5NmE5 N2QxOTk3MDViOWZkMDIxNTgwMDgyYWY4MWMwNmU3MGIiCisgIGludGVncml0eSBzaGE1MTItRC9J THpBaDZ1eXZrV2pLS3lGRS9XMEZ6V3dhc3Y2dlBUU3FQY2p4RnFuNlFwWDN1OERqUlZsaXE0RjJC YW1PMldlZS9vbTA2Vnl5K3ZQa05yZDR3eHc9PQogICBkZXBlbmRlbmNpZXM6Ci0gICAgIkBiYWJl bC9oZWxwZXItbW9kdWxlLXRyYW5zZm9ybXMiICJeNy4xNC4wIgorICAgICJAYmFiZWwvaGVscGVy LW1vZHVsZS10cmFuc2Zvcm1zIiAiXjcuMTMuMCIKICAgICAiQGJhYmVsL2hlbHBlci1wbHVnaW4t dXRpbHMiICJeNy4xMy4wIgogCiAiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbmFtZWQtY2FwdHVy aW5nLWdyb3Vwcy1yZWdleEBeNy4xMi4xMyI6CkBAIC02OTEsMTAgKzY1MCwxMCBAQAogICAgICJA YmFiZWwvaGVscGVyLXBsdWdpbi11dGlscyIgIl43LjEyLjEzIgogICAgICJAYmFiZWwvaGVscGVy LXJlcGxhY2Utc3VwZXJzIiAiXjcuMTIuMTMiCiAKLSJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1w YXJhbWV0ZXJzQF43LjE0LjIiOgotICB2ZXJzaW9uICI3LjE0LjIiCi0gIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXBhcmFtZXRl cnMvLS9wbHVnaW4tdHJhbnNmb3JtLXBhcmFtZXRlcnMtNy4xNC4yLnRneiNlNDI5MGY3MmUwZTll ODMxMDAwZDA2NjQyN2M0NjY3MDk4ZGVjYzMxIgotICBpbnRlZ3JpdHkgc2hhNTEyLU54b1ZtQTNB UE5DQzFKZE1Ya2RZWHVRUytFTWRxeTB2SXd5REhlS0hpSktSeG1wMXFHU2RiMEpMRUlvUFJoa3g2 SC84UWkzUkozdXFPQ1l3OGdpeTlBPT0KKyJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1wYXJhbWV0 ZXJzQF43LjEzLjAiOgorICB2ZXJzaW9uICI3LjEzLjAiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXBhcmFtZXRlcnMvLS9w bHVnaW4tdHJhbnNmb3JtLXBhcmFtZXRlcnMtNy4xMy4wLnRneiM4ZmE3NjAzZTMwOTdmOWMwYjdj YTFhNDgyMWJjMmZiNTJlOWU1MDA3IgorICBpbnRlZ3JpdHkgc2hhNTEyLUp0OGsvaC9tSXdFMkpG RU9iM2xVUm9ZNUM4NUVUY1lQbmJ1QUo5NnpSQnpoMVhIdFFaZnM2MkNoWjZFUDIyUWxDOGM3WHFy OXErZTFTVTVxdHR3d2p3PT0KICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvaGVscGVyLXBs dWdpbi11dGlscyIgIl43LjEzLjAiCiAKQEAgLTcxOSwxNiArNjc4LDI3IEBACiAgIGRlcGVuZGVu Y2llczoKICAgICAiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tcmVhY3QtanN4IiAiXjcuMTIuMTci CiAKLSJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1yZWFjdC1qc3hAXjcuMTIuMTciLCAiQGJhYmVs L3BsdWdpbi10cmFuc2Zvcm0tcmVhY3QtanN4QF43LjEzLjEyIjoKLSAgdmVyc2lvbiAiNy4xNC4z IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcGx1Z2lu LXRyYW5zZm9ybS1yZWFjdC1qc3gvLS9wbHVnaW4tdHJhbnNmb3JtLXJlYWN0LWpzeC03LjE0LjMu dGd6IzBlMjY1OTc4MDVjZjA4NjJkYTczNWYyNjQ1NTA5MzNjMzhiYWJiNjYiCi0gIGludGVncml0 eSBzaGE1MTItdXV4dW9VTlZoZGdZekVSaUhIRmtFNGRXb0p4K1VGVnl1QWwwYXFOOFAyL0FLRkh3 cWdVQzV3Mis0L1BqcEtYSnNGZ0JsWUFGWGxVbURRM2szRFVrWHc9PQorIkBiYWJlbC9wbHVnaW4t dHJhbnNmb3JtLXJlYWN0LWpzeEBeNy4xMi4xNyI6CisgIHZlcnNpb24gIjcuMTIuMTciCisgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNm b3JtLXJlYWN0LWpzeC8tL3BsdWdpbi10cmFuc2Zvcm0tcmVhY3QtanN4LTcuMTIuMTcudGd6I2Rk MmMxMjk5ZjVlMjZkZTU4NDkzOTg5MmRlM2NmYzE4MDdhMzhmMjQiCisgIGludGVncml0eSBzaGE1 MTItbXdhVk5jWFYrbDZxSk91UmhwZFRFajhzVC9aMG93QVZXZjlRdWpUWjBkMnllOVgvSytNVE9U U2l6Y2dLT2oxOFBHblRjLzdnMUk0K2NJVWpzS2hCY3c9PQorICBkZXBlbmRlbmNpZXM6CisgICAg IkBiYWJlbC9oZWxwZXItYW5ub3RhdGUtYXMtcHVyZSIgIl43LjEyLjEzIgorICAgICJAYmFiZWwv aGVscGVyLW1vZHVsZS1pbXBvcnRzIiAiXjcuMTIuMTMiCisgICAgIkBiYWJlbC9oZWxwZXItcGx1 Z2luLXV0aWxzIiAiXjcuMTIuMTMiCisgICAgIkBiYWJlbC9wbHVnaW4tc3ludGF4LWpzeCIgIl43 LjEyLjEzIgorICAgICJAYmFiZWwvdHlwZXMiICJeNy4xMi4xNyIKKworIkBiYWJlbC9wbHVnaW4t dHJhbnNmb3JtLXJlYWN0LWpzeEBeNy4xMy4xMiI6CisgIHZlcnNpb24gIjcuMTMuMTIiCisgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNm b3JtLXJlYWN0LWpzeC8tL3BsdWdpbi10cmFuc2Zvcm0tcmVhY3QtanN4LTcuMTMuMTIudGd6IzFk ZjVkZmFmMGY0Yjc4NGI0M2U5NmRhNmYyOGQ2MzBlNzc1ZjY4YjMiCisgIGludGVncml0eSBzaGE1 MTItamNFSTJVcUljcENxQjVVNURSeElsMHRRRVByb0kyZ2N1K2c4VlRJcXhMTzVJaWRvamI0ZDc3 cStmd0dzZUN2ZDhhZi9sSjltYXNwNFFXekJYRkUyeEE9PQogICBkZXBlbmRlbmNpZXM6CiAgICAg IkBiYWJlbC9oZWxwZXItYW5ub3RhdGUtYXMtcHVyZSIgIl43LjEyLjEzIgogICAgICJAYmFiZWwv aGVscGVyLW1vZHVsZS1pbXBvcnRzIiAiXjcuMTMuMTIiCiAgICAgIkBiYWJlbC9oZWxwZXItcGx1 Z2luLXV0aWxzIiAiXjcuMTMuMCIKICAgICAiQGJhYmVsL3BsdWdpbi1zeW50YXgtanN4IiAiXjcu MTIuMTMiCi0gICAgIkBiYWJlbC90eXBlcyIgIl43LjE0LjIiCisgICAgIkBiYWJlbC90eXBlcyIg Il43LjEzLjEyIgogCiAiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tcmVhY3QtcHVyZS1hbm5vdGF0 aW9uc0BeNy4xMi4xIjoKICAgdmVyc2lvbiAiNy4xMi4xIgpAQCAtNzM4LDcgKzcwOCw3IEBACiAg ICAgIkBiYWJlbC9oZWxwZXItYW5ub3RhdGUtYXMtcHVyZSIgIl43LjEwLjQiCiAgICAgIkBiYWJl bC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTAuNCIKIAotIkBiYWJlbC9wbHVnaW4tdHJhbnNm b3JtLXJlZ2VuZXJhdG9yQF43LjEzLjE1IjoKKyJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1yZWdl bmVyYXRvckBeNy4xMi4xMyI6CiAgIHZlcnNpb24gIjcuMTMuMTUiCiAgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJlZ2VuZXJh dG9yLy0vcGx1Z2luLXRyYW5zZm9ybS1yZWdlbmVyYXRvci03LjEzLjE1LnRneiNlNWViMjg5NDVi ZjhiNjU2M2U3ZjgxODk0NWY5NjZhOGQyOTk3ZjM5IgogICBpbnRlZ3JpdHkgc2hhNTEyLUJrOWNP TFN6OERpdXJjTUVUWjhFMll0SVZKYkZDUEdXMjhESldVYWtteVZXdFFTbTZXc2YwcDRCNEJmRXIv ZUwyTmtoZS9DSUNpVWlNT0NpMVRQaHVRPT0KQEAgLTgwNCwzMyArNzc0LDI5IEBACiAgICAgIkBi YWJlbC9oZWxwZXItcGx1Z2luLXV0aWxzIiAiXjcuMTIuMTMiCiAKICJAYmFiZWwvcHJlc2V0LWVu dkBeNy4xMC4yIjoKLSAgdmVyc2lvbiAiNy4xNC4yIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcHJlc2V0LWVudi8tL3ByZXNldC1lbnYtNy4xNC4yLnRn eiNlODA2MTI5NjVkYTczNTc5Yzg0YWQyZjk2M2MyMzU5YzcxNTI0ZWQ1IgotICBpbnRlZ3JpdHkg c2hhNTEyLTdkRDdsVlQ4R01yRTczdjRsdkRFYjg1Y2djUWhkRVM5MUJTRDdqUy94akM2UVk4UG5S aHV4MzVhYytHQ3BiaVJocDhjcmV4QnZaWnFuYUw2VnJZOFRRPT0KKyAgdmVyc2lvbiAiNy4xMy45 IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AYmFiZWwvcHJlc2V0 LWVudi8tL3ByZXNldC1lbnYtNy4xMy45LnRneiMzZWU1ZjIzMzMxNmIxMGQwNjZkN2YzNzljNmQx ZTEzYTk2ODUzNjU0IgorICBpbnRlZ3JpdHkgc2hhNTEyLW1jc0hVbGgyckloVmlxTUc4MjNKcHNj TE1lc1J0M1FiTXN2MStqaG9wWEViM1cyd1h2UTlRb2lPbFpJOVpiUjNYcVB0YUZwWndFWktZcUdK bkdNWlRRPT0KICAgZGVwZW5kZW5jaWVzOgotICAgICJAYmFiZWwvY29tcGF0LWRhdGEiICJeNy4x NC4wIgotICAgICJAYmFiZWwvaGVscGVyLWNvbXBpbGF0aW9uLXRhcmdldHMiICJeNy4xMy4xNiIK KyAgICAiQGJhYmVsL2NvbXBhdC1kYXRhIiAiXjcuMTMuOCIKKyAgICAiQGJhYmVsL2hlbHBlci1j b21waWxhdGlvbi10YXJnZXRzIiAiXjcuMTMuOCIKICAgICAiQGJhYmVsL2hlbHBlci1wbHVnaW4t dXRpbHMiICJeNy4xMy4wIgogICAgICJAYmFiZWwvaGVscGVyLXZhbGlkYXRvci1vcHRpb24iICJe Ny4xMi4xNyIKLSAgICAiQGJhYmVsL3BsdWdpbi1idWdmaXgtdjgtc3ByZWFkLXBhcmFtZXRlcnMt aW4tb3B0aW9uYWwtY2hhaW5pbmciICJeNy4xMy4xMiIKLSAgICAiQGJhYmVsL3BsdWdpbi1wcm9w b3NhbC1hc3luYy1nZW5lcmF0b3ItZnVuY3Rpb25zIiAiXjcuMTQuMiIKKyAgICAiQGJhYmVsL3Bs dWdpbi1wcm9wb3NhbC1hc3luYy1nZW5lcmF0b3ItZnVuY3Rpb25zIiAiXjcuMTMuOCIKICAgICAi QGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1jbGFzcy1wcm9wZXJ0aWVzIiAiXjcuMTMuMCIKLSAgICAi QGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1jbGFzcy1zdGF0aWMtYmxvY2siICJeNy4xMy4xMSIKLSAg ICAiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1keW5hbWljLWltcG9ydCIgIl43LjE0LjIiCi0gICAg IkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtZXhwb3J0LW5hbWVzcGFjZS1mcm9tIiAiXjcuMTQuMiIK LSAgICAiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1qc29uLXN0cmluZ3MiICJeNy4xNC4yIgotICAg ICJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLWxvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnMiICJe Ny4xNC4yIgotICAgICJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLW51bGxpc2gtY29hbGVzY2luZy1v cGVyYXRvciIgIl43LjE0LjIiCi0gICAgIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtbnVtZXJpYy1z ZXBhcmF0b3IiICJeNy4xNC4yIgotICAgICJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLW9iamVjdC1y ZXN0LXNwcmVhZCIgIl43LjE0LjIiCi0gICAgIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtb3B0aW9u YWwtY2F0Y2gtYmluZGluZyIgIl43LjE0LjIiCi0gICAgIkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwt b3B0aW9uYWwtY2hhaW5pbmciICJeNy4xNC4yIgorICAgICJAYmFiZWwvcGx1Z2luLXByb3Bvc2Fs LWR5bmFtaWMtaW1wb3J0IiAiXjcuMTMuOCIKKyAgICAiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1l eHBvcnQtbmFtZXNwYWNlLWZyb20iICJeNy4xMi4xMyIKKyAgICAiQGJhYmVsL3BsdWdpbi1wcm9w b3NhbC1qc29uLXN0cmluZ3MiICJeNy4xMy44IgorICAgICJAYmFiZWwvcGx1Z2luLXByb3Bvc2Fs LWxvZ2ljYWwtYXNzaWdubWVudC1vcGVyYXRvcnMiICJeNy4xMy44IgorICAgICJAYmFiZWwvcGx1 Z2luLXByb3Bvc2FsLW51bGxpc2gtY29hbGVzY2luZy1vcGVyYXRvciIgIl43LjEzLjgiCisgICAg IkBiYWJlbC9wbHVnaW4tcHJvcG9zYWwtbnVtZXJpYy1zZXBhcmF0b3IiICJeNy4xMi4xMyIKKyAg ICAiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1vYmplY3QtcmVzdC1zcHJlYWQiICJeNy4xMy44Igor ICAgICJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLW9wdGlvbmFsLWNhdGNoLWJpbmRpbmciICJeNy4x My44IgorICAgICJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLW9wdGlvbmFsLWNoYWluaW5nIiAiXjcu MTMuOCIKICAgICAiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC1wcml2YXRlLW1ldGhvZHMiICJeNy4x My4wIgotICAgICJAYmFiZWwvcGx1Z2luLXByb3Bvc2FsLXByaXZhdGUtcHJvcGVydHktaW4tb2Jq ZWN0IiAiXjcuMTQuMCIKICAgICAiQGJhYmVsL3BsdWdpbi1wcm9wb3NhbC11bmljb2RlLXByb3Bl cnR5LXJlZ2V4IiAiXjcuMTIuMTMiCiAgICAgIkBiYWJlbC9wbHVnaW4tc3ludGF4LWFzeW5jLWdl bmVyYXRvcnMiICJeNy44LjQiCiAgICAgIkBiYWJlbC9wbHVnaW4tc3ludGF4LWNsYXNzLXByb3Bl cnRpZXMiICJeNy4xMi4xMyIKLSAgICAiQGJhYmVsL3BsdWdpbi1zeW50YXgtY2xhc3Mtc3RhdGlj LWJsb2NrIiAiXjcuMTIuMTMiCiAgICAgIkBiYWJlbC9wbHVnaW4tc3ludGF4LWR5bmFtaWMtaW1w b3J0IiAiXjcuOC4zIgogICAgICJAYmFiZWwvcGx1Z2luLXN5bnRheC1leHBvcnQtbmFtZXNwYWNl LWZyb20iICJeNy44LjMiCiAgICAgIkBiYWJlbC9wbHVnaW4tc3ludGF4LWpzb24tc3RyaW5ncyIg Il43LjguMyIKQEAgLTg0MCwxNSArODA2LDE0IEBACiAgICAgIkBiYWJlbC9wbHVnaW4tc3ludGF4 LW9iamVjdC1yZXN0LXNwcmVhZCIgIl43LjguMyIKICAgICAiQGJhYmVsL3BsdWdpbi1zeW50YXgt b3B0aW9uYWwtY2F0Y2gtYmluZGluZyIgIl43LjguMyIKICAgICAiQGJhYmVsL3BsdWdpbi1zeW50 YXgtb3B0aW9uYWwtY2hhaW5pbmciICJeNy44LjMiCi0gICAgIkBiYWJlbC9wbHVnaW4tc3ludGF4 LXByaXZhdGUtcHJvcGVydHktaW4tb2JqZWN0IiAiXjcuMTQuMCIKICAgICAiQGJhYmVsL3BsdWdp bi1zeW50YXgtdG9wLWxldmVsLWF3YWl0IiAiXjcuMTIuMTMiCiAgICAgIkBiYWJlbC9wbHVnaW4t dHJhbnNmb3JtLWFycm93LWZ1bmN0aW9ucyIgIl43LjEzLjAiCiAgICAgIkBiYWJlbC9wbHVnaW4t dHJhbnNmb3JtLWFzeW5jLXRvLWdlbmVyYXRvciIgIl43LjEzLjAiCiAgICAgIkBiYWJlbC9wbHVn aW4tdHJhbnNmb3JtLWJsb2NrLXNjb3BlZC1mdW5jdGlvbnMiICJeNy4xMi4xMyIKLSAgICAiQGJh YmVsL3BsdWdpbi10cmFuc2Zvcm0tYmxvY2stc2NvcGluZyIgIl43LjE0LjIiCi0gICAgIkBiYWJl bC9wbHVnaW4tdHJhbnNmb3JtLWNsYXNzZXMiICJeNy4xNC4yIgorICAgICJAYmFiZWwvcGx1Z2lu LXRyYW5zZm9ybS1ibG9jay1zY29waW5nIiAiXjcuMTIuMTMiCisgICAgIkBiYWJlbC9wbHVnaW4t dHJhbnNmb3JtLWNsYXNzZXMiICJeNy4xMy4wIgogICAgICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9y bS1jb21wdXRlZC1wcm9wZXJ0aWVzIiAiXjcuMTMuMCIKLSAgICAiQGJhYmVsL3BsdWdpbi10cmFu c2Zvcm0tZGVzdHJ1Y3R1cmluZyIgIl43LjEzLjE3IgorICAgICJAYmFiZWwvcGx1Z2luLXRyYW5z Zm9ybS1kZXN0cnVjdHVyaW5nIiAiXjcuMTMuMCIKICAgICAiQGJhYmVsL3BsdWdpbi10cmFuc2Zv cm0tZG90YWxsLXJlZ2V4IiAiXjcuMTIuMTMiCiAgICAgIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3Jt LWR1cGxpY2F0ZS1rZXlzIiAiXjcuMTIuMTMiCiAgICAgIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3Jt LWV4cG9uZW50aWF0aW9uLW9wZXJhdG9yIiAiXjcuMTIuMTMiCkBAIC04NTYsMTYgKzgyMSwxNiBA QAogICAgICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1mdW5jdGlvbi1uYW1lIiAiXjcuMTIuMTMi CiAgICAgIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLWxpdGVyYWxzIiAiXjcuMTIuMTMiCiAgICAg IkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW1lbWJlci1leHByZXNzaW9uLWxpdGVyYWxzIiAiXjcu MTIuMTMiCi0gICAgIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW1vZHVsZXMtYW1kIiAiXjcuMTQu MiIKLSAgICAiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbW9kdWxlcy1jb21tb25qcyIgIl43LjE0 LjAiCisgICAgIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW1vZHVsZXMtYW1kIiAiXjcuMTMuMCIK KyAgICAiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbW9kdWxlcy1jb21tb25qcyIgIl43LjEzLjgi CiAgICAgIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW1vZHVsZXMtc3lzdGVtanMiICJeNy4xMy44 IgotICAgICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1tb2R1bGVzLXVtZCIgIl43LjE0LjAiCisg ICAgIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW1vZHVsZXMtdW1kIiAiXjcuMTMuMCIKICAgICAi QGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tbmFtZWQtY2FwdHVyaW5nLWdyb3Vwcy1yZWdleCIgIl43 LjEyLjEzIgogICAgICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1uZXctdGFyZ2V0IiAiXjcuMTIu MTMiCiAgICAgIkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLW9iamVjdC1zdXBlciIgIl43LjEyLjEz IgotICAgICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1wYXJhbWV0ZXJzIiAiXjcuMTQuMiIKKyAg ICAiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tcGFyYW1ldGVycyIgIl43LjEzLjAiCiAgICAgIkBi YWJlbC9wbHVnaW4tdHJhbnNmb3JtLXByb3BlcnR5LWxpdGVyYWxzIiAiXjcuMTIuMTMiCi0gICAg IkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJlZ2VuZXJhdG9yIiAiXjcuMTMuMTUiCisgICAgIkBi YWJlbC9wbHVnaW4tdHJhbnNmb3JtLXJlZ2VuZXJhdG9yIiAiXjcuMTIuMTMiCiAgICAgIkBiYWJl bC9wbHVnaW4tdHJhbnNmb3JtLXJlc2VydmVkLXdvcmRzIiAiXjcuMTIuMTMiCiAgICAgIkBiYWJl bC9wbHVnaW4tdHJhbnNmb3JtLXNob3J0aGFuZC1wcm9wZXJ0aWVzIiAiXjcuMTIuMTMiCiAgICAg IkBiYWJlbC9wbHVnaW4tdHJhbnNmb3JtLXNwcmVhZCIgIl43LjEzLjAiCkBAIC04NzUsMTAgKzg0 MCwxMCBAQAogICAgICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS11bmljb2RlLWVzY2FwZXMiICJe Ny4xMi4xMyIKICAgICAiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tdW5pY29kZS1yZWdleCIgIl43 LjEyLjEzIgogICAgICJAYmFiZWwvcHJlc2V0LW1vZHVsZXMiICJeMC4xLjQiCi0gICAgIkBiYWJl bC90eXBlcyIgIl43LjE0LjIiCi0gICAgYmFiZWwtcGx1Z2luLXBvbHlmaWxsLWNvcmVqczIgIl4w LjIuMCIKLSAgICBiYWJlbC1wbHVnaW4tcG9seWZpbGwtY29yZWpzMyAiXjAuMi4wIgotICAgIGJh YmVsLXBsdWdpbi1wb2x5ZmlsbC1yZWdlbmVyYXRvciAiXjAuMi4wIgorICAgICJAYmFiZWwvdHlw ZXMiICJeNy4xMy4wIgorICAgIGJhYmVsLXBsdWdpbi1wb2x5ZmlsbC1jb3JlanMyICJeMC4xLjQi CisgICAgYmFiZWwtcGx1Z2luLXBvbHlmaWxsLWNvcmVqczMgIl4wLjEuMyIKKyAgICBiYWJlbC1w bHVnaW4tcG9seWZpbGwtcmVnZW5lcmF0b3IgIl4wLjEuMiIKICAgICBjb3JlLWpzLWNvbXBhdCAi XjMuOS4wIgogICAgIHNlbXZlciAiXjYuMy4wIgogCkBAIC05MDUsMTMgKzg3MCwyMCBAQAogICAg ICJAYmFiZWwvcGx1Z2luLXRyYW5zZm9ybS1yZWFjdC1qc3gtZGV2ZWxvcG1lbnQiICJeNy4xMi4x NyIKICAgICAiQGJhYmVsL3BsdWdpbi10cmFuc2Zvcm0tcmVhY3QtcHVyZS1hbm5vdGF0aW9ucyIg Il43LjEyLjEiCiAKLSJAYmFiZWwvcnVudGltZUBeNy4xMy4xMCIsICJAYmFiZWwvcnVudGltZUBe Ny41LjUiLCAiQGJhYmVsL3J1bnRpbWVAXjcuNy4yIiwgIkBiYWJlbC9ydW50aW1lQF43LjguNCI6 CisiQGJhYmVsL3J1bnRpbWVAXjcuMTIuMCIsICJAYmFiZWwvcnVudGltZUBeNy4xMy4xMCI6CiAg IHZlcnNpb24gIjcuMTQuMCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vQGJhYmVsL3J1bnRpbWUvLS9ydW50aW1lLTcuMTQuMC50Z3ojNDY3OTRiYzIwYjYxMmM1Zjc1 ZTYyZGQwNzFlMjRkZmQ5NWYxY2JlNiIKICAgaW50ZWdyaXR5IHNoYTUxMi1KRUxrdm8vRGxwTmRK N2RseXcvZVk3RTBzdXk1aTVHUUgrVmx4YXExbnNOSitIN2Y0VnR2M2pNZUNFZ1JoWlpRRlhUamxk WWZRZ3YycW1NNk0xdjV3QT09CiAgIGRlcGVuZGVuY2llczoKICAgICByZWdlbmVyYXRvci1ydW50 aW1lICJeMC4xMy40IgogCisiQGJhYmVsL3J1bnRpbWVAXjcuMy4xIiwgIkBiYWJlbC9ydW50aW1l QF43LjQuNCIsICJAYmFiZWwvcnVudGltZUBeNy41LjUiLCAiQGJhYmVsL3J1bnRpbWVAXjcuNi4w IiwgIkBiYWJlbC9ydW50aW1lQF43LjcuMiIsICJAYmFiZWwvcnVudGltZUBeNy44LjMiLCAiQGJh YmVsL3J1bnRpbWVAXjcuOC40IiwgIkBiYWJlbC9ydW50aW1lQF43LjguNyI6CisgIHZlcnNpb24g IjcuMTMuOSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVs L3J1bnRpbWUvLS9ydW50aW1lLTcuMTMuOS50Z3ojOTdkYmUyMTE2ZTI2MzBjNDg5ZjIyZTA2NTZk ZWNkNjBhYWExZmNlZSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1hWTJrVSt4Z0ozZEoxZVU2Rk1COUVI OGRJZThkbXVzRjF4RWt1NTJqb0x2dzZlQUZOMEFJK1d4Q0xEbnBldjJMRWVqV0JBeTJzQnZCT0JB akkzem12QT09CisgIGRlcGVuZGVuY2llczoKKyAgICByZWdlbmVyYXRvci1ydW50aW1lICJeMC4x My40IgorCiAiQGJhYmVsL3RlbXBsYXRlQF43LjEyLjEzIjoKICAgdmVyc2lvbiAiNy4xMi4xMyIK ICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGJhYmVsL3RlbXBsYXRl Ly0vdGVtcGxhdGUtNy4xMi4xMy50Z3ojNTMwMjY1YmU4YTI1ODlkYmIzNzUyMzg0NGM1YmNiNTU5 NDdmYjMyNyIKQEAgLTkyMSwyMSArODkzLDMxIEBACiAgICAgIkBiYWJlbC9wYXJzZXIiICJeNy4x Mi4xMyIKICAgICAiQGJhYmVsL3R5cGVzIiAiXjcuMTIuMTMiCiAKLSJAYmFiZWwvdHJhdmVyc2VA XjcuMTMuMCIsICJAYmFiZWwvdHJhdmVyc2VAXjcuMTMuMTUiLCAiQGJhYmVsL3RyYXZlcnNlQF43 LjE0LjAiLCAiQGJhYmVsL3RyYXZlcnNlQF43LjE0LjIiOgotICB2ZXJzaW9uICI3LjE0LjIiCi0g IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC90cmF2ZXJzZS8t L3RyYXZlcnNlLTcuMTQuMi50Z3ojOTIwMWE4ZDkxMjcyM2E4MzFjMjY3OWM3ZWJiZjJmZTE0MTZk NzY1YiIKLSAgaW50ZWdyaXR5IHNoYTUxMi1Uc2RSZ3ZCRkhNeUhPT3pjUDlTNlFVMFFRdGp4bFJw RVlPeTNtY0NPNVJnbUMzMDVraTQyYVNBbWZaRU1TU1lCbGEyb1o5Qk1xWWxuY0JhS21ELzdpQT09 CisiQGJhYmVsL3RyYXZlcnNlQF43LjEzLjAiLCAiQGJhYmVsL3RyYXZlcnNlQF43LjQuNSI6Cisg IHZlcnNpb24gIjcuMTMuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vQGJhYmVsL3RyYXZlcnNlLy0vdHJhdmVyc2UtNy4xMy4wLnRneiM2ZDk1NzUyNDc1Zjg2ZWU3 ZGVkMDY1MzZkZTMwOWE2NWZjODk2NmNjIgorICBpbnRlZ3JpdHkgc2hhNTEyLXh5czV4aTVKRWh6 QzNSekVtU0dycy9iM3BKVy9vODdTeXBaK0cvUGhhRTd1cVZRTnYvamxtVklCWHVvaDVhdHFRNDM0 TGZYVitzZjIzT3hqMGJjaEpRPT0KICAgZGVwZW5kZW5jaWVzOgogICAgICJAYmFiZWwvY29kZS1m cmFtZSIgIl43LjEyLjEzIgotICAgICJAYmFiZWwvZ2VuZXJhdG9yIiAiXjcuMTQuMiIKLSAgICAi QGJhYmVsL2hlbHBlci1mdW5jdGlvbi1uYW1lIiAiXjcuMTQuMiIKKyAgICAiQGJhYmVsL2dlbmVy YXRvciIgIl43LjEzLjAiCisgICAgIkBiYWJlbC9oZWxwZXItZnVuY3Rpb24tbmFtZSIgIl43LjEy LjEzIgogICAgICJAYmFiZWwvaGVscGVyLXNwbGl0LWV4cG9ydC1kZWNsYXJhdGlvbiIgIl43LjEy LjEzIgotICAgICJAYmFiZWwvcGFyc2VyIiAiXjcuMTQuMiIKLSAgICAiQGJhYmVsL3R5cGVzIiAi XjcuMTQuMiIKKyAgICAiQGJhYmVsL3BhcnNlciIgIl43LjEzLjAiCisgICAgIkBiYWJlbC90eXBl cyIgIl43LjEzLjAiCiAgICAgZGVidWcgIl40LjEuMCIKICAgICBnbG9iYWxzICJeMTEuMS4wIgor ICAgIGxvZGFzaCAiXjQuMTcuMTkiCiAKLSJAYmFiZWwvdHlwZXNAXjcuMTIuMSIsICJAYmFiZWwv dHlwZXNAXjcuMTIuMTMiLCAiQGJhYmVsL3R5cGVzQF43LjEzLjAiLCAiQGJhYmVsL3R5cGVzQF43 LjEzLjEyIiwgIkBiYWJlbC90eXBlc0BeNy4xMy4xNiIsICJAYmFiZWwvdHlwZXNAXjcuMTQuMCIs ICJAYmFiZWwvdHlwZXNAXjcuMTQuMiIsICJAYmFiZWwvdHlwZXNAXjcuNC40IjoKKyJAYmFiZWwv dHlwZXNAXjcuMTIuMSIsICJAYmFiZWwvdHlwZXNAXjcuMTIuMTMiLCAiQGJhYmVsL3R5cGVzQF43 LjEyLjE3IiwgIkBiYWJlbC90eXBlc0BeNy4xMy4wIiwgIkBiYWJlbC90eXBlc0BeNy40LjQiOgor ICB2ZXJzaW9uICI3LjEzLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL0BiYWJlbC90eXBlcy8tL3R5cGVzLTcuMTMuMC50Z3ojNzQ0MjRkMjgxNmYwMTcxYjQxMDBm MGFiMzRlOWEzNzRlZmRmN2Y4MCIKKyAgaW50ZWdyaXR5IHNoYTUxMi1oRStIRThybkcxWjZXem8r TWhhS0U1bE01ZU14NzFUNEVISmdrdTJFM3hJZmFVTGhEY3hpaVJ4VVlnd1g4cXdQMUJCU2xhZytU ZEdPdDZKQWlkSVpUQT09CisgIGRlcGVuZGVuY2llczoKKyAgICAiQGJhYmVsL2hlbHBlci12YWxp ZGF0b3ItaWRlbnRpZmllciIgIl43LjEyLjExIgorICAgIGxvZGFzaCAiXjQuMTcuMTkiCisgICAg dG8tZmFzdC1wcm9wZXJ0aWVzICJeMi4wLjAiCisKKyJAYmFiZWwvdHlwZXNAXjcuMTMuMTIiLCAi QGJhYmVsL3R5cGVzQF43LjE0LjIiOgogICB2ZXJzaW9uICI3LjE0LjIiCiAgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BiYWJlbC90eXBlcy8tL3R5cGVzLTcuMTQuMi50 Z3ojNDIwOGFlMDAzMTA3ZWY4YTA1N2VhODMzM2U1NmViNjRkMmY2YTJjMyIKICAgaW50ZWdyaXR5 IHNoYTUxMi1TZGpBRy8zRGlrUkhwVU9qeFpnbmtiUjExeFVseURNVUZKZHZuSWdaRUUxNm1xbVkw QklOTW1jNC8vSk1KZ2xFbW42aTdzcTZwK21HckZXeVo5OEVFdz09CkBAIC05NDMsNiArOTI1LDEx IEBACiAgICAgIkBiYWJlbC9oZWxwZXItdmFsaWRhdG9yLWlkZW50aWZpZXIiICJeNy4xNC4wIgog ICAgIHRvLWZhc3QtcHJvcGVydGllcyAiXjIuMC4wIgogCisiQGRhdGUtaW8vY29yZUAxLngiOgor ICB2ZXJzaW9uICIxLjMuMTMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL0BkYXRlLWlvL2NvcmUvLS9jb3JlLTEuMy4xMy50Z3ojOTBjNzFkYTQ5M2YyMDIwNGI3YTk3 MjkyOWNjNWM0ODJkMDc4YjNmYSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1BbEVLVjdUeGplSytqeFdW S2NDRnJmWUFrOHNwWDlhQ3lpVG9GSWlMUHRmUWJzam1SR0xJaGI1VlpncHRRY0pkSHRMWG83K20w RHV1cndGZ1VUb1F1QT09CisKICJAZGlzY292ZXJ5anMvanNvbi1leHRAXjAuNS4wIjoKICAgdmVy c2lvbiAiMC41LjMiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0Bk aXNjb3Zlcnlqcy9qc29uLWV4dC8tL2pzb24tZXh0LTAuNS4zLnRneiM5MDQyMGY5ZjljNmQzOTg3 ZjE3NmExOWE3ZDhlNzY0MjcxYTJmNTVkIgpAQCAtOTk1LDcgKzk4Miw3IEBACiAgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BlbW90aW9uL2hhc2gvLS9oYXNoLTAuOC4w LnRneiNiYmJmZjY4OTc4ZmVmZGJlNjhjY2I1MzNiYzhjYmUxZDFhZmI1NDEzIgogICBpbnRlZ3Jp dHkgc2hhNTEyLWtCSnRmN1BINmFXd1o2ZmthM3pRMHA2U0JZeng0ZmwxTG9aWEUyUnJuWVNUOVhs am03V2ZLSnJVNGcvWHIzQmVnNzJNTHJwMUFXTlVtdVlKVEw3Q293PT0KIAotIkBlbW90aW9uL2lz LXByb3AtdmFsaWRAMC44LjgiOgorIkBlbW90aW9uL2lzLXByb3AtdmFsaWRAMC44LjgiLCAiQGVt b3Rpb24vaXMtcHJvcC12YWxpZEBeMC44LjgiOgogICB2ZXJzaW9uICIwLjguOCIKICAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQGVtb3Rpb24vaXMtcHJvcC12YWxpZC8t L2lzLXByb3AtdmFsaWQtMC44LjgudGd6I2RiMjhiMWM0MzY4YTI1OWI2MGE5NzMxMWQ2YTk1MmQ0 ZmQwMWFjMWEiCiAgIGludGVncml0eSBzaGE1MTItdTVXdG5lRUFyNUlERzJXdjY1eWh1blBTTUxJ cHVLc2J1T2t0Um9qZnJFaUV2UnlDODVMZ1BNWkk2M2NyN05VcVQ4WklHZFNWZzhaS0d4SXVnNGxY Y0E9PQpAQCAtMTAwNywxMiArOTk0LDEyIEBACiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL0BlbW90aW9uL21lbW9pemUvLS9tZW1vaXplLTAuNy40LnRneiMxOWJmMGY1 YWYxOTE0OTExMWM0MGQ5OGJiMGNmODIxMTlmNWQ5ZWViIgogICBpbnRlZ3JpdHkgc2hhNTEyLUph L1ZmcWUzSHB1elJzRzFvQnRXVEhrMlBHWjdHUisyVno1aVlHZWxBdzhkeDMySzB5N1BqVnV4SzZ6 MW5NcFpPcUFGc1JVUENrSzFZako1NnFKbGd3PT0KIAotIkBlbW90aW9uL21lbW9pemVAXjAuNy40 IjoKKyJAZW1vdGlvbi9tZW1vaXplQF4wLjcuNCIsICJAZW1vdGlvbi9tZW1vaXplQF4wLjcuNSI6 CiAgIHZlcnNpb24gIjAuNy41IgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9AZW1vdGlvbi9tZW1vaXplLy0vbWVtb2l6ZS0wLjcuNS50Z3ojMmM0MGY4MTQ0OWE0ZTU1 NGU5ZmM2Mzk2OTEwZWQ0ODQzZWMyYmU1MCIKICAgaW50ZWdyaXR5IHNoYTUxMi1pZ1g5YTM3RFIy WlBHWXRWNnN1WjZ3aHI4cFRGdHlITDNLL29MVW90eHBTVk8yQVNhcHJtQWUyRGtxN3RCbzdDUlk3 TU1EckFhOW51UVA5L1lHOEZ4UT09CiAKLSJAZW1vdGlvbi9yZWFjdEBeMTEuMS41IjoKKyJAZW1v dGlvbi9yZWFjdEBeMTEuMS4xIiwgIkBlbW90aW9uL3JlYWN0QF4xMS4xLjUiOgogICB2ZXJzaW9u ICIxMS40LjAiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BlbW90 aW9uL3JlYWN0Ly0vcmVhY3QtMTEuNC4wLnRneiMyNDY1YWQ3YjA3M2E2OTE0MDliODhkZmQ5NmRj MTcwOTdkZGFkOWI3IgogICBpbnRlZ3JpdHkgc2hhNTEyLTRYa2xXc2w5QmR0YXRMb0pwU2p1c1ho cEt2OVlWdGVZS2g5aFBLUDFTeGwrbXN3RUZvVWUwV3RtdFdqeEVqa0E1MURRMlFSTUNOT3ZLY1Ns Q1E3aXZnPT0KQEAgLTEwNzUsMTIgKzEwNjIsMTIgQEAKICAgICAiQGVtb3Rpb24vc3R5bGVkLWJh c2UiICJeMTAuMC4yNyIKICAgICBiYWJlbC1wbHVnaW4tZW1vdGlvbiAiXjEwLjAuMjciCiAKLSJA ZW1vdGlvbi9zdHlsaXNAMC44LjUiOgorIkBlbW90aW9uL3N0eWxpc0AwLjguNSIsICJAZW1vdGlv bi9zdHlsaXNAXjAuOC40IjoKICAgdmVyc2lvbiAiMC44LjUiCiAgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BlbW90aW9uL3N0eWxpcy8tL3N0eWxpcy0wLjguNS50Z3oj ZGVhY2IzODliZDZlZTc3ZDFlN2ZjYWNjY2U5ZTE2YzVjN2U3OGUwNCIKICAgaW50ZWdyaXR5IHNo YTUxMi1oNkt0UGloS0ZuM1Q5ZnVJcnd2WFhVT3dseDNyZlV2ZlpJY1A1YTZyaDhZN3pqRTNPMDZo VDVTczRTL1lJMUFZaHVaMWtqYUUvNUVhT09JMk5xU3lsUT09CiAKLSJAZW1vdGlvbi91bml0bGVz c0AwLjcuNSIsICJAZW1vdGlvbi91bml0bGVzc0BeMC43LjUiOgorIkBlbW90aW9uL3VuaXRsZXNz QDAuNy41IiwgIkBlbW90aW9uL3VuaXRsZXNzQF4wLjcuNCIsICJAZW1vdGlvbi91bml0bGVzc0Be MC43LjUiOgogICB2ZXJzaW9uICIwLjcuNSIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vQGVtb3Rpb24vdW5pdGxlc3MvLS91bml0bGVzcy0wLjcuNS50Z3ojNzcyMTEy OTFjMTkwMGE3MDBiOGE3OGNmYWZkYTMxNjBkNzY5NDllZCIKICAgaW50ZWdyaXR5IHNoYTUxMi1P V09STnBmak1zU1NVQlZyUkJWR0VDa2hXY1VMT0FKejlaVzh1SzlxZ3hEKzg3TTdqSFJjdmgvQTk2 WFhOaFhUTG1LY29ZU1F0QkVYN2xITU83WVJ3Zz09CkBAIC0xMTAwLDEwICsxMDg3LDEwIEBACiAg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BlbW90aW9uL3dlYWstbWVt b2l6ZS8tL3dlYWstbWVtb2l6ZS0wLjIuNS50Z3ojOGVlZDk4MmUyZWU2ZjdmNGU0NGMyNTNlMTI5 NjI5ODA3OTFlZmQ0NiIKICAgaW50ZWdyaXR5IHNoYTUxMi02VTcxQzJXcDdyNVh0RnRRellyVzVp S0ZUNjdPaXhyU3hqSTRNcHRDSHpkU1ZsZ2FiY3p6cUxlMFpTZ251Yi81S3A0aFNicERCMXRNeXRa WTlwd3h4QT09CiAKLSJAZXNsaW50L2VzbGludHJjQF4wLjQuMSI6Ci0gIHZlcnNpb24gIjAuNC4x IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AZXNsaW50L2VzbGlu dHJjLy0vZXNsaW50cmMtMC40LjEudGd6IzQ0Mjc2M2I4OGNlY2JlM2VlMGVjN2NhNmQ2ZGQ2MTY4 NTUwY2JmMTQiCi0gIGludGVncml0eSBzaGE1MTItNXY3VERFOXBsVmh2eFFlV0xYRFR2RnZKQmRI NnBFc2RubDJnL2RBcHRtdUZFUGVkUTRFcnE1cnNEc1grbXZBTTYxMEloTmFPMlc1VjFkT09uREt4 a1E9PQorIkBlc2xpbnQvZXNsaW50cmNAXjAuNC4wIjoKKyAgdmVyc2lvbiAiMC40LjAiCisgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0Blc2xpbnQvZXNsaW50cmMvLS9l c2xpbnRyYy0wLjQuMC50Z3ojOTljYzBhMDU4NGQ3MmYxZGYzOGI5MDBmYjA2MmJhOTk1ZjM5NTU0 NyIKKyAgaW50ZWdyaXR5IHNoYTUxMi0yWlBDYyt1TmJqVjVFUkpyK2FLU1BSd1pnS2QyejExeDBF Z0x2YjFQVVJtVXJuOVFOUlhGcWplMExkcTQ1NFBmQVZ5YUpZeXJEdnZJS1NGUDRObkJvZz09CiAg IGRlcGVuZGVuY2llczoKICAgICBhanYgIl42LjEyLjQiCiAgICAgZGVidWcgIl40LjEuMSIKQEAg LTExMjUsNiArMTExMiwxMDAgQEAKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vQGlzdGFuYnVsanMvc2NoZW1hLy0vc2NoZW1hLTAuMS4zLnRneiNlNDVlMzg0ZTRiOGVj MTZiY2UyZmQ5MDNhZjc4NDUwZjZiZjdlYzk4IgogICBpbnRlZ3JpdHkgc2hhNTEyLVpYUlk0ak52 VmdTVlE4REwzTFRjYWthQXRYd1RWVXhFODFoc2xzeUQyQXRvWFcvd1ZvYjEwSGtPSjFYL3BBbGNJ N0QrMllvWktnNWRvOEcvdzZSWWdBPT0KIAorIkBtYXRlcmlhbC11aS9jb3JlQF40LjExLjQiOgor ICB2ZXJzaW9uICI0LjExLjQiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL0BtYXRlcmlhbC11aS9jb3JlLy0vY29yZS00LjExLjQudGd6IzRmYjlmZTVkZWM1ZGNmNzgw YjY4N2UzYTQwY2ZmNzhiMmI5NjQwYTQiCisgIGludGVncml0eSBzaGE1MTItb3FiK2xKMkRsOUhY STlvcmM2L2FOOFpJQU1rZVRodWZBNWlaRUxmMkxRZUJuMk50alZpbEY1RDJ3N2U5UnBudEF6RGI0 aks1RHNWaGtmT3ZGWS84Zmc9PQorICBkZXBlbmRlbmNpZXM6CisgICAgIkBiYWJlbC9ydW50aW1l IiAiXjcuNC40IgorICAgICJAbWF0ZXJpYWwtdWkvc3R5bGVzIiAiXjQuMTEuNCIKKyAgICAiQG1h dGVyaWFsLXVpL3N5c3RlbSIgIl40LjExLjMiCisgICAgIkBtYXRlcmlhbC11aS90eXBlcyIgIjUu MS4wIgorICAgICJAbWF0ZXJpYWwtdWkvdXRpbHMiICJeNC4xMS4yIgorICAgICJAdHlwZXMvcmVh Y3QtdHJhbnNpdGlvbi1ncm91cCIgIl40LjIuMCIKKyAgICBjbHN4ICJeMS4wLjQiCisgICAgaG9p c3Qtbm9uLXJlYWN0LXN0YXRpY3MgIl4zLjMuMiIKKyAgICBwb3BwZXIuanMgIjEuMTYuMS1sdHMi CisgICAgcHJvcC10eXBlcyAiXjE1LjcuMiIKKyAgICByZWFjdC1pcyAiXjE2LjguMCB8fCBeMTcu MC4wIgorICAgIHJlYWN0LXRyYW5zaXRpb24tZ3JvdXAgIl40LjQuMCIKKworIkBtYXRlcmlhbC11 aS9pY29uc0BeNC4xMS4yIjoKKyAgdmVyc2lvbiAiNC4xMS4yIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AbWF0ZXJpYWwtdWkvaWNvbnMvLS9pY29ucy00LjExLjIu dGd6I2IzYTczNTMyNjY1MTljZDc0M2I2NDYxYWU5ZmRmY2IxYjI1ZWI0YzUiCisgIGludGVncml0 eSBzaGE1MTItZlFOc0tYMlR4Qm1xSUdKQ1NpM3RHVE8vZ1orZUpnV21NSmtnRGlPZnlOYXVuTmF4 Y2tsSlFGYUZvZ1ljRmwwcUZ1YUV6MXFhWFlYYm9hL2JVWFZTT1E9PQorICBkZXBlbmRlbmNpZXM6 CisgICAgIkBiYWJlbC9ydW50aW1lIiAiXjcuNC40IgorCisiQG1hdGVyaWFsLXVpL2xhYkBeNC4w LjAtYWxwaGEuNTgiOgorICB2ZXJzaW9uICI0LjAuMC1hbHBoYS41OCIKKyAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQG1hdGVyaWFsLXVpL2xhYi8tL2xhYi00LjAuMC1h bHBoYS41OC50Z3ojYzdlYmI2NmY0OTg2M2M1YWNiYjIwODE3MTYzNzM3Y2FhMjk5ZmFmYyIKKyAg aW50ZWdyaXR5IHNoYTUxMi1HS0hsSnFMeFVlSEgzTDNkR1E0OFphdllycUdPVFhrRmtpRWl1WU1B bkF2WEFaUDRyaE1JcWVIT1BYU1VRYW40QmQ4UW5hZkRjcG92T1NMbmFkRG1Ldz09CisgIGRlcGVu ZGVuY2llczoKKyAgICAiQGJhYmVsL3J1bnRpbWUiICJeNy40LjQiCisgICAgIkBtYXRlcmlhbC11 aS91dGlscyIgIl40LjExLjIiCisgICAgY2xzeCAiXjEuMC40IgorICAgIHByb3AtdHlwZXMgIl4x NS43LjIiCisgICAgcmVhY3QtaXMgIl4xNi44LjAgfHwgXjE3LjAuMCIKKworIkBtYXRlcmlhbC11 aS9waWNrZXJzQF4zLjIuMTAiOgorICB2ZXJzaW9uICIzLjIuMTAiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0BtYXRlcmlhbC11aS9waWNrZXJzLy0vcGlja2Vycy0z LjIuMTAudGd6IzE5ZGYwMjQ4OTU4NzZlYjBlYzdjZDIzOWJiYWVhNTk1ZjcwM2YwYWUiCisgIGlu dGVncml0eSBzaGE1MTItQjhHNk9ibjVTM1JDbDdod2Foa1FqOXNLVWFwd1hXRmppYXovQnN3MWZo WUZkTk1uRFVvbFJpV1FTb0tQYjEvb0tlMzdEdGZzem95d2kxWW5ibzN5OHc9PQorICBkZXBlbmRl bmNpZXM6CisgICAgIkBiYWJlbC9ydW50aW1lIiAiXjcuNi4wIgorICAgICJAZGF0ZS1pby9jb3Jl IiAiMS54IgorICAgICJAdHlwZXMvc3R5bGVkLWpzeCIgIl4yLjIuOCIKKyAgICBjbHN4ICJeMS4w LjIiCisgICAgcmVhY3QtdHJhbnNpdGlvbi1ncm91cCAiXjQuMC4wIgorICAgIHJpZm0gIl4wLjcu MCIKKworIkBtYXRlcmlhbC11aS9zdHlsZXNAXjQuMTEuNCI6CisgIHZlcnNpb24gIjQuMTEuNCIK KyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQG1hdGVyaWFsLXVpL3N0 eWxlcy8tL3N0eWxlcy00LjExLjQudGd6I2ViOWRmY2NmY2MyZDIwODI0M2Q5ODY0NTdkZmYwMjU0 OTdhZmEwMGQiCisgIGludGVncml0eSBzaGE1MTItS05USVpjbmovenByRzVMVzBTYW83encreUcz TzM1cHZpSHplak1kY1NHQ2RXYmlPOHF6UmdPWUw4SkF4QXNXQktPS1l3Vlp4WHRIV2FCNVQyS3Z4 ZXc9PQorICBkZXBlbmRlbmNpZXM6CisgICAgIkBiYWJlbC9ydW50aW1lIiAiXjcuNC40IgorICAg ICJAZW1vdGlvbi9oYXNoIiAiXjAuOC4wIgorICAgICJAbWF0ZXJpYWwtdWkvdHlwZXMiICI1LjEu MCIKKyAgICAiQG1hdGVyaWFsLXVpL3V0aWxzIiAiXjQuMTEuMiIKKyAgICBjbHN4ICJeMS4wLjQi CisgICAgY3NzdHlwZSAiXjIuNS4yIgorICAgIGhvaXN0LW5vbi1yZWFjdC1zdGF0aWNzICJeMy4z LjIiCisgICAganNzICJeMTAuNS4xIgorICAgIGpzcy1wbHVnaW4tY2FtZWwtY2FzZSAiXjEwLjUu MSIKKyAgICBqc3MtcGx1Z2luLWRlZmF1bHQtdW5pdCAiXjEwLjUuMSIKKyAgICBqc3MtcGx1Z2lu LWdsb2JhbCAiXjEwLjUuMSIKKyAgICBqc3MtcGx1Z2luLW5lc3RlZCAiXjEwLjUuMSIKKyAgICBq c3MtcGx1Z2luLXByb3BzLXNvcnQgIl4xMC41LjEiCisgICAganNzLXBsdWdpbi1ydWxlLXZhbHVl LWZ1bmN0aW9uICJeMTAuNS4xIgorICAgIGpzcy1wbHVnaW4tdmVuZG9yLXByZWZpeGVyICJeMTAu NS4xIgorICAgIHByb3AtdHlwZXMgIl4xNS43LjIiCisKKyJAbWF0ZXJpYWwtdWkvc3lzdGVtQF40 LjExLjMiOgorICB2ZXJzaW9uICI0LjExLjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL0BtYXRlcmlhbC11aS9zeXN0ZW0vLS9zeXN0ZW0tNC4xMS4zLnRneiM0NjZi YzE0Yzk5ODY3OThmZDMyNTY2NTkyN2M5NjNlYjQ3Y2M0MTQzIgorICBpbnRlZ3JpdHkgc2hhNTEy LVNZN290Z3VOR29sNDFNdTJTZzZLYkJQMVpSRkliRkxIR0s4MXk0S1lic1YyeUljYUVQT21zQ0s2 endXbHArMnlUVjNKL1Z3VDZvU0JBUnRHSVZkWFB3PT0KKyAgZGVwZW5kZW5jaWVzOgorICAgICJA YmFiZWwvcnVudGltZSIgIl43LjQuNCIKKyAgICAiQG1hdGVyaWFsLXVpL3V0aWxzIiAiXjQuMTEu MiIKKyAgICBjc3N0eXBlICJeMi41LjIiCisgICAgcHJvcC10eXBlcyAiXjE1LjcuMiIKKworIkBt YXRlcmlhbC11aS90eXBlc0A1LjEuMCI6CisgIHZlcnNpb24gIjUuMS4wIgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AbWF0ZXJpYWwtdWkvdHlwZXMvLS90eXBlcy01 LjEuMC50Z3ojZWZhMWM3YTBiMGVhYTRjN2M4N2FjMDM5MDQ0NWYwZjg4YjBkODhmMiIKKyAgaW50 ZWdyaXR5IHNoYTUxMi03Y3FSanJZNTBiOFF6UlNZeWhTcHg0V1J3Mll1TzBLS0lHUUVWazVKOHVv ejJCYW5hd3lrZ1pHb1dFcUttN3BWSWJ6RkROMFNwUGNWVjRJaE9Ga2w4QT09CisKKyJAbWF0ZXJp YWwtdWkvdXRpbHNAXjQuMTEuMiI6CisgIHZlcnNpb24gIjQuMTEuMiIKKyAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQG1hdGVyaWFsLXVpL3V0aWxzLy0vdXRpbHMtNC4x MS4yLnRneiNmMWFlZmE3ZTdkZmYyZWJjYjk3ZDMxZGU1MWFlY2FiMWJiNTc1NDBhIgorICBpbnRl Z3JpdHkgc2hhNTEyLVV1bDh3Mzh1K1BJQ2UyRmcycERLQ2FJRzdrT3lob3daOXZqaUMxRnNWd1BB QlRXOHZQUEtmRjZPdnhScTNJaUJhSTFmYU9KbWdkdk1HN3JNSkFSQmhBPT0KKyAgZGVwZW5kZW5j aWVzOgorICAgICJAYmFiZWwvcnVudGltZSIgIl43LjQuNCIKKyAgICBwcm9wLXR5cGVzICJeMTUu Ny4yIgorICAgIHJlYWN0LWlzICJeMTYuOC4wIHx8IF4xNy4wLjAiCisKICJAbm9kZWxpYi9mcy5z Y2FuZGlyQDIuMS40IjoKICAgdmVyc2lvbiAiMi4xLjQiCiAgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL0Bub2RlbGliL2ZzLnNjYW5kaXIvLS9mcy5zY2FuZGlyLTIuMS40 LnRneiNkNGIzNTQ5YTVkYjVkZTI2ODNlMGMxMDcxYWI0ZjE0MDkwNGJiZjY5IgpAQCAtMTE1Miw5 ICsxMjMzLDkgQEAKICAgaW50ZWdyaXR5IHNoYTUxMi0xNXNwaTNWMjhRZGV2bGVXQk5YRTRwSWxz M25GWm1CYlVHclc5SVZQd2lRY3p1U2I5bjc2VENCNGJzazhUU2VsK0kxT2tIRWRQaHU1UUtNZlk2 clFIQT09CiAKICJAcG9wcGVyanMvY29yZUBeMi44LjMiOgotICB2ZXJzaW9uICIyLjkuMiIKLSAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQHBvcHBlcmpzL2NvcmUvLS9j b3JlLTIuOS4yLnRneiNhZGVhN2I2OTUzY2JiMzQ2NTE3NjZiMDU0ODQ2OGU3NDNjNmEyMzUzIgot ICBpbnRlZ3JpdHkgc2hhNTEyLVZaTVlhNytmWEhkd0lxMVREaFNYb1ZtU1BFR00vYWErNkFpcTNu VlZKOWJYcjI0elNjcitObEtGS0MzaVBsakE3aG8vR0FacitkMmpPZjVHSVJDMzBRPT0KKyAgdmVy c2lvbiAiMi45LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0Bw b3BwZXJqcy9jb3JlLy0vY29yZS0yLjkuMC50Z3ojMzJlNjMyMTIyOTNkZDNlZmJiNTIxY2QzNWE1 MDIwYWI2NmVhYTU0NiIKKyAgaW50ZWdyaXR5IHNoYTUxMi13anRLZWhGQUlBUnEyT3hLOGozSnJn Z05sRXNsSmZOdVNtMkFydGVJYkt5Uk10czJnMGE3S3pUeGZSVk5VTStPMGduQkoyaE5WOG5XUE9Z QmdJMXNldz09CiAKICJAcHJvamVjdHN0b3JtL2dlb21ldHJ5QF42LjUuMiI6CiAgIHZlcnNpb24g IjYuNS4yIgpAQCAtMTIxNSw5ICsxMjk2LDkgQEAKICAgaW50ZWdyaXR5IHNoYTUxMi1PTmhhS1BJ dWZ6enJsTmJxdFdGRmQramxuZW1YNmxKQWdxOVplaVp0UzdJMVBJZi9sYTdDVzRtODNyVFhSblZu c01iVzJrNTZwR1l1N0FVRkpEOVBvdz09CiAKICJAdGlwcHlqcy9yZWFjdEBeNC4yLjAiOgotICB2 ZXJzaW9uICI0LjIuNSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v QHRpcHB5anMvcmVhY3QvLS9yZWFjdC00LjIuNS50Z3ojOWI1ODM3ZGI5M2ExY2FjOTUzOTYyNDA0 ZGY5MDZhZWYxYTE4ZTgwZCIKLSAgaW50ZWdyaXR5IHNoYTUxMi1ZQkxneSsxenpuQk5ieDRKT29P ZEZYV01MWGpCaDloTFB3UnRxM3M4UlJkcmV6MmwzdFBCUnQybTI5MDl3WmQ5UzFLVWVLak9PWVlz bml0Y2NJOUkzQT09CisgIHZlcnNpb24gIjQuMi4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9AdGlwcHlqcy9yZWFjdC8tL3JlYWN0LTQuMi4zLnRneiNjMmRiZTll YjcxYmQ5ZmZhMzk3NGY5YmE4ZTNhNGE2ZmMxNTM4YWVkIgorICBpbnRlZ3JpdHkgc2hhNTEyLTQ0 dkJhcHFST1FJN1E1bkR0WDFNTUFnY0FWKzNEc0lpK20vNDVDeFE3MkM1TERObU5EcTloM2YwNHgz TkhNclVoV2NmZ2ZnallBMkVtZUxTSC80ZVJnPT0KICAgZGVwZW5kZW5jaWVzOgogICAgIHRpcHB5 LmpzICJeNi4zLjEiCiAKQEAgLTEyNTAsMTggKzEzMzEsMjMgQEAKICAgICAiQHR5cGVzL2VzdHJl ZSIgIioiCiAKICJAdHlwZXMvZXNsaW50QCoiOgotICB2ZXJzaW9uICI3LjIuMTIiCi0gIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B0eXBlcy9lc2xpbnQvLS9lc2xpbnQt Ny4yLjEyLnRneiNmZWZhYTQ4YTRkYjI0MTViNjIxZmUzMTVlNGJhZWVkZGU1MjU5MjdlIgotICBp bnRlZ3JpdHkgc2hhNTEyLUhqaWtWL2pYNmUwUGc0RGNCK3J0T0JLU3JHNnc1SWF4V3BtaTNlZkwv ZUx4TXo1bFpUSytXMURLRVJyWDVhK21Oekw3OGF4ZnNETlh1N0pIRlA0dUxnPT0KKyAgdmVyc2lv biAiNy4yLjciCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B0eXBl cy9lc2xpbnQvLS9lc2xpbnQtNy4yLjcudGd6I2Y3ZWYxY2YwZGNlYWIwYWU2ZjlhOTc2YTBhOWFm MTRhYjFiYWNhMjYiCisgIGludGVncml0eSBzaGE1MTItRUhYYmMxejJHb1FScUhhQVQ3K2dyeGxU SjNXRTJZTmVENmpscFBvUmM4M2NDb1RoUlkrTlVXakNVWmFZbWs1MU9JQ2tQWG4yaGhwaGNXY1dY Z05XMFE9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgIkB0eXBlcy9lc3RyZWUiICIqIgogICAgICJA dHlwZXMvanNvbi1zY2hlbWEiICIqIgogCi0iQHR5cGVzL2VzdHJlZUAqIiwgIkB0eXBlcy9lc3Ry ZWVAXjAuMC40NyI6CisiQHR5cGVzL2VzdHJlZUAqIjoKICAgdmVyc2lvbiAiMC4wLjQ3IgogICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AdHlwZXMvZXN0cmVlLy0vZXN0 cmVlLTAuMC40Ny50Z3ojZDdhNTFkYjIwZjA2NTBlZmVjMjRjZDA0OTk0ZjUyM2Q5MzE3MmVkNCIK ICAgaW50ZWdyaXR5IHNoYTUxMi1jNWNpUjA2aks4dTlCc3RybUp5Tzk3bStrbEpycmhDZjl1M3JM dTNERUFKQmlyeFJxU0N2RFFvWUtteHVZd1FJNVNaQ2hBV3UrdHE5b1ZsR1J1elBBZz09CiAKKyJA dHlwZXMvZXN0cmVlQF4wLjAuNDYiOgorICB2ZXJzaW9uICIwLjAuNDYiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B0eXBlcy9lc3RyZWUvLS9lc3RyZWUtMC4wLjQ2 LnRneiMwZmI2YmZiYmVhYmQ3YTMwODgwNTA0OTkzMzY5YzRiZjFkZWFiMWZlIgorICBpbnRlZ3Jp dHkgc2hhNTEyLWxhSWp3VFFhRCs1RHVrQlpheWdRNzlLMVowamIxYlBFTVJya1hTTGp0Q2NabSth YnlwNVlicnFwU0x6RDQyRndXVzZnSy9hUzROWXBKODA0bkcyYnJnPT0KKwogIkB0eXBlcy9nbG9i QF43LjEuMSI6CiAgIHZlcnNpb24gIjcuMS4zIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9AdHlwZXMvZ2xvYi8tL2dsb2ItNy4xLjMudGd6I2U2YmE4MGYzNmI3ZGFh ZDJjNjg1YWNkOTI2NjM4MmU2ODk4NWMxODMiCkBAIC0xMjgxLDI0ICsxMzY3LDU3IEBACiAgIGlu dGVncml0eSBzaGE1MTItMXo4azR3ekZuTmpWSy90bHh2cld1SzVXTXQ2bXlkV1dQNyt6dkg1ZUZl cDRvaitVa3JmaUpUUnRqQ2VCWE5wd2FBL0ZZcXF0YjQvUVM0aWFuRnBJUkE9PQogCiAiQHR5cGVz L25vZGVAKiIsICJAdHlwZXMvbm9kZUA+PTEwLjAuMCI6Ci0gIHZlcnNpb24gIjE1LjYuMSIKLSAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQHR5cGVzL25vZGUvLS9ub2Rl LTE1LjYuMS50Z3ojMzJkNDMzOTBkNWM2MmM1YjZlYzQ4NmE5YmM5YzU5NTQ0ZGUzOWEwOCIKLSAg aW50ZWdyaXR5IHNoYTUxMi03RUlyYUJFeVJIRWU3Q0grRm0xWHZncVU2dXdaTjhRN2pwcEpHY3Fq Uk9NVDI5cWhBdXVPeFlCMXVFWTVVTVlRS0VtQTVEKzV0Qm5oZGFQWFNzTE9OQT09CisgIHZlcnNp b24gIjE0LjE0LjMyIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9A dHlwZXMvbm9kZS8tL25vZGUtMTQuMTQuMzIudGd6IzkwYzVjNGE4ZDcyYmJiZmU1MzAzM2YxMjIz NDEzNDMyNDkxODM0NDgiCisgIGludGVncml0eSBzaGE1MTItL0N0cmZ0eC96cDRtOEpPdWpNNVpo d3psV0x4MjJuYlFKaVZxejgvekUxNWdPZUVXK3VseTNGU1g0ZkdGcGNmRXZGelhjTUNKd3E5bEdW V2d5QVJYaGc9PQogCiAiQHR5cGVzL3BhcnNlLWpzb25AXjQuMC4wIjoKICAgdmVyc2lvbiAiNC4w LjAiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B0eXBlcy9wYXJz ZS1qc29uLy0vcGFyc2UtanNvbi00LjAuMC50Z3ojMmY4YmI0NDE0MzRkMTYzYjM1ZmI4ZmZkY2Nk NzEzODkyN2ZmYjhjMCIKICAgaW50ZWdyaXR5IHNoYTUxMi0vL29vckVaakw2c2JQY0tVYUNkSUds SVVlSDI2bWd6aW1qQkI3N0c2WFJnbkRsL0w1d09ucHlCR1JlL01tZjVDVlczUHdFQkUxTmppTVov c3NGaDR3QT09CiAKKyJAdHlwZXMvcHJvcC10eXBlc0AqIjoKKyAgdmVyc2lvbiAiMTUuNy4zIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AdHlwZXMvcHJvcC10eXBl cy8tL3Byb3AtdHlwZXMtMTUuNy4zLnRneiMyYWIwZDVkYTJlNTgxNWY5NGIwYjlkNGI5NWQxZTVm MjQzYWIyY2E3IgorICBpbnRlZ3JpdHkgc2hhNTEyLUtmUkwzUHVIbXFRTE9HKzJ0R3BSTzI2Q3Rn K0NxMUUwMUQyRE1yaUtFQVRIZ1dMZmVORG1xOWUyOVE5V0lreTBkUTNOUGtkMW16WUg4TG05MzZa OXF3PT0KKwogIkB0eXBlcy9xQF4xLjUuMSI6CiAgIHZlcnNpb24gIjEuNS40IgogICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AdHlwZXMvcS8tL3EtMS41LjQudGd6IzE1 OTI1NDE0ZTBhZDJjZDc2NWJmZWY1ODg0MmY3ZTI2YTdhY2NiMjQiCiAgIGludGVncml0eSBzaGE1 MTItMUhjRGFzOFNFajR6MVdjNjk2dEg1Nkc4T2xSYUgvc3FaT3luTk5CK0hGMFdPZVhQYXhUdGJZ ekpZMm9FZmlVeGpTS2poQ0tyK012UjdkQ0hjRWVsdWc9PQogCisiQHR5cGVzL3JlYWN0LXRyYW5z aXRpb24tZ3JvdXBAXjQuMi4wIjoKKyAgdmVyc2lvbiAiNC40LjEiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B0eXBlcy9yZWFjdC10cmFuc2l0aW9uLWdyb3VwLy0v cmVhY3QtdHJhbnNpdGlvbi1ncm91cC00LjQuMS50Z3ojZTFhM2NiMjc4ZGY3ZjQ3ZjE3YjUwODJi MWIzZGExNzE3MGJkNDRiMSIKKyAgaW50ZWdyaXR5IHNoYTUxMi12SW82OXFLS2NZb0o4d0tDSmp3 U2dDVE0rejNjaHczZzE4ZGtyRGZWWDY2NXRNSDd0bWJEeEVBblBkZXk0Z1Rsd1p6NVF1SEd6ZCto dWwwT1ZaRHFxUT09CisgIGRlcGVuZGVuY2llczoKKyAgICAiQHR5cGVzL3JlYWN0IiAiKiIKKwor IkB0eXBlcy9yZWFjdEAqIjoKKyAgdmVyc2lvbiAiMTcuMC4zIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AdHlwZXMvcmVhY3QvLS9yZWFjdC0xNy4wLjMudGd6I2Jh NmUyMTUzNjg1MDFhYzM4MjY5NTFlZWYyOTA0NTc0YzI2MmNjNzkiCisgIGludGVncml0eSBzaGE1 MTItd1lPVXhJZ3MySFpaMEFDTmlJYXlJdHlsdUFETmJPTmw3a3Q4bGtMalZLOElpdE1INVFNeUFo NzVGd2htbzM3cjFtN0wySmFGajAzc0lmeEJWRHZSQWc9PQorICBkZXBlbmRlbmNpZXM6CisgICAg IkB0eXBlcy9wcm9wLXR5cGVzIiAiKiIKKyAgICAiQHR5cGVzL3NjaGVkdWxlciIgIioiCisgICAg Y3NzdHlwZSAiXjMuMC4yIgorCisiQHR5cGVzL3NjaGVkdWxlckAqIjoKKyAgdmVyc2lvbiAiMC4x Ni4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9AdHlwZXMvc2No ZWR1bGVyLy0vc2NoZWR1bGVyLTAuMTYuMS50Z3ojMTg4NDUyMDVlODZmZjAwMzg1MTdhYWI3YTE4 YTYyYTZiOWY3MTI3NSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1FYUN4YmFuVmV5eERSVFFCa2RMYjNC dmwvSEs3UEJLNlVKanNTaXhCMGlIS29XeEU1dXUyUS9EZ3RwT2hQSW9qTjBabDF3aHZPZDdQb0hz MlAwczVlQT09CisKKyJAdHlwZXMvc3R5bGVkLWpzeEBeMi4yLjgiOgorICB2ZXJzaW9uICIyLjIu OCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vQHR5cGVzL3N0eWxl ZC1qc3gvLS9zdHlsZWQtanN4LTIuMi44LnRneiNiNTBkMTNkOGEzYzM0MDM2MjgyZDY1MTk0NTU0 Y2YxODZiYWI3MjM0IgorICBpbnRlZ3JpdHkgc2hhNTEyLVlqeWU5VndNZFllWGZTNzFpaHVlV1JT eHJydXVYVHdLQ2J6dWU0KzViMnJqblEvL0F0eU03bXlaMUJFaE5oQlEvbkwvUkU3YmRUb1VvTGxu Mm1pS3ZnPT0KKyAgZGVwZW5kZW5jaWVzOgorICAgICJAdHlwZXMvcmVhY3QiICIqIgorCiAiQHZ1 c2lvbi93ZWJmb250cy1nZW5lcmF0b3JAXjAuNy4wIjoKLSAgdmVyc2lvbiAiMC43LjIiCi0gIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B2dXNpb24vd2ViZm9udHMtZ2Vu ZXJhdG9yLy0vd2ViZm9udHMtZ2VuZXJhdG9yLTAuNy4yLnRneiNjODVlZjQ5N2ViNTQ1Yjg2Y2Iz YTFjYTlmNDUxM2Y1NzYwODE5OGU2IgotICBpbnRlZ3JpdHkgc2hhNTEyLVpRd0xVcG9QVjJzNkFu Ulgxd05PQVdzVWFmanZPdFFJRW5lSTlJbGRXODNqdVJXL1FNSERmQlVGTGk1bzBxUlExZkFaaTlN TUxpVytpQzhTL1NXTzlnPT0KKyAgdmVyc2lvbiAiMC43LjAiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL0B2dXNpb24vd2ViZm9udHMtZ2VuZXJhdG9yLy0vd2ViZm9u dHMtZ2VuZXJhdG9yLTAuNy4wLnRneiM0N2U3MjMwNTY1ZThlOTkwM2FhNDc5MTE4OWEzNWYwNzEy MWJjYzAwIgorICBpbnRlZ3JpdHkgc2hhNTEyLVJvSXBmWmtzL3VGRy96dnRUbzd3VzZINXYyVU1G bnNjZGpKU3ZoU2gzLzFRNlBtUHYrRVliUGNWaW1qUmxQMTBkK2Jxb056aTdVTDhDdnlySksyUGR3 PT0KICAgZGVwZW5kZW5jaWVzOgogICAgIGhhbmRsZWJhcnMgIl40LjAuMTEiCiAgICAgbWtkaXJw ICJeMS4wLjQiCkBAIC0xNTMzLDcgKzE2NTIsNyBAQCBhY29ybkBeNy4wLjAsIGFjb3JuQF43LjQu MDoKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYWNvcm4vLS9hY29y bi03LjQuMS50Z3ojZmVhZWQyNTU5NzNkMmU3NzU1NWI4M2RiYzA4ODUxYTZjNjM1MjBmYSIKICAg aW50ZWdyaXR5IHNoYTUxMi1uUXlwMG8xL21OZGJUTzFQTzZrSGt3U3JtZ1owTVQvakNDcE5pd2JV akdvUk40ZGxCaHFKdG9RdUNuRU9LemdUVndnMFpXaUNvUXk2U3hNZWJRVmg4QT09CiAKLWFjb3Ju QF44LjAuNCwgYWNvcm5AXjguMi4xOgorYWNvcm5AXjguMC40OgogICB2ZXJzaW9uICI4LjIuNCIK ICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYWNvcm4vLS9hY29ybi04 LjIuNC50Z3ojY2FiYTI0YjA4MTg1YzNiNTZlMzE2OGU5N2QxNWVkMTdmNGQzMWZkMCIKICAgaW50 ZWdyaXR5IHNoYTUxMi1JYnQ4NFl3QkREQTg5MGVEaURDRXFjYnd2SGxCdnp6RGtVMmNHQkJEREkx UVdUMTJqVGlYSU9uMkNJdzVLSzRpNk41WjJIVXh3WWp6cmlEeXFhcXFaZz09CkBAIC0xNjc2LDEx ICsxNzk1LDYgQEAgYXJncGFyc2VAXjEuMC42LCBhcmdwYXJzZUBeMS4wLjc6CiAgIGRlcGVuZGVu Y2llczoKICAgICBzcHJpbnRmLWpzICJ+MS4wLjIiCiAKLWFyZ3BhcnNlQF4yLjAuMToKLSAgdmVy c2lvbiAiMi4wLjEiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Fy Z3BhcnNlLy0vYXJncGFyc2UtMi4wLjEudGd6IzI0NmY1MGYzY2E3OGEzMjQwZjZjOTk3ZThhOWJk MWVhYzQ5ZTRiMzgiCi0gIGludGVncml0eSBzaGE1MTItOCs5V3FlYmJGenBYOU9SK1dhNk8yOWFz SW9nZVJNemNHdEFJTmRwTUhIeUFnMTBmMDVhU0ZWQmJjRXFHZi9QWHcxRWpBWitxMi9iRUJnM0R2 dXJLM1E9PQotCiBhcnJheS1maW5kLWluZGV4QF4xLjAuMToKICAgdmVyc2lvbiAiMS4wLjIiCiAg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2FycmF5LWZpbmQtaW5kZXgv LS9hcnJheS1maW5kLWluZGV4LTEuMC4yLnRneiNkZjAxMGFhMTI4N2UxNjRiYmRhNmY5NzIzYjBh OTZhMWVjNDE4N2ExIgpAQCAtMTkwNCwyOSArMjAxOCwzOSBAQCBiYWJlbC1wbHVnaW4tbWFjcm9z QF4yLjAuMDoKICAgICBjb3NtaWNvbmZpZyAiXjYuMC4wIgogICAgIHJlc29sdmUgIl4xLjEyLjAi CiAKLWJhYmVsLXBsdWdpbi1wb2x5ZmlsbC1jb3JlanMyQF4wLjIuMDoKLSAgdmVyc2lvbiAiMC4y LjIiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2JhYmVsLXBsdWdp bi1wb2x5ZmlsbC1jb3JlanMyLy0vYmFiZWwtcGx1Z2luLXBvbHlmaWxsLWNvcmVqczItMC4yLjIu dGd6I2U5MTI0Nzg1ZTZmZDk0Zjk0YjYxOGE3OTU0ZTU2OTMwNTNiZjUzMjciCi0gIGludGVncml0 eSBzaGE1MTIta0lTckVOc0owejVkTlBxNWVSdmNjdElUTkhZWFdPQTREVVpSRllDejNqWUNjdlRi L0E1NDZMSWRkbW9HTk1WWWcyVTM4T3lGZU5vc1F3STlFTlRxSVE9PQorYmFiZWwtcGx1Z2luLXBv bHlmaWxsLWNvcmVqczJAXjAuMS40OgorICB2ZXJzaW9uICIwLjEuMTAiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2JhYmVsLXBsdWdpbi1wb2x5ZmlsbC1jb3JlanMy Ly0vYmFiZWwtcGx1Z2luLXBvbHlmaWxsLWNvcmVqczItMC4xLjEwLnRneiNhMmM1YzI0NWY1NmMw Y2FjM2RiZGRiZjA3MjZhNDZiMjRmMGY4MWQxIgorICBpbnRlZ3JpdHkgc2hhNTEyLURPOTV3RDRn MEE4S1JhSEtpMEQ1MU5kR1h6dnBxVkxuTHU1QlR2RGxwcVVFcFRtZUV0eXBnQzF4cWVzT1JhV21p VU9RSTE0VUhLbHpOZDlpWjJHM1pBPT0KICAgZGVwZW5kZW5jaWVzOgotICAgICJAYmFiZWwvY29t cGF0LWRhdGEiICJeNy4xMy4xMSIKLSAgICAiQGJhYmVsL2hlbHBlci1kZWZpbmUtcG9seWZpbGwt cHJvdmlkZXIiICJeMC4yLjIiCisgICAgIkBiYWJlbC9jb21wYXQtZGF0YSIgIl43LjEzLjAiCisg ICAgIkBiYWJlbC9oZWxwZXItZGVmaW5lLXBvbHlmaWxsLXByb3ZpZGVyIiAiXjAuMS41IgogICAg IHNlbXZlciAiXjYuMS4xIgogCi1iYWJlbC1wbHVnaW4tcG9seWZpbGwtY29yZWpzM0BeMC4yLjA6 Ci0gIHZlcnNpb24gIjAuMi4yIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9iYWJlbC1wbHVnaW4tcG9seWZpbGwtY29yZWpzMy8tL2JhYmVsLXBsdWdpbi1wb2x5Zmls bC1jb3JlanMzLTAuMi4yLnRneiM3NDI0YTE2ODJlZTQ0YmFlYzgxNzMyNzcxMGIxYjA5NGU1Zjhm N2Y1IgotICBpbnRlZ3JpdHkgc2hhNTEyLWwxQ2Y4UEtrMTJlRWs1UVAvTlE2VEg4QTFwZWU2d1dE Sjk2V2p4ck1YRkxITE9CRnpZTTRtb0c4MEhGZ2R1VmhUcUFGZXo0YWxuWktFaFAvYllIZzBBPT0K K2JhYmVsLXBsdWdpbi1wb2x5ZmlsbC1jb3JlanMzQF4wLjEuMzoKKyAgdmVyc2lvbiAiMC4xLjci CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2JhYmVsLXBsdWdpbi1w b2x5ZmlsbC1jb3JlanMzLy0vYmFiZWwtcGx1Z2luLXBvbHlmaWxsLWNvcmVqczMtMC4xLjcudGd6 IzgwNDQ5ZDlkNmYyMjc0OTEyZTA1ZDllMTgyYjU0ODE2OTA0YmVmZDAiCisgIGludGVncml0eSBz aGE1MTItdStnYlM5YmJQaFpXRWV5eTFvUi9ZYWFTcG9kL0tEVDA3YXJaSGI4MGFUcGw4SDVaQnEr dU4xbk45L3h0WDdqUXlmTGRQZm9xSTRSdWUvTVFTV0pxdXc9PQogICBkZXBlbmRlbmNpZXM6Ci0g ICAgIkBiYWJlbC9oZWxwZXItZGVmaW5lLXBvbHlmaWxsLXByb3ZpZGVyIiAiXjAuMi4yIgotICAg IGNvcmUtanMtY29tcGF0ICJeMy45LjEiCisgICAgIkBiYWJlbC9oZWxwZXItZGVmaW5lLXBvbHlm aWxsLXByb3ZpZGVyIiAiXjAuMS41IgorICAgIGNvcmUtanMtY29tcGF0ICJeMy44LjEiCiAKLWJh YmVsLXBsdWdpbi1wb2x5ZmlsbC1yZWdlbmVyYXRvckBeMC4yLjA6Ci0gIHZlcnNpb24gIjAuMi4y IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9iYWJlbC1wbHVnaW4t cG9seWZpbGwtcmVnZW5lcmF0b3IvLS9iYWJlbC1wbHVnaW4tcG9seWZpbGwtcmVnZW5lcmF0b3It MC4yLjIudGd6I2IzMTBjOGQ2NDJhY2FkYTM0OGMxZmEzYjNlNmNlMGU4NTFiZWUwNzciCi0gIGlu dGVncml0eSBzaGE1MTItR295NWdoc2MyMUhnUERGdHpSa1NpcnBaVlczNW1lR29UbVRPYjJieHFk bDYwZ2h1YjR4T2lkZ05USGFaZlEyRmF4UXNLbXd2WHRPQWtjSVM0U01CV2c9PQorYmFiZWwtcGx1 Z2luLXBvbHlmaWxsLXJlZ2VuZXJhdG9yQF4wLjEuMjoKKyAgdmVyc2lvbiAiMC4xLjYiCisgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2JhYmVsLXBsdWdpbi1wb2x5Zmls bC1yZWdlbmVyYXRvci8tL2JhYmVsLXBsdWdpbi1wb2x5ZmlsbC1yZWdlbmVyYXRvci0wLjEuNi50 Z3ojMGZlMDZhMDI2ZmUwZmFhNjI4Y2NjOGJhMzMwMmRhMGE2Y2UwMmYzZiIKKyAgaW50ZWdyaXR5 IHNoYTUxMi1PVXJZRzlpS1BLejhOeHN3WGJSQWRTd0YwR2hSZElFTVRsb1FBVEppNGJEdUZxclhh WGNDVVQvVkdOcnI4cEJjak1oMVJ4WjdYdDljeXRWSlRKZnZNZz09CiAgIGRlcGVuZGVuY2llczoK LSAgICAiQGJhYmVsL2hlbHBlci1kZWZpbmUtcG9seWZpbGwtcHJvdmlkZXIiICJeMC4yLjIiCisg ICAgIkBiYWJlbC9oZWxwZXItZGVmaW5lLXBvbHlmaWxsLXByb3ZpZGVyIiAiXjAuMS41IgorCisi YmFiZWwtcGx1Z2luLXN0eWxlZC1jb21wb25lbnRzQD49IDEiOgorICB2ZXJzaW9uICIxLjEyLjAi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2JhYmVsLXBsdWdpbi1z dHlsZWQtY29tcG9uZW50cy8tL2JhYmVsLXBsdWdpbi1zdHlsZWQtY29tcG9uZW50cy0xLjEyLjAu dGd6IzFkZWMxNjc2NTEyMTc3ZGU2YjgyNzIxMWU5ZWRhNWEzMGRiNGY5YjkiCisgIGludGVncml0 eSBzaGE1MTItRkVpRDdsNVpBQmRKUHBMc3NLWGpCVUpNWXF6YmNOekJvd2ZYRENkSmhPcGJoV2ll d2FwVWFZK0xaR1Q4UjRKZzJUd09qR2pHNFJLZXlyTzVwOXNCa0E9PQorICBkZXBlbmRlbmNpZXM6 CisgICAgIkBiYWJlbC9oZWxwZXItYW5ub3RhdGUtYXMtcHVyZSIgIl43LjAuMCIKKyAgICAiQGJh YmVsL2hlbHBlci1tb2R1bGUtaW1wb3J0cyIgIl43LjAuMCIKKyAgICBiYWJlbC1wbHVnaW4tc3lu dGF4LWpzeCAiXjYuMTguMCIKKyAgICBsb2Rhc2ggIl40LjE3LjExIgogCiBiYWJlbC1wbHVnaW4t c3ludGF4LWpzeEBeNi4xOC4wOgogICB2ZXJzaW9uICI2LjE4LjAiCkBAIC0yMzU4LDcgKzI0ODIs MTggQEAgYnJvd3NlcmlmeUBeMTcuMC4wOgogICAgIHZtLWJyb3dzZXJpZnkgIl4xLjAuMCIKICAg ICB4dGVuZCAiXjQuMC4wIgogCi1icm93c2Vyc2xpc3RAXjQuMC4wLCBicm93c2Vyc2xpc3RAXjQu MTQuNSwgYnJvd3NlcnNsaXN0QF40LjE2LjAsIGJyb3dzZXJzbGlzdEBeNC4xNi42OgorYnJvd3Nl cnNsaXN0QF40LjAuMCwgYnJvd3NlcnNsaXN0QF40LjE0LjUsIGJyb3dzZXJzbGlzdEBeNC4xNi4z OgorICB2ZXJzaW9uICI0LjE2LjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2Jyb3dzZXJzbGlzdC8tL2Jyb3dzZXJzbGlzdC00LjE2LjMudGd6IzM0MGFhNDY5NDBk N2RiODc4NzQ4NTY3YzVkZWEyNGE0OGRkZjM3MTciCisgIGludGVncml0eSBzaGE1MTItdkl5aFdt SWtVTGFxMDRHdDkzdHhkaCtqMDJ5WC9Kemx5aExZYlYzWVFDbi96dkVTM0puWTdUaWZISHZ2cjF3 NWhURGx1TktNa1YwNWNzNHZ5OFE3c3c9PQorICBkZXBlbmRlbmNpZXM6CisgICAgY2FuaXVzZS1s aXRlICJeMS4wLjMwMDAxMTgxIgorICAgIGNvbG9yZXR0ZSAiXjEuMi4xIgorICAgIGVsZWN0cm9u LXRvLWNocm9taXVtICJeMS4zLjY0OSIKKyAgICBlc2NhbGFkZSAiXjMuMS4xIgorICAgIG5vZGUt cmVsZWFzZXMgIl4xLjEuNzAiCisKK2Jyb3dzZXJzbGlzdEBeNC4xNi4wLCBicm93c2Vyc2xpc3RA XjQuMTYuNjoKICAgdmVyc2lvbiAiNC4xNi42IgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9icm93c2Vyc2xpc3QvLS9icm93c2Vyc2xpc3QtNC4xNi42LnRneiNkNzkw MTI3N2E1YTg4ZTU1NGVkMzA1YjE4M2VjOWIwYzA4ZjY2ZmEyIgogICBpbnRlZ3JpdHkgc2hhNTEy LVdzcGsvUHFPKzRXOXFwNWlVVEpzYTFCL1FyWW4xa2VOQ2NFUDVPdlA3V0J3VDRLYURseTB1T05Z bUM2WGEzWjVJcW5VZ1MwS2NnTFl1MWw3NHgwWlhRPT0KQEAgLTI0ODcsNiArMjYyMiwxNiBAQCBj YW1lbGNhc2VAXjIuMC4wOgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9jYW1lbGNhc2UvLS9jYW1lbGNhc2UtMi4xLjEudGd6IzdjMWQxNmQ2NzlhMWJiZTU5Y2EwMmNh Y2VjZmIwMTFlMjAxZjVhMWYiCiAgIGludGVncml0eSBzaGExLWZCMFcxbm1odStXY29DeXM3UHNC SGlBZldoOD0KIAorY2FtZWxjYXNlQF42LjIuMDoKKyAgdmVyc2lvbiAiNi4yLjAiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2NhbWVsY2FzZS8tL2NhbWVsY2FzZS02 LjIuMC50Z3ojOTI0YWY4ODFjOWQ1MjVhYzlkODdmNDBkOTY0ZTVjZWE5ODJhMTgwOSIKKyAgaW50 ZWdyaXR5IHNoYTUxMi1jN3dWdmJ3M2YzN251b2JRTnRnc2dHOVBPQzlxTWJOdU1RbVRDcVp2MjNi Nk1JejBmY1lwQmlPbHY5Z0VOL2hkTGRuWlREUWhnNmU5RHE1TTF2S3ZmZz09CisKK2NhbWVsaXpl QF4xLjAuMDoKKyAgdmVyc2lvbiAiMS4wLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL2NhbWVsaXplLy0vY2FtZWxpemUtMS4wLjAudGd6IzE2NGE1NDgzZTYzMGZh NDMyMWU1YWYwNzAyMGU1MzE4MzFiMjYwOWIiCisgIGludGVncml0eSBzaGExLUZrcFVnK1l3K2tN aDVhOEhBZzVUR0RHeVlKcz0KKwogY2FuaXVzZS1hcGlAXjMuMC4wOgogICB2ZXJzaW9uICIzLjAu MCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY2FuaXVzZS1hcGkv LS9jYW5pdXNlLWFwaS0zLjAuMC50Z3ojNWU0ZDkwZTIyNzQ5NjFkNDYyOTE5OTdkZjU5OWUzZWQw MDhlZTRjMCIKQEAgLTI0OTcsNyArMjY0MiwxNyBAQCBjYW5pdXNlLWFwaUBeMy4wLjA6CiAgICAg bG9kYXNoLm1lbW9pemUgIl40LjEuMiIKICAgICBsb2Rhc2gudW5pcSAiXjQuNS4wIgogCi1jYW5p dXNlLWxpdGVAXjEuMC4wLCBjYW5pdXNlLWxpdGVAXjEuMC4zMDAwMTIxOSwgY2FuaXVzZS1saXRl QF4xLjAuMzAwMDEyMzA6CitjYW5pdXNlLWxpdGVAXjEuMC4wOgorICB2ZXJzaW9uICIxLjAuMzAw MDExOTciCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Nhbml1c2Ut bGl0ZS8tL2Nhbml1c2UtbGl0ZS0xLjAuMzAwMDExOTcudGd6IzQ3YWQxNWI5NzdkMmYzMmIzZWMy ZmUyYjA4N2UwYzUwNDQzNzcxZGIiCisgIGludGVncml0eSBzaGE1MTItOGFFK3NxQnF0WHo0Rzhn MzVFZy9YRWFGcjJON3JkL1ZRNmVBQkdCbU50Y0I4Y042cU5KaE1pNm9TRnk0VVdXWmdxZ0wzZmls SFQ4TmhhNG1ldTN0c3c9PQorCitjYW5pdXNlLWxpdGVAXjEuMC4zMDAwMTE4MSwgY2FuaXVzZS1s aXRlQF4xLjAuMzAwMDEyMTk6CisgIHZlcnNpb24gIjEuMC4zMDAwMTIyOCIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY2FuaXVzZS1saXRlLy0vY2FuaXVzZS1saXRl LTEuMC4zMDAwMTIyOC50Z3ojYmZkYzU5NDJjZDMzMjZmYTUxZWUwYjQyZmJlZjRkYTlkNDkyYTdm YSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1RUW1MT0dKM0RFZ29rSGJNU0E4Y2oyYStnZVhxbW5weU9G VDBsaFFWNlAzL1lPSnZHREV3b2VkY3d4RVEzMGdKSXdJSXVuSElpY3VuSjJyeks1Z0IyQT09CisK K2Nhbml1c2UtbGl0ZUBeMS4wLjMwMDAxMjMwOgogICB2ZXJzaW9uICIxLjAuMzAwMDEyMzAiCiAg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Nhbml1c2UtbGl0ZS8tL2Nh bml1c2UtbGl0ZS0xLjAuMzAwMDEyMzAudGd6IzgxMzVjNTc0NTk4NTRiMjI0MGI1N2E0YTY3ODYw NDRiZGM1YTlmNzEiCiAgIGludGVncml0eSBzaGE1MTItNXlCZDVuV0NCUytqV0tUY0hPelh3bzV4 emNqNGVQRS95anRrWnlVVjFCVFVtckJhQTlNUkdDK2U3bXhucVhTQTkwQ21DQThMM2VLTGFTVWt0 MDk5SVE9PQpAQCAtMjU5Miw3ICsyNzQ3LDcgQEAgY2hlZXJpb0BeMS4wLjAtcmMuMzoKICAgICBw YXJzZTUtaHRtbHBhcnNlcjItdHJlZS1hZGFwdGVyICJeNi4wLjEiCiAgICAgdHNsaWIgIl4yLjIu MCIKIAotImNob2tpZGFyQD49My4wLjAgPDQuMC4wIiwgY2hva2lkYXJAXjMuNC4yOgorImNob2tp ZGFyQD49Mi4wLjAgPDQuMC4wIiwgY2hva2lkYXJAXjMuNC4yOgogICB2ZXJzaW9uICIzLjUuMSIK ICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY2hva2lkYXIvLS9jaG9r aWRhci0zLjUuMS50Z3ojZWU5Y2U3YmJlYmQyYjc5ZjQ5ZjMwNDc5OWQ1NDY4ZTMxZTE0ZTY4YSIK ICAgaW50ZWdyaXR5IHNoYTUxMi05K3MrT2QrVzBWSkp6YXdEbWEvZ3ZCTlFxa1RpcVlUV0x1Wm95 QXNpdnNJNEFhV1RDekhHMDYvVE1qc2YxY1llOUNiOTdVQ0Voano3SHZuUGsycC90dz09CkBAIC0y NjYyLDYgKzI4MTcsMTEgQEAgY2xvc2VzdEBeMC4wLjE6CiAgIGRlcGVuZGVuY2llczoKICAgICBt YXRjaGVzLXNlbGVjdG9yICIwLjAuMSIKIAorY2xzeEBeMS4wLjIsIGNsc3hAXjEuMC40OgorICB2 ZXJzaW9uICIxLjEuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v Y2xzeC8tL2Nsc3gtMS4xLjEudGd6Izk4YjMxMzRmOWFiYmRmMjNiMjY2MzQ5MWFjZTEzYzVjMDNh NzMxODgiCisgIGludGVncml0eSBzaGE1MTItNi9iUGhvNjI0cDNTMnBNeXZQNWtLQlBYbkkzdWZI TE9iQkZDZmd4K0xrZVI1bGcyWFl5MmhxWnFVZjQ1eXBEOENPbjJiaGdHSlNVRStsNWRoTkJpZUE9 PQorCiBjb0BeNC42LjA6CiAgIHZlcnNpb24gIjQuNi4wIgogICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9jby8tL2NvLTQuNi4wLnRneiM2ZWE2YmRmM2Q4NTNhZTU0Y2Ni OGU0N2JmYTBiZjNmOTAzMWZiMTg0IgpAQCAtMjY4Miw5ICsyODQyLDkgQEAgY29kZS1wb2ludC1h dEBeMS4wLjA6CiAgIGludGVncml0eSBzaGExLURRY0xUUVE2Vytvem92R2tEaTdiUFpwTXozYz0K IAogY29kZW1pcnJvckBeNS41OS4yOgotICB2ZXJzaW9uICI1LjYxLjEiCi0gIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2NvZGVtaXJyb3IvLS9jb2RlbWlycm9yLTUuNjEu MS50Z3ojY2NmYzhhNDNiOGZjZmI4YjEyZThlNzViNWZmZGU0OGQ1NDE0MDZlMCIKLSAgaW50ZWdy aXR5IHNoYTUxMi0rRDFOWmpBdWN1ekU5M3ZKR2JBYVh6dm9CSHdwOW5KWldXV0Y5dXRqdjI1KzVB WlVpYWg2Q0lsZmI0aWtHNE1vRHNGc0NHOG5paUpINSsrT08yTGdJUT09CisgIHZlcnNpb24gIjUu NTkuNCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY29kZW1pcnJv ci8tL2NvZGVtaXJyb3ItNS41OS40LnRneiNiZmMxMWM4Y2UzMmIwNDgxOGU4ZDY2MWJiZDc5MGE5 NGY0YjNhNmYzIgorICBpbnRlZ3JpdHkgc2hhNTEyLWFjaHc1SkJneDhRUGNBQ0REbitFVVVYbUNZ engvenhFdE9HWHlqdkxFdllZOEdsZVVybmZtNUQrWmIrVWpTaEhnZ1hLRFQ5QVhyYmtCWlg2YTBZ U1FnPT0KIAogY29sb3ItY29udmVydEBeMS45LjAsIGNvbG9yLWNvbnZlcnRAXjEuOS4zOgogICB2 ZXJzaW9uICIxLjkuMyIKQEAgLTI3NTcsNyArMjkxNywxMiBAQCBjb21tYW5kZXJAXjYuMi4wOgog ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jb21tYW5kZXIvLS9jb21t YW5kZXItNi4yLjEudGd6IzA3OTJlYjY4MmRmYmMzMjU5OTliYjJiODRmZGRkZGJhMTEwYWM3M2Mi CiAgIGludGVncml0eSBzaGE1MTItVTdWZHJKRm5KZ280eGpySHBUenUweXJIUEdJbWRzbUQ5NVps Z1lTRWFqQW4ySkt6RGhEVFBHOWtCVGVmbU9iTDJ3L25nZVpuaWxrK09WOUNHM2Q3VUE9PQogCi1j b21tYW5kZXJAXjcuMC4wLCBjb21tYW5kZXJAXjcuMS4wOgorY29tbWFuZGVyQF43LjAuMDoKKyAg dmVyc2lvbiAiNy4xLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L2NvbW1hbmRlci8tL2NvbW1hbmRlci03LjEuMC50Z3ojZjJlYWVjZjEzMWYxMGUzNmUwN2Q4OTQ2 OTgyMjZlMzZhZTBlYjVmZiIKKyAgaW50ZWdyaXR5IHNoYTUxMi1wUnhCbmEzTUplNkhLbkJHc0R5 TXY4RVRicHR3M2F4RWRZSG9xTmg3Z3U1b0RjZXc4ZnMweG5pdlpHbTA2T2drOHpHQUo5VlgrT1BF cjJHWEVRSzRkZz09CisKK2NvbW1hbmRlckBeNy4xLjA6CiAgIHZlcnNpb24gIjcuMi4wIgogICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jb21tYW5kZXIvLS9jb21tYW5k ZXItNy4yLjAudGd6I2EzNmNiNTdkMGI1MDFjZTEwOGU0ZDIwNTU5YTE1MGEzOTFkOTdhYjciCiAg IGludGVncml0eSBzaGE1MTItUXJXWEIrWlFTVlBtSVdJaHRFTzlIK2d3SGFNR1lpRjVDaHZvSitL OVpHSEcvc1ZzYTZ5aWVzQUQxR0MveDQ2c0VUMDBYbHdvMXU0OVJWVlZ6dmNTa3c9PQpAQCAtMjg2 OCwxMiArMzAzMywxMiBAQCBjb3B5LXdlYnBhY2stcGx1Z2luQF43LjAuMDoKICAgICBzY2hlbWEt dXRpbHMgIl4zLjAuMCIKICAgICBzZXJpYWxpemUtamF2YXNjcmlwdCAiXjUuMC4xIgogCi1jb3Jl LWpzLWNvbXBhdEBeMy45LjAsIGNvcmUtanMtY29tcGF0QF4zLjkuMToKLSAgdmVyc2lvbiAiMy4x My4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jb3JlLWpzLWNv bXBhdC8tL2NvcmUtanMtY29tcGF0LTMuMTMuMC50Z3ojYTg4ZjVmYTgxZDhlOWIxNWQ3Zjk4YWJj NDQ0N2E0ZGZjYTJhMzU4ZiIKLSAgaW50ZWdyaXR5IHNoYTUxMi1qaGJJMnpwVnNrZ2ZEQzltR1Jh RG8xZ2FnZDBFMGkva1lXMCtXdmliTC9yYWZFSEtBSE82NTNoRVhJeEpIcVJsUkxJVGx1WHRSSDNB R1RMNXFKbWlmUT09Citjb3JlLWpzLWNvbXBhdEBeMy44LjEsIGNvcmUtanMtY29tcGF0QF4zLjku MDoKKyAgdmVyc2lvbiAiMy45LjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2NvcmUtanMtY29tcGF0Ly0vY29yZS1qcy1jb21wYXQtMy45LjEudGd6IzRlNTcyYWNm ZTkwYWZmNjlkNzZkOGMzNzc1OWQyMWE1YzU5YmI0NTUiCisgIGludGVncml0eSBzaGE1MTItalhB aXJNUXhya2JpaUxzQ3g5YlFQSkZBNmxsRGFkS01wWXJCSlFKMy9jNC92c1BQL2ZBZjI5aDI0dHZp Umx2d1VMNkFtWTVDSEx1Mkd2anVZdmlRcUE9PQogICBkZXBlbmRlbmNpZXM6Ci0gICAgYnJvd3Nl cnNsaXN0ICJeNC4xNi42IgorICAgIGJyb3dzZXJzbGlzdCAiXjQuMTYuMyIKICAgICBzZW12ZXIg IjcuMC4wIgogCiBjb3JlLWpzQF4yLjQuMDoKQEAgLTI4ODEsMTAgKzMwNDYsMTUgQEAgY29yZS1q c0BeMi40LjA6CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2NvcmUt anMvLS9jb3JlLWpzLTIuNi4xMi50Z3ojZDkzMzNkZmE3YjA2NWUzNDdjYzU2ODIyMTlkNmY2OTA4 NTljYzJlYyIKICAgaW50ZWdyaXR5IHNoYTUxMi1LYjJ3QzBmdnNXZlFyZ2s4SFU1bFc2VS9MY3M4 KzlhYVljeTRaRmM2RERsbzRuWjduNzBkRWdFNXJ0UjBvRzZ1ZktEVW5yd2ZXTDFtWFI1bGpEYXRy UT09CiAKLWNvcmUtanNAXjMuMTIuMSwgY29yZS1qc0BeMy4yLjE6Ci0gIHZlcnNpb24gIjMuMTMu MCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY29yZS1qcy8tL2Nv cmUtanMtMy4xMy4wLnRneiM1OGNhNDM2YmYwMWQ2OTAzYWVlM2QzNjQwODk4NjhkMGQ4OWZlNThk IgotICBpbnRlZ3JpdHkgc2hhNTEyLWlXRGJpeWhhMU01dkZ3UEZtUW52UnYrdEp6R2JGQW02WGlt SlVUME5nSFlXM3haRXMxU2tDQWNhc1dTVkZ4cEkyWGIvVjFEREpja3EzdjkwK2JRbm9nPT0KK2Nv cmUtanNAXjMuMTIuMToKKyAgdmVyc2lvbiAiMy4xMi4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9jb3JlLWpzLy0vY29yZS1qcy0zLjEyLjEudGd6IzZiNWFmNGZm NTU2MTZjMDhhNDRkMzg2ZjFmNTEwOTE3ZmYyMDQxMTIiCisgIGludGVncml0eSBzaGE1MTItTmU5 REtQSFRPYlJ1QjA5RHJ1NUFqd0tqWTRjSkhWR3UreTVmN2NvR24xRTlHcmtjM3AyaUJ3RTlBSS9u SnpzRTI5bVFGN29xK21oWVlScU9NRk4xQnc9PQorCitjb3JlLWpzQF4zLjIuMToKKyAgdmVyc2lv biAiMy45LjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2NvcmUt anMvLS9jb3JlLWpzLTMuOS4xLnRneiNjZWM4ZGU1OTNkYjhlYjJhODVmZmIwZGJkZWIzMTJjYjZl NTQ2MGFlIgorICBpbnRlZ3JpdHkgc2hhNTEyLWdTalJ2emt4UWMxempNLzVwYUFtTDRpZEpCRnp1 Sm9vK2pEakYxdFN0WUZNVjJFUmZEMDJIaGFoaENHWFV5SHhRUkc0eUZLVlNkTzZnNjJlb1JNY0Rn PT0KIAogY29yZS11dGlsLWlzQDEuMC4yLCBjb3JlLXV0aWwtaXNAfjEuMC4wOgogICB2ZXJzaW9u ICIxLjAuMiIKQEAgLTMwMDUsNiArMzE3NSwxMSBAQCBjcnlwdG8tYnJvd3NlcmlmeUBeMy4wLjA6 CiAgICAgcmFuZG9tYnl0ZXMgIl4yLjAuMCIKICAgICByYW5kb21maWxsICJeMS4wLjMiCiAKK2Nz cy1jb2xvci1rZXl3b3Jkc0BeMS4wLjA6CisgIHZlcnNpb24gIjEuMC4wIgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jc3MtY29sb3Ita2V5d29yZHMvLS9jc3MtY29s b3Ita2V5d29yZHMtMS4wLjAudGd6I2ZlYTI2MTZkYzY3NmIyOTYyNjg2YjNhZjhkYmRiZTE4MGIy NDRlMDUiCisgIGludGVncml0eSBzaGExLS9xSmhiY1oyc3BZbWhyT3ZqYjIrR0Fza1RnVT0KKwog Y3NzLWNvbG9yLW5hbWVzQF4wLjAuNDoKICAgdmVyc2lvbiAiMC4wLjQiCiAgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Nzcy1jb2xvci1uYW1lcy8tL2Nzcy1jb2xvci1u YW1lcy0wLjAuNC50Z3ojODA4YWRjMmU3OWNmODQ3MzgwNjliNjQ2Y2IyMGVjMjdiZWI2MjllMCIK QEAgLTMwMzAsMjAgKzMyMDUsMjIgQEAgY3NzLWxpbmUtYnJlYWtAMS4xLjE6CiAgICAgYmFzZTY0 LWFycmF5YnVmZmVyICJeMC4yLjAiCiAKIGNzcy1sb2FkZXJAXjUuMC4xOgotICB2ZXJzaW9uICI1 LjIuNiIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY3NzLWxvYWRl ci8tL2Nzcy1sb2FkZXItNS4yLjYudGd6I2MzYzgyYWI3N2ZlYTFmMzYwZTU4N2Q4NzFhNjgxMWY0 NDUwY2M4ZDEiCi0gIGludGVncml0eSBzaGE1MTItMHd5TjV2WE1RWnU2QnZqYnJQZFVKdmtDekdF TzI0SEM3SVM3blc0bGxjNkJCRkMrendSOUNLdFlHdjYzUHV6c2cxMEwvbzEyaW5NWTUvMkJ5emZE Nnc9PQorICB2ZXJzaW9uICI1LjEuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vY3NzLWxvYWRlci8tL2Nzcy1sb2FkZXItNS4xLjEudGd6IzkzNjJkNDQ0YTBmN2Mw OGMxNDhhMTA5NTk2NzE1YzkwNGUyNTI4NzkiCisgIGludGVncml0eSBzaGE1MTItNUZmaHBqd3R1 Umd4cW11c0RpZG93cW1MbGNiKzFIZ25FRE1zaTJKaGlVclpVY29jK2NxdyttVXRNSUYvK09mZU1Z YWFGQ0xZcDFUYUl0OUg2SS9mS0E9PQogICBkZXBlbmRlbmNpZXM6CisgICAgY2FtZWxjYXNlICJe Ni4yLjAiCisgICAgY3NzZXNjICJeMy4wLjAiCiAgICAgaWNzcy11dGlscyAiXjUuMS4wIgogICAg IGxvYWRlci11dGlscyAiXjIuMC4wIgotICAgIHBvc3Rjc3MgIl44LjIuMTUiCisgICAgcG9zdGNz cyAiXjguMi42IgogICAgIHBvc3Rjc3MtbW9kdWxlcy1leHRyYWN0LWltcG9ydHMgIl4zLjAuMCIK ICAgICBwb3N0Y3NzLW1vZHVsZXMtbG9jYWwtYnktZGVmYXVsdCAiXjQuMC4wIgogICAgIHBvc3Rj c3MtbW9kdWxlcy1zY29wZSAiXjMuMC4wIgogICAgIHBvc3Rjc3MtbW9kdWxlcy12YWx1ZXMgIl40 LjAuMCIKICAgICBwb3N0Y3NzLXZhbHVlLXBhcnNlciAiXjQuMS4wIgogICAgIHNjaGVtYS11dGls cyAiXjMuMC4wIgotICAgIHNlbXZlciAiXjcuMy41IgorICAgIHNlbXZlciAiXjcuMy40IgogCiBj c3MtbWluaW1pemVyLXdlYnBhY2stcGx1Z2luQF4zLjAuMDoKICAgdmVyc2lvbiAiMy4wLjAiCkBA IC0zMDk1LDYgKzMyNzIsMTUgQEAgY3NzLXNlbGVjdEBeNC4xLjI6CiAgICAgZG9tdXRpbHMgIl4y LjYuMCIKICAgICBudGgtY2hlY2sgIl4yLjAuMCIKIAorY3NzLXRvLXJlYWN0LW5hdGl2ZUBeMy4w LjA6CisgIHZlcnNpb24gIjMuMC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9jc3MtdG8tcmVhY3QtbmF0aXZlLy0vY3NzLXRvLXJlYWN0LW5hdGl2ZS0zLjAuMC50 Z3ojNjJkYmU2NzgwNzJhODI0YTY4OWJjZmVlMDExZmM5NmUwMmE3ZDc1NiIKKyAgaW50ZWdyaXR5 IHNoYTUxMi1SbzF5RVRaQTgxM2VveVVwMkdEQmhHMmorWWdnaWRVbXpPMS92OWVZQktSMkVIVkVu aUUyTUkvTnFwVFE5NTRCTXBUUFpGc0dOUG00NnFGQjlkcGFQUT09CisgIGRlcGVuZGVuY2llczoK KyAgICBjYW1lbGl6ZSAiXjEuMC4wIgorICAgIGNzcy1jb2xvci1rZXl3b3JkcyAiXjEuMC4wIgor ICAgIHBvc3Rjc3MtdmFsdWUtcGFyc2VyICJeNC4wLjIiCisKIGNzcy10cmVlQDEuMC4wLWFscGhh LjM3OgogICB2ZXJzaW9uICIxLjAuMC1hbHBoYS4zNyIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vY3NzLXRyZWUvLS9jc3MtdHJlZS0xLjAuMC1hbHBoYS4zNy50Z3oj OThiZWJkNjJjNGMxZDlmOTYwZWMzNDBjZjlmNzUyMmUzMDcwOWEyMiIKQEAgLTMxMTEsNiArMzI5 NywxNCBAQCBjc3MtdHJlZUBeMS4xLjI6CiAgICAgbWRuLWRhdGEgIjIuMC4xNCIKICAgICBzb3Vy Y2UtbWFwICJeMC42LjEiCiAKK2Nzcy12ZW5kb3JAXjIuMC44OgorICB2ZXJzaW9uICIyLjAuOCIK KyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY3NzLXZlbmRvci8tL2Nz cy12ZW5kb3ItMi4wLjgudGd6I2U0N2Y5MWQzYmQzMTE3ZDQ5MTgwYTNjOTM1ZTYyZTNkOWY3ZjQ0 OWQiCisgIGludGVncml0eSBzaGE1MTIteDlBcTBYVElueHJrdUZlSEtiWUM3eldZOGFpN3FKMDRL eGQ5TW52YkMxdU81RGFneG9IUWptNEp2Ryt2Q2RYT29GdENqYkwyWFNaZnhtb1lhOXVRVlE9PQor ICBkZXBlbmRlbmNpZXM6CisgICAgIkBiYWJlbC9ydW50aW1lIiAiXjcuOC4zIgorICAgIGlzLWlu LWJyb3dzZXIgIl4xLjAuMiIKKwogY3NzLXdoYXRAXjMuMi4xOgogICB2ZXJzaW9uICIzLjQuMiIK ICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY3NzLXdoYXQvLS9jc3Mt d2hhdC0zLjQuMi50Z3ojZWE3MDI2ZmNiMDE3NzdlZGJkZTUyMTI0ZTIxZjMyN2U3YWU5NTBlNCIK QEAgLTMxODcsMTAgKzMzODEsMTAgQEAgY3Nzb0BeNC4wLjIsIGNzc29AXjQuMi4wOgogICBkZXBl bmRlbmNpZXM6CiAgICAgY3NzLXRyZWUgIl4xLjEuMiIKIAotY3NzdHlwZUBeMi41Ljc6Ci0gIHZl cnNpb24gIjIuNi4xNyIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v Y3NzdHlwZS8tL2Nzc3R5cGUtMi42LjE3LnRneiM0Y2YzMGViODdlMWQxYTAwNWQ4YjY1MTBmOTUy OTI0MTNmNmExYzBlIgotICBpbnRlZ3JpdHkgc2hhNTEyLXUxd21USTFqSkd6Q0p6V25kWm84bWs0 d25QVFpkMWVPSVlUWXZ1RXlPUUdmbURsM1RyYWJDQ2ZLbk9DODZGWndXLzlkanFUbDkzM1VGL2NT NDI1aTlBPT0KK2Nzc3R5cGVAXjIuNS4yLCBjc3N0eXBlQF4yLjUuNzoKKyAgdmVyc2lvbiAiMi42 LjE2IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jc3N0eXBlLy0v Y3NzdHlwZS0yLjYuMTYudGd6IzU0NGQ2OWY1NDcwMTNiODVhNDBkMTViZmY3NWRiMzhmMzRmZTlj MzkiCisgIGludGVncml0eSBzaGE1MTItNjFGQldvREhwL2dSdHNvRGtxL0IxbldyQ1VHL29rMUUz dFVyY05iWmpzRTlDeGQ5eXpVaXJqUzMrbkFBVEI4VTRjVHRhUW1BSGJObmRvRno1TDZDOVE9PQog CiBjc3N0eXBlQF4zLjAuMjoKICAgdmVyc2lvbiAiMy4wLjgiCkBAIC0zMzI4LDYgKzM1MjIsMTEg QEAgZGVjb21wcmVzc0BeNC4wLjAsIGRlY29tcHJlc3NAXjQuMi4wOgogICAgIHBpZnkgIl4yLjMu MCIKICAgICBzdHJpcC1kaXJzICJeMi4wLjAiCiAKK2RlZXAtZGlmZkBeMS4wLjI6CisgIHZlcnNp b24gIjEuMC4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9kZWVw LWRpZmYvLS9kZWVwLWRpZmYtMS4wLjIudGd6I2FmZDNkMWY3NDkxMTViZTk2NWU4OWM2M2VkYzdh YmIxNTA2YjljMjYiCisgIGludGVncml0eSBzaGE1MTItYVdTM1VJVkgrTlBHQ0Qxa2tpK0RDVTlE dWEwMzJpU3NPNDNMcVFwY3M0UjMrZFZ2N3RYMHFCR2ppVkhKSGpwbHNvVU0yWFJPL0tCOTJnbHFj Njhhd2c9PQorCiBkZWVwLWVxdWFsLWlkZW50QF4xLjEuMToKICAgdmVyc2lvbiAiMS4xLjEiCiAg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2RlZXAtZXF1YWwtaWRlbnQv LS9kZWVwLWVxdWFsLWlkZW50LTEuMS4xLnRneiMwNmY0Yjg5ZTUzNzEwY2Q2Y2VhNGE3NzgxYzdh OTU2NjQyZGU4ZGM5IgpAQCAtMzQwNiw2ICszNjA1LDE0IEBAIGRpQF4wLjAuMToKICAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZGkvLS9kaS0wLjAuMS50Z3ojODA2NjQ5 MzI2Y2VhYTdjYWEzMzA2ZDc1ZDk4NWVhMjc0OGJhOTEzYyIKICAgaW50ZWdyaXR5IHNoYTEtZ0da Sk1tenFwOHFqTUcxMTJZWHFKMGk2a1R3PQogCitkaWZmLWFycmF5cy1vZi1vYmplY3RzQF4xLjEu ODoKKyAgdmVyc2lvbiAiMS4xLjgiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2RpZmYtYXJyYXlzLW9mLW9iamVjdHMvLS9kaWZmLWFycmF5cy1vZi1vYmplY3RzLTEu MS44LnRneiNhNWIwMDhiYjQwOWFmN2M3Zjk5N2YwMDY0ZTMxMmRmMGQ1YTFiYjI0IgorICBpbnRl Z3JpdHkgc2hhNTEyLU9BYWlEbFFSaXY1K0VBU1Vwd05TRGEvc1d5S0hLdk9EUWZhaDFDQXgwZG9z UjhPV1hlZEZYZ3hBUUhJZGVXRG9iWjg2RDZnOTNCZksyWDlFQ0lSdXF3PT0KKyAgZGVwZW5kZW5j aWVzOgorICAgIGRlZXAtZGlmZiAiXjEuMC4yIgorICAgIGxvZGFzaCAiXjQuMTcuMTkiCisKIGRp ZmZpZS1oZWxsbWFuQF41LjAuMDoKICAgdmVyc2lvbiAiNS4wLjMiCiAgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2RpZmZpZS1oZWxsbWFuLy0vZGlmZmllLWhlbGxtYW4t NS4wLjMudGd6IzQwZThlZTk4ZjU1YTIxNDk2MDcxNDY5MjFjNjNlMWFlNWYzZDI4NzUiCkBAIC0z NDQxLDYgKzM2NDgsMTQgQEAgZG9jdHJpbmVAXjMuMC4wOgogICBkZXBlbmRlbmNpZXM6CiAgICAg ZXN1dGlscyAiXjIuMC4yIgogCitkb20taGVscGVyc0BeNS4wLjE6CisgIHZlcnNpb24gIjUuMi4w IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9kb20taGVscGVycy8t L2RvbS1oZWxwZXJzLTUuMi4wLnRneiM1N2ZkMDU0YzVmOGYzNGM1MmEzZWVmZmRiN2U3ZTkzY2Qz NTdkOTViIgorICBpbnRlZ3JpdHkgc2hhNTEyLVJ1NW85K1Y4Q3B1bktuejVMR2dXWGttckgvMjBj R0t3Y0h3UzRtNzN6SXZzNTRDTjllcEVtVC9ITHFGSlcza1hwYWtBRmtFZHpneTFoemxKZTNFNE9R PT0KKyAgZGVwZW5kZW5jaWVzOgorICAgICJAYmFiZWwvcnVudGltZSIgIl43LjguNyIKKyAgICBj c3N0eXBlICJeMy4wLjIiCisKIGRvbS1zZXJpYWxpemVAXjIuMi4xOgogICB2ZXJzaW9uICIyLjIu MSIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZG9tLXNlcmlhbGl6 ZS8tL2RvbS1zZXJpYWxpemUtMi4yLjEudGd6IzU2MmFlODk5OWY0NGJlNWVhMzA3NmY1NDE5ZGNk NTllYjQzYWM5NWIiCkBAIC0zNTQzLDkgKzM3NTgsOSBAQCBkb3dubG9hZEBeNy4xLjA6CiAgICAg cGlmeSAiXjMuMC4wIgogCiBkcm9wem9uZUBeNS43LjQ6Ci0gIHZlcnNpb24gIjUuOS4yIgotICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9kcm9wem9uZS8tL2Ryb3B6b25l LTUuOS4yLnRneiMwYTkwY2UzZjZiMDExYzM5MzI0ODRmMzY4ZjRiZjA2MjIzNzI5NDUwIgotICBp bnRlZ3JpdHkgc2hhNTEyLTV0Mno1MUR6SXNXRGJUcHdjSkl2VWx3eEJidmN3ZENBcHoweWI5ZWNL SndHMTU1WG05MktNRVptSFcxQjBNem9YT0t2RndkZDBuUHU1Y3BlVmN2UEhRPT0KKyAgdmVyc2lv biAiNS44LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Ryb3B6 b25lLy0vZHJvcHpvbmUtNS44LjAudGd6IzhhM2MyN2Y0YWM2ZDI5ZTRlMzdiYmUyNTIyYjVmYzE3 ODIxMDc1ZjgiCisgIGludGVncml0eSBzaGE1MTItYUpRMFZwSHJoa203VGNBYWVVZ0NnbnlHUC83 Z05Yak5CTTZ4eHgrN0hQbExpSGZGVWEyUGtmUk1VM3dIZ0JOUHlIK1VjRi96cEpXWTNRQ3Q0bDYx eFE9PQogCiBkdXBsZXhlcjJAXjAuMS4yLCBkdXBsZXhlcjJAfjAuMS4wLCBkdXBsZXhlcjJAfjAu MS4yOgogICB2ZXJzaW9uICIwLjEuNCIKQEAgLTM1ODQsNiArMzc5OSwxMSBAQCBlanNAfjMuMS42 OgogICBkZXBlbmRlbmNpZXM6CiAgICAgamFrZSAiXjEwLjYuMSIKIAorZWxlY3Ryb24tdG8tY2hy b21pdW1AXjEuMy42NDk6CisgIHZlcnNpb24gIjEuMy43MzAiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2VsZWN0cm9uLXRvLWNocm9taXVtLy0vZWxlY3Ryb24tdG8t Y2hyb21pdW0tMS4zLjczMC50Z3ojNmUxZmFkOGYyNTA4MjdmNTUyNDY3MmU1NzJmODIzYjM0YTY0 MTdlMSIKKyAgaW50ZWdyaXR5IHNoYTUxMi0xVHIzaDA5d1hobXFYbnZEeXJSZTZNRmdUZVUwWlh5 MytyTUpXVHJPSGgvSE5lc1d3QkJyS25NeFJKV1o4NmR6czhxUWR3MmM3WkUxL3FlR0h5Z0ltQT09 CisKIGVsZWN0cm9uLXRvLWNocm9taXVtQF4xLjMuNzIzOgogICB2ZXJzaW9uICIxLjMuNzQwIgog ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9lbGVjdHJvbi10by1jaHJv bWl1bS8tL2VsZWN0cm9uLXRvLWNocm9taXVtLTEuMy43NDAudGd6I2UzOGI3ZDJiODQ4ZjYzMjE5 MWI2NDNlNmRhYmNhNTFiZTIxNjI5MjIiCkBAIC0zNjU5LDcgKzM4NzksNyBAQCBlbmdpbmUuaW9A fjQuMS4wOgogICAgIGVuZ2luZS5pby1wYXJzZXIgIn40LjAuMCIKICAgICB3cyAifjcuNC4yIgog Ci1lbmhhbmNlZC1yZXNvbHZlQF41LjguMDoKK2VuaGFuY2VkLXJlc29sdmVAXjUuNy4wOgogICB2 ZXJzaW9uICI1LjguMiIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v ZW5oYW5jZWQtcmVzb2x2ZS8tL2VuaGFuY2VkLXJlc29sdmUtNS44LjIudGd6IzE1ZGRjNzc5MzQ1 Y2JiNzNlOTdjNjExY2QwMGMwMWMxZTdiZjRkOGIiCiAgIGludGVncml0eSBzaGE1MTItRjI3b0Iz V3VIRHp2UjJET0dOVGFZeTBENW8wY25ydjhUZUk0ODJWTTRrWWdRZC9GVDlsVVF3dU5zSjBvT0h0 QlVxN2VpVzV5dHF6cDduQkZrbkwrR0E9PQpAQCAtMzY4NSw5ICszOTA1LDkgQEAgZW50aXRpZXNA XjIuMC4wOgogICBpbnRlZ3JpdHkgc2hhNTEyLXA5MmlmNU56NjE5STB3K2FrSnJMWkgwTVgwUGI1 RFgzOVhPd1FUdFhTZFFRT2FZSDAzUzF1SVFwNG1oT1p0QVhyeHE0VmlPNjdZVGlMQm8yNjM4bzlB PT0KIAogZW52LXBhdGhzQF4yLjIuMDoKLSAgdmVyc2lvbiAiMi4yLjEiCi0gIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Vudi1wYXRocy8tL2Vudi1wYXRocy0yLjIuMS50 Z3ojNDIwMzk5ZDQxNmNlMWZiZTliYzBhMDdjNjJmYTY4ZDY3ZmQwZjhmMiIKLSAgaW50ZWdyaXR5 IHNoYTUxMi0raDFsa0xLaFpNVFlqb2cxVkVwSk5HN05aSldjdWMyRERrL3FzcVNUUlJDT1hpTGpl UTFkMS91ZHJVR2hxTXhVZ0Fsd0tOWjBjZjJ1cWFuNUdMdVMyQT09CisgIHZlcnNpb24gIjIuMi4w IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9lbnYtcGF0aHMvLS9l bnYtcGF0aHMtMi4yLjAudGd6I2NkY2E1NTdkYzAwOTE1MjkxN2Q2MTY2ZTJmZWJlMWYwMzk2ODVl NDMiCisgIGludGVncml0eSBzaGE1MTItNnUwVllTQ28vT1c2SW9ENVdDTEx5OUpVR0FSYmFtZlNh dmNOWHJ5L2V1OGFIVkZlaTZDRDNTdytWR1g1YWxlYTFpOXBnUEhXMG1idTZYajB1Qmg3Z0E9PQog CiBlbnZpbmZvQF43LjcuMzoKICAgdmVyc2lvbiAiNy44LjEiCkBAIC0zODQyLDcgKzQwNjIsMTUg QEAgZXNsaW50LXJ1bGUtY29tcG9zZXJAXjAuMy4wOgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9lc2xpbnQtcnVsZS1jb21wb3Nlci8tL2VzbGludC1ydWxlLWNvbXBv c2VyLTAuMy4wLnRneiM3OTMyMGM5MjdiMGM1YzBkM2QzZDJiNzZjOGI0YTQ4OGYyNWJiYWY5Igog ICBpbnRlZ3JpdHkgc2hhNTEyLWJ0K1NoOEN0RG1uMk9hanh2Tk8rQlg3V240Q0lXTXBUUm0zTWFp S1BDUWNubmxtMENTMm1odWk2UWFvZVF1Z3MrM0tqMkVTS0VFR0pVZFZhZndoaUNnPT0KIAotZXNs aW50LXNjb3BlQF41LjEuMCwgZXNsaW50LXNjb3BlQF41LjEuMToKK2VzbGludC1zY29wZUA1LjEu MDoKKyAgdmVyc2lvbiAiNS4xLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2VzbGludC1zY29wZS8tL2VzbGludC1zY29wZS01LjEuMC50Z3ojZDBmOTcxZGZlNTlj NjllMGNhZGE2ODRiMjNkNDlkYmY4MjYwMGNlNSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1paUdSdnR4 V3FndHg1bThFeVFVSmloQmxvRTRFblllR0UvYnoxd1NQd0pFNnRadUpVdEhsaHFETTRYajJ1a0U4 RHl5MStIQ1o0aEUwZnpJVk16YjU4dz09CisgIGRlcGVuZGVuY2llczoKKyAgICBlc3JlY3Vyc2Ug Il40LjEuMCIKKyAgICBlc3RyYXZlcnNlICJeNC4xLjEiCisKK2VzbGludC1zY29wZUBeNS4xLjE6 CiAgIHZlcnNpb24gIjUuMS4xIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9lc2xpbnQtc2NvcGUvLS9lc2xpbnQtc2NvcGUtNS4xLjEudGd6I2U3ODZlNTlhNjZjYjky YjNmNmMxZmIwZDUwOGFhYjE3NDg0OGY0OGMiCiAgIGludGVncml0eSBzaGE1MTItMk54d2JGL2ha MEtwZXBZTjBjTmJvK0ZONlhvSzdHYUhsUWhneC9oSVpsNlZhMGJGNDVSUU9Pd2hMSXk4bFFEYnVD aWFkU0xDQm5IMkNGWXF1aXQ1Ync9PQpAQCAtMzg2MiwzNiArNDA5MCwzNCBAQCBlc2xpbnQtdmlz aXRvci1rZXlzQF4xLjEuMCwgZXNsaW50LXZpc2l0b3Ita2V5c0BeMS4zLjA6CiAgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2VzbGludC12aXNpdG9yLWtleXMvLS9lc2xp bnQtdmlzaXRvci1rZXlzLTEuMy4wLnRneiMzMGViZDFlZjdjMmZkZmYwMWMzYTRmMTUxMDQ0YWYy NWZhYjA1MjNlIgogICBpbnRlZ3JpdHkgc2hhNTEyLTZKNzJOOFVOYTQ2MndhL0tGT0R0L1BKM0lV NjBTRHBDM1FYQzFIamMxQlhYcGZMMkM5UjUrQVU3amhlMEY2R1JFcVZNaDRKdXUrTlk3eG4rNmRp cFVRPT0KIAotZXNsaW50LXZpc2l0b3Ita2V5c0BeMi4wLjAsIGVzbGludC12aXNpdG9yLWtleXNA XjIuMS4wOgorZXNsaW50LXZpc2l0b3Ita2V5c0BeMi4wLjA6CiAgIHZlcnNpb24gIjIuMS4wIgog ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9lc2xpbnQtdmlzaXRvci1r ZXlzLy0vZXNsaW50LXZpc2l0b3Ita2V5cy0yLjEuMC50Z3ojZjY1MzI4MjU5MzA1OTI3MzkyYzkz OGVkNDRlYjBhNWM5YjJiZDMwMyIKICAgaW50ZWdyaXR5IHNoYTUxMi0wclNtUkJ6WGdEeklzRDZt R2RKZ2V2emdlekk1MzRDZXI1TC92eU1YMGtIelQvamlCNDNqUmhkOVlVbE1HWUxReTJ6cHJObW9U OHFhc0NHdFkrUWFLdz09CiAKIGVzbGludEBeNy4xOS4wOgotICB2ZXJzaW9uICI3LjI3LjAiCi0g IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2VzbGludC8tL2VzbGludC03 LjI3LjAudGd6IzY2NWExNTA2ZDhmOTU2NTVjOTI3NGQ4NGJkNzhmNzE2NmIwN2U5YzciCi0gIGlu dGVncml0eSBzaGE1MTItSlp1UjZMYTJaRjBVRDM4NGxjYm5kMENnZzZRSmppQ3doTUQ2ZVU0aC9W R1BjVkd3YXdOTnpLVTQxdGdva0dYbmZqT095STZRSWZmdGhoSlRQenp1UkE9PQorICB2ZXJzaW9u ICI3LjIxLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2VzbGlu dC8tL2VzbGludC03LjIxLjAudGd6IzRlY2Q1YjhjNWI0NGY1ZGVkYzliOGExMTBiMDFiYmZlYjE1 ZDFjODMiCisgIGludGVncml0eSBzaGE1MTItVzJhSmJYcE1Ob2ZVcDB6dFFhRjQwZnZlU3NKQmps U0NTV3B5Ly9nemZUdndDK1VTcy9uY2VCckttbEpPaU04cjFiTHdQMkV1WWtDcUFybi82UVRJZ2c9 PQogICBkZXBlbmRlbmNpZXM6CiAgICAgIkBiYWJlbC9jb2RlLWZyYW1lIiAiNy4xMi4xMSIKLSAg ICAiQGVzbGludC9lc2xpbnRyYyIgIl4wLjQuMSIKKyAgICAiQGVzbGludC9lc2xpbnRyYyIgIl4w LjQuMCIKICAgICBhanYgIl42LjEwLjAiCiAgICAgY2hhbGsgIl40LjAuMCIKICAgICBjcm9zcy1z cGF3biAiXjcuMC4yIgogICAgIGRlYnVnICJeNC4wLjEiCiAgICAgZG9jdHJpbmUgIl4zLjAuMCIK ICAgICBlbnF1aXJlciAiXjIuMy41IgotICAgIGVzY2FwZS1zdHJpbmctcmVnZXhwICJeNC4wLjAi CiAgICAgZXNsaW50LXNjb3BlICJeNS4xLjEiCiAgICAgZXNsaW50LXV0aWxzICJeMi4xLjAiCiAg ICAgZXNsaW50LXZpc2l0b3Ita2V5cyAiXjIuMC4wIgogICAgIGVzcHJlZSAiXjcuMy4xIgogICAg IGVzcXVlcnkgIl4xLjQuMCIKICAgICBlc3V0aWxzICJeMi4wLjIiCi0gICAgZmFzdC1kZWVwLWVx dWFsICJeMy4xLjMiCiAgICAgZmlsZS1lbnRyeS1jYWNoZSAiXjYuMC4xIgogICAgIGZ1bmN0aW9u YWwtcmVkLWJsYWNrLXRyZWUgIl4xLjAuMSIKICAgICBnbG9iLXBhcmVudCAiXjUuMC4wIgotICAg IGdsb2JhbHMgIl4xMy42LjAiCisgICAgZ2xvYmFscyAiXjEyLjEuMCIKICAgICBpZ25vcmUgIl40 LjAuNiIKICAgICBpbXBvcnQtZnJlc2ggIl4zLjAuMCIKICAgICBpbXVybXVyaGFzaCAiXjAuMS40 IgpAQCAtMzg5OSw3ICs0MTI1LDcgQEAgZXNsaW50QF43LjE5LjA6CiAgICAganMteWFtbCAiXjMu MTMuMSIKICAgICBqc29uLXN0YWJsZS1zdHJpbmdpZnktd2l0aG91dC1qc29uaWZ5ICJeMS4wLjEi CiAgICAgbGV2biAiXjAuNC4xIgotICAgIGxvZGFzaC5tZXJnZSAiXjQuNi4yIgorICAgIGxvZGFz aCAiXjQuMTcuMjAiCiAgICAgbWluaW1hdGNoICJeMy4wLjQiCiAgICAgbmF0dXJhbC1jb21wYXJl ICJeMS40LjAiCiAgICAgb3B0aW9uYXRvciAiXjAuOS4xIgpAQCAtMzkwOCw3ICs0MTM0LDcgQEAg ZXNsaW50QF43LjE5LjA6CiAgICAgc2VtdmVyICJeNy4yLjEiCiAgICAgc3RyaXAtYW5zaSAiXjYu MC4wIgogICAgIHN0cmlwLWpzb24tY29tbWVudHMgIl4zLjEuMCIKLSAgICB0YWJsZSAiXjYuMC45 IgorICAgIHRhYmxlICJeNi4wLjQiCiAgICAgdGV4dC10YWJsZSAiXjAuMi4wIgogICAgIHY4LWNv bXBpbGUtY2FjaGUgIl4yLjAuMyIKIApAQCAtMzkzMyw3ICs0MTU5LDcgQEAgZXNxdWVyeUBeMS40 LjA6CiAgIGRlcGVuZGVuY2llczoKICAgICBlc3RyYXZlcnNlICJeNS4xLjAiCiAKLWVzcmVjdXJz ZUBeNC4zLjA6Citlc3JlY3Vyc2VAXjQuMS4wLCBlc3JlY3Vyc2VAXjQuMy4wOgogICB2ZXJzaW9u ICI0LjMuMCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZXNyZWN1 cnNlLy0vZXNyZWN1cnNlLTQuMy4wLnRneiM3YWQ3OTY0ZDY3OWFiYjI4YmVlNzJjZWM2Mzc1OGIx YzVkMmM5OTIxIgogICBpbnRlZ3JpdHkgc2hhNTEyLUttZktMM2I2RytSWHZQOE4xdnIzVHExa0wv b0NGZ24yTllYRXRxUDgvTDNwS2FwVUE0RzhjRlZhb0YzU1UzMjNDRDRYeXBSL2ZmaW9IbWt0aTYv VGFnPT0KQEAgLTQyOTcsOSArNDUyMyw5IEBAIGZsYXR0ZWRAXjMuMS4wOgogICBpbnRlZ3JpdHkg c2hhNTEyLXpBb0FRaXVkeStyNVN2blN3M0tKeTVvcy9vUkpZSHpyemphL3RCRHFyWnROaFV3OGJ0 Nnk4T0J6TVdjaldyKzhsaVY4RWI2eU9odzhXWjdWRlo1WnpBPT0KIAogZm9sbG93LXJlZGlyZWN0 c0BeMS4wLjAsIGZvbGxvdy1yZWRpcmVjdHNAXjEuMTAuMDoKLSAgdmVyc2lvbiAiMS4xNC4xIgot ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9mb2xsb3ctcmVkaXJlY3Rz Ly0vZm9sbG93LXJlZGlyZWN0cy0xLjE0LjEudGd6I2Q5MTE0ZGVkMGExY2ZkZDMzNGUxNjRlNjY2 MmFkMDJiZmQ5MWZmNDMiCi0gIGludGVncml0eSBzaGE1MTItSFdxRGdUN1pFa3FSekJ2YzJzNjR2 U1ovaGZPY2VFb2wzYWMvN3RLd3p1dkV5V3gzLzRVZWdYaDVvQk9Jb3RrR3NPYnlrM3h6bm5TUlZB REJnV1NRVmc9PQorICB2ZXJzaW9uICIxLjEzLjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL2ZvbGxvdy1yZWRpcmVjdHMvLS9mb2xsb3ctcmVkaXJlY3RzLTEuMTMu My50Z3ojZTU1OThhZDUwMTc0YzFiYzRlODcyMzAxZTgyYWMyY2Q5N2Y5MDI2NyIKKyAgaW50ZWdy aXR5IHNoYTUxMi1EVWdsNitIRHpCMGlFcHROUUVYTHgvS2hUbURiOHRaVUhTZUxxcG5qcGtuUjcw SDBuQzJ0OU43M0JLNmZONGhPdko4NHBLbElRVlE0azVGRmxCZWRLQT09CiAKIGZvcmVhY2hAXjIu MC41OgogICB2ZXJzaW9uICIyLjAuNSIKQEAgLTQ0OTYsOSArNDcyMiw5IEBAIGdsb2ItdG8tcmVn ZXhwQF4wLjQuMToKICAgaW50ZWdyaXR5IHNoYTUxMi1sa1gxSEpYd3lNY3Bydy81WVVaYzJzN0Ry cEFpSEIyMS9WK0UxckhVclZOb2trdkI2YnFNelQwVmZWNi84NlpOYWJ0MWsxNFlPSWFUN25Edk9Y M0lpdz09CiAKIGdsb2JAXjcuMS4wLCBnbG9iQF43LjEuMywgZ2xvYkBeNy4xLjQsIGdsb2JAXjcu MS42OgotICB2ZXJzaW9uICI3LjEuNyIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vZ2xvYi8tL2dsb2ItNy4xLjcudGd6IzNiMTkzZTkyMzNmMDFkNDJkMGIzZjc4Mjk0 YmJlZWI0MThmOTRhOTAiCi0gIGludGVncml0eSBzaGE1MTItT3ZEOUVOelBMYmVnRU5uWVA1VVVm SklpclRnNCtYd01XR2FRZlFUWTBKZW54TnZ2SUtQM1UzL3RBUVNQSXUvbEh4WFlTWm1wWGxVSGVx QUlkS3pCTFE9PQorICB2ZXJzaW9uICI3LjEuNiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vZ2xvYi8tL2dsb2ItNy4xLjYudGd6IzE0MWYzM2I4MWE3YzI0OTJlMTI1 NTk0MzA3NDgwYzQ2Njc5Mjc4YTYiCisgIGludGVncml0eSBzaGE1MTItTHdheHd5WjcyTGs3dlpJ TnROTnJ5d1gwWnVMeVN0cmREdGFiZWZaS0FZNVpHSmhWdGdkem5sdVJlc3hObVBpdEUwU0FPK08y NnNXVEhlS1NJMndNQkE9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgZnMucmVhbHBhdGggIl4xLjAu MCIKICAgICBpbmZsaWdodCAiXjEuMC40IgpAQCAtNDUxOSwxMyArNDc0NSw2IEBAIGdsb2JhbHNA XjEyLjEuMDoKICAgZGVwZW5kZW5jaWVzOgogICAgIHR5cGUtZmVzdCAiXjAuOC4xIgogCi1nbG9i YWxzQF4xMy42LjA6Ci0gIHZlcnNpb24gIjEzLjkuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vZ2xvYmFscy8tL2dsb2JhbHMtMTMuOS4wLnRneiM0YmYyYmY2MzVi MzM0YTE3M2ZiMWRhZjdjNWU2YjIxOGVjZGMwNmNiIgotICBpbnRlZ3JpdHkgc2hhNTEyLTc0L0Zk dXdJL0phSXJyMUg4ZTcxVWJERSs1eDdwSVBzMUMycnJ3QzUyU3N6T28wNDNDc1dPWkVNVzdvMlk1 OHh3bTliKzBSQktEeFk1bjJzVXBFRnhBPT0KLSAgZGVwZW5kZW5jaWVzOgotICAgIHR5cGUtZmVz dCAiXjAuMjAuMiIKLQogZ2xvYmFsc0BeOS4xOC4wOgogICB2ZXJzaW9uICI5LjE4LjAiCiAgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2dsb2JhbHMvLS9nbG9iYWxzLTku MTguMC50Z3ojYWEzODk2YjNlNjliNDg3ZjE3ZTMxZWQyMTQzZDY5YThlMzBjMmQ4YSIKQEAgLTQ2 NTEsNyArNDg3MCw3IEBAIGhhcy1hbnNpQF4yLjAuMDoKICAgZGVwZW5kZW5jaWVzOgogICAgIGFu c2ktcmVnZXggIl4yLjAuMCIKIAotaGFzLWJpZ2ludHNAXjEuMC4xOgoraGFzLWJpZ2ludHNAXjEu MC4wOgogICB2ZXJzaW9uICIxLjAuMSIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vaGFzLWJpZ2ludHMvLS9oYXMtYmlnaW50cy0xLjAuMS50Z3ojNjRmZTZhY2IwMjA2 NzNlM2I3OGRiMDM1YTVhZjY5YWE5ZDA3YjExMyIKICAgaW50ZWdyaXR5IHNoYTUxMi1MU0JTMkxq Yk5CVGY2Mjg3SkViRXp2SmdmdGtGNXFGa21DbzloRFJwQXpLaFVPbEoraHg4ZGQ0VVNzMDBTZ3NV TndjNDYxN0o5a2k1WXRFQ2xNMmZmQT09CkBAIC00Njc2LDcgKzQ4OTUsNyBAQCBoYXMtc3ltYm9s LXN1cHBvcnQteEBeMS40LjE6CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL2hhcy1zeW1ib2wtc3VwcG9ydC14Ly0vaGFzLXN5bWJvbC1zdXBwb3J0LXgtMS40LjIudGd6 IzE0MDlmOThiYzAwMjQ3ZGE0NWRhNjdjZWUwYTM2ZjI4MmZmMjY0NTUiCiAgIGludGVncml0eSBz aGE1MTItM1RvT3ZhKytIYVcrZUNwZ3FackNmTjUxSVBCKzdiSk5WVDZDVUFUenVlQjVIZWI4bzZO YW0wVjNIRzVkbER2WlUxR241UUxjYmFoaUt3L1hWazVKSnc9PQogCi1oYXMtc3ltYm9sc0BeMS4w LjEsIGhhcy1zeW1ib2xzQF4xLjAuMjoKK2hhcy1zeW1ib2xzQF4xLjAuMCwgaGFzLXN5bWJvbHNA XjEuMC4xLCBoYXMtc3ltYm9sc0BeMS4wLjI6CiAgIHZlcnNpb24gIjEuMC4yIgogICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9oYXMtc3ltYm9scy8tL2hhcy1zeW1ib2xz LTEuMC4yLnRneiMxNjVkMzA3MGMwMDMwOTc1MmExMjM2YTQ3OTMzMWUzYWM1NmYxNDIzIgogICBp bnRlZ3JpdHkgc2hhNTEyLWNoWGE3OXJML1VDMktsWDE3am8zdlJHejBhemFXRXg1dEdxWmc1cE8z TlV5RUpWQjE3ZE1ydVFsekNDT2ZVdkVsZ2hLY201MTk0K0JDUnZpMlJ2L0d3PT0KQEAgLTQ3NDEs NyArNDk2MCw3IEBAIGhtYWMtZHJiZ0BeMS4wLjE6CiAgICAgbWluaW1hbGlzdGljLWFzc2VydCAi XjEuMC4wIgogICAgIG1pbmltYWxpc3RpYy1jcnlwdG8tdXRpbHMgIl4xLjAuMSIKIAotaG9pc3Qt bm9uLXJlYWN0LXN0YXRpY3NAXjMuMy4xOgoraG9pc3Qtbm9uLXJlYWN0LXN0YXRpY3NAXjMuMC4w LCBob2lzdC1ub24tcmVhY3Qtc3RhdGljc0BeMy4zLjEsIGhvaXN0LW5vbi1yZWFjdC1zdGF0aWNz QF4zLjMuMjoKICAgdmVyc2lvbiAiMy4zLjIiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL2hvaXN0LW5vbi1yZWFjdC1zdGF0aWNzLy0vaG9pc3Qtbm9uLXJlYWN0LXN0 YXRpY3MtMy4zLjIudGd6I2VjZTBhY2FmNzFkNjJjMjk2OWMyZWM1OWZlZmY0MmE0YjFhODViNDUi CiAgIGludGVncml0eSBzaGE1MTItL2dHaXZ4aThKUEtXTm0vVzBqU216Y01QcGZwUExjM2RZLzZH eGhYMmhROWlHajNhRGZrbFY0RVQ3TmpLcFNpbkxwSjV2YWZhOWlpR0lFWmcxMFNmQnc9PQpAQCAt NDg0Nyw2ICs1MDY2LDExIEBAIGh1bWFuLXNpZ25hbHNAXjIuMS4wOgogICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9odW1hbi1zaWduYWxzLy0vaHVtYW4tc2lnbmFscy0y LjEuMC50Z3ojZGM5MWZjYmE0MmU0ZDA2ZTRhYmFlZDMzYjNlN2EzYzAyZjUxNGVhMCIKICAgaW50 ZWdyaXR5IHNoYTUxMi1CNEZGWjZxL1Qyamhoa3Nna2JFVzNIQnZXSWZEVzg1c25rUWdhd3QwN1M3 SjVRWFRrNkJrTlYrMHlBZVpyTTVRcE1BZFlsb2NHb2xqbjBzSi9XUWtGdz09CiAKK2h5cGhlbmF0 ZS1zdHlsZS1uYW1lQF4xLjAuMzoKKyAgdmVyc2lvbiAiMS4wLjQiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2h5cGhlbmF0ZS1zdHlsZS1uYW1lLy0vaHlwaGVuYXRl LXN0eWxlLW5hbWUtMS4wLjQudGd6IzY5MTg3OWFmOGUyMjBhZWE1NzUwZTg4MjdkYjRlZjYyYTU0 ZTM2MWQiCisgIGludGVncml0eSBzaGE1MTIteWdHWkxqbVhmUEhqK1pXaDZMd2JDMzdsNDNNaGZ6 dHhldGJGQ29ZVE0yVmprSVVwZUhnU05uN1FJeVZGajdZUTFXbDlDYnc1c2hvbFZKUHpXdkMyTVE9 PQorCiBpY29udi1saXRlQDAuNC4yNDoKICAgdmVyc2lvbiAiMC40LjI0IgogICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pY29udi1saXRlLy0vaWNvbnYtbGl0ZS0wLjQu MjQudGd6IzIwMjJiNGIyNWZiZGRjMjFkMmY1MjQ5NzRhNDc0YWFmZTczMzkwOGIiCkBAIC00OTc1 LDYgKzUxOTksMTMgQEAgaW11cm11cmhhc2hAXjAuMS40OgogICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9pbXVybXVyaGFzaC8tL2ltdXJtdXJoYXNoLTAuMS40LnRneiM5 MjE4YjliMmI5MjhhMjM4YjEzZGM0ZmI2YjZkNTc2ZjIzMTQ1M2VhIgogICBpbnRlZ3JpdHkgc2hh MS1raGk1c3Jrb29qaXhQY1Q3YTIxWGJ5TVVVK289CiAKK2luZGVmaW5pdGUtb2JzZXJ2YWJsZUBe Mi4wLjE6CisgIHZlcnNpb24gIjIuMC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9pbmRlZmluaXRlLW9ic2VydmFibGUvLS9pbmRlZmluaXRlLW9ic2VydmFibGUt Mi4wLjEudGd6IzU3NGFmMjliZmJjMTdlYjU5NDc3OTM3OTdiZGRjOTRjOWQ4NTk0MDAiCisgIGlu dGVncml0eSBzaGE1MTItRzh2Z21vcmsrNkg5UzhsVUFnMWd0WEVqMkp4SVFUbzBnMlBiRmlZT2Rq a3ppU0kwRjdVWUJpVndoWlJ1aXhoQkNOR2N6QWxzMzQrNUhKUHlaeXN2eFE9PQorICBkZXBlbmRl bmNpZXM6CisgICAgc3ltYm9sLW9ic2VydmFibGUgIjEuMi4wIgorCiBpbmRlbnQtc3RyaW5nQF4y LjEuMDoKICAgdmVyc2lvbiAiMi4xLjAiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2luZGVudC1zdHJpbmcvLS9pbmRlbnQtc3RyaW5nLTIuMS4wLnRneiM4ZTJkNDgz NDg3NDIxMjFiNGE4MjE4YjdhMTM3ZTlhNTIwNDlkYzgwIgpAQCAtNTA5Myw5ICs1MzI0LDkgQEAg aXMtYXJyYXlpc2hAXjAuMi4xOgogICBpbnRlZ3JpdHkgc2hhMS1kOG1ZUUZKNnFPeXhxTHBwZTRC a1ducVNhcDA9CiAKIGlzLWJpZ2ludEBeMS4wLjE6Ci0gIHZlcnNpb24gIjEuMC4yIgotICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pcy1iaWdpbnQvLS9pcy1iaWdpbnQt MS4wLjIudGd6I2ZmYjM4MTQ0MjUwMzIzNWFkMjQ1ZWE4OWU0NWIzZGJmZjA0MGVlNWEiCi0gIGlu dGVncml0eSBzaGE1MTItMEpWNStTT0NRa0lkempCSzlidUFSY1Y4MDREZHU3QTBRZXQ2c0hpM0Zp bUU5bmU2bTRCR1FaZlJuK05aaVhiQms0RjRYbUhmRFpJaXBMajlwWDhkU0E9PQorICB2ZXJzaW9u ICIxLjAuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vaXMtYmln aW50Ly0vaXMtYmlnaW50LTEuMC4xLnRneiM2OTIzMDUxZGZjYmM3NjQyNzg1NDBiOWNlMGU2YjMy MTNhYTVlYmMyIgorICBpbnRlZ3JpdHkgc2hhNTEyLUowRUxGNHlIRnhIeTBjbVN4WnVoZURPejJs dU9kVnZxandtRWNqOEgvTDFKSGV1RURTRGJlUlArRGs5a0ZWazVSVEZ6YnVjSjJLYjlGN2l4WTJR YUNnPT0KIAogaXMtYmluYXJ5LXBhdGhAfjIuMS4wOgogICB2ZXJzaW9uICIyLjEuMCIKQEAgLTUx MDUsMTEgKzUzMzYsMTEgQEAgaXMtYmluYXJ5LXBhdGhAfjIuMS4wOgogICAgIGJpbmFyeS1leHRl bnNpb25zICJeMi4wLjAiCiAKIGlzLWJvb2xlYW4tb2JqZWN0QF4xLjAuMSwgaXMtYm9vbGVhbi1v YmplY3RAXjEuMS4wOgotICB2ZXJzaW9uICIxLjEuMSIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vaXMtYm9vbGVhbi1vYmplY3QvLS9pcy1ib29sZWFuLW9iamVjdC0x LjEuMS50Z3ojM2MwODc4ZjAzNWNiODIxMjI4ZDM1MGQyZTFlMzY3MTk3MTZhM2RlOCIKLSAgaW50 ZWdyaXR5IHNoYTUxMi1iWGRRV2tFQ0JVSUFjQ2tlSDF1bndKTElwWllhYTVWdnV5Z1N5Uy9jMmxm NzE5bVRLWkRVNVVkRFJscGQwMVVqQURnbVc4UmZxYVArbVJhVlBkci9OZz09CisgIHZlcnNpb24g IjEuMS4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pcy1ib29s ZWFuLW9iamVjdC8tL2lzLWJvb2xlYW4tb2JqZWN0LTEuMS4wLnRneiNlMmFhYWQzYTNhOGZjYTM0 YzI4ZjZlZWUxMzViMTU2ZWQyNTg3ZmYwIgorICBpbnRlZ3JpdHkgc2hhNTEyLWE3VXByeDhVdEQr SFdkeVl3bkQxK0V4dFRncVF0RDJrLzF5Smd0WFA2d25NbThieWhrb1RaUmwrOTVMTFRocHpOWko1 YUV2aTQ2Y2RIK2F5TUZSd21BPT0KICAgZGVwZW5kZW5jaWVzOgotICAgIGNhbGwtYmluZCAiXjEu MC4yIgorICAgIGNhbGwtYmluZCAiXjEuMC4wIgogCiBpcy1idWZmZXJAXjEuMS4wOgogICB2ZXJz aW9uICIxLjEuNiIKQEAgLTUxMzksOSArNTM3MCw5IEBAIGlzLWNvbG9yLXN0b3BAXjEuMS4wOgog ICAgIHJnYmEtcmVnZXggIl4xLjAuMCIKIAogaXMtY29yZS1tb2R1bGVAXjIuMi4wOgotICB2ZXJz aW9uICIyLjQuMCIKLSAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vaXMt Y29yZS1tb2R1bGUvLS9pcy1jb3JlLW1vZHVsZS0yLjQuMC50Z3ojOGU5ZmM4ZTE1MDI3YjAxMTQx ODAyNmU5OGYwZTZmNGQ4NjMwNWNjMSIKLSAgaW50ZWdyaXR5IHNoYTUxMi02QTJma2ZxMXJmZVFa anhyWkpHZXJwTENUSFJORUJpU2dudTArb2JlSnBFUFpSVW9vSGdzaXp2enYwWmpKd096M2lXSUhk SnRWV0ovdG1QcjNEMjEvQT09CisgIHZlcnNpb24gIjIuMi4wIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pcy1jb3JlLW1vZHVsZS8tL2lzLWNvcmUtbW9kdWxlLTIu Mi4wLnRneiM5NzAzN2VmM2Q1MjIyNGQ4NTE2M2Y1NTk3YjJiNjNkOWFmZWQ5ODFhIgorICBpbnRl Z3JpdHkgc2hhNTEyLVhSQWZBZHl5WTVGNWNPWG43aFlRRHFoMlhtaWkrREVmSWNRR3hLL3VOd01I aElrUFdPMGc4bXNYY2J6TGUrTXBHb1I5NTFNbHFNLzJpSWxVNHZLRGRRPT0KICAgZGVwZW5kZW5j aWVzOgogICAgIGhhcyAiXjEuMC4zIgogCkBAIC01MTk0LDYgKzU0MjUsMTEgQEAgaXMtZ2xvYkBe NC4wLjAsIGlzLWdsb2JAXjQuMC4xLCBpcy1nbG9iQH40LjAuMToKICAgZGVwZW5kZW5jaWVzOgog ICAgIGlzLWV4dGdsb2IgIl4yLjEuMSIKIAoraXMtaW4tYnJvd3NlckBeMS4wLjIsIGlzLWluLWJy b3dzZXJAXjEuMS4zOgorICB2ZXJzaW9uICIxLjEuMyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vaXMtaW4tYnJvd3Nlci8tL2lzLWluLWJyb3dzZXItMS4xLjMudGd6 IzU2ZmY0ZGI2ODNhMDc4YzYwODJlYjk1ZGFkN2RjNjJlMWQwNGY4MzUiCisgIGludGVncml0eSBz aGExLVZ2OU50b09nZU1ZSUxybGRyWDNHTGgwRStEVT0KKwogaXMtanBnQF4yLjAuMDoKICAgdmVy c2lvbiAiMi4wLjAiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lz LWpwZy8tL2lzLWpwZy0yLjAuMC50Z3ojMmUxOTk3ZmE2ZTkxNjZlYWFjMDI0MmRhYWU0NDM0MDNl NGVmMWQ5NyIKQEAgLTUyNDEsNyArNTQ3NywxNSBAQCBpcy1wbmdAXjIuMC4wOgogICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pcy1wbmcvLS9pcy1wbmctMi4wLjAudGd6 I2VlOGNiYzllOWIwNTA0MjVjZWRlZWI0YTZmYjc0YTY0OWIwYTRhOGQiCiAgIGludGVncml0eSBz aGE1MTItNEtQR2l6YVZHajJMSzd4d0pJejhvNUIydWJ1MUQvdmNRc2dPR0ZFRGxwY3ZnWkh0bzRn Qm55ZDBpZzdXcys2N2l4bXdLb05tdTBoWW5wbzZBYUtiNWc9PQogCi1pcy1yZWdleEBeMS4wLjUs IGlzLXJlZ2V4QF4xLjEuMCwgaXMtcmVnZXhAXjEuMS4zOgoraXMtcmVnZXhAXjEuMC41LCBpcy1y ZWdleEBeMS4xLjA6CisgIHZlcnNpb24gIjEuMS4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9pcy1yZWdleC8tL2lzLXJlZ2V4LTEuMS4yLnRneiM4MWM4ZWJkZTRk YjE0MmYyY2YxYzUzZmM4NmQ2YTQ1Nzg4MjY2MjUxIgorICBpbnRlZ3JpdHkgc2hhNTEyLWF4dmRo YjVwZGhFVlRocUp6WVh3TWxWdVp3QytGRjJEcGNPaFRTK3kvOGpWcTR0cnh5UGdmY3dJeElLaXll dUxsU1FZS2ttVWFQUUo4WkU0eU5LWERnPT0KKyAgZGVwZW5kZW5jaWVzOgorICAgIGNhbGwtYmlu ZCAiXjEuMC4yIgorICAgIGhhcy1zeW1ib2xzICJeMS4wLjEiCisKK2lzLXJlZ2V4QF4xLjEuMzoK ICAgdmVyc2lvbiAiMS4xLjMiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL2lzLXJlZ2V4Ly0vaXMtcmVnZXgtMS4xLjMudGd6I2QwMjlmOWFmZjY0NDhiOTNlYmJlM2Yz M2RhYzcxNTExZmRjYmVmOWYiCiAgIGludGVncml0eSBzaGE1MTItcVNWWEZ6MjhITTd5K0lXWDZ2 TENzZXhkbHZ6VDFQSk5GU0J1YVFMUTVvMElFdzhVRFlXNi8yK2VDTVZ5SXNiTThDTkxYMmEvUVdt U3B5eFlFSFk3Q1E9PQpAQCAtNTI4NywxMSArNTUzMSwxMSBAQCBpcy1zdmdAXjQuMi4xOgogICAg IGZhc3QteG1sLXBhcnNlciAiXjMuMTkuMCIKIAogaXMtc3ltYm9sQF4xLjAuMiwgaXMtc3ltYm9s QF4xLjAuMzoKLSAgdmVyc2lvbiAiMS4wLjQiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL2lzLXN5bWJvbC8tL2lzLXN5bWJvbC0xLjAuNC50Z3ojYTZkYWM5M2I2MzVi MDYzY2E2ODcyMjM2ZGU4ODkxMGE1N2FmMTM5YyIKLSAgaW50ZWdyaXR5IHNoYTUxMi1DL0NQQnFL V252ZGN4cUlBUnh5T2g0djFVVUVPQ0hwZ0RhMFdZZ3BLREZNc3pjclBjZmZnNXVod1NnUENMRDJX V3htcTZpc2lzejg3dHpUMDF0dUdoZz09CisgIHZlcnNpb24gIjEuMC4zIgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pcy1zeW1ib2wvLS9pcy1zeW1ib2wtMS4wLjMu dGd6IzM4ZTEwMTRiOWU2MzI5YmUwZGU5ZDI0YTQxNGZkNzQ0MWVjNjE5MzciCisgIGludGVncml0 eSBzaGE1MTItT3dpamhhUlNncXZobS8wWmRBY1hOWnQ5bFlkS0ZwY1JEVDVVTFV1WVhQb1Q3OTRV Tk9kVStncFQ2UnpvN2I0VjJIVWwvb3A2R3FZODk0QVp3djlmYVE9PQogICBkZXBlbmRlbmNpZXM6 Ci0gICAgaGFzLXN5bWJvbHMgIl4xLjAuMiIKKyAgICBoYXMtc3ltYm9scyAiXjEuMC4xIgogCiBp cy10eXBlZC1hcnJheUBeMS4xLjM6CiAgIHZlcnNpb24gIjEuMS41IgpAQCAtNTYwNSw2ICs1ODQ5 LDc3IEBAIGpzcHJpbUBeMS4yLjI6CiAgICAganNvbi1zY2hlbWEgIjAuMi4zIgogICAgIHZlcnJv ciAiMS4xMC4wIgogCitqc3MtcGx1Z2luLWNhbWVsLWNhc2VAXjEwLjUuMToKKyAgdmVyc2lvbiAi MTAuNS4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9qc3MtcGx1 Z2luLWNhbWVsLWNhc2UvLS9qc3MtcGx1Z2luLWNhbWVsLWNhc2UtMTAuNS4xLnRneiM0MjdiMjRh OTk1MWI0YzJlYWE3ZTNkNTI2N2FjZDJlMDBiMDkzNGY5IgorICBpbnRlZ3JpdHkgc2hhNTEyLTkr b3ltQTd3UHRzd20renhWdGkxcWlvd0M1cTdiUmRDSk5PUnRuczJKVWovUUhwMlFQWFl3U05SRDgr RDJDeTMvQ0VNdGRKemxObnQ1YVhtcFM2TkFnPT0KKyAgZGVwZW5kZW5jaWVzOgorICAgICJAYmFi ZWwvcnVudGltZSIgIl43LjMuMSIKKyAgICBoeXBoZW5hdGUtc3R5bGUtbmFtZSAiXjEuMC4zIgor ICAgIGpzcyAiMTAuNS4xIgorCitqc3MtcGx1Z2luLWRlZmF1bHQtdW5pdEBeMTAuNS4xOgorICB2 ZXJzaW9uICIxMC41LjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L2pzcy1wbHVnaW4tZGVmYXVsdC11bml0Ly0vanNzLXBsdWdpbi1kZWZhdWx0LXVuaXQtMTAuNS4x LnRneiMyYmUzODVkNzFkNTBhZWUyZWU4MWMyYTlhYzcwZTAwNTkyZWQ4NjFiIgorICBpbnRlZ3Jp dHkgc2hhNTEyLUQ0OGhKQmM5VGozUHVzdmxpbGxIVzhGejB5L1FxQTdNTm1UWURRYVNCLzdtVHJD Wmp0N0FWUlJPRXhvT0hFdGQycUlZS09ZSlczSmMyYWdudnNYUmxRPT0KKyAgZGVwZW5kZW5jaWVz OgorICAgICJAYmFiZWwvcnVudGltZSIgIl43LjMuMSIKKyAgICBqc3MgIjEwLjUuMSIKKworanNz LXBsdWdpbi1nbG9iYWxAXjEwLjUuMToKKyAgdmVyc2lvbiAiMTAuNS4xIgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9qc3MtcGx1Z2luLWdsb2JhbC8tL2pzcy1wbHVn aW4tZ2xvYmFsLTEwLjUuMS50Z3ojMGUxNzkzZGVhODZjMjk4MzYwYTdlMjAwNDcyMTM1MTY1M2M3 ZTc2NCIKKyAgaW50ZWdyaXR5IHNoYTUxMi1qWDRYcE5nb2FCOHlQV3cvZ0ExYVBYSkVvWDBMTnB2 c1JPUHZ4bG5ZZStTRTBKT2h1dkY3bUE2ZENrZ3BYQnhmVFdLSnNubzdjRFNDZ3pIVG9jUmpDUT09 CisgIGRlcGVuZGVuY2llczoKKyAgICAiQGJhYmVsL3J1bnRpbWUiICJeNy4zLjEiCisgICAganNz ICIxMC41LjEiCisKK2pzcy1wbHVnaW4tbmVzdGVkQF4xMC41LjE6CisgIHZlcnNpb24gIjEwLjUu MSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vanNzLXBsdWdpbi1u ZXN0ZWQvLS9qc3MtcGx1Z2luLW5lc3RlZC0xMC41LjEudGd6Izg3NTNhODBhZDMxMTkwZmI2YWM2 ZmRkMzlmNTczNTJkY2YxMjk1YmIiCisgIGludGVncml0eSBzaGE1MTIteFhrV0tPQ2xqdXdITmpT WWNYckN4Qm5qZDhlSnA5MEtWRlcxcmxodktLUlhuRUtWRDZ2ZEtYWWV6azJhODl1S0FIY2tTdkJ2 Qm9ER3NmWnJsZFdxcVE9PQorICBkZXBlbmRlbmNpZXM6CisgICAgIkBiYWJlbC9ydW50aW1lIiAi XjcuMy4xIgorICAgIGpzcyAiMTAuNS4xIgorICAgIHRpbnktd2FybmluZyAiXjEuMC4yIgorCitq c3MtcGx1Z2luLXByb3BzLXNvcnRAXjEwLjUuMToKKyAgdmVyc2lvbiAiMTAuNS4xIgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9qc3MtcGx1Z2luLXByb3BzLXNvcnQv LS9qc3MtcGx1Z2luLXByb3BzLXNvcnQtMTAuNS4xLnRneiNhYjFjMTY3ZmQyZDQ1MDZmYjZhMWMx ZDY2YzVmM2VmNTQ1ZmYxY2Q4IgorICBpbnRlZ3JpdHkgc2hhNTEyLXQrMnZjZXZObU1nNFUvakF1 eGxmakt0NDZEL2pIekNQRWpzakxSai9KNTZDdlA3SXkwM3Njc1VQNThJdzhtVm5hVjM2eEFVWkgy Q21BbUFkbzg5OTRnPT0KKyAgZGVwZW5kZW5jaWVzOgorICAgICJAYmFiZWwvcnVudGltZSIgIl43 LjMuMSIKKyAgICBqc3MgIjEwLjUuMSIKKworanNzLXBsdWdpbi1ydWxlLXZhbHVlLWZ1bmN0aW9u QF4xMC41LjE6CisgIHZlcnNpb24gIjEwLjUuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vanNzLXBsdWdpbi1ydWxlLXZhbHVlLWZ1bmN0aW9uLy0vanNzLXBsdWdp bi1ydWxlLXZhbHVlLWZ1bmN0aW9uLTEwLjUuMS50Z3ojMzdmNDAzMDUyM2ZiMzAzMmM4ODAxZmFi NDhjMzZjMzczMDA0ZGU3ZSIKKyAgaW50ZWdyaXR5IHNoYTUxMi0zZ2pyU3hzeTRrYS9sR1FzVERZ OG9ZWXRrdDJlc0J2UWljZUdCQjRQeWtYeEhvR1J6MTR0YkNLMzFaYzZESEVuSWVxc2pNVUdicSt3 RWx5NVVWaVN0UT09CisgIGRlcGVuZGVuY2llczoKKyAgICAiQGJhYmVsL3J1bnRpbWUiICJeNy4z LjEiCisgICAganNzICIxMC41LjEiCisgICAgdGlueS13YXJuaW5nICJeMS4wLjIiCisKK2pzcy1w bHVnaW4tdmVuZG9yLXByZWZpeGVyQF4xMC41LjE6CisgIHZlcnNpb24gIjEwLjUuMSIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vanNzLXBsdWdpbi12ZW5kb3ItcHJl Zml4ZXIvLS9qc3MtcGx1Z2luLXZlbmRvci1wcmVmaXhlci0xMC41LjEudGd6IzQ1YTE4M2EzYTBl YjA5N2JkZmFiMDk4NmI4NThkOTk5MjBjMGJiZDgiCisgIGludGVncml0eSBzaGE1MTItY0xrSDZS YVBaV0hhMVRxU2ZkMnZzek5OZ3hUMVcwb21sU2pBZDZoQ0ZIcDNLSW9jU3JXMjFnYUhqbE1VMjZK cFRId2tjK3RKVENRT21FL08xQTRGS1E9PQorICBkZXBlbmRlbmNpZXM6CisgICAgIkBiYWJlbC9y dW50aW1lIiAiXjcuMy4xIgorICAgIGNzcy12ZW5kb3IgIl4yLjAuOCIKKyAgICBqc3MgIjEwLjUu MSIKKworanNzQDEwLjUuMSwganNzQF4xMC41LjE6CisgIHZlcnNpb24gIjEwLjUuMSIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vanNzLy0vanNzLTEwLjUuMS50Z3oj OTNlNmIyNDI4Yzg0MDQwODM3MmQ4YjU0OGMzZjNjNjBmYTYwMWM0MCIKKyAgaW50ZWdyaXR5IHNo YTUxMi1oYmJPMytGT1RxVmRkN1pVb1Rpd3BIektYSW81dkdwTU5idVhIMWEwd3ViUlNXTFdTQnZ3 dmFxNENpSEgvVTQyQ21qT25wNmxWTk5zL2wrWjdaZERtZz09CisgIGRlcGVuZGVuY2llczoKKyAg ICAiQGJhYmVsL3J1bnRpbWUiICJeNy4zLjEiCisgICAgY3NzdHlwZSAiXjMuMC4yIgorICAgIGlu ZGVmaW5pdGUtb2JzZXJ2YWJsZSAiXjIuMC4xIgorICAgIGlzLWluLWJyb3dzZXIgIl4xLjEuMyIK KyAgICB0aW55LXdhcm5pbmcgIl4xLjAuMiIKKwogImpzeC1hc3QtdXRpbHNAXjIuNC4xIHx8IF4z LjAuMCI6CiAgIHZlcnNpb24gIjMuMi4wIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9qc3gtYXN0LXV0aWxzLy0vanN4LWFzdC11dGlscy0zLjIuMC50Z3ojNDExMDhk MmNlYzQwOGMzNDUzYzFiYmU4YTRhYWU5ZTFlMmJkOGY4MiIKQEAgLTU4OTMsMTEgKzYyMDgsNiBA QCBsb2Rhc2gubWVtb2l6ZUB+My4wLjM6CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2xvZGFzaC5tZW1vaXplLy0vbG9kYXNoLm1lbW9pemUtMy4wLjQudGd6IzJkY2Jk MmMyODdjYmMwYTU1Y2M0MjMyOGJkMGM3MzYxNTBkNTNlM2YiCiAgIGludGVncml0eSBzaGExLUxj dlN3b2ZMd0tWY3hDTW92UXh6WVZEVlBqOD0KIAotbG9kYXNoLm1lcmdlQF40LjYuMjoKLSAgdmVy c2lvbiAiNC42LjIiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2xv ZGFzaC5tZXJnZS8tL2xvZGFzaC5tZXJnZS00LjYuMi50Z3ojNTU4YWE1M2I0M2I2NjFlMTkyNWEw YWZkZmEzNmE5YTEwODVmZTU3YSIKLSAgaW50ZWdyaXR5IHNoYTUxMi0wS3BqcVhSVnZyWXlDc1gx c3dSL1hUSzB2YTZWUWtRTTZNTm83UHFXNzdCeWpBaG9BUkE4RWZyUDFONCtLbEtqOFlTMFpVQ3RS VC9ZVXVoeVlEdWpJUT09Ci0KIGxvZGFzaC50cnVuY2F0ZUBeNC40LjI6CiAgIHZlcnNpb24gIjQu NC4yIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9sb2Rhc2gudHJ1 bmNhdGUvLS9sb2Rhc2gudHJ1bmNhdGUtNC40LjIudGd6IzVhMzUwZGEwYjExMTNiODM3ZWNmZmZk NTgxMmNiZTU4ZDZlYWUxOTMiCkBAIC01OTA4LDcgKzYyMTgsNyBAQCBsb2Rhc2gudW5pcUBeNC41 LjA6CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2xvZGFzaC51bmlx Ly0vbG9kYXNoLnVuaXEtNC41LjAudGd6I2QwMjI1MzczYWViNjUyYWRjMWJjODJlNDk0NTMzOWE4 NDI3NTQ3NzMiCiAgIGludGVncml0eSBzaGExLTBDSlRjNjYyVXEzQnZJTGtsRk01cUVKMVIzTT0K IAotbG9kYXNoQDQuKiwgbG9kYXNoQF40LjE0LjEsIGxvZGFzaEBeNC4xNy4xMCwgbG9kYXNoQF40 LjE3LjE0LCBsb2Rhc2hAXjQuMTcuMTUsIGxvZGFzaEBeNC4xNy4xOSwgbG9kYXNoQF40LjE3LjIw LCBsb2Rhc2hAXjQuMTcuNDoKK2xvZGFzaEA0LiosIGxvZGFzaEBeNC4xNC4xLCBsb2Rhc2hAXjQu MTcuMTAsIGxvZGFzaEBeNC4xNy4xMSwgbG9kYXNoQF40LjE3LjE0LCBsb2Rhc2hAXjQuMTcuMTUs IGxvZGFzaEBeNC4xNy4xOSwgbG9kYXNoQF40LjE3LjIwLCBsb2Rhc2hAXjQuMTcuNDoKICAgdmVy c2lvbiAiNC4xNy4yMSIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v bG9kYXNoLy0vbG9kYXNoLTQuMTcuMjEudGd6IzY3OTU5MWM1NjRjM2JmZmFhZTg0NTRjZjBiM2Rm MzcwYzNkNjkxMWMiCiAgIGludGVncml0eSBzaGE1MTItdjJrREVlNTdsZWNUdWxhREl1TlRQeTNS eTRnTEdKNloxTzN2RTFrcmdYWk5yc1ErTEZUR0hWeFZqY1hQczE3TGhiWlZHZWRBSnY4WFoxdHZq NUZ2U2c9PQpAQCAtNjAxMiw5ICs2MzIyLDkgQEAgbWFwLW9iakBeMS4wLjAsIG1hcC1vYmpAXjEu MC4xOgogICBpbnRlZ3JpdHkgc2hhMS0yVFBPdVNCZGdyM1BTSWIyZEN2Y0swM3FGRzA9CiAKIG1h cmtlZEBeMi4wLjA6Ci0gIHZlcnNpb24gIjIuMC41IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9tYXJrZWQvLS9tYXJrZWQtMi4wLjUudGd6IzJkMTVjNzU5Yjk0OTdi MGU3YjViNTdmNGMyZWRhYmUxMDAyZWY5ZTciCi0gIGludGVncml0eSBzaGE1MTIteWZDRVVYbUto QlBMT3pFQzdjK3RjNFhaZEllVGRHb1JDWmFrRk1rQ3hvZHI3d0RYcW9hcElNRTR3amNwQlBKTE55 VW5LSjNlOHJiOHdsQWduTG5hRHc9PQorICB2ZXJzaW9uICIyLjAuMSIKKyAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbWFya2VkLy0vbWFya2VkLTIuMC4xLnRneiM1ZTdl ZDcwMDliZmE1Yzk1MTgyZTRlYjY5NmY4NWU5NDhjZWZjZWUzIgorICBpbnRlZ3JpdHkgc2hhNTEy LTUrL2ZLZ012MmhBUm1NVzdET3B5a3IyaUxobDBOZ2p5RUxrNXluOTJpRTd6OFNlMUlTOW4zVXNG bTg2aEZYSWt2TUJtVnhraTgrY2tjcGpCZXlvL2h3PT0KIAogbWF0Y2hlcy1zZWxlY3RvckAwLjAu MToKICAgdmVyc2lvbiAiMC4wLjEiCkBAIC02MDQ1LDYgKzYzNTUsMTEgQEAgbWVkaWEtdHlwZXJA MC4zLjA6CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL21lZGlhLXR5 cGVyLy0vbWVkaWEtdHlwZXItMC4zLjAudGd6Izg3MTBkN2FmMGFhNjI2ZjhmZmZhMWNlMDAxNjg1 NDUyNjMyNTU3NDgiCiAgIGludGVncml0eSBzaGExLWh4RFhyd3FtSnZqLytoemdBV2hVVW1NbFYw Zz0KIAorbWVtb2l6ZS1vbmVAXjUuMC4wOgorICB2ZXJzaW9uICI1LjIuMSIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbWVtb2l6ZS1vbmUvLS9tZW1vaXplLW9uZS01 LjIuMS50Z3ojODMzN2FhM2M0MzM1NTgxODM5ZWMwMWMzZDU5NDA5MGNlYmU4ZjAwZSIKKyAgaW50 ZWdyaXR5IHNoYTUxMi16WWl3dFpVY1l5WEtvL25wOTZBR1pBY2trK0ZXV3NVZEozY0hHR21sZDcr QWh2Y1dtUXlHQ1lVaDFoYzRRL3BrT2hiNjVkUVIvcHFDeUswY09hSHo0UT09CisKIG1lb3dAXjMu My4wOgogICB2ZXJzaW9uICIzLjcuMCIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vbWVvdy8tL21lb3ctMy43LjAudGd6IzcyY2I2NjhiNDI1MjI4MjkwYWJiZmE4NTY4 OTI1ODczMDhhODAxZmIiCkBAIC02MDkyLDE3ICs2NDA3LDE3IEBAIG1pbGxlci1yYWJpbkBeNC4w LjA6CiAgICAgYm4uanMgIl40LjAuMCIKICAgICBicm9yYW5kICJeMS4wLjEiCiAKLW1pbWUtZGJA MS40Ny4wLCBtaW1lLWRiQF4xLjI4LjA6Ci0gIHZlcnNpb24gIjEuNDcuMCIKLSAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbWltZS1kYi8tL21pbWUtZGItMS40Ny4wLnRn eiM4Y2IzMTNlNTk5NjVkM2MwNWNmYmY4OTg5MTVhMjY3YWY0NmEzMzVjIgotICBpbnRlZ3JpdHkg c2hhNTEyLVFCbUEvRzJ5K0lmZVM0b2t0ZXQzcVJaK1A1a1BoQ0tSWHhYblFFdWRZcVVhRWlvQVUx L0xxMnVzM0QvdDFKZm80aEU5UkVRUHJiQjdLNXNPY3pKVkl3PT0KK21pbWUtZGJAMS40Ni4wLCBt aW1lLWRiQF4xLjI4LjA6CisgIHZlcnNpb24gIjEuNDYuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vbWltZS1kYi8tL21pbWUtZGItMS40Ni4wLnRneiM2MjY3NzQ4 YTdmNzk5NTk0ZGUzY2JjOGNkZTkxZGVmMzQ5NjYxY2VlIgorICBpbnRlZ3JpdHkgc2hhNTEyLXN2 WGFQOFVRUlo1SzdvcitabWZOaGcyeFgzeUtETVV6cWFkc1NxaTROQ0gvS29tY0g3NU1BTVlBR1Zs dlhuNCtiL3hPUGhTM0kydUhLUlV6dmpZN0JRPT0KIAogbWltZS10eXBlc0BeMi4xLjEyLCBtaW1l LXR5cGVzQF4yLjEuMjcsIG1pbWUtdHlwZXNAfjIuMS4xOSwgbWltZS10eXBlc0B+Mi4xLjI0Ogot ICB2ZXJzaW9uICIyLjEuMzAiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL21pbWUtdHlwZXMvLS9taW1lLXR5cGVzLTIuMS4zMC50Z3ojNmU3YmU4YjRjNDc5ODI1Zjg1 ZWQ2MzI2Njk1ZGI3M2Y5MzA1ZDYyZCIKLSAgaW50ZWdyaXR5IHNoYTUxMi1jcm1qQTRiTHRSOG05 cUxwSHZneFNDaFQrWG9TbFppOEo0bi9hSWRuM3o5MmUvVTQ3WjBWL3lsK1doOVcwNDZHZ0ZWQW1v TlIvZm1kYlpZY1NTSVVlZz09CisgIHZlcnNpb24gIjIuMS4yOSIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vbWltZS10eXBlcy8tL21pbWUtdHlwZXMtMi4xLjI5LnRn eiMxZDRhYjc3ZGE2NGI5MWY1ZjcyNDg5ZGYyOTIzNjU2Mzc1NGJiMWIyIgorICBpbnRlZ3JpdHkg c2hhNTEyLVkvak10L1M1c1I5T2FxdGVKdHNsc0ZaS1dPSUlxTUFDc0pTaUhnaGxDQXloZjdqZlZZ aktCbUxpWDhPZ3BXZVcrZmpKMmIrQXo2OWFQRlBrVU9ZNnhRPT0KICAgZGVwZW5kZW5jaWVzOgot ICAgIG1pbWUtZGIgIjEuNDcuMCIKKyAgICBtaW1lLWRiICIxLjQ2LjAiCiAKIG1pbWVAXjIuMy4x LCBtaW1lQF4yLjQuNToKICAgdmVyc2lvbiAiMi41LjIiCkBAIC02MTIwLDkgKzY0MzUsOSBAQCBt aW1pYy1yZXNwb25zZUBeMS4wLjA6CiAgIGludGVncml0eSBzaGE1MTItajVFY3Rua0g3YW1mVi9x NUhnbW9hbDFnMlFIRkpScmFPdG14MEpwSXFreGhCaEkvbEpTbDFuTXBRNDVoVmFyd05FVE9vV0Vp bW5kWjRRSzBSSHh1eFE9PQogCiBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbkBeMS4zLjU6Ci0gIHZl cnNpb24gIjEuNi4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9t aW5pLWNzcy1leHRyYWN0LXBsdWdpbi8tL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luLTEuNi4wLnRn eiNiNGRiMjUyNWFmMjYyNDg5OWVkNjRhMjNiMDAxNmUwMDM2NDExODkzIgotICBpbnRlZ3JpdHkg c2hhNTEyLW5QRktJN05TeTZ1T05Vbzl5bjJoSWZiOXZ5WXZrRnU5NXFraTBlMjFEUTl1YXFOS0RQ MTVER3BLMEtuVjZ3RHJvV3hQSHRFeHJkRXd4L3lEUThuVlJ3PT0KKyAgdmVyc2lvbiAiMS4zLjki CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL21pbmktY3NzLWV4dHJh Y3QtcGx1Z2luLy0vbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4tMS4zLjkudGd6IzQ3YTMyMTMyYjBm ZDk3YTExOWFjZDUzMGU4NDIxZThmNmFiMTZkNWUiCisgIGludGVncml0eSBzaGE1MTItQWM0cyt4 aFZicWx5aFhTNUovVmgvUVhVejN5Y1hsQ3FvQ1BwZzB2ZGZoc0lCSDllZy9JdC85TDFyMVhoU0NI NzM3TTFscWNXbk11V0wxM3pjeWduNUE9PQogICBkZXBlbmRlbmNpZXM6CiAgICAgbG9hZGVyLXV0 aWxzICJeMi4wLjAiCiAgICAgc2NoZW1hLXV0aWxzICJeMy4wLjAiCkBAIC02Mjg0LDcgKzY1OTks NyBAQCBuYW5AXjIuMTQuMjoKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vbmFuLy0vbmFuLTIuMTQuMi50Z3ojZjUzNzY0MDA2OTUxNjhmNGNjNjk0YWM5MzkzZDBjOTU4 NWVlZWExOSIKICAgaW50ZWdyaXR5IHNoYTUxMi1NMnVmeklpSU5LQ3VEZkJTQVVyMXZXUSt2dVZj QTlrcXg4SkpVc2JRaTZ5ZjF1R1J5YjdIZnBkZlVyNXFMWGYzQi90OGRQdmNqaEtNbWxmblA0N0V6 UT09CiAKLW5hbm9pZEBeMy4xLjIzOgorbmFub2lkQF4zLjEuMjAsIG5hbm9pZEBeMy4xLjIzOgog ICB2ZXJzaW9uICIzLjEuMjMiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL25hbm9pZC8tL25hbm9pZC0zLjEuMjMudGd6I2Y3NDQwODZjZTdjMmJjNDdlZTBhODQ3MjU3 NGQ1Yzc4ZTQxODNhODEiCiAgIGludGVncml0eSBzaGE1MTItRmlCMGt6ZFAwRkZWR0RLbFJMRVEx QmdEelU4N2R5NU5uemplVzlZWk50Ky9jMytxODJFUURVd25pU0FVeHAvRjBnRk5JMVpoS1UxRnFZ c011cVpWbnc9PQpAQCAtNjM0Nyw3ICs2NjYyLDcgQEAgbm9kZS1neXBAXjcuMS4yOgogICAgIHRh ciAiXjYuMC4yIgogICAgIHdoaWNoICJeMi4wLjIiCiAKLW5vZGUtcmVsZWFzZXNAXjEuMS43MToK K25vZGUtcmVsZWFzZXNAXjEuMS43MCwgbm9kZS1yZWxlYXNlc0BeMS4xLjcxOgogICB2ZXJzaW9u ICIxLjEuNzIiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL25vZGUt cmVsZWFzZXMvLS9ub2RlLXJlbGVhc2VzLTEuMS43Mi50Z3ojMTQ4MDJhYjZiMTAzOWE3OWEwYzdk NjYyYjYxMGE1YmJkNzZlYWNiZSIKICAgaW50ZWdyaXR5IHNoYTUxMi1MTFVvK1BwSDNkVTZYaXpY M2lWb3ViVU5oZUYvb3dqWENaWjV5QUNEeE5uUHRnRnVsdWRWMVpMM2F5SzFrVmVwNDJSbW0wK1I5 L1k2ME5RYloyYmlmdz09CkBAIC02NDU0LDExICs2NzY5LDE2IEBAIG9iamVjdC1hc3NpZ25AXjQs IG9iamVjdC1hc3NpZ25AXjQuMC4xLCBvYmplY3QtYXNzaWduQF40LjEuMCwgb2JqZWN0LWFzc2ln bkBeNC4xCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL29iamVjdC1h c3NpZ24vLS9vYmplY3QtYXNzaWduLTQuMS4xLnRneiMyMTA5YWRjNzk2NTg4N2NmYzA1Y2JiZDQ0 MmNhYzhiZmJiMzYwODYzIgogICBpbnRlZ3JpdHkgc2hhMS1JUW10eDVaWWg4L0FYTHZVUXNySXY3 czJDR009CiAKLW9iamVjdC1pbnNwZWN0QF4xLjEwLjMsIG9iamVjdC1pbnNwZWN0QF4xLjcuMCwg b2JqZWN0LWluc3BlY3RAXjEuOS4wOgorb2JqZWN0LWluc3BlY3RAXjEuMTAuMzoKICAgdmVyc2lv biAiMS4xMC4zIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9vYmpl Y3QtaW5zcGVjdC8tL29iamVjdC1pbnNwZWN0LTEuMTAuMy50Z3ojYzJhYTdkMmQwOWY1MGM5OTM3 NTcwNGY3YTBhZGYyNGM1NzgyZDM2OSIKICAgaW50ZWdyaXR5IHNoYTUxMi1lNW1DSmxTSDdwb0FO ZkM4ejhTOXM5UzJJTjUvNFpiM2FaMzNmNXM4WXFvYXpDRnpOTGxvTFU4cjVWQ0crRzdXb3FMdkFB Wm9WTWN5M3RwLzNYMFBsdz09CiAKK29iamVjdC1pbnNwZWN0QF4xLjcuMCwgb2JqZWN0LWluc3Bl Y3RAXjEuOS4wOgorICB2ZXJzaW9uICIxLjkuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vb2JqZWN0LWluc3BlY3QvLS9vYmplY3QtaW5zcGVjdC0xLjkuMC50Z3oj YzkwNTIxZDc0ZTExMjdiNjcyNjZkZWQzMzk0YWQ2MTE2OTg2NTMzYSIKKyAgaW50ZWdyaXR5IHNo YTUxMi1pM0JwOWlUcXdoYUxaQnhHa1JmbzVaYkUwN0JRUlQ3TUd1OCtuTmd3VzlJdEdwMVR6Q1R3 MkRMRW9Xd2pDbHhCak9GSS9oV2xqVEFtWUdDRXdtdG5Pdz09CisKIG9iamVjdC1pc0BeMS4wLjIs IG9iamVjdC1pc0BeMS4xLjI6CiAgIHZlcnNpb24gIjEuMS41IgogICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9vYmplY3QtaXMvLS9vYmplY3QtaXMtMS4xLjUudGd6I2I5 ZGVlYWE1ZmM3ZjE4NDZhMGZhZWNkY2VlYzEzOGU1Nzc4ZjUzYWMiCkBAIC02ODkzLDcgKzcyMTMs MTIgQEAgcG5ncXVhbnQtYmluQF42LjAuMDoKICAgICBleGVjYSAiXjQuMC4wIgogICAgIGxvZ2Fs b3QgIl4yLjAuMCIKIAotcG9wcGVyLmpzQF4xLjE0LjcsIHBvcHBlci5qc0BeMS4xNi4xOgorcG9w cGVyLmpzQDEuMTYuMS1sdHM6CisgIHZlcnNpb24gIjEuMTYuMS1sdHMiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3BvcHBlci5qcy8tL3BvcHBlci5qcy0xLjE2LjEt bHRzLnRneiNjZjY4NDdiODA3ZGEzNzk5ZDgwZWUzZDZkMmY5MGRmOGEzZjUwYjA1IgorICBpbnRl Z3JpdHkgc2hhNTEyLUtqdzhuS1JsMW0rVnJTRkNvVkdQcGg5M1cvcXJTTzdaa3FQcFRmN0Y0Ymsv c3FjZldLMDE5ZFdCVXBFL2ZCT3NPUVkxZGtzL0JtY2JmbjFoZU0vSXNBPT0KKworcG9wcGVyLmpz QF4xLjE2LjE6CiAgIHZlcnNpb24gIjEuMTYuMSIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vcG9wcGVyLmpzLy0vcG9wcGVyLmpzLTEuMTYuMS50Z3ojMmEyMjNjYjNk YzdiNjIxM2Q3NDBlNDAzNzJiZTQwZGU0M2U2NWIxYiIKICAgaW50ZWdyaXR5IHNoYTUxMi1XYjRw MUo0enlGVGJNK3U2V3VPNFhzdFl4NEt5OUNld2U0RFdyZWw3QjB3NlZWSUN2UHdkT3BvdGp6Y2Y2 ZUQ4VHNja1ZuSU1OT05ReVBJVUZPVWJDUT09CkBAIC02OTQzLDkgKzcyNjgsOSBAQCBwb3N0Y3Nz LWRpc2NhcmQtb3ZlcnJpZGRlbkBeNS4wLjE6CiAgIGludGVncml0eSBzaGE1MTItWTI4SDd5OTNM MkJwSmhyZFVSMlNSMmZuU3NUKzNUVngxTm1WUUxiY25aV3dJVXBKN21mY1RDNlphOU0yUEc2dzhq N1VRUmZ6eHFuOGpVMlZ3RnhvM1E9PQogCiBwb3N0Y3NzLWxvYWRlckBeNS4wLjA6Ci0gIHZlcnNp b24gIjUuMy4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9wb3N0 Y3NzLWxvYWRlci8tL3Bvc3Rjc3MtbG9hZGVyLTUuMy4wLnRneiMxNjU3Zjg2OWU0OGQ0ZmRiMDE4 YTQwNzcxYzIzNWU0OTllZTI2MjQ0IgotICBpbnRlZ3JpdHkgc2hhNTEyLS8rWjFSQW1zc2RpU0xn SVp3bkpId0JNbmxBQlBnRjdnaVl6VE4yTk9mcjlEMjFJSlo0bVFDMVIybWl3cDgwem5vOU00ek1E L3VtR0k4Y1IrMkVMNXp3PT0KKyAgdmVyc2lvbiAiNS4xLjAiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3Bvc3Rjc3MtbG9hZGVyLy0vcG9zdGNzcy1sb2FkZXItNS4x LjAudGd6IzhhMzZmMThiODk4OWJlZTk0MTcyNjI2YjI1ZjJiOWNjNjE2MGZiNDMiCisgIGludGVn cml0eSBzaGE1MTItdEdnS1pGNk50bjE2eklXWHQ3eUtWMTlMMHJJU2FvekhQQ2ZkUHQrYUhPblRa cnJlZXFWUjZoQ2tGaFpZZko2S2dweUlGUmtLdVc4eWdIdFVpZDRHbEE9PQogICBkZXBlbmRlbmNp ZXM6CiAgICAgY29zbWljb25maWcgIl43LjAuMCIKICAgICBrbG9uYSAiXjIuMC40IgpAQCAtNzE1 NiwxMyArNzQ4MSwyMiBAQCBwb3N0Y3NzLXZhbHVlLXBhcnNlckBeNC4wLjIsIHBvc3Rjc3MtdmFs dWUtcGFyc2VyQF40LjEuMDoKICAgaW50ZWdyaXR5IHNoYTUxMi05N0RYT0ZiUUpoazcxbmU1L010 NmNPdTZ5eHNTZk0wUUdReWwwTDI1R2NhNHlHV0VHSmFpZzdsN2diQ1g2MjNWcVRCTkdMUkxhVlVD bk5rY2VkbFJTUT09CiAKIHBvc3Rjc3NAXjguMi4xNSwgcG9zdGNzc0BeOC4yLjk6Ci0gIHZlcnNp b24gIjguMy4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9wb3N0 Y3NzLy0vcG9zdGNzcy04LjMuMC50Z3ojYjFhNzEzZjYxNzJjYTQyN2UzZjA1ZWYxMzAzZGU4YjY1 NjgzMzI1ZiIKLSAgaW50ZWdyaXR5IHNoYTUxMi0rb2dYcGRBaldHYStmZFlZNUJROTZWLzZ0QW8r VGRTU0lNUDVodUpCSXlnZFd3S3RWb0I1SldaN3lVZDR4WjhyKzhLdnZ4NG55Zy9QUTA3MUg0VXRj UT09CisgIHZlcnNpb24gIjguMi4xNSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vcG9zdGNzcy8tL3Bvc3Rjc3MtOC4yLjE1LnRneiM5ZTY2Y2NmMDcyOTI4MTdkMjI2 ZmMzMTVjYmJmOWJjMTQ4ZmJjYTY1IgorICBpbnRlZ3JpdHkgc2hhNTEyLTJ6TzNiMjZlSkQvOHJi MTA2UXUybzdRZ2c1Mk5ENUhQamN5UWlLMkI5OE8zODhoNDNBNDQ4TENzbEMwZEkyUDk3d0NBUVJK c0Z2d1RSY1h4VEtkcytRPT0KICAgZGVwZW5kZW5jaWVzOgogICAgIGNvbG9yZXR0ZSAiXjEuMi4y IgogICAgIG5hbm9pZCAiXjMuMS4yMyIKLSAgICBzb3VyY2UtbWFwLWpzICJeMC42LjIiCisgICAg c291cmNlLW1hcCAiXjAuNi4xIgorCitwb3N0Y3NzQF44LjIuNjoKKyAgdmVyc2lvbiAiOC4yLjci CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3Bvc3Rjc3MvLS9wb3N0 Y3NzLTguMi43LnRneiM0OGVkOGQ4OGI0ZGUxMGFmYTBkZmQxYzNmODQwYWE1N2I1NWM0ZDQ3Igor ICBpbnRlZ3JpdHkgc2hhNTEyLURzVkxIM3hKenV0K1ZUK3JZcjBtdHZPdHBUalN5cUR3UGY1RVpX WGNiMHVBS2ZpdEdwVFk5RWMrYWZpMitUZ2ROOHJXUzlDczg4VURZZWhLby9Sdk93PT0KKyAgZGVw ZW5kZW5jaWVzOgorICAgIGNvbG9yZXR0ZSAiXjEuMi4yIgorICAgIG5hbm9pZCAiXjMuMS4yMCIK KyAgICBzb3VyY2UtbWFwICJeMC42LjEiCiAKIHByZWNvbmRAXjAuMi4zOgogICB2ZXJzaW9uICIw LjIuMyIKQEAgLTcyMDgsNyArNzU0Miw3IEBAIHByb3AtdHlwZXMtZXhhY3RAXjEuMi4wOgogICAg IG9iamVjdC5hc3NpZ24gIl40LjEuMCIKICAgICByZWZsZWN0Lm93bmtleXMgIl4wLjIuMCIKIAot cHJvcC10eXBlc0BeMTUuNy4yOgorcHJvcC10eXBlc0BeMTUuNS44LCBwcm9wLXR5cGVzQF4xNS42 LjAsIHByb3AtdHlwZXNAXjE1LjYuMiwgcHJvcC10eXBlc0BeMTUuNy4yOgogICB2ZXJzaW9uICIx NS43LjIiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3Byb3AtdHlw ZXMvLS9wcm9wLXR5cGVzLTE1LjcuMi50Z3ojNTJjNDFlNzViOGM4N2U3MmI5ZDkzNjBlMDIwNmI5 OWRjYmZmYTZjNSIKICAgaW50ZWdyaXR5IHNoYTUxMi04UVFpa2RINy8vUjJ2dXJJSlN1dFoxc21I WVRjTHBSV0VPbEhuemNXSG1CWXJPR1V5c0t3U3NyQzg5QkNpRmozQ2JyZkovblhGZEplcE9Wclkx R0NIUT09CkBAIC03MzcwLDE2ICs3NzA0LDQxIEBAIHJlYWN0LWRvbUBeMTcuMC4xOgogICAgIG9i amVjdC1hc3NpZ24gIl40LjEuMSIKICAgICBzY2hlZHVsZXIgIl4wLjIwLjIiCiAKLSJyZWFjdC1p c0BeMTYuMTIuMCB8fCBeMTcuMC4wIiwgcmVhY3QtaXNAXjE3LjAuMCwgcmVhY3QtaXNAXjE3LjAu MjoKLSAgdmVyc2lvbiAiMTcuMC4yIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9yZWFjdC1pcy8tL3JlYWN0LWlzLTE3LjAuMi50Z3ojZTY5MWQ0YThlOWM3ODkzNjU2 NTU1MzlhYjM3Mjc2MmIwZWZiNTRmMCIKLSAgaW50ZWdyaXR5IHNoYTUxMi13MkdzeXVrTDYySUpu bGFmZi9uUmVnUFFSOTRDL1hYYW12TVdtU0hSSjR5N1RzLzRvY0dSbVRIdk9zOFBTRTZwQjNkV09y RC9udWV1VTVzZHVCc1E0dz09CityZWFjdC1pbnB1dC1hdXRvc2l6ZUBeMy4wLjA6CisgIHZlcnNp b24gIjMuMC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9yZWFj dC1pbnB1dC1hdXRvc2l6ZS8tL3JlYWN0LWlucHV0LWF1dG9zaXplLTMuMC4wLnRneiM2YjU4OThj NzkwZDQ0NzhkNjk0MjBiNTU0NDFmY2MzMWQ1YzUwYTg1IgorICBpbnRlZ3JpdHkgc2hhNTEyLW5M OXVTN2pFcy96dThzcXdGRTVNQVB4NnBQa05BcmlBQ1EyckdMbHFtS3Iyc1BHdE43VFhUeURkUXQ0 bGJOWFZ4N1V6YWRiNDB4OHFvdEl1cnU2UmhnPT0KKyAgZGVwZW5kZW5jaWVzOgorICAgIHByb3At dHlwZXMgIl4xNS41LjgiCisKKyJyZWFjdC1pc0BeMTYuMTIuMCB8fCBeMTcuMC4wIiwgInJlYWN0 LWlzQF4xNi44LjAgfHwgXjE3LjAuMCIsIHJlYWN0LWlzQF4xNy4wLjA6CisgIHZlcnNpb24gIjE3 LjAuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vcmVhY3QtaXMv LS9yZWFjdC1pcy0xNy4wLjEudGd6IzViMzUzMWJkNzZhNjQ1YTRjOWZiNmU2OTNlZDM2NDE5ZTMz MDEzMzkiCisgIGludGVncml0eSBzaGE1MTItTkFudDJpR0RYb2hFNUxJN3VCbkxucXZMUU10emhr aUFPTFhUbXYrcW5GOUt5N3hBUGNYOFVwL3hXSWh4dkxWR0p2dUxpTmM0eFFMdHVxRFJ6YjRmU0E9 PQogCiByZWFjdC1pc0BeMTYuMTMuMSwgcmVhY3QtaXNAXjE2LjcuMCwgcmVhY3QtaXNAXjE2Ljgu MToKICAgdmVyc2lvbiAiMTYuMTMuMSIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vcmVhY3QtaXMvLS9yZWFjdC1pcy0xNi4xMy4xLnRneiM3ODk3MjlhNGRjMzZkZTI5 OTlkYzE1NmRkNmMxZDljMThjZWE1NmE0IgogICBpbnRlZ3JpdHkgc2hhNTEyLTI0ZTZ5bkUySCtP S3Q0a3FzT3ZOZDhrQnBWNjV6b3hiQTRCVnNFT0IzQVJWV1FraS9ESHphVW9DNUt1T04vQmljY0Rh Q0NUWkJ1T2NmWnM3MGtSOGJRPT0KIAorcmVhY3QtaXNAXjE3LjAuMjoKKyAgdmVyc2lvbiAiMTcu MC4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9yZWFjdC1pcy8t L3JlYWN0LWlzLTE3LjAuMi50Z3ojZTY5MWQ0YThlOWM3ODkzNjU2NTU1MzlhYjM3Mjc2MmIwZWZi NTRmMCIKKyAgaW50ZWdyaXR5IHNoYTUxMi13MkdzeXVrTDYySUpubGFmZi9uUmVnUFFSOTRDL1hY YW12TVdtU0hSSjR5N1RzLzRvY0dSbVRIdk9zOFBTRTZwQjNkV09yRC9udWV1VTVzZHVCc1E0dz09 CisKK3JlYWN0LXNlbGVjdEBeNC4yLjE6CisgIHZlcnNpb24gIjQuMy4xIgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9yZWFjdC1zZWxlY3QvLS9yZWFjdC1zZWxlY3Qt NC4zLjEudGd6IzM4OWZjMDdjOWJjN2NmN2QzYzM3N2I3YTA1ZWExOGNkNzM5OWNiODEiCisgIGlu dGVncml0eSBzaGE1MTItSEJCZDBkWXdrRjVhWmsxelA4MVd4NVVzTElJVDJsU3ZBWTJKaUpvMTk5 TGpvTEhvaXZqbjkvL0tzbXZRTUVGR05oZTU4eHl1T0lUamZ4S0NjR2M2MlE9PQorICBkZXBlbmRl bmNpZXM6CisgICAgIkBiYWJlbC9ydW50aW1lIiAiXjcuMTIuMCIKKyAgICAiQGVtb3Rpb24vY2Fj aGUiICJeMTEuNC4wIgorICAgICJAZW1vdGlvbi9yZWFjdCIgIl4xMS4xLjEiCisgICAgbWVtb2l6 ZS1vbmUgIl41LjAuMCIKKyAgICBwcm9wLXR5cGVzICJeMTUuNi4wIgorICAgIHJlYWN0LWlucHV0 LWF1dG9zaXplICJeMy4wLjAiCisgICAgcmVhY3QtdHJhbnNpdGlvbi1ncm91cCAiXjQuMy4wIgor CiByZWFjdC1zaGFsbG93LXJlbmRlcmVyQF4xNi4xMy4xOgogICB2ZXJzaW9uICIxNi4xNC4xIgog ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9yZWFjdC1zaGFsbG93LXJl bmRlcmVyLy0vcmVhY3Qtc2hhbGxvdy1yZW5kZXJlci0xNi4xNC4xLnRneiNiZjBkMDJkZjhhNTE5 YTU1OGZkOWI4MjE1NDQyZWZhNWM4NDBlMTI0IgpAQCAtNzM4OCw2ICs3NzQ3LDExIEBAIHJlYWN0 LXNoYWxsb3ctcmVuZGVyZXJAXjE2LjEzLjE6CiAgICAgb2JqZWN0LWFzc2lnbiAiXjQuMS4xIgog ICAgIHJlYWN0LWlzICJeMTYuMTIuMCB8fCBeMTcuMC4wIgogCityZWFjdC10YWJsZUBeNy42LjM6 CisgIHZlcnNpb24gIjcuNy4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9yZWFjdC10YWJsZS8tL3JlYWN0LXRhYmxlLTcuNy4wLnRneiNlMmNlMTRkN2ZlM2E1NTlm NzQ0NGU5ZWNmZTgyMzFlYTgzNzNmOTEyIgorICBpbnRlZ3JpdHkgc2hhNTEyLWpCbGo3MGlCd09U dnZJbXNVOXQwMUxqRmp5NHNYRXRjbEJvdmwzbVRpcWp6MjNSZXUwREtuUnphNHpsTHRPUEFDeDZq Mi83TXJRSXRoSUsxV2krTElBPT0KKwogcmVhY3QtdGVzdC1yZW5kZXJlckBeMTcuMC4wOgogICB2 ZXJzaW9uICIxNy4wLjIiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L3JlYWN0LXRlc3QtcmVuZGVyZXIvLS9yZWFjdC10ZXN0LXJlbmRlcmVyLTE3LjAuMi50Z3ojNGNk NGFlNWVmMWFkNTY3MGZjMGVmNzc2ZThjYzdlMTIzMWQ5ODY2YyIKQEAgLTczOTgsNiArNzc2Miwx NiBAQCByZWFjdC10ZXN0LXJlbmRlcmVyQF4xNy4wLjA6CiAgICAgcmVhY3Qtc2hhbGxvdy1yZW5k ZXJlciAiXjE2LjEzLjEiCiAgICAgc2NoZWR1bGVyICJeMC4yMC4yIgogCityZWFjdC10cmFuc2l0 aW9uLWdyb3VwQF40LjAuMCwgcmVhY3QtdHJhbnNpdGlvbi1ncm91cEBeNC4zLjAsIHJlYWN0LXRy YW5zaXRpb24tZ3JvdXBAXjQuNC4wOgorICB2ZXJzaW9uICI0LjQuMSIKKyAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vcmVhY3QtdHJhbnNpdGlvbi1ncm91cC8tL3JlYWN0 LXRyYW5zaXRpb24tZ3JvdXAtNC40LjEudGd6IzYzODY4ZjkzMjVhMzhlYTVlZTk1MzVkODI4MzI3 Zjg1NzczMzQ1YzkiCisgIGludGVncml0eSBzaGE1MTItRGpxcjdPUTJhUFVpWXVyaFBhbFRyVnk5 ZGRtRkNDendocVFtdE4rSjMrM0R6TE8yMDlGZHI3MFFyTjhaM0RzZ2xXcWw2aVkxbERXQWZwRmlC dHVLR3c9PQorICBkZXBlbmRlbmNpZXM6CisgICAgIkBiYWJlbC9ydW50aW1lIiAiXjcuNS41Igor ICAgIGRvbS1oZWxwZXJzICJeNS4wLjEiCisgICAgbG9vc2UtZW52aWZ5ICJeMS40LjAiCisgICAg cHJvcC10eXBlcyAiXjE1LjYuMiIKKwogcmVhY3RAXjE3LjAuMToKICAgdmVyc2lvbiAiMTcuMC4y IgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9yZWFjdC8tL3JlYWN0 LTE3LjAuMi50Z3ojZDBiNWNjNTE2ZDI5ZWIzZWVlMzgzZjc1YjYyODY0Y2ZiNjgwMDAzNyIKQEAg LTc2NzgsNiArODA1MiwxMyBAQCByZ2JhLXJlZ2V4QF4xLjAuMDoKICAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vcmdiYS1yZWdleC8tL3JnYmEtcmVnZXgtMS4wLjAudGd6 IzQzMzc0ZTJlMmNhMDk2OGIwZWYxNTIzNDYwYjdkNzMwZmYyMmVlYjMiCiAgIGludGVncml0eSBz aGExLVF6ZE9MaXlnbG9zTzhWSTBZTGZYTVA4aTdyTT0KIAorcmlmbUBeMC43LjA6CisgIHZlcnNp b24gIjAuNy4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9yaWZt Ly0vcmlmbS0wLjcuMC50Z3ojZGViZTk1MWE5YzgzNTQ5Y2E2YjMzZTU5MTlmNzE2MDQ0YzIyMzBi ZSIKKyAgaW50ZWdyaXR5IHNoYTUxMi1EU09KVFdIRDY3ODYwSTVvamV0WGRFUVJJQnZGNlljcE5l NTNqMHZuMXZwOUVVYjlOODBFaVpUeGdQK0ZrREtvcldDOFBadzA1MmtURjRDMUdPaXZDUT09Cisg IGRlcGVuZGVuY2llczoKKyAgICAiQGJhYmVsL3J1bnRpbWUiICJeNy4zLjEiCisKIHJpbXJhZkBe Mi41LjQ6CiAgIHZlcnNpb24gIjIuNy4xIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9yaW1yYWYvLS9yaW1yYWYtMi43LjEudGd6IzM1Nzk3ZjEzYTdmZGFkYzU2NjE0 MmMyOWQ0ZjA3Y2NhZDQ4M2UzZWMiCkBAIC03NzQ5LDExICs4MTMwLDExIEBAIHNhc3MtcmVzb3Vy Y2VzLWxvYWRlckBeMi4yLjE6CiAgICAgbG9hZGVyLXV0aWxzICJeMi4wLjAiCiAKIHNhc3NAXjEu MjQuNDoKLSAgdmVyc2lvbiAiMS4zNC4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9zYXNzLy0vc2Fzcy0xLjM0LjAudGd6I2U0NmQ1OTMyZDhiMGVjYzRmZWI4NDZk ODYxZjI2YTU3OGY3ZjcxNzIiCi0gIGludGVncml0eSBzaGE1MTItckhFTjBCc2NxalVZdW9tVUVh cXEzQk1nc1hxUWZrY01WUjdVaHNjc0FWdWIwL3NwVXJaR0JNeFFYRlMya2ZpRHNQTFp3NXl1VTlp SkVGTkMyeDM4UXc9PQorICB2ZXJzaW9uICIxLjMyLjgiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL3Nhc3MvLS9zYXNzLTEuMzIuOC50Z3ojZjE2YTlhYmQ4ZGM1MzBh ZGQ4ODM0ZTUwNjg3OGEyODA4YzAzN2JkYyIKKyAgaW50ZWdyaXR5IHNoYTUxMi1TbDZtSWVHcHpq SVVacXZLbktFVGZNZjBpREFzd0Q5VE5sdjEzQTdhQUYzWFpsUlBNcTRWdkpXQkMyTjJEWGJwOTRN UVZkTlNGRzZMZkYvaU9YclBIUT09CiAgIGRlcGVuZGVuY2llczoKLSAgICBjaG9raWRhciAiPj0z LjAuMCA8NC4wLjAiCisgICAgY2hva2lkYXIgIj49Mi4wLjAgPDQuMC4wIgogCiBzYXhAXjEuMi40 LCBzYXhAfjEuMi40OgogICB2ZXJzaW9uICIxLjIuNCIKQEAgLTc4MzIsMTAgKzgyMTMsMTAgQEAg c2VtdmVyQF42LjAuMCwgc2VtdmVyQF42LjEuMSwgc2VtdmVyQF42LjEuMiwgc2VtdmVyQF42LjMu MDoKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vc2VtdmVyLy0vc2Vt dmVyLTYuMy4wLnRneiNlZTBhNjRjOGFmNWU4Y2VlYTY3Njg3YjEzMzc2MWUxYmVjYmQxZDNkIgog ICBpbnRlZ3JpdHkgc2hhNTEyLWIzOVRCYVRTZlY2eUJyYXBVODlwNWZLZWtFMm0vTnduRG9jT1Zy dVFGUzEvdmVNZ2R6dVBjbk9NMzRNNkN3eFc4akgvbHhFYTVyQm9EZVV3dTVISFR3PT0KIAotc2Vt dmVyQF43LjIuMSwgc2VtdmVyQF43LjMuMiwgc2VtdmVyQF43LjMuNCwgc2VtdmVyQF43LjMuNToK LSAgdmVyc2lvbiAiNy4zLjUiCi0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL3NlbXZlci8tL3NlbXZlci03LjMuNS50Z3ojMGI2MjFjODc5MzQ4ZDg5OThlNGIwZTRiZTk0 YjNmMTJlNjAxOGVmNyIKLSAgaW50ZWdyaXR5IHNoYTUxMi1Qb2VHSlloOEhLNEJUTy9hOVRmNlpH M3Zlby9BN1pWc1lyU0E2SjhueTluYjNCMVZycGt1Tit6OU9FNXdmRTVwNkg0TGNoWVpzZWdpUWdi SkQ5NFpGUT09CitzZW12ZXJAXjcuMi4xLCBzZW12ZXJAXjcuMy4yLCBzZW12ZXJAXjcuMy40Ogor ICB2ZXJzaW9uICI3LjMuNCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vc2VtdmVyLy0vc2VtdmVyLTcuMy40LnRneiMyN2FhYTdkMmU0Y2E3NjQ1MmY5OGQzYWRkMDkz YTcyYzk0M2VkYzk3IgorICBpbnRlZ3JpdHkgc2hhNTEyLXRDZmIyV0xqcUZBdFhuNEtFZHhJaGFs blJ0b0tGTjduQXdqMEIzWlhDYlFsb1YydHE1ZURiY1RtVDY4SkpEM25SSnEyNC9YZ3h0UUtGSXBR ZHR2bVZ3PT0KICAgZGVwZW5kZW5jaWVzOgogICAgIGxydS1jYWNoZSAiXjYuMC4wIgogCkBAIC03 ODcxLDYgKzgyNTIsMTEgQEAgc2hhbGxvdy1jbG9uZUBeMy4wLjA6CiAgIGRlcGVuZGVuY2llczoK ICAgICBraW5kLW9mICJeNi4wLjIiCiAKK3NoYWxsb3dlcXVhbEBeMS4xLjA6CisgIHZlcnNpb24g IjEuMS4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zaGFsbG93 ZXF1YWwvLS9zaGFsbG93ZXF1YWwtMS4xLjAudGd6IzE4OGQ1MjFkZTk1YjkwODc0MDRmZDRkY2I2 OGIxM2RmMGFlNGU3ZjgiCisgIGludGVncml0eSBzaGE1MTIteTBtMUpvVVpTbFBBalhWdFBQVzcw YVpXZklML2RTUDdBRmtSbm5pTENySy84TURLb2czVHlTVEJtY2tEK1JPYlZ4SDB2NFRveDY3K0Yx NFBkRUQyb1E9PQorCiBzaGFzdW0tb2JqZWN0QF4xLjAuMDoKICAgdmVyc2lvbiAiMS4wLjAiCiAg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3NoYXN1bS1vYmplY3QvLS9z aGFzdW0tb2JqZWN0LTEuMC4wLnRneiMwYjdiNzRmZjViNjZlY2Y5MDM1NDc1NTIyZmEwNTA5MGFj NDdlMjllIgpAQCAtODM3NSw2ICs4NzYxLDIyIEBAIHN0eWxlLWxvYWRlckBeMi4wLjA6CiAgICAg bG9hZGVyLXV0aWxzICJeMi4wLjAiCiAgICAgc2NoZW1hLXV0aWxzICJeMy4wLjAiCiAKK3N0eWxl ZC1jb21wb25lbnRzQF41LjIuMToKKyAgdmVyc2lvbiAiNS4yLjEiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3N0eWxlZC1jb21wb25lbnRzLy0vc3R5bGVkLWNvbXBv bmVudHMtNS4yLjEudGd6IzZlZDdmYWQyZGMyMzM4MjVmNjRjNzE5ZmZiZGVkZDg0YWQ3OTEwMWEi CisgIGludGVncml0eSBzaGE1MTItc0JkZ0xXckNGVEt0bVptLzl4N2prSWFiakZOVnpDVWVLZm9R c002UjNzYUlta1VuangwUVlkTHdKSEJqWTlpZkVjbWpEYW1KRFZma25XbTF5eFpQeFE9PQorICBk ZXBlbmRlbmNpZXM6CisgICAgIkBiYWJlbC9oZWxwZXItbW9kdWxlLWltcG9ydHMiICJeNy4wLjAi CisgICAgIkBiYWJlbC90cmF2ZXJzZSIgIl43LjQuNSIKKyAgICAiQGVtb3Rpb24vaXMtcHJvcC12 YWxpZCIgIl4wLjguOCIKKyAgICAiQGVtb3Rpb24vc3R5bGlzIiAiXjAuOC40IgorICAgICJAZW1v dGlvbi91bml0bGVzcyIgIl4wLjcuNCIKKyAgICBiYWJlbC1wbHVnaW4tc3R5bGVkLWNvbXBvbmVu dHMgIj49IDEiCisgICAgY3NzLXRvLXJlYWN0LW5hdGl2ZSAiXjMuMC4wIgorICAgIGhvaXN0LW5v bi1yZWFjdC1zdGF0aWNzICJeMy4wLjAiCisgICAgc2hhbGxvd2VxdWFsICJeMS4xLjAiCisgICAg c3VwcG9ydHMtY29sb3IgIl41LjUuMCIKKwogc3R5bGVoYWNrc0BeNS4wLjE6CiAgIHZlcnNpb24g IjUuMC4xIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zdHlsZWhh Y2tzLy0vc3R5bGVoYWNrcy01LjAuMS50Z3ojMzIzZWM1NTQxOTg1MjA5ODY4MDYzODhjN2ZkYWVi YzM4ZDJjMDZmYiIKQEAgLTg0MDAsNyArODgwMiw3IEBAIHN1cHBvcnRzLWNvbG9yQF4yLjAuMDoK ICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vc3VwcG9ydHMtY29sb3Iv LS9zdXBwb3J0cy1jb2xvci0yLjAuMC50Z3ojNTM1ZDA0NWNlNmI2MzYzZmE0MDExNzA4NDYyOTk5 NWU5ZGYzMjRjNyIKICAgaW50ZWdyaXR5IHNoYTEtVTEwRVhPYTJOaitrQVJjSVJpbVpYcDN6Sk1j PQogCi1zdXBwb3J0cy1jb2xvckBeNS4zLjA6CitzdXBwb3J0cy1jb2xvckBeNS4zLjAsIHN1cHBv cnRzLWNvbG9yQF41LjUuMDoKICAgdmVyc2lvbiAiNS41LjAiCiAgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3N1cHBvcnRzLWNvbG9yLy0vc3VwcG9ydHMtY29sb3ItNS41 LjAudGd6I2UyZTY5YTQ0YWM4NzcyZjc4YTFlYzBiMzViNjg5ZGY2NTMwZWZjOGYiCiAgIGludGVn cml0eSBzaGE1MTItUWpWandkWEl0NDA4TUlpQXFDWDRvVUtzZ1UyRXFBR3pzMlBwa200YVFZYmpt K1pFV0VjVzRTZkZOVHI0dU1OWm1hMGV5NGY1bGdMcmtCMGFYMFFNb3c9PQpAQCAtODQyMCwxNiAr ODgyMiwxNiBAQCBzdmctcGF0aGRhdGFAXjUuMC4yOgogICBpbnRlZ3JpdHkgc2hhNTEyLVRBQXZM TlNFM2ZFaHlsL0RhMTlKV2ZNQWRoU1hUWWV2aVhzTFNvRFQxVU03NkFEajVuZHdBUFgxRktRRWdC L2dGTVBhdk95NnRPcWZhbFhLVWlYcm93PT0KIAogc3ZnMnR0ZkBeNS4wLjA6Ci0gIHZlcnNpb24g IjUuMi4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zdmcydHRm Ly0vc3ZnMnR0Zi01LjIuMC50Z3ojNzVjOWI4ZDNjNzk5YTkxYzg5M2VmN2JkYmZhNzJkOGUwMGE0 OGE1YyIKLSAgaW50ZWdyaXR5IHNoYTUxMi1DenhQblNtMi9Dck1uSnVLbFhWbGxPeCtxOXd1YXJi SU1pNFZmMTRlSm9lRVNScUFPeFZaaUgwSWFzNzFtaHlYWUdnejg4QTRUL0U4Zk4vWThlWG9ZQT09 CisgIHZlcnNpb24gIjUuMS4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9zdmcydHRmLy0vc3ZnMnR0Zi01LjEuMC50Z3ojNTUxM2JlZjM5MjQxNGI1MWRmYzg2MjJl N2QxMTI1OTAwODM3NWQxZCIKKyAgaW50ZWdyaXR5IHNoYTUxMi0rWVJOYWM0OEREVzBROCsvNG5j M2duNmdSYmg4TU1MRWE5YW8wNnBsVzdtUXloSmJQR0VFNUVvYlZZVEZpRFZJbk9wUkV4U0NvMTlz amhMOXpZc2JzQT09CiAgIGRlcGVuZGVuY2llczoKLSAgICBhcmdwYXJzZSAiXjIuMC4xIgorICAg IGFyZ3BhcnNlICJeMS4wLjYiCiAgICAgY3ViaWMycXVhZCAiXjEuMC4wIgogICAgIGxvZGFzaCAi XjQuMTcuMTAiCiAgICAgbWljcm9idWZmZXIgIl4xLjAuMCIKICAgICBzdmdwYXRoICJeMi4xLjUi Ci0gICAgeG1sZG9tICJ+MC41LjAiCisgICAgeG1sZG9tICJ+MC4xLjIyIgogCiBzdmdpY29uczJz dmdmb250QF45LjAuMzoKICAgdmVyc2lvbiAiOS4yLjAiCkBAIC04NDg0LDYgKzg4ODYsMTEgQEAg c3ZncGF0aEBeMi4xLjU6CiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L3N2Z3BhdGgvLS9zdmdwYXRoLTIuMy4xLnRneiNiMTAyMzM0YmViZDIyNDRiNDgxODQ2MGJhMmVi YWQ1MjcxNmEwZDQzIgogICBpbnRlZ3JpdHkgc2hhNTEyLXdOejZsQ29qKzk5R01veVU3U296VGZQ cWlMSHo2V2NKWVozMForRjRsRi9nUHR4V0hCQ3BaNERob0RJMCtvWjBkT2JLeVlzSmRTUEdiTDJt SnEvcUNnPT0KIAorc3ltYm9sLW9ic2VydmFibGVAMS4yLjA6CisgIHZlcnNpb24gIjEuMi4wIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zeW1ib2wtb2JzZXJ2YWJs ZS8tL3N5bWJvbC1vYnNlcnZhYmxlLTEuMi4wLnRneiNjMjI2ODhhZWQ0ZWFiM2NkYzJkZmVhY2Ji NTYxNjYwNTYwYTAwODA0IgorICBpbnRlZ3JpdHkgc2hhNTEyLWU5MDBuTThSUnRHaGxWMzZLR0VV OWs2NUszbVBiMVdWNzBPZGpmeGxHMkVBdU0xbm9pL0UvQmFXL3VNaEw3YlBFc3NLOFFWNTd2TjNl c2l4alV2Y1hRPT0KKwogc3ludGF4LWVycm9yQF4xLjEuMToKICAgdmVyc2lvbiAiMS40LjAiCiAg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3N5bnRheC1lcnJvci8tL3N5 bnRheC1lcnJvci0xLjQuMC50Z3ojMmQ5ZDRmZjVjMDY0YWNiNzExNTk0YTNlM2I5NTA1NGFkNTFk OTA3YyIKQEAgLTg2MjksNiArOTAzNiwxMSBAQCB0aW1zb3J0QF4wLjMuMDoKICAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vdGltc29ydC8tL3RpbXNvcnQtMC4zLjAudGd6 IzQwNTQxMWE4ZTdlNjMzOWZlNjRkYjlhMjM0ZGUxMWRjMzFlMDJiZDQiCiAgIGludGVncml0eSBz aGExLVFGUVJxT2ZtTTUvbVRibWlOTjRSM0RIZ0s5UT0KIAordGlueS13YXJuaW5nQF4xLjAuMjoK KyAgdmVyc2lvbiAiMS4wLjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL3Rpbnktd2FybmluZy8tL3Rpbnktd2FybmluZy0xLjAuMy50Z3ojOTRhMzBkYjQ1M2RmNGM2 NDNkMGZkNTY2MDYwZDYwYTg3NWQ4NDc1NCIKKyAgaW50ZWdyaXR5IHNoYTUxMi1sQk45ekxOL29B ZjY4bzN6TlhZcmRDdDFrUDhXc2lHVzhPbzJrYTQxYjJJTTVKTC9TMUNUeVgxclcwbWIvelN1SnVu MFpVckR4eDRzcXZZUzJGV3pQQT09CisKIHRpcHB5LmpzQF42LjMuMToKICAgdmVyc2lvbiAiNi4z LjEiCiAgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3RpcHB5LmpzLy0v dGlwcHkuanMtNi4zLjEudGd6IzM3ODhhMDA3YmU3MDE1ZWVlMGZkNTg5YTY2Yjk4ZmIzZjhmMTAx ODEiCkBAIC04NzE0LDkgKzkxMjYsOSBAQCB0dGYyZW90QF4yLjAuMDoKICAgICBtaWNyb2J1ZmZl ciAiXjEuMC4wIgogCiB0dGYyd29mZjJAXjQuMC4xOgotICB2ZXJzaW9uICI0LjAuMiIKLSAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vdHRmMndvZmYyLy0vdHRmMndvZmYy LTQuMC4yLnRneiM5ZjI2MTA5ZjFlZDY2NDRiMWNhMjhhMjc1ODhiZTA1ODQwZTA3N2FkIgotICBp bnRlZ3JpdHkgc2hhNTEyLVFxb2d3ZTF5cGtTYlBPaENTbzZ6OURxYlZlSmo3d1A4WUhKRTZuRVM3 OEtCWFpON0RjZEJpV3pOVjlTTlFITStOMkdSTURuQk1RYnl5WEh1RGZiaW1nPT0KKyAgdmVyc2lv biAiNC4wLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3R0ZjJ3 b2ZmMi8tL3R0ZjJ3b2ZmMi00LjAuMS50Z3ojMDBhNzk1ODdkYTVmMTUwYWQyZWNmYmZkZjBkYmI0 YjVlZWFkNDY3NCIKKyAgaW50ZWdyaXR5IHNoYTUxMi1IZDBiUWI3bmY2dDFhU2s3bHo4WEZHY2Jj YzZQVk4zVUdXeS9ldkRtRi8yL0I3SG9UbEV0OE9sTUhadktEaXpMbWROT1d5eTRTOXF0MTYwR3BK OC9CQT09CiAgIGRlcGVuZGVuY2llczoKICAgICBiaW5kaW5ncyAiXjEuNS4wIgogICAgIGJ1ZmZl cnN0cmVhbXMgIl4zLjAuMCIKQEAgLTg3NjEsMTEgKzkxNzMsNiBAQCB0eXBlLWZlc3RAXjAuMTEu MDoKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vdHlwZS1mZXN0Ly0v dHlwZS1mZXN0LTAuMTEuMC50Z3ojOTdhYmYwODcyMzEwZmVkODhhNWM0NjZiMjU2ODE1NzYxNDVl MzNmMSIKICAgaW50ZWdyaXR5IHNoYTUxMi1PZGpYSnhuQ04xQXZ5TFN6ZUtJZ1hUWHhWKzk5WnVY bDNIcG85WHBKQXY5TUJjSHJySk9RNWtWN3lwWE91UWllK0FtV0cyNWhMYmlLZHdZVGlmemNmUT09 CiAKLXR5cGUtZmVzdEBeMC4yMC4yOgotICB2ZXJzaW9uICIwLjIwLjIiCi0gIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3R5cGUtZmVzdC8tL3R5cGUtZmVzdC0wLjIwLjIu dGd6IzFiZjIwN2Y0YjI4ZjkxNTgzNjY2Y2I1ZmJkMzI3ODg3MzAxY2Q1ZjQiCi0gIGludGVncml0 eSBzaGE1MTItTmUrZUU0cjAvaVducEF4RDg1MnozQStOMEJ0NVJOLy9Oakp3UmQyVkZIRW1yeXd4 ZjV2c1psaDRSNmxpeGw2Qit3ei84ZCttYVRTQWtOMUZJa0kzTFE9PQotCiB0eXBlLWZlc3RAXjAu OC4xOgogICB2ZXJzaW9uICIwLjguMSIKICAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vdHlwZS1mZXN0Ly0vdHlwZS1mZXN0LTAuOC4xLnRneiMwOWUyNDllYmRlODUxZDNi MWU0OGQyN2MxMDU0NDQ2NjdmMTdiODNkIgpAQCAtODc4NSwxNCArOTE5MiwxNCBAQCB0eXBlZGFy cmF5QF4wLjAuNjoKICAgaW50ZWdyaXR5IHNoYTEtaG5ySFRqaGtHSHNkUFVmWmxxZU94Y2lEQjNj PQogCiB1YS1wYXJzZXItanNAXjAuNy4yMzoKLSAgdmVyc2lvbiAiMC43LjI4IgotICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS91YS1wYXJzZXItanMvLS91YS1wYXJzZXIt anMtMC43LjI4LnRneiM4YmEwNGU2NTNmMzVjZTIxMDIzOWM2NDY2MTY4NWJmOTEyMWRlYzMxIgot ICBpbnRlZ3JpdHkgc2hhNTEyLTZHdXJjMW4vL2dqcDllUU5YakQ5TzNNL3NNd1Z0TjVTOEx2OWJ2 T1lCZktmRE5pSUlocWl5aTAxdk1CTzQ1dTR6a0RFNDIwdy9lMHNlN1ZzK3NJZytnPT0KKyAgdmVy c2lvbiAiMC43LjI0IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS91 YS1wYXJzZXItanMvLS91YS1wYXJzZXItanMtMC43LjI0LnRneiM4ZDNlY2VhNDZlZDRmMWYxZDYz ZWMyNWYxN2Q4NTY4MTA1ZGMwMjdjIgorICBpbnRlZ3JpdHkgc2hhNTEyLXlvK21pR3pReDVnYWt6 VkszUUZmTjAvTDl1Vmhvc1hCQk83cW1uazdjMml3MUloTDIxMndmQTN6Ym5JNTRCMG9iR3dDLzVO V3ViL2lUOXNSZU14K0Z3PT0KIAogdWdsaWZ5LWpzQF4zLjEuNDoKLSAgdmVyc2lvbiAiMy4xMy44 IgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS91Z2xpZnktanMvLS91 Z2xpZnktanMtMy4xMy44LnRneiM3YzJmOWYyNTUzZjYxMWYzZmY1OTJiZGMxOWM2ZmIyMDhkYzYw YWZiIgotICBpbnRlZ3JpdHkgc2hhNTEyLVB2RkxNRklRSGZJakZGbHZBY2g2OVUySXZJeEs5VE56 Tld0MVN4WkdwOUpaL3Y3MHl2cUlRdWlKZVZQUHRVTU96b050K2FOUkRrNHdneGIzNHd2RXFBPT0K KyAgdmVyc2lvbiAiMy4xMy4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS91Z2xpZnktanMvLS91Z2xpZnktanMtMy4xMy4wLnRneiM2NmVkNjlmNzI0MWYzM2YxMzUz MWQzZDUxZDViY2ViZjAwZGY3ZjY5IgorICBpbnRlZ3JpdHkgc2hhNTEyLVRXWVNXYTlUMnBQTjRE SUpZYlU5b0FqUXgrNXFkVjVSVUR4d0FSZzhmbUpackQvVjI3WmowSm5nVzV4ZzFERno0MkcwdURZ bDJYaHpGNmFsU3pENjJ3PT0KIAogdW1kQF4zLjAuMDoKICAgdmVyc2lvbiAiMy4wLjMiCkBAIC05 MTA4LDE5ICs5NTE1LDE5IEBAIHdlYnBhY2stc291cmNlc0BeMi4xLjE6CiAgICAgc291cmNlLW1h cCAiXjAuNi4xIgogCiB3ZWJwYWNrQF41LjIxLjI6Ci0gIHZlcnNpb24gIjUuMzcuMSIKLSAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vd2VicGFjay8tL3dlYnBhY2stNS4z Ny4xLnRneiMyZGViNWFjZDM1MDU4M2MxYWI5MzM4NDcxZjMyMzM4MWIwYjBjMTRiIgotICBpbnRl Z3JpdHkgc2hhNTEyLWJ0WmpHeS9oU2pDQUFWSHcrY0tHK0wwTStyc3RseXhiTzJDK0JPVGFRNS9Y QW54a0RyUDVzVmJxV2hYZ280cEwzWDJkY09pYjZycUNQMjBacjlQTG93PT0KKyAgdmVyc2lvbiAi NS4yNC4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS93ZWJwYWNr Ly0vd2VicGFjay01LjI0LjMudGd6IzZlYzBmNTA1OWY4ZDdjNzk2MTA3NWZhNTUzY2ZjZTdiNzky OGFjYjMiCisgIGludGVncml0eSBzaGE1MTIteDdscldaN3dsV0FkeUtkTUw2WVB2ZlZaa2hEMUlD dUlaR09ERTVTektKanFJOUE0U3BxR1RqR0pUYzZDd2FIcW4xOWdHYW9PUjNPTko0Nm5Zc245cnc9 PQogICBkZXBlbmRlbmNpZXM6CiAgICAgIkB0eXBlcy9lc2xpbnQtc2NvcGUiICJeMy43LjAiCi0g ICAgIkB0eXBlcy9lc3RyZWUiICJeMC4wLjQ3IgorICAgICJAdHlwZXMvZXN0cmVlIiAiXjAuMC40 NiIKICAgICAiQHdlYmFzc2VtYmx5anMvYXN0IiAiMS4xMS4wIgogICAgICJAd2ViYXNzZW1ibHlq cy93YXNtLWVkaXQiICIxLjExLjAiCiAgICAgIkB3ZWJhc3NlbWJseWpzL3dhc20tcGFyc2VyIiAi MS4xMS4wIgotICAgIGFjb3JuICJeOC4yLjEiCisgICAgYWNvcm4gIl44LjAuNCIKICAgICBicm93 c2Vyc2xpc3QgIl40LjE0LjUiCiAgICAgY2hyb21lLXRyYWNlLWV2ZW50ICJeMS4wLjIiCi0gICAg ZW5oYW5jZWQtcmVzb2x2ZSAiXjUuOC4wIgorICAgIGVuaGFuY2VkLXJlc29sdmUgIl41LjcuMCIK ICAgICBlcy1tb2R1bGUtbGV4ZXIgIl4wLjQuMCIKICAgICBlc2xpbnQtc2NvcGUgIl41LjEuMSIK ICAgICBldmVudHMgIl4zLjIuMCIKQEAgLTkxMzYsNyArOTU0Myw3IEBAIHdlYnBhY2tAXjUuMjEu MjoKICAgICB3YXRjaHBhY2sgIl4yLjAuMCIKICAgICB3ZWJwYWNrLXNvdXJjZXMgIl4yLjEuMSIK IAotd2hpY2gtYm94ZWQtcHJpbWl0aXZlQF4xLjAuMjoKK3doaWNoLWJveGVkLXByaW1pdGl2ZUBe MS4wLjE6CiAgIHZlcnNpb24gIjEuMC4yIgogICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS93aGljaC1ib3hlZC1wcmltaXRpdmUvLS93aGljaC1ib3hlZC1wcmltaXRpdmUt MS4wLjIudGd6IzEzNzU3YmM4OWIyMDliMDQ5ZmU1ZDg2NDMwZTIxY2Y0MGE4OWE4ZTYiCiAgIGlu dGVncml0eSBzaGE1MTItYndaZHYwQUtMcHBsRlkyS1pSWDZUdnl1TjdvampyN2x3a2c2bWwwcm9J eTlZZXVTcjdKUzM3MnFsTlcxOFVRWXpnWUs5emlHY2VyV3FaT21FbjlWTmc9PQpAQCAtOTIxOCwx NCArOTYyNSwxNCBAQCB3cmFwcHlAMToKICAgaW50ZWdyaXR5IHNoYTEtdFNROWp6N0Jxalh4TmtZ RnZBMFFOdU1LdHA4PQogCiB3c0BeNy4zLjEsIHdzQH43LjQuMjoKLSAgdmVyc2lvbiAiNy40LjYi Ci0gIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3dzLy0vd3MtNy40LjYu dGd6IzU2NTRjYThlY2RlZWU0N2MzM2E5YTRiZjZkMjhlMmJlMjk4MDM3N2MiCi0gIGludGVncml0 eSBzaGE1MTItWW1oSERPNE16YURMQitNOXltL21EQTV6MG5hWDhqN1NJbFQ4Zjh6K0kwVnR6c1Ji ZWt4RXV0SFNtZTdOUFMycUU4U3RDWVFOVW5mV2RYdGEvWXU4NUE9PQorICB2ZXJzaW9uICI3LjQu NCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vd3MvLS93cy03LjQu NC50Z3ojMzgzYmM5NzQyY2IyMDIyOTJjOTA3N2NlYWI2ZjYwNDdiMTdmMmQ1OSIKKyAgaW50ZWdy aXR5IHNoYTUxMi1RbThrOG9qTlFJTXg3UytacDh1L3VIT3g3UWF6djNZdjRxNjhNaVdXV09KaGl3 RzVXM3g3aXFtUnRKbzh4eHJjaVpVWTR2UnhVVEpDS3VSbkYyOFpadz09CiAKLXhtbGRvbUB+MC41 LjA6Ci0gIHZlcnNpb24gIjAuNS4wIgotICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS94bWxkb20vLS94bWxkb20tMC41LjAudGd6IzE5M2NiOTZiODRhYTM0ODYxMjdlYTYy NzJjNDU5NjM1NGNiNDk2MmUiCi0gIGludGVncml0eSBzaGE1MTItRm9hajVGWFZ6Z243eEZ6c0tl TklkZTlnNmFGQnhUUGkzN2l3c25vOFF2QXBtdGc3S1lycitPUHlSSGNKRjdkdWQyYTVuR1JCWEsz bjBkTDYyR2Y3UEE9PQoreG1sZG9tQH4wLjEuMjI6CisgIHZlcnNpb24gIjAuMS4zMSIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20veG1sZG9tLy0veG1sZG9tLTAuMS4z MS50Z3ojYjc2YzlhMWJkOWYwYTk3MzdlNWE3MmRjMzcyMzFjZjM4Mzc1ZTJmZiIKKyAgaW50ZWdy aXR5IHNoYTUxMi15UzJ1SmZsVlFzNm4rQ3lqSG9hQm1WU3FJRGV2VEFXcnpNbWpHMUdjN2gxcVE3 dVZvek5oRVBKQXdaWFd5R1EvR2FmbzNmQ3dyY2Fva2V6TFB1cFZ5UT09CiAKIHh0ZW5kQF40LjAu MCwgeHRlbmRAXjQuMC4xLCB4dGVuZEBeNC4wLjIsIHh0ZW5kQH40LjAuMToKICAgdmVyc2lvbiAi NC4wLjIiCkBAIC05MjczLDkgKzk2ODAsOSBAQCB5YW1sQF4xLjEwLjAsIHlhbWxAXjEuNy4yOgog ICBpbnRlZ3JpdHkgc2hhNTEyLXIzdlh5RXJSQ1lKN3dnMjh5dkJZNVZTb0FGOFp2bGNXOS9Cd1V6 RXRVc2p2WC9ES3MyNGRJa3V3anR1cHJ3SkpIc2J5VWJMQXBlcFlUUjFCTjR1SHJnPT0KIAogeWFy Z3MtcGFyc2VyQF4yMC4yLjI6Ci0gIHZlcnNpb24gIjIwLjIuNyIKLSAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20veWFyZ3MtcGFyc2VyLy0veWFyZ3MtcGFyc2VyLTIwLjIu Ny50Z3ojNjFkZjg1YzExM2VkZmI1YTdhNGUzNmViOGFhNjBlZjQyM2NiYzkwYSIKLSAgaW50ZWdy aXR5IHNoYTUxMi1GaU5rdmJlSHpCL3N5T2pJVXhGRENuaFNmekFMOFI1dnM0ME1nTEZCb3JYQUND T0FFYVd1MGdSWmwxNHZHOE1SOUFPSklaYm1ramh1c3FCWVozSFRIdz09CisgIHZlcnNpb24gIjIw LjIuNiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20veWFyZ3MtcGFy c2VyLy0veWFyZ3MtcGFyc2VyLTIwLjIuNi50Z3ojNjlmOTIwYWRkZjYxYWFmYzBiOGI4OTAwMmY1 ZDY2ZTI4ZjJkOGIyMCIKKyAgaW50ZWdyaXR5IHNoYTUxMi1BUDErZlFJV1NNL3NNaUVUOGZ5YXlq eC9KK0ptVFB0Mk1yMEZrcmdxQjR0b2R0ZmE1M3NPc3JTQWNJckpSRDVYUzIwYktVd2FESXVNa1dL Q0VpUUxLQT09CiAKIHlhcmdzQF4xNi4xLjE6CiAgIHZlcnNpb24gIjE2LjIuMCIK --000000000000d7c34c05c4f348c1--