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 1iU1cY-0003KW-3Y for pgadmin-hackers@arkaria.postgresql.org; Mon, 11 Nov 2019 04:48:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1iU1cV-00032L-Qt for pgadmin-hackers@arkaria.postgresql.org; Mon, 11 Nov 2019 04:48:07 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1iU1cV-0002vx-45 for pgadmin-hackers@lists.postgresql.org; Mon, 11 Nov 2019 04:48:07 +0000 Received: from mail-lj1-x22d.google.com ([2a00:1450:4864:20::22d]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1iU1ZT-0004Z6-4P for pgadmin-hackers@postgresql.org; Mon, 11 Nov 2019 04:48:05 +0000 Received: by mail-lj1-x22d.google.com with SMTP id q2so12262442ljg.7 for ; Sun, 10 Nov 2019 20:44:58 -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=WwBoav0Axn1aj3iEn2zMvOOhl9B6kmV6eC0xaTnjTEU=; b=p4niReHyI2uPOzGS4SLQZWIOckuwmusMzFWuqAX/sftHstz0AQvVSeUoaMzdNrCKVY Shvo/nUnLDN3cRFOGUhRNwe8CepDTZjeUI/FTbGnDBZ/AsOWlCNUbvnn02bzOqY59+GV a44yA30/+qZhjE668eBu4C1CV4B+3Fpg4uDWD4oKS3nc/Y7n2/eM1M3QDh4bAz3CrhiC OgYKde3bj1ahG81s90kHE5PWjJfKPcrNtwXqUBKDCOR9TPUFf/jpX5+kFgXiTdhdXQTh IvjKSKjS1xZMBwpav2agcfseIT5+mJC2sy15Beyc8F7eB7PUuAhTHv7Fi7zvTS0uzAA9 RfoA== 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=WwBoav0Axn1aj3iEn2zMvOOhl9B6kmV6eC0xaTnjTEU=; b=c37tv2iYv3WK5kG0drHrQu6BBhM5mmpbm29U8wxi9I3ZqQ6La1xkmnmRxsiLg1FUdG 6HsQeqsUYX0OsXcjyKqK1530X2tZDICnhexjEmD5tRKDtMCFGzc1MuLTO8sDpOfS+A1A 4vLYLXVx0OY5FRKn1UvmOd6HUHuOzcxKkaNfcXYHyiM0JuFyQmjSRUPF8P007idKIudm EIVAyXLRO0JDxa22i0McqJ0D1fMsI59aRb/yzNNe6B0dR37hRC641iv558jCyaow8DGu fdWSxdKR9JQaVu4pqYphk2Ry3cD9JSVjWr+DnvduHnb/7JbZTaO8P9AhIzi4nuo6W66g 1O2Q== X-Gm-Message-State: APjAAAWv8ZtsPebQGAYmaEEg5EB5Nvk4TJA9uK8b294QziR4K90kVhDJ AFWmRNGaZIL34mKB+tIppCWgWkTvdSCub/kFEGmL8HJqe5wH2WlWq/VfLiOwyvzhGlep9CSzZun Qj/nE3IX29cBCoCH4yT25BKNFG4brarIuA5KenPnwOiKHIJ5uc9E+lBt2fIskBMRj3rYUYtzJdT 8dxi1I9e0HthYaI+8TjphlQu7prqak9GRkMgSrrwirWrcJHmiYyX1JSw== X-Google-Smtp-Source: APXvYqzTN8TS0ypjWeoljDO3M1PzmSKGJN06qzOBlCy/dR/6iWGrRpDBP3FvzGr+GBSy5c2f1kImjNIcsqDhT4lAhQA= X-Received: by 2002:a2e:7a07:: with SMTP id v7mr13867900ljc.208.1573447496001; Sun, 10 Nov 2019 20:44:56 -0800 (PST) MIME-Version: 1.0 From: Shubham Agarwal Date: Mon, 11 Nov 2019 10:14:55 +0530 Message-ID: Subject: Fixes for pgAdmin feature tests To: pgadmin-hackers Content-Type: multipart/mixed; boundary="00000000000012a45805970acbaf" X-CLOUD-SEC-AV-Info: edb,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 --00000000000012a45805970acbaf Content-Type: multipart/alternative; boundary="00000000000012a45505970acbad" --00000000000012a45505970acbad Content-Type: text/plain; charset="UTF-8" Hi Team, Attached is the patch containing fixes for the failed feature test cases. This patch contains- 1. Newly created function for traversing the browser tree. 2. Some synchronization issue fixes. 3. Modified locators. 4. Test cases fix for the recent commits. -- Thanks & Regards, Shubham Agarwal EnterpriseDB Corporation The Postgres Database Company --00000000000012a45505970acbad Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Team,

Attached is the patch containing fix= es for the failed feature test cases.
This patch contains-
<= div>1. Newly created function for traversing the browser tree.
2.= Some synchronization issue fixes.
3. Modified locators.
4. Test cases fix for the recent commits.

--
Thanks &am= p; Regards,
Shubham Agarwal
EnterpriseDB Corp= oration

The Postgres Da= tabase Company
--00000000000012a45505970acbad-- --00000000000012a45805970acbaf Content-Type: application/octet-stream; name="feature_test_fix.patch" Content-Disposition: attachment; filename="feature_test_fix.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k2ty08s40 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvYnJvd3Nlcl90b29sX2Jhcl90 ZXN0LnB5IGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9icm93c2VyX3Rvb2xfYmFyX3Rlc3Qu cHkKaW5kZXggOWUxZmY3NGNiLi4yOGZjYjQwNjggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Zl YXR1cmVfdGVzdHMvYnJvd3Nlcl90b29sX2Jhcl90ZXN0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Zl YXR1cmVfdGVzdHMvYnJvd3Nlcl90b29sX2Jhcl90ZXN0LnB5CkBAIC00Nyw3ICs0Nyw3IEBAIGNs YXNzIEJyb3dzZXJUb29sQmFyRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAg ICAgICAgZmlsZT1zeXMuc3RkZXJyLCBlbmQ9IiIpCiAgICAgICAgIHNlbGYudGVzdF92aWV3X2Rh dGFfdG9vbF9idXR0b24oKQogICAgICAgICBwcmludCgiT0suIiwgZmlsZT1zeXMuc3RkZXJyKQot CisgICAgICAgICMKICAgICAgICAgIyBDaGVjayBmb3IgZmlsdGVyZWQgcm93cyBidXR0b24KICAg ICAgICAgcHJpbnQoIlxuRmlsdGVyZWQgUm93cyBUb29sQmFyIEJ1dHRvbiAiLAogICAgICAgICAg ICAgICBmaWxlPXN5cy5zdGRlcnIsIGVuZD0iIikKQEAgLTYwLDkgKzYwLDkgQEAgY2xhc3MgQnJv d3NlclRvb2xCYXJGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnRlc3RfdGFibGVfbmFtZSkKIAogICAgIGRlZiB0ZXN0X3F1 ZXJ5X3Rvb2xfYnV0dG9uKHNlbGYpOgotICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fdHJl ZV9pdGVtKHNlbGYuc2VydmVyWyduYW1lJ10pCi0gICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Bl bl90cmVlX2l0ZW0oJ0RhdGFiYXNlcycpCi0gICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl90 cmVlX2l0ZW0oc2VsZi50ZXN0X2RiKQorICAgICAgICBzZWxmLnBhZ2UuZXhwYW5kX2RhdGFiYXNl X25vZGUoCisgICAgICAgICAgICBzZWxmLnNlcnZlclsnbmFtZSddLAorICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sIHNlbGYudGVzdF9kYikKICAgICAgICAgc2VsZi5wYWdl LnJldHJ5X2NsaWNrKAogICAgICAgICAgICAgKEJ5LkNTU19TRUxFQ1RPUiwKICAgICAgICAgICAg ICBCcm93c2VyVG9vbEJhckxvY2F0b3JzLm9wZW5fcXVlcnlfdG9vbF9idXR0b25fY3NzKSwKQEAg LTcwLDkgKzcwLDEyIEBAIGNsYXNzIEJyb3dzZXJUb29sQmFyRmVhdHVyZVRlc3QoQmFzZUZlYXR1 cmVUZXN0KToKIAogICAgIGRlZiB0ZXN0X3ZpZXdfZGF0YV90b29sX2J1dHRvbihzZWxmKToKICAg ICAgICAgc2VsZi5wYWdlLnNlbGVjdF90cmVlX2l0ZW0oc2VsZi50ZXN0X2RiKQotICAgICAgICBz ZWxmLnBhZ2UudG9nZ2xlX29wZW5fdHJlZV9pdGVtKCdTY2hlbWFzJykKLSAgICAgICAgc2VsZi5w YWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRlbSgncHVibGljJykKLSAgICAgICAgc2VsZi5wYWdlLnRv Z2dsZV9vcGVuX3RhYmxlc19ub2RlKCkKKyAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3Nj aGVtYV9ub2RlKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ25hbWUnXSwgc2VsZi5zZXJ2ZXJb J2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICBzZWxmLnRlc3RfZGIsICdwdWJsaWMnKQorICAg ICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fdGFibGVzX25vZGUoCisgICAgICAgICAgICBzZWxm LnNlcnZlclsnbmFtZSddLCBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAg IHNlbGYudGVzdF9kYiwgJ3B1YmxpYycpCiAgICAgICAgIHNlbGYucGFnZS5zZWxlY3RfdHJlZV9p dGVtKHNlbGYudGVzdF90YWJsZV9uYW1lKQogCiAgICAgICAgIHNlbGYucGFnZS5yZXRyeV9jbGlj aygKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvY29weV9zZWxlY3RlZF9x dWVyeV9yZXN1bHRzX2ZlYXR1cmVfdGVzdC5weSBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMv Y29weV9zZWxlY3RlZF9xdWVyeV9yZXN1bHRzX2ZlYXR1cmVfdGVzdC5weQppbmRleCA5YmI0NTg3 MTAuLjlhYzhiZTZmNCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9jb3B5 X3NlbGVjdGVkX3F1ZXJ5X3Jlc3VsdHNfZmVhdHVyZV90ZXN0LnB5CisrKyBiL3dlYi9wZ2FkbWlu L2ZlYXR1cmVfdGVzdHMvY29weV9zZWxlY3RlZF9xdWVyeV9yZXN1bHRzX2ZlYXR1cmVfdGVzdC5w eQpAQCAtMzksOSArMzksOSBAQCBjbGFzcyBDb3B5U2VsZWN0ZWRRdWVyeVJlc3VsdHNGZWF0dXJl VGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYudGVz dF9kYiwgc2VsZi50ZXN0X3RhYmxlX25hbWUpCiAKICAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAg ICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRlbShzZWxmLnNlcnZlclsnbmFtZSdd KQotICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fdHJlZV9pdGVtKCdEYXRhYmFzZXMnKQot ICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fdHJlZV9pdGVtKHNlbGYudGVzdF9kYikKKyAg ICAgICAgc2VsZi5wYWdlLmV4cGFuZF9kYXRhYmFzZV9ub2RlKAorICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJbJ25hbWUnXSwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLCBz ZWxmLnRlc3RfZGIpCiAgICAgICAgIHNlbGYucGFnZS5vcGVuX3F1ZXJ5X3Rvb2woKQogCiAgICAg ICAgIHNlbGYucGFnZS5maWxsX2NvZGVtaXJyb3JfYXJlYV93aXRoKApAQCAtNzAsNyArNzAsNyBA QCBjbGFzcyBDb3B5U2VsZWN0ZWRRdWVyeVJlc3VsdHNGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRl c3QpOgogICAgICAgICAgICAgUXVlcnlUb29sTG9jYXRvcnMuY29weV9idXR0b25fY3NzKQogICAg ICAgICBjb3B5X2J1dHRvbi5jbGljaygpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnIlNv bWUtTmFtZSJcdCI2Ilx0InNvbWUgaW5mbyInLAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCci U29tZS1OYW1lIlx0Nlx0InNvbWUgaW5mbyInLAogICAgICAgICAgICAgICAgICAgICAgICAgIHB5 cGVyY2xpcC5wYXN0ZSgpKQogCiAgICAgZGVmIF9jb3BpZXNfcm93c193aXRoX2hlYWRlcihzZWxm KToKQEAgLTg3LDkgKzg3LDkgQEAgY2xhc3MgQ29weVNlbGVjdGVkUXVlcnlSZXN1bHRzRmVhdHVy ZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgY29weV9idXR0b24uY2xpY2soKQogCiAg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIiIiXCJzb21lX2NvbHVtbiJcdCJ2YWx1ZSJcdCJkZXRh aWxzIgotXCJTb21lLU5hbWUiXHQiNiJcdCJzb21lIGluZm8iCi1cIlNvbWUtT3RoZXItTmFtZSJc dCIyMiJcdCJzb21lIG90aGVyIGluZm8iCi1cIllldC1Bbm90aGVyLU5hbWUiXHQiMTQiXHQiY29v bCBpbmZvXCIiIiIsIHB5cGVyY2xpcC5wYXN0ZSgpKQorXCJTb21lLU5hbWUiXHQ2XHQic29tZSBp bmZvIgorXCJTb21lLU90aGVyLU5hbWUiXHQyMlx0InNvbWUgb3RoZXIgaW5mbyIKK1wiWWV0LUFu b3RoZXItTmFtZSJcdDE0XHQiY29vbCBpbmZvXCIiIiIsIHB5cGVyY2xpcC5wYXN0ZSgpKQogCiAg ICAgZGVmIF9jb3BpZXNfY29sdW1ucyhzZWxmKToKICAgICAgICAgcHlwZXJjbGlwLmNvcHkoIm9s ZCBjbGlwYm9hcmQgY29udGVudHMiKQpAQCAtMTE2LDcgKzExNiw3IEBAIGNsYXNzIENvcHlTZWxl Y3RlZFF1ZXJ5UmVzdWx0c0ZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgIEFj dGlvbkNoYWlucyhzZWxmLnBhZ2UuZHJpdmVyKS5rZXlfZG93bigKICAgICAgICAgICAgIEtleXMu Q09OVFJPTCkuc2VuZF9rZXlzKCdjJykua2V5X3VwKEtleXMuQ09OVFJPTCkucGVyZm9ybSgpCiAK LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnIlNvbWUtTmFtZSJcdCI2Ilx0InNvbWUgaW5mbyIn LAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCciU29tZS1OYW1lIlx0Nlx0InNvbWUgaW5mbyIn LAogICAgICAgICAgICAgICAgICAgICAgICAgIHB5cGVyY2xpcC5wYXN0ZSgpKQogCiAgICAgZGVm IF9jb3BpZXNfY29sdW1uX3VzaW5nX2tleWJvYXJkX3Nob3J0Y3V0KHNlbGYpOgpAQCAtMTU0LDgg KzE1NCw4IEBAIGNsYXNzIENvcHlTZWxlY3RlZFF1ZXJ5UmVzdWx0c0ZlYXR1cmVUZXN0KEJhc2VG ZWF0dXJlVGVzdCk6CiAgICAgICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyCiAgICAgICAgICkua2V5 X2Rvd24oS2V5cy5DT05UUk9MKS5zZW5kX2tleXMoJ2MnKS5rZXlfdXAoS2V5cy5DT05UUk9MKS5w ZXJmb3JtKCkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCIiIlwiU29tZS1PdGhlci1OYW1l Ilx0IjIyIgotIllldC1Bbm90aGVyLU5hbWUiXHQiMTRcIiIiIiwgcHlwZXJjbGlwLnBhc3RlKCkp CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICAnIlNvbWUtT3RoZXItTmFt ZSJcdDIyXG4iWWV0LUFub3RoZXItTmFtZSJcdDE0JywgcHlwZXJjbGlwLnBhc3RlKCkpCiAKICAg ICBkZWYgX3NoaWZ0X3Jlc2l6ZXNfcmVjdGFuZ3VsYXJfc2VsZWN0aW9uKHNlbGYpOgogICAgICAg ICBweXBlcmNsaXAuY29weSgib2xkIGNsaXBib2FyZCBjb250ZW50cyIpCkBAIC0xODAsOCArMTgw LDggQEAgY2xhc3MgQ29weVNlbGVjdGVkUXVlcnlSZXN1bHRzRmVhdHVyZVRlc3QoQmFzZUZlYXR1 cmVUZXN0KToKICAgICAgICAgICAgIEtleXMuQ09OVFJPTAogICAgICAgICApLnNlbmRfa2V5cygn YycpLmtleV91cChLZXlzLkNPTlRST0wpLnBlcmZvcm0oKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWwoIiIiXCJTb21lLU90aGVyLU5hbWUiXHQiMjIiXHQic29tZSBvdGhlciBpbmZvIgotIlll dC1Bbm90aGVyLU5hbWUiXHQiMTQiXHQiY29vbCBpbmZvXCIiIiIsIHB5cGVyY2xpcC5wYXN0ZSgp KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCIiIlwiU29tZS1PdGhlci1OYW1lIlx0MjJcdCJz b21lIG90aGVyIGluZm8iCisiWWV0LUFub3RoZXItTmFtZSJcdDE0XHQiY29vbCBpbmZvXCIiIiIs IHB5cGVyY2xpcC5wYXN0ZSgpKQogCiAgICAgZGVmIF9zaGlmdF9yZXNpemVzX2NvbHVtbl9zZWxl Y3Rpb24oc2VsZik6CiAgICAgICAgIHB5cGVyY2xpcC5jb3B5KCJvbGQgY2xpcGJvYXJkIGNvbnRl bnRzIikKQEAgLTE5OCw5ICsxOTgsNyBAQCBjbGFzcyBDb3B5U2VsZWN0ZWRRdWVyeVJlc3VsdHNG ZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICAgICAgS2V5cy5DT05UUk9MKS5z ZW5kX2tleXMoJ2MnKS5rZXlfdXAoS2V5cy5DT05UUk9MKS5wZXJmb3JtKCkKIAogICAgICAgICBz ZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgIiIiXCJTb21lLU5hbWUiXHQiNiIKLSJTb21l LU90aGVyLU5hbWUiXHQiMjIiCi0iWWV0LUFub3RoZXItTmFtZSJcdCIxNFwiIiIiLAorICAgICAg ICAgICAgJyJTb21lLU5hbWUiXHQ2XG4iU29tZS1PdGhlci1OYW1lIlx0MjJcbiJZZXQtQW5vdGhl ci1OYW1lIlx0MTQnLAogICAgICAgICAgICAgcHlwZXJjbGlwLnBhc3RlKCkpCiAKICAgICBkZWYg X21vdXNldXBfb3V0c2lkZV9ncmlkX3N0aWxsX21ha2VzX2Ffc2VsZWN0aW9uKHNlbGYpOgpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9maWxlX21hbmFnZXJfdGVzdC5weSBi L3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvZmlsZV9tYW5hZ2VyX3Rlc3QucHkKaW5kZXggZGQy YTc4NTVmLi5jNzZmMjAzODYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMv ZmlsZV9tYW5hZ2VyX3Rlc3QucHkKKysrIGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9maWxl X21hbmFnZXJfdGVzdC5weQpAQCAtNjAsOSArNjAsOSBAQCBjbGFzcyBDaGVja0ZpbGVNYW5hZ2Vy RmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgcHJpbnQoIk9LLiIsIGZpbGU9 c3lzLnN0ZGVycikKIAogICAgIGRlZiBfbmF2aWdhdGVfdG9fcXVlcnlfdG9vbChzZWxmKToKLSAg ICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRlbShzZWxmLnNlcnZlclsnbmFtZSdd KQotICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fdHJlZV9pdGVtKCdEYXRhYmFzZXMnKQot ICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fdHJlZV9pdGVtKHNlbGYudGVzdF9kYikKKyAg ICAgICAgc2VsZi5wYWdlLmV4cGFuZF9kYXRhYmFzZV9ub2RlKAorICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJbJ25hbWUnXSwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLCBz ZWxmLnRlc3RfZGIpCiAgICAgICAgIHNlbGYucGFnZS5vcGVuX3F1ZXJ5X3Rvb2woKQogCiAgICAg ZGVmIF9jcmVhdGVfbmV3X2ZpbGUoc2VsZik6CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9mZWF0 dXJlX3Rlc3RzL3BnX2RhdGF0eXBlX3ZhbGlkYXRpb25fdGVzdC5weSBiL3dlYi9wZ2FkbWluL2Zl YXR1cmVfdGVzdHMvcGdfZGF0YXR5cGVfdmFsaWRhdGlvbl90ZXN0LnB5CmluZGV4IDJkZTg5N2Nj NS4uZWI5M2JlN2NmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3BnX2Rh dGF0eXBlX3ZhbGlkYXRpb25fdGVzdC5weQorKysgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3Rz L3BnX2RhdGF0eXBlX3ZhbGlkYXRpb25fdGVzdC5weQpAQCAtMTQ5LDkgKzE0OSw5IEBAIGNsYXNz IFBHRGF0YXlwZUZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgIHNlbGYucGFn ZS5yZW1vdmVfc2VydmVyKHNlbGYuc2VydmVyKQogCiAgICAgZGVmIF9zY2hlbWFfbm9kZV9leHBh bmRhYmxlKHNlbGYpOgotICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fdHJlZV9pdGVtKHNl bGYuc2VydmVyWyduYW1lJ10pCi0gICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl90cmVlX2l0 ZW0oJ0RhdGFiYXNlcycpCi0gICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl90cmVlX2l0ZW0o c2VsZi50ZXN0X2RiKQorICAgICAgICBzZWxmLnBhZ2UuZXhwYW5kX2RhdGFiYXNlX25vZGUoCisg ICAgICAgICAgICBzZWxmLnNlcnZlclsnbmFtZSddLAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJb J2RiX3Bhc3N3b3JkJ10sIHNlbGYudGVzdF9kYikKIAogICAgIGRlZiBfY2hlY2tfZGF0YXR5cGUo c2VsZik6CiAgICAgICAgICMgU2xpY2sgZ3JpZCBkb2VzIG5vdCByZW5kZXIgYWxsIHRoZSBjb2x1 bW4gaWYgdmlld3BvcnQgaXMgbm90IGVub3VnaApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vZmVh dHVyZV90ZXN0cy9wZ191dGlsaXRpZXNfYmFja3VwX3Jlc3RvcmVfdGVzdC5weSBiL3dlYi9wZ2Fk bWluL2ZlYXR1cmVfdGVzdHMvcGdfdXRpbGl0aWVzX2JhY2t1cF9yZXN0b3JlX3Rlc3QucHkKaW5k ZXggNmI5OWZkYjdkLi44NjU5ZGQwZTAgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVf dGVzdHMvcGdfdXRpbGl0aWVzX2JhY2t1cF9yZXN0b3JlX3Rlc3QucHkKKysrIGIvd2ViL3BnYWRt aW4vZmVhdHVyZV90ZXN0cy9wZ191dGlsaXRpZXNfYmFja3VwX3Jlc3RvcmVfdGVzdC5weQpAQCAt NjQsOSArNjQsOSBAQCBjbGFzcyBQR1V0aWxpdGllc0JhY2t1cEZlYXR1cmVUZXN0KEJhc2VGZWF0 dXJlVGVzdCk6CiAgICAgICAgIHRlc3RfZ3VpX2hlbHBlci5jbG9zZV9iZ3Byb2Nlc3NfcG9wdXAo c2VsZikKIAogICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICBzZWxmLnBhZ2UudG9nZ2xl X29wZW5fc2VydmVyKHNlbGYuc2VydmVyWyduYW1lJ10pCi0gICAgICAgIHNlbGYucGFnZS50b2dn bGVfb3Blbl90cmVlX2l0ZW0oJ0RhdGFiYXNlcycpCi0gICAgICAgIHNlbGYucGFnZS50b2dnbGVf b3Blbl90cmVlX2l0ZW0oc2VsZi5kYXRhYmFzZV9uYW1lKQorICAgICAgICBzZWxmLnBhZ2UuZXhw YW5kX2RhdGFiYXNlX25vZGUoCisgICAgICAgICAgICBzZWxmLnNlcnZlclsnbmFtZSddLAorICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sIHNlbGYuZGF0YWJhc2VfbmFtZSkK IAogICAgICAgICAjIEJhY2t1cAogICAgICAgICBzZWxmLnBhZ2UucmV0cnlfY2xpY2soCkBAIC0x MTUsMTEgKzExNSwxMSBAQCBjbGFzcyBQR1V0aWxpdGllc0JhY2t1cEZlYXR1cmVUZXN0KEJhc2VG ZWF0dXJlVGVzdCk6CiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc3RhdHVzLCAiU3VjY2Vz c2Z1bGx5IGNvbXBsZXRlZC4iKQogCi0gICAgICAgIHNlbGYucGFnZS5maW5kX2J5X2Nzc19zZWxl Y3RvcigKLSAgICAgICAgICAgIE5hdk1lbnVMb2NhdG9ycy5zdGF0dXNfYWxlcnRpZmllcl9tb3Jl X2J0bl9jc3MpLmNsaWNrKCkKLQotICAgICAgICBzZWxmLndhaXQudW50aWwoRUMudmlzaWJpbGl0 eV9vZl9lbGVtZW50X2xvY2F0ZWQoCi0gICAgICAgICAgICAoQnkuWFBBVEgsIE5hdk1lbnVMb2Nh dG9ycy5wcm9jZXNzX3dhdGNoZXJfYWxlcnRmaWVyKSkpCisgICAgICAgIHNlbGYucGFnZS5yZXRy eV9jbGljaygKKyAgICAgICAgICAgIChCeS5DU1NfU0VMRUNUT1IsCisgICAgICAgICAgICAgTmF2 TWVudUxvY2F0b3JzLnN0YXR1c19hbGVydGlmaWVyX21vcmVfYnRuX2NzcyksCisgICAgICAgICAg ICAoQnkuWFBBVEgsCisgICAgICAgICAgICAgTmF2TWVudUxvY2F0b3JzLnByb2Nlc3Nfd2F0Y2hl cl9hbGVydGZpZXIpKQogCiAgICAgICAgIGJhY2t1cF9maWxlID0gTm9uZQogICAgICAgICAjIENo ZWNrIGZvciBYU1MgaW4gQmFja3VwIGRldGFpbHMKQEAgLTE0Myw5ICsxNDMsNyBAQCBjbGFzcyBQ R1V0aWxpdGllc0JhY2t1cEZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgICAg ICAgICAgYmFja3VwX2ZpbGUgPSBjb21tYW5kW2ludChjb21tYW5kLmZpbmQoJy0tZmlsZScpKSAr CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDg6aW50KGNvbW1hbmQuZmlu ZCgnLS1ob3N0JykpIC0gMl0KIAotICAgICAgICBjbG9zZV9idG4gPSBzZWxmLnBhZ2UuZmluZF9i eV94cGF0aCgKLSAgICAgICAgICAgIE5hdk1lbnVMb2NhdG9ycy5wcm9jZXNzX3dhdGNoZXJfY2xv c2VfYnV0dG9uX3hwYXRoKQotICAgICAgICBjbG9zZV9idG4uY2xpY2soKQorICAgICAgICB0ZXN0 X2d1aV9oZWxwZXIuY2xvc2VfcHJvY2Vzc193YXRjaGVyKHNlbGYpCiAKICAgICAgICAgIyBSZXN0 b3JlCiAgICAgICAgIHRvb2xzX21lbnUgPSBzZWxmLmRyaXZlci5maW5kX2VsZW1lbnRfYnlfbGlu a190ZXh0KApAQCAtMTg2LDExICsxODQsMTEgQEAgY2xhc3MgUEdVdGlsaXRpZXNCYWNrdXBGZWF0 dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHN0 YXR1cywgIlN1Y2Nlc3NmdWxseSBjb21wbGV0ZWQuIikKIAotICAgICAgICBzZWxmLnBhZ2UuZmlu ZF9ieV9jc3Nfc2VsZWN0b3IoCi0gICAgICAgICAgICBOYXZNZW51TG9jYXRvcnMuc3RhdHVzX2Fs ZXJ0aWZpZXJfbW9yZV9idG5fY3NzKS5jbGljaygpCi0KLSAgICAgICAgc2VsZi53YWl0LnVudGls KEVDLnZpc2liaWxpdHlfb2ZfZWxlbWVudF9sb2NhdGVkKAotICAgICAgICAgICAgKEJ5LlhQQVRI LCBOYXZNZW51TG9jYXRvcnMucHJvY2Vzc193YXRjaGVyX2FsZXJ0ZmllcikpKQorICAgICAgICBz ZWxmLnBhZ2UucmV0cnlfY2xpY2soCisgICAgICAgICAgICAoQnkuQ1NTX1NFTEVDVE9SLAorICAg ICAgICAgICAgIE5hdk1lbnVMb2NhdG9ycy5zdGF0dXNfYWxlcnRpZmllcl9tb3JlX2J0bl9jc3Mp LAorICAgICAgICAgICAgKEJ5LlhQQVRILAorICAgICAgICAgICAgIE5hdk1lbnVMb2NhdG9ycy5w cm9jZXNzX3dhdGNoZXJfYWxlcnRmaWVyKSkKIAogICAgICAgICAjIENoZWNrIGZvciBYU1MgaW4g UmVzdG9yZSBkZXRhaWxzCiAgICAgICAgIGlmIHNlbGYuaXNfeHNzX2NoZWNrOgpAQCAtMjA2LDkg KzIwNCw3IEBAIGNsYXNzIFBHVXRpbGl0aWVzQmFja3VwRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVU ZXN0KToKIAogICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigicGdfcmVzdG9yZSIsIHN0cihjb21t YW5kKSkKIAotICAgICAgICBjbG9zZV93YXRjaGVyID0gc2VsZi5wYWdlLmZpbmRfYnlfeHBhdGgo Ci0gICAgICAgICAgICBOYXZNZW51TG9jYXRvcnMucHJvY2Vzc193YXRjaGVyX2Nsb3NlX2J1dHRv bl94cGF0aCkKLSAgICAgICAgY2xvc2Vfd2F0Y2hlci5jbGljaygpCisgICAgICAgIHRlc3RfZ3Vp X2hlbHBlci5jbG9zZV9wcm9jZXNzX3dhdGNoZXIoc2VsZikKIAogICAgICAgICBpZiBiYWNrdXBf ZmlsZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKGJhY2t1cF9m aWxlKToKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcGdfdXRpbGl0aWVz X21haW50ZW5hbmNlX3Rlc3QucHkgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3BnX3V0aWxp dGllc19tYWludGVuYW5jZV90ZXN0LnB5CmluZGV4IDVlYjUyMWJlNy4uYjUwYzJiNmZhIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3BnX3V0aWxpdGllc19tYWludGVuYW5j ZV90ZXN0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcGdfdXRpbGl0aWVzX21h aW50ZW5hbmNlX3Rlc3QucHkKQEAgLTkwLDIwICs5MCwyMiBAQCBjbGFzcyBQR1V0aWxpdGllc01h aW50ZW5hbmNlRmVhdHVyZVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgc2VsZi52ZXJp ZnlfY29tbWFuZCgpCiAKICAgICBkZWYgX29wZW5fbWFpbnRlbmFuY2VfZGlhbG9ndWUoc2VsZik6 Ci0gICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl9zZXJ2ZXIoc2VsZi5zZXJ2ZXJbJ25hbWUn XSkKLSAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRlbSgnRGF0YWJhc2VzJykK LSAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRlbShzZWxmLmRhdGFiYXNlX25h bWUpCisgICAgICAgIHNlbGYucGFnZS5leHBhbmRfZGF0YWJhc2Vfbm9kZSgKKyAgICAgICAgICAg IHNlbGYuc2VydmVyWyduYW1lJ10sCisgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dv cmQnXSwgc2VsZi5kYXRhYmFzZV9uYW1lKQogICAgICAgICBpZiBzZWxmLnRlc3RfbGV2ZWwgPT0g J3RhYmxlJzoKLSAgICAgICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl90cmVlX2l0ZW0oJ1Nj aGVtYXMnKQotICAgICAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRlbSgncHVi bGljJykKLSAgICAgICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl90YWJsZXNfbm9kZSgpCisg ICAgICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fc2NoZW1hX25vZGUoc2VsZi5zZXJ2ZXJb J25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRhdGFiYXNlX25hbWUsICdwdWJsaWMnKQorICAgICAgICAg ICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RhYmxlc19ub2RlKHNlbGYuc2VydmVyWyduYW1lJ10s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kYXRhYmFzZV9uYW1lLCAncHVibGljJykKICAgICAgICAgICAgIHNlbGYu cGFnZS5zZWxlY3RfdHJlZV9pdGVtKHNlbGYudGFibGVfbmFtZSkKIAogICAgICAgICBzZWxmLnBh Z2UucmV0cnlfY2xpY2soCiAgICAgICAgICAgICAoQnkuTElOS19URVhULAogICAgICAgICAgICAg IE5hdk1lbnVMb2NhdG9ycy50b29sc19tZW51X2xpbmtfdGV4dCksCiAgICAgICAgICAgICAoQnku Q1NTX1NFTEVDVE9SLCBOYXZNZW51TG9jYXRvcnMubWFpbnRlbmFuY2Vfb2JqX2NzcykpCi0KICAg ICAgICAgbWFpbnRlbmFuY2Vfb2JqID0gc2VsZi53YWl0LnVudGlsKEVDLnZpc2liaWxpdHlfb2Zf ZWxlbWVudF9sb2NhdGVkKAogICAgICAgICAgICAgKEJ5LkNTU19TRUxFQ1RPUiwgTmF2TWVudUxv Y2F0b3JzLm1haW50ZW5hbmNlX29ial9jc3MpKSkKICAgICAgICAgbWFpbnRlbmFuY2Vfb2JqLmNs aWNrKCkKQEAgLTExOCwxMSArMTIwLDEyIEBAIGNsYXNzIFBHVXRpbGl0aWVzTWFpbnRlbmFuY2VG ZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICAgICAgdGVzdF9ndWlfaGVscGVy LmNsb3NlX2JncHJvY2Vzc19wb3B1cChzZWxmKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz KHN0YXR1cywgIlN1Y2Nlc3NmdWxseSBjb21wbGV0ZWQuIikKLSAgICAgICAgc2VsZi5wYWdlLmZp bmRfYnlfY3NzX3NlbGVjdG9yKAotICAgICAgICAgICAgTmF2TWVudUxvY2F0b3JzLnN0YXR1c19h bGVydGlmaWVyX21vcmVfYnRuX2NzcykuY2xpY2soKQogCi0gICAgICAgIHNlbGYud2FpdC51bnRp bChFQy52aXNpYmlsaXR5X29mX2VsZW1lbnRfbG9jYXRlZCgKLSAgICAgICAgICAgIChCeS5YUEFU SCwgTmF2TWVudUxvY2F0b3JzLnByb2Nlc3Nfd2F0Y2hlcl9hbGVydGZpZXIpKSkKKyAgICAgICAg c2VsZi5wYWdlLnJldHJ5X2NsaWNrKAorICAgICAgICAgICAgKEJ5LkNTU19TRUxFQ1RPUiwKKyAg ICAgICAgICAgICBOYXZNZW51TG9jYXRvcnMuc3RhdHVzX2FsZXJ0aWZpZXJfbW9yZV9idG5fY3Nz KSwKKyAgICAgICAgICAgIChCeS5YUEFUSCwKKyAgICAgICAgICAgICBOYXZNZW51TG9jYXRvcnMu cHJvY2Vzc193YXRjaGVyX2FsZXJ0ZmllcikpCiAKICAgICAgICAgY29tbWFuZCA9IHNlbGYucGFn ZS5maW5kX2J5X2Nzc19zZWxlY3RvcigKICAgICAgICAgICAgIE5hdk1lbnVMb2NhdG9ycy4KQEAg LTE0OCwxMyArMTUxLDEyIEBAIGNsYXNzIFBHVXRpbGl0aWVzTWFpbnRlbmFuY2VGZWF0dXJlVGVz dChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIlxuVkFDVVVNIFZFUkJPU0UiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiIHB1YmxpYy4iICsgc2VsZi50YWJsZV9uYW1lICsgIjsiKQogCi0gICAgICAgIHNlbGYu cGFnZS5maW5kX2J5X3hwYXRoKAotICAgICAgICAgICAgTmF2TWVudUxvY2F0b3JzLnByb2Nlc3Nf d2F0Y2hlcl9jbG9zZV9idXR0b25feHBhdGgpLmNsaWNrKCkKKyAgICAgICAgdGVzdF9ndWlfaGVs cGVyLmNsb3NlX3Byb2Nlc3Nfd2F0Y2hlcihzZWxmKQogCiAgICAgZGVmIGFmdGVyKHNlbGYpOgog ICAgICAgICB0ZXN0X2d1aV9oZWxwZXIuY2xvc2VfYmdwcm9jZXNzX3BvcHVwKHNlbGYpCiAgICAg ICAgIHNlbGYucGFnZS5yZW1vdmVfc2VydmVyKHNlbGYuc2VydmVyKQotICAgICAgICB0ZXN0X3V0 aWxzLmRlbGV0ZV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi50ZXN0X2RiLAorICAgICAgICB0ZXN0 X3V0aWxzLmRlbGV0ZV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYXRhYmFzZV9uYW1lLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCiAgICAgICAgIGNv bm5lY3Rpb24gPSB0ZXN0X3V0aWxzLmdldF9kYl9jb25uZWN0aW9uKAogICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJbJ2RiJ10sCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3F1 ZXJ5X3Rvb2xfYXV0b19jb21wbGV0ZV90ZXN0cy5weSBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVz dHMvcXVlcnlfdG9vbF9hdXRvX2NvbXBsZXRlX3Rlc3RzLnB5CmluZGV4IDFmNmUyNDhjZS4uZmU2 ZDY4ZTRkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3F1ZXJ5X3Rvb2xf YXV0b19jb21wbGV0ZV90ZXN0cy5weQorKysgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3F1 ZXJ5X3Rvb2xfYXV0b19jb21wbGV0ZV90ZXN0cy5weQpAQCAtNTYsOSArNTYsOSBAQCBjbGFzcyBR dWVyeVRvb2xBdXRvQ29tcGxldGVGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAg ICB0ZXN0X3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi50ZXN0X2RiLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlY29uZF90YWJsZV9uYW1lKQogCi0g ICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl90cmVlX2l0ZW0oc2VsZi5zZXJ2ZXJbJ25hbWUn XSkKLSAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRlbSgnRGF0YWJhc2VzJykK LSAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRlbShzZWxmLnRlc3RfZGIpCisg ICAgICAgIHNlbGYucGFnZS5leHBhbmRfZGF0YWJhc2Vfbm9kZSgKKyAgICAgICAgICAgIHNlbGYu c2VydmVyWyduYW1lJ10sCisgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwg c2VsZi50ZXN0X2RiKQogCiAgICAgICAgIHNlbGYucGFnZS5vcGVuX3F1ZXJ5X3Rvb2woKQogICAg ICAgICBzZWxmLnBhZ2Uud2FpdF9mb3Jfc3Bpbm5lcl90b19kaXNhcHBlYXIoKQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy9xdWVyeV90b29sX2pvdXJuZXlfdGVzdC5weSBi L3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcXVlcnlfdG9vbF9qb3VybmV5X3Rlc3QucHkKaW5k ZXggOTM3Y2Q5N2E4Li44OGQzMGExYzEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVf dGVzdHMvcXVlcnlfdG9vbF9qb3VybmV5X3Rlc3QucHkKKysrIGIvd2ViL3BnYWRtaW4vZmVhdHVy ZV90ZXN0cy9xdWVyeV90b29sX2pvdXJuZXlfdGVzdC5weQpAQCAtMTAzLDcgKzEwMyw3IEBAIGNs YXNzIFF1ZXJ5VG9vbEpvdXJuZXlUZXN0KEJhc2VGZWF0dXJlVGVzdCk6CiAgICAgICAgICAgICBR dWVyeVRvb2xMb2NhdG9ycy5jb3B5X2J1dHRvbl9jc3MpCiAgICAgICAgIGNvcHlfcm93LmNsaWNr KCkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCciU29tZS1OYW1lIlx0IjYiXHQic29tZSBp bmZvIicsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJyJTb21lLU5hbWUiXHQ2XHQic29tZSBp bmZvIicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHlwZXJjbGlwLnBhc3RlKCkpCiAKICAg ICBkZWYgX3Rlc3RfY29waWVzX2NvbHVtbnMoc2VsZik6CkBAIC0zODAsOSArMzgwLDkgQEAgY2xh c3MgUXVlcnlUb29sSm91cm5leVRlc3QoQmFzZUZlYXR1cmVUZXN0KToKICAgICAgICAgc2VsZi5w YWdlLmNsaWNrX21vZGFsKCdZZXMnKQogCiAgICAgZGVmIF9uYXZpZ2F0ZV90b19xdWVyeV90b29s KHNlbGYpOgotICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fdHJlZV9pdGVtKHNlbGYuc2Vy dmVyWyduYW1lJ10pCi0gICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl90cmVlX2l0ZW0oJ0Rh dGFiYXNlcycpCi0gICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl90cmVlX2l0ZW0oc2VsZi50 ZXN0X2RiKQorICAgICAgICBzZWxmLnBhZ2UuZXhwYW5kX2RhdGFiYXNlX25vZGUoCisgICAgICAg ICAgICBzZWxmLnNlcnZlclsnbmFtZSddLAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bh c3N3b3JkJ10sIHNlbGYudGVzdF9kYikKICAgICAgICAgc2VsZi5wYWdlLm9wZW5fcXVlcnlfdG9v bCgpCiAgICAgICAgIHNlbGYucGFnZS53YWl0X2Zvcl9zcGlubmVyX3RvX2Rpc2FwcGVhcigpCiAK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcXVlcnlfdG9vbF90ZXN0cy5w eSBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcXVlcnlfdG9vbF90ZXN0cy5weQppbmRleCBj YTllZTUwOTEuLjQxMzgxMWRjMiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0 cy9xdWVyeV90b29sX3Rlc3RzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvcXVl cnlfdG9vbF90ZXN0cy5weQpAQCAtMzUsOSArMzUsOSBAQCBjbGFzcyBRdWVyeVRvb2xGZWF0dXJl VGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgIGRlZiBiZWZvcmUoc2VsZik6CiAgICAgICAgIHNl bGYucGFnZS53YWl0X2Zvcl9zcGlubmVyX3RvX2Rpc2FwcGVhcigpCiAgICAgICAgIHNlbGYucGFn ZS5hZGRfc2VydmVyKHNlbGYuc2VydmVyKQotICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5f dHJlZV9pdGVtKHNlbGYuc2VydmVyWyduYW1lJ10pCi0gICAgICAgIHNlbGYucGFnZS50b2dnbGVf b3Blbl90cmVlX2l0ZW0oJ0RhdGFiYXNlcycpCi0gICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Bl bl90cmVlX2l0ZW0oc2VsZi50ZXN0X2RiKQorICAgICAgICBzZWxmLnBhZ2UuZXhwYW5kX2RhdGFi YXNlX25vZGUoCisgICAgICAgICAgICBzZWxmLnNlcnZlclsnbmFtZSddLAorICAgICAgICAgICAg c2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sIHNlbGYudGVzdF9kYikKICAgICAgICAgc2VsZi5w YWdlLm9wZW5fcXVlcnlfdG9vbCgpCiAgICAgICAgIHNlbGYucGFnZS53YWl0X2Zvcl9zcGlubmVy X3RvX2Rpc2FwcGVhcigpCiAgICAgICAgIHNlbGYuX3Jlc2V0X29wdGlvbnMoKQpAQCAtMjU0LDcg KzI1NCw3IEBAIFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwge30pIGFzIGlkMSwgJ2R1bW15JyBh cyBpZDIiIiIuZm9ybWF0KAogICAgICAgICAgICAgKQogICAgICAgICAgICAgIyBUYWJsZSBoZWln aHQgdGFrZXMgc29tZSB0aW1lIHRvIHVwZGF0ZSwgZm9yIHdoaWNoIHRoZWlyIGlzIG5vCiAgICAg ICAgICAgICAjIHBhcnRpY3VsYXIgd2F5Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKDEpCisgICAg ICAgICAgICB0aW1lLnNsZWVwKDIpCiAgICAgICAgICAgICBpZiBjYW52YXNfZWxlLnNpemVbJ2hl aWdodCddID09IHNjcm9sbGluZ19oZWlnaHQ6CiAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAg ICAgICAgIGVsc2U6CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3RhYmxl X2RkbF9mZWF0dXJlX3Rlc3QucHkgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3RhYmxlX2Rk bF9mZWF0dXJlX3Rlc3QucHkKaW5kZXggMTJhMjkzNzI4Li4yNmYyMzFlZjkgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMvdGFibGVfZGRsX2ZlYXR1cmVfdGVzdC5weQorKysg Yi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3RhYmxlX2RkbF9mZWF0dXJlX3Rlc3QucHkKQEAg LTMyLDEyICszMiwxMiBAQCBjbGFzcyBUYWJsZURkbEZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVz dCk6CiAgICAgICAgIHRlc3RfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLnRl c3RfZGIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdF90YWJsZV9u YW1lKQogCi0gICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl9zZXJ2ZXIoc2VsZi5zZXJ2ZXJb J25hbWUnXSkKLSAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRlbSgnRGF0YWJh c2VzJykKLSAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRlbShzZWxmLnRlc3Rf ZGIpCi0gICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl90cmVlX2l0ZW0oJ1NjaGVtYXMnKQot ICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fdHJlZV9pdGVtKCdwdWJsaWMnKQotICAgICAg ICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fdHJlZV9pdGVtKCdUYWJsZXMnKQorICAgICAgICBzZWxm LnBhZ2UuZXhwYW5kX2RhdGFiYXNlX25vZGUoCisgICAgICAgICAgICBzZWxmLnNlcnZlclsnbmFt ZSddLAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sIHNlbGYudGVzdF9k YikKKyAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RhYmxlc19ub2RlKAorICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJbJ25hbWUnXSwgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAg ICAgICAgICBzZWxmLnRlc3RfZGIsICdwdWJsaWMnKQogICAgICAgICBzZWxmLnBhZ2Uuc2VsZWN0 X3RyZWVfaXRlbShzZWxmLnRlc3RfdGFibGVfbmFtZSkKICAgICAgICAgc2VsZi5wYWdlLmNsaWNr X3RhYigiU1FMIikKIApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy92aWV3 X2RhdGFfZG1sX3F1ZXJpZXMucHkgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3ZpZXdfZGF0 YV9kbWxfcXVlcmllcy5weQppbmRleCAwOWRkNmQwNDYuLjZlYThkNTA2YyAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy92aWV3X2RhdGFfZG1sX3F1ZXJpZXMucHkKKysrIGIv d2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy92aWV3X2RhdGFfZG1sX3F1ZXJpZXMucHkKQEAgLTEy MiwxMiArMTIyLDEyIEBAIENSRUFURSBUQUJMRSBwdWJsaWMubm9uaW50cGtleQogICAgICAgICBz ZWxmLnBhZ2Uud2FpdF9mb3Jfc3Bpbm5lcl90b19kaXNhcHBlYXIoKQogICAgICAgICBzZWxmLnBh Z2UuYWRkX3NlcnZlcihzZWxmLnNlcnZlcikKIAotICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29w ZW5fdHJlZV9pdGVtKHNlbGYuc2VydmVyWyduYW1lJ10pCi0gICAgICAgIHNlbGYucGFnZS50b2dn bGVfb3Blbl90cmVlX2l0ZW0oJ0RhdGFiYXNlcycpCi0gICAgICAgIHNlbGYucGFnZS50b2dnbGVf b3Blbl90cmVlX2l0ZW0oc2VsZi50ZXN0X2RiKQotICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29w ZW5fdHJlZV9pdGVtKCdTY2hlbWFzJykKLSAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3Ry ZWVfaXRlbSgncHVibGljJykKLSAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRl bSgnVGFibGVzJykKKyAgICAgICAgc2VsZi5wYWdlLmV4cGFuZF9kYXRhYmFzZV9ub2RlKAorICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJbJ25hbWUnXSwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydk Yl9wYXNzd29yZCddLCBzZWxmLnRlc3RfZGIpCisgICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Bl bl90YWJsZXNfbm9kZShzZWxmLnNlcnZlclsnbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3RfZGIsICdwdWJsaWMn KQogCiAgICAgICAgIHNlbGYuX2xvYWRfY29uZmlnX2RhdGEoJ3RhYmxlX2luc2VydF91cGRhdGVf Y2FzZXMnKQogICAgICAgICAjIGl0ZXJhdGUgb24gYm90aCB0YWJsZXMKQEAgLTM0OSwxMyArMzQ5 LDEzIEBAIENSRUFURSBUQUJMRSBwdWJsaWMubm9uaW50cGtleQogICAgICAgICAgICAgZWxlbWVu dCA9IHJlc3VsdF9yb3cuZmluZF9lbGVtZW50X2J5X2NsYXNzX25hbWUoInIiICsgc3RyKGlkeCkp CiAgICAgICAgICAgICBzZWxmLnBhZ2UuZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KAogICAgICAgICAg ICAgICAgICJhcmd1bWVudHNbMF0uc2Nyb2xsSW50b1ZpZXcoZmFsc2UpIiwgZWxlbWVudCkKLQot ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZWxlbWVudC50ZXh0LCBjb25maWdfY2hlY2tf ZGF0YVtzdHIoaWR4KV1bMV0pCisgICAgICAgICAgICB0aW1lLnNsZWVwKDAuNCkKICAgICAgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGVsZW1lbnQudGV4dCwgY29uZmlnX2NoZWNrX2RhdGFbc3Ry KGlkeCldWzFdKQogCiAgICAgICAgICMgc2Nyb2xsIGJyb3dzZXIgYmFjayB0byB0aGUgbGVmdAog ICAgICAgICAjIHRvIHJlc2V0IHBvc2l0aW9uIHNvIG90aGVyIGFzc2VydGlvbnMgY2FuIHN1Y2Nl ZWQKICAgICAgICAgZm9yIGlkeCBpbiByZXZlcnNlZChsaXN0KGNvbmZpZ19jaGVja19kYXRhLmtl eXMoKSkpOgorICAgICAgICAgICAgdGltZS5zbGVlcCgwLjQpCiAgICAgICAgICAgICBlbGVtZW50 ID0gcmVzdWx0X3Jvdy5maW5kX2VsZW1lbnRfYnlfY2xhc3NfbmFtZSgiciIgKyBzdHIoaWR4KSkK ICAgICAgICAgICAgIHNlbGYucGFnZS5kcml2ZXIuZXhlY3V0ZV9zY3JpcHQoCiAgICAgICAgICAg ICAgICAgImFyZ3VtZW50c1swXS5zY3JvbGxJbnRvVmlldyhmYWxzZSkiLCBlbGVtZW50KQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy94c3NfY2hlY2tzX3BhbmVsc19hbmRf cXVlcnlfdG9vbF90ZXN0LnB5IGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy94c3NfY2hlY2tz X3BhbmVsc19hbmRfcXVlcnlfdG9vbF90ZXN0LnB5CmluZGV4IDMzNWQyYzhkYi4uYWVkMWYzNmYx IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3NfcGFuZWxz X2FuZF9xdWVyeV90b29sX3Rlc3QucHkKKysrIGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy94 c3NfY2hlY2tzX3BhbmVsc19hbmRfcXVlcnlfdG9vbF90ZXN0LnB5CkBAIC05NCwxMiArOTQsMTIg QEAgY2xhc3MgQ2hlY2tGb3JYc3NGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAg ICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYudGVzdF9kYiwgc2VsZi50ZXN0X3RhYmxlX25hbWUpCiAK ICAgICBkZWYgX3RhYmxlc19ub2RlX2V4cGFuZGFibGUoc2VsZik6Ci0gICAgICAgIHNlbGYucGFn ZS50b2dnbGVfb3Blbl9zZXJ2ZXIoc2VsZi5zZXJ2ZXJbJ25hbWUnXSkKLSAgICAgICAgc2VsZi5w YWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRlbSgnRGF0YWJhc2VzJykKLSAgICAgICAgc2VsZi5wYWdl LnRvZ2dsZV9vcGVuX3RyZWVfaXRlbShzZWxmLnRlc3RfZGIpCi0gICAgICAgIHNlbGYucGFnZS50 b2dnbGVfb3Blbl90cmVlX2l0ZW0oJ1NjaGVtYXMnKQotICAgICAgICBzZWxmLnBhZ2UudG9nZ2xl X29wZW5fdHJlZV9pdGVtKCdwdWJsaWMnKQotICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5f dHJlZV9pdGVtKCdUYWJsZXMnKQorICAgICAgICBzZWxmLnBhZ2UuZXhwYW5kX2RhdGFiYXNlX25v ZGUoCisgICAgICAgICAgICBzZWxmLnNlcnZlclsnbmFtZSddLAorICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sIHNlbGYudGVzdF9kYikKKyAgICAgICAgc2VsZi5wYWdlLnRv Z2dsZV9vcGVuX3RhYmxlc19ub2RlKHNlbGYuc2VydmVyWyduYW1lJ10sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdF9kYiwg J3B1YmxpYycpCiAgICAgICAgIHNlbGYucGFnZS5zZWxlY3RfdHJlZV9pdGVtKHNlbGYudGVzdF90 YWJsZV9uYW1lKQogCiAgICAgZGVmIF9jaGVja194c3NfaW5fYnJvd3Nlcl90cmVlKHNlbGYpOgpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy94c3NfY2hlY2tzX3BnYWRtaW5f ZGVidWdnZXJfdGVzdC5weSBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMveHNzX2NoZWNrc19w Z2FkbWluX2RlYnVnZ2VyX3Rlc3QucHkKaW5kZXggNzBhZTExZDEzLi5iNDJkM2YxMmQgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMveHNzX2NoZWNrc19wZ2FkbWluX2RlYnVn Z2VyX3Rlc3QucHkKKysrIGIvd2ViL3BnYWRtaW4vZmVhdHVyZV90ZXN0cy94c3NfY2hlY2tzX3Bn YWRtaW5fZGVidWdnZXJfdGVzdC5weQpAQCAtMzksMTAgKzM5LDEwIEBAIGNsYXNzIENoZWNrRGVi dWdnZXJGb3JYc3NGZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICBzZWxmLmZ1 bmN0aW9uX25hbWUgPSAiYV90ZXN0X2Z1bmN0aW9uIiArIFwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RyKHJhbmRvbS5yYW5kaW50KDEwMDAwLCA2NTUzNSkpCiAgICAgICAgIHRlc3Rf dXRpbHMuY3JlYXRlX2RlYnVnX2Z1bmN0aW9uKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsICJw b3N0Z3JlcyIsIHNlbGYuZnVuY3Rpb25fbmFtZQorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNl bGYudGVzdF9kYiwgc2VsZi5mdW5jdGlvbl9uYW1lCiAgICAgICAgICkKIAotICAgICAgICBpZiB0 ZXN0X3V0aWxzLmRvZXNfZnVuY3Rpb25fZXhpc3Qoc2VsZi5zZXJ2ZXIsICdwb3N0Z3JlcycsCisg ICAgICAgIGlmIHRlc3RfdXRpbHMuZG9lc19mdW5jdGlvbl9leGlzdChzZWxmLnNlcnZlciwgc2Vs Zi50ZXN0X2RiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5mdW5jdGlvbl9uYW1lKSAhPSAnVHJ1ZSc6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o IlRoZSByZXF1aXJlZCBmdW5jdGlvbiBpcyBub3QgZm91bmQiKQogCkBAIC01NCwxNSArNTQsMTYg QEAgY2xhc3MgQ2hlY2tEZWJ1Z2dlckZvclhzc0ZlYXR1cmVUZXN0KEJhc2VGZWF0dXJlVGVzdCk6 CiAKICAgICBkZWYgYWZ0ZXIoc2VsZik6CiAgICAgICAgIHNlbGYucGFnZS5yZW1vdmVfc2VydmVy KHNlbGYuc2VydmVyKQotICAgICAgICB0ZXN0X3V0aWxzLmRyb3BfZGVidWdfZnVuY3Rpb24oc2Vs Zi5zZXJ2ZXIsICJwb3N0Z3JlcyIsCisgICAgICAgIHRlc3RfdXRpbHMuZHJvcF9kZWJ1Z19mdW5j dGlvbihzZWxmLnNlcnZlciwgc2VsZi50ZXN0X2RiLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5mdW5jdGlvbl9uYW1lKQogCiAgICAgZGVmIF9mdW5jdGlvbl9u b2RlX2V4cGFuZGFibGUoc2VsZik6Ci0gICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl9zZXJ2 ZXIoc2VsZi5zZXJ2ZXJbJ25hbWUnXSkKLSAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3Ry ZWVfaXRlbSgnRGF0YWJhc2VzJykKLSAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVf aXRlbSgncG9zdGdyZXMnKQotICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fdHJlZV9pdGVt KCdTY2hlbWFzJykKLSAgICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRlbSgncHVi bGljJykKKyAgICAgICAgc2VsZi5wYWdlLmV4cGFuZF9kYXRhYmFzZV9ub2RlKAorICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJbJ25hbWUnXSwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNz d29yZCddLCBzZWxmLnRlc3RfZGIpCisgICAgICAgIHNlbGYucGFnZS50b2dnbGVfb3Blbl9zY2hl bWFfbm9kZShzZWxmLnNlcnZlclsnbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3RfZGIsICdwdWJsaWMnKQogICAg ICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fZnVuY3Rpb25fbm9kZSgpCiAgICAgICAgIHNlbGYu cGFnZS5zZWxlY3RfdHJlZV9pdGVtKHNlbGYuZnVuY3Rpb25fbmFtZSArICIoKSIpCiAKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMveHNzX2NoZWNrc19yb2xlc19jb250cm9s X3Rlc3QucHkgYi93ZWIvcGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3Nfcm9sZXNfY29u dHJvbF90ZXN0LnB5CmluZGV4IGJmMDAxMzU5Ny4uYWI0YzQyNDFlIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9mZWF0dXJlX3Rlc3RzL3hzc19jaGVja3Nfcm9sZXNfY29udHJvbF90ZXN0LnB5Cisr KyBiL3dlYi9wZ2FkbWluL2ZlYXR1cmVfdGVzdHMveHNzX2NoZWNrc19yb2xlc19jb250cm9sX3Rl c3QucHkKQEAgLTU4LDcgKzU4LDggQEAgY2xhc3MgQ2hlY2tSb2xlTWVtYmVyc2hpcENvbnRyb2xG ZWF0dXJlVGVzdChCYXNlRmVhdHVyZVRlc3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiPGgxPnRlc3Q8L2gxPiIpCiAKICAgICBkZWYgX3JvbGVfbm9kZV9leHBhbmRhYmxlKHNlbGYs IHJvbGUpOgotICAgICAgICBzZWxmLnBhZ2UudG9nZ2xlX29wZW5fc2VydmVyKHNlbGYuc2VydmVy WyduYW1lJ10pCisgICAgICAgIHNlbGYucGFnZS5leHBhbmRfc2VydmVyX25vZGUoCisgICAgICAg ICAgICBzZWxmLnNlcnZlclsnbmFtZSddLCBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSkKICAg ICAgICAgc2VsZi5wYWdlLnRvZ2dsZV9vcGVuX3RyZWVfaXRlbSgnTG9naW4vR3JvdXAgUm9sZXMn KQogICAgICAgICBzZWxmLnBhZ2Uuc2VsZWN0X3RyZWVfaXRlbShyb2xlKQogCkBAIC05Myw2ICs5 NCw2IEBAIGNsYXNzIENoZWNrUm9sZU1lbWJlcnNoaXBDb250cm9sRmVhdHVyZVRlc3QoQmFzZUZl YXR1cmVUZXN0KToKICAgICAgICAgIiIiVGhpcyB3aWxsIGNsaWNrIGFuZCBvcGVuIG1lbWJlcnNo aXAgdGFiIG9mIHJvbGUiIiIKIAogICAgICAgICBzZWxmLnBhZ2UucmV0cnlfY2xpY2soCi0gICAg ICAgICAgICAoQnkuWFBBVEgsCi0gICAgICAgICAgICAgIi8vYVtub3JtYWxpemUtc3BhY2UodGV4 dCgpKT0nTWVtYmVyc2hpcCddIiksCisgICAgICAgICAgICAoQnkuTElOS19URVhULAorICAgICAg ICAgICAgICJNZW1iZXJzaGlwIiksCiAgICAgICAgICAgICAoQnkuWFBBVEgsICIvL2lucHV0W0Bw bGFjZWhvbGRlcj0nU2VsZWN0IG1lbWJlcnMnXSIpKQpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Np b24vZmVhdHVyZV91dGlscy9sb2NhdG9ycy5weSBiL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdXRp bHMvbG9jYXRvcnMucHkKaW5kZXggZjM3YWZkZGQ1Li44NDdlNDU3ZDMgMTAwNjQ0Ci0tLSBhL3dl Yi9yZWdyZXNzaW9uL2ZlYXR1cmVfdXRpbHMvbG9jYXRvcnMucHkKKysrIGIvd2ViL3JlZ3Jlc3Np b24vZmVhdHVyZV91dGlscy9sb2NhdG9ycy5weQpAQCAtODcsNyArODcsNyBAQCBjbGFzcyBOYXZN ZW51TG9jYXRvcnM6CiAgICAgICAgICIuYmctcHJvY2Vzcy1kZXRhaWxzIC5iZy1kZXRhaWxlZC1k ZXNjIgogCiAgICAgcHJvY2Vzc193YXRjaGVyX2Nsb3NlX2J1dHRvbl94cGF0aCA9IFwKLSAgICAg ICAgIi8vZGl2W2NvbnRhaW5zKEBjbGFzcywnd2NGbG9hdGluZ0ZvY3VzJyldLy8iIFwKKyAgICAg ICAgIi8vZGl2W2NvbnRhaW5zKEBjbGFzcywnd2NGbG9hdGluZycpXS8vIiBcCiAgICAgICAgICJk aXZbY29udGFpbnMoQGNsYXNzLCdmYS1jbG9zZScpXSIKIAogICAgIHJlc3RvcmVfZmlsZV9uYW1l X3hwYXRoID0gIi8vZGl2W2NvbnRhaW5zKHRleHQoKSwnUmVzdG9yZScpXSIgXApAQCAtMjI3LDMg KzIyNywyMCBAQCBjbGFzcyBRdWVyeVRvb2xMb2NhdG9yczoKICAgICByZWFkX29ubHlfY29sdW1u X2ljb25feHBhdGggPSAiLy9kaXZbY29udGFpbnMoQGNsYXNzLCIgXAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICIgJ2VkaXRhYmxlLWNvbHVtbi1oZWFkZXItaWNvbicpXSIgXAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvaVtjb250YWlucyhAY2xhc3MsICdm YS1sb2NrJyldIgorCisKK2NsYXNzIENvbm5lY3RUb1NlcnZlckRpdjoKKyAgICAjIFRoaXMgd2ls bCBjb250YWluIHhwYXRocyBmb3IgZWxlbWVudCByZWxhdGluZyB0byBDb25uZWN0IHRvIHNlcnZl ciBkaXYKKworICAgIHBhc3N3b3JkX2ZpZWxkID0gIi8vaW5wdXRbQGlkPSdwYXNzd29yZCddIgor CisgICAgb2tfYnV0dG9uID0gXAorICAgICAgICAiLy9kaXYgW0BjbGFzcz0nYWxlcnRpZnkgIGFq cy1tb2RlbGVzcyBhanMtbW92YWJsZSBhanMtem9vbSddIiBcCisgICAgICAgICIvL2J1dHRvblt0 ZXh0KCk9J09LJ10iCisKKyAgICBlcnJvcl9tZXNzYWdlID0gXAorICAgICAgICAiLy9mb3JtW0Bp ZD0nZnJtUGFzc3dvcmQnXS9kaXYvZGl2Ly9kaXZbQGNsYXNzPSdhbGVydC10ZXh0J10iCisKKyAg ICBjYW5jZWxfYnV0dG9uID0gXAorICAgICAgICAiLy9kaXYgW0BjbGFzcz0nYWxlcnRpZnkgIGFq cy1tb2RlbGVzcyBhanMtbW92YWJsZSBhanMtem9vbSddIiBcCisgICAgICAgICIvL2J1dHRvblt0 ZXh0KCk9J0NhbmNlbCddIgpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV91dGls cy9wZ2FkbWluX3BhZ2UucHkgYi93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3V0aWxzL3BnYWRtaW5f cGFnZS5weQppbmRleCAyNGQzYmM5YjUuLjA1YmM3NDA4YSAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jl c3Npb24vZmVhdHVyZV91dGlscy9wZ2FkbWluX3BhZ2UucHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24v ZmVhdHVyZV91dGlscy9wZ2FkbWluX3BhZ2UucHkKQEAgLTIxLDcgKzIxLDcgQEAgZnJvbSBzZWxl bml1bS53ZWJkcml2ZXIuc3VwcG9ydCBpbXBvcnQgZXhwZWN0ZWRfY29uZGl0aW9ucyBhcyBFQwog ZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuc3VwcG9ydC51aSBpbXBvcnQgV2ViRHJpdmVyV2FpdAog ZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIuY29tbW9uLmJ5IGltcG9ydCBCeQogZnJvbSByZWdyZXNz aW9uLmZlYXR1cmVfdXRpbHMubG9jYXRvcnMgaW1wb3J0IFF1ZXJ5VG9vbExvY2F0b3JzLCBcCi0g ICAgTmF2TWVudUxvY2F0b3JzCisgICAgTmF2TWVudUxvY2F0b3JzLCBDb25uZWN0VG9TZXJ2ZXJE aXYKIGZyb20gcmVncmVzc2lvbi5mZWF0dXJlX3V0aWxzLnRyZWVfYXJlYV9sb2NhdG9ycyBpbXBv cnQgVHJlZUFyZWFMb2NhdG9ycwogCiAKQEAgLTI0NSwxNCArMjQ1LDYgQEAgY2xhc3MgUGdhZG1p blBhZ2U6CiAgICAgICAgICAgICAgICAgaWYgYXR0ZW1wdHMgPT0gMDoKICAgICAgICAgICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKGUpCiAKLSAgICBkZWYgZ2V0X2V4cGFuc2lvbl9zdGF0dXNf b2Zfbm9kZShzZWxmLCB4cGF0aF9ub2RlKToKLSAgICAgICAgIiIiZ2V0IHRoZSBleHBhbnNpb24g c3RhdHVzIGZvciBhIG5vZGUgdGhyb3VnaCB4cGF0aCIiIgotICAgICAgICBub2RlX2lzX2V4cGFu ZGVkID0gRmFsc2UKLSAgICAgICAgZWxlbWVudCA9IHNlbGYuZmluZF9ieV94cGF0aCh4cGF0aF9u b2RlKQotICAgICAgICBpZiBlbGVtZW50LmdldF9hdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiKSA9 PSAndHJ1ZSc6Ci0gICAgICAgICAgICBub2RlX2lzX2V4cGFuZGVkID0gVHJ1ZQotICAgICAgICBy ZXR1cm4gbm9kZV9pc19leHBhbmRlZAotCiAgICAgZGVmIHRvZ2dsZV9vcGVuX3NlcnZlcnNfZ3Jv dXAoc2VsZik6CiAgICAgICAgICIiIlRoaXMgd2lsbCBvcGVuIFNlcnZlcnMgZ3JvdXAgdG8gZGlz cGxheSB1bmRlcmx5aW5nIG5vZGVzIiIiCiAgICAgICAgIGlzX2V4cGFuZGVkID0gRmFsc2UKQEAg LTI4MCw1MCArMjcyLDIzOCBAQCBjbGFzcyBQZ2FkbWluUGFnZToKICAgICAgICAgICAgICAgICAg IGZpbGU9c3lzLnN0ZGVycikKICAgICAgICAgcmV0dXJuIGlzX2V4cGFuZGVkCiAKLSAgICBkZWYg dG9nZ2xlX29wZW5fdHJlZV9pdGVtKHNlbGYsIHRyZWVfaXRlbV90ZXh0KToKLSAgICAgICAgIyAn c2xlZXAnIGhlcmUgaGVscHMgaW4gY2FzZXMgd2hlcmUgdW5kZXJseWluZyBub2RlcyBhcmUgYXV0 byBvcGVuZWQuCi0gICAgICAgICMgT3RoZXJ3aXNlLCBlbmNvdW50ZXJlZCBzaXR1YXRpb25zIHdo ZXJlIEZhbHNlIHZhbHVlIGlzIHJldHVybmVkCi0gICAgICAgICMgZXZlbiBpZiB0aGUgdW5kZXJs eWluZyBub2RlIHRvIGJlIGNsaWNrZWQgd2FzIE9wZW5lZC4KLSAgICAgICAgdGltZS5zbGVlcCgu NikKLSAgICAgICAgaXRlbV93aXRoX3RleHQgPSBzZWxmLmZpbmRfYnlfeHBhdGgoCi0gICAgICAg ICAgICBUcmVlQXJlYUxvY2F0b3JzLnNwZWNpZmllZF90cmVlX25vZGUuZm9ybWF0KHRyZWVfaXRl bV90ZXh0KSkKLQotICAgICAgICBzZWxmLmRyaXZlci5leGVjdXRlX3NjcmlwdCgiYXJndW1lbnRz WzBdLnNjcm9sbEludG9WaWV3KCkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpdGVtX3dpdGhfdGV4dCkKLQotICAgICAgICBpZiBpdGVtX3dpdGhfdGV4dC5maW5kX2VsZW1l bnRfYnlfeHBhdGgoCi0gICAgICAgICAgICAiLi8vYW5jZXN0b3I6OipbQGNsYXNzPSdhY2lUcmVl TGluZSddIikuZ2V0X2F0dHJpYnV0ZSgKLSAgICAgICAgICAgICAgICAiYXJpYS1leHBhbmRlZCIp ID09ICdmYWxzZSc6Ci0gICAgICAgICAgICBpdGVtID0gaXRlbV93aXRoX3RleHQuZmluZF9lbGVt ZW50X2J5X3hwYXRoKAotICAgICAgICAgICAgICAgICIuLy9wYXJlbnQ6OipbQGNsYXNzPSdhY2lU cmVlSXRlbSddIikKLSAgICAgICAgICAgIEFjdGlvbkNoYWlucyhzZWxmLmRyaXZlcikuZG91Ymxl X2NsaWNrKGl0ZW0pLnBlcmZvcm0oKQotICAgICAgICByZXRyeSA9IDMKLSAgICAgICAgd2hpbGUg cmV0cnkgPiAwOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIFdlYkRyaXZlcldh aXQoc2VsZi5kcml2ZXIsIDUpLnVudGlsKChsYW1iZGEgaXRlbV93aXRoX3RleHQ6ICgKLSAgICAg ICAgICAgICAgICAgICAgaXRlbV93aXRoX3RleHQuZmluZF9lbGVtZW50X2J5X3hwYXRoKAotICAg ICAgICAgICAgICAgICAgICAgICAgIi4vL2FuY2VzdG9yOjoqW0BjbGFzcz0nYWNpVHJlZUxpbmUn XSIpLgotICAgICAgICAgICAgICAgICAgICBnZXRfYXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIikg PT0gJ3RydWUnKSkpCi0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGV4Y2VwdCBU aW1lb3V0RXhjZXB0aW9uOgotICAgICAgICAgICAgICAgIHJldHJ5IC09IDEKLSAgICAgICAgICAg ICAgICBwYXNzCi0KLSAgICBkZWYgdG9nZ2xlX29wZW5fdGFibGVzX25vZGUoc2VsZik6Ci0gICAg ICAgICIiIlRoZSBmdW5jdGlvbiB3aWxsIGJlIHVzZWQgZm9yIG9wZW5pbmcgVGFibGVzIG5vZGUg b25seSIiIgotCi0gICAgICAgICMgZ2V0IHRoZSBlbGVtZW50IHdoaWNoIGNvbnRhaW5zICdhcmlh LWV4cGFuZGVkJyBpbmZvCi0gICAgICAgIHRhYmxlc19leHBhbnNpb25fZWxlID0gc2VsZi5maW5k X2J5X3hwYXRoKCIvL2RpdltkaXZbZGl2W2RpdltkaXZbZGl2IgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW2RpdltkaXZbc3BhbltzcGFuWyIKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIihAY2xhc3M9 J2FjaVRyZWVUZXh0JykgYW5kICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgInRleHQoKT0nVGFibGVzJ11dXV1dXV1dXV0iKQotCi0gICAgICAgIGlm IHRhYmxlc19leHBhbnNpb25fZWxlLmdldF9hdHRyaWJ1dGUoJ2FyaWEtZXhwYW5kZWQnKSA9PSAn ZmFsc2UnOgotICAgICAgICAgICAgIyBidXR0b24gZWxlbWVudCBvZiB0aGUgVGFibGVzIG5vZGUg dG8gb3BlbiBpdAotICAgICAgICAgICAgaXRlbV9idXR0b24gPSBzZWxmLmZpbmRfYnlfeHBhdGgo Ci0gICAgICAgICAgICAgICAgIi8vZGl2W3NwYW5bc3BhblsoQGNsYXNzPSdhY2lUcmVlVGV4dCcp IGFuZCB0ZXh0KCkiCi0gICAgICAgICAgICAgICAgIj0nVGFibGVzJ11dXS9zcGFuW0BjbGFzcz0n YWNpVHJlZUJ1dHRvbiddIikKLSAgICAgICAgICAgIEFjdGlvbkNoYWlucyhzZWxmLmRyaXZlciku Y2xpY2soaXRlbV9idXR0b24pLnBlcmZvcm0oKQorICAgIGRlZiBleHBhbmRfc2VydmVyX25vZGUo c2VsZiwgc2VydmVyX25hbWUsIHNlcnZlcl9wYXNzd29yZCk6CisgICAgICAgICIiIndpbGwgZXhw YW5kIGEgcGFydGljdWxhciBzZXJ2ZXIgbm9kZSIiIgorICAgICAgICBzZXJ2ZXJfbm9kZV9leHBh bnNpb25fc3RhdHVzID0gRmFsc2UKKyAgICAgICAgaWYgc2VsZi50b2dnbGVfb3Blbl9zZXJ2ZXJz X2dyb3VwKCk6CisgICAgICAgICAgICBpZiBzZWxmLndhaXRfZm9yX2VsZW1lbnRzX3RvX2FwcGVh cigKKyAgICAgICAgICAgICAgICBzZWxmLmRyaXZlciwKKyAgICAgICAgICAgICAgICAgICAgVHJl ZUFyZWFMb2NhdG9ycy5zZXJ2ZXJfZ3JvdXBfc3ViX25vZGVzKToKKyAgICAgICAgICAgICAgICBz dWJub2Rlc19vZl9zZXJ2ZXJzID0gc2VsZi5maW5kX2J5X3hwYXRoX2xpc3QoCisgICAgICAgICAg ICAgICAgICAgIFRyZWVBcmVhTG9jYXRvcnMuc2VydmVyX2dyb3VwX3N1Yl9ub2RlcykKKyAgICAg ICAgICAgICAgICBzdWJub2Rlc19vZl9zZXJ2ZXJzX2V4cGFuc2lvbl9zdGF0dXMgPSBcCisgICAg ICAgICAgICAgICAgICAgIHNlbGYuZmluZF9ieV94cGF0aF9saXN0KAorICAgICAgICAgICAgICAg ICAgICAgICAgVHJlZUFyZWFMb2NhdG9ycy4KKyAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZl cl9ncm91cF9zdWJfbm9kZXNfZXhwX3N0YXR1cykKKyAgICAgICAgICAgICAgICBpbmRleF9vZl9z ZXJ2ZXJfbm9kZSA9IHNlbGYuZ2V0X2luZGV4X29mX2VsZW1lbnQoCisgICAgICAgICAgICAgICAg ICAgIHN1Ym5vZGVzX29mX3NlcnZlcnMsIHNlcnZlcl9uYW1lKQorCisgICAgICAgICAgICAgICAg aWYgbm90IHNlbGYuY2hlY2tfc2VydmVyX2lzX2Nvbm5lY3RlZCgKKyAgICAgICAgICAgICAgICAg ICAgICAgIGluZGV4X29mX3NlcnZlcl9ub2RlKToKKyAgICAgICAgICAgICAgICAgICAgaWYgc2Vs Zi5jbGlja19hbmRfY29ubmVjdF9zZXJ2ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBzdWJu b2Rlc19vZl9zZXJ2ZXJzW2luZGV4X29mX3NlcnZlcl9ub2RlXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZXJ2ZXJfcGFzc3dvcmQpOgorICAgICAgICAgICAgICAgICAgICAgICAgc2Vy dmVyX25vZGVfZXhwYW5zaW9uX3N0YXR1cyA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICIoZXhwYW5kX3NlcnZlcl9ub2RlKVRoZSBzZXJ2ZXIgbm9kZSBpcyAiCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIm5vdCBleHBhbmRlZCIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAg ICAgICAgICAgICAgIGlmIG5vdCBzZWxmLmdldF9leHBhbnNpb25fc3RhdHVzX29mX25vZGVfZWxl bWVudCgKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym5vZGVzX29mX3NlcnZlcnNfZXhwYW5z aW9uX3N0YXR1c1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleF9vZl9zZXJ2ZXJf bm9kZV0pOgorICAgICAgICAgICAgICAgICAgICAgICAgd2ViZHJpdmVyLkFjdGlvbkNoYWlucyhz ZWxmLmRyaXZlcikuZG91YmxlX2NsaWNrKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1 Ym5vZGVzX29mX3NlcnZlcnNbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4 X29mX3NlcnZlcl9ub2RlXSkucGVyZm9ybSgpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBz ZWxmLndhaXRfZm9yX2VsZW1lbnRzX3RvX2FwcGVhcigKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLmRyaXZlciwgVHJlZUFyZWFMb2NhdG9ycy4KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3ViX25vZGVzX29mX2Ffc2VydmVyX25vZGUoc2VydmVyX25hbWUpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMCk6CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyX25vZGVfZXhwYW5zaW9uX3N0YXR1cyA9IFRydWUKKyAgICAgICAgICAgICAg ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9ub2RlX2V4cGFuc2lv bl9zdGF0dXMgPSBUcnVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmludCgKKyAgICAg ICAgICAgICAgICAiKGV4cGFuZF9zZXJ2ZXJfbm9kZSkgVGhlIFNlcnZlcnMgbm9kZSBpcyIKKyAg ICAgICAgICAgICAgICAiIG5vdCBleHBhbmRlZCIsCisgICAgICAgICAgICAgICAgZmlsZT1zeXMu c3RkZXJyKQorICAgICAgICByZXR1cm4gc2VydmVyX25vZGVfZXhwYW5zaW9uX3N0YXR1cworCisg ICAgZGVmIGV4cGFuZF9kYXRhYmFzZXNfbm9kZShzZWxmLCBzZXJ2ZXJfbmFtZSwgc2VydmVyX3Bh c3N3b3JkKToKKyAgICAgICAgIiIid2lsbCBleHBhbmQgZGF0YWJhc2VzIG5vZGUgdW5kZXIgc2Vy dmVyIG5vZGUiIiIKKyAgICAgICAgZGF0YWJhc2VzX25vZGVfZXhwYW5kZWQgPSBGYWxzZQorICAg ICAgICBpZiBzZWxmLmV4cGFuZF9zZXJ2ZXJfbm9kZShzZXJ2ZXJfbmFtZSwgc2VydmVyX3Bhc3N3 b3JkKToKKyAgICAgICAgICAgIGlmIHNlbGYud2FpdF9mb3JfZWxlbWVudHNfdG9fYXBwZWFyKAor ICAgICAgICAgICAgICAgIHNlbGYuZHJpdmVyLAorICAgICAgICAgICAgICAgICAgICBUcmVlQXJl YUxvY2F0b3JzLnN1Yl9ub2Rlc19vZl9hX3NlcnZlcl9ub2RlKHNlcnZlcl9uYW1lKSk6CisgICAg ICAgICAgICAgICAgc3Vibm9kZXNfb2Zfc2VydmVyX25vZGUgPSBzZWxmLmZpbmRfYnlfeHBhdGhf bGlzdCgKKyAgICAgICAgICAgICAgICAgICAgVHJlZUFyZWFMb2NhdG9ycy5zdWJfbm9kZXNfb2Zf YV9zZXJ2ZXJfbm9kZShzZXJ2ZXJfbmFtZSkpCisgICAgICAgICAgICAgICAgc3Vibm9kZV9vZl9z ZXJ2ZXJfbm9kZV9leHBfc3RhdHVzID0gc2VsZi5maW5kX2J5X3hwYXRoX2xpc3QoCisgICAgICAg ICAgICAgICAgICAgIFRyZWVBcmVhTG9jYXRvcnMuc3ViX25vZGVzX29mX2Ffc2VydmVyX25vZGVf ZXhwX3N0YXR1cygKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9uYW1lKSkKKyAgICAg ICAgICAgICAgICBpbmRleF9vZl9kYXRhYmFzZXNfbm9kZSA9IHNlbGYuZ2V0X2luZGV4X29mX2Vs ZW1lbnQoCisgICAgICAgICAgICAgICAgICAgIHN1Ym5vZGVzX29mX3NlcnZlcl9ub2RlLAorICAg ICAgICAgICAgICAgICAgICAiRGF0YWJhc2VzIikKKyAgICAgICAgICAgICAgICB0aW1lLnNsZWVw KDIpCisgICAgICAgICAgICAgICAgZXhwYW5zaW9uX3N0YXR1cyA9IHNlbGYuZ2V0X2V4cGFuc2lv bl9zdGF0dXNfb2Zfbm9kZV9lbGVtZW50KAorICAgICAgICAgICAgICAgICAgICBzdWJub2RlX29m X3NlcnZlcl9ub2RlX2V4cF9zdGF0dXNbaW5kZXhfb2ZfZGF0YWJhc2VzX25vZGVdKQorICAgICAg ICAgICAgICAgIGlmIG5vdCBleHBhbnNpb25fc3RhdHVzOgorICAgICAgICAgICAgICAgICAgICBy ZXRyeSA9IDUKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgcmV0cnkgPiAwOgorICAgICAgICAg ICAgICAgICAgICAgICAgd2ViZHJpdmVyLkFjdGlvbkNoYWlucyhzZWxmLmRyaXZlcikuZG91Ymxl X2NsaWNrKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym5vZGVzX29mX3NlcnZlcl9u b2RlWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleF9vZl9kYXRhYmFzZXNf bm9kZV0uZmluZF9lbGVtZW50X2J5X3hwYXRoKAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiLi8vKltAY2xhc3M9J2FjaVRyZWVJdGVtJ10iKQorICAgICAgICAgICAgICAgICAgICAg ICAgKS5wZXJmb3JtKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYud2FpdF9mb3Jf ZWxlbWVudHNfdG9fYXBwZWFyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZHJp dmVyLCBUcmVlQXJlYUxvY2F0b3JzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dWJfbm9kZXNfb2ZfZGF0YWJhc2VzX25vZGUoc2VydmVyX25hbWUpLCAzKToKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhYmFzZXNfbm9kZV9leHBhbmRlZCA9IFRydWUKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXRyeSAtPSAxCisgICAgICAgICAgICAgICAg ZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2VzX25vZGVfZXhwYW5kZWQgPSBUcnVl CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmludCgiVGhlIHNlcnZlci9wcmV2aW91cyBu b2RlcyBub3QgZXhwYW5kZWQiLAorICAgICAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyKQor ICAgICAgICByZXR1cm4gZGF0YWJhc2VzX25vZGVfZXhwYW5kZWQKKworICAgIGRlZiBleHBhbmRf ZGF0YWJhc2Vfbm9kZShzZWxmLCBzZXJ2ZXJfbmFtZSwgc2VydmVyX3Bhc3N3b3JkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBuYW1lX29mX2RhdGFiYXNlKToKKyAgICAgICAgIiIid2ls bCBleHBhbmQgZGF0YWJhc2Ugbm9kZSB1bmRlciBkYXRhYmFzZXMgbm9kZSIiIgorICAgICAgICBk Yl9ub2RlX2V4cGFuZGVkX3N0YXR1cyA9IEZhbHNlCisgICAgICAgIGlmIHNlbGYuZXhwYW5kX2Rh dGFiYXNlc19ub2RlKHNlcnZlcl9uYW1lLCBzZXJ2ZXJfcGFzc3dvcmQpOgorICAgICAgICAgICAg c3ViX25vZGVzX29mX2RhdGFiYXNlc19ub2RlID0gc2VsZi5maW5kX2J5X3hwYXRoX2xpc3QoCisg ICAgICAgICAgICAgICAgVHJlZUFyZWFMb2NhdG9ycy5zdWJfbm9kZXNfb2ZfZGF0YWJhc2VzX25v ZGUoc2VydmVyX25hbWUpKQorICAgICAgICAgICAgaW5kZXhfb2ZfcmVxdWlyZWRfZGJfbm9kZSA9 IHNlbGYuZ2V0X2luZGV4X29mX2VsZW1lbnQoCisgICAgICAgICAgICAgICAgc3ViX25vZGVzX29m X2RhdGFiYXNlc19ub2RlLAorICAgICAgICAgICAgICAgIG5hbWVfb2ZfZGF0YWJhc2UpCisgICAg ICAgICAgICBleHBhbnNpb25fc3RhdHVzID0gc2VsZi5nZXRfZXhwYW5zaW9uX3N0YXR1c19vZl9u b2RlX2VsZW1lbnQoCisgICAgICAgICAgICAgICAgc2VsZi5maW5kX2J5X3hwYXRoX2xpc3QoCisg ICAgICAgICAgICAgICAgICAgIFRyZWVBcmVhTG9jYXRvcnMuCisgICAgICAgICAgICAgICAgICAg IHN1Yl9ub2Rlc19vZl9kYXRhYmFzZXNfbm9kZV9leHBfc3RhdHVzKAorICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyX25hbWUpKVsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXhfb2ZfcmVx dWlyZWRfZGJfbm9kZV0pCisgICAgICAgICAgICBpZiBub3QgZXhwYW5zaW9uX3N0YXR1czoKKyAg ICAgICAgICAgICAgICBzZWxmLmRyaXZlci5leGVjdXRlX3NjcmlwdCgiYXJndW1lbnRzWzBdLnNj cm9sbEludG9WaWV3KCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN1Yl9ub2Rlc19vZl9kYXRhYmFzZXNfbm9kZVsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhfb2ZfcmVxdWlyZWRfZGJfbm9kZV0pCisgICAg ICAgICAgICAgICAgd2ViZHJpdmVyLkFjdGlvbkNoYWlucyhzZWxmLmRyaXZlcikuZG91YmxlX2Ns aWNrKAorICAgICAgICAgICAgICAgICAgICBzdWJfbm9kZXNfb2ZfZGF0YWJhc2VzX25vZGVbCisg ICAgICAgICAgICAgICAgICAgICAgICBpbmRleF9vZl9yZXF1aXJlZF9kYl9ub2RlXSkucGVyZm9y bSgpCisgICAgICAgICAgICAgICAgaWYgc2VsZi53YWl0X2Zvcl9lbGVtZW50c190b19hcHBlYXIo CisgICAgICAgICAgICAgICAgICAgIHNlbGYuZHJpdmVyLCBUcmVlQXJlYUxvY2F0b3JzLgorICAg ICAgICAgICAgICAgICAgICAgICAgc3ViX25vZGVzX29mX2RhdGFiYXNlX25vZGUoCisgICAgICAg ICAgICAgICAgICAgICAgICBuYW1lX29mX2RhdGFiYXNlKSk6CisgICAgICAgICAgICAgICAgICAg IGRiX25vZGVfZXhwYW5kZWRfc3RhdHVzID0gVHJ1ZQorICAgICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICAgICBkYl9ub2RlX2V4cGFuZGVkX3N0YXR1cyA9IFRydWUKKyAgICAgICAgZWxzZToK KyAgICAgICAgICAgIHByaW50KCJUaGUgZGF0YWJhc2VzL3ByZXZpb3VzIG5vZGVzIG5vdCBleHBh bmRlZCIsCisgICAgICAgICAgICAgICAgICBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgIHJldHVy biBkYl9ub2RlX2V4cGFuZGVkX3N0YXR1cworCisgICAgZGVmIHRvZ2dsZV9vcGVuX3NjaGVtYXNf bm9kZShzZWxmLCBzZXJ2ZXJfbmFtZSwgc2VydmVyX3Bhc3N3b3JkLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbmFtZV9vZl9kYXRhYmFzZSk6CisgICAgICAgICIiIndpbGwgZXhw YW5kIHNjaGVtYXMgbm9kZSB1bmRlciBhIGRiIG5vZGUiIiIKKyAgICAgICAgZXhwYW5zaW9uX3N0 YXR1cyA9IEZhbHNlCisgICAgICAgIGlmIHNlbGYuZXhwYW5kX2RhdGFiYXNlX25vZGUoc2VydmVy X25hbWUsIHNlcnZlcl9wYXNzd29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuYW1lX29mX2RhdGFiYXNlKToKKyAgICAgICAgICAgIHN1Yl9ub2Rlc19kYl9ub2RlID0g c2VsZi5maW5kX2J5X3hwYXRoX2xpc3QoCisgICAgICAgICAgICAgICAgVHJlZUFyZWFMb2NhdG9y cy5zdWJfbm9kZXNfb2ZfZGF0YWJhc2Vfbm9kZSgKKyAgICAgICAgICAgICAgICAgICAgbmFtZV9v Zl9kYXRhYmFzZSkpCisgICAgICAgICAgICBpbmRleF9vZl9zY2hlbWFzX25vZGUgPSBzZWxmLmdl dF9pbmRleF9vZl9lbGVtZW50KAorICAgICAgICAgICAgICAgIHN1Yl9ub2Rlc19kYl9ub2RlLCAi U2NoZW1hcyIpCisgICAgICAgICAgICBleHBhbnNpb25fc3RhdHVzID0gc2VsZi5nZXRfZXhwYW5z aW9uX3N0YXR1c19vZl9ub2RlX2VsZW1lbnQoCisgICAgICAgICAgICAgICAgc2VsZi5maW5kX2J5 X3hwYXRoX2xpc3QoCisgICAgICAgICAgICAgICAgICAgIFRyZWVBcmVhTG9jYXRvcnMuc3ViX25v ZGVzX29mX2RhdGFiYXNlX25vZGVfZXhwX3N0YXR1cygKKyAgICAgICAgICAgICAgICAgICAgICAg IG5hbWVfb2ZfZGF0YWJhc2UpKVsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXhfb2Zfc2NoZW1h c19ub2RlXSkKKyAgICAgICAgICAgIGlmIG5vdCBleHBhbnNpb25fc3RhdHVzOgorICAgICAgICAg ICAgICAgIHNlbGYuZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAgICAgICAgICAgICAi YXJndW1lbnRzWzBdLnNjcm9sbEludG9WaWV3KCkiLAorICAgICAgICAgICAgICAgICAgICBzdWJf bm9kZXNfZGJfbm9kZVtpbmRleF9vZl9zY2hlbWFzX25vZGVdKQorICAgICAgICAgICAgICAgIHdl YmRyaXZlci5BY3Rpb25DaGFpbnMoc2VsZi5kcml2ZXIpLmRvdWJsZV9jbGljaygKKyAgICAgICAg ICAgICAgICAgICAgc3ViX25vZGVzX2RiX25vZGVbaW5kZXhfb2Zfc2NoZW1hc19ub2RlXSkucGVy Zm9ybSgpCisgICAgICAgICAgICAgICAgaWYgc2VsZi53YWl0X2Zvcl9lbGVtZW50c190b19hcHBl YXIoCisgICAgICAgICAgICAgICAgICAgIHNlbGYuZHJpdmVyLCBUcmVlQXJlYUxvY2F0b3JzLgor ICAgICAgICAgICAgICAgICAgICAgICAgc3ViX25vZGVzX29mX3NjaGVtYXNfbm9kZShuYW1lX29m X2RhdGFiYXNlKSk6CisgICAgICAgICAgICAgICAgICAgIGV4cGFuc2lvbl9zdGF0dXMgPSBUcnVl CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGV4cGFuc2lvbl9zdGF0dXMgPSBU cnVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmludCgKKyAgICAgICAgICAgICAgICAi KGV4cGFuZF9zY2hlbWFzX25vZGUpIGRhdGFiYXNlL3ByZXZpb3VzIG5vZGVzICIKKyAgICAgICAg ICAgICAgICAiYXJlIG5vdCBleHBhbmRlZCIsCisgICAgICAgICAgICAgICAgZmlsZT1zeXMuc3Rk ZXJyKQorICAgICAgICByZXR1cm4gZXhwYW5zaW9uX3N0YXR1cworCisgICAgZGVmIHRvZ2dsZV9v cGVuX3NjaGVtYV9ub2RlKAorICAgICAgICBzZWxmLCBzZXJ2ZXJfbmFtZSwgc2VydmVyX3Bhc3N3 b3JkLAorICAgICAgICAgICAgbmFtZV9vZl9kYXRhYmFzZSwgbmFtZV9vZl9zY2hlbWFfbm9kZSk6 CisgICAgICAgICIiIndpbGwgZXhwYW5kIHNjaGVtYSBub2RlIHVuZGVyIHNjaGVtYXMgbm9kZSIi IgorICAgICAgICBleHBhbnNpb25fc3RhdHVzID0gRmFsc2UKKyAgICAgICAgaWYgc2VsZi50b2dn bGVfb3Blbl9zY2hlbWFzX25vZGUoCisgICAgICAgICAgICAgICAgc2VydmVyX25hbWUsIHNlcnZl cl9wYXNzd29yZCwgbmFtZV9vZl9kYXRhYmFzZSk6CisgICAgICAgICAgICBzdWJfbm9kZXNfc2No ZW1hc19ub2RlID0gc2VsZi5maW5kX2J5X3hwYXRoX2xpc3QoCisgICAgICAgICAgICAgICAgVHJl ZUFyZWFMb2NhdG9ycy5zdWJfbm9kZXNfb2Zfc2NoZW1hc19ub2RlKAorICAgICAgICAgICAgICAg ICAgICBuYW1lX29mX2RhdGFiYXNlKSkKKyAgICAgICAgICAgIGluZGV4X29mX3NjaGVtYV9ub2Rl ID0gc2VsZi5nZXRfaW5kZXhfb2ZfZWxlbWVudCgKKyAgICAgICAgICAgICAgICBzdWJfbm9kZXNf c2NoZW1hc19ub2RlLAorICAgICAgICAgICAgICAgIG5hbWVfb2Zfc2NoZW1hX25vZGUpCisgICAg ICAgICAgICBleHBhbnNpb25fc3RhdHVzID0gc2VsZi5nZXRfZXhwYW5zaW9uX3N0YXR1c19vZl9u b2RlX2VsZW1lbnQoCisgICAgICAgICAgICAgICAgc2VsZi5maW5kX2J5X3hwYXRoX2xpc3QoCisg ICAgICAgICAgICAgICAgICAgIFRyZWVBcmVhTG9jYXRvcnMuc3ViX25vZGVzX29mX3NjaGVtYXNf bm9kZV9leHBfc3RhdHVzKAorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZV9vZl9kYXRhYmFz ZSkpWworICAgICAgICAgICAgICAgICAgICBpbmRleF9vZl9zY2hlbWFfbm9kZV0pCisgICAgICAg ICAgICBpZiBub3QgZXhwYW5zaW9uX3N0YXR1czoKKyAgICAgICAgICAgICAgICBzZWxmLmRyaXZl ci5leGVjdXRlX3NjcmlwdCgKKyAgICAgICAgICAgICAgICAgICAgImFyZ3VtZW50c1swXS5zY3Jv bGxJbnRvVmlldygpIiwKKyAgICAgICAgICAgICAgICAgICAgc3ViX25vZGVzX3NjaGVtYXNfbm9k ZVtpbmRleF9vZl9zY2hlbWFfbm9kZV0pCisgICAgICAgICAgICAgICAgd2ViZHJpdmVyLkFjdGlv bkNoYWlucyhzZWxmLmRyaXZlcikuZG91YmxlX2NsaWNrKAorICAgICAgICAgICAgICAgICAgICBz dWJfbm9kZXNfc2NoZW1hc19ub2RlW2luZGV4X29mX3NjaGVtYV9ub2RlXSkucGVyZm9ybSgpCisg ICAgICAgICAgICAgICAgaWYgc2VsZi53YWl0X2Zvcl9lbGVtZW50c190b19hcHBlYXIoCisgICAg ICAgICAgICAgICAgICAgIHNlbGYuZHJpdmVyLCBUcmVlQXJlYUxvY2F0b3JzLgorICAgICAgICAg ICAgICAgICAgICAgICAgc3ViX25vZGVzX29mX3NjaGVtYV9ub2RlKG5hbWVfb2ZfZGF0YWJhc2Up KToKKyAgICAgICAgICAgICAgICAgICAgZXhwYW5zaW9uX3N0YXR1cyA9IFRydWUKKyAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZXhwYW5zaW9uX3N0YXR1cyA9IFRydWUKKyAgICAg ICAgZWxzZToKKyAgICAgICAgICAgIHByaW50KAorICAgICAgICAgICAgICAgICIoZXhwYW5kX3Nj aGVtYV9ub2RlKSBzY2hlbWEvcHJldmlvdXMgbm9kZXMgYXJlIgorICAgICAgICAgICAgICAgICIg bm90IGV4cGFuZGVkIiwKKyAgICAgICAgICAgICAgICBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAg IHJldHVybiBleHBhbnNpb25fc3RhdHVzCisKKyAgICBkZWYgdG9nZ2xlX29wZW5fdGFibGVzX25v ZGUoCisgICAgICAgIHNlbGYsIHNlcnZlcl9uYW1lLCBzZXJ2ZXJfcGFzc3dvcmQsCisgICAgICAg ICAgICBuYW1lX29mX2RhdGFiYXNlLCBuYW1lX29mX3NjaGVtYV9ub2RlKToKKyAgICAgICAgIiIi d2lsbCBleHBhbmQgdGFibGVzIG5vZGUgdW5kZXIgc2NoZW1hIG5vZGUiIiIKKyAgICAgICAgbm9k ZV9leHBhbmRlZF9zdWNjZXNzZnVsbHkgPSBGYWxzZQorICAgICAgICBpZiBzZWxmLnRvZ2dsZV9v cGVuX3NjaGVtYV9ub2RlKAorICAgICAgICAgICAgc2VydmVyX25hbWUsIHNlcnZlcl9wYXNzd29y ZCwgbmFtZV9vZl9kYXRhYmFzZSwKKyAgICAgICAgICAgICAgICBuYW1lX29mX3NjaGVtYV9ub2Rl KToKKyAgICAgICAgICAgIHN1Yl9ub2Rlc19vZl9zY2hlbWFfbm9kZSA9IHNlbGYuZmluZF9ieV94 cGF0aF9saXN0KAorICAgICAgICAgICAgICAgIFRyZWVBcmVhTG9jYXRvcnMuc3ViX25vZGVzX29m X3NjaGVtYV9ub2RlKAorICAgICAgICAgICAgICAgICAgICBuYW1lX29mX2RhdGFiYXNlKSkKKyAg ICAgICAgICAgIHN1Yl9ub2Rlc19vZl9zY2hlbWFfbm9kZV9leHBfc3RhdHVzID0gc2VsZi5maW5k X2J5X3hwYXRoX2xpc3QoCisgICAgICAgICAgICAgICAgVHJlZUFyZWFMb2NhdG9ycy5zdWJfbm9k ZXNfb2Zfc2NoZW1hX25vZGVfZXhwX3N0YXR1cygKKyAgICAgICAgICAgICAgICAgICAgbmFtZV9v Zl9kYXRhYmFzZSkpCisgICAgICAgICAgICBpbmRleF9vZl90YWJsZXNfbm9kZSA9IHNlbGYuZ2V0 X2luZGV4X29mX2VsZW1lbnQoCisgICAgICAgICAgICAgICAgc3ViX25vZGVzX29mX3NjaGVtYV9u b2RlLCAiVGFibGVzIikKKyAgICAgICAgICAgIGV4cGFuc2lvbl9zdGF0dXMgPSBzZWxmLmdldF9l eHBhbnNpb25fc3RhdHVzX29mX25vZGVfZWxlbWVudCgKKyAgICAgICAgICAgICAgICBzdWJfbm9k ZXNfb2Zfc2NoZW1hX25vZGVfZXhwX3N0YXR1c1tpbmRleF9vZl90YWJsZXNfbm9kZV0pCisgICAg ICAgICAgICBpZiBub3QgZXhwYW5zaW9uX3N0YXR1czoKKyAgICAgICAgICAgICAgICBzZWxmLmRy aXZlci5leGVjdXRlX3NjcmlwdCgiYXJndW1lbnRzWzBdLnNjcm9sbEludG9WaWV3KCkiLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Yl9ub2Rlc19vZl9zY2hl bWFfbm9kZVsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW5kZXhfb2ZfdGFibGVzX25vZGVdKQorICAgICAgICAgICAgICAgIHdlYmRyaXZlci5BY3Rpb25D aGFpbnMoc2VsZi5kcml2ZXIpLmRvdWJsZV9jbGljaygKKyAgICAgICAgICAgICAgICAgICAgc3Vi X25vZGVzX29mX3NjaGVtYV9ub2RlWworICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhfb2Zf dGFibGVzX25vZGVdKS5wZXJmb3JtKCkKKyAgICAgICAgICAgICAgICBpZiBzZWxmLndhaXRfZm9y X2VsZW1lbnRzX3RvX2FwcGVhcigKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5kcml2ZXIsIFRy ZWVBcmVhTG9jYXRvcnMuCisgICAgICAgICAgICAgICAgICAgICAgICBzdWJfbm9kZXNfb2ZfdGFi bGVzX25vZGUpOgorICAgICAgICAgICAgICAgICAgICBub2RlX2V4cGFuZGVkX3N1Y2Nlc3NmdWxs eSA9IFRydWUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbm9kZV9leHBhbmRl ZF9zdWNjZXNzZnVsbHkgPSBUcnVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmludCgK KyAgICAgICAgICAgICAgICAiKGV4cGFuZF90YWJsZXNfbm9kZSkgc2NoZW1hL3ByZXZpb3VzIG5v ZGVzICIKKyAgICAgICAgICAgICAgICAiYXJlIG5vdCBleHBhbmRlZCIsCisgICAgICAgICAgICAg ICAgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICByZXR1cm4gbm9kZV9leHBhbmRlZF9zdWNjZXNz ZnVsbHkKIAogICAgIGRlZiB0b2dnbGVfb3Blbl9mdW5jdGlvbl9ub2RlKHNlbGYpOgogICAgICAg ICAiIiJUaGUgZnVuY3Rpb24gd2lsbCBiZSB1c2VkIGZvciBvcGVuaW5nIEZ1bmN0aW9ucyBub2Rl IG9ubHkiIiIKQEAgLTM3OSw2ICs1NTksMTI0IEBAIGNsYXNzIFBnYWRtaW5QYWdlOgogICAgICAg ICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBub2RlX2V4cGFuZGVkID0gVHJ1ZQogCisgICAg ZGVmIGNoZWNrX3NlcnZlcl9pc19jb25uZWN0ZWQoc2VsZiwgaW5kZXhfb2Zfc2VydmVyKToKKyAg ICAgICAgIiIiVGhpcyB3aWxsIGNoZWNrIGNvbm5lY3RlZCBzdGF0dXMgb2YgYSBzZXJ2ZXIsIGFz IGNvbm5lY3Rpb24KKyAgICAgICAgc3RhdHVzIGlzIGNvbnRhaW5lZCBlaXRoZXIgaW4gc3BhbiBv ciBkaXYgZWxlbWVudCBzbyBjaGVja2luZyBpdCIiIgorICAgICAgICBzZXJ2ZXJfY29ubmVjdGVk ID0gRmFsc2UKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY29ubmVjdGlvbl9zdGF0dXNfZWxl bWVudHMgPSBzZWxmLmZpbmRfYnlfeHBhdGhfbGlzdCgKKyAgICAgICAgICAgICAgICBUcmVlQXJl YUxvY2F0b3JzLnNlcnZlcl9ncm91cF9zdWJfbm9kZXNfY29ubmVjdGVkX3N0YXR1cykKKyAgICAg ICAgICAgIHNwYW5fZWxlbWVudHMgPSBjb25uZWN0aW9uX3N0YXR1c19lbGVtZW50c1sKKyAgICAg ICAgICAgICAgICBpbmRleF9vZl9zZXJ2ZXJdLmZpbmRfZWxlbWVudHNfYnlfdGFnX25hbWUoInNw YW4iKQorICAgICAgICAgICAgZGl2X2VsZW1lbnRzID0gY29ubmVjdGlvbl9zdGF0dXNfZWxlbWVu dHNbCisgICAgICAgICAgICAgICAgaW5kZXhfb2Zfc2VydmVyXS5maW5kX2VsZW1lbnRzX2J5X3Rh Z19uYW1lKCJkaXYiKQorCisgICAgICAgICAgICBzcGFuX3ZhbHVlX29mX2NsYXNzX2F0dCA9ICIi CisgICAgICAgICAgICBkaXZfdmFsdWVfb2ZfY2xhc3NfYXR0ID0gIiIKKworICAgICAgICAgICAg aWYgbGVuKHNwYW5fZWxlbWVudHMpID4gMDoKKyAgICAgICAgICAgICAgICBzcGFuX3ZhbHVlX29m X2NsYXNzX2F0dCA9IFwKKyAgICAgICAgICAgICAgICAgICAgc3Bhbl9lbGVtZW50c1swXS5nZXRf YXR0cmlidXRlKCdjbGFzcycpCisgICAgICAgICAgICBpZiBsZW4oZGl2X2VsZW1lbnRzKSA+IDA6 CisgICAgICAgICAgICAgICAgZGl2X3ZhbHVlX29mX2NsYXNzX2F0dCA9IFwKKyAgICAgICAgICAg ICAgICAgICAgZGl2X2VsZW1lbnRzWzBdLmdldF9hdHRyaWJ1dGUoJ2NsYXNzJykKKyAgICAgICAg ICAgIGlmICgoImFjaVRyZWVJY29uIGljb24tcGciIGluIHNwYW5fdmFsdWVfb2ZfY2xhc3NfYXR0 IG9yCisgICAgICAgICAgICAgICAgICJhY2lUcmVlSWNvbiBpY29uLXBnIiBpbiBkaXZfdmFsdWVf b2ZfY2xhc3NfYXR0IG9yCisgICAgICAgICAgICAgICAgICJhY2lUcmVlSWNvbiBpY29uLXBwYXMi IGluCisgICAgICAgICAgICAgICAgIHNwYW5fdmFsdWVfb2ZfY2xhc3NfYXR0IG9yCisgICAgICAg ICAgICAgICAgICJhY2lUcmVlSWNvbiBpY29uLXBwYXMiIGluIGRpdl92YWx1ZV9vZl9jbGFzc19h dHQpIGFuZAorICAgICAgICAgICAgICAgICAgICAoImFjaVRyZWVJY29uIGljb24tc2VydmVyLW5v dC1jb25uZWN0ZWQiIG5vdCBpbgorICAgICAgICAgICAgICAgICAgICAgICAgc3Bhbl92YWx1ZV9v Zl9jbGFzc19hdHQgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICJhY2lUcmVlSWNvbiBpY29u LXNlcnZlci1ub3QtY29ubmVjdGVkIiBub3QgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgIGRp dl92YWx1ZV9vZl9jbGFzc19hdHQpKToKKyAgICAgICAgICAgICAgICBzZXJ2ZXJfY29ubmVjdGVk ID0gVHJ1ZQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBwcmlu dCgiVGhlcmUgaXMgc29tZSBleGNlcHRpb24gdGhyb3duIGluIHRoZSBmdW5jdGlvbiAiCisgICAg ICAgICAgICAgICAgICAiY2hlY2tfc2VydmVyX2lzX2Nvbm5lY3RlZCBhbmQgaXM6ICIgKyBzdHIo ZSksCisgICAgICAgICAgICAgICAgICBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgIHJldHVybiBz ZXJ2ZXJfY29ubmVjdGVkCisKKyAgICBkZWYgY2xpY2tfYW5kX2Nvbm5lY3Rfc2VydmVyKHNlbGYs IHNlcnZlcl9lbGVtZW50LCBwYXNzd29yZCk6CisgICAgICAgICIiIndpbGwgY29ubmVjdCBhIHNl cnZlciBub2RlLCB3aWxsIHByb3ZpZGUgdGhlIHBhc3N3b3JkIGluIHRoZQorICAgICAgICByZXNw ZWN0aXZlIHdpbmRvdyIiIgorICAgICAgICBzZXJ2ZXJfY29ubmVjdGlvbl9zdGF0dXMgPSBGYWxz ZQorICAgICAgICB0cnk6CisgICAgICAgICAgICB3ZWJkcml2ZXIuQWN0aW9uQ2hhaW5zKHNlbGYu ZHJpdmVyKS5kb3VibGVfY2xpY2soCisgICAgICAgICAgICAgICAgc2VydmVyX2VsZW1lbnQpLnBl cmZvcm0oKQorICAgICAgICAgICAgaWYgc2VsZi53YWl0X2Zvcl9lbGVtZW50X3RvX2FwcGVhcihz ZWxmLmRyaXZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ29ubmVjdFRvU2VydmVyRGl2Lm9rX2J1dHRvbik6CisgICAgICAgICAgICAgICAgc2VsZi5m aWxsX2lucHV0X2J5X3hwYXRoKAorICAgICAgICAgICAgICAgICAgICBDb25uZWN0VG9TZXJ2ZXJE aXYucGFzc3dvcmRfZmllbGQsIHBhc3N3b3JkKQorICAgICAgICAgICAgICAgIHNlbGYuZmluZF9i eV94cGF0aChDb25uZWN0VG9TZXJ2ZXJEaXYub2tfYnV0dG9uKS5jbGljaygpCisgICAgICAgICAg ICAgICAgc2VsZi53YWl0X3VudGlsX2VsZW1lbnRfbm90X3Zpc2libGUoCisgICAgICAgICAgICAg ICAgICAgIENvbm5lY3RUb1NlcnZlckRpdi5va19idXR0b24pCisgICAgICAgICAgICAgICAgaWYg c2VsZi53YWl0X2Zvcl9lbGVtZW50X3RvX2JlX3Zpc2libGUoCisgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLmRyaXZlciwgQ29ubmVjdFRvU2VydmVyRGl2LmVycm9yX21lc3NhZ2UsIDIpOgor ICAgICAgICAgICAgICAgICAgICBwcmludCgKKyAgICAgICAgICAgICAgICAgICAgICAgICJXaGls ZSBlbnRlcmluZyBwYXNzd29yZCBpbiBjbGlja19hbmRfY29ubmVjdF9zZXJ2ZXIgIgorICAgICAg ICAgICAgICAgICAgICAgICAgImZ1bmN0aW9uLCBlcnJvciBpcyBvY2N1cnJlZCA6ICIgKyBzdHIo CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5maW5kX2J5X3hwYXRoKAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBDb25uZWN0VG9TZXJ2ZXJEaXYuZXJyb3JfbWVzc2Fn ZSkudGV4dCksCisgICAgICAgICAgICAgICAgICAgICAgICBmaWxlPXN5cy5zdGRlcnIpCisgICAg ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgc2VydmVyX2Nvbm5lY3Rpb25f c3RhdHVzID0gVHJ1ZQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAg ICBwcmludCgKKyAgICAgICAgICAgICAgICAiVGhlcmUgaXMgc29tZSBleGNlcHRpb24gdGhyb3du IGNsaWNrX2FuZF9jb25uZWN0X3NlcnZlciAiCisgICAgICAgICAgICAgICAgImFuZCBpczogIiAr IHN0cigKKyAgICAgICAgICAgICAgICAgICAgZSksIGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAg cmV0dXJuIHNlcnZlcl9jb25uZWN0aW9uX3N0YXR1cworCisgICAgZGVmIGdldF9leHBhbnNpb25f c3RhdHVzX29mX25vZGUoc2VsZiwgeHBhdGhfbm9kZSk6CisgICAgICAgICIiImdldCB0aGUgZXhw YW5zaW9uIHN0YXR1cyBmb3IgYSBub2RlIHRocm91Z2ggeHBhdGgiIiIKKyAgICAgICAgbm9kZV9p c19leHBhbmRlZCA9IEZhbHNlCisgICAgICAgIGVsZW1lbnQgPSBzZWxmLmZpbmRfYnlfeHBhdGgo eHBhdGhfbm9kZSkKKyAgICAgICAgaWYgZWxlbWVudC5nZXRfYXR0cmlidXRlKCJhcmlhLWV4cGFu ZGVkIikgPT0gJ3RydWUnOgorICAgICAgICAgICAgbm9kZV9pc19leHBhbmRlZCA9IFRydWUKKyAg ICAgICAgcmV0dXJuIG5vZGVfaXNfZXhwYW5kZWQKKworICAgIGRlZiBnZXRfZXhwYW5zaW9uX3N0 YXR1c19vZl9ub2RlX2VsZW1lbnQoc2VsZiwgZWxlbWVudCk6CisgICAgICAgICIiImdldCB0aGUg ZXhwYW5zaW9uIHN0YXR1cyBmb3IgYW4gZWxlbWVudCIiIgorICAgICAgICBub2RlX2lzX2V4cGFu ZGVkID0gRmFsc2UKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgZWxlbWVudC5nZXRfYXR0 cmlidXRlKCJhcmlhLWV4cGFuZGVkIikgPT0gJ3RydWUnOgorICAgICAgICAgICAgICAgIG5vZGVf aXNfZXhwYW5kZWQgPSBUcnVlCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAg ICAgICAgIHByaW50KAorICAgICAgICAgICAgICAgICJUaGVyZSBpcyBzb21lIGV4Y2VwdGlvbiB0 aHJvd24gaW4gdGhlIGZ1bmN0aW9uICIKKyAgICAgICAgICAgICAgICAiZ2V0X2V4cGFuc2lvbl9z dGF0dXNfb2Zfbm9kZV9lbGVtZW50IGFuZCBpczogIiArIHN0cigKKyAgICAgICAgICAgICAgICAg ICAgZSksIGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgcmV0dXJuIG5vZGVfaXNfZXhwYW5kZWQK KworICAgIGRlZiB0b2dnbGVfb3Blbl90cmVlX2l0ZW0oc2VsZiwgdHJlZV9pdGVtX3RleHQpOgor ICAgICAgICAjICdzbGVlcCcgaGVyZSBoZWxwcyBpbiBjYXNlcyB3aGVyZSB1bmRlcmx5aW5nIG5v ZGVzIGFyZSBhdXRvIG9wZW5lZC4KKyAgICAgICAgIyBPdGhlcndpc2UsIGVuY291bnRlcmVkIHNp dHVhdGlvbnMgd2hlcmUgRmFsc2UgdmFsdWUgaXMgcmV0dXJuZWQKKyAgICAgICAgIyBldmVuIGlm IHRoZSB1bmRlcmx5aW5nIG5vZGUgdG8gYmUgY2xpY2tlZCB3YXMgT3BlbmVkLgorICAgICAgICB0 aW1lLnNsZWVwKC42KQorICAgICAgICBpdGVtX3dpdGhfdGV4dCA9IHNlbGYuZmluZF9ieV94cGF0 aCgKKyAgICAgICAgICAgIFRyZWVBcmVhTG9jYXRvcnMuc3BlY2lmaWVkX3RyZWVfbm9kZS5mb3Jt YXQodHJlZV9pdGVtX3RleHQpKQorCisgICAgICAgIHNlbGYuZHJpdmVyLmV4ZWN1dGVfc2NyaXB0 KCJhcmd1bWVudHNbMF0uc2Nyb2xsSW50b1ZpZXcoKSIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGl0ZW1fd2l0aF90ZXh0KQorCisgICAgICAgIGlmIGl0ZW1fd2l0aF90ZXh0 LmZpbmRfZWxlbWVudF9ieV94cGF0aCgKKyAgICAgICAgICAgICIuLy9hbmNlc3Rvcjo6KltAY2xh c3M9J2FjaVRyZWVMaW5lJ10iKS5nZXRfYXR0cmlidXRlKAorICAgICAgICAgICAgICAgICJhcmlh LWV4cGFuZGVkIikgPT0gJ2ZhbHNlJzoKKyAgICAgICAgICAgIGl0ZW0gPSBpdGVtX3dpdGhfdGV4 dC5maW5kX2VsZW1lbnRfYnlfeHBhdGgoCisgICAgICAgICAgICAgICAgIi4vL3BhcmVudDo6KltA Y2xhc3M9J2FjaVRyZWVJdGVtJ10iKQorICAgICAgICAgICAgQWN0aW9uQ2hhaW5zKHNlbGYuZHJp dmVyKS5kb3VibGVfY2xpY2soaXRlbSkucGVyZm9ybSgpCisgICAgICAgIHJldHJ5ID0gMworICAg ICAgICB3aGlsZSByZXRyeSA+IDA6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg V2ViRHJpdmVyV2FpdChzZWxmLmRyaXZlciwgNSkudW50aWwoKGxhbWJkYSBpdGVtX3dpdGhfdGV4 dDogKAorICAgICAgICAgICAgICAgICAgICBpdGVtX3dpdGhfdGV4dC5maW5kX2VsZW1lbnRfYnlf eHBhdGgoCisgICAgICAgICAgICAgICAgICAgICAgICAiLi8vYW5jZXN0b3I6OipbQGNsYXNzPSdh Y2lUcmVlTGluZSddIikuCisgICAgICAgICAgICAgICAgICAgIGdldF9hdHRyaWJ1dGUoImFyaWEt ZXhwYW5kZWQiKSA9PSAndHJ1ZScpKSkKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAg ICAgZXhjZXB0IFRpbWVvdXRFeGNlcHRpb246CisgICAgICAgICAgICAgICAgcmV0cnkgLT0gMQor ICAgICAgICAgICAgICAgIHBhc3MKKwogICAgIGRlZiB0b2dnbGVfb3Blbl9zZXJ2ZXIoc2VsZiwg dHJlZV9pdGVtX3RleHQpOgogICAgICAgICBkZWYgY2hlY2tfZm9yX3Bhc3N3b3JkX2RpYWxvZ19v cl90cmVlX29wZW4oZHJpdmVyKToKICAgICAgICAgICAgIHRyeToKQEAgLTY5Miw2ICs5OTAsMTkg QEAgY2xhc3MgUGdhZG1pblBhZ2U6CiAKICAgICAgICAgcmV0dXJuIHNlbGYuX3dhaXRfZm9yKCJl bGVtZW50IHRvIGV4aXN0IiwgZWxlbWVudF9pZl9pdF9leGlzdHMpCiAKKyAgICBkZWYgd2FpdF9m b3JfZWxlbWVudHNfdG9fYXBwZWFyKHNlbGYsIGRyaXZlciwgbG9jYXRvciwgdGltZV92YWx1ZT0y MCk6CisgICAgICAgICIiIlRoaXMgd2lsbCB3YWl0IHVudGlsIGxpc3Qgb2YgZWxlbWVudHMgb3Ig YW4gZWxlbWVudCBpcyB2aXNpYmxlLAorICAgICAgICBUaGUgdGltZSBvdXQgdmFsdWUgaXMgdXNl cmRlZmluZWQiIiIKKyAgICAgICAgZWxlbWVudHNfbG9jYXRlZF9zdGF0dXMgPSBGYWxzZQorICAg ICAgICB0cnk6CisgICAgICAgICAgICBpZiBXZWJEcml2ZXJXYWl0KGRyaXZlciwgdGltZV92YWx1 ZSkudW50aWwoCisgICAgICAgICAgICAgICAgICAgIEVDLnZpc2liaWxpdHlfb2ZfYW55X2VsZW1l bnRzX2xvY2F0ZWQoKAorICAgICAgICAgICAgICAgICAgICAgICAgQnkuWFBBVEgsIGxvY2F0b3Ip KSk6CisgICAgICAgICAgICAgICAgZWxlbWVudHNfbG9jYXRlZF9zdGF0dXMgPSBUcnVlCisgICAg ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgcmV0 dXJuIGVsZW1lbnRzX2xvY2F0ZWRfc3RhdHVzCisKICAgICBkZWYgZmluZF9ieV94cGF0aF9saXN0 KHNlbGYsIHhwYXRoKToKICAgICAgICAgIiIiVGhpcyB3aWxsIGZpbmQgb3V0IGxpc3Qgb2YgZWxl bWVudHMgdGhyb3VnaCBhIHNpbmdsZSB4cGF0aCIiIgogICAgICAgICByZXR1cm4gc2VsZi53YWl0 X2Zvcl9lbGVtZW50cygKQEAgLTc0OSwxMSArMTA2MCwxMSBAQCBjbGFzcyBQZ2FkbWluUGFnZToK ICAgICAgICAgY2xpY2tfc3RhdHVzID0gRmFsc2UKICAgICAgICAgYXR0ZW1wdCA9IDAKIAotICAg ICAgICB3aGlsZSBjbGlja19zdGF0dXMgaXMgbm90IFRydWUgYW5kIGF0dGVtcHQgPCA1OgorICAg ICAgICB3aGlsZSBjbGlja19zdGF0dXMgaXMgbm90IFRydWUgYW5kIGF0dGVtcHQgPCAxMDoKICAg ICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBlbGVtZW50ID0gc2VsZi5kcml2ZXIuZmlu ZF9lbGVtZW50KCpjbGlja19sb2NhdG9yKQogICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xpY2so KQotICAgICAgICAgICAgICAgIFdlYkRyaXZlcldhaXQoc2VsZi5kcml2ZXIsIDUpLnVudGlsKAor ICAgICAgICAgICAgICAgIFdlYkRyaXZlcldhaXQoc2VsZi5kcml2ZXIsIDIpLnVudGlsKAogICAg ICAgICAgICAgICAgICAgICBFQy52aXNpYmlsaXR5X29mX2VsZW1lbnRfbG9jYXRlZCh2ZXJpZnlf bG9jYXRvcikpCiAgICAgICAgICAgICAgICAgY2xpY2tfc3RhdHVzID0gVHJ1ZQogICAgICAgICAg ICAgZXhjZXB0IEV4Y2VwdGlvbjoKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVf dXRpbHMvdHJlZV9hcmVhX2xvY2F0b3JzLnB5IGIvd2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV91dGls cy90cmVlX2FyZWFfbG9jYXRvcnMucHkKaW5kZXggNTI0MDU4ZjA5Li4wYjk4ZTc1NDcgMTAwNjQ0 Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdXRpbHMvdHJlZV9hcmVhX2xvY2F0b3JzLnB5 CisrKyBiL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdXRpbHMvdHJlZV9hcmVhX2xvY2F0b3JzLnB5 CkBAIC0yNiw2ICsyNiw5OCBAQCBjbGFzcyBUcmVlQXJlYUxvY2F0b3JzKCk6CiAgICAgICAgICJm b2xsb3dpbmctc2libGluZzo6dWwvbGkvZGl2L2Rpdi9kaXYvc3BhblsyXS8iIFwKICAgICAgICAg InNwYW5bQGNsYXNzPSdhY2lUcmVlVGV4dCddIgogCisgICAgc2VydmVyX2dyb3VwX3N1Yl9ub2Rl c19leHBfc3RhdHVzID0gXAorICAgICAgICAiLy9kaXZbZGl2W3NwYW5bc3Bhbltjb250YWlucyh0 ZXh0KCksJ1NlcnZlcnMnKV1dXV0iIFwKKyAgICAgICAgIi9mb2xsb3dpbmctc2libGluZzo6dWwv bGkvZGl2IgorCisgICAgc2VydmVyX2dyb3VwX3N1Yl9ub2Rlc19jb25uZWN0ZWRfc3RhdHVzID0g XAorICAgICAgICAiLy9kaXZbZGl2W3NwYW5bc3Bhbltjb250YWlucyh0ZXh0KCksICdTZXJ2ZXJz JyldXV1dLyIgXAorICAgICAgICAiZm9sbG93aW5nLXNpYmxpbmc6OnVsL2xpL2Rpdi9kaXYvZGl2 L3NwYW5bMl0iCisKICAgICBzcGVjaWZpZWRfdHJlZV9ub2RlID0gXAogICAgICAgICAiLy9kaXZb QGlkPSd0cmVlJ10vL3NwYW5bQGNsYXNzPSdhY2lUcmVlSXRlbSddLyIgXAogICAgICAgICAic3Bh blsoQGNsYXNzPSdhY2lUcmVlVGV4dCcpIGFuZCB0ZXh0KCk9J3t9J10iCisKKyAgICBzcGVjaWZp ZWRfdHJlZV9ub2RlX2V4cF9zdGF0dXMgPSBcCisgICAgICAgICIvL2RpdltAaWQ9J3RyZWUnXS8v c3BhbltAY2xhc3M9J2FjaVRyZWVJdGVtJ10vIiBcCisgICAgICAgICJzcGFuWyhAY2xhc3M9J2Fj aVRyZWVUZXh0JykgYW5kIHRleHQoKT0ne30nXSIgXAorICAgICAgICAiLy9hbmNlc3Rvcjo6KltA Y2xhc3M9J2FjaVRyZWVMaW5lJ10iCisKKyAgICBzdWJfbm9kZXNfb2ZfdGFibGVzX25vZGUgPSBc CisgICAgICAgICIvL2RpdltkaXZbZGl2W2RpdltkaXZbZGl2W2RpdltkaXZbc3BhbltzcGFuWyIg XAorICAgICAgICAiY29udGFpbnModGV4dCgpLCdUYWJsZXMnKV1dXV1dXV1dXV0vIiBcCisgICAg ICAgICJmb2xsb3dpbmctc2libGluZzo6dWwvbGkvZGl2Ly9kaXYvc3BhblsyXS9zcGFuWzJdIgor CisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBzdWJfbm9kZXNfb2ZfYV9zZXJ2ZXJfbm9kZShz ZXJ2ZXJfbmFtZSk6CisgICAgICAgIHhwYXRoID0gIi8vZGl2W2RpdltkaXZbc3BhbltzcGFuW2Nv bnRhaW5zKHRleHQoKSwnJXMnKV1dXV1dLyIgXAorICAgICAgICAgICAgICAgICJmb2xsb3dpbmct c2libGluZzo6dWwvbGkvZGl2W0BjbGFzcz0nYWNpVHJlZUxpbmUnXSIgJSBcCisgICAgICAgICAg ICAgICAgc2VydmVyX25hbWUKKyAgICAgICAgcmV0dXJuIHhwYXRoCisKKyAgICBAc3RhdGljbWV0 aG9kCisgICAgZGVmIHN1Yl9ub2Rlc19vZl9hX3NlcnZlcl9ub2RlX2V4cF9zdGF0dXMoc2VydmVy X25hbWUpOgorICAgICAgICB4cGF0aCA9ICIvL2RpdltkaXZbZGl2W3NwYW5bc3Bhbltjb250YWlu cyh0ZXh0KCksJyVzJyldXV1dXS8iIFwKKyAgICAgICAgICAgICAgICAiZm9sbG93aW5nLXNpYmxp bmc6OnVsL2xpL2RpdiIgJSBzZXJ2ZXJfbmFtZQorICAgICAgICByZXR1cm4geHBhdGgKKworICAg IEBzdGF0aWNtZXRob2QKKyAgICBkZWYgZGF0YWJhc2VzX25vZGVfb2ZfYV9zZXJ2ZXJfbm9kZShz ZXJ2ZXJfbmFtZSk6CisgICAgICAgIHhwYXRoID0gIi8vZGl2W2RpdltkaXZbc3BhbltzcGFuW2Nv bnRhaW5zKHRleHQoKSwnJXMnKV1dXV1dLyIgXAorICAgICAgICAgICAgICAgICJmb2xsb3dpbmct c2libGluZzo6dWwvbGkvZGl2L2Rpdi9kaXYvZGl2L3NwYW5bMl0vc3BhblsyICIgXAorICAgICAg ICAgICAgICAgICJhbmQgdGV4dCgpPSdEYXRhYmFzZXMgJ10iICUgc2VydmVyX25hbWUKKyAgICAg ICAgcmV0dXJuIHhwYXRoCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHN1Yl9ub2Rlc19v Zl9kYXRhYmFzZXNfbm9kZShzZXJ2ZXJfbmFtZSk6CisgICAgICAgIHhwYXRoID0gIi8vZGl2W2Rp dltkaXZbc3BhbltzcGFuW2NvbnRhaW5zKHRleHQoKSwnJXMnKV1dXV1dLyIgXAorICAgICAgICAg ICAgICAgICJmb2xsb3dpbmctc2libGluZzo6dWwvbGlbMV0vZGl2L2ZvbGxvd2luZy1zaWJsaW5n Ojp1bC9saS8iIFwKKyAgICAgICAgICAgICAgICAiZGl2L2Rpdi9kaXYvZGl2L2Rpdi9zcGFuWzJd L3NwYW5bQGNsYXNzPSdhY2lUcmVlVGV4dCddIiAlIFwKKyAgICAgICAgICAgICAgICBzZXJ2ZXJf bmFtZQorICAgICAgICByZXR1cm4geHBhdGgKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYg c3ViX25vZGVzX29mX2RhdGFiYXNlc19ub2RlX2V4cF9zdGF0dXMoc2VydmVyX25hbWUpOgorICAg ICAgICB4cGF0aCA9ICIvL2RpdltkaXZbZGl2W3NwYW5bc3Bhbltjb250YWlucyh0ZXh0KCksICcl cycpXV1dXV0vIiBcCisgICAgICAgICAgICAgICAgImZvbGxvd2luZy1zaWJsaW5nOjp1bC9saVsx XS9kaXYvZm9sbG93aW5nLXNpYmxpbmc6OnVsL2xpLyIgXAorICAgICAgICAgICAgICAgICJkaXYi ICUgc2VydmVyX25hbWUKKyAgICAgICAgcmV0dXJuIHhwYXRoCisKKyAgICBAc3RhdGljbWV0aG9k CisgICAgZGVmIHN1Yl9ub2Rlc19vZl9kYXRhYmFzZV9ub2RlKGRhdGFiYXNlX25hbWUpOgorICAg ICAgICB4cGF0aCA9ICIvL2RpdltkaXZbZGl2W2RpdltkaXZbc3BhbltzcGFuW2NvbnRhaW5zKHRl eHQoKSwiIFwKKyAgICAgICAgICAgICAgICAiJyVzJyldXV1dXV1dL2ZvbGxvd2luZy1zaWJsaW5n Ojp1bC9saS9kaXYvZGl2L2Rpdi9kaXYvZGl2LyIgXAorICAgICAgICAgICAgICAgICJkaXYvc3Bh blsyXS9zcGFuWzJdIiAlIGRhdGFiYXNlX25hbWUKKyAgICAgICAgcmV0dXJuIHhwYXRoCisKKyAg ICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHN1Yl9ub2Rlc19vZl9kYXRhYmFzZV9ub2RlX2V4cF9z dGF0dXMoZGF0YWJhc2VfbmFtZSk6CisgICAgICAgIHhwYXRoID0gIi8vZGl2W2RpdltkaXZbZGl2 W2RpdltzcGFuW3NwYW5bY29udGFpbnModGV4dCgpLCAiIFwKKyAgICAgICAgICAgICAgICAiJyVz JyldXV1dXV1dL2ZvbGxvd2luZy1zaWJsaW5nOjp1bC9saS9kaXYiICUgZGF0YWJhc2VfbmFtZQor ICAgICAgICByZXR1cm4geHBhdGgKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgc3ViX25v ZGVzX29mX3NjaGVtYXNfbm9kZShkYXRhYmFzZV9uYW1lKToKKyAgICAgICAgeHBhdGggPSAiLy9k aXZbZGl2W2RpdltkaXZbZGl2W3NwYW5bc3Bhblt0ZXh0KCk9JyVzJ11dXV1dXV0vIiBcCisgICAg ICAgICAgICAgICAgImZvbGxvd2luZy1zaWJsaW5nOjp1bC9saVs3XS91bC9saS9kaXYvL2Rpdi9z cGFuLyIgXAorICAgICAgICAgICAgICAgICJzcGFuW0BjbGFzcz0nYWNpVHJlZVRleHQnXSIgJSBk YXRhYmFzZV9uYW1lCisgICAgICAgIHJldHVybiB4cGF0aAorCisgICAgQHN0YXRpY21ldGhvZAor ICAgIGRlZiBzdWJfbm9kZXNfb2Zfc2NoZW1hc19ub2RlX2V4cF9zdGF0dXMoZGF0YWJhc2VfbmFt ZSk6CisgICAgICAgIHhwYXRoID0gIi8vZGl2W2RpdltkaXZbZGl2W2RpdltzcGFuW3NwYW5bdGV4 dCgpPSclcyddXV1dXV1dLyIgXAorICAgICAgICAgICAgICAgICJmb2xsb3dpbmctc2libGluZzo6 dWwvbGlbN10vdWwvbGkvZGl2IiAlIGRhdGFiYXNlX25hbWUKKyAgICAgICAgcmV0dXJuIHhwYXRo CisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHN1Yl9ub2Rlc19vZl9zY2hlbWFfbm9kZShk YXRhYmFzZV9uYW1lKToKKyAgICAgICAgeHBhdGggPSAiLy9kaXZbZGl2W2RpdltkaXZbZGl2W3Nw YW5bc3Bhblt0ZXh0KCk9JyVzJ11dXV1dXV0vIiBcCisgICAgICAgICAgICAgICAgImZvbGxvd2lu Zy1zaWJsaW5nOjp1bC9saVs3XS91bC9saS91bC9saS9kaXYvL2Rpdi8iIFwKKyAgICAgICAgICAg ICAgICAic3BhblsyXS9zcGFuWzJdIiAlIGRhdGFiYXNlX25hbWUKKyAgICAgICAgcmV0dXJuIHhw YXRoCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHN1Yl9ub2Rlc19vZl9zY2hlbWFfbm9k ZV9leHBfc3RhdHVzKGRhdGFiYXNlX25hbWUpOgorICAgICAgICB4cGF0aCA9ICIvL2RpdltkaXZb ZGl2W2RpdltkaXZbc3BhbltzcGFuW3RleHQoKT0nJXMnXV1dXV1dXS8iIFwKKyAgICAgICAgICAg ICAgICAiZm9sbG93aW5nLXNpYmxpbmc6OnVsL2xpWzddL3VsL2xpL3VsL2xpL2RpdiIgJSBkYXRh YmFzZV9uYW1lCisgICAgICAgIHJldHVybiB4cGF0aApkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Np b24vcHl0aG9uX3Rlc3RfdXRpbHMvdGVzdF9ndWlfaGVscGVyLnB5IGIvd2ViL3JlZ3Jlc3Npb24v cHl0aG9uX3Rlc3RfdXRpbHMvdGVzdF9ndWlfaGVscGVyLnB5CmluZGV4IGMzMTc4N2NjNy4uNzUx NWVlMTU4IDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9weXRob25fdGVzdF91dGlscy90ZXN0 X2d1aV9oZWxwZXIucHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vcHl0aG9uX3Rlc3RfdXRpbHMvdGVz dF9ndWlfaGVscGVyLnB5CkBAIC02LDYgKzYsNyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVh c2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitm cm9tIHJlZ3Jlc3Npb24uZmVhdHVyZV91dGlscy5sb2NhdG9ycyBpbXBvcnQgTmF2TWVudUxvY2F0 b3JzCiAKIAogZGVmIGNsb3NlX2JncHJvY2Vzc19wb3B1cCh0ZXN0ZXIpOgpAQCAtNDEsMyArNDIs MTYgQEAgZGVmIGNsb3NlX2JncHJvY2Vzc19wb3B1cCh0ZXN0ZXIpOgogICAgIGV4Y2VwdCBFeGNl cHRpb246CiAgICAgICAgIHRlc3Rlci5kcml2ZXIuZmluZF9lbGVtZW50X2J5X2Nzc19zZWxlY3Rv cigKICAgICAgICAgICAgICIuYnRuLmJ0bi1zbS1zcS5idG4tcHJpbWFyeS5wZy1iZy1jbG9zZSA+ IGkiKS5jbGljaygpCisKKworZGVmIGNsb3NlX3Byb2Nlc3Nfd2F0Y2hlcih0ZXN0ZXIpOgorICAg IGF0dGVtcHQgPSA1CisgICAgd2hpbGUgYXR0ZW1wdCA+IDA6CisgICAgICAgIGNsb3NlX2J0biA9 IHRlc3Rlci5wYWdlLmZpbmRfYnlfeHBhdGgoCisgICAgICAgICAgICBOYXZNZW51TG9jYXRvcnMu cHJvY2Vzc193YXRjaGVyX2Nsb3NlX2J1dHRvbl94cGF0aCkKKyAgICAgICAgY2xvc2VfYnRuLmNs aWNrKCkKKyAgICAgICAgaWYgbm90IHRlc3Rlci5wYWdlLmNoZWNrX2lmX2VsZW1lbnRfZXhpc3Rf YnlfeHBhdGgoCisgICAgICAgICAgICAgICAgTmF2TWVudUxvY2F0b3JzLnByb2Nlc3Nfd2F0Y2hl cl9jbG9zZV9idXR0b25feHBhdGgsIDEpOgorICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgZWxz ZToKKyAgICAgICAgICAgIGF0dGVtcHQgLT0gMQo= --00000000000012a45805970acbaf--