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 1l1lR3-0007hm-RO for pgadmin-hackers@arkaria.postgresql.org; Tue, 19 Jan 2021 07:28:18 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1l1lR0-0005zl-Ei for pgadmin-hackers@arkaria.postgresql.org; Tue, 19 Jan 2021 07:28:14 +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 1l1lR0-0005ze-72 for pgadmin-hackers@lists.postgresql.org; Tue, 19 Jan 2021 07:28:14 +0000 Received: from mail-yb1-xb2a.google.com ([2607:f8b0:4864:20::b2a]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1l1lQw-0002ub-Fs for pgadmin-hackers@postgresql.org; Tue, 19 Jan 2021 07:28:13 +0000 Received: by mail-yb1-xb2a.google.com with SMTP id p185so3899537ybg.8 for ; Mon, 18 Jan 2021 23:28:09 -0800 (PST) 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=8Xq5PkVoRP8wL3nFVppF/S3VGggKsfbwCXpWfSKT8nU=; b=B/2FEcee8hSFPPQXGQ/GhQVXT6G3wzHTPcxBLfziCZ8DYNEnFCUf3Zig88uaG5DXyC fJEbJy4VTzYrMWFKm0ZXmq7lFE33wGjB71bgSJA2vWFKBpmKcLEoHiAeuQ7ynhOJxuYf 6AdgRAguCs5FGAthRP+gHNFFqqmskxoAfoKLCjutq3gbj/vybvaRXwPF/UXK1BDgeq3y setALqr5fd8PXu8CANq8ixq+qcenPVB0SPOeePHhWgdDbEteqgAtN1TKxorSAsdCFYVS UCDnfo4WnBw3m37Avvqz4IU6NhfKRo+iq7MGIp1iEMi+c8XrXXvsRaQ3TNQMRxJpH8/I +7qw== 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=8Xq5PkVoRP8wL3nFVppF/S3VGggKsfbwCXpWfSKT8nU=; b=EBDdJVieou4DlXOq3EqxmrJTpq7Ygv1H0uj5zo81poa8uc4MSSoVkVzNuLGACxgleC xqnTGLEcCAjyG/bqYF6tVKO3By7uygkDORsBBHwMoiqaj9Vrg4pG5gJRp+v3we9YtUeJ yc1IHFOqK5c+dNyl6flDCPr+1+swkv1iNzwvrfaniqpbH1Siqyi9EvRfElm4pSlh/bVB YPOyAhBSo/ST72FZlsTNICsgjhArVCmP79NNa80t503l/RtEqEkH8BvOl36MA5zO/dcL YpRO9JVH2XSItXv6mr/MnXCJfOrYCsuhsdSOzhx5lT5fzIsQ5L4fh8JDLrA9/xwoch2B aZvQ== X-Gm-Message-State: AOAM5310Bb8A6ya7tAmVrM5h1XHtSMn6Z4w5REIq455Z1w/vvDoEmt0w fdWSlcSRa4JFVDG9tRk9KG5q570eBgpIfzOkhisdgfwXSmZyAEp73qcD4smHdfYw0XPgzc7AzVY sp99JzH5nXukDwSgPLH7+b+62QXxOBrctVDbV76lz55uzPUWXV1xO05VGAdGczKY6gP+oWKL01o BqDJNv5q5PSVLqHM5bKer+tmRNEhX5AiJW36sIeWLV7gMTLn4GBIqS0masYHkm+xkZSVFY X-Google-Smtp-Source: ABdhPJwppm0G4o74TOa173M2xqOSi/AZrAtL9D1/4S3Q+TiqoURZe1fRflpV5gyAxsEn2m+SRvOkHoNprgekMpDBOok= X-Received: by 2002:a25:d257:: with SMTP id j84mr3636985ybg.479.1611041287935; Mon, 18 Jan 2021 23:28:07 -0800 (PST) MIME-Version: 1.0 From: Nikhil Mohite Date: Tue, 19 Jan 2021 12:57:56 +0530 Message-ID: Subject: [pgAdmin]: Patch for SonarQube fixes To: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000afd76e05b93bc78b" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000afd76e05b93bc78b Content-Type: multipart/alternative; boundary="000000000000afd76c05b93bc789" --000000000000afd76c05b93bc789 Content-Type: text/plain; charset="UTF-8" Hi Team, I have fixed a few sonarQube issues, PFA patch Details as follows: Schema diff: - Refactor this function to reduce its Cognitive Complexity from 17 to the 15 allowed. - Refactor this function to reduce its Cognitive Complexity from 44 to the 15 allowed. - Refactor this function to reduce its Cognitive Complexity from 32 to the 15 allowed. bg-process: - Refactor this function to reduce its Cognitive Complexity from 46 to the 15 allowed. - Refactor this function to reduce its Cognitive Complexity from 36 to the 15 allowed. -- *Thanks & Regards,* *Nikhil Mohite* *Software Engineer.* *EDB Postgres* *Mob.No: +91-7798364578.* --000000000000afd76c05b93bc789 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Team,

I have fixed a few sonarQ= ube issues, PFA patch
Details as follows:

Schema diff:
  • Refactor this function to reduce its Cogn= itive Complexity from 17 to the 15 allowed.
  • Refactor this function = to reduce its Cognitive Complexity from 44 to the 15 allowed.
  • Refac= tor this function to reduce its Cognitive Complexity from 32 to the 15 allo= wed.
bg-process:
  • Refactor this function to = reduce its Cognitive Complexity from 46 to the 15 allowed.
  • Refactor= this function to reduce its Cognitive Complexity from 36 to the 15 allowed= .

--
Thanks & Regards,
Nikhil Mohite
Software Engineer.
Mob.No: +91-7798364578.
--000000000000afd76c05b93bc789-- --000000000000afd76e05b93bc78b Content-Type: application/octet-stream; name="SonarQubeCodeSmellFixes.patch" Content-Disposition: attachment; filename="SonarQubeCodeSmellFixes.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kk3ob5uv0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9zY2hlbWFfZGlmZl91dGlscy5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9z Y2hlbWFfZGlmZl91dGlscy5weQppbmRleCA3NTJhYjkxMi4uODUxZWI0ZWEgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9zY2hlbWFfZGlmZl91dGlscy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvc2NoZW1hX2Rp ZmZfdXRpbHMucHkKQEAgLTEzMSwyMiArMTMxLDkgQEAgY2xhc3MgU2NoZW1hRGlmZlRhYmxlQ29t cGFyZShTY2hlbWFEaWZmT2JqZWN0Q29tcGFyZSk6CiAgICAgICAgIGZvciBzb3VyY2UgaW4gc291 cmNlX2NvbHM6CiAgICAgICAgICAgICBpZiAnbmFtZScgaW4gc291cmNlOgogICAgICAgICAgICAg ICAgIGlmIGlzaW5zdGFuY2UodGFyZ2V0X2NvbHMsIGxpc3QpIGFuZCB0YXJnZXRfY29sczoKLSAg ICAgICAgICAgICAgICAgICAgdG1wID0gTm9uZQotICAgICAgICAgICAgICAgICAgICBmb3IgaXRl bSBpbiB0YXJnZXRfY29sczoKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGl0ZW1bJ25hbWUn XSA9PSBzb3VyY2VbJ25hbWUnXToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBj b3B5LmRlZXBjb3B5KGl0ZW0pCi0gICAgICAgICAgICAgICAgICAgIGlmIHRtcCBhbmQgc291cmNl ICE9IHRtcDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcF91cGRhdGVkID0gY29weS5kZWVw Y29weShzb3VyY2UpCi0gICAgICAgICAgICAgICAgICAgICAgICAjIFByZXNlcnZlIHRoZSBjb2x1 bW4gbnVtYmVyCi0gICAgICAgICAgICAgICAgICAgICAgICB0bXBfdXBkYXRlZFsnYXR0bnVtJ10g PSB0bXBbJ2F0dG51bSddCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiBpdGVtWyd0eXBuYW1l J10gbm90IGluIHRtcF91cGRhdGVkWydlZGl0X3R5cGVzJ106Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdG1wX3VwZGF0ZWRbJ2NvbF90eXBlX2NvbnZlcnNpb24nXSA9IEZhbHNlCi0gICAg ICAgICAgICAgICAgICAgICAgICB1cGRhdGVkLmFwcGVuZCh0bXBfdXBkYXRlZCkKLSAgICAgICAg ICAgICAgICAgICAgICAgIHRhcmdldF9jb2xzLnJlbW92ZSh0bXApCi0gICAgICAgICAgICAgICAg ICAgIGVsaWYgdG1wIGFuZCBzb3VyY2UgPT0gdG1wOgotICAgICAgICAgICAgICAgICAgICAgICAg dGFyZ2V0X2NvbHMucmVtb3ZlKHRtcCkKLSAgICAgICAgICAgICAgICAgICAgZWxpZiB0bXAgaXMg Tm9uZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGFkZGVkLmFwcGVuZChzb3VyY2UpCisgICAg ICAgICAgICAgICAgICAgIFNjaGVtYURpZmZUYWJsZUNvbXBhcmUuY29tcGFyZV90YXJnZXRfY29s cyhzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0YXJnZXRfY29scywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGVkLCB1cGRhdGVkKQogICAg ICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIGFkZGVkLmFwcGVuZChzb3Vy Y2UpCiAgICAgICAgICAgICBkaWZmZXJlbnRbJ2NvbHVtbnMnXVsnYWRkZWQnXSA9IGFkZGVkCkBA IC0xNTcsNiArMTQ0LDMzIEBAIGNsYXNzIFNjaGVtYURpZmZUYWJsZUNvbXBhcmUoU2NoZW1hRGlm Zk9iamVjdENvbXBhcmUpOgogCiAgICAgICAgIHJldHVybiBkaWZmZXJlbnQKIAorICAgIEBzdGF0 aWNtZXRob2QKKyAgICBkZWYgY29tcGFyZV90YXJnZXRfY29scyhzb3VyY2UsIHRhcmdldF9jb2xz LCBhZGRlZCwgdXBkYXRlZCk6CisgICAgICAgICIiIgorICAgICAgICBDb21wYXJlIHRhcmdldCBj b2wgd2l0aCBzb3VyY2UuCisgICAgICAgIDpwYXJhbSBzb3VyY2U6CisgICAgICAgIDpwYXJhbSB0 YXJnZXRfY29sczoKKyAgICAgICAgOnBhcmFtIGFkZGVkOgorICAgICAgICA6cGFyYW0gdXBkYXRl ZDoKKyAgICAgICAgOnJldHVybjoKKyAgICAgICAgIiIiCisgICAgICAgIHRtcCA9IE5vbmUKKyAg ICAgICAgZm9yIGl0ZW0gaW4gdGFyZ2V0X2NvbHM6CisgICAgICAgICAgICBpZiBpdGVtWyduYW1l J10gPT0gc291cmNlWyduYW1lJ106CisgICAgICAgICAgICAgICAgdG1wID0gY29weS5kZWVwY29w eShpdGVtKQorICAgICAgICBpZiB0bXAgYW5kIHNvdXJjZSAhPSB0bXA6CisgICAgICAgICAgICB0 bXBfdXBkYXRlZCA9IGNvcHkuZGVlcGNvcHkoc291cmNlKQorICAgICAgICAgICAgIyBQcmVzZXJ2 ZSB0aGUgY29sdW1uIG51bWJlcgorICAgICAgICAgICAgdG1wX3VwZGF0ZWRbJ2F0dG51bSddID0g dG1wWydhdHRudW0nXQorICAgICAgICAgICAgaWYgaXRlbVsndHlwbmFtZSddIG5vdCBpbiB0bXBf dXBkYXRlZFsnZWRpdF90eXBlcyddOgorICAgICAgICAgICAgICAgIHRtcF91cGRhdGVkWydjb2xf dHlwZV9jb252ZXJzaW9uJ10gPSBGYWxzZQorICAgICAgICAgICAgdXBkYXRlZC5hcHBlbmQodG1w X3VwZGF0ZWQpCisgICAgICAgICAgICB0YXJnZXRfY29scy5yZW1vdmUodG1wKQorICAgICAgICBl bGlmIHRtcCBhbmQgc291cmNlID09IHRtcDoKKyAgICAgICAgICAgIHRhcmdldF9jb2xzLnJlbW92 ZSh0bXApCisgICAgICAgIGVsaWYgdG1wIGlzIE5vbmU6CisgICAgICAgICAgICBhZGRlZC5hcHBl bmQoc291cmNlKQorCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiB0YWJsZV9jb25zdHJhaW50 X2NvbXAoc291cmNlX3RhYmxlLCB0YXJnZXRfdGFibGUpOgogICAgICAgICAiIiIKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL21pc2MvYmdwcm9jZXNzL3Byb2Nlc3Nlcy5weSBiL3dlYi9wZ2FkbWlu L21pc2MvYmdwcm9jZXNzL3Byb2Nlc3Nlcy5weQppbmRleCAyYzIwOWI3Ni4uMDU4ZDE3MDIgMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL21pc2MvYmdwcm9jZXNzL3Byb2Nlc3Nlcy5weQorKysgYi93 ZWIvcGdhZG1pbi9taXNjL2JncHJvY2Vzcy9wcm9jZXNzZXMucHkKQEAgLTIzMSwyMCArMjMxLDEx IEBAIGNsYXNzIEJhdGNoUHJvY2VzcyhvYmplY3QpOgogICAgICAgICBkYi5zZXNzaW9uLmFkZChq KQogICAgICAgICBkYi5zZXNzaW9uLmNvbW1pdCgpCiAKLSAgICBkZWYgc3RhcnQoc2VsZiwgY2I9 Tm9uZSk6Ci0KLSAgICAgICAgZGVmIHdoaWNoKHByb2dyYW0sIHBhdGhzKToKLSAgICAgICAgICAg IGRlZiBpc19leGUoZnBhdGgpOgotICAgICAgICAgICAgICAgIHJldHVybiBvcy5wYXRoLmV4aXN0 cyhmcGF0aCkgYW5kIG9zLmFjY2VzcyhmcGF0aCwgb3MuWF9PSykKLQotICAgICAgICAgICAgZm9y IHBhdGggaW4gcGF0aHM6Ci0gICAgICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguaXNkaXIocGF0 aCk6Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgZXhlX2Zp bGUgPSBvcy5wYXRoLmpvaW4odV9lbmNvZGUocGF0aCwgZnNfZW5jb2RpbmcpLCBwcm9ncmFtKQot ICAgICAgICAgICAgICAgIGlmIGlzX2V4ZShleGVfZmlsZSk6Ci0gICAgICAgICAgICAgICAgICAg IHJldHVybiBmaWxlX3F1b3RlKGV4ZV9maWxlKQotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQor ICAgIGRlZiBjaGVja19zdGFydF9lbmRfdGltZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAg IENoZWNrIHN0YXJ0IGFuZCBlbmQgdGltZSB0byBjaGVjayBwcm9jZXNzIGlzIHN0aWxsIGV4ZWN1 dGluZyBvciBub3QuCisgICAgICAgIDpyZXR1cm46CisgICAgICAgICIiIgogICAgICAgICBpZiBz ZWxmLnN0aW1lIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgaWYgc2VsZi5ldGltZSBpcyBOb25l OgogICAgICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcihfKCdUaGUgcHJvY2VzcyBoYXMg YWxyZWFkeSBiZWVuIHN0YXJ0ZWQuJykpCkBAIC0yNTIsNzQgKzI0MywyMCBAQCBjbGFzcyBCYXRj aFByb2Nlc3Mob2JqZWN0KToKICAgICAgICAgICAgICAgICBfKCdUaGUgcHJvY2VzcyBoYXMgYWxy ZWFkeSBmaW5pc2hlZCBhbmQgY2Fubm90IGJlIHJlc3RhcnRlZC4nKQogICAgICAgICAgICAgKQog CisgICAgZGVmIHN0YXJ0KHNlbGYsIGNiPU5vbmUpOgorICAgICAgICBzZWxmLmNoZWNrX3N0YXJ0 X2VuZF90aW1lKCkKKwogICAgICAgICBleGVjdXRvciA9IGZpbGVfcXVvdGUob3MucGF0aC5qb2lu KAogICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKHVfZW5jb2RlKF9fZmlsZV9fKSksICdwcm9j ZXNzX2V4ZWN1dG9yLnB5JwogICAgICAgICApKQogICAgICAgICBwYXRocyA9IG9zLmVudmlyb25b J1BBVEgnXS5zcGxpdChvcy5wYXRoc2VwKQotICAgICAgICBpbnRlcnByZXRlciA9IE5vbmUKIAog ICAgICAgICBjdXJyZW50X2FwcC5sb2dnZXIuaW5mbygKICAgICAgICAgICAgICJQcm9jZXNzIEV4 ZWN1dG9yOiBPcGVyYXRpbmcgU3lzdGVtIFBhdGggJXMiLAogICAgICAgICAgICAgc3RyKHBhdGhz KQogICAgICAgICApCiAKLSAgICAgICAgaWYgb3MubmFtZSA9PSAnbnQnOgotICAgICAgICAgICAg cGF0aHMuaW5zZXJ0KDAsIG9zLnBhdGguam9pbih1X2VuY29kZShzeXMucHJlZml4KSwgJ1Njcmlw dHMnKSkKLSAgICAgICAgICAgIHBhdGhzLmluc2VydCgwLCB1X2VuY29kZShzeXMucHJlZml4KSkK LQotICAgICAgICAgICAgaW50ZXJwcmV0ZXIgPSB3aGljaCgncHl0aG9udy5leGUnLCBwYXRocykK LSAgICAgICAgICAgIGlmIGludGVycHJldGVyIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgaW50 ZXJwcmV0ZXIgPSB3aGljaCgncHl0aG9uLmV4ZScsIHBhdGhzKQotCi0gICAgICAgICAgICBjdXJy ZW50X2FwcC5sb2dnZXIuaW5mbygKLSAgICAgICAgICAgICAgICAiUHJvY2VzcyBFeGVjdXRvcjog SW50ZXJwcmV0ZXIgdmFsdWUgaW4gcGF0aDogJXMiLAotICAgICAgICAgICAgICAgIHN0cihpbnRl cnByZXRlcikKLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIGlmIGludGVycHJldGVyIGlzIE5v bmUgYW5kIGN1cnJlbnRfYXBwLlBHQURNSU5fUlVOVElNRToKLSAgICAgICAgICAgICAgICAjIFdl J3ZlIGZhY2VkIGFuIGlzc3VlIHdpdGggV2luZG93cyAyMDA4IFIyICh4ODYpIHJlZ2FyZGluZywK LSAgICAgICAgICAgICAgICAjIG5vdCBob25vdXJpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxl cyBzZXQgdW5kZXIgdGhlIFF0Ci0gICAgICAgICAgICAgICAgIyAoZS5nLiBydW50aW1lKSwgYW5k IGFsc28gc2V0dGluZyBQWVRIT05IT01FIHNhbWUgYXMKLSAgICAgICAgICAgICAgICAjIHN5cy5l eGVjdXRhYmxlIChpLmUuIHBnQWRtaW40LmV4ZSkuCi0gICAgICAgICAgICAgICAgIwotICAgICAg ICAgICAgICAgICMgQXMgd2Uga25vdywgd2UncmUgcnVubmluZyBpdCB1bmRlciB0aGUgcnVudGlt ZSwgd2UgY2FuIGFzc3VtZQotICAgICAgICAgICAgICAgICMgdGhhdCAndmVudicgZGlyZWN0b3J5 IHdpbGwgYmUgYXZhaWxhYmxlIG91dHNpZGUgb2YgJ2JpbicKLSAgICAgICAgICAgICAgICAjIGRp cmVjdG9yeS4KLSAgICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAgIyBXZSB3b3VsZCB0 cnkgb3V0IGx1Y2sgdG8gZmluZCBweXRob24gZXhlY3V0YWJsZSBiYXNlZCBvbiB0aGF0Ci0gICAg ICAgICAgICAgICAgIyBhc3N1bXB0aW9ucy4KLSAgICAgICAgICAgICAgICBiaW5fcGF0aCA9IG9z LnBhdGguZGlybmFtZShzeXMuZXhlY3V0YWJsZSkKLQotICAgICAgICAgICAgICAgIHZlbnYgPSBv cy5wYXRoLnJlYWxwYXRoKAotICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oYmluX3Bh dGgsICcuLlxcdmVudicpCi0gICAgICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAgICAgaW50 ZXJwcmV0ZXIgPSB3aGljaCgncHl0aG9udy5leGUnLCBbdmVudl0pCi0gICAgICAgICAgICAgICAg aWYgaW50ZXJwcmV0ZXIgaXMgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgaW50ZXJwcmV0ZXIg PSB3aGljaCgncHl0aG9uLmV4ZScsIFt2ZW52XSkKLQotICAgICAgICAgICAgICAgIGN1cnJlbnRf YXBwLmxvZ2dlci5pbmZvKAotICAgICAgICAgICAgICAgICAgICAiUHJvY2VzcyBFeGVjdXRvcjog SW50ZXJwcmV0ZXIgdmFsdWUgaW4gdmlydHVhbCAiCi0gICAgICAgICAgICAgICAgICAgICJlbnZp cm9ubWVudDogJXMiLCBzdHIoaW50ZXJwcmV0ZXIpCi0gICAgICAgICAgICAgICAgKQotCi0gICAg ICAgICAgICAgICAgaWYgaW50ZXJwcmV0ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAg ICAgICMgT3VyIGFzc3VtcHRpb25zIGFyZSBwcm92ZW4gcmlnaHQuCi0gICAgICAgICAgICAgICAg ICAgICMgTGV0J3MgYXBwZW5kIHRoZSAnYmluJyBkaXJlY3RvcnkgdG8gdGhlIFBBVEggZW52aXJv bm1lbnQKLSAgICAgICAgICAgICAgICAgICAgIyB2YXJpYWJsZS4gQW5kLCBhbHNvIHNldCBQWVRI T05IT01FIGVudmlyb25tZW50IHZhcmlhYmxlCi0gICAgICAgICAgICAgICAgICAgICMgdG8gJ3Zl bnYnIGRpcmVjdG9yeS4KLSAgICAgICAgICAgICAgICAgICAgb3MuZW52aXJvblsnUEFUSCddID0g YmluX3BhdGggKyAnOycgKyBvcy5lbnZpcm9uWydQQVRIJ10KLSAgICAgICAgICAgICAgICAgICAg b3MuZW52aXJvblsnUFlUSE9OSE9NRSddID0gdmVudgotICAgICAgICBlbHNlOgotICAgICAgICAg ICAgIyBMZXQncyBub3QgdXNlIHN5cy5wcmVmaXggaW4gcnVudGltZS4KLSAgICAgICAgICAgICMg J3N5cy5wcmVmaXgnIGlzIG5vdCBpZGVudGlmaWVkIG9uICpuaXggc3lzdGVtcyBmb3Igc29tZSB1 bmtub3duCi0gICAgICAgICAgICAjIHJlYXNvbiwgd2hpbGUgcnVubmluZyB1bmRlciB0aGUgcnVu dGltZS4KLSAgICAgICAgICAgICMgV2UncmUgYWxyZWFkeSBhZGRpbmcgJzxpbnN0YWxsYXRpb24g cGF0aD4vcGdBZG1pbiA0L3ZlbnYvYmluJwotICAgICAgICAgICAgIyBkaXJlY3RvcnkgaW4gdGhl IFBBVEggZW52aXJvbm1lbnQgdmFyaWFibGUuIEhlbmNlIC0gaXQgd2lsbAotICAgICAgICAgICAg IyBhbnl3YXkgYmUgdGhlIHJlZHVuZGFudCB2YWx1ZSBpbiBwYXRocy4KLSAgICAgICAgICAgIGlm IG5vdCBjdXJyZW50X2FwcC5QR0FETUlOX1JVTlRJTUU6Ci0gICAgICAgICAgICAgICAgcGF0aHMu aW5zZXJ0KDAsIG9zLnBhdGguam9pbih1X2VuY29kZShzeXMucHJlZml4KSwgJ2JpbicpKQotICAg ICAgICAgICAgcHl0aG9uX2JpbmFyeV9uYW1lID0gJ3B5dGhvbnswfScuZm9ybWF0KHN5cy52ZXJz aW9uX2luZm9bMF0pCi0gICAgICAgICAgICBpbnRlcnByZXRlciA9IHdoaWNoKHVfZW5jb2RlKHB5 dGhvbl9iaW5hcnlfbmFtZSksIHBhdGhzKQorICAgICAgICBpbnRlcnByZXRlciA9IHNlbGYuZ2V0 X2ludGVycHJldGVyKHBhdGhzKQogCiAgICAgICAgIHAgPSBOb25lCiAgICAgICAgIGNtZCA9IFsK QEAgLTM2OCwzNCArMzA1LDE0IEBAIGNsYXNzIEJhdGNoUHJvY2VzcyhvYmplY3QpOgogICAgICAg ICAgICAgICAgIGNyZWF0aW9uZmxhZ3M9KENSRUFURV9ORVdfUFJPQ0VTU19HUk9VUCB8IERFVEFD SEVEX1BST0NFU1MpCiAgICAgICAgICAgICApCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBk ZWYgcHJlZXhlY19mdW5jdGlvbigpOgotICAgICAgICAgICAgICAgIGltcG9ydCBzaWduYWwKLSAg ICAgICAgICAgICAgICAjIERldGFjaGluZyBmcm9tIHRoZSBwYXJlbnQgcHJvY2VzcyBncm91cAot ICAgICAgICAgICAgICAgIG9zLnNldHBncnAoKQotICAgICAgICAgICAgICAgICMgRXhwbGljaXRs eSBpZ25vcmluZyBzaWduYWxzIGluIHRoZSBjaGlsZCBwcm9jZXNzCi0gICAgICAgICAgICAgICAg c2lnbmFsLnNpZ25hbChzaWduYWwuU0lHSU5ULCBzaWduYWwuU0lHX0lHTikKLQogICAgICAgICAg ICAgIyBpZiBpbiBkZWJ1ZyBtb2RlLCB3YWl0IGZvciBwcm9jZXNzIHRvIGNvbXBsZXRlIGFuZAog ICAgICAgICAgICAgIyBnZXQgdGhlIHN0ZG91dCBhbmQgc3RkZXJyIG9mIHBvcGVuLgogICAgICAg ICAgICAgaWYgY29uZmlnLkNPTlNPTEVfTE9HX0xFVkVMIDw9IGxvZ2dpbmcuREVCVUc6Ci0gICAg ICAgICAgICAgICAgcCA9IFBvcGVuKAotICAgICAgICAgICAgICAgICAgICBjbWQsIGNsb3NlX2Zk cz1UcnVlLCBzdGRvdXQ9UElQRSwgc3RkZXJyPVBJUEUsIHN0ZGluPU5vbmUsCi0gICAgICAgICAg ICAgICAgICAgIHByZWV4ZWNfZm49cHJlZXhlY19mdW5jdGlvbiwgZW52PWVudgotICAgICAgICAg ICAgICAgICkKLQotICAgICAgICAgICAgICAgIG91dHB1dCwgZXJyb3JzID0gcC5jb21tdW5pY2F0 ZSgpCi0gICAgICAgICAgICAgICAgb3V0cHV0ID0gb3V0cHV0LmRlY29kZSgpIFwKLSAgICAgICAg ICAgICAgICAgICAgaWYgaGFzYXR0cihvdXRwdXQsICdkZWNvZGUnKSBlbHNlIG91dHB1dAotICAg ICAgICAgICAgICAgIGVycm9ycyA9IGVycm9ycy5kZWNvZGUoKSBcCi0gICAgICAgICAgICAgICAg ICAgIGlmIGhhc2F0dHIoZXJyb3JzLCAnZGVjb2RlJykgZWxzZSBlcnJvcnMKLSAgICAgICAgICAg ICAgICBjdXJyZW50X2FwcC5sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAgICAgICdQcm9j ZXNzIFdhdGNoZXIgT3V0OnswfScuZm9ybWF0KG91dHB1dCkpCi0gICAgICAgICAgICAgICAgY3Vy cmVudF9hcHAubG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICAgICAnUHJvY2VzcyBXYXRj aGVyIEVycjp7MH0nLmZvcm1hdChlcnJvcnMpKQorICAgICAgICAgICAgICAgIG91dHB1dCwgZXJy b3IgPSBzZWxmLmdldF9wcm9jZXNzX291dHB1dChjbWQsIGVudikKICAgICAgICAgICAgIGVsc2U6 CiAgICAgICAgICAgICAgICAgcCA9IFBvcGVuKAogICAgICAgICAgICAgICAgICAgICBjbWQsIGNs b3NlX2Zkcz1UcnVlLCBzdGRvdXQ9Tm9uZSwgc3RkZXJyPU5vbmUsIHN0ZGluPU5vbmUsCi0gICAg ICAgICAgICAgICAgICAgIHByZWV4ZWNfZm49cHJlZXhlY19mdW5jdGlvbiwgZW52PWVudgorICAg ICAgICAgICAgICAgICAgICBwcmVleGVjX2ZuPXNlbGYucHJlZXhlY19mdW5jdGlvbiwgZW52PWVu dgogICAgICAgICAgICAgICAgICkKIAogICAgICAgICBzZWxmLmVjb2RlID0gcC5wb2xsKCkKQEAg LTQyMyw2MCArMzQwLDE2NyBAQCBjbGFzcyBCYXRjaFByb2Nlc3Mob2JqZWN0KToKICAgICAgICAg ICAgIHAucHJvY2Vzc19zdGF0ZSA9IFBST0NFU1NfU1RBUlRFRAogICAgICAgICAgICAgZGIuc2Vz c2lvbi5jb21taXQoKQogCi0gICAgZGVmIHN0YXR1cyhzZWxmLCBvdXQ9MCwgZXJyPTApOgotICAg ICAgICBpbXBvcnQgcmUKKyAgICBkZWYgZ2V0X3Byb2Nlc3Nfb3V0cHV0KHNlbGYsIGNtZCwgZW52 KToKKyAgICAgICAgIiIiCisgICAgICAgIDpwYXJhbSBjbWQ6CisgICAgICAgIDpwYXJhbSBlbnY6 CisgICAgICAgIDpyZXR1cm46CisgICAgICAgICIiIgorICAgICAgICBwID0gUG9wZW4oCisgICAg ICAgICAgICBjbWQsIGNsb3NlX2Zkcz1UcnVlLCBzdGRvdXQ9UElQRSwgc3RkZXJyPVBJUEUsIHN0 ZGluPU5vbmUsCisgICAgICAgICAgICBwcmVleGVjX2ZuPXNlbGYucHJlZXhlY19mdW5jdGlvbiwg ZW52PWVudgorICAgICAgICApCiAKLSAgICAgICAgY3RpbWUgPSBnZXRfY3VycmVudF90aW1lKGZv cm1hdD0nJXklbSVkJUglTSVTJWYnKQorICAgICAgICBvdXRwdXQsIGVycm9ycyA9IHAuY29tbXVu aWNhdGUoKQorICAgICAgICBvdXRwdXQgPSBvdXRwdXQuZGVjb2RlKCkgXAorICAgICAgICAgICAg aWYgaGFzYXR0cihvdXRwdXQsICdkZWNvZGUnKSBlbHNlIG91dHB1dAorICAgICAgICBlcnJvcnMg PSBlcnJvcnMuZGVjb2RlKCkgXAorICAgICAgICAgICAgaWYgaGFzYXR0cihlcnJvcnMsICdkZWNv ZGUnKSBlbHNlIGVycm9ycworICAgICAgICBjdXJyZW50X2FwcC5sb2dnZXIuZGVidWcoCisgICAg ICAgICAgICAnUHJvY2VzcyBXYXRjaGVyIE91dDp7MH0nLmZvcm1hdChvdXRwdXQpKQorICAgICAg ICBjdXJyZW50X2FwcC5sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAnUHJvY2VzcyBXYXRjaGVy IEVycjp7MH0nLmZvcm1hdChlcnJvcnMpKQorCisgICAgICAgIHJldHVybiBvdXRwdXQsIGVycm9y cworCisgICAgZGVmIHByZWV4ZWNfZnVuY3Rpb24oc2VsZik6CisgICAgICAgIGltcG9ydCBzaWdu YWwKKyAgICAgICAgIyBEZXRhY2hpbmcgZnJvbSB0aGUgcGFyZW50IHByb2Nlc3MgZ3JvdXAKKyAg ICAgICAgb3Muc2V0cGdycCgpCisgICAgICAgICMgRXhwbGljaXRseSBpZ25vcmluZyBzaWduYWxz IGluIHRoZSBjaGlsZCBwcm9jZXNzCisgICAgICAgIHNpZ25hbC5zaWduYWwoc2lnbmFsLlNJR0lO VCwgc2lnbmFsLlNJR19JR04pCisKKyAgICBkZWYgZ2V0X2ludGVycHJldGVyKHNlbGYsIHBhdGhz KToKKyAgICAgICAgIiIiCisgICAgICAgIEdldCBpbnRlcnByZXRlci4KKyAgICAgICAgOnBhcmFt IHBhdGhzOgorICAgICAgICA6cmV0dXJuOgorICAgICAgICAiIiIKKyAgICAgICAgaWYgb3MubmFt ZSA9PSAnbnQnOgorICAgICAgICAgICAgcGF0aHMuaW5zZXJ0KDAsIG9zLnBhdGguam9pbih1X2Vu Y29kZShzeXMucHJlZml4KSwgJ1NjcmlwdHMnKSkKKyAgICAgICAgICAgIHBhdGhzLmluc2VydCgw LCB1X2VuY29kZShzeXMucHJlZml4KSkKIAotICAgICAgICBzdGRvdXQgPSBbXQotICAgICAgICBz dGRlcnIgPSBbXQotICAgICAgICBvdXRfY29tcGxldGVkID0gZXJyX2NvbXBsZXRlZCA9IEZhbHNl Ci0gICAgICAgIHByb2Nlc3Nfb3V0cHV0ID0gKG91dCAhPSAtMSBhbmQgZXJyICE9IC0xKQotICAg ICAgICBlbmMgPSBzeXMuZ2V0ZGVmYXVsdGVuY29kaW5nKCkKLSAgICAgICAgaWYgZW5jID09ICdh c2NpaSc6Ci0gICAgICAgICAgICBlbmMgPSAndXRmLTgnCisgICAgICAgICAgICBpbnRlcnByZXRl ciA9IHNlbGYud2hpY2goJ3B5dGhvbncuZXhlJywgcGF0aHMpCisgICAgICAgICAgICBpZiBpbnRl cnByZXRlciBpcyBOb25lOgorICAgICAgICAgICAgICAgIGludGVycHJldGVyID0gc2VsZi53aGlj aCgncHl0aG9uLmV4ZScsIHBhdGhzKQorCisgICAgICAgICAgICBjdXJyZW50X2FwcC5sb2dnZXIu aW5mbygKKyAgICAgICAgICAgICAgICAiUHJvY2VzcyBFeGVjdXRvcjogSW50ZXJwcmV0ZXIgdmFs dWUgaW4gcGF0aDogJXMiLAorICAgICAgICAgICAgICAgIHN0cihpbnRlcnByZXRlcikKKyAgICAg ICAgICAgICkKKyAgICAgICAgICAgIGlmIGludGVycHJldGVyIGlzIE5vbmUgYW5kIGN1cnJlbnRf YXBwLlBHQURNSU5fUlVOVElNRToKKyAgICAgICAgICAgICAgICAjIFdlJ3ZlIGZhY2VkIGFuIGlz c3VlIHdpdGggV2luZG93cyAyMDA4IFIyICh4ODYpIHJlZ2FyZGluZywKKyAgICAgICAgICAgICAg ICAjIG5vdCBob25vdXJpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyBzZXQgdW5kZXIgdGhl IFF0CisgICAgICAgICAgICAgICAgIyAoZS5nLiBydW50aW1lKSwgYW5kIGFsc28gc2V0dGluZyBQ WVRIT05IT01FIHNhbWUgYXMKKyAgICAgICAgICAgICAgICAjIHN5cy5leGVjdXRhYmxlIChpLmUu IHBnQWRtaW40LmV4ZSkuCisgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAgICMgQXMg d2Uga25vdywgd2UncmUgcnVubmluZyBpdCB1bmRlciB0aGUgcnVudGltZSwgd2UgY2FuIGFzc3Vt ZQorICAgICAgICAgICAgICAgICMgdGhhdCAndmVudicgZGlyZWN0b3J5IHdpbGwgYmUgYXZhaWxh YmxlIG91dHNpZGUgb2YgJ2JpbicKKyAgICAgICAgICAgICAgICAjIGRpcmVjdG9yeS4KKyAgICAg ICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgIyBXZSB3b3VsZCB0cnkgb3V0IGx1Y2sgdG8g ZmluZCBweXRob24gZXhlY3V0YWJsZSBiYXNlZCBvbiB0aGF0CisgICAgICAgICAgICAgICAgIyBh c3N1bXB0aW9ucy4KKyAgICAgICAgICAgICAgICBiaW5fcGF0aCA9IG9zLnBhdGguZGlybmFtZShz eXMuZXhlY3V0YWJsZSkKIAotICAgICAgICBkZWYgcmVhZF9sb2cobG9nZmlsZSwgbG9nLCBwb3Ms IGN0aW1lLCBlY29kZT1Ob25lKToKLSAgICAgICAgICAgIGNvbXBsZXRlZCA9IFRydWUKLSAgICAg ICAgICAgIGlkeCA9IDAKLSAgICAgICAgICAgIGMgPSByZS5jb21waWxlKHIiKFxkKyksKC4qJCki KQorICAgICAgICAgICAgICAgIHZlbnYgPSBvcy5wYXRoLnJlYWxwYXRoKAorICAgICAgICAgICAg ICAgICAgICBvcy5wYXRoLmpvaW4oYmluX3BhdGgsICcuLlxcdmVudicpCisgICAgICAgICAgICAg ICAgKQogCi0gICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUobG9nZmlsZSk6Ci0gICAg ICAgICAgICAgICAgcmV0dXJuIDAsIEZhbHNlCisgICAgICAgICAgICAgICAgaW50ZXJwcmV0ZXIg PSBzZWxmLndoaWNoKCdweXRob253LmV4ZScsIFt2ZW52XSkKKyAgICAgICAgICAgICAgICBpZiBp bnRlcnByZXRlciBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICBpbnRlcnByZXRlciA9IHNl bGYud2hpY2goJ3B5dGhvbi5leGUnLCBbdmVudl0pCiAKLSAgICAgICAgICAgIHdpdGggb3Blbihs b2dmaWxlLCAncmInKSBhcyBmOgotICAgICAgICAgICAgICAgIGVvZnMgPSBvcy5mc3RhdChmLmZp bGVubygpKS5zdF9zaXplCi0gICAgICAgICAgICAgICAgZi5zZWVrKHBvcywgMCkKLSAgICAgICAg ICAgICAgICBpZiBwb3MgPT0gZW9mcyBhbmQgZWNvZGUgaXMgTm9uZToKLSAgICAgICAgICAgICAg ICAgICAgY29tcGxldGVkID0gRmFsc2UKKyAgICAgICAgICAgICAgICBjdXJyZW50X2FwcC5sb2dn ZXIuaW5mbygKKyAgICAgICAgICAgICAgICAgICAgIlByb2Nlc3MgRXhlY3V0b3I6IEludGVycHJl dGVyIHZhbHVlIGluIHZpcnR1YWwgIgorICAgICAgICAgICAgICAgICAgICAiZW52aXJvbm1lbnQ6 ICVzIiwgc3RyKGludGVycHJldGVyKQorICAgICAgICAgICAgICAgICkKIAotICAgICAgICAgICAg ICAgIHdoaWxlIHBvcyA8IGVvZnM6Ci0gICAgICAgICAgICAgICAgICAgIGlkeCArPSAxCi0gICAg ICAgICAgICAgICAgICAgIGxpbmUgPSBmLnJlYWRsaW5lKCkKLSAgICAgICAgICAgICAgICAgICAg bGluZSA9IGxpbmUuZGVjb2RlKGVuYywgJ3JlcGxhY2UnKQotICAgICAgICAgICAgICAgICAgICBy ID0gYy5zcGxpdChsaW5lKQotICAgICAgICAgICAgICAgICAgICBpZiBsZW4ocikgPCAzOgotICAg ICAgICAgICAgICAgICAgICAgICAgIyBpZ25vcmUgdGhpcyBsaW5lCi0gICAgICAgICAgICAgICAg ICAgICAgICBwb3MgPSBmLnRlbGwoKQotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUK LSAgICAgICAgICAgICAgICAgICAgaWYgclsxXSA+IGN0aW1lOgotICAgICAgICAgICAgICAgICAg ICAgICAgY29tcGxldGVkID0gRmFsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0g ICAgICAgICAgICAgICAgICAgIGxvZy5hcHBlbmQoW3JbMV0sIHJbMl1dKQorICAgICAgICAgICAg ICAgIGlmIGludGVycHJldGVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICAjIE91 ciBhc3N1bXB0aW9ucyBhcmUgcHJvdmVuIHJpZ2h0LgorICAgICAgICAgICAgICAgICAgICAjIExl dCdzIGFwcGVuZCB0aGUgJ2JpbicgZGlyZWN0b3J5IHRvIHRoZSBQQVRIIGVudmlyb25tZW50Cisg ICAgICAgICAgICAgICAgICAgICMgdmFyaWFibGUuIEFuZCwgYWxzbyBzZXQgUFlUSE9OSE9NRSBl bnZpcm9ubWVudCB2YXJpYWJsZQorICAgICAgICAgICAgICAgICAgICAjIHRvICd2ZW52JyBkaXJl Y3RvcnkuCisgICAgICAgICAgICAgICAgICAgIG9zLmVudmlyb25bJ1BBVEgnXSA9IGJpbl9wYXRo ICsgJzsnICsgb3MuZW52aXJvblsnUEFUSCddCisgICAgICAgICAgICAgICAgICAgIG9zLmVudmly b25bJ1BZVEhPTkhPTUUnXSA9IHZlbnYKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgTGV0 J3Mgbm90IHVzZSBzeXMucHJlZml4IGluIHJ1bnRpbWUuCisgICAgICAgICAgICAjICdzeXMucHJl Zml4JyBpcyBub3QgaWRlbnRpZmllZCBvbiAqbml4IHN5c3RlbXMgZm9yIHNvbWUgdW5rbm93bgor ICAgICAgICAgICAgIyByZWFzb24sIHdoaWxlIHJ1bm5pbmcgdW5kZXIgdGhlIHJ1bnRpbWUuCisg ICAgICAgICAgICAjIFdlJ3JlIGFscmVhZHkgYWRkaW5nICc8aW5zdGFsbGF0aW9uIHBhdGg+L3Bn QWRtaW4gNC92ZW52L2JpbicKKyAgICAgICAgICAgICMgZGlyZWN0b3J5IGluIHRoZSBQQVRIIGVu dmlyb25tZW50IHZhcmlhYmxlLiBIZW5jZSAtIGl0IHdpbGwKKyAgICAgICAgICAgICMgYW55d2F5 IGJlIHRoZSByZWR1bmRhbnQgdmFsdWUgaW4gcGF0aHMuCisgICAgICAgICAgICBpZiBub3QgY3Vy cmVudF9hcHAuUEdBRE1JTl9SVU5USU1FOgorICAgICAgICAgICAgICAgIHBhdGhzLmluc2VydCgw LCBvcy5wYXRoLmpvaW4odV9lbmNvZGUoc3lzLnByZWZpeCksICdiaW4nKSkKKyAgICAgICAgICAg IHB5dGhvbl9iaW5hcnlfbmFtZSA9ICdweXRob257MH0nLmZvcm1hdChzeXMudmVyc2lvbl9pbmZv WzBdKQorICAgICAgICAgICAgaW50ZXJwcmV0ZXIgPSBzZWxmLndoaWNoKHVfZW5jb2RlKHB5dGhv bl9iaW5hcnlfbmFtZSksIHBhdGhzKQorCisgICAgICAgIHJldHVybiBpbnRlcnByZXRlcgorCisg ICAgZGVmIHdoaWNoKHNlbGYsIHByb2dyYW0sIHBhdGhzKToKKyAgICAgICAgZGVmIGlzX2V4ZShm cGF0aCk6CisgICAgICAgICAgICByZXR1cm4gb3MucGF0aC5leGlzdHMoZnBhdGgpIGFuZCBvcy5h Y2Nlc3MoZnBhdGgsIG9zLlhfT0spCisKKyAgICAgICAgZm9yIHBhdGggaW4gcGF0aHM6CisgICAg ICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2RpcihwYXRoKToKKyAgICAgICAgICAgICAgICBjb250 aW51ZQorICAgICAgICAgICAgZXhlX2ZpbGUgPSBvcy5wYXRoLmpvaW4odV9lbmNvZGUocGF0aCwg ZnNfZW5jb2RpbmcpLCBwcm9ncmFtKQorICAgICAgICAgICAgaWYgaXNfZXhlKGV4ZV9maWxlKToK KyAgICAgICAgICAgICAgICByZXR1cm4gZmlsZV9xdW90ZShleGVfZmlsZSkKKyAgICAgICAgcmV0 dXJuIE5vbmUKKworICAgIGRlZiByZWFkX2xvZyhzZWxmLCBsb2dmaWxlLCBsb2csIHBvcywgY3Rp bWUsIGVjb2RlPU5vbmUsIGVuYz0ndXRmLTgnKToKKyAgICAgICAgaW1wb3J0IHJlCisgICAgICAg IGNvbXBsZXRlZCA9IFRydWUKKyAgICAgICAgaWR4ID0gMAorICAgICAgICBjID0gcmUuY29tcGls ZShyIihcZCspLCguKiQpIikKKworICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUobG9nZmls ZSk6CisgICAgICAgICAgICByZXR1cm4gMCwgRmFsc2UKKworICAgICAgICB3aXRoIG9wZW4obG9n ZmlsZSwgJ3JiJykgYXMgZjoKKyAgICAgICAgICAgIGVvZnMgPSBvcy5mc3RhdChmLmZpbGVubygp KS5zdF9zaXplCisgICAgICAgICAgICBmLnNlZWsocG9zLCAwKQorICAgICAgICAgICAgaWYgcG9z ID09IGVvZnMgYW5kIGVjb2RlIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgY29tcGxldGVkID0g RmFsc2UKKworICAgICAgICAgICAgd2hpbGUgcG9zIDwgZW9mczoKKyAgICAgICAgICAgICAgICBp ZHggKz0gMQorICAgICAgICAgICAgICAgIGxpbmUgPSBmLnJlYWRsaW5lKCkKKyAgICAgICAgICAg ICAgICBsaW5lID0gbGluZS5kZWNvZGUoZW5jLCAncmVwbGFjZScpCisgICAgICAgICAgICAgICAg ciA9IGMuc3BsaXQobGluZSkKKyAgICAgICAgICAgICAgICBpZiBsZW4ocikgPCAzOgorICAgICAg ICAgICAgICAgICAgICAjIGlnbm9yZSB0aGlzIGxpbmUKICAgICAgICAgICAgICAgICAgICAgcG9z ID0gZi50ZWxsKCkKLSAgICAgICAgICAgICAgICAgICAgaWYgaWR4ID49IDEwMjQ6CisgICAgICAg ICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgaWYgclsxXSA+IGN0aW1lOgor ICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZWQgPSBGYWxzZQorICAgICAgICAgICAgICAgICAg ICBicmVhaworICAgICAgICAgICAgICAgIGxvZy5hcHBlbmQoW3JbMV0sIHJbMl1dKQorICAgICAg ICAgICAgICAgIHBvcyA9IGYudGVsbCgpCisgICAgICAgICAgICAgICAgaWYgaWR4ID49IDEwMjQ6 CisgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlZCA9IEZhbHNlCisgICAgICAgICAgICAgICAg ICAgIGJyZWFrCisgICAgICAgICAgICAgICAgaWYgcG9zID09IGVvZnM6CisgICAgICAgICAgICAg ICAgICAgIGlmIGVjb2RlIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0 ZWQgPSBGYWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAg ICAgICAgaWYgcG9zID09IGVvZnM6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiBlY29kZSBp cyBOb25lOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlZCA9IEZhbHNlCi0g ICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICBicmVhawog Ci0gICAgICAgICAgICByZXR1cm4gcG9zLCBjb21wbGV0ZWQKKyAgICAgICAgcmV0dXJuIHBvcywg Y29tcGxldGVkCisKKyAgICBkZWYgc3RhdHVzKHNlbGYsIG91dD0wLCBlcnI9MCk6CisgICAgICAg IGN0aW1lID0gZ2V0X2N1cnJlbnRfdGltZShmb3JtYXQ9JyV5JW0lZCVIJU0lUyVmJykKKworICAg ICAgICBzdGRvdXQgPSBbXQorICAgICAgICBzdGRlcnIgPSBbXQorICAgICAgICBvdXRfY29tcGxl dGVkID0gZXJyX2NvbXBsZXRlZCA9IEZhbHNlCisgICAgICAgIHByb2Nlc3Nfb3V0cHV0ID0gKG91 dCAhPSAtMSBhbmQgZXJyICE9IC0xKQogCiAgICAgICAgIGogPSBQcm9jZXNzLnF1ZXJ5LmZpbHRl cl9ieSgKICAgICAgICAgICAgIHBpZD1zZWxmLmlkLCB1c2VyX2lkPWN1cnJlbnRfdXNlci5pZAog ICAgICAgICApLmZpcnN0KCkKKyAgICAgICAgZW5jID0gc3lzLmdldGRlZmF1bHRlbmNvZGluZygp CisgICAgICAgIGlmIGVuYyA9PSAnYXNjaWknOgorICAgICAgICAgICAgZW5jID0gJ3V0Zi04Jwog CiAgICAgICAgIGV4ZWN1dGlvbl90aW1lID0gTm9uZQogCkBAIC00OTUsMTEgKzUxOSwxMSBAQCBj bGFzcyBCYXRjaFByb2Nlc3Mob2JqZWN0KToKICAgICAgICAgICAgICAgICBleGVjdXRpb25fdGlt ZSA9IEJhdGNoUHJvY2Vzcy50b3RhbF9zZWNvbmRzKGV0aW1lIC0gc3RpbWUpCiAKICAgICAgICAg ICAgIGlmIHByb2Nlc3Nfb3V0cHV0OgotICAgICAgICAgICAgICAgIG91dCwgb3V0X2NvbXBsZXRl ZCA9IHJlYWRfbG9nKAotICAgICAgICAgICAgICAgICAgICBzZWxmLnN0ZG91dCwgc3Rkb3V0LCBv dXQsIGN0aW1lLCBzZWxmLmVjb2RlCisgICAgICAgICAgICAgICAgb3V0LCBvdXRfY29tcGxldGVk ID0gc2VsZi5yZWFkX2xvZygKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGRvdXQsIHN0ZG91 dCwgb3V0LCBjdGltZSwgc2VsZi5lY29kZSwgZW5jCiAgICAgICAgICAgICAgICAgKQotICAgICAg ICAgICAgICAgIGVyciwgZXJyX2NvbXBsZXRlZCA9IHJlYWRfbG9nKAotICAgICAgICAgICAgICAg ICAgICBzZWxmLnN0ZGVyciwgc3RkZXJyLCBlcnIsIGN0aW1lLCBzZWxmLmVjb2RlCisgICAgICAg ICAgICAgICAgZXJyLCBlcnJfY29tcGxldGVkID0gc2VsZi5yZWFkX2xvZygKKyAgICAgICAgICAg ICAgICAgICAgc2VsZi5zdGRlcnIsIHN0ZGVyciwgZXJyLCBjdGltZSwgc2VsZi5lY29kZSwgZW5j CiAgICAgICAgICAgICAgICAgKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgb3V0X2NvbXBs ZXRlZCA9IGVycl9jb21wbGV0ZWQgPSBGYWxzZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9v bHMvc2NoZW1hX2RpZmYvZGlyZWN0b3J5X2NvbXBhcmUucHkgYi93ZWIvcGdhZG1pbi90b29scy9z Y2hlbWFfZGlmZi9kaXJlY3RvcnlfY29tcGFyZS5weQppbmRleCAyODBiZWJiZS4uOGExZjUzNDgg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL2RpcmVjdG9yeV9jb21w YXJlLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NjaGVtYV9kaWZmL2RpcmVjdG9yeV9jb21w YXJlLnB5CkBAIC00MTgsMTggKzQxOCwxOCBAQCBkZWYgYXJlX2xpc3RzX2lkZW50aWNhbChzb3Vy Y2VfbGlzdCwgdGFyZ2V0X2xpc3QsIGlnbm9yZV9rZXlzKToKICAgICBpZiBzb3VyY2VfbGlzdCBp cyBOb25lIG9yIHRhcmdldF9saXN0IGlzIE5vbmUgb3IgXAogICAgICAgICAgICAgbGVuKHNvdXJj ZV9saXN0KSAhPSBsZW4odGFyZ2V0X2xpc3QpOgogICAgICAgICByZXR1cm4gRmFsc2UKLSAgICBl bHNlOgotICAgICAgICBmb3IgaW5kZXggaW4gcmFuZ2UobGVuKHNvdXJjZV9saXN0KSk6Ci0gICAg ICAgICAgICAjIENoZWNrIHRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBpZiBpdCBpcyBhbiBkaWN0aW9u YXJ5IHRoZW4KLSAgICAgICAgICAgICMgY2FsbCBhcmVfZGljdGlvbmFyaWVzX2lkZW50aWNhbCgp IGZ1bmN0aW9uLgotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzb3VyY2VfbGlzdFtpbmRleF0s IGRpY3QpOgotICAgICAgICAgICAgICAgIGlmIG5vdCBhcmVfZGljdGlvbmFyaWVzX2lkZW50aWNh bChzb3VyY2VfbGlzdFtpbmRleF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRhcmdldF9saXN0W2luZGV4XSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlX2tleXMpOgotICAgICAgICAgICAg ICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg aWYgc291cmNlX2xpc3RbaW5kZXhdICE9IHRhcmdldF9saXN0W2luZGV4XToKLSAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBmb3IgaW5kZXggaW4gcmFuZ2UobGVuKHNvdXJj ZV9saXN0KSk6CisgICAgICAgICMgQ2hlY2sgdGhlIHR5cGUgb2YgdGhlIHZhbHVlIGlmIGl0IGlz IGFuIGRpY3Rpb25hcnkgdGhlbgorICAgICAgICAjIGNhbGwgYXJlX2RpY3Rpb25hcmllc19pZGVu dGljYWwoKSBmdW5jdGlvbi4KKyAgICAgICAgaWYgaXNpbnN0YW5jZShzb3VyY2VfbGlzdFtpbmRl eF0sIGRpY3QpOgorICAgICAgICAgICAgaWYgbm90IGFyZV9kaWN0aW9uYXJpZXNfaWRlbnRpY2Fs KHNvdXJjZV9saXN0W2luZGV4XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0YXJnZXRfbGlzdFtpbmRleF0sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWdub3JlX2tleXMpOgorICAgICAgICAgICAgICAgIHJldHVy biBGYWxzZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgc291cmNlX2xpc3RbaW5kZXhd ICE9IHRhcmdldF9saXN0W2luZGV4XToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAg ICByZXR1cm4gVHJ1ZQogCiAKQEAgLTQ1OSwxNSArNDU5LDE1IEBAIGRlZiBhcmVfZGljdGlvbmFy aWVzX2lkZW50aWNhbChzb3VyY2VfZGljdCwgdGFyZ2V0X2RpY3QsIGlnbm9yZV9rZXlzKToKICAg ICAgICAgY3VycmVudF9hcHAubG9nZ2VyLmRlYnVnKCJTY2hlbWEgRGlmZjogTnVtYmVyIG9mIGtl eXMgYXJlIGRpZmZlcmVudCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW4g c291cmNlIGFuZCB0YXJnZXQiKQogICAgICAgICByZXR1cm4gRmFsc2UKLSAgICBlbHNlOgotICAg ICAgICAjIElmIG51bWJlciBvZiBrZXlzIGFyZSBzYW1lIGJ1dCBrZXkgaXMgbm90IHByZXNlbnQg aW4gdGFyZ2V0IHRoZW4KLSAgICAgICAgIyByZXR1cm4gRmFsc2UKLSAgICAgICAgZm9yIGtleSBp biBzcmNfb25seToKLSAgICAgICAgICAgIGlmIGtleSBub3QgaW4gdGFyX29ubHk6Ci0gICAgICAg ICAgICAgICAgY3VycmVudF9hcHAubG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICAgICAi U2NoZW1hIERpZmY6IE51bWJlciBvZiBrZXlzIGFyZSBzYW1lIGJ1dCBrZXkgaXMgbm90IgotICAg ICAgICAgICAgICAgICAgICAiIHByZXNlbnQgaW4gdGFyZ2V0IikKLSAgICAgICAgICAgICAgICBy ZXR1cm4gRmFsc2UKKworICAgICMgSWYgbnVtYmVyIG9mIGtleXMgYXJlIHNhbWUgYnV0IGtleSBp cyBub3QgcHJlc2VudCBpbiB0YXJnZXQgdGhlbgorICAgICMgcmV0dXJuIEZhbHNlCisgICAgZm9y IGtleSBpbiBzcmNfb25seToKKyAgICAgICAgaWYga2V5IG5vdCBpbiB0YXJfb25seToKKyAgICAg ICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICAgICAiU2NoZW1h IERpZmY6IE51bWJlciBvZiBrZXlzIGFyZSBzYW1lIGJ1dCBrZXkgaXMgbm90IgorICAgICAgICAg ICAgICAgICIgcHJlc2VudCBpbiB0YXJnZXQiKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAK ICAgICBmb3Iga2V5IGluIHNvdXJjZV9kaWN0LmtleXMoKToKICAgICAgICAgIyBDb250aW51ZSBp ZiBrZXkgaXMgYXZhaWxhYmxlIGluIGlnbm9yZV9rZXlzCkBAIC00OTEsMTcgKzQ5MSw5IEBAIGRl ZiBhcmVfZGljdGlvbmFyaWVzX2lkZW50aWNhbChzb3VyY2VfZGljdCwgdGFyZ2V0X2RpY3QsIGln bm9yZV9rZXlzKToKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNvdXJjZV92YWx1ZSA9IHNv dXJjZV9kaWN0W2tleV0KICAgICAgICAgICAgIHRhcmdldF92YWx1ZSA9IHRhcmdldF9kaWN0W2tl eV0KLQotICAgICAgICAgICAgIyBJZiBpZ25vcmVfd2hpdGVzcGFjZXMgaXMgVHJ1ZSB0aGVuIGNo ZWNrIHRoZSBzb3VyY2VfdmFsdWUgYW5kCi0gICAgICAgICAgICAjIHRhcmdldF92YWx1ZSBpZiBv ZiB0eXBlIHN0cmluZy4gSWYgdGhlIHZhbHVlcyBpcyBvZiB0eXBlIHN0cmluZwotICAgICAgICAg ICAgIyB0aGVuIHVzaW5nIHRyYW5zbGF0ZSBmdW5jdGlvbiBpZ25vcmUgYWxsIHRoZSB3aGl0ZXNw YWNlcy4KLSAgICAgICAgICAgIGlmIGlnbm9yZV93aGl0ZXNwYWNlczoKLSAgICAgICAgICAgICAg ICBpZiBpc2luc3RhbmNlKHNvdXJjZV92YWx1ZSwgc3RyKToKLSAgICAgICAgICAgICAgICAgICAg c291cmNlX3ZhbHVlID0gc291cmNlX3ZhbHVlLnRyYW5zbGF0ZSgKLSAgICAgICAgICAgICAgICAg ICAgICAgIHN0ci5tYWtldHJhbnMoJycsICcnLCBzdHJpbmcud2hpdGVzcGFjZSkpCi0gICAgICAg ICAgICAgICAgaWYgaXNpbnN0YW5jZSh0YXJnZXRfdmFsdWUsIHN0cik6Ci0gICAgICAgICAgICAg ICAgICAgIHRhcmdldF92YWx1ZSA9IHRhcmdldF92YWx1ZS50cmFuc2xhdGUoCi0gICAgICAgICAg ICAgICAgICAgICAgICBzdHIubWFrZXRyYW5zKCcnLCAnJywgc3RyaW5nLndoaXRlc3BhY2UpKQor ICAgICAgICAgICAgIyBDaGVjayBpZiBpZ25vcmUgd2hpdGVzcGFjZXMgb3Igbm90LgorICAgICAg ICAgICAgc291cmNlX3ZhbHVlLCB0YXJnZXRfdmFsdWUgPSBjaGVja19mb3JfaWdub3JlX3doaXRl c3BhY2VzKAorICAgICAgICAgICAgICAgIGlnbm9yZV93aGl0ZXNwYWNlcywgc291cmNlX3ZhbHVl LCB0YXJnZXRfdmFsdWUpCiAKICAgICAgICAgICAgICMgV2UgbmVlZCBhIHByb3BlciBzb2x1dGlv biBhcyBzb21ldGltZXMgd2Ugb2JzZXJ2ZSB0aGF0CiAgICAgICAgICAgICAjIHNvdXJjZV92YWx1 ZSBpcyAnJyBhbmQgdGFyZ2V0X3ZhbHVlIGlzIE5vbmUgb3IgdmljZSB2ZXJzYQpAQCAtNTIyLDYg KzUxNCwyOCBAQCBkZWYgYXJlX2RpY3Rpb25hcmllc19pZGVudGljYWwoc291cmNlX2RpY3QsIHRh cmdldF9kaWN0LCBpZ25vcmVfa2V5cyk6CiAgICAgcmV0dXJuIFRydWUKIAogCitkZWYgY2hlY2tf Zm9yX2lnbm9yZV93aGl0ZXNwYWNlcyhpZ25vcmVfd2hpdGVzcGFjZXMsIHNvdXJjZV92YWx1ZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF92YWx1ZSk6CisgICAgIiIi CisgICAgSWYgaWdub3JlX3doaXRlc3BhY2VzIGlzIFRydWUgdGhlbiBjaGVjayB0aGUgc291cmNl X3ZhbHVlIGFuZAorICAgIHRhcmdldF92YWx1ZSBpZiBvZiB0eXBlIHN0cmluZy4gSWYgdGhlIHZh bHVlcyBpcyBvZiB0eXBlIHN0cmluZworICAgIHRoZW4gdXNpbmcgdHJhbnNsYXRlIGZ1bmN0aW9u IGlnbm9yZSBhbGwgdGhlIHdoaXRlc3BhY2VzLgorICAgIDpwYXJhbSBpZ25vcmVfd2hpdGVzcGFj ZXM6IGZsYWcgdG8gY2hlY2sgaWdub3JlIHdoaXRlc3BhY2UuCisgICAgOnBhcmFtIHNvdXJjZV92 YWx1ZTogc291cmNlIHNjaGVtYSBkaWZmIHZhbHVlCisgICAgOnBhcmFtIHRhcmdldF92YWx1ZTog dGFyZ2V0IHNjaGVtYSBkaWZmIHZhbHVlCisgICAgOnJldHVybjogcmV0dXJuIHNvdXJjZSBhbmQg dGFyZ2V0IHZhbHVlcy4KKyAgICAiIiIKKyAgICBpZiBpZ25vcmVfd2hpdGVzcGFjZXM6CisgICAg ICAgIGlmIGlzaW5zdGFuY2Uoc291cmNlX3ZhbHVlLCBzdHIpOgorICAgICAgICAgICAgc291cmNl X3ZhbHVlID0gc291cmNlX3ZhbHVlLnRyYW5zbGF0ZSgKKyAgICAgICAgICAgICAgICBzdHIubWFr ZXRyYW5zKCcnLCAnJywgc3RyaW5nLndoaXRlc3BhY2UpKQorICAgICAgICBpZiBpc2luc3RhbmNl KHRhcmdldF92YWx1ZSwgc3RyKToKKyAgICAgICAgICAgIHRhcmdldF92YWx1ZSA9IHRhcmdldF92 YWx1ZS50cmFuc2xhdGUoCisgICAgICAgICAgICAgICAgc3RyLm1ha2V0cmFucygnJywgJycsIHN0 cmluZy53aGl0ZXNwYWNlKSkKKworICAgIHJldHVybiBzb3VyY2VfdmFsdWUsIHRhcmdldF92YWx1 ZQorCisKIGRlZiBkaXJlY3RvcnlfZGlmZihzb3VyY2VfZGljdCwgdGFyZ2V0X2RpY3QsIGlnbm9y ZV9rZXlzPVtdLCBkaWZmZXJlbmNlPU5vbmUpOgogICAgICIiIgogICAgIFRoaXMgZnVuY3Rpb24g aXMgdXNlZCB0byByZWN1cnNpdmVseSBjb21wYXJlIHR3byBkaWN0aW9uYXJpZXMgYW5kCg== --000000000000afd76e05b93bc78b--