From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.100; helo=mga07.intel.com; envelope-from=yunhuax.feng@intel.com; receiver=edk2-devel@lists.01.org Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 562AE209574EA for ; Tue, 27 Feb 2018 00:36:29 -0800 (PST) X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Feb 2018 00:42:34 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.47,400,1515484800"; d="dat'59?scan'59,208,59";a="207364429" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga006.fm.intel.com with ESMTP; 27 Feb 2018 00:42:34 -0800 Received: from fmsmsx119.amr.corp.intel.com (10.18.124.207) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 27 Feb 2018 00:42:34 -0800 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX119.amr.corp.intel.com (10.18.124.207) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 27 Feb 2018 00:42:33 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.124]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.125]) with mapi id 14.03.0319.002; Tue, 27 Feb 2018 16:42:31 +0800 From: "Feng, YunhuaX" To: "edk2-devel@lists.01.org" CC: "Zhu, Yonghong" , "Gao, Liming" Thread-Topic: [PATCH V2]BaseTools: Fix flexible PCD single quote and double quote bugs Thread-Index: AdOvpdIEDruuST/RT5Gi2RcQRoCaCQ== Date: Tue, 27 Feb 2018 08:42:30 +0000 Message-ID: <47C64442C08CCD4089DC43B6B5E46BC482B5DB@shsmsx102.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: <47C64442C08CCD4089DC43B6B5E46BC482B5DB@shsmsx102.ccr.corp.intel.com> x-originating-ip: [10.239.127.40] MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 Subject: [PATCH V2]BaseTools: Fix flexible PCD single quote and double quote bugs X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Feb 2018 08:36:29 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VjI6IA0KMS4gRml4IHBhcnNlIERTQyBmaWxlIHNwbGl0IFBDRCBWYWx1ZSB7JzknLCdhJywnIyd9 ICBidWlsZCBlcnJvcg0KMi4gRml4IHBhcnNlIC0tcGNkICBnVWVmaU92bWZQa2dUb2tlblNwYWNl R3VpZC50ZXN0MTA9IlwnQVwnIiBidWlsZCBlcnJvciwNCiAgICBJZiBQQ0QgdHlwZSBpcyBVSU5U OCBvciBVSU5UMTYgb3IgVUlOVDMyIG9yIFVJTlQ2NA0KDQpWMToNCjEuIEFyZ3VtZW50IC0tcGNk IGZvcm1hdCBhcyBiZWxvdzoNCiAgU29tZSBleGFtcGxlcyB0aGF0IHRvIG1hdGNoIC0tcGNkIGZv cm1hdCBhbmQgRFNDIGZvcm1hdA0KICAtLXBjZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RFNDIGZvcm1hdA0KICBMIkFCQyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgTCJBQkMiDQog ICJBQlxcXCJDIiAgICAgICAgICAgICAgICAgICAgICAgICAiQUJcIkMiDQogICJBQlx0QyIgICAg ICAgICAgICAgICAgICAgICAgICAgICJBQlx0QyINCiAgIkFCXFxcJ0MiICAgICAgICAgICAgICAg ICAgICAgICAgICJBQlwnQyINCiAgIlwnQUJDXCciICAgICAgICAgICAgICAgICAgICAgICAgICdB QkPDouKCrOKEog0KICBMIlwnQUJcXFwiQ1wnIiAgICAgICAgICAgICAgICAgICAgTCdBQlwiQycN CiAgIlwnQUJcXFwnQ1wnIiAgICAgICAgICAgICAgICAgICAgICdBQlwnQycNCiAgIlwnQUJcdENc JyIgICAgICAgICAgICAgICAgICAgICAgJ0FCXHRDJw0KICBIInswLCBMXCJBQlxcXCJCXCIsIFwn YWJcXFwiY1wnfSIgezAsIEwiQUJcIkIiLCAnYWJcImMnfQ0KICBIInswLCBMXCJBQlxcXCJCXCIs XCdhYlxcXCdjXCd9IiAgezAsIEwiQUJcIkIiLCAnYWJcJ2MnfQ0KMi4geycjJywgJ3wnfSBzcGxp dCBzdHJpbmcgaW5jb3JyZWN0bHkuDQoNCkNjOiBMaW1pbmcgR2FvIDxsaW1pbmcuZ2FvQGludGVs LmNvbT4NCkNjOiBZb25naG9uZyBaaHUgPHlvbmdob25nLnpodUBpbnRlbC5jb20+DQpDb250cmli dXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQoNClNpZ25l ZC1vZmYtYnk6IFl1bmh1YSBGZW5nIDx5dW5odWF4LmZlbmdAaW50ZWwuY29tPg0KLS0tDQogQmFz ZVRvb2xzL1NvdXJjZS9QeXRob24vQXV0b0dlbi9HZW5NYWtlLnB5ICAgICAgICB8IDIwICsrKysr LS0tDQogQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vQ29tbW9uL0V4cHJlc3Npb24ucHkgICAgICB8 IDYwICsrKysrKysrKysrKysrKystLS0tLS0tDQogQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vQ29t bW9uL01pc2MucHkgICAgICAgICAgICB8IDMxICsrKysrKystLS0tLQ0KIEJhc2VUb29scy9Tb3Vy Y2UvUHl0aG9uL0NvbW1vbi9TdHJpbmcucHkgICAgICAgICAgfCA0NiArKysrKysrKysrLS0tLS0t LQ0KIEJhc2VUb29scy9Tb3VyY2UvUHl0aG9uL1dvcmtzcGFjZS9Ec2NCdWlsZERhdGEucHkgfCAz MSArKysrKysrLS0tLS0NCiA1IGZpbGVzIGNoYW5nZWQsIDEyMyBpbnNlcnRpb25zKCspLCA2NSBk ZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9uL0F1dG9H ZW4vR2VuTWFrZS5weSBiL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9uL0F1dG9HZW4vR2VuTWFrZS5w eQ0KaW5kZXggYWZlNmYyZjk5Yy4uNGI5MjRkMjFlMCAxMDA2NDQNCi0tLSBhL0Jhc2VUb29scy9T b3VyY2UvUHl0aG9uL0F1dG9HZW4vR2VuTWFrZS5weQ0KKysrIGIvQmFzZVRvb2xzL1NvdXJjZS9Q eXRob24vQXV0b0dlbi9HZW5NYWtlLnB5DQpAQCAtMTU1MywxNyArMTU1MywyMyBAQCBjbGFzcyBU b3BMZXZlbE1ha2VmaWxlKEJ1aWxkRmlsZSk6DQogDQogICAgICAgICBpZiBHbG9iYWxEYXRhLkJ1 aWxkT3B0aW9uUGNkOg0KICAgICAgICAgICAgIGZvciBpbmRleCwgb3B0aW9uIGluIGVudW1lcmF0 ZShHbG9iYWxEYXRhLmdDb21tYW5kKToNCiAgICAgICAgICAgICAgICAgaWYgIi0tcGNkIiA9PSBv cHRpb24gYW5kIEdsb2JhbERhdGEuZ0NvbW1hbmRbaW5kZXgrMV06DQogICAgICAgICAgICAgICAg ICAgICBwY2ROYW1lLCBwY2RWYWx1ZSA9IEdsb2JhbERhdGEuZ0NvbW1hbmRbaW5kZXgrMV0uc3Bs aXQoJz0nKQ0KLSAgICAgICAgICAgICAgICAgICAgaWYgcGNkVmFsdWUuc3RhcnRzd2l0aCgnSCcp Og0KLSAgICAgICAgICAgICAgICAgICAgICAgIHBjZFZhbHVlID0gJ0gnICsgJyInICsgcGNkVmFs dWVbMTpdICsgJyInDQotICAgICAgICAgICAgICAgICAgICAgICAgRXh0cmFPcHRpb24gKz0gIiAt LXBjZCAiICsgcGNkTmFtZSArICc9JyArIHBjZFZhbHVlDQotICAgICAgICAgICAgICAgICAgICBl bGlmIHBjZFZhbHVlLnN0YXJ0c3dpdGgoIkwnIik6DQotICAgICAgICAgICAgICAgICAgICAgICAg RXh0cmFPcHRpb24gKz0gIi0tcGNkICIgKyBwY2ROYW1lICsgJz0nICsgcGNkVmFsdWUNCi0gICAg ICAgICAgICAgICAgICAgIGVsaWYgcGNkVmFsdWUuc3RhcnRzd2l0aCgnTCcpOg0KLSAgICAgICAg ICAgICAgICAgICAgICAgIHBjZFZhbHVlID0gJ0wnICsgJyInICsgcGNkVmFsdWVbMTpdICsgJyIn DQorICAgICAgICAgICAgICAgICAgICBmb3IgSXRlbSBpbiBHbG9iYWxEYXRhLkJ1aWxkT3B0aW9u UGNkOg0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICcuJy5qb2luKEl0ZW1bMDoyXSkgPT0g cGNkTmFtZToNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNkVmFsdWUgPSBJdGVtWzJd DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHBjZFZhbHVlLnN0YXJ0c3dpdGgoJ0wn KSBvciBwY2RWYWx1ZS5zdGFydHN3aXRoKCciJyk6DQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwY2RWYWx1ZSwgU2l6ZSA9IFBhcnNlRmllbGRWYWx1ZShwY2RWYWx1ZSkNCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5ld1ZhbCA9ICd7Jw0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZm9yIFMgaW4gcmFuZ2UoU2l6ZSk6DQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTmV3VmFsID0gTmV3VmFsICsgJzB4JTAyWCcgJSAoKHBjZFZh bHVlID4+IFMgKiA4KSAmIDB4ZmYpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTmV3VmFsICs9ICcsJw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNkVmFs dWUgPSAgTmV3VmFsWzotMV0gKyAnfScNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJl YWsNCisgICAgICAgICAgICAgICAgICAgIGlmIHBjZFZhbHVlLnN0YXJ0c3dpdGgoJ3snKToNCisg ICAgICAgICAgICAgICAgICAgICAgICBwY2RWYWx1ZSA9ICdIJyArICciJyArIHBjZFZhbHVlICsg JyInDQogICAgICAgICAgICAgICAgICAgICAgICAgRXh0cmFPcHRpb24gKz0gIiAtLXBjZCAiICsg cGNkTmFtZSArICc9JyArIHBjZFZhbHVlDQogICAgICAgICAgICAgICAgICAgICBlbHNlOg0KICAg ICAgICAgICAgICAgICAgICAgICAgIEV4dHJhT3B0aW9uICs9ICIgLS1wY2QgIiArIEdsb2JhbERh dGEuZ0NvbW1hbmRbaW5kZXgrMV0NCiANCiAgICAgICAgIE1ha2VmaWxlTmFtZSA9IHNlbGYuX0ZJ TEVfTkFNRV9bc2VsZi5fRmlsZVR5cGVdDQpkaWZmIC0tZ2l0IGEvQmFzZVRvb2xzL1NvdXJjZS9Q eXRob24vQ29tbW9uL0V4cHJlc3Npb24ucHkgYi9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi9Db21t b24vRXhwcmVzc2lvbi5weQ0KaW5kZXggZWRiMGE2MGRlNi4uZjE1MTZkNWM3YiAxMDA2NDQNCi0t LSBhL0Jhc2VUb29scy9Tb3VyY2UvUHl0aG9uL0NvbW1vbi9FeHByZXNzaW9uLnB5DQorKysgYi9C YXNlVG9vbHMvU291cmNlL1B5dGhvbi9Db21tb24vRXhwcmVzc2lvbi5weQ0KQEAgLTQzLDI4ICs0 Myw0MSBAQCBFUlJfSU5fT1BFUkFORCAgICAgICAgICA9ICdNYWNybyBhZnRlciBJTiBvcGVyYXRv ciBjYW4gb25seSBiZTogJChGQU1JTFkpLCAkKEFSQw0KICMjIFNwbGl0U3RyaW5nDQogIyAgU3Bs aXQgc3RyaW5nIHRvIGxpc3QgYWNjb3JkaW5nIGRvdWJsZSBxdW90ZQ0KICMgIEZvciBleGFtcGxl OiBhYmMiZGVcImYiZ2hpImprbCJtbiB3aWxsIGJlOiBbJ2FiYycsICciZGVcImYiJywgJ2doaScs ICciamtsIicsICdtbiddDQogIw0KIGRlZiBTcGxpdFN0cmluZyhTdHJpbmcpOg0KLSAgICAjIFRo ZXJlIG1pZ2h0IGJlIGVzY2FwZWQgcXVvdGU6ICJhYmNcImRlZlxcXCJnaGkiDQotICAgIFN0ciA9 IFN0cmluZy5yZXBsYWNlKCdcXFxcJywgJy8vJykucmVwbGFjZSgnXFxcIicsICdcXFwnJykNCisg ICAgIyBUaGVyZSBtaWdodCBiZSBlc2NhcGVkIHF1b3RlOiAiYWJjXCJkZWZcXFwiZ2hpIiwgJ2Fi Y1wnZGVmXFxcJ2doaScNCisgICAgU3RyID0gU3RyaW5nDQogICAgIFJldExpc3QgPSBbXQ0KLSAg ICBJblF1b3RlID0gRmFsc2UNCisgICAgSW5TaW5nbGVRdW90ZSA9IEZhbHNlDQorICAgIEluRG91 YmxlUXVvdGUgPSBGYWxzZQ0KICAgICBJdGVtID0gJycNCiAgICAgZm9yIGksIGNoIGluIGVudW1l cmF0ZShTdHIpOg0KLSAgICAgICAgaWYgY2ggPT0gJyInOg0KLSAgICAgICAgICAgIEluUXVvdGUg PSBub3QgSW5RdW90ZQ0KLSAgICAgICAgICAgIGlmIG5vdCBJblF1b3RlOg0KKyAgICAgICAgaWYg Y2ggPT0gJyInIGFuZCBub3QgSW5TaW5nbGVRdW90ZToNCisgICAgICAgICAgICBpZiBTdHJbaSAt IDFdICE9ICdcXCc6DQorICAgICAgICAgICAgICAgIEluRG91YmxlUXVvdGUgPSBub3QgSW5Eb3Vi bGVRdW90ZQ0KKyAgICAgICAgICAgIGlmIG5vdCBJbkRvdWJsZVF1b3RlOg0KKyAgICAgICAgICAg ICAgICBJdGVtICs9IFN0cmluZ1tpXQ0KKyAgICAgICAgICAgICAgICBSZXRMaXN0LmFwcGVuZChJ dGVtKQ0KKyAgICAgICAgICAgICAgICBJdGVtID0gJycNCisgICAgICAgICAgICAgICAgY29udGlu dWUNCisgICAgICAgICAgICBpZiBJdGVtOg0KKyAgICAgICAgICAgICAgICBSZXRMaXN0LmFwcGVu ZChJdGVtKQ0KKyAgICAgICAgICAgICAgICBJdGVtID0gJycNCisgICAgICAgIGVsaWYgY2ggPT0g IiciIGFuZCBub3QgSW5Eb3VibGVRdW90ZToNCisgICAgICAgICAgICBpZiBTdHJbaSAtIDFdICE9 ICdcXCc6DQorICAgICAgICAgICAgICAgIEluU2luZ2xlUXVvdGUgPSBub3QgSW5TaW5nbGVRdW90 ZQ0KKyAgICAgICAgICAgIGlmIG5vdCBJblNpbmdsZVF1b3RlOg0KICAgICAgICAgICAgICAgICBJ dGVtICs9IFN0cmluZ1tpXQ0KICAgICAgICAgICAgICAgICBSZXRMaXN0LmFwcGVuZChJdGVtKQ0K ICAgICAgICAgICAgICAgICBJdGVtID0gJycNCiAgICAgICAgICAgICAgICAgY29udGludWUNCiAg ICAgICAgICAgICBpZiBJdGVtOg0KICAgICAgICAgICAgICAgICBSZXRMaXN0LmFwcGVuZChJdGVt KQ0KICAgICAgICAgICAgICAgICBJdGVtID0gJycNCiAgICAgICAgIEl0ZW0gKz0gU3RyaW5nW2ld DQotICAgIGlmIEluUXVvdGU6DQorICAgIGlmIEluU2luZ2xlUXVvdGUgb3IgSW5Eb3VibGVRdW90 ZToNCiAgICAgICAgIHJhaXNlIEJhZEV4cHJlc3Npb24oRVJSX1NUUklOR19UT0tFTiAlIEl0ZW0p DQogICAgIGlmIEl0ZW06DQogICAgICAgICBSZXRMaXN0LmFwcGVuZChJdGVtKQ0KICAgICByZXR1 cm4gUmV0TGlzdA0KIA0KQEAgLTQ4MSwxNyArNDk0LDIxIEBAIGNsYXNzIFZhbHVlRXhwcmVzc2lv bihvYmplY3QpOg0KICAgICAgICAgICAgIFJhZGl4ID0gMTYNCiAgICAgICAgIGlmIHNlbGYuX1Rv a2VuLnN0YXJ0c3dpdGgoJyInKSBvciBzZWxmLl9Ub2tlbi5zdGFydHN3aXRoKCdMIicpOg0KICAg ICAgICAgICAgIEZsYWcgPSAwDQogICAgICAgICAgICAgZm9yIEluZGV4IGluIHJhbmdlKGxlbihz ZWxmLl9Ub2tlbikpOg0KICAgICAgICAgICAgICAgICBpZiBzZWxmLl9Ub2tlbltJbmRleF0gaW4g WyciJ106DQorICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9Ub2tlbltJbmRleCAtIDFdID09 ICdcXCc6DQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUNCiAgICAgICAgICAgICAg ICAgICAgIEZsYWcgKz0gMQ0KICAgICAgICAgICAgIGlmIEZsYWcgPT0gMiBhbmQgc2VsZi5fVG9r ZW4uZW5kc3dpdGgoJyInKToNCiAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUNCiAgICAgICAg IGlmIHNlbGYuX1Rva2VuLnN0YXJ0c3dpdGgoIiciKSBvciBzZWxmLl9Ub2tlbi5zdGFydHN3aXRo KCJMJyIpOg0KICAgICAgICAgICAgIEZsYWcgPSAwDQogICAgICAgICAgICAgZm9yIEluZGV4IGlu IHJhbmdlKGxlbihzZWxmLl9Ub2tlbikpOg0KICAgICAgICAgICAgICAgICBpZiBzZWxmLl9Ub2tl bltJbmRleF0gaW4gWyInIl06DQorICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9Ub2tlbltJ bmRleCAtIDFdID09ICdcXCc6DQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUNCiAg ICAgICAgICAgICAgICAgICAgIEZsYWcgKz0gMQ0KICAgICAgICAgICAgIGlmIEZsYWcgPT0gMiBh bmQgc2VsZi5fVG9rZW4uZW5kc3dpdGgoIiciKToNCiAgICAgICAgICAgICAgICAgcmV0dXJuIFRy dWUNCiAgICAgICAgIHRyeToNCiAgICAgICAgICAgICBzZWxmLl9Ub2tlbiA9IGludChzZWxmLl9U b2tlbiwgUmFkaXgpDQpAQCAtNTM1LDIwICs1NTIsMjkgQEAgY2xhc3MgVmFsdWVFeHByZXNzaW9u KG9iamVjdCk6DQogDQogICAgICAgICAjIFNraXAgbGVmdCBxdW90ZQ0KICAgICAgICAgc2VsZi5f SWR4ICs9IDENCiANCiAgICAgICAgICMgUmVwbGFjZSBlc2NhcGUgXFxcIiwgXCINCi0gICAgICAg IEV4cHIgPSBzZWxmLl9FeHByW3NlbGYuX0lkeDpdLnJlcGxhY2UoJ1xcXFwnLCAnLy8nKS5yZXBs YWNlKCdcXFwiJywgJ1xcXCcnKQ0KLSAgICAgICAgZm9yIENoIGluIEV4cHI6DQotICAgICAgICAg ICAgc2VsZi5fSWR4ICs9IDENCi0gICAgICAgICAgICBpZiBDaCA9PSAnIicgb3IgQ2ggPT0gIici Og0KLSAgICAgICAgICAgICAgICBicmVhaw0KLSAgICAgICAgc2VsZi5fVG9rZW4gPSBzZWxmLl9M aXRlcmFsVG9rZW4gPSBzZWxmLl9FeHByW0lkeDpzZWxmLl9JZHhdDQotICAgICAgICBpZiBzZWxm Ll9Ub2tlbi5zdGFydHN3aXRoKCciJykgYW5kIG5vdCBzZWxmLl9Ub2tlbi5lbmRzd2l0aCgnIicp Og0KLSAgICAgICAgICAgIHJhaXNlIEJhZEV4cHJlc3Npb24oRVJSX1NUUklOR19UT0tFTiAlIHNl bGYuX1Rva2VuKQ0KLSAgICAgICAgaWYgc2VsZi5fVG9rZW4uc3RhcnRzd2l0aCgiJyIpIGFuZCBu b3Qgc2VsZi5fVG9rZW4uZW5kc3dpdGgoIiciKToNCi0gICAgICAgICAgICByYWlzZSBCYWRFeHBy ZXNzaW9uKEVSUl9TVFJJTkdfVE9LRU4gJSBzZWxmLl9Ub2tlbikNCisgICAgICAgIGlmIHNlbGYu X0V4cHJbSWR4XSA9PSAnIic6DQorICAgICAgICAgICAgRXhwciA9IHNlbGYuX0V4cHJbc2VsZi5f SWR4Ol0ucmVwbGFjZSgnXFxcXCcsICcvLycpLnJlcGxhY2UoJ1xcXCInLCAnXFxcJycpDQorICAg ICAgICAgICAgZm9yIENoIGluIEV4cHI6DQorICAgICAgICAgICAgICAgIHNlbGYuX0lkeCArPSAx DQorICAgICAgICAgICAgICAgIGlmIENoID09ICciJzoNCisgICAgICAgICAgICAgICAgICAgIGJy ZWFrDQorICAgICAgICAgICAgc2VsZi5fVG9rZW4gPSBzZWxmLl9MaXRlcmFsVG9rZW4gPSBzZWxm Ll9FeHByW0lkeDpzZWxmLl9JZHhdDQorICAgICAgICAgICAgaWYgbm90IHNlbGYuX1Rva2VuLmVu ZHN3aXRoKCciJyk6DQorICAgICAgICAgICAgICAgIHJhaXNlIEJhZEV4cHJlc3Npb24oRVJSX1NU UklOR19UT0tFTiAlIHNlbGYuX1Rva2VuKQ0KKyAgICAgICAgI1JlcGxhY2UgZXNjYXBlIFxcXCcs IFwnDQorICAgICAgICBlbGlmIHNlbGYuX0V4cHJbSWR4XSA9PSAiJyI6DQorICAgICAgICAgICAg RXhwciA9IHNlbGYuX0V4cHJbc2VsZi5fSWR4Ol0ucmVwbGFjZSgnXFxcXCcsICcvLycpLnJlcGxh Y2UoIlxcXCciLCAiXFxcIiIpDQorICAgICAgICAgICAgZm9yIENoIGluIEV4cHI6DQorICAgICAg ICAgICAgICAgIHNlbGYuX0lkeCArPSAxDQorICAgICAgICAgICAgICAgIGlmIENoID09ICInIjoN CisgICAgICAgICAgICAgICAgICAgIGJyZWFrDQorICAgICAgICAgICAgc2VsZi5fVG9rZW4gPSBz ZWxmLl9MaXRlcmFsVG9rZW4gPSBzZWxmLl9FeHByW0lkeDpzZWxmLl9JZHhdDQorICAgICAgICAg ICAgaWYgbm90IHNlbGYuX1Rva2VuLmVuZHN3aXRoKCInIik6DQorICAgICAgICAgICAgICAgIHJh aXNlIEJhZEV4cHJlc3Npb24oRVJSX1NUUklOR19UT0tFTiAlIHNlbGYuX1Rva2VuKQ0KICAgICAg ICAgc2VsZi5fVG9rZW4gPSBzZWxmLl9Ub2tlblsxOi0xXQ0KICAgICAgICAgcmV0dXJuIHNlbGYu X1Rva2VuDQogDQogICAgICMgR2V0IHRva2VuIHRoYXQgaXMgY29tcHJpc2VkIGJ5IGFscGhhbnVt ZXJpYywgdW5kZXJzY29yZSBvciBkb3QodXNlZCBieSBQQ0QpDQogICAgICMgQHBhcmFtIElzQWxw aGFPcDogSW5kaWNhdGUgaWYgcGFyc2luZyBnZW5lcmFsIHRva2VuIG9yIHNjcmlwdCBvcGVyYXRv cihFUSwgTkUuLi4pDQpkaWZmIC0tZ2l0IGEvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vQ29tbW9u L01pc2MucHkgYi9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi9Db21tb24vTWlzYy5weQ0KaW5kZXgg MTQ2MWQwMDY2OS4uYTdlNzc5N2QwNCAxMDA2NDQNCi0tLSBhL0Jhc2VUb29scy9Tb3VyY2UvUHl0 aG9uL0NvbW1vbi9NaXNjLnB5DQorKysgYi9CYXNlVG9vbHMvU291cmNlL1B5dGhvbi9Db21tb24v TWlzYy5weQ0KQEAgLTE0NDEsMjUgKzE0NDEsMzAgQEAgZGVmIFBhcnNlQ29uc29sZUxvZyhGaWxl bmFtZSk6DQogICAgIE9wci5jbG9zZSgpDQogICAgIE9wdy5jbG9zZSgpDQogDQogZGVmIEFuYWx5 emVQY2RFeHByZXNzaW9uKFNldHRpbmcpOg0KICAgICBTZXR0aW5nID0gU2V0dGluZy5zdHJpcCgp DQotICAgICMgVGhlcmUgbWlnaHQgYmUgZXNjYXBlZCBxdW90ZSBpbiBhIHN0cmluZzogXCIsIFxc XCINCi0gICAgRGF0YSA9IFNldHRpbmcucmVwbGFjZSgnXFxcXCcsICcvLycpLnJlcGxhY2UoJ1xc XCInLCAnXFxcJycpDQorICAgICMgVGhlcmUgbWlnaHQgYmUgZXNjYXBlZCBxdW90ZSBpbiBhIHN0 cmluZzogXCIsIFxcXCIgLCBcJywgXFxcJw0KKyAgICBEYXRhID0gU2V0dGluZw0KICAgICAjIFRo ZXJlIG1pZ2h0IGJlICd8JyBpbiBzdHJpbmcgYW5kIGluICggLi4uIHwgLi4uICksIHJlcGxhY2Ug aXQgd2l0aCAnLScNCiAgICAgTmV3U3RyID0gJycNCi0gICAgSW5TdHIgPSBGYWxzZQ0KKyAgICBJ blNpbmdsZVF1b3RlU3RyID0gRmFsc2UNCisgICAgSW5Eb3VibGVRdW90ZVN0ciA9IEZhbHNlDQog ICAgIFBhaXIgPSAwDQotICAgIGZvciBjaCBpbiBEYXRhOg0KLSAgICAgICAgaWYgY2ggPT0gJyIn Og0KLSAgICAgICAgICAgIEluU3RyID0gbm90IEluU3RyDQotICAgICAgICBlbGlmIGNoID09ICco JyBhbmQgbm90IEluU3RyOg0KKyAgICBmb3IgSW5kZXgsIGNoIGluIGVudW1lcmF0ZShEYXRhKToN CisgICAgICAgIGlmIGNoID09ICciJyBhbmQgbm90IEluU2luZ2xlUXVvdGVTdHI6DQorICAgICAg ICAgICAgaWYgRGF0YVtJbmRleCAtIDFdICE9ICdcXCc6DQorICAgICAgICAgICAgICAgIEluRG91 YmxlUXVvdGVTdHIgPSBub3QgSW5Eb3VibGVRdW90ZVN0cg0KKyAgICAgICAgZWxpZiBjaCA9PSAi JyIgYW5kIG5vdCBJbkRvdWJsZVF1b3RlU3RyOg0KKyAgICAgICAgICAgIGlmIERhdGFbSW5kZXgg LSAxXSAhPSAnXFwnOg0KKyAgICAgICAgICAgICAgICBJblNpbmdsZVF1b3RlU3RyID0gbm90IElu U2luZ2xlUXVvdGVTdHINCisgICAgICAgIGVsaWYgY2ggPT0gJygnIGFuZCBub3QgKEluU2luZ2xl UXVvdGVTdHIgb3IgSW5Eb3VibGVRdW90ZVN0cik6DQogICAgICAgICAgICAgUGFpciArPSAxDQot ICAgICAgICBlbGlmIGNoID09ICcpJyBhbmQgbm90IEluU3RyOg0KKyAgICAgICAgZWxpZiBjaCA9 PSAnKScgYW5kIG5vdCAoSW5TaW5nbGVRdW90ZVN0ciBvciBJbkRvdWJsZVF1b3RlU3RyKToNCiAg ICAgICAgICAgICBQYWlyIC09IDENCiANCi0gICAgICAgIGlmIChQYWlyID4gMCBvciBJblN0cikg YW5kIGNoID09IFRBQl9WQUxVRV9TUExJVDoNCisgICAgICAgIGlmIChQYWlyID4gMCBvciBJblNp bmdsZVF1b3RlU3RyIG9yIEluRG91YmxlUXVvdGVTdHIpIGFuZCBjaCA9PSBUQUJfVkFMVUVfU1BM SVQ6DQogICAgICAgICAgICAgTmV3U3RyICs9ICctJw0KICAgICAgICAgZWxzZToNCiAgICAgICAg ICAgICBOZXdTdHIgKz0gY2gNCiAgICAgRmllbGRMaXN0ID0gW10NCiAgICAgU3RhcnRQb3MgPSAw DQpAQCAtMTU0NywzNyArMTU1MiwzNyBAQCBkZWYgUGFyc2VGaWVsZFZhbHVlIChWYWx1ZSk6DQog ICAgICAgICAgICAgcmFpc2UgQmFkRXhwcmVzc2lvbignJXMnICUgTWVzc2FnZSkNCiAgICAgICAg IFZhbHVlLCBTaXplID0gUGFyc2VGaWVsZFZhbHVlKFZhbHVlKQ0KICAgICAgICAgcmV0dXJuIFZh bHVlLCAxNg0KICAgICBpZiBWYWx1ZS5zdGFydHN3aXRoKCdMIicpIGFuZCBWYWx1ZS5lbmRzd2l0 aCgnIicpOg0KICAgICAgICAgIyBVbmljb2RlIFN0cmluZw0KLSAgICAgICAgTGlzdCA9IGxpc3Qo VmFsdWVbMjotMV0pDQorICAgICAgICBMaXN0ID0gbGlzdChldmFsKFZhbHVlWzE6XSkpICAjIHRy YW5zbGF0ZSBlc2NhcGUgY2hhcmFjdGVyDQogICAgICAgICBMaXN0LnJldmVyc2UoKQ0KICAgICAg ICAgVmFsdWUgPSAwDQogICAgICAgICBmb3IgQ2hhciBpbiBMaXN0Og0KICAgICAgICAgICAgIFZh bHVlID0gKFZhbHVlIDw8IDE2KSB8IG9yZChDaGFyKQ0KICAgICAgICAgcmV0dXJuIFZhbHVlLCAo bGVuKExpc3QpICsgMSkgKiAyDQogICAgIGlmIFZhbHVlLnN0YXJ0c3dpdGgoJyInKSBhbmQgVmFs dWUuZW5kc3dpdGgoJyInKToNCiAgICAgICAgICMgQVNDSUkgU3RyaW5nDQotICAgICAgICBMaXN0 ID0gbGlzdChWYWx1ZVsxOi0xXSkNCisgICAgICAgIExpc3QgPSBsaXN0KGV2YWwoVmFsdWUpKSAg IyB0cmFuc2xhdGUgZXNjYXBlIGNoYXJhY3Rlcg0KICAgICAgICAgTGlzdC5yZXZlcnNlKCkNCiAg ICAgICAgIFZhbHVlID0gMA0KICAgICAgICAgZm9yIENoYXIgaW4gTGlzdDoNCiAgICAgICAgICAg ICBWYWx1ZSA9IChWYWx1ZSA8PCA4KSB8IG9yZChDaGFyKQ0KICAgICAgICAgcmV0dXJuIFZhbHVl LCBsZW4oTGlzdCkgKyAxDQogICAgIGlmIFZhbHVlLnN0YXJ0c3dpdGgoIkwnIikgYW5kIFZhbHVl LmVuZHN3aXRoKCInIik6DQogICAgICAgICAjIFVuaWNvZGUgQ2hhcmFjdGVyIENvbnN0YW50DQot ICAgICAgICBMaXN0ID0gbGlzdChWYWx1ZVsyOi0xXSkNCisgICAgICAgIExpc3QgPSBsaXN0KGV2 YWwoVmFsdWVbMTpdKSkgIyB0cmFuc2xhdGUgZXNjYXBlIGNoYXJhY3Rlcg0KICAgICAgICAgaWYg bGVuKExpc3QpID09IDA6DQogICAgICAgICAgICAgcmFpc2UgQmFkRXhwcmVzc2lvbignTGVuZ3Ro ICVzIGlzICVzJyAlIChWYWx1ZSwgbGVuKExpc3QpKSkNCiAgICAgICAgIExpc3QucmV2ZXJzZSgp DQogICAgICAgICBWYWx1ZSA9IDANCiAgICAgICAgIGZvciBDaGFyIGluIExpc3Q6DQogICAgICAg ICAgICAgVmFsdWUgPSAoVmFsdWUgPDwgMTYpIHwgb3JkKENoYXIpDQogICAgICAgICByZXR1cm4g VmFsdWUsIGxlbihMaXN0KSAqIDINCiAgICAgaWYgVmFsdWUuc3RhcnRzd2l0aCgiJyIpIGFuZCBW YWx1ZS5lbmRzd2l0aCgiJyIpOg0KICAgICAgICAgIyBDaGFyYWN0ZXIgY29uc3RhbnQNCi0gICAg ICAgIExpc3QgPSBsaXN0KFZhbHVlWzE6LTFdKQ0KKyAgICAgICAgTGlzdCA9IGxpc3QoZXZhbChW YWx1ZSkpICMgdHJhbnNsYXRlIGVzY2FwZSBjaGFyYWN0ZXINCiAgICAgICAgIGlmIGxlbihMaXN0 KSA9PSAwOg0KICAgICAgICAgICAgIHJhaXNlIEJhZEV4cHJlc3Npb24oJ0xlbmd0aCAlcyBpcyAl cycgJSAoVmFsdWUsIGxlbihMaXN0KSkpDQogICAgICAgICBMaXN0LnJldmVyc2UoKQ0KICAgICAg ICAgVmFsdWUgPSAwDQogICAgICAgICBmb3IgQ2hhciBpbiBMaXN0Og0KZGlmZiAtLWdpdCBhL0Jh c2VUb29scy9Tb3VyY2UvUHl0aG9uL0NvbW1vbi9TdHJpbmcucHkgYi9CYXNlVG9vbHMvU291cmNl L1B5dGhvbi9Db21tb24vU3RyaW5nLnB5DQppbmRleCA0YThjMDNlODhlLi41ZTUwYmVmZjVjIDEw MDY0NA0KLS0tIGEvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vQ29tbW9uL1N0cmluZy5weQ0KKysr IGIvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vQ29tbW9uL1N0cmluZy5weQ0KQEAgLTQzLDMwICs0 MywzNiBAQCBnSHVtYW5SZWFkYWJsZVZlclBhdHQgPSByZS5jb21waWxlKHInKFsxLTldWzAtOV0q fDApXC5bMC05XXsxLDJ9JCcpDQogIw0KIGRlZiBHZXRTcGxpdFZhbHVlTGlzdChTdHJpbmcsIFNw bGl0VGFnPURhdGFUeXBlLlRBQl9WQUxVRV9TUExJVCwgTWF4U3BsaXQ9IC0xKToNCiAgICAgVmFs dWVMaXN0ID0gW10NCiAgICAgTGFzdCA9IDANCiAgICAgRXNjYXBlZCA9IEZhbHNlDQotICAgIElu U3RyaW5nID0gRmFsc2UNCisgICAgSW5TaW5nbGVRdW90ZVN0cmluZyA9IEZhbHNlDQorICAgIElu RG91YmxlUXVvdGVTdHJpbmcgPSBGYWxzZQ0KICAgICBJblBhcmVudGhlc2lzID0gMA0KICAgICBm b3IgSW5kZXggaW4gcmFuZ2UoMCwgbGVuKFN0cmluZykpOg0KICAgICAgICAgQ2hhciA9IFN0cmlu Z1tJbmRleF0NCiANCiAgICAgICAgIGlmIG5vdCBFc2NhcGVkOg0KICAgICAgICAgICAgICMgRm91 bmQgYSBzcGxpdHRlciBub3QgaW4gYSBzdHJpbmcsIHNwbGl0IGl0DQotICAgICAgICAgICAgaWYg bm90IEluU3RyaW5nIGFuZCBJblBhcmVudGhlc2lzID09IDAgYW5kIENoYXIgPT0gU3BsaXRUYWc6 DQorICAgICAgICAgICAgaWYgKG5vdCBJblNpbmdsZVF1b3RlU3RyaW5nIG9yIG5vdCBJbkRvdWJs ZVF1b3RlU3RyaW5nKSBhbmQgSW5QYXJlbnRoZXNpcyA9PSAwIGFuZCBDaGFyID09IFNwbGl0VGFn Og0KICAgICAgICAgICAgICAgICBWYWx1ZUxpc3QuYXBwZW5kKFN0cmluZ1tMYXN0OkluZGV4XS5z dHJpcCgpKQ0KICAgICAgICAgICAgICAgICBMYXN0ID0gSW5kZXggKyAxDQogICAgICAgICAgICAg ICAgIGlmIE1heFNwbGl0ID4gMCBhbmQgbGVuKFZhbHVlTGlzdCkgPj0gTWF4U3BsaXQ6DQogICAg ICAgICAgICAgICAgICAgICBicmVhaw0KIA0KLSAgICAgICAgICAgIGlmIENoYXIgPT0gJ1xcJyBh bmQgSW5TdHJpbmc6DQorICAgICAgICAgICAgaWYgQ2hhciA9PSAnXFwnIGFuZCAoSW5TaW5nbGVR dW90ZVN0cmluZyBvciBJbkRvdWJsZVF1b3RlU3RyaW5nKToNCiAgICAgICAgICAgICAgICAgRXNj YXBlZCA9IFRydWUNCi0gICAgICAgICAgICBlbGlmIENoYXIgPT0gJyInOg0KLSAgICAgICAgICAg ICAgICBpZiBub3QgSW5TdHJpbmc6DQotICAgICAgICAgICAgICAgICAgICBJblN0cmluZyA9IFRy dWUNCisgICAgICAgICAgICBlbGlmIENoYXIgPT0gJyInIGFuZCBub3QgSW5TaW5nbGVRdW90ZVN0 cmluZzoNCisgICAgICAgICAgICAgICAgaWYgbm90IEluRG91YmxlUXVvdGVTdHJpbmc6DQorICAg ICAgICAgICAgICAgICAgICBJbkRvdWJsZVF1b3RlU3RyaW5nID0gVHJ1ZQ0KICAgICAgICAgICAg ICAgICBlbHNlOg0KLSAgICAgICAgICAgICAgICAgICAgSW5TdHJpbmcgPSBGYWxzZQ0KKyAgICAg ICAgICAgICAgICAgICAgSW5Eb3VibGVRdW90ZVN0cmluZyA9IEZhbHNlDQorICAgICAgICAgICAg ZWxpZiBDaGFyID09ICInIiBhbmQgbm90IEluRG91YmxlUXVvdGVTdHJpbmc6DQorICAgICAgICAg ICAgICAgIGlmIG5vdCBJblNpbmdsZVF1b3RlU3RyaW5nOg0KKyAgICAgICAgICAgICAgICAgICAg SW5TaW5nbGVRdW90ZVN0cmluZyA9IFRydWUNCisgICAgICAgICAgICAgICAgZWxzZToNCisgICAg ICAgICAgICAgICAgICAgIEluU2luZ2xlUXVvdGVTdHJpbmcgPSBGYWxzZQ0KICAgICAgICAgICAg IGVsaWYgQ2hhciA9PSAnKCc6DQogICAgICAgICAgICAgICAgIEluUGFyZW50aGVzaXMgPSBJblBh cmVudGhlc2lzICsgMQ0KICAgICAgICAgICAgIGVsaWYgQ2hhciA9PSAnKSc6DQogICAgICAgICAg ICAgICAgIEluUGFyZW50aGVzaXMgPSBJblBhcmVudGhlc2lzIC0gMQ0KICAgICAgICAgZWxzZToN CkBAIC0zNDMsMTggKzM0OSwyMSBAQCBkZWYgQ2xlYW5TdHJpbmcoTGluZSwgQ29tbWVudENoYXJh Y3Rlcj1EYXRhVHlwZS5UQUJfQ09NTUVOVF9TUExJVCwgQWxsb3dDcHBTdHlsZQ0KICAgICBpZiBB bGxvd0NwcFN0eWxlQ29tbWVudDoNCiAgICAgICAgIExpbmUgPSBMaW5lLnJlcGxhY2UoRGF0YVR5 cGUuVEFCX0NPTU1FTlRfRURLX1NQTElULCBDb21tZW50Q2hhcmFjdGVyKQ0KICAgICAjDQogICAg ICMgcmVtb3ZlIGNvbW1lbnRzLCBidXQgd2Ugc2hvdWxkIGVzY2FwZSBjb21tZW50IGNoYXJhY3Rl ciBpbiBzdHJpbmcNCiAgICAgIw0KLSAgICBJblN0cmluZyA9IEZhbHNlDQorICAgIEluRG91Ymxl UXVvdGVTdHJpbmcgPSBGYWxzZQ0KKyAgICBJblNpbmdsZVF1b3RlU3RyaW5nID0gRmFsc2UNCiAg ICAgQ29tbWVudEluU3RyaW5nID0gRmFsc2UNCiAgICAgZm9yIEluZGV4IGluIHJhbmdlKDAsIGxl bihMaW5lKSk6DQotICAgICAgICBpZiBMaW5lW0luZGV4XSA9PSAnIic6DQotICAgICAgICAgICAg SW5TdHJpbmcgPSBub3QgSW5TdHJpbmcNCi0gICAgICAgIGVsaWYgTGluZVtJbmRleF0gPT0gQ29t bWVudENoYXJhY3RlciBhbmQgSW5TdHJpbmcgOg0KKyAgICAgICAgaWYgTGluZVtJbmRleF0gPT0g JyInIGFuZCBub3QgSW5TaW5nbGVRdW90ZVN0cmluZzoNCisgICAgICAgICAgICBJbkRvdWJsZVF1 b3RlU3RyaW5nID0gbm90IEluRG91YmxlUXVvdGVTdHJpbmcNCisgICAgICAgIGVsaWYgTGluZVtJ bmRleF0gPT0gIiciIGFuZCBub3QgSW5Eb3VibGVRdW90ZVN0cmluZzoNCisgICAgICAgICAgICBJ blNpbmdsZVF1b3RlU3RyaW5nID0gbm90IEluU2luZ2xlUXVvdGVTdHJpbmcNCisgICAgICAgIGVs aWYgTGluZVtJbmRleF0gPT0gQ29tbWVudENoYXJhY3RlciBhbmQgKEluU2luZ2xlUXVvdGVTdHJp bmcgb3IgSW5Eb3VibGVRdW90ZVN0cmluZyk6DQogICAgICAgICAgICAgQ29tbWVudEluU3RyaW5n ID0gVHJ1ZQ0KLSAgICAgICAgZWxpZiBMaW5lW0luZGV4XSA9PSBDb21tZW50Q2hhcmFjdGVyIGFu ZCBub3QgSW5TdHJpbmcgOg0KKyAgICAgICAgZWxpZiBMaW5lW0luZGV4XSA9PSBDb21tZW50Q2hh cmFjdGVyIGFuZCBub3QgKEluU2luZ2xlUXVvdGVTdHJpbmcgb3IgSW5Eb3VibGVRdW90ZVN0cmlu Zyk6DQogICAgICAgICAgICAgTGluZSA9IExpbmVbMDogSW5kZXhdDQogICAgICAgICAgICAgYnJl YWsNCiANCiAgICAgaWYgQ29tbWVudEluU3RyaW5nIGFuZCBCdWlsZE9wdGlvbjoNCiAgICAgICAg IExpbmUgPSBMaW5lLnJlcGxhY2UoJyInLCAnJykNCkBAIC00MDAsMTkgKzQwOSwyMiBAQCBkZWYg Q2xlYW5TdHJpbmcyKExpbmUsIENvbW1lbnRDaGFyYWN0ZXI9RGF0YVR5cGUuVEFCX0NPTU1FTlRf U1BMSVQsIEFsbG93Q3BwU3R5bA0KICAgICBpZiBBbGxvd0NwcFN0eWxlQ29tbWVudDoNCiAgICAg ICAgIExpbmUgPSBMaW5lLnJlcGxhY2UoRGF0YVR5cGUuVEFCX0NPTU1FTlRfRURLX1NQTElULCBD b21tZW50Q2hhcmFjdGVyKQ0KICAgICAjDQogICAgICMgc2VwYXJhdGUgY29tbWVudHMgYW5kIHN0 YXRlbWVudHMsIGJ1dCB3ZSBzaG91bGQgZXNjYXBlIGNvbW1lbnQgY2hhcmFjdGVyIGluIHN0cmlu Zw0KICAgICAjDQotICAgIEluU3RyaW5nID0gRmFsc2UNCisgICAgSW5Eb3VibGVRdW90ZVN0cmlu ZyA9IEZhbHNlDQorICAgIEluU2luZ2xlUXVvdGVTdHJpbmcgPSBGYWxzZQ0KICAgICBDb21tZW50 SW5TdHJpbmcgPSBGYWxzZQ0KICAgICBDb21tZW50ID0gJycNCiAgICAgZm9yIEluZGV4IGluIHJh bmdlKDAsIGxlbihMaW5lKSk6DQotICAgICAgICBpZiBMaW5lW0luZGV4XSA9PSAnIic6DQotICAg ICAgICAgICAgSW5TdHJpbmcgPSBub3QgSW5TdHJpbmcNCi0gICAgICAgIGVsaWYgTGluZVtJbmRl eF0gPT0gQ29tbWVudENoYXJhY3RlciBhbmQgSW5TdHJpbmc6DQorICAgICAgICBpZiBMaW5lW0lu ZGV4XSA9PSAnIicgYW5kIG5vdCBJblNpbmdsZVF1b3RlU3RyaW5nOg0KKyAgICAgICAgICAgIElu RG91YmxlUXVvdGVTdHJpbmcgPSBub3QgSW5Eb3VibGVRdW90ZVN0cmluZw0KKyAgICAgICAgZWxp ZiBMaW5lW0luZGV4XSA9PSAiJyIgYW5kIG5vdCBJbkRvdWJsZVF1b3RlU3RyaW5nOg0KKyAgICAg ICAgICAgIEluU2luZ2xlUXVvdGVTdHJpbmcgPSBub3QgSW5TaW5nbGVRdW90ZVN0cmluZw0KKyAg ICAgICAgZWxpZiBMaW5lW0luZGV4XSA9PSBDb21tZW50Q2hhcmFjdGVyIGFuZCAoSW5Eb3VibGVR dW90ZVN0cmluZyBvciBJblNpbmdsZVF1b3RlU3RyaW5nKToNCiAgICAgICAgICAgICBDb21tZW50 SW5TdHJpbmcgPSBUcnVlDQotICAgICAgICBlbGlmIExpbmVbSW5kZXhdID09IENvbW1lbnRDaGFy YWN0ZXIgYW5kIG5vdCBJblN0cmluZzoNCisgICAgICAgIGVsaWYgTGluZVtJbmRleF0gPT0gQ29t bWVudENoYXJhY3RlciBhbmQgbm90IChJbkRvdWJsZVF1b3RlU3RyaW5nIG9yIEluU2luZ2xlUXVv dGVTdHJpbmcpOg0KICAgICAgICAgICAgIENvbW1lbnQgPSBMaW5lW0luZGV4Ol0uc3RyaXAoKQ0K ICAgICAgICAgICAgIExpbmUgPSBMaW5lWzA6SW5kZXhdLnN0cmlwKCkNCiAgICAgICAgICAgICBi cmVhaw0KIA0KICAgICByZXR1cm4gTGluZSwgQ29tbWVudA0KZGlmZiAtLWdpdCBhL0Jhc2VUb29s cy9Tb3VyY2UvUHl0aG9uL1dvcmtzcGFjZS9Ec2NCdWlsZERhdGEucHkgYi9CYXNlVG9vbHMvU291 cmNlL1B5dGhvbi9Xb3Jrc3BhY2UvRHNjQnVpbGREYXRhLnB5DQppbmRleCA3NWI4NzdhNWFhLi5l M2RhNDU4NWIzIDEwMDY0NA0KLS0tIGEvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vV29ya3NwYWNl L0RzY0J1aWxkRGF0YS5weQ0KKysrIGIvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vV29ya3NwYWNl L0RzY0J1aWxkRGF0YS5weQ0KQEAgLTk4OSwxMCArOTg5LDEyIEBAIGNsYXNzIERzY0J1aWxkRGF0 YShQbGF0Zm9ybUJ1aWxkQ2xhc3NPYmplY3QpOg0KICAgICAgICAgICAgICAgICAgICAgICAgIEZv dW5kRmxhZyA9IFRydWUNCiAgICAgICAgICAgICAgICAgaWYgRmllbGROYW1lOg0KICAgICAgICAg ICAgICAgICAgICAgTmV3VmFsdWUgPSBzZWxmLkdldEZpZWxkVmFsdWVGcm9tQ29tbShwY2R2YWx1 ZSwgVG9rZW5TcGFjZUd1aWRDTmFtZSwgVG9rZW5DTmFtZSwgRmllbGROYW1lKQ0KICAgICAgICAg ICAgICAgICAgICAgR2xvYmFsRGF0YS5CdWlsZE9wdGlvblBjZFtpXSA9IChUb2tlblNwYWNlR3Vp ZENOYW1lLCBUb2tlbkNOYW1lLCBGaWVsZE5hbWUsTmV3VmFsdWUsKCJidWlsZCBjb21tYW5kIG9w dGlvbnMiLDEpKQ0KICAgICAgICAgICAgICAgICBlbHNlOg0KKyAgICAgICAgICAgICAgICAgICAg IyBSZXBsYWNlIFwnIHRvICcsIFxcXCcgdG8gXCcNCisgICAgICAgICAgICAgICAgICAgIHBjZHZh bHVlID0gcGNkdmFsdWUucmVwbGFjZSgiXFxcXFxcJyIsICdcXFxcXFwiJykucmVwbGFjZSgnXFxc JycsICdcJycpLnJlcGxhY2UoJ1xcXFxcXCInLCAiXFwnIikNCiAgICAgICAgICAgICAgICAgICAg IGZvciBrZXkgaW4gc2VsZi5EZWNQY2RzOg0KICAgICAgICAgICAgICAgICAgICAgICAgIFBjZEl0 ZW0gPSBzZWxmLkRlY1BjZHNba2V5XQ0KICAgICAgICAgICAgICAgICAgICAgICAgIGlmIEhhc1Rv a2VuU3BhY2U6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChQY2RJdGVtLlRva2Vu Q05hbWUsIFBjZEl0ZW0uVG9rZW5TcGFjZUd1aWRDTmFtZSkgPT0gKFRva2VuQ05hbWUsIFRva2Vu U3BhY2VHdWlkQ05hbWUpOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGNkRGF0 dW1UeXBlID0gUGNkSXRlbS5EYXR1bVR5cGUNCkBAIC0xMDAwLDI3ICsxMDAyLDI3IEBAIGNsYXNz IERzY0J1aWxkRGF0YShQbGF0Zm9ybUJ1aWxkQ2xhc3NPYmplY3QpOg0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRyeToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGNkdmFsdWUgPSBWYWx1ZUV4cHJlc3Npb25FeChwY2R2YWx1ZVsxOl0sIFBj ZERhdHVtVHlwZSwgc2VsZi5fR3VpZERpY3QpKFRydWUpDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZXhjZXB0IEJhZEV4cHJlc3Npb24sIFZhbHVlOg0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZGtMb2dnZXIuZXJyb3IoJ1BhcnNlcicsIEZP Uk1BVF9JTlZBTElELCAnUENEIFslcy4lc10gVmFsdWUgIiVzIiwgICVzJyAlDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVG9rZW5TcGFj ZUd1aWRDTmFtZSwgVG9rZW5DTmFtZSwgcGNkdmFsdWUsIFZhbHVlKSkNCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBQY2REYXR1bVR5cGUgPT0gIlZPSUQqIjoNCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBQY2REYXR1bVR5cGUgbm90IGluIFtU QUJfVUlOVDgsIFRBQl9VSU5UMTYsIFRBQl9VSU5UMzIsIFRBQl9VSU5UNjQsICdCT09MRUFOJ106 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjZHZhbHVlID0gJ0gn ICsgcGNkdmFsdWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgcGNkdmFs dWUuc3RhcnRzd2l0aCgiTCciKToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0cnk6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjZHZhbHVl ID0gVmFsdWVFeHByZXNzaW9uRXgocGNkdmFsdWUsIFBjZERhdHVtVHlwZSwgc2VsZi5fR3VpZERp Y3QpKFRydWUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEJh ZEV4cHJlc3Npb24sIFZhbHVlOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFZGtMb2dnZXIuZXJyb3IoJ1BhcnNlcicsIEZPUk1BVF9JTlZBTElELCAnUENEIFslcy4l c10gVmFsdWUgIiVzIiwgICVzJyAlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoVG9rZW5TcGFjZUd1aWRDTmFtZSwgVG9rZW5DTmFtZSwg cGNkdmFsdWUsIFZhbHVlKSkNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiBwY2R2YWx1ZS5zdGFydHN3aXRoKCd7Jyk6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgUGNkRGF0dW1UeXBlIG5vdCBpbiBbVEFCX1VJTlQ4LCBUQUJfVUlOVDE2LCBU QUJfVUlOVDMyLCBUQUJfVUlOVDY0LCAnQk9PTEVBTiddOg0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwY2R2YWx1ZSA9ICdIJyArIHBjZHZhbHVlDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHBjZHZhbHVlLnN0YXJ0c3dpdGgoIiciKToNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnk6DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBjZHZhbHVlID0gVmFsdWVFeHByZXNzaW9uRXgocGNk dmFsdWUsIFBjZERhdHVtVHlwZSwgc2VsZi5fR3VpZERpY3QpKFRydWUpDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEJhZEV4cHJlc3Npb24sIFZhbHVlOg0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZGtMb2dnZXIuZXJyb3IoJ1Bh cnNlcicsIEZPUk1BVF9JTlZBTElELCAnUENEIFslcy4lc10gVmFsdWUgIiVzIiwgICVzJyAlDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo VG9rZW5TcGFjZUd1aWRDTmFtZSwgVG9rZW5DTmFtZSwgcGNkdmFsdWUsIFZhbHVlKSkNCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBwY2R2YWx1ZS5zdGFydHN3aXRoKCd7 Jyk6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgUGNkRGF0dW1UeXBl IG5vdCBpbiBbVEFCX1VJTlQ4LCBUQUJfVUlOVDE2LCBUQUJfVUlOVDMyLCBUQUJfVUlOVDY0LCAn Qk9PTEVBTiddOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2R2 YWx1ZSA9ICdIJyArIHBjZHZhbHVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl bGlmIHBjZHZhbHVlLnN0YXJ0c3dpdGgoJ0wnKToNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwY2R2YWx1ZSA9ICdMIicgKyBwY2R2YWx1ZVsxOl0gKyAnIicNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnk6DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBjZHZhbHVlID0gVmFsdWVFeHByZXNzaW9uRXgocGNkdmFsdWUs IFBjZERhdHVtVHlwZSwgc2VsZi5fR3VpZERpY3QpKFRydWUpDQpAQCAtMTAyOSwxMiArMTAzMSwx NiBAQCBjbGFzcyBEc2NCdWlsZERhdGEoUGxhdGZvcm1CdWlsZENsYXNzT2JqZWN0KToNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChUb2tl blNwYWNlR3VpZENOYW1lLCBUb2tlbkNOYW1lLCBwY2R2YWx1ZSwgVmFsdWUpKQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0cnk6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBjZHZhbHVlID0gVmFsdWVFeHByZXNzaW9uRXgocGNkdmFsdWUsIFBjZERhdHVtVHlwZSwgc2Vs Zi5fR3VpZERpY3QpKFRydWUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZXhjZXB0IEJhZEV4cHJlc3Npb24sIFZhbHVlOg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFZGtMb2dnZXIuZXJyb3IoJ1BhcnNlcicsIEZPUk1BVF9JTlZBTElELCAn UENEIFslcy4lc10gVmFsdWUgIiVzIiwgICVzJyAlDQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVG9rZW5TcGFjZUd1aWRDTmFtZSwgVG9r ZW5DTmFtZSwgcGNkdmFsdWUsIFZhbHVlKSkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdHJ5Og0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGNkdmFsdWUgPSAnIicgKyBwY2R2YWx1ZSArICciJw0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNkdmFsdWUgPSBWYWx1ZUV4cHJlc3Npb25FeChw Y2R2YWx1ZSwgUGNkRGF0dW1UeXBlLCBzZWxmLl9HdWlkRGljdCkoVHJ1ZSkNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEJhZEV4cHJlc3Npb24sIFZhbHVl Og0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRrTG9nZ2Vy LmVycm9yKCdQYXJzZXInLCBGT1JNQVRfSU5WQUxJRCwgJ1BDRCBbJXMuJXNdIFZhbHVlICIlcyIs ICAlcycgJQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChUb2tlblNwYWNlR3VpZENOYW1lLCBUb2tlbkNOYW1lLCBwY2R2YWx1ZSwg VmFsdWUpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV3VmFsdWUgPSBCdWls ZE9wdGlvblBjZFZhbHVlRm9ybWF0KFRva2VuU3BhY2VHdWlkQ05hbWUsIFRva2VuQ05hbWUsIFBj ZERhdHVtVHlwZSwgcGNkdmFsdWUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG b3VuZEZsYWcgPSBUcnVlDQogICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgUGNkSXRlbS5Ub2tlbkNOYW1lID09IFRva2VuQ05hbWU6 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgUGNkSXRlbS5Ub2tlblNw YWNlR3VpZENOYW1lIGluIFRva2VuU3BhY2VHdWlkQ05hbWVMaXN0Og0KQEAgLTEwNDYsMjkgKzEw NTIsMjkgQEAgY2xhc3MgRHNjQnVpbGREYXRhKFBsYXRmb3JtQnVpbGRDbGFzc09iamVjdCk6DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnk6DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNkdmFsdWUgPSBWYWx1 ZUV4cHJlc3Npb25FeChwY2R2YWx1ZVsxOl0sIFBjZERhdHVtVHlwZSwgc2VsZi5fR3VpZERpY3Qp KFRydWUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNl cHQgQmFkRXhwcmVzc2lvbiwgVmFsdWU6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWRrTG9nZ2VyLmVycm9yKCdQYXJzZXInLCBGT1JNQVRfSU5WQUxJ RCwgJ1BDRCBbJXMuJXNdIFZhbHVlICIlcyIsICVzJyAlDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChUb2tlblNwYWNlR3Vp ZENOYW1lLCBUb2tlbkNOYW1lLCBwY2R2YWx1ZSwgVmFsdWUpKQ0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgUGNkRGF0dW1UeXBlID09ICJWT0lEKiI6DQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBQY2REYXR1bVR5 cGUgbm90IGluIFtUQUJfVUlOVDgsIFRBQl9VSU5UMTYsIFRBQl9VSU5UMzIsIFRBQl9VSU5UNjQs J0JPT0xFQU4nXToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwY2R2YWx1ZSA9ICdIJyArIHBjZHZhbHVlDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGVsaWYgcGNkdmFsdWUuc3RhcnRzd2l0aCgiTCciKToNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeToNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2R2YWx1ZSA9IFZhbHVlRXhwcmVz c2lvbkV4KHBjZHZhbHVlLCBQY2REYXR1bVR5cGUsIHNlbGYuX0d1aWREaWN0KSgNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJ1ZSkNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBCYWRFeHByZXNz aW9uLCBWYWx1ZToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBFZGtMb2dnZXIuZXJyb3IoJ1BhcnNlcicsIEZPUk1BVF9JTlZBTElELCAnUENEIFslcy4l c10gVmFsdWUgIiVzIiwgICVzJyAlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChUb2tlblNwYWNlR3VpZENOYW1lLCBUb2tl bkNOYW1lLCBwY2R2YWx1ZSwgVmFsdWUpKQ0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgcGNkdmFsdWUuc3RhcnRzd2l0aCgneycpOg0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgUGNkRGF0dW1UeXBlIG5vdCBpbiBb VEFCX1VJTlQ4LCBUQUJfVUlOVDE2LCBUQUJfVUlOVDMyLCBUQUJfVUlOVDY0LCAnQk9PTEVBTidd Og0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBjZHZh bHVlID0gJ0gnICsgcGNkdmFsdWUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZWxpZiBwY2R2YWx1ZS5zdGFydHN3aXRoKCInIik6DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0cnk6DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGNkdmFsdWUgPSBWYWx1ZUV4cHJlc3Npb25FeChwY2R2 YWx1ZSwgUGNkRGF0dW1UeXBlLCBzZWxmLl9HdWlkRGljdCkoDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRydWUpDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQgQmFkRXhwcmVzc2lvbiwgVmFsdWU6 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRrTG9n Z2VyLmVycm9yKCdQYXJzZXInLCBGT1JNQVRfSU5WQUxJRCwgJ1BDRCBbJXMuJXNdIFZhbHVlICIl cyIsICAlcycgJQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoVG9rZW5TcGFjZUd1aWRDTmFtZSwgVG9rZW5DTmFtZSwgcGNk dmFsdWUsIFZhbHVlKSkNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmIHBjZHZhbHVlLnN0YXJ0c3dpdGgoJ3snKToNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIFBjZERhdHVtVHlwZSBub3QgaW4gW1RBQl9VSU5UOCwg VEFCX1VJTlQxNiwgVEFCX1VJTlQzMiwgVEFCX1VJTlQ2NCwgJ0JPT0xFQU4nXToNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2R2YWx1ZSA9ICdIJyAr IHBjZHZhbHVlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYg cGNkdmFsdWUuc3RhcnRzd2l0aCgnTCcpOg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGNkdmFsdWUgPSAnTCInICsgcGNkdmFsdWVbMTpdICsgJyInDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnk6DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNkdmFsdWUgPSBWYWx1ZUV4 cHJlc3Npb25FeChwY2R2YWx1ZSwgUGNkRGF0dW1UeXBlLCBzZWxmLl9HdWlkRGljdCkoDQpAQCAt MTA3OCwxMyArMTA4NCwxNiBAQCBjbGFzcyBEc2NCdWlsZERhdGEoUGxhdGZvcm1CdWlsZENsYXNz T2JqZWN0KToNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKFRva2VuU3BhY2VHdWlkQ05hbWUsIFRva2VuQ05hbWUsIHBjZHZh bHVlLCBWYWx1ZSkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVs c2U6DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnk6DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNkdmFsdWUg PSBWYWx1ZUV4cHJlc3Npb25FeChwY2R2YWx1ZSwgUGNkRGF0dW1UeXBlLCBzZWxmLl9HdWlkRGlj dCkoVHJ1ZSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4 Y2VwdCBCYWRFeHByZXNzaW9uLCBWYWx1ZToNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFZGtMb2dnZXIuZXJyb3IoJ1BhcnNlcicsIEZPUk1BVF9JTlZB TElELA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnUENEIFslcy4lc10gVmFsdWUgIiVzIiwgICVzJyAlDQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChU b2tlblNwYWNlR3VpZENOYW1lLCBUb2tlbkNOYW1lLCBwY2R2YWx1ZSwgVmFsdWUpKQ0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeToNCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNkdmFsdWUgPSAn IicgKyBwY2R2YWx1ZSArICciJw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwY2R2YWx1ZSA9IFZhbHVlRXhwcmVzc2lvbkV4KHBjZHZhbHVlLCBQ Y2REYXR1bVR5cGUsIHNlbGYuX0d1aWREaWN0KShUcnVlKQ0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBCYWRFeHByZXNzaW9uLCBWYWx1ZToN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWRr TG9nZ2VyLmVycm9yKCdQYXJzZXInLCBGT1JNQVRfSU5WQUxJRCwgJ1BDRCBbJXMuJXNdIFZhbHVl ICIlcyIsICAlcycgJQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKFRva2VuU3BhY2VHdWlkQ05hbWUsIFRva2VuQ05h bWUsIHBjZHZhbHVlLCBWYWx1ZSkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE5ld1ZhbHVlID0gQnVpbGRPcHRpb25QY2RWYWx1ZUZvcm1hdChUb2tlblNwYWNlR3Vp ZENOYW1lLCBUb2tlbkNOYW1lLCBQY2REYXR1bVR5cGUsIHBjZHZhbHVlKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3VuZEZsYWcgPSBUcnVlDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWRrTG9nZ2VyLmVycm9yKA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdidWlsZCcsDQotLSANCjIuMTIuMi53aW5kb3dz LjINCg0K