Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bjos6-0005eV-6c for pgadmin-hackers@arkaria.postgresql.org; Tue, 13 Sep 2016 14:39:38 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bjos5-0004Xv-P0 for pgadmin-hackers@arkaria.postgresql.org; Tue, 13 Sep 2016 14:39:37 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1bjos2-0004Xc-Or for pgadmin-hackers@postgresql.org; Tue, 13 Sep 2016 14:39:34 +0000 Received: from mail-qt0-x22e.google.com ([2607:f8b0:400d:c0d::22e]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1bjoru-0000CU-6j for pgadmin-hackers@postgresql.org; Tue, 13 Sep 2016 14:39:34 +0000 Received: by mail-qt0-x22e.google.com with SMTP id l91so72328717qte.3 for ; Tue, 13 Sep 2016 07:39:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to:cc; bh=ESxs7qxUMEgW2nqcNoyHMkCKAs5Dr5kWXyHoVgCeGL8=; b=eYebNBqq1BJVbrpKH2arsO1WcnhAa33WaMd/tGbGj7lANJjs7e1Kx2+E9h0SLzQRIj Ee0DSRR7Yu5fID9/O5NlVc3yhpZxL6Q9TxxBjpCU70u6g5BcMzxRTO+YCdabRuufKdA4 f4J7Amqt8H3f5o5QfBiMDHxonoMVGLRObbKd2vyQoycNc1yZD2gwaJMmkZX+noOzCWii a14POgp3zlsq9QOcxyig1wxlblP70R8n/Ij5J6W5i8enM90m/xhcp9WiRB5xJ0t/1JSi grXavKi9G+AXr5VpOMWR125ByWn6hnZFw3KSEoGPdLPv6g33UmMv1LphWxayZuJp+Vp+ x1lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=ESxs7qxUMEgW2nqcNoyHMkCKAs5Dr5kWXyHoVgCeGL8=; b=f4SL8n/+5AuMBLsN8w4Y+kZKzADXqFudkXHbWWrVZbOJQ7BNBKcRK9pFWtboShX1Xs wpE9Pdlnz9lxTWFAIFC1DlhUZF3gMGHJ++GRMY6bkf1/Z3nfilO/tBcszE5294V/DQNx g0Xu/kyzs+fzYV+wys3GtsBtgMvhrTnNbQGwFaYrBQ65Q4E7a5f2pQ7WmMIES+vgIAam 6iVcLxm8RSHd0L5Tz72SrKjJ1/YVO8iXAc9ZJb73Fr9/wxY2fdSqNhXSCjSXJrZaRr9M eZ/FvRfxwFWFZQJ/rXNOxnXuslJDxQ98ge+JpGmXv2KBXzwEIkk6q6JAEV4vduyRe/M6 g9yg== X-Gm-Message-State: AE9vXwMpdAsahDhm2KP9xx/368SAJ0B1g4qSA76t5pZXfuLg88RHSWrRbtsY9TQiNwTupfGJKUZ/mEfG3cHWhQV9 X-Received: by 10.200.48.243 with SMTP id w48mr1372119qta.71.1473777564378; Tue, 13 Sep 2016 07:39:24 -0700 (PDT) MIME-Version: 1.0 Received: by 10.200.41.114 with HTTP; Tue, 13 Sep 2016 07:39:23 -0700 (PDT) From: Navnath Gadakh Date: Tue, 13 Sep 2016 20:09:23 +0530 Message-ID: Subject: pgAdmin IV: Unittests-drop objects functionality To: Dave Page Cc: pgadmin-hackers , Kanchan Mohitey Content-Type: multipart/mixed; boundary=001a11404c5c34794b053c649471 X-Pg-Spam-Score: 0.6 (/) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a11404c5c34794b053c649471 Content-Type: multipart/alternative; boundary=001a11404c5c347947053c64946f --001a11404c5c347947053c64946f Content-Type: text/plain; charset=UTF-8 Hi Dave, Please find the patch for drop objects functionality for test framework. Now, test framework is able to drop all objects(like server, database, schema, etc.) which are created during test suite execution. Code included in the patch is only for server and database node. If everything goes fine will send next patch with the remaining nodes in a single patch. *The following files are also affected by the new changes:* web/setup.py, web/config.py, regression/test_advanced_config.json.in *To run the test suite follow the commands* 1. python runtionregress/ests.py --pkg browser.server_groups.servers 2. python regression/runtests.yp --pkg browser.server_groups.servers. databases *Note: *Please do not run test suite for all nodes (python regression/runtests.py) as code modifications have not been done yet. Thanks. -- Thanks, Navnath Gadakh Software Engineer EnterpriseDB Corporation Mobile: +91 9975389878 --001a11404c5c347947053c64946f Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,
=C2=A0 =C2=A0 =C2=A0Please find the patch for= =C2=A0drop obj= ects functionality for test framework.
Now, test fr= amework is able to drop all objects(like server, database, schema, etc.) wh= ich are created during test suite=C2=A0execution. Code included in the patc= h is only for server and database node. If everything goes fine will send n= ext patch with the remaining nodes in a single patch.=C2=A0

<= /div>
The following files are also affected by the new changes:<= /div>
web/setup.<= span id=3D"gmail-39279f21-d8f1-4cf3-804b-d71d95beaaee" class=3D"gmail-GINGE= R_SOFTWARE_mark">py,=C2=A0
web/config.py,=C2=A0
regression/test_advanced_config<= span id=3D"gmail-aeca3750-7ee9-46d8-ba7a-28d822cb40e5" class=3D"gmail-GINGE= R_SOFTWARE_mark">.json.in


To run the test s= uite follow the commands
1. python runti= onregress/est= s.py --pkg = browser.server_groups.servers
2.=C2=A0python = regression/runtests.yp<= span id=3D"gmail-692e091c-d4f4-492f-aad2-bd155daefbaf" class=3D"gmail-GINGE= R_SOFTWARE_mark"> --pkg browser.server_gro= ups.servers.databases=C2=A0
=C2=A0

Note: Please do not run test su= ite for all nodes (python regression/ru= ntests.py) as code=C2=A0modifications have not been done yet.
<= div>
Thanks.


--
Thanks,
Navna= th=C2=A0Gadakh
Software Engineer
EnterpriseDB Corporation
=
Mobile: +91 9975389878=C2=A0

=

--001a11404c5c347947053c64946f-- --001a11404c5c34794b053c649471 Content-Type: application/octet-stream; name="drop_objects.patch" Content-Disposition: attachment; filename="drop_objects.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_it1ktp640 ZGlmZiAtLWdpdCBhL3dlYi9jb25maWcucHkgYi93ZWIvY29uZmlnLnB5Cmlu ZGV4IGU0NzIyNWYuLjI5ZWIzZTkgMTAwNjQ0Ci0tLSBhL3dlYi9jb25maWcu cHkKKysrIGIvd2ViL2NvbmZpZy5weQpAQCAtMTA1LDYgKzEwNSwxMiBAQCBM T0dfRklMRSA9IG9zLnBhdGguam9pbigKICAgICAncGdhZG1pbjQubG9nJwog KQogCisjIFNldCBkZWZhdWx0IHRlc3RpbmcgbW9kZQorVEVTVElOR19NT0RF ID0gRmFsc2UKKworIyBUaGUgZGVmYXVsdCBwYXRoIGZvciBTUUxpdGUgZGF0 YWJhc2UgZm9yIHRlc3RpbmcKK1RFU1RfU1FMSVRFX1BBVEggPSBvcy5wYXRo LmpvaW4oREFUQV9ESVIsICd0ZXN0X3BnYWRtaW40LmRiJykKKwogIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgU2VydmVyIHNldHRpbmdzCiAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3Rlc3RzL3Rlc3RfZGJfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3Rf ZGJfYWRkLnB5CmluZGV4IDQ5MGU3ZDkuLjk3ZTFiZjUgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy90ZXN0cy90ZXN0X2RiX2FkZC5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVz dHMvdGVzdF9kYl9hZGQucHkKQEAgLTcsNTcgKzcsNTIgQEAKICMKICMgIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCiAKK2ltcG9ydCBqc29uCiAKIGZyb20gcGdh ZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIGZy b20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJv bSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3NlcnZlcl9kaWN0CiBmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMudGVzdHMgaW1w b3J0IHV0aWxzIGFzIHNlcnZlcl91dGlscwogZnJvbSAuIGltcG9ydCB1dGls cyBhcyBkYXRhYmFzZV91dGlscwogCiAKIGNsYXNzIERhdGFiYXNlQWRkVGVz dENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIgotICAgIFRoaXMg Y2xhc3Mgd2lsbCBjaGVjayBzZXJ2ZXIgZ3JvdXAgbm9kZSBwcmVzZW50IG9u IHRoZSBvYmplY3QgYnJvd3NlcidzCi0gICAgdHJlZSBub2RlIGJ5IHJlc3Bv bnNlIGNvZGUuCi0gICAgIiIiCisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIHRl c3QgdGhlIEFERCBkYXRhYmFzZSBBUEkiIiIKIAogICAgIHNjZW5hcmlvcyA9 IFsKICAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZGF0YWJh c2Ugbm9kZS4KICAgICAgICAgKCdDaGVjayBEYXRhYmFzZXMgTm9kZSBVUkwn LCBkaWN0KHVybD0nL2Jyb3dzZXIvZGF0YWJhc2Uvb2JqLycpKQogICAgIF0K IAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBzZXRVcENsYXNzKGNscyk6 Ci0gICAgICAgICIiIgotICAgICAgICBUaGlzIGZ1bmN0aW9uIHVzZWQgdG8g YWRkIHRoZSBzZXZlcgotCi0gICAgICAgIDpyZXR1cm46IE5vbmUKLSAgICAg ICAgIiIiCi0KLSAgICAgICAgIyBBZGQgdGhlIHNlcnZlcgotICAgICAgICBz ZXJ2ZXJfdXRpbHMuYWRkX3NlcnZlcihjbHMudGVzdGVyKQotCi0gICAgICAg ICMgQ29ubmVjdCB0byBzZXJ2ZXIKLSAgICAgICAgY2xzLnNlcnZlcl9jb25u ZWN0X3Jlc3BvbnNlLCBjbHMuc2VydmVyX2dyb3VwLCBjbHMuc2VydmVyX2lk cyA9IFwKLSAgICAgICAgICAgIHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZl cihjbHMudGVzdGVyKQotCi0gICAgICAgIGlmIGxlbihjbHMuc2VydmVyX2Nv bm5lY3RfcmVzcG9uc2UpID09IDA6Ci0gICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIk5vIFNlcnZlcihzKSBjb25uZWN0ZWQgdG8gYWRkIHRoZSBkYXRh YmFzZSEhISIpCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBwYXNz CiAKICAgICBkZWYgcnVuVGVzdChzZWxmKToKICAgICAgICAgIiIiIFRoaXMg ZnVuY3Rpb24gd2lsbCBhZGQgZGF0YWJhc2UgdW5kZXIgMXN0IHNlcnZlciBv ZiB0cmVlIG5vZGUuICIiIgotCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmFk ZF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfY29ubmVjdF9y ZXNwb25zZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2VydmVyX2lkcykKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRl ZiB0ZWFyRG93bkNsYXNzKGNscyk6CisgICAgICAgIHNlcnZlcl9pZCA9IHRl c3Rfc2VydmVyX2RpY3RbInNlcnZlciJdWzBdWyJzZXJ2ZXJfaWQiXQorICAg ICAgICBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VydmVy X2lkKQorCisgICAgICAgIGRhdGEgPSBkYXRhYmFzZV91dGlscy5nZXRfZGJf ZGF0YSgpCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IGRhdGFbJ25hbWUnXQor ICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3Qoc2VsZi51cmwg KyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiLyIgKyBzdHIoc2VydmVyX2lkKSArICIv IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9 anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKyAgICAgICAg c2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkK KyAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2Uu ZGF0YS5kZWNvZGUoJ3V0Zi04JykpCisgICAgICAgIGRiX2lkID0gcmVzcG9u c2VfZGF0YVsnbm9kZSddWydfaWQnXQorICAgICAgICBkYl9kaWN0ID0geyJk Yl9pZCI6IGRiX2lkLCAiZGJfbmFtZSI6IHNlbGYuZGJfbmFtZX0KKyAgICAg ICAgdXRpbHMud3JpdGVfbm9kZV9pbmZvKGludChzZXJ2ZXJfaWQpLCAiZGlk IiwgZGJfZGljdCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAg ICAgIiIiCi0gICAgICAgIFRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgYWRk ZWQgZGF0YWJhc2UsIGFkZGVkIHNlcnZlciBhbmQgdGhlCi0gICAgICAgICdw YXJlbnRfaWQucGtsJyBmaWxlIHdoaWNoIGlzIGNyZWF0ZWQgaW4gc2V0dXAo KQotCi0gICAgICAgIDpyZXR1cm46IE5vbmUKKyAgICAgICAgVGhpcyBmdW5j dGlvbiBkZWxldGUgdGhlIGRhdGFiYXNlIGZyb20gc2VydmVyIGFkZGVkIGlu IFNRTGl0ZSBhbmQKKyAgICAgICAgY2xlYXJzIHRoZSBub2RlX2luZm9fZGlj dAogICAgICAgICAiIiIKLQotICAgICAgICBkYXRhYmFzZV91dGlscy5kZWxl dGVfZGF0YWJhc2UoY2xzLnRlc3RlcikKLSAgICAgICAgc2VydmVyX3V0aWxz LmRlbGV0ZV9zZXJ2ZXIoY2xzLnRlc3RlcikKLSAgICAgICAgdXRpbHMuZGVs ZXRlX3BhcmVudF9pZF9maWxlKCkKKyAgICAgICAgY29ubmVjdGlvbiA9IHV0 aWxzLmdldF9kYl9jb25uZWN0aW9uKHNlbGYuc2VydmVyWydkYiddLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dv cmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2VydmVyWydob3N0J10sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsncG9y dCddKQorICAgICAgICB1dGlscy5kcm9wX2RhdGFiYXNlKGNvbm5lY3Rpb24s IHNlbGYuZGJfbmFtZSkKKyAgICAgICAgdXRpbHMuY2xlYXJfbm9kZV9pbmZv X2RpY3QoKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfZGVs ZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfZGVsZXRlLnB5CmluZGV4 IDc1NmE2ODkuLjgzOTMxM2EgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90 ZXN0X2RiX2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9k ZWxldGUucHkKQEAgLTYsMTYgKzYsMTQgQEAKICMgVGhpcyBzb2Z0d2FyZSBp cyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAj ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCiBmcm9tIHBnYWRtaW4udXRpbHMu cm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiBmcm9tIHJlZ3Jlc3Np b24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gcmVncmVzc2lv biBpbXBvcnQgdGVzdF9zZXJ2ZXJfZGljdAogZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLnRlc3RzIGltcG9ydCB1dGlscyBh cyBzZXJ2ZXJfdXRpbHMKLWZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZGF0YWJh c2VfdXRpbHMKIAogCiBjbGFzcyBEYXRhYmFzZURlbGV0ZVRlc3RDYXNlKEJh c2VUZXN0R2VuZXJhdG9yKToKICAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGRl bGV0ZSB0aGUgZGF0YWJhc2UgdW5kZXIgbGFzdCBhZGRlZCBzZXJ2ZXIuICIi IgotCiAgICAgc2NlbmFyaW9zID0gWwogICAgICAgICAjIEZldGNoaW5nIGRl ZmF1bHQgVVJMIGZvciBkYXRhYmFzZSBub2RlLgogICAgICAgICAoJ0NoZWNr IERhdGFiYXNlcyBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9kYXRh YmFzZS9vYmovJykpCkBAIC0yMyw0MiArMjEsMjMgQEAgY2xhc3MgRGF0YWJh c2VEZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAKICAgICBA Y2xhc3NtZXRob2QKICAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgotICAgICAg ICAiIiIKLSAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtIHRoZSB0aHJl ZSB0YXNrcwotICAgICAgICAgMS4gQWRkIHRoZSB0ZXN0IHNlcnZlcgotICAg ICAgICAgMi4gQ29ubmVjdCB0byBzZXJ2ZXIKLSAgICAgICAgIDMuIEFkZCB0 aGUgZGF0YWJhc2VzCi0KLSAgICAgICAgOnJldHVybjogTm9uZQotICAgICAg ICAiIiIKLQotICAgICAgICAjIEZpcnN0bHksIGFkZCB0aGUgc2VydmVyCi0g ICAgICAgIHNlcnZlcl91dGlscy5hZGRfc2VydmVyKGNscy50ZXN0ZXIpCi0K LSAgICAgICAgIyBDb25uZWN0IHRvIHNlcnZlcgotICAgICAgICBjbHMuc2Vy dmVyX2Nvbm5lY3RfcmVzcG9uc2UsIGNscy5zZXJ2ZXJfZ3JvdXAsIGNscy5z ZXJ2ZXJfaWRzID0gXAotICAgICAgICAgICAgc2VydmVyX3V0aWxzLmNvbm5l Y3Rfc2VydmVyKGNscy50ZXN0ZXIpCi0KLSAgICAgICAgaWYgbGVuKGNscy5z ZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSkgPT0gMDoKLSAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiTm8gU2VydmVyKHMpIGNvbm5lY3RlZCB0byBhZGQg dGhlIGRhdGFiYXNlISEhIikKLQotICAgICAgICAjIEFkZCBkYXRhYmFzZQot ICAgICAgICBkYXRhYmFzZV91dGlscy5hZGRfZGF0YWJhc2UoY2xzLnRlc3Rl ciwgY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNlcnZlcl9pZHMpCisgICAg ICAgIGNscy5kYl9pZCA9IHV0aWxzLmNyZWF0ZV9kYXRhYmFzZShjbHMuc2Vy dmVyLCAidGVzdF9kYl9kZWxldGUiKQogCiAgICAgZGVmIHJ1blRlc3Qoc2Vs Zik6CiAgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHRo ZSBkYXRhYmFzZS4iIiIKLQotICAgICAgICBkYXRhYmFzZV91dGlscy5kZWxl dGVfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIpCisgICAgICAgIHNlcnZlcl9pZCA9 IHRlc3Rfc2VydmVyX2RpY3RbInNlcnZlciJdWzBdWyJzZXJ2ZXJfaWQiXQor ICAgICAgICBzZXJ2ZXJfcmVzcG9uc2UgPSBzZXJ2ZXJfdXRpbHMuY29ubmVj dF9zZXJ2ZXIoc2VsZiwgc2VydmVyX2lkKQorICAgICAgICBpZiBzZXJ2ZXJf cmVzcG9uc2VbImRhdGEiXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICBk Yl9pZCA9IHNlbGYuZGJfaWQKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2Vs Zi50ZXN0ZXIuZGVsZXRlKAorICAgICAgICAgICAgICAgIHNlbGYudXJsICsg c3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAg ICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKGRiX2lkKSwKKyAgICAg ICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisgICAgICAgICAg ICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAw KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJDb3VsZCBub3QgY29ubmVjdCB0byBzZXJ2ZXIgdG8gZGVsZXRlIHRoZSAi CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRhdGFiYXNlLiIpCiAK ICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgdGVhckRvd25DbGFzcyhjbHMp OgotICAgICAgICAiIiIKLSAgICAgICAgVGhpcyBmdW5jdGlvbiBkZWxldGVz IHRoZSBhZGRlZCBzZXJ2ZXIgYW5kIHRoZSAncGFyZW50X2lkLnBrbCcgZmls ZQotICAgICAgICB3aGljaCBpcyBjcmVhdGVkIGluIHNldHVwKCkgZnVuY3Rp b24uCi0KLSAgICAgICAgOnJldHVybjogTm9uZQotICAgICAgICAiIiIKLQot ICAgICAgICBzZXJ2ZXJfdXRpbHMuZGVsZXRlX3NlcnZlcihjbHMudGVzdGVy KQotICAgICAgICB1dGlscy5kZWxldGVfcGFyZW50X2lkX2ZpbGUoKQorICAg ICAgICBwYXNzCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9n ZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9nZXQucHkKaW5kZXggNzM5 ZGZmOC4uNDFlZDE0MCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3Rf ZGJfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2dldC5weQpA QCAtOSw5ICs5LDcgQEAKIAogZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGlt cG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogZnJvbSByZWdyZXNzaW9uIGltcG9y dCB0ZXN0X3V0aWxzIGFzIHV0aWxzCi1mcm9tIHJlZ3Jlc3Npb24udGVzdF9z ZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEKLWZyb20gcmVncmVzc2lvbi50ZXN0 X3V0aWxzIGltcG9ydCBnZXRfaWRzCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIHNl cnZlcl91dGlscworZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3NlcnZl cl9kaWN0CiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxz CiAKIApAQCAtMTksNjYgKzE3LDMyIEBAIGNsYXNzIERhdGFiYXNlc0dldFRl c3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAiIiIKICAgICBUaGlz IGNsYXNzIHdpbGwgZmV0Y2ggZGF0YWJhc2UgYWRkZWQgdW5kZXIgbGFzdCBh ZGRlZCBzZXJ2ZXIuCiAgICAgIiIiCi0KICAgICBzY2VuYXJpb3MgPSBbCiAg ICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGRhdGFiYXNlIG5v ZGUuCiAgICAgICAgICgnQ2hlY2sgRGF0IGFiYXNlcyBOb2RlIFVSTCcsIGRp Y3QodXJsPScvYnJvd3Nlci9kYXRhYmFzZS9vYmovJykpCiAgICAgXQogCi0g ICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHNldFVwQ2xhc3MoY2xzKToKLSAg ICAgICAgIiIiCi0gICAgICAgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybSB0aGUg dGhyZWUgdGFza3MKLSAgICAgICAgIDEuIEFkZCB0aGUgdGVzdCBzZXJ2ZXIK LSAgICAgICAgIDIuIENvbm5lY3QgdG8gc2VydmVyCi0gICAgICAgICAzLiBB ZGQgdGhlIGRhdGFiYXNlcwotCi0gICAgICAgIDpyZXR1cm46IE5vbmUKLSAg ICAgICAgIiIiCi0KLSAgICAgICAgIyBGaXJzdGx5LCBhZGQgdGhlIHNlcnZl cgotICAgICAgICBzZXJ2ZXJfdXRpbHMuYWRkX3NlcnZlcihjbHMudGVzdGVy KQotCi0gICAgICAgICMgQ29ubmVjdCB0byBzZXJ2ZXIKLSAgICAgICAgY2xz LnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLCBjbHMuc2VydmVyX2dyb3VwLCBj bHMuc2VydmVyX2lkcyA9IFwKLSAgICAgICAgICAgIHNlcnZlcl91dGlscy5j b25uZWN0X3NlcnZlcihjbHMudGVzdGVyKQotCi0gICAgICAgIGlmIGxlbihj bHMuc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UpID09IDA6Ci0gICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIk5vIFNlcnZlcihzKSBjb25uZWN0ZWQgdG8g YWRkIHRoZSBkYXRhYmFzZSEhISIpCi0KLSAgICAgICAgIyBBZGQgZGF0YWJh c2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuYWRkX2RhdGFiYXNlKGNscy50 ZXN0ZXIsIGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5zZXJ2ZXJfaWRzKQot CiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAgICAgICAgICIiIiBUaGlzIGZ1 bmN0aW9uIHdpbGwgZmV0Y2ggYWRkZWQgZGF0YWJhc2UuICIiIgotCi0gICAg ICAgIGFsbF9pZCA9IGdldF9pZHMoKQotICAgICAgICBzZXJ2ZXJfaWRzID0g YWxsX2lkWyJzaWQiXQotCi0gICAgICAgIGRiX2lkc19kaWN0ID0gYWxsX2lk WyJkaWQiXVswXQotICAgICAgICBzcnZfZ3JwID0gY29uZmlnX2RhdGFbJ3Nl cnZlcl9ncm91cCddCi0KLSAgICAgICAgZm9yIHNlcnZlcl9pZCBpbiBzZXJ2 ZXJfaWRzOgotICAgICAgICAgICAgZGJfaWQgPSBkYl9pZHNfZGljdFtpbnQo c2VydmVyX2lkKV0KLSAgICAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0 aWxzLnZlcmlmeV9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc3J2X2dycCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGJfaWQpCi0gICAgICAgICAgICBp ZiBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6Cisg ICAgICAgIHNlcnZlcl9kYXRhID0gdGVzdF9zZXJ2ZXJfZGljdFsiZGF0YWJh c2UiXVswXQorICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsic2Vy dmVyX2lkIl0KKyAgICAgICAgZGJfaWQgPSBzZXJ2ZXJfZGF0YVsnZGJfaWQn XQorICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy52ZXJpZnlfZGF0 YWJhc2Uoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZl cl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRiX2lkKQorICAgICAgICBpZiBkYl9jb25bImluZm8iXSA9 PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICB0cnk6CiAg ICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCi0g ICAgICAgICAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHNydl9ncnApICsg Jy8nICsgc3RyKHNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgICAg ICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8n ICsgc3RyKAorICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkKSAr ICcvJyArCiAgICAgICAgICAgICAgICAgICAgIHN0cihkYl9pZCksIGZvbGxv d19yZWRpcmVjdHM9VHJ1ZSkKICAgICAgICAgICAgICAgICBzZWxmLmFzc2Vy dEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotCi0gICAgQGNs YXNzbWV0aG9kCi0gICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKLSAgICAg ICAgIiIiCi0gICAgICAgIFRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgYWRk ZWQgZGF0YWJhc2UsIGFkZGVkIHNlcnZlcgotICAgICAgICBhbmQgdGhlICdw YXJlbnRfaWQucGtsJyBmaWxlIHdoaWNoIGlzIGNyZWF0ZWQgaW4gc2V0dXAo KSBmdW5jdGlvbi4KLQotICAgICAgICA6cmV0dXJuOiBOb25lCi0gICAgICAg ICIiIgotCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRlbGV0ZV9kYXRhYmFz ZShjbHMudGVzdGVyKQotICAgICAgICBzZXJ2ZXJfdXRpbHMuZGVsZXRlX3Nl cnZlcihjbHMudGVzdGVyKQotICAgICAgICB1dGlscy5kZWxldGVfcGFyZW50 X2lkX2ZpbGUoKQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBl eGNlcHRpb246CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJF cnJvciB3aGlsZSBnZXR0aW5nIGRhdGFiYXNlLiAlcyIgJSBleGNlcHRpb24p CisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgICMgRGlz Y29ubmVjdCBkYXRhYmFzZSB0byBkZWxldGUgaXQKKyAgICAgICAgICAgICAg ICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNl cnZlcl9pZCwgZGJfaWQpCisKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJh c2UuIikKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX3B1dC5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX3B1dC5weQppbmRleCBjMzJlM2Nh Li4yMTNjOTQ3IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9w dXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfcHV0LnB5CkBAIC0x MSwxNyArMTEsMTMgQEAgaW1wb3J0IGpzb24KIAogZnJvbSBwZ2FkbWluLnV0 aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogZnJvbSByZWdy ZXNzaW9uIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIHJlZ3Jl c3Npb24gaW1wb3J0IHRlc3Rfc2VydmVyX2RpY3QKIGZyb20gcmVncmVzc2lv bi50ZXN0X3NldHVwIGltcG9ydCBhZHZhbmNlZF9jb25maWdfZGF0YQotZnJv bSByZWdyZXNzaW9uLnRlc3RfdXRpbHMgaW1wb3J0IGdldF9pZHMKLWZyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy50ZXN0cyBp bXBvcnQgdXRpbHMgYXMgc2VydmVyX3V0aWxzCiBmcm9tIC4gaW1wb3J0IHV0 aWxzIGFzIGRhdGFiYXNlX3V0aWxzCiAKIAogY2xhc3MgRGF0YWJhc2VzVXBk YXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIgotICAg IFRoaXMgY2xhc3Mgd2lsbCB1cGRhdGUgdGhlIGRhdGFiYXNlIHVuZGVyIGxh c3QgYWRkZWQgc2VydmVyLgotICAgICIiIgotCisgICAgIiIiVGhpcyBjbGFz cyB3aWxsIHVwZGF0ZSB0aGUgZGF0YWJhc2UgdW5kZXIgbGFzdCBhZGRlZCBz ZXJ2ZXIuIiIiCiAgICAgc2NlbmFyaW9zID0gWwogICAgICAgICAjIEZldGNo aW5nIGRlZmF1bHQgVVJMIGZvciBkYXRhYmFzZSBub2RlLgogICAgICAgICAo J0NoZWNrIERhdGFiYXNlcyBOb2RlJywgZGljdCh1cmw9Jy9icm93c2VyL2Rh dGFiYXNlL29iai8nKSkKQEAgLTI5LDYzICsyNSw0NiBAQCBjbGFzcyBEYXRh YmFzZXNVcGRhdGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAKICAg ICBAY2xhc3NtZXRob2QKICAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgotICAg ICAgICAiIiIKLSAgICAgICAgVGhpcyBmdW5jdGlvbiBwZXJmb3JtIHRoZSB0 aHJlZSB0YXNrcwotICAgICAgICAgMS4gQWRkIHRoZSB0ZXN0IHNlcnZlcgot ICAgICAgICAgMi4gQ29ubmVjdCB0byBzZXJ2ZXIKLSAgICAgICAgIDMuIEFk ZCB0aGUgZGF0YWJhc2VzCi0KLSAgICAgICAgOnJldHVybjogTm9uZQotICAg ICAgICAiIiIKLQotICAgICAgICAjIEZpcnN0bHksIGFkZCB0aGUgc2VydmVy Ci0gICAgICAgIHNlcnZlcl91dGlscy5hZGRfc2VydmVyKGNscy50ZXN0ZXIp Ci0KLSAgICAgICAgIyBDb25uZWN0IHRvIHNlcnZlcgotICAgICAgICBjbHMu c2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UsIGNscy5zZXJ2ZXJfZ3JvdXAsIGNs cy5zZXJ2ZXJfaWRzID0gXAotICAgICAgICAgICAgc2VydmVyX3V0aWxzLmNv bm5lY3Rfc2VydmVyKGNscy50ZXN0ZXIpCi0KLSAgICAgICAgaWYgbGVuKGNs cy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSkgPT0gMDoKLSAgICAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigiTm8gU2VydmVyKHMpIGNvbm5lY3RlZCB0byBh ZGQgdGhlIGRhdGFiYXNlISEhIikKLQotICAgICAgICAjIEFkZCBkYXRhYmFz ZQotICAgICAgICBkYXRhYmFzZV91dGlscy5hZGRfZGF0YWJhc2UoY2xzLnRl c3RlciwgY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNlcnZlcl9pZHMpCisg ICAgICAgIGNscy5kYl9uYW1lID0gInRlc3RfZGJfcHV0IgorICAgICAgICBj bHMuZGJfaWQgPSB1dGlscy5jcmVhdGVfZGF0YWJhc2UoY2xzLnNlcnZlciwg Y2xzLmRiX25hbWUpCiAKICAgICBkZWYgcnVuVGVzdChzZWxmKToKICAgICAg ICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGNvbW1lbnRz IGZpZWxkIG9mIGRhdGFiYXNlLiIiIgotCi0gICAgICAgIGFsbF9pZCA9IGdl dF9pZHMoKQotICAgICAgICBzZXJ2ZXJfaWRzID0gYWxsX2lkWyJzaWQiXQot ICAgICAgICBkYl9pZHNfZGljdCA9IGFsbF9pZFsiZGlkIl1bMF0KLQotICAg ICAgICBmb3Igc2VydmVyX2lkIGluIHNlcnZlcl9pZHM6Ci0gICAgICAgICAg ICBkYl9pZCA9IGRiX2lkc19kaWN0W2ludChzZXJ2ZXJfaWQpXQotICAgICAg ICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMudmVyaWZ5X2RhdGFiYXNl KHNlbGYudGVzdGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGJfaWQpCi0gICAgICAgICAgICBp ZiBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6Cisg ICAgICAgIHNlcnZlcl9pZCA9IHRlc3Rfc2VydmVyX2RpY3RbInNlcnZlciJd WzBdWyJzZXJ2ZXJfaWQiXQorICAgICAgICBkYl9pZCA9IHNlbGYuZGJfaWQK KyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMudmVyaWZ5X2RhdGFi YXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJf aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkYl9pZCkKKyAgICAgICAgaWYgZGJfY29uWyJpbmZvIl0gPT0g IkRhdGFiYXNlIGNvbm5lY3RlZC4iOgorICAgICAgICAgICAgdHJ5OgogICAg ICAgICAgICAgICAgIGRhdGEgPSB7Ci0gICAgICAgICAgICAgICAgICAgICJj b21tZW50cyI6IGFkdmFuY2VkX2NvbmZpZ19kYXRhWyJkYl91cGRhdGVfZGF0 YSJdWzBdCi0gICAgICAgICAgICAgICAgICAgIFsiY29tbWVudCJdLAorICAg ICAgICAgICAgICAgICAgICAiY29tbWVudHMiOiBhZHZhbmNlZF9jb25maWdf ZGF0YVsiZGJfdXBkYXRlX2RhdGEiXVsiY29tbWVudCJdLAogICAgICAgICAg ICAgICAgICAgICAiaWQiOiBkYl9pZAogICAgICAgICAgICAgICAgIH0KLSAg ICAgICAgICAgICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQo Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNF UlZFUl9HUk9VUCkgKyAnLycgKyBzdHIoCisgICAgICAgICAgICAgICAgcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoc2VsZi51cmwgKyBzdHIodXRpbHMu U0VSVkVSX0dST1VQKSArICcvJyArIHN0cigKICAgICAgICAgICAgICAgICAg ICAgICAgIHNlcnZlcl9pZCkgKyAnLycgKwogICAgICAgICAgICAgICAgICAg ICBzdHIoZGJfaWQpLCBkYXRhPWpzb24uZHVtcHMoZGF0YSksIGZvbGxvd19y ZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVx dWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAg ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29k ZSwgMjAwKQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGNl cHRpb246CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJFcnJv ciB3aGlsZSB1cGRhdGluZyBkYXRhYmFzZSBkZXRhaWxzLiAlcyIgJQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHRpb24pCisgICAg ICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgICMgRGlzY29ubmVj dCBkYXRhYmFzZSB0byBkZWxldGUgaXQKKyAgICAgICAgICAgICAgICBkYXRh YmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlcnZlcl9p ZCwgZGJfaWQpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkVycm9yIHdoaWxlIHVwZGF0aW5nIGRhdGFiYXNlIGRldGFp bHMuIikKIAogICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiB0ZWFyRG93bkNs YXNzKHNlbGYpOgorICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6CiAgICAg ICAgICIiIgotICAgICAgICBUaGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhlIGFk ZGVkIHNlcnZlciBhbmQgJ3BhcmVudF9pZC5wa2wnIGZpbGUKLSAgICAgICAg d2hpY2ggaXMgY3JlYXRlZCBpbiBzZXR1cCgpIGZ1bmN0aW9uLgotCi0gICAg ICAgIDpyZXR1cm46IE5vbmUKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBkZWxl dGUgdGhlIGRhdGFiYXNlIGZyb20gc2VydmVyIGFkZGVkIGluIFNRTGl0ZSBh bmQKKyAgICAgICAgY2xlYXJzIHRoZSBub2RlX2luZm9fZGljdAogICAgICAg ICAiIiIKLQotICAgICAgICBkYXRhYmFzZV91dGlscy5kZWxldGVfZGF0YWJh c2Uoc2VsZi50ZXN0ZXIpCi0gICAgICAgIHNlcnZlcl91dGlscy5kZWxldGVf c2VydmVyKHNlbGYudGVzdGVyKQotICAgICAgICB1dGlscy5kZWxldGVfcGFy ZW50X2lkX2ZpbGUoKQorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0 X2RiX2Nvbm5lY3Rpb24oY2xzLnNlcnZlclsnZGInXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5zZXJ2ZXJb J3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjbHMuc2VydmVyWydkYl9wYXNzd29yZCddLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xz LnNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2xzLnNlcnZlclsncG9ydCddKQorICAgICAg ICB1dGlscy5kcm9wX2RhdGFiYXNlKGNvbm5lY3Rpb24sIGNscy5kYl9uYW1l KQorICAgICAgICB1dGlscy5jbGVhcl9ub2RlX2luZm9fZGljdCgpCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvdGVzdHMvdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMv dXRpbHMucHkKaW5kZXggMzdhOTViYS4uNzMyZTk4ZCAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3Rlc3RzL3V0aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy91dGls cy5weQpAQCAtOCwxMSArOCw5IEBACiAjICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCiAKIGltcG9ydCBqc29uCi1pbXBvcnQgb3MKLWltcG9ydCBw aWNrbGUKIGltcG9ydCB1dWlkCiAKLWZyb20gcmVncmVzc2lvbi50ZXN0X3Nl dHVwIGltcG9ydCBwaWNrbGVfcGF0aCwgYWR2YW5jZWRfY29uZmlnX2RhdGEK K2Zyb20gcmVncmVzc2lvbi50ZXN0X3NldHVwIGltcG9ydCBhZHZhbmNlZF9j b25maWdfZGF0YQogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBzZXJ2ZXJfdXRpbHMK IGZyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwog CkBAIC0yMSwyNiArMTksMTEgQEAgREFUQUJBU0VfVVJMID0gJy9icm93c2Vy L2RhdGFiYXNlL29iai8nCiBEQVRBQkFTRV9DT05ORUNUX1VSTCA9ICdicm93 c2VyL2RhdGFiYXNlL2Nvbm5lY3QvJwogCiAKLWRlZiBnZXRfZGJfZGF0YShz ZXJ2ZXJfY29ubmVjdF9kYXRhKToKLSAgICAiIiIKLSAgICBUaGlzIGZ1bmN0 aW9uIGlzIHVzZWQgdG8gZ2V0IGFkdmFuY2UgY29uZmlnIHRlc3QgZGF0YSBm b3IgYXBwcm9wcmlhdGUKLSAgICBzZXJ2ZXIKLQotICAgIDpwYXJhbSBzZXJ2 ZXJfY29ubmVjdF9kYXRhOiBsaXN0IG9mIHNlcnZlciBkZXRhaWxzCi0gICAg OnJldHVybiBkYXRhOiBkYXRhYmFzZSBkZXRhaWxzCi0gICAgOnJ0eXBlOiBk aWN0Ci0gICAgIiIiCi0KLSAgICBhZHZfY29uZmlnX2RhdGEgPSBOb25lCitk ZWYgZ2V0X2RiX2RhdGEoKToKKyAgICAiIiJUaGlzIGZ1bmN0aW9uIHJldHVy bnMgdGhlIGRhdGFiYXNlIGRldGFpbHMgZnJvbSBqc29uIGZpbGUiIiIKICAg ICBkYXRhID0gTm9uZQotICAgIGRiX3VzZXIgPSBzZXJ2ZXJfY29ubmVjdF9k YXRhWydkYXRhJ11bJ3VzZXInXVsnbmFtZSddCi0KLSAgICAjIEdldCB0aGUg Y29uZmlnIGRhdGEgb2YgYXBwcm9wcmlhdGUgZGIgdXNlcgotICAgIGZvciBj b25maWdfdGVzdF9kYXRhIGluIGFkdmFuY2VkX2NvbmZpZ19kYXRhWydhZGRf ZGF0YWJhc2VfZGF0YSddOgotICAgICAgICBpZiBkYl91c2VyID09IGNvbmZp Z190ZXN0X2RhdGFbJ293bmVyJ106Ci0gICAgICAgICAgICBhZHZfY29uZmln X2RhdGEgPSBjb25maWdfdGVzdF9kYXRhCi0KLSAgICBpZiBhZHZfY29uZmln X2RhdGEgaXMgbm90IE5vbmU6CisgICAgaWYgYWR2YW5jZWRfY29uZmlnX2Rh dGFbJ2FkZF9kYXRhYmFzZV9kYXRhJ10gaXMgbm90IE5vbmU6CisgICAgICAg IGFkdl9jb25maWdfZGF0YSA9IGFkdmFuY2VkX2NvbmZpZ19kYXRhWydhZGRf ZGF0YWJhc2VfZGF0YSddCiAgICAgICAgIGRhdGEgPSB7CiAgICAgICAgICAg ICAiZGF0YWNsIjogYWR2X2NvbmZpZ19kYXRhWydwcml2aWxlZ2VzX2FjbCdd LAogICAgICAgICAgICAgImRhdGNvbm5saW1pdCI6IGFkdl9jb25maWdfZGF0 YVsnY29ubl9saW1pdCddLApAQCAtNTgsNjcgKzQxLDEzIEBAIGRlZiBnZXRf ZGJfZGF0YShzZXJ2ZXJfY29ubmVjdF9kYXRhKToKICAgICByZXR1cm4gZGF0 YQogCiAKLWRlZiB3cml0ZV9kYl9pZChyZXNwb25zZV9kYXRhKToKLSAgICAi IiIKLSAgICBUaGlzIGZ1bmN0aW9uIHdyaXRlcyB0aGUgc2VydmVyIGFuZCBk YXRhYmFzZSByZWxhdGVkIGRhdGEgbGlrZSBzZXJ2ZXIKLSAgICBuYW1lLCBz ZXJ2ZXIgaWQgLCBkYXRhYmFzZSBuYW1lLCBkYXRhYmFzZSBpZCBldGMuCi0K LSAgICA6cGFyYW0gcmVzcG9uc2VfZGF0YTogc2VydmVyIGFuZCBkYXRhYmFz ZXMgZGV0YWlscwotICAgIDp0eXBlIHJlc3BvbnNlX2RhdGE6IGRpY3QKLSAg ICA6cmV0dXJuOiBOb25lCi0gICAgIiIiCi0KLSAgICBkYl9pZCA9IHJlc3Bv bnNlX2RhdGFbJ25vZGUnXVsnX2lkJ10KLSAgICBzZXJ2ZXJfaWQgPSByZXNw b25zZV9kYXRhWydub2RlJ11bJ19waWQnXQotICAgIHBpY2tsZV9pZF9kaWN0 ID0gdXRpbHMuZ2V0X3BpY2tsZV9pZF9kaWN0KCkKLSAgICBpZiBvcy5wYXRo LmlzZmlsZShwaWNrbGVfcGF0aCk6Ci0gICAgICAgIGV4aXN0aW5nX3NlcnZl cl9pZCA9IG9wZW4ocGlja2xlX3BhdGgsICdyYicpCi0gICAgICAgIHRvbF9z ZXJ2ZXJfaWQgPSBwaWNrbGUubG9hZChleGlzdGluZ19zZXJ2ZXJfaWQpCi0g ICAgICAgIHBpY2tsZV9pZF9kaWN0ID0gdG9sX3NlcnZlcl9pZAotICAgIGlm ICdkaWQnIGluIHBpY2tsZV9pZF9kaWN0OgotICAgICAgICBpZiBwaWNrbGVf aWRfZGljdFsnZGlkJ106Ci0gICAgICAgICAgICAjIEFkZCB0aGUgZGJfaWQg YXMgdmFsdWUgaW4gZGljdAotICAgICAgICAgICAgcGlja2xlX2lkX2RpY3Rb ImRpZCJdWzBdLnVwZGF0ZSh7c2VydmVyX2lkOiBkYl9pZH0pCi0gICAgICAg IGVsc2U6Ci0gICAgICAgICAgICAjIENyZWF0ZSBuZXcgZGljdCB3aXRoIHNl cnZlcl9pZCBhbmQgZGJfaWQKLSAgICAgICAgICAgIHBpY2tsZV9pZF9kaWN0 WyJkaWQiXS5hcHBlbmQoe3NlcnZlcl9pZDogZGJfaWR9KQotICAgIGRiX291 dHB1dCA9IG9wZW4ocGlja2xlX3BhdGgsICd3YicpCi0gICAgcGlja2xlLmR1 bXAocGlja2xlX2lkX2RpY3QsIGRiX291dHB1dCkKLSAgICBkYl9vdXRwdXQu Y2xvc2UoKQotCi0KLWRlZiBhZGRfZGF0YWJhc2UodGVzdGVyLCBzZXJ2ZXJf Y29ubmVjdF9yZXNwb25zZSwgc2VydmVyX2lkcyk6Ci0gICAgIiIiCi0gICAg VGhpcyBmdW5jdGlvbiBhZGQgdGhlIGRhdGFiYXNlIGludG8gc2VydmVycwot Ci0gICAgOnBhcmFtIHRlc3RlcjogZmxhc2sgdGVzdCBjbGllbnQKLSAgICA6 dHlwZSB0ZXN0ZXI6IGZsYXNrIHRlc3Qgb2JqZWN0Ci0gICAgOnBhcmFtIHNl cnZlcl9jb25uZWN0X3Jlc3BvbnNlOiBzZXJ2ZXIgcmVzcG9uc2UKLSAgICA6 dHlwZSBzZXJ2ZXJfY29ubmVjdF9yZXNwb25zZTogZGljdAotICAgIDpwYXJh bSBzZXJ2ZXJfaWRzOiBzZXJ2ZXIgaWRzCi0gICAgOnR5cGUgc2VydmVyX2lk czogbGlzdAotICAgIDpyZXR1cm46IE5vbmUKLSAgICAiIiIKLQotICAgIGZv ciBzZXJ2ZXJfY29ubmVjdCwgc2VydmVyX2lkIGluIHppcChzZXJ2ZXJfY29u bmVjdF9yZXNwb25zZSwgc2VydmVyX2lkcyk6Ci0gICAgICAgIGlmIHNlcnZl cl9jb25uZWN0WydkYXRhJ11bJ2Nvbm5lY3RlZCddOgotICAgICAgICAgICAg ZGF0YSA9IGdldF9kYl9kYXRhKHNlcnZlcl9jb25uZWN0KQotICAgICAgICAg ICAgZGJfcmVzcG9uc2UgPSB0ZXN0ZXIucG9zdChEQVRBQkFTRV9VUkwgKyBz dHIodXRpbHMuU0VSVkVSX0dST1VQKSArCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIi8iICsgc2VydmVyX2lkICsgIi8i LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNv bicpCi0gICAgICAgICAgICBhc3NlcnQgZGJfcmVzcG9uc2Uuc3RhdHVzX2Nv ZGUgPT0gMjAwCi0gICAgICAgICAgICByZXNwb25zZV9kYXRhID0ganNvbi5s b2FkcyhkYl9yZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKLSAgICAg ICAgICAgIHdyaXRlX2RiX2lkKHJlc3BvbnNlX2RhdGEpCi0KLQotZGVmIHZl cmlmeV9kYXRhYmFzZSh0ZXN0ZXIsIHNlcnZlcl9ncm91cCwgc2VydmVyX2lk LCBkYl9pZCk6CitkZWYgdmVyaWZ5X2RhdGFiYXNlKHNlbGYsIHNlcnZlcl9n cm91cCwgc2VydmVyX2lkLCBkYl9pZCk6CiAgICAgIiIiCiAgICAgVGhpcyBm dW5jdGlvbiB2ZXJpZmllcyB0aGF0IGRhdGFiYXNlIGlzIGV4aXN0cyBhbmQg d2hldGhlciBpdCBjb25uZWN0CiAgICAgc3VjY2Vzc2Z1bGx5IG9yIG5vdAog Ci0gICAgOnBhcmFtIHRlc3RlcjogdGVzdCBjbGllbnQKLSAgICA6dHlwZSB0 ZXN0ZXI6IGZsYXNrIHRlc3QgY2xpZW50IG9iamVjdAorICAgIDpwYXJhbSBz ZWxmOiBjbGFzcyBvYmplY3Qgb2YgdGVzdCBjYXNlIGNsYXNzCisgICAgOnR5 cGUgc2VsZjogY2xhc3MKICAgICA6cGFyYW0gc2VydmVyX2dyb3VwOiBzZXJ2 ZXIgZ3JvdXAgaWQKICAgICA6dHlwZSBzZXJ2ZXJfZ3JvdXA6IGludAogICAg IDpwYXJhbSBzZXJ2ZXJfaWQ6IHNlcnZlciBpZApAQCAtMTMwLDE1ICs1OSwy MyBAQCBkZWYgdmVyaWZ5X2RhdGFiYXNlKHRlc3Rlciwgc2VydmVyX2dyb3Vw LCBzZXJ2ZXJfaWQsIGRiX2lkKToKICAgICAiIiIKIAogICAgICMgVmVyaWZ5 IHNlcnZlcnMKLSAgICBzZXJ2ZXJfdXRpbHMudmVyaWZ5X3NlcnZlcih0ZXN0 ZXIsIHNlcnZlcl9ncm91cCwgc2VydmVyX2lkKQorICAgIHNlcnZlcl91dGls cy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZXJ2ZXJfaWQpCiAKICAgICAjIENv bm5lY3QgdG8gZGF0YWJhc2UKLSAgICBjb25fcmVzcG9uc2UgPSB0ZXN0ZXIu cG9zdCgnezB9ezF9L3syfS97M30nLmZvcm1hdCgKKyAgICBkYl9jb24gPSBz ZWxmLnRlc3Rlci5wb3N0KCd7MH17MX0vezJ9L3szfScuZm9ybWF0KAogICAg ICAgICBEQVRBQkFTRV9DT05ORUNUX1VSTCwgc2VydmVyX2dyb3VwLCBzZXJ2 ZXJfaWQsIGRiX2lkKSwKICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVl KQotICAgIHRlbXBfZGJfY29uID0ganNvbi5sb2Fkcyhjb25fcmVzcG9uc2Uu ZGF0YS5kZWNvZGUoJ3V0Zi04JykpCisgICAgc2VsZi5hc3NlcnRFcXVhbHMo ZGJfY29uLnN0YXR1c19jb2RlLCAyMDApCisgICAgZGJfY29uID0ganNvbi5s b2FkcyhkYl9jb24uZGF0YS5kZWNvZGUoJ3V0Zi04JykpCisgICAgcmV0dXJu IGRiX2NvbgogCi0gICAgcmV0dXJuIHRlbXBfZGJfY29uCisKK2RlZiBkaXNj b25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlcnZlcl9pZCwgZGJfaWQpOgorICAg ICIiIlRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCB0aGUgZGIiIiIKKyAgICBk Yl9jb24gPSBzZWxmLnRlc3Rlci5kZWxldGUoJ3swfXsxfS97Mn0vezN9Jy5m b3JtYXQoCisgICAgICAgICdicm93c2VyL2RhdGFiYXNlL2Nvbm5lY3QvJywg dXRpbHMuU0VSVkVSX0dST1VQLCBzZXJ2ZXJfaWQsIGRiX2lkKSwKKyAgICAg ICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorICAgIHNlbGYuYXNzZXJ0RXF1 YWxzKGRiX2Nvbi5zdGF0dXNfY29kZSwgMjAwKQogCiAKIGRlZiBkZWxldGVf ZGF0YWJhc2UodGVzdGVyKToKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVy X2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2FkZC5weQppbmRleCA3MzQ4YTQ3 Li4wOGVkOGQ2IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9hZGQucHkK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvdGVzdHMvdGVzdF9zZXJ2ZXJfYWRkLnB5CkBAIC03LDYgKzcsOCBAQAog IwogIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCitpbXBvcnQg anNvbgorCiBmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRp bHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgc2VydmVyX3V0 aWxzCkBAIC0yNiwxNyArMjgsMTkgQEAgY2xhc3MgU2VydmVyc0FkZFRlc3RD YXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKIAogICAgIGRlZiBydW5UZXN0KHNl bGYpOgogICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCB0aGUg c2VydmVyIHVuZGVyIGRlZmF1bHQgc2VydmVyIGdyb3VwLiIiIgotCi0gICAg ICAgIHNlcnZlcl91dGlscy5hZGRfc2VydmVyKHNlbGYudGVzdGVyKQorICAg ICAgICB1cmwgPSAiezB9ezF9LyIuZm9ybWF0KHNlbGYudXJsLCB1dGlscy5T RVJWRVJfR1JPVVApCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIu cG9zdCh1cmwsIGRhdGE9anNvbi5kdW1wcyhzZWxmLnNlcnZlciksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9 J2h0bWwvanNvbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3Bv bnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHJlc3BvbnNlX2RhdGEg PSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQor ICAgICAgICBzZXJ2ZXJfaWQgPSByZXNwb25zZV9kYXRhWydub2RlJ11bJ19p ZCddCisgICAgICAgIHV0aWxzLndyaXRlX25vZGVfaW5mbyhpbnQoc2VydmVy X2lkKSwgInNpZCIsIHNlbGYuc2VydmVyKQogCiAgICAgQGNsYXNzbWV0aG9k CiAgICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKICAgICAgICAgIiIiCi0g ICAgICAgIFRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgYWRkZWQgc2VydmVy IGFuZCB0aGUgJ3BhcmVudF9pZC5wa2wnIGZpbGUKLSAgICAgICAgd2hpY2gg aXMgY3JlYXRlZCBpbiBzZXR1cCgpIGZ1bmN0aW9uLgotCi0gICAgICAgIDpy ZXR1cm46IE5vbmUKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhl IHNlcnZlciBmcm9tIFNRTGl0ZSAmIGNsZWFycyB0aGUgbm9kZV9pbmZvX2Rp Y3QKICAgICAgICAgIiIiCi0KLSAgICAgICAgc2VydmVyX3V0aWxzLmRlbGV0 ZV9zZXJ2ZXIoY2xzLnRlc3RlcikKLSAgICAgICAgdXRpbHMuZGVsZXRlX3Bh cmVudF9pZF9maWxlKCkKKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX3V0 aWxzLmdldF9zZXJ2ZXJfaWQoKQorICAgICAgICB1dGlscy5kZWxldGVfc2Vy dmVyKHNlcnZlcl9pZCkKKyAgICAgICAgdXRpbHMuY2xlYXJfbm9kZV9pbmZv X2RpY3QoKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZGVsZXRlLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv dGVzdHMvdGVzdF9zZXJ2ZXJfZGVsZXRlLnB5CmluZGV4IDY0MzFiZWMuLmRk YzgyOWIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2RlbGV0ZS5weQor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy90ZXN0cy90ZXN0X3NlcnZlcl9kZWxldGUucHkKQEAgLTcsMTAgKzcsMTAg QEAKICMKICMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKK2ltcG9ydCBqc29u CiAKIGZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91dGlscyBh cyB1dGlscwotCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHNlcnZlcl91dGls cwogCiAKQEAgLTI0LDI4ICsyNCwyNyBAQCBjbGFzcyBTZXJ2ZXJEZWxldGVU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAKICAgICBAY2xhc3NtZXRo b2QKICAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgotICAgICAgICAiIiIKLSAg ICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGFkZCB0aGUgc2VydmVy Ci0KLSAgICAgICAgOnJldHVybjogTm9uZQotICAgICAgICAiIiIKLQotICAg ICAgICAjIEZpcnN0bHksIGFkZCB0aGUgc2VydmVyCi0gICAgICAgIHNlcnZl cl91dGlscy5hZGRfc2VydmVyKGNscy50ZXN0ZXIpCisgICAgICAgICIiIlRo aXMgZnVuY3Rpb24gYWRkIHRoZSBzZXJ2ZXIgdG8gdGVzdCB0aGUgREVMRVRF IEFQSSIiIgorICAgICAgICBzZXJ2ZXJfdXRpbHMuYWRkX3NlcnZlcihjbHMu c2VydmVyKQogCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIi IiBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2V0IGFsbCBhdmFpbGFibGUgc2VydmVy cyB1bmRlciBvYmplY3QgYnJvd3NlcgotICAgICAgICBhbmQgZGVsZXRlIHRo ZSBsYXN0IHNlcnZlciB1c2luZyBzZXJ2ZXIgaWQuIiIiCisgICAgICAgICIi IlRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgYWRkZWQgc2VydmVyIiIiCisg ICAgICAgIGFsbF9pZCA9IHV0aWxzLmdldF9ub2RlX2luZm9fZGljdCgpCisg ICAgICAgIHNlcnZlcnNfaW5mbyA9IGFsbF9pZFsic2lkIl0KKyAgICAgICAg dXJsID0gc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICIv IgogCi0gICAgICAgIHNlcnZlcl91dGlscy5kZWxldGVfc2VydmVyKHNlbGYu dGVzdGVyKQorICAgICAgICBpZiBsZW4oc2VydmVyc19pbmZvKSA9PSAwOgor ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyBzZXJ2ZXIgdG8gZGVs ZXRlISEhIikKKworICAgICAgICAjIENhbGwgQVBJIHRvIGRlbGV0ZSB0aGUg c2VydmVycworICAgICAgICBzZXJ2ZXJfaWQgPSBsaXN0KHNlcnZlcnNfaW5m b1swXS5rZXlzKCkpWzBdCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0 ZXIuZGVsZXRlKHVybCArIHN0cihzZXJ2ZXJfaWQpKQorICAgICAgICBzZWxm LmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAg ICAgICByZXNwb25zZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRh LmRlY29kZSgndXRmLTgnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo cmVzcG9uc2VfZGF0YVsnc3VjY2VzcyddLCAxKQogCiAgICAgQGNsYXNzbWV0 aG9kCiAgICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKLSAgICAgICAgIiIi Ci0gICAgICAgIFRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgJ3BhcmVudF9p ZC5wa2wnIGZpbGUgd2hpY2ggaXMgY3JlYXRlZCBpbgotICAgICAgICBzZXR1 cCgpIGZ1bmN0aW9uLgotCi0gICAgICAgIDpyZXR1cm46IE5vbmUKLSAgICAg ICAgIiIiCi0KLSAgICAgICAgdXRpbHMuZGVsZXRlX3BhcmVudF9pZF9maWxl KCkKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBjYWxscyB0aGUgY2xlYXJf bm9kZV9pbmZvX2RpY3QoKSBmdW5jdGlvbiB0byBjbGVhcnMKKyAgICAgICAg dGhlIG5vZGVfaW5mb19kaWN0IiIiCisgICAgICAgIHV0aWxzLmNsZWFyX25v ZGVfaW5mb19kaWN0KCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2dl dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2dldC5weQppbmRleCBlNTQxMjQ3Li5j ZDZkNzg3IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9nZXQucHkKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv dGVzdHMvdGVzdF9zZXJ2ZXJfZ2V0LnB5CkBAIC05LDcgKzksNyBAQAogCiBm cm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJh dG9yCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRp bHMKLWZyb20gLiBpbXBvcnQgdXRpbHMgYXMgc2VydmVyX3V0aWxzCitmcm9t IHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3Rfc2VydmVyX2RpY3QKIAogCiBjbGFz cyBTZXJ2ZXJzR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgpAQCAt MjMsMjkgKzIzLDEzIEBAIGNsYXNzIFNlcnZlcnNHZXRUZXN0Q2FzZShCYXNl VGVzdEdlbmVyYXRvcik6CiAgICAgICAgICgnRGVmYXVsdCBTZXJ2ZXIgTm9k ZSB1cmwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvc2VydmVyL29iai8nKSkKICAg ICBdCiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2V0VXBDbGFzcyhj bHMpOgotICAgICAgICAiIiIKLSAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1 c2VkIHRvIGFkZCB0aGUgc2VydmVyCi0KLSAgICAgICAgOnJldHVybjogTm9u ZQotICAgICAgICAiIiIKLQotICAgICAgICBzZXJ2ZXJfdXRpbHMuYWRkX3Nl cnZlcihjbHMudGVzdGVyKQotCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAg ICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIGFkZGVk IHNlcnZlcnMgdG8gb2JqZWN0IGJyb3dzZXIuICIiIgorICAgICAgICBzZXJ2 ZXJfaWQgPSB0ZXN0X3NlcnZlcl9kaWN0WyJzZXJ2ZXIiXVswXVsic2VydmVy X2lkIl0KKyAgICAgICAgaWYgbm90IHNlcnZlcl9pZDoKKyAgICAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigiU2VydmVyIG5vdCBmb3VuZCB0byB0ZXN0IEdF VCBBUEkiKQorICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldChz ZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9p ZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxv d19yZWRpcmVjdHM9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo cmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKIAotICAgICAgICBzZXJ2ZXJf dXRpbHMuZ2V0X3NlcnZlcihzZWxmLnRlc3RlcikKLQotICAgIEBjbGFzc21l dGhvZAotICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6Ci0gICAgICAgICIi IgotICAgICAgICBUaGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhlIGFkZGVkIHNl cnZlciBhbmQgdGhlICdwYXJlbnRfaWQucGtsJyBmaWxlCi0gICAgICAgIHdo aWNoIGlzIGNyZWF0ZWQgaW4gc2V0dXAoKSBmdW5jdGlvbi4KLQotICAgICAg ICA6cmV0dXJuOiBOb25lCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlcnZl cl91dGlscy5kZWxldGVfc2VydmVyKGNscy50ZXN0ZXIpCi0gICAgICAgIHV0 aWxzLmRlbGV0ZV9wYXJlbnRfaWRfZmlsZSgpCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90 ZXN0X3NlcnZlcl9wdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9wdXQucHkKaW5k ZXggOWFjNjQ2OC4uZGU5MmE2MyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2 ZXJfcHV0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX3B1dC5weQpAQCAtMjMs NTUgKzIzLDM1IEBAIGNsYXNzIFNlcnZlclVwZGF0ZVRlc3RDYXNlKEJhc2VU ZXN0R2VuZXJhdG9yKToKIAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBz ZXRVcENsYXNzKGNscyk6Ci0gICAgICAgICIiIgotICAgICAgICBUaGlzIGZ1 bmN0aW9uIHBlcmZvcm0gdGhlIGZvdXIgdGFza3MKLSAgICAgICAgIDEuIEFk ZCB0aGUgdGVzdCBzZXJ2ZXIKLSAgICAgICAgIDIuIEdldCB0aGUgc2VydmVy Ci0gICAgICAgICAzLiBDb25uZWN0IHRvIHNlcnZlcgotCi0gICAgICAgIDpy ZXR1cm46IE5vbmUKLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBGaXJzdGx5 LCBhZGQgdGhlIHNlcnZlcgotICAgICAgICBzZXJ2ZXJfdXRpbHMuYWRkX3Nl cnZlcihjbHMudGVzdGVyKQotCi0gICAgICAgICMgR2V0IHRoZSBzZXJ2ZXIK LSAgICAgICAgc2VydmVyX3V0aWxzLmdldF9zZXJ2ZXIoY2xzLnRlc3RlcikK LQotICAgICAgICAjIENvbm5lY3QgdG8gc2VydmVyCi0gICAgICAgIGNscy5z ZXJ2ZXJfY29ubmVjdCwgY2xzLnNlcnZlcl9ncm91cCwgY2xzLnNlcnZlcl9p ZHMgPSBcCi0gICAgICAgICAgICBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2 ZXIoY2xzLnRlc3RlcikKLQotICAgICAgICBpZiBsZW4oY2xzLnNlcnZlcl9j b25uZWN0KSA9PSAwOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJO byBTZXJ2ZXIocykgY29ubmVjdGVkIHRvIHVwZGF0ZSEhISIpCisgICAgICAg ICIiIlRoaXMgZnVuY3Rpb24gYWRkIHRoZSBzZXJ2ZXIgdG8gdGVzdCB0aGUg UFVUIEFQSSIiIgorICAgICAgICBzZXJ2ZXJfdXRpbHMuYWRkX3NlcnZlcihj bHMuc2VydmVyKQogCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAg ICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRoZSBzZXJ2ZXIncyBj b21tZW50IGZpZWxkLiAiIiIKLQotICAgICAgICBmb3Igc2VydmVyX2lkIGlu IHNlbGYuc2VydmVyX2lkczoKLSAgICAgICAgICAgIGRhdGEgPSB7Ci0gICAg ICAgICAgICAgICAgImNvbW1lbnQiOgotICAgICAgICAgICAgICAgICAgICBz ZXJ2ZXJfdXRpbHMuY29uZmlnX2RhdGFbJ3NlcnZlcl91cGRhdGVfZGF0YSdd WzBdWwotICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbW1lbnQnXSwKLSAg ICAgICAgICAgICAgICAiaWQiOiBzZXJ2ZXJfaWQKLSAgICAgICAgICAgIH0K LSAgICAgICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgK LSAgICAgICAgICAgICAgICBzZWxmLnVybCArIHN0cihzZWxmLnNlcnZlcl9n cm91cCkgKyAnLycgKwotICAgICAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQp LCBkYXRhPWpzb24uZHVtcHMoZGF0YSksCi0gICAgICAgICAgICAgICAgY29u dGVudF90eXBlPSdodG1sL2pzb24nKQotICAgICAgICAgICAgc2VsZi5hc3Nl cnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCi0KLSAg ICAgICAgICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKHB1dF9yZXNw b25zZS5kYXRhLmRlY29kZSgpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRU cnVlKHJlc3BvbnNlX2RhdGFbJ3N1Y2Nlc3MnXSwgMSkKKyAgICAgICAgIiIi VGhpcyBmdW5jdGlvbiB1cGRhdGUgdGhlIHNlcnZlciBkZXRhaWxzIiIiCisg ICAgICAgIGFsbF9pZCA9IHV0aWxzLmdldF9ub2RlX2luZm9fZGljdCgpCisg ICAgICAgIHNlcnZlcnNfaW5mbyA9IGFsbF9pZFsic2lkIl0KKworICAgICAg ICBpZiBsZW4oc2VydmVyc19pbmZvKSA9PSAwOgorICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKCJObyBzZXJ2ZXIgdG8gdXBkYXRlLiIpCisKKyAgICAg ICAgc2VydmVyX2lkID0gbGlzdChzZXJ2ZXJzX2luZm9bMF0ua2V5cygpKVsw XQorICAgICAgICBkYXRhID0geworICAgICAgICAgICAgImNvbW1lbnQiOgor ICAgICAgICAgICAgICAgIHNlcnZlcl91dGlscy5jb25maWdfZGF0YVsnc2Vy dmVyX3VwZGF0ZV9kYXRhJ11bMF1bCisgICAgICAgICAgICAgICAgICAgICdj b21tZW50J10sCisgICAgICAgICAgICAiaWQiOiBzZXJ2ZXJfaWQKKyAgICAg ICAgfQorICAgICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQo CisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JP VVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpLCBkYXRh PWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9 J2h0bWwvanNvbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHB1dF9y ZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCiAgICAgQGNsYXNzbWV0aG9k CiAgICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKICAgICAgICAgIiIiCi0g ICAgICAgIFRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgYWRkZWQgc2VydmVy IGFuZCB0aGUgJ3BhcmVudF9pZC5wa2wnIGZpbGUKLSAgICAgICAgd2hpY2gg aXMgY3JlYXRlZCBpbiBzZXR1cCgpIGZ1bmN0aW9uLgotCi0gICAgICAgIDpy ZXR1cm46IE5vbmUKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhl IHNlcnZlciBmcm9tIFNRTGl0ZSAmIGNsZWFycyB0aGUgbm9kZV9pbmZvX2Rp Y3QKICAgICAgICAgIiIiCi0KLSAgICAgICAgc2VydmVyX3V0aWxzLmRlbGV0 ZV9zZXJ2ZXIoY2xzLnRlc3RlcikKLSAgICAgICAgdXRpbHMuZGVsZXRlX3Bh cmVudF9pZF9maWxlKCkKKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX3V0 aWxzLmdldF9zZXJ2ZXJfaWQoKQorICAgICAgICB1dGlscy5kZWxldGVfc2Vy dmVyKHNlcnZlcl9pZCkKKyAgICAgICAgdXRpbHMuY2xlYXJfbm9kZV9pbmZv X2RpY3QoKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdXRpbHMucHkgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy91dGlscy5w eQppbmRleCA2ZTNmMTY2Li45NGE3ODExIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy91dGls cy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy90ZXN0cy91dGlscy5weQpAQCAtNywxNTQgKzcsNjQgQEAKICMK ICMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAorZnJvbSBfX2Z1 dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgc3lzCiBp bXBvcnQganNvbgotaW1wb3J0IG9zCi1pbXBvcnQgcGlja2xlCitpbXBvcnQg c3FsaXRlMworaW1wb3J0IGNvbmZpZwogCitmcm9tIHJlZ3Jlc3Npb24gaW1w b3J0IG5vZGVfaW5mb19kaWN0CiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRl c3RfdXRpbHMgYXMgdXRpbHMKLWZyb20gcmVncmVzc2lvbi50ZXN0X3NldHVw IGltcG9ydCBwaWNrbGVfcGF0aCwgY29uZmlnX2RhdGEKK2Zyb20gcmVncmVz c2lvbi50ZXN0X3NldHVwIGltcG9ydCBjb25maWdfZGF0YQogCiBTRVJWRVJf VVJMID0gJy9icm93c2VyL3NlcnZlci9vYmovJwogU0VSVkVSX0NPTk5FQ1Rf VVJMID0gJ2Jyb3dzZXIvc2VydmVyL2Nvbm5lY3QvJwogCiAKLWRlZiB3cml0 ZV9zZXJ2ZXJfaWQocmVzcG9uc2VfZGF0YSwgcGlja2xlX2lkX2RpY3QpOgot ICAgICIiIgotICAgIFRoaXMgZnVuY3Rpb24gd3JpdGVzIHRoZSBzZXJ2ZXIn cyBkZXRhaWxzIHRvIGZpbGUgcGFyZW50X2lkLnBrbAotCi0gICAgOnBhcmFt IHJlc3BvbnNlX2RhdGE6IHNlcnZlcidzIGRhdGEKLSAgICA6dHlwZSByZXNw b25zZV9kYXRhOiBsaXN0IG9mIGRpY3Rpb25hcnkKLSAgICA6cGFyYW0gcGlj a2xlX2lkX2RpY3Q6IGNvbnRhaW5zIGlkcyBvZiBzZXJ2ZXIsZGF0YWJhc2Us dGFibGVzIGV0Yy4KLSAgICA6dHlwZSBwaWNrbGVfaWRfZGljdDogZGljdAot ICAgIDpyZXR1cm46IE5vbmUKLSAgICAiIiIKLQotICAgIHNlcnZlcl9pZCA9 IHJlc3BvbnNlX2RhdGFbJ25vZGUnXVsnX2lkJ10KLSAgICBpZiBvcy5wYXRo LmlzZmlsZShwaWNrbGVfcGF0aCk6Ci0gICAgICAgIGV4aXN0ZWRfc2VydmVy X2lkID0gb3BlbihwaWNrbGVfcGF0aCwgJ3JiJykKLSAgICAgICAgcGlja2xl X2lkX2RpY3QgPSBwaWNrbGUubG9hZChleGlzdGVkX3NlcnZlcl9pZCkKLQot ICAgIHBpY2tsZV9pZF9kaWN0WyJzaWQiXS5hcHBlbmQoc3RyKHNlcnZlcl9p ZCkpCi0gICAgb3V0cHV0ID0gb3BlbihwaWNrbGVfcGF0aCwgJ3diJykKLSAg ICBwaWNrbGUuZHVtcChwaWNrbGVfaWRfZGljdCwgb3V0cHV0KQotICAgIG91 dHB1dC5jbG9zZSgpCi0KLQotZGVmIGFkZF9zZXJ2ZXIodGVzdGVyKToKLSAg ICAiIiIKLSAgICBUaGlzIGZ1bmN0aW9uIGFkZCB0aGUgc2VydmVyIGluIHRo ZSBleGlzdGluZyBzZXJ2ZXIgZ3JvdXAKLQotICAgIDpwYXJhbSB0ZXN0ZXI6 IHRlc3Qgb2JqZWN0Ci0gICAgOnR5cGUgdGVzdGVyOiBmbGFzayB0ZXN0IG9i amVjdAotICAgIDpyZXR1cm46Tm9uZQotICAgICIiIgorZGVmIGdldF9zZXJ2 ZXJfaWQoKToKKyAgICAiIiJUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHNl cnZlciBpZCBmcm9tIG5vZGVfaW5mb19kaWN0IiIiCiAKLSAgICBzZXJ2ZXJf Z3JvdXAsIGRiX2RhdGEsIHBpY2tsZV9pZF9kaWN0ID0gdXRpbHMuZ2V0X2Nv bmZpZ19kYXRhKCkKLSAgICB1cmwgPSAiezB9ezF9LyIuZm9ybWF0KFNFUlZF Ul9VUkwsIHNlcnZlcl9ncm91cCkKLSAgICBmb3IgZGJfZGV0YWlsIGluIGRi X2RhdGE6Ci0gICAgICAgIHJlc3BvbnNlID0gdGVzdGVyLnBvc3QodXJsLCBk YXRhPWpzb24uZHVtcHMoZGJfZGV0YWlsKSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAg ICAgIGFzc2VydCByZXNwb25zZS5zdGF0dXNfY29kZSA9PSAyMDAKLSAgICAg ICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5k ZWNvZGUoJ3V0Zi04JykpCi0gICAgICAgIHdyaXRlX3NlcnZlcl9pZChyZXNw b25zZV9kYXRhLCBwaWNrbGVfaWRfZGljdCkKKyAgICBzZXJ2ZXJfaWQgPSAw CisgICAgaWYgInNpZCIgaW4gbm9kZV9pbmZvX2RpY3Q6CisgICAgICAgIGlm IG5vZGVfaW5mb19kaWN0WydzaWQnXToKKyAgICAgICAgICAgIHNlcnZlcl9p ZCA9IGxpc3Qobm9kZV9pbmZvX2RpY3RbJ3NpZCddWzBdLmtleXMoKSlbMF0K KyAgICByZXR1cm4gc2VydmVyX2lkCiAKIAotZGVmIGdldF9zZXJ2ZXIodGVz dGVyKToKLSAgICAiIiIKLSAgICBUaGlzIGZ1bmN0aW9uIGdldHMgdGhlIGFk ZGVkIHNlcmVyIGRldGFpbHMKLQotICAgIDpwYXJhbSB0ZXN0ZXI6IHRlc3Qg Y2xpZW50IG9iamVjdAotICAgIDp0eXBlIHRlc3RlcjogZmxhc2sgdGVzdCBv YmplY3QKLSAgICA6cmV0dXJuOiByZXNwb25zZV9kYXRhCi0gICAgOnJ0eXBl OiBsaXN0Ci0gICAgIiIiCi0KLSAgICBhbGxfaWQgPSB1dGlscy5nZXRfaWRz KCkKLSAgICBzZXJ2ZXJfaWRzID0gYWxsX2lkWyJzaWQiXQotICAgIGZvciBz ZXJ2ZXJfaWQgaW4gc2VydmVyX2lkczoKLSAgICAgICAgcmVzcG9uc2UgPSB0 ZXN0ZXIuZ2V0KFNFUlZFUl9VUkwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQ KSArICcvJyArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIo c2VydmVyX2lkKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv bGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgYXNzZXJ0IHJlc3BvbnNl LnN0YXR1c19jb2RlID09IDIwMAotCi0KLWRlZiBjb25uZWN0X3NlcnZlcih0 ZXN0ZXIpOgorZGVmIGNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlcnZlcl9pZCk6 CiAgICAgIiIiCiAgICAgVGhpcyBmdW5jdGlvbiB1c2VkIHRvIGNvbm5lY3Qg YWRkZWQgc2VydmVyCi0KLSAgICA6cGFyYW0gdGVzdGVyOnRlc3QgY2xpZW50 IG9iamVjdAotICAgIDp0eXBlIHRlc3RlcjogZmxhc2sgdGVzdCBvYmplY3QK LSAgICA6cGFyYW0gYWRkX2RiX2ZsYWc6IGZsYWcgZm9yIGRiIGFkZCB0ZXN0 IGNhc2UKLSAgICA6dHlwZSBhZGRfZGJfZmxhZzogYm9vbAotICAgIDpyZXR1 cm46IHNlcnZlcl9jb25uZWN0LCBzZXJ2ZXJfZ3JvdXAsIHNlcnZlcl9pZAot ICAgIDpydHlwZTogc2VydmVyX2Nvbm5lY3Q6ZGljdCwgc2VydmVyX2dyb3Vw OmRpY3QsIHNlcnZlcl9pZDpzdHIKKyAgICA6cGFyYW0gc2VsZjogY2xhc3Mg b2JqZWN0IG9mIHNlcnZlcidzIHRlc3QgY2xhc3MKKyAgICA6dHlwZSBzZWxm OiBjbGFzcworICAgIDpwYXJhbSBzZXJ2ZXJfaWQ6IGZsYWcgZm9yIGRiIGFk ZCB0ZXN0IGNhc2UKKyAgICA6dHlwZSBzZXJ2ZXJfaWQ6IGJvb2wKICAgICAi IiIKLQotICAgIHNlcnZlcl9jb25uZWN0ID0gW10KLSAgICBzZXJ2ZXJzID0g W10KLSAgICBzZXJ2ZXJfY29uZmlnID0gTm9uZQotCi0gICAgc3J2X2lkID0g dXRpbHMuZ2V0X2lkcygpCi0gICAgc2VydmVyX2lkcyA9IHNydl9pZFsic2lk Il0KLQotICAgICMgQ29ubmVjdCB0byBhbGwgc2VydmVycwotICAgIGZvciBz ZXJ2ZXJfaWQgaW4gc2VydmVyX2lkczoKLSAgICAgICAgcmVzcG9uc2UgPSB0 ZXN0ZXIucG9zdChTRVJWRVJfQ09OTkVDVF9VUkwgKyBzdHIodXRpbHMuU0VS VkVSX0dST1VQKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Jy8nICsgc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGE9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGFzc3dvcmQ9Y29uZmlnX2RhdGEKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgWydzZXJ2ZXJfY3JlZGVudGlhbHMnXVswXQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2RiX3Bhc3N3 b3JkJ10pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxv d19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VydmVyX2Nvbm5lY3RfZGV0 YWlsID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgn KSkKLSAgICAgICAgZGJfdXNlciA9IHNlcnZlcl9jb25uZWN0X2RldGFpbFsn ZGF0YSddWyd1c2VyJ11bJ25hbWUnXQotICAgICAgICBzZXJ2ZXJfY29ubmVj dF9kZXRhaWxbJ3RhYmxlc3BhY2VfcGF0aCddID0gTm9uZQotCi0gICAgICAg ICMgR2V0IHRoZSBzZXJ2ZXIgY29uZmlnIG9mIGFwcHJvcHJpYXRlIGRiIHVz ZXIKLSAgICAgICAgZm9yIGNvbmZpZyBpbiBjb25maWdfZGF0YVsnc2VydmVy X2NyZWRlbnRpYWxzJ106Ci0gICAgICAgICAgICBpZiBkYl91c2VyID09IGNv bmZpZ1snZGJfdXNlcm5hbWUnXToKLSAgICAgICAgICAgICAgICBzZXJ2ZXJf Y29uZmlnID0gY29uZmlnCi0KLSAgICAgICAgaWYgInRhYmxlc3BhY2VfcGF0 aCIgaW4gc2VydmVyX2NvbmZpZzoKLSAgICAgICAgICAgIHNlcnZlcl9jb25u ZWN0X2RldGFpbFsndGFibGVzcGFjZV9wYXRoJ10gPSBcCi0gICAgICAgICAg ICAgICAgc2VydmVyX2NvbmZpZ1sndGFibGVzcGFjZV9wYXRoJ10KLQotICAg ICAgICBzZXJ2ZXJfY29ubmVjdC5hcHBlbmQoc2VydmVyX2Nvbm5lY3RfZGV0 YWlsKQotICAgICAgICBzZXJ2ZXJzLmFwcGVuZChzZXJ2ZXJfaWQpCi0gICAg cmV0dXJuIHNlcnZlcl9jb25uZWN0LCB1dGlscy5TRVJWRVJfR1JPVVAsIHNl cnZlcnMKLQotCi1kZWYgdmVyaWZ5X3NlcnZlcih0ZXN0ZXIsIHNlcnZlcl9n cm91cCwgc2VydmVyX2lkKToKLSAgICAiIiJUaGlzIGZ1bmN0aW9uIHZlcmlm aWVzIHRoYXQgc2VydmVyIGlzIGNvbm5lY3Rpbmcgb3Igbm90IiIiCi0KLSAg ICByZXNwb25zZSA9IHRlc3Rlci5wb3N0KAotICAgICAgICAnezB9ezF9L3sy fScuZm9ybWF0KFNFUlZFUl9DT05ORUNUX1VSTCwgc2VydmVyX2dyb3VwLCBz ZXJ2ZXJfaWQpLAotICAgICAgICBkYXRhPWRpY3QocGFzc3dvcmQ9Y29uZmln X2RhdGEKLSAgICAgICAgWydzZXJ2ZXJfY3JlZGVudGlhbHMnXVswXQotICAg ICAgICBbJ2RiX3Bhc3N3b3JkJ10pLAotICAgICAgICBmb2xsb3dfcmVkaXJl Y3RzPVRydWUpCi0gICAgc3J2X2Nvbm5lY3QgPSBqc29uLmxvYWRzKHJlc3Bv bnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQotICAgIHJldHVybiBzcnZfY29u bmVjdAotCi0KLWRlZiBkZWxldGVfc2VydmVyKHRlc3Rlcik6Ci0gICAgIiIi Ci0gICAgVGhpcyBmdW5jdGlvbiB1c2VkIHRvIGRlbGV0ZSB0aGUgYWRkZWQg c2VydmVycwotCi0gICAgOnBhcmFtIHRlc3RlcjogdGVzdCBjbGllbnQgb2Jq ZWN0Ci0gICAgOnJldHVybjogTm9uZQotICAgICIiIgotCi0gICAgYWxsX2lk ID0gdXRpbHMuZ2V0X2lkcygpCi0gICAgc2VydmVyX2lkcyA9IGFsbF9pZFsi c2lkIl0KLSAgICB1cmwgPSBTRVJWRVJfVVJMICsgc3RyKHV0aWxzLlNFUlZF Ul9HUk9VUCkgKyAiLyIKLQotICAgIGlmIGxlbihzZXJ2ZXJfaWRzKSA9PSAw OgotICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIHNlcnZlcihzKSB0byBk ZWxldGUhISEiKQotCi0gICAgIyBDYWxsIGFwaSB0byBkZWxldGUgdGhlIHNl cnZlcnMKLSAgICBmb3Igc2VydmVyX2lkIGluIHNlcnZlcl9pZHM6Ci0gICAg ICAgIHJlc3BvbnNlID0gdGVzdGVyLmRlbGV0ZSh1cmwgKyBzdHIoc2VydmVy X2lkKSkKLSAgICAgICAgYXNzZXJ0IHJlc3BvbnNlLnN0YXR1c19jb2RlID09 IDIwMAotICAgICAgICByZXNwb25zZV9kYXRhID0ganNvbi5sb2FkcyhyZXNw b25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKLSAgICAgICAgYXNzZXJ0IHJl c3BvbnNlX2RhdGFbJ3N1Y2Nlc3MnXSA9PSAxClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQorICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdChT RVJWRVJfQ09OTkVDVF9VUkwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSAr CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvJyArIHN0cihz ZXJ2ZXJfaWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk YXRhPWRpY3QocGFzc3dvcmQ9c2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10p LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVk aXJlY3RzPVRydWUpCisgICAgYXNzZXJ0IHJlc3BvbnNlLnN0YXR1c19jb2Rl ID09IDIwMAorICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKHJlc3Bv bnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQorICAgIHJldHVybiByZXNwb25z ZV9kYXRhCisKKworZGVmIGFkZF9zZXJ2ZXIoc2VydmVyKToKKyAgICB0cnk6 CisgICAgICAgIGNvbm4gPSBzcWxpdGUzLmNvbm5lY3QoY29uZmlnLlNRTElU RV9QQVRIKQorICAgICAgICBjdXIgPSBjb25uLmN1cnNvcigpCisgICAgICAg IHNlcnZlcl9kZXRhaWxzID0gKAorICAgICAgICAgICAgMSwgdXRpbHMuU0VS VkVSX0dST1VQLCBzZXJ2ZXJbJ25hbWUnXSwgc2VydmVyWydob3N0J10sCisg ICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSwgc2VydmVyWydkYiddLCBzZXJ2 ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICBzZXJ2ZXJbJ3JvbGUnXSwg c2VydmVyWydzc2xtb2RlJ10sCisgICAgICAgICAgICBzZXJ2ZXJbJ2NvbW1l bnQnXSkKKyAgICAgICAgY3VyLmV4ZWN1dGUoCisgICAgICAgICAgICAnSU5T RVJUIElOVE8gc2VydmVyICh1c2VyX2lkLCBzZXJ2ZXJncm91cF9pZCwgbmFt ZSwgaG9zdCwgJworICAgICAgICAgICAgJ3BvcnQsIG1haW50ZW5hbmNlX2Ri LCB1c2VybmFtZSwgcm9sZSwgc3NsX21vZGUsJworICAgICAgICAgICAgJyBj b21tZW50KSBWQUxVRVMgKD8sPyw/LD8sPyw/LD8sPyw/LD8pJywgc2VydmVy X2RldGFpbHMpCisgICAgICAgIHNlcnZlcl9pZCA9IGN1ci5sYXN0cm93aWQK KyAgICAgICAgIyBBZGQgc2VydmVyIGluZm8gdG8gbm9kZV9pbmZvX2RpY3QK KyAgICAgICAgdXRpbHMud3JpdGVfbm9kZV9pbmZvKGludChzZXJ2ZXJfaWQp LCAic2lkIiwgc2VydmVyKQorICAgICAgICBjb25uLmNvbW1pdCgpCisgICAg ZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnI6CisgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbihlcnIpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi91dGlscy9yb3V0 ZS5weSBiL3dlYi9wZ2FkbWluL3V0aWxzL3JvdXRlLnB5CmluZGV4IDAyMjZl OGQuLjc0MjY5ZGUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3V0aWxzL3Jv dXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL3V0aWxzL3JvdXRlLnB5CkBAIC03 LDggKzcsMTQgQEAKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKK2ltcG9ydCBz eXMKIGltcG9ydCB1bml0dGVzdAorCiBmcm9tIGFiYyBpbXBvcnQgQUJDTWV0 YSwgYWJzdHJhY3RtZXRob2QKK2Zyb20gaW1wb3J0bGliIGltcG9ydCBpbXBv cnRfbW9kdWxlCitmcm9tIHdlcmt6ZXVnLnV0aWxzIGltcG9ydCBmaW5kX21v ZHVsZXMKKworaW1wb3J0IGNvbmZpZwogCiAKIGNsYXNzIFRlc3RzR2VuZXJh dG9yUmVnaXN0cnkoQUJDTWV0YSk6CkBAIC00MywyMCArNDksMjYgQEAgY2xh c3MgVGVzdHNHZW5lcmF0b3JSZWdpc3RyeShBQkNNZXRhKToKIAogICAgICAg ICBBQkNNZXRhLl9faW5pdF9fKGNscywgbmFtZSwgYmFzZXMsIGQpCiAKKyAg ICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGltcG9ydF9hcHBfbW9kdWxlcyht b2R1bGVfbmFtZSk6CisgICAgICAgICIiIkFzIHdlIGFyZSBydW5uaW5nIHRl c3Qgc3VpdGUgZm9yIGVhY2ggc2VydmVyLiBUbyBjYXRjaAorICAgICAgICB0 aGUgdGVzdCBjYXNlcywgZGVsZXRlIHRoZSBwcmV2aW91c2x5IGltcG9ydGVk ICBtb2R1bGUKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHN0cihtb2R1bGVf bmFtZSkgaW4gc3lzLm1vZHVsZXMua2V5cygpOgorICAgICAgICAgICAgZGVs IHN5cy5tb2R1bGVzW21vZHVsZV9uYW1lXQorICAgICAgICBpbXBvcnRfbW9k dWxlKG1vZHVsZV9uYW1lKQorCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVm IGxvYWRfZ2VuZXJhdG9ycyhjbHMsIHBrZyk6CiAKICAgICAgICAgY2xzLnJl Z2lzdHJ5ID0gZGljdCgpCiAKLSAgICAgICAgZnJvbSBpbXBvcnRsaWIgaW1w b3J0IGltcG9ydF9tb2R1bGUKLSAgICAgICAgZnJvbSB3ZXJremV1Zy51dGls cyBpbXBvcnQgZmluZF9tb2R1bGVzCi0gICAgICAgIGltcG9ydCBjb25maWcK LQogICAgICAgICAjIENoZWNrIGZvciBTRVJWRVIgbW9kZQogICAgICAgICBp ZiBjb25maWcuU0VSVkVSX01PREU6CiAgICAgICAgICAgICBmb3IgbW9kdWxl X25hbWUgaW4gZmluZF9tb2R1bGVzKHBrZywgRmFsc2UsIFRydWUpOgogICAg ICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgbW9kdWxl ID0gaW1wb3J0X21vZHVsZShtb2R1bGVfbmFtZSkKKyAgICAgICAgICAgICAg ICAgICAgaWYgInRlc3RzLiIgaW4gc3RyKG1vZHVsZV9uYW1lKToKKyAgICAg ICAgICAgICAgICAgICAgICAgIGNscy5pbXBvcnRfYXBwX21vZHVsZXMobW9k dWxlX25hbWUpCiAgICAgICAgICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9y OgogICAgICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGVsc2U6CkBA IC02NSw3ICs3Nyw3IEBAIGNsYXNzIFRlc3RzR2VuZXJhdG9yUmVnaXN0cnko QUJDTWV0YSk6CiAgICAgICAgICAgICAgICAgICAgICMgRXhjbHVkZSB0aGUg dGVzdCBjYXNlcyBpbiBicm93c2VyIG5vZGUgaWYgU0VSVkVSX01PREUKICAg ICAgICAgICAgICAgICAgICAgIyBpcyBGYWxzZQogICAgICAgICAgICAgICAg ICAgICBpZiAicGdhZG1pbi5icm93c2VyLnRlc3RzIiBub3QgaW4gbW9kdWxl X25hbWU6Ci0gICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGUgPSBpbXBv cnRfbW9kdWxlKG1vZHVsZV9uYW1lKQorICAgICAgICAgICAgICAgICAgICAg ICAgY2xzLmltcG9ydF9hcHBfbW9kdWxlcyhtb2R1bGVfbmFtZSkKICAgICAg ICAgICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgICAgICAgICAg ICAgICAgIHBhc3MKIApAQCAtNzUsNiArODcsMTEgQEAgaW1wb3J0IHNpeAog QHNpeC5hZGRfbWV0YWNsYXNzKFRlc3RzR2VuZXJhdG9yUmVnaXN0cnkpCiBj bGFzcyBCYXNlVGVzdEdlbmVyYXRvcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAg ICAgIyBEZWZpbmluZyBhYnN0cmFjdCBtZXRob2Qgd2hpY2ggd2lsbCBvdmVy cmlkZSBieSBpbmRpdmlkdWFsIHRlc3RjYXNlLgorCisgICAgQGNsYXNzbWV0 aG9kCisgICAgZGVmIHNldFRlc3RTZXJ2ZXIoY2xzLCBzZXJ2ZXIpOgorICAg ICAgICBjbHMuc2VydmVyID0gc2VydmVyCisKICAgICBAYWJzdHJhY3RtZXRo b2QKICAgICBkZWYgcnVuVGVzdChzZWxmKToKICAgICAgICAgcGFzcwpkaWZm IC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vX19pbml0X18ucHkgYi93ZWIvcmVn cmVzc2lvbi9fX2luaXRfXy5weQppbmRleCBlNjlkZTI5Li42YTI3NDQ4IDEw MDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9fX2luaXRfXy5weQorKysgYi93 ZWIvcmVncmVzc2lvbi9fX2luaXRfXy5weQpAQCAtMCwwICsxLDMyIEBACisj ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjICNwZ0FkbWlu IDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjICNDb3B5cmlnaHQgKEMpIDIw MTMgLSAyMDE2LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjICNU aGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FM IExpY2VuY2UKKyMKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KworZ2xvYmFsIG5vZGVfaW5mb19kaWN0Citub2RlX2luZm9fZGljdCA9IHsK KyAgICAgICAgInNpZCI6IFtdLCAgIyBzZXJ2ZXIKKyAgICAgICAgImRpZCI6 IFtdLCAgIyBkYXRhYmFzZQorICAgICAgICAibHJpZCI6IFtdLCAgIyByb2xl CisgICAgICAgICJ0c2lkIjogW10sICAjIHRhYmxlc3BhY2UKKyAgICAgICAg InNjaWQiOiBbXSwgICMgc2NoZW1hCisgICAgICAgICJ0Zm5pZCI6IFtdLCAg IyB0cmlnZ2VyIGZ1bmN0aW9ucworICAgICAgICAiY29pZCI6IFtdLCAgIyBj b2xsYXRpb24KKyAgICAgICAgImNpZCI6IFtdLCAgIyBjYXN0cworICAgICAg ICAiZXRpZCI6IFtdLCAjIGV2ZW50X3RyaWdnZXIKKyAgICAgICAgImVpZCI6 IFtdLCAgIyBleHRlbnNpb24KKyAgICAgICAgImZpZCI6IFtdLCAgIyBGRFcK KyAgICAgICAgImZzaWQiOiBbXSwgICMgRlJTCisgICAgICAgICJ1bWlkIjog W10sICAjIHVzZXJfbWFwcGluZworICAgICAgICAic2VpZCI6IFtdICAjIHNl cXVlbmNlCit9CisKK2dsb2JhbCB0ZXN0X3NlcnZlcl9kaWN0Cit0ZXN0X3Nl cnZlcl9kaWN0ID0geworICAgICAgICAic2VydmVyIjogW10sCisgICAgICAg ICJkYXRhYmFzZSI6IFtdCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vcnVudGVzdHMucHkgYi93 ZWIvcmVncmVzc2lvbi9ydW50ZXN0cy5weQppbmRleCBkMTFhNzk0Li45Njhi Y2U2IDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9ydW50ZXN0cy5weQor KysgYi93ZWIvcmVncmVzc2lvbi9ydW50ZXN0cy5weQpAQCAtOSwxMCArOSwx MyBAQAogCiAiIiIgVGhpcyBmaWxlIGNvbGxlY3QgYWxsIG1vZHVsZXMvZmls ZXMgcHJlc2VudCBpbiB0ZXN0cyBkaXJlY3RvcnkgYW5kIGFkZAogdGhlbSB0 byBUZXN0U3VpdGUuICIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmlu dF9mdW5jdGlvbgogCiBpbXBvcnQgYXJncGFyc2UKIGltcG9ydCBvcwogaW1w b3J0IHN5cworaW1wb3J0IHNpZ25hbAoraW1wb3J0IGF0ZXhpdAogaW1wb3J0 IHVuaXR0ZXN0CiBpbXBvcnQgbG9nZ2luZwogCkBAIC0yOCwyNyArMzEsNTYg QEAgaWYgc3lzLnBhdGhbMF0gIT0gcm9vdDoKIAogZnJvbSBwZ2FkbWluIGlt cG9ydCBjcmVhdGVfYXBwCiBpbXBvcnQgY29uZmlnCitpbXBvcnQgdGVzdF9z ZXR1cAorCisjIEV4ZWN1dGUgc2V0dXAucHkgaWYgdGVzdCBTUUxpdGUgZGF0 YWJhc2UgZG9lc24ndCBleGlzdC4KK2lmIG9zLnBhdGguaXNmaWxlKGNvbmZp Zy5URVNUX1NRTElURV9QQVRIKToKKyAgICBwcmludCgiVGhlIGNvbmZpZ3Vy YXRpb24gZGF0YWJhc2UgYWxyZWFkeSBleGlzdGVkIGF0ICclcycuICIKKyAg ICAgICAgICAiUGxlYXNlIHJlbW92ZSB0aGUgZGF0YWJhc2UgYW5kIGFnYWlu IHJ1biB0aGUgdGVzdCBzdWl0ZS4iICUKKyAgICAgICAgICBjb25maWcuVEVT VF9TUUxJVEVfUEFUSCkKKyAgICBzeXMuZXhpdCgxKQorZWxzZToKKyAgICBj b25maWcuVEVTVElOR19NT0RFID0gVHJ1ZQorICAgIHBnYWRtaW5fY3JlZGVu dGlhbHMgPSB0ZXN0X3NldHVwLmNvbmZpZ19kYXRhCisKKyAgICAjIFNldCBl bnZpcm9ubWVudCB2YXJpYWJsZXMgZm9yIGVtYWlsIGFuZCBwYXNzd29yZAor ICAgIG9zLmVudmlyb25bJ2VtYWlsJ10gPSAnJworICAgIG9zLmVudmlyb25b J3Bhc3N3b3JkJ10gPSAnJworICAgIGlmIHBnYWRtaW5fY3JlZGVudGlhbHM6 CisgICAgICAgIGlmICdwZ0FkbWluNF9sb2dpbl9jcmVkZW50aWFscycgaW4g cGdhZG1pbl9jcmVkZW50aWFsczoKKyAgICAgICAgICAgIGlmIGFsbChpdGVt IGluIHBnYWRtaW5fY3JlZGVudGlhbHNbJ3BnQWRtaW40X2xvZ2luX2NyZWRl bnRpYWxzJ10KKyAgICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBbJ2xv Z2luX3VzZXJuYW1lJywgJ2xvZ2luX3Bhc3N3b3JkJ10pOgorICAgICAgICAg ICAgICAgIHBnYWRtaW5fY3JlZGVudGlhbHMgPSBwZ2FkbWluX2NyZWRlbnRp YWxzWworICAgICAgICAgICAgICAgICAgICAncGdBZG1pbjRfbG9naW5fY3Jl ZGVudGlhbHMnXQorICAgICAgICAgICAgICAgIG9zLmVudmlyb25bJ2VtYWls J10gPSBwZ2FkbWluX2NyZWRlbnRpYWxzWydsb2dpbl91c2VybmFtZSddCisg ICAgICAgICAgICAgICAgb3MuZW52aXJvblsncGFzc3dvcmQnXSA9IHBnYWRt aW5fY3JlZGVudGlhbHNbJ2xvZ2luX3Bhc3N3b3JkJ10KKworICAgIHNldHVw X3BhdGggPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKG9zLnBhdGgu ZGlybmFtZShfX2ZpbGVfXykpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ3NldHVwLnB5JykKKyAgICAjIEV4ZWN1dGUgdGhlIHNldHVwIGZp bGUKKyAgICBleGVjKG9wZW4oc2V0dXBfcGF0aCkucmVhZCgpKQogCiAjIEdl dCB0aGUgY29uZmlnIGRhdGFiYXNlIHNjaGVtYSB2ZXJzaW9uLiBXZSBzdG9y ZSB0aGlzIGluIHBnYWRtaW4ubW9kZWwKICMgYXMgaXQgdHVybnMgb3V0IHRo YXQgcHV0dGluZyBpdCBpbiB0aGUgY29uZmlnIGZpbGVzIGlzbid0IGEgZ3Jl YXQgaWRlYQogZnJvbSBwZ2FkbWluLm1vZGVsIGltcG9ydCBTQ0hFTUFfVkVS U0lPTgotZnJvbSB0ZXN0X3V0aWxzIGltcG9ydCBsb2dpbl90ZXN0ZXJfYWNj b3VudCwgbG9nb3V0X3Rlc3Rlcl9hY2NvdW50CisKKyMgRGVsYXkgdGhlIGlt cG9ydCB0ZXN0X3V0aWxzIGFzIGl0IG5lZWRzIHVwZGF0ZWQgY29uZmlnLlNR TElURV9QQVRICitpbXBvcnQgdGVzdF91dGlscwogCiBjb25maWcuU0VUVElO R1NfU0NIRU1BX1ZFUlNJT04gPSBTQ0hFTUFfVkVSU0lPTgogCiAjIE92ZXJy aWRlIHNvbWUgb3RoZXIgZGVmYXVsdHMKIGZyb20gbG9nZ2luZyBpbXBvcnQg V0FSTklORworCiBjb25maWcuQ09OU09MRV9MT0dfTEVWRUwgPSBXQVJOSU5H CiAKICMgQ3JlYXRlIHRoZSBhcHAKIGFwcCA9IGNyZWF0ZV9hcHAoKQogYXBw LmNvbmZpZ1snV1RGX0NTUkZfRU5BQkxFRCddID0gRmFsc2UKIHRlc3RfY2xp ZW50ID0gYXBwLnRlc3RfY2xpZW50KCkKLSMgTG9naW4gdGhlIHRlc3QgY2xp ZW50Ci1sb2dpbl90ZXN0ZXJfYWNjb3VudCh0ZXN0X2NsaWVudCkKIAogCi1k ZWYgZ2V0X3N1aXRlKGFyZ3VtZW50cywgdGVzdF9hcHBfY2xpZW50KToKK2Rl ZiBnZXRfc3VpdGUoYXJndW1lbnRzLCBzZXJ2ZXIsIHRlc3RfYXBwX2NsaWVu dCk6CiAgICAgIiIiCiAgICAgIFRoaXMgZnVuY3Rpb24gbG9hZHMgdGhlIGFs bCBtb2R1bGVzIGluIHRoZSB0ZXN0cyBkaXJlY3RvcnkgaW50byB0ZXN0aW5n CiAgICAgIGVudmlyb25tZW50LgpAQCAtNTYsNiArODgsOCBAQCBkZWYgZ2V0 X3N1aXRlKGFyZ3VtZW50cywgdGVzdF9hcHBfY2xpZW50KToKICAgICA6cGFy YW0gYXJndW1lbnRzOiB0aGlzIGlzIGNvbW1hbmQgbGluZSBhcmd1bWVudHMg Zm9yIG1vZHVsZSBuYW1lIHRvCiAgICAgd2hpY2ggdGVzdCBzdWl0ZSB3aWxs IHJ1bgogICAgIDp0eXBlIGFyZ3VtZW50czogc3RyCisgICAgOnBhcmFtIHNl cnZlcjogc2VydmVyIGRldGFpbHMKKyAgICA6dHlwZSBzZXJ2ZXI6IGRpY3QK ICAgICA6cGFyYW0gdGVzdF9hcHBfY2xpZW50OiB0ZXN0IGNsaWVudAogICAg IDp0eXBlIHRlc3RfYXBwX2NsaWVudDogcGdhZG1pbiBhcHAgb2JqZWN0CiAg ICAgOnJldHVybiBwZ2FkbWluX3N1aXRlOiB0ZXN0IHN1aXRlIHdpdGggdGVz dCBjYXNlcwpAQCAtNzEsMTggKzEwNSwyNCBAQCBkZWYgZ2V0X3N1aXRlKGFy Z3VtZW50cywgdGVzdF9hcHBfY2xpZW50KToKICAgICBpZiBhcmd1bWVudHNb J3BrZyddIGlzIE5vbmUgb3IgYXJndW1lbnRzWydwa2cnXSA9PSAiYWxsIjoK ICAgICAgICAgVGVzdHNHZW5lcmF0b3JSZWdpc3RyeS5sb2FkX2dlbmVyYXRv cnMoJ3BnYWRtaW4nKQogICAgIGVsc2U6Ci0gICAgICAgIFRlc3RzR2VuZXJh dG9yUmVnaXN0cnkubG9hZF9nZW5lcmF0b3JzKCdwZ2FkbWluLnt9LnRlc3Rz Jy5mb3JtYXQoCi0gICAgICAgICAgICBhcmd1bWVudHNbJ3BrZyddKSkKKyAg ICAgICAgVGVzdHNHZW5lcmF0b3JSZWdpc3RyeS5sb2FkX2dlbmVyYXRvcnMo J3BnYWRtaW4uJXMudGVzdHMnICUKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzWydwa2cnXSkKKwor ICAgICMgU29ydCBtb2R1bGUgbGlzdCBzbyB0aGF0IHRlc3Qgc3VpdGUgZXhl Y3V0ZXMgdGhlIHRlc3QgY2FzZXMgc2VxdWVudGlhbGx5CisgICAgbW9kdWxl X2xpc3QgPSBUZXN0c0dlbmVyYXRvclJlZ2lzdHJ5LnJlZ2lzdHJ5Lml0ZW1z KCkKKyAgICBtb2R1bGVfbGlzdCA9IHNvcnRlZChtb2R1bGVfbGlzdCwga2V5 PWxhbWJkYSBtb2R1bGVfdHVwbGU6IG1vZHVsZV90dXBsZVswXSkKIAogICAg ICMgR2V0IHRoZSBlYWNoIHRlc3QgbW9kdWxlIGFuZCBhZGQgaW50byBsaXN0 Ci0gICAgZm9yIGtleSwga2xhc3MgaW4gVGVzdHNHZW5lcmF0b3JSZWdpc3Ry eS5yZWdpc3RyeS5pdGVtcygpOgorICAgIGZvciBrZXksIGtsYXNzIGluIG1v ZHVsZV9saXN0OgogICAgICAgICBnZW4gPSBrbGFzcwogICAgICAgICBtb2R1 bGVzLmFwcGVuZChnZW4pCiAKICAgICAjIFNldCB0aGUgdGVzdCBjbGllbnQg dG8gZWFjaCBtb2R1bGUgJiBnZW5lcmF0ZSB0aGUgc2NlbmFyaW9zCiAgICAg Zm9yIG1vZHVsZSBpbiBtb2R1bGVzOgogICAgICAgICBvYmogPSBtb2R1bGUo KQorICAgICAgICBvYmouc2V0QXBwKGFwcCkKICAgICAgICAgb2JqLnNldFRl c3RDbGllbnQodGVzdF9hcHBfY2xpZW50KQorICAgICAgICBvYmouc2V0VGVz dFNlcnZlcihzZXJ2ZXIpCiAgICAgICAgIHNjZW5hcmlvID0gZ2VuZXJhdGVf c2NlbmFyaW9zKG9iaikKICAgICAgICAgcGdhZG1pbl9zdWl0ZS5hZGRUZXN0 cyhzY2VuYXJpbykKIApAQCAtMTA2LDYgKzE0NiwxMCBAQCBkZWYgYWRkX2Fy Z3VtZW50cygpOgogICAgIHJldHVybiBhcmcKIAogCitkZWYgc2lnX2hhbmRs ZXIoc2lnbm8sIGZyYW1lKToKKyAgICB0ZXN0X3V0aWxzLmRyb3Bfb2JqZWN0 cygpCisKKwogY2xhc3MgU3RyZWFtVG9Mb2dnZXIob2JqZWN0KToKICAgICBk ZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBsb2dfbGV2ZWw9bG9nZ2luZy5J TkZPKToKICAgICAgICAgc2VsZi50ZXJtaW5hbCA9IHN5cy5zdGRlcnIKQEAg LTEzMSw2ICsxNzUsMTQgQEAgY2xhc3MgU3RyZWFtVG9Mb2dnZXIob2JqZWN0 KToKIAogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgICMgUmVn aXN0ZXIgY2xlYW51cCBmdW5jdGlvbiB0byBjbGVhbnVwIG9uIGV4aXQKKyAg ICBhdGV4aXQucmVnaXN0ZXIodGVzdF91dGlscy5kcm9wX29iamVjdHMpCisg ICAgIyBTZXQgc2lnbmFsIGhhbmRsZXIgZm9yIGNsZWFudXAKKyAgICBzaWdu YWwuc2lnbmFsKHNpZ25hbC5TSUdURVJNLCBzaWdfaGFuZGxlcikKKyAgICBz aWduYWwuc2lnbmFsKHNpZ25hbC5TSUdBQlJULCBzaWdfaGFuZGxlcikKKyAg ICBzaWduYWwuc2lnbmFsKHNpZ25hbC5TSUdJTlQsIHNpZ19oYW5kbGVyKQor ICAgIHNpZ25hbC5zaWduYWwoc2lnbmFsLlNJR1FVSVQsIHNpZ19oYW5kbGVy KQorCiAgICAgIyBTZXQgYmFzaWMgbG9nZ2luZyBjb25maWd1cmF0aW9uIGZv ciBsb2cgZmlsZQogICAgIGxvZ2dpbmcuYmFzaWNDb25maWcobGV2ZWw9bG9n Z2luZy5ERUJVRywKICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdD0n JShhc2N0aW1lKXM6JShsZXZlbG5hbWUpczolKG5hbWUpczolKG1lc3NhZ2Up cycKQEAgLTE0NCwxMSArMTk2LDI1IEBAIGlmIF9fbmFtZV9fID09ICdfX21h aW5fXyc6CiAgICAgc3lzLnN0ZGVyciA9IFN0cmVhbVRvTG9nZ2VyKHN0ZGVy cl9sb2dnZXIsIGxvZ2dpbmcuRVJST1IpCiAKICAgICBhcmdzID0gdmFycyhh ZGRfYXJndW1lbnRzKCkpCi0gICAgc3VpdGUgPSBnZXRfc3VpdGUoYXJncywg dGVzdF9jbGllbnQpCi0gICAgdGVzdHMgPSB1bml0dGVzdC5UZXh0VGVzdFJ1 bm5lcihzdHJlYW09c3lzLnN0ZGVyciwgZGVzY3JpcHRpb25zPVRydWUsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJib3NpdHk9 MikucnVuKHN1aXRlKQogCi0gICAgIyBMb2dvdXQgdGhlIHRlc3QgY2xpZW50 Ci0gICAgbG9nb3V0X3Rlc3Rlcl9hY2NvdW50KHRlc3RfY2xpZW50KQorICAg IHNlcnZlcnNfaW5mbyA9IHRlc3RfdXRpbHMuZ2V0X2NvbmZpZ19kYXRhKCkK KyAgICB0cnk6CisgICAgICAgIGZvciBzZXJ2ZXIgaW4gc2VydmVyc19pbmZv OgorICAgICAgICAgICAgcHJpbnQoIlxuPT09PT09PT09PT09PVJ1bm5pbmcg dGhlIHRlc3QgY2FzZXMgZm9yICclcyc9PT09PT09PT09PT09IgorICAgICAg ICAgICAgICAgICAgJSBzZXJ2ZXJbJ25hbWUnXSwgZmlsZT1zeXMuc3RkZXJy KQorICAgICAgICAgICAgdGVzdF91dGlscy5jcmVhdGVfdGVzdF9zZXJ2ZXIo c2VydmVyKQorICAgICAgICAgICAgIyBMb2dpbiB0aGUgdGVzdCBjbGllbnQK KyAgICAgICAgICAgIHRlc3RfdXRpbHMubG9naW5fdGVzdGVyX2FjY291bnQo dGVzdF9jbGllbnQpCisKKyAgICAgICAgICAgIHN1aXRlID0gZ2V0X3N1aXRl KGFyZ3MsIHNlcnZlciwgdGVzdF9jbGllbnQpCisgICAgICAgICAgICB0ZXN0 cyA9IHVuaXR0ZXN0LlRleHRUZXN0UnVubmVyKHN0cmVhbT1zeXMuc3RkZXJy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkZXNjcmlwdGlvbnM9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdmVyYm9zaXR5PTIpLnJ1bihzdWl0ZSkK KyAgICAgICAgICAgICMgTG9nb3V0IHRoZSB0ZXN0IGNsaWVudAorICAgICAg ICAgICAgdGVzdF91dGlscy5sb2dvdXRfdGVzdGVyX2FjY291bnQodGVzdF9j bGllbnQpCisKKyAgICAgICAgICAgIHRlc3RfdXRpbHMuZGVsZXRlX3Rlc3Rf c2VydmVyKHNlcnZlcikKKyAgICBleGNlcHQgU3lzdGVtRXhpdDoKKyAgICAg ICAgdGVzdF91dGlscy5kcm9wX29iamVjdHMoKQogCiAgICAgcHJpbnQoIlBs ZWFzZSBjaGVjayBvdXRwdXQgaW4gZmlsZTogJXMvcmVncmVzc2lvbi5sb2cg IiAlIENVUlJFTlRfUEFUSCkKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9u L3Rlc3RfYWR2YW5jZWRfY29uZmlnLmpzb24uaW4gYi93ZWIvcmVncmVzc2lv bi90ZXN0X2FkdmFuY2VkX2NvbmZpZy5qc29uLmluCmluZGV4IGIzMzljOTIu LjNmODE0NTEgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL3Rlc3RfYWR2 YW5jZWRfY29uZmlnLmpzb24uaW4KKysrIGIvd2ViL3JlZ3Jlc3Npb24vdGVz dF9hZHZhbmNlZF9jb25maWcuanNvbi5pbgpAQCAtMSw1ICsxLDUgQEAKIHsK LSAgImFkZF9kYXRhYmFzZV9kYXRhIjogWworICAiYWRkX2RhdGFiYXNlX2Rh dGEiOgogICAgewogICAgICJwcml2aWxlZ2VzX2FjbCI6IFsKICAgICAgIHsK QEAgLTkzLDEzICs5MywxMSBAQAogICAgICJwcml2aWxlZ2VzIjogW10sCiAg ICAgInNlY3VyaXRpZXMiOiBbXSwKICAgICAidmFyaWFibGVzIjogW10KLSAg fQotIF0sCi0gICJkYl91cGRhdGVfZGF0YSI6IFsKKyAgfSwKKyAgImRiX3Vw ZGF0ZV9kYXRhIjoKICAgewogICAgICAgImNvbW1lbnQiOiAiVGhpcyBpcyBk YiB1cGRhdGUgY29tbWVudCIKLSAgfQotIF0sCisgIH0sCiAKICAgImxyX2Ny ZWRlbnRpYWxzIjogewogICAgICAgImNhbl9sb2dpbiI6ICJ0cnVlIiwKQEAg LTQ0NSw3ICs0NDMsNyBAQAogICB7CiAgICAgImNvbW1lbnQiOiAiVGhpcyBp cyBldmVudCB0cmlnZ2VyIHVwZGF0ZSBjb21tZW50IgogICB9LAotICAKKwog ICAgICJzZXF1ZW5jZV9jcmVkZW50aWFscyI6CiAgIFt7CiAgICAgImNhY2hl IjogIjEiLApAQCAtNDkyLDUgKzQ5MCwzIEBACiAKIAogIH0KLQotCmRpZmYg LS1naXQgYS93ZWIvcmVncmVzc2lvbi90ZXN0X3NldHVwLnB5IGIvd2ViL3Jl Z3Jlc3Npb24vdGVzdF9zZXR1cC5weQppbmRleCBjODA1YjFlLi42ZThjYWFm IDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi90ZXN0X3NldHVwLnB5Cisr KyBiL3dlYi9yZWdyZXNzaW9uL3Rlc3Rfc2V0dXAucHkKQEAgLTEwLDEzICsx MCw5IEBACiBpbXBvcnQganNvbgogaW1wb3J0IG9zCiAKKwogQ1VSUkVOVF9Q QVRIID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgucmVhbHBhdGgoX19maWxl X18pKQogCi0jIHdpdGggb3BlbihDVVJSRU5UX1BBVEggKyAnL3Rlc3RfY29u ZmlnLmpzb24nKSBhcyBkYXRhX2ZpbGU6Ci0jICAgICBjb25maWdfZGF0YSA9 IGpzb24ubG9hZChkYXRhX2ZpbGUpCi0jCi0jIHdpdGggb3BlbihDVVJSRU5U X1BBVEggKyAnL3Rlc3RfYWR2YW5jZWRfY29uZmlnLmpzb24nKSBhcyBkYXRh X2ZpbGU6Ci0jICAgICBhZHZhbmNlZF9jb25maWdfZGF0YSA9IGpzb24ubG9h ZChkYXRhX2ZpbGUpCiAKIHRyeToKICAgICB3aXRoIG9wZW4oQ1VSUkVOVF9Q QVRIICsgJy90ZXN0X2NvbmZpZy5qc29uJykgYXMgZGF0YV9maWxlOgpAQCAt MzEsNSArMjcsMyBAQCB0cnk6CiBleGNlcHQ6CiAgICAgd2l0aCBvcGVuKENV UlJFTlRfUEFUSCArICcvdGVzdF9hZHZhbmNlZF9jb25maWcuanNvbi5pbicp IGFzIGRhdGFfZmlsZToKICAgICAgICAgYWR2YW5jZWRfY29uZmlnX2RhdGEg PSBqc29uLmxvYWQoZGF0YV9maWxlKQotCi1waWNrbGVfcGF0aCA9IG9zLnBh dGguam9pbihDVVJSRU5UX1BBVEgsICdwYXJlbnRfaWQucGtsJykKZGlmZiAt LWdpdCBhL3dlYi9yZWdyZXNzaW9uL3Rlc3RfdXRpbHMucHkgYi93ZWIvcmVn cmVzc2lvbi90ZXN0X3V0aWxzLnB5CmluZGV4IGUwNzhlYWEuLjU3ODdlNzUg MTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL3Rlc3RfdXRpbHMucHkKKysr IGIvd2ViL3JlZ3Jlc3Npb24vdGVzdF91dGlscy5weQpAQCAtNiw4NyArNiw1 MSBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQ b3N0Z3JlU1FMIExpY2VuY2UKICMKICMgIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGlt cG9ydCBvcwotaW1wb3J0IHBpY2tsZQotZnJvbSB0ZXN0X3NldHVwIGltcG9y dCBjb25maWdfZGF0YSwgcGlja2xlX3BhdGgKK2ltcG9ydCBzeXMKK2ltcG9y dCBwc3ljb3BnMgoraW1wb3J0IHNxbGl0ZTMKK2ltcG9ydCBjb25maWcKIAor aW1wb3J0IHRlc3Rfc2V0dXAKK2ltcG9ydCByZWdyZXNzaW9uCiAKLVNFUlZF Ul9HUk9VUCA9IGNvbmZpZ19kYXRhWydzZXJ2ZXJfZ3JvdXAnXQorU0VSVkVS X0dST1VQID0gdGVzdF9zZXR1cC5jb25maWdfZGF0YVsnc2VydmVyX2dyb3Vw J10KIAogCi1kZWYgZ2V0X3BpY2tsZV9pZF9kaWN0KCk6Ci0gICAgIiIiVGhp cyBmdW5jdGlvbiByZXR1cm5zIHRoZSBlbXB0eSBkaWN0IG9mIHNlcnZlciBj b25maWcgZGF0YSIiIgorZGVmIGdldF9kYl9jb25uZWN0aW9uKGRiLCB1c2Vy bmFtZSwgcGFzc3dvcmQsIGhvc3QsIHBvcnQpOgorICAgICIiIlRoaXMgZnVu Y3Rpb24gcmV0cnVucyB0aGUgY29ubmVjdGlvbiBvYmplY3Qgb2YgcHN5Y29w ZyIiIgorICAgIGNvbm5lY3Rpb24gPSBwc3ljb3BnMi5jb25uZWN0KGRhdGFi YXNlPWRiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVz ZXI9dXNlcm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGFzc3dvcmQ9cGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaG9zdD1ob3N0LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBvcnQ9cG9ydCkKKyAgICByZXR1cm4gY29ubmVjdGlv bgogCi0gICAgcGlja2xlX2lkX2RpY3QgPSB7Ci0gICAgICAgICJzaWQiOiBb XSwgICMgc2VydmVyCi0gICAgICAgICJkaWQiOiBbXSwgICMgZGF0YWJhc2UK LSAgICAgICAgImxyaWQiOiBbXSwgICMgcm9sZQotICAgICAgICAidHNpZCI6 IFtdLCAgIyB0YWJsZXNwYWNlCi0gICAgICAgICJzY2lkIjogW10sICAjIHNj aGVtYQotICAgICAgICAidGZuaWQiOiBbXSwgICMgdHJpZ2dlciBmdW5jdGlv bnMKLSAgICAgICAgImNvaWQiOiBbXSwgICMgY29sbGF0aW9uCi0gICAgICAg ICJjaWQiOiBbXSwgICMgY2FzdHMKLSAgICAgICAgImV0aWQiOiBbXSwgIyBl dmVudF90cmlnZ2VyCi0gICAgICAgICJlaWQiOiBbXSwgICMgZXh0ZW5zaW9u Ci0gICAgICAgICJmaWQiOiBbXSwgICMgRkRXCi0gICAgICAgICJmc2lkIjog W10sICAjIEZSUwotICAgICAgICAidW1pZCI6IFtdLCAgIyB1c2VyX21hcHBp bmcKLSAgICAgICAgInNlaWQiOiBbXSAgIyBzZXF1ZW5jZQotICAgIH0KLSAg ICByZXR1cm4gcGlja2xlX2lkX2RpY3QKIAotCi1kZWYgZ2V0X2lkcyh1cmw9 cGlja2xlX3BhdGgpOgotICAgICIiIgotICAgIFRoaXMgZnVuY3Rpb24gcmVh ZCB0aGUgcGFyZW50IG5vZGUncyBpZCBhbmQgcmV0dXJuIGl0Ci0KLSAgICA6 cGFyYW0gdXJsOiBmaWxlIHBhdGggZnJvbSB3aGljaCBpdCB3aWxsIHJlZCB0 aGUgaWRzCi0gICAgOnR5cGUgdXJsOiBzdHIKLSAgICA6cmV0dXJuOiBub2Rl IGlkcwotICAgIDpydHlwZTogZGljdAotICAgICIiIgotCi0gICAgb3V0cHV0 ID0gb3Blbih1cmwsICdyYicpCi0gICAgaWRzID0gcGlja2xlLmxvYWQob3V0 cHV0KQotICAgIG91dHB1dC5jbG9zZSgpCi0gICAgcmV0dXJuIGlkcwotCi0K LSMgZGVmIHRlc3RfZ2V0bm9kZXModGVzdGVyPU5vbmUpOgotIyAgICAgIyBD b25uZWN0IHRvIHNlcnZlciBhbmQgZGF0YWJhc2UuCi0jCi0jICAgICBpZiBu b3QgdGVzdGVyOgotIyAgICAgICAgIHJldHVybiBOb25lCi0jCi0jICAgICBh bGxfaWQgPSBnZXRfaWRzKCkKLSMKLSMgICAgIHNlcnZlcl9pZHMgPSBhbGxf aWRbInNpZCJdCi0jICAgICBkYl9pZHNfZGljdCA9IGFsbF9pZFsiZGlkIl1b MF0KLSMKLSMgICAgIGRiX2NvbiA9IFtdCi0jICAgICBmb3Igc2VydmVyX2lk IGluIHNlcnZlcl9pZHM6Ci0jICAgICAgICAgZGJfaWQgPSBkYl9pZHNfZGlj dFtpbnQoc2VydmVyX2lkKV0KLSMgICAgICAgICBkYl9jb24uYXBwZW5kKHZl cmlmeV9kYXRhYmFzZSh0ZXN0ZXIsIFNFUlZFUl9HUk9VUCwgc2VydmVyX2lk LCBkYl9pZCkpCi0jICAgICByZXR1cm4gZGJfY29uCitkZWYgZ2V0X25vZGVf aW5mb19kaWN0KCk6CisgICAgcmV0dXJuIHJlZ3Jlc3Npb24ubm9kZV9pbmZv X2RpY3QKIAogCiBkZWYgbG9naW5fdGVzdGVyX2FjY291bnQodGVzdGVyKToK ICAgICAiIiIKLSAgICBUaGlzIGZ1bmN0aW9uIGxvZ2luIHRoZSB0ZXN0IGFj Y291bnQgdXNpbmcgY3JlZGVudGlhbHMgbWVudGlvbmVkIGluCi0gICAgY29u ZmlnIGZpbGUKLQorICAgIFRoaXMgZnVuY3Rpb24gbG9naW4gdGhlIHRlc3Qg Y2xpZW50IHVzaW5nIGVudiB2YXJpYWJsZXMgZW1haWwgYW5kIHBhc3N3b3Jk CiAgICAgOnBhcmFtIHRlc3RlcjogdGVzdCBjbGllbnQKICAgICA6dHlwZSB0 ZXN0ZXI6IGZsYXNrIHRlc3QgY2xpZW50IG9iamVjdAogICAgIDpyZXR1cm46 IE5vbmUKICAgICAiIiIKLQotICAgIGVtYWlsID0gXAotICAgICAgICBjb25m aWdfZGF0YVsncGdBZG1pbjRfbG9naW5fY3JlZGVudGlhbHMnXVsnbG9naW5f dXNlcm5hbWUnXQotICAgIHBhc3N3b3JkID0gXAotICAgICAgICBjb25maWdf ZGF0YVsncGdBZG1pbjRfbG9naW5fY3JlZGVudGlhbHMnXVsnbG9naW5fcGFz c3dvcmQnXQotICAgIHJlc3BvbnNlID0gdGVzdGVyLnBvc3QoJy9sb2dpbics IGRhdGE9ZGljdCgKLSAgICAgICAgZW1haWw9ZW1haWwsIHBhc3N3b3JkPXBh c3N3b3JkKSwgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorICAgIGlmIG9zLmVu dmlyb25bJ2VtYWlsJ10gYW5kIG9zLmVudmlyb25bJ3Bhc3N3b3JkJ106Cisg ICAgICAgIGVtYWlsID0gb3MuZW52aXJvblsnZW1haWwnXQorICAgICAgICBw YXNzd29yZCA9IG9zLmVudmlyb25bJ3Bhc3N3b3JkJ10KKyAgICAgICAgdGVz dGVyLnBvc3QoJy9sb2dpbicsIGRhdGE9ZGljdChlbWFpbD1lbWFpbCwgcGFz c3dvcmQ9cGFzc3dvcmQpLAorICAgICAgICAgICAgICAgICAgICBmb2xsb3df cmVkaXJlY3RzPVRydWUpCisgICAgZWxzZToKKyAgICAgICAgcHJpbnQoIlVu YWJsZSB0byBsb2dpbiB0ZXN0IGNsaWVudCwgZW1haWwgYW5kIHBhc3N3b3Jk IG5vdCBmb3VuZC4iLAorICAgICAgICAgICAgICBmaWxlPXN5cy5zdGRlcnIp CisgICAgICAgIGRyb3Bfb2JqZWN0cygpCisgICAgICAgIHN5cy5leGl0KDEp CiAKIAogZGVmIGxvZ291dF90ZXN0ZXJfYWNjb3VudCh0ZXN0ZXIpOgpAQCAt MTAxLDYzICs2NSwyMzEgQEAgZGVmIGxvZ291dF90ZXN0ZXJfYWNjb3VudCh0 ZXN0ZXIpOgogICAgIHJlc3BvbnNlID0gdGVzdGVyLmdldCgnL2xvZ291dCcp CiAKIAotIyBDb25maWcgZGF0YSBmb3IgcGFyZW50X2lkLnBrbAogZGVmIGdl dF9jb25maWdfZGF0YSgpOgotICAgICIiIgotICAgIFRoaXMgZnVuY3Rpb24g Z2V0IHRoZSBkYXRhIHJlbGF0ZWQgdG8gc2VydmVyIGdyb3VwIGFuZCBkYXRh YmFzZQotICAgIGxpa2UgZGIgbmFtZSwgaG9zdCwgcG9ydCBhbmQgdXNlcm5h bWUgZXRjLgotCi0gICAgOnJldHVybjogc2VydmVyX2dyb3VwLCBkYl9kYXRh LCBwaWNrbGVfaWRfZGljdAotICAgIDpydHlwZTogc2VydmVyX2dyb3VwOmRp Y3QsIGRiX2RhdGE6bGlzdCwgcGlja2xlX2lkX2RpY3Q6ZGljdAotICAgICIi IgotCi0gICAgZGJfZGF0YSA9IFtdCi0gICAgcGlja2xlX2lkX2RpY3QgPSBn ZXRfcGlja2xlX2lkX2RpY3QoKQotICAgIHNlcnZlcl9ncm91cCA9IGNvbmZp Z19kYXRhWydzZXJ2ZXJfZ3JvdXAnXQotCi0gICAgZm9yIHNydiBpbiBjb25m aWdfZGF0YVsnc2VydmVyX2NyZWRlbnRpYWxzJ106CisgICAgIiIiVGhpcyBm dW5jdGlvbiByZWFkcyB0aGUgc2VydmVyIGRhdGEgZnJvbSBjb25maWdfZGF0 YSIiIgorICAgIHNlcnZlcl9kYXRhID0gW10KKyAgICBmb3Igc3J2IGluIHRl c3Rfc2V0dXAuY29uZmlnX2RhdGFbJ3NlcnZlcl9jcmVkZW50aWFscyddOgog ICAgICAgICBkYXRhID0geyJuYW1lIjogc3J2WyduYW1lJ10sCiAgICAgICAg ICAgICAgICAgImNvbW1lbnQiOiAiIiwKICAgICAgICAgICAgICAgICAiaG9z dCI6IHNydlsnaG9zdCddLAogICAgICAgICAgICAgICAgICJwb3J0Ijogc3J2 WydkYl9wb3J0J10sCiAgICAgICAgICAgICAgICAgImRiIjogc3J2WydtYWlu dGVuYW5jZV9kYiddLAogICAgICAgICAgICAgICAgICJ1c2VybmFtZSI6IHNy dlsnZGJfdXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAgICAiZGJfcGFzc3dv cmQiOiBzcnZbJ2RiX3Bhc3N3b3JkJ10sCiAgICAgICAgICAgICAgICAgInJv bGUiOiAiIiwKLSAgICAgICAgICAgICAgICAic3NsbW9kZSI6IHNydlsnc3Ns bW9kZSddfQotICAgICAgICBkYl9kYXRhLmFwcGVuZChkYXRhKQotICAgIHJl dHVybiBzZXJ2ZXJfZ3JvdXAsIGRiX2RhdGEsIHBpY2tsZV9pZF9kaWN0Cisg ICAgICAgICAgICAgICAgInNzbG1vZGUiOiBzcnZbJ3NzbG1vZGUnXSwKKyAg ICAgICAgICAgICAgICAidGFibGVzcGFjZV9wYXRoIjogc3J2Wyd0YWJsZXNw YWNlX3BhdGgnXX0KKyAgICAgICAgc2VydmVyX2RhdGEuYXBwZW5kKGRhdGEp CisgICAgcmV0dXJuIHNlcnZlcl9kYXRhCiAKIAotZGVmIHdyaXRlX3BhcmVu dF9pZChyZXNwb25zZV9kYXRhLCBwaWNrbGVfaWRfZGljdCk6CitkZWYgd3Jp dGVfbm9kZV9pbmZvKG5vZGVfaWQsIGtleSwgbm9kZV9pbmZvPU5vbmUpOgog ICAgICIiIgotICAgIFRoaXMgZnVuY3Rpb24gd3JpdGVzIHRoZSBzZXJ2ZXIn cyBkZXRhaWxzIHRvIGZpbGUgcGFyZW50X2lkLnBrbAotCi0gICAgOnBhcmFt IHJlc3BvbnNlX2RhdGE6IHNlcnZlcidzIGRhdGEKLSAgICA6dHlwZSByZXNw b25zZV9kYXRhOiBsaXN0IG9mIGRpY3Rpb25hcnkKLSAgICA6cGFyYW0gcGlj a2xlX2lkX2RpY3Q6IGNvbnRhaW5zIGlkcyBvZiBzZXJ2ZXIsZGF0YWJhc2Us dGFibGVzIGV0Yy4KLSAgICA6dHlwZSBwaWNrbGVfaWRfZGljdDogZGljdAot ICAgIDpyZXR1cm46IE5vbmUKKyAgICBUaGlzIGZ1bmN0aW9uIGFwcGVuZCB0 aGUgbm9kZSBkZXRhaWxzIHRvCisgICAgOnBhcmFtIG5vZGVfaWQ6IG5vZGUg aWQKKyAgICA6dHlwZSBub2RlX2lkOiBpbnQKKyAgICA6cGFyYW0ga2V5OiBk aWN0IGtleSBuYW1lIHRvIHN0b3JlIG5vZGUgaW5mbworICAgIDp0eXBlIGtl eTogc3RyCisgICAgOnBhcmFtIG5vZGVfaW5mbzogbm9kZSBkZXRhaWxzCisg ICAgOnR5cGUgbm9kZV9pbmZvOiBkaWN0CisgICAgOnJldHVybjogbm9kZV9p bmZvX2RpY3QKKyAgICA6cnR5cGU6IGRpY3QKICAgICAiIiIKLQotICAgIHNl cnZlcl9pZCA9IHJlc3BvbnNlX2RhdGFbJ25vZGUnXVsnX2lkJ10KLSAgICBp ZiBvcy5wYXRoLmlzZmlsZShwaWNrbGVfcGF0aCk6Ci0gICAgICAgIGV4aXN0 ZWRfc2VydmVyX2lkID0gb3BlbihwaWNrbGVfcGF0aCwgJ3JiJykKLSAgICAg ICAgcGlja2xlX2lkX2RpY3QgPSBwaWNrbGUubG9hZChleGlzdGVkX3NlcnZl cl9pZCkKLQotICAgIHBpY2tsZV9pZF9kaWN0WyJzaWQiXS5hcHBlbmQoc3Ry KHNlcnZlcl9pZCkpCi0gICAgb3V0cHV0ID0gb3BlbihwaWNrbGVfcGF0aCwg J3diJykKLSAgICBwaWNrbGUuZHVtcChwaWNrbGVfaWRfZGljdCwgb3V0cHV0 KQotICAgIG91dHB1dC5jbG9zZSgpCi0KLQotZGVmIGRlbGV0ZV9wYXJlbnRf aWRfZmlsZSgpOgorICAgIG5vZGVfaW5mb19kaWN0ID0gcmVncmVzc2lvbi5u b2RlX2luZm9fZGljdAorICAgIGlmIG5vZGVfaW5mb19kaWN0OgorICAgICAg ICBpZiBrZXkgaW4gbm9kZV9pbmZvX2RpY3QgYW5kIG5vZGVfaW5mb19kaWN0 W2tleV06CisgICAgICAgICAgICBub2RlX2luZm9fZGljdFtrZXldLmFwcGVu ZCh7bm9kZV9pZDogbm9kZV9pbmZvfSkKKyAgICAgICAgZWxzZToKKyAgICAg ICAgICAgIG5vZGVfaW5mb19kaWN0W2tleV0gPSBbe25vZGVfaWQ6IG5vZGVf aW5mb31dCisgICAgZWxzZToKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJu b2RlX2luZm9fZGljdCBpcyBudWxsLiIpCisKKworZGVmIGNsZWFyX25vZGVf aW5mb19kaWN0KCk6CisgICAgIiIiVGhpcyBmdW5jdGlvbiB1c2VkIHRvIGNs ZWFycyB0aGUgbm9kZV9pbmZvX2RpY3QgdmFyaWFibGUiIiIKKyAgICBub2Rl X2luZm9fZGljdCA9IHJlZ3Jlc3Npb24ubm9kZV9pbmZvX2RpY3QKKyAgICBm b3Igbm9kZSBpbiBub2RlX2luZm9fZGljdDoKKyAgICAgICAgZGVsIG5vZGVf aW5mb19kaWN0W25vZGVdWzpdCisKKworZGVmIGNyZWF0ZV9kYXRhYmFzZShz ZXJ2ZXIsIGRiX25hbWUpOgorICAgICIiIlRoaXMgZnVuY3Rpb24gdXNlZCB0 byBjcmVhdGUgZGF0YWJhc2UgYW5kIHJldHVybnMgdGhlIGRhdGFiYXNlIGlk IiIiCisgICAgdHJ5OgorICAgICAgICBjb25uZWN0aW9uID0gZ2V0X2RiX2Nv bm5lY3Rpb24oc2VydmVyWydkYiddLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VydmVyWyd1c2VybmFtZSddLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydkYl9w YXNzd29yZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyWydob3N0J10sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSkKKyAgICAgICAgb2xk X2lzb2xhdGlvbl9sZXZlbCA9IGNvbm5lY3Rpb24uaXNvbGF0aW9uX2xldmVs CisgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZlbCgwKQor ICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAg ICAgIHBnX2N1cnNvci5leGVjdXRlKCJDUkVBVEUgREFUQUJBU0UgJXMiICUg ZGJfbmFtZSkKKyAgICAgICAgY29ubmVjdGlvbi5zZXRfaXNvbGF0aW9uX2xl dmVsKG9sZF9pc29sYXRpb25fbGV2ZWwpCisgICAgICAgIGNvbm5lY3Rpb24u Y29tbWl0KCkKKworICAgICAgICAjIEdldCAnb2lkJyBmcm9tIG5ld2x5IGNy ZWF0ZWQgZGF0YWJhc2UKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoCisg ICAgICAgICAgICAiU0VMRUNUIGRiLm9pZCBmcm9tIHBnX2RhdGFiYXNlIGRi IFdIRVJFIGRiLmRhdG5hbWU9JyVzJyIgJQorICAgICAgICAgICAgZGJfbmFt ZSkKKyAgICAgICAgb2lkID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAgICAg ICAgZGJfaWQgPSAnJworICAgICAgICBpZiBvaWQ6CisgICAgICAgICAgICBk Yl9pZCA9IG9pZFswXQorICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCkKKyAg ICAgICAgcmV0dXJuIGRiX2lkCisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBl eGNlcHRpb246CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiRXJyb3Igd2hp bGUgY3JlYXRpbmcgZGF0YWJhc2UuICVzIiAlIGV4Y2VwdGlvbikKKworCitk ZWYgZHJvcF9kYXRhYmFzZShjb25uZWN0aW9uLCBkYl9uYW1lKToKKyAgICAi IiJUaGlzIGZ1bmN0aW9uIHVzZWQgdG8gZHJvcCB0aGUgZGF0YWJhc2UiIiIK KyAgICB0cnk6CisgICAgICAgIG9sZF9pc29sYXRpb25fbGV2ZWwgPSBjb25u ZWN0aW9uLmlzb2xhdGlvbl9sZXZlbAorICAgICAgICBjb25uZWN0aW9uLnNl dF9pc29sYXRpb25fbGV2ZWwoMCkKKyAgICAgICAgcGdfY3Vyc29yID0gY29u bmVjdGlvbi5jdXJzb3IoKQorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZSgn JydEUk9QIERBVEFCQVNFICIlcyInJycgJSBkYl9uYW1lKQorICAgICAgICBj b25uZWN0aW9uLnNldF9pc29sYXRpb25fbGV2ZWwob2xkX2lzb2xhdGlvbl9s ZXZlbCkKKyAgICAgICAgY29ubmVjdGlvbi5jb21taXQoKQorICAgICAgICBj b25uZWN0aW9uLmNsb3NlKCkKKyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4 Y2VwdGlvbjoKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJFeGNlcHRpb24g d2hpbGUgZHJvcHBpbmcgdGhlIGRhdGFiYXNlLiAlcyIgJQorICAgICAgICAg ICAgICAgICAgICAgICAgZXhjZXB0aW9uKQorCisKK2RlZiBjcmVhdGVfc2Vy dmVyKHNlcnZlcik6CisgICAgIiIiVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRv IGNyZWF0ZSBzZXJ2ZXIiIiIKKyAgICB0cnk6CisgICAgICAgIGNvbm4gPSBz cWxpdGUzLmNvbm5lY3QoY29uZmlnLlNRTElURV9QQVRIKQorICAgICAgICAj IENyZWF0ZSB0aGUgc2VydmVyCisgICAgICAgIGN1ciA9IGNvbm4uY3Vyc29y KCkKKyAgICAgICAgc2VydmVyX2RldGFpbHMgPSAoMSwgU0VSVkVSX0dST1VQ LCBzZXJ2ZXJbJ25hbWUnXSwgc2VydmVyWydob3N0J10sCisgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlcnZlclsncG9ydCddLCBzZXJ2ZXJbJ2RiJ10s IHNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VydmVyWydyb2xlJ10sIHNlcnZlclsnc3NsbW9kZSddLCBzZXJ2ZXJb J2NvbW1lbnQnXSkKKyAgICAgICAgY3VyLmV4ZWN1dGUoJ0lOU0VSVCBJTlRP IHNlcnZlciAodXNlcl9pZCwgc2VydmVyZ3JvdXBfaWQsIG5hbWUsIGhvc3Qs ICcKKyAgICAgICAgICAgICAgICAgICAgJ3BvcnQsIG1haW50ZW5hbmNlX2Ri LCB1c2VybmFtZSwgcm9sZSwgc3NsX21vZGUsJworICAgICAgICAgICAgICAg ICAgICAnIGNvbW1lbnQpIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/LD8sPykn LCBzZXJ2ZXJfZGV0YWlscykKKyAgICAgICAgc2VydmVyX2lkID0gY3VyLmxh c3Ryb3dpZAorICAgICAgICBjb25uLmNvbW1pdCgpCisgICAgICAgIHJldHVy biBzZXJ2ZXJfaWQKKyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4Y2VwdGlv bjoKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJFcnJvciB3aGlsZSBjcmVh dGluZyBzZXJ2ZXIuICVzIiAlIGV4Y2VwdGlvbikKKworCitkZWYgZGVsZXRl X3NlcnZlcihzaWQpOgorICAgICIiIlRoaXMgZnVuY3Rpb24gdXNlZCB0byBk ZWxldGUgc2VydmVyIGZyb20gU1FMaXRlIiIiCisgICAgdHJ5OgorICAgICAg ICBjb25uID0gc3FsaXRlMy5jb25uZWN0KGNvbmZpZy5TUUxJVEVfUEFUSCkK KyAgICAgICAgY3VyID0gY29ubi5jdXJzb3IoKQorICAgICAgICBzZXJ2ZXJz ID0gY3VyLmV4ZWN1dGUoJ1NFTEVDVCAqIEZST00gc2VydmVyIFdIRVJFIGlk PSVzJyAlIHNpZCkKKyAgICAgICAgc2VydmVyc19jb3VudCA9IGxlbihzZXJ2 ZXJzLmZldGNoYWxsKCkpCisgICAgICAgIGlmIHNlcnZlcnNfY291bnQ6Cisg ICAgICAgICAgICBjdXIuZXhlY3V0ZSgnREVMRVRFIEZST00gc2VydmVyIFdI RVJFIGlkPSVzJyAlIHNpZCkKKyAgICAgICAgICAgIGNvbm4uY29tbWl0KCkK KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByaW50KCJObyBzZXJ2ZXJz IGZvdW5kIHRvIGRlbGV0ZS4iLCBmaWxlPXN5cy5zdGRlcnIpCisgICAgZXhj ZXB0IEV4Y2VwdGlvbiBhcyBlcnI6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiRXJyb3Igd2hpbGUgZGVsZXRpbmcgc2VydmVyICVzIiAlIGVycikKKwor CitkZWYgY3JlYXRlX3Rlc3Rfc2VydmVyKHNlcnZlcik6CiAgICAgIiIiCi0g ICAgVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSBmaWxlIHBhcmVudF9pZC5w a2wgd2hpY2ggY29udGFpbnMgc2VydmVyIGFuZAotICAgIGRhdGFiYXNlIGRl dGFpbHMKLQorICAgIFRoaXMgZnVuY3Rpb24gY3JlYXRlIHRoZSB0ZXN0IHNl cnZlciB3aGljaCB3aWxsIGFjdCBhcyBwYXJlbnQgc2VydmVyLAorICAgIHRo ZSBvdGhlciBub2RlIHdpbGwgYWRkIHVuZGVyIHRoaXMgc2VydmVyCisgICAg OnBhcmFtIHNlcnZlcjogc2VydmVyIGRldGFpbHMKKyAgICA6dHlwZSBzZXJ2 ZXI6IGRpY3QKICAgICA6cmV0dXJuOiBOb25lCiAgICAgIiIiCi0KLSAgICBp ZiBvcy5wYXRoLmlzZmlsZShwaWNrbGVfcGF0aCk6Ci0gICAgICAgIG9zLnJl bW92ZShwaWNrbGVfcGF0aCkKLQorICAgICMgQ3JlYXRlIHRoZSBzZXJ2ZXIK KyAgICBzZXJ2ZXJfaWQgPSBjcmVhdGVfc2VydmVyKHNlcnZlcikKKworICAg ICMgQ3JlYXRlIHRlc3QgZGF0YWJhc2UKKyAgICB0ZXN0X2RiX25hbWUgPSAi dGVzdF9kYiIKKyAgICBkYl9pZCA9IGNyZWF0ZV9kYXRhYmFzZShzZXJ2ZXIs IHRlc3RfZGJfbmFtZSkKKworICAgICMgQWRkIHNlcnZlciBpbmZvIHRvIHRl c3Rfc2VydmVyX2RpY3QKKyAgICByZWdyZXNzaW9uLnRlc3Rfc2VydmVyX2Rp Y3RbInNlcnZlciJdLmFwcGVuZCh7InNlcnZlcl9pZCI6IHNlcnZlcl9pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgInNlcnZlciI6IHNlcnZlcn0pCisgICAgcmVncmVzc2lvbi50ZXN0 X3NlcnZlcl9kaWN0WyJkYXRhYmFzZSJdLmFwcGVuZCh7InNlcnZlcl9pZCI6 IHNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiZGJfaWQiOiBkYl9pZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi ZGJfbmFtZSI6IHRlc3RfZGJfbmFtZX0pCisKKworZGVmIGRlbGV0ZV90ZXN0 X3NlcnZlcihzZXJ2ZXIpOgorICAgIHRlc3Rfc2VydmVyX2RpY3QgPSByZWdy ZXNzaW9uLnRlc3Rfc2VydmVyX2RpY3QKKyAgICBpZiB0ZXN0X3NlcnZlcl9k aWN0OgorICAgICAgICBjb25uZWN0aW9uID0gZ2V0X2RiX2Nvbm5lY3Rpb24o c2VydmVyWydkYiddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydkYl9wYXNzd29yZCdd LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vy dmVyWydob3N0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSkKKyAgICAgICAgZGJfbmFtZSA9IHRl c3Rfc2VydmVyX2RpY3RbImRhdGFiYXNlIl1bMF1bImRiX25hbWUiXQorICAg ICAgICBkcm9wX2RhdGFiYXNlKGNvbm5lY3Rpb24sIGRiX25hbWUpCisgICAg ICAgICMgRGVsZXRlIHRoZSBzZXJ2ZXIKKyAgICAgICAgc2VydmVyX2lkID0g dGVzdF9zZXJ2ZXJfZGljdFsnc2VydmVyJ11bMF1bInNlcnZlcl9pZCJdCisg ICAgICAgIGNvbm4gPSBzcWxpdGUzLmNvbm5lY3QoY29uZmlnLlNRTElURV9Q QVRIKQorICAgICAgICBjdXIgPSBjb25uLmN1cnNvcigpCisgICAgICAgIHNl cnZlcnMgPSBjdXIuZXhlY3V0ZSgnU0VMRUNUICogRlJPTSBzZXJ2ZXIgV0hF UkUgaWQ9JXMnICUgc2VydmVyX2lkKQorICAgICAgICBzZXJ2ZXJzX2NvdW50 ID0gbGVuKHNlcnZlcnMuZmV0Y2hhbGwoKSkKKyAgICAgICAgaWYgc2VydmVy c19jb3VudDoKKyAgICAgICAgICAgIGN1ci5leGVjdXRlKCdERUxFVEUgRlJP TSBzZXJ2ZXIgV0hFUkUgaWQ9JXMnICUgc2VydmVyX2lkKQorICAgICAgICAg ICAgY29ubi5jb21taXQoKQorICAgICAgICAgICAgY29ubi5jbG9zZSgpCisg ICAgICAgICAgICBzZXJ2ZXJfZGljdCA9IHJlZ3Jlc3Npb24udGVzdF9zZXJ2 ZXJfZGljdFsic2VydmVyIl0KKworICAgICAgICAgICAgIyBQb3AgdGhlIHNl cnZlciBmcm9tIGRpY3QgaWYgaXQncyBkZWxldGVkCisgICAgICAgICAgICBz ZXJ2ZXJfZGljdCA9IFtzZXJ2ZXJfZGljdC5wb3Aoc2VydmVyX2RpY3QuaW5k ZXgoaXRlbSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaXRl bSBpbiBzZXJ2ZXJfZGljdAorICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgc3RyKHNlcnZlcl9pZCkgPT0gc3RyKGl0ZW1bInNlcnZlcl9pZCJdKV0K KworICAgICAgICAgICAgIyBQb3AgdGhlIGRiIGZyb20gZGljdCBpZiBpdCdz IGRlbGV0ZWQKKyAgICAgICAgICAgIGRiX2RpY3QgPSByZWdyZXNzaW9uLnRl c3Rfc2VydmVyX2RpY3RbImRhdGFiYXNlIl0KKyAgICAgICAgICAgIGRiX2Rp Y3QgPSBbZGJfZGljdC5wb3AoZGJfZGljdC5pbmRleChpdGVtKSkgZm9yIGl0 ZW0gaW4gZGJfZGljdAorICAgICAgICAgICAgICAgICAgICAgICBpZiBzZXJ2 ZXJfaWQgPT0gaXRlbVsic2VydmVyX2lkIl1dCisKKworZGVmIGRyb3Bfb2Jq ZWN0cygpOgorICAgICIiIlRoaXMgZnVuY3Rpb24gdXNlIHRvIGNsZWFudXAg dGhlIGNyZWF0ZWQgdGhlIG9iamVjdHMoc2VydmVycywgZGF0YWJhc2VzLAor ICAgICBzY2hlbWFzIGV0YykgZHVyaW5nIHRoZSB0ZXN0IHN1aXRlIHJ1biIi IgorCisgICAgIyBDbGVhbnVwIGluIG5vZGVfaW5mb19kaWN0CisgICAgc2Vy dmVyc19pbmZvID0gcmVncmVzc2lvbi5ub2RlX2luZm9fZGljdFsnc2lkJ10K KyAgICBpZiBzZXJ2ZXJzX2luZm86CisgICAgICAgIGZvciBzZXJ2ZXIgaW4g c2VydmVyc19pbmZvOgorICAgICAgICAgICAgc2VydmVyX2lkID0gc2VydmVy LmtleXMoKVswXQorICAgICAgICAgICAgc2VydmVyID0gc2VydmVyLnZhbHVl cygpWzBdCisgICAgICAgICAgICBpZiByZWdyZXNzaW9uLm5vZGVfaW5mb19k aWN0WydkaWQnXToKKyAgICAgICAgICAgICAgICBkYl9jb25uID0gZ2V0X2Ri X2Nvbm5lY3Rpb24oc2VydmVyWydkYiddLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3VzZXJuYW1lJ10s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydob3N0J10sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZl clsncG9ydCddKQorICAgICAgICAgICAgICAgIGRiX2RpY3QgPSByZWdyZXNz aW9uLm5vZGVfaW5mb19kaWN0WydkaWQnXVswXQorICAgICAgICAgICAgICAg IGlmIGludChzZXJ2ZXJfaWQpIGluIGRiX2RpY3Q6CisgICAgICAgICAgICAg ICAgICAgIGRiX25hbWUgPSBkYl9kaWN0W2ludChzZXJ2ZXJfaWQpXVsiZGJf bmFtZSJdCisgICAgICAgICAgICAgICAgICAgIGRyb3BfZGF0YWJhc2UoZGJf Y29ubiwgZGJfbmFtZSkKKyAgICAgICAgICAgIGRlbGV0ZV9zZXJ2ZXIoc2Vy dmVyX2lkKQorCisgICAgIyBDbGVhbnVwIGluIHRlc3Rfc2VydmVyX2RpY3QK KyAgICBzZXJ2ZXJzID0gcmVncmVzc2lvbi50ZXN0X3NlcnZlcl9kaWN0WyJz ZXJ2ZXIiXQorICAgIGlmIHNlcnZlcnM6CisgICAgICAgIGZvciBzZXJ2ZXIg aW4gc2VydmVyczoKKyAgICAgICAgICAgIHNlcnZlcl9pZCA9IHNlcnZlclsi c2VydmVyX2lkIl0KKyAgICAgICAgICAgIHNlcnZlciA9IHNlcnZlclsic2Vy dmVyIl0KKyAgICAgICAgICAgIGlmIHJlZ3Jlc3Npb24udGVzdF9zZXJ2ZXJf ZGljdFsiZGF0YWJhc2UiXToKKyAgICAgICAgICAgICAgICBkYl9pbmZvID0g cmVncmVzc2lvbi50ZXN0X3NlcnZlcl9kaWN0WyJkYXRhYmFzZSJdCisgICAg ICAgICAgICAgICAgZGJfZGljdCA9IFtpdGVtIGZvciBpdGVtIGluIGRiX2lu Zm8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNlcnZlcl9pZCA9 PSBpdGVtWyJzZXJ2ZXJfaWQiXSBdCisgICAgICAgICAgICAgICAgaWYgZGJf ZGljdDoKKyAgICAgICAgICAgICAgICAgICAgZm9yIGRiIGluIGRiX2RpY3Q6 CisgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lID0gZGJbImRiX25h bWUiXQorICAgICAgICAgICAgICAgICAgICAgICAgZGJfY29ubiA9IGdldF9k Yl9jb25uZWN0aW9uKHNlcnZlclsnZGInXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3Vz ZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VydmVyWydkYl9wYXNzd29yZCddLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsncG9ydCddKQor ICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9kYXRhYmFzZShkYl9jb25u LCBkYl9uYW1lKQorICAgICAgICAgICAgZGVsZXRlX3NlcnZlcihzZXJ2ZXJf aWQpCisKKyAgICAjIFJlbW92ZSB0aGUgdGVzdCBTUUxpdGUgZGF0YWJhc2UK KyAgICBpZiBvcy5wYXRoLmlzZmlsZShjb25maWcuU1FMSVRFX1BBVEgpOgor ICAgICAgICBvcy5yZW1vdmUoY29uZmlnLlNRTElURV9QQVRIKQpkaWZmIC0t Z2l0IGEvd2ViL3NldHVwLnB5IGIvd2ViL3NldHVwLnB5Cm9sZCBtb2RlIDEw MDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggYjIyNmQ5NC4uMjA0OTYwNgot LS0gYS93ZWIvc2V0dXAucHkKKysrIGIvd2ViL3NldHVwLnB5CkBAIC01MCwz MCArNTAsMzggQEAgZGVmIGRvX3NldHVwKGFwcCk6CiAgICAgZWxzZToKICAg ICAgICAgcHJpbnQoIk5PVEU6IENvbmZpZ3VyaW5nIGF1dGhlbnRpY2F0aW9u IGZvciBTRVJWRVIgbW9kZS5cbiIpCiAKLSAgICAgICAgIyBQcm9tcHQgdGhl IHVzZXIgZm9yIHRoZWlyIGRlZmF1bHQgdXNlcm5hbWUgYW5kIHBhc3N3b3Jk LgotICAgICAgICBwcmludCgiIiIKLUVudGVyIHRoZSBlbWFpbCBhZGRyZXNz IGFuZCBwYXNzd29yZCB0byB1c2UgZm9yIHRoZSBpbml0aWFsIHBnQWRtaW4g dXNlciBcCi1hY2NvdW50OlxuIiIiKQotICAgICAgICBlbWFpbF9maWx0ZXIg PSByZS5jb21waWxlKAotICAgICAgICAgICAgIl5bYS16QS1aMC05LiEjJCUm JyorXC89P15fYHt8fX4tXStAW2EtekEtWjAtOV0iCi0gICAgICAgICAgICAi KD86W2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pPyg/OlwuW2EtekEt WjAtOV0iCi0gICAgICAgICAgICAiKD86W2EtekEtWjAtOS1dezAsNjF9W2Et ekEtWjAtOV0pPykqJCIpCi0KLSAgICAgICAgZW1haWwgPSBpbnB1dCgiRW1h aWwgYWRkcmVzczogIikKLSAgICAgICAgd2hpbGUgZW1haWwgPT0gJycgb3Ig bm90IGVtYWlsX2ZpbHRlci5tYXRjaChlbWFpbCk6Ci0gICAgICAgICAgICBw cmludCgnSW52YWxpZCBlbWFpbCBhZGRyZXNzLiBQbGVhc2UgdHJ5IGFnYWlu LicpCisgICAgICAgIGlmIGFsbCh2YWx1ZSBpbiBvcy5lbnZpcm9uIGZvciB2 YWx1ZSBpbiBbJ2VtYWlsJywgJ3Bhc3N3b3JkJ10pOgorICAgICAgICAgICAg aWYgb3MuZW52aXJvblsnZW1haWwnXSBhbmQgb3MuZW52aXJvblsncGFzc3dv cmQnXToKKyAgICAgICAgICAgICAgICBlbWFpbCA9IG9zLmVudmlyb25bJ2Vt YWlsJ10KKyAgICAgICAgICAgICAgICBwMSA9IG9zLmVudmlyb25bJ3Bhc3N3 b3JkJ10KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgUHJvbXB0IHRo ZSB1c2VyIGZvciB0aGVpciBkZWZhdWx0IHVzZXJuYW1lIGFuZCBwYXNzd29y ZC4KKyAgICAgICAgICAgIHByaW50KCIiIgorICAgIEVudGVyIHRoZSBlbWFp bCBhZGRyZXNzIGFuZCBwYXNzd29yZCB0byB1c2UgZm9yIHRoZSBpbml0aWFs IHBnQWRtaW4gdXNlciBcCisgICAgYWNjb3VudDpcbiIiIikKKyAgICAgICAg ICAgIGVtYWlsX2ZpbHRlciA9IHJlLmNvbXBpbGUoCisgICAgICAgICAgICAg ICAgIl5bYS16QS1aMC05LiEjJCUmJyorXC89P15fYHt8fX4tXStAW2EtekEt WjAtOV0iCisgICAgICAgICAgICAgICAgIig/OlthLXpBLVowLTktXXswLDYx fVthLXpBLVowLTldKT8oPzpcLlthLXpBLVowLTldIgorICAgICAgICAgICAg ICAgICIoPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KSokIikK KwogICAgICAgICAgICAgZW1haWwgPSBpbnB1dCgiRW1haWwgYWRkcmVzczog IikKKyAgICAgICAgICAgIHdoaWxlIGVtYWlsID09ICcnIG9yIG5vdCBlbWFp bF9maWx0ZXIubWF0Y2goZW1haWwpOgorICAgICAgICAgICAgICAgIHByaW50 KCdJbnZhbGlkIGVtYWlsIGFkZHJlc3MuIFBsZWFzZSB0cnkgYWdhaW4uJykK KyAgICAgICAgICAgICAgICBlbWFpbCA9IGlucHV0KCJFbWFpbCBhZGRyZXNz OiAiKQogCi0gICAgICAgIGRlZiBwcHJvbXB0KCk6Ci0gICAgICAgICAgICBy ZXR1cm4gZ2V0cGFzcy5nZXRwYXNzKCksIGdldHBhc3MuZ2V0cGFzcygnUmV0 eXBlIHBhc3N3b3JkOicpCisgICAgICAgICAgICBkZWYgcHByb21wdCgpOgor ICAgICAgICAgICAgICAgIHJldHVybiBnZXRwYXNzLmdldHBhc3MoKSwgZ2V0 cGFzcy5nZXRwYXNzKCdSZXR5cGUgcGFzc3dvcmQ6JykKIAotICAgICAgICBw MSwgcDIgPSBwcHJvbXB0KCkKLSAgICAgICAgd2hpbGUgcDEgIT0gcDIgb3Ig bGVuKHAxKSA8IDY6Ci0gICAgICAgICAgICBpZiBwMSAhPSBwMjoKLSAgICAg ICAgICAgICAgICBwcmludCgnUGFzc3dvcmRzIGRvIG5vdCBtYXRjaC4gUGxl YXNlIHRyeSBhZ2Fpbi4nKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg ICAgICAgICBwcmludCgnUGFzc3dvcmQgbXVzdCBiZSBhdCBsZWFzdCA2IGNo YXJhY3RlcnMuIFBsZWFzZSB0cnkgYWdhaW4uJykKICAgICAgICAgICAgIHAx LCBwMiA9IHBwcm9tcHQoKQorICAgICAgICAgICAgd2hpbGUgcDEgIT0gcDIg b3IgbGVuKHAxKSA8IDY6CisgICAgICAgICAgICAgICAgaWYgcDEgIT0gcDI6 CisgICAgICAgICAgICAgICAgICAgIHByaW50KCdQYXNzd29yZHMgZG8gbm90 IG1hdGNoLiBQbGVhc2UgdHJ5IGFnYWluLicpCisgICAgICAgICAgICAgICAg ZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ1Bhc3N3b3JkIG11 c3QgYmUgYXQgbGVhc3QgNiBjaGFyYWN0ZXJzLiBQbGVhc2UgdHJ5IGFnYWlu LicpCisgICAgICAgICAgICAgICAgcDEsIHAyID0gcHByb21wdCgpCisKKyAg ICAgICAgICAgIG9zLmVudmlyb25bJ2VtYWlsJ10gPSBlbWFpbAorICAgICAg ICAgICAgb3MuZW52aXJvblsncGFzc3dvcmQnXSA9IHAxCiAKICAgICAjIFNl dHVwIEZsYXNrLVNlY3VyaXR5CiAgICAgdXNlcl9kYXRhc3RvcmUgPSBTUUxB bGNoZW15VXNlckRhdGFzdG9yZShkYiwgVXNlciwgUm9sZSkKQEAgLTkxLDcg Kzk5LDYgQEAgYWNjb3VudDpcbiIiIikKICAgICAgICAgICAgIG5hbWU9J1Vz ZXInLAogICAgICAgICAgICAgZGVzY3JpcHRpb249J3BnQWRtaW4gVXNlciBS b2xlJwogICAgICAgICApCi0KICAgICAgICAgdXNlcl9kYXRhc3RvcmUuY3Jl YXRlX3VzZXIoZW1haWw9ZW1haWwsIHBhc3N3b3JkPXBhc3N3b3JkKQogICAg ICAgICBkYi5zZXNzaW9uLmZsdXNoKCkKICAgICAgICAgdXNlcl9kYXRhc3Rv cmUuYWRkX3JvbGVfdG9fdXNlcihlbWFpbCwgJ0FkbWluaXN0cmF0b3InKQpA QCAtMzM4LDYgKzM0NSwxMCBAQCBBTFRFUiBUQUJMRSBTRVJWRVIKIGlmIF9f bmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgYXBwID0gRmxhc2soX19uYW1l X18pCiAgICAgYXBwLmNvbmZpZy5mcm9tX29iamVjdChjb25maWcpCisKKyAg ICBpZiBjb25maWcuVEVTVElOR19NT0RFOgorICAgICAgICBjb25maWcuU1FM SVRFX1BBVEggPSBjb25maWcuVEVTVF9TUUxJVEVfUEFUSAorCiAgICAgYXBw LmNvbmZpZ1snU1FMQUxDSEVNWV9EQVRBQkFTRV9VUkknXSA9IFwKICAgICAg ICAgJ3NxbGl0ZTovLy8nICsgY29uZmlnLlNRTElURV9QQVRILnJlcGxhY2Uo J1xcJywgJy8nKQogICAgIGRiLmluaXRfYXBwKGFwcCkKQEAgLTM0Niw5ICsz NTcsMTAgQEAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICBwcmlu dCgiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIp CiAKICAgICBsb2NhbF9jb25maWcgPSBvcy5wYXRoLmpvaW4oCi0gICAgICAg IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLnJlYWxwYXRoKF9fZmlsZV9fKSks CisgICAgICAgIG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUoX19m aWxlX18pKSwKICAgICAgICAgJ2NvbmZpZ19sb2NhbC5weScKICAgICApCisK ICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUobG9jYWxfY29uZmlnKToKICAg ICAgICAgcHJpbnQoIiIiCiAgVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSAtIHsw fSBkb2VzIG5vdCBleGlzdC4K --001a11404c5c34794b053c649471 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a11404c5c34794b053c649471--