From mboxrd@z Thu Jan 1 00:00:00 1970 From: Martin Becze Subject: Re: [PATCH] WIP patches for the rust importer Date: Fri, 29 Nov 2019 07:59:35 -0800 Message-ID: <8981451ac5d914dd5f53fa928741b846@riseup.net> References: <20191126120408.GL1124@E5400> <1E01C051-2EE5-4050-B826-C60E858AAC2B@flashner.co.il> <0b2db52d687fc2acf34dc1e00618dae7.squirrel@sm.riseup.net> <20191128122255.GT1124@E5400> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=_8c7ff32fd889d85d2c755905a8cf8680" Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:56992) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iaigY-0000ml-S2 for guix-devel@gnu.org; Fri, 29 Nov 2019 11:00:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iaigJ-0003Nj-5V for guix-devel@gnu.org; Fri, 29 Nov 2019 10:59:54 -0500 Received: from mx1.riseup.net ([198.252.153.129]:54936) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iaigF-0003HL-In for guix-devel@gnu.org; Fri, 29 Nov 2019 10:59:42 -0500 In-Reply-To: <20191128122255.GT1124@E5400> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Efraim Flashner Cc: guix-devel@gnu.org, 38408@debbugs.gnu.org --=_8c7ff32fd889d85d2c755905a8cf8680 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII On 2019-11-28 12:22, Efraim Flashner wrote: > On Wed, Nov 27, 2019 at 04:36:20PM -0800, mjbecze@riseup.net wrote: >> >> > I'd love to see what you have so far if you want to share >> >> Okie Dokie, I posted it and cc'd ya. >> >> Also I took a look at your patches. >> 0001-import-crate-Don-t-include-optional-dependencies.patch should work >> just fine with my patch. But >> 0003-import-crate-Honor-versioned-dependencies-when-impor.patch will not >> work. >> >> I took a different route here with the naming. If you are interested take >> a look take a look at my second patch. (recusive-import-semver) only will >> add the version number to the name if the crate being imported is not the >> latest version. I thought this was more inline with the canonical names, >> but if always adding version number the export symbol is desirable it will >> simplify things. >> > > I'll take a look at it in a minute. I figured with the versioned > requirements we would always want to be specific in version numbers for > crate dependents so I figured it made sense. Also, if we did want to > provide an unversioned '-latest' version we could declare an extra > variable '(define-public rust-libc rust-libc-0.2)' and now rust-libc > points to rust-libc-0.2. > >> Also I added a function (find-packages-by-name*/direct) to packages.scm >> which will return the export symbol of a package that already exists. I >> use this in case there are some non-canocal export name already added. >> I added the no-optional-dep logic to the recusive-semver patch (https://issues.guix.gnu.org/issue/38408), but it seems to break packages. I'm testing on the recursive importer on "hello-cli". Attach is the patch to add the logic and the before and after output for "guix import crate -r hello-cli". Removing all the optional deps breaks clap here for some reason which I haven't figured out. --=_8c7ff32fd889d85d2c755905a8cf8680 Content-Transfer-Encoding: base64 Content-Type: text/plain; name=after.scm Content-Disposition: attachment; filename=after.scm; size=4344 KGRlZmluZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBjcmF0ZXMtaW8pCiAgIzp1c2UtbW9kdWxlIChn dWl4IGJ1aWxkLXN5c3RlbSBjYXJnbykKICAjOnVzZS1tb2R1bGUgKGd1aXggZG93bmxvYWQpCiAg Izp1c2UtbW9kdWxlICgoZ3VpeCBsaWNlbnNlcykgIzpwcmVmaXggbGljZW5zZTopCiAgIzp1c2Ut bW9kdWxlIChndWl4IHBhY2thZ2VzKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtaGVsbG8tY2xpCiAg KHBhY2thZ2UKICAgIChuYW1lICJydXN0LWhlbGxvLWNsaSIpCiAgICAodmVyc2lvbiAiMC4yLjIi KQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAg ICAgICAgKHVyaSAoY3JhdGUtdXJpICJoZWxsby1jbGkiIHZlcnNpb24pKQogICAgICAgIChmaWxl LW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIp KQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjBxaWxqOWI5 NGlnN3oxNjBrYXprNDFrMml5MWhwcmRrNXF3YXltNGZuZjV4OWZpa3NpbGQiKSkpKQogICAgKGJ1 aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpj YXJnby1pbnB1dHMgKCgicnVzdC1jbGFwIiAscnVzdC1jbGFwKSkpKQogICAgKGhvbWUtcGFnZQog ICAgICAiaHR0cHM6Ly9naXRodWIuY29tL2Zwb2xpL3J1c3QtaGVsbG8tY2xpIikKICAgIChzeW5v cHNpcyAiUHJpbnRzIGEgbmljZSAnSGVsbG8gV29ybGQhJyBtZXNzYWdlIikKICAgIChkZXNjcmlw dGlvbgogICAgICAiUHJpbnRzIGEgbmljZSAnSGVsbG8gV29ybGQhJyBtZXNzYWdlIikKICAgIChs aWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtY2xhcAogIChwYWNr YWdlCiAgICAobmFtZSAicnVzdC1jbGFwIikKICAgICh2ZXJzaW9uICIyLjMzLjAiKQogICAgKHNv dXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVy aSAoY3JhdGUtdXJpICJjbGFwIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAg ICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hh MjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxbmY2bGQzYmltczFuNXZmemhrdmNi NTVwZHpoMDRiYmh6ZjhuaWw1dnZ3MDVueHphcnNoIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2Fy Z28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAg ICAgICAgKCgicnVzdC1iaXRmbGFncyIgLHJ1c3QtYml0ZmxhZ3MpCiAgICAgICAgICgicnVzdC10 ZXh0d3JhcCIgLHJ1c3QtdGV4dHdyYXApCiAgICAgICAgICgicnVzdC11bmljb2RlLXdpZHRoIiAs cnVzdC11bmljb2RlLXdpZHRoKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9jbGFwLnJzLyIp CiAgICAoc3lub3BzaXMKICAgICAgIkEgc2ltcGxlIHRvIHVzZSwgZWZmaWNpZW50LCBhbmQgZnVs bC1mZWF0dXJlZCBDb21tYW5kIExpbmUgQXJndW1lbnQgUGFyc2VyCiIpCiAgICAoZGVzY3JpcHRp b24KICAgICAgIlRoaXMgcGFja2FnZSBwcm92aWRlcyBhIHNpbXBsZSB0byB1c2UsIGVmZmljaWVu dCwgYW5kIGZ1bGwtZmVhdHVyZWQgQ29tbWFuZCBMaW5lIEFyZ3VtZW50IFBhcnNlcgoiKQogICAg KGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1iaXRmbGFncwog IChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1iaXRmbGFncyIpCiAgICAodmVyc2lvbiAiMS4yLjEi KQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAg ICAgICAgKHVyaSAoY3JhdGUtdXJpICJiaXRmbGFncyIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUt bmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikp CiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMTRxbmQ1bnE4 cDJhbG1rNzltNG04eWRxaGQ0MTN5YXhzeWpwNXhkMTlnM21pa3pmNDdmZyIpKSkpCiAgICAoYnVp bGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBz Oi8vZ2l0aHViLmNvbS9iaXRmbGFncy9iaXRmbGFncyIpCiAgICAoc3lub3BzaXMKICAgICAgIkEg bWFjcm8gdG8gZ2VuZXJhdGUgc3RydWN0dXJlcyB3aGljaCBiZWhhdmUgbGlrZSBiaXRmbGFncy4K IikKICAgIChkZXNjcmlwdGlvbgogICAgICAiVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGEgbWFjcm8g dG8gZ2VuZXJhdGUgc3RydWN0dXJlcyB3aGljaCBiZWhhdmUgbGlrZSBiaXRmbGFncy4KIikKICAg IChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXRleHR3cmFwCiAgKHBhY2thZ2UK ICAgIChuYW1lICJydXN0LXRleHR3cmFwIikKICAgICh2ZXJzaW9uICIwLjExLjAiKQogICAgKHNv dXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVy aSAoY3JhdGUtdXJpICJ0ZXh0d3JhcCIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAg ICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAg KHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMHE1aGt5MDNpazN5NTBzOXN6 MjVyNDM4YmM0bndocWM2ZHF3eW52NHd5bGM4MDduMjluayIpKSkpCiAgICAoYnVpbGQtc3lzdGVt IGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0 cwogICAgICAgICgoInJ1c3QtdW5pY29kZS13aWR0aCIgLHJ1c3QtdW5pY29kZS13aWR0aCkpKSkK ICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9tZ2Vpc2xlci90ZXh0d3Jh cCIpCiAgICAoc3lub3BzaXMKICAgICAgIlRleHR3cmFwIGlzIGEgc21hbGwgbGlicmFyeSBmb3Ig d29yZCB3cmFwcGluZywgaW5kZW50aW5nLCBhbmQKZGVkZW50aW5nIHN0cmluZ3MuCgpZb3UgY2Fu IHVzZSBpdCB0byBmb3JtYXQgc3RyaW5ncyAoc3VjaCBhcyBoZWxwIGFuZCBlcnJvciBtZXNzYWdl cykgZm9yCmRpc3BsYXkgaW4gY29tbWFuZGxpbmUgYXBwbGljYXRpb25zLiBJdCBpcyBkZXNpZ25l ZCB0byBiZSBlZmZpY2llbnQKYW5kIGhhbmRsZSBVbmljb2RlIGNoYXJhY3RlcnMgY29ycmVjdGx5 LgoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJUZXh0d3JhcCBpcyBhIHNtYWxsIGxpYnJhcnkg Zm9yIHdvcmQgd3JhcHBpbmcsIGluZGVudGluZywgYW5kCmRlZGVudGluZyBzdHJpbmdzLgoKWW91 IGNhbiB1c2UgaXQgdG8gZm9ybWF0IHN0cmluZ3MgKHN1Y2ggYXMgaGVscCBhbmQgZXJyb3IgbWVz c2FnZXMpIGZvcgpkaXNwbGF5IGluIGNvbW1hbmRsaW5lIGFwcGxpY2F0aW9ucy4gIEl0IGlzIGRl c2lnbmVkIHRvIGJlIGVmZmljaWVudAphbmQgaGFuZGxlIFVuaWNvZGUgY2hhcmFjdGVycyBjb3Jy ZWN0bHkuCiIpCiAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCgooZGVmaW5lLXB1YmxpYyBy dXN0LXVuaWNvZGUtd2lkdGgKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtdW5pY29kZS13aWR0 aCIpCiAgICAodmVyc2lvbiAiMC4xLjYiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAg ICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJ1bmljb2RlLXdp ZHRoIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVu ZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAo YmFzZTMyCiAgICAgICAgICAgICIwODJmOWh2MXIzZ2NkMXhsMzN3aGpocm0xOHAwdzlpNzd6aGho a2ljY2I1cjQ3YWRuMXZoIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVt KQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIuY29tL3VuaWNvZGUtcnMvdW5p Y29kZS13aWR0aCIpCiAgICAoc3lub3BzaXMKICAgICAgIkRldGVybWluZSBkaXNwbGF5ZWQgd2lk dGggb2YgYGNoYXJgIGFuZCBgc3RyYCB0eXBlcwphY2NvcmRpbmcgdG8gVW5pY29kZSBTdGFuZGFy ZCBBbm5leCAjMTEgcnVsZXMuCiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIkRldGVybWluZSBk aXNwbGF5ZWQgd2lkdGggb2YgYGNoYXJgIGFuZCBgc3RyYCB0eXBlcwphY2NvcmRpbmcgdG8gVW5p Y29kZSBTdGFuZGFyZCBBbm5leCAjMTEgcnVsZXMuCiIpCiAgICAobGljZW5zZSAjZikpKQoKcnVz dC1oZWxsby1jbGkK --=_8c7ff32fd889d85d2c755905a8cf8680 Content-Transfer-Encoding: base64 Content-Type: text/plain; name=before.scm Content-Disposition: attachment; filename=before.scm; size=171694 KGRlZmluZS1tb2R1bGUgKGhlbGxvLWNsaSkKICAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQtc3lz dGVtIGNhcmdvKQogICM6dXNlLW1vZHVsZSAoZ3VpeCBkb3dubG9hZCkKICAjOnVzZS1tb2R1bGUg KChndWl4IGxpY2Vuc2VzKSAjOnByZWZpeCBsaWNlbnNlOikKICAjOnVzZS1tb2R1bGUgKGd1aXgg cGFja2FnZXMpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1oZWxsby1jbGkKICAocGFja2FnZQogICAg KG5hbWUgInJ1c3QtaGVsbG8tY2xpIikKICAgICh2ZXJzaW9uICIwLjIuMiIpCiAgICAoc291cmNl CiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChj cmF0ZS11cmkgImhlbGxvLWNsaSIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAg ICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNo YTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMHFpbGo5Yjk0aWc3ejE2MGthems0 MWsyaXkxaHByZGs1cXdheW00Zm5mNXg5Zmlrc2lsZCIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNh cmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cyAo KCJydXN0LWNsYXAiICxydXN0LWNsYXApKSkpCiAgICAoaG9tZS1wYWdlCiAgICAgICJodHRwczov L2dpdGh1Yi5jb20vZnBvbGkvcnVzdC1oZWxsby1jbGkiKQogICAgKHN5bm9wc2lzICJQcmludHMg YSBuaWNlICdIZWxsbyBXb3JsZCEnIG1lc3NhZ2UiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJQ cmludHMgYSBuaWNlICdIZWxsbyBXb3JsZCEnIG1lc3NhZ2UiKQogICAgKGxpY2Vuc2UgbGljZW5z ZTpleHBhdCkpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1jbGFwCiAgKHBhY2thZ2UKICAgIChuYW1l ICJydXN0LWNsYXAiKQogICAgKHZlcnNpb24gIjIuMzMuMCIpCiAgICAoc291cmNlCiAgICAgIChv cmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkg ImNsYXAiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBw ZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAg IChiYXNlMzIKICAgICAgICAgICAgIjFuZjZsZDNiaW1zMW41dmZ6aGt2Y2I1NXBkemgwNGJiaHpm OG5pbDV2dncwNW54emFyc2giKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0 ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0 LWFuc2ktdGVybS0wLjExLjAiICxydXN0LWFuc2ktdGVybS0wLjExLjApCiAgICAgICAgICgicnVz dC1hdHR5IiAscnVzdC1hdHR5KQogICAgICAgICAoInJ1c3QtYml0ZmxhZ3MiICxydXN0LWJpdGZs YWdzKQogICAgICAgICAoInJ1c3QtY2xpcHB5IiAscnVzdC1jbGlwcHkpCiAgICAgICAgICgicnVz dC1zdHJzaW0tMC44LjAiICxydXN0LXN0cnNpbS0wLjguMCkKICAgICAgICAgKCJydXN0LXRlcm0t c2l6ZS0wLjMuMSIgLHJ1c3QtdGVybS1zaXplLTAuMy4xKQogICAgICAgICAoInJ1c3QtdGV4dHdy YXAiICxydXN0LXRleHR3cmFwKQogICAgICAgICAoInJ1c3QtdW5pY29kZS13aWR0aCIgLHJ1c3Qt dW5pY29kZS13aWR0aCkKICAgICAgICAgKCJydXN0LXZlYy1tYXAiICxydXN0LXZlYy1tYXApCiAg ICAgICAgICgicnVzdC15YW1sLXJ1c3QtMC4zLjUiICxydXN0LXlhbWwtcnVzdC0wLjMuNSkpKSkK ICAgIChob21lLXBhZ2UgImh0dHBzOi8vY2xhcC5ycy8iKQogICAgKHN5bm9wc2lzCiAgICAgICJB IHNpbXBsZSB0byB1c2UsIGVmZmljaWVudCwgYW5kIGZ1bGwtZmVhdHVyZWQgQ29tbWFuZCBMaW5l IEFyZ3VtZW50IFBhcnNlcgoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJUaGlzIHBhY2thZ2Ug cHJvdmlkZXMgYSBzaW1wbGUgdG8gdXNlLCBlZmZpY2llbnQsIGFuZCBmdWxsLWZlYXR1cmVkIENv bW1hbmQgTGluZSBBcmd1bWVudCBQYXJzZXIKIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQp KSkKCihkZWZpbmUtcHVibGljIHJ1c3QtYml0ZmxhZ3MKICAocGFja2FnZQogICAgKG5hbWUgInJ1 c3QtYml0ZmxhZ3MiKQogICAgKHZlcnNpb24gIjEuMi4xIikKICAgIChzb3VyY2UKICAgICAgKG9y aWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAi Yml0ZmxhZ3MiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmct YXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAg ICAgIChiYXNlMzIKICAgICAgICAgICAgIjE0cW5kNW5xOHAyYWxtazc5bTRtOHlkcWhkNDEzeWF4 c3lqcDV4ZDE5ZzNtaWt6ZjQ3ZmciKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1z eXN0ZW0pCiAgICAoaG9tZS1wYWdlCiAgICAgICJodHRwczovL2dpdGh1Yi5jb20vYml0ZmxhZ3Mv Yml0ZmxhZ3MiKQogICAgKHN5bm9wc2lzCiAgICAgICJBIG1hY3JvIHRvIGdlbmVyYXRlIHN0cnVj dHVyZXMgd2hpY2ggYmVoYXZlIGxpa2UgYml0ZmxhZ3MuCiIpCiAgICAoZGVzY3JpcHRpb24KICAg ICAgIlRoaXMgcGFja2FnZSBwcm92aWRlcyBhIG1hY3JvIHRvIGdlbmVyYXRlIHN0cnVjdHVyZXMg d2hpY2ggYmVoYXZlIGxpa2UgYml0ZmxhZ3MuCiIpCiAgICAobGljZW5zZSAjZikpKQoKKGRlZmlu ZS1wdWJsaWMgcnVzdC10ZXh0d3JhcAogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC10ZXh0d3Jh cCIpCiAgICAodmVyc2lvbiAiMC4xMS4wIikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAg ICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAidGV4dHdyYXAi IHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5h bWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNl MzIKICAgICAgICAgICAgIjBxNWhreTAzaWszeTUwczlzejI1cjQzOGJjNG53aHFjNmRxd3ludjR3 eWxjODA3bjI5bmsiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAg ICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0LWh5cGhl bmF0aW9uIiAscnVzdC1oeXBoZW5hdGlvbikKICAgICAgICAgKCJydXN0LXRlcm0tc2l6ZS0wLjMu MSIgLHJ1c3QtdGVybS1zaXplLTAuMy4xKQogICAgICAgICAoInJ1c3QtdW5pY29kZS13aWR0aCIg LHJ1c3QtdW5pY29kZS13aWR0aCkpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0 aHViLmNvbS9tZ2Vpc2xlci90ZXh0d3JhcCIpCiAgICAoc3lub3BzaXMKICAgICAgIlRleHR3cmFw IGlzIGEgc21hbGwgbGlicmFyeSBmb3Igd29yZCB3cmFwcGluZywgaW5kZW50aW5nLCBhbmQKZGVk ZW50aW5nIHN0cmluZ3MuCgpZb3UgY2FuIHVzZSBpdCB0byBmb3JtYXQgc3RyaW5ncyAoc3VjaCBh cyBoZWxwIGFuZCBlcnJvciBtZXNzYWdlcykgZm9yCmRpc3BsYXkgaW4gY29tbWFuZGxpbmUgYXBw bGljYXRpb25zLiBJdCBpcyBkZXNpZ25lZCB0byBiZSBlZmZpY2llbnQKYW5kIGhhbmRsZSBVbmlj b2RlIGNoYXJhY3RlcnMgY29ycmVjdGx5LgoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJUZXh0 d3JhcCBpcyBhIHNtYWxsIGxpYnJhcnkgZm9yIHdvcmQgd3JhcHBpbmcsIGluZGVudGluZywgYW5k CmRlZGVudGluZyBzdHJpbmdzLgoKWW91IGNhbiB1c2UgaXQgdG8gZm9ybWF0IHN0cmluZ3MgKHN1 Y2ggYXMgaGVscCBhbmQgZXJyb3IgbWVzc2FnZXMpIGZvcgpkaXNwbGF5IGluIGNvbW1hbmRsaW5l IGFwcGxpY2F0aW9ucy4gIEl0IGlzIGRlc2lnbmVkIHRvIGJlIGVmZmljaWVudAphbmQgaGFuZGxl IFVuaWNvZGUgY2hhcmFjdGVycyBjb3JyZWN0bHkuCiIpCiAgICAobGljZW5zZSBsaWNlbnNlOmV4 cGF0KSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXVuaWNvZGUtd2lkdGgKICAocGFja2FnZQogICAg KG5hbWUgInJ1c3QtdW5pY29kZS13aWR0aCIpCiAgICAodmVyc2lvbiAiMC4xLjYiKQogICAgKHNv dXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVy aSAoY3JhdGUtdXJpICJ1bmljb2RlLXdpZHRoIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1l CiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAg ICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIwODJmOWh2MXIzZ2Nk MXhsMzN3aGpocm0xOHAwdzlpNzd6aGhoa2ljY2I1cjQ3YWRuMXZoIikpKSkKICAgIChidWlsZC1z eXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28t aW5wdXRzCiAgICAgICAgKCgicnVzdC1jb21waWxlci1idWlsdGlucyIKICAgICAgICAgICxydXN0 LWNvbXBpbGVyLWJ1aWx0aW5zKQogICAgICAgICAoInJ1c3QtcnVzdGMtc3RkLXdvcmtzcGFjZS1j b3JlIgogICAgICAgICAgLHJ1c3QtcnVzdGMtc3RkLXdvcmtzcGFjZS1jb3JlKQogICAgICAgICAo InJ1c3QtcnVzdGMtc3RkLXdvcmtzcGFjZS1zdGQiCiAgICAgICAgICAscnVzdC1ydXN0Yy1zdGQt d29ya3NwYWNlLXN0ZCkpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNv bS91bmljb2RlLXJzL3VuaWNvZGUtd2lkdGgiKQogICAgKHN5bm9wc2lzCiAgICAgICJEZXRlcm1p bmUgZGlzcGxheWVkIHdpZHRoIG9mIGBjaGFyYCBhbmQgYHN0cmAgdHlwZXMKYWNjb3JkaW5nIHRv IFVuaWNvZGUgU3RhbmRhcmQgQW5uZXggIzExIHJ1bGVzLgoiKQogICAgKGRlc2NyaXB0aW9uCiAg ICAgICJEZXRlcm1pbmUgZGlzcGxheWVkIHdpZHRoIG9mIGBjaGFyYCBhbmQgYHN0cmAgdHlwZXMK YWNjb3JkaW5nIHRvIFVuaWNvZGUgU3RhbmRhcmQgQW5uZXggIzExIHJ1bGVzLgoiKQogICAgKGxp Y2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtYW5zaS10ZXJtLTAuMTEuMAogIChwYWNr YWdlCiAgICAobmFtZSAicnVzdC1hbnNpLXRlcm0iKQogICAgKHZlcnNpb24gIjAuMTEuMCIpCiAg ICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAg ICAodXJpIChjcmF0ZS11cmkgImFuc2lfdGVybSIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFt ZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAg ICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMTZ3cHZyZ2h2ZDAz NTM1ODRpMWlkbnNnbTByM3ZjaGc4ZnlybTB4OGF5djFyZ3ZibGpnZiIpKSkpCiAgICAoYnVpbGQt c3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdv LWlucHV0cyAoKCJydXN0LXdpbmFwaSIgLHJ1c3Qtd2luYXBpKSkpKQogICAgKGhvbWUtcGFnZQog ICAgICAiaHR0cHM6Ly9naXRodWIuY29tL29naGFtL3J1c3QtYW5zaS10ZXJtIikKICAgIChzeW5v cHNpcwogICAgICAiTGlicmFyeSBmb3IgQU5TSSB0ZXJtaW5hbCBjb2xvdXJzIGFuZCBzdHlsZXMg KGJvbGQsIHVuZGVybGluZSkiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJMaWJyYXJ5IGZvciBB TlNJIHRlcm1pbmFsIGNvbG91cnMgYW5kIHN0eWxlcyAoYm9sZCwgdW5kZXJsaW5lKSIpCiAgICAo bGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWF0dHkKICAocGFj a2FnZQogICAgKG5hbWUgInJ1c3QtYXR0eSIpCiAgICAodmVyc2lvbiAiMC4yLjEzIikKICAgIChz b3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1 cmkgKGNyYXRlLXVyaSAiYXR0eSIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAg ICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNo YTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMTQwc3N3cDFid3F3YzR6azgwYnhr Ym5mYjNnOTM2aGdyYjc3ZzlnMGsxemNsZDN3YzBxcSIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNh cmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwog ICAgICAgICgoInJ1c3QtbGliYyIgLHJ1c3QtbGliYykKICAgICAgICAgKCJydXN0LXdpbmFwaSIg LHJ1c3Qtd2luYXBpKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3NvZnRw cm9wcy9hdHR5IikKICAgIChzeW5vcHNpcyAiQSBzaW1wbGUgaW50ZXJmYWNlIGZvciBxdWVyeWlu ZyBhdHR5IikKICAgIChkZXNjcmlwdGlvbgogICAgICAiVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGEg c2ltcGxlIGludGVyZmFjZSBmb3IgcXVlcnlpbmcgYXR0eSIpCiAgICAobGljZW5zZSBsaWNlbnNl OmV4cGF0KSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWNsaXBweQogIChwYWNrYWdlCiAgICAobmFt ZSAicnVzdC1jbGlwcHkiKQogICAgKHZlcnNpb24gIjAuMC4zMDIiKQogICAgKHNvdXJjZQogICAg ICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUt dXJpICJjbGlwcHkiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJp bmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAg ICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjE1NjJ4M3NxOW1nbWM4ajM5Z2QzNHdxbTd5YnJk dnBtajdjYzFuNDUwZ3dzYXdheXc0ZnIiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWls ZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAo KCJydXN0LXRlcm0tMC41LjIiICxydXN0LXRlcm0tMC41LjIpKSkpCiAgICAoaG9tZS1wYWdlCiAg ICAgICJodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcnVzdC1jbGlwcHkiKQog ICAgKHN5bm9wc2lzCiAgICAgICJBIGJ1bmNoIG9mIGhlbHBmdWwgbGludHMgdG8gYXZvaWQgY29t bW9uIHBpdGZhbGxzIGluIFJ1c3QuIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiVGhpcyBwYWNr YWdlIHByb3ZpZGVzIGEgYnVuY2ggb2YgaGVscGZ1bCBsaW50cyB0byBhdm9pZCBjb21tb24gcGl0 ZmFsbHMgaW4gUnVzdC4iKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1c3Qt c3Ryc2ltLTAuOC4wCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LXN0cnNpbSIpCiAgICAodmVy c2lvbiAiMC44LjAiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1 cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJzdHJzaW0iIHZlcnNpb24pKQogICAg ICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24g Ii5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAg IjBzanNtN2hydmpkaWZ6NjYxcGp4cTV3NGhmMTkwaHg1M2ZyYThkZnZhbWFjdmZmMTM5Y2YiKSkp KQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoaG9tZS1wYWdlICJo dHRwczovL2dpdGh1Yi5jb20vZGd1by9zdHJzaW0tcnMiKQogICAgKHN5bm9wc2lzCiAgICAgICJJ bXBsZW1lbnRhdGlvbnMgb2Ygc3RyaW5nIHNpbWlsYXJpdHkgbWV0cmljcy4KSW5jbHVkZXMgSGFt bWluZywgTGV2ZW5zaHRlaW4sIE9TQSwgRGFtZXJhdS1MZXZlbnNodGVpbiwgSmFybywgYW5kIEph cm8tV2lua2xlci4KIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiSW1wbGVtZW50YXRpb25zIG9m IHN0cmluZyBzaW1pbGFyaXR5IG1ldHJpY3MuCkluY2x1ZGVzIEhhbW1pbmcsIExldmVuc2h0ZWlu LCBPU0EsIERhbWVyYXUtTGV2ZW5zaHRlaW4sIEphcm8sIGFuZCBKYXJvLVdpbmtsZXIuCiIpCiAg ICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXRlcm0tc2l6 ZS0wLjMuMQogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC10ZXJtLXNpemUiKQogICAgKHZlcnNp b24gIjAuMy4xIikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJs LWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAidGVybV9zaXplIiB2ZXJzaW9uKSkKICAg ICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9u ICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAg ICIwOXdrMzE3M25nbWI3MTBxczlyd2dpYnE0dzI1MHE4bGdud2p2YjljeXBjMXZkazlsbnd5Iikp KSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwog ICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC1jbGlwcHkiICxydXN0LWNsaXBw eSkKICAgICAgICAgKCJydXN0LWtlcm5lbDMyLXN5cyIgLHJ1c3Qta2VybmVsMzItc3lzKQogICAg ICAgICAoInJ1c3QtbGliYyIgLHJ1c3QtbGliYykKICAgICAgICAgKCJydXN0LXdpbmFwaS0wLjIu OCIgLHJ1c3Qtd2luYXBpLTAuMi44KSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9n aXRodWIuY29tL2tia25hcHAvdGVybV9zaXplLXJzLmdpdCIpCiAgICAoc3lub3BzaXMKICAgICAg ImZ1bmN0aW9ucyBmb3IgZGV0ZXJtaW5pbmcgdGVybWluYWwgc2l6ZXMgYW5kIGRpbWVuc2lvbnMi KQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJmdW5jdGlvbnMgZm9yIGRldGVybWluaW5nIHRlcm1p bmFsIHNpemVzIGFuZCBkaW1lbnNpb25zIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1 YmxpYyBydXN0LXZlYy1tYXAKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtdmVjLW1hcCIpCiAg ICAodmVyc2lvbiAiMC44LjEiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1l dGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJ2ZWNfbWFwIiB2ZXJzaW9u KSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2 ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAg ICAgICAgICIwNm44aHc0aGxiY3ozMjhhM2dicHZteTBtYTQ2dmcxbGMwcjV3ZjU1OTAwc3pmM3Fk aXE1IikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3Vt ZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzICgoInJ1c3Qtc2VyZGUiICxydXN0LXNlcmRlKSkp KQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIuY29tL2NvbnRhaW4tcnMvdmVj LW1hcCIpCiAgICAoc3lub3BzaXMKICAgICAgIkEgc2ltcGxlIG1hcCBiYXNlZCBvbiBhIHZlY3Rv ciBmb3Igc21hbGwgaW50ZWdlciBrZXlzIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiVGhpcyBw YWNrYWdlIHByb3ZpZGVzIGEgc2ltcGxlIG1hcCBiYXNlZCBvbiBhIHZlY3RvciBmb3Igc21hbGwg aW50ZWdlciBrZXlzIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXlh bWwtcnVzdC0wLjMuNQogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC15YW1sLXJ1c3QiKQogICAg KHZlcnNpb24gIjAuMy41IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRo b2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAieWFtbC1ydXN0IiB2ZXJzaW9u KSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2 ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAg ICAgICAgICIxNG05ZHp3YjhmYjA1ZjRqamI0bnFwNDlyeGQ5YzV2Y213cHYzYTA0ZDJ5NWlwaG5j cXo2IikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3Vt ZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC1jbGlwcHkiICxydXN0 LWNsaXBweSkKICAgICAgICAgKCJydXN0LWxpbmtlZC1oYXNoLW1hcC0wLjMuMCIKICAgICAgICAg ICxydXN0LWxpbmtlZC1oYXNoLW1hcC0wLjMuMCkpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0 dHA6Ly9jaHloMTk5MC5naXRodWIuaW8veWFtbC1ydXN0LyIpCiAgICAoc3lub3BzaXMgIlRoZSBt aXNzaW5nIFlBTUwgMS4yIHBhcnNlciBmb3IgcnVzdCIpCiAgICAoZGVzY3JpcHRpb24KICAgICAg IlRoZSBtaXNzaW5nIFlBTUwgMS4yIHBhcnNlciBmb3IgcnVzdCIpCiAgICAobGljZW5zZSAjZikp KQoKKGRlZmluZS1wdWJsaWMgcnVzdC1oeXBoZW5hdGlvbgogIChwYWNrYWdlCiAgICAobmFtZSAi cnVzdC1oeXBoZW5hdGlvbiIpCiAgICAodmVyc2lvbiAiMC43LjEiKQogICAgKHNvdXJjZQogICAg ICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUt dXJpICJoeXBoZW5hdGlvbiIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAg KHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1 NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMGs1bXN2OGNhbG1uZmQ1a3cxcm1xNGJn NWhuMXZjZDM5a2JzeGw1N3NkbGQ2M3h3ZDRxNCIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdv LWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAg ICAgICgoInJ1c3QtYXRsYXRsIiAscnVzdC1hdGxhdGwpCiAgICAgICAgICgicnVzdC1hdGxhdGwi ICxydXN0LWF0bGF0bCkKICAgICAgICAgKCJydXN0LWJpbmNvZGUiICxydXN0LWJpbmNvZGUpCiAg ICAgICAgICgicnVzdC1iaW5jb2RlIiAscnVzdC1iaW5jb2RlKQogICAgICAgICAoInJ1c3QtaHlw aGVuYXRpb24tY29tbW9ucyIKICAgICAgICAgICxydXN0LWh5cGhlbmF0aW9uLWNvbW1vbnMpCiAg ICAgICAgICgicnVzdC1oeXBoZW5hdGlvbi1jb21tb25zIgogICAgICAgICAgLHJ1c3QtaHlwaGVu YXRpb24tY29tbW9ucykKICAgICAgICAgKCJydXN0LXBvY2tldC1yZXNvdXJjZXMiICxydXN0LXBv Y2tldC1yZXNvdXJjZXMpCiAgICAgICAgICgicnVzdC1zZXJkZSIgLHJ1c3Qtc2VyZGUpCiAgICAg ICAgICgicnVzdC1zZXJkZSIgLHJ1c3Qtc2VyZGUpCiAgICAgICAgICgicnVzdC11bmljb2RlLW5v cm1hbGl6YXRpb24iCiAgICAgICAgICAscnVzdC11bmljb2RlLW5vcm1hbGl6YXRpb24pKSkpCiAg ICAoaG9tZS1wYWdlCiAgICAgICJodHRwczovL2dpdGh1Yi5jb20vdGFwZWlub3N5bmUvaHlwaGVu YXRpb24iKQogICAgKHN5bm9wc2lzCiAgICAgICJLbnV0aC1MaWFuZyBoeXBoZW5hdGlvbiBmb3Ig YSB2YXJpZXR5IG9mIGxhbmd1YWdlcyIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIktudXRoLUxp YW5nIGh5cGhlbmF0aW9uIGZvciBhIHZhcmlldHkgb2YgbGFuZ3VhZ2VzIikKICAgIChsaWNlbnNl ICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWNvbXBpbGVyLWJ1aWx0aW5zCiAgKHBhY2thZ2UK ICAgIChuYW1lICJydXN0LWNvbXBpbGVyLWJ1aWx0aW5zIikKICAgICh2ZXJzaW9uICIwLjEuMjEi KQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAg ICAgICAgKHVyaSAoY3JhdGUtdXJpICJjb21waWxlcl9idWlsdGlucyIgdmVyc2lvbikpCiAgICAg ICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAi LmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAi MDh6MTR5NXljNGN4eTJkNTdhYWE4M2NwNDZ4Zjd5eDgzeTU3amc3ODVkZDVmdjlqMWlmayIpKSkp CiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAg ICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtY2MiICxydXN0LWNjKQogICAgICAg ICAoInJ1c3QtcnVzdGMtc3RkLXdvcmtzcGFjZS1jb3JlIgogICAgICAgICAgLHJ1c3QtcnVzdGMt c3RkLXdvcmtzcGFjZS1jb3JlKSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRo dWIuY29tL3J1c3QtbGFuZy9jb21waWxlci1idWlsdGlucyIpCiAgICAoc3lub3BzaXMKICAgICAg IkNvbXBpbGVyIGludHJpbnNpY3MgdXNlZCBieSB0aGUgUnVzdCBjb21waWxlci4gQWxzbyBhdmFp bGFibGUgZm9yIG90aGVyIHRhcmdldHMKaWYgbmVjZXNzYXJ5IQoiKQogICAgKGRlc2NyaXB0aW9u CiAgICAgICJDb21waWxlciBpbnRyaW5zaWNzIHVzZWQgYnkgdGhlIFJ1c3QgY29tcGlsZXIuICBB bHNvIGF2YWlsYWJsZSBmb3Igb3RoZXIgdGFyZ2V0cwppZiBuZWNlc3NhcnkhCiIpCiAgICAobGlj ZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1ydXN0Yy1zdGQtd29ya3NwYWNlLWNvcmUK ICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtcnVzdGMtc3RkLXdvcmtzcGFjZS1jb3JlIikKICAg ICh2ZXJzaW9uICIxLjAuMCIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0 aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgInJ1c3RjLXN0ZC13b3Jrc3Bh Y2UtY29yZSIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1h cHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAg ICAgKGJhc2UzMgogICAgICAgICAgICAiMTMwOXhod3lhaTl4cHoxMjh4cmZqcWttbmt2Z2p3ZGR6 bm1qN2JyYmQ4aThmNTh6YW1ociIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5 c3RlbSkKICAgIChob21lLXBhZ2UgIiIpCiAgICAoc3lub3BzaXMKICAgICAgIkV4cGxpY2l0bHkg ZW1wdHkgY3JhdGUgZm9yIHJ1c3QtbGFuZy9ydXN0IGludGVncmF0aW9uCiIpCiAgICAoZGVzY3Jp cHRpb24KICAgICAgIkV4cGxpY2l0bHkgZW1wdHkgY3JhdGUgZm9yIHJ1c3QtbGFuZy9ydXN0IGlu dGVncmF0aW9uCiIpCiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1ydXN0 Yy1zdGQtd29ya3NwYWNlLXN0ZAogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1ydXN0Yy1zdGQt d29ya3NwYWNlLXN0ZCIpCiAgICAodmVyc2lvbiAiMS4wLjEiKQogICAgKHNvdXJjZQogICAgICAo b3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJp ICJydXN0Yy1zdGQtd29ya3NwYWNlLXN0ZCIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQog ICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAg ICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMXZxNHZhY2xhbXdoazBh bGY0Zjd3cTNpOXd4YTk5M3N4cG1oeTZxZmFpbXkxYWk3ZDltYiIpKSkpCiAgICAoYnVpbGQtc3lz dGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChob21lLXBhZ2UgIiIpCiAgICAoc3lub3BzaXMg Ildvcmthcm91bmQgZm9yIHJ1c3RidWlsZCIpCiAgICAoZGVzY3JpcHRpb24gIldvcmthcm91bmQg Zm9yIHJ1c3RidWlsZCIpCiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC13 aW5hcGkKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3Qtd2luYXBpIikKICAgICh2ZXJzaW9uICIw LjMuOCIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRj aCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgIndpbmFwaSIgdmVyc2lvbikpCiAgICAgICAgKGZp bGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRl IikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMWlpOWo5 bHpyaHdyaTA5MDI2NTJhd2lmeng5ZnBheWltYnA2aGZoaGMyOTZ4Y2cwazR3MCIpKSkpCiAgICAo YnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgj OmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3Qtd2luYXBpLWk2ODYtcGMtd2luZG93cy1nbnUi CiAgICAgICAgICAscnVzdC13aW5hcGktaTY4Ni1wYy13aW5kb3dzLWdudSkKICAgICAgICAgKCJy dXN0LXdpbmFwaS14ODYtNjQtcGMtd2luZG93cy1nbnUiCiAgICAgICAgICAscnVzdC13aW5hcGkt eDg2LTY0LXBjLXdpbmRvd3MtZ251KSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9n aXRodWIuY29tL3JldGVwOTk4L3dpbmFwaS1ycyIpCiAgICAoc3lub3BzaXMKICAgICAgIlJhdyBG RkkgYmluZGluZ3MgZm9yIGFsbCBvZiBXaW5kb3dzIEFQSS4iKQogICAgKGRlc2NyaXB0aW9uCiAg ICAgICJSYXcgRkZJIGJpbmRpbmdzIGZvciBhbGwgb2YgV2luZG93cyBBUEkuIikKICAgIChsaWNl bnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWxpYmMKICAocGFja2FnZQogICAgKG5hbWUg InJ1c3QtbGliYyIpCiAgICAodmVyc2lvbiAiMC4yLjY2IikKICAgIChzb3VyY2UKICAgICAgKG9y aWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAi bGliYyIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBl bmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAg KGJhc2UzMgogICAgICAgICAgICAiMG4wbXdyeTIxZnhmd2MwNjNrMzNtdnhrOHhqN2lhNWFyOG00 MmM5eW1iYW0ya3NiMjVmbSIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3Rl bSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3Qt cnVzdGMtc3RkLXdvcmtzcGFjZS1jb3JlIgogICAgICAgICAgLHJ1c3QtcnVzdGMtc3RkLXdvcmtz cGFjZS1jb3JlKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFu Zy9saWJjIikKICAgIChzeW5vcHNpcwogICAgICAiUmF3IEZGSSBiaW5kaW5ncyB0byBwbGF0Zm9y bSBsaWJyYXJpZXMgbGlrZSBsaWJjLgoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJSYXcgRkZJ IGJpbmRpbmdzIHRvIHBsYXRmb3JtIGxpYnJhcmllcyBsaWtlIGxpYmMuCiIpCiAgICAobGljZW5z ZSAobGlzdCBsaWNlbnNlOmV4cGF0IGxpY2Vuc2U6YXNsMi4wKSkpKQoKKGRlZmluZS1wdWJsaWMg cnVzdC10ZXJtLTAuNS4yCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LXRlcm0iKQogICAgKHZl cnNpb24gIjAuNS4yIikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2Qg dXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAidGVybSIgdmVyc2lvbikpCiAgICAg ICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAi LmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAi MGhrZ2pyZmlzajZ6and6NTI1NjM5cG1zdnpobGM0OGEwaDY1bnc4N3FyZHA2amloZGxnZCIpKSkp CiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAg ICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtYnl0ZW9yZGVyIiAscnVzdC1ieXRl b3JkZXIpCiAgICAgICAgICgicnVzdC1kaXJzLTEuMC41IiAscnVzdC1kaXJzLTEuMC41KQogICAg ICAgICAoInJ1c3Qtd2luYXBpIiAscnVzdC13aW5hcGkpKSkpCiAgICAoaG9tZS1wYWdlICJodHRw czovL2dpdGh1Yi5jb20vU3RlYmFsaWVuL3Rlcm0iKQogICAgKHN5bm9wc2lzICJBIHRlcm1pbmFs IGZvcm1hdHRpbmcgbGlicmFyeQoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJUaGlzIHBhY2th Z2UgcHJvdmlkZXMgYSB0ZXJtaW5hbCBmb3JtYXR0aW5nIGxpYnJhcnkKIikKICAgIChsaWNlbnNl ICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWtlcm5lbDMyLXN5cwogIChwYWNrYWdlCiAgICAo bmFtZSAicnVzdC1rZXJuZWwzMi1zeXMiKQogICAgKHZlcnNpb24gIjAuMi4yIikKICAgIChzb3Vy Y2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkg KGNyYXRlLXVyaSAia2VybmVsMzItc3lzIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAg ICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAg ICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxMzg5YXYwNjAxYTl5ejhk dng1emhhOXZta2Q2aWs3YXgwaWRwYjAzMmQyODU1NW40MXZtIikpKSkKICAgIChidWlsZC1zeXN0 ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5w dXRzCiAgICAgICAgKCgicnVzdC13aW5hcGktMC4yLjgiICxydXN0LXdpbmFwaS0wLjIuOCkKICAg ICAgICAgKCJydXN0LXdpbmFwaS1idWlsZCIgLHJ1c3Qtd2luYXBpLWJ1aWxkKSkpKQogICAgKGhv bWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIuY29tL3JldGVwOTk4L3dpbmFwaS1ycyIpCiAg ICAoc3lub3BzaXMKICAgICAgIkNvbnRhaW5zIGZ1bmN0aW9uIGRlZmluaXRpb25zIGZvciB0aGUg V2luZG93cyBBUEkgbGlicmFyeSBrZXJuZWwzMi4gU2VlIHdpbmFwaSBmb3IgdHlwZXMgYW5kIGNv bnN0YW50cy4iKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJDb250YWlucyBmdW5jdGlvbiBkZWZp bml0aW9ucyBmb3IgdGhlIFdpbmRvd3MgQVBJIGxpYnJhcnkga2VybmVsMzIuICBTZWUgd2luYXBp IGZvciB0eXBlcyBhbmQgY29uc3RhbnRzLiIpCiAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkp CgooZGVmaW5lLXB1YmxpYyBydXN0LXdpbmFwaS0wLjIuOAogIChwYWNrYWdlCiAgICAobmFtZSAi cnVzdC13aW5hcGkiKQogICAgKHZlcnNpb24gIjAuMi44IikKICAgIChzb3VyY2UKICAgICAgKG9y aWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAi d2luYXBpIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFw cGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAg ICAoYmFzZTMyCiAgICAgICAgICAgICIweWg4MTZsaDZsZjU2ZHBzZ3h5MTg5YzJhaTF6M2o4bXc5 c2k2aXpxYjZ3c2prYmNqejhuIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lz dGVtKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIuY29tL3JldGVwOTk4L3dp bmFwaS1ycyIpCiAgICAoc3lub3BzaXMKICAgICAgIlJhdyBGRkkgYmluZGluZ3MgZm9yIGFsbCBv ZiBXaW5kb3dzIEFQSS4iKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJSYXcgRkZJIGJpbmRpbmdz IGZvciBhbGwgb2YgV2luZG93cyBBUEkuIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkK CihkZWZpbmUtcHVibGljIHJ1c3Qtc2VyZGUKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3Qtc2Vy ZGUiKQogICAgKHZlcnNpb24gIjEuMC4xMDMiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAg ICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJzZXJkZSIg dmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFt ZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2Uz MgogICAgICAgICAgICAiMDBpcDN4eTA5bms2YzJiNDdreTFtNTM3OXlqbXdrNm4zc3Iydm1ibHA0 NzhwMXhnajVxaiIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAg IChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3Qtc2VyZGUt ZGVyaXZlIiAscnVzdC1zZXJkZS1kZXJpdmUpKSkpCiAgICAoaG9tZS1wYWdlICJodHRwczovL3Nl cmRlLnJzIikKICAgIChzeW5vcHNpcwogICAgICAiQSBnZW5lcmljIHNlcmlhbGl6YXRpb24vZGVz ZXJpYWxpemF0aW9uIGZyYW1ld29yayIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIlRoaXMgcGFj a2FnZSBwcm92aWRlcyBhIGdlbmVyaWMgc2VyaWFsaXphdGlvbi9kZXNlcmlhbGl6YXRpb24gZnJh bWV3b3JrIikKICAgIChsaWNlbnNlIChsaXN0IGxpY2Vuc2U6ZXhwYXQgbGljZW5zZTphc2wyLjAp KSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWxpbmtlZC1oYXNoLW1hcC0wLjMuMAogIChwYWNrYWdl CiAgICAobmFtZSAicnVzdC1saW5rZWQtaGFzaC1tYXAiKQogICAgKHZlcnNpb24gIjAuMy4wIikK ICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAg ICAgICh1cmkgKGNyYXRlLXVyaSAibGlua2VkLWhhc2gtbWFwIiB2ZXJzaW9uKSkKICAgICAgICAo ZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3Jh dGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxa2Fm OTVncnZmcWNoeG44cGwwODU0ZzhhYjBmemw1NjIxN2huZGhoaHo1cXFtMmowOWtkIikpKSkKICAg IChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBg KCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC1jbGlwcHkiICxydXN0LWNsaXBweSkKICAg ICAgICAgKCJydXN0LXNlcmRlLTAuOC4yMyIgLHJ1c3Qtc2VyZGUtMC44LjIzKQogICAgICAgICAo InJ1c3Qtc2VyZGUtdGVzdC0wLjguMjMiCiAgICAgICAgICAscnVzdC1zZXJkZS10ZXN0LTAuOC4y MykpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9jb250YWluLXJz L2xpbmtlZC1oYXNoLW1hcCIpCiAgICAoc3lub3BzaXMKICAgICAgIkEgSGFzaE1hcCB3cmFwcGVy IHRoYXQgaG9sZHMga2V5LXZhbHVlIHBhaXJzIGluIGluc2VydGlvbiBvcmRlciIpCiAgICAoZGVz Y3JpcHRpb24KICAgICAgIlRoaXMgcGFja2FnZSBwcm92aWRlcyBhIEhhc2hNYXAgd3JhcHBlciB0 aGF0IGhvbGRzIGtleS12YWx1ZSBwYWlycyBpbiBpbnNlcnRpb24gb3JkZXIiKQogICAgKGxpY2Vu c2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtYXRsYXRsCiAgKHBhY2thZ2UKICAgIChuYW1l ICJydXN0LWF0bGF0bCIpCiAgICAodmVyc2lvbiAiMC4xLjIiKQogICAgKHNvdXJjZQogICAgICAo b3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJp ICJhdGxhdGwiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmct YXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAg ICAgIChiYXNlMzIKICAgICAgICAgICAgIjE4a3l2ZG01NmZkYjUyYjFzcnlpODB4Z3MzbmtqZHls eW5zdjMyNGFpcW5qODVsMWJmcmoiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1z eXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJy dXN0LWZudiIgLHJ1c3QtZm52KQogICAgICAgICAoInJ1c3QtbnVtLXRyYWl0cyIgLHJ1c3QtbnVt LXRyYWl0cykKICAgICAgICAgKCJydXN0LXNlcmRlIiAscnVzdC1zZXJkZSkpKSkKICAgIChob21l LXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS90YXBlaW5vc3luZS9hdGxhdGwiKQogICAg KHN5bm9wc2lzICJEb3VibGUtYXJyYXkgdHJpZXMuIikKICAgIChkZXNjcmlwdGlvbiAiRG91Ymxl LWFycmF5IHRyaWVzLiIpCiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1h dGxhdGwKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtYXRsYXRsIikKICAgICh2ZXJzaW9uICIw LjEuMiIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRj aCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgImF0bGF0bCIgdmVyc2lvbikpCiAgICAgICAgKGZp bGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRl IikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMThreXZk bTU2ZmRiNTJiMXNyeWk4MHhnczNua2pkeWx5bnN2MzI0YWlxbmo4NWwxYmZyaiIpKSkpCiAgICAo YnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgj OmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtZm52IiAscnVzdC1mbnYpCiAgICAgICAgICgi cnVzdC1udW0tdHJhaXRzIiAscnVzdC1udW0tdHJhaXRzKQogICAgICAgICAoInJ1c3Qtc2VyZGUi ICxydXN0LXNlcmRlKSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIuY29t L3RhcGVpbm9zeW5lL2F0bGF0bCIpCiAgICAoc3lub3BzaXMgIkRvdWJsZS1hcnJheSB0cmllcy4i KQogICAgKGRlc2NyaXB0aW9uICJEb3VibGUtYXJyYXkgdHJpZXMuIikKICAgIChsaWNlbnNlICNm KSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWJpbmNvZGUKICAocGFja2FnZQogICAgKG5hbWUgInJ1 c3QtYmluY29kZSIpCiAgICAodmVyc2lvbiAiMS4yLjAiKQogICAgKHNvdXJjZQogICAgICAob3Jp Z2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJi aW5jb2RlIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFw cGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAg ICAoYmFzZTMyCiAgICAgICAgICAgICIxNGp6ajYxYzE0NXM5andyMWkyMTNiN21kY212MW55NHox bG5zOXM4Z3ZwMzRqOW43YXhxIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lz dGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVz dC1hdXRvY2ZnIiAscnVzdC1hdXRvY2ZnKQogICAgICAgICAoInJ1c3QtYnl0ZW9yZGVyIiAscnVz dC1ieXRlb3JkZXIpCiAgICAgICAgICgicnVzdC1zZXJkZSIgLHJ1c3Qtc2VyZGUpKSkpCiAgICAo aG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vc2Vydm8vYmluY29kZSIpCiAgICAoc3lub3Bz aXMKICAgICAgIkEgYmluYXJ5IHNlcmlhbGl6YXRpb24gLyBkZXNlcmlhbGl6YXRpb24gc3RyYXRl Z3kgdGhhdCB1c2VzIFNlcmRlIGZvciB0cmFuc2Zvcm1pbmcgc3RydWN0cyBpbnRvIGJ5dGVzIGFu ZCB2aWNlIHZlcnNhISIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIlRoaXMgcGFja2FnZSBwcm92 aWRlcyBhIGJpbmFyeSBzZXJpYWxpemF0aW9uIC8gZGVzZXJpYWxpemF0aW9uIHN0cmF0ZWd5IHRo YXQgdXNlcyBTZXJkZSBmb3IgdHJhbnNmb3JtaW5nIHN0cnVjdHMgaW50byBieXRlcyBhbmQgdmlj ZSB2ZXJzYSEiKQogICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQoKKGRlZmluZS1wdWJsaWMg cnVzdC1iaW5jb2RlCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LWJpbmNvZGUiKQogICAgKHZl cnNpb24gIjEuMi4wIikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2Qg dXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAiYmluY29kZSIgdmVyc2lvbikpCiAg ICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lv biAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAg ICAiMTRqemo2MWMxNDVzOWp3cjFpMjEzYjdtZGNtdjFueTR6MWxuczlzOGd2cDM0ajluN2F4cSIp KSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMK ICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtYXV0b2NmZyIgLHJ1c3QtYXV0 b2NmZykKICAgICAgICAgKCJydXN0LWJ5dGVvcmRlciIgLHJ1c3QtYnl0ZW9yZGVyKQogICAgICAg ICAoInJ1c3Qtc2VyZGUiICxydXN0LXNlcmRlKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9n aXRodWIuY29tL3NlcnZvL2JpbmNvZGUiKQogICAgKHN5bm9wc2lzCiAgICAgICJBIGJpbmFyeSBz ZXJpYWxpemF0aW9uIC8gZGVzZXJpYWxpemF0aW9uIHN0cmF0ZWd5IHRoYXQgdXNlcyBTZXJkZSBm b3IgdHJhbnNmb3JtaW5nIHN0cnVjdHMgaW50byBieXRlcyBhbmQgdmljZSB2ZXJzYSEiKQogICAg KGRlc2NyaXB0aW9uCiAgICAgICJUaGlzIHBhY2thZ2UgcHJvdmlkZXMgYSBiaW5hcnkgc2VyaWFs aXphdGlvbiAvIGRlc2VyaWFsaXphdGlvbiBzdHJhdGVneSB0aGF0IHVzZXMgU2VyZGUgZm9yIHRy YW5zZm9ybWluZyBzdHJ1Y3RzIGludG8gYnl0ZXMgYW5kIHZpY2UgdmVyc2EhIikKICAgIChsaWNl bnNlIGxpY2Vuc2U6ZXhwYXQpKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtaHlwaGVuYXRpb24tY29t bW9ucwogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1oeXBoZW5hdGlvbi1jb21tb25zIikKICAg ICh2ZXJzaW9uICIwLjcuMSIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0 aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgImh5cGhlbmF0aW9uX2NvbW1v bnMiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5k IG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChi YXNlMzIKICAgICAgICAgICAgIjFwYXNuYmszcmJkZ2YzMGpqamgxaDI0YTlweHBkcm5uMGloY2l2 bXBuenFoYTZtbjJkNHkiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0p CiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0LWF0 bGF0bCIgLHJ1c3QtYXRsYXRsKQogICAgICAgICAoInJ1c3Qtc2VyZGUiICxydXN0LXNlcmRlKSkp KQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIuY29tL3RhcGVpbm9zeW5lL2h5 cGhlbmF0aW9uIikKICAgIChzeW5vcHNpcwogICAgICAiUHJvZW1pYWwgY29kZSBmb3IgdGhlIGBo eXBoZW5hdGlvbmAgbGlicmFyeSIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIlByb2VtaWFsIGNv ZGUgZm9yIHRoZSBgaHlwaGVuYXRpb25gIGxpYnJhcnkiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihk ZWZpbmUtcHVibGljIHJ1c3QtaHlwaGVuYXRpb24tY29tbW9ucwogIChwYWNrYWdlCiAgICAobmFt ZSAicnVzdC1oeXBoZW5hdGlvbi1jb21tb25zIikKICAgICh2ZXJzaW9uICIwLjcuMSIpCiAgICAo c291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAo dXJpIChjcmF0ZS11cmkgImh5cGhlbmF0aW9uX2NvbW1vbnMiIHZlcnNpb24pKQogICAgICAgIChm aWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0 ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjFwYXNu YmszcmJkZ2YzMGpqamgxaDI0YTlweHBkcm5uMGloY2l2bXBuenFoYTZtbjJkNHkiKSkpKQogICAg KGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAo IzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0LWF0bGF0bCIgLHJ1c3QtYXRsYXRsKQogICAg ICAgICAoInJ1c3Qtc2VyZGUiICxydXN0LXNlcmRlKSkpKQogICAgKGhvbWUtcGFnZQogICAgICAi aHR0cHM6Ly9naXRodWIuY29tL3RhcGVpbm9zeW5lL2h5cGhlbmF0aW9uIikKICAgIChzeW5vcHNp cwogICAgICAiUHJvZW1pYWwgY29kZSBmb3IgdGhlIGBoeXBoZW5hdGlvbmAgbGlicmFyeSIpCiAg ICAoZGVzY3JpcHRpb24KICAgICAgIlByb2VtaWFsIGNvZGUgZm9yIHRoZSBgaHlwaGVuYXRpb25g IGxpYnJhcnkiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtcG9ja2V0 LXJlc291cmNlcwogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1wb2NrZXQtcmVzb3VyY2VzIikK ICAgICh2ZXJzaW9uICIwLjMuMiIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAo bWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgInBvY2tldC1yZXNvdXJj ZXMiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5k IG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChi YXNlMzIKICAgICAgICAgICAgIjFuMmk1dm1pOGZkYnc4OXdtNW56MXdzMXo5ZjFxYXg5MTFwNmtz ZzRzY21kZzIzejZkZjEiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0p CiAgICAoaG9tZS1wYWdlCiAgICAgICJodHRwczovL2dpdGh1Yi5jb20vdG9tYWthL3BvY2tldC1y ZXNvdXJjZXMiKQogICAgKHN5bm9wc2lzCiAgICAgICJJbmNsdWRlIHJlc291cmNlcyBpbiB5b3Vy IGFwcGxpY2F0aW9ucy4iKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJJbmNsdWRlIHJlc291cmNl cyBpbiB5b3VyIGFwcGxpY2F0aW9ucy4iKQogICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQoK KGRlZmluZS1wdWJsaWMgcnVzdC11bmljb2RlLW5vcm1hbGl6YXRpb24KICAocGFja2FnZQogICAg KG5hbWUgInJ1c3QtdW5pY29kZS1ub3JtYWxpemF0aW9uIikKICAgICh2ZXJzaW9uICIwLjEuMTEi KQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAg ICAgICAgKHVyaSAoY3JhdGUtdXJpICJ1bmljb2RlLW5vcm1hbGl6YXRpb24iIHZlcnNpb24pKQog ICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNp b24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAg ICAgIjFreHhiNW5kYjVkenlwMWZsYWpqZHhuYnd5anc2bWw5eHZ5MHB6N2I4c3JqbjlreTRxZG0i KSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRz CiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0LXNtYWxsdmVjIiAscnVzdC1z bWFsbHZlYykpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS91bmlj b2RlLXJzL3VuaWNvZGUtbm9ybWFsaXphdGlvbiIpCiAgICAoc3lub3BzaXMKICAgICAgIlRoaXMg Y3JhdGUgcHJvdmlkZXMgZnVuY3Rpb25zIGZvciBub3JtYWxpemF0aW9uIG9mClVuaWNvZGUgc3Ry aW5ncywgaW5jbHVkaW5nIENhbm9uaWNhbCBhbmQgQ29tcGF0aWJsZQpEZWNvbXBvc2l0aW9uIGFu ZCBSZWNvbXBvc2l0aW9uLCBhcyBkZXNjcmliZWQgaW4KVW5pY29kZSBTdGFuZGFyZCBBbm5leCAj MTUuCiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIlRoaXMgY3JhdGUgcHJvdmlkZXMgZnVuY3Rp b25zIGZvciBub3JtYWxpemF0aW9uIG9mClVuaWNvZGUgc3RyaW5ncywgaW5jbHVkaW5nIENhbm9u aWNhbCBhbmQgQ29tcGF0aWJsZQpEZWNvbXBvc2l0aW9uIGFuZCBSZWNvbXBvc2l0aW9uLCBhcyBk ZXNjcmliZWQgaW4KVW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMTUuCiIpCiAgICAobGljZW5zZSAj ZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1jYwogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1j YyIpCiAgICAodmVyc2lvbiAiMS4wLjQ3IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAg ICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAiY2MiIHZlcnNp b24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0i IHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAg ICAgICAgICAgIjFmMDg1NjBjd2JhbG5pMWZjMmpjbWgxZHN6bDNyYzMxYXp2cjQ1Ymd6OHZocnM2 aGIxeGEiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJn dW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0LWpvYnNlcnZlciIg LHJ1c3Qtam9ic2VydmVyKQogICAgICAgICAoInJ1c3QtbnVtLWNwdXMiICxydXN0LW51bS1jcHVz KSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIuY29tL2FsZXhjcmljaHRv bi9jYy1ycyIpCiAgICAoc3lub3BzaXMKICAgICAgIkEgYnVpbGQtdGltZSBkZXBlbmRlbmN5IGZv ciBDYXJnbyBidWlsZCBzY3JpcHRzIHRvIGFzc2lzdCBpbiBpbnZva2luZyB0aGUgbmF0aXZlCkMg Y29tcGlsZXIgdG8gY29tcGlsZSBuYXRpdmUgQyBjb2RlIGludG8gYSBzdGF0aWMgYXJjaGl2ZSB0 byBiZSBsaW5rZWQgaW50byBSdXN0CmNvZGUuCiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIlRo aXMgcGFja2FnZSBwcm92aWRlcyBhIGJ1aWxkLXRpbWUgZGVwZW5kZW5jeSBmb3IgQ2FyZ28gYnVp bGQgc2NyaXB0cyB0byBhc3Npc3QgaW4gaW52b2tpbmcgdGhlIG5hdGl2ZQpDIGNvbXBpbGVyIHRv IGNvbXBpbGUgbmF0aXZlIEMgY29kZSBpbnRvIGEgc3RhdGljIGFyY2hpdmUgdG8gYmUgbGlua2Vk IGludG8gUnVzdApjb2RlLgoiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1 c3Qtd2luYXBpLWk2ODYtcGMtd2luZG93cy1nbnUKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3Qt d2luYXBpLWk2ODYtcGMtd2luZG93cy1nbnUiKQogICAgKHZlcnNpb24gIjAuNC4wIikKICAgIChz b3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1 cmkgKGNyYXRlLXVyaSAid2luYXBpLWk2ODYtcGMtd2luZG93cy1nbnUiIHZlcnNpb24pKQogICAg ICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24g Ii5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAg IjFkbXBhNm12Y3Z6ejE2emc2ZDV2cmZ5NGJ4Z2c1NDF3eHJjaXA3Y25zaGkwNnYzOGZmeGMiKSkp KQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoaG9tZS1wYWdlCiAg ICAgICJodHRwczovL2dpdGh1Yi5jb20vcmV0ZXA5OTgvd2luYXBpLXJzIikKICAgIChzeW5vcHNp cwogICAgICAiSW1wb3J0IGxpYnJhcmllcyBmb3IgdGhlIGk2ODYtcGMtd2luZG93cy1nbnUgdGFy Z2V0LiBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMgY3JhdGUgZGlyZWN0bHksIGRlcGVuZCBvbiB3aW5h cGkgaW5zdGVhZC4iKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJJbXBvcnQgbGlicmFyaWVzIGZv ciB0aGUgaTY4Ni1wYy13aW5kb3dzLWdudSB0YXJnZXQuICBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMg Y3JhdGUgZGlyZWN0bHksIGRlcGVuZCBvbiB3aW5hcGkgaW5zdGVhZC4iKQogICAgKGxpY2Vuc2Ug I2YpKSkKCihkZWZpbmUtcHVibGljIHJ1c3Qtd2luYXBpLXg4Ni02NC1wYy13aW5kb3dzLWdudQog IChwYWNrYWdlCiAgICAobmFtZSAicnVzdC13aW5hcGkteDg2LTY0LXBjLXdpbmRvd3MtZ251IikK ICAgICh2ZXJzaW9uICIwLjQuMCIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAo bWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkKICAgICAgICAgICAgICAg IndpbmFwaS14ODZfNjQtcGMtd2luZG93cy1nbnUiCiAgICAgICAgICAgICAgIHZlcnNpb24pKQog ICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNp b24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAg ICAgIjBncXE2NGN6cWI2NGtza2pyeWo4aXNwNjJtMnNndngyNXl5ajNrcGMybXloODV3MjRia2ki KSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoaG9tZS1wYWdl CiAgICAgICJodHRwczovL2dpdGh1Yi5jb20vcmV0ZXA5OTgvd2luYXBpLXJzIikKICAgIChzeW5v cHNpcwogICAgICAiSW1wb3J0IGxpYnJhcmllcyBmb3IgdGhlIHg4Nl82NC1wYy13aW5kb3dzLWdu dSB0YXJnZXQuIFBsZWFzZSBkb24ndCB1c2UgdGhpcyBjcmF0ZSBkaXJlY3RseSwgZGVwZW5kIG9u IHdpbmFwaSBpbnN0ZWFkLiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIkltcG9ydCBsaWJyYXJp ZXMgZm9yIHRoZSB4ODZfNjQtcGMtd2luZG93cy1nbnUgdGFyZ2V0LiAgUGxlYXNlIGRvbid0IHVz ZSB0aGlzIGNyYXRlIGRpcmVjdGx5LCBkZXBlbmQgb24gd2luYXBpIGluc3RlYWQuIikKICAgIChs aWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWJ5dGVvcmRlcgogIChwYWNrYWdlCiAg ICAobmFtZSAicnVzdC1ieXRlb3JkZXIiKQogICAgKHZlcnNpb24gIjEuMy4yIikKICAgIChzb3Vy Y2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkg KGNyYXRlLXVyaSAiYnl0ZW9yZGVyIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAg ICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAo c2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxeGJ3amxtcTJ6aXFqbWp2a3F4 ZHgxeWgxMzZ4eGhpbHhkNDBia3kxdzRkN2huNHh2aHg3IikpKSkKICAgIChidWlsZC1zeXN0ZW0g Y2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIu Y29tL0J1cm50U3VzaGkvYnl0ZW9yZGVyIikKICAgIChzeW5vcHNpcwogICAgICAiTGlicmFyeSBm b3IgcmVhZGluZy93cml0aW5nIG51bWJlcnMgaW4gYmlnLWVuZGlhbiBhbmQgbGl0dGxlLWVuZGlh bi4iKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJMaWJyYXJ5IGZvciByZWFkaW5nL3dyaXRpbmcg bnVtYmVycyBpbiBiaWctZW5kaWFuIGFuZCBsaXR0bGUtZW5kaWFuLiIpCiAgICAobGljZW5zZSAo bGlzdCBsaWNlbnNlOnVubGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpKQoKKGRlZmluZS1wdWJsaWMg cnVzdC1kaXJzLTEuMC41CiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LWRpcnMiKQogICAgKHZl cnNpb24gIjEuMC41IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2Qg dXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAiZGlycyIgdmVyc2lvbikpCiAgICAg ICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAi LmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAi MDA5cnJoemo5cHh5bmNtbTJ2aGxqNzBucGcwY2dnZ3YyaGpiYmtpd2RsOXZjY3E4a21yeiIpKSkp CiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAg ICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtbGliYyIgLHJ1c3QtbGliYykKICAg ICAgICAgKCJydXN0LXJlZG94LXVzZXJzIiAscnVzdC1yZWRveC11c2VycykKICAgICAgICAgKCJy dXN0LXdpbmFwaSIgLHJ1c3Qtd2luYXBpKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRo dWIuY29tL3NvYy9kaXJzLXJzIikKICAgIChzeW5vcHNpcwogICAgICAiQSB0aW55IGxvdy1sZXZl bCBsaWJyYXJ5IHRoYXQgcHJvdmlkZXMgcGxhdGZvcm0tc3BlY2lmaWMgc3RhbmRhcmQgbG9jYXRp b25zIG9mIGRpcmVjdG9yaWVzIGZvciBjb25maWcsIGNhY2hlIGFuZCBvdGhlciBkYXRhIG9uIExp bnV4LCBXaW5kb3dzLCBtYWNPUyBhbmQgUmVkb3ggYnkgbGV2ZXJhZ2luZyB0aGUgbWVjaGFuaXNt cyBkZWZpbmVkIGJ5IHRoZSBYREcgYmFzZS91c2VyIGRpcmVjdG9yeSBzcGVjaWZpY2F0aW9ucyBv biBMaW51eCwgdGhlIEtub3duIEZvbGRlciBBUEkgb24gV2luZG93cywgYW5kIHRoZSBTdGFuZGFy ZCBEaXJlY3RvcnkgZ3VpZGVsaW5lcyBvbiBtYWNPUy4iKQogICAgKGRlc2NyaXB0aW9uCiAgICAg ICJUaGlzIHBhY2thZ2UgcHJvdmlkZXMgYSB0aW55IGxvdy1sZXZlbCBsaWJyYXJ5IHRoYXQgcHJv dmlkZXMgcGxhdGZvcm0tc3BlY2lmaWMgc3RhbmRhcmQgbG9jYXRpb25zIG9mIGRpcmVjdG9yaWVz IGZvciBjb25maWcsIGNhY2hlIGFuZCBvdGhlciBkYXRhIG9uIExpbnV4LCBXaW5kb3dzLCBtYWNP UyBhbmQgUmVkb3ggYnkgbGV2ZXJhZ2luZyB0aGUgbWVjaGFuaXNtcyBkZWZpbmVkIGJ5IHRoZSBY REcgYmFzZS91c2VyIGRpcmVjdG9yeSBzcGVjaWZpY2F0aW9ucyBvbiBMaW51eCwgdGhlIEtub3du IEZvbGRlciBBUEkgb24gV2luZG93cywgYW5kIHRoZSBTdGFuZGFyZCBEaXJlY3RvcnkgZ3VpZGVs aW5lcyBvbiBtYWNPUy4iKQogICAgKGxpY2Vuc2UgKGxpc3QgbGljZW5zZTpleHBhdCBsaWNlbnNl OmFzbDIuMCkpKSkKCihkZWZpbmUtcHVibGljIHJ1c3Qtd2luYXBpLWJ1aWxkCiAgKHBhY2thZ2UK ICAgIChuYW1lICJydXN0LXdpbmFwaS1idWlsZCIpCiAgICAodmVyc2lvbiAiMC4xLjEiKQogICAg KHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAg KHVyaSAoY3JhdGUtdXJpICJ3aW5hcGktYnVpbGQiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5h bWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQog ICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjFnNHJxc2dqa3kw YTc1MzBxYWpuMmJiZmNybDJ2MHpiMzlpZGdkd3M5YjFsN2dwNXdjOWQiKSkpKQogICAgKGJ1aWxk LXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoaG9tZS1wYWdlCiAgICAgICJodHRwczov L2dpdGh1Yi5jb20vcmV0ZXA5OTgvd2luYXBpLXJzIikKICAgIChzeW5vcHNpcwogICAgICAiQ29t bW9uIGNvZGUgZm9yIGJ1aWxkLnJzIGluIFdpbkFQSSAtc3lzIGNyYXRlcy4iKQogICAgKGRlc2Ny aXB0aW9uCiAgICAgICJDb21tb24gY29kZSBmb3IgYnVpbGQucnMgaW4gV2luQVBJIC1zeXMgY3Jh dGVzLiIpCiAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCgooZGVmaW5lLXB1YmxpYyBydXN0 LXNlcmRlLWRlcml2ZQogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1zZXJkZS1kZXJpdmUiKQog ICAgKHZlcnNpb24gIjEuMC4xMDMiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAg KG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJzZXJkZV9kZXJpdmUi IHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5h bWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNl MzIKICAgICAgICAgICAgIjFsMmljcXE1NDhkbXE1Ym4yNzh6YjJ2ajcyNXpuajRoNG1zODl3M2Iw cjFma2Jwem1pbTgiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAg ICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0LXByb2Mt bWFjcm8yIiAscnVzdC1wcm9jLW1hY3JvMikKICAgICAgICAgKCJydXN0LXF1b3RlIiAscnVzdC1x dW90ZSkKICAgICAgICAgKCJydXN0LXN5biIgLHJ1c3Qtc3luKSkpKQogICAgKGhvbWUtcGFnZSAi aHR0cHM6Ly9zZXJkZS5ycyIpCiAgICAoc3lub3BzaXMKICAgICAgIk1hY3JvcyAxLjEgaW1wbGVt ZW50YXRpb24gb2YgI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSldIikKICAgIChkZXNj cmlwdGlvbgogICAgICAiTWFjcm9zIDEuMSBpbXBsZW1lbnRhdGlvbiBvZiAjW2Rlcml2ZShTZXJp YWxpemUsIERlc2VyaWFsaXplKV0iKQogICAgKGxpY2Vuc2UgKGxpc3QgbGljZW5zZTpleHBhdCBs aWNlbnNlOmFzbDIuMCkpKSkKCihkZWZpbmUtcHVibGljIHJ1c3Qtc2VyZGUtMC44LjIzCiAgKHBh Y2thZ2UKICAgIChuYW1lICJydXN0LXNlcmRlIikKICAgICh2ZXJzaW9uICIwLjguMjMiKQogICAg KHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAg KHVyaSAoY3JhdGUtdXJpICJzZXJkZSIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAg ICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAg KHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMWo0YWppcG4wc2Y0eWEwY3Jn Y2I5NHM4NDhxcDdtZmMzNW42ZDBxMnJmOHJrNXNremJjeCIpKSkpCiAgICAoYnVpbGQtc3lzdGVt IGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0 cyAoKCJydXN0LWNsaXBweSIgLHJ1c3QtY2xpcHB5KSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6 Ly9zZXJkZS5ycyIpCiAgICAoc3lub3BzaXMKICAgICAgIkEgZ2VuZXJpYyBzZXJpYWxpemF0aW9u L2Rlc2VyaWFsaXphdGlvbiBmcmFtZXdvcmsiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJUaGlz IHBhY2thZ2UgcHJvdmlkZXMgYSBnZW5lcmljIHNlcmlhbGl6YXRpb24vZGVzZXJpYWxpemF0aW9u IGZyYW1ld29yayIpCiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1zZXJk ZS10ZXN0LTAuOC4yMwogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1zZXJkZS10ZXN0IikKICAg ICh2ZXJzaW9uICIwLjguMjMiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1l dGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJzZXJkZV90ZXN0IiB2ZXJz aW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICIt IiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAg ICAgICAgICAgICIxbTkzOWo3Y2dzN2k1OHI2dnhmMGZmcDNuYnI4YWR2cjhwOWRxYTl3OHprMHoy eWtzMnFpIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFy Z3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC1zZXJkZS0wLjgu MjMiICxydXN0LXNlcmRlLTAuOC4yMykpKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vc2VyZGUu cnMiKQogICAgKHN5bm9wc2lzCiAgICAgICJUb2tlbiBEZS9TZXJpYWxpemVyIGZvciB0ZXN0aW5n IERlL1NlcmlhbGl6ZSBpbXBsZW1lbnRhdGlvbnMiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJU b2tlbiBEZS9TZXJpYWxpemVyIGZvciB0ZXN0aW5nIERlL1NlcmlhbGl6ZSBpbXBsZW1lbnRhdGlv bnMiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtZm52CiAgKHBhY2th Z2UKICAgIChuYW1lICJydXN0LWZudiIpCiAgICAodmVyc2lvbiAiMS4wLjYiKQogICAgKHNvdXJj ZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAo Y3JhdGUtdXJpICJmbnYiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChz dHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYK ICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjF3dzU2YmkxcjViOGlkM25zOWozcXhiaTd3 NWgwMDVyemhpcnl5MHppOWg5N3JhcWJiOWciKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1i dWlsZC1zeXN0ZW0pCiAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vc2Vydm8vcnVz dC1mbnYiKQogICAgKHN5bm9wc2lzCiAgICAgICJGb3dsZXLDolx4ODBceDkzTm9sbMOiXHg4MFx4 OTNWbyBoYXNoIGZ1bmN0aW9uIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiRm93bGVyw6JceDgw XHg5M05vbGzDolx4ODBceDkzVm8gaGFzaCBmdW5jdGlvbiIpCiAgICAobGljZW5zZSAjZikpKQoK KGRlZmluZS1wdWJsaWMgcnVzdC1udW0tdHJhaXRzCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0 LW51bS10cmFpdHMiKQogICAgKHZlcnNpb24gIjAuMi4xMCIpCiAgICAoc291cmNlCiAgICAgIChv cmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkg Im51bS10cmFpdHMiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJp bmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAg ICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjFyMDc5amJtcm5yYnZzejdkYzVtY2doaWp4N2Jo cGZpa2pzcGZxcmdsNG4yMjd5MXpqNmwiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWls ZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAo KCJydXN0LWF1dG9jZmciICxydXN0LWF1dG9jZmcpCiAgICAgICAgICgicnVzdC1saWJtIiAscnVz dC1saWJtKSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIuY29tL3J1c3Qt bnVtL251bS10cmFpdHMiKQogICAgKHN5bm9wc2lzCiAgICAgICJOdW1lcmljIHRyYWl0cyBmb3Ig Z2VuZXJpYyBtYXRoZW1hdGljcyIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIk51bWVyaWMgdHJh aXRzIGZvciBnZW5lcmljIG1hdGhlbWF0aWNzIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5l LXB1YmxpYyBydXN0LWF1dG9jZmcKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtYXV0b2NmZyIp CiAgICAodmVyc2lvbiAiMC4xLjciKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAg KG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJhdXRvY2ZnIiB2ZXJz aW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICIt IiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAg ICAgICAgICAgICIxY2h3Z2ltcHg1ejd4YmFnN2tycjlkOGFzeGZxYmg2ODNxaGdsOWtuM2h4azJs MGRqajh4IikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGhv bWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL2N1dmlwZXIvYXV0b2NmZyIpCiAgICAoc3lub3Bz aXMKICAgICAgIkF1dG9tYXRpYyBjZmcgZm9yIFJ1c3QgY29tcGlsZXIgZmVhdHVyZXMiKQogICAg KGRlc2NyaXB0aW9uCiAgICAgICJBdXRvbWF0aWMgY2ZnIGZvciBSdXN0IGNvbXBpbGVyIGZlYXR1 cmVzIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXNtYWxsdmVjCiAg KHBhY2thZ2UKICAgIChuYW1lICJydXN0LXNtYWxsdmVjIikKICAgICh2ZXJzaW9uICIxLjAuMCIp CiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAg ICAgICAodXJpIChjcmF0ZS11cmkgInNtYWxsdmVjIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1u YW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkK ICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxMXB3empia2l3 MWpzeTFxNHc4YndzM3I2MXNrMjdkc3A5YXNhbmt2bTJsZnlzMmtwa3NmIikpKSkKICAgIChidWls ZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2Fy Z28taW5wdXRzICgoInJ1c3Qtc2VyZGUiICxydXN0LXNlcmRlKSkpKQogICAgKGhvbWUtcGFnZQog ICAgICAiaHR0cHM6Ly9naXRodWIuY29tL3NlcnZvL3J1c3Qtc21hbGx2ZWMiKQogICAgKHN5bm9w c2lzCiAgICAgICInU21hbGwgdmVjdG9yJyBvcHRpbWl6YXRpb246IHN0b3JlIHVwIHRvIGEgc21h bGwgbnVtYmVyIG9mIGl0ZW1zIG9uIHRoZSBzdGFjayIpCiAgICAoZGVzY3JpcHRpb24KICAgICAg IidTbWFsbCB2ZWN0b3InIG9wdGltaXphdGlvbjogc3RvcmUgdXAgdG8gYSBzbWFsbCBudW1iZXIg b2YgaXRlbXMgb24gdGhlIHN0YWNrIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1Ymxp YyBydXN0LWpvYnNlcnZlcgogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1qb2JzZXJ2ZXIiKQog ICAgKHZlcnNpb24gIjAuMS4xNyIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAo bWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgImpvYnNlcnZlciIgdmVy c2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAi LSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgog ICAgICAgICAgICAiMHE2MXAzOW53MGJkeDZ3MHdranYxa2NoYTVtYmhjZmRsNHoxaHhyaHBjc2t5 aHBkOWNnaiIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChh cmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtZ2V0cmFuZG9t IiAscnVzdC1nZXRyYW5kb20pCiAgICAgICAgICgicnVzdC1saWJjIiAscnVzdC1saWJjKQogICAg ICAgICAoInJ1c3QtbG9nIiAscnVzdC1sb2cpKSkpCiAgICAoaG9tZS1wYWdlCiAgICAgICJodHRw czovL2dpdGh1Yi5jb20vYWxleGNyaWNodG9uL2pvYnNlcnZlci1ycyIpCiAgICAoc3lub3BzaXMK ICAgICAgIkFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBHTlUgbWFrZSBqb2JzZXJ2ZXIgZm9yIFJ1 c3QKIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIEdO VSBtYWtlIGpvYnNlcnZlciBmb3IgUnVzdAoiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUt cHVibGljIHJ1c3QtbnVtLWNwdXMKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtbnVtLWNwdXMi KQogICAgKHZlcnNpb24gIjEuMTEuMSIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAg ICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgIm51bV9jcHVzIiB2 ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1l ICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMy CiAgICAgICAgICAgICIwd2x4czAwY3BnMTZ6MDlmd2NoajFnZHoxanhuZjVkZ2cxY2JpZHZxMHNj NzVibndibmtuIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAg KGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC1oZXJtaXQt YWJpIiAscnVzdC1oZXJtaXQtYWJpKQogICAgICAgICAoInJ1c3QtbGliYyIgLHJ1c3QtbGliYykp KSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9zZWFubW9uc3Rhci9u dW1fY3B1cyIpCiAgICAoc3lub3BzaXMgIkdldCB0aGUgbnVtYmVyIG9mIENQVXMgb24gYSBtYWNo aW5lLiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIkdldCB0aGUgbnVtYmVyIG9mIENQVXMgb24g YSBtYWNoaW5lLiIpCiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1yZWRv eC11c2VycwogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1yZWRveC11c2VycyIpCiAgICAodmVy c2lvbiAiMC4zLjEiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1 cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJyZWRveF91c2VycyIgdmVyc2lvbikp CiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVy c2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAg ICAgICAiMHZkbjY4OHE5d2c5OTdiMXg1YWJ4MmdmNzQwNnJuMWx2ZDYyeXBjZ2gxZ2o3ZzVkcGtq ZiIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVu dHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtZmFpbHVyZSIgLHJ1c3Qt ZmFpbHVyZSkKICAgICAgICAgKCJydXN0LXJhbmQtb3MtMC4xLjMiICxydXN0LXJhbmQtb3MtMC4x LjMpCiAgICAgICAgICgicnVzdC1yZWRveC1zeXNjYWxsIiAscnVzdC1yZWRveC1zeXNjYWxsKQog ICAgICAgICAoInJ1c3QtcnVzdC1hcmdvbjItMC41LjEiCiAgICAgICAgICAscnVzdC1ydXN0LWFy Z29uMi0wLjUuMSkpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0bGFiLnJlZG94 LW9zLm9yZy9yZWRveC1vcy91c2VycyIpCiAgICAoc3lub3BzaXMKICAgICAgIkEgUnVzdCBsaWJy YXJ5IHRvIGFjY2VzcyBSZWRveCB1c2VycyBhbmQgZ3JvdXBzIGZ1bmN0aW9uYWxpdHkiKQogICAg KGRlc2NyaXB0aW9uCiAgICAgICJUaGlzIHBhY2thZ2UgcHJvdmlkZXMgYSBSdXN0IGxpYnJhcnkg dG8gYWNjZXNzIFJlZG94IHVzZXJzIGFuZCBncm91cHMgZnVuY3Rpb25hbGl0eSIpCiAgICAobGlj ZW5zZSBsaWNlbnNlOmV4cGF0KSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXByb2MtbWFjcm8yCiAg KHBhY2thZ2UKICAgIChuYW1lICJydXN0LXByb2MtbWFjcm8yIikKICAgICh2ZXJzaW9uICIxLjAu NiIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkK ICAgICAgICAodXJpIChjcmF0ZS11cmkgInByb2MtbWFjcm8yIiB2ZXJzaW9uKSkKICAgICAgICAo ZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3Jh dGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIwOXJn YjVhYjBqZ3czOWt5YWQwbGdxczRuYjl5YWY3bXdjcmd4cW5zeGJuNGlsNTRnN2x3IikpKSkKICAg IChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBg KCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC11bmljb2RlLXhpZCIgLHJ1c3QtdW5pY29k ZS14aWQpKSkpCiAgICAoaG9tZS1wYWdlCiAgICAgICJodHRwczovL2dpdGh1Yi5jb20vYWxleGNy aWNodG9uL3Byb2MtbWFjcm8yIikKICAgIChzeW5vcHNpcwogICAgICAiQSBzdGFibGUgaW1wbGVt ZW50YXRpb24gb2YgdGhlIHVwY29taW5nIG5ldyBgcHJvY19tYWNyb2AgQVBJLiBDb21lcyB3aXRo IGFuCm9wdGlvbiwgb2ZmIGJ5IGRlZmF1bHQsIHRvIGFsc28gcmVpbXBsZW1lbnQgaXRzZWxmIGlu IHRlcm1zIG9mIHRoZSB1cHN0cmVhbQp1bnN0YWJsZSBBUEkuCiIpCiAgICAoZGVzY3JpcHRpb24K ICAgICAgIlRoaXMgcGFja2FnZSBwcm92aWRlcyBhIHN0YWJsZSBpbXBsZW1lbnRhdGlvbiBvZiB0 aGUgdXBjb21pbmcgbmV3IGBwcm9jX21hY3JvYCBBUEkuICBDb21lcyB3aXRoIGFuCm9wdGlvbiwg b2ZmIGJ5IGRlZmF1bHQsIHRvIGFsc28gcmVpbXBsZW1lbnQgaXRzZWxmIGluIHRlcm1zIG9mIHRo ZSB1cHN0cmVhbQp1bnN0YWJsZSBBUEkuCiIpCiAgICAobGljZW5zZSAobGlzdCBsaWNlbnNlOmV4 cGF0IGxpY2Vuc2U6YXNsMi4wKSkpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1xdW90ZQogIChwYWNr YWdlCiAgICAobmFtZSAicnVzdC1xdW90ZSIpCiAgICAodmVyc2lvbiAiMS4wLjIiKQogICAgKHNv dXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVy aSAoY3JhdGUtdXJpICJxdW90ZSIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAg ICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNo YTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMXprYzQ2cnlhY2YyamRrYzZrcnN5 Mno2MTV4YmsxeDhrcDE4MzByY3h6M2lyajVxcWZoNSIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNh cmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwog ICAgICAgICgoInJ1c3QtcHJvYy1tYWNybzIiICxydXN0LXByb2MtbWFjcm8yKSkpKQogICAgKGhv bWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL2R0b2xuYXkvcXVvdGUiKQogICAgKHN5bm9wc2lz ICJRdWFzaS1xdW90aW5nIG1hY3JvIHF1b3RlISguLi4pIikKICAgIChkZXNjcmlwdGlvbiAiUXVh c2ktcXVvdGluZyBtYWNybyBxdW90ZSEoLi4uKSIpCiAgICAobGljZW5zZSAobGlzdCBsaWNlbnNl OmV4cGF0IGxpY2Vuc2U6YXNsMi4wKSkpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1zeW4KICAocGFj a2FnZQogICAgKG5hbWUgInJ1c3Qtc3luIikKICAgICh2ZXJzaW9uICIxLjAuOSIpCiAgICAoc291 cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJp IChjcmF0ZS11cmkgInN5biIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAg KHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1 NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMWg2N3EyYmhwNDR6cGthaGRxM3d6NzF2 enkzNXMzaWJ2NXB4amdnZ2gwYWowNnA5NzVwcSIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdv LWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAg ICAgICgoInJ1c3QtcHJvYy1tYWNybzIiICxydXN0LXByb2MtbWFjcm8yKQogICAgICAgICAoInJ1 c3QtcXVvdGUiICxydXN0LXF1b3RlKQogICAgICAgICAoInJ1c3QtdW5pY29kZS14aWQiICxydXN0 LXVuaWNvZGUteGlkKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL2R0b2xu YXkvc3luIikKICAgIChzeW5vcHNpcyAiUGFyc2VyIGZvciBSdXN0IHNvdXJjZSBjb2RlIikKICAg IChkZXNjcmlwdGlvbiAiUGFyc2VyIGZvciBSdXN0IHNvdXJjZSBjb2RlIikKICAgIChsaWNlbnNl IChsaXN0IGxpY2Vuc2U6ZXhwYXQgbGljZW5zZTphc2wyLjApKSkpCgooZGVmaW5lLXB1YmxpYyBy dXN0LWxpYm0KICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtbGlibSIpCiAgICAodmVyc2lvbiAi MC4yLjEiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0 Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJsaWJtIiB2ZXJzaW9uKSkKICAgICAgICAoZmls ZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUi KSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIwYWtoNTZz aDUxYWRoYWdtazlsODRkeXJsejYwZ3Y4cmkwNXhocjEzaTFiMThjemtwbXk3IikpKSkKICAgIChi dWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6 Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC1yYW5kLTAuNi41IiAscnVzdC1yYW5kLTAuNi41 KSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9saWJtIikK ICAgIChzeW5vcHNpcyAibGlibSBpbiBwdXJlIFJ1c3QiKQogICAgKGRlc2NyaXB0aW9uICJsaWJt IGluIHB1cmUgUnVzdCIpCiAgICAobGljZW5zZSAobGlzdCBsaWNlbnNlOmV4cGF0IGxpY2Vuc2U6 YXNsMi4wKSkpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1nZXRyYW5kb20KICAocGFja2FnZQogICAg KG5hbWUgInJ1c3QtZ2V0cmFuZG9tIikKICAgICh2ZXJzaW9uICIwLjEuMTMiKQogICAgKHNvdXJj ZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAo Y3JhdGUtdXJpICJnZXRyYW5kb20iIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAg ICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChz aGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjAxemx6aGRiZzh5NmQxenJsaWh2 bTkzczQyMWcwbmxkaXE3ZjFoY2gza2ZsOXNscHJuejciKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBj YXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMK ICAgICAgICAoKCJydXN0LWNmZy1pZiIgLHJ1c3QtY2ZnLWlmKQogICAgICAgICAoInJ1c3QtY29t cGlsZXItYnVpbHRpbnMiCiAgICAgICAgICAscnVzdC1jb21waWxlci1idWlsdGlucykKICAgICAg ICAgKCJydXN0LWxpYmMiICxydXN0LWxpYmMpCiAgICAgICAgICgicnVzdC1sb2ciICxydXN0LWxv ZykKICAgICAgICAgKCJydXN0LXJ1c3RjLXN0ZC13b3Jrc3BhY2UtY29yZSIKICAgICAgICAgICxy dXN0LXJ1c3RjLXN0ZC13b3Jrc3BhY2UtY29yZSkKICAgICAgICAgKCJydXN0LXN0ZHdlYiIgLHJ1 c3Qtc3Rkd2ViKQogICAgICAgICAoInJ1c3Qtd2FzaSIgLHJ1c3Qtd2FzaSkKICAgICAgICAgKCJy dXN0LXdhc20tYmluZGdlbiIgLHJ1c3Qtd2FzbS1iaW5kZ2VuKSkpKQogICAgKGhvbWUtcGFnZQog ICAgICAiaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtcmFuZG9tL2dldHJhbmRvbSIpCiAgICAoc3lu b3BzaXMKICAgICAgIkEgc21hbGwgY3Jvc3MtcGxhdGZvcm0gbGlicmFyeSBmb3IgcmV0cmlldmlu ZyByYW5kb20gZGF0YSBmcm9tIHN5c3RlbSBzb3VyY2UiKQogICAgKGRlc2NyaXB0aW9uCiAgICAg ICJUaGlzIHBhY2thZ2UgcHJvdmlkZXMgYSBzbWFsbCBjcm9zcy1wbGF0Zm9ybSBsaWJyYXJ5IGZv ciByZXRyaWV2aW5nIHJhbmRvbSBkYXRhIGZyb20gc3lzdGVtIHNvdXJjZSIpCiAgICAobGljZW5z ZSAobGlzdCBsaWNlbnNlOmV4cGF0IGxpY2Vuc2U6YXNsMi4wKSkpKQoKKGRlZmluZS1wdWJsaWMg cnVzdC1sb2cKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtbG9nIikKICAgICh2ZXJzaW9uICIw LjQuOCIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRj aCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgImxvZyIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUt bmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikp CiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMXh6MThpeGNj bDVjNm5wNGxpbnYzeXBjN2hwbW1ncGM1enpkMnltcDJzc2Z4MG1oYmRobCIpKSkpCiAgICAoYnVp bGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNh cmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtY2ZnLWlmIiAscnVzdC1jZmctaWYpCiAgICAgICAg ICgicnVzdC1zZXJkZSIgLHJ1c3Qtc2VyZGUpCiAgICAgICAgICgicnVzdC1zdmFsIiAscnVzdC1z dmFsKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9sb2ci KQogICAgKHN5bm9wc2lzCiAgICAgICJBIGxpZ2h0d2VpZ2h0IGxvZ2dpbmcgZmFjYWRlIGZvciBS dXN0CiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIlRoaXMgcGFja2FnZSBwcm92aWRlcyBhIGxp Z2h0d2VpZ2h0IGxvZ2dpbmcgZmFjYWRlIGZvciBSdXN0CiIpCiAgICAobGljZW5zZSAobGlzdCBs aWNlbnNlOmV4cGF0IGxpY2Vuc2U6YXNsMi4wKSkpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1oZXJt aXQtYWJpCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LWhlcm1pdC1hYmkiKQogICAgKHZlcnNp b24gIjAuMS4zIikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJs LWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAiaGVybWl0LWFiaSIgdmVyc2lvbikpCiAg ICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lv biAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAg ICAiMDg3aWJiN3Y0ZHhoeDFoNjZqamZmazR6cmpsaHkzbjRmcjB4OWQ5eTZmM3pqZmdrcXoxaCIp KSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMK ICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtY29tcGlsZXItYnVpbHRpbnMi CiAgICAgICAgICAscnVzdC1jb21waWxlci1idWlsdGlucykKICAgICAgICAgKCJydXN0LWxpYmMi ICxydXN0LWxpYmMpCiAgICAgICAgICgicnVzdC1ydXN0Yy1zdGQtd29ya3NwYWNlLWNvcmUiCiAg ICAgICAgICAscnVzdC1ydXN0Yy1zdGQtd29ya3NwYWNlLWNvcmUpKSkpCiAgICAoaG9tZS1wYWdl CiAgICAgICJodHRwczovL2dpdGh1Yi5jb20vaGVybWl0Y29yZS9oZXJtaXQtYWJpIikKICAgIChz eW5vcHNpcwogICAgICAiaGVybWl0LWFiaSBpcyBzbWFsbCBpbnRlcmZhY2UgdG8gY2FsbCBmdW5j dGlvbnMgZnJvbSB0aGUgdW5pa2VybmVsIFJ1c3R5SGVybWl0LgpJdCBpcyB1c2VkIHRvIGJ1aWxk IHRoZSB0YXJnZXQgYHg4Nl82NC11bmtub3duLWhlcm1pdGAuCiIpCiAgICAoZGVzY3JpcHRpb24K ICAgICAgImhlcm1pdC1hYmkgaXMgc21hbGwgaW50ZXJmYWNlIHRvIGNhbGwgZnVuY3Rpb25zIGZy b20gdGhlIHVuaWtlcm5lbCBSdXN0eUhlcm1pdC4KSXQgaXMgdXNlZCB0byBidWlsZCB0aGUgdGFy Z2V0IGB4ODZfNjQtdW5rbm93bi1oZXJtaXRgLgoiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZp bmUtcHVibGljIHJ1c3QtZmFpbHVyZQogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1mYWlsdXJl IikKICAgICh2ZXJzaW9uICIwLjEuNiIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAg ICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgImZhaWx1cmUiIHZl cnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUg Ii0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIK ICAgICAgICAgICAgIjFuYXk1YzJjZ2k0MGtwODRyYmlpcjFkZ3dsaDlhYXA5amF6Ym54Zm1xcmtw cjQ5a3k5enEiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAo YXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0LWJhY2t0cmFj ZSIgLHJ1c3QtYmFja3RyYWNlKQogICAgICAgICAoInJ1c3QtZmFpbHVyZS1kZXJpdmUiICxydXN0 LWZhaWx1cmUtZGVyaXZlKSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9ydXN0LWxh bmctbnVyc2VyeS5naXRodWIuaW8vZmFpbHVyZS8iKQogICAgKHN5bm9wc2lzCiAgICAgICJFeHBl cmltZW50YWwgZXJyb3IgaGFuZGxpbmcgYWJzdHJhY3Rpb24uIikKICAgIChkZXNjcmlwdGlvbgog ICAgICAiRXhwZXJpbWVudGFsIGVycm9yIGhhbmRsaW5nIGFic3RyYWN0aW9uLiIpCiAgICAobGlj ZW5zZSAobGlzdCBsaWNlbnNlOmV4cGF0IGxpY2Vuc2U6YXNsMi4wKSkpKQoKKGRlZmluZS1wdWJs aWMgcnVzdC1yYW5kLW9zLTAuMS4zCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LXJhbmQtb3Mi KQogICAgKHZlcnNpb24gIjAuMS4zIikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAg IChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAicmFuZF9vcyIgdmVy c2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAi LSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgog ICAgICAgICAgICAiMHdhaHBwbTBzNjRna3Iydm1oY2d3YzBsaWozN2luMWxnZnhnNXJiZ3FsejBs NXZnY3hidiIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChh cmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtY2xvdWRhYmki ICxydXN0LWNsb3VkYWJpKQogICAgICAgICAoInJ1c3QtZnVjaHNpYS1jcHJuZyIgLHJ1c3QtZnVj aHNpYS1jcHJuZykKICAgICAgICAgKCJydXN0LWxpYmMiICxydXN0LWxpYmMpCiAgICAgICAgICgi cnVzdC1sb2ciICxydXN0LWxvZykKICAgICAgICAgKCJydXN0LXJhbmQtY29yZS0wLjQuMiIgLHJ1 c3QtcmFuZC1jb3JlLTAuNC4yKQogICAgICAgICAoInJ1c3QtcmRyYW5kLTAuNC4wIiAscnVzdC1y ZHJhbmQtMC40LjApCiAgICAgICAgICgicnVzdC1zdGR3ZWIiICxydXN0LXN0ZHdlYikKICAgICAg ICAgKCJydXN0LXdhc20tYmluZGdlbiIgLHJ1c3Qtd2FzbS1iaW5kZ2VuKQogICAgICAgICAoInJ1 c3Qtd2luYXBpIiAscnVzdC13aW5hcGkpKSkpCiAgICAoaG9tZS1wYWdlICJodHRwczovL2NyYXRl cy5pby9jcmF0ZXMvcmFuZF9vcyIpCiAgICAoc3lub3BzaXMgIk9TIGJhY2tlZCBSYW5kb20gTnVt YmVyIEdlbmVyYXRvciIpCiAgICAoZGVzY3JpcHRpb24gIk9TIGJhY2tlZCBSYW5kb20gTnVtYmVy IEdlbmVyYXRvciIpCiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1yZWRv eC1zeXNjYWxsCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LXJlZG94LXN5c2NhbGwiKQogICAg KHZlcnNpb24gIjAuMS41NiIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0 aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgInJlZG94X3N5c2NhbGwiIHZl cnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUg Ii0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIK ICAgICAgICAgICAgIjExMHk3ZHlmbTJ2Y2k0eDV2azdncjBxNTUxZHZwMzFucGw5OWZuc3gyZmIx N3d6d2NmOTQiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAo aG9tZS1wYWdlCiAgICAgICJodHRwczovL2dpdGxhYi5yZWRveC1vcy5vcmcvcmVkb3gtb3Mvc3lz Y2FsbCIpCiAgICAoc3lub3BzaXMKICAgICAgIkEgUnVzdCBsaWJyYXJ5IHRvIGFjY2VzcyByYXcg UmVkb3ggc3lzdGVtIGNhbGxzIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiVGhpcyBwYWNrYWdl IHByb3ZpZGVzIGEgUnVzdCBsaWJyYXJ5IHRvIGFjY2VzcyByYXcgUmVkb3ggc3lzdGVtIGNhbGxz IikKICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtcnVz dC1hcmdvbjItMC41LjEKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtcnVzdC1hcmdvbjIiKQog ICAgKHZlcnNpb24gIjAuNS4xIikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgICht ZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAicnVzdC1hcmdvbjIiIHZl cnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUg Ii0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIK ICAgICAgICAgICAgIjFrcmprbXlmbjM3aHk3c2ZzNmxxaWEwZnN2dzEzMG5uMXoyODUwZ2xzamN2 YTdweW05MmMiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAo YXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0LWJhc2U2NC0w LjEwLjEiICxydXN0LWJhc2U2NC0wLjEwLjEpCiAgICAgICAgICgicnVzdC1ibGFrZTJiLXNpbWQi ICxydXN0LWJsYWtlMmItc2ltZCkKICAgICAgICAgKCJydXN0LWNyb3NzYmVhbS11dGlscy0wLjYu NiIKICAgICAgICAgICxydXN0LWNyb3NzYmVhbS11dGlscy0wLjYuNikpKSkKICAgIChob21lLXBh Z2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9zcnUtc3lzdGVtcy9ydXN0LWFyZ29uMiIpCiAg ICAoc3lub3BzaXMKICAgICAgIlJ1c3QgaW1wbGVtZW50YXRpb24gb2YgdGhlIEFyZ29uMiBwYXNz d29yZCBoYXNoaW5nIGZ1bmN0aW9uLiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIlJ1c3QgaW1w bGVtZW50YXRpb24gb2YgdGhlIEFyZ29uMiBwYXNzd29yZCBoYXNoaW5nIGZ1bmN0aW9uLiIpCiAg ICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC11bmljb2RlLXhpZAogIChwYWNr YWdlCiAgICAobmFtZSAicnVzdC11bmljb2RlLXhpZCIpCiAgICAodmVyc2lvbiAiMC4yLjAiKQog ICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAg ICAgKHVyaSAoY3JhdGUtdXJpICJ1bmljb2RlLXhpZCIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUt bmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikp CiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMHowOWZuNTE1 eG03enlyMG1tZHl4YTlteDJmN2F6Y3B2NzRwcW1nNjExaXJhbHdwY3ZsMiIpKSkpCiAgICAoYnVp bGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBz Oi8vZ2l0aHViLmNvbS91bmljb2RlLXJzL3VuaWNvZGUteGlkIikKICAgIChzeW5vcHNpcwogICAg ICAiRGV0ZXJtaW5lIHdoZXRoZXIgY2hhcmFjdGVycyBoYXZlIHRoZSBYSURfU3RhcnQKb3IgWElE X0NvbnRpbnVlIHByb3BlcnRpZXMgYWNjb3JkaW5nIHRvClVuaWNvZGUgU3RhbmRhcmQgQW5uZXgg IzMxLgoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJEZXRlcm1pbmUgd2hldGhlciBjaGFyYWN0 ZXJzIGhhdmUgdGhlIFhJRF9TdGFydApvciBYSURfQ29udGludWUgcHJvcGVydGllcyBhY2NvcmRp bmcgdG8KVW5pY29kZSBTdGFuZGFyZCBBbm5leCAjMzEuCiIpCiAgICAobGljZW5zZSAobGlzdCBs aWNlbnNlOmV4cGF0IGxpY2Vuc2U6YXNsMi4wKSkpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1yYW5k LTAuNi41CiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LXJhbmQiKQogICAgKHZlcnNpb24gIjAu Ni41IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNo KQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAicmFuZCIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUt bmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikp CiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMWpsNDQ0OWpj bDR3Z216bGQ2ZmZ3cWo1Z3d4cnA4enZ4OHc1NzNnMXozNjhxZzZ4bHdiZCIpKSkpCiAgICAoYnVp bGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNh cmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtYXV0b2NmZyIgLHJ1c3QtYXV0b2NmZykKICAgICAg ICAgKCJydXN0LWxpYmMiICxydXN0LWxpYmMpCiAgICAgICAgICgicnVzdC1sb2ciICxydXN0LWxv ZykKICAgICAgICAgKCJydXN0LXBhY2tlZC1zaW1kIiAscnVzdC1wYWNrZWQtc2ltZCkKICAgICAg ICAgKCJydXN0LXJhbmQtY2hhY2hhLTAuMS4xIgogICAgICAgICAgLHJ1c3QtcmFuZC1jaGFjaGEt MC4xLjEpCiAgICAgICAgICgicnVzdC1yYW5kLWNvcmUtMC40LjIiICxydXN0LXJhbmQtY29yZS0w LjQuMikKICAgICAgICAgKCJydXN0LXJhbmQtaGMtMC4xLjEiICxydXN0LXJhbmQtaGMtMC4xLjEp CiAgICAgICAgICgicnVzdC1yYW5kLWlzYWFjLTAuMS4yIiAscnVzdC1yYW5kLWlzYWFjLTAuMS4y KQogICAgICAgICAoInJ1c3QtcmFuZC1qaXR0ZXItMC4xLjQiCiAgICAgICAgICAscnVzdC1yYW5k LWppdHRlci0wLjEuNCkKICAgICAgICAgKCJydXN0LXJhbmQtb3MtMC4xLjMiICxydXN0LXJhbmQt b3MtMC4xLjMpCiAgICAgICAgICgicnVzdC1yYW5kLXBjZy0wLjEuMiIgLHJ1c3QtcmFuZC1wY2ct MC4xLjIpCiAgICAgICAgICgicnVzdC1yYW5kLXhvcnNoaWZ0LTAuMS4yIgogICAgICAgICAgLHJ1 c3QtcmFuZC14b3JzaGlmdC0wLjEuMikKICAgICAgICAgKCJydXN0LXdpbmFwaSIgLHJ1c3Qtd2lu YXBpKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3JhbmQiKQog ICAgKHN5bm9wc2lzCiAgICAgICJSYW5kb20gbnVtYmVyIGdlbmVyYXRvcnMgYW5kIG90aGVyIHJh bmRvbW5lc3MgZnVuY3Rpb25hbGl0eS4KIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiUmFuZG9t IG51bWJlciBnZW5lcmF0b3JzIGFuZCBvdGhlciByYW5kb21uZXNzIGZ1bmN0aW9uYWxpdHkuCiIp CiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1jZmctaWYKICAocGFja2Fn ZQogICAgKG5hbWUgInJ1c3QtY2ZnLWlmIikKICAgICh2ZXJzaW9uICIwLjEuMTAiKQogICAgKHNv dXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVy aSAoY3JhdGUtdXJpICJjZmctaWYiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAg ICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChz aGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjA4aDgwaWhzNzRqY3lwMjRjZDc1 d3dhYnlnYmJkZ2wwNWs2cDVkbXE4YWticjc4dnYxYTciKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBj YXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMK ICAgICAgICAoKCJydXN0LWNvbXBpbGVyLWJ1aWx0aW5zIgogICAgICAgICAgLHJ1c3QtY29tcGls ZXItYnVpbHRpbnMpCiAgICAgICAgICgicnVzdC1ydXN0Yy1zdGQtd29ya3NwYWNlLWNvcmUiCiAg ICAgICAgICAscnVzdC1ydXN0Yy1zdGQtd29ya3NwYWNlLWNvcmUpKSkpCiAgICAoaG9tZS1wYWdl CiAgICAgICJodHRwczovL2dpdGh1Yi5jb20vYWxleGNyaWNodG9uL2NmZy1pZiIpCiAgICAoc3lu b3BzaXMKICAgICAgIkEgbWFjcm8gdG8gZXJnb25vbWljYWxseSBkZWZpbmUgYW4gaXRlbSBkZXBl bmRpbmcgb24gYSBsYXJnZSBudW1iZXIgb2YgI1tjZmddCnBhcmFtZXRlcnMuIFN0cnVjdHVyZWQg bGlrZSBhbiBpZi1lbHNlIGNoYWluLCB0aGUgZmlyc3QgbWF0Y2hpbmcgYnJhbmNoIGlzIHRoZQpp dGVtIHRoYXQgZ2V0cyBlbWl0dGVkLgoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJUaGlzIHBh Y2thZ2UgcHJvdmlkZXMgYSBtYWNybyB0byBlcmdvbm9taWNhbGx5IGRlZmluZSBhbiBpdGVtIGRl cGVuZGluZyBvbiBhIGxhcmdlIG51bWJlciBvZiAjW2NmZ10KcGFyYW1ldGVycy4gIFN0cnVjdHVy ZWQgbGlrZSBhbiBpZi1lbHNlIGNoYWluLCB0aGUgZmlyc3QgbWF0Y2hpbmcgYnJhbmNoIGlzIHRo ZQppdGVtIHRoYXQgZ2V0cyBlbWl0dGVkLgoiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUt cHVibGljIHJ1c3Qtd2FzaQogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC13YXNpIikKICAgICh2 ZXJzaW9uICIwLjcuMCIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9k IHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgIndhc2kiIHZlcnNpb24pKQogICAg ICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24g Ii5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAg IjAzYXBnM3NhNGhqbjZ4d2E0cGt5dnpqaXNjeWE1MXd5cnlnYWRneHdkZzhscnZqM3I3NXEiKSkp KQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAg ICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0LWNvbXBpbGVyLWJ1aWx0aW5zIgog ICAgICAgICAgLHJ1c3QtY29tcGlsZXItYnVpbHRpbnMpCiAgICAgICAgICgicnVzdC1ydXN0Yy1z dGQtd29ya3NwYWNlLWFsbG9jIgogICAgICAgICAgLHJ1c3QtcnVzdGMtc3RkLXdvcmtzcGFjZS1h bGxvYykKICAgICAgICAgKCJydXN0LXJ1c3RjLXN0ZC13b3Jrc3BhY2UtY29yZSIKICAgICAgICAg ICxydXN0LXJ1c3RjLXN0ZC13b3Jrc3BhY2UtY29yZSkpKSkKICAgIChob21lLXBhZ2UKICAgICAg Imh0dHBzOi8vZ2l0aHViLmNvbS9DcmFuZVN0YXRpb24vcnVzdC13YXNpIikKICAgIChzeW5vcHNp cwogICAgICAiRXhwZXJpbWVudGFsIFdBU0kgQVBJIGJpbmRpbmdzIGZvciBSdXN0IikKICAgIChk ZXNjcmlwdGlvbgogICAgICAiRXhwZXJpbWVudGFsIFdBU0kgQVBJIGJpbmRpbmdzIGZvciBSdXN0 IikKICAgIChsaWNlbnNlIChsaXN0ICNmIGxpY2Vuc2U6ZXhwYXQpKSkpCgooZGVmaW5lLXB1Ymxp YyBydXN0LXN0ZHdlYgogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1zdGR3ZWIiKQogICAgKHZl cnNpb24gIjAuNC4yMCIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9k IHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgInN0ZHdlYiIgdmVyc2lvbikpCiAg ICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lv biAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAg ICAiMW1kMTRuOXJ6eHpkc2t6M2hwZ2xuOHZ4Zndxc3cyY3N3YzBmNW5zbGg0cjgycm1sajhuaCIp KSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMK ICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtZGlzY2FyZCIgLHJ1c3QtZGlz Y2FyZCkKICAgICAgICAgKCJydXN0LWZ1dHVyZXMtY2hhbm5lbC1wcmV2aWV3IgogICAgICAgICAg LHJ1c3QtZnV0dXJlcy1jaGFubmVsLXByZXZpZXcpCiAgICAgICAgICgicnVzdC1mdXR1cmVzLWNv cmUtcHJldmlldyIKICAgICAgICAgICxydXN0LWZ1dHVyZXMtY29yZS1wcmV2aWV3KQogICAgICAg ICAoInJ1c3QtZnV0dXJlcy1leGVjdXRvci1wcmV2aWV3IgogICAgICAgICAgLHJ1c3QtZnV0dXJl cy1leGVjdXRvci1wcmV2aWV3KQogICAgICAgICAoInJ1c3QtZnV0dXJlcy11dGlsLXByZXZpZXci CiAgICAgICAgICAscnVzdC1mdXR1cmVzLXV0aWwtcHJldmlldykKICAgICAgICAgKCJydXN0LXJ1 c3RjLXZlcnNpb24iICxydXN0LXJ1c3RjLXZlcnNpb24pCiAgICAgICAgICgicnVzdC1zZXJkZSIg LHJ1c3Qtc2VyZGUpCiAgICAgICAgICgicnVzdC1zZXJkZS1qc29uIiAscnVzdC1zZXJkZS1qc29u KQogICAgICAgICAoInJ1c3Qtc3Rkd2ViLWRlcml2ZSIgLHJ1c3Qtc3Rkd2ViLWRlcml2ZSkKICAg ICAgICAgKCJydXN0LXN0ZHdlYi1pbnRlcm5hbC1tYWNyb3MiCiAgICAgICAgICAscnVzdC1zdGR3 ZWItaW50ZXJuYWwtbWFjcm9zKQogICAgICAgICAoInJ1c3Qtc3Rkd2ViLWludGVybmFsLXJ1bnRp bWUiCiAgICAgICAgICAscnVzdC1zdGR3ZWItaW50ZXJuYWwtcnVudGltZSkKICAgICAgICAgKCJy dXN0LXdhc20tYmluZGdlbiIgLHJ1c3Qtd2FzbS1iaW5kZ2VuKSkpKQogICAgKGhvbWUtcGFnZSAi aHR0cHM6Ly9naXRodWIuY29tL2tvdXRlL3N0ZHdlYiIpCiAgICAoc3lub3BzaXMKICAgICAgIkEg c3RhbmRhcmQgbGlicmFyeSBmb3IgdGhlIGNsaWVudC1zaWRlIFdlYiIpCiAgICAoZGVzY3JpcHRp b24KICAgICAgIlRoaXMgcGFja2FnZSBwcm92aWRlcyBhIHN0YW5kYXJkIGxpYnJhcnkgZm9yIHRo ZSBjbGllbnQtc2lkZSBXZWIiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1 c3Qtd2FzbS1iaW5kZ2VuCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LXdhc20tYmluZGdlbiIp CiAgICAodmVyc2lvbiAiMC4yLjU1IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAg IChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAid2FzbS1iaW5kZ2Vu IiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBu YW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFz ZTMyCiAgICAgICAgICAgICIxd241aG1pcXB3ODRrYzl3ZDFkMXdyamJ4d2gxcnl6MWw5MThrOHg2 ZGtkczZmcGs1Ymk5IikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQog ICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC1jZmct aWYiICxydXN0LWNmZy1pZikKICAgICAgICAgKCJydXN0LXNlcmRlIiAscnVzdC1zZXJkZSkKICAg ICAgICAgKCJydXN0LXNlcmRlLWpzb24iICxydXN0LXNlcmRlLWpzb24pCiAgICAgICAgICgicnVz dC13YXNtLWJpbmRnZW4tbWFjcm8iCiAgICAgICAgICAscnVzdC13YXNtLWJpbmRnZW4tbWFjcm8p KSkpCiAgICAoaG9tZS1wYWdlICJodHRwczovL3J1c3R3YXNtLmdpdGh1Yi5pby8iKQogICAgKHN5 bm9wc2lzCiAgICAgICJFYXN5IHN1cHBvcnQgZm9yIGludGVyYWN0aW5nIGJldHdlZW4gSlMgYW5k IFJ1c3QuCiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIkVhc3kgc3VwcG9ydCBmb3IgaW50ZXJh Y3RpbmcgYmV0d2VlbiBKUyBhbmQgUnVzdC4KIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5l LXB1YmxpYyBydXN0LXN2YWwKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3Qtc3ZhbCIpCiAgICAo dmVyc2lvbiAiMC40LjciKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhv ZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJzdmFsIiB2ZXJzaW9uKSkKICAg ICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9u ICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAg ICIxYWxqZ2d4NjQ0ODFxNHdwM3d4OWh4c2ZoMmJzN2Q2NG5xc3J3YmIyenhjcG1kbmJuNnlrIikp KSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwog ICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC1zZXJkZSIgLHJ1c3Qtc2VyZGUp CiAgICAgICAgICgicnVzdC1zbWFsbHZlYy0wLjYuMTMiICxydXN0LXNtYWxsdmVjLTAuNi4xMykK ICAgICAgICAgKCJydXN0LXN2YWwtZGVyaXZlIiAscnVzdC1zdmFsLWRlcml2ZSkpKSkKICAgICho b21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9zdmFsLXJzL3N2YWwiKQogICAgKHN5bm9wc2lz CiAgICAgICJBIG5vLXN0ZCwgb2JqZWN0LXNhZmUgc2VyaWFsaXphdGlvbiBmcmFtZXdvcmsiKQog ICAgKGRlc2NyaXB0aW9uCiAgICAgICJUaGlzIHBhY2thZ2UgcHJvdmlkZXMgYSBuby1zdGQsIG9i amVjdC1zYWZlIHNlcmlhbGl6YXRpb24gZnJhbWV3b3JrIikKICAgIChsaWNlbnNlIChsaXN0IGxp Y2Vuc2U6YXNsMi4wIGxpY2Vuc2U6ZXhwYXQpKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWJhY2t0 cmFjZQogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1iYWNrdHJhY2UiKQogICAgKHZlcnNpb24g IjAuMy40MCIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1m ZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgImJhY2t0cmFjZSIgdmVyc2lvbikpCiAgICAg ICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAi LmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAi MXNrcHNoejBnc3pocG1qNTFwMzVjaTluZjRubWQ3OXM4OTljZnJmczU3MGRneGNwY2s0aiIpKSkp CiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAg ICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtYWRkcjJsaW5lIiAscnVzdC1hZGRy MmxpbmUpCiAgICAgICAgICgicnVzdC1iYWNrdHJhY2Utc3lzIiAscnVzdC1iYWNrdHJhY2Utc3lz KQogICAgICAgICAoInJ1c3QtY2ZnLWlmIiAscnVzdC1jZmctaWYpCiAgICAgICAgICgicnVzdC1j b21waWxlci1idWlsdGlucyIKICAgICAgICAgICxydXN0LWNvbXBpbGVyLWJ1aWx0aW5zKQogICAg ICAgICAoInJ1c3QtY3BwLWRlbWFuZ2xlIiAscnVzdC1jcHAtZGVtYW5nbGUpCiAgICAgICAgICgi cnVzdC1maW5kc2hsaWJzIiAscnVzdC1maW5kc2hsaWJzKQogICAgICAgICAoInJ1c3QtZ29ibGlu LTAuMC4yNCIgLHJ1c3QtZ29ibGluLTAuMC4yNCkKICAgICAgICAgKCJydXN0LWxpYmMiICxydXN0 LWxpYmMpCiAgICAgICAgICgicnVzdC1tZW1tYXAiICxydXN0LW1lbW1hcCkKICAgICAgICAgKCJy dXN0LXJ1c3RjLWRlbWFuZ2xlIiAscnVzdC1ydXN0Yy1kZW1hbmdsZSkKICAgICAgICAgKCJydXN0 LXJ1c3RjLXNlcmlhbGl6ZSIgLHJ1c3QtcnVzdGMtc2VyaWFsaXplKQogICAgICAgICAoInJ1c3Qt cnVzdGMtc3RkLXdvcmtzcGFjZS1jb3JlIgogICAgICAgICAgLHJ1c3QtcnVzdGMtc3RkLXdvcmtz cGFjZS1jb3JlKQogICAgICAgICAoInJ1c3Qtc2VyZGUiICxydXN0LXNlcmRlKQogICAgICAgICAo InJ1c3Qtd2luYXBpIiAscnVzdC13aW5hcGkpKSkpCiAgICAoaG9tZS1wYWdlCiAgICAgICJodHRw czovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2JhY2t0cmFjZS1ycyIpCiAgICAoc3lub3BzaXMKICAg ICAgIkEgbGlicmFyeSB0byBhY3F1aXJlIGEgc3RhY2sgdHJhY2UgKGJhY2t0cmFjZSkgYXQgcnVu dGltZSBpbiBhIFJ1c3QgcHJvZ3JhbS4KIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiVGhpcyBw YWNrYWdlIHByb3ZpZGVzIGEgbGlicmFyeSB0byBhY3F1aXJlIGEgc3RhY2sgdHJhY2UgKGJhY2t0 cmFjZSkgYXQgcnVudGltZSBpbiBhIFJ1c3QgcHJvZ3JhbS4KIikKICAgIChsaWNlbnNlICNmKSkp CgooZGVmaW5lLXB1YmxpYyBydXN0LWZhaWx1cmUtZGVyaXZlCiAgKHBhY2thZ2UKICAgIChuYW1l ICJydXN0LWZhaWx1cmUtZGVyaXZlIikKICAgICh2ZXJzaW9uICIwLjEuNiIpCiAgICAoc291cmNl CiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChj cmF0ZS11cmkgImZhaWx1cmVfZGVyaXZlIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAg ICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAg ICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIwMjJ4ZmI5d2NzMWJkc3Nm bTJhaXJzcmZ4cG4yY2NwYnloMWxkMndmOTQ4M2lzdmpiaGhiIikpKSkKICAgIChidWlsZC1zeXN0 ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5w dXRzCiAgICAgICAgKCgicnVzdC1wcm9jLW1hY3JvMiIgLHJ1c3QtcHJvYy1tYWNybzIpCiAgICAg ICAgICgicnVzdC1xdW90ZSIgLHJ1c3QtcXVvdGUpCiAgICAgICAgICgicnVzdC1zeW4iICxydXN0 LXN5bikKICAgICAgICAgKCJydXN0LXN5bnN0cnVjdHVyZSIgLHJ1c3Qtc3luc3RydWN0dXJlKSkp KQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9ydXN0LWxhbmctbnVyc2VyeS5naXRodWIu aW8vZmFpbHVyZS8iKQogICAgKHN5bm9wc2lzICJkZXJpdmVzIGZvciB0aGUgZmFpbHVyZSBjcmF0 ZSIpCiAgICAoZGVzY3JpcHRpb24gImRlcml2ZXMgZm9yIHRoZSBmYWlsdXJlIGNyYXRlIikKICAg IChsaWNlbnNlIChsaXN0IGxpY2Vuc2U6ZXhwYXQgbGljZW5zZTphc2wyLjApKSkpCgooZGVmaW5l LXB1YmxpYyBydXN0LWNsb3VkYWJpCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LWNsb3VkYWJp IikKICAgICh2ZXJzaW9uICIwLjAuMyIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAg ICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgImNsb3VkYWJpIiB2 ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1l ICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMy CiAgICAgICAgICAgICIwa3hjZzgzamxpaHkwcGhuZDJnOGMyYzMwM3B4M2wycDNwa2p6MzU3bGw2 bGxuZDVwejZ4IikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAg KGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC1iaXRmbGFn cyIgLHJ1c3QtYml0ZmxhZ3MpKSkpCiAgICAoaG9tZS1wYWdlICJodHRwczovL251eGkubmwvY2xv dWRhYmkvIikKICAgIChzeW5vcHNpcwogICAgICAiTG93IGxldmVsIGludGVyZmFjZSB0byBDbG91 ZEFCSS4gQ29udGFpbnMgYWxsIHN5c2NhbGxzIGFuZCByZWxhdGVkIHR5cGVzLiIpCiAgICAoZGVz Y3JpcHRpb24KICAgICAgIkxvdyBsZXZlbCBpbnRlcmZhY2UgdG8gQ2xvdWRBQkkuICBDb250YWlu cyBhbGwgc3lzY2FsbHMgYW5kIHJlbGF0ZWQgdHlwZXMuIikKICAgIChsaWNlbnNlICNmKSkpCgoo ZGVmaW5lLXB1YmxpYyBydXN0LWZ1Y2hzaWEtY3BybmcKICAocGFja2FnZQogICAgKG5hbWUgInJ1 c3QtZnVjaHNpYS1jcHJuZyIpCiAgICAodmVyc2lvbiAiMC4xLjEiKQogICAgKHNvdXJjZQogICAg ICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUt dXJpICJmdWNoc2lhLWNwcm5nIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAg ICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hh MjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxZm5rcXJiejdpeHh6c2IwNGJzejlw MHp6YXphbm1hOHpuZmRxanZoMzluMTR2YXBmdngwIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2Fy Z28tYnVpbGQtc3lzdGVtKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9mdWNoc2lhLmdv b2dsZXNvdXJjZS5jb20vZnVjaHNpYS8rL21hc3Rlci9nYXJuZXQvcHVibGljL3J1c3QvZnVjaHNp YS1jcHJuZyIpCiAgICAoc3lub3BzaXMKICAgICAgIlJ1c3QgY3JhdGUgZm9yIHRoZSBGdWNoc2lh IGNyeXB0b2dyYXBoaWNhbGx5IHNlY3VyZSBwc2V1ZG9yYW5kb20gbnVtYmVyIGdlbmVyYXRvciIp CiAgICAoZGVzY3JpcHRpb24KICAgICAgIlJ1c3QgY3JhdGUgZm9yIHRoZSBGdWNoc2lhIGNyeXB0 b2dyYXBoaWNhbGx5IHNlY3VyZSBwc2V1ZG9yYW5kb20gbnVtYmVyIGdlbmVyYXRvciIpCiAgICAo bGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1yYW5kLWNvcmUtMC40LjIKICAocGFj a2FnZQogICAgKG5hbWUgInJ1c3QtcmFuZC1jb3JlIikKICAgICh2ZXJzaW9uICIwLjQuMiIpCiAg ICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAg ICAodXJpIChjcmF0ZS11cmkgInJhbmRfY29yZSIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFt ZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAg ICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMXAwOXlueXNycTF2 Y2RsbWNxbmFwcTRxYWtsMnlkMW5nM2t4aDNxc2NweDA5azJhNmN3dyIpKSkpCiAgICAoYnVpbGQt c3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdv LWlucHV0cwogICAgICAgICgoInJ1c3Qtc2VyZGUiICxydXN0LXNlcmRlKQogICAgICAgICAoInJ1 c3Qtc2VyZGUtZGVyaXZlIiAscnVzdC1zZXJkZS1kZXJpdmUpKSkpCiAgICAoaG9tZS1wYWdlICJo dHRwczovL2NyYXRlcy5pby9jcmF0ZXMvcmFuZF9jb3JlIikKICAgIChzeW5vcHNpcwogICAgICAi Q29yZSByYW5kb20gbnVtYmVyIGdlbmVyYXRvciB0cmFpdHMgYW5kIHRvb2xzIGZvciBpbXBsZW1l bnRhdGlvbi4KIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiQ29yZSByYW5kb20gbnVtYmVyIGdl bmVyYXRvciB0cmFpdHMgYW5kIHRvb2xzIGZvciBpbXBsZW1lbnRhdGlvbi4KIikKICAgIChsaWNl bnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXJkcmFuZC0wLjQuMAogIChwYWNrYWdlCiAg ICAobmFtZSAicnVzdC1yZHJhbmQiKQogICAgKHZlcnNpb24gIjAuNC4wIikKICAgIChzb3VyY2UK ICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNy YXRlLXVyaSAicmRyYW5kIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAo c3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2 CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxY2pxMGt3eDFiazdqeDNrenljaWlpc2g1 Z3Fzajc2MjBkbTQzZGM1MnNyOGZ6bW05MDM3IikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28t YnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAg ICAgKCgicnVzdC1yYW5kLWNvcmUtMC4zLjEiICxydXN0LXJhbmQtY29yZS0wLjMuMSkpKSkKICAg IChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9uYWdpc2EvcnVzdF9yZHJhbmQv IikKICAgIChzeW5vcHNpcwogICAgICAiQW4gaW1wbGVtZW50YXRpb24gb2YgcmFuZG9tIG51bWJl ciBnZW5lcmF0b3IgYmFzZWQgb24gcmRyYW5kIGFuZCByZHNlZWQgaW5zdHJ1Y3Rpb25zIikKICAg IChkZXNjcmlwdGlvbgogICAgICAiQW4gaW1wbGVtZW50YXRpb24gb2YgcmFuZG9tIG51bWJlciBn ZW5lcmF0b3IgYmFzZWQgb24gcmRyYW5kIGFuZCByZHNlZWQgaW5zdHJ1Y3Rpb25zIikKICAgIChs aWNlbnNlIGxpY2Vuc2U6aXNjKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWJhc2U2NC0wLjEwLjEK ICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtYmFzZTY0IikKICAgICh2ZXJzaW9uICIwLjEwLjEi KQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAg ICAgICAgKHVyaSAoY3JhdGUtdXJpICJiYXNlNjQiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5h bWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQog ICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjEzazZidmQzbjZk bTdqcW45eDkxOHc2NWRkOXhoeDQ1NGJxcGhibnYwYmtkNm45ZGo5OGIiKSkpKQogICAgKGJ1aWxk LXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJn by1pbnB1dHMKICAgICAgICAoKCJydXN0LWJ5dGVvcmRlciIgLHJ1c3QtYnl0ZW9yZGVyKSkpKQog ICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIuY29tL21hcnNoYWxscGllcmNlL3J1 c3QtYmFzZTY0IikKICAgIChzeW5vcHNpcwogICAgICAiZW5jb2RlcyBhbmQgZGVjb2RlcyBiYXNl NjQgYXMgYnl0ZXMgb3IgdXRmOCIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgImVuY29kZXMgYW5k IGRlY29kZXMgYmFzZTY0IGFzIGJ5dGVzIG9yIHV0ZjgiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihk ZWZpbmUtcHVibGljIHJ1c3QtYmxha2UyYi1zaW1kCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0 LWJsYWtlMmItc2ltZCIpCiAgICAodmVyc2lvbiAiMC41LjkiKQogICAgKHNvdXJjZQogICAgICAo b3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJp ICJibGFrZTJiX3NpbWQiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChz dHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYK ICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjFoNmhoemd2dm1wOWpiNHB2YjQ4aDVqMHc1 dmIxbjAyYWhpMGcyNnAyd2c2bjZtN25meHEiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1i dWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAg ICAoKCJydXN0LWFycmF5cmVmIiAscnVzdC1hcnJheXJlZikKICAgICAgICAgKCJydXN0LWFycmF5 dmVjIiAscnVzdC1hcnJheXZlYykKICAgICAgICAgKCJydXN0LWNvbnN0YW50LXRpbWUtZXEiICxy dXN0LWNvbnN0YW50LXRpbWUtZXEpKSkpCiAgICAoaG9tZS1wYWdlCiAgICAgICJodHRwczovL2dp dGh1Yi5jb20vb2Nvbm5vcjY2My9ibGFrZTJfc2ltZCIpCiAgICAoc3lub3BzaXMKICAgICAgImEg cHVyZSBSdXN0IEJMQUtFMmIgaW1wbGVtZW50YXRpb24gd2l0aCBkeW5hbWljIFNJTUQiKQogICAg KGRlc2NyaXB0aW9uCiAgICAgICJhIHB1cmUgUnVzdCBCTEFLRTJiIGltcGxlbWVudGF0aW9uIHdp dGggZHluYW1pYyBTSU1EIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKCihkZWZpbmUt cHVibGljIHJ1c3QtY3Jvc3NiZWFtLXV0aWxzLTAuNi42CiAgKHBhY2thZ2UKICAgIChuYW1lICJy dXN0LWNyb3NzYmVhbS11dGlscyIpCiAgICAodmVyc2lvbiAiMC42LjYiKQogICAgKHNvdXJjZQog ICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3Jh dGUtdXJpICJjcm9zc2JlYW0tdXRpbHMiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAg ICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAg IChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjFyazByOW4wNGJtcTRhM2cy cTVxaHZ2bG1ybXg3ODBnYzZoOWxtYzk0bXduZHNsa3o1cTQiKSkpKQogICAgKGJ1aWxkLXN5c3Rl bSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1 dHMKICAgICAgICAoKCJydXN0LWNmZy1pZiIgLHJ1c3QtY2ZnLWlmKQogICAgICAgICAoInJ1c3Qt bGF6eS1zdGF0aWMiICxydXN0LWxhenktc3RhdGljKSkpKQogICAgKGhvbWUtcGFnZQogICAgICAi aHR0cHM6Ly9naXRodWIuY29tL2Nyb3NzYmVhbS1ycy9jcm9zc2JlYW0vdHJlZS9tYXN0ZXIvY3Jv c3NiZWFtLXV0aWxzIikKICAgIChzeW5vcHNpcyAiVXRpbGl0aWVzIGZvciBjb25jdXJyZW50IHBy b2dyYW1taW5nIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiVXRpbGl0aWVzIGZvciBjb25jdXJy ZW50IHByb2dyYW1taW5nIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0 LXJhbmQtY2hhY2hhLTAuMS4xCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LXJhbmQtY2hhY2hh IikKICAgICh2ZXJzaW9uICIwLjEuMSIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAg ICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgInJhbmRfY2hhY2hh IiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBu YW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFz ZTMyCiAgICAgICAgICAgICIxdnh3eXpzNGZ5MWZmamM4bDAwZnN5eWdwaXNzMTM1aXJqZjdueXhn cTJ2MGxxZjNsdmFtIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQog ICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC1hdXRv Y2ZnIiAscnVzdC1hdXRvY2ZnKQogICAgICAgICAoInJ1c3QtcmFuZC1jb3JlLTAuMy4xIiAscnVz dC1yYW5kLWNvcmUtMC4zLjEpKSkpCiAgICAoaG9tZS1wYWdlCiAgICAgICJodHRwczovL2NyYXRl cy5pby9jcmF0ZXMvcmFuZF9jaGFjaGEiKQogICAgKHN5bm9wc2lzICJDaGFDaGEgcmFuZG9tIG51 bWJlciBnZW5lcmF0b3IKIikKICAgIChkZXNjcmlwdGlvbiAiQ2hhQ2hhIHJhbmRvbSBudW1iZXIg Z2VuZXJhdG9yCiIpCiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1yYW5k LWhjLTAuMS4xCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LXJhbmQtaGMiKQogICAgKHZlcnNp b24gIjAuMS4xIikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJs LWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAicmFuZF9oYyIgdmVyc2lvbikpCiAgICAg ICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAi LmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAi MGczM2wzODFod2Z2eGRjdjUwMmQ1Yzg4Zmg3Z3c3OGZrZm1scDI3anA4aGhsZnh6eGFtNSIpKSkp CiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAg ICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtcmFuZC1jb3JlIiAscnVzdC1yYW5k LWNvcmUpKSkpCiAgICAoaG9tZS1wYWdlICJodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvcmFuZF9o YyIpCiAgICAoc3lub3BzaXMgIkhDMTI4IHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yCiIpCiAgICAo ZGVzY3JpcHRpb24gIkhDMTI4IHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yCiIpCiAgICAobGljZW5z ZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1yYW5kLWlzYWFjLTAuMS4yCiAgKHBhY2thZ2UK ICAgIChuYW1lICJydXN0LXJhbmQtaXNhYWMiKQogICAgKHZlcnNpb24gIjAuMS4yIikKICAgIChz b3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1 cmkgKGNyYXRlLXVyaSAicmFuZF9pc2FhYyIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQog ICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAg ICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMHppbnNxeXB2bTB2d2Rp d2RhYnZxNzRkMG5ucnpzaGIwa3l6c3J3aTRsNW1scDRwa2t4OSIpKSkpCiAgICAoYnVpbGQtc3lz dGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlu cHV0cwogICAgICAgICgoInJ1c3QtcmFuZC1jb3JlIiAscnVzdC1yYW5kLWNvcmUpCiAgICAgICAg ICgicnVzdC1zZXJkZSIgLHJ1c3Qtc2VyZGUpCiAgICAgICAgICgicnVzdC1zZXJkZS1kZXJpdmUi ICxydXN0LXNlcmRlLWRlcml2ZSkpKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vY3JhdGVzLmlv L2NyYXRlcy9yYW5kX2lzYWFjIikKICAgIChzeW5vcHNpcyAiSVNBQUMgcmFuZG9tIG51bWJlciBn ZW5lcmF0b3IKIikKICAgIChkZXNjcmlwdGlvbiAiSVNBQUMgcmFuZG9tIG51bWJlciBnZW5lcmF0 b3IKIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXJhbmQtaml0dGVy LTAuMS40CiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LXJhbmQtaml0dGVyIikKICAgICh2ZXJz aW9uICIwLjEuNCIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVy bC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgInJhbmRfaml0dGVyIiB2ZXJzaW9uKSkK ICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJz aW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAg ICAgICIxNnozODd5NDZiZnozY3NjNDJ6eGJqcTg5dmNyMWF4cWFjbmN2djhxaHl5OTNwNHhhcmhp IikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50 cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC1saWJjIiAscnVzdC1saWJj KQogICAgICAgICAoInJ1c3QtbG9nIiAscnVzdC1sb2cpCiAgICAgICAgICgicnVzdC1yYW5kLWNv cmUtMC40LjIiICxydXN0LXJhbmQtY29yZS0wLjQuMikKICAgICAgICAgKCJydXN0LXdpbmFwaSIg LHJ1c3Qtd2luYXBpKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3J1c3Qt cmFuZG9tL3JhbmQiKQogICAgKHN5bm9wc2lzCiAgICAgICJSYW5kb20gbnVtYmVyIGdlbmVyYXRv ciBiYXNlZCBvbiB0aW1pbmcgaml0dGVyIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiUmFuZG9t IG51bWJlciBnZW5lcmF0b3IgYmFzZWQgb24gdGltaW5nIGppdHRlciIpCiAgICAobGljZW5zZSAo bGlzdCBsaWNlbnNlOmV4cGF0IGxpY2Vuc2U6YXNsMi4wKSkpKQoKKGRlZmluZS1wdWJsaWMgcnVz dC1yYW5kLXBjZy0wLjEuMgogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1yYW5kLXBjZyIpCiAg ICAodmVyc2lvbiAiMC4xLjIiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1l dGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJyYW5kX3BjZyIgdmVyc2lv bikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIg dmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAg ICAgICAgICAiMGkwYmRsYTE4YTh4NGpuMXcwZnhzYnMzamc3YWpsbHo2YXptY2gxenczM3IwNmR2 MXlkYiIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1 bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtYXV0b2NmZyIgLHJ1 c3QtYXV0b2NmZykKICAgICAgICAgKCJydXN0LXJhbmQtY29yZS0wLjQuMiIgLHJ1c3QtcmFuZC1j b3JlLTAuNC4yKQogICAgICAgICAoInJ1c3Qtc2VyZGUiICxydXN0LXNlcmRlKQogICAgICAgICAo InJ1c3Qtc2VyZGUtZGVyaXZlIiAscnVzdC1zZXJkZS1kZXJpdmUpKSkpCiAgICAoaG9tZS1wYWdl ICJodHRwczovL2NyYXRlcy5pby9jcmF0ZXMvcmFuZF9wY2ciKQogICAgKHN5bm9wc2lzCiAgICAg ICJTZWxlY3RlZCBQQ0cgcmFuZG9tIG51bWJlciBnZW5lcmF0b3JzCiIpCiAgICAoZGVzY3JpcHRp b24KICAgICAgIlNlbGVjdGVkIFBDRyByYW5kb20gbnVtYmVyIGdlbmVyYXRvcnMKIikKICAgIChs aWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXJhbmQteG9yc2hpZnQtMC4xLjIKICAo cGFja2FnZQogICAgKG5hbWUgInJ1c3QtcmFuZC14b3JzaGlmdCIpCiAgICAodmVyc2lvbiAiMC4x LjIiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gp CiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJyYW5kX3hvcnNoaWZ0IiB2ZXJzaW9uKSkKICAgICAg ICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIu Y3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIx dnd5dmx5MmJnbmkyNDZqOHhsczgzYXh2Y2p6OXA1NjN2eW54NXJxcWxsOGhpenN6YTk3IikpKSkK ICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAg ICBgKCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC1yYW5kLWNvcmUiICxydXN0LXJhbmQt Y29yZSkKICAgICAgICAgKCJydXN0LXNlcmRlIiAscnVzdC1zZXJkZSkKICAgICAgICAgKCJydXN0 LXNlcmRlLWRlcml2ZSIgLHJ1c3Qtc2VyZGUtZGVyaXZlKSkpKQogICAgKGhvbWUtcGFnZQogICAg ICAiaHR0cHM6Ly9jcmF0ZXMuaW8vY3JhdGVzL3JhbmRfeG9yc2hpZnQiKQogICAgKHN5bm9wc2lz ICJYb3JzaGlmdCByYW5kb20gbnVtYmVyIGdlbmVyYXRvcgoiKQogICAgKGRlc2NyaXB0aW9uCiAg ICAgICJYb3JzaGlmdCByYW5kb20gbnVtYmVyIGdlbmVyYXRvcgoiKQogICAgKGxpY2Vuc2UgI2Yp KSkKCihkZWZpbmUtcHVibGljIHJ1c3QtcGFja2VkLXNpbWQKICAocGFja2FnZQogICAgKG5hbWUg InJ1c3QtcGFja2VkLXNpbWQiKQogICAgKHZlcnNpb24gIjAuMy4zIikKICAgIChzb3VyY2UKICAg ICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRl LXVyaSAicGFja2VkX3NpbWQiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAg IChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEy NTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjA4MjJ3cWY2a3p3NGlnOXlrbmRnMzQ4 dzJieGtoczN4NjRicnpzdmR4aDJhMXB5YWpwbTgiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJn by1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAg ICAgICAoKCJydXN0LWNmZy1pZiIgLHJ1c3QtY2ZnLWlmKQogICAgICAgICAoInJ1c3QtY29yZS1h cmNoIiAscnVzdC1jb3JlLWFyY2gpCiAgICAgICAgICgicnVzdC1zbGVlZi1zeXMiICxydXN0LXNs ZWVmLXN5cykpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0 LWxhbmctbnVyc2VyeS9wYWNrZWRfc2ltZCIpCiAgICAoc3lub3BzaXMgIlBvcnRhYmxlIFBhY2tl ZCBTSU1EIHZlY3RvcnMiKQogICAgKGRlc2NyaXB0aW9uICJQb3J0YWJsZSBQYWNrZWQgU0lNRCB2 ZWN0b3JzIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXJ1c3RjLXN0 ZC13b3Jrc3BhY2UtYWxsb2MKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtcnVzdGMtc3RkLXdv cmtzcGFjZS1hbGxvYyIpCiAgICAodmVyc2lvbiAiMS4wLjAiKQogICAgKHNvdXJjZQogICAgICAo b3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJp ICJydXN0Yy1zdGQtd29ya3NwYWNlLWFsbG9jIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1l CiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAg ICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxMXBzbXFrNmdsZ2x4 bDN6d2g4c2x6Nml5bmZ4YWlmaDRzcGQyd2Nud3M1NTJkcWRhcnB6IikpKSkKICAgIChidWlsZC1z eXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGhvbWUtcGFnZSAiIikKICAgIChzeW5vcHNp cyAid29ya3NwYWNlIGhhY2siKQogICAgKGRlc2NyaXB0aW9uICJ3b3Jrc3BhY2UgaGFjayIpCiAg ICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1kaXNjYXJkCiAgKHBhY2thZ2UK ICAgIChuYW1lICJydXN0LWRpc2NhcmQiKQogICAgKHZlcnNpb24gIjEuMC40IikKICAgIChzb3Vy Y2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkg KGNyYXRlLXVyaSAiZGlzY2FyZCIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAg ICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNo YTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMWg2N25pNWJ4dmc5NXM5MXdnaWNp bHk0aXg3bGN3N2NxMGE1Z3k5bmpyeWJhaWJoeWI5MSIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNh cmdvLWJ1aWxkLXN5c3RlbSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNv bS9QYXVhbi9ydXN0LWRpc2NhcmQiKQogICAgKHN5bm9wc2lzCiAgICAgICJEaXNjYXJkIHRyYWl0 IHdoaWNoIGFsbG93cyBmb3IgaW50ZW50aW9uYWxseSBsZWFraW5nIG1lbW9yeSIpCiAgICAoZGVz Y3JpcHRpb24KICAgICAgIkRpc2NhcmQgdHJhaXQgd2hpY2ggYWxsb3dzIGZvciBpbnRlbnRpb25h bGx5IGxlYWtpbmcgbWVtb3J5IikKICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKCihkZWZp bmUtcHVibGljIHJ1c3QtcnVzdGMtdmVyc2lvbgogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1y dXN0Yy12ZXJzaW9uIikKICAgICh2ZXJzaW9uICIwLjIuMyIpCiAgICAoc291cmNlCiAgICAgIChv cmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkg InJ1c3RjX3ZlcnNpb24iIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChz dHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYK ICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjAyaDN4NTdsY3I4bDJwbTBhNjQ1czl3aGRo MzNwbjVjbnJ3dm41Y2I1N3ZjcmM1M3gzaGsiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1i dWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMgKCgicnVz dC1zZW12ZXIiICxydXN0LXNlbXZlcikpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8v Z2l0aHViLmNvbS9LaW11bmRpL3J1c3RjLXZlcnNpb24tcnMiKQogICAgKHN5bm9wc2lzCiAgICAg ICJBIGxpYnJhcnkgZm9yIHF1ZXJ5aW5nIHRoZSB2ZXJzaW9uIG9mIGEgaW5zdGFsbGVkIHJ1c3Rj IGNvbXBpbGVyIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiVGhpcyBwYWNrYWdlIHByb3ZpZGVz IGEgbGlicmFyeSBmb3IgcXVlcnlpbmcgdGhlIHZlcnNpb24gb2YgYSBpbnN0YWxsZWQgcnVzdGMg Y29tcGlsZXIiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1c3Qtc3Rkd2Vi LWRlcml2ZQogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1zdGR3ZWItZGVyaXZlIikKICAgICh2 ZXJzaW9uICIwLjUuMyIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9k IHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgInN0ZHdlYi1kZXJpdmUiIHZlcnNp b24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0i IHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAg ICAgICAgICAgIjF2c2g3ZzBnYXhuNGt4cXEza25oeW1kbjAycDJwZnhtbmQyajB2cGxwajZjMXlq NjB5bjgiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJn dW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0LXByb2MtbWFjcm8y IiAscnVzdC1wcm9jLW1hY3JvMikKICAgICAgICAgKCJydXN0LXF1b3RlIiAscnVzdC1xdW90ZSkK ICAgICAgICAgKCJydXN0LXNlcmRlIiAscnVzdC1zZXJkZSkKICAgICAgICAgKCJydXN0LXNlcmRl LWRlcml2ZSIgLHJ1c3Qtc2VyZGUtZGVyaXZlKQogICAgICAgICAoInJ1c3Qtc3luIiAscnVzdC1z eW4pKSkpCiAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20va291dGUvc3Rkd2ViIikK ICAgIChzeW5vcHNpcyAiRGVyaXZlIG1hY3JvcyBmb3IgdGhlIGBzdGR3ZWJgIGNyYXRlIikKICAg IChkZXNjcmlwdGlvbgogICAgICAiRGVyaXZlIG1hY3JvcyBmb3IgdGhlIGBzdGR3ZWJgIGNyYXRl IikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXN0ZHdlYi1pbnRlcm5h bC1tYWNyb3MKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3Qtc3Rkd2ViLWludGVybmFsLW1hY3Jv cyIpCiAgICAodmVyc2lvbiAiMC4yLjkiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAg ICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJzdGR3ZWItaW50 ZXJuYWwtbWFjcm9zIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3Ry aW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAg ICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIwNDlmcThmbDVueTlsNWlmMnF2N2t4d25nN2c2 bnM5NWg0ZmJtM3p4MzYwZG1wdjV6eWpxIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVp bGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAgICAg KCgicnVzdC1iYXNlLXgiICxydXN0LWJhc2UteCkKICAgICAgICAgKCJydXN0LXByb2MtbWFjcm8y IiAscnVzdC1wcm9jLW1hY3JvMikKICAgICAgICAgKCJydXN0LXF1b3RlIiAscnVzdC1xdW90ZSkK ICAgICAgICAgKCJydXN0LXNlcmRlIiAscnVzdC1zZXJkZSkKICAgICAgICAgKCJydXN0LXNlcmRl LWRlcml2ZSIgLHJ1c3Qtc2VyZGUtZGVyaXZlKQogICAgICAgICAoInJ1c3Qtc2VyZGUtanNvbiIg LHJ1c3Qtc2VyZGUtanNvbikKICAgICAgICAgKCJydXN0LXNoYTEiICxydXN0LXNoYTEpCiAgICAg ICAgICgicnVzdC1zeW4iICxydXN0LXN5bikpKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0 aHViLmNvbS9rb3V0ZS9zdGR3ZWIiKQogICAgKHN5bm9wc2lzCiAgICAgICJJbnRlcm5hbCBwcm9j ZWR1cmFsIG1hY3JvcyBmb3IgdGhlIGBzdGR3ZWJgIGNyYXRlIikKICAgIChkZXNjcmlwdGlvbgog ICAgICAiSW50ZXJuYWwgcHJvY2VkdXJhbCBtYWNyb3MgZm9yIHRoZSBgc3Rkd2ViYCBjcmF0ZSIp CiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1zdGR3ZWItaW50ZXJuYWwt cnVudGltZQogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1zdGR3ZWItaW50ZXJuYWwtcnVudGlt ZSIpCiAgICAodmVyc2lvbiAiMC4xLjUiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAg ICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJzdGR3ZWItaW50 ZXJuYWwtcnVudGltZSIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0 cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1Ngog ICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMWgwbmtwcGI0cjhkYnJibXMyaHc5bjV4ZGNz MzkybTByNWhqM2I2bHN4M2g2ZngwMmRyMSIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1 aWxkLXN5c3RlbSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9rb3V0ZS9zdGR3 ZWIiKQogICAgKHN5bm9wc2lzCiAgICAgICJJbnRlcm5hbCBydW50aW1lIGZvciB0aGUgYHN0ZHdl YmAgY3JhdGUiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJJbnRlcm5hbCBydW50aW1lIGZvciB0 aGUgYHN0ZHdlYmAgY3JhdGUiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1 c3QtZnV0dXJlcy1jaGFubmVsLXByZXZpZXcKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtZnV0 dXJlcy1jaGFubmVsLXByZXZpZXciKQogICAgKHZlcnNpb24gIjAuMy4wLWFscGhhLjE5IikKICAg IChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAg ICh1cmkgKGNyYXRlLXVyaSAiZnV0dXJlcy1jaGFubmVsLXByZXZpZXciIHZlcnNpb24pKQogICAg ICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24g Ii5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAg IjBmaTZiaTRscHl4amlneTExeTVzamc2d2xjOG5jNzF2YnBteHozMWMzYWFnanZnejlyZm0iKSkp KQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAg ICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0LWZ1dHVyZXMtY29yZS1wcmV2aWV3 IgogICAgICAgICAgLHJ1c3QtZnV0dXJlcy1jb3JlLXByZXZpZXcpCiAgICAgICAgICgicnVzdC1m dXR1cmVzLXNpbmstcHJldmlldyIKICAgICAgICAgICxydXN0LWZ1dHVyZXMtc2luay1wcmV2aWV3 KSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9ydXN0LWxhbmctbnVyc2VyeS5naXRo dWIuaW8vZnV0dXJlcy1ycyIpCiAgICAoc3lub3BzaXMKICAgICAgIkNoYW5uZWxzIGZvciBhc3lu Y2hyb25vdXMgY29tbXVuaWNhdGlvbiB1c2luZyBmdXR1cmVzLXJzLgoiKQogICAgKGRlc2NyaXB0 aW9uCiAgICAgICJDaGFubmVscyBmb3IgYXN5bmNocm9ub3VzIGNvbW11bmljYXRpb24gdXNpbmcg ZnV0dXJlcy1ycy4KIikKICAgIChsaWNlbnNlIChsaXN0IGxpY2Vuc2U6ZXhwYXQgbGljZW5zZTph c2wyLjApKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWZ1dHVyZXMtY29yZS1wcmV2aWV3CiAgKHBh Y2thZ2UKICAgIChuYW1lICJydXN0LWZ1dHVyZXMtY29yZS1wcmV2aWV3IikKICAgICh2ZXJzaW9u ICIwLjMuMC1hbHBoYS4xOSIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0 aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgImZ1dHVyZXMtY29yZS1wcmV2 aWV3IiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVu ZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAo YmFzZTMyCiAgICAgICAgICAgICIwMm42NmpramhweTIxMGR2MjRwejBqMzBsdnlpbjVremxyYjUw cDFqN3g4eXpkaW40bnhrIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVt KQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9ydXN0LWxhbmctbnVyc2VyeS5naXRodWIu aW8vZnV0dXJlcy1ycyIpCiAgICAoc3lub3BzaXMKICAgICAgIlRoZSBjb3JlIHRyYWl0cyBhbmQg dHlwZXMgaW4gZm9yIHRoZSBgZnV0dXJlc2AgbGlicmFyeS4KIikKICAgIChkZXNjcmlwdGlvbgog ICAgICAiVGhlIGNvcmUgdHJhaXRzIGFuZCB0eXBlcyBpbiBmb3IgdGhlIGBmdXR1cmVzYCBsaWJy YXJ5LgoiKQogICAgKGxpY2Vuc2UgKGxpc3QgbGljZW5zZTpleHBhdCBsaWNlbnNlOmFzbDIuMCkp KSkKCihkZWZpbmUtcHVibGljIHJ1c3QtZnV0dXJlcy1leGVjdXRvci1wcmV2aWV3CiAgKHBhY2th Z2UKICAgIChuYW1lICJydXN0LWZ1dHVyZXMtZXhlY3V0b3ItcHJldmlldyIpCiAgICAodmVyc2lv biAiMC4zLjAtYWxwaGEuMTkiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1l dGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJmdXR1cmVzLWV4ZWN1dG9y LXByZXZpZXciIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmct YXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAg ICAgIChiYXNlMzIKICAgICAgICAgICAgIjE2MXl2N3d3aGE2MG1kemoxaWQ0N2toOHlsbmhjbnY3 Ymxnd2lkZzh4czR6cG40Nnc4dm0iKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1z eXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJy dXN0LWZ1dHVyZXMtY29yZS1wcmV2aWV3IgogICAgICAgICAgLHJ1c3QtZnV0dXJlcy1jb3JlLXBy ZXZpZXcpCiAgICAgICAgICgicnVzdC1mdXR1cmVzLXV0aWwtcHJldmlldyIKICAgICAgICAgICxy dXN0LWZ1dHVyZXMtdXRpbC1wcmV2aWV3KQogICAgICAgICAoInJ1c3QtbnVtLWNwdXMiICxydXN0 LW51bS1jcHVzKSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9ydXN0LWxhbmctbnVy c2VyeS5naXRodWIuaW8vZnV0dXJlcy1ycyIpCiAgICAoc3lub3BzaXMKICAgICAgIkV4ZWN1dG9y cyBmb3IgYXN5bmNocm9ub3VzIHRhc2tzIGJhc2VkIG9uIHRoZSBmdXR1cmVzLXJzIGxpYnJhcnku CiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIkV4ZWN1dG9ycyBmb3IgYXN5bmNocm9ub3VzIHRh c2tzIGJhc2VkIG9uIHRoZSBmdXR1cmVzLXJzIGxpYnJhcnkuCiIpCiAgICAobGljZW5zZSAobGlz dCBsaWNlbnNlOmV4cGF0IGxpY2Vuc2U6YXNsMi4wKSkpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1m dXR1cmVzLXV0aWwtcHJldmlldwogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1mdXR1cmVzLXV0 aWwtcHJldmlldyIpCiAgICAodmVyc2lvbiAiMC4zLjAtYWxwaGEuMTkiKQogICAgKHNvdXJjZQog ICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3Jh dGUtdXJpICJmdXR1cmVzLXV0aWwtcHJldmlldyIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFt ZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAg ICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMTM4Zjh3eTB2cXky Z3NnazI4a2xkYnFucmRjZ3dmdjlmOXh4NnJ3emtyOHA3aWluaXNhdyIpKSkpCiAgICAoYnVpbGQt c3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdv LWlucHV0cwogICAgICAgICgoInJ1c3QtZnV0dXJlcy0wLjEuMjkiICxydXN0LWZ1dHVyZXMtMC4x LjI5KQogICAgICAgICAoInJ1c3QtZnV0dXJlcy1jaGFubmVsLXByZXZpZXciCiAgICAgICAgICAs cnVzdC1mdXR1cmVzLWNoYW5uZWwtcHJldmlldykKICAgICAgICAgKCJydXN0LWZ1dHVyZXMtY29y ZS1wcmV2aWV3IgogICAgICAgICAgLHJ1c3QtZnV0dXJlcy1jb3JlLXByZXZpZXcpCiAgICAgICAg ICgicnVzdC1mdXR1cmVzLWlvLXByZXZpZXciCiAgICAgICAgICAscnVzdC1mdXR1cmVzLWlvLXBy ZXZpZXcpCiAgICAgICAgICgicnVzdC1mdXR1cmVzLWpvaW4tbWFjcm8tcHJldmlldyIKICAgICAg ICAgICxydXN0LWZ1dHVyZXMtam9pbi1tYWNyby1wcmV2aWV3KQogICAgICAgICAoInJ1c3QtZnV0 dXJlcy1zZWxlY3QtbWFjcm8tcHJldmlldyIKICAgICAgICAgICxydXN0LWZ1dHVyZXMtc2VsZWN0 LW1hY3JvLXByZXZpZXcpCiAgICAgICAgICgicnVzdC1mdXR1cmVzLXNpbmstcHJldmlldyIKICAg ICAgICAgICxydXN0LWZ1dHVyZXMtc2luay1wcmV2aWV3KQogICAgICAgICAoInJ1c3QtbWVtY2hy IiAscnVzdC1tZW1jaHIpCiAgICAgICAgICgicnVzdC1waW4tdXRpbHMiICxydXN0LXBpbi11dGls cykKICAgICAgICAgKCJydXN0LXByb2MtbWFjcm8taGFjayIgLHJ1c3QtcHJvYy1tYWNyby1oYWNr KQogICAgICAgICAoInJ1c3QtcHJvYy1tYWNyby1uZXN0ZWQiCiAgICAgICAgICAscnVzdC1wcm9j LW1hY3JvLW5lc3RlZCkKICAgICAgICAgKCJydXN0LXNsYWIiICxydXN0LXNsYWIpCiAgICAgICAg ICgicnVzdC10b2tpby1pby0wLjEuMTIiICxydXN0LXRva2lvLWlvLTAuMS4xMikpKSkKICAgICho b21lLXBhZ2UKICAgICAgImh0dHBzOi8vcnVzdC1sYW5nLW51cnNlcnkuZ2l0aHViLmlvL2Z1dHVy ZXMtcnMiKQogICAgKHN5bm9wc2lzCiAgICAgICJDb21tb24gdXRpbGl0aWVzIGFuZCBleHRlbnNp b24gdHJhaXRzIGZvciB0aGUgZnV0dXJlcy1ycyBsaWJyYXJ5LgoiKQogICAgKGRlc2NyaXB0aW9u CiAgICAgICJDb21tb24gdXRpbGl0aWVzIGFuZCBleHRlbnNpb24gdHJhaXRzIGZvciB0aGUgZnV0 dXJlcy1ycyBsaWJyYXJ5LgoiKQogICAgKGxpY2Vuc2UgKGxpc3QgbGljZW5zZTpleHBhdCBsaWNl bnNlOmFzbDIuMCkpKSkKCihkZWZpbmUtcHVibGljIHJ1c3Qtc2VyZGUtanNvbgogIChwYWNrYWdl CiAgICAobmFtZSAicnVzdC1zZXJkZS1qc29uIikKICAgICh2ZXJzaW9uICIxLjAuNDIiKQogICAg KHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAg KHVyaSAoY3JhdGUtdXJpICJzZXJkZV9qc29uIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1l CiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAg ICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIwaHEweDB4MGxiamN2 Zm5tbDJzN3prN3M5bGNhNTBna3F6NWJqOG43dzFoenBrZjUyY3FzIikpKSkKICAgIChidWlsZC1z eXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28t aW5wdXRzCiAgICAgICAgKCgicnVzdC1pbmRleG1hcCIgLHJ1c3QtaW5kZXhtYXApCiAgICAgICAg ICgicnVzdC1pdG9hIiAscnVzdC1pdG9hKQogICAgICAgICAoInJ1c3Qtcnl1IiAscnVzdC1yeXUp CiAgICAgICAgICgicnVzdC1zZXJkZSIgLHJ1c3Qtc2VyZGUpKSkpCiAgICAoaG9tZS1wYWdlICJo dHRwczovL2dpdGh1Yi5jb20vc2VyZGUtcnMvanNvbiIpCiAgICAoc3lub3BzaXMgIkEgSlNPTiBz ZXJpYWxpemF0aW9uIGZpbGUgZm9ybWF0IikKICAgIChkZXNjcmlwdGlvbgogICAgICAiVGhpcyBw YWNrYWdlIHByb3ZpZGVzIGEgSlNPTiBzZXJpYWxpemF0aW9uIGZpbGUgZm9ybWF0IikKICAgIChs aWNlbnNlIChsaXN0IGxpY2Vuc2U6ZXhwYXQgbGljZW5zZTphc2wyLjApKSkpCgooZGVmaW5lLXB1 YmxpYyBydXN0LXdhc20tYmluZGdlbi1tYWNybwogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC13 YXNtLWJpbmRnZW4tbWFjcm8iKQogICAgKHZlcnNpb24gIjAuMi41NSIpCiAgICAoc291cmNlCiAg ICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0 ZS11cmkgIndhc20tYmluZGdlbi1tYWNybyIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQog ICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAg ICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMXI0enhjNTJwcDQ0aGhp bmQyeHhiYm5jeThqZGNoczY2eWxsNWs5OTZnNXB3cjN3Z3o0NyIpKSkpCiAgICAoYnVpbGQtc3lz dGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlu cHV0cwogICAgICAgICgoInJ1c3QtcXVvdGUiICxydXN0LXF1b3RlKQogICAgICAgICAoInJ1c3Qt d2FzbS1iaW5kZ2VuLW1hY3JvLXN1cHBvcnQiCiAgICAgICAgICAscnVzdC13YXNtLWJpbmRnZW4t bWFjcm8tc3VwcG9ydCkpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vcnVzdHdhc20u Z2l0aHViLmlvL3dhc20tYmluZGdlbi8iKQogICAgKHN5bm9wc2lzCiAgICAgICJEZWZpbml0aW9u IG9mIHRoZSBgI1t3YXNtX2JpbmRnZW5dYCBhdHRyaWJ1dGUsIGFuIGludGVybmFsIGRlcGVuZGVu Y3kKIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiRGVmaW5pdGlvbiBvZiB0aGUgYCNbd2FzbV9i aW5kZ2VuXWAgYXR0cmlidXRlLCBhbiBpbnRlcm5hbCBkZXBlbmRlbmN5CiIpCiAgICAobGljZW5z ZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1zbWFsbHZlYy0wLjYuMTMKICAocGFja2FnZQog ICAgKG5hbWUgInJ1c3Qtc21hbGx2ZWMiKQogICAgKHZlcnNpb24gIjAuNi4xMyIpCiAgICAoc291 cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJp IChjcmF0ZS11cmkgInNtYWxsdmVjIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAg ICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAo c2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxZGwyMTl2bmZrbXNmeDI4bG0z ZjgzbHl3MjR6YXA2ZmRzbGk2cmc4bm5wMWFhNjdiYzdwIikpKSkKICAgIChidWlsZC1zeXN0ZW0g Y2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRz CiAgICAgICAgKCgicnVzdC1tYXliZS11bmluaXQiICxydXN0LW1heWJlLXVuaW5pdCkKICAgICAg ICAgKCJydXN0LXNlcmRlIiAscnVzdC1zZXJkZSkpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0 dHBzOi8vZ2l0aHViLmNvbS9zZXJ2by9ydXN0LXNtYWxsdmVjIikKICAgIChzeW5vcHNpcwogICAg ICAiJ1NtYWxsIHZlY3Rvcicgb3B0aW1pemF0aW9uOiBzdG9yZSB1cCB0byBhIHNtYWxsIG51bWJl ciBvZiBpdGVtcyBvbiB0aGUgc3RhY2siKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICInU21hbGwg dmVjdG9yJyBvcHRpbWl6YXRpb246IHN0b3JlIHVwIHRvIGEgc21hbGwgbnVtYmVyIG9mIGl0ZW1z IG9uIHRoZSBzdGFjayIpCiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1z dmFsLWRlcml2ZQogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1zdmFsLWRlcml2ZSIpCiAgICAo dmVyc2lvbiAiMC40LjciKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhv ZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJzdmFsX2Rlcml2ZSIgdmVyc2lv bikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIg dmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAg ICAgICAgICAiMDdzN2pxc2RjenNnMHdueWRmbnh5cnNqOHp5cmptaXdsNGlzMWRmZ244ZGZ2eWk4 bjJiaiIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1 bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtcHJvYy1tYWNybzIi ICxydXN0LXByb2MtbWFjcm8yKQogICAgICAgICAoInJ1c3QtcXVvdGUiICxydXN0LXF1b3RlKQog ICAgICAgICAoInJ1c3Qtc3luIiAscnVzdC1zeW4pKSkpCiAgICAoaG9tZS1wYWdlICJodHRwczov L2dpdGh1Yi5jb20vc3ZhbC1ycy9zdmFsIikKICAgIChzeW5vcHNpcyAiQ3VzdG9tIGRlcml2ZSBm b3Igc3ZhbCIpCiAgICAoZGVzY3JpcHRpb24gIkN1c3RvbSBkZXJpdmUgZm9yIHN2YWwiKQogICAg KGxpY2Vuc2UgKGxpc3QgbGljZW5zZTphc2wyLjAgbGljZW5zZTpleHBhdCkpKSkKCihkZWZpbmUt cHVibGljIHJ1c3QtcnVzdGMtZGVtYW5nbGUKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtcnVz dGMtZGVtYW5nbGUiKQogICAgKHZlcnNpb24gIjAuMS4xNiIpCiAgICAoc291cmNlCiAgICAgIChv cmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkg InJ1c3RjLWRlbWFuZ2xlIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAo c3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2 CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxMHFwNDJzbDF3cmRiZ2JiaDhybmF5Mmdy bTk3Nno3aHFnejMyYzR5MDlsMWMwNzFxc2FjIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28t YnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAg ICAgKCgicnVzdC1jb21waWxlci1idWlsdGlucyIKICAgICAgICAgICxydXN0LWNvbXBpbGVyLWJ1 aWx0aW5zKQogICAgICAgICAoInJ1c3QtcnVzdGMtc3RkLXdvcmtzcGFjZS1jb3JlIgogICAgICAg ICAgLHJ1c3QtcnVzdGMtc3RkLXdvcmtzcGFjZS1jb3JlKSkpKQogICAgKGhvbWUtcGFnZQogICAg ICAiaHR0cHM6Ly9naXRodWIuY29tL2FsZXhjcmljaHRvbi9ydXN0Yy1kZW1hbmdsZSIpCiAgICAo c3lub3BzaXMgIlJ1c3QgY29tcGlsZXIgc3ltYm9sIGRlbWFuZ2xpbmcuCiIpCiAgICAoZGVzY3Jp cHRpb24KICAgICAgIlJ1c3QgY29tcGlsZXIgc3ltYm9sIGRlbWFuZ2xpbmcuCiIpCiAgICAobGlj ZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1hZGRyMmxpbmUKICAocGFja2FnZQogICAg KG5hbWUgInJ1c3QtYWRkcjJsaW5lIikKICAgICh2ZXJzaW9uICIwLjEwLjAiKQogICAgKHNvdXJj ZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAo Y3JhdGUtdXJpICJhZGRyMmxpbmUiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAg ICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChz aGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjFkYWF4cnprNmZtZnphcWkwNnk3 MDRoY3cwcmp6MTk5bDBuOTIxNHliZm0zbTNqbm1jNG0iKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBj YXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMK ICAgICAgICAoKCJydXN0LWNwcC1kZW1hbmdsZSIgLHJ1c3QtY3BwLWRlbWFuZ2xlKQogICAgICAg ICAoInJ1c3QtZmFsbGlibGUtaXRlcmF0b3IiCiAgICAgICAgICAscnVzdC1mYWxsaWJsZS1pdGVy YXRvcikKICAgICAgICAgKCJydXN0LWdpbWxpIiAscnVzdC1naW1saSkKICAgICAgICAgKCJydXN0 LWludGVydmFsdHJlZSIgLHJ1c3QtaW50ZXJ2YWx0cmVlKQogICAgICAgICAoInJ1c3QtbGF6eWNl bGwiICxydXN0LWxhenljZWxsKQogICAgICAgICAoInJ1c3Qtb2JqZWN0LTAuMTIuMCIgLHJ1c3Qt b2JqZWN0LTAuMTIuMCkKICAgICAgICAgKCJydXN0LXJ1c3RjLWRlbWFuZ2xlIiAscnVzdC1ydXN0 Yy1kZW1hbmdsZSkKICAgICAgICAgKCJydXN0LXNtYWxsdmVjLTAuNi4xMyIgLHJ1c3Qtc21hbGx2 ZWMtMC42LjEzKSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIuY29tL2dp bWxpLXJzL2FkZHIybGluZSIpCiAgICAoc3lub3BzaXMKICAgICAgIkEgY3Jvc3MtcGxhdGZvcm0g c3ltYm9saWNhdGlvbiBsaWJyYXJ5IHdyaXR0ZW4gaW4gUnVzdCwgdXNpbmcgYGdpbWxpYCIpCiAg ICAoZGVzY3JpcHRpb24KICAgICAgIlRoaXMgcGFja2FnZSBwcm92aWRlcyBhIGNyb3NzLXBsYXRm b3JtIHN5bWJvbGljYXRpb24gbGlicmFyeSB3cml0dGVuIGluIFJ1c3QsIHVzaW5nIGBnaW1saWAi KQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtYmFja3RyYWNlLXN5cwog IChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1iYWNrdHJhY2Utc3lzIikKICAgICh2ZXJzaW9uICIw LjEuMzIiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0 Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJiYWNrdHJhY2Utc3lzIiB2ZXJzaW9uKSkKICAg ICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9u ICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAg ICIxNGM0MDZ6OGJkbW1zOGE1bDhjdjc5amZrejFtazEwcWs1cDk3aXpmNHZhaTUzcXBhcmF4Iikp KSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwog ICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC1jYyIgLHJ1c3QtY2MpCiAgICAg ICAgICgicnVzdC1jb21waWxlci1idWlsdGlucyIKICAgICAgICAgICxydXN0LWNvbXBpbGVyLWJ1 aWx0aW5zKQogICAgICAgICAoInJ1c3QtbGliYyIgLHJ1c3QtbGliYykKICAgICAgICAgKCJydXN0 LXJ1c3RjLXN0ZC13b3Jrc3BhY2UtY29yZSIKICAgICAgICAgICxydXN0LXJ1c3RjLXN0ZC13b3Jr c3BhY2UtY29yZSkpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9h bGV4Y3JpY2h0b24vYmFja3RyYWNlLXJzIikKICAgIChzeW5vcHNpcwogICAgICAiQmluZGluZ3Mg dG8gdGhlIGxpYmJhY2t0cmFjZSBnY2MgbGlicmFyeQoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAg ICJCaW5kaW5ncyB0byB0aGUgbGliYmFja3RyYWNlIGdjYyBsaWJyYXJ5CiIpCiAgICAobGljZW5z ZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1jcHAtZGVtYW5nbGUKICAocGFja2FnZQogICAg KG5hbWUgInJ1c3QtY3BwLWRlbWFuZ2xlIikKICAgICh2ZXJzaW9uICIwLjIuMTQiKQogICAgKHNv dXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVy aSAoY3JhdGUtdXJpICJjcHBfZGVtYW5nbGUiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUK ICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAg ICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjFtbTA2NHg4NDg2OHEw NnI0bTRiN2J5Zjk5OW5ya2JoeDdpeWM0bmNoeXNzYXhwc3k1YTEiKSkpKQogICAgKGJ1aWxkLXN5 c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1p bnB1dHMKICAgICAgICAoKCJydXN0LWFmbCIgLHJ1c3QtYWZsKQogICAgICAgICAoInJ1c3QtY2Zn LWlmIiAscnVzdC1jZmctaWYpCiAgICAgICAgICgicnVzdC1nbG9iIiAscnVzdC1nbG9iKSkpKQog ICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIuY29tL2dpbWxpLXJzL2NwcF9kZW1h bmdsZSIpCiAgICAoc3lub3BzaXMgIkEgY3JhdGUgZm9yIGRlbWFuZ2xpbmcgQysrIHN5bWJvbHMi KQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJUaGlzIHBhY2thZ2UgcHJvdmlkZXMgYSBjcmF0ZSBm b3IgZGVtYW5nbGluZyBDKysgc3ltYm9scyIpCiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1w dWJsaWMgcnVzdC1maW5kc2hsaWJzCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LWZpbmRzaGxp YnMiKQogICAgKHZlcnNpb24gIjAuNS4wIikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAg ICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAiZmluZHNobGli cyIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQg bmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJh c2UzMgogICAgICAgICAgICAiMW4ydmFnbjBxNXlpbTMyaHhrd2kxY2pncDN5bjFkbTQ1cDd6OG53 NmxhcHl3aWhoczltaSIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkK ICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtbGF6 eS1zdGF0aWMiICxydXN0LWxhenktc3RhdGljKQogICAgICAgICAoInJ1c3QtbGliYyIgLHJ1c3Qt bGliYykpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9naW1saS1y cy9maW5kc2hsaWJzIikKICAgIChzeW5vcHNpcwogICAgICAiRmluZCB0aGUgc2V0IG9mIHNoYXJl ZCBsaWJyYXJpZXMgbG9hZGVkIGluIHRoZSBjdXJyZW50IHByb2Nlc3Mgd2l0aCBhIGNyb3NzIHBs YXRmb3JtIEFQSSIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIkZpbmQgdGhlIHNldCBvZiBzaGFy ZWQgbGlicmFyaWVzIGxvYWRlZCBpbiB0aGUgY3VycmVudCBwcm9jZXNzIHdpdGggYSBjcm9zcyBw bGF0Zm9ybSBBUEkiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtZ29i bGluLTAuMC4yNAogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1nb2JsaW4iKQogICAgKHZlcnNp b24gIjAuMC4yNCIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVy bC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgImdvYmxpbiIgdmVyc2lvbikpCiAgICAg ICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAi LmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAi MWMzMW5ycmFpaXh5MG1uZGEyMjI3aWgzaDJnMWs0cGxsZzJrd2s4eWo2bHdqNGZqZHlwMyIpKSkp CiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAg ICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtbG9nIiAscnVzdC1sb2cpCiAgICAg ICAgICgicnVzdC1wbGFpbiIgLHJ1c3QtcGxhaW4pCiAgICAgICAgICgicnVzdC1zY3JvbGwtMC45 LjIiICxydXN0LXNjcm9sbC0wLjkuMikpKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHVi LmNvbS9tNGIvZ29ibGluIikKICAgIChzeW5vcHNpcwogICAgICAiQW4gaW1waXNoLCBjcm9zcy1w bGF0Zm9ybSwgRUxGLCBNYWNoLW8sIGFuZCBQRSBiaW5hcnkgcGFyc2luZyBhbmQgbG9hZGluZyBj cmF0ZSIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIkFuIGltcGlzaCwgY3Jvc3MtcGxhdGZvcm0s IEVMRiwgTWFjaC1vLCBhbmQgUEUgYmluYXJ5IHBhcnNpbmcgYW5kIGxvYWRpbmcgY3JhdGUiKQog ICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1tZW1tYXAK ICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtbWVtbWFwIikKICAgICh2ZXJzaW9uICIwLjcuMCIp CiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAg ICAgICAodXJpIChjcmF0ZS11cmkgIm1lbW1hcCIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFt ZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAg ICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMG5zN2trZDFoNHBp amRrd2Z2dzRxbGJibXFtbG16d2xxM2cyNjc2ZGNsNXZ3eWF6djFiNSIpKSkpCiAgICAoYnVpbGQt c3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdv LWlucHV0cwogICAgICAgICgoInJ1c3QtbGliYyIgLHJ1c3QtbGliYykKICAgICAgICAgKCJydXN0 LXdpbmFwaSIgLHJ1c3Qtd2luYXBpKSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9n aXRodWIuY29tL2RhbmJ1cmtlcnQvbWVtbWFwLXJzIikKICAgIChzeW5vcHNpcwogICAgICAiQ3Jv c3MtcGxhdGZvcm0gUnVzdCBBUEkgZm9yIG1lbW9yeS1tYXBwZWQgZmlsZSBJTyIpCiAgICAoZGVz Y3JpcHRpb24KICAgICAgIkNyb3NzLXBsYXRmb3JtIFJ1c3QgQVBJIGZvciBtZW1vcnktbWFwcGVk IGZpbGUgSU8iKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtcnVzdGMt c2VyaWFsaXplCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LXJ1c3RjLXNlcmlhbGl6ZSIpCiAg ICAodmVyc2lvbiAiMC4zLjI0IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgICht ZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAicnVzdGMtc2VyaWFsaXpl IiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBu YW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFz ZTMyCiAgICAgICAgICAgICIxbmtnM3Zhc2c3bms4MGZma2F6aXpnaXl2M2hiMWw5ZzNkOGgxN2Nh amJreDUzOGppd2Z3IikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQog ICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9ydXN0Yy1z ZXJpYWxpemUiKQogICAgKHN5bm9wc2lzCiAgICAgICJHZW5lcmljIHNlcmlhbGl6YXRpb24vZGVz ZXJpYWxpemF0aW9uIHN1cHBvcnQgY29ycmVzcG9uZGluZyB0byB0aGUKYGRlcml2ZShSdXN0Y0Vu Y29kYWJsZSwgUnVzdGNEZWNvZGFibGUpYCBtb2RlIGluIHRoZSBjb21waWxlci4gQWxzbyBpbmNs dWRlcwpzdXBwb3J0IGZvciBoZXgsIGJhc2U2NCwgYW5kIGpzb24gZW5jb2RpbmcgYW5kIGRlY29k aW5nLgoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJHZW5lcmljIHNlcmlhbGl6YXRpb24vZGVz ZXJpYWxpemF0aW9uIHN1cHBvcnQgY29ycmVzcG9uZGluZyB0byB0aGUKYGRlcml2ZShSdXN0Y0Vu Y29kYWJsZSwgUnVzdGNEZWNvZGFibGUpYCBtb2RlIGluIHRoZSBjb21waWxlci4gIEFsc28gaW5j bHVkZXMKc3VwcG9ydCBmb3IgaGV4LCBiYXNlNjQsIGFuZCBqc29uIGVuY29kaW5nIGFuZCBkZWNv ZGluZy4KIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXN5bnN0cnVj dHVyZQogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1zeW5zdHJ1Y3R1cmUiKQogICAgKHZlcnNp b24gIjAuMTIuMyIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVy bC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgInN5bnN0cnVjdHVyZSIgdmVyc2lvbikp CiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVy c2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAg ICAgICAiMGlnbWM1ZnpwazZmZzdrZ2ZmOTE0ajA1bGJwYzZhaTJ3bWppMzEydjJoOHZ2amhud3Ji NyIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVu dHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtcHJvYy1tYWNybzIiICxy dXN0LXByb2MtbWFjcm8yKQogICAgICAgICAoInJ1c3QtcXVvdGUiICxydXN0LXF1b3RlKQogICAg ICAgICAoInJ1c3Qtc3luIiAscnVzdC1zeW4pCiAgICAgICAgICgicnVzdC11bmljb2RlLXhpZCIg LHJ1c3QtdW5pY29kZS14aWQpKSkpCiAgICAoaG9tZS1wYWdlCiAgICAgICJodHRwczovL2dpdGh1 Yi5jb20vbXlzdG9yL3N5bnN0cnVjdHVyZSIpCiAgICAoc3lub3BzaXMKICAgICAgIkhlbHBlciBt ZXRob2RzIGFuZCBtYWNyb3MgZm9yIGN1c3RvbSBkZXJpdmVzIikKICAgIChkZXNjcmlwdGlvbgog ICAgICAiSGVscGVyIG1ldGhvZHMgYW5kIG1hY3JvcyBmb3IgY3VzdG9tIGRlcml2ZXMiKQogICAg KGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1yYW5kLWNvcmUt MC4zLjEKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtcmFuZC1jb3JlIikKICAgICh2ZXJzaW9u ICIwLjMuMSIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1m ZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgInJhbmRfY29yZSIgdmVyc2lvbikpCiAgICAg ICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAi LmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAi MGp6ZGdzemZhNGJsaWlnaXk0aGk2Nms3ZnMzZ2Z3aTJxeG44dmlrODRwaDc3Zndkd3Z2cyIpKSkp CiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAg ICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtcmFuZC1jb3JlLTAuNC4yIiAscnVz dC1yYW5kLWNvcmUtMC40LjIpKSkpCiAgICAoaG9tZS1wYWdlICJodHRwczovL2NyYXRlcy5pby9j cmF0ZXMvcmFuZF9jb3JlIikKICAgIChzeW5vcHNpcwogICAgICAiQ29yZSByYW5kb20gbnVtYmVy IGdlbmVyYXRvciB0cmFpdHMgYW5kIHRvb2xzIGZvciBpbXBsZW1lbnRhdGlvbi4KIikKICAgIChk ZXNjcmlwdGlvbgogICAgICAiQ29yZSByYW5kb20gbnVtYmVyIGdlbmVyYXRvciB0cmFpdHMgYW5k IHRvb2xzIGZvciBpbXBsZW1lbnRhdGlvbi4KIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5l LXB1YmxpYyBydXN0LWFycmF5cmVmCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LWFycmF5cmVm IikKICAgICh2ZXJzaW9uICIwLjMuNSIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAg ICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgImFycmF5cmVmIiB2 ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1l ICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMy CiAgICAgICAgICAgICIxdnBoeTMxNmpiZ21nY2trNHo3bThjc3ZseWM4aGloOXc5NWl5cTQ4aDgw Nzd4YzJ3ZjBkIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAg KGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL2Ryb3VuZHkvYXJyYXlyZWYiKQogICAgKHN5 bm9wc2lzCiAgICAgICJNYWNyb3MgdG8gdGFrZSBhcnJheSByZWZlcmVuY2VzIG9mIHNsaWNlcyIp CiAgICAoZGVzY3JpcHRpb24KICAgICAgIk1hY3JvcyB0byB0YWtlIGFycmF5IHJlZmVyZW5jZXMg b2Ygc2xpY2VzIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWFycmF5 dmVjCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LWFycmF5dmVjIikKICAgICh2ZXJzaW9uICIw LjUuMSIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRj aCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgImFycmF5dmVjIiB2ZXJzaW9uKSkKICAgICAgICAo ZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3Jh dGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxZjVt Y2E4a2lpd2h2aHhkMW1ibnE2OGo2djZyazEzOXNjaDU2N3p3d3psNmhzMzd2eHlnIikpKSkKICAg IChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBg KCM6Y2FyZ28taW5wdXRzICgoInJ1c3Qtc2VyZGUiICxydXN0LXNlcmRlKSkpKQogICAgKGhvbWUt cGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL2JsdXNzL2FycmF5dmVjIikKICAgIChzeW5vcHNpcwog ICAgICAiQSB2ZWN0b3Igd2l0aCBmaXhlZCBjYXBhY2l0eSwgYmFja2VkIGJ5IGFuIGFycmF5IChp dCBjYW4gYmUgc3RvcmVkIG9uIHRoZSBzdGFjayB0b28pLiBJbXBsZW1lbnRzIGZpeGVkIGNhcGFj aXR5IEFycmF5VmVjIGFuZCBBcnJheVN0cmluZy4iKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJU aGlzIHBhY2thZ2UgcHJvdmlkZXMgYSB2ZWN0b3Igd2l0aCBmaXhlZCBjYXBhY2l0eSwgYmFja2Vk IGJ5IGFuIGFycmF5IChpdCBjYW4gYmUgc3RvcmVkIG9uIHRoZSBzdGFjayB0b28pLiAgSW1wbGVt ZW50cyBmaXhlZCBjYXBhY2l0eSBBcnJheVZlYyBhbmQgQXJyYXlTdHJpbmcuIikKICAgIChsaWNl bnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWNvbnN0YW50LXRpbWUtZXEKICAocGFja2Fn ZQogICAgKG5hbWUgInJ1c3QtY29uc3RhbnQtdGltZS1lcSIpCiAgICAodmVyc2lvbiAiMC4xLjQi KQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAg ICAgICAgKHVyaSAoY3JhdGUtdXJpICJjb25zdGFudF90aW1lX2VxIiB2ZXJzaW9uKSkKICAgICAg ICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIu Y3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIw ODNpY3ByOXhiNzJycmR4dzNwNDA2OGRjc3BuNmFpMjJqeTdyaGwyYThncmZ6NDQ4bmxyIikpKSkK ICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGhvbWUtcGFnZQogICAg ICAiaHR0cHM6Ly9naXRodWIuY29tL2Nlc2FyYi9jb25zdGFudF90aW1lX2VxIikKICAgIChzeW5v cHNpcwogICAgICAiQ29tcGFyZXMgdHdvIGVxdWFsLXNpemVkIGJ5dGUgc3RyaW5ncyBpbiBjb25z dGFudCB0aW1lLiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIkNvbXBhcmVzIHR3byBlcXVhbC1z aXplZCBieXRlIHN0cmluZ3MgaW4gY29uc3RhbnQgdGltZS4iKQogICAgKGxpY2Vuc2UgbGljZW5z ZTpjYzApKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtbGF6eS1zdGF0aWMKICAocGFja2FnZQogICAg KG5hbWUgInJ1c3QtbGF6eS1zdGF0aWMiKQogICAgKHZlcnNpb24gIjEuNC4wIikKICAgIChzb3Vy Y2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkg KGNyYXRlLXVyaSAibGF6eV9zdGF0aWMiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAg ICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAg IChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjBpbjZpa2h3OG1nbDMzd2p2 NnE2eGZyYjViOWpyMTZxOHlnank4MDNmYXk0emNpc3ZhejIiKSkpKQogICAgKGJ1aWxkLXN5c3Rl bSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1 dHMgKCgicnVzdC1zcGluIiAscnVzdC1zcGluKSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0 cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy1udXJzZXJ5L2xhenktc3RhdGljLnJzIikKICAgIChz eW5vcHNpcwogICAgICAiQSBtYWNybyBmb3IgZGVjbGFyaW5nIGxhemlseSBldmFsdWF0ZWQgc3Rh dGljcyBpbiBSdXN0LiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIlRoaXMgcGFja2FnZSBwcm92 aWRlcyBhIG1hY3JvIGZvciBkZWNsYXJpbmcgbGF6aWx5IGV2YWx1YXRlZCBzdGF0aWNzIGluIFJ1 c3QuIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXJhbmQtY29yZQog IChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1yYW5kLWNvcmUiKQogICAgKHZlcnNpb24gIjAuNS4x IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQog ICAgICAgICh1cmkgKGNyYXRlLXVyaSAicmFuZF9jb3JlIiB2ZXJzaW9uKSkKICAgICAgICAoZmls ZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUi KSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIwNmJkdngw OHYzcmt6NDUxY203ejU5eHd3cW4xcmtmaDZ2OWF5NzdiMTRmOGR3bHliZ2NoIikpKSkKICAgIChi dWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6 Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC1nZXRyYW5kb20iICxydXN0LWdldHJhbmRvbSkK ICAgICAgICAgKCJydXN0LXNlcmRlIiAscnVzdC1zZXJkZSkpKSkKICAgIChob21lLXBhZ2UgImh0 dHBzOi8vY3JhdGVzLmlvL2NyYXRlcy9yYW5kX2NvcmUiKQogICAgKHN5bm9wc2lzCiAgICAgICJD b3JlIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIHRyYWl0cyBhbmQgdG9vbHMgZm9yIGltcGxlbWVu dGF0aW9uLgoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJDb3JlIHJhbmRvbSBudW1iZXIgZ2Vu ZXJhdG9yIHRyYWl0cyBhbmQgdG9vbHMgZm9yIGltcGxlbWVudGF0aW9uLgoiKQogICAgKGxpY2Vu c2UgKGxpc3QgbGljZW5zZTpleHBhdCBsaWNlbnNlOmFzbDIuMCkpKSkKCihkZWZpbmUtcHVibGlj IHJ1c3QtY29yZS1hcmNoCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LWNvcmUtYXJjaCIpCiAg ICAodmVyc2lvbiAiMC4xLjUiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1l dGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJjb3JlX2FyY2giIHZlcnNp b24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0i IHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAg ICAgICAgICAgIjA0dmR2cjl2ajBmMWN2MnA1NG5zc3ptcnJrOXcxanM0YzB6NGkwYmRsYWpsMWx5 ZHNsaW0iKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoaG9t ZS1wYWdlCiAgICAgICJodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvc3Rkc2lt ZCIpCiAgICAoc3lub3BzaXMKICAgICAgImBjb3JlOjphcmNoYCAtIFJ1c3QncyBjb3JlIGxpYnJh cnkgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGludHJpbnNpY3MuIikKICAgIChkZXNjcmlwdGlvbgog ICAgICAiYGNvcmU6OmFyY2hgIC0gUnVzdCdzIGNvcmUgbGlicmFyeSBhcmNoaXRlY3R1cmUtc3Bl Y2lmaWMgaW50cmluc2ljcy4iKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1 c3Qtc2xlZWYtc3lzCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LXNsZWVmLXN5cyIpCiAgICAo dmVyc2lvbiAiMC4xLjIiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhv ZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJzbGVlZi1zeXMiIHZlcnNpb24p KQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZl cnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAg ICAgICAgIjE4ODFxMnljMTdqMm0xeXZoMDE0NDdjOTN3czFtc3BucmozazJuYnZ3YnZjbTh6ODFr a3YiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1l bnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0LWJpbmRnZW4tMC40Ni4w IiAscnVzdC1iaW5kZ2VuLTAuNDYuMCkKICAgICAgICAgKCJydXN0LWNmZy1pZiIgLHJ1c3QtY2Zn LWlmKQogICAgICAgICAoInJ1c3QtY21ha2UiICxydXN0LWNtYWtlKQogICAgICAgICAoInJ1c3Qt ZW52LWxvZ2dlci0wLjYuMiIgLHJ1c3QtZW52LWxvZ2dlci0wLjYuMikKICAgICAgICAgKCJydXN0 LWxpYmMiICxydXN0LWxpYmMpKSkpCiAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20v Z256bGJnL3NsZWVmLXN5cyIpCiAgICAoc3lub3BzaXMKICAgICAgIlJ1c3QgRkZJIGJpbmRpbmdz IHRvIHRoZSBTTEVFRiBWZWN0b3JpemVkIE1hdGggTGlicmFyeQoiKQogICAgKGRlc2NyaXB0aW9u CiAgICAgICJSdXN0IEZGSSBiaW5kaW5ncyB0byB0aGUgU0xFRUYgVmVjdG9yaXplZCBNYXRoIExp YnJhcnkKIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXNlbXZlcgog IChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1zZW12ZXIiKQogICAgKHZlcnNpb24gIjAuOS4wIikK ICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAg ICAgICh1cmkgKGNyYXRlLXVyaSAic2VtdmVyIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1l CiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAg ICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIwMHE0bGtjajBycmdi aHZpdjlzZDRwNnFtZHNpcGt3a2JyYTdyaDExanJocTVrcHZqemh4IikpKSkKICAgIChidWlsZC1z eXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28t aW5wdXRzCiAgICAgICAgKCgicnVzdC1zZW12ZXItcGFyc2VyLTAuNy4wIgogICAgICAgICAgLHJ1 c3Qtc2VtdmVyLXBhcnNlci0wLjcuMCkKICAgICAgICAgKCJydXN0LXNlcmRlIiAscnVzdC1zZXJk ZSkpKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vZG9jcy5ycy9jcmF0ZS9zZW12ZXIvIikKICAg IChzeW5vcHNpcwogICAgICAiU2VtYW50aWMgdmVyc2lvbiBwYXJzaW5nIGFuZCBjb21wYXJpc29u LgoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJTZW1hbnRpYyB2ZXJzaW9uIHBhcnNpbmcgYW5k IGNvbXBhcmlzb24uCiIpCiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1i YXNlLXgKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtYmFzZS14IikKICAgICh2ZXJzaW9uICIw LjIuNiIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRj aCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgImJhc2UteCIgdmVyc2lvbikpCiAgICAgICAgKGZp bGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRl IikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMWhmeTB3 djdqNXluZDczeWsxdnlyMzJwcWE3N3JwMTVsa3JjNTRmOGt5OWM2aGNiYzgwdiIpKSkpCiAgICAo YnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8v Z2l0aHViLmNvbS9PcktvTi9iYXNlLXgtcnMiKQogICAgKHN5bm9wc2lzICJFbmNvZGUvZGVjb2Rl IGFueSBiYXNlIikKICAgIChkZXNjcmlwdGlvbiAiRW5jb2RlL2RlY29kZSBhbnkgYmFzZSIpCiAg ICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXNoYTEKICAo cGFja2FnZQogICAgKG5hbWUgInJ1c3Qtc2hhMSIpCiAgICAodmVyc2lvbiAiMC42LjAiKQogICAg KHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAg KHVyaSAoY3JhdGUtdXJpICJzaGExIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAg ICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAo c2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIwM2dzMnE0bTY3cm4ycDh4Y2Rm eGhpcDZtcGdhaGR3bTEyYm5iM3ZoOTBhaHY5Z3JoeTk1IikpKSkKICAgIChidWlsZC1zeXN0ZW0g Y2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRz ICgoInJ1c3Qtc2VyZGUiICxydXN0LXNlcmRlKSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0 cHM6Ly9naXRodWIuY29tL21pdHN1aGlrby9ydXN0LXNoYTEiKQogICAgKHN5bm9wc2lzCiAgICAg ICJNaW5pbWFsIGltcGxlbWVudGF0aW9uIG9mIFNIQTEgZm9yIFJ1c3QuIikKICAgIChkZXNjcmlw dGlvbgogICAgICAiTWluaW1hbCBpbXBsZW1lbnRhdGlvbiBvZiBTSEExIGZvciBSdXN0LiIpCiAg ICAobGljZW5zZSBsaWNlbnNlOmJzZC0zKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWZ1dHVyZXMt c2luay1wcmV2aWV3CiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LWZ1dHVyZXMtc2luay1wcmV2 aWV3IikKICAgICh2ZXJzaW9uICIwLjMuMC1hbHBoYS4xOSIpCiAgICAoc291cmNlCiAgICAgIChv cmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkg ImZ1dHVyZXMtc2luay1wcmV2aWV3IiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAg ICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAo c2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxdjd5NXF2Z3ZsMGQ2aGQ5czRr N2JkNXFyajJnZGxyczV5ZmwyMnY1cHh2OWRncGxpd2M2IikpKSkKICAgIChidWlsZC1zeXN0ZW0g Y2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9ydXN0LWxh bmctbnVyc2VyeS5naXRodWIuaW8vZnV0dXJlcy1ycyIpCiAgICAoc3lub3BzaXMKICAgICAgIlRo ZSBhc3luY2hyb25vdXMgYFNpbmtgIHRyYWl0IGZvciB0aGUgZnV0dXJlcy1ycyBsaWJyYXJ5Lgoi KQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJUaGUgYXN5bmNocm9ub3VzIGBTaW5rYCB0cmFpdCBm b3IgdGhlIGZ1dHVyZXMtcnMgbGlicmFyeS4KIikKICAgIChsaWNlbnNlIChsaXN0IGxpY2Vuc2U6 ZXhwYXQgbGljZW5zZTphc2wyLjApKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXBpbi11dGlscwog IChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1waW4tdXRpbHMiKQogICAgKHZlcnNpb24gIjAuMS4w LWFscGhhLjQiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwt ZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJwaW4tdXRpbHMiIHZlcnNpb24pKQogICAg ICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24g Ii5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAg IjExeG15eDAwbjRtMzdkNTQ2YnkycnhiOHJ5eHMxMnY1NWNjMTcyaTN5YWsxcnFjY2Q1MnEiKSkp KQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoaG9tZS1wYWdlCiAg ICAgICJodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nLW51cnNlcnkvcGluLXV0aWxzIikKICAg IChzeW5vcHNpcyAiVXRpbGl0aWVzIGZvciBwaW5uaW5nCiIpCiAgICAoZGVzY3JpcHRpb24gIlV0 aWxpdGllcyBmb3IgcGlubmluZwoiKQogICAgKGxpY2Vuc2UgKGxpc3QgbGljZW5zZTpleHBhdCBs aWNlbnNlOmFzbDIuMCkpKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtZnV0dXJlcy0wLjEuMjkKICAo cGFja2FnZQogICAgKG5hbWUgInJ1c3QtZnV0dXJlcyIpCiAgICAodmVyc2lvbiAiMC4xLjI5IikK ICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAg ICAgICh1cmkgKGNyYXRlLXVyaSAiZnV0dXJlcyIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFt ZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAg ICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMXZxM2N3Mzdrbm5k MGFmdzNyY2p6aDcxaTJsMDF2NW00eXNpbnJycWR2bm4ycWwwejYwdiIpKSkpCiAgICAoYnVpbGQt c3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8v cnVzdC1sYW5nLW51cnNlcnkuZ2l0aHViLmlvL2Z1dHVyZXMtcnMiKQogICAgKHN5bm9wc2lzCiAg ICAgICJBbiBpbXBsZW1lbnRhdGlvbiBvZiBmdXR1cmVzIGFuZCBzdHJlYW1zIGZlYXR1cmluZyB6 ZXJvIGFsbG9jYXRpb25zLApjb21wb3NhYmlsaXR5LCBhbmQgaXRlcmF0b3ItbGlrZSBpbnRlcmZh Y2VzLgoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJBbiBpbXBsZW1lbnRhdGlvbiBvZiBmdXR1 cmVzIGFuZCBzdHJlYW1zIGZlYXR1cmluZyB6ZXJvIGFsbG9jYXRpb25zLApjb21wb3NhYmlsaXR5 LCBhbmQgaXRlcmF0b3ItbGlrZSBpbnRlcmZhY2VzLgoiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihk ZWZpbmUtcHVibGljIHJ1c3QtZnV0dXJlcy1pby1wcmV2aWV3CiAgKHBhY2thZ2UKICAgIChuYW1l ICJydXN0LWZ1dHVyZXMtaW8tcHJldmlldyIpCiAgICAodmVyc2lvbiAiMC4zLjAtYWxwaGEuMTki KQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAg ICAgICAgKHVyaSAoY3JhdGUtdXJpICJmdXR1cmVzLWlvLXByZXZpZXciIHZlcnNpb24pKQogICAg ICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24g Ii5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAg IjFucGIwNHhibjJndzVyamxsejg4Y2I4OGZxbDQ0eHhma2djaWRqamoyNmZ2YTNqNG00Z2wiKSkp KQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoaG9tZS1wYWdlCiAg ICAgICJodHRwczovL3J1c3QtbGFuZy1udXJzZXJ5LmdpdGh1Yi5pby9mdXR1cmVzLXJzIikKICAg IChzeW5vcHNpcwogICAgICAiVGhlIGBBc3luY1JlYWRgIGFuZCBgQXN5bmNXcml0ZWAgdHJhaXRz IGZvciB0aGUgZnV0dXJlcy1ycyBsaWJyYXJ5LgoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJU aGUgYEFzeW5jUmVhZGAgYW5kIGBBc3luY1dyaXRlYCB0cmFpdHMgZm9yIHRoZSBmdXR1cmVzLXJz IGxpYnJhcnkuCiIpCiAgICAobGljZW5zZSAobGlzdCBsaWNlbnNlOmV4cGF0IGxpY2Vuc2U6YXNs Mi4wKSkpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1mdXR1cmVzLWpvaW4tbWFjcm8tcHJldmlldwog IChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1mdXR1cmVzLWpvaW4tbWFjcm8tcHJldmlldyIpCiAg ICAodmVyc2lvbiAiMC4zLjAtYWxwaGEuMTkiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAg ICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJmdXR1cmVz LWpvaW4tbWFjcm8tcHJldmlldyIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAg ICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNo YTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMXNtd2FqYTQ2NnlqaDVhZGxoZ2dn Zms5azk0MnN5NDcwMm40NnNjeGtyd2Nua2s2MXFqciIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNh cmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwog ICAgICAgICgoInJ1c3QtcHJvYy1tYWNyby1oYWNrIiAscnVzdC1wcm9jLW1hY3JvLWhhY2spCiAg ICAgICAgICgicnVzdC1wcm9jLW1hY3JvMiIgLHJ1c3QtcHJvYy1tYWNybzIpCiAgICAgICAgICgi cnVzdC1xdW90ZSIgLHJ1c3QtcXVvdGUpCiAgICAgICAgICgicnVzdC1zeW4iICxydXN0LXN5bikp KSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vcnVzdC1sYW5nLW51cnNlcnkuZ2l0aHVi LmlvL2Z1dHVyZXMtcnMiKQogICAgKHN5bm9wc2lzCiAgICAgICJEZWZpbml0aW9uIG9mIHRoZSBg am9pbiFgIG1hY3JvIGFuZCB0aGUgYHRyeV9qb2luIWAgbWFjcm8uCiIpCiAgICAoZGVzY3JpcHRp b24KICAgICAgIkRlZmluaXRpb24gb2YgdGhlIGBqb2luIWAgbWFjcm8gYW5kIHRoZSBgdHJ5X2pv aW4hYCBtYWNyby4KIikKICAgIChsaWNlbnNlIChsaXN0IGxpY2Vuc2U6ZXhwYXQgbGljZW5zZTph c2wyLjApKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWZ1dHVyZXMtc2VsZWN0LW1hY3JvLXByZXZp ZXcKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtZnV0dXJlcy1zZWxlY3QtbWFjcm8tcHJldmll dyIpCiAgICAodmVyc2lvbiAiMC4zLjAtYWxwaGEuMTkiKQogICAgKHNvdXJjZQogICAgICAob3Jp Z2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpCiAg ICAgICAgICAgICAgICJmdXR1cmVzLXNlbGVjdC1tYWNyby1wcmV2aWV3IgogICAgICAgICAgICAg ICB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBu YW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFz ZTMyCiAgICAgICAgICAgICIxeHNxNTVjZjJybmY3azZyMDRxOHd5bm14aXk5c3ZtM3BpODQwdmp2 YTQ3YmMwc3k4YW56IikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQog ICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC1wcm9j LW1hY3JvLWhhY2siICxydXN0LXByb2MtbWFjcm8taGFjaykKICAgICAgICAgKCJydXN0LXByb2Mt bWFjcm8yIiAscnVzdC1wcm9jLW1hY3JvMikKICAgICAgICAgKCJydXN0LXF1b3RlIiAscnVzdC1x dW90ZSkKICAgICAgICAgKCJydXN0LXN5biIgLHJ1c3Qtc3luKSkpKQogICAgKGhvbWUtcGFnZQog ICAgICAiaHR0cHM6Ly9ydXN0LWxhbmctbnVyc2VyeS5naXRodWIuaW8vZnV0dXJlcy1ycyIpCiAg ICAoc3lub3BzaXMKICAgICAgIlRoZSBgc2VsZWN0IWAgbWFjcm8gZm9yIHdhaXRpbmcgb24gbXVs dGlwbGUgZGlmZmVyZW50IGBGdXR1cmVgcyBhdCBvbmNlIGFuZCBoYW5kbGluZyB0aGUgZmlyc3Qg b25lIHRvIGNvbXBsZXRlLgoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJUaGUgYHNlbGVjdCFg IG1hY3JvIGZvciB3YWl0aW5nIG9uIG11bHRpcGxlIGRpZmZlcmVudCBgRnV0dXJlYHMgYXQgb25j ZSBhbmQgaGFuZGxpbmcgdGhlIGZpcnN0IG9uZSB0byBjb21wbGV0ZS4KIikKICAgIChsaWNlbnNl IChsaXN0IGxpY2Vuc2U6ZXhwYXQgbGljZW5zZTphc2wyLjApKSkpCgooZGVmaW5lLXB1YmxpYyBy dXN0LW1lbWNocgogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1tZW1jaHIiKQogICAgKHZlcnNp b24gIjIuMi4xIikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJs LWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAibWVtY2hyIiB2ZXJzaW9uKSkKICAgICAg ICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIu Y3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIx M2o2amk5eDl5ZHBpOWdyYnNzMTA2Z3FxcjN4bjNiY2ZwMjhheWRxZmE0NzUxcXJmbXc4IikpKSkK ICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAg ICBgKCM6Y2FyZ28taW5wdXRzICgoInJ1c3QtbGliYyIgLHJ1c3QtbGliYykpKSkKICAgIChob21l LXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9CdXJudFN1c2hpL3J1c3QtbWVtY2hyIikK ICAgIChzeW5vcHNpcyAiU2FmZSBpbnRlcmZhY2UgdG8gbWVtY2hyLiIpCiAgICAoZGVzY3JpcHRp b24gIlNhZmUgaW50ZXJmYWNlIHRvIG1lbWNoci4iKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZp bmUtcHVibGljIHJ1c3QtcHJvYy1tYWNyby1oYWNrCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0 LXByb2MtbWFjcm8taGFjayIpCiAgICAodmVyc2lvbiAiMC41LjExIikKICAgIChzb3VyY2UKICAg ICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRl LXVyaSAicHJvYy1tYWNyby1oYWNrIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAg ICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAo c2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxaWR6NXZtbmpqaHZyNTF5dnd5 amI0NW16YTE4d2E1M2ZyMDVtMXNrcXZiZHl3MTVnbTdjIikpKSkKICAgIChidWlsZC1zeXN0ZW0g Y2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRz CiAgICAgICAgKCgicnVzdC1wcm9jLW1hY3JvMiIgLHJ1c3QtcHJvYy1tYWNybzIpCiAgICAgICAg ICgicnVzdC1xdW90ZSIgLHJ1c3QtcXVvdGUpCiAgICAgICAgICgicnVzdC1zeW4iICxydXN0LXN5 bikpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9kdG9sbmF5L3By b2MtbWFjcm8taGFjayIpCiAgICAoc3lub3BzaXMKICAgICAgIlByb2NlZHVyYWwgbWFjcm9zIGlu IGV4cHJlc3Npb24gcG9zaXRpb24iKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJQcm9jZWR1cmFs IG1hY3JvcyBpbiBleHByZXNzaW9uIHBvc2l0aW9uIikKICAgIChsaWNlbnNlIChsaXN0IGxpY2Vu c2U6ZXhwYXQgbGljZW5zZTphc2wyLjApKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXByb2MtbWFj cm8tbmVzdGVkCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LXByb2MtbWFjcm8tbmVzdGVkIikK ICAgICh2ZXJzaW9uICIwLjEuMyIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAo bWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgInByb2MtbWFjcm8tbmVz dGVkIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVu ZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAo YmFzZTMyCiAgICAgICAgICAgICIwYm1sa3NtOHZsNDR3a3dpaG13cjdqc2p6bmhiZzBuN2FpYmN3 MWNzMmpnamNwODZ4NmluIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVt KQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIuY29tL2R0b2xuYXkvcHJvYy1t YWNyby1oYWNrIikKICAgIChzeW5vcHNpcwogICAgICAiU3VwcG9ydCBmb3IgbmVzdGVkIHByb2Mt bWFjcm8taGFjayBpbnZvY2F0aW9ucyIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIlN1cHBvcnQg Zm9yIG5lc3RlZCBwcm9jLW1hY3JvLWhhY2sgaW52b2NhdGlvbnMiKQogICAgKGxpY2Vuc2UgI2Yp KSkKCihkZWZpbmUtcHVibGljIHJ1c3Qtc2xhYgogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1z bGFiIikKICAgICh2ZXJzaW9uICIwLjQuMiIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAg ICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgInNsYWIiIHZl cnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUg Ii0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIK ICAgICAgICAgICAgIjF5NTl4c2EyN2prODRzeHpzd2prNjB4Y2pmOGI0Zm01OTYwandwem5ycmNt YXN5dmE0ZjEiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAo aG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vY2FybGxlcmNoZS9zbGFiIikKICAgIChzeW5v cHNpcwogICAgICAiUHJlLWFsbG9jYXRlZCBzdG9yYWdlIGZvciBhIHVuaWZvcm0gZGF0YSB0eXBl IikKICAgIChkZXNjcmlwdGlvbgogICAgICAiUHJlLWFsbG9jYXRlZCBzdG9yYWdlIGZvciBhIHVu aWZvcm0gZGF0YSB0eXBlIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKCihkZWZpbmUt cHVibGljIHJ1c3QtdG9raW8taW8tMC4xLjEyCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LXRv a2lvLWlvIikKICAgICh2ZXJzaW9uICIwLjEuMTIiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2lu CiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJ0b2tp by1pbyIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBl bmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAg KGJhc2UzMgogICAgICAgICAgICAiMDlqcnoxaGg0aDF2ajQ1cXkwOXk3bTdtOGpzeTFobDZnMzJj bG5reTI1bWRpbTNkcDQyaCIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3Rl bSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3Qt Ynl0ZXMtMC40LjEyIiAscnVzdC1ieXRlcy0wLjQuMTIpCiAgICAgICAgICgicnVzdC1mdXR1cmVz LTAuMS4yOSIgLHJ1c3QtZnV0dXJlcy0wLjEuMjkpCiAgICAgICAgICgicnVzdC1sb2ciICxydXN0 LWxvZykpKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vdG9raW8ucnMiKQogICAgKHN5bm9wc2lz CiAgICAgICJDb3JlIEkvTyBwcmltaXRpdmVzIGZvciBhc3luY2hyb25vdXMgSS9PIGluIFJ1c3Qu CiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIkNvcmUgSS9PIHByaW1pdGl2ZXMgZm9yIGFzeW5j aHJvbm91cyBJL08gaW4gUnVzdC4KIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQpKSkKCihk ZWZpbmUtcHVibGljIHJ1c3QtaXRvYQogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1pdG9hIikK ICAgICh2ZXJzaW9uICIwLjQuNCIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAo bWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgIml0b2EiIHZlcnNpb24p KQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZl cnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAg ICAgICAgIjB6dmcyZDlxdjNhdmhmM2Q4Z2dnbGg2ZmR5dzhra3dxZzNyNDYyMmx5NXloeG52bmM0 amgiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoaG9tZS1w YWdlICJodHRwczovL2dpdGh1Yi5jb20vZHRvbG5heS9pdG9hIikKICAgIChzeW5vcHNpcwogICAg ICAiRmFzdCBmdW5jdGlvbnMgZm9yIHByaW50aW5nIGludGVnZXIgcHJpbWl0aXZlcyB0byBhbiBp bzo6V3JpdGUiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJGYXN0IGZ1bmN0aW9ucyBmb3IgcHJp bnRpbmcgaW50ZWdlciBwcmltaXRpdmVzIHRvIGFuIGlvOjpXcml0ZSIpCiAgICAobGljZW5zZSAj ZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1yeXUKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3Qt cnl1IikKICAgICh2ZXJzaW9uICIxLjAuMiIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAg ICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgInJ5dSIgdmVy c2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAi LSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgog ICAgICAgICAgICAiMWowaDc0ZjF4cWY5aGpraGFucDhpMjBtcWMxYXczNWtyMWlxOWk3OXE3NzEz bW41MWE1eiIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChh cmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3Qtbm8tcGFuaWMi ICxydXN0LW5vLXBhbmljKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL2R0 b2xuYXkvcnl1IikKICAgIChzeW5vcHNpcwogICAgICAiRmFzdCBmbG9hdGluZyBwb2ludCB0byBz dHJpbmcgY29udmVyc2lvbiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIkZhc3QgZmxvYXRpbmcg cG9pbnQgdG8gc3RyaW5nIGNvbnZlcnNpb24iKQogICAgKGxpY2Vuc2UgKGxpc3QgbGljZW5zZTph c2wyLjAgbGljZW5zZTpib29zdDEuMCkpKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtaW5kZXhtYXAK ICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtaW5kZXhtYXAiKQogICAgKHZlcnNpb24gIjEuMy4w IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQog ICAgICAgICh1cmkgKGNyYXRlLXVyaSAiaW5kZXhtYXAiIHZlcnNpb24pKQogICAgICAgIChmaWxl LW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIp KQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjFja2Q5dmc2 eTcxZDlzeXo5ajc5NWJkejBkcGlsbTZ2eTU2czl5ZnduencybGx6N25iYmkiKSkpKQogICAgKGJ1 aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpj YXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0LWF1dG9jZmciICxydXN0LWF1dG9jZmcpCiAgICAg ICAgICgicnVzdC1yYXlvbiIgLHJ1c3QtcmF5b24pCiAgICAgICAgICgicnVzdC1zZXJkZSIgLHJ1 c3Qtc2VyZGUpKSkpCiAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vYmx1c3MvaW5k ZXhtYXAiKQogICAgKHN5bm9wc2lzCiAgICAgICJBIGhhc2ggdGFibGUgd2l0aCBjb25zaXN0ZW50 IG9yZGVyIGFuZCBmYXN0IGl0ZXJhdGlvbi4KClRoZSBpbmRleG1hcCBpcyBhIGhhc2ggdGFibGUg d2hlcmUgdGhlIGl0ZXJhdGlvbiBvcmRlciBvZiB0aGUga2V5LXZhbHVlCnBhaXJzIGlzIGluZGVw ZW5kZW50IG9mIHRoZSBoYXNoIHZhbHVlcyBvZiB0aGUga2V5cy4gSXQgaGFzIHRoZSB1c3VhbApo YXNoIHRhYmxlIGZ1bmN0aW9uYWxpdHksIGl0IHByZXNlcnZlcyBpbnNlcnRpb24gb3JkZXIgZXhj ZXB0IGFmdGVyCnJlbW92YWxzLCBhbmQgaXQgYWxsb3dzIGxvb2t1cCBvZiBpdHMgZWxlbWVudHMg YnkgZWl0aGVyIGhhc2ggdGFibGUga2V5Cm9yIG51bWVyaWNhbCBpbmRleC4gQSBjb3JyZXNwb25k aW5nIGhhc2ggc2V0IHR5cGUgaXMgYWxzbyBwcm92aWRlZC4KClRoaXMgY3JhdGUgd2FzIGluaXRp YWxseSBwdWJsaXNoZWQgdW5kZXIgdGhlIG5hbWUgb3JkZXJtYXAsIGJ1dCBpdCB3YXMgcmVuYW1l ZCB0bwppbmRleG1hcC4KIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiVGhpcyBwYWNrYWdlIHBy b3ZpZGVzIGEgaGFzaCB0YWJsZSB3aXRoIGNvbnNpc3RlbnQgb3JkZXIgYW5kIGZhc3QgaXRlcmF0 aW9uLgoKVGhlIGluZGV4bWFwIGlzIGEgaGFzaCB0YWJsZSB3aGVyZSB0aGUgaXRlcmF0aW9uIG9y ZGVyIG9mIHRoZSBrZXktdmFsdWUKcGFpcnMgaXMgaW5kZXBlbmRlbnQgb2YgdGhlIGhhc2ggdmFs dWVzIG9mIHRoZSBrZXlzLiAgSXQgaGFzIHRoZSB1c3VhbApoYXNoIHRhYmxlIGZ1bmN0aW9uYWxp dHksIGl0IHByZXNlcnZlcyBpbnNlcnRpb24gb3JkZXIgZXhjZXB0IGFmdGVyCnJlbW92YWxzLCBh bmQgaXQgYWxsb3dzIGxvb2t1cCBvZiBpdHMgZWxlbWVudHMgYnkgZWl0aGVyIGhhc2ggdGFibGUg a2V5Cm9yIG51bWVyaWNhbCBpbmRleC4gIEEgY29ycmVzcG9uZGluZyBoYXNoIHNldCB0eXBlIGlz IGFsc28gcHJvdmlkZWQuCgpUaGlzIGNyYXRlIHdhcyBpbml0aWFsbHkgcHVibGlzaGVkIHVuZGVy IHRoZSBuYW1lIG9yZGVybWFwLCBidXQgaXQgd2FzIHJlbmFtZWQgdG8KaW5kZXhtYXAuCiIpCiAg ICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC13YXNtLWJpbmRnZW4tbWFjcm8t c3VwcG9ydAogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC13YXNtLWJpbmRnZW4tbWFjcm8tc3Vw cG9ydCIpCiAgICAodmVyc2lvbiAiMC4yLjU1IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgog ICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAid2FzbS1i aW5kZ2VuLW1hY3JvLXN1cHBvcnQiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAg ICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChz aGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjB3N20wZ243ODN4Z2JiendjNW14 N2o4d2ExMTZ5dnk5NGZybmJ4NThyMzA3cWtyYjdpMXgiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBj YXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMK ICAgICAgICAoKCJydXN0LXByb2MtbWFjcm8yIiAscnVzdC1wcm9jLW1hY3JvMikKICAgICAgICAg KCJydXN0LXF1b3RlIiAscnVzdC1xdW90ZSkKICAgICAgICAgKCJydXN0LXN5biIgLHJ1c3Qtc3lu KQogICAgICAgICAoInJ1c3Qtd2FzbS1iaW5kZ2VuLWJhY2tlbmQiCiAgICAgICAgICAscnVzdC13 YXNtLWJpbmRnZW4tYmFja2VuZCkKICAgICAgICAgKCJydXN0LXdhc20tYmluZGdlbi1zaGFyZWQi CiAgICAgICAgICAscnVzdC13YXNtLWJpbmRnZW4tc2hhcmVkKSkpKQogICAgKGhvbWUtcGFnZQog ICAgICAiaHR0cHM6Ly9ydXN0d2FzbS5naXRodWIuaW8vd2FzbS1iaW5kZ2VuLyIpCiAgICAoc3lu b3BzaXMKICAgICAgIlRoZSBwYXJ0IG9mIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYCNbd2Fz bV9iaW5kZ2VuXWAgYXR0cmlidXRlIHRoYXQgaXMgbm90IGluIHRoZSBzaGFyZWQgYmFja2VuZCBj cmF0ZQoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJUaGUgcGFydCBvZiB0aGUgaW1wbGVtZW50 YXRpb24gb2YgdGhlIGAjW3dhc21fYmluZGdlbl1gIGF0dHJpYnV0ZSB0aGF0IGlzIG5vdCBpbiB0 aGUgc2hhcmVkIGJhY2tlbmQgY3JhdGUKIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1 YmxpYyBydXN0LW1heWJlLXVuaW5pdAogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1tYXliZS11 bmluaXQiKQogICAgKHZlcnNpb24gIjIuMC4wIikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgog ICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAibWF5YmUt dW5pbml0IiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFw cGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAg ICAoYmFzZTMyCiAgICAgICAgICAgICIwMDR5MG56bXBmZHJoejI1MTI3ODM0MXo2cWwzNGl2MWs2 ZHAxaDZhZjdkNm5kNmp3YzMwIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lz dGVtKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIuY29tL2VzdDMxL21heWJl LXVuaW5pdCIpCiAgICAoc3lub3BzaXMKICAgICAgIk1heWJlVW5pbml0IGZvciBmcmllbmRzIG9m IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IikKICAgIChkZXNjcmlwdGlvbgogICAgICAiTWF5YmVV bmluaXQgZm9yIGZyaWVuZHMgb2YgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkiKQogICAgKGxpY2Vu c2UgKGxpc3QgbGljZW5zZTphc2wyLjAgbGljZW5zZTpleHBhdCkpKSkKCihkZWZpbmUtcHVibGlj IHJ1c3QtZmFsbGlibGUtaXRlcmF0b3IKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtZmFsbGli bGUtaXRlcmF0b3IiKQogICAgKHZlcnNpb24gIjAuMi4xIikKICAgIChzb3VyY2UKICAgICAgKG9y aWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAi ZmFsbGlibGUtaXRlcmF0b3IiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAg IChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEy NTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjF4MzFza2pzeW5uMmg3c3EzcXp5djR6 bHlrMnc4am1xY3MzcGhzZzRxeGh6NTJ5ajE2cXgiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJn by1idWlsZC1zeXN0ZW0pCiAgICAoaG9tZS1wYWdlCiAgICAgICJodHRwczovL2dpdGh1Yi5jb20v c2ZhY2tsZXIvcnVzdC1mYWxsaWJsZS1pdGVyYXRvciIpCiAgICAoc3lub3BzaXMgIkZhbGxpYmxl IGl0ZXJhdG9yIHRyYWl0cyIpCiAgICAoZGVzY3JpcHRpb24gIkZhbGxpYmxlIGl0ZXJhdG9yIHRy YWl0cyIpCiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1naW1saQogIChw YWNrYWdlCiAgICAobmFtZSAicnVzdC1naW1saSIpCiAgICAodmVyc2lvbiAiMC4xOS4wIikKICAg IChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAg ICh1cmkgKGNyYXRlLXVyaSAiZ2ltbGkiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAg ICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAg IChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjAwNmRwYWE2M3kwMXdiNThu dnMyaGhqM3FxeDUyeXhnMjBuampmbHIwZnJmYnlwMWhiOG4iKSkpKQogICAgKGJ1aWxkLXN5c3Rl bSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1 dHMKICAgICAgICAoKCJydXN0LWFycmF5dmVjLTAuNC4xMiIgLHJ1c3QtYXJyYXl2ZWMtMC40LjEy KQogICAgICAgICAoInJ1c3QtYnl0ZW9yZGVyIiAscnVzdC1ieXRlb3JkZXIpCiAgICAgICAgICgi cnVzdC1mYWxsaWJsZS1pdGVyYXRvciIKICAgICAgICAgICxydXN0LWZhbGxpYmxlLWl0ZXJhdG9y KQogICAgICAgICAoInJ1c3QtaW5kZXhtYXAiICxydXN0LWluZGV4bWFwKQogICAgICAgICAoInJ1 c3Qtc3RhYmxlLWRlcmVmLXRyYWl0IgogICAgICAgICAgLHJ1c3Qtc3RhYmxlLWRlcmVmLXRyYWl0 KSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL2dpbWxpLXJzL2dpbWxpIikK ICAgIChzeW5vcHNpcwogICAgICAiQSBsaWJyYXJ5IGZvciByZWFkaW5nIGFuZCB3cml0aW5nIHRo ZSBEV0FSRiBkZWJ1Z2dpbmcgZm9ybWF0LiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIlRoaXMg cGFja2FnZSBwcm92aWRlcyBhIGxpYnJhcnkgZm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcgdGhlIERX QVJGIGRlYnVnZ2luZyBmb3JtYXQuIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1Ymxp YyBydXN0LWludGVydmFsdHJlZQogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1pbnRlcnZhbHRy ZWUiKQogICAgKHZlcnNpb24gIjAuMi40IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAg ICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAiaW50ZXJ2YWx0 cmVlIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVu ZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAo YmFzZTMyCiAgICAgICAgICAgICIxMGs0MGdzdjc5a3duc3Fyendtbm1tNnBzYTVmcXdzOHlnZ2F2 bWJnZ3Z5bXYxNmhmZmRnIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVt KQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC1z bWFsbHZlYy0wLjYuMTMiICxydXN0LXNtYWxsdmVjLTAuNi4xMykpKSkKICAgIChob21lLXBhZ2UK ICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9tYWluLS0vcnVzdC1pbnRlcnZhbHRyZWUiKQogICAg KHN5bm9wc2lzCiAgICAgICJBIHNpbXBsZSBhbmQgZ2VuZXJpYyBpbXBsZW1lbnRhdGlvbiBvZiBh biBpbW11dGFibGUgaW50ZXJ2YWwgdHJlZS4iKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJUaGlz IHBhY2thZ2UgcHJvdmlkZXMgYSBzaW1wbGUgYW5kIGdlbmVyaWMgaW1wbGVtZW50YXRpb24gb2Yg YW4gaW1tdXRhYmxlIGludGVydmFsIHRyZWUuIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhwYXQp KSkKCihkZWZpbmUtcHVibGljIHJ1c3QtbGF6eWNlbGwKICAocGFja2FnZQogICAgKG5hbWUgInJ1 c3QtbGF6eWNlbGwiKQogICAgKHZlcnNpb24gIjEuMi4xIikKICAgIChzb3VyY2UKICAgICAgKG9y aWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAi bGF6eWNlbGwiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmct YXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAg ICAgIChiYXNlMzIKICAgICAgICAgICAgIjBndnF5Y21wdjdwYXJjOThpNnk2NGFpN3J2eHJuMTk0 N3oyYTZtYWEwMmc0a3Z4ZGQ1NWoiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1z eXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMgKCgicnVzdC1jbGlw cHkiICxydXN0LWNsaXBweSkpKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9p bmRpdjAvbGF6eWNlbGwiKQogICAgKHN5bm9wc2lzCiAgICAgICJBIGxpYnJhcnkgcHJvdmlkaW5n IGEgbGF6aWx5IGZpbGxlZCBDZWxsIHN0cnVjdCIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIlRo aXMgcGFja2FnZSBwcm92aWRlcyBhIGxpYnJhcnkgcHJvdmlkaW5nIGEgbGF6aWx5IGZpbGxlZCBD ZWxsIHN0cnVjdCIpCiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1vYmpl Y3QtMC4xMi4wCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LW9iamVjdCIpCiAgICAodmVyc2lv biAiMC4xMi4wIikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJs LWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAib2JqZWN0IiB2ZXJzaW9uKSkKICAgICAg ICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIu Y3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIx ZGNoMWFqanAwNWQxNmxpZzFkbnZpc2ZpczBocmxydnc5bGN3eTFod2dkY3ltM3o2am56IikpKSkK ICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAg ICBgKCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC1mbGF0ZTIiICxydXN0LWZsYXRlMikK ICAgICAgICAgKCJydXN0LWdvYmxpbi0wLjAuMjIiICxydXN0LWdvYmxpbi0wLjAuMjIpCiAgICAg ICAgICgicnVzdC1wYXJpdHktd2FzbS0wLjM4LjAiCiAgICAgICAgICAscnVzdC1wYXJpdHktd2Fz bS0wLjM4LjApCiAgICAgICAgICgicnVzdC1zY3JvbGwtMC45LjIiICxydXN0LXNjcm9sbC0wLjku MikKICAgICAgICAgKCJydXN0LXV1aWQtMC43LjQiICxydXN0LXV1aWQtMC43LjQpKSkpCiAgICAo aG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vZ2ltbGktcnMvb2JqZWN0IikKICAgIChzeW5v cHNpcwogICAgICAiQSB1bmlmaWVkIGludGVyZmFjZSBmb3IgcGFyc2luZyBvYmplY3QgZmlsZSBm b3JtYXRzLiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIlRoaXMgcGFja2FnZSBwcm92aWRlcyBh IHVuaWZpZWQgaW50ZXJmYWNlIGZvciBwYXJzaW5nIG9iamVjdCBmaWxlIGZvcm1hdHMuIikKICAg IChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWdsb2IKICAocGFja2FnZQogICAg KG5hbWUgInJ1c3QtZ2xvYiIpCiAgICAodmVyc2lvbiAiMC4zLjAiKQogICAgKHNvdXJjZQogICAg ICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUt dXJpICJnbG9iIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5n LWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAg ICAgICAoYmFzZTMyCiAgICAgICAgICAgICIweDI1d2ZyN3ZnM216eGM5eDA1ZGNwaHZkM253bGNt Ym54cnZ3Y3ZycmR3cGxjcnJrNGN2IikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQt c3lzdGVtKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9nbG9i IikKICAgIChzeW5vcHNpcwogICAgICAiU3VwcG9ydCBmb3IgbWF0Y2hpbmcgZmlsZSBwYXRocyBh Z2FpbnN0IFVuaXggc2hlbGwgc3R5bGUgcGF0dGVybnMuCiIpCiAgICAoZGVzY3JpcHRpb24KICAg ICAgIlN1cHBvcnQgZm9yIG1hdGNoaW5nIGZpbGUgcGF0aHMgYWdhaW5zdCBVbml4IHNoZWxsIHN0 eWxlIHBhdHRlcm5zLgoiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1c3Qt YWZsCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LWFmbCIpCiAgICAodmVyc2lvbiAiMC41LjIi KQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAg ICAgICAgKHVyaSAoY3JhdGUtdXJpICJhZmwiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUK ICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAg ICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjBhenBpOTE3bDhuaHZ4 MjVuMnY2NzBudmt4a3JoY3dtZGRmaTg1cW5yNmtjaG1pNnk5NDYiKSkpKQogICAgKGJ1aWxkLXN5 c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1p bnB1dHMKICAgICAgICAoKCJydXN0LWNjIiAscnVzdC1jYykKICAgICAgICAgKCJydXN0LWNsYXAi ICxydXN0LWNsYXApCiAgICAgICAgICgicnVzdC1ydXN0Yy12ZXJzaW9uIiAscnVzdC1ydXN0Yy12 ZXJzaW9uKQogICAgICAgICAoInJ1c3QtcnVzdGMtdmVyc2lvbiIgLHJ1c3QtcnVzdGMtdmVyc2lv bikKICAgICAgICAgKCJydXN0LXhkZyIgLHJ1c3QteGRnKQogICAgICAgICAoInJ1c3QteGRnIiAs cnVzdC14ZGcpKSkpCiAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vcnVzdC1mdXp6 L2FmbC5ycyIpCiAgICAoc3lub3BzaXMKICAgICAgIkZ1enppbmcgUnVzdCBjb2RlIHdpdGggYW1l cmljYW4tZnV6enktbG9wIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiRnV6emluZyBSdXN0IGNv ZGUgd2l0aCBhbWVyaWNhbi1mdXp6eS1sb3AiKQogICAgKGxpY2Vuc2UgbGljZW5zZTphc2wyLjAp KSkKCihkZWZpbmUtcHVibGljIHJ1c3QtcGxhaW4KICAocGFja2FnZQogICAgKG5hbWUgInJ1c3Qt cGxhaW4iKQogICAgKHZlcnNpb24gIjAuMi4zIikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgog ICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAicGxhaW4i IHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5h bWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNl MzIKICAgICAgICAgICAgIjE5bjF4YnhiNHdhN3c4OTEyNjhiemY2Y2J3cTRxdmRiODZiaWsxejEy OXFiMHhubm5uZGwiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAg ICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vcmFuZG9taXRlcy9wbGFpbiIpCiAgICAo c3lub3BzaXMKICAgICAgIkEgc21hbGwgUnVzdCBsaWJyYXJ5IHRoYXQgYWxsb3dzIHVzZXJzIHRv IHJlaW50ZXJwcmV0IGRhdGEgb2YgY2VydGFpbiB0eXBlcyBzYWZlbHkuIikKICAgIChkZXNjcmlw dGlvbgogICAgICAiVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGEgc21hbGwgUnVzdCBsaWJyYXJ5IHRo YXQgYWxsb3dzIHVzZXJzIHRvIHJlaW50ZXJwcmV0IGRhdGEgb2YgY2VydGFpbiB0eXBlcyBzYWZl bHkuIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXNjcm9sbC0wLjku MgogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1zY3JvbGwiKQogICAgKHZlcnNpb24gIjAuOS4y IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQog ICAgICAgICh1cmkgKGNyYXRlLXVyaSAic2Nyb2xsIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1u YW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkK ICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxMHEzdzg2Ym4y MnhyamxmZzFjOTBkZmk5YzI2cWprem4yNm5hZDBpOXo4cHh3YWQzMTFnIikpKSkKICAgIChidWls ZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2Fy Z28taW5wdXRzCiAgICAgICAgKCgicnVzdC1ydXN0Yy12ZXJzaW9uIiAscnVzdC1ydXN0Yy12ZXJz aW9uKQogICAgICAgICAoInJ1c3Qtc2Nyb2xsLWRlcml2ZS0wLjkuNSIKICAgICAgICAgICxydXN0 LXNjcm9sbC1kZXJpdmUtMC45LjUpKSkpCiAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5j b20vbTRiL3Njcm9sbCIpCiAgICAoc3lub3BzaXMKICAgICAgIkEgc3VpdGUgb2YgcG93ZXJmdWws IGV4dGVuc2libGUsIGdlbmVyaWMsIGVuZGlhbi1hd2FyZSBSZWFkL1dyaXRlIHRyYWl0cyBmb3Ig Ynl0ZSBidWZmZXJzIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiVGhpcyBwYWNrYWdlIHByb3Zp ZGVzIGEgc3VpdGUgb2YgcG93ZXJmdWwsIGV4dGVuc2libGUsIGdlbmVyaWMsIGVuZGlhbi1hd2Fy ZSBSZWFkL1dyaXRlIHRyYWl0cyBmb3IgYnl0ZSBidWZmZXJzIikKICAgIChsaWNlbnNlIGxpY2Vu c2U6ZXhwYXQpKSkKCihkZWZpbmUtcHVibGljIHJ1c3Qtc3BpbgogIChwYWNrYWdlCiAgICAobmFt ZSAicnVzdC1zcGluIikKICAgICh2ZXJzaW9uICIwLjUuMiIpCiAgICAoc291cmNlCiAgICAgIChv cmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkg InNwaW4iIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBw ZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAg IChiYXNlMzIKICAgICAgICAgICAgIjBiODRtNmRienJ3ZjJreHlsbnc4MmQzZHI4dzA2YXY3cmZr cjhzODVmYjVmNDNyd3lxdmYiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0 ZW0pCiAgICAoaG9tZS1wYWdlCiAgICAgICJodHRwczovL2dpdGh1Yi5jb20vbXZkbmVzL3NwaW4t cnMuZ2l0IikKICAgIChzeW5vcHNpcwogICAgICAiU3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXMg YmFzZWQgb24gc3Bpbm5pbmcuClRoZXkgbWF5IGNvbnRhaW4gZGF0YSwgYXJlIHVzYWJsZSB3aXRo b3V0IGBzdGRgLAphbmQgc3RhdGljIGluaXRpYWxpemVycyBhcmUgYXZhaWxhYmxlLgoiKQogICAg KGRlc2NyaXB0aW9uCiAgICAgICJTeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlcyBiYXNlZCBvbiBz cGlubmluZy4KVGhleSBtYXkgY29udGFpbiBkYXRhLCBhcmUgdXNhYmxlIHdpdGhvdXQgYHN0ZGAs CmFuZCBzdGF0aWMgaW5pdGlhbGl6ZXJzIGFyZSBhdmFpbGFibGUuCiIpCiAgICAobGljZW5zZSBs aWNlbnNlOmV4cGF0KSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWJpbmRnZW4tMC40Ni4wCiAgKHBh Y2thZ2UKICAgIChuYW1lICJydXN0LWJpbmRnZW4iKQogICAgKHZlcnNpb24gIjAuNDYuMCIpCiAg ICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAg ICAodXJpIChjcmF0ZS11cmkgImJpbmRnZW4iIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUK ICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAg ICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjFxY2x2ajVweWRuNWNh bXczOTZiMHIzbno0bm4zcDV3cHhnNGZnZzFmYXZwMDQzcHl6d2ciKSkpKQogICAgKGJ1aWxkLXN5 c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1p bnB1dHMKICAgICAgICAoKCJydXN0LWJpdGZsYWdzIiAscnVzdC1iaXRmbGFncykKICAgICAgICAg KCJydXN0LWNleHByIiAscnVzdC1jZXhwcikKICAgICAgICAgKCJydXN0LWNmZy1pZiIgLHJ1c3Qt Y2ZnLWlmKQogICAgICAgICAoInJ1c3QtY2xhbmctc3lzLTAuMjYuNCIgLHJ1c3QtY2xhbmctc3lz LTAuMjYuNCkKICAgICAgICAgKCJydXN0LWNsYXAiICxydXN0LWNsYXApCiAgICAgICAgICgicnVz dC1lbnYtbG9nZ2VyLTAuNi4yIiAscnVzdC1lbnYtbG9nZ2VyLTAuNi4yKQogICAgICAgICAoInJ1 c3QtaGFzaGJyb3duLTAuMS44IiAscnVzdC1oYXNoYnJvd24tMC4xLjgpCiAgICAgICAgICgicnVz dC1sYXp5LXN0YXRpYyIgLHJ1c3QtbGF6eS1zdGF0aWMpCiAgICAgICAgICgicnVzdC1sb2ciICxy dXN0LWxvZykKICAgICAgICAgKCJydXN0LXBlZWtpbmctdGFrZS13aGlsZSIKICAgICAgICAgICxy dXN0LXBlZWtpbmctdGFrZS13aGlsZSkKICAgICAgICAgKCJydXN0LXByb2MtbWFjcm8yLTAuNC4z MCIKICAgICAgICAgICxydXN0LXByb2MtbWFjcm8yLTAuNC4zMCkKICAgICAgICAgKCJydXN0LXF1 b3RlLTAuNi4xMyIgLHJ1c3QtcXVvdGUtMC42LjEzKQogICAgICAgICAoInJ1c3QtcmVnZXgiICxy dXN0LXJlZ2V4KQogICAgICAgICAoInJ1c3Qtd2hpY2gtMi4wLjEiICxydXN0LXdoaWNoLTIuMC4x KSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9ydXN0LWxhbmcuZ2l0aHViLmlvL3J1 c3QtYmluZGdlbi8iKQogICAgKHN5bm9wc2lzCiAgICAgICJBdXRvbWF0aWNhbGx5IGdlbmVyYXRl cyBSdXN0IEZGSSBiaW5kaW5ncyB0byBDIGFuZCBDKysgbGlicmFyaWVzLiIpCiAgICAoZGVzY3Jp cHRpb24KICAgICAgIkF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVzIFJ1c3QgRkZJIGJpbmRpbmdzIHRv IEMgYW5kIEMrKyBsaWJyYXJpZXMuIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6YnNkLTMpKSkKCihk ZWZpbmUtcHVibGljIHJ1c3QtY21ha2UKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtY21ha2Ui KQogICAgKHZlcnNpb24gIjAuMS40MiIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAg ICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgImNtYWtlIiB2ZXJz aW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICIt IiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAg ICAgICAgICAgICIwcWt3aWJrdng1eGphenZ2OXY4Z3ZkbHBreTJqaGp4dmN6MDE0bnJpeGd6cWZ5 djJieXcxIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFy Z3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzICgoInJ1c3QtY2MiICxydXN0LWNjKSkpKQog ICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIuY29tL2FsZXhjcmljaHRvbi9jbWFr ZS1ycyIpCiAgICAoc3lub3BzaXMKICAgICAgIkEgYnVpbGQgZGVwZW5kZW5jeSBmb3IgcnVubmlu ZyBgY21ha2VgIHRvIGJ1aWxkIGEgbmF0aXZlIGxpYnJhcnkKIikKICAgIChkZXNjcmlwdGlvbgog ICAgICAiVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGEgYnVpbGQgZGVwZW5kZW5jeSBmb3IgcnVubmlu ZyBgY21ha2VgIHRvIGJ1aWxkIGEgbmF0aXZlIGxpYnJhcnkKIikKICAgIChsaWNlbnNlICNmKSkp CgooZGVmaW5lLXB1YmxpYyBydXN0LWVudi1sb2dnZXItMC42LjIKICAocGFja2FnZQogICAgKG5h bWUgInJ1c3QtZW52LWxvZ2dlciIpCiAgICAodmVyc2lvbiAiMC42LjIiKQogICAgKHNvdXJjZQog ICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3Jh dGUtdXJpICJlbnZfbG9nZ2VyIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAg ICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hh MjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxbHgyczVuazk2eHg0aTNtNHpjNGdo cWdpOGtiMDdkc255aXY4amsyY2xoYXg0MmR4ejVhIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2Fy Z28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAg ICAgICAgKCgicnVzdC1hdHR5IiAscnVzdC1hdHR5KQogICAgICAgICAoInJ1c3QtaHVtYW50aW1l IiAscnVzdC1odW1hbnRpbWUpCiAgICAgICAgICgicnVzdC1sb2ciICxydXN0LWxvZykKICAgICAg ICAgKCJydXN0LXJlZ2V4IiAscnVzdC1yZWdleCkKICAgICAgICAgKCJydXN0LXRlcm1jb2xvciIg LHJ1c3QtdGVybWNvbG9yKSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIu Y29tL3NlYmFzbWFncmkvZW52X2xvZ2dlci8iKQogICAgKHN5bm9wc2lzCiAgICAgICJBIGxvZ2dp bmcgaW1wbGVtZW50YXRpb24gZm9yIGBsb2dgIHdoaWNoIGlzIGNvbmZpZ3VyZWQgdmlhIGFuIGVu dmlyb25tZW50CnZhcmlhYmxlLgoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJUaGlzIHBhY2th Z2UgcHJvdmlkZXMgYSBsb2dnaW5nIGltcGxlbWVudGF0aW9uIGZvciBgbG9nYCB3aGljaCBpcyBj b25maWd1cmVkIHZpYSBhbiBlbnZpcm9ubWVudAp2YXJpYWJsZS4KIikKICAgIChsaWNlbnNlICNm KSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXNlbXZlci1wYXJzZXItMC43LjAKICAocGFja2FnZQog ICAgKG5hbWUgInJ1c3Qtc2VtdmVyLXBhcnNlciIpCiAgICAodmVyc2lvbiAiMC43LjAiKQogICAg KHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAg KHVyaSAoY3JhdGUtdXJpICJzZW12ZXItcGFyc2VyIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1u YW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkK ICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxOHZoeXB3Nnpn Y2NucmxtNXBzMXB3YTBraHo3cnk5Mjdpem5wcjg4Yjg3Y2FncjF2MmlxIikpKSkKICAgIChidWls ZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6 Ly9naXRodWIuY29tL3N0ZXZla2xhYm5pay9zZW12ZXItcGFyc2VyIikKICAgIChzeW5vcHNpcyAi UGFyc2luZyBvZiB0aGUgc2VtdmVyIHNwZWMuCiIpCiAgICAoZGVzY3JpcHRpb24gIlBhcnNpbmcg b2YgdGhlIHNlbXZlciBzcGVjLgoiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGlj IHJ1c3QtYnl0ZXMtMC40LjEyCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LWJ5dGVzIikKICAg ICh2ZXJzaW9uICIwLjQuMTIiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1l dGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJieXRlcyIgdmVyc2lvbikp CiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVy c2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAg ICAgICAiMDc2OGE1NXEyZnNxZGpzdmN2OThuZGc5ZHE3dzJnNDRkdnExYXZod3B4cmR6YnlkeXZy MCIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVu dHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtYnl0ZW9yZGVyIiAscnVz dC1ieXRlb3JkZXIpCiAgICAgICAgICgicnVzdC1laXRoZXIiICxydXN0LWVpdGhlcikKICAgICAg ICAgKCJydXN0LWlvdmVjLTAuMS40IiAscnVzdC1pb3ZlYy0wLjEuNCkKICAgICAgICAgKCJydXN0 LXNlcmRlIiAscnVzdC1zZXJkZSkpKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNv bS90b2tpby1ycy9ieXRlcyIpCiAgICAoc3lub3BzaXMKICAgICAgIlR5cGVzIGFuZCB0cmFpdHMg Zm9yIHdvcmtpbmcgd2l0aCBieXRlcyIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIlR5cGVzIGFu ZCB0cmFpdHMgZm9yIHdvcmtpbmcgd2l0aCBieXRlcyIpCiAgICAobGljZW5zZSBsaWNlbnNlOmV4 cGF0KSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LW5vLXBhbmljCiAgKHBhY2thZ2UKICAgIChuYW1l ICJydXN0LW5vLXBhbmljIikKICAgICh2ZXJzaW9uICIwLjEuMTIiKQogICAgKHNvdXJjZQogICAg ICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUt dXJpICJuby1wYW5pYyIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0 cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1Ngog ICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMHhhbjV2OWFjMWFrbGluYzhhdzE2cmFxMzZw YjRpZGpybDUwMm5wOGd5MzJnZnM2czc1MSIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1 aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAg ICgoInJ1c3QtcHJvYy1tYWNybzIiICxydXN0LXByb2MtbWFjcm8yKQogICAgICAgICAoInJ1c3Qt cXVvdGUiICxydXN0LXF1b3RlKQogICAgICAgICAoInJ1c3Qtc3luIiAscnVzdC1zeW4pKSkpCiAg ICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vZHRvbG5heS9uby1wYW5pYyIpCiAgICAo c3lub3BzaXMKICAgICAgIkF0dHJpYnV0ZSBtYWNybyB0byByZXF1aXJlIHRoYXQgdGhlIGNvbXBp bGVyIHByb3ZlIGEgZnVuY3Rpb24gY2FuJ3QgZXZlciBwYW5pYy4iKQogICAgKGRlc2NyaXB0aW9u CiAgICAgICJBdHRyaWJ1dGUgbWFjcm8gdG8gcmVxdWlyZSB0aGF0IHRoZSBjb21waWxlciBwcm92 ZSBhIGZ1bmN0aW9uIGNhbid0IGV2ZXIgcGFuaWMuIikKICAgIChsaWNlbnNlIChsaXN0IGxpY2Vu c2U6ZXhwYXQgbGljZW5zZTphc2wyLjApKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXJheW9uCiAg KHBhY2thZ2UKICAgIChuYW1lICJydXN0LXJheW9uIikKICAgICh2ZXJzaW9uICIxLjIuMSIpCiAg ICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAg ICAodXJpIChjcmF0ZS11cmkgInJheW9uIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAg ICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAg ICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxcGd4bnlwMGlxampscDJh a3c1bjk4d3hjanJkY2I5ajZ4MzNjZGlqZmZzOTY2NDl5d3MzIikpKSkKICAgIChidWlsZC1zeXN0 ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5w dXRzCiAgICAgICAgKCgicnVzdC1jcm9zc2JlYW0tZGVxdWUiICxydXN0LWNyb3NzYmVhbS1kZXF1 ZSkKICAgICAgICAgKCJydXN0LWVpdGhlciIgLHJ1c3QtZWl0aGVyKQogICAgICAgICAoInJ1c3Qt cmF5b24tY29yZSIgLHJ1c3QtcmF5b24tY29yZSkpKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8v Z2l0aHViLmNvbS9yYXlvbi1ycy9yYXlvbiIpCiAgICAoc3lub3BzaXMKICAgICAgIlNpbXBsZSB3 b3JrLXN0ZWFsaW5nIHBhcmFsbGVsaXNtIGZvciBSdXN0IikKICAgIChkZXNjcmlwdGlvbgogICAg ICAiU2ltcGxlIHdvcmstc3RlYWxpbmcgcGFyYWxsZWxpc20gZm9yIFJ1c3QiKQogICAgKGxpY2Vu c2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1c3Qtd2FzbS1iaW5kZ2VuLWJhY2tlbmQKICAocGFj a2FnZQogICAgKG5hbWUgInJ1c3Qtd2FzbS1iaW5kZ2VuLWJhY2tlbmQiKQogICAgKHZlcnNpb24g IjAuMi41NSIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1m ZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgIndhc20tYmluZGdlbi1iYWNrZW5kIiB2ZXJz aW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICIt IiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAg ICAgICAgICAgICIxMWN4bjVtNXNyajRicTA2endyMmZ3MnJtOWFsOGt3ZGtycDYxcGY0NGQycnNk NW1oaThxIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFy Z3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC1idW1wYWxvIiAs cnVzdC1idW1wYWxvKQogICAgICAgICAoInJ1c3QtbGF6eS1zdGF0aWMiICxydXN0LWxhenktc3Rh dGljKQogICAgICAgICAoInJ1c3QtbG9nIiAscnVzdC1sb2cpCiAgICAgICAgICgicnVzdC1wcm9j LW1hY3JvMiIgLHJ1c3QtcHJvYy1tYWNybzIpCiAgICAgICAgICgicnVzdC1xdW90ZSIgLHJ1c3Qt cXVvdGUpCiAgICAgICAgICgicnVzdC1zeW4iICxydXN0LXN5bikKICAgICAgICAgKCJydXN0LXdh c20tYmluZGdlbi1zaGFyZWQiCiAgICAgICAgICAscnVzdC13YXNtLWJpbmRnZW4tc2hhcmVkKSkp KQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9ydXN0d2FzbS5naXRodWIuaW8vd2FzbS1i aW5kZ2VuLyIpCiAgICAoc3lub3BzaXMKICAgICAgIkJhY2tlbmQgY29kZSBnZW5lcmF0aW9uIG9m IHRoZSB3YXNtLWJpbmRnZW4gdG9vbAoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJCYWNrZW5k IGNvZGUgZ2VuZXJhdGlvbiBvZiB0aGUgd2FzbS1iaW5kZ2VuIHRvb2wKIikKICAgIChsaWNlbnNl ICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXdhc20tYmluZGdlbi1zaGFyZWQKICAocGFja2Fn ZQogICAgKG5hbWUgInJ1c3Qtd2FzbS1iaW5kZ2VuLXNoYXJlZCIpCiAgICAodmVyc2lvbiAiMC4y LjU1IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNo KQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAid2FzbS1iaW5kZ2VuLXNoYXJlZCIgdmVyc2lvbikp CiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVy c2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAg ICAgICAiMGdkbWlkODVqcjN5eTM0eGZkbno5OXJ3bGEyN2c3MGNzajh4Ym53cWsxZHlzZ2I3aDJ5 YSIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChob21lLXBh Z2UKICAgICAgImh0dHBzOi8vcnVzdHdhc20uZ2l0aHViLmlvL3dhc20tYmluZGdlbi8iKQogICAg KHN5bm9wc2lzCiAgICAgICJTaGFyZWQgc3VwcG9ydCBiZXR3ZWVuIHdhc20tYmluZGdlbiBhbmQg d2FzbS1iaW5kZ2VuIGNsaSwgYW4gaW50ZXJuYWwKZGVwZW5kZW5jeS4KIikKICAgIChkZXNjcmlw dGlvbgogICAgICAiU2hhcmVkIHN1cHBvcnQgYmV0d2VlbiB3YXNtLWJpbmRnZW4gYW5kIHdhc20t YmluZGdlbiBjbGksIGFuIGludGVybmFsCmRlcGVuZGVuY3kuCiIpCiAgICAobGljZW5zZSAjZikp KQoKKGRlZmluZS1wdWJsaWMgcnVzdC1hcnJheXZlYy0wLjQuMTIKICAocGFja2FnZQogICAgKG5h bWUgInJ1c3QtYXJyYXl2ZWMiKQogICAgKHZlcnNpb24gIjAuNC4xMiIpCiAgICAoc291cmNlCiAg ICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0 ZS11cmkgImFycmF5dmVjIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAo c3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2 CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxZmRpdjVtNjI3Z2g2ZmxwNG1wbWkxbWg2 NDdpbW05eDQyM2xpY3NyMTFwc3o5N2Q5N3lkIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28t YnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAg ICAgKCgicnVzdC1ub2Ryb3AiICxydXN0LW5vZHJvcCkKICAgICAgICAgKCJydXN0LXNlcmRlIiAs cnVzdC1zZXJkZSkpKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9ibHVzcy9h cnJheXZlYyIpCiAgICAoc3lub3BzaXMKICAgICAgIkEgdmVjdG9yIHdpdGggZml4ZWQgY2FwYWNp dHksIGJhY2tlZCBieSBhbiBhcnJheSAoaXQgY2FuIGJlIHN0b3JlZCBvbiB0aGUgc3RhY2sgdG9v KS4gSW1wbGVtZW50cyBmaXhlZCBjYXBhY2l0eSBBcnJheVZlYyBhbmQgQXJyYXlTdHJpbmcuIikK ICAgIChkZXNjcmlwdGlvbgogICAgICAiVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGEgdmVjdG9yIHdp dGggZml4ZWQgY2FwYWNpdHksIGJhY2tlZCBieSBhbiBhcnJheSAoaXQgY2FuIGJlIHN0b3JlZCBv biB0aGUgc3RhY2sgdG9vKS4gIEltcGxlbWVudHMgZml4ZWQgY2FwYWNpdHkgQXJyYXlWZWMgYW5k IEFycmF5U3RyaW5nLiIpCiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1z dGFibGUtZGVyZWYtdHJhaXQKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3Qtc3RhYmxlLWRlcmVm LXRyYWl0IikKICAgICh2ZXJzaW9uICIxLjEuMSIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4K ICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgInN0YWJs ZV9kZXJlZl90cmFpdCIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0 cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1Ngog ICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMWoybGtnYWtrc216NHZjNWhmYXdjY2gyaXBp c2tyaGpzMXNpaDBmM2JyN3M3cnlzNThmdiIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1 aWxkLXN5c3RlbSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9zdG9y eXllbGxlci9zdGFibGVfZGVyZWZfdHJhaXQiKQogICAgKHN5bm9wc2lzCiAgICAgICJBbiB1bnNh ZmUgbWFya2VyIHRyYWl0IGZvciB0eXBlcyBsaWtlIEJveCBhbmQgUmMgdGhhdCBkZXJlZmVyZW5j ZSB0byBhIHN0YWJsZSBhZGRyZXNzIGV2ZW4gd2hlbiBtb3ZlZCwgYW5kIGhlbmNlIGNhbiBiZSB1 c2VkIHdpdGggbGlicmFyaWVzIHN1Y2ggYXMgb3duaW5nX3JlZiBhbmQgcmVudGFsLgoiKQogICAg KGRlc2NyaXB0aW9uCiAgICAgICJBbiB1bnNhZmUgbWFya2VyIHRyYWl0IGZvciB0eXBlcyBsaWtl IEJveCBhbmQgUmMgdGhhdCBkZXJlZmVyZW5jZSB0byBhIHN0YWJsZSBhZGRyZXNzIGV2ZW4gd2hl biBtb3ZlZCwgYW5kIGhlbmNlIGNhbiBiZSB1c2VkIHdpdGggbGlicmFyaWVzIHN1Y2ggYXMgb3du aW5nX3JlZiBhbmQgcmVudGFsLgoiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGlj IHJ1c3QtZ29ibGluLTAuMC4yMgogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1nb2JsaW4iKQog ICAgKHZlcnNpb24gIjAuMC4yMiIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAo bWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgImdvYmxpbiIgdmVyc2lv bikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIg dmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAg ICAgICAgICAiMWE3Nmk2eno3MWhqd2QxMXB3bWM4aWlyZGRqNjM0NW1mcDAyemw1ZDZiemIwNHNk YW1ieiIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1 bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtbG9nIiAscnVzdC1s b2cpCiAgICAgICAgICgicnVzdC1wbGFpbiIgLHJ1c3QtcGxhaW4pCiAgICAgICAgICgicnVzdC1z Y3JvbGwtMC45LjIiICxydXN0LXNjcm9sbC0wLjkuMikpKSkKICAgIChob21lLXBhZ2UgImh0dHBz Oi8vZ2l0aHViLmNvbS9tNGIvZ29ibGluIikKICAgIChzeW5vcHNpcwogICAgICAiQW4gaW1waXNo LCBjcm9zcy1wbGF0Zm9ybSwgRUxGLCBNYWNoLW8sIGFuZCBQRSBiaW5hcnkgcGFyc2luZyBhbmQg bG9hZGluZyBjcmF0ZSIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIkFuIGltcGlzaCwgY3Jvc3Mt cGxhdGZvcm0sIEVMRiwgTWFjaC1vLCBhbmQgUEUgYmluYXJ5IHBhcnNpbmcgYW5kIGxvYWRpbmcg Y3JhdGUiKQogICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQoKKGRlZmluZS1wdWJsaWMgcnVz dC11dWlkLTAuNy40CiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LXV1aWQiKQogICAgKHZlcnNp b24gIjAuNy40IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJs LWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAidXVpZCIgdmVyc2lvbikpCiAgICAgICAg KGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNy YXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMGFu azR4azIweDNucno5MjZ3OGo5bXo1M2JpM3Y4YnlreG1obHEycGZmYTh4Yzh3ZG53aCIpKSkpCiAg ICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAg YCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtYnl0ZW9yZGVyIiAscnVzdC1ieXRlb3Jk ZXIpCiAgICAgICAgICgicnVzdC1tZDUtMC42LjEiICxydXN0LW1kNS0wLjYuMSkKICAgICAgICAg KCJydXN0LXJhbmQtMC42LjUiICxydXN0LXJhbmQtMC42LjUpCiAgICAgICAgICgicnVzdC1zZXJk ZSIgLHJ1c3Qtc2VyZGUpCiAgICAgICAgICgicnVzdC1zaGExIiAscnVzdC1zaGExKQogICAgICAg ICAoInJ1c3Qtc2xvZyIgLHJ1c3Qtc2xvZykKICAgICAgICAgKCJydXN0LXdpbmFwaSIgLHJ1c3Qt d2luYXBpKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3V1aWQtcnMvdXVp ZCIpCiAgICAoc3lub3BzaXMKICAgICAgIkEgbGlicmFyeSB0byBnZW5lcmF0ZSBhbmQgcGFyc2Ug VVVJRHMuIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGEg bGlicmFyeSB0byBnZW5lcmF0ZSBhbmQgcGFyc2UgVVVJRHMuIikKICAgIChsaWNlbnNlIChsaXN0 IGxpY2Vuc2U6YXNsMi4wIGxpY2Vuc2U6ZXhwYXQpKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWZs YXRlMgogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1mbGF0ZTIiKQogICAgKHZlcnNpb24gIjEu MC4xMyIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRj aCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgImZsYXRlMiIgdmVyc2lvbikpCiAgICAgICAgKGZp bGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRl IikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMDNyd3lo NjkxajIwaWgydmNza3dwMXNpbmhmOXBhZ2dya3YzMmZ2endsaTlmcHNkZG1rYiIpKSkpCiAgICAo YnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgj OmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtY2ZnLWlmIiAscnVzdC1jZmctaWYpCiAgICAg ICAgICgicnVzdC1jcmMzMmZhc3QiICxydXN0LWNyYzMyZmFzdCkKICAgICAgICAgKCJydXN0LWZ1 dHVyZXMtMC4xLjI5IiAscnVzdC1mdXR1cmVzLTAuMS4yOSkKICAgICAgICAgKCJydXN0LWxpYmMi ICxydXN0LWxpYmMpCiAgICAgICAgICgicnVzdC1saWJ6LXN5cyIgLHJ1c3QtbGliei1zeXMpCiAg ICAgICAgICgicnVzdC1taW5pei1veGlkZSIgLHJ1c3QtbWluaXotb3hpZGUpCiAgICAgICAgICgi cnVzdC1taW5pei1veGlkZSIgLHJ1c3QtbWluaXotb3hpZGUpCiAgICAgICAgICgicnVzdC1taW5p ei1zeXMiICxydXN0LW1pbml6LXN5cykKICAgICAgICAgKCJydXN0LXRva2lvLWlvLTAuMS4xMiIg LHJ1c3QtdG9raW8taW8tMC4xLjEyKSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9n aXRodWIuY29tL2FsZXhjcmljaHRvbi9mbGF0ZTItcnMiKQogICAgKHN5bm9wc2lzCiAgICAgICJC aW5kaW5ncyB0byBtaW5pei5jIGZvciBERUZMQVRFIGNvbXByZXNzaW9uIGFuZCBkZWNvbXByZXNz aW9uIGV4cG9zZWQgYXMKUmVhZGVyL1dyaXRlciBzdHJlYW1zLiBDb250YWlucyBiaW5kaW5ncyBm b3IgemxpYiwgZGVmbGF0ZSwgYW5kIGd6aXAtYmFzZWQKc3RyZWFtcy4KIikKICAgIChkZXNjcmlw dGlvbgogICAgICAiQmluZGluZ3MgdG8gbWluaXouYyBmb3IgREVGTEFURSBjb21wcmVzc2lvbiBh bmQgZGVjb21wcmVzc2lvbiBleHBvc2VkIGFzClJlYWRlci9Xcml0ZXIgc3RyZWFtcy4gIENvbnRh aW5zIGJpbmRpbmdzIGZvciB6bGliLCBkZWZsYXRlLCBhbmQgZ3ppcC1iYXNlZApzdHJlYW1zLgoi KQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtcGFyaXR5LXdhc20tMC4z OC4wCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LXBhcml0eS13YXNtIikKICAgICh2ZXJzaW9u ICIwLjM4LjAiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwt ZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJwYXJpdHktd2FzbSIgdmVyc2lvbikpCiAg ICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lv biAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAg ICAiMHFwZndiOWFkeWk2Zzk4cTF3MHhpcWR6a3Y0cjFwN2IydzE5d2Q1Y3I1N3Jsd2lmYm1yMCIp KSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChob21lLXBhZ2UK ICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9wYXJpdHl0ZWNoL3Bhcml0eS13YXNtIikKICAgIChz eW5vcHNpcyAiV2ViQXNzZW1ibHkgbG93LWxldmVsIGZvcm1hdCBsaWJyYXJ5IikKICAgIChkZXNj cmlwdGlvbgogICAgICAiV2ViQXNzZW1ibHkgbG93LWxldmVsIGZvcm1hdCBsaWJyYXJ5IikKICAg IChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXhkZwogIChwYWNrYWdlCiAgICAo bmFtZSAicnVzdC14ZGciKQogICAgKHZlcnNpb24gIjIuMi4wIikKICAgIChzb3VyY2UKICAgICAg KG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVy aSAieGRnIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFw cGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAg ICAoYmFzZTMyCiAgICAgICAgICAgICIwbXdzOGEwZnIzY3FrNW5oN2FxOWxta21oemdodmFzcXk0 bWh3Nm5uemEwNmw0ZDZpMmZoIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lz dGVtKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIuY29tL3doaXRlcXVhcmsv cnVzdC14ZGciKQogICAgKHN5bm9wc2lzCiAgICAgICJBIGxpYnJhcnkgZm9yIHN0b3JpbmcgYW5k IHJldHJpZXZpbmcgZmlsZXMgYWNjb3JkaW5nIHRvIFhERyBCYXNlIERpcmVjdG9yeSBzcGVjaWZp Y2F0aW9uIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGEg bGlicmFyeSBmb3Igc3RvcmluZyBhbmQgcmV0cmlldmluZyBmaWxlcyBhY2NvcmRpbmcgdG8gWERH IEJhc2UgRGlyZWN0b3J5IHNwZWNpZmljYXRpb24iKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZp bmUtcHVibGljIHJ1c3QteGRnCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LXhkZyIpCiAgICAo dmVyc2lvbiAiMi4yLjAiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhv ZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJ4ZGciIHZlcnNpb24pKQogICAg ICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24g Ii5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAg IjBtd3M4YTBmcjNjcWs1bmg3YXE5bG1rbWh6Z2h2YXNxeTRtaHc2bm56YTA2bDRkNmkyZmgiKSkp KQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoaG9tZS1wYWdlCiAg ICAgICJodHRwczovL2dpdGh1Yi5jb20vd2hpdGVxdWFyay9ydXN0LXhkZyIpCiAgICAoc3lub3Bz aXMKICAgICAgIkEgbGlicmFyeSBmb3Igc3RvcmluZyBhbmQgcmV0cmlldmluZyBmaWxlcyBhY2Nv cmRpbmcgdG8gWERHIEJhc2UgRGlyZWN0b3J5IHNwZWNpZmljYXRpb24iKQogICAgKGRlc2NyaXB0 aW9uCiAgICAgICJUaGlzIHBhY2thZ2UgcHJvdmlkZXMgYSBsaWJyYXJ5IGZvciBzdG9yaW5nIGFu ZCByZXRyaWV2aW5nIGZpbGVzIGFjY29yZGluZyB0byBYREcgQmFzZSBEaXJlY3Rvcnkgc3BlY2lm aWNhdGlvbiIpCiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1zY3JvbGwt ZGVyaXZlLTAuOS41CiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LXNjcm9sbC1kZXJpdmUiKQog ICAgKHZlcnNpb24gIjAuOS41IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgICht ZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAic2Nyb2xsX2Rlcml2ZSIg dmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFt ZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2Uz MgogICAgICAgICAgICAiMWpxZzVtbThudmlpNmF2bDF6MXJjODlhZ3poMmt3a3BwZ3BzbndmYWt4 Zzc4bW5hajZsZyIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAg IChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtcHJvYy1t YWNybzItMC40LjMwIgogICAgICAgICAgLHJ1c3QtcHJvYy1tYWNybzItMC40LjMwKQogICAgICAg ICAoInJ1c3QtcXVvdGUtMC42LjEzIiAscnVzdC1xdW90ZS0wLjYuMTMpCiAgICAgICAgICgicnVz dC1zeW4tMC4xNS40NCIgLHJ1c3Qtc3luLTAuMTUuNDQpKSkpCiAgICAoaG9tZS1wYWdlICJodHRw czovL2dpdGh1Yi5jb20vbTRiL3Njcm9sbCIpCiAgICAoc3lub3BzaXMKICAgICAgIkEgbWFjcm9z IDEuMSBkZXJpdmUgaW1wbGVtZW50YXRpb24gZm9yIFByZWFkIGFuZCBQd3JpdGUgdHJhaXRzIGZy b20gdGhlIHNjcm9sbCBjcmF0ZSIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIlRoaXMgcGFja2Fn ZSBwcm92aWRlcyBhIG1hY3JvcyAxLjEgZGVyaXZlIGltcGxlbWVudGF0aW9uIGZvciBQcmVhZCBh bmQgUHdyaXRlIHRyYWl0cyBmcm9tIHRoZSBzY3JvbGwgY3JhdGUiKQogICAgKGxpY2Vuc2UgbGlj ZW5zZTpleHBhdCkpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1jZXhwcgogIChwYWNrYWdlCiAgICAo bmFtZSAicnVzdC1jZXhwciIpCiAgICAodmVyc2lvbiAiMC4zLjYiKQogICAgKHNvdXJjZQogICAg ICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUt dXJpICJjZXhwciIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmlu Zy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAg ICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMDdmZGZqNGZmMjk3NHkzM3lpeHJiNjU3cmlxOXps OWI5aDlscjBoN3JpZGhodnh2YnJndyIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxk LXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgo InJ1c3Qtbm9tLTQuMi4zIiAscnVzdC1ub20tNC4yLjMpKSkpCiAgICAoaG9tZS1wYWdlCiAgICAg ICJodHRwczovL2dpdGh1Yi5jb20vamV0aHJvZ2IvcnVzdC1jZXhwciIpCiAgICAoc3lub3BzaXMg IkEgQyBleHByZXNzaW9uIHBhcnNlciBhbmQgZXZhbHVhdG9yIikKICAgIChkZXNjcmlwdGlvbgog ICAgICAiVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGEgQyBleHByZXNzaW9uIHBhcnNlciBhbmQgZXZh bHVhdG9yIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWNsYW5nLXN5 cy0wLjI2LjQKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtY2xhbmctc3lzIikKICAgICh2ZXJz aW9uICIwLjI2LjQiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1 cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJjbGFuZy1zeXMiIHZlcnNpb24pKQog ICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNp b24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAg ICAgIjFyNTBkd3k1aGo1Z3EwN2RuMHFmODIyMmQwN3F2MDk3MHlteDBqOG45Nzc5eWF5YzN3M2Yi KSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRz CiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0LWdsb2ItMC4yLjExIiAscnVz dC1nbG9iLTAuMi4xMSkKICAgICAgICAgKCJydXN0LWdsb2ItMC4yLjExIiAscnVzdC1nbG9iLTAu Mi4xMSkKICAgICAgICAgKCJydXN0LWxpYmMiICxydXN0LWxpYmMpCiAgICAgICAgICgicnVzdC1s aWJsb2FkaW5nIiAscnVzdC1saWJsb2FkaW5nKSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0 cHM6Ly9naXRodWIuY29tL0t5bGVNYXllcy9jbGFuZy1zeXMiKQogICAgKHN5bm9wc2lzICJSdXN0 IGJpbmRpbmdzIGZvciBsaWJjbGFuZy4iKQogICAgKGRlc2NyaXB0aW9uICJSdXN0IGJpbmRpbmdz IGZvciBsaWJjbGFuZy4iKQogICAgKGxpY2Vuc2UgbGljZW5zZTphc2wyLjApKSkKCihkZWZpbmUt cHVibGljIHJ1c3QtaGFzaGJyb3duLTAuMS44CiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LWhh c2hicm93biIpCiAgICAodmVyc2lvbiAiMC4xLjgiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2lu CiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJoYXNo YnJvd24iIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBw ZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAg IChiYXNlMzIKICAgICAgICAgICAgIjFucDM1MG5yenlzeTAyMW5kbjIxMzVxNXZwenJwNW5saTc4 eXd6MTE0ZDF2Y252MmtiaXYiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0 ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0 LWJ5dGVvcmRlciIgLHJ1c3QtYnl0ZW9yZGVyKQogICAgICAgICAoInJ1c3QtcmF5b24iICxydXN0 LXJheW9uKQogICAgICAgICAoInJ1c3Qtc2NvcGVndWFyZC0wLjMuMyIgLHJ1c3Qtc2NvcGVndWFy ZC0wLjMuMykKICAgICAgICAgKCJydXN0LXNlcmRlIiAscnVzdC1zZXJkZSkpKSkKICAgIChob21l LXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvaGFzaGJyb3duIikKICAg IChzeW5vcHNpcwogICAgICAiQSBSdXN0IHBvcnQgb2YgR29vZ2xlJ3MgU3dpc3NUYWJsZSBoYXNo IG1hcCIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIlRoaXMgcGFja2FnZSBwcm92aWRlcyBhIFJ1 c3QgcG9ydCBvZiBHb29nbGUncyBTd2lzc1RhYmxlIGhhc2ggbWFwIikKICAgIChsaWNlbnNlICNm KSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXBlZWtpbmctdGFrZS13aGlsZQogIChwYWNrYWdlCiAg ICAobmFtZSAicnVzdC1wZWVraW5nLXRha2Utd2hpbGUiKQogICAgKHZlcnNpb24gIjAuMS4yIikK ICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAg ICAgICh1cmkgKGNyYXRlLXVyaSAicGVla2luZ190YWtlX3doaWxlIiB2ZXJzaW9uKSkKICAgICAg ICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIu Y3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIx NmJocXI2cmR5cnAxMnp2MzgxY3hhYXFxZDBwd3lzdm0xcThoMnlnaWh2eXB2ZnByYzhyIikpKSkK ICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGhvbWUtcGFnZQogICAg ICAiaHR0cHM6Ly9naXRodWIuY29tL2ZpdHpnZW4vcGVla2luZ190YWtlX3doaWxlIikKICAgIChz eW5vcHNpcwogICAgICAiTGlrZSBgSXRlcmF0b3I6OnRha2Vfd2hpbGVgLCBidXQgY2FsbHMgdGhl IHByZWRpY2F0ZSBvbiBhIHBlZWtlZCB2YWx1ZS4gVGhpcyBhbGxvd3MgeW91IHRvIHVzZSBgSXRl cmF0b3I6OmJ5X3JlZmAgYW5kIGBJdGVyYXRvcjo6dGFrZV93aGlsZWAgdG9nZXRoZXIsIGFuZCBz dGlsbCBnZXQgdGhlIGZpcnN0IHZhbHVlIGZvciB3aGljaCB0aGUgYHRha2Vfd2hpbGVgIHByZWRp Y2F0ZSByZXR1cm5lZCBmYWxzZSBhZnRlciBkcm9wcGluZyB0aGUgYGJ5X3JlZmAuIikKICAgIChk ZXNjcmlwdGlvbgogICAgICAiTGlrZSBgSXRlcmF0b3I6OnRha2Vfd2hpbGVgLCBidXQgY2FsbHMg dGhlIHByZWRpY2F0ZSBvbiBhIHBlZWtlZCB2YWx1ZS4gIFRoaXMgYWxsb3dzIHlvdSB0byB1c2Ug YEl0ZXJhdG9yOjpieV9yZWZgIGFuZCBgSXRlcmF0b3I6OnRha2Vfd2hpbGVgIHRvZ2V0aGVyLCBh bmQgc3RpbGwgZ2V0IHRoZSBmaXJzdCB2YWx1ZSBmb3Igd2hpY2ggdGhlIGB0YWtlX3doaWxlYCBw cmVkaWNhdGUgcmV0dXJuZWQgZmFsc2UgYWZ0ZXIgZHJvcHBpbmcgdGhlIGBieV9yZWZgLiIpCiAg ICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1wcm9jLW1hY3JvMi0wLjQuMzAK ICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtcHJvYy1tYWNybzIiKQogICAgKHZlcnNpb24gIjAu NC4zMCIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRj aCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgInByb2MtbWFjcm8yIiB2ZXJzaW9uKSkKICAgICAg ICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIu Y3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIw bmQ3MWZsMjRzeXMwNjZqcmhhNmo3aTM0bmZranY0NHl6dzh5d3c5NzQyd21jOGowZ2ZnIikpKSkK ICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAg ICBgKCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVzdC11bmljb2RlLXhpZC0wLjEuMCIKICAg ICAgICAgICxydXN0LXVuaWNvZGUteGlkLTAuMS4wKSkpKQogICAgKGhvbWUtcGFnZQogICAgICAi aHR0cHM6Ly9naXRodWIuY29tL2FsZXhjcmljaHRvbi9wcm9jLW1hY3JvMiIpCiAgICAoc3lub3Bz aXMKICAgICAgIkEgc3RhYmxlIGltcGxlbWVudGF0aW9uIG9mIHRoZSB1cGNvbWluZyBuZXcgYHBy b2NfbWFjcm9gIEFQSS4gQ29tZXMgd2l0aCBhbgpvcHRpb24sIG9mZiBieSBkZWZhdWx0LCB0byBh bHNvIHJlaW1wbGVtZW50IGl0c2VsZiBpbiB0ZXJtcyBvZiB0aGUgdXBzdHJlYW0KdW5zdGFibGUg QVBJLgoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJUaGlzIHBhY2thZ2UgcHJvdmlkZXMgYSBz dGFibGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIHVwY29taW5nIG5ldyBgcHJvY19tYWNyb2AgQVBJ LiAgQ29tZXMgd2l0aCBhbgpvcHRpb24sIG9mZiBieSBkZWZhdWx0LCB0byBhbHNvIHJlaW1wbGVt ZW50IGl0c2VsZiBpbiB0ZXJtcyBvZiB0aGUgdXBzdHJlYW0KdW5zdGFibGUgQVBJLgoiKQogICAg KGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtcXVvdGUtMC42LjEzCiAgKHBhY2th Z2UKICAgIChuYW1lICJydXN0LXF1b3RlIikKICAgICh2ZXJzaW9uICIwLjYuMTMiKQogICAgKHNv dXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVy aSAoY3JhdGUtdXJpICJxdW90ZSIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAg ICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNo YTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMXFncXE0OGp5bXA1aDR5MDgyYWFu ZjI1aHJ3NmJwYjY3OHhoM3p3OTkzcWZoeG1rcHFrYyIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNh cmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwog ICAgICAgICgoInJ1c3QtcHJvYy1tYWNybzItMC40LjMwIgogICAgICAgICAgLHJ1c3QtcHJvYy1t YWNybzItMC40LjMwKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL2R0b2xu YXkvcXVvdGUiKQogICAgKHN5bm9wc2lzICJRdWFzaS1xdW90aW5nIG1hY3JvIHF1b3RlISguLi4p IikKICAgIChkZXNjcmlwdGlvbiAiUXVhc2ktcXVvdGluZyBtYWNybyBxdW90ZSEoLi4uKSIpCiAg ICAobGljZW5zZSAobGlzdCBsaWNlbnNlOmV4cGF0IGxpY2Vuc2U6YXNsMi4wKSkpKQoKKGRlZmlu ZS1wdWJsaWMgcnVzdC1yZWdleAogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1yZWdleCIpCiAg ICAodmVyc2lvbiAiMS4zLjEiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1l dGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJyZWdleCIgdmVyc2lvbikp CiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVy c2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAg ICAgICAiMWc4d3AxNjB2enhncmFseWQ0aW15ZGQweHN4cTZ5aDI1emhzMjI5ejFzNnc3Zzlobjhu dyIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVu dHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtYWhvLWNvcmFzaWNrIiAs cnVzdC1haG8tY29yYXNpY2spCiAgICAgICAgICgicnVzdC1tZW1jaHIiICxydXN0LW1lbWNocikK ICAgICAgICAgKCJydXN0LXJlZ2V4LXN5bnRheCIgLHJ1c3QtcmVnZXgtc3ludGF4KQogICAgICAg ICAoInJ1c3QtdGhyZWFkLWxvY2FsLTAuMy42IgogICAgICAgICAgLHJ1c3QtdGhyZWFkLWxvY2Fs LTAuMy42KSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9y ZWdleCIpCiAgICAoc3lub3BzaXMKICAgICAgIkFuIGltcGxlbWVudGF0aW9uIG9mIHJlZ3VsYXIg ZXhwcmVzc2lvbnMgZm9yIFJ1c3QuIFRoaXMgaW1wbGVtZW50YXRpb24gdXNlcwpmaW5pdGUgYXV0 b21hdGEgYW5kIGd1YXJhbnRlZXMgbGluZWFyIHRpbWUgbWF0Y2hpbmcgb24gYWxsIGlucHV0cy4K IikKICAgIChkZXNjcmlwdGlvbgogICAgICAiQW4gaW1wbGVtZW50YXRpb24gb2YgcmVndWxhciBl eHByZXNzaW9ucyBmb3IgUnVzdC4gIFRoaXMgaW1wbGVtZW50YXRpb24gdXNlcwpmaW5pdGUgYXV0 b21hdGEgYW5kIGd1YXJhbnRlZXMgbGluZWFyIHRpbWUgbWF0Y2hpbmcgb24gYWxsIGlucHV0cy4K IikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXdoaWNoLTIuMC4xCiAg KHBhY2thZ2UKICAgIChuYW1lICJydXN0LXdoaWNoIikKICAgICh2ZXJzaW9uICIyLjAuMSIpCiAg ICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAg ICAodXJpIChjcmF0ZS11cmkgIndoaWNoIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAg ICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAg ICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIwcjdpNzkzc2MweHFuZDJm eG5xYmtzajdqMWt4NjVid244MWI4ejQ5NzUwdjRjOGNueW1tIikpKSkKICAgIChidWlsZC1zeXN0 ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5w dXRzCiAgICAgICAgKCgicnVzdC1mYWlsdXJlIiAscnVzdC1mYWlsdXJlKQogICAgICAgICAoInJ1 c3QtbGliYyIgLHJ1c3QtbGliYykpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0 aHViLmNvbS9oYXJyeWZlaS93aGljaC1ycy5naXQiKQogICAgKHN5bm9wc2lzCiAgICAgICJBIFJ1 c3QgZXF1aXZhbGVudCBvZiBVbml4IGNvbW1hbmQgXCJ3aGljaFwiLiBMb2NhdGUgaW5zdGFsbGVk IGV4ZWN1dGFibGUgaW4gY3Jvc3MgcGxhdGZvcm1zLiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAg IlRoaXMgcGFja2FnZSBwcm92aWRlcyBhIFJ1c3QgZXF1aXZhbGVudCBvZiBVbml4IGNvbW1hbmQg XCJ3aGljaFwiLiAgTG9jYXRlIGluc3RhbGxlZCBleGVjdXRhYmxlIGluIGNyb3NzIHBsYXRmb3Jt cy4iKQogICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1o dW1hbnRpbWUKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtaHVtYW50aW1lIikKICAgICh2ZXJz aW9uICIxLjMuMCIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVy bC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgImh1bWFudGltZSIgdmVyc2lvbikpCiAg ICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lv biAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAg ICAiMGtyd2diZjM1cGQ0Nnh2a3FnMTRqMDcwdmlyY3NuZGFiYWhhaGx2M3J3aGZscHk0cTA2eiIp KSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMK ICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtcXVpY2stZXJyb3IiICxydXN0 LXF1aWNrLWVycm9yKSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIuY29t L3RhaWxob29rL2h1bWFudGltZSIpCiAgICAoc3lub3BzaXMKICAgICAgIiAgICBBIHBhcnNlciBh bmQgZm9ybWF0dGVyIGZvciBzdGQ6OnRpbWU6OntEdXJhdGlvbiwgU3lzdGVtVGltZX0KIikKICAg IChkZXNjcmlwdGlvbgogICAgICAiICAgIEEgcGFyc2VyIGFuZCBmb3JtYXR0ZXIgZm9yIHN0ZDo6 dGltZTo6e0R1cmF0aW9uLCBTeXN0ZW1UaW1lfQoiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZp bmUtcHVibGljIHJ1c3QtdGVybWNvbG9yCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LXRlcm1j b2xvciIpCiAgICAodmVyc2lvbiAiMS4wLjUiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAg ICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJ0ZXJtY29s b3IiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5k IG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChi YXNlMzIKICAgICAgICAgICAgIjB2amZzbjFhOHp2cWhucmJ5Z3J6MWlkNnlja3d2MWRuY3czdzR6 ajY1cWR4MGYwMGttbG4iKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0p CiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0LXdp bmNvbG9yIiAscnVzdC13aW5jb2xvcikpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8v Z2l0aHViLmNvbS9CdXJudFN1c2hpL3Rlcm1jb2xvciIpCiAgICAoc3lub3BzaXMKICAgICAgIkEg c2ltcGxlIGNyb3NzIHBsYXRmb3JtIGxpYnJhcnkgZm9yIHdyaXRpbmcgY29sb3JlZCB0ZXh0IHRv IGEgdGVybWluYWwuCiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIlRoaXMgcGFja2FnZSBwcm92 aWRlcyBhIHNpbXBsZSBjcm9zcyBwbGF0Zm9ybSBsaWJyYXJ5IGZvciB3cml0aW5nIGNvbG9yZWQg dGV4dCB0byBhIHRlcm1pbmFsLgoiKQogICAgKGxpY2Vuc2UgKGxpc3QgbGljZW5zZTp1bmxpY2Vu c2UgbGljZW5zZTpleHBhdCkpKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtaW92ZWMtMC4xLjQKICAo cGFja2FnZQogICAgKG5hbWUgInJ1c3QtaW92ZWMiKQogICAgKHZlcnNpb24gIjAuMS40IikKICAg IChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAg ICh1cmkgKGNyYXRlLXVyaSAiaW92ZWMiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAg ICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAg IChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjBwaDczcXlnd3g4aTBtYmxy ZjExMGNqNTlsMDBna21zZ3Jwenoxcm04NXN5ejVweW1jeGoiKSkpKQogICAgKGJ1aWxkLXN5c3Rl bSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1 dHMgKCgicnVzdC1saWJjIiAscnVzdC1saWJjKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9n aXRodWIuY29tL2NhcmxsZXJjaGUvaW92ZWMiKQogICAgKHN5bm9wc2lzCiAgICAgICJQb3J0YWJs ZSBidWZmZXIgdHlwZSBmb3Igc2NhdHRlci9nYXRoZXIgSS9PIG9wZXJhdGlvbnMKIikKICAgIChk ZXNjcmlwdGlvbgogICAgICAiUG9ydGFibGUgYnVmZmVyIHR5cGUgZm9yIHNjYXR0ZXIvZ2F0aGVy IEkvTyBvcGVyYXRpb25zCiIpCiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVz dC1laXRoZXIKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtZWl0aGVyIikKICAgICh2ZXJzaW9u ICIxLjUuMyIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1m ZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgImVpdGhlciIgdmVyc2lvbikpCiAgICAgICAg KGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNy YXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMXF5 ejFiMWFjYWQ2dzBrNTkyOGp3NXphcTkwMHpoc2s3cDhkbGNwNGhoNjF3NGY2bjd4diIpKSkpCiAg ICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAg YCgjOmNhcmdvLWlucHV0cyAoKCJydXN0LXNlcmRlIiAscnVzdC1zZXJkZSkpKSkKICAgIChob21l LXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9ibHVzcy9laXRoZXIiKQogICAgKHN5bm9wc2lzCiAg ICAgICJUaGUgZW51bSBgRWl0aGVyYCB3aXRoIHZhcmlhbnRzIGBMZWZ0YCBhbmQgYFJpZ2h0YCBp cyBhIGdlbmVyYWwgcHVycG9zZSBzdW0gdHlwZSB3aXRoIHR3byBjYXNlcy4KIikKICAgIChkZXNj cmlwdGlvbgogICAgICAiVGhlIGVudW0gYEVpdGhlcmAgd2l0aCB2YXJpYW50cyBgTGVmdGAgYW5k IGBSaWdodGAgaXMgYSBnZW5lcmFsIHB1cnBvc2Ugc3VtIHR5cGUgd2l0aCB0d28gY2FzZXMuCiIp CiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1jcm9zc2JlYW0tZGVxdWUK ICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtY3Jvc3NiZWFtLWRlcXVlIikKICAgICh2ZXJzaW9u ICIwLjcuMiIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1m ZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgImNyb3NzYmVhbS1kZXF1ZSIgdmVyc2lvbikp CiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVy c2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAg ICAgICAiMWptM3JxYjNxZnBmeXdyYWt5eTgxZjYxeG5sNGpzaW03bGFtOWRpZ3c2dzZjZGZyOWFu MyIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVu dHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtY3Jvc3NiZWFtLWVwb2No IiAscnVzdC1jcm9zc2JlYW0tZXBvY2gpCiAgICAgICAgICgicnVzdC1jcm9zc2JlYW0tdXRpbHMi ICxydXN0LWNyb3NzYmVhbS11dGlscykpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8v Z2l0aHViLmNvbS9jcm9zc2JlYW0tcnMvY3Jvc3NiZWFtL3RyZWUvbWFzdGVyL2Nyb3NzYmVhbS1k ZXF1ZSIpCiAgICAoc3lub3BzaXMgIkNvbmN1cnJlbnQgd29yay1zdGVhbGluZyBkZXF1ZSIpCiAg ICAoZGVzY3JpcHRpb24gIkNvbmN1cnJlbnQgd29yay1zdGVhbGluZyBkZXF1ZSIpCiAgICAobGlj ZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1yYXlvbi1jb3JlCiAgKHBhY2thZ2UKICAg IChuYW1lICJydXN0LXJheW9uLWNvcmUiKQogICAgKHZlcnNpb24gIjEuNi4xIikKICAgIChzb3Vy Y2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkg KGNyYXRlLXVyaSAicmF5b24tY29yZSIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAg ICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAg KHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMTRhN2dkaTVsYmY5OWl4eTI3 d255MjVncTJ3NWtqNXJic3JwcWlybTljMTNkemcxZ2d6cSIpKSkpCiAgICAoYnVpbGQtc3lzdGVt IGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0 cwogICAgICAgICgoInJ1c3QtY3Jvc3NiZWFtLWRlcXVlIiAscnVzdC1jcm9zc2JlYW0tZGVxdWUp CiAgICAgICAgICgicnVzdC1jcm9zc2JlYW0tcXVldWUiICxydXN0LWNyb3NzYmVhbS1xdWV1ZSkK ICAgICAgICAgKCJydXN0LWNyb3NzYmVhbS11dGlscyIgLHJ1c3QtY3Jvc3NiZWFtLXV0aWxzKQog ICAgICAgICAoInJ1c3QtbGF6eS1zdGF0aWMiICxydXN0LWxhenktc3RhdGljKQogICAgICAgICAo InJ1c3QtbnVtLWNwdXMiICxydXN0LW51bS1jcHVzKSkpKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6 Ly9naXRodWIuY29tL3JheW9uLXJzL3JheW9uIikKICAgIChzeW5vcHNpcyAiQ29yZSBBUElzIGZv ciBSYXlvbiIpCiAgICAoZGVzY3JpcHRpb24gIkNvcmUgQVBJcyBmb3IgUmF5b24iKQogICAgKGxp Y2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtYnVtcGFsbwogIChwYWNrYWdlCiAgICAo bmFtZSAicnVzdC1idW1wYWxvIikKICAgICh2ZXJzaW9uICIyLjYuMCIpCiAgICAoc291cmNlCiAg ICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0 ZS11cmkgImJ1bXBhbG8iIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChz dHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYK ICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjAyMHBzeHM1ZGxtMGdkYnM4M3J4MnJjYXZp YmRzaGRyMGZwemszbW13NjV6cThwcHowNWQiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1i dWlsZC1zeXN0ZW0pCiAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vZml0emdlbi9i dW1wYWxvIikKICAgIChzeW5vcHNpcwogICAgICAiQSBmYXN0IGJ1bXAgYWxsb2NhdGlvbiBhcmVu YSBmb3IgUnVzdC4iKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJUaGlzIHBhY2thZ2UgcHJvdmlk ZXMgYSBmYXN0IGJ1bXAgYWxsb2NhdGlvbiBhcmVuYSBmb3IgUnVzdC4iKQogICAgKGxpY2Vuc2Ug I2YpKSkKCihkZWZpbmUtcHVibGljIHJ1c3Qtbm9kcm9wCiAgKHBhY2thZ2UKICAgIChuYW1lICJy dXN0LW5vZHJvcCIpCiAgICAodmVyc2lvbiAiMC4xLjE0IikKICAgIChzb3VyY2UKICAgICAgKG9y aWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAi bm9kcm9wIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFw cGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAg ICAoYmFzZTMyCiAgICAgICAgICAgICIxZnoxdjlyOGlqYWNmMGhscTBwZHY1bDltejh2Z3FnMXNu bWh2cGptaTlhY2kxYjRtdnZqIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lz dGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAgICAgKCgicnVz dC1ub2Ryb3AtdW5pb24iICxydXN0LW5vZHJvcC11bmlvbikpKSkKICAgIChob21lLXBhZ2UgImh0 dHBzOi8vZ2l0aHViLmNvbS9ibHVzcy9hcnJheXZlYyIpCiAgICAoc3lub3BzaXMKICAgICAgIkEg d3JhcHBlciB0eXBlIHRvIGluaGliaXQgZHJvcCAoZGVzdHJ1Y3RvcikuCgoqKipEZXByZWNhdGVk OiBVc2UgTWFudWFsbHlEcm9wIG9yIE1heWJlVW5pbml0IGluc3RlYWQhKioqCiIpCiAgICAoZGVz Y3JpcHRpb24KICAgICAgIlRoaXMgcGFja2FnZSBwcm92aWRlcyBhIHdyYXBwZXIgdHlwZSB0byBp bmhpYml0IGRyb3AgKGRlc3RydWN0b3IpLgoKKioqRGVwcmVjYXRlZDogVXNlIE1hbnVhbGx5RHJv cCBvciBNYXliZVVuaW5pdCBpbnN0ZWFkISoqKgoiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZp bmUtcHVibGljIHJ1c3QtbWQ1LTAuNi4xCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LW1kNSIp CiAgICAodmVyc2lvbiAiMC42LjEiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAg KG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJtZDUiIHZlcnNpb24p KQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZl cnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAg ICAgICAgIjE3YjJ4bTRoNGN2eHNkanNmM2tkcnpxdjJ6YTYwa2FrOTYxeHppNWttdzZnNmRqY3Nz dnkiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoaG9tZS1w YWdlCiAgICAgICJodHRwczovL2dpdGh1Yi5jb20vc3RhaW5sZXNzLXN0ZWVsL21kNSIpCiAgICAo c3lub3BzaXMKICAgICAgIlRoZSBwYWNrYWdlIHByb3ZpZGVzIHRoZSBNRDUgaGFzaCBmdW5jdGlv bi4iKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJUaGUgcGFja2FnZSBwcm92aWRlcyB0aGUgTUQ1 IGhhc2ggZnVuY3Rpb24uIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0 LXNsb2cKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3Qtc2xvZyIpCiAgICAodmVyc2lvbiAiMi41 LjIiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gp CiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJzbG9nIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1u YW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkK ICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxNmJ2NnpyZG4x c20zMTV2Ym5pYTAyZzMxeHZzbWJqeXo1Z3YzejB2cmd4ZGxpMGNkajh3IikpKSkKICAgIChidWls ZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2Fy Z28taW5wdXRzCiAgICAgICAgKCgicnVzdC1lcmFzZWQtc2VyZGUiICxydXN0LWVyYXNlZC1zZXJk ZSkpKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9zbG9nLXJzL3Nsb2ciKQog ICAgKHN5bm9wc2lzCiAgICAgICJTdHJ1Y3R1cmVkLCBleHRlbnNpYmxlLCBjb21wb3NhYmxlIGxv Z2dpbmcgZm9yIFJ1c3QiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJTdHJ1Y3R1cmVkLCBleHRl bnNpYmxlLCBjb21wb3NhYmxlIGxvZ2dpbmcgZm9yIFJ1c3QiKQogICAgKGxpY2Vuc2UgKGxpc3Qg I2YgbGljZW5zZTphc2wyLjApKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWNyYzMyZmFzdAogIChw YWNrYWdlCiAgICAobmFtZSAicnVzdC1jcmMzMmZhc3QiKQogICAgKHZlcnNpb24gIjEuMi4wIikK ICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAg ICAgICh1cmkgKGNyYXRlLXVyaSAiY3JjMzJmYXN0IiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1u YW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkK ICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxYzlkaGt2ZjNi cnJ6enBsY2lqYXl3eGkydzh3djU1NzhpMHJ5aGNtN3g4ZG16aTVzNG1zIikpKSkKICAgIChidWls ZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2Fy Z28taW5wdXRzICgoInJ1c3QtY2ZnLWlmIiAscnVzdC1jZmctaWYpKSkpCiAgICAoaG9tZS1wYWdl CiAgICAgICJodHRwczovL2dpdGh1Yi5jb20vc3JpanMvcnVzdC1jcmMzMmZhc3QiKQogICAgKHN5 bm9wc2lzCiAgICAgICJGYXN0LCBTSU1ELWFjY2VsZXJhdGVkIENSQzMyIChJRUVFKSBjaGVja3N1 bSBjb21wdXRhdGlvbiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIkZhc3QsIFNJTUQtYWNjZWxl cmF0ZWQgQ1JDMzIgKElFRUUpIGNoZWNrc3VtIGNvbXB1dGF0aW9uIikKICAgIChsaWNlbnNlIChs aXN0IGxpY2Vuc2U6ZXhwYXQgbGljZW5zZTphc2wyLjApKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0 LW1pbml6LW94aWRlCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LW1pbml6LW94aWRlIikKICAg ICh2ZXJzaW9uICIwLjMuNSIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0 aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgIm1pbml6X294aWRlIiB2ZXJz aW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICIt IiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAg ICAgICAgICAgICIwOWJuZm40Ym4zaGNwOTEydjVzeXBobTRramQwZmRrd3EwMjNhNHptcjR4ZjR2 dnA4Z3ZnIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFy Z3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzICgoInJ1c3QtYWRsZXIzMiIgLHJ1c3QtYWRs ZXIzMikpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9Gcm9tbWkv bWluaXpfb3hpZGUvdHJlZS9tYXN0ZXIvbWluaXpfb3hpZGUiKQogICAgKHN5bm9wc2lzCiAgICAg ICJERUZMQVRFIGNvbXByZXNzaW9uIGFuZCBkZWNvbXByZXNzaW9uIGxpYnJhcnkgcmV3cml0dGVu IGluIFJ1c3QgYmFzZWQgb24gbWluaXoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJERUZMQVRF IGNvbXByZXNzaW9uIGFuZCBkZWNvbXByZXNzaW9uIGxpYnJhcnkgcmV3cml0dGVuIGluIFJ1c3Qg YmFzZWQgb24gbWluaXoiKQogICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQoKKGRlZmluZS1w dWJsaWMgcnVzdC1saWJ6LXN5cwogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1saWJ6LXN5cyIp CiAgICAodmVyc2lvbiAiMS4wLjI1IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAg IChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAibGliei1zeXMiIHZl cnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUg Ii0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIK ICAgICAgICAgICAgIjFnanljeWwyMjgzNTI1YWJrczk4Ymh4YTRyMjU5bTYxN3hmbTV6NTJwM3Az YzhyeTlkOWYiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAo YXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0LWNjIiAscnVz dC1jYykKICAgICAgICAgKCJydXN0LWxpYmMiICxydXN0LWxpYmMpCiAgICAgICAgICgicnVzdC1w a2ctY29uZmlnIiAscnVzdC1wa2ctY29uZmlnKQogICAgICAgICAoInJ1c3QtdmNwa2ciICxydXN0 LXZjcGtnKSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9naXRodWIuY29tL2FsZXhj cmljaHRvbi9saWJ6LXN5cyIpCiAgICAoc3lub3BzaXMKICAgICAgIkJpbmRpbmdzIHRvIHRoZSBz eXN0ZW0gbGlieiBsaWJyYXJ5IChhbHNvIGtub3duIGFzIHpsaWIpLgoiKQogICAgKGRlc2NyaXB0 aW9uCiAgICAgICJCaW5kaW5ncyB0byB0aGUgc3lzdGVtIGxpYnogbGlicmFyeSAoYWxzbyBrbm93 biBhcyB6bGliKS4KIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LW1p bml6LW94aWRlCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LW1pbml6LW94aWRlIikKICAgICh2 ZXJzaW9uICIwLjMuNSIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9k IHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgIm1pbml6X294aWRlIiB2ZXJzaW9u KSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2 ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAg ICAgICAgICIwOWJuZm40Ym4zaGNwOTEydjVzeXBobTRramQwZmRrd3EwMjNhNHptcjR4ZjR2dnA4 Z3ZnIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3Vt ZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzICgoInJ1c3QtYWRsZXIzMiIgLHJ1c3QtYWRsZXIz MikpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9Gcm9tbWkvbWlu aXpfb3hpZGUvdHJlZS9tYXN0ZXIvbWluaXpfb3hpZGUiKQogICAgKHN5bm9wc2lzCiAgICAgICJE RUZMQVRFIGNvbXByZXNzaW9uIGFuZCBkZWNvbXByZXNzaW9uIGxpYnJhcnkgcmV3cml0dGVuIGlu IFJ1c3QgYmFzZWQgb24gbWluaXoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJERUZMQVRFIGNv bXByZXNzaW9uIGFuZCBkZWNvbXByZXNzaW9uIGxpYnJhcnkgcmV3cml0dGVuIGluIFJ1c3QgYmFz ZWQgb24gbWluaXoiKQogICAgKGxpY2Vuc2UgbGljZW5zZTpleHBhdCkpKQoKKGRlZmluZS1wdWJs aWMgcnVzdC1taW5pei1zeXMKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtbWluaXotc3lzIikK ICAgICh2ZXJzaW9uICIwLjEuMTIiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAg KG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJtaW5pei1zeXMiIHZl cnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUg Ii0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIK ICAgICAgICAgICAgIjAwbDJyNGFubThnMzV4MGpzMnpmZG53ZmJyaWg5bTQzdnBoZHBiNzdjNWdh M2tqa203aHkiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAo YXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0LWNjIiAscnVz dC1jYykgKCJydXN0LWxpYmMiICxydXN0LWxpYmMpKSkpCiAgICAoaG9tZS1wYWdlCiAgICAgICJo dHRwczovL2dpdGh1Yi5jb20vYWxleGNyaWNodG9uL2ZsYXRlMi1ycyIpCiAgICAoc3lub3BzaXMg IkJpbmRpbmdzIHRvIHRoZSBtaW5pei5jIGxpYnJhcnkuCiIpCiAgICAoZGVzY3JpcHRpb24KICAg ICAgIkJpbmRpbmdzIHRvIHRoZSBtaW5pei5jIGxpYnJhcnkuCiIpCiAgICAobGljZW5zZSAjZikp KQoKKGRlZmluZS1wdWJsaWMgcnVzdC1zeW4tMC4xNS40NAogIChwYWNrYWdlCiAgICAobmFtZSAi cnVzdC1zeW4iKQogICAgKHZlcnNpb24gIjAuMTUuNDQiKQogICAgKHNvdXJjZQogICAgICAob3Jp Z2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJz eW4iIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5k IG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChi YXNlMzIKICAgICAgICAgICAgIjFpZDVnNng2emlodjNqN2h3cnczbTFqcDYzNmJnOGRwaTY3MXI3 enkzanZwa2F2Yjc5NHciKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0p CiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJydXN0LXBy b2MtbWFjcm8yLTAuNC4zMCIKICAgICAgICAgICxydXN0LXByb2MtbWFjcm8yLTAuNC4zMCkKICAg ICAgICAgKCJydXN0LXF1b3RlLTAuNi4xMyIgLHJ1c3QtcXVvdGUtMC42LjEzKQogICAgICAgICAo InJ1c3QtdW5pY29kZS14aWQtMC4xLjAiCiAgICAgICAgICAscnVzdC11bmljb2RlLXhpZC0wLjEu MCkpKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9kdG9sbmF5L3N5biIpCiAg ICAoc3lub3BzaXMgIlBhcnNlciBmb3IgUnVzdCBzb3VyY2UgY29kZSIpCiAgICAoZGVzY3JpcHRp b24gIlBhcnNlciBmb3IgUnVzdCBzb3VyY2UgY29kZSIpCiAgICAobGljZW5zZSAobGlzdCBsaWNl bnNlOmV4cGF0IGxpY2Vuc2U6YXNsMi4wKSkpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1ub20tNC4y LjMKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3Qtbm9tIikKICAgICh2ZXJzaW9uICI0LjIuMyIp CiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAg ICAgICAodXJpIChjcmF0ZS11cmkgIm5vbSIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQog ICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAg ICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMW1rdmJ5OGI0bTYxcDRn MXB4MHB3cjU4eWZrcGh5cDFqY2ZicDRxZnA3bDZpcWRha2xpYSIpKSkpCiAgICAoYnVpbGQtc3lz dGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlu cHV0cwogICAgICAgICgoInJ1c3QtbGF6eS1zdGF0aWMiICxydXN0LWxhenktc3RhdGljKQogICAg ICAgICAoInJ1c3QtbWVtY2hyIiAscnVzdC1tZW1jaHIpCiAgICAgICAgICgicnVzdC1yZWdleCIg LHJ1c3QtcmVnZXgpCiAgICAgICAgICgicnVzdC12ZXJzaW9uLWNoZWNrLTAuMS41IgogICAgICAg ICAgLHJ1c3QtdmVyc2lvbi1jaGVjay0wLjEuNSkpKSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8v Z2l0aHViLmNvbS9HZWFsL25vbSIpCiAgICAoc3lub3BzaXMKICAgICAgIkEgYnl0ZS1vcmllbnRl ZCwgemVyby1jb3B5LCBwYXJzZXIgY29tYmluYXRvcnMgbGlicmFyeSIpCiAgICAoZGVzY3JpcHRp b24KICAgICAgIlRoaXMgcGFja2FnZSBwcm92aWRlcyBhIGJ5dGUtb3JpZW50ZWQsIHplcm8tY29w eSwgcGFyc2VyIGNvbWJpbmF0b3JzIGxpYnJhcnkiKQogICAgKGxpY2Vuc2UgbGljZW5zZTpleHBh dCkpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1nbG9iLTAuMi4xMQogIChwYWNrYWdlCiAgICAobmFt ZSAicnVzdC1nbG9iIikKICAgICh2ZXJzaW9uICIwLjIuMTEiKQogICAgKHNvdXJjZQogICAgICAo b3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJp ICJnbG9iIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFw cGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAg ICAoYmFzZTMyCiAgICAgICAgICAgICIxeXN2aTcyc2xrdzc4NGZjc3ltZ2o0MzA4YzN5MDNnd2pq enF4cDgweGRqbmtiaDh2cWNiIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lz dGVtKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9nbG9iIikK ICAgIChzeW5vcHNpcwogICAgICAiU3VwcG9ydCBmb3IgbWF0Y2hpbmcgZmlsZSBwYXRocyBhZ2Fp bnN0IFVuaXggc2hlbGwgc3R5bGUgcGF0dGVybnMuCiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAg IlN1cHBvcnQgZm9yIG1hdGNoaW5nIGZpbGUgcGF0aHMgYWdhaW5zdCBVbml4IHNoZWxsIHN0eWxl IHBhdHRlcm5zLgoiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtZ2xv Yi0wLjIuMTEKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtZ2xvYiIpCiAgICAodmVyc2lvbiAi MC4yLjExIikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZl dGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAiZ2xvYiIgdmVyc2lvbikpCiAgICAgICAgKGZp bGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRl IikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMXlzdmk3 MnNsa3c3ODRmY3N5bWdqNDMwOGMzeTAzZ3dqanpxeHA4MHhkam5rYmg4dnFjYiIpKSkpCiAgICAo YnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChob21lLXBhZ2UgImh0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmcvZ2xvYiIpCiAgICAoc3lub3BzaXMKICAgICAgIlN1cHBvcnQg Zm9yIG1hdGNoaW5nIGZpbGUgcGF0aHMgYWdhaW5zdCBVbml4IHNoZWxsIHN0eWxlIHBhdHRlcm5z LgoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJTdXBwb3J0IGZvciBtYXRjaGluZyBmaWxlIHBh dGhzIGFnYWluc3QgVW5peCBzaGVsbCBzdHlsZSBwYXR0ZXJucy4KIikKICAgIChsaWNlbnNlICNm KSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWxpYmxvYWRpbmcKICAocGFja2FnZQogICAgKG5hbWUg InJ1c3QtbGlibG9hZGluZyIpCiAgICAodmVyc2lvbiAiMC41LjIiKQogICAgKHNvdXJjZQogICAg ICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUt dXJpICJsaWJsb2FkaW5nIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAo c3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2 CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIwbHlwbHk4cmNxYzhhZ2FqenhzN2JxNml2 YmE5ZG5uMWk2OGtnYjl6MmZsbmZqaDEzY2dqIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28t YnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAgICAg ICAgKCgicnVzdC1jYyIgLHJ1c3QtY2MpCiAgICAgICAgICgicnVzdC13aW5hcGkiICxydXN0LXdp bmFwaSkpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9uYWdpc2Ev cnVzdF9saWJsb2FkaW5nLyIpCiAgICAoc3lub3BzaXMKICAgICAgIkEgc2FmZXIgYmluZGluZyB0 byBwbGF0Zm9ybcOiXHg4MFx4OTlzIGR5bmFtaWMgbGlicmFyeSBsb2FkaW5nIHV0aWxpdGllcyIp CiAgICAoZGVzY3JpcHRpb24KICAgICAgIlRoaXMgcGFja2FnZSBwcm92aWRlcyBhIHNhZmVyIGJp bmRpbmcgdG8gcGxhdGZvcm3Dolx4ODBceDk5cyBkeW5hbWljIGxpYnJhcnkgbG9hZGluZyB1dGls aXRpZXMiKQogICAgKGxpY2Vuc2UgbGljZW5zZTppc2MpKSkKCihkZWZpbmUtcHVibGljIHJ1c3Qt c2NvcGVndWFyZC0wLjMuMwogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1zY29wZWd1YXJkIikK ICAgICh2ZXJzaW9uICIwLjMuMyIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAo bWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgInNjb3BlZ3VhcmQiIHZl cnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUg Ii0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIK ICAgICAgICAgICAgIjA5c3k5d2JxcDQwOXBrd21xbmk0MHFtd2E5OWxkcXBsNDhwcDk1bTF4dzhz YzE5cXk5Y2wiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAo aG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vYmx1c3Mvc2NvcGVndWFyZCIpCiAgICAoc3lu b3BzaXMKICAgICAgIkEgUkFJSSBzY29wZSBndWFyZCB0aGF0IHdpbGwgcnVuIGEgZ2l2ZW4gY2xv c3VyZSB3aGVuIGl0IGdvZXMgb3V0IG9mIHNjb3BlLApldmVuIGlmIHRoZSBjb2RlIGJldHdlZW4g cGFuaWNzIChhc3N1bWluZyB1bndpbmRpbmcgcGFuaWMpLgoKRGVmaW5lcyB0aGUgbWFjcm9zIGBk ZWZlciFgLCBgZGVmZXJfb25fdW53aW5kIWAsIGBkZWZlcl9vbl9zdWNjZXNzIWAgYXMKc2hvcnRo YW5kcyBmb3IgZ3VhcmRzIHdpdGggb25lIG9mIHRoZSBpbXBsZW1lbnRlZCBzdHJhdGVnaWVzLgoi KQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJUaGlzIHBhY2thZ2UgcHJvdmlkZXMgYSBSQUlJIHNj b3BlIGd1YXJkIHRoYXQgd2lsbCBydW4gYSBnaXZlbiBjbG9zdXJlIHdoZW4gaXQgZ29lcyBvdXQg b2Ygc2NvcGUsCmV2ZW4gaWYgdGhlIGNvZGUgYmV0d2VlbiBwYW5pY3MgKGFzc3VtaW5nIHVud2lu ZGluZyBwYW5pYykuCgpEZWZpbmVzIHRoZSBtYWNyb3MgYGRlZmVyIWAsIGBkZWZlcl9vbl91bndp bmQhYCwgYGRlZmVyX29uX3N1Y2Nlc3MhYCBhcwpzaG9ydGhhbmRzIGZvciBndWFyZHMgd2l0aCBv bmUgb2YgdGhlIGltcGxlbWVudGVkIHN0cmF0ZWdpZXMuCiIpCiAgICAobGljZW5zZSAjZikpKQoK KGRlZmluZS1wdWJsaWMgcnVzdC11bmljb2RlLXhpZC0wLjEuMAogIChwYWNrYWdlCiAgICAobmFt ZSAicnVzdC11bmljb2RlLXhpZCIpCiAgICAodmVyc2lvbiAiMC4xLjAiKQogICAgKHNvdXJjZQog ICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3Jh dGUtdXJpICJ1bmljb2RlLXhpZCIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAg ICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNo YTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMXo1N2xxaDRzMThycjR4MGo0Znc0 Zm1wOWhmOTM0Nmgwa21kZ3FzcXgwZmhqcjNrMHdwdyIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNh cmdvLWJ1aWxkLXN5c3RlbSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNv bS91bmljb2RlLXJzL3VuaWNvZGUteGlkIikKICAgIChzeW5vcHNpcwogICAgICAiRGV0ZXJtaW5l IHdoZXRoZXIgY2hhcmFjdGVycyBoYXZlIHRoZSBYSURfU3RhcnQKb3IgWElEX0NvbnRpbnVlIHBy b3BlcnRpZXMgYWNjb3JkaW5nIHRvClVuaWNvZGUgU3RhbmRhcmQgQW5uZXggIzMxLgoiKQogICAg KGRlc2NyaXB0aW9uCiAgICAgICJEZXRlcm1pbmUgd2hldGhlciBjaGFyYWN0ZXJzIGhhdmUgdGhl IFhJRF9TdGFydApvciBYSURfQ29udGludWUgcHJvcGVydGllcyBhY2NvcmRpbmcgdG8KVW5pY29k ZSBTdGFuZGFyZCBBbm5leCAjMzEuCiIpCiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJs aWMgcnVzdC1yZWdleC1zeW50YXgKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtcmVnZXgtc3lu dGF4IikKICAgICh2ZXJzaW9uICIwLjYuMTIiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAg ICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJyZWdleC1z eW50YXgiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBw ZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAg IChiYXNlMzIKICAgICAgICAgICAgIjA1cHBsaWN2enZna2Iyd2I0aTk4cDJtcnBnYzhnd3M2dmRs OHhscHl5cjZmM2g2eTU5cWkiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0 ZW0pCiAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3JlZ2V4IikK ICAgIChzeW5vcHNpcyAiQSByZWd1bGFyIGV4cHJlc3Npb24gcGFyc2VyLiIpCiAgICAoZGVzY3Jp cHRpb24KICAgICAgIlRoaXMgcGFja2FnZSBwcm92aWRlcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBw YXJzZXIuIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LWFoby1jb3Jh c2ljawogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1haG8tY29yYXNpY2siKQogICAgKHZlcnNp b24gIjAuNy42IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJs LWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAiYWhvLWNvcmFzaWNrIiB2ZXJzaW9uKSkK ICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJz aW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAg ICAgICIwYjhkaDIwZmhkYzU5ZGhobmZpODluMmJpODBhOHpiYWd6ZDVjMTIyaGYxdnYyYW14eXNx IikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50 cwogICAgICBgKCM6Y2FyZ28taW5wdXRzICgoInJ1c3QtbWVtY2hyIiAscnVzdC1tZW1jaHIpKSkp CiAgICAoaG9tZS1wYWdlCiAgICAgICJodHRwczovL2dpdGh1Yi5jb20vQnVybnRTdXNoaS9haG8t Y29yYXNpY2siKQogICAgKHN5bm9wc2lzICJGYXN0IG11bHRpcGxlIHN1YnN0cmluZyBzZWFyY2hp bmcuIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiRmFzdCBtdWx0aXBsZSBzdWJzdHJpbmcgc2Vh cmNoaW5nLiIpCiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC10aHJlYWQt bG9jYWwtMC4zLjYKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtdGhyZWFkLWxvY2FsIikKICAg ICh2ZXJzaW9uICIwLjMuNiIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0 aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgInRocmVhZF9sb2NhbCIgdmVy c2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAi LSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgog ICAgICAgICAgICAiMDZyemlrOTlwOGM1anM4MjM4eWhjOHJrNm5wNTQzeWxiMWR5OW5ydzV2ODBq MHIzeGRmNiIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChh cmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtbGF6eS1zdGF0 aWMiICxydXN0LWxhenktc3RhdGljKSkpKQogICAgKGhvbWUtcGFnZQogICAgICAiaHR0cHM6Ly9n aXRodWIuY29tL0FtYW5pZXUvdGhyZWFkX2xvY2FsLXJzIikKICAgIChzeW5vcHNpcyAiUGVyLW9i amVjdCB0aHJlYWQtbG9jYWwgc3RvcmFnZSIpCiAgICAoZGVzY3JpcHRpb24gIlBlci1vYmplY3Qg dGhyZWFkLWxvY2FsIHN0b3JhZ2UiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGlj IHJ1c3QtcXVpY2stZXJyb3IKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtcXVpY2stZXJyb3Ii KQogICAgKHZlcnNpb24gIjEuMi4yIikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAg IChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAicXVpY2stZXJyb3Ii IHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5h bWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNl MzIKICAgICAgICAgICAgIjF3Nmtnd3d2N3A3enIweXlnNXJiMzE1bGtrMjRiaW15d2tsd3g3ZnN2 c2J3aTEwYmp4NGoiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAg ICAoaG9tZS1wYWdlCiAgICAgICJodHRwOi8vZ2l0aHViLmNvbS90YWlsaG9vay9xdWljay1lcnJv ciIpCiAgICAoc3lub3BzaXMKICAgICAgIiAgICBBIG1hY3JvIHdoaWNoIG1ha2VzIGVycm9yIHR5 cGVzIHBsZWFzYW50IHRvIHdyaXRlLgoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICIgICAgQSBt YWNybyB3aGljaCBtYWtlcyBlcnJvciB0eXBlcyBwbGVhc2FudCB0byB3cml0ZS4KIikKICAgIChs aWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LXdpbmNvbG9yCiAgKHBhY2thZ2UKICAg IChuYW1lICJydXN0LXdpbmNvbG9yIikKICAgICh2ZXJzaW9uICIxLjAuMiIpCiAgICAoc291cmNl CiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChj cmF0ZS11cmkgIndpbmNvbG9yIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAg ICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hh MjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAgICAgICAgICIxYWdhZjNoY2F2MTEzaTg2OTEyYWpu dzZqeGN5NHJ2a3JneWY4Z2RqOGtjMDMxbWgzeGNuIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2Fy Z28tYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzCiAg ICAgICAgKCgicnVzdC13aW5hcGkiICxydXN0LXdpbmFwaSkKICAgICAgICAgKCJydXN0LXdpbmFw aS11dGlsIiAscnVzdC13aW5hcGktdXRpbCkpKSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBz Oi8vZ2l0aHViLmNvbS9CdXJudFN1c2hpL3Rlcm1jb2xvci90cmVlL21hc3Rlci93aW5jb2xvciIp CiAgICAoc3lub3BzaXMKICAgICAgIkEgc2ltcGxlIFdpbmRvd3Mgc3BlY2lmaWMgQVBJIGZvciBj b250cm9sbGluZyB0ZXh0IGNvbG9yIGluIGEgV2luZG93cyBjb25zb2xlLgoiKQogICAgKGRlc2Ny aXB0aW9uCiAgICAgICJUaGlzIHBhY2thZ2UgcHJvdmlkZXMgYSBzaW1wbGUgV2luZG93cyBzcGVj aWZpYyBBUEkgZm9yIGNvbnRyb2xsaW5nIHRleHQgY29sb3IgaW4gYSBXaW5kb3dzIGNvbnNvbGUu CiIpCiAgICAobGljZW5zZSAobGlzdCBsaWNlbnNlOnVubGljZW5zZSBsaWNlbnNlOmV4cGF0KSkp KQoKKGRlZmluZS1wdWJsaWMgcnVzdC1jcm9zc2JlYW0tZXBvY2gKICAocGFja2FnZQogICAgKG5h bWUgInJ1c3QtY3Jvc3NiZWFtLWVwb2NoIikKICAgICh2ZXJzaW9uICIwLjguMCIpCiAgICAoc291 cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJp IChjcmF0ZS11cmkgImNyb3NzYmVhbS1lcG9jaCIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFt ZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAg ICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMWIybWdjMmd4eHZ5 enl4Z2Q1d3ZuOWs0MmdyNmY5cGhpMnN3d2phd3Bxc3d5M2R5bnIyaCIpKSkpCiAgICAoYnVpbGQt c3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdv LWlucHV0cwogICAgICAgICgoInJ1c3QtYXV0b2NmZyIgLHJ1c3QtYXV0b2NmZykKICAgICAgICAg KCJydXN0LWNmZy1pZiIgLHJ1c3QtY2ZnLWlmKQogICAgICAgICAoInJ1c3QtY3Jvc3NiZWFtLXV0 aWxzIiAscnVzdC1jcm9zc2JlYW0tdXRpbHMpCiAgICAgICAgICgicnVzdC1sYXp5LXN0YXRpYyIg LHJ1c3QtbGF6eS1zdGF0aWMpCiAgICAgICAgICgicnVzdC1tZW1vZmZzZXQiICxydXN0LW1lbW9m ZnNldCkKICAgICAgICAgKCJydXN0LXNjb3BlZ3VhcmQiICxydXN0LXNjb3BlZ3VhcmQpKSkpCiAg ICAoaG9tZS1wYWdlCiAgICAgICJodHRwczovL2dpdGh1Yi5jb20vY3Jvc3NiZWFtLXJzL2Nyb3Nz YmVhbS90cmVlL21hc3Rlci9jcm9zc2JlYW0tZXBvY2giKQogICAgKHN5bm9wc2lzICJFcG9jaC1i YXNlZCBnYXJiYWdlIGNvbGxlY3Rpb24iKQogICAgKGRlc2NyaXB0aW9uICJFcG9jaC1iYXNlZCBn YXJiYWdlIGNvbGxlY3Rpb24iKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1 c3QtY3Jvc3NiZWFtLXV0aWxzCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LWNyb3NzYmVhbS11 dGlscyIpCiAgICAodmVyc2lvbiAiMC43LjAiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAg ICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJjcm9zc2Jl YW0tdXRpbHMiIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmct YXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAg ICAgIChiYXNlMzIKICAgICAgICAgICAgIjF4MXJuMzVxMnYwNXFpZjE0aWpmZzc4MDBkM3JmM2pp MmNnNzlhd25hY2Z3NWpxNnNpNmYiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1z eXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpjYXJnby1pbnB1dHMKICAgICAgICAoKCJy dXN0LWF1dG9jZmciICxydXN0LWF1dG9jZmcpCiAgICAgICAgICgicnVzdC1jZmctaWYiICxydXN0 LWNmZy1pZikKICAgICAgICAgKCJydXN0LWxhenktc3RhdGljIiAscnVzdC1sYXp5LXN0YXRpYykp KSkKICAgIChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9jcm9zc2JlYW0tcnMv Y3Jvc3NiZWFtL3RyZWUvbWFzdGVyL2Nyb3NzYmVhbS11dGlscyIpCiAgICAoc3lub3BzaXMgIlV0 aWxpdGllcyBmb3IgY29uY3VycmVudCBwcm9ncmFtbWluZyIpCiAgICAoZGVzY3JpcHRpb24KICAg ICAgIlV0aWxpdGllcyBmb3IgY29uY3VycmVudCBwcm9ncmFtbWluZyIpCiAgICAobGljZW5zZSAj ZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1jcm9zc2JlYW0tcXVldWUKICAocGFja2FnZQogICAg KG5hbWUgInJ1c3QtY3Jvc3NiZWFtLXF1ZXVlIikKICAgICh2ZXJzaW9uICIwLjIuMCIpCiAgICAo c291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAo dXJpIChjcmF0ZS11cmkgImNyb3NzYmVhbS1xdWV1ZSIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUt bmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikp CiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMDAxNzdoajFh bm1iM2Zpam02bGM5NWNuY2IxOWFkMmt2MGEyZ2YzanliZDhjaWM1M21ueiIpKSkpCiAgICAoYnVp bGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNh cmdvLWlucHV0cwogICAgICAgICgoInJ1c3QtY3Jvc3NiZWFtLXV0aWxzIiAscnVzdC1jcm9zc2Jl YW0tdXRpbHMpKSkpCiAgICAoaG9tZS1wYWdlCiAgICAgICJodHRwczovL2dpdGh1Yi5jb20vY3Jv c3NiZWFtLXJzL2Nyb3NzYmVhbS90cmVlL21hc3Rlci9jcm9zc2JlYW0tdXRpbHMiKQogICAgKHN5 bm9wc2lzICJDb25jdXJyZW50IHF1ZXVlcyIpCiAgICAoZGVzY3JpcHRpb24gIkNvbmN1cnJlbnQg cXVldWVzIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1YmxpYyBydXN0LW5vZHJvcC11 bmlvbgogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC1ub2Ryb3AtdW5pb24iKQogICAgKHZlcnNp b24gIjAuMS4xMSIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAgICAgICAobWV0aG9kIHVy bC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgIm5vZHJvcC11bmlvbiIgdmVyc2lvbikp CiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVy c2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAgICAg ICAgICAiMWg1OXBwaDE5cnhhbnlxY2FpZDhwZzczczd3bXpkeDN6aGp2NXNubGltNXF4NjA2enhr YyIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChob21lLXBh Z2UgImh0dHBzOi8vZ2l0aHViLmNvbS9ibHVzcy9hcnJheXZlYyIpCiAgICAoc3lub3BzaXMKICAg ICAgIkEgd3JhcHBlciB0eXBlIHRvIGluaGliaXQgZHJvcCAoZGVzdHJ1Y3RvcikuIEltcGxlbWVu dGF0aW9uIGNyYXRlIGZvciBub2Ryb3AsIHRoZSB1bnRhZ2dlZCB1bmlvbnMgaW1wbGVtZW50YXRp b24gKHdoaWNoIGlzIHVuc3RhYmxlIC8gcmVxdWlyZXMgbmlnaHRseSkgYXMgb2YgdGhpcyB3cml0 aW5nLgoKKioqRGVwcmVjYXRlZDogVXNlIE1hbnVhbGx5RHJvcCBvciBNYXliZVVuaW5pdCBpbnN0 ZWFkISoqKgoiKQogICAgKGRlc2NyaXB0aW9uCiAgICAgICJUaGlzIHBhY2thZ2UgcHJvdmlkZXMg YSB3cmFwcGVyIHR5cGUgdG8gaW5oaWJpdCBkcm9wIChkZXN0cnVjdG9yKS4gIEltcGxlbWVudGF0 aW9uIGNyYXRlIGZvciBub2Ryb3AsIHRoZSB1bnRhZ2dlZCB1bmlvbnMgaW1wbGVtZW50YXRpb24g KHdoaWNoIGlzIHVuc3RhYmxlIC8gcmVxdWlyZXMgbmlnaHRseSkgYXMgb2YgdGhpcyB3cml0aW5n LgoKKioqRGVwcmVjYXRlZDogVXNlIE1hbnVhbGx5RHJvcCBvciBNYXliZVVuaW5pdCBpbnN0ZWFk ISoqKgoiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtZXJhc2VkLXNl cmRlCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LWVyYXNlZC1zZXJkZSIpCiAgICAodmVyc2lv biAiMC4zLjkiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhvZCB1cmwt ZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJlcmFzZWQtc2VyZGUiIHZlcnNpb24pKQog ICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNp b24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAgICAgIChiYXNlMzIKICAgICAgICAg ICAgIjBxN2JueHM1enNrZnE1aWlsbGlnNTVnNzg5MWRsbGN4aDJwOHk4azFwMmo3MnN5Zjl2aXYi KSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRz CiAgICAgIGAoIzpjYXJnby1pbnB1dHMgKCgicnVzdC1zZXJkZSIgLHJ1c3Qtc2VyZGUpKSkpCiAg ICAoaG9tZS1wYWdlCiAgICAgICJodHRwczovL2dpdGh1Yi5jb20vZHRvbG5heS9lcmFzZWQtc2Vy ZGUiKQogICAgKHN5bm9wc2lzCiAgICAgICJUeXBlLWVyYXNlZCBTZXJpYWxpemUgYW5kIFNlcmlh bGl6ZXIgdHJhaXRzIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiVHlwZS1lcmFzZWQgU2VyaWFs aXplIGFuZCBTZXJpYWxpemVyIHRyYWl0cyIpCiAgICAobGljZW5zZSAjZikpKQoKKGRlZmluZS1w dWJsaWMgcnVzdC1hZGxlcjMyCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LWFkbGVyMzIiKQog ICAgKHZlcnNpb24gIjEuMC40IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAgICht ZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAiYWRsZXIzMiIgdmVyc2lv bikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFtZSAiLSIg dmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2UzMgogICAg ICAgICAgICAiMWhuYW40ZmdtbmlkZ24yazg0aGgyaTY3YzN3cDJjNWl3ZDVoczYxeWk3Z3d3eDFw NmJqeCIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAgIChob21l LXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9yZW1yYW00NC9hZGxlcjMyLXJzIikKICAg IChzeW5vcHNpcwogICAgICAiTWluaW1hbCBBZGxlcjMyIGltcGxlbWVudGF0aW9uIGZvciBSdXN0 LiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIk1pbmltYWwgQWRsZXIzMiBpbXBsZW1lbnRhdGlv biBmb3IgUnVzdC4iKQogICAgKGxpY2Vuc2UgbGljZW5zZTp6bGliKSkpCgooZGVmaW5lLXB1Ymxp YyBydXN0LXBrZy1jb25maWcKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3QtcGtnLWNvbmZpZyIp CiAgICAodmVyc2lvbiAiMC4zLjE3IikKICAgIChzb3VyY2UKICAgICAgKG9yaWdpbgogICAgICAg IChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNyYXRlLXVyaSAicGtnLWNvbmZpZyIg dmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0cmluZy1hcHBlbmQgbmFt ZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1NgogICAgICAgICAgKGJhc2Uz MgogICAgICAgICAgICAiMHh5bm5heGR2MGd6YWRsdzRoNzlqODU1azBxN3JqNHpiOXhiMXZrMDBu YzZzczU1OW5oNSIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1aWxkLXN5c3RlbSkKICAg IChob21lLXBhZ2UKICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvcGtnLWNvbmZp Zy1ycyIpCiAgICAoc3lub3BzaXMKICAgICAgIkEgbGlicmFyeSB0byBydW4gdGhlIHBrZy1jb25m aWcgc3lzdGVtIHRvb2wgYXQgYnVpbGQgdGltZSBpbiBvcmRlciB0byBiZSB1c2VkIGluCkNhcmdv IGJ1aWxkIHNjcmlwdHMuCiIpCiAgICAoZGVzY3JpcHRpb24KICAgICAgIlRoaXMgcGFja2FnZSBw cm92aWRlcyBhIGxpYnJhcnkgdG8gcnVuIHRoZSBwa2ctY29uZmlnIHN5c3RlbSB0b29sIGF0IGJ1 aWxkIHRpbWUgaW4gb3JkZXIgdG8gYmUgdXNlZCBpbgpDYXJnbyBidWlsZCBzY3JpcHRzLgoiKQog ICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1c3QtdmNwa2cKICAocGFja2FnZQog ICAgKG5hbWUgInJ1c3QtdmNwa2ciKQogICAgKHZlcnNpb24gIjAuMi43IikKICAgIChzb3VyY2UK ICAgICAgKG9yaWdpbgogICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICh1cmkgKGNy YXRlLXVyaSAidmNwa2ciIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChz dHJpbmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYK ICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgIjE1ZHprMWI5NnE5NDZ2OWFpc2JkMWJiaGkz M245M3d2Z3ppd2gxc2htc2NuMXhmbGJwOWsiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1i dWlsZC1zeXN0ZW0pCiAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vbWNnb28vdmNw a2ctcnMiKQogICAgKHN5bm9wc2lzCiAgICAgICJBIGxpYnJhcnkgdG8gZmluZCBuYXRpdmUgZGVw ZW5kZW5jaWVzIGluIGEgdmNwa2cgdHJlZSBhdCBidWlsZAp0aW1lIGluIG9yZGVyIHRvIGJlIHVz ZWQgaW4gQ2FyZ28gYnVpbGQgc2NyaXB0cy4KIikKICAgIChkZXNjcmlwdGlvbgogICAgICAiVGhp cyBwYWNrYWdlIHByb3ZpZGVzIGEgbGlicmFyeSB0byBmaW5kIG5hdGl2ZSBkZXBlbmRlbmNpZXMg aW4gYSB2Y3BrZyB0cmVlIGF0IGJ1aWxkCnRpbWUgaW4gb3JkZXIgdG8gYmUgdXNlZCBpbiBDYXJn byBidWlsZCBzY3JpcHRzLgoiKQogICAgKGxpY2Vuc2UgI2YpKSkKCihkZWZpbmUtcHVibGljIHJ1 c3QtdmVyc2lvbi1jaGVjay0wLjEuNQogIChwYWNrYWdlCiAgICAobmFtZSAicnVzdC12ZXJzaW9u LWNoZWNrIikKICAgICh2ZXJzaW9uICIwLjEuNSIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4K ICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgInZlcnNp b25fY2hlY2siIHZlcnNpb24pKQogICAgICAgIChmaWxlLW5hbWUKICAgICAgICAgIChzdHJpbmct YXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi5jcmF0ZSIpKQogICAgICAgIChzaGEyNTYKICAgICAg ICAgIChiYXNlMzIKICAgICAgICAgICAgIjFwZjkxcHZqOG42YWtoN3c2ajV5cGthNmFxejA4YjNx cHpnczBhazJramY0ZnJraWxqd2kiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBjYXJnby1idWlsZC1z eXN0ZW0pCiAgICAoaG9tZS1wYWdlCiAgICAgICJodHRwczovL2dpdGh1Yi5jb20vU2VyZ2lvQmVu aXRlei92ZXJzaW9uX2NoZWNrIikKICAgIChzeW5vcHNpcwogICAgICAiVGlueSBjcmF0ZSB0byBj aGVjayB0aGUgdmVyc2lvbiBvZiB0aGUgaW5zdGFsbGVkL3J1bm5pbmcgcnVzdGMuIikKICAgIChk ZXNjcmlwdGlvbgogICAgICAiVGlueSBjcmF0ZSB0byBjaGVjayB0aGUgdmVyc2lvbiBvZiB0aGUg aW5zdGFsbGVkL3J1bm5pbmcgcnVzdGMuIikKICAgIChsaWNlbnNlICNmKSkpCgooZGVmaW5lLXB1 YmxpYyBydXN0LXdpbmFwaS11dGlsCiAgKHBhY2thZ2UKICAgIChuYW1lICJydXN0LXdpbmFwaS11 dGlsIikKICAgICh2ZXJzaW9uICIwLjEuMiIpCiAgICAoc291cmNlCiAgICAgIChvcmlnaW4KICAg ICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11cmkgIndpbmFwaS11 dGlsIiB2ZXJzaW9uKSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVu ZCBuYW1lICItIiB2ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAo YmFzZTMyCiAgICAgICAgICAgICIxajgzOWRjNnk4dnN6dnJzYjd5azBxdnMwdzZhc25haHh6Ynlh bnMzN3Zuc3c2dmJsczNpIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVt KQogICAgKGFyZ3VtZW50cwogICAgICBgKCM6Y2FyZ28taW5wdXRzICgoInJ1c3Qtd2luYXBpIiAs cnVzdC13aW5hcGkpKSkpCiAgICAoaG9tZS1wYWdlCiAgICAgICJodHRwczovL2dpdGh1Yi5jb20v QnVybnRTdXNoaS93aW5hcGktdXRpbCIpCiAgICAoc3lub3BzaXMKICAgICAgIkEgZHVtcGluZyBn cm91bmQgZm9yIGhpZ2ggbGV2ZWwgc2FmZSB3cmFwcGVycyBvdmVyIHdpbmFwaS4iKQogICAgKGRl c2NyaXB0aW9uCiAgICAgICJUaGlzIHBhY2thZ2UgcHJvdmlkZXMgYSBkdW1waW5nIGdyb3VuZCBm b3IgaGlnaCBsZXZlbCBzYWZlIHdyYXBwZXJzIG92ZXIgd2luYXBpLiIpCiAgICAobGljZW5zZSAj ZikpKQoKKGRlZmluZS1wdWJsaWMgcnVzdC1tZW1vZmZzZXQKICAocGFja2FnZQogICAgKG5hbWUg InJ1c3QtbWVtb2Zmc2V0IikKICAgICh2ZXJzaW9uICIwLjUuMyIpCiAgICAoc291cmNlCiAgICAg IChvcmlnaW4KICAgICAgICAobWV0aG9kIHVybC1mZXRjaCkKICAgICAgICAodXJpIChjcmF0ZS11 cmkgIm1lbW9mZnNldCIgdmVyc2lvbikpCiAgICAgICAgKGZpbGUtbmFtZQogICAgICAgICAgKHN0 cmluZy1hcHBlbmQgbmFtZSAiLSIgdmVyc2lvbiAiLmNyYXRlIikpCiAgICAgICAgKHNoYTI1Ngog ICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAiMWZibHF6YzI1aGZheW04bTBwajExMnM2NnBx cTg3YXZ2YXFtNWhwNXJza2liMnc5dzYzbSIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGNhcmdvLWJ1 aWxkLXN5c3RlbSkKICAgIChhcmd1bWVudHMKICAgICAgYCgjOmNhcmdvLWlucHV0cwogICAgICAg ICgoInJ1c3QtcnVzdGMtdmVyc2lvbiIgLHJ1c3QtcnVzdGMtdmVyc2lvbikpKSkKICAgIChob21l LXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9HaWxuYWEvbWVtb2Zmc2V0IikKICAgIChzeW5vcHNp cwogICAgICAib2Zmc2V0X29mIGZ1bmN0aW9uYWxpdHkgZm9yIFJ1c3Qgc3RydWN0cy4iKQogICAg KGRlc2NyaXB0aW9uCiAgICAgICJvZmZzZXRfb2YgZnVuY3Rpb25hbGl0eSBmb3IgUnVzdCBzdHJ1 Y3RzLiIpCiAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCgooZGVmaW5lLXB1YmxpYyBydXN0 LXNjb3BlZ3VhcmQKICAocGFja2FnZQogICAgKG5hbWUgInJ1c3Qtc2NvcGVndWFyZCIpCiAgICAo dmVyc2lvbiAiMS4wLjAiKQogICAgKHNvdXJjZQogICAgICAob3JpZ2luCiAgICAgICAgKG1ldGhv ZCB1cmwtZmV0Y2gpCiAgICAgICAgKHVyaSAoY3JhdGUtdXJpICJzY29wZWd1YXJkIiB2ZXJzaW9u KSkKICAgICAgICAoZmlsZS1uYW1lCiAgICAgICAgICAoc3RyaW5nLWFwcGVuZCBuYW1lICItIiB2 ZXJzaW9uICIuY3JhdGUiKSkKICAgICAgICAoc2hhMjU2CiAgICAgICAgICAoYmFzZTMyCiAgICAg ICAgICAgICIwM2FheTg0cjFmNnc4N2NrYnBqNmNjNHJuc3hreGNmczEzbjV5bnhqaWEwcWtnamlh Ym1sIikpKSkKICAgIChidWlsZC1zeXN0ZW0gY2FyZ28tYnVpbGQtc3lzdGVtKQogICAgKGhvbWUt cGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL2JsdXNzL3Njb3BlZ3VhcmQiKQogICAgKHN5bm9wc2lz CiAgICAgICJBIFJBSUkgc2NvcGUgZ3VhcmQgdGhhdCB3aWxsIHJ1biBhIGdpdmVuIGNsb3N1cmUg d2hlbiBpdCBnb2VzIG91dCBvZiBzY29wZSwKZXZlbiBpZiB0aGUgY29kZSBiZXR3ZWVuIHBhbmlj cyAoYXNzdW1pbmcgdW53aW5kaW5nIHBhbmljKS4KCkRlZmluZXMgdGhlIG1hY3JvcyBgZGVmZXIh YCwgYGRlZmVyX29uX3Vud2luZCFgLCBgZGVmZXJfb25fc3VjY2VzcyFgIGFzCnNob3J0aGFuZHMg Zm9yIGd1YXJkcyB3aXRoIG9uZSBvZiB0aGUgaW1wbGVtZW50ZWQgc3RyYXRlZ2llcy4KIikKICAg IChkZXNjcmlwdGlvbgogICAgICAiVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGEgUkFJSSBzY29wZSBn dWFyZCB0aGF0IHdpbGwgcnVuIGEgZ2l2ZW4gY2xvc3VyZSB3aGVuIGl0IGdvZXMgb3V0IG9mIHNj b3BlLApldmVuIGlmIHRoZSBjb2RlIGJldHdlZW4gcGFuaWNzIChhc3N1bWluZyB1bndpbmRpbmcg cGFuaWMpLgoKRGVmaW5lcyB0aGUgbWFjcm9zIGBkZWZlciFgLCBgZGVmZXJfb25fdW53aW5kIWAs IGBkZWZlcl9vbl9zdWNjZXNzIWAgYXMKc2hvcnRoYW5kcyBmb3IgZ3VhcmRzIHdpdGggb25lIG9m IHRoZSBpbXBsZW1lbnRlZCBzdHJhdGVnaWVzLgoiKQogICAgKGxpY2Vuc2UgI2YpKSkKCnJ1c3Qt aGVsbG8tY2xpCg== --=_8c7ff32fd889d85d2c755905a8cf8680 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=no-optional-deps.patch Content-Disposition: attachment; filename=no-optional-deps.patch; size=1618 ZGlmZiAtLWdpdCBhL2d1aXgvaW1wb3J0L2NyYXRlLnNjbSBiL2d1aXgvaW1wb3J0L2NyYXRlLnNj bQppbmRleCBkYTkyYzQzYjhjLi4zNTVhYWExNDBhIDEwMDY0NAotLS0gYS9ndWl4L2ltcG9ydC9j cmF0ZS5zY20KKysrIGIvZ3VpeC9pbXBvcnQvY3JhdGUuc2NtCkBAIC0yLDYgKzIsNyBAQAogOzs7 IENvcHlyaWdodCDCqSAyMDE2IERhdmlkIENyYXZlbiA8ZGF2aWRAY3JhdmVuLmNoPgogOzs7IENv cHlyaWdodCDCqSAyMDE5IEx1ZG92aWMgQ291cnTDqHMgPGx1ZG9AZ251Lm9yZz4KIDs7OyBDb3B5 cmlnaHQgwqkgMjAxOSBNYXJ0aW4gQmVjemUgPG1qYmVjemVAcmlzZXVwLm5ldD4KKzs7OyBDb3B5 cmlnaHQgwqkgMjAxOSBFZnJhaW0gRmxhc2huZXIgPGVmcmFpbUBmbGFzaG5lci5jby5pbD4KIDs7 OwogOzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4LgogOzs7CkBAIC04OCw2ICs4OSw3 IEBACiAgIChpZCAgICAgICAgICAgIGNyYXRlLWRlcGVuZGVuY3ktaWQgImNyYXRlX2lkIikgIDtz dHJpbmcKICAgKGtpbmQgICAgICAgICAgY3JhdGUtZGVwZW5kZW5jeS1raW5kICJraW5kIiAgICAg Oydub3JtYWwgfCAnZGV2IHwgJ2J1aWxkCiAgICAgICAgICAgICAgICAgIHN0cmluZy0+c3ltYm9s KQorICAob3B0aW9uYWwgICAgICBjcmF0ZS1kZXBlbmRlbmN5LW9wdGlvbmFsICJvcHRpb25hbCIp IDsgJ3RydWUgfCAnZmFsc2UKICAgKHJlcXVpcmVtZW50ICAgY3JhdGUtZGVwZW5kZW5jeS1yZXF1 aXJlbWVudCAicmVxIikpIDtzdHJpbmcKIAogKGRlZmluZSAobG9va3VwLWNyYXRlIG5hbWUpCkBA IC0xMDgsMTIgKzExMCwxNiBAQCByZWNvcmQgb3IgI2YgaWYgaXQgd2FzIG5vdCBmb3VuZC4iCiAo ZGVmaW5lIChjcmF0ZS12ZXJzaW9uLWRlcGVuZGVuY2llcyB2ZXJzaW9uKQogICAiUmV0dXJuIHRo ZSBsaXN0IG9mIDxjcmF0ZS1kZXBlbmRlbmN5PiByZWNvcmRzIG9mIFZFUlNJT04sIGEKIDxjcmF0 ZS12ZXJzaW9uPi4iCisgIChkZWZpbmUgKG9wdGlvbmFsLWRlcGVuZGVuY3k/IGRlcGVuZGVuY3kp CisgICAgKGVxPyAoY3JhdGUtZGVwZW5kZW5jeS1vcHRpb25hbCBkZXBlbmRlbmN5KSAjdCkpCisK ICAgKGxldCogKChwYXRoIChhc3NvYy1yZWYgKGNyYXRlLXZlcnNpb24tbGlua3MgdmVyc2lvbikg ImRlcGVuZGVuY2llcyIpKQogICAgICAgICAgKHVybCAgKHN0cmluZy1hcHBlbmQgKCVjcmF0ZS1i YXNlLXVybCkgcGF0aCkpKQogICAgIChtYXRjaCAoYXNzb2MtcmVmIChvciAoanNvbi1mZXRjaCB1 cmwpICcoKSkgImRlcGVuZGVuY2llcyIpCiAgICAgICAoKD8gdmVjdG9yPyB2ZWN0b3IpCiAgICAg ICAgKGZpbHRlciAobGFtYmRhIChkZXApCi0gICAgICAgICAgICAgICAgIChub3QgKGVxPyAoY3Jh dGUtZGVwZW5kZW5jeS1raW5kIGRlcCkgJ2RldikpKQorICAgICAgICAgICAgICAgICAobm90IChv ciAoZXE/IChjcmF0ZS1kZXBlbmRlbmN5LWtpbmQgZGVwKSAnZGV2KQorICAgICAgICAgICAgICAg ICAgICAgICAgICAob3B0aW9uYWwtZGVwZW5kZW5jeT8gZGVwKSkpKQogICAgICAgICAgICAgICAg KG1hcCBqc29uLT5jcmF0ZS1kZXBlbmRlbmN5ICh2ZWN0b3ItPmxpc3QgdmVjdG9yKSkpKQogICAg ICAgKF8KICAgICAgICAnKCkpKSkpCg== --=_8c7ff32fd889d85d2c755905a8cf8680--