Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kKcVn-0004cR-Ud for pgadmin-hackers@arkaria.postgresql.org; Tue, 22 Sep 2020 07:14:52 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kKcVl-00005W-MD for pgadmin-hackers@arkaria.postgresql.org; Tue, 22 Sep 2020 07:14:49 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kKcVl-00005P-An for pgadmin-hackers@lists.postgresql.org; Tue, 22 Sep 2020 07:14:49 +0000 Received: from mail-yb1-xb43.google.com ([2607:f8b0:4864:20::b43]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kKcVg-0006ag-L4 for pgadmin-hackers@postgresql.org; Tue, 22 Sep 2020 07:14:47 +0000 Received: by mail-yb1-xb43.google.com with SMTP id h9so4618227ybm.4 for ; Tue, 22 Sep 2020 00:14:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=bZc+eQUx0u0Ed01DYUPaLBjjlA9o4IPMa+NegbZU+Rs=; b=TXaYlNS7zaI+RF+fvx1fjVV7mbWMHXa8dHbKtnNpCAccaoObeqG0sejS7f4X0vVUTY zPTaq8hKeJ5fFZzydcuCQ26LTeGGONjKVe7Zmvx337oXmt1hIwmWeoCVA3hv1iqL4R4i DcKW6UxBWrDCW8RrGporXHt2X6lDRmTISUry6F0L+8h6c6JUEVLJPWwHd7QjhDfiAK+Z uEYrL/jLYK31u9gXH+AmYZZbNTUiYxsoR+3EDAE8KFSpQK6XEkBGD95kk5HpWLZVALt4 XYJF5woaySgHfBI6AjAviK0yu7Oc2mTwk7lLZIFeHu3aaWN3wG112XfvteBuHijYSKMf dXkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=bZc+eQUx0u0Ed01DYUPaLBjjlA9o4IPMa+NegbZU+Rs=; b=Am8rFEyfwitdbI2/utusbMLSK8+xqD5/sPNSpdehGPvXgyA8EDYWM99F1W3mM41Akt GxfNMPdGCpITBqfzQdWOuuZB3kBnpR8sQvo1lGS0VXU8x236K6D5tdLe6439uIwwJSG4 xwHdHsb1vJfaNjTLXP3DVAugbY8K4PYjgwvn863nlsEF1tZq7H/yJta4rcjqpofLiI6P PulNxJAUOJOVxuEik0bzAgX5Hj/Zlk0Vu5djYXZtOII6vvtldlhO3OKb0jdeMAqheP8w 6AW1xUTKEQp0sCD0VWXSu1qnnACcryOfvJ51ehdCkqb0wWZFlpVn8xCcWfvUOX/ZLwvj o7Bg== X-Gm-Message-State: AOAM530vhAFTzshGLxDBTrf/lK7C+9py8hwNylwU9IUH13KpZw1cDfUx MmYMKIWHWife546WQSk7xTrDcJzQe6qO7QpULcRyCLJxTSDpKccb0F/Wz3hLtvQAkxWf3aaB1Ni lX39rO1YWNkyhdN8KGmsy6nCUV+VttgPjgReyzC+0/tU6/98LleiEdt4L7ZtBPQdrwAIc05TO9J XUVt7BfLqqsOqfnyu7GjoCkVND4CPIwX3LmgJZYFBcWFEL3+AnY0ZRGEuiVg== X-Google-Smtp-Source: ABdhPJzO9py3U0DdkUijPDZQh0o+e6k6/VnHjDClLDm5yTvfSmx1wKzN2yUA5PGVJn1kz68X9oWSKf3S/J21VGxnc98= X-Received: by 2002:a25:bcd1:: with SMTP id l17mr4345825ybm.479.1600758882730; Tue, 22 Sep 2020 00:14:42 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nikhil Mohite Date: Tue, 22 Sep 2020 12:44:31 +0530 Message-ID: Subject: Re: [pgAdmin][RM5330]: [Code Coverage] Improve API test cases for Functions To: Akshay Joshi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="00000000000093c61605afe1b819" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --00000000000093c61605afe1b819 Content-Type: multipart/alternative; boundary="00000000000093c61505afe1b817" --00000000000093c61505afe1b817 Content-Type: text/plain; charset="UTF-8" Hi Akshay/Team, I checked the code and found an issue in the "msql" function, due to which test cases were failing. I have fixed the issue, PFA updated patch for the same. Sorry for the inconvenience. Regards, Nikhil Mohite. On Tue, Sep 22, 2020 at 11:41 AM Akshay Joshi wrote: > Hi Nikhil > > Test cases are failing for all the database server with the following > error: > return True, sql.strip('\n') > AttributeError: 'tuple' object has no attribute 'strip' > > Please check and resend the patch. > > On Tue, Sep 22, 2020 at 10:56 AM Nikhil Mohite < > nikhil.mohite@enterprisedb.com> wrote: > >> Hi Team, >> >> I have added few more test cases for the "Functions" module as per >> RM-5330 >> PFA patch. >> >> -- >> *Thanks & Regards,* >> *Nikhil Mohite* >> *Software Engineer.* >> *EDB Postgres* >> *Mob.No: +91-7798364578.* >> > > > -- > *Thanks & Regards* > *Akshay Joshi* > *pgAdmin Hacker | Sr. Software Architect* > *EDB Postgres * > > *Mobile: +91 976-788-8246* > --00000000000093c61505afe1b817 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Akshay/Team,

I checked the code = and found an issue=C2=A0in the "msql"=C2=A0function, due to which= test cases were=C2=A0failing.
I have fixed the issue, PFA update= d patch for the same.
Sorry for the=C2=A0inconvenience.


Regards,
= Nikhil Mohite.



On Tue, Sep 22, 2020 at 11:41 AM Aks= hay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi=C2=A0Nikhil

=
Test cases are failing for all the database server with the foll= owing error:
=C2=A0 =C2=A0 return True, sql.strip('\n')AttributeError: 'tuple' object has no attribute 'strip'

Please check and resend the patch.
<= br>
On Tue,= Sep 22, 2020 at 10:56 AM Nikhil Mohite <nikhil.mohite@enterprisedb.com>= wrote:
Hi Team,

I have added few more test cases for t= he "Functions" module as per RM-5330
PFA patch.

--
Thanks & Regards,
Nikhil Mohite
Software Engineer.
Mob.No: +91-7798364578.


--
Thank= s & Regards
Akshay Joshi
pgAdmin Hacker | Sr. Software Ar= chitect
EDB Postgres=
Mobile: +91 976-788-8246

--00000000000093c61505afe1b817-- --00000000000093c61605afe1b819 Content-Type: application/octet-stream; name="RM_5330_v2.patch" Content-Disposition: attachment; filename="RM_5330_v2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kfdm9i4i0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9fX2lu aXRfXy5weQppbmRleCAxZWRjNDZmLi41Zjg0YjI4IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv X19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL19faW5pdF9fLnB5CkBAIC0xMjE5LDE1ICsx MjE5LDE1IEBAIGNsYXNzIEZ1bmN0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVh ZGVyLCBTY2hlbWFEaWZmT2JqZWN0Q29tcGFyZSk6CiAgICAgICAgIHN0YXR1cywgc3FsID0gc2Vs Zi5fZ2V0X3NxbChnaWQ9Z2lkLCBzaWQ9c2lkLCBkaWQ9ZGlkLCBzY2lkPXNjaWQsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPXNlbGYucmVxdWVzdCwgZm5pZD1mbmlk KQogCi0gICAgICAgIGlmIHN0YXR1czoKLSAgICAgICAgICAgIHNxbCA9IHJlLnN1YignXG57Mix9 JywgJ1xuXG4nLCBzcWwpCi0gICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAot ICAgICAgICAgICAgICAgIGRhdGE9c3FsLAotICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKLSAg ICAgICAgICAgICkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNxbCA9IHJlLnN1YignXG57 Mix9JywgJ1xuXG4nLCBzcWwpCi0gICAgICAgICAgICByZXR1cm4gc3FsCisgICAgICAgIGlmIG5v dCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXNxbCkKKworICAgICAgICBzcWwgPSByZS5zdWIoJ1xuezIsfScsICdcblxuJywgc3FsKQor ICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgZGF0YT1zcWws CisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKwogCiAgICAgQHN0YXRpY21ldGhv ZAogICAgIGRlZiBfdXBkYXRlX2FyZ3VtZW50c19mb3JfZ2V0X3NxbChkYXRhLCBvbGRfZGF0YSk6 CkBAIC0xMzU5LDcgKzEzNTksNyBAQCBjbGFzcyBGdW5jdGlvblZpZXcoUEdDaGlsZE5vZGVWaWV3 LCBEYXRhVHlwZVJlYWRlciwgU2NoZW1hRGlmZk9iamVjdENvbXBhcmUpOgogICAgICAgICBpZiBu b3QgaXNpbnN0YW5jZShvbGRfZGF0YSwgZGljdCk6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2Us IGdldHRleHQoCiAgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBmaW5kIHRoZSBmdW5jdGlvbiBp biB0aGUgZGF0YWJhc2UuIgotICAgICAgICAgICAgKQorICAgICAgICAgICAgKSwgJycKIAogICAg ICAgICAjIEdldCBTY2hlbWEgTmFtZQogICAgICAgICBvbGRfZGF0YVsncHJvbmFtZXNwYWNlJ10g PSBzZWxmLl9nZXRfc2NoZW1hKApAQCAtMTQyMyw3ICsxNDIzLDcgQEAgY2xhc3MgRnVuY3Rpb25W aWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIsIFNjaGVtYURpZmZPYmplY3RDb21w YXJlKToKICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnNxbF90ZW1wbGF0ZV9wYXRoLCBzZWxm Ll9VUERBVEVfU1FMXSksCiAgICAgICAgICAgICBkYXRhPWRhdGEsIG9fZGF0YT1vbGRfZGF0YQog ICAgICAgICApCi0gICAgICAgIHJldHVybiBzcWwKKyAgICAgICAgcmV0dXJuIFRydWUsICcnLCBz cWwKIAogICAgIGRlZiBfZ2V0X3NxbChzZWxmLCAqKmt3YXJncyk6CiAgICAgICAgICIiIgpAQCAt MTQ2NCw4ICsxNDY0LDEyIEBAIGNsYXNzIEZ1bmN0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcsIERh dGFUeXBlUmVhZGVyLCBTY2hlbWFEaWZmT2JqZWN0Q29tcGFyZSk6CiAgICAgICAgICAgICAgICAg J2lzX3NxbCc6IGlzX3NxbCwKICAgICAgICAgICAgICAgICAnaXNfc2NoZW1hX2RpZmYnOiBpc19z Y2hlbWFfZGlmZiwKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNxbCA9IHNlbGYuX2dldF9z cWxfZm9yX2VkaXRfbW9kZShkYXRhLCBwYXJhbGxlbF9kaWN0LAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbF9pZHNfZGljdCwgdm9sX2RpY3QpCisgICAg ICAgICAgICBzdGF0dXMsIGVycm1zZywgc3FsID0gc2VsZi5fZ2V0X3NxbF9mb3JfZWRpdF9tb2Rl KAorICAgICAgICAgICAgICAgIGRhdGEsIHBhcmFsbGVsX2RpY3QsIGFsbF9pZHNfZGljdCwgdm9s X2RpY3QpCisKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0 dXJuIEZhbHNlLCBlcnJtc2cKKwogICAgICAgICBlbHNlOgogICAgICAgICAgICAgIyBQYXJzZSBQ cml2aWxlZ2VzCiAgICAgICAgICAgICBzZWxmLl9wYXJzZV9wcml2aWxlZ2VfZGF0YShkYXRhKQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fYWRkLnB5IGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fYWRkLnB5CmluZGV4IDJlYjYxMzkuLjczMDFj YzggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9uX2FkZC5weQor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9hZGQucHkKQEAgLTksMjMgKzks ODUgQEAKIAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCi0KK2Zyb20gdW5pdHRlc3QubW9jayBp bXBvcnQgcGF0Y2gKIAogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAogICAgIGRhdGFiYXNlX3V0aWxzCiBm cm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiBmcm9tIHJl Z3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZy b20gLiBpbXBvcnQgdXRpbHMgYXMgZnVuY3NfdXRpbHMKK2Zyb20gLi4gaW1wb3J0IEZ1bmN0aW9u VmlldwogCiAKIGNsYXNzIEZ1bmN0aW9uQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgog ICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRkIG5ldyBmdW5jdGlvbiB1bmRlciBzY2hlbWEgbm9k ZS4gIiIiCiAgICAgc2NlbmFyaW9zID0gWwogICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJM IGZvciBmdW5jdGlvbiBub2RlLgotICAgICAgICAoJ0ZldGNoIEZ1bmN0aW9uIE5vZGUgVVJMJywg ZGljdCgKLSAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vb2JqLycpKQorICAgICAg ICAoCisgICAgICAgICAgICAnRmV0Y2ggRnVuY3Rpb24gTm9kZSBVUkwnLAorICAgICAgICAgICAg ZGljdCgKKyAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL29iai8nLAorICAg ICAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9VHJ1ZSwKKyAgICAgICAgICAgICAgICBtb2Nr aW5nX3JlcXVpcmVkPUZhbHNlLAorICAgICAgICAgICAgICAgIG1vY2tfZGF0YT17fSwKKyAgICAg ICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgInN0YXR1c19j b2RlIjogMjAwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKSwKKyAgICAgICAgKSwK KyAgICAgICAgKCdDcmVhdGUgRnVuY3Rpb24gR2V0IFNxbCBGYWlsJywgZGljdCgKKyAgICAgICAg ICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vb2JqLycsCisgICAgICAgICAgICBpc19wb3NpdGl2 ZV90ZXN0PUZhbHNlLAorICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1UcnVlLAorICAgICAg ICAgICAgaXNfbW9ja19mdW5jdGlvbj1UcnVlLAorICAgICAgICAgICAgbW9ja19kYXRhPXsKKyAg ICAgICAgICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICdfZ2V0X3NxbCcsCisgICAgICAgICAgICAg ICAgInJldHVybl92YWx1ZSI6ICIoRmFsc2UsICcnKSIKKyAgICAgICAgICAgIH0sCisgICAgICAg ICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAgICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAK KyAgICAgICAgICAgIH0KKyAgICAgICAgKSksCisgICAgICAgICgnQ3JlYXRlIEZ1bmN0aW9uIEdl dCBTcWwgRXhlY3V0aW9uIEZhaWwnLCBkaWN0KAorICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9m dW5jdGlvbi9vYmovJywKKyAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9RmFsc2UsCisgICAg ICAgICAgICBtb2NraW5nX3JlcXVpcmVkPVRydWUsCisgICAgICAgICAgICBtb2NrX2RhdGE9ewor ICAgICAgICAgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBz eWNvcGcyLiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb25uZWN0aW9uLkNv bm5lY3Rpb24uZXhlY3V0ZV9zY2FsYXIiLAorICAgICAgICAgICAgICAgICJyZXR1cm5fdmFsdWUi OiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciAiCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJFcnJvciB3aGlsZSBjcmVhdGUgbmV3IGZ1bmN0aW9uIGdldCBzcWwuJyki CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAg ICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICAgICAgICB9CisgICAgICAgICkpLAorICAg ICAgICAoJ0NyZWF0ZSBGdW5jdGlvbiBGYWlsJywgZGljdCgKKyAgICAgICAgICAgIHVybD0nL2Jy b3dzZXIvZnVuY3Rpb24vb2JqLycsCisgICAgICAgICAgICBpc19wb3NpdGl2ZV90ZXN0PUZhbHNl LAorICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1UcnVlLAorICAgICAgICAgICAgbW9ja19k YXRhPXsKKyAgICAgICAgICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRy aXZlci5wc3ljb3BnMi4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29ubmVj dGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfZGljdCIsCisgICAgICAgICAgICAgICAgInJldHVybl92 YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyICIKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIkVycm9yIHdoaWxlIGNyZWF0ZSBuZXcgZnVuY3Rpb24uJykiCisg ICAgICAgICAgICB9LAorICAgICAgICAgICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAg ICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICAgICAgICB9CisgICAgICAgICkpLAogICAgIF0K IAorICAgIGRlZiBjcmVhdGVfZnVuY3Rpb24oc2VsZiwgZGF0YSk6CisgICAgICAgIHJlc3BvbnNl ID0gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNF UlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcv JyArIHN0cihzZWxmLmRiX2lkKSArCisgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zY2hlbWFf aWQpICsgJy8nLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAg ICAgY29udGVudF90eXBlPSdodG1sL2pzb24nCisgICAgICAgICkKKyAgICAgICAgcmV0dXJuIHJl c3BvbnNlCisKICAgICBkZWYgcnVuVGVzdChzZWxmKToKICAgICAgICAgIiIiIFRoaXMgZnVuY3Rp b24gd2lsbCBhZGQgZnVuY3Rpb24gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgogICAgICAgICBzdXBl cihGdW5jdGlvbkFkZFRlc3RDYXNlLCBzZWxmKS5ydW5UZXN0KCkKQEAgLTgyLDE0ICsxNDQsMjMg QEAgY2xhc3MgRnVuY3Rpb25BZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAKICAgICAg ICAgICAgIGRhdGFbJ3Byb3N1cHBvcnRmdWMnXSA9IHN1cHBvcnRfZnVuY3Rpb25fbmFtZQogCi0g ICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKLSAgICAgICAgICAgIHNlbGYudXJs ICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKHNlbGYu c2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArCi0gICAgICAgICAgICAnLycgKyBz dHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nLAotICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRh dGEpLAotICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nCi0gICAgICAgICkKKyAg ICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLmNyZWF0ZV9mdW5jdGlvbihkYXRhKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYg aGFzYXR0cihzZWxmLCAnaXNfbW9ja19mdW5jdGlvbicpOgorICAgICAgICAgICAgICAgIGRlZiBf Z2V0X3NxbChzZWxmLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxz ZSwgJycKKyAgICAgICAgICAgICAgICB3aXRoIHBhdGNoLm9iamVjdChGdW5jdGlvblZpZXcsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tb2NrX2RhdGFbImZ1bmN0aW9u X25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXc9X2dldF9zcWwp OgorICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuY3JlYXRlX2Z1bmN0aW9uKGRh dGEpCisKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxm Lm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuX3ZhbHVlPWV2YWwoc2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1ZSJdKSk6CisgICAg ICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5jcmVhdGVfZnVuY3Rpb24oZGF0YSkKIAot ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5leHBlY3RlZF9kYXRhWydzdGF0dXNfY29kZSddKQogICAgICAgICAj IERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCiAgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5l Y3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9kZWxldGUucHkgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9kZWxldGUucHkKaW5kZXggNDI0NGFhYS4uOGZhNTE2MSAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZGVsZXRlLnB5Cisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9uX2RlbGV0ZS5weQpAQCAtNyw3ICs3 LDkgQEAKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKK2ltcG9ydCBqc29uCiBpbXBvcnQgdXVpZAor ZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAogCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAg ICAgZGF0YWJhc2VfdXRpbHMKQEAgLTIwLDEwICsyMiw4MCBAQCBjbGFzcyBGdW5jdGlvbkRlbGV0 ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGRl bGV0ZSB0aGUgZnVuY3Rpb24gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgogICAgIHNjZW5hcmlvcyA9 IFsKICAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZnVuY3Rpb24gbm9kZS4KLSAg ICAgICAgKCdGZXRjaCBGdW5jdGlvbiBOb2RlIFVSTCcsCi0gICAgICAgICBkaWN0KHVybD0nL2Jy b3dzZXIvZnVuY3Rpb24vb2JqLycpKQorICAgICAgICAoJ0ZldGNoIEZ1bmN0aW9uIE5vZGUgVVJM JywgZGljdCgKKyAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vb2JqLycsCisgICAg ICAgICAgICBpc19wb3NpdGl2ZV90ZXN0PVRydWUsCisgICAgICAgICAgICBtb2NraW5nX3JlcXVp cmVkPUZhbHNlLAorICAgICAgICAgICAgbW9ja19kYXRhPXt9LAorICAgICAgICAgICAgZXhwZWN0 ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAgICAg ICB9CisgICAgICAgICkpLAorICAgICAgICAoJ0RlbGV0ZSBGdW5jdGlvbiB3aXRob3V0IGZ1bmN0 aW9uIGlkLicsIGRpY3QoCisgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL29iai8n LAorICAgICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1UcnVlLAorICAgICAgICAgICAgbW9ja2lu Z19yZXF1aXJlZD1GYWxzZSwKKyAgICAgICAgICAgIHdpdGhvdXRfZnVuY3Rpb25zX2lkPVRydWUs CisgICAgICAgICAgICB0ZXN0X2RhdGE9e30sCisgICAgICAgICAgICBtb2NrX2RhdGE9e30sCisg ICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAgICAgICAgICAic3RhdHVzX2NvZGUi OiAyMDAKKyAgICAgICAgICAgIH0KKyAgICAgICAgKSksCisgICAgICAgICgnRGVsZXRlIEZ1bmN0 aW9uIEZhaWwnLCBkaWN0KAorICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9vYmov JywKKyAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9RmFsc2UsCisgICAgICAgICAgICBtb2Nr aW5nX3JlcXVpcmVkPVRydWUsCisgICAgICAgICAgICB3aXRob3V0X2Z1bmN0aW9uc19pZD1GYWxz ZSwKKyAgICAgICAgICAgIHRlc3RfZGF0YT17fSwKKyAgICAgICAgICAgIG1vY2tfZGF0YT17Cisg ICAgICAgICAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5 Y29wZzIuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbm5lY3Rpb24uQ29u bmVjdGlvbi5leGVjdXRlXzJkYXJyYXkiLAorICAgICAgICAgICAgICAgICJyZXR1cm5fdmFsdWUi OiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciAiCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJFcnJvciB3aGlsZSBkZWxldGUgZnVuY3Rpb24uJykiCisgICAgICAgICAg ICB9LAorICAgICAgICAgICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgInN0YXR1 c19jb2RlIjogNTAwCisgICAgICAgICAgICB9CisgICAgICAgICkpLAorICAgICAgICAoJ0RlbGV0 ZSBGdW5jdGlvbiB3aXRoIG5vIG9iamVjdCBmb3VuZCcsIGRpY3QoCisgICAgICAgICAgICB1cmw9 Jy9icm93c2VyL2Z1bmN0aW9uL29iai8nLAorICAgICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1U cnVlLAorICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1UcnVlLAorICAgICAgICAgICAgbW9j a19lbXB0eV9yZXN1bHQ9VHJ1ZSwKKyAgICAgICAgICAgIHRlc3RfZGF0YT17fSwKKyAgICAgICAg ICAgIG1vY2tfZGF0YT17CisgICAgICAgICAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1p bi51dGlscy5kcml2ZXIucHN5Y29wZzIuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgImNvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlXzJkYXJyYXkiLAorICAgICAgICAgICAg ICAgICJyZXR1cm5fdmFsdWUiOiAiKFRydWUsIHsncm93cyc6IFtdfSkiCisgICAgICAgICAgICB9 LAorICAgICAgICAgICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgInN0YXR1c19j b2RlIjogMjAwCisgICAgICAgICAgICB9CisgICAgICAgICkpLAogICAgIF0KIAorICAgIGRlZiBk ZWxldGVfZnVuY3Rpb24oc2VsZiwgZnVuY19pZCk6CisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwg J3dpdGhvdXRfZnVuY3Rpb25zX2lkJyk6CisKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50 ZXN0ZXIuZGVsZXRlKAorICAgICAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZF Ul9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAn LycgKworICAgICAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCisgICAgICAgICAg ICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArIHN0cihmdW5jX2lkKSwKKyAgICAgICAg ICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi50ZXN0X2RhdGEpLAorICAgICAgICAgICAgICAg IGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICAgICAgKQorICAgICAgICBlbHNlOgor ICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCisgICAgICAgICAgICAg ICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAg ICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgc3RyKHNl bGYuZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsg Jy8nICsgc3RyKGZ1bmNfaWQpLAorICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9q c29uJworICAgICAgICAgICAgKQorICAgICAgICByZXR1cm4gcmVzcG9uc2UKKwogICAgIGRlZiBy dW5UZXN0KHNlbGYpOgogICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBmdW5j dGlvbiB1bmRlciBkYXRhYmFzZSBub2RlLiAiIiIKICAgICAgICAgc3VwZXIoRnVuY3Rpb25EZWxl dGVUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQpAQCAtMzQsMTQgKzEwNiwyNSBAQCBjbGFzcyBGdW5j dGlvbkRlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgIHNlbGYu c2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSkKIAogICAg ICAgICBmdW5jX2lkID0gZnVuY3Rpb25faW5mb1swXQotICAgICAgICByZXNwb25zZSA9IHNlbGYu dGVzdGVyLmRlbGV0ZSgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9H Uk9VUCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCi0g ICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKHNlbGYu c2NoZW1hX2lkKSArICcvJyArIHN0cihmdW5jX2lkKSwKLSAgICAgICAgICAgIGNvbnRlbnRfdHlw ZT0naHRtbC9qc29uJwotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9u c2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0Ogor ICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnd2l0aG91dF9mdW5jdGlvbnNfaWQnKToKKyAg ICAgICAgICAgICAgICBmdW5jX2lkID0gJycKKyAgICAgICAgICAgICAgICBzZWxmLnRlc3RfZGF0 YSA9IHsKKyAgICAgICAgICAgICAgICAgICAgImlkcyI6IFtmdW5jdGlvbl9pbmZvWzBdXQorICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ21vY2tfZW1wdHlf cmVzdWx0JykgYW5kIHNlbGYubW9ja19lbXB0eV9yZXN1bHQ6CisgICAgICAgICAgICAgICAgd2l0 aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPWV2YWwoc2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1 ZSJdKSk6CisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5kZWxldGVfZnVuY3Rp b24oZnVuY19pZCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVzcG9uc2Ug PSBzZWxmLmRlbGV0ZV9mdW5jdGlvbihmdW5jX2lkKQorICAgICAgICBlbHNlOgorICAgICAgICAg ICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0dXJuX3Zh bHVlIl0pKToKKyAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZGVsZXRlX2Z1bmN0aW9u KGZ1bmNfaWQpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29k ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkX2RhdGFbJ3N0YXR1c19j b2RlJ10pCiAgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKICAgICAgICAgZGF0YWJh c2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5k Yl9pZCkKIApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZ2V0 LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZ2V0LnB5CmluZGV4IDE3YmEx MTUuLjEyNGMyNzIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9u X2dldC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9nZXQucHkKQEAg LTgsNiArOCw3IEBACiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCiBpbXBvcnQgdXVpZAorZnJvbSB1bml0 dGVzdC5tb2NrIGltcG9ydCBwYXRjaAogCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJh c2VfdXRpbHMKQEAgLTIxLDEwICsyMiw2MiBAQCBjbGFzcyBGdW5jdGlvbkdldFRlc3RDYXNlKEJh c2VUZXN0R2VuZXJhdG9yKToKICAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KICAgICBz Y2VuYXJpb3MgPSBbCiAgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGZ1bmN0aW9u IG5vZGUuCi0gICAgICAgICgnRmV0Y2ggRnVuY3Rpb24gTm9kZSBVUkwnLAotICAgICAgICAgZGlj dCh1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL29iai8nKSkKKyAgICAgICAgKAorICAgICAgICAgICAg J0ZldGNoIEZ1bmN0aW9uIE5vZGUgVVJMJywKKyAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAg ICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9vYmovJywKKyAgICAgICAgICAgICAgICBpc19w b3NpdGl2ZV90ZXN0PVRydWUsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1GYWxz ZSwKKyAgICAgICAgICAgICAgICBtb2NrX2RhdGE9e30sCisgICAgICAgICAgICAgICAgZXhwZWN0 ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICkKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAg ICAgICAgJ0ZldGNoIEZ1bmN0aW9uIHByb3BlcnRpZXMgZmFpbC4nLAorICAgICAgICAgICAgZGlj dCgKKyAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL29iai8nLAorICAgICAg ICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9RmFsc2UsCisgICAgICAgICAgICAgICAgbW9ja2lu Z19yZXF1aXJlZD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tfZGF0YT17CisgICAgICAgICAg ICAgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBzeWNvcGcy LiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29ubmVjdGlvbi5Db25u ZWN0aW9uLmV4ZWN1dGVfZGljdCIsCisgICAgICAgICAgICAgICAgICAgICJyZXR1cm5fdmFsdWUi OiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciAiCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiRXJyb3Igd2hpbGUgZ2V0IHByb3BlcnRpZXMuJykiCisgICAgICAg ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAgICAg ICAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgKQorICAgICAgICApLAorICAgICAgICAoCisgICAgICAgICAgICAnRmV0Y2ggRnVuY3Rpb24g cHJvcGVydGllcyBubyBmdW5jdGlvbiBmb3VuZC4nLAorICAgICAgICAgICAgZGljdCgKKyAgICAg ICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL29iai8nLAorICAgICAgICAgICAgICAg IGlzX3Bvc2l0aXZlX3Rlc3Q9RmFsc2UsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJl ZD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tfZGF0YT17CisgICAgICAgICAgICAgICAgICAg ICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBzeWNvcGcyLiIKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4 ZWN1dGVfZGljdCIsCisgICAgICAgICAgICAgICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNl LCB7J3Jvd3MnOiBbXX0pIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgZXhw ZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICkKKyAgICAgICAgKQogICAgIF0KIAorICAgIGRl ZiBnZXRfcHJvcGVydGllcyhzZWxmLCB0cmlnZ2VyX2Z1bmNfaWQpOgorICAgICAgICByZXNwb25z ZSA9IHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNF UlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcv JyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3Ry KHNlbGYuc2NoZW1hX2lkKSArICcvJyArIHN0cih0cmlnZ2VyX2Z1bmNfaWQpLAorICAgICAgICAg ICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgICAgICByZXR1cm4gcmVzcG9uc2UKKwog ICAgIGRlZiBydW5UZXN0KHNlbGYpOgogICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGRl bGV0ZSBmdW5jdGlvbiB1bmRlciBkYXRhYmFzZSBub2RlLiAiIiIKICAgICAgICAgc3VwZXIoRnVu Y3Rpb25HZXRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQpAQCAtMzUsMTMgKzg4LDE1IEBAIGNsYXNz IEZ1bmN0aW9uR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgZnVuY19uYW1lKQogCiAg ICAgICAgIHRyaWdnZXJfZnVuY19pZCA9IGZ1bmN0aW9uX2luZm9bMF0KLSAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5nZXQoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5T RVJWRVJfR1JPVVApICsgJy8nICsKLSAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAn LycgKwotICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKLSAgICAgICAgICAgIHN0 cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKyBzdHIodHJpZ2dlcl9mdW5jX2lkKSwKLSAgICAgICAg ICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChy ZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rl c3Q6CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X3Byb3BlcnRpZXModHJpZ2dlcl9m dW5jX2lkKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tf ZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFs dWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVlIl0pKToKKyAgICAgICAgICAgICAg ICByZXNwb25zZSA9IHNlbGYuZ2V0X3Byb3BlcnRpZXModHJpZ2dlcl9mdW5jX2lkKQorCisgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5leHBlY3RlZF9kYXRhWydzdGF0dXNfY29kZSddKQogICAgICAgICAj IERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCiAgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5l Y3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCiAKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9uX2dldF9sYW5ndWFnZXMucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9nZXRfbGFuZ3VhZ2VzLnB5Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0M2I2NjMKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9nZXRfbGFuZ3VhZ2VzLnB5CkBAIC0wLDAg KzEsODAgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwg VG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxv cG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3Jl U1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBqc29uCitpbXBvcnQg dXVpZAorZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAorCitmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBh cyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQg QmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBv cnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmdW5jc191dGls cworZnJvbSAuLiBpbXBvcnQgRnVuY3Rpb25WaWV3CisKKworY2xhc3MgRnVuY3Rpb25HZXRMYW5n dWFnZXNUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xhc3MgZ2V0 IGxhbmd1YWdlcy4gIiIiCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAoCisgICAgICAgICAg ICAnRmV0Y2ggRnVuY3Rpb24gbGFuZ3VhZ2VzJywKKyAgICAgICAgICAgIGRpY3QoCisgICAgICAg ICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9nZXRfbGFuZ3VhZ2VzLycsCisgICAgICAg ICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tpbmdf cmVxdWlyZWQ9RmFsc2UsCisgICAgICAgICAgICAgICAgbW9ja19kYXRhPXt9LAorICAgICAgICAg ICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAic3RhdHVzX2NvZGUi OiAyMDAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApLAorICAgICAgICApLAorICAg ICAgICAoCisgICAgICAgICAgICAnRmV0Y2ggRnVuY3Rpb24gbGFuZ3VhZ2VzIGZhaWwnLAorICAg ICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL2dl dF9sYW5ndWFnZXMvJywKKyAgICAgICAgICAgICAgICBpc19wb3NpdGl2ZV90ZXN0PUZhbHNlLAor ICAgICAgICAgICAgICAgIG1vY2tpbmdfcmVxdWlyZWQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICBt b2NrX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICdwZ2FkbWlu LnV0aWxzLmRyaXZlci5wc3ljb3BnMi4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2Nvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX2RpY3QnLAorICAgICAgICAgICAg ICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIg RXJyb3IgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndoaWxlIGdldCBs YW5ndWFnZXMgZm9yIGZ1bmN0aW9ucy4nKSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAg ICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAic3RhdHVzX2NvZGUi OiA1MDAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApLAorICAgICAgICApCisgICAg XQorCisgICAgZGVmIGdldF9sYW5ndWFnZXMoc2VsZik6CisgICAgICAgIHJlc3BvbnNlID0gc2Vs Zi50ZXN0ZXIuZ2V0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dS T1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3Ry KHNlbGYuZGJfaWQpICsKKyAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAn LycsCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAgICAgKQorICAg ICAgICByZXR1cm4gcmVzcG9uc2UKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAi IiIgVGhpcyBmdW5jdGlvbiB3aWxsIGdldCBmdW5jdGlvbiBub2RlcyB1bmRlciBzY2hlbWEuICIi IgorICAgICAgICBzdXBlcihGdW5jdGlvbkdldExhbmd1YWdlc1Rlc3RDYXNlLCBzZWxmKS5ydW5U ZXN0KCkKKyAgICAgICAgc2VsZiA9IGZ1bmNzX3V0aWxzLnNldF91cChzZWxmKQorCisgICAgICAg IGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5n ZXRfbGFuZ3VhZ2VzKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHdpdGggcGF0Y2goc2Vs Zi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuX3ZhbHVlPWV2YWwoc2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1ZSJdKSk6CisgICAgICAg ICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmdldF9sYW5ndWFnZXMoKQorCisgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5leHBlY3RlZF9kYXRhWydzdGF0dXNfY29kZSddKQorICAgICAgICAjIERpc2Nvbm5l Y3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9nZXRfbXNxbC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0 cy90ZXN0X2Z1bmN0aW9uX2dldF9tc3FsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmU3MTdhMTgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVz dF9mdW5jdGlvbl9nZXRfbXNxbC5weQpAQCAtMCwwICsxLDIyNCBAQAorIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMp IDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdh cmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKworaW1wb3J0IGpzb24KK2ltcG9ydCB1dWlkCitmcm9tIHVuaXR0ZXN0Lm1vY2sg aW1wb3J0IHBhdGNoCisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscwor ZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBy ZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitm cm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ1bmNzX3V0aWxzCitmcm9tIHVybGxpYi5wYXJzZSBpbXBv cnQgdXJsZW5jb2RlCitmcm9tIC4uIGltcG9ydCBGdW5jdGlvblZpZXcKKworCitjbGFzcyBGdW5j dGlvbkdldG1zcWxUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xh c3MgZ2V0IFNRTC4gIiIiCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAoCisgICAgICAgICAg ICAnRmV0Y2ggRnVuY3Rpb24gbXNxbCcsCisgICAgICAgICAgICBkaWN0KAorICAgICAgICAgICAg ICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vbXNxbC8nLAorICAgICAgICAgICAgICAgIGlzX3Bv c2l0aXZlX3Rlc3Q9VHJ1ZSwKKyAgICAgICAgICAgICAgICBtb2NraW5nX3JlcXVpcmVkPUZhbHNl LAorICAgICAgICAgICAgICAgIGlzX21vY2tfbG9jYWxfZnVuY3Rpb249RmFsc2UsCisgICAgICAg ICAgICAgICAgdGVzdF9kYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiVGVzdCBG dW5jdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICJmdW5jb3duZXIiOiAiIiwKKyAgICAgICAg ICAgICAgICAgICAgInByb25hbWVzcGFjZSI6IDIyMDAsCisgICAgICAgICAgICAgICAgICAgICJw cm9yZXR0eXBlbmFtZSI6ICJjaGFyYWN0ZXIgdmFyeWluZyIsCisgICAgICAgICAgICAgICAgICAg ICJsYW5uYW1lIjogInNxbCIsCisgICAgICAgICAgICAgICAgICAgICJhcmd1bWVudHMiOiBbXSwK KyAgICAgICAgICAgICAgICAgICAgInByb3NyYyI6ICJzZWxlY3QgJzEnIiwKKyAgICAgICAgICAg ICAgICAgICAgInByb2JpbiI6ICIkbGliZGlyLyIsCisgICAgICAgICAgICAgICAgICAgICJ2YXJp YWJsZXMiOiBbXSwKKyAgICAgICAgICAgICAgICAgICAgInNlY2xhYmVscyI6IFtdLAorICAgICAg ICAgICAgICAgICAgICAiYWNsIjogW10KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg ICAgIG1vY2tfZGF0YT17fSwKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAg ICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgKSwKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAgICAgICAgJ0ZldGNoIEZ1 bmN0aW9uIG1zcWwgZmFpbCcsCisgICAgICAgICAgICBkaWN0KAorICAgICAgICAgICAgICAgIHVy bD0nL2Jyb3dzZXIvZnVuY3Rpb24vbXNxbC8nLAorICAgICAgICAgICAgICAgIGlzX3Bvc2l0aXZl X3Rlc3Q9RmFsc2UsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1UcnVlLAorICAg ICAgICAgICAgICAgIGlzX21vY2tfbG9jYWxfZnVuY3Rpb249VHJ1ZSwKKyAgICAgICAgICAgICAg ICB0ZXN0X2RhdGE9eworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJUZXN0IEZ1bmN0aW9u IiwKKyAgICAgICAgICAgICAgICAgICAgImZ1bmNvd25lciI6ICIiLAorICAgICAgICAgICAgICAg ICAgICAicHJvbmFtZXNwYWNlIjogMjIwMCwKKyAgICAgICAgICAgICAgICAgICAgInByb3JldHR5 cGVuYW1lIjogImNoYXJhY3RlciB2YXJ5aW5nIiwKKyAgICAgICAgICAgICAgICAgICAgImxhbm5h bWUiOiAic3FsIiwKKyAgICAgICAgICAgICAgICAgICAgImFyZ3VtZW50cyI6IFtdLAorICAgICAg ICAgICAgICAgICAgICAicHJvc3JjIjogInNlbGVjdCAnMSciLAorICAgICAgICAgICAgICAgICAg ICAicHJvYmluIjogIiRsaWJkaXIvIiwKKyAgICAgICAgICAgICAgICAgICAgInZhcmlhYmxlcyI6 IFtdLAorICAgICAgICAgICAgICAgICAgICAic2VjbGFiZWxzIjogW10sCisgICAgICAgICAgICAg ICAgICAgICJhY2wiOiBbXQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgbW9j a19kYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAnX2dldF9zcWwn LAorICAgICAgICAgICAgICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJycpIgorICAg ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAg ICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICksCisgICAgICAgICksCisgICAgICAgICgKKyAgICAgICAgICAgICdGZXRjaCBGdW5j dGlvbiBtc3FsIHdpdGggZnVuY3Rpb24gaWQnLAorICAgICAgICAgICAgZGljdCgKKyAgICAgICAg ICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL21zcWwvJywKKyAgICAgICAgICAgICAgICBp c19wb3NpdGl2ZV90ZXN0PVRydWUsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1U cnVlLAorICAgICAgICAgICAgICAgIHdpdGhfZnVuY3Rpb25faWQ9VHJ1ZSwKKyAgICAgICAgICAg ICAgICBpc19tb2NrX2xvY2FsX2Z1bmN0aW9uPVRydWUsCisgICAgICAgICAgICAgICAgdGVzdF9k YXRhPXsKKyAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAiVGVzdCBGdW5jdGlvbiIsCisgICAg ICAgICAgICAgICAgICAgICJmdW5jb3duZXIiOiAiIiwKKyAgICAgICAgICAgICAgICAgICAgInBy b25hbWVzcGFjZSI6IDIyMDAsCisgICAgICAgICAgICAgICAgICAgICJwcm9yZXR0eXBlbmFtZSI6 ICJjaGFyYWN0ZXIgdmFyeWluZyIsCisgICAgICAgICAgICAgICAgICAgICJsYW5uYW1lIjogInNx bCIsCisgICAgICAgICAgICAgICAgICAgICJhcmd1bWVudHMiOiBbXSwKKyAgICAgICAgICAgICAg ICAgICAgInByb3NyYyI6ICJzZWxlY3QgJzEnIiwKKyAgICAgICAgICAgICAgICAgICAgInByb2Jp biI6ICIkbGliZGlyLyIsCisgICAgICAgICAgICAgICAgICAgICJ2YXJpYWJsZXMiOiBbXSwKKyAg ICAgICAgICAgICAgICAgICAgInNlY2xhYmVscyI6IFtdLAorICAgICAgICAgICAgICAgICAgICAi YWNsIjogW10KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIG1vY2tfZGF0YT17 CisgICAgICAgICAgICAgICAgICAgICJmdW5jdGlvbl9uYW1lIjogJ19nZXRfc3FsJywKKyAgICAg ICAgICAgICAgICAgICAgInJldHVybl92YWx1ZSI6ICIoRmFsc2UsICcnKSIKKyAgICAgICAgICAg ICAgICB9LAorICAgICAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAg ICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAp LAorICAgICAgICApLAorICAgICAgICAoCisgICAgICAgICAgICAnRmV0Y2ggRnVuY3Rpb24gbXNx bCBmZXRjaCBwcm9wZXJ0aWVzIGZhaWwnLAorICAgICAgICAgICAgZGljdCgKKyAgICAgICAgICAg ICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL21zcWwvJywKKyAgICAgICAgICAgICAgICBpc19w b3NpdGl2ZV90ZXN0PUZhbHNlLAorICAgICAgICAgICAgICAgIG1vY2tpbmdfcmVxdWlyZWQ9VHJ1 ZSwKKyAgICAgICAgICAgICAgICB3aXRoX2Z1bmN0aW9uX2lkPVRydWUsCisgICAgICAgICAgICAg ICAgaXNfbW9ja19sb2NhbF9mdW5jdGlvbj1GYWxzZSwKKyAgICAgICAgICAgICAgICB0ZXN0X2Rh dGE9eworICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJUZXN0IEZ1bmN0aW9uIiwKKyAgICAg ICAgICAgICAgICAgICAgImZ1bmNvd25lciI6ICIiLAorICAgICAgICAgICAgICAgICAgICAicHJv bmFtZXNwYWNlIjogMjIwMCwKKyAgICAgICAgICAgICAgICAgICAgInByb3JldHR5cGVuYW1lIjog ImNoYXJhY3RlciB2YXJ5aW5nIiwKKyAgICAgICAgICAgICAgICAgICAgImxhbm5hbWUiOiAic3Fs IiwKKyAgICAgICAgICAgICAgICAgICAgImFyZ3VtZW50cyI6IFtdLAorICAgICAgICAgICAgICAg ICAgICAicHJvc3JjIjogInNlbGVjdCAnMSciLAorICAgICAgICAgICAgICAgICAgICAicHJvYmlu IjogIiRsaWJkaXIvIiwKKyAgICAgICAgICAgICAgICAgICAgInZhcmlhYmxlcyI6IFtdLAorICAg ICAgICAgICAgICAgICAgICAic2VjbGFiZWxzIjogW10sCisgICAgICAgICAgICAgICAgICAgICJh Y2wiOiBbXQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgbW9ja19kYXRhPXsK KyAgICAgICAgICAgICAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2 ZXIucHN5Y29wZzIuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb25u ZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9kaWN0IiwKKyAgICAgICAgICAgICAgICAgICAgInJl dHVybl92YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyICIKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFcnJvciB3aGlsZSBnZXQgbXNxIGZldGNoIHBy b3BlcnRpZXMuJykiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBleHBlY3Rl ZF9kYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgKQorICAgICAgICApLAorICAgICAgICAoCisgICAgICAg ICAgICAnRmV0Y2ggRnVuY3Rpb24gbXNxbCBmZXRjaCBwcm9wZXJ0aWVzIG5vdCBmb3VuZCcsCisg ICAgICAgICAgICBkaWN0KAorICAgICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24v bXNxbC8nLAorICAgICAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9RmFsc2UsCisgICAgICAg ICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1UcnVlLAorICAgICAgICAgICAgICAgIHdpdGhfZnVu Y3Rpb25faWQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICBpc19tb2NrX2xvY2FsX2Z1bmN0aW9uPUZh bHNlLAorICAgICAgICAgICAgICAgIHRlc3RfZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJu YW1lIjogIlRlc3QgRnVuY3Rpb24iLAorICAgICAgICAgICAgICAgICAgICAiZnVuY293bmVyIjog IiIsCisgICAgICAgICAgICAgICAgICAgICJwcm9uYW1lc3BhY2UiOiAyMjAwLAorICAgICAgICAg ICAgICAgICAgICAicHJvcmV0dHlwZW5hbWUiOiAiY2hhcmFjdGVyIHZhcnlpbmciLAorICAgICAg ICAgICAgICAgICAgICAibGFubmFtZSI6ICJzcWwiLAorICAgICAgICAgICAgICAgICAgICAiYXJn dW1lbnRzIjogW10sCisgICAgICAgICAgICAgICAgICAgICJwcm9zcmMiOiAic2VsZWN0ICcxJyIs CisgICAgICAgICAgICAgICAgICAgICJwcm9iaW4iOiAiJGxpYmRpci8iLAorICAgICAgICAgICAg ICAgICAgICAidmFyaWFibGVzIjogW10sCisgICAgICAgICAgICAgICAgICAgICJzZWNsYWJlbHMi OiBbXSwKKyAgICAgICAgICAgICAgICAgICAgImFjbCI6IFtdCisgICAgICAgICAgICAgICAgfSwK KyAgICAgICAgICAgICAgICBtb2NrX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAiZnVuY3Rp b25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi4iCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImNvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX2Rp Y3QiLAorICAgICAgICAgICAgICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihUcnVlLCB7J3Jvd3Mn OiBbXX0pIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZGF0 YT17CisgICAgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICksCisgICAgICAgICksCisgICAgXQorCisgICAgZGVmIGdldF9z cWwoc2VsZik6CisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgIndpdGhfZnVuY3Rpb25faWQiKSBh bmQgc2VsZi53aXRoX2Z1bmN0aW9uX2lkOgorICAgICAgICAgICAgZnVuY19uYW1lID0gInRlc3Rf ZnVuY3Rpb25fZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgICAg IGZ1bmN0aW9uX2luZm8gPSBmdW5jc191dGlscy5jcmVhdGVfZnVuY3Rpb24oCisgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgZnVuY19u YW1lKQorCisgICAgICAgICAgICBmdW5jX2lkID0gZnVuY3Rpb25faW5mb1swXQorICAgICAgICAg ICAgc2VsZi50ZXN0X2RhdGFbJ29pZCddID0gZnVuY19pZAorICAgICAgICAgICAgc2VsZi50ZXN0 X2RhdGFbJ25hbWUnXSA9IGZ1bmNfbmFtZQorICAgICAgICAgICAgdXJsID0gc2VsZi51cmwgKyBz dHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0cigKKyAgICAgICAgICAgICAgICBzZWxm LnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKyBzdHIoCisgICAgICAg ICAgICAgICAgc2VsZi5zY2hlbWFfaWQpICsgJy8nICsgc3RyKGZ1bmNfaWQpICsgJz8nICsgKAor ICAgICAgICAgICAgICAgIHVybGVuY29kZShzZWxmLnRlc3RfZGF0YSkpCisgICAgICAgIGVsc2U6 CisgICAgICAgICAgICB1cmwgPSBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsg Jy8nICsgc3RyKAorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihz ZWxmLmRiX2lkKSArICcvJyArIHN0cigKKyAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCkg KyAnLz8nICsgKHVybGVuY29kZShzZWxmLnRlc3RfZGF0YSkpCisgICAgICAgIHJlc3BvbnNlID0g c2VsZi50ZXN0ZXIuZ2V0KAorICAgICAgICAgICAgdXJsLAorICAgICAgICAgICAgY29udGVudF90 eXBlPSdodG1sL2pzb24nCisgICAgICAgICkKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlCisKKyAg ICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBnZXQg ZnVuY3Rpb24gbm9kZXMgdW5kZXIgc2NoZW1hLiAiIiIKKyAgICAgICAgc3VwZXIoRnVuY3Rpb25H ZXRtc3FsVGVzdENhc2UsIHNlbGYpLnJ1blRlc3QoKQorICAgICAgICBzZWxmID0gZnVuY3NfdXRp bHMuc2V0X3VwKHNlbGYpCisgICAgICAgIGRiX3VzZXIgPSBzZWxmLnNlcnZlclsidXNlcm5hbWUi XQorICAgICAgICBzZWxmLnRlc3RfZGF0YVsiZnVuY293bmVyIl0gPSBkYl91c2VyCisKKyAgICAg ICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxm LmdldF9zcWwoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZGVmIF9nZXRfc3FsKHNlbGYs ICoqa3dhcmdzKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UsICcnCisgICAgICAgICAg ICBpZiBzZWxmLmlzX21vY2tfbG9jYWxfZnVuY3Rpb246CisgICAgICAgICAgICAgICAgd2l0aCBw YXRjaC5vYmplY3QoRnVuY3Rpb25WaWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYubW9ja19kYXRhWyJmdW5jdGlvbl9uYW1lIl0sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbmV3PV9nZXRfc3FsKToKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9u c2UgPSBzZWxmLmdldF9zcWwoKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB3 aXRoIHBhdGNoKHNlbGYubW9ja19kYXRhWyJmdW5jdGlvbl9uYW1lIl0sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0dXJuX3Zh bHVlIl0pKToKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmdldF9zcWwoKQor CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5leHBlY3RlZF9kYXRhWydzdGF0dXNfY29kZSddKQorICAg ICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRp c2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9nZXRfbm9kZXMucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9nZXRfbm9kZXMucHkKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE0NjQ2OAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0aW9uX2dldF9ub2Rlcy5weQpAQCAtMCwwICsxLDEyMSBA QAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwor IworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBU ZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGlj ZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IHV1aWQKK2Zyb20gdW5pdHRlc3Qu bW9jayBpbXBvcnQgcGF0Y2gKKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0 aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitm cm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRp bHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnVuY3NfdXRpbHMKKworCitjbGFzcyBGdW5jdGlv bkdldE5vZGVzVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNsYXNz IGdldCBmdW5jdGlvbiB0eXBlcyAiIiIKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICgKKyAg ICAgICAgICAgICdGZXRjaCBGdW5jdGlvbiBOb2RlcycsCisgICAgICAgICAgICBkaWN0KAorICAg ICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vbm9kZXMvJywKKyAgICAgICAgICAg ICAgICBpc19wb3NpdGl2ZV90ZXN0PVRydWUsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1 aXJlZD1GYWxzZSwKKyAgICAgICAgICAgICAgICBtb2NrX2RhdGE9e30sCisgICAgICAgICAgICAg ICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDIw MAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICksCisgICAgICAgICksCisgICAgICAg ICgKKyAgICAgICAgICAgICdGZXRjaCBGdW5jdGlvbiBOb2RlcyBGYWlsLicsCisgICAgICAgICAg ICBkaWN0KAorICAgICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vbm9kZXMvJywK KyAgICAgICAgICAgICAgICBpc19wb3NpdGl2ZV90ZXN0PUZhbHNlLAorICAgICAgICAgICAgICAg IG1vY2tpbmdfcmVxdWlyZWQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICBtb2NrX2RhdGE9eworICAg ICAgICAgICAgICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5w c3ljb3BnMi4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbm5lY3Rp b24uQ29ubmVjdGlvbi5leGVjdXRlXzJkYXJyYXkiLAorICAgICAgICAgICAgICAgICAgICAicmV0 dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgIgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVycm9yIHdoaWxlIGdldCBmdW5jdGlvbiBub2Rl cy4nKSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9 eworICAgICAgICAgICAgICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICApLAorICAgICAgICApLAorICAgICAgICAoCisgICAgICAgICAgICAn RmV0Y2ggRnVuY3Rpb24gTm9kZXMgd2l0aCBmdW5jdGlvbiBpZC4nLAorICAgICAgICAgICAgZGlj dCgKKyAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL25vZGVzLycsCisgICAg ICAgICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tp bmdfcmVxdWlyZWQ9RmFsc2UsCisgICAgICAgICAgICAgICAgd2l0aF9mdW5jdGlvbl9pZD1UcnVl LAorICAgICAgICAgICAgICAgIG1vY2tfZGF0YT17fSwKKyAgICAgICAgICAgICAgICBleHBlY3Rl ZF9kYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgKSwKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAg ICAgICAgJ0ZldGNoIEZ1bmN0aW9uIE5vZGVzIHdpdGggZnVuY3Rpb24gaWQgZmFpbC4nLAorICAg ICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL25v ZGVzLycsCisgICAgICAgICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1GYWxzZSwKKyAgICAgICAg ICAgICAgICBtb2NraW5nX3JlcXVpcmVkPVRydWUsCisgICAgICAgICAgICAgICAgd2l0aF9mdW5j dGlvbl9pZD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tfZGF0YT17CisgICAgICAgICAgICAg ICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBzeWNvcGcyLiIK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29ubmVjdGlvbi5Db25uZWN0 aW9uLmV4ZWN1dGVfMmRhcnJheSIsCisgICAgICAgICAgICAgICAgICAgICJyZXR1cm5fdmFsdWUi OiAiKFRydWUsIHsncm93cyc6W119KSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg ICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAic3RhdHVzX2NvZGUiOiA0 MTAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApLAorICAgICAgICApCisgICAgXQor CisgICAgZGVmIGdldF9ub2RlcyhzZWxmKToKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnd2l0 aF9mdW5jdGlvbl9pZCcpIGFuZCBzZWxmLndpdGhfZnVuY3Rpb25faWQ6CisgICAgICAgICAgICBm dW5jX25hbWUgPSAidGVzdF9mdW5jdGlvbl9kZWxldGVfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlb MTo4XQorICAgICAgICAgICAgZnVuY3Rpb25faW5mbyA9IGZ1bmNzX3V0aWxzLmNyZWF0ZV9mdW5j dGlvbigKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNj aGVtYV9uYW1lLCBmdW5jX25hbWUpCisKKyAgICAgICAgICAgIGZ1bmNfaWQgPSBmdW5jdGlvbl9p bmZvWzBdCisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAg ICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAg ICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsK KyAgICAgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsgc3RyKGZ1 bmNfaWQpLAorICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAg ICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5nZXQoCisgICAgICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQ KSArICcvJyArCisgICAgICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0 cihzZWxmLmRiX2lkKSArCisgICAgICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2NoZW1hX2lk KSArICcvJywKKyAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAg ICAgICAgICkKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlCisKKyAgICBkZWYgcnVuVGVzdChzZWxm KToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBnZXQgZnVuY3Rpb24gbm9kZXMgdW5k ZXIgc2NoZW1hLiAiIiIKKyAgICAgICAgc3VwZXIoRnVuY3Rpb25HZXROb2Rlc1Rlc3RDYXNlLCBz ZWxmKS5ydW5UZXN0KCkKKyAgICAgICAgc2VsZiA9IGZ1bmNzX3V0aWxzLnNldF91cChzZWxmKQor CisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAgICAgIHJlc3BvbnNl ID0gc2VsZi5nZXRfbm9kZXMoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2l0aCBwYXRj aChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVlIl0pKToKKyAg ICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X25vZGVzKCkKKworICAgICAgICBzZWxm LmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZXhwZWN0ZWRfZGF0YVsnc3RhdHVzX2NvZGUnXSkKKyAgICAgICAgIyBEaXNjb25u ZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFi YXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZ2V0X3NxbC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0 cy90ZXN0X2Z1bmN0aW9uX2dldF9zcWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uMGY1YTFlMgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0 X2Z1bmN0aW9uX2dldF9zcWwucHkKQEAgLTAsMCArMSw4NSBAQAorIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIw MTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUg aXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKworaW1wb3J0IGpzb24KK2ltcG9ydCB1dWlkCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1w b3J0IHBhdGNoCisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJv bSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdy ZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9t IC4gaW1wb3J0IHV0aWxzIGFzIGZ1bmNzX3V0aWxzCitmcm9tIC4uIGltcG9ydCBGdW5jdGlvblZp ZXcKKworCitjbGFzcyBGdW5jdGlvblNxbFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAg ICAiIiIgVGhpcyBjbGFzcyBmb3IgZnVuY3Rpb24gU1FMICIiIgorICAgIHNjZW5hcmlvcyA9IFsK KyAgICAgICAgKAorICAgICAgICAgICAgJ0ZldGNoIEZ1bmN0aW9uIFNRTCcsCisgICAgICAgICAg ICBkaWN0KAorICAgICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vc3FsLycsCisg ICAgICAgICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1UcnVlLAorICAgICAgICAgICAgICAgIG1v Y2tpbmdfcmVxdWlyZWQ9RmFsc2UsCisgICAgICAgICAgICAgICAgbW9ja19kYXRhPXt9LAorICAg ICAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAic3RhdHVz X2NvZGUiOiAyMDAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApLAorICAgICAgICAp LAorICAgICAgICAoCisgICAgICAgICAgICAnRmV0Y2ggRnVuY3Rpb24gU1FMIGZhaWwnLAorICAg ICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL3Nx bC8nLAorICAgICAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9RmFsc2UsCisgICAgICAgICAg ICAgICAgbW9ja2luZ19yZXF1aXJlZD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tfZGF0YT17 CisgICAgICAgICAgICAgICAgICAgICJmdW5jdGlvbl9uYW1lIjogJ3BnYWRtaW4udXRpbHMuZHJp dmVyLnBzeWNvcGcyLicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29u bmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfMmRhcnJheScsCisgICAgICAgICAgICAgICAgICAg ICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvciAi CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2hpbGUgU1FMIGZvciBmdW5j dGlvbnMuJykiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9k YXRhPXsKKyAgICAgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgKSwKKyAgICAgICAgKQorICAgIF0KKworICAgIGRlZiBzcWwo c2VsZiwgZnVuY19pZCk6CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAorICAg ICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAg ICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsKKyAg ICAgICAgICAgICcvJyArIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKyBzdHIoZnVuY19pZCks CisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAgICAgKQorICAgICAg ICByZXR1cm4gcmVzcG9uc2UKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIg VGhpcyBmdW5jdGlvbiB3aWxsIGdldCBmdW5jdGlvbiBub2RlcyB1bmRlciBzY2hlbWEuICIiIgor ICAgICAgICBzdXBlcihGdW5jdGlvblNxbFRlc3RDYXNlLCBzZWxmKS5ydW5UZXN0KCkKKyAgICAg ICAgc2VsZiA9IGZ1bmNzX3V0aWxzLnNldF91cChzZWxmKQorICAgICAgICBmdW5jX25hbWUgPSAi dGVzdF9mdW5jdGlvbl9kZWxldGVfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAg ICBmdW5jdGlvbl9pbmZvID0gZnVuY3NfdXRpbHMuY3JlYXRlX2Z1bmN0aW9uKAorICAgICAgICAg ICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgZnVuY19uYW1l KQorCisgICAgICAgIGZ1bmNfaWQgPSBmdW5jdGlvbl9pbmZvWzBdCisKKyAgICAgICAgaWYgc2Vs Zi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnNxbChmdW5j X2lkKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0 YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9 ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVlIl0pKToKKyAgICAgICAgICAgICAgICBy ZXNwb25zZSA9IHNlbGYuc3FsKGZ1bmNfaWQpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChy ZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVj dGVkX2RhdGFbJ3N0YXR1c19jb2RlJ10pCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJh c2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90 ZXN0X2Z1bmN0aW9uX2dldF90eXBlcy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0 aW9uX2dldF90eXBlcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDM4 NDA2Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25f Z2V0X3R5cGVzLnB5CkBAIC0wLDAgKzEsODIgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBn QWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAy MCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVh c2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisK K2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAorZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRj aAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1p bi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbi5w eXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9y dCB1dGlscyBhcyBmdW5jc191dGlscworZnJvbSAuLiBpbXBvcnQgRnVuY3Rpb25WaWV3CisKKwor Y2xhc3MgRnVuY3Rpb25HZXRUeXBlc1Rlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAi IiIgVGhpcyBjbGFzcyBnZXQgdHlwZXMgIiIiCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAo CisgICAgICAgICAgICAnRmV0Y2ggRnVuY3Rpb24gdHlwZXMnLAorICAgICAgICAgICAgZGljdCgK KyAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL2dldF90eXBlcy8nLAorICAg ICAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9VHJ1ZSwKKyAgICAgICAgICAgICAgICBtb2Nr aW5nX3JlcXVpcmVkPUZhbHNlLAorICAgICAgICAgICAgICAgIG1vY2tfZGF0YT17fSwKKyAgICAg ICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgInN0YXR1c19j b2RlIjogMjAwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKSwKKyAgICAgICAgKSwK KyAgICAgICAgKAorICAgICAgICAgICAgJ0ZldGNoIEZ1bmN0aW9uIHR5cGVzIGZhaWwnLAorICAg ICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL2dl dF90eXBlcy8nLAorICAgICAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9RmFsc2UsCisgICAg ICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tf ZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJmdW5jdGlvbl9uYW1lIjogJ2dldF90eXBlcycs CisgICAgICAgICAgICAgICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCBbXSkiCisgICAg ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAg ICAgICAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgKSwKKyAgICAgICAgKQorICAgIF0KKworICAgIGRlZiBnZXRfdHlwZXMoc2VsZik6Cisg ICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAorICAgICAgICAgICAgc2VsZi51cmwg KyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5z ZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsKKyAgICAgICAgICAgICcvJyArIHN0 cihzZWxmLnNjaGVtYV9pZCkgKyAnLycsCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwv anNvbicKKyAgICAgICAgKQorICAgICAgICByZXR1cm4gcmVzcG9uc2UKKworICAgIGRlZiBydW5U ZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGdldCBmdW5jdGlvbiBu b2RlcyB1bmRlciBzY2hlbWEuICIiIgorICAgICAgICBzdXBlcihGdW5jdGlvbkdldFR5cGVzVGVz dENhc2UsIHNlbGYpLnJ1blRlc3QoKQorICAgICAgICBzZWxmID0gZnVuY3NfdXRpbHMuc2V0X3Vw KHNlbGYpCisKKyAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAg cmVzcG9uc2UgPSBzZWxmLmdldF90eXBlcygpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBk ZWYgX2dldF90eXBlcyhzZWxmLCBjb25uLCBjb25kaXRpb24sIGFkZF9zZXJpYWxzPUZhbHNlLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX29pZD0nJyk6CisgICAgICAgICAgICAg ICAgcmV0dXJuIEZhbHNlLCBbXQorCisgICAgICAgICAgICB3aXRoIHBhdGNoLm9iamVjdChGdW5j dGlvblZpZXcsIHNlbGYubW9ja19kYXRhWyJmdW5jdGlvbl9uYW1lIl0sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBuZXc9X2dldF90eXBlcyk6CisgICAgICAgICAgICAgICAgcmVzcG9u c2UgPSBzZWxmLmdldF90eXBlcygpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25z ZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkX2Rh dGFbJ3N0YXR1c19jb2RlJ10pCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAg ICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZl cl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1 bmN0aW9uX2dldF92YXJpYWJsZV9vcHRpb25zLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3Rf ZnVuY3Rpb25fZ2V0X3ZhcmlhYmxlX29wdGlvbnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uNDUyMzIwMgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0 cy90ZXN0X2Z1bmN0aW9uX2dldF92YXJpYWJsZV9vcHRpb25zLnB5CkBAIC0wLDAgKzEsODAgQEAK KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMK KyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVh bQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAorZnJv bSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAg ZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91 dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmdW5jc191dGlscworZnJvbSAu LiBpbXBvcnQgRnVuY3Rpb25WaWV3CisKKworY2xhc3MgRnVuY3Rpb25HZXRMYW5ndWFnZXNUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xhc3MgZ2V0IHZhcmlhYmxl IG9wdGlvbnMuICIiIgorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgKAorICAgICAgICAgICAg J0ZldGNoIEZ1bmN0aW9uIHZhcmlhYmxlIG9wdGlvbnMnLAorICAgICAgICAgICAgZGljdCgKKyAg ICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL3ZvcHRzLycsCisgICAgICAgICAg ICAgICAgaXNfcG9zaXRpdmVfdGVzdD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tpbmdfcmVx dWlyZWQ9RmFsc2UsCisgICAgICAgICAgICAgICAgbW9ja19kYXRhPXt9LAorICAgICAgICAgICAg ICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAic3RhdHVzX2NvZGUiOiAy MDAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApLAorICAgICAgICApLAorICAgICAg ICAoCisgICAgICAgICAgICAnRmV0Y2ggRnVuY3Rpb24gdmFyaWFibGUgb3B0aW9ucyBmYWlsJywK KyAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlv bi92b3B0cy8nLAorICAgICAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9RmFsc2UsCisgICAg ICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tf ZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJmdW5jdGlvbl9uYW1lIjogJ3BnYWRtaW4udXRp bHMuZHJpdmVyLnBzeWNvcGcyLicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfZGljdCcsCisgICAgICAgICAgICAgICAg ICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJv ciAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2hpbGUgZ2V0IGxhbmd1 YWdlcyBmb3IgZnVuY3Rpb25zLicpIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAg ICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDUw MAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICksCisgICAgICAgICkKKyAgICBdCisK KyAgICBkZWYgZ2V0X2xhbmd1YWdlcyhzZWxmKToKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5nZXQoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVAp ICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2Vs Zi5kYl9pZCkgKworICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJywK KyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICApCisgICAgICAg IHJldHVybiByZXNwb25zZQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBU aGlzIGZ1bmN0aW9uIHdpbGwgZ2V0IGZ1bmN0aW9uIG5vZGVzIHVuZGVyIHNjaGVtYS4gIiIiCisg ICAgICAgIHN1cGVyKEZ1bmN0aW9uR2V0TGFuZ3VhZ2VzVGVzdENhc2UsIHNlbGYpLnJ1blRlc3Qo KQorICAgICAgICBzZWxmID0gZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYpCisKKyAgICAgICAgaWYg c2VsZi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmdldF9s YW5ndWFnZXMoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1v Y2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5f dmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVlIl0pKToKKyAgICAgICAgICAg ICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X2xhbmd1YWdlcygpCisKKyAgICAgICAgc2VsZi5hc3Nl cnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmV4cGVjdGVkX2RhdGFbJ3N0YXR1c19jb2RlJ10pCisgICAgICAgICMgRGlzY29ubmVjdCB0 aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShz ZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZXN0cy90ZXN0X2Z1bmN0aW9uX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1 bmN0aW9uX3B1dC5weQppbmRleCAxZGI0NmEzLi4wNzY2NTZhIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3Rz L3Rlc3RfZnVuY3Rpb25fcHV0LnB5CkBAIC05LDEyICs5LDE0IEBACiAKIGltcG9ydCBqc29uCiBp bXBvcnQgdXVpZAorZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAogCiBmcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1 dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMKIGZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBp bXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGls cyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmdW5j c191dGlscworZnJvbSAuLiBpbXBvcnQgRnVuY3Rpb25WaWV3CiAKIAogY2xhc3MgRnVuY3Rpb25Q dXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CkBAIC0yMiwxOCArMjQsMTMzIEBAIGNsYXNz IEZ1bmN0aW9uUHV0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgIHNraXBfb25fZGF0 YWJhc2UgPSBbJ2dwZGInXQogICAgIHNjZW5hcmlvcyA9IFsKICAgICAgICAgIyBGZXRjaGluZyBk ZWZhdWx0IFVSTCBmb3IgZnVuY3Rpb24gbm9kZS4KLSAgICAgICAgKCdGZXRjaCBGdW5jdGlvbiBO b2RlIFVSTCcsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vb2JqLycpKQor ICAgICAgICAoJ0ZldGNoIEZ1bmN0aW9uIE5vZGUgVVJMJywgZGljdCgKKyAgICAgICAgICAgIHVy bD0nL2Jyb3dzZXIvZnVuY3Rpb24vb2JqLycsCisgICAgICAgICAgICBpc19wb3NpdGl2ZV90ZXN0 PVRydWUsCisgICAgICAgICAgICBtb2NraW5nX3JlcXVpcmVkPUZhbHNlLAorICAgICAgICAgICAg aXNfbW9ja19mdW5jdGlvbj1GYWxzZSwKKyAgICAgICAgICAgIG1vY2tfZGF0YT17fSwKKyAgICAg ICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDIw MAorICAgICAgICAgICAgfQorICAgICAgICApKSwKKyAgICAgICAgKCdGZXRjaCBGdW5jdGlvbiB1 cGRhdGUgZmFpbCcsIGRpY3QoCisgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL29i ai8nLAorICAgICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1GYWxzZSwKKyAgICAgICAgICAgIG1v Y2tpbmdfcmVxdWlyZWQ9VHJ1ZSwKKyAgICAgICAgICAgIGlzX21vY2tfZnVuY3Rpb249RmFsc2Us CisgICAgICAgICAgICBtb2NrX2RhdGE9eworICAgICAgICAgICAgICAgICJmdW5jdGlvbl9uYW1l IjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBzeWNvcGcyLiIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJjb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9zY2FsYXIiLAorICAg ICAgICAgICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNl cnZlciAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFcnJvciB3aGlsZSBjcmVh dGUgbmV3IGZ1bmN0aW9uIGdldCBzcWwuJykiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAg ZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAg ICAgICAgICB9CisgICAgICAgICkpLAorICAgICAgICAoJ0ZldGNoIEZ1bmN0aW9uIHVwZGF0ZSBn ZXQgc3FsIGZhaWwnLCBkaWN0KAorICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9v YmovJywKKyAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9RmFsc2UsCisgICAgICAgICAgICBt b2NraW5nX3JlcXVpcmVkPVRydWUsCisgICAgICAgICAgICBpc19tb2NrX2Z1bmN0aW9uPVRydWUs CisgICAgICAgICAgICBtb2NrX2RhdGE9eworICAgICAgICAgICAgICAgICJmdW5jdGlvbl9uYW1l IjogJ19nZXRfc3FsJywKKyAgICAgICAgICAgICAgICAicmV0dXJuX3ZhbHVlIjogW0ZhbHNlLCAn J10KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAg ICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgICAgICAgIH0KKyAgICAgICAgKSksCisg ICAgICAgICgnRmV0Y2ggRnVuY3Rpb24gdXBkYXRlIGdldCBzcWwgd2l0aCBubyByZXN1bHQuJywg ZGljdCgKKyAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vb2JqLycsCisgICAgICAg ICAgICBpc19wb3NpdGl2ZV90ZXN0PUZhbHNlLAorICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJl ZD1UcnVlLAorICAgICAgICAgICAgaXNfbW9ja19mdW5jdGlvbj1UcnVlLAorICAgICAgICAgICAg bW9ja19kYXRhPXsKKyAgICAgICAgICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICdfZ2V0X3NxbCcs CisgICAgICAgICAgICAgICAgInJldHVybl92YWx1ZSI6IFtUcnVlLCAnJ10KKyAgICAgICAgICAg IH0sCisgICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAgICAgICAgICAic3RhdHVz X2NvZGUiOiAyMDAKKyAgICAgICAgICAgIH0KKyAgICAgICAgKSksCisgICAgICAgICgKKyAgICAg ICAgICAgICdGZXRjaCBGdW5jdGlvbiB1cGRhdGUgd2l0aCBhcmd1bWVudHMnLAorICAgICAgICAg ICAgZGljdCgKKyAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL29iai8nLAor ICAgICAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9VHJ1ZSwKKyAgICAgICAgICAgICAgICBt b2NraW5nX3JlcXVpcmVkPUZhbHNlLAorICAgICAgICAgICAgICAgIHdpdGhfZnVuY3Rpb25faWQ9 VHJ1ZSwKKyAgICAgICAgICAgICAgICBpc19tb2NrX2xvY2FsX2Z1bmN0aW9uPUZhbHNlLAorICAg ICAgICAgICAgICAgIGlzX2FkZF9hcmd1bWVudD1UcnVlLAorICAgICAgICAgICAgICAgIHRlc3Rf ZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJhcmd1bWVudHMiOiB7CisgICAgICAgICAgICAg ICAgICAgICAgICAiY2hhbmdlZCI6IFt7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFy Z2RlZnZhbCI6ICIyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJnaWQiOiAwLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmdtb2RlIjogIklOIiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiYXJnbmFtZSI6ICJ0ZXN0IiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiYXJndHlwZSI6ICJpbnRlZ2VyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIH1d CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg ICAgIG1vY2tfZGF0YT17fSwKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAg ICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgKSwKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAgICAgICAgJ0ZldGNoIEZ1 bmN0aW9uIHVwZGF0ZSB3aXRoIGFyZ3VtZW50cyBmYWlsJywKKyAgICAgICAgICAgIGRpY3QoCisg ICAgICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9vYmovJywKKyAgICAgICAgICAg ICAgICBpc19wb3NpdGl2ZV90ZXN0PVRydWUsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1 aXJlZD1GYWxzZSwKKyAgICAgICAgICAgICAgICB3aXRoX2Z1bmN0aW9uX2lkPVRydWUsCisgICAg ICAgICAgICAgICAgaXNfbW9ja19sb2NhbF9mdW5jdGlvbj1GYWxzZSwKKyAgICAgICAgICAgICAg ICBpc19hZGRfYXJndW1lbnQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICB0ZXN0X2RhdGE9eworICAg ICAgICAgICAgICAgICAgICAiYXJndW1lbnRzIjogeworICAgICAgICAgICAgICAgICAgICAgICAg ImNoYW5nZWQiOiBbeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmdkZWZ2YWwiOiAi MiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFyZ2lkIjogMCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiYXJnbW9kZSI6ICJJTiIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImFyZ25hbWUiOiAicGFyYW0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJh cmd0eXBlIjogImludGVnZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgfV0KKyAgICAgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgbW9ja19k YXRhPXt9LAorICAgICAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAg ICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAp LAorICAgICAgICApLAogICAgIF0KIAorICAgIGRlZiB1cGRhdGVfZnVuY3Rpb24oc2VsZiwgZnVu Y19pZCwgZGF0YSk6CisgICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKKyAg ICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKworICAgICAgICAg ICAgJy8nICsgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArICcv JyArCisgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsKKyAgICAgICAgICAg IHN0cihmdW5jX2lkKSwKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKyAgICAgICAgcmV0dXJuIHB1dF9yZXNwb25z ZQorCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdp bGwgdXBkYXRlIGZ1bmN0aW9uIHVuZGVyIGRhdGFiYXNlIG5vZGUuICIiIgogICAgICAgICBzdXBl cihGdW5jdGlvblB1dFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCiAgICAgICAgIHNlbGYgPSBmdW5j c191dGlscy5zZXRfdXAoc2VsZikKLQogICAgICAgICBmdW5jX25hbWUgPSAidGVzdF9ldmVudF9k ZWxldGVfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorCisgICAgICAgIGlmIGhhc2F0dHIo c2VsZiwgImlzX2FkZF9hcmd1bWVudCIpIGFuZCBzZWxmLmlzX2FkZF9hcmd1bWVudDoKKyAgICAg ICAgICAgIGFyZ3MgPSAiSU4gdGVzdCBpbnRlZ2VyIERFRkFVTFQgMSIKKyAgICAgICAgZWxzZToK KyAgICAgICAgICAgIGFyZ3MgPSAnJwogICAgICAgICBmdW5jdGlvbl9pbmZvID0gZnVuY3NfdXRp bHMuY3JlYXRlX2Z1bmN0aW9uKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFt ZSwgc2VsZi5zY2hlbWFfbmFtZSwgZnVuY19uYW1lKQorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIs IHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgZnVuY19uYW1lLCBhcmdzPWFyZ3MpCiAK ICAgICAgICAgZnVuY19pZCA9IGZ1bmN0aW9uX2luZm9bMF0KIApAQCAtNDIsNiArMTU5LDkgQEAg Y2xhc3MgRnVuY3Rpb25QdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAg ICAiaWQiOiBmdW5jX2lkCiAgICAgICAgIH0KIAorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJp c19hZGRfYXJndW1lbnQiKSBhbmQgc2VsZi5pc19hZGRfYXJndW1lbnQ6CisgICAgICAgICAgICBk YXRhWydhcmd1bWVudHMnXSA9IHNlbGYudGVzdF9kYXRhWydhcmd1bWVudHMnXQorCiAgICAgICAg IGlmIHNlbGYuc2VydmVyX3ZlcnNpb24gPj0gMTIwMDAwOgogICAgICAgICAgICAgc3VwcG9ydF9m dW5jdGlvbl9uYW1lID0gJ3N1cHBvcnRmdW5jXyVzJyAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0K ICAgICAgICAgICAgIGZ1bmNzX3V0aWxzLmNyZWF0ZV9zdXBwb3J0X2ludGVybmFsX2Z1bmN0aW9u KApAQCAtNTMsMTQgKzE3MywyOSBAQCBjbGFzcyBGdW5jdGlvblB1dFRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKIAogICAgICAgICAgICAgZGF0YVsncHJvc3VwcG9ydGZ1YyddID0gc3VwcG9y dF9mdW5jdGlvbl9uYW1lCiAKLSAgICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0 KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArCi0gICAg ICAgICAgICAnLycgKyBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQp ICsgJy8nICsKLSAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKwotICAgICAg ICAgICAgc3RyKGZ1bmNfaWQpLAotICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAot ICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVx dWFsKHB1dF9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAgICBpZiBzZWxmLmlzX3Bv c2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudXBkYXRlX2Z1bmN0aW9u KGZ1bmNfaWQsIGRhdGEpCisgICAgICAgIGVsc2U6CisKKyAgICAgICAgICAgIGlmIGhhc2F0dHIo c2VsZiwgJ2lzX21vY2tfZnVuY3Rpb24nKSBhbmQgc2VsZi5pc19tb2NrX2Z1bmN0aW9uOgorICAg ICAgICAgICAgICAgIGxvY2FsX3JlZiA9IHNlbGYKKworICAgICAgICAgICAgICAgIGRlZiBfZ2V0 X3NxbChzZWxmLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IGxvY2Fs X3JlZi5tb2NrX2RhdGFbInJldHVybl92YWx1ZSJdWzBdCisgICAgICAgICAgICAgICAgICAgIHJl c3VsdCA9IGxvY2FsX3JlZi5tb2NrX2RhdGFbJ3JldHVybl92YWx1ZSddWzFdCisgICAgICAgICAg ICAgICAgICAgIHJldHVybiBzdGF0dXMsIHJlc3VsdAorCisgICAgICAgICAgICAgICAgd2l0aCBw YXRjaC5vYmplY3QoRnVuY3Rpb25WaWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYubW9ja19kYXRhWyJmdW5jdGlvbl9uYW1lIl0sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbmV3PV9nZXRfc3FsKToKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnVwZGF0ZV9mdW5jdGlvbihmdW5jX2lkLCBkYXRhKQorICAgICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICAgICB3aXRoIHBhdGNoKHNlbGYubW9ja19kYXRhWyJmdW5jdGlvbl9u YW1lIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9ZXZhbChzZWxm Lm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVlIl0pKToKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnVwZGF0ZV9mdW5jdGlvbihmdW5jX2lkLCBkYXRhKQorCisgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5leHBlY3RlZF9kYXRhWydzdGF0dXNfY29kZSddKQogICAgICAgICAjIERpc2Nvbm5l Y3QgdGhlIGRhdGFiYXNlCiAgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCiAKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZXN0cy90ZXN0X2dldF9kZXBlbmRlbmNpZXMucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVz dHMvdGVzdF9nZXRfZGVwZW5kZW5jaWVzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjQzOWU0NWQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVz dF9nZXRfZGVwZW5kZW5jaWVzLnB5CkBAIC0wLDAgKzEsODUgQEAKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAy MDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJl IGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAorZnJvbSB1bml0dGVzdC5tb2NrIGlt cG9ydCBwYXRjaAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zy b20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVn cmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJv bSAuIGltcG9ydCB1dGlscyBhcyBmdW5jc191dGlscworZnJvbSAuLiBpbXBvcnQgRnVuY3Rpb25W aWV3CisKKworY2xhc3MgRnVuY3Rpb25HZXREZXBlbmRlbmNpZXNUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xhc3MgZ2V0IGRlcGVuZGVuY2llcyBmb3IgZnVuY3Rp b25zLiAiIiIKKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICgKKyAgICAgICAgICAgICdGZXRj aCBGdW5jdGlvbiBkZXBlbmRlbmNpZXMuJywKKyAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAg ICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9kZXBlbmRlbmN5LycsCisgICAgICAgICAgICAg ICAgaXNfcG9zaXRpdmVfdGVzdD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tpbmdfcmVxdWly ZWQ9RmFsc2UsCisgICAgICAgICAgICAgICAgbW9ja19kYXRhPXt9LAorICAgICAgICAgICAgICAg IGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAK KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApLAorICAgICAgICApLAorICAgICAgICAo CisgICAgICAgICAgICAnRmV0Y2ggRnVuY3Rpb24gZGVwZW5kZW5jaWVzIGZhaWwnLAorICAgICAg ICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL2RlcGVu ZGVuY3kvJywKKyAgICAgICAgICAgICAgICBpc19wb3NpdGl2ZV90ZXN0PUZhbHNlLAorICAgICAg ICAgICAgICAgIG1vY2tpbmdfcmVxdWlyZWQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICBtb2NrX2Rh dGE9eworICAgICAgICAgICAgICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICdwZ2FkbWluLnV0aWxz LmRyaXZlci5wc3ljb3BnMi4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J2Nvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX2RpY3QnLAorICAgICAgICAgICAgICAgICAg ICAicmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgeydyb3dzJzogW119KSIKKyAgICAgICAgICAgICAg ICB9LAorICAgICAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICAg ICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApLAor ICAgICAgICApCisgICAgXQorCisgICAgZGVmIGdldF9kZXBlbmRlbmN5KHNlbGYpOgorICAgICAg ICBmdW5jX25hbWUgPSAidGVzdF9mdW5jdGlvbl9kZWxldGVfJXMiICUgc3RyKHV1aWQudXVpZDQo KSlbMTo4XQorICAgICAgICBmdW5jdGlvbl9pbmZvID0gZnVuY3NfdXRpbHMuY3JlYXRlX2Z1bmN0 aW9uKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFf bmFtZSwgZnVuY19uYW1lKQorCisgICAgICAgIGZ1bmNfaWQgPSBmdW5jdGlvbl9pbmZvWzBdCisK KyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCisgICAgICAgICAgICBzZWxmLnVy bCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxm LnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKworICAgICAgICAgICAgJy8nICsg c3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArIHN0cihmdW5jX2lkKSwKKyAgICAgICAgICAgIGNv bnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICApCisgICAgICAgIHJldHVybiByZXNwb25z ZQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdp bGwgZ2V0IGZ1bmN0aW9uIG5vZGVzIHVuZGVyIHNjaGVtYS4gIiIiCisgICAgICAgIHN1cGVyKEZ1 bmN0aW9uR2V0RGVwZW5kZW5jaWVzVGVzdENhc2UsIHNlbGYpLnJ1blRlc3QoKQorICAgICAgICBz ZWxmID0gZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYpCisKKyAgICAgICAgaWYgc2VsZi5pc19wb3Np dGl2ZV90ZXN0OgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmdldF9kZXBlbmRlbmN5KCkK KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHdpdGggcGF0Y2goc2VsZi5tb2NrX2RhdGFbImZ1 bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPWV2YWwo c2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1ZSJdKSk6CisgICAgICAgICAgICAgICAgcmVzcG9u c2UgPSBzZWxmLmdldF9kZXBlbmRlbmN5KCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJl c3BvbnNlLnN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0 ZWRfZGF0YVsnc3RhdHVzX2NvZGUnXSkKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFz ZQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYu c2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rl c3RfZ2V0X2RlcGVuZGVudHMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9nZXRfZGVwZW5k ZW50cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjJlY2RhCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZ2V0X2RlcGVuZGVudHMucHkK QEAgLTAsMCArMSw4NSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9z dGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1p biBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IGpzb24K K2ltcG9ydCB1dWlkCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCisKK2Zyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0 IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRl IGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0 aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ1 bmNzX3V0aWxzCitmcm9tIC4uIGltcG9ydCBGdW5jdGlvblZpZXcKKworCitjbGFzcyBGdW5jdGlv bkdldERlcGVuZGVudHNUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiIFRoaXMg Y2xhc3MgZ2V0IGRlcGVuZGVudHMgZm9yIGZ1bmN0aW9ucy4gIiIiCisgICAgc2NlbmFyaW9zID0g WworICAgICAgICAoCisgICAgICAgICAgICAnRmV0Y2ggRnVuY3Rpb24gZGVwZW5kZW50cy4nLAor ICAgICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9u L2RlcGVuZGVudC8nLAorICAgICAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9VHJ1ZSwKKyAg ICAgICAgICAgICAgICBtb2NraW5nX3JlcXVpcmVkPUZhbHNlLAorICAgICAgICAgICAgICAgIG1v Y2tfZGF0YT17fSwKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAgICAg ICAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgKSwKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAgICAgICAgJ0ZldGNoIEZ1bmN0aW9u IGRlcGVuZGVudHMgZmFpbCcsCisgICAgICAgICAgICBkaWN0KAorICAgICAgICAgICAgICAgIHVy bD0nL2Jyb3dzZXIvZnVuY3Rpb24vZGVwZW5kZW50LycsCisgICAgICAgICAgICAgICAgaXNfcG9z aXRpdmVfdGVzdD1GYWxzZSwKKyAgICAgICAgICAgICAgICBtb2NraW5nX3JlcXVpcmVkPVRydWUs CisgICAgICAgICAgICAgICAgbW9ja19kYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgImZ1bmN0 aW9uX25hbWUiOiAncGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuJworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdjb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9k aWN0JywKKyAgICAgICAgICAgICAgICAgICAgInJldHVybl92YWx1ZSI6ICIoRmFsc2UsIHsncm93 cyc6IFtdfSkiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9k YXRhPXsKKyAgICAgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgKSwKKyAgICAgICAgKQorICAgIF0KKworICAgIGRlZiBnZXRf ZGVwZW5kZW50cyhzZWxmKToKKyAgICAgICAgZnVuY19uYW1lID0gInRlc3RfZnVuY3Rpb25fZGVs ZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgZnVuY3Rpb25faW5mbyA9 IGZ1bmNzX3V0aWxzLmNyZWF0ZV9mdW5jdGlvbigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBz ZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSkKKworICAgICAgICBmdW5j X2lkID0gZnVuY3Rpb25faW5mb1swXQorCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIu Z2V0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcv JyArCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJf aWQpICsKKyAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKyBzdHIo ZnVuY19pZCksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAgICAg KQorICAgICAgICByZXR1cm4gcmVzcG9uc2UKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAg ICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGdldCBmdW5jdGlvbiBub2RlcyB1bmRlciBzY2hl bWEuICIiIgorICAgICAgICBzdXBlcihGdW5jdGlvbkdldERlcGVuZGVudHNUZXN0Q2FzZSwgc2Vs ZikucnVuVGVzdCgpCisgICAgICAgIHNlbGYgPSBmdW5jc191dGlscy5zZXRfdXAoc2VsZikKKwor ICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICByZXNwb25zZSA9 IHNlbGYuZ2V0X2RlcGVuZGVudHMoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2l0aCBw YXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVlIl0pKToK KyAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X2RlcGVuZGVudHMoKQorCisgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5leHBlY3RlZF9kYXRhWydzdGF0dXNfY29kZSddKQorICAgICAgICAj IERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5l Y3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9nZXRfZnVuY3Rpb25fc3RhdGlzdGljcy5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2dldF9mdW5jdGlvbl9zdGF0aXN0aWNzLnB5Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmNzQxMDYKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9nZXRfZnVuY3Rpb25fc3RhdGlzdGljcy5weQpAQCAtMCww ICsxLDEyMCBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNR TCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZl bG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3Rn cmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IGpzb24KK2ltcG9y dCB1dWlkCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCisKK2Zyb20gcGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxz IGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGlt cG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ1bmNzX3V0 aWxzCitmcm9tIC4uIGltcG9ydCBGdW5jdGlvblZpZXcKKworCitjbGFzcyBGdW5jdGlvbkdldEZ1 bmN0aW9uU3RhdGlzdGljc1Rlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhp cyBjbGFzcyBnZXQgZnVuY3Rpb25zIHN0YXRpc3RpY3MuICIiIgorICAgIHNjZW5hcmlvcyA9IFsK KyAgICAgICAgKAorICAgICAgICAgICAgJ0ZldGNoIEZ1bmN0aW9uIGdldCBzdGF0aXN0aWNzJywK KyAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlv bi9zdGF0cy8nLAorICAgICAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9VHJ1ZSwKKyAgICAg ICAgICAgICAgICBtb2NraW5nX3JlcXVpcmVkPUZhbHNlLAorICAgICAgICAgICAgICAgIG1vY2tf ZGF0YT17fSwKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsKKyAgICAgICAgICAgICAg ICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg KSwKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAgICAgICAgJ0ZldGNoIEZ1bmN0aW9uIGdl dCBzdGF0aXN0aWNzIGZhaWwnLAorICAgICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICB1 cmw9Jy9icm93c2VyL2Z1bmN0aW9uL3N0YXRzLycsCisgICAgICAgICAgICAgICAgaXNfcG9zaXRp dmVfdGVzdD1GYWxzZSwKKyAgICAgICAgICAgICAgICBtb2NraW5nX3JlcXVpcmVkPVRydWUsCisg ICAgICAgICAgICAgICAgbW9ja19kYXRhPXsKKyAgICAgICAgICAgICAgICAgICAgImZ1bmN0aW9u X25hbWUiOiAncGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuJworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdjb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9kaWN0 JywKKyAgICAgICAgICAgICAgICAgICAgInJldHVybl92YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQg SW50ZXJuYWwgU2VydmVyIEVycm9yICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJ3aGlsZSBnZXQgZnVuY3Rpb24gc3RhdGlzdGljcy4nKSIKKyAgICAgICAgICAgICAgICB9 LAorICAgICAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAi c3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApLAorICAg ICAgICApLAorICAgICAgICAoCisgICAgICAgICAgICAnRmV0Y2ggRnVuY3Rpb24gZ2V0IHN0YXRp c3RpY3Mgd2l0aG91dCBmdW5jdGlvbiBpZCcsCisgICAgICAgICAgICBkaWN0KAorICAgICAgICAg ICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vc3RhdHMvJywKKyAgICAgICAgICAgICAgICBp c19wb3NpdGl2ZV90ZXN0PVRydWUsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1U cnVlLAorICAgICAgICAgICAgICAgIHdpdGhvdXRfZnVuY3Rpb25faWQ9VHJ1ZSwKKyAgICAgICAg ICAgICAgICBtb2NrX2RhdGE9e30sCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZGF0YT17Cisg ICAgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICksCisgICAgICAgICksCisgICAgICAgICgKKyAgICAgICAgICAgICdGZXRj aCBGdW5jdGlvbiBnZXQgc3RhdGlzdGljcyB3aXRob3V0IGZ1bmN0aW9uIGlkIGZhaWwnLAorICAg ICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL3N0 YXRzLycsCisgICAgICAgICAgICAgICAgaXNfcG9zaXRpdmVfdGVzdD1GYWxzZSwKKyAgICAgICAg ICAgICAgICBtb2NraW5nX3JlcXVpcmVkPVRydWUsCisgICAgICAgICAgICAgICAgd2l0aG91dF9m dW5jdGlvbl9pZD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tfZGF0YT17CisgICAgICAgICAg ICAgICAgICAgICJmdW5jdGlvbl9uYW1lIjogJ3BnYWRtaW4udXRpbHMuZHJpdmVyLnBzeWNvcGcy LicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29ubmVjdGlvbi5Db25u ZWN0aW9uLmV4ZWN1dGVfc2NhbGFyJywKKyAgICAgICAgICAgICAgICAgICAgInJldHVybl92YWx1 ZSI6ICIoRmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yICIKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJ3aGlsZSBnZXQgZnVuY3Rpb24gc3RhdGlzdGljcy4n KSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9ewor ICAgICAgICAgICAgICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICApLAorICAgICAgICApLAorICAgIF0KKworICAgIGRlZiBnZXRfZnVuY3Rp b25fc3RhdGlzdGljcyhzZWxmKToKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAid2l0aG91dF9m dW5jdGlvbl9pZCIpIGFuZCBzZWxmLndpdGhvdXRfZnVuY3Rpb25faWQ6CisgICAgICAgICAgICBm dW5jX2lkID0gJycKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGZ1bmNfbmFtZSA9ICJ0ZXN0 X2Z1bmN0aW9uX2RlbGV0ZV8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAgICAg ICBmdW5jdGlvbl9pbmZvID0gZnVuY3NfdXRpbHMuY3JlYXRlX2Z1bmN0aW9uKAorICAgICAgICAg ICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIGZ1bmNf bmFtZSkKKworICAgICAgICAgICAgZnVuY19pZCA9IGZ1bmN0aW9uX2luZm9bMF0KKworICAgICAg ICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3Ry KHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVy X2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArCisgICAgICAgICAgICAnLycgKyBzdHIoc2Vs Zi5zY2hlbWFfaWQpICsgJy8nICsgc3RyKGZ1bmNfaWQpLAorICAgICAgICAgICAgY29udGVudF90 eXBlPSdodG1sL2pzb24nCisgICAgICAgICkKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlCisKKyAg ICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBnZXQg ZnVuY3Rpb24gbm9kZXMgdW5kZXIgc2NoZW1hLiAiIiIKKyAgICAgICAgc3VwZXIoRnVuY3Rpb25H ZXRGdW5jdGlvblN0YXRpc3RpY3NUZXN0Q2FzZSwgc2VsZikucnVuVGVzdCgpCisgICAgICAgIHNl bGYgPSBmdW5jc191dGlscy5zZXRfdXAoc2VsZikKKworICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0 aXZlX3Rlc3Q6CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X2Z1bmN0aW9uX3N0YXRp c3RpY3MoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tf ZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFs dWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVlIl0pKToKKyAgICAgICAgICAgICAg ICByZXNwb25zZSA9IHNlbGYuZ2V0X2Z1bmN0aW9uX3N0YXRpc3RpY3MoKQorCisgICAgICAgIHNl bGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5leHBlY3RlZF9kYXRhWydzdGF0dXNfY29kZSddKQorICAgICAgICAjIERpc2Nv bm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0 YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVzdHMvdGVzdF9nZXRfbGlzdC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0 X2dldF9saXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmZWFkMGEK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9nZXRfbGlzdC5weQpA QCAtMCwwICsxLDgwIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0 Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWlu IERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUg UG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQganNvbgor aW1wb3J0IHV1aWQKK2Zyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gKKworZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQg dXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUg aW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRp bHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnVu Y3NfdXRpbHMKK2Zyb20gLi4gaW1wb3J0IEZ1bmN0aW9uVmlldworCisKK2NsYXNzIEZ1bmN0aW9u R2V0TGlzdFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIgVGhpcyBjbGFzcyBn ZXQgbGlzdCBvZiBmdW5jdGlvbnMuICIiIgorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgKAor ICAgICAgICAgICAgJ0ZldGNoIEZ1bmN0aW9uIGxpc3QuJywKKyAgICAgICAgICAgIGRpY3QoCisg ICAgICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9vYmovJywKKyAgICAgICAgICAg ICAgICBpc19wb3NpdGl2ZV90ZXN0PVRydWUsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1 aXJlZD1GYWxzZSwKKyAgICAgICAgICAgICAgICBtb2NrX2RhdGE9e30sCisgICAgICAgICAgICAg ICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDIw MAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICksCisgICAgICAgICksCisgICAgICAg ICgKKyAgICAgICAgICAgICdGZXRjaCBGdW5jdGlvbiBkZXBlbmRlbnRzIGZhaWwnLAorICAgICAg ICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Z1bmN0aW9uL29iai8n LAorICAgICAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9RmFsc2UsCisgICAgICAgICAgICAg ICAgbW9ja2luZ19yZXF1aXJlZD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tfZGF0YT17Cisg ICAgICAgICAgICAgICAgICAgICJmdW5jdGlvbl9uYW1lIjogJ3BnYWRtaW4udXRpbHMuZHJpdmVy LnBzeWNvcGcyLicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29ubmVj dGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfZGljdCcsCisgICAgICAgICAgICAgICAgICAgICJyZXR1 cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciAiCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiRXJyb3Igd2hpbGUgZ2V0IGZ1bmN0aW9uIGxpc3Qu JykiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsK KyAgICAgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgKSwKKyAgICAgICAgKQorICAgIF0KKworICAgIGRlZiBnZXRfbGlzdChz ZWxmKToKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCisgICAgICAgICAgICBz ZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0 cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKworICAgICAgICAgICAg Jy8nICsgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJywKKyAgICAgICAgICAgIGNvbnRlbnRfdHlw ZT0naHRtbC9qc29uJworICAgICAgICApCisgICAgICAgIHJldHVybiByZXNwb25zZQorCisgICAg ZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2V0IGZ1 bmN0aW9uIG5vZGVzIHVuZGVyIHNjaGVtYS4gIiIiCisgICAgICAgIHN1cGVyKEZ1bmN0aW9uR2V0 TGlzdFRlc3RDYXNlLCBzZWxmKS5ydW5UZXN0KCkKKyAgICAgICAgc2VsZiA9IGZ1bmNzX3V0aWxz LnNldF91cChzZWxmKQorCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAgICAg ICAgICAgIHJlc3BvbnNlID0gc2VsZi5nZXRfbGlzdCgpCisgICAgICAgIGVsc2U6CisgICAgICAg ICAgICB3aXRoIHBhdGNoKHNlbGYubW9ja19kYXRhWyJmdW5jdGlvbl9uYW1lIl0sCisgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1ldmFsKHNlbGYubW9ja19kYXRhWyJyZXR1cm5f dmFsdWUiXSkpOgorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5nZXRfbGlzdCgpCisK KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkX2RhdGFbJ3N0YXR1c19jb2RlJ10pCisgICAg ICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlz Y29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2dldF9zZWxlY3Rfc3FsLnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3Rlc3RzL3Rlc3RfZ2V0X3NlbGVjdF9zcWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uM2VlZjA0YQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZXN0cy90ZXN0X2dldF9zZWxlY3Rfc3FsLnB5CkBAIC0wLDAgKzEsMTIyIEBACisjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdo dCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworCitpbXBvcnQganNvbgoraW1wb3J0IHV1aWQKK2Zyb20gdW5pdHRlc3Qu bW9jayBpbXBvcnQgcGF0Y2gKKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0 aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitm cm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRp bHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnVuY3NfdXRpbHMKK2Zyb20gLi4gaW1wb3J0IEZ1 bmN0aW9uVmlldworCisKK2NsYXNzIEZ1bmN0aW9uR2V0U2VsZWN0U3FsVGVzdENhc2UoQmFzZVRl c3RHZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNsYXNzIGdldCBzZWxlY3QgU1FMIGZvciBmdW5j dGlvbnMuICIiIgorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgKAorICAgICAgICAgICAgJ0Zl dGNoIEZ1bmN0aW9uIHNlbGVjdCBzcWwuJywKKyAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAg ICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9zZWxlY3Rfc3FsLycsCisgICAgICAgICAgICAg ICAgaXNfcG9zaXRpdmVfdGVzdD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tpbmdfcmVxdWly ZWQ9RmFsc2UsCisgICAgICAgICAgICAgICAgaXNfYWRkX2FyZ3VtZW50PUZhbHNlLAorICAgICAg ICAgICAgICAgIG1vY2tfZGF0YT17fSwKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9kYXRhPXsK KyAgICAgICAgICAgICAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgKSwKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAgICAgICAgJ0Zl dGNoIEZ1bmN0aW9uIHNlbGVjdCBzcWwgZmFpbCcsCisgICAgICAgICAgICBkaWN0KAorICAgICAg ICAgICAgICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vc2VsZWN0X3NxbC8nLAorICAgICAgICAg ICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9RmFsc2UsCisgICAgICAgICAgICAgICAgbW9ja2luZ19y ZXF1aXJlZD1UcnVlLAorICAgICAgICAgICAgICAgIGlzX2FkZF9hcmd1bWVudD1GYWxzZSwKKyAg ICAgICAgICAgICAgICBtb2NrX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAiZnVuY3Rpb25f bmFtZSI6ICdwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi4nCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ2Nvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlXzJkYXJy YXknLAorICAgICAgICAgICAgICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tl ZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIndoaWxlIGdldCBzZWxlY3Qgc3FsLicpIgorICAgICAgICAgICAgICAgIH0sCisgICAg ICAgICAgICAgICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJzdGF0dXNf Y29kZSI6IDUwMAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICksCisgICAgICAgICks CisgICAgICAgICgKKyAgICAgICAgICAgICdGZXRjaCBGdW5jdGlvbiBzZWxlY3Qgc3FsIG5vdCBm b3VuZCcsCisgICAgICAgICAgICBkaWN0KAorICAgICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIv ZnVuY3Rpb24vc2VsZWN0X3NxbC8nLAorICAgICAgICAgICAgICAgIGlzX3Bvc2l0aXZlX3Rlc3Q9 RmFsc2UsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1UcnVlLAorICAgICAgICAg ICAgICAgIGlzX2FkZF9hcmd1bWVudD1GYWxzZSwKKyAgICAgICAgICAgICAgICBtb2NrX2RhdGE9 eworICAgICAgICAgICAgICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICdwZ2FkbWluLnV0aWxzLmRy aXZlci5wc3ljb3BnMi4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nv bm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlXzJkYXJyYXknLAorICAgICAgICAgICAgICAgICAg ICAicmV0dXJuX3ZhbHVlIjogIihUcnVlLCB7J3Jvd3MnOiBbXX0pIgorICAgICAgICAgICAgICAg IH0sCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgICAg ICJzdGF0dXNfY29kZSI6IDQxMAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICksCisg ICAgICAgICksCisgICAgICAgICgKKyAgICAgICAgICAgICdGZXRjaCBGdW5jdGlvbiBzZWxlY3Qg c3FsIHdpdGggYXJndW1lbnRzJywKKyAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgICAg dXJsPScvYnJvd3Nlci9mdW5jdGlvbi9zZWxlY3Rfc3FsLycsCisgICAgICAgICAgICAgICAgaXNf cG9zaXRpdmVfdGVzdD1UcnVlLAorICAgICAgICAgICAgICAgIG1vY2tpbmdfcmVxdWlyZWQ9RmFs c2UsCisgICAgICAgICAgICAgICAgaXNfYWRkX2FyZ3VtZW50PVRydWUsCisgICAgICAgICAgICAg ICAgbW9ja19kYXRhPXt9LAorICAgICAgICAgICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAg ICAgICAgICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgICAgICAgICAgICB9CisgICAg ICAgICAgICApLAorICAgICAgICApLAorICAgIF0KKworICAgIGRlZiBnZXRfc2VsZWN0X3NxbChz ZWxmKToKKyAgICAgICAgZnVuY19uYW1lID0gInRlc3RfZnVuY3Rpb25fZGVsZXRlXyVzIiAlIHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgaWYgc2VsZi5pc19hZGRfYXJndW1lbnQ6Cisg ICAgICAgICAgICBhcmdzID0gIklOIHRlc3QgaW50ZWdlciBERUZBVUxUIDEiCisgICAgICAgIGVs c2U6CisgICAgICAgICAgICBhcmdzID0gTm9uZQorICAgICAgICBmdW5jdGlvbl9pbmZvID0gZnVu Y3NfdXRpbHMuY3JlYXRlX2Z1bmN0aW9uKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYu ZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgZnVuY19uYW1lLCBhcmdzPWFyZ3MpCisKKyAgICAg ICAgZnVuY19pZCA9IGZ1bmN0aW9uX2luZm9bMF0KKworICAgICAgICByZXNwb25zZSA9IHNlbGYu dGVzdGVyLmdldCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9V UCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihz ZWxmLmRiX2lkKSArCisgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8n ICsgc3RyKGZ1bmNfaWQpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nCisg ICAgICAgICkKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlCisKKyAgICBkZWYgcnVuVGVzdChzZWxm KToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBnZXQgZnVuY3Rpb24gbm9kZXMgdW5k ZXIgc2NoZW1hLiAiIiIKKyAgICAgICAgc3VwZXIoRnVuY3Rpb25HZXRTZWxlY3RTcWxUZXN0Q2Fz ZSwgc2VsZikucnVuVGVzdCgpCisgICAgICAgIHNlbGYgPSBmdW5jc191dGlscy5zZXRfdXAoc2Vs ZikKKworICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICByZXNw b25zZSA9IHNlbGYuZ2V0X3NlbGVjdF9zcWwoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg d2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVl Il0pKToKKyAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X3NlbGVjdF9zcWwoKQor CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5leHBlY3RlZF9kYXRhWydzdGF0dXNfY29kZSddKQorICAg ICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRp c2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9nZXRfc3VwcG9ydGVkX2Z1bmN0aW9ucy5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2dldF9zdXBwb3J0ZWRfZnVuY3Rpb25zLnB5Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3M2JmOGUKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9nZXRfc3VwcG9ydGVkX2Z1bmN0aW9ucy5weQpA QCAtMCwwICsxLDgwIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0 Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWlu IERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUg UG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQganNvbgor aW1wb3J0IHV1aWQKK2Zyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gKKworZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQg dXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUg aW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRp bHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnVu Y3NfdXRpbHMKK2Zyb20gLi4gaW1wb3J0IEZ1bmN0aW9uVmlldworCisKK2NsYXNzIEZ1bmN0aW9u R2V0U3VwcG9ydGVkRnVuY3Rpb25zVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIi IiBUaGlzIGNsYXNzIGdldCBzdXBwb3J0ZWQgZnVuY3Rpb25zLiAiIiIKKyAgICBzY2VuYXJpb3Mg PSBbCisgICAgICAgICgKKyAgICAgICAgICAgICdGZXRjaCBGdW5jdGlvbiBzdXBwb3J0ZWQgZnVu Y3Rpb25zJywKKyAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgICAgdXJsPScvYnJvd3Nl ci9mdW5jdGlvbi9nZXRfc3VwcG9ydF9mdW5jdGlvbnMvJywKKyAgICAgICAgICAgICAgICBpc19w b3NpdGl2ZV90ZXN0PVRydWUsCisgICAgICAgICAgICAgICAgbW9ja2luZ19yZXF1aXJlZD1GYWxz ZSwKKyAgICAgICAgICAgICAgICBtb2NrX2RhdGE9e30sCisgICAgICAgICAgICAgICAgZXhwZWN0 ZWRfZGF0YT17CisgICAgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICksCisgICAgICAgICksCisgICAgICAgICgKKyAgICAg ICAgICAgICdGZXRjaCBGdW5jdGlvbiBzdXBwb3J0IGZ1bmN0aW9ucyBmYWlsJywKKyAgICAgICAg ICAgIGRpY3QoCisgICAgICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdW5jdGlvbi9nZXRfc3Vw cG9ydF9mdW5jdGlvbnMvJywKKyAgICAgICAgICAgICAgICBpc19wb3NpdGl2ZV90ZXN0PUZhbHNl LAorICAgICAgICAgICAgICAgIG1vY2tpbmdfcmVxdWlyZWQ9VHJ1ZSwKKyAgICAgICAgICAgICAg ICBtb2NrX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICdwZ2Fk bWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ2Nvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlXzJkYXJyYXknLAorICAgICAg ICAgICAgICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBT ZXJ2ZXIgRXJyb3IgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndoaWxl IGdldCBzdXBwb3J0ZWQgZnVuY3Rpb24nKSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAg ICAgICAgIGV4cGVjdGVkX2RhdGE9eworICAgICAgICAgICAgICAgICAgICAic3RhdHVzX2NvZGUi OiA1MDAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApLAorICAgICAgICApCisgICAg XQorCisgICAgZGVmIGdldF9zdXBwb3J0ZWRfZnVuY3Rpb25zKHNlbGYpOgorICAgICAgICByZXNw b25zZSA9IHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxz LlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSAr ICcvJyArIHN0cihzZWxmLmRiX2lkKSArCisgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zY2hl bWFfaWQpICsgJy8nLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nCisgICAg ICAgICkKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToK KyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBnZXQgZnVuY3Rpb24gbm9kZXMgdW5kZXIg c2NoZW1hLiAiIiIKKyAgICAgICAgc3VwZXIoRnVuY3Rpb25HZXRTdXBwb3J0ZWRGdW5jdGlvbnNU ZXN0Q2FzZSwgc2VsZikucnVuVGVzdCgpCisgICAgICAgIHNlbGYgPSBmdW5jc191dGlscy5zZXRf dXAoc2VsZikKKworICAgICAgICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAg ICByZXNwb25zZSA9IHNlbGYuZ2V0X3N1cHBvcnRlZF9mdW5jdGlvbnMoKQorICAgICAgICBlbHNl OgorICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVuY3Rpb25fbmFtZSJd LAorICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0 YVsicmV0dXJuX3ZhbHVlIl0pKToKKyAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0 X3N1cHBvcnRlZF9mdW5jdGlvbnMoKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9u c2Uuc3RhdHVzX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBlY3RlZF9k YXRhWydzdGF0dXNfY29kZSddKQorICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisg ICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2 ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdXRpbHMu cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdXRpbHMucHkKaW5kZXggMDlhZTdlZS4uYTczNTcyZCAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3V0aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZXN0cy91dGlscy5weQpAQCAtMTQyLDcgKzE0Miw3IEBAIGRlZiBjcmVhdGVfcHJvY2VkdXJl KHNlcnZlciwgZGJfbmFtZSwgc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSwgc190eXBlLAogICAgICAg ICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lzLnN0ZGVycikKIAogCi1kZWYgY3JlYXRlX2Z1 bmN0aW9uKHNlcnZlciwgZGJfbmFtZSwgc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSk6CitkZWYgY3Jl YXRlX2Z1bmN0aW9uKHNlcnZlciwgZGJfbmFtZSwgc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSwgYXJn cz1Ob25lKToKICAgICAiIiJUaGlzIGZ1bmN0aW9uIGFkZCB0aGUgcHJvY2VkdXJlIHRvIHNjaGVt YSIiIgogICAgIHRyeToKICAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0 aW9uKGRiX25hbWUsCkBAIC0xNTIsMTEgKzE1MiwxNSBAQCBkZWYgY3JlYXRlX2Z1bmN0aW9uKHNl cnZlciwgZGJfbmFtZSwgc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSk6CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnc3NsbW9kZSddKQogICAg ICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgIGlmIGFyZ3M6Cisg ICAgICAgICAgICBhcmdzID0gInswfSIuZm9ybWF0KGFyZ3MpCisgICAgICAgIGVsc2U6CisgICAg ICAgICAgICBhcmdzID0gJycKICAgICAgICAgcXVlcnkgPSAiQ1JFQVRFIEZVTkNUSU9OICIgKyBz Y2hlbWFfbmFtZSArICIuIiArIGZ1bmNfbmFtZSArIFwKLSAgICAgICAgICAgICAgICAiKCkiIFwK KyAgICAgICAgICAgICAgICAiKHswfSkiIFwKICAgICAgICAgICAgICAgICAiIFJFVFVSTlMgaW50 ZWdlciBMQU5HVUFHRSAnc3FsJyBTVEFCTEUiIFwKICAgICAgICAgICAgICAgICAiIFNFQ1VSSVRZ IERFRklORVIgQVMgJCQiIFwKLSAgICAgICAgICAgICAgICAiIFNFTEVDVCAxOyAkJDsiCisgICAg ICAgICAgICAgICAgIiBTRUxFQ1QgMTsgJCQ7Ii5mb3JtYXQoYXJncykKICAgICAgICAgcGdfY3Vy c29yLmV4ZWN1dGUocXVlcnkpCiAgICAgICAgIGNvbm5lY3Rpb24uY29tbWl0KCkKICAgICAgICAg IyBHZXQgJ29pZCcgZnJvbSBuZXdseSBjcmVhdGVkIGZ1bmN0aW9uCg== --00000000000093c61605afe1b819--