Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vdCP0-00FDrO-0v for pgsql-hackers@arkaria.postgresql.org; Tue, 06 Jan 2026 19:07:35 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vdCOy-00A8a5-1d for pgsql-hackers@arkaria.postgresql.org; Tue, 06 Jan 2026 19:07:33 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vdCOx-00A8Zw-2y for pgsql-hackers@lists.postgresql.org; Tue, 06 Jan 2026 19:07:32 +0000 Received: from mail-ej1-x630.google.com ([2a00:1450:4864:20::630]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vdCOt-004wtP-2B for pgsql-hackers@postgresql.org; Tue, 06 Jan 2026 19:07:31 +0000 Received: by mail-ej1-x630.google.com with SMTP id a640c23a62f3a-b8440cb2dbeso52999066b.3 for ; Tue, 06 Jan 2026 11:07:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1767726445; x=1768331245; darn=postgresql.org; h=in-reply-to:references:from:to:subject:cc:message-id:date :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=lQ5Mc85n5QwI+8W05IPflEtQy/QPdqC4hw2FxGR0srM=; b=DyiOPBCqG1BIArZnAluABIba92Dh2AIn9/jRb7JuQ4/rc2ZDXjfrW5Fc3BOOlLLZd0 IM61H7ezc3n66vGRvRIB2bS/EIyn88tGZBiveEPGo7uajIWD0/G7sleAJTOILvlVjNuR AA3fSaVZTZIoopsBqtFH1WAg4HW/2cT3x/Jt+IRkfrL/1FHyGOztlAvq6W+sGG0Zk7df 885mHtwwbV7443Yxbq/s943HYDzLJZ0KBJ+q8BnXD6ImB6TuXQWbJPaqhP4PLZV+g8BG xK7KjkiTlZjrcFybj59c9zjXUimcPUvGd0adq3eXeYBcGge3K2fAPLK8u0ntlugUd5cg bTDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767726445; x=1768331245; h=in-reply-to:references:from:to:subject:cc:message-id:date :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=lQ5Mc85n5QwI+8W05IPflEtQy/QPdqC4hw2FxGR0srM=; b=WnvZL9Nvxtok2yWQJOaTFJaRBIwv0XFT1YK+qFYI0W6J+u4FG1jA9jnwQkFX4Ohpmm pCRVktPcuDZ3GRaG1qtd6KHMtwfulyGSVCmNBEqUXErp0XEII1DZHecb/oY3jN6c145a 0Gda4MT2l8Z4jWXEybpL32cN95I4hAMdrBijdXdJMYhqbxUdnOTgU/8sONeRvWxzl/XG uOCi8VUfhwhYyrGKXUAS3yqfbIjAj7pEJpDVhKBVbSAxxcGbRzvUd9XommlyY40aBCeS VNSJ77Jzt1PVRP+1SkzBhSiNjRqxbQKXrjP9GCOXi+huKrg38Viq/0tEcluXG6t8Nz0Q tOmw== X-Gm-Message-State: AOJu0YxDHpWeyjtXNDbchygWhKkyTEZmnnaQ4rWhGtQre63LQccrxnTN K8tWDEN6BK+40sGUGaUWvtMO/2tA0qqZmndOhqfWPFg3HTIJ88zaqa5kd1GBmdo8uxQ= X-Gm-Gg: AY/fxX4K9wzUE9yUzhYvRDwVZyxP4Ce8yp1/5OfAjznyZ5nPaEOLMTL2KpKbjdnL6y8 1SaTKgaAy5Fg9xI3gryQ3gRcB6iewgWLZ1PnAkrSUnyiTFQNibniRpmPFpab6z2F9MUC4Nuz9u2 bWCviq0tYCSwunSVHvGAjrBhgUxMPi+3muK89FaPvI3pWSlwlJ3Im0Chou2KznjcjJSBg3GmNAP 49XD9sJkwXNSklrjym2uyN9YFSWmPj6J9R52XRpl6AgirRgrIU4wnBoVHNNdgqRqOMMcbCXWlT1 1muKITJpc4M4qms0D3+GKRz4hrIZPV2nNKRmMNrT/bunfyqtQz4DrXeaeQjh4OqzAwTulwD7Yqc 7t9G+8cwyLyJ2LAjTsD9hB0qfFMBYaeFVceALX+dO9019UU8BBdohTNRy57+kkDCBISCpP+QYGy vRGqoevP/QxTeEHcTt7cSLdfbIUa3Rr/+rpfA= X-Google-Smtp-Source: AGHT+IGsestz+06sGFLDz9kpNWlBHdUw2c/wbKpqNf+lJ98NGQdt+7VCizTUWfcH5BSuErFVl8yLKQ== X-Received: by 2002:a17:906:7955:b0:b73:8639:cd93 with SMTP id a640c23a62f3a-b84451aa1d4mr15681466b.14.1767726444309; Tue, 06 Jan 2026 11:07:24 -0800 (PST) Received: from localhost (145-53-221-196.fixed.kpn.net. [145.53.221.196]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b842a233ef3sm295733366b.1.2026.01.06.11.07.22 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 06 Jan 2026 11:07:23 -0800 (PST) Content-Type: multipart/mixed; boundary=fe7bb479ab816b2671d62b71f2a30d169d1061179a59e42a904c0319224d Mime-Version: 1.0 Date: Tue, 06 Jan 2026 20:07:22 +0100 Message-Id: Cc: "PostgreSQL Hackers" , "Robert Haas" , "Daniel Gustafsson" , "Tom Lane" , "Peter Eisentraut" , "Nazir Bilal Yavuz" Subject: Re: RFC: adding pytest as a supported test framework To: "Jacob Champion" , "Andres Freund" From: "Jelte Fennema-Nio" X-Mailer: aerc 0.20.1-31-gf6db7c329ce0 References: <2302192.1718380169@sss.pgh.pa.us> In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --fe7bb479ab816b2671d62b71f2a30d169d1061179a59e42a904c0319224d Content-Type: multipart/alternative; boundary=c2b5414766a954c3df2ce0dcb1660cf3a58234f72a9f253e547ffe11a37b --c2b5414766a954c3df2ce0dcb1660cf3a58234f72a9f253e547ffe11a37b Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Mon Jan 5, 2026 at 9:19 PM CET, Jacob Champion wrote: > On Wed, Dec 17, 2025 at 8:10=E2=80=AFAM Andres Freund wrote: > Before it gets too far away from me: note that I have not yet been > able to get up to speed with the combined refactoring+feature patch > that Jelte added in v3, and it's now up to v7,=20 Attached is v8. It simplifies the Cirrus CI yaml, because the dependencies are now baked into the images. I also removed the optional dependency on uv. Meson/autoconf now simply search for pytest binary in the .venv directory too. Devs can then choose if they want to populate .venv with pip or uv. Finally, if the pytest binary cannot be found, there's a fallback attempt to use `python -m pytest`. > That's fine by me, but I plan to focus on > things that need to get into PG19 before I focus on this, since > nothing is really blocked on it. Part of the reason why I've been trying to push this forward is that automated tests for the GoAway patch are definitely blocked on this. (The other reason is that I'd like to reduce the amount of perl I have to read/write.) >> > -SUBDIRS =3D perl postmaster regress isolation modules authentication = recovery subscription >> > +SUBDIRS =3D \ >> > + authentication \ >> > + isolation \ >> > + modules \ >> > + perl \ >> > + postmaster \ >> > + pytest \ >> > + recovery \ >> > + regress \ >> > + subscription >> >> I'm onboard with that, but we should do it separately and probably check= for >> other cases where we should do it at the same time. > > I'm not sure what context this is referring to? What are you on board wit= h? If I understood Andres correctly this was about splitting the items across multiple lines. I moved this to a separate thread, and it was cammitted by Michael in 9adf32da6b. So this has been resolved afaik. >> I think it'd be a seriously bad idea to start with no central infrastruc= ture, >> we'd be force to duplicate that all over. > > Right, I just want central infra to be pulled out of the new tests > that need them rather than the other way around. I'm not sure how you expect that to work in practice. I believe (and I think Andres too) that there's some infra that we already know we'll need for many tests, e.g. starting/stopping nodes, running queries, handling errors. I don't think it makes sense to have those be pulled out of new tests. You need some basics, otherwise no-one will want to write tests. And even if they do, everyone ends up with different styles of doing basic things. I'd rather coordinate on a bit of style upront so that tests behave similarly for common usages. --c2b5414766a954c3df2ce0dcb1660cf3a58234f72a9f253e547ffe11a37b-- --fe7bb479ab816b2671d62b71f2a30d169d1061179a59e42a904c0319224d Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v8-0001-meson-Include-TAP-tests-in-the-configuration-summ.patch Content-Type: text/x-patch; charset=utf-8; name=v8-0001-meson-Include-TAP-tests-in-the-configuration-summ.patch RnJvbSA4ODcwYjA5NmNjMDMzNTczOWM0OGZlOTQ1NTAwYzhhZTUxNGUxZGJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogRnJpLCA1IFNlcCAyMDI1IDE2OjM5OjA4IC0wNzAwClN1YmplY3Q6 IFtQQVRDSCB2OCAxLzddIG1lc29uOiBJbmNsdWRlIFRBUCB0ZXN0cyBpbiB0aGUgY29uZmlndXJh dGlvbiBzdW1tYXJ5CgouLi50byBtYWtlIGl0IG9idmlvdXMgd2hlbiB0aGV5J3ZlIGJlZW4gZW5h YmxlZC4gcHJvdmUgaXMgYWRkZWQgdG8gdGhlCmV4ZWN1dGFibGVzIGxpc3QgZm9yIGdvb2QgbWVh c3VyZS4KClRPRE86IGRvZXMgQXV0b2NvbmYgbmVlZCBzb21ldGhpbmcgc2ltaWxhcj8KClBlciBj b21wbGFpbnQgYnkgUGV0ZXIgRWlzZW50cmF1dC4KLS0tCiBtZXNvbi5idWlsZCB8IDkgKysrKysr KysrCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbWVzb24u YnVpbGQgYi9tZXNvbi5idWlsZAppbmRleCBjMzgzNGE5ZGM4Zi4uOWQxYzdmZmM3MDIgMTAwNjQ0 Ci0tLSBhL21lc29uLmJ1aWxkCisrKyBiL21lc29uLmJ1aWxkCkBAIC0zOTcxLDYgKzM5NzEsNyBA QCBzdW1tYXJ5KAogICAgICdiaXNvbic6ICdAMEAgQDFAJy5mb3JtYXQoYmlzb24uZnVsbF9wYXRo KCksIGJpc29uX3ZlcnNpb24pLAogICAgICdkdHJhY2UnOiBkdHJhY2UsCiAgICAgJ2ZsZXgnOiAn QDBAIEAxQCcuZm9ybWF0KGZsZXguZnVsbF9wYXRoKCksIGZsZXhfdmVyc2lvbiksCisgICAgJ3By b3ZlJzogcHJvdmUsCiAgIH0sCiAgIHNlY3Rpb246ICdQcm9ncmFtcycsCiApCkBAIC00MDA3LDMg KzQwMDgsMTEgQEAgc3VtbWFyeSgKICAgc2VjdGlvbjogJ0V4dGVybmFsIGxpYnJhcmllcycsCiAg IGxpc3Rfc2VwOiAnICcsCiApCisKK3N1bW1hcnkoCisgIHsKKyAgICAndGFwJzogdGFwX3Rlc3Rz X2VuYWJsZWQsCisgIH0sCisgIHNlY3Rpb246ICdPdGhlciBmZWF0dXJlcycsCisgIGxpc3Rfc2Vw OiAnICcsCispCgpiYXNlLWNvbW1pdDogMDU0N2FlYWUwZmQ2ZjZkMDNkZDc0OTljODQxNDVhZDll M2FhNTFiOQotLSAKMi41Mi4wCgo= --fe7bb479ab816b2671d62b71f2a30d169d1061179a59e42a904c0319224d Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v8-0002-Add-support-for-pytest-test-suites.patch Content-Type: text/x-patch; charset=utf-8; name=v8-0002-Add-support-for-pytest-test-suites.patch RnJvbSBlZTczMzc0NTQyM2RmZWNhOWZmNDgxZTBmYzU2N2I1MWRjYjAyMDdlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogV2VkLCAxMyBBdWcgMjAyNSAxMDo1ODo1NiAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggdjggMi83XSBBZGQgc3VwcG9ydCBmb3IgcHl0ZXN0IHRlc3Qgc3VpdGVzCgpTcGVj aWZ5IC0tZW5hYmxlLXB5dGVzdC8tRHB5dGVzdD1lbmFibGVkIGF0IGNvbmZpZ3VyZSB0aW1lLiBU aGlzCmNvbnRhaW5zIG5vIFBvc3RncmVzIHRlc3QgbG9naWMgLS0gaXQgaXMganVzdCBhICJ2YW5p bGxhIiBweXRlc3QKc2tlbGV0b24uCgpJJ3ZlIHdyaXR0ZW4gYSBjdXN0b20gcGd0YXAgb3V0cHV0 IHBsdWdpbiwgdXNlZCBieSB0aGUgTWVzb24gbXRlc3QKcnVubmVyLCB0byBmdWxseSBjb250cm9s IHdoYXQgd2Ugc2VlIGR1cmluZyBDSSB0ZXN0IGZhaWx1cmVzLiBUaGUKcHl0ZXN0LXRhcCBwbHVn aW4gd291bGQgaGF2ZSBiZWVuIHByZWZlcmFibGUsIGJ1dCBpdCdzIG5vdyBpbgptYWludGVuYW5j ZSBtb2RlLCBhbmQgaXQgaGFzIHByb2JsZW1zIHdpdGggYWNjaWRlbnRhbGx5IHN1cHByZXNzaW5n CmltcG9ydGFudCBjb2xsZWN0aW9uIGZhaWx1cmVzLgoKQ28tYXV0aG9yZWQtYnk6IEplbHRlIEZl bm5lbWEtTmlvIDxwb3N0Z3Jlc0BqZWx0ZWYubmw+Ci0tLQogLmNpcnJ1cy50YXNrcy55bWwgICAg ICAgICAgIHwgIDE0ICsrLQogLmdpdGlnbm9yZSAgICAgICAgICAgICAgICAgIHwgICAzICsKIGNv bmZpZ3VyZSAgICAgICAgICAgICAgICAgICB8IDE2NiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0KIGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgICB8ICAzMiArKysrKy0KIG1lc29uLmJ1 aWxkICAgICAgICAgICAgICAgICB8IDEwNyArKysrKysrKysrKysrKysrKysrCiBtZXNvbl9vcHRp b25zLnR4dCAgICAgICAgICAgfCAgIDggKy0KIHB5cHJvamVjdC50b21sICAgICAgICAgICAgICB8 ICAyMSArKysrCiBzcmMvTWFrZWZpbGUuZ2xvYmFsLmluICAgICAgfCAgMjkgKysrKysrCiBzcmMv bWFrZWZpbGVzL21lc29uLmJ1aWxkICAgfCAgIDIgKwogc3JjL3Rlc3QvTWFrZWZpbGUgICAgICAg ICAgIHwgICAxICsKIHNyYy90ZXN0L21lc29uLmJ1aWxkICAgICAgICB8ICAgMSArCiBzcmMvdGVz dC9weXRlc3QvTWFrZWZpbGUgICAgfCAgMjAgKysrKwogc3JjL3Rlc3QvcHl0ZXN0L1JFQURNRSAg ICAgIHwgICAxICsKIHNyYy90ZXN0L3B5dGVzdC9tZXNvbi5idWlsZCB8ICAxNiArKysKIHNyYy90 ZXN0L3B5dGVzdC9wZ3RhcC5weSAgICB8IDE5OCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIHNyYy90b29scy90ZXN0d3JhcCAgICAgICAgICB8ICAgNiArLQogMTYgZmlsZXMg Y2hhbmdlZCwgNjE2IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgcHlwcm9qZWN0LnRvbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9weXRlc3Qv TWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9weXRlc3QvUkVBRE1FCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcHl0ZXN0L21lc29uLmJ1aWxkCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL3Rlc3QvcHl0ZXN0L3BndGFwLnB5CgpkaWZmIC0tZ2l0IGEvLmNpcnJ1cy50YXNr cy55bWwgYi8uY2lycnVzLnRhc2tzLnltbAppbmRleCA3NDViZDE5OGI0Mi4uYjc5NWJhZDA0NzAg MTAwNjQ0Ci0tLSBhLy5jaXJydXMudGFza3MueW1sCisrKyBiLy5jaXJydXMudGFza3MueW1sCkBA IC0yMSw3ICsyMSw4IEBAIGVudjoKIAogICAjIHRhcmdldCB0byB0ZXN0LCBmb3IgYWxsIGJ1dCB3 aW5kb3dzCiAgIENIRUNLOiBjaGVjay13b3JsZCBQUk9WRV9GTEFHUz0kUFJPVkVfRkxBR1MKLSAg Q0hFQ0tGTEFHUzogLU90YXJnZXQKKyAgIyBUT0RPIHdlcmUgd2UgYXZvaWRpbmcgLS1rZWVwLWdv aW5nIG9uIHB1cnBvc2U/CisgIENIRUNLRkxBR1M6IC1PdGFyZ2V0IC0ta2VlcC1nb2luZwogICBQ Uk9WRV9GTEFHUzogLS10aW1lcgogICAjIEJ1aWxkIHRlc3QgZGVwZW5kZW5jaWVzIGFzIHBhcnQg b2YgdGhlIGJ1aWxkIHN0ZXAsIHRvIHNlZSBjb21waWxlcgogICAjIGVycm9ycy93YXJuaW5ncyBp biBvbmUgcGxhY2UuCkBAIC00NCw2ICs0NSw3IEBAIGVudjoKICAgICAtRGxkYXA9ZW5hYmxlZAog ICAgIC1Ec3NsPW9wZW5zc2wKICAgICAtRHRhcF90ZXN0cz1lbmFibGVkCisgICAgLURweXRlc3Q9 ZW5hYmxlZAogICAgIC1EcGxwZXJsPWVuYWJsZWQKICAgICAtRHBscHl0aG9uPWVuYWJsZWQKICAg ICAtRGRvY3M9ZW5hYmxlZApAQCAtMzE1LDYgKzMxNyw3IEBAIHRhc2s6CiAgICAgICAgICAgLURs aWJjdXJsPWVuYWJsZWQKICAgICAgICAgICAtRG5scz1lbmFibGVkCiAgICAgICAgICAgLURwYW09 ZW5hYmxlZAorICAgICAgICAgIC1EUFlURVNUPXB5dGVzdC0zLjEyCiAKICAgICAgIHNldHVwX2Fk ZGl0aW9uYWxfcGFja2FnZXNfc2NyaXB0OiB8CiAgICAgICAgICNwa2dpbiAteSBpbnN0YWxsIC4u LgpAQCAtNTE4LDE0ICs1MjEsMTUgQEAgdGFzazoKICAgICAgICAgICBzZXQgLWUKICAgICAgICAg ICAuL2NvbmZpZ3VyZSBcCiAgICAgICAgICAgICAtLWVuYWJsZS1jYXNzZXJ0IC0tZW5hYmxlLWlu amVjdGlvbi1wb2ludHMgLS1lbmFibGUtZGVidWcgXAotICAgICAgICAgICAgLS1lbmFibGUtdGFw LXRlc3RzIC0tZW5hYmxlLW5scyBcCisgICAgICAgICAgICAtLWVuYWJsZS10YXAtdGVzdHMgLS1l bmFibGUtcHl0ZXN0IC0tZW5hYmxlLW5scyBcCiAgICAgICAgICAgICAtLXdpdGgtc2Vnc2l6ZS1i bG9ja3M9NiBcCiAgICAgICAgICAgICAtLXdpdGgtbGlibnVtYSBcCiAgICAgICAgICAgICAtLXdp dGgtbGlidXJpbmcgXAogICAgICAgICAgICAgXAogICAgICAgICAgICAgJHtMSU5VWF9DT05GSUdV UkVfRkVBVFVSRVN9IFwKICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIENMQU5HPSJjY2FjaGUg Y2xhbmciCisgICAgICAgICAgICBDTEFORz0iY2NhY2hlIGNsYW5nIiBcCisgICAgICAgICAgICBQ WVRFU1Q9ImVudiBMRF9QUkVMT0FEPS9saWIveDg2XzY0LWxpbnV4LWdudS9saWJhc2FuLnNvLjgg cHl0ZXN0IgogICAgICAgICBFT0YKICAgICAgIGJ1aWxkX3NjcmlwdDogc3UgcG9zdGdyZXMgLWMg Im1ha2UgLXMgLWoke0JVSUxEX0pPQlN9IHdvcmxkLWJpbiIKICAgICAgIHVwbG9hZF9jYWNoZXM6 IGNjYWNoZQpAQCAtNjYyLDYgKzY2Niw4IEBAIHRhc2s6CiAgICAgICBwNS4zNC1pby10dHkKICAg ICAgIHA1LjM0LWlwYy1ydW4KICAgICAgIHB5dGhvbjMxMgorICAgICAgcHkzMTItcGFja2FnaW5n CisgICAgICBweTMxMi1weXRlc3QKICAgICAgIHRjbAogICAgICAgenN0ZAogCkBAIC03MTEsNiAr NzE3LDcgQEAgdGFzazoKICAgICBzaCBzcmMvdG9vbHMvY2kvY2lfbWFjcG9ydHNfcGFja2FnZXMu c2ggJE1BQ09TX1BBQ0tBR0VfTElTVAogICAgICMgc3lzdGVtIHB5dGhvbiBkb2Vzbid0IHByb3Zp ZGUgaGVhZGVycwogICAgIHN1ZG8gL29wdC9sb2NhbC9iaW4vcG9ydCBzZWxlY3QgcHl0aG9uMyBw eXRob24zMTIKKyAgICBzdWRvIC9vcHQvbG9jYWwvYmluL3BvcnQgc2VsZWN0IHB5dGVzdCBweXRl c3QzMTIKICAgICAjIE1ha2UgbWFjcG9ydHMgaW5zdGFsbCB2aXNpYmxlIGZvciBzdWJzZXF1ZW50 IHN0ZXBzCiAgICAgZWNobyBQQVRIPS9vcHQvbG9jYWwvc2Jpbi86L29wdC9sb2NhbC9iaW4vOiRQ QVRIID4+ICRDSVJSVVNfRU5WCiAgIHVwbG9hZF9jYWNoZXM6IG1hY3BvcnRzCkBAIC03ODQsNiAr NzkxLDcgQEAgdGFzazoKICAgICAgIC1EbGRhcD1lbmFibGVkCiAgICAgICAtRHNzbD1vcGVuc3Ns CiAgICAgICAtRHRhcF90ZXN0cz1lbmFibGVkCisgICAgICAtRHB5dGVzdD1lbmFibGVkCiAgICAg ICAtRHBscGVybD1lbmFibGVkCiAgICAgICAtRHBscHl0aG9uPWVuYWJsZWQKIApkaWZmIC0tZ2l0 IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggNGU5MTEzOTVmZTMuLmE1NTBjZTYxOTRi IDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTMxLDYgKzMxLDcg QEAgd2luMzJ2ZXIucmMKICouZXhlCiBsaWIqZGxsLmRlZgogbGliKi5wYworX19weWNhY2hlX18v CiAKICMgTG9jYWwgZXhjbHVkZXMgaW4gcm9vdCBkaXJlY3RvcnkKIC9HTlVtYWtlZmlsZQpAQCAt NDMsMyArNDQsNSBAQCBsaWIqLnBjCiAvUmVsZWFzZS8KIC90bXBfaW5zdGFsbC8KIC9wb3J0bG9j ay8KKy8udmVudi8KKy91di5sb2NrCmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUK aW5kZXggMDJlNGVjNzg5MGYuLjI2ODYzYmM4ZTY0IDEwMDc1NQotLS0gYS9jb25maWd1cmUKKysr IGIvY29uZmlndXJlCkBAIC02MzAsNiArNjMwLDggQEAgdnBhdGhfYnVpbGQKIFBHX1NZU1JPT1QK IFBHX1ZFUlNJT05fTlVNCiBMREZMQUdTX0VYX0JFCitVVgorUFlURVNUCiBQUk9WRQogREJUT0VQ VUIKIEZPUApAQCAtNzcyLDYgKzc3NCw3IEBAIENGTEFHUwogQ0MKIGVuYWJsZV9pbmplY3Rpb25f cG9pbnRzCiBQR19URVNUX0VYVFJBCitlbmFibGVfcHl0ZXN0CiBlbmFibGVfdGFwX3Rlc3RzCiBl bmFibGVfZHRyYWNlCiBEVFJBQ0VGTEFHUwpAQCAtODUwLDYgKzg1Myw3IEBAIGVuYWJsZV9wcm9m aWxpbmcKIGVuYWJsZV9jb3ZlcmFnZQogZW5hYmxlX2R0cmFjZQogZW5hYmxlX3RhcF90ZXN0cwor ZW5hYmxlX3B5dGVzdAogZW5hYmxlX2luamVjdGlvbl9wb2ludHMKIHdpdGhfYmxvY2tzaXplCiB3 aXRoX3NlZ3NpemUKQEAgLTE1NTAsNyArMTU1NCwxMCBAQCBPcHRpb25hbCBGZWF0dXJlczoKICAg LS1lbmFibGUtcHJvZmlsaW5nICAgICAgYnVpbGQgd2l0aCBwcm9maWxpbmcgZW5hYmxlZAogICAt LWVuYWJsZS1jb3ZlcmFnZSAgICAgICBidWlsZCB3aXRoIGNvdmVyYWdlIHRlc3RpbmcgaW5zdHJ1 bWVudGF0aW9uCiAgIC0tZW5hYmxlLWR0cmFjZSAgICAgICAgIGJ1aWxkIHdpdGggRFRyYWNlIHN1 cHBvcnQKLSAgLS1lbmFibGUtdGFwLXRlc3RzICAgICAgZW5hYmxlIFRBUCB0ZXN0cyAocmVxdWly ZXMgUGVybCBhbmQgSVBDOjpSdW4pCisgIC0tZW5hYmxlLXRhcC10ZXN0cyAgICAgIGVuYWJsZSAo UGVybC1iYXNlZCkgVEFQIHRlc3RzIChyZXF1aXJlcyBQZXJsIGFuZAorICAgICAgICAgICAgICAg ICAgICAgICAgICBJUEM6OlJ1bikKKyAgLS1lbmFibGUtcHl0ZXN0ICAgICAgICAgZW5hYmxlIChQ eXRob24tYmFzZWQpIHB5dGVzdCBzdWl0ZXMgKHJlcXVpcmVzCisgICAgICAgICAgICAgICAgICAg ICAgICAgIFB5dGhvbikKICAgLS1lbmFibGUtaW5qZWN0aW9uLXBvaW50cwogICAgICAgICAgICAg ICAgICAgICAgICAgICBlbmFibGUgaW5qZWN0aW9uIHBvaW50cyAoZm9yIHRlc3RpbmcpCiAgIC0t ZW5hYmxlLWRlcGVuZCAgICAgICAgIHR1cm4gb24gYXV0b21hdGljIGRlcGVuZGVuY3kgdHJhY2tp bmcKQEAgLTM2MzIsNyArMzYzOSw3IEBAIGZpCiAKIAogIwotIyBUQVAgdGVzdHMKKyMgVGVzdCBm cmFtZXdvcmtzCiAjCiAKIApAQCAtMzY2MCw2ICszNjY3LDMyIEBAIGZpCiAKIAogCisKKyMgQ2hl Y2sgd2hldGhlciAtLWVuYWJsZS1weXRlc3Qgd2FzIGdpdmVuLgoraWYgdGVzdCAiJHtlbmFibGVf cHl0ZXN0K3NldH0iID0gc2V0OyB0aGVuIDoKKyAgZW5hYmxldmFsPSRlbmFibGVfcHl0ZXN0Owor ICBjYXNlICRlbmFibGV2YWwgaW4KKyAgICB5ZXMpCisgICAgICA6CisgICAgICA7OworICAgIG5v KQorICAgICAgOgorICAgICAgOzsKKyAgICAqKQorICAgICAgYXNfZm5fZXJyb3IgJD8gIm5vIGFy Z3VtZW50IGV4cGVjdGVkIGZvciAtLWVuYWJsZS1weXRlc3Qgb3B0aW9uIiAiJExJTkVOTyIgNQor ICAgICAgOzsKKyAgZXNhYworCitlbHNlCisgIGVuYWJsZV9weXRlc3Q9bm8KKworZmkKKworCisK KworCisKICMKICMgSW5qZWN0aW9uIHBvaW50cwogIwpAQCAtMTkxOTcsNiArMTkyMzAsMTM1IEBA ICRhc19lY2hvICIkbW9kdWxlc3RkZXJyIiA+JjY7IH0KICAgZmkKIGZpCiAKK2lmIHRlc3QgIiRl bmFibGVfcHl0ZXN0IiA9IHllczsgdGhlbgorICBpZiB0ZXN0IC16ICIkUFlURVNUIjsgdGhlbgor ICBmb3IgYWNfcHJvZyBpbiBweXRlc3QgcHkudGVzdAorZG8KKyAgIyBFeHRyYWN0IHRoZSBmaXJz dCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCitzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKK3sgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyRhc19lY2hv X24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQoraWYgJHthY19jdl9wYXRoX1BZ VEVTVCs6fSBmYWxzZTsgdGhlbiA6CisgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CitlbHNl CisgIGNhc2UgJFBZVEVTVCBpbgorICBbXFwvXSogfCA/OltcXC9dKikKKyAgYWNfY3ZfcGF0aF9Q WVRFU1Q9IiRQWVRFU1QiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBw YXRoLgorICA7OworICAqKQorICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9S Citmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXog IiRhc19kaXIiICYmIGFzX2Rpcj0uCisgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVj dXRhYmxlX2V4dGVuc2lvbnM7IGRvCisgIGlmIGFzX2ZuX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KKyAgICBhY19jdl9wYXRoX1BZVEVTVD0iJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIKKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKyAgICBi cmVhayAyCisgIGZpCitkb25lCisgIGRvbmUKK0lGUz0kYXNfc2F2ZV9JRlMKKworICA7OworZXNh YworZmkKK1BZVEVTVD0kYWNfY3ZfcGF0aF9QWVRFU1QKK2lmIHRlc3QgLW4gIiRQWVRFU1QiOyB0 aGVuCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAk UFlURVNUIiA+JjUKKyRhc19lY2hvICIkUFlURVNUIiA+JjY7IH0KK2Vsc2UKKyAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyRhc19lY2hv ICJubyIgPiY2OyB9CitmaQorCisKKyAgdGVzdCAtbiAiJFBZVEVTVCIgJiYgYnJlYWsKK2RvbmUK KworZWxzZQorICAjIFJlcG9ydCB0aGUgdmFsdWUgb2YgUFlURVNUIGluIGNvbmZpZ3VyZSdzIG91 dHB1dCBpbiBhbGwgY2FzZXMuCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogY2hlY2tpbmcgZm9yIFBZVEVTVCIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3Ig UFlURVNULi4uICIgPiY2OyB9CisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogcmVzdWx0OiAkUFlURVNUIiA+JjUKKyRhc19lY2hvICIkUFlURVNUIiA+JjY7IH0KK2Zp CisKKyAgaWYgdGVzdCAteiAiJFBZVEVTVCI7IHRoZW4KKyAgICAjIElmIHB5dGVzdCBub3QgZm91 bmQsIHRyeSBpbnN0YWxsaW5nIHdpdGggdXYKKyAgICBpZiB0ZXN0IC16ICIkVVYiOyB0aGVuCisg IGZvciBhY19wcm9nIGluIHV2CitkbworICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRh Y19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KK3NldCBkdW1t eSAkYWNfcHJvZzsgYWNfd29yZD0kMgoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yICRhY193b3JkLi4uICIgPiY2OyB9CitpZiAke2FjX2N2X3BhdGhfVVYrOn0gZmFsc2U7IHRo ZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBjYXNlICRVViBpbgor ICBbXFwvXSogfCA/OltcXC9dKikKKyAgYWNfY3ZfcGF0aF9VVj0iJFVWIiAjIExldCB0aGUgdXNl ciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KKyAgOzsKKyAgKikKKyAgYXNfc2F2ZV9J RlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAg SUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICAgIGZv ciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworICBpZiBh c19mbl9leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCisg ICAgYWNfY3ZfcGF0aF9VVj0iJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIKKyAgICAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiA+JjUKKyAgICBicmVhayAyCisgIGZpCitkb25lCisgIGRvbmUKK0lGUz0k YXNfc2F2ZV9JRlMKKworICA7OworZXNhYworZmkKK1VWPSRhY19jdl9wYXRoX1VWCitpZiB0ZXN0 IC1uICIkVVYiOyB0aGVuCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogcmVzdWx0OiAkVVYiID4mNQorJGFzX2VjaG8gIiRVViIgPiY2OyB9CitlbHNlCisgIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiskYXNf ZWNobyAibm8iID4mNjsgfQorZmkKKworCisgIHRlc3QgLW4gIiRVViIgJiYgYnJlYWsKK2RvbmUK KworZWxzZQorICAjIFJlcG9ydCB0aGUgdmFsdWUgb2YgVVYgaW4gY29uZmlndXJlJ3Mgb3V0cHV0 IGluIGFsbCBjYXNlcy4KKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBjaGVja2luZyBmb3IgVVYiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIFVWLi4uICIg PiY2OyB9CisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiAkVVYiID4mNQorJGFzX2VjaG8gIiRVViIgPiY2OyB9CitmaQorCisgICAgaWYgdGVzdCAtbiAi JFVWIjsgdGhlbgorICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBjaGVja2luZyB3aGV0aGVyIHV2IGNhbiBpbnN0YWxsIHB5dGVzdCBkZXBlbmRlbmNpZXMiID4m NQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB1diBjYW4gaW5zdGFsbCBweXRlc3QgZGVw ZW5kZW5jaWVzLi4uICIgPiY2OyB9CisgICAgICBpZiAiJFVWIiBwaXAgaW5zdGFsbCAiJHNyY2Rp ciIgPiY1IDI+JjE7IHRoZW4KKyAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1CiskYXNfZWNobyAieWVzIiA+JjY7IH0KKyAgICAg ICAgUFlURVNUPSIkVVYgcnVuIHB5dGVzdCIKKyAgICAgIGVsc2UKKyAgICAgICAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyRhc19lY2hv ICJubyIgPiY2OyB9CisgICAgICAgIGFzX2ZuX2Vycm9yICQ/ICJweXRlc3Qgbm90IGZvdW5kIGFu ZCB1diBmYWlsZWQgdG8gaW5zdGFsbCBkZXBlbmRlbmNpZXMiICIkTElORU5PIiA1CisgICAgICBm aQorICAgIGVsc2UKKyAgICAgIGFzX2ZuX2Vycm9yICQ/ICJweXRlc3Qgbm90IGZvdW5kIiAiJExJ TkVOTyIgNQorICAgIGZpCisgIGZpCitmaQorCiAjIElmIGNvbXBpbGVyIHdpbGwgdGFrZSAtV2ws LS1hcy1uZWVkZWQgKG9yIHZhcmlvdXMgcGxhdGZvcm0tc3BlY2lmaWMKICMgc3BlbGxpbmdzIHRo ZXJlb2YpIHRoZW4gYWRkIHRoYXQgdG8gTERGTEFHUy4gIFRoaXMgaXMgbXVjaCBlYXNpZXIgdGhh bgogIyB0cnlpbmcgdG8gZmlsdGVyIExJQlMgdG8gdGhlIG1pbmltdW0gZm9yIGVhY2ggZXhlY3V0 YWJsZS4KZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCBiOTBh MjIwYTYzNS4uMTYyZWYwMTE0YjQgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25m aWd1cmUuYWMKQEAgLTIyNSwxMSArMjI1LDE2IEBAIEFDX1NVQlNUKERUUkFDRUZMQUdTKV0pCiBB Q19TVUJTVChlbmFibGVfZHRyYWNlKQogCiAjCi0jIFRBUCB0ZXN0cworIyBUZXN0IGZyYW1ld29y a3MKICMKIFBHQUNfQVJHX0JPT0woZW5hYmxlLCB0YXAtdGVzdHMsIG5vLAotICAgICAgICAgICAg ICBbZW5hYmxlIFRBUCB0ZXN0cyAocmVxdWlyZXMgUGVybCBhbmQgSVBDOjpSdW4pXSkKKyAgICAg ICAgICAgICAgW2VuYWJsZSAoUGVybC1iYXNlZCkgVEFQIHRlc3RzIChyZXF1aXJlcyBQZXJsIGFu ZCBJUEM6OlJ1bildKQogQUNfU1VCU1QoZW5hYmxlX3RhcF90ZXN0cykKKworUEdBQ19BUkdfQk9P TChlbmFibGUsIHB5dGVzdCwgbm8sCisgICAgICAgICAgICAgIFtlbmFibGUgKFB5dGhvbi1iYXNl ZCkgcHl0ZXN0IHN1aXRlcyAocmVxdWlyZXMgUHl0aG9uKV0pCitBQ19TVUJTVChlbmFibGVfcHl0 ZXN0KQorCiBBQ19BUkdfVkFSKFBHX1RFU1RfRVhUUkEsCiAgICAgICAgICAgIFtlbmFibGUgc2Vs ZWN0ZWQgZXh0cmEgdGVzdHMgKG92ZXJyaWRkZW4gYXQgcnVudGltZSBieSBQR19URVNUX0VYVFJB IGVudmlyb25tZW50IHZhcmlhYmxlKV0pCiAKQEAgLTI0MDYsNiArMjQxMSwyOSBAQCBpZiB0ZXN0 ICIkZW5hYmxlX3RhcF90ZXN0cyIgPSB5ZXM7IHRoZW4KICAgZmkKIGZpCiAKK2lmIHRlc3QgIiRl bmFibGVfcHl0ZXN0IiA9IHllczsgdGhlbgorICBQR0FDX1BBVEhfUFJPR1MoUFlURVNULCBbcHl0 ZXN0IHB5LnRlc3RdKQorICBpZiB0ZXN0IC16ICIkUFlURVNUIjsgdGhlbgorICAgICMgQ2hlY2sg Zm9yIC52ZW52IGluIHNvdXJjZSBkaXJlY3RvcnkKKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBw eXRlc3QgaW4gLnZlbnZdKQorICAgIGlmIHRlc3QgLXggIiRzcmNkaXIvLnZlbnYvYmluL3B5dGVz dCI7IHRoZW4KKyAgICAgIFBZVEVTVD0iJHNyY2Rpci8udmVudi9iaW4vcHl0ZXN0IgorICAgICAg QUNfTVNHX1JFU1VMVChbJFBZVEVTVF0pCisgICAgZWxzZQorICAgICAgQUNfTVNHX1JFU1VMVChb bm9dKQorICAgICAgIyBUcnkgcHl0aG9uIC1tIHB5dGVzdCBhcyBhIGZhbGxiYWNrCisgICAgICBB Q19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgcHl0aG9uIC1tIHB5dGVzdCB3b3Jrc10pCisgICAgICBp ZiAiJFBZVEhPTiIgLW0gcHl0ZXN0IC0tdmVyc2lvbiA+JkFTX01FU1NBR0VfTE9HX0ZEIDI+JjE7 IHRoZW4KKyAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKKyAgICAgICAgUFlURVNUPSIkUFlU SE9OIC1tIHB5dGVzdCIKKyAgICAgIGVsc2UKKyAgICAgICAgQUNfTVNHX1JFU1VMVChbbm9dKQor ICAgICAgICBBQ19NU0dfRVJST1IoW3B5dGVzdCBub3QgZm91bmQuIEluc3RhbGwgaXQgb3IgY3Jl YXRlIGEgLnZlbnYgd2l0aDogcHl0aG9uIC1tIHZlbnYgLnZlbnYgJiYgLnZlbnYvYmluL3BpcCBp bnN0YWxsIC5dKQorICAgICAgZmkKKyAgICBmaQorICBmaQorZmkKKwogIyBJZiBjb21waWxlciB3 aWxsIHRha2UgLVdsLC0tYXMtbmVlZGVkIChvciB2YXJpb3VzIHBsYXRmb3JtLXNwZWNpZmljCiAj IHNwZWxsaW5ncyB0aGVyZW9mKSB0aGVuIGFkZCB0aGF0IHRvIExERkxBR1MuICBUaGlzIGlzIG11 Y2ggZWFzaWVyIHRoYW4KICMgdHJ5aW5nIHRvIGZpbHRlciBMSUJTIHRvIHRoZSBtaW5pbXVtIGZv ciBlYWNoIGV4ZWN1dGFibGUuCmRpZmYgLS1naXQgYS9tZXNvbi5idWlsZCBiL21lc29uLmJ1aWxk CmluZGV4IDlkMWM3ZmZjNzAyLi5kOTExODBjMGRiYiAxMDA2NDQKLS0tIGEvbWVzb24uYnVpbGQK KysrIGIvbWVzb24uYnVpbGQKQEAgLTE3MTEsNiArMTcxMSw1MyBAQCBlbmRpZgogCiAKIAorIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisjIExpYnJhcnk6IHB5dGVzdAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK3B5dGVzdF9lbmFibGVkID0gZmFsc2UK K3B5dGVzdF92ZXJzaW9uID0gJycKK3B5dGVzdF9jbWQgPSBbJ3B5dGVzdCddICAjIGR1bW15LCBv dmVyd3JpdHRlbiB3aGVuIHB5dGVzdCBpcyBmb3VuZAorIyBXZSBhbHNvIGNvbmZpZ3VyZSB0aGUg c2FtZSBQWVRIT05QQVRIIGluIHRoZSBweXRlc3Qgc2V0dGluZ3MgaW4KKyMgcHlwcm9qZWN0LnRv bWwsIGJ1dCBweXRlc3QgdmVyc2lvbnMgYmVsb3cgOC40IG9ubHkgYWN0dWFsbHkgdXNlIHRoYXQK KyMgdmFsdWUgYWZ0ZXIgcGx1Z2luIGxvYWRpbmcuIE9uIGxvd2VyIHZlcnNpb25zIHB5dGVzdCB3 aWxsIHRocm93IGFuIGVycm9yIGV2ZW4KKyMgd2hlbiBqdXN0IHJ1bm5pbmcgJ3B5dGVzdCAtLXZl cnNpb24nLiBTbyB3ZSBuZWVkIHRvIGNvbmZpZ3VyZSBpdCBoZXJlIHRvby4KKyMgVGhpcyB3b24n dCBoZWxwIHBlb3BsZSBtYW51YWxseSBydW5uaW5nIHB5dGVzdCBvdXRzaWRlIG9mIG1lc29uL21h a2UsIGJ1dCB3ZQorIyBleHBlY3QgdGhvc2UgdG8gdXNlIGEgcmVjZW50IGVub3VnaCB2ZXJzaW9u IG9mIHB5dGVzdCBhbnl3YXkgKGFuZCBpZiBub3QgdGhleQorIyBjYW4gbWFudWFsbHkgY29uZmln dXJlIFBZVEhPTlBBVEggdG9vKS4KK3B5dGVzdF9lbnYgPSB7J1BZVEhPTlBBVEgnOiBtZXNvbi5w cm9qZWN0X3NvdXJjZV9yb290KCkgLyAnc3JjJyAvICd0ZXN0JyAvICdweXRlc3QnfQorCitweXRl c3RvcHQgPSBnZXRfb3B0aW9uKCdweXRlc3QnKQoraWYgbm90IHB5dGVzdG9wdC5kaXNhYmxlZCgp CisgIHB5dGVzdCA9IGZpbmRfcHJvZ3JhbSgKKyAgICBnZXRfb3B0aW9uKCdQWVRFU1QnKSwKKyAg ICBkaXJzOiBbCisgICAgICBtZXNvbi5wcm9qZWN0X3NvdXJjZV9yb290KCkgLyAnLnZlbnYvYmlu JywKKyAgICAgIG1lc29uLnByb2plY3Rfc291cmNlX3Jvb3QoKSAvICcudmVudi9TY3JpcHRzJywK KyAgICBdLAorICAgIG5hdGl2ZTogdHJ1ZSwgcmVxdWlyZWQ6IGZhbHNlKQorCisgIGlmIHB5dGVz dC5mb3VuZCgpCisgICAgcHl0ZXN0X2VuYWJsZWQgPSB0cnVlCisgICAgcHl0ZXN0X3ZlcnNpb24g PSBydW5fY29tbWFuZChweXRlc3QsICctLXZlcnNpb24nLCBlbnY6IHB5dGVzdF9lbnYsIGNoZWNr OiBmYWxzZSkuc3Rkb3V0KCkuc3RyaXAoKS5zcGxpdCgnICcpWy0xXQorICAgIHB5dGVzdF9jbWQg PSBbcHl0ZXN0LmZ1bGxfcGF0aCgpXQorICBlbHNlCisgICAgIyBUcnkgcHl0aG9uIC1tIHB5dGVz dCBhcyBhIGZhbGxiYWNrCisgICAgcHl0ZXN0X2NoZWNrID0gcnVuX2NvbW1hbmQocHl0aG9uLCAn LW0nLCAncHl0ZXN0JywgJy0tdmVyc2lvbicsIGVudjogcHl0ZXN0X2VudiwgY2hlY2s6IGZhbHNl KQorICAgIGlmIHB5dGVzdF9jaGVjay5yZXR1cm5jb2RlKCkgPT0gMAorICAgICAgcHl0ZXN0X2Vu YWJsZWQgPSB0cnVlCisgICAgICBweXRlc3RfdmVyc2lvbiA9IHB5dGVzdF9jaGVjay5zdGRvdXQo KS5zdHJpcCgpLnNwbGl0KCcgJylbLTFdCisgICAgICBweXRlc3RfY21kID0gW3B5dGhvbi5mdWxs X3BhdGgoKSwgJy1tJywgJ3B5dGVzdCddCisgICAgZW5kaWYKKyAgZW5kaWYKKworICBpZiBub3Qg cHl0ZXN0X2VuYWJsZWQgYW5kIHB5dGVzdG9wdC5lbmFibGVkKCkKKyAgICBlcnJvcigncHl0ZXN0 IG5vdCBmb3VuZC4gSW5zdGFsbCBpdCBvciBjcmVhdGUgYSAudmVudiB3aXRoOiBweXRob24gLW0g dmVudiAudmVudiAmJiAudmVudi9iaW4vcGlwIGluc3RhbGwgLicpCisgIGVuZGlmCitlbmRpZgor CisKKwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCiAjIExpYnJhcnk6IHpzdGQKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpAQCAtMzc5OCw2ICszODQ1LDY0 IEBAIGZvcmVhY2ggdGVzdF9kaXIgOiB0ZXN0cwogICAgICAgICApCiAgICAgICBlbmRmb3JlYWNo CiAgICAgICBpbnN0YWxsX3N1aXRlcyArPSB0ZXN0X2dyb3VwCisgICAgZWxpZiBraW5kID09ICdw eXRlc3QnCisgICAgICB0ZXN0d3JhcF9weXRlc3QgPSB0ZXN0d3JhcF9iYXNlCisgICAgICBpZiBu b3QgcHl0ZXN0X2VuYWJsZWQKKyAgICAgICAgdGVzdHdyYXBfcHl0ZXN0ICs9IFsnLS1za2lwJywg J3B5dGVzdCBub3QgZW5hYmxlZCddCisgICAgICBlbmRpZgorCisgICAgICB0ZXN0X2NvbW1hbmQg PSBweXRlc3RfY21kCisKKyAgICAgIHRlc3RfY29tbWFuZCArPSBbCisgICAgICAgICctYycsIG1l c29uLnByb2plY3Rfc291cmNlX3Jvb3QoKSAvICdweXByb2plY3QudG9tbCcsCisgICAgICAgICct LXZlcmJvc2UnLAorICAgICAgICAnLXAnLCAncGd0YXAnLCAgIyBlbmFibGUgb3VyIHRlc3QgcmVw b3J0ZXIgcGx1Z2luCisgICAgICAgICctcmEnLCAgIyBzaG93IHNraXBwZWQgYW5kIHhmYWlsZWQg dGVzdHMgdG9vCisgICAgICBdCisKKyAgICAgICMgQWRkIHRlbXBvcmFyeSBpbnN0YWxsLCB0aGUg YnVpbGQgZGlyZWN0b3J5IGZvciBub24taW5zdGFsbGVkIGJpbmFyaWVzIGFuZAorICAgICAgIyBh bHNvIHRlc3QvIGZvciBub24taW5zdGFsbGVkIHRlc3QgYmluYXJpZXMgYnVpbHQgc2VwYXJhdGVs eS4KKyAgICAgIGVudiA9IHRlc3RfZW52CisgICAgICBlbnYucHJlcGVuZCgnUEFUSCcsIHRlbXBf aW5zdGFsbF9iaW5kaXIsIHRlc3RfZGlyWydiZCddLCB0ZXN0X2RpclsnYmQnXSAvICd0ZXN0JykK KyAgICAgIHRlbXBfaW5zdGFsbF9kYXRhZGlyID0gJ0AwQEAxQCcuZm9ybWF0KHRlc3RfaW5zdGFs bF9kZXN0ZGlyLCBkaXJfcHJlZml4IC8gZGlyX2RhdGEpCisgICAgICBlbnYuc2V0KCdzaGFyZV9j b250cmliX2RpcicsIHRlbXBfaW5zdGFsbF9kYXRhZGlyIC8gJ2NvbnRyaWInKQorICAgICAgZW52 LnByZXBlbmQoJ1BZVEhPTlBBVEgnLCBweXRlc3RfZW52WydQWVRIT05QQVRIJ10pCisKKyAgICAg IGZvcmVhY2ggbmFtZSwgdmFsdWUgOiB0LmdldCgnZW52Jywge30pCisgICAgICAgIGVudi5zZXQo bmFtZSwgdmFsdWUpCisgICAgICBlbmRmb3JlYWNoCisKKyAgICAgIHRlc3RfZ3JvdXAgPSB0ZXN0 X2RpclsnbmFtZSddCisgICAgICB0ZXN0X2t3YXJncyA9IHsKKyAgICAgICAgJ3Byb3RvY29sJzog J3RhcCcsCisgICAgICAgICdzdWl0ZSc6IHRlc3RfZ3JvdXAsCisgICAgICAgICd0aW1lb3V0Jzog MTAwMCwKKyAgICAgICAgJ2RlcGVuZHMnOiB0ZXN0X2RlcHMgKyB0LmdldCgnZGVwcycsIFtdKSwK KyAgICAgICAgJ2Vudic6IGVudiwKKyAgICAgIH0gKyB0LmdldCgndGVzdF9rd2FyZ3MnLCB7fSkK KworICAgICAgZm9yZWFjaCBvbmV0ZXN0IDogdFsndGVzdHMnXQorICAgICAgICAjIE1ha2UgdGVz dCBuYW1lcyBwcmV0dGllciwgcmVtb3ZlIHB5dC8gYW5kIC5weQorICAgICAgICBvbmV0ZXN0X3Ag PSBvbmV0ZXN0CisgICAgICAgIGlmIG9uZXRlc3RfcC5zdGFydHN3aXRoKCdweXQvJykKKyAgICAg ICAgICBvbmV0ZXN0X3AgPSBvbmV0ZXN0LnNwbGl0KCdweXQvJylbMV0KKyAgICAgICAgZW5kaWYK KyAgICAgICAgaWYgb25ldGVzdF9wLmVuZHN3aXRoKCcucHknKQorICAgICAgICAgIG9uZXRlc3Rf cCA9IGZzLnN0ZW0ob25ldGVzdF9wKQorICAgICAgICBlbmRpZgorCisgICAgICAgIHRlc3QodGVz dF9kaXJbJ25hbWUnXSAvIG9uZXRlc3RfcCwKKyAgICAgICAgICBweXRob24sCisgICAgICAgICAg a3dhcmdzOiB0ZXN0X2t3YXJncywKKyAgICAgICAgICBhcmdzOiB0ZXN0d3JhcF9weXRlc3QgKyBb CisgICAgICAgICAgICAnLS10ZXN0Z3JvdXAnLCB0ZXN0X2RpclsnbmFtZSddLAorICAgICAgICAg ICAgJy0tdGVzdG5hbWUnLCBvbmV0ZXN0X3AsCisgICAgICAgICAgICAnLS0nLCB0ZXN0X2NvbW1h bmQsCisgICAgICAgICAgICB0ZXN0X2Rpclsnc2QnXSAvIG9uZXRlc3QsCisgICAgICAgICAgXSwK KyAgICAgICAgKQorICAgICAgZW5kZm9yZWFjaAorICAgICAgaW5zdGFsbF9zdWl0ZXMgKz0gdGVz dF9ncm91cAogICAgIGVsc2UKICAgICAgIGVycm9yKCd1bmtub3duIGtpbmQgQDBAIG9mIHRlc3Qg aW4gQDFAJy5mb3JtYXQoa2luZCwgdGVzdF9kaXJbJ3NkJ10pKQogICAgIGVuZGlmCkBAIC0zOTcy LDYgKzQwNzcsNyBAQCBzdW1tYXJ5KAogICAgICdkdHJhY2UnOiBkdHJhY2UsCiAgICAgJ2ZsZXgn OiAnQDBAIEAxQCcuZm9ybWF0KGZsZXguZnVsbF9wYXRoKCksIGZsZXhfdmVyc2lvbiksCiAgICAg J3Byb3ZlJzogcHJvdmUsCisgICAgJ3B5dGVzdCc6IHB5dGVzdF9lbmFibGVkID8gJyAnLmpvaW4o cHl0ZXN0X2NtZCkgKyAnICcgKyBweXRlc3RfdmVyc2lvbiA6IG5vdF9mb3VuZF9kZXAsCiAgIH0s CiAgIHNlY3Rpb246ICdQcm9ncmFtcycsCiApCkBAIC00MDEyLDYgKzQxMTgsNyBAQCBzdW1tYXJ5 KAogc3VtbWFyeSgKICAgewogICAgICd0YXAnOiB0YXBfdGVzdHNfZW5hYmxlZCwKKyAgICAncHl0 ZXN0JzogcHl0ZXN0X2VuYWJsZWQsCiAgIH0sCiAgIHNlY3Rpb246ICdPdGhlciBmZWF0dXJlcycs CiAgIGxpc3Rfc2VwOiAnICcsCmRpZmYgLS1naXQgYS9tZXNvbl9vcHRpb25zLnR4dCBiL21lc29u X29wdGlvbnMudHh0CmluZGV4IDZhNzkzZjNlNDc5Li5jYjQ4MjVjMzU3NSAxMDA2NDQKLS0tIGEv bWVzb25fb3B0aW9ucy50eHQKKysrIGIvbWVzb25fb3B0aW9ucy50eHQKQEAgLTQxLDcgKzQxLDEw IEBAIG9wdGlvbignY2Fzc2VydCcsIHR5cGU6ICdib29sZWFuJywgdmFsdWU6IGZhbHNlLAogICBk ZXNjcmlwdGlvbjogJ0VuYWJsZSBhc3NlcnRpb24gY2hlY2tzIChmb3IgZGVidWdnaW5nKScpCiAK IG9wdGlvbigndGFwX3Rlc3RzJywgdHlwZTogJ2ZlYXR1cmUnLCB2YWx1ZTogJ2F1dG8nLAotICBk ZXNjcmlwdGlvbjogJ0VuYWJsZSBUQVAgdGVzdHMnKQorICBkZXNjcmlwdGlvbjogJ0VuYWJsZSAo UGVybC1iYXNlZCkgVEFQIHRlc3RzJykKKworb3B0aW9uKCdweXRlc3QnLCB0eXBlOiAnZmVhdHVy ZScsIHZhbHVlOiAnYXV0bycsCisgIGRlc2NyaXB0aW9uOiAnRW5hYmxlIChQeXRob24tYmFzZWQp IHB5dGVzdCBzdWl0ZXMnKQogCiBvcHRpb24oJ2luamVjdGlvbl9wb2ludHMnLCB0eXBlOiAnYm9v bGVhbicsIHZhbHVlOiBmYWxzZSwKICAgZGVzY3JpcHRpb246ICdFbmFibGUgaW5qZWN0aW9uIHBv aW50cycpCkBAIC0xOTUsNiArMTk4LDkgQEAgb3B0aW9uKCdQRVJMJywgdHlwZTogJ3N0cmluZycs IHZhbHVlOiAncGVybCcsCiBvcHRpb24oJ1BST1ZFJywgdHlwZTogJ3N0cmluZycsIHZhbHVlOiAn cHJvdmUnLAogICBkZXNjcmlwdGlvbjogJ1BhdGggdG8gcHJvdmUgYmluYXJ5JykKIAorb3B0aW9u KCdQWVRFU1QnLCB0eXBlOiAnYXJyYXknLCB2YWx1ZTogWydweXRlc3QnLCAncHkudGVzdCddLAor ICBkZXNjcmlwdGlvbjogJ1BhdGggdG8gcHl0ZXN0IGJpbmFyeScpCisKIG9wdGlvbignUFlUSE9O JywgdHlwZTogJ2FycmF5JywgdmFsdWU6IFsncHl0aG9uMycsICdweXRob24nXSwKICAgZGVzY3Jp cHRpb246ICdQYXRoIHRvIHB5dGhvbiBiaW5hcnknKQogCmRpZmYgLS1naXQgYS9weXByb2plY3Qu dG9tbCBiL3B5cHJvamVjdC50b21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi42MGFiYjRkMDY1NQotLS0gL2Rldi9udWxsCisrKyBiL3B5cHJvamVjdC50b21sCkBAIC0w LDAgKzEsMjEgQEAKK1twcm9qZWN0XQorbmFtZSA9ICJwb3N0Z3Jlc3FsLWhhY2tlcnMtdG9vbGlu ZyIKK3ZlcnNpb24gPSAiMC4xLjAiCitkZXNjcmlwdGlvbiA9ICJQeXRlc3QgaW5mcmFzdHJ1Y3R1 cmUgZm9yIFBvc3RncmVTUUwiCityZXF1aXJlcy1weXRob24gPSAiPj0zLjYiCitkZXBlbmRlbmNp ZXMgPSBbCisgICAgIyBweXRlc3QgNy4wIHdhcyB0aGUgbGFzdCB2ZXJzaW9uIHdoaWNoIHN1cHBv cnRlZCBQeXRob24gMy42LCBidXQgdGhlIEJTRHMKKyAgICAjIGhhdmUgc3RhcnRlZCBwdXR0aW5n IDgueCBpbnRvIHBvcnRzLCBzbyB3ZSBzdXBwb3J0IGJvdGguIChweXRlc3QgOCBjYW4gYmUKKyAg ICAjIHVzZWQgdGhyb3VnaG91dCBvbmNlIHdlIGRyb3Agc3VwcG9ydCBmb3IgUHl0aG9uIDMuNy4p CisgICAgInB5dGVzdCA+PSA3LjAsIDwgMTAiLAorCisgICAgIyBBbnkgb3RoZXIgZGVwZW5kZW5j aWVzIGFyZSBlZmZlY3RpdmVseSBvcHRpb25hbCAoYWRkZWQgYmVsb3cpLiBXZSBpbXBvcnQKKyAg ICAjIHRoZXNlIGxpYnJhcmllcyB1c2luZyBweXRlc3QuaW1wb3J0b3Jza2lwKCkuIFNvIHRlc3Rz IHdpbGwgYmUgc2tpcHBlZCBpZgorICAgICMgdGhleSBhcmUgbm90IGF2YWlsYWJsZS4KK10KKwor W3Rvb2wucHl0ZXN0LmluaV9vcHRpb25zXQorbWludmVyc2lvbiA9ICI3LjAiCisKKyMgQ29tbW9u IHRlc3QgY29kZSBjYW4gYmUgZm91bmQgaGVyZS4KK3B5dGhvbnBhdGggPSBbInNyYy90ZXN0L3B5 dGVzdCJdCmRpZmYgLS1naXQgYS9zcmMvTWFrZWZpbGUuZ2xvYmFsLmluIGIvc3JjL01ha2VmaWxl Lmdsb2JhbC5pbgppbmRleCAzNzFjZDdlYmEyYy4uMTYwY2RmZmQ0ZjEgMTAwNjQ0Ci0tLSBhL3Ny Yy9NYWtlZmlsZS5nbG9iYWwuaW4KKysrIGIvc3JjL01ha2VmaWxlLmdsb2JhbC5pbgpAQCAtMjEx LDYgKzIxMSw3IEBAIGVuYWJsZV9kdHJhY2UJPSBAZW5hYmxlX2R0cmFjZUAKIGVuYWJsZV9jb3Zl cmFnZQk9IEBlbmFibGVfY292ZXJhZ2VACiBlbmFibGVfaW5qZWN0aW9uX3BvaW50cyA9IEBlbmFi bGVfaW5qZWN0aW9uX3BvaW50c0AKIGVuYWJsZV90YXBfdGVzdHMJPSBAZW5hYmxlX3RhcF90ZXN0 c0AKK2VuYWJsZV9weXRlc3QJPSBAZW5hYmxlX3B5dGVzdEAKIAogcHl0aG9uX2luY2x1ZGVzcGVj CT0gQHB5dGhvbl9pbmNsdWRlc3BlY0AKIHB5dGhvbl9saWJkaXIJCT0gQHB5dGhvbl9saWJkaXJA CkBAIC0zNTQsNiArMzU1LDcgQEAgTVNHRk1UICA9IEBNU0dGTVRACiBNU0dGTVRfRkxBR1MgPSBA TVNHRk1UX0ZMQUdTQAogTVNHTUVSR0UgPSBATVNHTUVSR0VACiBPUEVOU1NMCT0gQE9QRU5TU0xA CitQWVRFU1QJPSBAUFlURVNUQAogUFlUSE9OCT0gQFBZVEhPTkAKIFRBUgk9IEBUQVJACiBYR0VU VEVYVCA9IEBYR0VUVEVYVEAKQEAgLTUwOCw2ICs1MTAsMzMgQEAgcHJvdmVfaW5zdGFsbGNoZWNr ID0gQGVjaG8gIlRBUCB0ZXN0cyBub3QgZW5hYmxlZC4gVHJ5IGNvbmZpZ3VyaW5nIHdpdGggLS1l bmFibGUKIHByb3ZlX2NoZWNrID0gJChwcm92ZV9pbnN0YWxsY2hlY2spCiBlbmRpZgogCitpZmVx ICgkKGVuYWJsZV9weXRlc3QpLHllcykKKworcHl0ZXN0X2luc3RhbGxjaGVjayA9IEBlY2hvICJJ bnN0YWxsY2hlY2sgaXMgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgZm9yIHB5dGVzdC4iCisKKyMg V2UgYWxzbyBjb25maWd1cmUgdGhlIHNhbWUgUFlUSE9OUEFUSCBpbiB0aGUgcHl0ZXN0IHNldHRp bmdzIGluCisjIHB5cHJvamVjdC50b21sLCBidXQgcHl0ZXN0IHZlcnNpb25zIGJlbG93IDguNCBv bmx5IGFjdHVhbGx5IHVzZSB0aGF0IHZhbHVlCisjIGFmdGVyIHBsdWdpbiBsb2FkaW5nLiBTbyB3 ZSBuZWVkIHRvIGNvbmZpZ3VyZSBpdCBoZXJlIHRvby4gVGhpcyB3b24ndCBoZWxwCisjIHBlb3Bs ZSBtYW51YWxseSBydW5uaW5nIHB5dGVzdCBvdXRzaWRlIG9mIG1lc29uL21ha2UsIGJ1dCB3ZSBl eHBlY3QgdGhvc2UgdG8KKyMgdXNlIGEgcmVjZW50IGVub3VnaCB2ZXJzaW9uIG9mIHB5dGVzdCBh bnl3YXkgKGFuZCBpZiBub3QgdGhleSBjYW4gbWFudWFsbHkKKyMgY29uZmlndXJlIFBZVEhPTlBB VEggdG9vKS4KK2RlZmluZSBweXRlc3RfY2hlY2sKK2VjaG8gIiMgKysrIHB5dGVzdCBjaGVjayBp biAkKHN1YmRpcikgKysrIiAmJiBcCitybSAtcmYgJyQoQ1VSRElSKScvdG1wX2NoZWNrICYmIFwK KyQoTUtESVJfUCkgJyQoQ1VSRElSKScvdG1wX2NoZWNrICYmIFwKK2NkICQoc3JjZGlyKSAmJiBc CisgICBURVNUTE9HRElSPSckKENVUkRJUikvdG1wX2NoZWNrL2xvZycgXAorICAgVEVTVERBVEFE SVI9JyQoQ1VSRElSKS90bXBfY2hlY2snIFwKKyAgIFBZVEhPTlBBVEg9JyQoYWJzX3RvcF9zcmNk aXIpL3NyYy90ZXN0L3B5dGVzdDokJFBZVEhPTlBBVEgnIFwKKyAgICQod2l0aF90ZW1wX2luc3Rh bGwpIFwKKyAgICQoUFlURVNUKSAtYyAnJChhYnNfdG9wX3NyY2RpcikvcHlwcm9qZWN0LnRvbWwn IC0tdmVyYm9zZSAtcmEgLi9weXQvCitlbmRlZgorCitlbHNlCitweXRlc3RfaW5zdGFsbGNoZWNr ID0gQGVjaG8gInB5dGVzdCBpcyBub3QgZW5hYmxlZC4gVHJ5IGNvbmZpZ3VyaW5nIHdpdGggLS1l bmFibGUtcHl0ZXN0IgorcHl0ZXN0X2NoZWNrID0gJChweXRlc3RfaW5zdGFsbGNoZWNrKQorZW5k aWYKKwogIyBJbnN0YWxsYXRpb24uCiAKIGluc3RhbGxfYmluID0gQGluc3RhbGxfYmluQApkaWZm IC0tZ2l0IGEvc3JjL21ha2VmaWxlcy9tZXNvbi5idWlsZCBiL3NyYy9tYWtlZmlsZXMvbWVzb24u YnVpbGQKaW5kZXggMTI0ZGYyYzg1ODIuLjc3OGI1OWM5YWZiIDEwMDY0NAotLS0gYS9zcmMvbWFr ZWZpbGVzL21lc29uLmJ1aWxkCisrKyBiL3NyYy9tYWtlZmlsZXMvbWVzb24uYnVpbGQKQEAgLTU2 LDYgKzU2LDggQEAgcGd4c19rdiA9IHsKICAgJ2VuYWJsZV9ubHMnOiBsaWJpbnRsLmZvdW5kKCkg PyAneWVzJyA6ICdubycsCiAgICdlbmFibGVfaW5qZWN0aW9uX3BvaW50cyc6IGdldF9vcHRpb24o J2luamVjdGlvbl9wb2ludHMnKSA/ICd5ZXMnIDogJ25vJywKICAgJ2VuYWJsZV90YXBfdGVzdHMn OiB0YXBfdGVzdHNfZW5hYmxlZCA/ICd5ZXMnIDogJ25vJywKKyAgJ2VuYWJsZV9weXRlc3QnOiBw eXRlc3RfZW5hYmxlZCA/ICd5ZXMnIDogJ25vJywKKyAgJ1BZVEVTVCc6IHB5dGVzdF9lbmFibGVk ID8gJyAnLmpvaW4ocHl0ZXN0X2NtZCkgOiAnJywKICAgJ2VuYWJsZV9kZWJ1Zyc6IGdldF9vcHRp b24oJ2RlYnVnJykgPyAneWVzJyA6ICdubycsCiAgICdlbmFibGVfY292ZXJhZ2UnOiAnbm8nLAog ICAnZW5hYmxlX2R0cmFjZSc6IGR0cmFjZS5mb3VuZCgpID8gJ3llcycgOiAnbm8nLApkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvTWFrZWZpbGUgYi9zcmMvdGVzdC9NYWtlZmlsZQppbmRleCAzZWIwYTA2 YWJiNC4uMGJlOTc3MWQ3MWYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L01ha2VmaWxlCisrKyBiL3Ny Yy90ZXN0L01ha2VmaWxlCkBAIC0xOCw2ICsxOCw3IEBAIFNVQkRJUlMgPSBcCiAJbW9kdWxlcyBc CiAJcGVybCBcCiAJcG9zdG1hc3RlciBcCisJcHl0ZXN0IFwKIAlyZWNvdmVyeSBcCiAJcmVncmVz cyBcCiAJc3Vic2NyaXB0aW9uCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tZXNvbi5idWlsZCBiL3Ny Yy90ZXN0L21lc29uLmJ1aWxkCmluZGV4IGNkNDVjYmY1N2ZiLi4wOTE3NWYwZWFlYSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3QvbWVzb24uYnVpbGQKQEAg LTUsNiArNSw3IEBAIHN1YmRpcignaXNvbGF0aW9uJykKIAogc3ViZGlyKCdhdXRoZW50aWNhdGlv bicpCiBzdWJkaXIoJ3Bvc3RtYXN0ZXInKQorc3ViZGlyKCdweXRlc3QnKQogc3ViZGlyKCdyZWNv dmVyeScpCiBzdWJkaXIoJ3N1YnNjcmlwdGlvbicpCiBzdWJkaXIoJ21vZHVsZXMnKQpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcHl0ZXN0L01ha2VmaWxlIGIvc3JjL3Rlc3QvcHl0ZXN0L01ha2VmaWxl Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYmRjYTk2Y2NiZQotLS0g L2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3B5dGVzdC9NYWtlZmlsZQpAQCAtMCwwICsxLDIwIEBA CisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIworIyBNYWtlZmlsZSBmb3IgcHl0ZXN0CisjCisjIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVu dCBHcm91cAorIyBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVu aXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorIworIyBzcmMvdGVzdC9weXRlc3QvTWFrZWZpbGUKKyMK KyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisKK3N1YmRpciA9IHNyYy90ZXN0L3B5dGVzdAordG9wX2J1aWxk ZGlyID0gLi4vLi4vLi4KK2luY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL3NyYy9NYWtlZmlsZS5nbG9i YWwKKworY2hlY2s6CisJJChweXRlc3RfY2hlY2spCisKK2NsZWFuIGRpc3RjbGVhbiBtYWludGFp bmVyLWNsZWFuOgorCXJtIC1yZiB0bXBfY2hlY2sKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVz dC9SRUFETUUgYi9zcmMvdGVzdC9weXRlc3QvUkVBRE1FCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi4xMzMzZWQ3N2I3ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0 L3B5dGVzdC9SRUFETUUKQEAgLTAsMCArMSBAQAorVE9ETwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cHl0ZXN0L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvcHl0ZXN0L21lc29uLmJ1aWxkCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hYmQxMjhkZmEyNAotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L3B5dGVzdC9tZXNvbi5idWlsZApAQCAtMCwwICsxLDE2IEBACisjIENv cHlyaWdodCAoYykgMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKwor aWYgbm90IHB5dGVzdF9lbmFibGVkCisgIHN1YmRpcl9kb25lKCkKK2VuZGlmCisKK3Rlc3RzICs9 IHsKKyAgJ25hbWUnOiAncHl0ZXN0JywKKyAgJ3NkJzogbWVzb24uY3VycmVudF9zb3VyY2VfZGly KCksCisgICdiZCc6IG1lc29uLmN1cnJlbnRfYnVpbGRfZGlyKCksCisgICdweXRlc3QnOiB7Cisg ICAgJ3Rlc3RzJzogWworICAgICAgJ3B5dC90ZXN0X3NvbWV0aGluZy5weScsCisgICAgXSwKKyAg fSwKK30KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVzdC9wZ3RhcC5weSBiL3NyYy90ZXN0L3B5 dGVzdC9wZ3RhcC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzky Y2FkOThkOTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9weXRlc3QvcGd0YXAucHkKQEAg LTAsMCArMSwxOTggQEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBE ZXZlbG9wbWVudCBHcm91cAorCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworaW1wb3J0IHB5dGVz dAorCisjCisjIEhlbHBlcnMKKyMKKworCitjbGFzcyBUQVA6CisgICAgIiIiCisgICAgQSBiYXNp YyBBUEkgZm9yIHJlcG9ydGluZyB2aWEgdGhlIFRBUCBwcm90b2NvbC4KKyAgICAiIiIKKworICAg IGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5jb3VudCA9IDAKKworICAgICAgICAj IFhYWCBpbnRlcmFjdHMgcG9vcmx5IHdpdGggdGVzdHdyYXAncyBib2lsZXJwbGF0ZSBkaWFnbm9z dGljcworICAgICAgICAjIHNlbGYucHJpbnQoIlRBUCB2ZXJzaW9uIDEzIikKKworICAgIGRlZiBl eHBlY3Qoc2VsZiwgbnVtOiBpbnQpOgorICAgICAgICBzZWxmLnByaW50KGYiMS4ue251bX0iKQor CisgICAgZGVmIHByaW50KHNlbGYsICphcmdzKToKKyAgICAgICAgcHJpbnQoKmFyZ3MsIGZpbGU9 c3lzLl9fc3Rkb3V0X18pCisKKyAgICBkZWYgb2soc2VsZiwgbmFtZTogc3RyKToKKyAgICAgICAg c2VsZi5jb3VudCArPSAxCisgICAgICAgIHNlbGYucHJpbnQoIm9rIiwgc2VsZi5jb3VudCwgIi0i LCBuYW1lKQorCisgICAgZGVmIHNraXAoc2VsZiwgbmFtZTogc3RyLCByZWFzb246IHN0cik6Cisg ICAgICAgIHNlbGYuY291bnQgKz0gMQorICAgICAgICBzZWxmLnByaW50KCJvayIsIHNlbGYuY291 bnQsICItIiwgbmFtZSwgIiMgc2tpcCIsIHJlYXNvbikKKworICAgIGRlZiBmYWlsKHNlbGYsIG5h bWU6IHN0ciwgZGV0YWlsczogc3RyKToKKyAgICAgICAgc2VsZi5jb3VudCArPSAxCisgICAgICAg IHNlbGYucHJpbnQoIm5vdCBvayIsIHNlbGYuY291bnQsICItIiwgbmFtZSkKKworICAgICAgICAj IG10ZXN0IGhhcyBzb21lIG9kZCBiZWhhdmlvciBhcm91bmQgVEFQIHRlc3RzIHdoZXJlIGl0IHdv bid0IHByaW50CisgICAgICAgICMgZGlhZ25vc3RpY3Mgb24gZmFpbHVyZSBpZiB0aGV5J3JlIHBh cnQgb2YgdGhlIHN0ZG91dCBzdHJlYW0sIHNvIHdlCisgICAgICAgICMgbWlnaHQgYXMgd2VsbCBq dXN0IGR1bXAgdGhlIGRldGFpbHMgZGlyZWN0bHkgdG8gc3RkZXJyIGluc3RlYWQuCisgICAgICAg IHByaW50KGRldGFpbHMsIGZpbGU9c3lzLl9fc3RkZXJyX18pCisKKwordGFwID0gVEFQKCkKKwor CitjbGFzcyBUZXN0Tm90ZXM6CisgICAgIiIiCisgICAgQW5ub3RhdGlvbnMgZm9yIGEgc2luZ2xl IHRlc3QuIFRoZSBleGlzdGluZyBweXRlc3QgaG9va3Mga2VlcCBpbnRlcmVzdGluZworICAgIGlu Zm9ybWF0aW9uIHNvbWV3aGF0IHNlcGFyYXRlZCBhY3Jvc3MgdGhlIGRpZmZlcmVudCBzdGFnZXMK KyAgICAoc2V0dXAvdGVzdC90ZWFyZG93biksIHNvIHRoaXMgY2xhc3MgaXMgdXNlZCB0byBjb3Jy ZWxhdGUgdGhlbS4KKyAgICAiIiIKKworICAgIHNraXBwZWQgPSBGYWxzZQorICAgIHNraXBfcmVh c29uID0gTm9uZQorCisgICAgZmFpbGVkID0gRmFsc2UKKyAgICBkZXRhaWxzID0gIiIKKworCisj IFJlZ2lzdGVyIGEgY3VzdG9tIGtleSBpbiB0aGUgc3Rhc2ggZGljdGlvbmFyeSBmb3Iga2VlcGlu ZyBvdXIgVGVzdE5vdGVzLgorbm90ZXNfa2V5ID0gcHl0ZXN0LlN0YXNoS2V5W1Rlc3ROb3Rlc10o KQorCisKKyMKKyMgSG9vayBJbXBsZW1lbnRhdGlvbnMKKyMKKworCitAcHl0ZXN0Lmhvb2tpbXBs KHRyeWZpcnN0PVRydWUpCitkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgorICAgICIiIgor ICAgIEhpamFja3MgdGhlIHN0YW5kYXJkIHN0cmVhbXMgYXMgc29vbiBhcyBwb3NzaWJsZSBkdXJp bmcgcHl0ZXN0IHN0YXJ0dXAuIFRoZQorICAgIHB5dGVzdC1mb3JtYXR0ZWQgb3V0cHV0IGdldHMg bG9nZ2VkIHRvIGZpbGUgaW5zdGVhZCwgYW5kIHdlJ2xsIHVzZSB0aGUKKyAgICBvcmlnaW5hbCBz eXMuX19zdGRvdXRfXy9fX3N0ZGVycl9fIHN0cmVhbXMgZm9yIHRoZSBUQVAgcHJvdG9jb2wuCisg ICAgIiIiCisgICAgbG9nZGlyID0gb3MuZ2V0ZW52KCJURVNUTE9HRElSIikKKyAgICBpZiBub3Qg bG9nZGlyOgorICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoInBndGFwIHJlcXVpcmVzIHRoZSBU RVNUTE9HRElSIGVudnZhciB0byBiZSBzZXQiKQorCisgICAgb3MubWFrZWRpcnMobG9nZGlyKQor ICAgIGxvZ3BhdGggPSBvcy5wYXRoLmpvaW4obG9nZGlyLCAicHl0ZXN0LmxvZyIpCisgICAgc3lz LnN0ZG91dCA9IHN5cy5zdGRlcnIgPSBvcGVuKGxvZ3BhdGgsICJhIiwgYnVmZmVyaW5nPTEpCisK KworQHB5dGVzdC5ob29raW1wbCh0cnlsYXN0PVRydWUpCitkZWYgcHl0ZXN0X3Nlc3Npb25maW5p c2goc2Vzc2lvbiwgZXhpdHN0YXR1cyk6CisgICAgIiIiCisgICAgU3VwcHJlc3NlcyBub256ZXJv IGV4aXQgY29kZXMgZHVlIHRvIGZhaWxlZCB0ZXN0cy4gKEluIHRoYXQgY2FzZSwgd2Ugd2FudAor ICAgIE1lc29uIHRvIHJlcG9ydCBhIGZhaWx1cmUgY291bnQsIG5vdCBhIGdlbmVyaWMgRVJST1Iu KQorICAgICIiIgorICAgIGlmIGV4aXRzdGF0dXMgPT0gcHl0ZXN0LkV4aXRDb2RlLlRFU1RTX0ZB SUxFRDoKKyAgICAgICAgc2Vzc2lvbi5leGl0c3RhdHVzID0gcHl0ZXN0LkV4aXRDb2RlLk9LCisK KworQHB5dGVzdC5ob29raW1wbAorZGVmIHB5dGVzdF9jb2xsZWN0cmVwb3J0KHJlcG9ydCk6Cisg ICAgIyBJbmNsdWRlIGNvbGxlY3Rpb24gZmFpbHVyZXMgZGlyZWN0bHkgaW4gTWVzb24gZXJyb3Ig b3V0cHV0LgorICAgIGlmIHJlcG9ydC5mYWlsZWQ6CisgICAgICAgIHByaW50KHJlcG9ydC5sb25n cmVwcnRleHQsIGZpbGU9c3lzLl9fc3RkZXJyX18pCisKKworQHB5dGVzdC5ob29raW1wbAorZGVm IHB5dGVzdF9pbnRlcm5hbGVycm9yKGV4Y3JlcHIsIGV4Y2luZm8pOgorICAgICMgSW5jbHVkZSBp bnRlcm5hbCBlcnJvcnMgZGlyZWN0bHkgaW4gTWVzb24gZXJyb3Igb3V0cHV0LgorICAgIHByaW50 KGV4Y3JlcHIsIGZpbGU9c3lzLl9fc3RkZXJyX18pCisKKworIworIyBIb29rIFdyYXBwZXJzCisj CisjIEluIHB5dGVzdCBwYXJsYW5jZSwgYSAid3JhcHBlciIgZm9yIGEgaG9vayBjYW4gaW5zcGVj dCBhbmQgb3B0aW9uYWxseSBtb2RpZnkKKyMgZXhpc3RpbmcgaG9va3MnIGJlaGF2aW9yLCBidXQg aXQgZG9lcyBub3QgcmVwbGFjZSB0aGUgaG9vayBjaGFpbi4gVGhpcyBpcyBkb25lCisjIHRocm91 Z2ggYSBnZW5lcmF0b3Itc3R5bGUgQVBJIHdoaWNoIGNoYWlucyB0aGUgaG9va3MgdG9nZXRoZXIg KHNlZSB0aGUgdXNlIG9mCisjIGB5aWVsZGApLgorIworCisKK0BweXRlc3QuaG9va2ltcGwoaG9v a3dyYXBwZXI9VHJ1ZSkKK2RlZiBweXRlc3RfY29sbGVjdGlvbihzZXNzaW9uKToKKyAgICAiIiJS ZXBvcnRzIHRoZSBudW1iZXIgb2YgZ2F0aGVyZWQgdGVzdHMgYWZ0ZXIgY29sbGVjdGlvbiBpcyBm aW5pc2hlZC4iIiIKKyAgICByZXMgPSB5aWVsZAorICAgIHRhcC5leHBlY3Qoc2Vzc2lvbi50ZXN0 c2NvbGxlY3RlZCkKKyAgICByZXR1cm4gcmVzCisKKworQHB5dGVzdC5ob29raW1wbChob29rd3Jh cHBlcj1UcnVlKQorZGVmIHB5dGVzdF9ydW50ZXN0X21ha2VyZXBvcnQoaXRlbSwgY2FsbCk6Cisg ICAgIiIiCisgICAgQW5ub3RhdGVzIGEgdGVzdCBpdGVtIHdpdGggb3VyIFRlc3ROb3RlcyBhbmQg Z3JhYnMgcmVsZXZhbnQgaW5mb3JtYXRpb24gZm9yCisgICAgcmVwb3J0aW5nLgorCisgICAgVGhp cyBpcyBjYWxsZWQgbXVsdGlwbGUgdGltZXMgcGVyIHRlc3QsIHNvIGl0J3Mgbm90IGNvcnJlY3Qg dG8gcHJpbnQgdGhlIFRBUAorICAgIHJlc3VsdCBoZXJlLiAoQSB0ZXN0IGFuZCBpdHMgdGVhcmRv d24gc3RhZ2UgY2FuIGJvdGggZmFpbCwgYW5kIHdlIHdhbnQgdG8KKyAgICBzZWUgdGhlIGRldGFp bHMgZm9yIGJvdGguKSBXZSBpbnN0ZWFkIGNvbWJpbmUgYWxsIHRoZSBpbmZvcm1hdGlvbiBmb3Ig dXNlIGJ5CisgICAgb3VyIHB5dGVzdF9ydW50ZXN0X3Byb3RvY29sIHdyYXBwZXIgbGF0ZXIgb24u CisgICAgIiIiCisgICAgcmVzID0geWllbGQKKworICAgIGlmIG5vdGVzX2tleSBub3QgaW4gaXRl bS5zdGFzaDoKKyAgICAgICAgaXRlbS5zdGFzaFtub3Rlc19rZXldID0gVGVzdE5vdGVzKCkKKyAg ICBub3RlcyA9IGl0ZW0uc3Rhc2hbbm90ZXNfa2V5XQorCisgICAgcmVwb3J0ID0gcmVzLmdldF9y ZXN1bHQoKQorICAgIGlmIHJlcG9ydC5wYXNzZWQ6CisgICAgICAgIHBhc3MgICMgbm8gYW5ub3Rh dGlvbiBuZWVkZWQKKworICAgIGVsaWYgcmVwb3J0LnNraXBwZWQ6CisgICAgICAgIG5vdGVzLnNr aXBwZWQgPSBUcnVlCisgICAgICAgIF8sIF8sIG5vdGVzLnNraXBfcmVhc29uID0gcmVwb3J0Lmxv bmdyZXByCisKKyAgICBlbGlmIHJlcG9ydC5mYWlsZWQ6CisgICAgICAgIG5vdGVzLmZhaWxlZCA9 IFRydWUKKworICAgICAgICBpZiBub3Qgbm90ZXMuZGV0YWlsczoKKyAgICAgICAgICAgIG5vdGVz LmRldGFpbHMgKz0gIns6X143Mn1cblxuIi5mb3JtYXQoZiIge3JlcG9ydC5oZWFkX2xpbmV9ICIp CisKKyAgICAgICAgaWYgcmVwb3J0LndoZW4gaW4gKCJzZXR1cCIsICJ0ZWFyZG93biIpOgorICAg ICAgICAgICAgbm90ZXMuZGV0YWlscyArPSAiXG57Ol9eNzJ9XG5cbiIuZm9ybWF0KAorICAgICAg ICAgICAgICAgIGYiIEVycm9yIGR1cmluZyB7cmVwb3J0LndoZW59IG9mIHtyZXBvcnQuaGVhZF9s aW5lfSAiCisgICAgICAgICAgICApCisKKyAgICAgICAgbm90ZXMuZGV0YWlscyArPSByZXBvcnQu bG9uZ3JlcHJ0ZXh0ICsgIlxuIgorCisgICAgICAgICMgSW5jbHVkZSBjYXB0dXJlZCBzdGRvdXQv c3RkZXJyL2xvZyBpbiBmYWlsdXJlIG91dHB1dAorICAgICAgICBmb3Igc2VjdGlvbl9uYW1lLCBz ZWN0aW9uX2NvbnRlbnQgaW4gcmVwb3J0LnNlY3Rpb25zOgorICAgICAgICAgICAgaWYgc2VjdGlv bl9jb250ZW50LnN0cmlwKCk6CisgICAgICAgICAgICAgICAgbm90ZXMuZGV0YWlscyArPSAiXG57 Oi1eNzJ9XG4iLmZvcm1hdChmIiB7c2VjdGlvbl9uYW1lfSAiKQorICAgICAgICAgICAgICAgIG5v dGVzLmRldGFpbHMgKz0gc2VjdGlvbl9jb250ZW50ICsgIlxuIgorCisgICAgZWxzZToKKyAgICAg ICAgcmFpc2UgUnVudGltZUVycm9yKCJweXRlc3RfcnVudGVzdF9tYWtlcmVwb3J0IHJlY2VpdmVk IHVua25vd24gdGVzdCBzdGF0dXMiKQorCisgICAgcmV0dXJuIHJlcworCisKK0BweXRlc3QuaG9v a2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKK2RlZiBweXRlc3RfcnVudGVzdF9wcm90b2NvbChpdGVt LCBuZXh0aXRlbSk6CisgICAgIiIiCisgICAgUmVwb3J0cyB0aGUgVEFQIHJlc3VsdCBmb3IgdGhp cyB0ZXN0IGl0ZW0gdXNpbmcgb3VyIGdhdGhlcmVkIFRlc3ROb3Rlcy4KKyAgICAiIiIKKyAgICBy ZXMgPSB5aWVsZAorCisgICAgYXNzZXJ0IG5vdGVzX2tleSBpbiBpdGVtLnN0YXNoLCAicGd0YXAg ZGlkbid0IGFubm90YXRlIGEgdGVzdCBpdGVtPyIKKyAgICBub3RlcyA9IGl0ZW0uc3Rhc2hbbm90 ZXNfa2V5XQorCisgICAgaWYgbm90ZXMuZmFpbGVkOgorICAgICAgICB0YXAuZmFpbChpdGVtLm5v ZGVpZCwgbm90ZXMuZGV0YWlscykKKyAgICBlbGlmIG5vdGVzLnNraXBwZWQ6CisgICAgICAgIHRh cC5za2lwKGl0ZW0ubm9kZWlkLCBub3Rlcy5za2lwX3JlYXNvbikKKyAgICBlbHNlOgorICAgICAg ICB0YXAub2soaXRlbS5ub2RlaWQpCisKKyAgICByZXR1cm4gcmVzCmRpZmYgLS1naXQgYS9zcmMv dG9vbHMvdGVzdHdyYXAgYi9zcmMvdG9vbHMvdGVzdHdyYXAKaW5kZXggZTkxMjk2ZWNkMTUuLjM0 NmY4NmI4ZWEzIDEwMDc1NQotLS0gYS9zcmMvdG9vbHMvdGVzdHdyYXAKKysrIGIvc3JjL3Rvb2xz L3Rlc3R3cmFwCkBAIC00Miw3ICs0MiwxMSBAQCBvcGVuKG9zLnBhdGguam9pbih0ZXN0ZGlyLCAn dGVzdC5zdGFydCcpLCAneCcpCiAKIGVudl9kaWN0ID0geyoqb3MuZW52aXJvbiwKICAgICAgICAg ICAgICdURVNUREFUQURJUic6IG9zLnBhdGguam9pbih0ZXN0ZGlyLCAnZGF0YScpLAotICAgICAg ICAgICAgJ1RFU1RMT0dESVInOiBvcy5wYXRoLmpvaW4odGVzdGRpciwgJ2xvZycpfQorICAgICAg ICAgICAgJ1RFU1RMT0dESVInOiBvcy5wYXRoLmpvaW4odGVzdGRpciwgJ2xvZycpLAorICAgICAg ICAgICAgIyBQcmV2ZW50IGVtaXR0aW5nIHRlcm1pbmFsIGNhcGFiaWxpdHkgc2VxdWVuY2VzIHRo YXQgcG9sbHV0ZSB0aGUKKyAgICAgICAgICAgICMgVEFQIG91dHB1dCBzdHJlYW0gKGkuZS5cMDMz Wz8xMDM0aCkuIFRoaXMgaGFwcGVucyBvbiBPcGVuQlNEIHdpdGgKKyAgICAgICAgICAgICMgcHl0 ZXN0IGZvciB1bmtub3duIHJlYXNvbnMuCisgICAgICAgICAgICAnVEVSTSc6ICcnfQogCiAKICMg VGhlIGNvbmZpZ3VyYXRpb24gdGltZSB2YWx1ZSBvZiBQR19URVNUX0VYVFJBIGlzIHN1cHBsaWVk IHZpYSBhcmd1bWVudAotLSAKMi41Mi4wCgo= --fe7bb479ab816b2671d62b71f2a30d169d1061179a59e42a904c0319224d Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v8-0003-ci-Add-MTEST_SUITES-for-optional-test-tailoring.patch Content-Type: text/x-patch; charset=utf-8; name=v8-0003-ci-Add-MTEST_SUITES-for-optional-test-tailoring.patch RnJvbSBjN2VkMTc5NmI3YmVlYWYyNGEwYjM2ZjE5MGU3NzMyNzFmMWY5ZGY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogVHVlLCAyIFNlcCAyMDI1IDE1OjM3OjUzIC0wNzAwClN1YmplY3Q6 IFtQQVRDSCB2OCAzLzddIGNpOiBBZGQgTVRFU1RfU1VJVEVTIGZvciBvcHRpb25hbCB0ZXN0IHRh aWxvcmluZwoKU2hvdWxkIG1ha2UgaXQgZWFzaWVyIHRvIGNvbnRyb2wgdGhlIHRlc3QgY3ljbGUg dGltZSBmb3IgQ2lycnVzLiBBZGQgdGhlCmRlc2lyZWQgc3VpdGVzIChyZW1lbWJlcmluZyBgLS1z dWl0ZSBzZXR1cGAhKSB0byB0aGUgdG9wLWxldmVsIGVudnZhci4KLS0tCiAuY2lycnVzLnRhc2tz LnltbCB8IDE1ICsrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygr KSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS8uY2lycnVzLnRhc2tzLnltbCBiLy5jaXJy dXMudGFza3MueW1sCmluZGV4IGI3OTViYWQwNDcwLi4zODhmNWM3NTU1NiAxMDA2NDQKLS0tIGEv LmNpcnJ1cy50YXNrcy55bWwKKysrIGIvLmNpcnJ1cy50YXNrcy55bWwKQEAgLTI4LDYgKzI4LDcg QEAgZW52OgogICAjIGVycm9ycy93YXJuaW5ncyBpbiBvbmUgcGxhY2UuCiAgIE1CVUlMRF9UQVJH RVQ6IGFsbCB0ZXN0cHJlcAogICBNVEVTVF9BUkdTOiAtLXByaW50LWVycm9ybG9ncyAtLW5vLXJl YnVpbGQgLUMgYnVpbGQKKyAgTVRFU1RfU1VJVEVTOiAjIC0tc3VpdGUgc2V0dXAgLS1zdWl0ZSBz c2wgLS1zdWl0ZSAuLi4KICAgUEdDVExUSU1FT1VUOiAxMjAgIyBhdm9pZHMgc3B1cmlvdXMgZmFp bHVyZXMgZHVyaW5nIHBhcmFsbGVsIHRlc3RzCiAgIFRFTVBfQ09ORklHOiAke0NJUlJVU19XT1JL SU5HX0RJUn0vc3JjL3Rvb2xzL2NpL3BnX2NpX2Jhc2UuY29uZgogICBQR19URVNUX0VYVFJBOiBr ZXJiZXJvcyBsZGFwIHNzbCBsaWJwcV9lbmNyeXB0aW9uIGxvYWRfYmFsYW5jZSBvYXV0aApAQCAt MjQ5LDcgKzI1MCw3IEBAIHRhc2s6CiAgICAgc3UgcG9zdGdyZXMgPDwtRU9GCiAgICAgICBzZXQg LWUKICAgICAgIHVsaW1pdCAtYyB1bmxpbWl0ZWQKLSAgICAgIG1lc29uIHRlc3QgJE1URVNUX0FS R1MgLS1udW0tcHJvY2Vzc2VzICR7VEVTVF9KT0JTfQorICAgICAgbWVzb24gdGVzdCAkTVRFU1Rf QVJHUyAtLW51bS1wcm9jZXNzZXMgJHtURVNUX0pPQlN9ICR7TVRFU1RfU1VJVEVTfQogICAgIEVP RgogCiAgICMgdGVzdCBydW5uaW5nY2hlY2ssIGZyZWVic2QgY2hvc2VuIGJlY2F1c2UgaXQncyBj dXJyZW50bHkgZmFzdCBlbm91Z2gKQEAgLTM4Nyw3ICszODgsNyBAQCB0YXNrOgogICAgIHN1IHBv c3RncmVzIDw8LUVPRgogICAgICAgc2V0IC1lCiAgICAgICB1bGltaXQgLWMgdW5saW1pdGVkCi0g ICAgICBtZXNvbiB0ZXN0ICRNVEVTVF9BUkdTIC0tbnVtLXByb2Nlc3NlcyAke1RFU1RfSk9CU30K KyAgICAgIG1lc29uIHRlc3QgJE1URVNUX0FSR1MgLS1udW0tcHJvY2Vzc2VzICR7VEVTVF9KT0JT fSAke01URVNUX1NVSVRFU30KICAgICBFT0YKIAogICBvbl9mYWlsdXJlOgpAQCAtNjAzLDcgKzYw NCw3IEBAIHRhc2s6CiAgICAgICAgIHN1IHBvc3RncmVzIDw8LUVPRgogICAgICAgICAgIHNldCAt ZQogICAgICAgICAgIHVsaW1pdCAtYyB1bmxpbWl0ZWQKLSAgICAgICAgICBtZXNvbiB0ZXN0ICRN VEVTVF9BUkdTIC0tbnVtLXByb2Nlc3NlcyAke1RFU1RfSk9CU30KKyAgICAgICAgICBtZXNvbiB0 ZXN0ICRNVEVTVF9BUkdTIC0tbnVtLXByb2Nlc3NlcyAke1RFU1RfSk9CU30gJHtNVEVTVF9TVUlU RVN9CiAgICAgICAgIEVPRgogICAgICAgICAjIHNvIHRoYXQgd2UgZG9uJ3QgdXBsb2FkIDY0Yml0 IGxvZ3MgaWYgMzJiaXQgZmFpbHMKICAgICAgICAgcm0gLXJmIGJ1aWxkLwpAQCAtNjE2LDcgKzYx Nyw3IEBAIHRhc2s6CiAgICAgICAgIHN1IHBvc3RncmVzIDw8LUVPRgogICAgICAgICAgIHNldCAt ZQogICAgICAgICAgIHVsaW1pdCAtYyB1bmxpbWl0ZWQKLSAgICAgICAgICBQWVRIT05DT0VSQ0VD TE9DQUxFPTAgTEFORz1DIG1lc29uIHRlc3QgJE1URVNUX0FSR1MgLUMgYnVpbGQtMzIgLS1udW0t cHJvY2Vzc2VzICR7VEVTVF9KT0JTfQorICAgICAgICAgIFBZVEhPTkNPRVJDRUNMT0NBTEU9MCBM QU5HPUMgbWVzb24gdGVzdCAkTVRFU1RfQVJHUyAtQyBidWlsZC0zMiAtLW51bS1wcm9jZXNzZXMg JHtURVNUX0pPQlN9ICR7TVRFU1RfU1VJVEVTfQogICAgICAgICBFT0YKIAogICAgICAgb25fZmFp bHVyZToKQEAgLTc0MCw3ICs3NDEsNyBAQCB0YXNrOgogICB0ZXN0X3dvcmxkX3NjcmlwdDogfAog ICAgIHVsaW1pdCAtYyB1bmxpbWl0ZWQgIyBkZWZhdWx0IGlzIDAKICAgICB1bGltaXQgLW4gMTAy NCAjIGRlZmF1bHQgaXMgMjU2LCBwcmV0dHkgbG93Ci0gICAgbWVzb24gdGVzdCAkTVRFU1RfQVJH UyAtLW51bS1wcm9jZXNzZXMgJHtURVNUX0pPQlN9CisgICAgbWVzb24gdGVzdCAkTVRFU1RfQVJH UyAtLW51bS1wcm9jZXNzZXMgJHtURVNUX0pPQlN9ICR7TVRFU1RfU1VJVEVTfQogCiAgIG9uX2Zh aWx1cmU6CiAgICAgPDw6ICpvbl9mYWlsdXJlX21lc29uCkBAIC04MjAsNyArODIxLDcgQEAgdGFz azoKIAogICBjaGVja193b3JsZF9zY3JpcHQ6IHwKICAgICB2Y3ZhcnNhbGwgeDY0Ci0gICAgbWVz b24gdGVzdCAlTVRFU1RfQVJHUyUgLS1udW0tcHJvY2Vzc2VzICVURVNUX0pPQlMlCisgICAgbWVz b24gdGVzdCAlTVRFU1RfQVJHUyUgLS1udW0tcHJvY2Vzc2VzICVURVNUX0pPQlMlICVNVEVTVF9T VUlURVMlCiAKICAgb25fZmFpbHVyZToKICAgICA8PDogKm9uX2ZhaWx1cmVfbWVzb24KQEAgLTg4 MSw3ICs4ODIsNyBAQCB0YXNrOgogICB1cGxvYWRfY2FjaGVzOiBjY2FjaGUKIAogICB0ZXN0X3dv cmxkX3NjcmlwdDogfAotICAgICVCQVNIJSAtYyAibWVzb24gdGVzdCAlTVRFU1RfQVJHUyUgLS1u dW0tcHJvY2Vzc2VzICVURVNUX0pPQlMlIgorICAgICVCQVNIJSAtYyAibWVzb24gdGVzdCAlTVRF U1RfQVJHUyUgLS1udW0tcHJvY2Vzc2VzICVURVNUX0pPQlMlICVNVEVTVF9TVUlURVMlIgogCiAg IG9uX2ZhaWx1cmU6CiAgICAgPDw6ICpvbl9mYWlsdXJlX21lc29uCi0tIAoyLjUyLjAKCg== --fe7bb479ab816b2671d62b71f2a30d169d1061179a59e42a904c0319224d Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v8-0004-Add-pytest-infrastructure-to-interact-with-Postgr.patch Content-Type: text/x-patch; charset=utf-8; name=v8-0004-Add-pytest-infrastructure-to-interact-with-Postgr.patch RnJvbSBiNzJiNWY1Y2Y0OTczOTRmZjJkMWFmOWQ1M2FhNDg3YjQ4Mzk0ZTIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBUdWUsIDE2IERlYyAyMDI1IDA5OjI1OjQ4ICswMTAwClN1YmplY3Q6IFtQQVRDSCB2 OCA0LzddIEFkZCBweXRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gaW50ZXJhY3Qgd2l0aCBQb3N0Z3Jl U1FMCiBzZXJ2ZXJzCgpUaGlzIGFkZHMgZnVuY3Rpb25hbGl0eSB0byB0aGUgcHl0ZXN0IGluZnJh c3RydWN0dXJlIHRoYXQgYWxsb3dzIHRlc3RzCnRvIGRvIGNvbW1vbiB0aGluZ3Mgd2l0aCBQb3N0 Z3JlU1FMIHNlcnZlcnMgbGlrZToKLSBjcmVhdGluZwotIHN0YXJ0aW5nCi0gc3RvcHBpbmcKLSBj b25uZWN0aW5nCi0gcnVubmluZyBxdWVyaWVzCi0gaGFuZGxpbmcgZXJyb3JzCgpUaGUgZ29hbCBv ZiB0aGlzIGluZnJhc3RydWN0dXJlIGlzIHRvIGJlIHNvIGVhc3kgdG8gdXNlIHRoYXQgdGhlIGFj dHVhbAp0ZXN0cyByZWFsbHkgb25seSBjb250YWluIHRoZSBsb2dpYyB0byB0ZXN0IHRoZSBiZWhh dmlvdXIgdGhhdCB0aGUgdGVzdHMKYXJlIHRlc3RpbmcsIGFzIG9wcG9zZWQgdG8gYSBidW5jaCBv ZiBib2lsZXJwbGF0ZS4gRXhhbXBsZXMgb2YgdGhpcyBhcmU6CgpUeXBlcyBnZXQgY29udmVydGVk IHRvIHRoZWlyIFB5dGhvbiBjb3VudGVyIHBhcnRzIGF1dG9tYXRpY2FsbHkuIEVycm9ycwpiZWNv bWUgYWN0dWFsIFB5dGhvbiBleGNlcHRpb25zLiBSZXN1bHRzIG9mIHF1ZXJpZXMgdGhhdCBvbmx5 IHJldHVybiBhCnNpbmdsZSByb3cgb3IgY2VsbCBhcmUgdW5wYWNrZWQgYXV0b21hdGljYWxseSwg c28geW91IGRvbid0IGhhdmUgdG8gZG8Kcm93c1swXVswXSBpZiB0aGUgcXVlcnkgb25seSByZXR1 cm5zIGEgc2luZ2xlIGNlbGwuCgpUaGUgb25seSBuZXcgdGVzdHMgdGhhdCBhcmUgcGFydCBvZiB0 aGlzIGNvbW1pdCBhcmUgdGVzdHMgdGhhdCBjb3Zlcgp0aGlzIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1 cmUgaXRzZWxmLiBJdCdzIGRlYmF0YWJsZSB3aGV0aGVyIHN1Y2ggdGVzdHMKYXJlIHVzZWZ1bCBs b25nIHRlcm0sIGJlY2F1c2UgYW55IGluZnJhc3RydWN0dXJlIHRoYXQncyB1bnVzZWQgYnkgYWN0 dWFsCnRlc3RzIHNob3VsZCBwcm9iYWJseSBub3QgZXhpc3QuIEZvciBub3cgaXQgc2VlbXMgZ29v ZCB0byB0ZXN0IHRoaXMKYmFzaWMgZnVuY3Rpb25hbGl0eSB0aG91Z2gsIGJvdGggdG8gbWFrZSBz dXJlIHdlIGRvbid0IGJyZWFrIGl0IGJlZm9yZQpjb21taXR0aW5nIGFjdHVhbCB0ZXN0cyB0aGF0 IHVzZSBpdCwgYW5kIGFsc28gYXMgYW4gZXhhbXBsZSBmb3IgcGVvcGxlCndyaXRpbmcgbmV3IHRl c3RzLgotLS0KIGRvYy9zcmMvc2dtbC9yZWdyZXNzLnNnbWwgICAgICAgICAgICAgICAgICB8ICAg NjIgKy0KIHB5cHJvamVjdC50b21sICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMg Kwogc3JjL2JhY2tlbmQvdXRpbHMvZXJyY29kZXMudHh0ICAgICAgICAgICAgIHwgICAgNSArCiBz cmMvdGVzdC9weXRlc3QvUkVBRE1FICAgICAgICAgICAgICAgICAgICAgfCAgMTQwICstCiBzcmMv dGVzdC9weXRlc3QvbGlicHEvX19pbml0X18ucHkgICAgICAgICAgfCAgIDM2ICsKIHNyYy90ZXN0 L3B5dGVzdC9saWJwcS9fY29yZS5weSAgICAgICAgICAgICB8ICA0ODkgKysrKysKIHNyYy90ZXN0 L3B5dGVzdC9saWJwcS9fZXJyb3JfYmFzZS5weSAgICAgICB8ICAgNzQgKwogc3JjL3Rlc3QvcHl0 ZXN0L2xpYnBxL19nZW5lcmF0ZWRfZXJyb3JzLnB5IHwgMjExNiArKysrKysrKysrKysrKysrKysr Kwogc3JjL3Rlc3QvcHl0ZXN0L2xpYnBxL2Vycm9ycy5weSAgICAgICAgICAgIHwgICAzOSArCiBz cmMvdGVzdC9weXRlc3QvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAgICA1ICstCiBzcmMv dGVzdC9weXRlc3QvcHlwZy9fX2luaXRfXy5weSAgICAgICAgICAgfCAgIDEwICsKIHNyYy90ZXN0 L3B5dGVzdC9weXBnL19lbnYucHkgICAgICAgICAgICAgICB8ICAgNzIgKwogc3JjL3Rlc3QvcHl0 ZXN0L3B5cGcvZml4dHVyZXMucHkgICAgICAgICAgIHwgIDMzNSArKysrCiBzcmMvdGVzdC9weXRl c3QvcHlwZy9zZXJ2ZXIucHkgICAgICAgICAgICAgfCAgNDcwICsrKysrCiBzcmMvdGVzdC9weXRl c3QvcHlwZy91dGlsLnB5ICAgICAgICAgICAgICAgfCAgIDQyICsKIHNyYy90ZXN0L3B5dGVzdC9w eXQvY29uZnRlc3QucHkgICAgICAgICAgICB8ICAgIDEgKwogc3JjL3Rlc3QvcHl0ZXN0L3B5dC90 ZXN0X2Vycm9ycy5weSAgICAgICAgIHwgICAzNCArCiBzcmMvdGVzdC9weXRlc3QvcHl0L3Rlc3Rf bGlicHEucHkgICAgICAgICAgfCAgMTcyICsrCiBzcmMvdGVzdC9weXRlc3QvcHl0L3Rlc3RfbXVs dGlfc2VydmVyLnB5ICAgfCAgIDQ2ICsKIHNyYy90ZXN0L3B5dGVzdC9weXQvdGVzdF9xdWVyeV9o ZWxwZXJzLnB5ICB8ICAzNDcgKysrKwogc3JjL3Rvb2xzL2dlbmVyYXRlX3B5dGVzdF9saWJwcV9l cnJvcnMucHkgIHwgIDE0NyArKwogMjEgZmlsZXMgY2hhbmdlZCwgNDY0MiBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9saWJw cS9fX2luaXRfXy5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9saWJwcS9f Y29yZS5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9saWJwcS9fZXJyb3Jf YmFzZS5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9saWJwcS9fZ2VuZXJh dGVkX2Vycm9ycy5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9saWJwcS9l cnJvcnMucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9weXRlc3QvcHlwZy9fX2luaXRf Xy5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9weXBnL19lbnYucHkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9weXRlc3QvcHlwZy9maXh0dXJlcy5weQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9weXBnL3NlcnZlci5weQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9weXBnL3V0aWwucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvdGVzdC9weXRlc3QvcHl0L2NvbmZ0ZXN0LnB5CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rl c3QvcHl0ZXN0L3B5dC90ZXN0X2Vycm9ycy5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0 L3B5dGVzdC9weXQvdGVzdF9saWJwcS5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5 dGVzdC9weXQvdGVzdF9tdWx0aV9zZXJ2ZXIucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVz dC9weXRlc3QvcHl0L3Rlc3RfcXVlcnlfaGVscGVycy5weQogY3JlYXRlIG1vZGUgMTAwNzU1IHNy Yy90b29scy9nZW5lcmF0ZV9weXRlc3RfbGlicHFfZXJyb3JzLnB5CgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZ3Jlc3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWdyZXNzLnNnbWwKaW5kZXgg ZDgwZGQ0NmM1ZmQuLmVhOTJlNjQwYjE5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVncmVz cy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWdyZXNzLnNnbWwKQEAgLTg0MCw3ICs4NDAsNyBA QCBmbG9hdDQ6b3V0Oi4qLS4qLWN5Z3dpbi4qPWZsb2F0NC1taXNyb3VuZGVkLWlucHV0Lm91dAog ICA8L3NlY3QxPgogCiAgIDxzZWN0MSBpZD0icmVncmVzcy10YXAiPgotICAgPHRpdGxlPlRBUCBU ZXN0czwvdGl0bGU+CisgICA8dGl0bGU+UGVybCBUQVAgVGVzdHM8L3RpdGxlPgogCiAgICA8cGFy YT4KICAgICBWYXJpb3VzIHRlc3RzLCBwYXJ0aWN1bGFybHkgdGhlIGNsaWVudCBwcm9ncmFtIHRl c3RzCkBAIC05MjksNiArOTI5LDY2IEBAIFBHX1RFU1RfTk9DTEVBTj0xIG1ha2UgLUMgc3JjL2Jp bi9wZ19kdW1wIGNoZWNrCiAKICAgPC9zZWN0MT4KIAorICA8c2VjdDEgaWQ9InJlZ3Jlc3MtcHl0 ZXN0Ij4KKyAgIDx0aXRsZT5QeXRlc3QgVGVzdHM8L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBU ZXN0cyBpbiA8ZmlsZW5hbWU+cHl0PC9maWxlbmFtZT4gZGlyZWN0b3JpZXMgdXNlIHRoZSBQeXRo b24KKyAgICA8YXBwbGljYXRpb24+cHl0ZXN0PC9hcHBsaWNhdGlvbj4gZnJhbWV3b3JrLiBUaGVz ZSB0ZXN0cyBwcm92aWRlIGEKKyAgICBjb252ZW5pZW50IHdheSB0byB0ZXN0IGxpYnBxIGNsaWVu dCBmdW5jdGlvbmFsaXR5IGFuZCBzY2VuYXJpb3MgcmVxdWlyaW5nCisgICAgbXVsdGlwbGUgUG9z dGdyZVNRTCBzZXJ2ZXIgaW5zdGFuY2VzLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBU aGUgcHl0ZXN0IHRlc3RzIHJlcXVpcmUgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3Ru YW1lPiB0byBiZQorICAgIGNvbmZpZ3VyZWQgd2l0aCB0aGUgb3B0aW9uIDxvcHRpb24+LS1lbmFi bGUtcHl0ZXN0PC9vcHRpb24+IChvcgorICAgIDxvcHRpb24+LURweXRlc3Q9ZW5hYmxlZDwvb3B0 aW9uPiBmb3IgTWVzb24gYnVpbGRzKS4gWW91IGFsc28gbmVlZAorICAgIDxhcHBsaWNhdGlvbj5w eXRlc3Q8L2FwcGxpY2F0aW9uPiBpbnN0YWxsZWQuIFlvdSBjYW4gZWl0aGVyIGluc3RhbGwgaXQK KyAgICBzeXN0ZW0td2lkZSwgb3IgY3JlYXRlIGEgdmlydHVhbCBlbnZpcm9ubWVudCBpbiB0aGUg c291cmNlIGRpcmVjdG9yeToKKzxwcm9ncmFtbGlzdGluZz4KK3B5dGhvbiAtbSB2ZW52IC52ZW52 CisudmVudi9iaW4vcGlwIGluc3RhbGwgLgorPC9wcm9ncmFtbGlzdGluZz4KKyAgICBBbHRlcm5h dGl2ZWx5LCBpZiB5b3UgaGF2ZSA8YXBwbGljYXRpb24+dXY8L2FwcGxpY2F0aW9uPiBpbnN0YWxs ZWQ6Cis8cHJvZ3JhbWxpc3Rpbmc+Cit1diBzeW5jCis8L3Byb2dyYW1saXN0aW5nPgorICAgPC9w YXJhPgorCisgICA8cGFyYT4KKyAgICBXaXRoIE1lc29uIGJ1aWxkcywgeW91IGNhbiBydW4gdGhl IHB5dGVzdCB0ZXN0cyB1c2luZzoKKzxwcm9ncmFtbGlzdGluZz4KK21lc29uIHRlc3QgLS1zdWl0 ZSBweXRlc3QKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgV2l0aCBhdXRvY29uZi1iYXNlZCBidWls ZHMsIHlvdSBjYW4gcnVuIHRoZW0gZnJvbSB0aGUKKyAgICA8ZmlsZW5hbWU+c3JjL3Rlc3QvcHl0 ZXN0PC9maWxlbmFtZT4gZGlyZWN0b3J5IHVzaW5nOgorPHByb2dyYW1saXN0aW5nPgorbWFrZSBj aGVjaworPC9wcm9ncmFtbGlzdGluZz4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgWW91 IGNhbiBhbHNvIHJ1biBzcGVjaWZpYyB0ZXN0IGZpbGVzIGRpcmVjdGx5IHVzaW5nIHB5dGVzdDoK Kzxwcm9ncmFtbGlzdGluZz4KK3B5dGVzdCBzcmMvdGVzdC9weXRlc3QvcHl0L3Rlc3RfbGlicHEu cHkKK3B5dGVzdCAtayAidGVzdF9jb25uc3RyIgorPC9wcm9ncmFtbGlzdGluZz4KKyAgIDwvcGFy YT4KKworICAgPHBhcmE+CisgICAgTWFueSBvcGVyYXRpb25zIGluIHRoZSB0ZXN0IHN1aXRlcyB1 c2UgYSAxODAtc2Vjb25kIHRpbWVvdXQsIHdoaWNoIG9uIHNsb3cKKyAgICBob3N0cyBtYXkgbGVh ZCB0byBsb2FkLWluZHVjZWQgdGltZW91dHMuICBTZXR0aW5nIHRoZSBlbnZpcm9ubWVudCB2YXJp YWJsZQorICAgIDx2YXJuYW1lPlBHX1RFU1RfVElNRU9VVF9ERUZBVUxUPC92YXJuYW1lPiB0byBh IGhpZ2hlciBudW1iZXIgd2lsbCBjaGFuZ2UKKyAgICB0aGUgZGVmYXVsdCB0byBhdm9pZCB0aGlz LgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB3 cml0aW5nIHB5dGVzdCB0ZXN0cywgc2VlIHRoZQorICAgIDxmaWxlbmFtZT5zcmMvdGVzdC9weXRl c3QvUkVBRE1FPC9maWxlbmFtZT4gZmlsZS4KKyAgIDwvcGFyYT4KKworICA8L3NlY3QxPgorCiAg IDxzZWN0MSBpZD0icmVncmVzcy1jb3ZlcmFnZSI+CiAgICA8dGl0bGU+VGVzdCBDb3ZlcmFnZSBF eGFtaW5hdGlvbjwvdGl0bGU+CiAKZGlmZiAtLWdpdCBhL3B5cHJvamVjdC50b21sIGIvcHlwcm9q ZWN0LnRvbWwKaW5kZXggNjBhYmI0ZDA2NTUuLjQ2MjhkMjI3NGUwIDEwMDY0NAotLS0gYS9weXBy b2plY3QudG9tbAorKysgYi9weXByb2plY3QudG9tbApAQCAtMTksMyArMTksNiBAQCBtaW52ZXJz aW9uID0gIjcuMCIKIAogIyBDb21tb24gdGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBoZXJlLgogcHl0 aG9ucGF0aCA9IFsic3JjL3Rlc3QvcHl0ZXN0Il0KKworIyBMb2FkIHRoZSBzaGFyZWQgZml4dHVy ZXMgcGx1Z2luCithZGRvcHRzID0gWyItcCIsICJweXBnLmZpeHR1cmVzIl0KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2VycmNvZGVzLnR4dCBiL3NyYy9iYWNrZW5kL3V0aWxzL2VycmNv ZGVzLnR4dAppbmRleCA1YjI1NDAyZWJiZS4uYjFkMGFkNGJhZjQgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2VycmNvZGVzLnR4dAorKysgYi9zcmMvYmFja2VuZC91dGlscy9lcnJjb2Rl cy50eHQKQEAgLTIxLDYgKzIxLDExIEBACiAjICAgZG9jL3NyYy9zZ21sL2VycmNvZGVzLXRhYmxl LnNnbWwKICMgICAgICBhIFNHTUwgdGFibGUgb2YgZXJyb3IgY29kZXMgZm9yIGluY2x1c2lvbiBp biB0aGUgZG9jdW1lbnRhdGlvbgogIworIyAgIHNyYy90ZXN0L3B5dGVzdC9saWJwcS9fZ2VuZXJh dGVkX2Vycm9ycy5weQorIyAgICAgIFB5dGhvbiBleGNlcHRpb24gY2xhc3NlcyBmb3IgdGhlIHB5 dGVzdCBsaWJwcSB3cmFwcGVyCisjICAgICAgTm90ZTogVGhpcyBuZWVkcyB0byBiZSBtYW51YWxs eSByZWdlbmVyYXRlZCBieSBydW5uaW5nCisjICAgICAgc3JjL3Rvb2xzL2dlbmVyYXRlX3B5dGVz dF9saWJwcV9lcnJvcnMucHkKKyMKICMgVGhlIGZvcm1hdCBvZiB0aGlzIGZpbGUgaXMgb25lIGVy cm9yIGNvZGUgcGVyIGxpbmUsIHdpdGggdGhlIGZvbGxvd2luZwogIyB3aGl0ZXNwYWNlLXNlcGFy YXRlZCBmaWVsZHM6CiAjCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9weXRlc3QvUkVBRE1FIGIvc3Jj L3Rlc3QvcHl0ZXN0L1JFQURNRQppbmRleCAxMzMzZWQ3N2I3ZS4uOWRjNTBjYTExMWYgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3B5dGVzdC9SRUFETUUKKysrIGIvc3JjL3Rlc3QvcHl0ZXN0L1JFQURN RQpAQCAtMSArMSwxMzkgQEAKLVRPRE8KK3NyYy90ZXN0L3B5dGVzdC9SRUFETUUKKworUHl0ZXN0 LWJhc2VkIHRlc3RzCis9PT09PT09PT09PT09PT09PT0KKworVGhpcyBkaXJlY3RvcnkgY29udGFp bnMgaW5mcmFzdHJ1Y3R1cmUgZm9yIFB5dGhvbi1iYXNlZCB0ZXN0cyB1c2luZyBweXRlc3QsCith bG9uZyB3aXRoIHNvbWUgY29yZSB0ZXN0cyBmb3IgdGhlIHB5dGVzdCBpbmZyYXN0cnVjdHVyZSBp dHNlbGYuIFRoZSBmcmFtZXdvcmsKK3Byb3ZpZGVzIGZpeHR1cmVzIGZvciBtYW5hZ2luZyBQb3N0 Z3JlU1FMIHNlcnZlciBpbnN0YW5jZXMgYW5kIGNvbm5lY3RpbmcgdG8KK3RoZW0gdmlhIGxpYnBx LgorCisKK1J1bm5pbmcgdGhlIHRlc3RzCis9PT09PT09PT09PT09PT09PQorCitOT1RFOiBZb3Ug bXVzdCBoYXZlIGdpdmVuIHRoZSAtLWVuYWJsZS1weXRlc3QgYXJndW1lbnQgdG8gY29uZmlndXJl IChvcgorLURweXRlc3Q9ZW5hYmxlZCBmb3IgTWVzb24gYnVpbGRzKS4gWW91IGFsc28gbmVlZCB0 byBoYXZlIGVpdGhlciBweXRlc3Qgb3IgdXYKK2FscmVhZHkgaW5zdGFsbGVkLgorCitXaXRoIE1l c29uIGJ1aWxkcywgeW91IGNhbiBydW46CisgICAgbWVzb24gdGVzdCAtLXN1aXRlIHB5dGVzdAor CitXaXRoIGF1dG9jb25mIGJhc2VkIGJ1aWxkcywgeW91IGNhbiBydW46CisgICAgbWFrZSBjaGVj aworb3IKKyAgICBtYWtlIGluc3RhbGxjaGVjaworCitZb3UgY2FuIHJ1biBzcGVjaWZpYyB0ZXN0 IGZpbGVzIGFuZC9vciB1c2UgcHl0ZXN0J3MgLWsgb3B0aW9uIHRvIHNlbGVjdCB0ZXN0czoKKyAg ICBweXRlc3Qgc3JjL3Rlc3QvcHl0ZXN0L3B5dC90ZXN0X2xpYnBxLnB5CisgICAgcHl0ZXN0IC1r ICJ0ZXN0X2Nvbm5zdHIiCisKKworRGlyZWN0b3J5IHN0cnVjdHVyZQorPT09PT09PT09PT09PT09 PT09PQorCitweXBnLworICAgIFB5dGhvbiBsaWJyYXJ5IHByb3ZpZGluZyBjb21tb24gZnVuY3Rp b25zIGFuZCBweXRlc3QgZml4dHVyZXMgdGhhdCBjYW4gYmUKKyAgICB1c2VkIGluIHRlc3RzLgor CitsaWJwcS8KKyAgICBBIHNpbXBsZSBidXQgdXNlci1mcmllbmRseSBweXRob24gd3JhcHBlciBh cm91bmQgbGlicHEKKworcHl0LworICAgIFRlc3RzIGZvciB0aGUgcHl0ZXN0IGluZnJhc3RydWN0 dXJlIGl0c2VsZgorCitwZ3RhcC5weQorICAgIEEgcHl0ZXN0IHBsdWdpbiB0byBvdXRwdXQgcmVz dWx0cyBpbiBUQVAgZm9ybWF0CisKKworV3JpdGluZyB0ZXN0cworPT09PT09PT09PT09PQorCitU ZXN0cyB1c2UgcHl0ZXN0IGZpeHR1cmVzIHRvIG1hbmFnZSBzZXJ2ZXIgaW5zdGFuY2VzIGFuZCBj b25uZWN0aW9ucy4gVGhlCittb3N0IGNvbW1vbmx5IHVzZWQgZml4dHVyZXMgYXJlOgorCitwZwor ICAgIEEgUG9zdGdyZXNTZXJ2ZXIgaW5zdGFuY2UgY29uZmlndXJlZCBmb3IgdGhlIGN1cnJlbnQg dGVzdC4gVXNlIHRoaXMgZm9yCisgICAgY3JlYXRpbmcgdGVzdCB1c2Vycy9kYXRhYmFzZXMgb3Ig bW9kaWZ5aW5nIHNlcnZlciBjb25maWd1cmF0aW9uLiBDaGFuZ2VzCisgICAgYXJlIGF1dG9tYXRp Y2FsbHkgcm9sbGVkIGJhY2sgYWZ0ZXIgdGhlIHRlc3QuCisKK2Nvbm4KKyAgICBBIGNvbm5lY3Rl ZCBQR2Nvbm4gaW5zdGFuY2UgdG8gdGhlIHRlc3Qgc2VydmVyLiBBdXRvbWF0aWNhbGx5IGNsZWFu ZWQgdXAKKyAgICBhZnRlciB0aGUgdGVzdC4KKworY29ubmVjdAorICAgIEEgZnVuY3Rpb24gdG8g Y3JlYXRlIGFkZGl0aW9uYWwgY29ubmVjdGlvbnMgd2l0aCBjdXN0b20gb3B0aW9ucy4KKworY3Jl YXRlX3BnCisgICAgQSBmYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBhZGRpdGlvbmFsIFBvc3Rn cmVTUUwgc2VydmVycyB3aXRoaW4gYSB0ZXN0LgorICAgIFNlcnZlcnMgYXJlIGF1dG9tYXRpY2Fs bHkgY2xlYW5lZCB1cCBhdCB0aGUgZW5kIG9mIHRoZSB0ZXN0LiBVc2VmdWwgZm9yCisgICAgdGVz dGluZyBzY2VuYXJpb3MgdGhhdCByZXF1aXJlIG11bHRpcGxlIGluZGVwZW5kZW50IHNlcnZlcnMu CisKK2NyZWF0ZV9wZ19tb2R1bGUKKyAgICBMaWtlIGNyZWF0ZV9wZywgYnV0IHNlcnZlcnMgcGVy c2lzdCBmb3IgdGhlIGVudGlyZSB0ZXN0IG1vZHVsZS4gVXNlIHRoaXMKKyAgICB3aGVuIG11bHRp cGxlIHRlc3RzIGluIGEgbW9kdWxlIGNhbiBzaGFyZSB0aGUgc2FtZSBzZXJ2ZXJzLCB3aGljaCBp cworICAgIGZhc3RlciB0aGFuIGNyZWF0aW5nIG5ldyBzZXJ2ZXJzIGZvciBlYWNoIHRlc3QuCisK KworRXhhbXBsZSB0ZXN0OgorCisgICAgZGVmIHRlc3Rfc2ltcGxlX3F1ZXJ5KGNvbm4pOgorICAg ICAgICByZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNUIDEgKyAxIikKKyAgICAgICAgYXNzZXJ0IHJl c3VsdCA9PSAyCisKKyAgICBkZWYgdGVzdF93aXRoX3VzZXIocGcpOgorICAgICAgICB1c2VycyA9 IHBnLmNyZWF0ZV91c2VycygidGVzdCIpCisgICAgICAgIHdpdGggcGcucmVsb2FkaW5nKCkgYXMg czoKKyAgICAgICAgICAgIHMuaGJhLnByZXBlbmQoWyJsb2NhbCIsICJhbGwiLCB1c2Vyc1sidGVz dCJdLCAidHJ1c3QiXSkKKworICAgICAgICBjb25uID0gcGcuY29ubmVjdCh1c2VyPXVzZXJzWyJ0 ZXN0Il0pCisgICAgICAgIGFzc2VydCBjb25uLnNxbCgiU0VMRUNUIGN1cnJlbnRfdXNlciIpID09 IHVzZXJzWyJ0ZXN0Il0KKworICAgIGRlZiB0ZXN0X211bHRpcGxlX3NlcnZlcnMoY3JlYXRlX3Bn KToKKyAgICAgICAgbm9kZTEgPSBjcmVhdGVfcGcoInByaW1hcnkiKQorICAgICAgICBub2RlMiA9 IGNyZWF0ZV9wZygic2Vjb25kYXJ5IikKKworICAgICAgICBjb25uMSA9IG5vZGUxLmNvbm5lY3Qo KQorICAgICAgICBjb25uMiA9IG5vZGUyLmNvbm5lY3QoKQorCisgICAgICAgICMgRWFjaCBzZXJ2 ZXIgaXMgaW5kZXBlbmRlbnQKKyAgICAgICAgYXNzZXJ0IG5vZGUxLnBvcnQgIT0gbm9kZTIucG9y dAorCisKK1NlcnZlciBjb25maWd1cmF0aW9uCis9PT09PT09PT09PT09PT09PT09PQorCitUZXN0 cyBjYW4gdGVtcG9yYXJpbHkgbW9kaWZ5IHNlcnZlciBjb25maWd1cmF0aW9uIHVzaW5nIGNvbnRl eHQgbWFuYWdlcnM6CisKKyAgICB3aXRoIHBnLnJlbG9hZGluZygpIGFzIHM6CisgICAgICAgIHMu Y29uZi5zZXQobG9nX2Nvbm5lY3Rpb25zPSJvbiIpCisgICAgICAgIHMuaGJhLnByZXBlbmQoImxv Y2FsIGFsbCBhbGwgdHJ1c3QiKQorICAgICAgICAjIFNlcnZlciBpcyByZWxvYWRlZCBoZXJlCisg ICAgIyBBZnRlciB0aGUgdGVzdCBmaW5pc2hlZCB0aGUgb3JpZ2luYWwgY29uZmlndXJhdGlvbiBp cyByZXN0b3JlZCBhbmQKKyAgICAjIHRoZSBzZXJ2ZXIgaXMgcmVsb2FkZWQgYWdhaW4KKworVXNl IHBnLnJlc3RhcnRpbmcoKSBpbnN0ZWFkIGlmIHRoZSBjb25maWd1cmF0aW9uIGNoYW5nZSByZXF1 aXJlcyBhIHJlc3RhcnQuCisKKworVGltZW91dHMKKz09PT09PT09CisKK1Rlc3RzIGluaGVyaXQg dGhlIFBHX1RFU1RfVElNRU9VVF9ERUZBVUxUIGVudmlyb25tZW50IHZhcmlhYmxlIChkZWZhdWx0 aW5nCit0byAxODAgc2Vjb25kcykuIFRoZSByZW1haW5pbmdfdGltZW91dCBmaXh0dXJlIHByb3Zp ZGVzIGEgZnVuY3Rpb24gdGhhdAorcmV0dXJucyBob3cgbXVjaCB0aW1lIHJlbWFpbnMgZm9yIHRo ZSBjdXJyZW50IHRlc3QuCisKKworRW52aXJvbm1lbnQgdmFyaWFibGVzCis9PT09PT09PT09PT09 PT09PT09PT0KKworUEdfVEVTVF9USU1FT1VUX0RFRkFVTFQKKyAgICBQZXItdGVzdCB0aW1lb3V0 IGluIHNlY29uZHMgKGRlZmF1bHQ6IDE4MCkKKworUEdfQ09ORklHCisgICAgUGF0aCB0byBwZ19j b25maWcgKGRlZmF1bHQ6IHVzZXMgUEFUSCkKKworVEVTVERBVEFESVIKKyAgICBEaXJlY3Rvcnkg Zm9yIHRlc3QgZGF0YSAoZGVmYXVsdDogcHl0ZXN0IHRlbXAgZGlyZWN0b3J5KQorCitQR19URVNU X0VYVFJBCisgICAgU3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2Ygb3B0aW9uYWwgdGVzdCBjYXRlZ29y aWVzIHRvIHJ1biAoZS5nLiwgInNzbCIpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9weXRlc3QvbGli cHEvX19pbml0X18ucHkgYi9zcmMvdGVzdC9weXRlc3QvbGlicHEvX19pbml0X18ucHkKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNiNGQxOGI2MjA2Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjL3Rlc3QvcHl0ZXN0L2xpYnBxL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMzYg QEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAorCisiIiIKK2xpYnBxIHRlc3RpbmcgdXRpbGl0aWVzIC0gY3R5cGVzIGJpbmRpbmdzIGFu ZCBoZWxwZXJzIGZvciBQb3N0Z3JlU1FMJ3MgbGlicHEgbGlicmFyeS4KKworVGhpcyBtb2R1bGUg cHJvdmlkZXMgUHl0aG9uIHdyYXBwZXJzIGFyb3VuZCBsaWJwcSBmb3IgdXNlIGluIHB5dGVzdCB0 ZXN0cy4KKyIiIgorCitmcm9tIC4gaW1wb3J0IGVycm9ycworZnJvbSAuZXJyb3JzIGltcG9ydCBM aWJwcUVycm9yLCBMaWJwcVdhcm5pbmcKK2Zyb20gLl9jb3JlIGltcG9ydCAoCisgICAgQ29ubmVj dGlvblN0YXR1cywKKyAgICBEaWFnRmllbGQsCisgICAgRXhlY1N0YXR1cywKKyAgICBQR2Nvbm4s CisgICAgUEdyZXN1bHQsCisgICAgY29ubmVjdCwKKyAgICBjb25uc3RyLAorICAgIGxvYWRfbGli cHFfaGFuZGxlLAorICAgIHJlZ2lzdGVyX3R5cGVfaW5mbywKKykKKworX19hbGxfXyA9IFsKKyAg ICAiZXJyb3JzIiwKKyAgICAiTGlicHFFcnJvciIsCisgICAgIkxpYnBxV2FybmluZyIsCisgICAg IkNvbm5lY3Rpb25TdGF0dXMiLAorICAgICJEaWFnRmllbGQiLAorICAgICJFeGVjU3RhdHVzIiwK KyAgICAiUEdjb25uIiwKKyAgICAiUEdyZXN1bHQiLAorICAgICJjb25uZWN0IiwKKyAgICAiY29u bnN0ciIsCisgICAgImxvYWRfbGlicHFfaGFuZGxlIiwKKyAgICAicmVnaXN0ZXJfdHlwZV9pbmZv IiwKK10KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVzdC9saWJwcS9fY29yZS5weSBiL3NyYy90 ZXN0L3B5dGVzdC9saWJwcS9fY29yZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uMGQ3Nzk5NmQ1NzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9weXRlc3Qv bGlicHEvX2NvcmUucHkKQEAgLTAsMCArMSw0ODkgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1LCBQ b3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCisiIiIKK0NvcmUgbGlicHEgZnVu Y3Rpb25hbGl0eSAtIGN0eXBlcyBiaW5kaW5ncyBhbmQgY29ubmVjdGlvbiBoYW5kbGluZy4KKyIi IgorCitpbXBvcnQgY29udGV4dGxpYgoraW1wb3J0IGN0eXBlcworaW1wb3J0IGRhdGV0aW1lCitp bXBvcnQgZGVjaW1hbAoraW1wb3J0IGVudW0KK2ltcG9ydCBqc29uCitpbXBvcnQgcGxhdGZvcm0K K2ltcG9ydCBvcworaW1wb3J0IHV1aWQKK2Zyb20gdHlwaW5nIGltcG9ydCBBbnksIENhbGxhYmxl LCBEaWN0LCBPcHRpb25hbAorCitmcm9tIC5lcnJvcnMgaW1wb3J0IExpYnBxRXJyb3IsIG1ha2Vf ZXJyb3IKKworCisjIFBHX0RJQUcgZmllbGQgaWRlbnRpZmllcnMgZnJvbSBwb3N0Z3Jlc19leHQu aAorY2xhc3MgRGlhZ0ZpZWxkKGVudW0uSW50RW51bSk6CisgICAgU0VWRVJJVFkgPSBvcmQoIlMi KQorICAgIFNFVkVSSVRZX05PTkxPQ0FMSVpFRCA9IG9yZCgiViIpCisgICAgU1FMU1RBVEUgPSBv cmQoIkMiKQorICAgIE1FU1NBR0VfUFJJTUFSWSA9IG9yZCgiTSIpCisgICAgTUVTU0FHRV9ERVRB SUwgPSBvcmQoIkQiKQorICAgIE1FU1NBR0VfSElOVCA9IG9yZCgiSCIpCisgICAgU1RBVEVNRU5U X1BPU0lUSU9OID0gb3JkKCJQIikKKyAgICBJTlRFUk5BTF9QT1NJVElPTiA9IG9yZCgicCIpCisg ICAgSU5URVJOQUxfUVVFUlkgPSBvcmQoInEiKQorICAgIENPTlRFWFQgPSBvcmQoIlciKQorICAg IFNDSEVNQV9OQU1FID0gb3JkKCJzIikKKyAgICBUQUJMRV9OQU1FID0gb3JkKCJ0IikKKyAgICBD T0xVTU5fTkFNRSA9IG9yZCgiYyIpCisgICAgREFUQVRZUEVfTkFNRSA9IG9yZCgiZCIpCisgICAg Q09OU1RSQUlOVF9OQU1FID0gb3JkKCJuIikKKyAgICBTT1VSQ0VfRklMRSA9IG9yZCgiRiIpCisg ICAgU09VUkNFX0xJTkUgPSBvcmQoIkwiKQorICAgIFNPVVJDRV9GVU5DVElPTiA9IG9yZCgiUiIp CisKKworY2xhc3MgQ29ubmVjdGlvblN0YXR1cyhlbnVtLkludEVudW0pOgorICAgICIiIlBvc3Rn cmVTUUwgY29ubmVjdGlvbiBzdGF0dXMgY29kZXMgZnJvbSBsaWJwcS4iIiIKKworICAgIENPTk5F Q1RJT05fT0sgPSAwCisgICAgQ09OTkVDVElPTl9CQUQgPSAxCisKKworY2xhc3MgRXhlY1N0YXR1 cyhlbnVtLkludEVudW0pOgorICAgICIiIlBvc3RncmVTUUwgcmVzdWx0IHN0YXR1cyBjb2RlcyBm cm9tIFBRcmVzdWx0U3RhdHVzLiIiIgorCisgICAgUEdSRVNfRU1QVFlfUVVFUlkgPSAwCisgICAg UEdSRVNfQ09NTUFORF9PSyA9IDEKKyAgICBQR1JFU19UVVBMRVNfT0sgPSAyCisgICAgUEdSRVNf Q09QWV9PVVQgPSAzCisgICAgUEdSRVNfQ09QWV9JTiA9IDQKKyAgICBQR1JFU19CQURfUkVTUE9O U0UgPSA1CisgICAgUEdSRVNfTk9ORkFUQUxfRVJST1IgPSA2CisgICAgUEdSRVNfRkFUQUxfRVJS T1IgPSA3CisgICAgUEdSRVNfQ09QWV9CT1RIID0gOAorICAgIFBHUkVTX1NJTkdMRV9UVVBMRSA9 IDkKKyAgICBQR1JFU19QSVBFTElORV9TWU5DID0gMTAKKyAgICBQR1JFU19QSVBFTElORV9BQk9S VEVEID0gMTEKKworCitjbGFzcyBfUEdjb25uKGN0eXBlcy5TdHJ1Y3R1cmUpOgorICAgIHBhc3MK KworCitjbGFzcyBfUEdyZXN1bHQoY3R5cGVzLlN0cnVjdHVyZSk6CisgICAgcGFzcworCisKK19Q R2Nvbm5fcCA9IGN0eXBlcy5QT0lOVEVSKF9QR2Nvbm4pCitfUEdyZXN1bHRfcCA9IGN0eXBlcy5Q T0lOVEVSKF9QR3Jlc3VsdCkKKworCitkZWYgbG9hZF9saWJwcV9oYW5kbGUobGliZGlyLCBiaW5k aXIpOgorICAgICIiIgorICAgIExvYWRzIGEgY3R5cGVzIGhhbmRsZSBmb3IgbGlicHEuIFNvbWUg Y29tbW9uIGZ1bmN0aW9uIHByb3RvdHlwZXMgYXJlCisgICAgaW5pdGlhbGl6ZWQgZm9yIGdlbmVy YWwgdXNlLgorICAgICIiIgorICAgIHN5c3RlbSA9IHBsYXRmb3JtLnN5c3RlbSgpCisKKyAgICBp ZiBzeXN0ZW0gaW4gKCJMaW51eCIsICJGcmVlQlNEIiwgIk5ldEJTRCIsICJPcGVuQlNEIik6Cisg ICAgICAgIG5hbWUgPSAibGlicHEuc28uNSIKKyAgICBlbGlmIHN5c3RlbSA9PSAiRGFyd2luIjoK KyAgICAgICAgbmFtZSA9ICJsaWJwcS41LmR5bGliIgorICAgIGVsaWYgc3lzdGVtID09ICJXaW5k b3dzIjoKKyAgICAgICAgbmFtZSA9ICJsaWJwcS5kbGwiCisgICAgZWxzZToKKyAgICAgICAgYXNz ZXJ0IEZhbHNlLCBmInRoZSBsaWJwcSBmaXh0dXJlIG11c3QgYmUgdXBkYXRlZCBmb3Ige3N5c3Rl bX0iCisKKyAgICBpZiBzeXN0ZW0gPT0gIldpbmRvd3MiOgorICAgICAgICAjIE9uIFdpbmRvd3Ms IGxpYnBxLmRsbCBpcyBjb25mdXNpbmdseSBpbiBiaW5kaXIsIG5vdCBsaWJkaXIuIEFuZCB3ZQor ICAgICAgICAjIG5lZWQgdG8gYWRkIHRoaXMgZGlyZWN0b3J5IHRoZSB0aGUgc2VhcmNoIHBhdGgu CisgICAgICAgIGxpYnBxX3BhdGggPSBvcy5wYXRoLmpvaW4oYmluZGlyLCBuYW1lKQorICAgICAg ICBsaWIgPSBjdHlwZXMuQ0RMTChsaWJwcV9wYXRoKQorICAgIGVsc2U6CisgICAgICAgIGxpYnBx X3BhdGggPSBvcy5wYXRoLmpvaW4obGliZGlyLCBuYW1lKQorICAgICAgICBsaWIgPSBjdHlwZXMu Q0RMTChsaWJwcV9wYXRoKQorCisgICAgIworICAgICMgRnVuY3Rpb24gUHJvdG90eXBlcworICAg ICMKKworICAgIGxpYi5QUWNvbm5lY3RkYi5yZXN0eXBlID0gX1BHY29ubl9wCisgICAgbGliLlBR Y29ubmVjdGRiLmFyZ3R5cGVzID0gW2N0eXBlcy5jX2NoYXJfcF0KKworICAgIGxpYi5QUXN0YXR1 cy5yZXN0eXBlID0gY3R5cGVzLmNfaW50CisgICAgbGliLlBRc3RhdHVzLmFyZ3R5cGVzID0gW19Q R2Nvbm5fcF0KKworICAgIGxpYi5QUWV4ZWMucmVzdHlwZSA9IF9QR3Jlc3VsdF9wCisgICAgbGli LlBRZXhlYy5hcmd0eXBlcyA9IFtfUEdjb25uX3AsIGN0eXBlcy5jX2NoYXJfcF0KKworICAgIGxp Yi5QUXJlc3VsdFN0YXR1cy5yZXN0eXBlID0gY3R5cGVzLmNfaW50CisgICAgbGliLlBRcmVzdWx0 U3RhdHVzLmFyZ3R5cGVzID0gW19QR3Jlc3VsdF9wXQorCisgICAgbGliLlBRY2xlYXIucmVzdHlw ZSA9IE5vbmUKKyAgICBsaWIuUFFjbGVhci5hcmd0eXBlcyA9IFtfUEdyZXN1bHRfcF0KKworICAg IGxpYi5QUWVycm9yTWVzc2FnZS5yZXN0eXBlID0gY3R5cGVzLmNfY2hhcl9wCisgICAgbGliLlBR ZXJyb3JNZXNzYWdlLmFyZ3R5cGVzID0gW19QR2Nvbm5fcF0KKworICAgIGxpYi5QUWZpbmlzaC5y ZXN0eXBlID0gTm9uZQorICAgIGxpYi5QUWZpbmlzaC5hcmd0eXBlcyA9IFtfUEdjb25uX3BdCisK KyAgICBsaWIuUFFyZXN1bHRFcnJvck1lc3NhZ2UucmVzdHlwZSA9IGN0eXBlcy5jX2NoYXJfcAor ICAgIGxpYi5QUXJlc3VsdEVycm9yTWVzc2FnZS5hcmd0eXBlcyA9IFtfUEdyZXN1bHRfcF0KKwor ICAgIGxpYi5QUW50dXBsZXMucmVzdHlwZSA9IGN0eXBlcy5jX2ludAorICAgIGxpYi5QUW50dXBs ZXMuYXJndHlwZXMgPSBbX1BHcmVzdWx0X3BdCisKKyAgICBsaWIuUFFuZmllbGRzLnJlc3R5cGUg PSBjdHlwZXMuY19pbnQKKyAgICBsaWIuUFFuZmllbGRzLmFyZ3R5cGVzID0gW19QR3Jlc3VsdF9w XQorCisgICAgbGliLlBRZ2V0dmFsdWUucmVzdHlwZSA9IGN0eXBlcy5jX2NoYXJfcAorICAgIGxp Yi5QUWdldHZhbHVlLmFyZ3R5cGVzID0gW19QR3Jlc3VsdF9wLCBjdHlwZXMuY19pbnQsIGN0eXBl cy5jX2ludF0KKworICAgIGxpYi5QUWdldGlzbnVsbC5yZXN0eXBlID0gY3R5cGVzLmNfaW50Cisg ICAgbGliLlBRZ2V0aXNudWxsLmFyZ3R5cGVzID0gW19QR3Jlc3VsdF9wLCBjdHlwZXMuY19pbnQs IGN0eXBlcy5jX2ludF0KKworICAgIGxpYi5QUWZ0eXBlLnJlc3R5cGUgPSBjdHlwZXMuY191aW50 CisgICAgbGliLlBRZnR5cGUuYXJndHlwZXMgPSBbX1BHcmVzdWx0X3AsIGN0eXBlcy5jX2ludF0K KworICAgIGxpYi5QUXJlc3VsdEVycm9yRmllbGQucmVzdHlwZSA9IGN0eXBlcy5jX2NoYXJfcAor ICAgIGxpYi5QUXJlc3VsdEVycm9yRmllbGQuYXJndHlwZXMgPSBbX1BHcmVzdWx0X3AsIGN0eXBl cy5jX2ludF0KKworICAgIHJldHVybiBsaWIKKworCisjIFBvc3RncmVTUUwgdHlwZSBPSURzIGFu ZCBjb252ZXJzaW9uIHN5c3RlbQorIyBUeXBlIHJlZ2lzdHJ5IC0gbWFwcyBPSUQgdG8gY29udmVy dGVyIGZ1bmN0aW9uCitfdHlwZV9jb252ZXJ0ZXJzOiBEaWN0W2ludCwgQ2FsbGFibGVbW3N0cl0s IEFueV1dID0ge30KK19hcnJheV90b19lbGVtX21hcDogRGljdFtpbnQsIGludF0gPSB7fQorCisK K2RlZiByZWdpc3Rlcl90eXBlX2luZm8oCisgICAgbmFtZTogc3RyLCBvaWQ6IGludCwgYXJyYXlf b2lkOiBpbnQsIGNvbnZlcnRlcjogQ2FsbGFibGVbW3N0cl0sIEFueV0KKyk6CisgICAgIiIiCisg ICAgUmVnaXN0ZXIgYSBQb3N0Z3JlU1FMIHR5cGUgd2l0aCBpdHMgT0lELCBhcnJheSBPSUQsIGFu ZCBjb252ZXJzaW9uIGZ1bmN0aW9uLgorCisgICAgVXNhZ2U6CisgICAgICAgIHJlZ2lzdGVyX3R5 cGVfaW5mbygiYm9vbCIsIDE2LCAxMDAwLCBsYW1iZGEgdjogdiA9PSAidCIpCisgICAgIiIiCisg ICAgX3R5cGVfY29udmVydGVyc1tvaWRdID0gY29udmVydGVyCisgICAgaWYgYXJyYXlfb2lkIGlz IG5vdCBOb25lOgorICAgICAgICBfYXJyYXlfdG9fZWxlbV9tYXBbYXJyYXlfb2lkXSA9IG9pZAor CisKK2RlZiBfcGFyc2VfYXJyYXkodmFsdWU6IHN0ciwgZWxlbV9vaWQ6IGludCk6CisgICAgIiIi UGFyc2UgUG9zdGdyZVNRTCBhcnJheSBzeW50YXggaW50byBuZXN0ZWQgUHl0aG9uIGxpc3RzLiIi IgorICAgIHN0YWNrOiBsaXN0W2xpc3RdID0gW10KKyAgICBjdXJyZW50X2VsZW1lbnQ6IGxpc3Rb c3RyXSA9IFtdCisgICAgaW5fcXVvdGVzID0gRmFsc2UKKyAgICB3YXNfcXVvdGVkID0gRmFsc2UK KyAgICBwb3MgPSAwCisKKyAgICB3aGlsZSBwb3MgPCBsZW4odmFsdWUpOgorICAgICAgICBjaGFy ID0gdmFsdWVbcG9zXQorCisgICAgICAgIGlmIGluX3F1b3RlczoKKyAgICAgICAgICAgIGlmIGNo YXIgPT0gIlxcIjoKKyAgICAgICAgICAgICAgICBuZXh0X2NoYXIgPSB2YWx1ZVtwb3MgKyAxXQor ICAgICAgICAgICAgICAgIGlmIG5leHRfY2hhciBub3QgaW4gJyJcXCc6CisgICAgICAgICAgICAg ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoJ09ubHkgXFwiIGFuZCBcXFxcIGVzY2Fw ZXMgYXJlIHN1cHBvcnRlZCcpCisgICAgICAgICAgICAgICAgY3VycmVudF9lbGVtZW50LmFwcGVu ZChuZXh0X2NoYXIpCisgICAgICAgICAgICAgICAgcG9zICs9IDIKKyAgICAgICAgICAgICAgICBj b250aW51ZQorICAgICAgICAgICAgZWxpZiBjaGFyID09ICciJzoKKyAgICAgICAgICAgICAgICBp bl9xdW90ZXMgPSBGYWxzZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBjdXJy ZW50X2VsZW1lbnQuYXBwZW5kKGNoYXIpCisgICAgICAgIGVsaWYgY2hhciA9PSAnIic6CisgICAg ICAgICAgICBpbl9xdW90ZXMgPSBUcnVlCisgICAgICAgICAgICB3YXNfcXVvdGVkID0gVHJ1ZQor ICAgICAgICBlbGlmIGNoYXIgPT0gInsiOgorICAgICAgICAgICAgc3RhY2suYXBwZW5kKFtdKQor ICAgICAgICBlbGlmIGNoYXIgaW4gIix9IjoKKyAgICAgICAgICAgIGlmIGN1cnJlbnRfZWxlbWVu dCBvciB3YXNfcXVvdGVkOgorICAgICAgICAgICAgICAgIGVsZW0gPSAiIi5qb2luKGN1cnJlbnRf ZWxlbWVudCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgd2FzX3F1b3RlZCBhbmQgZWxlbSA9PSAi TlVMTCI6CisgICAgICAgICAgICAgICAgICAgIHN0YWNrWy0xXS5hcHBlbmQoTm9uZSkKKyAgICAg ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBzdGFja1stMV0uYXBwZW5kKF9j b252ZXJ0X3BnX3ZhbHVlKGVsZW0sIGVsZW1fb2lkKSkKKyAgICAgICAgICAgICAgICBjdXJyZW50 X2VsZW1lbnQgPSBbXQorICAgICAgICAgICAgICAgIHdhc19xdW90ZWQgPSBGYWxzZQorICAgICAg ICAgICAgaWYgY2hhciA9PSAifSI6CisgICAgICAgICAgICAgICAgY29tcGxldGVkID0gc3RhY2su cG9wKCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhY2s6CisgICAgICAgICAgICAgICAgICAg IHJldHVybiBjb21wbGV0ZWQKKyAgICAgICAgICAgICAgICBzdGFja1stMV0uYXBwZW5kKGNvbXBs ZXRlZCkKKyAgICAgICAgZWxpZiBjaGFyICE9ICIgIjoKKyAgICAgICAgICAgIGN1cnJlbnRfZWxl bWVudC5hcHBlbmQoY2hhcikKKyAgICAgICAgcG9zICs9IDEKKworICAgIHJhaXNlIFZhbHVlRXJy b3IoZiJNYWxmb3JtZWQgYXJyYXkgbGl0ZXJhbDoge3ZhbHVlfSIpCisKKworIyBSZWdpc3RlciBz dGFuZGFyZCBQb3N0Z3JlU1FMIHR5cGVzIHRoYXQgd2UnbGwgbGlrZWx5IGVuY291bnRlciBpbiB0 ZXN0cworcmVnaXN0ZXJfdHlwZV9pbmZvKCJib29sIiwgMTYsIDEwMDAsIGxhbWJkYSB2OiB2ID09 ICJ0IikKK3JlZ2lzdGVyX3R5cGVfaW5mbygiaW50MiIsIDIxLCAxMDA1LCBpbnQpCityZWdpc3Rl cl90eXBlX2luZm8oImludDQiLCAyMywgMTAwNywgaW50KQorcmVnaXN0ZXJfdHlwZV9pbmZvKCJp bnQ4IiwgMjAsIDEwMTYsIGludCkKK3JlZ2lzdGVyX3R5cGVfaW5mbygiZmxvYXQ0IiwgNzAwLCAx MDIxLCBmbG9hdCkKK3JlZ2lzdGVyX3R5cGVfaW5mbygiZmxvYXQ4IiwgNzAxLCAxMDIyLCBmbG9h dCkKK3JlZ2lzdGVyX3R5cGVfaW5mbygibnVtZXJpYyIsIDE3MDAsIDEyMzEsIGRlY2ltYWwuRGVj aW1hbCkKK3JlZ2lzdGVyX3R5cGVfaW5mbygidGV4dCIsIDI1LCAxMDA5LCBzdHIpCityZWdpc3Rl cl90eXBlX2luZm8oInZhcmNoYXIiLCAxMDQzLCAxMDE1LCBzdHIpCityZWdpc3Rlcl90eXBlX2lu Zm8oImRhdGUiLCAxMDgyLCAxMTgyLCBkYXRldGltZS5kYXRlLmZyb21pc29mb3JtYXQpCityZWdp c3Rlcl90eXBlX2luZm8oInRpbWUiLCAxMDgzLCAxMTgzLCBkYXRldGltZS50aW1lLmZyb21pc29m b3JtYXQpCityZWdpc3Rlcl90eXBlX2luZm8oInRpbWVzdGFtcCIsIDExMTQsIDExMTUsIGRhdGV0 aW1lLmRhdGV0aW1lLmZyb21pc29mb3JtYXQpCityZWdpc3Rlcl90eXBlX2luZm8oInRpbWVzdGFt cHR6IiwgMTE4NCwgMTE4NSwgZGF0ZXRpbWUuZGF0ZXRpbWUuZnJvbWlzb2Zvcm1hdCkKK3JlZ2lz dGVyX3R5cGVfaW5mbygidXVpZCIsIDI5NTAsIDI5NTEsIHV1aWQuVVVJRCkKK3JlZ2lzdGVyX3R5 cGVfaW5mbygianNvbiIsIDExNCwgMTk5LCBqc29uLmxvYWRzKQorcmVnaXN0ZXJfdHlwZV9pbmZv KCJqc29uYiIsIDM4MDIsIDM4MDcsIGpzb24ubG9hZHMpCisKKworZGVmIF9jb252ZXJ0X3BnX3Zh bHVlKHZhbHVlOiBzdHIsIHR5cGVfb2lkOiBpbnQpIC0+IEFueToKKyAgICAiIiIKKyAgICBDb252 ZXJ0IFBvc3RncmVTUUwgc3RyaW5nIHZhbHVlIHRvIGFwcHJvcHJpYXRlIFB5dGhvbiB0eXBlIGJh c2VkIG9uIE9JRC4KKyAgICBVc2VzIHRoZSByZWdpc3RlcmVkIHR5cGUgY29udmVydGVycyBmcm9t IHJlZ2lzdGVyX3R5cGVfaW5mbygpLgorICAgICIiIgorICAgICMgQ2hlY2sgaWYgaXQncyBhbiBh cnJheSB0eXBlCisgICAgaWYgdHlwZV9vaWQgaW4gX2FycmF5X3RvX2VsZW1fbWFwOgorICAgICAg ICBlbGVtX29pZCA9IF9hcnJheV90b19lbGVtX21hcFt0eXBlX29pZF0KKyAgICAgICAgcmV0dXJu IF9wYXJzZV9hcnJheSh2YWx1ZSwgZWxlbV9vaWQpCisKKyAgICAjIFVzZSByZWdpc3RlcmVkIGNv bnZlcnRlciBpZiBhdmFpbGFibGUKKyAgICBjb252ZXJ0ZXIgPSBfdHlwZV9jb252ZXJ0ZXJzLmdl dCh0eXBlX29pZCkKKyAgICBpZiBjb252ZXJ0ZXI6CisgICAgICAgIHJldHVybiBjb252ZXJ0ZXIo dmFsdWUpCisKKyAgICAjIFVua25vd24gdHlwZXMgLSByZXR1cm4gYXMgc3RyaW5nCisgICAgcmV0 dXJuIHZhbHVlCisKKworZGVmIHNpbXBsaWZ5X3F1ZXJ5X3Jlc3VsdHMocmVzdWx0cykgLT4gQW55 OgorICAgICIiIgorICAgIFNpbXBsaWZ5IHRoZSByZXN1bHRzIG9mIGEgcXVlcnkgc28gdGhhdCB0 aGUgY2FsbGVyIGRvZXNuJ3QgaGF2ZSB0byB1bnBhY2sKKyAgICBsaXN0cyBhbmQgdHVwbGVzIG9m IGxlbmd0aCAxLgorICAgICIiIgorICAgIGlmIGxlbihyZXN1bHRzKSA9PSAxOgorICAgICAgICBy b3cgPSByZXN1bHRzWzBdCisgICAgICAgIGlmIGxlbihyb3cpID09IDE6CisgICAgICAgICAgICAj IElmIHRoZXJlJ3Mgb25seSBhIHNpbmdsZSBjZWxsLCBqdXN0IHJldHVybiB0aGUgdmFsdWUKKyAg ICAgICAgICAgIHJldHVybiByb3dbMF0KKyAgICAgICAgIyBJZiB0aGVyZSdzIG9ubHkgYSBzaW5n bGUgcm93LCBqdXN0IHJldHVybiB0aGF0IHJvdworICAgICAgICByZXR1cm4gcm93CisKKyAgICBp ZiBsZW4ocmVzdWx0cykgIT0gMCBhbmQgbGVuKHJlc3VsdHNbMF0pID09IDE6CisgICAgICAgICMg SWYgdGhlcmUncyBvbmx5IGEgc2luZ2xlIGNvbHVtbiwgcmV0dXJuIGFuIGFycmF5IG9mIHZhbHVl cworICAgICAgICByZXR1cm4gW3Jvd1swXSBmb3Igcm93IGluIHJlc3VsdHNdCisKKyAgICAjIGlm IHRoZXJlIGFyZSBtdWx0aXBsZSByb3dzIGFuZCBjb2x1bW5zLCByZXR1cm4gdGhlIHJlc3VsdHMg YXMgaXMKKyAgICByZXR1cm4gcmVzdWx0cworCisKK2NsYXNzIFBHcmVzdWx0KGNvbnRleHRsaWIu QWJzdHJhY3RDb250ZXh0TWFuYWdlcik6CisgICAgIiIiV3JhcHMgYSByYXcgX1BHcmVzdWx0X3Ag d2l0aCBhIG1vcmUgZnJpZW5kbHkgaW50ZXJmYWNlLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNl bGYsIGxpYjogY3R5cGVzLkNETEwsIHJlczogX1BHcmVzdWx0X3ApOgorICAgICAgICBzZWxmLl9s aWIgPSBsaWIKKyAgICAgICAgc2VsZi5fcmVzID0gcmVzCisKKyAgICBkZWYgX19leGl0X18oc2Vs ZiwgKmV4Yyk6CisgICAgICAgIHNlbGYuX2xpYi5QUWNsZWFyKHNlbGYuX3JlcykKKyAgICAgICAg c2VsZi5fcmVzID0gTm9uZQorCisgICAgZGVmIHN0YXR1cyhzZWxmKSAtPiBFeGVjU3RhdHVzOgor ICAgICAgICByZXR1cm4gRXhlY1N0YXR1cyhzZWxmLl9saWIuUFFyZXN1bHRTdGF0dXMoc2VsZi5f cmVzKSkKKworICAgIGRlZiBlcnJvcl9tZXNzYWdlKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm5z IHRoZSBlcnJvciBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlc3VsdC4iIiIKKyAgICAg ICAgbXNnID0gc2VsZi5fbGliLlBRcmVzdWx0RXJyb3JNZXNzYWdlKHNlbGYuX3JlcykKKyAgICAg ICAgcmV0dXJuIG1zZy5kZWNvZGUoKSBpZiBtc2cgZWxzZSAiIgorCisgICAgZGVmIF9nZXRfZXJy b3JfZmllbGQoc2VsZiwgZmllbGQ6IERpYWdGaWVsZCkgLT4gT3B0aW9uYWxbc3RyXToKKyAgICAg ICAgIiIiR2V0IGFuIGVycm9yIGZpZWxkIGZyb20gdGhlIHJlc3VsdCB1c2luZyBQUXJlc3VsdEVy cm9yRmllbGQuIiIiCisgICAgICAgIHZhbCA9IHNlbGYuX2xpYi5QUXJlc3VsdEVycm9yRmllbGQo c2VsZi5fcmVzLCBpbnQoZmllbGQpKQorICAgICAgICByZXR1cm4gdmFsLmRlY29kZSgpIGlmIHZh bCBlbHNlIE5vbmUKKworICAgIGRlZiByYWlzZV9lcnJvcihzZWxmKSAtPiBOb25lOgorICAgICAg ICAiIiIKKyAgICAgICAgUmFpc2VzIGFuIGFwcHJvcHJpYXRlIExpYnBxRXJyb3Igc3ViY2xhc3Mg YmFzZWQgb24gdGhlIGVycm9yIGZpZWxkcy4KKyAgICAgICAgRXh0cmFjdHMgU1FMU1RBVEUgYW5k IG90aGVyIGRpYWdub3N0aWMgaW5mb3JtYXRpb24gZnJvbSB0aGUgcmVzdWx0LgorICAgICAgICAi IiIKKyAgICAgICAgaWYgbm90IHNlbGYuX3JlczoKKyAgICAgICAgICAgIHJhaXNlIExpYnBxRXJy b3IoInF1ZXJ5IGZhaWxlZDogb3V0IG9mIG1lbW9yeSBvciBjb25uZWN0aW9uIGxvc3QiKQorCisg ICAgICAgIHNxbHN0YXRlID0gc2VsZi5fZ2V0X2Vycm9yX2ZpZWxkKERpYWdGaWVsZC5TUUxTVEFU RSkKKyAgICAgICAgcHJpbWFyeSA9IHNlbGYuX2dldF9lcnJvcl9maWVsZChEaWFnRmllbGQuTUVT U0FHRV9QUklNQVJZKQorICAgICAgICBkZXRhaWwgPSBzZWxmLl9nZXRfZXJyb3JfZmllbGQoRGlh Z0ZpZWxkLk1FU1NBR0VfREVUQUlMKQorICAgICAgICBoaW50ID0gc2VsZi5fZ2V0X2Vycm9yX2Zp ZWxkKERpYWdGaWVsZC5NRVNTQUdFX0hJTlQpCisgICAgICAgIHNldmVyaXR5ID0gc2VsZi5fZ2V0 X2Vycm9yX2ZpZWxkKERpYWdGaWVsZC5TRVZFUklUWSkKKyAgICAgICAgc2NoZW1hX25hbWUgPSBz ZWxmLl9nZXRfZXJyb3JfZmllbGQoRGlhZ0ZpZWxkLlNDSEVNQV9OQU1FKQorICAgICAgICB0YWJs ZV9uYW1lID0gc2VsZi5fZ2V0X2Vycm9yX2ZpZWxkKERpYWdGaWVsZC5UQUJMRV9OQU1FKQorICAg ICAgICBjb2x1bW5fbmFtZSA9IHNlbGYuX2dldF9lcnJvcl9maWVsZChEaWFnRmllbGQuQ09MVU1O X05BTUUpCisgICAgICAgIGRhdGF0eXBlX25hbWUgPSBzZWxmLl9nZXRfZXJyb3JfZmllbGQoRGlh Z0ZpZWxkLkRBVEFUWVBFX05BTUUpCisgICAgICAgIGNvbnN0cmFpbnRfbmFtZSA9IHNlbGYuX2dl dF9lcnJvcl9maWVsZChEaWFnRmllbGQuQ09OU1RSQUlOVF9OQU1FKQorICAgICAgICBjb250ZXh0 ID0gc2VsZi5fZ2V0X2Vycm9yX2ZpZWxkKERpYWdGaWVsZC5DT05URVhUKQorCisgICAgICAgIHBv c2l0aW9uX3N0ciA9IHNlbGYuX2dldF9lcnJvcl9maWVsZChEaWFnRmllbGQuU1RBVEVNRU5UX1BP U0lUSU9OKQorICAgICAgICBwb3NpdGlvbiA9IGludChwb3NpdGlvbl9zdHIpIGlmIHBvc2l0aW9u X3N0ciBlbHNlIE5vbmUKKworICAgICAgICByYWlzZSBtYWtlX2Vycm9yKAorICAgICAgICAgICAg cHJpbWFyeSBvciBzZWxmLmVycm9yX21lc3NhZ2UoKSwKKyAgICAgICAgICAgIHNxbHN0YXRlPXNx bHN0YXRlLAorICAgICAgICAgICAgc2V2ZXJpdHk9c2V2ZXJpdHksCisgICAgICAgICAgICBwcmlt YXJ5PXByaW1hcnksCisgICAgICAgICAgICBkZXRhaWw9ZGV0YWlsLAorICAgICAgICAgICAgaGlu dD1oaW50LAorICAgICAgICAgICAgc2NoZW1hX25hbWU9c2NoZW1hX25hbWUsCisgICAgICAgICAg ICB0YWJsZV9uYW1lPXRhYmxlX25hbWUsCisgICAgICAgICAgICBjb2x1bW5fbmFtZT1jb2x1bW5f bmFtZSwKKyAgICAgICAgICAgIGRhdGF0eXBlX25hbWU9ZGF0YXR5cGVfbmFtZSwKKyAgICAgICAg ICAgIGNvbnN0cmFpbnRfbmFtZT1jb25zdHJhaW50X25hbWUsCisgICAgICAgICAgICBwb3NpdGlv bj1wb3NpdGlvbiwKKyAgICAgICAgICAgIGNvbnRleHQ9Y29udGV4dCwKKyAgICAgICAgKQorCisg ICAgZGVmIGZldGNoX2FsbChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEZldGNoIGFsbCBy b3dzIGFuZCBjb252ZXJ0IHRvIFB5dGhvbiB0eXBlcy4KKyAgICAgICAgUmV0dXJucyBhIGxpc3Qg b2YgdHVwbGVzLCB3aXRoIHZhbHVlcyBjb252ZXJ0ZWQgYmFzZWQgb24gdGhlaXIgUG9zdGdyZVNR TCB0eXBlLgorICAgICAgICAiIiIKKyAgICAgICAgbnJvd3MgPSBzZWxmLl9saWIuUFFudHVwbGVz KHNlbGYuX3JlcykKKyAgICAgICAgbmNvbHMgPSBzZWxmLl9saWIuUFFuZmllbGRzKHNlbGYuX3Jl cykKKworICAgICAgICAjIEdldCB0eXBlIE9JRHMgZm9yIGVhY2ggY29sdW1uCisgICAgICAgIHR5 cGVfb2lkcyA9IFtzZWxmLl9saWIuUFFmdHlwZShzZWxmLl9yZXMsIGNvbCkgZm9yIGNvbCBpbiBy YW5nZShuY29scyldCisKKyAgICAgICAgcmVzdWx0cyA9IFtdCisgICAgICAgIGZvciByb3cgaW4g cmFuZ2UobnJvd3MpOgorICAgICAgICAgICAgcm93X2RhdGEgPSBbXQorICAgICAgICAgICAgZm9y IGNvbCBpbiByYW5nZShuY29scyk6CisgICAgICAgICAgICAgICAgaWYgc2VsZi5fbGliLlBRZ2V0 aXNudWxsKHNlbGYuX3Jlcywgcm93LCBjb2wpOgorICAgICAgICAgICAgICAgICAgICByb3dfZGF0 YS5hcHBlbmQoTm9uZSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAg ICB2YWx1ZSA9IHNlbGYuX2xpYi5QUWdldHZhbHVlKHNlbGYuX3Jlcywgcm93LCBjb2wpLmRlY29k ZSgpCisgICAgICAgICAgICAgICAgICAgIHJvd19kYXRhLmFwcGVuZChfY29udmVydF9wZ192YWx1 ZSh2YWx1ZSwgdHlwZV9vaWRzW2NvbF0pKQorICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQodHVw bGUocm93X2RhdGEpKQorCisgICAgICAgIHJldHVybiByZXN1bHRzCisKKworY2xhc3MgUEdjb25u KGNvbnRleHRsaWIuQWJzdHJhY3RDb250ZXh0TWFuYWdlcik6CisgICAgIiIiCisgICAgV3JhcHMg YSByYXcgX1BHY29ubl9wIHdpdGggYSBtb3JlIGZyaWVuZGx5IGludGVyZmFjZS4gVGhpcyBpcyBq dXN0IGEKKyAgICBzdHViOyBpdCdzIGV4cGVjdGVkIHRvIGdyb3cuCisgICAgIiIiCisKKyAgICBk ZWYgX19pbml0X18oCisgICAgICAgIHNlbGYsCisgICAgICAgIGxpYjogY3R5cGVzLkNETEwsCisg ICAgICAgIGhhbmRsZTogX1BHY29ubl9wLAorICAgICAgICBzdGFjazogY29udGV4dGxpYi5FeGl0 U3RhY2ssCisgICAgKToKKyAgICAgICAgc2VsZi5fbGliID0gbGliCisgICAgICAgIHNlbGYuX2hh bmRsZSA9IGhhbmRsZQorICAgICAgICBzZWxmLl9zdGFjayA9IHN0YWNrCisKKyAgICBkZWYgX19l eGl0X18oc2VsZiwgKmV4Yyk6CisgICAgICAgIHNlbGYuX2xpYi5QUWZpbmlzaChzZWxmLl9oYW5k bGUpCisgICAgICAgIHNlbGYuX2hhbmRsZSA9IE5vbmUKKworICAgIGRlZiBleGVjKHNlbGYsIHF1 ZXJ5OiBzdHIpOgorICAgICAgICAiIiIKKyAgICAgICAgRXhlY3V0ZXMgYSBxdWVyeSB2aWEgUFFl eGVjKCkgYW5kIHJldHVybnMgYSBQR3Jlc3VsdC4KKyAgICAgICAgIiIiCisgICAgICAgIHJlcyA9 IHNlbGYuX2xpYi5QUWV4ZWMoc2VsZi5faGFuZGxlLCBxdWVyeS5lbmNvZGUoKSkKKyAgICAgICAg cmV0dXJuIHNlbGYuX3N0YWNrLmVudGVyX2NvbnRleHQoUEdyZXN1bHQoc2VsZi5fbGliLCByZXMp KQorCisgICAgZGVmIHNxbChzZWxmLCBxdWVyeTogc3RyKToKKyAgICAgICAgIiIiCisgICAgICAg IEV4ZWN1dGVzIGEgcXVlcnkgYW5kIHJhaXNlcyBhbiBleGNlcHRpb24gaWYgaXQgZmFpbHMuCisg ICAgICAgIFJldHVybnMgdGhlIHF1ZXJ5IHJlc3VsdHMgd2l0aCBhdXRvbWF0aWMgdHlwZSBjb252 ZXJzaW9uIGFuZCBzaW1wbGlmaWNhdGlvbi4KKyAgICAgICAgRm9yIGNvbW1hbmRzIHRoYXQgZG9u J3QgcmV0dXJuIGRhdGEgKElOU0VSVCwgVVBEQVRFLCBldGMuKSwgcmV0dXJucyBOb25lLgorCisg ICAgICAgIEV4YW1wbGVzOgorICAgICAgICAtIFNFTEVDVCAxIC0+IDEKKyAgICAgICAgLSBTRUxF Q1QgMSwgMiAtPiAoMSwgMikKKyAgICAgICAgLSBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCAzKSAtPiBbMSwgMiwgM10KKyAgICAgICAgLSBTRUxFQ1QgKiBGUk9NIChWQUxVRVMgKDEs ICdhJyksICgyLCAnYicpKSB0IC0+IFsoMSwgJ2EnKSwgKDIsICdiJyldCisgICAgICAgIC0gQ1JF QVRFIFRBQkxFIC4uLiAtPiBOb25lCisgICAgICAgIC0gSU5TRVJUIElOVE8gLi4uIC0+IE5vbmUK KyAgICAgICAgIiIiCisgICAgICAgIHJlcyA9IHNlbGYuZXhlYyhxdWVyeSkKKyAgICAgICAgc3Rh dHVzID0gcmVzLnN0YXR1cygpCisKKyAgICAgICAgaWYgc3RhdHVzID09IEV4ZWNTdGF0dXMuUEdS RVNfRkFUQUxfRVJST1I6CisgICAgICAgICAgICByZXMucmFpc2VfZXJyb3IoKQorICAgICAgICBl bGlmIHN0YXR1cyA9PSBFeGVjU3RhdHVzLlBHUkVTX0NPTU1BTkRfT0s6CisgICAgICAgICAgICBy ZXR1cm4gTm9uZQorICAgICAgICBlbGlmIHN0YXR1cyA9PSBFeGVjU3RhdHVzLlBHUkVTX1RVUExF U19PSzoKKyAgICAgICAgICAgIHJlc3VsdHMgPSByZXMuZmV0Y2hfYWxsKCkKKyAgICAgICAgICAg IHJldHVybiBzaW1wbGlmeV9xdWVyeV9yZXN1bHRzKHJlc3VsdHMpCisgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICByZXMucmFpc2VfZXJyb3IoKQorCisKK2RlZiBjb25uc3RyKG9wdHM6IERpY3Rb c3RyLCBBbnldKSAtPiBzdHI6CisgICAgIiIiCisgICAgRmxhdHRlbnMgdGhlIHByb3ZpZGVkIG9w dGlvbnMgaW50byBhIGxpYnBxIGNvbm5lY3Rpb24gc3RyaW5nLiBWYWx1ZXMKKyAgICBhcmUgY29u dmVydGVkIHRvIHN0ciBhbmQgcXVvdGVkL2VzY2FwZWQgYXMgbmVjZXNzYXJ5LgorICAgICIiIgor ICAgIHNldHRpbmdzID0gW10KKworICAgIGZvciBrLCB2IGluIG9wdHMuaXRlbXMoKToKKyAgICAg ICAgdiA9IHN0cih2KQorICAgICAgICBpZiBub3QgdjoKKyAgICAgICAgICAgIHYgPSAiJyciCisg ICAgICAgIGVsc2U6CisgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKCJcXCIsICJcXFxcIikKKyAg ICAgICAgICAgIHYgPSB2LnJlcGxhY2UoIiciLCAiXFwnIikKKworICAgICAgICAgICAgaWYgIiAi IGluIHY6CisgICAgICAgICAgICAgICAgdiA9IGYiJ3t2fSciCisKKyAgICAgICAgc2V0dGluZ3Mu YXBwZW5kKGYie2t9PXt2fSIpCisKKyAgICByZXR1cm4gIiAiLmpvaW4oc2V0dGluZ3MpCisKKwor ZGVmIGNvbm5lY3QoCisgICAgbGlicHFfaGFuZGxlOiBjdHlwZXMuQ0RMTCwKKyAgICBzdGFjazog Y29udGV4dGxpYi5FeGl0U3RhY2ssCisgICAgcmVtYWluaW5nX3RpbWVvdXRfZm46IENhbGxhYmxl W1tdLCBmbG9hdF0sCisgICAgKipvcHRzLAorKSAtPiBQR2Nvbm46CisgICAgIiIiCisgICAgQ29u bmVjdHMgdG8gYSBzZXJ2ZXIsIHVzaW5nIHRoZSBnaXZlbiBjb25uZWN0aW9uIG9wdGlvbnMsIGFu ZAorICAgIHJldHVybnMgYSBQR2Nvbm4gb2JqZWN0IHdyYXBwaW5nIHRoZSBjb25uZWN0aW9uIGhh bmRsZS4gQQorICAgIGZhaWx1cmUgd2lsbCByYWlzZSBMaWJwcUVycm9yLgorCisgICAgQ29ubmVj dGlvbnMgaG9ub3IgUEdfVEVTVF9USU1FT1VUX0RFRkFVTFQgdW5sZXNzIGNvbm5lY3RfdGltZW91 dCBpcworICAgIGV4cGxpY2l0bHkgb3ZlcnJpZGRlbiBpbiBvcHRzLgorCisgICAgQXJnczoKKyAg ICAgICAgbGlicHFfaGFuZGxlOiBjdHlwZXMuQ0RMTCBoYW5kbGUgdG8gbGlicHEgbGlicmFyeQor ICAgICAgICBzdGFjazogRXhpdFN0YWNrIGZvciBtYW5hZ2luZyBjb25uZWN0aW9uIGNsZWFudXAK KyAgICAgICAgcmVtYWluaW5nX3RpbWVvdXRfZm46IEZ1bmN0aW9uIHRoYXQgcmV0dXJucyByZW1h aW5pbmcgdGltZW91dCBpbiBzZWNvbmRzCisgICAgICAgICoqb3B0czogQ29ubmVjdGlvbiBvcHRp b25zIChob3N0LCBwb3J0LCBkYm5hbWUsIGV0Yy4pCisKKyAgICBSZXR1cm5zOgorICAgICAgICBQ R2Nvbm46IENvbm5lY3RlZCBkYXRhYmFzZSBjb25uZWN0aW9uCisKKyAgICBSYWlzZXM6CisgICAg ICAgIExpYnBxRXJyb3I6IElmIGNvbm5lY3Rpb24gZmFpbHMKKyAgICAiIiIKKworICAgIGlmICJj b25uZWN0X3RpbWVvdXQiIG5vdCBpbiBvcHRzOgorICAgICAgICB0ID0gaW50KHJlbWFpbmluZ190 aW1lb3V0X2ZuKCkpCisgICAgICAgIG9wdHNbImNvbm5lY3RfdGltZW91dCJdID0gbWF4KHQsIDEp CisKKyAgICBjb25uX3AgPSBsaWJwcV9oYW5kbGUuUFFjb25uZWN0ZGIoY29ubnN0cihvcHRzKS5l bmNvZGUoKSkKKworICAgICMgQ2hlY2sgY29ubmVjdGlvbiBzdGF0dXMgYmVmb3JlIGFkZGluZyB0 byBzdGFjaworICAgIGlmIGxpYnBxX2hhbmRsZS5QUXN0YXR1cyhjb25uX3ApICE9IENvbm5lY3Rp b25TdGF0dXMuQ09OTkVDVElPTl9PSzoKKyAgICAgICAgZXJyb3JfbXNnID0gbGlicHFfaGFuZGxl LlBRZXJyb3JNZXNzYWdlKGNvbm5fcCkuZGVjb2RlKCkKKyAgICAgICAgIyBNYW51YWxseSBjbG9z ZSB0aGUgZmFpbGVkIGNvbm5lY3Rpb24KKyAgICAgICAgbGlicHFfaGFuZGxlLlBRZmluaXNoKGNv bm5fcCkKKyAgICAgICAgcmFpc2UgTGlicHFFcnJvcihlcnJvcl9tc2cpCisKKyAgICAjIENvbm5l Y3Rpb24gc3VjY2VlZGVkIC0gYWRkIHRvIHN0YWNrIGZvciBjbGVhbnVwCisgICAgY29ubiA9IHN0 YWNrLmVudGVyX2NvbnRleHQoUEdjb25uKGxpYnBxX2hhbmRsZSwgY29ubl9wLCBzdGFjaz1zdGFj aykpCisgICAgcmV0dXJuIGNvbm4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVzdC9saWJwcS9f ZXJyb3JfYmFzZS5weSBiL3NyYy90ZXN0L3B5dGVzdC9saWJwcS9fZXJyb3JfYmFzZS5weQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWM3MGMwNzcxOTMKLS0tIC9kZXYv bnVsbAorKysgYi9zcmMvdGVzdC9weXRlc3QvbGlicHEvX2Vycm9yX2Jhc2UucHkKQEAgLTAsMCAr MSw3NCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCisKKyIiIgorQmFzZSBleGNlcHRpb24gY2xhc3NlcyBmb3IgbGlicHEgZXJyb3Jz IGFuZCB3YXJuaW5ncy4KKyIiIgorCitmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKKworCitj bGFzcyBMaWJwcUV4Y2VwdGlvbk1peGluOgorICAgICIiIk1peGluIHByb3ZpZGluZyBQb3N0Z3Jl U1FMIGVycm9yIGZpZWxkIGF0dHJpYnV0ZXMuIiIiCisKKyAgICBzcWxzdGF0ZTogT3B0aW9uYWxb c3RyXQorICAgIHNldmVyaXR5OiBPcHRpb25hbFtzdHJdCisgICAgcHJpbWFyeTogT3B0aW9uYWxb c3RyXQorICAgIGRldGFpbDogT3B0aW9uYWxbc3RyXQorICAgIGhpbnQ6IE9wdGlvbmFsW3N0cl0K KyAgICBzY2hlbWFfbmFtZTogT3B0aW9uYWxbc3RyXQorICAgIHRhYmxlX25hbWU6IE9wdGlvbmFs W3N0cl0KKyAgICBjb2x1bW5fbmFtZTogT3B0aW9uYWxbc3RyXQorICAgIGRhdGF0eXBlX25hbWU6 IE9wdGlvbmFsW3N0cl0KKyAgICBjb25zdHJhaW50X25hbWU6IE9wdGlvbmFsW3N0cl0KKyAgICBw b3NpdGlvbjogT3B0aW9uYWxbaW50XQorICAgIGNvbnRleHQ6IE9wdGlvbmFsW3N0cl0KKworICAg IGRlZiBfX2luaXRfXygKKyAgICAgICAgc2VsZiwKKyAgICAgICAgbWVzc2FnZTogc3RyLAorICAg ICAgICAqLAorICAgICAgICBzcWxzdGF0ZTogT3B0aW9uYWxbc3RyXSA9IE5vbmUsCisgICAgICAg IHNldmVyaXR5OiBPcHRpb25hbFtzdHJdID0gTm9uZSwKKyAgICAgICAgcHJpbWFyeTogT3B0aW9u YWxbc3RyXSA9IE5vbmUsCisgICAgICAgIGRldGFpbDogT3B0aW9uYWxbc3RyXSA9IE5vbmUsCisg ICAgICAgIGhpbnQ6IE9wdGlvbmFsW3N0cl0gPSBOb25lLAorICAgICAgICBzY2hlbWFfbmFtZTog T3B0aW9uYWxbc3RyXSA9IE5vbmUsCisgICAgICAgIHRhYmxlX25hbWU6IE9wdGlvbmFsW3N0cl0g PSBOb25lLAorICAgICAgICBjb2x1bW5fbmFtZTogT3B0aW9uYWxbc3RyXSA9IE5vbmUsCisgICAg ICAgIGRhdGF0eXBlX25hbWU6IE9wdGlvbmFsW3N0cl0gPSBOb25lLAorICAgICAgICBjb25zdHJh aW50X25hbWU6IE9wdGlvbmFsW3N0cl0gPSBOb25lLAorICAgICAgICBwb3NpdGlvbjogT3B0aW9u YWxbaW50XSA9IE5vbmUsCisgICAgICAgIGNvbnRleHQ6IE9wdGlvbmFsW3N0cl0gPSBOb25lLAor ICAgICk6CisgICAgICAgIHN1cGVyKCkuX19pbml0X18obWVzc2FnZSkKKyAgICAgICAgc2VsZi5z cWxzdGF0ZSA9IHNxbHN0YXRlCisgICAgICAgIHNlbGYuc2V2ZXJpdHkgPSBzZXZlcml0eQorICAg ICAgICBzZWxmLnByaW1hcnkgPSBwcmltYXJ5CisgICAgICAgIHNlbGYuZGV0YWlsID0gZGV0YWls CisgICAgICAgIHNlbGYuaGludCA9IGhpbnQKKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNj aGVtYV9uYW1lCisgICAgICAgIHNlbGYudGFibGVfbmFtZSA9IHRhYmxlX25hbWUKKyAgICAgICAg c2VsZi5jb2x1bW5fbmFtZSA9IGNvbHVtbl9uYW1lCisgICAgICAgIHNlbGYuZGF0YXR5cGVfbmFt ZSA9IGRhdGF0eXBlX25hbWUKKyAgICAgICAgc2VsZi5jb25zdHJhaW50X25hbWUgPSBjb25zdHJh aW50X25hbWUKKyAgICAgICAgc2VsZi5wb3NpdGlvbiA9IHBvc2l0aW9uCisgICAgICAgIHNlbGYu Y29udGV4dCA9IGNvbnRleHQKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBzcWxzdGF0ZV9jbGFz cyhzZWxmKSAtPiBPcHRpb25hbFtzdHJdOgorICAgICAgICAiIiJSZXR1cm5zIHRoZSAyLWNoYXJh Y3RlciBTUUxTVEFURSBjbGFzcy4iIiIKKyAgICAgICAgaWYgc2VsZi5zcWxzdGF0ZSBhbmQgbGVu KHNlbGYuc3Fsc3RhdGUpID49IDI6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5zcWxzdGF0ZVs6 Ml0KKyAgICAgICAgcmV0dXJuIE5vbmUKKworCitjbGFzcyBMaWJwcUVycm9yKExpYnBxRXhjZXB0 aW9uTWl4aW4sIFJ1bnRpbWVFcnJvcik6CisgICAgIiIiQmFzZSBleGNlcHRpb24gZm9yIGxpYnBx IGVycm9ycy4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBMaWJwcVdhcm5pbmcoTGlicHFFeGNl cHRpb25NaXhpbiwgVXNlcldhcm5pbmcpOgorICAgICIiIkJhc2UgZXhjZXB0aW9uIGZvciBsaWJw cSB3YXJuaW5ncy4iIiIKKworICAgIHBhc3MKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVzdC9s aWJwcS9fZ2VuZXJhdGVkX2Vycm9ycy5weSBiL3NyYy90ZXN0L3B5dGVzdC9saWJwcS9fZ2VuZXJh dGVkX2Vycm9ycy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjUw ZjMxNDM1ODAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9weXRlc3QvbGlicHEvX2dlbmVy YXRlZF9lcnJvcnMucHkKQEAgLTAsMCArMSwyMTE2IEBACisjIENvcHlyaWdodCAoYykgMjAyNSwg UG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyMgVGhpcyBmaWxlIGlzIGdlbmVy YXRlZCBieSBzcmMvdG9vbHMvZ2VuZXJhdGVfcHl0ZXN0X2xpYnBxX2Vycm9ycy5weSAtIGRvIG5v dCBlZGl0IGRpcmVjdGx5LgorCisiIiIKK0dlbmVyYXRlZCBQb3N0Z3JlU1FMIGVycm9yIGNsYXNz ZXMgbWFwcGVkIGZyb20gU1FMU1RBVEUgY29kZXMuCisiIiIKKworZnJvbSB0eXBpbmcgaW1wb3J0 IERpY3QKKworZnJvbSAuX2Vycm9yX2Jhc2UgaW1wb3J0IExpYnBxRXJyb3IsIExpYnBxV2Fybmlu ZworCisKK2NsYXNzIFN1Y2Nlc3NmdWxDb21wbGV0aW9uKExpYnBxRXJyb3IpOgorICAgICIiIlNR TFNUQVRFIDAwMDAwIC0gc3VjY2Vzc2Z1bCBjb21wbGV0aW9uLiIiIgorCisgICAgcGFzcworCisK K2NsYXNzIFdhcm5pbmcoTGlicHFXYXJuaW5nKToKKyAgICAiIiJTUUxTVEFURSAwMTAwMCAtIHdh cm5pbmcuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRHluYW1pY1Jlc3VsdFNldHNSZXR1cm5l ZFdhcm5pbmcoV2FybmluZyk6CisgICAgIiIiU1FMU1RBVEUgMDEwMEMgLSBkeW5hbWljIHJlc3Vs dCBzZXRzIHJldHVybmVkLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEltcGxpY2l0WmVyb0Jp dFBhZGRpbmdXYXJuaW5nKFdhcm5pbmcpOgorICAgICIiIlNRTFNUQVRFIDAxMDA4IC0gaW1wbGlj aXQgemVybyBiaXQgcGFkZGluZy4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBOdWxsVmFsdWVF bGltaW5hdGVkSW5TZXRGdW5jdGlvbldhcm5pbmcoV2FybmluZyk6CisgICAgIiIiU1FMU1RBVEUg MDEwMDMgLSBudWxsIHZhbHVlIGVsaW1pbmF0ZWQgaW4gc2V0IGZ1bmN0aW9uLiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIFByaXZpbGVnZU5vdEdyYW50ZWRXYXJuaW5nKFdhcm5pbmcpOgorICAg ICIiIlNRTFNUQVRFIDAxMDA3IC0gcHJpdmlsZWdlIG5vdCBncmFudGVkLiIiIgorCisgICAgcGFz cworCisKK2NsYXNzIFByaXZpbGVnZU5vdFJldm9rZWRXYXJuaW5nKFdhcm5pbmcpOgorICAgICIi IlNRTFNUQVRFIDAxMDA2IC0gcHJpdmlsZWdlIG5vdCByZXZva2VkLiIiIgorCisgICAgcGFzcwor CisKK2NsYXNzIFN0cmluZ0RhdGFSaWdodFRydW5jYXRpb25XYXJuaW5nKFdhcm5pbmcpOgorICAg ICIiIlNRTFNUQVRFIDAxMDA0IC0gc3RyaW5nIGRhdGEgcmlnaHQgdHJ1bmNhdGlvbi4iIiIKKwor ICAgIHBhc3MKKworCitjbGFzcyBEZXByZWNhdGVkRmVhdHVyZVdhcm5pbmcoV2FybmluZyk6Cisg ICAgIiIiU1FMU1RBVEUgMDFQMDEgLSBkZXByZWNhdGVkIGZlYXR1cmUuIiIiCisKKyAgICBwYXNz CisKKworY2xhc3MgTm9EYXRhKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDAyMDAwIC0g bm8gZGF0YS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBOb0FkZGl0aW9uYWxEeW5hbWljUmVz dWx0U2V0c1JldHVybmVkKE5vRGF0YSk6CisgICAgIiIiU1FMU1RBVEUgMDIwMDEgLSBubyBhZGRp dGlvbmFsIGR5bmFtaWMgcmVzdWx0IHNldHMgcmV0dXJuZWQuIiIiCisKKyAgICBwYXNzCisKKwor Y2xhc3MgU1FMU3RhdGVtZW50Tm90WWV0Q29tcGxldGUoTGlicHFFcnJvcik6CisgICAgIiIiU1FM U1RBVEUgMDMwMDAgLSBzcWwgc3RhdGVtZW50IG5vdCB5ZXQgY29tcGxldGUuIiIiCisKKyAgICBw YXNzCisKKworY2xhc3MgQ29ubmVjdGlvbkV4Y2VwdGlvbihMaWJwcUVycm9yKToKKyAgICAiIiJT UUxTVEFURSAwODAwMCAtIGNvbm5lY3Rpb24gZXhjZXB0aW9uLiIiIgorCisgICAgcGFzcworCisK K2NsYXNzIENvbm5lY3Rpb25Eb2VzTm90RXhpc3QoQ29ubmVjdGlvbkV4Y2VwdGlvbik6CisgICAg IiIiU1FMU1RBVEUgMDgwMDMgLSBjb25uZWN0aW9uIGRvZXMgbm90IGV4aXN0LiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIENvbm5lY3Rpb25GYWlsdXJlKENvbm5lY3Rpb25FeGNlcHRpb24pOgor ICAgICIiIlNRTFNUQVRFIDA4MDA2IC0gY29ubmVjdGlvbiBmYWlsdXJlLiIiIgorCisgICAgcGFz cworCisKK2NsYXNzIFNRTENsaWVudFVuYWJsZVRvRXN0YWJsaXNoU1FMQ29ubmVjdGlvbihDb25u ZWN0aW9uRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAwODAwMSAtIHNxbGNsaWVudCB1bmFi bGUgdG8gZXN0YWJsaXNoIHNxbGNvbm5lY3Rpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg U1FMU2VydmVyUmVqZWN0ZWRFc3RhYmxpc2htZW50T2ZTUUxDb25uZWN0aW9uKENvbm5lY3Rpb25F eGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDA4MDA0IC0gc3Fsc2VydmVyIHJlamVjdGVkIGVz dGFibGlzaG1lbnQgb2Ygc3FsY29ubmVjdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBU cmFuc2FjdGlvblJlc29sdXRpb25Vbmtub3duKENvbm5lY3Rpb25FeGNlcHRpb24pOgorICAgICIi IlNRTFNUQVRFIDA4MDA3IC0gdHJhbnNhY3Rpb24gcmVzb2x1dGlvbiB1bmtub3duLiIiIgorCisg ICAgcGFzcworCisKK2NsYXNzIFByb3RvY29sVmlvbGF0aW9uKENvbm5lY3Rpb25FeGNlcHRpb24p OgorICAgICIiIlNRTFNUQVRFIDA4UDAxIC0gcHJvdG9jb2wgdmlvbGF0aW9uLiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIFRyaWdnZXJlZEFjdGlvbkV4Y2VwdGlvbihMaWJwcUVycm9yKToKKyAg ICAiIiJTUUxTVEFURSAwOTAwMCAtIHRyaWdnZXJlZCBhY3Rpb24gZXhjZXB0aW9uLiIiIgorCisg ICAgcGFzcworCisKK2NsYXNzIEZlYXR1cmVOb3RTdXBwb3J0ZWQoTGlicHFFcnJvcik6CisgICAg IiIiU1FMU1RBVEUgMEEwMDAgLSBmZWF0dXJlIG5vdCBzdXBwb3J0ZWQuIiIiCisKKyAgICBwYXNz CisKKworY2xhc3MgSW52YWxpZFRyYW5zYWN0aW9uSW5pdGlhdGlvbihMaWJwcUVycm9yKToKKyAg ICAiIiJTUUxTVEFURSAwQjAwMCAtIGludmFsaWQgdHJhbnNhY3Rpb24gaW5pdGlhdGlvbi4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBMb2NhdG9yRXhjZXB0aW9uKExpYnBxRXJyb3IpOgorICAg ICIiIlNRTFNUQVRFIDBGMDAwIC0gbG9jYXRvciBleGNlcHRpb24uIiIiCisKKyAgICBwYXNzCisK KworY2xhc3MgSW52YWxpZExvY2F0b3JTcGVjaWZpY2F0aW9uKExvY2F0b3JFeGNlcHRpb24pOgor ICAgICIiIlNRTFNUQVRFIDBGMDAxIC0gaW52YWxpZCBsb2NhdG9yIHNwZWNpZmljYXRpb24uIiIi CisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZEdyYW50b3IoTGlicHFFcnJvcik6CisgICAg IiIiU1FMU1RBVEUgMEwwMDAgLSBpbnZhbGlkIGdyYW50b3IuIiIiCisKKyAgICBwYXNzCisKKwor Y2xhc3MgSW52YWxpZEdyYW50T3BlcmF0aW9uKEludmFsaWRHcmFudG9yKToKKyAgICAiIiJTUUxT VEFURSAwTFAwMSAtIGludmFsaWQgZ3JhbnQgb3BlcmF0aW9uLiIiIgorCisgICAgcGFzcworCisK K2NsYXNzIEludmFsaWRSb2xlU3BlY2lmaWNhdGlvbihMaWJwcUVycm9yKToKKyAgICAiIiJTUUxT VEFURSAwUDAwMCAtIGludmFsaWQgcm9sZSBzcGVjaWZpY2F0aW9uLiIiIgorCisgICAgcGFzcwor CisKK2NsYXNzIERpYWdub3N0aWNzRXhjZXB0aW9uKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNU QVRFIDBaMDAwIC0gZGlhZ25vc3RpY3MgZXhjZXB0aW9uLiIiIgorCisgICAgcGFzcworCisKK2Ns YXNzIFN0YWNrZWREaWFnbm9zdGljc0FjY2Vzc2VkV2l0aG91dEFjdGl2ZUhhbmRsZXIoRGlhZ25v c3RpY3NFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDBaMDAyIC0gc3RhY2tlZCBkaWFnbm9z dGljcyBhY2Nlc3NlZCB3aXRob3V0IGFjdGl2ZSBoYW5kbGVyLiIiIgorCisgICAgcGFzcworCisK K2NsYXNzIEludmFsaWRBcmd1bWVudEZvclhxdWVyeShMaWJwcUVycm9yKToKKyAgICAiIiJTUUxT VEFURSAxMDYwOCAtIGludmFsaWQgYXJndW1lbnQgZm9yIHhxdWVyeS4iIiIKKworICAgIHBhc3MK KworCitjbGFzcyBDYXNlTm90Rm91bmQoTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgMjAw MDAgLSBjYXNlIG5vdCBmb3VuZC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBDYXJkaW5hbGl0 eVZpb2xhdGlvbihMaWJwcUVycm9yKToKKyAgICAiIiJTUUxTVEFURSAyMTAwMCAtIGNhcmRpbmFs aXR5IHZpb2xhdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBEYXRhRXhjZXB0aW9uKExp YnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDIyMDAwIC0gZGF0YSBleGNlcHRpb24uIiIiCisK KyAgICBwYXNzCisKKworY2xhc3MgQXJyYXlTdWJzY3JpcHRFcnJvcihEYXRhRXhjZXB0aW9uKToK KyAgICAiIiJTUUxTVEFURSAyMjAyRSAtIGFycmF5IHN1YnNjcmlwdCBlcnJvci4iIiIKKworICAg IHBhc3MKKworCitjbGFzcyBDaGFyYWN0ZXJOb3RJblJlcGVydG9pcmUoRGF0YUV4Y2VwdGlvbik6 CisgICAgIiIiU1FMU1RBVEUgMjIwMjEgLSBjaGFyYWN0ZXIgbm90IGluIHJlcGVydG9pcmUuIiIi CisKKyAgICBwYXNzCisKKworY2xhc3MgRGF0ZXRpbWVGaWVsZE92ZXJmbG93KERhdGFFeGNlcHRp b24pOgorICAgICIiIlNRTFNUQVRFIDIyMDA4IC0gZGF0ZXRpbWUgZmllbGQgb3ZlcmZsb3cuIiIi CisKKyAgICBwYXNzCisKKworY2xhc3MgRGl2aXNpb25CeVplcm8oRGF0YUV4Y2VwdGlvbik6Cisg ICAgIiIiU1FMU1RBVEUgMjIwMTIgLSBkaXZpc2lvbiBieSB6ZXJvLiIiIgorCisgICAgcGFzcwor CisKK2NsYXNzIEVycm9ySW5Bc3NpZ25tZW50KERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNU QVRFIDIyMDA1IC0gZXJyb3IgaW4gYXNzaWdubWVudC4iIiIKKworICAgIHBhc3MKKworCitjbGFz cyBFc2NhcGVDaGFyYWN0ZXJDb25mbGljdChEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFU RSAyMjAwQiAtIGVzY2FwZSBjaGFyYWN0ZXIgY29uZmxpY3QuIiIiCisKKyAgICBwYXNzCisKKwor Y2xhc3MgSW5kaWNhdG9yT3ZlcmZsb3coRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUg MjIwMjIgLSBpbmRpY2F0b3Igb3ZlcmZsb3cuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW50 ZXJ2YWxGaWVsZE92ZXJmbG93KERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDE1 IC0gaW50ZXJ2YWwgZmllbGQgb3ZlcmZsb3cuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52 YWxpZEFyZ3VtZW50Rm9yTG9nYXJpdGhtKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRF IDIyMDFFIC0gaW52YWxpZCBhcmd1bWVudCBmb3IgbG9nYXJpdGhtLiIiIgorCisgICAgcGFzcwor CisKK2NsYXNzIEludmFsaWRBcmd1bWVudEZvck50aWxlRnVuY3Rpb24oRGF0YUV4Y2VwdGlvbik6 CisgICAgIiIiU1FMU1RBVEUgMjIwMTQgLSBpbnZhbGlkIGFyZ3VtZW50IGZvciBudGlsZSBmdW5j dGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkQXJndW1lbnRGb3JOdGhWYWx1 ZUZ1bmN0aW9uKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDE2IC0gaW52YWxp ZCBhcmd1bWVudCBmb3IgbnRoIHZhbHVlIGZ1bmN0aW9uLiIiIgorCisgICAgcGFzcworCisKK2Ns YXNzIEludmFsaWRBcmd1bWVudEZvclBvd2VyRnVuY3Rpb24oRGF0YUV4Y2VwdGlvbik6CisgICAg IiIiU1FMU1RBVEUgMjIwMUYgLSBpbnZhbGlkIGFyZ3VtZW50IGZvciBwb3dlciBmdW5jdGlvbi4i IiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkQXJndW1lbnRGb3JXaWR0aEJ1Y2tldEZ1 bmN0aW9uKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDFHIC0gaW52YWxpZCBh cmd1bWVudCBmb3Igd2lkdGggYnVja2V0IGZ1bmN0aW9uLiIiIgorCisgICAgcGFzcworCisKK2Ns YXNzIEludmFsaWRDaGFyYWN0ZXJWYWx1ZUZvckNhc3QoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIi U1FMU1RBVEUgMjIwMTggLSBpbnZhbGlkIGNoYXJhY3RlciB2YWx1ZSBmb3IgY2FzdC4iIiIKKwor ICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkRGF0ZXRpbWVGb3JtYXQoRGF0YUV4Y2VwdGlvbik6 CisgICAgIiIiU1FMU1RBVEUgMjIwMDcgLSBpbnZhbGlkIGRhdGV0aW1lIGZvcm1hdC4iIiIKKwor ICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkRXNjYXBlQ2hhcmFjdGVyKERhdGFFeGNlcHRpb24p OgorICAgICIiIlNRTFNUQVRFIDIyMDE5IC0gaW52YWxpZCBlc2NhcGUgY2hhcmFjdGVyLiIiIgor CisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRFc2NhcGVPY3RldChEYXRhRXhjZXB0aW9uKToK KyAgICAiIiJTUUxTVEFURSAyMjAwRCAtIGludmFsaWQgZXNjYXBlIG9jdGV0LiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIEludmFsaWRFc2NhcGVTZXF1ZW5jZShEYXRhRXhjZXB0aW9uKToKKyAg ICAiIiJTUUxTVEFURSAyMjAyNSAtIGludmFsaWQgZXNjYXBlIHNlcXVlbmNlLiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIE5vbnN0YW5kYXJkVXNlT2ZFc2NhcGVDaGFyYWN0ZXIoRGF0YUV4Y2Vw dGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjJQMDYgLSBub25zdGFuZGFyZCB1c2Ugb2YgZXNjYXBl IGNoYXJhY3Rlci4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkSW5kaWNhdG9yUGFy YW1ldGVyVmFsdWUoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMTAgLSBpbnZh bGlkIGluZGljYXRvciBwYXJhbWV0ZXIgdmFsdWUuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg SW52YWxpZFBhcmFtZXRlclZhbHVlKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIy MDIzIC0gaW52YWxpZCBwYXJhbWV0ZXIgdmFsdWUuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg SW52YWxpZFByZWNlZGluZ09yRm9sbG93aW5nU2l6ZShEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJT UUxTVEFURSAyMjAxMyAtIGludmFsaWQgcHJlY2VkaW5nIG9yIGZvbGxvd2luZyBzaXplLiIiIgor CisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRSZWd1bGFyRXhwcmVzc2lvbihEYXRhRXhjZXB0 aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAxQiAtIGludmFsaWQgcmVndWxhciBleHByZXNzaW9u LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRSb3dDb3VudEluTGltaXRDbGF1c2Uo RGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMVcgLSBpbnZhbGlkIHJvdyBjb3Vu dCBpbiBsaW1pdCBjbGF1c2UuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZFJvd0Nv dW50SW5SZXN1bHRPZmZzZXRDbGF1c2UoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUg MjIwMVggLSBpbnZhbGlkIHJvdyBjb3VudCBpbiByZXN1bHQgb2Zmc2V0IGNsYXVzZS4iIiIKKwor ICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkVGFibGVzYW1wbGVBcmd1bWVudChEYXRhRXhjZXB0 aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAySCAtIGludmFsaWQgdGFibGVzYW1wbGUgYXJndW1l bnQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZFRhYmxlc2FtcGxlUmVwZWF0KERh dGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDJHIC0gaW52YWxpZCB0YWJsZXNhbXBs ZSByZXBlYXQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZFRpbWVab25lRGlzcGxh Y2VtZW50VmFsdWUoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMDkgLSBpbnZh bGlkIHRpbWUgem9uZSBkaXNwbGFjZW1lbnQgdmFsdWUuIiIiCisKKyAgICBwYXNzCisKKworY2xh c3MgSW52YWxpZFVzZU9mRXNjYXBlQ2hhcmFjdGVyKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNR TFNUQVRFIDIyMDBDIC0gaW52YWxpZCB1c2Ugb2YgZXNjYXBlIGNoYXJhY3Rlci4iIiIKKworICAg IHBhc3MKKworCitjbGFzcyBNb3N0U3BlY2lmaWNUeXBlTWlzbWF0Y2goRGF0YUV4Y2VwdGlvbik6 CisgICAgIiIiU1FMU1RBVEUgMjIwMEcgLSBtb3N0IHNwZWNpZmljIHR5cGUgbWlzbWF0Y2guIiIi CisKKyAgICBwYXNzCisKKworY2xhc3MgTnVsbFZhbHVlTm90QWxsb3dlZChEYXRhRXhjZXB0aW9u KToKKyAgICAiIiJTUUxTVEFURSAyMjAwNCAtIG51bGwgdmFsdWUgbm90IGFsbG93ZWQuIiIiCisK KyAgICBwYXNzCisKKworY2xhc3MgTnVsbFZhbHVlTm9JbmRpY2F0b3JQYXJhbWV0ZXIoRGF0YUV4 Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMDIgLSBudWxsIHZhbHVlIG5vIGluZGljYXRv ciBwYXJhbWV0ZXIuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgTnVtZXJpY1ZhbHVlT3V0T2ZS YW5nZShEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAwMyAtIG51bWVyaWMgdmFs dWUgb3V0IG9mIHJhbmdlLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFNlcXVlbmNlR2VuZXJh dG9yTGltaXRFeGNlZWRlZChEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAwSCAt IHNlcXVlbmNlIGdlbmVyYXRvciBsaW1pdCBleGNlZWRlZC4iIiIKKworICAgIHBhc3MKKworCitj bGFzcyBTdHJpbmdEYXRhTGVuZ3RoTWlzbWF0Y2goRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FM U1RBVEUgMjIwMjYgLSBzdHJpbmcgZGF0YSBsZW5ndGggbWlzbWF0Y2guIiIiCisKKyAgICBwYXNz CisKKworY2xhc3MgU3RyaW5nRGF0YVJpZ2h0VHJ1bmNhdGlvbihEYXRhRXhjZXB0aW9uKToKKyAg ICAiIiJTUUxTVEFURSAyMjAwMSAtIHN0cmluZyBkYXRhIHJpZ2h0IHRydW5jYXRpb24uIiIiCisK KyAgICBwYXNzCisKKworY2xhc3MgU3Vic3RyaW5nRXJyb3IoRGF0YUV4Y2VwdGlvbik6CisgICAg IiIiU1FMU1RBVEUgMjIwMTEgLSBzdWJzdHJpbmcgZXJyb3IuIiIiCisKKyAgICBwYXNzCisKKwor Y2xhc3MgVHJpbUVycm9yKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDI3IC0g dHJpbSBlcnJvci4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBVbnRlcm1pbmF0ZWRDU3RyaW5n KERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDI0IC0gdW50ZXJtaW5hdGVkIGMg c3RyaW5nLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFplcm9MZW5ndGhDaGFyYWN0ZXJTdHJp bmcoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMEYgLSB6ZXJvIGxlbmd0aCBj aGFyYWN0ZXIgc3RyaW5nLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEZsb2F0aW5nUG9pbnRF eGNlcHRpb24oRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjJQMDEgLSBmbG9hdGlu ZyBwb2ludCBleGNlcHRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZFRleHRS ZXByZXNlbnRhdGlvbihEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMlAwMiAtIGlu dmFsaWQgdGV4dCByZXByZXNlbnRhdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZh bGlkQmluYXJ5UmVwcmVzZW50YXRpb24oRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUg MjJQMDMgLSBpbnZhbGlkIGJpbmFyeSByZXByZXNlbnRhdGlvbi4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBCYWRDb3B5RmlsZUZvcm1hdChEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFU RSAyMlAwNCAtIGJhZCBjb3B5IGZpbGUgZm9ybWF0LiIiIgorCisgICAgcGFzcworCisKK2NsYXNz IFVudHJhbnNsYXRhYmxlQ2hhcmFjdGVyKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRF IDIyUDA1IC0gdW50cmFuc2xhdGFibGUgY2hhcmFjdGVyLiIiIgorCisgICAgcGFzcworCisKK2Ns YXNzIE5vdEFuWG1sRG9jdW1lbnQoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIw MEwgLSBub3QgYW4geG1sIGRvY3VtZW50LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFs aWRYbWxEb2N1bWVudChEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAwTSAtIGlu dmFsaWQgeG1sIGRvY3VtZW50LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRYbWxD b250ZW50KERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDBOIC0gaW52YWxpZCB4 bWwgY29udGVudC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkWG1sQ29tbWVudChE YXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAwUyAtIGludmFsaWQgeG1sIGNvbW1l bnQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZFhtbFByb2Nlc3NpbmdJbnN0cnVj dGlvbihEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAwVCAtIGludmFsaWQgeG1s IHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRHVwbGlj YXRlSnNvbk9iamVjdEtleVZhbHVlKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIy MDMwIC0gZHVwbGljYXRlIGpzb24gb2JqZWN0IGtleSB2YWx1ZS4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBJbnZhbGlkQXJndW1lbnRGb3JTUUxKc29uRGF0ZXRpbWVGdW5jdGlvbihEYXRhRXhj ZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAzMSAtIGludmFsaWQgYXJndW1lbnQgZm9yIHNx bCBqc29uIGRhdGV0aW1lIGZ1bmN0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFs aWRKc29uVGV4dChEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAzMiAtIGludmFs aWQganNvbiB0ZXh0LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRTUUxKc29uU3Vi c2NyaXB0KERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDMzIC0gaW52YWxpZCBz cWwganNvbiBzdWJzY3JpcHQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgTW9yZVRoYW5PbmVT UUxKc29uSXRlbShEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAzNCAtIG1vcmUg dGhhbiBvbmUgc3FsIGpzb24gaXRlbS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBOb1NRTEpz b25JdGVtKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDM1IC0gbm8gc3FsIGpz b24gaXRlbS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBOb25OdW1lcmljU1FMSnNvbkl0ZW0o RGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMzYgLSBub24gbnVtZXJpYyBzcWwg anNvbiBpdGVtLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIE5vblVuaXF1ZUtleXNJbkFKc29u T2JqZWN0KERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDM3IC0gbm9uIHVuaXF1 ZSBrZXlzIGluIGEganNvbiBvYmplY3QuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgU2luZ2xl dG9uU1FMSnNvbkl0ZW1SZXF1aXJlZChEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAy MjAzOCAtIHNpbmdsZXRvbiBzcWwganNvbiBpdGVtIHJlcXVpcmVkLiIiIgorCisgICAgcGFzcwor CisKK2NsYXNzIFNRTEpzb25BcnJheU5vdEZvdW5kKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNR TFNUQVRFIDIyMDM5IC0gc3FsIGpzb24gYXJyYXkgbm90IGZvdW5kLiIiIgorCisgICAgcGFzcwor CisKK2NsYXNzIFNRTEpzb25NZW1iZXJOb3RGb3VuZChEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJT UUxTVEFURSAyMjAzQSAtIHNxbCBqc29uIG1lbWJlciBub3QgZm91bmQuIiIiCisKKyAgICBwYXNz CisKKworY2xhc3MgU1FMSnNvbk51bWJlck5vdEZvdW5kKERhdGFFeGNlcHRpb24pOgorICAgICIi IlNRTFNUQVRFIDIyMDNCIC0gc3FsIGpzb24gbnVtYmVyIG5vdCBmb3VuZC4iIiIKKworICAgIHBh c3MKKworCitjbGFzcyBTUUxKc29uT2JqZWN0Tm90Rm91bmQoRGF0YUV4Y2VwdGlvbik6CisgICAg IiIiU1FMU1RBVEUgMjIwM0MgLSBzcWwganNvbiBvYmplY3Qgbm90IGZvdW5kLiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIFRvb01hbnlKc29uQXJyYXlFbGVtZW50cyhEYXRhRXhjZXB0aW9uKToK KyAgICAiIiJTUUxTVEFURSAyMjAzRCAtIHRvbyBtYW55IGpzb24gYXJyYXkgZWxlbWVudHMuIiIi CisKKyAgICBwYXNzCisKKworY2xhc3MgVG9vTWFueUpzb25PYmplY3RNZW1iZXJzKERhdGFFeGNl cHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDNFIC0gdG9vIG1hbnkganNvbiBvYmplY3QgbWVt YmVycy4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBTUUxKc29uU2NhbGFyUmVxdWlyZWQoRGF0 YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwM0YgLSBzcWwganNvbiBzY2FsYXIgcmVx dWlyZWQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgU1FMSnNvbkl0ZW1DYW5ub3RCZUNhc3RU b1RhcmdldFR5cGUoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwM0cgLSBzcWwg anNvbiBpdGVtIGNhbm5vdCBiZSBjYXN0IHRvIHRhcmdldCB0eXBlLiIiIgorCisgICAgcGFzcwor CisKK2NsYXNzIEludGVncml0eUNvbnN0cmFpbnRWaW9sYXRpb24oTGlicHFFcnJvcik6CisgICAg IiIiU1FMU1RBVEUgMjMwMDAgLSBpbnRlZ3JpdHkgY29uc3RyYWludCB2aW9sYXRpb24uIiIiCisK KyAgICBwYXNzCisKKworY2xhc3MgUmVzdHJpY3RWaW9sYXRpb24oSW50ZWdyaXR5Q29uc3RyYWlu dFZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjMwMDEgLSByZXN0cmljdCB2aW9sYXRpb24u IiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgTm90TnVsbFZpb2xhdGlvbihJbnRlZ3JpdHlDb25z dHJhaW50VmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMzUwMiAtIG5vdCBudWxsIHZpb2xh dGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBGb3JlaWduS2V5VmlvbGF0aW9uKEludGVn cml0eUNvbnN0cmFpbnRWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDIzNTAzIC0gZm9yZWln biBrZXkgdmlvbGF0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFVuaXF1ZVZpb2xhdGlv bihJbnRlZ3JpdHlDb25zdHJhaW50VmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMzUwNSAt IHVuaXF1ZSB2aW9sYXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgQ2hlY2tWaW9sYXRp b24oSW50ZWdyaXR5Q29uc3RyYWludFZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjM1MTQg LSBjaGVjayB2aW9sYXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRXhjbHVzaW9uVmlv bGF0aW9uKEludGVncml0eUNvbnN0cmFpbnRWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDIz UDAxIC0gZXhjbHVzaW9uIHZpb2xhdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZh bGlkQ3Vyc29yU3RhdGUoTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgMjQwMDAgLSBpbnZh bGlkIGN1cnNvciBzdGF0ZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkVHJhbnNh Y3Rpb25TdGF0ZShMaWJwcUVycm9yKToKKyAgICAiIiJTUUxTVEFURSAyNTAwMCAtIGludmFsaWQg dHJhbnNhY3Rpb24gc3RhdGUuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgQWN0aXZlU1FMVHJh bnNhY3Rpb24oSW52YWxpZFRyYW5zYWN0aW9uU3RhdGUpOgorICAgICIiIlNRTFNUQVRFIDI1MDAx IC0gYWN0aXZlIHNxbCB0cmFuc2FjdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBCcmFu Y2hUcmFuc2FjdGlvbkFscmVhZHlBY3RpdmUoSW52YWxpZFRyYW5zYWN0aW9uU3RhdGUpOgorICAg ICIiIlNRTFNUQVRFIDI1MDAyIC0gYnJhbmNoIHRyYW5zYWN0aW9uIGFscmVhZHkgYWN0aXZlLiIi IgorCisgICAgcGFzcworCisKK2NsYXNzIEhlbGRDdXJzb3JSZXF1aXJlc1NhbWVJc29sYXRpb25M ZXZlbChJbnZhbGlkVHJhbnNhY3Rpb25TdGF0ZSk6CisgICAgIiIiU1FMU1RBVEUgMjUwMDggLSBo ZWxkIGN1cnNvciByZXF1aXJlcyBzYW1lIGlzb2xhdGlvbiBsZXZlbC4iIiIKKworICAgIHBhc3MK KworCitjbGFzcyBJbmFwcHJvcHJpYXRlQWNjZXNzTW9kZUZvckJyYW5jaFRyYW5zYWN0aW9uKElu dmFsaWRUcmFuc2FjdGlvblN0YXRlKToKKyAgICAiIiJTUUxTVEFURSAyNTAwMyAtIGluYXBwcm9w cmlhdGUgYWNjZXNzIG1vZGUgZm9yIGJyYW5jaCB0cmFuc2FjdGlvbi4iIiIKKworICAgIHBhc3MK KworCitjbGFzcyBJbmFwcHJvcHJpYXRlSXNvbGF0aW9uTGV2ZWxGb3JCcmFuY2hUcmFuc2FjdGlv bihJbnZhbGlkVHJhbnNhY3Rpb25TdGF0ZSk6CisgICAgIiIiU1FMU1RBVEUgMjUwMDQgLSBpbmFw cHJvcHJpYXRlIGlzb2xhdGlvbiBsZXZlbCBmb3IgYnJhbmNoIHRyYW5zYWN0aW9uLiIiIgorCisg ICAgcGFzcworCisKK2NsYXNzIE5vQWN0aXZlU1FMVHJhbnNhY3Rpb25Gb3JCcmFuY2hUcmFuc2Fj dGlvbihJbnZhbGlkVHJhbnNhY3Rpb25TdGF0ZSk6CisgICAgIiIiU1FMU1RBVEUgMjUwMDUgLSBu byBhY3RpdmUgc3FsIHRyYW5zYWN0aW9uIGZvciBicmFuY2ggdHJhbnNhY3Rpb24uIiIiCisKKyAg ICBwYXNzCisKKworY2xhc3MgUmVhZE9ubHlTUUxUcmFuc2FjdGlvbihJbnZhbGlkVHJhbnNhY3Rp b25TdGF0ZSk6CisgICAgIiIiU1FMU1RBVEUgMjUwMDYgLSByZWFkIG9ubHkgc3FsIHRyYW5zYWN0 aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFNjaGVtYUFuZERhdGFTdGF0ZW1lbnRNaXhp bmdOb3RTdXBwb3J0ZWQoSW52YWxpZFRyYW5zYWN0aW9uU3RhdGUpOgorICAgICIiIlNRTFNUQVRF IDI1MDA3IC0gc2NoZW1hIGFuZCBkYXRhIHN0YXRlbWVudCBtaXhpbmcgbm90IHN1cHBvcnRlZC4i IiIKKworICAgIHBhc3MKKworCitjbGFzcyBOb0FjdGl2ZVNRTFRyYW5zYWN0aW9uKEludmFsaWRU cmFuc2FjdGlvblN0YXRlKToKKyAgICAiIiJTUUxTVEFURSAyNVAwMSAtIG5vIGFjdGl2ZSBzcWwg dHJhbnNhY3Rpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW5GYWlsZWRTUUxUcmFuc2Fj dGlvbihJbnZhbGlkVHJhbnNhY3Rpb25TdGF0ZSk6CisgICAgIiIiU1FMU1RBVEUgMjVQMDIgLSBp biBmYWlsZWQgc3FsIHRyYW5zYWN0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIElkbGVJ blRyYW5zYWN0aW9uU2Vzc2lvblRpbWVvdXQoSW52YWxpZFRyYW5zYWN0aW9uU3RhdGUpOgorICAg ICIiIlNRTFNUQVRFIDI1UDAzIC0gaWRsZSBpbiB0cmFuc2FjdGlvbiBzZXNzaW9uIHRpbWVvdXQu IiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgVHJhbnNhY3Rpb25UaW1lb3V0KEludmFsaWRUcmFu c2FjdGlvblN0YXRlKToKKyAgICAiIiJTUUxTVEFURSAyNVAwNCAtIHRyYW5zYWN0aW9uIHRpbWVv dXQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZFNRTFN0YXRlbWVudE5hbWUoTGli cHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgMjYwMDAgLSBpbnZhbGlkIHNxbCBzdGF0ZW1lbnQg bmFtZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBUcmlnZ2VyZWREYXRhQ2hhbmdlVmlvbGF0 aW9uKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDI3MDAwIC0gdHJpZ2dlcmVkIGRhdGEg Y2hhbmdlIHZpb2xhdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkQXV0aG9y aXphdGlvblNwZWNpZmljYXRpb24oTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgMjgwMDAg LSBpbnZhbGlkIGF1dGhvcml6YXRpb24gc3BlY2lmaWNhdGlvbi4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBJbnZhbGlkUGFzc3dvcmQoSW52YWxpZEF1dGhvcml6YXRpb25TcGVjaWZpY2F0aW9u KToKKyAgICAiIiJTUUxTVEFURSAyOFAwMSAtIGludmFsaWQgcGFzc3dvcmQuIiIiCisKKyAgICBw YXNzCisKKworY2xhc3MgRGVwZW5kZW50UHJpdmlsZWdlRGVzY3JpcHRvcnNTdGlsbEV4aXN0KExp YnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDJCMDAwIC0gZGVwZW5kZW50IHByaXZpbGVnZSBk ZXNjcmlwdG9ycyBzdGlsbCBleGlzdC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBEZXBlbmRl bnRPYmplY3RzU3RpbGxFeGlzdChEZXBlbmRlbnRQcml2aWxlZ2VEZXNjcmlwdG9yc1N0aWxsRXhp c3QpOgorICAgICIiIlNRTFNUQVRFIDJCUDAxIC0gZGVwZW5kZW50IG9iamVjdHMgc3RpbGwgZXhp c3QuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZFRyYW5zYWN0aW9uVGVybWluYXRp b24oTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgMkQwMDAgLSBpbnZhbGlkIHRyYW5zYWN0 aW9uIHRlcm1pbmF0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFNRTFJvdXRpbmVFeGNl cHRpb24oTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgMkYwMDAgLSBzcWwgcm91dGluZSBl eGNlcHRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRnVuY3Rpb25FeGVjdXRlZE5vUmV0 dXJuU3RhdGVtZW50KFNRTFJvdXRpbmVFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDJGMDA1 IC0gZnVuY3Rpb24gZXhlY3V0ZWQgbm8gcmV0dXJuIHN0YXRlbWVudC4iIiIKKworICAgIHBhc3MK KworCitjbGFzcyBTUkVNb2RpZnlpbmdTUUxEYXRhTm90UGVybWl0dGVkKFNRTFJvdXRpbmVFeGNl cHRpb24pOgorICAgICIiIlNRTFNUQVRFIDJGMDAyIC0gbW9kaWZ5aW5nIHNxbCBkYXRhIG5vdCBw ZXJtaXR0ZWQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgU1JFUHJvaGliaXRlZFNRTFN0YXRl bWVudEF0dGVtcHRlZChTUUxSb3V0aW5lRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyRjAw MyAtIHByb2hpYml0ZWQgc3FsIHN0YXRlbWVudCBhdHRlbXB0ZWQuIiIiCisKKyAgICBwYXNzCisK KworY2xhc3MgU1JFUmVhZGluZ1NRTERhdGFOb3RQZXJtaXR0ZWQoU1FMUm91dGluZUV4Y2VwdGlv bik6CisgICAgIiIiU1FMU1RBVEUgMkYwMDQgLSByZWFkaW5nIHNxbCBkYXRhIG5vdCBwZXJtaXR0 ZWQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZEN1cnNvck5hbWUoTGlicHFFcnJv cik6CisgICAgIiIiU1FMU1RBVEUgMzQwMDAgLSBpbnZhbGlkIGN1cnNvciBuYW1lLiIiIgorCisg ICAgcGFzcworCisKK2NsYXNzIEV4dGVybmFsUm91dGluZUV4Y2VwdGlvbihMaWJwcUVycm9yKToK KyAgICAiIiJTUUxTVEFURSAzODAwMCAtIGV4dGVybmFsIHJvdXRpbmUgZXhjZXB0aW9uLiIiIgor CisgICAgcGFzcworCisKK2NsYXNzIENvbnRhaW5pbmdTUUxOb3RQZXJtaXR0ZWQoRXh0ZXJuYWxS b3V0aW5lRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAzODAwMSAtIGNvbnRhaW5pbmcgc3Fs IG5vdCBwZXJtaXR0ZWQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRVJFTW9kaWZ5aW5nU1FM RGF0YU5vdFBlcm1pdHRlZChFeHRlcm5hbFJvdXRpbmVFeGNlcHRpb24pOgorICAgICIiIlNRTFNU QVRFIDM4MDAyIC0gbW9kaWZ5aW5nIHNxbCBkYXRhIG5vdCBwZXJtaXR0ZWQuIiIiCisKKyAgICBw YXNzCisKKworY2xhc3MgRVJFUHJvaGliaXRlZFNRTFN0YXRlbWVudEF0dGVtcHRlZChFeHRlcm5h bFJvdXRpbmVFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDM4MDAzIC0gcHJvaGliaXRlZCBz cWwgc3RhdGVtZW50IGF0dGVtcHRlZC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBFUkVSZWFk aW5nU1FMRGF0YU5vdFBlcm1pdHRlZChFeHRlcm5hbFJvdXRpbmVFeGNlcHRpb24pOgorICAgICIi IlNRTFNUQVRFIDM4MDA0IC0gcmVhZGluZyBzcWwgZGF0YSBub3QgcGVybWl0dGVkLiIiIgorCisg ICAgcGFzcworCisKK2NsYXNzIEV4dGVybmFsUm91dGluZUludm9jYXRpb25FeGNlcHRpb24oTGli cHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgMzkwMDAgLSBleHRlcm5hbCByb3V0aW5lIGludm9j YXRpb24gZXhjZXB0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRTcWxzdGF0 ZVJldHVybmVkKEV4dGVybmFsUm91dGluZUludm9jYXRpb25FeGNlcHRpb24pOgorICAgICIiIlNR TFNUQVRFIDM5MDAxIC0gaW52YWxpZCBzcWxzdGF0ZSByZXR1cm5lZC4iIiIKKworICAgIHBhc3MK KworCitjbGFzcyBFUklFTnVsbFZhbHVlTm90QWxsb3dlZChFeHRlcm5hbFJvdXRpbmVJbnZvY2F0 aW9uRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAzOTAwNCAtIG51bGwgdmFsdWUgbm90IGFs bG93ZWQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgVHJpZ2dlclByb3RvY29sVmlvbGF0ZWQo RXh0ZXJuYWxSb3V0aW5lSW52b2NhdGlvbkV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMzlQ MDEgLSB0cmlnZ2VyIHByb3RvY29sIHZpb2xhdGVkLiIiIgorCisgICAgcGFzcworCisKK2NsYXNz IFNyZlByb3RvY29sVmlvbGF0ZWQoRXh0ZXJuYWxSb3V0aW5lSW52b2NhdGlvbkV4Y2VwdGlvbik6 CisgICAgIiIiU1FMU1RBVEUgMzlQMDIgLSBzcmYgcHJvdG9jb2wgdmlvbGF0ZWQuIiIiCisKKyAg ICBwYXNzCisKKworY2xhc3MgRXZlbnRUcmlnZ2VyUHJvdG9jb2xWaW9sYXRlZChFeHRlcm5hbFJv dXRpbmVJbnZvY2F0aW9uRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAzOVAwMyAtIGV2ZW50 IHRyaWdnZXIgcHJvdG9jb2wgdmlvbGF0ZWQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgU2F2 ZXBvaW50RXhjZXB0aW9uKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDNCMDAwIC0gc2F2 ZXBvaW50IGV4Y2VwdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkU2F2ZXBv aW50U3BlY2lmaWNhdGlvbihTYXZlcG9pbnRFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDNC MDAxIC0gaW52YWxpZCBzYXZlcG9pbnQgc3BlY2lmaWNhdGlvbi4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBJbnZhbGlkQ2F0YWxvZ05hbWUoTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUg M0QwMDAgLSBpbnZhbGlkIGNhdGFsb2cgbmFtZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJ bnZhbGlkU2NoZW1hTmFtZShMaWJwcUVycm9yKToKKyAgICAiIiJTUUxTVEFURSAzRjAwMCAtIGlu dmFsaWQgc2NoZW1hIG5hbWUuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgVHJhbnNhY3Rpb25S b2xsYmFjayhMaWJwcUVycm9yKToKKyAgICAiIiJTUUxTVEFURSA0MDAwMCAtIHRyYW5zYWN0aW9u IHJvbGxiYWNrLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFRyYW5zYWN0aW9uSW50ZWdyaXR5 Q29uc3RyYWludFZpb2xhdGlvbihUcmFuc2FjdGlvblJvbGxiYWNrKToKKyAgICAiIiJTUUxTVEFU RSA0MDAwMiAtIHRyYW5zYWN0aW9uIGludGVncml0eSBjb25zdHJhaW50IHZpb2xhdGlvbi4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBTZXJpYWxpemF0aW9uRmFpbHVyZShUcmFuc2FjdGlvblJv bGxiYWNrKToKKyAgICAiIiJTUUxTVEFURSA0MDAwMSAtIHNlcmlhbGl6YXRpb24gZmFpbHVyZS4i IiIKKworICAgIHBhc3MKKworCitjbGFzcyBTdGF0ZW1lbnRDb21wbGV0aW9uVW5rbm93bihUcmFu c2FjdGlvblJvbGxiYWNrKToKKyAgICAiIiJTUUxTVEFURSA0MDAwMyAtIHN0YXRlbWVudCBjb21w bGV0aW9uIHVua25vd24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRGVhZGxvY2tEZXRlY3Rl ZChUcmFuc2FjdGlvblJvbGxiYWNrKToKKyAgICAiIiJTUUxTVEFURSA0MFAwMSAtIGRlYWRsb2Nr IGRldGVjdGVkLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFN5bnRheEVycm9yT3JBY2Nlc3NS dWxlVmlvbGF0aW9uKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDQyMDAwIC0gc3ludGF4 IGVycm9yIG9yIGFjY2VzcyBydWxlIHZpb2xhdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFz cyBTeW50YXhFcnJvcihTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIi U1FMU1RBVEUgNDI2MDEgLSBzeW50YXggZXJyb3IuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg SW5zdWZmaWNpZW50UHJpdmlsZWdlKFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToK KyAgICAiIiJTUUxTVEFURSA0MjUwMSAtIGluc3VmZmljaWVudCBwcml2aWxlZ2UuIiIiCisKKyAg ICBwYXNzCisKKworY2xhc3MgQ2Fubm90Q29lcmNlKFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlv bGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0Mjg0NiAtIGNhbm5vdCBjb2VyY2UuIiIiCisKKyAg ICBwYXNzCisKKworY2xhc3MgR3JvdXBpbmdFcnJvcihTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZp b2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDI4MDMgLSBncm91cGluZyBlcnJvci4iIiIKKwor ICAgIHBhc3MKKworCitjbGFzcyBXaW5kb3dpbmdFcnJvcihTeW50YXhFcnJvck9yQWNjZXNzUnVs ZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDJQMjAgLSB3aW5kb3dpbmcgZXJyb3IuIiIi CisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZFJlY3Vyc2lvbihTeW50YXhFcnJvck9yQWNj ZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDJQMTkgLSBpbnZhbGlkIHJlY3Vy c2lvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkRm9yZWlnbktleShTeW50YXhF cnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDI4MzAgLSBpbnZh bGlkIGZvcmVpZ24ga2V5LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWROYW1lKFN5 bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MjYwMiAt IGludmFsaWQgbmFtZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBOYW1lVG9vTG9uZyhTeW50 YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDI2MjIgLSBu YW1lIHRvbyBsb25nLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFJlc2VydmVkTmFtZShTeW50 YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDI5MzkgLSBy ZXNlcnZlZCBuYW1lLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIERhdGF0eXBlTWlzbWF0Y2go U3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyODA0 IC0gZGF0YXR5cGUgbWlzbWF0Y2guIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW5kZXRlcm1p bmF0ZURhdGF0eXBlKFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJT UUxTVEFURSA0MlAxOCAtIGluZGV0ZXJtaW5hdGUgZGF0YXR5cGUuIiIiCisKKyAgICBwYXNzCisK KworY2xhc3MgQ29sbGF0aW9uTWlzbWF0Y2goU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRp b24pOgorICAgICIiIlNRTFNUQVRFIDQyUDIxIC0gY29sbGF0aW9uIG1pc21hdGNoLiIiIgorCisg ICAgcGFzcworCisKK2NsYXNzIEluZGV0ZXJtaW5hdGVDb2xsYXRpb24oU3ludGF4RXJyb3JPckFj Y2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyUDIyIC0gaW5kZXRlcm1pbmF0 ZSBjb2xsYXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgV3JvbmdPYmplY3RUeXBlKFN5 bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MjgwOSAt IHdyb25nIG9iamVjdCB0eXBlLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEdlbmVyYXRlZEFs d2F5cyhTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUg NDI4QzkgLSBnZW5lcmF0ZWQgYWx3YXlzLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFVuZGVm aW5lZENvbHVtbihTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FM U1RBVEUgNDI3MDMgLSB1bmRlZmluZWQgY29sdW1uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNz IFVuZGVmaW5lZEZ1bmN0aW9uKFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAg ICAiIiJTUUxTVEFURSA0Mjg4MyAtIHVuZGVmaW5lZCBmdW5jdGlvbi4iIiIKKworICAgIHBhc3MK KworCitjbGFzcyBVbmRlZmluZWRUYWJsZShTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlv bik6CisgICAgIiIiU1FMU1RBVEUgNDJQMDEgLSB1bmRlZmluZWQgdGFibGUuIiIiCisKKyAgICBw YXNzCisKKworY2xhc3MgVW5kZWZpbmVkUGFyYW1ldGVyKFN5bnRheEVycm9yT3JBY2Nlc3NSdWxl VmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MlAwMiAtIHVuZGVmaW5lZCBwYXJhbWV0ZXIu IiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgVW5kZWZpbmVkT2JqZWN0KFN5bnRheEVycm9yT3JB Y2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MjcwNCAtIHVuZGVmaW5lZCBv YmplY3QuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRHVwbGljYXRlQ29sdW1uKFN5bnRheEVy cm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MjcwMSAtIGR1cGxp Y2F0ZSBjb2x1bW4uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRHVwbGljYXRlQ3Vyc29yKFN5 bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MlAwMyAt IGR1cGxpY2F0ZSBjdXJzb3IuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRHVwbGljYXRlRGF0 YWJhc2UoU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRF IDQyUDA0IC0gZHVwbGljYXRlIGRhdGFiYXNlLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIER1 cGxpY2F0ZUZ1bmN0aW9uKFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAi IiJTUUxTVEFURSA0MjcyMyAtIGR1cGxpY2F0ZSBmdW5jdGlvbi4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBEdXBsaWNhdGVQcmVwYXJlZFN0YXRlbWVudChTeW50YXhFcnJvck9yQWNjZXNzUnVs ZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDJQMDUgLSBkdXBsaWNhdGUgcHJlcGFyZWQg c3RhdGVtZW50LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIER1cGxpY2F0ZVNjaGVtYShTeW50 YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDJQMDYgLSBk dXBsaWNhdGUgc2NoZW1hLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIER1cGxpY2F0ZVRhYmxl KFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MlAw NyAtIGR1cGxpY2F0ZSB0YWJsZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBEdXBsaWNhdGVB bGlhcyhTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUg NDI3MTIgLSBkdXBsaWNhdGUgYWxpYXMuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRHVwbGlj YXRlT2JqZWN0KFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxT VEFURSA0MjcxMCAtIGR1cGxpY2F0ZSBvYmplY3QuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg QW1iaWd1b3VzQ29sdW1uKFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAi IiJTUUxTVEFURSA0MjcwMiAtIGFtYmlndW91cyBjb2x1bW4uIiIiCisKKyAgICBwYXNzCisKKwor Y2xhc3MgQW1iaWd1b3VzRnVuY3Rpb24oU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24p OgorICAgICIiIlNRTFNUQVRFIDQyNzI1IC0gYW1iaWd1b3VzIGZ1bmN0aW9uLiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIEFtYmlndW91c1BhcmFtZXRlcihTeW50YXhFcnJvck9yQWNjZXNzUnVs ZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDJQMDggLSBhbWJpZ3VvdXMgcGFyYW1ldGVy LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEFtYmlndW91c0FsaWFzKFN5bnRheEVycm9yT3JB Y2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MlAwOSAtIGFtYmlndW91cyBh bGlhcy4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkQ29sdW1uUmVmZXJlbmNlKFN5 bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MlAxMCAt IGludmFsaWQgY29sdW1uIHJlZmVyZW5jZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZh bGlkQ29sdW1uRGVmaW5pdGlvbihTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6Cisg ICAgIiIiU1FMU1RBVEUgNDI2MTEgLSBpbnZhbGlkIGNvbHVtbiBkZWZpbml0aW9uLiIiIgorCisg ICAgcGFzcworCisKK2NsYXNzIEludmFsaWRDdXJzb3JEZWZpbml0aW9uKFN5bnRheEVycm9yT3JB Y2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MlAxMSAtIGludmFsaWQgY3Vy c29yIGRlZmluaXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZERhdGFiYXNl RGVmaW5pdGlvbihTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FM U1RBVEUgNDJQMTIgLSBpbnZhbGlkIGRhdGFiYXNlIGRlZmluaXRpb24uIiIiCisKKyAgICBwYXNz CisKKworY2xhc3MgSW52YWxpZEZ1bmN0aW9uRGVmaW5pdGlvbihTeW50YXhFcnJvck9yQWNjZXNz UnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDJQMTMgLSBpbnZhbGlkIGZ1bmN0aW9u IGRlZmluaXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZFByZXBhcmVkU3Rh dGVtZW50RGVmaW5pdGlvbihTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAg IiIiU1FMU1RBVEUgNDJQMTQgLSBpbnZhbGlkIHByZXBhcmVkIHN0YXRlbWVudCBkZWZpbml0aW9u LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRTY2hlbWFEZWZpbml0aW9uKFN5bnRh eEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MlAxNSAtIGlu dmFsaWQgc2NoZW1hIGRlZmluaXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxp ZFRhYmxlRGVmaW5pdGlvbihTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAg IiIiU1FMU1RBVEUgNDJQMTYgLSBpbnZhbGlkIHRhYmxlIGRlZmluaXRpb24uIiIiCisKKyAgICBw YXNzCisKKworY2xhc3MgSW52YWxpZE9iamVjdERlZmluaXRpb24oU3ludGF4RXJyb3JPckFjY2Vz c1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyUDE3IC0gaW52YWxpZCBvYmplY3Qg ZGVmaW5pdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBXaXRoQ2hlY2tPcHRpb25WaW9s YXRpb24oTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgNDQwMDAgLSB3aXRoIGNoZWNrIG9w dGlvbiB2aW9sYXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW5zdWZmaWNpZW50UmVz b3VyY2VzKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDUzMDAwIC0gaW5zdWZmaWNpZW50 IHJlc291cmNlcy4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBEaXNrRnVsbChJbnN1ZmZpY2ll bnRSZXNvdXJjZXMpOgorICAgICIiIlNRTFNUQVRFIDUzMTAwIC0gZGlzayBmdWxsLiIiIgorCisg ICAgcGFzcworCisKK2NsYXNzIE91dE9mTWVtb3J5KEluc3VmZmljaWVudFJlc291cmNlcyk6Cisg ICAgIiIiU1FMU1RBVEUgNTMyMDAgLSBvdXQgb2YgbWVtb3J5LiIiIgorCisgICAgcGFzcworCisK K2NsYXNzIFRvb01hbnlDb25uZWN0aW9ucyhJbnN1ZmZpY2llbnRSZXNvdXJjZXMpOgorICAgICIi IlNRTFNUQVRFIDUzMzAwIC0gdG9vIG1hbnkgY29ubmVjdGlvbnMuIiIiCisKKyAgICBwYXNzCisK KworY2xhc3MgQ29uZmlndXJhdGlvbkxpbWl0RXhjZWVkZWQoSW5zdWZmaWNpZW50UmVzb3VyY2Vz KToKKyAgICAiIiJTUUxTVEFURSA1MzQwMCAtIGNvbmZpZ3VyYXRpb24gbGltaXQgZXhjZWVkZWQu IiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgUHJvZ3JhbUxpbWl0RXhjZWVkZWQoTGlicHFFcnJv cik6CisgICAgIiIiU1FMU1RBVEUgNTQwMDAgLSBwcm9ncmFtIGxpbWl0IGV4Y2VlZGVkLiIiIgor CisgICAgcGFzcworCisKK2NsYXNzIFN0YXRlbWVudFRvb0NvbXBsZXgoUHJvZ3JhbUxpbWl0RXhj ZWVkZWQpOgorICAgICIiIlNRTFNUQVRFIDU0MDAxIC0gc3RhdGVtZW50IHRvbyBjb21wbGV4LiIi IgorCisgICAgcGFzcworCisKK2NsYXNzIFRvb01hbnlDb2x1bW5zKFByb2dyYW1MaW1pdEV4Y2Vl ZGVkKToKKyAgICAiIiJTUUxTVEFURSA1NDAxMSAtIHRvbyBtYW55IGNvbHVtbnMuIiIiCisKKyAg ICBwYXNzCisKKworY2xhc3MgVG9vTWFueUFyZ3VtZW50cyhQcm9ncmFtTGltaXRFeGNlZWRlZCk6 CisgICAgIiIiU1FMU1RBVEUgNTQwMjMgLSB0b28gbWFueSBhcmd1bWVudHMuIiIiCisKKyAgICBw YXNzCisKKworY2xhc3MgT2JqZWN0Tm90SW5QcmVyZXF1aXNpdGVTdGF0ZShMaWJwcUVycm9yKToK KyAgICAiIiJTUUxTVEFURSA1NTAwMCAtIG9iamVjdCBub3QgaW4gcHJlcmVxdWlzaXRlIHN0YXRl LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIE9iamVjdEluVXNlKE9iamVjdE5vdEluUHJlcmVx dWlzaXRlU3RhdGUpOgorICAgICIiIlNRTFNUQVRFIDU1MDA2IC0gb2JqZWN0IGluIHVzZS4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBDYW50Q2hhbmdlUnVudGltZVBhcmFtKE9iamVjdE5vdElu UHJlcmVxdWlzaXRlU3RhdGUpOgorICAgICIiIlNRTFNUQVRFIDU1UDAyIC0gY2FudCBjaGFuZ2Ug cnVudGltZSBwYXJhbS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBMb2NrTm90QXZhaWxhYmxl KE9iamVjdE5vdEluUHJlcmVxdWlzaXRlU3RhdGUpOgorICAgICIiIlNRTFNUQVRFIDU1UDAzIC0g bG9jayBub3QgYXZhaWxhYmxlLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFVuc2FmZU5ld0Vu dW1WYWx1ZVVzYWdlKE9iamVjdE5vdEluUHJlcmVxdWlzaXRlU3RhdGUpOgorICAgICIiIlNRTFNU QVRFIDU1UDA0IC0gdW5zYWZlIG5ldyBlbnVtIHZhbHVlIHVzYWdlLiIiIgorCisgICAgcGFzcwor CisKK2NsYXNzIE9wZXJhdG9ySW50ZXJ2ZW50aW9uKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNU QVRFIDU3MDAwIC0gb3BlcmF0b3IgaW50ZXJ2ZW50aW9uLiIiIgorCisgICAgcGFzcworCisKK2Ns YXNzIFF1ZXJ5Q2FuY2VsZWQoT3BlcmF0b3JJbnRlcnZlbnRpb24pOgorICAgICIiIlNRTFNUQVRF IDU3MDE0IC0gcXVlcnkgY2FuY2VsZWQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgQWRtaW5T aHV0ZG93bihPcGVyYXRvckludGVydmVudGlvbik6CisgICAgIiIiU1FMU1RBVEUgNTdQMDEgLSBh ZG1pbiBzaHV0ZG93bi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBDcmFzaFNodXRkb3duKE9w ZXJhdG9ySW50ZXJ2ZW50aW9uKToKKyAgICAiIiJTUUxTVEFURSA1N1AwMiAtIGNyYXNoIHNodXRk b3duLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIENhbm5vdENvbm5lY3ROb3coT3BlcmF0b3JJ bnRlcnZlbnRpb24pOgorICAgICIiIlNRTFNUQVRFIDU3UDAzIC0gY2Fubm90IGNvbm5lY3Qgbm93 LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIERhdGFiYXNlRHJvcHBlZChPcGVyYXRvckludGVy dmVudGlvbik6CisgICAgIiIiU1FMU1RBVEUgNTdQMDQgLSBkYXRhYmFzZSBkcm9wcGVkLiIiIgor CisgICAgcGFzcworCisKK2NsYXNzIElkbGVTZXNzaW9uVGltZW91dChPcGVyYXRvckludGVydmVu dGlvbik6CisgICAgIiIiU1FMU1RBVEUgNTdQMDUgLSBpZGxlIHNlc3Npb24gdGltZW91dC4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBTeXN0ZW1FcnJvcihMaWJwcUVycm9yKToKKyAgICAiIiJT UUxTVEFURSA1ODAwMCAtIHN5c3RlbSBlcnJvci4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJ b0Vycm9yKFN5c3RlbUVycm9yKToKKyAgICAiIiJTUUxTVEFURSA1ODAzMCAtIGlvIGVycm9yLiIi IgorCisgICAgcGFzcworCisKK2NsYXNzIFVuZGVmaW5lZEZpbGUoU3lzdGVtRXJyb3IpOgorICAg ICIiIlNRTFNUQVRFIDU4UDAxIC0gdW5kZWZpbmVkIGZpbGUuIiIiCisKKyAgICBwYXNzCisKKwor Y2xhc3MgRHVwbGljYXRlRmlsZShTeXN0ZW1FcnJvcik6CisgICAgIiIiU1FMU1RBVEUgNThQMDIg LSBkdXBsaWNhdGUgZmlsZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBGaWxlTmFtZVRvb0xv bmcoU3lzdGVtRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDU4UDAzIC0gZmlsZSBuYW1lIHRvbyBs b25nLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIENvbmZpZ0ZpbGVFcnJvcihMaWJwcUVycm9y KToKKyAgICAiIiJTUUxTVEFURSBGMDAwMCAtIGNvbmZpZyBmaWxlIGVycm9yLiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIExvY2tGaWxlRXhpc3RzKENvbmZpZ0ZpbGVFcnJvcik6CisgICAgIiIi U1FMU1RBVEUgRjAwMDEgLSBsb2NrIGZpbGUgZXhpc3RzLiIiIgorCisgICAgcGFzcworCisKK2Ns YXNzIEZEV0Vycm9yKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIEhWMDAwIC0gZmR3IGVy cm9yLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEZEV0NvbHVtbk5hbWVOb3RGb3VuZChGRFdF cnJvcik6CisgICAgIiIiU1FMU1RBVEUgSFYwMDUgLSBmZHcgY29sdW1uIG5hbWUgbm90IGZvdW5k LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEZEV0R5bmFtaWNQYXJhbWV0ZXJWYWx1ZU5lZWRl ZChGRFdFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgSFYwMDIgLSBmZHcgZHluYW1pYyBwYXJhbWV0 ZXIgdmFsdWUgbmVlZGVkLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEZEV0Z1bmN0aW9uU2Vx dWVuY2VFcnJvcihGRFdFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgSFYwMTAgLSBmZHcgZnVuY3Rp b24gc2VxdWVuY2UgZXJyb3IuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRkRXSW5jb25zaXN0 ZW50RGVzY3JpcHRvckluZm9ybWF0aW9uKEZEV0Vycm9yKToKKyAgICAiIiJTUUxTVEFURSBIVjAy MSAtIGZkdyBpbmNvbnNpc3RlbnQgZGVzY3JpcHRvciBpbmZvcm1hdGlvbi4iIiIKKworICAgIHBh c3MKKworCitjbGFzcyBGRFdJbnZhbGlkQXR0cmlidXRlVmFsdWUoRkRXRXJyb3IpOgorICAgICIi IlNRTFNUQVRFIEhWMDI0IC0gZmR3IGludmFsaWQgYXR0cmlidXRlIHZhbHVlLiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIEZEV0ludmFsaWRDb2x1bW5OYW1lKEZEV0Vycm9yKToKKyAgICAiIiJT UUxTVEFURSBIVjAwNyAtIGZkdyBpbnZhbGlkIGNvbHVtbiBuYW1lLiIiIgorCisgICAgcGFzcwor CisKK2NsYXNzIEZEV0ludmFsaWRDb2x1bW5OdW1iZXIoRkRXRXJyb3IpOgorICAgICIiIlNRTFNU QVRFIEhWMDA4IC0gZmR3IGludmFsaWQgY29sdW1uIG51bWJlci4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBGRFdJbnZhbGlkRGF0YVR5cGUoRkRXRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIEhW MDA0IC0gZmR3IGludmFsaWQgZGF0YSB0eXBlLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEZE V0ludmFsaWREYXRhVHlwZURlc2NyaXB0b3JzKEZEV0Vycm9yKToKKyAgICAiIiJTUUxTVEFURSBI VjAwNiAtIGZkdyBpbnZhbGlkIGRhdGEgdHlwZSBkZXNjcmlwdG9ycy4iIiIKKworICAgIHBhc3MK KworCitjbGFzcyBGRFdJbnZhbGlkRGVzY3JpcHRvckZpZWxkSWRlbnRpZmllcihGRFdFcnJvcik6 CisgICAgIiIiU1FMU1RBVEUgSFYwOTEgLSBmZHcgaW52YWxpZCBkZXNjcmlwdG9yIGZpZWxkIGlk ZW50aWZpZXIuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRkRXSW52YWxpZEhhbmRsZShGRFdF cnJvcik6CisgICAgIiIiU1FMU1RBVEUgSFYwMEIgLSBmZHcgaW52YWxpZCBoYW5kbGUuIiIiCisK KyAgICBwYXNzCisKKworY2xhc3MgRkRXSW52YWxpZE9wdGlvbkluZGV4KEZEV0Vycm9yKToKKyAg ICAiIiJTUUxTVEFURSBIVjAwQyAtIGZkdyBpbnZhbGlkIG9wdGlvbiBpbmRleC4iIiIKKworICAg IHBhc3MKKworCitjbGFzcyBGRFdJbnZhbGlkT3B0aW9uTmFtZShGRFdFcnJvcik6CisgICAgIiIi U1FMU1RBVEUgSFYwMEQgLSBmZHcgaW52YWxpZCBvcHRpb24gbmFtZS4iIiIKKworICAgIHBhc3MK KworCitjbGFzcyBGRFdJbnZhbGlkU3RyaW5nTGVuZ3RoT3JCdWZmZXJMZW5ndGgoRkRXRXJyb3Ip OgorICAgICIiIlNRTFNUQVRFIEhWMDkwIC0gZmR3IGludmFsaWQgc3RyaW5nIGxlbmd0aCBvciBi dWZmZXIgbGVuZ3RoLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEZEV0ludmFsaWRTdHJpbmdG b3JtYXQoRkRXRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIEhWMDBBIC0gZmR3IGludmFsaWQgc3Ry aW5nIGZvcm1hdC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBGRFdJbnZhbGlkVXNlT2ZOdWxs UG9pbnRlcihGRFdFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgSFYwMDkgLSBmZHcgaW52YWxpZCB1 c2Ugb2YgbnVsbCBwb2ludGVyLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEZEV1Rvb01hbnlI YW5kbGVzKEZEV0Vycm9yKToKKyAgICAiIiJTUUxTVEFURSBIVjAxNCAtIGZkdyB0b28gbWFueSBo YW5kbGVzLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEZEV091dE9mTWVtb3J5KEZEV0Vycm9y KToKKyAgICAiIiJTUUxTVEFURSBIVjAwMSAtIGZkdyBvdXQgb2YgbWVtb3J5LiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIEZEV05vU2NoZW1hcyhGRFdFcnJvcik6CisgICAgIiIiU1FMU1RBVEUg SFYwMFAgLSBmZHcgbm8gc2NoZW1hcy4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBGRFdPcHRp b25OYW1lTm90Rm91bmQoRkRXRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIEhWMDBKIC0gZmR3IG9w dGlvbiBuYW1lIG5vdCBmb3VuZC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBGRFdSZXBseUhh bmRsZShGRFdFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgSFYwMEsgLSBmZHcgcmVwbHkgaGFuZGxl LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEZEV1NjaGVtYU5vdEZvdW5kKEZEV0Vycm9yKToK KyAgICAiIiJTUUxTVEFURSBIVjAwUSAtIGZkdyBzY2hlbWEgbm90IGZvdW5kLiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIEZEV1RhYmxlTm90Rm91bmQoRkRXRXJyb3IpOgorICAgICIiIlNRTFNU QVRFIEhWMDBSIC0gZmR3IHRhYmxlIG5vdCBmb3VuZC4iIiIKKworICAgIHBhc3MKKworCitjbGFz cyBGRFdVbmFibGVUb0NyZWF0ZUV4ZWN1dGlvbihGRFdFcnJvcik6CisgICAgIiIiU1FMU1RBVEUg SFYwMEwgLSBmZHcgdW5hYmxlIHRvIGNyZWF0ZSBleGVjdXRpb24uIiIiCisKKyAgICBwYXNzCisK KworY2xhc3MgRkRXVW5hYmxlVG9DcmVhdGVSZXBseShGRFdFcnJvcik6CisgICAgIiIiU1FMU1RB VEUgSFYwME0gLSBmZHcgdW5hYmxlIHRvIGNyZWF0ZSByZXBseS4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBGRFdVbmFibGVUb0VzdGFibGlzaENvbm5lY3Rpb24oRkRXRXJyb3IpOgorICAgICIi IlNRTFNUQVRFIEhWMDBOIC0gZmR3IHVuYWJsZSB0byBlc3RhYmxpc2ggY29ubmVjdGlvbi4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBQbHBnc3FsRXJyb3IoTGlicHFFcnJvcik6CisgICAgIiIi U1FMU1RBVEUgUDAwMDAgLSBwbHBnc3FsIGVycm9yLiIiIgorCisgICAgcGFzcworCisKK2NsYXNz IFJhaXNlRXhjZXB0aW9uKFBscGdzcWxFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgUDAwMDEgLSBy YWlzZSBleGNlcHRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgTm9EYXRhRm91bmQoUGxw Z3NxbEVycm9yKToKKyAgICAiIiJTUUxTVEFURSBQMDAwMiAtIG5vIGRhdGEgZm91bmQuIiIiCisK KyAgICBwYXNzCisKKworY2xhc3MgVG9vTWFueVJvd3MoUGxwZ3NxbEVycm9yKToKKyAgICAiIiJT UUxTVEFURSBQMDAwMyAtIHRvbyBtYW55IHJvd3MuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg QXNzZXJ0RmFpbHVyZShQbHBnc3FsRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIFAwMDA0IC0gYXNz ZXJ0IGZhaWx1cmUuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW50ZXJuYWxFcnJvcihMaWJw cUVycm9yKToKKyAgICAiIiJTUUxTVEFURSBYWDAwMCAtIGludGVybmFsIGVycm9yLiIiIgorCisg ICAgcGFzcworCisKK2NsYXNzIERhdGFDb3JydXB0ZWQoSW50ZXJuYWxFcnJvcik6CisgICAgIiIi U1FMU1RBVEUgWFgwMDEgLSBkYXRhIGNvcnJ1cHRlZC4iIiIKKworICAgIHBhc3MKKworCitjbGFz cyBJbmRleENvcnJ1cHRlZChJbnRlcm5hbEVycm9yKToKKyAgICAiIiJTUUxTVEFURSBYWDAwMiAt IGluZGV4IGNvcnJ1cHRlZC4iIiIKKworICAgIHBhc3MKKworCitTUUxTVEFURV9UT19FWENFUFRJ T046IERpY3Rbc3RyLCB0eXBlXSA9IHsKKyAgICAiMDAwMDAiOiBTdWNjZXNzZnVsQ29tcGxldGlv biwKKyAgICAiMDEwMDAiOiBXYXJuaW5nLAorICAgICIwMTAwQyI6IER5bmFtaWNSZXN1bHRTZXRz UmV0dXJuZWRXYXJuaW5nLAorICAgICIwMTAwOCI6IEltcGxpY2l0WmVyb0JpdFBhZGRpbmdXYXJu aW5nLAorICAgICIwMTAwMyI6IE51bGxWYWx1ZUVsaW1pbmF0ZWRJblNldEZ1bmN0aW9uV2Fybmlu ZywKKyAgICAiMDEwMDciOiBQcml2aWxlZ2VOb3RHcmFudGVkV2FybmluZywKKyAgICAiMDEwMDYi OiBQcml2aWxlZ2VOb3RSZXZva2VkV2FybmluZywKKyAgICAiMDEwMDQiOiBTdHJpbmdEYXRhUmln aHRUcnVuY2F0aW9uV2FybmluZywKKyAgICAiMDFQMDEiOiBEZXByZWNhdGVkRmVhdHVyZVdhcm5p bmcsCisgICAgIjAyMDAwIjogTm9EYXRhLAorICAgICIwMjAwMSI6IE5vQWRkaXRpb25hbER5bmFt aWNSZXN1bHRTZXRzUmV0dXJuZWQsCisgICAgIjAzMDAwIjogU1FMU3RhdGVtZW50Tm90WWV0Q29t cGxldGUsCisgICAgIjA4MDAwIjogQ29ubmVjdGlvbkV4Y2VwdGlvbiwKKyAgICAiMDgwMDMiOiBD b25uZWN0aW9uRG9lc05vdEV4aXN0LAorICAgICIwODAwNiI6IENvbm5lY3Rpb25GYWlsdXJlLAor ICAgICIwODAwMSI6IFNRTENsaWVudFVuYWJsZVRvRXN0YWJsaXNoU1FMQ29ubmVjdGlvbiwKKyAg ICAiMDgwMDQiOiBTUUxTZXJ2ZXJSZWplY3RlZEVzdGFibGlzaG1lbnRPZlNRTENvbm5lY3Rpb24s CisgICAgIjA4MDA3IjogVHJhbnNhY3Rpb25SZXNvbHV0aW9uVW5rbm93biwKKyAgICAiMDhQMDEi OiBQcm90b2NvbFZpb2xhdGlvbiwKKyAgICAiMDkwMDAiOiBUcmlnZ2VyZWRBY3Rpb25FeGNlcHRp b24sCisgICAgIjBBMDAwIjogRmVhdHVyZU5vdFN1cHBvcnRlZCwKKyAgICAiMEIwMDAiOiBJbnZh bGlkVHJhbnNhY3Rpb25Jbml0aWF0aW9uLAorICAgICIwRjAwMCI6IExvY2F0b3JFeGNlcHRpb24s CisgICAgIjBGMDAxIjogSW52YWxpZExvY2F0b3JTcGVjaWZpY2F0aW9uLAorICAgICIwTDAwMCI6 IEludmFsaWRHcmFudG9yLAorICAgICIwTFAwMSI6IEludmFsaWRHcmFudE9wZXJhdGlvbiwKKyAg ICAiMFAwMDAiOiBJbnZhbGlkUm9sZVNwZWNpZmljYXRpb24sCisgICAgIjBaMDAwIjogRGlhZ25v c3RpY3NFeGNlcHRpb24sCisgICAgIjBaMDAyIjogU3RhY2tlZERpYWdub3N0aWNzQWNjZXNzZWRX aXRob3V0QWN0aXZlSGFuZGxlciwKKyAgICAiMTA2MDgiOiBJbnZhbGlkQXJndW1lbnRGb3JYcXVl cnksCisgICAgIjIwMDAwIjogQ2FzZU5vdEZvdW5kLAorICAgICIyMTAwMCI6IENhcmRpbmFsaXR5 VmlvbGF0aW9uLAorICAgICIyMjAwMCI6IERhdGFFeGNlcHRpb24sCisgICAgIjIyMDJFIjogQXJy YXlTdWJzY3JpcHRFcnJvciwKKyAgICAiMjIwMjEiOiBDaGFyYWN0ZXJOb3RJblJlcGVydG9pcmUs CisgICAgIjIyMDA4IjogRGF0ZXRpbWVGaWVsZE92ZXJmbG93LAorICAgICIyMjAxMiI6IERpdmlz aW9uQnlaZXJvLAorICAgICIyMjAwNSI6IEVycm9ySW5Bc3NpZ25tZW50LAorICAgICIyMjAwQiI6 IEVzY2FwZUNoYXJhY3RlckNvbmZsaWN0LAorICAgICIyMjAyMiI6IEluZGljYXRvck92ZXJmbG93 LAorICAgICIyMjAxNSI6IEludGVydmFsRmllbGRPdmVyZmxvdywKKyAgICAiMjIwMUUiOiBJbnZh bGlkQXJndW1lbnRGb3JMb2dhcml0aG0sCisgICAgIjIyMDE0IjogSW52YWxpZEFyZ3VtZW50Rm9y TnRpbGVGdW5jdGlvbiwKKyAgICAiMjIwMTYiOiBJbnZhbGlkQXJndW1lbnRGb3JOdGhWYWx1ZUZ1 bmN0aW9uLAorICAgICIyMjAxRiI6IEludmFsaWRBcmd1bWVudEZvclBvd2VyRnVuY3Rpb24sCisg ICAgIjIyMDFHIjogSW52YWxpZEFyZ3VtZW50Rm9yV2lkdGhCdWNrZXRGdW5jdGlvbiwKKyAgICAi MjIwMTgiOiBJbnZhbGlkQ2hhcmFjdGVyVmFsdWVGb3JDYXN0LAorICAgICIyMjAwNyI6IEludmFs aWREYXRldGltZUZvcm1hdCwKKyAgICAiMjIwMTkiOiBJbnZhbGlkRXNjYXBlQ2hhcmFjdGVyLAor ICAgICIyMjAwRCI6IEludmFsaWRFc2NhcGVPY3RldCwKKyAgICAiMjIwMjUiOiBJbnZhbGlkRXNj YXBlU2VxdWVuY2UsCisgICAgIjIyUDA2IjogTm9uc3RhbmRhcmRVc2VPZkVzY2FwZUNoYXJhY3Rl ciwKKyAgICAiMjIwMTAiOiBJbnZhbGlkSW5kaWNhdG9yUGFyYW1ldGVyVmFsdWUsCisgICAgIjIy MDIzIjogSW52YWxpZFBhcmFtZXRlclZhbHVlLAorICAgICIyMjAxMyI6IEludmFsaWRQcmVjZWRp bmdPckZvbGxvd2luZ1NpemUsCisgICAgIjIyMDFCIjogSW52YWxpZFJlZ3VsYXJFeHByZXNzaW9u LAorICAgICIyMjAxVyI6IEludmFsaWRSb3dDb3VudEluTGltaXRDbGF1c2UsCisgICAgIjIyMDFY IjogSW52YWxpZFJvd0NvdW50SW5SZXN1bHRPZmZzZXRDbGF1c2UsCisgICAgIjIyMDJIIjogSW52 YWxpZFRhYmxlc2FtcGxlQXJndW1lbnQsCisgICAgIjIyMDJHIjogSW52YWxpZFRhYmxlc2FtcGxl UmVwZWF0LAorICAgICIyMjAwOSI6IEludmFsaWRUaW1lWm9uZURpc3BsYWNlbWVudFZhbHVlLAor ICAgICIyMjAwQyI6IEludmFsaWRVc2VPZkVzY2FwZUNoYXJhY3RlciwKKyAgICAiMjIwMEciOiBN b3N0U3BlY2lmaWNUeXBlTWlzbWF0Y2gsCisgICAgIjIyMDA0IjogTnVsbFZhbHVlTm90QWxsb3dl ZCwKKyAgICAiMjIwMDIiOiBOdWxsVmFsdWVOb0luZGljYXRvclBhcmFtZXRlciwKKyAgICAiMjIw MDMiOiBOdW1lcmljVmFsdWVPdXRPZlJhbmdlLAorICAgICIyMjAwSCI6IFNlcXVlbmNlR2VuZXJh dG9yTGltaXRFeGNlZWRlZCwKKyAgICAiMjIwMjYiOiBTdHJpbmdEYXRhTGVuZ3RoTWlzbWF0Y2gs CisgICAgIjIyMDAxIjogU3RyaW5nRGF0YVJpZ2h0VHJ1bmNhdGlvbiwKKyAgICAiMjIwMTEiOiBT dWJzdHJpbmdFcnJvciwKKyAgICAiMjIwMjciOiBUcmltRXJyb3IsCisgICAgIjIyMDI0IjogVW50 ZXJtaW5hdGVkQ1N0cmluZywKKyAgICAiMjIwMEYiOiBaZXJvTGVuZ3RoQ2hhcmFjdGVyU3RyaW5n LAorICAgICIyMlAwMSI6IEZsb2F0aW5nUG9pbnRFeGNlcHRpb24sCisgICAgIjIyUDAyIjogSW52 YWxpZFRleHRSZXByZXNlbnRhdGlvbiwKKyAgICAiMjJQMDMiOiBJbnZhbGlkQmluYXJ5UmVwcmVz ZW50YXRpb24sCisgICAgIjIyUDA0IjogQmFkQ29weUZpbGVGb3JtYXQsCisgICAgIjIyUDA1Ijog VW50cmFuc2xhdGFibGVDaGFyYWN0ZXIsCisgICAgIjIyMDBMIjogTm90QW5YbWxEb2N1bWVudCwK KyAgICAiMjIwME0iOiBJbnZhbGlkWG1sRG9jdW1lbnQsCisgICAgIjIyMDBOIjogSW52YWxpZFht bENvbnRlbnQsCisgICAgIjIyMDBTIjogSW52YWxpZFhtbENvbW1lbnQsCisgICAgIjIyMDBUIjog SW52YWxpZFhtbFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwKKyAgICAiMjIwMzAiOiBEdXBsaWNhdGVK c29uT2JqZWN0S2V5VmFsdWUsCisgICAgIjIyMDMxIjogSW52YWxpZEFyZ3VtZW50Rm9yU1FMSnNv bkRhdGV0aW1lRnVuY3Rpb24sCisgICAgIjIyMDMyIjogSW52YWxpZEpzb25UZXh0LAorICAgICIy MjAzMyI6IEludmFsaWRTUUxKc29uU3Vic2NyaXB0LAorICAgICIyMjAzNCI6IE1vcmVUaGFuT25l U1FMSnNvbkl0ZW0sCisgICAgIjIyMDM1IjogTm9TUUxKc29uSXRlbSwKKyAgICAiMjIwMzYiOiBO b25OdW1lcmljU1FMSnNvbkl0ZW0sCisgICAgIjIyMDM3IjogTm9uVW5pcXVlS2V5c0luQUpzb25P YmplY3QsCisgICAgIjIyMDM4IjogU2luZ2xldG9uU1FMSnNvbkl0ZW1SZXF1aXJlZCwKKyAgICAi MjIwMzkiOiBTUUxKc29uQXJyYXlOb3RGb3VuZCwKKyAgICAiMjIwM0EiOiBTUUxKc29uTWVtYmVy Tm90Rm91bmQsCisgICAgIjIyMDNCIjogU1FMSnNvbk51bWJlck5vdEZvdW5kLAorICAgICIyMjAz QyI6IFNRTEpzb25PYmplY3ROb3RGb3VuZCwKKyAgICAiMjIwM0QiOiBUb29NYW55SnNvbkFycmF5 RWxlbWVudHMsCisgICAgIjIyMDNFIjogVG9vTWFueUpzb25PYmplY3RNZW1iZXJzLAorICAgICIy MjAzRiI6IFNRTEpzb25TY2FsYXJSZXF1aXJlZCwKKyAgICAiMjIwM0ciOiBTUUxKc29uSXRlbUNh bm5vdEJlQ2FzdFRvVGFyZ2V0VHlwZSwKKyAgICAiMjMwMDAiOiBJbnRlZ3JpdHlDb25zdHJhaW50 VmlvbGF0aW9uLAorICAgICIyMzAwMSI6IFJlc3RyaWN0VmlvbGF0aW9uLAorICAgICIyMzUwMiI6 IE5vdE51bGxWaW9sYXRpb24sCisgICAgIjIzNTAzIjogRm9yZWlnbktleVZpb2xhdGlvbiwKKyAg ICAiMjM1MDUiOiBVbmlxdWVWaW9sYXRpb24sCisgICAgIjIzNTE0IjogQ2hlY2tWaW9sYXRpb24s CisgICAgIjIzUDAxIjogRXhjbHVzaW9uVmlvbGF0aW9uLAorICAgICIyNDAwMCI6IEludmFsaWRD dXJzb3JTdGF0ZSwKKyAgICAiMjUwMDAiOiBJbnZhbGlkVHJhbnNhY3Rpb25TdGF0ZSwKKyAgICAi MjUwMDEiOiBBY3RpdmVTUUxUcmFuc2FjdGlvbiwKKyAgICAiMjUwMDIiOiBCcmFuY2hUcmFuc2Fj dGlvbkFscmVhZHlBY3RpdmUsCisgICAgIjI1MDA4IjogSGVsZEN1cnNvclJlcXVpcmVzU2FtZUlz b2xhdGlvbkxldmVsLAorICAgICIyNTAwMyI6IEluYXBwcm9wcmlhdGVBY2Nlc3NNb2RlRm9yQnJh bmNoVHJhbnNhY3Rpb24sCisgICAgIjI1MDA0IjogSW5hcHByb3ByaWF0ZUlzb2xhdGlvbkxldmVs Rm9yQnJhbmNoVHJhbnNhY3Rpb24sCisgICAgIjI1MDA1IjogTm9BY3RpdmVTUUxUcmFuc2FjdGlv bkZvckJyYW5jaFRyYW5zYWN0aW9uLAorICAgICIyNTAwNiI6IFJlYWRPbmx5U1FMVHJhbnNhY3Rp b24sCisgICAgIjI1MDA3IjogU2NoZW1hQW5kRGF0YVN0YXRlbWVudE1peGluZ05vdFN1cHBvcnRl ZCwKKyAgICAiMjVQMDEiOiBOb0FjdGl2ZVNRTFRyYW5zYWN0aW9uLAorICAgICIyNVAwMiI6IElu RmFpbGVkU1FMVHJhbnNhY3Rpb24sCisgICAgIjI1UDAzIjogSWRsZUluVHJhbnNhY3Rpb25TZXNz aW9uVGltZW91dCwKKyAgICAiMjVQMDQiOiBUcmFuc2FjdGlvblRpbWVvdXQsCisgICAgIjI2MDAw IjogSW52YWxpZFNRTFN0YXRlbWVudE5hbWUsCisgICAgIjI3MDAwIjogVHJpZ2dlcmVkRGF0YUNo YW5nZVZpb2xhdGlvbiwKKyAgICAiMjgwMDAiOiBJbnZhbGlkQXV0aG9yaXphdGlvblNwZWNpZmlj YXRpb24sCisgICAgIjI4UDAxIjogSW52YWxpZFBhc3N3b3JkLAorICAgICIyQjAwMCI6IERlcGVu ZGVudFByaXZpbGVnZURlc2NyaXB0b3JzU3RpbGxFeGlzdCwKKyAgICAiMkJQMDEiOiBEZXBlbmRl bnRPYmplY3RzU3RpbGxFeGlzdCwKKyAgICAiMkQwMDAiOiBJbnZhbGlkVHJhbnNhY3Rpb25UZXJt aW5hdGlvbiwKKyAgICAiMkYwMDAiOiBTUUxSb3V0aW5lRXhjZXB0aW9uLAorICAgICIyRjAwNSI6 IEZ1bmN0aW9uRXhlY3V0ZWROb1JldHVyblN0YXRlbWVudCwKKyAgICAiMkYwMDIiOiBTUkVNb2Rp ZnlpbmdTUUxEYXRhTm90UGVybWl0dGVkLAorICAgICIyRjAwMyI6IFNSRVByb2hpYml0ZWRTUUxT dGF0ZW1lbnRBdHRlbXB0ZWQsCisgICAgIjJGMDA0IjogU1JFUmVhZGluZ1NRTERhdGFOb3RQZXJt aXR0ZWQsCisgICAgIjM0MDAwIjogSW52YWxpZEN1cnNvck5hbWUsCisgICAgIjM4MDAwIjogRXh0 ZXJuYWxSb3V0aW5lRXhjZXB0aW9uLAorICAgICIzODAwMSI6IENvbnRhaW5pbmdTUUxOb3RQZXJt aXR0ZWQsCisgICAgIjM4MDAyIjogRVJFTW9kaWZ5aW5nU1FMRGF0YU5vdFBlcm1pdHRlZCwKKyAg ICAiMzgwMDMiOiBFUkVQcm9oaWJpdGVkU1FMU3RhdGVtZW50QXR0ZW1wdGVkLAorICAgICIzODAw NCI6IEVSRVJlYWRpbmdTUUxEYXRhTm90UGVybWl0dGVkLAorICAgICIzOTAwMCI6IEV4dGVybmFs Um91dGluZUludm9jYXRpb25FeGNlcHRpb24sCisgICAgIjM5MDAxIjogSW52YWxpZFNxbHN0YXRl UmV0dXJuZWQsCisgICAgIjM5MDA0IjogRVJJRU51bGxWYWx1ZU5vdEFsbG93ZWQsCisgICAgIjM5 UDAxIjogVHJpZ2dlclByb3RvY29sVmlvbGF0ZWQsCisgICAgIjM5UDAyIjogU3JmUHJvdG9jb2xW aW9sYXRlZCwKKyAgICAiMzlQMDMiOiBFdmVudFRyaWdnZXJQcm90b2NvbFZpb2xhdGVkLAorICAg ICIzQjAwMCI6IFNhdmVwb2ludEV4Y2VwdGlvbiwKKyAgICAiM0IwMDEiOiBJbnZhbGlkU2F2ZXBv aW50U3BlY2lmaWNhdGlvbiwKKyAgICAiM0QwMDAiOiBJbnZhbGlkQ2F0YWxvZ05hbWUsCisgICAg IjNGMDAwIjogSW52YWxpZFNjaGVtYU5hbWUsCisgICAgIjQwMDAwIjogVHJhbnNhY3Rpb25Sb2xs YmFjaywKKyAgICAiNDAwMDIiOiBUcmFuc2FjdGlvbkludGVncml0eUNvbnN0cmFpbnRWaW9sYXRp b24sCisgICAgIjQwMDAxIjogU2VyaWFsaXphdGlvbkZhaWx1cmUsCisgICAgIjQwMDAzIjogU3Rh dGVtZW50Q29tcGxldGlvblVua25vd24sCisgICAgIjQwUDAxIjogRGVhZGxvY2tEZXRlY3RlZCwK KyAgICAiNDIwMDAiOiBTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbiwKKyAgICAiNDI2 MDEiOiBTeW50YXhFcnJvciwKKyAgICAiNDI1MDEiOiBJbnN1ZmZpY2llbnRQcml2aWxlZ2UsCisg ICAgIjQyODQ2IjogQ2Fubm90Q29lcmNlLAorICAgICI0MjgwMyI6IEdyb3VwaW5nRXJyb3IsCisg ICAgIjQyUDIwIjogV2luZG93aW5nRXJyb3IsCisgICAgIjQyUDE5IjogSW52YWxpZFJlY3Vyc2lv biwKKyAgICAiNDI4MzAiOiBJbnZhbGlkRm9yZWlnbktleSwKKyAgICAiNDI2MDIiOiBJbnZhbGlk TmFtZSwKKyAgICAiNDI2MjIiOiBOYW1lVG9vTG9uZywKKyAgICAiNDI5MzkiOiBSZXNlcnZlZE5h bWUsCisgICAgIjQyODA0IjogRGF0YXR5cGVNaXNtYXRjaCwKKyAgICAiNDJQMTgiOiBJbmRldGVy bWluYXRlRGF0YXR5cGUsCisgICAgIjQyUDIxIjogQ29sbGF0aW9uTWlzbWF0Y2gsCisgICAgIjQy UDIyIjogSW5kZXRlcm1pbmF0ZUNvbGxhdGlvbiwKKyAgICAiNDI4MDkiOiBXcm9uZ09iamVjdFR5 cGUsCisgICAgIjQyOEM5IjogR2VuZXJhdGVkQWx3YXlzLAorICAgICI0MjcwMyI6IFVuZGVmaW5l ZENvbHVtbiwKKyAgICAiNDI4ODMiOiBVbmRlZmluZWRGdW5jdGlvbiwKKyAgICAiNDJQMDEiOiBV bmRlZmluZWRUYWJsZSwKKyAgICAiNDJQMDIiOiBVbmRlZmluZWRQYXJhbWV0ZXIsCisgICAgIjQy NzA0IjogVW5kZWZpbmVkT2JqZWN0LAorICAgICI0MjcwMSI6IER1cGxpY2F0ZUNvbHVtbiwKKyAg ICAiNDJQMDMiOiBEdXBsaWNhdGVDdXJzb3IsCisgICAgIjQyUDA0IjogRHVwbGljYXRlRGF0YWJh c2UsCisgICAgIjQyNzIzIjogRHVwbGljYXRlRnVuY3Rpb24sCisgICAgIjQyUDA1IjogRHVwbGlj YXRlUHJlcGFyZWRTdGF0ZW1lbnQsCisgICAgIjQyUDA2IjogRHVwbGljYXRlU2NoZW1hLAorICAg ICI0MlAwNyI6IER1cGxpY2F0ZVRhYmxlLAorICAgICI0MjcxMiI6IER1cGxpY2F0ZUFsaWFzLAor ICAgICI0MjcxMCI6IER1cGxpY2F0ZU9iamVjdCwKKyAgICAiNDI3MDIiOiBBbWJpZ3VvdXNDb2x1 bW4sCisgICAgIjQyNzI1IjogQW1iaWd1b3VzRnVuY3Rpb24sCisgICAgIjQyUDA4IjogQW1iaWd1 b3VzUGFyYW1ldGVyLAorICAgICI0MlAwOSI6IEFtYmlndW91c0FsaWFzLAorICAgICI0MlAxMCI6 IEludmFsaWRDb2x1bW5SZWZlcmVuY2UsCisgICAgIjQyNjExIjogSW52YWxpZENvbHVtbkRlZmlu aXRpb24sCisgICAgIjQyUDExIjogSW52YWxpZEN1cnNvckRlZmluaXRpb24sCisgICAgIjQyUDEy IjogSW52YWxpZERhdGFiYXNlRGVmaW5pdGlvbiwKKyAgICAiNDJQMTMiOiBJbnZhbGlkRnVuY3Rp b25EZWZpbml0aW9uLAorICAgICI0MlAxNCI6IEludmFsaWRQcmVwYXJlZFN0YXRlbWVudERlZmlu aXRpb24sCisgICAgIjQyUDE1IjogSW52YWxpZFNjaGVtYURlZmluaXRpb24sCisgICAgIjQyUDE2 IjogSW52YWxpZFRhYmxlRGVmaW5pdGlvbiwKKyAgICAiNDJQMTciOiBJbnZhbGlkT2JqZWN0RGVm aW5pdGlvbiwKKyAgICAiNDQwMDAiOiBXaXRoQ2hlY2tPcHRpb25WaW9sYXRpb24sCisgICAgIjUz MDAwIjogSW5zdWZmaWNpZW50UmVzb3VyY2VzLAorICAgICI1MzEwMCI6IERpc2tGdWxsLAorICAg ICI1MzIwMCI6IE91dE9mTWVtb3J5LAorICAgICI1MzMwMCI6IFRvb01hbnlDb25uZWN0aW9ucywK KyAgICAiNTM0MDAiOiBDb25maWd1cmF0aW9uTGltaXRFeGNlZWRlZCwKKyAgICAiNTQwMDAiOiBQ cm9ncmFtTGltaXRFeGNlZWRlZCwKKyAgICAiNTQwMDEiOiBTdGF0ZW1lbnRUb29Db21wbGV4LAor ICAgICI1NDAxMSI6IFRvb01hbnlDb2x1bW5zLAorICAgICI1NDAyMyI6IFRvb01hbnlBcmd1bWVu dHMsCisgICAgIjU1MDAwIjogT2JqZWN0Tm90SW5QcmVyZXF1aXNpdGVTdGF0ZSwKKyAgICAiNTUw MDYiOiBPYmplY3RJblVzZSwKKyAgICAiNTVQMDIiOiBDYW50Q2hhbmdlUnVudGltZVBhcmFtLAor ICAgICI1NVAwMyI6IExvY2tOb3RBdmFpbGFibGUsCisgICAgIjU1UDA0IjogVW5zYWZlTmV3RW51 bVZhbHVlVXNhZ2UsCisgICAgIjU3MDAwIjogT3BlcmF0b3JJbnRlcnZlbnRpb24sCisgICAgIjU3 MDE0IjogUXVlcnlDYW5jZWxlZCwKKyAgICAiNTdQMDEiOiBBZG1pblNodXRkb3duLAorICAgICI1 N1AwMiI6IENyYXNoU2h1dGRvd24sCisgICAgIjU3UDAzIjogQ2Fubm90Q29ubmVjdE5vdywKKyAg ICAiNTdQMDQiOiBEYXRhYmFzZURyb3BwZWQsCisgICAgIjU3UDA1IjogSWRsZVNlc3Npb25UaW1l b3V0LAorICAgICI1ODAwMCI6IFN5c3RlbUVycm9yLAorICAgICI1ODAzMCI6IElvRXJyb3IsCisg ICAgIjU4UDAxIjogVW5kZWZpbmVkRmlsZSwKKyAgICAiNThQMDIiOiBEdXBsaWNhdGVGaWxlLAor ICAgICI1OFAwMyI6IEZpbGVOYW1lVG9vTG9uZywKKyAgICAiRjAwMDAiOiBDb25maWdGaWxlRXJy b3IsCisgICAgIkYwMDAxIjogTG9ja0ZpbGVFeGlzdHMsCisgICAgIkhWMDAwIjogRkRXRXJyb3Is CisgICAgIkhWMDA1IjogRkRXQ29sdW1uTmFtZU5vdEZvdW5kLAorICAgICJIVjAwMiI6IEZEV0R5 bmFtaWNQYXJhbWV0ZXJWYWx1ZU5lZWRlZCwKKyAgICAiSFYwMTAiOiBGRFdGdW5jdGlvblNlcXVl bmNlRXJyb3IsCisgICAgIkhWMDIxIjogRkRXSW5jb25zaXN0ZW50RGVzY3JpcHRvckluZm9ybWF0 aW9uLAorICAgICJIVjAyNCI6IEZEV0ludmFsaWRBdHRyaWJ1dGVWYWx1ZSwKKyAgICAiSFYwMDci OiBGRFdJbnZhbGlkQ29sdW1uTmFtZSwKKyAgICAiSFYwMDgiOiBGRFdJbnZhbGlkQ29sdW1uTnVt YmVyLAorICAgICJIVjAwNCI6IEZEV0ludmFsaWREYXRhVHlwZSwKKyAgICAiSFYwMDYiOiBGRFdJ bnZhbGlkRGF0YVR5cGVEZXNjcmlwdG9ycywKKyAgICAiSFYwOTEiOiBGRFdJbnZhbGlkRGVzY3Jp cHRvckZpZWxkSWRlbnRpZmllciwKKyAgICAiSFYwMEIiOiBGRFdJbnZhbGlkSGFuZGxlLAorICAg ICJIVjAwQyI6IEZEV0ludmFsaWRPcHRpb25JbmRleCwKKyAgICAiSFYwMEQiOiBGRFdJbnZhbGlk T3B0aW9uTmFtZSwKKyAgICAiSFYwOTAiOiBGRFdJbnZhbGlkU3RyaW5nTGVuZ3RoT3JCdWZmZXJM ZW5ndGgsCisgICAgIkhWMDBBIjogRkRXSW52YWxpZFN0cmluZ0Zvcm1hdCwKKyAgICAiSFYwMDki OiBGRFdJbnZhbGlkVXNlT2ZOdWxsUG9pbnRlciwKKyAgICAiSFYwMTQiOiBGRFdUb29NYW55SGFu ZGxlcywKKyAgICAiSFYwMDEiOiBGRFdPdXRPZk1lbW9yeSwKKyAgICAiSFYwMFAiOiBGRFdOb1Nj aGVtYXMsCisgICAgIkhWMDBKIjogRkRXT3B0aW9uTmFtZU5vdEZvdW5kLAorICAgICJIVjAwSyI6 IEZEV1JlcGx5SGFuZGxlLAorICAgICJIVjAwUSI6IEZEV1NjaGVtYU5vdEZvdW5kLAorICAgICJI VjAwUiI6IEZEV1RhYmxlTm90Rm91bmQsCisgICAgIkhWMDBMIjogRkRXVW5hYmxlVG9DcmVhdGVF eGVjdXRpb24sCisgICAgIkhWMDBNIjogRkRXVW5hYmxlVG9DcmVhdGVSZXBseSwKKyAgICAiSFYw ME4iOiBGRFdVbmFibGVUb0VzdGFibGlzaENvbm5lY3Rpb24sCisgICAgIlAwMDAwIjogUGxwZ3Nx bEVycm9yLAorICAgICJQMDAwMSI6IFJhaXNlRXhjZXB0aW9uLAorICAgICJQMDAwMiI6IE5vRGF0 YUZvdW5kLAorICAgICJQMDAwMyI6IFRvb01hbnlSb3dzLAorICAgICJQMDAwNCI6IEFzc2VydEZh aWx1cmUsCisgICAgIlhYMDAwIjogSW50ZXJuYWxFcnJvciwKKyAgICAiWFgwMDEiOiBEYXRhQ29y cnVwdGVkLAorICAgICJYWDAwMiI6IEluZGV4Q29ycnVwdGVkLAorfQorCisKK19fYWxsX18gPSBb CisgICAgIkludmFsaWRDdXJzb3JOYW1lIiwKKyAgICAiVW5kZWZpbmVkUGFyYW1ldGVyIiwKKyAg ICAiVW5kZWZpbmVkQ29sdW1uIiwKKyAgICAiTm90QW5YbWxEb2N1bWVudCIsCisgICAgIkZEV091 dE9mTWVtb3J5IiwKKyAgICAiSW52YWxpZFJvbGVTcGVjaWZpY2F0aW9uIiwKKyAgICAiSW52YWxp ZEFyZ3VtZW50Rm9yTnRoVmFsdWVGdW5jdGlvbiIsCisgICAgIlNRTEpzb25PYmplY3ROb3RGb3Vu ZCIsCisgICAgIkZEV1NjaGVtYU5vdEZvdW5kIiwKKyAgICAiSW52YWxpZFBhcmFtZXRlclZhbHVl IiwKKyAgICAiSW52YWxpZFRhYmxlRGVmaW5pdGlvbiIsCisgICAgIkFzc2VydEZhaWx1cmUiLAor ICAgICJGRFdJbnZhbGlkT3B0aW9uTmFtZSIsCisgICAgIkludmFsaWRFc2NhcGVPY3RldCIsCisg ICAgIlJlYWRPbmx5U1FMVHJhbnNhY3Rpb24iLAorICAgICJFeHRlcm5hbFJvdXRpbmVJbnZvY2F0 aW9uRXhjZXB0aW9uIiwKKyAgICAiQ3Jhc2hTaHV0ZG93biIsCisgICAgIkZEV0ludmFsaWRPcHRp b25JbmRleCIsCisgICAgIk5vdE51bGxWaW9sYXRpb24iLAorICAgICJDb25maWdGaWxlRXJyb3Ii LAorICAgICJJbnZhbGlkU1FMSnNvblN1YnNjcmlwdCIsCisgICAgIkludmFsaWRGb3JlaWduS2V5 IiwKKyAgICAiSW5zdWZmaWNpZW50UmVzb3VyY2VzIiwKKyAgICAiT2JqZWN0Tm90SW5QcmVyZXF1 aXNpdGVTdGF0ZSIsCisgICAgIkludmFsaWRSb3dDb3VudEluTGltaXRDbGF1c2UiLAorICAgICJJ bnRlcnZhbEZpZWxkT3ZlcmZsb3ciLAorICAgICJDb2xsYXRpb25NaXNtYXRjaCIsCisgICAgIklu dmFsaWRBcmd1bWVudEZvck50aWxlRnVuY3Rpb24iLAorICAgICJJbnZhbGlkQ2hhcmFjdGVyVmFs dWVGb3JDYXN0IiwKKyAgICAiTm9uVW5pcXVlS2V5c0luQUpzb25PYmplY3QiLAorICAgICJEZXBl bmRlbnRQcml2aWxlZ2VEZXNjcmlwdG9yc1N0aWxsRXhpc3QiLAorICAgICJJbkZhaWxlZFNRTFRy YW5zYWN0aW9uIiwKKyAgICAiR3JvdXBpbmdFcnJvciIsCisgICAgIlRyYW5zYWN0aW9uVGltZW91 dCIsCisgICAgIkNhc2VOb3RGb3VuZCIsCisgICAgIkNvbm5lY3Rpb25FeGNlcHRpb24iLAorICAg ICJEdXBsaWNhdGVKc29uT2JqZWN0S2V5VmFsdWUiLAorICAgICJJbnZhbGlkU2NoZW1hRGVmaW5p dGlvbiIsCisgICAgIkZEV1VuYWJsZVRvQ3JlYXRlUmVwbHkiLAorICAgICJVbmRlZmluZWRUYWJs ZSIsCisgICAgIlNlcXVlbmNlR2VuZXJhdG9yTGltaXRFeGNlZWRlZCIsCisgICAgIkludmFsaWRK c29uVGV4dCIsCisgICAgIklkbGVTZXNzaW9uVGltZW91dCIsCisgICAgIk51bGxWYWx1ZU5vdEFs bG93ZWQiLAorICAgICJCcmFuY2hUcmFuc2FjdGlvbkFscmVhZHlBY3RpdmUiLAorICAgICJJbnZh bGlkR3JhbnRPcGVyYXRpb24iLAorICAgICJOdWxsVmFsdWVOb0luZGljYXRvclBhcmFtZXRlciIs CisgICAgIlByb3RvY29sVmlvbGF0aW9uIiwKKyAgICAiRkRXSW52YWxpZERhdGFUeXBlRGVzY3Jp cHRvcnMiLAorICAgICJUcmlnZ2VyZWREYXRhQ2hhbmdlVmlvbGF0aW9uIiwKKyAgICAiRXh0ZXJu YWxSb3V0aW5lRXhjZXB0aW9uIiwKKyAgICAiSW52YWxpZFNxbHN0YXRlUmV0dXJuZWQiLAorICAg ICJQbHBnc3FsRXJyb3IiLAorICAgICJJbnZhbGlkWG1sQ29udGVudCIsCisgICAgIlRyaWdnZXJl ZEFjdGlvbkV4Y2VwdGlvbiIsCisgICAgIlNRTENsaWVudFVuYWJsZVRvRXN0YWJsaXNoU1FMQ29u bmVjdGlvbiIsCisgICAgIkZEV1RhYmxlTm90Rm91bmQiLAorICAgICJOdW1lcmljVmFsdWVPdXRP ZlJhbmdlIiwKKyAgICAiUmVzdHJpY3RWaW9sYXRpb24iLAorICAgICJBbWJpZ3VvdXNQYXJhbWV0 ZXIiLAorICAgICJTdGF0ZW1lbnRUb29Db21wbGV4IiwKKyAgICAiVW5zYWZlTmV3RW51bVZhbHVl VXNhZ2UiLAorICAgICJOb25OdW1lcmljU1FMSnNvbkl0ZW0iLAorICAgICJJbnZhbGlkSW5kaWNh dG9yUGFyYW1ldGVyVmFsdWUiLAorICAgICJFeGNsdXNpb25WaW9sYXRpb24iLAorICAgICJPcGVy YXRvckludGVydmVudGlvbiIsCisgICAgIlF1ZXJ5Q2FuY2VsZWQiLAorICAgICJXYXJuaW5nIiwK KyAgICAiSW52YWxpZEFyZ3VtZW50Rm9yU1FMSnNvbkRhdGV0aW1lRnVuY3Rpb24iLAorICAgICJG b3JlaWduS2V5VmlvbGF0aW9uIiwKKyAgICAiU3RyaW5nRGF0YUxlbmd0aE1pc21hdGNoIiwKKyAg ICAiU1FMUm91dGluZUV4Y2VwdGlvbiIsCisgICAgIlRvb01hbnlDb25uZWN0aW9ucyIsCisgICAg IlRvb01hbnlKc29uT2JqZWN0TWVtYmVycyIsCisgICAgIk5vRGF0YSIsCisgICAgIlVudHJhbnNs YXRhYmxlQ2hhcmFjdGVyIiwKKyAgICAiRkRXVW5hYmxlVG9Fc3RhYmxpc2hDb25uZWN0aW9uIiwK KyAgICAiTG9ja0ZpbGVFeGlzdHMiLAorICAgICJTUkVSZWFkaW5nU1FMRGF0YU5vdFBlcm1pdHRl ZCIsCisgICAgIkluZGV0ZXJtaW5hdGVEYXRhdHlwZSIsCisgICAgIkNoZWNrVmlvbGF0aW9uIiwK KyAgICAiSW52YWxpZERhdGFiYXNlRGVmaW5pdGlvbiIsCisgICAgIk5vQWN0aXZlU1FMVHJhbnNh Y3Rpb25Gb3JCcmFuY2hUcmFuc2FjdGlvbiIsCisgICAgIlNRTFNlcnZlclJlamVjdGVkRXN0YWJs aXNobWVudE9mU1FMQ29ubmVjdGlvbiIsCisgICAgIkR1cGxpY2F0ZUZpbGUiLAorICAgICJGRFdJ bnZhbGlkQ29sdW1uTnVtYmVyIiwKKyAgICAiVHJhbnNhY3Rpb25Sb2xsYmFjayIsCisgICAgIk1v cmVUaGFuT25lU1FMSnNvbkl0ZW0iLAorICAgICJXaXRoQ2hlY2tPcHRpb25WaW9sYXRpb24iLAor ICAgICJGRFdOb1NjaGVtYXMiLAorICAgICJHZW5lcmF0ZWRBbHdheXMiLAorICAgICJDYW5ub3RD b25uZWN0Tm93IiwKKyAgICAiQ2FyZGluYWxpdHlWaW9sYXRpb24iLAorICAgICJJbnZhbGlkQXV0 aG9yaXphdGlvblNwZWNpZmljYXRpb24iLAorICAgICJTUUxKc29uTnVtYmVyTm90Rm91bmQiLAor ICAgICJTUUxKc29uTWVtYmVyTm90Rm91bmQiLAorICAgICJJbnZhbGlkVXNlT2ZFc2NhcGVDaGFy YWN0ZXIiLAorICAgICJVbnRlcm1pbmF0ZWRDU3RyaW5nIiwKKyAgICAiVHJpbUVycm9yIiwKKyAg ICAiU3JmUHJvdG9jb2xWaW9sYXRlZCIsCisgICAgIkRpc2tGdWxsIiwKKyAgICAiVG9vTWFueUNv bHVtbnMiLAorICAgICJJbnZhbGlkT2JqZWN0RGVmaW5pdGlvbiIsCisgICAgIkludmFsaWRBcmd1 bWVudEZvckxvZ2FyaXRobSIsCisgICAgIlRvb01hbnlKc29uQXJyYXlFbGVtZW50cyIsCisgICAg Ik91dE9mTWVtb3J5IiwKKyAgICAiRVJFUHJvaGliaXRlZFNRTFN0YXRlbWVudEF0dGVtcHRlZCIs CisgICAgIkZEV0ludmFsaWRTdHJpbmdGb3JtYXQiLAorICAgICJTdGFja2VkRGlhZ25vc3RpY3NB Y2Nlc3NlZFdpdGhvdXRBY3RpdmVIYW5kbGVyIiwKKyAgICAiU2NoZW1hQW5kRGF0YVN0YXRlbWVu dE1peGluZ05vdFN1cHBvcnRlZCIsCisgICAgIkludGVybmFsRXJyb3IiLAorICAgICJJbnZhbGlk RXNjYXBlQ2hhcmFjdGVyIiwKKyAgICAiRkRXRXJyb3IiLAorICAgICJJbXBsaWNpdFplcm9CaXRQ YWRkaW5nV2FybmluZyIsCisgICAgIkRpdmlzaW9uQnlaZXJvIiwKKyAgICAiSW52YWxpZFRhYmxl c2FtcGxlQXJndW1lbnQiLAorICAgICJEZWFkbG9ja0RldGVjdGVkIiwKKyAgICAiQ2FudENoYW5n ZVJ1bnRpbWVQYXJhbSIsCisgICAgIlVuZGVmaW5lZE9iamVjdCIsCisgICAgIlVuaXF1ZVZpb2xh dGlvbiIsCisgICAgIkludmFsaWRDdXJzb3JEZWZpbml0aW9uIiwKKyAgICAiQ29ubmVjdGlvbkZh aWx1cmUiLAorICAgICJVbmRlZmluZWRGdW5jdGlvbiIsCisgICAgIkZEV0Z1bmN0aW9uU2VxdWVu Y2VFcnJvciIsCisgICAgIkVycm9ySW5Bc3NpZ25tZW50IiwKKyAgICAiU3VjY2Vzc2Z1bENvbXBs ZXRpb24iLAorICAgICJTdHJpbmdEYXRhUmlnaHRUcnVuY2F0aW9uIiwKKyAgICAiRkRXVG9vTWFu eUhhbmRsZXMiLAorICAgICJGRFdJbnZhbGlkRGF0YVR5cGUiLAorICAgICJBY3RpdmVTUUxUcmFu c2FjdGlvbiIsCisgICAgIkludmFsaWRUZXh0UmVwcmVzZW50YXRpb24iLAorICAgICJJbnZhbGlk U1FMU3RhdGVtZW50TmFtZSIsCisgICAgIlByaXZpbGVnZU5vdEdyYW50ZWRXYXJuaW5nIiwKKyAg ICAiU1JFTW9kaWZ5aW5nU1FMRGF0YU5vdFBlcm1pdHRlZCIsCisgICAgIkluZGV0ZXJtaW5hdGVD b2xsYXRpb24iLAorICAgICJTeXN0ZW1FcnJvciIsCisgICAgIk51bGxWYWx1ZUVsaW1pbmF0ZWRJ blNldEZ1bmN0aW9uV2FybmluZyIsCisgICAgIkRlcGVuZGVudE9iamVjdHNTdGlsbEV4aXN0IiwK KyAgICAiSW52YWxpZFNjaGVtYU5hbWUiLAorICAgICJEdXBsaWNhdGVDb2x1bW4iLAorICAgICJG dW5jdGlvbkV4ZWN1dGVkTm9SZXR1cm5TdGF0ZW1lbnQiLAorICAgICJJbnZhbGlkQ29sdW1uRGVm aW5pdGlvbiIsCisgICAgIkR5bmFtaWNSZXN1bHRTZXRzUmV0dXJuZWRXYXJuaW5nIiwKKyAgICAi SWRsZUluVHJhbnNhY3Rpb25TZXNzaW9uVGltZW91dCIsCisgICAgIlN0YXRlbWVudENvbXBsZXRp b25Vbmtub3duIiwKKyAgICAiQ2Fubm90Q29lcmNlIiwKKyAgICAiSW52YWxpZFRyYW5zYWN0aW9u U3RhdGUiLAorICAgICJEdXBsaWNhdGVUYWJsZSIsCisgICAgIkJhZENvcHlGaWxlRm9ybWF0IiwK KyAgICAiWmVyb0xlbmd0aENoYXJhY3RlclN0cmluZyIsCisgICAgIlN5bnRheEVycm9yT3JBY2Nl c3NSdWxlVmlvbGF0aW9uIiwKKyAgICAiU2luZ2xldG9uU1FMSnNvbkl0ZW1SZXF1aXJlZCIsCisg ICAgIkluZGV4Q29ycnVwdGVkIiwKKyAgICAiRkRXSW52YWxpZENvbHVtbk5hbWUiLAorICAgICJE YXRhQ29ycnVwdGVkIiwKKyAgICAiRVJJRU51bGxWYWx1ZU5vdEFsbG93ZWQiLAorICAgICJBcnJh eVN1YnNjcmlwdEVycm9yIiwKKyAgICAiRkRXUmVwbHlIYW5kbGUiLAorICAgICJEaWFnbm9zdGlj c0V4Y2VwdGlvbiIsCisgICAgIkludmFsaWRUYWJsZXNhbXBsZVJlcGVhdCIsCisgICAgIlNRTEpz b25JdGVtQ2Fubm90QmVDYXN0VG9UYXJnZXRUeXBlIiwKKyAgICAiRkRXSW52YWxpZEhhbmRsZSIs CisgICAgIkludmFsaWRQYXNzd29yZCIsCisgICAgIkludmFsaWRFc2NhcGVTZXF1ZW5jZSIsCisg ICAgIkVzY2FwZUNoYXJhY3RlckNvbmZsaWN0IiwKKyAgICAiSW52YWxpZFNhdmVwb2ludFNwZWNp ZmljYXRpb24iLAorICAgICJGRFdJbnZhbGlkQXR0cmlidXRlVmFsdWUiLAorICAgICJDb250YWlu aW5nU1FMTm90UGVybWl0dGVkIiwKKyAgICAiTG9jYXRvckV4Y2VwdGlvbiIsCisgICAgIkRhdGF0 eXBlTWlzbWF0Y2giLAorICAgICJJbnZhbGlkQ3Vyc29yU3RhdGUiLAorICAgICJJbnZhbGlkTmFt ZSIsCisgICAgIkluZGljYXRvck92ZXJmbG93IiwKKyAgICAiUmVzZXJ2ZWROYW1lIiwKKyAgICAi RGF0ZXRpbWVGaWVsZE92ZXJmbG93IiwKKyAgICAiRkRXSW5jb25zaXN0ZW50RGVzY3JpcHRvcklu Zm9ybWF0aW9uIiwKKyAgICAiRmxvYXRpbmdQb2ludEV4Y2VwdGlvbiIsCisgICAgIkFtYmlndW91 c0FsaWFzIiwKKyAgICAiSW52YWxpZFJlY3Vyc2lvbiIsCisgICAgIldyb25nT2JqZWN0VHlwZSIs CisgICAgIlVuZGVmaW5lZEZpbGUiLAorICAgICJMb2NrTm90QXZhaWxhYmxlIiwKKyAgICAiSW52 YWxpZFJvd0NvdW50SW5SZXN1bHRPZmZzZXRDbGF1c2UiLAorICAgICJPYmplY3RJblVzZSIsCisg ICAgIkRlcHJlY2F0ZWRGZWF0dXJlV2FybmluZyIsCisgICAgIkZEV0R5bmFtaWNQYXJhbWV0ZXJW YWx1ZU5lZWRlZCIsCisgICAgIkR1cGxpY2F0ZUZ1bmN0aW9uIiwKKyAgICAiSW52YWxpZFhtbERv Y3VtZW50IiwKKyAgICAiU3RyaW5nRGF0YVJpZ2h0VHJ1bmNhdGlvbldhcm5pbmciLAorICAgICJE dXBsaWNhdGVQcmVwYXJlZFN0YXRlbWVudCIsCisgICAgIkludmFsaWRHcmFudG9yIiwKKyAgICAi RXZlbnRUcmlnZ2VyUHJvdG9jb2xWaW9sYXRlZCIsCisgICAgIkZEV0ludmFsaWRVc2VPZk51bGxQ b2ludGVyIiwKKyAgICAiRkRXVW5hYmxlVG9DcmVhdGVFeGVjdXRpb24iLAorICAgICJDb25uZWN0 aW9uRG9lc05vdEV4aXN0IiwKKyAgICAiSW52YWxpZENhdGFsb2dOYW1lIiwKKyAgICAiSW52YWxp ZEFyZ3VtZW50Rm9yWHF1ZXJ5IiwKKyAgICAiRkRXQ29sdW1uTmFtZU5vdEZvdW5kIiwKKyAgICAi VHJhbnNhY3Rpb25JbnRlZ3JpdHlDb25zdHJhaW50VmlvbGF0aW9uIiwKKyAgICAiSW52YWxpZFBy ZXBhcmVkU3RhdGVtZW50RGVmaW5pdGlvbiIsCisgICAgIkZEV0ludmFsaWREZXNjcmlwdG9yRmll bGRJZGVudGlmaWVyIiwKKyAgICAiRkRXT3B0aW9uTmFtZU5vdEZvdW5kIiwKKyAgICAiSW52YWxp ZEFyZ3VtZW50Rm9yUG93ZXJGdW5jdGlvbiIsCisgICAgIkZEV0ludmFsaWRTdHJpbmdMZW5ndGhP ckJ1ZmZlckxlbmd0aCIsCisgICAgIlNSRVByb2hpYml0ZWRTUUxTdGF0ZW1lbnRBdHRlbXB0ZWQi LAorICAgICJOb0RhdGFGb3VuZCIsCisgICAgIkR1cGxpY2F0ZURhdGFiYXNlIiwKKyAgICAiRmVh dHVyZU5vdFN1cHBvcnRlZCIsCisgICAgIkludGVncml0eUNvbnN0cmFpbnRWaW9sYXRpb24iLAor ICAgICJBbWJpZ3VvdXNDb2x1bW4iLAorICAgICJQcml2aWxlZ2VOb3RSZXZva2VkV2FybmluZyIs CisgICAgIkZpbGVOYW1lVG9vTG9uZyIsCisgICAgIkludmFsaWRBcmd1bWVudEZvcldpZHRoQnVj a2V0RnVuY3Rpb24iLAorICAgICJIZWxkQ3Vyc29yUmVxdWlyZXNTYW1lSXNvbGF0aW9uTGV2ZWwi LAorICAgICJOb1NRTEpzb25JdGVtIiwKKyAgICAiSW9FcnJvciIsCisgICAgIlNhdmVwb2ludEV4 Y2VwdGlvbiIsCisgICAgIk5vQWN0aXZlU1FMVHJhbnNhY3Rpb24iLAorICAgICJJbnZhbGlkRnVu Y3Rpb25EZWZpbml0aW9uIiwKKyAgICAiQWRtaW5TaHV0ZG93biIsCisgICAgIkRhdGFiYXNlRHJv cHBlZCIsCisgICAgIkludmFsaWRSZWd1bGFyRXhwcmVzc2lvbiIsCisgICAgIldpbmRvd2luZ0Vy cm9yIiwKKyAgICAiSW52YWxpZENvbHVtblJlZmVyZW5jZSIsCisgICAgIkludmFsaWRCaW5hcnlS ZXByZXNlbnRhdGlvbiIsCisgICAgIlNRTEpzb25TY2FsYXJSZXF1aXJlZCIsCisgICAgIkNvbmZp Z3VyYXRpb25MaW1pdEV4Y2VlZGVkIiwKKyAgICAiU3ludGF4RXJyb3IiLAorICAgICJTZXJpYWxp emF0aW9uRmFpbHVyZSIsCisgICAgIlByb2dyYW1MaW1pdEV4Y2VlZGVkIiwKKyAgICAiRHVwbGlj YXRlU2NoZW1hIiwKKyAgICAiU1FMU3RhdGVtZW50Tm90WWV0Q29tcGxldGUiLAorICAgICJMaWJw cUVycm9yIiwKKyAgICAiRGF0YUV4Y2VwdGlvbiIsCisgICAgIlN1YnN0cmluZ0Vycm9yIiwKKyAg ICAiSW52YWxpZExvY2F0b3JTcGVjaWZpY2F0aW9uIiwKKyAgICAiSW5hcHByb3ByaWF0ZUFjY2Vz c01vZGVGb3JCcmFuY2hUcmFuc2FjdGlvbiIsCisgICAgIkVSRU1vZGlmeWluZ1NRTERhdGFOb3RQ ZXJtaXR0ZWQiLAorICAgICJJbnN1ZmZpY2llbnRQcml2aWxlZ2UiLAorICAgICJOb0FkZGl0aW9u YWxEeW5hbWljUmVzdWx0U2V0c1JldHVybmVkIiwKKyAgICAiU1FMSnNvbkFycmF5Tm90Rm91bmQi LAorICAgICJOYW1lVG9vTG9uZyIsCisgICAgIkludmFsaWRUaW1lWm9uZURpc3BsYWNlbWVudFZh bHVlIiwKKyAgICAiSW5hcHByb3ByaWF0ZUlzb2xhdGlvbkxldmVsRm9yQnJhbmNoVHJhbnNhY3Rp b24iLAorICAgICJSYWlzZUV4Y2VwdGlvbiIsCisgICAgIkVSRVJlYWRpbmdTUUxEYXRhTm90UGVy bWl0dGVkIiwKKyAgICAiVHJpZ2dlclByb3RvY29sVmlvbGF0ZWQiLAorICAgICJOb25zdGFuZGFy ZFVzZU9mRXNjYXBlQ2hhcmFjdGVyIiwKKyAgICAiSW52YWxpZFRyYW5zYWN0aW9uSW5pdGlhdGlv biIsCisgICAgIkR1cGxpY2F0ZUFsaWFzIiwKKyAgICAiVHJhbnNhY3Rpb25SZXNvbHV0aW9uVW5r bm93biIsCisgICAgIlRvb01hbnlSb3dzIiwKKyAgICAiSW52YWxpZFhtbENvbW1lbnQiLAorICAg ICJNb3N0U3BlY2lmaWNUeXBlTWlzbWF0Y2giLAorICAgICJEdXBsaWNhdGVPYmplY3QiLAorICAg ICJEdXBsaWNhdGVDdXJzb3IiLAorICAgICJBbWJpZ3VvdXNGdW5jdGlvbiIsCisgICAgIlRvb01h bnlBcmd1bWVudHMiLAorICAgICJJbnZhbGlkWG1sUHJvY2Vzc2luZ0luc3RydWN0aW9uIiwKKyAg ICAiSW52YWxpZFRyYW5zYWN0aW9uVGVybWluYXRpb24iLAorICAgICJJbnZhbGlkRGF0ZXRpbWVG b3JtYXQiLAorICAgICJJbnZhbGlkUHJlY2VkaW5nT3JGb2xsb3dpbmdTaXplIiwKKyAgICAiQ2hh cmFjdGVyTm90SW5SZXBlcnRvaXJlIiwKKyAgICAiU1FMU1RBVEVfVE9fRVhDRVBUSU9OIiwKK10K ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVzdC9saWJwcS9lcnJvcnMucHkgYi9zcmMvdGVzdC9w eXRlc3QvbGlicHEvZXJyb3JzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi43NjRhOTZjMjQ3OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3B5dGVzdC9saWJw cS9lcnJvcnMucHkKQEAgLTAsMCArMSwzOSBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjUsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKKyIiIgorUG9zdGdyZVNRTCBlcnJvciB0 eXBlcyBtYXBwZWQgZnJvbSBTUUxTVEFURSBjb2Rlcy4KKworVGhpcyBtb2R1bGUgcHJvdmlkZXMg TGlicHFFcnJvciBhbmQgaXRzIHN1YmNsYXNzZXMgZm9yIGhhbmRsaW5nIFBvc3RncmVTUUwKK2Vy cm9ycyBiYXNlZCBvbiBTUUxTVEFURSBjb2Rlcy4gVGhlIGV4Y2VwdGlvbiBjbGFzc2VzIGluIF9n ZW5lcmF0ZWRfZXJyb3JzLnB5CithcmUgYXV0by1nZW5lcmF0ZWQgZnJvbSBzcmMvYmFja2VuZC91 dGlscy9lcnJjb2Rlcy50eHQuCisKK1RvIHJlZ2VuZXJhdGU6IHNyYy90b29scy9nZW5lcmF0ZV9w eXRlc3RfbGlicHFfZXJyb3JzLnB5CisiIiIKKworZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFs CisKK2Zyb20gLl9lcnJvcl9iYXNlIGltcG9ydCBMaWJwcUVycm9yLCBMaWJwcVdhcm5pbmcKK2Zy b20gLl9nZW5lcmF0ZWRfZXJyb3JzIGltcG9ydCAoCisgICAgU1FMU1RBVEVfVE9fRVhDRVBUSU9O LAorKQorZnJvbSAuX2dlbmVyYXRlZF9lcnJvcnMgaW1wb3J0ICogICMgbm9xYTogRjQwMworCisK K2RlZiBnZXRfZXhjZXB0aW9uX2NsYXNzKHNxbHN0YXRlOiBPcHRpb25hbFtzdHJdKSAtPiB0eXBl OgorICAgICIiIkdldCB0aGUgYXBwcm9wcmlhdGUgZXhjZXB0aW9uIGNsYXNzIGZvciBhIFNRTFNU QVRFIGNvZGUuIiIiCisgICAgaWYgc3Fsc3RhdGUgaW4gU1FMU1RBVEVfVE9fRVhDRVBUSU9OOgor ICAgICAgICByZXR1cm4gU1FMU1RBVEVfVE9fRVhDRVBUSU9OW3NxbHN0YXRlXQorICAgIHJldHVy biBMaWJwcUVycm9yCisKKworZGVmIG1ha2VfZXJyb3IobWVzc2FnZTogc3RyLCAqLCBzcWxzdGF0 ZTogT3B0aW9uYWxbc3RyXSA9IE5vbmUsICoqa3dhcmdzKSAtPiBMaWJwcUVycm9yOgorICAgICIi IkNyZWF0ZSBhbiBhcHByb3ByaWF0ZSBMaWJwcUVycm9yIHN1YmNsYXNzIGJhc2VkIG9uIHRoZSBT UUxTVEFURSBjb2RlLiIiIgorICAgIGV4Y19jbGFzcyA9IGdldF9leGNlcHRpb25fY2xhc3Moc3Fs c3RhdGUpCisgICAgcmV0dXJuIGV4Y19jbGFzcyhtZXNzYWdlLCBzcWxzdGF0ZT1zcWxzdGF0ZSwg Kiprd2FyZ3MpCisKKworX19hbGxfXyA9IFsKKyAgICAiTGlicHFFcnJvciIsCisgICAgIkxpYnBx V2FybmluZyIsCisgICAgIm1ha2VfZXJyb3IiLAorXQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcHl0 ZXN0L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvcHl0ZXN0L21lc29uLmJ1aWxkCmluZGV4IGFiZDEy OGRmYTI0Li5iODZiZTkwMWU3YyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcHl0ZXN0L21lc29uLmJ1 aWxkCisrKyBiL3NyYy90ZXN0L3B5dGVzdC9tZXNvbi5idWlsZApAQCAtMTAsNyArMTAsMTAgQEAg dGVzdHMgKz0gewogICAnYmQnOiBtZXNvbi5jdXJyZW50X2J1aWxkX2RpcigpLAogICAncHl0ZXN0 JzogewogICAgICd0ZXN0cyc6IFsKLSAgICAgICdweXQvdGVzdF9zb21ldGhpbmcucHknLAorICAg ICAgJ3B5dC90ZXN0X2Vycm9ycy5weScsCisgICAgICAncHl0L3Rlc3RfbGlicHEucHknLAorICAg ICAgJ3B5dC90ZXN0X211bHRpX3NlcnZlci5weScsCisgICAgICAncHl0L3Rlc3RfcXVlcnlfaGVs cGVycy5weScsCiAgICAgXSwKICAgfSwKIH0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVzdC9w eXBnL19faW5pdF9fLnB5IGIvc3JjL3Rlc3QvcHl0ZXN0L3B5cGcvX19pbml0X18ucHkKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRlZTkxMjg5ZjcwCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjL3Rlc3QvcHl0ZXN0L3B5cGcvX19pbml0X18ucHkKQEAgLTAsMCArMSwxMCBA QAorIyBDb3B5cmlnaHQgKGMpIDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdy b3VwCisKK2Zyb20gLl9lbnYgaW1wb3J0IHJlcXVpcmVfdGVzdF9leHRyYXMsIHNraXBfdW5sZXNz X3Rlc3RfZXh0cmFzCitmcm9tIC5zZXJ2ZXIgaW1wb3J0IFBvc3RncmVzU2VydmVyCisKK19fYWxs X18gPSBbCisgICAgInJlcXVpcmVfdGVzdF9leHRyYXMiLAorICAgICJza2lwX3VubGVzc190ZXN0 X2V4dHJhcyIsCisgICAgIlBvc3RncmVzU2VydmVyIiwKK10KZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3B5dGVzdC9weXBnL19lbnYucHkgYi9zcmMvdGVzdC9weXRlc3QvcHlwZy9fZW52LnB5Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNDA4N2JlMzIxMgotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy90ZXN0L3B5dGVzdC9weXBnL19lbnYucHkKQEAgLTAsMCArMSw3MiBAQAor IyBDb3B5cmlnaHQgKGMpIDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3Vw CisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKKworaW1wb3J0IHB5dGVzdAorCitsb2dnZXIg PSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitkZWYgX3Rlc3RfZXh0cmFfc2tpcF9y ZWFzb24oKmtleXM6IHN0cikgLT4gc3RyOgorICAgIHJldHVybiAicmVxdWlyZXMge30gdG8gYmUg c2V0IGluIFBHX1RFU1RfRVhUUkEiLmZvcm1hdCgiLCAiLmpvaW4oa2V5cykpCisKKworZGVmIF9o YXNfdGVzdF9leHRyYShrZXk6IHN0cikgLT4gYm9vbDoKKyAgICAiIiIKKyAgICBSZXR1cm5zIFRy dWUgaWYgdGhlIFBHX1RFU1RfRVhUUkEgZW52aXJvbm1lbnQgdmFyaWFibGUgY29udGFpbnMgdGhl IGdpdmVuCisgICAga2V5LgorICAgICIiIgorICAgIGV4dHJhID0gb3MuZ2V0ZW52KCJQR19URVNU X0VYVFJBIiwgIiIpCisgICAgcmV0dXJuIGtleSBpbiBleHRyYS5zcGxpdCgpCisKKworZGVmIHJl cXVpcmVfdGVzdF9leHRyYXMoKmtleXM6IHN0cik6CisgICAgIiIiCisgICAgQSBjb252ZW5pZW5j ZSBhbm5vdGF0aW9uIHdoaWNoIHdpbGwgc2tpcCB0ZXN0cyBpZiBhbGwgb2YgdGhlIHJlcXVpcmVk IGtleXMKKyAgICBhcmUgbm90IHByZXNlbnQgaW4gUEdfVEVTVF9FWFRSQS4KKworICAgIFRvIHNr aXAgYSBwYXJ0aWN1bGFyIHRlc3QgZnVuY3Rpb24gb3IgY2xhc3M6CisKKyAgICAgICAgQHB5cGcu cmVxdWlyZV90ZXN0X2V4dHJhcygibGRhcCIpCisgICAgICAgIGRlZiB0ZXN0X3NvbWVfbGRhcF9m ZWF0dXJlKCk6CisgICAgICAgICAgICAuLi4KKworICAgIFRvIHNraXAgYW4gZW50aXJlIG1vZHVs ZToKKworICAgICAgICBweXRlc3RtYXJrID0gcHlwZy5yZXF1aXJlX3Rlc3RfZXh0cmEoInNzbCIs ICJrZXJiZXJvcyIpCisgICAgIiIiCisgICAgcmV0dXJuIHB5dGVzdC5tYXJrLnNraXBpZigKKyAg ICAgICAgbm90IGFsbChbX2hhc190ZXN0X2V4dHJhKGspIGZvciBrIGluIGtleXNdKSwKKyAgICAg ICAgcmVhc29uPV90ZXN0X2V4dHJhX3NraXBfcmVhc29uKCprZXlzKSwKKyAgICApCisKKworZGVm IHNraXBfdW5sZXNzX3Rlc3RfZXh0cmFzKCprZXlzOiBzdHIpOgorICAgICIiIgorICAgIFNraXAg dGhlIGN1cnJlbnQgdGVzdC9maXh0dXJlIGlmIGFueSBvZiB0aGUgcmVxdWlyZWQga2V5cyBhcmUg bm90IHByZXNlbnQKKyAgICBpbiBQR19URVNUX0VYVFJBLiBVc2UgdGhpcyBpbnNpZGUgZml4dHVy ZXMgd2hlcmUgZGVjb3JhdG9ycyBjYW4ndCBiZSB1c2VkLgorCisgICAgICAgIEBweXRlc3QuZml4 dHVyZQorICAgICAgICBkZWYgbXlfZml4dHVyZSgpOgorICAgICAgICAgICAgc2tpcF91bmxlc3Nf dGVzdF9leHRyYXMoImxkYXAiKQorICAgICAgICAgICAgLi4uCisgICAgIiIiCisgICAgaWYgbm90 IGFsbChbX2hhc190ZXN0X2V4dHJhKGspIGZvciBrIGluIGtleXNdKToKKyAgICAgICAgcHl0ZXN0 LnNraXAoX3Rlc3RfZXh0cmFfc2tpcF9yZWFzb24oKmtleXMpKQorCisKK2RlZiB0ZXN0X3RpbWVv dXRfZGVmYXVsdCgpIC0+IGludDoKKyAgICAiIiIKKyAgICBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0 aGUgUEdfVEVTVF9USU1FT1VUX0RFRkFVTFQgZW52aXJvbm1lbnQgdmFyaWFibGUsIGluCisgICAg c2Vjb25kcywgb3IgMTgwIGlmIG9uZSB3YXMgbm90IHByb3ZpZGVkLgorICAgICIiIgorICAgIGRl ZmF1bHQgPSBvcy5nZXRlbnYoIlBHX1RFU1RfVElNRU9VVF9ERUZBVUxUIiwgIiIpCisgICAgaWYg bm90IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAxODAKKworICAgIHRyeToKKyAgICAgICAgcmV0 dXJuIGludChkZWZhdWx0KQorICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIHY6CisgICAgICAgIGxv Z2dlci53YXJuaW5nKCJQR19URVNUX1RJTUVPVVRfREVGQVVMVCBjb3VsZCBub3QgYmUgcGFyc2Vk OiAiICsgc3RyKHYpKQorICAgICAgICByZXR1cm4gMTgwCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9w eXRlc3QvcHlwZy9maXh0dXJlcy5weSBiL3NyYy90ZXN0L3B5dGVzdC9weXBnL2ZpeHR1cmVzLnB5 Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44YzBjYjYwZGFhNQotLS0g L2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3B5dGVzdC9weXBnL2ZpeHR1cmVzLnB5CkBAIC0wLDAg KzEsMzM1IEBACisjIENvcHlyaWdodCAoYykgMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxv cG1lbnQgR3JvdXAKKworaW1wb3J0IG9zCitpbXBvcnQgY29udGV4dGxpYgoraW1wb3J0IHBhdGhs aWIKK2ltcG9ydCB0aW1lCitmcm9tIHR5cGluZyBpbXBvcnQgTGlzdAorCitpbXBvcnQgcHl0ZXN0 CisKK2Zyb20gLl9lbnYgaW1wb3J0IHRlc3RfdGltZW91dF9kZWZhdWx0Citmcm9tIC51dGlsIGlt cG9ydCBjYXB0dXJlCitmcm9tIC5zZXJ2ZXIgaW1wb3J0IFBvc3RncmVzU2VydmVyCisKK2Zyb20g bGlicHEgaW1wb3J0IGxvYWRfbGlicHFfaGFuZGxlLCBjb25uZWN0IGFzIGxpYnBxX2Nvbm5lY3QK KworCisjIFN0YXNoIGtleSBmb3IgdHJhY2tpbmcgc2VydmVycyBmb3IgbG9nIHJlcG9ydGluZy4K K19zZXJ2ZXJzX2tleSA9IHB5dGVzdC5TdGFzaEtleVtMaXN0W1Bvc3RncmVzU2VydmVyXV0oKQor CisKK2RlZiBfcmVjb3JkX3NlcnZlcl9mb3JfbG9nX3JlcG9ydGluZyhyZXF1ZXN0LCBzZXJ2ZXIp OgorICAgICIiIlJlY29yZCBhIHNlcnZlciBmb3IgbG9nIHJlcG9ydGluZyBvbiB0ZXN0IGZhaWx1 cmUuIiIiCisgICAgaWYgX3NlcnZlcnNfa2V5IG5vdCBpbiByZXF1ZXN0Lm5vZGUuc3Rhc2g6Cisg ICAgICAgIHJlcXVlc3Qubm9kZS5zdGFzaFtfc2VydmVyc19rZXldID0gW10KKyAgICByZXF1ZXN0 Lm5vZGUuc3Rhc2hbX3NlcnZlcnNfa2V5XS5hcHBlbmQoc2VydmVyKQorCisKK0BweXRlc3QuZml4 dHVyZQorZGVmIHJlbWFpbmluZ190aW1lb3V0KCk6CisgICAgIiIiCisgICAgVGhpcyBmaXh0dXJl IHByb3ZpZGVzIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGhvdyBtdWNoIG9mIHRoZQorICAgIFBH X1RFU1RfVElNRU9VVF9ERUZBVUxUIHJlbWFpbnMgZm9yIHRoZSBjdXJyZW50IHRlc3QsIGluIGZy YWN0aW9uYWwgc2Vjb25kcy4KKyAgICBUaGlzIHZhbHVlIGlzIG5ldmVyIGxlc3MgdGhhbiB6ZXJv LgorCisgICAgVGhpcyBmaXh0dXJlIGlzIHBlci10ZXN0LCBzbyB0aGUgZGVhZGxpbmUgaXMgYWxz byByZXNldCBvbiBhIHBlci10ZXN0IGJhc2lzLgorICAgICIiIgorICAgIG5vdyA9IHRpbWUubW9u b3RvbmljKCkKKyAgICBkZWFkbGluZSA9IG5vdyArIHRlc3RfdGltZW91dF9kZWZhdWx0KCkKKwor ICAgIHJldHVybiBsYW1iZGE6IG1heChkZWFkbGluZSAtIHRpbWUubW9ub3RvbmljKCksIDApCisK KworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorZGVmIHJlbWFpbmluZ190aW1lb3V0 X21vZHVsZSgpOgorICAgICIiIgorICAgIFNhbWUgYXMgcmVtYWluaW5nX3RpbWVvdXQsIGJ1dCB0 aGUgZGVhZGxpbmUgaXMgc2V0IG9uY2UgcGVyIG1vZHVsZS4KKworICAgIFRoaXMgZml4dHVyZSBp cyBwZXItbW9kdWxlLCB3aGljaCBtZWFucyBpdCdzIGdlbmVyYWxseSBvbmx5IHJlYWxseSB1c2Vm dWwKKyAgICBmb3IgY29uZmlndXJpbmcgdGltZW91dHMgb2Ygb3BlcmF0aW9ucyB0aGF0IGhhcHBl biBpbiB0aGUgc2V0dXAgcGhhc2Ugb2YKKyAgICBhbm90aGVyIG1vZHVsZSBmaXh0dXJlcy4gSWYg eW91IHVzZSBpdCBpbiBhIHRlc3QgaXQgd291bGQgbWVhbiB0aGF0IGVhY2gKKyAgICBzdWJzZXF1 ZW50IHRlc3QgaW4gdGhlIG1vZHVsZSBnZXRzIGEgcmVkdWNlZCB0aW1lb3V0LgorICAgICIiIgor ICAgIG5vdyA9IHRpbWUubW9ub3RvbmljKCkKKyAgICBkZWFkbGluZSA9IG5vdyArIHRlc3RfdGlt ZW91dF9kZWZhdWx0KCkKKworICAgIHJldHVybiBsYW1iZGE6IG1heChkZWFkbGluZSAtIHRpbWUu bW9ub3RvbmljKCksIDApCisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKK2Rl ZiBsaWJwcV9oYW5kbGUobGliZGlyLCBiaW5kaXIpOgorICAgICIiIgorICAgIExvYWRzIGEgY3R5 cGVzIGhhbmRsZSBmb3IgbGlicHEuIFNvbWUgY29tbW9uIGZ1bmN0aW9uIHByb3RvdHlwZXMgYXJl CisgICAgaW5pdGlhbGl6ZWQgZm9yIGdlbmVyYWwgdXNlLgorICAgICIiIgorICAgIHRyeToKKyAg ICAgICAgcmV0dXJuIGxvYWRfbGlicHFfaGFuZGxlKGxpYmRpciwgYmluZGlyKQorICAgIGV4Y2Vw dCBPU0Vycm9yIGFzIGU6CisgICAgICAgIGlmICJ3cm9uZyBFTEYgY2xhc3MiIGluIHN0cihlKToK KyAgICAgICAgICAgICMgVGhpcyBoYXBwZW5zIGluIENJIHdoZW4gdHJ5aW5nIHRvIGxlYWQgYSAz Mi1iaXQgbGlicHEgbGlicmFyeQorICAgICAgICAgICAgIyB3aXRoIGEgNjQtYml0IFB5dGhvbgor ICAgICAgICAgICAgcHl0ZXN0LnNraXAoImxpYnBxIGFyY2hpdGVjdHVyZSBkb2VzIG5vdCBtYXRj aCBQeXRob24gaW50ZXJwcmV0ZXIiKQorICAgICAgICByYWlzZQorCisKK0BweXRlc3QuZml4dHVy ZQorZGVmIGNvbm5lY3QobGlicHFfaGFuZGxlLCByZW1haW5pbmdfdGltZW91dCk6CisgICAgIiIi CisgICAgUmV0dXJucyBhIGZ1bmN0aW9uIHRvIGNvbm5lY3QgdG8gUG9zdGdyZVNRTCB2aWEgbGli cHEuCisKKyAgICBUaGUgcmV0dXJuZWQgZnVuY3Rpb24gYWNjZXB0cyBjb25uZWN0aW9uIG9wdGlv bnMgYXMga2V5d29yZCBhcmd1bWVudHMKKyAgICAoaG9zdCwgcG9ydCwgZGJuYW1lLCBldGMuKSBh bmQgcmV0dXJucyBhIFBHY29ubiBvYmplY3QuIENvbm5lY3Rpb25zCisgICAgYXJlIGF1dG9tYXRp Y2FsbHkgY2xlYW5lZCB1cCBhdCB0aGUgZW5kIG9mIHRoZSB0ZXN0LgorCisgICAgRXhhbXBsZToK KyAgICAgICAgY29ubiA9IGNvbm5lY3QoaG9zdD0nbG9jYWxob3N0JywgcG9ydD01NDMyLCBkYm5h bWU9J3Bvc3RncmVzJykKKyAgICAgICAgcmVzdWx0ID0gY29ubi5zcWwoIlNFTEVDVCAxIikKKyAg ICAiIiIKKyAgICB3aXRoIGNvbnRleHRsaWIuRXhpdFN0YWNrKCkgYXMgc3RhY2s6CisKKyAgICAg ICAgZGVmIF9jb25uZWN0KCoqb3B0cyk6CisgICAgICAgICAgICByZXR1cm4gbGlicHFfY29ubmVj dChsaWJwcV9oYW5kbGUsIHN0YWNrLCByZW1haW5pbmdfdGltZW91dCwgKipvcHRzKQorCisgICAg ICAgIHlpZWxkIF9jb25uZWN0CisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikK K2RlZiBwZ19jb25maWcoKToKKyAgICAiIiIKKyAgICBSZXR1cm5zIHRoZSBwYXRoIHRvIHBnX2Nv bmZpZy4gVXNlcyBQR19DT05GSUcgZW52aXJvbm1lbnQgdmFyaWFibGUgaWYgc2V0LAorICAgIG90 aGVyd2lzZSB1c2VzICdwZ19jb25maWcnIGZyb20gUEFUSC4KKyAgICAiIiIKKyAgICByZXR1cm4g b3MuZW52aXJvbi5nZXQoIlBHX0NPTkZJRyIsICJwZ19jb25maWciKQorCisKK0BweXRlc3QuZml4 dHVyZShzY29wZT0ic2Vzc2lvbiIpCitkZWYgYmluZGlyKHBnX2NvbmZpZyk6CisgICAgIiIiCisg ICAgUmV0dXJucyB0aGUgUG9zdGdyZVNRTCBiaW4gZGlyZWN0b3J5IHVzaW5nIHBnX2NvbmZpZyAt LWJpbmRpci4KKyAgICAiIiIKKyAgICByZXR1cm4gcGF0aGxpYi5QYXRoKGNhcHR1cmUocGdfY29u ZmlnLCAiLS1iaW5kaXIiKSkKKworCitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQor ZGVmIGxpYmRpcihwZ19jb25maWcpOgorICAgICIiIgorICAgIFJldHVybnMgdGhlIFBvc3RncmVT UUwgbGliIGRpcmVjdG9yeSB1c2luZyBwZ19jb25maWcgLS1saWJkaXIuCisgICAgIiIiCisgICAg cmV0dXJuIHBhdGhsaWIuUGF0aChjYXB0dXJlKHBnX2NvbmZpZywgIi0tbGliZGlyIikpCisKKwor QHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKK2RlZiB0bXBfY2hlY2sodG1wX3BhdGhf ZmFjdG9yeSkgLT4gcGF0aGxpYi5QYXRoOgorICAgICIiIgorICAgIFJldHVybnMgdGhlIHRtcF9j aGVjayBkaXJlY3RvcnkgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHRlc3RzLiBJZgorICAg IFRFU1REQVRBRElSIGlzIHByb3ZpZGVkLCB0aGF0IHdpbGwgYmUgdXNlZDsgb3RoZXJ3aXNlIGEg bmV3IHRlbXBvcmFyeQorICAgIGRpcmVjdG9yeSBpcyBjcmVhdGVkIGluIHRoZSBweXRlc3QgdGVt cCByb290LgorICAgICIiIgorICAgIGQgPSBvcy5nZXRlbnYoIlRFU1REQVRBRElSIikKKyAgICBp ZiBkOgorICAgICAgICBkID0gcGF0aGxpYi5QYXRoKGQpCisgICAgZWxzZToKKyAgICAgICAgZCA9 IHRtcF9wYXRoX2ZhY3RvcnkubWt0ZW1wKCJ0bXBfY2hlY2siKQorCisgICAgcmV0dXJuIGQKKwor CitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQorZGVmIGRhdGFkaXIodG1wX2NoZWNr KToKKyAgICAiIiIKKyAgICBSZXR1cm5zIHRoZSBkYXRhIGRpcmVjdG9yeSB0byB1c2UgZm9yIHRo ZSBwZyBmaXh0dXJlLgorICAgICIiIgorCisgICAgcmV0dXJuIHRtcF9jaGVjayAvICJwZ2RhdGEi CisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKK2RlZiBzb2NrZGlyKHRtcF9w YXRoX2ZhY3RvcnkpOgorICAgICIiIgorICAgIFJldHVybnMgdGhlIGRpcmVjdG9yeSBuYW1lIHRv IHVzZSBhcyB0aGUgc2VydmVyJ3MgdW5peF9zb2NrZXRfZGlyZWN0b3JpZXMKKyAgICBzZXR0aW5n LiBMb2NhbCBjbGllbnQgY29ubmVjdGlvbnMgdXNlIHRoaXMgYXMgdGhlIFBHSE9TVC4KKworICAg IEF0IHRoZSBtb21lbnQsIHRoaXMgaXMgYWx3YXlzIHB1dCB1bmRlciB0aGUgcHl0ZXN0IHRlbXAg cm9vdC4KKyAgICAiIiIKKyAgICByZXR1cm4gdG1wX3BhdGhfZmFjdG9yeS5ta3RlbXAoInNvY2tm aWxlcyIpCisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKK2RlZiBwZ19zZXJ2 ZXJfZ2xvYmFsKGJpbmRpciwgZGF0YWRpciwgc29ja2RpciwgbGlicHFfaGFuZGxlKToKKyAgICAi IiIKKyAgICBTdGFydHMgYSBydW5uaW5nIFBvc3RncmVzIHNlcnZlciBsaXN0ZW5pbmcgb24gbG9j YWxob3N0LiBUaGUgSEJBIGluaXRpYWxseQorICAgIGFsbG93cyBvbmx5IGxvY2FsIFVOSVggY29u bmVjdGlvbnMgZnJvbSB0aGUgc2FtZSB1c2VyLgorCisgICAgUmV0dXJucyBhIFBvc3RncmVzU2Vy dmVyIGluc3RhbmNlIHdpdGggbWV0aG9kcyBmb3Igc2VydmVyIG1hbmFnZW1lbnQsIGNvbmZpZ3Vy YXRpb24sCisgICAgYW5kIGNyZWF0aW5nIHRlc3QgZGF0YWJhc2VzL3VzZXJzLgorICAgICIiIgor ICAgIHNlcnZlciA9IFBvc3RncmVzU2VydmVyKCJkZWZhdWx0IiwgYmluZGlyLCBkYXRhZGlyLCBz b2NrZGlyLCBsaWJwcV9oYW5kbGUpCisKKyAgICB5aWVsZCBzZXJ2ZXIKKworICAgICMgQ2xlYW51 cCBhbnkgdGVzdCByZXNvdXJjZXMKKyAgICBzZXJ2ZXIuY2xlYW51cCgpCisKKyAgICAjIFN0b3Ag dGhlIHNlcnZlcgorICAgIHNlcnZlci5zdG9wKCkKKworCitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9 Im1vZHVsZSIpCitkZWYgcGdfc2VydmVyX21vZHVsZShwZ19zZXJ2ZXJfZ2xvYmFsKToKKyAgICAi IiIKKyAgICBNb2R1bGUtc2NvcGVkIHNlcnZlciBjb250ZXh0LiBXaGljaCBjYW4gYmUgdXNlZnVs IHNvIHRoYXQgY2VydGFpbiBzZXR0aW5ncworICAgIGNhbiBiZSBvdmVycmlkZW4gYXQgdGhlIG1v ZHVsZSBsZXZlbCB0aHJvdWdoIGF1dG91c2UgZml4dHVyZXMuIEFuIGV4YW1wbGUKKyAgICBvZiB0 aGlzIGlzIGluIHRoZSBTU0wgdGVzdHMuCisgICAgIiIiCisgICAgd2l0aCBwZ19zZXJ2ZXJfZ2xv YmFsLnN1YmNvbnRleHQoKSBhcyBzOgorICAgICAgICB5aWVsZCBzCisKKworQHB5dGVzdC5maXh0 dXJlCitkZWYgcGcocmVxdWVzdCwgcGdfc2VydmVyX21vZHVsZSwgcmVtYWluaW5nX3RpbWVvdXQp OgorICAgICIiIgorICAgIFBlci10ZXN0IHNlcnZlciBjb250ZXh0LiBVc2UgdGhpcyBmaXh0dXJl IHRvIG1ha2UgY2hhbmdlcyB0byB0aGUgc2VydmVyCisgICAgd2hpY2ggd2lsbCBiZSByb2xsZWQg YmFjayBhdCB0aGUgZW5kIG9mIHRoZSB0ZXN0IChlLmcuLCBjcmVhdGluZyB0ZXN0CisgICAgdXNl cnMvZGF0YWJhc2VzKS4KKworICAgIEFsc28gY2FwdHVyZXMgdGhlIFBvc3RncmVTUUwgbG9nIHBv c2l0aW9uIGF0IHRlc3Qgc3RhcnQgc28gdGhhdCBhbnkgbmV3CisgICAgbG9nIGVudHJpZXMgY2Fu IGJlIGluY2x1ZGVkIGluIHRoZSB0ZXN0IHJlcG9ydCBvbiBmYWlsdXJlLgorICAgICIiIgorICAg IHdpdGggcGdfc2VydmVyX21vZHVsZS5zdGFydF9uZXdfdGVzdChyZW1haW5pbmdfdGltZW91dCkg YXMgczoKKyAgICAgICAgX3JlY29yZF9zZXJ2ZXJfZm9yX2xvZ19yZXBvcnRpbmcocmVxdWVzdCwg cykKKyAgICAgICAgeWllbGQgcworCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGNvbm4ocGcpOgor ICAgICIiIgorICAgIFJldHVybnMgYSBjb25uZWN0ZWQgUEdjb25uIGluc3RhbmNlIHRvIHRoZSB0 ZXN0IFBvc3RncmVTUUwgc2VydmVyLgorICAgIFRoZSBjb25uZWN0aW9uIGlzIGF1dG9tYXRpY2Fs bHkgY2xlYW5lZCB1cCBhdCB0aGUgZW5kIG9mIHRoZSB0ZXN0LgorCisgICAgRXhhbXBsZToKKyAg ICAgICAgZGVmIHRlc3Rfc29tZXRoaW5nKGNvbm4pOgorICAgICAgICAgICAgcmVzdWx0ID0gY29u bi5zcWwoIlNFTEVDVCAxIikKKyAgICAgICAgICAgIGFzc2VydCByZXN1bHQgPT0gMQorICAgICIi IgorICAgIHJldHVybiBwZy5jb25uZWN0KCkKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBjcmVh dGVfcGcocmVxdWVzdCwgYmluZGlyLCBzb2NrZGlyLCBsaWJwcV9oYW5kbGUsIHRtcF9jaGVjaywg cmVtYWluaW5nX3RpbWVvdXQpOgorICAgICIiIgorICAgIEZhY3RvcnkgZml4dHVyZSB0byBjcmVh dGUgYWRkaXRpb25hbCBQb3N0Z3JlU1FMIHNlcnZlcnMgKHBlci10ZXN0IHNjb3BlKS4KKworICAg IFJldHVybnMgYSBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgbmV3IFBvc3RncmVTUUwgc2VydmVyIGlu c3RhbmNlcy4KKyAgICBTZXJ2ZXJzIGFyZSBhdXRvbWF0aWNhbGx5IGNsZWFuZWQgdXAgYXQgdGhl IGVuZCBvZiB0aGUgdGVzdC4KKworICAgIEV4YW1wbGU6CisgICAgICAgIGRlZiB0ZXN0X211bHRp cGxlX3NlcnZlcnMoY3JlYXRlX3BnKToKKyAgICAgICAgICAgIG5vZGUxID0gY3JlYXRlX3BnKCkK KyAgICAgICAgICAgIG5vZGUyID0gY3JlYXRlX3BnKCkKKyAgICAgICAgICAgIG5vZGUzID0gY3Jl YXRlX3BnKCkKKyAgICAiIiIKKyAgICBzZXJ2ZXJzID0gW10KKworICAgIGRlZiBfY3JlYXRlKG5h bWU9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICBpZiBuYW1lIGlzIE5vbmU6CisgICAgICAgICAg ICBjb3VudCA9IGxlbihzZXJ2ZXJzKSArIDEKKyAgICAgICAgICAgIG5hbWUgPSBmInBne2NvdW50 fSIKKworICAgICAgICBkYXRhZGlyID0gdG1wX2NoZWNrIC8gZiJwZ2RhdGFfe25hbWV9IgorICAg ICAgICBzZXJ2ZXIgPSBQb3N0Z3Jlc1NlcnZlcihuYW1lLCBiaW5kaXIsIGRhdGFkaXIsIHNvY2tk aXIsIGxpYnBxX2hhbmRsZSwgKiprd2FyZ3MpCisgICAgICAgIHNlcnZlci5zZXRfdGltZW91dChy ZW1haW5pbmdfdGltZW91dCkKKyAgICAgICAgX3JlY29yZF9zZXJ2ZXJfZm9yX2xvZ19yZXBvcnRp bmcocmVxdWVzdCwgc2VydmVyKQorICAgICAgICBzZXJ2ZXJzLmFwcGVuZChzZXJ2ZXIpCisgICAg ICAgIHJldHVybiBzZXJ2ZXIKKworICAgIHlpZWxkIF9jcmVhdGUKKworICAgIGZvciBzZXJ2ZXIg aW4gc2VydmVyczoKKyAgICAgICAgc2VydmVyLmNsZWFudXAoKQorICAgICAgICBzZXJ2ZXIuc3Rv cCgpCisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorZGVmIF9tb2R1bGVfc2Nv cGVkX3NlcnZlcnMoKToKKyAgICAiIiJTZXNzaW9uLXNjb3BlZCBsaXN0IHRvIHRyYWNrIHNlcnZl cnMgY3JlYXRlZCBieSBjcmVhdGVfcGdfbW9kdWxlLiIiIgorICAgIHJldHVybiBbXQorCisKK0Bw eXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKK2RlZiBjcmVhdGVfcGdfbW9kdWxlKAorICAg IGJpbmRpciwKKyAgICBzb2NrZGlyLAorICAgIGxpYnBxX2hhbmRsZSwKKyAgICB0bXBfY2hlY2ss CisgICAgcmVtYWluaW5nX3RpbWVvdXRfbW9kdWxlLAorICAgIF9tb2R1bGVfc2NvcGVkX3NlcnZl cnMsCispOgorICAgICIiIgorICAgIEZhY3RvcnkgZml4dHVyZSB0byBjcmVhdGUgYWRkaXRpb25h bCBQb3N0Z3JlU1FMIHNlcnZlcnMgKG1vZHVsZSBzY29wZSkuCisKKyAgICBMaWtlIGNyZWF0ZV9w ZywgYnV0IHNlcnZlcnMgcGVyc2lzdCBmb3IgdGhlIGVudGlyZSB0ZXN0IG1vZHVsZS4KKyAgICBV c2UgdGhpcyB3aGVuIG11bHRpcGxlIHRlc3RzIGluIGEgbW9kdWxlIGNhbiBzaGFyZSB0aGUgc2Ft ZSBzZXJ2ZXJzLgorCisgICAgVGhlIHRpbWVvdXQgaXMgYXV0b21hdGljYWxseSBzZXQgb24gYWxs IHNlcnZlcnMgYXQgdGhlIHN0YXJ0IG9mIGVhY2ggdGVzdAorICAgIHZpYSB0aGUgX3NldF9tb2R1 bGVfc2VydmVyX3RpbWVvdXRzIGF1dG91c2UgZml4dHVyZS4KKworICAgIEV4YW1wbGU6CisgICAg ICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKKyAgICAgICAgZGVmIHNoYXJlZF9u b2RlcyhjcmVhdGVfcGdfbW9kdWxlKToKKyAgICAgICAgICAgIHJldHVybiBbY3JlYXRlX3BnX21v ZHVsZSgpIGZvciBfIGluIHJhbmdlKDMpXQorICAgICIiIgorCisgICAgZGVmIF9jcmVhdGUobmFt ZT1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgIGlmIG5hbWUgaXMgTm9uZToKKyAgICAgICAgICAg IGNvdW50ID0gbGVuKF9tb2R1bGVfc2NvcGVkX3NlcnZlcnMpICsgMQorICAgICAgICAgICAgbmFt ZSA9IGYicGd7Y291bnR9IgorICAgICAgICBkYXRhZGlyID0gdG1wX2NoZWNrIC8gZiJwZ2RhdGFf e25hbWV9IgorICAgICAgICBzZXJ2ZXIgPSBQb3N0Z3Jlc1NlcnZlcihuYW1lLCBiaW5kaXIsIGRh dGFkaXIsIHNvY2tkaXIsIGxpYnBxX2hhbmRsZSwgKiprd2FyZ3MpCisgICAgICAgIHNlcnZlci5z ZXRfdGltZW91dChyZW1haW5pbmdfdGltZW91dF9tb2R1bGUpCisgICAgICAgIF9tb2R1bGVfc2Nv cGVkX3NlcnZlcnMuYXBwZW5kKHNlcnZlcikKKyAgICAgICAgcmV0dXJuIHNlcnZlcgorCisgICAg eWllbGQgX2NyZWF0ZQorCisgICAgZm9yIHNlcnZlciBpbiBfbW9kdWxlX3Njb3BlZF9zZXJ2ZXJz OgorICAgICAgICBzZXJ2ZXIuY2xlYW51cCgpCisgICAgICAgIHNlcnZlci5zdG9wKCkKKworCitA cHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQorZGVmIF9zZXRfbW9kdWxlX3NlcnZlcl90aW1l b3V0cyhyZXF1ZXN0LCBfbW9kdWxlX3Njb3BlZF9zZXJ2ZXJzLCByZW1haW5pbmdfdGltZW91dCk6 CisgICAgIiIiQXV0b3VzZSBmaXh0dXJlIHRoYXQgc2V0cyB0aW1lb3V0LCBlbnRlcnMgc3ViY29u dGV4dCwgYW5kIHJlY29yZHMgbG9nIHBvc2l0aW9ucyBmb3IgbW9kdWxlLXNjb3BlZCBzZXJ2ZXJz LiIiIgorICAgIHdpdGggY29udGV4dGxpYi5FeGl0U3RhY2soKSBhcyBzdGFjazoKKyAgICAgICAg Zm9yIHNlcnZlciBpbiBfbW9kdWxlX3Njb3BlZF9zZXJ2ZXJzOgorICAgICAgICAgICAgc3RhY2su ZW50ZXJfY29udGV4dChzZXJ2ZXIuc3RhcnRfbmV3X3Rlc3QocmVtYWluaW5nX3RpbWVvdXQpKQor ICAgICAgICAgICAgX3JlY29yZF9zZXJ2ZXJfZm9yX2xvZ19yZXBvcnRpbmcocmVxdWVzdCwgc2Vy dmVyKQorICAgICAgICB5aWVsZAorCisKK0BweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1 ZSwgdHJ5bGFzdD1UcnVlKQorZGVmIHB5dGVzdF9ydW50ZXN0X21ha2VyZXBvcnQoaXRlbSwgY2Fs bCk6CisgICAgIiIiCisgICAgQWRkcyBQb3N0Z3JlU1FMIHNlcnZlciBsb2dzIHRvIHRoZSB0ZXN0 IHJlcG9ydCBzZWN0aW9ucy4KKyAgICAiIiIKKyAgICBvdXRjb21lID0geWllbGQKKyAgICByZXBv cnQgPSBvdXRjb21lLmdldF9yZXN1bHQoKQorCisgICAgaWYgcmVwb3J0LndoZW4gIT0gImNhbGwi OgorICAgICAgICByZXR1cm4KKworICAgIGlmIF9zZXJ2ZXJzX2tleSBub3QgaW4gaXRlbS5zdGFz aDoKKyAgICAgICAgcmV0dXJuCisKKyAgICBzZXJ2ZXJzID0gaXRlbS5zdGFzaFtfc2VydmVyc19r ZXldCisgICAgZGVsIGl0ZW0uc3Rhc2hbX3NlcnZlcnNfa2V5XQorCisgICAgaW5jbHVkZV9uYW1l ID0gbGVuKHNlcnZlcnMpID4gMQorCisgICAgZm9yIHNlcnZlciBpbiBzZXJ2ZXJzOgorICAgICAg ICBjb250ZW50ID0gc2VydmVyLmxvZ19jb250ZW50KCkKKyAgICAgICAgaWYgY29udGVudC5zdHJp cCgpOgorICAgICAgICAgICAgc2VjdGlvbl90aXRsZSA9ICJQb3N0Z3JlcyBsb2ciCisgICAgICAg ICAgICBpZiBpbmNsdWRlX25hbWU6CisgICAgICAgICAgICAgICAgc2VjdGlvbl90aXRsZSArPSBm IiAoe3NlcnZlci5uYW1lfSkiCisgICAgICAgICAgICByZXBvcnQuc2VjdGlvbnMuYXBwZW5kKChz ZWN0aW9uX3RpdGxlLCBjb250ZW50KSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVzdC9weXBn L3NlcnZlci5weSBiL3NyYy90ZXN0L3B5dGVzdC9weXBnL3NlcnZlci5weQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTI0MmFiMjUwMDcKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvdGVzdC9weXRlc3QvcHlwZy9zZXJ2ZXIucHkKQEAgLTAsMCArMSw0NzAgQEAKKyMgQ29w eXJpZ2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCitp bXBvcnQgY29udGV4dGxpYgoraW1wb3J0IG9zCitpbXBvcnQgcGF0aGxpYgoraW1wb3J0IHBsYXRm b3JtCitpbXBvcnQgcmUKK2ltcG9ydCBzaHV0aWwKK2ltcG9ydCBzb2NrZXQKK2ltcG9ydCBzdWJw cm9jZXNzCitpbXBvcnQgdGVtcGZpbGUKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IG5hbWVkdHVw bGUKK2Zyb20gdHlwaW5nIGltcG9ydCBDYWxsYWJsZSwgT3B0aW9uYWwKKworZnJvbSAudXRpbCBp bXBvcnQgcnVuCitmcm9tIGxpYnBxIGltcG9ydCBQR2Nvbm4sIGNvbm5lY3QgYXMgbGlicHFfY29u bmVjdAorCisKK2NsYXNzIEZpbGVCYWNrdXAoY29udGV4dGxpYi5BYnN0cmFjdENvbnRleHRNYW5h Z2VyKToKKyAgICAiIiIKKyAgICBBIGNvbnRleHQgbWFuYWdlciB3aGljaCBiYWNrcyB1cCBhIGZp bGUncyBjb250ZW50cywgcmVzdG9yaW5nIHRoZW0gb24gZXhpdC4KKyAgICAiIiIKKworICAgIGRl ZiBfX2luaXRfXyhzZWxmLCBmaWxlOiBwYXRobGliLlBhdGgpOgorICAgICAgICBzdXBlcigpLl9f aW5pdF9fKCkKKworICAgICAgICBzZWxmLl9maWxlID0gZmlsZQorCisgICAgZGVmIF9fZW50ZXJf XyhzZWxmKToKKyAgICAgICAgd2l0aCB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUoCisgICAg ICAgICAgICBwcmVmaXg9c2VsZi5fZmlsZS5uYW1lLCBkaXI9c2VsZi5fZmlsZS5wYXJlbnQsIGRl bGV0ZT1GYWxzZQorICAgICAgICApIGFzIGY6CisgICAgICAgICAgICBzZWxmLl9iYWNrdXAgPSBw YXRobGliLlBhdGgoZi5uYW1lKQorCisgICAgICAgIHNodXRpbC5jb3B5ZmlsZShzZWxmLl9maWxl LCBzZWxmLl9iYWNrdXApCisKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfX2V4aXRf XyhzZWxmLCAqZXhjKToKKyAgICAgICAgIyBTd2FwIHRoZSBiYWNrdXAgYW5kIHRoZSBvcmlnaW5h bCBmaWxlLCBzbyB0aGF0IHRoZSBtb2RpZmllZCBjb250ZW50cworICAgICAgICAjIGNhbiBzdGls bCBiZSBpbnNwZWN0ZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICAgICAgICB0bXAgPSBzZWxmLl9i YWNrdXAucGFyZW50IC8gKHNlbGYuX2JhY2t1cC5uYW1lICsgIi50bXAiKQorCisgICAgICAgIHNo dXRpbC5jb3B5ZmlsZShzZWxmLl9maWxlLCB0bXApCisgICAgICAgIHNodXRpbC5jb3B5ZmlsZShz ZWxmLl9iYWNrdXAsIHNlbGYuX2ZpbGUpCisgICAgICAgIHNodXRpbC5tb3ZlKHRtcCwgc2VsZi5f YmFja3VwKQorCisKK2NsYXNzIEhCQShGaWxlQmFja3VwKToKKyAgICAiIiIKKyAgICBCYWNrcyB1 cCBhIHNlcnZlcidzIEhCQSBjb25maWd1cmF0aW9uIGFuZCBwcm92aWRlcyBtZWFucyBmb3IgdGVt cG9yYXJpbHkKKyAgICBlZGl0aW5nIGl0LgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNl bGYsIGRhdGFkaXI6IHBhdGhsaWIuUGF0aCk6CisgICAgICAgIHN1cGVyKCkuX19pbml0X18oZGF0 YWRpciAvICJwZ19oYmEuY29uZiIpCisKKyAgICBkZWYgcHJlcGVuZChzZWxmLCAqbGluZXMpOgor ICAgICAgICAiIiIKKyAgICAgICAgVGVtcG9yYXJpbHkgcHJlcGVuZHMgbGluZXMgdG8gdGhlIHNl cnZlcidzIHBnX2hiYS5jb25mLgorCisgICAgICAgIEFzIHN1Z2FyIGZvciBhbGlnbmluZyBIQkEg Y29sdW1ucyBpbiB0aGUgdGVzdHMsIGVhY2ggbGluZSBjYW4gYmUgZWl0aGVyCisgICAgICAgIGEg c3RyaW5nIG9yIGEgbGlzdCBvZiBzdHJpbmdzLiBMaXN0IGVsZW1lbnRzIHdpbGwgYmUgam9pbmVk IGJ5IHNpbmdsZQorICAgICAgICBzcGFjZXMgYmVmb3JlIHRoZXkgYXJlIHdyaXR0ZW4gdG8gZmls ZS4KKyAgICAgICAgIiIiCisgICAgICAgIHdpdGggb3BlbihzZWxmLl9maWxlLCAiciIpIGFzIGY6 CisgICAgICAgICAgICBwcmlvcl9kYXRhID0gZi5yZWFkKCkKKworICAgICAgICB3aXRoIG9wZW4o c2VsZi5fZmlsZSwgInciKSBhcyBmOgorICAgICAgICAgICAgZm9yIGxpbmUgaW4gbGluZXM6Cisg ICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShsaW5lLCBsaXN0KToKKyAgICAgICAgICAgICAg ICAgICAgcHJpbnQoKmxpbmUsIGZpbGU9ZikKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgICAgICBwcmludChsaW5lLCBmaWxlPWYpCisKKyAgICAgICAgICAgIGYud3JpdGUo cHJpb3JfZGF0YSkKKworCitjbGFzcyBDb25maWcoRmlsZUJhY2t1cCk6CisgICAgIiIiCisgICAg QmFja3MgdXAgYSBzZXJ2ZXIncyBwb3N0Z3Jlc3FsLmNvbmYgYW5kIHByb3ZpZGVzIG1lYW5zIGZv ciB0ZW1wb3JhcmlseQorICAgIGVkaXRpbmcgaXQuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0 X18oc2VsZiwgZGF0YWRpcjogcGF0aGxpYi5QYXRoKToKKyAgICAgICAgc3VwZXIoKS5fX2luaXRf XyhkYXRhZGlyIC8gInBvc3RncmVzcWwuY29uZiIpCisKKyAgICBkZWYgc2V0KHNlbGYsICoqZ3Vj cyk6CisgICAgICAgICIiIgorICAgICAgICBUZW1wb3JhcmlseSBhcHBlbmRzIEdVQyBzZXR0aW5n cyB0byB0aGUgc2VydmVyJ3MgcG9zdGdyZXNxbC5jb25mLgorICAgICAgICAiIiIKKworICAgICAg ICB3aXRoIG9wZW4oc2VsZi5fZmlsZSwgImEiKSBhcyBmOgorICAgICAgICAgICAgcHJpbnQoZmls ZT1mKQorCisgICAgICAgICAgICBmb3IgbiwgdiBpbiBndWNzLml0ZW1zKCk6CisgICAgICAgICAg ICAgICAgdiA9IHN0cih2KQorCisgICAgICAgICAgICAgICAgIyBUT0RPOiBwcm9wZXIgcXVvdGlu ZworICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoIlxcIiwgIlxcXFwiKQorICAgICAgICAg ICAgICAgIHYgPSB2LnJlcGxhY2UoIiciLCAiXFwnIikKKyAgICAgICAgICAgICAgICB2ID0gIid7 fSciLmZvcm1hdCh2KQorCisgICAgICAgICAgICAgICAgcHJpbnQobiwgIj0iLCB2LCBmaWxlPWYp CisKKworQmFja3VwID0gbmFtZWR0dXBsZSgiQmFja3VwIiwgImNvbmYsIGhiYSIpCisKKworY2xh c3MgUG9zdGdyZXNTZXJ2ZXI6CisgICAgIiIiCisgICAgUmVwcmVzZW50cyBhIHJ1bm5pbmcgUG9z dGdyZVNRTCBzZXJ2ZXIgaW5zdGFuY2Ugd2l0aCBtYW5hZ2VtZW50IHV0aWxpdGllcy4KKyAgICBQ cm92aWRlcyBtZXRob2RzIGZvciBjb25maWd1cmF0aW9uLCB1c2VyL2RhdGFiYXNlIGNyZWF0aW9u LCBhbmQgc2VydmVyIGNvbnRyb2wuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oCisgICAg ICAgIHNlbGYsCisgICAgICAgIG5hbWUsCisgICAgICAgIGJpbmRpciwKKyAgICAgICAgZGF0YWRp ciwKKyAgICAgICAgc29ja2RpciwKKyAgICAgICAgbGlicHFfaGFuZGxlLAorICAgICAgICAqLAor ICAgICAgICBob3N0YWRkcjogT3B0aW9uYWxbc3RyXSA9IE5vbmUsCisgICAgICAgIHBvcnQ6IE9w dGlvbmFsW2ludF0gPSBOb25lLAorICAgICk6CisgICAgICAgICIiIgorICAgICAgICBJbml0aWFs aXplIGFuZCBzdGFydCBhIFBvc3RncmVTUUwgc2VydmVyIGluc3RhbmNlLgorCisgICAgICAgIEFy Z3M6CisgICAgICAgICAgICBuYW1lOiBUaGUgbmFtZSBvZiB0aGlzIHNlcnZlciBpbnN0YW5jZSAo Zm9yIGxvZ2dpbmcgcHVycG9zZXMpCisgICAgICAgICAgICBiaW5kaXI6IFBhdGggdG8gUG9zdGdy ZVNRTCBiaW4gZGlyZWN0b3J5CisgICAgICAgICAgICBkYXRhZGlyOiBQYXRoIHRvIGRhdGEgZGly ZWN0b3J5IGZvciB0aGlzIHNlcnZlcgorICAgICAgICAgICAgc29ja2RpcjogUGF0aCB0byBkaXJl Y3RvcnkgZm9yIFVuaXggc29ja2V0cworICAgICAgICAgICAgbGlicHFfaGFuZGxlOiBjdHlwZXMg aGFuZGxlIHRvIGxpYnBxCisgICAgICAgICAgICBob3N0YWRkcjogSWYgcHJvdmlkZWQsIHVzZSB0 aGlzIHNwZWNpZmljIGFkZHJlc3MgKGUuZy4sICIxMjcuMC4wLjIiKQorICAgICAgICAgICAgcG9y dDogSWYgcHJvdmlkZWQsIHVzZSB0aGlzIHBvcnQgaW5zdGVhZCBvZiBmaW5kaW5nIGEgZnJlZSBv bmUsCisgICAgICAgICAgICAgICAgaXMgY3VycmVudGx5IG9ubHkgYWxsb3dlZCBpZiBob3N0YWRk ciBpcyBhbHNvIHByb3ZpZGVkCisgICAgICAgICIiIgorCisgICAgICAgIGlmIGhvc3RhZGRyIGlz IE5vbmUgYW5kIHBvcnQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1l bnRlZEVycm9yKCJwb3J0IHdhcyBwcm92aWRlZCB3aXRob3V0IGhvc3RhZGRyIikKKworICAgICAg ICBzZWxmLm5hbWUgPSBuYW1lCisgICAgICAgIHNlbGYuZGF0YWRpciA9IGRhdGFkaXIKKyAgICAg ICAgc2VsZi5zb2NrZGlyID0gc29ja2RpcgorICAgICAgICBzZWxmLmxpYnBxX2hhbmRsZSA9IGxp YnBxX2hhbmRsZQorICAgICAgICBzZWxmLl9yZW1haW5pbmdfdGltZW91dF9mbjogT3B0aW9uYWxb Q2FsbGFibGVbW10sIGZsb2F0XV0gPSBOb25lCisgICAgICAgIHNlbGYuX2JpbmRpciA9IGJpbmRp cgorICAgICAgICBzZWxmLl9wZ19jdGwgPSBiaW5kaXIgLyAicGdfY3RsIgorICAgICAgICBzZWxm LmxvZyA9IGRhdGFkaXIgLyAicG9zdGdyZXNxbC5sb2ciCisgICAgICAgIHNlbGYuX2xvZ19zdGFy dF9wb3MgPSAwCisKKyAgICAgICAgIyBEZXRlcm1pbmUgd2hldGhlciB0byB1c2UgVW5peCBzb2Nr ZXRzCisgICAgICAgIHVzZV91bml4X3NvY2tldHMgPSBwbGF0Zm9ybS5zeXN0ZW0oKSAhPSAiV2lu ZG93cyIgYW5kIGhvc3RhZGRyIGlzIE5vbmUKKworICAgICAgICAjIFVzZSBJTklUREJfVEVNUExB VEUgaWYgYXZhaWxhYmxlIChtdWNoIGZhc3RlciB0aGFuIHJ1bm5pbmcgaW5pdGRiKQorICAgICAg ICBpbml0ZGJfdGVtcGxhdGUgPSBvcy5lbnZpcm9uLmdldCgiSU5JVERCX1RFTVBMQVRFIikKKyAg ICAgICAgaWYgaW5pdGRiX3RlbXBsYXRlIGFuZCBvcy5wYXRoLmlzZGlyKGluaXRkYl90ZW1wbGF0 ZSk6CisgICAgICAgICAgICBzaHV0aWwuY29weXRyZWUoaW5pdGRiX3RlbXBsYXRlLCBkYXRhZGly KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgcGxhdGZvcm0uc3lzdGVtKCkgPT0gIldp bmRvd3MiOgorICAgICAgICAgICAgICAgIGF1dGhfbWV0aG9kID0gInRydXN0IgorICAgICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICAgICBhdXRoX21ldGhvZCA9ICJwZWVyIgorICAgICAgICAg ICAgcnVuKAorICAgICAgICAgICAgICAgIGJpbmRpciAvICJpbml0ZGIiLAorICAgICAgICAgICAg ICAgICItLW5vLXN5bmMiLAorICAgICAgICAgICAgICAgICItLWF1dGgiLAorICAgICAgICAgICAg ICAgIGF1dGhfbWV0aG9kLAorICAgICAgICAgICAgICAgICItLXBnZGF0YSIsCisgICAgICAgICAg ICAgICAgc2VsZi5kYXRhZGlyLAorICAgICAgICAgICAgKQorCisgICAgICAgICMgRmlndXJlIG91 dCBhIHBvcnQgdG8gbGlzdGVuIG9uLiBBdHRlbXB0IHRvIHJlc2VydmUgYm90aCBJUHY0IGFuZCBJ UHY2CisgICAgICAgICMgYWRkcmVzc2VzIGluIG9uZSBnby4KKyAgICAgICAgIworICAgICAgICAj IE5vdGU6IHNvY2tldC5oYXNfZHVhbHN0YWNrX2lwdjYvY3JlYXRlX3NlcnZlciBhcmUgb25seSBp biBQeXRob24gMy44Ky4KKyAgICAgICAgaWYgaG9zdGFkZHIgaXMgbm90IE5vbmU6CisgICAgICAg ICAgICAjIEV4cGxpY2l0IGFkZHJlc3MgcHJvdmlkZWQKKyAgICAgICAgICAgIGFkZHJzOiBsaXN0 W3N0cl0gPSBbaG9zdGFkZHJdCisgICAgICAgICAgICB0ZW1wX3NvY2sgPSBzb2NrZXQuc29ja2V0 KCkKKyAgICAgICAgICAgIGlmIHBvcnQgaXMgTm9uZToKKyAgICAgICAgICAgICAgICB0ZW1wX3Nv Y2suYmluZCgoaG9zdGFkZHIsIDApKQorICAgICAgICAgICAgICAgIF8sIHBvcnQgPSB0ZW1wX3Nv Y2suZ2V0c29ja25hbWUoKQorCisgICAgICAgIGVsaWYgaGFzYXR0cihzb2NrZXQsICJoYXNfZHVh bHN0YWNrX2lwdjYiKSBhbmQgc29ja2V0Lmhhc19kdWFsc3RhY2tfaXB2NigpOgorICAgICAgICAg ICAgYWRkciA9ICgiOjoxIiwgMCkKKyAgICAgICAgICAgIHRlbXBfc29jayA9IHNvY2tldC5jcmVh dGVfc2VydmVyKAorICAgICAgICAgICAgICAgIGFkZHIsIGZhbWlseT1zb2NrZXQuQUZfSU5FVDYs IGR1YWxzdGFja19pcHY2PVRydWUKKyAgICAgICAgICAgICkKKworICAgICAgICAgICAgaG9zdGFk ZHIsIHBvcnQsIF8sIF8gPSB0ZW1wX3NvY2suZ2V0c29ja25hbWUoKQorICAgICAgICAgICAgYXNz ZXJ0IGhvc3RhZGRyIGlzIG5vdCBOb25lCisgICAgICAgICAgICBhZGRycyA9IFtob3N0YWRkciwg IjEyNy4wLjAuMSJdCisKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFkZHIgPSAoIjEyNy4w LjAuMSIsIDApCisKKyAgICAgICAgICAgIHRlbXBfc29jayA9IHNvY2tldC5zb2NrZXQoKQorICAg ICAgICAgICAgdGVtcF9zb2NrLmJpbmQoYWRkcikKKworICAgICAgICAgICAgaG9zdGFkZHIsIHBv cnQgPSB0ZW1wX3NvY2suZ2V0c29ja25hbWUoKQorICAgICAgICAgICAgYXNzZXJ0IGhvc3RhZGRy IGlzIG5vdCBOb25lCisgICAgICAgICAgICBhZGRycyA9IFtob3N0YWRkcl0KKworICAgICAgICAj IFN0b3JlIHRoZSBjb21wdXRlZCB2YWx1ZXMKKyAgICAgICAgc2VsZi5ob3N0YWRkciA9IGhvc3Rh ZGRyCisgICAgICAgIHNlbGYucG9ydCA9IHBvcnQKKyAgICAgICAgIyBJbmNsdWRpbmcgdGhlIGhv c3QgdG8gdXNlIGZvciBjb25uZWN0aW9ucyAtIGVpdGhlciB0aGUgc29ja2V0CisgICAgICAgICMg ZGlyZWN0b3J5IG9yIFRDUCBhZGRyZXNzCisgICAgICAgIGlmIHVzZV91bml4X3NvY2tldHM6Cisg ICAgICAgICAgICBzZWxmLmhvc3QgPSBzdHIoc29ja2RpcikKKyAgICAgICAgZWxzZToKKyAgICAg ICAgICAgIHNlbGYuaG9zdCA9IGhvc3RhZGRyCisKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGgu am9pbihkYXRhZGlyLCAicG9zdGdyZXNxbC5jb25mIiksICJhIikgYXMgZjoKKyAgICAgICAgICAg IHByaW50KGZpbGU9ZikKKyAgICAgICAgICAgIGlmIHVzZV91bml4X3NvY2tldHM6CisgICAgICAg ICAgICAgICAgcHJpbnQoCisgICAgICAgICAgICAgICAgICAgICJ1bml4X3NvY2tldF9kaXJlY3Rv cmllcyA9ICd7fSciLmZvcm1hdChzb2NrZGlyLmFzX3Bvc2l4KCkpLAorICAgICAgICAgICAgICAg ICAgICBmaWxlPWYsCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICAgICAjIERpc2FibGUgVW5peCBzb2NrZXRzIHdoZW4gdXNpbmcgVENQIHRvIGF2b2lk IGxvY2sgY29uZmxpY3RzCisgICAgICAgICAgICAgICAgcHJpbnQoInVuaXhfc29ja2V0X2RpcmVj dG9yaWVzID0gJyciLCBmaWxlPWYpCisgICAgICAgICAgICBwcmludCgibGlzdGVuX2FkZHJlc3Nl cyA9ICd7fSciLmZvcm1hdCgiLCIuam9pbihhZGRycykpLCBmaWxlPWYpCisgICAgICAgICAgICBw cmludCgicG9ydCA9IiwgcG9ydCwgZmlsZT1mKQorICAgICAgICAgICAgcHJpbnQoImxvZ19jb25u ZWN0aW9ucyA9IGFsbCIsIGZpbGU9ZikKKyAgICAgICAgICAgIHByaW50KCJmc3luYyA9IG9mZiIs IGZpbGU9ZikKKyAgICAgICAgICAgIHByaW50KCJkYXRlc3R5bGUgPSAnSVNPJyIsIGZpbGU9ZikK KyAgICAgICAgICAgIHByaW50KCJ0aW1lem9uZSA9ICdVVEMnIiwgZmlsZT1mKQorCisgICAgICAg ICMgQmV0d2VlbiBjbG9zaW5nIG9mIHRoZSBzb2NrZXQsIHMsIGFuZCBzZXJ2ZXIgc3RhcnQsIHdl J3JlIHJhY2luZworICAgICAgICAjIGFnYWluc3QgYW55dGhpbmcgdGhhdCB3YW50cyB0byBvcGVu IHVwIGVwaGVtZXJhbCBwb3J0cywgc28gdHJ5IG5vdCB0bworICAgICAgICAjIHB1dCBhbnkgbmV3 IHdvcmsgaGVyZS4KKworICAgICAgICB0ZW1wX3NvY2suY2xvc2UoKQorICAgICAgICBzZWxmLnBn X2N0bCgic3RhcnQiKQorCisgICAgICAgICMgUmVhZCB0aGUgUElEIGZpbGUgdG8gZ2V0IHRoZSBw b3N0bWFzdGVyIFBJRAorICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGRhdGFkaXIsICJw b3N0bWFzdGVyLnBpZCIpKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5waWQgPSBpbnQoZi5yZWFk bGluZSgpLnN0cmlwKCkpCisKKyAgICAgICAgIyBFeGl0U3RhY2sgZm9yIGNsZWFudXAgY2FsbGJh Y2tzCisgICAgICAgIHNlbGYuX2NsZWFudXBfc3RhY2sgPSBjb250ZXh0bGliLkV4aXRTdGFjaygp CisKKyAgICBkZWYgY3VycmVudF9sb2dfcG9zaXRpb24oc2VsZik6CisgICAgICAgICIiIkdldCB0 aGUgY3VycmVudCBlbmQgcG9zaXRpb24gb2YgdGhlIGxvZyBmaWxlLiIiIgorICAgICAgICBpZiBz ZWxmLmxvZy5leGlzdHMoKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmxvZy5zdGF0KCkuc3Rf c2l6ZQorICAgICAgICByZXR1cm4gMAorCisgICAgZGVmIHJlc2V0X2xvZ19wb3NpdGlvbihzZWxm KToKKyAgICAgICAgIiIiTWFyayBjdXJyZW50IGxvZyBwb3NpdGlvbiBhcyBzdGFydCBmb3IgbG9n X2NvbnRlbnQoKS4iIiIKKyAgICAgICAgc2VsZi5fbG9nX3N0YXJ0X3BvcyA9IHNlbGYuY3VycmVu dF9sb2dfcG9zaXRpb24oKQorCisgICAgQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXIKKyAgICBk ZWYgc3RhcnRfbmV3X3Rlc3Qoc2VsZiwgcmVtYWluaW5nX3RpbWVvdXQpOgorICAgICAgICAiIiIK KyAgICAgICAgUHJlcGFyZSBzZXJ2ZXIgZm9yIGEgbmV3IHRlc3QuCisKKyAgICAgICAgU2V0cyB0 aW1lb3V0LCByZXNldHMgbG9nIHBvc2l0aW9uLCBhbmQgZW50ZXJzIGEgY2xlYW51cCBzdWJjb250 ZXh0LgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5zZXRfdGltZW91dChyZW1haW5pbmdfdGlt ZW91dCkKKyAgICAgICAgc2VsZi5yZXNldF9sb2dfcG9zaXRpb24oKQorICAgICAgICB3aXRoIHNl bGYuc3ViY29udGV4dCgpOgorICAgICAgICAgICAgeWllbGQgc2VsZgorCisgICAgZGVmIHBzcWwo c2VsZiwgKmFyZ3MpOgorICAgICAgICAiIiJSdW4gcHNxbCB3aXRoIHRoZSBnaXZlbiBhcmd1bWVu dHMuIiIiCisgICAgICAgIHNlbGYuX3J1bihvcy5wYXRoLmpvaW4oc2VsZi5fYmluZGlyLCAicHNx bCIpLCAiLXciLCAqYXJncykKKworICAgIGRlZiBzcWwoc2VsZiwgcXVlcnkpOgorICAgICAgICAi IiJFeGVjdXRlIGEgU1FMIHF1ZXJ5IHZpYSBsaWJwcS4gUmV0dXJucyBzaW1wbGlmaWVkIHJlc3Vs dHMuIiIiCisgICAgICAgIHdpdGggc2VsZi5jb25uZWN0KCkgYXMgY29ubjoKKyAgICAgICAgICAg IHJldHVybiBjb25uLnNxbChxdWVyeSkKKworICAgIGRlZiBwZ19jdGwoc2VsZiwgKmFyZ3MpOgor ICAgICAgICAiIiJSdW4gcGdfY3RsIHdpdGggdGhlIGdpdmVuIGFyZ3VtZW50cy4iIiIKKyAgICAg ICAgc2VsZi5fcnVuKHNlbGYuX3BnX2N0bCwgIi0tcGdkYXRhIiwgc2VsZi5kYXRhZGlyLCAiLS1s b2ciLCBzZWxmLmxvZywgKmFyZ3MpCisKKyAgICBkZWYgX3J1bihzZWxmLCBjbWQsICphcmdzLCBh ZGRlbnY6IE9wdGlvbmFsW2RpY3RdID0gTm9uZSk6CisgICAgICAgICIiIlJ1biBhIGNvbW1hbmQg d2l0aCBQRyogZW52aXJvbm1lbnQgdmFyaWFibGVzIHNldC4iIiIKKyAgICAgICAgc3ViZW52ID0g ZGljdChvcy5lbnZpcm9uKQorICAgICAgICBzdWJlbnYudXBkYXRlKAorICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgICJQR0hPU1QiOiBzdHIoc2VsZi5ob3N0KSwKKyAgICAgICAgICAgICAg ICAiUEdQT1JUIjogc3RyKHNlbGYucG9ydCksCisgICAgICAgICAgICAgICAgIlBHREFUQUJBU0Ui OiAicG9zdGdyZXMiLAorICAgICAgICAgICAgICAgICJQR0RBVEEiOiBzdHIoc2VsZi5kYXRhZGly KSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgKQorICAgICAgICBpZiBhZGRlbnY6CisgICAgICAg ICAgICBzdWJlbnYudXBkYXRlKGFkZGVudikKKyAgICAgICAgcnVuKGNtZCwgKmFyZ3MsIGVudj1z dWJlbnYpCisKKyAgICBkZWYgY3JlYXRlX3VzZXJzKHNlbGYsICp1c2Vya2V5czogc3RyKToKKyAg ICAgICAgIiIiQ3JlYXRlIHRlc3QgdXNlcnMgYW5kIHJlZ2lzdGVyIHRoZW0gZm9yIGNsZWFudXAu IiIiCisgICAgICAgIHVzZXJtYXAgPSB7fQorICAgICAgICBmb3IgdSBpbiB1c2Vya2V5czoKKyAg ICAgICAgICAgIG5hbWUgPSB1ICsgInVzZXIiCisgICAgICAgICAgICB1c2VybWFwW3VdID0gbmFt ZQorICAgICAgICAgICAgc2VsZi5wc3FsKCItYyIsICJDUkVBVEUgVVNFUiAiICsgbmFtZSkKKyAg ICAgICAgICAgIHNlbGYuX2NsZWFudXBfc3RhY2suY2FsbGJhY2soc2VsZi5wc3FsLCAiLWMiLCAi RFJPUCBVU0VSICIgKyBuYW1lKQorICAgICAgICByZXR1cm4gdXNlcm1hcAorCisgICAgZGVmIGNy ZWF0ZV9kYnMoc2VsZiwgKmRia2V5czogc3RyKToKKyAgICAgICAgIiIiQ3JlYXRlIHRlc3QgZGF0 YWJhc2VzIGFuZCByZWdpc3RlciB0aGVtIGZvciBjbGVhbnVwLiIiIgorICAgICAgICBkYm1hcCA9 IHt9CisgICAgICAgIGZvciBkIGluIGRia2V5czoKKyAgICAgICAgICAgIG5hbWUgPSBkICsgImRi IgorICAgICAgICAgICAgZGJtYXBbZF0gPSBuYW1lCisgICAgICAgICAgICBzZWxmLnBzcWwoIi1j IiwgIkNSRUFURSBEQVRBQkFTRSAiICsgbmFtZSkKKyAgICAgICAgICAgIHNlbGYuX2NsZWFudXBf c3RhY2suY2FsbGJhY2soc2VsZi5wc3FsLCAiLWMiLCAiRFJPUCBEQVRBQkFTRSAiICsgbmFtZSkK KyAgICAgICAgcmV0dXJuIGRibWFwCisKKyAgICBAY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgor ICAgIGRlZiByZWxvYWRpbmcoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBQcm92aWRlcyBh IGNvbnRleHQgbWFuYWdlciBmb3IgbWFraW5nIGNvbmZpZ3VyYXRpb24gY2hhbmdlcy4KKworICAg ICAgICBJZiB0aGUgY29udGV4dCBzdWl0ZSBmaW5pc2hlcyBzdWNjZXNzZnVsbHksIHRoZSBjb25m aWd1cmF0aW9uIHdpbGwKKyAgICAgICAgYmUgcmVsb2FkZWQgdmlhIHBnX2N0bC4gT24gdGVhcmRv d24sIHRoZSBjb25maWd1cmF0aW9uIGNoYW5nZXMgd2lsbAorICAgICAgICBiZSB1bndvdW5kLCBh bmQgdGhlIHNlcnZlciB3aWxsIGJlIHNpZ25hbGVkIHRvIHJlbG9hZCBhZ2Fpbi4KKworICAgICAg ICBUaGUgY29udGV4dCB0YXJnZXQgY29udGFpbnMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIHdo aWNoIGNhbiBiZQorICAgICAgICB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgc2VydmVyOgorICAgICAg ICAtIC5jb25mOiBtb2RpZmllcyBwb3N0Z3Jlc3FsLmNvbmYKKyAgICAgICAgLSAuaGJhOiBtb2Rp ZmllcyBwZ19oYmEuY29uZgorCisgICAgICAgIEZvciBleGFtcGxlOgorCisgICAgICAgICAgICB3 aXRoIHBnX3NlcnZlcl9zZXNzaW9uLnJlbG9hZGluZygpIGFzIHM6CisgICAgICAgICAgICAgICAg cy5jb25mLnNldChsb2dfY29ubmVjdGlvbnM9Im9uIikKKyAgICAgICAgICAgICAgICBzLmhiYS5w cmVwZW5kKCJsb2NhbCBhbGwgYWxsIHRydXN0IikKKyAgICAgICAgIiIiCisgICAgICAgICMgUHVz aCBhIHJlbG9hZCBvbnRvIHRoZSBzdGFjayBiZWZvcmUgbWFraW5nIGFueSBvdGhlcgorICAgICAg ICAjIHVud2luZGFibGUgY2hhbmdlcy4gVGhhdCB3YXkgdGhlIG9yZGVyIG9mIG9wZXJhdGlvbnMg d2lsbCBiZQorICAgICAgICAjCisgICAgICAgICMgICMgdGVzdAorICAgICAgICAjICAgLSBjb25m aWcgY2hhbmdlIDEKKyAgICAgICAgIyAgIC0gY29uZmlnIGNoYW5nZSAyCisgICAgICAgICMgICAt IHJlbG9hZAorICAgICAgICAjICAjIHRlYXJkb3duCisgICAgICAgICMgICAtIHVuZG8gY29uZmln IGNoYW5nZSAyCisgICAgICAgICMgICAtIHVuZG8gY29uZmlnIGNoYW5nZSAxCisgICAgICAgICMg ICAtIHJlbG9hZAorICAgICAgICAjCisgICAgICAgIHNlbGYuX2NsZWFudXBfc3RhY2suY2FsbGJh Y2soc2VsZi5wZ19jdGwsICJyZWxvYWQiKQorICAgICAgICB5aWVsZCBzZWxmLl9iYWNrdXBfY29u ZmlndXJhdGlvbigpCisKKyAgICAgICAgIyBOb3cgYWN0dWFsbHkgcmVsb2FkCisgICAgICAgIHNl bGYucGdfY3RsKCJyZWxvYWQiKQorCisgICAgQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXIKKyAg ICBkZWYgcmVzdGFydGluZyhzZWxmKToKKyAgICAgICAgIiIiTGlrZSAucmVsb2FkaW5nKCksIGJ1 dCB3aXRoIGEgZnVsbCBzZXJ2ZXIgcmVzdGFydC4iIiIKKyAgICAgICAgc2VsZi5fY2xlYW51cF9z dGFjay5jYWxsYmFjayhzZWxmLnBnX2N0bCwgInJlc3RhcnQiKQorICAgICAgICB5aWVsZCBzZWxm Ll9iYWNrdXBfY29uZmlndXJhdGlvbigpCisgICAgICAgIHNlbGYucGdfY3RsKCJyZXN0YXJ0IikK KworICAgIGRlZiBfYmFja3VwX2NvbmZpZ3VyYXRpb24oc2VsZik6CisgICAgICAgICMgV3JhcCB0 aGUgZXhpc3RpbmcgSEJBIGFuZCBjb25maWd1cmF0aW9uIHdpdGggRmlsZUJhY2t1cHMuCisgICAg ICAgIHJldHVybiBCYWNrdXAoCisgICAgICAgICAgICBoYmE9c2VsZi5fY2xlYW51cF9zdGFjay5l bnRlcl9jb250ZXh0KEhCQShzZWxmLmRhdGFkaXIpKSwKKyAgICAgICAgICAgIGNvbmY9c2VsZi5f Y2xlYW51cF9zdGFjay5lbnRlcl9jb250ZXh0KENvbmZpZyhzZWxmLmRhdGFkaXIpKSwKKyAgICAg ICAgKQorCisgICAgQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXIKKyAgICBkZWYgc3ViY29udGV4 dChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIENyZWF0ZSBhIG5ldyBjbGVhbnVwIGNvbnRl eHQgZm9yIHBlci10ZXN0IGlzb2xhdGlvbi4KKworICAgICAgICBUZW1wb3JhcmlseSByZXBsYWNl cyB0aGUgY2xlYW51cCBzdGFjayBzbyB0aGF0IGFueSBjbGVhbnVwIGNhbGxiYWNrcworICAgICAg ICByZWdpc3RlcmVkIHdpdGhpbiB0aGlzIGNvbnRleHQgd2lsbCBiZSBjbGVhbmVkIHVwIHdoZW4g dGhlIGNvbnRleHQgZXhpdHMuCisgICAgICAgICIiIgorICAgICAgICBvbGRfc3RhY2sgPSBzZWxm Ll9jbGVhbnVwX3N0YWNrCisgICAgICAgIHNlbGYuX2NsZWFudXBfc3RhY2sgPSBjb250ZXh0bGli LkV4aXRTdGFjaygpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX2NsZWFudXBfc3Rh Y2suX19lbnRlcl9fKCkKKyAgICAgICAgICAgIHlpZWxkIHNlbGYKKyAgICAgICAgZmluYWxseToK KyAgICAgICAgICAgIHNlbGYuX2NsZWFudXBfc3RhY2suX19leGl0X18oTm9uZSwgTm9uZSwgTm9u ZSkKKyAgICAgICAgICAgIHNlbGYuX2NsZWFudXBfc3RhY2sgPSBvbGRfc3RhY2sKKworICAgIGRl ZiBzdG9wKHNlbGYsIG1vZGU9ImZhc3QiKToKKyAgICAgICAgIiIiCisgICAgICAgIFN0b3AgdGhl IFBvc3RncmVTUUwgc2VydmVyIGluc3RhbmNlLgorCisgICAgICAgIElnbm9yZXMgZmFpbHVyZXMg aWYgdGhlIHNlcnZlciBpcyBhbHJlYWR5IHN0b3BwZWQuCisgICAgICAgICIiIgorICAgICAgICB0 cnk6CisgICAgICAgICAgICBzZWxmLnBnX2N0bCgic3RvcCIsICItLW1vZGUiLCBtb2RlKQorICAg ICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3I6CisgICAgICAgICAgICAj IFNlcnZlciBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gc3RvcHBlZAorICAgICAgICAgICAgcGFzcwor CisgICAgZGVmIGxvZ19jb250ZW50KHNlbGYpIC0+IHN0cjoKKyAgICAgICAgIiIiUmV0dXJuIGxv ZyBjb250ZW50IGZyb20gdGhlIGN1cnJlbnQgY29udGV4dCdzIHN0YXJ0IHBvc2l0aW9uLiIiIgor ICAgICAgICB3aXRoIG9wZW4oc2VsZi5sb2cpIGFzIGY6CisgICAgICAgICAgICBmLnNlZWsoc2Vs Zi5fbG9nX3N0YXJ0X3BvcykKKyAgICAgICAgICAgIHJldHVybiBmLnJlYWQoKQorCisgICAgQGNv bnRleHRsaWIuY29udGV4dG1hbmFnZXIKKyAgICBkZWYgbG9nX2NvbnRhaW5zKHNlbGYsIHBhdHRl cm4sIHRpbWVzPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgQ29udGV4dCBtYW5hZ2VyIHRo YXQgY2hlY2tzIGlmIHRoZSBsb2cgbWF0Y2hlcyBwYXR0ZXJuIGR1cmluZyB0aGUgYmxvY2suCisK KyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHBhdHRlcm46IFRoZSByZWdleCBwYXR0ZXJuIHRv IHNlYXJjaCBmb3IuCisgICAgICAgICAgICB0aW1lczogSWYgTm9uZSwgYW55IG51bWJlciBvZiBt YXRjaGVzIGlzIGFjY2VwdGVkLgorICAgICAgICAgICAgICAgICAgIElmIGEgbnVtYmVyLCBleGFj dGx5IHRoYXQgbWFueSBtYXRjaGVzIGFyZSByZXF1aXJlZC4KKyAgICAgICAgIiIiCisgICAgICAg IHN0YXJ0X3BvcyA9IHNlbGYuY3VycmVudF9sb2dfcG9zaXRpb24oKQorICAgICAgICB5aWVsZAor ICAgICAgICB3aXRoIG9wZW4oc2VsZi5sb2cpIGFzIGY6CisgICAgICAgICAgICBmLnNlZWsoc3Rh cnRfcG9zKQorICAgICAgICAgICAgY29udGVudCA9IGYucmVhZCgpCisgICAgICAgIGlmIHRpbWVz IGlzIE5vbmU6CisgICAgICAgICAgICBhc3NlcnQgcmUuc2VhcmNoKHBhdHRlcm4sIGNvbnRlbnQp LCBmIlBhdHRlcm4ge3BhdHRlcm4hcn0gbm90IGZvdW5kIGluIGxvZyIKKyAgICAgICAgZWxzZToK KyAgICAgICAgICAgIG1hdGNoX2NvdW50ID0gbGVuKHJlLmZpbmRhbGwocGF0dGVybiwgY29udGVu dCkpCisgICAgICAgICAgICBhc3NlcnQgbWF0Y2hfY291bnQgPT0gdGltZXMsICgKKyAgICAgICAg ICAgICAgICBmIkV4cGVjdGVkIHt0aW1lc30gbWF0Y2hlcyBvZiB7cGF0dGVybiFyfSwgZm91bmQg e21hdGNoX2NvdW50fSIKKyAgICAgICAgICAgICkKKworICAgIGRlZiBjbGVhbnVwKHNlbGYpOgor ICAgICAgICAiIiJSdW4gYWxsIHJlZ2lzdGVyZWQgY2xlYW51cCBjYWxsYmFja3MuIiIiCisgICAg ICAgIHNlbGYuX2NsZWFudXBfc3RhY2suY2xvc2UoKQorCisgICAgZGVmIHNldF90aW1lb3V0KHNl bGYsIHJlbWFpbmluZ190aW1lb3V0X2ZuOiBDYWxsYWJsZVtbXSwgZmxvYXRdKSAtPiBOb25lOgor ICAgICAgICAiIiIKKyAgICAgICAgU2V0IHRoZSB0aW1lb3V0IGZ1bmN0aW9uIGZvciBjb25uZWN0 aW9ucy4KKyAgICAgICAgVGhpcyBpcyB0eXBpY2FsbHkgY2FsbGVkIGJ5IHBnIGZpeHR1cmUgZm9y IGVhY2ggdGVzdC4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX3JlbWFpbmluZ190aW1lb3V0 X2ZuID0gcmVtYWluaW5nX3RpbWVvdXRfZm4KKworICAgIGRlZiBjb25uZWN0KHNlbGYsICoqb3B0 cykgLT4gUEdjb25uOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlcyBhIGNvbm5lY3Rpb24g dG8gdGhpcyBQb3N0Z3JlU1FMIHNlcnZlciBpbnN0YW5jZS4KKworICAgICAgICBBcmdzOgorICAg ICAgICAgICAgKipvcHRzOiBBZGRpdGlvbmFsIGNvbm5lY3Rpb24gb3B0aW9ucyAoY2FuIG92ZXJy aWRlIGRlZmF1bHRzKQorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBQR2Nvbm46IENv bm5lY3RlZCBkYXRhYmFzZSBjb25uZWN0aW9uCisKKyAgICAgICAgRXhhbXBsZToKKyAgICAgICAg ICAgIGNvbm4gPSBwZy5jb25uZWN0KCkKKyAgICAgICAgICAgIGNvbm4gPSBwZy5jb25uZWN0KGRi bmFtZT0nbXlkYicpCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLl9yZW1haW5pbmdfdGlt ZW91dF9mbiBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKAorICAgICAg ICAgICAgICAgICJUaW1lb3V0IGZ1bmN0aW9uIG5vdCBzZXQuIFVzZSBzZXRfdGltZW91dCgpIG9y IHBnIGZpeHR1cmUuIgorICAgICAgICAgICAgKQorCisgICAgICAgIGRlZmF1bHRzID0geworICAg ICAgICAgICAgImhvc3QiOiBzZWxmLmhvc3QsCisgICAgICAgICAgICAicG9ydCI6IHNlbGYucG9y dCwKKyAgICAgICAgICAgICJkYm5hbWUiOiAicG9zdGdyZXMiLAorICAgICAgICB9CisgICAgICAg IGRlZmF1bHRzLnVwZGF0ZShvcHRzKQorCisgICAgICAgIHJldHVybiBsaWJwcV9jb25uZWN0KAor ICAgICAgICAgICAgc2VsZi5saWJwcV9oYW5kbGUsCisgICAgICAgICAgICBzZWxmLl9jbGVhbnVw X3N0YWNrLAorICAgICAgICAgICAgc2VsZi5fcmVtYWluaW5nX3RpbWVvdXRfZm4sCisgICAgICAg ICAgICAqKmRlZmF1bHRzLAorICAgICAgICApCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9weXRlc3Qv cHlwZy91dGlsLnB5IGIvc3JjL3Rlc3QvcHl0ZXN0L3B5cGcvdXRpbC5weQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjJhMWU2MjdlNGIKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvdGVzdC9weXRlc3QvcHlwZy91dGlsLnB5CkBAIC0wLDAgKzEsNDIgQEAKKyMgQ29weXJp Z2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCitpbXBv cnQgc2hsZXgKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc3lzCisKKworZGVmIGVwcmludCgq YXJncywgKiprd2FyZ3MpOgorICAgICIiImVwcmludCBwcmludHMgdG8gc3RkZXJyIiIiCisgICAg cHJpbnQoKmFyZ3MsIGZpbGU9c3lzLnN0ZGVyciwgKiprd2FyZ3MpCisKKworZGVmIHJ1bigqY29t bWFuZCwgY2hlY2s9VHJ1ZSwgc2hlbGw9Tm9uZSwgc2lsZW50PUZhbHNlLCAqKmt3YXJncyk6Cisg ICAgIiIicnVuIHJ1bnMgdGhlIGdpdmVuIGNvbW1hbmQgYW5kIHByaW50cyBpdCB0byBzdGRlcnIi IiIKKworICAgIGlmIHNoZWxsIGlzIE5vbmU6CisgICAgICAgIHNoZWxsID0gbGVuKGNvbW1hbmQp ID09IDEgYW5kIGlzaW5zdGFuY2UoY29tbWFuZFswXSwgc3RyKQorCisgICAgaWYgc2hlbGw6Cisg ICAgICAgIGNvbW1hbmQgPSBjb21tYW5kWzBdCisgICAgZWxzZToKKyAgICAgICAgY29tbWFuZCA9 IGxpc3QobWFwKHN0ciwgY29tbWFuZCkpCisKKyAgICBpZiBub3Qgc2lsZW50OgorICAgICAgICBp ZiBzaGVsbDoKKyAgICAgICAgICAgIGVwcmludChmIisge2NvbW1hbmR9IikKKyAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICMgV2UgY291bGQgbm9ybWFsbHkgdXNlIHNobGV4LmpvaW4gaGVyZSwg YnV0IGl0J3Mgbm90IGF2YWlsYWJsZSBpbgorICAgICAgICAgICAgIyBQeXRob24gMy42IHdoaWNo IHdlIHN0aWxsIGxpa2UgdG8gc3VwcG9ydAorICAgICAgICAgICAgdW5zYWZlX3N0cmluZ19jbWQg PSAiICIuam9pbihtYXAoc2hsZXgucXVvdGUsIGNvbW1hbmQpKQorICAgICAgICAgICAgZXByaW50 KGYiKyB7dW5zYWZlX3N0cmluZ19jbWR9IikKKworICAgIGlmIHNpbGVudDoKKyAgICAgICAga3dh cmdzLnNldGRlZmF1bHQoInN0ZG91dCIsIHN1YnByb2Nlc3MuREVWTlVMTCkKKworICAgIHJldHVy biBzdWJwcm9jZXNzLnJ1bihjb21tYW5kLCBjaGVjaz1jaGVjaywgc2hlbGw9c2hlbGwsICoqa3dh cmdzKQorCisKK2RlZiBjYXB0dXJlKGNvbW1hbmQsICphcmdzLCBzdGRvdXQ9c3VicHJvY2Vzcy5Q SVBFLCBlbmNvZGluZz0idXRmLTgiLCAqKmt3YXJncyk6CisgICAgcmV0dXJuIHJ1bigKKyAgICAg ICAgY29tbWFuZCwgKmFyZ3MsIHN0ZG91dD1zdGRvdXQsIGVuY29kaW5nPWVuY29kaW5nLCAqKmt3 YXJncworICAgICkuc3Rkb3V0LnJlbW92ZXN1ZmZpeCgiXG4iKQpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcHl0ZXN0L3B5dC9jb25mdGVzdC5weSBiL3NyYy90ZXN0L3B5dGVzdC9weXQvY29uZnRlc3Qu cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRkNzM5MTdjNjhjCi0t LSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcHl0ZXN0L3B5dC9jb25mdGVzdC5weQpAQCAtMCww ICsxIEBACisjIENvcHlyaWdodCAoYykgMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1l bnQgR3JvdXAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVzdC9weXQvdGVzdF9lcnJvcnMucHkg Yi9zcmMvdGVzdC9weXRlc3QvcHl0L3Rlc3RfZXJyb3JzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi5hZDEwOTAzOTY2OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90 ZXN0L3B5dGVzdC9weXQvdGVzdF9lcnJvcnMucHkKQEAgLTAsMCArMSwzNCBAQAorIyBDb3B5cmln aHQgKGMpIDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKKyIiIgor VGVzdHMgZm9yIGxpYnBxIGVycm9yIHR5cGVzIGFuZCBTUUxTVEFURS1iYXNlZCBleGNlcHRpb24g bWFwcGluZy4KKyIiIgorCitpbXBvcnQgcHl0ZXN0CitpbXBvcnQgbGlicHEKKworCitkZWYgdGVz dF9zeW50YXhfZXJyb3IoY29ubik6CisgICAgIiIiSW52YWxpZCBTUUwgc3ludGF4IHJhaXNlcyBT eW50YXhFcnJvciB3aXRoIGNvcnJlY3QgU1FMU1RBVEUuIiIiCisgICAgd2l0aCBweXRlc3QucmFp c2VzKGxpYnBxLmVycm9ycy5TeW50YXhFcnJvcikgYXMgZXhjX2luZm86CisgICAgICAgIGNvbm4u c3FsKCJTRUxFQyAxIikKKworICAgIGVyciA9IGV4Y19pbmZvLnZhbHVlCisgICAgYXNzZXJ0IGVy ci5zcWxzdGF0ZSA9PSAiNDI2MDEiCisgICAgYXNzZXJ0IGVyci5zcWxzdGF0ZV9jbGFzcyA9PSAi NDIiCisgICAgYXNzZXJ0ICJzeW50YXgiIGluIHN0cihlcnIpLmxvd2VyKCkKKworCitkZWYgdGVz dF91bmlxdWVfdmlvbGF0aW9uKGNvbm4pOgorICAgICIiIlVuaXF1ZSB2aW9sYXRpb24gaW5jbHVk ZXMgYWxsIGVycm9yIGZpZWxkcyBhbmQgY2FuIGJlIGNhdWdodCBhcyBwYXJlbnQgY2xhc3MuIiIi CisgICAgY29ubi5zcWwoIkNSRUFURSBURU1QIFRBQkxFIHRlc3RfdXYgKGlkIGludCBDT05TVFJB SU5UIHRlc3RfdXZfcGsgUFJJTUFSWSBLRVkpIikKKyAgICBjb25uLnNxbCgiSU5TRVJUIElOVE8g dGVzdF91diBWQUxVRVMgKDEpIikKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhsaWJwcS5lcnJv cnMuVW5pcXVlVmlvbGF0aW9uKSBhcyBleGNfaW5mbzoKKyAgICAgICAgY29ubi5zcWwoIklOU0VS VCBJTlRPIHRlc3RfdXYgVkFMVUVTICgxKSIpCisKKyAgICBlcnIgPSBleGNfaW5mby52YWx1ZQor ICAgIGFzc2VydCBlcnIuc3Fsc3RhdGUgPT0gIjIzNTA1IgorICAgIGFzc2VydCBlcnIudGFibGVf bmFtZSA9PSAidGVzdF91diIKKyAgICBhc3NlcnQgZXJyLmNvbnN0cmFpbnRfbmFtZSA9PSAidGVz dF91dl9wayIKKyAgICBhc3NlcnQgZXJyLmRldGFpbCA9PSAiS2V5IChpZCk9KDEpIGFscmVhZHkg ZXhpc3RzLiIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVzdC9weXQvdGVzdF9saWJwcS5weSBi L3NyYy90ZXN0L3B5dGVzdC9weXQvdGVzdF9saWJwcS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uNGZjZjQwNTZmNDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVz dC9weXRlc3QvcHl0L3Rlc3RfbGlicHEucHkKQEAgLTAsMCArMSwxNzIgQEAKKyMgQ29weXJpZ2h0 IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCitpbXBvcnQg Y29udGV4dGxpYgoraW1wb3J0IG9zCitpbXBvcnQgc29ja2V0CitpbXBvcnQgc3RydWN0CitpbXBv cnQgdGhyZWFkaW5nCitmcm9tIHR5cGluZyBpbXBvcnQgQ2FsbGFibGUKKworaW1wb3J0IHB5dGVz dAorCitmcm9tIGxpYnBxIGltcG9ydCBjb25uc3RyLCBMaWJwcUVycm9yCisKKworQHB5dGVzdC5t YXJrLnBhcmFtZXRyaXplKAorICAgICJvcHRzLCBleHBlY3RlZCIsCisgICAgWworICAgICAgICAo ZGljdCgpLCAiIiksCisgICAgICAgIChkaWN0KHBvcnQ9NTQzMiksICJwb3J0PTU0MzIiKSwKKyAg ICAgICAgKGRpY3QocG9ydD01NDMyLCBkYm5hbWU9InBvc3RncmVzIiksICJwb3J0PTU0MzIgZGJu YW1lPXBvc3RncmVzIiksCisgICAgICAgIChkaWN0KGhvc3Q9IiIpLCAiaG9zdD0nJyIpLAorICAg ICAgICAoZGljdChob3N0PSIgIiksIHIiaG9zdD0nICciKSwKKyAgICAgICAgKGRpY3Qoa2V5d29y ZD0iJyIpLCByImtleXdvcmQ9XCciKSwKKyAgICAgICAgKGRpY3Qoa2V5d29yZD0iIFxcJyAiKSwg ciJrZXl3b3JkPScgXFxcJyAnIiksCisgICAgXSwKKykKK2RlZiB0ZXN0X2Nvbm5zdHIob3B0cywg ZXhwZWN0ZWQpOgorICAgICIiIlRlc3RzIHRoZSBlc2NhcGUgYmVoYXZpb3IgZm9yIGNvbm5zdHIo KS4iIiIKKyAgICBhc3NlcnQgY29ubnN0cihvcHRzKSA9PSBleHBlY3RlZAorCisKK2RlZiB0ZXN0 X211c3RfY29ubmVjdF9lcnJvcnMoY29ubmVjdCk6CisgICAgIiIiVGVzdHMgdGhhdCBjb25uZWN0 KCkgcmFpc2VzIExpYnBxRXJyb3IuIiIiCisgICAgd2l0aCBweXRlc3QucmFpc2VzKExpYnBxRXJy b3IsIG1hdGNoPSJpbnZhbGlkIGNvbm5lY3Rpb24gb3B0aW9uIik6CisgICAgICAgIGNvbm5lY3Qo c29tZV91bmtub3duX2tleXdvcmQ9IndoYXRldmVyIikKKworCitAcHl0ZXN0LmZpeHR1cmUKK2Rl ZiBsb2NhbF9zZXJ2ZXIodG1wX3BhdGgsIHJlbWFpbmluZ190aW1lb3V0KToKKyAgICAiIiIKKyAg ICBPcGVucyB1cCBhIGxvY2FsIFVOSVggc29ja2V0IGZvciBtb2NraW5nIGEgUG9zdGdyZXMgc2Vy dmVyIG9uIGEgYmFja2dyb3VuZAorICAgIHRocmVhZC4gU2VlIHRoZSBfU2VydmVyIEFQSSBmb3Ig dXNhZ2UuCisKKyAgICBUaGlzIGZpeHR1cmUgcmVxdWlyZXMgQUZfVU5JWCBzdXBwb3J0OyBkZXBl bmRlbnQgdGVzdHMgd2lsbCBiZSBza2lwcGVkIG9uCisgICAgcGxhdGZvcm1zIHRoYXQgZG9uJ3Qg cHJvdmlkZSBpdC4KKyAgICAiIiIKKworICAgIHRyeToKKyAgICAgICAgZnJvbSBzb2NrZXQgaW1w b3J0IEFGX1VOSVgKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgIHB5dGVzdC5za2lw KCJBRl9VTklYIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybSIpCisKKyAgICBjbGFzcyBf U2VydmVyKGNvbnRleHRsaWIuRXhpdFN0YWNrKToKKyAgICAgICAgIiIiCisgICAgICAgIEltcGxl bWVudGF0aW9uIGNsYXNzIGZvciBsb2NhbF9zZXJ2ZXIuIFNlZSAuYmFja2dyb3VuZCgpIGZvciB0 aGUgcHJpbWFyeQorICAgICAgICBlbnRyeSBwb2ludCBmb3IgdGVzdHMuIFBvc3RncmVzIGNsaWVu dHMgbWF5IGNvbm5lY3QgdG8gdGhpcyBzZXJ2ZXIgdmlhCisgICAgICAgIGxvY2FsX3NlcnZlci5o b3N0L2xvY2FsX3NlcnZlci5wb3J0LgorCisgICAgICAgIF9TZXJ2ZXIgZGVyaXZlcyBmcm9tIGNv bnRleHRsaWIuRXhpdFN0YWNrIHRvIHByb3ZpZGUgZWFzeSBjbGVhbnVwIG9mCisgICAgICAgIGFz c29jaWF0ZWQgcmVzb3VyY2VzOyBzZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoYXQgY2xhc3Mg Zm9yIGEgZnVsbAorICAgICAgICBleHBsYW5hdGlvbi4KKyAgICAgICAgIiIiCisKKyAgICAgICAg ZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygpCisKKyAg ICAgICAgICAgIHNlbGYuaG9zdCA9IHRtcF9wYXRoCisgICAgICAgICAgICBzZWxmLnBvcnQgPSA1 NDMyCisKKyAgICAgICAgICAgIHNlbGYuX3RocmVhZCA9IE5vbmUKKyAgICAgICAgICAgIHNlbGYu X3RocmVhZF9leGMgPSBOb25lCisgICAgICAgICAgICBzZWxmLl9saXN0ZW5lciA9IHNlbGYuZW50 ZXJfY29udGV4dCgKKyAgICAgICAgICAgICAgICBzb2NrZXQuc29ja2V0KEFGX1VOSVgsIHNvY2tl dC5TT0NLX1NUUkVBTSksCisgICAgICAgICAgICApCisKKyAgICAgICAgZGVmIGJpbmRfYW5kX2xp c3RlbihzZWxmKToKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgRG9lcyB0aGUgYWN0dWFs IHdvcmsgb2YgYmluZGluZyB0aGUgVU5JWCBzb2NrZXQgdXNpbmcgdGhlIFBvc3RncmVzCisgICAg ICAgICAgICBzZXJ2ZXIgY29udmVudGlvbnMgYW5kIGxpc3RlbmluZyBmb3IgY29ubmVjdGlvbnMu CisKKyAgICAgICAgICAgIFRoZSBsaXN0ZW4gYmFja2xvZyBpcyBjdXJyZW50bHkgaGFyZGNvZGVk IHRvIG9uZS4KKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgc29ja2ZpbGUgPSBzZWxmLmhv c3QgLyAiLnMuUEdTUUwue30iLmZvcm1hdChzZWxmLnBvcnQpCisKKyAgICAgICAgICAgICMgTG9j ayBkb3duIHRoZSBwZXJtaXNzaW9ucyBvbiB0aGUgbmV3IHNvY2tldC4KKyAgICAgICAgICAgIHBy ZXZfbWFzayA9IG9zLnVtYXNrKDBvMDc3KQorCisgICAgICAgICAgICAjIEJpbmQgKGNyZWF0aW5n IHRoZSBzb2NrZXQgZmlsZSksIGFuZCBpbW1lZGlhdGVseSByZWdpc3RlciBpdCBmb3IKKyAgICAg ICAgICAgICMgZGVsZXRpb24gZnJvbSBkaXNrIHdoZW4gdGhlIHN0YWNrIGlzIGNsZWFuZWQgdXAu CisgICAgICAgICAgICBzZWxmLl9saXN0ZW5lci5iaW5kKGJ5dGVzKHNvY2tmaWxlKSkKKyAgICAg ICAgICAgIHNlbGYuY2FsbGJhY2sob3MudW5saW5rLCBzb2NrZmlsZSkKKworICAgICAgICAgICAg b3MudW1hc2socHJldl9tYXNrKQorCisgICAgICAgICAgICBzZWxmLl9saXN0ZW5lci5saXN0ZW4o MSkKKworICAgICAgICBkZWYgYmFja2dyb3VuZChzZWxmLCBmbjogQ2FsbGFibGVbW3NvY2tldC5z b2NrZXRdLCBOb25lXSkgLT4gTm9uZToKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgQWNj ZXB0cyBhIGNsaWVudCBjb25uZWN0aW9uIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQgYW5kIHBhc3Nl cyBpdCB0bworICAgICAgICAgICAgdGhlIHByb3ZpZGVkIGNhbGxiYWNrLiBBbnkgZXhjZXB0aW9u cyByYWlzZWQgZnJvbSB0aGUgY2FsbGJhY2sgd2lsbAorICAgICAgICAgICAgYmUgcmUtcmFpc2Vk IG9uIHRoZSBtYWluIHRocmVhZCBkdXJpbmcgZml4dHVyZSB0ZWFyZG93bi4KKworICAgICAgICAg ICAgQmxvY2tpbmcgb3BlcmF0aW9ucyBvbiB0aGUgY29ubmVjdGVkIHNvY2tldCBkZWZhdWx0IHRv IHVzaW5nIHRoZQorICAgICAgICAgICAgcmVtYWluaW5nX3RpbWVvdXQoKSwgdGhvdWdoIHRoaXMg Y2FuIGJlIGNoYW5nZWQgYnkgdGhlIHRlc3QgdmlhIHRoZQorICAgICAgICAgICAgc29ja2V0J3Mg LnNldHRpbWVvdXQoKS4KKyAgICAgICAgICAgICIiIgorCisgICAgICAgICAgICBkZWYgX2JnKCk6 CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9saXN0ZW5l ci5zZXR0aW1lb3V0KHJlbWFpbmluZ190aW1lb3V0KCkpCisgICAgICAgICAgICAgICAgICAgIHNv Y2ssIF8gPSBzZWxmLl9saXN0ZW5lci5hY2NlcHQoKQorCisgICAgICAgICAgICAgICAgICAgIHdp dGggc29jazoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvY2suc2V0dGltZW91dChyZW1haW5p bmdfdGltZW91dCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgZm4oc29jaykKKworICAgICAg ICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICAgICAgIyBT YXZlIHRoZSBleGNlcHRpb24gZm9yIHJlLXJhaXNpbmcgb24gdGhlIG1haW4gdGhyZWFkLgorICAg ICAgICAgICAgICAgICAgICBzZWxmLl90aHJlYWRfZXhjID0gZQorCisgICAgICAgICAgICAjIFRP RE86IHJhdGhlciB0aGFuIHVzaW5nIGNhbGxiYWNrKCksIGNvbnNpZGVyIGV4cGxpY2l0bHkgc2ln bmFsaW5nCisgICAgICAgICAgICAjIHRoZSBmbigpIGltcGxlbWVudGF0aW9uIHRvIHN0b3AgZWFy bHkgaWYgd2UgZ2V0IGFuIGV4Y2VwdGlvbi4KKyAgICAgICAgICAgICMgT3RoZXJ3aXNlIHdlJ2xs IGhhbmcgdW50aWwgdGhlIGVuZCBvZiB0aGUgdGltZW91dC4KKyAgICAgICAgICAgIHNlbGYuX3Ro cmVhZCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PV9iZykKKyAgICAgICAgICAgIHNlbGYuY2Fs bGJhY2soc2VsZi5fam9pbikKKworICAgICAgICAgICAgc2VsZi5fdGhyZWFkLnN0YXJ0KCkKKwor ICAgICAgICBkZWYgX2pvaW4oc2VsZik6CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIFdh aXRzIGZvciB0aGUgYmFja2dyb3VuZCB0aHJlYWQgdG8gZmluaXNoIGFuZCByYWlzZXMgYW55IHRo cm93bgorICAgICAgICAgICAgZXhjZXB0aW9uLiBUaGlzIGlzIGNhbGxlZCBkdXJpbmcgZml4dHVy ZSB0ZWFyZG93bi4KKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgIyBHaXZlIGEgbGl0dGxl IGJpdCBvZiB3aWdnbGUgcm9vbSBvbiB0aGUgam9pbiB0aW1lb3V0LCBzaW5jZSB3ZSdyZQorICAg ICAgICAgICAgIyByYWNpbmcgYWdhaW5zdCB0aGUgdGVzdCdzIG93biB1c2Ugb2YgcmVtYWluaW5n X3RpbWVvdXQoKS4gKEl0J3MKKyAgICAgICAgICAgICMgcHJlZmVyYWJsZSB0byBsZXQgdGVzdHMg cmVwb3J0IHRpbWVvdXRzOyB0aGUgc3RhY2sgdHJhY2VzIHdpbGwKKyAgICAgICAgICAgICMgaGVs cCB3aXRoIGRlYnVnZ2luZy4pCisgICAgICAgICAgICBzZWxmLl90aHJlYWQuam9pbihyZW1haW5p bmdfdGltZW91dCgpICsgMSkKKyAgICAgICAgICAgIGlmIHNlbGYuX3RocmVhZC5pc19hbGl2ZSgp OgorICAgICAgICAgICAgICAgIHJhaXNlIFRpbWVvdXRFcnJvcigiYmFja2dyb3VuZCB0aHJlYWQg aXMgc3RpbGwgcnVubmluZyBhZnRlciB0aW1lb3V0IikKKworICAgICAgICAgICAgaWYgc2VsZi5f dGhyZWFkX2V4YyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICByYWlzZSBzZWxmLl90aHJl YWRfZXhjCisKKyAgICB3aXRoIF9TZXJ2ZXIoKSBhcyBzOgorICAgICAgICBzLmJpbmRfYW5kX2xp c3RlbigpCisgICAgICAgIHlpZWxkIHMKKworCitkZWYgdGVzdF9jb25uZWN0aW9uX2lzX2Zpbmlz aGVkX29uX2Vycm9yKGNvbm5lY3QsIGxvY2FsX3NlcnZlcik6CisgICAgIiIiVGVzdHMgdGhhdCBQ UWZpbmlzaCgpIGdldHMgY2FsbGVkIGF0IHRoZSBlbmQgb2YgdGVzdGluZy4iIiIKKyAgICBleHBl Y3RlZF9lcnJvciA9ICJzb21ldGhpbmcgaXMgd3JvbmciCisKKyAgICBkZWYgc2VydmVfZXJyb3Io czogc29ja2V0LnNvY2tldCkgLT4gTm9uZToKKyAgICAgICAgcGt0bGVuID0gc3RydWN0LnVucGFj aygiIUkiLCBzLnJlY3YoNCkpWzBdCisKKyAgICAgICAgIyBRdWljayBjaGVjayBmb3IgdGhlIHN0 YXJ0dXAgcGFja2V0IHZlcnNpb24uCisgICAgICAgIHZlcnNpb24gPSBzdHJ1Y3QudW5wYWNrKCIh SEgiLCBzLnJlY3YoNCkpCisgICAgICAgIGFzc2VydCB2ZXJzaW9uID09ICgzLCAwKQorCisgICAg ICAgICMgRGlzY2FyZCB0aGUgcmVtYWluZGVyIG9mIHRoZSBzdGFydHVwIHBhY2tldCBhbmQgc2Vu ZCBhIHYyIGVycm9yLgorICAgICAgICBzLnJlY3YocGt0bGVuIC0gOCkKKyAgICAgICAgcy5zZW5k KGIiRSIgKyBleHBlY3RlZF9lcnJvci5lbmNvZGUoKSArIGIiXDAiKQorCisgICAgICAgICMgQW5k IG5vdyB0aGUgc29ja2V0IHNob3VsZCBiZSBjbG9zZWQuCisgICAgICAgIGFzc2VydCBub3Qgcy5y ZWN2KDEpLCAiY2xpZW50IHNlbnQgdW5leHBlY3RlZCBkYXRhIgorCisgICAgbG9jYWxfc2VydmVy LmJhY2tncm91bmQoc2VydmVfZXJyb3IpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTGlicHFF cnJvciwgbWF0Y2g9ZXhwZWN0ZWRfZXJyb3IpOgorICAgICAgICAjIEV4aXRpbmcgdGhpcyBjb250 ZXh0IHNob3VsZCByZXN1bHQgaW4gUFFmaW5pc2goKS4KKyAgICAgICAgY29ubmVjdChob3N0PWxv Y2FsX3NlcnZlci5ob3N0LCBwb3J0PWxvY2FsX3NlcnZlci5wb3J0KQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcHl0ZXN0L3B5dC90ZXN0X211bHRpX3NlcnZlci5weSBiL3NyYy90ZXN0L3B5dGVzdC9w eXQvdGVzdF9tdWx0aV9zZXJ2ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjhlZTA0NWIwY2M4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcHl0ZXN0L3B5 dC90ZXN0X211bHRpX3NlcnZlci5weQpAQCAtMCwwICsxLDQ2IEBACisjIENvcHlyaWdodCAoYykg MjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIiIiCitUZXN0cyBk ZW1vbnN0cmF0aW5nIG11bHRpLXNlcnZlciBmdW5jdGlvbmFsaXR5IHVzaW5nIGNyZWF0ZV9wZyBm aXh0dXJlLgorCitUaGVzZSB0ZXN0cyB2ZXJpZnkgdGhhdCB0aGUgcHl0ZXN0IGluZnJhc3RydWN0 dXJlIGNvcnJlY3RseSBoYW5kbGVzCittdWx0aXBsZSBQb3N0Z3JlU1FMIHNlcnZlciBpbnN0YW5j ZXMgd2l0aGluIGEgc2luZ2xlIHRlc3QsIGFuZCB0aGF0Cittb2R1bGUtc2NvcGVkIHNlcnZlcnMg cGVyc2lzdCBhY3Jvc3MgdGVzdHMuCisiIiIKKworaW1wb3J0IHB5dGVzdAorCisKK2RlZiB0ZXN0 X211bHRpcGxlX3NlcnZlcnNfYmFzaWMoY3JlYXRlX3BnKToKKyAgICAiIiJUZXN0IHRoYXQgd2Ug Y2FuIGNyZWF0ZSBhbmQgY29ubmVjdCB0byBtdWx0aXBsZSBzZXJ2ZXJzLiIiIgorICAgIG5vZGUx ID0gY3JlYXRlX3BnKCJwcmltYXJ5IikKKyAgICBub2RlMiA9IGNyZWF0ZV9wZygic2Vjb25kYXJ5 IikKKworICAgIGNvbm4xID0gbm9kZTEuY29ubmVjdCgpCisgICAgY29ubjIgPSBub2RlMi5jb25u ZWN0KCkKKworICAgICMgRWFjaCBzZXJ2ZXIgc2hvdWxkIGhhdmUgaXRzIG93biBkYXRhIGRpcmVj dG9yeQorICAgIGRhdGFkaXIxID0gY29ubjEuc3FsKCJTSE9XIGRhdGFfZGlyZWN0b3J5IikKKyAg ICBkYXRhZGlyMiA9IGNvbm4yLnNxbCgiU0hPVyBkYXRhX2RpcmVjdG9yeSIpCisgICAgYXNzZXJ0 IGRhdGFkaXIxICE9IGRhdGFkaXIyCisKKyAgICAjIEVhY2ggc2VydmVyIHNob3VsZCBiZSBsaXN0 ZW5pbmcgb24gYSBkaWZmZXJlbnQgcG9ydAorICAgIGFzc2VydCBub2RlMS5wb3J0ICE9IG5vZGUy LnBvcnQKKworCitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCitkZWYgc2hhcmVkX3Nl cnZlcihjcmVhdGVfcGdfbW9kdWxlKToKKyAgICAiIiJBIHNlcnZlciBzaGFyZWQgYWNyb3NzIGFs bCB0ZXN0cyBpbiB0aGlzIG1vZHVsZS4iIiIKKyAgICBzZXJ2ZXIgPSBjcmVhdGVfcGdfbW9kdWxl KCJzaGFyZWQiKQorICAgIHNlcnZlci5zcWwoIkNSRUFURSBUQUJMRSBtb2R1bGVfc3RhdGUgKHZh bHVlIGludCBERUZBVUxUIDApIikKKyAgICByZXR1cm4gc2VydmVyCisKKworZGVmIHRlc3RfbW9k dWxlX3NlcnZlcl9jcmVhdGVfcm93KHNoYXJlZF9zZXJ2ZXIpOgorICAgICIiIkZpcnN0IHRlc3Q6 IGNyZWF0ZSBhIHJvdyBpbiB0aGUgc2hhcmVkIHNlcnZlci4iIiIKKyAgICBzaGFyZWRfc2VydmVy LmNvbm5lY3QoKS5zcWwoIklOU0VSVCBJTlRPIG1vZHVsZV9zdGF0ZSBWQUxVRVMgKDQyKSIpCisK KworZGVmIHRlc3RfbW9kdWxlX3NlcnZlcl9zZWVfcm93KHNoYXJlZF9zZXJ2ZXIpOgorICAgICIi IlNlY29uZCB0ZXN0OiB2ZXJpZnkgd2Ugc2VlIHRoZSByb3cgZnJvbSB0aGUgcHJldmlvdXMgdGVz dC4iIiIKKyAgICBhc3NlcnQgc2hhcmVkX3NlcnZlci5jb25uZWN0KCkuc3FsKCJTRUxFQ1QgdmFs dWUgRlJPTSBtb2R1bGVfc3RhdGUiKSA9PSA0MgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcHl0ZXN0 L3B5dC90ZXN0X3F1ZXJ5X2hlbHBlcnMucHkgYi9zcmMvdGVzdC9weXRlc3QvcHl0L3Rlc3RfcXVl cnlfaGVscGVycy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWJj ZDkwODQyMTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9weXRlc3QvcHl0L3Rlc3RfcXVl cnlfaGVscGVycy5weQpAQCAtMCwwICsxLDM0NyBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjUsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKKyIiIgorVGVzdHMgZm9yIHF1ZXJ5 IGhlbHBlciBmdW5jdGlvbnMgd2l0aCB0eXBlIGNvbnZlcnNpb24gYW5kIHJlc3VsdCBzaW1wbGlm aWNhdGlvbi4KKyIiIgorCitpbXBvcnQgdXVpZAorCitpbXBvcnQgcHl0ZXN0CisKKworZGVmIHRl c3Rfc2luZ2xlX2NlbGxfaW50KGNvbm4pOgorICAgICIiIlNpbmdsZSBjZWxsIGludGVnZXIgcXVl cnkgcmV0dXJucyBqdXN0IHRoZSB2YWx1ZS4iIiIKKyAgICByZXN1bHQgPSBjb25uLnNxbCgiU0VM RUNUIDEiKQorICAgIGFzc2VydCByZXN1bHQgPT0gMQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJl c3VsdCwgaW50KQorCisKK2RlZiB0ZXN0X3NpbmdsZV9jZWxsX3N0cmluZyhjb25uKToKKyAgICAi IiJTaW5nbGUgY2VsbCBzdHJpbmcgcXVlcnkgcmV0dXJucyBqdXN0IHRoZSB2YWx1ZS4iIiIKKyAg ICByZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNUICdoZWxsbyciKQorICAgIGFzc2VydCByZXN1bHQg PT0gImhlbGxvIgorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdCwgc3RyKQorCisKK2RlZiB0 ZXN0X3NpbmdsZV9jZWxsX2Jvb2woY29ubik6CisgICAgIiIiU2luZ2xlIGNlbGwgYm9vbGVhbiBx dWVyeSByZXR1cm5zIGp1c3QgdGhlIHZhbHVlLiIiIgorCisgICAgcmVzdWx0ID0gY29ubi5zcWwo IlNFTEVDVCB0cnVlIikKKyAgICBhc3NlcnQgcmVzdWx0IGlzIFRydWUKKyAgICBhc3NlcnQgaXNp bnN0YW5jZShyZXN1bHQsIGJvb2wpCisKKyAgICByZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNUIGZh bHNlIikKKyAgICBhc3NlcnQgcmVzdWx0IGlzIEZhbHNlCisKKworZGVmIHRlc3Rfc2luZ2xlX2Nl bGxfZmxvYXQoY29ubik6CisgICAgIiIiU2luZ2xlIGNlbGwgZmxvYXQgcXVlcnkgcmV0dXJucyBq dXN0IHRoZSB2YWx1ZS4iIiIKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1QgMy4xNDo6 ZmxvYXQ0IikKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHQsIGZsb2F0KQorICAgIGFzc2Vy dCBhYnMocmVzdWx0IC0gMy4xNCkgPCAwLjAxCisKKworZGVmIHRlc3Rfc2luZ2xlX2NlbGxfbnVs bChjb25uKToKKyAgICAiIiJTaW5nbGUgY2VsbCBOVUxMIHF1ZXJ5IHJldHVybnMgTm9uZS4iIiIK KworICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1QgTlVMTCIpCisgICAgYXNzZXJ0IHJlc3Vs dCBpcyBOb25lCisKKworZGVmIHRlc3Rfc2luZ2xlX3Jvd19tdWx0aXBsZV9jb2x1bW5zKGNvbm4p OgorICAgICIiIlNpbmdsZSByb3cgd2l0aCBtdWx0aXBsZSBjb2x1bW5zIHJldHVybnMgYSB0dXBs ZS4iIiIKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1QgMSwgJ2hlbGxvJywgdHJ1ZSIp CisgICAgYXNzZXJ0IHJlc3VsdCA9PSAoMSwgImhlbGxvIiwgVHJ1ZSkKKyAgICBhc3NlcnQgaXNp bnN0YW5jZShyZXN1bHQsIHR1cGxlKQorCisKK2RlZiB0ZXN0X3NpbmdsZV9jb2x1bW5fbXVsdGlw bGVfcm93cyhjb25uKToKKyAgICAiIiJTaW5nbGUgY29sdW1uIHdpdGggbXVsdGlwbGUgcm93cyBy ZXR1cm5zIGEgbGlzdCBvZiB2YWx1ZXMuIiIiCisKKyAgICByZXN1bHQgPSBjb25uLnNxbCgiU0VM RUNUICogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMykiKQorICAgIGFzc2VydCByZXN1bHQgPT0g WzEsIDIsIDNdCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0LCBsaXN0KQorCisKK2RlZiB0 ZXN0X211bHRpcGxlX3Jvd3NfYW5kX2NvbHVtbnMoY29ubik6CisgICAgIiIiTXVsdGlwbGUgcm93 cyBhbmQgY29sdW1ucyByZXR1cm5zIGxpc3Qgb2YgdHVwbGVzLiIiIgorCisgICAgcmVzdWx0ID0g Y29ubi5zcWwoIlNFTEVDVCAqIEZST00gKFZBTFVFUyAoMSwgJ2EnKSwgKDIsICdiJyksICgzLCAn YycpKSBBUyB0IikKKyAgICBhc3NlcnQgcmVzdWx0ID09IFsoMSwgImEiKSwgKDIsICJiIiksICgz LCAiYyIpXQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdCwgbGlzdCkKKyAgICBhc3NlcnQg YWxsKGlzaW5zdGFuY2Uocm93LCB0dXBsZSkgZm9yIHJvdyBpbiByZXN1bHQpCisKKworZGVmIHRl c3RfZW1wdHlfcmVzdWx0KGNvbm4pOgorICAgICIiIkVtcHR5IHJlc3VsdCBzZXQgcmV0dXJucyBl bXB0eSBsaXN0LiIiIgorCisgICAgcmVzdWx0ID0gY29ubi5zcWwoIlNFTEVDVCAxIFdIRVJFIGZh bHNlIikKKyAgICBhc3NlcnQgcmVzdWx0ID09IFtdCisKKworZGVmIHRlc3RfcXVlcnlfZXJyb3Jf aGFuZGxpbmcoY29ubik6CisgICAgIiIiUXVlcnkgZXJyb3JzIHJhaXNlIFJ1bnRpbWVFcnJvciB3 aXRoIGFjdHVhbCBlcnJvciBtZXNzYWdlLiIiIgorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1 bnRpbWVFcnJvcikgYXMgZXhjX2luZm86CisgICAgICAgIGNvbm4uc3FsKCJTRUxFQ1QgKiBGUk9N IG5vbmV4aXN0ZW50X3RhYmxlIikKKworICAgIGVycm9yX21zZyA9IHN0cihleGNfaW5mby52YWx1 ZSkKKyAgICBhc3NlcnQgIm5vbmV4aXN0ZW50X3RhYmxlIiBpbiBlcnJvcl9tc2cgb3IgImRvZXMg bm90IGV4aXN0IiBpbiBlcnJvcl9tc2cKKworCitkZWYgdGVzdF9kaXZpc2lvbl9ieV96ZXJvX2Vy cm9yKGNvbm4pOgorICAgICIiIkRpdmlzaW9uIGJ5IHplcm8gcmFpc2VzIFJ1bnRpbWVFcnJvci4i IiIKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IpIGFzIGV4Y19pbmZvOgor ICAgICAgICBjb25uLnNxbCgiU0VMRUNUIDEvMCIpCisKKyAgICBlcnJvcl9tc2cgPSBzdHIoZXhj X2luZm8udmFsdWUpCisgICAgYXNzZXJ0ICJkaXZpc2lvbiBieSB6ZXJvIiBpbiBlcnJvcl9tc2cu bG93ZXIoKQorCisKK2RlZiB0ZXN0X3NpbXBsZV9leGVjX2NyZWF0ZV90YWJsZShjb25uKToKKyAg ICAiIiJzcWwgZm9yIENSRUFURSBUQUJMRSByZXR1cm5zIE5vbmUuIiIiCisKKyAgICByZXN1bHQg PSBjb25uLnNxbCgiQ1JFQVRFIFRFTVAgVEFCTEUgdGVzdF90YWJsZSAoaWQgaW50LCBuYW1lIHRl eHQpIikKKyAgICBhc3NlcnQgcmVzdWx0IGlzIE5vbmUKKworICAgICMgVmVyaWZ5IHRhYmxlIHdh cyBjcmVhdGVkCisgICAgY291bnQgPSBjb25uLnNxbCgiU0VMRUNUIENPVU5UKCopIEZST00gdGVz dF90YWJsZSIpCisgICAgYXNzZXJ0IGNvdW50ID09IDAKKworCitkZWYgdGVzdF9zaW1wbGVfZXhl Y19pbnNlcnQoY29ubik6CisgICAgIiIic3FsIGZvciBJTlNFUlQgcmV0dXJucyBOb25lLiIiIgor CisgICAgY29ubi5zcWwoIkNSRUFURSBURU1QIFRBQkxFIHRlc3RfdGFibGUgKGlkIGludCwgbmFt ZSB0ZXh0KSIpCisgICAgcmVzdWx0ID0gY29ubi5zcWwoIklOU0VSVCBJTlRPIHRlc3RfdGFibGUg VkFMVUVTICgxLCAnQWxpY2UnKSwgKDIsICdCb2InKSIpCisgICAgYXNzZXJ0IHJlc3VsdCBpcyBO b25lCisKKyAgICAjIFZlcmlmeSBkYXRhIHdhcyBpbnNlcnRlZAorICAgIGNvdW50ID0gY29ubi5z cWwoIlNFTEVDVCBDT1VOVCgqKSBGUk9NIHRlc3RfdGFibGUiKQorICAgIGFzc2VydCBjb3VudCA9 PSAyCisKKworZGVmIHRlc3RfdHlwZV9jb252ZXJzaW9uX21peGVkKGNvbm4pOgorICAgICIiIlRl c3QgbWl4ZWQgdHlwZSBjb252ZXJzaW9uIGluIGEgc2luZ2xlIHJvdy4iIiIKKworICAgIHJlc3Vs dCA9IGNvbm4uc3FsKCJTRUxFQ1QgNDI6OmludDQsIDEyMzo6aW50OCwgMy4xNDo6ZmxvYXQ4LCAn dGV4dCcsIHRydWUsIE5VTEwiKQorICAgIGFzc2VydCByZXN1bHQgPT0gKDQyLCAxMjMsIDMuMTQs ICJ0ZXh0IiwgVHJ1ZSwgTm9uZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHRbMF0sIGlu dCkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHRbMV0sIGludCkKKyAgICBhc3NlcnQgaXNp bnN0YW5jZShyZXN1bHRbMl0sIGZsb2F0KQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdFsz XSwgc3RyKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdFs0XSwgYm9vbCkKKyAgICBhc3Nl cnQgcmVzdWx0WzVdIGlzIE5vbmUKKworCitkZWYgdGVzdF9tdWx0aXBsZV9xdWVyaWVzX3NhbWVf Y29ubmVjdGlvbihjb25uKToKKyAgICAiIiJUZXN0IHJ1bm5pbmcgbXVsdGlwbGUgcXVlcmllcyBv biB0aGUgc2FtZSBjb25uZWN0aW9uLiIiIgorCisgICAgcmVzdWx0MSA9IGNvbm4uc3FsKCJTRUxF Q1QgMSIpCisgICAgYXNzZXJ0IHJlc3VsdDEgPT0gMQorCisgICAgcmVzdWx0MiA9IGNvbm4uc3Fs KCJTRUxFQ1QgJ2hlbGxvJywgJ3dvcmxkJyIpCisgICAgYXNzZXJ0IHJlc3VsdDIgPT0gKCJoZWxs byIsICJ3b3JsZCIpCisKKyAgICByZXN1bHQzID0gY29ubi5zcWwoIlNFTEVDVCAqIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDUpIikKKyAgICBhc3NlcnQgcmVzdWx0MyA9PSBbMSwgMiwgMywgNCwg NV0KKworCitkZWYgdGVzdF9kYXRlX3R5cGUoY29ubik6CisgICAgIiIiVGVzdCBkYXRlIHR5cGUg Y29udmVyc2lvbi4iIiIKKyAgICBpbXBvcnQgZGF0ZXRpbWUKKworICAgIHJlc3VsdCA9IGNvbm4u c3FsKCJTRUxFQ1QgJzIwMjUtMTAtMjAnOjpkYXRlIikKKyAgICBhc3NlcnQgcmVzdWx0ID09IGRh dGV0aW1lLmRhdGUoMjAyNSwgMTAsIDIwKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdCwg ZGF0ZXRpbWUuZGF0ZSkKKworCitkZWYgdGVzdF90aW1lc3RhbXBfdHlwZShjb25uKToKKyAgICAi IiJUZXN0IHRpbWVzdGFtcCB0eXBlIGNvbnZlcnNpb24uIiIiCisgICAgaW1wb3J0IGRhdGV0aW1l CisKKyAgICByZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNUICcyMDI1LTEwLTIwIDE1OjMwOjQ1Jzo6 dGltZXN0YW1wIikKKyAgICBhc3NlcnQgcmVzdWx0ID09IGRhdGV0aW1lLmRhdGV0aW1lKDIwMjUs IDEwLCAyMCwgMTUsIDMwLCA0NSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHQsIGRhdGV0 aW1lLmRhdGV0aW1lKQorCisKK2RlZiB0ZXN0X3RpbWVfdHlwZShjb25uKToKKyAgICAiIiJUZXN0 IHRpbWUgdHlwZSBjb252ZXJzaW9uLiIiIgorICAgIGltcG9ydCBkYXRldGltZQorCisgICAgcmVz dWx0ID0gY29ubi5zcWwoIlNFTEVDVCAnMTU6MzA6NDUnOjp0aW1lIikKKyAgICBhc3NlcnQgcmVz dWx0ID09IGRhdGV0aW1lLnRpbWUoMTUsIDMwLCA0NSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShy ZXN1bHQsIGRhdGV0aW1lLnRpbWUpCisKKworZGVmIHRlc3RfbnVtZXJpY190eXBlKGNvbm4pOgor ICAgICIiIlRlc3QgbnVtZXJpYy9kZWNpbWFsIHR5cGUgY29udmVyc2lvbi4iIiIKKyAgICBpbXBv cnQgZGVjaW1hbAorCisgICAgcmVzdWx0ID0gY29ubi5zcWwoIlNFTEVDVCAxMjMuNDU2OjpudW1l cmljIikKKyAgICBhc3NlcnQgcmVzdWx0ID09IGRlY2ltYWwuRGVjaW1hbCgiMTIzLjQ1NiIpCisg ICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0LCBkZWNpbWFsLkRlY2ltYWwpCisKKworZGVmIHRl c3RfaW50X2FycmF5KGNvbm4pOgorICAgICIiIlRlc3QgaW50ZWdlciBhcnJheSB0eXBlIGNvbnZl cnNpb24uIiIiCisKKyAgICByZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNUIEFSUkFZWzEsIDIsIDMs IDQsIDVdIikKKyAgICBhc3NlcnQgcmVzdWx0ID09IFsxLCAyLCAzLCA0LCA1XQorICAgIGFzc2Vy dCBpc2luc3RhbmNlKHJlc3VsdCwgbGlzdCkKKyAgICBhc3NlcnQgYWxsKGlzaW5zdGFuY2UoeCwg aW50KSBmb3IgeCBpbiByZXN1bHQpCisKKworZGVmIHRlc3RfdGV4dF9hcnJheShjb25uKToKKyAg ICAiIiJUZXN0IHRleHQgYXJyYXkgdHlwZSBjb252ZXJzaW9uLiIiIgorCisgICAgcmVzdWx0ID0g Y29ubi5zcWwoIlNFTEVDVCBBUlJBWVsnaGVsbG8nLCAnd29ybGQnLCAndGVzdCddIikKKyAgICBh c3NlcnQgcmVzdWx0ID09IFsiaGVsbG8iLCAid29ybGQiLCAidGVzdCJdCisgICAgYXNzZXJ0IGlz aW5zdGFuY2UocmVzdWx0LCBsaXN0KQorICAgIGFzc2VydCBhbGwoaXNpbnN0YW5jZSh4LCBzdHIp IGZvciB4IGluIHJlc3VsdCkKKworCitkZWYgdGVzdF9ib29sX2FycmF5KGNvbm4pOgorICAgICIi IlRlc3QgYm9vbGVhbiBhcnJheSB0eXBlIGNvbnZlcnNpb24uIiIiCisKKyAgICByZXN1bHQgPSBj b25uLnNxbCgiU0VMRUNUIEFSUkFZW3RydWUsIGZhbHNlLCB0cnVlXSIpCisgICAgYXNzZXJ0IHJl c3VsdCA9PSBbVHJ1ZSwgRmFsc2UsIFRydWVdCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0 LCBsaXN0KQorICAgIGFzc2VydCBhbGwoaXNpbnN0YW5jZSh4LCBib29sKSBmb3IgeCBpbiByZXN1 bHQpCisKKworZGVmIHRlc3RfZW1wdHlfYXJyYXkoY29ubik6CisgICAgIiIiVGVzdCBlbXB0eSBh cnJheSB0eXBlIGNvbnZlcnNpb24uIiIiCisKKyAgICByZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNU IEFSUkFZW106OmludFtdIikKKyAgICBhc3NlcnQgcmVzdWx0ID09IFtdCisgICAgYXNzZXJ0IGlz aW5zdGFuY2UocmVzdWx0LCBsaXN0KQorCisKK2RlZiB0ZXN0X2pzb25fdHlwZShjb25uKToKKyAg ICAiIiJUZXN0IEpTT04gdHlwZSAocGFyc2VkIHRvIGRpY3QpLiIiIgorCisgICAgcmVzdWx0ID0g Y29ubi5zcWwoJ1NFTEVDVCBcJ3sia2V5IjogInZhbHVlIn1cJzo6anNvbicpCisgICAgYXNzZXJ0 IGlzaW5zdGFuY2UocmVzdWx0LCBkaWN0KQorICAgIGFzc2VydCByZXN1bHQgPT0geyJrZXkiOiAi dmFsdWUifQorCisKK2RlZiB0ZXN0X2pzb25iX3R5cGUoY29ubik6CisgICAgIiIiVGVzdCBKU09O QiB0eXBlIChwYXJzZWQgdG8gZGljdCkuIiIiCisKKyAgICByZXN1bHQgPSBjb25uLnNxbCgnU0VM RUNUIFwneyJuYW1lIjogInRlc3QiLCAiY291bnQiOiA0Mn1cJzo6anNvbmInKQorICAgIGFzc2Vy dCBpc2luc3RhbmNlKHJlc3VsdCwgZGljdCkKKyAgICBhc3NlcnQgcmVzdWx0ID09IHsibmFtZSI6 ICJ0ZXN0IiwgImNvdW50IjogNDJ9CisKKworZGVmIHRlc3RfanNvbl9hcnJheShjb25uKToKKyAg ICAiIiJUZXN0IEpTT04gYXJyYXkgdHlwZS4iIiIKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJT RUxFQ1QgJ1sxLCAyLCAzLCA0LCA1XSc6Ompzb24iKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJl c3VsdCwgbGlzdCkKKyAgICBhc3NlcnQgcmVzdWx0ID09IFsxLCAyLCAzLCA0LCA1XQorCisKK2Rl ZiB0ZXN0X2pzb25fbmVzdGVkKGNvbm4pOgorICAgICIiIlRlc3QgbmVzdGVkIEpTT04gb2JqZWN0 LiIiIgorCisgICAgcmVzdWx0ID0gY29ubi5zcWwoCisgICAgICAgICdTRUxFQ1QgXCd7InVzZXIi OiB7ImlkIjogMSwgIm5hbWUiOiAiQWxpY2UifSwgImFjdGl2ZSI6IHRydWV9XCc6Ompzb24nCisg ICAgKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdCwgZGljdCkKKyAgICBhc3NlcnQgcmVz dWx0ID09IHsidXNlciI6IHsiaWQiOiAxLCAibmFtZSI6ICJBbGljZSJ9LCAiYWN0aXZlIjogVHJ1 ZX0KKworCitkZWYgdGVzdF9taXhlZF90eXBlc193aXRoX2FycmF5cyhjb25uKToKKyAgICAiIiJU ZXN0IG1peGVkIHR5cGVzIGluY2x1ZGluZyBhcnJheXMgaW4gYSBzaW5nbGUgcm93LiIiIgorCisg ICAgcmVzdWx0ID0gY29ubi5zcWwoIlNFTEVDVCA0MiwgJ3RleHQnLCBBUlJBWVsxLCAyLCAzXSwg dHJ1ZSIpCisgICAgYXNzZXJ0IHJlc3VsdCA9PSAoNDIsICJ0ZXh0IiwgWzEsIDIsIDNdLCBUcnVl KQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdFswXSwgaW50KQorICAgIGFzc2VydCBpc2lu c3RhbmNlKHJlc3VsdFsxXSwgc3RyKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdFsyXSwg bGlzdCkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHRbM10sIGJvb2wpCisKKworZGVmIHRl c3RfdXVpZF90eXBlKGNvbm4pOgorICAgICIiIlRlc3QgVVVJRCB0eXBlIGNvbnZlcnNpb24uIiIi CisgICAgdGVzdF91dWlkID0gIjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCIK KyAgICByZXN1bHQgPSBjb25uLnNxbChmIlNFTEVDVCAne3Rlc3RfdXVpZH0nOjp1dWlkIikKKyAg ICBhc3NlcnQgcmVzdWx0ID09IHV1aWQuVVVJRCh0ZXN0X3V1aWQpCisgICAgYXNzZXJ0IGlzaW5z dGFuY2UocmVzdWx0LCB1dWlkLlVVSUQpCisKKworZGVmIHRlc3RfdXVpZF9nZW5lcmF0aW9uKGNv bm4pOgorICAgICIiIlRlc3QgZ2VuZXJhdGVkIFVVSUQgdHlwZSBjb252ZXJzaW9uLiIiIgorICAg IHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1QgdXVpZHY0KCkiKQorICAgIGFzc2VydCBpc2luc3Rh bmNlKHJlc3VsdCwgdXVpZC5VVUlEKQorICAgICMgQ2hlY2sgaXQncyBhIHZhbGlkIFVVSUQgYnkg ZW5zdXJpbmcgaXQgY2FuIGJlIGNvbnZlcnRlZCB0byBzdHJpbmcKKyAgICBhc3NlcnQgbGVuKHN0 cihyZXN1bHQpKSA9PSAzNiAgIyBVVUlEIHN0cmluZyBmb3JtYXQgbGVuZ3RoCisKKworZGVmIHRl c3RfdGV4dF9hcnJheV93aXRoX2NvbW1hcyhjb25uKToKKyAgICAiIiJUZXN0IHRleHQgYXJyYXkg d2l0aCBlbGVtZW50cyBjb250YWluaW5nIGNvbW1hcy4iIiIKKworICAgIHJlc3VsdCA9IGNvbm4u c3FsKCJTRUxFQ1QgQVJSQVlbJ0EsQicsICdDJywgJyBEICddIikKKyAgICBhc3NlcnQgcmVzdWx0 ID09IFsiQSxCIiwgIkMiLCAiIEQgIl0KKworCitkZWYgdGVzdF90ZXh0X2FycmF5X3dpdGhfcXVv dGVzKGNvbm4pOgorICAgICIiIlRlc3QgdGV4dCBhcnJheSB3aXRoIGVsZW1lbnRzIGNvbnRhaW5p bmcgcXVvdGVzLiIiIgorCisgICAgcmVzdWx0ID0gY29ubi5zcWwociJTRUxFQ1QgQVJSQVlbRSdh XCJiJywgJ2MnXSIpCisgICAgYXNzZXJ0IHJlc3VsdCA9PSBbJ2EiYicsICJjIl0KKworCitkZWYg dGVzdF90ZXh0X2FycmF5X3dpdGhfYmFja3NsYXNoKGNvbm4pOgorICAgICIiIlRlc3QgdGV4dCBh cnJheSB3aXRoIGVsZW1lbnRzIGNvbnRhaW5pbmcgYmFja3NsYXNoZXMuIiIiCisKKyAgICByZXN1 bHQgPSBjb25uLnNxbChyIlNFTEVDVCBBUlJBWVtFJ2FcXGInLCAnYyddIikKKyAgICBhc3NlcnQg cmVzdWx0ID09IFsiYVxcYiIsICJjIl0KKworCitkZWYgdGVzdF9qc29uX2FycmF5X3R5cGUoY29u bik6CisgICAgIiIiVGVzdCBhcnJheSBvZiBKU09OIHZhbHVlcyB3aXRoIGVtYmVkZGVkIHF1b3Rl cyBhbmQgY29tbWFzLiIiIgorCisgICAgcmVzdWx0ID0gY29ubi5zcWwoIiIiU0VMRUNUIEFSUkFZ Wyd7ImFiYyI6IDEyMywgInh5eiI6IDQ1Nn0nOjpqc29uXSIiIikKKyAgICBhc3NlcnQgcmVzdWx0 ID09IFt7ImFiYyI6IDEyMywgInh5eiI6IDQ1Nn1dCisKKworZGVmIHRlc3RfanNvbl9hcnJheV9t dWx0aXBsZShjb25uKToKKyAgICAiIiJUZXN0IGFycmF5IG9mIG11bHRpcGxlIEpTT04gb2JqZWN0 cy4iIiIKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKAorICAgICAgICAiIiJTRUxFQ1QgQVJSQVlb J3siYSI6IDF9Jzo6anNvbiwgJ3siYiI6IDJ9Jzo6anNvbiwgJ1sieCIsICJ5Il0nOjpqc29uXSIi IgorICAgICkKKyAgICBhc3NlcnQgcmVzdWx0ID09IFt7ImEiOiAxfSwgeyJiIjogMn0sIFsieCIs ICJ5Il1dCisKKworZGVmIHRlc3RfMmRfaW50X2FycmF5KGNvbm4pOgorICAgICIiIlRlc3QgMkQg aW50ZWdlciBhcnJheS4iIiIKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1QgQVJSQVlb WzEsMl0sWzMsNF1dIikKKyAgICBhc3NlcnQgcmVzdWx0ID09IFtbMSwgMl0sIFszLCA0XV0KKwor CitkZWYgdGVzdF8yZF90ZXh0X2FycmF5KGNvbm4pOgorICAgICIiIlRlc3QgMkQgaW50ZWdlciBh cnJheS4iIiIKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1QgQVJSQVlbWydhJywnYidd LFsnYycsJ2QsZSddXSIpCisgICAgYXNzZXJ0IHJlc3VsdCA9PSBbWyJhIiwgImIiXSwgWyJjIiwg ImQsZSJdXQorCisKK2RlZiB0ZXN0XzNkX2ludF9hcnJheShjb25uKToKKyAgICAiIiJUZXN0IDNE IGludGVnZXIgYXJyYXkuIiIiCisKKyAgICByZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNUIEFSUkFZ W1tbMSwyXSxbMyw0XV0sW1s1LDZdLFs3LDhdXV0iKQorICAgIGFzc2VydCByZXN1bHQgPT0gW1tb MSwgMl0sIFszLCA0XV0sIFtbNSwgNl0sIFs3LCA4XV1dCisKKworZGVmIHRlc3RfYXJyYXlfd2l0 aF9udWxsKGNvbm4pOgorICAgICIiIlRlc3QgYXJyYXkgd2l0aCBOVUxMIGVsZW1lbnRzLiIiIgor CisgICAgcmVzdWx0ID0gY29ubi5zcWwoIlNFTEVDVCBBUlJBWVsxLCBOVUxMLCAzXSIpCisgICAg YXNzZXJ0IHJlc3VsdCA9PSBbMSwgTm9uZSwgM10KZGlmZiAtLWdpdCBhL3NyYy90b29scy9nZW5l cmF0ZV9weXRlc3RfbGlicHFfZXJyb3JzLnB5IGIvc3JjL3Rvb2xzL2dlbmVyYXRlX3B5dGVzdF9s aWJwcV9lcnJvcnMucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAuLmJh OTI4OTFjMTdhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rvb2xzL2dlbmVyYXRlX3B5dGVzdF9s aWJwcV9lcnJvcnMucHkKQEAgLTAsMCArMSwxNDcgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbjMK KyMgQ29weXJpZ2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91 cAorCisiIiIKK0dlbmVyYXRlIHNyYy90ZXN0L3B5dGVzdC9saWJwcS9fZ2VuZXJhdGVkX2Vycm9y cy5weSBmcm9tIGVycmNvZGVzLnR4dC4KKyIiIgorCitpbXBvcnQgc3lzCitmcm9tIHBhdGhsaWIg aW1wb3J0IFBhdGgKKworCitBQ1JPTllNUyA9IHsic3FsIiwgImZkdyJ9CitXT1JEX01BUCA9IHsK KyAgICAic3FsY2xpZW50IjogIlNRTENsaWVudCIsCisgICAgInNxbHNlcnZlciI6ICJTUUxTZXJ2 ZXIiLAorICAgICJzcWxjb25uZWN0aW9uIjogIlNRTENvbm5lY3Rpb24iLAorfQorCisKK2RlZiBz bmFrZV90b19wYXNjYWwobmFtZTogc3RyKSAtPiBzdHI6CisgICAgIiIiQ29udmVydCBzbmFrZV9j YXNlIHRvIFBhc2NhbENhc2UsIGtlZXBpbmcgYWNyb255bXMgdXBwZXJjYXNlLiIiIgorICAgIHdv cmRzID0gW10KKyAgICBmb3Igd29yZCBpbiBuYW1lLnNwbGl0KCJfIik6CisgICAgICAgIGlmIHdv cmQgaW4gV09SRF9NQVA6CisgICAgICAgICAgICB3b3Jkcy5hcHBlbmQoV09SRF9NQVBbd29yZF0p CisgICAgICAgIGVsaWYgd29yZCBpbiBBQ1JPTllNUzoKKyAgICAgICAgICAgIHdvcmRzLmFwcGVu ZCh3b3JkLnVwcGVyKCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB3b3Jkcy5hcHBlbmQo d29yZC5jYXBpdGFsaXplKCkpCisgICAgcmV0dXJuICIiLmpvaW4od29yZHMpCisKKworZGVmIHBh cnNlX2VycmNvZGVzKHBhdGg6IFBhdGgpOgorICAgICIiIlBhcnNlIGVycmNvZGVzLnR4dCBhbmQg cmV0dXJuIGxpc3Qgb2YgKHNxbHN0YXRlLCBtYWNyb19uYW1lLCBzcGVjX25hbWUpIHR1cGxlcy4i IiIKKyAgICBlcnJvcnMgPSBbXQorCisgICAgd2l0aCBvcGVuKHBhdGgpIGFzIGY6CisgICAgICAg IGZvciBsaW5lIGluIGY6CisgICAgICAgICAgICBwYXJ0cyA9IGxpbmUuc3BsaXQoKQorICAgICAg ICAgICAgaWYgbGVuKHBhcnRzKSA+PSA0IGFuZCBsZW4ocGFydHNbMF0pID09IDU6CisgICAgICAg ICAgICAgICAgc3Fsc3RhdGUsIF8sIG1hY3JvX25hbWUsIHNwZWNfbmFtZSA9IHBhcnRzWzo0XQor ICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKHNxbHN0YXRlLCBtYWNyb19uYW1lLCBzcGVj X25hbWUpKQorCisgICAgcmV0dXJuIGVycm9ycworCisKK2RlZiBtYWNyb190b19jbGFzc19uYW1l KG1hY3JvX25hbWU6IHN0cikgLT4gc3RyOgorICAgICIiIkNvbnZlcnQgRVJSQ09ERV9GT09fQkFS IHRvIEZvb0Jhci4iIiIKKyAgICBuYW1lID0gbWFjcm9fbmFtZS5yZW1vdmVwcmVmaXgoIkVSUkNP REVfIikKKyAgICAjIE1vdmUgV0FSTklORyBwcmVmaXggdG8gdGhlIGVuZCBhcyBhIHN1ZmZpeAor ICAgIGlmIG5hbWUuc3RhcnRzd2l0aCgiV0FSTklOR18iKToKKyAgICAgICAgbmFtZSA9IG5hbWUu cmVtb3ZlcHJlZml4KCJXQVJOSU5HXyIpICsgIl9XQVJOSU5HIgorICAgIHJldHVybiBzbmFrZV90 b19wYXNjYWwobmFtZS5sb3dlcigpKQorCisKK2RlZiBnZW5lcmF0ZV9lcnJvcnMoZXJyY29kZXNf cGF0aDogUGF0aCk6CisgICAgIiIiR2VuZXJhdGUgdGhlIF9nZW5lcmF0ZWRfZXJyb3JzLnB5IGNv bnRlbnQuIiIiCisgICAgZXJyb3JzID0gcGFyc2VfZXJyY29kZXMoZXJyY29kZXNfcGF0aCkKKwor ICAgICMgRmluZCBzcGVjX25hbWVzIHRoYXQgYXBwZWFyIG1vcmUgdGhhbiBvbmNlIChjb2xsaXNp b25zKQorICAgIHNwZWNfbmFtZV9jb3VudHM6IGRpY3Rbc3RyLCBpbnRdID0ge30KKyAgICBmb3Ig XywgXywgc3BlY19uYW1lIGluIGVycm9yczoKKyAgICAgICAgc3BlY19uYW1lX2NvdW50c1tzcGVj X25hbWVdID0gc3BlY19uYW1lX2NvdW50cy5nZXQoc3BlY19uYW1lLCAwKSArIDEKKyAgICBjb2xs aWRpbmdfc3BlY19uYW1lcyA9IHsKKyAgICAgICAgbmFtZSBmb3IgbmFtZSwgY291bnQgaW4gc3Bl Y19uYW1lX2NvdW50cy5pdGVtcygpIGlmIGNvdW50ID4gMQorICAgIH0KKworICAgIGxpbmVzID0g WworICAgICAgICAiIyBDb3B5cmlnaHQgKGMpIDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwIiwKKyAgICAgICAgIiMgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSBzcmMv dG9vbHMvZ2VuZXJhdGVfcHl0ZXN0X2xpYnBxX2Vycm9ycy5weSAtIGRvIG5vdCBlZGl0IGRpcmVj dGx5LiIsCisgICAgICAgICIiLAorICAgICAgICAnIiIiJywKKyAgICAgICAgIkdlbmVyYXRlZCBQ b3N0Z3JlU1FMIGVycm9yIGNsYXNzZXMgbWFwcGVkIGZyb20gU1FMU1RBVEUgY29kZXMuIiwKKyAg ICAgICAgJyIiIicsCisgICAgICAgICIiLAorICAgICAgICAiZnJvbSB0eXBpbmcgaW1wb3J0IERp Y3QiLAorICAgICAgICAiIiwKKyAgICAgICAgImZyb20gLl9lcnJvcl9iYXNlIGltcG9ydCBMaWJw cUVycm9yLCBMaWJwcVdhcm5pbmciLAorICAgICAgICAiIiwKKyAgICAgICAgIiIsCisgICAgXQor CisgICAgZ2VuZXJhdGVkX2NsYXNzZXMgPSB7IkxpYnBxRXJyb3IifQorICAgIHNxbHN0YXRlX3Rv X2V4Y2VwdGlvbiA9IHt9CisKKyAgICBmb3Igc3Fsc3RhdGUsIG1hY3JvX25hbWUsIHNwZWNfbmFt ZSBpbiBlcnJvcnM6CisgICAgICAgICMgMDAwIGVycm9ycyBkZWZpbmUgdGhlIHBhcmVudCBjbGFz cyBmb3IgYWxsIGVycm9ycyBpbiB0aGlzIFNRTFNUQVRFIGNsYXNzCisgICAgICAgIGlmIHNxbHN0 YXRlLmVuZHN3aXRoKCIwMDAiKToKKyAgICAgICAgICAgIGV4Y19uYW1lID0gc25ha2VfdG9fcGFz Y2FsKHNwZWNfbmFtZSkKKyAgICAgICAgICAgIGlmIGV4Y19uYW1lID09ICJXYXJuaW5nIjoKKyAg ICAgICAgICAgICAgICBwYXJlbnQgPSAiTGlicHFXYXJuaW5nIgorICAgICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICAgICBwYXJlbnQgPSAiTGlicHFFcnJvciIKKyAgICAgICAgZWxzZToKKyAg ICAgICAgICAgIGlmIHNwZWNfbmFtZSBpbiBjb2xsaWRpbmdfc3BlY19uYW1lczoKKyAgICAgICAg ICAgICAgICBleGNfbmFtZSA9IG1hY3JvX3RvX2NsYXNzX25hbWUobWFjcm9fbmFtZSkKKyAgICAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZXhjX25hbWUgPSBzbmFrZV90b19wYXNjYWwo c3BlY19uYW1lKQorICAgICAgICAgICAgIyBVc2UgcGFyZW50IGNsYXNzIGlmIGF2YWlsYWJsZSwg b3RoZXJ3aXNlIExpYnBxRXJyb3IKKyAgICAgICAgICAgIHBhcmVudCA9IHNxbHN0YXRlX3RvX2V4 Y2VwdGlvbi5nZXQoc3Fsc3RhdGVbOjJdICsgIjAwMCIsICJMaWJwcUVycm9yIikKKyAgICAgICAg ICAgICMgV2FybmluZ3Mgc2hvdWxkIGVuZCB3aXRoICJXYXJuaW5nIgorICAgICAgICAgICAgaWYg cGFyZW50ID09ICJXYXJuaW5nIiBhbmQgbm90IGV4Y19uYW1lLmVuZHN3aXRoKCJXYXJuaW5nIik6 CisgICAgICAgICAgICAgICAgZXhjX25hbWUgKz0gIldhcm5pbmciCisKKyAgICAgICAgZ2VuZXJh dGVkX2NsYXNzZXMuYWRkKGV4Y19uYW1lKQorICAgICAgICBzcWxzdGF0ZV90b19leGNlcHRpb25b c3Fsc3RhdGVdID0gZXhjX25hbWUKKyAgICAgICAgbGluZXMuZXh0ZW5kKAorICAgICAgICAgICAg WworICAgICAgICAgICAgICAgIGYiY2xhc3Mge2V4Y19uYW1lfSh7cGFyZW50fSk6IiwKKyAgICAg ICAgICAgICAgICBmJyAgICAiIiJTUUxTVEFURSB7c3Fsc3RhdGV9IC0ge3NwZWNfbmFtZS5yZXBs YWNlKCJfIiwgIiAiKX0uIiIiJywKKyAgICAgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICAg ICAiICAgIHBhc3MiLAorICAgICAgICAgICAgICAgICIiLAorICAgICAgICAgICAgICAgICIiLAor ICAgICAgICAgICAgXQorICAgICAgICApCisKKyAgICBsaW5lcy5hcHBlbmQoIlNRTFNUQVRFX1RP X0VYQ0VQVElPTjogRGljdFtzdHIsIHR5cGVdID0geyIpCisgICAgZm9yIHNxbHN0YXRlLCBleGNf bmFtZSBpbiBzcWxzdGF0ZV90b19leGNlcHRpb24uaXRlbXMoKToKKyAgICAgICAgbGluZXMuYXBw ZW5kKGYnICAgICJ7c3Fsc3RhdGV9Ijoge2V4Y19uYW1lfSwnKQorICAgIGxpbmVzLmV4dGVuZChb In0iLCAiIiwgIiJdKQorCisgICAgYWxsX2V4cG9ydHMgPSBsaXN0KGdlbmVyYXRlZF9jbGFzc2Vz KSArIFsiU1FMU1RBVEVfVE9fRVhDRVBUSU9OIl0KKyAgICBsaW5lcy5hcHBlbmQoIl9fYWxsX18g PSBbIikKKyAgICBmb3IgbmFtZSBpbiBhbGxfZXhwb3J0czoKKyAgICAgICAgbGluZXMuYXBwZW5k KGYnICAgICJ7bmFtZX0iLCcpCisgICAgbGluZXMuYXBwZW5kKCJdIikKKworICAgIHJldHVybiAi XG4iLmpvaW4obGluZXMpICsgIlxuIgorCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6Cisg ICAgc2NyaXB0X2RpciA9IFBhdGgoX19maWxlX18pLnJlc29sdmUoKS5wYXJlbnQKKyAgICBzcmNf cm9vdCA9IHNjcmlwdF9kaXIucGFyZW50LnBhcmVudAorCisgICAgZXJyY29kZXNfcGF0aCA9IHNy Y19yb290IC8gInNyYyIgLyAiYmFja2VuZCIgLyAidXRpbHMiIC8gImVycmNvZGVzLnR4dCIKKyAg ICBvdXRwdXRfcGF0aCA9ICgKKyAgICAgICAgc3JjX3Jvb3QgLyAic3JjIiAvICJ0ZXN0IiAvICJw eXRlc3QiIC8gImxpYnBxIiAvICJfZ2VuZXJhdGVkX2Vycm9ycy5weSIKKyAgICApCisKKyAgICBp ZiBub3QgZXJyY29kZXNfcGF0aC5leGlzdHMoKToKKyAgICAgICAgcHJpbnQoZiJFcnJvcjoge2Vy cmNvZGVzX3BhdGh9IG5vdCBmb3VuZCIsIGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgc3lzLmV4 aXQoMSkKKworICAgIG91dHB1dCA9IGdlbmVyYXRlX2Vycm9ycyhlcnJjb2Rlc19wYXRoKQorICAg IG91dHB1dF9wYXRoLndyaXRlX3RleHQob3V0cHV0KQorICAgIHByaW50KGYiR2VuZXJhdGVkIHtv dXRwdXRfcGF0aH0iKQotLSAKMi41Mi4wCgo= --fe7bb479ab816b2671d62b71f2a30d169d1061179a59e42a904c0319224d Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v8-0005-Convert-load-balance-tests-from-perl-to-python.patch Content-Type: text/x-patch; charset=utf-8; name=v8-0005-Convert-load-balance-tests-from-perl-to-python.patch RnJvbSA3NWI3Nzc0YTI0ODhhMmQzZTJmOGRmZTRhYWZkYjlhNGI4MmRjMjU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBGcmksIDI2IERlYyAyMDI1IDEyOjMxOjQzICswMTAwClN1YmplY3Q6IFtQQVRDSCB2 OCA1LzddIENvbnZlcnQgbG9hZCBiYWxhbmNlIHRlc3RzIGZyb20gcGVybCB0byBweXRob24KCi0t LQogc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAxICsK IHNyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkICAgICAgICAgICAgICB8ICAgNyArLQog c3JjL2ludGVyZmFjZXMvbGlicHEvcHl0L3Rlc3RfbG9hZF9iYWxhbmNlLnB5IHwgMTcwICsrKysr KysrKysrKysrKysrKwogLi4uL2xpYnBxL3QvMDAzX2xvYWRfYmFsYW5jZV9ob3N0X2xpc3QucGwg ICAgIHwgIDk0IC0tLS0tLS0tLS0KIC4uLi9saWJwcS90LzAwNF9sb2FkX2JhbGFuY2VfZG5zLnBs ICAgICAgICAgICB8IDE0NCAtLS0tLS0tLS0tLS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgMTc2IGlu c2VydGlvbnMoKyksIDI0MCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW50 ZXJmYWNlcy9saWJwcS9weXQvdGVzdF9sb2FkX2JhbGFuY2UucHkKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmMvaW50ZXJmYWNlcy9saWJwcS90LzAwM19sb2FkX2JhbGFuY2VfaG9zdF9saXN0LnBsCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjL2ludGVyZmFjZXMvbGlicHEvdC8wMDRfbG9hZF9iYWxhbmNl X2Rucy5wbAoKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL01ha2VmaWxlIGIvc3Jj L2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKaW5kZXggYmY0YmFhOTI5MTcuLjRjNGJkYjRiM2Ez IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZQorKysgYi9zcmMvaW50 ZXJmYWNlcy9saWJwcS9NYWtlZmlsZQpAQCAtMTY3LDYgKzE2Nyw3IEBAIGNoZWNrIGluc3RhbGxj aGVjazogZXhwb3J0IFBBVEggOj0gJChDVVJESVIpL3Rlc3Q6JChQQVRIKQogCiBjaGVjazogdGVz dC1idWlsZCBhbGwKIAkkKHByb3ZlX2NoZWNrKQorCSQocHl0ZXN0X2NoZWNrKQogCiBpbnN0YWxs Y2hlY2s6IHRlc3QtYnVpbGQgYWxsCiAJJChwcm92ZV9pbnN0YWxsY2hlY2spCmRpZmYgLS1naXQg YS9zcmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBx L21lc29uLmJ1aWxkCmluZGV4IGM1ZWNkOWMzYTg3Li41Njc5MGRkOTJhOSAxMDA2NDQKLS0tIGEv c3JjL2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQKKysrIGIvc3JjL2ludGVyZmFjZXMvbGli cHEvbWVzb24uYnVpbGQKQEAgLTE1MCw4ICsxNTAsNiBAQCB0ZXN0cyArPSB7CiAgICAgJ3Rlc3Rz JzogWwogICAgICAgJ3QvMDAxX3VyaS5wbCcsCiAgICAgICAndC8wMDJfYXBpLnBsJywKLSAgICAg ICd0LzAwM19sb2FkX2JhbGFuY2VfaG9zdF9saXN0LnBsJywKLSAgICAgICd0LzAwNF9sb2FkX2Jh bGFuY2VfZG5zLnBsJywKICAgICAgICd0LzAwNV9uZWdvdGlhdGVfZW5jcnlwdGlvbi5wbCcsCiAg ICAgICAndC8wMDZfc2VydmljZS5wbCcsCiAgICAgXSwKQEAgLTE2Miw2ICsxNjAsMTEgQEAgdGVz dHMgKz0gewogICAgIH0sCiAgICAgJ2RlcHMnOiBsaWJwcV90ZXN0X2RlcHMsCiAgIH0sCisgICdw eXRlc3QnOiB7CisgICAgJ3Rlc3RzJzogWworICAgICAgJ3B5dC90ZXN0X2xvYWRfYmFsYW5jZS5w eScsCisgICAgXSwKKyAgfSwKIH0KIAogc3ViZGlyKCdwbycsIGlmX2ZvdW5kOiBsaWJpbnRsKQpk aWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvcHl0L3Rlc3RfbG9hZF9iYWxhbmNlLnB5 IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvcHl0L3Rlc3RfbG9hZF9iYWxhbmNlLnB5Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wYWY0NmQ4ZjM3ZAotLS0gL2Rldi9udWxs CisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3B5dC90ZXN0X2xvYWRfYmFsYW5jZS5weQpAQCAt MCwwICsxLDE3MCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERl dmVsb3BtZW50IEdyb3VwCisKKyIiIgorVGVzdHMgZm9yIGxvYWRfYmFsYW5jZV9ob3N0cyBjb25u ZWN0aW9uIHBhcmFtZXRlci4KKworVGhlc2UgdGVzdHMgdmVyaWZ5IHRoYXQgbGlicHEgY29ycmVj dGx5IGhhbmRsZXMgbG9hZCBiYWxhbmNpbmcgYWNyb3NzIG11bHRpcGxlCitQb3N0Z3JlU1FMIHNl cnZlcnMgc3BlY2lmaWVkIGluIHRoZSBjb25uZWN0aW9uIHN0cmluZy4KKyIiIgorCitpbXBvcnQg cGxhdGZvcm0KK2ltcG9ydCByZQorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gbGlicHEgaW1wb3J0 IExpYnBxRXJyb3IKK2ltcG9ydCBweXBnCisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1 bGUiKQorZGVmIGxvYWRfYmFsYW5jZV9ub2Rlc19ob3N0bGlzdChjcmVhdGVfcGdfbW9kdWxlKToK KyAgICAiIiIKKyAgICBDcmVhdGUgMyBQb3N0Z3JlU1FMIG5vZGVzIHdpdGggZGlmZmVyZW50IHNv Y2tldCBkaXJlY3Rvcmllcy4KKworICAgIEVhY2ggbm9kZSBoYXMgaXRzIG93biBVbml4IHNvY2tl dCBkaXJlY3RvcnkgZm9yIGlzb2xhdGlvbi4KKyAgICBSZXR1cm5zIGEgdHVwbGUgb2YgKG5vZGVz LCBjb25uZWN0KS4KKyAgICAiIiIKKyAgICBub2RlcyA9IFtjcmVhdGVfcGdfbW9kdWxlKCkgZm9y IF8gaW4gcmFuZ2UoMyldCisKKyAgICBob3N0bGlzdCA9ICIsIi5qb2luKG5vZGUuaG9zdCBmb3Ig bm9kZSBpbiBub2RlcykKKyAgICBwb3J0bGlzdCA9ICIsIi5qb2luKHN0cihub2RlLnBvcnQpIGZv ciBub2RlIGluIG5vZGVzKQorCisgICAgZGVmIGNvbm5lY3QoKiprd2FyZ3MpOgorICAgICAgICBy ZXR1cm4gbm9kZXNbMF0uY29ubmVjdChob3N0PWhvc3RsaXN0LCBwb3J0PXBvcnRsaXN0LCAqKmt3 YXJncykKKworICAgIHJldHVybiBub2RlcywgY29ubmVjdAorCisKK0BweXRlc3QuZml4dHVyZShz Y29wZT0ibW9kdWxlIikKK2RlZiBsb2FkX2JhbGFuY2Vfbm9kZXNfZG5zKGNyZWF0ZV9wZ19tb2R1 bGUpOgorICAgICIiIgorICAgIENyZWF0ZSAzIFBvc3RncmVTUUwgbm9kZXMgb24gdGhlIHNhbWUg cG9ydCBidXQgZGlmZmVyZW50IElQIGFkZHJlc3Nlcy4KKworICAgIFVzZXMgMTI3LjAuMC4xLCAx MjcuMC4wLjIsIDEyNy4wLjAuMyB3aXRoIGEgc2hhcmVkIHBvcnQsIHNvIHRoYXQKKyAgICBjb25u ZWN0aW9ucyB0byAncGctbG9hZGJhbGFuY2V0ZXN0JyBjYW4gYmUgbG9hZCBiYWxhbmNlZCB2aWEg RE5TLgorCisgICAgU2luY2Ugc2V0dGluZyB1cCBhIEROUyBzZXJ2ZXIgaXMgbW9yZSBlZmZvcnQg dGhhbiB3ZSBjb25zaWRlciByZWFzb25hYmxlIHRvCisgICAgcnVuIHRoaXMgdGVzdCwgdGhpcyBz aXR1YXRpb24gaXMgaW5zdGVhZCBpbWl0YXRlZCBieSB1c2luZyBhIGhvc3RzIGZpbGUKKyAgICB3 aGVyZSBhIHNpbmdsZSBob3N0bmFtZSBtYXBzIHRvIG11bHRpcGxlIGRpZmZlcmVudCBJUCBhZGRy ZXNzZXMuIFRoaXMgdGVzdAorICAgIHJlcXVpcmVzIHRoZSBhZG1pbmlzdHJhdG9yIHRvIGFkZCB0 aGUgZm9sbG93aW5nIGxpbmVzIHRvIHRoZSBob3N0cyBmaWxlIChpZgorICAgIHdlIGRldGVjdCB0 aGF0IHRoaXMgaGFzbid0IGhhcHBlbmVkIHdlIHNraXAgdGhlIHRlc3QpOgorCisgICAgMTI3LjAu MC4xIHBnLWxvYWRiYWxhbmNldGVzdAorICAgIDEyNy4wLjAuMiBwZy1sb2FkYmFsYW5jZXRlc3QK KyAgICAxMjcuMC4wLjMgcGctbG9hZGJhbGFuY2V0ZXN0CisKKyAgICBXaW5kb3dzIG9yIExpbnV4 IGFyZSByZXF1aXJlZCB0byBydW4gdGhpcyB0ZXN0IGJlY2F1c2UgdGhlc2UgT1NlcyBhbGxvdwor ICAgIGJpbmRpbmcgdG8gMTI3LjAuMC4yIGFuZCAxMjcuMC4wLjMgYWRkcmVzc2VzIGJ5IGRlZmF1 bHQsIGJ1dCBvdGhlciBPU2VzCisgICAgZG9uJ3QuIFdlIG5lZWQgdG8gYmluZCB0byBkaWZmZXJl bnQgSVAgYWRkcmVzc2VzLCBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlc2UKKyAgICBkaWZmZXJlbnQg SVAgYWRkcmVzc2VzIGluIHRoZSBob3N0cyBmaWxlLgorCisgICAgVGhlIGhvc3RzIGZpbGUgbmVl ZHMgdG8gYmUgcHJlcGFyZWQgYmVmb3JlIHJ1bm5pbmcgdGhpcyB0ZXN0LiBXZSBkb24ndCBkbwor ICAgIGl0IG9uIHRoZSBmbHksIGJlY2F1c2UgaXQgcmVxdWlyZXMgcm9vdCBwZXJtaXNzaW9ucyB0 byBjaGFuZ2UgdGhlIGhvc3RzCisgICAgZmlsZS4gSW4gQ0kgd2Ugc2V0IHVwIHRoZSBwcmV2aW91 c2x5IG1lbnRpb25lZCBydWxlcyBpbiB0aGUgaG9zdHMgZmlsZSwgc28KKyAgICB0aGF0IHRoaXMg bG9hZCBiYWxhbmNpbmcgbWV0aG9kIGlzIHRlc3RlZC4KKworICAgIFJlcXVpcmVzIFBHX1RFU1Rf RVhUUkE9bG9hZF9iYWxhbmNlIGJlY2F1c2UgaXQgcmVxdWlyZXMgdGhpcyBtYW51YWwgaG9zdHMK KyAgICBmaWxlIGNvbmZpZ3VyYXRpb24gYW5kIGFsc28gdXNlcyBUQ1Agd2l0aCB0cnVzdCBhdXRo LCB3aGljaCBpcyBwb3RlbnRpYWxseQorICAgIHVuc2FmZSBvbiBtdWx0aXVzZXIgc3lzdGVtcy4K KyAgICAiIiIKKyAgICBweXBnLnNraXBfdW5sZXNzX3Rlc3RfZXh0cmFzKCJsb2FkX2JhbGFuY2Ui KQorCisgICAgaWYgcGxhdGZvcm0uc3lzdGVtKCkgbm90IGluICgiTGludXgiLCAiV2luZG93cyIp OgorICAgICAgICBweXRlc3Quc2tpcCgiRE5TIGxvYWQgYmFsYW5jZSB0ZXN0IG9ubHkgc3VwcG9y dGVkIG9uIExpbnV4IGFuZCBXaW5kb3dzIikKKworICAgIGlmIHBsYXRmb3JtLnN5c3RlbSgpID09 ICJXaW5kb3dzIjoKKyAgICAgICAgaG9zdHNfcGF0aCA9IHIiYzpcV2luZG93c1xTeXN0ZW0zMlxE cml2ZXJzXGV0Y1xob3N0cyIKKyAgICBlbHNlOgorICAgICAgICBob3N0c19wYXRoID0gIi9ldGMv aG9zdHMiCisKKyAgICB0cnk6CisgICAgICAgIHdpdGggb3Blbihob3N0c19wYXRoKSBhcyBmOgor ICAgICAgICAgICAgaG9zdHNfY29udGVudCA9IGYucmVhZCgpCisgICAgZXhjZXB0IChPU0Vycm9y LCBJT0Vycm9yKToKKyAgICAgICAgcHl0ZXN0LnNraXAoZiJDb3VsZCBub3QgcmVhZCBob3N0cyBm aWxlOiB7aG9zdHNfcGF0aH0iKQorCisgICAgY291bnQgPSBsZW4ocmUuZmluZGFsbChyIjEyN1wu MFwuMFwuWzEtM11ccytwZy1sb2FkYmFsYW5jZXRlc3QiLCBob3N0c19jb250ZW50KSkKKyAgICBp ZiBjb3VudCAhPSAzOgorICAgICAgICBweXRlc3Quc2tpcCgiaG9zdHMgZmlsZSBub3QgcHJlcGFy ZWQgZm9yIEROUyBsb2FkIGJhbGFuY2UgdGVzdCIpCisKKyAgICBmaXJzdF9ub2RlID0gY3JlYXRl X3BnX21vZHVsZShob3N0YWRkcj0iMTI3LjAuMC4xIikKKyAgICBub2RlcyA9IFsKKyAgICAgICAg Zmlyc3Rfbm9kZSwKKyAgICAgICAgY3JlYXRlX3BnX21vZHVsZShob3N0YWRkcj0iMTI3LjAuMC4y IiwgcG9ydD1maXJzdF9ub2RlLnBvcnQpLAorICAgICAgICBjcmVhdGVfcGdfbW9kdWxlKGhvc3Rh ZGRyPSIxMjcuMC4wLjMiLCBwb3J0PWZpcnN0X25vZGUucG9ydCksCisgICAgXQorCisgICAgIyBB bGxvdyB0cnVzdCBhdXRoZW50aWNhdGlvbiBmb3IgVENQIGNvbm5lY3Rpb25zIGZyb20gbG9vcGJh Y2sKKyAgICBmb3Igbm9kZSBpbiBub2RlczoKKyAgICAgICAgaGJhX3BhdGggPSBub2RlLmRhdGFk aXIgLyAicGdfaGJhLmNvbmYiCisgICAgICAgIHdpdGggb3BlbihoYmFfcGF0aCwgInIiKSBhcyBm OgorICAgICAgICAgICAgb3JpZ2luYWxfY29udGVudCA9IGYucmVhZCgpCisgICAgICAgIHdpdGgg b3BlbihoYmFfcGF0aCwgInciKSBhcyBmOgorICAgICAgICAgICAgZi53cml0ZSgiaG9zdCBhbGwg YWxsIDEyNy4wLjAuMC84IHRydXN0XG4iKQorICAgICAgICAgICAgZi53cml0ZShvcmlnaW5hbF9j b250ZW50KQorICAgICAgICBub2RlLnBnX2N0bCgicmVsb2FkIikKKworICAgIGRlZiBjb25uZWN0 KCoqa3dhcmdzKToKKyAgICAgICAgcmV0dXJuIG5vZGVzWzBdLmNvbm5lY3QoaG9zdD0icGctbG9h ZGJhbGFuY2V0ZXN0IiwgKiprd2FyZ3MpCisKKyAgICByZXR1cm4gbm9kZXMsIGNvbm5lY3QKKwor CitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsIHBhcmFtcz1bImhvc3RsaXN0IiwgImRu cyJdKQorZGVmIGxvYWRfYmFsYW5jZV9ub2RlcyhyZXF1ZXN0KToKKyAgICAiIiIKKyAgICBQYXJh bWV0cml6ZWQgZml4dHVyZSBwcm92aWRpbmcgYm90aCBsb2FkIGJhbGFuY2luZyB0ZXN0IGVudmly b25tZW50cy4KKyAgICAiIiIKKyAgICByZXR1cm4gcmVxdWVzdC5nZXRmaXh0dXJldmFsdWUoZiJs b2FkX2JhbGFuY2Vfbm9kZXNfe3JlcXVlc3QucGFyYW19IikKKworCitkZWYgdGVzdF9sb2FkX2Jh bGFuY2VfaG9zdHNfaW52YWxpZF92YWx1ZShsb2FkX2JhbGFuY2Vfbm9kZXMpOgorICAgICIiImxv YWRfYmFsYW5jZV9ob3N0cyBkb2Vzbid0IGFjY2VwdCB1bmtub3duIHZhbHVlcy4iIiIKKyAgICBf LCBjb25uZWN0ID0gbG9hZF9iYWxhbmNlX25vZGVzCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMo CisgICAgICAgIExpYnBxRXJyb3IsIG1hdGNoPSdpbnZhbGlkIGxvYWRfYmFsYW5jZV9ob3N0cyB2 YWx1ZTogImRvZXNub3RleGlzdCInCisgICAgKToKKyAgICAgICAgY29ubmVjdChsb2FkX2JhbGFu Y2VfaG9zdHM9ImRvZXNub3RleGlzdCIpCisKKworZGVmIHRlc3RfbG9hZF9iYWxhbmNlX2hvc3Rz X2Rpc2FibGUobG9hZF9iYWxhbmNlX25vZGVzKToKKyAgICAiIiJsb2FkX2JhbGFuY2VfaG9zdHM9 ZGlzYWJsZSBhbHdheXMgY29ubmVjdHMgdG8gdGhlIGZpcnN0IG5vZGUuIiIiCisgICAgbm9kZXMs IGNvbm5lY3QgPSBsb2FkX2JhbGFuY2Vfbm9kZXMKKworICAgIHdpdGggbm9kZXNbMF0ubG9nX2Nv bnRhaW5zKCJjb25uZWN0aW9uIHJlY2VpdmVkIik6CisgICAgICAgIGNvbm5lY3QobG9hZF9iYWxh bmNlX2hvc3RzPSJkaXNhYmxlIikKKworCitkZWYgdGVzdF9sb2FkX2JhbGFuY2VfaG9zdHNfcmFu ZG9tX2Rpc3RyaWJ1dGlvbihsb2FkX2JhbGFuY2Vfbm9kZXMpOgorICAgICIiImxvYWRfYmFsYW5j ZV9ob3N0cz1yYW5kb20gZGlzdHJpYnV0ZXMgY29ubmVjdGlvbnMgYWNyb3NzIGFsbCBub2Rlcy4i IiIKKyAgICBub2RlcywgY29ubmVjdCA9IGxvYWRfYmFsYW5jZV9ub2RlcworCisgICAgZm9yIF8g aW4gcmFuZ2UoNTApOgorICAgICAgICBjb25uZWN0KGxvYWRfYmFsYW5jZV9ob3N0cz0icmFuZG9t IikKKworICAgIG9jY3VycmVuY2VzID0gWworICAgICAgICBsZW4ocmUuZmluZGFsbCgiY29ubmVj dGlvbiByZWNlaXZlZCIsIG5vZGUubG9nX2NvbnRlbnQoKSkpIGZvciBub2RlIGluIG5vZGVzCisg ICAgXQorCisgICAgIyBTdGF0aXN0aWNhbGx5LCBlYWNoIG5vZGUgc2hvdWxkIHJlY2VpdmUgYXQg bGVhc3Qgb25lIGNvbm5lY3Rpb24uCisgICAgIyBUaGUgcHJvYmFiaWxpdHkgb2YgYW55IG5vZGUg cmVjZWl2aW5nIDAgY29ubmVjdGlvbnMgaXMgKDIvMyleNTAg4omIIDEuNTdlLTkKKyAgICBhc3Nl cnQgb2NjdXJyZW5jZXNbMF0gPiAwLCAibm9kZTEgc2hvdWxkIHJlY2VpdmUgYXQgbGVhc3Qgb25l IGNvbm5lY3Rpb24iCisgICAgYXNzZXJ0IG9jY3VycmVuY2VzWzFdID4gMCwgIm5vZGUyIHNob3Vs ZCByZWNlaXZlIGF0IGxlYXN0IG9uZSBjb25uZWN0aW9uIgorICAgIGFzc2VydCBvY2N1cnJlbmNl c1syXSA+IDAsICJub2RlMyBzaG91bGQgcmVjZWl2ZSBhdCBsZWFzdCBvbmUgY29ubmVjdGlvbiIK KyAgICBhc3NlcnQgc3VtKG9jY3VycmVuY2VzKSA9PSA1MCwgInRvdGFsIGNvbm5lY3Rpb25zIHNo b3VsZCBiZSA1MCIKKworCitkZWYgdGVzdF9sb2FkX2JhbGFuY2VfaG9zdHNfZmFpbG92ZXIobG9h ZF9iYWxhbmNlX25vZGVzKToKKyAgICAiIiJsb2FkX2JhbGFuY2VfaG9zdHMgY29udGludWVzIHRy eWluZyBob3N0cyB1bnRpbCBpdCBmaW5kcyBhIHdvcmtpbmcgb25lLiIiIgorICAgIG5vZGVzLCBj b25uZWN0ID0gbG9hZF9iYWxhbmNlX25vZGVzCisKKyAgICBub2Rlc1swXS5zdG9wKCkKKyAgICBu b2Rlc1sxXS5zdG9wKCkKKworICAgIHdpdGggbm9kZXNbMl0ubG9nX2NvbnRhaW5zKCJjb25uZWN0 aW9uIHJlY2VpdmVkIik6CisgICAgICAgIGNvbm5lY3QobG9hZF9iYWxhbmNlX2hvc3RzPSJkaXNh YmxlIikKKworICAgIHdpdGggbm9kZXNbMl0ubG9nX2NvbnRhaW5zKCJjb25uZWN0aW9uIHJlY2Vp dmVkIiwgdGltZXM9NSk6CisgICAgICAgIGZvciBfIGluIHJhbmdlKDUpOgorICAgICAgICAgICAg Y29ubmVjdChsb2FkX2JhbGFuY2VfaG9zdHM9InJhbmRvbSIpCmRpZmYgLS1naXQgYS9zcmMvaW50 ZXJmYWNlcy9saWJwcS90LzAwM19sb2FkX2JhbGFuY2VfaG9zdF9saXN0LnBsIGIvc3JjL2ludGVy ZmFjZXMvbGlicHEvdC8wMDNfbG9hZF9iYWxhbmNlX2hvc3RfbGlzdC5wbApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMWY5NzBmZjk5NGIuLjAwMDAwMDAwMDAwCi0tLSBhL3NyYy9pbnRl cmZhY2VzL2xpYnBxL3QvMDAzX2xvYWRfYmFsYW5jZV9ob3N0X2xpc3QucGwKKysrIC9kZXYvbnVs bApAQCAtMSw5NCArMCwwIEBACi0jIENvcHlyaWdodCAoYykgMjAyMy0yMDI2LCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAotdXNlIHN0cmljdDsKLXVzZSB3YXJuaW5ncyBGQVRB TCA9PiAnYWxsJzsKLXVzZSBDb25maWc7Ci11c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Ci11 c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKLXVzZSBUZXN0OjpNb3JlOwotCi0jIFRoaXMg dGVzdHMgbG9hZCBiYWxhbmNpbmcgYWNyb3NzIHRoZSBsaXN0IG9mIGRpZmZlcmVudCBob3N0cyBp biB0aGUgaG9zdAotIyBwYXJhbWV0ZXIgb2YgdGhlIGNvbm5lY3Rpb24gc3RyaW5nLgotCi0jIENs dXN0ZXIgc2V0dXAgd2hpY2ggaXMgc2hhcmVkIGZvciB0ZXN0aW5nIGJvdGggbG9hZCBiYWxhbmNp bmcgbWV0aG9kcwotbXkgJG5vZGUxID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdu b2RlMScpOwotbXkgJG5vZGUyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdub2Rl MicsIG93bl9ob3N0ID0+IDEpOwotbXkgJG5vZGUzID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rl ci0+bmV3KCdub2RlMycsIG93bl9ob3N0ID0+IDEpOwotCi0jIENyZWF0ZSBhIGRhdGEgZGlyZWN0 b3J5IHdpdGggaW5pdGRiCi0kbm9kZTEtPmluaXQoKTsKLSRub2RlMi0+aW5pdCgpOwotJG5vZGUz LT5pbml0KCk7Ci0KLSMgU3RhcnQgdGhlIFBvc3RncmVTUUwgc2VydmVyCi0kbm9kZTEtPnN0YXJ0 KCk7Ci0kbm9kZTItPnN0YXJ0KCk7Ci0kbm9kZTMtPnN0YXJ0KCk7Ci0KLSMgU3RhcnQgdGhlIHRl c3RzIGZvciBsb2FkIGJhbGFuY2luZyBtZXRob2QgMQotbXkgJGhvc3RsaXN0ID0gJG5vZGUxLT5o b3N0IC4gJywnIC4gJG5vZGUyLT5ob3N0IC4gJywnIC4gJG5vZGUzLT5ob3N0OwotbXkgJHBvcnRs aXN0ID0gJG5vZGUxLT5wb3J0IC4gJywnIC4gJG5vZGUyLT5wb3J0IC4gJywnIC4gJG5vZGUzLT5w b3J0OwotCi0kbm9kZTEtPmNvbm5lY3RfZmFpbHMoCi0JImhvc3Q9JGhvc3RsaXN0IHBvcnQ9JHBv cnRsaXN0IGxvYWRfYmFsYW5jZV9ob3N0cz1kb2Vzbm90ZXhpc3QiLAotCSJsb2FkX2JhbGFuY2Vf aG9zdHMgZG9lc24ndCBhY2NlcHQgdW5rbm93biB2YWx1ZXMiLAotCWV4cGVjdGVkX3N0ZGVyciA9 PiBxci9pbnZhbGlkIGxvYWRfYmFsYW5jZV9ob3N0cyB2YWx1ZTogImRvZXNub3RleGlzdCIvKTsK LQotIyBsb2FkX2JhbGFuY2VfaG9zdHM9ZGlzYWJsZSBzaG91bGQgYWx3YXlzIGNob29zZSB0aGUg Zmlyc3Qgb25lLgotJG5vZGUxLT5jb25uZWN0X29rKAotCSJob3N0PSRob3N0bGlzdCBwb3J0PSRw b3J0bGlzdCBsb2FkX2JhbGFuY2VfaG9zdHM9ZGlzYWJsZSIsCi0JImxvYWRfYmFsYW5jZV9ob3N0 cz1kaXNhYmxlIGNvbm5lY3RzIHRvIHRoZSBmaXJzdCBub2RlIiwKLQlzcWwgPT4gIlNFTEVDVCAn Y29ubmVjdDEnIiwKLQlsb2dfbGlrZSA9PiBbcXIvc3RhdGVtZW50OiBTRUxFQ1QgJ2Nvbm5lY3Qx Jy9dKTsKLQotIyBTdGF0aXN0aWNhbGx5IHRoZSBmb2xsb3dpbmcgbG9vcCB3aXRoIGxvYWRfYmFs YW5jZV9ob3N0cz1yYW5kb20gd2lsbCBhbG1vc3QKLSMgY2VydGFpbmx5IGNvbm5lY3QgYXQgbGVh c3Qgb25jZSB0byBlYWNoIG9mIHRoZSBub2Rlcy4gVGhlIGNoYW5jZSBvZiB0aGF0IG5vdAotIyBo YXBwZW5pbmcgaXMgc28gc21hbGwgdGhhdCBpdCdzIG5lZ2xpZ2libGU6ICgyLzMpXjUwID0gMS41 NjgzMjg1NWUtOQotZm9yZWFjaCBteSAkaSAoMSAuLiA1MCkKLXsKLQkkbm9kZTEtPmNvbm5lY3Rf b2soCi0JCSJob3N0PSRob3N0bGlzdCBwb3J0PSRwb3J0bGlzdCBsb2FkX2JhbGFuY2VfaG9zdHM9 cmFuZG9tIiwKLQkJInJlcGVhdGVkIGNvbm5lY3Rpb25zIHdpdGggcmFuZG9tIGxvYWQgYmFsYW5j aW5nIiwKLQkJc3FsID0+ICJTRUxFQ1QgJ2Nvbm5lY3QyJyIpOwotfQotCi1teSAkbm9kZTFfb2Nj dXJyZW5jZXMgPSAoKSA9Ci0gICRub2RlMS0+bG9nX2NvbnRlbnQoKSA9fiAvc3RhdGVtZW50OiBT RUxFQ1QgJ2Nvbm5lY3QyJy9nOwotbXkgJG5vZGUyX29jY3VycmVuY2VzID0gKCkgPQotICAkbm9k ZTItPmxvZ19jb250ZW50KCkgPX4gL3N0YXRlbWVudDogU0VMRUNUICdjb25uZWN0MicvZzsKLW15 ICRub2RlM19vY2N1cnJlbmNlcyA9ICgpID0KLSAgJG5vZGUzLT5sb2dfY29udGVudCgpID1+IC9z dGF0ZW1lbnQ6IFNFTEVDVCAnY29ubmVjdDInL2c7Ci0KLW15ICR0b3RhbF9vY2N1cnJlbmNlcyA9 Ci0gICRub2RlMV9vY2N1cnJlbmNlcyArICRub2RlMl9vY2N1cnJlbmNlcyArICRub2RlM19vY2N1 cnJlbmNlczsKLQotY21wX29rKCRub2RlMV9vY2N1cnJlbmNlcywgJz4nLCAxLAotCSJyZWNlaXZl ZCBhdCBsZWFzdCBvbmUgY29ubmVjdGlvbiBvbiBub2RlMSIpOwotY21wX29rKCRub2RlMl9vY2N1 cnJlbmNlcywgJz4nLCAxLAotCSJyZWNlaXZlZCBhdCBsZWFzdCBvbmUgY29ubmVjdGlvbiBvbiBu b2RlMiIpOwotY21wX29rKCRub2RlM19vY2N1cnJlbmNlcywgJz4nLCAxLAotCSJyZWNlaXZlZCBh dCBsZWFzdCBvbmUgY29ubmVjdGlvbiBvbiBub2RlMyIpOwotaXMoJHRvdGFsX29jY3VycmVuY2Vz LCA1MCwgInJlY2VpdmVkIDUwIGNvbm5lY3Rpb25zIGFjcm9zcyBhbGwgbm9kZXMiKTsKLQotJG5v ZGUxLT5zdG9wKCk7Ci0kbm9kZTItPnN0b3AoKTsKLQotIyBsb2FkX2JhbGFuY2VfaG9zdHM9ZGlz YWJsZSBzaG91bGQgY29udGludWUgdHJ5aW5nIGhvc3RzIHVudGlsIGl0IGZpbmRzIGEKLSMgd29y a2luZyBvbmUuCi0kbm9kZTMtPmNvbm5lY3Rfb2soCi0JImhvc3Q9JGhvc3RsaXN0IHBvcnQ9JHBv cnRsaXN0IGxvYWRfYmFsYW5jZV9ob3N0cz1kaXNhYmxlIiwKLQkibG9hZF9iYWxhbmNlX2hvc3Rz PWRpc2FibGUgY29udGludWVzIHVudGlsIGl0IGNvbm5lY3RzIHRvIHRoZSBhIHdvcmtpbmcgbm9k ZSIsCi0Jc3FsID0+ICJTRUxFQ1QgJ2Nvbm5lY3QzJyIsCi0JbG9nX2xpa2UgPT4gW3FyL3N0YXRl bWVudDogU0VMRUNUICdjb25uZWN0MycvXSk7Ci0KLSMgQWxzbyB3aXRoIGxvYWRfYmFsYW5jZV9o b3N0cz1yYW5kb20gd2UgY29udGludWUgdG8gdGhlIG5leHQgbm9kZXMgaWYgcHJldmlvdXMKLSMg b25lcyBhcmUgZG93bi4gQ29ubmVjdCBhIGZldyB0aW1lcyB0byBtYWtlIHN1cmUgaXQncyBub3Qg anVzdCBsdWNreS4KLWZvcmVhY2ggbXkgJGkgKDEgLi4gNSkKLXsKLQkkbm9kZTMtPmNvbm5lY3Rf b2soCi0JCSJob3N0PSRob3N0bGlzdCBwb3J0PSRwb3J0bGlzdCBsb2FkX2JhbGFuY2VfaG9zdHM9 cmFuZG9tIiwKLQkJImxvYWRfYmFsYW5jZV9ob3N0cz1yYW5kb20gY29udGludWVzIHVudGlsIGl0 IGNvbm5lY3RzIHRvIHRoZSBhIHdvcmtpbmcgbm9kZSIsCi0JCXNxbCA9PiAiU0VMRUNUICdjb25u ZWN0NCciLAotCQlsb2dfbGlrZSA9PiBbcXIvc3RhdGVtZW50OiBTRUxFQ1QgJ2Nvbm5lY3Q0Jy9d KTsKLX0KLQotZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJw cS90LzAwNF9sb2FkX2JhbGFuY2VfZG5zLnBsIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvdC8wMDRf bG9hZF9iYWxhbmNlX2Rucy5wbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjEwZWMx ZmY1MTcuLjAwMDAwMDAwMDAwCi0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3QvMDA0X2xvYWRf YmFsYW5jZV9kbnMucGwKKysrIC9kZXYvbnVsbApAQCAtMSwxNDQgKzAsMCBAQAotIyBDb3B5cmln aHQgKGMpIDIwMjMtMjAyNiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKLXVz ZSBzdHJpY3Q7Ci11c2Ugd2FybmluZ3MgRkFUQUwgPT4gJ2FsbCc7Ci11c2UgQ29uZmlnOwotdXNl IFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwotdXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7 Ci11c2UgVGVzdDo6TW9yZTsKLQotaWYgKCEkRU5We1BHX1RFU1RfRVhUUkF9IHx8ICRFTlZ7UEdf VEVTVF9FWFRSQX0gIX4gL1xibG9hZF9iYWxhbmNlXGIvKQotewotCXBsYW4gc2tpcF9hbGwgPT4K LQkgICdQb3RlbnRpYWxseSB1bnNhZmUgdGVzdCBsb2FkX2JhbGFuY2Ugbm90IGVuYWJsZWQgaW4g UEdfVEVTVF9FWFRSQSc7Ci19Ci0KLSMgVGhpcyB0ZXN0cyBsb2FkYmFsYW5jaW5nIGJhc2VkIG9u IGEgRE5TIGVudHJ5IHRoYXQgY29udGFpbnMgbXVsdGlwbGUgcmVjb3JkcwotIyBmb3IgZGlmZmVy ZW50IElQcy4gU2luY2Ugc2V0dGluZyB1cCBhIEROUyBzZXJ2ZXIgaXMgbW9yZSBlZmZvcnQgdGhh biB3ZQotIyBjb25zaWRlciByZWFzb25hYmxlIHRvIHJ1biB0aGlzIHRlc3QsIHRoaXMgc2l0dWF0 aW9uIGlzIGluc3RlYWQgaW1pdGF0ZWQgYnkKLSMgdXNpbmcgYSBob3N0cyBmaWxlIHdoZXJlIGEg c2luZ2xlIGhvc3RuYW1lIG1hcHMgdG8gbXVsdGlwbGUgZGlmZmVyZW50IElQCi0jIGFkZHJlc3Nl cy4gVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBhZG1pbmlzdHJhdG9yIHRvIGFkZCB0aGUgZm9sbG93 aW5nIGxpbmVzIHRvCi0jIHRoZSBob3N0cyBmaWxlIChpZiB3ZSBkZXRlY3QgdGhhdCB0aGlzIGhh c24ndCBoYXBwZW5lZCB3ZSBza2lwIHRoZSB0ZXN0KToKLSMKLSMgMTI3LjAuMC4xIHBnLWxvYWRi YWxhbmNldGVzdAotIyAxMjcuMC4wLjIgcGctbG9hZGJhbGFuY2V0ZXN0Ci0jIDEyNy4wLjAuMyBw Zy1sb2FkYmFsYW5jZXRlc3QKLSMKLSMgV2luZG93cyBvciBMaW51eCBhcmUgcmVxdWlyZWQgdG8g cnVuIHRoaXMgdGVzdCBiZWNhdXNlIHRoZXNlIE9TZXMgYWxsb3cKLSMgYmluZGluZyB0byAxMjcu MC4wLjIgYW5kIDEyNy4wLjAuMyBhZGRyZXNzZXMgYnkgZGVmYXVsdCwgYnV0IG90aGVyIE9TZXMK LSMgZG9uJ3QuIFdlIG5lZWQgdG8gYmluZCB0byBkaWZmZXJlbnQgSVAgYWRkcmVzc2VzLCBzbyB0 aGF0IHdlIGNhbiB1c2UgdGhlc2UKLSMgZGlmZmVyZW50IElQIGFkZHJlc3NlcyBpbiB0aGUgaG9z dHMgZmlsZS4KLSMKLSMgVGhlIGhvc3RzIGZpbGUgbmVlZHMgdG8gYmUgcHJlcGFyZWQgYmVmb3Jl IHJ1bm5pbmcgdGhpcyB0ZXN0LiBXZSBkb24ndCBkbyBpdAotIyBvbiB0aGUgZmx5LCBiZWNhdXNl IGl0IHJlcXVpcmVzIHJvb3QgcGVybWlzc2lvbnMgdG8gY2hhbmdlIHRoZSBob3N0cyBmaWxlLiBJ bgotIyBDSSB3ZSBzZXQgdXAgdGhlIHByZXZpb3VzbHkgbWVudGlvbmVkIHJ1bGVzIGluIHRoZSBo b3N0cyBmaWxlLCBzbyB0aGF0IHRoaXMKLSMgbG9hZCBiYWxhbmNpbmcgbWV0aG9kIGlzIHRlc3Rl ZC4KLQotIyBDbHVzdGVyIHNldHVwIHdoaWNoIGlzIHNoYXJlZCBmb3IgdGVzdGluZyBib3RoIGxv YWQgYmFsYW5jaW5nIG1ldGhvZHMKLW15ICRjYW5fYmluZF90b18xMjdfMF8wXzIgPQotICAkQ29u Zmlne29zbmFtZX0gZXEgJ2xpbnV4JyB8fCAkUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OndpbmRv d3Nfb3M7Ci0KLSMgQ2hlY2tzIGZvciB0aGUgcmVxdWlyZW1lbnRzIGZvciB0ZXN0aW5nIGxvYWQg YmFsYW5jaW5nIG1ldGhvZCAyCi1pZiAoISRjYW5fYmluZF90b18xMjdfMF8wXzIpCi17Ci0JcGxh biBza2lwX2FsbCA9PiAnbG9hZF9iYWxhbmNlIHRlc3Qgb25seSBzdXBwb3J0ZWQgb24gTGludXgg YW5kIFdpbmRvd3MnOwotfQotCi1teSAkaG9zdHNfcGF0aDsKLWlmICgkd2luZG93c19vcykKLXsK LQkkaG9zdHNfcGF0aCA9ICdjOlxXaW5kb3dzXFN5c3RlbTMyXERyaXZlcnNcZXRjXGhvc3RzJzsK LX0KLWVsc2UKLXsKLQkkaG9zdHNfcGF0aCA9ICcvZXRjL2hvc3RzJzsKLX0KLQotbXkgJGhvc3Rz X2NvbnRlbnQgPSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6c2x1cnBfZmlsZSgkaG9zdHNfcGF0 aCk7Ci0KLW15ICRob3N0c19jb3VudCA9ICgpID0KLSAgJGhvc3RzX2NvbnRlbnQgPX4gLzEyN1wu MFwuMFwuWzEtM10gcGctbG9hZGJhbGFuY2V0ZXN0L2c7Ci1pZiAoJGhvc3RzX2NvdW50ICE9IDMp Ci17Ci0JIyBIb3N0IGZpbGUgaXMgbm90IHByZXBhcmVkIGZvciB0aGlzIHRlc3QKLQlwbGFuIHNr aXBfYWxsID0+ICJob3N0cyBmaWxlIHdhcyBub3QgcHJlcGFyZWQgZm9yIEROUyBsb2FkIGJhbGFu Y2UgdGVzdCI7Ci19Ci0KLSRQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOjp1c2VfdGNwID0gMTsK LSRQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOjp0ZXN0X3BnaG9zdCA9ICcxMjcuMC4wLjEnOwot bXkgJHBvcnQgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOjpnZXRfZnJlZV9wb3J0KCk7Ci1t eSAkbm9kZTEgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ25vZGUxJywgcG9ydCA9 PiAkcG9ydCk7Ci1teSAkbm9kZTIgPQotICBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXco J25vZGUyJywgcG9ydCA9PiAkcG9ydCwgb3duX2hvc3QgPT4gMSk7Ci1teSAkbm9kZTMgPQotICBQ b3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ25vZGUzJywgcG9ydCA9PiAkcG9ydCwgb3du X2hvc3QgPT4gMSk7Ci0KLSMgQ3JlYXRlIGEgZGF0YSBkaXJlY3Rvcnkgd2l0aCBpbml0ZGIKLSRu b2RlMS0+aW5pdCgpOwotJG5vZGUyLT5pbml0KCk7Ci0kbm9kZTMtPmluaXQoKTsKLQotIyBTdGFy dCB0aGUgUG9zdGdyZVNRTCBzZXJ2ZXIKLSRub2RlMS0+c3RhcnQoKTsKLSRub2RlMi0+c3RhcnQo KTsKLSRub2RlMy0+c3RhcnQoKTsKLQotIyBsb2FkX2JhbGFuY2VfaG9zdHM9ZGlzYWJsZSBzaG91 bGQgYWx3YXlzIGNob29zZSB0aGUgZmlyc3Qgb25lLgotJG5vZGUxLT5jb25uZWN0X29rKAotCSJo b3N0PXBnLWxvYWRiYWxhbmNldGVzdCBwb3J0PSRwb3J0IGxvYWRfYmFsYW5jZV9ob3N0cz1kaXNh YmxlIiwKLQkibG9hZF9iYWxhbmNlX2hvc3RzPWRpc2FibGUgY29ubmVjdHMgdG8gdGhlIGZpcnN0 IG5vZGUiLAotCXNxbCA9PiAiU0VMRUNUICdjb25uZWN0MSciLAotCWxvZ19saWtlID0+IFtxci9z dGF0ZW1lbnQ6IFNFTEVDVCAnY29ubmVjdDEnL10pOwotCi0KLSMgU3RhdGlzdGljYWxseSB0aGUg Zm9sbG93aW5nIGxvb3Agd2l0aCBsb2FkX2JhbGFuY2VfaG9zdHM9cmFuZG9tIHdpbGwgYWxtb3N0 Ci0jIGNlcnRhaW5seSBjb25uZWN0IGF0IGxlYXN0IG9uY2UgdG8gZWFjaCBvZiB0aGUgbm9kZXMu IFRoZSBjaGFuY2Ugb2YgdGhhdCBub3QKLSMgaGFwcGVuaW5nIGlzIHNvIHNtYWxsIHRoYXQgaXQn cyBuZWdsaWdpYmxlOiAoMi8zKV41MCA9IDEuNTY4MzI4NTVlLTkKLWZvcmVhY2ggbXkgJGkgKDEg Li4gNTApCi17Ci0JJG5vZGUxLT5jb25uZWN0X29rKAotCQkiaG9zdD1wZy1sb2FkYmFsYW5jZXRl c3QgcG9ydD0kcG9ydCBsb2FkX2JhbGFuY2VfaG9zdHM9cmFuZG9tIiwKLQkJInJlcGVhdGVkIGNv bm5lY3Rpb25zIHdpdGggcmFuZG9tIGxvYWQgYmFsYW5jaW5nIiwKLQkJc3FsID0+ICJTRUxFQ1Qg J2Nvbm5lY3QyJyIpOwotfQotCi1teSAkbm9kZTFfb2NjdXJyZW5jZXMgPSAoKSA9Ci0gICRub2Rl MS0+bG9nX2NvbnRlbnQoKSA9fiAvc3RhdGVtZW50OiBTRUxFQ1QgJ2Nvbm5lY3QyJy9nOwotbXkg JG5vZGUyX29jY3VycmVuY2VzID0gKCkgPQotICAkbm9kZTItPmxvZ19jb250ZW50KCkgPX4gL3N0 YXRlbWVudDogU0VMRUNUICdjb25uZWN0MicvZzsKLW15ICRub2RlM19vY2N1cnJlbmNlcyA9ICgp ID0KLSAgJG5vZGUzLT5sb2dfY29udGVudCgpID1+IC9zdGF0ZW1lbnQ6IFNFTEVDVCAnY29ubmVj dDInL2c7Ci0KLW15ICR0b3RhbF9vY2N1cnJlbmNlcyA9Ci0gICRub2RlMV9vY2N1cnJlbmNlcyAr ICRub2RlMl9vY2N1cnJlbmNlcyArICRub2RlM19vY2N1cnJlbmNlczsKLQotY21wX29rKCRub2Rl MV9vY2N1cnJlbmNlcywgJz4nLCAxLAotCSJyZWNlaXZlZCBhdCBsZWFzdCBvbmUgY29ubmVjdGlv biBvbiBub2RlMSIpOwotY21wX29rKCRub2RlMl9vY2N1cnJlbmNlcywgJz4nLCAxLAotCSJyZWNl aXZlZCBhdCBsZWFzdCBvbmUgY29ubmVjdGlvbiBvbiBub2RlMiIpOwotY21wX29rKCRub2RlM19v Y2N1cnJlbmNlcywgJz4nLCAxLAotCSJyZWNlaXZlZCBhdCBsZWFzdCBvbmUgY29ubmVjdGlvbiBv biBub2RlMyIpOwotaXMoJHRvdGFsX29jY3VycmVuY2VzLCA1MCwgInJlY2VpdmVkIDUwIGNvbm5l Y3Rpb25zIGFjcm9zcyBhbGwgbm9kZXMiKTsKLQotJG5vZGUxLT5zdG9wKCk7Ci0kbm9kZTItPnN0 b3AoKTsKLQotIyBsb2FkX2JhbGFuY2VfaG9zdHM9ZGlzYWJsZSBzaG91bGQgY29udGludWUgdHJ5 aW5nIGhvc3RzIHVudGlsIGl0IGZpbmRzIGEKLSMgd29ya2luZyBvbmUuCi0kbm9kZTMtPmNvbm5l Y3Rfb2soCi0JImhvc3Q9cGctbG9hZGJhbGFuY2V0ZXN0IHBvcnQ9JHBvcnQgbG9hZF9iYWxhbmNl X2hvc3RzPWRpc2FibGUiLAotCSJsb2FkX2JhbGFuY2VfaG9zdHM9ZGlzYWJsZSBjb250aW51ZXMg dW50aWwgaXQgY29ubmVjdHMgdG8gdGhlIGEgd29ya2luZyBub2RlIiwKLQlzcWwgPT4gIlNFTEVD VCAnY29ubmVjdDMnIiwKLQlsb2dfbGlrZSA9PiBbcXIvc3RhdGVtZW50OiBTRUxFQ1QgJ2Nvbm5l Y3QzJy9dKTsKLQotIyBBbHNvIHdpdGggbG9hZF9iYWxhbmNlX2hvc3RzPXJhbmRvbSB3ZSBjb250 aW51ZSB0byB0aGUgbmV4dCBub2RlcyBpZiBwcmV2aW91cwotIyBvbmVzIGFyZSBkb3duLiBDb25u ZWN0IGEgZmV3IHRpbWVzIHRvIG1ha2Ugc3VyZSBpdCdzIG5vdCBqdXN0IGx1Y2t5LgotZm9yZWFj aCBteSAkaSAoMSAuLiA1KQotewotCSRub2RlMy0+Y29ubmVjdF9vaygKLQkJImhvc3Q9cGctbG9h ZGJhbGFuY2V0ZXN0IHBvcnQ9JHBvcnQgbG9hZF9iYWxhbmNlX2hvc3RzPXJhbmRvbSIsCi0JCSJs b2FkX2JhbGFuY2VfaG9zdHM9cmFuZG9tIGNvbnRpbnVlcyB1bnRpbCBpdCBjb25uZWN0cyB0byB0 aGUgYSB3b3JraW5nIG5vZGUiLAotCQlzcWwgPT4gIlNFTEVDVCAnY29ubmVjdDQnIiwKLQkJbG9n X2xpa2UgPT4gW3FyL3N0YXRlbWVudDogU0VMRUNUICdjb25uZWN0NCcvXSk7Ci19Ci0KLWRvbmVf dGVzdGluZygpOwotLSAKMi41Mi4wCgo= --fe7bb479ab816b2671d62b71f2a30d169d1061179a59e42a904c0319224d Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v8-0006-WIP-pytest-Add-some-SSL-client-tests.patch Content-Type: text/x-patch; charset=utf-8; name=v8-0006-WIP-pytest-Add-some-SSL-client-tests.patch RnJvbSBjYzU4OTdiYjc5Yjc4ZmRmZmJlMGI5OTkzYjc3NWMwYzQ1NTNhNGNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogVHVlLCAxNiBEZWMgMjAyNSAwOTozMDo1NSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjggNi83XSBXSVA6IHB5dGVzdDogQWRkIHNvbWUgU1NMIGNsaWVudCB0ZXN0cwoK VGhpcyBpcyBhIHNhbXBsZSBjbGllbnQtb25seSB0ZXN0IHN1aXRlLiBJdCB0ZXN0cyBzb21lIGhh bmRzaGFrZQpmYWlsdXJlcyBhZ2FpbnN0IGEgbW9jayBzZXJ2ZXIsIGFzIHdlbGwgYXMgYSBmdWxs IFNTTCBoYW5kc2hha2UgKyBlbXB0eQpxdWVyeSArIHJlc3BvbnNlLgoKcHljYS9jcnlwdG9ncmFw aHkgaXMgYWRkZWQgYXMgYSBuZXcgcGFja2FnZSBkZXBlbmRlbmN5LiBDZXJ0aWZpY2F0ZXMgZm9y CnRlc3RpbmcgYXJlIGdlbmVyYXRlZCBvbiB0aGUgZmx5LgoKVGhlIG1vY2sgZGVzaWduIGlzIHRo cmVhZGVkOiB0aGUgc2VydmVyIHNvY2tldCBpcyBsaXN0ZW5pbmcgb24gYQpiYWNrZ3JvdW5kIHRo cmVhZCwgYW5kIHRoZSB0ZXN0IHByb3ZpZGVzIHRoZSBzZXJ2ZXIgbG9naWMgdmlhIGEKY2FsbGJh Y2suIFRoZXJlIGlzIHNvbWUgYWRkaXRpb25hbCB3b3JrIHN0aWxsIG5lZWRlZCB0byBtYWtlIHRo aXMKcHJvZHVjdGlvbi1yZWFkeTsgc2VlIHRoZSBub3RlcyBmb3IgX1RDUFNlcnZlci5iYWNrZ3Jv dW5kKCkuIChDdXJyZW50bHksCmFuIGV4Y2VwdGlvbiBpbiB0aGUgd3JvbmcgcGxhY2UgY291bGQg cmVzdWx0IGluIGEgaGFuZy11bnRpbC10aW1lb3V0CnJhdGhlciB0aGFuIGFuIGltbWVkaWF0ZSBm YWlsdXJlLikKClRPRE9zOgotIGxvY2FsX3NlcnZlciBhbmQgdGNwX3NlcnZlcl9jbGFzcyBhcmUg bmVhcmx5IGlkZW50aWNhbCBhbmQgc2hvdWxkCiAgc2hhcmUgY29kZS4KLSBmaXggZXhjZXB0aW9u LXJlbGF0ZWQgdGltZW91dHMgZm9yIC5iYWNrZ3JvdW5kKCkKLSBmaWd1cmUgb3V0IHRoZSBwcm9w ZXIgdXNlIG9mICJzZXNzaW9uIiB2cyAibW9kdWxlIiBzY29wZQotIGVuc3VyZSB0aGF0IHBxLmxp YnBxIHVud2luZHMgKHRvIGNsb3NlIGNvbm5lY3Rpb25zKSBiZWZvcmUgdGNwX3NlcnZlcjsKICBz ZWUgY29tbWVudCBpbiB0ZXN0X3NlcnZlcl93aXRoX3NzbF9kaXNhYmxlZCgpCi0tLQogLmNpcnJ1 cy50YXNrcy55bWwgICAgICAgICAgICAgICB8ICAgMiArCiBweXByb2plY3QudG9tbCAgICAgICAg ICAgICAgICAgIHwgICA4ICsKIHNyYy90ZXN0L3NzbC9NYWtlZmlsZSAgICAgICAgICAgfCAgIDIg Kwogc3JjL3Rlc3Qvc3NsL21lc29uLmJ1aWxkICAgICAgICB8ICAgNiArCiBzcmMvdGVzdC9zc2wv cHl0L2NvbmZ0ZXN0LnB5ICAgIHwgMTI4ICsrKysrKysrKysrKysrKwogc3JjL3Rlc3Qvc3NsL3B5 dC90ZXN0X2NsaWVudC5weSB8IDI3OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog NiBmaWxlcyBjaGFuZ2VkLCA0MjQgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy90ZXN0L3NzbC9weXQvY29uZnRlc3QucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9z c2wvcHl0L3Rlc3RfY2xpZW50LnB5CgpkaWZmIC0tZ2l0IGEvLmNpcnJ1cy50YXNrcy55bWwgYi8u Y2lycnVzLnRhc2tzLnltbAppbmRleCAzODhmNWM3NTU1Ni4uODYyMWRiNGE5YTkgMTAwNjQ0Ci0t LSBhLy5jaXJydXMudGFza3MueW1sCisrKyBiLy5jaXJydXMudGFza3MueW1sCkBAIC02NDcsNiAr NjQ3LDcgQEAgdGFzazoKICAgICBDSVJSVVNfV09SS0lOR19ESVI6ICR7SE9NRX0vcGdzcWwvCiAg ICAgQ0NBQ0hFX0RJUjogJHtIT01FfS9jY2FjaGUKICAgICBNQUNQT1JUU19DQUNIRTogJHtIT01F fS9tYWNwb3J0cy1jYWNoZQorICAgIFBZVEVTVF9ERUJVR19URU1QUk9PVDogL3RtcCAgIyBkZWZh dWx0IGlzIHRvbyBsb25nIGZvciBVTklYIHNvY2tldHMgb24gTWFjCiAKICAgICBNRVNPTl9GRUFU VVJFUzogPi0KICAgICAgIC1EYm9uam91cj1lbmFibGVkCkBAIC02NjcsNiArNjY4LDcgQEAgdGFz azoKICAgICAgIHA1LjM0LWlvLXR0eQogICAgICAgcDUuMzQtaXBjLXJ1bgogICAgICAgcHl0aG9u MzEyCisgICAgICBweTMxMi1jcnlwdG9ncmFwaHkKICAgICAgIHB5MzEyLXBhY2thZ2luZwogICAg ICAgcHkzMTItcHl0ZXN0CiAgICAgICB0Y2wKZGlmZiAtLWdpdCBhL3B5cHJvamVjdC50b21sIGIv cHlwcm9qZWN0LnRvbWwKaW5kZXggNDYyOGQyMjc0ZTAuLjAwYzhhZTg4NTgzIDEwMDY0NAotLS0g YS9weXByb2plY3QudG9tbAorKysgYi9weXByb2plY3QudG9tbApAQCAtMTIsNiArMTIsMTQgQEAg ZGVwZW5kZW5jaWVzID0gWwogICAgICMgQW55IG90aGVyIGRlcGVuZGVuY2llcyBhcmUgZWZmZWN0 aXZlbHkgb3B0aW9uYWwgKGFkZGVkIGJlbG93KS4gV2UgaW1wb3J0CiAgICAgIyB0aGVzZSBsaWJy YXJpZXMgdXNpbmcgcHl0ZXN0LmltcG9ydG9yc2tpcCgpLiBTbyB0ZXN0cyB3aWxsIGJlIHNraXBw ZWQgaWYKICAgICAjIHRoZXkgYXJlIG5vdCBhdmFpbGFibGUuCisKKyAgICAjIE5vdGVzIG9uIHRo ZSBjcnlwdG9ncmFwaHkgcGFja2FnZToKKyAgICAjIC0gMy4zLjIgaXMgc2hpcHBlZCBvbiBEZWJp YW4gYnVsbHNleWUuCisgICAgIyAtIDMuNC54IGRyb3BzIHN1cHBvcnQgZm9yIFB5dGhvbiAyLCBt YWtpbmcgaXQgYSB2ZXJzaW9uIG9mIG5vdGUgZm9yIG9sZGVyIExUUworICAgICMgICBkaXN0cm9z LgorICAgICMgLSAzNS54IHN3aXRjaGVkIHZlcnNpb25pbmcgc2NoZW1lcyBhbmQgbW92ZWQgdG8g UnVzdCBwYXJzaW5nLgorICAgICMgLSA0MC54IGlzIHRoZSBsYXN0IHZlcnNpb24gc3VwcG9ydGlu ZyBQeXRob24gMy42LgorICAgICJjcnlwdG9ncmFwaHkgPj0gMy4zLjIiLAogXQogCiBbdG9vbC5w eXRlc3QuaW5pX29wdGlvbnNdCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zc2wvTWFrZWZpbGUgYi9z cmMvdGVzdC9zc2wvTWFrZWZpbGUKaW5kZXggYWEwNjI5NDVmYjkuLjI4NzcyOWFkOWZiIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9zc2wvTWFrZWZpbGUKKysrIGIvc3JjL3Rlc3Qvc3NsL01ha2VmaWxl CkBAIC0zMCw2ICszMCw4IEBAIGNsZWFuIGRpc3RjbGVhbjoKICMgRG9lc24ndCBkZXBlbmQgb24g c3NsZmlsZXMgYmVjYXVzZSB3ZSBkb24ndCByZWJ1aWxkIHRoZW0gYnkgZGVmYXVsdAogY2hlY2s6 CiAJJChwcm92ZV9jaGVjaykKKwkjIFhYWCB0aGVzZSBzdWl0ZXMgc2hvdWxkIHJ1biBpbmRlcGVu ZGVudGx5LCBub3Qgc2VyaWFsbHkKKwkkKHB5dGVzdF9jaGVjaykKIAogaW5zdGFsbGNoZWNrOgog CSQocHJvdmVfaW5zdGFsbGNoZWNrKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3NsL21lc29uLmJ1 aWxkIGIvc3JjL3Rlc3Qvc3NsL21lc29uLmJ1aWxkCmluZGV4IDllNWJkYmI2MTM2Li42ZWMyNzRk ODE2NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3NsL21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0 L3NzbC9tZXNvbi5idWlsZApAQCAtMTUsNCArMTUsMTAgQEAgdGVzdHMgKz0gewogICAgICAgJ3Qv MDAzX3NzbGluZm8ucGwnLAogICAgIF0sCiAgIH0sCisgICdweXRlc3QnOiB7CisgICAgJ3Rlc3Rz JzogWworICAgICAgJ3B5dC90ZXN0X2NsaWVudC5weScsCisgICAgICAncHl0L3Rlc3Rfc2VydmVy LnB5JywKKyAgICBdLAorICB9LAogfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3NsL3B5dC9jb25m dGVzdC5weSBiL3NyYy90ZXN0L3NzbC9weXQvY29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg3MGY3MzhhYzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj L3Rlc3Qvc3NsL3B5dC9jb25mdGVzdC5weQpAQCAtMCwwICsxLDEyOCBAQAorIyBDb3B5cmlnaHQg KGMpIDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK2ltcG9ydCBk YXRldGltZQoraW1wb3J0IHJlCitpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0IHRlbXBmaWxlCitm cm9tIGNvbGxlY3Rpb25zIGltcG9ydCBuYW1lZHR1cGxlCisKK2ltcG9ydCBweXRlc3QKKworCitA cHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQorZGVmIGNyeXB0b2dyYXBoeSgpOgorICAg IHJldHVybiBweXRlc3QuaW1wb3J0b3Jza2lwKCJjcnlwdG9ncmFwaHkiLCAiMy4zLjIiKQorCisK K0NlcnQgPSBuYW1lZHR1cGxlKCJDZXJ0IiwgImNlcnQsIGNlcnRwYXRoLCBrZXksIGtleXBhdGgi KQorCisKK0BweXRlc3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIpCitkZWYgY2VydHMoY3J5cHRv Z3JhcGh5LCB0bXBfcGF0aF9mYWN0b3J5KToKKyAgICAiIiIKKyAgICBDYWNoZXMgY29tbW9ubHkg dXNlZCBjZXJ0aWZpY2F0ZXMgYXQgdGhlIHNlc3Npb24gbGV2ZWwsIGFuZCBwcm92aWRlcyBhIHdh eQorICAgIHRvIGNyZWF0ZSBuZXcgb25lcy4KKworICAgIC0gY2VydHMuY2E6IHRoZSByb290IENB IGNlcnRpZmljYXRlCisKKyAgICAtIGNlcnRzLnNlcnZlcjogdGhlICJzdGFuZGFyZCIgc2VydmVy IGNlcnRmaWNhdGUsIHNpZ25lZCBieSBjZXJ0cy5jYQorCisgICAgLSBjZXJ0cy5zZXJ2ZXJfaG9z dDogdGhlIGhvc3RuYW1lIG9mIHRoZSBjZXJ0cy5zZXJ2ZXIgY2VydGlmaWNhdGUKKworICAgIC0g Y2VydHMubmV3KCk6IGNyZWF0ZXMgYSBjdXN0b20gY2VydGlmaWNhdGUsIHNpZ25lZCBieSBjZXJ0 cy5jYQorICAgICIiIgorCisgICAgZnJvbSBjcnlwdG9ncmFwaHkgaW1wb3J0IHg1MDkKKyAgICBm cm9tIGNyeXB0b2dyYXBoeS5oYXptYXQucHJpbWl0aXZlcyBpbXBvcnQgaGFzaGVzLCBzZXJpYWxp emF0aW9uCisgICAgZnJvbSBjcnlwdG9ncmFwaHkuaGF6bWF0LnByaW1pdGl2ZXMuYXN5bW1ldHJp YyBpbXBvcnQgcnNhCisgICAgZnJvbSBjcnlwdG9ncmFwaHkueDUwOS5vaWQgaW1wb3J0IE5hbWVP SUQKKworICAgIHRtcGRpciA9IHRtcF9wYXRoX2ZhY3RvcnkubWt0ZW1wKCJ0ZXN0LWNlcnRzIikK KworICAgIGNsYXNzIF9DZXJ0czoKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAg ICAgICAgc2VsZi5jYSA9IHNlbGYubmV3KAorICAgICAgICAgICAgICAgIHg1MDkuTmFtZSgKKyAg ICAgICAgICAgICAgICAgICAgW3g1MDkuTmFtZUF0dHJpYnV0ZShOYW1lT0lELkNPTU1PTl9OQU1F LCAiUEcgcHl0ZXN0IENBIildLAorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAg Y2E9VHJ1ZSwKKyAgICAgICAgICAgICkKKworICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaG9zdCA9 ICJleGFtcGxlLm9yZyIKKyAgICAgICAgICAgIHNlbGYuc2VydmVyID0gc2VsZi5uZXcoCisgICAg ICAgICAgICAgICAgeDUwOS5OYW1lKAorICAgICAgICAgICAgICAgICAgICBbeDUwOS5OYW1lQXR0 cmlidXRlKE5hbWVPSUQuQ09NTU9OX05BTUUsIHNlbGYuc2VydmVyX2hvc3QpXSwKKyAgICAgICAg ICAgICAgICApCisgICAgICAgICAgICApCisKKyAgICAgICAgZGVmIG5ldyhzZWxmLCBzdWJqZWN0 OiB4NTA5Lk5hbWUsICosIGNhPUZhbHNlKSAtPiBDZXJ0OgorICAgICAgICAgICAgIiIiCisgICAg ICAgICAgICBDcmVhdGVzIGFuZCBzaWducyBhIG5ldyBDZXJ0IHdpdGggdGhlIGdpdmVuIHN1Ympl Y3QgbmFtZS4gSWYgY2EgaXMKKyAgICAgICAgICAgIFRydWUsIHRoZSBjZXJ0aWZpY2F0ZSB3aWxs IGJlIHNlbGYtc2lnbmVkOyBvdGhlcndpc2UgdGhlIGNlcnRpZmljYXRlCisgICAgICAgICAgICBp cyBzaWduZWQgYnkgc2VsZi5jYS4KKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAga2V5ID0g cnNhLmdlbmVyYXRlX3ByaXZhdGVfa2V5KAorICAgICAgICAgICAgICAgIHB1YmxpY19leHBvbmVu dD02NTUzNywKKyAgICAgICAgICAgICAgICBrZXlfc2l6ZT0yMDQ4LAorICAgICAgICAgICAgKQor CisgICAgICAgICAgICBidWlsZGVyID0geDUwOS5DZXJ0aWZpY2F0ZUJ1aWxkZXIoKQorICAgICAg ICAgICAgbm93ID0gZGF0ZXRpbWUuZGF0ZXRpbWUubm93KGRhdGV0aW1lLnRpbWV6b25lLnV0YykK KworICAgICAgICAgICAgYnVpbGRlciA9ICgKKyAgICAgICAgICAgICAgICBidWlsZGVyLnN1Ympl Y3RfbmFtZShzdWJqZWN0KQorICAgICAgICAgICAgICAgIC5wdWJsaWNfa2V5KGtleS5wdWJsaWNf a2V5KCkpCisgICAgICAgICAgICAgICAgLnNlcmlhbF9udW1iZXIoeDUwOS5yYW5kb21fc2VyaWFs X251bWJlcigpKQorICAgICAgICAgICAgICAgIC5ub3RfdmFsaWRfYmVmb3JlKG5vdykKKyAgICAg ICAgICAgICAgICAubm90X3ZhbGlkX2FmdGVyKG5vdyArIGRhdGV0aW1lLnRpbWVkZWx0YShob3Vy cz0xKSkKKyAgICAgICAgICAgICkKKworICAgICAgICAgICAgaWYgY2E6CisgICAgICAgICAgICAg ICAgYnVpbGRlciA9IGJ1aWxkZXIuaXNzdWVyX25hbWUoc3ViamVjdCkKKyAgICAgICAgICAgIGVs c2U6CisgICAgICAgICAgICAgICAgYnVpbGRlciA9IGJ1aWxkZXIuaXNzdWVyX25hbWUoc2VsZi5j YS5jZXJ0LnN1YmplY3QpCisKKyAgICAgICAgICAgIGJ1aWxkZXIgPSBidWlsZGVyLmFkZF9leHRl bnNpb24oCisgICAgICAgICAgICAgICAgeDUwOS5CYXNpY0NvbnN0cmFpbnRzKGNhPWNhLCBwYXRo X2xlbmd0aD1Ob25lKSwKKyAgICAgICAgICAgICAgICBjcml0aWNhbD1UcnVlLAorICAgICAgICAg ICAgKQorCisgICAgICAgICAgICBjZXJ0ID0gYnVpbGRlci5zaWduKAorICAgICAgICAgICAgICAg IHByaXZhdGVfa2V5PWtleSBpZiBjYSBlbHNlIHNlbGYuY2Eua2V5LAorICAgICAgICAgICAgICAg IGFsZ29yaXRobT1oYXNoZXMuU0hBMjU2KCksCisgICAgICAgICAgICApCisKKyAgICAgICAgICAg ICMgRHVtcCB0aGUgY2VydGlmaWNhdGUgYW5kIGtleSB0byBmaWxlLgorICAgICAgICAgICAga2V5 cGF0aCA9IHNlbGYuX3RvZmlsZSgKKyAgICAgICAgICAgICAgICBrZXkucHJpdmF0ZV9ieXRlcygK KyAgICAgICAgICAgICAgICAgICAgc2VyaWFsaXphdGlvbi5FbmNvZGluZy5QRU0sCisgICAgICAg ICAgICAgICAgICAgIHNlcmlhbGl6YXRpb24uUHJpdmF0ZUZvcm1hdC5QS0NTOCwKKyAgICAgICAg ICAgICAgICAgICAgc2VyaWFsaXphdGlvbi5Ob0VuY3J5cHRpb24oKSwKKyAgICAgICAgICAgICAg ICApLAorICAgICAgICAgICAgICAgIHN1ZmZpeD0iLmtleSIsCisgICAgICAgICAgICApCisgICAg ICAgICAgICBjZXJ0cGF0aCA9IHNlbGYuX3RvZmlsZSgKKyAgICAgICAgICAgICAgICBjZXJ0LnB1 YmxpY19ieXRlcyhzZXJpYWxpemF0aW9uLkVuY29kaW5nLlBFTSksCisgICAgICAgICAgICAgICAg c3VmZml4PSItY2EuY3J0IiBpZiBjYSBlbHNlICIuY3J0IiwKKyAgICAgICAgICAgICkKKworICAg ICAgICAgICAgcmV0dXJuIENlcnQoCisgICAgICAgICAgICAgICAgY2VydD1jZXJ0LAorICAgICAg ICAgICAgICAgIGNlcnRwYXRoPWNlcnRwYXRoLAorICAgICAgICAgICAgICAgIGtleT1rZXksCisg ICAgICAgICAgICAgICAga2V5cGF0aD1rZXlwYXRoLAorICAgICAgICAgICAgKQorCisgICAgICAg IGRlZiBfdG9maWxlKHNlbGYsIGRhdGE6IGJ5dGVzLCAqLCBzdWZmaXgpIC0+IHN0cjoKKyAgICAg ICAgICAgICIiIgorICAgICAgICAgICAgRHVtcHMgZGF0YSB0byBhIGZpbGUgb24gZGlzayB3aXRo IHRoZSByZXF1ZXN0ZWQgc3VmZml4IGFuZCByZXR1cm5zCisgICAgICAgICAgICB0aGUgcGF0aC4g VGhlIGZpbGUgaXMgbG9jYXRlZCBzb21ld2hlcmUgaW4gcHl0ZXN0J3MgdGVtcG9yYXJ5CisgICAg ICAgICAgICBkaXJlY3Rvcnkgcm9vdC4KKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgZiA9 IHRlbXBmaWxlLk5hbWVkVGVtcG9yYXJ5RmlsZShzdWZmaXg9c3VmZml4LCBkaXI9dG1wZGlyLCBk ZWxldGU9RmFsc2UpCisgICAgICAgICAgICB3aXRoIGY6CisgICAgICAgICAgICAgICAgZi53cml0 ZShkYXRhKQorCisgICAgICAgICAgICByZXR1cm4gZi5uYW1lCisKKyAgICByZXR1cm4gX0NlcnRz KCkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3NzbC9weXQvdGVzdF9jbGllbnQucHkgYi9zcmMvdGVz dC9zc2wvcHl0L3Rlc3RfY2xpZW50LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi41NTZiYWQzM2JmOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3NzbC9weXQv dGVzdF9jbGllbnQucHkKQEAgLTAsMCArMSwyNzggQEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1LCBQ b3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCitpbXBvcnQgY29udGV4dGxpYgor aW1wb3J0IGN0eXBlcworaW1wb3J0IHNvY2tldAoraW1wb3J0IHNzbAoraW1wb3J0IHN0cnVjdAor aW1wb3J0IHRocmVhZGluZworZnJvbSB0eXBpbmcgaW1wb3J0IENhbGxhYmxlCisKK2ltcG9ydCBw eXRlc3QKKworaW1wb3J0IHB5cGcKK2Zyb20gbGlicHEgaW1wb3J0IExpYnBxRXJyb3IsIEV4ZWNT dGF0dXMKKworIyBUaGlzIHN1aXRlIG9wZW5zIHVwIGxvY2FsIFRDUCBwb3J0cyBhbmQgaXMgaGlk ZGVuIGJlaGluZCBQR19URVNUX0VYVFJBPXNzbC4KK3B5dGVzdG1hcmsgPSBweXBnLnJlcXVpcmVf dGVzdF9leHRyYXMoInNzbCIpCisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIiwg YXV0b3VzZT1UcnVlKQorZGVmIHNraXBfaWZfbm9fc3NsX3N1cHBvcnQobGlicHFfaGFuZGxlKToK KyAgICAiIiJTa2lwcyB0ZXN0cyBpZiBTU0wgc3VwcG9ydCBpcyBub3QgY29uZmlndXJlZC4iIiIK KworICAgICMgRGVjbGFyZSBQUXNzbEF0dHJpYnV0ZSgpLgorICAgIFBRc3NsQXR0cmlidXRlID0g bGlicHFfaGFuZGxlLlBRc3NsQXR0cmlidXRlCisgICAgUFFzc2xBdHRyaWJ1dGUucmVzdHlwZSA9 IGN0eXBlcy5jX2NoYXJfcAorICAgIFBRc3NsQXR0cmlidXRlLmFyZ3R5cGVzID0gW2N0eXBlcy5j X3ZvaWRfcCwgY3R5cGVzLmNfY2hhcl9wXQorCisgICAgaWYgbm90IFBRc3NsQXR0cmlidXRlKE5v bmUsIGIibGlicmFyeSIpOgorICAgICAgICBweXRlc3Quc2tpcCgicmVxdWlyZXMgU1NMIHN1cHBv cnQgdG8gYmUgY29uZmlndXJlZCIpCisKKworIworIyBUZXN0IEZpeHR1cmVzCisjCisKKworQHB5 dGVzdC5maXh0dXJlCitkZWYgdGNwX3NlcnZlcl9jbGFzcyhyZW1haW5pbmdfdGltZW91dCk6Cisg ICAgIiIiCisgICAgTWV0YWZpeHR1cmUgdG8gY29tYmluZSByZWxhdGVkIGxvZ2ljIGZvciB0Y3Bf c2VydmVyIGFuZCBzc2xfc2VydmVyLgorCisgICAgVE9ETzogY29tYmluZSB3aXRoIHRlc3RfbGli cHEubG9jYWxfc2VydmVyCisgICAgIiIiCisKKyAgICBjbGFzcyBfVENQU2VydmVyKGNvbnRleHRs aWIuRXhpdFN0YWNrKToKKyAgICAgICAgIiIiCisgICAgICAgIEltcGxlbWVudGF0aW9uIGNsYXNz IGZvciB0Y3Bfc2VydmVyLiBTZWUgLmJhY2tncm91bmQoKSBmb3IgdGhlIHByaW1hcnkKKyAgICAg ICAgZW50cnkgcG9pbnQgZm9yIHRlc3RzLiBQb3N0Z3JlcyBjbGllbnRzIG1heSBjb25uZWN0IHRv IHRoaXMgc2VydmVyIHZpYQorICAgICAgICAqKnRjcF9zZXJ2ZXIuY29ubmluZm8uCisKKyAgICAg ICAgX1RDUFNlcnZlciBkZXJpdmVzIGZyb20gY29udGV4dGxpYi5FeGl0U3RhY2sgdG8gcHJvdmlk ZSBlYXN5IGNsZWFudXAgb2YKKyAgICAgICAgYXNzb2NpYXRlZCByZXNvdXJjZXM7IHNlZSB0aGUg ZG9jdW1lbnRhdGlvbiBmb3IgdGhhdCBjbGFzcyBmb3IgYSBmdWxsCisgICAgICAgIGV4cGxhbmF0 aW9uLgorICAgICAgICAiIiIKKworICAgICAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAg ICAgICBzdXBlcigpLl9faW5pdF9fKCkKKworICAgICAgICAgICAgc2VsZi5fdGhyZWFkID0gTm9u ZQorICAgICAgICAgICAgc2VsZi5fdGhyZWFkX2V4YyA9IE5vbmUKKyAgICAgICAgICAgIHNlbGYu X2xpc3RlbmVyID0gc2VsZi5lbnRlcl9jb250ZXh0KAorICAgICAgICAgICAgICAgIHNvY2tldC5z b2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSksCisgICAgICAgICAgICAp CisKKyAgICAgICAgICAgIHNlbGYuX2JpbmRfYW5kX2xpc3RlbigpCisgICAgICAgICAgICBzb2Nr bmFtZSA9IHNlbGYuX2xpc3RlbmVyLmdldHNvY2tuYW1lKCkKKyAgICAgICAgICAgIHNlbGYuY29u bmluZm8gPSBkaWN0KAorICAgICAgICAgICAgICAgIGhvc3RhZGRyPXNvY2tuYW1lWzBdLAorICAg ICAgICAgICAgICAgIHBvcnQ9c29ja25hbWVbMV0sCisgICAgICAgICAgICApCisKKyAgICAgICAg ZGVmIF9iaW5kX2FuZF9saXN0ZW4oc2VsZik6CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAg IERvZXMgdGhlIGFjdHVhbCB3b3JrIG9mIGJpbmRpbmcgdGhlIHNvY2tldCBhbmQgbGlzdGVuaW5n IGZvcgorICAgICAgICAgICAgY29ubmVjdGlvbnMuCisKKyAgICAgICAgICAgIFRoZSBsaXN0ZW4g YmFja2xvZyBpcyBjdXJyZW50bHkgaGFyZGNvZGVkIHRvIG9uZS4KKyAgICAgICAgICAgICIiIgor ICAgICAgICAgICAgc2VsZi5fbGlzdGVuZXIuYmluZCgoIjEyNy4wLjAuMSIsIDApKQorICAgICAg ICAgICAgc2VsZi5fbGlzdGVuZXIubGlzdGVuKDEpCisKKyAgICAgICAgZGVmIGJhY2tncm91bmQo c2VsZiwgZm46IENhbGxhYmxlW1tzb2NrZXQuc29ja2V0XSwgTm9uZV0pIC0+IE5vbmU6CisgICAg ICAgICAgICAiIiIKKyAgICAgICAgICAgIEFjY2VwdHMgYSBjbGllbnQgY29ubmVjdGlvbiBvbiBh IGJhY2tncm91bmQgdGhyZWFkIGFuZCBwYXNzZXMgaXQgdG8KKyAgICAgICAgICAgIHRoZSBwcm92 aWRlZCBjYWxsYmFjay4gQW55IGV4Y2VwdGlvbnMgcmFpc2VkIGZyb20gdGhlIGNhbGxiYWNrIHdp bGwKKyAgICAgICAgICAgIGJlIHJlLXJhaXNlZCBvbiB0aGUgbWFpbiB0aHJlYWQgZHVyaW5nIGZp eHR1cmUgdGVhcmRvd24uCisKKyAgICAgICAgICAgIEJsb2NraW5nIG9wZXJhdGlvbnMgb24gdGhl IGNvbm5lY3RlZCBzb2NrZXQgZGVmYXVsdCB0byB1c2luZyB0aGUKKyAgICAgICAgICAgIHJlbWFp bmluZ190aW1lb3V0KCksIHRob3VnaCB0aGlzIGNhbiBiZSBjaGFuZ2VkIGJ5IHRoZSB0ZXN0IHZp YSB0aGUKKyAgICAgICAgICAgIHNvY2tldCdzIC5zZXR0aW1lb3V0KCkuCisgICAgICAgICAgICAi IiIKKworICAgICAgICAgICAgZGVmIF9iZygpOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAg ICAgICAgICAgICAgICAgc2VsZi5fbGlzdGVuZXIuc2V0dGltZW91dChyZW1haW5pbmdfdGltZW91 dCgpKQorICAgICAgICAgICAgICAgICAgICBzb2NrLCBfID0gc2VsZi5fbGlzdGVuZXIuYWNjZXB0 KCkKKworICAgICAgICAgICAgICAgICAgICB3aXRoIHNvY2s6CisgICAgICAgICAgICAgICAgICAg ICAgICBzb2NrLnNldHRpbWVvdXQocmVtYWluaW5nX3RpbWVvdXQoKSkKKyAgICAgICAgICAgICAg ICAgICAgICAgIGZuKHNvY2spCisKKyAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFz IGU6CisgICAgICAgICAgICAgICAgICAgICMgU2F2ZSB0aGUgZXhjZXB0aW9uIGZvciByZS1yYWlz aW5nIG9uIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fdGhyZWFk X2V4YyA9IGUKKworICAgICAgICAgICAgIyBUT0RPOiByYXRoZXIgdGhhbiB1c2luZyBjYWxsYmFj aygpLCBjb25zaWRlciBleHBsaWNpdGx5IHNpZ25hbGluZworICAgICAgICAgICAgIyB0aGUgZm4o KSBpbXBsZW1lbnRhdGlvbiB0byBzdG9wIGVhcmx5IGlmIHdlIGdldCBhbiBleGNlcHRpb24uCisg ICAgICAgICAgICAjIE90aGVyd2lzZSB3ZSdsbCBoYW5nIHVudGlsIHRoZSBlbmQgb2YgdGhlIHRp bWVvdXQuCisgICAgICAgICAgICBzZWxmLl90aHJlYWQgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdl dD1fYmcpCisgICAgICAgICAgICBzZWxmLmNhbGxiYWNrKHNlbGYuX2pvaW4pCisKKyAgICAgICAg ICAgIHNlbGYuX3RocmVhZC5zdGFydCgpCisKKyAgICAgICAgZGVmIF9qb2luKHNlbGYpOgorICAg ICAgICAgICAgIiIiCisgICAgICAgICAgICBXYWl0cyBmb3IgdGhlIGJhY2tncm91bmQgdGhyZWFk IHRvIGZpbmlzaCBhbmQgcmFpc2VzIGFueSB0aHJvd24KKyAgICAgICAgICAgIGV4Y2VwdGlvbi4g VGhpcyBpcyBjYWxsZWQgZHVyaW5nIGZpeHR1cmUgdGVhcmRvd24uCisgICAgICAgICAgICAiIiIK KyAgICAgICAgICAgICMgR2l2ZSBhIGxpdHRsZSBiaXQgb2Ygd2lnZ2xlIHJvb20gb24gdGhlIGpv aW4gdGltZW91dCwgc2luY2Ugd2UncmUKKyAgICAgICAgICAgICMgcmFjaW5nIGFnYWluc3QgdGhl IHRlc3QncyBvd24gdXNlIG9mIHJlbWFpbmluZ190aW1lb3V0KCkuIChJdCdzCisgICAgICAgICAg ICAjIHByZWZlcmFibGUgdG8gbGV0IHRlc3RzIHJlcG9ydCB0aW1lb3V0czsgdGhlIHN0YWNrIHRy YWNlcyB3aWxsCisgICAgICAgICAgICAjIGhlbHAgd2l0aCBkZWJ1Z2dpbmcuKQorICAgICAgICAg ICAgc2VsZi5fdGhyZWFkLmpvaW4ocmVtYWluaW5nX3RpbWVvdXQoKSArIDEpCisgICAgICAgICAg ICBpZiBzZWxmLl90aHJlYWQuaXNfYWxpdmUoKToKKyAgICAgICAgICAgICAgICByYWlzZSBUaW1l b3V0RXJyb3IoImJhY2tncm91bmQgdGhyZWFkIGlzIHN0aWxsIHJ1bm5pbmcgYWZ0ZXIgdGltZW91 dCIpCisKKyAgICAgICAgICAgIGlmIHNlbGYuX3RocmVhZF9leGMgaXMgbm90IE5vbmU6CisgICAg ICAgICAgICAgICAgcmFpc2Ugc2VsZi5fdGhyZWFkX2V4YworCisgICAgcmV0dXJuIF9UQ1BTZXJ2 ZXIKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiB0Y3Bfc2VydmVyKHRjcF9zZXJ2ZXJfY2xhc3Mp OgorICAgICIiIgorICAgIE9wZW5zIHVwIGEgbG9jYWwgVENQIHNvY2tldCBmb3IgbW9ja2luZyBh IFBvc3RncmVzIHNlcnZlciBvbiBhIGJhY2tncm91bmQKKyAgICB0aHJlYWQuIFNlZSB0aGUgX1RD UFNlcnZlciBBUEkgZm9yIHVzYWdlLgorICAgICIiIgorICAgIHdpdGggdGNwX3NlcnZlcl9jbGFz cygpIGFzIHM6CisgICAgICAgIHlpZWxkIHMKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBzc2xf c2VydmVyKHRjcF9zZXJ2ZXJfY2xhc3MsIGNlcnRzKToKKyAgICAiIiIKKyAgICBMaWtlIHRjcF9z ZXJ2ZXIsIGJ1dCB3aXRoIGFuIGFkZGl0aW9uYWwgLmJhY2tncm91bmRfc3NsKCkgbWV0aG9kIHdo aWNoIHdpbGwKKyAgICBwZXJmb3JtIGEgU1NMUmVxdWVzdCBoYW5kc2hha2Ugb24gdGhlIHNvY2tl dCBiZWZvcmUgaGFuZGluZyB0aGUgY29ubmVjdGlvbgorICAgIHRvIHRoZSB0ZXN0IGNhbGxiYWNr LgorCisgICAgVGhpcyBzZXJ2ZXIgdXNlcyBjZXJ0cy5zZXJ2ZXIgYXMgaXRzIGlkZW50aXR5Lgor ICAgICIiIgorCisgICAgY2xhc3MgX1NTTFNlcnZlcih0Y3Bfc2VydmVyX2NsYXNzKToKKyAgICAg ICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygpCisK KyAgICAgICAgICAgIHNlbGYuY29ubmluZm9bImhvc3QiXSA9IGNlcnRzLnNlcnZlcl9ob3N0CisK KyAgICAgICAgICAgIHNlbGYuX2N0eCA9IHNzbC5TU0xDb250ZXh0KHNzbC5QUk9UT0NPTF9UTFNf U0VSVkVSKQorICAgICAgICAgICAgc2VsZi5fY3R4LmxvYWRfY2VydF9jaGFpbihjZXJ0cy5zZXJ2 ZXIuY2VydHBhdGgsIGNlcnRzLnNlcnZlci5rZXlwYXRoKQorCisgICAgICAgIGRlZiBiYWNrZ3Jv dW5kX3NzbChzZWxmLCBmbjogQ2FsbGFibGVbW3NzbC5TU0xTb2NrZXRdLCBOb25lXSkgLT4gTm9u ZToKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgSW52b2tlcyBhIHNlcnZlciBjYWxsYmFj ayBhcyB3aXRoIC5iYWNrZ3JvdW5kKCksIGJ1dCBhbiBTU0xSZXF1ZXN0CisgICAgICAgICAgICBo YW5kc2hha2UgaXMgcGVyZm9ybWVkIGZpcnN0LCBhbmQgdGhlIHNvY2tldCBwcm92aWRlZCB0byB0 aGUKKyAgICAgICAgICAgIGNhbGxiYWNrIGhhcyBiZWVuIHdyYXBwZWQgaW4gYW4gT3BlblNTTCBs YXllci4KKyAgICAgICAgICAgICIiIgorCisgICAgICAgICAgICBkZWYgaGFuZHNoYWtlKHM6IHNv Y2tldC5zb2NrZXQpOgorICAgICAgICAgICAgICAgIHBrdGxlbiA9IHN0cnVjdC51bnBhY2soIiFJ Iiwgcy5yZWN2KDQpKVswXQorCisgICAgICAgICAgICAgICAgIyBNYWtlIHN1cmUgd2UgZ2V0IGFu IFNTTFJlcXVlc3QuCisgICAgICAgICAgICAgICAgdmVyc2lvbiA9IHN0cnVjdC51bnBhY2soIiFI SCIsIHMucmVjdig0KSkKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmVyc2lvbiA9PSAoMTIzNCwg NTY3OSkKKyAgICAgICAgICAgICAgICBhc3NlcnQgcGt0bGVuID09IDgKKworICAgICAgICAgICAg ICAgICMgQWNjZXB0IHRoZSBTU0xSZXF1ZXN0LgorICAgICAgICAgICAgICAgIHMuc2VuZChiIlMi KQorCisgICAgICAgICAgICAgICAgd2l0aCBzZWxmLl9jdHgud3JhcF9zb2NrZXQocywgc2VydmVy X3NpZGU9VHJ1ZSkgYXMgd3JhcHBlZDoKKyAgICAgICAgICAgICAgICAgICAgZm4od3JhcHBlZCkK KworICAgICAgICAgICAgc2VsZi5iYWNrZ3JvdW5kKGhhbmRzaGFrZSkKKworICAgIHdpdGggX1NT TFNlcnZlcigpIGFzIHM6CisgICAgICAgIHlpZWxkIHMKKworCisjCisjIFRlc3RzCisjCisKKwor QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJzc2xtb2RlIiwgKCJyZXF1aXJlIiwgInZlcmlmeS1j YSIsICJ2ZXJpZnktZnVsbCIpKQorZGVmIHRlc3Rfc2VydmVyX3dpdGhfc3NsX2Rpc2FibGVkKGNv bm5lY3QsIHRjcF9zZXJ2ZXIsIGNlcnRzLCBzc2xtb2RlKToKKyAgICAiIiIKKyAgICBNYWtlIHN1 cmUgY2xpZW50IHJlZnVzZXMgdG8gdGFsayB0byBub24tU1NMIHNlcnZlcnMgd2l0aCBzdHJpY3Rl cgorICAgIHNzbG1vZGVzLgorICAgICIiIgorCisgICAgZGVmIHJlZnVzZV9zc2woczogc29ja2V0 LnNvY2tldCk6CisgICAgICAgIHBrdGxlbiA9IHN0cnVjdC51bnBhY2soIiFJIiwgcy5yZWN2KDQp KVswXQorCisgICAgICAgICMgTWFrZSBzdXJlIHdlIGdldCBhbiBTU0xSZXF1ZXN0LgorICAgICAg ICB2ZXJzaW9uID0gc3RydWN0LnVucGFjaygiIUhIIiwgcy5yZWN2KDQpKQorICAgICAgICBhc3Nl cnQgdmVyc2lvbiA9PSAoMTIzNCwgNTY3OSkKKyAgICAgICAgYXNzZXJ0IHBrdGxlbiA9PSA4CisK KyAgICAgICAgIyBSZWZ1c2UgdGhlIFNTTFJlcXVlc3QuCisgICAgICAgIHMuc2VuZChiIk4iKQor CisgICAgICAgICMgV2FpdCBmb3IgdGhlIGNsaWVudCB0byBjbG9zZSB0aGUgY29ubmVjdGlvbi4K KyAgICAgICAgYXNzZXJ0IG5vdCBzLnJlY3YoMSksICJjbGllbnQgc2VudCB1bmV4cGVjdGVkIGRh dGEiCisKKyAgICB0Y3Bfc2VydmVyLmJhY2tncm91bmQocmVmdXNlX3NzbCkKKworICAgIHdpdGgg cHl0ZXN0LnJhaXNlcyhMaWJwcUVycm9yLCBtYXRjaD0ic2VydmVyIGRvZXMgbm90IHN1cHBvcnQg U1NMIik6CisgICAgICAgIGNvbm5lY3QoCisgICAgICAgICAgICAqKnRjcF9zZXJ2ZXIuY29ubmlu Zm8sCisgICAgICAgICAgICBzc2xyb290Y2VydD1jZXJ0cy5jYS5jZXJ0cGF0aCwKKyAgICAgICAg ICAgIHNzbG1vZGU9c3NsbW9kZSwKKyAgICAgICAgKQorCisKK2RlZiB0ZXN0X3ZlcmlmeV9mdWxs X2Nvbm5lY3Rpb24oY29ubmVjdCwgc3NsX3NlcnZlciwgY2VydHMpOgorICAgICIiIkNvbXBsZXRl cyBhIHZlcmlmeS1mdWxsIGNvbm5lY3Rpb24gYW5kIGVtcHR5IHF1ZXJ5LiIiIgorCisgICAgZGVm IGhhbmRsZV9lbXB0eV9xdWVyeShzOiBzc2wuU1NMU29ja2V0KToKKyAgICAgICAgcGt0bGVuID0g c3RydWN0LnVucGFjaygiIUkiLCBzLnJlY3YoNCkpWzBdCisKKyAgICAgICAgIyBDaGVjayB0aGUg c3RhcnR1cCBwYWNrZXQgdmVyc2lvbiwgdGhlbiBkaXNjYXJkIHRoZSByZW1haW5kZXIuCisgICAg ICAgIHZlcnNpb24gPSBzdHJ1Y3QudW5wYWNrKCIhSEgiLCBzLnJlY3YoNCkpCisgICAgICAgIGFz c2VydCB2ZXJzaW9uID09ICgzLCAwKQorICAgICAgICBzLnJlY3YocGt0bGVuIC0gOCkKKworICAg ICAgICAjIFNlbmQgdGhlIHJlcXVpcmVkIGxpdGFueSBvZiBzZXJ2ZXIgbWVzc2FnZXMuCisgICAg ICAgIHMuc2VuZChzdHJ1Y3QucGFjaygiIWNJSSIsIGIiUiIsIDgsIDApKSAgIyBBdXRoZW50aWNh dGlvbk9LCisKKyAgICAgICAgIyBQYXJhbWV0ZXJTdGF0dXM6IGNsaWVudF9lbmNvZGluZworICAg ICAgICBrZXkgPSBiImNsaWVudF9lbmNvZGluZ1wwIgorICAgICAgICB2YWwgPSBiIlVURi04XDAi CisgICAgICAgIHMuc2VuZChzdHJ1Y3QucGFjaygiIWNJIiwgYiJTIiwgNCArIGxlbihrZXkpICsg bGVuKHZhbCkpICsga2V5ICsgdmFsKQorCisgICAgICAgICMgUGFyYW1ldGVyU3RhdHVzOiBEYXRl U3R5bGUKKyAgICAgICAga2V5ID0gYiJEYXRlU3R5bGVcMCIKKyAgICAgICAgdmFsID0gYiJJU08s IE1EWVwwIgorICAgICAgICBzLnNlbmQoc3RydWN0LnBhY2soIiFjSSIsIGIiUyIsIDQgKyBsZW4o a2V5KSArIGxlbih2YWwpKSArIGtleSArIHZhbCkKKworICAgICAgICBzLnNlbmQoc3RydWN0LnBh Y2soIiFjSUlJIiwgYiJLIiwgMTIsIDEyMzQsIDEyMzQpKSAgIyBCYWNrZW5kS2V5RGF0YQorICAg ICAgICBzLnNlbmQoc3RydWN0LnBhY2soIiFjSWMiLCBiIloiLCA1LCBiIkkiKSkgICMgUmVhZHlG b3JRdWVyeQorCisgICAgICAgICMgRXhwZWN0IGFuIGVtcHR5IHF1ZXJ5LgorICAgICAgICBwa3R0 eXBlID0gcy5yZWN2KDEpCisgICAgICAgIGFzc2VydCBwa3R0eXBlID09IGIiUSIKKyAgICAgICAg cGt0bGVuID0gc3RydWN0LnVucGFjaygiIUkiLCBzLnJlY3YoNCkpWzBdCisgICAgICAgIGFzc2Vy dCBzLnJlY3YocGt0bGVuIC0gNCkgPT0gYiJcMCIKKworICAgICAgICAjIFNlbmQgYW4gRW1wdHlR dWVyeVJlc3BvbnNlK1JlYWR5Rm9yUXVlcnkuCisgICAgICAgIHMuc2VuZChzdHJ1Y3QucGFjaygi IWNJIiwgYiJJIiwgNCkpCisgICAgICAgIHMuc2VuZChzdHJ1Y3QucGFjaygiIWNJYyIsIGIiWiIs IDUsIGIiSSIpKQorCisgICAgICAgICMgbGlicHEgc2hvdWxkIHRlcm1pbmF0ZSBhbmQgY2xvc2Ug dGhlIGNvbm5lY3Rpb24uCisgICAgICAgIGFzc2VydCBzLnJlY3YoMSkgPT0gYiJYIgorICAgICAg ICBwa3RsZW4gPSBzdHJ1Y3QudW5wYWNrKCIhSSIsIHMucmVjdig0KSlbMF0KKyAgICAgICAgYXNz ZXJ0IHBrdGxlbiA9PSA0CisKKyAgICAgICAgYXNzZXJ0IG5vdCBzLnJlY3YoMSksICJjbGllbnQg c2VudCB1bmV4cGVjdGVkIGRhdGEiCisKKyAgICBzc2xfc2VydmVyLmJhY2tncm91bmRfc3NsKGhh bmRsZV9lbXB0eV9xdWVyeSkKKworICAgIGNvbm4gPSBjb25uZWN0KAorICAgICAgICAqKnNzbF9z ZXJ2ZXIuY29ubmluZm8sCisgICAgICAgIHNzbHJvb3RjZXJ0PWNlcnRzLmNhLmNlcnRwYXRoLAor ICAgICAgICBzc2xtb2RlPSJ2ZXJpZnktZnVsbCIsCisgICAgKQorICAgIHdpdGggY29ubjoKKyAg ICAgICAgYXNzZXJ0IGNvbm4uZXhlYygiIikuc3RhdHVzKCkgPT0gRXhlY1N0YXR1cy5QR1JFU19F TVBUWV9RVUVSWQotLSAKMi41Mi4wCgo= --fe7bb479ab816b2671d62b71f2a30d169d1061179a59e42a904c0319224d Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v8-0007-WIP-pytest-Add-some-server-side-SSL-tests.patch Content-Type: text/x-patch; charset=utf-8; name=v8-0007-WIP-pytest-Add-some-server-side-SSL-tests.patch RnJvbSA4NDFjYTlhZDU5ZTlmMzA2NWU1N2U5M2YyNmQwYmE2MGMxMDhiY2NmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogVHVlLCAxNiBEZWMgMjAyNSAwOTozMTo0NiArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjggNy83XSBXSVA6IHB5dGVzdDogQWRkIHNvbWUgc2VydmVyLXNpZGUgU1NMIHRl c3RzCgpJbiB0aGUgc2FtZSB2ZWluIGFzIHRoZSBwcmV2aW91cyBjb21taXQsIHRoaXMgaXMgYSBz ZXJ2ZXItb25seSB0ZXN0CnN1aXRlIG9wZXJhdGluZyBhZ2FpbnN0IGEgbW9jayBjbGllbnQuIFRo ZSB0ZXN0IGl0c2VsZiBpcyBhIGhlYXZpbHkKcGFyYW1ldGVyaXplZCBjaGVjayBmb3IgZGlyZWN0 LVNTTCBoYW5kc2hha2UgYmVoYXZpb3IsIHVzaW5nIGEKY29tYmluYXRpb24gb2YgInN0YW5kYXJk IiBhbmQgImN1c3RvbSIgY2VydGlmaWNhdGVzIHZpYSB0aGUgY2VydHMKZml4dHVyZS4KCmluc3Rh bGxjaGVjayBpcyBjdXJyZW50bHkgdW5zdXBwb3J0ZWQsIGJ1dCB0aGUgYXJjaGl0ZWN0dXJlIGhh cyBzb21lCmV4dGVuc2lvbiBwb2ludHMgdGhhdCBzaG91bGQgbWFrZSBpdCBwb3NzaWJsZSBsYXRl ci4gRm9yIG5vdywgYSBuZXcKc2VydmVyIGlzIGFsd2F5cyBzdGFydGVkIGZvciB0aGUgdGVzdCBz ZXNzaW9uLgoKVE9ET3M6Ci0gaW1wcm92ZSByZW1haW5pbmdfdGltZW91dCgpIGludGVncmF0aW9u IHdpdGggc29ja2V0IG9wZXJhdGlvbnM7IGF0IHRoZQogIG1vbWVudCwgdGhlIHRpbWVvdXQgcmVz ZXRzIG9uIGV2ZXJ5IGNhbGwgcmF0aGVyIHRoYW4gZGVjcmVtZW50aW5nCi0tLQogc3JjL3Rlc3Qv c3NsL3B5dC9jb25mdGVzdC5weSAgICB8ICA1MCArKysrKysrKysrCiBzcmMvdGVzdC9zc2wvcHl0 L3Rlc3Rfc2VydmVyLnB5IHwgMTYxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAy IGZpbGVzIGNoYW5nZWQsIDIxMSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L3Rlc3Qvc3NsL3B5dC90ZXN0X3NlcnZlci5weQoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3NzbC9w eXQvY29uZnRlc3QucHkgYi9zcmMvdGVzdC9zc2wvcHl0L2NvbmZ0ZXN0LnB5CmluZGV4IDg3MGY3 MzhhYzQ0Li5kMTIxNzI0ODAwYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3NsL3B5dC9jb25mdGVz dC5weQorKysgYi9zcmMvdGVzdC9zc2wvcHl0L2NvbmZ0ZXN0LnB5CkBAIC0xMjYsMyArMTI2LDUz IEBAIGRlZiBjZXJ0cyhjcnlwdG9ncmFwaHksIHRtcF9wYXRoX2ZhY3RvcnkpOgogICAgICAgICAg ICAgcmV0dXJuIGYubmFtZQogCiAgICAgcmV0dXJuIF9DZXJ0cygpCisKKworQHB5dGVzdC5maXh0 dXJlKHNjb3BlPSJtb2R1bGUiLCBhdXRvdXNlPVRydWUpCitkZWYgc3NsX3NldHVwKHBnX3NlcnZl cl9tb2R1bGUsIGNlcnRzLCBkYXRhZGlyKToKKyAgICAiIiIKKyAgICBTZXRzIHVwIHJlcXVpcmVk IHNlcnZlciBzZXR0aW5ncyBmb3IgYWxsIHRlc3RzIGluIHRoaXMgbW9kdWxlLgorICAgICIiIgor ICAgIHRyeToKKyAgICAgICAgd2l0aCBwZ19zZXJ2ZXJfbW9kdWxlLnJlc3RhcnRpbmcoKSBhcyBz OgorICAgICAgICAgICAgcy5jb25mLnNldCgKKyAgICAgICAgICAgICAgICBzc2w9Im9uIiwKKyAg ICAgICAgICAgICAgICBzc2xfY2FfZmlsZT1jZXJ0cy5jYS5jZXJ0cGF0aCwKKyAgICAgICAgICAg ICAgICBzc2xfY2VydF9maWxlPWNlcnRzLnNlcnZlci5jZXJ0cGF0aCwKKyAgICAgICAgICAgICAg ICBzc2xfa2V5X2ZpbGU9Y2VydHMuc2VydmVyLmtleXBhdGgsCisgICAgICAgICAgICApCisKKyAg ICAgICAgICAgICMgUmVqZWN0IGJ5IGRlZmF1bHQuCisgICAgICAgICAgICBzLmhiYS5wcmVwZW5k KCJob3N0c3NsIGFsbCBhbGwgYWxsIHJlamVjdCIpCisKKyAgICBleGNlcHQgc3VicHJvY2Vzcy5D YWxsZWRQcm9jZXNzRXJyb3I6CisgICAgICAgICMgVGhpcyBpcyBhIGRlY2VudCBwbGFjZSB0byBz a2lwIGlmIHRoZSBzZXJ2ZXIgaXNuJ3Qgc2V0IHVwIGZvciBTU0wuCisgICAgICAgIGxvZ3BhdGgg PSBkYXRhZGlyIC8gInBvc3RncmVzcWwubG9nIgorICAgICAgICB1bnN1cHBvcnRlZCA9IHJlLmNv bXBpbGUoIlNTTCBpcyBub3Qgc3VwcG9ydGVkIikKKworICAgICAgICB3aXRoIG9wZW4obG9ncGF0 aCwgInIiKSBhcyBsb2c6CisgICAgICAgICAgICBmb3IgbGluZSBpbiBsb2c6CisgICAgICAgICAg ICAgICAgaWYgdW5zdXBwb3J0ZWQuc2VhcmNoKGxpbmUpOgorICAgICAgICAgICAgICAgICAgICBw eXRlc3Quc2tpcCgidGhlIHNlcnZlciBkb2VzIG5vdCBzdXBwb3J0IFNTTCIpCisKKyAgICAgICAg IyBTb21lIG90aGVyIGVycm9yIGhhcHBlbmVkLgorICAgICAgICByYWlzZQorCisgICAgdXNlcnMg PSBwZ19zZXJ2ZXJfbW9kdWxlLmNyZWF0ZV91c2Vycygic3NsIikKKyAgICBkYnMgPSBwZ19zZXJ2 ZXJfbW9kdWxlLmNyZWF0ZV9kYnMoInNzbCIpCisKKyAgICByZXR1cm4gKHVzZXJzLCBkYnMpCisK KworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorZGVmIGNsaWVudF9jZXJ0KHNzbF9z ZXR1cCwgY2VydHMpOgorICAgICIiIgorICAgIENyZWF0ZXMgYSBDZXJ0IGZvciB0aGUgInNzbCIg dXNlci4KKyAgICAiIiIKKyAgICBmcm9tIGNyeXB0b2dyYXBoeSBpbXBvcnQgeDUwOQorICAgIGZy b20gY3J5cHRvZ3JhcGh5Lng1MDkub2lkIGltcG9ydCBOYW1lT0lECisKKyAgICB1c2VycywgXyA9 IHNzbF9zZXR1cAorICAgIHVzZXIgPSB1c2Vyc1sic3NsIl0KKworICAgIHJldHVybiBjZXJ0cy5u ZXcoeDUwOS5OYW1lKFt4NTA5Lk5hbWVBdHRyaWJ1dGUoTmFtZU9JRC5DT01NT05fTkFNRSwgdXNl cildKSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3NzbC9weXQvdGVzdF9zZXJ2ZXIucHkgYi9zcmMv dGVzdC9zc2wvcHl0L3Rlc3Rfc2VydmVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi5kNWNiMTRiNmM5YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3NzbC9w eXQvdGVzdF9zZXJ2ZXIucHkKQEAgLTAsMCArMSwxNjEgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1 LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCitpbXBvcnQgcmUKK2ltcG9y dCBzb2NrZXQKK2ltcG9ydCBzc2wKK2ltcG9ydCBzdHJ1Y3QKKworaW1wb3J0IHB5dGVzdAorCitp bXBvcnQgcHlwZworCisjIFRoaXMgc3VpdGUgb3BlbnMgdXAgbG9jYWwgVENQIHBvcnRzIGFuZCBp cyBoaWRkZW4gYmVoaW5kIFBHX1RFU1RfRVhUUkE9c3NsLgorcHl0ZXN0bWFyayA9IHB5cGcucmVx dWlyZV90ZXN0X2V4dHJhcygic3NsIikKKworIyBGb3IgdXNlIHdpdGggdGhlIGBjcmVkc2AgcGFy YW1ldGVyIGJlbG93LgorQ0xJRU5UID0gImNsaWVudCIKK1NFUlZFUiA9ICJzZXJ2ZXIiCisKKwor IyBmbXQ6IG9mZgorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICJhdXRoX21ldGhvZCwg ICAgICAgICAgICAgICAgICAgIGNyZWRzLCAgZXhwZWN0ZWRfZXJyb3IiLAorWworICAgICMgVHJ1 c3QgYWxsb3dzIGFueXRoaW5nLgorICAgICgidHJ1c3QiLCAgICAgICAgICAgICAgICAgICAgICAg IE5vbmUsICAgTm9uZSksCisgICAgKCJ0cnVzdCIsICAgICAgICAgICAgICAgICAgICAgICAgQ0xJ RU5ULCBOb25lKSwKKyAgICAoInRydXN0IiwgICAgICAgICAgICAgICAgICAgICAgICBTRVJWRVIs IE5vbmUpLAorCisgICAgIyB2ZXJpZnktY2EgYWxsb3dzIGFueSBDQS1zaWduZWQgY2VydGlmaWNh dGUuCisgICAgKCJ0cnVzdCBjbGllbnRjZXJ0PXZlcmlmeS1jYSIsICAgTm9uZSwgICAicmVxdWly ZXMgYSB2YWxpZCBjbGllbnQgY2VydGlmaWNhdGUiKSwKKyAgICAoInRydXN0IGNsaWVudGNlcnQ9 dmVyaWZ5LWNhIiwgICBDTElFTlQsIE5vbmUpLAorICAgICgidHJ1c3QgY2xpZW50Y2VydD12ZXJp ZnktY2EiLCAgIFNFUlZFUiwgTm9uZSksCisKKyAgICAjIGNlcnQgYW5kIHZlcmlmeS1mdWxsIGFs bG93IG9ubHkgdGhlIGNvcnJlY3QgY2VydGlmaWNhdGUuCisgICAgKCJ0cnVzdCBjbGllbnRjZXJ0 PXZlcmlmeS1mdWxsIiwgTm9uZSwgICAicmVxdWlyZXMgYSB2YWxpZCBjbGllbnQgY2VydGlmaWNh dGUiKSwKKyAgICAoInRydXN0IGNsaWVudGNlcnQ9dmVyaWZ5LWZ1bGwiLCBDTElFTlQsIE5vbmUp LAorICAgICgidHJ1c3QgY2xpZW50Y2VydD12ZXJpZnktZnVsbCIsIFNFUlZFUiwgImF1dGhlbnRp Y2F0aW9uIGZhaWxlZCBmb3IgdXNlciIpLAorICAgICgiY2VydCIsICAgICAgICAgICAgICAgICAg ICAgICAgIE5vbmUsICAgInJlcXVpcmVzIGEgdmFsaWQgY2xpZW50IGNlcnRpZmljYXRlIiksCisg ICAgKCJjZXJ0IiwgICAgICAgICAgICAgICAgICAgICAgICAgQ0xJRU5ULCBOb25lKSwKKyAgICAo ImNlcnQiLCAgICAgICAgICAgICAgICAgICAgICAgICBTRVJWRVIsICJhdXRoZW50aWNhdGlvbiBm YWlsZWQgZm9yIHVzZXIiKSwKK10sCispCisjIGZtdDogb24KK2RlZiB0ZXN0X2RpcmVjdF9zc2xf Y2VydGlmaWNhdGVfYXV0aGVudGljYXRpb24oCisgICAgcGcsCisgICAgc3NsX3NldHVwLAorICAg IGNlcnRzLAorICAgIGNsaWVudF9jZXJ0LAorICAgIHJlbWFpbmluZ190aW1lb3V0LAorICAgICMg dGVzdCBwYXJhbWV0ZXJzCisgICAgYXV0aF9tZXRob2QsCisgICAgY3JlZHMsCisgICAgZXhwZWN0 ZWRfZXJyb3IsCispOgorICAgICIiIgorICAgIFRlc3RzIGRpcmVjdCBTU0wgY29ubmVjdGlvbnMg d2l0aCB2YXJpb3VzIGNsaWVudC1jZXJ0aWZpY2F0ZS9IQkEKKyAgICBjb21iaW5hdGlvbnMuCisg ICAgIiIiCisKKyAgICAjIFNldCB1cCB0aGUgSEJBIGFzIGRlc2lyZWQgYnkgdGhlIHRlc3QuCisg ICAgdXNlcnMsIGRicyA9IHNzbF9zZXR1cAorCisgICAgdXNlciA9IHVzZXJzWyJzc2wiXQorICAg IGRiID0gZGJzWyJzc2wiXQorCisgICAgd2l0aCBwZy5yZWxvYWRpbmcoKSBhcyBzOgorICAgICAg ICBzLmhiYS5wcmVwZW5kKAorICAgICAgICAgICAgWyJob3N0c3NsIiwgZGIsIHVzZXIsICIxMjcu MC4wLjEvMzIiLCBhdXRoX21ldGhvZF0sCisgICAgICAgICAgICBbImhvc3Rzc2wiLCBkYiwgdXNl ciwgIjo6MS8xMjgiLCBhdXRoX21ldGhvZF0sCisgICAgICAgICkKKworICAgICMgQ29uZmlndXJl IHRoZSBTU0wgc2V0dGluZ3MgZm9yIHRoZSBjbGllbnQuCisgICAgY3R4ID0gc3NsLlNTTENvbnRl eHQoc3NsLlBST1RPQ09MX1RMU19DTElFTlQpCisgICAgY3R4LmxvYWRfdmVyaWZ5X2xvY2F0aW9u cyhjYWZpbGU9Y2VydHMuY2EuY2VydHBhdGgpCisgICAgY3R4LnNldF9hbHBuX3Byb3RvY29scyhb InBvc3RncmVzcWwiXSkgICMgZm9yIGRpcmVjdCBTU0wKKworICAgICMgTG9hZCB1cCBhIGNsaWVu dCBjZXJ0aWZpY2F0ZSBpZiByZXF1aXJlZCBieSB0aGUgdGVzdC4KKyAgICBpZiBjcmVkcyA9PSBD TElFTlQ6CisgICAgICAgIGN0eC5sb2FkX2NlcnRfY2hhaW4oY2xpZW50X2NlcnQuY2VydHBhdGgs IGNsaWVudF9jZXJ0LmtleXBhdGgpCisgICAgZWxpZiBjcmVkcyA9PSBTRVJWRVI6CisgICAgICAg ICMgVXNpbmcgYSBzZXJ2ZXIgY2VydGlmaWNhdGUgYXMgdGhlIGNsaWVudCBjcmVkZW50aWFsIGlz IGV4cGVjdGVkIHRvCisgICAgICAgICMgd29yayBvbmx5IGZvciBjbGllbnRjZXJ0PXZlcmlmeS1j YSAoYW5kIGB0cnVzdGAsIG5hdHVyYWxseSkuCisgICAgICAgIGN0eC5sb2FkX2NlcnRfY2hhaW4o Y2VydHMuc2VydmVyLmNlcnRwYXRoLCBjZXJ0cy5zZXJ2ZXIua2V5cGF0aCkKKworICAgICMgTWFr ZSBhIGRpcmVjdCBTU0wgY29ubmVjdGlvbi4gVGhlcmUncyBubyBTU0xSZXF1ZXN0IGluIHRoZSBo YW5kc2hha2U7IHdlCisgICAgIyBzaW1wbHkgd3JhcCBhIFRDUCBjb25uZWN0aW9uIHdpdGggT3Bl blNTTC4KKyAgICBhZGRyID0gKHBnLmhvc3RhZGRyLCBwZy5wb3J0KQorICAgIHdpdGggc29ja2V0 LmNyZWF0ZV9jb25uZWN0aW9uKGFkZHIpIGFzIHM6CisgICAgICAgIHMuc2V0dGltZW91dChyZW1h aW5pbmdfdGltZW91dCgpKSAgIyBYWFggdGhpcyByZXNldHMgZXZlcnkgb3BlcmF0aW9uCisKKyAg ICAgICAgd2l0aCBjdHgud3JhcF9zb2NrZXQocywgc2VydmVyX2hvc3RuYW1lPWNlcnRzLnNlcnZl cl9ob3N0KSBhcyBjb25uOgorICAgICAgICAgICAgIyBCdWlsZCBhbmQgc2VuZCB0aGUgc3RhcnR1 cCBwYWNrZXQuCisgICAgICAgICAgICBzdGFydHVwX29wdGlvbnMgPSBkaWN0KAorICAgICAgICAg ICAgICAgIHVzZXI9dXNlciwKKyAgICAgICAgICAgICAgICBkYXRhYmFzZT1kYiwKKyAgICAgICAg ICAgICAgICBhcHBsaWNhdGlvbl9uYW1lPSJweXRlc3QiLAorICAgICAgICAgICAgKQorCisgICAg ICAgICAgICBwYXlsb2FkID0gYiIiCisgICAgICAgICAgICBmb3IgaywgdiBpbiBzdGFydHVwX29w dGlvbnMuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBwYXlsb2FkICs9IGsuZW5jb2RlKCkgKyBi IlwwIgorICAgICAgICAgICAgICAgIHBheWxvYWQgKz0gc3RyKHYpLmVuY29kZSgpICsgYiJcMCIK KyAgICAgICAgICAgIHBheWxvYWQgKz0gYiJcMCIgICMgbnVsbCB0ZXJtaW5hdG9yCisKKyAgICAg ICAgICAgIHBrdGxlbiA9IDQgKyA0ICsgbGVuKHBheWxvYWQpCisgICAgICAgICAgICBjb25uLnNl bmQoc3RydWN0LnBhY2soIiFJSEgiLCBwa3RsZW4sIDMsIDApICsgcGF5bG9hZCkKKworICAgICAg ICAgICAgaWYgbm90IGV4cGVjdGVkX2Vycm9yOgorICAgICAgICAgICAgICAgICMgRXhwZWN0IGFu IEF1dGhlbnRpY2F0aW9uT0sgdG8gY29tZSBiYWNrLgorICAgICAgICAgICAgICAgIHBrdHR5cGUs IHBrdGxlbiA9IHN0cnVjdC51bnBhY2soIiFjSSIsIGNvbm4ucmVjdig1KSkKKyAgICAgICAgICAg ICAgICBhc3NlcnQgcGt0dHlwZSA9PSBiIlIiCisgICAgICAgICAgICAgICAgYXNzZXJ0IHBrdGxl biA9PSA4CisKKyAgICAgICAgICAgICAgICBhdXRobl9yZXN1bHQgPSBzdHJ1Y3QudW5wYWNrKCIh SSIsIGNvbm4ucmVjdig0KSlbMF0KKyAgICAgICAgICAgICAgICBhc3NlcnQgYXV0aG5fcmVzdWx0 ID09IDAKKworICAgICAgICAgICAgICAgICMgUmVhZCBhbmQgZGlzY2FyZCB0byBSZWFkeUZvclF1 ZXJ5LgorICAgICAgICAgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAgICAgICAgIHBr dHR5cGUsIHBrdGxlbiA9IHN0cnVjdC51bnBhY2soIiFjSSIsIGNvbm4ucmVjdig1KSkKKyAgICAg ICAgICAgICAgICAgICAgcGF5bG9hZCA9IGNvbm4ucmVjdihwa3RsZW4gLSA0KQorCisgICAgICAg ICAgICAgICAgICAgIGlmIHBrdHR5cGUgPT0gYiJaIjoKKyAgICAgICAgICAgICAgICAgICAgICAg IGFzc2VydCBwYXlsb2FkID09IGIiSSIKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisK KyAgICAgICAgICAgICAgICAjIFNlbmQgYW4gZW1wdHkgcXVlcnkuCisgICAgICAgICAgICAgICAg Y29ubi5zZW5kKHN0cnVjdC5wYWNrKCIhY0kiLCBiIlEiLCA1KSArIGIiXDAiKQorCisgICAgICAg ICAgICAgICAgIyBFeHBlY3QgRW1wdHlRdWVyeVJlc3BvbnNlK1JlYWR5Rm9yUXVlcnkuCisgICAg ICAgICAgICAgICAgcGt0dHlwZSwgcGt0bGVuID0gc3RydWN0LnVucGFjaygiIWNJIiwgY29ubi5y ZWN2KDUpKQorICAgICAgICAgICAgICAgIGFzc2VydCBwa3R0eXBlID09IGIiSSIKKyAgICAgICAg ICAgICAgICBhc3NlcnQgcGt0bGVuID09IDQKKworICAgICAgICAgICAgICAgIHBrdHR5cGUsIHBr dGxlbiA9IHN0cnVjdC51bnBhY2soIiFjSSIsIGNvbm4ucmVjdig1KSkKKyAgICAgICAgICAgICAg ICBhc3NlcnQgcGt0dHlwZSA9PSBiIloiCisKKyAgICAgICAgICAgICAgICBwYXlsb2FkID0gY29u bi5yZWN2KHBrdGxlbiAtIDQpCisgICAgICAgICAgICAgICAgYXNzZXJ0IHBheWxvYWQgPT0gYiJJ IgorCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMgTWF0Y2ggdGhlIGV4cGVj dGVkIGF1dGhlbnRpY2F0aW9uIGVycm9yLgorICAgICAgICAgICAgICAgIHBrdHR5cGUsIHBrdGxl biA9IHN0cnVjdC51bnBhY2soIiFjSSIsIGNvbm4ucmVjdig1KSkKKyAgICAgICAgICAgICAgICBh c3NlcnQgcGt0dHlwZSA9PSBiIkUiCisKKyAgICAgICAgICAgICAgICBwYXlsb2FkID0gY29ubi5y ZWN2KHBrdGxlbiAtIDQpCisgICAgICAgICAgICAgICAgbXNnID0gTm9uZQorCisgICAgICAgICAg ICAgICAgZm9yIGNvbXBvbmVudCBpbiBwYXlsb2FkLnNwbGl0KGIiXDAiKToKKyAgICAgICAgICAg ICAgICAgICAgaWYgbm90IGNvbXBvbmVudDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr ICAjIGVuZCBvZiBtZXNzYWdlCisKKyAgICAgICAgICAgICAgICAgICAga2V5LCB2YWwgPSBjb21w b25lbnRbOjFdLCBjb21wb25lbnRbMTpdCisgICAgICAgICAgICAgICAgICAgIGlmIGtleSA9PSBi IlMiOgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbCA9PSBiIkZBVEFMIgorICAg ICAgICAgICAgICAgICAgICBlbGlmIGtleSA9PSBiIk0iOgorICAgICAgICAgICAgICAgICAgICAg ICAgbXNnID0gdmFsLmRlY29kZSgpCisKKyAgICAgICAgICAgICAgICBhc3NlcnQgcmUuc2VhcmNo KGV4cGVjdGVkX2Vycm9yLCBtc2cpLCAic2VydmVyIGVycm9yIGRpZCBub3QgbWF0Y2giCisKKyAg ICAgICAgICAgICMgVGVybWluYXRlLgorICAgICAgICAgICAgY29ubi5zZW5kKHN0cnVjdC5wYWNr KCIhY0kiLCBiIlgiLCA0KSkKLS0gCjIuNTIuMAoK --fe7bb479ab816b2671d62b71f2a30d169d1061179a59e42a904c0319224d--