Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hlZ5w-0000OT-FV for pgadmin-hackers@arkaria.postgresql.org; Thu, 11 Jul 2019 13:26:45 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hlZ5u-0000cr-Cr for pgadmin-hackers@arkaria.postgresql.org; Thu, 11 Jul 2019 13:26:42 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hlZ5t-0000Sc-VA for pgadmin-hackers@lists.postgresql.org; Thu, 11 Jul 2019 13:26:42 +0000 Received: from mail-yb1-xb2e.google.com ([2607:f8b0:4864:20::b2e]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hlZ5p-00013y-Kk for pgadmin-hackers@postgresql.org; Thu, 11 Jul 2019 13:26:40 +0000 Received: by mail-yb1-xb2e.google.com with SMTP id 13so2487227ybx.8 for ; Thu, 11 Jul 2019 06:26:37 -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=Q4ZX8/8JGdQwkwyk0Ds78L0Lf1m9te/VnfTUkXi0a+k=; b=ooGs89xkL6aC4L4b0A652VbHLyoAaBITL2YI/ohowdVSA6tz4Hg1JyqBgtOXRjpqWm SfYd+7oH7k3s41jl0YrLsir6PYPk1L5yPaRih8aqrp5dOaBUKhaCtGXBiUnLlB+5ghQx F/BeYTZEJLNJYBFmbWbDiaQ7Lct3j1PdG3cd+tTpY9OKKzrPDxnnhe0jDywlYzCTgBgO gFlBEYCeo9LceRfUCFmus0ptdgLc8QkUZpqgGVVTzBTNDKQ7qbI2/81XKWM6QHOw4/QK BW3cqI5bTxITrvu/d36yiY9OXGobydRjdUDsZZyTdib4hlbt/pypuWm8IMO1ooT3Yejn TNiw== 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=Q4ZX8/8JGdQwkwyk0Ds78L0Lf1m9te/VnfTUkXi0a+k=; b=Xr/10qvMicur6Y+7OZuCrQBA7uZO6WpyuBqr5rWr3GYzzUwFlkDAdeAHw1504PMzVu SQF2K6pHxGaI3gTap/QXqNbdj7SB3hRHXDg6ZWri9SYaoGMW+ziw6bVAKxaj7TVL27p2 hcwJZnqGcQ7EQPhR+VhmEEaMrinWZ2yzOUuXBRiI7aiJt0q3bnRxkru0A70bncZodYjD NAaGGyda2mt4sjv6vJOAfx+nStIfIQlefVGziaokK3G4wcD1b2pF7qu9kh1WQgeoeeTq cCnVP0vsVkzCc+tS2+mtvQ43nIWDRhQwcZPJPKqLCdaY0lBH6A4TIva90hgsRkMmveFM A2WQ== X-Gm-Message-State: APjAAAUpLeflZNTSb4xFIVj0PRBMLcDF94HhpzU3NDfxcxSZjVbfnskL kuRzwtOtcoZTJ88efJk4CsuUVdlktLTRi0Qqubf3bXLAxq8= X-Google-Smtp-Source: APXvYqz7KEQfW5xBxkFaOxLP6odNsk0dVlRk2fIm/52zNK13pYuSfYN4mZSvG4pmZ+gZ6O1BXlsD6bcM//8IwHDMmrc= X-Received: by 2002:a0c:81e2:: with SMTP id 31mr2120345qve.56.1562851595279; Thu, 11 Jul 2019 06:26:35 -0700 (PDT) MIME-Version: 1.0 From: Akshay Joshi Date: Thu, 11 Jul 2019 18:56:24 +0530 Message-ID: Subject: [pgAdmin4][Patch]: RM 4389 "string indices must be integers" error displayed if select Privileges for Columns To: pgadmin-hackers Content-Type: multipart/mixed; boundary="0000000000002c9ece058d67be59" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --0000000000002c9ece058d67be59 Content-Type: multipart/alternative; boundary="0000000000002c9ecb058d67be57" --0000000000002c9ecb058d67be57 Content-Type: text/plain; charset="UTF-8" Hi Hackers, Attached is the patch to fix RM 4389 "string indices must be integers" error displayed if select Privileges for Columns. Added API test case for the scenario. Please review it. -- *Thanks & Regards* *Akshay Joshi* *Sr. Software Architect* *EnterpriseDB Software India Private Limited* *Mobile: +91 976-788-8246* --0000000000002c9ecb058d67be57 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Hackers,

Attached is the patch to fi= x=C2=A0RM 4389 "string indices must be integers" error displayed = if select Privileges for Columns. Added API test case for the scenario.

Please review it.

-- =
Thanks & Regards
Akshay Joshi
=
Sr. Software Arc= hitect
EnterpriseDB Sof= tware India Private Limited
Mobile: +91 976-788-8246
--0000000000002c9ecb058d67be57-- --0000000000002c9ece058d67be59 Content-Type: application/octet-stream; name="RM_4389.patch" Content-Disposition: attachment; filename="RM_4389.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jxypfkew0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9fX2luaXRfXy5w eQppbmRleCBkMjM1NGYzNy4uZjY5NDM5NmIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9fX2luaXRf Xy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvX19pbml0X18ucHkKQEAgLTkwNSwxMCArOTA1LDE4IEBAIGNs YXNzIFRhYmxlVmlldyhCYXNlVGFibGVWaWV3LCBEYXRhVHlwZVJlYWRlciwgVmFjdXVtU2V0dGlu Z3MpOgogCiAgICAgICAgICAgICAgICAgICAgIGZvciBjIGluIGZpbmFsX2NvbHVtbnM6CiAgICAg ICAgICAgICAgICAgICAgICAgICBpZiAnYXR0YWNsJyBpbiBjOgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNbJ2F0dGFjbCddID0gcGFyc2VfcHJpdl90b19kYigKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY1snYXR0YWNsJ10sIHNlbGYuY29sdW1uX2FjbAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICkKLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICdh ZGRlZCcgaW4gY1snYXR0YWNsJ106CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNb J2F0dGFjbCddWydhZGRlZCddID0gcGFyc2VfcHJpdl90b19kYigKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNbJ2F0dGFjbCddWydhZGRlZCddLCBzZWxmLmNvbHVtbl9hY2wK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGVsaWYgJ2NoYW5nZWQnIGluIGNbJ2F0dGFjbCddOgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjWydhdHRhY2wnXVsnY2hhbmdlZCddID0gcGFyc2VfcHJpdl90b19kYigK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNbJ2F0dGFjbCddWydjaGFuZ2Vk J10sIHNlbGYuY29sdW1uX2FjbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxpZiAnZGVsZXRlZCcgaW4gY1snYXR0YWNsJ106 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNbJ2F0dGFjbCddWydkZWxldGVkJ10g PSBwYXJzZV9wcml2X3RvX2RiKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y1snYXR0YWNsJ11bJ2RlbGV0ZWQnXSwgc2VsZi5jb2x1bW5fYWNsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICdjbHR5cGUnIGlu IGM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBjaGVjayB0eXBlIGZvciAnW10nIGlu IGl0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY1snY2x0eXBlJ10sIGNbJ2hhc1NxckJy YWNrZXQnXSA9IFwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1ucy9zcWwv MTBfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9jb2x1bW5zL3NxbC8xMF9w bHVzL3VwZGF0ZS5zcWwKaW5kZXggZWVhMzI4ZGIuLjdjZDQwZmM5IDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvdGVtcGxhdGVzL2NvbHVtbnMvc3FsLzEwX3BsdXMvdXBkYXRlLnNxbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvdGVtcGxhdGVzL2NvbHVtbnMvc3FsLzEwX3BsdXMvdXBkYXRlLnNxbApAQCAtMTMxLDI5 ICsxMzEsMjkgQEAgQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEu dGFibGUpfX0KIHslIGlmICdkZWxldGVkJyBpbiBkYXRhLmF0dGFjbCAlfQogeyUgZm9yIHByaXYg aW4gZGF0YS5hdHRhY2wuZGVsZXRlZCAlfQogeyUgaWYgZGF0YS5uYW1lICV9Ci0gICAge3sgUFJJ VklMRUdFLlJFU0VUQUxMKGNvbm4sIGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUs IHByaXYuZ3JhbnRlZSkgfX0KK3t7IFBSSVZJTEVHRS5SRVNFVEFMTChjb25uLCBkYXRhLnNjaGVt YSwgZGF0YS50YWJsZSwgZGF0YS5uYW1lLCBwcml2LmdyYW50ZWUpIH19CiB7JSBlbHNlICV9Ci0g ICAge3sgUFJJVklMRUdFLlJFU0VUQUxMKGNvbm4sIGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBv X2RhdGEubmFtZSwgcHJpdi5ncmFudGVlKSB9fQore3sgUFJJVklMRUdFLlJFU0VUQUxMKGNvbm4s IGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBvX2RhdGEubmFtZSwgcHJpdi5ncmFudGVlKSB9fQog eyUgZW5kaWYgJX0KIHslIGVuZGZvciAlfQogeyUgZW5kaWYgJX0KIHslIGlmICdjaGFuZ2VkJyBp biBkYXRhLmF0dGFjbCAlfQogeyUgZm9yIHByaXYgaW4gZGF0YS5hdHRhY2wuY2hhbmdlZCAlfQog eyUgaWYgZGF0YS5uYW1lICV9Ci0gICAge3sgUFJJVklMRUdFLlJFU0VUQUxMKGNvbm4sIGRhdGEu c2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUsIHByaXYuZ3JhbnRlZSkgfX0KLSAgICB7eyBQ UklWSUxFR0UuQVBQTFkoY29ubiwgZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIGRhdGEubmFtZSwg cHJpdi5ncmFudGVlLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3t7 IFBSSVZJTEVHRS5SRVNFVEFMTChjb25uLCBkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgZGF0YS5u YW1lLCBwcml2LmdyYW50ZWUpIH19Cit7eyBQUklWSUxFR0UuQVBQTFkoY29ubiwgZGF0YS5zY2hl bWEsIGRhdGEudGFibGUsIGRhdGEubmFtZSwgcHJpdi5ncmFudGVlLCBwcml2LndpdGhvdXRfZ3Jh bnQsIHByaXYud2l0aF9ncmFudCkgfX0KIHslIGVsc2UgJX0KLSAgICB7eyBQUklWSUxFR0UuUkVT RVRBTEwoY29ubiwgZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIG9fZGF0YS5uYW1lLCBwcml2Lmdy YW50ZWUpIH19Ci0gICAge3sgUFJJVklMRUdFLkFQUExZKGNvbm4sIGRhdGEuc2NoZW1hLCBkYXRh LnRhYmxlLCBvX2RhdGEubmFtZSwgcHJpdi5ncmFudGVlLCBwcml2LndpdGhvdXRfZ3JhbnQsIHBy aXYud2l0aF9ncmFudCkgfX0KK3t7IFBSSVZJTEVHRS5SRVNFVEFMTChjb25uLCBkYXRhLnNjaGVt YSwgZGF0YS50YWJsZSwgb19kYXRhLm5hbWUsIHByaXYuZ3JhbnRlZSkgfX0KK3t7IFBSSVZJTEVH RS5BUFBMWShjb25uLCBkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgb19kYXRhLm5hbWUsIHByaXYu Z3JhbnRlZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQpIH19CiB7JSBlbmRp ZiAlfQogeyUgZW5kZm9yICV9CiB7JSBlbmRpZiAlfQogeyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmF0 dGFjbCAlfQogeyUgZm9yIHByaXYgaW4gZGF0YS5hdHRhY2wuYWRkZWQgJX0KIHslIGlmIGRhdGEu bmFtZSAlfQotICAgIHt7IFBSSVZJTEVHRS5BUFBMWShjb25uLCBkYXRhLnNjaGVtYSwgZGF0YS50 YWJsZSwgZGF0YS5uYW1lLCBwcml2LmdyYW50ZWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53 aXRoX2dyYW50KSB9fQore3sgUFJJVklMRUdFLkFQUExZKGNvbm4sIGRhdGEuc2NoZW1hLCBkYXRh LnRhYmxlLCBkYXRhLm5hbWUsIHByaXYuZ3JhbnRlZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2 LndpdGhfZ3JhbnQpIH19CiB7JSBlbHNlICV9Ci0gICAge3sgUFJJVklMRUdFLkFQUExZKGNvbm4s IGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBvX2RhdGEubmFtZSwgcHJpdi5ncmFudGVlLCBwcml2 LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3t7IFBSSVZJTEVHRS5BUFBMWShj b25uLCBkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgb19kYXRhLm5hbWUsIHByaXYuZ3JhbnRlZSwg cHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQpIH19CiB7JSBlbmRpZiAlfQogeyUg ZW5kZm9yICV9CiB7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9j b2x1bW5zL3NxbC85LjJfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9jb2x1 bW5zL3NxbC85LjJfcGx1cy91cGRhdGUuc3FsCmluZGV4IDgwNmZiMzdlLi5kOTJkMDExMiAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9jb2x1bW5zL3NxbC85LjJfcGx1cy91cGRhdGUu c3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvY29sdW1ucy9zcWwvOS4yX3BsdXMvdXBkYXRl LnNxbApAQCAtODksMjkgKzg5LDI5IEBAIEFMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEu c2NoZW1hLCBkYXRhLnRhYmxlKX19CiB7JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS5hdHRhY2wgJX0K IHslIGZvciBwcml2IGluIGRhdGEuYXR0YWNsLmRlbGV0ZWQgJX0KIHslIGlmIGRhdGEubmFtZSAl fQotICAgIHt7IFBSSVZJTEVHRS5SRVNFVEFMTChjb25uLCBkYXRhLnNjaGVtYSwgZGF0YS50YWJs ZSwgZGF0YS5uYW1lLCBwcml2LmdyYW50ZWUpIH19Cit7eyBQUklWSUxFR0UuUkVTRVRBTEwoY29u biwgZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIGRhdGEubmFtZSwgcHJpdi5ncmFudGVlKSB9fQog eyUgZWxzZSAlfQotICAgIHt7IFBSSVZJTEVHRS5SRVNFVEFMTChjb25uLCBkYXRhLnNjaGVtYSwg ZGF0YS50YWJsZSwgb19kYXRhLm5hbWUsIHByaXYuZ3JhbnRlZSkgfX0KK3t7IFBSSVZJTEVHRS5S RVNFVEFMTChjb25uLCBkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgb19kYXRhLm5hbWUsIHByaXYu Z3JhbnRlZSkgfX0KIHslIGVuZGlmICV9CiB7JSBlbmRmb3IgJX0KIHslIGVuZGlmICV9CiB7JSBp ZiAnY2hhbmdlZCcgaW4gZGF0YS5hdHRhY2wgJX0KIHslIGZvciBwcml2IGluIGRhdGEuYXR0YWNs LmNoYW5nZWQgJX0KIHslIGlmIGRhdGEubmFtZSAlfQotICAgIHt7IFBSSVZJTEVHRS5SRVNFVEFM TChjb25uLCBkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgZGF0YS5uYW1lLCBwcml2LmdyYW50ZWUp IH19Ci0gICAge3sgUFJJVklMRUdFLkFQUExZKGNvbm4sIGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxl LCBkYXRhLm5hbWUsIHByaXYuZ3JhbnRlZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhf Z3JhbnQpIH19Cit7eyBQUklWSUxFR0UuUkVTRVRBTEwoY29ubiwgZGF0YS5zY2hlbWEsIGRhdGEu dGFibGUsIGRhdGEubmFtZSwgcHJpdi5ncmFudGVlKSB9fQore3sgUFJJVklMRUdFLkFQUExZKGNv bm4sIGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBkYXRhLm5hbWUsIHByaXYuZ3JhbnRlZSwgcHJp di53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQpIH19CiB7JSBlbHNlICV9Ci0gICAge3sg UFJJVklMRUdFLlJFU0VUQUxMKGNvbm4sIGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlLCBvX2RhdGEu bmFtZSwgcHJpdi5ncmFudGVlKSB9fQotICAgIHt7IFBSSVZJTEVHRS5BUFBMWShjb25uLCBkYXRh LnNjaGVtYSwgZGF0YS50YWJsZSwgb19kYXRhLm5hbWUsIHByaXYuZ3JhbnRlZSwgcHJpdi53aXRo b3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQpIH19Cit7eyBQUklWSUxFR0UuUkVTRVRBTEwoY29u biwgZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIG9fZGF0YS5uYW1lLCBwcml2LmdyYW50ZWUpIH19 Cit7eyBQUklWSUxFR0UuQVBQTFkoY29ubiwgZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIG9fZGF0 YS5uYW1lLCBwcml2LmdyYW50ZWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50 KSB9fQogeyUgZW5kaWYgJX0KIHslIGVuZGZvciAlfQogeyUgZW5kaWYgJX0KIHslIGlmICdhZGRl ZCcgaW4gZGF0YS5hdHRhY2wgJX0KIHslIGZvciBwcml2IGluIGRhdGEuYXR0YWNsLmFkZGVkICV9 CiB7JSBpZiBkYXRhLm5hbWUgJX0KLSAgICB7eyBQUklWSUxFR0UuQVBQTFkoY29ubiwgZGF0YS5z Y2hlbWEsIGRhdGEudGFibGUsIGRhdGEubmFtZSwgcHJpdi5ncmFudGVlLCBwcml2LndpdGhvdXRf Z3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3t7IFBSSVZJTEVHRS5BUFBMWShjb25uLCBkYXRh LnNjaGVtYSwgZGF0YS50YWJsZSwgZGF0YS5uYW1lLCBwcml2LmdyYW50ZWUsIHByaXYud2l0aG91 dF9ncmFudCwgcHJpdi53aXRoX2dyYW50KSB9fQogeyUgZWxzZSAlfQotICAgIHt7IFBSSVZJTEVH RS5BUFBMWShjb25uLCBkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSwgb19kYXRhLm5hbWUsIHByaXYu Z3JhbnRlZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQpIH19Cit7eyBQUklW SUxFR0UuQVBQTFkoY29ubiwgZGF0YS5zY2hlbWEsIGRhdGEudGFibGUsIG9fZGF0YS5uYW1lLCBw cml2LmdyYW50ZWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50KSB9fQogeyUg ZW5kaWYgJX0KIHslIGVuZGZvciAlfQogeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMF9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVt cGxhdGVzL3RhYmxlcy9zcWwvMTBfcGx1cy9jcmVhdGUuc3FsCmluZGV4IGFiNzlkMmU2Li4xZjRj ODM4NyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZXMvc3FsLzEwX3BsdXMv Y3JlYXRlLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlcy9zcWwvMTBfcGx1cy9j cmVhdGUuc3FsCkBAIC0xNDUsNyArMTQ1LDcgQEAgQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQo ZGF0YS5zY2hlbWEsIGRhdGEubmFtZSl9fQogeyUgaWYgYy5hdHRhY2wgYW5kIGMuYXR0YWNsfGxl bmd0aCA+IDAgJX0KIAogeyUgZm9yIHByaXYgaW4gYy5hdHRhY2wgJX0KLSAgICB7eyBDT0xVTU5f UFJJVklMRUdFLkFQUExZKGNvbm4sIGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUsIGMubmFtZSwgcHJp di5ncmFudGVlLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCkgfX0KK3t7IENP TFVNTl9QUklWSUxFR0UuQVBQTFkoY29ubiwgZGF0YS5zY2hlbWEsIGRhdGEubmFtZSwgYy5uYW1l LCBwcml2LmdyYW50ZWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50KSB9fQog eyUgZW5kZm9yICV9CiB7JSBlbmRpZiAlfQogeyMjIyAgU2VjdXJpdHkgTGFibGVzICMjI30KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMl9wbHVzL2NyZWF0ZS5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlcy9zcWwvMTJfcGx1cy9jcmVhdGUuc3FsCmlu ZGV4IGY0ZGFhMmNjLi43YWNiZDAwOCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90 YWJsZXMvc3FsLzEyX3BsdXMvY3JlYXRlLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3Rh Ymxlcy9zcWwvMTJfcGx1cy9jcmVhdGUuc3FsCkBAIC0xNTcsNyArMTU3LDcgQEAgQUxURVIgVEFC TEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSl9fQogeyUgaWYgYy5hdHRh Y2wgYW5kIGMuYXR0YWNsfGxlbmd0aCA+IDAgJX0KIAogeyUgZm9yIHByaXYgaW4gYy5hdHRhY2wg JX0KLSAgICB7eyBDT0xVTU5fUFJJVklMRUdFLkFQUExZKGNvbm4sIGRhdGEuc2NoZW1hLCBkYXRh Lm5hbWUsIGMubmFtZSwgcHJpdi5ncmFudGVlLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0 aF9ncmFudCkgfX0KK3t7IENPTFVNTl9QUklWSUxFR0UuQVBQTFkoY29ubiwgZGF0YS5zY2hlbWEs IGRhdGEubmFtZSwgYy5uYW1lLCBwcml2LmdyYW50ZWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJp di53aXRoX2dyYW50KSB9fQogeyUgZW5kZm9yICV9CiB7JSBlbmRpZiAlfQogeyMjIyAgU2VjdXJp dHkgTGFibGVzICMjI30KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X2NvbHVtbl9w cml2aWxlZ2VzX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X2NvbHVtbl9wcml2aWxlZ2Vz X3B1dC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uMWM1ODc3ODYKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF9jb2x1bW5fcHJpdmlsZWdlc19w dXQucHkKQEAgLTAsMCArMSw5NiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0 IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE5LCBUaGUg cGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0 IGpzb24KK2ltcG9ydCB1dWlkCisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAorICAgIHV0aWxzIGFzIHNj aGVtYV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jl c3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVz dF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBh cyB0YWJsZXNfdXRpbHMKKworCitjbGFzcyBUYWJsZVVwZGF0ZUNvbHVtblRlc3RDYXNlKEJhc2VU ZXN0R2VuZXJhdG9yKToKKyAgICAiIiJUaGlzIGNsYXNzIHdpbGwgdXBkYXRlIHRoZSBjb2x1bW4g bm9kZSBmcm9tIHRhYmxlIiIiCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5n IGRlZmF1bHQgVVJMIGZvciB0YWJsZSBub2RlLgorICAgICAgICAoJ0FkZCBwcml2aWxlZ2VzIGZv ciBleGlzdGluZyBjb2x1bW4nLAorICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL3RhYmxlL29i ai8nKQorICAgICAgICAgKQorICAgIF0KKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAg c2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUi XQorICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQor ICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQorICAgICAg ICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICAgICAgZGJfY29uID0gZGF0 YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVj dGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRv IGRhdGFiYXNlIHRvIGFkZCBhIHRhYmxlLiIpCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2No ZW1hX2luZm9bInNjaGVtYV9pZCJdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFf aW5mb1sic2NoZW1hX25hbWUiXQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRp bHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1l KQorICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIHRhYmxlLiIpCisgICAg ICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0ZXN0X3RhYmxlX2NvbHVtbl9wdXRfJXMiICUgKHN0cih1 dWlkLnV1aWQ0KCkpWzE6OF0pCisKKyAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGls cy5jcmVhdGVfdGFibGUoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAor ICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgIHNlbGYudGFibGVfbmFt ZSkKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdp bGwgZmV0Y2ggYWRkZWQgdGFibGUgdW5kZXIgc2NoZW1hIG5vZGUuIiIiCisgICAgICAgIHRhYmxl X3Jlc3BvbnNlID0gdGFibGVzX3V0aWxzLnZlcmlmeV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5k Yl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi50YWJsZV9pZCkKKyAgICAgICAgaWYgbm90IHRhYmxlX3Jlc3BvbnNlOgorICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgdGFibGUgdG8gdXBkYXRl LiIpCisKKyAgICAgICAgZGF0YSA9IHsKKyAgICAgICAgICAgICJjb2x1bW5zIjogeworICAgICAg ICAgICAgICAgICJjaGFuZ2VkIjogW3sKKyAgICAgICAgICAgICAgICAgICAgImF0dG51bSI6IDEs CisgICAgICAgICAgICAgICAgICAgICJhdHRhY2wiOiB7CisgICAgICAgICAgICAgICAgICAgICAg ICAiYWRkZWQiOiBbeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJncmFudGVlIjogc2Vs Zi5zZXJ2ZXJbInVzZXJuYW1lIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImdyYW50 b3IiOiBzZWxmLnNlcnZlclsidXNlcm5hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAicHJpdmlsZWdlcyI6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJwcml2 aWxlZ2VfdHlwZSI6ICJhIiwgInByaXZpbGVnZSI6IFRydWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAid2l0aF9ncmFudCI6IFRydWV9LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7InByaXZpbGVnZV90eXBlIjogInIiLCAicHJpdmlsZWdlIjogVHJ1ZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aXRoX2dyYW50IjogVHJ1ZX0sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsicHJpdmlsZWdlX3R5cGUiOiAidyIsICJwcml2 aWxlZ2UiOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpdGhfZ3Jh bnQiOiBUcnVlfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJwcml2aWxlZ2Vf dHlwZSI6ICJ4IiwgInByaXZpbGVnZSI6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAid2l0aF9ncmFudCI6IFRydWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAg ICAgICB9XQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfV0KKyAgICAg ICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0 KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyAr CisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQp ICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKyBzdHIoc2Vs Zi50YWJsZV9pZCksCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksIGZvbGxvd19y ZWRpcmVjdHM9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVz X2NvZGUsIDIwMCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIyBEaXNjb25u ZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFi YXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3V0aWxzLnB5CmluZGV4IGJkM2JhMjFlLi4wNzhiYTI4 MSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3V0aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy91dGlscy5w eQpAQCAtMTc1MCw5ICsxNzUwLDYgQEAgY2xhc3MgQmFzZVRhYmxlVmlldyhQR0NoaWxkTm9kZVZp ZXcsIEJhc2VQYXJ0aXRpb25UYWJsZSk6CiAgICAgICAgICAgICAgICAgICAgIGZvciBjIGluIGNv bHVtbnNbJ2NoYW5nZWQnXToKICAgICAgICAgICAgICAgICAgICAgICAgIGNbJ3NjaGVtYSddID0g ZGF0YVsnc2NoZW1hJ10KICAgICAgICAgICAgICAgICAgICAgICAgIGNbJ3RhYmxlJ10gPSBkYXRh WyduYW1lJ10KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICdhdHRhY2wnIGluIGM6Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgY1snYXR0YWNsJ10gPSBwYXJzZV9wcml2X3RvX2RiKGNb J2F0dGFjbCddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmNvbHVtbl9hY2wpCiAKICAgICAgICAgICAgICAgICAgICAgICAg IHByb3BlcnRpZXNfc3FsID0gcmVuZGVyX3RlbXBsYXRlKAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICIvIi5qb2luKFtzZWxmLmNvbHVtbl90ZW1wbGF0ZV9wYXRoLApAQCAtMTg1NiwxMCAr MTg1Myw2IEBAIGNsYXNzIEJhc2VUYWJsZVZpZXcoUEdDaGlsZE5vZGVWaWV3LCBCYXNlUGFydGl0 aW9uVGFibGUpOgogICAgICAgICAgICAgICAgICAgICBmb3IgYyBpbiBjb2x1bW5zWydhZGRlZCdd OgogICAgICAgICAgICAgICAgICAgICAgICAgY1snc2NoZW1hJ10gPSBkYXRhWydzY2hlbWEnXQog ICAgICAgICAgICAgICAgICAgICAgICAgY1sndGFibGUnXSA9IGRhdGFbJ25hbWUnXQotICAgICAg ICAgICAgICAgICAgICAgICAgIyBTcWwgZm9yIGNyZWF0ZSBjb2x1bW4KLSAgICAgICAgICAgICAg ICAgICAgICAgIGlmICdhdHRhY2wnIGluIGM6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Y1snYXR0YWNsJ10gPSBwYXJzZV9wcml2X3RvX2RiKGNbJ2F0dGFjbCddLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNvbHVt bl9hY2wpCiAKICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBCYXNlVGFibGVWaWV3LmNvbnZl cnRfbGVuZ3RoX3ByZWNpc2lvbl90b19zdHJpbmcoYykKIAo= --0000000000002c9ece058d67be59--