Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dKN3s-0000Wa-6k for pgadmin-hackers@arkaria.postgresql.org; Mon, 12 Jun 2017 10:59:08 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1dKN3r-0000Qh-Mp for pgadmin-hackers@arkaria.postgresql.org; Mon, 12 Jun 2017 10:59:07 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1dKN3c-0000Ov-Q6 for pgadmin-hackers@postgresql.org; Mon, 12 Jun 2017 10:58:53 +0000 Received: from mail-it0-x233.google.com ([2607:f8b0:4001:c0b::233]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1dKN3J-00071B-Sd for pgadmin-hackers@postgresql.org; Mon, 12 Jun 2017 10:58:51 +0000 Received: by mail-it0-x233.google.com with SMTP id m62so21732978itc.0 for ; Mon, 12 Jun 2017 03:58:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pgadmin-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=VTmIGoG2VZaKfOVJgAw+JICIxEd7hK73g49A8tGMauc=; b=Wc2awuNAqF5tZbCqeOW+KoAR5Y5rkR4s/vEff6ZV75LsRajFoXJiY1thn5z5nZz7BM QDb+5FodYvwUtUQw2bCqD0NLi8jzhf800WME1ikBctvYVq9QSf7yBKx/NQLZL22ABPdK uNnNygL+H+whh/chSQFE4llGVL0Q5iuNLmTGSpr5NHIcPdazHhUzAgVUd4AMJBXpTUr/ iI+OCaQWFWhOj+LHLwbVyzVrTxiybdVNp+1Cd2xPzDpRZ85avGY6cotvftZecMmY/XaY Xnirk5ZaZuJqqCKBo9FTDXQ3730rMit0igXpVlJzXX7TAv13Q0pkIld919rK4AbToL9V 299g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=VTmIGoG2VZaKfOVJgAw+JICIxEd7hK73g49A8tGMauc=; b=cw1WpDVkzNYbi7MjCzIy7P65y1ZPo1/dgjS0EPpLNxBipuoh+r611fCRyEHtAWKcA2 cKX/wlZjOZwQ6d+05kBqQijoNnuK9lJ179grnJHUlCyUQIuF29dkhMGOrLRwpTGJE9S6 pP4wqBo0dTMXx3lbex7Z6tcfyp3yDbbpAguL38PeJK6jMnGHbigwbK//YipVMemZKYQF /5uMQ/NBuOROxkHkcE/LElfahS+iU+68Twtrkp35uh/EZngURGyOabqy4tOcgrhJ89zU L4VmPn+ShdWMkNG7PVqLTQQ44KgEfncYewnZxRcizIuaeVWHocE8GU1lV0nXis/1Q8TE gQVA== X-Gm-Message-State: AODbwcBPn4rsmnGT8SLCEEWLfQWacDBbvqBxd6/9ZXMYi5xA83UiTaTi LE5Trf/QuwE40vND83trvHs0JZzrZDRG X-Received: by 10.36.98.141 with SMTP id d135mr11711482itc.28.1497265112233; Mon, 12 Jun 2017 03:58:32 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.174.147 with HTTP; Mon, 12 Jun 2017 03:58:30 -0700 (PDT) In-Reply-To: References: From: Dave Page Date: Mon, 12 Jun 2017 11:58:30 +0100 Message-ID: Subject: Re: [pgAdmin4] [PATCH] History Tab rewrite in React To: George Gelashvili Cc: Sarah McAlear , Surinder Kumar , Matthew Kleiman , Joao Pedro De Almeida Pereira , Murtuza Zabuawala , pgadmin-hackers Content-Type: multipart/mixed; boundary="001a1145b0e02799db0551c1336f" List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a1145b0e02799db0551c1336f Content-Type: text/plain; charset="UTF-8" Hi OK, so Ashesh and I spend much of the morning on this. Patch 01 - Applied. Patch 02: - karma.conf.js wouldn't patch; I've manually handled that. - test-main.js wouldn't patch. The diff looked like it was trying to empty it; I have removed it instead. - The imports in pgAdmin4.py need to be made after the app root is added to the path. - The JS bundler should be in pgadmin/utils, not pgadmin/tools (which is intended for plugin modules) - The tests were failing following some changes Ashesh pushed earlier to add a client-side url_for function. - pgAdmin4.py was attempting to run the bundler on every startup. I've wrapped those called in "if config.DEBUG:" conditionals, as typically an installation for an end-user will be in a read-only directory. We've fixed all of that in the attached patch. I'm not sure why it's so much bigger than yours. The following issues are outstanding; please take a look at them: - There is no update to the Windows installer generation code (needed in 2 places unfortunately; Make.bat and Make-MinGW.bat). - The updates to the other packages call "yarn run webpacker" which is an undefined target. I haven't looked at patch 03 yet, but Ashesh did tell me it won't apply for him. Patch 4 is also untested at this stage. If the issues above can be fixed, we can get patch 2 applied then move on from there. I'll hold off on Harshal's patch for the Query Tool's load on demand to give you a chance to get this done. Thanks. On Sat, Jun 10, 2017 at 2:52 AM, George Gelashvili wrote: > Hi Dave, > > Our patch touches code also changed by the patches that were recently > committed. > That's likely what's causing this issue. We've rebased on top of the new > state of master. > > We had initially kept the yarn.lock .gitignored, but ran into an issue > rather early on where an upgraded dependency introduced a regression. > Checking-in the yarn.lock provides the "know your dependency version" > benefit of vendorizing code without vendorization's drawback of having to > manually manage your dependencies. > > It is safe to delete a yarn.lock before applying a patch, as you are > authoring master. It provides a history of the versions of each dependency > that were working at the point in time of the commit. By contrast, > package.json provides approximate versions and leaves room for > fixes/improvements by the dependency authors to be pulled in as they become > available. > > To run linter and tests: > > The tasks that Grunt used to manage are now defined as a set of scripts in > the package.json > After applying the patches--which may require deleting yarn.lock for the > first patch--you should cd web && yarn install > > Then yarn test will run the linter, jasmine specs, and python tests > including feature tests, in that order, exiting early if there are > failures/errors. > At the moment, the CheckForViewData test is failing on master as well as in > each of these patches; that should be resolved as RM2477. > > Thanks! > George and Matt > > > On Thu, Jun 8, 2017 at 9:15 AM, Dave Page wrote: >> >> Hi George >> >> On Wed, Jun 7, 2017 at 10:21 PM, George Gelashvili >> wrote: >> > Hi Dave, >> > >> > I split the linting out into an intermediate commit, and rebased on top >> > of >> > master. >> >> Unfortunately, it still doesn't apply: >> >> error: patch failed: web/regression/javascript/test-main.js:1 >> error: removal patch leaves file contents >> error: web/regression/javascript/test-main.js: patch does not apply >> Checking patch web/regression/requirements.txt... >> Checking patch web/webpack.config.js... >> Checking patch web/webpack.test.config.js... >> Checking patch web/yarn.lock... >> error: web/yarn.lock: already exists in working directory >> Applied patch .gitignore cleanly. >> Applied patch Make.bat cleanly. >> Applied patch README cleanly. >> Applied patch pkg/mac/build.sh cleanly. >> Applied patch pkg/pip/build.sh cleanly. >> Applied patch pkg/src/build.sh cleanly. >> Applied patch web/.eslintrc.js cleanly. >> Applied patch web/karma.conf.js cleanly. >> Applied patch web/package.json cleanly. >> Applied patch web/pgAdmin4.py cleanly. >> Applied patch web/pgadmin/static/jsx/components.jsx cleanly. >> Applied patch web/pgadmin/tools/javascript/__init__.py cleanly. >> Applied patch web/pgadmin/tools/javascript/javascript_bundler.py cleanly. >> Applied patch web/pgadmin/tools/javascript/tests/__init__.py cleanly. >> Applied patch >> web/pgadmin/tools/javascript/tests/test_javascript_bundler.py >> cleanly. >> Applied patch web/regression/README cleanly. >> Applied patch >> web/regression/javascript/jasmine_capture_warnings_beforeall.js >> cleanly. >> Applied patch web/regression/requirements.txt cleanly. >> Applied patch web/webpack.config.js cleanly. >> Applied patch web/webpack.test.config.js cleanly. >> >> The second (lint update) patch is even worse, with significant number >> change that just don't want to apply. >> >> Clearly yarn.lock needs to be removed from there repo. >> >> Once I can apply a version of this, how should I be running the linter >> and the unit tests? >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company > > -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company --001a1145b0e02799db0551c1336f Content-Type: text/plain; charset="US-ASCII"; name="02-bring-react-into-the-codebase-Dave.diff" Content-Disposition: attachment; filename="02-bring-react-into-the-codebase-Dave.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j3u0pcyw4 ZGlmZiAtLWdpdCBhL3BrZy9tYWMvYnVpbGQuc2ggYi9wa2cvbWFjL2J1aWxk LnNoCmluZGV4IGExMzhhOGE1Li5jZDI5MDhlZiAxMDA3NTUKLS0tIGEvcGtn L21hYy9idWlsZC5zaAorKysgYi9wa2cvbWFjL2J1aWxkLnNoCkBAIC0xNzgs NiArMTc4LDExIEBAIF9jb21wbGV0ZV9idW5kbGUoKSB7CiAgICAgIyBydW4g Y29tcGxldGUtYnVuZGxlIHRvIGNvcHkgdGhlIGRlcGVuZGVudCBsaWJyYXJp ZXMgYW5kIGZyYW1ld29ya3MgYW5kIGZpeCB0aGUgcnBhdGhzCiAgICAgLi9j b21wbGV0ZS1idW5kbGUuc2ggIiRCVUlMRFJPT1QvJEFQUF9CVU5ETEVfTkFN RSIgfHwgeyBlY2hvIGNvbXBsZXRlLWJ1bmRsZS5zaCBmYWlsZWQ7IGV4aXQg MTsgfQogCisgICAgcHVzaGQgJFNPVVJDRURJUi93ZWIKKyAgICAgICAgeWFy biBpbnN0YWxsCisgICAgICAgIHlhcm4gcnVuIHdlYnBhY2tlcgorICAgIHBv cGQKKwogICAgICMgY29weSB0aGUgd2ViIGRpcmVjdG9yeSB0byB0aGUgYnVu ZGxlIGFzIGl0IGlzIHJlcXVpcmVkIGJ5IHJ1bnRpbWUKICAgICBjcCAtciAk U09VUkNFRElSL3dlYiAiJEJVSUxEUk9PVC8kQVBQX0JVTkRMRV9OQU1FL0Nv bnRlbnRzL1Jlc291cmNlcy8iIHx8IGV4aXQgMQogICAgIGNkICIkQlVJTERS T09ULyRBUFBfQlVORExFX05BTUUvQ29udGVudHMvUmVzb3VyY2VzL3dlYiIK ZGlmZiAtLWdpdCBhL3BrZy9waXAvYnVpbGQuc2ggYi9wa2cvcGlwL2J1aWxk LnNoCmluZGV4IDNjZWFlYzRmLi5lOWQ4ODM1MCAxMDA3NTUKLS0tIGEvcGtn L3BpcC9idWlsZC5zaAorKysgYi9wa2cvcGlwL2J1aWxkLnNoCkBAIC01Nyw2 ICs1NywxNSBAQCBkbwogICAgIHRhciBjZiAtICRGSUxFIHwgKGNkIC4uL3Bp cC1idWlsZC9wZ2FkbWluNDsgdGFyIHhmIC0pCiBkb25lCiAKK3lhcm4gaW5z dGFsbAoreWFybiBydW4gd2VicGFja2VyCisKK2ZvciBGSUxFIGluIGBscyAt ZCBwZ0FkbWluL3N0YXRpYy9qcy9nZW5lcmF0ZWQvKmAKK2RvCisgICAgZWNo byBBZGRpbmcgJEZJTEUKKyAgICB0YXIgY2YgLSAkRklMRSB8IChjZCAuLi9w aXAtYnVpbGQvcGdhZG1pbjQ7IHRhciB4ZiAtKQorZG9uZQorCiBjZCAuLi9k b2NzCiBmb3IgRklMRSBpbiBgZ2l0IGxzLWZpbGVzYAogZG8KZGlmZiAtLWdp dCBhL3BrZy9zcmMvYnVpbGQuc2ggYi9wa2cvc3JjL2J1aWxkLnNoCmluZGV4 IGEyYzZmOTBlLi5iZjZiYzI4NCAxMDA3NTUKLS0tIGEvcGtnL3NyYy9idWls ZC5zaAorKysgYi9wa2cvc3JjL2J1aWxkLnNoCkBAIC02OSw2ICs2OSwxNyBA QCBkbwogICAgIHRhciBjZiAtICRGSUxFIHwgKGNkIHNyYy1idWlsZC8kVEFS QkFMTF9OQU1FOyB0YXIgeGYgLSkKIGRvbmUKIAorcHVzaGQgd2ViCisgICAg eWFybiBpbnN0YWxsCisgICAgeWFybiBydW4gd2VicGFja2VyCisKKyAgICBm b3IgRklMRSBpbiBgbHMgLWQgcGdBZG1pbi9zdGF0aWMvanMvZ2VuZXJhdGVk LypgCisgICAgZG8KKyAgICAgICAgZWNobyBBZGRpbmcgJEZJTEUKKyAgICAg ICAgdGFyIGNmIC0gJEZJTEUgfCAoY2QgLi4vc3JjLWJ1aWxkLyRUQVJCQUxM X05BTUUvd2ViOyB0YXIgeGYgLSkKKyAgICBkb25lCitwb3BkCisKICMgQ3Jl YXRlIHRoZSB0YXJiYWxsCiBlY2hvIENyZWF0aW5nIHRhcmJhbGwuLi4KIGNk IHNyYy1idWlsZApkaWZmIC0tZ2l0IGEvd2ViLy5lc2xpbnRyYy5qcyBiL3dl Yi8uZXNsaW50cmMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAuLmM2MDU2OWRiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViLy5lc2xp bnRyYy5qcwpAQCAtMCwwICsxLDQ1IEBACittb2R1bGUuZXhwb3J0cyA9IHsK KyAgJ2Vudic6IHsKKyAgICAnYnJvd3Nlcic6IHRydWUsCisgICAgJ2VzNic6 IHRydWUsCisgICAgJ2FtZCc6IHRydWUsCisgICAgJ2phc21pbmUnOiB0cnVl LAorICB9LAorICAnZXh0ZW5kcyc6ICdlc2xpbnQ6cmVjb21tZW5kZWQnLAor ICAncGFyc2VyT3B0aW9ucyc6IHsKKyAgICAnZWNtYUZlYXR1cmVzJzogewor ICAgICAgJ2V4cGVyaW1lbnRhbE9iamVjdFJlc3RTcHJlYWQnOiB0cnVlLAor ICAgICAgJ2pzeCc6IHRydWUKKyAgICB9LAorICAgICdzb3VyY2VUeXBlJzog J21vZHVsZScKKyAgfSwKKyAgJ3BsdWdpbnMnOiBbCisgICAgJ3JlYWN0Jwor ICBdLAorICAnZ2xvYmFscyc6IHsKKyAgICAnXyc6IHRydWUsCisgICAgJ21v ZHVsZSc6IHRydWUsCisgIH0sCisgICdydWxlcyc6IHsKKyAgICAnaW5kZW50 JzogWworICAgICAgJ2Vycm9yJywKKyAgICAgIDIKKyAgICBdLAorICAgICds aW5lYnJlYWstc3R5bGUnOiBbCisgICAgICAnZXJyb3InLAorICAgICAgJ3Vu aXgnCisgICAgXSwKKyAgICAncXVvdGVzJzogWworICAgICAgJ2Vycm9yJywK KyAgICAgICdzaW5nbGUnCisgICAgXSwKKyAgICAnc2VtaSc6IFsKKyAgICAg ICdlcnJvcicsCisgICAgICAnYWx3YXlzJworICAgIF0sCisgICAgJ2NvbW1h LWRhbmdsZSc6IFsKKyAgICAgICdlcnJvcicsCisgICAgICAnYWx3YXlzLW11 bHRpbGluZScKKyAgICBdCisgIH0KK307ClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL2thcm1hLmNvbmYuanMgYi93ZWIv a2FybWEuY29uZi5qcwppbmRleCBiYWE5MTJjNy4uZmVlZWU3N2YgMTAwNjQ0 Ci0tLSBhL3dlYi9rYXJtYS5jb25mLmpzCisrKyBiL3dlYi9rYXJtYS5jb25m LmpzCkBAIC0xLDYzICsxLDU0IEBACiAvLyBLYXJtYSBjb25maWd1cmF0aW9u CiAvLyBHZW5lcmF0ZWQgb24gV2VkIE1hciAwMSAyMDE3IDE0OjE5OjI4IEdN VC0wNTAwIChFU1QpCitjb25zdCB3ZWJwYWNrQ29uZmlnID0gcmVxdWlyZSgn Li93ZWJwYWNrLnRlc3QuY29uZmlnLmpzJyk7CiAKLW1vZHVsZS5leHBvcnRz ID0gZnVuY3Rpb24oY29uZmlnKSB7Cittb2R1bGUuZXhwb3J0cyA9IGZ1bmN0 aW9uIChjb25maWcpIHsKICAgY29uZmlnLnNldCh7Ci0KLSAgICAvLyBiYXNl IHBhdGggdGhhdCB3aWxsIGJlIHVzZWQgdG8gcmVzb2x2ZSBhbGwgcGF0dGVy bnMgKGVnLiBmaWxlcywgZXhjbHVkZSkKLSAgICBiYXNlUGF0aDogJycsCi0K LQotICAgIC8vIGZyYW1ld29ya3MgdG8gdXNlCi0gICAgLy8gYXZhaWxhYmxl IGZyYW1ld29ya3M6IGh0dHBzOi8vbnBtanMub3JnL2Jyb3dzZS9rZXl3b3Jk L2thcm1hLWFkYXB0ZXIKLSAgICBmcmFtZXdvcmtzOiBbJ2phc21pbmUnLCAn cmVxdWlyZWpzJ10sCi0KLQotICAgIC8vIGxpc3Qgb2YgZmlsZXMgLyBwYXR0 ZXJucyB0byBsb2FkIGluIHRoZSBicm93c2VyCisgICAgZnJhbWV3b3Jrczog WydqYXNtaW5lJ10sCisgICAgcGx1Z2luczogWworICAgICAgJ2thcm1hLXdl YnBhY2snLAorICAgICAgJ2thcm1hLXBoYW50b21qcy1sYXVuY2hlcicsCisg ICAgICAna2FybWEtamFzbWluZScsCisgICAgICAna2FybWEtamFzbWluZS1o dG1sLXJlcG9ydGVyJywKKyAgICBdLAogICAgIGZpbGVzOiBbCi0gICAgICAn cmVncmVzc2lvbi9qYXZhc2NyaXB0L3Rlc3QtbWFpbi5qcycsCi0gICAgICB7 cGF0dGVybjogJ3JlZ3Jlc3Npb24vamF2YXNjcmlwdC8qKi8qLmpzJywgaW5j bHVkZWQ6IGZhbHNlfSwKKyAgICAgIHtwYXR0ZXJuOiAncGdhZG1pbi9zdGF0 aWMvKiovKi5qcycsIGluY2x1ZGVkOiBmYWxzZX0sCiAgICAgICB7cGF0dGVy bjogJ3BnYWRtaW4vc3RhdGljL3ZlbmRvci8qKi8qLmpzJywgaW5jbHVkZWQ6 IGZhbHNlfSwKLSAgICAgIHtwYXR0ZXJuOiAncGdhZG1pbi9zdGF0aWMvanMv KiovKi5qcycsIGluY2x1ZGVkOiBmYWxzZX0sCiAgICAgICB7cGF0dGVybjog J3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvKiovKi5qcycsIGluY2x1ZGVk OiBmYWxzZX0sCi0gICAgICB7cGF0dGVybjogJ3BnYWRtaW4vc3RhdGljL2lt Zy8qLnBuZycsIGluY2x1ZGVkOiBmYWxzZX0KKyAgICAgICdyZWdyZXNzaW9u L2phdmFzY3JpcHQvKiovKi5qc3gnLAorICAgICAgJ3JlZ3Jlc3Npb24vamF2 YXNjcmlwdC8qKi8qLmpzJywKICAgICBdLAogCi0KICAgICAvLyBsaXN0IG9m IGZpbGVzIHRvIGV4Y2x1ZGUKICAgICBleGNsdWRlOiBbCiAgICAgICAncGdh ZG1pbi9zdGF0aWMvdmVuZG9yLyoqLypbVHRdZXN0LmpzJywKICAgICAgICdw Z2FkbWluL3N0YXRpYy92ZW5kb3IvKiovKltTc11wZWMuanMnCiAgICAgXSwK IAotCiAgICAgLy8gcHJlcHJvY2VzcyBtYXRjaGluZyBmaWxlcyBiZWZvcmUg c2VydmluZyB0aGVtIHRvIHRoZSBicm93c2VyCiAgICAgLy8gYXZhaWxhYmxl IHByZXByb2Nlc3NvcnM6IGh0dHBzOi8vbnBtanMub3JnL2Jyb3dzZS9rZXl3 b3JkL2thcm1hLXByZXByb2Nlc3NvcgogICAgIHByZXByb2Nlc3NvcnM6IHsK KyAgICAgICdyZWdyZXNzaW9uL2phdmFzY3JpcHQvKiovKi5qcyc6IFsnd2Vi cGFjayddLAorICAgICAgLy8gJ3JlZ3Jlc3Npb24vamF2YXNjcmlwdC8qKi8q LmpzeCc6IFsnd2VicGFjayddLAogICAgIH0sCiAKKyAgICB3ZWJwYWNrOiB3 ZWJwYWNrQ29uZmlnLAorICAgIHdlYnBhY2tNaWRkbGV3YXJlOiB7CisgICAg ICBzdGF0czogJ2Vycm9ycy1vbmx5JywKKyAgICB9LAogCi0gICAgLy8gdGVz dCByZXN1bHRzIHJlcG9ydGVyIHRvIHVzZQotICAgIC8vIHBvc3NpYmxlIHZh bHVlczogJ2RvdHMnLCAncHJvZ3Jlc3MnCi0gICAgLy8gYXZhaWxhYmxlIHJl cG9ydGVyczogaHR0cHM6Ly9ucG1qcy5vcmcvYnJvd3NlL2tleXdvcmQva2Fy bWEtcmVwb3J0ZXIKLSAgICByZXBvcnRlcnM6IFsncHJvZ3Jlc3MnXSwKLQot Ci0gICAgLy8gd2ViIHNlcnZlciBwb3J0CiAgICAgcG9ydDogOTg3NiwKIAot CiAgICAgLy8gZW5hYmxlIC8gZGlzYWJsZSBjb2xvcnMgaW4gdGhlIG91dHB1 dCAocmVwb3J0ZXJzIGFuZCBsb2dzKQogICAgIGNvbG9yczogdHJ1ZSwKIAot CiAgICAgLy8gbGV2ZWwgb2YgbG9nZ2luZwogICAgIC8vIHBvc3NpYmxlIHZh bHVlczogY29uZmlnLkxPR19ESVNBQkxFIHx8IGNvbmZpZy5MT0dfRVJST1Ig fHwgY29uZmlnLkxPR19XQVJOIHx8IGNvbmZpZy5MT0dfSU5GTyB8fCBjb25m aWcuTE9HX0RFQlVHCi0gICAgbG9nTGV2ZWw6IGNvbmZpZy5MT0dfSU5GTywK KyAgICBsb2dMZXZlbDogY29uZmlnLkxPR19XQVJOLAogCiAKICAgICAvLyBl bmFibGUgLyBkaXNhYmxlIHdhdGNoaW5nIGZpbGUgYW5kIGV4ZWN1dGluZyB0 ZXN0cyB3aGVuZXZlciBhbnkgZmlsZSBjaGFuZ2VzCi0gICAgYXV0b1dhdGNo OiBmYWxzZSwKKyAgICBhdXRvV2F0Y2g6IHRydWUsCiAKIAogICAgIC8vIHN0 YXJ0IHRoZXNlIGJyb3dzZXJzCkBAIC02NywxMCArNTgsMTAgQEAgbW9kdWxl LmV4cG9ydHMgPSBmdW5jdGlvbihjb25maWcpIHsKIAogICAgIC8vIENvbnRp bnVvdXMgSW50ZWdyYXRpb24gbW9kZQogICAgIC8vIGlmIHRydWUsIEthcm1h IGNhcHR1cmVzIGJyb3dzZXJzLCBydW5zIHRoZSB0ZXN0cyBhbmQgZXhpdHMK LSAgICBzaW5nbGVSdW46IHRydWUsCisgICAgc2luZ2xlUnVuOiBmYWxzZSwK IAogICAgIC8vIENvbmN1cnJlbmN5IGxldmVsCiAgICAgLy8gaG93IG1hbnkg YnJvd3NlciBzaG91bGQgYmUgc3RhcnRlZCBzaW11bHRhbmVvdXMKICAgICBj b25jdXJyZW5jeTogSW5maW5pdHkKLSAgfSkKLX0KKyAgfSk7Cit9OwpkaWZm IC0tZ2l0IGEvd2ViL3BhY2thZ2UuanNvbiBiL3dlYi9wYWNrYWdlLmpzb24K aW5kZXggODBlNGU1YWQuLjQwMDcwZGEwIDEwMDY0NAotLS0gYS93ZWIvcGFj a2FnZS5qc29uCisrKyBiL3dlYi9wYWNrYWdlLmpzb24KQEAgLTEsMTAgKzEs NDMgQEAKIHsKICAgImRldkRlcGVuZGVuY2llcyI6IHsKLSAgICAiamFzbWlu ZS1jb3JlIjogIl4yLjUuMiIsCi0gICAgImthcm1hIjogIl4xLjUuMCIsCi0g ICAgImthcm1hLWphc21pbmUiOiAiXjEuMS4wIiwKLSAgICAia2FybWEtcGhh bnRvbWpzLWxhdW5jaGVyIjogIl4xLjAuMiIsCi0gICAgImthcm1hLXJlcXVp cmVqcyI6ICJeMS4xLjAiLAotICAgICJyZXF1aXJlanMiOiAiXjIuMy4zIgor ICAgICJiYWJlbC1jb3JlIjogIn42LjI0LjAiLAorICAgICJiYWJlbC1sb2Fk ZXIiOiAifjYuNC4xIiwKKyAgICAiYmFiZWwtcHJlc2V0LWVzMjAxNSI6ICJ+ Ni4yNC4wIiwKKyAgICAiYmFiZWwtcHJlc2V0LXJlYWN0IjogIn42LjIzLjAi LAorICAgICJlbnp5bWUiOiAifjIuOC4yIiwKKyAgICAiamFzbWluZS1jb3Jl IjogIn4yLjUuMiIsCisgICAgImthcm1hIjogIn4xLjUuMCIsCisgICAgImth cm1hLWJhYmVsLXByZXByb2Nlc3NvciI6ICJeNi4wLjEiLAorICAgICJrYXJt YS1icm93c2VyaWZ5IjogIn41LjEuMSIsCisgICAgImthcm1hLWphc21pbmUi OiAifjEuMS4wIiwKKyAgICAia2FybWEtamFzbWluZS1odG1sLXJlcG9ydGVy IjogIn4wLjIuMiIsCisgICAgImthcm1hLXBoYW50b21qcy1sYXVuY2hlciI6 ICJ+MS4wLjIiLAorICAgICJrYXJtYS1yZXF1aXJlanMiOiAifjEuMS4wIiwK KyAgICAia2FybWEtc291cmNlbWFwLWxvYWRlciI6ICJ+MC4zLjciLAorICAg ICJrYXJtYS13ZWJwYWNrIjogIn4yLjAuMyIsCisgICAgInJlYWN0LWFkZG9u cy10ZXN0LXV0aWxzIjogIn4xNS40LjIiLAorICAgICJ3ZWJwYWNrIjogIn4y LjMuMSIKKyAgfSwKKyAgImRlcGVuZGVuY2llcyI6IHsKKyAgICAiYXhpb3Mi OiAiXjAuMTYuMSIsCisgICAgImJhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMy MDE1LW1vZHVsZXMtYW1kIjogIl42LjI0LjEiLAorICAgICJiYWJlbC1wb2x5 ZmlsbCI6ICJeNi4yMy4wIiwKKyAgICAiYmFiZWwtcHJlc2V0LWVzMjAxNS13 aXRob3V0LXN0cmljdCI6ICJ+MC4wLjQiLAorICAgICJiYWJlbGlmeSI6ICJ+ Ny4zLjAiLAorICAgICJicm93c2VyaWZ5IjogIn4xNC4xLjAiLAorICAgICJl eHBvcnRzLWxvYWRlciI6ICJ+MC42LjQiLAorICAgICJpbXBvcnRzLWxvYWRl ciI6ICJnaXQraHR0cHM6Ly9naXRodWIuY29tL3dlYnBhY2stY29udHJpYi9p bXBvcnRzLWxvYWRlci5naXQjNDRkNmY0ODQ2M2IyNTZhMTdjMWJhNmZkOWI1 Y2MxNDQ5YjRlMzc5ZCIsCisgICAgInJlYWN0IjogIn4xNS40LjIiLAorICAg ICJyZWFjdC1kb20iOiAifjE1LjQuMiIsCisgICAgInJlcXVpcmVqcyI6ICJ+ Mi4zLjMiLAorICAgICJ1bmRlcnNjb3JlIjogIn4xLjguMyIsCisgICAgIndh dGNoaWZ5IjogIn4zLjkuMCIKKyAgfSwKKyAgInNjcmlwdHMiOiB7CisgICAg ImJ1bmRsZSI6ICJ5YXJuIHJ1biB3ZWJwYWNrIC0tIC0tb3B0aW1pemUtbWlu aW1pemUgLS1jb25maWcgd2VicGFjay5jb25maWcuanMiLAorICAgICJ0ZXN0 Omthcm1hLW9uY2UiOiAieWFybiBydW4ga2FybWEgc3RhcnQgLS0gLS1zaW5n bGUtcnVuIiwKKyAgICAidGVzdDprYXJtYSI6ICJ5YXJuIHJ1biBrYXJtYSBz dGFydCIsCisgICAgInRlc3Q6ZmVhdHVyZSI6ICJ5YXJuIHJ1biBidW5kbGUg JiYgcHl0aG9uIHJlZ3Jlc3Npb24vcnVudGVzdHMucHkgLS1wa2cgZmVhdHVy ZV90ZXN0cyIsCisgICAgInRlc3QiOiAieWFybiBydW4gdGVzdDprYXJtYS1v bmNlICYmIHlhcm4gcnVuIGJ1bmRsZSAmJiBweXRob24gcmVncmVzc2lvbi9y dW50ZXN0cy5weSIKICAgfQogfQpkaWZmIC0tZ2l0IGEvd2ViL3BnQWRtaW40 LnB5IGIvd2ViL3BnQWRtaW40LnB5CmluZGV4IDI0ZTE1NjRhLi4xZGI0OTU4 NCAxMDA2NDQKLS0tIGEvd2ViL3BnQWRtaW40LnB5CisrKyBiL3dlYi9wZ0Fk bWluNC5weQpAQCAtMjIsMTcgKzIyLDM2IEBAIGlmIHN5cy5wYXRoWzBdICE9 IHJvb3Q6CiAKIGltcG9ydCBjb25maWcKIGZyb20gcGdhZG1pbiBpbXBvcnQg Y3JlYXRlX2FwcAorZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCB1LCBmc19l bmNvZGluZywgZmlsZV9xdW90ZQorCitpZiBjb25maWcuREVCVUc6CisgICAg ZnJvbSBwZ2FkbWluLnV0aWxzLmphdmFzY3JpcHQuamF2YXNjcmlwdF9idW5k bGVyIGltcG9ydCBKYXZhc2NyaXB0QnVuZGxlciwgSnNTdGF0ZQogCiAjIEdl dCB0aGUgY29uZmlnIGRhdGFiYXNlIHNjaGVtYSB2ZXJzaW9uLiBXZSBzdG9y ZSB0aGlzIGluIHBnYWRtaW4ubW9kZWwKICMgYXMgaXQgdHVybnMgb3V0IHRo YXQgcHV0dGluZyBpdCBpbiB0aGUgY29uZmlnIGZpbGVzIGlzbid0IGEgZ3Jl YXQgaWRlYQogZnJvbSBwZ2FkbWluLm1vZGVsIGltcG9ydCBTQ0hFTUFfVkVS U0lPTgogY29uZmlnLlNFVFRJTkdTX1NDSEVNQV9WRVJTSU9OID0gU0NIRU1B X1ZFUlNJT04KIAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMg U2FuaXR5IGNoZWNrcworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KworIyBDaGVjayBpZiB0aGUgZGF0YWJhc2UgZXhpc3RzLiBJZiBpdCBkb2Vz IG5vdCwgY3JlYXRlIGl0LgoraWYgbm90IG9zLnBhdGguaXNmaWxlKGNvbmZp Zy5TUUxJVEVfUEFUSCk6CisgICAgc2V0dXBmaWxlID0gb3MucGF0aC5qb2lu KAorICAgICAgICBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5yZWFscGF0aCh1 KF9fZmlsZV9fLCBmc19lbmNvZGluZykpKSwgdSdzZXR1cC5weScKKyAgICAp CisgICAgZXhlYyhvcGVuKGZpbGVfcXVvdGUoc2V0dXBmaWxlKSwgJ3InKS5y ZWFkKCkpCiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIFNl cnZlciBzdGFydXAKKyMgU2VydmVyIHN0YXJ0dXAKICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCiAKKyMgQnVpbGQgSmF2YXNjcmlwdCBmaWxlcwor aWYgY29uZmlnLkRFQlVHOgorICAgIGphdmFzY3JpcHRCdW5kbGVyID0gSmF2 YXNjcmlwdEJ1bmRsZXIoKQorICAgIGphdmFzY3JpcHRCdW5kbGVyLmJ1bmRs ZSgpCisKICMgQ3JlYXRlIHRoZSBhcHAhCiBhcHAgPSBjcmVhdGVfYXBwKCkK IApAQCAtNDEsNiArNjAsMTMgQEAgaWYgY29uZmlnLkRFQlVHOgogZWxzZToK ICAgICBhcHAuZGVidWcgPSBGYWxzZQogCisjIHJlc3BvbmQgdG8gSlMKK2lm IGNvbmZpZy5ERUJVRzoKKyAgICBpZiBqYXZhc2NyaXB0QnVuZGxlci5yZXBv cnQoKSA9PSBKc1N0YXRlLk5PTkU6CisgICAgICAgIGFwcC5sb2dnZXIuZXJy b3IoIlVuYWJsZSB0byBnZW5lcmF0ZSBqYXZhc2NyaXB0IikKKyAgICAgICAg YXBwLmxvZ2dlci5lcnJvcigiVG8gcnVuIHRoZSBhcHAgZW5zdXJlIHRoYXQg eWFybiBpbnN0YWxsIGNvbW1hbmQgcnVucyBzdWNjZXNzZnVsbHkiKQorICAg ICAgICByYWlzZSBFeGNlcHRpb24oIk5vIGdlbmVyYXRlZCBqYXZhc2NyaXB0 LCBhYm9ydGluZyIpCisKICMgU3RhcnQgdGhlIHdlYiBzZXJ2ZXIuIFRoZSBw b3J0IG51bWJlciBzaG91bGQgaGF2ZSBhbHJlYWR5IGJlZW4gc2V0IGJ5IHRo ZQogIyBydW50aW1lIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gZGVza3RvcCBtb2Rl LCBvdGhlcndpc2Ugd2UnbGwganVzdCB1c2UgdGhlCiAjIEZsYXNrIGRlZmF1 bHQuCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMvZ2VuZXJh dGVkL3JlYWN0Q29tcG9uZW50cy5qcyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9nZW5lcmF0ZWQvcmVhY3RDb21wb25lbnRzLmpzCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwLi4yMzRjZjQ5NAotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9nZW5lcmF0ZWQvcmVhY3RD b21wb25lbnRzLmpzCkBAIC0wLDAgKzEsMjAgQEAKK2RlZmluZShmdW5jdGlv bigpe3JldHVybiBmdW5jdGlvbihlKXtmdW5jdGlvbiB0KG8pe2lmKG5bb10p cmV0dXJuIG5bb10uZXhwb3J0czt2YXIgcj1uW29dPXtpOm8sbDohMSxleHBv cnRzOnt9fTtyZXR1cm4gZVtvXS5jYWxsKHIuZXhwb3J0cyxyLHIuZXhwb3J0 cyx0KSxyLmw9ITAsci5leHBvcnRzfXZhciBuPXt9O3JldHVybiB0Lm09ZSx0 LmM9bix0Lmk9ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LHQuZD1mdW5jdGlvbihl LG4sbyl7dC5vKGUsbil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se2Nv bmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLGdldDpvfSl9LHQubj1mdW5j dGlvbihlKXt2YXIgbj1lJiZlLl9fZXNNb2R1bGU/ZnVuY3Rpb24oKXtyZXR1 cm4gZS5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiBlfTtyZXR1cm4gdC5k KG4sImEiLG4pLG59LHQubz1mdW5jdGlvbihlLHQpe3JldHVybiBPYmplY3Qu cHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSx0KX0sdC5wPSIiLHQo dC5zPTgxKX0oW2Z1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpe3Rocm93IG5l dyBFcnJvcigic2V0VGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCIpfWZ1 bmN0aW9uIG8oKXt0aHJvdyBuZXcgRXJyb3IoImNsZWFyVGltZW91dCBoYXMg bm90IGJlZW4gZGVmaW5lZCIpfWZ1bmN0aW9uIHIoZSl7aWYobD09PXNldFRp bWVvdXQpcmV0dXJuIHNldFRpbWVvdXQoZSwwKTtpZigobD09PW58fCFsKSYm c2V0VGltZW91dClyZXR1cm4gbD1zZXRUaW1lb3V0LHNldFRpbWVvdXQoZSww KTt0cnl7cmV0dXJuIGwoZSwwKX1jYXRjaCh0KXt0cnl7cmV0dXJuIGwuY2Fs bChudWxsLGUsMCl9Y2F0Y2godCl7cmV0dXJuIGwuY2FsbCh0aGlzLGUsMCl9 fX1mdW5jdGlvbiBpKGUpe2lmKHA9PT1jbGVhclRpbWVvdXQpcmV0dXJuIGNs ZWFyVGltZW91dChlKTtpZigocD09PW98fCFwKSYmY2xlYXJUaW1lb3V0KXJl dHVybiBwPWNsZWFyVGltZW91dCxjbGVhclRpbWVvdXQoZSk7dHJ5e3JldHVy biBwKGUpfWNhdGNoKHQpe3RyeXtyZXR1cm4gcC5jYWxsKG51bGwsZSl9Y2F0 Y2godCl7cmV0dXJuIHAuY2FsbCh0aGlzLGUpfX19ZnVuY3Rpb24gYSgpe20m JmYmJihtPSExLGYubGVuZ3RoP2g9Zi5jb25jYXQoaCk6dj0tMSxoLmxlbmd0 aCYmcygpKX1mdW5jdGlvbiBzKCl7aWYoIW0pe3ZhciBlPXIoYSk7bT0hMDtm b3IodmFyIHQ9aC5sZW5ndGg7dDspe2ZvcihmPWgsaD1bXTsrK3Y8dDspZiYm Zlt2XS5ydW4oKTt2PS0xLHQ9aC5sZW5ndGh9Zj1udWxsLG09ITEsaShlKX19 ZnVuY3Rpb24gdShlLHQpe3RoaXMuZnVuPWUsdGhpcy5hcnJheT10fWZ1bmN0 aW9uIGMoKXt9dmFyIGwscCxkPWUuZXhwb3J0cz17fTshZnVuY3Rpb24oKXt0 cnl7bD0iZnVuY3Rpb24iPT10eXBlb2Ygc2V0VGltZW91dD9zZXRUaW1lb3V0 Om59Y2F0Y2goZSl7bD1ufXRyeXtwPSJmdW5jdGlvbiI9PXR5cGVvZiBjbGVh clRpbWVvdXQ/Y2xlYXJUaW1lb3V0Om99Y2F0Y2goZSl7cD1vfX0oKTt2YXIg ZixoPVtdLG09ITEsdj0tMTtkLm5leHRUaWNrPWZ1bmN0aW9uKGUpe3ZhciB0 PW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoLTEpO2lmKGFyZ3VtZW50cy5s ZW5ndGg+MSlmb3IodmFyIG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXRb bi0xXT1hcmd1bWVudHNbbl07aC5wdXNoKG5ldyB1KGUsdCkpLDEhPT1oLmxl bmd0aHx8bXx8cihzKX0sdS5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKCl7dGhp cy5mdW4uYXBwbHkobnVsbCx0aGlzLmFycmF5KX0sZC50aXRsZT0iYnJvd3Nl ciIsZC5icm93c2VyPSEwLGQuZW52PXt9LGQuYXJndj1bXSxkLnZlcnNpb249 IiIsZC52ZXJzaW9ucz17fSxkLm9uPWMsZC5hZGRMaXN0ZW5lcj1jLGQub25j ZT1jLGQub2ZmPWMsZC5yZW1vdmVMaXN0ZW5lcj1jLGQucmVtb3ZlQWxsTGlz dGVuZXJzPWMsZC5lbWl0PWMsZC5wcmVwZW5kTGlzdGVuZXI9YyxkLnByZXBl bmRPbmNlTGlzdGVuZXI9YyxkLmxpc3RlbmVycz1mdW5jdGlvbihlKXtyZXR1 cm5bXX0sZC5iaW5kaW5nPWZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcigi cHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWQiKX0sZC5jd2Q9ZnVu Y3Rpb24oKXtyZXR1cm4iLyJ9LGQuY2hkaXI9ZnVuY3Rpb24oZSl7dGhyb3cg bmV3IEVycm9yKCJwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQiKX0s ZC51bWFzaz1mdW5jdGlvbigpe3JldHVybiAwfX0sZnVuY3Rpb24oZSx0LG4p eyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihlLHQsbixy LGksYSxzLHUpe2lmKG8odCksIWUpe3ZhciBjO2lmKHZvaWQgMD09PXQpYz1u ZXcgRXJyb3IoIk1pbmlmaWVkIGV4Y2VwdGlvbiBvY2N1cnJlZDsgdXNlIHRo ZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50IGZvciB0aGUgZnVsbCBl cnJvciBtZXNzYWdlIGFuZCBhZGRpdGlvbmFsIGhlbHBmdWwgd2FybmluZ3Mu Iik7ZWxzZXt2YXIgbD1bbixyLGksYSxzLHVdLHA9MDtjPW5ldyBFcnJvcih0 LnJlcGxhY2UoLyVzL2csZnVuY3Rpb24oKXtyZXR1cm4gbFtwKytdfSkpLGMu bmFtZT0iSW52YXJpYW50IFZpb2xhdGlvbiJ9dGhyb3cgYy5mcmFtZXNUb1Bv cD0xLGN9fXZhciBvPWZ1bmN0aW9uKGUpe307InByb2R1Y3Rpb24iIT09dC5l bnYuTk9ERV9FTlYmJihvPWZ1bmN0aW9uKGUpe2lmKHZvaWQgMD09PWUpdGhy b3cgbmV3IEVycm9yKCJpbnZhcmlhbnQgcmVxdWlyZXMgYW4gZXJyb3IgbWVz c2FnZSBhcmd1bWVudCIpfSksZS5leHBvcnRzPW59KS5jYWxsKHQsbigwKSl9 LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe3Zh ciBvPW4oOSkscj1vOyJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZm dW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1hcmd1bWVu dHMubGVuZ3RoLG49QXJyYXkodD4xP3QtMTowKSxvPTE7bzx0O28rKyluW28t MV09YXJndW1lbnRzW29dO3ZhciByPTAsaT0iV2FybmluZzogIitlLnJlcGxh Y2UoLyVzL2csZnVuY3Rpb24oKXtyZXR1cm4gbltyKytdfSk7InVuZGVmaW5l ZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlLmVycm9yKGkpO3RyeXt0aHJv dyBuZXcgRXJyb3IoaSl9Y2F0Y2goZSl7fX07cj1mdW5jdGlvbih0LG4pe2lm KHZvaWQgMD09PW4pdGhyb3cgbmV3IEVycm9yKCJgd2FybmluZyhjb25kaXRp b24sIGZvcm1hdCwgLi4uYXJncylgIHJlcXVpcmVzIGEgd2FybmluZyBtZXNz YWdlIGFyZ3VtZW50Iik7aWYoMCE9PW4uaW5kZXhPZigiRmFpbGVkIENvbXBv c2l0ZSBwcm9wVHlwZTogIikmJiF0KXtmb3IodmFyIG89YXJndW1lbnRzLmxl bmd0aCxyPUFycmF5KG8+Mj9vLTI6MCksaT0yO2k8bztpKyspcltpLTJdPWFy Z3VtZW50c1tpXTtlLmFwcGx5KHZvaWQgMCxbbl0uY29uY2F0KHIpKX19fSgp LGUuZXhwb3J0cz1yfSkuY2FsbCh0LG4oMCkpfSxmdW5jdGlvbihlLHQsbil7 InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSl7Zm9yKHZhciB0PWFyZ3VtZW50 cy5sZW5ndGgtMSxuPSJNaW5pZmllZCBSZWFjdCBlcnJvciAjIitlKyI7IHZp c2l0IGh0dHA6Ly9mYWNlYm9vay5naXRodWIuaW8vcmVhY3QvZG9jcy9lcnJv ci1kZWNvZGVyLmh0bWw/aW52YXJpYW50PSIrZSxvPTA7bzx0O28rKyluKz0i JmFyZ3NbXT0iK2VuY29kZVVSSUNvbXBvbmVudChhcmd1bWVudHNbbysxXSk7 bis9IiBmb3IgdGhlIGZ1bGwgbWVzc2FnZSBvciB1c2UgdGhlIG5vbi1taW5p ZmllZCBkZXYgZW52aXJvbm1lbnQgZm9yIGZ1bGwgZXJyb3JzIGFuZCBhZGRp dGlvbmFsIGhlbHBmdWwgd2FybmluZ3MuIjt2YXIgcj1uZXcgRXJyb3Iobik7 dGhyb3cgci5uYW1lPSJJbnZhcmlhbnQgVmlvbGF0aW9uIixyLmZyYW1lc1Rv UG9wPTEscn1lLmV4cG9ydHM9b30sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3Ry aWN0IjtmdW5jdGlvbiBvKGUpe2lmKG51bGw9PT1lfHx2b2lkIDA9PT1lKXRo cm93IG5ldyBUeXBlRXJyb3IoIk9iamVjdC5hc3NpZ24gY2Fubm90IGJlIGNh bGxlZCB3aXRoIG51bGwgb3IgdW5kZWZpbmVkIik7cmV0dXJuIE9iamVjdChl KX0vKgorb2JqZWN0LWFzc2lnbgorKGMpIFNpbmRyZSBTb3JodXMKK0BsaWNl bnNlIE1JVAorKi8KK3ZhciByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJv bHMsaT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGE9T2JqZWN0 LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtlLmV4cG9ydHM9ZnVu Y3Rpb24oKXt0cnl7aWYoIU9iamVjdC5hc3NpZ24pcmV0dXJuITE7dmFyIGU9 bmV3IFN0cmluZygiYWJjIik7aWYoZVs1XT0iZGUiLCI1Ij09PU9iamVjdC5n ZXRPd25Qcm9wZXJ0eU5hbWVzKGUpWzBdKXJldHVybiExO2Zvcih2YXIgdD17 fSxuPTA7bjwxMDtuKyspdFsiXyIrU3RyaW5nLmZyb21DaGFyQ29kZShuKV09 bjtpZigiMDEyMzQ1Njc4OSIhPT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1l cyh0KS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KS5qb2luKCIiKSly ZXR1cm4hMTt2YXIgbz17fTtyZXR1cm4iYWJjZGVmZ2hpamtsbW5vcHFyc3Qi LnNwbGl0KCIiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe29bZV09ZX0pLCJhYmNk ZWZnaGlqa2xtbm9wcXJzdCI9PT1PYmplY3Qua2V5cyhPYmplY3QuYXNzaWdu KHt9LG8pKS5qb2luKCIiKX1jYXRjaChlKXtyZXR1cm4hMX19KCk/T2JqZWN0 LmFzc2lnbjpmdW5jdGlvbihlLHQpe2Zvcih2YXIgbixzLHU9byhlKSxjPTE7 Yzxhcmd1bWVudHMubGVuZ3RoO2MrKyl7bj1PYmplY3QoYXJndW1lbnRzW2Nd KTtmb3IodmFyIGwgaW4gbilpLmNhbGwobixsKSYmKHVbbF09bltsXSk7aWYo cil7cz1yKG4pO2Zvcih2YXIgcD0wO3A8cy5sZW5ndGg7cCsrKWEuY2FsbChu LHNbcF0pJiYodVtzW3BdXT1uW3NbcF1dKX19cmV0dXJuIHV9fSxmdW5jdGlv bihlLHQsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtmdW5jdGlvbiBv KGUsdCl7cmV0dXJuIDE9PT1lLm5vZGVUeXBlJiZlLmdldEF0dHJpYnV0ZSht KT09PVN0cmluZyh0KXx8OD09PWUubm9kZVR5cGUmJmUubm9kZVZhbHVlPT09 IiByZWFjdC10ZXh0OiAiK3QrIiAifHw4PT09ZS5ub2RlVHlwZSYmZS5ub2Rl VmFsdWU9PT0iIHJlYWN0LWVtcHR5OiAiK3QrIiAifWZ1bmN0aW9uIHIoZSl7 Zm9yKHZhciB0O3Q9ZS5fcmVuZGVyZWRDb21wb25lbnQ7KWU9dDtyZXR1cm4g ZX1mdW5jdGlvbiBpKGUsdCl7dmFyIG49cihlKTtuLl9ob3N0Tm9kZT10LHRb Z109bn1mdW5jdGlvbiBhKGUpe3ZhciB0PWUuX2hvc3ROb2RlO3QmJihkZWxl dGUgdFtnXSxlLl9ob3N0Tm9kZT1udWxsKX1mdW5jdGlvbiBzKGUsbil7aWYo IShlLl9mbGFncyZ2Lmhhc0NhY2hlZENoaWxkTm9kZXMpKXt2YXIgYT1lLl9y ZW5kZXJlZENoaWxkcmVuLHM9bi5maXJzdENoaWxkO2U6Zm9yKHZhciB1IGlu IGEpaWYoYS5oYXNPd25Qcm9wZXJ0eSh1KSl7dmFyIGM9YVt1XSxsPXIoYyku X2RvbUlEO2lmKDAhPT1sKXtmb3IoO251bGwhPT1zO3M9cy5uZXh0U2libGlu ZylpZihvKHMsbCkpe2koYyxzKTtjb250aW51ZSBlfSJwcm9kdWN0aW9uIiE9 PXQuZW52Lk5PREVfRU5WP2goITEsIlVuYWJsZSB0byBmaW5kIGVsZW1lbnQg d2l0aCBJRCAlcy4iLGwpOnAoIjMyIixsKX19ZS5fZmxhZ3N8PXYuaGFzQ2Fj aGVkQ2hpbGROb2Rlc319ZnVuY3Rpb24gdShlKXtpZihlW2ddKXJldHVybiBl W2ddO2Zvcih2YXIgdD1bXTshZVtnXTspe2lmKHQucHVzaChlKSwhZS5wYXJl bnROb2RlKXJldHVybiBudWxsO2U9ZS5wYXJlbnROb2RlfWZvcih2YXIgbixv O2UmJihvPWVbZ10pO2U9dC5wb3AoKSluPW8sdC5sZW5ndGgmJnMobyxlKTty ZXR1cm4gbn1mdW5jdGlvbiBjKGUpe3ZhciB0PXUoZSk7cmV0dXJuIG51bGwh PXQmJnQuX2hvc3ROb2RlPT09ZT90Om51bGx9ZnVuY3Rpb24gbChlKXtpZih2 b2lkIDA9PT1lLl9ob3N0Tm9kZSYmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5P REVfRU5WP2goITEsImdldE5vZGVGcm9tSW5zdGFuY2U6IEludmFsaWQgYXJn dW1lbnQuIik6cCgiMzMiKSksZS5faG9zdE5vZGUpcmV0dXJuIGUuX2hvc3RO b2RlO2Zvcih2YXIgbj1bXTshZS5faG9zdE5vZGU7KW4ucHVzaChlKSxlLl9o b3N0UGFyZW50fHwoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/aCgh MSwiUmVhY3QgRE9NIHRyZWUgcm9vdCBzaG91bGQgYWx3YXlzIGhhdmUgYSBu b2RlIHJlZmVyZW5jZS4iKTpwKCIzNCIpKSxlPWUuX2hvc3RQYXJlbnQ7Zm9y KDtuLmxlbmd0aDtlPW4ucG9wKCkpcyhlLGUuX2hvc3ROb2RlKTtyZXR1cm4g ZS5faG9zdE5vZGV9dmFyIHA9bigzKSxkPW4oMTMpLGY9big1OCksaD1uKDEp LG09ZC5JRF9BVFRSSUJVVEVfTkFNRSx2PWYsZz0iX19yZWFjdEludGVybmFs SW5zdGFuY2UkIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgy KSx5PXtnZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZTp1LGdldEluc3RhbmNl RnJvbU5vZGU6YyxnZXROb2RlRnJvbUluc3RhbmNlOmwscHJlY2FjaGVDaGls ZE5vZGVzOnMscHJlY2FjaGVOb2RlOmksdW5jYWNoZU5vZGU6YX07ZS5leHBv cnRzPXl9KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0 cmljdCI7dmFyIG89ISgidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvd3x8IXdp bmRvdy5kb2N1bWVudHx8IXdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50 KSxyPXtjYW5Vc2VET006byxjYW5Vc2VXb3JrZXJzOiJ1bmRlZmluZWQiIT10 eXBlb2YgV29ya2VyLGNhblVzZUV2ZW50TGlzdGVuZXJzOm8mJiEoIXdpbmRv dy5hZGRFdmVudExpc3RlbmVyJiYhd2luZG93LmF0dGFjaEV2ZW50KSxjYW5V c2VWaWV3cG9ydDpvJiYhIXdpbmRvdy5zY3JlZW4saXNJbldvcmtlcjohb307 ZS5leHBvcnRzPXJ9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KGZ1 bmN0aW9uKHQpe2Z1bmN0aW9uIG8oZSl7dmFyIHQ9RnVuY3Rpb24ucHJvdG90 eXBlLnRvU3RyaW5nLG49T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0 eSxvPVJlZ0V4cCgiXiIrdC5jYWxsKG4pLnJlcGxhY2UoL1tcXF4kLiorPygp W1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1 bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8i KSsiJCIpO3RyeXt2YXIgcj10LmNhbGwoZSk7cmV0dXJuIG8udGVzdChyKX1j YXRjaChlKXtyZXR1cm4hMX19ZnVuY3Rpb24gcihlKXt2YXIgdD1jKGUpO2lm KHQpe3ZhciBuPXQuY2hpbGRJRHM7bChlKSxuLmZvckVhY2gocil9fWZ1bmN0 aW9uIGkoZSx0LG4pe3JldHVybiJcbiAgICBpbiAiKyhlfHwiVW5rbm93biIp Kyh0PyIgKGF0ICIrdC5maWxlTmFtZS5yZXBsYWNlKC9eLipbXFxcL10vLCIi KSsiOiIrdC5saW5lTnVtYmVyKyIpIjpuPyIgKGNyZWF0ZWQgYnkgIituKyIp IjoiIil9ZnVuY3Rpb24gYShlKXtyZXR1cm4gbnVsbD09ZT8iI2VtcHR5Ijoi c3RyaW5nIj09dHlwZW9mIGV8fCJudW1iZXIiPT10eXBlb2YgZT8iI3RleHQi OiJzdHJpbmciPT10eXBlb2YgZS50eXBlP2UudHlwZTplLnR5cGUuZGlzcGxh eU5hbWV8fGUudHlwZS5uYW1lfHwiVW5rbm93biJ9ZnVuY3Rpb24gcyhlKXt2 YXIgbixvPXguZ2V0RGlzcGxheU5hbWUoZSkscj14LmdldEVsZW1lbnQoZSks YT14LmdldE93bmVySUQoZSk7cmV0dXJuIGEmJihuPXguZ2V0RGlzcGxheU5h bWUoYSkpLCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZ5KHIsIlJl YWN0Q29tcG9uZW50VHJlZUhvb2s6IE1pc3NpbmcgUmVhY3QgZWxlbWVudCBm b3IgZGVidWdJRCAlcyB3aGVuIGJ1aWxkaW5nIHN0YWNrIixlKSxpKG8sciYm ci5fc291cmNlLG4pfXZhciB1LGMsbCxwLGQsZixoLG09bigxNiksdj1uKDEx KSxnPW4oMSkseT1uKDIpLEU9ImZ1bmN0aW9uIj09dHlwZW9mIEFycmF5LmZy b20mJiJmdW5jdGlvbiI9PXR5cGVvZiBNYXAmJm8oTWFwKSYmbnVsbCE9TWFw LnByb3RvdHlwZSYmImZ1bmN0aW9uIj09dHlwZW9mIE1hcC5wcm90b3R5cGUu a2V5cyYmbyhNYXAucHJvdG90eXBlLmtleXMpJiYiZnVuY3Rpb24iPT10eXBl b2YgU2V0JiZvKFNldCkmJm51bGwhPVNldC5wcm90b3R5cGUmJiJmdW5jdGlv biI9PXR5cGVvZiBTZXQucHJvdG90eXBlLmtleXMmJm8oU2V0LnByb3RvdHlw ZS5rZXlzKTtpZihFKXt2YXIgXz1uZXcgTWFwLE49bmV3IFNldDt1PWZ1bmN0 aW9uKGUsdCl7Xy5zZXQoZSx0KX0sYz1mdW5jdGlvbihlKXtyZXR1cm4gXy5n ZXQoZSl9LGw9ZnVuY3Rpb24oZSl7Xy5kZWxldGUoZSl9LHA9ZnVuY3Rpb24o KXtyZXR1cm4gQXJyYXkuZnJvbShfLmtleXMoKSl9LGQ9ZnVuY3Rpb24oZSl7 Ti5hZGQoZSl9LGY9ZnVuY3Rpb24oZSl7Ti5kZWxldGUoZSl9LGg9ZnVuY3Rp b24oKXtyZXR1cm4gQXJyYXkuZnJvbShOLmtleXMoKSl9fWVsc2V7dmFyIGI9 e30sQz17fSxEPWZ1bmN0aW9uKGUpe3JldHVybiIuIitlfSxPPWZ1bmN0aW9u KGUpe3JldHVybiBwYXJzZUludChlLnN1YnN0cigxKSwxMCl9O3U9ZnVuY3Rp b24oZSx0KXt2YXIgbj1EKGUpO2Jbbl09dH0sYz1mdW5jdGlvbihlKXt2YXIg dD1EKGUpO3JldHVybiBiW3RdfSxsPWZ1bmN0aW9uKGUpe3ZhciB0PUQoZSk7 ZGVsZXRlIGJbdF19LHA9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmtleXMo YikubWFwKE8pfSxkPWZ1bmN0aW9uKGUpe3ZhciB0PUQoZSk7Q1t0XT0hMH0s Zj1mdW5jdGlvbihlKXt2YXIgdD1EKGUpO2RlbGV0ZSBDW3RdfSxoPWZ1bmN0 aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKEMpLm1hcChPKX19dmFyIHc9W10s eD17b25TZXRDaGlsZHJlbjpmdW5jdGlvbihlLG4pe3ZhciBvPWMoZSk7b3x8 KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP2coITEsIkl0ZW0gbXVz dCBoYXZlIGJlZW4gc2V0Iik6bSgiMTQ0IikpLG8uY2hpbGRJRHM9bjtmb3Io dmFyIHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGk9bltyXSxhPWMoaSk7YXx8 KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP2coITEsIkV4cGVjdGVk IGhvb2sgZXZlbnRzIHRvIGZpcmUgZm9yIHRoZSBjaGlsZCBiZWZvcmUgaXRz IHBhcmVudCBpbmNsdWRlcyBpdCBpbiBvblNldENoaWxkcmVuKCkuIik6bSgi MTQwIikpLG51bGw9PWEuY2hpbGRJRHMmJiJvYmplY3QiPT10eXBlb2YgYS5l bGVtZW50JiZudWxsIT1hLmVsZW1lbnQmJigicHJvZHVjdGlvbiIhPT10LmVu di5OT0RFX0VOVj9nKCExLCJFeHBlY3RlZCBvblNldENoaWxkcmVuKCkgdG8g ZmlyZSBmb3IgYSBjb250YWluZXIgY2hpbGQgYmVmb3JlIGl0cyBwYXJlbnQg aW5jbHVkZXMgaXQgaW4gb25TZXRDaGlsZHJlbigpLiIpOm0oIjE0MSIpKSxh LmlzTW91bnRlZHx8KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP2co ITEsIkV4cGVjdGVkIG9uTW91bnRDb21wb25lbnQoKSB0byBmaXJlIGZvciB0 aGUgY2hpbGQgYmVmb3JlIGl0cyBwYXJlbnQgaW5jbHVkZXMgaXQgaW4gb25T ZXRDaGlsZHJlbigpLiIpOm0oIjcxIikpLG51bGw9PWEucGFyZW50SUQmJihh LnBhcmVudElEPWUpLGEucGFyZW50SUQhPT1lJiYoInByb2R1Y3Rpb24iIT09 dC5lbnYuTk9ERV9FTlY/ZyghMSwiRXhwZWN0ZWQgb25CZWZvcmVNb3VudENv bXBvbmVudCgpIHBhcmVudCBhbmQgb25TZXRDaGlsZHJlbigpIHRvIGJlIGNv bnNpc3RlbnQgKCVzIGhhcyBwYXJlbnRzICVzIGFuZCAlcykuIixpLGEucGFy ZW50SUQsZSk6bSgiMTQyIixpLGEucGFyZW50SUQsZSkpfX0sb25CZWZvcmVN b3VudENvbXBvbmVudDpmdW5jdGlvbihlLHQsbil7dShlLHtlbGVtZW50OnQs cGFyZW50SUQ6bix0ZXh0Om51bGwsY2hpbGRJRHM6W10saXNNb3VudGVkOiEx LHVwZGF0ZUNvdW50OjB9KX0sb25CZWZvcmVVcGRhdGVDb21wb25lbnQ6ZnVu Y3Rpb24oZSx0KXt2YXIgbj1jKGUpO24mJm4uaXNNb3VudGVkJiYobi5lbGVt ZW50PXQpfSxvbk1vdW50Q29tcG9uZW50OmZ1bmN0aW9uKGUpe3ZhciBuPWMo ZSk7bnx8KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP2coITEsIkl0 ZW0gbXVzdCBoYXZlIGJlZW4gc2V0Iik6bSgiMTQ0IikpLG4uaXNNb3VudGVk PSEwLDA9PT1uLnBhcmVudElEJiZkKGUpfSxvblVwZGF0ZUNvbXBvbmVudDpm dW5jdGlvbihlKXt2YXIgdD1jKGUpO3QmJnQuaXNNb3VudGVkJiZ0LnVwZGF0 ZUNvdW50Kyt9LG9uVW5tb3VudENvbXBvbmVudDpmdW5jdGlvbihlKXt2YXIg dD1jKGUpO2lmKHQpe3QuaXNNb3VudGVkPSExOzA9PT10LnBhcmVudElEJiZm KGUpfXcucHVzaChlKX0scHVyZ2VVbm1vdW50ZWRDb21wb25lbnRzOmZ1bmN0 aW9uKCl7aWYoIXguX3ByZXZlbnRQdXJnaW5nKXtmb3IodmFyIGU9MDtlPHcu bGVuZ3RoO2UrKyl7cih3W2VdKX13Lmxlbmd0aD0wfX0saXNNb3VudGVkOmZ1 bmN0aW9uKGUpe3ZhciB0PWMoZSk7cmV0dXJuISF0JiZ0LmlzTW91bnRlZH0s Z2V0Q3VycmVudFN0YWNrQWRkZW5kdW06ZnVuY3Rpb24oZSl7dmFyIHQ9IiI7 aWYoZSl7dmFyIG49YShlKSxvPWUuX293bmVyO3QrPWkobixlLl9zb3VyY2Us byYmby5nZXROYW1lKCkpfXZhciByPXYuY3VycmVudCxzPXImJnIuX2RlYnVn SUQ7cmV0dXJuIHQrPXguZ2V0U3RhY2tBZGRlbmR1bUJ5SUQocyl9LGdldFN0 YWNrQWRkZW5kdW1CeUlEOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0iIjtlOyl0 Kz1zKGUpLGU9eC5nZXRQYXJlbnRJRChlKTtyZXR1cm4gdH0sZ2V0Q2hpbGRJ RHM6ZnVuY3Rpb24oZSl7dmFyIHQ9YyhlKTtyZXR1cm4gdD90LmNoaWxkSURz OltdfSxnZXREaXNwbGF5TmFtZTpmdW5jdGlvbihlKXt2YXIgdD14LmdldEVs ZW1lbnQoZSk7cmV0dXJuIHQ/YSh0KTpudWxsfSxnZXRFbGVtZW50OmZ1bmN0 aW9uKGUpe3ZhciB0PWMoZSk7cmV0dXJuIHQ/dC5lbGVtZW50Om51bGx9LGdl dE93bmVySUQ6ZnVuY3Rpb24oZSl7dmFyIHQ9eC5nZXRFbGVtZW50KGUpO3Jl dHVybiB0JiZ0Ll9vd25lcj90Ll9vd25lci5fZGVidWdJRDpudWxsfSxnZXRQ YXJlbnRJRDpmdW5jdGlvbihlKXt2YXIgdD1jKGUpO3JldHVybiB0P3QucGFy ZW50SUQ6bnVsbH0sZ2V0U291cmNlOmZ1bmN0aW9uKGUpe3ZhciB0PWMoZSks bj10P3QuZWxlbWVudDpudWxsO3JldHVybiBudWxsIT1uP24uX3NvdXJjZTpu dWxsfSxnZXRUZXh0OmZ1bmN0aW9uKGUpe3ZhciB0PXguZ2V0RWxlbWVudChl KTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/dDoibnVtYmVyIj09dHlwZW9m IHQ/IiIrdDpudWxsfSxnZXRVcGRhdGVDb3VudDpmdW5jdGlvbihlKXt2YXIg dD1jKGUpO3JldHVybiB0P3QudXBkYXRlQ291bnQ6MH0sZ2V0Um9vdElEczpo LGdldFJlZ2lzdGVyZWRJRHM6cH07ZS5leHBvcnRzPXh9KS5jYWxsKHQsbigw KSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQp e3ZhciBvPW51bGw7aWYoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYp e289bigxMjQpfWUuZXhwb3J0cz17ZGVidWdUb29sOm99fSkuY2FsbCh0LG4o MCkpfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8o ZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGV9fXZhciByPWZ1bmN0aW9u KCl7fTtyLnRoYXRSZXR1cm5zPW8sci50aGF0UmV0dXJuc0ZhbHNlPW8oITEp LHIudGhhdFJldHVybnNUcnVlPW8oITApLHIudGhhdFJldHVybnNOdWxsPW8o bnVsbCksci50aGF0UmV0dXJuc1RoaXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhp c30sci50aGF0UmV0dXJuc0FyZ3VtZW50PWZ1bmN0aW9uKGUpe3JldHVybiBl fSxlLmV4cG9ydHM9cn0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijso ZnVuY3Rpb24odCl7ZnVuY3Rpb24gbygpe1QuUmVhY3RSZWNvbmNpbGVUcmFu c2FjdGlvbiYmYnx8KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP2co ITEsIlJlYWN0VXBkYXRlczogbXVzdCBpbmplY3QgYSByZWNvbmNpbGUgdHJh bnNhY3Rpb24gY2xhc3MgYW5kIGJhdGNoaW5nIHN0cmF0ZWd5Iik6bCgiMTIz IikpfWZ1bmN0aW9uIHIoKXt0aGlzLnJlaW5pdGlhbGl6ZVRyYW5zYWN0aW9u KCksdGhpcy5kaXJ0eUNvbXBvbmVudHNMZW5ndGg9bnVsbCx0aGlzLmNhbGxi YWNrUXVldWU9ZC5nZXRQb29sZWQoKSx0aGlzLnJlY29uY2lsZVRyYW5zYWN0 aW9uPVQuUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbi5nZXRQb29sZWQoITAp fWZ1bmN0aW9uIGkoZSx0LG4scixpLGEpe3JldHVybiBvKCksYi5iYXRjaGVk VXBkYXRlcyhlLHQsbixyLGksYSl9ZnVuY3Rpb24gYShlLHQpe3JldHVybiBl Ll9tb3VudE9yZGVyLXQuX21vdW50T3JkZXJ9ZnVuY3Rpb24gcyhlKXt2YXIg bj1lLmRpcnR5Q29tcG9uZW50c0xlbmd0aDtuIT09eS5sZW5ndGgmJigicHJv ZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9nKCExLCJFeHBlY3RlZCBmbHVz aCB0cmFuc2FjdGlvbidzIHN0b3JlZCBkaXJ0eS1jb21wb25lbnRzIGxlbmd0 aCAoJXMpIHRvIG1hdGNoIGRpcnR5LWNvbXBvbmVudHMgYXJyYXkgbGVuZ3Ro ICglcykuIixuLHkubGVuZ3RoKTpsKCIxMjQiLG4seS5sZW5ndGgpKSx5LnNv cnQoYSksRSsrO2Zvcih2YXIgbz0wO288bjtvKyspe3ZhciByPXlbb10saT1y Ll9wZW5kaW5nQ2FsbGJhY2tzO3IuX3BlbmRpbmdDYWxsYmFja3M9bnVsbDt2 YXIgcztpZihoLmxvZ1RvcExldmVsUmVuZGVycyl7dmFyIHU9cjtyLl9jdXJy ZW50RWxlbWVudC50eXBlLmlzUmVhY3RUb3BMZXZlbFdyYXBwZXImJih1PXIu X3JlbmRlcmVkQ29tcG9uZW50KSxzPSJSZWFjdCB1cGRhdGU6ICIrdS5nZXRO YW1lKCksY29uc29sZS50aW1lKHMpfWlmKG0ucGVyZm9ybVVwZGF0ZUlmTmVj ZXNzYXJ5KHIsZS5yZWNvbmNpbGVUcmFuc2FjdGlvbixFKSxzJiZjb25zb2xl LnRpbWVFbmQocyksaSlmb3IodmFyIGM9MDtjPGkubGVuZ3RoO2MrKyllLmNh bGxiYWNrUXVldWUuZW5xdWV1ZShpW2NdLHIuZ2V0UHVibGljSW5zdGFuY2Uo KSl9fWZ1bmN0aW9uIHUoZSl7aWYobygpLCFiLmlzQmF0Y2hpbmdVcGRhdGVz KXJldHVybiB2b2lkIGIuYmF0Y2hlZFVwZGF0ZXModSxlKTt5LnB1c2goZSks bnVsbD09ZS5fdXBkYXRlQmF0Y2hOdW1iZXImJihlLl91cGRhdGVCYXRjaE51 bWJlcj1FKzEpfWZ1bmN0aW9uIGMoZSxuKXtiLmlzQmF0Y2hpbmdVcGRhdGVz fHwoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/ZyghMSwiUmVhY3RV cGRhdGVzLmFzYXA6IENhbid0IGVucXVldWUgYW4gYXNhcCBjYWxsYmFjayBp biBhIGNvbnRleHQgd2hlcmV1cGRhdGVzIGFyZSBub3QgYmVpbmcgYmF0Y2hl ZC4iKTpsKCIxMjUiKSksXy5lbnF1ZXVlKGUsbiksTj0hMH12YXIgbD1uKDMp LHA9big0KSxkPW4oNTYpLGY9bigxNCksaD1uKDYxKSxtPW4oMTgpLHY9bigy OCksZz1uKDEpLHk9W10sRT0wLF89ZC5nZXRQb29sZWQoKSxOPSExLGI9bnVs bCxDPXtpbml0aWFsaXplOmZ1bmN0aW9uKCl7dGhpcy5kaXJ0eUNvbXBvbmVu dHNMZW5ndGg9eS5sZW5ndGh9LGNsb3NlOmZ1bmN0aW9uKCl7dGhpcy5kaXJ0 eUNvbXBvbmVudHNMZW5ndGghPT15Lmxlbmd0aD8oeS5zcGxpY2UoMCx0aGlz LmRpcnR5Q29tcG9uZW50c0xlbmd0aCksdygpKTp5Lmxlbmd0aD0wfX0sRD17 aW5pdGlhbGl6ZTpmdW5jdGlvbigpe3RoaXMuY2FsbGJhY2tRdWV1ZS5yZXNl dCgpfSxjbG9zZTpmdW5jdGlvbigpe3RoaXMuY2FsbGJhY2tRdWV1ZS5ub3Rp ZnlBbGwoKX19LE89W0MsRF07cChyLnByb3RvdHlwZSx2LHtnZXRUcmFuc2Fj dGlvbldyYXBwZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIE99LGRlc3RydWN0b3I6 ZnVuY3Rpb24oKXt0aGlzLmRpcnR5Q29tcG9uZW50c0xlbmd0aD1udWxsLGQu cmVsZWFzZSh0aGlzLmNhbGxiYWNrUXVldWUpLHRoaXMuY2FsbGJhY2tRdWV1 ZT1udWxsLFQuUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlvbi5yZWxlYXNlKHRo aXMucmVjb25jaWxlVHJhbnNhY3Rpb24pLHRoaXMucmVjb25jaWxlVHJhbnNh Y3Rpb249bnVsbH0scGVyZm9ybTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHYu cGVyZm9ybS5jYWxsKHRoaXMsdGhpcy5yZWNvbmNpbGVUcmFuc2FjdGlvbi5w ZXJmb3JtLHRoaXMucmVjb25jaWxlVHJhbnNhY3Rpb24sZSx0LG4pfX0pLGYu YWRkUG9vbGluZ1RvKHIpO3ZhciB3PWZ1bmN0aW9uKCl7Zm9yKDt5Lmxlbmd0 aHx8Tjspe2lmKHkubGVuZ3RoKXt2YXIgZT1yLmdldFBvb2xlZCgpO2UucGVy Zm9ybShzLG51bGwsZSksci5yZWxlYXNlKGUpfWlmKE4pe049ITE7dmFyIHQ9 XztfPWQuZ2V0UG9vbGVkKCksdC5ub3RpZnlBbGwoKSxkLnJlbGVhc2UodCl9 fX0seD17aW5qZWN0UmVjb25jaWxlVHJhbnNhY3Rpb246ZnVuY3Rpb24oZSl7 ZXx8KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP2coITEsIlJlYWN0 VXBkYXRlczogbXVzdCBwcm92aWRlIGEgcmVjb25jaWxlIHRyYW5zYWN0aW9u IGNsYXNzIik6bCgiMTI2IikpLFQuUmVhY3RSZWNvbmNpbGVUcmFuc2FjdGlv bj1lfSxpbmplY3RCYXRjaGluZ1N0cmF0ZWd5OmZ1bmN0aW9uKGUpe2V8fCgi cHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9nKCExLCJSZWFjdFVwZGF0 ZXM6IG11c3QgcHJvdmlkZSBhIGJhdGNoaW5nIHN0cmF0ZWd5Iik6bCgiMTI3 IikpLCJmdW5jdGlvbiIhPXR5cGVvZiBlLmJhdGNoZWRVcGRhdGVzJiYoInBy b2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/ZyghMSwiUmVhY3RVcGRhdGVz OiBtdXN0IHByb3ZpZGUgYSBiYXRjaGVkVXBkYXRlcygpIGZ1bmN0aW9uIik6 bCgiMTI4IikpLCJib29sZWFuIiE9dHlwZW9mIGUuaXNCYXRjaGluZ1VwZGF0 ZXMmJigicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9nKCExLCJSZWFj dFVwZGF0ZXM6IG11c3QgcHJvdmlkZSBhbiBpc0JhdGNoaW5nVXBkYXRlcyBi b29sZWFuIGF0dHJpYnV0ZSIpOmwoIjEyOSIpKSxiPWV9fSxUPXtSZWFjdFJl Y29uY2lsZVRyYW5zYWN0aW9uOm51bGwsYmF0Y2hlZFVwZGF0ZXM6aSxlbnF1 ZXVlVXBkYXRlOnUsZmx1c2hCYXRjaGVkVXBkYXRlczp3LGluamVjdGlvbjp4 LGFzYXA6Y307ZS5leHBvcnRzPVR9KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9u KGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIG89e2N1cnJlbnQ6bnVsbH07ZS5l eHBvcnRzPW99LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KGZ1bmN0 aW9uKHQpe2Z1bmN0aW9uIG8oZSxuLG8scil7InByb2R1Y3Rpb24iIT09dC5l bnYuTk9ERV9FTlYmJihkZWxldGUgdGhpcy5uYXRpdmVFdmVudCxkZWxldGUg dGhpcy5wcmV2ZW50RGVmYXVsdCxkZWxldGUgdGhpcy5zdG9wUHJvcGFnYXRp b24pLHRoaXMuZGlzcGF0Y2hDb25maWc9ZSx0aGlzLl90YXJnZXRJbnN0PW4s dGhpcy5uYXRpdmVFdmVudD1vO3ZhciBpPXRoaXMuY29uc3RydWN0b3IuSW50 ZXJmYWNlO2Zvcih2YXIgYSBpbiBpKWlmKGkuaGFzT3duUHJvcGVydHkoYSkp eyJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZkZWxldGUgdGhpc1th XTt2YXIgdT1pW2FdO3U/dGhpc1thXT11KG8pOiJ0YXJnZXQiPT09YT90aGlz LnRhcmdldD1yOnRoaXNbYV09b1thXX12YXIgYz1udWxsIT1vLmRlZmF1bHRQ cmV2ZW50ZWQ/by5kZWZhdWx0UHJldmVudGVkOiExPT09by5yZXR1cm5WYWx1 ZTtyZXR1cm4gdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9Yz9zLnRoYXRSZXR1 cm5zVHJ1ZTpzLnRoYXRSZXR1cm5zRmFsc2UsdGhpcy5pc1Byb3BhZ2F0aW9u U3RvcHBlZD1zLnRoYXRSZXR1cm5zRmFsc2UsdGhpc31mdW5jdGlvbiByKGUs bil7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gaShhPyJzZXR0aW5nIHRoZSBtZXRo b2QiOiJzZXR0aW5nIHRoZSBwcm9wZXJ0eSIsIlRoaXMgaXMgZWZmZWN0aXZl bHkgYSBuby1vcCIpLGV9ZnVuY3Rpb24gcigpe3JldHVybiBpKGE/ImFjY2Vz c2luZyB0aGUgbWV0aG9kIjoiYWNjZXNzaW5nIHRoZSBwcm9wZXJ0eSIsYT8i VGhpcyBpcyBhIG5vLW9wIGZ1bmN0aW9uIjoiVGhpcyBpcyBzZXQgdG8gbnVs bCIpLG59ZnVuY3Rpb24gaShuLG8peyJwcm9kdWN0aW9uIiE9PXQuZW52Lk5P REVfRU5WJiZ1KCExLCJUaGlzIHN5bnRoZXRpYyBldmVudCBpcyByZXVzZWQg Zm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuIElmIHlvdSdyZSBzZWVpbmcgdGhp cywgeW91J3JlICVzIGAlc2Agb24gYSByZWxlYXNlZC9udWxsaWZpZWQgc3lu dGhldGljIGV2ZW50LiAlcy4gSWYgeW91IG11c3Qga2VlcCB0aGUgb3JpZ2lu YWwgc3ludGhldGljIGV2ZW50IGFyb3VuZCwgdXNlIGV2ZW50LnBlcnNpc3Qo KS4gU2VlIGh0dHBzOi8vZmIubWUvcmVhY3QtZXZlbnQtcG9vbGluZyBmb3Ig bW9yZSBpbmZvcm1hdGlvbi4iLG4sZSxvKX12YXIgYT0iZnVuY3Rpb24iPT10 eXBlb2YgbjtyZXR1cm57Y29uZmlndXJhYmxlOiEwLHNldDpvLGdldDpyfX12 YXIgaT1uKDQpLGE9bigxNCkscz1uKDkpLHU9bigyKSxjPSExLGw9ImZ1bmN0 aW9uIj09dHlwZW9mIFByb3h5LHA9WyJkaXNwYXRjaENvbmZpZyIsIl90YXJn ZXRJbnN0IiwibmF0aXZlRXZlbnQiLCJpc0RlZmF1bHRQcmV2ZW50ZWQiLCJp c1Byb3BhZ2F0aW9uU3RvcHBlZCIsIl9kaXNwYXRjaExpc3RlbmVycyIsIl9k aXNwYXRjaEluc3RhbmNlcyJdLGQ9e3R5cGU6bnVsbCx0YXJnZXQ6bnVsbCxj dXJyZW50VGFyZ2V0OnMudGhhdFJldHVybnNOdWxsLGV2ZW50UGhhc2U6bnVs bCxidWJibGVzOm51bGwsY2FuY2VsYWJsZTpudWxsLHRpbWVTdGFtcDpmdW5j dGlvbihlKXtyZXR1cm4gZS50aW1lU3RhbXB8fERhdGUubm93KCl9LGRlZmF1 bHRQcmV2ZW50ZWQ6bnVsbCxpc1RydXN0ZWQ6bnVsbH07aShvLnByb3RvdHlw ZSx7cHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXt0aGlzLmRlZmF1bHRQcmV2 ZW50ZWQ9ITA7dmFyIGU9dGhpcy5uYXRpdmVFdmVudDtlJiYoZS5wcmV2ZW50 RGVmYXVsdD9lLnByZXZlbnREZWZhdWx0KCk6InVua25vd24iIT10eXBlb2Yg ZS5yZXR1cm5WYWx1ZSYmKGUucmV0dXJuVmFsdWU9ITEpLHRoaXMuaXNEZWZh dWx0UHJldmVudGVkPXMudGhhdFJldHVybnNUcnVlKX0sc3RvcFByb3BhZ2F0 aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5uYXRpdmVFdmVudDtlJiYoZS5z dG9wUHJvcGFnYXRpb24/ZS5zdG9wUHJvcGFnYXRpb24oKToidW5rbm93biIh PXR5cGVvZiBlLmNhbmNlbEJ1YmJsZSYmKGUuY2FuY2VsQnViYmxlPSEwKSx0 aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXMudGhhdFJldHVybnNUcnVlKX0s cGVyc2lzdDpmdW5jdGlvbigpe3RoaXMuaXNQZXJzaXN0ZW50PXMudGhhdFJl dHVybnNUcnVlfSxpc1BlcnNpc3RlbnQ6cy50aGF0UmV0dXJuc0ZhbHNlLGRl c3RydWN0b3I6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmNvbnN0cnVjdG9yLklu dGVyZmFjZTtmb3IodmFyIG4gaW4gZSkicHJvZHVjdGlvbiIhPT10LmVudi5O T0RFX0VOVj9PYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxuLHIobixlW25d KSk6dGhpc1tuXT1udWxsO2Zvcih2YXIgbz0wO288cC5sZW5ndGg7bysrKXRo aXNbcFtvXV09bnVsbDsicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYm KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJuYXRpdmVFdmVudCIscigi bmF0aXZlRXZlbnQiLG51bGwpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhp cywicHJldmVudERlZmF1bHQiLHIoInByZXZlbnREZWZhdWx0IixzKSksT2Jq ZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsInN0b3BQcm9wYWdhdGlvbiIscigi c3RvcFByb3BhZ2F0aW9uIixzKSkpfX0pLG8uSW50ZXJmYWNlPWQsInByb2R1 Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJmwmJihvPW5ldyBQcm94eShvLHtj b25zdHJ1Y3Q6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5hcHBseShlLE9i amVjdC5jcmVhdGUoZS5wcm90b3R5cGUpLHQpfSxhcHBseTpmdW5jdGlvbihl LG4sbyl7cmV0dXJuIG5ldyBQcm94eShlLmFwcGx5KG4sbykse3NldDpmdW5j dGlvbihlLG4sbyl7cmV0dXJuImlzUGVyc2lzdGVudCI9PT1ufHxlLmNvbnN0 cnVjdG9yLkludGVyZmFjZS5oYXNPd25Qcm9wZXJ0eShuKXx8LTEhPT1wLmlu ZGV4T2Yobil8fCgicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmdShj fHxlLmlzUGVyc2lzdGVudCgpLCJUaGlzIHN5bnRoZXRpYyBldmVudCBpcyBy ZXVzZWQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuIElmIHlvdSdyZSBzZWVp bmcgdGhpcywgeW91J3JlIGFkZGluZyBhIG5ldyBwcm9wZXJ0eSBpbiB0aGUg c3ludGhldGljIGV2ZW50IG9iamVjdC4gVGhlIHByb3BlcnR5IGlzIG5ldmVy IHJlbGVhc2VkLiBTZWUgaHR0cHM6Ly9mYi5tZS9yZWFjdC1ldmVudC1wb29s aW5nIGZvciBtb3JlIGluZm9ybWF0aW9uLiIpLGM9ITApLGVbbl09bywhMH19 KX19KSksby5hdWdtZW50Q2xhc3M9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlz LG89ZnVuY3Rpb24oKXt9O28ucHJvdG90eXBlPW4ucHJvdG90eXBlO3ZhciBy PW5ldyBvO2kocixlLnByb3RvdHlwZSksZS5wcm90b3R5cGU9cixlLnByb3Rv dHlwZS5jb25zdHJ1Y3Rvcj1lLGUuSW50ZXJmYWNlPWkoe30sbi5JbnRlcmZh Y2UsdCksZS5hdWdtZW50Q2xhc3M9bi5hdWdtZW50Q2xhc3MsYS5hZGRQb29s aW5nVG8oZSxhLmZvdXJBcmd1bWVudFBvb2xlcil9LGEuYWRkUG9vbGluZ1Rv KG8sYS5mb3VyQXJndW1lbnRQb29sZXIpLGUuZXhwb3J0cz1vfSkuY2FsbCh0 LG4oMCkpfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlv bih0KXtmdW5jdGlvbiBvKGUsdCl7cmV0dXJuKGUmdCk9PT10fXZhciByPW4o MyksaT1uKDEpLGE9e01VU1RfVVNFX1BST1BFUlRZOjEsSEFTX0JPT0xFQU5f VkFMVUU6NCxIQVNfTlVNRVJJQ19WQUxVRTo4LEhBU19QT1NJVElWRV9OVU1F UklDX1ZBTFVFOjI0LEhBU19PVkVSTE9BREVEX0JPT0xFQU5fVkFMVUU6MzIs aW5qZWN0RE9NUHJvcGVydHlDb25maWc6ZnVuY3Rpb24oZSl7dmFyIG49YSxz PWUuUHJvcGVydGllc3x8e30sYz1lLkRPTUF0dHJpYnV0ZU5hbWVzcGFjZXN8 fHt9LGw9ZS5ET01BdHRyaWJ1dGVOYW1lc3x8e30scD1lLkRPTVByb3BlcnR5 TmFtZXN8fHt9LGQ9ZS5ET01NdXRhdGlvbk1ldGhvZHN8fHt9O2UuaXNDdXN0 b21BdHRyaWJ1dGUmJnUuX2lzQ3VzdG9tQXR0cmlidXRlRnVuY3Rpb25zLnB1 c2goZS5pc0N1c3RvbUF0dHJpYnV0ZSk7Zm9yKHZhciBmIGluIHMpe3UucHJv cGVydGllcy5oYXNPd25Qcm9wZXJ0eShmKSYmKCJwcm9kdWN0aW9uIiE9PXQu ZW52Lk5PREVfRU5WP2koITEsImluamVjdERPTVByb3BlcnR5Q29uZmlnKC4u Lik6IFlvdSdyZSB0cnlpbmcgdG8gaW5qZWN0IERPTSBwcm9wZXJ0eSAnJXMn IHdoaWNoIGhhcyBhbHJlYWR5IGJlZW4gaW5qZWN0ZWQuIFlvdSBtYXkgYmUg YWNjaWRlbnRhbGx5IGluamVjdGluZyB0aGUgc2FtZSBET00gcHJvcGVydHkg Y29uZmlnIHR3aWNlLCBvciB5b3UgbWF5IGJlIGluamVjdGluZyB0d28gY29u ZmlncyB0aGF0IGhhdmUgY29uZmxpY3RpbmcgcHJvcGVydHkgbmFtZXMuIixm KTpyKCI0OCIsZikpO3ZhciBoPWYudG9Mb3dlckNhc2UoKSxtPXNbZl0sdj17 YXR0cmlidXRlTmFtZTpoLGF0dHJpYnV0ZU5hbWVzcGFjZTpudWxsLHByb3Bl cnR5TmFtZTpmLG11dGF0aW9uTWV0aG9kOm51bGwsbXVzdFVzZVByb3BlcnR5 Om8obSxuLk1VU1RfVVNFX1BST1BFUlRZKSxoYXNCb29sZWFuVmFsdWU6byht LG4uSEFTX0JPT0xFQU5fVkFMVUUpLGhhc051bWVyaWNWYWx1ZTpvKG0sbi5I QVNfTlVNRVJJQ19WQUxVRSksaGFzUG9zaXRpdmVOdW1lcmljVmFsdWU6byht LG4uSEFTX1BPU0lUSVZFX05VTUVSSUNfVkFMVUUpLGhhc092ZXJsb2FkZWRC b29sZWFuVmFsdWU6byhtLG4uSEFTX09WRVJMT0FERURfQk9PTEVBTl9WQUxV RSl9O2lmKHYuaGFzQm9vbGVhblZhbHVlK3YuaGFzTnVtZXJpY1ZhbHVlK3Yu aGFzT3ZlcmxvYWRlZEJvb2xlYW5WYWx1ZTw9MXx8KCJwcm9kdWN0aW9uIiE9 PXQuZW52Lk5PREVfRU5WP2koITEsIkRPTVByb3BlcnR5OiBWYWx1ZSBjYW4g YmUgb25lIG9mIGJvb2xlYW4sIG92ZXJsb2FkZWQgYm9vbGVhbiwgb3IgbnVt ZXJpYyB2YWx1ZSwgYnV0IG5vdCBhIGNvbWJpbmF0aW9uOiAlcyIsZik6cigi NTAiLGYpKSwicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmKHUuZ2V0 UG9zc2libGVTdGFuZGFyZE5hbWVbaF09ZiksbC5oYXNPd25Qcm9wZXJ0eShm KSl7dmFyIGc9bFtmXTt2LmF0dHJpYnV0ZU5hbWU9ZywicHJvZHVjdGlvbiIh PT10LmVudi5OT0RFX0VOViYmKHUuZ2V0UG9zc2libGVTdGFuZGFyZE5hbWVb Z109Zil9Yy5oYXNPd25Qcm9wZXJ0eShmKSYmKHYuYXR0cmlidXRlTmFtZXNw YWNlPWNbZl0pLHAuaGFzT3duUHJvcGVydHkoZikmJih2LnByb3BlcnR5TmFt ZT1wW2ZdKSxkLmhhc093blByb3BlcnR5KGYpJiYodi5tdXRhdGlvbk1ldGhv ZD1kW2ZdKSx1LnByb3BlcnRpZXNbZl09dn19fSxzPSI6QS1aX2EtelxcdTAw QzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDJGRlxcdTAz NzAtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIw NzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5 MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRCIsdT17SURfQVRUUklCVVRFX05B TUU6ImRhdGEtcmVhY3RpZCIsUk9PVF9BVFRSSUJVVEVfTkFNRToiZGF0YS1y ZWFjdHJvb3QiLEFUVFJJQlVURV9OQU1FX1NUQVJUX0NIQVI6cyxBVFRSSUJV VEVfTkFNRV9DSEFSOnMrIlxcLS4wLTlcXHUwMEI3XFx1MDMwMC1cXHUwMzZG XFx1MjAzRi1cXHUyMDQwIixwcm9wZXJ0aWVzOnt9LGdldFBvc3NpYmxlU3Rh bmRhcmROYW1lOiJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP3thdXRv Zm9jdXM6ImF1dG9Gb2N1cyJ9Om51bGwsX2lzQ3VzdG9tQXR0cmlidXRlRnVu Y3Rpb25zOltdLGlzQ3VzdG9tQXR0cmlidXRlOmZ1bmN0aW9uKGUpe2Zvcih2 YXIgdD0wO3Q8dS5faXNDdXN0b21BdHRyaWJ1dGVGdW5jdGlvbnMubGVuZ3Ro O3QrKyl7aWYoKDAsdS5faXNDdXN0b21BdHRyaWJ1dGVGdW5jdGlvbnNbdF0p KGUpKXJldHVybiEwfXJldHVybiExfSxpbmplY3Rpb246YX07ZS5leHBvcnRz PXV9KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmlj dCI7KGZ1bmN0aW9uKHQpe3ZhciBvPW4oMykscj1uKDEpLGk9ZnVuY3Rpb24o ZSl7dmFyIHQ9dGhpcztpZih0Lmluc3RhbmNlUG9vbC5sZW5ndGgpe3ZhciBu PXQuaW5zdGFuY2VQb29sLnBvcCgpO3JldHVybiB0LmNhbGwobixlKSxufXJl dHVybiBuZXcgdChlKX0sYT1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7aWYo bi5pbnN0YW5jZVBvb2wubGVuZ3RoKXt2YXIgbz1uLmluc3RhbmNlUG9vbC5w b3AoKTtyZXR1cm4gbi5jYWxsKG8sZSx0KSxvfXJldHVybiBuZXcgbihlLHQp fSxzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgbz10aGlzO2lmKG8uaW5zdGFuY2VQ b29sLmxlbmd0aCl7dmFyIHI9by5pbnN0YW5jZVBvb2wucG9wKCk7cmV0dXJu IG8uY2FsbChyLGUsdCxuKSxyfXJldHVybiBuZXcgbyhlLHQsbil9LHU9ZnVu Y3Rpb24oZSx0LG4sbyl7dmFyIHI9dGhpcztpZihyLmluc3RhbmNlUG9vbC5s ZW5ndGgpe3ZhciBpPXIuaW5zdGFuY2VQb29sLnBvcCgpO3JldHVybiByLmNh bGwoaSxlLHQsbixvKSxpfXJldHVybiBuZXcgcihlLHQsbixvKX0sYz1mdW5j dGlvbihlKXt2YXIgbj10aGlzO2UgaW5zdGFuY2VvZiBufHwoInByb2R1Y3Rp b24iIT09dC5lbnYuTk9ERV9FTlY/cighMSwiVHJ5aW5nIHRvIHJlbGVhc2Ug YW4gaW5zdGFuY2UgaW50byBhIHBvb2wgb2YgYSBkaWZmZXJlbnQgdHlwZS4i KTpvKCIyNSIpKSxlLmRlc3RydWN0b3IoKSxuLmluc3RhbmNlUG9vbC5sZW5n dGg8bi5wb29sU2l6ZSYmbi5pbnN0YW5jZVBvb2wucHVzaChlKX0sbD1pLHA9 ZnVuY3Rpb24oZSx0KXt2YXIgbj1lO3JldHVybiBuLmluc3RhbmNlUG9vbD1b XSxuLmdldFBvb2xlZD10fHxsLG4ucG9vbFNpemV8fChuLnBvb2xTaXplPTEw KSxuLnJlbGVhc2U9YyxufSxkPXthZGRQb29saW5nVG86cCxvbmVBcmd1bWVu dFBvb2xlcjppLHR3b0FyZ3VtZW50UG9vbGVyOmEsdGhyZWVBcmd1bWVudFBv b2xlcjpzLGZvdXJBcmd1bWVudFBvb2xlcjp1fTtlLmV4cG9ydHM9ZH0pLmNh bGwodCxuKDApKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjsoZnVu Y3Rpb24odCl7ZnVuY3Rpb24gbyhlKXtpZigicHJvZHVjdGlvbiIhPT10LmVu di5OT0RFX0VOViYmZi5jYWxsKGUsInJlZiIpKXt2YXIgbj1PYmplY3QuZ2V0 T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsInJlZiIpLmdldDtpZihuJiZuLmlz UmVhY3RXYXJuaW5nKXJldHVybiExfXJldHVybiB2b2lkIDAhPT1lLnJlZn1m dW5jdGlvbiByKGUpe2lmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5W JiZmLmNhbGwoZSwia2V5Iikpe3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0 eURlc2NyaXB0b3IoZSwia2V5IikuZ2V0O2lmKG4mJm4uaXNSZWFjdFdhcm5p bmcpcmV0dXJuITF9cmV0dXJuIHZvaWQgMCE9PWUua2V5fWZ1bmN0aW9uIGko ZSxuKXt2YXIgbz1mdW5jdGlvbigpe3N8fChzPSEwLCJwcm9kdWN0aW9uIiE9 PXQuZW52Lk5PREVfRU5WJiZwKCExLCIlczogYGtleWAgaXMgbm90IGEgcHJv cC4gVHJ5aW5nIHRvIGFjY2VzcyBpdCB3aWxsIHJlc3VsdCBpbiBgdW5kZWZp bmVkYCBiZWluZyByZXR1cm5lZC4gSWYgeW91IG5lZWQgdG8gYWNjZXNzIHRo ZSBzYW1lIHZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ug c2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgcHJvcC4gKGh0dHBzOi8v ZmIubWUvcmVhY3Qtc3BlY2lhbC1wcm9wcykiLG4pKX07by5pc1JlYWN0V2Fy bmluZz0hMCxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwia2V5Iix7Z2V0Om8s Y29uZmlndXJhYmxlOiEwfSl9ZnVuY3Rpb24gYShlLG4pe3ZhciBvPWZ1bmN0 aW9uKCl7dXx8KHU9ITAsInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYm JnAoITEsIiVzOiBgcmVmYCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNj ZXNzIGl0IHdpbGwgcmVzdWx0IGluIGB1bmRlZmluZWRgIGJlaW5nIHJldHVy bmVkLiBJZiB5b3UgbmVlZCB0byBhY2Nlc3MgdGhlIHNhbWUgdmFsdWUgd2l0 aGluIHRoZSBjaGlsZCBjb21wb25lbnQsIHlvdSBzaG91bGQgcGFzcyBpdCBh cyBhIGRpZmZlcmVudCBwcm9wLiAoaHR0cHM6Ly9mYi5tZS9yZWFjdC1zcGVj aWFsLXByb3BzKSIsbikpfTtvLmlzUmVhY3RXYXJuaW5nPSEwLE9iamVjdC5k ZWZpbmVQcm9wZXJ0eShlLCJyZWYiLHtnZXQ6byxjb25maWd1cmFibGU6ITB9 KX12YXIgcyx1LGM9big0KSxsPW4oMTEpLHA9bigyKSxkPW4oNTApLGY9T2Jq ZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxoPW4oNzYpLG09e2tleToh MCxyZWY6ITAsX19zZWxmOiEwLF9fc291cmNlOiEwfSx2PWZ1bmN0aW9uKGUs bixvLHIsaSxhLHMpe3ZhciB1PXskJHR5cGVvZjpoLHR5cGU6ZSxrZXk6bixy ZWY6byxwcm9wczpzLF9vd25lcjphfTtyZXR1cm4icHJvZHVjdGlvbiIhPT10 LmVudi5OT0RFX0VOViYmKHUuX3N0b3JlPXt9LGQ/KE9iamVjdC5kZWZpbmVQ cm9wZXJ0eSh1Ll9zdG9yZSwidmFsaWRhdGVkIix7Y29uZmlndXJhYmxlOiEx LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsdmFsdWU6ITF9KSxPYmplY3Qu ZGVmaW5lUHJvcGVydHkodSwiX3NlbGYiLHtjb25maWd1cmFibGU6ITEsZW51 bWVyYWJsZTohMSx3cml0YWJsZTohMSx2YWx1ZTpyfSksT2JqZWN0LmRlZmlu ZVByb3BlcnR5KHUsIl9zb3VyY2UiLHtjb25maWd1cmFibGU6ITEsZW51bWVy YWJsZTohMSx3cml0YWJsZTohMSx2YWx1ZTppfSkpOih1Ll9zdG9yZS52YWxp ZGF0ZWQ9ITEsdS5fc2VsZj1yLHUuX3NvdXJjZT1pKSxPYmplY3QuZnJlZXpl JiYoT2JqZWN0LmZyZWV6ZSh1LnByb3BzKSxPYmplY3QuZnJlZXplKHUpKSks dX07di5jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKGUsbixzKXt2YXIgdSxjPXt9 LHA9bnVsbCxkPW51bGwsZz1udWxsLHk9bnVsbDtpZihudWxsIT1uKXtvKG4p JiYoZD1uLnJlZikscihuKSYmKHA9IiIrbi5rZXkpLGc9dm9pZCAwPT09bi5f X3NlbGY/bnVsbDpuLl9fc2VsZix5PXZvaWQgMD09PW4uX19zb3VyY2U/bnVs bDpuLl9fc291cmNlO2Zvcih1IGluIG4pZi5jYWxsKG4sdSkmJiFtLmhhc093 blByb3BlcnR5KHUpJiYoY1t1XT1uW3VdKX12YXIgRT1hcmd1bWVudHMubGVu Z3RoLTI7aWYoMT09PUUpYy5jaGlsZHJlbj1zO2Vsc2UgaWYoRT4xKXtmb3Io dmFyIF89QXJyYXkoRSksTj0wO048RTtOKyspX1tOXT1hcmd1bWVudHNbTisy XTsicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmT2JqZWN0LmZyZWV6 ZSYmT2JqZWN0LmZyZWV6ZShfKSxjLmNoaWxkcmVuPV99aWYoZSYmZS5kZWZh dWx0UHJvcHMpe3ZhciBiPWUuZGVmYXVsdFByb3BzO2Zvcih1IGluIGIpdm9p ZCAwPT09Y1t1XSYmKGNbdV09Ylt1XSl9aWYoInByb2R1Y3Rpb24iIT09dC5l bnYuTk9ERV9FTlYmJihwfHxkKSYmKHZvaWQgMD09PWMuJCR0eXBlb2Z8fGMu JCR0eXBlb2YhPT1oKSl7dmFyIEM9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZS5k aXNwbGF5TmFtZXx8ZS5uYW1lfHwiVW5rbm93biI6ZTtwJiZpKGMsQyksZCYm YShjLEMpfXJldHVybiB2KGUscCxkLGcseSxsLmN1cnJlbnQsYyl9LHYuY3Jl YXRlRmFjdG9yeT1mdW5jdGlvbihlKXt2YXIgdD12LmNyZWF0ZUVsZW1lbnQu YmluZChudWxsLGUpO3JldHVybiB0LnR5cGU9ZSx0fSx2LmNsb25lQW5kUmVw bGFjZUtleT1mdW5jdGlvbihlLHQpe3JldHVybiB2KGUudHlwZSx0LGUucmVm LGUuX3NlbGYsZS5fc291cmNlLGUuX293bmVyLGUucHJvcHMpfSx2LmNsb25l RWxlbWVudD1mdW5jdGlvbihlLHQsbil7dmFyIGksYT1jKHt9LGUucHJvcHMp LHM9ZS5rZXksdT1lLnJlZixwPWUuX3NlbGYsZD1lLl9zb3VyY2UsaD1lLl9v d25lcjtpZihudWxsIT10KXtvKHQpJiYodT10LnJlZixoPWwuY3VycmVudCks cih0KSYmKHM9IiIrdC5rZXkpO3ZhciBnO2UudHlwZSYmZS50eXBlLmRlZmF1 bHRQcm9wcyYmKGc9ZS50eXBlLmRlZmF1bHRQcm9wcyk7Zm9yKGkgaW4gdClm LmNhbGwodCxpKSYmIW0uaGFzT3duUHJvcGVydHkoaSkmJih2b2lkIDA9PT10 W2ldJiZ2b2lkIDAhPT1nP2FbaV09Z1tpXTphW2ldPXRbaV0pfXZhciB5PWFy Z3VtZW50cy5sZW5ndGgtMjtpZigxPT09eSlhLmNoaWxkcmVuPW47ZWxzZSBp Zih5PjEpe2Zvcih2YXIgRT1BcnJheSh5KSxfPTA7Xzx5O18rKylFW19dPWFy Z3VtZW50c1tfKzJdO2EuY2hpbGRyZW49RX1yZXR1cm4gdihlLnR5cGUscyx1 LHAsZCxoLGEpfSx2LmlzVmFsaWRFbGVtZW50PWZ1bmN0aW9uKGUpe3JldHVy biJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWUmJmUuJCR0eXBlb2Y9PT1o fSxlLmV4cG9ydHM9dn0pLmNhbGwodCxuKDApKX0sZnVuY3Rpb24oZSx0LG4p eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKGUpe2Zvcih2YXIgdD1hcmd1bWVu dHMubGVuZ3RoLTEsbj0iTWluaWZpZWQgUmVhY3QgZXJyb3IgIyIrZSsiOyB2 aXNpdCBodHRwOi8vZmFjZWJvb2suZ2l0aHViLmlvL3JlYWN0L2RvY3MvZXJy b3ItZGVjb2Rlci5odG1sP2ludmFyaWFudD0iK2Usbz0wO288dDtvKyspbis9 IiZhcmdzW109IitlbmNvZGVVUklDb21wb25lbnQoYXJndW1lbnRzW28rMV0p O24rPSIgZm9yIHRoZSBmdWxsIG1lc3NhZ2Ugb3IgdXNlIHRoZSBub24tbWlu aWZpZWQgZGV2IGVudmlyb25tZW50IGZvciBmdWxsIGVycm9ycyBhbmQgYWRk aXRpb25hbCBoZWxwZnVsIHdhcm5pbmdzLiI7dmFyIHI9bmV3IEVycm9yKG4p O3Rocm93IHIubmFtZT0iSW52YXJpYW50IFZpb2xhdGlvbiIsci5mcmFtZXNU b1BvcD0xLHJ9ZS5leHBvcnRzPW99LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0 cmljdCI7ZnVuY3Rpb24gbyhlKXtpZihoKXt2YXIgdD1lLm5vZGUsbj1lLmNo aWxkcmVuO2lmKG4ubGVuZ3RoKWZvcih2YXIgbz0wO288bi5sZW5ndGg7bysr KW0odCxuW29dLG51bGwpO2Vsc2UgbnVsbCE9ZS5odG1sP3AodCxlLmh0bWwp Om51bGwhPWUudGV4dCYmZih0LGUudGV4dCl9fWZ1bmN0aW9uIHIoZSx0KXtl LnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKHQubm9kZSxlKSxvKHQpfWZ1bmN0 aW9uIGkoZSx0KXtoP2UuY2hpbGRyZW4ucHVzaCh0KTplLm5vZGUuYXBwZW5k Q2hpbGQodC5ub2RlKX1mdW5jdGlvbiBhKGUsdCl7aD9lLmh0bWw9dDpwKGUu bm9kZSx0KX1mdW5jdGlvbiBzKGUsdCl7aD9lLnRleHQ9dDpmKGUubm9kZSx0 KX1mdW5jdGlvbiB1KCl7cmV0dXJuIHRoaXMubm9kZS5ub2RlTmFtZX1mdW5j dGlvbiBjKGUpe3JldHVybntub2RlOmUsY2hpbGRyZW46W10saHRtbDpudWxs LHRleHQ6bnVsbCx0b1N0cmluZzp1fX12YXIgbD1uKDMzKSxwPW4oMzApLGQ9 big0MCksZj1uKDc0KSxoPSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQm JiJudW1iZXIiPT10eXBlb2YgZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHwidW5k ZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmInN0cmluZyI9PXR5cGVvZiBu YXZpZ2F0b3IudXNlckFnZW50JiYvXGJFZGdlXC9cZC8udGVzdChuYXZpZ2F0 b3IudXNlckFnZW50KSxtPWQoZnVuY3Rpb24oZSx0LG4pezExPT09dC5ub2Rl Lm5vZGVUeXBlfHwxPT09dC5ub2RlLm5vZGVUeXBlJiYib2JqZWN0Ij09PXQu bm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiYobnVsbD09dC5ub2RlLm5h bWVzcGFjZVVSSXx8dC5ub2RlLm5hbWVzcGFjZVVSST09PWwuaHRtbCk/KG8o dCksZS5pbnNlcnRCZWZvcmUodC5ub2RlLG4pKTooZS5pbnNlcnRCZWZvcmUo dC5ub2RlLG4pLG8odCkpfSk7Yy5pbnNlcnRUcmVlQmVmb3JlPW0sYy5yZXBs YWNlQ2hpbGRXaXRoVHJlZT1yLGMucXVldWVDaGlsZD1pLGMucXVldWVIVE1M PWEsYy5xdWV1ZVRleHQ9cyxlLmV4cG9ydHM9Y30sZnVuY3Rpb24oZSx0LG4p eyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7ZnVuY3Rpb24gbygpe3IuYXR0 YWNoUmVmcyh0aGlzLHRoaXMuX2N1cnJlbnRFbGVtZW50KX12YXIgcj1uKDEz OCksaT1uKDgpLGE9bigyKSxzPXttb3VudENvbXBvbmVudDpmdW5jdGlvbihl LG4scixhLHMsdSl7InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJjAh PT1lLl9kZWJ1Z0lEJiZpLmRlYnVnVG9vbC5vbkJlZm9yZU1vdW50Q29tcG9u ZW50KGUuX2RlYnVnSUQsZS5fY3VycmVudEVsZW1lbnQsdSk7dmFyIGM9ZS5t b3VudENvbXBvbmVudChuLHIsYSxzLHUpO3JldHVybiBlLl9jdXJyZW50RWxl bWVudCYmbnVsbCE9ZS5fY3VycmVudEVsZW1lbnQucmVmJiZuLmdldFJlYWN0 TW91bnRSZWFkeSgpLmVucXVldWUobyxlKSwicHJvZHVjdGlvbiIhPT10LmVu di5OT0RFX0VOViYmMCE9PWUuX2RlYnVnSUQmJmkuZGVidWdUb29sLm9uTW91 bnRDb21wb25lbnQoZS5fZGVidWdJRCksY30sZ2V0SG9zdE5vZGU6ZnVuY3Rp b24oZSl7cmV0dXJuIGUuZ2V0SG9zdE5vZGUoKX0sdW5tb3VudENvbXBvbmVu dDpmdW5jdGlvbihlLG4peyJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5W JiYwIT09ZS5fZGVidWdJRCYmaS5kZWJ1Z1Rvb2wub25CZWZvcmVVbm1vdW50 Q29tcG9uZW50KGUuX2RlYnVnSUQpLHIuZGV0YWNoUmVmcyhlLGUuX2N1cnJl bnRFbGVtZW50KSxlLnVubW91bnRDb21wb25lbnQobiksInByb2R1Y3Rpb24i IT09dC5lbnYuTk9ERV9FTlYmJjAhPT1lLl9kZWJ1Z0lEJiZpLmRlYnVnVG9v bC5vblVubW91bnRDb21wb25lbnQoZS5fZGVidWdJRCl9LHJlY2VpdmVDb21w b25lbnQ6ZnVuY3Rpb24oZSxuLGEscyl7dmFyIHU9ZS5fY3VycmVudEVsZW1l bnQ7aWYobiE9PXV8fHMhPT1lLl9jb250ZXh0KXsicHJvZHVjdGlvbiIhPT10 LmVudi5OT0RFX0VOViYmMCE9PWUuX2RlYnVnSUQmJmkuZGVidWdUb29sLm9u QmVmb3JlVXBkYXRlQ29tcG9uZW50KGUuX2RlYnVnSUQsbik7dmFyIGM9ci5z aG91bGRVcGRhdGVSZWZzKHUsbik7YyYmci5kZXRhY2hSZWZzKGUsdSksZS5y ZWNlaXZlQ29tcG9uZW50KG4sYSxzKSxjJiZlLl9jdXJyZW50RWxlbWVudCYm bnVsbCE9ZS5fY3VycmVudEVsZW1lbnQucmVmJiZhLmdldFJlYWN0TW91bnRS ZWFkeSgpLmVucXVldWUobyxlKSwicHJvZHVjdGlvbiIhPT10LmVudi5OT0RF X0VOViYmMCE9PWUuX2RlYnVnSUQmJmkuZGVidWdUb29sLm9uVXBkYXRlQ29t cG9uZW50KGUuX2RlYnVnSUQpfX0scGVyZm9ybVVwZGF0ZUlmTmVjZXNzYXJ5 OmZ1bmN0aW9uKGUsbixvKXtpZihlLl91cGRhdGVCYXRjaE51bWJlciE9PW8p cmV0dXJuIHZvaWQoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJmEo bnVsbD09ZS5fdXBkYXRlQmF0Y2hOdW1iZXJ8fGUuX3VwZGF0ZUJhdGNoTnVt YmVyPT09bysxLCJwZXJmb3JtVXBkYXRlSWZOZWNlc3Nhcnk6IFVuZXhwZWN0 ZWQgYmF0Y2ggbnVtYmVyIChjdXJyZW50ICVzLCBwZW5kaW5nICVzKSIsbyxl Ll91cGRhdGVCYXRjaE51bWJlcikpOyJwcm9kdWN0aW9uIiE9PXQuZW52Lk5P REVfRU5WJiYwIT09ZS5fZGVidWdJRCYmaS5kZWJ1Z1Rvb2wub25CZWZvcmVV cGRhdGVDb21wb25lbnQoZS5fZGVidWdJRCxlLl9jdXJyZW50RWxlbWVudCks ZS5wZXJmb3JtVXBkYXRlSWZOZWNlc3NhcnkobiksInByb2R1Y3Rpb24iIT09 dC5lbnYuTk9ERV9FTlYmJjAhPT1lLl9kZWJ1Z0lEJiZpLmRlYnVnVG9vbC5v blVwZGF0ZUNvbXBvbmVudChlLl9kZWJ1Z0lEKX19O2UuZXhwb3J0cz1zfSku Y2FsbCh0LG4oMCkpfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiOyhm dW5jdGlvbih0KXt2YXIgbz1uKDQpLHI9bigxNjkpLGk9big0NyksYT1uKDE3 Mykscz1uKDE3MCksdT1uKDE3MSksYz1uKDE1KSxsPW4oMTcyKSxwPW4oMTc0 KSxkPW4oMTc2KSxmPW4oMiksaD1jLmNyZWF0ZUVsZW1lbnQsbT1jLmNyZWF0 ZUZhY3Rvcnksdj1jLmNsb25lRWxlbWVudDtpZigicHJvZHVjdGlvbiIhPT10 LmVudi5OT0RFX0VOVil7dmFyIGc9big3Nyk7aD1nLmNyZWF0ZUVsZW1lbnQs bT1nLmNyZWF0ZUZhY3Rvcnksdj1nLmNsb25lRWxlbWVudH12YXIgeT1vO2lm KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WKXt2YXIgRT0hMTt5PWZ1 bmN0aW9uKCl7cmV0dXJuInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYm JmYoRSwiUmVhY3QuX19zcHJlYWQgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxk IG5vdCBiZSB1c2VkLiBVc2UgT2JqZWN0LmFzc2lnbiBkaXJlY3RseSBvciBh bm90aGVyIGhlbHBlciBmdW5jdGlvbiB3aXRoIHNpbWlsYXIgc2VtYW50aWNz LiBZb3UgbWF5IGJlIHNlZWluZyB0aGlzIHdhcm5pbmcgZHVlIHRvIHlvdXIg Y29tcGlsZXIuIFNlZSBodHRwczovL2ZiLm1lL3JlYWN0LXNwcmVhZC1kZXBy ZWNhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLiIpLEU9ITAsby5hcHBseShudWxs LGFyZ3VtZW50cyl9fXZhciBfPXtDaGlsZHJlbjp7bWFwOnIubWFwLGZvckVh Y2g6ci5mb3JFYWNoLGNvdW50OnIuY291bnQsdG9BcnJheTpyLnRvQXJyYXks b25seTpkfSxDb21wb25lbnQ6aSxQdXJlQ29tcG9uZW50OmEsY3JlYXRlRWxl bWVudDpoLGNsb25lRWxlbWVudDp2LGlzVmFsaWRFbGVtZW50OmMuaXNWYWxp ZEVsZW1lbnQsUHJvcFR5cGVzOmwsY3JlYXRlQ2xhc3M6cy5jcmVhdGVDbGFz cyxjcmVhdGVGYWN0b3J5Om0sY3JlYXRlTWl4aW46ZnVuY3Rpb24oZSl7cmV0 dXJuIGV9LERPTTp1LHZlcnNpb246cCxfX3NwcmVhZDp5fTtlLmV4cG9ydHM9 X30pLmNhbGwodCxuKDApKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0 IjsoZnVuY3Rpb24odCl7dmFyIG49e307InByb2R1Y3Rpb24iIT09dC5lbnYu Tk9ERV9FTlYmJk9iamVjdC5mcmVlemUobiksZS5leHBvcnRzPW59KS5jYWxs KHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KGZ1bmN0 aW9uKHQpe2Z1bmN0aW9uIG8oZSl7cmV0dXJuImJ1dHRvbiI9PT1lfHwiaW5w dXQiPT09ZXx8InNlbGVjdCI9PT1lfHwidGV4dGFyZWEiPT09ZX1mdW5jdGlv biByKGUsdCxuKXtzd2l0Y2goZSl7Y2FzZSJvbkNsaWNrIjpjYXNlIm9uQ2xp Y2tDYXB0dXJlIjpjYXNlIm9uRG91YmxlQ2xpY2siOmNhc2Uib25Eb3VibGVD bGlja0NhcHR1cmUiOmNhc2Uib25Nb3VzZURvd24iOmNhc2Uib25Nb3VzZURv d25DYXB0dXJlIjpjYXNlIm9uTW91c2VNb3ZlIjpjYXNlIm9uTW91c2VNb3Zl Q2FwdHVyZSI6Y2FzZSJvbk1vdXNlVXAiOmNhc2Uib25Nb3VzZVVwQ2FwdHVy ZSI6cmV0dXJuISghbi5kaXNhYmxlZHx8IW8odCkpO2RlZmF1bHQ6cmV0dXJu ITF9fXZhciBpPW4oMyksYT1uKDI1KSxzPW4oMzQpLHU9bigzOCksYz1uKDY4 KSxsPW4oNjkpLHA9bigxKSxkPXt9LGY9bnVsbCxoPWZ1bmN0aW9uKGUsdCl7 ZSYmKHMuZXhlY3V0ZURpc3BhdGNoZXNJbk9yZGVyKGUsdCksZS5pc1BlcnNp c3RlbnQoKXx8ZS5jb25zdHJ1Y3Rvci5yZWxlYXNlKGUpKX0sbT1mdW5jdGlv bihlKXtyZXR1cm4gaChlLCEwKX0sdj1mdW5jdGlvbihlKXtyZXR1cm4gaChl LCExKX0sZz1mdW5jdGlvbihlKXtyZXR1cm4iLiIrZS5fcm9vdE5vZGVJRH0s eT17aW5qZWN0aW9uOntpbmplY3RFdmVudFBsdWdpbk9yZGVyOmEuaW5qZWN0 RXZlbnRQbHVnaW5PcmRlcixpbmplY3RFdmVudFBsdWdpbnNCeU5hbWU6YS5p bmplY3RFdmVudFBsdWdpbnNCeU5hbWV9LHB1dExpc3RlbmVyOmZ1bmN0aW9u KGUsbixvKXsiZnVuY3Rpb24iIT10eXBlb2YgbyYmKCJwcm9kdWN0aW9uIiE9 PXQuZW52Lk5PREVfRU5WP3AoITEsIkV4cGVjdGVkICVzIGxpc3RlbmVyIHRv IGJlIGEgZnVuY3Rpb24sIGluc3RlYWQgZ290IHR5cGUgJXMiLG4sdHlwZW9m IG8pOmkoIjk0IixuLHR5cGVvZiBvKSk7dmFyIHI9ZyhlKTsoZFtuXXx8KGRb bl09e30pKVtyXT1vO3ZhciBzPWEucmVnaXN0cmF0aW9uTmFtZU1vZHVsZXNb bl07cyYmcy5kaWRQdXRMaXN0ZW5lciYmcy5kaWRQdXRMaXN0ZW5lcihlLG4s byl9LGdldExpc3RlbmVyOmZ1bmN0aW9uKGUsdCl7dmFyIG49ZFt0XTtpZihy KHQsZS5fY3VycmVudEVsZW1lbnQudHlwZSxlLl9jdXJyZW50RWxlbWVudC5w cm9wcykpcmV0dXJuIG51bGw7dmFyIG89ZyhlKTtyZXR1cm4gbiYmbltvXX0s ZGVsZXRlTGlzdGVuZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj1hLnJlZ2lzdHJh dGlvbk5hbWVNb2R1bGVzW3RdO24mJm4ud2lsbERlbGV0ZUxpc3RlbmVyJiZu LndpbGxEZWxldGVMaXN0ZW5lcihlLHQpO3ZhciBvPWRbdF07aWYobyl7ZGVs ZXRlIG9bZyhlKV19fSxkZWxldGVBbGxMaXN0ZW5lcnM6ZnVuY3Rpb24oZSl7 dmFyIHQ9ZyhlKTtmb3IodmFyIG4gaW4gZClpZihkLmhhc093blByb3BlcnR5 KG4pJiZkW25dW3RdKXt2YXIgbz1hLnJlZ2lzdHJhdGlvbk5hbWVNb2R1bGVz W25dO28mJm8ud2lsbERlbGV0ZUxpc3RlbmVyJiZvLndpbGxEZWxldGVMaXN0 ZW5lcihlLG4pLGRlbGV0ZSBkW25dW3RdfX0sZXh0cmFjdEV2ZW50czpmdW5j dGlvbihlLHQsbixvKXtmb3IodmFyIHIsaT1hLnBsdWdpbnMscz0wO3M8aS5s ZW5ndGg7cysrKXt2YXIgdT1pW3NdO2lmKHUpe3ZhciBsPXUuZXh0cmFjdEV2 ZW50cyhlLHQsbixvKTtsJiYocj1jKHIsbCkpfX1yZXR1cm4gcn0sZW5xdWV1 ZUV2ZW50czpmdW5jdGlvbihlKXtlJiYoZj1jKGYsZSkpfSxwcm9jZXNzRXZl bnRRdWV1ZTpmdW5jdGlvbihlKXt2YXIgbj1mO2Y9bnVsbCxlP2wobixtKTps KG4sdiksZiYmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP3AoITEs InByb2Nlc3NFdmVudFF1ZXVlKCk6IEFkZGl0aW9uYWwgZXZlbnRzIHdlcmUg ZW5xdWV1ZWQgd2hpbGUgcHJvY2Vzc2luZyBhbiBldmVudCBxdWV1ZS4gU3Vw cG9ydCBmb3IgdGhpcyBoYXMgbm90IHlldCBiZWVuIGltcGxlbWVudGVkLiIp OmkoIjk1IikpLHUucmV0aHJvd0NhdWdodEVycm9yKCl9LF9fcHVyZ2U6ZnVu Y3Rpb24oKXtkPXt9fSxfX2dldExpc3RlbmVyQmFuazpmdW5jdGlvbigpe3Jl dHVybiBkfX07ZS5leHBvcnRzPXl9KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9u KGUsdCxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG8o ZSx0LG4pe3ZhciBvPXQuZGlzcGF0Y2hDb25maWcucGhhc2VkUmVnaXN0cmF0 aW9uTmFtZXNbbl07cmV0dXJuIHkoZSxvKX1mdW5jdGlvbiByKGUsbixyKXsi cHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmInByb2R1Y3Rpb24iIT09 dC5lbnYuTk9ERV9FTlYmJmcoZSwiRGlzcGF0Y2hpbmcgaW5zdCBtdXN0IG5v dCBiZSBudWxsIik7dmFyIGk9byhlLHIsbik7aSYmKHIuX2Rpc3BhdGNoTGlz dGVuZXJzPW0oci5fZGlzcGF0Y2hMaXN0ZW5lcnMsaSksci5fZGlzcGF0Y2hJ bnN0YW5jZXM9bShyLl9kaXNwYXRjaEluc3RhbmNlcyxlKSl9ZnVuY3Rpb24g aShlKXtlJiZlLmRpc3BhdGNoQ29uZmlnLnBoYXNlZFJlZ2lzdHJhdGlvbk5h bWVzJiZoLnRyYXZlcnNlVHdvUGhhc2UoZS5fdGFyZ2V0SW5zdCxyLGUpfWZ1 bmN0aW9uIGEoZSl7aWYoZSYmZS5kaXNwYXRjaENvbmZpZy5waGFzZWRSZWdp c3RyYXRpb25OYW1lcyl7dmFyIHQ9ZS5fdGFyZ2V0SW5zdCxuPXQ/aC5nZXRQ YXJlbnRJbnN0YW5jZSh0KTpudWxsO2gudHJhdmVyc2VUd29QaGFzZShuLHIs ZSl9fWZ1bmN0aW9uIHMoZSx0LG4pe2lmKG4mJm4uZGlzcGF0Y2hDb25maWcu cmVnaXN0cmF0aW9uTmFtZSl7dmFyIG89bi5kaXNwYXRjaENvbmZpZy5yZWdp c3RyYXRpb25OYW1lLHI9eShlLG8pO3ImJihuLl9kaXNwYXRjaExpc3RlbmVy cz1tKG4uX2Rpc3BhdGNoTGlzdGVuZXJzLHIpLG4uX2Rpc3BhdGNoSW5zdGFu Y2VzPW0obi5fZGlzcGF0Y2hJbnN0YW5jZXMsZSkpfX1mdW5jdGlvbiB1KGUp e2UmJmUuZGlzcGF0Y2hDb25maWcucmVnaXN0cmF0aW9uTmFtZSYmcyhlLl90 YXJnZXRJbnN0LG51bGwsZSl9ZnVuY3Rpb24gYyhlKXt2KGUsaSl9ZnVuY3Rp b24gbChlKXt2KGUsYSl9ZnVuY3Rpb24gcChlLHQsbixvKXtoLnRyYXZlcnNl RW50ZXJMZWF2ZShuLG8scyxlLHQpfWZ1bmN0aW9uIGQoZSl7dihlLHUpfXZh ciBmPW4oMjEpLGg9bigzNCksbT1uKDY4KSx2PW4oNjkpLGc9bigyKSx5PWYu Z2V0TGlzdGVuZXIsRT17YWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlczpj LGFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXNTa2lwVGFyZ2V0OmwsYWNj dW11bGF0ZURpcmVjdERpc3BhdGNoZXM6ZCxhY2N1bXVsYXRlRW50ZXJMZWF2 ZURpc3BhdGNoZXM6cH07ZS5leHBvcnRzPUV9KS5jYWxsKHQsbigwKSl9LGZ1 bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIG89e3JlbW92ZTpmdW5j dGlvbihlKXtlLl9yZWFjdEludGVybmFsSW5zdGFuY2U9dm9pZCAwfSxnZXQ6 ZnVuY3Rpb24oZSl7cmV0dXJuIGUuX3JlYWN0SW50ZXJuYWxJbnN0YW5jZX0s aGFzOmZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT1lLl9yZWFjdEludGVy bmFsSW5zdGFuY2V9LHNldDpmdW5jdGlvbihlLHQpe2UuX3JlYWN0SW50ZXJu YWxJbnN0YW5jZT10fX07ZS5leHBvcnRzPW99LGZ1bmN0aW9uKGUsdCxuKXsi dXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhlLHQsbixvKXtyZXR1cm4gci5jYWxs KHRoaXMsZSx0LG4sbyl9dmFyIHI9bigxMiksaT1uKDQzKSxhPXt2aWV3OmZ1 bmN0aW9uKGUpe2lmKGUudmlldylyZXR1cm4gZS52aWV3O3ZhciB0PWkoZSk7 aWYodC53aW5kb3c9PT10KXJldHVybiB0O3ZhciBuPXQub3duZXJEb2N1bWVu dDtyZXR1cm4gbj9uLmRlZmF1bHRWaWV3fHxuLnBhcmVudFdpbmRvdzp3aW5k b3d9LGRldGFpbDpmdW5jdGlvbihlKXtyZXR1cm4gZS5kZXRhaWx8fDB9fTty LmF1Z21lbnRDbGFzcyhvLGEpLGUuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQs bil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtmdW5jdGlvbiBvKCl7aWYo dSlmb3IodmFyIGUgaW4gYyl7dmFyIG49Y1tlXSxvPXUuaW5kZXhPZihlKTtp ZihvPi0xfHwoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/cyghMSwi RXZlbnRQbHVnaW5SZWdpc3RyeTogQ2Fubm90IGluamVjdCBldmVudCBwbHVn aW5zIHRoYXQgZG8gbm90IGV4aXN0IGluIHRoZSBwbHVnaW4gb3JkZXJpbmcs IGAlc2AuIixlKTphKCI5NiIsZSkpLCFsLnBsdWdpbnNbb10pe24uZXh0cmFj dEV2ZW50c3x8KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP3MoITEs IkV2ZW50UGx1Z2luUmVnaXN0cnk6IEV2ZW50IHBsdWdpbnMgbXVzdCBpbXBs ZW1lbnQgYW4gYGV4dHJhY3RFdmVudHNgIG1ldGhvZCwgYnV0IGAlc2AgZG9l cyBub3QuIixlKTphKCI5NyIsZSkpLGwucGx1Z2luc1tvXT1uO3ZhciBpPW4u ZXZlbnRUeXBlcztmb3IodmFyIHAgaW4gaSlyKGlbcF0sbixwKXx8KCJwcm9k dWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP3MoITEsIkV2ZW50UGx1Z2luUmVn aXN0cnk6IEZhaWxlZCB0byBwdWJsaXNoIGV2ZW50IGAlc2AgZm9yIHBsdWdp biBgJXNgLiIscCxlKTphKCI5OCIscCxlKSl9fX1mdW5jdGlvbiByKGUsbixv KXtsLmV2ZW50TmFtZURpc3BhdGNoQ29uZmlncy5oYXNPd25Qcm9wZXJ0eShv KSYmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP3MoITEsIkV2ZW50 UGx1Z2luSHViOiBNb3JlIHRoYW4gb25lIHBsdWdpbiBhdHRlbXB0ZWQgdG8g cHVibGlzaCB0aGUgc2FtZSBldmVudCBuYW1lLCBgJXNgLiIsbyk6YSgiOTki LG8pKSxsLmV2ZW50TmFtZURpc3BhdGNoQ29uZmlnc1tvXT1lO3ZhciByPWUu cGhhc2VkUmVnaXN0cmF0aW9uTmFtZXM7aWYocil7Zm9yKHZhciB1IGluIHIp aWYoci5oYXNPd25Qcm9wZXJ0eSh1KSl7dmFyIGM9clt1XTtpKGMsbixvKX1y ZXR1cm4hMH1yZXR1cm4hIWUucmVnaXN0cmF0aW9uTmFtZSYmKGkoZS5yZWdp c3RyYXRpb25OYW1lLG4sbyksITApfWZ1bmN0aW9uIGkoZSxuLG8pe2lmKGwu cmVnaXN0cmF0aW9uTmFtZU1vZHVsZXNbZV0mJigicHJvZHVjdGlvbiIhPT10 LmVudi5OT0RFX0VOVj9zKCExLCJFdmVudFBsdWdpbkh1YjogTW9yZSB0aGFu IG9uZSBwbHVnaW4gYXR0ZW1wdGVkIHRvIHB1Ymxpc2ggdGhlIHNhbWUgcmVn aXN0cmF0aW9uIG5hbWUsIGAlc2AuIixlKTphKCIxMDAiLGUpKSxsLnJlZ2lz dHJhdGlvbk5hbWVNb2R1bGVzW2VdPW4sbC5yZWdpc3RyYXRpb25OYW1lRGVw ZW5kZW5jaWVzW2VdPW4uZXZlbnRUeXBlc1tvXS5kZXBlbmRlbmNpZXMsInBy b2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYpe3ZhciByPWUudG9Mb3dlckNh c2UoKTtsLnBvc3NpYmxlUmVnaXN0cmF0aW9uTmFtZXNbcl09ZSwib25Eb3Vi bGVDbGljayI9PT1lJiYobC5wb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzLm9u ZGJsY2xpY2s9ZSl9fXZhciBhPW4oMykscz1uKDEpLHU9bnVsbCxjPXt9LGw9 e3BsdWdpbnM6W10sZXZlbnROYW1lRGlzcGF0Y2hDb25maWdzOnt9LHJlZ2lz dHJhdGlvbk5hbWVNb2R1bGVzOnt9LHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRl bmNpZXM6e30scG9zc2libGVSZWdpc3RyYXRpb25OYW1lczoicHJvZHVjdGlv biIhPT10LmVudi5OT0RFX0VOVj97fTpudWxsLGluamVjdEV2ZW50UGx1Z2lu T3JkZXI6ZnVuY3Rpb24oZSl7dSYmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5P REVfRU5WP3MoITEsIkV2ZW50UGx1Z2luUmVnaXN0cnk6IENhbm5vdCBpbmpl Y3QgZXZlbnQgcGx1Z2luIG9yZGVyaW5nIG1vcmUgdGhhbiBvbmNlLiBZb3Ug YXJlIGxpa2VseSB0cnlpbmcgdG8gbG9hZCBtb3JlIHRoYW4gb25lIGNvcHkg b2YgUmVhY3QuIik6YSgiMTAxIikpLHU9QXJyYXkucHJvdG90eXBlLnNsaWNl LmNhbGwoZSksbygpfSxpbmplY3RFdmVudFBsdWdpbnNCeU5hbWU6ZnVuY3Rp b24oZSl7dmFyIG49ITE7Zm9yKHZhciByIGluIGUpaWYoZS5oYXNPd25Qcm9w ZXJ0eShyKSl7dmFyIGk9ZVtyXTtjLmhhc093blByb3BlcnR5KHIpJiZjW3Jd PT09aXx8KGNbcl0mJigicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9z KCExLCJFdmVudFBsdWdpblJlZ2lzdHJ5OiBDYW5ub3QgaW5qZWN0IHR3byBk aWZmZXJlbnQgZXZlbnQgcGx1Z2lucyB1c2luZyB0aGUgc2FtZSBuYW1lLCBg JXNgLiIscik6YSgiMTAyIixyKSksY1tyXT1pLG49ITApfW4mJm8oKX0sZ2V0 UGx1Z2luTW9kdWxlRm9yRXZlbnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kaXNw YXRjaENvbmZpZztpZih0LnJlZ2lzdHJhdGlvbk5hbWUpcmV0dXJuIGwucmVn aXN0cmF0aW9uTmFtZU1vZHVsZXNbdC5yZWdpc3RyYXRpb25OYW1lXXx8bnVs bDtpZih2b2lkIDAhPT10LnBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzKXt2YXIg bj10LnBoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzO2Zvcih2YXIgbyBpbiBuKWlm KG4uaGFzT3duUHJvcGVydHkobykpe3ZhciByPWwucmVnaXN0cmF0aW9uTmFt ZU1vZHVsZXNbbltvXV07aWYocilyZXR1cm4gcn19cmV0dXJuIG51bGx9LF9y ZXNldEV2ZW50UGx1Z2luczpmdW5jdGlvbigpe3U9bnVsbDtmb3IodmFyIGUg aW4gYyljLmhhc093blByb3BlcnR5KGUpJiZkZWxldGUgY1tlXTtsLnBsdWdp bnMubGVuZ3RoPTA7dmFyIG49bC5ldmVudE5hbWVEaXNwYXRjaENvbmZpZ3M7 Zm9yKHZhciBvIGluIG4pbi5oYXNPd25Qcm9wZXJ0eShvKSYmZGVsZXRlIG5b b107dmFyIHI9bC5yZWdpc3RyYXRpb25OYW1lTW9kdWxlcztmb3IodmFyIGkg aW4gcilyLmhhc093blByb3BlcnR5KGkpJiZkZWxldGUgcltpXTtpZigicHJv ZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVil7dmFyIGE9bC5wb3NzaWJsZVJl Z2lzdHJhdGlvbk5hbWVzO2Zvcih2YXIgcyBpbiBhKWEuaGFzT3duUHJvcGVy dHkocykmJmRlbGV0ZSBhW3NdfX19O2UuZXhwb3J0cz1sfSkuY2FsbCh0LG4o MCkpfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8o ZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2Fs bChlLG0pfHwoZVttXT1mKysscFtlW21dXT17fSkscFtlW21dXX12YXIgcixp PW4oNCksYT1uKDI1KSxzPW4oMTI4KSx1PW4oNjcpLGM9bigxNjQpLGw9big0 NCkscD17fSxkPSExLGY9MCxoPXt0b3BBYm9ydDoiYWJvcnQiLHRvcEFuaW1h dGlvbkVuZDpjKCJhbmltYXRpb25lbmQiKXx8ImFuaW1hdGlvbmVuZCIsdG9w QW5pbWF0aW9uSXRlcmF0aW9uOmMoImFuaW1hdGlvbml0ZXJhdGlvbiIpfHwi YW5pbWF0aW9uaXRlcmF0aW9uIix0b3BBbmltYXRpb25TdGFydDpjKCJhbmlt YXRpb25zdGFydCIpfHwiYW5pbWF0aW9uc3RhcnQiLHRvcEJsdXI6ImJsdXIi LHRvcENhblBsYXk6ImNhbnBsYXkiLHRvcENhblBsYXlUaHJvdWdoOiJjYW5w bGF5dGhyb3VnaCIsdG9wQ2hhbmdlOiJjaGFuZ2UiLHRvcENsaWNrOiJjbGlj ayIsdG9wQ29tcG9zaXRpb25FbmQ6ImNvbXBvc2l0aW9uZW5kIix0b3BDb21w b3NpdGlvblN0YXJ0OiJjb21wb3NpdGlvbnN0YXJ0Iix0b3BDb21wb3NpdGlv blVwZGF0ZToiY29tcG9zaXRpb251cGRhdGUiLHRvcENvbnRleHRNZW51OiJj b250ZXh0bWVudSIsdG9wQ29weToiY29weSIsdG9wQ3V0OiJjdXQiLHRvcERv dWJsZUNsaWNrOiJkYmxjbGljayIsdG9wRHJhZzoiZHJhZyIsdG9wRHJhZ0Vu ZDoiZHJhZ2VuZCIsdG9wRHJhZ0VudGVyOiJkcmFnZW50ZXIiLHRvcERyYWdF eGl0OiJkcmFnZXhpdCIsdG9wRHJhZ0xlYXZlOiJkcmFnbGVhdmUiLHRvcERy YWdPdmVyOiJkcmFnb3ZlciIsdG9wRHJhZ1N0YXJ0OiJkcmFnc3RhcnQiLHRv cERyb3A6ImRyb3AiLHRvcER1cmF0aW9uQ2hhbmdlOiJkdXJhdGlvbmNoYW5n ZSIsdG9wRW1wdGllZDoiZW1wdGllZCIsdG9wRW5jcnlwdGVkOiJlbmNyeXB0 ZWQiLHRvcEVuZGVkOiJlbmRlZCIsdG9wRXJyb3I6ImVycm9yIix0b3BGb2N1 czoiZm9jdXMiLHRvcElucHV0OiJpbnB1dCIsdG9wS2V5RG93bjoia2V5ZG93 biIsdG9wS2V5UHJlc3M6ImtleXByZXNzIix0b3BLZXlVcDoia2V5dXAiLHRv cExvYWRlZERhdGE6ImxvYWRlZGRhdGEiLHRvcExvYWRlZE1ldGFkYXRhOiJs b2FkZWRtZXRhZGF0YSIsdG9wTG9hZFN0YXJ0OiJsb2Fkc3RhcnQiLHRvcE1v dXNlRG93bjoibW91c2Vkb3duIix0b3BNb3VzZU1vdmU6Im1vdXNlbW92ZSIs dG9wTW91c2VPdXQ6Im1vdXNlb3V0Iix0b3BNb3VzZU92ZXI6Im1vdXNlb3Zl ciIsdG9wTW91c2VVcDoibW91c2V1cCIsdG9wUGFzdGU6InBhc3RlIix0b3BQ YXVzZToicGF1c2UiLHRvcFBsYXk6InBsYXkiLHRvcFBsYXlpbmc6InBsYXlp bmciLHRvcFByb2dyZXNzOiJwcm9ncmVzcyIsdG9wUmF0ZUNoYW5nZToicmF0 ZWNoYW5nZSIsdG9wU2Nyb2xsOiJzY3JvbGwiLHRvcFNlZWtlZDoic2Vla2Vk Iix0b3BTZWVraW5nOiJzZWVraW5nIix0b3BTZWxlY3Rpb25DaGFuZ2U6InNl bGVjdGlvbmNoYW5nZSIsdG9wU3RhbGxlZDoic3RhbGxlZCIsdG9wU3VzcGVu ZDoic3VzcGVuZCIsdG9wVGV4dElucHV0OiJ0ZXh0SW5wdXQiLHRvcFRpbWVV cGRhdGU6InRpbWV1cGRhdGUiLHRvcFRvdWNoQ2FuY2VsOiJ0b3VjaGNhbmNl bCIsdG9wVG91Y2hFbmQ6InRvdWNoZW5kIix0b3BUb3VjaE1vdmU6InRvdWNo bW92ZSIsdG9wVG91Y2hTdGFydDoidG91Y2hzdGFydCIsdG9wVHJhbnNpdGlv bkVuZDpjKCJ0cmFuc2l0aW9uZW5kIil8fCJ0cmFuc2l0aW9uZW5kIix0b3BW b2x1bWVDaGFuZ2U6InZvbHVtZWNoYW5nZSIsdG9wV2FpdGluZzoid2FpdGlu ZyIsdG9wV2hlZWw6IndoZWVsIn0sbT0iX3JlYWN0TGlzdGVuZXJzSUQiK1N0 cmluZyhNYXRoLnJhbmRvbSgpKS5zbGljZSgyKSx2PWkoe30scyx7UmVhY3RF dmVudExpc3RlbmVyOm51bGwsaW5qZWN0aW9uOntpbmplY3RSZWFjdEV2ZW50 TGlzdGVuZXI6ZnVuY3Rpb24oZSl7ZS5zZXRIYW5kbGVUb3BMZXZlbCh2Lmhh bmRsZVRvcExldmVsKSx2LlJlYWN0RXZlbnRMaXN0ZW5lcj1lfX0sc2V0RW5h YmxlZDpmdW5jdGlvbihlKXt2LlJlYWN0RXZlbnRMaXN0ZW5lciYmdi5SZWFj dEV2ZW50TGlzdGVuZXIuc2V0RW5hYmxlZChlKX0saXNFbmFibGVkOmZ1bmN0 aW9uKCl7cmV0dXJuISghdi5SZWFjdEV2ZW50TGlzdGVuZXJ8fCF2LlJlYWN0 RXZlbnRMaXN0ZW5lci5pc0VuYWJsZWQoKSl9LGxpc3RlblRvOmZ1bmN0aW9u KGUsdCl7Zm9yKHZhciBuPXQscj1vKG4pLGk9YS5yZWdpc3RyYXRpb25OYW1l RGVwZW5kZW5jaWVzW2VdLHM9MDtzPGkubGVuZ3RoO3MrKyl7dmFyIHU9aVtz XTtyLmhhc093blByb3BlcnR5KHUpJiZyW3VdfHwoInRvcFdoZWVsIj09PXU/ bCgid2hlZWwiKT92LlJlYWN0RXZlbnRMaXN0ZW5lci50cmFwQnViYmxlZEV2 ZW50KCJ0b3BXaGVlbCIsIndoZWVsIixuKTpsKCJtb3VzZXdoZWVsIik/di5S ZWFjdEV2ZW50TGlzdGVuZXIudHJhcEJ1YmJsZWRFdmVudCgidG9wV2hlZWwi LCJtb3VzZXdoZWVsIixuKTp2LlJlYWN0RXZlbnRMaXN0ZW5lci50cmFwQnVi YmxlZEV2ZW50KCJ0b3BXaGVlbCIsIkRPTU1vdXNlU2Nyb2xsIixuKToidG9w U2Nyb2xsIj09PXU/bCgic2Nyb2xsIiwhMCk/di5SZWFjdEV2ZW50TGlzdGVu ZXIudHJhcENhcHR1cmVkRXZlbnQoInRvcFNjcm9sbCIsInNjcm9sbCIsbik6 di5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcEJ1YmJsZWRFdmVudCgidG9wU2Ny b2xsIiwic2Nyb2xsIix2LlJlYWN0RXZlbnRMaXN0ZW5lci5XSU5ET1dfSEFO RExFKToidG9wRm9jdXMiPT09dXx8InRvcEJsdXIiPT09dT8obCgiZm9jdXMi LCEwKT8odi5SZWFjdEV2ZW50TGlzdGVuZXIudHJhcENhcHR1cmVkRXZlbnQo InRvcEZvY3VzIiwiZm9jdXMiLG4pLHYuUmVhY3RFdmVudExpc3RlbmVyLnRy YXBDYXB0dXJlZEV2ZW50KCJ0b3BCbHVyIiwiYmx1ciIsbikpOmwoImZvY3Vz aW4iKSYmKHYuUmVhY3RFdmVudExpc3RlbmVyLnRyYXBCdWJibGVkRXZlbnQo InRvcEZvY3VzIiwiZm9jdXNpbiIsbiksdi5SZWFjdEV2ZW50TGlzdGVuZXIu dHJhcEJ1YmJsZWRFdmVudCgidG9wQmx1ciIsImZvY3Vzb3V0IixuKSksci50 b3BCbHVyPSEwLHIudG9wRm9jdXM9ITApOmguaGFzT3duUHJvcGVydHkodSkm JnYuUmVhY3RFdmVudExpc3RlbmVyLnRyYXBCdWJibGVkRXZlbnQodSxoW3Vd LG4pLHJbdV09ITApfX0sdHJhcEJ1YmJsZWRFdmVudDpmdW5jdGlvbihlLHQs bil7cmV0dXJuIHYuUmVhY3RFdmVudExpc3RlbmVyLnRyYXBCdWJibGVkRXZl bnQoZSx0LG4pfSx0cmFwQ2FwdHVyZWRFdmVudDpmdW5jdGlvbihlLHQsbil7 cmV0dXJuIHYuUmVhY3RFdmVudExpc3RlbmVyLnRyYXBDYXB0dXJlZEV2ZW50 KGUsdCxuKX0sc3VwcG9ydHNFdmVudFBhZ2VYWTpmdW5jdGlvbigpe2lmKCFk b2N1bWVudC5jcmVhdGVFdmVudClyZXR1cm4hMTt2YXIgZT1kb2N1bWVudC5j cmVhdGVFdmVudCgiTW91c2VFdmVudCIpO3JldHVybiBudWxsIT1lJiYicGFn ZVgiaW4gZX0sZW5zdXJlU2Nyb2xsVmFsdWVNb25pdG9yaW5nOmZ1bmN0aW9u KCl7aWYodm9pZCAwPT09ciYmKHI9di5zdXBwb3J0c0V2ZW50UGFnZVhZKCkp LCFyJiYhZCl7dmFyIGU9dS5yZWZyZXNoU2Nyb2xsVmFsdWVzO3YuUmVhY3RF dmVudExpc3RlbmVyLm1vbml0b3JTY3JvbGxWYWx1ZShlKSxkPSEwfX19KTtl LmV4cG9ydHM9dn0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5j dGlvbiBvKGUsdCxuLG8pe3JldHVybiByLmNhbGwodGhpcyxlLHQsbixvKX12 YXIgcj1uKDI0KSxpPW4oNjcpLGE9big0Mikscz17c2NyZWVuWDpudWxsLHNj cmVlblk6bnVsbCxjbGllbnRYOm51bGwsY2xpZW50WTpudWxsLGN0cmxLZXk6 bnVsbCxzaGlmdEtleTpudWxsLGFsdEtleTpudWxsLG1ldGFLZXk6bnVsbCxn ZXRNb2RpZmllclN0YXRlOmEsYnV0dG9uOmZ1bmN0aW9uKGUpe3ZhciB0PWUu YnV0dG9uO3JldHVybiJ3aGljaCJpbiBlP3Q6Mj09PXQ/Mjo0PT09dD8xOjB9 LGJ1dHRvbnM6bnVsbCxyZWxhdGVkVGFyZ2V0OmZ1bmN0aW9uKGUpe3JldHVy biBlLnJlbGF0ZWRUYXJnZXR8fChlLmZyb21FbGVtZW50PT09ZS5zcmNFbGVt ZW50P2UudG9FbGVtZW50OmUuZnJvbUVsZW1lbnQpfSxwYWdlWDpmdW5jdGlv bihlKXtyZXR1cm4icGFnZVgiaW4gZT9lLnBhZ2VYOmUuY2xpZW50WCtpLmN1 cnJlbnRTY3JvbGxMZWZ0fSxwYWdlWTpmdW5jdGlvbihlKXtyZXR1cm4icGFn ZVkiaW4gZT9lLnBhZ2VZOmUuY2xpZW50WStpLmN1cnJlbnRTY3JvbGxUb3B9 fTtyLmF1Z21lbnRDbGFzcyhvLHMpLGUuZXhwb3J0cz1vfSxmdW5jdGlvbihl LHQsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXt2YXIgbz1uKDMpLHI9 bigxKSxpPXt9LGE9e3JlaW5pdGlhbGl6ZVRyYW5zYWN0aW9uOmZ1bmN0aW9u KCl7dGhpcy50cmFuc2FjdGlvbldyYXBwZXJzPXRoaXMuZ2V0VHJhbnNhY3Rp b25XcmFwcGVycygpLHRoaXMud3JhcHBlckluaXREYXRhP3RoaXMud3JhcHBl ckluaXREYXRhLmxlbmd0aD0wOnRoaXMud3JhcHBlckluaXREYXRhPVtdLHRo aXMuX2lzSW5UcmFuc2FjdGlvbj0hMX0sX2lzSW5UcmFuc2FjdGlvbjohMSxn ZXRUcmFuc2FjdGlvbldyYXBwZXJzOm51bGwsaXNJblRyYW5zYWN0aW9uOmZ1 bmN0aW9uKCl7cmV0dXJuISF0aGlzLl9pc0luVHJhbnNhY3Rpb259LHBlcmZv cm06ZnVuY3Rpb24oZSxuLGksYSxzLHUsYyxsKXt0aGlzLmlzSW5UcmFuc2Fj dGlvbigpJiYoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/cighMSwi VHJhbnNhY3Rpb24ucGVyZm9ybSguLi4pOiBDYW5ub3QgaW5pdGlhbGl6ZSBh IHRyYW5zYWN0aW9uIHdoZW4gdGhlcmUgaXMgYWxyZWFkeSBhbiBvdXRzdGFu ZGluZyB0cmFuc2FjdGlvbi4iKTpvKCIyNyIpKTt2YXIgcCxkO3RyeXt0aGlz Ll9pc0luVHJhbnNhY3Rpb249ITAscD0hMCx0aGlzLmluaXRpYWxpemVBbGwo MCksZD1lLmNhbGwobixpLGEscyx1LGMsbCkscD0hMX1maW5hbGx5e3RyeXtp ZihwKXRyeXt0aGlzLmNsb3NlQWxsKDApfWNhdGNoKGUpe31lbHNlIHRoaXMu Y2xvc2VBbGwoMCl9ZmluYWxseXt0aGlzLl9pc0luVHJhbnNhY3Rpb249ITF9 fXJldHVybiBkfSxpbml0aWFsaXplQWxsOmZ1bmN0aW9uKGUpe2Zvcih2YXIg dD10aGlzLnRyYW5zYWN0aW9uV3JhcHBlcnMsbj1lO248dC5sZW5ndGg7bisr KXt2YXIgbz10W25dO3RyeXt0aGlzLndyYXBwZXJJbml0RGF0YVtuXT1pLHRo aXMud3JhcHBlckluaXREYXRhW25dPW8uaW5pdGlhbGl6ZT9vLmluaXRpYWxp emUuY2FsbCh0aGlzKTpudWxsfWZpbmFsbHl7aWYodGhpcy53cmFwcGVySW5p dERhdGFbbl09PT1pKXRyeXt0aGlzLmluaXRpYWxpemVBbGwobisxKX1jYXRj aChlKXt9fX19LGNsb3NlQWxsOmZ1bmN0aW9uKGUpe3RoaXMuaXNJblRyYW5z YWN0aW9uKCl8fCgicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9yKCEx LCJUcmFuc2FjdGlvbi5jbG9zZUFsbCgpOiBDYW5ub3QgY2xvc2UgdHJhbnNh Y3Rpb24gd2hlbiBub25lIGFyZSBvcGVuLiIpOm8oIjI4IikpO2Zvcih2YXIg bj10aGlzLnRyYW5zYWN0aW9uV3JhcHBlcnMsYT1lO2E8bi5sZW5ndGg7YSsr KXt2YXIgcyx1PW5bYV0sYz10aGlzLndyYXBwZXJJbml0RGF0YVthXTt0cnl7 cz0hMCxjIT09aSYmdS5jbG9zZSYmdS5jbG9zZS5jYWxsKHRoaXMsYykscz0h MX1maW5hbGx5e2lmKHMpdHJ5e3RoaXMuY2xvc2VBbGwoYSsxKX1jYXRjaChl KXt9fX10aGlzLndyYXBwZXJJbml0RGF0YS5sZW5ndGg9MH19O2UuZXhwb3J0 cz1hfSkuY2FsbCh0LG4oMCkpfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJp Y3QiO2Z1bmN0aW9uIG8oZSl7dmFyIHQ9IiIrZSxuPWkuZXhlYyh0KTtpZigh bilyZXR1cm4gdDt2YXIgbyxyPSIiLGE9MCxzPTA7Zm9yKGE9bi5pbmRleDth PHQubGVuZ3RoO2ErKyl7c3dpdGNoKHQuY2hhckNvZGVBdChhKSl7Y2FzZSAz NDpvPSImcXVvdDsiO2JyZWFrO2Nhc2UgMzg6bz0iJmFtcDsiO2JyZWFrO2Nh c2UgMzk6bz0iJiN4Mjc7IjticmVhaztjYXNlIDYwOm89IiZsdDsiO2JyZWFr O2Nhc2UgNjI6bz0iJmd0OyI7YnJlYWs7ZGVmYXVsdDpjb250aW51ZX1zIT09 YSYmKHIrPXQuc3Vic3RyaW5nKHMsYSkpLHM9YSsxLHIrPW99cmV0dXJuIHMh PT1hP3IrdC5zdWJzdHJpbmcocyxhKTpyfWZ1bmN0aW9uIHIoZSl7cmV0dXJu ImJvb2xlYW4iPT10eXBlb2YgZXx8Im51bWJlciI9PXR5cGVvZiBlPyIiK2U6 byhlKX12YXIgaT0vWyInJjw+XS87ZS5leHBvcnRzPXJ9LGZ1bmN0aW9uKGUs dCxuKXsidXNlIHN0cmljdCI7dmFyIG8scj1uKDYpLGk9bigzMyksYT0vXlsg XHJcblx0XGZdLyxzPS88KCEtLXxsaW5rfG5vc2NyaXB0fG1ldGF8c2NyaXB0 fHN0eWxlKVsgXHJcblx0XGZcLz5dLyx1PW4oNDApLGM9dShmdW5jdGlvbihl LHQpe2lmKGUubmFtZXNwYWNlVVJJIT09aS5zdmd8fCJpbm5lckhUTUwiaW4g ZSllLmlubmVySFRNTD10O2Vsc2V7bz1vfHxkb2N1bWVudC5jcmVhdGVFbGVt ZW50KCJkaXYiKSxvLmlubmVySFRNTD0iPHN2Zz4iK3QrIjwvc3ZnPiI7Zm9y KHZhciBuPW8uZmlyc3RDaGlsZDtuLmZpcnN0Q2hpbGQ7KWUuYXBwZW5kQ2hp bGQobi5maXJzdENoaWxkKX19KTtpZihyLmNhblVzZURPTSl7dmFyIGw9ZG9j dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5pbm5lckhUTUw9IiAiLCIi PT09bC5pbm5lckhUTUwmJihjPWZ1bmN0aW9uKGUsdCl7aWYoZS5wYXJlbnRO b2RlJiZlLnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGUsZSksYS50ZXN0KHQp fHwiPCI9PT10WzBdJiZzLnRlc3QodCkpe2UuaW5uZXJIVE1MPVN0cmluZy5m cm9tQ2hhckNvZGUoNjUyNzkpK3Q7dmFyIG49ZS5maXJzdENoaWxkOzE9PT1u LmRhdGEubGVuZ3RoP2UucmVtb3ZlQ2hpbGQobik6bi5kZWxldGVEYXRhKDAs MSl9ZWxzZSBlLmlubmVySFRNTD10fSksbD1udWxsfWUuZXhwb3J0cz1jfSxm dW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSx0KXty ZXR1cm4gZT09PXQ/MCE9PWV8fDAhPT10fHwxL2U9PTEvdDplIT09ZSYmdCE9 PXR9ZnVuY3Rpb24gcihlLHQpe2lmKG8oZSx0KSlyZXR1cm4hMDtpZigib2Jq ZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lfHwib2JqZWN0IiE9dHlwZW9mIHR8 fG51bGw9PT10KXJldHVybiExO3ZhciBuPU9iamVjdC5rZXlzKGUpLHI9T2Jq ZWN0LmtleXModCk7aWYobi5sZW5ndGghPT1yLmxlbmd0aClyZXR1cm4hMTtm b3IodmFyIGE9MDthPG4ubGVuZ3RoO2ErKylpZighaS5jYWxsKHQsblthXSl8 fCFvKGVbblthXV0sdFtuW2FdXSkpcmV0dXJuITE7cmV0dXJuITB9dmFyIGk9 T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtlLmV4cG9ydHM9cn0s ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7ZnVu Y3Rpb24gbyhlLHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiYodD10WzFd KSx0P3QubmV4dFNpYmxpbmc6ZS5maXJzdENoaWxkfWZ1bmN0aW9uIHIoZSx0 LG4pe2wuaW5zZXJ0VHJlZUJlZm9yZShlLHQsbil9ZnVuY3Rpb24gaShlLHQs bil7QXJyYXkuaXNBcnJheSh0KT9zKGUsdFswXSx0WzFdLG4pOmcoZSx0LG4p fWZ1bmN0aW9uIGEoZSx0KXtpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgbj10 WzFdO3Q9dFswXSx1KGUsdCxuKSxlLnJlbW92ZUNoaWxkKG4pfWUucmVtb3Zl Q2hpbGQodCl9ZnVuY3Rpb24gcyhlLHQsbixvKXtmb3IodmFyIHI9dDs7KXt2 YXIgaT1yLm5leHRTaWJsaW5nO2lmKGcoZSxyLG8pLHI9PT1uKWJyZWFrO3I9 aX19ZnVuY3Rpb24gdShlLHQsbil7Zm9yKDs7KXt2YXIgbz10Lm5leHRTaWJs aW5nO2lmKG89PT1uKWJyZWFrO2UucmVtb3ZlQ2hpbGQobyl9fWZ1bmN0aW9u IGMoZSxuLG8pe3ZhciByPWUucGFyZW50Tm9kZSxpPWUubmV4dFNpYmxpbmc7 aT09PW4/byYmZyhyLGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG8pLGkpOm8/ KHYoaSxvKSx1KHIsaSxuKSk6dShyLGUsbiksInByb2R1Y3Rpb24iIT09dC5l bnYuTk9ERV9FTlYmJmYuZGVidWdUb29sLm9uSG9zdE9wZXJhdGlvbih7aW5z dGFuY2VJRDpkLmdldEluc3RhbmNlRnJvbU5vZGUoZSkuX2RlYnVnSUQsdHlw ZToicmVwbGFjZSB0ZXh0IixwYXlsb2FkOm99KX12YXIgbD1uKDE3KSxwPW4o MTAxKSxkPW4oNSksZj1uKDgpLGg9big0MCksbT1uKDMwKSx2PW4oNzQpLGc9 aChmdW5jdGlvbihlLHQsbil7ZS5pbnNlcnRCZWZvcmUodCxuKX0pLHk9cC5k YW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1hcmt1cDsicHJvZHVjdGlvbiIh PT10LmVudi5OT0RFX0VOViYmKHk9ZnVuY3Rpb24oZSx0LG4pe2lmKHAuZGFu Z2Vyb3VzbHlSZXBsYWNlTm9kZVdpdGhNYXJrdXAoZSx0KSwwIT09bi5fZGVi dWdJRClmLmRlYnVnVG9vbC5vbkhvc3RPcGVyYXRpb24oe2luc3RhbmNlSUQ6 bi5fZGVidWdJRCx0eXBlOiJyZXBsYWNlIHdpdGgiLHBheWxvYWQ6dC50b1N0 cmluZygpfSk7ZWxzZXt2YXIgbz1kLmdldEluc3RhbmNlRnJvbU5vZGUodC5u b2RlKTswIT09by5fZGVidWdJRCYmZi5kZWJ1Z1Rvb2wub25Ib3N0T3BlcmF0 aW9uKHtpbnN0YW5jZUlEOm8uX2RlYnVnSUQsdHlwZToibW91bnQiLHBheWxv YWQ6dC50b1N0cmluZygpfSl9fSk7dmFyIEU9e2Rhbmdlcm91c2x5UmVwbGFj ZU5vZGVXaXRoTWFya3VwOnkscmVwbGFjZURlbGltaXRlZFRleHQ6Yyxwcm9j ZXNzVXBkYXRlczpmdW5jdGlvbihlLG4pe2lmKCJwcm9kdWN0aW9uIiE9PXQu ZW52Lk5PREVfRU5WKXZhciBzPWQuZ2V0SW5zdGFuY2VGcm9tTm9kZShlKS5f ZGVidWdJRDtmb3IodmFyIHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIGM9blt1 XTtzd2l0Y2goYy50eXBlKXtjYXNlIklOU0VSVF9NQVJLVVAiOnIoZSxjLmNv bnRlbnQsbyhlLGMuYWZ0ZXJOb2RlKSksInByb2R1Y3Rpb24iIT09dC5lbnYu Tk9ERV9FTlYmJmYuZGVidWdUb29sLm9uSG9zdE9wZXJhdGlvbih7aW5zdGFu Y2VJRDpzLHR5cGU6Imluc2VydCBjaGlsZCIscGF5bG9hZDp7dG9JbmRleDpj LnRvSW5kZXgsY29udGVudDpjLmNvbnRlbnQudG9TdHJpbmcoKX19KTticmVh aztjYXNlIk1PVkVfRVhJU1RJTkciOmkoZSxjLmZyb21Ob2RlLG8oZSxjLmFm dGVyTm9kZSkpLCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZmLmRl YnVnVG9vbC5vbkhvc3RPcGVyYXRpb24oe2luc3RhbmNlSUQ6cyx0eXBlOiJt b3ZlIGNoaWxkIixwYXlsb2FkOntmcm9tSW5kZXg6Yy5mcm9tSW5kZXgsdG9J bmRleDpjLnRvSW5kZXh9fSk7YnJlYWs7Y2FzZSJTRVRfTUFSS1VQIjptKGUs Yy5jb250ZW50KSwicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmZi5k ZWJ1Z1Rvb2wub25Ib3N0T3BlcmF0aW9uKHtpbnN0YW5jZUlEOnMsdHlwZToi cmVwbGFjZSBjaGlsZHJlbiIscGF5bG9hZDpjLmNvbnRlbnQudG9TdHJpbmco KX0pO2JyZWFrO2Nhc2UiVEVYVF9DT05URU5UIjp2KGUsYy5jb250ZW50KSwi cHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmZi5kZWJ1Z1Rvb2wub25I b3N0T3BlcmF0aW9uKHtpbnN0YW5jZUlEOnMsdHlwZToicmVwbGFjZSB0ZXh0 IixwYXlsb2FkOmMuY29udGVudC50b1N0cmluZygpfSk7YnJlYWs7Y2FzZSJS RU1PVkVfTk9ERSI6YShlLGMuZnJvbU5vZGUpLCJwcm9kdWN0aW9uIiE9PXQu ZW52Lk5PREVfRU5WJiZmLmRlYnVnVG9vbC5vbkhvc3RPcGVyYXRpb24oe2lu c3RhbmNlSUQ6cyx0eXBlOiJyZW1vdmUgY2hpbGQiLHBheWxvYWQ6e2Zyb21J bmRleDpjLmZyb21JbmRleH19KX19fX07ZS5leHBvcnRzPUV9KS5jYWxsKHQs bigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIG89e2h0 bWw6Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLG1hdGhtbDoiaHR0 cDovL3d3dy53My5vcmcvMTk5OC9NYXRoL01hdGhNTCIsc3ZnOiJodHRwOi8v d3d3LnczLm9yZy8yMDAwL3N2ZyJ9O2UuZXhwb3J0cz1vfSxmdW5jdGlvbihl LHQsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtmdW5jdGlvbiBvKGUp e3JldHVybiJ0b3BNb3VzZVVwIj09PWV8fCJ0b3BUb3VjaEVuZCI9PT1lfHwi dG9wVG91Y2hDYW5jZWwiPT09ZX1mdW5jdGlvbiByKGUpe3JldHVybiJ0b3BN b3VzZU1vdmUiPT09ZXx8InRvcFRvdWNoTW92ZSI9PT1lfWZ1bmN0aW9uIGko ZSl7cmV0dXJuInRvcE1vdXNlRG93biI9PT1lfHwidG9wVG91Y2hTdGFydCI9 PT1lfWZ1bmN0aW9uIGEoZSx0LG4sbyl7dmFyIHI9ZS50eXBlfHwidW5rbm93 bi1ldmVudCI7ZS5jdXJyZW50VGFyZ2V0PV8uZ2V0Tm9kZUZyb21JbnN0YW5j ZShvKSx0P3YuaW52b2tlR3VhcmRlZENhbGxiYWNrV2l0aENhdGNoKHIsbixl KTp2Lmludm9rZUd1YXJkZWRDYWxsYmFjayhyLG4sZSksZS5jdXJyZW50VGFy Z2V0PW51bGx9ZnVuY3Rpb24gcyhlLG4pe3ZhciBvPWUuX2Rpc3BhdGNoTGlz dGVuZXJzLHI9ZS5fZGlzcGF0Y2hJbnN0YW5jZXM7aWYoInByb2R1Y3Rpb24i IT09dC5lbnYuTk9ERV9FTlYmJmgoZSksQXJyYXkuaXNBcnJheShvKSlmb3Io dmFyIGk9MDtpPG8ubGVuZ3RoJiYhZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgp O2krKylhKGUsbixvW2ldLHJbaV0pO2Vsc2UgbyYmYShlLG4sbyxyKTtlLl9k aXNwYXRjaExpc3RlbmVycz1udWxsLGUuX2Rpc3BhdGNoSW5zdGFuY2VzPW51 bGx9ZnVuY3Rpb24gdShlKXt2YXIgbj1lLl9kaXNwYXRjaExpc3RlbmVycyxv PWUuX2Rpc3BhdGNoSW5zdGFuY2VzO2lmKCJwcm9kdWN0aW9uIiE9PXQuZW52 Lk5PREVfRU5WJiZoKGUpLEFycmF5LmlzQXJyYXkobikpe2Zvcih2YXIgcj0w O3I8bi5sZW5ndGgmJiFlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7cisrKWlm KG5bcl0oZSxvW3JdKSlyZXR1cm4gb1tyXX1lbHNlIGlmKG4mJm4oZSxvKSly ZXR1cm4gbztyZXR1cm4gbnVsbH1mdW5jdGlvbiBjKGUpe3ZhciB0PXUoZSk7 cmV0dXJuIGUuX2Rpc3BhdGNoSW5zdGFuY2VzPW51bGwsZS5fZGlzcGF0Y2hM aXN0ZW5lcnM9bnVsbCx0fWZ1bmN0aW9uIGwoZSl7InByb2R1Y3Rpb24iIT09 dC5lbnYuTk9ERV9FTlYmJmgoZSk7dmFyIG49ZS5fZGlzcGF0Y2hMaXN0ZW5l cnMsbz1lLl9kaXNwYXRjaEluc3RhbmNlcztBcnJheS5pc0FycmF5KG4pJiYo InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/ZyghMSwiZXhlY3V0ZURp cmVjdERpc3BhdGNoKC4uLik6IEludmFsaWQgYGV2ZW50YC4iKTptKCIxMDMi KSksZS5jdXJyZW50VGFyZ2V0PW4/Xy5nZXROb2RlRnJvbUluc3RhbmNlKG8p Om51bGw7dmFyIHI9bj9uKGUpOm51bGw7cmV0dXJuIGUuY3VycmVudFRhcmdl dD1udWxsLGUuX2Rpc3BhdGNoTGlzdGVuZXJzPW51bGwsZS5fZGlzcGF0Y2hJ bnN0YW5jZXM9bnVsbCxyfWZ1bmN0aW9uIHAoZSl7cmV0dXJuISFlLl9kaXNw YXRjaExpc3RlbmVyc312YXIgZCxmLGgsbT1uKDMpLHY9bigzOCksZz1uKDEp LHk9bigyKSxFPXtpbmplY3RDb21wb25lbnRUcmVlOmZ1bmN0aW9uKGUpe2Q9 ZSwicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmInByb2R1Y3Rpb24i IT09dC5lbnYuTk9ERV9FTlYmJnkoZSYmZS5nZXROb2RlRnJvbUluc3RhbmNl JiZlLmdldEluc3RhbmNlRnJvbU5vZGUsIkV2ZW50UGx1Z2luVXRpbHMuaW5q ZWN0aW9uLmluamVjdENvbXBvbmVudFRyZWUoLi4uKTogSW5qZWN0ZWQgbW9k dWxlIGlzIG1pc3NpbmcgZ2V0Tm9kZUZyb21JbnN0YW5jZSBvciBnZXRJbnN0 YW5jZUZyb21Ob2RlLiIpfSxpbmplY3RUcmVlVHJhdmVyc2FsOmZ1bmN0aW9u KGUpe2Y9ZSwicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmInByb2R1 Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJnkoZSYmZS5pc0FuY2VzdG9yJiZl LmdldExvd2VzdENvbW1vbkFuY2VzdG9yLCJFdmVudFBsdWdpblV0aWxzLmlu amVjdGlvbi5pbmplY3RUcmVlVHJhdmVyc2FsKC4uLik6IEluamVjdGVkIG1v ZHVsZSBpcyBtaXNzaW5nIGlzQW5jZXN0b3Igb3IgZ2V0TG93ZXN0Q29tbW9u QW5jZXN0b3IuIil9fTsicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYm KGg9ZnVuY3Rpb24oZSl7dmFyIG49ZS5fZGlzcGF0Y2hMaXN0ZW5lcnMsbz1l Ll9kaXNwYXRjaEluc3RhbmNlcyxyPUFycmF5LmlzQXJyYXkobiksaT1yP24u bGVuZ3RoOm4/MTowLGE9QXJyYXkuaXNBcnJheShvKSxzPWE/by5sZW5ndGg6 bz8xOjA7InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJnkoYT09PXIm JnM9PT1pLCJFdmVudFBsdWdpblV0aWxzOiBJbnZhbGlkIGBldmVudGAuIil9 KTt2YXIgXz17aXNFbmRpc2g6byxpc01vdmVpc2g6cixpc1N0YXJ0aXNoOmks ZXhlY3V0ZURpcmVjdERpc3BhdGNoOmwsZXhlY3V0ZURpc3BhdGNoZXNJbk9y ZGVyOnMsZXhlY3V0ZURpc3BhdGNoZXNJbk9yZGVyU3RvcEF0VHJ1ZTpjLGhh c0Rpc3BhdGNoZXM6cCxnZXRJbnN0YW5jZUZyb21Ob2RlOmZ1bmN0aW9uKGUp e3JldHVybiBkLmdldEluc3RhbmNlRnJvbU5vZGUoZSl9LGdldE5vZGVGcm9t SW5zdGFuY2U6ZnVuY3Rpb24oZSl7cmV0dXJuIGQuZ2V0Tm9kZUZyb21JbnN0 YW5jZShlKX0saXNBbmNlc3RvcjpmdW5jdGlvbihlLHQpe3JldHVybiBmLmlz QW5jZXN0b3IoZSx0KX0sZ2V0TG93ZXN0Q29tbW9uQW5jZXN0b3I6ZnVuY3Rp b24oZSx0KXtyZXR1cm4gZi5nZXRMb3dlc3RDb21tb25BbmNlc3RvcihlLHQp fSxnZXRQYXJlbnRJbnN0YW5jZTpmdW5jdGlvbihlKXtyZXR1cm4gZi5nZXRQ YXJlbnRJbnN0YW5jZShlKX0sdHJhdmVyc2VUd29QaGFzZTpmdW5jdGlvbihl LHQsbil7cmV0dXJuIGYudHJhdmVyc2VUd29QaGFzZShlLHQsbil9LHRyYXZl cnNlRW50ZXJMZWF2ZTpmdW5jdGlvbihlLHQsbixvLHIpe3JldHVybiBmLnRy YXZlcnNlRW50ZXJMZWF2ZShlLHQsbixvLHIpfSxpbmplY3Rpb246RX07ZS5l eHBvcnRzPV99KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNl IHN0cmljdCI7ZnVuY3Rpb24gbyhlKXt2YXIgdD17Ij0iOiI9MCIsIjoiOiI9 MiJ9O3JldHVybiIkIisoIiIrZSkucmVwbGFjZSgvWz06XS9nLGZ1bmN0aW9u KGUpe3JldHVybiB0W2VdfSl9ZnVuY3Rpb24gcihlKXt2YXIgdD0vKD0wfD0y KS9nLG49eyI9MCI6Ij0iLCI9MiI6IjoifTtyZXR1cm4oIiIrKCIuIj09PWVb MF0mJiIkIj09PWVbMV0/ZS5zdWJzdHJpbmcoMik6ZS5zdWJzdHJpbmcoMSkp KS5yZXBsYWNlKHQsZnVuY3Rpb24oZSl7cmV0dXJuIG5bZV19KX12YXIgaT17 ZXNjYXBlOm8sdW5lc2NhcGU6cn07ZS5leHBvcnRzPWl9LGZ1bmN0aW9uKGUs dCxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG8oZSl7 bnVsbCE9ZS5jaGVja2VkTGluayYmbnVsbCE9ZS52YWx1ZUxpbmsmJigicHJv ZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9sKCExLCJDYW5ub3QgcHJvdmlk ZSBhIGNoZWNrZWRMaW5rIGFuZCBhIHZhbHVlTGluay4gSWYgeW91IHdhbnQg dG8gdXNlIGNoZWNrZWRMaW5rLCB5b3UgcHJvYmFibHkgZG9uJ3Qgd2FudCB0 byB1c2UgdmFsdWVMaW5rIGFuZCB2aWNlIHZlcnNhLiIpOnMoIjg3IikpfWZ1 bmN0aW9uIHIoZSl7byhlKSwobnVsbCE9ZS52YWx1ZXx8bnVsbCE9ZS5vbkNo YW5nZSkmJigicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9sKCExLCJD YW5ub3QgcHJvdmlkZSBhIHZhbHVlTGluayBhbmQgYSB2YWx1ZSBvciBvbkNo YW5nZSBldmVudC4gSWYgeW91IHdhbnQgdG8gdXNlIHZhbHVlIG9yIG9uQ2hh bmdlLCB5b3UgcHJvYmFibHkgZG9uJ3Qgd2FudCB0byB1c2UgdmFsdWVMaW5r LiIpOnMoIjg4IikpfWZ1bmN0aW9uIGkoZSl7byhlKSwobnVsbCE9ZS5jaGVj a2VkfHxudWxsIT1lLm9uQ2hhbmdlKSYmKCJwcm9kdWN0aW9uIiE9PXQuZW52 Lk5PREVfRU5WP2woITEsIkNhbm5vdCBwcm92aWRlIGEgY2hlY2tlZExpbmsg YW5kIGEgY2hlY2tlZCBwcm9wZXJ0eSBvciBvbkNoYW5nZSBldmVudC4gSWYg eW91IHdhbnQgdG8gdXNlIGNoZWNrZWQgb3Igb25DaGFuZ2UsIHlvdSBwcm9i YWJseSBkb24ndCB3YW50IHRvIHVzZSBjaGVja2VkTGluayIpOnMoIjg5Iikp fWZ1bmN0aW9uIGEoZSl7aWYoZSl7dmFyIHQ9ZS5nZXROYW1lKCk7aWYodCly ZXR1cm4iIENoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGAiK3QrImAuIn1y ZXR1cm4iIn12YXIgcz1uKDMpLHU9bigxOSksYz1uKDY2KSxsPW4oMSkscD1u KDIpLGQ9e2J1dHRvbjohMCxjaGVja2JveDohMCxpbWFnZTohMCxoaWRkZW46 ITAscmFkaW86ITAscmVzZXQ6ITAsc3VibWl0OiEwfSxmPXt2YWx1ZTpmdW5j dGlvbihlLHQsbil7cmV0dXJuIWVbdF18fGRbZS50eXBlXXx8ZS5vbkNoYW5n ZXx8ZS5yZWFkT25seXx8ZS5kaXNhYmxlZD9udWxsOm5ldyBFcnJvcigiWW91 IHByb3ZpZGVkIGEgYHZhbHVlYCBwcm9wIHRvIGEgZm9ybSBmaWVsZCB3aXRo b3V0IGFuIGBvbkNoYW5nZWAgaGFuZGxlci4gVGhpcyB3aWxsIHJlbmRlciBh IHJlYWQtb25seSBmaWVsZC4gSWYgdGhlIGZpZWxkIHNob3VsZCBiZSBtdXRh YmxlIHVzZSBgZGVmYXVsdFZhbHVlYC4gT3RoZXJ3aXNlLCBzZXQgZWl0aGVy IGBvbkNoYW5nZWAgb3IgYHJlYWRPbmx5YC4iKX0sY2hlY2tlZDpmdW5jdGlv bihlLHQsbil7cmV0dXJuIWVbdF18fGUub25DaGFuZ2V8fGUucmVhZE9ubHl8 fGUuZGlzYWJsZWQ/bnVsbDpuZXcgRXJyb3IoIllvdSBwcm92aWRlZCBhIGBj aGVja2VkYCBwcm9wIHRvIGEgZm9ybSBmaWVsZCB3aXRob3V0IGFuIGBvbkNo YW5nZWAgaGFuZGxlci4gVGhpcyB3aWxsIHJlbmRlciBhIHJlYWQtb25seSBm aWVsZC4gSWYgdGhlIGZpZWxkIHNob3VsZCBiZSBtdXRhYmxlIHVzZSBgZGVm YXVsdENoZWNrZWRgLiBPdGhlcndpc2UsIHNldCBlaXRoZXIgYG9uQ2hhbmdl YCBvciBgcmVhZE9ubHlgLiIpfSxvbkNoYW5nZTp1LlByb3BUeXBlcy5mdW5j fSxoPXt9LG09e2NoZWNrUHJvcFR5cGVzOmZ1bmN0aW9uKGUsbixvKXtmb3Io dmFyIHIgaW4gZil7aWYoZi5oYXNPd25Qcm9wZXJ0eShyKSl2YXIgaT1mW3Jd KG4scixlLCJwcm9wIixudWxsLGMpO2lmKGkgaW5zdGFuY2VvZiBFcnJvciYm IShpLm1lc3NhZ2UgaW4gaCkpe2hbaS5tZXNzYWdlXT0hMDt2YXIgcz1hKG8p OyJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZwKCExLCJGYWlsZWQg Zm9ybSBwcm9wVHlwZTogJXMlcyIsaS5tZXNzYWdlLHMpfX19LGdldFZhbHVl OmZ1bmN0aW9uKGUpe3JldHVybiBlLnZhbHVlTGluaz8ocihlKSxlLnZhbHVl TGluay52YWx1ZSk6ZS52YWx1ZX0sZ2V0Q2hlY2tlZDpmdW5jdGlvbihlKXty ZXR1cm4gZS5jaGVja2VkTGluaz8oaShlKSxlLmNoZWNrZWRMaW5rLnZhbHVl KTplLmNoZWNrZWR9LGV4ZWN1dGVPbkNoYW5nZTpmdW5jdGlvbihlLHQpe3Jl dHVybiBlLnZhbHVlTGluaz8ocihlKSxlLnZhbHVlTGluay5yZXF1ZXN0Q2hh bmdlKHQudGFyZ2V0LnZhbHVlKSk6ZS5jaGVja2VkTGluaz8oaShlKSxlLmNo ZWNrZWRMaW5rLnJlcXVlc3RDaGFuZ2UodC50YXJnZXQuY2hlY2tlZCkpOmUu b25DaGFuZ2U/ZS5vbkNoYW5nZS5jYWxsKHZvaWQgMCx0KTp2b2lkIDB9fTtl LmV4cG9ydHM9bX0pLmNhbGwodCxuKDApKX0sZnVuY3Rpb24oZSx0LG4peyJ1 c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7dmFyIG89bigzKSxyPW4oMSksaT0h MSxhPXtyZXBsYWNlTm9kZVdpdGhNYXJrdXA6bnVsbCxwcm9jZXNzQ2hpbGRy ZW5VcGRhdGVzOm51bGwsaW5qZWN0aW9uOntpbmplY3RFbnZpcm9ubWVudDpm dW5jdGlvbihlKXtpJiYoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/ cighMSwiUmVhY3RDb21wb3NpdGVDb21wb25lbnQ6IGluamVjdEVudmlyb25t ZW50KCkgY2FuIG9ubHkgYmUgY2FsbGVkIG9uY2UuIik6bygiMTA0IikpLGEu cmVwbGFjZU5vZGVXaXRoTWFya3VwPWUucmVwbGFjZU5vZGVXaXRoTWFya3Vw LGEucHJvY2Vzc0NoaWxkcmVuVXBkYXRlcz1lLnByb2Nlc3NDaGlsZHJlblVw ZGF0ZXMsaT0hMH19fTtlLmV4cG9ydHM9YX0pLmNhbGwodCxuKDApKX0sZnVu Y3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7ZnVuY3Rp b24gbihlLHQsbil7dHJ5e3Qobil9Y2F0Y2goZSl7bnVsbD09PW8mJihvPWUp fX12YXIgbz1udWxsLHI9e2ludm9rZUd1YXJkZWRDYWxsYmFjazpuLGludm9r ZUd1YXJkZWRDYWxsYmFja1dpdGhDYXRjaDpuLHJldGhyb3dDYXVnaHRFcnJv cjpmdW5jdGlvbigpe2lmKG8pe3ZhciBlPW87dGhyb3cgbz1udWxsLGV9fX07 aWYoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJiJ1bmRlZmluZWQi IT10eXBlb2Ygd2luZG93JiYiZnVuY3Rpb24iPT10eXBlb2Ygd2luZG93LmRp c3BhdGNoRXZlbnQmJiJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQmJiJm dW5jdGlvbiI9PXR5cGVvZiBkb2N1bWVudC5jcmVhdGVFdmVudCl7dmFyIGk9 ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicmVhY3QiKTtyLmludm9rZUd1YXJk ZWRDYWxsYmFjaz1mdW5jdGlvbihlLHQsbil7dmFyIG89dC5iaW5kKG51bGws bikscj0icmVhY3QtIitlO2kuYWRkRXZlbnRMaXN0ZW5lcihyLG8sITEpO3Zh ciBhPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpO2EuaW5pdEV2ZW50 KHIsITEsITEpLGkuZGlzcGF0Y2hFdmVudChhKSxpLnJlbW92ZUV2ZW50TGlz dGVuZXIocixvLCExKX19ZS5leHBvcnRzPXJ9KS5jYWxsKHQsbigwKSl9LGZ1 bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe2Z1bmN0 aW9uIG8oZSl7bC5lbnF1ZXVlVXBkYXRlKGUpfWZ1bmN0aW9uIHIoZSl7dmFy IHQ9dHlwZW9mIGU7aWYoIm9iamVjdCIhPT10KXJldHVybiB0O3ZhciBuPWUu Y29uc3RydWN0b3ImJmUuY29uc3RydWN0b3IubmFtZXx8dCxvPU9iamVjdC5r ZXlzKGUpO3JldHVybiBvLmxlbmd0aD4wJiZvLmxlbmd0aDwyMD9uKyIgKGtl eXM6ICIrby5qb2luKCIsICIpKyIpIjpufWZ1bmN0aW9uIGkoZSxuKXt2YXIg bz11LmdldChlKTtpZighbyl7aWYoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9E RV9FTlYpe3ZhciByPWUuY29uc3RydWN0b3I7InByb2R1Y3Rpb24iIT09dC5l bnYuTk9ERV9FTlYmJmQoIW4sIiVzKC4uLik6IENhbiBvbmx5IHVwZGF0ZSBh IG1vdW50ZWQgb3IgbW91bnRpbmcgY29tcG9uZW50LiBUaGlzIHVzdWFsbHkg bWVhbnMgeW91IGNhbGxlZCAlcygpIG9uIGFuIHVubW91bnRlZCBjb21wb25l bnQuIFRoaXMgaXMgYSBuby1vcC4gUGxlYXNlIGNoZWNrIHRoZSBjb2RlIGZv ciB0aGUgJXMgY29tcG9uZW50LiIsbixuLHImJihyLmRpc3BsYXlOYW1lfHxy Lm5hbWUpfHwiUmVhY3RDbGFzcyIpfXJldHVybiBudWxsfXJldHVybiJwcm9k dWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiYicHJvZHVjdGlvbiIhPT10LmVu di5OT0RFX0VOViYmZChudWxsPT1zLmN1cnJlbnQsIiVzKC4uLik6IENhbm5v dCB1cGRhdGUgZHVyaW5nIGFuIGV4aXN0aW5nIHN0YXRlIHRyYW5zaXRpb24g KHN1Y2ggYXMgd2l0aGluIGByZW5kZXJgIG9yIGFub3RoZXIgY29tcG9uZW50 J3MgY29uc3RydWN0b3IpLiBSZW5kZXIgbWV0aG9kcyBzaG91bGQgYmUgYSBw dXJlIGZ1bmN0aW9uIG9mIHByb3BzIGFuZCBzdGF0ZTsgY29uc3RydWN0b3Ig c2lkZS1lZmZlY3RzIGFyZSBhbiBhbnRpLXBhdHRlcm4sIGJ1dCBjYW4gYmUg bW92ZWQgdG8gYGNvbXBvbmVudFdpbGxNb3VudGAuIixuKSxvfXZhciBhPW4o Mykscz1uKDExKSx1PW4oMjMpLGM9big4KSxsPW4oMTApLHA9bigxKSxkPW4o MiksZj17aXNNb3VudGVkOmZ1bmN0aW9uKGUpe2lmKCJwcm9kdWN0aW9uIiE9 PXQuZW52Lk5PREVfRU5WKXt2YXIgbj1zLmN1cnJlbnQ7bnVsbCE9PW4mJigi cHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmZChuLl93YXJuZWRBYm91 dFJlZnNJblJlbmRlciwiJXMgaXMgYWNjZXNzaW5nIGlzTW91bnRlZCBpbnNp ZGUgaXRzIHJlbmRlcigpIGZ1bmN0aW9uLiByZW5kZXIoKSBzaG91bGQgYmUg YSBwdXJlIGZ1bmN0aW9uIG9mIHByb3BzIGFuZCBzdGF0ZS4gSXQgc2hvdWxk IG5ldmVyIGFjY2VzcyBzb21ldGhpbmcgdGhhdCByZXF1aXJlcyBzdGFsZSBk YXRhIGZyb20gdGhlIHByZXZpb3VzIHJlbmRlciwgc3VjaCBhcyByZWZzLiBN b3ZlIHRoaXMgbG9naWMgdG8gY29tcG9uZW50RGlkTW91bnQgYW5kIGNvbXBv bmVudERpZFVwZGF0ZSBpbnN0ZWFkLiIsbi5nZXROYW1lKCl8fCJBIGNvbXBv bmVudCIpLG4uX3dhcm5lZEFib3V0UmVmc0luUmVuZGVyPSEwKX12YXIgbz11 LmdldChlKTtyZXR1cm4hIW8mJiEhby5fcmVuZGVyZWRDb21wb25lbnR9LGVu cXVldWVDYWxsYmFjazpmdW5jdGlvbihlLHQsbil7Zi52YWxpZGF0ZUNhbGxi YWNrKHQsbik7dmFyIHI9aShlKTtpZighcilyZXR1cm4gbnVsbDtyLl9wZW5k aW5nQ2FsbGJhY2tzP3IuX3BlbmRpbmdDYWxsYmFja3MucHVzaCh0KTpyLl9w ZW5kaW5nQ2FsbGJhY2tzPVt0XSxvKHIpfSxlbnF1ZXVlQ2FsbGJhY2tJbnRl cm5hbDpmdW5jdGlvbihlLHQpe2UuX3BlbmRpbmdDYWxsYmFja3M/ZS5fcGVu ZGluZ0NhbGxiYWNrcy5wdXNoKHQpOmUuX3BlbmRpbmdDYWxsYmFja3M9W3Rd LG8oZSl9LGVucXVldWVGb3JjZVVwZGF0ZTpmdW5jdGlvbihlKXt2YXIgdD1p KGUsImZvcmNlVXBkYXRlIik7dCYmKHQuX3BlbmRpbmdGb3JjZVVwZGF0ZT0h MCxvKHQpKX0sZW5xdWV1ZVJlcGxhY2VTdGF0ZTpmdW5jdGlvbihlLHQpe3Zh ciBuPWkoZSwicmVwbGFjZVN0YXRlIik7biYmKG4uX3BlbmRpbmdTdGF0ZVF1 ZXVlPVt0XSxuLl9wZW5kaW5nUmVwbGFjZVN0YXRlPSEwLG8obikpfSxlbnF1 ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oZSxuKXsicHJvZHVjdGlvbiIhPT10LmVu di5OT0RFX0VOViYmKGMuZGVidWdUb29sLm9uU2V0U3RhdGUoKSwicHJvZHVj dGlvbiIhPT10LmVudi5OT0RFX0VOViYmZChudWxsIT1uLCJzZXRTdGF0ZSgu Li4pOiBZb3UgcGFzc2VkIGFuIHVuZGVmaW5lZCBvciBudWxsIHN0YXRlIG9i amVjdDsgaW5zdGVhZCwgdXNlIGZvcmNlVXBkYXRlKCkuIikpO3ZhciByPWko ZSwic2V0U3RhdGUiKTtpZihyKXsoci5fcGVuZGluZ1N0YXRlUXVldWV8fChy Ll9wZW5kaW5nU3RhdGVRdWV1ZT1bXSkpLnB1c2gobiksbyhyKX19LGVucXVl dWVFbGVtZW50SW50ZXJuYWw6ZnVuY3Rpb24oZSx0LG4pe2UuX3BlbmRpbmdF bGVtZW50PXQsZS5fY29udGV4dD1uLG8oZSl9LHZhbGlkYXRlQ2FsbGJhY2s6 ZnVuY3Rpb24oZSxuKXtlJiYiZnVuY3Rpb24iIT10eXBlb2YgZSYmKCJwcm9k dWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP3AoITEsIiVzKC4uLik6IEV4cGVj dGVkIHRoZSBsYXN0IG9wdGlvbmFsIGBjYWxsYmFja2AgYXJndW1lbnQgdG8g YmUgYSBmdW5jdGlvbi4gSW5zdGVhZCByZWNlaXZlZDogJXMuIixuLHIoZSkp OmEoIjEyMiIsbixyKGUpKSl9fTtlLmV4cG9ydHM9Zn0pLmNhbGwodCxuKDAp KX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgbz1mdW5jdGlv bihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIE1TQXBwJiZNU0FwcC5l eGVjVW5zYWZlTG9jYWxGdW5jdGlvbj9mdW5jdGlvbih0LG4sbyxyKXtNU0Fw cC5leGVjVW5zYWZlTG9jYWxGdW5jdGlvbihmdW5jdGlvbigpe3JldHVybiBl KHQsbixvLHIpfSl9OmV9O2UuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7 InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSl7dmFyIHQsbj1lLmtleUNvZGU7 cmV0dXJuImNoYXJDb2RlImluIGU/MD09PSh0PWUuY2hhckNvZGUpJiYxMz09 PW4mJih0PTEzKTp0PW4sdD49MzJ8fDEzPT09dD90OjB9ZS5leHBvcnRzPW99 LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhlKXt2 YXIgdD10aGlzLG49dC5uYXRpdmVFdmVudDtpZihuLmdldE1vZGlmaWVyU3Rh dGUpcmV0dXJuIG4uZ2V0TW9kaWZpZXJTdGF0ZShlKTt2YXIgbz1pW2VdO3Jl dHVybiEhbyYmISFuW29dfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIG99dmFyIGk9 e0FsdDoiYWx0S2V5IixDb250cm9sOiJjdHJsS2V5IixNZXRhOiJtZXRhS2V5 IixTaGlmdDoic2hpZnRLZXkifTtlLmV4cG9ydHM9cn0sZnVuY3Rpb24oZSx0 LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKGUpe3ZhciB0PWUudGFyZ2V0 fHxlLnNyY0VsZW1lbnR8fHdpbmRvdztyZXR1cm4gdC5jb3JyZXNwb25kaW5n VXNlRWxlbWVudCYmKHQ9dC5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCksMz09 PXQubm9kZVR5cGU/dC5wYXJlbnROb2RlOnR9ZS5leHBvcnRzPW99LGZ1bmN0 aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7LyoqCisgKiBDaGVja3MgaWYgYW4g ZXZlbnQgaXMgc3VwcG9ydGVkIGluIHRoZSBjdXJyZW50IGV4ZWN1dGlvbiBl bnZpcm9ubWVudC4KKyAqCisgKiBOT1RFOiBUaGlzIHdpbGwgbm90IHdvcmsg Y29ycmVjdGx5IGZvciBub24tZ2VuZXJpYyBldmVudHMgc3VjaCBhcyBgY2hh bmdlYCwKKyAqIGByZXNldGAsIGBsb2FkYCwgYGVycm9yYCwgYW5kIGBzZWxl Y3RgLgorICoKKyAqIEJvcnJvd3MgZnJvbSBNb2Rlcm5penIuCisgKgorICog QHBhcmFtIHtzdHJpbmd9IGV2ZW50TmFtZVN1ZmZpeCBFdmVudCBuYW1lLCBl LmcuICJjbGljayIuCisgKiBAcGFyYW0gez9ib29sZWFufSBjYXB0dXJlIENo ZWNrIGlmIHRoZSBjYXB0dXJlIHBoYXNlIGlzIHN1cHBvcnRlZC4KKyAqIEBy ZXR1cm4ge2Jvb2xlYW59IFRydWUgaWYgdGhlIGV2ZW50IGlzIHN1cHBvcnRl ZC4KKyAqIEBpbnRlcm5hbAorICogQGxpY2Vuc2UgTW9kZXJuaXpyIDMuMC4w cHJlIChDdXN0b20gQnVpbGQpIHwgTUlUCisgKi8KK2Z1bmN0aW9uIG8oZSx0 KXtpZighaS5jYW5Vc2VET018fHQmJiEoImFkZEV2ZW50TGlzdGVuZXIiaW4g ZG9jdW1lbnQpKXJldHVybiExO3ZhciBuPSJvbiIrZSxvPW4gaW4gZG9jdW1l bnQ7aWYoIW8pe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp O2Euc2V0QXR0cmlidXRlKG4sInJldHVybjsiKSxvPSJmdW5jdGlvbiI9PXR5 cGVvZiBhW25dfXJldHVybiFvJiZyJiYid2hlZWwiPT09ZSYmKG89ZG9jdW1l bnQuaW1wbGVtZW50YXRpb24uaGFzRmVhdHVyZSgiRXZlbnRzLndoZWVsIiwi My4wIikpLG99dmFyIHIsaT1uKDYpO2kuY2FuVXNlRE9NJiYocj1kb2N1bWVu dC5pbXBsZW1lbnRhdGlvbiYmZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uaGFz RmVhdHVyZSYmITAhPT1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5oYXNGZWF0 dXJlKCIiLCIiKSksZS5leHBvcnRzPW99LGZ1bmN0aW9uKGUsdCxuKXsidXNl IHN0cmljdCI7ZnVuY3Rpb24gbyhlLHQpe3ZhciBuPW51bGw9PT1lfHwhMT09 PWUsbz1udWxsPT09dHx8ITE9PT10O2lmKG58fG8pcmV0dXJuIG49PT1vO3Zh ciByPXR5cGVvZiBlLGk9dHlwZW9mIHQ7cmV0dXJuInN0cmluZyI9PT1yfHwi bnVtYmVyIj09PXI/InN0cmluZyI9PT1pfHwibnVtYmVyIj09PWk6Im9iamVj dCI9PT1pJiZlLnR5cGU9PT10LnR5cGUmJmUua2V5PT09dC5rZXl9ZS5leHBv cnRzPW99LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9u KHQpe3ZhciBvPW4oNCkscj1uKDkpLGk9bigyKSxhPXI7aWYoInByb2R1Y3Rp b24iIT09dC5lbnYuTk9ERV9FTlYpe3ZhciBzPVsiYWRkcmVzcyIsImFwcGxl dCIsImFyZWEiLCJhcnRpY2xlIiwiYXNpZGUiLCJiYXNlIiwiYmFzZWZvbnQi LCJiZ3NvdW5kIiwiYmxvY2txdW90ZSIsImJvZHkiLCJiciIsImJ1dHRvbiIs ImNhcHRpb24iLCJjZW50ZXIiLCJjb2wiLCJjb2xncm91cCIsImRkIiwiZGV0 YWlscyIsImRpciIsImRpdiIsImRsIiwiZHQiLCJlbWJlZCIsImZpZWxkc2V0 IiwiZmlnY2FwdGlvbiIsImZpZ3VyZSIsImZvb3RlciIsImZvcm0iLCJmcmFt ZSIsImZyYW1lc2V0IiwiaDEiLCJoMiIsImgzIiwiaDQiLCJoNSIsImg2Iiwi aGVhZCIsImhlYWRlciIsImhncm91cCIsImhyIiwiaHRtbCIsImlmcmFtZSIs ImltZyIsImlucHV0IiwiaXNpbmRleCIsImxpIiwibGluayIsImxpc3Rpbmci LCJtYWluIiwibWFycXVlZSIsIm1lbnUiLCJtZW51aXRlbSIsIm1ldGEiLCJu YXYiLCJub2VtYmVkIiwibm9mcmFtZXMiLCJub3NjcmlwdCIsIm9iamVjdCIs Im9sIiwicCIsInBhcmFtIiwicGxhaW50ZXh0IiwicHJlIiwic2NyaXB0Iiwi c2VjdGlvbiIsInNlbGVjdCIsInNvdXJjZSIsInN0eWxlIiwic3VtbWFyeSIs InRhYmxlIiwidGJvZHkiLCJ0ZCIsInRlbXBsYXRlIiwidGV4dGFyZWEiLCJ0 Zm9vdCIsInRoIiwidGhlYWQiLCJ0aXRsZSIsInRyIiwidHJhY2siLCJ1bCIs IndiciIsInhtcCJdLHU9WyJhcHBsZXQiLCJjYXB0aW9uIiwiaHRtbCIsInRh YmxlIiwidGQiLCJ0aCIsIm1hcnF1ZWUiLCJvYmplY3QiLCJ0ZW1wbGF0ZSIs ImZvcmVpZ25PYmplY3QiLCJkZXNjIiwidGl0bGUiXSxjPXUuY29uY2F0KFsi YnV0dG9uIl0pLGw9WyJkZCIsImR0IiwibGkiLCJvcHRpb24iLCJvcHRncm91 cCIsInAiLCJycCIsInJ0Il0scD17Y3VycmVudDpudWxsLGZvcm1UYWc6bnVs bCxhVGFnSW5TY29wZTpudWxsLGJ1dHRvblRhZ0luU2NvcGU6bnVsbCxub2Jy VGFnSW5TY29wZTpudWxsLHBUYWdJbkJ1dHRvblNjb3BlOm51bGwsbGlzdEl0 ZW1UYWdBdXRvY2xvc2luZzpudWxsLGRsSXRlbVRhZ0F1dG9jbG9zaW5nOm51 bGx9LGQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPW8oe30sZXx8cCksaT17dGFn OnQsaW5zdGFuY2U6bn07cmV0dXJuLTEhPT11LmluZGV4T2YodCkmJihyLmFU YWdJblNjb3BlPW51bGwsci5idXR0b25UYWdJblNjb3BlPW51bGwsci5ub2Jy VGFnSW5TY29wZT1udWxsKSwtMSE9PWMuaW5kZXhPZih0KSYmKHIucFRhZ0lu QnV0dG9uU2NvcGU9bnVsbCksLTEhPT1zLmluZGV4T2YodCkmJiJhZGRyZXNz IiE9PXQmJiJkaXYiIT09dCYmInAiIT09dCYmKHIubGlzdEl0ZW1UYWdBdXRv Y2xvc2luZz1udWxsLHIuZGxJdGVtVGFnQXV0b2Nsb3Npbmc9bnVsbCksci5j dXJyZW50PWksImZvcm0iPT09dCYmKHIuZm9ybVRhZz1pKSwiYSI9PT10JiYo ci5hVGFnSW5TY29wZT1pKSwiYnV0dG9uIj09PXQmJihyLmJ1dHRvblRhZ0lu U2NvcGU9aSksIm5vYnIiPT09dCYmKHIubm9iclRhZ0luU2NvcGU9aSksInAi PT09dCYmKHIucFRhZ0luQnV0dG9uU2NvcGU9aSksImxpIj09PXQmJihyLmxp c3RJdGVtVGFnQXV0b2Nsb3Npbmc9aSksImRkIiE9PXQmJiJkdCIhPT10fHwo ci5kbEl0ZW1UYWdBdXRvY2xvc2luZz1pKSxyfSxmPWZ1bmN0aW9uKGUsdCl7 c3dpdGNoKHQpe2Nhc2Uic2VsZWN0IjpyZXR1cm4ib3B0aW9uIj09PWV8fCJv cHRncm91cCI9PT1lfHwiI3RleHQiPT09ZTtjYXNlIm9wdGdyb3VwIjpyZXR1 cm4ib3B0aW9uIj09PWV8fCIjdGV4dCI9PT1lO2Nhc2Uib3B0aW9uIjpyZXR1 cm4iI3RleHQiPT09ZTtjYXNlInRyIjpyZXR1cm4idGgiPT09ZXx8InRkIj09 PWV8fCJzdHlsZSI9PT1lfHwic2NyaXB0Ij09PWV8fCJ0ZW1wbGF0ZSI9PT1l O2Nhc2UidGJvZHkiOmNhc2UidGhlYWQiOmNhc2UidGZvb3QiOnJldHVybiJ0 ciI9PT1lfHwic3R5bGUiPT09ZXx8InNjcmlwdCI9PT1lfHwidGVtcGxhdGUi PT09ZTtjYXNlImNvbGdyb3VwIjpyZXR1cm4iY29sIj09PWV8fCJ0ZW1wbGF0 ZSI9PT1lO2Nhc2UidGFibGUiOnJldHVybiJjYXB0aW9uIj09PWV8fCJjb2xn cm91cCI9PT1lfHwidGJvZHkiPT09ZXx8InRmb290Ij09PWV8fCJ0aGVhZCI9 PT1lfHwic3R5bGUiPT09ZXx8InNjcmlwdCI9PT1lfHwidGVtcGxhdGUiPT09 ZTtjYXNlImhlYWQiOnJldHVybiJiYXNlIj09PWV8fCJiYXNlZm9udCI9PT1l fHwiYmdzb3VuZCI9PT1lfHwibGluayI9PT1lfHwibWV0YSI9PT1lfHwidGl0 bGUiPT09ZXx8Im5vc2NyaXB0Ij09PWV8fCJub2ZyYW1lcyI9PT1lfHwic3R5 bGUiPT09ZXx8InNjcmlwdCI9PT1lfHwidGVtcGxhdGUiPT09ZTtjYXNlImh0 bWwiOnJldHVybiJoZWFkIj09PWV8fCJib2R5Ij09PWU7Y2FzZSIjZG9jdW1l bnQiOnJldHVybiJodG1sIj09PWV9c3dpdGNoKGUpe2Nhc2UiaDEiOmNhc2Ui aDIiOmNhc2UiaDMiOmNhc2UiaDQiOmNhc2UiaDUiOmNhc2UiaDYiOnJldHVy biJoMSIhPT10JiYiaDIiIT09dCYmImgzIiE9PXQmJiJoNCIhPT10JiYiaDUi IT09dCYmImg2IiE9PXQ7Y2FzZSJycCI6Y2FzZSJydCI6cmV0dXJuLTE9PT1s LmluZGV4T2YodCk7Y2FzZSJib2R5IjpjYXNlImNhcHRpb24iOmNhc2UiY29s IjpjYXNlImNvbGdyb3VwIjpjYXNlImZyYW1lIjpjYXNlImhlYWQiOmNhc2Ui aHRtbCI6Y2FzZSJ0Ym9keSI6Y2FzZSJ0ZCI6Y2FzZSJ0Zm9vdCI6Y2FzZSJ0 aCI6Y2FzZSJ0aGVhZCI6Y2FzZSJ0ciI6cmV0dXJuIG51bGw9PXR9cmV0dXJu ITB9LGg9ZnVuY3Rpb24oZSx0KXtzd2l0Y2goZSl7Y2FzZSJhZGRyZXNzIjpj YXNlImFydGljbGUiOmNhc2UiYXNpZGUiOmNhc2UiYmxvY2txdW90ZSI6Y2Fz ZSJjZW50ZXIiOmNhc2UiZGV0YWlscyI6Y2FzZSJkaWFsb2ciOmNhc2UiZGly IjpjYXNlImRpdiI6Y2FzZSJkbCI6Y2FzZSJmaWVsZHNldCI6Y2FzZSJmaWdj YXB0aW9uIjpjYXNlImZpZ3VyZSI6Y2FzZSJmb290ZXIiOmNhc2UiaGVhZGVy IjpjYXNlImhncm91cCI6Y2FzZSJtYWluIjpjYXNlIm1lbnUiOmNhc2UibmF2 IjpjYXNlIm9sIjpjYXNlInAiOmNhc2Uic2VjdGlvbiI6Y2FzZSJzdW1tYXJ5 IjpjYXNlInVsIjpjYXNlInByZSI6Y2FzZSJsaXN0aW5nIjpjYXNlInRhYmxl IjpjYXNlImhyIjpjYXNlInhtcCI6Y2FzZSJoMSI6Y2FzZSJoMiI6Y2FzZSJo MyI6Y2FzZSJoNCI6Y2FzZSJoNSI6Y2FzZSJoNiI6cmV0dXJuIHQucFRhZ0lu QnV0dG9uU2NvcGU7Y2FzZSJmb3JtIjpyZXR1cm4gdC5mb3JtVGFnfHx0LnBU YWdJbkJ1dHRvblNjb3BlO2Nhc2UibGkiOnJldHVybiB0Lmxpc3RJdGVtVGFn QXV0b2Nsb3Npbmc7Y2FzZSJkZCI6Y2FzZSJkdCI6cmV0dXJuIHQuZGxJdGVt VGFnQXV0b2Nsb3Npbmc7Y2FzZSJidXR0b24iOnJldHVybiB0LmJ1dHRvblRh Z0luU2NvcGU7Y2FzZSJhIjpyZXR1cm4gdC5hVGFnSW5TY29wZTtjYXNlIm5v YnIiOnJldHVybiB0Lm5vYnJUYWdJblNjb3BlfXJldHVybiBudWxsfSxtPWZ1 bmN0aW9uKGUpe2lmKCFlKXJldHVybltdO3ZhciB0PVtdO2Rve3QucHVzaChl KX13aGlsZShlPWUuX2N1cnJlbnRFbGVtZW50Ll9vd25lcik7cmV0dXJuIHQu cmV2ZXJzZSgpLHR9LHY9e307YT1mdW5jdGlvbihlLG4sbyxyKXtyPXJ8fHA7 dmFyIGE9ci5jdXJyZW50LHM9YSYmYS50YWc7bnVsbCE9biYmKCJwcm9kdWN0 aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZpKG51bGw9PWUsInZhbGlkYXRlRE9N TmVzdGluZzogd2hlbiBjaGlsZFRleHQgaXMgcGFzc2VkLCBjaGlsZFRhZyBz aG91bGQgYmUgbnVsbCIpLGU9IiN0ZXh0Iik7dmFyIHU9ZihlLHMpP251bGw6 YSxjPXU/bnVsbDpoKGUsciksbD11fHxjO2lmKGwpe3ZhciBkLGc9bC50YWcs eT1sLmluc3RhbmNlLEU9byYmby5fY3VycmVudEVsZW1lbnQuX293bmVyLF89 eSYmeS5fY3VycmVudEVsZW1lbnQuX293bmVyLE49bShFKSxiPW0oXyksQz1N YXRoLm1pbihOLmxlbmd0aCxiLmxlbmd0aCksRD0tMTtmb3IoZD0wO2Q8QyYm TltkXT09PWJbZF07ZCsrKUQ9ZDt2YXIgTz1OLnNsaWNlKEQrMSkubWFwKGZ1 bmN0aW9uKGUpe3JldHVybiBlLmdldE5hbWUoKXx8Iih1bmtub3duKSJ9KSx3 PWIuc2xpY2UoRCsxKS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0TmFt ZSgpfHwiKHVua25vd24pIn0pLHg9W10uY29uY2F0KC0xIT09RD9OW0RdLmdl dE5hbWUoKXx8Iih1bmtub3duKSI6W10sdyxnLGM/WyIuLi4iXTpbXSxPLGUp LmpvaW4oIiA+ICIpLFQ9ISF1KyJ8IitlKyJ8IitnKyJ8Iit4O2lmKHZbVF0p cmV0dXJuO3ZbVF09ITA7dmFyIGs9ZSxJPSIiO2lmKCIjdGV4dCI9PT1lPy9c Uy8udGVzdChuKT9rPSJUZXh0IG5vZGVzIjooaz0iV2hpdGVzcGFjZSB0ZXh0 IG5vZGVzIixJPSIgTWFrZSBzdXJlIHlvdSBkb24ndCBoYXZlIGFueSBleHRy YSB3aGl0ZXNwYWNlIGJldHdlZW4gdGFncyBvbiBlYWNoIGxpbmUgb2YgeW91 ciBzb3VyY2UgY29kZS4iKTprPSI8IitlKyI+Iix1KXt2YXIgUD0iIjsidGFi bGUiPT09ZyYmInRyIj09PWUmJihQKz0iIEFkZCBhIDx0Ym9keT4gdG8geW91 ciBjb2RlIHRvIG1hdGNoIHRoZSBET00gdHJlZSBnZW5lcmF0ZWQgYnkgdGhl IGJyb3dzZXIuIiksInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJmko ITEsInZhbGlkYXRlRE9NTmVzdGluZyguLi4pOiAlcyBjYW5ub3QgYXBwZWFy IGFzIGEgY2hpbGQgb2YgPCVzPi4lcyBTZWUgJXMuJXMiLGssZyxJLHgsUCl9 ZWxzZSJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZpKCExLCJ2YWxp ZGF0ZURPTU5lc3RpbmcoLi4uKTogJXMgY2Fubm90IGFwcGVhciBhcyBhIGRl c2NlbmRhbnQgb2YgPCVzPi4gU2VlICVzLiIsayxnLHgpfX0sYS51cGRhdGVk QW5jZXN0b3JJbmZvPWQsYS5pc1RhZ1ZhbGlkSW5Db250ZXh0PWZ1bmN0aW9u KGUsdCl7dD10fHxwO3ZhciBuPXQuY3VycmVudCxvPW4mJm4udGFnO3JldHVy biBmKGUsbykmJiFoKGUsdCl9fWUuZXhwb3J0cz1hfSkuY2FsbCh0LG4oMCkp fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtm dW5jdGlvbiBvKGUsdCxuKXt0aGlzLnByb3BzPWUsdGhpcy5jb250ZXh0PXQs dGhpcy5yZWZzPXMsdGhpcy51cGRhdGVyPW58fGl9dmFyIHI9bigxNiksaT1u KDQ4KSxhPW4oNTApLHM9bigyMCksdT1uKDEpLGM9bigyKTtpZihvLnByb3Rv dHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9LG8ucHJvdG90eXBlLnNldFN0YXRl PWZ1bmN0aW9uKGUsbil7Im9iamVjdCIhPXR5cGVvZiBlJiYiZnVuY3Rpb24i IT10eXBlb2YgZSYmbnVsbCE9ZSYmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5P REVfRU5WP3UoITEsInNldFN0YXRlKC4uLik6IHRha2VzIGFuIG9iamVjdCBv ZiBzdGF0ZSB2YXJpYWJsZXMgdG8gdXBkYXRlIG9yIGEgZnVuY3Rpb24gd2hp Y2ggcmV0dXJucyBhbiBvYmplY3Qgb2Ygc3RhdGUgdmFyaWFibGVzLiIpOnIo Ijg1IikpLHRoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcyxlKSxu JiZ0aGlzLnVwZGF0ZXIuZW5xdWV1ZUNhbGxiYWNrKHRoaXMsbiwic2V0U3Rh dGUiKX0sby5wcm90b3R5cGUuZm9yY2VVcGRhdGU9ZnVuY3Rpb24oZSl7dGhp cy51cGRhdGVyLmVucXVldWVGb3JjZVVwZGF0ZSh0aGlzKSxlJiZ0aGlzLnVw ZGF0ZXIuZW5xdWV1ZUNhbGxiYWNrKHRoaXMsZSwiZm9yY2VVcGRhdGUiKX0s InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYpe3ZhciBsPXtpc01vdW50 ZWQ6WyJpc01vdW50ZWQiLCJJbnN0ZWFkLCBtYWtlIHN1cmUgdG8gY2xlYW4g dXAgc3Vic2NyaXB0aW9ucyBhbmQgcGVuZGluZyByZXF1ZXN0cyBpbiBjb21w b25lbnRXaWxsVW5tb3VudCB0byBwcmV2ZW50IG1lbW9yeSBsZWFrcy4iXSxy ZXBsYWNlU3RhdGU6WyJyZXBsYWNlU3RhdGUiLCJSZWZhY3RvciB5b3VyIGNv ZGUgdG8gdXNlIHNldFN0YXRlIGluc3RlYWQgKHNlZSBodHRwczovL2dpdGh1 Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzMyMzYpLiJdfTtmb3IodmFy IHAgaW4gbClsLmhhc093blByb3BlcnR5KHApJiZmdW5jdGlvbihlLG4pe2Em Jk9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLnByb3RvdHlwZSxlLHtnZXQ6ZnVu Y3Rpb24oKXsicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmYyghMSwi JXMoLi4uKSBpcyBkZXByZWNhdGVkIGluIHBsYWluIEphdmFTY3JpcHQgUmVh Y3QgY2xhc3Nlcy4gJXMiLG5bMF0sblsxXSl9fSl9KHAsbFtwXSl9ZS5leHBv cnRzPW99KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0 cmljdCI7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG8oZSxuKXtpZigicHJvZHVj dGlvbiIhPT10LmVudi5OT0RFX0VOVil7dmFyIG89ZS5jb25zdHJ1Y3Rvcjsi cHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmcighMSwiJXMoLi4uKTog Q2FuIG9ubHkgdXBkYXRlIGEgbW91bnRlZCBvciBtb3VudGluZyBjb21wb25l bnQuIFRoaXMgdXN1YWxseSBtZWFucyB5b3UgY2FsbGVkICVzKCkgb24gYW4g dW5tb3VudGVkIGNvbXBvbmVudC4gVGhpcyBpcyBhIG5vLW9wLiBQbGVhc2Ug Y2hlY2sgdGhlIGNvZGUgZm9yIHRoZSAlcyBjb21wb25lbnQuIixuLG4sbyYm KG8uZGlzcGxheU5hbWV8fG8ubmFtZSl8fCJSZWFjdENsYXNzIil9fXZhciBy PW4oMiksaT17aXNNb3VudGVkOmZ1bmN0aW9uKGUpe3JldHVybiExfSxlbnF1 ZXVlQ2FsbGJhY2s6ZnVuY3Rpb24oZSx0KXt9LGVucXVldWVGb3JjZVVwZGF0 ZTpmdW5jdGlvbihlKXtvKGUsImZvcmNlVXBkYXRlIil9LGVucXVldWVSZXBs YWNlU3RhdGU6ZnVuY3Rpb24oZSx0KXtvKGUsInJlcGxhY2VTdGF0ZSIpfSxl bnF1ZXVlU2V0U3RhdGU6ZnVuY3Rpb24oZSx0KXtvKGUsInNldFN0YXRlIil9 fTtlLmV4cG9ydHM9aX0pLmNhbGwodCxuKDApKX0sZnVuY3Rpb24oZSx0LG4p eyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7dmFyIG49e307InByb2R1Y3Rp b24iIT09dC5lbnYuTk9ERV9FTlYmJihuPXtwcm9wOiJwcm9wIixjb250ZXh0 OiJjb250ZXh0IixjaGlsZENvbnRleHQ6ImNoaWxkIGNvbnRleHQifSksZS5l eHBvcnRzPW59KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNl IHN0cmljdCI7KGZ1bmN0aW9uKHQpe3ZhciBuPSExO2lmKCJwcm9kdWN0aW9u IiE9PXQuZW52Lk5PREVfRU5WKXRyeXtPYmplY3QuZGVmaW5lUHJvcGVydHko e30sIngiLHtnZXQ6ZnVuY3Rpb24oKXt9fSksbj0hMH1jYXRjaChlKXt9ZS5l eHBvcnRzPW59KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNl IHN0cmljdCI7ZnVuY3Rpb24gbyhlKXt2YXIgdD1lJiYociYmZVtyXXx8ZVtp XSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQpcmV0dXJuIHR9dmFyIHI9ImZ1 bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yLGk9IkBA aXRlcmF0b3IiO2UuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7InVzZSBz dHJpY3QiOyhmdW5jdGlvbih0KXt2YXIgbz1uKDkpLHI9e2xpc3RlbjpmdW5j dGlvbihlLHQsbil7cmV0dXJuIGUuYWRkRXZlbnRMaXN0ZW5lcj8oZS5hZGRF dmVudExpc3RlbmVyKHQsbiwhMSkse3JlbW92ZTpmdW5jdGlvbigpe2UucmVt b3ZlRXZlbnRMaXN0ZW5lcih0LG4sITEpfX0pOmUuYXR0YWNoRXZlbnQ/KGUu YXR0YWNoRXZlbnQoIm9uIit0LG4pLHtyZW1vdmU6ZnVuY3Rpb24oKXtlLmRl dGFjaEV2ZW50KCJvbiIrdCxuKX19KTp2b2lkIDB9LGNhcHR1cmU6ZnVuY3Rp b24oZSxuLHIpe3JldHVybiBlLmFkZEV2ZW50TGlzdGVuZXI/KGUuYWRkRXZl bnRMaXN0ZW5lcihuLHIsITApLHtyZW1vdmU6ZnVuY3Rpb24oKXtlLnJlbW92 ZUV2ZW50TGlzdGVuZXIobixyLCEwKX19KTooInByb2R1Y3Rpb24iIT09dC5l bnYuTk9ERV9FTlYmJmNvbnNvbGUuZXJyb3IoIkF0dGVtcHRlZCB0byBsaXN0 ZW4gdG8gZXZlbnRzIGR1cmluZyB0aGUgY2FwdHVyZSBwaGFzZSBvbiBhIGJy b3dzZXIgdGhhdCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBjYXB0dXJlIHBoYXNl LiBZb3VyIGFwcGxpY2F0aW9uIHdpbGwgbm90IHJlY2VpdmUgc29tZSBldmVu dHMuIikse3JlbW92ZTpvfSl9LHJlZ2lzdGVyRGVmYXVsdDpmdW5jdGlvbigp e319O2UuZXhwb3J0cz1yfSkuY2FsbCh0LG4oMCkpfSxmdW5jdGlvbihlLHQs bil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSl7dHJ5e2UuZm9jdXMoKX1j YXRjaChlKXt9fWUuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7InVzZSBz dHJpY3QiO2Z1bmN0aW9uIG8oZSl7aWYodm9pZCAwPT09KGU9ZXx8KCJ1bmRl ZmluZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQ6dm9pZCAwKSkpcmV0 dXJuIG51bGw7dHJ5e3JldHVybiBlLmFjdGl2ZUVsZW1lbnR8fGUuYm9keX1j YXRjaCh0KXtyZXR1cm4gZS5ib2R5fX1lLmV4cG9ydHM9b30sZnVuY3Rpb24o ZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKGUsdCl7cmV0dXJuIGUr dC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt0LnN1YnN0cmluZygxKX12YXIg cj17YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsYm9yZGVySW1hZ2VPdXRz ZXQ6ITAsYm9yZGVySW1hZ2VTbGljZTohMCxib3JkZXJJbWFnZVdpZHRoOiEw LGJveEZsZXg6ITAsYm94RmxleEdyb3VwOiEwLGJveE9yZGluYWxHcm91cDoh MCxjb2x1bW5Db3VudDohMCxmbGV4OiEwLGZsZXhHcm93OiEwLGZsZXhQb3Np dGl2ZTohMCxmbGV4U2hyaW5rOiEwLGZsZXhOZWdhdGl2ZTohMCxmbGV4T3Jk ZXI6ITAsZ3JpZFJvdzohMCxncmlkQ29sdW1uOiEwLGZvbnRXZWlnaHQ6ITAs bGluZUNsYW1wOiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjoh MCxvcnBoYW5zOiEwLHRhYlNpemU6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6 b29tOiEwLGZpbGxPcGFjaXR5OiEwLGZsb29kT3BhY2l0eTohMCxzdG9wT3Bh Y2l0eTohMCxzdHJva2VEYXNoYXJyYXk6ITAsc3Ryb2tlRGFzaG9mZnNldDoh MCxzdHJva2VNaXRlcmxpbWl0OiEwLHN0cm9rZU9wYWNpdHk6ITAsc3Ryb2tl V2lkdGg6ITB9LGk9WyJXZWJraXQiLCJtcyIsIk1veiIsIk8iXTtPYmplY3Qu a2V5cyhyKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2kuZm9yRWFjaChmdW5jdGlv bih0KXtyW28odCxlKV09cltlXX0pfSk7dmFyIGE9e2JhY2tncm91bmQ6e2Jh Y2tncm91bmRBdHRhY2htZW50OiEwLGJhY2tncm91bmRDb2xvcjohMCxiYWNr Z3JvdW5kSW1hZ2U6ITAsYmFja2dyb3VuZFBvc2l0aW9uWDohMCxiYWNrZ3Jv dW5kUG9zaXRpb25ZOiEwLGJhY2tncm91bmRSZXBlYXQ6ITB9LGJhY2tncm91 bmRQb3NpdGlvbjp7YmFja2dyb3VuZFBvc2l0aW9uWDohMCxiYWNrZ3JvdW5k UG9zaXRpb25ZOiEwfSxib3JkZXI6e2JvcmRlcldpZHRoOiEwLGJvcmRlclN0 eWxlOiEwLGJvcmRlckNvbG9yOiEwfSxib3JkZXJCb3R0b206e2JvcmRlckJv dHRvbVdpZHRoOiEwLGJvcmRlckJvdHRvbVN0eWxlOiEwLGJvcmRlckJvdHRv bUNvbG9yOiEwfSxib3JkZXJMZWZ0Ontib3JkZXJMZWZ0V2lkdGg6ITAsYm9y ZGVyTGVmdFN0eWxlOiEwLGJvcmRlckxlZnRDb2xvcjohMH0sYm9yZGVyUmln aHQ6e2JvcmRlclJpZ2h0V2lkdGg6ITAsYm9yZGVyUmlnaHRTdHlsZTohMCxi b3JkZXJSaWdodENvbG9yOiEwfSxib3JkZXJUb3A6e2JvcmRlclRvcFdpZHRo OiEwLGJvcmRlclRvcFN0eWxlOiEwLGJvcmRlclRvcENvbG9yOiEwfSxmb250 Ontmb250U3R5bGU6ITAsZm9udFZhcmlhbnQ6ITAsZm9udFdlaWdodDohMCxm b250U2l6ZTohMCxsaW5lSGVpZ2h0OiEwLGZvbnRGYW1pbHk6ITB9LG91dGxp bmU6e291dGxpbmVXaWR0aDohMCxvdXRsaW5lU3R5bGU6ITAsb3V0bGluZUNv bG9yOiEwfX0scz17aXNVbml0bGVzc051bWJlcjpyLHNob3J0aGFuZFByb3Bl cnR5RXhwYW5zaW9uczphfTtlLmV4cG9ydHM9c30sZnVuY3Rpb24oZSx0LG4p eyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7ZnVuY3Rpb24gbyhlLHQpe2lm KCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5v dCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfXZhciByPW4oMyksaT1u KDE0KSxhPW4oMSkscz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7byh0aGlz LGUpLHRoaXMuX2NhbGxiYWNrcz1udWxsLHRoaXMuX2NvbnRleHRzPW51bGws dGhpcy5fYXJnPXR9cmV0dXJuIGUucHJvdG90eXBlLmVucXVldWU9ZnVuY3Rp b24oZSx0KXt0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzfHxbXSx0 aGlzLl9jYWxsYmFja3MucHVzaChlKSx0aGlzLl9jb250ZXh0cz10aGlzLl9j b250ZXh0c3x8W10sdGhpcy5fY29udGV4dHMucHVzaCh0KX0sZS5wcm90b3R5 cGUubm90aWZ5QWxsPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fY2FsbGJhY2tz LG49dGhpcy5fY29udGV4dHMsbz10aGlzLl9hcmc7aWYoZSYmbil7ZS5sZW5n dGghPT1uLmxlbmd0aCYmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5W P2EoITEsIk1pc21hdGNoZWQgbGlzdCBvZiBjb250ZXh0cyBpbiBjYWxsYmFj ayBxdWV1ZSIpOnIoIjI0IikpLHRoaXMuX2NhbGxiYWNrcz1udWxsLHRoaXMu X2NvbnRleHRzPW51bGw7Zm9yKHZhciBpPTA7aTxlLmxlbmd0aDtpKyspZVtp XS5jYWxsKG5baV0sbyk7ZS5sZW5ndGg9MCxuLmxlbmd0aD0wfX0sZS5wcm90 b3R5cGUuY2hlY2twb2ludD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jYWxs YmFja3M/dGhpcy5fY2FsbGJhY2tzLmxlbmd0aDowfSxlLnByb3RvdHlwZS5y b2xsYmFjaz1mdW5jdGlvbihlKXt0aGlzLl9jYWxsYmFja3MmJnRoaXMuX2Nv bnRleHRzJiYodGhpcy5fY2FsbGJhY2tzLmxlbmd0aD1lLHRoaXMuX2NvbnRl eHRzLmxlbmd0aD1lKX0sZS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0 aGlzLl9jYWxsYmFja3M9bnVsbCx0aGlzLl9jb250ZXh0cz1udWxsfSxlLnBy b3RvdHlwZS5kZXN0cnVjdG9yPWZ1bmN0aW9uKCl7dGhpcy5yZXNldCgpfSxl fSgpO2UuZXhwb3J0cz1pLmFkZFBvb2xpbmdUbyhzKX0pLmNhbGwodCxuKDAp KX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7 ZnVuY3Rpb24gbyhlKXtyZXR1cm4hIWQuaGFzT3duUHJvcGVydHkoZSl8fCFw Lmhhc093blByb3BlcnR5KGUpJiYobC50ZXN0KGUpPyhkW2VdPSEwLCEwKToo cFtlXT0hMCwicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmYyghMSwi SW52YWxpZCBhdHRyaWJ1dGUgbmFtZTogYCVzYCIsZSksITEpKX1mdW5jdGlv biByKGUsdCl7cmV0dXJuIG51bGw9PXR8fGUuaGFzQm9vbGVhblZhbHVlJiYh dHx8ZS5oYXNOdW1lcmljVmFsdWUmJmlzTmFOKHQpfHxlLmhhc1Bvc2l0aXZl TnVtZXJpY1ZhbHVlJiZ0PDF8fGUuaGFzT3ZlcmxvYWRlZEJvb2xlYW5WYWx1 ZSYmITE9PT10fXZhciBpPW4oMTMpLGE9big1KSxzPW4oOCksdT1uKDE2NSks Yz1uKDIpLGw9bmV3IFJlZ0V4cCgiXlsiK2kuQVRUUklCVVRFX05BTUVfU1RB UlRfQ0hBUisiXVsiK2kuQVRUUklCVVRFX05BTUVfQ0hBUisiXSokIikscD17 fSxkPXt9LGY9e2NyZWF0ZU1hcmt1cEZvcklEOmZ1bmN0aW9uKGUpe3JldHVy biBpLklEX0FUVFJJQlVURV9OQU1FKyI9Iit1KGUpfSxzZXRBdHRyaWJ1dGVG b3JJRDpmdW5jdGlvbihlLHQpe2Uuc2V0QXR0cmlidXRlKGkuSURfQVRUUklC VVRFX05BTUUsdCl9LGNyZWF0ZU1hcmt1cEZvclJvb3Q6ZnVuY3Rpb24oKXty ZXR1cm4gaS5ST09UX0FUVFJJQlVURV9OQU1FKyc9IiInfSxzZXRBdHRyaWJ1 dGVGb3JSb290OmZ1bmN0aW9uKGUpe2Uuc2V0QXR0cmlidXRlKGkuUk9PVF9B VFRSSUJVVEVfTkFNRSwiIil9LGNyZWF0ZU1hcmt1cEZvclByb3BlcnR5OmZ1 bmN0aW9uKGUsdCl7dmFyIG49aS5wcm9wZXJ0aWVzLmhhc093blByb3BlcnR5 KGUpP2kucHJvcGVydGllc1tlXTpudWxsO2lmKG4pe2lmKHIobix0KSlyZXR1 cm4iIjt2YXIgbz1uLmF0dHJpYnV0ZU5hbWU7cmV0dXJuIG4uaGFzQm9vbGVh blZhbHVlfHxuLmhhc092ZXJsb2FkZWRCb29sZWFuVmFsdWUmJiEwPT09dD9v Kyc9IiInOm8rIj0iK3UodCl9cmV0dXJuIGkuaXNDdXN0b21BdHRyaWJ1dGUo ZSk/bnVsbD09dD8iIjplKyI9Iit1KHQpOm51bGx9LGNyZWF0ZU1hcmt1cEZv ckN1c3RvbUF0dHJpYnV0ZTpmdW5jdGlvbihlLHQpe3JldHVybiBvKGUpJiZu dWxsIT10P2UrIj0iK3UodCk6IiJ9LHNldFZhbHVlRm9yUHJvcGVydHk6ZnVu Y3Rpb24oZSxuLG8pe3ZhciB1PWkucHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0 eShuKT9pLnByb3BlcnRpZXNbbl06bnVsbDtpZih1KXt2YXIgYz11Lm11dGF0 aW9uTWV0aG9kO2lmKGMpYyhlLG8pO2Vsc2V7aWYocih1LG8pKXJldHVybiB2 b2lkIHRoaXMuZGVsZXRlVmFsdWVGb3JQcm9wZXJ0eShlLG4pO2lmKHUubXVz dFVzZVByb3BlcnR5KWVbdS5wcm9wZXJ0eU5hbWVdPW87ZWxzZXt2YXIgbD11 LmF0dHJpYnV0ZU5hbWUscD11LmF0dHJpYnV0ZU5hbWVzcGFjZTtwP2Uuc2V0 QXR0cmlidXRlTlMocCxsLCIiK28pOnUuaGFzQm9vbGVhblZhbHVlfHx1Lmhh c092ZXJsb2FkZWRCb29sZWFuVmFsdWUmJiEwPT09bz9lLnNldEF0dHJpYnV0 ZShsLCIiKTplLnNldEF0dHJpYnV0ZShsLCIiK28pfX19ZWxzZSBpZihpLmlz Q3VzdG9tQXR0cmlidXRlKG4pKXJldHVybiB2b2lkIGYuc2V0VmFsdWVGb3JB dHRyaWJ1dGUoZSxuLG8pO2lmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVf RU5WKXt2YXIgZD17fTtkW25dPW8scy5kZWJ1Z1Rvb2wub25Ib3N0T3BlcmF0 aW9uKHtpbnN0YW5jZUlEOmEuZ2V0SW5zdGFuY2VGcm9tTm9kZShlKS5fZGVi dWdJRCx0eXBlOiJ1cGRhdGUgYXR0cmlidXRlIixwYXlsb2FkOmR9KX19LHNl dFZhbHVlRm9yQXR0cmlidXRlOmZ1bmN0aW9uKGUsbixyKXtpZihvKG4pJiYo bnVsbD09cj9lLnJlbW92ZUF0dHJpYnV0ZShuKTplLnNldEF0dHJpYnV0ZShu LCIiK3IpLCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WKSl7dmFyIGk9 e307aVtuXT1yLHMuZGVidWdUb29sLm9uSG9zdE9wZXJhdGlvbih7aW5zdGFu Y2VJRDphLmdldEluc3RhbmNlRnJvbU5vZGUoZSkuX2RlYnVnSUQsdHlwZToi dXBkYXRlIGF0dHJpYnV0ZSIscGF5bG9hZDppfSl9fSxkZWxldGVWYWx1ZUZv ckF0dHJpYnV0ZTpmdW5jdGlvbihlLG4pe2UucmVtb3ZlQXR0cmlidXRlKG4p LCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZzLmRlYnVnVG9vbC5v bkhvc3RPcGVyYXRpb24oe2luc3RhbmNlSUQ6YS5nZXRJbnN0YW5jZUZyb21O b2RlKGUpLl9kZWJ1Z0lELHR5cGU6InJlbW92ZSBhdHRyaWJ1dGUiLHBheWxv YWQ6bn0pfSxkZWxldGVWYWx1ZUZvclByb3BlcnR5OmZ1bmN0aW9uKGUsbil7 dmFyIG89aS5wcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KG4pP2kucHJvcGVy dGllc1tuXTpudWxsO2lmKG8pe3ZhciByPW8ubXV0YXRpb25NZXRob2Q7aWYo cilyKGUsdm9pZCAwKTtlbHNlIGlmKG8ubXVzdFVzZVByb3BlcnR5KXt2YXIg dT1vLnByb3BlcnR5TmFtZTtvLmhhc0Jvb2xlYW5WYWx1ZT9lW3VdPSExOmVb dV09IiJ9ZWxzZSBlLnJlbW92ZUF0dHJpYnV0ZShvLmF0dHJpYnV0ZU5hbWUp fWVsc2UgaS5pc0N1c3RvbUF0dHJpYnV0ZShuKSYmZS5yZW1vdmVBdHRyaWJ1 dGUobik7InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJnMuZGVidWdU b29sLm9uSG9zdE9wZXJhdGlvbih7aW5zdGFuY2VJRDphLmdldEluc3RhbmNl RnJvbU5vZGUoZSkuX2RlYnVnSUQsdHlwZToicmVtb3ZlIGF0dHJpYnV0ZSIs cGF5bG9hZDpufSl9fTtlLmV4cG9ydHM9Zn0pLmNhbGwodCxuKDApKX0sZnVu Y3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgbz17aGFzQ2FjaGVkQ2hp bGROb2RlczoxfTtlLmV4cG9ydHM9b30sZnVuY3Rpb24oZSx0LG4peyJ1c2Ug c3RyaWN0IjsoZnVuY3Rpb24odCl7ZnVuY3Rpb24gbygpe2lmKHRoaXMuX3Jv b3ROb2RlSUQmJnRoaXMuX3dyYXBwZXJTdGF0ZS5wZW5kaW5nVXBkYXRlKXt0 aGlzLl93cmFwcGVyU3RhdGUucGVuZGluZ1VwZGF0ZT0hMTt2YXIgZT10aGlz Ll9jdXJyZW50RWxlbWVudC5wcm9wcyx0PWMuZ2V0VmFsdWUoZSk7bnVsbCE9 dCYmYSh0aGlzLEJvb2xlYW4oZS5tdWx0aXBsZSksdCl9fWZ1bmN0aW9uIHIo ZSl7aWYoZSl7dmFyIHQ9ZS5nZXROYW1lKCk7aWYodClyZXR1cm4iIENoZWNr IHRoZSByZW5kZXIgbWV0aG9kIG9mIGAiK3QrImAuIn1yZXR1cm4iIn1mdW5j dGlvbiBpKGUsbil7dmFyIG89ZS5fY3VycmVudEVsZW1lbnQuX293bmVyO2Mu Y2hlY2tQcm9wVHlwZXMoInNlbGVjdCIsbixvKSx2b2lkIDA9PT1uLnZhbHVl TGlua3x8Znx8KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZkKCEx LCJgdmFsdWVMaW5rYCBwcm9wIG9uIGBzZWxlY3RgIGlzIGRlcHJlY2F0ZWQ7 IHNldCBgdmFsdWVgIGFuZCBgb25DaGFuZ2VgIGluc3RlYWQuIiksZj0hMCk7 Zm9yKHZhciBpPTA7aTxtLmxlbmd0aDtpKyspe3ZhciBhPW1baV07aWYobnVs bCE9blthXSl7dmFyIHM9QXJyYXkuaXNBcnJheShuW2FdKTtuLm11bHRpcGxl JiYhcz8icHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmZCghMSwiVGhl IGAlc2AgcHJvcCBzdXBwbGllZCB0byA8c2VsZWN0PiBtdXN0IGJlIGFuIGFy cmF5IGlmIGBtdWx0aXBsZWAgaXMgdHJ1ZS4lcyIsYSxyKG8pKTohbi5tdWx0 aXBsZSYmcyYmInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJmQoITEs IlRoZSBgJXNgIHByb3Agc3VwcGxpZWQgdG8gPHNlbGVjdD4gbXVzdCBiZSBh IHNjYWxhciB2YWx1ZSBpZiBgbXVsdGlwbGVgIGlzIGZhbHNlLiVzIixhLHIo bykpfX19ZnVuY3Rpb24gYShlLHQsbil7dmFyIG8scixpPWwuZ2V0Tm9kZUZy b21JbnN0YW5jZShlKS5vcHRpb25zO2lmKHQpe2ZvcihvPXt9LHI9MDtyPG4u bGVuZ3RoO3IrKylvWyIiK25bcl1dPSEwO2ZvcihyPTA7cjxpLmxlbmd0aDty Kyspe3ZhciBhPW8uaGFzT3duUHJvcGVydHkoaVtyXS52YWx1ZSk7aVtyXS5z ZWxlY3RlZCE9PWEmJihpW3JdLnNlbGVjdGVkPWEpfX1lbHNle2ZvcihvPSIi K24scj0wO3I8aS5sZW5ndGg7cisrKWlmKGlbcl0udmFsdWU9PT1vKXJldHVy biB2b2lkKGlbcl0uc2VsZWN0ZWQ9ITApO2kubGVuZ3RoJiYoaVswXS5zZWxl Y3RlZD0hMCl9fWZ1bmN0aW9uIHMoZSl7dmFyIHQ9dGhpcy5fY3VycmVudEVs ZW1lbnQucHJvcHMsbj1jLmV4ZWN1dGVPbkNoYW5nZSh0LGUpO3JldHVybiB0 aGlzLl9yb290Tm9kZUlEJiYodGhpcy5fd3JhcHBlclN0YXRlLnBlbmRpbmdV cGRhdGU9ITApLHAuYXNhcChvLHRoaXMpLG59dmFyIHU9big0KSxjPW4oMzYp LGw9big1KSxwPW4oMTApLGQ9bigyKSxmPSExLGg9ITEsbT1bInZhbHVlIiwi ZGVmYXVsdFZhbHVlIl0sdj17Z2V0SG9zdFByb3BzOmZ1bmN0aW9uKGUsdCl7 cmV0dXJuIHUoe30sdCx7b25DaGFuZ2U6ZS5fd3JhcHBlclN0YXRlLm9uQ2hh bmdlLHZhbHVlOnZvaWQgMH0pfSxtb3VudFdyYXBwZXI6ZnVuY3Rpb24oZSxu KXsicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmaShlLG4pO3ZhciBv PWMuZ2V0VmFsdWUobik7ZS5fd3JhcHBlclN0YXRlPXtwZW5kaW5nVXBkYXRl OiExLGluaXRpYWxWYWx1ZTpudWxsIT1vP286bi5kZWZhdWx0VmFsdWUsbGlz dGVuZXJzOm51bGwsb25DaGFuZ2U6cy5iaW5kKGUpLHdhc011bHRpcGxlOkJv b2xlYW4obi5tdWx0aXBsZSl9LHZvaWQgMD09PW4udmFsdWV8fHZvaWQgMD09 PW4uZGVmYXVsdFZhbHVlfHxofHwoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9E RV9FTlYmJmQoITEsIlNlbGVjdCBlbGVtZW50cyBtdXN0IGJlIGVpdGhlciBj b250cm9sbGVkIG9yIHVuY29udHJvbGxlZCAoc3BlY2lmeSBlaXRoZXIgdGhl IHZhbHVlIHByb3AsIG9yIHRoZSBkZWZhdWx0VmFsdWUgcHJvcCwgYnV0IG5v dCBib3RoKS4gRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9y IHVuY29udHJvbGxlZCBzZWxlY3QgZWxlbWVudCBhbmQgcmVtb3ZlIG9uZSBv ZiB0aGVzZSBwcm9wcy4gTW9yZSBpbmZvOiBodHRwczovL2ZiLm1lL3JlYWN0 LWNvbnRyb2xsZWQtY29tcG9uZW50cyIpLGg9ITApfSxnZXRTZWxlY3RWYWx1 ZUNvbnRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuX3dyYXBwZXJTdGF0ZS5p bml0aWFsVmFsdWV9LHBvc3RVcGRhdGVXcmFwcGVyOmZ1bmN0aW9uKGUpe3Zh ciB0PWUuX2N1cnJlbnRFbGVtZW50LnByb3BzO2UuX3dyYXBwZXJTdGF0ZS5p bml0aWFsVmFsdWU9dm9pZCAwO3ZhciBuPWUuX3dyYXBwZXJTdGF0ZS53YXNN dWx0aXBsZTtlLl93cmFwcGVyU3RhdGUud2FzTXVsdGlwbGU9Qm9vbGVhbih0 Lm11bHRpcGxlKTt2YXIgbz1jLmdldFZhbHVlKHQpO251bGwhPW8/KGUuX3dy YXBwZXJTdGF0ZS5wZW5kaW5nVXBkYXRlPSExLGEoZSxCb29sZWFuKHQubXVs dGlwbGUpLG8pKTpuIT09Qm9vbGVhbih0Lm11bHRpcGxlKSYmKG51bGwhPXQu ZGVmYXVsdFZhbHVlP2EoZSxCb29sZWFuKHQubXVsdGlwbGUpLHQuZGVmYXVs dFZhbHVlKTphKGUsQm9vbGVhbih0Lm11bHRpcGxlKSx0Lm11bHRpcGxlP1td OiIiKSl9fTtlLmV4cG9ydHM9dn0pLmNhbGwodCxuKDApKX0sZnVuY3Rpb24o ZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgbyxyPXtpbmplY3RFbXB0eUNvbXBv bmVudEZhY3Rvcnk6ZnVuY3Rpb24oZSl7bz1lfX0saT17Y3JlYXRlOmZ1bmN0 aW9uKGUpe3JldHVybiBvKGUpfX07aS5pbmplY3Rpb249cixlLmV4cG9ydHM9 aX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgbz17bG9nVG9w TGV2ZWxSZW5kZXJzOiExfTtlLmV4cG9ydHM9b30sZnVuY3Rpb24oZSx0LG4p eyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7ZnVuY3Rpb24gbyhlKXtyZXR1 cm4gdXx8KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP3MoITEsIlRo ZXJlIGlzIG5vIHJlZ2lzdGVyZWQgY29tcG9uZW50IGZvciB0aGUgdGFnICVz IixlLnR5cGUpOmEoIjExMSIsZS50eXBlKSksbmV3IHUoZSl9ZnVuY3Rpb24g cihlKXtyZXR1cm4gbmV3IGMoZSl9ZnVuY3Rpb24gaShlKXtyZXR1cm4gZSBp bnN0YW5jZW9mIGN9dmFyIGE9bigzKSxzPW4oMSksdT1udWxsLGM9bnVsbCxs PXtpbmplY3RHZW5lcmljQ29tcG9uZW50Q2xhc3M6ZnVuY3Rpb24oZSl7dT1l fSxpbmplY3RUZXh0Q29tcG9uZW50Q2xhc3M6ZnVuY3Rpb24oZSl7Yz1lfX0s cD17Y3JlYXRlSW50ZXJuYWxDb21wb25lbnQ6byxjcmVhdGVJbnN0YW5jZUZv clRleHQ6cixpc1RleHRDb21wb25lbnQ6aSxpbmplY3Rpb246bH07ZS5leHBv cnRzPXB9KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0 cmljdCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4gaShkb2N1bWVudC5kb2N1bWVu dEVsZW1lbnQsZSl9dmFyIHI9bigxMTkpLGk9big4NCksYT1uKDUzKSxzPW4o NTQpLHU9e2hhc1NlbGVjdGlvbkNhcGFiaWxpdGllczpmdW5jdGlvbihlKXt2 YXIgdD1lJiZlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7 cmV0dXJuIHQmJigiaW5wdXQiPT09dCYmInRleHQiPT09ZS50eXBlfHwidGV4 dGFyZWEiPT09dHx8InRydWUiPT09ZS5jb250ZW50RWRpdGFibGUpfSxnZXRT ZWxlY3Rpb25JbmZvcm1hdGlvbjpmdW5jdGlvbigpe3ZhciBlPXMoKTtyZXR1 cm57Zm9jdXNlZEVsZW06ZSxzZWxlY3Rpb25SYW5nZTp1Lmhhc1NlbGVjdGlv bkNhcGFiaWxpdGllcyhlKT91LmdldFNlbGVjdGlvbihlKTpudWxsfX0scmVz dG9yZVNlbGVjdGlvbjpmdW5jdGlvbihlKXt2YXIgdD1zKCksbj1lLmZvY3Vz ZWRFbGVtLHI9ZS5zZWxlY3Rpb25SYW5nZTt0IT09biYmbyhuKSYmKHUuaGFz U2VsZWN0aW9uQ2FwYWJpbGl0aWVzKG4pJiZ1LnNldFNlbGVjdGlvbihuLHIp LGEobikpfSxnZXRTZWxlY3Rpb246ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoInNl bGVjdGlvblN0YXJ0ImluIGUpdD17c3RhcnQ6ZS5zZWxlY3Rpb25TdGFydCxl bmQ6ZS5zZWxlY3Rpb25FbmR9O2Vsc2UgaWYoZG9jdW1lbnQuc2VsZWN0aW9u JiZlLm5vZGVOYW1lJiYiaW5wdXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2Fz ZSgpKXt2YXIgbj1kb2N1bWVudC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKTtu LnBhcmVudEVsZW1lbnQoKT09PWUmJih0PXtzdGFydDotbi5tb3ZlU3RhcnQo ImNoYXJhY3RlciIsLWUudmFsdWUubGVuZ3RoKSxlbmQ6LW4ubW92ZUVuZCgi Y2hhcmFjdGVyIiwtZS52YWx1ZS5sZW5ndGgpfSl9ZWxzZSB0PXIuZ2V0T2Zm c2V0cyhlKTtyZXR1cm4gdHx8e3N0YXJ0OjAsZW5kOjB9fSxzZXRTZWxlY3Rp b246ZnVuY3Rpb24oZSx0KXt2YXIgbj10LnN0YXJ0LG89dC5lbmQ7aWYodm9p ZCAwPT09byYmKG89biksInNlbGVjdGlvblN0YXJ0ImluIGUpZS5zZWxlY3Rp b25TdGFydD1uLGUuc2VsZWN0aW9uRW5kPU1hdGgubWluKG8sZS52YWx1ZS5s ZW5ndGgpO2Vsc2UgaWYoZG9jdW1lbnQuc2VsZWN0aW9uJiZlLm5vZGVOYW1l JiYiaW5wdXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXt2YXIgaT1l LmNyZWF0ZVRleHRSYW5nZSgpO2kuY29sbGFwc2UoITApLGkubW92ZVN0YXJ0 KCJjaGFyYWN0ZXIiLG4pLGkubW92ZUVuZCgiY2hhcmFjdGVyIixvLW4pLGku c2VsZWN0KCl9ZWxzZSByLnNldE9mZnNldHMoZSx0KX19O2UuZXhwb3J0cz11 fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtm dW5jdGlvbiBvKGUsdCl7Zm9yKHZhciBuPU1hdGgubWluKGUubGVuZ3RoLHQu bGVuZ3RoKSxvPTA7bzxuO28rKylpZihlLmNoYXJBdChvKSE9PXQuY2hhckF0 KG8pKXJldHVybiBvO3JldHVybiBlLmxlbmd0aD09PXQubGVuZ3RoPy0xOm59 ZnVuY3Rpb24gcihlKXtyZXR1cm4gZT9lLm5vZGVUeXBlPT09aj9lLmRvY3Vt ZW50RWxlbWVudDplLmZpcnN0Q2hpbGQ6bnVsbH1mdW5jdGlvbiBpKGUpe3Jl dHVybiBlLmdldEF0dHJpYnV0ZSYmZS5nZXRBdHRyaWJ1dGUoVSl8fCIifWZ1 bmN0aW9uIGEoZSx0LG4sbyxyKXt2YXIgaTtpZihELmxvZ1RvcExldmVsUmVu ZGVycyl7dmFyIGE9ZS5fY3VycmVudEVsZW1lbnQucHJvcHMuY2hpbGQscz1h LnR5cGU7aT0iUmVhY3QgbW91bnQ6ICIrKCJzdHJpbmciPT10eXBlb2Ygcz9z OnMuZGlzcGxheU5hbWV8fHMubmFtZSksY29uc29sZS50aW1lKGkpfXZhciB1 PVQubW91bnRDb21wb25lbnQoZSxuLG51bGwsYihlLHQpLHIsMCk7aSYmY29u c29sZS50aW1lRW5kKGkpLGUuX3JlbmRlcmVkQ29tcG9uZW50Ll90b3BMZXZl bFdyYXBwZXI9ZSxZLl9tb3VudEltYWdlSW50b05vZGUodSx0LGUsbyxuKX1m dW5jdGlvbiBzKGUsdCxuLG8pe3ZhciByPUkuUmVhY3RSZWNvbmNpbGVUcmFu c2FjdGlvbi5nZXRQb29sZWQoIW4mJkMudXNlQ3JlYXRlRWxlbWVudCk7ci5w ZXJmb3JtKGEsbnVsbCxlLHQscixuLG8pLEkuUmVhY3RSZWNvbmNpbGVUcmFu c2FjdGlvbi5yZWxlYXNlKHIpfWZ1bmN0aW9uIHUoZSxuLG8pe2ZvcigicHJv ZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmdy5kZWJ1Z1Rvb2wub25CZWdp bkZsdXNoKCksVC51bm1vdW50Q29tcG9uZW50KGUsbyksInByb2R1Y3Rpb24i IT09dC5lbnYuTk9ERV9FTlYmJncuZGVidWdUb29sLm9uRW5kRmx1c2goKSxu Lm5vZGVUeXBlPT09aiYmKG49bi5kb2N1bWVudEVsZW1lbnQpO24ubGFzdENo aWxkOyluLnJlbW92ZUNoaWxkKG4ubGFzdENoaWxkKX1mdW5jdGlvbiBjKGUp e3ZhciB0PXIoZSk7aWYodCl7dmFyIG49Ti5nZXRJbnN0YW5jZUZyb21Ob2Rl KHQpO3JldHVybiEoIW58fCFuLl9ob3N0UGFyZW50KX19ZnVuY3Rpb24gbChl KXt2YXIgdD1yKGUpO3JldHVybiEoIXR8fCFkKHQpfHxOLmdldEluc3RhbmNl RnJvbU5vZGUodCkpfWZ1bmN0aW9uIHAoZSl7cmV0dXJuISghZXx8ZS5ub2Rl VHlwZSE9PUYmJmUubm9kZVR5cGUhPT1qJiZlLm5vZGVUeXBlIT09Qil9ZnVu Y3Rpb24gZChlKXtyZXR1cm4gcChlKSYmKGUuaGFzQXR0cmlidXRlKEwpfHxl Lmhhc0F0dHJpYnV0ZShVKSl9ZnVuY3Rpb24gZihlKXt2YXIgdD1yKGUpLG49 dCYmTi5nZXRJbnN0YW5jZUZyb21Ob2RlKHQpO3JldHVybiBuJiYhbi5faG9z dFBhcmVudD9uOm51bGx9ZnVuY3Rpb24gaChlKXt2YXIgdD1mKGUpO3JldHVy biB0P3QuX2hvc3RDb250YWluZXJJbmZvLl90b3BMZXZlbFdyYXBwZXI6bnVs bH12YXIgbT1uKDMpLHY9bigxNyksZz1uKDEzKSx5PW4oMTkpLEU9bigyNiks Xz1uKDExKSxOPW4oNSksYj1uKDExMSksQz1uKDExMyksRD1uKDYxKSxPPW4o MjMpLHc9big4KSx4PW4oMTMzKSxUPW4oMTgpLGs9bigzOSksST1uKDEwKSxQ PW4oMjApLFM9big3MiksVj1uKDEpLFI9bigzMCksTT1uKDQ1KSxBPW4oMiks VT1nLklEX0FUVFJJQlVURV9OQU1FLEw9Zy5ST09UX0FUVFJJQlVURV9OQU1F LEY9MSxqPTksQj0xMSxIPXt9LFc9MSxxPWZ1bmN0aW9uKCl7dGhpcy5yb290 SUQ9VysrfTtxLnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50PXt9LCJwcm9k dWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiYocS5kaXNwbGF5TmFtZT0iVG9w TGV2ZWxXcmFwcGVyIikscS5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7 cmV0dXJuIHRoaXMucHJvcHMuY2hpbGR9LHEuaXNSZWFjdFRvcExldmVsV3Jh cHBlcj0hMDt2YXIgWT17VG9wTGV2ZWxXcmFwcGVyOnEsX2luc3RhbmNlc0J5 UmVhY3RSb290SUQ6SCxzY3JvbGxNb25pdG9yOmZ1bmN0aW9uKGUsdCl7dCgp fSxfdXBkYXRlUm9vdENvbXBvbmVudDpmdW5jdGlvbihlLHQsbixvLHIpe3Jl dHVybiBZLnNjcm9sbE1vbml0b3IobyxmdW5jdGlvbigpe2suZW5xdWV1ZUVs ZW1lbnRJbnRlcm5hbChlLHQsbiksciYmay5lbnF1ZXVlQ2FsbGJhY2tJbnRl cm5hbChlLHIpfSksZX0sX3JlbmRlck5ld1Jvb3RDb21wb25lbnQ6ZnVuY3Rp b24oZSxuLG8scil7InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJkEo bnVsbD09Xy5jdXJyZW50LCJfcmVuZGVyTmV3Um9vdENvbXBvbmVudCgpOiBS ZW5kZXIgbWV0aG9kcyBzaG91bGQgYmUgYSBwdXJlIGZ1bmN0aW9uIG9mIHBy b3BzIGFuZCBzdGF0ZTsgdHJpZ2dlcmluZyBuZXN0ZWQgY29tcG9uZW50IHVw ZGF0ZXMgZnJvbSByZW5kZXIgaXMgbm90IGFsbG93ZWQuIElmIG5lY2Vzc2Fy eSwgdHJpZ2dlciBuZXN0ZWQgdXBkYXRlcyBpbiBjb21wb25lbnREaWRVcGRh dGUuIENoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mICVzLiIsXy5jdXJyZW50 JiZfLmN1cnJlbnQuZ2V0TmFtZSgpfHwiUmVhY3RDb21wb3NpdGVDb21wb25l bnQiKSxwKG4pfHwoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/Vigh MSwiX3JlZ2lzdGVyQ29tcG9uZW50KC4uLik6IFRhcmdldCBjb250YWluZXIg aXMgbm90IGEgRE9NIGVsZW1lbnQuIik6bSgiMzciKSksRS5lbnN1cmVTY3Jv bGxWYWx1ZU1vbml0b3JpbmcoKTt2YXIgaT1TKGUsITEpO0kuYmF0Y2hlZFVw ZGF0ZXMocyxpLG4sbyxyKTt2YXIgYT1pLl9pbnN0YW5jZS5yb290SUQ7cmV0 dXJuIEhbYV09aSxpfSxyZW5kZXJTdWJ0cmVlSW50b0NvbnRhaW5lcjpmdW5j dGlvbihlLG4sbyxyKXtyZXR1cm4gbnVsbCE9ZSYmTy5oYXMoZSl8fCgicHJv ZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9WKCExLCJwYXJlbnRDb21wb25l bnQgbXVzdCBiZSBhIHZhbGlkIFJlYWN0IENvbXBvbmVudCIpOm0oIjM4Iikp LFkuX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyKGUsbixvLHIpfSxfcmVu ZGVyU3VidHJlZUludG9Db250YWluZXI6ZnVuY3Rpb24oZSxuLG8sYSl7ay52 YWxpZGF0ZUNhbGxiYWNrKGEsIlJlYWN0RE9NLnJlbmRlciIpLHkuaXNWYWxp ZEVsZW1lbnQobil8fCgicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9W KCExLCJSZWFjdERPTS5yZW5kZXIoKTogSW52YWxpZCBjb21wb25lbnQgZWxl bWVudC4lcyIsInN0cmluZyI9PXR5cGVvZiBuPyIgSW5zdGVhZCBvZiBwYXNz aW5nIGEgc3RyaW5nIGxpa2UgJ2RpdicsIHBhc3MgUmVhY3QuY3JlYXRlRWxl bWVudCgnZGl2Jykgb3IgPGRpdiAvPi4iOiJmdW5jdGlvbiI9PXR5cGVvZiBu PyIgSW5zdGVhZCBvZiBwYXNzaW5nIGEgY2xhc3MgbGlrZSBGb28sIHBhc3Mg UmVhY3QuY3JlYXRlRWxlbWVudChGb28pIG9yIDxGb28gLz4uIjpudWxsIT1u JiZ2b2lkIDAhPT1uLnByb3BzPyIgVGhpcyBtYXkgYmUgY2F1c2VkIGJ5IHVu aW50ZW50aW9uYWxseSBsb2FkaW5nIHR3byBpbmRlcGVuZGVudCBjb3BpZXMg b2YgUmVhY3QuIjoiIik6bSgiMzkiLCJzdHJpbmciPT10eXBlb2Ygbj8iIElu c3RlYWQgb2YgcGFzc2luZyBhIHN0cmluZyBsaWtlICdkaXYnLCBwYXNzIFJl YWN0LmNyZWF0ZUVsZW1lbnQoJ2RpdicpIG9yIDxkaXYgLz4uIjoiZnVuY3Rp b24iPT10eXBlb2Ygbj8iIEluc3RlYWQgb2YgcGFzc2luZyBhIGNsYXNzIGxp a2UgRm9vLCBwYXNzIFJlYWN0LmNyZWF0ZUVsZW1lbnQoRm9vKSBvciA8Rm9v IC8+LiI6bnVsbCE9biYmdm9pZCAwIT09bi5wcm9wcz8iIFRoaXMgbWF5IGJl IGNhdXNlZCBieSB1bmludGVudGlvbmFsbHkgbG9hZGluZyB0d28gaW5kZXBl bmRlbnQgY29waWVzIG9mIFJlYWN0LiI6IiIpKSwicHJvZHVjdGlvbiIhPT10 LmVudi5OT0RFX0VOViYmQSghb3x8IW8udGFnTmFtZXx8IkJPRFkiIT09by50 YWdOYW1lLnRvVXBwZXJDYXNlKCksInJlbmRlcigpOiBSZW5kZXJpbmcgY29t cG9uZW50cyBkaXJlY3RseSBpbnRvIGRvY3VtZW50LmJvZHkgaXMgZGlzY291 cmFnZWQsIHNpbmNlIGl0cyBjaGlsZHJlbiBhcmUgb2Z0ZW4gbWFuaXB1bGF0 ZWQgYnkgdGhpcmQtcGFydHkgc2NyaXB0cyBhbmQgYnJvd3NlciBleHRlbnNp b25zLiBUaGlzIG1heSBsZWFkIHRvIHN1YnRsZSByZWNvbmNpbGlhdGlvbiBp c3N1ZXMuIFRyeSByZW5kZXJpbmcgaW50byBhIGNvbnRhaW5lciBlbGVtZW50 IGNyZWF0ZWQgZm9yIHlvdXIgYXBwLiIpO3ZhciBzLHU9eS5jcmVhdGVFbGVt ZW50KHEse2NoaWxkOm59KTtpZihlKXt2YXIgbD1PLmdldChlKTtzPWwuX3By b2Nlc3NDaGlsZENvbnRleHQobC5fY29udGV4dCl9ZWxzZSBzPVA7dmFyIHA9 aChvKTtpZihwKXt2YXIgZD1wLl9jdXJyZW50RWxlbWVudCxmPWQucHJvcHMu Y2hpbGQ7aWYoTShmLG4pKXt2YXIgdj1wLl9yZW5kZXJlZENvbXBvbmVudC5n ZXRQdWJsaWNJbnN0YW5jZSgpLGc9YSYmZnVuY3Rpb24oKXthLmNhbGwodil9 O3JldHVybiBZLl91cGRhdGVSb290Q29tcG9uZW50KHAsdSxzLG8sZyksdn1Z LnVubW91bnRDb21wb25lbnRBdE5vZGUobyl9dmFyIEU9cihvKSxfPUUmJiEh aShFKSxOPWMobyk7aWYoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYm JigicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmQSghTiwicmVuZGVy KC4uLik6IFJlcGxhY2luZyBSZWFjdC1yZW5kZXJlZCBjaGlsZHJlbiB3aXRo IGEgbmV3IHJvb3QgY29tcG9uZW50LiBJZiB5b3UgaW50ZW5kZWQgdG8gdXBk YXRlIHRoZSBjaGlsZHJlbiBvZiB0aGlzIG5vZGUsIHlvdSBzaG91bGQgaW5z dGVhZCBoYXZlIHRoZSBleGlzdGluZyBjaGlsZHJlbiB1cGRhdGUgdGhlaXIg c3RhdGUgYW5kIHJlbmRlciB0aGUgbmV3IGNvbXBvbmVudHMgaW5zdGVhZCBv ZiBjYWxsaW5nIFJlYWN0RE9NLnJlbmRlci4iKSwhX3x8RS5uZXh0U2libGlu ZykpZm9yKHZhciBiPUU7Yjspe2lmKGkoYikpeyJwcm9kdWN0aW9uIiE9PXQu ZW52Lk5PREVfRU5WJiZBKCExLCJyZW5kZXIoKTogVGFyZ2V0IG5vZGUgaGFz IG1hcmt1cCByZW5kZXJlZCBieSBSZWFjdCwgYnV0IHRoZXJlIGFyZSB1bnJl bGF0ZWQgbm9kZXMgYXMgd2VsbC4gVGhpcyBpcyBtb3N0IGNvbW1vbmx5IGNh dXNlZCBieSB3aGl0ZS1zcGFjZSBpbnNlcnRlZCBhcm91bmQgc2VydmVyLXJl bmRlcmVkIG1hcmt1cC4iKTticmVha31iPWIubmV4dFNpYmxpbmd9dmFyIEM9 XyYmIXAmJiFOLEQ9WS5fcmVuZGVyTmV3Um9vdENvbXBvbmVudCh1LG8sQyxz KS5fcmVuZGVyZWRDb21wb25lbnQuZ2V0UHVibGljSW5zdGFuY2UoKTtyZXR1 cm4gYSYmYS5jYWxsKEQpLER9LHJlbmRlcjpmdW5jdGlvbihlLHQsbil7cmV0 dXJuIFkuX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyKG51bGwsZSx0LG4p fSx1bm1vdW50Q29tcG9uZW50QXROb2RlOmZ1bmN0aW9uKGUpeyJwcm9kdWN0 aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZBKG51bGw9PV8uY3VycmVudCwidW5t b3VudENvbXBvbmVudEF0Tm9kZSgpOiBSZW5kZXIgbWV0aG9kcyBzaG91bGQg YmUgYSBwdXJlIGZ1bmN0aW9uIG9mIHByb3BzIGFuZCBzdGF0ZTsgdHJpZ2dl cmluZyBuZXN0ZWQgY29tcG9uZW50IHVwZGF0ZXMgZnJvbSByZW5kZXIgaXMg bm90IGFsbG93ZWQuIElmIG5lY2Vzc2FyeSwgdHJpZ2dlciBuZXN0ZWQgdXBk YXRlcyBpbiBjb21wb25lbnREaWRVcGRhdGUuIENoZWNrIHRoZSByZW5kZXIg bWV0aG9kIG9mICVzLiIsXy5jdXJyZW50JiZfLmN1cnJlbnQuZ2V0TmFtZSgp fHwiUmVhY3RDb21wb3NpdGVDb21wb25lbnQiKSxwKGUpfHwoInByb2R1Y3Rp b24iIT09dC5lbnYuTk9ERV9FTlY/VighMSwidW5tb3VudENvbXBvbmVudEF0 Tm9kZSguLi4pOiBUYXJnZXQgY29udGFpbmVyIGlzIG5vdCBhIERPTSBlbGVt ZW50LiIpOm0oIjQwIikpLCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5W JiYicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmQSghbChlKSwidW5t b3VudENvbXBvbmVudEF0Tm9kZSgpOiBUaGUgbm9kZSB5b3UncmUgYXR0ZW1w dGluZyB0byB1bm1vdW50IHdhcyByZW5kZXJlZCBieSBhbm90aGVyIGNvcHkg b2YgUmVhY3QuIik7dmFyIG49aChlKTtpZighbil7dmFyIG89YyhlKSxyPTE9 PT1lLm5vZGVUeXBlJiZlLmhhc0F0dHJpYnV0ZShMKTtyZXR1cm4icHJvZHVj dGlvbiIhPT10LmVudi5OT0RFX0VOViYmInByb2R1Y3Rpb24iIT09dC5lbnYu Tk9ERV9FTlYmJkEoIW8sInVubW91bnRDb21wb25lbnRBdE5vZGUoKTogVGhl IG5vZGUgeW91J3JlIGF0dGVtcHRpbmcgdG8gdW5tb3VudCB3YXMgcmVuZGVy ZWQgYnkgUmVhY3QgYW5kIGlzIG5vdCBhIHRvcC1sZXZlbCBjb250YWluZXIu ICVzIixyPyJZb3UgbWF5IGhhdmUgYWNjaWRlbnRhbGx5IHBhc3NlZCBpbiBh IFJlYWN0IHJvb3Qgbm9kZSBpbnN0ZWFkIG9mIGl0cyBjb250YWluZXIuIjoi SW5zdGVhZCwgaGF2ZSB0aGUgcGFyZW50IGNvbXBvbmVudCB1cGRhdGUgaXRz IHN0YXRlIGFuZCByZXJlbmRlciBpbiBvcmRlciB0byByZW1vdmUgdGhpcyBj b21wb25lbnQuIiksITF9cmV0dXJuIGRlbGV0ZSBIW24uX2luc3RhbmNlLnJv b3RJRF0sSS5iYXRjaGVkVXBkYXRlcyh1LG4sZSwhMSksITB9LF9tb3VudElt YWdlSW50b05vZGU6ZnVuY3Rpb24oZSxuLGksYSxzKXtpZihwKG4pfHwoInBy b2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/VighMSwibW91bnRDb21wb25l bnRJbnRvTm9kZSguLi4pOiBUYXJnZXQgY29udGFpbmVyIGlzIG5vdCB2YWxp ZC4iKTptKCI0MSIpKSxhKXt2YXIgdT1yKG4pO2lmKHguY2FuUmV1c2VNYXJr dXAoZSx1KSlyZXR1cm4gdm9pZCBOLnByZWNhY2hlTm9kZShpLHUpO3ZhciBj PXUuZ2V0QXR0cmlidXRlKHguQ0hFQ0tTVU1fQVRUUl9OQU1FKTt1LnJlbW92 ZUF0dHJpYnV0ZSh4LkNIRUNLU1VNX0FUVFJfTkFNRSk7dmFyIGw9dS5vdXRl ckhUTUw7dS5zZXRBdHRyaWJ1dGUoeC5DSEVDS1NVTV9BVFRSX05BTUUsYyk7 dmFyIGQ9ZTtpZigicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVil7dmFy IGY7bi5ub2RlVHlwZT09PUY/KGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi ZGl2IiksZi5pbm5lckhUTUw9ZSxkPWYuaW5uZXJIVE1MKTooZj1kb2N1bWVu dC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKSxkb2N1bWVudC5ib2R5LmFwcGVu ZENoaWxkKGYpLGYuY29udGVudERvY3VtZW50LndyaXRlKGUpLGQ9Zi5jb250 ZW50RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm91dGVySFRNTCxkb2N1bWVu dC5ib2R5LnJlbW92ZUNoaWxkKGYpKX12YXIgaD1vKGQsbCksZz0iIChjbGll bnQpICIrZC5zdWJzdHJpbmcoaC0yMCxoKzIwKSsiXG4gKHNlcnZlcikgIits LnN1YnN0cmluZyhoLTIwLGgrMjApO24ubm9kZVR5cGU9PT1qJiYoInByb2R1 Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/VighMSwiWW91J3JlIHRyeWluZyB0 byByZW5kZXIgYSBjb21wb25lbnQgdG8gdGhlIGRvY3VtZW50IHVzaW5nIHNl cnZlciByZW5kZXJpbmcgYnV0IHRoZSBjaGVja3N1bSB3YXMgaW52YWxpZC4g VGhpcyB1c3VhbGx5IG1lYW5zIHlvdSByZW5kZXJlZCBhIGRpZmZlcmVudCBj b21wb25lbnQgdHlwZSBvciBwcm9wcyBvbiB0aGUgY2xpZW50IGZyb20gdGhl IG9uZSBvbiB0aGUgc2VydmVyLCBvciB5b3VyIHJlbmRlcigpIG1ldGhvZHMg YXJlIGltcHVyZS4gUmVhY3QgY2Fubm90IGhhbmRsZSB0aGlzIGNhc2UgZHVl IHRvIGNyb3NzLWJyb3dzZXIgcXVpcmtzIGJ5IHJlbmRlcmluZyBhdCB0aGUg ZG9jdW1lbnQgcm9vdC4gWW91IHNob3VsZCBsb29rIGZvciBlbnZpcm9ubWVu dCBkZXBlbmRlbnQgY29kZSBpbiB5b3VyIGNvbXBvbmVudHMgYW5kIGVuc3Vy ZSB0aGUgcHJvcHMgYXJlIHRoZSBzYW1lIGNsaWVudCBhbmQgc2VydmVyIHNp ZGU6XG4lcyIsZyk6bSgiNDIiLGcpKSwicHJvZHVjdGlvbiIhPT10LmVudi5O T0RFX0VOViYmInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJkEoITEs IlJlYWN0IGF0dGVtcHRlZCB0byByZXVzZSBtYXJrdXAgaW4gYSBjb250YWlu ZXIgYnV0IHRoZSBjaGVja3N1bSB3YXMgaW52YWxpZC4gVGhpcyBnZW5lcmFs bHkgbWVhbnMgdGhhdCB5b3UgYXJlIHVzaW5nIHNlcnZlciByZW5kZXJpbmcg YW5kIHRoZSBtYXJrdXAgZ2VuZXJhdGVkIG9uIHRoZSBzZXJ2ZXIgd2FzIG5v dCB3aGF0IHRoZSBjbGllbnQgd2FzIGV4cGVjdGluZy4gUmVhY3QgaW5qZWN0 ZWQgbmV3IG1hcmt1cCB0byBjb21wZW5zYXRlIHdoaWNoIHdvcmtzIGJ1dCB5 b3UgaGF2ZSBsb3N0IG1hbnkgb2YgdGhlIGJlbmVmaXRzIG9mIHNlcnZlciBy ZW5kZXJpbmcuIEluc3RlYWQsIGZpZ3VyZSBvdXQgd2h5IHRoZSBtYXJrdXAg YmVpbmcgZ2VuZXJhdGVkIGlzIGRpZmZlcmVudCBvbiB0aGUgY2xpZW50IG9y IHNlcnZlcjpcbiVzIixnKX1pZihuLm5vZGVUeXBlPT09aiYmKCJwcm9kdWN0 aW9uIiE9PXQuZW52Lk5PREVfRU5WP1YoITEsIllvdSdyZSB0cnlpbmcgdG8g cmVuZGVyIGEgY29tcG9uZW50IHRvIHRoZSBkb2N1bWVudCBidXQgeW91IGRp ZG4ndCB1c2Ugc2VydmVyIHJlbmRlcmluZy4gV2UgY2FuJ3QgZG8gdGhpcyB3 aXRob3V0IHVzaW5nIHNlcnZlciByZW5kZXJpbmcgZHVlIHRvIGNyb3NzLWJy b3dzZXIgcXVpcmtzLiBTZWUgUmVhY3RET01TZXJ2ZXIucmVuZGVyVG9TdHJp bmcoKSBmb3Igc2VydmVyIHJlbmRlcmluZy4iKTptKCI0MyIpKSxzLnVzZUNy ZWF0ZUVsZW1lbnQpe2Zvcig7bi5sYXN0Q2hpbGQ7KW4ucmVtb3ZlQ2hpbGQo bi5sYXN0Q2hpbGQpO3YuaW5zZXJ0VHJlZUJlZm9yZShuLGUsbnVsbCl9ZWxz ZSBSKG4sZSksTi5wcmVjYWNoZU5vZGUoaSxuLmZpcnN0Q2hpbGQpO2lmKCJw cm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WKXt2YXIgeT1OLmdldEluc3Rh bmNlRnJvbU5vZGUobi5maXJzdENoaWxkKTswIT09eS5fZGVidWdJRCYmdy5k ZWJ1Z1Rvb2wub25Ib3N0T3BlcmF0aW9uKHtpbnN0YW5jZUlEOnkuX2RlYnVn SUQsdHlwZToibW91bnQiLHBheWxvYWQ6ZS50b1N0cmluZygpfSl9fX07ZS5l eHBvcnRzPVl9KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNl IHN0cmljdCI7KGZ1bmN0aW9uKHQpe3ZhciBvPW4oMykscj1uKDE5KSxpPW4o MSksYT17SE9TVDowLENPTVBPU0lURToxLEVNUFRZOjIsZ2V0VHlwZTpmdW5j dGlvbihlKXtyZXR1cm4gbnVsbD09PWV8fCExPT09ZT9hLkVNUFRZOnIuaXNW YWxpZEVsZW1lbnQoZSk/ImZ1bmN0aW9uIj09dHlwZW9mIGUudHlwZT9hLkNP TVBPU0lURTphLkhPU1Q6dm9pZCgicHJvZHVjdGlvbiIhPT10LmVudi5OT0RF X0VOVj9pKCExLCJVbmV4cGVjdGVkIG5vZGU6ICVzIixlKTpvKCIyNiIsZSkp fX07ZS5leHBvcnRzPWF9KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxu KXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPSJTRUNSRVRfRE9fTk9UX1BBU1Nf VEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCJ9LGZ1bmN0aW9uKGUsdCxuKXsi dXNlIHN0cmljdCI7dmFyIG89e2N1cnJlbnRTY3JvbGxMZWZ0OjAsY3VycmVu dFNjcm9sbFRvcDowLHJlZnJlc2hTY3JvbGxWYWx1ZXM6ZnVuY3Rpb24oZSl7 by5jdXJyZW50U2Nyb2xsTGVmdD1lLngsby5jdXJyZW50U2Nyb2xsVG9wPWUu eX19O2UuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3Qi OyhmdW5jdGlvbih0KXtmdW5jdGlvbiBvKGUsbil7cmV0dXJuIG51bGw9PW4m JigicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9pKCExLCJhY2N1bXVs YXRlSW50byguLi4pOiBBY2N1bXVsYXRlZCBpdGVtcyBtdXN0IG5vdCBiZSBu dWxsIG9yIHVuZGVmaW5lZC4iKTpyKCIzMCIpKSxudWxsPT1lP246QXJyYXku aXNBcnJheShlKT9BcnJheS5pc0FycmF5KG4pPyhlLnB1c2guYXBwbHkoZSxu KSxlKTooZS5wdXNoKG4pLGUpOkFycmF5LmlzQXJyYXkobik/W2VdLmNvbmNh dChuKTpbZSxuXX12YXIgcj1uKDMpLGk9bigxKTtlLmV4cG9ydHM9b30pLmNh bGwodCxuKDApKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5j dGlvbiBvKGUsdCxuKXtBcnJheS5pc0FycmF5KGUpP2UuZm9yRWFjaCh0LG4p OmUmJnQuY2FsbChuLGUpfWUuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7 InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSl7Zm9yKHZhciB0Oyh0PWUuX3Jl bmRlcmVkTm9kZVR5cGUpPT09ci5DT01QT1NJVEU7KWU9ZS5fcmVuZGVyZWRD b21wb25lbnQ7cmV0dXJuIHQ9PT1yLkhPU1Q/ZS5fcmVuZGVyZWRDb21wb25l bnQ6dD09PXIuRU1QVFk/bnVsbDp2b2lkIDB9dmFyIHI9big2NSk7ZS5leHBv cnRzPW99LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24g bygpe3JldHVybiFpJiZyLmNhblVzZURPTSYmKGk9InRleHRDb250ZW50Imlu IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudD8idGV4dENvbnRlbnQiOiJpbm5l clRleHQiKSxpfXZhciByPW4oNiksaT1udWxsO2UuZXhwb3J0cz1vfSxmdW5j dGlvbihlLHQsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtmdW5jdGlv biBvKGUpe2lmKGUpe3ZhciB0PWUuZ2V0TmFtZSgpO2lmKHQpcmV0dXJuIiBD aGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgIit0KyJgLiJ9cmV0dXJuIiJ9 ZnVuY3Rpb24gcihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmdm9p ZCAwIT09ZS5wcm90b3R5cGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLnByb3Rv dHlwZS5tb3VudENvbXBvbmVudCYmImZ1bmN0aW9uIj09dHlwZW9mIGUucHJv dG90eXBlLnJlY2VpdmVDb21wb25lbnR9ZnVuY3Rpb24gaShlLG4pe3ZhciBz O2lmKG51bGw9PT1lfHwhMT09PWUpcz1jLmNyZWF0ZShpKTtlbHNlIGlmKCJv YmplY3QiPT10eXBlb2YgZSl7dmFyIHU9ZSxtPXUudHlwZTtpZigiZnVuY3Rp b24iIT10eXBlb2YgbSYmInN0cmluZyIhPXR5cGVvZiBtKXt2YXIgdj0iIjsi cHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmKHZvaWQgMD09PW18fCJv YmplY3QiPT10eXBlb2YgbSYmbnVsbCE9PW0mJjA9PT1PYmplY3Qua2V5cyht KS5sZW5ndGgpJiYodis9IiBZb3UgbGlrZWx5IGZvcmdvdCB0byBleHBvcnQg eW91ciBjb21wb25lbnQgZnJvbSB0aGUgZmlsZSBpdCdzIGRlZmluZWQgaW4u Iiksdis9byh1Ll9vd25lciksInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9F TlY/ZCghMSwiRWxlbWVudCB0eXBlIGlzIGludmFsaWQ6IGV4cGVjdGVkIGEg c3RyaW5nIChmb3IgYnVpbHQtaW4gY29tcG9uZW50cykgb3IgYSBjbGFzcy9m dW5jdGlvbiAoZm9yIGNvbXBvc2l0ZSBjb21wb25lbnRzKSBidXQgZ290OiAl cy4lcyIsbnVsbD09bT9tOnR5cGVvZiBtLHYpOmEoIjEzMCIsbnVsbD09bT9t OnR5cGVvZiBtLHYpfSJzdHJpbmciPT10eXBlb2YgdS50eXBlP3M9bC5jcmVh dGVJbnRlcm5hbENvbXBvbmVudCh1KTpyKHUudHlwZSk/KHM9bmV3IHUudHlw ZSh1KSxzLmdldEhvc3ROb2RlfHwocy5nZXRIb3N0Tm9kZT1zLmdldE5hdGl2 ZU5vZGUpKTpzPW5ldyBoKHUpfWVsc2Uic3RyaW5nIj09dHlwZW9mIGV8fCJu dW1iZXIiPT10eXBlb2YgZT9zPWwuY3JlYXRlSW5zdGFuY2VGb3JUZXh0KGUp OiJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP2QoITEsIkVuY291bnRl cmVkIGludmFsaWQgUmVhY3Qgbm9kZSBvZiB0eXBlICVzIix0eXBlb2YgZSk6 YSgiMTMxIix0eXBlb2YgZSk7cmV0dXJuInByb2R1Y3Rpb24iIT09dC5lbnYu Tk9ERV9FTlYmJiJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZmKCJm dW5jdGlvbiI9PXR5cGVvZiBzLm1vdW50Q29tcG9uZW50JiYiZnVuY3Rpb24i PT10eXBlb2Ygcy5yZWNlaXZlQ29tcG9uZW50JiYiZnVuY3Rpb24iPT10eXBl b2Ygcy5nZXRIb3N0Tm9kZSYmImZ1bmN0aW9uIj09dHlwZW9mIHMudW5tb3Vu dENvbXBvbmVudCwiT25seSBSZWFjdCBDb21wb25lbnRzIGNhbiBiZSBtb3Vu dGVkLiIpLHMuX21vdW50SW5kZXg9MCxzLl9tb3VudEltYWdlPW51bGwsInBy b2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJihzLl9kZWJ1Z0lEPW4/cCgp OjApLCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZPYmplY3QucHJl dmVudEV4dGVuc2lvbnMmJk9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyhzKSxz fXZhciBhPW4oMykscz1uKDQpLHU9bigxMDgpLGM9big2MCksbD1uKDYyKSxw PW4oMTYyKSxkPW4oMSksZj1uKDIpLGg9ZnVuY3Rpb24oZSl7dGhpcy5jb25z dHJ1Y3QoZSl9O3MoaC5wcm90b3R5cGUsdSx7X2luc3RhbnRpYXRlUmVhY3RD b21wb25lbnQ6aX0pLGUuZXhwb3J0cz1pfSkuY2FsbCh0LG4oMCkpfSxmdW5j dGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSl7dmFyIHQ9 ZSYmZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVy biJpbnB1dCI9PT10PyEhcltlLnR5cGVdOiJ0ZXh0YXJlYSI9PT10fXZhciBy PXtjb2xvcjohMCxkYXRlOiEwLGRhdGV0aW1lOiEwLCJkYXRldGltZS1sb2Nh bCI6ITAsZW1haWw6ITAsbW9udGg6ITAsbnVtYmVyOiEwLHBhc3N3b3JkOiEw LHJhbmdlOiEwLHNlYXJjaDohMCx0ZWw6ITAsdGV4dDohMCx0aW1lOiEwLHVy bDohMCx3ZWVrOiEwfTtlLmV4cG9ydHM9b30sZnVuY3Rpb24oZSx0LG4peyJ1 c2Ugc3RyaWN0Ijt2YXIgbz1uKDYpLHI9bigyOSksaT1uKDMwKSxhPWZ1bmN0 aW9uKGUsdCl7aWYodCl7dmFyIG49ZS5maXJzdENoaWxkO2lmKG4mJm49PT1l Lmxhc3RDaGlsZCYmMz09PW4ubm9kZVR5cGUpcmV0dXJuIHZvaWQobi5ub2Rl VmFsdWU9dCl9ZS50ZXh0Q29udGVudD10fTtvLmNhblVzZURPTSYmKCJ0ZXh0 Q29udGVudCJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fChhPWZ1bmN0 aW9uKGUsdCl7aWYoMz09PWUubm9kZVR5cGUpcmV0dXJuIHZvaWQoZS5ub2Rl VmFsdWU9dCk7aShlLHIodCkpfSkpLGUuZXhwb3J0cz1hfSxmdW5jdGlvbihl LHQsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtmdW5jdGlvbiBvKGUs dCl7cmV0dXJuIGUmJiJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9ZS5rZXk/ cC5lc2NhcGUoZS5rZXkpOnQudG9TdHJpbmcoMzYpfWZ1bmN0aW9uIHIoZSxu LGksdil7dmFyIGc9dHlwZW9mIGU7aWYoInVuZGVmaW5lZCIhPT1nJiYiYm9v bGVhbiIhPT1nfHwoZT1udWxsKSxudWxsPT09ZXx8InN0cmluZyI9PT1nfHwi bnVtYmVyIj09PWd8fCJvYmplY3QiPT09ZyYmZS4kJHR5cGVvZj09PXUpcmV0 dXJuIGkodixlLCIiPT09bj9mK28oZSwwKTpuKSwxO3ZhciB5LEUsXz0wLE49 IiI9PT1uP2Y6bitoO2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKHZhciBiPTA7 YjxlLmxlbmd0aDtiKyspeT1lW2JdLEU9TitvKHksYiksXys9cih5LEUsaSx2 KTtlbHNle3ZhciBDPWMoZSk7aWYoQyl7dmFyIEQsTz1DLmNhbGwoZSk7aWYo QyE9PWUuZW50cmllcylmb3IodmFyIHc9MDshKEQ9Ty5uZXh0KCkpLmRvbmU7 KXk9RC52YWx1ZSxFPU4rbyh5LHcrKyksXys9cih5LEUsaSx2KTtlbHNle2lm KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WKXt2YXIgeD0iIjtpZihz LmN1cnJlbnQpe3ZhciBUPXMuY3VycmVudC5nZXROYW1lKCk7VCYmKHg9IiBD aGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgIitUKyJgLiIpfSJwcm9kdWN0 aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZkKG0sIlVzaW5nIE1hcHMgYXMgY2hp bGRyZW4gaXMgbm90IHlldCBmdWxseSBzdXBwb3J0ZWQuIEl0IGlzIGFuIGV4 cGVyaW1lbnRhbCBmZWF0dXJlIHRoYXQgbWlnaHQgYmUgcmVtb3ZlZC4gQ29u dmVydCBpdCB0byBhIHNlcXVlbmNlIC8gaXRlcmFibGUgb2Yga2V5ZWQgUmVh Y3RFbGVtZW50cyBpbnN0ZWFkLiVzIix4KSxtPSEwfWZvcig7IShEPU8ubmV4 dCgpKS5kb25lOyl7dmFyIGs9RC52YWx1ZTtrJiYoeT1rWzFdLEU9TitwLmVz Y2FwZShrWzBdKStoK28oeSwwKSxfKz1yKHksRSxpLHYpKX19fWVsc2UgaWYo Im9iamVjdCI9PT1nKXt2YXIgST0iIjtpZigicHJvZHVjdGlvbiIhPT10LmVu di5OT0RFX0VOViYmKEk9IiBJZiB5b3UgbWVhbnQgdG8gcmVuZGVyIGEgY29s bGVjdGlvbiBvZiBjaGlsZHJlbiwgdXNlIGFuIGFycmF5IGluc3RlYWQgb3Ig d3JhcCB0aGUgb2JqZWN0IHVzaW5nIGNyZWF0ZUZyYWdtZW50KG9iamVjdCkg ZnJvbSB0aGUgUmVhY3QgYWRkLW9ucy4iLGUuX2lzUmVhY3RFbGVtZW50JiYo ST0iIEl0IGxvb2tzIGxpa2UgeW91J3JlIHVzaW5nIGFuIGVsZW1lbnQgY3Jl YXRlZCBieSBhIGRpZmZlcmVudCB2ZXJzaW9uIG9mIFJlYWN0LiBNYWtlIHN1 cmUgdG8gdXNlIG9ubHkgb25lIGNvcHkgb2YgUmVhY3QuIikscy5jdXJyZW50 KSl7dmFyIFA9cy5jdXJyZW50LmdldE5hbWUoKTtQJiYoSSs9IiBDaGVjayB0 aGUgcmVuZGVyIG1ldGhvZCBvZiBgIitQKyJgLiIpfXZhciBTPVN0cmluZyhl KTsicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9sKCExLCJPYmplY3Rz IGFyZSBub3QgdmFsaWQgYXMgYSBSZWFjdCBjaGlsZCAoZm91bmQ6ICVzKS4l cyIsIltvYmplY3QgT2JqZWN0XSI9PT1TPyJvYmplY3Qgd2l0aCBrZXlzIHsi K09iamVjdC5rZXlzKGUpLmpvaW4oIiwgIikrIn0iOlMsSSk6YSgiMzEiLCJb b2JqZWN0IE9iamVjdF0iPT09Uz8ib2JqZWN0IHdpdGgga2V5cyB7IitPYmpl Y3Qua2V5cyhlKS5qb2luKCIsICIpKyJ9IjpTLEkpfX1yZXR1cm4gX31mdW5j dGlvbiBpKGUsdCxuKXtyZXR1cm4gbnVsbD09ZT8wOnIoZSwiIix0LG4pfXZh ciBhPW4oMykscz1uKDExKSx1PW4oMTI3KSxjPW4oMTYxKSxsPW4oMSkscD1u KDM1KSxkPW4oMiksZj0iLiIsaD0iOiIsbT0hMTtlLmV4cG9ydHM9aX0pLmNh bGwodCxuKDApKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIg bz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuZm9yJiZTeW1i b2wuZm9yKCJyZWFjdC5lbGVtZW50Iil8fDYwMTAzO2UuZXhwb3J0cz1vfSxm dW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtmdW5j dGlvbiBvKCl7aWYodS5jdXJyZW50KXt2YXIgZT11LmN1cnJlbnQuZ2V0TmFt ZSgpO2lmKGUpcmV0dXJuIiBDaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBg IitlKyJgLiJ9cmV0dXJuIiJ9ZnVuY3Rpb24gcihlKXt2YXIgdD1vKCk7aWYo IXQpe3ZhciBuPSJzdHJpbmciPT10eXBlb2YgZT9lOmUuZGlzcGxheU5hbWV8 fGUubmFtZTtuJiYodD0iIENoZWNrIHRoZSB0b3AtbGV2ZWwgcmVuZGVyIGNh bGwgdXNpbmcgPCIrbisiPi4iKX1yZXR1cm4gdH1mdW5jdGlvbiBpKGUsbil7 aWYoZS5fc3RvcmUmJiFlLl9zdG9yZS52YWxpZGF0ZWQmJm51bGw9PWUua2V5 KXtlLl9zdG9yZS52YWxpZGF0ZWQ9ITA7dmFyIG89bS51bmlxdWVLZXl8fCht LnVuaXF1ZUtleT17fSksaT1yKG4pO2lmKCFvW2ldKXtvW2ldPSEwO3ZhciBh PSIiO2UmJmUuX293bmVyJiZlLl9vd25lciE9PXUuY3VycmVudCYmKGE9IiBJ dCB3YXMgcGFzc2VkIGEgY2hpbGQgZnJvbSAiK2UuX293bmVyLmdldE5hbWUo KSsiLiIpLCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZoKCExLCdF YWNoIGNoaWxkIGluIGFuIGFycmF5IG9yIGl0ZXJhdG9yIHNob3VsZCBoYXZl IGEgdW5pcXVlICJrZXkiIHByb3AuJXMlcyBTZWUgaHR0cHM6Ly9mYi5tZS9y ZWFjdC13YXJuaW5nLWtleXMgZm9yIG1vcmUgaW5mb3JtYXRpb24uJXMnLGks YSxjLmdldEN1cnJlbnRTdGFja0FkZGVuZHVtKGUpKX19fWZ1bmN0aW9uIGEo ZSx0KXtpZigib2JqZWN0Ij09dHlwZW9mIGUpaWYoQXJyYXkuaXNBcnJheShl KSlmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIG89ZVtuXTtsLmlz VmFsaWRFbGVtZW50KG8pJiZpKG8sdCl9ZWxzZSBpZihsLmlzVmFsaWRFbGVt ZW50KGUpKWUuX3N0b3JlJiYoZS5fc3RvcmUudmFsaWRhdGVkPSEwKTtlbHNl IGlmKGUpe3ZhciByPWYoZSk7aWYociYmciE9PWUuZW50cmllcylmb3IodmFy IGEscz1yLmNhbGwoZSk7IShhPXMubmV4dCgpKS5kb25lOylsLmlzVmFsaWRF bGVtZW50KGEudmFsdWUpJiZpKGEudmFsdWUsdCl9fWZ1bmN0aW9uIHMoZSl7 dmFyIG49ZS50eXBlO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBuKXt2YXIgbz1u LmRpc3BsYXlOYW1lfHxuLm5hbWU7bi5wcm9wVHlwZXMmJnAobi5wcm9wVHlw ZXMsZS5wcm9wcywicHJvcCIsbyxlLG51bGwpLCJmdW5jdGlvbiI9PXR5cGVv ZiBuLmdldERlZmF1bHRQcm9wcyYmInByb2R1Y3Rpb24iIT09dC5lbnYuTk9E RV9FTlYmJmgobi5nZXREZWZhdWx0UHJvcHMuaXNSZWFjdENsYXNzQXBwcm92 ZWQsImdldERlZmF1bHRQcm9wcyBpcyBvbmx5IHVzZWQgb24gY2xhc3NpYyBS ZWFjdC5jcmVhdGVDbGFzcyBkZWZpbml0aW9ucy4gVXNlIGEgc3RhdGljIHBy b3BlcnR5IG5hbWVkIGBkZWZhdWx0UHJvcHNgIGluc3RlYWQuIil9fXZhciB1 PW4oMTEpLGM9big3KSxsPW4oMTUpLHA9bigxNzUpLGQ9big1MCksZj1uKDUx KSxoPW4oMiksbT17fSx2PXtjcmVhdGVFbGVtZW50OmZ1bmN0aW9uKGUsbixy KXt2YXIgaT0ic3RyaW5nIj09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVv ZiBlO2lmKCFpJiYiZnVuY3Rpb24iIT10eXBlb2YgZSYmInN0cmluZyIhPXR5 cGVvZiBlKXt2YXIgdT0iIjsodm9pZCAwPT09ZXx8Im9iamVjdCI9PXR5cGVv ZiBlJiZudWxsIT09ZSYmMD09PU9iamVjdC5rZXlzKGUpLmxlbmd0aCkmJih1 Kz0iIFlvdSBsaWtlbHkgZm9yZ290IHRvIGV4cG9ydCB5b3VyIGNvbXBvbmVu dCBmcm9tIHRoZSBmaWxlIGl0J3MgZGVmaW5lZCBpbi4iKSx1Kz1vKCksInBy b2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJmgoITEsIlJlYWN0LmNyZWF0 ZUVsZW1lbnQ6IHR5cGUgaXMgaW52YWxpZCAtLSBleHBlY3RlZCBhIHN0cmlu ZyAoZm9yIGJ1aWx0LWluIGNvbXBvbmVudHMpIG9yIGEgY2xhc3MvZnVuY3Rp b24gKGZvciBjb21wb3NpdGUgY29tcG9uZW50cykgYnV0IGdvdDogJXMuJXMi LG51bGw9PWU/ZTp0eXBlb2YgZSx1KX12YXIgYz1sLmNyZWF0ZUVsZW1lbnQu YXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKG51bGw9PWMpcmV0dXJuIGM7aWYo aSlmb3IodmFyIHA9MjtwPGFyZ3VtZW50cy5sZW5ndGg7cCsrKWEoYXJndW1l bnRzW3BdLGUpO3JldHVybiBzKGMpLGN9LGNyZWF0ZUZhY3Rvcnk6ZnVuY3Rp b24oZSl7dmFyIG49di5jcmVhdGVFbGVtZW50LmJpbmQobnVsbCxlKTtyZXR1 cm4gbi50eXBlPWUsInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJmQm Jk9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJ0eXBlIix7ZW51bWVyYWJsZToh MSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4icHJvZHVjdGlvbiIhPT10LmVudi5O T0RFX0VOViYmaCghMSwiRmFjdG9yeS50eXBlIGlzIGRlcHJlY2F0ZWQuIEFj Y2VzcyB0aGUgY2xhc3MgZGlyZWN0bHkgYmVmb3JlIHBhc3NpbmcgaXQgdG8g Y3JlYXRlRmFjdG9yeS4iKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywi dHlwZSIse3ZhbHVlOmV9KSxlfX0pLG59LGNsb25lRWxlbWVudDpmdW5jdGlv bihlLHQsbil7Zm9yKHZhciBvPWwuY2xvbmVFbGVtZW50LmFwcGx5KHRoaXMs YXJndW1lbnRzKSxyPTI7cjxhcmd1bWVudHMubGVuZ3RoO3IrKylhKGFyZ3Vt ZW50c1tyXSxvLnR5cGUpO3JldHVybiBzKG8pLG99fTtlLmV4cG9ydHM9dn0p LmNhbGwodCxuKDApKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijtl LmV4cG9ydHM9IlNFQ1JFVF9ET19OT1RfUEFTU19USElTX09SX1lPVV9XSUxM X0JFX0ZJUkVEIn0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4 cG9ydHM9bigxMDkpfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Uu ZXhwb3J0cz1uKDE5KX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtP YmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEw fSksdC5SZWFjdD10LnJlbmRlcj12b2lkIDA7dmFyIG89big4MCkscj1mdW5j dGlvbihlKXtyZXR1cm4gZSYmZS5fX2VzTW9kdWxlP2U6e2RlZmF1bHQ6ZX19 KG8pLGk9big3OSk7dC5yZW5kZXI9aS5yZW5kZXIsdC5SZWFjdD1yLmRlZmF1 bHR9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhl KXtyZXR1cm4gZS5yZXBsYWNlKHIsZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC50 b1VwcGVyQ2FzZSgpfSl9dmFyIHI9Ly0oLikvZztlLmV4cG9ydHM9b30sZnVu Y3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKGUpe3JldHVy biByKGUucmVwbGFjZShpLCJtcy0iKSl9dmFyIHI9big4MiksaT0vXi1tcy0v O2UuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1 bmN0aW9uIG8oZSx0KXtyZXR1cm4hKCFlfHwhdCkmJihlPT09dHx8IXIoZSkm JihyKHQpP28oZSx0LnBhcmVudE5vZGUpOiJjb250YWlucyJpbiBlP2UuY29u dGFpbnModCk6ISFlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYhISgxNiZl LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHQpKSkpfXZhciByPW4oOTIpO2Uu ZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiOyhmdW5j dGlvbih0KXtmdW5jdGlvbiBvKGUpe3ZhciBuPWUubGVuZ3RoO2lmKChBcnJh eS5pc0FycmF5KGUpfHwib2JqZWN0IiE9dHlwZW9mIGUmJiJmdW5jdGlvbiIh PXR5cGVvZiBlKSYmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP2Eo ITEsInRvQXJyYXk6IEFycmF5LWxpa2Ugb2JqZWN0IGV4cGVjdGVkIik6YSgh MSkpLCJudW1iZXIiIT10eXBlb2YgbiYmKCJwcm9kdWN0aW9uIiE9PXQuZW52 Lk5PREVfRU5WP2EoITEsInRvQXJyYXk6IE9iamVjdCBuZWVkcyBhIGxlbmd0 aCBwcm9wZXJ0eSIpOmEoITEpKSwwPT09bnx8bi0xIGluIGV8fCgicHJvZHVj dGlvbiIhPT10LmVudi5OT0RFX0VOVj9hKCExLCJ0b0FycmF5OiBPYmplY3Qg c2hvdWxkIGhhdmUga2V5cyBmb3IgaW5kaWNlcyIpOmEoITEpKSwiZnVuY3Rp b24iPT10eXBlb2YgZS5jYWxsZWUmJigicHJvZHVjdGlvbiIhPT10LmVudi5O T0RFX0VOVj9hKCExLCJ0b0FycmF5OiBPYmplY3QgY2FuJ3QgYmUgYGFyZ3Vt ZW50c2AuIFVzZSByZXN0IHBhcmFtcyAoZnVuY3Rpb24oLi4uYXJncykge30p IG9yIEFycmF5LmZyb20oKSBpbnN0ZWFkLiIpOmEoITEpKSxlLmhhc093blBy b3BlcnR5KXRyeXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwo ZSl9Y2F0Y2goZSl7fWZvcih2YXIgbz1BcnJheShuKSxyPTA7cjxuO3IrKylv W3JdPWVbcl07cmV0dXJuIG99ZnVuY3Rpb24gcihlKXtyZXR1cm4hIWUmJigi b2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSYmImxl bmd0aCJpbiBlJiYhKCJzZXRJbnRlcnZhbCJpbiBlKSYmIm51bWJlciIhPXR5 cGVvZiBlLm5vZGVUeXBlJiYoQXJyYXkuaXNBcnJheShlKXx8ImNhbGxlZSJp biBlfHwiaXRlbSJpbiBlKX1mdW5jdGlvbiBpKGUpe3JldHVybiByKGUpP0Fy cmF5LmlzQXJyYXkoZSk/ZS5zbGljZSgpOm8oZSk6W2VdfXZhciBhPW4oMSk7 ZS5leHBvcnRzPWl9KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsi dXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG8oZSl7dmFyIHQ9 ZS5tYXRjaChsKTtyZXR1cm4gdCYmdFsxXS50b0xvd2VyQ2FzZSgpfWZ1bmN0 aW9uIHIoZSxuKXt2YXIgcj1jO2N8fCgicHJvZHVjdGlvbiIhPT10LmVudi5O T0RFX0VOVj91KCExLCJjcmVhdGVOb2Rlc0Zyb21NYXJrdXAgZHVtbXkgbm90 IGluaXRpYWxpemVkIik6dSghMSkpO3ZhciBpPW8oZSksbD1pJiZzKGkpO2lm KGwpe3IuaW5uZXJIVE1MPWxbMV0rZStsWzJdO2Zvcih2YXIgcD1sWzBdO3At LTspcj1yLmxhc3RDaGlsZH1lbHNlIHIuaW5uZXJIVE1MPWU7dmFyIGQ9ci5n ZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0Iik7ZC5sZW5ndGgmJihufHwo InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/dSghMSwiY3JlYXRlTm9k ZXNGcm9tTWFya3VwKC4uLik6IFVuZXhwZWN0ZWQgPHNjcmlwdD4gZWxlbWVu dCByZW5kZXJlZC4iKTp1KCExKSksYShkKS5mb3JFYWNoKG4pKTtmb3IodmFy IGY9QXJyYXkuZnJvbShyLmNoaWxkTm9kZXMpO3IubGFzdENoaWxkOylyLnJl bW92ZUNoaWxkKHIubGFzdENoaWxkKTtyZXR1cm4gZn12YXIgaT1uKDYpLGE9 big4NSkscz1uKDg3KSx1PW4oMSksYz1pLmNhblVzZURPTT9kb2N1bWVudC5j cmVhdGVFbGVtZW50KCJkaXYiKTpudWxsLGw9L15ccyo8KFx3KykvO2UuZXhw b3J0cz1yfSkuY2FsbCh0LG4oMCkpfSxmdW5jdGlvbihlLHQsbil7InVzZSBz dHJpY3QiOyhmdW5jdGlvbih0KXtmdW5jdGlvbiBvKGUpe3JldHVybiBhfHwo InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/aSghMSwiTWFya3VwIHdy YXBwaW5nIG5vZGUgbm90IGluaXRpYWxpemVkIik6aSghMSkpLGQuaGFzT3du UHJvcGVydHkoZSl8fChlPSIqIikscy5oYXNPd25Qcm9wZXJ0eShlKXx8KGEu aW5uZXJIVE1MPSIqIj09PWU/IjxsaW5rIC8+IjoiPCIrZSsiPjwvIitlKyI+ IixzW2VdPSFhLmZpcnN0Q2hpbGQpLHNbZV0/ZFtlXTpudWxsfXZhciByPW4o NiksaT1uKDEpLGE9ci5jYW5Vc2VET00/ZG9jdW1lbnQuY3JlYXRlRWxlbWVu dCgiZGl2Iik6bnVsbCxzPXt9LHU9WzEsJzxzZWxlY3QgbXVsdGlwbGU9InRy dWUiPicsIjwvc2VsZWN0PiJdLGM9WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJd LGw9WzMsIjx0YWJsZT48dGJvZHk+PHRyPiIsIjwvdHI+PC90Ym9keT48L3Rh YmxlPiJdLHA9WzEsJzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw MDAvc3ZnIj4nLCI8L3N2Zz4iXSxkPXsiKiI6WzEsIj88ZGl2PiIsIjwvZGl2 PiJdLGFyZWE6WzEsIjxtYXA+IiwiPC9tYXA+Il0sY29sOlsyLCI8dGFibGU+ PHRib2R5PjwvdGJvZHk+PGNvbGdyb3VwPiIsIjwvY29sZ3JvdXA+PC90YWJs ZT4iXSxsZWdlbmQ6WzEsIjxmaWVsZHNldD4iLCI8L2ZpZWxkc2V0PiJdLHBh cmFtOlsxLCI8b2JqZWN0PiIsIjwvb2JqZWN0PiJdLHRyOlsyLCI8dGFibGU+ PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSxvcHRncm91cDp1LG9wdGlv bjp1LGNhcHRpb246Yyxjb2xncm91cDpjLHRib2R5OmMsdGZvb3Q6Yyx0aGVh ZDpjLHRkOmwsdGg6bH07WyJjaXJjbGUiLCJjbGlwUGF0aCIsImRlZnMiLCJl bGxpcHNlIiwiZyIsImltYWdlIiwibGluZSIsImxpbmVhckdyYWRpZW50Iiwi bWFzayIsInBhdGgiLCJwYXR0ZXJuIiwicG9seWdvbiIsInBvbHlsaW5lIiwi cmFkaWFsR3JhZGllbnQiLCJyZWN0Iiwic3RvcCIsInRleHQiLCJ0c3BhbiJd LmZvckVhY2goZnVuY3Rpb24oZSl7ZFtlXT1wLHNbZV09ITB9KSxlLmV4cG9y dHM9b30pLmNhbGwodCxuKDApKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3Ry aWN0IjtmdW5jdGlvbiBvKGUpe3JldHVybiBlLldpbmRvdyYmZSBpbnN0YW5j ZW9mIGUuV2luZG93P3t4OmUucGFnZVhPZmZzZXR8fGUuZG9jdW1lbnQuZG9j dW1lbnRFbGVtZW50LnNjcm9sbExlZnQseTplLnBhZ2VZT2Zmc2V0fHxlLmRv Y3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3B9Ont4OmUuc2Nyb2xs TGVmdCx5OmUuc2Nyb2xsVG9wfX1lLmV4cG9ydHM9b30sZnVuY3Rpb24oZSx0 LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKGUpe3JldHVybiBlLnJlcGxh Y2UociwiLSQxIikudG9Mb3dlckNhc2UoKX12YXIgcj0vKFtBLVpdKS9nO2Uu ZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0 aW9uIG8oZSl7cmV0dXJuIHIoZSkucmVwbGFjZShpLCItbXMtIil9dmFyIHI9 big4OSksaT0vXm1zLS87ZS5leHBvcnRzPW99LGZ1bmN0aW9uKGUsdCxuKXsi dXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhlKXt2YXIgdD1lP2Uub3duZXJEb2N1 bWVudHx8ZTpkb2N1bWVudCxuPXQuZGVmYXVsdFZpZXd8fHdpbmRvdztyZXR1 cm4hKCFlfHwhKCJmdW5jdGlvbiI9PXR5cGVvZiBuLk5vZGU/ZSBpbnN0YW5j ZW9mIG4uTm9kZToib2JqZWN0Ij09dHlwZW9mIGUmJiJudW1iZXIiPT10eXBl b2YgZS5ub2RlVHlwZSYmInN0cmluZyI9PXR5cGVvZiBlLm5vZGVOYW1lKSl9 ZS5leHBvcnRzPW99LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVu Y3Rpb24gbyhlKXtyZXR1cm4gcihlKSYmMz09ZS5ub2RlVHlwZX12YXIgcj1u KDkxKTtlLmV4cG9ydHM9b30sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0 IjtmdW5jdGlvbiBvKGUpe3ZhciB0PXt9O3JldHVybiBmdW5jdGlvbihuKXty ZXR1cm4gdC5oYXNPd25Qcm9wZXJ0eShuKXx8KHRbbl09ZS5jYWxsKHRoaXMs bikpLHRbbl19fWUuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7InVzZSBz dHJpY3QiO3ZhciBvLHI9big2KTtyLmNhblVzZURPTSYmKG89d2luZG93LnBl cmZvcm1hbmNlfHx3aW5kb3cubXNQZXJmb3JtYW5jZXx8d2luZG93LndlYmtp dFBlcmZvcm1hbmNlKSxlLmV4cG9ydHM9b3x8e319LGZ1bmN0aW9uKGUsdCxu KXsidXNlIHN0cmljdCI7dmFyIG8scj1uKDk0KTtvPXIubm93P2Z1bmN0aW9u KCl7cmV0dXJuIHIubm93KCl9OmZ1bmN0aW9uKCl7cmV0dXJuIERhdGUubm93 KCl9LGUuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3Qi O3ZhciBvPXtQcm9wZXJ0aWVzOnsiYXJpYS1jdXJyZW50IjowLCJhcmlhLWRl dGFpbHMiOjAsImFyaWEtZGlzYWJsZWQiOjAsImFyaWEtaGlkZGVuIjowLCJh cmlhLWludmFsaWQiOjAsImFyaWEta2V5c2hvcnRjdXRzIjowLCJhcmlhLWxh YmVsIjowLCJhcmlhLXJvbGVkZXNjcmlwdGlvbiI6MCwiYXJpYS1hdXRvY29t cGxldGUiOjAsImFyaWEtY2hlY2tlZCI6MCwiYXJpYS1leHBhbmRlZCI6MCwi YXJpYS1oYXNwb3B1cCI6MCwiYXJpYS1sZXZlbCI6MCwiYXJpYS1tb2RhbCI6 MCwiYXJpYS1tdWx0aWxpbmUiOjAsImFyaWEtbXVsdGlzZWxlY3RhYmxlIjow LCJhcmlhLW9yaWVudGF0aW9uIjowLCJhcmlhLXBsYWNlaG9sZGVyIjowLCJh cmlhLXByZXNzZWQiOjAsImFyaWEtcmVhZG9ubHkiOjAsImFyaWEtcmVxdWly ZWQiOjAsImFyaWEtc2VsZWN0ZWQiOjAsImFyaWEtc29ydCI6MCwiYXJpYS12 YWx1ZW1heCI6MCwiYXJpYS12YWx1ZW1pbiI6MCwiYXJpYS12YWx1ZW5vdyI6 MCwiYXJpYS12YWx1ZXRleHQiOjAsImFyaWEtYXRvbWljIjowLCJhcmlhLWJ1 c3kiOjAsImFyaWEtbGl2ZSI6MCwiYXJpYS1yZWxldmFudCI6MCwiYXJpYS1k cm9wZWZmZWN0IjowLCJhcmlhLWdyYWJiZWQiOjAsImFyaWEtYWN0aXZlZGVz Y2VuZGFudCI6MCwiYXJpYS1jb2xjb3VudCI6MCwiYXJpYS1jb2xpbmRleCI6 MCwiYXJpYS1jb2xzcGFuIjowLCJhcmlhLWNvbnRyb2xzIjowLCJhcmlhLWRl c2NyaWJlZGJ5IjowLCJhcmlhLWVycm9ybWVzc2FnZSI6MCwiYXJpYS1mbG93 dG8iOjAsImFyaWEtbGFiZWxsZWRieSI6MCwiYXJpYS1vd25zIjowLCJhcmlh LXBvc2luc2V0IjowLCJhcmlhLXJvd2NvdW50IjowLCJhcmlhLXJvd2luZGV4 IjowLCJhcmlhLXJvd3NwYW4iOjAsImFyaWEtc2V0c2l6ZSI6MH0sRE9NQXR0 cmlidXRlTmFtZXM6e30sRE9NUHJvcGVydHlOYW1lczp7fX07ZS5leHBvcnRz PW99LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIG89big1KSxy PW4oNTMpLGk9e2ZvY3VzRE9NQ29tcG9uZW50OmZ1bmN0aW9uKCl7cihvLmdl dE5vZGVGcm9tSW5zdGFuY2UodGhpcykpfX07ZS5leHBvcnRzPWl9LGZ1bmN0 aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhlKXtyZXR1cm4o ZS5jdHJsS2V5fHxlLmFsdEtleXx8ZS5tZXRhS2V5KSYmIShlLmN0cmxLZXkm JmUuYWx0S2V5KX1mdW5jdGlvbiByKGUpe3N3aXRjaChlKXtjYXNlInRvcENv bXBvc2l0aW9uU3RhcnQiOnJldHVybiBPLmNvbXBvc2l0aW9uU3RhcnQ7Y2Fz ZSJ0b3BDb21wb3NpdGlvbkVuZCI6cmV0dXJuIE8uY29tcG9zaXRpb25FbmQ7 Y2FzZSJ0b3BDb21wb3NpdGlvblVwZGF0ZSI6cmV0dXJuIE8uY29tcG9zaXRp b25VcGRhdGV9fWZ1bmN0aW9uIGkoZSx0KXtyZXR1cm4idG9wS2V5RG93biI9 PT1lJiZ0LmtleUNvZGU9PT15fWZ1bmN0aW9uIGEoZSx0KXtzd2l0Y2goZSl7 Y2FzZSJ0b3BLZXlVcCI6cmV0dXJuLTEhPT1nLmluZGV4T2YodC5rZXlDb2Rl KTtjYXNlInRvcEtleURvd24iOnJldHVybiB0LmtleUNvZGUhPT15O2Nhc2Ui dG9wS2V5UHJlc3MiOmNhc2UidG9wTW91c2VEb3duIjpjYXNlInRvcEJsdXIi OnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIHMoZSl7dmFy IHQ9ZS5kZXRhaWw7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiYiZGF0YSJp biB0P3QuZGF0YTpudWxsfWZ1bmN0aW9uIHUoZSx0LG4sbyl7dmFyIHUsYztp ZihFP3U9cihlKTp4P2EoZSxuKSYmKHU9Ty5jb21wb3NpdGlvbkVuZCk6aShl LG4pJiYodT1PLmNvbXBvc2l0aW9uU3RhcnQpLCF1KXJldHVybiBudWxsO2Im Jih4fHx1IT09Ty5jb21wb3NpdGlvblN0YXJ0P3U9PT1PLmNvbXBvc2l0aW9u RW5kJiZ4JiYoYz14LmdldERhdGEoKSk6eD1oLmdldFBvb2xlZChvKSk7dmFy IGw9bS5nZXRQb29sZWQodSx0LG4sbyk7aWYoYylsLmRhdGE9YztlbHNle3Zh ciBwPXMobik7bnVsbCE9PXAmJihsLmRhdGE9cCl9cmV0dXJuIGQuYWNjdW11 bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlcyhsKSxsfWZ1bmN0aW9uIGMoZSx0KXtz d2l0Y2goZSl7Y2FzZSJ0b3BDb21wb3NpdGlvbkVuZCI6cmV0dXJuIHModCk7 Y2FzZSJ0b3BLZXlQcmVzcyI6cmV0dXJuIHQud2hpY2ghPT1DP251bGw6KHc9 ITAsRCk7Y2FzZSJ0b3BUZXh0SW5wdXQiOnZhciBuPXQuZGF0YTtyZXR1cm4g bj09PUQmJnc/bnVsbDpuO2RlZmF1bHQ6cmV0dXJuIG51bGx9fWZ1bmN0aW9u IGwoZSx0KXtpZih4KXtpZigidG9wQ29tcG9zaXRpb25FbmQiPT09ZXx8IUUm JmEoZSx0KSl7dmFyIG49eC5nZXREYXRhKCk7cmV0dXJuIGgucmVsZWFzZSh4 KSx4PW51bGwsbn1yZXR1cm4gbnVsbH1zd2l0Y2goZSl7Y2FzZSJ0b3BQYXN0 ZSI6cmV0dXJuIG51bGw7Y2FzZSJ0b3BLZXlQcmVzcyI6cmV0dXJuIHQud2hp Y2gmJiFvKHQpP1N0cmluZy5mcm9tQ2hhckNvZGUodC53aGljaCk6bnVsbDtj YXNlInRvcENvbXBvc2l0aW9uRW5kIjpyZXR1cm4gYj9udWxsOnQuZGF0YTtk ZWZhdWx0OnJldHVybiBudWxsfX1mdW5jdGlvbiBwKGUsdCxuLG8pe3ZhciBy O2lmKCEocj1OP2MoZSxuKTpsKGUsbikpKXJldHVybiBudWxsO3ZhciBpPXYu Z2V0UG9vbGVkKE8uYmVmb3JlSW5wdXQsdCxuLG8pO3JldHVybiBpLmRhdGE9 cixkLmFjY3VtdWxhdGVUd29QaGFzZURpc3BhdGNoZXMoaSksaX12YXIgZD1u KDIyKSxmPW4oNiksaD1uKDEwNCksbT1uKDE0Nyksdj1uKDE1MCksZz1bOSwx MywyNywzMl0seT0yMjksRT1mLmNhblVzZURPTSYmIkNvbXBvc2l0aW9uRXZl bnQiaW4gd2luZG93LF89bnVsbDtmLmNhblVzZURPTSYmImRvY3VtZW50TW9k ZSJpbiBkb2N1bWVudCYmKF89ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKTt2YXIg Tj1mLmNhblVzZURPTSYmIlRleHRFdmVudCJpbiB3aW5kb3cmJiFfJiYhZnVu Y3Rpb24oKXt2YXIgZT13aW5kb3cub3BlcmE7cmV0dXJuIm9iamVjdCI9PXR5 cGVvZiBlJiYiZnVuY3Rpb24iPT10eXBlb2YgZS52ZXJzaW9uJiZwYXJzZUlu dChlLnZlcnNpb24oKSwxMCk8PTEyfSgpLGI9Zi5jYW5Vc2VET00mJighRXx8 XyYmXz44JiZfPD0xMSksQz0zMixEPVN0cmluZy5mcm9tQ2hhckNvZGUoQyks Tz17YmVmb3JlSW5wdXQ6e3BoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOntidWJi bGVkOiJvbkJlZm9yZUlucHV0IixjYXB0dXJlZDoib25CZWZvcmVJbnB1dENh cHR1cmUifSxkZXBlbmRlbmNpZXM6WyJ0b3BDb21wb3NpdGlvbkVuZCIsInRv cEtleVByZXNzIiwidG9wVGV4dElucHV0IiwidG9wUGFzdGUiXX0sY29tcG9z aXRpb25FbmQ6e3BoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOntidWJibGVkOiJv bkNvbXBvc2l0aW9uRW5kIixjYXB0dXJlZDoib25Db21wb3NpdGlvbkVuZENh cHR1cmUifSxkZXBlbmRlbmNpZXM6WyJ0b3BCbHVyIiwidG9wQ29tcG9zaXRp b25FbmQiLCJ0b3BLZXlEb3duIiwidG9wS2V5UHJlc3MiLCJ0b3BLZXlVcCIs InRvcE1vdXNlRG93biJdfSxjb21wb3NpdGlvblN0YXJ0OntwaGFzZWRSZWdp c3RyYXRpb25OYW1lczp7YnViYmxlZDoib25Db21wb3NpdGlvblN0YXJ0Iixj YXB0dXJlZDoib25Db21wb3NpdGlvblN0YXJ0Q2FwdHVyZSJ9LGRlcGVuZGVu Y2llczpbInRvcEJsdXIiLCJ0b3BDb21wb3NpdGlvblN0YXJ0IiwidG9wS2V5 RG93biIsInRvcEtleVByZXNzIiwidG9wS2V5VXAiLCJ0b3BNb3VzZURvd24i XX0sY29tcG9zaXRpb25VcGRhdGU6e3BoYXNlZFJlZ2lzdHJhdGlvbk5hbWVz OntidWJibGVkOiJvbkNvbXBvc2l0aW9uVXBkYXRlIixjYXB0dXJlZDoib25D b21wb3NpdGlvblVwZGF0ZUNhcHR1cmUifSxkZXBlbmRlbmNpZXM6WyJ0b3BC bHVyIiwidG9wQ29tcG9zaXRpb25VcGRhdGUiLCJ0b3BLZXlEb3duIiwidG9w S2V5UHJlc3MiLCJ0b3BLZXlVcCIsInRvcE1vdXNlRG93biJdfX0sdz0hMSx4 PW51bGwsVD17ZXZlbnRUeXBlczpPLGV4dHJhY3RFdmVudHM6ZnVuY3Rpb24o ZSx0LG4sbyl7cmV0dXJuW3UoZSx0LG4sbykscChlLHQsbixvKV19fTtlLmV4 cG9ydHM9VH0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rp b24odCl7dmFyIG89big1NSkscj1uKDYpLGk9big4KSxhPW4oODMpLHM9bigx NTcpLHU9big5MCksYz1uKDkzKSxsPW4oMikscD1jKGZ1bmN0aW9uKGUpe3Jl dHVybiB1KGUpfSksZD0hMSxmPSJjc3NGbG9hdCI7aWYoci5jYW5Vc2VET00p e3ZhciBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlO3Ry eXtoLmZvbnQ9IiJ9Y2F0Y2goZSl7ZD0hMH12b2lkIDA9PT1kb2N1bWVudC5k b2N1bWVudEVsZW1lbnQuc3R5bGUuY3NzRmxvYXQmJihmPSJzdHlsZUZsb2F0 Iil9aWYoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYpdmFyIG09L14o Pzp3ZWJraXR8bW96fG8pW0EtWl0vLHY9LztccyokLyxnPXt9LHk9e30sRT0h MSxfPWZ1bmN0aW9uKGUsbil7Zy5oYXNPd25Qcm9wZXJ0eShlKSYmZ1tlXXx8 KGdbZV09ITAsInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJmwoITEs IlVuc3VwcG9ydGVkIHN0eWxlIHByb3BlcnR5ICVzLiBEaWQgeW91IG1lYW4g JXM/JXMiLGUsYShlKSxEKG4pKSl9LE49ZnVuY3Rpb24oZSxuKXtnLmhhc093 blByb3BlcnR5KGUpJiZnW2VdfHwoZ1tlXT0hMCwicHJvZHVjdGlvbiIhPT10 LmVudi5OT0RFX0VOViYmbCghMSwiVW5zdXBwb3J0ZWQgdmVuZG9yLXByZWZp eGVkIHN0eWxlIHByb3BlcnR5ICVzLiBEaWQgeW91IG1lYW4gJXM/JXMiLGUs ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnNsaWNlKDEpLEQobikpKX0s Yj1mdW5jdGlvbihlLG4sbyl7eS5oYXNPd25Qcm9wZXJ0eShuKSYmeVtuXXx8 KHlbbl09ITAsInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJmwoITEs J1N0eWxlIHByb3BlcnR5IHZhbHVlcyBzaG91bGRuXCd0IGNvbnRhaW4gYSBz ZW1pY29sb24uJXMgVHJ5ICIlczogJXMiIGluc3RlYWQuJyxEKG8pLGUsbi5y ZXBsYWNlKHYsIiIpKSl9LEM9ZnVuY3Rpb24oZSxuLG8pe0V8fChFPSEwLCJw cm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZsKCExLCJgTmFOYCBpcyBh biBpbnZhbGlkIHZhbHVlIGZvciB0aGUgYCVzYCBjc3Mgc3R5bGUgcHJvcGVy dHkuJXMiLGUsRChvKSkpfSxEPWZ1bmN0aW9uKGUpe2lmKGUpe3ZhciB0PWUu Z2V0TmFtZSgpO2lmKHQpcmV0dXJuIiBDaGVjayB0aGUgcmVuZGVyIG1ldGhv ZCBvZiBgIit0KyJgLiJ9cmV0dXJuIiJ9LE89ZnVuY3Rpb24oZSx0LG4pe3Zh ciBvO24mJihvPW4uX2N1cnJlbnRFbGVtZW50Ll9vd25lciksZS5pbmRleE9m KCItIik+LTE/XyhlLG8pOm0udGVzdChlKT9OKGUsbyk6di50ZXN0KHQpJiZi KGUsdCxvKSwibnVtYmVyIj09dHlwZW9mIHQmJmlzTmFOKHQpJiZDKGUsMCxv KX07dmFyIHc9e2NyZWF0ZU1hcmt1cEZvclN0eWxlczpmdW5jdGlvbihlLG4p e3ZhciBvPSIiO2Zvcih2YXIgciBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHko cikpe3ZhciBpPWVbcl07InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYm Jk8ocixpLG4pLG51bGwhPWkmJihvKz1wKHIpKyI6IixvKz1zKHIsaSxuKSsi OyIpfXJldHVybiBvfHxudWxsfSxzZXRWYWx1ZUZvclN0eWxlczpmdW5jdGlv bihlLG4scil7InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJmkuZGVi dWdUb29sLm9uSG9zdE9wZXJhdGlvbih7aW5zdGFuY2VJRDpyLl9kZWJ1Z0lE LHR5cGU6InVwZGF0ZSBzdHlsZXMiLHBheWxvYWQ6bn0pO3ZhciBhPWUuc3R5 bGU7Zm9yKHZhciB1IGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eSh1KSl7InBy b2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJk8odSxuW3VdLHIpO3ZhciBj PXModSxuW3VdLHIpO2lmKCJmbG9hdCIhPT11JiYiY3NzRmxvYXQiIT09dXx8 KHU9ZiksYylhW3VdPWM7ZWxzZXt2YXIgbD1kJiZvLnNob3J0aGFuZFByb3Bl cnR5RXhwYW5zaW9uc1t1XTtpZihsKWZvcih2YXIgcCBpbiBsKWFbcF09IiI7 ZWxzZSBhW3VdPSIifX19fTtlLmV4cG9ydHM9d30pLmNhbGwodCxuKDApKX0s ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKGUpe3Zh ciB0PWUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1 cm4ic2VsZWN0Ij09PXR8fCJpbnB1dCI9PT10JiYiZmlsZSI9PT1lLnR5cGV9 ZnVuY3Rpb24gcihlKXt2YXIgdD1DLmdldFBvb2xlZCh4LmNoYW5nZSxrLGUs RChlKSk7RS5hY2N1bXVsYXRlVHdvUGhhc2VEaXNwYXRjaGVzKHQpLGIuYmF0 Y2hlZFVwZGF0ZXMoaSx0KX1mdW5jdGlvbiBpKGUpe3kuZW5xdWV1ZUV2ZW50 cyhlKSx5LnByb2Nlc3NFdmVudFF1ZXVlKCExKX1mdW5jdGlvbiBhKGUsdCl7 VD1lLGs9dCxULmF0dGFjaEV2ZW50KCJvbmNoYW5nZSIscil9ZnVuY3Rpb24g cygpe1QmJihULmRldGFjaEV2ZW50KCJvbmNoYW5nZSIsciksVD1udWxsLGs9 bnVsbCl9ZnVuY3Rpb24gdShlLHQpe2lmKCJ0b3BDaGFuZ2UiPT09ZSlyZXR1 cm4gdH1mdW5jdGlvbiBjKGUsdCxuKXsidG9wRm9jdXMiPT09ZT8ocygpLGEo dCxuKSk6InRvcEJsdXIiPT09ZSYmcygpfWZ1bmN0aW9uIGwoZSx0KXtUPWUs az10LEk9ZS52YWx1ZSxQPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0 b3IoZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsInZhbHVlIiksT2JqZWN0LmRl ZmluZVByb3BlcnR5KFQsInZhbHVlIixSKSxULmF0dGFjaEV2ZW50P1QuYXR0 YWNoRXZlbnQoIm9ucHJvcGVydHljaGFuZ2UiLGQpOlQuYWRkRXZlbnRMaXN0 ZW5lcigicHJvcGVydHljaGFuZ2UiLGQsITEpfWZ1bmN0aW9uIHAoKXtUJiYo ZGVsZXRlIFQudmFsdWUsVC5kZXRhY2hFdmVudD9ULmRldGFjaEV2ZW50KCJv bnByb3BlcnR5Y2hhbmdlIixkKTpULnJlbW92ZUV2ZW50TGlzdGVuZXIoInBy b3BlcnR5Y2hhbmdlIixkLCExKSxUPW51bGwsaz1udWxsLEk9bnVsbCxQPW51 bGwpfWZ1bmN0aW9uIGQoZSl7aWYoInZhbHVlIj09PWUucHJvcGVydHlOYW1l KXt2YXIgdD1lLnNyY0VsZW1lbnQudmFsdWU7dCE9PUkmJihJPXQscihlKSl9 fWZ1bmN0aW9uIGYoZSx0KXtpZigidG9wSW5wdXQiPT09ZSlyZXR1cm4gdH1m dW5jdGlvbiBoKGUsdCxuKXsidG9wRm9jdXMiPT09ZT8ocCgpLGwodCxuKSk6 InRvcEJsdXIiPT09ZSYmcCgpfWZ1bmN0aW9uIG0oZSx0KXtpZigoInRvcFNl bGVjdGlvbkNoYW5nZSI9PT1lfHwidG9wS2V5VXAiPT09ZXx8InRvcEtleURv d24iPT09ZSkmJlQmJlQudmFsdWUhPT1JKXJldHVybiBJPVQudmFsdWUsa31m dW5jdGlvbiB2KGUpe3JldHVybiBlLm5vZGVOYW1lJiYiaW5wdXQiPT09ZS5u b2RlTmFtZS50b0xvd2VyQ2FzZSgpJiYoImNoZWNrYm94Ij09PWUudHlwZXx8 InJhZGlvIj09PWUudHlwZSl9ZnVuY3Rpb24gZyhlLHQpe2lmKCJ0b3BDbGlj ayI9PT1lKXJldHVybiB0fXZhciB5PW4oMjEpLEU9bigyMiksXz1uKDYpLE49 big1KSxiPW4oMTApLEM9bigxMiksRD1uKDQzKSxPPW4oNDQpLHc9big3Myks eD17Y2hhbmdlOntwaGFzZWRSZWdpc3RyYXRpb25OYW1lczp7YnViYmxlZDoi b25DaGFuZ2UiLGNhcHR1cmVkOiJvbkNoYW5nZUNhcHR1cmUifSxkZXBlbmRl bmNpZXM6WyJ0b3BCbHVyIiwidG9wQ2hhbmdlIiwidG9wQ2xpY2siLCJ0b3BG b2N1cyIsInRvcElucHV0IiwidG9wS2V5RG93biIsInRvcEtleVVwIiwidG9w U2VsZWN0aW9uQ2hhbmdlIl19fSxUPW51bGwsaz1udWxsLEk9bnVsbCxQPW51 bGwsUz0hMTtfLmNhblVzZURPTSYmKFM9TygiY2hhbmdlIikmJighZG9jdW1l bnQuZG9jdW1lbnRNb2RlfHxkb2N1bWVudC5kb2N1bWVudE1vZGU+OCkpO3Zh ciBWPSExO18uY2FuVXNlRE9NJiYoVj1PKCJpbnB1dCIpJiYoIWRvY3VtZW50 LmRvY3VtZW50TW9kZXx8ZG9jdW1lbnQuZG9jdW1lbnRNb2RlPjExKSk7dmFy IFI9e2dldDpmdW5jdGlvbigpe3JldHVybiBQLmdldC5jYWxsKHRoaXMpfSxz ZXQ6ZnVuY3Rpb24oZSl7ST0iIitlLFAuc2V0LmNhbGwodGhpcyxlKX19LE09 e2V2ZW50VHlwZXM6eCxleHRyYWN0RXZlbnRzOmZ1bmN0aW9uKGUsdCxuLHIp e3ZhciBpLGEscz10P04uZ2V0Tm9kZUZyb21JbnN0YW5jZSh0KTp3aW5kb3c7 aWYobyhzKT9TP2k9dTphPWM6dyhzKT9WP2k9ZjooaT1tLGE9aCk6dihzKSYm KGk9ZyksaSl7dmFyIGw9aShlLHQpO2lmKGwpe3ZhciBwPUMuZ2V0UG9vbGVk KHguY2hhbmdlLGwsbixyKTtyZXR1cm4gcC50eXBlPSJjaGFuZ2UiLEUuYWNj dW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlcyhwKSxwfX1hJiZhKGUscyx0KX19 O2UuZXhwb3J0cz1NfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiOyhm dW5jdGlvbih0KXt2YXIgbz1uKDMpLHI9bigxNyksaT1uKDYpLGE9big4Niks cz1uKDkpLHU9bigxKSxjPXtkYW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1h cmt1cDpmdW5jdGlvbihlLG4pe2lmKGkuY2FuVXNlRE9NfHwoInByb2R1Y3Rp b24iIT09dC5lbnYuTk9ERV9FTlY/dSghMSwiZGFuZ2Vyb3VzbHlSZXBsYWNl Tm9kZVdpdGhNYXJrdXAoLi4uKTogQ2Fubm90IHJlbmRlciBtYXJrdXAgaW4g YSB3b3JrZXIgdGhyZWFkLiBNYWtlIHN1cmUgYHdpbmRvd2AgYW5kIGBkb2N1 bWVudGAgYXJlIGF2YWlsYWJsZSBnbG9iYWxseSBiZWZvcmUgcmVxdWlyaW5n IFJlYWN0IHdoZW4gdW5pdCB0ZXN0aW5nIG9yIHVzZSBSZWFjdERPTVNlcnZl ci5yZW5kZXJUb1N0cmluZygpIGZvciBzZXJ2ZXIgcmVuZGVyaW5nLiIpOm8o IjU2IikpLG58fCgicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj91KCEx LCJkYW5nZXJvdXNseVJlcGxhY2VOb2RlV2l0aE1hcmt1cCguLi4pOiBNaXNz aW5nIG1hcmt1cC4iKTpvKCI1NyIpKSwiSFRNTCI9PT1lLm5vZGVOYW1lJiYo InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/dSghMSwiZGFuZ2Vyb3Vz bHlSZXBsYWNlTm9kZVdpdGhNYXJrdXAoLi4uKTogQ2Fubm90IHJlcGxhY2Ug bWFya3VwIG9mIHRoZSA8aHRtbD4gbm9kZS4gVGhpcyBpcyBiZWNhdXNlIGJy b3dzZXIgcXVpcmtzIG1ha2UgdGhpcyB1bnJlbGlhYmxlIGFuZC9vciBzbG93 LiBJZiB5b3Ugd2FudCB0byByZW5kZXIgdG8gdGhlIHJvb3QgeW91IG11c3Qg dXNlIHNlcnZlciByZW5kZXJpbmcuIFNlZSBSZWFjdERPTVNlcnZlci5yZW5k ZXJUb1N0cmluZygpLiIpOm8oIjU4IikpLCJzdHJpbmciPT10eXBlb2Ygbil7 dmFyIGM9YShuLHMpWzBdO2UucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQoYyxl KX1lbHNlIHIucmVwbGFjZUNoaWxkV2l0aFRyZWUoZSxuKX19O2UuZXhwb3J0 cz1jfSkuY2FsbCh0LG4oMCkpfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJp Y3QiO3ZhciBvPVsiUmVzcG9uZGVyRXZlbnRQbHVnaW4iLCJTaW1wbGVFdmVu dFBsdWdpbiIsIlRhcEV2ZW50UGx1Z2luIiwiRW50ZXJMZWF2ZUV2ZW50UGx1 Z2luIiwiQ2hhbmdlRXZlbnRQbHVnaW4iLCJTZWxlY3RFdmVudFBsdWdpbiIs IkJlZm9yZUlucHV0RXZlbnRQbHVnaW4iXTtlLmV4cG9ydHM9b30sZnVuY3Rp b24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgbz1uKDIyKSxyPW4oNSksaT1u KDI3KSxhPXttb3VzZUVudGVyOntyZWdpc3RyYXRpb25OYW1lOiJvbk1vdXNl RW50ZXIiLGRlcGVuZGVuY2llczpbInRvcE1vdXNlT3V0IiwidG9wTW91c2VP dmVyIl19LG1vdXNlTGVhdmU6e3JlZ2lzdHJhdGlvbk5hbWU6Im9uTW91c2VM ZWF2ZSIsZGVwZW5kZW5jaWVzOlsidG9wTW91c2VPdXQiLCJ0b3BNb3VzZU92 ZXIiXX19LHM9e2V2ZW50VHlwZXM6YSxleHRyYWN0RXZlbnRzOmZ1bmN0aW9u KGUsdCxuLHMpe2lmKCJ0b3BNb3VzZU92ZXIiPT09ZSYmKG4ucmVsYXRlZFRh cmdldHx8bi5mcm9tRWxlbWVudCkpcmV0dXJuIG51bGw7aWYoInRvcE1vdXNl T3V0IiE9PWUmJiJ0b3BNb3VzZU92ZXIiIT09ZSlyZXR1cm4gbnVsbDt2YXIg dTtpZihzLndpbmRvdz09PXMpdT1zO2Vsc2V7dmFyIGM9cy5vd25lckRvY3Vt ZW50O3U9Yz9jLmRlZmF1bHRWaWV3fHxjLnBhcmVudFdpbmRvdzp3aW5kb3d9 dmFyIGwscDtpZigidG9wTW91c2VPdXQiPT09ZSl7bD10O3ZhciBkPW4ucmVs YXRlZFRhcmdldHx8bi50b0VsZW1lbnQ7cD1kP3IuZ2V0Q2xvc2VzdEluc3Rh bmNlRnJvbU5vZGUoZCk6bnVsbH1lbHNlIGw9bnVsbCxwPXQ7aWYobD09PXAp cmV0dXJuIG51bGw7dmFyIGY9bnVsbD09bD91OnIuZ2V0Tm9kZUZyb21JbnN0 YW5jZShsKSxoPW51bGw9PXA/dTpyLmdldE5vZGVGcm9tSW5zdGFuY2UocCks bT1pLmdldFBvb2xlZChhLm1vdXNlTGVhdmUsbCxuLHMpO20udHlwZT0ibW91 c2VsZWF2ZSIsbS50YXJnZXQ9ZixtLnJlbGF0ZWRUYXJnZXQ9aDt2YXIgdj1p LmdldFBvb2xlZChhLm1vdXNlRW50ZXIscCxuLHMpO3JldHVybiB2LnR5cGU9 Im1vdXNlZW50ZXIiLHYudGFyZ2V0PWgsdi5yZWxhdGVkVGFyZ2V0PWYsby5h Y2N1bXVsYXRlRW50ZXJMZWF2ZURpc3BhdGNoZXMobSx2LGwscCksW20sdl19 fTtlLmV4cG9ydHM9c30sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijtm dW5jdGlvbiBvKGUpe3RoaXMuX3Jvb3Q9ZSx0aGlzLl9zdGFydFRleHQ9dGhp cy5nZXRUZXh0KCksdGhpcy5fZmFsbGJhY2tUZXh0PW51bGx9dmFyIHI9big0 KSxpPW4oMTQpLGE9big3MSk7cihvLnByb3RvdHlwZSx7ZGVzdHJ1Y3Rvcjpm dW5jdGlvbigpe3RoaXMuX3Jvb3Q9bnVsbCx0aGlzLl9zdGFydFRleHQ9bnVs bCx0aGlzLl9mYWxsYmFja1RleHQ9bnVsbH0sZ2V0VGV4dDpmdW5jdGlvbigp e3JldHVybiJ2YWx1ZSJpbiB0aGlzLl9yb290P3RoaXMuX3Jvb3QudmFsdWU6 dGhpcy5fcm9vdFthKCldfSxnZXREYXRhOmZ1bmN0aW9uKCl7aWYodGhpcy5f ZmFsbGJhY2tUZXh0KXJldHVybiB0aGlzLl9mYWxsYmFja1RleHQ7dmFyIGUs dCxuPXRoaXMuX3N0YXJ0VGV4dCxvPW4ubGVuZ3RoLHI9dGhpcy5nZXRUZXh0 KCksaT1yLmxlbmd0aDtmb3IoZT0wO2U8byYmbltlXT09PXJbZV07ZSsrKTt2 YXIgYT1vLWU7Zm9yKHQ9MTt0PD1hJiZuW28tdF09PT1yW2ktdF07dCsrKTt2 YXIgcz10PjE/MS10OnZvaWQgMDtyZXR1cm4gdGhpcy5fZmFsbGJhY2tUZXh0 PXIuc2xpY2UoZSxzKSx0aGlzLl9mYWxsYmFja1RleHR9fSksaS5hZGRQb29s aW5nVG8obyksZS5leHBvcnRzPW99LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0 cmljdCI7dmFyIG89bigxMykscj1vLmluamVjdGlvbi5NVVNUX1VTRV9QUk9Q RVJUWSxpPW8uaW5qZWN0aW9uLkhBU19CT09MRUFOX1ZBTFVFLGE9by5pbmpl Y3Rpb24uSEFTX05VTUVSSUNfVkFMVUUscz1vLmluamVjdGlvbi5IQVNfUE9T SVRJVkVfTlVNRVJJQ19WQUxVRSx1PW8uaW5qZWN0aW9uLkhBU19PVkVSTE9B REVEX0JPT0xFQU5fVkFMVUUsYz17aXNDdXN0b21BdHRyaWJ1dGU6UmVnRXhw LnByb3RvdHlwZS50ZXN0LmJpbmQobmV3IFJlZ0V4cCgiXihkYXRhfGFyaWEp LVsiK28uQVRUUklCVVRFX05BTUVfQ0hBUisiXSokIikpLFByb3BlcnRpZXM6 e2FjY2VwdDowLGFjY2VwdENoYXJzZXQ6MCxhY2Nlc3NLZXk6MCxhY3Rpb246 MCxhbGxvd0Z1bGxTY3JlZW46aSxhbGxvd1RyYW5zcGFyZW5jeTowLGFsdDow LGFzOjAsYXN5bmM6aSxhdXRvQ29tcGxldGU6MCxhdXRvUGxheTppLGNhcHR1 cmU6aSxjZWxsUGFkZGluZzowLGNlbGxTcGFjaW5nOjAsY2hhclNldDowLGNo YWxsZW5nZTowLGNoZWNrZWQ6cnxpLGNpdGU6MCxjbGFzc0lEOjAsY2xhc3NO YW1lOjAsY29sczpzLGNvbFNwYW46MCxjb250ZW50OjAsY29udGVudEVkaXRh YmxlOjAsY29udGV4dE1lbnU6MCxjb250cm9sczppLGNvb3JkczowLGNyb3Nz T3JpZ2luOjAsZGF0YTowLGRhdGVUaW1lOjAsZGVmYXVsdDppLGRlZmVyOmks ZGlyOjAsZGlzYWJsZWQ6aSxkb3dubG9hZDp1LGRyYWdnYWJsZTowLGVuY1R5 cGU6MCxmb3JtOjAsZm9ybUFjdGlvbjowLGZvcm1FbmNUeXBlOjAsZm9ybU1l dGhvZDowLGZvcm1Ob1ZhbGlkYXRlOmksZm9ybVRhcmdldDowLGZyYW1lQm9y ZGVyOjAsaGVhZGVyczowLGhlaWdodDowLGhpZGRlbjppLGhpZ2g6MCxocmVm OjAsaHJlZkxhbmc6MCxodG1sRm9yOjAsaHR0cEVxdWl2OjAsaWNvbjowLGlk OjAsaW5wdXRNb2RlOjAsaW50ZWdyaXR5OjAsaXM6MCxrZXlQYXJhbXM6MCxr ZXlUeXBlOjAsa2luZDowLGxhYmVsOjAsbGFuZzowLGxpc3Q6MCxsb29wOmks bG93OjAsbWFuaWZlc3Q6MCxtYXJnaW5IZWlnaHQ6MCxtYXJnaW5XaWR0aDow LG1heDowLG1heExlbmd0aDowLG1lZGlhOjAsbWVkaWFHcm91cDowLG1ldGhv ZDowLG1pbjowLG1pbkxlbmd0aDowLG11bHRpcGxlOnJ8aSxtdXRlZDpyfGks bmFtZTowLG5vbmNlOjAsbm9WYWxpZGF0ZTppLG9wZW46aSxvcHRpbXVtOjAs cGF0dGVybjowLHBsYWNlaG9sZGVyOjAscGxheXNJbmxpbmU6aSxwb3N0ZXI6 MCxwcmVsb2FkOjAscHJvZmlsZTowLHJhZGlvR3JvdXA6MCxyZWFkT25seTpp LHJlZmVycmVyUG9saWN5OjAscmVsOjAscmVxdWlyZWQ6aSxyZXZlcnNlZDpp LHJvbGU6MCxyb3dzOnMscm93U3BhbjphLHNhbmRib3g6MCxzY29wZTowLHNj b3BlZDppLHNjcm9sbGluZzowLHNlYW1sZXNzOmksc2VsZWN0ZWQ6cnxpLHNo YXBlOjAsc2l6ZTpzLHNpemVzOjAsc3BhbjpzLHNwZWxsQ2hlY2s6MCxzcmM6 MCxzcmNEb2M6MCxzcmNMYW5nOjAsc3JjU2V0OjAsc3RhcnQ6YSxzdGVwOjAs c3R5bGU6MCxzdW1tYXJ5OjAsdGFiSW5kZXg6MCx0YXJnZXQ6MCx0aXRsZTow LHR5cGU6MCx1c2VNYXA6MCx2YWx1ZTowLHdpZHRoOjAsd21vZGU6MCx3cmFw OjAsYWJvdXQ6MCxkYXRhdHlwZTowLGlubGlzdDowLHByZWZpeDowLHByb3Bl cnR5OjAscmVzb3VyY2U6MCx0eXBlb2Y6MCx2b2NhYjowLGF1dG9DYXBpdGFs aXplOjAsYXV0b0NvcnJlY3Q6MCxhdXRvU2F2ZTowLGNvbG9yOjAsaXRlbVBy b3A6MCxpdGVtU2NvcGU6aSxpdGVtVHlwZTowLGl0ZW1JRDowLGl0ZW1SZWY6 MCxyZXN1bHRzOjAsc2VjdXJpdHk6MCx1bnNlbGVjdGFibGU6MH0sRE9NQXR0 cmlidXRlTmFtZXM6e2FjY2VwdENoYXJzZXQ6ImFjY2VwdC1jaGFyc2V0Iixj bGFzc05hbWU6ImNsYXNzIixodG1sRm9yOiJmb3IiLGh0dHBFcXVpdjoiaHR0 cC1lcXVpdiJ9LERPTVByb3BlcnR5TmFtZXM6e319O2UuZXhwb3J0cz1jfSxm dW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtmdW5j dGlvbiBvKGUsbyxpLHUpe3ZhciBjPXZvaWQgMD09PWVbaV07InByb2R1Y3Rp b24iIT09dC5lbnYuTk9ERV9FTlYmJihyfHwocj1uKDcpKSxjfHwicHJvZHVj dGlvbiIhPT10LmVudi5OT0RFX0VOViYmbCghMSwiZmxhdHRlbkNoaWxkcmVu KC4uLik6IEVuY291bnRlcmVkIHR3byBjaGlsZHJlbiB3aXRoIHRoZSBzYW1l IGtleSwgYCVzYC4gQ2hpbGQga2V5cyBtdXN0IGJlIHVuaXF1ZTsgd2hlbiB0 d28gY2hpbGRyZW4gc2hhcmUgYSBrZXksIG9ubHkgdGhlIGZpcnN0IGNoaWxk IHdpbGwgYmUgdXNlZC4lcyIscy51bmVzY2FwZShpKSxyLmdldFN0YWNrQWRk ZW5kdW1CeUlEKHUpKSksbnVsbCE9byYmYyYmKGVbaV09YShvLCEwKSl9dmFy IHIsaT1uKDE4KSxhPW4oNzIpLHM9bigzNSksdT1uKDQ1KSxjPW4oNzUpLGw9 bigyKTt2b2lkIDAhPT10JiZ0LmVudiYmInRlc3QiPT09dC5lbnYuTk9ERV9F TlYmJihyPW4oNykpO3ZhciBwPXtpbnN0YW50aWF0ZUNoaWxkcmVuOmZ1bmN0 aW9uKGUsbixyLGkpe2lmKG51bGw9PWUpcmV0dXJuIG51bGw7dmFyIGE9e307 cmV0dXJuInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/YyhlLGZ1bmN0 aW9uKGUsdCxuKXtyZXR1cm4gbyhlLHQsbixpKX0sYSk6YyhlLG8sYSksYX0s dXBkYXRlQ2hpbGRyZW46ZnVuY3Rpb24oZSx0LG4sbyxyLHMsYyxsLHApe2lm KHR8fGUpe3ZhciBkLGY7Zm9yKGQgaW4gdClpZih0Lmhhc093blByb3BlcnR5 KGQpKXtmPWUmJmVbZF07dmFyIGg9ZiYmZi5fY3VycmVudEVsZW1lbnQsbT10 W2RdO2lmKG51bGwhPWYmJnUoaCxtKSlpLnJlY2VpdmVDb21wb25lbnQoZixt LHIsbCksdFtkXT1mO2Vsc2V7ZiYmKG9bZF09aS5nZXRIb3N0Tm9kZShmKSxp LnVubW91bnRDb21wb25lbnQoZiwhMSkpO3ZhciB2PWEobSwhMCk7dFtkXT12 O3ZhciBnPWkubW91bnRDb21wb25lbnQodixyLHMsYyxsLHApO24ucHVzaChn KX19Zm9yKGQgaW4gZSkhZS5oYXNPd25Qcm9wZXJ0eShkKXx8dCYmdC5oYXNP d25Qcm9wZXJ0eShkKXx8KGY9ZVtkXSxvW2RdPWkuZ2V0SG9zdE5vZGUoZiks aS51bm1vdW50Q29tcG9uZW50KGYsITEpKX19LHVubW91bnRDaGlsZHJlbjpm dW5jdGlvbihlLHQpe2Zvcih2YXIgbiBpbiBlKWlmKGUuaGFzT3duUHJvcGVy dHkobikpe3ZhciBvPWVbbl07aS51bm1vdW50Q29tcG9uZW50KG8sdCl9fX07 ZS5leHBvcnRzPXB9KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsi dXNlIHN0cmljdCI7dmFyIG89bigzMikscj1uKDExNCksaT17cHJvY2Vzc0No aWxkcmVuVXBkYXRlczpyLmRhbmdlcm91c2x5UHJvY2Vzc0NoaWxkcmVuVXBk YXRlcyxyZXBsYWNlTm9kZVdpdGhNYXJrdXA6by5kYW5nZXJvdXNseVJlcGxh Y2VOb2RlV2l0aE1hcmt1cH07ZS5leHBvcnRzPWl9LGZ1bmN0aW9uKGUsdCxu KXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG8oZSl7fWZ1 bmN0aW9uIHIoZSxuKXsicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYm KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZDKG51bGw9PT1ufHwh MT09PW58fGwuaXNWYWxpZEVsZW1lbnQobiksIiVzKC4uLik6IEEgdmFsaWQg UmVhY3QgZWxlbWVudCAob3IgbnVsbCkgbXVzdCBiZSByZXR1cm5lZC4gWW91 IG1heSBoYXZlIHJldHVybmVkIHVuZGVmaW5lZCwgYW4gYXJyYXkgb3Igc29t ZSBvdGhlciBpbnZhbGlkIG9iamVjdC4iLGUuZGlzcGxheU5hbWV8fGUubmFt ZXx8IkNvbXBvbmVudCIpLCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5W JiZDKCFlLmNoaWxkQ29udGV4dFR5cGVzLCIlcyguLi4pOiBjaGlsZENvbnRl eHRUeXBlcyBjYW5ub3QgYmUgZGVmaW5lZCBvbiBhIGZ1bmN0aW9uYWwgY29t cG9uZW50LiIsZS5kaXNwbGF5TmFtZXx8ZS5uYW1lfHwiQ29tcG9uZW50Iikp fWZ1bmN0aW9uIGkoZSl7cmV0dXJuISghZS5wcm90b3R5cGV8fCFlLnByb3Rv dHlwZS5pc1JlYWN0Q29tcG9uZW50KX1mdW5jdGlvbiBhKGUpe3JldHVybiEo IWUucHJvdG90eXBlfHwhZS5wcm90b3R5cGUuaXNQdXJlUmVhY3RDb21wb25l bnQpfWZ1bmN0aW9uIHMoZSx0LG4pe2lmKDA9PT10KXJldHVybiBlKCk7bS5k ZWJ1Z1Rvb2wub25CZWdpbkxpZmVDeWNsZVRpbWVyKHQsbik7dHJ5e3JldHVy biBlKCl9ZmluYWxseXttLmRlYnVnVG9vbC5vbkVuZExpZmVDeWNsZVRpbWVy KHQsbil9fXZhciB1PW4oMyksYz1uKDQpLGw9bigxOSkscD1uKDM3KSxkPW4o MTEpLGY9bigzOCksaD1uKDIzKSxtPW4oOCksdj1uKDY1KSxnPW4oMTgpO2lm KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WKXZhciB5PW4oMTU2KTt2 YXIgRT1uKDIwKSxfPW4oMSksTj1uKDMxKSxiPW4oNDUpLEM9bigyKSxEPXtJ bXB1cmVDbGFzczowLFB1cmVDbGFzczoxLFN0YXRlbGVzc0Z1bmN0aW9uYWw6 Mn07by5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7dmFyIGU9aC5nZXQo dGhpcykuX2N1cnJlbnRFbGVtZW50LnR5cGUsdD1lKHRoaXMucHJvcHMsdGhp cy5jb250ZXh0LHRoaXMudXBkYXRlcik7cmV0dXJuIHIoZSx0KSx0fTt2YXIg Tz0xLHc9e2NvbnN0cnVjdDpmdW5jdGlvbihlKXt0aGlzLl9jdXJyZW50RWxl bWVudD1lLHRoaXMuX3Jvb3ROb2RlSUQ9MCx0aGlzLl9jb21wb3NpdGVUeXBl PW51bGwsdGhpcy5faW5zdGFuY2U9bnVsbCx0aGlzLl9ob3N0UGFyZW50PW51 bGwsdGhpcy5faG9zdENvbnRhaW5lckluZm89bnVsbCx0aGlzLl91cGRhdGVC YXRjaE51bWJlcj1udWxsLHRoaXMuX3BlbmRpbmdFbGVtZW50PW51bGwsdGhp cy5fcGVuZGluZ1N0YXRlUXVldWU9bnVsbCx0aGlzLl9wZW5kaW5nUmVwbGFj ZVN0YXRlPSExLHRoaXMuX3BlbmRpbmdGb3JjZVVwZGF0ZT0hMSx0aGlzLl9y ZW5kZXJlZE5vZGVUeXBlPW51bGwsdGhpcy5fcmVuZGVyZWRDb21wb25lbnQ9 bnVsbCx0aGlzLl9jb250ZXh0PW51bGwsdGhpcy5fbW91bnRPcmRlcj0wLHRo aXMuX3RvcExldmVsV3JhcHBlcj1udWxsLHRoaXMuX3BlbmRpbmdDYWxsYmFj a3M9bnVsbCx0aGlzLl9jYWxsZWRDb21wb25lbnRXaWxsVW5tb3VudD0hMSwi cHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmKHRoaXMuX3dhcm5lZEFi b3V0UmVmc0luUmVuZGVyPSExKX0sbW91bnRDb21wb25lbnQ6ZnVuY3Rpb24o ZSxuLGMscCl7dmFyIGQ9dGhpczt0aGlzLl9jb250ZXh0PXAsdGhpcy5fbW91 bnRPcmRlcj1PKyssdGhpcy5faG9zdFBhcmVudD1uLHRoaXMuX2hvc3RDb250 YWluZXJJbmZvPWM7dmFyIGYsbT10aGlzLl9jdXJyZW50RWxlbWVudC5wcm9w cyx2PXRoaXMuX3Byb2Nlc3NDb250ZXh0KHApLGc9dGhpcy5fY3VycmVudEVs ZW1lbnQudHlwZSx5PWUuZ2V0VXBkYXRlUXVldWUoKSxOPWkoZyksYj10aGlz Ll9jb25zdHJ1Y3RDb21wb25lbnQoTixtLHYseSk7aWYoTnx8bnVsbCE9YiYm bnVsbCE9Yi5yZW5kZXI/YShnKT90aGlzLl9jb21wb3NpdGVUeXBlPUQuUHVy ZUNsYXNzOnRoaXMuX2NvbXBvc2l0ZVR5cGU9RC5JbXB1cmVDbGFzczooZj1i LHIoZyxmKSxudWxsPT09Ynx8ITE9PT1ifHxsLmlzVmFsaWRFbGVtZW50KGIp fHwoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/XyghMSwiJXMoLi4u KTogQSB2YWxpZCBSZWFjdCBlbGVtZW50IChvciBudWxsKSBtdXN0IGJlIHJl dHVybmVkLiBZb3UgbWF5IGhhdmUgcmV0dXJuZWQgdW5kZWZpbmVkLCBhbiBh cnJheSBvciBzb21lIG90aGVyIGludmFsaWQgb2JqZWN0LiIsZy5kaXNwbGF5 TmFtZXx8Zy5uYW1lfHwiQ29tcG9uZW50Iik6dSgiMTA1IixnLmRpc3BsYXlO YW1lfHxnLm5hbWV8fCJDb21wb25lbnQiKSksYj1uZXcgbyhnKSx0aGlzLl9j b21wb3NpdGVUeXBlPUQuU3RhdGVsZXNzRnVuY3Rpb25hbCksInByb2R1Y3Rp b24iIT09dC5lbnYuTk9ERV9FTlYpe251bGw9PWIucmVuZGVyJiYicHJvZHVj dGlvbiIhPT10LmVudi5OT0RFX0VOViYmQyghMSwiJXMoLi4uKTogTm8gYHJl bmRlcmAgbWV0aG9kIGZvdW5kIG9uIHRoZSByZXR1cm5lZCBjb21wb25lbnQg aW5zdGFuY2U6IHlvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gZGVmaW5lIGBy ZW5kZXJgLiIsZy5kaXNwbGF5TmFtZXx8Zy5uYW1lfHwiQ29tcG9uZW50Iik7 dmFyIHc9Yi5wcm9wcyE9PW0seD1nLmRpc3BsYXlOYW1lfHxnLm5hbWV8fCJD b21wb25lbnQiOyJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZDKHZv aWQgMD09PWIucHJvcHN8fCF3LCIlcyguLi4pOiBXaGVuIGNhbGxpbmcgc3Vw ZXIoKSBpbiBgJXNgLCBtYWtlIHN1cmUgdG8gcGFzcyB1cCB0aGUgc2FtZSBw cm9wcyB0aGF0IHlvdXIgY29tcG9uZW50J3MgY29uc3RydWN0b3Igd2FzIHBh c3NlZC4iLHgseCl9Yi5wcm9wcz1tLGIuY29udGV4dD12LGIucmVmcz1FLGIu dXBkYXRlcj15LHRoaXMuX2luc3RhbmNlPWIsaC5zZXQoYix0aGlzKSwicHJv ZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmKCJwcm9kdWN0aW9uIiE9PXQu ZW52Lk5PREVfRU5WJiZDKCFiLmdldEluaXRpYWxTdGF0ZXx8Yi5nZXRJbml0 aWFsU3RhdGUuaXNSZWFjdENsYXNzQXBwcm92ZWR8fGIuc3RhdGUsImdldElu aXRpYWxTdGF0ZSB3YXMgZGVmaW5lZCBvbiAlcywgYSBwbGFpbiBKYXZhU2Ny aXB0IGNsYXNzLiBUaGlzIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBjbGFzc2Vz IGNyZWF0ZWQgdXNpbmcgUmVhY3QuY3JlYXRlQ2xhc3MuIERpZCB5b3UgbWVh biB0byBkZWZpbmUgYSBzdGF0ZSBwcm9wZXJ0eSBpbnN0ZWFkPyIsdGhpcy5n ZXROYW1lKCl8fCJhIGNvbXBvbmVudCIpLCJwcm9kdWN0aW9uIiE9PXQuZW52 Lk5PREVfRU5WJiZDKCFiLmdldERlZmF1bHRQcm9wc3x8Yi5nZXREZWZhdWx0 UHJvcHMuaXNSZWFjdENsYXNzQXBwcm92ZWQsImdldERlZmF1bHRQcm9wcyB3 YXMgZGVmaW5lZCBvbiAlcywgYSBwbGFpbiBKYXZhU2NyaXB0IGNsYXNzLiBU aGlzIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBjbGFzc2VzIGNyZWF0ZWQgdXNp bmcgUmVhY3QuY3JlYXRlQ2xhc3MuIFVzZSBhIHN0YXRpYyBwcm9wZXJ0eSB0 byBkZWZpbmUgZGVmYXVsdFByb3BzIGluc3RlYWQuIix0aGlzLmdldE5hbWUo KXx8ImEgY29tcG9uZW50IiksInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9F TlYmJkMoIWIucHJvcFR5cGVzLCJwcm9wVHlwZXMgd2FzIGRlZmluZWQgYXMg YW4gaW5zdGFuY2UgcHJvcGVydHkgb24gJXMuIFVzZSBhIHN0YXRpYyBwcm9w ZXJ0eSB0byBkZWZpbmUgcHJvcFR5cGVzIGluc3RlYWQuIix0aGlzLmdldE5h bWUoKXx8ImEgY29tcG9uZW50IiksInByb2R1Y3Rpb24iIT09dC5lbnYuTk9E RV9FTlYmJkMoIWIuY29udGV4dFR5cGVzLCJjb250ZXh0VHlwZXMgd2FzIGRl ZmluZWQgYXMgYW4gaW5zdGFuY2UgcHJvcGVydHkgb24gJXMuIFVzZSBhIHN0 YXRpYyBwcm9wZXJ0eSB0byBkZWZpbmUgY29udGV4dFR5cGVzIGluc3RlYWQu Iix0aGlzLmdldE5hbWUoKXx8ImEgY29tcG9uZW50IiksInByb2R1Y3Rpb24i IT09dC5lbnYuTk9ERV9FTlYmJkMoImZ1bmN0aW9uIiE9dHlwZW9mIGIuY29t cG9uZW50U2hvdWxkVXBkYXRlLCIlcyBoYXMgYSBtZXRob2QgY2FsbGVkIGNv bXBvbmVudFNob3VsZFVwZGF0ZSgpLiBEaWQgeW91IG1lYW4gc2hvdWxkQ29t cG9uZW50VXBkYXRlKCk/IFRoZSBuYW1lIGlzIHBocmFzZWQgYXMgYSBxdWVz dGlvbiBiZWNhdXNlIHRoZSBmdW5jdGlvbiBpcyBleHBlY3RlZCB0byByZXR1 cm4gYSB2YWx1ZS4iLHRoaXMuZ2V0TmFtZSgpfHwiQSBjb21wb25lbnQiKSwi cHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmQygiZnVuY3Rpb24iIT10 eXBlb2YgYi5jb21wb25lbnREaWRVbm1vdW50LCIlcyBoYXMgYSBtZXRob2Qg Y2FsbGVkIGNvbXBvbmVudERpZFVubW91bnQoKS4gQnV0IHRoZXJlIGlzIG5v IHN1Y2ggbGlmZWN5Y2xlIG1ldGhvZC4gRGlkIHlvdSBtZWFuIGNvbXBvbmVu dFdpbGxVbm1vdW50KCk/Iix0aGlzLmdldE5hbWUoKXx8IkEgY29tcG9uZW50 IiksInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJkMoImZ1bmN0aW9u IiE9dHlwZW9mIGIuY29tcG9uZW50V2lsbFJlY2lldmVQcm9wcywiJXMgaGFz IGEgbWV0aG9kIGNhbGxlZCBjb21wb25lbnRXaWxsUmVjaWV2ZVByb3BzKCku IERpZCB5b3UgbWVhbiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKCk/Iix0 aGlzLmdldE5hbWUoKXx8IkEgY29tcG9uZW50IikpO3ZhciBUPWIuc3RhdGU7 dm9pZCAwPT09VCYmKGIuc3RhdGU9VD1udWxsKSwoIm9iamVjdCIhPXR5cGVv ZiBUfHxBcnJheS5pc0FycmF5KFQpKSYmKCJwcm9kdWN0aW9uIiE9PXQuZW52 Lk5PREVfRU5WP18oITEsIiVzLnN0YXRlOiBtdXN0IGJlIHNldCB0byBhbiBv YmplY3Qgb3IgbnVsbCIsdGhpcy5nZXROYW1lKCl8fCJSZWFjdENvbXBvc2l0 ZUNvbXBvbmVudCIpOnUoIjEwNiIsdGhpcy5nZXROYW1lKCl8fCJSZWFjdENv bXBvc2l0ZUNvbXBvbmVudCIpKSx0aGlzLl9wZW5kaW5nU3RhdGVRdWV1ZT1u dWxsLHRoaXMuX3BlbmRpbmdSZXBsYWNlU3RhdGU9ITEsdGhpcy5fcGVuZGlu Z0ZvcmNlVXBkYXRlPSExO3ZhciBrO3JldHVybiBrPWIudW5zdGFibGVfaGFu ZGxlRXJyb3I/dGhpcy5wZXJmb3JtSW5pdGlhbE1vdW50V2l0aEVycm9ySGFu ZGxpbmcoZixuLGMsZSxwKTp0aGlzLnBlcmZvcm1Jbml0aWFsTW91bnQoZixu LGMsZSxwKSxiLmNvbXBvbmVudERpZE1vdW50JiYoInByb2R1Y3Rpb24iIT09 dC5lbnYuTk9ERV9FTlY/ZS5nZXRSZWFjdE1vdW50UmVhZHkoKS5lbnF1ZXVl KGZ1bmN0aW9uKCl7cyhmdW5jdGlvbigpe3JldHVybiBiLmNvbXBvbmVudERp ZE1vdW50KCl9LGQuX2RlYnVnSUQsImNvbXBvbmVudERpZE1vdW50Iil9KTpl LmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUoYi5jb21wb25lbnREaWRN b3VudCxiKSksa30sX2NvbnN0cnVjdENvbXBvbmVudDpmdW5jdGlvbihlLG4s byxyKXtpZigicHJvZHVjdGlvbiI9PT10LmVudi5OT0RFX0VOVilyZXR1cm4g dGhpcy5fY29uc3RydWN0Q29tcG9uZW50V2l0aG91dE93bmVyKGUsbixvLHIp O2QuY3VycmVudD10aGlzO3RyeXtyZXR1cm4gdGhpcy5fY29uc3RydWN0Q29t cG9uZW50V2l0aG91dE93bmVyKGUsbixvLHIpfWZpbmFsbHl7ZC5jdXJyZW50 PW51bGx9fSxfY29uc3RydWN0Q29tcG9uZW50V2l0aG91dE93bmVyOmZ1bmN0 aW9uKGUsbixvLHIpe3ZhciBpPXRoaXMuX2N1cnJlbnRFbGVtZW50LnR5cGU7 cmV0dXJuIGU/InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/cyhmdW5j dGlvbigpe3JldHVybiBuZXcgaShuLG8scil9LHRoaXMuX2RlYnVnSUQsImN0 b3IiKTpuZXcgaShuLG8scik6InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9F TlY/cyhmdW5jdGlvbigpe3JldHVybiBpKG4sbyxyKX0sdGhpcy5fZGVidWdJ RCwicmVuZGVyIik6aShuLG8scil9LHBlcmZvcm1Jbml0aWFsTW91bnRXaXRo RXJyb3JIYW5kbGluZzpmdW5jdGlvbihlLHQsbixvLHIpe3ZhciBpLGE9by5j aGVja3BvaW50KCk7dHJ5e2k9dGhpcy5wZXJmb3JtSW5pdGlhbE1vdW50KGUs dCxuLG8scil9Y2F0Y2gocyl7by5yb2xsYmFjayhhKSx0aGlzLl9pbnN0YW5j ZS51bnN0YWJsZV9oYW5kbGVFcnJvcihzKSx0aGlzLl9wZW5kaW5nU3RhdGVR dWV1ZSYmKHRoaXMuX2luc3RhbmNlLnN0YXRlPXRoaXMuX3Byb2Nlc3NQZW5k aW5nU3RhdGUodGhpcy5faW5zdGFuY2UucHJvcHMsdGhpcy5faW5zdGFuY2Uu Y29udGV4dCkpLGE9by5jaGVja3BvaW50KCksdGhpcy5fcmVuZGVyZWRDb21w b25lbnQudW5tb3VudENvbXBvbmVudCghMCksby5yb2xsYmFjayhhKSxpPXRo aXMucGVyZm9ybUluaXRpYWxNb3VudChlLHQsbixvLHIpfXJldHVybiBpfSxw ZXJmb3JtSW5pdGlhbE1vdW50OmZ1bmN0aW9uKGUsbixvLHIsaSl7dmFyIGE9 dGhpcy5faW5zdGFuY2UsdT0wOyJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVf RU5WJiYodT10aGlzLl9kZWJ1Z0lEKSxhLmNvbXBvbmVudFdpbGxNb3VudCYm KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP3MoZnVuY3Rpb24oKXty ZXR1cm4gYS5jb21wb25lbnRXaWxsTW91bnQoKX0sdSwiY29tcG9uZW50V2ls bE1vdW50Iik6YS5jb21wb25lbnRXaWxsTW91bnQoKSx0aGlzLl9wZW5kaW5n U3RhdGVRdWV1ZSYmKGEuc3RhdGU9dGhpcy5fcHJvY2Vzc1BlbmRpbmdTdGF0 ZShhLnByb3BzLGEuY29udGV4dCkpKSx2b2lkIDA9PT1lJiYoZT10aGlzLl9y ZW5kZXJWYWxpZGF0ZWRDb21wb25lbnQoKSk7dmFyIGM9di5nZXRUeXBlKGUp O3RoaXMuX3JlbmRlcmVkTm9kZVR5cGU9Yzt2YXIgbD10aGlzLl9pbnN0YW50 aWF0ZVJlYWN0Q29tcG9uZW50KGUsYyE9PXYuRU1QVFkpO3RoaXMuX3JlbmRl cmVkQ29tcG9uZW50PWw7dmFyIHA9Zy5tb3VudENvbXBvbmVudChsLHIsbixv LHRoaXMuX3Byb2Nlc3NDaGlsZENvbnRleHQoaSksdSk7aWYoInByb2R1Y3Rp b24iIT09dC5lbnYuTk9ERV9FTlYmJjAhPT11KXt2YXIgZD0wIT09bC5fZGVi dWdJRD9bbC5fZGVidWdJRF06W107bS5kZWJ1Z1Rvb2wub25TZXRDaGlsZHJl bih1LGQpfXJldHVybiBwfSxnZXRIb3N0Tm9kZTpmdW5jdGlvbigpe3JldHVy biBnLmdldEhvc3ROb2RlKHRoaXMuX3JlbmRlcmVkQ29tcG9uZW50KX0sdW5t b3VudENvbXBvbmVudDpmdW5jdGlvbihlKXtpZih0aGlzLl9yZW5kZXJlZENv bXBvbmVudCl7dmFyIG49dGhpcy5faW5zdGFuY2U7aWYobi5jb21wb25lbnRX aWxsVW5tb3VudCYmIW4uX2NhbGxlZENvbXBvbmVudFdpbGxVbm1vdW50KWlm KG4uX2NhbGxlZENvbXBvbmVudFdpbGxVbm1vdW50PSEwLGUpe3ZhciBvPXRo aXMuZ2V0TmFtZSgpKyIuY29tcG9uZW50V2lsbFVubW91bnQoKSI7Zi5pbnZv a2VHdWFyZGVkQ2FsbGJhY2sobyxuLmNvbXBvbmVudFdpbGxVbm1vdW50LmJp bmQobikpfWVsc2UicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9zKGZ1 bmN0aW9uKCl7cmV0dXJuIG4uY29tcG9uZW50V2lsbFVubW91bnQoKX0sdGhp cy5fZGVidWdJRCwiY29tcG9uZW50V2lsbFVubW91bnQiKTpuLmNvbXBvbmVu dFdpbGxVbm1vdW50KCk7dGhpcy5fcmVuZGVyZWRDb21wb25lbnQmJihnLnVu bW91bnRDb21wb25lbnQodGhpcy5fcmVuZGVyZWRDb21wb25lbnQsZSksdGhp cy5fcmVuZGVyZWROb2RlVHlwZT1udWxsLHRoaXMuX3JlbmRlcmVkQ29tcG9u ZW50PW51bGwsdGhpcy5faW5zdGFuY2U9bnVsbCksdGhpcy5fcGVuZGluZ1N0 YXRlUXVldWU9bnVsbCx0aGlzLl9wZW5kaW5nUmVwbGFjZVN0YXRlPSExLHRo aXMuX3BlbmRpbmdGb3JjZVVwZGF0ZT0hMSx0aGlzLl9wZW5kaW5nQ2FsbGJh Y2tzPW51bGwsdGhpcy5fcGVuZGluZ0VsZW1lbnQ9bnVsbCx0aGlzLl9jb250 ZXh0PW51bGwsdGhpcy5fcm9vdE5vZGVJRD0wLHRoaXMuX3RvcExldmVsV3Jh cHBlcj1udWxsLGgucmVtb3ZlKG4pfX0sX21hc2tDb250ZXh0OmZ1bmN0aW9u KGUpe3ZhciB0PXRoaXMuX2N1cnJlbnRFbGVtZW50LnR5cGUsbj10LmNvbnRl eHRUeXBlcztpZighbilyZXR1cm4gRTt2YXIgbz17fTtmb3IodmFyIHIgaW4g bilvW3JdPWVbcl07cmV0dXJuIG99LF9wcm9jZXNzQ29udGV4dDpmdW5jdGlv bihlKXt2YXIgbj10aGlzLl9tYXNrQ29udGV4dChlKTtpZigicHJvZHVjdGlv biIhPT10LmVudi5OT0RFX0VOVil7dmFyIG89dGhpcy5fY3VycmVudEVsZW1l bnQudHlwZTtvLmNvbnRleHRUeXBlcyYmdGhpcy5fY2hlY2tDb250ZXh0VHlw ZXMoby5jb250ZXh0VHlwZXMsbiwiY29udGV4dCIpfXJldHVybiBufSxfcHJv Y2Vzc0NoaWxkQ29udGV4dDpmdW5jdGlvbihlKXt2YXIgbixvPXRoaXMuX2N1 cnJlbnRFbGVtZW50LnR5cGUscj10aGlzLl9pbnN0YW5jZTtpZihyLmdldENo aWxkQ29udGV4dClpZigicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVil7 bS5kZWJ1Z1Rvb2wub25CZWdpblByb2Nlc3NpbmdDaGlsZENvbnRleHQoKTt0 cnl7bj1yLmdldENoaWxkQ29udGV4dCgpfWZpbmFsbHl7bS5kZWJ1Z1Rvb2wu b25FbmRQcm9jZXNzaW5nQ2hpbGRDb250ZXh0KCl9fWVsc2Ugbj1yLmdldENo aWxkQ29udGV4dCgpO2lmKG4peyJvYmplY3QiIT10eXBlb2Ygby5jaGlsZENv bnRleHRUeXBlcyYmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP18o ITEsIiVzLmdldENoaWxkQ29udGV4dCgpOiBjaGlsZENvbnRleHRUeXBlcyBt dXN0IGJlIGRlZmluZWQgaW4gb3JkZXIgdG8gdXNlIGdldENoaWxkQ29udGV4 dCgpLiIsdGhpcy5nZXROYW1lKCl8fCJSZWFjdENvbXBvc2l0ZUNvbXBvbmVu dCIpOnUoIjEwNyIsdGhpcy5nZXROYW1lKCl8fCJSZWFjdENvbXBvc2l0ZUNv bXBvbmVudCIpKSwicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmdGhp cy5fY2hlY2tDb250ZXh0VHlwZXMoby5jaGlsZENvbnRleHRUeXBlcyxuLCJj aGlsZENvbnRleHQiKTtmb3IodmFyIGkgaW4gbilpIGluIG8uY2hpbGRDb250 ZXh0VHlwZXN8fCgicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9fKCEx LCclcy5nZXRDaGlsZENvbnRleHQoKToga2V5ICIlcyIgaXMgbm90IGRlZmlu ZWQgaW4gY2hpbGRDb250ZXh0VHlwZXMuJyx0aGlzLmdldE5hbWUoKXx8IlJl YWN0Q29tcG9zaXRlQ29tcG9uZW50IixpKTp1KCIxMDgiLHRoaXMuZ2V0TmFt ZSgpfHwiUmVhY3RDb21wb3NpdGVDb21wb25lbnQiLGkpKTtyZXR1cm4gYyh7 fSxlLG4pfXJldHVybiBlfSxfY2hlY2tDb250ZXh0VHlwZXM6ZnVuY3Rpb24o ZSxuLG8peyJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZ5KGUsbixv LHRoaXMuZ2V0TmFtZSgpLG51bGwsdGhpcy5fZGVidWdJRCl9LHJlY2VpdmVD b21wb25lbnQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciBvPXRoaXMuX2N1cnJlbnRF bGVtZW50LHI9dGhpcy5fY29udGV4dDt0aGlzLl9wZW5kaW5nRWxlbWVudD1u dWxsLHRoaXMudXBkYXRlQ29tcG9uZW50KHQsbyxlLHIsbil9LHBlcmZvcm1V cGRhdGVJZk5lY2Vzc2FyeTpmdW5jdGlvbihlKXtudWxsIT10aGlzLl9wZW5k aW5nRWxlbWVudD9nLnJlY2VpdmVDb21wb25lbnQodGhpcyx0aGlzLl9wZW5k aW5nRWxlbWVudCxlLHRoaXMuX2NvbnRleHQpOm51bGwhPT10aGlzLl9wZW5k aW5nU3RhdGVRdWV1ZXx8dGhpcy5fcGVuZGluZ0ZvcmNlVXBkYXRlP3RoaXMu dXBkYXRlQ29tcG9uZW50KGUsdGhpcy5fY3VycmVudEVsZW1lbnQsdGhpcy5f Y3VycmVudEVsZW1lbnQsdGhpcy5fY29udGV4dCx0aGlzLl9jb250ZXh0KTp0 aGlzLl91cGRhdGVCYXRjaE51bWJlcj1udWxsfSx1cGRhdGVDb21wb25lbnQ6 ZnVuY3Rpb24oZSxuLG8scixpKXt2YXIgYT10aGlzLl9pbnN0YW5jZTtudWxs PT1hJiYoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/XyghMSwiQXR0 ZW1wdGVkIHRvIHVwZGF0ZSBjb21wb25lbnQgYCVzYCB0aGF0IGhhcyBhbHJl YWR5IGJlZW4gdW5tb3VudGVkIChvciBmYWlsZWQgdG8gbW91bnQpLiIsdGhp cy5nZXROYW1lKCl8fCJSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCIpOnUoIjEz NiIsdGhpcy5nZXROYW1lKCl8fCJSZWFjdENvbXBvc2l0ZUNvbXBvbmVudCIp KTt2YXIgYyxsPSExO3RoaXMuX2NvbnRleHQ9PT1pP2M9YS5jb250ZXh0Oihj PXRoaXMuX3Byb2Nlc3NDb250ZXh0KGkpLGw9ITApO3ZhciBwPW4ucHJvcHMs ZD1vLnByb3BzO24hPT1vJiYobD0hMCksbCYmYS5jb21wb25lbnRXaWxsUmVj ZWl2ZVByb3BzJiYoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/cyhm dW5jdGlvbigpe3JldHVybiBhLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMo ZCxjKX0sdGhpcy5fZGVidWdJRCwiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9w cyIpOmEuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhkLGMpKTt2YXIgZj10 aGlzLl9wcm9jZXNzUGVuZGluZ1N0YXRlKGQsYyksaD0hMDt0aGlzLl9wZW5k aW5nRm9yY2VVcGRhdGV8fChhLnNob3VsZENvbXBvbmVudFVwZGF0ZT9oPSJw cm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP3MoZnVuY3Rpb24oKXtyZXR1 cm4gYS5zaG91bGRDb21wb25lbnRVcGRhdGUoZCxmLGMpfSx0aGlzLl9kZWJ1 Z0lELCJzaG91bGRDb21wb25lbnRVcGRhdGUiKTphLnNob3VsZENvbXBvbmVu dFVwZGF0ZShkLGYsYyk6dGhpcy5fY29tcG9zaXRlVHlwZT09PUQuUHVyZUNs YXNzJiYoaD0hTihwLGQpfHwhTihhLnN0YXRlLGYpKSksInByb2R1Y3Rpb24i IT09dC5lbnYuTk9ERV9FTlYmJiJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVf RU5WJiZDKHZvaWQgMCE9PWgsIiVzLnNob3VsZENvbXBvbmVudFVwZGF0ZSgp OiBSZXR1cm5lZCB1bmRlZmluZWQgaW5zdGVhZCBvZiBhIGJvb2xlYW4gdmFs dWUuIE1ha2Ugc3VyZSB0byByZXR1cm4gdHJ1ZSBvciBmYWxzZS4iLHRoaXMu Z2V0TmFtZSgpfHwiUmVhY3RDb21wb3NpdGVDb21wb25lbnQiKSx0aGlzLl91 cGRhdGVCYXRjaE51bWJlcj1udWxsLGg/KHRoaXMuX3BlbmRpbmdGb3JjZVVw ZGF0ZT0hMSx0aGlzLl9wZXJmb3JtQ29tcG9uZW50VXBkYXRlKG8sZCxmLGMs ZSxpKSk6KHRoaXMuX2N1cnJlbnRFbGVtZW50PW8sdGhpcy5fY29udGV4dD1p LGEucHJvcHM9ZCxhLnN0YXRlPWYsYS5jb250ZXh0PWMpfSxfcHJvY2Vzc1Bl bmRpbmdTdGF0ZTpmdW5jdGlvbihlLHQpe3ZhciBuPXRoaXMuX2luc3RhbmNl LG89dGhpcy5fcGVuZGluZ1N0YXRlUXVldWUscj10aGlzLl9wZW5kaW5nUmVw bGFjZVN0YXRlO2lmKHRoaXMuX3BlbmRpbmdSZXBsYWNlU3RhdGU9ITEsdGhp cy5fcGVuZGluZ1N0YXRlUXVldWU9bnVsbCwhbylyZXR1cm4gbi5zdGF0ZTtp ZihyJiYxPT09by5sZW5ndGgpcmV0dXJuIG9bMF07Zm9yKHZhciBpPWMoe30s cj9vWzBdOm4uc3RhdGUpLGE9cj8xOjA7YTxvLmxlbmd0aDthKyspe3ZhciBz PW9bYV07YyhpLCJmdW5jdGlvbiI9PXR5cGVvZiBzP3MuY2FsbChuLGksZSx0 KTpzKX1yZXR1cm4gaX0sX3BlcmZvcm1Db21wb25lbnRVcGRhdGU6ZnVuY3Rp b24oZSxuLG8scixpLGEpe3ZhciB1LGMsbCxwPXRoaXMsZD10aGlzLl9pbnN0 YW5jZSxmPUJvb2xlYW4oZC5jb21wb25lbnREaWRVcGRhdGUpO2YmJih1PWQu cHJvcHMsYz1kLnN0YXRlLGw9ZC5jb250ZXh0KSxkLmNvbXBvbmVudFdpbGxV cGRhdGUmJigicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9zKGZ1bmN0 aW9uKCl7cmV0dXJuIGQuY29tcG9uZW50V2lsbFVwZGF0ZShuLG8scil9LHRo aXMuX2RlYnVnSUQsImNvbXBvbmVudFdpbGxVcGRhdGUiKTpkLmNvbXBvbmVu dFdpbGxVcGRhdGUobixvLHIpKSx0aGlzLl9jdXJyZW50RWxlbWVudD1lLHRo aXMuX2NvbnRleHQ9YSxkLnByb3BzPW4sZC5zdGF0ZT1vLGQuY29udGV4dD1y LHRoaXMuX3VwZGF0ZVJlbmRlcmVkQ29tcG9uZW50KGksYSksZiYmKCJwcm9k dWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP2kuZ2V0UmVhY3RNb3VudFJlYWR5 KCkuZW5xdWV1ZShmdW5jdGlvbigpe3MoZC5jb21wb25lbnREaWRVcGRhdGUu YmluZChkLHUsYyxsKSxwLl9kZWJ1Z0lELCJjb21wb25lbnREaWRVcGRhdGUi KX0pOmkuZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5xdWV1ZShkLmNvbXBvbmVu dERpZFVwZGF0ZS5iaW5kKGQsdSxjLGwpLGQpKX0sX3VwZGF0ZVJlbmRlcmVk Q29tcG9uZW50OmZ1bmN0aW9uKGUsbil7dmFyIG89dGhpcy5fcmVuZGVyZWRD b21wb25lbnQscj1vLl9jdXJyZW50RWxlbWVudCxpPXRoaXMuX3JlbmRlclZh bGlkYXRlZENvbXBvbmVudCgpLGE9MDtpZigicHJvZHVjdGlvbiIhPT10LmVu di5OT0RFX0VOViYmKGE9dGhpcy5fZGVidWdJRCksYihyLGkpKWcucmVjZWl2 ZUNvbXBvbmVudChvLGksZSx0aGlzLl9wcm9jZXNzQ2hpbGRDb250ZXh0KG4p KTtlbHNle3ZhciBzPWcuZ2V0SG9zdE5vZGUobyk7Zy51bm1vdW50Q29tcG9u ZW50KG8sITEpO3ZhciB1PXYuZ2V0VHlwZShpKTt0aGlzLl9yZW5kZXJlZE5v ZGVUeXBlPXU7dmFyIGM9dGhpcy5faW5zdGFudGlhdGVSZWFjdENvbXBvbmVu dChpLHUhPT12LkVNUFRZKTt0aGlzLl9yZW5kZXJlZENvbXBvbmVudD1jO3Zh ciBsPWcubW91bnRDb21wb25lbnQoYyxlLHRoaXMuX2hvc3RQYXJlbnQsdGhp cy5faG9zdENvbnRhaW5lckluZm8sdGhpcy5fcHJvY2Vzc0NoaWxkQ29udGV4 dChuKSxhKTtpZigicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmMCE9 PWEpe3ZhciBwPTAhPT1jLl9kZWJ1Z0lEP1tjLl9kZWJ1Z0lEXTpbXTttLmRl YnVnVG9vbC5vblNldENoaWxkcmVuKGEscCl9dGhpcy5fcmVwbGFjZU5vZGVX aXRoTWFya3VwKHMsbCxvKX19LF9yZXBsYWNlTm9kZVdpdGhNYXJrdXA6ZnVu Y3Rpb24oZSx0LG4pe3AucmVwbGFjZU5vZGVXaXRoTWFya3VwKGUsdCxuKX0s X3JlbmRlclZhbGlkYXRlZENvbXBvbmVudFdpdGhvdXRPd25lck9yQ29udGV4 dDpmdW5jdGlvbigpe3ZhciBlLG49dGhpcy5faW5zdGFuY2U7cmV0dXJuIGU9 InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/cyhmdW5jdGlvbigpe3Jl dHVybiBuLnJlbmRlcigpfSx0aGlzLl9kZWJ1Z0lELCJyZW5kZXIiKTpuLnJl bmRlcigpLCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZ2b2lkIDA9 PT1lJiZuLnJlbmRlci5faXNNb2NrRnVuY3Rpb24mJihlPW51bGwpLGV9LF9y ZW5kZXJWYWxpZGF0ZWRDb21wb25lbnQ6ZnVuY3Rpb24oKXt2YXIgZTtpZigi cHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVnx8dGhpcy5fY29tcG9zaXRl VHlwZSE9PUQuU3RhdGVsZXNzRnVuY3Rpb25hbCl7ZC5jdXJyZW50PXRoaXM7 dHJ5e2U9dGhpcy5fcmVuZGVyVmFsaWRhdGVkQ29tcG9uZW50V2l0aG91dE93 bmVyT3JDb250ZXh0KCl9ZmluYWxseXtkLmN1cnJlbnQ9bnVsbH19ZWxzZSBl PXRoaXMuX3JlbmRlclZhbGlkYXRlZENvbXBvbmVudFdpdGhvdXRPd25lck9y Q29udGV4dCgpO3JldHVybiBudWxsPT09ZXx8ITE9PT1lfHxsLmlzVmFsaWRF bGVtZW50KGUpfHwoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/Xygh MSwiJXMucmVuZGVyKCk6IEEgdmFsaWQgUmVhY3QgZWxlbWVudCAob3IgbnVs bCkgbXVzdCBiZSByZXR1cm5lZC4gWW91IG1heSBoYXZlIHJldHVybmVkIHVu ZGVmaW5lZCwgYW4gYXJyYXkgb3Igc29tZSBvdGhlciBpbnZhbGlkIG9iamVj dC4iLHRoaXMuZ2V0TmFtZSgpfHwiUmVhY3RDb21wb3NpdGVDb21wb25lbnQi KTp1KCIxMDkiLHRoaXMuZ2V0TmFtZSgpfHwiUmVhY3RDb21wb3NpdGVDb21w b25lbnQiKSksZX0sYXR0YWNoUmVmOmZ1bmN0aW9uKGUsbil7dmFyIG89dGhp cy5nZXRQdWJsaWNJbnN0YW5jZSgpO251bGw9PW8mJigicHJvZHVjdGlvbiIh PT10LmVudi5OT0RFX0VOVj9fKCExLCJTdGF0ZWxlc3MgZnVuY3Rpb24gY29t cG9uZW50cyBjYW5ub3QgaGF2ZSByZWZzLiIpOnUoIjExMCIpKTt2YXIgcj1u LmdldFB1YmxpY0luc3RhbmNlKCk7aWYoInByb2R1Y3Rpb24iIT09dC5lbnYu Tk9ERV9FTlYpe3ZhciBpPW4mJm4uZ2V0TmFtZT9uLmdldE5hbWUoKToiYSBj b21wb25lbnQiOyJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZDKG51 bGwhPXJ8fG4uX2NvbXBvc2l0ZVR5cGUhPT1ELlN0YXRlbGVzc0Z1bmN0aW9u YWwsJ1N0YXRlbGVzcyBmdW5jdGlvbiBjb21wb25lbnRzIGNhbm5vdCBiZSBn aXZlbiByZWZzIChTZWUgcmVmICIlcyIgaW4gJXMgY3JlYXRlZCBieSAlcyku IEF0dGVtcHRzIHRvIGFjY2VzcyB0aGlzIHJlZiB3aWxsIGZhaWwuJyxlLGks dGhpcy5nZXROYW1lKCkpfShvLnJlZnM9PT1FP28ucmVmcz17fTpvLnJlZnMp W2VdPXJ9LGRldGFjaFJlZjpmdW5jdGlvbihlKXtkZWxldGUgdGhpcy5nZXRQ dWJsaWNJbnN0YW5jZSgpLnJlZnNbZV19LGdldE5hbWU6ZnVuY3Rpb24oKXt2 YXIgZT10aGlzLl9jdXJyZW50RWxlbWVudC50eXBlLHQ9dGhpcy5faW5zdGFu Y2UmJnRoaXMuX2luc3RhbmNlLmNvbnN0cnVjdG9yO3JldHVybiBlLmRpc3Bs YXlOYW1lfHx0JiZ0LmRpc3BsYXlOYW1lfHxlLm5hbWV8fHQmJnQubmFtZXx8 bnVsbH0sZ2V0UHVibGljSW5zdGFuY2U6ZnVuY3Rpb24oKXt2YXIgZT10aGlz Ll9pbnN0YW5jZTtyZXR1cm4gdGhpcy5fY29tcG9zaXRlVHlwZT09PUQuU3Rh dGVsZXNzRnVuY3Rpb25hbD9udWxsOmV9LF9pbnN0YW50aWF0ZVJlYWN0Q29t cG9uZW50Om51bGx9O2UuZXhwb3J0cz13fSkuY2FsbCh0LG4oMCkpfSxmdW5j dGlvbihlLHQsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXt2YXIgbz1u KDUpLHI9bigxMjYpLGk9big2NCksYT1uKDE4KSxzPW4oMTApLHU9bigxNDEp LGM9bigxNTgpLGw9big3MCkscD1uKDE2NiksZD1uKDIpO3IuaW5qZWN0KCk7 dmFyIGY9e2ZpbmRET01Ob2RlOmMscmVuZGVyOmkucmVuZGVyLHVubW91bnRD b21wb25lbnRBdE5vZGU6aS51bm1vdW50Q29tcG9uZW50QXROb2RlLHZlcnNp b246dSx1bnN0YWJsZV9iYXRjaGVkVXBkYXRlczpzLmJhdGNoZWRVcGRhdGVz LHVuc3RhYmxlX3JlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyOnB9O2lmKCJ1 bmRlZmluZWQiIT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9P S19fJiYiZnVuY3Rpb24iPT10eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9C QUxfSE9PS19fLmluamVjdCYmX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9P S19fLmluamVjdCh7Q29tcG9uZW50VHJlZTp7Z2V0Q2xvc2VzdEluc3RhbmNl RnJvbU5vZGU6by5nZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZSxnZXROb2Rl RnJvbUluc3RhbmNlOmZ1bmN0aW9uKGUpe3JldHVybiBlLl9yZW5kZXJlZENv bXBvbmVudCYmKGU9bChlKSksZT9vLmdldE5vZGVGcm9tSW5zdGFuY2UoZSk6 bnVsbH19LE1vdW50OmksUmVjb25jaWxlcjphfSksInByb2R1Y3Rpb24iIT09 dC5lbnYuTk9ERV9FTlYpe2lmKG4oNikuY2FuVXNlRE9NJiZ3aW5kb3cudG9w PT09d2luZG93LnNlbGYpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgX19SRUFD VF9ERVZUT09MU19HTE9CQUxfSE9PS19fJiYobmF2aWdhdG9yLnVzZXJBZ2Vu dC5pbmRleE9mKCJDaHJvbWUiKT4tMSYmLTE9PT1uYXZpZ2F0b3IudXNlckFn ZW50LmluZGV4T2YoIkVkZ2UiKXx8bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRl eE9mKCJGaXJlZm94Iik+LTEpKXt2YXIgaD0tMT09PXdpbmRvdy5sb2NhdGlv bi5wcm90b2NvbC5pbmRleE9mKCJodHRwIikmJi0xPT09bmF2aWdhdG9yLnVz ZXJBZ2VudC5pbmRleE9mKCJGaXJlZm94Iik7Y29uc29sZS5kZWJ1ZygiRG93 bmxvYWQgdGhlIFJlYWN0IERldlRvb2xzICIrKGg/ImFuZCB1c2UgYW4gSFRU UCBzZXJ2ZXIgKGluc3RlYWQgb2YgYSBmaWxlOiBVUkwpICI6IiIpKyJmb3Ig YSBiZXR0ZXIgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZTogaHR0cHM6Ly9mYi5t ZS9yZWFjdC1kZXZ0b29scyIpfXZhciBtPWZ1bmN0aW9uKCl7fTsicHJvZHVj dGlvbiIhPT10LmVudi5OT0RFX0VOViYmZCgtMSE9PShtLm5hbWV8fG0udG9T dHJpbmcoKSkuaW5kZXhPZigidGVzdEZuIiksIkl0IGxvb2tzIGxpa2UgeW91 J3JlIHVzaW5nIGEgbWluaWZpZWQgY29weSBvZiB0aGUgZGV2ZWxvcG1lbnQg YnVpbGQgb2YgUmVhY3QuIFdoZW4gZGVwbG95aW5nIFJlYWN0IGFwcHMgdG8g cHJvZHVjdGlvbiwgbWFrZSBzdXJlIHRvIHVzZSB0aGUgcHJvZHVjdGlvbiBi dWlsZCB3aGljaCBza2lwcyBkZXZlbG9wbWVudCB3YXJuaW5ncyBhbmQgaXMg ZmFzdGVyLiBTZWUgaHR0cHM6Ly9mYi5tZS9yZWFjdC1taW5pZmljYXRpb24g Zm9yIG1vcmUgZGV0YWlscy4iKTt2YXIgdj1kb2N1bWVudC5kb2N1bWVudE1v ZGUmJmRvY3VtZW50LmRvY3VtZW50TW9kZTw4OyJwcm9kdWN0aW9uIiE9PXQu ZW52Lk5PREVfRU5WJiZkKCF2LCdJbnRlcm5ldCBFeHBsb3JlciBpcyBydW5u aW5nIGluIGNvbXBhdGliaWxpdHkgbW9kZTsgcGxlYXNlIGFkZCB0aGUgZm9s bG93aW5nIHRhZyB0byB5b3VyIEhUTUwgdG8gcHJldmVudCB0aGlzIGZyb20g aGFwcGVuaW5nOiA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUi IGNvbnRlbnQ9IklFPWVkZ2UiIC8+Jyk7Zm9yKHZhciBnPVtBcnJheS5pc0Fy cmF5LEFycmF5LnByb3RvdHlwZS5ldmVyeSxBcnJheS5wcm90b3R5cGUuZm9y RWFjaCxBcnJheS5wcm90b3R5cGUuaW5kZXhPZixBcnJheS5wcm90b3R5cGUu bWFwLERhdGUubm93LEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLE9iamVjdC5r ZXlzLFN0cmluZy5wcm90b3R5cGUudHJpbV0seT0wO3k8Zy5sZW5ndGg7eSsr KWlmKCFnW3ldKXsicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmZCgh MSwiT25lIG9yIG1vcmUgRVM1IHNoaW1zIGV4cGVjdGVkIGJ5IFJlYWN0IGFy ZSBub3QgYXZhaWxhYmxlOiBodHRwczovL2ZiLm1lL3JlYWN0LXdhcm5pbmct cG9seWZpbGxzIik7YnJlYWt9fX1pZigicHJvZHVjdGlvbiIhPT10LmVudi5O T0RFX0VOVil7dmFyIEU9big4KSxfPW4oMTIzKSxOPW4oMTE3KSxiPW4oMTE2 KTtFLmRlYnVnVG9vbC5hZGRIb29rKF8pLEUuZGVidWdUb29sLmFkZEhvb2so TiksRS5kZWJ1Z1Rvb2wuYWRkSG9vayhiKX1lLmV4cG9ydHM9Zn0pLmNhbGwo dCxuKDApKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rp b24odCl7ZnVuY3Rpb24gbyhlKXtpZihlKXt2YXIgdD1lLl9jdXJyZW50RWxl bWVudC5fb3duZXJ8fG51bGw7aWYodCl7dmFyIG49dC5nZXROYW1lKCk7aWYo bilyZXR1cm4iIFRoaXMgRE9NIG5vZGUgd2FzIHJlbmRlcmVkIGJ5IGAiK24r ImAuIn19cmV0dXJuIiJ9ZnVuY3Rpb24gcihlKXtpZigib2JqZWN0Ij09dHlw ZW9mIGUpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIlsiK2UubWFwKHIp LmpvaW4oIiwgIikrIl0iO3ZhciB0PVtdO2Zvcih2YXIgbiBpbiBlKWlmKE9i amVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pKXt2YXIg bz0vXlthLXokX11bXHckX10qJC9pLnRlc3Qobik/bjpKU09OLnN0cmluZ2lm eShuKTt0LnB1c2gobysiOiAiK3IoZVtuXSkpfXJldHVybiJ7Iit0LmpvaW4o IiwgIikrIn0ifXJldHVybiJzdHJpbmciPT10eXBlb2YgZT9KU09OLnN0cmlu Z2lmeShlKToiZnVuY3Rpb24iPT10eXBlb2YgZT8iW2Z1bmN0aW9uIG9iamVj dF0iOlN0cmluZyhlKX1mdW5jdGlvbiBpKGUsbixvKXtpZihudWxsIT1lJiZu dWxsIT1uJiYhQihlLG4pKXt2YXIgaSxhPW8uX3RhZyxzPW8uX2N1cnJlbnRF bGVtZW50Ll9vd25lcjtzJiYoaT1zLmdldE5hbWUoKSk7dmFyIHU9aSsifCIr YTtaLmhhc093blByb3BlcnR5KHUpfHwoWlt1XT0hMCwicHJvZHVjdGlvbiIh PT10LmVudi5OT0RFX0VOViYmVyghMSwiYCVzYCB3YXMgcGFzc2VkIGEgc3R5 bGUgb2JqZWN0IHRoYXQgaGFzIHByZXZpb3VzbHkgYmVlbiBtdXRhdGVkLiBN dXRhdGluZyBgc3R5bGVgIGlzIGRlcHJlY2F0ZWQuIENvbnNpZGVyIGNsb25p bmcgaXQgYmVmb3JlaGFuZC4gQ2hlY2sgdGhlIGByZW5kZXJgICVzLiBQcmV2 aW91cyBzdHlsZTogJXMuIE11dGF0ZWQgc3R5bGU6ICVzLiIsYSxzPyJvZiBg IitpKyJgIjoidXNpbmcgPCIrYSsiPiIscihlKSxyKG4pKSl9fWZ1bmN0aW9u IGEoZSxuKXtuJiYocmVbZS5fdGFnXSYmKG51bGwhPW4uY2hpbGRyZW58fG51 bGwhPW4uZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwpJiYoInByb2R1Y3Rpb24i IT09dC5lbnYuTk9ERV9FTlY/RighMSwiJXMgaXMgYSB2b2lkIGVsZW1lbnQg dGFnIGFuZCBtdXN0IG5laXRoZXIgaGF2ZSBgY2hpbGRyZW5gIG5vciB1c2Ug YGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC4lcyIsZS5fdGFnLGUuX2N1cnJl bnRFbGVtZW50Ll9vd25lcj8iIENoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9m ICIrZS5fY3VycmVudEVsZW1lbnQuX293bmVyLmdldE5hbWUoKSsiLiI6IiIp OmcoIjEzNyIsZS5fdGFnLGUuX2N1cnJlbnRFbGVtZW50Ll9vd25lcj8iIENo ZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mICIrZS5fY3VycmVudEVsZW1lbnQu X293bmVyLmdldE5hbWUoKSsiLiI6IiIpKSxudWxsIT1uLmRhbmdlcm91c2x5 U2V0SW5uZXJIVE1MJiYobnVsbCE9bi5jaGlsZHJlbiYmKCJwcm9kdWN0aW9u IiE9PXQuZW52Lk5PREVfRU5WP0YoITEsIkNhbiBvbmx5IHNldCBvbmUgb2Yg YGNoaWxkcmVuYCBvciBgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxg LiIpOmcoIjYwIikpLCJvYmplY3QiPT10eXBlb2Ygbi5kYW5nZXJvdXNseVNl dElubmVySFRNTCYmRyBpbiBuLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MfHwo InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/RighMSwiYHByb3BzLmRh bmdlcm91c2x5U2V0SW5uZXJIVE1MYCBtdXN0IGJlIGluIHRoZSBmb3JtIGB7 X19odG1sOiAuLi59YC4gUGxlYXNlIHZpc2l0IGh0dHBzOi8vZmIubWUvcmVh Y3QtaW52YXJpYW50LWRhbmdlcm91c2x5LXNldC1pbm5lci1odG1sIGZvciBt b3JlIGluZm9ybWF0aW9uLiIpOmcoIjYxIikpKSwicHJvZHVjdGlvbiIhPT10 LmVudi5OT0RFX0VOViYmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5W JiZXKG51bGw9PW4uaW5uZXJIVE1MLCJEaXJlY3RseSBzZXR0aW5nIHByb3Bl cnR5IGBpbm5lckhUTUxgIGlzIG5vdCBwZXJtaXR0ZWQuIEZvciBtb3JlIGlu Zm9ybWF0aW9uLCBsb29rdXAgZG9jdW1lbnRhdGlvbiBvbiBgZGFuZ2Vyb3Vz bHlTZXRJbm5lckhUTUxgLiIpLCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVf RU5WJiZXKG4uc3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nfHwhbi5j b250ZW50RWRpdGFibGV8fG51bGw9PW4uY2hpbGRyZW4sIkEgY29tcG9uZW50 IGlzIGBjb250ZW50RWRpdGFibGVgIGFuZCBjb250YWlucyBgY2hpbGRyZW5g IG1hbmFnZWQgYnkgUmVhY3QuIEl0IGlzIG5vdyB5b3VyIHJlc3BvbnNpYmls aXR5IHRvIGd1YXJhbnRlZSB0aGF0IG5vbmUgb2YgdGhvc2Ugbm9kZXMgYXJl IHVuZXhwZWN0ZWRseSBtb2RpZmllZCBvciBkdXBsaWNhdGVkLiBUaGlzIGlz IHByb2JhYmx5IG5vdCBpbnRlbnRpb25hbC4iKSwicHJvZHVjdGlvbiIhPT10 LmVudi5OT0RFX0VOViYmVyhudWxsPT1uLm9uRm9jdXNJbiYmbnVsbD09bi5v bkZvY3VzT3V0LCJSZWFjdCB1c2VzIG9uRm9jdXMgYW5kIG9uQmx1ciBpbnN0 ZWFkIG9mIG9uRm9jdXNJbiBhbmQgb25Gb2N1c091dC4gQWxsIFJlYWN0IGV2 ZW50cyBhcmUgbm9ybWFsaXplZCB0byBidWJibGUsIHNvIG9uRm9jdXNJbiBh bmQgb25Gb2N1c091dCBhcmUgbm90IG5lZWRlZC9zdXBwb3J0ZWQgYnkgUmVh Y3QuIikpLG51bGwhPW4uc3R5bGUmJiJvYmplY3QiIT10eXBlb2Ygbi5zdHls ZSYmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP0YoITEsIlRoZSBg c3R5bGVgIHByb3AgZXhwZWN0cyBhIG1hcHBpbmcgZnJvbSBzdHlsZSBwcm9w ZXJ0aWVzIHRvIHZhbHVlcywgbm90IGEgc3RyaW5nLiBGb3IgZXhhbXBsZSwg c3R5bGU9e3ttYXJnaW5SaWdodDogc3BhY2luZyArICdlbSd9fSB3aGVuIHVz aW5nIEpTWC4lcyIsbyhlKSk6ZygiNjIiLG8oZSkpKSl9ZnVuY3Rpb24gcyhl LG4sbyxyKXtpZighKHIgaW5zdGFuY2VvZiBBKSl7InByb2R1Y3Rpb24iIT09 dC5lbnYuTk9ERV9FTlYmJiJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5W JiZXKCJvblNjcm9sbCIhPT1ufHxqKCJzY3JvbGwiLCEwKSwiVGhpcyBicm93 c2VyIGRvZXNuJ3Qgc3VwcG9ydCB0aGUgYG9uU2Nyb2xsYCBldmVudCIpO3Zh ciBpPWUuX2hvc3RDb250YWluZXJJbmZvLGE9aS5fbm9kZSYmaS5fbm9kZS5u b2RlVHlwZT09PUoscz1hP2kuX25vZGU6aS5fb3duZXJEb2N1bWVudDt6KG4s cyksci5nZXRSZWFjdE1vdW50UmVhZHkoKS5lbnF1ZXVlKHUse2luc3Q6ZSxy ZWdpc3RyYXRpb25OYW1lOm4sbGlzdGVuZXI6b30pfX1mdW5jdGlvbiB1KCl7 dmFyIGU9dGhpcztPLnB1dExpc3RlbmVyKGUuaW5zdCxlLnJlZ2lzdHJhdGlv bk5hbWUsZS5saXN0ZW5lcil9ZnVuY3Rpb24gYygpe3ZhciBlPXRoaXM7SS5w b3N0TW91bnRXcmFwcGVyKGUpfWZ1bmN0aW9uIGwoKXt2YXIgZT10aGlzO1Yu cG9zdE1vdW50V3JhcHBlcihlKX1mdW5jdGlvbiBwKCl7dmFyIGU9dGhpcztQ LnBvc3RNb3VudFdyYXBwZXIoZSl9ZnVuY3Rpb24gZCgpe3ZhciBlPXRoaXM7 ZS5fcm9vdE5vZGVJRHx8KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5W P0YoITEsIk11c3QgYmUgbW91bnRlZCB0byB0cmFwIGV2ZW50cyIpOmcoIjYz IikpO3ZhciBuPUsoZSk7c3dpdGNoKG58fCgicHJvZHVjdGlvbiIhPT10LmVu di5OT0RFX0VOVj9GKCExLCJ0cmFwQnViYmxlZEV2ZW50KC4uLik6IFJlcXVp cmVzIG5vZGUgdG8gYmUgcmVuZGVyZWQuIik6ZygiNjQiKSksZS5fdGFnKXtj YXNlImlmcmFtZSI6Y2FzZSJvYmplY3QiOmUuX3dyYXBwZXJTdGF0ZS5saXN0 ZW5lcnM9W3gudHJhcEJ1YmJsZWRFdmVudCgidG9wTG9hZCIsImxvYWQiLG4p XTticmVhaztjYXNlInZpZGVvIjpjYXNlImF1ZGlvIjplLl93cmFwcGVyU3Rh dGUubGlzdGVuZXJzPVtdO2Zvcih2YXIgbyBpbiB0ZSl0ZS5oYXNPd25Qcm9w ZXJ0eShvKSYmZS5fd3JhcHBlclN0YXRlLmxpc3RlbmVycy5wdXNoKHgudHJh cEJ1YmJsZWRFdmVudChvLHRlW29dLG4pKTticmVhaztjYXNlInNvdXJjZSI6 ZS5fd3JhcHBlclN0YXRlLmxpc3RlbmVycz1beC50cmFwQnViYmxlZEV2ZW50 KCJ0b3BFcnJvciIsImVycm9yIixuKV07YnJlYWs7Y2FzZSJpbWciOmUuX3dy YXBwZXJTdGF0ZS5saXN0ZW5lcnM9W3gudHJhcEJ1YmJsZWRFdmVudCgidG9w RXJyb3IiLCJlcnJvciIsbikseC50cmFwQnViYmxlZEV2ZW50KCJ0b3BMb2Fk IiwibG9hZCIsbildO2JyZWFrO2Nhc2UiZm9ybSI6ZS5fd3JhcHBlclN0YXRl Lmxpc3RlbmVycz1beC50cmFwQnViYmxlZEV2ZW50KCJ0b3BSZXNldCIsInJl c2V0IixuKSx4LnRyYXBCdWJibGVkRXZlbnQoInRvcFN1Ym1pdCIsInN1Ym1p dCIsbildO2JyZWFrO2Nhc2UiaW5wdXQiOmNhc2Uic2VsZWN0IjpjYXNlInRl eHRhcmVhIjplLl93cmFwcGVyU3RhdGUubGlzdGVuZXJzPVt4LnRyYXBCdWJi bGVkRXZlbnQoInRvcEludmFsaWQiLCJpbnZhbGlkIixuKV19fWZ1bmN0aW9u IGYoKXtTLnBvc3RVcGRhdGVXcmFwcGVyKHRoaXMpfWZ1bmN0aW9uIGgoZSl7 c2UuY2FsbChhZSxlKXx8KGllLnRlc3QoZSl8fCgicHJvZHVjdGlvbiIhPT10 LmVudi5OT0RFX0VOVj9GKCExLCJJbnZhbGlkIHRhZzogJXMiLGUpOmcoIjY1 IixlKSksYWVbZV09ITApfWZ1bmN0aW9uIG0oZSx0KXtyZXR1cm4gZS5pbmRl eE9mKCItIik+PTB8fG51bGwhPXQuaXN9ZnVuY3Rpb24gdihlKXt2YXIgbj1l LnR5cGU7aChuKSx0aGlzLl9jdXJyZW50RWxlbWVudD1lLHRoaXMuX3RhZz1u LnRvTG93ZXJDYXNlKCksdGhpcy5fbmFtZXNwYWNlVVJJPW51bGwsdGhpcy5f cmVuZGVyZWRDaGlsZHJlbj1udWxsLHRoaXMuX3ByZXZpb3VzU3R5bGU9bnVs bCx0aGlzLl9wcmV2aW91c1N0eWxlQ29weT1udWxsLHRoaXMuX2hvc3ROb2Rl PW51bGwsdGhpcy5faG9zdFBhcmVudD1udWxsLHRoaXMuX3Jvb3ROb2RlSUQ9 MCx0aGlzLl9kb21JRD0wLHRoaXMuX2hvc3RDb250YWluZXJJbmZvPW51bGws dGhpcy5fd3JhcHBlclN0YXRlPW51bGwsdGhpcy5fdG9wTGV2ZWxXcmFwcGVy PW51bGwsdGhpcy5fZmxhZ3M9MCwicHJvZHVjdGlvbiIhPT10LmVudi5OT0RF X0VOViYmKHRoaXMuX2FuY2VzdG9ySW5mbz1udWxsLGVlLmNhbGwodGhpcyxu dWxsKSl9dmFyIGc9bigzKSx5PW4oNCksRT1uKDk3KSxfPW4oOTkpLE49bigx NyksYj1uKDMzKSxDPW4oMTMpLEQ9big1NyksTz1uKDIxKSx3PW4oMjUpLHg9 bigyNiksVD1uKDU4KSxrPW4oNSksST1uKDExNSksUD1uKDExOCksUz1uKDU5 KSxWPW4oMTIxKSxSPW4oOCksTT1uKDEzNCksQT1uKDEzOSksVT1uKDkpLEw9 bigyOSksRj1uKDEpLGo9big0NCksQj1uKDMxKSxIPW4oNDYpLFc9bigyKSxx PVQsWT1PLmRlbGV0ZUxpc3RlbmVyLEs9ay5nZXROb2RlRnJvbUluc3RhbmNl LHo9eC5saXN0ZW5UbyxYPXcucmVnaXN0cmF0aW9uTmFtZU1vZHVsZXMsJD17 c3RyaW5nOiEwLG51bWJlcjohMH0sRz0iX19odG1sIixRPXtjaGlsZHJlbjpu dWxsLGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOm51bGwsc3VwcHJlc3NDb250 ZW50RWRpdGFibGVXYXJuaW5nOm51bGx9LEo9MTEsWj17fSxlZT1VOyJwcm9k dWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiYoZWU9ZnVuY3Rpb24oZSl7dmFy IHQ9bnVsbCE9dGhpcy5fY29udGVudERlYnVnSUQsbj10aGlzLl9kZWJ1Z0lE LG89LW47aWYobnVsbD09ZSlyZXR1cm4gdCYmUi5kZWJ1Z1Rvb2wub25Vbm1v dW50Q29tcG9uZW50KHRoaXMuX2NvbnRlbnREZWJ1Z0lEKSx2b2lkKHRoaXMu X2NvbnRlbnREZWJ1Z0lEPW51bGwpO0gobnVsbCxTdHJpbmcoZSksdGhpcyx0 aGlzLl9hbmNlc3RvckluZm8pLHRoaXMuX2NvbnRlbnREZWJ1Z0lEPW8sdD8o Ui5kZWJ1Z1Rvb2wub25CZWZvcmVVcGRhdGVDb21wb25lbnQobyxlKSxSLmRl YnVnVG9vbC5vblVwZGF0ZUNvbXBvbmVudChvKSk6KFIuZGVidWdUb29sLm9u QmVmb3JlTW91bnRDb21wb25lbnQobyxlLG4pLFIuZGVidWdUb29sLm9uTW91 bnRDb21wb25lbnQobyksUi5kZWJ1Z1Rvb2wub25TZXRDaGlsZHJlbihuLFtv XSkpfSk7dmFyIHRlPXt0b3BBYm9ydDoiYWJvcnQiLHRvcENhblBsYXk6ImNh bnBsYXkiLHRvcENhblBsYXlUaHJvdWdoOiJjYW5wbGF5dGhyb3VnaCIsdG9w RHVyYXRpb25DaGFuZ2U6ImR1cmF0aW9uY2hhbmdlIix0b3BFbXB0aWVkOiJl bXB0aWVkIix0b3BFbmNyeXB0ZWQ6ImVuY3J5cHRlZCIsdG9wRW5kZWQ6ImVu ZGVkIix0b3BFcnJvcjoiZXJyb3IiLHRvcExvYWRlZERhdGE6ImxvYWRlZGRh dGEiLHRvcExvYWRlZE1ldGFkYXRhOiJsb2FkZWRtZXRhZGF0YSIsdG9wTG9h ZFN0YXJ0OiJsb2Fkc3RhcnQiLHRvcFBhdXNlOiJwYXVzZSIsdG9wUGxheToi cGxheSIsdG9wUGxheWluZzoicGxheWluZyIsdG9wUHJvZ3Jlc3M6InByb2dy ZXNzIix0b3BSYXRlQ2hhbmdlOiJyYXRlY2hhbmdlIix0b3BTZWVrZWQ6InNl ZWtlZCIsdG9wU2Vla2luZzoic2Vla2luZyIsdG9wU3RhbGxlZDoic3RhbGxl ZCIsdG9wU3VzcGVuZDoic3VzcGVuZCIsdG9wVGltZVVwZGF0ZToidGltZXVw ZGF0ZSIsdG9wVm9sdW1lQ2hhbmdlOiJ2b2x1bWVjaGFuZ2UiLHRvcFdhaXRp bmc6IndhaXRpbmcifSxuZT17YXJlYTohMCxiYXNlOiEwLGJyOiEwLGNvbDoh MCxlbWJlZDohMCxocjohMCxpbWc6ITAsaW5wdXQ6ITAsa2V5Z2VuOiEwLGxp bms6ITAsbWV0YTohMCxwYXJhbTohMCxzb3VyY2U6ITAsdHJhY2s6ITAsd2Jy OiEwfSxvZT17bGlzdGluZzohMCxwcmU6ITAsdGV4dGFyZWE6ITB9LHJlPXko e21lbnVpdGVtOiEwfSxuZSksaWU9L15bYS16QS1aXVthLXpBLVo6X1wuXC1c ZF0qJC8sYWU9e30sc2U9e30uaGFzT3duUHJvcGVydHksdWU9MTt2LmRpc3Bs YXlOYW1lPSJSZWFjdERPTUNvbXBvbmVudCIsdi5NaXhpbj17bW91bnRDb21w b25lbnQ6ZnVuY3Rpb24oZSxuLG8scil7dGhpcy5fcm9vdE5vZGVJRD11ZSsr LHRoaXMuX2RvbUlEPW8uX2lkQ291bnRlcisrLHRoaXMuX2hvc3RQYXJlbnQ9 bix0aGlzLl9ob3N0Q29udGFpbmVySW5mbz1vO3ZhciBpPXRoaXMuX2N1cnJl bnRFbGVtZW50LnByb3BzO3N3aXRjaCh0aGlzLl90YWcpe2Nhc2UiYXVkaW8i OmNhc2UiZm9ybSI6Y2FzZSJpZnJhbWUiOmNhc2UiaW1nIjpjYXNlImxpbmsi OmNhc2Uib2JqZWN0IjpjYXNlInNvdXJjZSI6Y2FzZSJ2aWRlbyI6dGhpcy5f d3JhcHBlclN0YXRlPXtsaXN0ZW5lcnM6bnVsbH0sZS5nZXRSZWFjdE1vdW50 UmVhZHkoKS5lbnF1ZXVlKGQsdGhpcyk7YnJlYWs7Y2FzZSJpbnB1dCI6SS5t b3VudFdyYXBwZXIodGhpcyxpLG4pLGk9SS5nZXRIb3N0UHJvcHModGhpcyxp KSxlLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUoZCx0aGlzKTticmVh aztjYXNlIm9wdGlvbiI6UC5tb3VudFdyYXBwZXIodGhpcyxpLG4pLGk9UC5n ZXRIb3N0UHJvcHModGhpcyxpKTticmVhaztjYXNlInNlbGVjdCI6Uy5tb3Vu dFdyYXBwZXIodGhpcyxpLG4pLGk9Uy5nZXRIb3N0UHJvcHModGhpcyxpKSxl LmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUoZCx0aGlzKTticmVhaztj YXNlInRleHRhcmVhIjpWLm1vdW50V3JhcHBlcih0aGlzLGksbiksaT1WLmdl dEhvc3RQcm9wcyh0aGlzLGkpLGUuZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5x dWV1ZShkLHRoaXMpfWEodGhpcyxpKTt2YXIgcyx1O2lmKG51bGwhPW4/KHM9 bi5fbmFtZXNwYWNlVVJJLHU9bi5fdGFnKTpvLl90YWcmJihzPW8uX25hbWVz cGFjZVVSSSx1PW8uX3RhZyksKG51bGw9PXN8fHM9PT1iLnN2ZyYmImZvcmVp Z25vYmplY3QiPT09dSkmJihzPWIuaHRtbCkscz09PWIuaHRtbCYmKCJzdmci PT09dGhpcy5fdGFnP3M9Yi5zdmc6Im1hdGgiPT09dGhpcy5fdGFnJiYocz1i Lm1hdGhtbCkpLHRoaXMuX25hbWVzcGFjZVVSST1zLCJwcm9kdWN0aW9uIiE9 PXQuZW52Lk5PREVfRU5WKXt2YXIgZjtudWxsIT1uP2Y9bi5fYW5jZXN0b3JJ bmZvOm8uX3RhZyYmKGY9by5fYW5jZXN0b3JJbmZvKSxmJiZIKHRoaXMuX3Rh ZyxudWxsLHRoaXMsZiksdGhpcy5fYW5jZXN0b3JJbmZvPUgudXBkYXRlZEFu Y2VzdG9ySW5mbyhmLHRoaXMuX3RhZyx0aGlzKX12YXIgaDtpZihlLnVzZUNy ZWF0ZUVsZW1lbnQpe3ZhciBtLHY9by5fb3duZXJEb2N1bWVudDtpZihzPT09 Yi5odG1sKWlmKCJzY3JpcHQiPT09dGhpcy5fdGFnKXt2YXIgZz12LmNyZWF0 ZUVsZW1lbnQoImRpdiIpLHk9dGhpcy5fY3VycmVudEVsZW1lbnQudHlwZTtn LmlubmVySFRNTD0iPCIreSsiPjwvIit5KyI+IixtPWcucmVtb3ZlQ2hpbGQo Zy5maXJzdENoaWxkKX1lbHNlIG09aS5pcz92LmNyZWF0ZUVsZW1lbnQodGhp cy5fY3VycmVudEVsZW1lbnQudHlwZSxpLmlzKTp2LmNyZWF0ZUVsZW1lbnQo dGhpcy5fY3VycmVudEVsZW1lbnQudHlwZSk7ZWxzZSBtPXYuY3JlYXRlRWxl bWVudE5TKHMsdGhpcy5fY3VycmVudEVsZW1lbnQudHlwZSk7ay5wcmVjYWNo ZU5vZGUodGhpcyxtKSx0aGlzLl9mbGFnc3w9cS5oYXNDYWNoZWRDaGlsZE5v ZGVzLHRoaXMuX2hvc3RQYXJlbnR8fEQuc2V0QXR0cmlidXRlRm9yUm9vdCht KSx0aGlzLl91cGRhdGVET01Qcm9wZXJ0aWVzKG51bGwsaSxlKTt2YXIgXz1O KG0pO3RoaXMuX2NyZWF0ZUluaXRpYWxDaGlsZHJlbihlLGkscixfKSxoPV99 ZWxzZXt2YXIgQz10aGlzLl9jcmVhdGVPcGVuVGFnTWFya3VwQW5kUHV0TGlz dGVuZXJzKGUsaSksTz10aGlzLl9jcmVhdGVDb250ZW50TWFya3VwKGUsaSxy KTtoPSFPJiZuZVt0aGlzLl90YWddP0MrIi8+IjpDKyI+IitPKyI8LyIrdGhp cy5fY3VycmVudEVsZW1lbnQudHlwZSsiPiJ9c3dpdGNoKHRoaXMuX3RhZyl7 Y2FzZSJpbnB1dCI6ZS5nZXRSZWFjdE1vdW50UmVhZHkoKS5lbnF1ZXVlKGMs dGhpcyksaS5hdXRvRm9jdXMmJmUuZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5x dWV1ZShFLmZvY3VzRE9NQ29tcG9uZW50LHRoaXMpO2JyZWFrO2Nhc2UidGV4 dGFyZWEiOmUuZ2V0UmVhY3RNb3VudFJlYWR5KCkuZW5xdWV1ZShsLHRoaXMp LGkuYXV0b0ZvY3VzJiZlLmdldFJlYWN0TW91bnRSZWFkeSgpLmVucXVldWUo RS5mb2N1c0RPTUNvbXBvbmVudCx0aGlzKTticmVhaztjYXNlInNlbGVjdCI6 Y2FzZSJidXR0b24iOmkuYXV0b0ZvY3VzJiZlLmdldFJlYWN0TW91bnRSZWFk eSgpLmVucXVldWUoRS5mb2N1c0RPTUNvbXBvbmVudCx0aGlzKTticmVhaztj YXNlIm9wdGlvbiI6ZS5nZXRSZWFjdE1vdW50UmVhZHkoKS5lbnF1ZXVlKHAs dGhpcyl9cmV0dXJuIGh9LF9jcmVhdGVPcGVuVGFnTWFya3VwQW5kUHV0TGlz dGVuZXJzOmZ1bmN0aW9uKGUsbil7dmFyIG89IjwiK3RoaXMuX2N1cnJlbnRF bGVtZW50LnR5cGU7Zm9yKHZhciByIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0 eShyKSl7dmFyIGk9bltyXTtpZihudWxsIT1pKWlmKFguaGFzT3duUHJvcGVy dHkocikpaSYmcyh0aGlzLHIsaSxlKTtlbHNleyJzdHlsZSI9PT1yJiYoaSYm KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiYodGhpcy5fcHJldmlv dXNTdHlsZT1pKSxpPXRoaXMuX3ByZXZpb3VzU3R5bGVDb3B5PXkoe30sbi5z dHlsZSkpLGk9Xy5jcmVhdGVNYXJrdXBGb3JTdHlsZXMoaSx0aGlzKSk7dmFy IGE9bnVsbDtudWxsIT10aGlzLl90YWcmJm0odGhpcy5fdGFnLG4pP1EuaGFz T3duUHJvcGVydHkocil8fChhPUQuY3JlYXRlTWFya3VwRm9yQ3VzdG9tQXR0 cmlidXRlKHIsaSkpOmE9RC5jcmVhdGVNYXJrdXBGb3JQcm9wZXJ0eShyLGkp LGEmJihvKz0iICIrYSl9fXJldHVybiBlLnJlbmRlclRvU3RhdGljTWFya3Vw P286KHRoaXMuX2hvc3RQYXJlbnR8fChvKz0iICIrRC5jcmVhdGVNYXJrdXBG b3JSb290KCkpLG8rPSIgIitELmNyZWF0ZU1hcmt1cEZvcklEKHRoaXMuX2Rv bUlEKSl9LF9jcmVhdGVDb250ZW50TWFya3VwOmZ1bmN0aW9uKGUsbixvKXt2 YXIgcj0iIixpPW4uZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw7aWYobnVsbCE9 aSludWxsIT1pLl9faHRtbCYmKHI9aS5fX2h0bWwpO2Vsc2V7dmFyIGE9JFt0 eXBlb2Ygbi5jaGlsZHJlbl0/bi5jaGlsZHJlbjpudWxsLHM9bnVsbCE9YT9u dWxsOm4uY2hpbGRyZW47aWYobnVsbCE9YSlyPUwoYSksInByb2R1Y3Rpb24i IT09dC5lbnYuTk9ERV9FTlYmJmVlLmNhbGwodGhpcyxhKTtlbHNlIGlmKG51 bGwhPXMpe3ZhciB1PXRoaXMubW91bnRDaGlsZHJlbihzLGUsbyk7cj11Lmpv aW4oIiIpfX1yZXR1cm4gb2VbdGhpcy5fdGFnXSYmIlxuIj09PXIuY2hhckF0 KDApPyJcbiIrcjpyfSxfY3JlYXRlSW5pdGlhbENoaWxkcmVuOmZ1bmN0aW9u KGUsbixvLHIpe3ZhciBpPW4uZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw7aWYo bnVsbCE9aSludWxsIT1pLl9faHRtbCYmTi5xdWV1ZUhUTUwocixpLl9faHRt bCk7ZWxzZXt2YXIgYT0kW3R5cGVvZiBuLmNoaWxkcmVuXT9uLmNoaWxkcmVu Om51bGwscz1udWxsIT1hP251bGw6bi5jaGlsZHJlbjtpZihudWxsIT1hKSIi IT09YSYmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZlZS5jYWxs KHRoaXMsYSksTi5xdWV1ZVRleHQocixhKSk7ZWxzZSBpZihudWxsIT1zKWZv cih2YXIgdT10aGlzLm1vdW50Q2hpbGRyZW4ocyxlLG8pLGM9MDtjPHUubGVu Z3RoO2MrKylOLnF1ZXVlQ2hpbGQocix1W2NdKX19LHJlY2VpdmVDb21wb25l bnQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciBvPXRoaXMuX2N1cnJlbnRFbGVtZW50 O3RoaXMuX2N1cnJlbnRFbGVtZW50PWUsdGhpcy51cGRhdGVDb21wb25lbnQo dCxvLGUsbil9LHVwZGF0ZUNvbXBvbmVudDpmdW5jdGlvbihlLHQsbixvKXt2 YXIgcj10LnByb3BzLGk9dGhpcy5fY3VycmVudEVsZW1lbnQucHJvcHM7c3dp dGNoKHRoaXMuX3RhZyl7Y2FzZSJpbnB1dCI6cj1JLmdldEhvc3RQcm9wcyh0 aGlzLHIpLGk9SS5nZXRIb3N0UHJvcHModGhpcyxpKTticmVhaztjYXNlIm9w dGlvbiI6cj1QLmdldEhvc3RQcm9wcyh0aGlzLHIpLGk9UC5nZXRIb3N0UHJv cHModGhpcyxpKTticmVhaztjYXNlInNlbGVjdCI6cj1TLmdldEhvc3RQcm9w cyh0aGlzLHIpLGk9Uy5nZXRIb3N0UHJvcHModGhpcyxpKTticmVhaztjYXNl InRleHRhcmVhIjpyPVYuZ2V0SG9zdFByb3BzKHRoaXMsciksaT1WLmdldEhv c3RQcm9wcyh0aGlzLGkpfXN3aXRjaChhKHRoaXMsaSksdGhpcy5fdXBkYXRl RE9NUHJvcGVydGllcyhyLGksZSksdGhpcy5fdXBkYXRlRE9NQ2hpbGRyZW4o cixpLGUsbyksdGhpcy5fdGFnKXtjYXNlImlucHV0IjpJLnVwZGF0ZVdyYXBw ZXIodGhpcyk7YnJlYWs7Y2FzZSJ0ZXh0YXJlYSI6Vi51cGRhdGVXcmFwcGVy KHRoaXMpO2JyZWFrO2Nhc2Uic2VsZWN0IjplLmdldFJlYWN0TW91bnRSZWFk eSgpLmVucXVldWUoZix0aGlzKX19LF91cGRhdGVET01Qcm9wZXJ0aWVzOmZ1 bmN0aW9uKGUsbixvKXt2YXIgcixhLHU7Zm9yKHIgaW4gZSlpZighbi5oYXNP d25Qcm9wZXJ0eShyKSYmZS5oYXNPd25Qcm9wZXJ0eShyKSYmbnVsbCE9ZVty XSlpZigic3R5bGUiPT09cil7dmFyIGM9dGhpcy5fcHJldmlvdXNTdHlsZUNv cHk7Zm9yKGEgaW4gYyljLmhhc093blByb3BlcnR5KGEpJiYodT11fHx7fSx1 W2FdPSIiKTt0aGlzLl9wcmV2aW91c1N0eWxlQ29weT1udWxsfWVsc2UgWC5o YXNPd25Qcm9wZXJ0eShyKT9lW3JdJiZZKHRoaXMscik6bSh0aGlzLl90YWcs ZSk/US5oYXNPd25Qcm9wZXJ0eShyKXx8RC5kZWxldGVWYWx1ZUZvckF0dHJp YnV0ZShLKHRoaXMpLHIpOihDLnByb3BlcnRpZXNbcl18fEMuaXNDdXN0b21B dHRyaWJ1dGUocikpJiZELmRlbGV0ZVZhbHVlRm9yUHJvcGVydHkoSyh0aGlz KSxyKTtmb3IociBpbiBuKXt2YXIgbD1uW3JdLHA9InN0eWxlIj09PXI/dGhp cy5fcHJldmlvdXNTdHlsZUNvcHk6bnVsbCE9ZT9lW3JdOnZvaWQgMDtpZihu Lmhhc093blByb3BlcnR5KHIpJiZsIT09cCYmKG51bGwhPWx8fG51bGwhPXAp KWlmKCJzdHlsZSI9PT1yKWlmKGw/KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5P REVfRU5WJiYoaSh0aGlzLl9wcmV2aW91c1N0eWxlQ29weSx0aGlzLl9wcmV2 aW91c1N0eWxlLHRoaXMpLHRoaXMuX3ByZXZpb3VzU3R5bGU9bCksbD10aGlz Ll9wcmV2aW91c1N0eWxlQ29weT15KHt9LGwpKTp0aGlzLl9wcmV2aW91c1N0 eWxlQ29weT1udWxsLHApe2ZvcihhIGluIHApIXAuaGFzT3duUHJvcGVydHko YSl8fGwmJmwuaGFzT3duUHJvcGVydHkoYSl8fCh1PXV8fHt9LHVbYV09IiIp O2ZvcihhIGluIGwpbC5oYXNPd25Qcm9wZXJ0eShhKSYmcFthXSE9PWxbYV0m Jih1PXV8fHt9LHVbYV09bFthXSl9ZWxzZSB1PWw7ZWxzZSBpZihYLmhhc093 blByb3BlcnR5KHIpKWw/cyh0aGlzLHIsbCxvKTpwJiZZKHRoaXMscik7ZWxz ZSBpZihtKHRoaXMuX3RhZyxuKSlRLmhhc093blByb3BlcnR5KHIpfHxELnNl dFZhbHVlRm9yQXR0cmlidXRlKEsodGhpcykscixsKTtlbHNlIGlmKEMucHJv cGVydGllc1tyXXx8Qy5pc0N1c3RvbUF0dHJpYnV0ZShyKSl7dmFyIGQ9Syh0 aGlzKTtudWxsIT1sP0Quc2V0VmFsdWVGb3JQcm9wZXJ0eShkLHIsbCk6RC5k ZWxldGVWYWx1ZUZvclByb3BlcnR5KGQscil9fXUmJl8uc2V0VmFsdWVGb3JT dHlsZXMoSyh0aGlzKSx1LHRoaXMpfSxfdXBkYXRlRE9NQ2hpbGRyZW46ZnVu Y3Rpb24oZSxuLG8scil7dmFyIGk9JFt0eXBlb2YgZS5jaGlsZHJlbl0/ZS5j aGlsZHJlbjpudWxsLGE9JFt0eXBlb2Ygbi5jaGlsZHJlbl0/bi5jaGlsZHJl bjpudWxsLHM9ZS5kYW5nZXJvdXNseVNldElubmVySFRNTCYmZS5kYW5nZXJv dXNseVNldElubmVySFRNTC5fX2h0bWwsdT1uLmRhbmdlcm91c2x5U2V0SW5u ZXJIVE1MJiZuLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbCxjPW51 bGwhPWk/bnVsbDplLmNoaWxkcmVuLGw9bnVsbCE9YT9udWxsOm4uY2hpbGRy ZW4scD1udWxsIT1pfHxudWxsIT1zLGQ9bnVsbCE9YXx8bnVsbCE9dTtudWxs IT1jJiZudWxsPT1sP3RoaXMudXBkYXRlQ2hpbGRyZW4obnVsbCxvLHIpOnAm JiFkJiYodGhpcy51cGRhdGVUZXh0Q29udGVudCgiIiksInByb2R1Y3Rpb24i IT09dC5lbnYuTk9ERV9FTlYmJlIuZGVidWdUb29sLm9uU2V0Q2hpbGRyZW4o dGhpcy5fZGVidWdJRCxbXSkpLG51bGwhPWE/aSE9PWEmJih0aGlzLnVwZGF0 ZVRleHRDb250ZW50KCIiK2EpLCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVf RU5WJiZlZS5jYWxsKHRoaXMsYSkpOm51bGwhPXU/KHMhPT11JiZ0aGlzLnVw ZGF0ZU1hcmt1cCgiIit1KSwicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VO ViYmUi5kZWJ1Z1Rvb2wub25TZXRDaGlsZHJlbih0aGlzLl9kZWJ1Z0lELFtd KSk6bnVsbCE9bCYmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZl ZS5jYWxsKHRoaXMsbnVsbCksdGhpcy51cGRhdGVDaGlsZHJlbihsLG8scikp fSxnZXRIb3N0Tm9kZTpmdW5jdGlvbigpe3JldHVybiBLKHRoaXMpfSx1bm1v dW50Q29tcG9uZW50OmZ1bmN0aW9uKGUpe3N3aXRjaCh0aGlzLl90YWcpe2Nh c2UiYXVkaW8iOmNhc2UiZm9ybSI6Y2FzZSJpZnJhbWUiOmNhc2UiaW1nIjpj YXNlImxpbmsiOmNhc2Uib2JqZWN0IjpjYXNlInNvdXJjZSI6Y2FzZSJ2aWRl byI6dmFyIG49dGhpcy5fd3JhcHBlclN0YXRlLmxpc3RlbmVycztpZihuKWZv cih2YXIgbz0wO288bi5sZW5ndGg7bysrKW5bb10ucmVtb3ZlKCk7YnJlYWs7 Y2FzZSJodG1sIjpjYXNlImhlYWQiOmNhc2UiYm9keSI6InByb2R1Y3Rpb24i IT09dC5lbnYuTk9ERV9FTlY/RighMSwiPCVzPiB0cmllZCB0byB1bm1vdW50 LiBCZWNhdXNlIG9mIGNyb3NzLWJyb3dzZXIgcXVpcmtzIGl0IGlzIGltcG9z c2libGUgdG8gdW5tb3VudCBzb21lIHRvcC1sZXZlbCBjb21wb25lbnRzIChl ZyA8aHRtbD4sIDxoZWFkPiwgYW5kIDxib2R5PikgcmVsaWFibHkgYW5kIGVm ZmljaWVudGx5LiBUbyBmaXggdGhpcywgaGF2ZSBhIHNpbmdsZSB0b3AtbGV2 ZWwgY29tcG9uZW50IHRoYXQgbmV2ZXIgdW5tb3VudHMgcmVuZGVyIHRoZXNl IGVsZW1lbnRzLiIsdGhpcy5fdGFnKTpnKCI2NiIsdGhpcy5fdGFnKX10aGlz LnVubW91bnRDaGlsZHJlbihlKSxrLnVuY2FjaGVOb2RlKHRoaXMpLE8uZGVs ZXRlQWxsTGlzdGVuZXJzKHRoaXMpLHRoaXMuX3Jvb3ROb2RlSUQ9MCx0aGlz Ll9kb21JRD0wLHRoaXMuX3dyYXBwZXJTdGF0ZT1udWxsLCJwcm9kdWN0aW9u IiE9PXQuZW52Lk5PREVfRU5WJiZlZS5jYWxsKHRoaXMsbnVsbCl9LGdldFB1 YmxpY0luc3RhbmNlOmZ1bmN0aW9uKCl7cmV0dXJuIEsodGhpcyl9fSx5KHYu cHJvdG90eXBlLHYuTWl4aW4sTS5NaXhpbiksZS5leHBvcnRzPXZ9KS5jYWxs KHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KGZ1bmN0 aW9uKHQpe2Z1bmN0aW9uIG8oZSxuKXt2YXIgbz17X3RvcExldmVsV3JhcHBl cjplLF9pZENvdW50ZXI6MSxfb3duZXJEb2N1bWVudDpuP24ubm9kZVR5cGU9 PT1pP246bi5vd25lckRvY3VtZW50Om51bGwsX25vZGU6bixfdGFnOm4/bi5u b2RlTmFtZS50b0xvd2VyQ2FzZSgpOm51bGwsX25hbWVzcGFjZVVSSTpuP24u bmFtZXNwYWNlVVJJOm51bGx9O3JldHVybiJwcm9kdWN0aW9uIiE9PXQuZW52 Lk5PREVfRU5WJiYoby5fYW5jZXN0b3JJbmZvPW4/ci51cGRhdGVkQW5jZXN0 b3JJbmZvKG51bGwsby5fdGFnLG51bGwpOm51bGwpLG99dmFyIHI9big0Niks aT05O2UuZXhwb3J0cz1vfSkuY2FsbCh0LG4oMCkpfSxmdW5jdGlvbihlLHQs bil7InVzZSBzdHJpY3QiO3ZhciBvPW4oNCkscj1uKDE3KSxpPW4oNSksYT1m dW5jdGlvbihlKXt0aGlzLl9jdXJyZW50RWxlbWVudD1udWxsLHRoaXMuX2hv c3ROb2RlPW51bGwsdGhpcy5faG9zdFBhcmVudD1udWxsLHRoaXMuX2hvc3RD b250YWluZXJJbmZvPW51bGwsdGhpcy5fZG9tSUQ9MH07byhhLnByb3RvdHlw ZSx7bW91bnRDb21wb25lbnQ6ZnVuY3Rpb24oZSx0LG4sbyl7dmFyIGE9bi5f aWRDb3VudGVyKys7dGhpcy5fZG9tSUQ9YSx0aGlzLl9ob3N0UGFyZW50PXQs dGhpcy5faG9zdENvbnRhaW5lckluZm89bjt2YXIgcz0iIHJlYWN0LWVtcHR5 OiAiK3RoaXMuX2RvbUlEKyIgIjtpZihlLnVzZUNyZWF0ZUVsZW1lbnQpe3Zh ciB1PW4uX293bmVyRG9jdW1lbnQsYz11LmNyZWF0ZUNvbW1lbnQocyk7cmV0 dXJuIGkucHJlY2FjaGVOb2RlKHRoaXMsYykscihjKX1yZXR1cm4gZS5yZW5k ZXJUb1N0YXRpY01hcmt1cD8iIjoiXHgzYyEtLSIrcysiLS1ceDNlIn0scmVj ZWl2ZUNvbXBvbmVudDpmdW5jdGlvbigpe30sZ2V0SG9zdE5vZGU6ZnVuY3Rp b24oKXtyZXR1cm4gaS5nZXROb2RlRnJvbUluc3RhbmNlKHRoaXMpfSx1bm1v dW50Q29tcG9uZW50OmZ1bmN0aW9uKCl7aS51bmNhY2hlTm9kZSh0aGlzKX19 KSxlLmV4cG9ydHM9YX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2 YXIgbz17dXNlQ3JlYXRlRWxlbWVudDohMCx1c2VGaWJlcjohMX07ZS5leHBv cnRzPW99LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIG89bigz Mikscj1uKDUpLGk9e2Rhbmdlcm91c2x5UHJvY2Vzc0NoaWxkcmVuVXBkYXRl czpmdW5jdGlvbihlLHQpe3ZhciBuPXIuZ2V0Tm9kZUZyb21JbnN0YW5jZShl KTtvLnByb2Nlc3NVcGRhdGVzKG4sdCl9fTtlLmV4cG9ydHM9aX0sZnVuY3Rp b24oZSx0LG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7ZnVuY3Rpb24g bygpe3RoaXMuX3Jvb3ROb2RlSUQmJl8udXBkYXRlV3JhcHBlcih0aGlzKX1m dW5jdGlvbiByKGUpe3JldHVybiJjaGVja2JveCI9PT1lLnR5cGV8fCJyYWRp byI9PT1lLnR5cGU/bnVsbCE9ZS5jaGVja2VkOm51bGwhPWUudmFsdWV9ZnVu Y3Rpb24gaShlKXt2YXIgbj10aGlzLl9jdXJyZW50RWxlbWVudC5wcm9wcyxy PWMuZXhlY3V0ZU9uQ2hhbmdlKG4sZSk7cC5hc2FwKG8sdGhpcyk7dmFyIGk9 bi5uYW1lO2lmKCJyYWRpbyI9PT1uLnR5cGUmJm51bGwhPWkpe2Zvcih2YXIg cz1sLmdldE5vZGVGcm9tSW5zdGFuY2UodGhpcyksdT1zO3UucGFyZW50Tm9k ZTspdT11LnBhcmVudE5vZGU7Zm9yKHZhciBmPXUucXVlcnlTZWxlY3RvckFs bCgiaW5wdXRbbmFtZT0iK0pTT04uc3RyaW5naWZ5KCIiK2kpKyddW3R5cGU9 InJhZGlvIl0nKSxoPTA7aDxmLmxlbmd0aDtoKyspe3ZhciBtPWZbaF07aWYo bSE9PXMmJm0uZm9ybT09PXMuZm9ybSl7dmFyIHY9bC5nZXRJbnN0YW5jZUZy b21Ob2RlKG0pO3Z8fCgicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9k KCExLCJSZWFjdERPTUlucHV0OiBNaXhpbmcgUmVhY3QgYW5kIG5vbi1SZWFj dCByYWRpbyBpbnB1dHMgd2l0aCB0aGUgc2FtZSBgbmFtZWAgaXMgbm90IHN1 cHBvcnRlZC4iKTphKCI5MCIpKSxwLmFzYXAobyx2KX19fXJldHVybiByfXZh ciBhPW4oMykscz1uKDQpLHU9big1NyksYz1uKDM2KSxsPW4oNSkscD1uKDEw KSxkPW4oMSksZj1uKDIpLGg9ITEsbT0hMSx2PSExLGc9ITEseT0hMSxFPSEx LF89e2dldEhvc3RQcm9wczpmdW5jdGlvbihlLHQpe3ZhciBuPWMuZ2V0VmFs dWUodCksbz1jLmdldENoZWNrZWQodCk7cmV0dXJuIHMoe3R5cGU6dm9pZCAw LHN0ZXA6dm9pZCAwLG1pbjp2b2lkIDAsbWF4OnZvaWQgMH0sdCx7ZGVmYXVs dENoZWNrZWQ6dm9pZCAwLGRlZmF1bHRWYWx1ZTp2b2lkIDAsdmFsdWU6bnVs bCE9bj9uOmUuX3dyYXBwZXJTdGF0ZS5pbml0aWFsVmFsdWUsY2hlY2tlZDpu dWxsIT1vP286ZS5fd3JhcHBlclN0YXRlLmluaXRpYWxDaGVja2VkLG9uQ2hh bmdlOmUuX3dyYXBwZXJTdGF0ZS5vbkNoYW5nZX0pfSxtb3VudFdyYXBwZXI6 ZnVuY3Rpb24oZSxuKXtpZigicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VO Vil7Yy5jaGVja1Byb3BUeXBlcygiaW5wdXQiLG4sZS5fY3VycmVudEVsZW1l bnQuX293bmVyKTt2YXIgbz1lLl9jdXJyZW50RWxlbWVudC5fb3duZXI7dm9p ZCAwPT09bi52YWx1ZUxpbmt8fGh8fCgicHJvZHVjdGlvbiIhPT10LmVudi5O T0RFX0VOViYmZighMSwiYHZhbHVlTGlua2AgcHJvcCBvbiBgaW5wdXRgIGlz IGRlcHJlY2F0ZWQ7IHNldCBgdmFsdWVgIGFuZCBgb25DaGFuZ2VgIGluc3Rl YWQuIiksaD0hMCksdm9pZCAwPT09bi5jaGVja2VkTGlua3x8bXx8KCJwcm9k dWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZmKCExLCJgY2hlY2tlZExpbmtg IHByb3Agb24gYGlucHV0YCBpcyBkZXByZWNhdGVkOyBzZXQgYHZhbHVlYCBh bmQgYG9uQ2hhbmdlYCBpbnN0ZWFkLiIpLG09ITApLHZvaWQgMD09PW4uY2hl Y2tlZHx8dm9pZCAwPT09bi5kZWZhdWx0Q2hlY2tlZHx8Z3x8KCJwcm9kdWN0 aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZmKCExLCIlcyBjb250YWlucyBhbiBp bnB1dCBvZiB0eXBlICVzIHdpdGggYm90aCBjaGVja2VkIGFuZCBkZWZhdWx0 Q2hlY2tlZCBwcm9wcy4gSW5wdXQgZWxlbWVudHMgbXVzdCBiZSBlaXRoZXIg Y29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgKHNwZWNpZnkgZWl0aGVyIHRo ZSBjaGVja2VkIHByb3AsIG9yIHRoZSBkZWZhdWx0Q2hlY2tlZCBwcm9wLCBi dXQgbm90IGJvdGgpLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xs ZWQgb3IgdW5jb250cm9sbGVkIGlucHV0IGVsZW1lbnQgYW5kIHJlbW92ZSBv bmUgb2YgdGhlc2UgcHJvcHMuIE1vcmUgaW5mbzogaHR0cHM6Ly9mYi5tZS9y ZWFjdC1jb250cm9sbGVkLWNvbXBvbmVudHMiLG8mJm8uZ2V0TmFtZSgpfHwi QSBjb21wb25lbnQiLG4udHlwZSksZz0hMCksdm9pZCAwPT09bi52YWx1ZXx8 dm9pZCAwPT09bi5kZWZhdWx0VmFsdWV8fHZ8fCgicHJvZHVjdGlvbiIhPT10 LmVudi5OT0RFX0VOViYmZighMSwiJXMgY29udGFpbnMgYW4gaW5wdXQgb2Yg dHlwZSAlcyB3aXRoIGJvdGggdmFsdWUgYW5kIGRlZmF1bHRWYWx1ZSBwcm9w cy4gSW5wdXQgZWxlbWVudHMgbXVzdCBiZSBlaXRoZXIgY29udHJvbGxlZCBv ciB1bmNvbnRyb2xsZWQgKHNwZWNpZnkgZWl0aGVyIHRoZSB2YWx1ZSBwcm9w LCBvciB0aGUgZGVmYXVsdFZhbHVlIHByb3AsIGJ1dCBub3QgYm90aCkuIERl Y2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xs ZWQgaW5wdXQgZWxlbWVudCBhbmQgcmVtb3ZlIG9uZSBvZiB0aGVzZSBwcm9w cy4gTW9yZSBpbmZvOiBodHRwczovL2ZiLm1lL3JlYWN0LWNvbnRyb2xsZWQt Y29tcG9uZW50cyIsbyYmby5nZXROYW1lKCl8fCJBIGNvbXBvbmVudCIsbi50 eXBlKSx2PSEwKX12YXIgYT1uLmRlZmF1bHRWYWx1ZTtlLl93cmFwcGVyU3Rh dGU9e2luaXRpYWxDaGVja2VkOm51bGwhPW4uY2hlY2tlZD9uLmNoZWNrZWQ6 bi5kZWZhdWx0Q2hlY2tlZCxpbml0aWFsVmFsdWU6bnVsbCE9bi52YWx1ZT9u LnZhbHVlOmEsbGlzdGVuZXJzOm51bGwsb25DaGFuZ2U6aS5iaW5kKGUpfSwi cHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmKGUuX3dyYXBwZXJTdGF0 ZS5jb250cm9sbGVkPXIobikpfSx1cGRhdGVXcmFwcGVyOmZ1bmN0aW9uKGUp e3ZhciBuPWUuX2N1cnJlbnRFbGVtZW50LnByb3BzO2lmKCJwcm9kdWN0aW9u IiE9PXQuZW52Lk5PREVfRU5WKXt2YXIgbz1yKG4pLGk9ZS5fY3VycmVudEVs ZW1lbnQuX293bmVyO2UuX3dyYXBwZXJTdGF0ZS5jb250cm9sbGVkfHwhb3x8 RXx8KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZmKCExLCIlcyBp cyBjaGFuZ2luZyBhbiB1bmNvbnRyb2xsZWQgaW5wdXQgb2YgdHlwZSAlcyB0 byBiZSBjb250cm9sbGVkLiBJbnB1dCBlbGVtZW50cyBzaG91bGQgbm90IHN3 aXRjaCBmcm9tIHVuY29udHJvbGxlZCB0byBjb250cm9sbGVkIChvciB2aWNl IHZlcnNhKS4gRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9y IHVuY29udHJvbGxlZCBpbnB1dCBlbGVtZW50IGZvciB0aGUgbGlmZXRpbWUg b2YgdGhlIGNvbXBvbmVudC4gTW9yZSBpbmZvOiBodHRwczovL2ZiLm1lL3Jl YWN0LWNvbnRyb2xsZWQtY29tcG9uZW50cyIsaSYmaS5nZXROYW1lKCl8fCJB IGNvbXBvbmVudCIsbi50eXBlKSxFPSEwKSwhZS5fd3JhcHBlclN0YXRlLmNv bnRyb2xsZWR8fG98fHl8fCgicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VO ViYmZighMSwiJXMgaXMgY2hhbmdpbmcgYSBjb250cm9sbGVkIGlucHV0IG9m IHR5cGUgJXMgdG8gYmUgdW5jb250cm9sbGVkLiBJbnB1dCBlbGVtZW50cyBz aG91bGQgbm90IHN3aXRjaCBmcm9tIGNvbnRyb2xsZWQgdG8gdW5jb250cm9s bGVkIChvciB2aWNlIHZlcnNhKS4gRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBj b250cm9sbGVkIG9yIHVuY29udHJvbGxlZCBpbnB1dCBlbGVtZW50IGZvciB0 aGUgbGlmZXRpbWUgb2YgdGhlIGNvbXBvbmVudC4gTW9yZSBpbmZvOiBodHRw czovL2ZiLm1lL3JlYWN0LWNvbnRyb2xsZWQtY29tcG9uZW50cyIsaSYmaS5n ZXROYW1lKCl8fCJBIGNvbXBvbmVudCIsbi50eXBlKSx5PSEwKX12YXIgYT1u LmNoZWNrZWQ7bnVsbCE9YSYmdS5zZXRWYWx1ZUZvclByb3BlcnR5KGwuZ2V0 Tm9kZUZyb21JbnN0YW5jZShlKSwiY2hlY2tlZCIsYXx8ITEpO3ZhciBzPWwu Z2V0Tm9kZUZyb21JbnN0YW5jZShlKSxwPWMuZ2V0VmFsdWUobik7aWYobnVs bCE9cCl7dmFyIGQ9IiIrcDtkIT09cy52YWx1ZSYmKHMudmFsdWU9ZCl9ZWxz ZSBudWxsPT1uLnZhbHVlJiZudWxsIT1uLmRlZmF1bHRWYWx1ZSYmcy5kZWZh dWx0VmFsdWUhPT0iIituLmRlZmF1bHRWYWx1ZSYmKHMuZGVmYXVsdFZhbHVl PSIiK24uZGVmYXVsdFZhbHVlKSxudWxsPT1uLmNoZWNrZWQmJm51bGwhPW4u ZGVmYXVsdENoZWNrZWQmJihzLmRlZmF1bHRDaGVja2VkPSEhbi5kZWZhdWx0 Q2hlY2tlZCl9LHBvc3RNb3VudFdyYXBwZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9 ZS5fY3VycmVudEVsZW1lbnQucHJvcHMsbj1sLmdldE5vZGVGcm9tSW5zdGFu Y2UoZSk7c3dpdGNoKHQudHlwZSl7Y2FzZSJzdWJtaXQiOmNhc2UicmVzZXQi OmJyZWFrO2Nhc2UiY29sb3IiOmNhc2UiZGF0ZSI6Y2FzZSJkYXRldGltZSI6 Y2FzZSJkYXRldGltZS1sb2NhbCI6Y2FzZSJtb250aCI6Y2FzZSJ0aW1lIjpj YXNlIndlZWsiOm4udmFsdWU9IiIsbi52YWx1ZT1uLmRlZmF1bHRWYWx1ZTti cmVhaztkZWZhdWx0Om4udmFsdWU9bi52YWx1ZX12YXIgbz1uLm5hbWU7IiIh PT1vJiYobi5uYW1lPSIiKSxuLmRlZmF1bHRDaGVja2VkPSFuLmRlZmF1bHRD aGVja2VkLG4uZGVmYXVsdENoZWNrZWQ9IW4uZGVmYXVsdENoZWNrZWQsIiIh PT1vJiYobi5uYW1lPW8pfX07ZS5leHBvcnRzPV99KS5jYWxsKHQsbigwKSl9 LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe2Z1 bmN0aW9uIG8oZSxuLG8pe2lmKGMuaGFzT3duUHJvcGVydHkobikmJmNbbl0p cmV0dXJuITA7aWYobC50ZXN0KG4pKXt2YXIgcj1uLnRvTG93ZXJDYXNlKCks aT1hLmdldFBvc3NpYmxlU3RhbmRhcmROYW1lLmhhc093blByb3BlcnR5KHIp P2EuZ2V0UG9zc2libGVTdGFuZGFyZE5hbWVbcl06bnVsbDtpZihudWxsPT1p KXJldHVybiBjW25dPSEwLCExO2lmKG4hPT1pKXJldHVybiJwcm9kdWN0aW9u IiE9PXQuZW52Lk5PREVfRU5WJiZ1KCExLCJVbmtub3duIEFSSUEgYXR0cmli dXRlICVzLiBEaWQgeW91IG1lYW4gJXM/JXMiLG4saSxzLmdldFN0YWNrQWRk ZW5kdW1CeUlEKG8pKSxjW25dPSEwLCEwfXJldHVybiEwfWZ1bmN0aW9uIHIo ZSxuKXt2YXIgcj1bXTtmb3IodmFyIGkgaW4gbi5wcm9wcyl7byhuLnR5cGUs aSxlKXx8ci5wdXNoKGkpfXZhciBhPXIubWFwKGZ1bmN0aW9uKGUpe3JldHVy biJgIitlKyJgIn0pLmpvaW4oIiwgIik7MT09PXIubGVuZ3RoPyJwcm9kdWN0 aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZ1KCExLCJJbnZhbGlkIGFyaWEgcHJv cCAlcyBvbiA8JXM+IHRhZy4gRm9yIGRldGFpbHMsIHNlZSBodHRwczovL2Zi Lm1lL2ludmFsaWQtYXJpYS1wcm9wJXMiLGEsbi50eXBlLHMuZ2V0U3RhY2tB ZGRlbmR1bUJ5SUQoZSkpOnIubGVuZ3RoPjEmJiJwcm9kdWN0aW9uIiE9PXQu ZW52Lk5PREVfRU5WJiZ1KCExLCJJbnZhbGlkIGFyaWEgcHJvcHMgJXMgb24g PCVzPiB0YWcuIEZvciBkZXRhaWxzLCBzZWUgaHR0cHM6Ly9mYi5tZS9pbnZh bGlkLWFyaWEtcHJvcCVzIixhLG4udHlwZSxzLmdldFN0YWNrQWRkZW5kdW1C eUlEKGUpKX1mdW5jdGlvbiBpKGUsdCl7bnVsbCE9dCYmInN0cmluZyI9PXR5 cGVvZiB0LnR5cGUmJih0LnR5cGUuaW5kZXhPZigiLSIpPj0wfHx0LnByb3Bz LmlzfHxyKGUsdCkpfXZhciBhPW4oMTMpLHM9big3KSx1PW4oMiksYz17fSxs PW5ldyBSZWdFeHAoIl4oYXJpYSktWyIrYS5BVFRSSUJVVEVfTkFNRV9DSEFS KyJdKiQiKSxwPXtvbkJlZm9yZU1vdW50Q29tcG9uZW50OmZ1bmN0aW9uKGUs bil7InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJmkoZSxuKX0sb25C ZWZvcmVVcGRhdGVDb21wb25lbnQ6ZnVuY3Rpb24oZSxuKXsicHJvZHVjdGlv biIhPT10LmVudi5OT0RFX0VOViYmaShlLG4pfX07ZS5leHBvcnRzPXB9KS5j YWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KGZ1 bmN0aW9uKHQpe2Z1bmN0aW9uIG8oZSxuKXtudWxsIT1uJiYoImlucHV0IiE9 PW4udHlwZSYmInRleHRhcmVhIiE9PW4udHlwZSYmInNlbGVjdCIhPT1uLnR5 cGV8fG51bGw9PW4ucHJvcHN8fG51bGwhPT1uLnByb3BzLnZhbHVlfHxhfHwo InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJmkoITEsImB2YWx1ZWAg cHJvcCBvbiBgJXNgIHNob3VsZCBub3QgYmUgbnVsbC4gQ29uc2lkZXIgdXNp bmcgdGhlIGVtcHR5IHN0cmluZyB0byBjbGVhciB0aGUgY29tcG9uZW50IG9y IGB1bmRlZmluZWRgIGZvciB1bmNvbnRyb2xsZWQgY29tcG9uZW50cy4lcyIs bi50eXBlLHIuZ2V0U3RhY2tBZGRlbmR1bUJ5SUQoZSkpLGE9ITApKX12YXIg cj1uKDcpLGk9bigyKSxhPSExLHM9e29uQmVmb3JlTW91bnRDb21wb25lbnQ6 ZnVuY3Rpb24oZSx0KXtvKGUsdCl9LG9uQmVmb3JlVXBkYXRlQ29tcG9uZW50 OmZ1bmN0aW9uKGUsdCl7byhlLHQpfX07ZS5leHBvcnRzPXN9KS5jYWxsKHQs bigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9u KHQpe2Z1bmN0aW9uIG8oZSl7dmFyIG49IiI7cmV0dXJuIGkuQ2hpbGRyZW4u Zm9yRWFjaChlLGZ1bmN0aW9uKGUpe251bGwhPWUmJigic3RyaW5nIj09dHlw ZW9mIGV8fCJudW1iZXIiPT10eXBlb2YgZT9uKz1lOmN8fChjPSEwLCJwcm9k dWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZ1KCExLCJPbmx5IHN0cmluZ3Mg YW5kIG51bWJlcnMgYXJlIHN1cHBvcnRlZCBhcyA8b3B0aW9uPiBjaGlsZHJl bi4iKSkpfSksbn12YXIgcj1uKDQpLGk9bigxOSksYT1uKDUpLHM9big1OSks dT1uKDIpLGM9ITEsbD17bW91bnRXcmFwcGVyOmZ1bmN0aW9uKGUsbixyKXsi cHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmInByb2R1Y3Rpb24iIT09 dC5lbnYuTk9ERV9FTlYmJnUobnVsbD09bi5zZWxlY3RlZCwiVXNlIHRoZSBg ZGVmYXVsdFZhbHVlYCBvciBgdmFsdWVgIHByb3BzIG9uIDxzZWxlY3Q+IGlu c3RlYWQgb2Ygc2V0dGluZyBgc2VsZWN0ZWRgIG9uIDxvcHRpb24+LiIpO3Zh ciBpPW51bGw7aWYobnVsbCE9cil7dmFyIGE9cjsib3B0Z3JvdXAiPT09YS5f dGFnJiYoYT1hLl9ob3N0UGFyZW50KSxudWxsIT1hJiYic2VsZWN0Ij09PWEu X3RhZyYmKGk9cy5nZXRTZWxlY3RWYWx1ZUNvbnRleHQoYSkpfXZhciBjPW51 bGw7aWYobnVsbCE9aSl7dmFyIGw7aWYobD1udWxsIT1uLnZhbHVlP24udmFs dWUrIiI6byhuLmNoaWxkcmVuKSxjPSExLEFycmF5LmlzQXJyYXkoaSkpe2Zv cih2YXIgcD0wO3A8aS5sZW5ndGg7cCsrKWlmKCIiK2lbcF09PT1sKXtjPSEw O2JyZWFrfX1lbHNlIGM9IiIraT09PWx9ZS5fd3JhcHBlclN0YXRlPXtzZWxl Y3RlZDpjfX0scG9zdE1vdW50V3JhcHBlcjpmdW5jdGlvbihlKXt2YXIgdD1l Ll9jdXJyZW50RWxlbWVudC5wcm9wcztpZihudWxsIT10LnZhbHVlKXthLmdl dE5vZGVGcm9tSW5zdGFuY2UoZSkuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsdC52 YWx1ZSl9fSxnZXRIb3N0UHJvcHM6ZnVuY3Rpb24oZSx0KXt2YXIgbj1yKHtz ZWxlY3RlZDp2b2lkIDAsY2hpbGRyZW46dm9pZCAwfSx0KTtudWxsIT1lLl93 cmFwcGVyU3RhdGUuc2VsZWN0ZWQmJihuLnNlbGVjdGVkPWUuX3dyYXBwZXJT dGF0ZS5zZWxlY3RlZCk7dmFyIGk9byh0LmNoaWxkcmVuKTtyZXR1cm4gaSYm KG4uY2hpbGRyZW49aSksbn19O2UuZXhwb3J0cz1sfSkuY2FsbCh0LG4oMCkp fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSx0 LG4sbyl7cmV0dXJuIGU9PT1uJiZ0PT09b31mdW5jdGlvbiByKGUpe3ZhciB0 PWRvY3VtZW50LnNlbGVjdGlvbixuPXQuY3JlYXRlUmFuZ2UoKSxvPW4udGV4 dC5sZW5ndGgscj1uLmR1cGxpY2F0ZSgpO3IubW92ZVRvRWxlbWVudFRleHQo ZSksci5zZXRFbmRQb2ludCgiRW5kVG9TdGFydCIsbik7dmFyIGk9ci50ZXh0 Lmxlbmd0aDtyZXR1cm57c3RhcnQ6aSxlbmQ6aStvfX1mdW5jdGlvbiBpKGUp e3ZhciB0PXdpbmRvdy5nZXRTZWxlY3Rpb24mJndpbmRvdy5nZXRTZWxlY3Rp b24oKTtpZighdHx8MD09PXQucmFuZ2VDb3VudClyZXR1cm4gbnVsbDt2YXIg bj10LmFuY2hvck5vZGUscj10LmFuY2hvck9mZnNldCxpPXQuZm9jdXNOb2Rl LGE9dC5mb2N1c09mZnNldCxzPXQuZ2V0UmFuZ2VBdCgwKTt0cnl7cy5zdGFy dENvbnRhaW5lci5ub2RlVHlwZSxzLmVuZENvbnRhaW5lci5ub2RlVHlwZX1j YXRjaChlKXtyZXR1cm4gbnVsbH12YXIgdT1vKHQuYW5jaG9yTm9kZSx0LmFu Y2hvck9mZnNldCx0LmZvY3VzTm9kZSx0LmZvY3VzT2Zmc2V0KSxjPXU/MDpz LnRvU3RyaW5nKCkubGVuZ3RoLGw9cy5jbG9uZVJhbmdlKCk7bC5zZWxlY3RO b2RlQ29udGVudHMoZSksbC5zZXRFbmQocy5zdGFydENvbnRhaW5lcixzLnN0 YXJ0T2Zmc2V0KTt2YXIgcD1vKGwuc3RhcnRDb250YWluZXIsbC5zdGFydE9m ZnNldCxsLmVuZENvbnRhaW5lcixsLmVuZE9mZnNldCksZD1wPzA6bC50b1N0 cmluZygpLmxlbmd0aCxmPWQrYyxoPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7 aC5zZXRTdGFydChuLHIpLGguc2V0RW5kKGksYSk7dmFyIG09aC5jb2xsYXBz ZWQ7cmV0dXJue3N0YXJ0Om0/ZjpkLGVuZDptP2Q6Zn19ZnVuY3Rpb24gYShl LHQpe3ZhciBuLG8scj1kb2N1bWVudC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2Uo KS5kdXBsaWNhdGUoKTt2b2lkIDA9PT10LmVuZD8obj10LnN0YXJ0LG89bik6 dC5zdGFydD50LmVuZD8obj10LmVuZCxvPXQuc3RhcnQpOihuPXQuc3RhcnQs bz10LmVuZCksci5tb3ZlVG9FbGVtZW50VGV4dChlKSxyLm1vdmVTdGFydCgi Y2hhcmFjdGVyIixuKSxyLnNldEVuZFBvaW50KCJFbmRUb1N0YXJ0IixyKSxy Lm1vdmVFbmQoImNoYXJhY3RlciIsby1uKSxyLnNlbGVjdCgpfWZ1bmN0aW9u IHMoZSx0KXtpZih3aW5kb3cuZ2V0U2VsZWN0aW9uKXt2YXIgbj13aW5kb3cu Z2V0U2VsZWN0aW9uKCksbz1lW2woKV0ubGVuZ3RoLHI9TWF0aC5taW4odC5z dGFydCxvKSxpPXZvaWQgMD09PXQuZW5kP3I6TWF0aC5taW4odC5lbmQsbyk7 aWYoIW4uZXh0ZW5kJiZyPmkpe3ZhciBhPWk7aT1yLHI9YX12YXIgcz1jKGUs ciksdT1jKGUsaSk7aWYocyYmdSl7dmFyIHA9ZG9jdW1lbnQuY3JlYXRlUmFu Z2UoKTtwLnNldFN0YXJ0KHMubm9kZSxzLm9mZnNldCksbi5yZW1vdmVBbGxS YW5nZXMoKSxyPmk/KG4uYWRkUmFuZ2UocCksbi5leHRlbmQodS5ub2RlLHUu b2Zmc2V0KSk6KHAuc2V0RW5kKHUubm9kZSx1Lm9mZnNldCksbi5hZGRSYW5n ZShwKSl9fX12YXIgdT1uKDYpLGM9bigxNjMpLGw9big3MSkscD11LmNhblVz ZURPTSYmInNlbGVjdGlvbiJpbiBkb2N1bWVudCYmISgiZ2V0U2VsZWN0aW9u ImluIHdpbmRvdyksZD17Z2V0T2Zmc2V0czpwP3I6aSxzZXRPZmZzZXRzOnA/ YTpzfTtlLmV4cG9ydHM9ZH0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0 IjsoZnVuY3Rpb24odCl7dmFyIG89bigzKSxyPW4oNCksaT1uKDMyKSxhPW4o MTcpLHM9big1KSx1PW4oMjkpLGM9bigxKSxsPW4oNDYpLHA9ZnVuY3Rpb24o ZSl7dGhpcy5fY3VycmVudEVsZW1lbnQ9ZSx0aGlzLl9zdHJpbmdUZXh0PSIi K2UsdGhpcy5faG9zdE5vZGU9bnVsbCx0aGlzLl9ob3N0UGFyZW50PW51bGws dGhpcy5fZG9tSUQ9MCx0aGlzLl9tb3VudEluZGV4PTAsdGhpcy5fY2xvc2lu Z0NvbW1lbnQ9bnVsbCx0aGlzLl9jb21tZW50Tm9kZXM9bnVsbH07cihwLnBy b3RvdHlwZSx7bW91bnRDb21wb25lbnQ6ZnVuY3Rpb24oZSxuLG8scil7aWYo InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYpe3ZhciBpO251bGwhPW4/ aT1uLl9hbmNlc3RvckluZm86bnVsbCE9byYmKGk9by5fYW5jZXN0b3JJbmZv KSxpJiZsKG51bGwsdGhpcy5fc3RyaW5nVGV4dCx0aGlzLGkpfXZhciBjPW8u X2lkQ291bnRlcisrLHA9IiByZWFjdC10ZXh0OiAiK2MrIiAiO2lmKHRoaXMu X2RvbUlEPWMsdGhpcy5faG9zdFBhcmVudD1uLGUudXNlQ3JlYXRlRWxlbWVu dCl7dmFyIGQ9by5fb3duZXJEb2N1bWVudCxmPWQuY3JlYXRlQ29tbWVudChw KSxoPWQuY3JlYXRlQ29tbWVudCgiIC9yZWFjdC10ZXh0ICIpLG09YShkLmNy ZWF0ZURvY3VtZW50RnJhZ21lbnQoKSk7cmV0dXJuIGEucXVldWVDaGlsZCht LGEoZikpLHRoaXMuX3N0cmluZ1RleHQmJmEucXVldWVDaGlsZChtLGEoZC5j cmVhdGVUZXh0Tm9kZSh0aGlzLl9zdHJpbmdUZXh0KSkpLGEucXVldWVDaGls ZChtLGEoaCkpLHMucHJlY2FjaGVOb2RlKHRoaXMsZiksdGhpcy5fY2xvc2lu Z0NvbW1lbnQ9aCxtfXZhciB2PXUodGhpcy5fc3RyaW5nVGV4dCk7cmV0dXJu IGUucmVuZGVyVG9TdGF0aWNNYXJrdXA/djoiXHgzYyEtLSIrcCsiLS1ceDNl Iit2KyJceDNjIS0tIC9yZWFjdC10ZXh0IC0tXHgzZSJ9LHJlY2VpdmVDb21w b25lbnQ6ZnVuY3Rpb24oZSx0KXtpZihlIT09dGhpcy5fY3VycmVudEVsZW1l bnQpe3RoaXMuX2N1cnJlbnRFbGVtZW50PWU7dmFyIG49IiIrZTtpZihuIT09 dGhpcy5fc3RyaW5nVGV4dCl7dGhpcy5fc3RyaW5nVGV4dD1uO3ZhciBvPXRo aXMuZ2V0SG9zdE5vZGUoKTtpLnJlcGxhY2VEZWxpbWl0ZWRUZXh0KG9bMF0s b1sxXSxuKX19fSxnZXRIb3N0Tm9kZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMu X2NvbW1lbnROb2RlcztpZihlKXJldHVybiBlO2lmKCF0aGlzLl9jbG9zaW5n Q29tbWVudClmb3IodmFyIG49cy5nZXROb2RlRnJvbUluc3RhbmNlKHRoaXMp LHI9bi5uZXh0U2libGluZzs7KXtpZihudWxsPT1yJiYoInByb2R1Y3Rpb24i IT09dC5lbnYuTk9ERV9FTlY/YyghMSwiTWlzc2luZyBjbG9zaW5nIGNvbW1l bnQgZm9yIHRleHQgY29tcG9uZW50ICVzIix0aGlzLl9kb21JRCk6bygiNjci LHRoaXMuX2RvbUlEKSksOD09PXIubm9kZVR5cGUmJiIgL3JlYWN0LXRleHQg Ij09PXIubm9kZVZhbHVlKXt0aGlzLl9jbG9zaW5nQ29tbWVudD1yO2JyZWFr fXI9ci5uZXh0U2libGluZ31yZXR1cm4gZT1bdGhpcy5faG9zdE5vZGUsdGhp cy5fY2xvc2luZ0NvbW1lbnRdLHRoaXMuX2NvbW1lbnROb2Rlcz1lLGV9LHVu bW91bnRDb21wb25lbnQ6ZnVuY3Rpb24oKXt0aGlzLl9jbG9zaW5nQ29tbWVu dD1udWxsLHRoaXMuX2NvbW1lbnROb2Rlcz1udWxsLHMudW5jYWNoZU5vZGUo dGhpcyl9fSksZS5leHBvcnRzPXB9KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9u KGUsdCxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG8o KXt0aGlzLl9yb290Tm9kZUlEJiZoLnVwZGF0ZVdyYXBwZXIodGhpcyl9ZnVu Y3Rpb24gcihlKXt2YXIgdD10aGlzLl9jdXJyZW50RWxlbWVudC5wcm9wcyxu PXMuZXhlY3V0ZU9uQ2hhbmdlKHQsZSk7cmV0dXJuIGMuYXNhcChvLHRoaXMp LG59dmFyIGk9bigzKSxhPW4oNCkscz1uKDM2KSx1PW4oNSksYz1uKDEwKSxs PW4oMSkscD1uKDIpLGQ9ITEsZj0hMSxoPXtnZXRIb3N0UHJvcHM6ZnVuY3Rp b24oZSxuKXtyZXR1cm4gbnVsbCE9bi5kYW5nZXJvdXNseVNldElubmVySFRN TCYmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP2woITEsImBkYW5n ZXJvdXNseVNldElubmVySFRNTGAgZG9lcyBub3QgbWFrZSBzZW5zZSBvbiA8 dGV4dGFyZWE+LiIpOmkoIjkxIikpLGEoe30sbix7dmFsdWU6dm9pZCAwLGRl ZmF1bHRWYWx1ZTp2b2lkIDAsY2hpbGRyZW46IiIrZS5fd3JhcHBlclN0YXRl LmluaXRpYWxWYWx1ZSxvbkNoYW5nZTplLl93cmFwcGVyU3RhdGUub25DaGFu Z2V9KX0sbW91bnRXcmFwcGVyOmZ1bmN0aW9uKGUsbil7InByb2R1Y3Rpb24i IT09dC5lbnYuTk9ERV9FTlYmJihzLmNoZWNrUHJvcFR5cGVzKCJ0ZXh0YXJl YSIsbixlLl9jdXJyZW50RWxlbWVudC5fb3duZXIpLHZvaWQgMD09PW4udmFs dWVMaW5rfHxkfHwoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJnAo ITEsImB2YWx1ZUxpbmtgIHByb3Agb24gYHRleHRhcmVhYCBpcyBkZXByZWNh dGVkOyBzZXQgYHZhbHVlYCBhbmQgYG9uQ2hhbmdlYCBpbnN0ZWFkLiIpLGQ9 ITApLHZvaWQgMD09PW4udmFsdWV8fHZvaWQgMD09PW4uZGVmYXVsdFZhbHVl fHxmfHwoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJnAoITEsIlRl eHRhcmVhIGVsZW1lbnRzIG11c3QgYmUgZWl0aGVyIGNvbnRyb2xsZWQgb3Ig dW5jb250cm9sbGVkIChzcGVjaWZ5IGVpdGhlciB0aGUgdmFsdWUgcHJvcCwg b3IgdGhlIGRlZmF1bHRWYWx1ZSBwcm9wLCBidXQgbm90IGJvdGgpLiBEZWNp ZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVk IHRleHRhcmVhIGFuZCByZW1vdmUgb25lIG9mIHRoZXNlIHByb3BzLiBNb3Jl IGluZm86IGh0dHBzOi8vZmIubWUvcmVhY3QtY29udHJvbGxlZC1jb21wb25l bnRzIiksZj0hMCkpO3ZhciBvPXMuZ2V0VmFsdWUobiksYT1vO2lmKG51bGw9 PW8pe3ZhciB1PW4uZGVmYXVsdFZhbHVlLGM9bi5jaGlsZHJlbjtudWxsIT1j JiYoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJiJwcm9kdWN0aW9u IiE9PXQuZW52Lk5PREVfRU5WJiZwKCExLCJVc2UgdGhlIGBkZWZhdWx0VmFs dWVgIG9yIGB2YWx1ZWAgcHJvcHMgaW5zdGVhZCBvZiBzZXR0aW5nIGNoaWxk cmVuIG9uIDx0ZXh0YXJlYT4uIiksbnVsbCE9dSYmKCJwcm9kdWN0aW9uIiE9 PXQuZW52Lk5PREVfRU5WP2woITEsIklmIHlvdSBzdXBwbHkgYGRlZmF1bHRW YWx1ZWAgb24gYSA8dGV4dGFyZWE+LCBkbyBub3QgcGFzcyBjaGlsZHJlbi4i KTppKCI5MiIpKSxBcnJheS5pc0FycmF5KGMpJiYoYy5sZW5ndGg8PTF8fCgi cHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9sKCExLCI8dGV4dGFyZWE+ IGNhbiBvbmx5IGhhdmUgYXQgbW9zdCBvbmUgY2hpbGQuIik6aSgiOTMiKSks Yz1jWzBdKSx1PSIiK2MpLG51bGw9PXUmJih1PSIiKSxhPXV9ZS5fd3JhcHBl clN0YXRlPXtpbml0aWFsVmFsdWU6IiIrYSxsaXN0ZW5lcnM6bnVsbCxvbkNo YW5nZTpyLmJpbmQoZSl9fSx1cGRhdGVXcmFwcGVyOmZ1bmN0aW9uKGUpe3Zh ciB0PWUuX2N1cnJlbnRFbGVtZW50LnByb3BzLG49dS5nZXROb2RlRnJvbUlu c3RhbmNlKGUpLG89cy5nZXRWYWx1ZSh0KTtpZihudWxsIT1vKXt2YXIgcj0i IitvO3IhPT1uLnZhbHVlJiYobi52YWx1ZT1yKSxudWxsPT10LmRlZmF1bHRW YWx1ZSYmKG4uZGVmYXVsdFZhbHVlPXIpfW51bGwhPXQuZGVmYXVsdFZhbHVl JiYobi5kZWZhdWx0VmFsdWU9dC5kZWZhdWx0VmFsdWUpfSxwb3N0TW91bnRX cmFwcGVyOmZ1bmN0aW9uKGUpe3ZhciB0PXUuZ2V0Tm9kZUZyb21JbnN0YW5j ZShlKSxuPXQudGV4dENvbnRlbnQ7bj09PWUuX3dyYXBwZXJTdGF0ZS5pbml0 aWFsVmFsdWUmJih0LnZhbHVlPW4pfX07ZS5leHBvcnRzPWh9KS5jYWxsKHQs bigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9u KHQpe2Z1bmN0aW9uIG8oZSxuKXsiX2hvc3ROb2RlImluIGV8fCgicHJvZHVj dGlvbiIhPT10LmVudi5OT0RFX0VOVj9jKCExLCJnZXROb2RlRnJvbUluc3Rh bmNlOiBJbnZhbGlkIGFyZ3VtZW50LiIpOnUoIjMzIikpLCJfaG9zdE5vZGUi aW4gbnx8KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP2MoITEsImdl dE5vZGVGcm9tSW5zdGFuY2U6IEludmFsaWQgYXJndW1lbnQuIik6dSgiMzMi KSk7Zm9yKHZhciBvPTAscj1lO3I7cj1yLl9ob3N0UGFyZW50KW8rKztmb3Io dmFyIGk9MCxhPW47YTthPWEuX2hvc3RQYXJlbnQpaSsrO2Zvcig7by1pPjA7 KWU9ZS5faG9zdFBhcmVudCxvLS07Zm9yKDtpLW8+MDspbj1uLl9ob3N0UGFy ZW50LGktLTtmb3IodmFyIHM9bztzLS07KXtpZihlPT09bilyZXR1cm4gZTtl PWUuX2hvc3RQYXJlbnQsbj1uLl9ob3N0UGFyZW50fXJldHVybiBudWxsfWZ1 bmN0aW9uIHIoZSxuKXsiX2hvc3ROb2RlImluIGV8fCgicHJvZHVjdGlvbiIh PT10LmVudi5OT0RFX0VOVj9jKCExLCJpc0FuY2VzdG9yOiBJbnZhbGlkIGFy Z3VtZW50LiIpOnUoIjM1IikpLCJfaG9zdE5vZGUiaW4gbnx8KCJwcm9kdWN0 aW9uIiE9PXQuZW52Lk5PREVfRU5WP2MoITEsImlzQW5jZXN0b3I6IEludmFs aWQgYXJndW1lbnQuIik6dSgiMzUiKSk7Zm9yKDtuOyl7aWYobj09PWUpcmV0 dXJuITA7bj1uLl9ob3N0UGFyZW50fXJldHVybiExfWZ1bmN0aW9uIGkoZSl7 cmV0dXJuIl9ob3N0Tm9kZSJpbiBlfHwoInByb2R1Y3Rpb24iIT09dC5lbnYu Tk9ERV9FTlY/YyghMSwiZ2V0UGFyZW50SW5zdGFuY2U6IEludmFsaWQgYXJn dW1lbnQuIik6dSgiMzYiKSksZS5faG9zdFBhcmVudH1mdW5jdGlvbiBhKGUs dCxuKXtmb3IodmFyIG89W107ZTspby5wdXNoKGUpLGU9ZS5faG9zdFBhcmVu dDt2YXIgcjtmb3Iocj1vLmxlbmd0aDtyLS0gPjA7KXQob1tyXSwiY2FwdHVy ZWQiLG4pO2ZvcihyPTA7cjxvLmxlbmd0aDtyKyspdChvW3JdLCJidWJibGVk IixuKX1mdW5jdGlvbiBzKGUsdCxuLHIsaSl7Zm9yKHZhciBhPWUmJnQ/byhl LHQpOm51bGwscz1bXTtlJiZlIT09YTspcy5wdXNoKGUpLGU9ZS5faG9zdFBh cmVudDtmb3IodmFyIHU9W107dCYmdCE9PWE7KXUucHVzaCh0KSx0PXQuX2hv c3RQYXJlbnQ7dmFyIGM7Zm9yKGM9MDtjPHMubGVuZ3RoO2MrKyluKHNbY10s ImJ1YmJsZWQiLHIpO2ZvcihjPXUubGVuZ3RoO2MtLSA+MDspbih1W2NdLCJj YXB0dXJlZCIsaSl9dmFyIHU9bigzKSxjPW4oMSk7ZS5leHBvcnRzPXtpc0Fu Y2VzdG9yOnIsZ2V0TG93ZXN0Q29tbW9uQW5jZXN0b3I6byxnZXRQYXJlbnRJ bnN0YW5jZTppLHRyYXZlcnNlVHdvUGhhc2U6YSx0cmF2ZXJzZUVudGVyTGVh dmU6c319KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0 cmljdCI7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG8oZSx0KXtudWxsIT10JiYi c3RyaW5nIj09dHlwZW9mIHQudHlwZSYmKHQudHlwZS5pbmRleE9mKCItIik+ PTB8fHQucHJvcHMuaXN8fHAoZSx0KSl9dmFyIHI9bigxMyksaT1uKDI1KSxh PW4oNykscz1uKDIpO2lmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5W KXZhciB1PXtjaGlsZHJlbjohMCxkYW5nZXJvdXNseVNldElubmVySFRNTDoh MCxrZXk6ITAscmVmOiEwLGF1dG9Gb2N1czohMCxkZWZhdWx0VmFsdWU6ITAs dmFsdWVMaW5rOiEwLGRlZmF1bHRDaGVja2VkOiEwLGNoZWNrZWRMaW5rOiEw LGlubmVySFRNTDohMCxzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmc6 ITAsb25Gb2N1c0luOiEwLG9uRm9jdXNPdXQ6ITB9LGM9e30sbD1mdW5jdGlv bihlLG4sbyl7aWYoci5wcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KG4pfHxy LmlzQ3VzdG9tQXR0cmlidXRlKG4pKXJldHVybiEwO2lmKHUuaGFzT3duUHJv cGVydHkobikmJnVbbl18fGMuaGFzT3duUHJvcGVydHkobikmJmNbbl0pcmV0 dXJuITA7aWYoaS5yZWdpc3RyYXRpb25OYW1lTW9kdWxlcy5oYXNPd25Qcm9w ZXJ0eShuKSlyZXR1cm4hMDtjW25dPSEwO3ZhciBsPW4udG9Mb3dlckNhc2Uo KSxwPXIuaXNDdXN0b21BdHRyaWJ1dGUobCk/bDpyLmdldFBvc3NpYmxlU3Rh bmRhcmROYW1lLmhhc093blByb3BlcnR5KGwpP3IuZ2V0UG9zc2libGVTdGFu ZGFyZE5hbWVbbF06bnVsbCxkPWkucG9zc2libGVSZWdpc3RyYXRpb25OYW1l cy5oYXNPd25Qcm9wZXJ0eShsKT9pLnBvc3NpYmxlUmVnaXN0cmF0aW9uTmFt ZXNbbF06bnVsbDtyZXR1cm4gbnVsbCE9cD8oInByb2R1Y3Rpb24iIT09dC5l bnYuTk9ERV9FTlYmJnMoITEsIlVua25vd24gRE9NIHByb3BlcnR5ICVzLiBE aWQgeW91IG1lYW4gJXM/JXMiLG4scCxhLmdldFN0YWNrQWRkZW5kdW1CeUlE KG8pKSwhMCk6bnVsbCE9ZCYmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVf RU5WJiZzKCExLCJVbmtub3duIGV2ZW50IGhhbmRsZXIgcHJvcGVydHkgJXMu IERpZCB5b3UgbWVhbiBgJXNgPyVzIixuLGQsYS5nZXRTdGFja0FkZGVuZHVt QnlJRChvKSksITApfTt2YXIgcD1mdW5jdGlvbihlLG4pe3ZhciBvPVtdO2Zv cih2YXIgciBpbiBuLnByb3BzKXtsKG4udHlwZSxyLGUpfHxvLnB1c2gocil9 dmFyIGk9by5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuImAiK2UrImAifSkuam9p bigiLCAiKTsxPT09by5sZW5ndGg/InByb2R1Y3Rpb24iIT09dC5lbnYuTk9E RV9FTlYmJnMoITEsIlVua25vd24gcHJvcCAlcyBvbiA8JXM+IHRhZy4gUmVt b3ZlIHRoaXMgcHJvcCBmcm9tIHRoZSBlbGVtZW50LiBGb3IgZGV0YWlscywg c2VlIGh0dHBzOi8vZmIubWUvcmVhY3QtdW5rbm93bi1wcm9wJXMiLGksbi50 eXBlLGEuZ2V0U3RhY2tBZGRlbmR1bUJ5SUQoZSkpOm8ubGVuZ3RoPjEmJiJw cm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZzKCExLCJVbmtub3duIHBy b3BzICVzIG9uIDwlcz4gdGFnLiBSZW1vdmUgdGhlc2UgcHJvcHMgZnJvbSB0 aGUgZWxlbWVudC4gRm9yIGRldGFpbHMsIHNlZSBodHRwczovL2ZiLm1lL3Jl YWN0LXVua25vd24tcHJvcCVzIixpLG4udHlwZSxhLmdldFN0YWNrQWRkZW5k dW1CeUlEKGUpKX0sZD17b25CZWZvcmVNb3VudENvbXBvbmVudDpmdW5jdGlv bihlLHQpe28oZSx0KX0sb25CZWZvcmVVcGRhdGVDb21wb25lbnQ6ZnVuY3Rp b24oZSx0KXtvKGUsdCl9fTtlLmV4cG9ydHM9ZH0pLmNhbGwodCxuKDApKX0s ZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7ZnVu Y3Rpb24gbyhlLG4sbyxyLGksYSxzLHUpe3RyeXtuLmNhbGwobyxyLGksYSxz LHUpfWNhdGNoKG4peyJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZO KENbZV0sIkV4Y2VwdGlvbiB0aHJvd24gYnkgaG9vayB3aGlsZSBoYW5kbGlu ZyAlczogJXMiLGUsbisiXG4iK24uc3RhY2spLENbZV09ITB9fWZ1bmN0aW9u IHIoZSx0LG4scixpLGEpe2Zvcih2YXIgcz0wO3M8Yi5sZW5ndGg7cysrKXt2 YXIgdT1iW3NdLGM9dVtlXTtjJiZvKGUsYyx1LHQsbixyLGksYSl9fWZ1bmN0 aW9uIGkoKXt5LnB1cmdlVW5tb3VudGVkQ29tcG9uZW50cygpLGcuY2xlYXJI aXN0b3J5KCl9ZnVuY3Rpb24gYShlKXtyZXR1cm4gZS5yZWR1Y2UoZnVuY3Rp b24oZSx0KXt2YXIgbj15LmdldE93bmVySUQodCksbz15LmdldFBhcmVudElE KHQpO3JldHVybiBlW3RdPXtkaXNwbGF5TmFtZTp5LmdldERpc3BsYXlOYW1l KHQpLHRleHQ6eS5nZXRUZXh0KHQpLHVwZGF0ZUNvdW50OnkuZ2V0VXBkYXRl Q291bnQodCksY2hpbGRJRHM6eS5nZXRDaGlsZElEcyh0KSxvd25lcklEOm58 fG8mJnkuZ2V0T3duZXJJRChvKXx8MCxwYXJlbnRJRDpvfSxlfSx7fSl9ZnVu Y3Rpb24gcygpe3ZhciBlPWssdD1ULG49Zy5nZXRIaXN0b3J5KCk7aWYoMD09 PXgpcmV0dXJuIGs9MCxUPVtdLHZvaWQgaSgpO2lmKHQubGVuZ3RofHxuLmxl bmd0aCl7dmFyIG89eS5nZXRSZWdpc3RlcmVkSURzKCk7Ty5wdXNoKHtkdXJh dGlvbjpfKCktZSxtZWFzdXJlbWVudHM6dHx8W10sb3BlcmF0aW9uczpufHxb XSx0cmVlU25hcHNob3Q6YShvKX0pfWkoKSxrPV8oKSxUPVtdfWZ1bmN0aW9u IHUoZSl7YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNb MV0mJmFyZ3VtZW50c1sxXSYmMD09PWV8fGV8fCJwcm9kdWN0aW9uIiE9PXQu ZW52Lk5PREVfRU5WJiZOKCExLCJSZWFjdERlYnVnVG9vbDogZGVidWdJRCBt YXkgbm90IGJlIGVtcHR5LiIpfWZ1bmN0aW9uIGMoZSxuKXswIT09eCYmKFYm JiFSJiYoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJk4oITEsIlRo ZXJlIGlzIGFuIGludGVybmFsIGVycm9yIGluIHRoZSBSZWFjdCBwZXJmb3Jt YW5jZSBtZWFzdXJlbWVudCBjb2RlLiBEaWQgbm90IGV4cGVjdCAlcyB0aW1l ciB0byBzdGFydCB3aGlsZSAlcyB0aW1lciBpcyBzdGlsbCBpbiBwcm9ncmVz cyBmb3IgJXMgaW5zdGFuY2UuIixuLFZ8fCJubyIsZT09PUk/InRoZSBzYW1l IjoiYW5vdGhlciIpLFI9ITApLFA9XygpLFM9MCxJPWUsVj1uKX1mdW5jdGlv biBsKGUsbil7MCE9PXgmJihWPT09bnx8Unx8KCJwcm9kdWN0aW9uIiE9PXQu ZW52Lk5PREVfRU5WJiZOKCExLCJUaGVyZSBpcyBhbiBpbnRlcm5hbCBlcnJv ciBpbiB0aGUgUmVhY3QgcGVyZm9ybWFuY2UgbWVhc3VyZW1lbnQgY29kZS4g V2UgZGlkIG5vdCBleHBlY3QgJXMgdGltZXIgdG8gc3RvcCB3aGlsZSAlcyB0 aW1lciBpcyBzdGlsbCBpbiBwcm9ncmVzcyBmb3IgJXMgaW5zdGFuY2UuIFBs ZWFzZSByZXBvcnQgdGhpcyBhcyBhIGJ1ZyBpbiBSZWFjdC4iLG4sVnx8Im5v IixlPT09ST8idGhlIHNhbWUiOiJhbm90aGVyIiksUj0hMCksRCYmVC5wdXNo KHt0aW1lclR5cGU6bixpbnN0YW5jZUlEOmUsZHVyYXRpb246XygpLVAtU30p LFA9MCxTPTAsST1udWxsLFY9bnVsbCl9ZnVuY3Rpb24gcCgpe3ZhciBlPXtz dGFydFRpbWU6UCxuZXN0ZWRGbHVzaFN0YXJ0VGltZTpfKCksZGVidWdJRDpJ LHRpbWVyVHlwZTpWfTt3LnB1c2goZSksUD0wLFM9MCxJPW51bGwsVj1udWxs fWZ1bmN0aW9uIGQoKXt2YXIgZT13LnBvcCgpLHQ9ZS5zdGFydFRpbWUsbj1l Lm5lc3RlZEZsdXNoU3RhcnRUaW1lLG89ZS5kZWJ1Z0lELHI9ZS50aW1lclR5 cGUsaT1fKCktbjtQPXQsUys9aSxJPW8sVj1yfWZ1bmN0aW9uIGYoZSl7aWYo IUR8fCFBKXJldHVybiExO3ZhciB0PXkuZ2V0RWxlbWVudChlKTtyZXR1cm4g bnVsbCE9dCYmIm9iamVjdCI9PXR5cGVvZiB0JiYhKCJzdHJpbmciPT10eXBl b2YgdC50eXBlKX1mdW5jdGlvbiBoKGUsdCl7aWYoZihlKSl7dmFyIG49ZSsi OjoiK3Q7TT1fKCkscGVyZm9ybWFuY2UubWFyayhuKX19ZnVuY3Rpb24gbShl LHQpe2lmKGYoZSkpe3ZhciBuPWUrIjo6Iit0LG89eS5nZXREaXNwbGF5TmFt ZShlKXx8IlVua25vd24iO2lmKF8oKS1NPi4xKXt2YXIgcj1vKyIgWyIrdCsi XSI7cGVyZm9ybWFuY2UubWVhc3VyZShyLG4pfXBlcmZvcm1hbmNlLmNsZWFy TWFya3MobikscGVyZm9ybWFuY2UuY2xlYXJNZWFzdXJlcyhyKX19dmFyIHY9 bigxMzIpLGc9bigxMzApLHk9big3KSxFPW4oNiksXz1uKDk1KSxOPW4oMiks Yj1bXSxDPXt9LEQ9ITEsTz1bXSx3PVtdLHg9MCxUPVtdLGs9MCxJPW51bGws UD0wLFM9MCxWPW51bGwsUj0hMSxNPTAsQT0idW5kZWZpbmVkIiE9dHlwZW9m IHBlcmZvcm1hbmNlJiYiZnVuY3Rpb24iPT10eXBlb2YgcGVyZm9ybWFuY2Uu bWFyayYmImZ1bmN0aW9uIj09dHlwZW9mIHBlcmZvcm1hbmNlLmNsZWFyTWFy a3MmJiJmdW5jdGlvbiI9PXR5cGVvZiBwZXJmb3JtYW5jZS5tZWFzdXJlJiYi ZnVuY3Rpb24iPT10eXBlb2YgcGVyZm9ybWFuY2UuY2xlYXJNZWFzdXJlcyxV PXthZGRIb29rOmZ1bmN0aW9uKGUpe2IucHVzaChlKX0scmVtb3ZlSG9vazpm dW5jdGlvbihlKXtmb3IodmFyIHQ9MDt0PGIubGVuZ3RoO3QrKyliW3RdPT09 ZSYmKGIuc3BsaWNlKHQsMSksdC0tKX0saXNQcm9maWxpbmc6ZnVuY3Rpb24o KXtyZXR1cm4gRH0sYmVnaW5Qcm9maWxpbmc6ZnVuY3Rpb24oKXtEfHwoRD0h MCxPLmxlbmd0aD0wLHMoKSxVLmFkZEhvb2soZykpfSxlbmRQcm9maWxpbmc6 ZnVuY3Rpb24oKXtEJiYoRD0hMSxzKCksVS5yZW1vdmVIb29rKGcpKX0sZ2V0 Rmx1c2hIaXN0b3J5OmZ1bmN0aW9uKCl7cmV0dXJuIE99LG9uQmVnaW5GbHVz aDpmdW5jdGlvbigpe3grKyxzKCkscCgpLHIoIm9uQmVnaW5GbHVzaCIpfSxv bkVuZEZsdXNoOmZ1bmN0aW9uKCl7cygpLHgtLSxkKCkscigib25FbmRGbHVz aCIpfSxvbkJlZ2luTGlmZUN5Y2xlVGltZXI6ZnVuY3Rpb24oZSx0KXt1KGUp LHIoIm9uQmVnaW5MaWZlQ3ljbGVUaW1lciIsZSx0KSxoKGUsdCksYyhlLHQp fSxvbkVuZExpZmVDeWNsZVRpbWVyOmZ1bmN0aW9uKGUsdCl7dShlKSxsKGUs dCksbShlLHQpLHIoIm9uRW5kTGlmZUN5Y2xlVGltZXIiLGUsdCl9LG9uQmVn aW5Qcm9jZXNzaW5nQ2hpbGRDb250ZXh0OmZ1bmN0aW9uKCl7cigib25CZWdp blByb2Nlc3NpbmdDaGlsZENvbnRleHQiKX0sb25FbmRQcm9jZXNzaW5nQ2hp bGRDb250ZXh0OmZ1bmN0aW9uKCl7cigib25FbmRQcm9jZXNzaW5nQ2hpbGRD b250ZXh0Iil9LG9uSG9zdE9wZXJhdGlvbjpmdW5jdGlvbihlKXt1KGUuaW5z dGFuY2VJRCkscigib25Ib3N0T3BlcmF0aW9uIixlKX0sb25TZXRTdGF0ZTpm dW5jdGlvbigpe3IoIm9uU2V0U3RhdGUiKX0sb25TZXRDaGlsZHJlbjpmdW5j dGlvbihlLHQpe3UoZSksdC5mb3JFYWNoKHUpLHIoIm9uU2V0Q2hpbGRyZW4i LGUsdCl9LG9uQmVmb3JlTW91bnRDb21wb25lbnQ6ZnVuY3Rpb24oZSx0LG4p e3UoZSksdShuLCEwKSxyKCJvbkJlZm9yZU1vdW50Q29tcG9uZW50IixlLHQs biksaChlLCJtb3VudCIpfSxvbk1vdW50Q29tcG9uZW50OmZ1bmN0aW9uKGUp e3UoZSksbShlLCJtb3VudCIpLHIoIm9uTW91bnRDb21wb25lbnQiLGUpfSxv bkJlZm9yZVVwZGF0ZUNvbXBvbmVudDpmdW5jdGlvbihlLHQpe3UoZSkscigi b25CZWZvcmVVcGRhdGVDb21wb25lbnQiLGUsdCksaChlLCJ1cGRhdGUiKX0s b25VcGRhdGVDb21wb25lbnQ6ZnVuY3Rpb24oZSl7dShlKSxtKGUsInVwZGF0 ZSIpLHIoIm9uVXBkYXRlQ29tcG9uZW50IixlKX0sb25CZWZvcmVVbm1vdW50 Q29tcG9uZW50OmZ1bmN0aW9uKGUpe3UoZSkscigib25CZWZvcmVVbm1vdW50 Q29tcG9uZW50IixlKSxoKGUsInVubW91bnQiKX0sb25Vbm1vdW50Q29tcG9u ZW50OmZ1bmN0aW9uKGUpe3UoZSksbShlLCJ1bm1vdW50Iikscigib25Vbm1v dW50Q29tcG9uZW50IixlKX0sb25UZXN0RXZlbnQ6ZnVuY3Rpb24oKXtyKCJv blRlc3RFdmVudCIpfX07VS5hZGREZXZ0b29sPVUuYWRkSG9vayxVLnJlbW92 ZURldnRvb2w9VS5yZW1vdmVIb29rLFUuYWRkSG9vayh2KSxVLmFkZEhvb2so eSksL1s/Jl1yZWFjdF9wZXJmXGIvLnRlc3QoRS5jYW5Vc2VET00mJndpbmRv dy5sb2NhdGlvbi5ocmVmfHwiIikmJlUuYmVnaW5Qcm9maWxpbmcoKSxlLmV4 cG9ydHM9VX0pLmNhbGwodCxuKDApKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ug c3RyaWN0IjtmdW5jdGlvbiBvKCl7dGhpcy5yZWluaXRpYWxpemVUcmFuc2Fj dGlvbigpfXZhciByPW4oNCksaT1uKDEwKSxhPW4oMjgpLHM9big5KSx1PXtp bml0aWFsaXplOnMsY2xvc2U6ZnVuY3Rpb24oKXtkLmlzQmF0Y2hpbmdVcGRh dGVzPSExfX0sYz17aW5pdGlhbGl6ZTpzLGNsb3NlOmkuZmx1c2hCYXRjaGVk VXBkYXRlcy5iaW5kKGkpfSxsPVtjLHVdO3Ioby5wcm90b3R5cGUsYSx7Z2V0 VHJhbnNhY3Rpb25XcmFwcGVyczpmdW5jdGlvbigpe3JldHVybiBsfX0pO3Zh ciBwPW5ldyBvLGQ9e2lzQmF0Y2hpbmdVcGRhdGVzOiExLGJhdGNoZWRVcGRh dGVzOmZ1bmN0aW9uKGUsdCxuLG8scixpKXt2YXIgYT1kLmlzQmF0Y2hpbmdV cGRhdGVzO3JldHVybiBkLmlzQmF0Y2hpbmdVcGRhdGVzPSEwLGE/ZSh0LG4s byxyLGkpOnAucGVyZm9ybShlLG51bGwsdCxuLG8scixpKX19O2UuZXhwb3J0 cz1kfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8o KXtDfHwoQz0hMCx5LkV2ZW50RW1pdHRlci5pbmplY3RSZWFjdEV2ZW50TGlz dGVuZXIoZykseS5FdmVudFBsdWdpbkh1Yi5pbmplY3RFdmVudFBsdWdpbk9y ZGVyKHMpLHkuRXZlbnRQbHVnaW5VdGlscy5pbmplY3RDb21wb25lbnRUcmVl KGQpLHkuRXZlbnRQbHVnaW5VdGlscy5pbmplY3RUcmVlVHJhdmVyc2FsKGgp LHkuRXZlbnRQbHVnaW5IdWIuaW5qZWN0RXZlbnRQbHVnaW5zQnlOYW1lKHtT aW1wbGVFdmVudFBsdWdpbjpiLEVudGVyTGVhdmVFdmVudFBsdWdpbjp1LENo YW5nZUV2ZW50UGx1Z2luOmEsU2VsZWN0RXZlbnRQbHVnaW46TixCZWZvcmVJ bnB1dEV2ZW50UGx1Z2luOml9KSx5Lkhvc3RDb21wb25lbnQuaW5qZWN0R2Vu ZXJpY0NvbXBvbmVudENsYXNzKHApLHkuSG9zdENvbXBvbmVudC5pbmplY3RU ZXh0Q29tcG9uZW50Q2xhc3MobSkseS5ET01Qcm9wZXJ0eS5pbmplY3RET01Q cm9wZXJ0eUNvbmZpZyhyKSx5LkRPTVByb3BlcnR5LmluamVjdERPTVByb3Bl cnR5Q29uZmlnKGMpLHkuRE9NUHJvcGVydHkuaW5qZWN0RE9NUHJvcGVydHlD b25maWcoXykseS5FbXB0eUNvbXBvbmVudC5pbmplY3RFbXB0eUNvbXBvbmVu dEZhY3RvcnkoZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBmKGUpfSkseS5VcGRh dGVzLmluamVjdFJlY29uY2lsZVRyYW5zYWN0aW9uKEUpLHkuVXBkYXRlcy5p bmplY3RCYXRjaGluZ1N0cmF0ZWd5KHYpLHkuQ29tcG9uZW50LmluamVjdEVu dmlyb25tZW50KGwpKX12YXIgcj1uKDk2KSxpPW4oOTgpLGE9bigxMDApLHM9 bigxMDIpLHU9bigxMDMpLGM9bigxMDUpLGw9bigxMDcpLHA9bigxMTApLGQ9 big1KSxmPW4oMTEyKSxoPW4oMTIyKSxtPW4oMTIwKSx2PW4oMTI1KSxnPW4o MTI5KSx5PW4oMTMxKSxFPW4oMTM3KSxfPW4oMTQyKSxOPW4oMTQzKSxiPW4o MTQ0KSxDPSExO2UuZXhwb3J0cz17aW5qZWN0Om99fSxmdW5jdGlvbihlLHQs bil7InVzZSBzdHJpY3QiO3ZhciBvPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1i b2wmJlN5bWJvbC5mb3ImJlN5bWJvbC5mb3IoInJlYWN0LmVsZW1lbnQiKXx8 NjAxMDM7ZS5leHBvcnRzPW99LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmlj dCI7ZnVuY3Rpb24gbyhlKXtyLmVucXVldWVFdmVudHMoZSksci5wcm9jZXNz RXZlbnRRdWV1ZSghMSl9dmFyIHI9bigyMSksaT17aGFuZGxlVG9wTGV2ZWw6 ZnVuY3Rpb24oZSx0LG4saSl7byhyLmV4dHJhY3RFdmVudHMoZSx0LG4saSkp fX07ZS5leHBvcnRzPWl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7 ZnVuY3Rpb24gbyhlKXtmb3IoO2UuX2hvc3RQYXJlbnQ7KWU9ZS5faG9zdFBh cmVudDt2YXIgdD1wLmdldE5vZGVGcm9tSW5zdGFuY2UoZSksbj10LnBhcmVu dE5vZGU7cmV0dXJuIHAuZ2V0Q2xvc2VzdEluc3RhbmNlRnJvbU5vZGUobil9 ZnVuY3Rpb24gcihlLHQpe3RoaXMudG9wTGV2ZWxUeXBlPWUsdGhpcy5uYXRp dmVFdmVudD10LHRoaXMuYW5jZXN0b3JzPVtdfWZ1bmN0aW9uIGkoZSl7dmFy IHQ9ZihlLm5hdGl2ZUV2ZW50KSxuPXAuZ2V0Q2xvc2VzdEluc3RhbmNlRnJv bU5vZGUodCkscj1uO2Rve2UuYW5jZXN0b3JzLnB1c2gocikscj1yJiZvKHIp fXdoaWxlKHIpO2Zvcih2YXIgaT0wO2k8ZS5hbmNlc3RvcnMubGVuZ3RoO2kr KyluPWUuYW5jZXN0b3JzW2ldLG0uX2hhbmRsZVRvcExldmVsKGUudG9wTGV2 ZWxUeXBlLG4sZS5uYXRpdmVFdmVudCxmKGUubmF0aXZlRXZlbnQpKX1mdW5j dGlvbiBhKGUpe2UoaCh3aW5kb3cpKX12YXIgcz1uKDQpLHU9big1MiksYz1u KDYpLGw9bigxNCkscD1uKDUpLGQ9bigxMCksZj1uKDQzKSxoPW4oODgpO3Mo ci5wcm90b3R5cGUse2Rlc3RydWN0b3I6ZnVuY3Rpb24oKXt0aGlzLnRvcExl dmVsVHlwZT1udWxsLHRoaXMubmF0aXZlRXZlbnQ9bnVsbCx0aGlzLmFuY2Vz dG9ycy5sZW5ndGg9MH19KSxsLmFkZFBvb2xpbmdUbyhyLGwudHdvQXJndW1l bnRQb29sZXIpO3ZhciBtPXtfZW5hYmxlZDohMCxfaGFuZGxlVG9wTGV2ZWw6 bnVsbCxXSU5ET1dfSEFORExFOmMuY2FuVXNlRE9NP3dpbmRvdzpudWxsLHNl dEhhbmRsZVRvcExldmVsOmZ1bmN0aW9uKGUpe20uX2hhbmRsZVRvcExldmVs PWV9LHNldEVuYWJsZWQ6ZnVuY3Rpb24oZSl7bS5fZW5hYmxlZD0hIWV9LGlz RW5hYmxlZDpmdW5jdGlvbigpe3JldHVybiBtLl9lbmFibGVkfSx0cmFwQnVi YmxlZEV2ZW50OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbj91Lmxpc3Rlbihu LHQsbS5kaXNwYXRjaEV2ZW50LmJpbmQobnVsbCxlKSk6bnVsbH0sdHJhcENh cHR1cmVkRXZlbnQ6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuP3UuY2FwdHVy ZShuLHQsbS5kaXNwYXRjaEV2ZW50LmJpbmQobnVsbCxlKSk6bnVsbH0sbW9u aXRvclNjcm9sbFZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0PWEuYmluZChudWxs LGUpO3UubGlzdGVuKHdpbmRvdywic2Nyb2xsIix0KX0sZGlzcGF0Y2hFdmVu dDpmdW5jdGlvbihlLHQpe2lmKG0uX2VuYWJsZWQpe3ZhciBuPXIuZ2V0UG9v bGVkKGUsdCk7dHJ5e2QuYmF0Y2hlZFVwZGF0ZXMoaSxuKX1maW5hbGx5e3Iu cmVsZWFzZShuKX19fX07ZS5leHBvcnRzPW19LGZ1bmN0aW9uKGUsdCxuKXsi dXNlIHN0cmljdCI7dmFyIG89W10scj17b25Ib3N0T3BlcmF0aW9uOmZ1bmN0 aW9uKGUpe28ucHVzaChlKX0sY2xlYXJIaXN0b3J5OmZ1bmN0aW9uKCl7ci5f cHJldmVudENsZWFyaW5nfHwobz1bXSl9LGdldEhpc3Rvcnk6ZnVuY3Rpb24o KXtyZXR1cm4gb319O2UuZXhwb3J0cz1yfSxmdW5jdGlvbihlLHQsbil7InVz ZSBzdHJpY3QiO3ZhciBvPW4oMTMpLHI9bigyMSksaT1uKDM0KSxhPW4oMzcp LHM9big2MCksdT1uKDI2KSxjPW4oNjIpLGw9bigxMCkscD17Q29tcG9uZW50 OmEuaW5qZWN0aW9uLERPTVByb3BlcnR5Om8uaW5qZWN0aW9uLEVtcHR5Q29t cG9uZW50OnMuaW5qZWN0aW9uLEV2ZW50UGx1Z2luSHViOnIuaW5qZWN0aW9u LEV2ZW50UGx1Z2luVXRpbHM6aS5pbmplY3Rpb24sRXZlbnRFbWl0dGVyOnUu aW5qZWN0aW9uLEhvc3RDb21wb25lbnQ6Yy5pbmplY3Rpb24sVXBkYXRlczps LmluamVjdGlvbn07ZS5leHBvcnRzPXB9LGZ1bmN0aW9uKGUsdCxuKXsidXNl IHN0cmljdCI7KGZ1bmN0aW9uKHQpe3ZhciBvPW4oMik7aWYoInByb2R1Y3Rp b24iIT09dC5lbnYuTk9ERV9FTlYpdmFyIHI9ITEsaT1mdW5jdGlvbigpeyJw cm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZvKCFyLCJzZXRTdGF0ZSgu Li4pOiBDYW5ub3QgY2FsbCBzZXRTdGF0ZSgpIGluc2lkZSBnZXRDaGlsZENv bnRleHQoKSIpfTt2YXIgYT17b25CZWdpblByb2Nlc3NpbmdDaGlsZENvbnRl eHQ6ZnVuY3Rpb24oKXtyPSEwfSxvbkVuZFByb2Nlc3NpbmdDaGlsZENvbnRl eHQ6ZnVuY3Rpb24oKXtyPSExfSxvblNldFN0YXRlOmZ1bmN0aW9uKCl7aSgp fX07ZS5leHBvcnRzPWF9KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxu KXsidXNlIHN0cmljdCI7dmFyIG89bigxNTUpLHI9L1wvPz4vLGk9L148XCFc LVwtLyxhPXtDSEVDS1NVTV9BVFRSX05BTUU6ImRhdGEtcmVhY3QtY2hlY2tz dW0iLGFkZENoZWNrc3VtVG9NYXJrdXA6ZnVuY3Rpb24oZSl7dmFyIHQ9byhl KTtyZXR1cm4gaS50ZXN0KGUpP2U6ZS5yZXBsYWNlKHIsIiAiK2EuQ0hFQ0tT VU1fQVRUUl9OQU1FKyc9IicrdCsnIiQmJyl9LGNhblJldXNlTWFya3VwOmZ1 bmN0aW9uKGUsdCl7dmFyIG49dC5nZXRBdHRyaWJ1dGUoYS5DSEVDS1NVTV9B VFRSX05BTUUpO3JldHVybiBuPW4mJnBhcnNlSW50KG4sMTApLG8oZSk9PT1u fX07ZS5leHBvcnRzPWF9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7 KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG8oZSx0LG4pe3JldHVybnt0eXBlOiJJ TlNFUlRfTUFSS1VQIixjb250ZW50OmUsZnJvbUluZGV4Om51bGwsZnJvbU5v ZGU6bnVsbCx0b0luZGV4Om4sYWZ0ZXJOb2RlOnR9fWZ1bmN0aW9uIHIoZSx0 LG4pe3JldHVybnt0eXBlOiJNT1ZFX0VYSVNUSU5HIixjb250ZW50Om51bGws ZnJvbUluZGV4OmUuX21vdW50SW5kZXgsZnJvbU5vZGU6bS5nZXRIb3N0Tm9k ZShlKSx0b0luZGV4Om4sYWZ0ZXJOb2RlOnR9fWZ1bmN0aW9uIGkoZSx0KXty ZXR1cm57dHlwZToiUkVNT1ZFX05PREUiLGNvbnRlbnQ6bnVsbCxmcm9tSW5k ZXg6ZS5fbW91bnRJbmRleCxmcm9tTm9kZTp0LHRvSW5kZXg6bnVsbCxhZnRl ck5vZGU6bnVsbH19ZnVuY3Rpb24gYShlKXtyZXR1cm57dHlwZToiU0VUX01B UktVUCIsY29udGVudDplLGZyb21JbmRleDpudWxsLGZyb21Ob2RlOm51bGws dG9JbmRleDpudWxsLGFmdGVyTm9kZTpudWxsfX1mdW5jdGlvbiBzKGUpe3Jl dHVybnt0eXBlOiJURVhUX0NPTlRFTlQiLGNvbnRlbnQ6ZSxmcm9tSW5kZXg6 bnVsbCxmcm9tTm9kZTpudWxsLHRvSW5kZXg6bnVsbCxhZnRlck5vZGU6bnVs bH19ZnVuY3Rpb24gdShlLHQpe3JldHVybiB0JiYoZT1lfHxbXSxlLnB1c2go dCkpLGV9ZnVuY3Rpb24gYyhlLHQpe3AucHJvY2Vzc0NoaWxkcmVuVXBkYXRl cyhlLHQpfXZhciBsPW4oMykscD1uKDM3KSxkPW4oMjMpLGY9big4KSxoPW4o MTEpLG09bigxOCksdj1uKDEwNiksZz1uKDkpLHk9bigxNTkpLEU9bigxKSxf PWc7aWYoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYpe3ZhciBOPWZ1 bmN0aW9uKGUpe2lmKCFlLl9kZWJ1Z0lEKXt2YXIgdDsodD1kLmdldChlKSkm JihlPXQpfXJldHVybiBlLl9kZWJ1Z0lEfTtfPWZ1bmN0aW9uKGUpe3ZhciB0 PU4odGhpcyk7MCE9PXQmJmYuZGVidWdUb29sLm9uU2V0Q2hpbGRyZW4odCxl P09iamVjdC5rZXlzKGUpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gZVt0XS5f ZGVidWdJRH0pOltdKX19dmFyIGI9e01peGluOntfcmVjb25jaWxlckluc3Rh bnRpYXRlQ2hpbGRyZW46ZnVuY3Rpb24oZSxuLG8pe2lmKCJwcm9kdWN0aW9u IiE9PXQuZW52Lk5PREVfRU5WKXt2YXIgcj1OKHRoaXMpO2lmKHRoaXMuX2N1 cnJlbnRFbGVtZW50KXRyeXtyZXR1cm4gaC5jdXJyZW50PXRoaXMuX2N1cnJl bnRFbGVtZW50Ll9vd25lcix2Lmluc3RhbnRpYXRlQ2hpbGRyZW4oZSxuLG8s cil9ZmluYWxseXtoLmN1cnJlbnQ9bnVsbH19cmV0dXJuIHYuaW5zdGFudGlh dGVDaGlsZHJlbihlLG4sbyl9LF9yZWNvbmNpbGVyVXBkYXRlQ2hpbGRyZW46 ZnVuY3Rpb24oZSxuLG8scixpLGEpe3ZhciBzLHU9MDtpZigicHJvZHVjdGlv biIhPT10LmVudi5OT0RFX0VOViYmKHU9Tih0aGlzKSx0aGlzLl9jdXJyZW50 RWxlbWVudCkpe3RyeXtoLmN1cnJlbnQ9dGhpcy5fY3VycmVudEVsZW1lbnQu X293bmVyLHM9eShuLHUpfWZpbmFsbHl7aC5jdXJyZW50PW51bGx9cmV0dXJu IHYudXBkYXRlQ2hpbGRyZW4oZSxzLG8scixpLHRoaXMsdGhpcy5faG9zdENv bnRhaW5lckluZm8sYSx1KSxzfXJldHVybiBzPXkobix1KSx2LnVwZGF0ZUNo aWxkcmVuKGUscyxvLHIsaSx0aGlzLHRoaXMuX2hvc3RDb250YWluZXJJbmZv LGEsdSksc30sbW91bnRDaGlsZHJlbjpmdW5jdGlvbihlLG4sbyl7dmFyIHI9 dGhpcy5fcmVjb25jaWxlckluc3RhbnRpYXRlQ2hpbGRyZW4oZSxuLG8pO3Ro aXMuX3JlbmRlcmVkQ2hpbGRyZW49cjt2YXIgaT1bXSxhPTA7Zm9yKHZhciBz IGluIHIpaWYoci5oYXNPd25Qcm9wZXJ0eShzKSl7dmFyIHU9cltzXSxjPTA7 InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJihjPU4odGhpcykpO3Zh ciBsPW0ubW91bnRDb21wb25lbnQodSxuLHRoaXMsdGhpcy5faG9zdENvbnRh aW5lckluZm8sbyxjKTt1Ll9tb3VudEluZGV4PWErKyxpLnB1c2gobCl9cmV0 dXJuInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJl8uY2FsbCh0aGlz LHIpLGl9LHVwZGF0ZVRleHRDb250ZW50OmZ1bmN0aW9uKGUpe3ZhciBuPXRo aXMuX3JlbmRlcmVkQ2hpbGRyZW47di51bm1vdW50Q2hpbGRyZW4obiwhMSk7 Zm9yKHZhciBvIGluIG4pbi5oYXNPd25Qcm9wZXJ0eShvKSYmKCJwcm9kdWN0 aW9uIiE9PXQuZW52Lk5PREVfRU5WP0UoITEsInVwZGF0ZVRleHRDb250ZW50 IGNhbGxlZCBvbiBub24tZW1wdHkgY29tcG9uZW50LiIpOmwoIjExOCIpKTtj KHRoaXMsW3MoZSldKX0sdXBkYXRlTWFya3VwOmZ1bmN0aW9uKGUpe3ZhciBu PXRoaXMuX3JlbmRlcmVkQ2hpbGRyZW47di51bm1vdW50Q2hpbGRyZW4obiwh MSk7Zm9yKHZhciBvIGluIG4pbi5oYXNPd25Qcm9wZXJ0eShvKSYmKCJwcm9k dWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP0UoITEsInVwZGF0ZVRleHRDb250 ZW50IGNhbGxlZCBvbiBub24tZW1wdHkgY29tcG9uZW50LiIpOmwoIjExOCIp KTtjKHRoaXMsW2EoZSldKX0sdXBkYXRlQ2hpbGRyZW46ZnVuY3Rpb24oZSx0 LG4pe3RoaXMuX3VwZGF0ZUNoaWxkcmVuKGUsdCxuKX0sX3VwZGF0ZUNoaWxk cmVuOmZ1bmN0aW9uKGUsbixvKXt2YXIgcj10aGlzLl9yZW5kZXJlZENoaWxk cmVuLGk9e30sYT1bXSxzPXRoaXMuX3JlY29uY2lsZXJVcGRhdGVDaGlsZHJl bihyLGUsYSxpLG4sbyk7aWYoc3x8cil7dmFyIGwscD1udWxsLGQ9MCxmPTAs aD0wLHY9bnVsbDtmb3IobCBpbiBzKWlmKHMuaGFzT3duUHJvcGVydHkobCkp e3ZhciBnPXImJnJbbF0seT1zW2xdO2c9PT15PyhwPXUocCx0aGlzLm1vdmVD aGlsZChnLHYsZCxmKSksZj1NYXRoLm1heChnLl9tb3VudEluZGV4LGYpLGcu X21vdW50SW5kZXg9ZCk6KGcmJihmPU1hdGgubWF4KGcuX21vdW50SW5kZXgs ZikpLHA9dShwLHRoaXMuX21vdW50Q2hpbGRBdEluZGV4KHksYVtoXSx2LGQs bixvKSksaCsrKSxkKyssdj1tLmdldEhvc3ROb2RlKHkpfWZvcihsIGluIGkp aS5oYXNPd25Qcm9wZXJ0eShsKSYmKHA9dShwLHRoaXMuX3VubW91bnRDaGls ZChyW2xdLGlbbF0pKSk7cCYmYyh0aGlzLHApLHRoaXMuX3JlbmRlcmVkQ2hp bGRyZW49cywicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmXy5jYWxs KHRoaXMscyl9fSx1bm1vdW50Q2hpbGRyZW46ZnVuY3Rpb24oZSl7dmFyIHQ9 dGhpcy5fcmVuZGVyZWRDaGlsZHJlbjt2LnVubW91bnRDaGlsZHJlbih0LGUp LHRoaXMuX3JlbmRlcmVkQ2hpbGRyZW49bnVsbH0sbW92ZUNoaWxkOmZ1bmN0 aW9uKGUsdCxuLG8pe2lmKGUuX21vdW50SW5kZXg8bylyZXR1cm4gcihlLHQs bil9LGNyZWF0ZUNoaWxkOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbyhuLHQs ZS5fbW91bnRJbmRleCl9LHJlbW92ZUNoaWxkOmZ1bmN0aW9uKGUsdCl7cmV0 dXJuIGkoZSx0KX0sX21vdW50Q2hpbGRBdEluZGV4OmZ1bmN0aW9uKGUsdCxu LG8scixpKXtyZXR1cm4gZS5fbW91bnRJbmRleD1vLHRoaXMuY3JlYXRlQ2hp bGQoZSxuLHQpfSxfdW5tb3VudENoaWxkOmZ1bmN0aW9uKGUsdCl7dmFyIG49 dGhpcy5yZW1vdmVDaGlsZChlLHQpO3JldHVybiBlLl9tb3VudEluZGV4PW51 bGwsbn19fTtlLmV4cG9ydHM9Yn0pLmNhbGwodCxuKDApKX0sZnVuY3Rpb24o ZSx0LG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7ZnVuY3Rpb24gbyhl KXtyZXR1cm4hKCFlfHwiZnVuY3Rpb24iIT10eXBlb2YgZS5hdHRhY2hSZWZ8 fCJmdW5jdGlvbiIhPXR5cGVvZiBlLmRldGFjaFJlZil9dmFyIHI9bigzKSxp PW4oMSksYT17YWRkQ29tcG9uZW50QXNSZWZUbzpmdW5jdGlvbihlLG4sYSl7 byhhKXx8KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP2koITEsImFk ZENvbXBvbmVudEFzUmVmVG8oLi4uKTogT25seSBhIFJlYWN0T3duZXIgY2Fu IGhhdmUgcmVmcy4gWW91IG1pZ2h0IGJlIGFkZGluZyBhIHJlZiB0byBhIGNv bXBvbmVudCB0aGF0IHdhcyBub3QgY3JlYXRlZCBpbnNpZGUgYSBjb21wb25l bnQncyBgcmVuZGVyYCBtZXRob2QsIG9yIHlvdSBoYXZlIG11bHRpcGxlIGNv cGllcyBvZiBSZWFjdCBsb2FkZWQgKGRldGFpbHM6IGh0dHBzOi8vZmIubWUv cmVhY3QtcmVmcy1tdXN0LWhhdmUtb3duZXIpLiIpOnIoIjExOSIpKSxhLmF0 dGFjaFJlZihuLGUpfSxyZW1vdmVDb21wb25lbnRBc1JlZkZyb206ZnVuY3Rp b24oZSxuLGEpe28oYSl8fCgicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VO Vj9pKCExLCJyZW1vdmVDb21wb25lbnRBc1JlZkZyb20oLi4uKTogT25seSBh IFJlYWN0T3duZXIgY2FuIGhhdmUgcmVmcy4gWW91IG1pZ2h0IGJlIHJlbW92 aW5nIGEgcmVmIHRvIGEgY29tcG9uZW50IHRoYXQgd2FzIG5vdCBjcmVhdGVk IGluc2lkZSBhIGNvbXBvbmVudCdzIGByZW5kZXJgIG1ldGhvZCwgb3IgeW91 IGhhdmUgbXVsdGlwbGUgY29waWVzIG9mIFJlYWN0IGxvYWRlZCAoZGV0YWls czogaHR0cHM6Ly9mYi5tZS9yZWFjdC1yZWZzLW11c3QtaGF2ZS1vd25lciku Iik6cigiMTIwIikpO3ZhciBzPWEuZ2V0UHVibGljSW5zdGFuY2UoKTtzJiZz LnJlZnNbbl09PT1lLmdldFB1YmxpY0luc3RhbmNlKCkmJmEuZGV0YWNoUmVm KG4pfX07ZS5leHBvcnRzPWF9KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUs dCxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe3ZhciBuPXt9OyJwcm9k dWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiYobj17cHJvcDoicHJvcCIsY29u dGV4dDoiY29udGV4dCIsY2hpbGRDb250ZXh0OiJjaGlsZCBjb250ZXh0In0p LGUuZXhwb3J0cz1ufSkuY2FsbCh0LG4oMCkpfSxmdW5jdGlvbihlLHQsbil7 InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtmdW5jdGlvbiBvKGUpe3RoaXMu cmVpbml0aWFsaXplVHJhbnNhY3Rpb24oKSx0aGlzLnJlbmRlclRvU3RhdGlj TWFya3VwPSExLHRoaXMucmVhY3RNb3VudFJlYWR5PWkuZ2V0UG9vbGVkKG51 bGwpLHRoaXMudXNlQ3JlYXRlRWxlbWVudD1lfXZhciByPW4oNCksaT1uKDU2 KSxhPW4oMTQpLHM9bigyNiksdT1uKDYzKSxjPW4oOCksbD1uKDI4KSxwPW4o MzkpLGQ9e2luaXRpYWxpemU6dS5nZXRTZWxlY3Rpb25JbmZvcm1hdGlvbixj bG9zZTp1LnJlc3RvcmVTZWxlY3Rpb259LGY9e2luaXRpYWxpemU6ZnVuY3Rp b24oKXt2YXIgZT1zLmlzRW5hYmxlZCgpO3JldHVybiBzLnNldEVuYWJsZWQo ITEpLGV9LGNsb3NlOmZ1bmN0aW9uKGUpe3Muc2V0RW5hYmxlZChlKX19LGg9 e2luaXRpYWxpemU6ZnVuY3Rpb24oKXt0aGlzLnJlYWN0TW91bnRSZWFkeS5y ZXNldCgpfSxjbG9zZTpmdW5jdGlvbigpe3RoaXMucmVhY3RNb3VudFJlYWR5 Lm5vdGlmeUFsbCgpfX0sbT1bZCxmLGhdOyJwcm9kdWN0aW9uIiE9PXQuZW52 Lk5PREVfRU5WJiZtLnB1c2goe2luaXRpYWxpemU6Yy5kZWJ1Z1Rvb2wub25C ZWdpbkZsdXNoLGNsb3NlOmMuZGVidWdUb29sLm9uRW5kRmx1c2h9KTt2YXIg dj17Z2V0VHJhbnNhY3Rpb25XcmFwcGVyczpmdW5jdGlvbigpe3JldHVybiBt fSxnZXRSZWFjdE1vdW50UmVhZHk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5y ZWFjdE1vdW50UmVhZHl9LGdldFVwZGF0ZVF1ZXVlOmZ1bmN0aW9uKCl7cmV0 dXJuIHB9LGNoZWNrcG9pbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZWFj dE1vdW50UmVhZHkuY2hlY2twb2ludCgpfSxyb2xsYmFjazpmdW5jdGlvbihl KXt0aGlzLnJlYWN0TW91bnRSZWFkeS5yb2xsYmFjayhlKX0sZGVzdHJ1Y3Rv cjpmdW5jdGlvbigpe2kucmVsZWFzZSh0aGlzLnJlYWN0TW91bnRSZWFkeSks dGhpcy5yZWFjdE1vdW50UmVhZHk9bnVsbH19O3Ioby5wcm90b3R5cGUsbCx2 KSxhLmFkZFBvb2xpbmdUbyhvKSxlLmV4cG9ydHM9b30pLmNhbGwodCxuKDAp KX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKGUs dCxuKXsiZnVuY3Rpb24iPT10eXBlb2YgZT9lKHQuZ2V0UHVibGljSW5zdGFu Y2UoKSk6aS5hZGRDb21wb25lbnRBc1JlZlRvKHQsZSxuKX1mdW5jdGlvbiBy KGUsdCxuKXsiZnVuY3Rpb24iPT10eXBlb2YgZT9lKG51bGwpOmkucmVtb3Zl Q29tcG9uZW50QXNSZWZGcm9tKHQsZSxuKX12YXIgaT1uKDEzNSksYT17fTth LmF0dGFjaFJlZnM9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT09dCYmIm9iamVj dCI9PXR5cGVvZiB0KXt2YXIgbj10LnJlZjtudWxsIT1uJiZvKG4sZSx0Ll9v d25lcil9fSxhLnNob3VsZFVwZGF0ZVJlZnM9ZnVuY3Rpb24oZSx0KXt2YXIg bj1udWxsLG89bnVsbDtudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYo bj1lLnJlZixvPWUuX293bmVyKTt2YXIgcj1udWxsLGk9bnVsbDtyZXR1cm4g bnVsbCE9PXQmJiJvYmplY3QiPT10eXBlb2YgdCYmKHI9dC5yZWYsaT10Ll9v d25lciksbiE9PXJ8fCJzdHJpbmciPT10eXBlb2YgciYmaSE9PW99LGEuZGV0 YWNoUmVmcz1mdW5jdGlvbihlLHQpe2lmKG51bGwhPT10JiYib2JqZWN0Ij09 dHlwZW9mIHQpe3ZhciBuPXQucmVmO251bGwhPW4mJnIobixlLHQuX293bmVy KX19LGUuZXhwb3J0cz1hfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3Qi OyhmdW5jdGlvbih0KXtmdW5jdGlvbiBvKGUpe3RoaXMucmVpbml0aWFsaXpl VHJhbnNhY3Rpb24oKSx0aGlzLnJlbmRlclRvU3RhdGljTWFya3VwPWUsdGhp cy51c2VDcmVhdGVFbGVtZW50PSExLHRoaXMudXBkYXRlUXVldWU9bmV3IHUo dGhpcyl9dmFyIHI9big0KSxpPW4oMTQpLGE9bigyOCkscz1uKDgpLHU9bigx NDApLGM9W107InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJmMucHVz aCh7aW5pdGlhbGl6ZTpzLmRlYnVnVG9vbC5vbkJlZ2luRmx1c2gsY2xvc2U6 cy5kZWJ1Z1Rvb2wub25FbmRGbHVzaH0pO3ZhciBsPXtlbnF1ZXVlOmZ1bmN0 aW9uKCl7fX0scD17Z2V0VHJhbnNhY3Rpb25XcmFwcGVyczpmdW5jdGlvbigp e3JldHVybiBjfSxnZXRSZWFjdE1vdW50UmVhZHk6ZnVuY3Rpb24oKXtyZXR1 cm4gbH0sZ2V0VXBkYXRlUXVldWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51 cGRhdGVRdWV1ZX0sZGVzdHJ1Y3RvcjpmdW5jdGlvbigpe30sY2hlY2twb2lu dDpmdW5jdGlvbigpe30scm9sbGJhY2s6ZnVuY3Rpb24oKXt9fTtyKG8ucHJv dG90eXBlLGEscCksaS5hZGRQb29saW5nVG8obyksZS5leHBvcnRzPW99KS5j YWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KGZ1 bmN0aW9uKHQpe2Z1bmN0aW9uIG8oZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0 KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFz IGEgZnVuY3Rpb24iKX1mdW5jdGlvbiByKGUsbil7aWYoInByb2R1Y3Rpb24i IT09dC5lbnYuTk9ERV9FTlYpe3ZhciBvPWUuY29uc3RydWN0b3I7InByb2R1 Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJmEoITEsIiVzKC4uLik6IENhbiBv bmx5IHVwZGF0ZSBhIG1vdW50aW5nIGNvbXBvbmVudC4gVGhpcyB1c3VhbGx5 IG1lYW5zIHlvdSBjYWxsZWQgJXMoKSBvdXRzaWRlIGNvbXBvbmVudFdpbGxN b3VudCgpIG9uIHRoZSBzZXJ2ZXIuIFRoaXMgaXMgYSBuby1vcC4gUGxlYXNl IGNoZWNrIHRoZSBjb2RlIGZvciB0aGUgJXMgY29tcG9uZW50LiIsbixuLG8m JihvLmRpc3BsYXlOYW1lfHxvLm5hbWUpfHwiUmVhY3RDbGFzcyIpfX12YXIg aT1uKDM5KSxhPW4oMikscz1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCl7byh0 aGlzLGUpLHRoaXMudHJhbnNhY3Rpb249dH1yZXR1cm4gZS5wcm90b3R5cGUu aXNNb3VudGVkPWZ1bmN0aW9uKGUpe3JldHVybiExfSxlLnByb3RvdHlwZS5l bnF1ZXVlQ2FsbGJhY2s9ZnVuY3Rpb24oZSx0LG4pe3RoaXMudHJhbnNhY3Rp b24uaXNJblRyYW5zYWN0aW9uKCkmJmkuZW5xdWV1ZUNhbGxiYWNrKGUsdCxu KX0sZS5wcm90b3R5cGUuZW5xdWV1ZUZvcmNlVXBkYXRlPWZ1bmN0aW9uKGUp e3RoaXMudHJhbnNhY3Rpb24uaXNJblRyYW5zYWN0aW9uKCk/aS5lbnF1ZXVl Rm9yY2VVcGRhdGUoZSk6cihlLCJmb3JjZVVwZGF0ZSIpfSxlLnByb3RvdHlw ZS5lbnF1ZXVlUmVwbGFjZVN0YXRlPWZ1bmN0aW9uKGUsdCl7dGhpcy50cmFu c2FjdGlvbi5pc0luVHJhbnNhY3Rpb24oKT9pLmVucXVldWVSZXBsYWNlU3Rh dGUoZSx0KTpyKGUsInJlcGxhY2VTdGF0ZSIpfSxlLnByb3RvdHlwZS5lbnF1 ZXVlU2V0U3RhdGU9ZnVuY3Rpb24oZSx0KXt0aGlzLnRyYW5zYWN0aW9uLmlz SW5UcmFuc2FjdGlvbigpP2kuZW5xdWV1ZVNldFN0YXRlKGUsdCk6cihlLCJz ZXRTdGF0ZSIpfSxlfSgpO2UuZXhwb3J0cz1zfSkuY2FsbCh0LG4oMCkpfSxm dW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz0iMTUuNC4y In0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgbz17eGxpbms6 Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3 dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIn0scj17YWNjZW50SGVpZ2h0 OiJhY2NlbnQtaGVpZ2h0IixhY2N1bXVsYXRlOjAsYWRkaXRpdmU6MCxhbGln bm1lbnRCYXNlbGluZToiYWxpZ25tZW50LWJhc2VsaW5lIixhbGxvd1Jlb3Jk ZXI6ImFsbG93UmVvcmRlciIsYWxwaGFiZXRpYzowLGFtcGxpdHVkZTowLGFy YWJpY0Zvcm06ImFyYWJpYy1mb3JtIixhc2NlbnQ6MCxhdHRyaWJ1dGVOYW1l OiJhdHRyaWJ1dGVOYW1lIixhdHRyaWJ1dGVUeXBlOiJhdHRyaWJ1dGVUeXBl IixhdXRvUmV2ZXJzZToiYXV0b1JldmVyc2UiLGF6aW11dGg6MCxiYXNlRnJl cXVlbmN5OiJiYXNlRnJlcXVlbmN5IixiYXNlUHJvZmlsZToiYmFzZVByb2Zp bGUiLGJhc2VsaW5lU2hpZnQ6ImJhc2VsaW5lLXNoaWZ0IixiYm94OjAsYmVn aW46MCxiaWFzOjAsYnk6MCxjYWxjTW9kZToiY2FsY01vZGUiLGNhcEhlaWdo dDoiY2FwLWhlaWdodCIsY2xpcDowLGNsaXBQYXRoOiJjbGlwLXBhdGgiLGNs aXBSdWxlOiJjbGlwLXJ1bGUiLGNsaXBQYXRoVW5pdHM6ImNsaXBQYXRoVW5p dHMiLGNvbG9ySW50ZXJwb2xhdGlvbjoiY29sb3ItaW50ZXJwb2xhdGlvbiIs Y29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyczoiY29sb3ItaW50ZXJwb2xhdGlv bi1maWx0ZXJzIixjb2xvclByb2ZpbGU6ImNvbG9yLXByb2ZpbGUiLGNvbG9y UmVuZGVyaW5nOiJjb2xvci1yZW5kZXJpbmciLGNvbnRlbnRTY3JpcHRUeXBl OiJjb250ZW50U2NyaXB0VHlwZSIsY29udGVudFN0eWxlVHlwZToiY29udGVu dFN0eWxlVHlwZSIsY3Vyc29yOjAsY3g6MCxjeTowLGQ6MCxkZWNlbGVyYXRl OjAsZGVzY2VudDowLGRpZmZ1c2VDb25zdGFudDoiZGlmZnVzZUNvbnN0YW50 IixkaXJlY3Rpb246MCxkaXNwbGF5OjAsZGl2aXNvcjowLGRvbWluYW50QmFz ZWxpbmU6ImRvbWluYW50LWJhc2VsaW5lIixkdXI6MCxkeDowLGR5OjAsZWRn ZU1vZGU6ImVkZ2VNb2RlIixlbGV2YXRpb246MCxlbmFibGVCYWNrZ3JvdW5k OiJlbmFibGUtYmFja2dyb3VuZCIsZW5kOjAsZXhwb25lbnQ6MCxleHRlcm5h bFJlc291cmNlc1JlcXVpcmVkOiJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVk IixmaWxsOjAsZmlsbE9wYWNpdHk6ImZpbGwtb3BhY2l0eSIsZmlsbFJ1bGU6 ImZpbGwtcnVsZSIsZmlsdGVyOjAsZmlsdGVyUmVzOiJmaWx0ZXJSZXMiLGZp bHRlclVuaXRzOiJmaWx0ZXJVbml0cyIsZmxvb2RDb2xvcjoiZmxvb2QtY29s b3IiLGZsb29kT3BhY2l0eToiZmxvb2Qtb3BhY2l0eSIsZm9jdXNhYmxlOjAs Zm9udEZhbWlseToiZm9udC1mYW1pbHkiLGZvbnRTaXplOiJmb250LXNpemUi LGZvbnRTaXplQWRqdXN0OiJmb250LXNpemUtYWRqdXN0Iixmb250U3RyZXRj aDoiZm9udC1zdHJldGNoIixmb250U3R5bGU6ImZvbnQtc3R5bGUiLGZvbnRW YXJpYW50OiJmb250LXZhcmlhbnQiLGZvbnRXZWlnaHQ6ImZvbnQtd2VpZ2h0 Iixmb3JtYXQ6MCxmcm9tOjAsZng6MCxmeTowLGcxOjAsZzI6MCxnbHlwaE5h bWU6ImdseXBoLW5hbWUiLGdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsOiJn bHlwaC1vcmllbnRhdGlvbi1ob3Jpem9udGFsIixnbHlwaE9yaWVudGF0aW9u VmVydGljYWw6ImdseXBoLW9yaWVudGF0aW9uLXZlcnRpY2FsIixnbHlwaFJl ZjoiZ2x5cGhSZWYiLGdyYWRpZW50VHJhbnNmb3JtOiJncmFkaWVudFRyYW5z Zm9ybSIsZ3JhZGllbnRVbml0czoiZ3JhZGllbnRVbml0cyIsaGFuZ2luZzow LGhvcml6QWR2WDoiaG9yaXotYWR2LXgiLGhvcml6T3JpZ2luWDoiaG9yaXot b3JpZ2luLXgiLGlkZW9ncmFwaGljOjAsaW1hZ2VSZW5kZXJpbmc6ImltYWdl LXJlbmRlcmluZyIsaW46MCxpbjI6MCxpbnRlcmNlcHQ6MCxrOjAsazE6MCxr MjowLGszOjAsazQ6MCxrZXJuZWxNYXRyaXg6Imtlcm5lbE1hdHJpeCIsa2Vy bmVsVW5pdExlbmd0aDoia2VybmVsVW5pdExlbmd0aCIsa2VybmluZzowLGtl eVBvaW50czoia2V5UG9pbnRzIixrZXlTcGxpbmVzOiJrZXlTcGxpbmVzIixr ZXlUaW1lczoia2V5VGltZXMiLGxlbmd0aEFkanVzdDoibGVuZ3RoQWRqdXN0 IixsZXR0ZXJTcGFjaW5nOiJsZXR0ZXItc3BhY2luZyIsbGlnaHRpbmdDb2xv cjoibGlnaHRpbmctY29sb3IiLGxpbWl0aW5nQ29uZUFuZ2xlOiJsaW1pdGlu Z0NvbmVBbmdsZSIsbG9jYWw6MCxtYXJrZXJFbmQ6Im1hcmtlci1lbmQiLG1h cmtlck1pZDoibWFya2VyLW1pZCIsbWFya2VyU3RhcnQ6Im1hcmtlci1zdGFy dCIsbWFya2VySGVpZ2h0OiJtYXJrZXJIZWlnaHQiLG1hcmtlclVuaXRzOiJt YXJrZXJVbml0cyIsbWFya2VyV2lkdGg6Im1hcmtlcldpZHRoIixtYXNrOjAs bWFza0NvbnRlbnRVbml0czoibWFza0NvbnRlbnRVbml0cyIsbWFza1VuaXRz OiJtYXNrVW5pdHMiLG1hdGhlbWF0aWNhbDowLG1vZGU6MCxudW1PY3RhdmVz OiJudW1PY3RhdmVzIixvZmZzZXQ6MCxvcGFjaXR5OjAsb3BlcmF0b3I6MCxv cmRlcjowLG9yaWVudDowLG9yaWVudGF0aW9uOjAsb3JpZ2luOjAsb3ZlcmZs b3c6MCxvdmVybGluZVBvc2l0aW9uOiJvdmVybGluZS1wb3NpdGlvbiIsb3Zl cmxpbmVUaGlja25lc3M6Im92ZXJsaW5lLXRoaWNrbmVzcyIscGFpbnRPcmRl cjoicGFpbnQtb3JkZXIiLHBhbm9zZTE6InBhbm9zZS0xIixwYXRoTGVuZ3Ro OiJwYXRoTGVuZ3RoIixwYXR0ZXJuQ29udGVudFVuaXRzOiJwYXR0ZXJuQ29u dGVudFVuaXRzIixwYXR0ZXJuVHJhbnNmb3JtOiJwYXR0ZXJuVHJhbnNmb3Jt IixwYXR0ZXJuVW5pdHM6InBhdHRlcm5Vbml0cyIscG9pbnRlckV2ZW50czoi cG9pbnRlci1ldmVudHMiLHBvaW50czowLHBvaW50c0F0WDoicG9pbnRzQXRY Iixwb2ludHNBdFk6InBvaW50c0F0WSIscG9pbnRzQXRaOiJwb2ludHNBdFoi LHByZXNlcnZlQWxwaGE6InByZXNlcnZlQWxwaGEiLHByZXNlcnZlQXNwZWN0 UmF0aW86InByZXNlcnZlQXNwZWN0UmF0aW8iLHByaW1pdGl2ZVVuaXRzOiJw cmltaXRpdmVVbml0cyIscjowLHJhZGl1czowLHJlZlg6InJlZlgiLHJlZlk6 InJlZlkiLHJlbmRlcmluZ0ludGVudDoicmVuZGVyaW5nLWludGVudCIscmVw ZWF0Q291bnQ6InJlcGVhdENvdW50IixyZXBlYXREdXI6InJlcGVhdER1ciIs cmVxdWlyZWRFeHRlbnNpb25zOiJyZXF1aXJlZEV4dGVuc2lvbnMiLHJlcXVp cmVkRmVhdHVyZXM6InJlcXVpcmVkRmVhdHVyZXMiLHJlc3RhcnQ6MCxyZXN1 bHQ6MCxyb3RhdGU6MCxyeDowLHJ5OjAsc2NhbGU6MCxzZWVkOjAsc2hhcGVS ZW5kZXJpbmc6InNoYXBlLXJlbmRlcmluZyIsc2xvcGU6MCxzcGFjaW5nOjAs c3BlY3VsYXJDb25zdGFudDoic3BlY3VsYXJDb25zdGFudCIsc3BlY3VsYXJF eHBvbmVudDoic3BlY3VsYXJFeHBvbmVudCIsc3BlZWQ6MCxzcHJlYWRNZXRo b2Q6InNwcmVhZE1ldGhvZCIsc3RhcnRPZmZzZXQ6InN0YXJ0T2Zmc2V0Iixz dGREZXZpYXRpb246InN0ZERldmlhdGlvbiIsc3RlbWg6MCxzdGVtdjowLHN0 aXRjaFRpbGVzOiJzdGl0Y2hUaWxlcyIsc3RvcENvbG9yOiJzdG9wLWNvbG9y IixzdG9wT3BhY2l0eToic3RvcC1vcGFjaXR5IixzdHJpa2V0aHJvdWdoUG9z aXRpb246InN0cmlrZXRocm91Z2gtcG9zaXRpb24iLHN0cmlrZXRocm91Z2hU aGlja25lc3M6InN0cmlrZXRocm91Z2gtdGhpY2tuZXNzIixzdHJpbmc6MCxz dHJva2U6MCxzdHJva2VEYXNoYXJyYXk6InN0cm9rZS1kYXNoYXJyYXkiLHN0 cm9rZURhc2hvZmZzZXQ6InN0cm9rZS1kYXNob2Zmc2V0IixzdHJva2VMaW5l Y2FwOiJzdHJva2UtbGluZWNhcCIsc3Ryb2tlTGluZWpvaW46InN0cm9rZS1s aW5lam9pbiIsc3Ryb2tlTWl0ZXJsaW1pdDoic3Ryb2tlLW1pdGVybGltaXQi LHN0cm9rZU9wYWNpdHk6InN0cm9rZS1vcGFjaXR5IixzdHJva2VXaWR0aDoi c3Ryb2tlLXdpZHRoIixzdXJmYWNlU2NhbGU6InN1cmZhY2VTY2FsZSIsc3lz dGVtTGFuZ3VhZ2U6InN5c3RlbUxhbmd1YWdlIix0YWJsZVZhbHVlczoidGFi bGVWYWx1ZXMiLHRhcmdldFg6InRhcmdldFgiLHRhcmdldFk6InRhcmdldFki LHRleHRBbmNob3I6InRleHQtYW5jaG9yIix0ZXh0RGVjb3JhdGlvbjoidGV4 dC1kZWNvcmF0aW9uIix0ZXh0UmVuZGVyaW5nOiJ0ZXh0LXJlbmRlcmluZyIs dGV4dExlbmd0aDoidGV4dExlbmd0aCIsdG86MCx0cmFuc2Zvcm06MCx1MTow LHUyOjAsdW5kZXJsaW5lUG9zaXRpb246InVuZGVybGluZS1wb3NpdGlvbiIs dW5kZXJsaW5lVGhpY2tuZXNzOiJ1bmRlcmxpbmUtdGhpY2tuZXNzIix1bmlj b2RlOjAsdW5pY29kZUJpZGk6InVuaWNvZGUtYmlkaSIsdW5pY29kZVJhbmdl OiJ1bmljb2RlLXJhbmdlIix1bml0c1BlckVtOiJ1bml0cy1wZXItZW0iLHZB bHBoYWJldGljOiJ2LWFscGhhYmV0aWMiLHZIYW5naW5nOiJ2LWhhbmdpbmci LHZJZGVvZ3JhcGhpYzoidi1pZGVvZ3JhcGhpYyIsdk1hdGhlbWF0aWNhbDoi di1tYXRoZW1hdGljYWwiLHZhbHVlczowLHZlY3RvckVmZmVjdDoidmVjdG9y LWVmZmVjdCIsdmVyc2lvbjowLHZlcnRBZHZZOiJ2ZXJ0LWFkdi15Iix2ZXJ0 T3JpZ2luWDoidmVydC1vcmlnaW4teCIsdmVydE9yaWdpblk6InZlcnQtb3Jp Z2luLXkiLHZpZXdCb3g6InZpZXdCb3giLHZpZXdUYXJnZXQ6InZpZXdUYXJn ZXQiLHZpc2liaWxpdHk6MCx3aWR0aHM6MCx3b3JkU3BhY2luZzoid29yZC1z cGFjaW5nIix3cml0aW5nTW9kZToid3JpdGluZy1tb2RlIix4OjAseEhlaWdo dDoieC1oZWlnaHQiLHgxOjAseDI6MCx4Q2hhbm5lbFNlbGVjdG9yOiJ4Q2hh bm5lbFNlbGVjdG9yIix4bGlua0FjdHVhdGU6InhsaW5rOmFjdHVhdGUiLHhs aW5rQXJjcm9sZToieGxpbms6YXJjcm9sZSIseGxpbmtIcmVmOiJ4bGluazpo cmVmIix4bGlua1JvbGU6InhsaW5rOnJvbGUiLHhsaW5rU2hvdzoieGxpbms6 c2hvdyIseGxpbmtUaXRsZToieGxpbms6dGl0bGUiLHhsaW5rVHlwZToieGxp bms6dHlwZSIseG1sQmFzZToieG1sOmJhc2UiLHhtbG5zOjAseG1sbnNYbGlu azoieG1sbnM6eGxpbmsiLHhtbExhbmc6InhtbDpsYW5nIix4bWxTcGFjZToi eG1sOnNwYWNlIix5OjAseTE6MCx5MjowLHlDaGFubmVsU2VsZWN0b3I6InlD aGFubmVsU2VsZWN0b3IiLHo6MCx6b29tQW5kUGFuOiJ6b29tQW5kUGFuIn0s aT17UHJvcGVydGllczp7fSxET01BdHRyaWJ1dGVOYW1lc3BhY2VzOnt4bGlu a0FjdHVhdGU6by54bGluayx4bGlua0FyY3JvbGU6by54bGluayx4bGlua0hy ZWY6by54bGluayx4bGlua1JvbGU6by54bGluayx4bGlua1Nob3c6by54bGlu ayx4bGlua1RpdGxlOm8ueGxpbmsseGxpbmtUeXBlOm8ueGxpbmsseG1sQmFz ZTpvLnhtbCx4bWxMYW5nOm8ueG1sLHhtbFNwYWNlOm8ueG1sfSxET01BdHRy aWJ1dGVOYW1lczp7fX07T2JqZWN0LmtleXMocikuZm9yRWFjaChmdW5jdGlv bihlKXtpLlByb3BlcnRpZXNbZV09MCxyW2VdJiYoaS5ET01BdHRyaWJ1dGVO YW1lc1tlXT1yW2VdKX0pLGUuZXhwb3J0cz1pfSxmdW5jdGlvbihlLHQsbil7 InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSl7aWYoInNlbGVjdGlvblN0YXJ0 ImluIGUmJnUuaGFzU2VsZWN0aW9uQ2FwYWJpbGl0aWVzKGUpKXJldHVybntz dGFydDplLnNlbGVjdGlvblN0YXJ0LGVuZDplLnNlbGVjdGlvbkVuZH07aWYo d2luZG93LmdldFNlbGVjdGlvbil7dmFyIHQ9d2luZG93LmdldFNlbGVjdGlv bigpO3JldHVybnthbmNob3JOb2RlOnQuYW5jaG9yTm9kZSxhbmNob3JPZmZz ZXQ6dC5hbmNob3JPZmZzZXQsZm9jdXNOb2RlOnQuZm9jdXNOb2RlLGZvY3Vz T2Zmc2V0OnQuZm9jdXNPZmZzZXR9fWlmKGRvY3VtZW50LnNlbGVjdGlvbil7 dmFyIG49ZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCk7cmV0dXJu e3BhcmVudEVsZW1lbnQ6bi5wYXJlbnRFbGVtZW50KCksdGV4dDpuLnRleHQs dG9wOm4uYm91bmRpbmdUb3AsbGVmdDpuLmJvdW5kaW5nTGVmdH19fWZ1bmN0 aW9uIHIoZSx0KXtpZih5fHxudWxsPT1tfHxtIT09bCgpKXJldHVybiBudWxs O3ZhciBuPW8obSk7aWYoIWd8fCFkKGcsbikpe2c9bjt2YXIgcj1jLmdldFBv b2xlZChoLnNlbGVjdCx2LGUsdCk7cmV0dXJuIHIudHlwZT0ic2VsZWN0Iixy LnRhcmdldD1tLGkuYWNjdW11bGF0ZVR3b1BoYXNlRGlzcGF0Y2hlcyhyKSxy fXJldHVybiBudWxsfXZhciBpPW4oMjIpLGE9big2KSxzPW4oNSksdT1uKDYz KSxjPW4oMTIpLGw9big1NCkscD1uKDczKSxkPW4oMzEpLGY9YS5jYW5Vc2VE T00mJiJkb2N1bWVudE1vZGUiaW4gZG9jdW1lbnQmJmRvY3VtZW50LmRvY3Vt ZW50TW9kZTw9MTEsaD17c2VsZWN0OntwaGFzZWRSZWdpc3RyYXRpb25OYW1l czp7YnViYmxlZDoib25TZWxlY3QiLGNhcHR1cmVkOiJvblNlbGVjdENhcHR1 cmUifSxkZXBlbmRlbmNpZXM6WyJ0b3BCbHVyIiwidG9wQ29udGV4dE1lbnUi LCJ0b3BGb2N1cyIsInRvcEtleURvd24iLCJ0b3BLZXlVcCIsInRvcE1vdXNl RG93biIsInRvcE1vdXNlVXAiLCJ0b3BTZWxlY3Rpb25DaGFuZ2UiXX19LG09 bnVsbCx2PW51bGwsZz1udWxsLHk9ITEsRT0hMSxfPXtldmVudFR5cGVzOmgs ZXh0cmFjdEV2ZW50czpmdW5jdGlvbihlLHQsbixvKXtpZighRSlyZXR1cm4g bnVsbDt2YXIgaT10P3MuZ2V0Tm9kZUZyb21JbnN0YW5jZSh0KTp3aW5kb3c7 c3dpdGNoKGUpe2Nhc2UidG9wRm9jdXMiOihwKGkpfHwidHJ1ZSI9PT1pLmNv bnRlbnRFZGl0YWJsZSkmJihtPWksdj10LGc9bnVsbCk7YnJlYWs7Y2FzZSJ0 b3BCbHVyIjptPW51bGwsdj1udWxsLGc9bnVsbDticmVhaztjYXNlInRvcE1v dXNlRG93biI6eT0hMDticmVhaztjYXNlInRvcENvbnRleHRNZW51IjpjYXNl InRvcE1vdXNlVXAiOnJldHVybiB5PSExLHIobixvKTtjYXNlInRvcFNlbGVj dGlvbkNoYW5nZSI6aWYoZilicmVhaztjYXNlInRvcEtleURvd24iOmNhc2Ui dG9wS2V5VXAiOnJldHVybiByKG4sbyl9cmV0dXJuIG51bGx9LGRpZFB1dExp c3RlbmVyOmZ1bmN0aW9uKGUsdCxuKXsib25TZWxlY3QiPT09dCYmKEU9ITAp fX07ZS5leHBvcnRzPV99LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7 KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG8oZSl7cmV0dXJuIi4iK2UuX3Jvb3RO b2RlSUR9ZnVuY3Rpb24gcihlKXtyZXR1cm4iYnV0dG9uIj09PWV8fCJpbnB1 dCI9PT1lfHwic2VsZWN0Ij09PWV8fCJ0ZXh0YXJlYSI9PT1lfXZhciBpPW4o MyksYT1uKDUyKSxzPW4oMjIpLHU9big1KSxjPW4oMTQ1KSxsPW4oMTQ2KSxw PW4oMTIpLGQ9bigxNDkpLGY9bigxNTEpLGg9bigyNyksbT1uKDE0OCksdj1u KDE1MiksZz1uKDE1MykseT1uKDI0KSxFPW4oMTU0KSxfPW4oOSksTj1uKDQx KSxiPW4oMSksQz17fSxEPXt9O1siYWJvcnQiLCJhbmltYXRpb25FbmQiLCJh bmltYXRpb25JdGVyYXRpb24iLCJhbmltYXRpb25TdGFydCIsImJsdXIiLCJj YW5QbGF5IiwiY2FuUGxheVRocm91Z2giLCJjbGljayIsImNvbnRleHRNZW51 IiwiY29weSIsImN1dCIsImRvdWJsZUNsaWNrIiwiZHJhZyIsImRyYWdFbmQi LCJkcmFnRW50ZXIiLCJkcmFnRXhpdCIsImRyYWdMZWF2ZSIsImRyYWdPdmVy IiwiZHJhZ1N0YXJ0IiwiZHJvcCIsImR1cmF0aW9uQ2hhbmdlIiwiZW1wdGll ZCIsImVuY3J5cHRlZCIsImVuZGVkIiwiZXJyb3IiLCJmb2N1cyIsImlucHV0 IiwiaW52YWxpZCIsImtleURvd24iLCJrZXlQcmVzcyIsImtleVVwIiwibG9h ZCIsImxvYWRlZERhdGEiLCJsb2FkZWRNZXRhZGF0YSIsImxvYWRTdGFydCIs Im1vdXNlRG93biIsIm1vdXNlTW92ZSIsIm1vdXNlT3V0IiwibW91c2VPdmVy IiwibW91c2VVcCIsInBhc3RlIiwicGF1c2UiLCJwbGF5IiwicGxheWluZyIs InByb2dyZXNzIiwicmF0ZUNoYW5nZSIsInJlc2V0Iiwic2Nyb2xsIiwic2Vl a2VkIiwic2Vla2luZyIsInN0YWxsZWQiLCJzdWJtaXQiLCJzdXNwZW5kIiwi dGltZVVwZGF0ZSIsInRvdWNoQ2FuY2VsIiwidG91Y2hFbmQiLCJ0b3VjaE1v dmUiLCJ0b3VjaFN0YXJ0IiwidHJhbnNpdGlvbkVuZCIsInZvbHVtZUNoYW5n ZSIsIndhaXRpbmciLCJ3aGVlbCJdLmZvckVhY2goZnVuY3Rpb24oZSl7dmFy IHQ9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSksbj0ib24iK3Qsbz0i dG9wIit0LHI9e3BoYXNlZFJlZ2lzdHJhdGlvbk5hbWVzOntidWJibGVkOm4s Y2FwdHVyZWQ6bisiQ2FwdHVyZSJ9LGRlcGVuZGVuY2llczpbb119O0NbZV09 cixEW29dPXJ9KTt2YXIgTz17fSx3PXtldmVudFR5cGVzOkMsZXh0cmFjdEV2 ZW50czpmdW5jdGlvbihlLG4sbyxyKXt2YXIgYT1EW2VdO2lmKCFhKXJldHVy biBudWxsO3ZhciB1O3N3aXRjaChlKXtjYXNlInRvcEFib3J0IjpjYXNlInRv cENhblBsYXkiOmNhc2UidG9wQ2FuUGxheVRocm91Z2giOmNhc2UidG9wRHVy YXRpb25DaGFuZ2UiOmNhc2UidG9wRW1wdGllZCI6Y2FzZSJ0b3BFbmNyeXB0 ZWQiOmNhc2UidG9wRW5kZWQiOmNhc2UidG9wRXJyb3IiOmNhc2UidG9wSW5w dXQiOmNhc2UidG9wSW52YWxpZCI6Y2FzZSJ0b3BMb2FkIjpjYXNlInRvcExv YWRlZERhdGEiOmNhc2UidG9wTG9hZGVkTWV0YWRhdGEiOmNhc2UidG9wTG9h ZFN0YXJ0IjpjYXNlInRvcFBhdXNlIjpjYXNlInRvcFBsYXkiOmNhc2UidG9w UGxheWluZyI6Y2FzZSJ0b3BQcm9ncmVzcyI6Y2FzZSJ0b3BSYXRlQ2hhbmdl IjpjYXNlInRvcFJlc2V0IjpjYXNlInRvcFNlZWtlZCI6Y2FzZSJ0b3BTZWVr aW5nIjpjYXNlInRvcFN0YWxsZWQiOmNhc2UidG9wU3VibWl0IjpjYXNlInRv cFN1c3BlbmQiOmNhc2UidG9wVGltZVVwZGF0ZSI6Y2FzZSJ0b3BWb2x1bWVD aGFuZ2UiOmNhc2UidG9wV2FpdGluZyI6dT1wO2JyZWFrO2Nhc2UidG9wS2V5 UHJlc3MiOmlmKDA9PT1OKG8pKXJldHVybiBudWxsO2Nhc2UidG9wS2V5RG93 biI6Y2FzZSJ0b3BLZXlVcCI6dT1mO2JyZWFrO2Nhc2UidG9wQmx1ciI6Y2Fz ZSJ0b3BGb2N1cyI6dT1kO2JyZWFrO2Nhc2UidG9wQ2xpY2siOmlmKDI9PT1v LmJ1dHRvbilyZXR1cm4gbnVsbDtjYXNlInRvcERvdWJsZUNsaWNrIjpjYXNl InRvcE1vdXNlRG93biI6Y2FzZSJ0b3BNb3VzZU1vdmUiOmNhc2UidG9wTW91 c2VVcCI6Y2FzZSJ0b3BNb3VzZU91dCI6Y2FzZSJ0b3BNb3VzZU92ZXIiOmNh c2UidG9wQ29udGV4dE1lbnUiOnU9aDticmVhaztjYXNlInRvcERyYWciOmNh c2UidG9wRHJhZ0VuZCI6Y2FzZSJ0b3BEcmFnRW50ZXIiOmNhc2UidG9wRHJh Z0V4aXQiOmNhc2UidG9wRHJhZ0xlYXZlIjpjYXNlInRvcERyYWdPdmVyIjpj YXNlInRvcERyYWdTdGFydCI6Y2FzZSJ0b3BEcm9wIjp1PW07YnJlYWs7Y2Fz ZSJ0b3BUb3VjaENhbmNlbCI6Y2FzZSJ0b3BUb3VjaEVuZCI6Y2FzZSJ0b3BU b3VjaE1vdmUiOmNhc2UidG9wVG91Y2hTdGFydCI6dT12O2JyZWFrO2Nhc2Ui dG9wQW5pbWF0aW9uRW5kIjpjYXNlInRvcEFuaW1hdGlvbkl0ZXJhdGlvbiI6 Y2FzZSJ0b3BBbmltYXRpb25TdGFydCI6dT1jO2JyZWFrO2Nhc2UidG9wVHJh bnNpdGlvbkVuZCI6dT1nO2JyZWFrO2Nhc2UidG9wU2Nyb2xsIjp1PXk7YnJl YWs7Y2FzZSJ0b3BXaGVlbCI6dT1FO2JyZWFrO2Nhc2UidG9wQ29weSI6Y2Fz ZSJ0b3BDdXQiOmNhc2UidG9wUGFzdGUiOnU9bH11fHwoInByb2R1Y3Rpb24i IT09dC5lbnYuTk9ERV9FTlY/YighMSwiU2ltcGxlRXZlbnRQbHVnaW46IFVu aGFuZGxlZCBldmVudCB0eXBlLCBgJXNgLiIsZSk6aSgiODYiLGUpKTt2YXIg Xz11LmdldFBvb2xlZChhLG4sbyxyKTtyZXR1cm4gcy5hY2N1bXVsYXRlVHdv UGhhc2VEaXNwYXRjaGVzKF8pLF99LGRpZFB1dExpc3RlbmVyOmZ1bmN0aW9u KGUsdCxuKXtpZigib25DbGljayI9PT10JiYhcihlLl90YWcpKXt2YXIgaT1v KGUpLHM9dS5nZXROb2RlRnJvbUluc3RhbmNlKGUpO09baV18fChPW2ldPWEu bGlzdGVuKHMsImNsaWNrIixfKSl9fSx3aWxsRGVsZXRlTGlzdGVuZXI6ZnVu Y3Rpb24oZSx0KXtpZigib25DbGljayI9PT10JiYhcihlLl90YWcpKXt2YXIg bj1vKGUpO09bbl0ucmVtb3ZlKCksZGVsZXRlIE9bbl19fX07ZS5leHBvcnRz PXd9KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmlj dCI7ZnVuY3Rpb24gbyhlLHQsbixvKXtyZXR1cm4gci5jYWxsKHRoaXMsZSx0 LG4sbyl9dmFyIHI9bigxMiksaT17YW5pbWF0aW9uTmFtZTpudWxsLGVsYXBz ZWRUaW1lOm51bGwscHNldWRvRWxlbWVudDpudWxsfTtyLmF1Z21lbnRDbGFz cyhvLGkpLGUuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJp Y3QiO2Z1bmN0aW9uIG8oZSx0LG4sbyl7cmV0dXJuIHIuY2FsbCh0aGlzLGUs dCxuLG8pfXZhciByPW4oMTIpLGk9e2NsaXBib2FyZERhdGE6ZnVuY3Rpb24o ZSl7cmV0dXJuImNsaXBib2FyZERhdGEiaW4gZT9lLmNsaXBib2FyZERhdGE6 d2luZG93LmNsaXBib2FyZERhdGF9fTtyLmF1Z21lbnRDbGFzcyhvLGkpLGUu ZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0 aW9uIG8oZSx0LG4sbyl7cmV0dXJuIHIuY2FsbCh0aGlzLGUsdCxuLG8pfXZh ciByPW4oMTIpLGk9e2RhdGE6bnVsbH07ci5hdWdtZW50Q2xhc3MobyxpKSxl LmV4cG9ydHM9b30sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5j dGlvbiBvKGUsdCxuLG8pe3JldHVybiByLmNhbGwodGhpcyxlLHQsbixvKX12 YXIgcj1uKDI3KSxpPXtkYXRhVHJhbnNmZXI6bnVsbH07ci5hdWdtZW50Q2xh c3MobyxpKSxlLmV4cG9ydHM9b30sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3Ry aWN0IjtmdW5jdGlvbiBvKGUsdCxuLG8pe3JldHVybiByLmNhbGwodGhpcyxl LHQsbixvKX12YXIgcj1uKDI0KSxpPXtyZWxhdGVkVGFyZ2V0Om51bGx9O3Iu YXVnbWVudENsYXNzKG8saSksZS5leHBvcnRzPW99LGZ1bmN0aW9uKGUsdCxu KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbyhlLHQsbixvKXtyZXR1cm4gci5j YWxsKHRoaXMsZSx0LG4sbyl9dmFyIHI9bigxMiksaT17ZGF0YTpudWxsfTty LmF1Z21lbnRDbGFzcyhvLGkpLGUuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQs bil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSx0LG4sbyl7cmV0dXJuIHIu Y2FsbCh0aGlzLGUsdCxuLG8pfXZhciByPW4oMjQpLGk9big0MSksYT1uKDE2 MCkscz1uKDQyKSx1PXtrZXk6YSxsb2NhdGlvbjpudWxsLGN0cmxLZXk6bnVs bCxzaGlmdEtleTpudWxsLGFsdEtleTpudWxsLG1ldGFLZXk6bnVsbCxyZXBl YXQ6bnVsbCxsb2NhbGU6bnVsbCxnZXRNb2RpZmllclN0YXRlOnMsY2hhckNv ZGU6ZnVuY3Rpb24oZSl7cmV0dXJuImtleXByZXNzIj09PWUudHlwZT9pKGUp OjB9LGtleUNvZGU6ZnVuY3Rpb24oZSl7cmV0dXJuImtleWRvd24iPT09ZS50 eXBlfHwia2V5dXAiPT09ZS50eXBlP2Uua2V5Q29kZTowfSx3aGljaDpmdW5j dGlvbihlKXtyZXR1cm4ia2V5cHJlc3MiPT09ZS50eXBlP2koZSk6ImtleWRv d24iPT09ZS50eXBlfHwia2V5dXAiPT09ZS50eXBlP2Uua2V5Q29kZTowfX07 ci5hdWdtZW50Q2xhc3Mobyx1KSxlLmV4cG9ydHM9b30sZnVuY3Rpb24oZSx0 LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKGUsdCxuLG8pe3JldHVybiBy LmNhbGwodGhpcyxlLHQsbixvKX12YXIgcj1uKDI0KSxpPW4oNDIpLGE9e3Rv dWNoZXM6bnVsbCx0YXJnZXRUb3VjaGVzOm51bGwsY2hhbmdlZFRvdWNoZXM6 bnVsbCxhbHRLZXk6bnVsbCxtZXRhS2V5Om51bGwsY3RybEtleTpudWxsLHNo aWZ0S2V5Om51bGwsZ2V0TW9kaWZpZXJTdGF0ZTppfTtyLmF1Z21lbnRDbGFz cyhvLGEpLGUuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJp Y3QiO2Z1bmN0aW9uIG8oZSx0LG4sbyl7cmV0dXJuIHIuY2FsbCh0aGlzLGUs dCxuLG8pfXZhciByPW4oMTIpLGk9e3Byb3BlcnR5TmFtZTpudWxsLGVsYXBz ZWRUaW1lOm51bGwscHNldWRvRWxlbWVudDpudWxsfTtyLmF1Z21lbnRDbGFz cyhvLGkpLGUuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJp Y3QiO2Z1bmN0aW9uIG8oZSx0LG4sbyl7cmV0dXJuIHIuY2FsbCh0aGlzLGUs dCxuLG8pfXZhciByPW4oMjcpLGk9e2RlbHRhWDpmdW5jdGlvbihlKXtyZXR1 cm4iZGVsdGFYImluIGU/ZS5kZWx0YVg6IndoZWVsRGVsdGFYImluIGU/LWUu d2hlZWxEZWx0YVg6MH0sZGVsdGFZOmZ1bmN0aW9uKGUpe3JldHVybiJkZWx0 YVkiaW4gZT9lLmRlbHRhWToid2hlZWxEZWx0YVkiaW4gZT8tZS53aGVlbERl bHRhWToid2hlZWxEZWx0YSJpbiBlPy1lLndoZWVsRGVsdGE6MH0sZGVsdGFa Om51bGwsZGVsdGFNb2RlOm51bGx9O3IuYXVnbWVudENsYXNzKG8saSksZS5l eHBvcnRzPW99LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZnVuY3Rp b24gbyhlKXtmb3IodmFyIHQ9MSxuPTAsbz0wLGk9ZS5sZW5ndGgsYT0tNCZp O288YTspe2Zvcih2YXIgcz1NYXRoLm1pbihvKzQwOTYsYSk7bzxzO28rPTQp bis9KHQrPWUuY2hhckNvZGVBdChvKSkrKHQrPWUuY2hhckNvZGVBdChvKzEp KSsodCs9ZS5jaGFyQ29kZUF0KG8rMikpKyh0Kz1lLmNoYXJDb2RlQXQobysz KSk7dCU9cixuJT1yfWZvcig7bzxpO28rKyluKz10Kz1lLmNoYXJDb2RlQXQo byk7cmV0dXJuIHQlPXIsbiU9cix0fG48PDE2fXZhciByPTY1NTIxO2UuZXhw b3J0cz1vfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlv bih0KXtmdW5jdGlvbiBvKGUsbyxwLGQsZixoKXtmb3IodmFyIG0gaW4gZSlp ZihlLmhhc093blByb3BlcnR5KG0pKXt2YXIgdjt0cnl7ImZ1bmN0aW9uIiE9 dHlwZW9mIGVbbV0mJigicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj91 KCExLCIlczogJXMgdHlwZSBgJXNgIGlzIGludmFsaWQ7IGl0IG11c3QgYmUg YSBmdW5jdGlvbiwgdXN1YWxseSBmcm9tIFJlYWN0LlByb3BUeXBlcy4iLGR8 fCJSZWFjdCBjbGFzcyIsYVtwXSxtKTppKCI4NCIsZHx8IlJlYWN0IGNsYXNz IixhW3BdLG0pKSx2PWVbbV0obyxtLGQscCxudWxsLHMpfWNhdGNoKGUpe3Y9 ZX1pZigicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmYyghdnx8diBp bnN0YW5jZW9mIEVycm9yLCIlczogdHlwZSBzcGVjaWZpY2F0aW9uIG9mICVz IGAlc2AgaXMgaW52YWxpZDsgdGhlIHR5cGUgY2hlY2tlciBmdW5jdGlvbiBt dXN0IHJldHVybiBgbnVsbGAgb3IgYW4gYEVycm9yYCBidXQgcmV0dXJuZWQg YSAlcy4gWW91IG1heSBoYXZlIGZvcmdvdHRlbiB0byBwYXNzIGFuIGFyZ3Vt ZW50IHRvIHRoZSB0eXBlIGNoZWNrZXIgY3JlYXRvciAoYXJyYXlPZiwgaW5z dGFuY2VPZiwgb2JqZWN0T2YsIG9uZU9mLCBvbmVPZlR5cGUsIGFuZCBzaGFw ZSBhbGwgcmVxdWlyZSBhbiBhcmd1bWVudCkuIixkfHwiUmVhY3QgY2xhc3Mi LGFbcF0sbSx0eXBlb2YgdiksdiBpbnN0YW5jZW9mIEVycm9yJiYhKHYubWVz c2FnZSBpbiBsKSl7bFt2Lm1lc3NhZ2VdPSEwO3ZhciBnPSIiOyJwcm9kdWN0 aW9uIiE9PXQuZW52Lk5PREVfRU5WJiYocnx8KHI9big3KSksbnVsbCE9PWg/ Zz1yLmdldFN0YWNrQWRkZW5kdW1CeUlEKGgpOm51bGwhPT1mJiYoZz1yLmdl dEN1cnJlbnRTdGFja0FkZGVuZHVtKGYpKSksInByb2R1Y3Rpb24iIT09dC5l bnYuTk9ERV9FTlYmJmMoITEsIkZhaWxlZCAlcyB0eXBlOiAlcyVzIixwLHYu bWVzc2FnZSxnKX19fXZhciByLGk9bigzKSxhPW4oMTM2KSxzPW4oNjYpLHU9 bigxKSxjPW4oMik7dm9pZCAwIT09dCYmdC5lbnYmJiJ0ZXN0Ij09PXQuZW52 Lk5PREVfRU5WJiYocj1uKDcpKTt2YXIgbD17fTtlLmV4cG9ydHM9b30pLmNh bGwodCxuKDApKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjsoZnVu Y3Rpb24odCl7ZnVuY3Rpb24gbyhlLG4sbyl7aWYobnVsbD09bnx8ImJvb2xl YW4iPT10eXBlb2Ygbnx8IiI9PT1uKXJldHVybiIiO2lmKGlzTmFOKG4pfHww PT09bnx8YS5oYXNPd25Qcm9wZXJ0eShlKSYmYVtlXSlyZXR1cm4iIituO2lm KCJzdHJpbmciPT10eXBlb2Ygbil7aWYoInByb2R1Y3Rpb24iIT09dC5lbnYu Tk9ERV9FTlYmJm8mJiIwIiE9PW4pe3ZhciByPW8uX2N1cnJlbnRFbGVtZW50 Ll9vd25lcix1PXI/ci5nZXROYW1lKCk6bnVsbDt1JiYhc1t1XSYmKHNbdV09 e30pO3ZhciBjPSExO2lmKHUpe3ZhciBsPXNbdV07Yz1sW2VdLGN8fChsW2Vd PSEwKX1jfHwicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmaSghMSwi YSBgJXNgIHRhZyAob3duZXI6IGAlc2ApIHdhcyBwYXNzZWQgYSBudW1lcmlj IHN0cmluZyB2YWx1ZSBmb3IgQ1NTIHByb3BlcnR5IGAlc2AgKHZhbHVlOiBg JXNgKSB3aGljaCB3aWxsIGJlIHRyZWF0ZWQgYXMgYSB1bml0bGVzcyBudW1i ZXIgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiBSZWFjdC4iLG8uX2N1cnJlbnRF bGVtZW50LnR5cGUsdXx8InVua25vd24iLGUsbil9bj1uLnRyaW0oKX1yZXR1 cm4gbisicHgifXZhciByPW4oNTUpLGk9bigyKSxhPXIuaXNVbml0bGVzc051 bWJlcixzPXt9O2UuZXhwb3J0cz1vfSkuY2FsbCh0LG4oMCkpfSxmdW5jdGlv bihlLHQsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXtmdW5jdGlvbiBv KGUpe2lmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WKXt2YXIgbj1p LmN1cnJlbnQ7bnVsbCE9PW4mJigicHJvZHVjdGlvbiIhPT10LmVudi5OT0RF X0VOViYmbChuLl93YXJuZWRBYm91dFJlZnNJblJlbmRlciwiJXMgaXMgYWNj ZXNzaW5nIGZpbmRET01Ob2RlIGluc2lkZSBpdHMgcmVuZGVyKCkuIHJlbmRl cigpIHNob3VsZCBiZSBhIHB1cmUgZnVuY3Rpb24gb2YgcHJvcHMgYW5kIHN0 YXRlLiBJdCBzaG91bGQgbmV2ZXIgYWNjZXNzIHNvbWV0aGluZyB0aGF0IHJl cXVpcmVzIHN0YWxlIGRhdGEgZnJvbSB0aGUgcHJldmlvdXMgcmVuZGVyLCBz dWNoIGFzIHJlZnMuIE1vdmUgdGhpcyBsb2dpYyB0byBjb21wb25lbnREaWRN b3VudCBhbmQgY29tcG9uZW50RGlkVXBkYXRlIGluc3RlYWQuIixuLmdldE5h bWUoKXx8IkEgY29tcG9uZW50Iiksbi5fd2FybmVkQWJvdXRSZWZzSW5SZW5k ZXI9ITApfWlmKG51bGw9PWUpcmV0dXJuIG51bGw7aWYoMT09PWUubm9kZVR5 cGUpcmV0dXJuIGU7dmFyIG89cy5nZXQoZSk7aWYobylyZXR1cm4gbz11KG8p LG8/YS5nZXROb2RlRnJvbUluc3RhbmNlKG8pOm51bGw7ImZ1bmN0aW9uIj09 dHlwZW9mIGUucmVuZGVyPyJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5W P2MoITEsImZpbmRET01Ob2RlIHdhcyBjYWxsZWQgb24gYW4gdW5tb3VudGVk IGNvbXBvbmVudC4iKTpyKCI0NCIpOiJwcm9kdWN0aW9uIiE9PXQuZW52Lk5P REVfRU5WP2MoITEsIkVsZW1lbnQgYXBwZWFycyB0byBiZSBuZWl0aGVyIFJl YWN0Q29tcG9uZW50IG5vciBET01Ob2RlIChrZXlzOiAlcykiLE9iamVjdC5r ZXlzKGUpKTpyKCI0NSIsT2JqZWN0LmtleXMoZSkpfXZhciByPW4oMyksaT1u KDExKSxhPW4oNSkscz1uKDIzKSx1PW4oNzApLGM9bigxKSxsPW4oMik7ZS5l eHBvcnRzPW99KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNl IHN0cmljdCI7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG8oZSxvLHIscyl7aWYo ZSYmIm9iamVjdCI9PXR5cGVvZiBlKXt2YXIgYz1lLGw9dm9pZCAwPT09Y1ty XTsicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmKGl8fChpPW4oNykp LGx8fCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZ1KCExLCJmbGF0 dGVuQ2hpbGRyZW4oLi4uKTogRW5jb3VudGVyZWQgdHdvIGNoaWxkcmVuIHdp dGggdGhlIHNhbWUga2V5LCBgJXNgLiBDaGlsZCBrZXlzIG11c3QgYmUgdW5p cXVlOyB3aGVuIHR3byBjaGlsZHJlbiBzaGFyZSBhIGtleSwgb25seSB0aGUg Zmlyc3QgY2hpbGQgd2lsbCBiZSB1c2VkLiVzIixhLnVuZXNjYXBlKHIpLGku Z2V0U3RhY2tBZGRlbmR1bUJ5SUQocykpKSxsJiZudWxsIT1vJiYoY1tyXT1v KX19ZnVuY3Rpb24gcihlLG4pe2lmKG51bGw9PWUpcmV0dXJuIGU7dmFyIHI9 e307cmV0dXJuInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/cyhlLGZ1 bmN0aW9uKGUsdCxyKXtyZXR1cm4gbyhlLHQscixuKX0scik6cyhlLG8sciks cn12YXIgaSxhPW4oMzUpLHM9big3NSksdT1uKDIpO3ZvaWQgMCE9PXQmJnQu ZW52JiYidGVzdCI9PT10LmVudi5OT0RFX0VOViYmKGk9big3KSksZS5leHBv cnRzPXJ9KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0 cmljdCI7ZnVuY3Rpb24gbyhlKXtpZihlLmtleSl7dmFyIHQ9aVtlLmtleV18 fGUua2V5O2lmKCJVbmlkZW50aWZpZWQiIT09dClyZXR1cm4gdH1pZigia2V5 cHJlc3MiPT09ZS50eXBlKXt2YXIgbj1yKGUpO3JldHVybiAxMz09PW4/IkVu dGVyIjpTdHJpbmcuZnJvbUNoYXJDb2RlKG4pfXJldHVybiJrZXlkb3duIj09 PWUudHlwZXx8ImtleXVwIj09PWUudHlwZT9hW2Uua2V5Q29kZV18fCJVbmlk ZW50aWZpZWQiOiIifXZhciByPW4oNDEpLGk9e0VzYzoiRXNjYXBlIixTcGFj ZWJhcjoiICIsTGVmdDoiQXJyb3dMZWZ0IixVcDoiQXJyb3dVcCIsUmlnaHQ6 IkFycm93UmlnaHQiLERvd246IkFycm93RG93biIsRGVsOiJEZWxldGUiLFdp bjoiT1MiLE1lbnU6IkNvbnRleHRNZW51IixBcHBzOiJDb250ZXh0TWVudSIs U2Nyb2xsOiJTY3JvbGxMb2NrIixNb3pQcmludGFibGVLZXk6IlVuaWRlbnRp ZmllZCJ9LGE9ezg6IkJhY2tzcGFjZSIsOToiVGFiIiwxMjoiQ2xlYXIiLDEz OiJFbnRlciIsMTY6IlNoaWZ0IiwxNzoiQ29udHJvbCIsMTg6IkFsdCIsMTk6 IlBhdXNlIiwyMDoiQ2Fwc0xvY2siLDI3OiJFc2NhcGUiLDMyOiIgIiwzMzoi UGFnZVVwIiwzNDoiUGFnZURvd24iLDM1OiJFbmQiLDM2OiJIb21lIiwzNzoi QXJyb3dMZWZ0IiwzODoiQXJyb3dVcCIsMzk6IkFycm93UmlnaHQiLDQwOiJB cnJvd0Rvd24iLDQ1OiJJbnNlcnQiLDQ2OiJEZWxldGUiLDExMjoiRjEiLDEx MzoiRjIiLDExNDoiRjMiLDExNToiRjQiLDExNjoiRjUiLDExNzoiRjYiLDEx ODoiRjciLDExOToiRjgiLDEyMDoiRjkiLDEyMToiRjEwIiwxMjI6IkYxMSIs MTIzOiJGMTIiLDE0NDoiTnVtTG9jayIsMTQ1OiJTY3JvbGxMb2NrIiwyMjQ6 Ik1ldGEifTtlLmV4cG9ydHM9b30sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3Ry aWN0IjtmdW5jdGlvbiBvKGUpe3ZhciB0PWUmJihyJiZlW3JdfHxlW2ldKTtp ZigiZnVuY3Rpb24iPT10eXBlb2YgdClyZXR1cm4gdH12YXIgcj0iZnVuY3Rp b24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3IsaT0iQEBpdGVy YXRvciI7ZS5leHBvcnRzPW99LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmlj dCI7ZnVuY3Rpb24gbygpe3JldHVybiByKyt9dmFyIHI9MTtlLmV4cG9ydHM9 b30sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBvKGUp e2Zvcig7ZSYmZS5maXJzdENoaWxkOyllPWUuZmlyc3RDaGlsZDtyZXR1cm4g ZX1mdW5jdGlvbiByKGUpe2Zvcig7ZTspe2lmKGUubmV4dFNpYmxpbmcpcmV0 dXJuIGUubmV4dFNpYmxpbmc7ZT1lLnBhcmVudE5vZGV9fWZ1bmN0aW9uIGko ZSx0KXtmb3IodmFyIG49byhlKSxpPTAsYT0wO247KXtpZigzPT09bi5ub2Rl VHlwZSl7aWYoYT1pK24udGV4dENvbnRlbnQubGVuZ3RoLGk8PXQmJmE+PXQp cmV0dXJue25vZGU6bixvZmZzZXQ6dC1pfTtpPWF9bj1vKHIobikpfX1lLmV4 cG9ydHM9aX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtmdW5jdGlv biBvKGUsdCl7dmFyIG49e307cmV0dXJuIG5bZS50b0xvd2VyQ2FzZSgpXT10 LnRvTG93ZXJDYXNlKCksblsiV2Via2l0IitlXT0id2Via2l0Iit0LG5bIk1v eiIrZV09Im1veiIrdCxuWyJtcyIrZV09Ik1TIit0LG5bIk8iK2VdPSJvIit0 LnRvTG93ZXJDYXNlKCksbn1mdW5jdGlvbiByKGUpe2lmKHNbZV0pcmV0dXJu IHNbZV07aWYoIWFbZV0pcmV0dXJuIGU7dmFyIHQ9YVtlXTtmb3IodmFyIG4g aW4gdClpZih0Lmhhc093blByb3BlcnR5KG4pJiZuIGluIHUpcmV0dXJuIHNb ZV09dFtuXTtyZXR1cm4iIn12YXIgaT1uKDYpLGE9e2FuaW1hdGlvbmVuZDpv KCJBbmltYXRpb24iLCJBbmltYXRpb25FbmQiKSxhbmltYXRpb25pdGVyYXRp b246bygiQW5pbWF0aW9uIiwiQW5pbWF0aW9uSXRlcmF0aW9uIiksYW5pbWF0 aW9uc3RhcnQ6bygiQW5pbWF0aW9uIiwiQW5pbWF0aW9uU3RhcnQiKSx0cmFu c2l0aW9uZW5kOm8oIlRyYW5zaXRpb24iLCJUcmFuc2l0aW9uRW5kIil9LHM9 e30sdT17fTtpLmNhblVzZURPTSYmKHU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVu dCgiZGl2Iikuc3R5bGUsIkFuaW1hdGlvbkV2ZW50ImluIHdpbmRvd3x8KGRl bGV0ZSBhLmFuaW1hdGlvbmVuZC5hbmltYXRpb24sZGVsZXRlIGEuYW5pbWF0 aW9uaXRlcmF0aW9uLmFuaW1hdGlvbixkZWxldGUgYS5hbmltYXRpb25zdGFy dC5hbmltYXRpb24pLCJUcmFuc2l0aW9uRXZlbnQiaW4gd2luZG93fHxkZWxl dGUgYS50cmFuc2l0aW9uZW5kLnRyYW5zaXRpb24pLGUuZXhwb3J0cz1yfSxm dW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSl7cmV0 dXJuJyInK3IoZSkrJyInfXZhciByPW4oMjkpO2UuZXhwb3J0cz1vfSxmdW5j dGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciBvPW4oNjQpO2UuZXhwb3J0 cz1vLnJlbmRlclN1YnRyZWVJbnRvQ29udGFpbmVyfSxmdW5jdGlvbihlLHQs bil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSl7dmFyIHQ9eyI9IjoiPTAi LCI6IjoiPTIifTtyZXR1cm4iJCIrKCIiK2UpLnJlcGxhY2UoL1s9Ol0vZyxm dW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pfWZ1bmN0aW9uIHIoZSl7dmFyIHQ9 Lyg9MHw9MikvZyxuPXsiPTAiOiI9IiwiPTIiOiI6In07cmV0dXJuKCIiKygi LiI9PT1lWzBdJiYiJCI9PT1lWzFdP2Uuc3Vic3RyaW5nKDIpOmUuc3Vic3Ry aW5nKDEpKSkucmVwbGFjZSh0LGZ1bmN0aW9uKGUpe3JldHVybiBuW2VdfSl9 dmFyIGk9e2VzY2FwZTpvLHVuZXNjYXBlOnJ9O2UuZXhwb3J0cz1pfSxmdW5j dGlvbihlLHQsbil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0KXt2YXIgbz1u KDE2KSxyPW4oMSksaT1mdW5jdGlvbihlKXt2YXIgdD10aGlzO2lmKHQuaW5z dGFuY2VQb29sLmxlbmd0aCl7dmFyIG49dC5pbnN0YW5jZVBvb2wucG9wKCk7 cmV0dXJuIHQuY2FsbChuLGUpLG59cmV0dXJuIG5ldyB0KGUpfSxhPWZ1bmN0 aW9uKGUsdCl7dmFyIG49dGhpcztpZihuLmluc3RhbmNlUG9vbC5sZW5ndGgp e3ZhciBvPW4uaW5zdGFuY2VQb29sLnBvcCgpO3JldHVybiBuLmNhbGwobyxl LHQpLG99cmV0dXJuIG5ldyBuKGUsdCl9LHM9ZnVuY3Rpb24oZSx0LG4pe3Zh ciBvPXRoaXM7aWYoby5pbnN0YW5jZVBvb2wubGVuZ3RoKXt2YXIgcj1vLmlu c3RhbmNlUG9vbC5wb3AoKTtyZXR1cm4gby5jYWxsKHIsZSx0LG4pLHJ9cmV0 dXJuIG5ldyBvKGUsdCxuKX0sdT1mdW5jdGlvbihlLHQsbixvKXt2YXIgcj10 aGlzO2lmKHIuaW5zdGFuY2VQb29sLmxlbmd0aCl7dmFyIGk9ci5pbnN0YW5j ZVBvb2wucG9wKCk7cmV0dXJuIHIuY2FsbChpLGUsdCxuLG8pLGl9cmV0dXJu IG5ldyByKGUsdCxuLG8pfSxjPWZ1bmN0aW9uKGUpe3ZhciBuPXRoaXM7ZSBp bnN0YW5jZW9mIG58fCgicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9y KCExLCJUcnlpbmcgdG8gcmVsZWFzZSBhbiBpbnN0YW5jZSBpbnRvIGEgcG9v bCBvZiBhIGRpZmZlcmVudCB0eXBlLiIpOm8oIjI1IikpLGUuZGVzdHJ1Y3Rv cigpLG4uaW5zdGFuY2VQb29sLmxlbmd0aDxuLnBvb2xTaXplJiZuLmluc3Rh bmNlUG9vbC5wdXNoKGUpfSxsPWkscD1mdW5jdGlvbihlLHQpe3ZhciBuPWU7 cmV0dXJuIG4uaW5zdGFuY2VQb29sPVtdLG4uZ2V0UG9vbGVkPXR8fGwsbi5w b29sU2l6ZXx8KG4ucG9vbFNpemU9MTApLG4ucmVsZWFzZT1jLG59LGQ9e2Fk ZFBvb2xpbmdUbzpwLG9uZUFyZ3VtZW50UG9vbGVyOmksdHdvQXJndW1lbnRQ b29sZXI6YSx0aHJlZUFyZ3VtZW50UG9vbGVyOnMsZm91ckFyZ3VtZW50UG9v bGVyOnV9O2UuZXhwb3J0cz1kfSkuY2FsbCh0LG4oMCkpfSxmdW5jdGlvbihl LHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG8oZSl7cmV0dXJuKCIiK2Up LnJlcGxhY2UoXywiJCYvIil9ZnVuY3Rpb24gcihlLHQpe3RoaXMuZnVuYz1l LHRoaXMuY29udGV4dD10LHRoaXMuY291bnQ9MH1mdW5jdGlvbiBpKGUsdCxu KXt2YXIgbz1lLmZ1bmMscj1lLmNvbnRleHQ7by5jYWxsKHIsdCxlLmNvdW50 KyspfWZ1bmN0aW9uIGEoZSx0LG4pe2lmKG51bGw9PWUpcmV0dXJuIGU7dmFy IG89ci5nZXRQb29sZWQodCxuKTtnKGUsaSxvKSxyLnJlbGVhc2Uobyl9ZnVu Y3Rpb24gcyhlLHQsbixvKXt0aGlzLnJlc3VsdD1lLHRoaXMua2V5UHJlZml4 PXQsdGhpcy5mdW5jPW4sdGhpcy5jb250ZXh0PW8sdGhpcy5jb3VudD0wfWZ1 bmN0aW9uIHUoZSx0LG4pe3ZhciByPWUucmVzdWx0LGk9ZS5rZXlQcmVmaXgs YT1lLmZ1bmMscz1lLmNvbnRleHQsdT1hLmNhbGwocyx0LGUuY291bnQrKyk7 QXJyYXkuaXNBcnJheSh1KT9jKHUscixuLHYudGhhdFJldHVybnNBcmd1bWVu dCk6bnVsbCE9dSYmKG0uaXNWYWxpZEVsZW1lbnQodSkmJih1PW0uY2xvbmVB bmRSZXBsYWNlS2V5KHUsaSsoIXUua2V5fHx0JiZ0LmtleT09PXUua2V5PyIi Om8odS5rZXkpKyIvIikrbikpLHIucHVzaCh1KSl9ZnVuY3Rpb24gYyhlLHQs bixyLGkpe3ZhciBhPSIiO251bGwhPW4mJihhPW8obikrIi8iKTt2YXIgYz1z LmdldFBvb2xlZCh0LGEscixpKTtnKGUsdSxjKSxzLnJlbGVhc2UoYyl9ZnVu Y3Rpb24gbChlLHQsbil7aWYobnVsbD09ZSlyZXR1cm4gZTt2YXIgbz1bXTty ZXR1cm4gYyhlLG8sbnVsbCx0LG4pLG99ZnVuY3Rpb24gcChlLHQsbil7cmV0 dXJuIG51bGx9ZnVuY3Rpb24gZChlLHQpe3JldHVybiBnKGUscCxudWxsKX1m dW5jdGlvbiBmKGUpe3ZhciB0PVtdO3JldHVybiBjKGUsdCxudWxsLHYudGhh dFJldHVybnNBcmd1bWVudCksdH12YXIgaD1uKDE2OCksbT1uKDE1KSx2PW4o OSksZz1uKDE3NykseT1oLnR3b0FyZ3VtZW50UG9vbGVyLEU9aC5mb3VyQXJn dW1lbnRQb29sZXIsXz0vXC8rL2c7ci5wcm90b3R5cGUuZGVzdHJ1Y3Rvcj1m dW5jdGlvbigpe3RoaXMuZnVuYz1udWxsLHRoaXMuY29udGV4dD1udWxsLHRo aXMuY291bnQ9MH0saC5hZGRQb29saW5nVG8ocix5KSxzLnByb3RvdHlwZS5k ZXN0cnVjdG9yPWZ1bmN0aW9uKCl7dGhpcy5yZXN1bHQ9bnVsbCx0aGlzLmtl eVByZWZpeD1udWxsLHRoaXMuZnVuYz1udWxsLHRoaXMuY29udGV4dD1udWxs LHRoaXMuY291bnQ9MH0saC5hZGRQb29saW5nVG8ocyxFKTt2YXIgTj17Zm9y RWFjaDphLG1hcDpsLG1hcEludG9XaXRoS2V5UHJlZml4SW50ZXJuYWw6Yyxj b3VudDpkLHRvQXJyYXk6Zn07ZS5leHBvcnRzPU59LGZ1bmN0aW9uKGUsdCxu KXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG8oZSl7cmV0 dXJuIGV9ZnVuY3Rpb24gcihlLG4sbyl7Zm9yKHZhciByIGluIG4pbi5oYXNP d25Qcm9wZXJ0eShyKSYmInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYm Jk4oImZ1bmN0aW9uIj09dHlwZW9mIG5bcl0sIiVzOiAlcyB0eXBlIGAlc2Ag aXMgaW52YWxpZDsgaXQgbXVzdCBiZSBhIGZ1bmN0aW9uLCB1c3VhbGx5IGZy b20gUmVhY3QuUHJvcFR5cGVzLiIsZS5kaXNwbGF5TmFtZXx8IlJlYWN0Q2xh c3MiLGdbb10scil9ZnVuY3Rpb24gaShlLG4pe3ZhciBvPUQuaGFzT3duUHJv cGVydHkobik/RFtuXTpudWxsO3cuaGFzT3duUHJvcGVydHkobikmJiJPVkVS UklERV9CQVNFIiE9PW8mJigicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VO Vj9fKCExLCJSZWFjdENsYXNzSW50ZXJmYWNlOiBZb3UgYXJlIGF0dGVtcHRp bmcgdG8gb3ZlcnJpZGUgYCVzYCBmcm9tIHlvdXIgY2xhc3Mgc3BlY2lmaWNh dGlvbi4gRW5zdXJlIHRoYXQgeW91ciBtZXRob2QgbmFtZXMgZG8gbm90IG92 ZXJsYXAgd2l0aCBSZWFjdCBtZXRob2RzLiIsbik6ZigiNzMiLG4pKSxlJiYi REVGSU5FX01BTlkiIT09byYmIkRFRklORV9NQU5ZX01FUkdFRCIhPT1vJiYo InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/XyghMSwiUmVhY3RDbGFz c0ludGVyZmFjZTogWW91IGFyZSBhdHRlbXB0aW5nIHRvIGRlZmluZSBgJXNg IG9uIHlvdXIgY29tcG9uZW50IG1vcmUgdGhhbiBvbmNlLiBUaGlzIGNvbmZs aWN0IG1heSBiZSBkdWUgdG8gYSBtaXhpbi4iLG4pOmYoIjc0IixuKSl9ZnVu Y3Rpb24gYShlLG4pe2lmKG4peyJmdW5jdGlvbiI9PXR5cGVvZiBuJiYoInBy b2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/XyghMSwiUmVhY3RDbGFzczog WW91J3JlIGF0dGVtcHRpbmcgdG8gdXNlIGEgY29tcG9uZW50IGNsYXNzIG9y IGZ1bmN0aW9uIGFzIGEgbWl4aW4uIEluc3RlYWQsIGp1c3QgdXNlIGEgcmVn dWxhciBvYmplY3QuIik6ZigiNzUiKSksdi5pc1ZhbGlkRWxlbWVudChuKSYm KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP18oITEsIlJlYWN0Q2xh c3M6IFlvdSdyZSBhdHRlbXB0aW5nIHRvIHVzZSBhIGNvbXBvbmVudCBhcyBh IG1peGluLiBJbnN0ZWFkLCBqdXN0IHVzZSBhIHJlZ3VsYXIgb2JqZWN0LiIp OmYoIjc2IikpO3ZhciBvPWUucHJvdG90eXBlLHI9by5fX3JlYWN0QXV0b0Jp bmRQYWlycztuLmhhc093blByb3BlcnR5KGIpJiZPLm1peGlucyhlLG4ubWl4 aW5zKTtmb3IodmFyIGEgaW4gbilpZihuLmhhc093blByb3BlcnR5KGEpJiZh IT09Yil7dmFyIHM9blthXSx1PW8uaGFzT3duUHJvcGVydHkoYSk7aWYoaSh1 LGEpLE8uaGFzT3duUHJvcGVydHkoYSkpT1thXShlLHMpO2Vsc2V7dmFyIHA9 RC5oYXNPd25Qcm9wZXJ0eShhKSxkPSJmdW5jdGlvbiI9PXR5cGVvZiBzLGg9 ZCYmIXAmJiF1JiYhMSE9PW4uYXV0b2JpbmQ7aWYoaClyLnB1c2goYSxzKSxv W2FdPXM7ZWxzZSBpZih1KXt2YXIgbT1EW2FdOyghcHx8IkRFRklORV9NQU5Z X01FUkdFRCIhPT1tJiYiREVGSU5FX01BTlkiIT09bSkmJigicHJvZHVjdGlv biIhPT10LmVudi5OT0RFX0VOVj9fKCExLCJSZWFjdENsYXNzOiBVbmV4cGVj dGVkIHNwZWMgcG9saWN5ICVzIGZvciBrZXkgJXMgd2hlbiBtaXhpbmcgaW4g Y29tcG9uZW50IHNwZWNzLiIsbSxhKTpmKCI3NyIsbSxhKSksIkRFRklORV9N QU5ZX01FUkdFRCI9PT1tP29bYV09YyhvW2FdLHMpOiJERUZJTkVfTUFOWSI9 PT1tJiYob1thXT1sKG9bYV0scykpfWVsc2Ugb1thXT1zLCJwcm9kdWN0aW9u IiE9PXQuZW52Lk5PREVfRU5WJiYiZnVuY3Rpb24iPT10eXBlb2YgcyYmbi5k aXNwbGF5TmFtZSYmKG9bYV0uZGlzcGxheU5hbWU9bi5kaXNwbGF5TmFtZSsi XyIrYSl9fX1lbHNlIGlmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5W KXt2YXIgZz10eXBlb2Ygbix5PSJvYmplY3QiPT09ZyYmbnVsbCE9PW47InBy b2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJk4oeSwiJXM6IFlvdSdyZSBh dHRlbXB0aW5nIHRvIGluY2x1ZGUgYSBtaXhpbiB0aGF0IGlzIGVpdGhlciBu dWxsIG9yIG5vdCBhbiBvYmplY3QuIENoZWNrIHRoZSBtaXhpbnMgaW5jbHVk ZWQgYnkgdGhlIGNvbXBvbmVudCwgYXMgd2VsbCBhcyBhbnkgbWl4aW5zIHRo ZXkgaW5jbHVkZSB0aGVtc2VsdmVzLiBFeHBlY3RlZCBvYmplY3QgYnV0IGdv dCAlcy4iLGUuZGlzcGxheU5hbWV8fCJSZWFjdENsYXNzIixudWxsPT09bj9u dWxsOmcpfX1mdW5jdGlvbiBzKGUsbil7aWYobilmb3IodmFyIG8gaW4gbil7 dmFyIHI9bltvXTtpZihuLmhhc093blByb3BlcnR5KG8pKXt2YXIgaT1vIGlu IE87aSYmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP18oITEsJ1Jl YWN0Q2xhc3M6IFlvdSBhcmUgYXR0ZW1wdGluZyB0byBkZWZpbmUgYSByZXNl cnZlZCBwcm9wZXJ0eSwgYCVzYCwgdGhhdCBzaG91bGRuXCd0IGJlIG9uIHRo ZSAic3RhdGljcyIga2V5LiBEZWZpbmUgaXQgYXMgYW4gaW5zdGFuY2UgcHJv cGVydHkgaW5zdGVhZDsgaXQgd2lsbCBzdGlsbCBiZSBhY2Nlc3NpYmxlIG9u IHRoZSBjb25zdHJ1Y3Rvci4nLG8pOmYoIjc4IixvKSk7dmFyIGE9byBpbiBl O2EmJigicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9fKCExLCJSZWFj dENsYXNzOiBZb3UgYXJlIGF0dGVtcHRpbmcgdG8gZGVmaW5lIGAlc2Agb24g eW91ciBjb21wb25lbnQgbW9yZSB0aGFuIG9uY2UuIFRoaXMgY29uZmxpY3Qg bWF5IGJlIGR1ZSB0byBhIG1peGluLiIsbyk6ZigiNzkiLG8pKSxlW29dPXJ9 fX1mdW5jdGlvbiB1KGUsbil7ZSYmbiYmIm9iamVjdCI9PXR5cGVvZiBlJiYi b2JqZWN0Ij09dHlwZW9mIG58fCgicHJvZHVjdGlvbiIhPT10LmVudi5OT0RF X0VOVj9fKCExLCJtZXJnZUludG9XaXRoTm9EdXBsaWNhdGVLZXlzKCk6IENh bm5vdCBtZXJnZSBub24tb2JqZWN0cy4iKTpmKCI4MCIpKTtmb3IodmFyIG8g aW4gbiluLmhhc093blByb3BlcnR5KG8pJiYodm9pZCAwIT09ZVtvXSYmKCJw cm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WP18oITEsIm1lcmdlSW50b1dp dGhOb0R1cGxpY2F0ZUtleXMoKTogVHJpZWQgdG8gbWVyZ2UgdHdvIG9iamVj dHMgd2l0aCB0aGUgc2FtZSBrZXk6IGAlc2AuIFRoaXMgY29uZmxpY3QgbWF5 IGJlIGR1ZSB0byBhIG1peGluOyBpbiBwYXJ0aWN1bGFyLCB0aGlzIG1heSBi ZSBjYXVzZWQgYnkgdHdvIGdldEluaXRpYWxTdGF0ZSgpIG9yIGdldERlZmF1 bHRQcm9wcygpIG1ldGhvZHMgcmV0dXJuaW5nIG9iamVjdHMgd2l0aCBjbGFz aGluZyBrZXlzLiIsbyk6ZigiODEiLG8pKSxlW29dPW5bb10pO3JldHVybiBl fWZ1bmN0aW9uIGMoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1lLmFw cGx5KHRoaXMsYXJndW1lbnRzKSxvPXQuYXBwbHkodGhpcyxhcmd1bWVudHMp O2lmKG51bGw9PW4pcmV0dXJuIG87aWYobnVsbD09bylyZXR1cm4gbjt2YXIg cj17fTtyZXR1cm4gdShyLG4pLHUocixvKSxyfX1mdW5jdGlvbiBsKGUsdCl7 cmV0dXJuIGZ1bmN0aW9uKCl7ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksdC5h cHBseSh0aGlzLGFyZ3VtZW50cyl9fWZ1bmN0aW9uIHAoZSxuKXt2YXIgbz1u LmJpbmQoZSk7aWYoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYpe28u X19yZWFjdEJvdW5kQ29udGV4dD1lLG8uX19yZWFjdEJvdW5kTWV0aG9kPW4s by5fX3JlYWN0Qm91bmRBcmd1bWVudHM9bnVsbDt2YXIgcj1lLmNvbnN0cnVj dG9yLmRpc3BsYXlOYW1lLGk9by5iaW5kO28uYmluZD1mdW5jdGlvbihhKXtm b3IodmFyIHM9YXJndW1lbnRzLmxlbmd0aCx1PUFycmF5KHM+MT9zLTE6MCks Yz0xO2M8cztjKyspdVtjLTFdPWFyZ3VtZW50c1tjXTtpZihhIT09ZSYmbnVs bCE9PWEpInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJk4oITEsImJp bmQoKTogUmVhY3QgY29tcG9uZW50IG1ldGhvZHMgbWF5IG9ubHkgYmUgYm91 bmQgdG8gdGhlIGNvbXBvbmVudCBpbnN0YW5jZS4gU2VlICVzIixyKTtlbHNl IGlmKCF1Lmxlbmd0aClyZXR1cm4icHJvZHVjdGlvbiIhPT10LmVudi5OT0RF X0VOViYmTighMSwiYmluZCgpOiBZb3UgYXJlIGJpbmRpbmcgYSBjb21wb25l bnQgbWV0aG9kIHRvIHRoZSBjb21wb25lbnQuIFJlYWN0IGRvZXMgdGhpcyBm b3IgeW91IGF1dG9tYXRpY2FsbHkgaW4gYSBoaWdoLXBlcmZvcm1hbmNlIHdh eSwgc28geW91IGNhbiBzYWZlbHkgcmVtb3ZlIHRoaXMgY2FsbC4gU2VlICVz IixyKSxvO3ZhciBsPWkuYXBwbHkobyxhcmd1bWVudHMpO3JldHVybiBsLl9f cmVhY3RCb3VuZENvbnRleHQ9ZSxsLl9fcmVhY3RCb3VuZE1ldGhvZD1uLGwu X19yZWFjdEJvdW5kQXJndW1lbnRzPXUsbH19cmV0dXJuIG99ZnVuY3Rpb24g ZChlKXtmb3IodmFyIHQ9ZS5fX3JlYWN0QXV0b0JpbmRQYWlycyxuPTA7bjx0 Lmxlbmd0aDtuKz0yKXt2YXIgbz10W25dLHI9dFtuKzFdO2Vbb109cChlLHIp fX12YXIgZj1uKDE2KSxoPW4oNCksbT1uKDQ3KSx2PW4oMTUpLGc9big0OSks eT1uKDQ4KSxFPW4oMjApLF89bigxKSxOPW4oMiksYj0ibWl4aW5zIixDPVtd LEQ9e21peGluczoiREVGSU5FX01BTlkiLHN0YXRpY3M6IkRFRklORV9NQU5Z Iixwcm9wVHlwZXM6IkRFRklORV9NQU5ZIixjb250ZXh0VHlwZXM6IkRFRklO RV9NQU5ZIixjaGlsZENvbnRleHRUeXBlczoiREVGSU5FX01BTlkiLGdldERl ZmF1bHRQcm9wczoiREVGSU5FX01BTllfTUVSR0VEIixnZXRJbml0aWFsU3Rh dGU6IkRFRklORV9NQU5ZX01FUkdFRCIsZ2V0Q2hpbGRDb250ZXh0OiJERUZJ TkVfTUFOWV9NRVJHRUQiLHJlbmRlcjoiREVGSU5FX09OQ0UiLGNvbXBvbmVu dFdpbGxNb3VudDoiREVGSU5FX01BTlkiLGNvbXBvbmVudERpZE1vdW50OiJE RUZJTkVfTUFOWSIsY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wczoiREVGSU5F X01BTlkiLHNob3VsZENvbXBvbmVudFVwZGF0ZToiREVGSU5FX09OQ0UiLGNv bXBvbmVudFdpbGxVcGRhdGU6IkRFRklORV9NQU5ZIixjb21wb25lbnREaWRV cGRhdGU6IkRFRklORV9NQU5ZIixjb21wb25lbnRXaWxsVW5tb3VudDoiREVG SU5FX01BTlkiLHVwZGF0ZUNvbXBvbmVudDoiT1ZFUlJJREVfQkFTRSJ9LE89 e2Rpc3BsYXlOYW1lOmZ1bmN0aW9uKGUsdCl7ZS5kaXNwbGF5TmFtZT10fSxt aXhpbnM6ZnVuY3Rpb24oZSx0KXtpZih0KWZvcih2YXIgbj0wO248dC5sZW5n dGg7bisrKWEoZSx0W25dKX0sY2hpbGRDb250ZXh0VHlwZXM6ZnVuY3Rpb24o ZSxuKXsicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmcihlLG4sImNo aWxkQ29udGV4dCIpLGUuY2hpbGRDb250ZXh0VHlwZXM9aCh7fSxlLmNoaWxk Q29udGV4dFR5cGVzLG4pfSxjb250ZXh0VHlwZXM6ZnVuY3Rpb24oZSxuKXsi cHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmcihlLG4sImNvbnRleHQi KSxlLmNvbnRleHRUeXBlcz1oKHt9LGUuY29udGV4dFR5cGVzLG4pfSxnZXRE ZWZhdWx0UHJvcHM6ZnVuY3Rpb24oZSx0KXtlLmdldERlZmF1bHRQcm9wcz9l LmdldERlZmF1bHRQcm9wcz1jKGUuZ2V0RGVmYXVsdFByb3BzLHQpOmUuZ2V0 RGVmYXVsdFByb3BzPXR9LHByb3BUeXBlczpmdW5jdGlvbihlLG4peyJwcm9k dWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZyKGUsbiwicHJvcCIpLGUucHJv cFR5cGVzPWgoe30sZS5wcm9wVHlwZXMsbil9LHN0YXRpY3M6ZnVuY3Rpb24o ZSx0KXtzKGUsdCl9LGF1dG9iaW5kOmZ1bmN0aW9uKCl7fX0sdz17cmVwbGFj ZVN0YXRlOmZ1bmN0aW9uKGUsdCl7dGhpcy51cGRhdGVyLmVucXVldWVSZXBs YWNlU3RhdGUodGhpcyxlKSx0JiZ0aGlzLnVwZGF0ZXIuZW5xdWV1ZUNhbGxi YWNrKHRoaXMsdCwicmVwbGFjZVN0YXRlIil9LGlzTW91bnRlZDpmdW5jdGlv bigpe3JldHVybiB0aGlzLnVwZGF0ZXIuaXNNb3VudGVkKHRoaXMpfX0seD1m dW5jdGlvbigpe307aCh4LnByb3RvdHlwZSxtLnByb3RvdHlwZSx3KTt2YXIg VD17Y3JlYXRlQ2xhc3M6ZnVuY3Rpb24oZSl7dmFyIG49byhmdW5jdGlvbihl LG8scil7InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJiJwcm9kdWN0 aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZOKHRoaXMgaW5zdGFuY2VvZiBuLCJT b21ldGhpbmcgaXMgY2FsbGluZyBhIFJlYWN0IGNvbXBvbmVudCBkaXJlY3Rs eS4gVXNlIGEgZmFjdG9yeSBvciBKU1ggaW5zdGVhZC4gU2VlOiBodHRwczov L2ZiLm1lL3JlYWN0LWxlZ2FjeWZhY3RvcnkiKSx0aGlzLl9fcmVhY3RBdXRv QmluZFBhaXJzLmxlbmd0aCYmZCh0aGlzKSx0aGlzLnByb3BzPWUsdGhpcy5j b250ZXh0PW8sdGhpcy5yZWZzPUUsdGhpcy51cGRhdGVyPXJ8fHksdGhpcy5z dGF0ZT1udWxsO3ZhciBpPXRoaXMuZ2V0SW5pdGlhbFN0YXRlP3RoaXMuZ2V0 SW5pdGlhbFN0YXRlKCk6bnVsbDsicHJvZHVjdGlvbiIhPT10LmVudi5OT0RF X0VOViYmdm9pZCAwPT09aSYmdGhpcy5nZXRJbml0aWFsU3RhdGUuX2lzTW9j a0Z1bmN0aW9uJiYoaT1udWxsKSwoIm9iamVjdCIhPXR5cGVvZiBpfHxBcnJh eS5pc0FycmF5KGkpKSYmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5W P18oITEsIiVzLmdldEluaXRpYWxTdGF0ZSgpOiBtdXN0IHJldHVybiBhbiBv YmplY3Qgb3IgbnVsbCIsbi5kaXNwbGF5TmFtZXx8IlJlYWN0Q29tcG9zaXRl Q29tcG9uZW50Iik6ZigiODIiLG4uZGlzcGxheU5hbWV8fCJSZWFjdENvbXBv c2l0ZUNvbXBvbmVudCIpKSx0aGlzLnN0YXRlPWl9KTtuLnByb3RvdHlwZT1u ZXcgeCxuLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1uLG4ucHJvdG90eXBlLl9f cmVhY3RBdXRvQmluZFBhaXJzPVtdLEMuZm9yRWFjaChhLmJpbmQobnVsbCxu KSksYShuLGUpLG4uZ2V0RGVmYXVsdFByb3BzJiYobi5kZWZhdWx0UHJvcHM9 bi5nZXREZWZhdWx0UHJvcHMoKSksInByb2R1Y3Rpb24iIT09dC5lbnYuTk9E RV9FTlYmJihuLmdldERlZmF1bHRQcm9wcyYmKG4uZ2V0RGVmYXVsdFByb3Bz LmlzUmVhY3RDbGFzc0FwcHJvdmVkPXt9KSxuLnByb3RvdHlwZS5nZXRJbml0 aWFsU3RhdGUmJihuLnByb3RvdHlwZS5nZXRJbml0aWFsU3RhdGUuaXNSZWFj dENsYXNzQXBwcm92ZWQ9e30pKSxuLnByb3RvdHlwZS5yZW5kZXJ8fCgicHJv ZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9fKCExLCJjcmVhdGVDbGFzcygu Li4pOiBDbGFzcyBzcGVjaWZpY2F0aW9uIG11c3QgaW1wbGVtZW50IGEgYHJl bmRlcmAgbWV0aG9kLiIpOmYoIjgzIikpLCJwcm9kdWN0aW9uIiE9PXQuZW52 Lk5PREVfRU5WJiYoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJk4o IW4ucHJvdG90eXBlLmNvbXBvbmVudFNob3VsZFVwZGF0ZSwiJXMgaGFzIGEg bWV0aG9kIGNhbGxlZCBjb21wb25lbnRTaG91bGRVcGRhdGUoKS4gRGlkIHlv dSBtZWFuIHNob3VsZENvbXBvbmVudFVwZGF0ZSgpPyBUaGUgbmFtZSBpcyBw aHJhc2VkIGFzIGEgcXVlc3Rpb24gYmVjYXVzZSB0aGUgZnVuY3Rpb24gaXMg ZXhwZWN0ZWQgdG8gcmV0dXJuIGEgdmFsdWUuIixlLmRpc3BsYXlOYW1lfHwi QSBjb21wb25lbnQiKSwicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYm Tighbi5wcm90b3R5cGUuY29tcG9uZW50V2lsbFJlY2lldmVQcm9wcywiJXMg aGFzIGEgbWV0aG9kIGNhbGxlZCBjb21wb25lbnRXaWxsUmVjaWV2ZVByb3Bz KCkuIERpZCB5b3UgbWVhbiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKCk/ IixlLmRpc3BsYXlOYW1lfHwiQSBjb21wb25lbnQiKSk7Zm9yKHZhciByIGlu IEQpbi5wcm90b3R5cGVbcl18fChuLnByb3RvdHlwZVtyXT1udWxsKTtyZXR1 cm4gbn0saW5qZWN0aW9uOntpbmplY3RNaXhpbjpmdW5jdGlvbihlKXtDLnB1 c2goZSl9fX07ZS5leHBvcnRzPVR9KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9u KGUsdCxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe3ZhciBvPW4oMTUp LHI9by5jcmVhdGVGYWN0b3J5O2lmKCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5P REVfRU5WKXtyPW4oNzcpLmNyZWF0ZUZhY3Rvcnl9dmFyIGk9e2E6cigiYSIp LGFiYnI6cigiYWJiciIpLGFkZHJlc3M6cigiYWRkcmVzcyIpLGFyZWE6cigi YXJlYSIpLGFydGljbGU6cigiYXJ0aWNsZSIpLGFzaWRlOnIoImFzaWRlIiks YXVkaW86cigiYXVkaW8iKSxiOnIoImIiKSxiYXNlOnIoImJhc2UiKSxiZGk6 cigiYmRpIiksYmRvOnIoImJkbyIpLGJpZzpyKCJiaWciKSxibG9ja3F1b3Rl OnIoImJsb2NrcXVvdGUiKSxib2R5OnIoImJvZHkiKSxicjpyKCJiciIpLGJ1 dHRvbjpyKCJidXR0b24iKSxjYW52YXM6cigiY2FudmFzIiksY2FwdGlvbjpy KCJjYXB0aW9uIiksY2l0ZTpyKCJjaXRlIiksY29kZTpyKCJjb2RlIiksY29s OnIoImNvbCIpLGNvbGdyb3VwOnIoImNvbGdyb3VwIiksZGF0YTpyKCJkYXRh IiksZGF0YWxpc3Q6cigiZGF0YWxpc3QiKSxkZDpyKCJkZCIpLGRlbDpyKCJk ZWwiKSxkZXRhaWxzOnIoImRldGFpbHMiKSxkZm46cigiZGZuIiksZGlhbG9n OnIoImRpYWxvZyIpLGRpdjpyKCJkaXYiKSxkbDpyKCJkbCIpLGR0OnIoImR0 IiksZW06cigiZW0iKSxlbWJlZDpyKCJlbWJlZCIpLGZpZWxkc2V0OnIoImZp ZWxkc2V0IiksZmlnY2FwdGlvbjpyKCJmaWdjYXB0aW9uIiksZmlndXJlOnIo ImZpZ3VyZSIpLGZvb3RlcjpyKCJmb290ZXIiKSxmb3JtOnIoImZvcm0iKSxo MTpyKCJoMSIpLGgyOnIoImgyIiksaDM6cigiaDMiKSxoNDpyKCJoNCIpLGg1 OnIoImg1IiksaDY6cigiaDYiKSxoZWFkOnIoImhlYWQiKSxoZWFkZXI6cigi aGVhZGVyIiksaGdyb3VwOnIoImhncm91cCIpLGhyOnIoImhyIiksaHRtbDpy KCJodG1sIiksaTpyKCJpIiksaWZyYW1lOnIoImlmcmFtZSIpLGltZzpyKCJp bWciKSxpbnB1dDpyKCJpbnB1dCIpLGluczpyKCJpbnMiKSxrYmQ6cigia2Jk Iiksa2V5Z2VuOnIoImtleWdlbiIpLGxhYmVsOnIoImxhYmVsIiksbGVnZW5k OnIoImxlZ2VuZCIpLGxpOnIoImxpIiksbGluazpyKCJsaW5rIiksbWFpbjpy KCJtYWluIiksbWFwOnIoIm1hcCIpLG1hcms6cigibWFyayIpLG1lbnU6cigi bWVudSIpLG1lbnVpdGVtOnIoIm1lbnVpdGVtIiksbWV0YTpyKCJtZXRhIiks bWV0ZXI6cigibWV0ZXIiKSxuYXY6cigibmF2Iiksbm9zY3JpcHQ6cigibm9z Y3JpcHQiKSxvYmplY3Q6cigib2JqZWN0Iiksb2w6cigib2wiKSxvcHRncm91 cDpyKCJvcHRncm91cCIpLG9wdGlvbjpyKCJvcHRpb24iKSxvdXRwdXQ6cigi b3V0cHV0IikscDpyKCJwIikscGFyYW06cigicGFyYW0iKSxwaWN0dXJlOnIo InBpY3R1cmUiKSxwcmU6cigicHJlIikscHJvZ3Jlc3M6cigicHJvZ3Jlc3Mi KSxxOnIoInEiKSxycDpyKCJycCIpLHJ0OnIoInJ0IikscnVieTpyKCJydWJ5 IiksczpyKCJzIiksc2FtcDpyKCJzYW1wIiksc2NyaXB0OnIoInNjcmlwdCIp LHNlY3Rpb246cigic2VjdGlvbiIpLHNlbGVjdDpyKCJzZWxlY3QiKSxzbWFs bDpyKCJzbWFsbCIpLHNvdXJjZTpyKCJzb3VyY2UiKSxzcGFuOnIoInNwYW4i KSxzdHJvbmc6cigic3Ryb25nIiksc3R5bGU6cigic3R5bGUiKSxzdWI6cigi c3ViIiksc3VtbWFyeTpyKCJzdW1tYXJ5Iiksc3VwOnIoInN1cCIpLHRhYmxl OnIoInRhYmxlIiksdGJvZHk6cigidGJvZHkiKSx0ZDpyKCJ0ZCIpLHRleHRh cmVhOnIoInRleHRhcmVhIiksdGZvb3Q6cigidGZvb3QiKSx0aDpyKCJ0aCIp LHRoZWFkOnIoInRoZWFkIiksdGltZTpyKCJ0aW1lIiksdGl0bGU6cigidGl0 bGUiKSx0cjpyKCJ0ciIpLHRyYWNrOnIoInRyYWNrIiksdTpyKCJ1IiksdWw6 cigidWwiKSx2YXI6cigidmFyIiksdmlkZW86cigidmlkZW8iKSx3YnI6cigi d2JyIiksY2lyY2xlOnIoImNpcmNsZSIpLGNsaXBQYXRoOnIoImNsaXBQYXRo IiksZGVmczpyKCJkZWZzIiksZWxsaXBzZTpyKCJlbGxpcHNlIiksZzpyKCJn IiksaW1hZ2U6cigiaW1hZ2UiKSxsaW5lOnIoImxpbmUiKSxsaW5lYXJHcmFk aWVudDpyKCJsaW5lYXJHcmFkaWVudCIpLG1hc2s6cigibWFzayIpLHBhdGg6 cigicGF0aCIpLHBhdHRlcm46cigicGF0dGVybiIpLHBvbHlnb246cigicG9s eWdvbiIpLHBvbHlsaW5lOnIoInBvbHlsaW5lIikscmFkaWFsR3JhZGllbnQ6 cigicmFkaWFsR3JhZGllbnQiKSxyZWN0OnIoInJlY3QiKSxzdG9wOnIoInN0 b3AiKSxzdmc6cigic3ZnIiksdGV4dDpyKCJ0ZXh0IiksdHNwYW46cigidHNw YW4iKX07ZS5leHBvcnRzPWl9KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUs dCxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIG8oZSx0 KXtyZXR1cm4gZT09PXQ/MCE9PWV8fDEvZT09MS90OmUhPT1lJiZ0IT09dH1m dW5jdGlvbiByKGUpe3RoaXMubWVzc2FnZT1lLHRoaXMuc3RhY2s9IiJ9ZnVu Y3Rpb24gaShlKXtmdW5jdGlvbiBuKG4saSxhLHMsdSxjLGwpe2lmKHM9c3x8 RCxjPWN8fGEsInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJmwhPT1f JiYidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUpe3ZhciBwPXMrIjoiK2E7 b1twXXx8KCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5PREVfRU5WJiZDKCExLCJZ b3UgYXJlIG1hbnVhbGx5IGNhbGxpbmcgYSBSZWFjdC5Qcm9wVHlwZXMgdmFs aWRhdGlvbiBmdW5jdGlvbiBmb3IgdGhlIGAlc2AgcHJvcCBvbiBgJXNgLiBU aGlzIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgbm90IHdvcmsgaW4gcHJvZHVj dGlvbiB3aXRoIHRoZSBuZXh0IG1ham9yIHZlcnNpb24uIFlvdSBtYXkgYmUg c2VlaW5nIHRoaXMgd2FybmluZyBkdWUgdG8gYSB0aGlyZC1wYXJ0eSBQcm9w VHlwZXMgbGlicmFyeS4gU2VlIGh0dHBzOi8vZmIubWUvcmVhY3Qtd2Fybmlu Zy1kb250LWNhbGwtcHJvcHR5cGVzIGZvciBkZXRhaWxzLiIsYyxzKSxvW3Bd PSEwKX1pZihudWxsPT1pW2FdKXt2YXIgZD1FW3VdO3JldHVybiBuP25ldyBy KG51bGw9PT1pW2FdPyJUaGUgIitkKyIgYCIrYysiYCBpcyBtYXJrZWQgYXMg cmVxdWlyZWQgaW4gYCIrcysiYCwgYnV0IGl0cyB2YWx1ZSBpcyBgbnVsbGAu IjoiVGhlICIrZCsiIGAiK2MrImAgaXMgbWFya2VkIGFzIHJlcXVpcmVkIGlu IGAiK3MrImAsIGJ1dCBpdHMgdmFsdWUgaXMgYHVuZGVmaW5lZGAuIik6bnVs bH1yZXR1cm4gZShpLGEscyx1LGMpfWlmKCJwcm9kdWN0aW9uIiE9PXQuZW52 Lk5PREVfRU5WKXZhciBvPXt9O3ZhciBpPW4uYmluZChudWxsLCExKTtyZXR1 cm4gaS5pc1JlcXVpcmVkPW4uYmluZChudWxsLCEwKSxpfWZ1bmN0aW9uIGEo ZSl7ZnVuY3Rpb24gdCh0LG4sbyxpLGEscyl7dmFyIHU9dFtuXTtpZihtKHUp IT09ZSlyZXR1cm4gbmV3IHIoIkludmFsaWQgIitFW2ldKyIgYCIrYSsiYCBv ZiB0eXBlIGAiK3YodSkrImAgc3VwcGxpZWQgdG8gYCIrbysiYCwgZXhwZWN0 ZWQgYCIrZSsiYC4iKTtyZXR1cm4gbnVsbH1yZXR1cm4gaSh0KX1mdW5jdGlv biBzKGUpe2Z1bmN0aW9uIHQodCxuLG8saSxhKXtpZigiZnVuY3Rpb24iIT10 eXBlb2YgZSlyZXR1cm4gbmV3IHIoIlByb3BlcnR5IGAiK2ErImAgb2YgY29t cG9uZW50IGAiK28rImAgaGFzIGludmFsaWQgUHJvcFR5cGUgbm90YXRpb24g aW5zaWRlIGFycmF5T2YuIik7dmFyIHM9dFtuXTtpZighQXJyYXkuaXNBcnJh eShzKSl7cmV0dXJuIG5ldyByKCJJbnZhbGlkICIrRVtpXSsiIGAiK2ErImAg b2YgdHlwZSBgIittKHMpKyJgIHN1cHBsaWVkIHRvIGAiK28rImAsIGV4cGVj dGVkIGFuIGFycmF5LiIpfWZvcih2YXIgdT0wO3U8cy5sZW5ndGg7dSsrKXt2 YXIgYz1lKHMsdSxvLGksYSsiWyIrdSsiXSIsXyk7aWYoYyBpbnN0YW5jZW9m IEVycm9yKXJldHVybiBjfXJldHVybiBudWxsfXJldHVybiBpKHQpfWZ1bmN0 aW9uIHUoZSl7ZnVuY3Rpb24gdCh0LG4sbyxpLGEpe2lmKCEodFtuXWluc3Rh bmNlb2YgZSkpe3ZhciBzPUVbaV0sdT1lLm5hbWV8fEQ7cmV0dXJuIG5ldyBy KCJJbnZhbGlkICIrcysiIGAiK2ErImAgb2YgdHlwZSBgIitnKHRbbl0pKyJg IHN1cHBsaWVkIHRvIGAiK28rImAsIGV4cGVjdGVkIGluc3RhbmNlIG9mIGAi K3UrImAuIil9cmV0dXJuIG51bGx9cmV0dXJuIGkodCl9ZnVuY3Rpb24gYyhl KXtmdW5jdGlvbiBuKHQsbixpLGEscyl7Zm9yKHZhciB1PXRbbl0sYz0wO2M8 ZS5sZW5ndGg7YysrKWlmKG8odSxlW2NdKSlyZXR1cm4gbnVsbDtyZXR1cm4g bmV3IHIoIkludmFsaWQgIitFW2FdKyIgYCIrcysiYCBvZiB2YWx1ZSBgIit1 KyJgIHN1cHBsaWVkIHRvIGAiK2krImAsIGV4cGVjdGVkIG9uZSBvZiAiK0pT T04uc3RyaW5naWZ5KGUpKyIuIil9cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/ aShuKTooInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJkMoITEsIklu dmFsaWQgYXJndW1lbnQgc3VwcGxpZWQgdG8gb25lT2YsIGV4cGVjdGVkIGFu IGluc3RhbmNlIG9mIGFycmF5LiIpLE4udGhhdFJldHVybnNOdWxsKX1mdW5j dGlvbiBsKGUpe2Z1bmN0aW9uIHQodCxuLG8saSxhKXtpZigiZnVuY3Rpb24i IT10eXBlb2YgZSlyZXR1cm4gbmV3IHIoIlByb3BlcnR5IGAiK2ErImAgb2Yg Y29tcG9uZW50IGAiK28rImAgaGFzIGludmFsaWQgUHJvcFR5cGUgbm90YXRp b24gaW5zaWRlIG9iamVjdE9mLiIpO3ZhciBzPXRbbl0sdT1tKHMpO2lmKCJv YmplY3QiIT09dSl7cmV0dXJuIG5ldyByKCJJbnZhbGlkICIrRVtpXSsiIGAi K2ErImAgb2YgdHlwZSBgIit1KyJgIHN1cHBsaWVkIHRvIGAiK28rImAsIGV4 cGVjdGVkIGFuIG9iamVjdC4iKX1mb3IodmFyIGMgaW4gcylpZihzLmhhc093 blByb3BlcnR5KGMpKXt2YXIgbD1lKHMsYyxvLGksYSsiLiIrYyxfKTtpZihs IGluc3RhbmNlb2YgRXJyb3IpcmV0dXJuIGx9cmV0dXJuIG51bGx9cmV0dXJu IGkodCl9ZnVuY3Rpb24gcChlKXtmdW5jdGlvbiBuKHQsbixvLGksYSl7Zm9y KHZhciBzPTA7czxlLmxlbmd0aDtzKyspe2lmKG51bGw9PSgwLGVbc10pKHQs bixvLGksYSxfKSlyZXR1cm4gbnVsbH1yZXR1cm4gbmV3IHIoIkludmFsaWQg IitFW2ldKyIgYCIrYSsiYCBzdXBwbGllZCB0byBgIitvKyJgLiIpfXJldHVy biBBcnJheS5pc0FycmF5KGUpP2kobik6KCJwcm9kdWN0aW9uIiE9PXQuZW52 Lk5PREVfRU5WJiZDKCExLCJJbnZhbGlkIGFyZ3VtZW50IHN1cHBsaWVkIHRv IG9uZU9mVHlwZSwgZXhwZWN0ZWQgYW4gaW5zdGFuY2Ugb2YgYXJyYXkuIiks Ti50aGF0UmV0dXJuc051bGwpfWZ1bmN0aW9uIGQoZSl7ZnVuY3Rpb24gdCh0 LG4sbyxpLGEpe3ZhciBzPXRbbl0sdT1tKHMpO2lmKCJvYmplY3QiIT09dSl7 cmV0dXJuIG5ldyByKCJJbnZhbGlkICIrRVtpXSsiIGAiK2ErImAgb2YgdHlw ZSBgIit1KyJgIHN1cHBsaWVkIHRvIGAiK28rImAsIGV4cGVjdGVkIGBvYmpl Y3RgLiIpfWZvcih2YXIgYyBpbiBlKXt2YXIgbD1lW2NdO2lmKGwpe3ZhciBw PWwocyxjLG8saSxhKyIuIitjLF8pO2lmKHApcmV0dXJuIHB9fXJldHVybiBu dWxsfXJldHVybiBpKHQpfWZ1bmN0aW9uIGYoZSl7c3dpdGNoKHR5cGVvZiBl KXtjYXNlIm51bWJlciI6Y2FzZSJzdHJpbmciOmNhc2UidW5kZWZpbmVkIjpy ZXR1cm4hMDtjYXNlImJvb2xlYW4iOnJldHVybiFlO2Nhc2Uib2JqZWN0Ijpp ZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlLmV2ZXJ5KGYpO2lmKG51bGw9 PT1lfHx5LmlzVmFsaWRFbGVtZW50KGUpKXJldHVybiEwO3ZhciB0PWIoZSk7 aWYoIXQpcmV0dXJuITE7dmFyIG4sbz10LmNhbGwoZSk7aWYodCE9PWUuZW50 cmllcyl7Zm9yKDshKG49by5uZXh0KCkpLmRvbmU7KWlmKCFmKG4udmFsdWUp KXJldHVybiExfWVsc2UgZm9yKDshKG49by5uZXh0KCkpLmRvbmU7KXt2YXIg cj1uLnZhbHVlO2lmKHImJiFmKHJbMV0pKXJldHVybiExfXJldHVybiEwO2Rl ZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIGgoZSx0KXtyZXR1cm4ic3ltYm9s Ij09PWV8fCgiU3ltYm9sIj09PXRbIkBAdG9TdHJpbmdUYWciXXx8ImZ1bmN0 aW9uIj09dHlwZW9mIFN5bWJvbCYmdCBpbnN0YW5jZW9mIFN5bWJvbCl9ZnVu Y3Rpb24gbShlKXt2YXIgdD10eXBlb2YgZTtyZXR1cm4gQXJyYXkuaXNBcnJh eShlKT8iYXJyYXkiOmUgaW5zdGFuY2VvZiBSZWdFeHA/Im9iamVjdCI6aCh0 LGUpPyJzeW1ib2wiOnR9ZnVuY3Rpb24gdihlKXt2YXIgdD1tKGUpO2lmKCJv YmplY3QiPT09dCl7aWYoZSBpbnN0YW5jZW9mIERhdGUpcmV0dXJuImRhdGUi O2lmKGUgaW5zdGFuY2VvZiBSZWdFeHApcmV0dXJuInJlZ2V4cCJ9cmV0dXJu IHR9ZnVuY3Rpb24gZyhlKXtyZXR1cm4gZS5jb25zdHJ1Y3RvciYmZS5jb25z dHJ1Y3Rvci5uYW1lP2UuY29uc3RydWN0b3IubmFtZTpEfXZhciB5PW4oMTUp LEU9big0OSksXz1uKDc4KSxOPW4oOSksYj1uKDUxKSxDPW4oMiksRD0iPDxh bm9ueW1vdXM+PiIsTz17YXJyYXk6YSgiYXJyYXkiKSxib29sOmEoImJvb2xl YW4iKSxmdW5jOmEoImZ1bmN0aW9uIiksbnVtYmVyOmEoIm51bWJlciIpLG9i amVjdDphKCJvYmplY3QiKSxzdHJpbmc6YSgic3RyaW5nIiksc3ltYm9sOmEo InN5bWJvbCIpLGFueTpmdW5jdGlvbigpe3JldHVybiBpKE4udGhhdFJldHVy bnMobnVsbCkpfSgpLGFycmF5T2Y6cyxlbGVtZW50OmZ1bmN0aW9uKCl7ZnVu Y3Rpb24gZShlLHQsbixvLGkpe3ZhciBhPWVbdF07aWYoIXkuaXNWYWxpZEVs ZW1lbnQoYSkpe3JldHVybiBuZXcgcigiSW52YWxpZCAiK0Vbb10rIiBgIitp KyJgIG9mIHR5cGUgYCIrbShhKSsiYCBzdXBwbGllZCB0byBgIituKyJgLCBl eHBlY3RlZCBhIHNpbmdsZSBSZWFjdEVsZW1lbnQuIil9cmV0dXJuIG51bGx9 cmV0dXJuIGkoZSl9KCksaW5zdGFuY2VPZjp1LG5vZGU6ZnVuY3Rpb24oKXtm dW5jdGlvbiBlKGUsdCxuLG8saSl7aWYoIWYoZVt0XSkpe3JldHVybiBuZXcg cigiSW52YWxpZCAiK0Vbb10rIiBgIitpKyJgIHN1cHBsaWVkIHRvIGAiK24r ImAsIGV4cGVjdGVkIGEgUmVhY3ROb2RlLiIpfXJldHVybiBudWxsfXJldHVy biBpKGUpfSgpLG9iamVjdE9mOmwsb25lT2Y6YyxvbmVPZlR5cGU6cCxzaGFw ZTpkfTtyLnByb3RvdHlwZT1FcnJvci5wcm90b3R5cGUsZS5leHBvcnRzPU99 KS5jYWxsKHQsbigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7 ZnVuY3Rpb24gbyhlLHQsbil7dGhpcy5wcm9wcz1lLHRoaXMuY29udGV4dD10 LHRoaXMucmVmcz11LHRoaXMudXBkYXRlcj1ufHxzfWZ1bmN0aW9uIHIoKXt9 dmFyIGk9big0KSxhPW4oNDcpLHM9big0OCksdT1uKDIwKTtyLnByb3RvdHlw ZT1hLnByb3RvdHlwZSxvLnByb3RvdHlwZT1uZXcgcixvLnByb3RvdHlwZS5j b25zdHJ1Y3Rvcj1vLGkoby5wcm90b3R5cGUsYS5wcm90b3R5cGUpLG8ucHJv dG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50PSEwLGUuZXhwb3J0cz1vfSxm dW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz0iMTUuNC4y In0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7 ZnVuY3Rpb24gbyhlLG8scCxkLGYsaCl7Zm9yKHZhciBtIGluIGUpaWYoZS5o YXNPd25Qcm9wZXJ0eShtKSl7dmFyIHY7dHJ5eyJmdW5jdGlvbiIhPXR5cGVv ZiBlW21dJiYoInByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/dSghMSwi JXM6ICVzIHR5cGUgYCVzYCBpcyBpbnZhbGlkOyBpdCBtdXN0IGJlIGEgZnVu Y3Rpb24sIHVzdWFsbHkgZnJvbSBSZWFjdC5Qcm9wVHlwZXMuIixkfHwiUmVh Y3QgY2xhc3MiLGFbcF0sbSk6aSgiODQiLGR8fCJSZWFjdCBjbGFzcyIsYVtw XSxtKSksdj1lW21dKG8sbSxkLHAsbnVsbCxzKX1jYXRjaChlKXt2PWV9aWYo InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlYmJmMoIXZ8fHYgaW5zdGFu Y2VvZiBFcnJvciwiJXM6IHR5cGUgc3BlY2lmaWNhdGlvbiBvZiAlcyBgJXNg IGlzIGludmFsaWQ7IHRoZSB0eXBlIGNoZWNrZXIgZnVuY3Rpb24gbXVzdCBy ZXR1cm4gYG51bGxgIG9yIGFuIGBFcnJvcmAgYnV0IHJldHVybmVkIGEgJXMu IFlvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gcGFzcyBhbiBhcmd1bWVudCB0 byB0aGUgdHlwZSBjaGVja2VyIGNyZWF0b3IgKGFycmF5T2YsIGluc3RhbmNl T2YsIG9iamVjdE9mLCBvbmVPZiwgb25lT2ZUeXBlLCBhbmQgc2hhcGUgYWxs IHJlcXVpcmUgYW4gYXJndW1lbnQpLiIsZHx8IlJlYWN0IGNsYXNzIixhW3Bd LG0sdHlwZW9mIHYpLHYgaW5zdGFuY2VvZiBFcnJvciYmISh2Lm1lc3NhZ2Ug aW4gbCkpe2xbdi5tZXNzYWdlXT0hMDt2YXIgZz0iIjsicHJvZHVjdGlvbiIh PT10LmVudi5OT0RFX0VOViYmKHJ8fChyPW4oNykpLG51bGwhPT1oP2c9ci5n ZXRTdGFja0FkZGVuZHVtQnlJRChoKTpudWxsIT09ZiYmKGc9ci5nZXRDdXJy ZW50U3RhY2tBZGRlbmR1bShmKSkpLCJwcm9kdWN0aW9uIiE9PXQuZW52Lk5P REVfRU5WJiZjKCExLCJGYWlsZWQgJXMgdHlwZTogJXMlcyIscCx2Lm1lc3Nh Z2UsZyl9fX12YXIgcixpPW4oMTYpLGE9big0OSkscz1uKDc4KSx1PW4oMSks Yz1uKDIpO3ZvaWQgMCE9PXQmJnQuZW52JiYidGVzdCI9PT10LmVudi5OT0RF X0VOViYmKHI9big3KSk7dmFyIGw9e307ZS5leHBvcnRzPW99KS5jYWxsKHQs bigwKSl9LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7KGZ1bmN0aW9u KHQpe2Z1bmN0aW9uIG8oZSl7cmV0dXJuIGkuaXNWYWxpZEVsZW1lbnQoZSl8 fCgicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVj9hKCExLCJSZWFjdC5D aGlsZHJlbi5vbmx5IGV4cGVjdGVkIHRvIHJlY2VpdmUgYSBzaW5nbGUgUmVh Y3QgZWxlbWVudCBjaGlsZC4iKTpyKCIxNDMiKSksZX12YXIgcj1uKDE2KSxp PW4oMTUpLGE9bigxKTtlLmV4cG9ydHM9b30pLmNhbGwodCxuKDApKX0sZnVu Y3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjsoZnVuY3Rpb24odCl7ZnVuY3Rp b24gbyhlLHQpe3JldHVybiBlJiYib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwh PWUua2V5P3AuZXNjYXBlKGUua2V5KTp0LnRvU3RyaW5nKDM2KX1mdW5jdGlv biByKGUsbixpLHYpe3ZhciBnPXR5cGVvZiBlO2lmKCJ1bmRlZmluZWQiIT09 ZyYmImJvb2xlYW4iIT09Z3x8KGU9bnVsbCksbnVsbD09PWV8fCJzdHJpbmci PT09Z3x8Im51bWJlciI9PT1nfHwib2JqZWN0Ij09PWcmJmUuJCR0eXBlb2Y9 PT11KXJldHVybiBpKHYsZSwiIj09PW4/ZitvKGUsMCk6biksMTt2YXIgeSxF LF89MCxOPSIiPT09bj9mOm4raDtpZihBcnJheS5pc0FycmF5KGUpKWZvcih2 YXIgYj0wO2I8ZS5sZW5ndGg7YisrKXk9ZVtiXSxFPU4rbyh5LGIpLF8rPXIo eSxFLGksdik7ZWxzZXt2YXIgQz1jKGUpO2lmKEMpe3ZhciBELE89Qy5jYWxs KGUpO2lmKEMhPT1lLmVudHJpZXMpZm9yKHZhciB3PTA7IShEPU8ubmV4dCgp KS5kb25lOyl5PUQudmFsdWUsRT1OK28oeSx3KyspLF8rPXIoeSxFLGksdik7 ZWxzZXtpZigicHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOVil7dmFyIHg9 IiI7aWYocy5jdXJyZW50KXt2YXIgVD1zLmN1cnJlbnQuZ2V0TmFtZSgpO1Qm Jih4PSIgQ2hlY2sgdGhlIHJlbmRlciBtZXRob2Qgb2YgYCIrVCsiYC4iKX0i cHJvZHVjdGlvbiIhPT10LmVudi5OT0RFX0VOViYmZChtLCJVc2luZyBNYXBz IGFzIGNoaWxkcmVuIGlzIG5vdCB5ZXQgZnVsbHkgc3VwcG9ydGVkLiBJdCBp cyBhbiBleHBlcmltZW50YWwgZmVhdHVyZSB0aGF0IG1pZ2h0IGJlIHJlbW92 ZWQuIENvbnZlcnQgaXQgdG8gYSBzZXF1ZW5jZSAvIGl0ZXJhYmxlIG9mIGtl eWVkIFJlYWN0RWxlbWVudHMgaW5zdGVhZC4lcyIseCksbT0hMH1mb3IoOyEo RD1PLm5leHQoKSkuZG9uZTspe3ZhciBrPUQudmFsdWU7ayYmKHk9a1sxXSxF PU4rcC5lc2NhcGUoa1swXSkraCtvKHksMCksXys9cih5LEUsaSx2KSl9fX1l bHNlIGlmKCJvYmplY3QiPT09Zyl7dmFyIEk9IiI7aWYoInByb2R1Y3Rpb24i IT09dC5lbnYuTk9ERV9FTlYmJihJPSIgSWYgeW91IG1lYW50IHRvIHJlbmRl ciBhIGNvbGxlY3Rpb24gb2YgY2hpbGRyZW4sIHVzZSBhbiBhcnJheSBpbnN0 ZWFkIG9yIHdyYXAgdGhlIG9iamVjdCB1c2luZyBjcmVhdGVGcmFnbWVudChv YmplY3QpIGZyb20gdGhlIFJlYWN0IGFkZC1vbnMuIixlLl9pc1JlYWN0RWxl bWVudCYmKEk9IiBJdCBsb29rcyBsaWtlIHlvdSdyZSB1c2luZyBhbiBlbGVt ZW50IGNyZWF0ZWQgYnkgYSBkaWZmZXJlbnQgdmVyc2lvbiBvZiBSZWFjdC4g TWFrZSBzdXJlIHRvIHVzZSBvbmx5IG9uZSBjb3B5IG9mIFJlYWN0LiIpLHMu Y3VycmVudCkpe3ZhciBQPXMuY3VycmVudC5nZXROYW1lKCk7UCYmKEkrPSIg Q2hlY2sgdGhlIHJlbmRlciBtZXRob2Qgb2YgYCIrUCsiYC4iKX12YXIgUz1T dHJpbmcoZSk7InByb2R1Y3Rpb24iIT09dC5lbnYuTk9ERV9FTlY/bCghMSwi T2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5k OiAlcykuJXMiLCJbb2JqZWN0IE9iamVjdF0iPT09Uz8ib2JqZWN0IHdpdGgg a2V5cyB7IitPYmplY3Qua2V5cyhlKS5qb2luKCIsICIpKyJ9IjpTLEkpOmEo IjMxIiwiW29iamVjdCBPYmplY3RdIj09PVM/Im9iamVjdCB3aXRoIGtleXMg eyIrT2JqZWN0LmtleXMoZSkuam9pbigiLCAiKSsifSI6UyxJKX19cmV0dXJu IF99ZnVuY3Rpb24gaShlLHQsbil7cmV0dXJuIG51bGw9PWU/MDpyKGUsIiIs dCxuKX12YXIgYT1uKDE2KSxzPW4oMTEpLHU9big3NiksYz1uKDUxKSxsPW4o MSkscD1uKDE2NyksZD1uKDIpLGY9Ii4iLGg9IjoiLG09ITE7ZS5leHBvcnRz PWl9KS5jYWxsKHQsbigwKSl9XSl9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanN4L2Nv bXBvbmVudHMuanN4IGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzeC9jb21wb25l bnRzLmpzeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4u NWJjYjUyMDgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9zdGF0 aWMvanN4L2NvbXBvbmVudHMuanN4CkBAIC0wLDAgKzEsOCBAQAorCitpbXBv cnQgUmVhY3QgZnJvbSAncmVhY3QnOworaW1wb3J0IHtyZW5kZXJ9IGZyb20g J3JlYWN0LWRvbSc7CisKK2V4cG9ydCB7CisgIHJlbmRlciwKKyAgUmVhY3Qs Cit9OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL3V0aWxzL2phdmFzY3JpcHQvX19pbml0X18ucHkgYi93 ZWIvcGdhZG1pbi91dGlscy9qYXZhc2NyaXB0L19faW5pdF9fLnB5Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi5jYWM5YTY0YQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3V0aWxzL2phdmFzY3JpcHQv X19pbml0X18ucHkKQEAgLTAsMCArMSw4IEBACisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRv b2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTcsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL3V0aWxzL2phdmFzY3JpcHQvamF2YXNjcmlwdF9idW5kbGVyLnB5IGIv d2ViL3BnYWRtaW4vdXRpbHMvamF2YXNjcmlwdC9qYXZhc2NyaXB0X2J1bmRs ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjRj YTJkYTY3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vdXRpbHMv amF2YXNjcmlwdC9qYXZhc2NyaXB0X2J1bmRsZXIucHkKQEAgLTAsMCArMSw2 MiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdB ZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMp IDIwMTMgLSAyMDE3LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisj IFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVT UUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KworaW1wb3J0IG9zCitmcm9tIGNvbnRleHRsaWIgaW1wb3J0IGNvbnRleHRt YW5hZ2VyCitmcm9tIHN1YnByb2Nlc3MgaW1wb3J0IGNhbGwKK2Zyb20gcGdh ZG1pbi51dGlscyBpbXBvcnQgdSwgZnNfZW5jb2RpbmcsIGZpbGVfcXVvdGUK KworCisjIGVudW0tbGlrZSBmb3IgdHJhY2tpbmcgd2hldGhlciB3ZSBoYXZl CitjbGFzcyBKc1N0YXRlOgorICAgIE5PTkUgPSAwCisgICAgT0xEID0gMQor ICAgIE5FVyA9IDIKKworCitjbGFzcyBKYXZhc2NyaXB0QnVuZGxlcjoKKyAg ICAiIiJCdWlsZHMgSmF2YXNjcmlwdCBidW5kbGUgZmlsZXMgYnkgZGVsZWdh dGluZyB0byB3ZWJwYWNrIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6 CisgICAgICAgIHNlbGYuanNTdGF0ZSA9IEpzU3RhdGUuTk9ORQorCisgICAg ZGVmIGJ1bmRsZShzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg dHJ5X2J1aWxkaW5nX2pzKCkKKyAgICAgICAgICAgIHNlbGYuanNTdGF0ZSA9 IEpzU3RhdGUuTkVXCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAg ICAgICAgd2ViZGlyX3BhdGgoKQorICAgICAgICAgICAgZ2VuZXJhdGVkSmF2 YXNjcmlwdERpciA9IG9zLnBhdGguam9pbih3ZWJkaXJfcGF0aCgpLCAncGdh ZG1pbicsICdzdGF0aWMnLCAnanMnLCAnZ2VuZXJhdGVkJykKKyAgICAgICAg ICAgIGlmIG9zLnBhdGguZXhpc3RzKGdlbmVyYXRlZEphdmFzY3JpcHREaXIp IGFuZCBvcy5saXN0ZGlyKGdlbmVyYXRlZEphdmFzY3JpcHREaXIpOgorICAg ICAgICAgICAgICAgIHNlbGYuanNTdGF0ZSA9IEpzU3RhdGUuT0xECisgICAg ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuanNTdGF0ZSA9 IEpzU3RhdGUuTk9ORQorCisgICAgZGVmIHJlcG9ydChzZWxmKToKKyAgICAg ICAgcmV0dXJuIHNlbGYuanNTdGF0ZQorCisKK0Bjb250ZXh0bWFuYWdlcgor ZGVmIHB1c2hkKG5ld19kaXIpOgorICAgIHByZXZpb3VzX2RpciA9IG9zLmdl dGN3ZCgpCisgICAgb3MuY2hkaXIobmV3X2RpcikKKyAgICB5aWVsZAorICAg IG9zLmNoZGlyKHByZXZpb3VzX2RpcikKKworCitkZWYgd2ViZGlyX3BhdGgo KToKKyAgICBkaXJuYW1lID0gb3MucGF0aC5kaXJuYW1lCisgICAgdGhpc1Bh dGggPSBvcy5wYXRoLnJlYWxwYXRoKHUoX19maWxlX18sIGZzX2VuY29kaW5n KSkKKyAgICByZXR1cm4gZGlybmFtZShkaXJuYW1lKGRpcm5hbWUoZGlybmFt ZSh0aGlzUGF0aCkpKSkKKworCitkZWYgdHJ5X2J1aWxkaW5nX2pzKCk6Cisg ICAgd2l0aCBwdXNoZCh3ZWJkaXJfcGF0aCgpKToKKyAgICAgICAgaWYgY2Fs bChbJ3lhcm4nLCAncnVuJywgJ2J1bmRsZSddKSAhPSAwOgorICAgICAgICAg ICAgcmFpc2UgT1NFcnJvcignRXJyb3IgZXhlY3V0aW5nIGJ1bmRsaW5nIHRo ZSBhcHBsaWNhdGlvbicpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi91dGls cy9qYXZhc2NyaXB0L3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4v dXRpbHMvamF2YXNjcmlwdC90ZXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uY2FjOWE2NGEKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi91dGlscy9qYXZhc2NyaXB0L3Rlc3Rz L19faW5pdF9fLnB5CkBAIC0wLDAgKzEsOCBAQAorIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBU b29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE3LCBUaGUgcGdB ZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi91dGlscy9qYXZhc2NyaXB0L3Rlc3RzL3Rlc3RfamF2YXNjcmlwdF9i dW5kbGVyLnB5IGIvd2ViL3BnYWRtaW4vdXRpbHMvamF2YXNjcmlwdC90ZXN0 cy90ZXN0X2phdmFzY3JpcHRfYnVuZGxlci5weQpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMC4uNjcwMTEzOGQKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi91dGlscy9qYXZhc2NyaXB0L3Rlc3RzL3Rlc3Rf amF2YXNjcmlwdF9idW5kbGVyLnB5CkBAIC0wLDAgKzEsMTE3IEBACisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIw MTcsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0 d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNl CisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisKK2ltcG9y dCBzeXMKKworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNl VGVzdEdlbmVyYXRvcgoraWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAzKToK KyAgICBpbXBvcnQgbW9jaworZWxzZToKKyAgICBpbXBvcnQgdW5pdHRlc3Qu bW9jayBhcyBtb2NrCisKKworY2xhc3MgSmF2YXNjcmlwdEJ1bmRsZXJUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyB0ZXN0cyB0 aGF0IHRoZSBqYXZhc2NyaXB0IGJ1bmRsZXIgdG9vbCBjYXVzZXMgdGhlIGFw cGxpY2F0aW9uIHRvIGJ1bmRsZSwKKyAgICBhbmQgY2FuIGJlIGludm9rZWQg YmVmb3JlIGFuZCBhZnRlciBhcHAgc3RhcnQgY29ycmVjdGx5IiIiCisKKyAg ICBzY2VuYXJpb3MgPSBbKCdzY2VuYXJpbyBuYW1lOiBKYXZhc2NyaXB0QnVu ZGxlclRlc3RDYXNlJywgZGljdCgpKV0KKworICAgIGRlZiBzZXRVcChzZWxm KToKKyAgICAgICAgc2VsZi5tb2NrU3VicHJvY2VzcyA9IG1vY2suTW9jaygp CisgICAgICAgIHNlbGYubW9ja09zID0gbW9jay5Nb2NrKCkKKyAgICAgICAg c3lzLm1vZHVsZXNbJ3N1YnByb2Nlc3MnXSA9IHNlbGYubW9ja1N1YnByb2Nl c3MKKyAgICAgICAgc3lzLm1vZHVsZXNbJ29zJ10gPSBzZWxmLm1vY2tPcwor CisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgIGZyb20gcGdhZG1p bi51dGlscy5qYXZhc2NyaXB0LmphdmFzY3JpcHRfYnVuZGxlciBpbXBvcnQg SmF2YXNjcmlwdEJ1bmRsZXIKKyAgICAgICAgZnJvbSBwZ2FkbWluLnV0aWxz LmphdmFzY3JpcHQuamF2YXNjcmlwdF9idW5kbGVyIGltcG9ydCBKc1N0YXRl CisgICAgICAgIHNlbGYuSmF2YXNjcmlwdEJ1bmRsZXIgPSBKYXZhc2NyaXB0 QnVuZGxlcgorICAgICAgICBzZWxmLkpzU3RhdGUgPSBKc1N0YXRlCisKKyAg ICAgICAgc2VsZi5fYnVuZGxpbmdfc3VjY2VlZHMoKQorICAgICAgICBzZWxm LnJlc2V0VGVzdFN0YXRlKCkKKyAgICAgICAgc2VsZi5fYnVuZGxpbmdfZmFp bHNfYW5kX3RoZXJlX2lzX25vX2V4aXN0aW5nX2J1bmRsZSgpCisgICAgICAg IHNlbGYucmVzZXRUZXN0U3RhdGUoKQorICAgICAgICBzZWxmLl9idW5kbGlu Z19mYWlsc193aGVuX2J1bmRsaW5nX3JldHVybnNfbm9uemVybygpCisgICAg ICAgIHNlbGYucmVzZXRUZXN0U3RhdGUoKQorICAgICAgICBzZWxmLl9idW5k bGluZ19mYWlsc19hbmRfdGhlcmVfaXNfbm9fZXhpc3RpbmdfYnVuZGxlX2Rp cmVjdG9yeSgpCisgICAgICAgIHNlbGYucmVzZXRUZXN0U3RhdGUoKQorICAg ICAgICBzZWxmLl9idW5kbGluZ19mYWlsc19idXRfdGhlcmVfd2FzX2V4aXN0 aW5nX2J1bmRsZSgpCisgICAgICAgIHNlbGYucmVzZXRUZXN0U3RhdGUoKQor CisgICAgZGVmIHJlc2V0VGVzdFN0YXRlKHNlbGYpOgorICAgICAgICBzZWxm Lm1vY2tTdWJwcm9jZXNzLnJlc2V0X21vY2soKQorICAgICAgICBzZWxmLm1v Y2tTdWJwcm9jZXNzLmNhbGwuc2lkZV9lZmZlY3QgPSBOb25lCisgICAgICAg IHNlbGYubW9ja09zLnJlc2V0X21vY2soKQorICAgICAgICBzZWxmLm1vY2tP cy5saXN0ZGlyLnNpZGVfZWZmZWN0ID0gTm9uZQorICAgICAgICBzZWxmLm1v Y2tPcy5wYXRoLmV4aXN0cy5zaWRlX2VmZmVjdCA9IE5vbmUKKworICAgIGRl ZiBfYnVuZGxpbmdfc3VjY2VlZHMoc2VsZik6CisgICAgICAgIGphdmFzY3Jp cHRCdW5kbGVyID0gc2VsZi5KYXZhc2NyaXB0QnVuZGxlcigpCisgICAgICAg IHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYubW9ja1N1YnByb2Nlc3MubWV0 aG9kX2NhbGxzKSwgMCkKKyAgICAgICAgc2VsZi5tb2NrU3VicHJvY2Vzcy5j YWxsLnJldHVybl92YWx1ZSA9IDAKKworICAgICAgICBzZWxmLm1vY2tPcy5s aXN0ZGlyLnJldHVybl92YWx1ZSA9IFt1J2hpc3RvcnkuanMnLCB1J3JlYWN0 Q29tcG9uZW50cy5qcyddCisKKyAgICAgICAgamF2YXNjcmlwdEJ1bmRsZXIu YnVuZGxlKCkKKyAgICAgICAgc2VsZi5tb2NrU3VicHJvY2Vzcy5jYWxsLmFz c2VydF9jYWxsZWRfb25jZV93aXRoKFsneWFybicsICdydW4nLCAnYnVuZGxl J10pCisKKyAgICAgICAgcmVwb3J0ZWRTdGF0ZSA9IGphdmFzY3JpcHRCdW5k bGVyLnJlcG9ydCgpCisgICAgICAgIGV4cGVjdGVkU3RhdGUgPSBzZWxmLkpz U3RhdGUuTkVXCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwb3J0ZWRT dGF0ZSwgZXhwZWN0ZWRTdGF0ZSkKKworICAgIGRlZiBfYnVuZGxpbmdfZmFp bHNfd2hlbl9idW5kbGluZ19yZXR1cm5zX25vbnplcm8oc2VsZik6CisgICAg ICAgIGphdmFzY3JpcHRCdW5kbGVyID0gc2VsZi5KYXZhc2NyaXB0QnVuZGxl cigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYubW9ja1N1 YnByb2Nlc3MubWV0aG9kX2NhbGxzKSwgMCkKKyAgICAgICAgc2VsZi5tb2Nr T3MubGlzdGRpci5yZXR1cm5fdmFsdWUgPSBbXQorICAgICAgICBzZWxmLm1v Y2tTdWJwcm9jZXNzLmNhbGwucmV0dXJuX3ZhbHVlID0gOTkKKworICAgICAg ICBqYXZhc2NyaXB0QnVuZGxlci5idW5kbGUoKQorCisgICAgICAgIHJlcG9y dGVkU3RhdGUgPSBqYXZhc2NyaXB0QnVuZGxlci5yZXBvcnQoKQorICAgICAg ICBleHBlY3RlZFN0YXRlID0gc2VsZi5Kc1N0YXRlLk5PTkUKKyAgICAgICAg c2VsZi5hc3NlcnRFcXVhbChyZXBvcnRlZFN0YXRlLCBleHBlY3RlZFN0YXRl KQorCisgICAgZGVmIF9idW5kbGluZ19mYWlsc19hbmRfdGhlcmVfaXNfbm9f ZXhpc3RpbmdfYnVuZGxlKHNlbGYpOgorICAgICAgICBqYXZhc2NyaXB0QnVu ZGxlciA9IHNlbGYuSmF2YXNjcmlwdEJ1bmRsZXIoKQorICAgICAgICBzZWxm Lm1vY2tTdWJwcm9jZXNzLmNhbGwuc2lkZV9lZmZlY3QgPSBPU0Vycm9yKCJt b2NrIGV4Y2VwdGlvbiBiZWhhdmlvciIpCisgICAgICAgIHNlbGYubW9ja09z LnBhdGguZXhpc3RzLnJldHVybl92YWx1ZSA9IFRydWUKKyAgICAgICAgc2Vs Zi5tb2NrT3MubGlzdGRpci5yZXR1cm5fdmFsdWUgPSBbXQorCisgICAgICAg IGphdmFzY3JpcHRCdW5kbGVyLmJ1bmRsZSgpCisKKyAgICAgICAgcmVwb3J0 ZWRTdGF0ZSA9IGphdmFzY3JpcHRCdW5kbGVyLnJlcG9ydCgpCisgICAgICAg IGV4cGVjdGVkU3RhdGUgPSBzZWxmLkpzU3RhdGUuTk9ORQorICAgICAgICBz ZWxmLmFzc2VydEVxdWFsKHJlcG9ydGVkU3RhdGUsIGV4cGVjdGVkU3RhdGUp CisKKyAgICBkZWYgX2J1bmRsaW5nX2ZhaWxzX2FuZF90aGVyZV9pc19ub19l eGlzdGluZ19idW5kbGVfZGlyZWN0b3J5KHNlbGYpOgorICAgICAgICBqYXZh c2NyaXB0QnVuZGxlciA9IHNlbGYuSmF2YXNjcmlwdEJ1bmRsZXIoKQorICAg ICAgICBzZWxmLm1vY2tTdWJwcm9jZXNzLmNhbGwuc2lkZV9lZmZlY3QgPSBP U0Vycm9yKCJtb2NrIGV4Y2VwdGlvbiBiZWhhdmlvciIpCisgICAgICAgIHNl bGYubW9ja09zLnBhdGguZXhpc3RzLnJldHVybl92YWx1ZSA9IEZhbHNlCisg ICAgICAgIHNlbGYubW9ja09zLmxpc3RkaXIuc2lkZV9lZmZlY3QgPSBPU0Vy cm9yKCJtb2NrIGV4Y2VwdGlvbiBiZWhhdmlvciIpCisKKyAgICAgICAgamF2 YXNjcmlwdEJ1bmRsZXIuYnVuZGxlKCkKKworICAgICAgICByZXBvcnRlZFN0 YXRlID0gamF2YXNjcmlwdEJ1bmRsZXIucmVwb3J0KCkKKyAgICAgICAgZXhw ZWN0ZWRTdGF0ZSA9IHNlbGYuSnNTdGF0ZS5OT05FCisgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWwocmVwb3J0ZWRTdGF0ZSwgZXhwZWN0ZWRTdGF0ZSkKKwor ICAgIGRlZiBfYnVuZGxpbmdfZmFpbHNfYnV0X3RoZXJlX3dhc19leGlzdGlu Z19idW5kbGUoc2VsZik6CisgICAgICAgIGphdmFzY3JpcHRCdW5kbGVyID0g c2VsZi5KYXZhc2NyaXB0QnVuZGxlcigpCisgICAgICAgIHNlbGYubW9ja1N1 YnByb2Nlc3MuY2FsbC5zaWRlX2VmZmVjdCA9IE9TRXJyb3IoIm1vY2sgZXhj ZXB0aW9uIGJlaGF2aW9yIikKKyAgICAgICAgc2VsZi5tb2NrT3MucGF0aC5l eGlzdHMucmV0dXJuX3ZhbHVlID0gVHJ1ZQorICAgICAgICBzZWxmLm1vY2tP cy5saXN0ZGlyLnJldHVybl92YWx1ZSA9IFt1J2hpc3RvcnkuanMnLCB1J3Jl YWN0Q29tcG9uZW50cy5qcyddCisKKyAgICAgICAgamF2YXNjcmlwdEJ1bmRs ZXIuYnVuZGxlKCkKKyAgICAgICAgc2VsZi5tb2NrU3VicHJvY2Vzcy5jYWxs LmFzc2VydF9jYWxsZWRfb25jZV93aXRoKFsneWFybicsICdydW4nLCAnYnVu ZGxlJ10pCisKKyAgICAgICAgcmVwb3J0ZWRTdGF0ZSA9IGphdmFzY3JpcHRC dW5kbGVyLnJlcG9ydCgpCisgICAgICAgIGV4cGVjdGVkU3RhdGUgPSBzZWxm LkpzU3RhdGUuT0xECisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwb3J0 ZWRTdGF0ZSwgZXhwZWN0ZWRTdGF0ZSkKZGlmZiAtLWdpdCBhL3dlYi9yZWdy ZXNzaW9uL1JFQURNRSBiL3dlYi9yZWdyZXNzaW9uL1JFQURNRQppbmRleCBm MGQ3MjgyZS4uODhlZGJkODAgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9u L1JFQURNRQorKysgYi93ZWIvcmVncmVzc2lvbi9SRUFETUUKQEAgLTE3Nywx NiArMTc3LDE3IEBAIEphdmFzY3JpcHQgVGVzdHM6CiAKICAgICBzdWRvIHBv cnQgaW5zdGFsbCBub2RlanM3IHlhcm4KIAorLSBTZWUgYWxzbyB0aGUgdG9w LWxldmVsIHBnYWRtaW4vUkVBRE1FIDogQnVuZGxpbmcgSmF2YXNjcmlwdAor CiAtIEphdmFzY3JpcHQgdGVzdHMgbXVzdCBiZSBydW4gZnJvbSB0aGUgd2Vi IGRpcmVjdG9yeSAoc2luY2UgdGhhdCBpcyB3aGVyZSBub2RlX21vZHVsZXMg YW5kIGthcm1hLmNvbmYgcmVzaWRlKToKIAogICAgIGNkIHdlYi8KIAogLSBJ bnN0YWxsIHRoZSBKUyBtb2R1bGVzIHJlcXVpcmVkIGZvciB0ZXN0aW5nOgog Ci0gICAgeWFybgorICAgIHlhcm4gaW5zdGFsbAogCiAtIE5vdyBydW4gdGhl IHRlc3RzOgogCi0gICAgeWFybiBydW4ga2FybWEgc3RhcnQgLS1zaW5nbGUt cnVuCi0KLQorICAgeWFybiBydW4gdGVzdDprYXJtYQorICAgeWFybiBydW4g dGVzdDprYXJtYS1vbmNlCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9q YXZhc2NyaXB0L2Jyb3dzZXIvbWVudV9zcGVjLmpzIGIvd2ViL3JlZ3Jlc3Np b24vamF2YXNjcmlwdC9icm93c2VyL21lbnVfc3BlYy5qcwppbmRleCAwOWYx MzZmYi4uZTEzYmZlNWUgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL2ph dmFzY3JpcHQvYnJvd3Nlci9tZW51X3NwZWMuanMKKysrIGIvd2ViL3JlZ3Jl c3Npb24vamF2YXNjcmlwdC9icm93c2VyL21lbnVfc3BlYy5qcwpAQCAtNyw5 ICs3LDExIEBACiAvLwogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAotZGVmaW5lKFsi YnJvd3Nlci9tZW51IgotXSwgZnVuY3Rpb24gKCkgewotICBkZXNjcmliZSgi TWVudUl0ZW0iLCBmdW5jdGlvbiAoKSB7CitkZWZpbmUoWworICAncGdhZG1p bicsCisgICdicm93c2VyL21lbnUnLAorXSwgZnVuY3Rpb24gKHBnQWRtaW4p IHsKKyAgZGVzY3JpYmUoJ01lbnVJdGVtJywgZnVuY3Rpb24gKCkgewogICAg IHZhciBNZW51SXRlbSA9IHBnQWRtaW4uQnJvd3Nlci5NZW51SXRlbTsKICAg ICB2YXIgbWVudUl0ZW07CiAKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9u L2phdmFzY3JpcHQvZ2V0dGV4dF9zcGVjLmpzIGIvd2ViL3JlZ3Jlc3Npb24v amF2YXNjcmlwdC9nZXR0ZXh0X3NwZWMuanMKaW5kZXggMmNlOThhMjMuLjU0 ZmM0OThkIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0 L2dldHRleHRfc3BlYy5qcworKysgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2Ny aXB0L2dldHRleHRfc3BlYy5qcwpAQCAtNyw0NSArNyw0NiBAQAogLy8KIC8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKLWRlZmluZShbInNvdXJj ZXMvZ2V0dGV4dCIsICJ0cmFuc2xhdGlvbnMiXSwgZnVuY3Rpb24gKGdldHRl eHQsIHRyYW5zbGF0aW9ucykgewotICBkZXNjcmliZSgidHJhbnNsYXRlIiwg ZnVuY3Rpb24gKCkgewotICAgIGRlc2NyaWJlKCJ3aGVuIHRoZXJlIGlzIG5v IHRyYW5zbGF0aW9uIiwgZnVuY3Rpb24gKCkgewotICAgICAgaXQoInJldHVy bnMgdGhlIG9yaWdpbmFsIHN0cmluZyIsIGZ1bmN0aW9uICgpIHsKLSAgICAg ICAgZXhwZWN0KGdldHRleHQoInNvbWV0aGluZyB0byBiZSB0cmFuc2xhdGVk IikpLnRvRXF1YWwoInNvbWV0aGluZyB0byBiZSB0cmFuc2xhdGVkIik7Ci0g ICAgICB9KTsKLQotICAgICAgZGVzY3JpYmUoIndoZW4gdGhlcmUgYXJlIHN1 YnN0aXR1dGlvbnMiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGl0KCJpbnRl cnBvbGF0ZXMgYSBzdWJzdGl0dXRpb24iLCBmdW5jdGlvbiAoKSB7Ci0gICAg ICAgICAgZXhwZWN0KGdldHRleHQoInRyYW5zbGF0ZSB0ZXh0IGZvciAlKHBl cnNvbilzIiwgeyJwZXJzb24iOiAiU2FyYWgifSkpLnRvRXF1YWwoInRyYW5z bGF0ZSB0ZXh0IGZvciBTYXJhaCIpCi0gICAgICAgIH0pOwotCi0gICAgICAg IGl0KCJpbnRlcnBvbGF0ZXMgbXVsdGlwbGUgc3Vic3RpdHV0aW9ucyIsIGZ1 bmN0aW9uICgpIHsKLSAgICAgICAgICBleHBlY3QoZ2V0dGV4dCgidHJhbnNs YXRlICclKHRleHQpcycgZm9yICUocGVyc29uKXMiLAotICAgICAgICAgICAg ewotICAgICAgICAgICAgICAidGV4dCI6ICJjb25zdGl0dXRpb24iLAotICAg ICAgICAgICAgICAicGVyc29uIjogIlNhcmFoIgotICAgICAgICAgICAgfQot ICAgICAgICAgICkpLnRvRXF1YWwoInRyYW5zbGF0ZSAnY29uc3RpdHV0aW9u JyBmb3IgU2FyYWgiKQotICAgICAgICB9KTsKLSAgICAgIH0pOworaW1wb3J0 IGdldHRleHQgZnJvbSAnc291cmNlcy9nZXR0ZXh0JzsKK2ltcG9ydCB0cmFu c2xhdGlvbnMgZnJvbSAndHJhbnNsYXRpb25zJzsKIAorZGVzY3JpYmUoJ3Ry YW5zbGF0ZScsIGZ1bmN0aW9uICgpIHsKKyAgZGVzY3JpYmUoJ3doZW4gdGhl cmUgaXMgbm8gdHJhbnNsYXRpb24nLCBmdW5jdGlvbiAoKSB7CisgICAgaXQo J3JldHVybnMgdGhlIG9yaWdpbmFsIHN0cmluZycsIGZ1bmN0aW9uICgpIHsK KyAgICAgIGV4cGVjdChnZXR0ZXh0KCdzb21ldGhpbmcgdG8gYmUgdHJhbnNs YXRlZCcpKS50b0VxdWFsKCdzb21ldGhpbmcgdG8gYmUgdHJhbnNsYXRlZCcp OwogICAgIH0pOwogCi0gICAgZGVzY3JpYmUoIndoZW4gdGhlcmUgaXMgYSB0 cmFuc2xhdGlvbiIsIGZ1bmN0aW9uICgpIHsKLSAgICAgIGJlZm9yZUVhY2go ZnVuY3Rpb24gKCkgewotICAgICAgICB0cmFuc2xhdGlvbnNbJ3NvbWV0aGlu ZyB0byBiZSB0cmFuc2xhdGVkJ10gPSAnZXR3YXMgenVtIHVlYmVyc2V0emVu JzsKLSAgICAgICAgdHJhbnNsYXRpb25zWydhbm90aGVyIHRyYW5zbGF0aW9u IGZvciAlKHBlcnNvbilzJ10gPSAnZWluZSB3ZWl0ZXJlIFVlYmVyc2V0enVu ZyBmdWVyICUocGVyc29uKXMnOworICAgIGRlc2NyaWJlKCd3aGVuIHRoZXJl IGFyZSBzdWJzdGl0dXRpb25zJywgZnVuY3Rpb24gKCkgeworICAgICAgaXQo J2ludGVycG9sYXRlcyBhIHN1YnN0aXR1dGlvbicsIGZ1bmN0aW9uICgpIHsK KyAgICAgICAgZXhwZWN0KGdldHRleHQoJ3RyYW5zbGF0ZSB0ZXh0IGZvciAl KHBlcnNvbilzJywgeydwZXJzb24nOiAnU2FyYWgnfSkpLnRvRXF1YWwoJ3Ry YW5zbGF0ZSB0ZXh0IGZvciBTYXJhaCcpOwogICAgICAgfSk7CiAKLSAgICAg IGl0KCJyZXR1cm5zIHRoZSB0cmFuc2xhdGlvbiIsIGZ1bmN0aW9uICgpIHsK LSAgICAgICAgZXhwZWN0KGdldHRleHQoInNvbWV0aGluZyB0byBiZSB0cmFu c2xhdGVkIikpLnRvRXF1YWwoImV0d2FzIHp1bSB1ZWJlcnNldHplbiIpOwor ICAgICAgaXQoJ2ludGVycG9sYXRlcyBtdWx0aXBsZSBzdWJzdGl0dXRpb25z JywgZnVuY3Rpb24gKCkgeworICAgICAgICBleHBlY3QoZ2V0dGV4dCgndHJh bnNsYXRlIFwnJSh0ZXh0KXNcJyBmb3IgJShwZXJzb24pcycsCisgICAgICAg ICAgeworICAgICAgICAgICAgJ3RleHQnOiAnY29uc3RpdHV0aW9uJywKKyAg ICAgICAgICAgICdwZXJzb24nOiAnU2FyYWgnLAorICAgICAgICAgIH0KKyAg ICAgICAgKSkudG9FcXVhbCgndHJhbnNsYXRlIFwnY29uc3RpdHV0aW9uXCcg Zm9yIFNhcmFoJyk7CiAgICAgICB9KTsKKyAgICB9KTsKKworICB9KTsKKwor ICBkZXNjcmliZSgnd2hlbiB0aGVyZSBpcyBhIHRyYW5zbGF0aW9uJywgZnVu Y3Rpb24gKCkgeworICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgeworICAg ICAgdHJhbnNsYXRpb25zWydzb21ldGhpbmcgdG8gYmUgdHJhbnNsYXRlZCdd ID0gJ2V0d2FzIHp1bSB1ZWJlcnNldHplbic7CisgICAgICB0cmFuc2xhdGlv bnNbJ2Fub3RoZXIgdHJhbnNsYXRpb24gZm9yICUocGVyc29uKXMnXSA9ICdl aW5lIHdlaXRlcmUgVWViZXJzZXR6dW5nIGZ1ZXIgJShwZXJzb24pcyc7Cisg ICAgfSk7CisKKyAgICBpdCgncmV0dXJucyB0aGUgdHJhbnNsYXRpb24nLCBm dW5jdGlvbiAoKSB7CisgICAgICBleHBlY3QoZ2V0dGV4dCgnc29tZXRoaW5n IHRvIGJlIHRyYW5zbGF0ZWQnKSkudG9FcXVhbCgnZXR3YXMgenVtIHVlYmVy c2V0emVuJyk7CisgICAgfSk7CiAKLSAgICAgIGRlc2NyaWJlKCJ3aGVuIHRo ZXJlIGlzIGEgc3Vic3RpdHV0aW9uIiwgZnVuY3Rpb24gKCkgewotICAgICAg ICBpdCgiaW50ZXJwb2xhdGVzIHRoZSBzdWJzdGl0dXRpb24iLCBmdW5jdGlv biAoKSB7Ci0gICAgICAgICAgZXhwZWN0KGdldHRleHQoImFub3RoZXIgdHJh bnNsYXRpb24gZm9yICUocGVyc29uKXMiLCB7InBlcnNvbiI6ICJTYXJhaCJ9 KSkKLSAgICAgICAgICAgIC50b0VxdWFsKCJlaW5lIHdlaXRlcmUgVWViZXJz ZXR6dW5nIGZ1ZXIgU2FyYWgiKTsKLSAgICAgICAgfSk7CisgICAgZGVzY3Jp YmUoJ3doZW4gdGhlcmUgaXMgYSBzdWJzdGl0dXRpb24nLCBmdW5jdGlvbiAo KSB7CisgICAgICBpdCgnaW50ZXJwb2xhdGVzIHRoZSBzdWJzdGl0dXRpb24n LCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGV4cGVjdChnZXR0ZXh0KCdhbm90 aGVyIHRyYW5zbGF0aW9uIGZvciAlKHBlcnNvbilzJywgeydwZXJzb24nOiAn U2FyYWgnfSkpCisgICAgICAgICAgLnRvRXF1YWwoJ2VpbmUgd2VpdGVyZSBV ZWJlcnNldHp1bmcgZnVlciBTYXJhaCcpOwogICAgICAgfSk7CiAgICAgfSk7 CiAgIH0pOwpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlw dC9qYXNtaW5lX2NhcHR1cmVfd2FybmluZ3NfYmVmb3JlYWxsLmpzIGIvd2Vi L3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9qYXNtaW5lX2NhcHR1cmVfd2Fybmlu Z3NfYmVmb3JlYWxsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwLi5hODNlNmY2MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9yZWdy ZXNzaW9uL2phdmFzY3JpcHQvamFzbWluZV9jYXB0dXJlX3dhcm5pbmdzX2Jl Zm9yZWFsbC5qcwpAQCAtMCwwICsxLDIzIEBACisvLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLworLy8KKy8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwg VG9vbHMKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE3LCBUaGUg cGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisvLyBUaGlzIHNvZnR3YXJlIGlz IHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKy8vCisv Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvKiBlc2xpbnQtZGlz YWJsZSBuby1jb25zb2xlICovCisKK2JlZm9yZUFsbChmdW5jdGlvbiAoKSB7 CisgIHNweU9uKGNvbnNvbGUsICd3YXJuJykuYW5kLmNhbGxUaHJvdWdoKCk7 CisgIHNweU9uKGNvbnNvbGUsICdlcnJvcicpLmFuZC5jYWxsVGhyb3VnaCgp OworfSk7CisKK2FmdGVyRWFjaChmdW5jdGlvbiAoZG9uZSkgeworICBzZXRU aW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAgICBleHBlY3QoY29uc29sZS53YXJu KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpOworICAgIGV4cGVjdChjb25zb2xl LmVycm9yKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpOworICAgIGRvbmUoKTsK KyAgfSwgMCk7Cit9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NlbGVjdGlv bi9jb2x1bW5fc2VsZWN0b3Jfc3BlYy5qcyBiL3dlYi9yZWdyZXNzaW9uL2ph dmFzY3JpcHQvc2VsZWN0aW9uL2NvbHVtbl9zZWxlY3Rvcl9zcGVjLmpzCmlu ZGV4IDdmYTY5YWVmLi43NGQxMzdhNCAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jl c3Npb24vamF2YXNjcmlwdC9zZWxlY3Rpb24vY29sdW1uX3NlbGVjdG9yX3Nw ZWMuanMKKysrIGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zZWxlY3Rp b24vY29sdW1uX3NlbGVjdG9yX3NwZWMuanMKQEAgLTEsNDE5ICsxLDQyMyBA QAotZGVmaW5lKAotICBbImpxdWVyeSIsCi0gICAgInVuZGVyc2NvcmUiLAot ICAgICJzb3VyY2VzL3NlbGVjdGlvbi9jb2x1bW5fc2VsZWN0b3IiLAotICAg ICJzb3VyY2VzL3NlbGVjdGlvbi9hY3RpdmVfY2VsbF9jYXB0dXJlIiwKLSAg ICAic291cmNlcy9zZWxlY3Rpb24vZ3JpZF9zZWxlY3RvciIsCi0gICAgJ3Nv dXJjZXMvc2VsZWN0aW9uL3hjZWxsX3NlbGVjdGlvbl9tb2RlbCcsCi0KLSAg ICAic2xpY2tncmlkIiwKLSAgICAnc291cmNlcy9zbGlja2dyaWQvcGdzbGlj ay5jZWxscmFuZ2VkZWNvcmF0b3InLAotICAgICdzb3VyY2VzL3NsaWNrZ3Jp ZC9wZ3NsaWNrLmNlbGxyYW5nZXNlbGVjdG9yJywKLSAgICAic2xpY2tncmlk L3NsaWNrLmdyaWQiLAotICBdLAotICBmdW5jdGlvbiAoJCwgXywgQ29sdW1u U2VsZWN0b3IsIEFjdGl2ZUNlbGxDYXB0dXJlLCBHcmlkU2VsZWN0b3IsIFhD ZWxsU2VsZWN0aW9uTW9kZWwpIHsKLSAgICB2YXIgS0VZX1JJR0hUID0gMzk7 Ci0gICAgdmFyIEtFWV9MRUZUID0gMzc7Ci0gICAgdmFyIEtFWV9VUCA9IDM4 OwotICAgIHZhciBLRVlfRE9XTiA9IDQwOwotCi0gICAgdmFyIFNsaWNrID0g d2luZG93LlNsaWNrOwotICAgIHZhciBTbGlja0dyaWQgPSBTbGljay5Hcmlk OwotCi0gICAgZGVzY3JpYmUoIkNvbHVtblNlbGVjdG9yIiwgZnVuY3Rpb24g KCkgewotICAgICAgdmFyIGNvbnRhaW5lciwgZGF0YSwgY29sdW1ucywgb3B0 aW9uczsKLSAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgewotICAgICAg ICBjb250YWluZXIgPSAkKCI8ZGl2PjwvZGl2PiIpOwotICAgICAgICBjb250 YWluZXIuaGVpZ2h0KDk5OTkpOwotICAgICAgICBjb250YWluZXIud2lkdGgo OTk5OSk7Ci0KLSAgICAgICAgZGF0YSA9IFt7Ci0gICAgICAgICAgJ3NvbWUt Y29sdW1uLW5hbWUnOiAnZmlyc3QgdmFsdWUnLAotICAgICAgICAgICdzZWNv bmQgY29sdW1uJzogJ3NlY29uZCB2YWx1ZScsCi0gICAgICAgICAgJ3RoaXJk IGNvbHVtbic6ICdub25zZWxlY3RhYmxlIHZhbHVlJwotICAgICAgICB9LCB7 Ci0gICAgICAgICAgJ3NvbWUtY29sdW1uLW5hbWUnOiAncm93IDEgLSBmaXJz dCB2YWx1ZScsCi0gICAgICAgICAgJ3NlY29uZCBjb2x1bW4nOiAncm93IDEg LSBzZWNvbmQgdmFsdWUnLAotICAgICAgICAgICd0aGlyZCBjb2x1bW4nOiAn cm93IDEgLSBub25zZWxlY3RhYmxlIHZhbHVlJwotICAgICAgICB9XTsKLQot ICAgICAgICBjb2x1bW5zID0gWwotICAgICAgICAgIHsKLSAgICAgICAgICAg IGlkOiAncm93LWhlYWRlci1jb2x1bW4nLAotICAgICAgICAgICAgbmFtZTog J3JvdyBoZWFkZXIgY29sdW1uIG5hbWUnLAotICAgICAgICAgICAgc2VsZWN0 YWJsZTogZmFsc2UsCi0gICAgICAgICAgICBkaXNwbGF5X25hbWU6ICdyb3cg aGVhZGVyIGNvbHVtbiBuYW1lJywKLSAgICAgICAgICAgIGNvbHVtbl90eXBl OiAndGV4dCcKLSAgICAgICAgICB9LAotICAgICAgICAgIHsKLSAgICAgICAg ICAgIGlkOiAnMScsCi0gICAgICAgICAgICBuYW1lOiAnc29tZS1jb2x1bW4t bmFtZScsCi0gICAgICAgICAgICBwb3M6IDAsCi0gICAgICAgICAgICBkaXNw bGF5X25hbWU6ICdzb21lLWNvbHVtbi1uYW1lJywKLSAgICAgICAgICAgIGNv bHVtbl90eXBlOiAndGV4dCcKLSAgICAgICAgICB9LAotICAgICAgICAgIHsK LSAgICAgICAgICAgIGlkOiAnMicsCi0gICAgICAgICAgICBuYW1lOiAnc2Vj b25kIGNvbHVtbicsCi0gICAgICAgICAgICBwb3M6IDEsCi0gICAgICAgICAg ICBkaXNwbGF5X25hbWU6ICdzZWNvbmQgY29sdW1uJywKLSAgICAgICAgICAg IGNvbHVtbl90eXBlOiAnanNvbicKLSAgICAgICAgICB9LAotICAgICAgICAg IHsKLSAgICAgICAgICAgIGlkOiAndGhpcmQtY29sdW1uLWlkJywKLSAgICAg ICAgICAgIG5hbWU6ICd0aGlyZCBjb2x1bW4nLAotICAgICAgICAgICAgcG9z OiAyLAotICAgICAgICAgICAgZGlzcGxheV9uYW1lOiAndGhpcmQgY29sdW1u JywKLSAgICAgICAgICAgIGNvbHVtbl90eXBlOiAndGV4dCcKLSAgICAgICAg ICB9LAotICAgICAgICAgIHsKLSAgICAgICAgICAgIG5hbWU6ICdzb21lLW5v bi1zZWxlY3RhYmxlLWNvbHVtbicsCi0gICAgICAgICAgICBzZWxlY3RhYmxl OiBmYWxzZSwKLSAgICAgICAgICAgIHBvczogMywKLSAgICAgICAgICAgIGRp c3BsYXlfbmFtZTogJ3NvbWUtbm9uLXNlbGVjdGFibGUtY29sdW1uJywKLSAg ICAgICAgICAgIGNvbHVtbl90eXBlOiAnbnVtZXJpYycKLSAgICAgICAgICB9 Ci0gICAgICAgIF07Ci0gICAgICB9KTsKLQotICAgICAgaXQoImRpc3BsYXlz IHRoZSBuYW1lIG9mIHRoZSBjb2x1bW4iLCBmdW5jdGlvbiAoKSB7Ci0gICAg ICAgIHNldHVwR3JpZChjb2x1bW5zKTsKLQotICAgICAgICBleHBlY3QoJChj b250YWluZXIuZmluZCgnLnNsaWNrLWhlYWRlci1jb2x1bW5zIC5zbGljay1j b2x1bW4tbmFtZScpWzFdKS50ZXh0KCkpCi0gICAgICAgICAgLnRvQ29udGFp bignc29tZS1jb2x1bW4tbmFtZScpOwotICAgICAgICBleHBlY3QoJChjb250 YWluZXIuZmluZCgnLnNsaWNrLWhlYWRlci1jb2x1bW5zIC5zbGljay1jb2x1 bW4tbmFtZScpWzFdKS50ZXh0KCkpCi0gICAgICAgICAgLnRvQ29udGFpbign dGV4dCcpOwotICAgICAgICBleHBlY3QoJChjb250YWluZXIuZmluZCgnLnNs aWNrLWhlYWRlci1jb2x1bW5zIC5zbGljay1jb2x1bW4tbmFtZScpWzJdKS50 ZXh0KCkpCi0gICAgICAgICAgLnRvQ29udGFpbignc2Vjb25kIGNvbHVtbicp OwotICAgICAgICBleHBlY3QoJChjb250YWluZXIuZmluZCgnLnNsaWNrLWhl YWRlci1jb2x1bW5zIC5zbGljay1jb2x1bW4tbmFtZScpWzJdKS50ZXh0KCkp Ci0gICAgICAgICAgLnRvQ29udGFpbignanNvbicpOwotICAgICAgfSk7Ci0K LSAgICAgIGl0KCJwcmVzZXJ2ZXMgdGhlIG90aGVyIGF0dHJpYnV0ZXMgb2Yg Y29sdW1uIGRlZmluaXRpb25zIiwgZnVuY3Rpb24gKCkgewotICAgICAgICB2 YXIgY29sdW1uU2VsZWN0b3IgPSBuZXcgQ29sdW1uU2VsZWN0b3IoKTsKLSAg ICAgICAgdmFyIHNlbGVjdGFibGVDb2x1bW5zID0gY29sdW1uU2VsZWN0b3Iu Z2V0Q29sdW1uRGVmaW5pdGlvbnMoY29sdW1ucyk7Ci0KLSAgICAgICAgZXhw ZWN0KHNlbGVjdGFibGVDb2x1bW5zWzFdLmlkKS50b0JlKCcxJyk7Ci0gICAg ICB9KTsKLQotICAgICAgZGVzY3JpYmUoIndpdGggQWN0aXZlQ2VsbENhcHR1 cmUsIENlbGxTZWxlY3Rpb25Nb2RlbCwgYW5kIEdyaWRTZWxlY3Rvcjogc2Vs ZWN0aW5nIGNvbHVtbnMiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIHZhciBn cmlkLCBjZWxsU2VsZWN0aW9uTW9kZWw7Ci0gICAgICAgIGJlZm9yZUVhY2go ZnVuY3Rpb24gKCkgewotICAgICAgICAgIHZhciBjb2x1bW5TZWxlY3RvciA9 IG5ldyBDb2x1bW5TZWxlY3RvcigpOwotICAgICAgICAgIGNvbHVtbnMgPSBj b2x1bW5TZWxlY3Rvci5nZXRDb2x1bW5EZWZpbml0aW9ucyhjb2x1bW5zKTsK LSAgICAgICAgICBkYXRhID0gW107Ci0gICAgICAgICAgZm9yICh2YXIgaSA9 IDA7IGkgPCAxMDsgaSsrKSB7Ci0gICAgICAgICAgICBkYXRhLnB1c2goewot ICAgICAgICAgICAgICAnc29tZS1jb2x1bW4tbmFtZSc6ICdzb21lLXZhbHVl LScgKyBpLAotICAgICAgICAgICAgICAnc2Vjb25kIGNvbHVtbic6ICdzZWNv bmQgdmFsdWUgJyArIGksCi0gICAgICAgICAgICAgICd0aGlyZCBjb2x1bW4n OiAndGhpcmQgdmFsdWUgJyArIGksCi0gICAgICAgICAgICAgICdmb3VydGgg Y29sdW1uJzogJ2ZvdXJ0aCB2YWx1ZSAnICsgaSwKLSAgICAgICAgICAgIH0p OwotICAgICAgICAgIH0KLSAgICAgICAgICBncmlkID0gbmV3IFNsaWNrR3Jp ZChjb250YWluZXIsIGRhdGEsIGNvbHVtbnMpOwotCi0gICAgICAgICAgZ3Jp ZC5yZWdpc3RlclBsdWdpbihuZXcgQWN0aXZlQ2VsbENhcHR1cmUoKSk7Ci0g ICAgICAgICAgY2VsbFNlbGVjdGlvbk1vZGVsID0gbmV3IFhDZWxsU2VsZWN0 aW9uTW9kZWwoKTsKLSAgICAgICAgICBncmlkLnNldFNlbGVjdGlvbk1vZGVs KGNlbGxTZWxlY3Rpb25Nb2RlbCk7Ci0KLSAgICAgICAgICBncmlkLnJlZ2lz dGVyUGx1Z2luKGNvbHVtblNlbGVjdG9yKTsKLSAgICAgICAgICBncmlkLmlu dmFsaWRhdGUoKTsKLSAgICAgICAgICAkKCJib2R5IikuYXBwZW5kKGNvbnRh aW5lcik7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIGFmdGVyRWFjaChmdW5j dGlvbiAoKSB7Ci0gICAgICAgICAgJCgiYm9keSIpLmZpbmQoY29udGFpbmVy KS5yZW1vdmUoKTsKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisv LworLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8vIENv cHlyaWdodCAoQykgMjAxMyAtIDIwMTcsIFRoZSBwZ0FkbWluIERldmVsb3Bt ZW50IFRlYW0KKy8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIg dGhlIFBvc3RncmVTUUwgTGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vCisKK2ltcG9ydCAkIGZyb20gJ2pxdWVyeSc7CisKK2lt cG9ydCBTbGljayBmcm9tICdzbGlja2dyaWQnOworaW1wb3J0ICdzbGlja2dy aWQuZ3JpZCc7CisKK2ltcG9ydCBDb2x1bW5TZWxlY3RvciBmcm9tICdzb3Vy Y2VzL3NlbGVjdGlvbi9jb2x1bW5fc2VsZWN0b3InOworaW1wb3J0IEFjdGl2 ZUNlbGxDYXB0dXJlIGZyb20gJ3NvdXJjZXMvc2VsZWN0aW9uL2FjdGl2ZV9j ZWxsX2NhcHR1cmUnOworaW1wb3J0ICdzb3VyY2VzL3NlbGVjdGlvbi9ncmlk X3NlbGVjdG9yJzsKK2ltcG9ydCBYQ2VsbFNlbGVjdGlvbk1vZGVsIGZyb20g J3NvdXJjZXMvc2VsZWN0aW9uL3hjZWxsX3NlbGVjdGlvbl9tb2RlbCc7Citp bXBvcnQgJ3NvdXJjZXMvc2xpY2tncmlkL3Bnc2xpY2suY2VsbHJhbmdlZGVj b3JhdG9yJzsKK2ltcG9ydCAnc291cmNlcy9zbGlja2dyaWQvcGdzbGljay5j ZWxscmFuZ2VzZWxlY3Rvcic7CisKK2Rlc2NyaWJlKCdDb2x1bW5TZWxlY3Rv cicsIGZ1bmN0aW9uICgpIHsKKyAgdmFyIGNvbnRhaW5lciwgZGF0YSwgY29s dW1ucywgb3B0aW9uczsKKyAgdmFyIFNsaWNrR3JpZCA9IFNsaWNrLkdyaWQ7 CisgIHZhciBLRVlfUklHSFQgPSAzOTsKKyAgdmFyIEtFWV9MRUZUID0gMzc7 CisgIHZhciBLRVlfVVAgPSAzODsKKyAgdmFyIEtFWV9ET1dOID0gNDA7CisK KyAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7CisgICAgY29udGFpbmVyID0g JCgnPGRpdj48L2Rpdj4nKTsKKyAgICBjb250YWluZXIuaGVpZ2h0KDk5OTkp OworICAgIGNvbnRhaW5lci53aWR0aCg5OTk5KTsKKworICAgIGRhdGEgPSBb eworICAgICAgJ3NvbWUtY29sdW1uLW5hbWUnOiAnZmlyc3QgdmFsdWUnLAor ICAgICAgJ3NlY29uZCBjb2x1bW4nOiAnc2Vjb25kIHZhbHVlJywKKyAgICAg ICd0aGlyZCBjb2x1bW4nOiAnbm9uc2VsZWN0YWJsZSB2YWx1ZScKKyAgICB9 LCB7CisgICAgICAnc29tZS1jb2x1bW4tbmFtZSc6ICdyb3cgMSAtIGZpcnN0 IHZhbHVlJywKKyAgICAgICdzZWNvbmQgY29sdW1uJzogJ3JvdyAxIC0gc2Vj b25kIHZhbHVlJywKKyAgICAgICd0aGlyZCBjb2x1bW4nOiAncm93IDEgLSBu b25zZWxlY3RhYmxlIHZhbHVlJworICAgIH1dOworCisgICAgY29sdW1ucyA9 IFsKKyAgICAgIHsKKyAgICAgICAgaWQ6ICdyb3ctaGVhZGVyLWNvbHVtbics CisgICAgICAgIG5hbWU6ICdyb3cgaGVhZGVyIGNvbHVtbiBuYW1lJywKKyAg ICAgICAgc2VsZWN0YWJsZTogZmFsc2UsCisgICAgICAgIGRpc3BsYXlfbmFt ZTogJ3JvdyBoZWFkZXIgY29sdW1uIG5hbWUnLAorICAgICAgICBjb2x1bW5f dHlwZTogJ3RleHQnCisgICAgICB9LAorICAgICAgeworICAgICAgICBpZDog JzEnLAorICAgICAgICBuYW1lOiAnc29tZS1jb2x1bW4tbmFtZScsCisgICAg ICAgIHBvczogMCwKKyAgICAgICAgZGlzcGxheV9uYW1lOiAnc29tZS1jb2x1 bW4tbmFtZScsCisgICAgICAgIGNvbHVtbl90eXBlOiAndGV4dCcKKyAgICAg IH0sCisgICAgICB7CisgICAgICAgIGlkOiAnMicsCisgICAgICAgIG5hbWU6 ICdzZWNvbmQgY29sdW1uJywKKyAgICAgICAgcG9zOiAxLAorICAgICAgICBk aXNwbGF5X25hbWU6ICdzZWNvbmQgY29sdW1uJywKKyAgICAgICAgY29sdW1u X3R5cGU6ICdqc29uJworICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgaWQ6 ICd0aGlyZC1jb2x1bW4taWQnLAorICAgICAgICBuYW1lOiAndGhpcmQgY29s dW1uJywKKyAgICAgICAgcG9zOiAyLAorICAgICAgICBkaXNwbGF5X25hbWU6 ICd0aGlyZCBjb2x1bW4nLAorICAgICAgICBjb2x1bW5fdHlwZTogJ3RleHQn CisgICAgICB9LAorICAgICAgeworICAgICAgICBuYW1lOiAnc29tZS1ub24t c2VsZWN0YWJsZS1jb2x1bW4nLAorICAgICAgICBzZWxlY3RhYmxlOiBmYWxz ZSwKKyAgICAgICAgcG9zOiAzLAorICAgICAgICBkaXNwbGF5X25hbWU6ICdz b21lLW5vbi1zZWxlY3RhYmxlLWNvbHVtbicsCisgICAgICAgIGNvbHVtbl90 eXBlOiAnbnVtZXJpYycKKyAgICAgIH0KKyAgICBdOworICB9KTsKKworICBp dCgnZGlzcGxheXMgdGhlIG5hbWUgb2YgdGhlIGNvbHVtbicsIGZ1bmN0aW9u ICgpIHsKKyAgICBzZXR1cEdyaWQoY29sdW1ucyk7CisKKyAgICBleHBlY3Qo JChjb250YWluZXIuZmluZCgnLnNsaWNrLWhlYWRlci1jb2x1bW5zIC5zbGlj ay1jb2x1bW4tbmFtZScpWzFdKS50ZXh0KCkpCisgICAgICAudG9Db250YWlu KCdzb21lLWNvbHVtbi1uYW1lJyk7CisgICAgZXhwZWN0KCQoY29udGFpbmVy LmZpbmQoJy5zbGljay1oZWFkZXItY29sdW1ucyAuc2xpY2stY29sdW1uLW5h bWUnKVsxXSkudGV4dCgpKQorICAgICAgLnRvQ29udGFpbigndGV4dCcpOwor ICAgIGV4cGVjdCgkKGNvbnRhaW5lci5maW5kKCcuc2xpY2staGVhZGVyLWNv bHVtbnMgLnNsaWNrLWNvbHVtbi1uYW1lJylbMl0pLnRleHQoKSkKKyAgICAg IC50b0NvbnRhaW4oJ3NlY29uZCBjb2x1bW4nKTsKKyAgICBleHBlY3QoJChj b250YWluZXIuZmluZCgnLnNsaWNrLWhlYWRlci1jb2x1bW5zIC5zbGljay1j b2x1bW4tbmFtZScpWzJdKS50ZXh0KCkpCisgICAgICAudG9Db250YWluKCdq c29uJyk7CisgIH0pOworCisgIGl0KCdwcmVzZXJ2ZXMgdGhlIG90aGVyIGF0 dHJpYnV0ZXMgb2YgY29sdW1uIGRlZmluaXRpb25zJywgZnVuY3Rpb24gKCkg eworICAgIHZhciBjb2x1bW5TZWxlY3RvciA9IG5ldyBDb2x1bW5TZWxlY3Rv cigpOworICAgIHZhciBzZWxlY3RhYmxlQ29sdW1ucyA9IGNvbHVtblNlbGVj dG9yLmdldENvbHVtbkRlZmluaXRpb25zKGNvbHVtbnMpOworCisgICAgZXhw ZWN0KHNlbGVjdGFibGVDb2x1bW5zWzFdLmlkKS50b0JlKCcxJyk7CisgIH0p OworCisgIGRlc2NyaWJlKCd3aXRoIEFjdGl2ZUNlbGxDYXB0dXJlLCBDZWxs U2VsZWN0aW9uTW9kZWwsIGFuZCBHcmlkU2VsZWN0b3I6IHNlbGVjdGluZyBj b2x1bW5zJywgZnVuY3Rpb24gKCkgeworICAgIHZhciBncmlkLCBjZWxsU2Vs ZWN0aW9uTW9kZWw7CisgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7Cisg ICAgICB2YXIgY29sdW1uU2VsZWN0b3IgPSBuZXcgQ29sdW1uU2VsZWN0b3Io KTsKKyAgICAgIGNvbHVtbnMgPSBjb2x1bW5TZWxlY3Rvci5nZXRDb2x1bW5E ZWZpbml0aW9ucyhjb2x1bW5zKTsKKyAgICAgIGRhdGEgPSBbXTsKKyAgICAg IGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkrKykgeworICAgICAgICBkYXRh LnB1c2goeworICAgICAgICAgICdzb21lLWNvbHVtbi1uYW1lJzogJ3NvbWUt dmFsdWUtJyArIGksCisgICAgICAgICAgJ3NlY29uZCBjb2x1bW4nOiAnc2Vj b25kIHZhbHVlICcgKyBpLAorICAgICAgICAgICd0aGlyZCBjb2x1bW4nOiAn dGhpcmQgdmFsdWUgJyArIGksCisgICAgICAgICAgJ2ZvdXJ0aCBjb2x1bW4n OiAnZm91cnRoIHZhbHVlICcgKyBpLAogICAgICAgICB9KTsKKyAgICAgIH0K KyAgICAgIGdyaWQgPSBuZXcgU2xpY2tHcmlkKGNvbnRhaW5lciwgZGF0YSwg Y29sdW1ucyk7CiAKLSAgICAgICAgZGVzY3JpYmUoIndoZW4gdGhlIHVzZXIg Y2xpY2tzIGEgY29sdW1uIGhlYWRlciIsIGZ1bmN0aW9uICgpIHsKLSAgICAg ICAgICBpdCgic2VsZWN0cyB0aGUgY29sdW1uIiwgZnVuY3Rpb24gKCkgewot ICAgICAgICAgICAgY29udGFpbmVyLmZpbmQoJy5zbGljay1oZWFkZXItY29s dW1uOmNvbnRhaW5zKHNvbWUtY29sdW1uLW5hbWUpJykuY2xpY2soKTsKLSAg ICAgICAgICAgIHZhciBzZWxlY3RlZFJhbmdlcyA9IGNlbGxTZWxlY3Rpb25N b2RlbC5nZXRTZWxlY3RlZFJhbmdlcygpOwotICAgICAgICAgICAgZXhwZWN0 T25seVRoZUZpcnN0Q29sdW1uVG9CZVNlbGVjdGVkKHNlbGVjdGVkUmFuZ2Vz KTsKLSAgICAgICAgICB9KTsKLQotICAgICAgICAgIGl0KCJ0b2dnbGVzIGEg c2VsZWN0ZWQgY2xhc3MgdG8gdGhlIGhlYWRlciBjZWxsIiwgZnVuY3Rpb24g KCkgewotICAgICAgICAgICAgY29udGFpbmVyLmZpbmQoJy5zbGljay1oZWFk ZXItY29sdW1uOmNvbnRhaW5zKHNlY29uZCBjb2x1bW4pJykuY2xpY2soKTsK LSAgICAgICAgICAgIGV4cGVjdCgkKGNvbnRhaW5lci5maW5kKCcuc2xpY2st aGVhZGVyLWNvbHVtbjpjb250YWlucyhzZWNvbmQgY29sdW1uKScpKS5oYXND bGFzcygnc2VsZWN0ZWQnKSkKLSAgICAgICAgICAgICAgLnRvQmUodHJ1ZSk7 CisgICAgICBncmlkLnJlZ2lzdGVyUGx1Z2luKG5ldyBBY3RpdmVDZWxsQ2Fw dHVyZSgpKTsKKyAgICAgIGNlbGxTZWxlY3Rpb25Nb2RlbCA9IG5ldyBYQ2Vs bFNlbGVjdGlvbk1vZGVsKCk7CisgICAgICBncmlkLnNldFNlbGVjdGlvbk1v ZGVsKGNlbGxTZWxlY3Rpb25Nb2RlbCk7CiAKLSAgICAgICAgICAgIGNvbnRh aW5lci5maW5kKCcuc2xpY2staGVhZGVyLWNvbHVtbjpjb250YWlucyhzZWNv bmQgY29sdW1uKScpLmNsaWNrKCk7Ci0gICAgICAgICAgICBleHBlY3QoJChj b250YWluZXIuZmluZCgnLnNsaWNrLWhlYWRlci1jb2x1bW46Y29udGFpbnMo c2Vjb25kIGNvbHVtbiknKSkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpCi0gICAg ICAgICAgICAgIC50b0JlKGZhbHNlKTsKLSAgICAgICAgICB9KTsKLSAgICAg ICAgfSk7CisgICAgICBncmlkLnJlZ2lzdGVyUGx1Z2luKGNvbHVtblNlbGVj dG9yKTsKKyAgICAgIGdyaWQuaW52YWxpZGF0ZSgpOworICAgICAgJCgnYm9k eScpLmFwcGVuZChjb250YWluZXIpOworICAgIH0pOwogCi0gICAgICAgIGRl c2NyaWJlKCJ3aGVuIHRoZSB1c2VyIGNsaWNrcyBhbiBhZGRpdGlvbmFsIGNv bHVtbiBoZWFkZXIiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgYmVmb3Jl RWFjaChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBjb250YWluZXIuZmlu ZCgnLnNsaWNrLWhlYWRlci1jb2x1bW46Y29udGFpbnMoc29tZS1jb2x1bW4t bmFtZSknKS5jbGljaygpOwotICAgICAgICAgICAgY29udGFpbmVyLmZpbmQo Jy5zbGljay1oZWFkZXItY29sdW1uOmNvbnRhaW5zKHNlY29uZCBjb2x1bW4p JykuY2xpY2soKTsKLSAgICAgICAgICB9KTsKKyAgICBhZnRlckVhY2goZnVu Y3Rpb24gKCkgeworICAgICAgJCgnYm9keScpLmZpbmQoY29udGFpbmVyKS5y ZW1vdmUoKTsKKyAgICB9KTsKIAotICAgICAgICAgIGl0KCJzZWxlY3RzIGFk ZGl0aW9uYWwgY29sdW1ucyIsIGZ1bmN0aW9uICgpIHsKKyAgICBkZXNjcmli ZSgnd2hlbiB0aGUgdXNlciBjbGlja3MgYSBjb2x1bW4gaGVhZGVyJywgZnVu Y3Rpb24gKCkgeworICAgICAgaXQoJ3NlbGVjdHMgdGhlIGNvbHVtbicsIGZ1 bmN0aW9uICgpIHsKKyAgICAgICAgY29udGFpbmVyLmZpbmQoJy5zbGljay1o ZWFkZXItY29sdW1uOmNvbnRhaW5zKHNvbWUtY29sdW1uLW5hbWUpJykuY2xp Y2soKTsKKyAgICAgICAgdmFyIHNlbGVjdGVkUmFuZ2VzID0gY2VsbFNlbGVj dGlvbk1vZGVsLmdldFNlbGVjdGVkUmFuZ2VzKCk7CisgICAgICAgIGV4cGVj dE9ubHlUaGVGaXJzdENvbHVtblRvQmVTZWxlY3RlZChzZWxlY3RlZFJhbmdl cyk7CisgICAgICB9KTsKIAotICAgICAgICAgICAgdmFyIHNlbGVjdGVkUmFu Z2VzID0gY2VsbFNlbGVjdGlvbk1vZGVsLmdldFNlbGVjdGVkUmFuZ2VzKCk7 CisgICAgICBpdCgndG9nZ2xlcyBhIHNlbGVjdGVkIGNsYXNzIHRvIHRoZSBo ZWFkZXIgY2VsbCcsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgY29udGFpbmVy LmZpbmQoJy5zbGljay1oZWFkZXItY29sdW1uOmNvbnRhaW5zKHNlY29uZCBj b2x1bW4pJykuY2xpY2soKTsKKyAgICAgICAgZXhwZWN0KCQoY29udGFpbmVy LmZpbmQoJy5zbGljay1oZWFkZXItY29sdW1uOmNvbnRhaW5zKHNlY29uZCBj b2x1bW4pJykpLmhhc0NsYXNzKCdzZWxlY3RlZCcpKQorICAgICAgICAgIC50 b0JlKHRydWUpOwogCi0gICAgICAgICAgICBleHBlY3Qoc2VsZWN0ZWRSYW5n ZXMubGVuZ3RoKS50b0JlKDIpOwotICAgICAgICAgICAgdmFyIGNvbHVtbjEg PSBzZWxlY3RlZFJhbmdlc1swXTsKLSAgICAgICAgICAgIGV4cGVjdChjb2x1 bW4xLmZyb21DZWxsKS50b0JlKDEpOwotICAgICAgICAgICAgZXhwZWN0KGNv bHVtbjEudG9DZWxsKS50b0JlKDEpOworICAgICAgICBjb250YWluZXIuZmlu ZCgnLnNsaWNrLWhlYWRlci1jb2x1bW46Y29udGFpbnMoc2Vjb25kIGNvbHVt biknKS5jbGljaygpOworICAgICAgICBleHBlY3QoJChjb250YWluZXIuZmlu ZCgnLnNsaWNrLWhlYWRlci1jb2x1bW46Y29udGFpbnMoc2Vjb25kIGNvbHVt biknKSkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpCisgICAgICAgICAgLnRvQmUo ZmFsc2UpOworICAgICAgfSk7CisgICAgfSk7CiAKLSAgICAgICAgICAgIHZh ciBjb2x1bW4yID0gc2VsZWN0ZWRSYW5nZXNbMV07Ci0gICAgICAgICAgICBl eHBlY3QoY29sdW1uMi5mcm9tQ2VsbCkudG9CZSgyKTsKLSAgICAgICAgICAg IGV4cGVjdChjb2x1bW4yLnRvQ2VsbCkudG9CZSgyKTsKLSAgICAgICAgICB9 KTsKKyAgICBkZXNjcmliZSgnd2hlbiB0aGUgdXNlciBjbGlja3MgYW4gYWRk aXRpb25hbCBjb2x1bW4gaGVhZGVyJywgZnVuY3Rpb24gKCkgeworICAgICAg YmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7CisgICAgICAgIGNvbnRhaW5lci5m aW5kKCcuc2xpY2staGVhZGVyLWNvbHVtbjpjb250YWlucyhzb21lLWNvbHVt bi1uYW1lKScpLmNsaWNrKCk7CisgICAgICAgIGNvbnRhaW5lci5maW5kKCcu c2xpY2staGVhZGVyLWNvbHVtbjpjb250YWlucyhzZWNvbmQgY29sdW1uKScp LmNsaWNrKCk7CisgICAgICB9KTsKIAotICAgICAgICAgIGRlc2NyaWJlKCJh bmQgcHJlc3NlcyBzaGlmdCArIHJpZ2h0LWFycm93IiwgZnVuY3Rpb24gKCkg ewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7Ci0gICAg ICAgICAgICAgIHByZXNzU2hpZnRBcnJvdyhLRVlfUklHSFQpOwotICAgICAg ICAgICAgfSk7Ci0KLSAgICAgICAgICAgIGl0KCJrZWVwcyB0aGUgbGFzdCBj b2x1bW4gc2VsZWN0ZWQiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAg IGV4cGVjdChjZWxsU2VsZWN0aW9uTW9kZWwuZ2V0U2VsZWN0ZWRSYW5nZXMo KS5sZW5ndGgpLnRvQmUoMSk7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAg ICAgICAgaXQoImdyb3dzIHRoZSBzZWxlY3Rpb24gdG8gdGhlIHJpZ2h0Iiwg ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWRSYW5n ZSA9IGNlbGxTZWxlY3Rpb25Nb2RlbC5nZXRTZWxlY3RlZFJhbmdlcygpWzBd OwotICAgICAgICAgICAgICBleHBlY3Qoc2VsZWN0ZWRSYW5nZS5mcm9tQ2Vs bCkudG9CZSgyKTsKLSAgICAgICAgICAgICAgZXhwZWN0KHNlbGVjdGVkUmFu Z2UudG9DZWxsKS50b0JlKDMpOwotICAgICAgICAgICAgICBleHBlY3Qoc2Vs ZWN0ZWRSYW5nZS5mcm9tUm93KS50b0JlKDApOwotICAgICAgICAgICAgICBl eHBlY3Qoc2VsZWN0ZWRSYW5nZS50b1JvdykudG9CZSg5KTsKLSAgICAgICAg ICAgIH0pOwotCi0gICAgICAgICAgICBpdCgia2VlcHMgc2VsZWN0ZWQgY2xh c3Mgb24gY29sdW1ucyAyIGFuZCAzIiwgZnVuY3Rpb24gKCkgewotICAgICAg ICAgICAgICBleHBlY3QoJChjb250YWluZXIuZmluZCgnLnNsaWNrLWhlYWRl ci1jb2x1bW46Y29udGFpbnMoc2Vjb25kIGNvbHVtbiknKSkuaGFzQ2xhc3Mo J3NlbGVjdGVkJykpCi0gICAgICAgICAgICAgICAgLnRvQmUodHJ1ZSk7Ci0g ICAgICAgICAgICAgIGV4cGVjdCgkKGNvbnRhaW5lci5maW5kKCcuc2xpY2st aGVhZGVyLWNvbHVtbjpjb250YWlucyh0aGlyZCBjb2x1bW4pJykpLmhhc0Ns YXNzKCdzZWxlY3RlZCcpKQotICAgICAgICAgICAgICAgIC50b0JlKHRydWUp OwotICAgICAgICAgICAgICBleHBlY3QoJChjb250YWluZXIuZmluZCgnLnNs aWNrLWhlYWRlci1jb2x1bW46Y29udGFpbnMoc29tZS1jb2x1bW4tbmFtZSkn KSkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpCi0gICAgICAgICAgICAgICAgLnRv QmUoZmFsc2UpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgfSk7Cisg ICAgICBpdCgnc2VsZWN0cyBhZGRpdGlvbmFsIGNvbHVtbnMnLCBmdW5jdGlv biAoKSB7CiAKLSAgICAgICAgICBkZXNjcmliZSgid2hlbiB0aGUgdXNlciBk ZXNlbGVjdHMgdGhlIGxhc3Qgc2VsZWN0ZWQgY29sdW1uIGhlYWRlciIsIGZ1 bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24g KCkgewotICAgICAgICAgICAgICBjb250YWluZXIuZmluZCgnLnNsaWNrLWhl YWRlci1jb2x1bW46Y29udGFpbnMoc2Vjb25kIGNvbHVtbiknKS5jbGljaygp OwotICAgICAgICAgICAgfSk7CisgICAgICAgIHZhciBzZWxlY3RlZFJhbmdl cyA9IGNlbGxTZWxlY3Rpb25Nb2RlbC5nZXRTZWxlY3RlZFJhbmdlcygpOwog Ci0gICAgICAgICAgICBkZXNjcmliZSgiYW5kIHByZXNzZXMgc2hpZnQgKyBy aWdodC1hcnJvdyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgaXQo ImZpcnN0IGFuZCBzZWNvbmQgY29sdW1ucyBhcmUgc2VsZWN0ZWQiLCBmdW5j dGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgcHJlc3NTaGlmdEFycm93KEtF WV9SSUdIVCk7CisgICAgICAgIGV4cGVjdChzZWxlY3RlZFJhbmdlcy5sZW5n dGgpLnRvQmUoMik7CisgICAgICAgIHZhciBjb2x1bW4xID0gc2VsZWN0ZWRS YW5nZXNbMF07CisgICAgICAgIGV4cGVjdChjb2x1bW4xLmZyb21DZWxsKS50 b0JlKDEpOworICAgICAgICBleHBlY3QoY29sdW1uMS50b0NlbGwpLnRvQmUo MSk7CiAKLSAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWRSYW5nZXMgPSBj ZWxsU2VsZWN0aW9uTW9kZWwuZ2V0U2VsZWN0ZWRSYW5nZXMoKTsKKyAgICAg ICAgdmFyIGNvbHVtbjIgPSBzZWxlY3RlZFJhbmdlc1sxXTsKKyAgICAgICAg ZXhwZWN0KGNvbHVtbjIuZnJvbUNlbGwpLnRvQmUoMik7CisgICAgICAgIGV4 cGVjdChjb2x1bW4yLnRvQ2VsbCkudG9CZSgyKTsKKyAgICAgIH0pOwogCi0g ICAgICAgICAgICAgICAgZXhwZWN0KHNlbGVjdGVkUmFuZ2VzLmxlbmd0aCku dG9CZSgxKTsKLSAgICAgICAgICAgICAgICBleHBlY3Qoc2VsZWN0ZWRSYW5n ZXNbMF0uZnJvbUNlbGwpLnRvQmUoMSk7Ci0gICAgICAgICAgICAgICAgZXhw ZWN0KHNlbGVjdGVkUmFuZ2VzWzBdLnRvQ2VsbCkudG9CZSgyKTsKLSAgICAg ICAgICAgICAgICBleHBlY3Qoc2VsZWN0ZWRSYW5nZXNbMF0uZnJvbVJvdyku dG9CZSgwKTsKLSAgICAgICAgICAgICAgICBleHBlY3Qoc2VsZWN0ZWRSYW5n ZXNbMF0udG9Sb3cpLnRvQmUoOSk7Ci0gICAgICAgICAgICAgIH0pOwotICAg ICAgICAgICAgfSk7Ci0gICAgICAgICAgfSk7CisgICAgICBkZXNjcmliZSgn YW5kIHByZXNzZXMgc2hpZnQgKyByaWdodC1hcnJvdycsIGZ1bmN0aW9uICgp IHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7CisgICAgICAg ICAgcHJlc3NTaGlmdEFycm93KEtFWV9SSUdIVCk7CiAgICAgICAgIH0pOwog Ci0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHRoZSB1c2VyIGNsaWNrcyBhIGNv bHVtbiBoZWFkZXIgZGVzY3JpcHRpb24iLCBmdW5jdGlvbiAoKSB7Ci0gICAg ICAgICAgaXQoInNlbGVjdHMgdGhlIGNvbHVtbiIsIGZ1bmN0aW9uICgpIHsK LSAgICAgICAgICAgIGNvbnRhaW5lci5maW5kKCcuc2xpY2staGVhZGVyLWNv bHVtbnMgc3Bhbi5jb2x1bW4tZGVzY3JpcHRpb246Y29udGFpbnMoc29tZS1j b2x1bW4tbmFtZSknKS5jbGljaygpOworICAgICAgICBpdCgna2VlcHMgdGhl IGxhc3QgY29sdW1uIHNlbGVjdGVkJywgZnVuY3Rpb24gKCkgeworICAgICAg ICAgIGV4cGVjdChjZWxsU2VsZWN0aW9uTW9kZWwuZ2V0U2VsZWN0ZWRSYW5n ZXMoKS5sZW5ndGgpLnRvQmUoMSk7CisgICAgICAgIH0pOwogCi0gICAgICAg ICAgICB2YXIgc2VsZWN0ZWRSYW5nZXMgPSBjZWxsU2VsZWN0aW9uTW9kZWwu Z2V0U2VsZWN0ZWRSYW5nZXMoKTsKLSAgICAgICAgICAgIGV4cGVjdE9ubHlU aGVGaXJzdENvbHVtblRvQmVTZWxlY3RlZChzZWxlY3RlZFJhbmdlcyk7Ci0g ICAgICAgICAgfSk7CisgICAgICAgIGl0KCdncm93cyB0aGUgc2VsZWN0aW9u IHRvIHRoZSByaWdodCcsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICB2YXIg c2VsZWN0ZWRSYW5nZSA9IGNlbGxTZWxlY3Rpb25Nb2RlbC5nZXRTZWxlY3Rl ZFJhbmdlcygpWzBdOworICAgICAgICAgIGV4cGVjdChzZWxlY3RlZFJhbmdl LmZyb21DZWxsKS50b0JlKDIpOworICAgICAgICAgIGV4cGVjdChzZWxlY3Rl ZFJhbmdlLnRvQ2VsbCkudG9CZSgzKTsKKyAgICAgICAgICBleHBlY3Qoc2Vs ZWN0ZWRSYW5nZS5mcm9tUm93KS50b0JlKDApOworICAgICAgICAgIGV4cGVj dChzZWxlY3RlZFJhbmdlLnRvUm93KS50b0JlKDkpOworICAgICAgICB9KTsK IAotICAgICAgICAgIGl0KCJ0b2dnbGVzIGEgc2VsZWN0ZWQgY2xhc3MgdG8g dGhlIGhlYWRlciBjZWxsIiwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg Y29udGFpbmVyLmZpbmQoJy5zbGljay1oZWFkZXItY29sdW1uIHNwYW4uY29s dW1uLWRlc2NyaXB0aW9uOmNvbnRhaW5zKHNlY29uZCBjb2x1bW4pJykuY2xp Y2soKTsKLSAgICAgICAgICAgIGV4cGVjdCgkKGNvbnRhaW5lci5maW5kKCcu c2xpY2staGVhZGVyLWNvbHVtbjpjb250YWlucyhzZWNvbmQgY29sdW1uKScp KS5oYXNDbGFzcygnc2VsZWN0ZWQnKSkKLSAgICAgICAgICAgICAgLnRvQmUo dHJ1ZSk7CisgICAgICAgIGl0KCdrZWVwcyBzZWxlY3RlZCBjbGFzcyBvbiBj b2x1bW5zIDIgYW5kIDMnLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgZXhw ZWN0KCQoY29udGFpbmVyLmZpbmQoJy5zbGljay1oZWFkZXItY29sdW1uOmNv bnRhaW5zKHNlY29uZCBjb2x1bW4pJykpLmhhc0NsYXNzKCdzZWxlY3RlZCcp KQorICAgICAgICAgICAgLnRvQmUodHJ1ZSk7CisgICAgICAgICAgZXhwZWN0 KCQoY29udGFpbmVyLmZpbmQoJy5zbGljay1oZWFkZXItY29sdW1uOmNvbnRh aW5zKHRoaXJkIGNvbHVtbiknKSkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpCisg ICAgICAgICAgICAudG9CZSh0cnVlKTsKKyAgICAgICAgICBleHBlY3QoJChj b250YWluZXIuZmluZCgnLnNsaWNrLWhlYWRlci1jb2x1bW46Y29udGFpbnMo c29tZS1jb2x1bW4tbmFtZSknKSkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpCisg ICAgICAgICAgICAudG9CZShmYWxzZSk7CisgICAgICAgIH0pOworICAgICAg fSk7CiAKLSAgICAgICAgICAgIGNvbnRhaW5lci5maW5kKCcuc2xpY2staGVh ZGVyLWNvbHVtbiBzcGFuLmNvbHVtbi1kZXNjcmlwdGlvbjpjb250YWlucyhz ZWNvbmQgY29sdW1uKScpLmNsaWNrKCk7Ci0gICAgICAgICAgICBleHBlY3Qo JChjb250YWluZXIuZmluZCgnLnNsaWNrLWhlYWRlci1jb2x1bW46Y29udGFp bnMoc2Vjb25kIGNvbHVtbiknKSkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpCi0g ICAgICAgICAgICAgIC50b0JlKGZhbHNlKTsKLSAgICAgICAgICB9KTsKKyAg ICAgIGRlc2NyaWJlKCd3aGVuIHRoZSB1c2VyIGRlc2VsZWN0cyB0aGUgbGFz dCBzZWxlY3RlZCBjb2x1bW4gaGVhZGVyJywgZnVuY3Rpb24gKCkgeworICAg ICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICBjb250 YWluZXIuZmluZCgnLnNsaWNrLWhlYWRlci1jb2x1bW46Y29udGFpbnMoc2Vj b25kIGNvbHVtbiknKS5jbGljaygpOwogICAgICAgICB9KTsKIAotICAgICAg ICBkZXNjcmliZSgid2hlbiBhIHJvdyBpcyBzZWxlY3RlZCIsIGZ1bmN0aW9u ICgpIHsKLSAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKLSAg ICAgICAgICAgIHZhciBzZWxlY3RlZFJhbmdlcyA9IFtuZXcgU2xpY2suUmFu Z2UoMCwgMCwgMCwgMSldOwotICAgICAgICAgICAgY2VsbFNlbGVjdGlvbk1v ZGVsLnNldFNlbGVjdGVkUmFuZ2VzKHNlbGVjdGVkUmFuZ2VzKTsKLSAgICAg ICAgICB9KTsKKyAgICAgICAgZGVzY3JpYmUoJ2FuZCBwcmVzc2VzIHNoaWZ0 ICsgcmlnaHQtYXJyb3cnLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgaXQo J2ZpcnN0IGFuZCBzZWNvbmQgY29sdW1ucyBhcmUgc2VsZWN0ZWQnLCBmdW5j dGlvbiAoKSB7CisgICAgICAgICAgICBwcmVzc1NoaWZ0QXJyb3coS0VZX1JJ R0hUKTsKIAotICAgICAgICAgIGl0KCJkZXNlbGVjdHMgdGhlIHJvdyIsIGZ1 bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGNvbnRhaW5lci5maW5kKCcuc2xp Y2staGVhZGVyLWNvbHVtbicpWzFdLmNsaWNrKCk7CiAgICAgICAgICAgICB2 YXIgc2VsZWN0ZWRSYW5nZXMgPSBjZWxsU2VsZWN0aW9uTW9kZWwuZ2V0U2Vs ZWN0ZWRSYW5nZXMoKTsKIAogICAgICAgICAgICAgZXhwZWN0KHNlbGVjdGVk UmFuZ2VzLmxlbmd0aCkudG9CZSgxKTsKLQotICAgICAgICAgICAgdmFyIGNv bHVtbiA9IHNlbGVjdGVkUmFuZ2VzWzBdOwotCi0gICAgICAgICAgICBleHBl Y3QoY29sdW1uLmZyb21DZWxsKS50b0JlKDEpOwotICAgICAgICAgICAgZXhw ZWN0KGNvbHVtbi50b0NlbGwpLnRvQmUoMSk7Ci0gICAgICAgICAgICBleHBl Y3QoY29sdW1uLmZyb21Sb3cpLnRvQmUoMCk7Ci0gICAgICAgICAgICBleHBl Y3QoY29sdW1uLnRvUm93KS50b0JlKDkpOworICAgICAgICAgICAgZXhwZWN0 KHNlbGVjdGVkUmFuZ2VzWzBdLmZyb21DZWxsKS50b0JlKDEpOworICAgICAg ICAgICAgZXhwZWN0KHNlbGVjdGVkUmFuZ2VzWzBdLnRvQ2VsbCkudG9CZSgy KTsKKyAgICAgICAgICAgIGV4cGVjdChzZWxlY3RlZFJhbmdlc1swXS5mcm9t Um93KS50b0JlKDApOworICAgICAgICAgICAgZXhwZWN0KHNlbGVjdGVkUmFu Z2VzWzBdLnRvUm93KS50b0JlKDkpOwogICAgICAgICAgIH0pOwogICAgICAg ICB9KTsKKyAgICAgIH0pOworICAgIH0pOwogCi0gICAgICAgIGRlc2NyaWJl KCJjbGlja2luZyBhIHNlY29uZCB0aW1lIiwgZnVuY3Rpb24gKCkgewotICAg ICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg Y29udGFpbmVyLmZpbmQoJy5zbGljay1oZWFkZXItY29sdW1uJylbMV0uY2xp Y2soKTsKLSAgICAgICAgICB9KTsKKyAgICBkZXNjcmliZSgnd2hlbiB0aGUg dXNlciBjbGlja3MgYSBjb2x1bW4gaGVhZGVyIGRlc2NyaXB0aW9uJywgZnVu Y3Rpb24gKCkgeworICAgICAgaXQoJ3NlbGVjdHMgdGhlIGNvbHVtbicsIGZ1 bmN0aW9uICgpIHsKKyAgICAgICAgY29udGFpbmVyLmZpbmQoJy5zbGljay1o ZWFkZXItY29sdW1ucyBzcGFuLmNvbHVtbi1kZXNjcmlwdGlvbjpjb250YWlu cyhzb21lLWNvbHVtbi1uYW1lKScpLmNsaWNrKCk7CiAKLSAgICAgICAgICBp dCgiZGVzZWxlY3RzIHRoZSBjb2x1bW4iLCBmdW5jdGlvbiAoKSB7Ci0gICAg ICAgICAgICBjb250YWluZXIuZmluZCgnLnNsaWNrLWhlYWRlci1jb2x1bW4n KVsxXS5jbGljaygpOwotICAgICAgICAgICAgdmFyIHNlbGVjdGVkUmFuZ2Vz ID0gY2VsbFNlbGVjdGlvbk1vZGVsLmdldFNlbGVjdGVkUmFuZ2VzKCk7Cisg ICAgICAgIHZhciBzZWxlY3RlZFJhbmdlcyA9IGNlbGxTZWxlY3Rpb25Nb2Rl bC5nZXRTZWxlY3RlZFJhbmdlcygpOworICAgICAgICBleHBlY3RPbmx5VGhl Rmlyc3RDb2x1bW5Ub0JlU2VsZWN0ZWQoc2VsZWN0ZWRSYW5nZXMpOworICAg ICAgfSk7CiAKLSAgICAgICAgICAgIGV4cGVjdChzZWxlY3RlZFJhbmdlcy5s ZW5ndGgpLnRvRXF1YWwoMCk7Ci0gICAgICAgICAgfSkKLSAgICAgICAgfSk7 CisgICAgICBpdCgndG9nZ2xlcyBhIHNlbGVjdGVkIGNsYXNzIHRvIHRoZSBo ZWFkZXIgY2VsbCcsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgY29udGFpbmVy LmZpbmQoJy5zbGljay1oZWFkZXItY29sdW1uIHNwYW4uY29sdW1uLWRlc2Ny aXB0aW9uOmNvbnRhaW5zKHNlY29uZCBjb2x1bW4pJykuY2xpY2soKTsKKyAg ICAgICAgZXhwZWN0KCQoY29udGFpbmVyLmZpbmQoJy5zbGljay1oZWFkZXIt Y29sdW1uOmNvbnRhaW5zKHNlY29uZCBjb2x1bW4pJykpLmhhc0NsYXNzKCdz ZWxlY3RlZCcpKQorICAgICAgICAgIC50b0JlKHRydWUpOwogCi0gICAgICAg IGRlc2NyaWJlKCJ3aGVuIHRoZSBjb2x1bW4gaXMgbm90IHNlbGVjdGFibGUi LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgaXQoImRvZXMgbm90IHNlbGVj dCB0aGUgY29sdW1uIiwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgJChj b250YWluZXIuZmluZCgnLnNsaWNrLWhlYWRlci1jb2x1bW46Y29udGFpbnMo c29tZS1ub24tc2VsZWN0YWJsZS1jb2x1bW4pJykpLmNsaWNrKCk7Ci0gICAg ICAgICAgICB2YXIgc2VsZWN0ZWRSYW5nZXMgPSBjZWxsU2VsZWN0aW9uTW9k ZWwuZ2V0U2VsZWN0ZWRSYW5nZXMoKTsKKyAgICAgICAgY29udGFpbmVyLmZp bmQoJy5zbGljay1oZWFkZXItY29sdW1uIHNwYW4uY29sdW1uLWRlc2NyaXB0 aW9uOmNvbnRhaW5zKHNlY29uZCBjb2x1bW4pJykuY2xpY2soKTsKKyAgICAg ICAgZXhwZWN0KCQoY29udGFpbmVyLmZpbmQoJy5zbGljay1oZWFkZXItY29s dW1uOmNvbnRhaW5zKHNlY29uZCBjb2x1bW4pJykpLmhhc0NsYXNzKCdzZWxl Y3RlZCcpKQorICAgICAgICAgIC50b0JlKGZhbHNlKTsKKyAgICAgIH0pOwor ICAgIH0pOwogCi0gICAgICAgICAgICBleHBlY3Qoc2VsZWN0ZWRSYW5nZXMu bGVuZ3RoKS50b0VxdWFsKDApOwotICAgICAgICAgIH0pOwotICAgICAgICB9 KTsKKyAgICBkZXNjcmliZSgnd2hlbiBhIHJvdyBpcyBzZWxlY3RlZCcsIGZ1 bmN0aW9uICgpIHsKKyAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgewor ICAgICAgICB2YXIgc2VsZWN0ZWRSYW5nZXMgPSBbbmV3IFNsaWNrLlJhbmdl KDAsIDAsIDAsIDEpXTsKKyAgICAgICAgY2VsbFNlbGVjdGlvbk1vZGVsLnNl dFNlbGVjdGVkUmFuZ2VzKHNlbGVjdGVkUmFuZ2VzKTsKKyAgICAgIH0pOwog Ci0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHRoZSBjb2x1bW4gaXMgZGVzZWxl Y3RlZCB0aHJvdWdoIHNldFNlbGVjdGVkUmFuZ2VzIiwgZnVuY3Rpb24gKCkg ewotICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgewotICAgICAg ICAgICAgY29udGFpbmVyLmZpbmQoJy5zbGljay1oZWFkZXItY29sdW1uJylb MV0uY2xpY2soKTsKLSAgICAgICAgICB9KTsKKyAgICAgIGl0KCdkZXNlbGVj dHMgdGhlIHJvdycsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgY29udGFpbmVy LmZpbmQoJy5zbGljay1oZWFkZXItY29sdW1uJylbMV0uY2xpY2soKTsKKyAg ICAgICAgdmFyIHNlbGVjdGVkUmFuZ2VzID0gY2VsbFNlbGVjdGlvbk1vZGVs LmdldFNlbGVjdGVkUmFuZ2VzKCk7CiAKLSAgICAgICAgICBpdCgicmVtb3Zl cyBzZWxlY3RlZCBjbGFzcyBmcm9tIGhlYWRlciIsIGZ1bmN0aW9uICgpIHsK LSAgICAgICAgICAgIGNlbGxTZWxlY3Rpb25Nb2RlbC5zZXRTZWxlY3RlZFJh bmdlcyhbXSk7CisgICAgICAgIGV4cGVjdChzZWxlY3RlZFJhbmdlcy5sZW5n dGgpLnRvQmUoMSk7CiAKLSAgICAgICAgICAgIGV4cGVjdCgkKGNvbnRhaW5l ci5maW5kKCcuc2xpY2staGVhZGVyLWNvbHVtbicpWzFdKS5oYXNDbGFzcygn c2VsZWN0ZWQnKSkKLSAgICAgICAgICAgICAgLnRvQmUoZmFsc2UpOwotICAg ICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICAgICAgdmFyIGNvbHVtbiA9 IHNlbGVjdGVkUmFuZ2VzWzBdOwogCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVu IGEgbm9uLWNvbHVtbiByYW5nZSB3YXMgYWxyZWFkeSBzZWxlY3RlZCIsIGZ1 bmN0aW9uICgpIHsKLSAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgp IHsKLSAgICAgICAgICAgIHZhciBzZWxlY3RlZFJhbmdlcyA9IFtuZXcgU2xp Y2suUmFuZ2UoMCwgMCwgMiwgMCldOwotICAgICAgICAgICAgY2VsbFNlbGVj dGlvbk1vZGVsLnNldFNlbGVjdGVkUmFuZ2VzKHNlbGVjdGVkUmFuZ2VzKTsK LSAgICAgICAgICB9KTsKKyAgICAgICAgZXhwZWN0KGNvbHVtbi5mcm9tQ2Vs bCkudG9CZSgxKTsKKyAgICAgICAgZXhwZWN0KGNvbHVtbi50b0NlbGwpLnRv QmUoMSk7CisgICAgICAgIGV4cGVjdChjb2x1bW4uZnJvbVJvdykudG9CZSgw KTsKKyAgICAgICAgZXhwZWN0KGNvbHVtbi50b1JvdykudG9CZSg5KTsKKyAg ICAgIH0pOworICAgIH0pOwogCi0gICAgICAgICAgaXQoImRlc2VsZWN0cyB0 aGUgbm9uLWNvbHVtbiByYW5nZSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAg ICAgIGNvbnRhaW5lci5maW5kKCcuc2xpY2staGVhZGVyLWNvbHVtbjpjb250 YWlucyhzb21lLWNvbHVtbi1uYW1lKScpLmNsaWNrKCk7CisgICAgZGVzY3Jp YmUoJ2NsaWNraW5nIGEgc2Vjb25kIHRpbWUnLCBmdW5jdGlvbiAoKSB7Cisg ICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgY29udGFp bmVyLmZpbmQoJy5zbGljay1oZWFkZXItY29sdW1uJylbMV0uY2xpY2soKTsK KyAgICAgIH0pOwogCi0gICAgICAgICAgICB2YXIgc2VsZWN0ZWRSYW5nZXMg PSBjZWxsU2VsZWN0aW9uTW9kZWwuZ2V0U2VsZWN0ZWRSYW5nZXMoKTsKLSAg ICAgICAgICAgIGV4cGVjdE9ubHlUaGVGaXJzdENvbHVtblRvQmVTZWxlY3Rl ZChzZWxlY3RlZFJhbmdlcyk7Ci0gICAgICAgICAgfSk7Ci0gICAgICAgIH0p OworICAgICAgaXQoJ2Rlc2VsZWN0cyB0aGUgY29sdW1uJywgZnVuY3Rpb24g KCkgeworICAgICAgICBjb250YWluZXIuZmluZCgnLnNsaWNrLWhlYWRlci1j b2x1bW4nKVsxXS5jbGljaygpOworICAgICAgICB2YXIgc2VsZWN0ZWRSYW5n ZXMgPSBjZWxsU2VsZWN0aW9uTW9kZWwuZ2V0U2VsZWN0ZWRSYW5nZXMoKTsK IAotICAgICAgICBkZXNjcmliZSgnd2hlbiBhIGNvbHVtbiBpcyBzZWxlY3Rl ZCcsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0 aW9uICgpIHsKLSAgICAgICAgICAgIGNvbnRhaW5lci5maW5kKCcuc2xpY2st aGVhZGVyLWNvbHVtbjpjb250YWlucyhzb21lLWNvbHVtbi1uYW1lKScpLmNs aWNrKCk7Ci0gICAgICAgICAgfSk7CisgICAgICAgIGV4cGVjdChzZWxlY3Rl ZFJhbmdlcy5sZW5ndGgpLnRvRXF1YWwoMCk7CisgICAgICB9KQorICAgIH0p OwogCi0gICAgICAgICAgZGVzY3JpYmUoJ3doZW4gdGhlIHVzZXIgY2xpY2sg YSBjZWxsIG9uIHRoZSBjdXJyZW50IHJhbmdlJywgZnVuY3Rpb24gKCkgewot ICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7Ci0gICAgICAg ICAgICAgIGNvbnRhaW5lci5maW5kKCcuc2xpY2stY2VsbC5sMS5yMScpWzFd LmNsaWNrKCk7Ci0gICAgICAgICAgICB9KTsKKyAgICBkZXNjcmliZSgnd2hl biB0aGUgY29sdW1uIGlzIG5vdCBzZWxlY3RhYmxlJywgZnVuY3Rpb24gKCkg eworICAgICAgaXQoJ2RvZXMgbm90IHNlbGVjdCB0aGUgY29sdW1uJywgZnVu Y3Rpb24gKCkgeworICAgICAgICAkKGNvbnRhaW5lci5maW5kKCcuc2xpY2st aGVhZGVyLWNvbHVtbjpjb250YWlucyhzb21lLW5vbi1zZWxlY3RhYmxlLWNv bHVtbiknKSkuY2xpY2soKTsKKyAgICAgICAgdmFyIHNlbGVjdGVkUmFuZ2Vz ID0gY2VsbFNlbGVjdGlvbk1vZGVsLmdldFNlbGVjdGVkUmFuZ2VzKCk7CiAK LSAgICAgICAgICAgIGl0KCdjb2x1bW4gaXMgZGVzZWxlY3RlZCcsIGZ1bmN0 aW9uICgpIHsKKyAgICAgICAgZXhwZWN0KHNlbGVjdGVkUmFuZ2VzLmxlbmd0 aCkudG9FcXVhbCgwKTsKKyAgICAgIH0pOworICAgIH0pOwogCi0gICAgICAg ICAgICAgIHZhciBzZWxlY3RlZFJhbmdlcyA9IGNlbGxTZWxlY3Rpb25Nb2Rl bC5nZXRTZWxlY3RlZFJhbmdlcygpOworICAgIGRlc2NyaWJlKCd3aGVuIHRo ZSBjb2x1bW4gaXMgZGVzZWxlY3RlZCB0aHJvdWdoIHNldFNlbGVjdGVkUmFu Z2VzJywgZnVuY3Rpb24gKCkgeworICAgICAgYmVmb3JlRWFjaChmdW5jdGlv biAoKSB7CisgICAgICAgIGNvbnRhaW5lci5maW5kKCcuc2xpY2staGVhZGVy LWNvbHVtbicpWzFdLmNsaWNrKCk7CisgICAgICB9KTsKIAotICAgICAgICAg ICAgICBleHBlY3Qoc2VsZWN0ZWRSYW5nZXMubGVuZ3RoKS50b0JlKDEpOwor ICAgICAgaXQoJ3JlbW92ZXMgc2VsZWN0ZWQgY2xhc3MgZnJvbSBoZWFkZXIn LCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGNlbGxTZWxlY3Rpb25Nb2RlbC5z ZXRTZWxlY3RlZFJhbmdlcyhbXSk7CiAKLSAgICAgICAgICAgICAgdmFyIGNv bHVtbiA9IHNlbGVjdGVkUmFuZ2VzWzBdOworICAgICAgICBleHBlY3QoJChj b250YWluZXIuZmluZCgnLnNsaWNrLWhlYWRlci1jb2x1bW4nKVsxXSkuaGFz Q2xhc3MoJ3NlbGVjdGVkJykpCisgICAgICAgICAgLnRvQmUoZmFsc2UpOwor ICAgICAgfSk7CisgICAgfSk7CiAKLSAgICAgICAgICAgICAgZXhwZWN0KGNv bHVtbi5mcm9tQ2VsbCkudG9CZSgxKTsKLSAgICAgICAgICAgICAgZXhwZWN0 KGNvbHVtbi50b0NlbGwpLnRvQmUoMSk7Ci0gICAgICAgICAgICAgIGV4cGVj dChjb2x1bW4uZnJvbVJvdykudG9CZSgxKTsKLSAgICAgICAgICAgICAgZXhw ZWN0KGNvbHVtbi50b1JvdykudG9CZSgxKTsKLSAgICAgICAgICAgIH0pOwor ICAgIGRlc2NyaWJlKCd3aGVuIGEgbm9uLWNvbHVtbiByYW5nZSB3YXMgYWxy ZWFkeSBzZWxlY3RlZCcsIGZ1bmN0aW9uICgpIHsKKyAgICAgIGJlZm9yZUVh Y2goZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgc2VsZWN0ZWRSYW5nZXMg PSBbbmV3IFNsaWNrLlJhbmdlKDAsIDAsIDIsIDApXTsKKyAgICAgICAgY2Vs bFNlbGVjdGlvbk1vZGVsLnNldFNlbGVjdGVkUmFuZ2VzKHNlbGVjdGVkUmFu Z2VzKTsKKyAgICAgIH0pOwogCi0gICAgICAgICAgICBpdCgna2VlcCBzZWxl Y3QgY2xhc3Mgb24gY29sdW1uIGhlYWRlcicsIGZ1bmN0aW9uICgpIHsKLSAg ICAgICAgICAgICAgZXhwZWN0KCQoY29udGFpbmVyLmZpbmQoJy5zbGljay1o ZWFkZXItY29sdW1uOmNvbnRhaW5zKHNvbWUtY29sdW1uLW5hbWUpJykpLmhh c0NsYXNzKCdzZWxlY3RlZCcpKQotICAgICAgICAgICAgICAgIC50b0JlVHJ1 dGh5KCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICB9KTsKKyAgICAg IGl0KCdkZXNlbGVjdHMgdGhlIG5vbi1jb2x1bW4gcmFuZ2UnLCBmdW5jdGlv biAoKSB7CisgICAgICAgIGNvbnRhaW5lci5maW5kKCcuc2xpY2staGVhZGVy LWNvbHVtbjpjb250YWlucyhzb21lLWNvbHVtbi1uYW1lKScpLmNsaWNrKCk7 CiAKLSAgICAgICAgICBkZXNjcmliZSgnd2hlbiB0aGUgdXNlciBjbGljayBh IGNlbGwgb3V0c2lkZSB0aGUgY3VycmVudCByYW5nZScsIGZ1bmN0aW9uICgp IHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgewotICAg ICAgICAgICAgICBjb250YWluZXIuZmluZCgnLnNsaWNrLWNlbGwubDIucjIn KVsyXS5jbGljaygpOwotICAgICAgICAgICAgfSk7CisgICAgICAgIHZhciBz ZWxlY3RlZFJhbmdlcyA9IGNlbGxTZWxlY3Rpb25Nb2RlbC5nZXRTZWxlY3Rl ZFJhbmdlcygpOworICAgICAgICBleHBlY3RPbmx5VGhlRmlyc3RDb2x1bW5U b0JlU2VsZWN0ZWQoc2VsZWN0ZWRSYW5nZXMpOworICAgICAgfSk7CisgICAg fSk7CiAKLSAgICAgICAgICAgIGl0KCdjb2x1bW4gaXMgZGVzZWxlY3RlZCcs IGZ1bmN0aW9uICgpIHsKKyAgICBkZXNjcmliZSgnd2hlbiBhIGNvbHVtbiBp cyBzZWxlY3RlZCcsIGZ1bmN0aW9uICgpIHsKKyAgICAgIGJlZm9yZUVhY2go ZnVuY3Rpb24gKCkgeworICAgICAgICBjb250YWluZXIuZmluZCgnLnNsaWNr LWhlYWRlci1jb2x1bW46Y29udGFpbnMoc29tZS1jb2x1bW4tbmFtZSknKS5j bGljaygpOworICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgdmFyIHNlbGVj dGVkUmFuZ2VzID0gY2VsbFNlbGVjdGlvbk1vZGVsLmdldFNlbGVjdGVkUmFu Z2VzKCk7CisgICAgICBkZXNjcmliZSgnd2hlbiB0aGUgdXNlciBjbGljayBh IGNlbGwgb24gdGhlIGN1cnJlbnQgcmFuZ2UnLCBmdW5jdGlvbiAoKSB7Cisg ICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgeworICAgICAgICAgIGNv bnRhaW5lci5maW5kKCcuc2xpY2stY2VsbC5sMS5yMScpWzFdLmNsaWNrKCk7 CisgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgIGV4cGVjdChzZWxlY3Rl ZFJhbmdlcy5sZW5ndGgpLnRvQmUoMSk7CisgICAgICAgIGl0KCdjb2x1bW4g aXMgZGVzZWxlY3RlZCcsIGZ1bmN0aW9uICgpIHsKIAotICAgICAgICAgICAg ICB2YXIgY29sdW1uID0gc2VsZWN0ZWRSYW5nZXNbMF07CisgICAgICAgICAg dmFyIHNlbGVjdGVkUmFuZ2VzID0gY2VsbFNlbGVjdGlvbk1vZGVsLmdldFNl bGVjdGVkUmFuZ2VzKCk7CiAKLSAgICAgICAgICAgICAgZXhwZWN0KGNvbHVt bi5mcm9tQ2VsbCkudG9CZSgyKTsKLSAgICAgICAgICAgICAgZXhwZWN0KGNv bHVtbi50b0NlbGwpLnRvQmUoMik7Ci0gICAgICAgICAgICAgIGV4cGVjdChj b2x1bW4uZnJvbVJvdykudG9CZSgyKTsKLSAgICAgICAgICAgICAgZXhwZWN0 KGNvbHVtbi50b1JvdykudG9CZSgyKTsKLSAgICAgICAgICAgIH0pOworICAg ICAgICAgIGV4cGVjdChzZWxlY3RlZFJhbmdlcy5sZW5ndGgpLnRvQmUoMSk7 CiAKLSAgICAgICAgICAgIGl0KCdyZW1vdmUgc2VsZWN0IGNsYXNzIG9uICJz b21lLWNvbHVtbi1uYW1lIiBjb2x1bW4gaGVhZGVyJywgZnVuY3Rpb24gKCkg ewotICAgICAgICAgICAgICBleHBlY3QoJChjb250YWluZXIuZmluZCgnLnNs aWNrLWhlYWRlci1jb2x1bW46Y29udGFpbnMoc29tZS1jb2x1bW4tbmFtZSkn KSkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpCi0gICAgICAgICAgICAgICAgLnRv QmVGYWxzeSgpOwotICAgICAgICAgICAgICBleHBlY3QoJChjb250YWluZXIu ZmluZCgnLnNsaWNrLWhlYWRlci1jb2x1bW46Y29udGFpbnMoc2Vjb25kIGNv bHVtbiknKSkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpCi0gICAgICAgICAgICAg ICAgLnRvQmVUcnV0aHkoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAg IH0pOworICAgICAgICAgIHZhciBjb2x1bW4gPSBzZWxlY3RlZFJhbmdlc1sw XTsKIAotICAgICAgICAgIGRlc2NyaWJlKCd3aGVuIHRoZSB1c2VyIGNsaWNr IGluIGEgcm93IGhlYWRlcicsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAg IGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICB2YXIg c2VsZWN0ZWRSYW5nZXMgPSBbbmV3IFNsaWNrLlJhbmdlKDEsIDEsIDEsIDMp XTsKLSAgICAgICAgICAgICAgY2VsbFNlbGVjdGlvbk1vZGVsLnNldFNlbGVj dGVkUmFuZ2VzKHNlbGVjdGVkUmFuZ2VzKTsKLSAgICAgICAgICAgIH0pOwor ICAgICAgICAgIGV4cGVjdChjb2x1bW4uZnJvbUNlbGwpLnRvQmUoMSk7Cisg ICAgICAgICAgZXhwZWN0KGNvbHVtbi50b0NlbGwpLnRvQmUoMSk7CisgICAg ICAgICAgZXhwZWN0KGNvbHVtbi5mcm9tUm93KS50b0JlKDEpOworICAgICAg ICAgIGV4cGVjdChjb2x1bW4udG9Sb3cpLnRvQmUoMSk7CisgICAgICAgIH0p OwogCi0gICAgICAgICAgICBpdCgnY29sdW1uIGlzIGRlc2VsZWN0ZWQnLCBm dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgIHZhciBzZWxlY3RlZFJhbmdl cyA9IGNlbGxTZWxlY3Rpb25Nb2RlbC5nZXRTZWxlY3RlZFJhbmdlcygpOwor ICAgICAgICBpdCgna2VlcCBzZWxlY3QgY2xhc3Mgb24gY29sdW1uIGhlYWRl cicsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICBleHBlY3QoJChjb250YWlu ZXIuZmluZCgnLnNsaWNrLWhlYWRlci1jb2x1bW46Y29udGFpbnMoc29tZS1j b2x1bW4tbmFtZSknKSkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpCisgICAgICAg ICAgICAudG9CZVRydXRoeSgpOworICAgICAgICB9KTsKKyAgICAgIH0pOwog Ci0gICAgICAgICAgICAgIGV4cGVjdChzZWxlY3RlZFJhbmdlcy5sZW5ndGgp LnRvQmUoMSk7CisgICAgICBkZXNjcmliZSgnd2hlbiB0aGUgdXNlciBjbGlj ayBhIGNlbGwgb3V0c2lkZSB0aGUgY3VycmVudCByYW5nZScsIGZ1bmN0aW9u ICgpIHsKKyAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7CisgICAg ICAgICAgY29udGFpbmVyLmZpbmQoJy5zbGljay1jZWxsLmwyLnIyJylbMl0u Y2xpY2soKTsKKyAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgdmFyIGNv bHVtbiA9IHNlbGVjdGVkUmFuZ2VzWzBdOworICAgICAgICBpdCgnY29sdW1u IGlzIGRlc2VsZWN0ZWQnLCBmdW5jdGlvbiAoKSB7CiAKLSAgICAgICAgICAg ICAgZXhwZWN0KGNvbHVtbi5mcm9tQ2VsbCkudG9CZSgxKTsKLSAgICAgICAg ICAgICAgZXhwZWN0KGNvbHVtbi50b0NlbGwpLnRvQmUoMyk7Ci0gICAgICAg ICAgICAgIGV4cGVjdChjb2x1bW4uZnJvbVJvdykudG9CZSgxKTsKLSAgICAg ICAgICAgICAgZXhwZWN0KGNvbHVtbi50b1JvdykudG9CZSgxKTsKLSAgICAg ICAgICAgIH0pOworICAgICAgICAgIHZhciBzZWxlY3RlZFJhbmdlcyA9IGNl bGxTZWxlY3Rpb25Nb2RlbC5nZXRTZWxlY3RlZFJhbmdlcygpOwogCi0gICAg ICAgICAgICBpdCgnbm8gY29sdW1uIHNob3VsZCBoYXZlIHRoZSBjbGFzcyAi c2VsZWN0ZWQiJywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICBleHBl Y3QoJChjb250YWluZXIuZmluZCgnLnNsaWNrLWhlYWRlci1jb2x1bW46Y29u dGFpbnMoc29tZS1jb2x1bW4tbmFtZSknKSkuaGFzQ2xhc3MoJ3NlbGVjdGVk JykpCi0gICAgICAgICAgICAgICAgLnRvQmVGYWxzeSgpOwotICAgICAgICAg ICAgfSk7Ci0gICAgICAgICAgfSk7CisgICAgICAgICAgZXhwZWN0KHNlbGVj dGVkUmFuZ2VzLmxlbmd0aCkudG9CZSgxKTsKKworICAgICAgICAgIHZhciBj b2x1bW4gPSBzZWxlY3RlZFJhbmdlc1swXTsKKworICAgICAgICAgIGV4cGVj dChjb2x1bW4uZnJvbUNlbGwpLnRvQmUoMik7CisgICAgICAgICAgZXhwZWN0 KGNvbHVtbi50b0NlbGwpLnRvQmUoMik7CisgICAgICAgICAgZXhwZWN0KGNv bHVtbi5mcm9tUm93KS50b0JlKDIpOworICAgICAgICAgIGV4cGVjdChjb2x1 bW4udG9Sb3cpLnRvQmUoMik7CisgICAgICAgIH0pOworCisgICAgICAgIGl0 KCdyZW1vdmUgc2VsZWN0IGNsYXNzIG9uIFwnc29tZS1jb2x1bW4tbmFtZVwn IGNvbHVtbiBoZWFkZXInLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgZXhw ZWN0KCQoY29udGFpbmVyLmZpbmQoJy5zbGljay1oZWFkZXItY29sdW1uOmNv bnRhaW5zKHNvbWUtY29sdW1uLW5hbWUpJykpLmhhc0NsYXNzKCdzZWxlY3Rl ZCcpKQorICAgICAgICAgICAgLnRvQmVGYWxzeSgpOworICAgICAgICAgIGV4 cGVjdCgkKGNvbnRhaW5lci5maW5kKCcuc2xpY2staGVhZGVyLWNvbHVtbjpj b250YWlucyhzZWNvbmQgY29sdW1uKScpKS5oYXNDbGFzcygnc2VsZWN0ZWQn KSkKKyAgICAgICAgICAgIC50b0JlVHJ1dGh5KCk7CiAgICAgICAgIH0pOwog ICAgICAgfSk7CiAKLSAgICAgIGZ1bmN0aW9uIHNldHVwR3JpZChjb2x1bW5z KSB7Ci0gICAgICAgIHZhciBjb2x1bW5TZWxlY3RvciA9IG5ldyBDb2x1bW5T ZWxlY3RvcigpOwotICAgICAgICBjb2x1bW5zID0gY29sdW1uU2VsZWN0b3Iu Z2V0Q29sdW1uRGVmaW5pdGlvbnMoY29sdW1ucyk7Ci0gICAgICAgIHZhciBn cmlkID0gbmV3IFNsaWNrR3JpZChjb250YWluZXIsIGRhdGEsIGNvbHVtbnMs IG9wdGlvbnMpOworICAgICAgZGVzY3JpYmUoJ3doZW4gdGhlIHVzZXIgY2xp Y2sgaW4gYSByb3cgaGVhZGVyJywgZnVuY3Rpb24gKCkgeworICAgICAgICBi ZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICB2YXIgc2VsZWN0 ZWRSYW5nZXMgPSBbbmV3IFNsaWNrLlJhbmdlKDEsIDEsIDEsIDMpXTsKKyAg ICAgICAgICBjZWxsU2VsZWN0aW9uTW9kZWwuc2V0U2VsZWN0ZWRSYW5nZXMo c2VsZWN0ZWRSYW5nZXMpOworICAgICAgICB9KTsKIAotICAgICAgICB2YXIg Y2VsbFNlbGVjdGlvbk1vZGVsID0gbmV3IFhDZWxsU2VsZWN0aW9uTW9kZWwo KTsKLSAgICAgICAgZ3JpZC5zZXRTZWxlY3Rpb25Nb2RlbChjZWxsU2VsZWN0 aW9uTW9kZWwpOworICAgICAgICBpdCgnY29sdW1uIGlzIGRlc2VsZWN0ZWQn LCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgdmFyIHNlbGVjdGVkUmFuZ2Vz ID0gY2VsbFNlbGVjdGlvbk1vZGVsLmdldFNlbGVjdGVkUmFuZ2VzKCk7CiAK LSAgICAgICAgZ3JpZC5yZWdpc3RlclBsdWdpbihjb2x1bW5TZWxlY3Rvcik7 Ci0gICAgICAgIGdyaWQuaW52YWxpZGF0ZSgpOwotICAgICAgfQorICAgICAg ICAgIGV4cGVjdChzZWxlY3RlZFJhbmdlcy5sZW5ndGgpLnRvQmUoMSk7CiAK LSAgICAgIGZ1bmN0aW9uIGV4cGVjdE9ubHlUaGVGaXJzdENvbHVtblRvQmVT ZWxlY3RlZChzZWxlY3RlZFJhbmdlcykgewotICAgICAgICB2YXIgcm93ID0g c2VsZWN0ZWRSYW5nZXNbMF07CisgICAgICAgICAgdmFyIGNvbHVtbiA9IHNl bGVjdGVkUmFuZ2VzWzBdOwogCi0gICAgICAgIGV4cGVjdChzZWxlY3RlZFJh bmdlcy5sZW5ndGgpLnRvRXF1YWwoMSk7Ci0gICAgICAgIGV4cGVjdChyb3cu ZnJvbUNlbGwpLnRvQmUoMSk7Ci0gICAgICAgIGV4cGVjdChyb3cudG9DZWxs KS50b0JlKDEpOwotICAgICAgICBleHBlY3Qocm93LmZyb21Sb3cpLnRvQmUo MCk7Ci0gICAgICAgIGV4cGVjdChyb3cudG9Sb3cpLnRvQmUoOSk7Ci0gICAg ICB9Ci0KLSAgICAgIGZ1bmN0aW9uIHByZXNzU2hpZnRBcnJvdyhrZXlDb2Rl KSB7Ci0gICAgICAgIHZhciBwcmVzc0V2ZW50ID0gbmV3ICQuRXZlbnQoImtl eWRvd24iKTsKLSAgICAgICAgcHJlc3NFdmVudC5zaGlmdEtleSA9IHRydWU7 Ci0gICAgICAgIHByZXNzRXZlbnQuY3RybEtleSA9IGZhbHNlOwotICAgICAg ICBwcmVzc0V2ZW50LmFsdEtleSA9IGZhbHNlOwotICAgICAgICBwcmVzc0V2 ZW50LndoaWNoID0ga2V5Q29kZTsKKyAgICAgICAgICBleHBlY3QoY29sdW1u LmZyb21DZWxsKS50b0JlKDEpOworICAgICAgICAgIGV4cGVjdChjb2x1bW4u dG9DZWxsKS50b0JlKDMpOworICAgICAgICAgIGV4cGVjdChjb2x1bW4uZnJv bVJvdykudG9CZSgxKTsKKyAgICAgICAgICBleHBlY3QoY29sdW1uLnRvUm93 KS50b0JlKDEpOworICAgICAgICB9KTsKIAotICAgICAgICAkKGNvbnRhaW5l ci5maW5kKCcuZ3JpZC1jYW52YXMnKSkudHJpZ2dlcihwcmVzc0V2ZW50KTsK LSAgICAgIH0KKyAgICAgICAgaXQoJ25vIGNvbHVtbiBzaG91bGQgaGF2ZSB0 aGUgY2xhc3MgXCdzZWxlY3RlZFwnJywgZnVuY3Rpb24gKCkgeworICAgICAg ICAgIGV4cGVjdCgkKGNvbnRhaW5lci5maW5kKCcuc2xpY2staGVhZGVyLWNv bHVtbjpjb250YWlucyhzb21lLWNvbHVtbi1uYW1lKScpKS5oYXNDbGFzcygn c2VsZWN0ZWQnKSkKKyAgICAgICAgICAgIC50b0JlRmFsc3koKTsKKyAgICAg ICAgfSk7CisgICAgICB9KTsKICAgICB9KTsKLSAgfSk7ClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQorICB9KTsKKworICBmdW5jdGlvbiBzZXR1cEdy aWQoY29sdW1ucykgeworICAgIHZhciBjb2x1bW5TZWxlY3RvciA9IG5ldyBD b2x1bW5TZWxlY3RvcigpOworICAgIGNvbHVtbnMgPSBjb2x1bW5TZWxlY3Rv ci5nZXRDb2x1bW5EZWZpbml0aW9ucyhjb2x1bW5zKTsKKyAgICB2YXIgZ3Jp ZCA9IG5ldyBTbGlja0dyaWQoY29udGFpbmVyLCBkYXRhLCBjb2x1bW5zLCBv cHRpb25zKTsKKworICAgIHZhciBjZWxsU2VsZWN0aW9uTW9kZWwgPSBuZXcg WENlbGxTZWxlY3Rpb25Nb2RlbCgpOworICAgIGdyaWQuc2V0U2VsZWN0aW9u TW9kZWwoY2VsbFNlbGVjdGlvbk1vZGVsKTsKKworICAgIGdyaWQucmVnaXN0 ZXJQbHVnaW4oY29sdW1uU2VsZWN0b3IpOworICAgIGdyaWQuaW52YWxpZGF0 ZSgpOworICB9CisKKyAgZnVuY3Rpb24gZXhwZWN0T25seVRoZUZpcnN0Q29s dW1uVG9CZVNlbGVjdGVkKHNlbGVjdGVkUmFuZ2VzKSB7CisgICAgdmFyIHJv dyA9IHNlbGVjdGVkUmFuZ2VzWzBdOworCisgICAgZXhwZWN0KHNlbGVjdGVk UmFuZ2VzLmxlbmd0aCkudG9FcXVhbCgxKTsKKyAgICBleHBlY3Qocm93LmZy b21DZWxsKS50b0JlKDEpOworICAgIGV4cGVjdChyb3cudG9DZWxsKS50b0Jl KDEpOworICAgIGV4cGVjdChyb3cuZnJvbVJvdykudG9CZSgwKTsKKyAgICBl eHBlY3Qocm93LnRvUm93KS50b0JlKDkpOworICB9CisKKyAgZnVuY3Rpb24g cHJlc3NTaGlmdEFycm93KGtleUNvZGUpIHsKKyAgICB2YXIgcHJlc3NFdmVu dCA9IG5ldyAkLkV2ZW50KCdrZXlkb3duJyk7CisgICAgcHJlc3NFdmVudC5z aGlmdEtleSA9IHRydWU7CisgICAgcHJlc3NFdmVudC5jdHJsS2V5ID0gZmFs c2U7CisgICAgcHJlc3NFdmVudC5hbHRLZXkgPSBmYWxzZTsKKyAgICBwcmVz c0V2ZW50LndoaWNoID0ga2V5Q29kZTsKKworICAgICQoY29udGFpbmVyLmZp bmQoJy5ncmlkLWNhbnZhcycpKS50cmlnZ2VyKHByZXNzRXZlbnQpOworICB9 Cit9KTsKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQv c2VsZWN0aW9uL2NvcHlfZGF0YV9zcGVjLmpzIGIvd2ViL3JlZ3Jlc3Npb24v amF2YXNjcmlwdC9zZWxlY3Rpb24vY29weV9kYXRhX3NwZWMuanMKaW5kZXgg NTYxNTc2Y2UuLjJkNmI2YWQyIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lv bi9qYXZhc2NyaXB0L3NlbGVjdGlvbi9jb3B5X2RhdGFfc3BlYy5qcworKysg Yi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NlbGVjdGlvbi9jb3B5X2Rh dGFfc3BlYy5qcwpAQCAtMSwxMzkgKzEsMTQyIEBACi0vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogLy8KIC8vIHBn QWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKIC8vCiAvLyBDb3B5cmlnaHQg KEMpIDIwMTMgLSAyMDE3LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFt CiAvLyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0 Z3JlU1FMIExpY2VuY2UKIC8vCi0vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1kZWZp bmUoCi0gIFsianF1ZXJ5IiwKLSAgICAic2xpY2tncmlkL3NsaWNrLmdyaWQi LAotICAgICJzb3VyY2VzL3NlbGVjdGlvbi94Y2VsbF9zZWxlY3Rpb25fbW9k ZWwiLAotICAgICJzb3VyY2VzL3NlbGVjdGlvbi9jb3B5X2RhdGEiLAotICAg ICJzb3VyY2VzL3NlbGVjdGlvbi9jbGlwYm9hcmQiLAotICAgICJzb3VyY2Vz L3NlbGVjdGlvbi9yYW5nZV9zZWxlY3Rpb25faGVscGVyIgotICBdLAotICBm dW5jdGlvbiAoJCwgU2xpY2tHcmlkLCBYQ2VsbFNlbGVjdGlvbk1vZGVsLCBj b3B5RGF0YSwgY2xpcGJvYXJkLCBSYW5nZVNlbGVjdGlvbkhlbHBlcikgewot ICAgIGRlc2NyaWJlKCdjb3B5RGF0YScsIGZ1bmN0aW9uICgpIHsKLSAgICAg IHZhciBncmlkLCBzcWxFZGl0b3IsIGdyaWRDb250YWluZXIsIGJ1dHRvblBh c3RlUm93OwotCi0gICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKLSAg ICAgICAgdmFyIGRhdGEgPSBbWzEsICJsZW9wb3JkIiwgIjEyIl0sCi0gICAg ICAgICAgWzIsICJsaW9uIiwgIjEzIl0sCi0gICAgICAgICAgWzMsICJwdW1h IiwgIjkiXV07Ci0KLSAgICAgICAgdmFyIGNvbHVtbnMgPSBbCi0gICAgICAg ICAgewotICAgICAgICAgICAgaWQ6ICdyb3ctaGVhZGVyLWNvbHVtbicsCi0g ICAgICAgICAgICBuYW1lOiAncm93IGhlYWRlciBjb2x1bW4gbmFtZScsCi0g ICAgICAgICAgICBzZWxlY3RhYmxlOiBmYWxzZSwKLSAgICAgICAgICAgIGRp c3BsYXlfbmFtZTogJ3JvdyBoZWFkZXIgY29sdW1uIG5hbWUnLAotICAgICAg ICAgICAgY29sdW1uX3R5cGU6ICd0ZXh0JwotICAgICAgICAgIH0sCi0gICAg ICAgICAgewotICAgICAgICAgICAgbmFtZTogImlkIiwKLSAgICAgICAgICAg IHBvczogMCwKLSAgICAgICAgICAgIGxhYmVsOiAiaWQ8YnI+IG51bWVyaWMi LAotICAgICAgICAgICAgY2VsbDogIm51bWJlciIsCi0gICAgICAgICAgICBj YW5fZWRpdDogZmFsc2UsCi0gICAgICAgICAgICB0eXBlOiAibnVtZXJpYyIK LSAgICAgICAgICB9LCB7Ci0gICAgICAgICAgICBuYW1lOiAiYnJhbmQiLAot ICAgICAgICAgICAgcG9zOiAxLAotICAgICAgICAgICAgbGFiZWw6ICJmbGF2 b3I8YnI+IGNoYXJhY3RlciB2YXJ5aW5nIiwKLSAgICAgICAgICAgIGNlbGw6 ICJzdHJpbmciLAotICAgICAgICAgICAgY2FuX2VkaXQ6IGZhbHNlLAotICAg ICAgICAgICAgdHlwZTogImNoYXJhY3RlciB2YXJ5aW5nIgotICAgICAgICAg IH0sIHsKLSAgICAgICAgICAgIG5hbWU6ICJzaXplIiwKLSAgICAgICAgICAg IHBvczogMiwKLSAgICAgICAgICAgIGxhYmVsOiAic2l6ZTxicj4gbnVtZXJp YyIsCi0gICAgICAgICAgICBjZWxsOiAibnVtYmVyIiwKLSAgICAgICAgICAg IGNhbl9lZGl0OiBmYWxzZSwKLSAgICAgICAgICAgIHR5cGU6ICJudW1lcmlj IgotICAgICAgICAgIH0KLSAgICAgICAgICBdCi0gICAgICAgIDsKLSAgICAg ICAgZ3JpZENvbnRhaW5lciA9ICQoIjxkaXYgaWQ9J2dyaWQnPjwvZGl2PiIp OwotICAgICAgICAkKCJib2R5IikuYXBwZW5kKGdyaWRDb250YWluZXIpOwot ICAgICAgICBidXR0b25QYXN0ZVJvdyA9ICQoIjxidXR0b24gaWQ9J2J0bi1w YXN0ZS1yb3cnIGRpc2FibGVkPjwvYnV0dG9uPiIpOwotICAgICAgICAkKCJi b2R5IikuYXBwZW5kKGJ1dHRvblBhc3RlUm93KTsKLSAgICAgICAgZ3JpZCA9 IG5ldyBTbGljay5HcmlkKCIjZ3JpZCIsIGRhdGEsIGNvbHVtbnMsIHt9KTsK LSAgICAgICAgZ3JpZC5zZXRTZWxlY3Rpb25Nb2RlbChuZXcgWENlbGxTZWxl Y3Rpb25Nb2RlbCgpKTsKLSAgICAgICAgc3FsRWRpdG9yID0ge3NsaWNrZ3Jp ZDogZ3JpZH07Ci0gICAgICB9KTsKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vCisKK2ltcG9ydCAkIGZyb20gJ2pxdWVyeSc7CisKK2ltcG9ydCBT bGljayBmcm9tICdzbGlja2dyaWQnOworaW1wb3J0ICdzbGlja2dyaWQuZ3Jp ZCc7CisKK2ltcG9ydCBjbGlwYm9hcmQgZnJvbSAnLi4vLi4vLi4vcGdhZG1p bi9zdGF0aWMvanMvc2VsZWN0aW9uL2NsaXBib2FyZCc7CitpbXBvcnQgY29w eURhdGEgZnJvbSAnLi4vLi4vLi4vcGdhZG1pbi9zdGF0aWMvanMvc2VsZWN0 aW9uL2NvcHlfZGF0YSc7CitpbXBvcnQgUmFuZ2VTZWxlY3Rpb25IZWxwZXIg ZnJvbSAnc291cmNlcy9zZWxlY3Rpb24vcmFuZ2Vfc2VsZWN0aW9uX2hlbHBl cic7CitpbXBvcnQgWENlbGxTZWxlY3Rpb25Nb2RlbCBmcm9tICdzb3VyY2Vz L3NlbGVjdGlvbi94Y2VsbF9zZWxlY3Rpb25fbW9kZWwnOworCitkZXNjcmli ZSgnY29weURhdGEnLCBmdW5jdGlvbiAoKSB7CisgIHZhciBncmlkLCBzcWxF ZGl0b3IsIGdyaWRDb250YWluZXIsIGJ1dHRvblBhc3RlUm93OworICB2YXIg U2xpY2ssIFNsaWNrR3JpZDsKKworICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgp IHsKKyAgICBTbGljayA9IHdpbmRvdy5TbGljazsKKyAgICBTbGlja0dyaWQg PSBTbGljay5HcmlkOworICAgIHZhciBkYXRhID0gW1sxLCAnbGVvcG9yZCcs ICcxMiddLAorICAgICAgWzIsICdsaW9uJywgJzEzJ10sCisgICAgICBbMywg J3B1bWEnLCAnOSddXTsKKworICAgIHZhciBjb2x1bW5zID0gWworICAgICAg ICB7CisgICAgICAgICAgaWQ6ICdyb3ctaGVhZGVyLWNvbHVtbicsCisgICAg ICAgICAgbmFtZTogJ3JvdyBoZWFkZXIgY29sdW1uIG5hbWUnLAorICAgICAg ICAgIHNlbGVjdGFibGU6IGZhbHNlLAorICAgICAgICAgIGRpc3BsYXlfbmFt ZTogJ3JvdyBoZWFkZXIgY29sdW1uIG5hbWUnLAorICAgICAgICAgIGNvbHVt bl90eXBlOiAndGV4dCcKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAg ICAgIG5hbWU6ICdpZCcsCisgICAgICAgICAgcG9zOiAwLAorICAgICAgICAg IGxhYmVsOiAnaWQ8YnI+IG51bWVyaWMnLAorICAgICAgICAgIGNlbGw6ICdu dW1iZXInLAorICAgICAgICAgIGNhbl9lZGl0OiBmYWxzZSwKKyAgICAgICAg ICB0eXBlOiAnbnVtZXJpYycKKyAgICAgICAgfSwgeworICAgICAgICAgIG5h bWU6ICdicmFuZCcsCisgICAgICAgICAgcG9zOiAxLAorICAgICAgICAgIGxh YmVsOiAnZmxhdm9yPGJyPiBjaGFyYWN0ZXIgdmFyeWluZycsCisgICAgICAg ICAgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgY2FuX2VkaXQ6IGZhbHNl LAorICAgICAgICAgIHR5cGU6ICdjaGFyYWN0ZXIgdmFyeWluZycKKyAgICAg ICAgfSwgeworICAgICAgICAgIG5hbWU6ICdzaXplJywKKyAgICAgICAgICBw b3M6IDIsCisgICAgICAgICAgbGFiZWw6ICdzaXplPGJyPiBudW1lcmljJywK KyAgICAgICAgICBjZWxsOiAnbnVtYmVyJywKKyAgICAgICAgICBjYW5fZWRp dDogZmFsc2UsCisgICAgICAgICAgdHlwZTogJ251bWVyaWMnCisgICAgICAg IH0KKyAgICAgIF0KKyAgICA7CisgICAgZ3JpZENvbnRhaW5lciA9ICQoJzxk aXYgaWQ9XCdncmlkXCc+PC9kaXY+Jyk7CisgICAgJCgnYm9keScpLmFwcGVu ZChncmlkQ29udGFpbmVyKTsKKyAgICBidXR0b25QYXN0ZVJvdyA9ICQoJzxi dXR0b24gaWQ9XCdidG4tcGFzdGUtcm93XCcgZGlzYWJsZWQ+PC9idXR0b24+ Jyk7CisgICAgJCgnYm9keScpLmFwcGVuZChidXR0b25QYXN0ZVJvdyk7Cisg ICAgZ3JpZCA9IG5ldyBTbGljay5HcmlkKCcjZ3JpZCcsIGRhdGEsIGNvbHVt bnMsIHt9KTsKKyAgICBncmlkLnNldFNlbGVjdGlvbk1vZGVsKG5ldyBYQ2Vs bFNlbGVjdGlvbk1vZGVsKCkpOworICAgIHNxbEVkaXRvciA9IHtzbGlja2dy aWQ6IGdyaWR9OworICB9KTsKIAotICAgICAgYWZ0ZXJFYWNoKGZ1bmN0aW9u KCkgewotICAgICAgICBncmlkQ29udGFpbmVyLnJlbW92ZSgpOwotICAgICAg ICBidXR0b25QYXN0ZVJvdy5yZW1vdmUoKTsKLSAgICAgIH0pOworICBhZnRl ckVhY2goZnVuY3Rpb24gKCkgeworICAgIGdyaWRDb250YWluZXIucmVtb3Zl KCk7CisgICAgYnV0dG9uUGFzdGVSb3cucmVtb3ZlKCk7CisgIH0pOwogCi0g ICAgICBkZXNjcmliZSgid2hlbiByb3dzIGFyZSBzZWxlY3RlZCIsIGZ1bmN0 aW9uICgpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7Ci0g ICAgICAgICAgZ3JpZC5nZXRTZWxlY3Rpb25Nb2RlbCgpLnNldFNlbGVjdGVk UmFuZ2VzKFsKLSAgICAgICAgICAgIFJhbmdlU2VsZWN0aW9uSGVscGVyLnJh bmdlRm9yUm93KGdyaWQsIDApLAotICAgICAgICAgICAgUmFuZ2VTZWxlY3Rp b25IZWxwZXIucmFuZ2VGb3JSb3coZ3JpZCwgMildCi0gICAgICAgICAgKTsK LSAgICAgICAgfSk7CisgIGRlc2NyaWJlKCd3aGVuIHJvd3MgYXJlIHNlbGVj dGVkJywgZnVuY3Rpb24gKCkgeworICAgIGJlZm9yZUVhY2goZnVuY3Rpb24g KCkgeworICAgICAgZ3JpZC5nZXRTZWxlY3Rpb25Nb2RlbCgpLnNldFNlbGVj dGVkUmFuZ2VzKFsKKyAgICAgICAgUmFuZ2VTZWxlY3Rpb25IZWxwZXIucmFu Z2VGb3JSb3coZ3JpZCwgMCksCisgICAgICAgIFJhbmdlU2VsZWN0aW9uSGVs cGVyLnJhbmdlRm9yUm93KGdyaWQsIDIpXQorICAgICAgKTsKKyAgICB9KTsK IAotICAgICAgICBpdCgiY29waWVzIHRoZW0iLCBmdW5jdGlvbiAoKSB7Ci0g ICAgICAgICAgc3B5T24oY2xpcGJvYXJkLCAnY29weVRleHRUb0NsaXBib2Fy ZCcpOworICAgIGl0KCdjb3BpZXMgdGhlbScsIGZ1bmN0aW9uICgpIHsKKyAg ICAgIHNweU9uKGNsaXBib2FyZCwgJ2NvcHlUZXh0VG9DbGlwYm9hcmQnKTsK IAotICAgICAgICAgIGNvcHlEYXRhLmFwcGx5KHNxbEVkaXRvcik7CisgICAg ICBjb3B5RGF0YS5hcHBseShzcWxFZGl0b3IpOwogCi0gICAgICAgICAgZXhw ZWN0KHNxbEVkaXRvci5jb3BpZWRfcm93cy5sZW5ndGgpLnRvQmUoMik7Cisg ICAgICBleHBlY3Qoc3FsRWRpdG9yLmNvcGllZF9yb3dzLmxlbmd0aCkudG9C ZSgyKTsKIAotICAgICAgICAgIGV4cGVjdChjbGlwYm9hcmQuY29weVRleHRU b0NsaXBib2FyZCkudG9IYXZlQmVlbkNhbGxlZCgpOwotICAgICAgICAgIGV4 cGVjdChjbGlwYm9hcmQuY29weVRleHRUb0NsaXBib2FyZC5jYWxscy5tb3N0 UmVjZW50KCkuYXJnc1swXSkudG9Db250YWluKCIxLCdsZW9wb3JkJywnMTIn Iik7Ci0gICAgICAgICAgZXhwZWN0KGNsaXBib2FyZC5jb3B5VGV4dFRvQ2xp cGJvYXJkLmNhbGxzLm1vc3RSZWNlbnQoKS5hcmdzWzBdKS50b0NvbnRhaW4o IjMsJ3B1bWEnLCc5JyIpOwotICAgICAgICB9KTsKKyAgICAgIGV4cGVjdChj bGlwYm9hcmQuY29weVRleHRUb0NsaXBib2FyZCkudG9IYXZlQmVlbkNhbGxl ZCgpOworICAgICAgZXhwZWN0KGNsaXBib2FyZC5jb3B5VGV4dFRvQ2xpcGJv YXJkLmNhbGxzLm1vc3RSZWNlbnQoKS5hcmdzWzBdKS50b0NvbnRhaW4oJzEs XCdsZW9wb3JkXCcsXCcxMlwnJyk7CisgICAgICBleHBlY3QoY2xpcGJvYXJk LmNvcHlUZXh0VG9DbGlwYm9hcmQuY2FsbHMubW9zdFJlY2VudCgpLmFyZ3Nb MF0pLnRvQ29udGFpbignMyxcJ3B1bWFcJyxcJzlcJycpOworICAgIH0pOwog Ci0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIHRoZSB1c2VyIGNhbiBlZGl0IHRo ZSBncmlkIiwgZnVuY3Rpb24gKCkgewotICAgICAgICAgIGl0KCJlbmFibGVz IHRoZSBwYXN0ZSByb3cgYnV0dG9uIiwgZnVuY3Rpb24gKCkgewotICAgICAg ICAgICAgY29weURhdGEuYXBwbHkoXy5leHRlbmQoe2Nhbl9lZGl0OiB0cnVl fSwgc3FsRWRpdG9yKSk7CisgICAgZGVzY3JpYmUoJ3doZW4gdGhlIHVzZXIg Y2FuIGVkaXQgdGhlIGdyaWQnLCBmdW5jdGlvbiAoKSB7CisgICAgICBpdCgn ZW5hYmxlcyB0aGUgcGFzdGUgcm93IGJ1dHRvbicsIGZ1bmN0aW9uICgpIHsK KyAgICAgICAgY29weURhdGEuYXBwbHkoXy5leHRlbmQoe2Nhbl9lZGl0OiB0 cnVlfSwgc3FsRWRpdG9yKSk7CiAKLSAgICAgICAgICAgIGV4cGVjdCgkKCIj YnRuLXBhc3RlLXJvdyIpLnByb3AoJ2Rpc2FibGVkJykpLnRvQmUoZmFsc2Up OwotICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICAgICAgZXhwZWN0 KCQoJyNidG4tcGFzdGUtcm93JykucHJvcCgnZGlzYWJsZWQnKSkudG9CZShm YWxzZSk7CiAgICAgICB9KTsKKyAgICB9KTsKKyAgfSk7CiAKLSAgICAgIGRl c2NyaWJlKCJ3aGVuIGEgY29sdW1uIGlzIHNlbGVjdGVkIiwgZnVuY3Rpb24g KCkgewotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKLSAgICAg ICAgICB2YXIgZmlyc3REYXRhQ29sdW1uID0gUmFuZ2VTZWxlY3Rpb25IZWxw ZXIucmFuZ2VGb3JDb2x1bW4oZ3JpZCwgMSk7Ci0gICAgICAgICAgZ3JpZC5n ZXRTZWxlY3Rpb25Nb2RlbCgpLnNldFNlbGVjdGVkUmFuZ2VzKFtmaXJzdERh dGFDb2x1bW5dKQotICAgICAgICB9KTsKKyAgZGVzY3JpYmUoJ3doZW4gYSBj b2x1bW4gaXMgc2VsZWN0ZWQnLCBmdW5jdGlvbiAoKSB7CisgICAgYmVmb3Jl RWFjaChmdW5jdGlvbiAoKSB7CisgICAgICB2YXIgZmlyc3REYXRhQ29sdW1u ID0gUmFuZ2VTZWxlY3Rpb25IZWxwZXIucmFuZ2VGb3JDb2x1bW4oZ3JpZCwg MSk7CisgICAgICBncmlkLmdldFNlbGVjdGlvbk1vZGVsKCkuc2V0U2VsZWN0 ZWRSYW5nZXMoW2ZpcnN0RGF0YUNvbHVtbl0pOworICAgIH0pOwogCi0gICAg ICAgIGl0KCJjb3BpZXMgdGV4dCB0byB0aGUgY2xpcGJvYXJkIiwgZnVuY3Rp b24gKCkgewotICAgICAgICAgIHNweU9uKGNsaXBib2FyZCwgJ2NvcHlUZXh0 VG9DbGlwYm9hcmQnKTsKKyAgICBpdCgnY29waWVzIHRleHQgdG8gdGhlIGNs aXBib2FyZCcsIGZ1bmN0aW9uICgpIHsKKyAgICAgIHNweU9uKGNsaXBib2Fy ZCwgJ2NvcHlUZXh0VG9DbGlwYm9hcmQnKTsKIAotICAgICAgICAgIGNvcHlE YXRhLmFwcGx5KHNxbEVkaXRvcik7CisgICAgICBjb3B5RGF0YS5hcHBseShz cWxFZGl0b3IpOwogCi0gICAgICAgICAgZXhwZWN0KGNsaXBib2FyZC5jb3B5 VGV4dFRvQ2xpcGJvYXJkKS50b0hhdmVCZWVuQ2FsbGVkKCk7CisgICAgICBl eHBlY3QoY2xpcGJvYXJkLmNvcHlUZXh0VG9DbGlwYm9hcmQpLnRvSGF2ZUJl ZW5DYWxsZWQoKTsKIAotICAgICAgICAgIHZhciBjb3B5QXJnID0gY2xpcGJv YXJkLmNvcHlUZXh0VG9DbGlwYm9hcmQuY2FsbHMubW9zdFJlY2VudCgpLmFy Z3NbMF07Ci0gICAgICAgICAgdmFyIHJvd1N0cmluZ3MgPSBjb3B5QXJnLnNw bGl0KCdcbicpOwotICAgICAgICAgIGV4cGVjdChyb3dTdHJpbmdzWzBdKS50 b0JlKCIxIik7Ci0gICAgICAgICAgZXhwZWN0KHJvd1N0cmluZ3NbMV0pLnRv QmUoIjIiKTsKLSAgICAgICAgICBleHBlY3Qocm93U3RyaW5nc1syXSkudG9C ZSgiMyIpOwotICAgICAgICB9KTsKKyAgICAgIHZhciBjb3B5QXJnID0gY2xp cGJvYXJkLmNvcHlUZXh0VG9DbGlwYm9hcmQuY2FsbHMubW9zdFJlY2VudCgp LmFyZ3NbMF07CisgICAgICB2YXIgcm93U3RyaW5ncyA9IGNvcHlBcmcuc3Bs aXQoJ1xuJyk7CisgICAgICBleHBlY3Qocm93U3RyaW5nc1swXSkudG9CZSgn MScpOworICAgICAgZXhwZWN0KHJvd1N0cmluZ3NbMV0pLnRvQmUoJzInKTsK KyAgICAgIGV4cGVjdChyb3dTdHJpbmdzWzJdKS50b0JlKCczJyk7CisgICAg fSk7CiAKLSAgICAgICAgaXQoInNldHMgY29waWVkX3Jvd3MgdG8gZW1wdHki LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgY29weURhdGEuYXBwbHkoc3Fs RWRpdG9yKTsKKyAgICBpdCgnc2V0cyBjb3BpZWRfcm93cyB0byBlbXB0eScs IGZ1bmN0aW9uICgpIHsKKyAgICAgIGNvcHlEYXRhLmFwcGx5KHNxbEVkaXRv cik7CiAKLSAgICAgICAgICBleHBlY3Qoc3FsRWRpdG9yLmNvcGllZF9yb3dz Lmxlbmd0aCkudG9CZSgwKTsKLSAgICAgICAgfSk7CisgICAgICBleHBlY3Qo c3FsRWRpdG9yLmNvcGllZF9yb3dzLmxlbmd0aCkudG9CZSgwKTsKKyAgICB9 KTsKIAotICAgICAgICBkZXNjcmliZSgid2hlbiB0aGUgdXNlciBjYW4gZWRp dCB0aGUgZ3JpZCIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICBiZWZvcmVF YWNoKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGNvcHlEYXRhLmFwcGx5 KF8uZXh0ZW5kKHtjYW5fZWRpdDogdHJ1ZX0sIHNxbEVkaXRvcikpOwotICAg ICAgICAgIH0pOworICAgIGRlc2NyaWJlKCd3aGVuIHRoZSB1c2VyIGNhbiBl ZGl0IHRoZSBncmlkJywgZnVuY3Rpb24gKCkgeworICAgICAgYmVmb3JlRWFj aChmdW5jdGlvbiAoKSB7CisgICAgICAgIGNvcHlEYXRhLmFwcGx5KF8uZXh0 ZW5kKHtjYW5fZWRpdDogdHJ1ZX0sIHNxbEVkaXRvcikpOworICAgICAgfSk7 CiAKLSAgICAgICAgICBpdCgiZGlzYWJsZXMgdGhlIHBhc3RlIHJvdyBidXR0 b24iLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBleHBlY3QoJCgiI2J0 bi1wYXN0ZS1yb3ciKS5wcm9wKCdkaXNhYmxlZCcpKS50b0JlKHRydWUpOwot ICAgICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICAgIGl0KCdkaXNhYmxl cyB0aGUgcGFzdGUgcm93IGJ1dHRvbicsIGZ1bmN0aW9uICgpIHsKKyAgICAg ICAgZXhwZWN0KCQoJyNidG4tcGFzdGUtcm93JykucHJvcCgnZGlzYWJsZWQn KSkudG9CZSh0cnVlKTsKICAgICAgIH0pOwogICAgIH0pOwogICB9KTsKK30p OwpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zZWxl Y3Rpb24vZ3JpZF9zZWxlY3Rvcl9zcGVjLmpzIGIvd2ViL3JlZ3Jlc3Npb24v amF2YXNjcmlwdC9zZWxlY3Rpb24vZ3JpZF9zZWxlY3Rvcl9zcGVjLmpzCmlu ZGV4IGQ3OWQ0MTdmLi5mN2IzOWVlOCAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jl c3Npb24vamF2YXNjcmlwdC9zZWxlY3Rpb24vZ3JpZF9zZWxlY3Rvcl9zcGVj LmpzCisrKyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvc2VsZWN0aW9u L2dyaWRfc2VsZWN0b3Jfc3BlYy5qcwpAQCAtMSwxMTcgKzEsMTMwIEBACi1k ZWZpbmUoWyJqcXVlcnkiLAotICAgICJ1bmRlcnNjb3JlIiwKLSAgICAic2xp Y2tncmlkL3NsaWNrLmdyaWQiLAotICAgICJzb3VyY2VzL3NlbGVjdGlvbi94 Y2VsbF9zZWxlY3Rpb25fbW9kZWwiLAotICAgICJzb3VyY2VzL3NlbGVjdGlv bi9ncmlkX3NlbGVjdG9yIgotICBdLAotICBmdW5jdGlvbiAoJCwgXywgU2xp Y2tHcmlkLCBYQ2VsbFNlbGVjdGlvbk1vZGVsLCBHcmlkU2VsZWN0b3IpIHsK LSAgICBkZXNjcmliZSgiR3JpZFNlbGVjdG9yIiwgZnVuY3Rpb24gKCkgewot ICAgICAgdmFyIGNvbnRhaW5lciwgZGF0YSwgY29sdW1ucywgZ3JpZFNlbGVj dG9yLCB4Q2VsbFNlbGVjdGlvbk1vZGVsOwotCi0gICAgICBiZWZvcmVFYWNo KGZ1bmN0aW9uICgpIHsKLSAgICAgICAgY29udGFpbmVyID0gJCgiPGRpdj48 L2Rpdj4iKTsKLSAgICAgICAgY29udGFpbmVyLmhlaWdodCg5OTk5KTsKLSAg ICAgICAgY29sdW1ucyA9IFt7Ci0gICAgICAgICAgaWQ6ICcxJywKLSAgICAg ICAgICBuYW1lOiAnc29tZS1jb2x1bW4tbmFtZScsCi0gICAgICAgICAgcG9z OiAwCi0gICAgICAgIH0sIHsKLSAgICAgICAgICBpZDogJzInLAotICAgICAg ICAgIG5hbWU6ICdzZWNvbmQgY29sdW1uJywKLSAgICAgICAgICBwb3M6IDEK LSAgICAgICAgfV07Ci0KLSAgICAgICAgZ3JpZFNlbGVjdG9yID0gbmV3IEdy aWRTZWxlY3RvcigpOwotICAgICAgICBjb2x1bW5zID0gZ3JpZFNlbGVjdG9y LmdldENvbHVtbkRlZmluaXRpb25zKGNvbHVtbnMpOwotCi0gICAgICAgIGRh dGEgPSBbXTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsr KSB7Ci0gICAgICAgICAgZGF0YS5wdXNoKHsnc29tZS1jb2x1bW4tbmFtZSc6 ICdzb21lLXZhbHVlLScgKyBpLCAnc2Vjb25kIGNvbHVtbic6ICdzZWNvbmQg dmFsdWUgJyArIGl9KTsKLSAgICAgICAgfQotICAgICAgICB2YXIgZ3JpZCA9 IG5ldyBTbGlja0dyaWQoY29udGFpbmVyLCBkYXRhLCBjb2x1bW5zKTsKLQot ICAgICAgICB4Q2VsbFNlbGVjdGlvbk1vZGVsID0gbmV3IFhDZWxsU2VsZWN0 aW9uTW9kZWwoKTsKLSAgICAgICAgZ3JpZC5zZXRTZWxlY3Rpb25Nb2RlbCh4 Q2VsbFNlbGVjdGlvbk1vZGVsKTsKLQotICAgICAgICBncmlkLnJlZ2lzdGVy UGx1Z2luKGdyaWRTZWxlY3Rvcik7Ci0gICAgICAgIGdyaWQuaW52YWxpZGF0 ZSgpOwotCi0gICAgICAgICQoImJvZHkiKS5hcHBlbmQoY29udGFpbmVyKTsK LSAgICAgIH0pOwotCi0gICAgICBhZnRlckVhY2goZnVuY3Rpb24gKCkgewot ICAgICAgICAkKCJib2R5IikuZmluZChjb250YWluZXIpLnJlbW92ZSgpOwot ICAgICAgfSk7CisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8K Ky8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKy8vCisvLyBDb3B5 cmlnaHQgKEMpIDIwMTMgLSAyMDE3LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVu dCBUZWFtCisvLyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRo ZSBQb3N0Z3JlU1FMIExpY2VuY2UKKy8vCisvLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLworCitpbXBvcnQgJCBmcm9tICdqcXVlcnknOworaW1wb3J0 IF8gZnJvbSAndW5kZXJzY29yZSc7CisKK2ltcG9ydCBTbGljayBmcm9tICdz bGlja2dyaWQnOworaW1wb3J0ICdzbGlja2dyaWQuZ3JpZCc7CisKK2ltcG9y dCBHcmlkU2VsZWN0b3IgZnJvbSAnc291cmNlcy9zZWxlY3Rpb24vZ3JpZF9z ZWxlY3Rvcic7CitpbXBvcnQgWENlbGxTZWxlY3Rpb25Nb2RlbCBmcm9tICdz b3VyY2VzL3NlbGVjdGlvbi94Y2VsbF9zZWxlY3Rpb25fbW9kZWwnOworCitk ZXNjcmliZSgnR3JpZFNlbGVjdG9yJywgZnVuY3Rpb24gKCkgeworICB2YXIg Y29udGFpbmVyLCBkYXRhLCBjb2x1bW5zLCBncmlkU2VsZWN0b3IsIHhDZWxs U2VsZWN0aW9uTW9kZWw7CisgIHZhciBTbGljaywgU2xpY2tHcmlkOworCisg IGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgeworICAgIFNsaWNrID0gd2luZG93 LlNsaWNrOworICAgIFNsaWNrR3JpZCA9IFNsaWNrLkdyaWQ7CisgICAgY29u dGFpbmVyID0gJCgnPGRpdj48L2Rpdj4nKTsKKyAgICBjb250YWluZXIuaGVp Z2h0KDk5OTkpOworICAgIGNvbHVtbnMgPSBbeworICAgICAgaWQ6ICcxJywK KyAgICAgIG5hbWU6ICdzb21lLWNvbHVtbi1uYW1lJywKKyAgICAgIHBvczog MAorICAgIH0sIHsKKyAgICAgIGlkOiAnMicsCisgICAgICBuYW1lOiAnc2Vj b25kIGNvbHVtbicsCisgICAgICBwb3M6IDEKKyAgICB9XTsKKworICAgIGdy aWRTZWxlY3RvciA9IG5ldyBHcmlkU2VsZWN0b3IoKTsKKyAgICBjb2x1bW5z ID0gZ3JpZFNlbGVjdG9yLmdldENvbHVtbkRlZmluaXRpb25zKGNvbHVtbnMp OworCisgICAgZGF0YSA9IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg MTA7IGkrKykgeworICAgICAgZGF0YS5wdXNoKHsnc29tZS1jb2x1bW4tbmFt ZSc6ICdzb21lLXZhbHVlLScgKyBpLCAnc2Vjb25kIGNvbHVtbic6ICdzZWNv bmQgdmFsdWUgJyArIGl9KTsKKyAgICB9CisgICAgdmFyIGdyaWQgPSBuZXcg U2xpY2suR3JpZChjb250YWluZXIsIGRhdGEsIGNvbHVtbnMpOworCisgICAg eENlbGxTZWxlY3Rpb25Nb2RlbCA9IG5ldyBYQ2VsbFNlbGVjdGlvbk1vZGVs KCk7CisgICAgZ3JpZC5zZXRTZWxlY3Rpb25Nb2RlbCh4Q2VsbFNlbGVjdGlv bk1vZGVsKTsKKworICAgIGdyaWQucmVnaXN0ZXJQbHVnaW4oZ3JpZFNlbGVj dG9yKTsKKyAgICBncmlkLmludmFsaWRhdGUoKTsKKworICAgICQoJ2JvZHkn KS5hcHBlbmQoY29udGFpbmVyKTsKKyAgfSk7CiAKLSAgICAgIGl0KCJyZW5k ZXJzIGFuIGFkZGl0aW9uYWwgY29sdW1uIG9uIHRoZSBsZWZ0IGZvciBzZWxl Y3Rpbmcgcm93cyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgZXhwZWN0KGNv bHVtbnMubGVuZ3RoKS50b0JlKDMpOworICBhZnRlckVhY2goZnVuY3Rpb24g KCkgeworICAgICQoJ2JvZHknKS5maW5kKGNvbnRhaW5lcikucmVtb3ZlKCk7 CisgIH0pOwogCi0gICAgICAgIHZhciBsZWZ0bW9zdENvbHVtbiA9IGNvbHVt bnNbMF07Ci0gICAgICAgIGV4cGVjdChsZWZ0bW9zdENvbHVtbi5pZCkudG9C ZSgncm93LWhlYWRlci1jb2x1bW4nKTsKLSAgICAgIH0pOworICBpdCgncmVu ZGVycyBhbiBhZGRpdGlvbmFsIGNvbHVtbiBvbiB0aGUgbGVmdCBmb3Igc2Vs ZWN0aW5nIHJvd3MnLCBmdW5jdGlvbiAoKSB7CisgICAgZXhwZWN0KGNvbHVt bnMubGVuZ3RoKS50b0JlKDMpOwogCi0gICAgICBpdCgicmVuZGVycyBhIGJ1 dHRvbiBmb3Igc2VsZWN0aW5nIGFsbCB0aGUgY2VsbHMiLCBmdW5jdGlvbiAo KSB7Ci0gICAgICAgIGV4cGVjdChjb250YWluZXIuZmluZCgiW3RpdGxlPSdT ZWxlY3QvRGVzZWxlY3QgQWxsJ10iKS5sZW5ndGgpLnRvQmUoMSk7Ci0gICAg ICB9KTsKKyAgICB2YXIgbGVmdG1vc3RDb2x1bW4gPSBjb2x1bW5zWzBdOwor ICAgIGV4cGVjdChsZWZ0bW9zdENvbHVtbi5pZCkudG9CZSgncm93LWhlYWRl ci1jb2x1bW4nKTsKKyAgfSk7CiAKLSAgICAgIGRlc2NyaWJlKCJ3aGVuIHRo ZSBjZWxsIGZvciB0aGUgc2VsZWN0L2Rlc2VsZWN0IGFsbCBpcyBjbGlja2Vk IiwgZnVuY3Rpb24gKCkgewotICAgICAgICBpdCgic2VsZWN0cyB0aGUgd2hv bGUgZ3JpZCIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICBjb250YWluZXIu ZmluZCgiW3RpdGxlPSdTZWxlY3QvRGVzZWxlY3QgQWxsJ10iKS5wYXJlbnQo KS5jbGljaygpOworICBpdCgncmVuZGVycyBhIGJ1dHRvbiBmb3Igc2VsZWN0 aW5nIGFsbCB0aGUgY2VsbHMnLCBmdW5jdGlvbiAoKSB7CisgICAgZXhwZWN0 KGNvbnRhaW5lci5maW5kKCdbdGl0bGU9XCdTZWxlY3QvRGVzZWxlY3QgQWxs XCddJykubGVuZ3RoKS50b0JlKDEpOworICB9KTsKIAotICAgICAgICAgIHZh ciBzZWxlY3RlZFJhbmdlcyA9IHhDZWxsU2VsZWN0aW9uTW9kZWwuZ2V0U2Vs ZWN0ZWRSYW5nZXMoKTsKLSAgICAgICAgICBleHBlY3Qoc2VsZWN0ZWRSYW5n ZXMubGVuZ3RoKS50b0JlKDEpOwotICAgICAgICAgIHZhciBzZWxlY3RlZFJh bmdlID0gc2VsZWN0ZWRSYW5nZXNbMF07Ci0gICAgICAgICAgZXhwZWN0KHNl bGVjdGVkUmFuZ2UuZnJvbUNlbGwpLnRvQmUoMSk7Ci0gICAgICAgICAgZXhw ZWN0KHNlbGVjdGVkUmFuZ2UudG9DZWxsKS50b0JlKDIpOwotICAgICAgICAg IGV4cGVjdChzZWxlY3RlZFJhbmdlLmZyb21Sb3cpLnRvQmUoMCk7Ci0gICAg ICAgICAgZXhwZWN0KHNlbGVjdGVkUmFuZ2UudG9Sb3cpLnRvQmUoOSk7Ci0g ICAgICAgIH0pOworICBkZXNjcmliZSgnd2hlbiB0aGUgY2VsbCBmb3IgdGhl IHNlbGVjdC9kZXNlbGVjdCBhbGwgaXMgY2xpY2tlZCcsIGZ1bmN0aW9uICgp IHsKKyAgICBpdCgnc2VsZWN0cyB0aGUgd2hvbGUgZ3JpZCcsIGZ1bmN0aW9u ICgpIHsKKyAgICAgIGNvbnRhaW5lci5maW5kKCdbdGl0bGU9XCdTZWxlY3Qv RGVzZWxlY3QgQWxsXCddJykucGFyZW50KCkuY2xpY2soKTsKKworICAgICAg dmFyIHNlbGVjdGVkUmFuZ2VzID0geENlbGxTZWxlY3Rpb25Nb2RlbC5nZXRT ZWxlY3RlZFJhbmdlcygpOworICAgICAgZXhwZWN0KHNlbGVjdGVkUmFuZ2Vz Lmxlbmd0aCkudG9CZSgxKTsKKyAgICAgIHZhciBzZWxlY3RlZFJhbmdlID0g c2VsZWN0ZWRSYW5nZXNbMF07CisgICAgICBleHBlY3Qoc2VsZWN0ZWRSYW5n ZS5mcm9tQ2VsbCkudG9CZSgxKTsKKyAgICAgIGV4cGVjdChzZWxlY3RlZFJh bmdlLnRvQ2VsbCkudG9CZSgyKTsKKyAgICAgIGV4cGVjdChzZWxlY3RlZFJh bmdlLmZyb21Sb3cpLnRvQmUoMCk7CisgICAgICBleHBlY3Qoc2VsZWN0ZWRS YW5nZS50b1JvdykudG9CZSg5KTsKKyAgICB9KTsKIAotICAgICAgICBpdCgi YWRkcyBzZWxlY3RlZCBjbGFzcyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAg ICBjb250YWluZXIuZmluZCgiW3RpdGxlPSdTZWxlY3QvRGVzZWxlY3QgQWxs J10iKS5wYXJlbnQoKS5jbGljaygpOworICAgIGl0KCdhZGRzIHNlbGVjdGVk IGNsYXNzJywgZnVuY3Rpb24gKCkgeworICAgICAgY29udGFpbmVyLmZpbmQo J1t0aXRsZT1cJ1NlbGVjdC9EZXNlbGVjdCBBbGxcJ10nKS5wYXJlbnQoKS5j bGljaygpOwogCi0gICAgICAgICAgZXhwZWN0KCQoY29udGFpbmVyLmZpbmQo IltkYXRhLWlkPSdzZWxlY3QtYWxsJ10iKSkuaGFzQ2xhc3MoJ3NlbGVjdGVk JykpLnRvQmVUcnV0aHkoKTsKLSAgICAgICAgfSk7Ci0gICAgICB9KTsKKyAg ICAgIGV4cGVjdCgkKGNvbnRhaW5lci5maW5kKCdbZGF0YS1pZD1cJ3NlbGVj dC1hbGxcJ10nKSkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpLnRvQmVUcnV0aHko KTsKKyAgICB9KTsKKyAgfSk7CiAKLSAgICAgIGRlc2NyaWJlKCJ3aGVuIHRo ZSBzZWxlY3QgYWxsIGJ1dHRvbiBpbiB0aGUgY29ybmVyIGdldHMgc2VsZWN0 ZWQiLCBmdW5jdGlvbiAoKSB7CisgIGRlc2NyaWJlKCd3aGVuIHRoZSBzZWxl Y3QgYWxsIGJ1dHRvbiBpbiB0aGUgY29ybmVyIGdldHMgc2VsZWN0ZWQnLCBm dW5jdGlvbiAoKSB7CiAKLSAgICAgICAgaXQoInNlbGVjdHMgYWxsIHRoZSBj ZWxscyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICBjb250YWluZXIuZmlu ZCgiW3RpdGxlPSdTZWxlY3QvRGVzZWxlY3QgQWxsJ10iKS5jbGljaygpOwor ICAgIGl0KCdzZWxlY3RzIGFsbCB0aGUgY2VsbHMnLCBmdW5jdGlvbiAoKSB7 CisgICAgICBjb250YWluZXIuZmluZCgnW3RpdGxlPVwnU2VsZWN0L0Rlc2Vs ZWN0IEFsbFwnXScpLmNsaWNrKCk7CiAKLSAgICAgICAgICB2YXIgc2VsZWN0 ZWRSYW5nZXMgPSB4Q2VsbFNlbGVjdGlvbk1vZGVsLmdldFNlbGVjdGVkUmFu Z2VzKCk7Ci0gICAgICAgICAgZXhwZWN0KHNlbGVjdGVkUmFuZ2VzLmxlbmd0 aCkudG9CZSgxKTsKLSAgICAgICAgICB2YXIgc2VsZWN0ZWRSYW5nZSA9IHNl bGVjdGVkUmFuZ2VzWzBdOwotICAgICAgICAgIGV4cGVjdChzZWxlY3RlZFJh bmdlLmZyb21DZWxsKS50b0JlKDEpOwotICAgICAgICAgIGV4cGVjdChzZWxl Y3RlZFJhbmdlLnRvQ2VsbCkudG9CZSgyKTsKLSAgICAgICAgICBleHBlY3Qo c2VsZWN0ZWRSYW5nZS5mcm9tUm93KS50b0JlKDApOwotICAgICAgICAgIGV4 cGVjdChzZWxlY3RlZFJhbmdlLnRvUm93KS50b0JlKDkpOwotICAgICAgICB9 KTsKKyAgICAgIHZhciBzZWxlY3RlZFJhbmdlcyA9IHhDZWxsU2VsZWN0aW9u TW9kZWwuZ2V0U2VsZWN0ZWRSYW5nZXMoKTsKKyAgICAgIGV4cGVjdChzZWxl Y3RlZFJhbmdlcy5sZW5ndGgpLnRvQmUoMSk7CisgICAgICB2YXIgc2VsZWN0 ZWRSYW5nZSA9IHNlbGVjdGVkUmFuZ2VzWzBdOworICAgICAgZXhwZWN0KHNl bGVjdGVkUmFuZ2UuZnJvbUNlbGwpLnRvQmUoMSk7CisgICAgICBleHBlY3Qo c2VsZWN0ZWRSYW5nZS50b0NlbGwpLnRvQmUoMik7CisgICAgICBleHBlY3Qo c2VsZWN0ZWRSYW5nZS5mcm9tUm93KS50b0JlKDApOworICAgICAgZXhwZWN0 KHNlbGVjdGVkUmFuZ2UudG9Sb3cpLnRvQmUoOSk7CisgICAgfSk7CiAKLSAg ICAgICAgZGVzY3JpYmUoIndoZW4gdGhlIHNlbGVjdCBhbGwgYnV0dG9uIGlu IHRoZSBjb3JuZXIgZ2V0cyBkZXNlbGVjdGVkIiwgZnVuY3Rpb24gKCkgewot ICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgewotICAgICAgICAg ICAgY29udGFpbmVyLmZpbmQoIlt0aXRsZT0nU2VsZWN0L0Rlc2VsZWN0IEFs bCddIikuY2xpY2soKTsKLSAgICAgICAgICB9KTsKKyAgICBkZXNjcmliZSgn d2hlbiB0aGUgc2VsZWN0IGFsbCBidXR0b24gaW4gdGhlIGNvcm5lciBnZXRz IGRlc2VsZWN0ZWQnLCBmdW5jdGlvbiAoKSB7CisgICAgICBiZWZvcmVFYWNo KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgY29udGFpbmVyLmZpbmQoJ1t0aXRs ZT1cJ1NlbGVjdC9EZXNlbGVjdCBBbGxcJ10nKS5jbGljaygpOworICAgICAg fSk7CiAKLSAgICAgICAgICBpdCgiZGVzZWxlY3RzIGFsbCB0aGUgY2VsbHMi LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBjb250YWluZXIuZmluZCgi W3RpdGxlPSdTZWxlY3QvRGVzZWxlY3QgQWxsJ10iKS5jbGljaygpOworICAg ICAgaXQoJ2Rlc2VsZWN0cyBhbGwgdGhlIGNlbGxzJywgZnVuY3Rpb24gKCkg eworICAgICAgICBjb250YWluZXIuZmluZCgnW3RpdGxlPVwnU2VsZWN0L0Rl c2VsZWN0IEFsbFwnXScpLmNsaWNrKCk7CiAKLSAgICAgICAgICAgIHZhciBz ZWxlY3RlZFJhbmdlcyA9IHhDZWxsU2VsZWN0aW9uTW9kZWwuZ2V0U2VsZWN0 ZWRSYW5nZXMoKTsKLSAgICAgICAgICAgIGV4cGVjdChzZWxlY3RlZFJhbmdl cy5sZW5ndGgpLnRvQmUoMCk7Ci0gICAgICAgICAgfSk7Ci0gICAgICAgIH0p OworICAgICAgICB2YXIgc2VsZWN0ZWRSYW5nZXMgPSB4Q2VsbFNlbGVjdGlv bk1vZGVsLmdldFNlbGVjdGVkUmFuZ2VzKCk7CisgICAgICAgIGV4cGVjdChz ZWxlY3RlZFJhbmdlcy5sZW5ndGgpLnRvQmUoMCk7CisgICAgICB9KTsKKyAg ICB9KTsKIAotICAgICAgICBkZXNjcmliZSgiYW5kIHRoZW4gdGhlIHVuZGVy bHlpbmcgc2VsZWN0aW9uIGNoYW5nZXMiLCBmdW5jdGlvbiAoKSB7Ci0gICAg ICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBj b250YWluZXIuZmluZCgiW3RpdGxlPSdTZWxlY3QvRGVzZWxlY3QgQWxsJ10i KS5jbGljaygpOwotICAgICAgICAgIH0pOworICAgIGRlc2NyaWJlKCdhbmQg dGhlbiB0aGUgdW5kZXJseWluZyBzZWxlY3Rpb24gY2hhbmdlcycsIGZ1bmN0 aW9uICgpIHsKKyAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgeworICAg ICAgICBjb250YWluZXIuZmluZCgnW3RpdGxlPVwnU2VsZWN0L0Rlc2VsZWN0 IEFsbFwnXScpLmNsaWNrKCk7CisgICAgICB9KTsKIAotICAgICAgICAgIGl0 KCJyZW1vdmVzIHRoZSBzZWxlY3RlZCBjbGFzcyIsIGZ1bmN0aW9uICgpIHsK LSAgICAgICAgICAgIGNvbnRhaW5lci5maW5kKCJbdGl0bGU9J1NlbGVjdC9E ZXNlbGVjdCBBbGwnXSIpLnBhcmVudCgpLmNsaWNrKCk7CisgICAgICBpdCgn cmVtb3ZlcyB0aGUgc2VsZWN0ZWQgY2xhc3MnLCBmdW5jdGlvbiAoKSB7Cisg ICAgICAgIGNvbnRhaW5lci5maW5kKCdbdGl0bGU9XCdTZWxlY3QvRGVzZWxl Y3QgQWxsXCddJykucGFyZW50KCkuY2xpY2soKTsKIAotICAgICAgICAgICAg ZXhwZWN0KCQoY29udGFpbmVyLmZpbmQoIltkYXRhLWlkPSdzZWxlY3QtYWxs J10iKSkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpLnRvQmVGYWxzeSgpOwotICAg ICAgICAgIH0pOwotICAgICAgICB9KTsKKyAgICAgICAgZXhwZWN0KCQoY29u dGFpbmVyLmZpbmQoJ1tkYXRhLWlkPVwnc2VsZWN0LWFsbFwnXScpKS5oYXND bGFzcygnc2VsZWN0ZWQnKSkudG9CZUZhbHN5KCk7CiAgICAgICB9KTsKICAg ICB9KTsKICAgfSk7Cit9KTsKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9u L2phdmFzY3JpcHQvc2VsZWN0aW9uL3JhbmdlX2JvdW5kYXJ5X25hdmlnYXRv cl9zcGVjLmpzIGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zZWxlY3Rp b24vcmFuZ2VfYm91bmRhcnlfbmF2aWdhdG9yX3NwZWMuanMKaW5kZXggYjFj YTQ1ZWIuLmI1NzA4N2YzIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9q YXZhc2NyaXB0L3NlbGVjdGlvbi9yYW5nZV9ib3VuZGFyeV9uYXZpZ2F0b3Jf c3BlYy5qcworKysgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NlbGVj dGlvbi9yYW5nZV9ib3VuZGFyeV9uYXZpZ2F0b3Jfc3BlYy5qcwpAQCAtMSw4 ICsxLDIwIEBACi1kZWZpbmUoWydzb3VyY2VzL3NlbGVjdGlvbi9yYW5nZV9i b3VuZGFyeV9uYXZpZ2F0b3InXSwgZnVuY3Rpb24gKHJhbmdlQm91bmRhcnlO YXZpZ2F0b3IpIHsKLQotICBkZXNjcmliZSgiI2dldFVuaW9uIiwgZnVuY3Rp b24gKCkgewotICAgIGRlc2NyaWJlKCJ3aGVuIHRoZSByYW5nZXMgY29tcGxl dGVseSBvdmVybGFwIiwgZnVuY3Rpb24gKCkgewotICAgICAgaXQoInJldHVy bnMgYSBsaXN0IHdpdGggdGhhdCByYW5nZSIsIGZ1bmN0aW9uICgpIHsKKy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1pbiA0 IC0gUG9zdGdyZVNRTCBUb29scworLy8KKy8vIENvcHlyaWdodCAoQykgMjAx MyAtIDIwMTcsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKy8vIFRo aXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwg TGljZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisK K2ltcG9ydCByYW5nZUJvdW5kYXJ5TmF2aWdhdG9yIGZyb20gJ3NvdXJjZXMv c2VsZWN0aW9uL3JhbmdlX2JvdW5kYXJ5X25hdmlnYXRvcic7CitpbXBvcnQg U2xpY2sgZnJvbSAnc2xpY2tncmlkJzsKKworZGVzY3JpYmUoJ1JhbmdlQm91 bmRhcnlOYXZpZ2F0b3InLCBmdW5jdGlvbiAoKSB7CisKKyAgZGVzY3JpYmUo JyNnZXRVbmlvbicsIGZ1bmN0aW9uICgpIHsKKyAgICBkZXNjcmliZSgnd2hl biB0aGUgcmFuZ2VzIGNvbXBsZXRlbHkgb3ZlcmxhcCcsIGZ1bmN0aW9uICgp IHsKKyAgICAgIGl0KCdyZXR1cm5zIGEgbGlzdCB3aXRoIHRoYXQgcmFuZ2Un LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgIHZhciByYW5nZXMgPSBbWzEsIDRd LCBbMSwgNF0sIFsxLCA0XV07CiAKICAgICAgICAgdmFyIHVuaW9uID0gcmFu Z2VCb3VuZGFyeU5hdmlnYXRvci5nZXRVbmlvbihyYW5nZXMpOwpkaWZmIC0t Z2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zZWxlY3Rpb24vcmFu Z2Vfc2VsZWN0aW9uX2hlbHBlcl9zcGVjLmpzIGIvd2ViL3JlZ3Jlc3Npb24v amF2YXNjcmlwdC9zZWxlY3Rpb24vcmFuZ2Vfc2VsZWN0aW9uX2hlbHBlcl9z cGVjLmpzCmluZGV4IGNjODExODliLi42M2MwNzI1OSAxMDA2NDQKLS0tIGEv d2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zZWxlY3Rpb24vcmFuZ2Vfc2Vs ZWN0aW9uX2hlbHBlcl9zcGVjLmpzCisrKyBiL3dlYi9yZWdyZXNzaW9uL2ph dmFzY3JpcHQvc2VsZWN0aW9uL3JhbmdlX3NlbGVjdGlvbl9oZWxwZXJfc3Bl Yy5qcwpAQCAtMSw3MCArMSw4MiBAQAotZGVmaW5lKFsKLSAgJ2pxdWVyeScs Ci0gICdzbGlja2dyaWQvc2xpY2suZ3JpZCcsCi0gICdzb3VyY2VzL3NlbGVj dGlvbi9yYW5nZV9zZWxlY3Rpb25faGVscGVyJwotXSwgZnVuY3Rpb24gKCQs IFNsaWNrR3JpZCwgUmFuZ2VTZWxlY3Rpb25IZWxwZXIpIHsKLSAgZGVzY3Jp YmUoIlJhbmdlU2VsZWN0aW9uSGVscGVyIHV0aWxpdHkgZnVuY3Rpb25zIiwg ZnVuY3Rpb24gKCkgewotICAgIHZhciBncmlkOwotICAgIGJlZm9yZUVhY2go ZnVuY3Rpb24gKCkgewotICAgICAgdmFyIGNvbnRhaW5lciwgZGF0YSwgY29s dW1ucywgb3B0aW9uczsKLSAgICAgIGNvbnRhaW5lciA9ICQoIjxkaXY+PC9k aXY+Iik7Ci0gICAgICBjb250YWluZXIuaGVpZ2h0KDk5OTkpOworaW1wb3J0 ICQgZnJvbSAnanF1ZXJ5JzsKK2ltcG9ydCBTbGljayBmcm9tICdzbGlja2dy aWQnOworaW1wb3J0ICdzbGlja2dyaWQuZ3JpZCc7CitpbXBvcnQgUmFuZ2VT ZWxlY3Rpb25IZWxwZXIgZnJvbSAnc291cmNlcy9zZWxlY3Rpb24vcmFuZ2Vf c2VsZWN0aW9uX2hlbHBlcic7CiAKLSAgICAgIGNvbHVtbnMgPSBbewotICAg ICAgICBpZDogJzEnLAotICAgICAgICBuYW1lOiAnc29tZS1jb2x1bW4tbmFt ZScsCi0gICAgICAgIHBvczogMAotICAgICAgfSwgewotICAgICAgICBpZDog J3NlY29uZC1jb2x1bW4taWQnLAotICAgICAgICBuYW1lOiAnc2Vjb25kIGNv bHVtbicsCi0gICAgICAgIHBvczogMQotICAgICAgfV07CitkZXNjcmliZSgi UmFuZ2VTZWxlY3Rpb25IZWxwZXIgdXRpbGl0eSBmdW5jdGlvbnMiLCBmdW5j dGlvbiAoKSB7CisgIHZhciBncmlkOworICBiZWZvcmVFYWNoKGZ1bmN0aW9u ICgpIHsKKyAgICB2YXIgY29udGFpbmVyLCBkYXRhLCBjb2x1bW5zLCBvcHRp b25zOworICAgIGNvbnRhaW5lciA9ICQoIjxkaXY+PC9kaXY+Iik7CisgICAg Y29udGFpbmVyLmhlaWdodCg5OTk5KTsKIAotICAgICAgZGF0YSA9IFtdOwot ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7Ci0gICAgICAg IGRhdGEucHVzaCh7J3NvbWUtY29sdW1uLW5hbWUnOiAnc29tZS12YWx1ZS0n ICsgaSwgJ3NlY29uZCBjb2x1bW4nOiAnc2Vjb25kIHZhbHVlICcgKyBpfSk7 Ci0gICAgICB9CisgICAgY29sdW1ucyA9IFt7CisgICAgICBpZDogJzEnLAor ICAgICAgbmFtZTogJ3NvbWUtY29sdW1uLW5hbWUnLAorICAgICAgcG9zOiAw CisgICAgfSwgeworICAgICAgaWQ6ICdzZWNvbmQtY29sdW1uLWlkJywKKyAg ICAgIG5hbWU6ICdzZWNvbmQgY29sdW1uJywKKyAgICAgIHBvczogMQorICAg IH1dOwogCi0gICAgICBncmlkID0gbmV3IFNsaWNrR3JpZChjb250YWluZXIs IGRhdGEsIGNvbHVtbnMsIG9wdGlvbnMpOwotICAgICAgZ3JpZC5pbnZhbGlk YXRlKCk7Ci0gICAgfSk7CisgICAgZGF0YSA9IFtdOworICAgIGZvciAodmFy IGkgPSAwOyBpIDwgMTA7IGkrKykgeworICAgICAgZGF0YS5wdXNoKHsnc29t ZS1jb2x1bW4tbmFtZSc6ICdzb21lLXZhbHVlLScgKyBpLCAnc2Vjb25kIGNv bHVtbic6ICdzZWNvbmQgdmFsdWUgJyArIGl9KTsKKyAgICB9CisKKyAgICBn cmlkID0gbmV3IFNsaWNrLkdyaWQoY29udGFpbmVyLCBkYXRhLCBjb2x1bW5z LCBvcHRpb25zKTsKKyAgICBncmlkLmludmFsaWRhdGUoKTsKKyAgfSk7CiAK LSAgICBkZXNjcmliZSgiI2dldEluZGV4ZXNPZkNvbXBsZXRlUm93cyIsIGZ1 bmN0aW9uICgpIHsKLSAgICAgIGRlc2NyaWJlKCJ3aGVuIHNlbGVjdGVkIHJh bmdlcyBhcmUgbm90IHJvd3MiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGl0 KCJyZXR1cm5zIGFuIGVtcHR5IGFycmF5IiwgZnVuY3Rpb24gKCkgewotICAg ICAgICAgIHZhciByb3dsZXNzUmFuZ2VzID0gW1JhbmdlU2VsZWN0aW9uSGVs cGVyLnJhbmdlRm9yQ29sdW1uKGdyaWQsIDEpXTsKKyAgZGVzY3JpYmUoIiNn ZXRJbmRleGVzT2ZDb21wbGV0ZVJvd3MiLCBmdW5jdGlvbiAoKSB7CisgICAg ZGVzY3JpYmUoIndoZW4gc2VsZWN0ZWQgcmFuZ2VzIGFyZSBub3Qgcm93cyIs IGZ1bmN0aW9uICgpIHsKKyAgICAgIGl0KCJyZXR1cm5zIGFuIGVtcHR5IGFy cmF5IiwgZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgcm93bGVzc1Jhbmdl cyA9IFtSYW5nZVNlbGVjdGlvbkhlbHBlci5yYW5nZUZvckNvbHVtbihncmlk LCAxKV07CiAKLSAgICAgICAgICBleHBlY3QoUmFuZ2VTZWxlY3Rpb25IZWxw ZXIuZ2V0SW5kZXhlc09mQ29tcGxldGVSb3dzKGdyaWQsIHJvd2xlc3NSYW5n ZXMpKQotICAgICAgICAgICAgLnRvRXF1YWwoW10pOworICAgICAgICBleHBl Y3QoUmFuZ2VTZWxlY3Rpb25IZWxwZXIuZ2V0SW5kZXhlc09mQ29tcGxldGVS b3dzKGdyaWQsIHJvd2xlc3NSYW5nZXMpKQorICAgICAgICAgIC50b0VxdWFs KFtdKTsKKyAgICAgIH0pOworICAgIH0pOworICAgIGRlc2NyaWJlKCJ3aGVu IHNlbGVjdGVkIHJhbmdlIiwgZnVuY3Rpb24gKCkgeworICAgICAgZGVzY3Jp YmUoImlzIGEgc2luZ2xlIHJvdyIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAg aXQoInJldHVybnMgYW4gYXJyYXkgd2l0aCBvbmUgaW5kZXgiLCBmdW5jdGlv biAoKSB7CisgICAgICAgICAgdmFyIHNpbmdsZVJvd1JhbmdlID0gW1Jhbmdl U2VsZWN0aW9uSGVscGVyLnJhbmdlRm9yUm93KGdyaWQsIDEpXTsKKworICAg ICAgICAgIGV4cGVjdChSYW5nZVNlbGVjdGlvbkhlbHBlci5nZXRJbmRleGVz T2ZDb21wbGV0ZVJvd3MoZ3JpZCwgc2luZ2xlUm93UmFuZ2UpKQorICAgICAg ICAgICAgLnRvRXF1YWwoWzFdKTsKICAgICAgICAgfSk7CiAgICAgICB9KTsK LSAgICAgIGRlc2NyaWJlKCJ3aGVuIHNlbGVjdGVkIHJhbmdlIiwgZnVuY3Rp b24gKCkgewotICAgICAgICBkZXNjcmliZSgiaXMgYSBzaW5nbGUgcm93Iiwg ZnVuY3Rpb24gKCkgewotICAgICAgICAgIGl0KCJyZXR1cm5zIGFuIGFycmF5 IHdpdGggb25lIGluZGV4IiwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg dmFyIHNpbmdsZVJvd1JhbmdlID0gW1JhbmdlU2VsZWN0aW9uSGVscGVyLnJh bmdlRm9yUm93KGdyaWQsIDEpXTsKIAotICAgICAgICAgICAgZXhwZWN0KFJh bmdlU2VsZWN0aW9uSGVscGVyLmdldEluZGV4ZXNPZkNvbXBsZXRlUm93cyhn cmlkLCBzaW5nbGVSb3dSYW5nZSkpCi0gICAgICAgICAgICAgIC50b0VxdWFs KFsxXSk7Ci0gICAgICAgICAgfSk7CisgICAgICBkZXNjcmliZSgiaXMgbXVs dGlwbGUgcm93cyIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgaXQoInJldHVy bnMgYW4gYXJyYXkgb2YgZWFjaCByb3cncyBpbmRleCIsIGZ1bmN0aW9uICgp IHsKKyAgICAgICAgICB2YXIgbXVsdGlwbGVSb3dSYW5nZSA9IFsKKyAgICAg ICAgICAgIFJhbmdlU2VsZWN0aW9uSGVscGVyLnJhbmdlRm9yUm93KGdyaWQs IDApLAorICAgICAgICAgICAgUmFuZ2VTZWxlY3Rpb25IZWxwZXIucmFuZ2VG b3JSb3coZ3JpZCwgMyksCisgICAgICAgICAgICBSYW5nZVNlbGVjdGlvbkhl bHBlci5yYW5nZUZvclJvdyhncmlkLCAyKSwKKyAgICAgICAgICBdOworCisg ICAgICAgICAgdmFyIGluZGV4ZXNPZkNvbXBsZXRlUm93cyA9IFJhbmdlU2Vs ZWN0aW9uSGVscGVyLmdldEluZGV4ZXNPZkNvbXBsZXRlUm93cyhncmlkLCBt dWx0aXBsZVJvd1JhbmdlKTsKKyAgICAgICAgICBpbmRleGVzT2ZDb21wbGV0 ZVJvd3Muc29ydCgpOworICAgICAgICAgIGV4cGVjdChpbmRleGVzT2ZDb21w bGV0ZVJvd3MpLnRvRXF1YWwoWzAsIDIsIDNdKTsKICAgICAgICAgfSk7Cisg ICAgICB9KTsKIAotICAgICAgICBkZXNjcmliZSgiaXMgbXVsdGlwbGUgcm93 cyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICBpdCgicmV0dXJucyBhbiBh cnJheSBvZiBlYWNoIHJvdydzIGluZGV4IiwgZnVuY3Rpb24gKCkgewotICAg ICAgICAgICAgdmFyIG11bHRpcGxlUm93UmFuZ2UgPSBbCi0gICAgICAgICAg ICAgIFJhbmdlU2VsZWN0aW9uSGVscGVyLnJhbmdlRm9yUm93KGdyaWQsIDAp LAotICAgICAgICAgICAgICBSYW5nZVNlbGVjdGlvbkhlbHBlci5yYW5nZUZv clJvdyhncmlkLCAzKSwKLSAgICAgICAgICAgICAgUmFuZ2VTZWxlY3Rpb25I ZWxwZXIucmFuZ2VGb3JSb3coZ3JpZCwgMiksCi0gICAgICAgICAgICBdOwor ICAgICAgZGVzY3JpYmUoImNvbnRhaW5zIGEgbXVsdGkgcm93IHNlbGVjdGlv biIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgaXQoInJldHVybnMgYW4gYXJy YXkgb2YgZWFjaCBpbmRpdmlkdWFsIHJvdydzIGluZGV4IiwgZnVuY3Rpb24g KCkgeworICAgICAgICAgIHZhciBtdWx0aXBsZVJvd1JhbmdlID0gWworICAg ICAgICAgICAgbmV3IFNsaWNrLlJhbmdlKDMsIDAsIDUsIDEpCisgICAgICAg ICAgXTsKIAotICAgICAgICAgICAgdmFyIGluZGV4ZXNPZkNvbXBsZXRlUm93 cyA9IFJhbmdlU2VsZWN0aW9uSGVscGVyLmdldEluZGV4ZXNPZkNvbXBsZXRl Um93cyhncmlkLCBtdWx0aXBsZVJvd1JhbmdlKTsKLSAgICAgICAgICAgIGlu ZGV4ZXNPZkNvbXBsZXRlUm93cy5zb3J0KCk7Ci0gICAgICAgICAgICBleHBl Y3QoaW5kZXhlc09mQ29tcGxldGVSb3dzKS50b0VxdWFsKFswLCAyLCAzXSk7 Ci0gICAgICAgICAgfSk7CisgICAgICAgICAgdmFyIGluZGV4ZXNPZkNvbXBs ZXRlUm93cyA9IFJhbmdlU2VsZWN0aW9uSGVscGVyLmdldEluZGV4ZXNPZkNv bXBsZXRlUm93cyhncmlkLCBtdWx0aXBsZVJvd1JhbmdlKTsKKyAgICAgICAg ICBpbmRleGVzT2ZDb21wbGV0ZVJvd3Muc29ydCgpOworICAgICAgICAgIGV4 cGVjdChpbmRleGVzT2ZDb21wbGV0ZVJvd3MpLnRvRXF1YWwoWzMsIDQsIDVd KTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgZGVzY3JpYmUoImNvbnRhaW5z IGEgbXVsdGkgcm93IHNlbGVjdGlvbiIsIGZ1bmN0aW9uICgpIHsKLSAgICAg ICAgICBpdCgicmV0dXJucyBhbiBhcnJheSBvZiBlYWNoIGluZGl2aWR1YWwg cm93J3MgaW5kZXgiLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGRlc2NyaWJl KCJhbmQgYWxzbyBjb250YWlucyBhIHNlbGVjdGlvbiB0aGF0IGlzIG5vdCBh IHJvdyIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICBpdCgicmV0dXJucyBh biBhcnJheSBvZiBvbmx5IHRoZSBjb21wbGV0ZSByb3dzJyBpbmRleGVzIiwg ZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgdmFyIG11bHRpcGxlUm93UmFu Z2UgPSBbCisgICAgICAgICAgICAgIG5ldyBTbGljay5SYW5nZSg4LCAxLCA5 LCAxKSwKICAgICAgICAgICAgICAgbmV3IFNsaWNrLlJhbmdlKDMsIDAsIDUs IDEpCiAgICAgICAgICAgICBdOwogCkBAIC03MiwyMiArODQsOCBAQCBkZWZp bmUoWwogICAgICAgICAgICAgaW5kZXhlc09mQ29tcGxldGVSb3dzLnNvcnQo KTsKICAgICAgICAgICAgIGV4cGVjdChpbmRleGVzT2ZDb21wbGV0ZVJvd3Mp LnRvRXF1YWwoWzMsIDQsIDVdKTsKICAgICAgICAgICB9KTsKLQotICAgICAg ICAgIGRlc2NyaWJlKCJhbmQgYWxzbyBjb250YWlucyBhIHNlbGVjdGlvbiB0 aGF0IGlzIG5vdCBhIHJvdyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAg IGl0KCJyZXR1cm5zIGFuIGFycmF5IG9mIG9ubHkgdGhlIGNvbXBsZXRlIHJv d3MnIGluZGV4ZXMiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgIHZh ciBtdWx0aXBsZVJvd1JhbmdlID0gWwotICAgICAgICAgICAgICAgIG5ldyBT bGljay5SYW5nZSg4LCAxLCA5LCAxKSwKLSAgICAgICAgICAgICAgICBuZXcg U2xpY2suUmFuZ2UoMywgMCwgNSwgMSkKLSAgICAgICAgICAgICAgXTsKLQot ICAgICAgICAgICAgICB2YXIgaW5kZXhlc09mQ29tcGxldGVSb3dzID0gUmFu Z2VTZWxlY3Rpb25IZWxwZXIuZ2V0SW5kZXhlc09mQ29tcGxldGVSb3dzKGdy aWQsIG11bHRpcGxlUm93UmFuZ2UpOwotICAgICAgICAgICAgICBpbmRleGVz T2ZDb21wbGV0ZVJvd3Muc29ydCgpOwotICAgICAgICAgICAgICBleHBlY3Qo aW5kZXhlc09mQ29tcGxldGVSb3dzKS50b0VxdWFsKFszLCA0LCA1XSk7Ci0g ICAgICAgICAgICB9KTsKLSAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAg ICAgICB9KTsKICAgICB9KTsKICAgfSk7Ci0KIH0pOwpkaWZmIC0tZ2l0IGEv d2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zZWxlY3Rpb24vcm93X3NlbGVj dG9yX3NwZWMuanMgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NlbGVj dGlvbi9yb3dfc2VsZWN0b3Jfc3BlYy5qcwppbmRleCAyM2E1YjEyZS4uZGJm NjVlMjYgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQv c2VsZWN0aW9uL3Jvd19zZWxlY3Rvcl9zcGVjLmpzCisrKyBiL3dlYi9yZWdy ZXNzaW9uL2phdmFzY3JpcHQvc2VsZWN0aW9uL3Jvd19zZWxlY3Rvcl9zcGVj LmpzCkBAIC0xLDMyMSArMSwzMjcgQEAKLWRlZmluZSgKLSAgWyJqcXVlcnki LAotICAgICJ1bmRlcnNjb3JlIiwKLSAgICAic2xpY2tncmlkL3NsaWNrLmdy aWQiLAotICAgICJzb3VyY2VzL3NlbGVjdGlvbi9hY3RpdmVfY2VsbF9jYXB0 dXJlIiwKLSAgICAic291cmNlcy9zZWxlY3Rpb24vcm93X3NlbGVjdG9yIiwK LSAgICAnc291cmNlcy9zZWxlY3Rpb24veGNlbGxfc2VsZWN0aW9uX21vZGVs JywKLQotICAgICJzbGlja2dyaWQiLAotICAgICdzb3VyY2VzL3NsaWNrZ3Jp ZC9wZ3NsaWNrLmNlbGxyYW5nZWRlY29yYXRvcicsCi0gICAgJ3NvdXJjZXMv c2xpY2tncmlkL3Bnc2xpY2suY2VsbHJhbmdlc2VsZWN0b3InLAotICBdLAot ICBmdW5jdGlvbiAoJCwgXywgU2xpY2tHcmlkLCBBY3RpdmVDZWxsQ2FwdHVy ZSwgUm93U2VsZWN0b3IsIFhDZWxsU2VsZWN0aW9uTW9kZWwsIFNsaWNrKSB7 Ci0gICAgdmFyIEtFWV9SSUdIVCA9IDM5OwotICAgIHZhciBLRVlfTEVGVCA9 IDM3OwotICAgIHZhciBLRVlfVVAgPSAzODsKLSAgICB2YXIgS0VZX0RPV04g PSA0MDsKLSAgICBkZXNjcmliZSgiUm93U2VsZWN0b3IiLCBmdW5jdGlvbiAo KSB7Ci0gICAgICB2YXIgY29udGFpbmVyLCBkYXRhLCBjb2x1bW5EZWZpbml0 aW9ucywgZ3JpZCwgY2VsbFNlbGVjdGlvbk1vZGVsOworLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8KKy8vCisvLyBwZ0FkbWluIDQgLSBQb3N0Z3Jl U1FMIFRvb2xzCisvLworLy8gQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxNywg VGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorLy8gVGhpcyBzb2Z0d2Fy ZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisv LworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworaW1wb3J0ICQg ZnJvbSAnanF1ZXJ5JzsKK2ltcG9ydCBfIGZyb20gJ3VuZGVyc2NvcmUnOwor CitpbXBvcnQgU2xpY2sgZnJvbSAnc2xpY2tncmlkJzsKK2ltcG9ydCAnc2xp Y2tncmlkLmdyaWQnOworCitpbXBvcnQgUm93U2VsZWN0b3IgZnJvbSAnc291 cmNlcy9zZWxlY3Rpb24vcm93X3NlbGVjdG9yJzsKK2ltcG9ydCBBY3RpdmVD ZWxsQ2FwdHVyZSBmcm9tICdzb3VyY2VzL3NlbGVjdGlvbi9hY3RpdmVfY2Vs bF9jYXB0dXJlJzsKK2ltcG9ydCBYQ2VsbFNlbGVjdGlvbk1vZGVsIGZyb20g J3NvdXJjZXMvc2VsZWN0aW9uL3hjZWxsX3NlbGVjdGlvbl9tb2RlbCc7CisK K2Rlc2NyaWJlKCdSb3dTZWxlY3RvcicsIGZ1bmN0aW9uICgpIHsKKyAgdmFy IEtFWV9SSUdIVCA9IDM5OworICB2YXIgS0VZX0xFRlQgPSAzNzsKKyAgdmFy IEtFWV9VUCA9IDM4OworICB2YXIgS0VZX0RPV04gPSA0MDsKKyAgdmFyIGNv bnRhaW5lciwgZGF0YSwgY29sdW1uRGVmaW5pdGlvbnMsIGdyaWQsIGNlbGxT ZWxlY3Rpb25Nb2RlbDsKKyAgdmFyIFNsaWNrR3JpZCA9IFNsaWNrLkdyaWQ7 CisKKyAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7CisgICAgY29udGFpbmVy ID0gJCgnPGRpdj48L2Rpdj4nKTsKKyAgICBjb250YWluZXIuaGVpZ2h0KDk5 OTkpOworICAgIGNvbnRhaW5lci53aWR0aCg5OTk5KTsKKworICAgIGNvbHVt bkRlZmluaXRpb25zID0gW3sKKyAgICAgIGlkOiAnMScsCisgICAgICBuYW1l OiAnc29tZS1jb2x1bW4tbmFtZScsCisgICAgICBzZWxlY3RhYmxlOiB0cnVl LAorICAgICAgcG9zOiAwCisgICAgfSwgeworICAgICAgaWQ6ICcyJywKKyAg ICAgIG5hbWU6ICdzZWNvbmQgY29sdW1uJywKKyAgICAgIHNlbGVjdGFibGU6 IHRydWUsCisgICAgICBwb3M6IDEKKyAgICB9XTsKKworICAgIHZhciByb3dT ZWxlY3RvciA9IG5ldyBSb3dTZWxlY3RvcigpOworICAgIGRhdGEgPSBbXTsK KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHsKKyAgICAgIGRh dGEucHVzaChbJ3NvbWUtdmFsdWUtJyArIGksICdzZWNvbmQgdmFsdWUgJyAr IGldKTsKKyAgICB9CisgICAgY29sdW1uRGVmaW5pdGlvbnMgPSByb3dTZWxl Y3Rvci5nZXRDb2x1bW5EZWZpbml0aW9ucyhjb2x1bW5EZWZpbml0aW9ucyk7 CisgICAgZ3JpZCA9IG5ldyBTbGlja0dyaWQoY29udGFpbmVyLCBkYXRhLCBj b2x1bW5EZWZpbml0aW9ucyk7CiAKLSAgICAgIGJlZm9yZUVhY2goZnVuY3Rp b24gKCkgewotICAgICAgICBjb250YWluZXIgPSAkKCI8ZGl2PjwvZGl2PiIp OwotICAgICAgICBjb250YWluZXIuaGVpZ2h0KDk5OTkpOwotICAgICAgICBj b250YWluZXIud2lkdGgoOTk5OSk7Ci0KLSAgICAgICAgY29sdW1uRGVmaW5p dGlvbnMgPSBbewotICAgICAgICAgIGlkOiAnMScsCi0gICAgICAgICAgbmFt ZTogJ3NvbWUtY29sdW1uLW5hbWUnLAotICAgICAgICAgIHNlbGVjdGFibGU6 IHRydWUsCi0gICAgICAgICAgcG9zOiAwCi0gICAgICAgIH0sIHsKLSAgICAg ICAgICBpZDogJzInLAotICAgICAgICAgIG5hbWU6ICdzZWNvbmQgY29sdW1u JywKLSAgICAgICAgICBzZWxlY3RhYmxlOiB0cnVlLAotICAgICAgICAgIHBv czogMQotICAgICAgICB9XTsKLQotICAgICAgICB2YXIgcm93U2VsZWN0b3Ig PSBuZXcgUm93U2VsZWN0b3IoKTsKLSAgICAgICAgZGF0YSA9IFtdOwotICAg ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHsKLSAgICAgICAg ICBkYXRhLnB1c2goWydzb21lLXZhbHVlLScgKyBpLCAnc2Vjb25kIHZhbHVl ICcgKyBpXSk7Ci0gICAgICAgIH0KLSAgICAgICAgY29sdW1uRGVmaW5pdGlv bnMgPSByb3dTZWxlY3Rvci5nZXRDb2x1bW5EZWZpbml0aW9ucyhjb2x1bW5E ZWZpbml0aW9ucyk7Ci0gICAgICAgIGdyaWQgPSBuZXcgU2xpY2tHcmlkKGNv bnRhaW5lciwgZGF0YSwgY29sdW1uRGVmaW5pdGlvbnMpOwotCi0gICAgICAg IGdyaWQucmVnaXN0ZXJQbHVnaW4obmV3IEFjdGl2ZUNlbGxDYXB0dXJlKCkp OwotICAgICAgICBjZWxsU2VsZWN0aW9uTW9kZWwgPSBuZXcgWENlbGxTZWxl Y3Rpb25Nb2RlbCgpOwotICAgICAgICBncmlkLnNldFNlbGVjdGlvbk1vZGVs KGNlbGxTZWxlY3Rpb25Nb2RlbCk7Ci0KLSAgICAgICAgZ3JpZC5yZWdpc3Rl clBsdWdpbihyb3dTZWxlY3Rvcik7Ci0gICAgICAgIGdyaWQuaW52YWxpZGF0 ZSgpOwotCi0gICAgICAgICQoImJvZHkiKS5hcHBlbmQoY29udGFpbmVyKTsK KyAgICBncmlkLnJlZ2lzdGVyUGx1Z2luKG5ldyBBY3RpdmVDZWxsQ2FwdHVy ZSgpKTsKKyAgICBjZWxsU2VsZWN0aW9uTW9kZWwgPSBuZXcgWENlbGxTZWxl Y3Rpb25Nb2RlbCgpOworICAgIGdyaWQuc2V0U2VsZWN0aW9uTW9kZWwoY2Vs bFNlbGVjdGlvbk1vZGVsKTsKKworICAgIGdyaWQucmVnaXN0ZXJQbHVnaW4o cm93U2VsZWN0b3IpOworICAgIGdyaWQuaW52YWxpZGF0ZSgpOworCisgICAg JCgnYm9keScpLmFwcGVuZChjb250YWluZXIpOworICB9KTsKKworICBhZnRl ckVhY2goZnVuY3Rpb24gKCkgeworICAgICQoJ2JvZHknKS5maW5kKGNvbnRh aW5lcikucmVtb3ZlKCk7CisgIH0pOworCisgIGl0KCdyZW5kZXJzIGFuIGFk ZGl0aW9uYWwgY29sdW1uIG9uIHRoZSBsZWZ0JywgZnVuY3Rpb24gKCkgewor ICAgIGV4cGVjdChjb2x1bW5EZWZpbml0aW9ucy5sZW5ndGgpLnRvQmUoMyk7 CisKKyAgICB2YXIgbGVmdG1vc3RDb2x1bW4gPSBjb2x1bW5EZWZpbml0aW9u c1swXTsKKyAgICBleHBlY3QobGVmdG1vc3RDb2x1bW4uaWQpLnRvQmUoJ3Jv dy1oZWFkZXItY29sdW1uJyk7CisgICAgZXhwZWN0KGxlZnRtb3N0Q29sdW1u Lm5hbWUpLnRvQmUoJycpOworICAgIGV4cGVjdChsZWZ0bW9zdENvbHVtbi5z ZWxlY3RhYmxlKS50b0JlKGZhbHNlKTsKKyAgfSk7CisKKyAgaXQoJ3JlbmRl cnMgYSBzcGFuIG9uIHRoZSBsZWZ0bW9zdCBjb2x1bW4nLCBmdW5jdGlvbiAo KSB7CisgICAgZXhwZWN0KGNvbnRhaW5lci5maW5kKCcuc2xpY2stcm93Jyku bGVuZ3RoKS50b0JlKDEwKTsKKyAgICBleHBlY3QoY29udGFpbmVyLmZpbmQo Jy5zbGljay1yb3cgLnNsaWNrLWNlbGw6Zmlyc3QtY2hpbGQgc3BhbltkYXRh LWNlbGwtdHlwZT0icm93LWhlYWRlci1zZWxlY3RvciJdJykubGVuZ3RoKS50 b0JlKDEwKTsKKyAgfSk7CisKKyAgaXQoJ3ByZXNlcnZlcyB0aGUgb3RoZXIg YXR0cmlidXRlcyBvZiBjb2x1bW4gZGVmaW5pdGlvbnMnLCBmdW5jdGlvbiAo KSB7CisgICAgZXhwZWN0KGNvbHVtbkRlZmluaXRpb25zWzFdLmlkKS50b0Jl KCcxJyk7CisgICAgZXhwZWN0KGNvbHVtbkRlZmluaXRpb25zWzFdLnNlbGVj dGFibGUpLnRvQmUodHJ1ZSk7CisgIH0pOworCisgIGRlc2NyaWJlKCdzZWxl Y3Rpbmcgcm93cycsIGZ1bmN0aW9uICgpIHsKKyAgICBkZXNjcmliZSgnd2hl biB0aGUgdXNlciBjbGlja3MgYSByb3cgaGVhZGVyIHNwYW4nLCBmdW5jdGlv biAoKSB7CisgICAgICBpdCgnc2VsZWN0cyB0aGUgcm93JywgZnVuY3Rpb24g KCkgeworICAgICAgICBjb250YWluZXIuZmluZCgnLnNsaWNrLXJvdyAuc2xp Y2stY2VsbDpmaXJzdC1jaGlsZCBzcGFuW2RhdGEtY2VsbC10eXBlPSJyb3ct aGVhZGVyLXNlbGVjdG9yIl0nKVswXS5jbGljaygpOworCisgICAgICAgIHZh ciBzZWxlY3RlZFJhbmdlcyA9IGNlbGxTZWxlY3Rpb25Nb2RlbC5nZXRTZWxl Y3RlZFJhbmdlcygpOworICAgICAgICBleHBlY3RPbmx5VGhlRmlyc3RSb3dU b0JlU2VsZWN0ZWQoc2VsZWN0ZWRSYW5nZXMpOwogICAgICAgfSk7CiAKLSAg ICAgIGFmdGVyRWFjaChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICQoImJvZHki KS5maW5kKGNvbnRhaW5lcikucmVtb3ZlKCk7CisgICAgICBpdCgnYWRkIHNl bGVjdGVkIGNsYXNzIHRvIHBhcmVudCBvZiB0aGUgc3BhbicsIGZ1bmN0aW9u ICgpIHsKKyAgICAgICAgY29udGFpbmVyLmZpbmQoJy5zbGljay1yb3cgLnNs aWNrLWNlbGw6Zmlyc3QtY2hpbGQgc3BhbltkYXRhLWNlbGwtdHlwZT0icm93 LWhlYWRlci1zZWxlY3RvciJdJylbNV0uY2xpY2soKTsKKworICAgICAgICBl eHBlY3QoJChjb250YWluZXIuZmluZCgnLnNsaWNrLXJvdyAuc2xpY2stY2Vs bDpmaXJzdC1jaGlsZCAnKVs1XSkKKyAgICAgICAgICAuaGFzQ2xhc3MoJ3Nl bGVjdGVkJykpLnRvQmVUcnV0aHkoKTsKICAgICAgIH0pOworICAgIH0pOwog Ci0gICAgICBpdCgicmVuZGVycyBhbiBhZGRpdGlvbmFsIGNvbHVtbiBvbiB0 aGUgbGVmdCIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgZXhwZWN0KGNvbHVt bkRlZmluaXRpb25zLmxlbmd0aCkudG9CZSgzKTsKKyAgICBkZXNjcmliZSgn d2hlbiB0aGUgdXNlciBjbGlja3MgYSByb3cgaGVhZGVyJywgZnVuY3Rpb24g KCkgeworICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7CisgICAgICAg IGNvbnRhaW5lci5maW5kKCcuc2xpY2stcm93IC5zbGljay1jZWxsOmZpcnN0 LWNoaWxkJylbMV0uY2xpY2soKTsKIAotICAgICAgICB2YXIgbGVmdG1vc3RD b2x1bW4gPSBjb2x1bW5EZWZpbml0aW9uc1swXTsKLSAgICAgICAgZXhwZWN0 KGxlZnRtb3N0Q29sdW1uLmlkKS50b0JlKCdyb3ctaGVhZGVyLWNvbHVtbicp OwotICAgICAgICBleHBlY3QobGVmdG1vc3RDb2x1bW4ubmFtZSkudG9CZSgn Jyk7Ci0gICAgICAgIGV4cGVjdChsZWZ0bW9zdENvbHVtbi5zZWxlY3RhYmxl KS50b0JlKGZhbHNlKTsKICAgICAgIH0pOworICAgICAgaXQoJ3NlbGVjdHMg dGhlIHJvdycsIGZ1bmN0aW9uICgpIHsKIAotICAgICAgaXQoInJlbmRlcnMg YSBzcGFuIG9uIHRoZSBsZWZ0bW9zdCBjb2x1bW4iLCBmdW5jdGlvbiAoKSB7 Ci0gICAgICAgIGV4cGVjdChjb250YWluZXIuZmluZCgnLnNsaWNrLXJvdycp Lmxlbmd0aCkudG9CZSgxMCk7Ci0gICAgICAgIGV4cGVjdChjb250YWluZXIu ZmluZCgnLnNsaWNrLXJvdyAuc2xpY2stY2VsbDpmaXJzdC1jaGlsZCBzcGFu W2RhdGEtY2VsbC10eXBlPSJyb3ctaGVhZGVyLXNlbGVjdG9yIl0nKS5sZW5n dGgpLnRvQmUoMTApOworICAgICAgICB2YXIgc2VsZWN0ZWRSYW5nZXMgPSBj ZWxsU2VsZWN0aW9uTW9kZWwuZ2V0U2VsZWN0ZWRSYW5nZXMoKTsKKyAgICAg ICAgdmFyIHJvdyA9IHNlbGVjdGVkUmFuZ2VzWzBdOworCisgICAgICAgIGV4 cGVjdChzZWxlY3RlZFJhbmdlcy5sZW5ndGgpLnRvRXF1YWwoMSk7CisgICAg ICAgIGV4cGVjdChyb3cuZnJvbUNlbGwpLnRvQmUoMSk7CisgICAgICAgIGV4 cGVjdChyb3cudG9DZWxsKS50b0JlKDIpOworICAgICAgICBleHBlY3Qocm93 LmZyb21Sb3cpLnRvQmUoMSk7CisgICAgICAgIGV4cGVjdChyb3cudG9Sb3cp LnRvQmUoMSk7CiAgICAgICB9KTsKIAotICAgICAgaXQoInByZXNlcnZlcyB0 aGUgb3RoZXIgYXR0cmlidXRlcyBvZiBjb2x1bW4gZGVmaW5pdGlvbnMiLCBm dW5jdGlvbiAoKSB7Ci0gICAgICAgIGV4cGVjdChjb2x1bW5EZWZpbml0aW9u c1sxXS5pZCkudG9CZSgnMScpOwotICAgICAgICBleHBlY3QoY29sdW1uRGVm aW5pdGlvbnNbMV0uc2VsZWN0YWJsZSkudG9CZSh0cnVlKTsKKyAgICAgIGl0 KCdhZGQgc2VsZWN0ZWQgY2xhc3MgdG8gcGFyZW50IG9mIHRoZSBzcGFuJywg ZnVuY3Rpb24gKCkgeworCisgICAgICAgIGV4cGVjdCgkKGNvbnRhaW5lci5m aW5kKCcuc2xpY2stcm93IC5zbGljay1jZWxsOmZpcnN0LWNoaWxkICcpWzFd KQorICAgICAgICAgIC5oYXNDbGFzcygnc2VsZWN0ZWQnKSkudG9CZVRydXRo eSgpOwogICAgICAgfSk7CiAKLSAgICAgIGRlc2NyaWJlKCJzZWxlY3Rpbmcg cm93cyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgZGVzY3JpYmUoIndoZW4g dGhlIHVzZXIgY2xpY2tzIGEgcm93IGhlYWRlciBzcGFuIiwgZnVuY3Rpb24g KCkgewotICAgICAgICAgIGl0KCJzZWxlY3RzIHRoZSByb3ciLCBmdW5jdGlv biAoKSB7Ci0gICAgICAgICAgICBjb250YWluZXIuZmluZCgnLnNsaWNrLXJv dyAuc2xpY2stY2VsbDpmaXJzdC1jaGlsZCBzcGFuW2RhdGEtY2VsbC10eXBl PSJyb3ctaGVhZGVyLXNlbGVjdG9yIl0nKVswXS5jbGljaygpOworICAgICAg ZGVzY3JpYmUoJ3doZW4gdGhlIHVzZXIgY2xpY2tzIGFnYWluIHRoZSBzYW1l IHJvdyBoZWFkZXInLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGl0KCdhZGQg c2VsZWN0ZWQgY2xhc3MgdG8gcGFyZW50IG9mIHRoZSBzcGFuJywgZnVuY3Rp b24gKCkgeworICAgICAgICAgIGNvbnRhaW5lci5maW5kKCcuc2xpY2stcm93 IC5zbGljay1jZWxsOmZpcnN0LWNoaWxkIHNwYW5bZGF0YS1jZWxsLXR5cGU9 InJvdy1oZWFkZXItc2VsZWN0b3IiXScpWzFdLmNsaWNrKCk7CiAKLSAgICAg ICAgICAgIHZhciBzZWxlY3RlZFJhbmdlcyA9IGNlbGxTZWxlY3Rpb25Nb2Rl bC5nZXRTZWxlY3RlZFJhbmdlcygpOwotICAgICAgICAgICAgZXhwZWN0T25s eVRoZUZpcnN0Um93VG9CZVNlbGVjdGVkKHNlbGVjdGVkUmFuZ2VzKTsKLSAg ICAgICAgICB9KTsKKyAgICAgICAgICBleHBlY3QoJChjb250YWluZXIuZmlu ZCgnLnNsaWNrLXJvdyAuc2xpY2stY2VsbDpmaXJzdC1jaGlsZCAnKVsxXSkK KyAgICAgICAgICAgIC5oYXNDbGFzcygnc2VsZWN0ZWQnKSkudG9CZUZhbHN5 KCk7CisgICAgICAgIH0pOworICAgICAgfSk7CiAKLSAgICAgICAgICBpdCgi YWRkIHNlbGVjdGVkIGNsYXNzIHRvIHBhcmVudCBvZiB0aGUgc3BhbiIsIGZ1 bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGNvbnRhaW5lci5maW5kKCcuc2xp Y2stcm93IC5zbGljay1jZWxsOmZpcnN0LWNoaWxkIHNwYW5bZGF0YS1jZWxs LXR5cGU9InJvdy1oZWFkZXItc2VsZWN0b3IiXScpWzVdLmNsaWNrKCk7Cisg ICAgICBkZXNjcmliZSgnYW5kIHByZXNzZXMgc2hpZnQgKyBkb3duLWFycm93 JywgZnVuY3Rpb24gKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9u ICgpIHsKKyAgICAgICAgICBwcmVzc1NoaWZ0QXJyb3coS0VZX0RPV04pOwor ICAgICAgICB9KTsKIAotICAgICAgICAgICAgZXhwZWN0KCQoY29udGFpbmVy LmZpbmQoJy5zbGljay1yb3cgLnNsaWNrLWNlbGw6Zmlyc3QtY2hpbGQgJylb NV0pCi0gICAgICAgICAgICAgIC5oYXNDbGFzcygnc2VsZWN0ZWQnKSkudG9C ZVRydXRoeSgpOwotICAgICAgICAgIH0pOworICAgICAgICBpdCgna2VlcHMg dGhlIGxhc3Qgcm93IHNlbGVjdGVkJywgZnVuY3Rpb24gKCkgeworICAgICAg ICAgIGV4cGVjdChjZWxsU2VsZWN0aW9uTW9kZWwuZ2V0U2VsZWN0ZWRSYW5n ZXMoKS5sZW5ndGgpLnRvQmUoMSk7CiAgICAgICAgIH0pOwogCi0gICAgICAg IGRlc2NyaWJlKCJ3aGVuIHRoZSB1c2VyIGNsaWNrcyBhIHJvdyBoZWFkZXIi LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlv biAoKSB7Ci0gICAgICAgICAgICBjb250YWluZXIuZmluZCgnLnNsaWNrLXJv dyAuc2xpY2stY2VsbDpmaXJzdC1jaGlsZCcpWzFdLmNsaWNrKCk7CisgICAg ICAgIGl0KCdncm93cyB0aGUgc2VsZWN0aW9uIGRvd24nLCBmdW5jdGlvbiAo KSB7CisgICAgICAgICAgdmFyIHNlbGVjdGVkUmFuZ2VzID0gY2VsbFNlbGVj dGlvbk1vZGVsLmdldFNlbGVjdGVkUmFuZ2VzKCk7CiAKLSAgICAgICAgICB9 KTsKLSAgICAgICAgICBpdCgic2VsZWN0cyB0aGUgcm93IiwgZnVuY3Rpb24g KCkgeworICAgICAgICAgIHZhciByb3cgPSBzZWxlY3RlZFJhbmdlc1swXTsK IAotICAgICAgICAgICAgdmFyIHNlbGVjdGVkUmFuZ2VzID0gY2VsbFNlbGVj dGlvbk1vZGVsLmdldFNlbGVjdGVkUmFuZ2VzKCk7Ci0gICAgICAgICAgICB2 YXIgcm93ID0gc2VsZWN0ZWRSYW5nZXNbMF07CisgICAgICAgICAgZXhwZWN0 KHNlbGVjdGVkUmFuZ2VzLmxlbmd0aCkudG9FcXVhbCgxKTsKKyAgICAgICAg ICBleHBlY3Qocm93LmZyb21DZWxsKS50b0JlKDEpOworICAgICAgICAgIGV4 cGVjdChyb3cudG9DZWxsKS50b0JlKDIpOworICAgICAgICAgIGV4cGVjdChy b3cuZnJvbVJvdykudG9CZSgxKTsKKyAgICAgICAgICBleHBlY3Qocm93LnRv Um93KS50b0JlKDIpOworICAgICAgICB9KTsKIAotICAgICAgICAgICAgZXhw ZWN0KHNlbGVjdGVkUmFuZ2VzLmxlbmd0aCkudG9FcXVhbCgxKTsKLSAgICAg ICAgICAgIGV4cGVjdChyb3cuZnJvbUNlbGwpLnRvQmUoMSk7Ci0gICAgICAg ICAgICBleHBlY3Qocm93LnRvQ2VsbCkudG9CZSgyKTsKLSAgICAgICAgICAg IGV4cGVjdChyb3cuZnJvbVJvdykudG9CZSgxKTsKLSAgICAgICAgICAgIGV4 cGVjdChyb3cudG9Sb3cpLnRvQmUoMSk7Ci0gICAgICAgICAgfSk7CisgICAg ICAgIGl0KCdrZWVwcyBzZWxlY3RlZCBjbGFzcyBvbiByb3dzIDEgYW5kIDIn LCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgZXhwZWN0KCQoY29udGFpbmVy LmZpbmQoJy5zbGljay1yb3cgLnNsaWNrLWNlbGw6Zmlyc3QtY2hpbGQgJylb MF0pCisgICAgICAgICAgICAuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpLnRvQmVG YWxzeSgpOworICAgICAgICAgIGV4cGVjdCgkKGNvbnRhaW5lci5maW5kKCcu c2xpY2stcm93IC5zbGljay1jZWxsOmZpcnN0LWNoaWxkICcpWzFdKQorICAg ICAgICAgICAgLmhhc0NsYXNzKCdzZWxlY3RlZCcpKS50b0JlVHJ1dGh5KCk7 CisgICAgICAgICAgZXhwZWN0KCQoY29udGFpbmVyLmZpbmQoJy5zbGljay1y b3cgLnNsaWNrLWNlbGw6Zmlyc3QtY2hpbGQgJylbMl0pCisgICAgICAgICAg ICAuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpLnRvQmVUcnV0aHkoKTsKKyAgICAg ICAgICBleHBlY3QoJChjb250YWluZXIuZmluZCgnLnNsaWNrLXJvdyAuc2xp Y2stY2VsbDpmaXJzdC1jaGlsZCAnKVszXSkKKyAgICAgICAgICAgIC5oYXND bGFzcygnc2VsZWN0ZWQnKSkudG9CZUZhbHN5KCk7CisgICAgICAgIH0pOwor ICAgICAgfSk7CiAKLSAgICAgICAgICBpdCgiYWRkIHNlbGVjdGVkIGNsYXNz IHRvIHBhcmVudCBvZiB0aGUgc3BhbiIsIGZ1bmN0aW9uICgpIHsKLQotICAg ICAgICAgICAgZXhwZWN0KCQoY29udGFpbmVyLmZpbmQoJy5zbGljay1yb3cg LnNsaWNrLWNlbGw6Zmlyc3QtY2hpbGQgJylbMV0pCi0gICAgICAgICAgICAg IC5oYXNDbGFzcygnc2VsZWN0ZWQnKSkudG9CZVRydXRoeSgpOwotICAgICAg ICAgIH0pOwotCi0gICAgICAgICAgZGVzY3JpYmUoIndoZW4gdGhlIHVzZXIg Y2xpY2tzIGFnYWluIHRoZSBzYW1lIHJvdyBoZWFkZXIiLCBmdW5jdGlvbiAo KSB7Ci0gICAgICAgICAgICBpdCgiYWRkIHNlbGVjdGVkIGNsYXNzIHRvIHBh cmVudCBvZiB0aGUgc3BhbiIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAg ICAgY29udGFpbmVyLmZpbmQoJy5zbGljay1yb3cgLnNsaWNrLWNlbGw6Zmly c3QtY2hpbGQgc3BhbltkYXRhLWNlbGwtdHlwZT0icm93LWhlYWRlci1zZWxl Y3RvciJdJylbMV0uY2xpY2soKTsKLQotICAgICAgICAgICAgICBleHBlY3Qo JChjb250YWluZXIuZmluZCgnLnNsaWNrLXJvdyAuc2xpY2stY2VsbDpmaXJz dC1jaGlsZCAnKVsxXSkKLSAgICAgICAgICAgICAgICAuaGFzQ2xhc3MoJ3Nl bGVjdGVkJykpLnRvQmVGYWxzeSgpOwotICAgICAgICAgICAgfSk7Ci0gICAg ICAgICAgfSk7Ci0KLSAgICAgICAgICBkZXNjcmliZSgiYW5kIHByZXNzZXMg c2hpZnQgKyBkb3duLWFycm93IiwgZnVuY3Rpb24gKCkgewotICAgICAgICAg ICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgIHBy ZXNzU2hpZnRBcnJvdyhLRVlfRE9XTik7Ci0gICAgICAgICAgICB9KTsKLQot ICAgICAgICAgICAgaXQoImtlZXBzIHRoZSBsYXN0IHJvdyBzZWxlY3RlZCIs IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgZXhwZWN0KGNlbGxTZWxl Y3Rpb25Nb2RlbC5nZXRTZWxlY3RlZFJhbmdlcygpLmxlbmd0aCkudG9CZSgx KTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICBpdCgiZ3Jvd3Mg dGhlIHNlbGVjdGlvbiBkb3duIiwgZnVuY3Rpb24gKCkgewotICAgICAgICAg ICAgICB2YXIgc2VsZWN0ZWRSYW5nZXMgPSBjZWxsU2VsZWN0aW9uTW9kZWwu Z2V0U2VsZWN0ZWRSYW5nZXMoKTsKLQotICAgICAgICAgICAgICB2YXIgcm93 ID0gc2VsZWN0ZWRSYW5nZXNbMF07Ci0KLSAgICAgICAgICAgICAgZXhwZWN0 KHNlbGVjdGVkUmFuZ2VzLmxlbmd0aCkudG9FcXVhbCgxKTsKLSAgICAgICAg ICAgICAgZXhwZWN0KHJvdy5mcm9tQ2VsbCkudG9CZSgxKTsKLSAgICAgICAg ICAgICAgZXhwZWN0KHJvdy50b0NlbGwpLnRvQmUoMik7Ci0gICAgICAgICAg ICAgIGV4cGVjdChyb3cuZnJvbVJvdykudG9CZSgxKTsKLSAgICAgICAgICAg ICAgZXhwZWN0KHJvdy50b1JvdykudG9CZSgyKTsKLSAgICAgICAgICAgIH0p OwotCi0gICAgICAgICAgICBpdCgia2VlcHMgc2VsZWN0ZWQgY2xhc3Mgb24g cm93cyAxIGFuZCAyIiwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICBl eHBlY3QoJChjb250YWluZXIuZmluZCgnLnNsaWNrLXJvdyAuc2xpY2stY2Vs bDpmaXJzdC1jaGlsZCAnKVswXSkKLSAgICAgICAgICAgICAgICAuaGFzQ2xh c3MoJ3NlbGVjdGVkJykpLnRvQmVGYWxzeSgpOwotICAgICAgICAgICAgICBl eHBlY3QoJChjb250YWluZXIuZmluZCgnLnNsaWNrLXJvdyAuc2xpY2stY2Vs bDpmaXJzdC1jaGlsZCAnKVsxXSkKLSAgICAgICAgICAgICAgICAuaGFzQ2xh c3MoJ3NlbGVjdGVkJykpLnRvQmVUcnV0aHkoKTsKLSAgICAgICAgICAgICAg ZXhwZWN0KCQoY29udGFpbmVyLmZpbmQoJy5zbGljay1yb3cgLnNsaWNrLWNl bGw6Zmlyc3QtY2hpbGQgJylbMl0pCi0gICAgICAgICAgICAgICAgLmhhc0Ns YXNzKCdzZWxlY3RlZCcpKS50b0JlVHJ1dGh5KCk7Ci0gICAgICAgICAgICAg IGV4cGVjdCgkKGNvbnRhaW5lci5maW5kKCcuc2xpY2stcm93IC5zbGljay1j ZWxsOmZpcnN0LWNoaWxkICcpWzNdKQotICAgICAgICAgICAgICAgIC5oYXND bGFzcygnc2VsZWN0ZWQnKSkudG9CZUZhbHN5KCk7Ci0gICAgICAgICAgICB9 KTsKLSAgICAgICAgICB9KTsKLQotICAgICAgICAgIGRlc2NyaWJlKCd3aGVu IHRoZSB1c2VyIGNsaWNrcyBhIGNlbGwgb24gdGhlIGN1cnJlbnQgcmFuZ2Un LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0 aW9uICgpIHsKLSAgICAgICAgICAgICAgY29udGFpbmVyLmZpbmQoJy5zbGlj ay1jZWxsLmwxLnIxJylbNV0uY2xpY2soKTsKLSAgICAgICAgICAgIH0pOwot Ci0gICAgICAgICAgICBpdCgncm93IGdldHMgZGVzZWxlY3RlZCcsIGZ1bmN0 aW9uICgpIHsKLQotICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWRSYW5nZXMg PSBjZWxsU2VsZWN0aW9uTW9kZWwuZ2V0U2VsZWN0ZWRSYW5nZXMoKTsKLQot ICAgICAgICAgICAgICBleHBlY3Qoc2VsZWN0ZWRSYW5nZXMubGVuZ3RoKS50 b0JlKDEpOwotCi0gICAgICAgICAgICAgIHZhciBuZXdTZWxlY3Rpb24gPSBz ZWxlY3RlZFJhbmdlc1swXTsKLQotICAgICAgICAgICAgICBleHBlY3QobmV3 U2VsZWN0aW9uLmZyb21DZWxsKS50b0JlKDEpOwotICAgICAgICAgICAgICBl eHBlY3QobmV3U2VsZWN0aW9uLmZyb21Sb3cpLnRvQmUoNSk7Ci0gICAgICAg ICAgICAgIGV4cGVjdChuZXdTZWxlY3Rpb24udG9DZWxsKS50b0JlKDEpOwot ICAgICAgICAgICAgICBleHBlY3QobmV3U2VsZWN0aW9uLnRvUm93KS50b0Jl KDUpOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIGl0KCdrZWVw IHNlbGVjdCBjbGFzcyBvbiByb3cgaGVhZGVyJywgZnVuY3Rpb24gKCkgewot ICAgICAgICAgICAgICBleHBlY3QoJChjb250YWluZXIuZmluZCgnLnNsaWNr LWNlbGwubDAucjAnKVs1XSkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpCi0gICAg ICAgICAgICAgICAgLnRvQmVUcnV0aHkoKTsKLSAgICAgICAgICAgIH0pOwot ICAgICAgICAgIH0pOwotCi0gICAgICAgICAgZGVzY3JpYmUoJ3doZW4gdGhl IHVzZXIgY2xpY2tzIGEgY2VsbCBvdXRzaWRlIHRoZSBjdXJyZW50IHJhbmdl JywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5j dGlvbiAoKSB7Ci0gICAgICAgICAgICAgIGNvbnRhaW5lci5maW5kKCcuc2xp Y2stY2VsbC5sMi5yMicpWzJdLmNsaWNrKCk7Ci0gICAgICAgICAgICB9KTsK LQotICAgICAgICAgICAgaXQoJ3JvdyBnZXRzIGRlc2VsZWN0ZWQnLCBmdW5j dGlvbiAoKSB7Ci0KLSAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkUmFuZ2Vz ID0gY2VsbFNlbGVjdGlvbk1vZGVsLmdldFNlbGVjdGVkUmFuZ2VzKCk7Ci0K LSAgICAgICAgICAgICAgZXhwZWN0KHNlbGVjdGVkUmFuZ2VzLmxlbmd0aCku dG9CZSgxKTsKLQotICAgICAgICAgICAgICB2YXIgbmV3U2VsZWN0aW9uID0g c2VsZWN0ZWRSYW5nZXNbMF07Ci0KLSAgICAgICAgICAgICAgZXhwZWN0KG5l d1NlbGVjdGlvbi5mcm9tQ2VsbCkudG9CZSgyKTsKLSAgICAgICAgICAgICAg ZXhwZWN0KG5ld1NlbGVjdGlvbi5mcm9tUm93KS50b0JlKDIpOwotICAgICAg ICAgICAgICBleHBlY3QobmV3U2VsZWN0aW9uLnRvQ2VsbCkudG9CZSgyKTsK LSAgICAgICAgICAgICAgZXhwZWN0KG5ld1NlbGVjdGlvbi50b1JvdykudG9C ZSgyKTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICBpdCgncmVt b3ZlIHNlbGVjdCBjbGFzcyBvbiAic29tZS1jb2x1bW4tbmFtZSIgY29sdW1u IGhlYWRlcicsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgZXhwZWN0 KCQoY29udGFpbmVyLmZpbmQoJy5zbGljay1jZWxsLmwwLnIwJylbNV0pLmhh c0NsYXNzKCdzZWxlY3RlZCcpKQotICAgICAgICAgICAgICAgIC50b0JlRmFs c3koKTsKLSAgICAgICAgICAgICAgZXhwZWN0KCQoY29udGFpbmVyLmZpbmQo Jy5zbGljay1jZWxsLmwwLnIwJylbMl0pLmhhc0NsYXNzKCdzZWxlY3RlZCcp KQotICAgICAgICAgICAgICAgIC50b0JlVHJ1dGh5KCk7Ci0gICAgICAgICAg ICB9KTsKLSAgICAgICAgICB9KTsKLQotICAgICAgICAgIGRlc2NyaWJlKCd3 aGVuIHRoZSB1c2VyIGhhcyBhIGNvbHVtbiBzZWxlY3RlZCcsIGZ1bmN0aW9u ICgpIHsKLSAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgewot ICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWRSYW5nZXMgPSBbbmV3IFNsaWNr LlJhbmdlKDAsIDEsIDksIDEpXTsKLSAgICAgICAgICAgICAgY2VsbFNlbGVj dGlvbk1vZGVsLnNldFNlbGVjdGVkUmFuZ2VzKHNlbGVjdGVkUmFuZ2VzKTsK LSAgICAgICAgICAgIH0pOwotCi0gICAgICAgICAgICBpdCgnbm8gcm93IHNo b3VsZCBoYXZlIHRoZSBjbGFzcyAic2VsZWN0ZWQiJywgZnVuY3Rpb24gKCkg ewotICAgICAgICAgICAgICBleHBlY3QoJChjb250YWluZXIuZmluZCgnLnNs aWNrLWNlbGwubDAucjAnKVswXSkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpCi0g ICAgICAgICAgICAgICAgLnRvQmVGYWxzeSgpOwotICAgICAgICAgICAgICBl eHBlY3QoJChjb250YWluZXIuZmluZCgnLnNsaWNrLWNlbGwubDAucjAnKVsx XSkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpCi0gICAgICAgICAgICAgICAgLnRv QmVGYWxzeSgpOwotICAgICAgICAgICAgICBleHBlY3QoJChjb250YWluZXIu ZmluZCgnLnNsaWNrLWNlbGwubDAucjAnKVsyXSkuaGFzQ2xhc3MoJ3NlbGVj dGVkJykpCi0gICAgICAgICAgICAgICAgLnRvQmVGYWxzeSgpOwotICAgICAg ICAgICAgICBleHBlY3QoJChjb250YWluZXIuZmluZCgnLnNsaWNrLWNlbGwu bDAucjAnKVszXSkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpCi0gICAgICAgICAg ICAgICAgLnRvQmVGYWxzeSgpOwotICAgICAgICAgICAgICBleHBlY3QoJChj b250YWluZXIuZmluZCgnLnNsaWNrLWNlbGwubDAucjAnKVs0XSkuaGFzQ2xh c3MoJ3NlbGVjdGVkJykpCi0gICAgICAgICAgICAgICAgLnRvQmVGYWxzeSgp OwotICAgICAgICAgICAgICBleHBlY3QoJChjb250YWluZXIuZmluZCgnLnNs aWNrLWNlbGwubDAucjAnKVs1XSkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpCi0g ICAgICAgICAgICAgICAgLnRvQmVGYWxzeSgpOwotICAgICAgICAgICAgfSk7 Ci0gICAgICAgICAgfSk7CisgICAgICBkZXNjcmliZSgnd2hlbiB0aGUgdXNl ciBjbGlja3MgYSBjZWxsIG9uIHRoZSBjdXJyZW50IHJhbmdlJywgZnVuY3Rp b24gKCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKKyAg ICAgICAgICBjb250YWluZXIuZmluZCgnLnNsaWNrLWNlbGwubDEucjEnKVs1 XS5jbGljaygpOwogICAgICAgICB9KTsKIAotICAgICAgICBkZXNjcmliZSgi d2hlbiB0aGUgdXNlciBjbGlja3MgbXVsdGlwbGUgcm93IGhlYWRlcnMiLCBm dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgaXQoInNlbGVjdHMgYW5vdGhlciBy b3ciLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBjb250YWluZXIuZmlu ZCgnLnNsaWNrLXJvdyAuc2xpY2stY2VsbDpmaXJzdC1jaGlsZCcpWzRdLmNs aWNrKCk7Ci0gICAgICAgICAgICBjb250YWluZXIuZmluZCgnLnNsaWNrLXJv dyAuc2xpY2stY2VsbDpmaXJzdC1jaGlsZCcpWzBdLmNsaWNrKCk7CisgICAg ICAgIGl0KCdyb3cgZ2V0cyBkZXNlbGVjdGVkJywgZnVuY3Rpb24gKCkgewor CisgICAgICAgICAgdmFyIHNlbGVjdGVkUmFuZ2VzID0gY2VsbFNlbGVjdGlv bk1vZGVsLmdldFNlbGVjdGVkUmFuZ2VzKCk7CiAKLSAgICAgICAgICAgIHZh ciBzZWxlY3RlZFJhbmdlcyA9IGNlbGxTZWxlY3Rpb25Nb2RlbC5nZXRTZWxl Y3RlZFJhbmdlcygpOwotICAgICAgICAgICAgZXhwZWN0KHNlbGVjdGVkUmFu Z2VzLmxlbmd0aCkudG9FcXVhbCgyKTsKKyAgICAgICAgICBleHBlY3Qoc2Vs ZWN0ZWRSYW5nZXMubGVuZ3RoKS50b0JlKDEpOwogCi0gICAgICAgICAgICB2 YXIgcm93MSA9IHNlbGVjdGVkUmFuZ2VzWzBdOwotICAgICAgICAgICAgZXhw ZWN0KHJvdzEuZnJvbVJvdykudG9CZSg0KTsKLSAgICAgICAgICAgIGV4cGVj dChyb3cxLnRvUm93KS50b0JlKDQpOworICAgICAgICAgIHZhciBuZXdTZWxl Y3Rpb24gPSBzZWxlY3RlZFJhbmdlc1swXTsKKworICAgICAgICAgIGV4cGVj dChuZXdTZWxlY3Rpb24uZnJvbUNlbGwpLnRvQmUoMSk7CisgICAgICAgICAg ZXhwZWN0KG5ld1NlbGVjdGlvbi5mcm9tUm93KS50b0JlKDUpOworICAgICAg ICAgIGV4cGVjdChuZXdTZWxlY3Rpb24udG9DZWxsKS50b0JlKDEpOworICAg ICAgICAgIGV4cGVjdChuZXdTZWxlY3Rpb24udG9Sb3cpLnRvQmUoNSk7Cisg ICAgICAgIH0pOworCisgICAgICAgIGl0KCdrZWVwIHNlbGVjdCBjbGFzcyBv biByb3cgaGVhZGVyJywgZnVuY3Rpb24gKCkgeworICAgICAgICAgIGV4cGVj dCgkKGNvbnRhaW5lci5maW5kKCcuc2xpY2stY2VsbC5sMC5yMCcpWzVdKS5o YXNDbGFzcygnc2VsZWN0ZWQnKSkKKyAgICAgICAgICAgIC50b0JlVHJ1dGh5 KCk7CisgICAgICAgIH0pOworICAgICAgfSk7CiAKLSAgICAgICAgICAgIHZh ciByb3cyID0gc2VsZWN0ZWRSYW5nZXNbMV07Ci0gICAgICAgICAgICBleHBl Y3Qocm93Mi5mcm9tUm93KS50b0JlKDApOwotICAgICAgICAgICAgZXhwZWN0 KHJvdzIudG9Sb3cpLnRvQmUoMCk7Ci0gICAgICAgICAgfSk7CisgICAgICBk ZXNjcmliZSgnd2hlbiB0aGUgdXNlciBjbGlja3MgYSBjZWxsIG91dHNpZGUg dGhlIGN1cnJlbnQgcmFuZ2UnLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGJl Zm9yZUVhY2goZnVuY3Rpb24gKCkgeworICAgICAgICAgIGNvbnRhaW5lci5m aW5kKCcuc2xpY2stY2VsbC5sMi5yMicpWzJdLmNsaWNrKCk7CiAgICAgICAg IH0pOwogCi0gICAgICAgIGRlc2NyaWJlKCJ3aGVuIGEgY29sdW1uIHdhcyBh bHJlYWR5IHNlbGVjdGVkIiwgZnVuY3Rpb24gKCkgewotICAgICAgICAgIGJl Zm9yZUVhY2goZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgdmFyIHNlbGVj dGVkUmFuZ2VzID0gW25ldyBTbGljay5SYW5nZSgwLCAwLCAwLCAxKV07Ci0g ICAgICAgICAgICBjZWxsU2VsZWN0aW9uTW9kZWwuc2V0U2VsZWN0ZWRSYW5n ZXMoc2VsZWN0ZWRSYW5nZXMpOwotICAgICAgICAgIH0pOworICAgICAgICBp dCgncm93IGdldHMgZGVzZWxlY3RlZCcsIGZ1bmN0aW9uICgpIHsKIAotICAg ICAgICAgIGl0KCJkZXNlbGVjdHMgdGhlIGNvbHVtbiIsIGZ1bmN0aW9uICgp IHsKLSAgICAgICAgICAgIGNvbnRhaW5lci5maW5kKCcuc2xpY2stcm93IC5z bGljay1jZWxsOmZpcnN0LWNoaWxkJylbMF0uY2xpY2soKTsKLSAgICAgICAg ICAgIHZhciBzZWxlY3RlZFJhbmdlcyA9IGNlbGxTZWxlY3Rpb25Nb2RlbC5n ZXRTZWxlY3RlZFJhbmdlcygpOworICAgICAgICAgIHZhciBzZWxlY3RlZFJh bmdlcyA9IGNlbGxTZWxlY3Rpb25Nb2RlbC5nZXRTZWxlY3RlZFJhbmdlcygp OwogCi0gICAgICAgICAgICBleHBlY3RPbmx5VGhlRmlyc3RSb3dUb0JlU2Vs ZWN0ZWQoc2VsZWN0ZWRSYW5nZXMpOwotICAgICAgICAgIH0pOworICAgICAg ICAgIGV4cGVjdChzZWxlY3RlZFJhbmdlcy5sZW5ndGgpLnRvQmUoMSk7CisK KyAgICAgICAgICB2YXIgbmV3U2VsZWN0aW9uID0gc2VsZWN0ZWRSYW5nZXNb MF07CisKKyAgICAgICAgICBleHBlY3QobmV3U2VsZWN0aW9uLmZyb21DZWxs KS50b0JlKDIpOworICAgICAgICAgIGV4cGVjdChuZXdTZWxlY3Rpb24uZnJv bVJvdykudG9CZSgyKTsKKyAgICAgICAgICBleHBlY3QobmV3U2VsZWN0aW9u LnRvQ2VsbCkudG9CZSgyKTsKKyAgICAgICAgICBleHBlY3QobmV3U2VsZWN0 aW9uLnRvUm93KS50b0JlKDIpOwogICAgICAgICB9KTsKIAotICAgICAgICBk ZXNjcmliZSgid2hlbiB0aGUgcm93IGlzIGRlc2VsZWN0ZWQgdGhyb3VnaCBz ZXRTZWxlY3RlZFJhbmdlcyIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICBi ZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGNvbnRhaW5l ci5maW5kKCcuc2xpY2stcm93IC5zbGljay1jZWxsOmZpcnN0LWNoaWxkJylb NF0uY2xpY2soKTsKLSAgICAgICAgICB9KTsKKyAgICAgICAgaXQoJ3JlbW92 ZSBzZWxlY3QgY2xhc3Mgb24gInNvbWUtY29sdW1uLW5hbWUiIGNvbHVtbiBo ZWFkZXInLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgZXhwZWN0KCQoY29u dGFpbmVyLmZpbmQoJy5zbGljay1jZWxsLmwwLnIwJylbNV0pLmhhc0NsYXNz KCdzZWxlY3RlZCcpKQorICAgICAgICAgICAgLnRvQmVGYWxzeSgpOworICAg ICAgICAgIGV4cGVjdCgkKGNvbnRhaW5lci5maW5kKCcuc2xpY2stY2VsbC5s MC5yMCcpWzJdKS5oYXNDbGFzcygnc2VsZWN0ZWQnKSkKKyAgICAgICAgICAg IC50b0JlVHJ1dGh5KCk7CisgICAgICAgIH0pOworICAgICAgfSk7CiAKLSAg ICAgICAgICBpdCgic2hvdWxkIHJlbW92ZSB0aGUgc2VsZWN0ZWQgY2xhc3Mi LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICBjZWxsU2VsZWN0aW9uTW9k ZWwuc2V0U2VsZWN0ZWRSYW5nZXMoW10pOworICAgICAgZGVzY3JpYmUoJ3do ZW4gdGhlIHVzZXIgaGFzIGEgY29sdW1uIHNlbGVjdGVkJywgZnVuY3Rpb24g KCkgeworICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKKyAgICAg ICAgICB2YXIgc2VsZWN0ZWRSYW5nZXMgPSBbbmV3IFNsaWNrLlJhbmdlKDAs IDEsIDksIDEpXTsKKyAgICAgICAgICBjZWxsU2VsZWN0aW9uTW9kZWwuc2V0 U2VsZWN0ZWRSYW5nZXMoc2VsZWN0ZWRSYW5nZXMpOworICAgICAgICB9KTsK IAotICAgICAgICAgICAgZXhwZWN0KCQoY29udGFpbmVyLmZpbmQoJy5zbGlj ay1yb3cgLnNsaWNrLWNlbGw6Zmlyc3QtY2hpbGQgc3BhbltkYXRhLWNlbGwt dHlwZT0icm93LWhlYWRlci1zZWxlY3RvciJdJylbNF0pCi0gICAgICAgICAg ICAgIC5oYXNDbGFzcygnc2VsZWN0ZWQnKSkudG9CZUZhbHN5KCk7Ci0gICAg ICAgICAgfSk7CisgICAgICAgIGl0KCdubyByb3cgc2hvdWxkIGhhdmUgdGhl IGNsYXNzICJzZWxlY3RlZCInLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg ZXhwZWN0KCQoY29udGFpbmVyLmZpbmQoJy5zbGljay1jZWxsLmwwLnIwJylb MF0pLmhhc0NsYXNzKCdzZWxlY3RlZCcpKQorICAgICAgICAgICAgLnRvQmVG YWxzeSgpOworICAgICAgICAgIGV4cGVjdCgkKGNvbnRhaW5lci5maW5kKCcu c2xpY2stY2VsbC5sMC5yMCcpWzFdKS5oYXNDbGFzcygnc2VsZWN0ZWQnKSkK KyAgICAgICAgICAgIC50b0JlRmFsc3koKTsKKyAgICAgICAgICBleHBlY3Qo JChjb250YWluZXIuZmluZCgnLnNsaWNrLWNlbGwubDAucjAnKVsyXSkuaGFz Q2xhc3MoJ3NlbGVjdGVkJykpCisgICAgICAgICAgICAudG9CZUZhbHN5KCk7 CisgICAgICAgICAgZXhwZWN0KCQoY29udGFpbmVyLmZpbmQoJy5zbGljay1j ZWxsLmwwLnIwJylbM10pLmhhc0NsYXNzKCdzZWxlY3RlZCcpKQorICAgICAg ICAgICAgLnRvQmVGYWxzeSgpOworICAgICAgICAgIGV4cGVjdCgkKGNvbnRh aW5lci5maW5kKCcuc2xpY2stY2VsbC5sMC5yMCcpWzRdKS5oYXNDbGFzcygn c2VsZWN0ZWQnKSkKKyAgICAgICAgICAgIC50b0JlRmFsc3koKTsKKyAgICAg ICAgICBleHBlY3QoJChjb250YWluZXIuZmluZCgnLnNsaWNrLWNlbGwubDAu cjAnKVs1XSkuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpCisgICAgICAgICAgICAu dG9CZUZhbHN5KCk7CiAgICAgICAgIH0pOworICAgICAgfSk7CisgICAgfSk7 CiAKLSAgICAgICAgZGVzY3JpYmUoImNsaWNrIGEgc2Vjb25kIHRpbWUiLCBm dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAo KSB7Ci0gICAgICAgICAgICBjb250YWluZXIuZmluZCgnLnNsaWNrLXJvdyAu c2xpY2stY2VsbDpmaXJzdC1jaGlsZCcpWzFdLmNsaWNrKCk7Ci0gICAgICAg ICAgfSk7CisgICAgZGVzY3JpYmUoJ3doZW4gdGhlIHVzZXIgY2xpY2tzIG11 bHRpcGxlIHJvdyBoZWFkZXJzJywgZnVuY3Rpb24gKCkgeworICAgICAgaXQo J3NlbGVjdHMgYW5vdGhlciByb3cnLCBmdW5jdGlvbiAoKSB7CisgICAgICAg IGNvbnRhaW5lci5maW5kKCcuc2xpY2stcm93IC5zbGljay1jZWxsOmZpcnN0 LWNoaWxkJylbNF0uY2xpY2soKTsKKyAgICAgICAgY29udGFpbmVyLmZpbmQo Jy5zbGljay1yb3cgLnNsaWNrLWNlbGw6Zmlyc3QtY2hpbGQnKVswXS5jbGlj aygpOwogCi0gICAgICAgICAgaXQoInJlbW92ZXMgdGhlIHNlbGVjdGVkIGNs YXNzIiwgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgY29udGFpbmVyLmZp bmQoJy5zbGljay1yb3cgLnNsaWNrLWNlbGw6Zmlyc3QtY2hpbGQnKVsxXS5j bGljaygpOwotICAgICAgICAgICAgZXhwZWN0KCQoY29udGFpbmVyLmZpbmQo Jy5zbGljay1yb3cgLnNsaWNrLWNlbGw6Zmlyc3QtY2hpbGQgc3BhbltkYXRh LWNlbGwtdHlwZT0icm93LWhlYWRlci1zZWxlY3RvciJdJylbMV0pCi0gICAg ICAgICAgICAgIC5oYXNDbGFzcygnc2VsZWN0ZWQnKSkudG9CZUZhbHN5KCk7 Ci0gICAgICAgICAgfSk7CisgICAgICAgIHZhciBzZWxlY3RlZFJhbmdlcyA9 IGNlbGxTZWxlY3Rpb25Nb2RlbC5nZXRTZWxlY3RlZFJhbmdlcygpOworICAg ICAgICBleHBlY3Qoc2VsZWN0ZWRSYW5nZXMubGVuZ3RoKS50b0VxdWFsKDIp OwogCi0gICAgICAgICAgaXQoInVuc2VsZWN0cyB0aGUgcm93IiwgZnVuY3Rp b24gKCkgewotICAgICAgICAgICAgY29udGFpbmVyLmZpbmQoJy5zbGljay1y b3cgLnNsaWNrLWNlbGw6Zmlyc3QtY2hpbGQnKVsxXS5jbGljaygpOwotICAg ICAgICAgICAgdmFyIHNlbGVjdGVkUmFuZ2VzID0gY2VsbFNlbGVjdGlvbk1v ZGVsLmdldFNlbGVjdGVkUmFuZ2VzKCk7CisgICAgICAgIHZhciByb3cxID0g c2VsZWN0ZWRSYW5nZXNbMF07CisgICAgICAgIGV4cGVjdChyb3cxLmZyb21S b3cpLnRvQmUoNCk7CisgICAgICAgIGV4cGVjdChyb3cxLnRvUm93KS50b0Jl KDQpOwogCi0gICAgICAgICAgICBleHBlY3Qoc2VsZWN0ZWRSYW5nZXMubGVu Z3RoKS50b0VxdWFsKDApOwotICAgICAgICAgIH0pCi0gICAgICAgIH0pOwor ICAgICAgICB2YXIgcm93MiA9IHNlbGVjdGVkUmFuZ2VzWzFdOworICAgICAg ICBleHBlY3Qocm93Mi5mcm9tUm93KS50b0JlKDApOworICAgICAgICBleHBl Y3Qocm93Mi50b1JvdykudG9CZSgwKTsKICAgICAgIH0pOworICAgIH0pOwog Ci0gICAgICBmdW5jdGlvbiBwcmVzc1NoaWZ0QXJyb3coa2V5Q29kZSkgewot ICAgICAgICB2YXIgcHJlc3NFdmVudCA9IG5ldyAkLkV2ZW50KCJrZXlkb3du Iik7Ci0gICAgICAgIHByZXNzRXZlbnQuc2hpZnRLZXkgPSB0cnVlOwotICAg ICAgICBwcmVzc0V2ZW50LmN0cmxLZXkgPSBmYWxzZTsKLSAgICAgICAgcHJl c3NFdmVudC5hbHRLZXkgPSBmYWxzZTsKLSAgICAgICAgcHJlc3NFdmVudC53 aGljaCA9IGtleUNvZGU7CisgICAgZGVzY3JpYmUoJ3doZW4gYSBjb2x1bW4g d2FzIGFscmVhZHkgc2VsZWN0ZWQnLCBmdW5jdGlvbiAoKSB7CisgICAgICBi ZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHNlbGVjdGVk UmFuZ2VzID0gW25ldyBTbGljay5SYW5nZSgwLCAwLCAwLCAxKV07CisgICAg ICAgIGNlbGxTZWxlY3Rpb25Nb2RlbC5zZXRTZWxlY3RlZFJhbmdlcyhzZWxl Y3RlZFJhbmdlcyk7CisgICAgICB9KTsKIAotICAgICAgICAkKGNvbnRhaW5l ci5maW5kKCcuZ3JpZC1jYW52YXMnKSkudHJpZ2dlcihwcmVzc0V2ZW50KTsK LSAgICAgIH0KKyAgICAgIGl0KCdkZXNlbGVjdHMgdGhlIGNvbHVtbicsIGZ1 bmN0aW9uICgpIHsKKyAgICAgICAgY29udGFpbmVyLmZpbmQoJy5zbGljay1y b3cgLnNsaWNrLWNlbGw6Zmlyc3QtY2hpbGQnKVswXS5jbGljaygpOworICAg ICAgICB2YXIgc2VsZWN0ZWRSYW5nZXMgPSBjZWxsU2VsZWN0aW9uTW9kZWwu Z2V0U2VsZWN0ZWRSYW5nZXMoKTsKKworICAgICAgICBleHBlY3RPbmx5VGhl Rmlyc3RSb3dUb0JlU2VsZWN0ZWQoc2VsZWN0ZWRSYW5nZXMpOworICAgICAg fSk7CiAgICAgfSk7CiAKLSAgICBmdW5jdGlvbiBleHBlY3RPbmx5VGhlRmly c3RSb3dUb0JlU2VsZWN0ZWQoc2VsZWN0ZWRSYW5nZXMpIHsKLSAgICAgIHZh ciByb3cgPSBzZWxlY3RlZFJhbmdlc1swXTsKKyAgICBkZXNjcmliZSgnd2hl biB0aGUgcm93IGlzIGRlc2VsZWN0ZWQgdGhyb3VnaCBzZXRTZWxlY3RlZFJh bmdlcycsIGZ1bmN0aW9uICgpIHsKKyAgICAgIGJlZm9yZUVhY2goZnVuY3Rp b24gKCkgeworICAgICAgICBjb250YWluZXIuZmluZCgnLnNsaWNrLXJvdyAu c2xpY2stY2VsbDpmaXJzdC1jaGlsZCcpWzRdLmNsaWNrKCk7CisgICAgICB9 KTsKIAotICAgICAgZXhwZWN0KHNlbGVjdGVkUmFuZ2VzLmxlbmd0aCkudG9F cXVhbCgxKTsKLSAgICAgIGV4cGVjdChyb3cuZnJvbUNlbGwpLnRvQmUoMSk7 Ci0gICAgICBleHBlY3Qocm93LnRvQ2VsbCkudG9CZSgyKTsKLSAgICAgIGV4 cGVjdChyb3cuZnJvbVJvdykudG9CZSgwKTsKLSAgICAgIGV4cGVjdChyb3cu dG9Sb3cpLnRvQmUoMCk7Ci0gICAgfQotICB9KTsKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCisgICAgICBpdCgnc2hvdWxkIHJlbW92ZSB0aGUgc2Vs ZWN0ZWQgY2xhc3MnLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGNlbGxTZWxl Y3Rpb25Nb2RlbC5zZXRTZWxlY3RlZFJhbmdlcyhbXSk7CisKKyAgICAgICAg ZXhwZWN0KCQoY29udGFpbmVyLmZpbmQoJy5zbGljay1yb3cgLnNsaWNrLWNl bGw6Zmlyc3QtY2hpbGQgc3BhbltkYXRhLWNlbGwtdHlwZT0icm93LWhlYWRl ci1zZWxlY3RvciJdJylbNF0pCisgICAgICAgICAgLmhhc0NsYXNzKCdzZWxl Y3RlZCcpKS50b0JlRmFsc3koKTsKKyAgICAgIH0pOworICAgIH0pOworCisg ICAgZGVzY3JpYmUoJ2NsaWNrIGEgc2Vjb25kIHRpbWUnLCBmdW5jdGlvbiAo KSB7CisgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKKyAgICAgICAg Y29udGFpbmVyLmZpbmQoJy5zbGljay1yb3cgLnNsaWNrLWNlbGw6Zmlyc3Qt Y2hpbGQnKVsxXS5jbGljaygpOworICAgICAgfSk7CisKKyAgICAgIGl0KCdy ZW1vdmVzIHRoZSBzZWxlY3RlZCBjbGFzcycsIGZ1bmN0aW9uICgpIHsKKyAg ICAgICAgY29udGFpbmVyLmZpbmQoJy5zbGljay1yb3cgLnNsaWNrLWNlbGw6 Zmlyc3QtY2hpbGQnKVsxXS5jbGljaygpOworICAgICAgICBleHBlY3QoJChj b250YWluZXIuZmluZCgnLnNsaWNrLXJvdyAuc2xpY2stY2VsbDpmaXJzdC1j aGlsZCBzcGFuW2RhdGEtY2VsbC10eXBlPSJyb3ctaGVhZGVyLXNlbGVjdG9y Il0nKVsxXSkKKyAgICAgICAgICAuaGFzQ2xhc3MoJ3NlbGVjdGVkJykpLnRv QmVGYWxzeSgpOworICAgICAgfSk7CisKKyAgICAgIGl0KCd1bnNlbGVjdHMg dGhlIHJvdycsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgY29udGFpbmVyLmZp bmQoJy5zbGljay1yb3cgLnNsaWNrLWNlbGw6Zmlyc3QtY2hpbGQnKVsxXS5j bGljaygpOworICAgICAgICB2YXIgc2VsZWN0ZWRSYW5nZXMgPSBjZWxsU2Vs ZWN0aW9uTW9kZWwuZ2V0U2VsZWN0ZWRSYW5nZXMoKTsKKworICAgICAgICBl eHBlY3Qoc2VsZWN0ZWRSYW5nZXMubGVuZ3RoKS50b0VxdWFsKDApOworICAg ICAgfSkKKyAgICB9KTsKKyAgfSk7CisKKyAgZnVuY3Rpb24gcHJlc3NTaGlm dEFycm93KGtleUNvZGUpIHsKKyAgICB2YXIgcHJlc3NFdmVudCA9IG5ldyAk LkV2ZW50KCdrZXlkb3duJyk7CisgICAgcHJlc3NFdmVudC5zaGlmdEtleSA9 IHRydWU7CisgICAgcHJlc3NFdmVudC5jdHJsS2V5ID0gZmFsc2U7CisgICAg cHJlc3NFdmVudC5hbHRLZXkgPSBmYWxzZTsKKyAgICBwcmVzc0V2ZW50Lndo aWNoID0ga2V5Q29kZTsKKworICAgICQoY29udGFpbmVyLmZpbmQoJy5ncmlk LWNhbnZhcycpKS50cmlnZ2VyKHByZXNzRXZlbnQpOworICB9CisKKyAgZnVu Y3Rpb24gZXhwZWN0T25seVRoZUZpcnN0Um93VG9CZVNlbGVjdGVkKHNlbGVj dGVkUmFuZ2VzKSB7CisgICAgdmFyIHJvdyA9IHNlbGVjdGVkUmFuZ2VzWzBd OworCisgICAgZXhwZWN0KHNlbGVjdGVkUmFuZ2VzLmxlbmd0aCkudG9FcXVh bCgxKTsKKyAgICBleHBlY3Qocm93LmZyb21DZWxsKS50b0JlKDEpOworICAg IGV4cGVjdChyb3cudG9DZWxsKS50b0JlKDIpOworICAgIGV4cGVjdChyb3cu ZnJvbVJvdykudG9CZSgwKTsKKyAgICBleHBlY3Qocm93LnRvUm93KS50b0Jl KDApOworICB9Cit9KTsKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL2ph dmFzY3JpcHQvc2VsZWN0aW9uL3hjZWxsX3NlbGVjdGlvbl9tb2RlbF9zcGVj LmpzIGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zZWxlY3Rpb24veGNl bGxfc2VsZWN0aW9uX21vZGVsX3NwZWMuanMKaW5kZXggMTY4MmMyNDQuLjhm MDEwMzVjIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0 L3NlbGVjdGlvbi94Y2VsbF9zZWxlY3Rpb25fbW9kZWxfc3BlYy5qcworKysg Yi93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NlbGVjdGlvbi94Y2VsbF9z ZWxlY3Rpb25fbW9kZWxfc3BlYy5qcwpAQCAtNyw1MDcgKzcsNTA1IEBACiAv LwogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAotZGVmaW5lKFsK LSAgJ3NvdXJjZXMvc2VsZWN0aW9uL3hjZWxsX3NlbGVjdGlvbl9tb2RlbCcs Ci0gICJzbGlja2dyaWQvc2xpY2suZ3JpZCIsCi0gICdzbGlja2dyaWQnLAot XSwgZnVuY3Rpb24gKFhDZWxsU2VsZWN0aW9uTW9kZWwsIFNsaWNrR3JpZCwg U2xpY2spIHsKLSAgZGVzY3JpYmUoJ1hDZWxsU2VsZWN0aW9uTW9kZWwnLCBm dW5jdGlvbiAoKSB7Ci0gICAgdmFyIEtFWV9SSUdIVCA9IDM5OwotICAgIHZh ciBLRVlfTEVGVCA9IDM3OwotICAgIHZhciBLRVlfVVAgPSAzODsKLSAgICB2 YXIgS0VZX0RPV04gPSA0MDsKLQotICAgIHZhciBjb250YWluZXIsIGdyaWQ7 Ci0gICAgdmFyIG9sZFdpbmRvd1BhcmVudCA9IHdpbmRvdy5wYXJlbnQ7Citp bXBvcnQgWENlbGxTZWxlY3Rpb25Nb2RlbCBmcm9tICdzb3VyY2VzL3NlbGVj dGlvbi94Y2VsbF9zZWxlY3Rpb25fbW9kZWwnOworaW1wb3J0ICdzbGlja2dy aWQuZ3JpZCc7CitpbXBvcnQgU2xpY2sgZnJvbSAnc2xpY2tncmlkJzsKKwor ZGVzY3JpYmUoJ1hDZWxsU2VsZWN0aW9uTW9kZWwnLCBmdW5jdGlvbiAoKSB7 CisgIHZhciBLRVlfUklHSFQgPSAzOTsKKyAgdmFyIEtFWV9MRUZUID0gMzc7 CisgIHZhciBLRVlfVVAgPSAzODsKKyAgdmFyIEtFWV9ET1dOID0gNDA7CisK KyAgdmFyIGNvbnRhaW5lciwgZ3JpZDsKKyAgdmFyIFNsaWNrR3JpZCA9IFNs aWNrLkdyaWQ7CisgIHZhciBvbGRXaW5kb3dQYXJlbnQgPSB3aW5kb3cucGFy ZW50OworCisgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgeworICAgIHdpbmRv dy5wYXJlbnQgPSB3aW5kb3c7CisKKyAgICB2YXIgY29sdW1ucyA9IFt7Cisg ICAgICBpZDogJ3Jvdy1oZWFkZXItY29sdW1uJywKKyAgICAgIG5hbWU6ICdy b3cgaGVhZGVyIGNvbHVtbiBuYW1lJywKKyAgICAgIHNlbGVjdGFibGU6IGZh bHNlLAorICAgIH0sIHsKKyAgICAgIGlkOiAnMScsCisgICAgICBuYW1lOiAn c29tZS1jb2x1bW4tbmFtZScsCisgICAgICBwb3M6IDAKKyAgICB9LCB7Cisg ICAgICBpZDogJ3NlY29uZC1jb2x1bW4taWQnLAorICAgICAgbmFtZTogJ3Nl Y29uZCBjb2x1bW4nLAorICAgICAgcG9zOiAxCisgICAgfSwgeworICAgICAg aWQ6ICd0aGlyZC1jb2x1bW4taWQnLAorICAgICAgbmFtZTogJ3RoaXJkIGNv bHVtbicsCisgICAgICBwb3M6IDIKKyAgICB9LAorICAgIF07CisKKyAgICB2 YXIgZGF0YSA9IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkr KykgeworICAgICAgZGF0YS5wdXNoKHsKKyAgICAgICAgJ3NvbWUtY29sdW1u LW5hbWUnOiAnc29tZS12YWx1ZS0nICsgaSwKKyAgICAgICAgJ3NlY29uZCBj b2x1bW4nOiAnc2Vjb25kIHZhbHVlICcgKyBpLAorICAgICAgICAndGhpcmQg Y29sdW1uJzogJ3RoaXJkIHZhbHVlICcgKyBpLAorICAgICAgICAnZm91cnRo IGNvbHVtbic6ICdmb3VydGggdmFsdWUgJyArIGksCisgICAgICB9KTsKKyAg ICB9CisgICAgY29udGFpbmVyID0gJCgiPGRpdj48L2Rpdj4iKTsKKyAgICBj b250YWluZXIuaGVpZ2h0KDk5OTkpOworICAgIGNvbnRhaW5lci53aWR0aCg5 OTk5KTsKIAotICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgewotICAgICAg d2luZG93LnBhcmVudCA9IHdpbmRvdzsKLQotICAgICAgdmFyIGNvbHVtbnMg PSBbewotICAgICAgICBpZDogJ3Jvdy1oZWFkZXItY29sdW1uJywKLSAgICAg ICAgbmFtZTogJ3JvdyBoZWFkZXIgY29sdW1uIG5hbWUnLAotICAgICAgICBz ZWxlY3RhYmxlOiBmYWxzZSwKLSAgICAgIH0sIHsKLSAgICAgICAgaWQ6ICcx JywKLSAgICAgICAgbmFtZTogJ3NvbWUtY29sdW1uLW5hbWUnLAotICAgICAg ICBwb3M6IDAKLSAgICAgIH0sIHsKLSAgICAgICAgaWQ6ICdzZWNvbmQtY29s dW1uLWlkJywKLSAgICAgICAgbmFtZTogJ3NlY29uZCBjb2x1bW4nLAotICAg ICAgICBwb3M6IDEKLSAgICAgIH0sIHsKLSAgICAgICAgaWQ6ICd0aGlyZC1j b2x1bW4taWQnLAotICAgICAgICBuYW1lOiAndGhpcmQgY29sdW1uJywKLSAg ICAgICAgcG9zOiAyCi0gICAgICB9LAotICAgICAgXTsKLQotICAgICAgdmFy IGRhdGEgPSBbXTsKLSAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7IGkr KykgewotICAgICAgICBkYXRhLnB1c2goewotICAgICAgICAgICdzb21lLWNv bHVtbi1uYW1lJzogJ3NvbWUtdmFsdWUtJyArIGksCi0gICAgICAgICAgJ3Nl Y29uZCBjb2x1bW4nOiAnc2Vjb25kIHZhbHVlICcgKyBpLAotICAgICAgICAg ICd0aGlyZCBjb2x1bW4nOiAndGhpcmQgdmFsdWUgJyArIGksCi0gICAgICAg ICAgJ2ZvdXJ0aCBjb2x1bW4nOiAnZm91cnRoIHZhbHVlICcgKyBpLAotICAg ICAgICB9KTsKLSAgICAgIH0KLSAgICAgIGNvbnRhaW5lciA9ICQoIjxkaXY+ PC9kaXY+Iik7Ci0gICAgICBjb250YWluZXIuaGVpZ2h0KDk5OTkpOwotICAg ICAgY29udGFpbmVyLndpZHRoKDk5OTkpOwotCi0gICAgICBncmlkID0gbmV3 IFNsaWNrR3JpZChjb250YWluZXIsIGRhdGEsIGNvbHVtbnMpOwotICAgICAg Z3JpZC5zZXRTZWxlY3Rpb25Nb2RlbChuZXcgWENlbGxTZWxlY3Rpb25Nb2Rl bCgpKTsKLSAgICAgICQoImJvZHkiKS5hcHBlbmQoY29udGFpbmVyKTsKLSAg ICB9KTsKKyAgICBncmlkID0gbmV3IFNsaWNrR3JpZChjb250YWluZXIsIGRh dGEsIGNvbHVtbnMpOworICAgIGdyaWQuc2V0U2VsZWN0aW9uTW9kZWwobmV3 IFhDZWxsU2VsZWN0aW9uTW9kZWwoKSk7CisgICAgJCgiYm9keSIpLmFwcGVu ZChjb250YWluZXIpOworICB9KTsKIAotICAgIGFmdGVyRWFjaChmdW5jdGlv biAoKSB7Ci0gICAgICBncmlkLmRlc3Ryb3koKTsKLSAgICAgIGNvbnRhaW5l ci5yZW1vdmUoKTsKLSAgICAgIHdpbmRvdy5wYXJlbnQgPSBvbGRXaW5kb3dQ YXJlbnQ7Ci0gICAgfSk7CisgIGFmdGVyRWFjaChmdW5jdGlvbiAoKSB7Cisg ICAgZ3JpZC5kZXN0cm95KCk7CisgICAgY29udGFpbmVyLnJlbW92ZSgpOwor ICAgIHdpbmRvdy5wYXJlbnQgPSBvbGRXaW5kb3dQYXJlbnQ7CisgIH0pOwog Ci0gICAgZGVzY3JpYmUoJ2hhbmRsZUtleURvd24nLCBmdW5jdGlvbiAoKSB7 Ci0gICAgICBkZXNjcmliZSgnd2hlbiB3ZSBwcmVzcyBhIHJhbmRvbSBrZXkn LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGl0KCdzaG91bGQgbm90IGNoYW5n ZSB0aGUgcmFuZ2UnLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgdmFyIHJh bmdlID0gbmV3IFNsaWNrLlJhbmdlKDEsIDIpOwotICAgICAgICAgIGdyaWQu c2V0QWN0aXZlQ2VsbCgxLCAyKTsKLSAgICAgICAgICBncmlkLmdldFNlbGVj dGlvbk1vZGVsKCkuc2V0U2VsZWN0ZWRSYW5nZXMoW3JhbmdlXSk7Ci0gICAg ICAgICAgcHJlc3NLZXkoNzIpOworICBkZXNjcmliZSgnaGFuZGxlS2V5RG93 bicsIGZ1bmN0aW9uICgpIHsKKyAgICBkZXNjcmliZSgnd2hlbiB3ZSBwcmVz cyBhIHJhbmRvbSBrZXknLCBmdW5jdGlvbiAoKSB7CisgICAgICBpdCgnc2hv dWxkIG5vdCBjaGFuZ2UgdGhlIHJhbmdlJywgZnVuY3Rpb24gKCkgeworICAg ICAgICB2YXIgcmFuZ2UgPSBuZXcgU2xpY2suUmFuZ2UoMSwgMik7CisgICAg ICAgIGdyaWQuc2V0QWN0aXZlQ2VsbCgxLCAyKTsKKyAgICAgICAgZ3JpZC5n ZXRTZWxlY3Rpb25Nb2RlbCgpLnNldFNlbGVjdGVkUmFuZ2VzKFtyYW5nZV0p OworICAgICAgICBwcmVzc0tleSg3Mik7CiAKLSAgICAgICAgICBleHBlY3Qo Z3JpZC5nZXRTZWxlY3Rpb25Nb2RlbCgpLmdldFNlbGVjdGVkUmFuZ2VzKClb MF0pLnRvRXF1YWwocmFuZ2UpOwotICAgICAgICB9KTsKKyAgICAgICAgZXhw ZWN0KGdyaWQuZ2V0U2VsZWN0aW9uTW9kZWwoKS5nZXRTZWxlY3RlZFJhbmdl cygpWzBdKS50b0VxdWFsKHJhbmdlKTsKICAgICAgIH0pOworICAgIH0pOwog Ci0gICAgICBkZXNjcmliZSgnd2hlbiB3ZSBwcmVzcyBhbiBhcnJvdyBrZXkg JywgZnVuY3Rpb24gKCkgewotICAgICAgICBpdCgnc2hvdWxkIHNlbGVjdCB0 aGUgY2VsbCB0byB0aGUgcmlnaHQnLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAg ICAgdmFyIHJhbmdlID0gbmV3IFNsaWNrLlJhbmdlKDEsIDIpOwotICAgICAg ICAgIGdyaWQuc2V0QWN0aXZlQ2VsbCgxLCAyKTsKLSAgICAgICAgICBncmlk LmdldFNlbGVjdGlvbk1vZGVsKCkuc2V0U2VsZWN0ZWRSYW5nZXMoW3Jhbmdl XSk7Ci0gICAgICAgICAgcHJlc3NLZXkoS0VZX1JJR0hUKTsKKyAgICBkZXNj cmliZSgnd2hlbiB3ZSBwcmVzcyBhbiBhcnJvdyBrZXkgJywgZnVuY3Rpb24g KCkgeworICAgICAgaXQoJ3Nob3VsZCBzZWxlY3QgdGhlIGNlbGwgdG8gdGhl IHJpZ2h0JywgZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgcmFuZ2UgPSBu ZXcgU2xpY2suUmFuZ2UoMSwgMik7CisgICAgICAgIGdyaWQuc2V0QWN0aXZl Q2VsbCgxLCAyKTsKKyAgICAgICAgZ3JpZC5nZXRTZWxlY3Rpb25Nb2RlbCgp LnNldFNlbGVjdGVkUmFuZ2VzKFtyYW5nZV0pOworICAgICAgICBwcmVzc0tl eShLRVlfUklHSFQpOwogCi0gICAgICAgICAgZXhwZWN0T25lU2VsZWN0ZWRS YW5nZSgxLCAzLCAxLCAzKTsKLSAgICAgICAgfSk7CisgICAgICAgIGV4cGVj dE9uZVNlbGVjdGVkUmFuZ2UoMSwgMywgMSwgMyk7CiAgICAgICB9KTsKKyAg ICB9KTsKIAotICAgICAgZGVzY3JpYmUoJ3doZW4gd2UgcHJlc3Mgc2hpZnQn LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGRlc2NyaWJlKCdhbmQgd2UgcHJl c3MgYW4gYXJyb3cga2V5JywgZnVuY3Rpb24gKCkgewotICAgICAgICAgIHZh ciBzY3JvbGxDb2x1bW5JbnRvVmlld1NweSwgc2Nyb2xsUm93SW50b1ZpZXdT cHk7CisgICAgZGVzY3JpYmUoJ3doZW4gd2UgcHJlc3Mgc2hpZnQnLCBmdW5j dGlvbiAoKSB7CisgICAgICBkZXNjcmliZSgnYW5kIHdlIHByZXNzIGFuIGFy cm93IGtleScsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIHNjcm9sbENv bHVtbkludG9WaWV3U3B5LCBzY3JvbGxSb3dJbnRvVmlld1NweTsKIAotICAg ICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg c2Nyb2xsQ29sdW1uSW50b1ZpZXdTcHkgPSBzcHlPbihncmlkLCAnc2Nyb2xs Q29sdW1uSW50b1ZpZXcnKTsKLSAgICAgICAgICAgIHNjcm9sbFJvd0ludG9W aWV3U3B5ID0gc3B5T24oZ3JpZCwgJ3Njcm9sbFJvd0ludG9WaWV3Jyk7Ci0g ICAgICAgICAgfSk7CisgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkg eworICAgICAgICAgIHNjcm9sbENvbHVtbkludG9WaWV3U3B5ID0gc3B5T24o Z3JpZCwgJ3Njcm9sbENvbHVtbkludG9WaWV3Jyk7CisgICAgICAgICAgc2Ny b2xsUm93SW50b1ZpZXdTcHkgPSBzcHlPbihncmlkLCAnc2Nyb2xsUm93SW50 b1ZpZXcnKTsKKyAgICAgICAgfSk7CiAKLSAgICAgICAgICBkZXNjcmliZSgn dGhlIHJpZ2h0IGFycm93JywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg ZGVzY3JpYmUoJ3doZW4gYSBjZWxsIGlzIHNlbGVjdGVkJywgZnVuY3Rpb24g KCkgewotICAgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsK LSAgICAgICAgICAgICAgICB2YXIgcmFuZ2UgPSBuZXcgU2xpY2suUmFuZ2Uo MSwgMSk7Ci0gICAgICAgICAgICAgICAgZ3JpZC5zZXRBY3RpdmVDZWxsKDEs IDEpOwotICAgICAgICAgICAgICAgIGdyaWQuZ2V0U2VsZWN0aW9uTW9kZWwo KS5zZXRTZWxlY3RlZFJhbmdlcyhbcmFuZ2VdKTsKLSAgICAgICAgICAgICAg ICBwcmVzc1NoaWZ0UGx1c0tleShLRVlfUklHSFQpOwotICAgICAgICAgICAg ICB9KTsKKyAgICAgICAgZGVzY3JpYmUoJ3RoZSByaWdodCBhcnJvdycsIGZ1 bmN0aW9uICgpIHsKKyAgICAgICAgICBkZXNjcmliZSgnd2hlbiBhIGNlbGwg aXMgc2VsZWN0ZWQnLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBiZWZv cmVFYWNoKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgdmFyIHJhbmdl ID0gbmV3IFNsaWNrLlJhbmdlKDEsIDEpOworICAgICAgICAgICAgICBncmlk LnNldEFjdGl2ZUNlbGwoMSwgMSk7CisgICAgICAgICAgICAgIGdyaWQuZ2V0 U2VsZWN0aW9uTW9kZWwoKS5zZXRTZWxlY3RlZFJhbmdlcyhbcmFuZ2VdKTsK KyAgICAgICAgICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX1JJR0hUKTsK KyAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgIGl0KCdpbmNyZWFz ZXMgdGhlIHJhbmdlIGJ5IG9uZSB0byB0aGUgcmlnaHQnLCBmdW5jdGlvbiAo KSB7Ci0gICAgICAgICAgICAgICAgZXhwZWN0T25lU2VsZWN0ZWRSYW5nZSgx LCAxLCAxLCAyKTsKLSAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBp dCgnaW5jcmVhc2VzIHRoZSByYW5nZSBieSBvbmUgdG8gdGhlIHJpZ2h0Jywg ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICBleHBlY3RPbmVTZWxlY3Rl ZFJhbmdlKDEsIDEsIDEsIDIpOworICAgICAgICAgICAgfSk7CiAKLSAgICAg ICAgICAgICAgaXQoJ3Nob3VsZCBzY3JvbGwgdGhlIG5leHQgY29sdW1uIGlu dG8gdmlldycsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBleHBl Y3Qoc2Nyb2xsQ29sdW1uSW50b1ZpZXdTcHkpLnRvSGF2ZUJlZW5DYWxsZWRX aXRoKDIpOwotICAgICAgICAgICAgICAgIGV4cGVjdChzY3JvbGxSb3dJbnRv Vmlld1NweSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTsKLSAgICAgICAgICAg ICAgfSk7CisgICAgICAgICAgICBpdCgnc2hvdWxkIHNjcm9sbCB0aGUgbmV4 dCBjb2x1bW4gaW50byB2aWV3JywgZnVuY3Rpb24gKCkgeworICAgICAgICAg ICAgICBleHBlY3Qoc2Nyb2xsQ29sdW1uSW50b1ZpZXdTcHkpLnRvSGF2ZUJl ZW5DYWxsZWRXaXRoKDIpOworICAgICAgICAgICAgICBleHBlY3Qoc2Nyb2xs Um93SW50b1ZpZXdTcHkpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7CisgICAg ICAgICAgICB9KTsKIAotICAgICAgICAgICAgICBpdCgncHJlc3Npbmcgcmln aHQgYWdhaW4gZ3Jvd3MgdGhlIHJhbmdlIHJpZ2h0JywgZnVuY3Rpb24gKCkg ewotICAgICAgICAgICAgICAgIHByZXNzU2hpZnRQbHVzS2V5KEtFWV9SSUdI VCk7CisgICAgICAgICAgICBpdCgncHJlc3NpbmcgcmlnaHQgYWdhaW4gZ3Jv d3MgdGhlIHJhbmdlIHJpZ2h0JywgZnVuY3Rpb24gKCkgeworICAgICAgICAg ICAgICBwcmVzc1NoaWZ0UGx1c0tleShLRVlfUklHSFQpOwogCi0gICAgICAg ICAgICAgICAgZXhwZWN0T25lU2VsZWN0ZWRSYW5nZSgxLCAxLCAxLCAzKTsK LSAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgIGV4cGVjdE9uZVNl bGVjdGVkUmFuZ2UoMSwgMSwgMSwgMyk7CisgICAgICAgICAgICB9KTsKIAot ICAgICAgICAgICAgICBpdCgndGhlbiBwcmVzc2luZyBsZWZ0IGtlZXBzIHRo ZSBvcmlnaW5hbCBzZWxlY3Rpb24nLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAg ICAgICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX0xFRlQpOworICAgICAg ICAgICAgaXQoJ3RoZW4gcHJlc3NpbmcgbGVmdCBrZWVwcyB0aGUgb3JpZ2lu YWwgc2VsZWN0aW9uJywgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICBw cmVzc1NoaWZ0UGx1c0tleShLRVlfTEVGVCk7CiAKLSAgICAgICAgICAgICAg ICBleHBlY3RPbmVTZWxlY3RlZFJhbmdlKDEsIDEsIDEsIDEpOwotICAgICAg ICAgICAgICB9KTsKKyAgICAgICAgICAgICAgZXhwZWN0T25lU2VsZWN0ZWRS YW5nZSgxLCAxLCAxLCAxKTsKICAgICAgICAgICAgIH0pOworICAgICAgICAg IH0pOwogCi0gICAgICAgICAgICBkZXNjcmliZSgnd2hlbiBhIGNvbHVtbiBp cyBzZWxlY3RlZCcsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgYmVm b3JlRWFjaChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHJh bmdlID0gbmV3IFNsaWNrLlJhbmdlKDAsIDEsIDksIDEpOwotICAgICAgICAg ICAgICAgIGdyaWQuc2V0QWN0aXZlQ2VsbCgwLCAxKTsKLSAgICAgICAgICAg ICAgICBncmlkLmdldFNlbGVjdGlvbk1vZGVsKCkuc2V0U2VsZWN0ZWRSYW5n ZXMoW3JhbmdlXSk7Ci0gICAgICAgICAgICAgICAgcHJlc3NTaGlmdFBsdXNL ZXkoS0VZX1JJR0hUKTsKLSAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg ZGVzY3JpYmUoJ3doZW4gYSBjb2x1bW4gaXMgc2VsZWN0ZWQnLCBmdW5jdGlv biAoKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsK KyAgICAgICAgICAgICAgdmFyIHJhbmdlID0gbmV3IFNsaWNrLlJhbmdlKDAs IDEsIDksIDEpOworICAgICAgICAgICAgICBncmlkLnNldEFjdGl2ZUNlbGwo MCwgMSk7CisgICAgICAgICAgICAgIGdyaWQuZ2V0U2VsZWN0aW9uTW9kZWwo KS5zZXRTZWxlY3RlZFJhbmdlcyhbcmFuZ2VdKTsKKyAgICAgICAgICAgICAg cHJlc3NTaGlmdFBsdXNLZXkoS0VZX1JJR0hUKTsKKyAgICAgICAgICAgIH0p OwogCi0gICAgICAgICAgICAgIGl0KCdpbmNyZWFzZXMgdGhlIHJhbmdlIGJ5 IG9uZSBjb2x1bW4gdG8gdGhlIHJpZ2h0JywgZnVuY3Rpb24gKCkgewotICAg ICAgICAgICAgICAgIGV4cGVjdE9uZVNlbGVjdGVkUmFuZ2UoMCwgMSwgOSwg Mik7Ci0gICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaXQoJ2luY3Jl YXNlcyB0aGUgcmFuZ2UgYnkgb25lIGNvbHVtbiB0byB0aGUgcmlnaHQnLCBm dW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgIGV4cGVjdE9uZVNlbGVjdGVk UmFuZ2UoMCwgMSwgOSwgMik7CisgICAgICAgICAgICB9KTsKIAotICAgICAg ICAgICAgICBpdCgnc2hvdWxkIHNjcm9sbCB0aGUgbmV4dCBjb2x1bW4gaW50 byB2aWV3JywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGV4cGVj dChzY3JvbGxDb2x1bW5JbnRvVmlld1NweSkudG9IYXZlQmVlbkNhbGxlZFdp dGgoMik7Ci0gICAgICAgICAgICAgICAgZXhwZWN0KHNjcm9sbFJvd0ludG9W aWV3U3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpOwotICAgICAgICAgICAg ICB9KTsKKyAgICAgICAgICAgIGl0KCdzaG91bGQgc2Nyb2xsIHRoZSBuZXh0 IGNvbHVtbiBpbnRvIHZpZXcnLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg ICAgIGV4cGVjdChzY3JvbGxDb2x1bW5JbnRvVmlld1NweSkudG9IYXZlQmVl bkNhbGxlZFdpdGgoMik7CisgICAgICAgICAgICAgIGV4cGVjdChzY3JvbGxS b3dJbnRvVmlld1NweSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTsKICAgICAg ICAgICAgIH0pOwogICAgICAgICAgIH0pOworICAgICAgICB9KTsKIAotICAg ICAgICAgIGRlc2NyaWJlKCd0aGUgbGVmdCBhcnJvdycsIGZ1bmN0aW9uICgp IHsKLSAgICAgICAgICAgIGRlc2NyaWJlKCd3aGVuIGEgY2VsbCBpcyBzZWxl Y3RlZCcsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgYmVmb3JlRWFj aChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHJhbmdlID0g bmV3IFNsaWNrLlJhbmdlKDEsIDMpOwotICAgICAgICAgICAgICAgIGdyaWQu c2V0QWN0aXZlQ2VsbCgxLCAzKTsKLSAgICAgICAgICAgICAgICBncmlkLmdl dFNlbGVjdGlvbk1vZGVsKCkuc2V0U2VsZWN0ZWRSYW5nZXMoW3JhbmdlXSk7 Ci0gICAgICAgICAgICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX0xFRlQp OwotICAgICAgICAgICAgICB9KTsKKyAgICAgICAgZGVzY3JpYmUoJ3RoZSBs ZWZ0IGFycm93JywgZnVuY3Rpb24gKCkgeworICAgICAgICAgIGRlc2NyaWJl KCd3aGVuIGEgY2VsbCBpcyBzZWxlY3RlZCcsIGZ1bmN0aW9uICgpIHsKKyAg ICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgeworICAgICAgICAg ICAgICB2YXIgcmFuZ2UgPSBuZXcgU2xpY2suUmFuZ2UoMSwgMyk7CisgICAg ICAgICAgICAgIGdyaWQuc2V0QWN0aXZlQ2VsbCgxLCAzKTsKKyAgICAgICAg ICAgICAgZ3JpZC5nZXRTZWxlY3Rpb25Nb2RlbCgpLnNldFNlbGVjdGVkUmFu Z2VzKFtyYW5nZV0pOworICAgICAgICAgICAgICBwcmVzc1NoaWZ0UGx1c0tl eShLRVlfTEVGVCk7CisgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAg ICBpdCgnaW5jcmVhc2VzIHRoZSByYW5nZSBieSBvbmUgdG8gdGhlIGxlZnQn LCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZXhwZWN0T25lU2Vs ZWN0ZWRSYW5nZSgxLCAyLCAxLCAzKTsKLSAgICAgICAgICAgICAgfSk7Cisg ICAgICAgICAgICBpdCgnaW5jcmVhc2VzIHRoZSByYW5nZSBieSBvbmUgdG8g dGhlIGxlZnQnLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgIGV4cGVj dE9uZVNlbGVjdGVkUmFuZ2UoMSwgMiwgMSwgMyk7CisgICAgICAgICAgICB9 KTsKIAotICAgICAgICAgICAgICBpdCgnc2hvdWxkIHNjcm9sbCBwcmV2aW91 cyBjb2x1bW4gaW50byB2aWV3JywgZnVuY3Rpb24gKCkgewotICAgICAgICAg ICAgICAgIGV4cGVjdChzY3JvbGxDb2x1bW5JbnRvVmlld1NweSkudG9IYXZl QmVlbkNhbGxlZFdpdGgoMik7Ci0gICAgICAgICAgICAgICAgZXhwZWN0KHNj cm9sbFJvd0ludG9WaWV3U3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpOwot ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGl0KCdzaG91bGQgc2Ny b2xsIHByZXZpb3VzIGNvbHVtbiBpbnRvIHZpZXcnLCBmdW5jdGlvbiAoKSB7 CisgICAgICAgICAgICAgIGV4cGVjdChzY3JvbGxDb2x1bW5JbnRvVmlld1Nw eSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoMik7CisgICAgICAgICAgICAgIGV4 cGVjdChzY3JvbGxSb3dJbnRvVmlld1NweSkubm90LnRvSGF2ZUJlZW5DYWxs ZWQoKTsKKyAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgIGl0KCdw cmVzc2luZyBsZWZ0IGFnYWluIGdyb3dzIHRoZSByYW5nZSB0aGUgbGVmdCcs IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBwcmVzc1NoaWZ0UGx1 c0tleShLRVlfTEVGVCk7CisgICAgICAgICAgICBpdCgncHJlc3NpbmcgbGVm dCBhZ2FpbiBncm93cyB0aGUgcmFuZ2UgdGhlIGxlZnQnLCBmdW5jdGlvbiAo KSB7CisgICAgICAgICAgICAgIHByZXNzU2hpZnRQbHVzS2V5KEtFWV9MRUZU KTsKIAotICAgICAgICAgICAgICAgIGV4cGVjdE9uZVNlbGVjdGVkUmFuZ2Uo MSwgMSwgMSwgMyk7Ci0gICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg ICBleHBlY3RPbmVTZWxlY3RlZFJhbmdlKDEsIDEsIDEsIDMpOworICAgICAg ICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgaXQoJ3RoZW4gcHJlc3Npbmcg cmlnaHQga2VlcHMgdGhlIG9yaWdpbmFsIHNlbGVjdGlvbicsIGZ1bmN0aW9u ICgpIHsKLSAgICAgICAgICAgICAgICBwcmVzc1NoaWZ0UGx1c0tleShLRVlf UklHSFQpOworICAgICAgICAgICAgaXQoJ3RoZW4gcHJlc3NpbmcgcmlnaHQg a2VlcHMgdGhlIG9yaWdpbmFsIHNlbGVjdGlvbicsIGZ1bmN0aW9uICgpIHsK KyAgICAgICAgICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX1JJR0hUKTsK IAotICAgICAgICAgICAgICAgIGV4cGVjdE9uZVNlbGVjdGVkUmFuZ2UoMSwg MywgMSwgMyk7Ci0gICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICBl eHBlY3RPbmVTZWxlY3RlZFJhbmdlKDEsIDMsIDEsIDMpOwogICAgICAgICAg ICAgfSk7CisgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgIGRlc2NyaWJl KCd3aGVuIGEgY29sdW1uIGlzIHNlbGVjdGVkJywgZnVuY3Rpb24gKCkgewot ICAgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKLSAgICAg ICAgICAgICAgICB2YXIgcmFuZ2UgPSBuZXcgU2xpY2suUmFuZ2UoMCwgMiwg OSwgMik7Ci0gICAgICAgICAgICAgICAgZ3JpZC5zZXRBY3RpdmVDZWxsKDAs IDIpOwotICAgICAgICAgICAgICAgIGdyaWQuZ2V0U2VsZWN0aW9uTW9kZWwo KS5zZXRTZWxlY3RlZFJhbmdlcyhbcmFuZ2VdKTsKLSAgICAgICAgICAgICAg ICBwcmVzc1NoaWZ0UGx1c0tleShLRVlfTEVGVCk7Ci0gICAgICAgICAgICAg IH0pOworICAgICAgICAgIGRlc2NyaWJlKCd3aGVuIGEgY29sdW1uIGlzIHNl bGVjdGVkJywgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgYmVmb3JlRWFj aChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgIHZhciByYW5nZSA9IG5l dyBTbGljay5SYW5nZSgwLCAyLCA5LCAyKTsKKyAgICAgICAgICAgICAgZ3Jp ZC5zZXRBY3RpdmVDZWxsKDAsIDIpOworICAgICAgICAgICAgICBncmlkLmdl dFNlbGVjdGlvbk1vZGVsKCkuc2V0U2VsZWN0ZWRSYW5nZXMoW3JhbmdlXSk7 CisgICAgICAgICAgICAgIHByZXNzU2hpZnRQbHVzS2V5KEtFWV9MRUZUKTsK KyAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAgIGl0KCdpbmNyZWFz ZXMgdGhlIHJhbmdlIGJ5IG9uZSBjb2x1bW4gdG8gdGhlIGxlZnQnLCBmdW5j dGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZXhwZWN0T25lU2VsZWN0ZWRS YW5nZSgwLCAxLCA5LCAyKTsKLSAgICAgICAgICAgICAgfSk7CisgICAgICAg ICAgICBpdCgnaW5jcmVhc2VzIHRoZSByYW5nZSBieSBvbmUgY29sdW1uIHRv IHRoZSBsZWZ0JywgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICBleHBl Y3RPbmVTZWxlY3RlZFJhbmdlKDAsIDEsIDksIDIpOworICAgICAgICAgICAg fSk7CiAKLSAgICAgICAgICAgICAgaXQoJ3Nob3VsZCBzY3JvbGwgcHJldmlv dXMgY29sdW1uIGludG8gdmlldycsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAg ICAgICAgICBleHBlY3Qoc2Nyb2xsQ29sdW1uSW50b1ZpZXdTcHkpLnRvSGF2 ZUJlZW5DYWxsZWRXaXRoKDEpOwotICAgICAgICAgICAgICAgIGV4cGVjdChz Y3JvbGxSb3dJbnRvVmlld1NweSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTsK LSAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgnc2hvdWxkIHNj cm9sbCBwcmV2aW91cyBjb2x1bW4gaW50byB2aWV3JywgZnVuY3Rpb24gKCkg eworICAgICAgICAgICAgICBleHBlY3Qoc2Nyb2xsQ29sdW1uSW50b1ZpZXdT cHkpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKDEpOworICAgICAgICAgICAgICBl eHBlY3Qoc2Nyb2xsUm93SW50b1ZpZXdTcHkpLm5vdC50b0hhdmVCZWVuQ2Fs bGVkKCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICB9KTsKKyAgICAg ICAgfSk7CiAKLSAgICAgICAgICBkZXNjcmliZSgndGhlIHVwIGFycm93Jywg ZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgZGVzY3JpYmUoJ3doZW4gYSBj ZWxsIGlzIHNlbGVjdGVkJywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAg ICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICB2 YXIgcmFuZ2UgPSBuZXcgU2xpY2suUmFuZ2UoMiwgMik7Ci0gICAgICAgICAg ICAgICAgZ3JpZC5zZXRBY3RpdmVDZWxsKDIsIDIpOwotICAgICAgICAgICAg ICAgIGdyaWQuZ2V0U2VsZWN0aW9uTW9kZWwoKS5zZXRTZWxlY3RlZFJhbmdl cyhbcmFuZ2VdKTsKLSAgICAgICAgICAgICAgICBwcmVzc1NoaWZ0UGx1c0tl eShLRVlfVVApOwotICAgICAgICAgICAgICB9KTsKKyAgICAgICAgZGVzY3Jp YmUoJ3RoZSB1cCBhcnJvdycsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICBk ZXNjcmliZSgnd2hlbiBhIGNlbGwgaXMgc2VsZWN0ZWQnLCBmdW5jdGlvbiAo KSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKKyAg ICAgICAgICAgICAgdmFyIHJhbmdlID0gbmV3IFNsaWNrLlJhbmdlKDIsIDIp OworICAgICAgICAgICAgICBncmlkLnNldEFjdGl2ZUNlbGwoMiwgMik7Cisg ICAgICAgICAgICAgIGdyaWQuZ2V0U2VsZWN0aW9uTW9kZWwoKS5zZXRTZWxl Y3RlZFJhbmdlcyhbcmFuZ2VdKTsKKyAgICAgICAgICAgICAgcHJlc3NTaGlm dFBsdXNLZXkoS0VZX1VQKTsKKyAgICAgICAgICAgIH0pOwogCi0gICAgICAg ICAgICAgIGl0KCdpbmNyZWFzZXMgdGhlIHJhbmdlIGJ5IG9uZSB1cCcsIGZ1 bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgICBleHBlY3RPbmVTZWxlY3Rl ZFJhbmdlKDEsIDIsIDIsIDIpOwotICAgICAgICAgICAgICB9KTsKKyAgICAg ICAgICAgIGl0KCdpbmNyZWFzZXMgdGhlIHJhbmdlIGJ5IG9uZSB1cCcsIGZ1 bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgZXhwZWN0T25lU2VsZWN0ZWRS YW5nZSgxLCAyLCAyLCAyKTsKKyAgICAgICAgICAgIH0pOwogCi0gICAgICAg ICAgICAgIGl0KCdzaG91bGQgc2Nyb2xsIHRoZSByb3cgYWJvdmUgaW50byB2 aWV3JywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIGV4cGVjdChz Y3JvbGxSb3dJbnRvVmlld1NweSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoMSk7 Ci0gICAgICAgICAgICAgICAgZXhwZWN0KHNjcm9sbENvbHVtbkludG9WaWV3 U3B5KS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpOwotICAgICAgICAgICAgICB9 KTsKKyAgICAgICAgICAgIGl0KCdzaG91bGQgc2Nyb2xsIHRoZSByb3cgYWJv dmUgaW50byB2aWV3JywgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICBl eHBlY3Qoc2Nyb2xsUm93SW50b1ZpZXdTcHkpLnRvSGF2ZUJlZW5DYWxsZWRX aXRoKDEpOworICAgICAgICAgICAgICBleHBlY3Qoc2Nyb2xsQ29sdW1uSW50 b1ZpZXdTcHkpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7CisgICAgICAgICAg ICB9KTsKIAotICAgICAgICAgICAgICBpdCgncHJlc3NpbmcgdXAgYWdhaW4g Z3Jvd3MgdGhlIHJhbmdlIHVwJywgZnVuY3Rpb24gKCkgewotICAgICAgICAg ICAgICAgIHByZXNzU2hpZnRQbHVzS2V5KEtFWV9VUCk7CisgICAgICAgICAg ICBpdCgncHJlc3NpbmcgdXAgYWdhaW4gZ3Jvd3MgdGhlIHJhbmdlIHVwJywg ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICBwcmVzc1NoaWZ0UGx1c0tl eShLRVlfVVApOwogCi0gICAgICAgICAgICAgICAgZXhwZWN0T25lU2VsZWN0 ZWRSYW5nZSgwLCAyLCAyLCAyKTsKLSAgICAgICAgICAgICAgfSk7CisgICAg ICAgICAgICAgIGV4cGVjdE9uZVNlbGVjdGVkUmFuZ2UoMCwgMiwgMiwgMik7 CisgICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgICBpdCgndGhlbiBw cmVzc2luZyBkb3duIGtlZXBzIHRoZSBvcmlnaW5hbCBzZWxlY3Rpb24nLCBm dW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgcHJlc3NTaGlmdFBsdXNL ZXkoS0VZX0RPV04pOworICAgICAgICAgICAgaXQoJ3RoZW4gcHJlc3Npbmcg ZG93biBrZWVwcyB0aGUgb3JpZ2luYWwgc2VsZWN0aW9uJywgZnVuY3Rpb24g KCkgeworICAgICAgICAgICAgICBwcmVzc1NoaWZ0UGx1c0tleShLRVlfRE9X Tik7CiAKLSAgICAgICAgICAgICAgICBleHBlY3RPbmVTZWxlY3RlZFJhbmdl KDIsIDIsIDIsIDIpOwotICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg ICAgZXhwZWN0T25lU2VsZWN0ZWRSYW5nZSgyLCAyLCAyLCAyKTsKICAgICAg ICAgICAgIH0pOworICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICBkZXNj cmliZSgnd2hlbiBhIHJvdyBpcyBzZWxlY3RlZCcsIGZ1bmN0aW9uICgpIHsK LSAgICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7Ci0gICAg ICAgICAgICAgICAgdmFyIHJhbmdlID0gbmV3IFNsaWNrLlJhbmdlKDIsIDEs IDIsIDMpOwotICAgICAgICAgICAgICAgIGdyaWQuc2V0QWN0aXZlQ2VsbCgy LCAxKTsKLSAgICAgICAgICAgICAgICBncmlkLmdldFNlbGVjdGlvbk1vZGVs KCkuc2V0U2VsZWN0ZWRSYW5nZXMoW3JhbmdlXSk7Ci0gICAgICAgICAgICAg ICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX1VQKTsKLSAgICAgICAgICAgICAg fSk7CisgICAgICAgICAgZGVzY3JpYmUoJ3doZW4gYSByb3cgaXMgc2VsZWN0 ZWQnLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBiZWZvcmVFYWNoKGZ1 bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgdmFyIHJhbmdlID0gbmV3IFNs aWNrLlJhbmdlKDIsIDEsIDIsIDMpOworICAgICAgICAgICAgICBncmlkLnNl dEFjdGl2ZUNlbGwoMiwgMSk7CisgICAgICAgICAgICAgIGdyaWQuZ2V0U2Vs ZWN0aW9uTW9kZWwoKS5zZXRTZWxlY3RlZFJhbmdlcyhbcmFuZ2VdKTsKKyAg ICAgICAgICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX1VQKTsKKyAgICAg ICAgICAgIH0pOwogCi0gICAgICAgICAgICAgIGl0KCdpbmNyZWFzZXMgdGhl IHJhbmdlIGJ5IG9uZSByb3cgdXAnLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAg ICAgICAgICAgZXhwZWN0T25lU2VsZWN0ZWRSYW5nZSgxLCAxLCAyLCAzKTsK LSAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgnaW5jcmVhc2Vz IHRoZSByYW5nZSBieSBvbmUgcm93IHVwJywgZnVuY3Rpb24gKCkgeworICAg ICAgICAgICAgICBleHBlY3RPbmVTZWxlY3RlZFJhbmdlKDEsIDEsIDIsIDMp OworICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgaXQoJ3Nob3Vs ZCBzY3JvbGwgdGhlIHJvdyBhYm92ZSBpbnRvIHZpZXcnLCBmdW5jdGlvbiAo KSB7Ci0gICAgICAgICAgICAgICAgZXhwZWN0KHNjcm9sbFJvd0ludG9WaWV3 U3B5KS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgxKTsKLSAgICAgICAgICAgICAg ICBleHBlY3Qoc2Nyb2xsQ29sdW1uSW50b1ZpZXdTcHkpLm5vdC50b0hhdmVC ZWVuQ2FsbGVkKCk7Ci0gICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg aXQoJ3Nob3VsZCBzY3JvbGwgdGhlIHJvdyBhYm92ZSBpbnRvIHZpZXcnLCBm dW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgIGV4cGVjdChzY3JvbGxSb3dJ bnRvVmlld1NweSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoMSk7CisgICAgICAg ICAgICAgIGV4cGVjdChzY3JvbGxDb2x1bW5JbnRvVmlld1NweSkubm90LnRv SGF2ZUJlZW5DYWxsZWQoKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICAg IH0pOworICAgICAgICB9KTsKIAotICAgICAgICAgIGRlc2NyaWJlKCd0aGUg ZG93biBhcnJvdycsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIGRlc2Ny aWJlKCd3aGVuIGEgY2VsbCBpcyBzZWxlY3RlZCcsIGZ1bmN0aW9uICgpIHsK LSAgICAgICAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7Ci0gICAg ICAgICAgICAgICAgdmFyIHJhbmdlID0gbmV3IFNsaWNrLlJhbmdlKDIsIDIp OwotICAgICAgICAgICAgICAgIGdyaWQuc2V0QWN0aXZlQ2VsbCgyLCAyKTsK LSAgICAgICAgICAgICAgICBncmlkLmdldFNlbGVjdGlvbk1vZGVsKCkuc2V0 U2VsZWN0ZWRSYW5nZXMoW3JhbmdlXSk7Ci0gICAgICAgICAgICAgICAgcHJl c3NTaGlmdFBsdXNLZXkoS0VZX0RPV04pOwotICAgICAgICAgICAgICB9KTsK KyAgICAgICAgZGVzY3JpYmUoJ3RoZSBkb3duIGFycm93JywgZnVuY3Rpb24g KCkgeworICAgICAgICAgIGRlc2NyaWJlKCd3aGVuIGEgY2VsbCBpcyBzZWxl Y3RlZCcsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2go ZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICB2YXIgcmFuZ2UgPSBuZXcg U2xpY2suUmFuZ2UoMiwgMik7CisgICAgICAgICAgICAgIGdyaWQuc2V0QWN0 aXZlQ2VsbCgyLCAyKTsKKyAgICAgICAgICAgICAgZ3JpZC5nZXRTZWxlY3Rp b25Nb2RlbCgpLnNldFNlbGVjdGVkUmFuZ2VzKFtyYW5nZV0pOworICAgICAg ICAgICAgICBwcmVzc1NoaWZ0UGx1c0tleShLRVlfRE9XTik7CisgICAgICAg ICAgICB9KTsKIAotICAgICAgICAgICAgICBpdCgnaW5jcmVhc2VzIHRoZSBy YW5nZSBieSBvbmUgZG93bicsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAg ICAgICBleHBlY3RPbmVTZWxlY3RlZFJhbmdlKDIsIDIsIDMsIDIpOwotICAg ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGl0KCdpbmNyZWFzZXMgdGhl IHJhbmdlIGJ5IG9uZSBkb3duJywgZnVuY3Rpb24gKCkgeworICAgICAgICAg ICAgICBleHBlY3RPbmVTZWxlY3RlZFJhbmdlKDIsIDIsIDMsIDIpOworICAg ICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgICAgaXQoJ3Nob3VsZCBzY3Jv bGwgdGhlIHJvdyBiZWxvdyBpbnRvIHZpZXcnLCBmdW5jdGlvbiAoKSB7Ci0g ICAgICAgICAgICAgICAgZXhwZWN0KHNjcm9sbFJvd0ludG9WaWV3U3B5KS50 b0hhdmVCZWVuQ2FsbGVkV2l0aCgzKTsKLSAgICAgICAgICAgICAgICBleHBl Y3Qoc2Nyb2xsQ29sdW1uSW50b1ZpZXdTcHkpLm5vdC50b0hhdmVCZWVuQ2Fs bGVkKCk7Ci0gICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgaXQoJ3No b3VsZCBzY3JvbGwgdGhlIHJvdyBiZWxvdyBpbnRvIHZpZXcnLCBmdW5jdGlv biAoKSB7CisgICAgICAgICAgICAgIGV4cGVjdChzY3JvbGxSb3dJbnRvVmll d1NweSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoMyk7CisgICAgICAgICAgICAg IGV4cGVjdChzY3JvbGxDb2x1bW5JbnRvVmlld1NweSkubm90LnRvSGF2ZUJl ZW5DYWxsZWQoKTsKKyAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICAg IGl0KCdwcmVzc2luZyBkb3duIGFnYWluIGdyb3dzIHRoZSByYW5nZSBkb3du JywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICAgIHByZXNzU2hpZnRQ bHVzS2V5KEtFWV9ET1dOKTsKKyAgICAgICAgICAgIGl0KCdwcmVzc2luZyBk b3duIGFnYWluIGdyb3dzIHRoZSByYW5nZSBkb3duJywgZnVuY3Rpb24gKCkg eworICAgICAgICAgICAgICBwcmVzc1NoaWZ0UGx1c0tleShLRVlfRE9XTik7 CiAKLSAgICAgICAgICAgICAgICBleHBlY3RPbmVTZWxlY3RlZFJhbmdlKDIs IDIsIDQsIDIpOwotICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg ZXhwZWN0T25lU2VsZWN0ZWRSYW5nZSgyLCAyLCA0LCAyKTsKKyAgICAgICAg ICAgIH0pOwogCi0gICAgICAgICAgICAgIGl0KCd0aGVuIHByZXNzaW5nIHVw IGtlZXBzIHRoZSBvcmlnaW5hbCBzZWxlY3Rpb24nLCBmdW5jdGlvbiAoKSB7 Ci0gICAgICAgICAgICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX1VQKTsK KyAgICAgICAgICAgIGl0KCd0aGVuIHByZXNzaW5nIHVwIGtlZXBzIHRoZSBv cmlnaW5hbCBzZWxlY3Rpb24nLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg ICAgIHByZXNzU2hpZnRQbHVzS2V5KEtFWV9VUCk7CiAKLSAgICAgICAgICAg ICAgICBleHBlY3RPbmVTZWxlY3RlZFJhbmdlKDIsIDIsIDIsIDIpOwotICAg ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgZXhwZWN0T25lU2VsZWN0 ZWRSYW5nZSgyLCAyLCAyLCAyKTsKICAgICAgICAgICAgIH0pOworICAgICAg ICAgIH0pOwogCi0gICAgICAgICAgICBkZXNjcmliZSgnd2hlbiBhIHJvdyBp cyBzZWxlY3RlZCcsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgICAgYmVm b3JlRWFjaChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgdmFyIHJh bmdlID0gbmV3IFNsaWNrLlJhbmdlKDIsIDEsIDIsIDMpOwotICAgICAgICAg ICAgICAgIGdyaWQuc2V0QWN0aXZlQ2VsbCgyLCAxKTsKLSAgICAgICAgICAg ICAgICBncmlkLmdldFNlbGVjdGlvbk1vZGVsKCkuc2V0U2VsZWN0ZWRSYW5n ZXMoW3JhbmdlXSk7Ci0gICAgICAgICAgICAgICAgcHJlc3NTaGlmdFBsdXNL ZXkoS0VZX0RPV04pOwotICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICBk ZXNjcmliZSgnd2hlbiBhIHJvdyBpcyBzZWxlY3RlZCcsIGZ1bmN0aW9uICgp IHsKKyAgICAgICAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgeworICAg ICAgICAgICAgICB2YXIgcmFuZ2UgPSBuZXcgU2xpY2suUmFuZ2UoMiwgMSwg MiwgMyk7CisgICAgICAgICAgICAgIGdyaWQuc2V0QWN0aXZlQ2VsbCgyLCAx KTsKKyAgICAgICAgICAgICAgZ3JpZC5nZXRTZWxlY3Rpb25Nb2RlbCgpLnNl dFNlbGVjdGVkUmFuZ2VzKFtyYW5nZV0pOworICAgICAgICAgICAgICBwcmVz c1NoaWZ0UGx1c0tleShLRVlfRE9XTik7CisgICAgICAgICAgICB9KTsKIAot ICAgICAgICAgICAgICBpdCgnaW5jcmVhc2VzIHRoZSByYW5nZSBieSBvbmUg cm93IGRvd24nLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgICAgICAgZXhw ZWN0T25lU2VsZWN0ZWRSYW5nZSgyLCAxLCAzLCAzKTsKLSAgICAgICAgICAg ICAgfSk7CisgICAgICAgICAgICBpdCgnaW5jcmVhc2VzIHRoZSByYW5nZSBi eSBvbmUgcm93IGRvd24nLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAg IGV4cGVjdE9uZVNlbGVjdGVkUmFuZ2UoMiwgMSwgMywgMyk7CisgICAgICAg ICAgICB9KTsKIAotICAgICAgICAgICAgICBpdCgnc2hvdWxkIHNjcm9sbCB0 aGUgcm93IGJlbG93IGludG8gdmlldycsIGZ1bmN0aW9uICgpIHsKLSAgICAg ICAgICAgICAgICBleHBlY3Qoc2Nyb2xsUm93SW50b1ZpZXdTcHkpLnRvSGF2 ZUJlZW5DYWxsZWRXaXRoKDMpOwotICAgICAgICAgICAgICAgIGV4cGVjdChz Y3JvbGxDb2x1bW5JbnRvVmlld1NweSkubm90LnRvSGF2ZUJlZW5DYWxsZWQo KTsKLSAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBpdCgnc2hvdWxk IHNjcm9sbCB0aGUgcm93IGJlbG93IGludG8gdmlldycsIGZ1bmN0aW9uICgp IHsKKyAgICAgICAgICAgICAgZXhwZWN0KHNjcm9sbFJvd0ludG9WaWV3U3B5 KS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgzKTsKKyAgICAgICAgICAgICAgZXhw ZWN0KHNjcm9sbENvbHVtbkludG9WaWV3U3B5KS5ub3QudG9IYXZlQmVlbkNh bGxlZCgpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgfSk7CisgICAg ICAgIH0pOwogCi0gICAgICAgICAgZGVzY3JpYmUoJ3JlY3Rhbmd1bGFyIHNl bGVjdGlvbiB3b3JrcycsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgZGVzY3Jp YmUoJ3JlY3Rhbmd1bGFyIHNlbGVjdGlvbiB3b3JrcycsIGZ1bmN0aW9uICgp IHsKIAotICAgICAgICAgICAgaXQoJ2luIHRoZSBkb3duLWFuZC1yaWdodHdh cmQgZGlyZWN0aW9uJywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICB2 YXIgcmFuZ2UgPSBuZXcgU2xpY2suUmFuZ2UoMSwgMSk7Ci0gICAgICAgICAg ICAgIGdyaWQuc2V0QWN0aXZlQ2VsbCgxLCAxKTsKLSAgICAgICAgICAgICAg Z3JpZC5nZXRTZWxlY3Rpb25Nb2RlbCgpLnNldFNlbGVjdGVkUmFuZ2VzKFty YW5nZV0pOworICAgICAgICAgIGl0KCdpbiB0aGUgZG93bi1hbmQtcmlnaHR3 YXJkIGRpcmVjdGlvbicsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHZh ciByYW5nZSA9IG5ldyBTbGljay5SYW5nZSgxLCAxKTsKKyAgICAgICAgICAg IGdyaWQuc2V0QWN0aXZlQ2VsbCgxLCAxKTsKKyAgICAgICAgICAgIGdyaWQu Z2V0U2VsZWN0aW9uTW9kZWwoKS5zZXRTZWxlY3RlZFJhbmdlcyhbcmFuZ2Vd KTsKIAotICAgICAgICAgICAgICBwcmVzc1NoaWZ0UGx1c0tleShLRVlfRE9X Tik7Ci0gICAgICAgICAgICAgIHByZXNzU2hpZnRQbHVzS2V5KEtFWV9ET1dO KTsKLSAgICAgICAgICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX0RPV04p OwotICAgICAgICAgICAgICBwcmVzc1NoaWZ0UGx1c0tleShLRVlfUklHSFQp OwotICAgICAgICAgICAgICBwcmVzc1NoaWZ0UGx1c0tleShLRVlfUklHSFQp OworICAgICAgICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX0RPV04pOwor ICAgICAgICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX0RPV04pOworICAg ICAgICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX0RPV04pOworICAgICAg ICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX1JJR0hUKTsKKyAgICAgICAg ICAgIHByZXNzU2hpZnRQbHVzS2V5KEtFWV9SSUdIVCk7CiAKLSAgICAgICAg ICAgICAgZXhwZWN0T25lU2VsZWN0ZWRSYW5nZSgxLCAxLCA0LCAzKTsKLSAg ICAgICAgICAgIH0pOworICAgICAgICAgICAgZXhwZWN0T25lU2VsZWN0ZWRS YW5nZSgxLCAxLCA0LCAzKTsKKyAgICAgICAgICB9KTsKIAotICAgICAgICAg ICAgaXQoJ2luIHRoZSB1cC1hbmQtbGVmdHdhcmQgZGlyZWN0aW9uJywgZnVu Y3Rpb24gKCkgewotICAgICAgICAgICAgICB2YXIgcmFuZ2UgPSBuZXcgU2xp Y2suUmFuZ2UoNCwgMyk7Ci0gICAgICAgICAgICAgIGdyaWQuc2V0QWN0aXZl Q2VsbCg0LCAzKTsKLSAgICAgICAgICAgICAgZ3JpZC5nZXRTZWxlY3Rpb25N b2RlbCgpLnNldFNlbGVjdGVkUmFuZ2VzKFtyYW5nZV0pOworICAgICAgICAg IGl0KCdpbiB0aGUgdXAtYW5kLWxlZnR3YXJkIGRpcmVjdGlvbicsIGZ1bmN0 aW9uICgpIHsKKyAgICAgICAgICAgIHZhciByYW5nZSA9IG5ldyBTbGljay5S YW5nZSg0LCAzKTsKKyAgICAgICAgICAgIGdyaWQuc2V0QWN0aXZlQ2VsbCg0 LCAzKTsKKyAgICAgICAgICAgIGdyaWQuZ2V0U2VsZWN0aW9uTW9kZWwoKS5z ZXRTZWxlY3RlZFJhbmdlcyhbcmFuZ2VdKTsKIAotICAgICAgICAgICAgICBw cmVzc1NoaWZ0UGx1c0tleShLRVlfVVApOwotICAgICAgICAgICAgICBwcmVz c1NoaWZ0UGx1c0tleShLRVlfVVApOwotICAgICAgICAgICAgICBwcmVzc1No aWZ0UGx1c0tleShLRVlfVVApOwotICAgICAgICAgICAgICBwcmVzc1NoaWZ0 UGx1c0tleShLRVlfTEVGVCk7Ci0gICAgICAgICAgICAgIHByZXNzU2hpZnRQ bHVzS2V5KEtFWV9MRUZUKTsKKyAgICAgICAgICAgIHByZXNzU2hpZnRQbHVz S2V5KEtFWV9VUCk7CisgICAgICAgICAgICBwcmVzc1NoaWZ0UGx1c0tleShL RVlfVVApOworICAgICAgICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX1VQ KTsKKyAgICAgICAgICAgIHByZXNzU2hpZnRQbHVzS2V5KEtFWV9MRUZUKTsK KyAgICAgICAgICAgIHByZXNzU2hpZnRQbHVzS2V5KEtFWV9MRUZUKTsKIAot ICAgICAgICAgICAgICBleHBlY3RPbmVTZWxlY3RlZFJhbmdlKDEsIDEsIDQs IDMpOwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBleHBlY3RPbmVT ZWxlY3RlZFJhbmdlKDEsIDEsIDQsIDMpOworICAgICAgICAgIH0pOwogCi0g ICAgICAgICAgICBpdCgnaW4gdGhlIHVwLWFuZC1yaWdodHdhcmQgZGlyZWN0 aW9uJywgZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICB2YXIgcmFuZ2Ug PSBuZXcgU2xpY2suUmFuZ2UoNCwgMSk7Ci0gICAgICAgICAgICAgIGdyaWQu c2V0QWN0aXZlQ2VsbCg0LCAxKTsKLSAgICAgICAgICAgICAgZ3JpZC5nZXRT ZWxlY3Rpb25Nb2RlbCgpLnNldFNlbGVjdGVkUmFuZ2VzKFtyYW5nZV0pOwor ICAgICAgICAgIGl0KCdpbiB0aGUgdXAtYW5kLXJpZ2h0d2FyZCBkaXJlY3Rp b24nLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB2YXIgcmFuZ2UgPSBu ZXcgU2xpY2suUmFuZ2UoNCwgMSk7CisgICAgICAgICAgICBncmlkLnNldEFj dGl2ZUNlbGwoNCwgMSk7CisgICAgICAgICAgICBncmlkLmdldFNlbGVjdGlv bk1vZGVsKCkuc2V0U2VsZWN0ZWRSYW5nZXMoW3JhbmdlXSk7CiAKLSAgICAg ICAgICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX1VQKTsKLSAgICAgICAg ICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX1VQKTsKLSAgICAgICAgICAg ICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX1VQKTsKLSAgICAgICAgICAgICAg cHJlc3NTaGlmdFBsdXNLZXkoS0VZX1JJR0hUKTsKLSAgICAgICAgICAgICAg cHJlc3NTaGlmdFBsdXNLZXkoS0VZX1JJR0hUKTsKKyAgICAgICAgICAgIHBy ZXNzU2hpZnRQbHVzS2V5KEtFWV9VUCk7CisgICAgICAgICAgICBwcmVzc1No aWZ0UGx1c0tleShLRVlfVVApOworICAgICAgICAgICAgcHJlc3NTaGlmdFBs dXNLZXkoS0VZX1VQKTsKKyAgICAgICAgICAgIHByZXNzU2hpZnRQbHVzS2V5 KEtFWV9SSUdIVCk7CisgICAgICAgICAgICBwcmVzc1NoaWZ0UGx1c0tleShL RVlfUklHSFQpOwogCi0gICAgICAgICAgICAgIGV4cGVjdE9uZVNlbGVjdGVk UmFuZ2UoMSwgMSwgNCwgMyk7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAg ICAgIGV4cGVjdE9uZVNlbGVjdGVkUmFuZ2UoMSwgMSwgNCwgMyk7CisgICAg ICAgICAgfSk7CiAKLSAgICAgICAgICAgIGl0KCdpbiB0aGUgZG93bi1hbmQt bGVmdHdhcmQgZGlyZWN0aW9uJywgZnVuY3Rpb24gKCkgewotICAgICAgICAg ICAgICB2YXIgcmFuZ2UgPSBuZXcgU2xpY2suUmFuZ2UoMSwgMyk7Ci0gICAg ICAgICAgICAgIGdyaWQuc2V0QWN0aXZlQ2VsbCgxLCAzKTsKLSAgICAgICAg ICAgICAgZ3JpZC5nZXRTZWxlY3Rpb25Nb2RlbCgpLnNldFNlbGVjdGVkUmFu Z2VzKFtyYW5nZV0pOworICAgICAgICAgIGl0KCdpbiB0aGUgZG93bi1hbmQt bGVmdHdhcmQgZGlyZWN0aW9uJywgZnVuY3Rpb24gKCkgeworICAgICAgICAg ICAgdmFyIHJhbmdlID0gbmV3IFNsaWNrLlJhbmdlKDEsIDMpOworICAgICAg ICAgICAgZ3JpZC5zZXRBY3RpdmVDZWxsKDEsIDMpOworICAgICAgICAgICAg Z3JpZC5nZXRTZWxlY3Rpb25Nb2RlbCgpLnNldFNlbGVjdGVkUmFuZ2VzKFty YW5nZV0pOwogCi0gICAgICAgICAgICAgIHByZXNzU2hpZnRQbHVzS2V5KEtF WV9ET1dOKTsKLSAgICAgICAgICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZ X0RPV04pOwotICAgICAgICAgICAgICBwcmVzc1NoaWZ0UGx1c0tleShLRVlf RE9XTik7Ci0gICAgICAgICAgICAgIHByZXNzU2hpZnRQbHVzS2V5KEtFWV9M RUZUKTsKLSAgICAgICAgICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX0xF RlQpOworICAgICAgICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX0RPV04p OworICAgICAgICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX0RPV04pOwor ICAgICAgICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX0RPV04pOworICAg ICAgICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX0xFRlQpOworICAgICAg ICAgICAgcHJlc3NTaGlmdFBsdXNLZXkoS0VZX0xFRlQpOwogCi0gICAgICAg ICAgICAgIGV4cGVjdE9uZVNlbGVjdGVkUmFuZ2UoMSwgMSwgNCwgMyk7Ci0g ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGV4cGVjdE9uZVNlbGVjdGVk UmFuZ2UoMSwgMSwgNCwgMyk7CiAgICAgICAgICAgfSk7CisgICAgICAgIH0p OwogCi0gICAgICAgICAgZGVzY3JpYmUoJ2FuZCB3ZSBhcmUgb24gYW4gZWRn ZScsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICAgIHZhciByYW5nZTsKKyAg ICAgICAgZGVzY3JpYmUoJ2FuZCB3ZSBhcmUgb24gYW4gZWRnZScsIGZ1bmN0 aW9uICgpIHsKKyAgICAgICAgICB2YXIgcmFuZ2U7CiAKLSAgICAgICAgICAg IGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgewotICAgICAgICAgICAgICByYW5n ZSA9IG5ldyBTbGljay5SYW5nZSgyLCAxKTsKLSAgICAgICAgICAgICAgZ3Jp ZC5zZXRBY3RpdmVDZWxsKDIsIDEpOwotICAgICAgICAgICAgICBncmlkLmdl dFNlbGVjdGlvbk1vZGVsKCkuc2V0U2VsZWN0ZWRSYW5nZXMoW3JhbmdlXSk7 Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0 aW9uICgpIHsKKyAgICAgICAgICAgIHJhbmdlID0gbmV3IFNsaWNrLlJhbmdl KDIsIDEpOworICAgICAgICAgICAgZ3JpZC5zZXRBY3RpdmVDZWxsKDIsIDEp OworICAgICAgICAgICAgZ3JpZC5nZXRTZWxlY3Rpb25Nb2RlbCgpLnNldFNl bGVjdGVkUmFuZ2VzKFtyYW5nZV0pOworICAgICAgICAgIH0pOwogCi0gICAg ICAgICAgICBpdCgnd2Ugc3RpbGwgaGF2ZSB0aGUgc2VsZWN0ZWQgcmFuZ2Ug YmVmb3JlIHdlIGFycm93ZWQnLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAg ICAgIHByZXNzU2hpZnRQbHVzS2V5KEtFWV9MRUZUKTsKLSAgICAgICAgICAg ICAgZXhwZWN0T25lU2VsZWN0ZWRSYW5nZSgyLCAxLCAyLCAxKTsKLSAgICAg ICAgICAgIH0pOworICAgICAgICAgIGl0KCd3ZSBzdGlsbCBoYXZlIHRoZSBz ZWxlY3RlZCByYW5nZSBiZWZvcmUgd2UgYXJyb3dlZCcsIGZ1bmN0aW9uICgp IHsKKyAgICAgICAgICAgIHByZXNzU2hpZnRQbHVzS2V5KEtFWV9MRUZUKTsK KyAgICAgICAgICAgIGV4cGVjdE9uZVNlbGVjdGVkUmFuZ2UoMiwgMSwgMiwg MSk7CiAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgICAgfSk7CiAg ICAgfSk7CisgIH0pOwogCi0gICAgZGVzY3JpYmUoJ3doZW4gd2UgZHJhZyBh bmQgZHJvcCcsIGZ1bmN0aW9uICgpIHsKLSAgICAgIHZhciBkZDsKLSAgICAg IC8vIFdlIGNvdWxkIG5vdCBmaW5kIGFuIGVsZWdhbnQgd2F5IHRvIGNhbGN1 bGF0ZSB0aGlzIHZhbHVlCi0gICAgICAvLyBhZnRlciBjaGFuZ2luZyB3aW5k b3cgc2l6ZSB3ZSBzYXcgdGhpcyB3YXMgYSBjb25zdGFudCB2YWx1ZQotICAg ICAgdmFyIG9mZnNldExlZnRDb2x1bW5zID0gMTAwOworICBkZXNjcmliZSgn d2hlbiB3ZSBkcmFnIGFuZCBkcm9wJywgZnVuY3Rpb24gKCkgeworICAgIHZh ciBkZDsKKyAgICAvLyBXZSBjb3VsZCBub3QgZmluZCBhbiBlbGVnYW50IHdh eSB0byBjYWxjdWxhdGUgdGhpcyB2YWx1ZQorICAgIC8vIGFmdGVyIGNoYW5n aW5nIHdpbmRvdyBzaXplIHdlIHNhdyB0aGlzIHdhcyBhIGNvbnN0YW50IHZh bHVlCisgICAgdmFyIG9mZnNldExlZnRDb2x1bW5zID0gMTAwOwogCi0gICAg ICBmdW5jdGlvbiBjZWxsVG9wUG9zaXRpb24oJGNlbGwsIHJvd051bWJlcikg ewotICAgICAgICByZXR1cm4gJChncmlkLmdldENhbnZhc05vZGUoKSkub2Zm c2V0KCkudG9wICsgJGNlbGxbMF0uc2Nyb2xsSGVpZ2h0ICogcm93TnVtYmVy OwotICAgICAgfQorICAgIGZ1bmN0aW9uIGNlbGxUb3BQb3NpdGlvbigkY2Vs bCwgcm93TnVtYmVyKSB7CisgICAgICByZXR1cm4gJChncmlkLmdldENhbnZh c05vZGUoKSkub2Zmc2V0KCkudG9wICsgJGNlbGxbMF0uc2Nyb2xsSGVpZ2h0 ICogcm93TnVtYmVyOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNlbGxMZWZ0 UG9zaXRpb24oY29sdW1uTnVtYmVyKSB7CisgICAgICByZXR1cm4gJChncmlk LmdldENhbnZhc05vZGUoKSkub2Zmc2V0KCkubGVmdCArIG9mZnNldExlZnRD b2x1bW5zICogY29sdW1uTnVtYmVyOworICAgIH0KIAotICAgICAgZnVuY3Rp b24gY2VsbExlZnRQb3NpdGlvbihjb2x1bW5OdW1iZXIpIHsKLSAgICAgICAg cmV0dXJuICQoZ3JpZC5nZXRDYW52YXNOb2RlKCkpLm9mZnNldCgpLmxlZnQg KyBvZmZzZXRMZWZ0Q29sdW1ucyAqIGNvbHVtbk51bWJlcjsKLSAgICAgIH0K KyAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKKyAgICAgIHZhciBpbml0 aWFsUG9zaXRpb24gPSB7Y2VsbDogMywgcm93OiA0fTsKKyAgICAgIHZhciAk Y2VsbCA9ICQoJCgnLnNsaWNrLWNlbGwubDMnKVtpbml0aWFsUG9zaXRpb24u cm93XSk7CisgICAgICB2YXIgZXZlbnQgPSB7CisgICAgICAgIHRhcmdldDog JGNlbGwsCisgICAgICAgIGlzUHJvcGFnYXRpb25TdG9wcGVkOiBqYXNtaW5l LmNyZWF0ZVNweSgnaXNQcm9wYWdhdGlvblN0b3BwZWQnKS5hbmQucmV0dXJu VmFsdWUoZmFsc2UpLAorICAgICAgICBpc0ltbWVkaWF0ZVByb3BhZ2F0aW9u U3RvcHBlZDogamFzbWluZS5jcmVhdGVTcHkoJ2lzSW1tZWRpYXRlUHJvcGFn YXRpb25TdG9wcGVkJykuYW5kLnJldHVyblZhbHVlKGZhbHNlKSwKKyAgICAg ICAgc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOiBqYXNtaW5lLmNyZWF0ZVNw eSgnc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uJykKKyAgICAgIH07CisKKyAg ICAgIGRkID0geworICAgICAgICBncmlkOiBncmlkLAorICAgICAgICBzdGFy dFg6IGNlbGxMZWZ0UG9zaXRpb24oaW5pdGlhbFBvc2l0aW9uLmNlbGwpLAor ICAgICAgICBzdGFydFk6IGNlbGxUb3BQb3NpdGlvbigkY2VsbCwgaW5pdGlh bFBvc2l0aW9uLnJvdykKKyAgICAgIH07CisKKyAgICAgIGdyaWQub25EcmFn U3RhcnQubm90aWZ5KGRkLCBldmVudCwgZ3JpZCk7CisgICAgfSk7CiAKKyAg ICBkZXNjcmliZSgnd2hlbiB0aGUgZHJvcCBoYXBwZW5zIG91dHNpZGUgb2Yg dGhlIGdyaWQnLCBmdW5jdGlvbiAoKSB7CiAgICAgICBiZWZvcmVFYWNoKGZ1 bmN0aW9uICgpIHsKLSAgICAgICAgdmFyIGluaXRpYWxQb3NpdGlvbiA9IHtj ZWxsOiAzLCByb3c6IDR9OwotICAgICAgICB2YXIgJGNlbGwgPSAkKCQoJy5z bGljay1jZWxsLmwzJylbaW5pdGlhbFBvc2l0aW9uLnJvd10pOworICAgICAg ICB2YXIgJGNlbGwgPSAkKCQoJy5zbGljay1jZWxsLmwxJylbMV0pOworICAg ICAgICB2YXIgZmluYWxQb3NpdGlvbiA9IHtjZWxsOiAxLCByb3c6IDF9Owor CiAgICAgICAgIHZhciBldmVudCA9IHsKICAgICAgICAgICB0YXJnZXQ6ICRj ZWxsLAogICAgICAgICAgIGlzUHJvcGFnYXRpb25TdG9wcGVkOiBqYXNtaW5l LmNyZWF0ZVNweSgnaXNQcm9wYWdhdGlvblN0b3BwZWQnKS5hbmQucmV0dXJu VmFsdWUoZmFsc2UpLAogICAgICAgICAgIGlzSW1tZWRpYXRlUHJvcGFnYXRp b25TdG9wcGVkOiBqYXNtaW5lLmNyZWF0ZVNweSgnaXNJbW1lZGlhdGVQcm9w YWdhdGlvblN0b3BwZWQnKS5hbmQucmV0dXJuVmFsdWUoZmFsc2UpLAotICAg ICAgICAgIHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbjogamFzbWluZS5jcmVh dGVTcHkoJ3N0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbicpCi0gICAgICAgIH07 CisgICAgICAgICAgc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOiBqYXNtaW5l LmNyZWF0ZVNweSgnc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uJyksCiAKLSAg ICAgICAgZGQgPSB7Ci0gICAgICAgICAgZ3JpZDogZ3JpZCwKLSAgICAgICAg ICBzdGFydFg6IGNlbGxMZWZ0UG9zaXRpb24oaW5pdGlhbFBvc2l0aW9uLmNl bGwpLAotICAgICAgICAgIHN0YXJ0WTogY2VsbFRvcFBvc2l0aW9uKCRjZWxs LCBpbml0aWFsUG9zaXRpb24ucm93KQorICAgICAgICAgIHBhZ2VYOiBjZWxs TGVmdFBvc2l0aW9uKGZpbmFsUG9zaXRpb24uY2VsbCksCisgICAgICAgICAg cGFnZVk6IGNlbGxUb3BQb3NpdGlvbigkY2VsbCwgZmluYWxQb3NpdGlvbi5y b3cpCiAgICAgICAgIH07CiAKLSAgICAgICAgZ3JpZC5vbkRyYWdTdGFydC5u b3RpZnkoZGQsIGV2ZW50LCBncmlkKTsKKyAgICAgICAgZ3JpZC5vbkRyYWcu bm90aWZ5KGRkLCBldmVudCwgZ3JpZCk7CisgICAgICAgICQod2luZG93KS5t b3VzZXVwKCk7CiAgICAgICB9KTsKKyAgICAgIGl0KCdzaG91bGQgY2FsbCBo YW5kbGVEcmFnRW5kIGZyb20gQ2VsbFJhbmdlU2VsZWN0b3InLCBmdW5jdGlv biAoKSB7CisgICAgICAgIHZhciBuZXdSYW5nZSA9IGdyaWQuZ2V0U2VsZWN0 aW9uTW9kZWwoKS5nZXRTZWxlY3RlZFJhbmdlcygpOwogCi0gICAgICBkZXNj cmliZSgnd2hlbiB0aGUgZHJvcCBoYXBwZW5zIG91dHNpZGUgb2YgdGhlIGdy aWQnLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGJlZm9yZUVhY2goZnVuY3Rp b24gKCkgewotICAgICAgICAgIHZhciAkY2VsbCA9ICQoJCgnLnNsaWNrLWNl bGwubDEnKVsxXSk7Ci0gICAgICAgICAgdmFyIGZpbmFsUG9zaXRpb24gPSB7 Y2VsbDogMSwgcm93OiAxfTsKLQotICAgICAgICAgIHZhciBldmVudCA9IHsK LSAgICAgICAgICAgIHRhcmdldDogJGNlbGwsCi0gICAgICAgICAgICBpc1By b3BhZ2F0aW9uU3RvcHBlZDogamFzbWluZS5jcmVhdGVTcHkoJ2lzUHJvcGFn YXRpb25TdG9wcGVkJykuYW5kLnJldHVyblZhbHVlKGZhbHNlKSwKLSAgICAg ICAgICAgIGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOiBqYXNtaW5l LmNyZWF0ZVNweSgnaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQnKS5h bmQucmV0dXJuVmFsdWUoZmFsc2UpLAotICAgICAgICAgICAgc3RvcEltbWVk aWF0ZVByb3BhZ2F0aW9uOiBqYXNtaW5lLmNyZWF0ZVNweSgnc3RvcEltbWVk aWF0ZVByb3BhZ2F0aW9uJyksCi0KLSAgICAgICAgICAgIHBhZ2VYOiBjZWxs TGVmdFBvc2l0aW9uKGZpbmFsUG9zaXRpb24uY2VsbCksCi0gICAgICAgICAg ICBwYWdlWTogY2VsbFRvcFBvc2l0aW9uKCRjZWxsLCBmaW5hbFBvc2l0aW9u LnJvdykKLSAgICAgICAgICB9OworICAgICAgICBleHBlY3QobmV3UmFuZ2Uu bGVuZ3RoKS50b0JlKDEpOwogCi0gICAgICAgICAgZ3JpZC5vbkRyYWcubm90 aWZ5KGRkLCBldmVudCwgZ3JpZCk7Ci0gICAgICAgICAgJCh3aW5kb3cpLm1v dXNldXAoKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIGl0KCdzaG91bGQgY2Fs bCBoYW5kbGVEcmFnRW5kIGZyb20gQ2VsbFJhbmdlU2VsZWN0b3InLCBmdW5j dGlvbiAoKSB7Ci0gICAgICAgICAgdmFyIG5ld1JhbmdlID0gZ3JpZC5nZXRT ZWxlY3Rpb25Nb2RlbCgpLmdldFNlbGVjdGVkUmFuZ2VzKCk7Ci0KLSAgICAg ICAgICBleHBlY3QobmV3UmFuZ2UubGVuZ3RoKS50b0JlKDEpOwotCi0gICAg ICAgICAgZXhwZWN0KG5ld1JhbmdlWzBdLmZyb21DZWxsKS50b0JlKDEpOwot ICAgICAgICAgIGV4cGVjdChuZXdSYW5nZVswXS50b0NlbGwpLnRvQmUoMyk7 Ci0gICAgICAgICAgZXhwZWN0KG5ld1JhbmdlWzBdLmZyb21Sb3cpLnRvQmUo MSk7Ci0gICAgICAgICAgZXhwZWN0KG5ld1JhbmdlWzBdLnRvUm93KS50b0Jl KDQpOwotICAgICAgICB9KTsKKyAgICAgICAgZXhwZWN0KG5ld1JhbmdlWzBd LmZyb21DZWxsKS50b0JlKDEpOworICAgICAgICBleHBlY3QobmV3UmFuZ2Vb MF0udG9DZWxsKS50b0JlKDMpOworICAgICAgICBleHBlY3QobmV3UmFuZ2Vb MF0uZnJvbVJvdykudG9CZSgxKTsKKyAgICAgICAgZXhwZWN0KG5ld1Jhbmdl WzBdLnRvUm93KS50b0JlKDQpOwogICAgICAgfSk7CiAgICAgfSk7CisgIH0p OwogCi0gICAgZGVzY3JpYmUoJ3doZW4gd2UgbW91c2UgdXAgYW5kIG5vIGRy YWcgYW5kIGRyb3Agb2NjdXJlZCcsIGZ1bmN0aW9uICgpIHsKLSAgICAgIGJl Zm9yZUVhY2goZnVuY3Rpb24gKCkgewotICAgICAgICBncmlkLm9uRHJhZ0Vu ZC5ub3RpZnkgPSBqYXNtaW5lLmNyZWF0ZVNweSgnbm90aWZ5Jyk7Ci0gICAg ICAgIGdyaWQub25EcmFnRW5kLm5vdGlmeS5jYWxscy5yZXNldCgpOwotICAg ICAgICAkKHdpbmRvdykubW91c2V1cCgpOwotICAgICAgfSk7CisgIGRlc2Ny aWJlKCd3aGVuIHdlIG1vdXNlIHVwIGFuZCBubyBkcmFnIGFuZCBkcm9wIG9j Y3VyZWQnLCBmdW5jdGlvbiAoKSB7CisgICAgYmVmb3JlRWFjaChmdW5jdGlv biAoKSB7CisgICAgICBncmlkLm9uRHJhZ0VuZC5ub3RpZnkgPSBqYXNtaW5l LmNyZWF0ZVNweSgnbm90aWZ5Jyk7CisgICAgICBncmlkLm9uRHJhZ0VuZC5u b3RpZnkuY2FsbHMucmVzZXQoKTsKKyAgICAgICQod2luZG93KS5tb3VzZXVw KCk7CisgICAgfSk7CiAKLSAgICAgIGl0KCdkbyBub3Qgbm90aWZ5IG9uRHJh Z0VuZCcsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgZXhwZWN0KGdyaWQub25E cmFnRW5kLm5vdGlmeSkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKQotICAgICAg fSk7CisgICAgaXQoJ2RvIG5vdCBub3RpZnkgb25EcmFnRW5kJywgZnVuY3Rp b24gKCkgeworICAgICAgZXhwZWN0KGdyaWQub25EcmFnRW5kLm5vdGlmeSku bm90LnRvSGF2ZUJlZW5DYWxsZWQoKQogICAgIH0pOworICB9KTsKKworICBk ZXNjcmliZSgnc2V0U2VsZWN0ZWRSb3dzJywgZnVuY3Rpb24gKCkgewogCi0g ICAgZGVzY3JpYmUoJ3NldFNlbGVjdGVkUm93cycsIGZ1bmN0aW9uICgpIHsK KyAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKKyAgICAgIGdyaWQuZ2V0 U2VsZWN0aW9uTW9kZWwoKS5zZXRTZWxlY3RlZFJhbmdlcygKKyAgICAgICAg W25ldyBTbGljay5SYW5nZSgxLCAxLCAxLCAxKV0KKyAgICAgICk7CisgICAg fSk7CiAKKyAgICBkZXNjcmliZSgnd2hlbiBwYXNzZWQgYW4gZW1wdHkgYXJy YXknLCBmdW5jdGlvbiAoKSB7CiAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9u ICgpIHsKLSAgICAgICAgZ3JpZC5nZXRTZWxlY3Rpb25Nb2RlbCgpLnNldFNl bGVjdGVkUmFuZ2VzKAotICAgICAgICAgIFtuZXcgU2xpY2suUmFuZ2UoMSwg MSwgMSwgMSldCi0gICAgICAgICk7CisgICAgICAgIGdyaWQuZ2V0U2VsZWN0 aW9uTW9kZWwoKS5zZXRTZWxlY3RlZFJvd3MoW10pOwogICAgICAgfSk7Ci0K LSAgICAgIGRlc2NyaWJlKCd3aGVuIHBhc3NlZCBhbiBlbXB0eSBhcnJheScs IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAo KSB7Ci0gICAgICAgICAgZ3JpZC5nZXRTZWxlY3Rpb25Nb2RlbCgpLnNldFNl bGVjdGVkUm93cyhbXSk7Ci0gICAgICAgIH0pOwotICAgICAgICBpdCgnY2xl YXJzIHJhbmdlcycsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICB2YXIgbmV3 UmFuZ2VzID0gZ3JpZC5nZXRTZWxlY3Rpb25Nb2RlbCgpLmdldFNlbGVjdGVk UmFuZ2VzKCk7Ci0gICAgICAgICAgZXhwZWN0KG5ld1Jhbmdlcy5sZW5ndGgp LnRvRXF1YWwoMCk7Ci0gICAgICAgIH0pOwotICAgICAgfSk7Ci0KLSAgICAg IGl0KCdzZXRzIHJhbmdlcyBjb3JyZXNwb25kaW5nIHRvIHJvd3MnLCBmdW5j dGlvbiAoKSB7Ci0gICAgICAgIGdyaWQuZ2V0U2VsZWN0aW9uTW9kZWwoKS5z ZXRTZWxlY3RlZFJvd3MoWzAsIDJdKTsKLQotICAgICAgICB2YXIgc2VsZWN0 ZWRSYW5nZXMgPSBncmlkLmdldFNlbGVjdGlvbk1vZGVsKCkuZ2V0U2VsZWN0 ZWRSYW5nZXMoKTsKLQotICAgICAgICBleHBlY3Qoc2VsZWN0ZWRSYW5nZXMu bGVuZ3RoKS50b0JlKDIpOwotICAgICAgICBleHBlY3RSYW5nZVRvTWF0Y2go c2VsZWN0ZWRSYW5nZXNbMF0sIDAsIDEsIDAsIDMpOwotICAgICAgICBleHBl Y3RSYW5nZVRvTWF0Y2goc2VsZWN0ZWRSYW5nZXNbMV0sIDIsIDEsIDIsIDMp OworICAgICAgaXQoJ2NsZWFycyByYW5nZXMnLCBmdW5jdGlvbiAoKSB7Cisg ICAgICAgIHZhciBuZXdSYW5nZXMgPSBncmlkLmdldFNlbGVjdGlvbk1vZGVs KCkuZ2V0U2VsZWN0ZWRSYW5nZXMoKTsKKyAgICAgICAgZXhwZWN0KG5ld1Jh bmdlcy5sZW5ndGgpLnRvRXF1YWwoMCk7CiAgICAgICB9KTsKICAgICB9KTsK IAotICAgIGZ1bmN0aW9uIHByZXNzS2V5KGtleUNvZGUpIHsKLSAgICAgIHZh ciBwcmVzc0V2ZW50ID0gbmV3ICQuRXZlbnQoImtleWRvd24iKTsKLSAgICAg IHByZXNzRXZlbnQud2hpY2ggPSBrZXlDb2RlOwotCi0gICAgICAkKGNvbnRh aW5lci5maW5kKCcuZ3JpZC1jYW52YXMnKSkudHJpZ2dlcihwcmVzc0V2ZW50 KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwcmVzc1NoaWZ0UGx1c0tleShr ZXlDb2RlKSB7Ci0gICAgICB2YXIgcHJlc3NFdmVudCA9IG5ldyAkLkV2ZW50 KCJrZXlkb3duIik7Ci0gICAgICBwcmVzc0V2ZW50LnNoaWZ0S2V5ID0gdHJ1 ZTsKLSAgICAgIHByZXNzRXZlbnQud2hpY2ggPSBrZXlDb2RlOwotCi0gICAg ICAkKGNvbnRhaW5lci5maW5kKCcuZ3JpZC1jYW52YXMnKSkudHJpZ2dlcihw cmVzc0V2ZW50KTsKLSAgICB9CisgICAgaXQoJ3NldHMgcmFuZ2VzIGNvcnJl c3BvbmRpbmcgdG8gcm93cycsIGZ1bmN0aW9uICgpIHsKKyAgICAgIGdyaWQu Z2V0U2VsZWN0aW9uTW9kZWwoKS5zZXRTZWxlY3RlZFJvd3MoWzAsIDJdKTsK IAotICAgIGZ1bmN0aW9uIGV4cGVjdE9uZVNlbGVjdGVkUmFuZ2UoZnJvbVJv dywgZnJvbUNlbGwsIHRvUm93LCB0b0NlbGwpIHsKICAgICAgIHZhciBzZWxl Y3RlZFJhbmdlcyA9IGdyaWQuZ2V0U2VsZWN0aW9uTW9kZWwoKS5nZXRTZWxl Y3RlZFJhbmdlcygpOwotICAgICAgZXhwZWN0KHNlbGVjdGVkUmFuZ2VzLmxl bmd0aCkudG9CZSgxKTsKLSAgICAgIGV4cGVjdFJhbmdlVG9NYXRjaChzZWxl Y3RlZFJhbmdlc1swXSwgZnJvbVJvdywgZnJvbUNlbGwsIHRvUm93LCB0b0Nl bGwpOwotICAgIH0KIAotICAgIGZ1bmN0aW9uIGV4cGVjdFJhbmdlVG9NYXRj aChyYW5nZSwgZnJvbVJvdywgZnJvbUNlbGwsIHRvUm93LCB0b0NlbGwpIHsK LSAgICAgIGV4cGVjdChyYW5nZS5mcm9tUm93KS50b0JlKGZyb21Sb3cpOwot ICAgICAgZXhwZWN0KHJhbmdlLnRvUm93KS50b0JlKHRvUm93KTsKLSAgICAg IGV4cGVjdChyYW5nZS5mcm9tQ2VsbCkudG9CZShmcm9tQ2VsbCk7Ci0gICAg ICBleHBlY3QocmFuZ2UudG9DZWxsKS50b0JlKHRvQ2VsbCk7Ci0gICAgfQor ICAgICAgZXhwZWN0KHNlbGVjdGVkUmFuZ2VzLmxlbmd0aCkudG9CZSgyKTsK KyAgICAgIGV4cGVjdFJhbmdlVG9NYXRjaChzZWxlY3RlZFJhbmdlc1swXSwg MCwgMSwgMCwgMyk7CisgICAgICBleHBlY3RSYW5nZVRvTWF0Y2goc2VsZWN0 ZWRSYW5nZXNbMV0sIDIsIDEsIDIsIDMpOworICAgIH0pOwogICB9KTsKLX0p Ci07ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorCisgIGZ1bmN0aW9u IHByZXNzS2V5KGtleUNvZGUpIHsKKyAgICB2YXIgcHJlc3NFdmVudCA9IG5l dyAkLkV2ZW50KCJrZXlkb3duIik7CisgICAgcHJlc3NFdmVudC53aGljaCA9 IGtleUNvZGU7CisKKyAgICAkKGNvbnRhaW5lci5maW5kKCcuZ3JpZC1jYW52 YXMnKSkudHJpZ2dlcihwcmVzc0V2ZW50KTsKKyAgfQorCisgIGZ1bmN0aW9u IHByZXNzU2hpZnRQbHVzS2V5KGtleUNvZGUpIHsKKyAgICB2YXIgcHJlc3NF dmVudCA9IG5ldyAkLkV2ZW50KCJrZXlkb3duIik7CisgICAgcHJlc3NFdmVu dC5zaGlmdEtleSA9IHRydWU7CisgICAgcHJlc3NFdmVudC53aGljaCA9IGtl eUNvZGU7CisKKyAgICAkKGNvbnRhaW5lci5maW5kKCcuZ3JpZC1jYW52YXMn KSkudHJpZ2dlcihwcmVzc0V2ZW50KTsKKyAgfQorCisgIGZ1bmN0aW9uIGV4 cGVjdE9uZVNlbGVjdGVkUmFuZ2UoZnJvbVJvdywgZnJvbUNlbGwsIHRvUm93 LCB0b0NlbGwpIHsKKyAgICB2YXIgc2VsZWN0ZWRSYW5nZXMgPSBncmlkLmdl dFNlbGVjdGlvbk1vZGVsKCkuZ2V0U2VsZWN0ZWRSYW5nZXMoKTsKKyAgICBl eHBlY3Qoc2VsZWN0ZWRSYW5nZXMubGVuZ3RoKS50b0JlKDEpOworICAgIGV4 cGVjdFJhbmdlVG9NYXRjaChzZWxlY3RlZFJhbmdlc1swXSwgZnJvbVJvdywg ZnJvbUNlbGwsIHRvUm93LCB0b0NlbGwpOworICB9CisKKyAgZnVuY3Rpb24g ZXhwZWN0UmFuZ2VUb01hdGNoKHJhbmdlLCBmcm9tUm93LCBmcm9tQ2VsbCwg dG9Sb3csIHRvQ2VsbCkgeworICAgIGV4cGVjdChyYW5nZS5mcm9tUm93KS50 b0JlKGZyb21Sb3cpOworICAgIGV4cGVjdChyYW5nZS50b1JvdykudG9CZSh0 b1Jvdyk7CisgICAgZXhwZWN0KHJhbmdlLmZyb21DZWxsKS50b0JlKGZyb21D ZWxsKTsKKyAgICBleHBlY3QocmFuZ2UudG9DZWxsKS50b0JlKHRvQ2VsbCk7 CisgIH0KK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNj cmlwdC9zbGlja2dyaWQvY2VsbF9zZWxlY3Rvcl9zcGVjLmpzIGIvd2ViL3Jl Z3Jlc3Npb24vamF2YXNjcmlwdC9zbGlja2dyaWQvY2VsbF9zZWxlY3Rvcl9z cGVjLmpzCmluZGV4IGVkN2MwYWVlLi5iMzJmZGY4MCAxMDA2NDQKLS0tIGEv d2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zbGlja2dyaWQvY2VsbF9zZWxl Y3Rvcl9zcGVjLmpzCisrKyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQv c2xpY2tncmlkL2NlbGxfc2VsZWN0b3Jfc3BlYy5qcwpAQCAtNyw3MSArNyw2 OSBAQAogLy8KIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKLWRlZmluZShbImpxdWVy eSIsCi0gICAgInNsaWNrZ3JpZC9zbGljay5ncmlkIiwKLSAgICAic291cmNl cy9zZWxlY3Rpb24veGNlbGxfc2VsZWN0aW9uX21vZGVsIiwKLSAgICAic291 cmNlcy9zbGlja2dyaWQvY2VsbF9zZWxlY3RvciIsCi0gICAgInNvdXJjZXMv c2VsZWN0aW9uL3JhbmdlX3NlbGVjdGlvbl9oZWxwZXIiCi0gIF0sCi0gIGZ1 bmN0aW9uICgkLCBTbGlja0dyaWQsIFhDZWxsU2VsZWN0aW9uTW9kZWwsIENl bGxTZWxlY3RvciwgUmFuZ2VTZWxlY3Rpb25IZWxwZXIpIHsKLSAgICBkZXNj cmliZSgiQ2VsbFNlbGVjdG9yIiwgZnVuY3Rpb24gKCkgewotICAgICAgdmFy IGNvbnRhaW5lciwgY29sdW1ucywgY2VsbFNlbGVjdG9yLCBkYXRhLCBjZWxs U2VsZWN0aW9uTW9kZWwsIGdyaWQ7Ci0gICAgICBiZWZvcmVFYWNoKGZ1bmN0 aW9uICgpIHsKLSAgICAgICAgY29udGFpbmVyID0gJCgiPGRpdj48L2Rpdj4i KTsKLSAgICAgICAgY29udGFpbmVyLmhlaWdodCg5OTk5KTsKLSAgICAgICAg Y29udGFpbmVyLndpZHRoKDk5OTkpOwotICAgICAgICBjb2x1bW5zID0gW3sK LSAgICAgICAgICBuYW1lOiAnc29tZS1jb2x1bW4tbmFtZScsCi0gICAgICAg IH0sIHsKLSAgICAgICAgICBuYW1lOiAnc2Vjb25kIGNvbHVtbicsCi0gICAg ICAgIH1dOworaW1wb3J0ICQgZnJvbSAianF1ZXJ5IjsKK2ltcG9ydCBTbGlj a0dyaWQgZnJvbSAic2xpY2tncmlkLmdyaWQiOworaW1wb3J0IFhDZWxsU2Vs ZWN0aW9uTW9kZWwgZnJvbSAic291cmNlcy9zZWxlY3Rpb24veGNlbGxfc2Vs ZWN0aW9uX21vZGVsIjsKK2ltcG9ydCBDZWxsU2VsZWN0b3IgZnJvbSAic291 cmNlcy9zbGlja2dyaWQvY2VsbF9zZWxlY3RvciI7CitpbXBvcnQgUmFuZ2VT ZWxlY3Rpb25IZWxwZXIgZnJvbSAic291cmNlcy9zZWxlY3Rpb24vcmFuZ2Vf c2VsZWN0aW9uX2hlbHBlciI7CiAKLSAgICAgICAgY2VsbFNlbGVjdG9yID0g bmV3IENlbGxTZWxlY3RvcigpOworZGVzY3JpYmUoIkNlbGxTZWxlY3RvciIs IGZ1bmN0aW9uICgpIHsKKyAgdmFyIGNvbnRhaW5lciwgY29sdW1ucywgY2Vs bFNlbGVjdG9yLCBkYXRhLCBjZWxsU2VsZWN0aW9uTW9kZWwsIGdyaWQ7Cisg IGJlZm9yZUVhY2goZnVuY3Rpb24gKCkgeworICAgIGNvbnRhaW5lciA9ICQo IjxkaXY+PC9kaXY+Iik7CisgICAgY29udGFpbmVyLmhlaWdodCg5OTk5KTsK KyAgICBjb250YWluZXIud2lkdGgoOTk5OSk7CisgICAgY29sdW1ucyA9IFt7 CisgICAgICBuYW1lOiAnc29tZS1jb2x1bW4tbmFtZScsCisgICAgfSwgewor ICAgICAgbmFtZTogJ3NlY29uZCBjb2x1bW4nLAorICAgIH1dOwogCi0gICAg ICAgIGRhdGEgPSBbXTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAx MDsgaSsrKSB7Ci0gICAgICAgICAgZGF0YS5wdXNoKHsnc29tZS1jb2x1bW4t bmFtZSc6ICdzb21lLXZhbHVlLScgKyBpLCAnc2Vjb25kIGNvbHVtbic6ICdz ZWNvbmQgdmFsdWUgJyArIGl9KTsKLSAgICAgICAgfQotICAgICAgICBncmlk ID0gbmV3IFNsaWNrR3JpZChjb250YWluZXIsIGRhdGEsIGNvbHVtbnMpOwor ICAgIGNlbGxTZWxlY3RvciA9IG5ldyBDZWxsU2VsZWN0b3IoKTsKIAotICAg ICAgICBjZWxsU2VsZWN0aW9uTW9kZWwgPSBuZXcgWENlbGxTZWxlY3Rpb25N b2RlbCgpOwotICAgICAgICBncmlkLnNldFNlbGVjdGlvbk1vZGVsKGNlbGxT ZWxlY3Rpb25Nb2RlbCk7CisgICAgZGF0YSA9IFtdOworICAgIGZvciAodmFy IGkgPSAwOyBpIDwgMTA7IGkrKykgeworICAgICAgZGF0YS5wdXNoKHsnc29t ZS1jb2x1bW4tbmFtZSc6ICdzb21lLXZhbHVlLScgKyBpLCAnc2Vjb25kIGNv bHVtbic6ICdzZWNvbmQgdmFsdWUgJyArIGl9KTsKKyAgICB9CisgICAgZ3Jp ZCA9IG5ldyBTbGljay5HcmlkKGNvbnRhaW5lciwgZGF0YSwgY29sdW1ucyk7 CiAKLSAgICAgICAgZ3JpZC5yZWdpc3RlclBsdWdpbihjZWxsU2VsZWN0b3Ip OwotICAgICAgICBncmlkLmludmFsaWRhdGUoKTsKKyAgICBjZWxsU2VsZWN0 aW9uTW9kZWwgPSBuZXcgWENlbGxTZWxlY3Rpb25Nb2RlbCgpOworICAgIGdy aWQuc2V0U2VsZWN0aW9uTW9kZWwoY2VsbFNlbGVjdGlvbk1vZGVsKTsKIAot ICAgICAgICAkKCJib2R5IikuYXBwZW5kKGNvbnRhaW5lcik7Ci0gICAgICB9 KTsKKyAgICBncmlkLnJlZ2lzdGVyUGx1Z2luKGNlbGxTZWxlY3Rvcik7Cisg ICAgZ3JpZC5pbnZhbGlkYXRlKCk7CiAKLSAgICAgIGFmdGVyRWFjaChmdW5j dGlvbiAoKSB7Ci0gICAgICAgICQoImJvZHkiKS5maW5kKGNvbnRhaW5lciku cmVtb3ZlKCk7Ci0gICAgICB9KTsKKyAgICAkKCJib2R5IikuYXBwZW5kKGNv bnRhaW5lcik7CisgIH0pOwogCi0gICAgICBkZXNjcmliZSgid2hlbiB0aGUg dXNlciBjbGlja3Mgb3IgdGFicyB0byBhIGNlbGwiLCBmdW5jdGlvbiAoKSB7 Ci0gICAgICAgIGl0KCJzZXRzIHRoZSBzZWxlY3RlZCByYW5nZSB0byB0aGF0 IGNlbGwiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgdmFyIHJvdyA9IDEs IGNvbHVtbiA9IDA7Ci0gICAgICAgICAgJChjb250YWluZXIuZmluZCgiLnNs aWNrLXJvdyAuc2xpY2stY2VsbC5sIiArIGNvbHVtbilbcm93XSkuY2xpY2so KTsKKyAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHsKKyAgICAkKCJib2R5Iiku ZmluZChjb250YWluZXIpLnJlbW92ZSgpOworICB9KTsKIAotICAgICAgICAg IHZhciBzZWxlY3RlZFJhbmdlcyA9IGNlbGxTZWxlY3Rpb25Nb2RlbC5nZXRT ZWxlY3RlZFJhbmdlcygpOwotICAgICAgICAgIGV4cGVjdChzZWxlY3RlZFJh bmdlcy5sZW5ndGgpLnRvQmUoMSk7Ci0gICAgICAgICAgZXhwZWN0KHNlbGVj dGVkUmFuZ2VzWzBdLmZyb21DZWxsKS50b0JlKDApOwotICAgICAgICAgIGV4 cGVjdChzZWxlY3RlZFJhbmdlc1swXS50b0NlbGwpLnRvQmUoMCk7Ci0gICAg ICAgICAgZXhwZWN0KHNlbGVjdGVkUmFuZ2VzWzBdLmZyb21Sb3cpLnRvQmUo MSk7Ci0gICAgICAgICAgZXhwZWN0KHNlbGVjdGVkUmFuZ2VzWzBdLnRvUm93 KS50b0JlKDEpOwotICAgICAgICB9KTsKKyAgZGVzY3JpYmUoIndoZW4gdGhl IHVzZXIgY2xpY2tzIG9yIHRhYnMgdG8gYSBjZWxsIiwgZnVuY3Rpb24gKCkg eworICAgIGl0KCJzZXRzIHRoZSBzZWxlY3RlZCByYW5nZSB0byB0aGF0IGNl bGwiLCBmdW5jdGlvbiAoKSB7CisgICAgICB2YXIgcm93ID0gMSwgY29sdW1u ID0gMDsKKyAgICAgICQoY29udGFpbmVyLmZpbmQoIi5zbGljay1yb3cgLnNs aWNrLWNlbGwubCIgKyBjb2x1bW4pW3Jvd10pLmNsaWNrKCk7CiAKLSAgICAg ICAgaXQoImRlc2VsZWN0cyBwcmV2aW91c2x5IHNlbGVjdGVkIHJhbmdlcyIs IGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICB2YXIgcm93MlJhbmdlID0gUmFu Z2VTZWxlY3Rpb25IZWxwZXIucmFuZ2VGb3JSb3coZ3JpZCwgMik7Ci0gICAg ICAgICAgdmFyIHJhbmdlcyA9IFJhbmdlU2VsZWN0aW9uSGVscGVyLmFkZFJh bmdlKGNlbGxTZWxlY3Rpb25Nb2RlbC5nZXRTZWxlY3RlZFJhbmdlcygpLAot ICAgICAgICAgICAgcm93MlJhbmdlKTsKLSAgICAgICAgICBjZWxsU2VsZWN0 aW9uTW9kZWwuc2V0U2VsZWN0ZWRSYW5nZXMocmFuZ2VzKTsKKyAgICAgIHZh ciBzZWxlY3RlZFJhbmdlcyA9IGNlbGxTZWxlY3Rpb25Nb2RlbC5nZXRTZWxl Y3RlZFJhbmdlcygpOworICAgICAgZXhwZWN0KHNlbGVjdGVkUmFuZ2VzLmxl bmd0aCkudG9CZSgxKTsKKyAgICAgIGV4cGVjdChzZWxlY3RlZFJhbmdlc1sw XS5mcm9tQ2VsbCkudG9CZSgwKTsKKyAgICAgIGV4cGVjdChzZWxlY3RlZFJh bmdlc1swXS50b0NlbGwpLnRvQmUoMCk7CisgICAgICBleHBlY3Qoc2VsZWN0 ZWRSYW5nZXNbMF0uZnJvbVJvdykudG9CZSgxKTsKKyAgICAgIGV4cGVjdChz ZWxlY3RlZFJhbmdlc1swXS50b1JvdykudG9CZSgxKTsKKyAgICB9KTsKKwor ICAgIGl0KCJkZXNlbGVjdHMgcHJldmlvdXNseSBzZWxlY3RlZCByYW5nZXMi LCBmdW5jdGlvbiAoKSB7CisgICAgICB2YXIgcm93MlJhbmdlID0gUmFuZ2VT ZWxlY3Rpb25IZWxwZXIucmFuZ2VGb3JSb3coZ3JpZCwgMik7CisgICAgICB2 YXIgcmFuZ2VzID0gUmFuZ2VTZWxlY3Rpb25IZWxwZXIuYWRkUmFuZ2UoY2Vs bFNlbGVjdGlvbk1vZGVsLmdldFNlbGVjdGVkUmFuZ2VzKCksCisgICAgICAg IHJvdzJSYW5nZSk7CisgICAgICBjZWxsU2VsZWN0aW9uTW9kZWwuc2V0U2Vs ZWN0ZWRSYW5nZXMocmFuZ2VzKTsKIAotICAgICAgICAgIHZhciByb3cgPSA0 LCBjb2x1bW4gPSAxOwotICAgICAgICAgICQoY29udGFpbmVyLmZpbmQoIi5z bGljay1yb3cgLnNsaWNrLWNlbGwubCIgKyBjb2x1bW4pW3Jvd10pLmNsaWNr KCk7CisgICAgICB2YXIgcm93ID0gNCwgY29sdW1uID0gMTsKKyAgICAgICQo Y29udGFpbmVyLmZpbmQoIi5zbGljay1yb3cgLnNsaWNrLWNlbGwubCIgKyBj b2x1bW4pW3Jvd10pLmNsaWNrKCk7CiAKLSAgICAgICAgICBleHBlY3QoUmFu Z2VTZWxlY3Rpb25IZWxwZXIuaXNSYW5nZVNlbGVjdGVkKGNlbGxTZWxlY3Rp b25Nb2RlbC5nZXRTZWxlY3RlZFJhbmdlcygpLCByb3cyUmFuZ2UpKQotICAg ICAgICAgICAgLnRvQmUoZmFsc2UpOwotICAgICAgICB9KTsKLSAgICAgIH0p OworICAgICAgZXhwZWN0KFJhbmdlU2VsZWN0aW9uSGVscGVyLmlzUmFuZ2VT ZWxlY3RlZChjZWxsU2VsZWN0aW9uTW9kZWwuZ2V0U2VsZWN0ZWRSYW5nZXMo KSwgcm93MlJhbmdlKSkKKyAgICAgICAgLnRvQmUoZmFsc2UpOwogICAgIH0p OwotICB9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisgIH0pOwor fSk7CmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3Ns aWNrZ3JpZC9ldmVudF9oYW5kbGVycy9oYW5kbGVfcXVlcnlfb3V0cHV0X2tl eWJvYXJkX2V2ZW50X3NwZWMuanMgYi93ZWIvcmVncmVzc2lvbi9qYXZhc2Ny aXB0L3NsaWNrZ3JpZC9ldmVudF9oYW5kbGVycy9oYW5kbGVfcXVlcnlfb3V0 cHV0X2tleWJvYXJkX2V2ZW50X3NwZWMuanMKaW5kZXggMTQ3NjgyMjcuLjg4 NGFlNDE1IDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0 L3NsaWNrZ3JpZC9ldmVudF9oYW5kbGVycy9oYW5kbGVfcXVlcnlfb3V0cHV0 X2tleWJvYXJkX2V2ZW50X3NwZWMuanMKKysrIGIvd2ViL3JlZ3Jlc3Npb24v amF2YXNjcmlwdC9zbGlja2dyaWQvZXZlbnRfaGFuZGxlcnMvaGFuZGxlX3F1 ZXJ5X291dHB1dF9rZXlib2FyZF9ldmVudF9zcGVjLmpzCkBAIC03LDEzNyAr NywxMzkgQEAKIC8vCiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCi1kZWZpbmUoWwot ICAgICdzb3VyY2VzL3NsaWNrZ3JpZC9ldmVudF9oYW5kbGVycy9oYW5kbGVf cXVlcnlfb3V0cHV0X2tleWJvYXJkX2V2ZW50JywKLSAgICAnc291cmNlcy9z ZWxlY3Rpb24vY2xpcGJvYXJkJywKLSAgICAnc291cmNlcy9zZWxlY3Rpb24v cmFuZ2Vfc2VsZWN0aW9uX2hlbHBlcicsCi0gICAgJ3NvdXJjZXMvc2VsZWN0 aW9uL3hjZWxsX3NlbGVjdGlvbl9tb2RlbCcsCi0gICAgJ3NsaWNrZ3JpZCcK LSAgXSwKLWZ1bmN0aW9uIChoYW5kbGVRdWVyeU91dHB1dEtleWJvYXJkRXZl bnQsIGNsaXBib2FyZCwgUmFuZ2VTZWxlY3Rpb25IZWxwZXIsIFhDZWxsU2Vs ZWN0aW9uTW9kZWwpIHsKLSAgdmFyIFNsaWNrID0gd2luZG93LlNsaWNrOwot Ci0gIGRlc2NyaWJlKCcjaGFuZGxlUXVlcnlPdXRwdXRLZXlib2FyZEV2ZW50 JywgZnVuY3Rpb24gKCkgewotICAgIHZhciBldmVudCwgdmlldywgZ3JpZCwg c2xpY2tFdmVudDsKK2ltcG9ydCBIYW5kbGVRdWVyeU91dHB1dEtleWJvYXJk RXZlbnQgZnJvbSAnc291cmNlcy9zbGlja2dyaWQvZXZlbnRfaGFuZGxlcnMv aGFuZGxlX3F1ZXJ5X291dHB1dF9rZXlib2FyZF9ldmVudCc7CitpbXBvcnQg Y2xpcGJvYXJkIGZyb20gJ3NvdXJjZXMvc2VsZWN0aW9uL2NsaXBib2FyZCc7 CitpbXBvcnQgUmFuZ2VTZWxlY3Rpb25IZWxwZXIgZnJvbSAnc291cmNlcy9z ZWxlY3Rpb24vcmFuZ2Vfc2VsZWN0aW9uX2hlbHBlcic7CitpbXBvcnQgWENl bGxTZWxlY3Rpb25Nb2RlbCBmcm9tICdzb3VyY2VzL3NlbGVjdGlvbi94Y2Vs bF9zZWxlY3Rpb25fbW9kZWwnOworaW1wb3J0IFNsaWNrIGZyb20gJ3NsaWNr Z3JpZCc7CitpbXBvcnQgJ3NsaWNrZ3JpZC5ncmlkJzsKKworCitkZXNjcmli ZSgnI2hhbmRsZVF1ZXJ5T3V0cHV0S2V5Ym9hcmRFdmVudCcsIGZ1bmN0aW9u ICgpIHsKKyAgdmFyIGV2ZW50LCB2aWV3LCBncmlkLCBzbGlja0V2ZW50Owor ICB2YXIgU2xpY2tHcmlkID0gU2xpY2suR3JpZDsKKyAgdmFyIGhhbmRsZVF1 ZXJ5T3V0cHV0S2V5Ym9hcmRFdmVudDsKKworICBiZWZvcmVFYWNoKGZ1bmN0 aW9uICgpIHsKKyAgICBldmVudCA9IHsKKyAgICAgIHNoaWZ0S2V5OiBmYWxz ZSwKKyAgICAgIGN0cmxLZXk6IGZhbHNlLAorICAgICAgbWV0YUtleTogZmFs c2UsCisgICAgICB3aGljaDogLTEsCisgICAgICBrZXlDb2RlOiAtMSwKKyAg ICAgIHByZXZlbnREZWZhdWx0OiBqYXNtaW5lLmNyZWF0ZVNweSgncHJldmVu dERlZmF1bHQnKQorICAgIH07CisKKyAgICB2YXIgZGF0YSA9IFtbJycsICcw LDAtY2VsbC1jb250ZW50JywgJzAsMS1jZWxsLWNvbnRlbnQnXSwKKyAgICAg IFsnJywgJzEsMC1jZWxsLWNvbnRlbnQnLCAnMSwxLWNlbGwtY29udGVudCdd LAorICAgICAgWycnLCAnMiwwLWNlbGwtY29udGVudCcsICcyLDEtY2VsbC1j b250ZW50J11dOworICAgIHZhciBjb2x1bW5EZWZpbml0aW9ucyA9IFt7bmFt ZTogJ2NoZWNrYm94Q29sdW1uJ30sIHtwb3M6IDEsIG5hbWU6ICdmaXJzdENv bHVtbid9LCB7CisgICAgICBwb3M6IDIsCisgICAgICBuYW1lOiAnc2Vjb25k Q29sdW1uJworICAgIH1dOworICAgIGdyaWQgPSBuZXcgU2xpY2tHcmlkKCQo JzxkaXY+PC9kaXY+JyksIGRhdGEsIGNvbHVtbkRlZmluaXRpb25zKTsKKyAg ICBncmlkLnNldFNlbGVjdGlvbk1vZGVsKG5ldyBYQ2VsbFNlbGVjdGlvbk1v ZGVsKCkpOworCisgICAgc2xpY2tFdmVudCA9IHsKKyAgICAgIGdyaWQ6IGdy aWQKKyAgICB9OworCisgICAgdmlldyA9IHt9OworICAgIHNweU9uKGNsaXBi b2FyZCwgJ2NvcHlUZXh0VG9DbGlwYm9hcmQnKTsKKyAgICBoYW5kbGVRdWVy eU91dHB1dEtleWJvYXJkRXZlbnQgPSBIYW5kbGVRdWVyeU91dHB1dEtleWJv YXJkRXZlbnQuYmluZCh3aW5kb3cpOworICAgIGRlYnVnZ2VyCisgIH0pOwor CisgIGRlc2NyaWJlKCJ3aGVuIGEgcmFuZ2UgaXMgc2VsZWN0ZWQiLCBmdW5j dGlvbiAoKSB7CiAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7Ci0gICAg ICBldmVudCA9IHsKLSAgICAgICAgc2hpZnRLZXk6IGZhbHNlLAotICAgICAg ICBjdHJsS2V5OiBmYWxzZSwKLSAgICAgICAgbWV0YUtleTogZmFsc2UsCi0g ICAgICAgIHdoaWNoOiAtMSwKLSAgICAgICAga2V5Q29kZTogLTEsCi0gICAg ICAgIHByZXZlbnREZWZhdWx0OiBqYXNtaW5lLmNyZWF0ZVNweSgncHJldmVu dERlZmF1bHQnKQotICAgICAgfTsKLQotICAgICAgdmFyIGRhdGEgPSBbWycn LCAnMCwwLWNlbGwtY29udGVudCcsICcwLDEtY2VsbC1jb250ZW50J10sCi0g ICAgICAgIFsnJywgJzEsMC1jZWxsLWNvbnRlbnQnLCAnMSwxLWNlbGwtY29u dGVudCddLAotICAgICAgICBbJycsICcyLDAtY2VsbC1jb250ZW50JywgJzIs MS1jZWxsLWNvbnRlbnQnXV07Ci0gICAgICB2YXIgY29sdW1uRGVmaW5pdGlv bnMgPSBbe25hbWU6ICdjaGVja2JveENvbHVtbid9LCB7cG9zOiAxLCBuYW1l OiAnZmlyc3RDb2x1bW4nfSwgewotICAgICAgICBwb3M6IDIsCi0gICAgICAg IG5hbWU6ICdzZWNvbmRDb2x1bW4nCi0gICAgICB9XTsKLSAgICAgIGdyaWQg PSBuZXcgU2xpY2suR3JpZCgkKCc8ZGl2PjwvZGl2PicpLCBkYXRhLCBjb2x1 bW5EZWZpbml0aW9ucyk7Ci0gICAgICBncmlkLnNldFNlbGVjdGlvbk1vZGVs KG5ldyBYQ2VsbFNlbGVjdGlvbk1vZGVsKCkpOwotCi0gICAgICBzbGlja0V2 ZW50ID0gewotICAgICAgICBncmlkOiBncmlkCi0gICAgICB9OwotCi0gICAg ICB2aWV3ID0ge307Ci0gICAgICBzcHlPbihjbGlwYm9hcmQsICdjb3B5VGV4 dFRvQ2xpcGJvYXJkJyk7CisgICAgICBncmlkLmdldFNlbGVjdGlvbk1vZGVs KCkuc2V0U2VsZWN0ZWRSYW5nZXMoWworICAgICAgICBSYW5nZVNlbGVjdGlv bkhlbHBlci5yYW5nZUZvclJvdyhncmlkLCAwKSwKKyAgICAgICAgUmFuZ2VT ZWxlY3Rpb25IZWxwZXIucmFuZ2VGb3JSb3coZ3JpZCwgMiksCisgICAgICBd KTsKICAgICB9KTsKIAotICAgIGRlc2NyaWJlKCJ3aGVuIGEgcmFuZ2UgaXMg c2VsZWN0ZWQiLCBmdW5jdGlvbiAoKSB7CisgICAgZGVzY3JpYmUoInByZXNz aW5nIENvbW1hbmQgKyBDIiwgZnVuY3Rpb24gKCkgewogICAgICAgYmVmb3Jl RWFjaChmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGdyaWQuZ2V0U2VsZWN0aW9u TW9kZWwoKS5zZXRTZWxlY3RlZFJhbmdlcyhbCi0gICAgICAgICAgUmFuZ2VT ZWxlY3Rpb25IZWxwZXIucmFuZ2VGb3JSb3coZ3JpZCwgMCksCi0gICAgICAg ICAgUmFuZ2VTZWxlY3Rpb25IZWxwZXIucmFuZ2VGb3JSb3coZ3JpZCwgMiks Ci0gICAgICAgIF0pOworICAgICAgICBldmVudC5tZXRhS2V5ID0gdHJ1ZTsK KyAgICAgICAgZXZlbnQua2V5Q29kZSA9IDY3OwogICAgICAgfSk7CiAKLSAg ICAgIGRlc2NyaWJlKCJwcmVzc2luZyBDb21tYW5kICsgQyIsIGZ1bmN0aW9u ICgpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7Ci0gICAg ICAgICAgZXZlbnQubWV0YUtleSA9IHRydWU7Ci0gICAgICAgICAgZXZlbnQu a2V5Q29kZSA9IDY3OwotICAgICAgICB9KTsKLQotICAgICAgICBpdCgiY29w aWVzIHRoZSBjZWxsIGNvbnRlbnQgdG8gdGhlIGNsaXBib2FyZCIsIGZ1bmN0 aW9uICgpIHsKLSAgICAgICAgICBoYW5kbGVRdWVyeU91dHB1dEtleWJvYXJk RXZlbnQoZXZlbnQsIHNsaWNrRXZlbnQpOworICAgICAgaXQoImNvcGllcyB0 aGUgY2VsbCBjb250ZW50IHRvIHRoZSBjbGlwYm9hcmQiLCBmdW5jdGlvbiAo KSB7CisgICAgICAgIGhhbmRsZVF1ZXJ5T3V0cHV0S2V5Ym9hcmRFdmVudChl dmVudCwgc2xpY2tFdmVudCk7CiAKLSAgICAgICAgICBleHBlY3QoY2xpcGJv YXJkLmNvcHlUZXh0VG9DbGlwYm9hcmQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRo KCInMCwwLWNlbGwtY29udGVudCcsJzAsMS1jZWxsLWNvbnRlbnQnXG4nMiww LWNlbGwtY29udGVudCcsJzIsMS1jZWxsLWNvbnRlbnQnIik7Ci0gICAgICAg IH0pOworICAgICAgICBleHBlY3QoY2xpcGJvYXJkLmNvcHlUZXh0VG9DbGlw Ym9hcmQpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCInMCwwLWNlbGwtY29udGVu dCcsJzAsMS1jZWxsLWNvbnRlbnQnXG4nMiwwLWNlbGwtY29udGVudCcsJzIs MS1jZWxsLWNvbnRlbnQnIik7CiAgICAgICB9KTsKKyAgICB9KTsKIAotICAg ICAgZGVzY3JpYmUoInByZXNzaW5nIEN0cmwgKyBDIiwgZnVuY3Rpb24gKCkg ewotICAgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKLSAgICAgICAg ICBldmVudC5jdHJsS2V5ID0gdHJ1ZTsKLSAgICAgICAgICBldmVudC5rZXlD b2RlID0gNjc7Ci0gICAgICAgIH0pOworICAgIGRlc2NyaWJlKCJwcmVzc2lu ZyBDdHJsICsgQyIsIGZ1bmN0aW9uICgpIHsKKyAgICAgIGJlZm9yZUVhY2go ZnVuY3Rpb24gKCkgeworICAgICAgICBldmVudC5jdHJsS2V5ID0gdHJ1ZTsK KyAgICAgICAgZXZlbnQua2V5Q29kZSA9IDY3OworICAgICAgfSk7CiAKLSAg ICAgICAgaXQoImNvcGllcyB0aGUgY2VsbCBjb250ZW50IHRvIHRoZSBjbGlw Ym9hcmQiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgaGFuZGxlUXVlcnlP dXRwdXRLZXlib2FyZEV2ZW50KGV2ZW50LCBzbGlja0V2ZW50KTsKKyAgICAg IGl0KCJjb3BpZXMgdGhlIGNlbGwgY29udGVudCB0byB0aGUgY2xpcGJvYXJk IiwgZnVuY3Rpb24gKCkgeworICAgICAgICBoYW5kbGVRdWVyeU91dHB1dEtl eWJvYXJkRXZlbnQoZXZlbnQsIHNsaWNrRXZlbnQpOwogCi0gICAgICAgICAg ZXhwZWN0KGNsaXBib2FyZC5jb3B5VGV4dFRvQ2xpcGJvYXJkKS50b0hhdmVC ZWVuQ2FsbGVkV2l0aCgiJzAsMC1jZWxsLWNvbnRlbnQnLCcwLDEtY2VsbC1j b250ZW50J1xuJzIsMC1jZWxsLWNvbnRlbnQnLCcyLDEtY2VsbC1jb250ZW50 JyIpOwotICAgICAgICB9KTsKKyAgICAgICAgZXhwZWN0KGNsaXBib2FyZC5j b3B5VGV4dFRvQ2xpcGJvYXJkKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgiJzAs MC1jZWxsLWNvbnRlbnQnLCcwLDEtY2VsbC1jb250ZW50J1xuJzIsMC1jZWxs LWNvbnRlbnQnLCcyLDEtY2VsbC1jb250ZW50JyIpOwogICAgICAgfSk7Cisg ICAgfSk7CiAKLSAgICAgIGRlc2NyaWJlKCJwcmVzc2luZyBDb21tYW5kICsg QSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5jdGlv biAoKSB7Ci0gICAgICAgICAgZXZlbnQubWV0YUtleSA9IHRydWU7Ci0gICAg ICAgICAgZXZlbnQua2V5Q29kZSA9IDY1OwotICAgICAgICB9KTsKKyAgICBk ZXNjcmliZSgicHJlc3NpbmcgQ29tbWFuZCArIEEiLCBmdW5jdGlvbiAoKSB7 CisgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgZXZl bnQubWV0YUtleSA9IHRydWU7CisgICAgICAgIGV2ZW50LmtleUNvZGUgPSA2 NTsKKyAgICAgIH0pOwogCi0gICAgICAgIGl0KCJzZWxlY3RzIHRoZSBlbnRp cmUgZ3JpZCB0byByYW5nZXMiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAg aGFuZGxlUXVlcnlPdXRwdXRLZXlib2FyZEV2ZW50KGV2ZW50LCBzbGlja0V2 ZW50KTsKKyAgICAgIGl0KCJzZWxlY3RzIHRoZSBlbnRpcmUgZ3JpZCB0byBy YW5nZXMiLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGhhbmRsZVF1ZXJ5T3V0 cHV0S2V5Ym9hcmRFdmVudChldmVudCwgc2xpY2tFdmVudCk7CiAKLSAgICAg ICAgICBleHBlY3QoUmFuZ2VTZWxlY3Rpb25IZWxwZXIuaXNFbnRpcmVHcmlk U2VsZWN0ZWQoZ3JpZCkpLnRvQmVUcnV0aHkoKTsKLSAgICAgICAgICBleHBl Y3QoZ3JpZC5nZXRTZWxlY3Rpb25Nb2RlbCgpLmdldFNlbGVjdGVkUmFuZ2Vz KCkubGVuZ3RoKS50b0JlKDEpOwotICAgICAgICB9KTsKKyAgICAgICAgZXhw ZWN0KFJhbmdlU2VsZWN0aW9uSGVscGVyLmlzRW50aXJlR3JpZFNlbGVjdGVk KGdyaWQpKS50b0JlVHJ1dGh5KCk7CisgICAgICAgIGV4cGVjdChncmlkLmdl dFNlbGVjdGlvbk1vZGVsKCkuZ2V0U2VsZWN0ZWRSYW5nZXMoKS5sZW5ndGgp LnRvQmUoMSk7CiAgICAgICB9KTsKKyAgICB9KTsKIAotICAgICAgZGVzY3Jp YmUoInByZXNzaW5nIEN0cmwgKyBBIiwgZnVuY3Rpb24gKCkgewotICAgICAg ICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKLSAgICAgICAgICBldmVudC5j dHJsS2V5ID0gdHJ1ZTsKLSAgICAgICAgICBldmVudC5rZXlDb2RlID0gNjU7 Ci0gICAgICAgIH0pOworICAgIGRlc2NyaWJlKCJwcmVzc2luZyBDdHJsICsg QSIsIGZ1bmN0aW9uICgpIHsKKyAgICAgIGJlZm9yZUVhY2goZnVuY3Rpb24g KCkgeworICAgICAgICBldmVudC5jdHJsS2V5ID0gdHJ1ZTsKKyAgICAgICAg ZXZlbnQua2V5Q29kZSA9IDY1OworICAgICAgfSk7CiAKLSAgICAgICAgaXQo InNlbGVjdHMgdGhlIGVudGlyZSBncmlkIHRvIHJhbmdlcyIsIGZ1bmN0aW9u ICgpIHsKLSAgICAgICAgICBoYW5kbGVRdWVyeU91dHB1dEtleWJvYXJkRXZl bnQoZXZlbnQsIHNsaWNrRXZlbnQpOworICAgICAgaXQoInNlbGVjdHMgdGhl IGVudGlyZSBncmlkIHRvIHJhbmdlcyIsIGZ1bmN0aW9uICgpIHsKKyAgICAg ICAgaGFuZGxlUXVlcnlPdXRwdXRLZXlib2FyZEV2ZW50KGV2ZW50LCBzbGlj a0V2ZW50KTsKIAotICAgICAgICAgIGV4cGVjdChSYW5nZVNlbGVjdGlvbkhl bHBlci5pc0VudGlyZUdyaWRTZWxlY3RlZChncmlkKSkudG9CZVRydXRoeSgp OwotICAgICAgICAgIGV4cGVjdChncmlkLmdldFNlbGVjdGlvbk1vZGVsKCku Z2V0U2VsZWN0ZWRSYW5nZXMoKS5sZW5ndGgpLnRvQmUoMSk7Ci0gICAgICAg IH0pOworICAgICAgICBleHBlY3QoUmFuZ2VTZWxlY3Rpb25IZWxwZXIuaXNF bnRpcmVHcmlkU2VsZWN0ZWQoZ3JpZCkpLnRvQmVUcnV0aHkoKTsKKyAgICAg ICAgZXhwZWN0KGdyaWQuZ2V0U2VsZWN0aW9uTW9kZWwoKS5nZXRTZWxlY3Rl ZFJhbmdlcygpLmxlbmd0aCkudG9CZSgxKTsKICAgICAgIH0pOwogICAgIH0p OworICB9KTsKIAotICAgIGRlc2NyaWJlKCJ3aGVuIG5vIHJhbmdlcyBhcmUg c2VsZWN0ZWQiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICBkZXNjcmliZSgicHJl c3NpbmcgQ29tbWFuZCArIEEiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGJl Zm9yZUVhY2goZnVuY3Rpb24gKCkgewotICAgICAgICAgIGV2ZW50Lm1ldGFL ZXkgPSB0cnVlOwotICAgICAgICAgIGV2ZW50LmtleUNvZGUgPSA2NTsKLSAg ICAgICAgfSk7CisgIGRlc2NyaWJlKCJ3aGVuIG5vIHJhbmdlcyBhcmUgc2Vs ZWN0ZWQiLCBmdW5jdGlvbiAoKSB7CisgICAgZGVzY3JpYmUoInByZXNzaW5n IENvbW1hbmQgKyBBIiwgZnVuY3Rpb24gKCkgeworICAgICAgYmVmb3JlRWFj aChmdW5jdGlvbiAoKSB7CisgICAgICAgIGV2ZW50Lm1ldGFLZXkgPSB0cnVl OworICAgICAgICBldmVudC5rZXlDb2RlID0gNjU7CisgICAgICB9KTsKIAot ICAgICAgICBpdCgic2VsZWN0cyB0aGUgZW50aXJlIGdyaWQgdG8gcmFuZ2Vz IiwgZnVuY3Rpb24gKCkgewotICAgICAgICAgIGhhbmRsZVF1ZXJ5T3V0cHV0 S2V5Ym9hcmRFdmVudChldmVudCwgc2xpY2tFdmVudCk7CisgICAgICBpdCgi c2VsZWN0cyB0aGUgZW50aXJlIGdyaWQgdG8gcmFuZ2VzIiwgZnVuY3Rpb24g KCkgeworICAgICAgICBoYW5kbGVRdWVyeU91dHB1dEtleWJvYXJkRXZlbnQo ZXZlbnQsIHNsaWNrRXZlbnQpOwogCi0gICAgICAgICAgZXhwZWN0KFJhbmdl U2VsZWN0aW9uSGVscGVyLmlzRW50aXJlR3JpZFNlbGVjdGVkKGdyaWQpKS50 b0JlVHJ1dGh5KCk7Ci0gICAgICAgICAgZXhwZWN0KGdyaWQuZ2V0U2VsZWN0 aW9uTW9kZWwoKS5nZXRTZWxlY3RlZFJhbmdlcygpLmxlbmd0aCkudG9CZSgx KTsKLSAgICAgICAgfSk7CisgICAgICAgIGV4cGVjdChSYW5nZVNlbGVjdGlv bkhlbHBlci5pc0VudGlyZUdyaWRTZWxlY3RlZChncmlkKSkudG9CZVRydXRo eSgpOworICAgICAgICBleHBlY3QoZ3JpZC5nZXRTZWxlY3Rpb25Nb2RlbCgp LmdldFNlbGVjdGVkUmFuZ2VzKCkubGVuZ3RoKS50b0JlKDEpOwogICAgICAg fSk7CisgICAgfSk7CiAKLSAgICAgIGRlc2NyaWJlKCJwcmVzc2luZyBDdHJs ICsgQSIsIGZ1bmN0aW9uICgpIHsKLSAgICAgICAgYmVmb3JlRWFjaChmdW5j dGlvbiAoKSB7Ci0gICAgICAgICAgZXZlbnQuY3RybEtleSA9IHRydWU7Ci0g ICAgICAgICAgZXZlbnQua2V5Q29kZSA9IDY1OwotICAgICAgICB9KTsKKyAg ICBkZXNjcmliZSgicHJlc3NpbmcgQ3RybCArIEEiLCBmdW5jdGlvbiAoKSB7 CisgICAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgZXZl bnQuY3RybEtleSA9IHRydWU7CisgICAgICAgIGV2ZW50LmtleUNvZGUgPSA2 NTsKKyAgICAgIH0pOwogCi0gICAgICAgIGl0KCJzZWxlY3RzIHRoZSBlbnRp cmUgZ3JpZCB0byByYW5nZXMiLCBmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAg aGFuZGxlUXVlcnlPdXRwdXRLZXlib2FyZEV2ZW50KGV2ZW50LCBzbGlja0V2 ZW50KTsKKyAgICAgIGl0KCJzZWxlY3RzIHRoZSBlbnRpcmUgZ3JpZCB0byBy YW5nZXMiLCBmdW5jdGlvbiAoKSB7CisgICAgICAgIGhhbmRsZVF1ZXJ5T3V0 cHV0S2V5Ym9hcmRFdmVudChldmVudCwgc2xpY2tFdmVudCk7CiAKLSAgICAg ICAgICBleHBlY3QoUmFuZ2VTZWxlY3Rpb25IZWxwZXIuaXNFbnRpcmVHcmlk U2VsZWN0ZWQoZ3JpZCkpLnRvQmVUcnV0aHkoKTsKLSAgICAgICAgICBleHBl Y3QoZ3JpZC5nZXRTZWxlY3Rpb25Nb2RlbCgpLmdldFNlbGVjdGVkUmFuZ2Vz KCkubGVuZ3RoKS50b0JlKDEpOwotICAgICAgICB9KTsKKyAgICAgICAgZXhw ZWN0KFJhbmdlU2VsZWN0aW9uSGVscGVyLmlzRW50aXJlR3JpZFNlbGVjdGVk KGdyaWQpKS50b0JlVHJ1dGh5KCk7CisgICAgICAgIGV4cGVjdChncmlkLmdl dFNlbGVjdGlvbk1vZGVsKCkuZ2V0U2VsZWN0ZWRSYW5nZXMoKS5sZW5ndGgp LnRvQmUoMSk7CiAgICAgICB9KTsKICAgICB9KTsKICAgfSk7Ci19KTsKXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit9KTsKZGlmZiAtLWdpdCBhL3dl Yi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvdGVzdC1tYWluLmpzIGIvd2ViL3Jl Z3Jlc3Npb24vamF2YXNjcmlwdC90ZXN0LW1haW4uanMKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDRjNWYwOWEwLi4wMDAwMDAwMAotLS0gYS93 ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3Rlc3QtbWFpbi5qcworKysgL2Rl di9udWxsCkBAIC0xLDEzOSArMCwwIEBACi0vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLwotLy8KLS8vIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9v bHMKLS8vCi0vLyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE3LCBUaGUgcGdB ZG1pbiBEZXZlbG9wbWVudCBUZWFtCi0vLyBUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKLS8vCi0vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi12YXIgYWxsVGVzdEZpbGVz ID0gW107Ci12YXIgVEVTVF9SRUdFWFAgPSAvKHNwZWN8dGVzdClcLmpzJC9p OwotCi0vLyBHZXQgYSBsaXN0IG9mIGFsbCB0aGUgdGVzdCBmaWxlcyB0byBp bmNsdWRlCi1PYmplY3Qua2V5cyh3aW5kb3cuX19rYXJtYV9fLmZpbGVzKS5m b3JFYWNoKGZ1bmN0aW9uIChmaWxlKSB7Ci0gIGlmIChURVNUX1JFR0VYUC50 ZXN0KGZpbGUpKSB7Ci0gICAgLy8gTm9ybWFsaXplIHBhdGhzIHRvIFJlcXVp cmVKUyBtb2R1bGUgbmFtZXMuCi0gICAgLy8gSWYgeW91IHJlcXVpcmUgc3Vi LWRlcGVuZGVuY2llcyBvZiB0ZXN0IGZpbGVzIHRvIGJlIGxvYWRlZCBhcy1p cyAocmVxdWlyaW5nIGZpbGUgZXh0ZW5zaW9uKQotICAgIC8vIHRoZW4gZG8g bm90IG5vcm1hbGl6ZSB0aGUgcGF0aHMKLSAgICB2YXIgbm9ybWFsaXplZFRl c3RNb2R1bGUgPSBmaWxlLnJlcGxhY2UoL15cL2Jhc2VcL3xcLmpzJC9nLCAn Jyk7Ci0gICAgYWxsVGVzdEZpbGVzLnB1c2gobm9ybWFsaXplZFRlc3RNb2R1 bGUpCi0gIH0KLX0pOwotCi12YXIgc291cmNlc0RpciA9ICcvYmFzZS9wZ2Fk bWluL3N0YXRpYy8nOwotcmVxdWlyZS5jb25maWcoewotICAvLyBLYXJtYSBz ZXJ2ZXMgZmlsZXMgdW5kZXIgL2Jhc2UsIHdoaWNoIGlzIHRoZSBiYXNlUGF0 aCBmcm9tIHlvdXIgY29uZmlnIGZpbGUKLSAgYmFzZVVybDogJy9iYXNlJywK LQotICBwYXRoczogewotICAgICdwZ2FkbWluJzogc291cmNlc0RpciArICdq cy9wZ2FkbWluJywKLSAgICAnYWxlcnRpZnknOiBzb3VyY2VzRGlyICsgJ3Zl bmRvci9hbGVydGlmeWpzL2FsZXJ0aWZ5JywKLSAgICAnanF1ZXJ5Jzogc291 cmNlc0RpciArICd2ZW5kb3IvanF1ZXJ5L2pxdWVyeS0xLjExLjInLAotICAg ICdqcXVlcnkudWknOiBzb3VyY2VzRGlyICsgJ3ZlbmRvci9qcXVlcnktdWkv anF1ZXJ5LXVpLTEuMTEuMycsCi0gICAgJ2pxdWVyeS5ldmVudC5kcmFnJzog c291cmNlc0RpciArICd2ZW5kb3IvanF1ZXJ5LXVpL2pxdWVyeS5ldmVudC5k cmFnLTIuMicsCi0gICAgJ3VuZGVyc2NvcmUnOiBzb3VyY2VzRGlyICsgJ3Zl bmRvci91bmRlcnNjb3JlL3VuZGVyc2NvcmUnLAotICAgICd1bmRlcnNjb3Jl LnN0cmluZyc6IHNvdXJjZXNEaXIgKyAndmVuZG9yL3VuZGVyc2NvcmUvdW5k ZXJzY29yZS5zdHJpbmcnLAotICAgICdzbGlja2dyaWQnOiBzb3VyY2VzRGly ICsgJ3ZlbmRvci9zbGlja2dyaWQvc2xpY2suY29yZScsCi0gICAgJ3NsaWNr Z3JpZC9zbGljay5ncmlkJzogc291cmNlc0RpciArICd2ZW5kb3Ivc2xpY2tn cmlkL3NsaWNrLmdyaWQnLAotICAgICd0cmFuc2xhdGlvbnMnOiAnL2Jhc2Uv cmVncmVzc2lvbi9qYXZhc2NyaXB0L2Zha2VfdHJhbnNsYXRpb25zJywKLSAg ICAncGdhZG1pbi5icm93c2VyLmVuZHBvaW50cyc6ICcvYmFzZS9yZWdyZXNz aW9uL2phdmFzY3JpcHQvZmFrZV9lbmRwb2ludHMnLAotICAgICdzb3VyY2Vz Jzogc291cmNlc0RpciArICdqcycsCi0gICAgJ2Jyb3dzZXInOiAnL2Jhc2Uv cGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcycKLSAgfSwKLQotICBzaGltOiB7 Ci0gICAgJ3VuZGVyc2NvcmUnOiB7Ci0gICAgICBleHBvcnRzOiAnXycKLSAg ICB9LAotICAgICJzbGlja2dyaWQiOiB7Ci0gICAgICAiZGVwcyI6IFsKLSAg ICAgICAgJ2pxdWVyeScsICJqcXVlcnkudWkiLCAianF1ZXJ5LmV2ZW50LmRy YWciCi0gICAgICBdLAotICAgICAgImV4cG9ydHMiOiAnd2luZG93LlNsaWNr JwotICAgIH0sCi0gICAgInNsaWNrZ3JpZC9zbGljay5ncmlkIjogewotICAg ICAgImRlcHMiOiBbCi0gICAgICAgICdqcXVlcnknLCAianF1ZXJ5LnVpIiwg ImpxdWVyeS5ldmVudC5kcmFnIiwgInNsaWNrZ3JpZCIKLSAgICAgIF0sCi0g ICAgICAiZXhwb3J0cyI6ICd3aW5kb3cuU2xpY2suR3JpZCcKLSAgICB9LAot ICAgICJzb3VyY2VzL3NsaWNrZ3JpZC9wZ3NsaWNrLmNlbGxyYW5nZWRlY29y YXRvciI6IHsKLSAgICAgICJkZXBzIjogWwotICAgICAgICAianF1ZXJ5Igot ICAgICAgXSwKLSAgICAgICJleHBvcnRzIjogJ1BHUm93UmFuZ2VEZWNvcmF0 b3InCi0gICAgfSwKLSAgICAic291cmNlcy9zbGlja2dyaWQvcGdzbGljay5j ZWxscmFuZ2VzZWxlY3RvciI6IHsKLSAgICAgICJkZXBzIjogWwotICAgICAg ICAianF1ZXJ5IiwgInNvdXJjZXMvc2xpY2tncmlkL3Bnc2xpY2suY2VsbHJh bmdlZGVjb3JhdG9yIgotICAgICAgXSwKLSAgICAgICJleHBvcnRzIjogJ1BH Q2VsbFJhbmdlU2VsZWN0b3InCi0gICAgfSwKLSAgICAic291cmNlcy9zZWxl Y3Rpb24veGNlbGxfc2VsZWN0aW9uX21vZGVsIjogewotICAgICAgImRlcHMi OiBbCi0gICAgICAgICJqcXVlcnkiLCAic291cmNlcy9zbGlja2dyaWQvcGdz bGljay5jZWxscmFuZ2VzZWxlY3RvciIKLSAgICAgIF0sCi0gICAgICAiZXhw b3J0cyI6ICdYQ2VsbFNlbGVjdGlvbk1vZGVsJwotICAgIH0sCi0gICAgImJh Y2tib25lIjogewotICAgICAgImRlcHMiOiBbJ3VuZGVyc2NvcmUnLCAnanF1 ZXJ5J10sCi0gICAgICAiZXhwb3J0cyI6ICdCYWNrYm9uZScKLSAgICB9LAot ICAgICJiYWNrYm9uZS5wYWdpbmF0b3IiOiB7Ci0gICAgICAiZGVwcyI6IFsn dW5kZXJzY29yZScsICdqcXVlcnknLCAnYmFja2JvbmUnXQotICAgIH0sCi0g ICAgImJvb3RzdHJhcCI6IHsKLSAgICAgICJkZXBzIjogWydqcXVlcnknXSwK LSAgICB9LAotICAgICJiYWNrZ3JpZCI6IHsKLSAgICAgICJkZXBzIjogWydi YWNrZm9ybSddLAotICAgICAgImV4cG9ydHMiOiAnQmFja2dyaWQnLAotICAg IH0sCi0gICAgImJhY2tncmlkLnNlbGVjdC5hbGwiOiB7Ci0gICAgICAiZGVw cyI6IFsnYmFja2dyaWQnXQotICAgIH0sCi0gICAgImJhY2tncmlkLnBhZ2lu YXRvciI6IHsKLSAgICAgICJkZXBzIjogWydiYWNrZ3JpZCcsICdiYWNrYm9u ZS5wYWdpbmF0b3InXQotICAgIH0sCi0gICAgImJhY2tncmlkLmZpbHRlciI6 IHsKLSAgICAgICJkZXBzIjogWydiYWNrZ3JpZCddCi0gICAgfSwKLSAgICAi YmFja2dyaWQuc2l6ZWFibGUuY29sdW1ucyI6IHsKLSAgICAgICJkZXBzIjog WydiYWNrZ3JpZCddCi0gICAgfSwKLSAgICAiYm9vdHN0cmFwLnN3aXRjaCI6 IHsKLSAgICAgICJkZXBzIjogWydqcXVlcnknLCAnYm9vdHN0cmFwJ10sCi0g ICAgICAiZXhwb3J0cyI6ICdqUXVlcnkuZm4uYm9vdHN0cmFwU3dpdGNoJwot ICAgIH0sCi0gICAgInNlbGVjdDIiOiB7Ci0gICAgICAiZGVwcyI6IFsnanF1 ZXJ5J10sCi0gICAgICAiZXhwb3J0cyI6ICdqUXVlcnkuZm4uc2VsZWN0MicK LSAgICB9LAotICAgICJib290c3RyYXAuZGF0ZXBpY2tlciI6IHsKLSAgICAg ICJkZXBzIjogWydqcXVlcnknLCAnYm9vdHN0cmFwJ10sCi0gICAgICAiZXhw b3J0cyI6ICdqUXVlcnkuZm4uZGF0ZXBpY2tlcicKLSAgICB9LAotICAgICJi b290c3RyYXAuZGF0ZXRpbWVwaWNrZXIiOiB7Ci0gICAgICAiZGVwcyI6IFsn anF1ZXJ5JywgJ2Jvb3RzdHJhcCcsICdtb21lbnQnXSwKLSAgICAgICJleHBv cnRzIjogJ2pRdWVyeS5mbi5kYXRldGltZXBpY2tlcicKLSAgICB9LAotICAg ICJwZ2FkbWluLmJhY2tncmlkIjogewotICAgICAgImRlcHMiOiBbImJhY2tn cmlkIiwgImJvb3RzdHJhcC5kYXRldGltZXBpY2tlciIsICJib290c3RyYXAu c3dpdGNoIl0sCi0gICAgfSwKLSAgICAicGdhZG1pbi5iYWNrZm9ybSI6IHsK LSAgICAgICJkZXBzIjogWydiYWNrZm9ybScsICJwZ2FkbWluLmJhY2tncmlk IiwgInNlbGVjdDIiXSwKLSAgICB9LAotICAgICJqcXVlcnkuZXZlbnQuZHJh ZyI6IHsKLSAgICAgICJkZXBzIjogWydqcXVlcnknXSwgImV4cG9ydHMiOiAn alF1ZXJ5LmZuLmRyYWcnCi0gICAgfSwKLSAgICAianF1ZXJ5LnVpIjogeyJk ZXBzIjogWydqcXVlcnknXX0KLSAgfSwKLQotICAvLyBkeW5hbWljYWxseSBs b2FkIGFsbCB0ZXN0IGZpbGVzCi0gIGRlcHM6IGFsbFRlc3RGaWxlcywKLQot ICAvLyB3ZSBoYXZlIHRvIGtpY2tvZmYgamFzbWluZSwgYXMgaXQgaXMgYXN5 bmNocm9ub3VzCi0gIGNhbGxiYWNrOiB3aW5kb3cuX19rYXJtYV9fLnN0YXJ0 Ci19KTsKLQpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vcmVxdWlyZW1l bnRzLnR4dCBiL3dlYi9yZWdyZXNzaW9uL3JlcXVpcmVtZW50cy50eHQKaW5k ZXggNTk1OWExODMuLmY0NDk1M2Q1IDEwMDY0NAotLS0gYS93ZWIvcmVncmVz c2lvbi9yZXF1aXJlbWVudHMudHh0CisrKyBiL3dlYi9yZWdyZXNzaW9uL3Jl cXVpcmVtZW50cy50eHQKQEAgLTQsNiArNCw3IEBAIHRlc3RzY2VuYXJpb3M9 PTAuNS4wCiB0ZXN0dG9vbHM9PTIuMC4wCiB0cmFjZWJhY2syPT0xLjQuMAog dW5pdHRlc3QyPT0xLjEuMAorbW9ja349Mi4wLjAKIAogIyBMZWF2ZSB0aGlz IGF0IHRoZSBlbmQgYmVjYXVzZSB0aGVyZSBpcyBhIGJ1ZyB3aGVyZSB0aGUg Jy0taW5zdGFsbC1vcHRpb24nIGlzIGFwcGxpZWQgdG8gYWxsIHN1YnNlcXVl bnQgcmVxdWlyZW1lbnRzCiBjaHJvbWVkcml2ZXJfaW5zdGFsbGVyPT0wLjAu NiAtLWluc3RhbGwtb3B0aW9uPSctLWNocm9tZWRyaXZlci12ZXJzaW9uPTIu MjknCmRpZmYgLS1naXQgYS93ZWIvd2VicGFjay5jb25maWcuanMgYi93ZWIv d2VicGFjay5jb25maWcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAuLjkxNTg2NTkyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3dl YnBhY2suY29uZmlnLmpzCkBAIC0wLDAgKzEsMjkgQEAKKy8qIGVzbGludC1l bnYgbm9kZSAqLworCittb2R1bGUuZXhwb3J0cyA9IHsKKyAgY29udGV4dDog X19kaXJuYW1lICsgJy9wZ2FkbWluL3N0YXRpYy9qc3gnLAorICBlbnRyeTog Jy4vY29tcG9uZW50cy5qc3gnLAorICBvdXRwdXQ6IHsKKyAgICBsaWJyYXJ5 VGFyZ2V0OiAnYW1kJywKKyAgICBwYXRoOiBfX2Rpcm5hbWUgKyAnL3BnYWRt aW4vc3RhdGljL2pzL2dlbmVyYXRlZCcsCisgICAgZmlsZW5hbWU6ICdyZWFj dENvbXBvbmVudHMuanMnLAorICB9LAorCisgIG1vZHVsZTogeworICAgIHJ1 bGVzOiBbeworICAgICAgdGVzdDogL1wuanN4PyQvLAorICAgICAgZXhjbHVk ZTogL25vZGVfbW9kdWxlcy8sCisgICAgICB1c2U6IHsKKyAgICAgICAgbG9h ZGVyOiAnYmFiZWwtbG9hZGVyJywKKyAgICAgICAgb3B0aW9uczogeworICAg ICAgICAgIHByZXNldHM6IFsnZXMyMDE1JywgJ3JlYWN0J10sCisgICAgICAg IH0sCisgICAgICB9LAorICAgIH0sCisgICAgXSwKKyAgfSwKKworICByZXNv bHZlOiB7CisgICAgZXh0ZW5zaW9uczogWycuanMnLCAnLmpzeCddLAorICB9 LAorfTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS93ZWIvd2VicGFjay50ZXN0LmNvbmZpZy5qcyBiL3dlYi93ZWJwYWNrLnRl c3QuY29uZmlnLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwLi4yMjYwMjBlOQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi93ZWJwYWNr LnRlc3QuY29uZmlnLmpzCkBAIC0wLDAgKzEsNzEgQEAKKy8qIGVzbGludC1l bnYgbm9kZSAqLworY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTsKK2Nv bnN0IHdlYnBhY2sgPSByZXF1aXJlKCd3ZWJwYWNrJyk7CisKK2NvbnN0IHNv dXJjZXNEaXIgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAncGdhZG1pbi9z dGF0aWMnKTsKK2NvbnN0IHJlZ3Jlc3Npb25EaXIgPSBwYXRoLnJlc29sdmUo X19kaXJuYW1lLCAncmVncmVzc2lvbicpOworCittb2R1bGUuZXhwb3J0cyA9 IHsKKyAgcGx1Z2luczogWworICAgIG5ldyB3ZWJwYWNrLlByb3ZpZGVQbHVn aW4oeworICAgICAgJDogJ2pxdWVyeScsCisgICAgICBqUXVlcnk6ICdqcXVl cnknLAorICAgICAgXzogJ3VuZGVyc2NvcmUnLAorICAgICAgJ3VuZGVyc2Nv cmUuc3RyaW5nJzogJ3VuZGVyc2NvcmUuc3RyaW5nJywKKyAgICB9KSwKKyAg XSwKKworICBtb2R1bGU6IHsKKyAgICBydWxlczogWworICAgICAgeworICAg ICAgICB0ZXN0OiAvXC5qc3g/JC8sCisgICAgICAgIGV4Y2x1ZGU6IFsvbm9k ZV9tb2R1bGVzLywgL3ZlbmRvci9dLAorICAgICAgICB1c2U6IHsKKyAgICAg ICAgICBsb2FkZXI6ICdiYWJlbC1sb2FkZXInLAorICAgICAgICAgIG9wdGlv bnM6IHsKKyAgICAgICAgICAgIHByZXNldHM6IFsnZXMyMDE1J10sCisgICAg ICAgICAgfSwKKyAgICAgICAgfSwKKyAgICAgIH0sCisgICAgICB7CisgICAg ICAgIHRlc3Q6IC8uKnNsaWNrZ3JpZFwvc2xpY2tcLig/IWNvcmUpKi8sCisg ICAgICAgIGxvYWRlcjogJ2ltcG9ydHMtbG9hZGVyPycgKworICAgICAgICAn anF1ZXJ5LnVpJyArCisgICAgICAgICcsanF1ZXJ5LmV2ZW50LmRyYWcnICsK KyAgICAgICAgJyxzbGlja2dyaWQnLAorICAgICAgfSwgeworICAgICAgICB0 ZXN0OiAvLipzbGlja2dyaWRcL3BsdWdpbnNcL3NsaWNrXC5yb3dzZWxlY3Rp b25tb2RlbC8sCisgICAgICAgIGxvYWRlcjogJ2ltcG9ydHMtbG9hZGVyPycg KworICAgICAgICAnanF1ZXJ5LnVpJyArCisgICAgICAgICcsanF1ZXJ5LmV2 ZW50LmRyYWcnICsKKyAgICAgICAgJyxzbGlja2dyaWQnICsKKyAgICAgICAg JyFleHBvcnRzLWxvYWRlcj8nICsKKyAgICAgICAgJ1NsaWNrLlJvd1NlbGVj dGlvbk1vZGVsJywKKyAgICAgIH0sIHsKKyAgICAgICAgdGVzdDogLy4qc2xp Y2tncmlkXC9zbGlja1wuY29yZS4qLywKKyAgICAgICAgbG9hZGVyOiAnaW1w b3J0cy1sb2FkZXI/JyArCisgICAgICAgICdqcXVlcnkudWknICsKKyAgICAg ICAgJyxqcXVlcnkuZXZlbnQuZHJhZycgKworICAgICAgICAnIWV4cG9ydHMt bG9hZGVyPycgKworICAgICAgICAnU2xpY2snLAorICAgICAgfV0sCisgIH0s CisKKyAgcmVzb2x2ZTogeworICAgIGFsaWFzOiB7CisgICAgICAnYWxlcnRp ZnknOiBzb3VyY2VzRGlyICsgJy92ZW5kb3IvYWxlcnRpZnlqcy9hbGVydGlm eScsCisgICAgICAnanF1ZXJ5Jzogc291cmNlc0RpciArICcvdmVuZG9yL2px dWVyeS9qcXVlcnktMS4xMS4yJywKKyAgICAgICdqcXVlcnkudWknOiBzb3Vy Y2VzRGlyICsgJy92ZW5kb3IvanF1ZXJ5LXVpL2pxdWVyeS11aS0xLjExLjMn LAorICAgICAgJ2pxdWVyeS5ldmVudC5kcmFnJzogc291cmNlc0RpciArICcv dmVuZG9yL2pxdWVyeS11aS9qcXVlcnkuZXZlbnQuZHJhZy0yLjInLAorICAg ICAgJ3NvdXJjZXMnOiBzb3VyY2VzRGlyICsgJy9qcycsCisgICAgICAndW5k ZXJzY29yZS5zdHJpbmcnOiBzb3VyY2VzRGlyICsgJy92ZW5kb3IvdW5kZXJz Y29yZS91bmRlcnNjb3JlLnN0cmluZycsCisgICAgICAndHJhbnNsYXRpb25z JzogcmVncmVzc2lvbkRpciArICcvamF2YXNjcmlwdC9mYWtlX3RyYW5zbGF0 aW9ucycsCisgICAgICAncGdhZG1pbi5icm93c2VyLmVuZHBvaW50cyc6IHJl Z3Jlc3Npb25EaXIgKyAnL2phdmFzY3JpcHQvZmFrZV9lbmRwb2ludHMnLAor ICAgICAgJ3NsaWNrZ3JpZCc6IHNvdXJjZXNEaXIgKyAnL3ZlbmRvci9zbGlj a2dyaWQvc2xpY2suY29yZScsCisgICAgICAnc2xpY2tncmlkLmdyaWQnOiBz b3VyY2VzRGlyICsgJy92ZW5kb3Ivc2xpY2tncmlkL3NsaWNrLmdyaWQnLAor ICAgICAgJ3NsaWNrZ3JpZC5yb3dzZWxlY3Rpb25tb2RlbCc6IHNvdXJjZXNE aXIgKyAnL3ZlbmRvci9zbGlja2dyaWQvcGx1Z2lucy9zbGljay5yb3dzZWxl Y3Rpb25tb2RlbCcsCisgICAgICAnYnJvd3Nlcic6IHBhdGgucmVzb2x2ZShf X2Rpcm5hbWUsICdwZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzJyksCisgICAg ICAncGdhZG1pbic6IHNvdXJjZXNEaXIgKyAnL2pzL3BnYWRtaW4nLAorICAg IH0sCisgIH0sCit9OwpkaWZmIC0tZ2l0IGEvd2ViL3lhcm4ubG9jayBiL3dl Yi95YXJuLmxvY2sKaW5kZXggZTY5ZGUyOWIuLmJmZDkxNzFkIDEwMDY0NAot LS0gYS93ZWIveWFybi5sb2NrCisrKyBiL3dlYi95YXJuLmxvY2sKQEAgLTAs MCArMSw0NTI2IEBACisjIFRISVMgSVMgQU4gQVVUT0dFTkVSQVRFRCBGSUxF LiBETyBOT1QgRURJVCBUSElTIEZJTEUgRElSRUNUTFkuCisjIHlhcm4gbG9j a2ZpbGUgdjEKKworCitKU09OU3RyZWFtQF4xLjAuMzoKKyAgdmVyc2lvbiAi MS4zLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL0pTT05TdHJlYW0vLS9KU09OU3RyZWFtLTEuMy4xLnRneiM3MDdmNzYx ZTAxZGFlOWUxNmYxYmNmOTM3MDNiNzhjNzA5NjY1NzlhIgorICBkZXBlbmRl bmNpZXM6CisgICAganNvbnBhcnNlICJeMS4yLjAiCisgICAgdGhyb3VnaCAi Pj0yLjIuNyA8MyIKKworYWJicmV2QDE6CisgIHZlcnNpb24gIjEuMS4wIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hYmJy ZXYvLS9hYmJyZXYtMS4xLjAudGd6I2QwNTU0YzIyNTY2MzZlMmY1NmU3YzJl NWFkMTgzZjg1OTQyOGQ4MWYiCisKK2FjY2VwdHNAMS4zLjM6CisgIHZlcnNp b24gIjEuMy4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9hY2NlcHRzLy0vYWNjZXB0cy0xLjMuMy50Z3ojYzNjYTc0MzQ5 Mzg2NDhjM2UwZDljMWUzMjhkZDY4YjYyMmMyODRjYSIKKyAgZGVwZW5kZW5j aWVzOgorICAgIG1pbWUtdHlwZXMgIn4yLjEuMTEiCisgICAgbmVnb3RpYXRv ciAiMC42LjEiCisKK2Fjb3JuLWR5bmFtaWMtaW1wb3J0QF4yLjAuMDoKKyAg dmVyc2lvbiAiMi4wLjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL2Fjb3JuLWR5bmFtaWMtaW1wb3J0Ly0vYWNvcm4tZHlu YW1pYy1pbXBvcnQtMi4wLjIudGd6I2M3NTJiZDIxMGJlZjY3OTUwMWI2YzZj YjdmYzg0ZjhmNDcxNThjYzQiCisgIGRlcGVuZGVuY2llczoKKyAgICBhY29y biAiXjQuMC4zIgorCithY29ybi1qc3hAXjMuMC4wOgorICB2ZXJzaW9uICIz LjAuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vYWNvcm4tanN4Ly0vYWNvcm4tanN4LTMuMC4xLnRneiNhZmRmOTQ4OGZi MWVjZWZjODM0OGY2ZmIyMmY0NjRlMzJhNThiMzZiIgorICBkZXBlbmRlbmNp ZXM6CisgICAgYWNvcm4gIl4zLjAuNCIKKworYWNvcm5AXjMuMC40OgorICB2 ZXJzaW9uICIzLjMuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vYWNvcm4vLS9hY29ybi0zLjMuMC50Z3ojNDVlMzdmYjM5 ZThkYTNmMjViYWVlM2ZmNTM2OWUyYmI1ZjIyMDE3YSIKKworYWNvcm5AXjQu MC4zLCBhY29ybkBeNC4wLjQ6CisgIHZlcnNpb24gIjQuMC4xMyIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYWNvcm4vLS9h Y29ybi00LjAuMTMudGd6IzEwNTQ5NWFlNTM2MWQ2OTdiZDE5NWM4MjUxOTJl MWFkN2YyNTM3ODciCisKK2Fjb3JuQF41LjAuMToKKyAgdmVyc2lvbiAiNS4w LjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L2Fjb3JuLy0vYWNvcm4tNS4wLjMudGd6I2M0NjBkZjA4NDkxNDYzZjAyOGNj YjgyZWFiMzczMGJmMDEwODdiM2QiCisKK2FmdGVyQDAuOC4yOgorICB2ZXJz aW9uICIwLjguMiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vYWZ0ZXIvLS9hZnRlci0wLjguMi50Z3ojZmVkYjM5NGY5ZjBl MDJhYTk3NjhlNzAyYmRhMjNiNTA1ZmFlN2UxZiIKKworYWp2LWtleXdvcmRz QF4xLjAuMCwgYWp2LWtleXdvcmRzQF4xLjEuMToKKyAgdmVyc2lvbiAiMS41 LjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L2Fqdi1rZXl3b3Jkcy8tL2Fqdi1rZXl3b3Jkcy0xLjUuMS50Z3ojMzE0ZGQw YTRiMzM2OGZhZDNkZmNkYzU0ZWRlNjE3MWI4ODZkYWYzYyIKKworYWp2QF40 LjcuMCwgYWp2QF40LjkuMToKKyAgdmVyc2lvbiAiNC4xMS44IgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hanYvLS9hanYt NC4xMS44LnRneiM4MmZmYjAyYjI5ZTY2MmFlNTNiZGMyMGFmMTU5NDc3MDY3 MzljNTM2IgorICBkZXBlbmRlbmNpZXM6CisgICAgY28gIl40LjYuMCIKKyAg ICBqc29uLXN0YWJsZS1zdHJpbmdpZnkgIl4xLjAuMSIKKworYWxpZ24tdGV4 dEBeMC4xLjEsIGFsaWduLXRleHRAXjAuMS4zOgorICB2ZXJzaW9uICIwLjEu NCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v YWxpZ24tdGV4dC8tL2FsaWduLXRleHQtMC4xLjQudGd6IzBjZDkwYTU2MTA5 M2YzNWQwYTk5MjU2YzIyYjcwNjk0MzNmYWQxMTciCisgIGRlcGVuZGVuY2ll czoKKyAgICBraW5kLW9mICJeMy4wLjIiCisgICAgbG9uZ2VzdCAiXjEuMC4x IgorICAgIHJlcGVhdC1zdHJpbmcgIl4xLjUuMiIKKworYW1kZWZpbmVAPj0w LjAuNDoKKyAgdmVyc2lvbiAiMS4wLjEiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2FtZGVmaW5lLy0vYW1kZWZpbmUtMS4w LjEudGd6IzRhNTI4MmFjMTY0NzI5ZTkzNjE5YmNmZDNhZDE1MWY4MTdjZTkx ZjUiCisKK2Fuc2ktZXNjYXBlc0BeMS4xLjA6CisgIHZlcnNpb24gIjEuNC4w IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9h bnNpLWVzY2FwZXMvLS9hbnNpLWVzY2FwZXMtMS40LjAudGd6I2QzYThhODNi MzE5YWE2Nzc5MzY2MmIxM2U3NjFjNzkxMTQyMjMwNmUiCisKK2Fuc2ktcmVn ZXhAXjIuMC4wOgorICB2ZXJzaW9uICIyLjEuMSIKKyAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYW5zaS1yZWdleC8tL2Fuc2kt cmVnZXgtMi4xLjEudGd6I2MzYjMzYWI1ZWUzNjBkODZlMGU2MjhmMDQ2OGFl N2VmMjdkNjU0ZGYiCisKK2Fuc2ktc3R5bGVzQF4yLjIuMToKKyAgdmVyc2lv biAiMi4yLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2Fuc2ktc3R5bGVzLy0vYW5zaS1zdHlsZXMtMi4yLjEudGd6I2I0 MzJkZDMzNThiNjM0Y2Y3NWUxZTQ2NjQzNjgyNDA1MzNjMWRkYmUiCisKK2Fu eW1hdGNoQF4xLjMuMDoKKyAgdmVyc2lvbiAiMS4zLjAiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2FueW1hdGNoLy0vYW55 bWF0Y2gtMS4zLjAudGd6I2EzZTUyZmEzOTE2OGM4MjVmZjU3YjAyNDgxMjZj ZTVhOGZmOTU1MDciCisgIGRlcGVuZGVuY2llczoKKyAgICBhcnJpZnkgIl4x LjAuMCIKKyAgICBtaWNyb21hdGNoICJeMi4xLjUiCisKK2Fwcm9iYUBeMS4w LjM6CisgIHZlcnNpb24gIjEuMS4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9hcHJvYmEvLS9hcHJvYmEtMS4xLjIudGd6 IzQ1YzY2MjkwOTRkZTRlOTZmNjkzZWY3ZWFiNzRhZTA3OWMyNDBmYzEiCisK K2FyZS13ZS10aGVyZS15ZXRAfjEuMS4yOgorICB2ZXJzaW9uICIxLjEuNCIK KyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYXJl LXdlLXRoZXJlLXlldC8tL2FyZS13ZS10aGVyZS15ZXQtMS4xLjQudGd6I2Ji NWRjYTM4MmJiOTRmMDVlMTUxOTQzNzNkMTZmZDNiYTFjYTExMGQiCisgIGRl cGVuZGVuY2llczoKKyAgICBkZWxlZ2F0ZXMgIl4xLjAuMCIKKyAgICByZWFk YWJsZS1zdHJlYW0gIl4yLjAuNiIKKworYXJncGFyc2VAXjEuMC43OgorICB2 ZXJzaW9uICIxLjAuOSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vYXJncGFyc2UvLS9hcmdwYXJzZS0xLjAuOS50Z3ojNzNk ODNiYzI2M2Y4NmU5N2Y4Y2M0ZjZiYWUxYjBlOTBhN2QyMmM4NiIKKyAgZGVw ZW5kZW5jaWVzOgorICAgIHNwcmludGYtanMgIn4xLjAuMiIKKworYXJyLWRp ZmZAXjIuMC4wOgorICB2ZXJzaW9uICIyLjAuMCIKKyAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYXJyLWRpZmYvLS9hcnItZGlm Zi0yLjAuMC50Z3ojOGYzYjgyN2Y5NTVhOGJkNjY5Njk3ZTRhNDI1NmFjM2Nl YWUzNTZjZiIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGFyci1mbGF0dGVuICJe MS4wLjEiCisKK2Fyci1mbGF0dGVuQF4xLjAuMToKKyAgdmVyc2lvbiAiMS4w LjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L2Fyci1mbGF0dGVuLy0vYXJyLWZsYXR0ZW4tMS4wLjMudGd6I2EyNzRlZDg1 YWMwODg0OWI2YmQ3ODQ3YzQ1ODA3NDVkYzUxYWRmYjEiCisKK2FycmF5LWZp bHRlckB+MC4wLjA6CisgIHZlcnNpb24gIjAuMC4xIgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hcnJheS1maWx0ZXIvLS9h cnJheS1maWx0ZXItMC4wLjEudGd6IzdkYThjZjJlMjY2MjhlZDczMjgwMzU4 MWZkMjFmNjdjYWNkMmVlZWMiCisKK2FycmF5LW1hcEB+MC4wLjA6CisgIHZl cnNpb24gIjAuMC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9hcnJheS1tYXAvLS9hcnJheS1tYXAtMC4wLjAudGd6Izg4 YTJiYWI3M2QxY2Y3YmNkNWMxYjExOGEwMDNmNjZmNjY1ZmE2NjIiCisKK2Fy cmF5LXJlZHVjZUB+MC4wLjA6CisgIHZlcnNpb24gIjAuMC4wIgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hcnJheS1yZWR1 Y2UvLS9hcnJheS1yZWR1Y2UtMC4wLjAudGd6IzE3Mzg5OWQzZmZkMWM3ZDkz ODNlNDQ3OTUyNWRiZTI3OGNhYjVmMmIiCisKK2FycmF5LXNsaWNlQF4wLjIu MzoKKyAgdmVyc2lvbiAiMC4yLjMiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2FycmF5LXNsaWNlLy0vYXJyYXktc2xpY2Ut MC4yLjMudGd6I2RkM2NmYjgwZWQ3OTczYTc1MTE3Y2RhYzY5YjBiOTllYzg2 MTg2ZjUiCisKK2FycmF5LXVuaW9uQF4xLjAuMToKKyAgdmVyc2lvbiAiMS4w LjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L2FycmF5LXVuaW9uLy0vYXJyYXktdW5pb24tMS4wLjIudGd6IzlhMzQ0MTBl NGY0ZTNkYTIzZGVhMzc1YmU1YmU3MGYyNDc3OGVjMzkiCisgIGRlcGVuZGVu Y2llczoKKyAgICBhcnJheS11bmlxICJeMS4wLjEiCisKK2FycmF5LXVuaXFA XjEuMC4xOgorICB2ZXJzaW9uICIxLjAuMyIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vYXJyYXktdW5pcS8tL2FycmF5LXVu aXEtMS4wLjMudGd6I2FmNmFjODc3YTI1Y2M3Zjc0ZTA1ODg5NDc1Mzg1OGRm ZGIyNGZkYjYiCisKK2FycmF5LXVuaXF1ZUBeMC4yLjE6CisgIHZlcnNpb24g IjAuMi4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9hcnJheS11bmlxdWUvLS9hcnJheS11bmlxdWUtMC4yLjEudGd6I2Ex ZDk3Y2NhZmNiYzI2MjVjYzcwZmFkY2ViMzZhNTBjNThiMDFhNTMiCisKK2Fy cmF5LnByb3RvdHlwZS5maW5kQF4yLjAuMToKKyAgdmVyc2lvbiAiMi4wLjQi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Fy cmF5LnByb3RvdHlwZS5maW5kLy0vYXJyYXkucHJvdG90eXBlLmZpbmQtMi4w LjQudGd6IzU1NmE1YzUzNjJjMDg2NDgzMjNkZGFlYjlkZTlkMTRiYzE4NjRj OTAiCisgIGRlcGVuZGVuY2llczoKKyAgICBkZWZpbmUtcHJvcGVydGllcyAi XjEuMS4yIgorICAgIGVzLWFic3RyYWN0ICJeMS43LjAiCisKK2FycmF5YnVm ZmVyLnNsaWNlQDAuMC42OgorICB2ZXJzaW9uICIwLjAuNiIKKyAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYXJyYXlidWZmZXIu c2xpY2UvLS9hcnJheWJ1ZmZlci5zbGljZS0wLjAuNi50Z3ojZjMzYjIxNTlm MDUzMmEzZjMxMDdhMjcyYzBjY2ZiZDFhZDI5NzljYSIKKworYXJyaWZ5QF4x LjAuMDoKKyAgdmVyc2lvbiAiMS4wLjEiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2FycmlmeS8tL2FycmlmeS0xLjAuMS50 Z3ojODk4NTA4ZGEyMjI2ZjM4MGRmOTA0NzI4NDU2ODQ5YzE1MDFhNGIwZCIK KworYXNhcEB+Mi4wLjM6CisgIHZlcnNpb24gIjIuMC41IgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hc2FwLy0vYXNhcC0y LjAuNS50Z3ojNTIyNzY1YjUwYzM1MTA0OTBlNTJkN2RjZmUwODVlZjliYTk2 OTU4ZiIKKworYXNuMS5qc0BeNC4wLjA6CisgIHZlcnNpb24gIjQuOS4xIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hc24x LmpzLy0vYXNuMS5qcy00LjkuMS50Z3ojNDhiYTI0MGI0NWE5MjgwZTk0NzQ4 OTkwYmE1OTdkMjE2NjE3ZmQ0MCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGJu LmpzICJeNC4wLjAiCisgICAgaW5oZXJpdHMgIl4yLjAuMSIKKyAgICBtaW5p bWFsaXN0aWMtYXNzZXJ0ICJeMS4wLjAiCisKK2FzbjFAfjAuMi4zOgorICB2 ZXJzaW9uICIwLjIuMyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vYXNuMS8tL2FzbjEtMC4yLjMudGd6I2RhYzg3ODc3MTNj OTk2Njg0OWZjODE4MDc3N2ViZTljMWRkZjNiODYiCisKK2Fzc2VydC1wbHVz QDEuMC4wLCBhc3NlcnQtcGx1c0BeMS4wLjA6CisgIHZlcnNpb24gIjEuMC4w IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9h c3NlcnQtcGx1cy8tL2Fzc2VydC1wbHVzLTEuMC4wLnRneiNmMTJlMGYzYzVk NzdiMGIxY2RkOTE0Njk0MmU0ZTk2YzFlNGRkNTI1IgorCithc3NlcnQtcGx1 c0BeMC4yLjA6CisgIHZlcnNpb24gIjAuMi4wIgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hc3NlcnQtcGx1cy8tL2Fzc2Vy dC1wbHVzLTAuMi4wLnRneiNkNzRlMWI4N2U3YWZmYzBkYjhhYWRiNzAyMWYz ZmU0ODEwMWFiMjM0IgorCithc3NlcnRAXjEuMS4xLCBhc3NlcnRAXjEuNC4w OgorICB2ZXJzaW9uICIxLjQuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vYXNzZXJ0Ly0vYXNzZXJ0LTEuNC4xLnRneiM5 OTkxMmQ1OTE4MzZiNWE2ZjViMzQ1YzBmMDdlZWZjMDhmYzY1ZDkxIgorICBk ZXBlbmRlbmNpZXM6CisgICAgdXRpbCAiMC4xMC4zIgorCithc3R3QF4yLjAu MDoKKyAgdmVyc2lvbiAiMi4yLjAiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2FzdHcvLS9hc3R3LTIuMi4wLnRneiM3YmQ0 MTc4NGQzMjQ5Mzk4N2FlYjIzOWI2YjRlMWM1N2E4NzNiOTE3IgorICBkZXBl bmRlbmNpZXM6CisgICAgYWNvcm4gIl40LjAuMyIKKworYXN5bmMtZWFjaEBe MS4wLjA6CisgIHZlcnNpb24gIjEuMC4xIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9hc3luYy1lYWNoLy0vYXN5bmMtZWFj aC0xLjAuMS50Z3ojMTlkMzg2YTFkOWVkYzZlN2MxYzg1ZDM4OGFlZGJjYzU2 ZDMzNjAyZCIKKworYXN5bmNAXjIuMS4yOgorICB2ZXJzaW9uICIyLjQuMSIK KyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYXN5 bmMvLS9hc3luYy0yLjQuMS50Z3ojNjJhNTZiMjc5Yzk4YTExZDA5ODcwOTZh MDFjYzNlZWI4ZWI3YmJkNyIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGxvZGFz aCAiXjQuMTQuMCIKKworYXN5bmNAfjAuOS4wOgorICB2ZXJzaW9uICIwLjku MiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v YXN5bmMvLS9hc3luYy0wLjkuMi50Z3ojYWVhNzRkNWU2MWMxZjg5OTYxM2Jm NjRiZGE2NmQ0Yzc4ZjJmZDE3ZCIKKworYXN5bmNraXRAXjAuNC4wOgorICB2 ZXJzaW9uICIwLjQuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vYXN5bmNraXQvLS9hc3luY2tpdC0wLjQuMC50Z3ojYzc5 ZWQ5N2Y3ZjM0Y2I4ZjJiYTFiYzk3OTBiY2MzNjY0NzRiNGI3OSIKKworYXdz LXNpZ24yQH4wLjYuMDoKKyAgdmVyc2lvbiAiMC42LjAiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2F3cy1zaWduMi8tL2F3 cy1zaWduMi0wLjYuMC50Z3ojMTQzNDJkZDM4ZGJjYzk0ZDBlNWI4N2Q3NjNj ZDYzNjEyYzBlNzk0ZiIKKworYXdzNEBeMS4yLjE6CisgIHZlcnNpb24gIjEu Ni4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9hd3M0Ly0vYXdzNC0xLjYuMC50Z3ojODNlZjVjYTg2MGIyYjMyZTRhMGRl ZWRlZThjNzcxYjlkYjU3NDcxZSIKKworYXhpb3NAXjAuMTYuMToKKyAgdmVy c2lvbiAiMC4xNi4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9heGlvcy8tL2F4aW9zLTAuMTYuMi50Z3ojYmE0ZjkyZjE3 MTY3ZGZiYWI0MDk4Mzc4NTQ1NGI5YWMxNDljM2M2ZCIKKyAgZGVwZW5kZW5j aWVzOgorICAgIGZvbGxvdy1yZWRpcmVjdHMgIl4xLjIuMyIKKyAgICBpcy1i dWZmZXIgIl4xLjEuNSIKKworYmFiZWwtY29kZS1mcmFtZUBeNi4xNi4wLCBi YWJlbC1jb2RlLWZyYW1lQF42LjIyLjA6CisgIHZlcnNpb24gIjYuMjIuMCIK KyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYmFi ZWwtY29kZS1mcmFtZS8tL2JhYmVsLWNvZGUtZnJhbWUtNi4yMi4wLnRneiMw Mjc2MjBiZWU1NjdhODhjMzI1NjE1NzRlN2ZkMDgwMWQzMzExOGU0IgorICBk ZXBlbmRlbmNpZXM6CisgICAgY2hhbGsgIl4xLjEuMCIKKyAgICBlc3V0aWxz ICJeMi4wLjIiCisgICAganMtdG9rZW5zICJeMy4wLjAiCisKK2JhYmVsLWNv cmVAXjYuMC4wLCBiYWJlbC1jb3JlQF42LjAuMTQsIGJhYmVsLWNvcmVAXjYu MjQuMSwgYmFiZWwtY29yZUB+Ni4yNC4wOgorICB2ZXJzaW9uICI2LjI0LjEi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Jh YmVsLWNvcmUvLS9iYWJlbC1jb3JlLTYuMjQuMS50Z3ojOGM0Mjg1NjRkY2Ux ZTFmNDFmYjMzN2VjMzRmNGMzYjAyMmI1YWQ4MyIKKyAgZGVwZW5kZW5jaWVz OgorICAgIGJhYmVsLWNvZGUtZnJhbWUgIl42LjIyLjAiCisgICAgYmFiZWwt Z2VuZXJhdG9yICJeNi4yNC4xIgorICAgIGJhYmVsLWhlbHBlcnMgIl42LjI0 LjEiCisgICAgYmFiZWwtbWVzc2FnZXMgIl42LjIzLjAiCisgICAgYmFiZWwt cmVnaXN0ZXIgIl42LjI0LjEiCisgICAgYmFiZWwtcnVudGltZSAiXjYuMjIu MCIKKyAgICBiYWJlbC10ZW1wbGF0ZSAiXjYuMjQuMSIKKyAgICBiYWJlbC10 cmF2ZXJzZSAiXjYuMjQuMSIKKyAgICBiYWJlbC10eXBlcyAiXjYuMjQuMSIK KyAgICBiYWJ5bG9uICJeNi4xMS4wIgorICAgIGNvbnZlcnQtc291cmNlLW1h cCAiXjEuMS4wIgorICAgIGRlYnVnICJeMi4xLjEiCisgICAganNvbjUgIl4w LjUuMCIKKyAgICBsb2Rhc2ggIl40LjIuMCIKKyAgICBtaW5pbWF0Y2ggIl4z LjAuMiIKKyAgICBwYXRoLWlzLWFic29sdXRlICJeMS4wLjAiCisgICAgcHJp dmF0ZSAiXjAuMS42IgorICAgIHNsYXNoICJeMS4wLjAiCisgICAgc291cmNl LW1hcCAiXjAuNS4wIgorCitiYWJlbC1nZW5lcmF0b3JAXjYuMjQuMToKKyAg dmVyc2lvbiAiNi4yNC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9iYWJlbC1nZW5lcmF0b3IvLS9iYWJlbC1nZW5lcmF0 b3ItNi4yNC4xLnRneiNlNzE1ZjQ4NmM1OGRlZDI1NjQ5ZDg4ODk0NGQ1MmFh MDdjNWQ5NDk3IgorICBkZXBlbmRlbmNpZXM6CisgICAgYmFiZWwtbWVzc2Fn ZXMgIl42LjIzLjAiCisgICAgYmFiZWwtcnVudGltZSAiXjYuMjIuMCIKKyAg ICBiYWJlbC10eXBlcyAiXjYuMjQuMSIKKyAgICBkZXRlY3QtaW5kZW50ICJe NC4wLjAiCisgICAganNlc2MgIl4xLjMuMCIKKyAgICBsb2Rhc2ggIl40LjIu MCIKKyAgICBzb3VyY2UtbWFwICJeMC41LjAiCisgICAgdHJpbS1yaWdodCAi XjEuMC4xIgorCitiYWJlbC1oZWxwZXItYnVpbGRlci1yZWFjdC1qc3hAXjYu MjQuMToKKyAgdmVyc2lvbiAiNi4yNC4xIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9iYWJlbC1oZWxwZXItYnVpbGRlci1y ZWFjdC1qc3gvLS9iYWJlbC1oZWxwZXItYnVpbGRlci1yZWFjdC1qc3gtNi4y NC4xLnRneiMwYWQ3OTE3ZTMzYzhkNzUxZTY0NmRhY2E0ZTc3Y2MxOTM3N2Qy Y2JjIgorICBkZXBlbmRlbmNpZXM6CisgICAgYmFiZWwtcnVudGltZSAiXjYu MjIuMCIKKyAgICBiYWJlbC10eXBlcyAiXjYuMjQuMSIKKyAgICBlc3V0aWxz ICJeMi4wLjAiCisKK2JhYmVsLWhlbHBlci1jYWxsLWRlbGVnYXRlQF42LjI0 LjE6CisgIHZlcnNpb24gIjYuMjQuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vYmFiZWwtaGVscGVyLWNhbGwtZGVsZWdh dGUvLS9iYWJlbC1oZWxwZXItY2FsbC1kZWxlZ2F0ZS02LjI0LjEudGd6I2Vj ZTZhYWNkZGM3NmU0MWMzNDYxZjg4YmZjNTc1YmQwZGFhMmRmOGQiCisgIGRl cGVuZGVuY2llczoKKyAgICBiYWJlbC1oZWxwZXItaG9pc3QtdmFyaWFibGVz ICJeNi4yNC4xIgorICAgIGJhYmVsLXJ1bnRpbWUgIl42LjIyLjAiCisgICAg YmFiZWwtdHJhdmVyc2UgIl42LjI0LjEiCisgICAgYmFiZWwtdHlwZXMgIl42 LjI0LjEiCisKK2JhYmVsLWhlbHBlci1kZWZpbmUtbWFwQF42LjI0LjE6Cisg IHZlcnNpb24gIjYuMjQuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vYmFiZWwtaGVscGVyLWRlZmluZS1tYXAvLS9iYWJl bC1oZWxwZXItZGVmaW5lLW1hcC02LjI0LjEudGd6IzdhOTc0N2YyNThkODk0 N2QzMmQ1MTVmNmFhMWM3YmQwMjIwNGEwODAiCisgIGRlcGVuZGVuY2llczoK KyAgICBiYWJlbC1oZWxwZXItZnVuY3Rpb24tbmFtZSAiXjYuMjQuMSIKKyAg ICBiYWJlbC1ydW50aW1lICJeNi4yMi4wIgorICAgIGJhYmVsLXR5cGVzICJe Ni4yNC4xIgorICAgIGxvZGFzaCAiXjQuMi4wIgorCitiYWJlbC1oZWxwZXIt ZnVuY3Rpb24tbmFtZUBeNi4yNC4xOgorICB2ZXJzaW9uICI2LjI0LjEiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2JhYmVs LWhlbHBlci1mdW5jdGlvbi1uYW1lLy0vYmFiZWwtaGVscGVyLWZ1bmN0aW9u LW5hbWUtNi4yNC4xLnRneiNkMzQ3NWI4YzAzZWQ5ODI0MmEyNWI0ODM1MWFi MTgzOTlkMzU4MGE5IgorICBkZXBlbmRlbmNpZXM6CisgICAgYmFiZWwtaGVs cGVyLWdldC1mdW5jdGlvbi1hcml0eSAiXjYuMjQuMSIKKyAgICBiYWJlbC1y dW50aW1lICJeNi4yMi4wIgorICAgIGJhYmVsLXRlbXBsYXRlICJeNi4yNC4x IgorICAgIGJhYmVsLXRyYXZlcnNlICJeNi4yNC4xIgorICAgIGJhYmVsLXR5 cGVzICJeNi4yNC4xIgorCitiYWJlbC1oZWxwZXItZ2V0LWZ1bmN0aW9uLWFy aXR5QF42LjI0LjE6CisgIHZlcnNpb24gIjYuMjQuMSIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYmFiZWwtaGVscGVyLWdl dC1mdW5jdGlvbi1hcml0eS8tL2JhYmVsLWhlbHBlci1nZXQtZnVuY3Rpb24t YXJpdHktNi4yNC4xLnRneiM4Zjc3ODJhYTkzNDA3YzQxZDNhYTUwOTA4Zjg5 YjAzMWIxYjY4NTNkIgorICBkZXBlbmRlbmNpZXM6CisgICAgYmFiZWwtcnVu dGltZSAiXjYuMjIuMCIKKyAgICBiYWJlbC10eXBlcyAiXjYuMjQuMSIKKwor YmFiZWwtaGVscGVyLWhvaXN0LXZhcmlhYmxlc0BeNi4yNC4xOgorICB2ZXJz aW9uICI2LjI0LjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2JhYmVsLWhlbHBlci1ob2lzdC12YXJpYWJsZXMvLS9iYWJl bC1oZWxwZXItaG9pc3QtdmFyaWFibGVzLTYuMjQuMS50Z3ojMWVjYjI3Njg5 YzlkMjU1MTNlYWRiYzk5MTRhNzNmNTQwOGJlN2E3NiIKKyAgZGVwZW5kZW5j aWVzOgorICAgIGJhYmVsLXJ1bnRpbWUgIl42LjIyLjAiCisgICAgYmFiZWwt dHlwZXMgIl42LjI0LjEiCisKK2JhYmVsLWhlbHBlci1vcHRpbWlzZS1jYWxs LWV4cHJlc3Npb25AXjYuMjQuMToKKyAgdmVyc2lvbiAiNi4yNC4xIgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9iYWJlbC1o ZWxwZXItb3B0aW1pc2UtY2FsbC1leHByZXNzaW9uLy0vYmFiZWwtaGVscGVy LW9wdGltaXNlLWNhbGwtZXhwcmVzc2lvbi02LjI0LjEudGd6I2Y3YTEzNDI3 YmE5ZjczZjhmNGZhOTkzYzU0YTk3ODgyZDEyNDQyNTciCisgIGRlcGVuZGVu Y2llczoKKyAgICBiYWJlbC1ydW50aW1lICJeNi4yMi4wIgorICAgIGJhYmVs LXR5cGVzICJeNi4yNC4xIgorCitiYWJlbC1oZWxwZXItcmVnZXhAXjYuMjQu MToKKyAgdmVyc2lvbiAiNi4yNC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9iYWJlbC1oZWxwZXItcmVnZXgvLS9iYWJl bC1oZWxwZXItcmVnZXgtNi4yNC4xLnRneiNkMzZlMjJmYWIxMDA4ZDc5ZDg4 NjQ4ZTMyMTE2ODY4MTI4NDU2Y2U4IgorICBkZXBlbmRlbmNpZXM6CisgICAg YmFiZWwtcnVudGltZSAiXjYuMjIuMCIKKyAgICBiYWJlbC10eXBlcyAiXjYu MjQuMSIKKyAgICBsb2Rhc2ggIl40LjIuMCIKKworYmFiZWwtaGVscGVyLXJl cGxhY2Utc3VwZXJzQF42LjI0LjE6CisgIHZlcnNpb24gIjYuMjQuMSIKKyAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYmFiZWwt aGVscGVyLXJlcGxhY2Utc3VwZXJzLy0vYmFiZWwtaGVscGVyLXJlcGxhY2Ut c3VwZXJzLTYuMjQuMS50Z3ojYmY2ZGJmZTQzOTM4ZDE3MzY5YTIxM2NhOGE4 YmY3NGI2YTkwYWIxYSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGJhYmVsLWhl bHBlci1vcHRpbWlzZS1jYWxsLWV4cHJlc3Npb24gIl42LjI0LjEiCisgICAg YmFiZWwtbWVzc2FnZXMgIl42LjIzLjAiCisgICAgYmFiZWwtcnVudGltZSAi XjYuMjIuMCIKKyAgICBiYWJlbC10ZW1wbGF0ZSAiXjYuMjQuMSIKKyAgICBi YWJlbC10cmF2ZXJzZSAiXjYuMjQuMSIKKyAgICBiYWJlbC10eXBlcyAiXjYu MjQuMSIKKworYmFiZWwtaGVscGVyc0BeNi4yNC4xOgorICB2ZXJzaW9uICI2 LjI0LjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL2JhYmVsLWhlbHBlcnMvLS9iYWJlbC1oZWxwZXJzLTYuMjQuMS50Z3oj MzQ3MWRlOWNhZWMzODhlNWM4NTBlNTk3ZTU4YTI2ZGRmMzc2MDJiMiIKKyAg ZGVwZW5kZW5jaWVzOgorICAgIGJhYmVsLXJ1bnRpbWUgIl42LjIyLjAiCisg ICAgYmFiZWwtdGVtcGxhdGUgIl42LjI0LjEiCisKK2JhYmVsLWxvYWRlckB+ Ni40LjE6CisgIHZlcnNpb24gIjYuNC4xIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9iYWJlbC1sb2FkZXIvLS9iYWJlbC1s b2FkZXItNi40LjEudGd6IzBiMzQxMTJkNWIwNzQ4YThkY2RiZjUxYWNmNmY5 YmQ0MmQ1MGI4Y2EiCisgIGRlcGVuZGVuY2llczoKKyAgICBmaW5kLWNhY2hl LWRpciAiXjAuMS4xIgorICAgIGxvYWRlci11dGlscyAiXjAuMi4xNiIKKyAg ICBta2RpcnAgIl4wLjUuMSIKKyAgICBvYmplY3QtYXNzaWduICJeNC4wLjEi CisKK2JhYmVsLW1lc3NhZ2VzQF42LjIzLjA6CisgIHZlcnNpb24gIjYuMjMu MCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v YmFiZWwtbWVzc2FnZXMvLS9iYWJlbC1tZXNzYWdlcy02LjIzLjAudGd6I2Yz Y2RmNDcwMzg1ODAzNWIyYTI5NTFjNmVjNWVkZjZjNjJmMjYzMGUiCisgIGRl cGVuZGVuY2llczoKKyAgICBiYWJlbC1ydW50aW1lICJeNi4yMi4wIgorCiti YWJlbC1wbHVnaW4tY2hlY2stZXMyMDE1LWNvbnN0YW50c0BeNi4yMi4wLCBi YWJlbC1wbHVnaW4tY2hlY2stZXMyMDE1LWNvbnN0YW50c0BeNi4zLjEzOgor ICB2ZXJzaW9uICI2LjIyLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL2JhYmVsLXBsdWdpbi1jaGVjay1lczIwMTUtY29u c3RhbnRzLy0vYmFiZWwtcGx1Z2luLWNoZWNrLWVzMjAxNS1jb25zdGFudHMt Ni4yMi4wLnRneiMzNTE1N2IxMDE0MjZmZDJmZmQzZGEzZjc1YzdkMWU5MTgz NWJiZjhhIgorICBkZXBlbmRlbmNpZXM6CisgICAgYmFiZWwtcnVudGltZSAi XjYuMjIuMCIKKworYmFiZWwtcGx1Z2luLXN5bnRheC1mbG93QF42LjE4LjA6 CisgIHZlcnNpb24gIjYuMTguMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vYmFiZWwtcGx1Z2luLXN5bnRheC1mbG93Ly0v YmFiZWwtcGx1Z2luLXN5bnRheC1mbG93LTYuMTguMC50Z3ojNGMzYWIyMGEy YWYyNmFhMjBjZDI1OTk1YzM5OGM0ZWI3MDMxMGM4ZCIKKworYmFiZWwtcGx1 Z2luLXN5bnRheC1qc3hAXjYuMy4xMywgYmFiZWwtcGx1Z2luLXN5bnRheC1q c3hAXjYuOC4wOgorICB2ZXJzaW9uICI2LjE4LjAiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2JhYmVsLXBsdWdpbi1zeW50 YXgtanN4Ly0vYmFiZWwtcGx1Z2luLXN5bnRheC1qc3gtNi4xOC4wLnRneiMw YWYzMmE5YTZlMTNjYTdhM2ZkNTA2OWU2MmQ3YjBmNThkMGQ4OTQ2IgorCiti YWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1hcnJvdy1mdW5jdGlvbnNA XjYuMjIuMCwgYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1lczIwMTUtYXJyb3ct ZnVuY3Rpb25zQF42LjMuMTM6CisgIHZlcnNpb24gIjYuMjIuMCIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYmFiZWwtcGx1 Z2luLXRyYW5zZm9ybS1lczIwMTUtYXJyb3ctZnVuY3Rpb25zLy0vYmFiZWwt cGx1Z2luLXRyYW5zZm9ybS1lczIwMTUtYXJyb3ctZnVuY3Rpb25zLTYuMjIu MC50Z3ojNDUyNjkyY2I3MTFkNWY3OWRjN2Y4NWU0NDBjZTQxYjlmMjQ0ZDIy MSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGJhYmVsLXJ1bnRpbWUgIl42LjIy LjAiCisKK2JhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LWJsb2NrLXNj b3BlZC1mdW5jdGlvbnNAXjYuMjIuMCwgYmFiZWwtcGx1Z2luLXRyYW5zZm9y bS1lczIwMTUtYmxvY2stc2NvcGVkLWZ1bmN0aW9uc0BeNi4zLjEzOgorICB2 ZXJzaW9uICI2LjIyLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL2JhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LWJs b2NrLXNjb3BlZC1mdW5jdGlvbnMvLS9iYWJlbC1wbHVnaW4tdHJhbnNmb3Jt LWVzMjAxNS1ibG9jay1zY29wZWQtZnVuY3Rpb25zLTYuMjIuMC50Z3ojYmJj NTFiNDlmOTY0ZDcwY2I4ZDhlMGI5NGU4MjAyNDZjZTNhNjE0MSIKKyAgZGVw ZW5kZW5jaWVzOgorICAgIGJhYmVsLXJ1bnRpbWUgIl42LjIyLjAiCisKK2Jh YmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LWJsb2NrLXNjb3BpbmdAXjYu MjQuMSwgYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1lczIwMTUtYmxvY2stc2Nv cGluZ0BeNi45LjA6CisgIHZlcnNpb24gIjYuMjQuMSIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYmFiZWwtcGx1Z2luLXRy YW5zZm9ybS1lczIwMTUtYmxvY2stc2NvcGluZy8tL2JhYmVsLXBsdWdpbi10 cmFuc2Zvcm0tZXMyMDE1LWJsb2NrLXNjb3BpbmctNi4yNC4xLnRneiM3NmMy OTVkYzNhNDc0MWIxNjY1YWRmZDMxNjcyMTVkY2ZmMzJhNTc2IgorICBkZXBl bmRlbmNpZXM6CisgICAgYmFiZWwtcnVudGltZSAiXjYuMjIuMCIKKyAgICBi YWJlbC10ZW1wbGF0ZSAiXjYuMjQuMSIKKyAgICBiYWJlbC10cmF2ZXJzZSAi XjYuMjQuMSIKKyAgICBiYWJlbC10eXBlcyAiXjYuMjQuMSIKKyAgICBsb2Rh c2ggIl40LjIuMCIKKworYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1lczIwMTUt Y2xhc3Nlc0BeNi4yNC4xLCBiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAx NS1jbGFzc2VzQF42LjkuMDoKKyAgdmVyc2lvbiAiNi4yNC4xIgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9iYWJlbC1wbHVn aW4tdHJhbnNmb3JtLWVzMjAxNS1jbGFzc2VzLy0vYmFiZWwtcGx1Z2luLXRy YW5zZm9ybS1lczIwMTUtY2xhc3Nlcy02LjI0LjEudGd6IzVhNGM1OGE1MGM5 Yzk0NjFlNTY0YjRiMmEzYmZhYmM5N2EyNTg0ZGIiCisgIGRlcGVuZGVuY2ll czoKKyAgICBiYWJlbC1oZWxwZXItZGVmaW5lLW1hcCAiXjYuMjQuMSIKKyAg ICBiYWJlbC1oZWxwZXItZnVuY3Rpb24tbmFtZSAiXjYuMjQuMSIKKyAgICBi YWJlbC1oZWxwZXItb3B0aW1pc2UtY2FsbC1leHByZXNzaW9uICJeNi4yNC4x IgorICAgIGJhYmVsLWhlbHBlci1yZXBsYWNlLXN1cGVycyAiXjYuMjQuMSIK KyAgICBiYWJlbC1tZXNzYWdlcyAiXjYuMjMuMCIKKyAgICBiYWJlbC1ydW50 aW1lICJeNi4yMi4wIgorICAgIGJhYmVsLXRlbXBsYXRlICJeNi4yNC4xIgor ICAgIGJhYmVsLXRyYXZlcnNlICJeNi4yNC4xIgorICAgIGJhYmVsLXR5cGVz ICJeNi4yNC4xIgorCitiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1j b21wdXRlZC1wcm9wZXJ0aWVzQF42LjI0LjEsIGJhYmVsLXBsdWdpbi10cmFu c2Zvcm0tZXMyMDE1LWNvbXB1dGVkLXByb3BlcnRpZXNAXjYuMy4xMzoKKyAg dmVyc2lvbiAiNi4yNC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9iYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1j b21wdXRlZC1wcm9wZXJ0aWVzLy0vYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1l czIwMTUtY29tcHV0ZWQtcHJvcGVydGllcy02LjI0LjEudGd6IzZmZTJhOGQx Njg5NWQ1NjM0ZjRjZDk5OWI2ZDM0ODBhMzA4MTU5YjMiCisgIGRlcGVuZGVu Y2llczoKKyAgICBiYWJlbC1ydW50aW1lICJeNi4yMi4wIgorICAgIGJhYmVs LXRlbXBsYXRlICJeNi4yNC4xIgorCitiYWJlbC1wbHVnaW4tdHJhbnNmb3Jt LWVzMjAxNS1kZXN0cnVjdHVyaW5nQF42LjIyLjAsIGJhYmVsLXBsdWdpbi10 cmFuc2Zvcm0tZXMyMDE1LWRlc3RydWN0dXJpbmdAXjYuOS4wOgorICB2ZXJz aW9uICI2LjIzLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2JhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LWRlc3Ry dWN0dXJpbmcvLS9iYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1kZXN0 cnVjdHVyaW5nLTYuMjMuMC50Z3ojOTk3YmIxZjFhYjk2N2Y2ODJkMmIwODc2 ZmUzNThkNjBlNzY1YzU2ZCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGJhYmVs LXJ1bnRpbWUgIl42LjIyLjAiCisKK2JhYmVsLXBsdWdpbi10cmFuc2Zvcm0t ZXMyMDE1LWR1cGxpY2F0ZS1rZXlzQF42LjI0LjEsIGJhYmVsLXBsdWdpbi10 cmFuc2Zvcm0tZXMyMDE1LWR1cGxpY2F0ZS1rZXlzQF42LjYuMDoKKyAgdmVy c2lvbiAiNi4yNC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9iYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1kdXBs aWNhdGUta2V5cy8tL2JhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LWR1 cGxpY2F0ZS1rZXlzLTYuMjQuMS50Z3ojNzNlYjNkMzEwY2E5NjllM2VmOWVj OTFjNTM3NDFhNmYxNTc2NDIzZSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGJh YmVsLXJ1bnRpbWUgIl42LjIyLjAiCisgICAgYmFiZWwtdHlwZXMgIl42LjI0 LjEiCisKK2JhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LWZvci1vZkBe Ni4yMi4wLCBiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1mb3Itb2ZA XjYuNi4wOgorICB2ZXJzaW9uICI2LjIzLjAiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2JhYmVsLXBsdWdpbi10cmFuc2Zv cm0tZXMyMDE1LWZvci1vZi8tL2JhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMy MDE1LWZvci1vZi02LjIzLjAudGd6I2Y0N2M5NWIyYjYxM2RmMWQzZWNjMmZk Yjc1NzM2MjNjNzUyNDg2OTEiCisgIGRlcGVuZGVuY2llczoKKyAgICBiYWJl bC1ydW50aW1lICJeNi4yMi4wIgorCitiYWJlbC1wbHVnaW4tdHJhbnNmb3Jt LWVzMjAxNS1mdW5jdGlvbi1uYW1lQF42LjI0LjEsIGJhYmVsLXBsdWdpbi10 cmFuc2Zvcm0tZXMyMDE1LWZ1bmN0aW9uLW5hbWVAXjYuOS4wOgorICB2ZXJz aW9uICI2LjI0LjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2JhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LWZ1bmN0 aW9uLW5hbWUvLS9iYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1mdW5j dGlvbi1uYW1lLTYuMjQuMS50Z3ojODM0Yzg5ODUzYmMzNmIxYWYwZjNhNGM1 ZGJhYTk0ZmQ4ZWFjYWE4YiIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGJhYmVs LWhlbHBlci1mdW5jdGlvbi1uYW1lICJeNi4yNC4xIgorICAgIGJhYmVsLXJ1 bnRpbWUgIl42LjIyLjAiCisgICAgYmFiZWwtdHlwZXMgIl42LjI0LjEiCisK K2JhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LWxpdGVyYWxzQF42LjIy LjAsIGJhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LWxpdGVyYWxzQF42 LjMuMTM6CisgIHZlcnNpb24gIjYuMjIuMCIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vYmFiZWwtcGx1Z2luLXRyYW5zZm9y bS1lczIwMTUtbGl0ZXJhbHMvLS9iYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVz MjAxNS1saXRlcmFscy02LjIyLjAudGd6IzRmNTRhMDJkNmNkNjZjZjkxNTI4 MDAxOWEzMWQzMTkyNTM3N2NhMmUiCisgIGRlcGVuZGVuY2llczoKKyAgICBi YWJlbC1ydW50aW1lICJeNi4yMi4wIgorCitiYWJlbC1wbHVnaW4tdHJhbnNm b3JtLWVzMjAxNS1tb2R1bGVzLWFtZEBeNi4yNC4xOgorICB2ZXJzaW9uICI2 LjI0LjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL2JhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LW1vZHVsZXMtYW1k Ly0vYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1lczIwMTUtbW9kdWxlcy1hbWQt Ni4yNC4xLnRneiMzYjNlNTQwMTcyMzk4NDJkNmQxOWMzMDExYzRiZDJmMDBh MDBkMTU0IgorICBkZXBlbmRlbmNpZXM6CisgICAgYmFiZWwtcGx1Z2luLXRy YW5zZm9ybS1lczIwMTUtbW9kdWxlcy1jb21tb25qcyAiXjYuMjQuMSIKKyAg ICBiYWJlbC1ydW50aW1lICJeNi4yMi4wIgorICAgIGJhYmVsLXRlbXBsYXRl ICJeNi4yNC4xIgorCitiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1t b2R1bGVzLWNvbW1vbmpzQF42LjI0LjEsIGJhYmVsLXBsdWdpbi10cmFuc2Zv cm0tZXMyMDE1LW1vZHVsZXMtY29tbW9uanNAXjYuNi4wOgorICB2ZXJzaW9u ICI2LjI0LjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2JhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LW1vZHVsZXMt Y29tbW9uanMvLS9iYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1tb2R1 bGVzLWNvbW1vbmpzLTYuMjQuMS50Z3ojZDNlMzEwYjQwZWY2NjRhMzY2MjIy MDAwOTdjNmQ0NDAyOThmMmJmZSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGJh YmVsLXBsdWdpbi10cmFuc2Zvcm0tc3RyaWN0LW1vZGUgIl42LjI0LjEiCisg ICAgYmFiZWwtcnVudGltZSAiXjYuMjIuMCIKKyAgICBiYWJlbC10ZW1wbGF0 ZSAiXjYuMjQuMSIKKyAgICBiYWJlbC10eXBlcyAiXjYuMjQuMSIKKworYmFi ZWwtcGx1Z2luLXRyYW5zZm9ybS1lczIwMTUtbW9kdWxlcy1zeXN0ZW1qc0Be Ni4yNC4xOgorICB2ZXJzaW9uICI2LjI0LjEiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2JhYmVsLXBsdWdpbi10cmFuc2Zv cm0tZXMyMDE1LW1vZHVsZXMtc3lzdGVtanMvLS9iYWJlbC1wbHVnaW4tdHJh bnNmb3JtLWVzMjAxNS1tb2R1bGVzLXN5c3RlbWpzLTYuMjQuMS50Z3ojZmY4 OWExNDJiOTExOWE5MDYxOTVmNWYxMDZlY2YzMDVkOTQwN2QyMyIKKyAgZGVw ZW5kZW5jaWVzOgorICAgIGJhYmVsLWhlbHBlci1ob2lzdC12YXJpYWJsZXMg Il42LjI0LjEiCisgICAgYmFiZWwtcnVudGltZSAiXjYuMjIuMCIKKyAgICBi YWJlbC10ZW1wbGF0ZSAiXjYuMjQuMSIKKworYmFiZWwtcGx1Z2luLXRyYW5z Zm9ybS1lczIwMTUtbW9kdWxlcy11bWRAXjYuMjQuMToKKyAgdmVyc2lvbiAi Ni4yNC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9iYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1tb2R1bGVzLXVt ZC8tL2JhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LW1vZHVsZXMtdW1k LTYuMjQuMS50Z3ojYWM5OTdlNjI4NWNkMThlZDYxNzZhZGI2MDdkNjAyMzQ0 YWQzODQ2OCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGJhYmVsLXBsdWdpbi10 cmFuc2Zvcm0tZXMyMDE1LW1vZHVsZXMtYW1kICJeNi4yNC4xIgorICAgIGJh YmVsLXJ1bnRpbWUgIl42LjIyLjAiCisgICAgYmFiZWwtdGVtcGxhdGUgIl42 LjI0LjEiCisKK2JhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LW9iamVj dC1zdXBlckBeNi4yNC4xLCBiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAx NS1vYmplY3Qtc3VwZXJAXjYuMy4xMzoKKyAgdmVyc2lvbiAiNi4yNC4xIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9iYWJl bC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1vYmplY3Qtc3VwZXIvLS9iYWJl bC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1vYmplY3Qtc3VwZXItNi4yNC4x LnRneiMyNGNlZjY5YWUyMWNiODNhN2Y4NjAzZGFkMDIxZjU3MmViMjc4Zjhk IgorICBkZXBlbmRlbmNpZXM6CisgICAgYmFiZWwtaGVscGVyLXJlcGxhY2Ut c3VwZXJzICJeNi4yNC4xIgorICAgIGJhYmVsLXJ1bnRpbWUgIl42LjIyLjAi CisKK2JhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LXBhcmFtZXRlcnNA XjYuMjQuMSwgYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1lczIwMTUtcGFyYW1l dGVyc0BeNi45LjA6CisgIHZlcnNpb24gIjYuMjQuMSIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYmFiZWwtcGx1Z2luLXRy YW5zZm9ybS1lczIwMTUtcGFyYW1ldGVycy8tL2JhYmVsLXBsdWdpbi10cmFu c2Zvcm0tZXMyMDE1LXBhcmFtZXRlcnMtNi4yNC4xLnRneiM1N2FjMzUxYWI0 OWNhZjE0YTk3Y2QxM2IwOWY2NmZkZjBhNjI1ZjJiIgorICBkZXBlbmRlbmNp ZXM6CisgICAgYmFiZWwtaGVscGVyLWNhbGwtZGVsZWdhdGUgIl42LjI0LjEi CisgICAgYmFiZWwtaGVscGVyLWdldC1mdW5jdGlvbi1hcml0eSAiXjYuMjQu MSIKKyAgICBiYWJlbC1ydW50aW1lICJeNi4yMi4wIgorICAgIGJhYmVsLXRl bXBsYXRlICJeNi4yNC4xIgorICAgIGJhYmVsLXRyYXZlcnNlICJeNi4yNC4x IgorICAgIGJhYmVsLXR5cGVzICJeNi4yNC4xIgorCitiYWJlbC1wbHVnaW4t dHJhbnNmb3JtLWVzMjAxNS1zaG9ydGhhbmQtcHJvcGVydGllc0BeNi4yNC4x LCBiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1zaG9ydGhhbmQtcHJv cGVydGllc0BeNi4zLjEzOgorICB2ZXJzaW9uICI2LjI0LjEiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2JhYmVsLXBsdWdp bi10cmFuc2Zvcm0tZXMyMDE1LXNob3J0aGFuZC1wcm9wZXJ0aWVzLy0vYmFi ZWwtcGx1Z2luLXRyYW5zZm9ybS1lczIwMTUtc2hvcnRoYW5kLXByb3BlcnRp ZXMtNi4yNC4xLnRneiMyNGY4NzVkNjcyMWM4NzY2MWJiZDk5YTQ2MjJlNTFm MTRkZTM4YWEwIgorICBkZXBlbmRlbmNpZXM6CisgICAgYmFiZWwtcnVudGlt ZSAiXjYuMjIuMCIKKyAgICBiYWJlbC10eXBlcyAiXjYuMjQuMSIKKworYmFi ZWwtcGx1Z2luLXRyYW5zZm9ybS1lczIwMTUtc3ByZWFkQF42LjIyLjAsIGJh YmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LXNwcmVhZEBeNi4zLjEzOgor ICB2ZXJzaW9uICI2LjIyLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL2JhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1 LXNwcmVhZC8tL2JhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LXNwcmVh ZC02LjIyLjAudGd6I2Q2ZDY4YTk5Zjg5YWVkYzQ1MzZjODFhNTQyZThkZDlm MTc0NmY4ZDEiCisgIGRlcGVuZGVuY2llczoKKyAgICBiYWJlbC1ydW50aW1l ICJeNi4yMi4wIgorCitiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1z dGlja3ktcmVnZXhAXjYuMjQuMSwgYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1l czIwMTUtc3RpY2t5LXJlZ2V4QF42LjMuMTM6CisgIHZlcnNpb24gIjYuMjQu MSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v YmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1lczIwMTUtc3RpY2t5LXJlZ2V4Ly0v YmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1lczIwMTUtc3RpY2t5LXJlZ2V4LTYu MjQuMS50Z3ojMDBjMWNkYjFhY2E3MTExMmNkZjBjZjYxMjZjMmVkNmI0NTdj Y2RiYyIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGJhYmVsLWhlbHBlci1yZWdl eCAiXjYuMjQuMSIKKyAgICBiYWJlbC1ydW50aW1lICJeNi4yMi4wIgorICAg IGJhYmVsLXR5cGVzICJeNi4yNC4xIgorCitiYWJlbC1wbHVnaW4tdHJhbnNm b3JtLWVzMjAxNS10ZW1wbGF0ZS1saXRlcmFsc0BeNi4yMi4wLCBiYWJlbC1w bHVnaW4tdHJhbnNmb3JtLWVzMjAxNS10ZW1wbGF0ZS1saXRlcmFsc0BeNi42 LjA6CisgIHZlcnNpb24gIjYuMjIuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1l czIwMTUtdGVtcGxhdGUtbGl0ZXJhbHMvLS9iYWJlbC1wbHVnaW4tdHJhbnNm b3JtLWVzMjAxNS10ZW1wbGF0ZS1saXRlcmFscy02LjIyLjAudGd6I2E4NGIz NDUwZjdlOWY4ZjFmNjgzOWQ2ZDY4N2RhODRiYjEyMzZkOGQiCisgIGRlcGVu ZGVuY2llczoKKyAgICBiYWJlbC1ydW50aW1lICJeNi4yMi4wIgorCitiYWJl bC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS10eXBlb2Ytc3ltYm9sQF42LjIy LjAsIGJhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LXR5cGVvZi1zeW1i b2xAXjYuNi4wOgorICB2ZXJzaW9uICI2LjIzLjAiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2JhYmVsLXBsdWdpbi10cmFu c2Zvcm0tZXMyMDE1LXR5cGVvZi1zeW1ib2wvLS9iYWJlbC1wbHVnaW4tdHJh bnNmb3JtLWVzMjAxNS10eXBlb2Ytc3ltYm9sLTYuMjMuMC50Z3ojZGVjMDlm MWNkZGZmOTRiNTJhYzczZDUwNWM4NGRmNTlkY2NlYjM3MiIKKyAgZGVwZW5k ZW5jaWVzOgorICAgIGJhYmVsLXJ1bnRpbWUgIl42LjIyLjAiCisKK2JhYmVs LXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LXVuaWNvZGUtcmVnZXhAXjYuMjQu MSwgYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1lczIwMTUtdW5pY29kZS1yZWdl eEBeNi4zLjEzOgorICB2ZXJzaW9uICI2LjI0LjEiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2JhYmVsLXBsdWdpbi10cmFu c2Zvcm0tZXMyMDE1LXVuaWNvZGUtcmVnZXgvLS9iYWJlbC1wbHVnaW4tdHJh bnNmb3JtLWVzMjAxNS11bmljb2RlLXJlZ2V4LTYuMjQuMS50Z3ojZDM4YjEy ZjQyZWE3MzIzZjcyOTM4N2YxOGE3YzVhZTFmYWViMzVlOSIKKyAgZGVwZW5k ZW5jaWVzOgorICAgIGJhYmVsLWhlbHBlci1yZWdleCAiXjYuMjQuMSIKKyAg ICBiYWJlbC1ydW50aW1lICJeNi4yMi4wIgorICAgIHJlZ2V4cHUtY29yZSAi XjIuMC4wIgorCitiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWZsb3ctc3RyaXAt dHlwZXNAXjYuMjIuMDoKKyAgdmVyc2lvbiAiNi4yMi4wIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9iYWJlbC1wbHVnaW4t dHJhbnNmb3JtLWZsb3ctc3RyaXAtdHlwZXMvLS9iYWJlbC1wbHVnaW4tdHJh bnNmb3JtLWZsb3ctc3RyaXAtdHlwZXMtNi4yMi4wLnRneiM4NGNiNjcyOTM1 ZDQzNzE0ZmRjMzJiY2U4NDU2OGQ4NzQ0MWNmN2NmIgorICBkZXBlbmRlbmNp ZXM6CisgICAgYmFiZWwtcGx1Z2luLXN5bnRheC1mbG93ICJeNi4xOC4wIgor ICAgIGJhYmVsLXJ1bnRpbWUgIl42LjIyLjAiCisKK2JhYmVsLXBsdWdpbi10 cmFuc2Zvcm0tcmVhY3QtZGlzcGxheS1uYW1lQF42LjIzLjA6CisgIHZlcnNp b24gIjYuMjMuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1yZWFjdC1kaXNwbGF5 LW5hbWUvLS9iYWJlbC1wbHVnaW4tdHJhbnNmb3JtLXJlYWN0LWRpc3BsYXkt bmFtZS02LjIzLjAudGd6IzQzOTg5MTBjMzU4NDQxZGM0Y2VmMTg3ODcyNjRk MDQxMmVkMzZiMzciCisgIGRlcGVuZGVuY2llczoKKyAgICBiYWJlbC1ydW50 aW1lICJeNi4yMi4wIgorCitiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLXJlYWN0 LWpzeC1zZWxmQF42LjIyLjA6CisgIHZlcnNpb24gIjYuMjIuMCIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYmFiZWwtcGx1 Z2luLXRyYW5zZm9ybS1yZWFjdC1qc3gtc2VsZi8tL2JhYmVsLXBsdWdpbi10 cmFuc2Zvcm0tcmVhY3QtanN4LXNlbGYtNi4yMi4wLnRneiNkZjZkODBhOWRh MjYxMmExMjFlNmRkZDc1NThiY2JlY2YwNmU2MzZlIgorICBkZXBlbmRlbmNp ZXM6CisgICAgYmFiZWwtcGx1Z2luLXN5bnRheC1qc3ggIl42LjguMCIKKyAg ICBiYWJlbC1ydW50aW1lICJeNi4yMi4wIgorCitiYWJlbC1wbHVnaW4tdHJh bnNmb3JtLXJlYWN0LWpzeC1zb3VyY2VAXjYuMjIuMDoKKyAgdmVyc2lvbiAi Ni4yMi4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9iYWJlbC1wbHVnaW4tdHJhbnNmb3JtLXJlYWN0LWpzeC1zb3VyY2Uv LS9iYWJlbC1wbHVnaW4tdHJhbnNmb3JtLXJlYWN0LWpzeC1zb3VyY2UtNi4y Mi4wLnRneiM2NmFjMTIxNTNmNWNkMmQxN2IzYzE5MjY4ZjRiZjAxOTdmNDRl Y2Q2IgorICBkZXBlbmRlbmNpZXM6CisgICAgYmFiZWwtcGx1Z2luLXN5bnRh eC1qc3ggIl42LjguMCIKKyAgICBiYWJlbC1ydW50aW1lICJeNi4yMi4wIgor CitiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLXJlYWN0LWpzeEBeNi4yMy4wOgor ICB2ZXJzaW9uICI2LjI0LjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL2JhYmVsLXBsdWdpbi10cmFuc2Zvcm0tcmVhY3Qt anN4Ly0vYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1yZWFjdC1qc3gtNi4yNC4x LnRneiM4NDBhMDI4ZTdkZjQ2MGRmYzNhMmQyOWYwYzBkOTFmNjM3NmU2NmEz IgorICBkZXBlbmRlbmNpZXM6CisgICAgYmFiZWwtaGVscGVyLWJ1aWxkZXIt cmVhY3QtanN4ICJeNi4yNC4xIgorICAgIGJhYmVsLXBsdWdpbi1zeW50YXgt anN4ICJeNi44LjAiCisgICAgYmFiZWwtcnVudGltZSAiXjYuMjIuMCIKKwor YmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1yZWdlbmVyYXRvckBeNi4yNC4xLCBi YWJlbC1wbHVnaW4tdHJhbnNmb3JtLXJlZ2VuZXJhdG9yQF42LjkuMDoKKyAg dmVyc2lvbiAiNi4yNC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9iYWJlbC1wbHVnaW4tdHJhbnNmb3JtLXJlZ2VuZXJh dG9yLy0vYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1yZWdlbmVyYXRvci02LjI0 LjEudGd6I2I4ZGEzMDVhZDQzYzNjOTliNDg0OGU0ZmU0MDM3Yjc3MGQyM2M0 MTgiCisgIGRlcGVuZGVuY2llczoKKyAgICByZWdlbmVyYXRvci10cmFuc2Zv cm0gIjAuOS4xMSIKKworYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1zdHJpY3Qt bW9kZUBeNi4yNC4xOgorICB2ZXJzaW9uICI2LjI0LjEiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2JhYmVsLXBsdWdpbi10 cmFuc2Zvcm0tc3RyaWN0LW1vZGUvLS9iYWJlbC1wbHVnaW4tdHJhbnNmb3Jt LXN0cmljdC1tb2RlLTYuMjQuMS50Z3ojZDVmYWY3YWE1NzhhNjViYmU1OTFj ZjVlZGFlMDRhMGM2NzAyMDc1OCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGJh YmVsLXJ1bnRpbWUgIl42LjIyLjAiCisgICAgYmFiZWwtdHlwZXMgIl42LjI0 LjEiCisKK2JhYmVsLXBvbHlmaWxsQF42LjIzLjA6CisgIHZlcnNpb24gIjYu MjMuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vYmFiZWwtcG9seWZpbGwvLS9iYWJlbC1wb2x5ZmlsbC02LjIzLjAudGd6 IzgzNjRjYTYyZGY4ZWFmYjgzMDQ5OWY2OTkxNzc0NjZjM2IwMzQ5OWQiCisg IGRlcGVuZGVuY2llczoKKyAgICBiYWJlbC1ydW50aW1lICJeNi4yMi4wIgor ICAgIGNvcmUtanMgIl4yLjQuMCIKKyAgICByZWdlbmVyYXRvci1ydW50aW1l ICJeMC4xMC4wIgorCitiYWJlbC1wcmVzZXQtZXMyMDE1LXdpdGhvdXQtc3Ry aWN0QH4wLjAuNDoKKyAgdmVyc2lvbiAiMC4wLjQiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2JhYmVsLXByZXNldC1lczIw MTUtd2l0aG91dC1zdHJpY3QvLS9iYWJlbC1wcmVzZXQtZXMyMDE1LXdpdGhv dXQtc3RyaWN0LTAuMC40LnRneiM4OGM5ZjM2ZTc5ZDQ3NjJjNTgzNDdiMWE2 OThhMDdjMzViNmJkYTVkIgorICBkZXBlbmRlbmNpZXM6CisgICAgYmFiZWwt cGx1Z2luLWNoZWNrLWVzMjAxNS1jb25zdGFudHMgIl42LjMuMTMiCisgICAg YmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1lczIwMTUtYXJyb3ctZnVuY3Rpb25z ICJeNi4zLjEzIgorICAgIGJhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1 LWJsb2NrLXNjb3BlZC1mdW5jdGlvbnMgIl42LjMuMTMiCisgICAgYmFiZWwt cGx1Z2luLXRyYW5zZm9ybS1lczIwMTUtYmxvY2stc2NvcGluZyAiXjYuOS4w IgorICAgIGJhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LWNsYXNzZXMg Il42LjkuMCIKKyAgICBiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1j b21wdXRlZC1wcm9wZXJ0aWVzICJeNi4zLjEzIgorICAgIGJhYmVsLXBsdWdp bi10cmFuc2Zvcm0tZXMyMDE1LWRlc3RydWN0dXJpbmcgIl42LjkuMCIKKyAg ICBiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1kdXBsaWNhdGUta2V5 cyAiXjYuNi4wIgorICAgIGJhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1 LWZvci1vZiAiXjYuNi4wIgorICAgIGJhYmVsLXBsdWdpbi10cmFuc2Zvcm0t ZXMyMDE1LWZ1bmN0aW9uLW5hbWUgIl42LjkuMCIKKyAgICBiYWJlbC1wbHVn aW4tdHJhbnNmb3JtLWVzMjAxNS1saXRlcmFscyAiXjYuMy4xMyIKKyAgICBi YWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1tb2R1bGVzLWNvbW1vbmpz ICJeNi42LjAiCisgICAgYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1lczIwMTUt b2JqZWN0LXN1cGVyICJeNi4zLjEzIgorICAgIGJhYmVsLXBsdWdpbi10cmFu c2Zvcm0tZXMyMDE1LXBhcmFtZXRlcnMgIl42LjkuMCIKKyAgICBiYWJlbC1w bHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1zaG9ydGhhbmQtcHJvcGVydGllcyAi XjYuMy4xMyIKKyAgICBiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1z cHJlYWQgIl42LjMuMTMiCisgICAgYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1l czIwMTUtc3RpY2t5LXJlZ2V4ICJeNi4zLjEzIgorICAgIGJhYmVsLXBsdWdp bi10cmFuc2Zvcm0tZXMyMDE1LXRlbXBsYXRlLWxpdGVyYWxzICJeNi42LjAi CisgICAgYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1lczIwMTUtdHlwZW9mLXN5 bWJvbCAiXjYuNi4wIgorICAgIGJhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMy MDE1LXVuaWNvZGUtcmVnZXggIl42LjMuMTMiCisgICAgYmFiZWwtcGx1Z2lu LXRyYW5zZm9ybS1yZWdlbmVyYXRvciAiXjYuOS4wIgorCitiYWJlbC1wcmVz ZXQtZXMyMDE1QH42LjI0LjA6CisgIHZlcnNpb24gIjYuMjQuMSIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYmFiZWwtcHJl c2V0LWVzMjAxNS8tL2JhYmVsLXByZXNldC1lczIwMTUtNi4yNC4xLnRneiNk NDQwNTBkNmJjMmM5ZmVlYTcwMmFhZjM4ZDcyN2EwMjEwNTM4OTM5IgorICBk ZXBlbmRlbmNpZXM6CisgICAgYmFiZWwtcGx1Z2luLWNoZWNrLWVzMjAxNS1j b25zdGFudHMgIl42LjIyLjAiCisgICAgYmFiZWwtcGx1Z2luLXRyYW5zZm9y bS1lczIwMTUtYXJyb3ctZnVuY3Rpb25zICJeNi4yMi4wIgorICAgIGJhYmVs LXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LWJsb2NrLXNjb3BlZC1mdW5jdGlv bnMgIl42LjIyLjAiCisgICAgYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1lczIw MTUtYmxvY2stc2NvcGluZyAiXjYuMjQuMSIKKyAgICBiYWJlbC1wbHVnaW4t dHJhbnNmb3JtLWVzMjAxNS1jbGFzc2VzICJeNi4yNC4xIgorICAgIGJhYmVs LXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LWNvbXB1dGVkLXByb3BlcnRpZXMg Il42LjI0LjEiCisgICAgYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1lczIwMTUt ZGVzdHJ1Y3R1cmluZyAiXjYuMjIuMCIKKyAgICBiYWJlbC1wbHVnaW4tdHJh bnNmb3JtLWVzMjAxNS1kdXBsaWNhdGUta2V5cyAiXjYuMjQuMSIKKyAgICBi YWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1mb3Itb2YgIl42LjIyLjAi CisgICAgYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1lczIwMTUtZnVuY3Rpb24t bmFtZSAiXjYuMjQuMSIKKyAgICBiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVz MjAxNS1saXRlcmFscyAiXjYuMjIuMCIKKyAgICBiYWJlbC1wbHVnaW4tdHJh bnNmb3JtLWVzMjAxNS1tb2R1bGVzLWFtZCAiXjYuMjQuMSIKKyAgICBiYWJl bC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAxNS1tb2R1bGVzLWNvbW1vbmpzICJe Ni4yNC4xIgorICAgIGJhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LW1v ZHVsZXMtc3lzdGVtanMgIl42LjI0LjEiCisgICAgYmFiZWwtcGx1Z2luLXRy YW5zZm9ybS1lczIwMTUtbW9kdWxlcy11bWQgIl42LjI0LjEiCisgICAgYmFi ZWwtcGx1Z2luLXRyYW5zZm9ybS1lczIwMTUtb2JqZWN0LXN1cGVyICJeNi4y NC4xIgorICAgIGJhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LXBhcmFt ZXRlcnMgIl42LjI0LjEiCisgICAgYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1l czIwMTUtc2hvcnRoYW5kLXByb3BlcnRpZXMgIl42LjI0LjEiCisgICAgYmFi ZWwtcGx1Z2luLXRyYW5zZm9ybS1lczIwMTUtc3ByZWFkICJeNi4yMi4wIgor ICAgIGJhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LXN0aWNreS1yZWdl eCAiXjYuMjQuMSIKKyAgICBiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWVzMjAx NS10ZW1wbGF0ZS1saXRlcmFscyAiXjYuMjIuMCIKKyAgICBiYWJlbC1wbHVn aW4tdHJhbnNmb3JtLWVzMjAxNS10eXBlb2Ytc3ltYm9sICJeNi4yMi4wIgor ICAgIGJhYmVsLXBsdWdpbi10cmFuc2Zvcm0tZXMyMDE1LXVuaWNvZGUtcmVn ZXggIl42LjI0LjEiCisgICAgYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1yZWdl bmVyYXRvciAiXjYuMjQuMSIKKworYmFiZWwtcHJlc2V0LWZsb3dAXjYuMjMu MDoKKyAgdmVyc2lvbiAiNi4yMy4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9iYWJlbC1wcmVzZXQtZmxvdy8tL2JhYmVs LXByZXNldC1mbG93LTYuMjMuMC50Z3ojZTcxMjE4ODg3MDg1YWU5YTI0YjVi ZTQxNjlhZmZiNTk5ODE2YzQ5ZCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGJh YmVsLXBsdWdpbi10cmFuc2Zvcm0tZmxvdy1zdHJpcC10eXBlcyAiXjYuMjIu MCIKKworYmFiZWwtcHJlc2V0LXJlYWN0QH42LjIzLjA6CisgIHZlcnNpb24g IjYuMjMuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vYmFiZWwtcHJlc2V0LXJlYWN0Ly0vYmFiZWwtcHJlc2V0LXJlYWN0 LTYuMjMuMC50Z3ojZWI3Y2VlNGRlOThhM2Y5NDUwMmMyODU2NTMzMmRhOTgx OTQ1NTE5NSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGJhYmVsLXBsdWdpbi1z eW50YXgtanN4ICJeNi4zLjEzIgorICAgIGJhYmVsLXBsdWdpbi10cmFuc2Zv cm0tcmVhY3QtZGlzcGxheS1uYW1lICJeNi4yMy4wIgorICAgIGJhYmVsLXBs dWdpbi10cmFuc2Zvcm0tcmVhY3QtanN4ICJeNi4yMy4wIgorICAgIGJhYmVs LXBsdWdpbi10cmFuc2Zvcm0tcmVhY3QtanN4LXNlbGYgIl42LjIyLjAiCisg ICAgYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1yZWFjdC1qc3gtc291cmNlICJe Ni4yMi4wIgorICAgIGJhYmVsLXByZXNldC1mbG93ICJeNi4yMy4wIgorCiti YWJlbC1yZWdpc3RlckBeNi4yNC4xOgorICB2ZXJzaW9uICI2LjI0LjEiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2JhYmVs LXJlZ2lzdGVyLy0vYmFiZWwtcmVnaXN0ZXItNi4yNC4xLnRneiM3ZTEwZTEz YTJmNzEwNjViZGZhZDVhMTc4N2JhNDViY2E2ZGVkNzVmIgorICBkZXBlbmRl bmNpZXM6CisgICAgYmFiZWwtY29yZSAiXjYuMjQuMSIKKyAgICBiYWJlbC1y dW50aW1lICJeNi4yMi4wIgorICAgIGNvcmUtanMgIl4yLjQuMCIKKyAgICBo b21lLW9yLXRtcCAiXjIuMC4wIgorICAgIGxvZGFzaCAiXjQuMi4wIgorICAg IG1rZGlycCAiXjAuNS4xIgorICAgIHNvdXJjZS1tYXAtc3VwcG9ydCAiXjAu NC4yIgorCitiYWJlbC1ydW50aW1lQF42LjE4LjAsIGJhYmVsLXJ1bnRpbWVA XjYuMjIuMDoKKyAgdmVyc2lvbiAiNi4yMy4wIgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9iYWJlbC1ydW50aW1lLy0vYmFi ZWwtcnVudGltZS02LjIzLjAudGd6IzBhOTQ4OWYxNDRkZTcwZWZiM2NlNDMw MGFjY2RiMzI5ZTJmYzU0M2IiCisgIGRlcGVuZGVuY2llczoKKyAgICBjb3Jl LWpzICJeMi40LjAiCisgICAgcmVnZW5lcmF0b3ItcnVudGltZSAiXjAuMTAu MCIKKworYmFiZWwtdGVtcGxhdGVAXjYuMjQuMToKKyAgdmVyc2lvbiAiNi4y NC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9iYWJlbC10ZW1wbGF0ZS8tL2JhYmVsLXRlbXBsYXRlLTYuMjQuMS50Z3oj MDRhZTUxNGYxZjkzYjNhMjUzN2YyYTBmNjBhNWE0NWZiODMwODMzMyIKKyAg ZGVwZW5kZW5jaWVzOgorICAgIGJhYmVsLXJ1bnRpbWUgIl42LjIyLjAiCisg ICAgYmFiZWwtdHJhdmVyc2UgIl42LjI0LjEiCisgICAgYmFiZWwtdHlwZXMg Il42LjI0LjEiCisgICAgYmFieWxvbiAiXjYuMTEuMCIKKyAgICBsb2Rhc2gg Il40LjIuMCIKKworYmFiZWwtdHJhdmVyc2VAXjYuMjQuMToKKyAgdmVyc2lv biAiNi4yNC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9iYWJlbC10cmF2ZXJzZS8tL2JhYmVsLXRyYXZlcnNlLTYuMjQu MS50Z3ojYWIzNjY3M2ZkMzU2ZjlhMDk0ODY1OWU3YjMzOGQ1ZmVhZGIzMTY5 NSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGJhYmVsLWNvZGUtZnJhbWUgIl42 LjIyLjAiCisgICAgYmFiZWwtbWVzc2FnZXMgIl42LjIzLjAiCisgICAgYmFi ZWwtcnVudGltZSAiXjYuMjIuMCIKKyAgICBiYWJlbC10eXBlcyAiXjYuMjQu MSIKKyAgICBiYWJ5bG9uICJeNi4xNS4wIgorICAgIGRlYnVnICJeMi4yLjAi CisgICAgZ2xvYmFscyAiXjkuMC4wIgorICAgIGludmFyaWFudCAiXjIuMi4w IgorICAgIGxvZGFzaCAiXjQuMi4wIgorCitiYWJlbC10eXBlc0BeNi4xOS4w LCBiYWJlbC10eXBlc0BeNi4yNC4xOgorICB2ZXJzaW9uICI2LjI0LjEiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2JhYmVs LXR5cGVzLy0vYmFiZWwtdHlwZXMtNi4yNC4xLnRneiNhMTM2ODc5ZGMxNWIz NjA2YmRhMGQ5MGMxZmM3NDMwNGMyZmYwOTc1IgorICBkZXBlbmRlbmNpZXM6 CisgICAgYmFiZWwtcnVudGltZSAiXjYuMjIuMCIKKyAgICBlc3V0aWxzICJe Mi4wLjIiCisgICAgbG9kYXNoICJeNC4yLjAiCisgICAgdG8tZmFzdC1wcm9w ZXJ0aWVzICJeMS4wLjEiCisKK2JhYmVsaWZ5QH43LjMuMDoKKyAgdmVyc2lv biAiNy4zLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2JhYmVsaWZ5Ly0vYmFiZWxpZnktNy4zLjAudGd6I2FhNTZhZWRl NzA2N2ZkN2JkNTQ5NjY2ZWUxNmRjMjg1MDg3ZTg4ZTUiCisgIGRlcGVuZGVu Y2llczoKKyAgICBiYWJlbC1jb3JlICJeNi4wLjE0IgorICAgIG9iamVjdC1h c3NpZ24gIl40LjAuMCIKKworYmFieWxvbkBeNi4xMS4wLCBiYWJ5bG9uQF42 LjE1LjA6CisgIHZlcnNpb24gIjYuMTcuMiIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vYmFieWxvbi8tL2JhYnlsb24tNi4x Ny4yLnRneiMyMDFkMjVlZjVmODkyYzQxYmFlNDk0ODhiMDhkYjBkZDQ3NmU5 ZjVjIgorCitiYWNrbzJAMS4wLjI6CisgIHZlcnNpb24gIjEuMC4yIgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9iYWNrbzIv LS9iYWNrbzItMS4wLjIudGd6IzMxYWIxYWM4YjEyOTM2MzQ2M2UzNWIzZWJi NjlmNGRmY2ZiYTc5NDciCisKK2JhbGFuY2VkLW1hdGNoQF4wLjQuMToKKyAg dmVyc2lvbiAiMC40LjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL2JhbGFuY2VkLW1hdGNoLy0vYmFsYW5jZWQtbWF0Y2gt MC40LjIudGd6I2NiM2YzZTNjNzMyZGMwZjAxZWU3MGI0MDNmMzAyZTYxZDc3 MDk4MzgiCisKK2Jhc2U2NC1hcnJheWJ1ZmZlckAwLjEuNToKKyAgdmVyc2lv biAiMC4xLjUiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2Jhc2U2NC1hcnJheWJ1ZmZlci8tL2Jhc2U2NC1hcnJheWJ1ZmZl ci0wLjEuNS50Z3ojNzM5MjY3NzE5MjNiNWExOTc0N2FkNjY2YWE1Y2Q0YmY5 YzZlOWNlOCIKKworYmFzZTY0LWpzQF4xLjAuMjoKKyAgdmVyc2lvbiAiMS4y LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L2Jhc2U2NC1qcy8tL2Jhc2U2NC1qcy0xLjIuMC50Z3ojYTM5OTkyZDcyMzU4 NDgxMTk4MmJlNWUyOTBiYjZhNTNkODY3MDBmMSIKKworYmFzZTY0aWRAMS4w LjA6CisgIHZlcnNpb24gIjEuMC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9iYXNlNjRpZC8tL2Jhc2U2NGlkLTEuMC4w LnRneiM0NzY4OGNiOTliYjY4MDRmMGUwNmQzZTc2M2IxYzMyZTU3ZDhlNmI2 IgorCitiY3J5cHQtcGJrZGZAXjEuMC4wOgorICB2ZXJzaW9uICIxLjAuMSIK KyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYmNy eXB0LXBia2RmLy0vYmNyeXB0LXBia2RmLTEuMC4xLnRneiM2M2JjNWRjYjYx MzMxYjkyYmMwNWZkNTI4OTUzYzMzNDYyYTA2ZjhkIgorICBkZXBlbmRlbmNp ZXM6CisgICAgdHdlZXRuYWNsICJeMC4xNC4zIgorCitiZXR0ZXItYXNzZXJ0 QH4xLjAuMDoKKyAgdmVyc2lvbiAiMS4wLjIiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2JldHRlci1hc3NlcnQvLS9iZXR0 ZXItYXNzZXJ0LTEuMC4yLnRneiM0MDg2NmI5ZTFiOWUwYjU1YjQ4MTg5NDMx MWU2OGZhZmZhZWJjNTIyIgorICBkZXBlbmRlbmNpZXM6CisgICAgY2FsbHNp dGUgIjEuMC4wIgorCitiaWcuanNAXjMuMS4zOgorICB2ZXJzaW9uICIzLjEu MyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v YmlnLmpzLy0vYmlnLmpzLTMuMS4zLnRneiM0Y2FkYTIxOTM2NTJlYjNjYTll YzhlNTVjOTAxNTY2OWM5ODA2OTc4IgorCitiaW5hcnktZXh0ZW5zaW9uc0Be MS4wLjA6CisgIHZlcnNpb24gIjEuOC4wIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9iaW5hcnktZXh0ZW5zaW9ucy8tL2Jp bmFyeS1leHRlbnNpb25zLTEuOC4wLnRneiM0OGVjOGQxNmRmNDM3N2VhZTVm YTU4ODQ2ODI0ODBhZjRkOTVjNzc0IgorCitibG9iQDAuMC40OgorICB2ZXJz aW9uICIwLjAuNCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vYmxvYi8tL2Jsb2ItMC4wLjQudGd6I2JjZjEzMDUyY2E1NDQ2 M2YzMGY5ZmM3ZTk1YjlhNDc2MzBhOTQ5MjEiCisKK2Jsb2NrLXN0cmVhbUAq OgorICB2ZXJzaW9uICIwLjAuOSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vYmxvY2stc3RyZWFtLy0vYmxvY2stc3RyZWFt LTAuMC45LnRneiMxM2ViZmU3NzhhMDMyMDVjZmUwMzc1MTQ4MWViYjRiMzMw MGMxMjZhIgorICBkZXBlbmRlbmNpZXM6CisgICAgaW5oZXJpdHMgIn4yLjAu MCIKKworYmx1ZWJpcmRAXjMuMy4wOgorICB2ZXJzaW9uICIzLjUuMCIKKyAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYmx1ZWJp cmQvLS9ibHVlYmlyZC0zLjUuMC50Z3ojNzkxNDIwZDdmNTUxZWVhMjg5NzQ1 M2E4YTc3NjUzZjk2NjA2ZDY3YyIKKworYm4uanNAXjQuMC4wLCBibi5qc0Be NC4xLjAsIGJuLmpzQF40LjEuMSwgYm4uanNAXjQuNC4wOgorICB2ZXJzaW9u ICI0LjExLjYiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2JuLmpzLy0vYm4uanMtNC4xMS42LnRneiM1MzM0NGFkYjE0NjE3 YTEzZjZlOGRkMmNlMjg5MDVkMWMwYmEzMjE1IgorCitib2R5LXBhcnNlckBe MS4xNi4xOgorICB2ZXJzaW9uICIxLjE3LjIiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2JvZHktcGFyc2VyLy0vYm9keS1w YXJzZXItMS4xNy4yLnRneiNmODg5MmFiYzhmOWU2MjdkNDJhZWRhZmJjYTY2 YmY1YWI5OTEwNGVlIgorICBkZXBlbmRlbmNpZXM6CisgICAgYnl0ZXMgIjIu NC4wIgorICAgIGNvbnRlbnQtdHlwZSAifjEuMC4yIgorICAgIGRlYnVnICIy LjYuNyIKKyAgICBkZXBkICJ+MS4xLjAiCisgICAgaHR0cC1lcnJvcnMgIn4x LjYuMSIKKyAgICBpY29udi1saXRlICIwLjQuMTUiCisgICAgb24tZmluaXNo ZWQgIn4yLjMuMCIKKyAgICBxcyAiNi40LjAiCisgICAgcmF3LWJvZHkgIn4y LjIuMCIKKyAgICB0eXBlLWlzICJ+MS42LjE1IgorCitib29sYmFzZUB+MS4w LjA6CisgIHZlcnNpb24gIjEuMC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9ib29sYmFzZS8tL2Jvb2xiYXNlLTEuMC4w LnRneiM2OGRmZjVmYmU2MGM1MWViMzc3MjVlYTllM2VkMzEwZGNjMWU3NzZl IgorCitib29tQDIueC54OgorICB2ZXJzaW9uICIyLjEwLjEiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Jvb20vLS9ib29t LTIuMTAuMS50Z3ojMzljODkxOGNlZmY1Nzk5ZjgzZjk0OTJhODQ4ZjYyNWFk ZDBjNzY2ZiIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGhvZWsgIjIueC54Igor CiticmFjZS1leHBhbnNpb25AXjEuMS43OgorICB2ZXJzaW9uICIxLjEuNyIK KyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYnJh Y2UtZXhwYW5zaW9uLy0vYnJhY2UtZXhwYW5zaW9uLTEuMS43LnRneiMzZWZm YzNjNTBlMDAwNTMxZmI3MjBlYWZmODBmMGFlOGVmMjNjZjU5IgorICBkZXBl bmRlbmNpZXM6CisgICAgYmFsYW5jZWQtbWF0Y2ggIl4wLjQuMSIKKyAgICBj b25jYXQtbWFwICIwLjAuMSIKKworYnJhY2VzQF4wLjEuMjoKKyAgdmVyc2lv biAiMC4xLjUiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2JyYWNlcy8tL2JyYWNlcy0wLjEuNS50Z3ojYzA4NTcxMTA4NTI5 MWQ4Yjc1ZmRkNzRlYWIwZjg1OTcyODA3MTFlNiIKKyAgZGVwZW5kZW5jaWVz OgorICAgIGV4cGFuZC1yYW5nZSAiXjAuMS4wIgorCiticmFjZXNAXjEuOC4y OgorICB2ZXJzaW9uICIxLjguNSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vYnJhY2VzLy0vYnJhY2VzLTEuOC41LnRneiNi YTc3OTYyZTEyZGZmOTY5ZDZiNzY3MTFlOTE0YjczNzg1N2JmNmE3IgorICBk ZXBlbmRlbmNpZXM6CisgICAgZXhwYW5kLXJhbmdlICJeMS44LjEiCisgICAg cHJlc2VydmUgIl4wLjIuMCIKKyAgICByZXBlYXQtZWxlbWVudCAiXjEuMS4y IgorCiticm9yYW5kQF4xLjAuMToKKyAgdmVyc2lvbiAiMS4xLjAiCisgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Jyb3JhbmQv LS9icm9yYW5kLTEuMS4wLnRneiMxMmMyNWVmZTQwYTQ1ZTNjMzIzZWI4Njc1 YTBhMGNlNTdiMjIzNzFmIgorCiticm93c2VyLXBhY2tAXjYuMC4xOgorICB2 ZXJzaW9uICI2LjAuMiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vYnJvd3Nlci1wYWNrLy0vYnJvd3Nlci1wYWNrLTYuMC4y LnRneiNmODZjZDZjZWY0ZjUzMDBjOGU2M2UwN2E0ZDUxMmY2NWZiZmY0NTMx IgorICBkZXBlbmRlbmNpZXM6CisgICAgSlNPTlN0cmVhbSAiXjEuMC4zIgor ICAgIGNvbWJpbmUtc291cmNlLW1hcCAifjAuNy4xIgorICAgIGRlZmluZWQg Il4xLjAuMCIKKyAgICB0aHJvdWdoMiAiXjIuMC4wIgorICAgIHVtZCAiXjMu MC4wIgorCiticm93c2VyLXJlc29sdmVAXjEuMTEuMCwgYnJvd3Nlci1yZXNv bHZlQF4xLjcuMDoKKyAgdmVyc2lvbiAiMS4xMS4yIgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9icm93c2VyLXJlc29sdmUv LS9icm93c2VyLXJlc29sdmUtMS4xMS4yLnRneiM4ZmYwOWIwYTJjNDIxNzE4 YTEwNTFjMjYwYjMyZTQ4ZjQ0MjkzOGNlIgorICBkZXBlbmRlbmNpZXM6Cisg ICAgcmVzb2x2ZSAiMS4xLjciCisKK2Jyb3dzZXJpZnktYWVzQF4xLjAuMCwg YnJvd3NlcmlmeS1hZXNAXjEuMC40OgorICB2ZXJzaW9uICIxLjAuNiIKKyAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYnJvd3Nl cmlmeS1hZXMvLS9icm93c2VyaWZ5LWFlcy0xLjAuNi50Z3ojNWU3NzI1ZGJk ZWYxZmQ1OTMwZDRlYmFiNDg1NjdjZTQ1MWM0OGEwYSIKKyAgZGVwZW5kZW5j aWVzOgorICAgIGJ1ZmZlci14b3IgIl4xLjAuMiIKKyAgICBjaXBoZXItYmFz ZSAiXjEuMC4wIgorICAgIGNyZWF0ZS1oYXNoICJeMS4xLjAiCisgICAgZXZw X2J5dGVzdG9rZXkgIl4xLjAuMCIKKyAgICBpbmhlcml0cyAiXjIuMC4xIgor Citicm93c2VyaWZ5LWNpcGhlckBeMS4wLjA6CisgIHZlcnNpb24gIjEuMC4w IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9i cm93c2VyaWZ5LWNpcGhlci8tL2Jyb3dzZXJpZnktY2lwaGVyLTEuMC4wLnRn eiM5OTg4MjQ0ODc0YmY1ZWQ0ZTI4ZGE5NTY2NmRjZDY2YWM4ZmMzNjNhIgor ICBkZXBlbmRlbmNpZXM6CisgICAgYnJvd3NlcmlmeS1hZXMgIl4xLjAuNCIK KyAgICBicm93c2VyaWZ5LWRlcyAiXjEuMC4wIgorICAgIGV2cF9ieXRlc3Rv a2V5ICJeMS4wLjAiCisKK2Jyb3dzZXJpZnktZGVzQF4xLjAuMDoKKyAgdmVy c2lvbiAiMS4wLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2Jyb3dzZXJpZnktZGVzLy0vYnJvd3NlcmlmeS1kZXMtMS4w LjAudGd6I2RhYTI3NzcxNzQ3MDkyMmVkMmZlMTg1OTQxMThhMTc1NDM5NzIx ZGQiCisgIGRlcGVuZGVuY2llczoKKyAgICBjaXBoZXItYmFzZSAiXjEuMC4x IgorICAgIGRlcy5qcyAiXjEuMC4wIgorICAgIGluaGVyaXRzICJeMi4wLjEi CisKK2Jyb3dzZXJpZnktcnNhQF40LjAuMDoKKyAgdmVyc2lvbiAiNC4wLjEi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Jy b3dzZXJpZnktcnNhLy0vYnJvd3NlcmlmeS1yc2EtNC4wLjEudGd6IzIxZTBh YmZhZjZmMjAyOWNmMmZhZmIxMzM1NjdhNzAxZDQxMzU1MjQiCisgIGRlcGVu ZGVuY2llczoKKyAgICBibi5qcyAiXjQuMS4wIgorICAgIHJhbmRvbWJ5dGVz ICJeMi4wLjEiCisKK2Jyb3dzZXJpZnktc2lnbkBeNC4wLjA6CisgIHZlcnNp b24gIjQuMC40IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9icm93c2VyaWZ5LXNpZ24vLS9icm93c2VyaWZ5LXNpZ24tNC4w LjQudGd6I2FhNGViNjhlNWQ3YjY1OGJhYTZiZjZhNTdlNjMwY2JkN2E5M2Qy OTgiCisgIGRlcGVuZGVuY2llczoKKyAgICBibi5qcyAiXjQuMS4xIgorICAg IGJyb3dzZXJpZnktcnNhICJeNC4wLjAiCisgICAgY3JlYXRlLWhhc2ggIl4x LjEuMCIKKyAgICBjcmVhdGUtaG1hYyAiXjEuMS4yIgorICAgIGVsbGlwdGlj ICJeNi4wLjAiCisgICAgaW5oZXJpdHMgIl4yLjAuMSIKKyAgICBwYXJzZS1h c24xICJeNS4wLjAiCisKK2Jyb3dzZXJpZnktemxpYkBeMC4xLjQsIGJyb3dz ZXJpZnktemxpYkB+MC4xLjI6CisgIHZlcnNpb24gIjAuMS40IgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9icm93c2VyaWZ5 LXpsaWIvLS9icm93c2VyaWZ5LXpsaWItMC4xLjQudGd6I2JiMzVmOGE1MTlm NjAwZTBmYTZiODQ4NTI0MWM5NzlkMDE0MWZiMmQiCisgIGRlcGVuZGVuY2ll czoKKyAgICBwYWtvICJ+MC4yLjAiCisKK2Jyb3dzZXJpZnlAXjE0LjAuMCwg YnJvd3NlcmlmeUB+MTQuMS4wOgorICB2ZXJzaW9uICIxNC4xLjAiCisgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Jyb3dzZXJp ZnkvLS9icm93c2VyaWZ5LTE0LjEuMC50Z3ojMDUwOGNjMWU3YmY0YzE1MjMx MmMyZmE1MjNlNjc2YzBiMGI5MjMxMSIKKyAgZGVwZW5kZW5jaWVzOgorICAg IEpTT05TdHJlYW0gIl4xLjAuMyIKKyAgICBhc3NlcnQgIl4xLjQuMCIKKyAg ICBicm93c2VyLXBhY2sgIl42LjAuMSIKKyAgICBicm93c2VyLXJlc29sdmUg Il4xLjExLjAiCisgICAgYnJvd3NlcmlmeS16bGliICJ+MC4xLjIiCisgICAg YnVmZmVyICJeNS4wLjIiCisgICAgY2FjaGVkLXBhdGgtcmVsYXRpdmUgIl4x LjAuMCIKKyAgICBjb25jYXQtc3RyZWFtICJ+MS41LjEiCisgICAgY29uc29s ZS1icm93c2VyaWZ5ICJeMS4xLjAiCisgICAgY29uc3RhbnRzLWJyb3dzZXJp ZnkgIn4xLjAuMCIKKyAgICBjcnlwdG8tYnJvd3NlcmlmeSAiXjMuMC4wIgor ICAgIGRlZmluZWQgIl4xLjAuMCIKKyAgICBkZXBzLXNvcnQgIl4yLjAuMCIK KyAgICBkb21haW4tYnJvd3NlciAifjEuMS4wIgorICAgIGR1cGxleGVyMiAi fjAuMS4yIgorICAgIGV2ZW50cyAifjEuMS4wIgorICAgIGdsb2IgIl43LjEu MCIKKyAgICBoYXMgIl4xLjAuMCIKKyAgICBodG1sZXNjYXBlICJeMS4xLjAi CisgICAgaHR0cHMtYnJvd3NlcmlmeSAifjAuMC4wIgorICAgIGluaGVyaXRz ICJ+Mi4wLjEiCisgICAgaW5zZXJ0LW1vZHVsZS1nbG9iYWxzICJeNy4wLjAi CisgICAgbGFiZWxlZC1zdHJlYW0tc3BsaWNlciAiXjIuMC4wIgorICAgIG1v ZHVsZS1kZXBzICJeNC4wLjgiCisgICAgb3MtYnJvd3NlcmlmeSAifjAuMS4x IgorICAgIHBhcmVudHMgIl4xLjAuMSIKKyAgICBwYXRoLWJyb3dzZXJpZnkg In4wLjAuMCIKKyAgICBwcm9jZXNzICJ+MC4xMS4wIgorICAgIHB1bnljb2Rl ICJeMS4zLjIiCisgICAgcXVlcnlzdHJpbmctZXMzICJ+MC4yLjAiCisgICAg cmVhZC1vbmx5LXN0cmVhbSAiXjIuMC4wIgorICAgIHJlYWRhYmxlLXN0cmVh bSAiXjIuMC4yIgorICAgIHJlc29sdmUgIl4xLjEuNCIKKyAgICBzaGFzdW0g Il4xLjAuMCIKKyAgICBzaGVsbC1xdW90ZSAiXjEuNi4xIgorICAgIHN0cmVh bS1icm93c2VyaWZ5ICJeMi4wLjAiCisgICAgc3RyZWFtLWh0dHAgIl4yLjAu MCIKKyAgICBzdHJpbmdfZGVjb2RlciAifjAuMTAuMCIKKyAgICBzdWJhcmcg Il4xLjAuMCIKKyAgICBzeW50YXgtZXJyb3IgIl4xLjEuMSIKKyAgICB0aHJv dWdoMiAiXjIuMC4wIgorICAgIHRpbWVycy1icm93c2VyaWZ5ICJeMS4wLjEi CisgICAgdHR5LWJyb3dzZXJpZnkgIn4wLjAuMCIKKyAgICB1cmwgIn4wLjEx LjAiCisgICAgdXRpbCAifjAuMTAuMSIKKyAgICB2bS1icm93c2VyaWZ5ICJ+ MC4wLjEiCisgICAgeHRlbmQgIl40LjAuMCIKKworYnVmZmVyLXhvckBeMS4w LjI6CisgIHZlcnNpb24gIjEuMC4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9idWZmZXIteG9yLy0vYnVmZmVyLXhvci0x LjAuMy50Z3ojMjZlNjFlZDE0MjJmYjcwZGQ0MmU2ZTM2NzI5ZWQ1MWQ4NTVm ZThkOSIKKworYnVmZmVyQF40LjMuMDoKKyAgdmVyc2lvbiAiNC45LjEiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2J1ZmZl ci8tL2J1ZmZlci00LjkuMS50Z3ojNmQxYmI2MDFiMDdhNGVmY2VkOTcwOTQx MzIwOTMwMjdjOTViYzI5OCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGJhc2U2 NC1qcyAiXjEuMC4yIgorICAgIGllZWU3NTQgIl4xLjEuNCIKKyAgICBpc2Fy cmF5ICJeMS4wLjAiCisKK2J1ZmZlckBeNS4wLjI6CisgIHZlcnNpb24gIjUu MC42IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9idWZmZXIvLS9idWZmZXItNS4wLjYudGd6IzJlYTY2OWY3ZWVjMGI2ZWRh MDViMDhmOGI1ZmY2NjFiMjg1NzM1ODgiCisgIGRlcGVuZGVuY2llczoKKyAg ICBiYXNlNjQtanMgIl4xLjAuMiIKKyAgICBpZWVlNzU0ICJeMS4xLjQiCisK K2J1aWx0aW4tbW9kdWxlc0BeMS4wLjA6CisgIHZlcnNpb24gIjEuMS4xIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9idWls dGluLW1vZHVsZXMvLS9idWlsdGluLW1vZHVsZXMtMS4xLjEudGd6IzI3MGYw NzZjNWE3MmMwMmY1YjY1YTQ3ZGY5NGM1ZmUzYTI3ODg5MmYiCisKK2J1aWx0 aW4tc3RhdHVzLWNvZGVzQF4zLjAuMDoKKyAgdmVyc2lvbiAiMy4wLjAiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2J1aWx0 aW4tc3RhdHVzLWNvZGVzLy0vYnVpbHRpbi1zdGF0dXMtY29kZXMtMy4wLjAu dGd6Izg1OTgyODc4ZTIxYjk4ZTFjNjY0MjVlMDNkMDE3NDc4OGY1NjllZTgi CisKK2J5dGVzQDIuNC4wOgorICB2ZXJzaW9uICIyLjQuMCIKKyAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vYnl0ZXMvLS9ieXRl cy0yLjQuMC50Z3ojN2Q5NzE5NmY5ZDViYWY3ZjY5MzVlMjU5ODU1NDllZGQy YTZjMjMzOSIKKworY2FjaGVkLXBhdGgtcmVsYXRpdmVAXjEuMC4wOgorICB2 ZXJzaW9uICIxLjAuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vY2FjaGVkLXBhdGgtcmVsYXRpdmUvLS9jYWNoZWQtcGF0 aC1yZWxhdGl2ZS0xLjAuMS50Z3ojZDA5YzRiNTI4MDBhYTRjMDc4ZTJkZDgx YTg2OWFhYzkwZDJlNTRlNyIKKworY2FsbGVyLXBhdGhAXjAuMS4wOgorICB2 ZXJzaW9uICIwLjEuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vY2FsbGVyLXBhdGgvLS9jYWxsZXItcGF0aC0wLjEuMC50 Z3ojOTQwODVlZjYzNTgxZWNkM2RhYTkyNDQ0YThmZTk0ZTgyNTc3NzUxZiIK KyAgZGVwZW5kZW5jaWVzOgorICAgIGNhbGxzaXRlcyAiXjAuMi4wIgorCitj YWxsc2l0ZUAxLjAuMDoKKyAgdmVyc2lvbiAiMS4wLjAiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2NhbGxzaXRlLy0vY2Fs bHNpdGUtMS4wLjAudGd6IzI4MDM5OGU1ZDY2NGJkNzQwMzhiNmYwOTA1MTUz ZTZlOGFmMWJjMjAiCisKK2NhbGxzaXRlc0BeMC4yLjA6CisgIHZlcnNpb24g IjAuMi4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9jYWxsc2l0ZXMvLS9jYWxsc2l0ZXMtMC4yLjAudGd6I2FmYWI5NjI2 MjkxMGE3ZjMzYzE5YTU3NzU4MjVjNjlmMzRlMzUwY2EiCisKK2NhbWVsY2Fz ZUBeMS4wLjI6CisgIHZlcnNpb24gIjEuMi4xIgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jYW1lbGNhc2UvLS9jYW1lbGNh c2UtMS4yLjEudGd6IzliYjUzMDRkMmUwYjU2Njk4YjJjNzU4YjA4YTNlYWE5 ZGFhNThhMzkiCisKK2NhbWVsY2FzZUBeMy4wLjA6CisgIHZlcnNpb24gIjMu MC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9jYW1lbGNhc2UvLS9jYW1lbGNhc2UtMy4wLjAudGd6IzMyZmM0YjlmY2Rh Zjg0NWZjZGY3ZTczYmI5N2NhYzIyNjFmMGFiMGEiCisKK2Nhc2VsZXNzQH4w LjExLjA6CisgIHZlcnNpb24gIjAuMTEuMCIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vY2FzZWxlc3MvLS9jYXNlbGVzcy0w LjExLjAudGd6IzcxNWI5NmVhOTg0MTU5M2NjMzMwNjc5MjNmNWVjNjBlYmRh NGY3ZDciCisKK2Nhc2VsZXNzQH4wLjEyLjA6CisgIHZlcnNpb24gIjAuMTIu MCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v Y2FzZWxlc3MvLS9jYXNlbGVzcy0wLjEyLjAudGd6IzFiNjgxYzIxZmY4NDAz M2M4MjY1NDMwOTA2ODk0MjBkMTg3MTUxZGMiCisKK2NlbnRlci1hbGlnbkBe MC4xLjE6CisgIHZlcnNpb24gIjAuMS4zIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jZW50ZXItYWxpZ24vLS9jZW50ZXIt YWxpZ24tMC4xLjMudGd6I2FhMGQzMjYyOWI2ZWU5NzIyMDA0MTFjYmQ0NDYx YzkwN2JjMmI3YWQiCisgIGRlcGVuZGVuY2llczoKKyAgICBhbGlnbi10ZXh0 ICJeMC4xLjMiCisgICAgbGF6eS1jYWNoZSAiXjEuMC4zIgorCitjaGFsa0Be MS4wLjAsIGNoYWxrQF4xLjEuMCwgY2hhbGtAXjEuMS4xLCBjaGFsa0BeMS4x LjM6CisgIHZlcnNpb24gIjEuMS4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9jaGFsay8tL2NoYWxrLTEuMS4zLnRneiNh ODExNWM1NWU0YTcwMmZlNGQxNTBhYmQzODcyODIyYTdlMDlmYzk4IgorICBk ZXBlbmRlbmNpZXM6CisgICAgYW5zaS1zdHlsZXMgIl4yLjIuMSIKKyAgICBl c2NhcGUtc3RyaW5nLXJlZ2V4cCAiXjEuMC4yIgorICAgIGhhcy1hbnNpICJe Mi4wLjAiCisgICAgc3RyaXAtYW5zaSAiXjMuMC4wIgorICAgIHN1cHBvcnRz LWNvbG9yICJeMi4wLjAiCisKK2NoZWVyaW9AXjAuMjIuMDoKKyAgdmVyc2lv biAiMC4yMi4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9jaGVlcmlvLy0vY2hlZXJpby0wLjIyLjAudGd6I2E5YmFhODYw YTNmOWI1OTVhNmI4MWIxYTg2ODczMTIxZWQzYTI2OWUiCisgIGRlcGVuZGVu Y2llczoKKyAgICBjc3Mtc2VsZWN0ICJ+MS4yLjAiCisgICAgZG9tLXNlcmlh bGl6ZXIgIn4wLjEuMCIKKyAgICBlbnRpdGllcyAifjEuMS4xIgorICAgIGh0 bWxwYXJzZXIyICJeMy45LjEiCisgICAgbG9kYXNoLmFzc2lnbmluICJeNC4w LjkiCisgICAgbG9kYXNoLmJpbmQgIl40LjEuNCIKKyAgICBsb2Rhc2guZGVm YXVsdHMgIl40LjAuMSIKKyAgICBsb2Rhc2guZmlsdGVyICJeNC40LjAiCisg ICAgbG9kYXNoLmZsYXR0ZW4gIl40LjIuMCIKKyAgICBsb2Rhc2guZm9yZWFj aCAiXjQuMy4wIgorICAgIGxvZGFzaC5tYXAgIl40LjQuMCIKKyAgICBsb2Rh c2gubWVyZ2UgIl40LjQuMCIKKyAgICBsb2Rhc2gucGljayAiXjQuMi4xIgor ICAgIGxvZGFzaC5yZWR1Y2UgIl40LjQuMCIKKyAgICBsb2Rhc2gucmVqZWN0 ICJeNC40LjAiCisgICAgbG9kYXNoLnNvbWUgIl40LjQuMCIKKworY2hva2lk YXJAXjEuMC4wLCBjaG9raWRhckBeMS40LjEsIGNob2tpZGFyQF4xLjQuMzoK KyAgdmVyc2lvbiAiMS43LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL2Nob2tpZGFyLy0vY2hva2lkYXItMS43LjAudGd6 Izc5OGU2ODk3NzgxNTFjODA3NmI0YjM2MGU1ZWRkMjhjZGEyYmI0NjgiCisg IGRlcGVuZGVuY2llczoKKyAgICBhbnltYXRjaCAiXjEuMy4wIgorICAgIGFz eW5jLWVhY2ggIl4xLjAuMCIKKyAgICBnbG9iLXBhcmVudCAiXjIuMC4wIgor ICAgIGluaGVyaXRzICJeMi4wLjEiCisgICAgaXMtYmluYXJ5LXBhdGggIl4x LjAuMCIKKyAgICBpcy1nbG9iICJeMi4wLjAiCisgICAgcGF0aC1pcy1hYnNv bHV0ZSAiXjEuMC4wIgorICAgIHJlYWRkaXJwICJeMi4wLjAiCisgIG9wdGlv bmFsRGVwZW5kZW5jaWVzOgorICAgIGZzZXZlbnRzICJeMS4wLjAiCisKK2Np cGhlci1iYXNlQF4xLjAuMCwgY2lwaGVyLWJhc2VAXjEuMC4xLCBjaXBoZXIt YmFzZUBeMS4wLjM6CisgIHZlcnNpb24gIjEuMC4zIgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jaXBoZXItYmFzZS8tL2Np cGhlci1iYXNlLTEuMC4zLnRneiNlZWFiZjE5NDQxOWNlOTAwZGEzMDE4YzIw N2QyMTJmMmE2ZGYwYTA3IgorICBkZXBlbmRlbmNpZXM6CisgICAgaW5oZXJp dHMgIl4yLjAuMSIKKworY2lyY3VsYXItanNvbkBeMC4zLjE6CisgIHZlcnNp b24gIjAuMy4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9jaXJjdWxhci1qc29uLy0vY2lyY3VsYXItanNvbi0wLjMuMS50 Z3ojYmU4YjM2YWVmY2NkZThiM2NhN2FhMmQ2YWZjMDdhMzcyNDJjMGQyZCIK KworY2xpLWN1cnNvckBeMS4wLjE6CisgIHZlcnNpb24gIjEuMC4yIgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jbGktY3Vy c29yLy0vY2xpLWN1cnNvci0xLjAuMi50Z3ojNjRkYTNmN2Q1NmE1NDQxMmU1 OTc5NGJkNjJkYzM1Mjk1ZThmMjk4NyIKKyAgZGVwZW5kZW5jaWVzOgorICAg IHJlc3RvcmUtY3Vyc29yICJeMS4wLjEiCisKK2NsaS13aWR0aEBeMi4wLjA6 CisgIHZlcnNpb24gIjIuMS4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9jbGktd2lkdGgvLS9jbGktd2lkdGgtMi4xLjAu dGd6I2IyMzRjYTIwOWIyOWVmNjZmYzUxOGQ5Yjk4ZDU4NDdiMDBlZGYwMGEi CisKK2NsaXVpQF4yLjEuMDoKKyAgdmVyc2lvbiAiMi4xLjAiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2NsaXVpLy0vY2xp dWktMi4xLjAudGd6IzRiNDc1NzYwZmY4MDI2NGM3NjJjM2ExNzE5MDMyZTkx YzdmZWEwZDEiCisgIGRlcGVuZGVuY2llczoKKyAgICBjZW50ZXItYWxpZ24g Il4wLjEuMSIKKyAgICByaWdodC1hbGlnbiAiXjAuMS4xIgorICAgIHdvcmR3 cmFwICIwLjAuMiIKKworY2xpdWlAXjMuMi4wOgorICB2ZXJzaW9uICIzLjIu MCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v Y2xpdWkvLS9jbGl1aS0zLjIuMC50Z3ojMTIwNjAxNTM3YTkxNmQyOTk0MGY5 MzRkYTNiNDhkNTg1YTM5MjEzZCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIHN0 cmluZy13aWR0aCAiXjEuMC4xIgorICAgIHN0cmlwLWFuc2kgIl4zLjAuMSIK KyAgICB3cmFwLWFuc2kgIl4yLjAuMCIKKworY29AXjQuNi4wOgorICB2ZXJz aW9uICI0LjYuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vY28vLS9jby00LjYuMC50Z3ojNmVhNmJkZjNkODUzYWU1NGNj YjhlNDdiZmEwYmYzZjkwMzFmYjE4NCIKKworY29kZS1wb2ludC1hdEBeMS4w LjA6CisgIHZlcnNpb24gIjEuMS4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9jb2RlLXBvaW50LWF0Ly0vY29kZS1wb2lu dC1hdC0xLjEuMC50Z3ojMGQwNzBiNGQwNDNhNWJlYTMzYTJmMWE0MGUyZWRi M2Q5YTRjY2Y3NyIKKworY29sb3JzQF4xLjEuMDoKKyAgdmVyc2lvbiAiMS4x LjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L2NvbG9ycy8tL2NvbG9ycy0xLjEuMi50Z3ojMTY4YTQ3MDE3NTZiNmE3ZjUx YTEyY2UwYzk3YmZhMjhjMDg0ZWQ2MyIKKworY29tYmluZS1saXN0c0BeMS4w LjA6CisgIHZlcnNpb24gIjEuMC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9jb21iaW5lLWxpc3RzLy0vY29tYmluZS1s aXN0cy0xLjAuMS50Z3ojNDU4YzA3ZTA5ZTBkOTAwZmMyOGI3MGEzZmVjMmRh Y2QxZDJjYjdmNiIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGxvZGFzaCAiXjQu NS4wIgorCitjb21iaW5lLXNvdXJjZS1tYXBAfjAuNy4xOgorICB2ZXJzaW9u ICIwLjcuMiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vY29tYmluZS1zb3VyY2UtbWFwLy0vY29tYmluZS1zb3VyY2UtbWFw LTAuNy4yLnRneiMwODcwMzEyODU2YjMwN2E4N2NjNGFjNDg2ZjNhOWE2MmFl Y2NjMDllIgorICBkZXBlbmRlbmNpZXM6CisgICAgY29udmVydC1zb3VyY2Ut bWFwICJ+MS4xLjAiCisgICAgaW5saW5lLXNvdXJjZS1tYXAgIn4wLjYuMCIK KyAgICBsb2Rhc2gubWVtb2l6ZSAifjMuMC4zIgorICAgIHNvdXJjZS1tYXAg In4wLjUuMyIKKworY29tYmluZWQtc3RyZWFtQF4xLjAuNSwgY29tYmluZWQt c3RyZWFtQH4xLjAuNToKKyAgdmVyc2lvbiAiMS4wLjUiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2NvbWJpbmVkLXN0cmVh bS8tL2NvbWJpbmVkLXN0cmVhbS0xLjAuNS50Z3ojOTM4MzcwYTU3YjRhNTFk ZWEyYzc3YzE1ZDVjNWZkZjg5NTE2NDAwOSIKKyAgZGVwZW5kZW5jaWVzOgor ICAgIGRlbGF5ZWQtc3RyZWFtICJ+MS4wLjAiCisKK2NvbW1hbmRlckBeMi45 LjA6CisgIHZlcnNpb24gIjIuOS4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9jb21tYW5kZXIvLS9jb21tYW5kZXItMi45 LjAudGd6IzljOTkwOTQxNzZlMTIyNDBjYjIyZDZjNTE0NjA5ODQwMGZlMGY3 ZDQiCisgIGRlcGVuZGVuY2llczoKKyAgICBncmFjZWZ1bC1yZWFkbGluayAi Pj0gMS4wLjAiCisKK2NvbW1vbmRpckBeMS4wLjE6CisgIHZlcnNpb24gIjEu MC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9jb21tb25kaXIvLS9jb21tb25kaXItMS4wLjEudGd6I2RkZDgwMGRhMGM2 NjEyNzM5M2NjYTU5NTBlYTk2OGEzYWFmMTI1M2IiCisKK2NvbXBvbmVudC1i aW5kQDEuMC4wOgorICB2ZXJzaW9uICIxLjAuMCIKKyAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY29tcG9uZW50LWJpbmQvLS9j b21wb25lbnQtYmluZC0xLjAuMC50Z3ojMDBjNjA4YWI3ZGNkOTM4OTdjMDAw OTY1MWIxZDNhOGUxZTczYmJkMSIKKworY29tcG9uZW50LWVtaXR0ZXJAMS4x LjI6CisgIHZlcnNpb24gIjEuMS4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9jb21wb25lbnQtZW1pdHRlci8tL2NvbXBv bmVudC1lbWl0dGVyLTEuMS4yLnRneiMyOTY1OTRmMjc1M2RhYTYzOTk2ZDJh ZjA4ZDE1YTk1MTE2YzlhZWMzIgorCitjb21wb25lbnQtZW1pdHRlckAxLjIu MToKKyAgdmVyc2lvbiAiMS4yLjEiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2NvbXBvbmVudC1lbWl0dGVyLy0vY29tcG9u ZW50LWVtaXR0ZXItMS4yLjEudGd6IzEzNzkxOGQ2ZDc4MjgzZjdkZjdhNmI3 YzVhNjNlMTQwZTY5NDI1ZTYiCisKK2NvbXBvbmVudC1pbmhlcml0QDAuMC4z OgorICB2ZXJzaW9uICIwLjAuMyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vY29tcG9uZW50LWluaGVyaXQvLS9jb21wb25l bnQtaW5oZXJpdC0wLjAuMy50Z3ojNjQ1ZmM0YWRmNThiNzJiNjQ5ZDVjYWU2 NTEzNTYxOWRiMjZmZjE0MyIKKworY29uY2F0LW1hcEAwLjAuMToKKyAgdmVy c2lvbiAiMC4wLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2NvbmNhdC1tYXAvLS9jb25jYXQtbWFwLTAuMC4xLnRneiNk OGE5NmJkNzdmZDY4ZGY3NzkzYTczMDM2YTNiYTBkNTQwNWQ0NzdiIgorCitj b25jYXQtc3RyZWFtQDEuNS4wOgorICB2ZXJzaW9uICIxLjUuMCIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY29uY2F0LXN0 cmVhbS8tL2NvbmNhdC1zdHJlYW0tMS41LjAudGd6IzUzZjdkNDNjNTFjNWU0 M2Y4MWM4ZmRkMDMzMjFjNjMxYmU2OGQ2MTEiCisgIGRlcGVuZGVuY2llczoK KyAgICBpbmhlcml0cyAifjIuMC4xIgorICAgIHJlYWRhYmxlLXN0cmVhbSAi fjIuMC4wIgorICAgIHR5cGVkYXJyYXkgIn4wLjAuNSIKKworY29uY2F0LXN0 cmVhbUBeMS41LjI6CisgIHZlcnNpb24gIjEuNi4wIgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jb25jYXQtc3RyZWFtLy0v Y29uY2F0LXN0cmVhbS0xLjYuMC50Z3ojMGFhYzY2MmZkNTJiZTc4OTY0ZDU1 MzJmNjk0Nzg0ZTcwMTEwYWNmNyIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGlu aGVyaXRzICJeMi4wLjMiCisgICAgcmVhZGFibGUtc3RyZWFtICJeMi4yLjIi CisgICAgdHlwZWRhcnJheSAiXjAuMC42IgorCitjb25jYXQtc3RyZWFtQH4x LjUuMCwgY29uY2F0LXN0cmVhbUB+MS41LjE6CisgIHZlcnNpb24gIjEuNS4y IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9j b25jYXQtc3RyZWFtLy0vY29uY2F0LXN0cmVhbS0xLjUuMi50Z3ojNzA4OTc4 NjI0ZDg1NmFmNDFhNWE3NDFkZWZkZDI2MWRhNzUyYzI2NiIKKyAgZGVwZW5k ZW5jaWVzOgorICAgIGluaGVyaXRzICJ+Mi4wLjEiCisgICAgcmVhZGFibGUt c3RyZWFtICJ+Mi4wLjAiCisgICAgdHlwZWRhcnJheSAifjAuMC41IgorCitj b25uZWN0QF4zLjYuMDoKKyAgdmVyc2lvbiAiMy42LjIiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Nvbm5lY3QvLS9jb25u ZWN0LTMuNi4yLnRneiM2OTRlOGQyMDY4MWJmZTQ5MDI4MmM4YWI4ODZiZTk4 ZjA5ZjQyZmU3IgorICBkZXBlbmRlbmNpZXM6CisgICAgZGVidWcgIjIuNi43 IgorICAgIGZpbmFsaGFuZGxlciAiMS4wLjMiCisgICAgcGFyc2V1cmwgIn4x LjMuMSIKKyAgICB1dGlscy1tZXJnZSAiMS4wLjAiCisKK2NvbnNvbGUtYnJv d3NlcmlmeUBeMS4xLjA6CisgIHZlcnNpb24gIjEuMS4wIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jb25zb2xlLWJyb3dz ZXJpZnkvLS9jb25zb2xlLWJyb3dzZXJpZnktMS4xLjAudGd6I2YwMjQxYzQ1 NzMwYTlmYzYzMjNiMjA2ZGJmMzhlZGM3NDFkMGJiMTAiCisgIGRlcGVuZGVu Y2llczoKKyAgICBkYXRlLW5vdyAiXjAuMS40IgorCitjb25zb2xlLWNvbnRy b2wtc3RyaW5nc0BeMS4wLjAsIGNvbnNvbGUtY29udHJvbC1zdHJpbmdzQH4x LjEuMDoKKyAgdmVyc2lvbiAiMS4xLjAiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2NvbnNvbGUtY29udHJvbC1zdHJpbmdz Ly0vY29uc29sZS1jb250cm9sLXN0cmluZ3MtMS4xLjAudGd6IzNkN2NmNDQ2 NGRiNjQ0NmVhNjQ0YmY0YjM5NTA3Zjk4NTEwMDhlOGUiCisKK2NvbnN0YW50 cy1icm93c2VyaWZ5QF4xLjAuMCwgY29uc3RhbnRzLWJyb3dzZXJpZnlAfjEu MC4wOgorICB2ZXJzaW9uICIxLjAuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vY29uc3RhbnRzLWJyb3dzZXJpZnkvLS9j b25zdGFudHMtYnJvd3NlcmlmeS0xLjAuMC50Z3ojYzIwYjk2ZDhjNjE3NzQ4 YWFmMWMxNjAyMTc2MGNkMjdmY2I4Y2I3NSIKKworY29udGVudC10eXBlQH4x LjAuMjoKKyAgdmVyc2lvbiAiMS4wLjIiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2NvbnRlbnQtdHlwZS8tL2NvbnRlbnQt dHlwZS0xLjAuMi50Z3ojYjdkMTEzYWVlN2E4ZGQyN2JkMjExMzNjNGRjMjUy OWRmMTcyMWVlZCIKKworY29udmVydC1zb3VyY2UtbWFwQF4xLjEuMCwgY29u dmVydC1zb3VyY2UtbWFwQF4xLjEuMzoKKyAgdmVyc2lvbiAiMS41LjAiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2NvbnZl cnQtc291cmNlLW1hcC8tL2NvbnZlcnQtc291cmNlLW1hcC0xLjUuMC50Z3oj OWFjZDcwODUxYzZkNWRmZGQ5M2Q5MjgyZTVlZGY5NGEwM2ZmNDZiNSIKKwor Y29udmVydC1zb3VyY2UtbWFwQH4xLjEuMDoKKyAgdmVyc2lvbiAiMS4xLjMi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Nv bnZlcnQtc291cmNlLW1hcC8tL2NvbnZlcnQtc291cmNlLW1hcC0xLjEuMy50 Z3ojNDgyOWM4NzdlOWZlNDliMzE2MWYzYmYzNjczODg4ZTIwNDY5OTg2MCIK KworY29va2llQDAuMy4xOgorICB2ZXJzaW9uICIwLjMuMSIKKyAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY29va2llLy0vY29v a2llLTAuMy4xLnRneiNlN2UwYTFmOWVmNDNiNGM4YmE5MjVjNWM1YTk2ZTgw NmQxNjg3M2JiIgorCitjb3JlLWpzQF4xLjAuMDoKKyAgdmVyc2lvbiAiMS4y LjciCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L2NvcmUtanMvLS9jb3JlLWpzLTEuMi43LnRneiM2NTIyOTRjMTQ2NTFkYjI4 ZmE5M2JkMmQ1ZmYyOTgzYTRmMDhjNjM2IgorCitjb3JlLWpzQF4yLjIuMCwg Y29yZS1qc0BeMi40LjA6CisgIHZlcnNpb24gIjIuNC4xIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jb3JlLWpzLy0vY29y ZS1qcy0yLjQuMS50Z3ojNGRlOTExZTY2N2IwZWFlOTEyNGUzNDI1NGI1M2Fl YTZmYzYxOGQzZSIKKworY29yZS11dGlsLWlzQH4xLjAuMDoKKyAgdmVyc2lv biAiMS4wLjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2NvcmUtdXRpbC1pcy8tL2NvcmUtdXRpbC1pcy0xLjAuMi50Z3oj YjVmZDU0MjIwYWEyYmM1YWI1N2FhYjcxNDBjOTQwNzU0NTAzYzFhNyIKKwor Y3JlYXRlLWVjZGhAXjQuMC4wOgorICB2ZXJzaW9uICI0LjAuMCIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY3JlYXRlLWVj ZGgvLS9jcmVhdGUtZWNkaC00LjAuMC50Z3ojODg4YzcyMzU5NmNkZjc2MTJm NjQ5ODIzM2VlYmQ3YTM1MzAxNzM3ZCIKKyAgZGVwZW5kZW5jaWVzOgorICAg IGJuLmpzICJeNC4xLjAiCisgICAgZWxsaXB0aWMgIl42LjAuMCIKKworY3Jl YXRlLWhhc2hAXjEuMS4wLCBjcmVhdGUtaGFzaEBeMS4xLjEsIGNyZWF0ZS1o YXNoQF4xLjEuMjoKKyAgdmVyc2lvbiAiMS4xLjMiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2NyZWF0ZS1oYXNoLy0vY3Jl YXRlLWhhc2gtMS4xLjMudGd6IzYwNjA0MmFjOGI5MjYyNzUwZjQ4M2NhZGRh YjBmNTgxOTE3MmQ4ZmQiCisgIGRlcGVuZGVuY2llczoKKyAgICBjaXBoZXIt YmFzZSAiXjEuMC4xIgorICAgIGluaGVyaXRzICJeMi4wLjEiCisgICAgcmlw ZW1kMTYwICJeMi4wLjAiCisgICAgc2hhLmpzICJeMi40LjAiCisKK2NyZWF0 ZS1obWFjQF4xLjEuMCwgY3JlYXRlLWhtYWNAXjEuMS4yLCBjcmVhdGUtaG1h Y0BeMS4xLjQ6CisgIHZlcnNpb24gIjEuMS42IgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jcmVhdGUtaG1hYy8tL2NyZWF0 ZS1obWFjLTEuMS42LnRneiNhY2I5ZTIyMWE0ZTE3YmRiMDc2ZTkwNjU3YzQy YjkzZTM3MjZjZjA2IgorICBkZXBlbmRlbmNpZXM6CisgICAgY2lwaGVyLWJh c2UgIl4xLjAuMyIKKyAgICBjcmVhdGUtaGFzaCAiXjEuMS4wIgorICAgIGlu aGVyaXRzICJeMi4wLjEiCisgICAgcmlwZW1kMTYwICJeMi4wLjAiCisgICAg c2FmZS1idWZmZXIgIl41LjAuMSIKKyAgICBzaGEuanMgIl4yLjQuOCIKKwor Y3J5cHRpbGVzQDIueC54OgorICB2ZXJzaW9uICIyLjAuNSIKKyAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vY3J5cHRpbGVzLy0v Y3J5cHRpbGVzLTIuMC41LnRneiMzYmRmZWNkYzYwODE0N2MxYzY3MjAyZmEy OTFlN2RjYTU5ZWFhM2I4IgorICBkZXBlbmRlbmNpZXM6CisgICAgYm9vbSAi Mi54LngiCisKK2NyeXB0by1icm93c2VyaWZ5QF4zLjAuMCwgY3J5cHRvLWJy b3dzZXJpZnlAXjMuMTEuMDoKKyAgdmVyc2lvbiAiMy4xMS4wIgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9jcnlwdG8tYnJv d3NlcmlmeS8tL2NyeXB0by1icm93c2VyaWZ5LTMuMTEuMC50Z3ojMzY1MmEw OTA2YWI5YjJhN2UwYzNjZTY2YTQwOGU5NTdhMjQ4NTUyMiIKKyAgZGVwZW5k ZW5jaWVzOgorICAgIGJyb3dzZXJpZnktY2lwaGVyICJeMS4wLjAiCisgICAg YnJvd3NlcmlmeS1zaWduICJeNC4wLjAiCisgICAgY3JlYXRlLWVjZGggIl40 LjAuMCIKKyAgICBjcmVhdGUtaGFzaCAiXjEuMS4wIgorICAgIGNyZWF0ZS1o bWFjICJeMS4xLjAiCisgICAgZGlmZmllLWhlbGxtYW4gIl41LjAuMCIKKyAg ICBpbmhlcml0cyAiXjIuMC4xIgorICAgIHBia2RmMiAiXjMuMC4zIgorICAg IHB1YmxpYy1lbmNyeXB0ICJeNC4wLjAiCisgICAgcmFuZG9tYnl0ZXMgIl4y LjAuMCIKKworY3NzLXNlbGVjdEB+MS4yLjA6CisgIHZlcnNpb24gIjEuMi4w IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9j c3Mtc2VsZWN0Ly0vY3NzLXNlbGVjdC0xLjIuMC50Z3ojMmIzYTExMDUzOWM1 MzU1ZjFjZDhkMzE0NjIzZTg3MGIxMjFlYzg1OCIKKyAgZGVwZW5kZW5jaWVz OgorICAgIGJvb2xiYXNlICJ+MS4wLjAiCisgICAgY3NzLXdoYXQgIjIuMSIK KyAgICBkb211dGlscyAiMS41LjEiCisgICAgbnRoLWNoZWNrICJ+MS4wLjEi CisKK2Nzcy13aGF0QDIuMToKKyAgdmVyc2lvbiAiMi4xLjAiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Nzcy13aGF0Ly0v Y3NzLXdoYXQtMi4xLjAudGd6Izk0NjdkMDMyYzM4Y2ZhZWZiOWYyZDc5NTAx MjUzMDYyZjg3ZmExYmQiCisKK2N1c3RvbS1ldmVudEB+MS4wLjA6CisgIHZl cnNpb24gIjEuMC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9jdXN0b20tZXZlbnQvLS9jdXN0b20tZXZlbnQtMS4wLjEu dGd6IzVkMDJhNDY4NTBhZGYxYjRhMzE3OTQ2YTM5MjhmY2NiNWJmZDA0MjUi CisKK2RAMToKKyAgdmVyc2lvbiAiMS4wLjAiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2QvLS9kLTEuMC4wLnRneiM3NTRi YjViZmU1NTQ1MWRhNjlhNThiOTRkNDVmNGM1YjA0NjJkNThmIgorICBkZXBl bmRlbmNpZXM6CisgICAgZXM1LWV4dCAiXjAuMTAuOSIKKworZGFzaGRhc2hA XjEuMTIuMDoKKyAgdmVyc2lvbiAiMS4xNC4xIgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9kYXNoZGFzaC8tL2Rhc2hkYXNo LTEuMTQuMS50Z3ojODUzY2ZhMGY3Y2JlMmZlZDVkZTIwMzI2YjhkZDU4MTAz NWY2ZTJmMCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGFzc2VydC1wbHVzICJe MS4wLjAiCisKK2RhdGUtbm93QF4wLjEuNDoKKyAgdmVyc2lvbiAiMC4xLjQi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Rh dGUtbm93Ly0vZGF0ZS1ub3ctMC4xLjQudGd6I2VhZjQzOWZkNGQ0ODQ4YWQ3 NGU1Y2M3ZGJlZjIwMDY3MmI5ZTM0NWIiCisKK2RlYnVnQDAuNy40OgorICB2 ZXJzaW9uICIwLjcuNCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vZGVidWcvLS9kZWJ1Zy0wLjcuNC50Z3ojMDZlMWVhODA4 MmMyY2IxNGUzOTgwNmUyMmUyZjZmNzU3ZjkyYWYzOSIKKworZGVidWdAMi4y LjA6CisgIHZlcnNpb24gIjIuMi4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9kZWJ1Zy8tL2RlYnVnLTIuMi4wLnRneiNm ODcwNTdlOTk1YjFhMWY2YWU2YTQ5NjA2NjQxMzdiYzU2ZjAzOWRhIgorICBk ZXBlbmRlbmNpZXM6CisgICAgbXMgIjAuNy4xIgorCitkZWJ1Z0AyLjMuMzoK KyAgdmVyc2lvbiAiMi4zLjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL2RlYnVnLy0vZGVidWctMi4zLjMudGd6IzQwYzQ1 M2U2N2U2ZTEzYzkwMWRkZWMzMTdhZjg5ODZjZGE5ZWZmOGMiCisgIGRlcGVu ZGVuY2llczoKKyAgICBtcyAiMC43LjIiCisKK2RlYnVnQDIuNi43OgorICB2 ZXJzaW9uICIyLjYuNyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vZGVidWcvLS9kZWJ1Zy0yLjYuNy50Z3ojOTJiYWQxZjZk MDViYmI2YmJhMjJjY2E4OGJjZDBlYzg5NGMyODYxZSIKKyAgZGVwZW5kZW5j aWVzOgorICAgIG1zICIyLjAuMCIKKworZGVidWdAXjIuMS4xLCBkZWJ1Z0Be Mi4yLjAsIGRlYnVnQF4yLjQuNToKKyAgdmVyc2lvbiAiMi42LjgiCisgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2RlYnVnLy0v ZGVidWctMi42LjgudGd6I2U3MzE1MzFjYTJlZGUyN2QxODgyMjI0MjdkYTE3 ODIxZDY4ZmY0ZmMiCisgIGRlcGVuZGVuY2llczoKKyAgICBtcyAiMi4wLjAi CisKK2RlY2FtZWxpemVAXjEuMC4wLCBkZWNhbWVsaXplQF4xLjEuMToKKyAg dmVyc2lvbiAiMS4yLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL2RlY2FtZWxpemUvLS9kZWNhbWVsaXplLTEuMi4wLnRn eiNmNjUzNGQxNTE0ODI2OWIyMDM1MmU3YmVlMjZmNTAxZjlhMTkxMjkwIgor CitkZWVwLWV4dGVuZEB+MC40LjA6CisgIHZlcnNpb24gIjAuNC4yIgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9kZWVwLWV4 dGVuZC8tL2RlZXAtZXh0ZW5kLTAuNC4yLnRneiM0OGI2OTljMjdlMzM0YmY4 OWYxMDg5MmJlNDMyZjZlNGM3ZDM0YTdmIgorCitkZWVwLWlzQH4wLjEuMzoK KyAgdmVyc2lvbiAiMC4xLjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL2RlZXAtaXMvLS9kZWVwLWlzLTAuMS4zLnRneiNi MzY5ZDZmYjVkYmMxM2VlY2Y1MjRmOTFiMDcwZmVlZGMzNTdjZjM0IgorCitk ZWZpbmUtcHJvcGVydGllc0BeMS4xLjI6CisgIHZlcnNpb24gIjEuMS4yIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9kZWZp bmUtcHJvcGVydGllcy8tL2RlZmluZS1wcm9wZXJ0aWVzLTEuMS4yLnRneiM4 M2E3M2YyZmVhNTY5ODk4ZmI3MzcxOTNjOGY4NzNjYWY2ZDQ1Yzk0IgorICBk ZXBlbmRlbmNpZXM6CisgICAgZm9yZWFjaCAiXjIuMC41IgorICAgIG9iamVj dC1rZXlzICJeMS4wLjgiCisKK2RlZmluZWRAXjEuMC4wOgorICB2ZXJzaW9u ICIxLjAuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vZGVmaW5lZC8tL2RlZmluZWQtMS4wLjAudGd6I2M5OGQ5YmNlZjc1 Njc0MTg4ZTExMDk2OTE1MTE5OWUzOWIxZmE2OTMiCisKK2RlbEBeMi4wLjI6 CisgIHZlcnNpb24gIjIuMi4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9kZWwvLS9kZWwtMi4yLjIudGd6I2MxMmM5ODFk MDY3ODQ2Yzg0YmNhZjg2MmNmZjkzMGQ5MDdmZmQxYTgiCisgIGRlcGVuZGVu Y2llczoKKyAgICBnbG9iYnkgIl41LjAuMCIKKyAgICBpcy1wYXRoLWN3ZCAi XjEuMC4wIgorICAgIGlzLXBhdGgtaW4tY3dkICJeMS4wLjAiCisgICAgb2Jq ZWN0LWFzc2lnbiAiXjQuMC4xIgorICAgIHBpZnkgIl4yLjAuMCIKKyAgICBw aW5raWUtcHJvbWlzZSAiXjIuMC4wIgorICAgIHJpbXJhZiAiXjIuMi44Igor CitkZWxheWVkLXN0cmVhbUB+MS4wLjA6CisgIHZlcnNpb24gIjEuMC4wIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9kZWxh eWVkLXN0cmVhbS8tL2RlbGF5ZWQtc3RyZWFtLTEuMC4wLnRneiNkZjNhZTE5 OWFjYWRmYjdkNDQwYWFhZTBiMjllMjI3MmIyNGVjNjE5IgorCitkZWxlZ2F0 ZXNAXjEuMC4wOgorICB2ZXJzaW9uICIxLjAuMCIKKyAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZGVsZWdhdGVzLy0vZGVsZWdh dGVzLTEuMC4wLnRneiM4NGM2ZTE1OWI4MTkwNGZkY2E1OWEwZWY0NGNkODcw ZDMxMjUwZjlhIgorCitkZXBkQDEuMS4wLCBkZXBkQH4xLjEuMDoKKyAgdmVy c2lvbiAiMS4xLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2RlcGQvLS9kZXBkLTEuMS4wLnRneiNlMWJkODJjNmFhYjZj ZWQ5NjViOTdiODhiMTdlZDNlNTI4Y2ExOGMzIgorCitkZXBzLXNvcnRAXjIu MC4wOgorICB2ZXJzaW9uICIyLjAuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vZGVwcy1zb3J0Ly0vZGVwcy1zb3J0LTIu MC4wLnRneiMwOTE3MjQ5MDJlODQ2NTgyNjBlYjkxMDc0OGNjY2QxYWY2ZTIx ZmI1IgorICBkZXBlbmRlbmNpZXM6CisgICAgSlNPTlN0cmVhbSAiXjEuMC4z IgorICAgIHNoYXN1bSAiXjEuMC4wIgorICAgIHN1YmFyZyAiXjEuMC4wIgor ICAgIHRocm91Z2gyICJeMi4wLjAiCisKK2Rlcy5qc0BeMS4wLjA6CisgIHZl cnNpb24gIjEuMC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9kZXMuanMvLS9kZXMuanMtMS4wLjAudGd6I2MwNzRkMmUy YWE2YThhOWEwN2RiZDYxZjlhMTVjMmNkODNlYzhlY2MiCisgIGRlcGVuZGVu Y2llczoKKyAgICBpbmhlcml0cyAiXjIuMC4xIgorICAgIG1pbmltYWxpc3Rp Yy1hc3NlcnQgIl4xLjAuMCIKKworZGV0ZWN0LWluZGVudEBeNC4wLjA6Cisg IHZlcnNpb24gIjQuMC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9kZXRlY3QtaW5kZW50Ly0vZGV0ZWN0LWluZGVudC00 LjAuMC50Z3ojZjc2ZDA2NDM1MmNkZjQzYTFjYjZjZTYxOWM0ZWUzYTk0NzVk ZTIwOCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIHJlcGVhdGluZyAiXjIuMC4w IgorCitkZXRlY3RpdmVAXjQuMC4wOgorICB2ZXJzaW9uICI0LjUuMCIKKyAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZGV0ZWN0 aXZlLy0vZGV0ZWN0aXZlLTQuNS4wLnRneiM2ZTVhOGM2YjI2ZTZjN2EyNTRi MWM2YjZkNzQ5MGQ5OGVjOTFlZGQxIgorICBkZXBlbmRlbmNpZXM6CisgICAg YWNvcm4gIl40LjAuMyIKKyAgICBkZWZpbmVkICJeMS4wLjAiCisKK2RpQF4w LjAuMToKKyAgdmVyc2lvbiAiMC4wLjEiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2RpLy0vZGktMC4wLjEudGd6IzgwNjY0 OTMyNmNlYWE3Y2FhMzMwNmQ3NWQ5ODVlYTI3NDhiYTkxM2MiCisKK2RpZmZp ZS1oZWxsbWFuQF41LjAuMDoKKyAgdmVyc2lvbiAiNS4wLjIiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2RpZmZpZS1oZWxs bWFuLy0vZGlmZmllLWhlbGxtYW4tNS4wLjIudGd6I2I1ODM1NzM5MjcwY2Zl MjZhY2Y2MzIwOTlmZGVkMmEwN2YyMDllNWUiCisgIGRlcGVuZGVuY2llczoK KyAgICBibi5qcyAiXjQuMS4wIgorICAgIG1pbGxlci1yYWJpbiAiXjQuMC4w IgorICAgIHJhbmRvbWJ5dGVzICJeMi4wLjAiCisKK2RvY3RyaW5lQF4xLjIu MjoKKyAgdmVyc2lvbiAiMS41LjAiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2RvY3RyaW5lLy0vZG9jdHJpbmUtMS41LjAu dGd6IzM3OWRjZTczMGY2MTY2Zjc2Y2VmYTRlNjcwN2ExNTliMDJjNWE2ZmEi CisgIGRlcGVuZGVuY2llczoKKyAgICBlc3V0aWxzICJeMi4wLjIiCisgICAg aXNhcnJheSAiXjEuMC4wIgorCitkb2N0cmluZUBeMi4wLjA6CisgIHZlcnNp b24gIjIuMC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9kb2N0cmluZS8tL2RvY3RyaW5lLTIuMC4wLnRneiNjNzNkOGQy OTA5ZDIyMjkxZTFhMDA3YTM5NTgwNGRhOGI2NjVmZTYzIgorICBkZXBlbmRl bmNpZXM6CisgICAgZXN1dGlscyAiXjIuMC4yIgorICAgIGlzYXJyYXkgIl4x LjAuMCIKKworZG9tLXNlcmlhbGl6ZUBeMi4yLjA6CisgIHZlcnNpb24gIjIu Mi4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9kb20tc2VyaWFsaXplLy0vZG9tLXNlcmlhbGl6ZS0yLjIuMS50Z3ojNTYy YWU4OTk5ZjQ0YmU1ZWEzMDc2ZjU0MTlkY2Q1OWViNDNhYzk1YiIKKyAgZGVw ZW5kZW5jaWVzOgorICAgIGN1c3RvbS1ldmVudCAifjEuMC4wIgorICAgIGVu dCAifjIuMi4wIgorICAgIGV4dGVuZCAiXjMuMC4wIgorICAgIHZvaWQtZWxl bWVudHMgIl4yLjAuMCIKKworZG9tLXNlcmlhbGl6ZXJAMCwgZG9tLXNlcmlh bGl6ZXJAfjAuMS4wOgorICB2ZXJzaW9uICIwLjEuMCIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZG9tLXNlcmlhbGl6ZXIv LS9kb20tc2VyaWFsaXplci0wLjEuMC50Z3ojMDczYzY5NzU0NmNlMDc4MGNl MjNiZTRhMjhlMjkzZTQwYmMzMGM4MiIKKyAgZGVwZW5kZW5jaWVzOgorICAg IGRvbWVsZW1lbnR0eXBlICJ+MS4xLjEiCisgICAgZW50aXRpZXMgIn4xLjEu MSIKKworZG9tYWluLWJyb3dzZXJAXjEuMS4xLCBkb21haW4tYnJvd3NlckB+ MS4xLjA6CisgIHZlcnNpb24gIjEuMS43IgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9kb21haW4tYnJvd3Nlci8tL2RvbWFp bi1icm93c2VyLTEuMS43LnRneiM4NjdhYTRiMDkzZmFhMDVmMWRlMDhjMDZm NGQ3YjIxZmRmODY5OGJjIgorCitkb21lbGVtZW50dHlwZUAxLCBkb21lbGVt ZW50dHlwZUBeMS4zLjA6CisgIHZlcnNpb24gIjEuMy4wIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9kb21lbGVtZW50dHlw ZS8tL2RvbWVsZW1lbnR0eXBlLTEuMy4wLnRneiNiMTdhZWQ4MmU4YWI1OWU1 MmRkOWMxOWIxNzU2ZTBmYzE4NzIwNGMyIgorCitkb21lbGVtZW50dHlwZUB+ MS4xLjE6CisgIHZlcnNpb24gIjEuMS4zIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9kb21lbGVtZW50dHlwZS8tL2RvbWVs ZW1lbnR0eXBlLTEuMS4zLnRneiNiZDI4NzczZTI2NDI4ODFhZWM1MTU0NDky NDI5OWM1Y2Q4MjIxODViIgorCitkb21oYW5kbGVyQF4yLjMuMDoKKyAgdmVy c2lvbiAiMi40LjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2RvbWhhbmRsZXIvLS9kb21oYW5kbGVyLTIuNC4xLnRneiM4 OTJlNDcwMDBhOTliZTU1YmJmMzc3NGZmZWEwNTYxZDg4NzljMjU5IgorICBk ZXBlbmRlbmNpZXM6CisgICAgZG9tZWxlbWVudHR5cGUgIjEiCisKK2RvbXV0 aWxzQDEuNS4xLCBkb211dGlsc0BeMS41LjE6CisgIHZlcnNpb24gIjEuNS4x IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9k b211dGlscy8tL2RvbXV0aWxzLTEuNS4xLnRneiNkY2Q4NDg4YTI2ZjU2M2Q2 MTA3OWU0OGM5ZjdiN2UzMjM3MzY4MmNmIgorICBkZXBlbmRlbmNpZXM6Cisg ICAgZG9tLXNlcmlhbGl6ZXIgIjAiCisgICAgZG9tZWxlbWVudHR5cGUgIjEi CisKK2R1cGxleGVyMkBeMC4xLjIsIGR1cGxleGVyMkB+MC4xLjAsIGR1cGxl eGVyMkB+MC4xLjI6CisgIHZlcnNpb24gIjAuMS40IgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9kdXBsZXhlcjIvLS9kdXBs ZXhlcjItMC4xLjQudGd6IzhiMTJkYWI4NzhjMGQ2OWUzZTc4OTEwNTE2NjJh MzJmYzZiZGRjYzEiCisgIGRlcGVuZGVuY2llczoKKyAgICByZWFkYWJsZS1z dHJlYW0gIl4yLjAuMiIKKworZWNjLWpzYm5AfjAuMS4xOgorICB2ZXJzaW9u ICIwLjEuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vZWNjLWpzYm4vLS9lY2MtanNibi0wLjEuMS50Z3ojMGZjNzNhOWVk NWYwZDUzYzM4MTkzMzk4NTIzZWY3ZTU0Mzc3NzUwNSIKKyAgZGVwZW5kZW5j aWVzOgorICAgIGpzYm4gIn4wLjEuMCIKKworZWUtZmlyc3RAMS4xLjE6Cisg IHZlcnNpb24gIjEuMS4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9lZS1maXJzdC8tL2VlLWZpcnN0LTEuMS4xLnRneiM1 OTBjNjExNTZiMGFlMmY0ZjAyNTU3MzJhMTU4YjI2NmJjNTZiMjFkIgorCitl bGxpcHRpY0BeNi4wLjA6CisgIHZlcnNpb24gIjYuNC4wIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9lbGxpcHRpYy8tL2Vs bGlwdGljLTYuNC4wLnRneiNjYWM5YWY4NzYyYzg1ODM2MTg3MDAzYzhkZmUx OTNlNWUyZWFlNWRmIgorICBkZXBlbmRlbmNpZXM6CisgICAgYm4uanMgIl40 LjQuMCIKKyAgICBicm9yYW5kICJeMS4wLjEiCisgICAgaGFzaC5qcyAiXjEu MC4wIgorICAgIGhtYWMtZHJiZyAiXjEuMC4wIgorICAgIGluaGVyaXRzICJe Mi4wLjEiCisgICAgbWluaW1hbGlzdGljLWFzc2VydCAiXjEuMC4wIgorICAg IG1pbmltYWxpc3RpYy1jcnlwdG8tdXRpbHMgIl4xLjAuMCIKKworZW1vamlz LWxpc3RAXjIuMC4wOgorICB2ZXJzaW9uICIyLjEuMCIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZW1vamlzLWxpc3QvLS9l bW9qaXMtbGlzdC0yLjEuMC50Z3ojNGRhYTRkOWRiMDBmOTgxOTg4MGM3OWZh NDU3YWU1YjA5YTFmZDM4OSIKKworZW5jb2RldXJsQH4xLjAuMToKKyAgdmVy c2lvbiAiMS4wLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2VuY29kZXVybC8tL2VuY29kZXVybC0xLjAuMS50Z3ojNzll M2Q1ODY1NTM0NjkwOWZlNmYwZjQ1YTVkZTY4MTAzYjI5NGQyMCIKKworZW5j b2RpbmdAXjAuMS4xMToKKyAgdmVyc2lvbiAiMC4xLjEyIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9lbmNvZGluZy8tL2Vu Y29kaW5nLTAuMS4xMi50Z3ojNTM4YjY2ZjNlZTYyY2QxYWI1MWVjMzIzODI5 ZDFmOTQ4MGM3NGJlYiIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGljb252LWxp dGUgIn4wLjQuMTMiCisKK2VuZ2luZS5pby1jbGllbnRAMS44LjM6CisgIHZl cnNpb24gIjEuOC4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9lbmdpbmUuaW8tY2xpZW50Ly0vZW5naW5lLmlvLWNsaWVu dC0xLjguMy50Z3ojMTc5OGVkOTM0NTEyNDY0NTNkNGM2ZjYzNWQ3YTIwMWZl OTQwZDVhYiIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGNvbXBvbmVudC1lbWl0 dGVyICIxLjIuMSIKKyAgICBjb21wb25lbnQtaW5oZXJpdCAiMC4wLjMiCisg ICAgZGVidWcgIjIuMy4zIgorICAgIGVuZ2luZS5pby1wYXJzZXIgIjEuMy4y IgorICAgIGhhcy1jb3JzICIxLjEuMCIKKyAgICBpbmRleG9mICIwLjAuMSIK KyAgICBwYXJzZWpzb24gIjAuMC4zIgorICAgIHBhcnNlcXMgIjAuMC41Igor ICAgIHBhcnNldXJpICIwLjAuNSIKKyAgICB3cyAiMS4xLjIiCisgICAgeG1s aHR0cHJlcXVlc3Qtc3NsICIxLjUuMyIKKyAgICB5ZWFzdCAiMC4xLjIiCisK K2VuZ2luZS5pby1wYXJzZXJAMS4zLjI6CisgIHZlcnNpb24gIjEuMy4yIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9lbmdp bmUuaW8tcGFyc2VyLy0vZW5naW5lLmlvLXBhcnNlci0xLjMuMi50Z3ojOTM3 YjA3OWYwMDA3ZDA4OTNlYzU2ZDQ2Y2IyMjBiOGNiNDM1MjIwYSIKKyAgZGVw ZW5kZW5jaWVzOgorICAgIGFmdGVyICIwLjguMiIKKyAgICBhcnJheWJ1ZmZl ci5zbGljZSAiMC4wLjYiCisgICAgYmFzZTY0LWFycmF5YnVmZmVyICIwLjEu NSIKKyAgICBibG9iICIwLjAuNCIKKyAgICBoYXMtYmluYXJ5ICIwLjEuNyIK KyAgICB3dGYtOCAiMS4wLjAiCisKK2VuZ2luZS5pb0AxLjguMzoKKyAgdmVy c2lvbiAiMS44LjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2VuZ2luZS5pby8tL2VuZ2luZS5pby0xLjguMy50Z3ojOGRl N2Y5Nzg5NWQyMGQzOWI4NWY4OGVlZWU3NzdiMmJkNDJiMTNkNCIKKyAgZGVw ZW5kZW5jaWVzOgorICAgIGFjY2VwdHMgIjEuMy4zIgorICAgIGJhc2U2NGlk ICIxLjAuMCIKKyAgICBjb29raWUgIjAuMy4xIgorICAgIGRlYnVnICIyLjMu MyIKKyAgICBlbmdpbmUuaW8tcGFyc2VyICIxLjMuMiIKKyAgICB3cyAiMS4x LjIiCisKK2VuaGFuY2VkLXJlc29sdmVAXjMuMC4wOgorICB2ZXJzaW9uICIz LjEuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vZW5oYW5jZWQtcmVzb2x2ZS8tL2VuaGFuY2VkLXJlc29sdmUtMy4xLjAu dGd6IzlmNGI2MjZmNTc3MjQ1ZWRjZjRiMmFkODNkODZlMTdmNGY0MjFkZWMi CisgIGRlcGVuZGVuY2llczoKKyAgICBncmFjZWZ1bC1mcyAiXjQuMS4yIgor ICAgIG1lbW9yeS1mcyAiXjAuNC4wIgorICAgIG9iamVjdC1hc3NpZ24gIl40 LjAuMSIKKyAgICB0YXBhYmxlICJeMC4yLjUiCisKK2VudEB+Mi4yLjA6Cisg IHZlcnNpb24gIjIuMi4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9lbnQvLS9lbnQtMi4yLjAudGd6I2U5NjQyMTkzMjVh MjFkMDVmNDQ0NjZhMmY2ODZlZDZjZTVmNWRkMWQiCisKK2VudGl0aWVzQF4x LjEuMSwgZW50aXRpZXNAfjEuMS4xOgorICB2ZXJzaW9uICIxLjEuMSIKKyAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZW50aXRp ZXMvLS9lbnRpdGllcy0xLjEuMS50Z3ojNmU1YzJkMGE1NjIxYjVkYWRhZWNl ZjgwYjkwZWRmYjVjZDc3NzJmMCIKKworZW56eW1lQH4yLjguMjoKKyAgdmVy c2lvbiAiMi44LjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2VuenltZS8tL2VuenltZS0yLjguMi50Z3ojNmM4YmNiMDUw MTJhYmM0YWE0YmMzMjEzZmIyMzc4MGI5YjViMTcxNCIKKyAgZGVwZW5kZW5j aWVzOgorICAgIGNoZWVyaW8gIl4wLjIyLjAiCisgICAgZnVuY3Rpb24ucHJv dG90eXBlLm5hbWUgIl4xLjAuMCIKKyAgICBpcy1zdWJzZXQgIl4wLjEuMSIK KyAgICBsb2Rhc2ggIl40LjE3LjIiCisgICAgb2JqZWN0LWlzICJeMS4wLjEi CisgICAgb2JqZWN0LmFzc2lnbiAiXjQuMC40IgorICAgIG9iamVjdC5lbnRy aWVzICJeMS4wLjMiCisgICAgb2JqZWN0LnZhbHVlcyAiXjEuMC4zIgorICAg IHByb3AtdHlwZXMgIl4xNS41LjQiCisgICAgdXVpZCAiXjIuMC4zIgorCitl cnJub0BeMC4xLjM6CisgIHZlcnNpb24gIjAuMS40IgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9lcnJuby8tL2Vycm5vLTAu MS40LnRneiNiODk2ZTIzYTllNWU4YmEzMzg3MWZjOTk2YWJkMzYzNWZjOWEx YzdkIgorICBkZXBlbmRlbmNpZXM6CisgICAgcHJyICJ+MC4wLjAiCisKK2Vy cm9yLWV4QF4xLjIuMDoKKyAgdmVyc2lvbiAiMS4zLjEiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Vycm9yLWV4Ly0vZXJy b3ItZXgtMS4zLjEudGd6I2Y4NTVhODZjZTYxYWRjNGU4NjIxYzNjZGEyMWU3 YTc2MTJjM2E4ZGMiCisgIGRlcGVuZGVuY2llczoKKyAgICBpcy1hcnJheWlz aCAiXjAuMi4xIgorCitlcy1hYnN0cmFjdEBeMS42LjEsIGVzLWFic3RyYWN0 QF4xLjcuMDoKKyAgdmVyc2lvbiAiMS43LjAiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2VzLWFic3RyYWN0Ly0vZXMtYWJz dHJhY3QtMS43LjAudGd6I2RmYWRlNzc0ZTAxYmZjZDk3Zjk2MTgwMjk4YzQ0 OWM4NjIzZmI5NGMiCisgIGRlcGVuZGVuY2llczoKKyAgICBlcy10by1wcmlt aXRpdmUgIl4xLjEuMSIKKyAgICBmdW5jdGlvbi1iaW5kICJeMS4xLjAiCisg ICAgaXMtY2FsbGFibGUgIl4xLjEuMyIKKyAgICBpcy1yZWdleCAiXjEuMC4z IgorCitlcy10by1wcmltaXRpdmVAXjEuMS4xOgorICB2ZXJzaW9uICIxLjEu MSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v ZXMtdG8tcHJpbWl0aXZlLy0vZXMtdG8tcHJpbWl0aXZlLTEuMS4xLnRneiM0 NTM1NTI0OGE4ODk3OTAzNGI2NzkyZTE5YmI4MWYyYjc5NzVkZDBkIgorICBk ZXBlbmRlbmNpZXM6CisgICAgaXMtY2FsbGFibGUgIl4xLjEuMSIKKyAgICBp cy1kYXRlLW9iamVjdCAiXjEuMC4xIgorICAgIGlzLXN5bWJvbCAiXjEuMC4x IgorCitlczUtZXh0QF4wLjEwLjE0LCBlczUtZXh0QF4wLjEwLjksIGVzNS1l eHRAfjAuMTAuMTQ6CisgIHZlcnNpb24gIjAuMTAuMjMiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2VzNS1leHQvLS9lczUt ZXh0LTAuMTAuMjMudGd6Izc1NzhiNTFiZTk3NDIwN2E1NDg3ODIxYjU2NTM4 YzIyNGU0ZTdiMzgiCisgIGRlcGVuZGVuY2llczoKKyAgICBlczYtaXRlcmF0 b3IgIjIiCisgICAgZXM2LXN5bWJvbCAifjMuMSIKKworZXM2LWl0ZXJhdG9y QDIsIGVzNi1pdGVyYXRvckBeMi4wLjEsIGVzNi1pdGVyYXRvckB+Mi4wLjE6 CisgIHZlcnNpb24gIjIuMC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9lczYtaXRlcmF0b3IvLS9lczYtaXRlcmF0b3It Mi4wLjEudGd6IzhlMzE5YzlmMDQ1M2JmNTc1ZDM3NDk0MGE2NTU5MjBlNTlj YTU1MTIiCisgIGRlcGVuZGVuY2llczoKKyAgICBkICIxIgorICAgIGVzNS1l eHQgIl4wLjEwLjE0IgorICAgIGVzNi1zeW1ib2wgIl4zLjEiCisKK2VzNi1t YXBAXjAuMS4zOgorICB2ZXJzaW9uICIwLjEuNSIKKyAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZXM2LW1hcC8tL2VzNi1tYXAt MC4xLjUudGd6IzkxMzZlMDUwM2RjYzA2YTMwMTY5MGYwYmIxNGZmNGUzNjRl OTQ5ZjAiCisgIGRlcGVuZGVuY2llczoKKyAgICBkICIxIgorICAgIGVzNS1l eHQgIn4wLjEwLjE0IgorICAgIGVzNi1pdGVyYXRvciAifjIuMC4xIgorICAg IGVzNi1zZXQgIn4wLjEuNSIKKyAgICBlczYtc3ltYm9sICJ+My4xLjEiCisg ICAgZXZlbnQtZW1pdHRlciAifjAuMy41IgorCitlczYtcHJvbWlzZUB+NC4w LjM6CisgIHZlcnNpb24gIjQuMC41IgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9lczYtcHJvbWlzZS8tL2VzNi1wcm9taXNl LTQuMC41LnRneiM3ODgyZjMwYWRkZTViMjQwY2NmYTdmN2Q3OGM1NDgzMzA5 NTFhZTQyIgorCitlczYtc2V0QH4wLjEuNToKKyAgdmVyc2lvbiAiMC4xLjUi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Vz Ni1zZXQvLS9lczYtc2V0LTAuMS41LnRneiNkMmIzZWM1ZDRkODAwY2VkODE4 ZGI1MzhkMjg5NzRkYjBhNzNjY2IxIgorICBkZXBlbmRlbmNpZXM6CisgICAg ZCAiMSIKKyAgICBlczUtZXh0ICJ+MC4xMC4xNCIKKyAgICBlczYtaXRlcmF0 b3IgIn4yLjAuMSIKKyAgICBlczYtc3ltYm9sICIzLjEuMSIKKyAgICBldmVu dC1lbWl0dGVyICJ+MC4zLjUiCisKK2VzNi1zeW1ib2xAMy4xLjEsIGVzNi1z eW1ib2xAXjMuMSwgZXM2LXN5bWJvbEBeMy4xLjEsIGVzNi1zeW1ib2xAfjMu MSwgZXM2LXN5bWJvbEB+My4xLjE6CisgIHZlcnNpb24gIjMuMS4xIgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9lczYtc3lt Ym9sLy0vZXM2LXN5bWJvbC0zLjEuMS50Z3ojYmYwMGVmNGZkYWI2YmExYjQ2 ZWNiN2I2MjliNGM3ZWQ1NzE1Y2M3NyIKKyAgZGVwZW5kZW5jaWVzOgorICAg IGQgIjEiCisgICAgZXM1LWV4dCAifjAuMTAuMTQiCisKK2VzNi13ZWFrLW1h cEBeMi4wLjE6CisgIHZlcnNpb24gIjIuMC4yIgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9lczYtd2Vhay1tYXAvLS9lczYt d2Vhay1tYXAtMi4wLjIudGd6IzVlM2FiMzIyNTFmZmQxNTM4YTFmOGU1ZmZh MTM1Nzc3MmY5MmQ5NmYiCisgIGRlcGVuZGVuY2llczoKKyAgICBkICIxIgor ICAgIGVzNS1leHQgIl4wLjEwLjE0IgorICAgIGVzNi1pdGVyYXRvciAiXjIu MC4xIgorICAgIGVzNi1zeW1ib2wgIl4zLjEuMSIKKworZXNjYXBlLWh0bWxA fjEuMC4zOgorICB2ZXJzaW9uICIxLjAuMyIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vZXNjYXBlLWh0bWwvLS9lc2NhcGUt aHRtbC0xLjAuMy50Z3ojMDI1OGVhZTRkM2QwYzA5NzRkZTFjMTY5MTg4ZWYw MDUxZDFkMTk4OCIKKworZXNjYXBlLXN0cmluZy1yZWdleHBAXjEuMC4yLCBl c2NhcGUtc3RyaW5nLXJlZ2V4cEBeMS4wLjU6CisgIHZlcnNpb24gIjEuMC41 IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9l c2NhcGUtc3RyaW5nLXJlZ2V4cC8tL2VzY2FwZS1zdHJpbmctcmVnZXhwLTEu MC41LnRneiMxYjYxYzA1NjIxOTBhOGRmZjZhZTNiYjJjZjAyMDBjYTEzMGI4 NmQ0IgorCitlc2NvcGVAXjMuNi4wOgorICB2ZXJzaW9uICIzLjYuMCIKKyAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZXNjb3Bl Ly0vZXNjb3BlLTMuNi4wLnRneiNlMDE5NzVlODEyNzgxYTE2M2E2ZGFkZmRk ODAzOThkYzY0Yzg4OWMzIgorICBkZXBlbmRlbmNpZXM6CisgICAgZXM2LW1h cCAiXjAuMS4zIgorICAgIGVzNi13ZWFrLW1hcCAiXjIuMC4xIgorICAgIGVz cmVjdXJzZSAiXjQuMS4wIgorICAgIGVzdHJhdmVyc2UgIl40LjEuMSIKKwor ZXNsaW50LXBsdWdpbi1yZWFjdEBeNi4xMC4zOgorICB2ZXJzaW9uICI2LjEw LjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L2VzbGludC1wbHVnaW4tcmVhY3QvLS9lc2xpbnQtcGx1Z2luLXJlYWN0LTYu MTAuMy50Z3ojYzU0MzViZWIwNjc3NGUxMmM3ZGIyZjZhYmFkZGNiZjkwMGNk M2Y3OCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGFycmF5LnByb3RvdHlwZS5m aW5kICJeMi4wLjEiCisgICAgZG9jdHJpbmUgIl4xLjIuMiIKKyAgICBoYXMg Il4xLjAuMSIKKyAgICBqc3gtYXN0LXV0aWxzICJeMS4zLjQiCisgICAgb2Jq ZWN0LmFzc2lnbiAiXjQuMC40IgorCitlc2xpbnRAXjMuMTkuMDoKKyAgdmVy c2lvbiAiMy4xOS4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9lc2xpbnQvLS9lc2xpbnQtMy4xOS4wLnRneiNjOGZjNjIw MWM3ZjQwZGQwODk0MWI4N2MwODU3NjczODZhNjc5YWNjIgorICBkZXBlbmRl bmNpZXM6CisgICAgYmFiZWwtY29kZS1mcmFtZSAiXjYuMTYuMCIKKyAgICBj aGFsayAiXjEuMS4zIgorICAgIGNvbmNhdC1zdHJlYW0gIl4xLjUuMiIKKyAg ICBkZWJ1ZyAiXjIuMS4xIgorICAgIGRvY3RyaW5lICJeMi4wLjAiCisgICAg ZXNjb3BlICJeMy42LjAiCisgICAgZXNwcmVlICJeMy40LjAiCisgICAgZXNx dWVyeSAiXjEuMC4wIgorICAgIGVzdHJhdmVyc2UgIl40LjIuMCIKKyAgICBl c3V0aWxzICJeMi4wLjIiCisgICAgZmlsZS1lbnRyeS1jYWNoZSAiXjIuMC4w IgorICAgIGdsb2IgIl43LjAuMyIKKyAgICBnbG9iYWxzICJeOS4xNC4wIgor ICAgIGlnbm9yZSAiXjMuMi4wIgorICAgIGltdXJtdXJoYXNoICJeMC4xLjQi CisgICAgaW5xdWlyZXIgIl4wLjEyLjAiCisgICAgaXMtbXktanNvbi12YWxp ZCAiXjIuMTAuMCIKKyAgICBpcy1yZXNvbHZhYmxlICJeMS4wLjAiCisgICAg anMteWFtbCAiXjMuNS4xIgorICAgIGpzb24tc3RhYmxlLXN0cmluZ2lmeSAi XjEuMC4wIgorICAgIGxldm4gIl4wLjMuMCIKKyAgICBsb2Rhc2ggIl40LjAu MCIKKyAgICBta2RpcnAgIl4wLjUuMCIKKyAgICBuYXR1cmFsLWNvbXBhcmUg Il4xLjQuMCIKKyAgICBvcHRpb25hdG9yICJeMC44LjIiCisgICAgcGF0aC1p cy1pbnNpZGUgIl4xLjAuMSIKKyAgICBwbHVyYWxpemUgIl4xLjIuMSIKKyAg ICBwcm9ncmVzcyAiXjEuMS44IgorICAgIHJlcXVpcmUtdW5jYWNoZWQgIl4x LjAuMiIKKyAgICBzaGVsbGpzICJeMC43LjUiCisgICAgc3RyaXAtYm9tICJe My4wLjAiCisgICAgc3RyaXAtanNvbi1jb21tZW50cyAifjIuMC4xIgorICAg IHRhYmxlICJeMy43LjgiCisgICAgdGV4dC10YWJsZSAifjAuMi4wIgorICAg IHVzZXItaG9tZSAiXjIuMC4wIgorCitlc3ByZWVAXjMuNC4wOgorICB2ZXJz aW9uICIzLjQuMyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vZXNwcmVlLy0vZXNwcmVlLTMuNC4zLnRneiMyOTEwYjVjY2Q0 OWNlODkzYzJmZmZmYWFiNGZkOGIzYTMxYjgyMzc0IgorICBkZXBlbmRlbmNp ZXM6CisgICAgYWNvcm4gIl41LjAuMSIKKyAgICBhY29ybi1qc3ggIl4zLjAu MCIKKworZXNwcmltYUBeMy4xLjE6CisgIHZlcnNpb24gIjMuMS4zIgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9lc3ByaW1h Ly0vZXNwcmltYS0zLjEuMy50Z3ojZmRjYTUxY2VlNjEzMzg5NWUzYzg4ZDUz NWNlNDlkYmZmNjJhNDYzMyIKKworZXNxdWVyeUBeMS4wLjA6CisgIHZlcnNp b24gIjEuMC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9lc3F1ZXJ5Ly0vZXNxdWVyeS0xLjAuMC50Z3ojY2ZiYThiNTdk N2ZiYTkzZjE3Mjk4YThhMDA2YTA0Y2RhMTNkODBmYSIKKyAgZGVwZW5kZW5j aWVzOgorICAgIGVzdHJhdmVyc2UgIl40LjAuMCIKKworZXNyZWN1cnNlQF40 LjEuMDoKKyAgdmVyc2lvbiAiNC4xLjAiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2VzcmVjdXJzZS8tL2VzcmVjdXJzZS00 LjEuMC50Z3ojNDcxM2I2NTM2YWRmN2YyYWM0ZjMyN2Q1NTllNzc1NmJmZjY0 ODIyMCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGVzdHJhdmVyc2UgIn40LjEu MCIKKyAgICBvYmplY3QtYXNzaWduICJeNC4wLjEiCisKK2VzdHJhdmVyc2VA XjQuMC4wLCBlc3RyYXZlcnNlQF40LjEuMSwgZXN0cmF2ZXJzZUBeNC4yLjA6 CisgIHZlcnNpb24gIjQuMi4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9lc3RyYXZlcnNlLy0vZXN0cmF2ZXJzZS00LjIu MC50Z3ojMGRlZTNmZWQzMWZjZDQ2OTYxOGNlNzM0MjA5OWZjMWFmYTBiZGIx MyIKKworZXN0cmF2ZXJzZUB+NC4xLjA6CisgIHZlcnNpb24gIjQuMS4xIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9lc3Ry YXZlcnNlLy0vZXN0cmF2ZXJzZS00LjEuMS50Z3ojZjZjYWNhNzI4OTMzYTg1 MGVmOTA2NjFkMGUxNzk4MmJhNDcxMTFhMiIKKworZXN1dGlsc0BeMi4wLjAs IGVzdXRpbHNAXjIuMC4yOgorICB2ZXJzaW9uICIyLjAuMiIKKyAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZXN1dGlscy8tL2Vz dXRpbHMtMi4wLjIudGd6IzBhYmY0ZjFjYWE1YmNiMWY3YTlkOGFjYzZkZWE0 ZmFhYTA0YmFjOWIiCisKK2V2ZW50LWVtaXR0ZXJAfjAuMy41OgorICB2ZXJz aW9uICIwLjMuNSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vZXZlbnQtZW1pdHRlci8tL2V2ZW50LWVtaXR0ZXItMC4zLjUu dGd6I2RmOGM2OWVlZjE2NDc5MjNjNzE1N2I5Y2U4Mzg0MDYxMGIwMmNjMzki CisgIGRlcGVuZGVuY2llczoKKyAgICBkICIxIgorICAgIGVzNS1leHQgIn4w LjEwLjE0IgorCitldmVudGVtaXR0ZXIzQDEueC54OgorICB2ZXJzaW9uICIx LjIuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vZXZlbnRlbWl0dGVyMy8tL2V2ZW50ZW1pdHRlcjMtMS4yLjAudGd6IzFj ODY5OTFkODE2YWQxZTUwNDc1MGU3Mzg3NDIyNGVjZjNiZWM1MDgiCisKK2V2 ZW50c0BeMS4wLjAsIGV2ZW50c0B+MS4xLjA6CisgIHZlcnNpb24gIjEuMS4x IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9l dmVudHMvLS9ldmVudHMtMS4xLjEudGd6IzllYmRiNzYzNWFkMDk5YzcwZGNj NGMyYTFmNTAwNDI4OGU4YmQ5MjQiCisKK2V2cF9ieXRlc3Rva2V5QF4xLjAu MDoKKyAgdmVyc2lvbiAiMS4wLjAiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2V2cF9ieXRlc3Rva2V5Ly0vZXZwX2J5dGVz dG9rZXktMS4wLjAudGd6IzQ5N2I2NmFkOWZlZjY1Y2Q3YzA4YTYxODA4MjRi YTE0NzZiNjZlNTMiCisgIGRlcGVuZGVuY2llczoKKyAgICBjcmVhdGUtaGFz aCAiXjEuMS4xIgorCitleGl0LWhvb2tAXjEuMC4wOgorICB2ZXJzaW9uICIx LjEuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vZXhpdC1ob29rLy0vZXhpdC1ob29rLTEuMS4xLnRneiNmMDVjYTIzM2I0 OGMwNWQ1NGZmZjA3NzY1ZGY4NTA3ZTk1YzAyZmY4IgorCitleHBhbmQtYnJh Y2VzQF4wLjEuMToKKyAgdmVyc2lvbiAiMC4xLjIiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2V4cGFuZC1icmFjZXMvLS9l eHBhbmQtYnJhY2VzLTAuMS4yLnRneiM0ODhiMWQxZDI0NTFjYjNkM2E2YjE5 MmNmYzAzMGY0NGM1ODU1ZmVhIgorICBkZXBlbmRlbmNpZXM6CisgICAgYXJy YXktc2xpY2UgIl4wLjIuMyIKKyAgICBhcnJheS11bmlxdWUgIl4wLjIuMSIK KyAgICBicmFjZXMgIl4wLjEuMiIKKworZXhwYW5kLWJyYWNrZXRzQF4wLjEu NDoKKyAgdmVyc2lvbiAiMC4xLjUiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2V4cGFuZC1icmFja2V0cy8tL2V4cGFuZC1i cmFja2V0cy0wLjEuNS50Z3ojZGYwNzI4NGUzNDJhODA3Y2Q3MzNhYzVhZjcy NDExZTU4MWQxMTc3YiIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGlzLXBvc2l4 LWJyYWNrZXQgIl4wLjEuMCIKKworZXhwYW5kLXJhbmdlQF4wLjEuMDoKKyAg dmVyc2lvbiAiMC4xLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL2V4cGFuZC1yYW5nZS8tL2V4cGFuZC1yYW5nZS0wLjEu MS50Z3ojNGNiOGVkYTA5OTNjYTU2ZmE0ZjQxZmM0MmYzY2JiNGNjYWRmZjA0 NCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGlzLW51bWJlciAiXjAuMS4xIgor ICAgIHJlcGVhdC1zdHJpbmcgIl4wLjIuMiIKKworZXhwYW5kLXJhbmdlQF4x LjguMToKKyAgdmVyc2lvbiAiMS44LjIiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2V4cGFuZC1yYW5nZS8tL2V4cGFuZC1y YW5nZS0xLjguMi50Z3ojYTI5OWVmZmQzMzVmZTI3MjFlYmFlOGUyNTdlYzc5 NjQ0ZmM4NTMzNyIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGZpbGwtcmFuZ2Ug Il4yLjEuMCIKKworZXhwb3J0cy1sb2FkZXJAfjAuNi40OgorICB2ZXJzaW9u ICIwLjYuNCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vZXhwb3J0cy1sb2FkZXIvLS9leHBvcnRzLWxvYWRlci0wLjYuNC50 Z3ojZDcwZmM2MTIxOTc1YjM1ZmMxMjgzMGNmNTI3NTRiZTI3NDBmYzg4NiIK KyAgZGVwZW5kZW5jaWVzOgorICAgIGxvYWRlci11dGlscyAiXjEuMC4yIgor ICAgIHNvdXJjZS1tYXAgIjAuNS54IgorCitleHRlbmRAXjMuMC4wLCBleHRl bmRAfjMuMC4wOgorICB2ZXJzaW9uICIzLjAuMSIKKyAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZXh0ZW5kLy0vZXh0ZW5kLTMu MC4xLnRneiNhNzU1ZWE3YmMxYWRmY2M1YTMxY2U3ZTc2MmRiYWFkYzVlNjM2 NDQ0IgorCitleHRnbG9iQF4wLjMuMToKKyAgdmVyc2lvbiAiMC4zLjIiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2V4dGds b2IvLS9leHRnbG9iLTAuMy4yLnRneiMyZTE4ZmYzZDJmNDlhYjI3NjVjZWM5 MDIzZjAxMWRhYThkODM0OWExIgorICBkZXBlbmRlbmNpZXM6CisgICAgaXMt ZXh0Z2xvYiAiXjEuMC4wIgorCitleHRyYWN0LXppcEB+MS41LjA6CisgIHZl cnNpb24gIjEuNS4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9leHRyYWN0LXppcC8tL2V4dHJhY3QtemlwLTEuNS4wLnRn eiM5MmNjZjZkODFlZjcwYTlmYTRjMTc0NzExNGNjZWY2ZDg2ODhhNmM0Igor ICBkZXBlbmRlbmNpZXM6CisgICAgY29uY2F0LXN0cmVhbSAiMS41LjAiCisg ICAgZGVidWcgIjAuNy40IgorICAgIG1rZGlycCAiMC41LjAiCisgICAgeWF1 emwgIjIuNC4xIgorCitleHRzcHJpbnRmQDEuMC4yOgorICB2ZXJzaW9uICIx LjAuMiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vZXh0c3ByaW50Zi8tL2V4dHNwcmludGYtMS4wLjIudGd6I2UxMDgwZTA2 NThlMzAwYjA2Mjk0OTkwY2M3MGUxNTAyMjM1ZmQ1NTAiCisKK2Zhc3QtbGV2 ZW5zaHRlaW5AfjIuMC40OgorICB2ZXJzaW9uICIyLjAuNiIKKyAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZmFzdC1sZXZlbnNo dGVpbi8tL2Zhc3QtbGV2ZW5zaHRlaW4tMi4wLjYudGd6IzNkOGE1YzY2ODgz YTE2YTMwY2E4NjQzZTg1MWYxOWJhYTc3OTc5MTciCisKK2ZianNAXjAuOC4x LCBmYmpzQF4wLjguNCwgZmJqc0BeMC44Ljk6CisgIHZlcnNpb24gIjAuOC4x MiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v ZmJqcy8tL2ZianMtMC44LjEyLnRneiMxMGI1ZDkyZjc2ZDQ1NTc1ZmQ2M2Ey MTdkNGVhMDJiZWEyZjhlZDA0IgorICBkZXBlbmRlbmNpZXM6CisgICAgY29y ZS1qcyAiXjEuMC4wIgorICAgIGlzb21vcnBoaWMtZmV0Y2ggIl4yLjEuMSIK KyAgICBsb29zZS1lbnZpZnkgIl4xLjAuMCIKKyAgICBvYmplY3QtYXNzaWdu ICJeNC4xLjAiCisgICAgcHJvbWlzZSAiXjcuMS4xIgorICAgIHNldGltbWVk aWF0ZSAiXjEuMC41IgorICAgIHVhLXBhcnNlci1qcyAiXjAuNy45IgorCitm ZC1zbGljZXJAfjEuMC4xOgorICB2ZXJzaW9uICIxLjAuMSIKKyAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZmQtc2xpY2VyLy0v ZmQtc2xpY2VyLTEuMC4xLnRneiM4YjViY2JkOWVjMzI3YzUwNDFiZjlhYjAy M2ZkNjc1MGYxMTc3ZTY1IgorICBkZXBlbmRlbmNpZXM6CisgICAgcGVuZCAi fjEuMi4wIgorCitmaWd1cmVzQF4xLjMuNToKKyAgdmVyc2lvbiAiMS43LjAi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Zp Z3VyZXMvLS9maWd1cmVzLTEuNy4wLnRneiNjYmUxZTNhZmZjZjFjZDQ0Yjgw Y2FkZmVkMjhkYzc5M2E5NzAxZDJlIgorICBkZXBlbmRlbmNpZXM6CisgICAg ZXNjYXBlLXN0cmluZy1yZWdleHAgIl4xLjAuNSIKKyAgICBvYmplY3QtYXNz aWduICJeNC4xLjAiCisKK2ZpbGUtZW50cnktY2FjaGVAXjIuMC4wOgorICB2 ZXJzaW9uICIyLjAuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vZmlsZS1lbnRyeS1jYWNoZS8tL2ZpbGUtZW50cnktY2Fj aGUtMi4wLjAudGd6I2MzOTI5OTBjM2U2ODQ3ODNkODM4YjhjODRhNDVkOGEw NDg0NTgzNjEiCisgIGRlcGVuZGVuY2llczoKKyAgICBmbGF0LWNhY2hlICJe MS4yLjEiCisgICAgb2JqZWN0LWFzc2lnbiAiXjQuMC4xIgorCitmaWxlbmFt ZS1yZWdleEBeMi4wLjA6CisgIHZlcnNpb24gIjIuMC4xIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9maWxlbmFtZS1yZWdl eC8tL2ZpbGVuYW1lLXJlZ2V4LTIuMC4xLnRneiNjMWM0YjliZWUzZTA5NzI1 ZGRiMTA2Yjc1YzFlMzAxZmUyZjE4YjI2IgorCitmaWxsLXJhbmdlQF4yLjEu MDoKKyAgdmVyc2lvbiAiMi4yLjMiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2ZpbGwtcmFuZ2UvLS9maWxsLXJhbmdlLTIu Mi4zLnRneiM1MGI3N2RmZDdlNDY5YmM3NDkyNDcwOTYzNjk5ZmU3YTg0ODVh NzIzIgorICBkZXBlbmRlbmNpZXM6CisgICAgaXMtbnVtYmVyICJeMi4xLjAi CisgICAgaXNvYmplY3QgIl4yLjAuMCIKKyAgICByYW5kb21hdGljICJeMS4x LjMiCisgICAgcmVwZWF0LWVsZW1lbnQgIl4xLjEuMiIKKyAgICByZXBlYXQt c3RyaW5nICJeMS41LjIiCisKK2ZpbmFsaGFuZGxlckAxLjAuMzoKKyAgdmVy c2lvbiAiMS4wLjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2ZpbmFsaGFuZGxlci8tL2ZpbmFsaGFuZGxlci0xLjAuMy50 Z3ojZWY0N2U3Nzk1MGU5OTk3ODBlODYwMjJhNTYwZTMyMTdlMGQwY2M4OSIK KyAgZGVwZW5kZW5jaWVzOgorICAgIGRlYnVnICIyLjYuNyIKKyAgICBlbmNv ZGV1cmwgIn4xLjAuMSIKKyAgICBlc2NhcGUtaHRtbCAifjEuMC4zIgorICAg IG9uLWZpbmlzaGVkICJ+Mi4zLjAiCisgICAgcGFyc2V1cmwgIn4xLjMuMSIK KyAgICBzdGF0dXNlcyAifjEuMy4xIgorICAgIHVucGlwZSAifjEuMC4wIgor CitmaW5kLWNhY2hlLWRpckBeMC4xLjE6CisgIHZlcnNpb24gIjAuMS4xIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9maW5k LWNhY2hlLWRpci8tL2ZpbmQtY2FjaGUtZGlyLTAuMS4xLnRneiNjOGRlZmFl NTdjOGE1MmE4YTc4NGY5ZTMxYzU3Yzc0MmU5OTNhMGI5IgorICBkZXBlbmRl bmNpZXM6CisgICAgY29tbW9uZGlyICJeMS4wLjEiCisgICAgbWtkaXJwICJe MC41LjEiCisgICAgcGtnLWRpciAiXjEuMC4wIgorCitmaW5kLXVwQF4xLjAu MDoKKyAgdmVyc2lvbiAiMS4xLjIiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2ZpbmQtdXAvLS9maW5kLXVwLTEuMS4yLnRn eiM2YjJlOTgyMmIxYTJjZTBhNjBhYjY0ZDYxMGVjY2FkNTNjYjI0ZDBmIgor ICBkZXBlbmRlbmNpZXM6CisgICAgcGF0aC1leGlzdHMgIl4yLjAuMCIKKyAg ICBwaW5raWUtcHJvbWlzZSAiXjIuMC4wIgorCitmbGF0LWNhY2hlQF4xLjIu MToKKyAgdmVyc2lvbiAiMS4yLjIiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2ZsYXQtY2FjaGUvLS9mbGF0LWNhY2hlLTEu Mi4yLnRneiNmYTg2NzE0ZTcyYzIxZGI4ODYwMTc2MWVjZjJmNTU1ZDFhYmM2 Yjk2IgorICBkZXBlbmRlbmNpZXM6CisgICAgY2lyY3VsYXItanNvbiAiXjAu My4xIgorICAgIGRlbCAiXjIuMC4yIgorICAgIGdyYWNlZnVsLWZzICJeNC4x LjIiCisgICAgd3JpdGUgIl4wLjIuMSIKKworZm9sbG93LXJlZGlyZWN0c0Be MS4yLjM6CisgIHZlcnNpb24gIjEuMi4zIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9mb2xsb3ctcmVkaXJlY3RzLy0vZm9s bG93LXJlZGlyZWN0cy0xLjIuMy50Z3ojMDFhYmFlY2E4NWUzNjA5ODM3ZDlm Y2RhMzE2N2E3ZTQyZmRhY2EyMSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGRl YnVnICJeMi40LjUiCisKK2Zvci1pbkBeMS4wLjE6CisgIHZlcnNpb24gIjEu MC4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9mb3ItaW4vLS9mb3ItaW4tMS4wLjIudGd6IzgxMDY4ZDI5NWE4MTQyZWMw YWM3MjZjNmUyMjAwYzMwZmI2ZDVlODAiCisKK2Zvci1vd25AXjAuMS40Ogor ICB2ZXJzaW9uICIwLjEuNSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vZm9yLW93bi8tL2Zvci1vd24tMC4xLjUudGd6IzUy NjVjNjgxYTRmMjk0ZGFiYmYxN2M5NTA5YjY3NjNhYTg0NTEwY2UiCisgIGRl cGVuZGVuY2llczoKKyAgICBmb3ItaW4gIl4xLjAuMSIKKworZm9yZWFjaEBe Mi4wLjU6CisgIHZlcnNpb24gIjIuMC41IgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9mb3JlYWNoLy0vZm9yZWFjaC0yLjAu NS50Z3ojMGJlZTAwNTAxOGFlYjI2MGQwYTNhZjNhZTY1OGRkMDEzNmVjMWI5 OSIKKworZm9yZXZlci1hZ2VudEB+MC42LjE6CisgIHZlcnNpb24gIjAuNi4x IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9m b3JldmVyLWFnZW50Ly0vZm9yZXZlci1hZ2VudC0wLjYuMS50Z3ojZmJjNzFm MGM0MWFkZWIzN2Y5NmM1NzdhZDFlZDQyZDhmZGFjY2E5MSIKKworZm9ybS1k YXRhQH4yLjEuMToKKyAgdmVyc2lvbiAiMi4xLjQiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2Zvcm0tZGF0YS8tL2Zvcm0t ZGF0YS0yLjEuNC50Z3ojMzNjMTgzYWNmMTkzMjc2ZWNhYTk4MTQzYTY5ZTk0 YmZlZTE3NTBkMSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGFzeW5ja2l0ICJe MC40LjAiCisgICAgY29tYmluZWQtc3RyZWFtICJeMS4wLjUiCisgICAgbWlt ZS10eXBlcyAiXjIuMS4xMiIKKworZnMtZXh0cmFAfjEuMC4wOgorICB2ZXJz aW9uICIxLjAuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vZnMtZXh0cmEvLS9mcy1leHRyYS0xLjAuMC50Z3ojY2QzY2U1 ZjdlN2NiNjE0NTg4M2ZjYWUzMTkxZTk4NzdmODU4Nzk1MCIKKyAgZGVwZW5k ZW5jaWVzOgorICAgIGdyYWNlZnVsLWZzICJeNC4xLjIiCisgICAganNvbmZp bGUgIl4yLjEuMCIKKyAgICBrbGF3ICJeMS4wLjAiCisKK2ZzLnJlYWxwYXRo QF4xLjAuMDoKKyAgdmVyc2lvbiAiMS4wLjAiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2ZzLnJlYWxwYXRoLy0vZnMucmVh bHBhdGgtMS4wLjAudGd6IzE1MDRhZDI1MjMxNThjYWE0MGRiNGEyNzg3Y2Iw MTQxMTk5NGVhNGYiCisKK2ZzZXZlbnRzQF4xLjAuMDoKKyAgdmVyc2lvbiAi MS4xLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL2ZzZXZlbnRzLy0vZnNldmVudHMtMS4xLjEudGd6I2YxOWZkMjhmNDNl ZWFmNzYxNjgwZTUxOWEyMDNjNGQwYjNkMzFhZmYiCisgIGRlcGVuZGVuY2ll czoKKyAgICBuYW4gIl4yLjMuMCIKKyAgICBub2RlLXByZS1neXAgIl4wLjYu MjkiCisKK2ZzdHJlYW0taWdub3JlQF4xLjAuNToKKyAgdmVyc2lvbiAiMS4w LjUiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L2ZzdHJlYW0taWdub3JlLy0vZnN0cmVhbS1pZ25vcmUtMS4wLjUudGd6Izlj MzFkYWUzNDc2NzAxOGZlMWQyNDliMjRkYWRhNjdkMDkyZGExMDUiCisgIGRl cGVuZGVuY2llczoKKyAgICBmc3RyZWFtICJeMS4wLjAiCisgICAgaW5oZXJp dHMgIjIiCisgICAgbWluaW1hdGNoICJeMy4wLjAiCisKK2ZzdHJlYW1AXjEu MC4wLCBmc3RyZWFtQF4xLjAuMTAsIGZzdHJlYW1AXjEuMC4yOgorICB2ZXJz aW9uICIxLjAuMTEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2ZzdHJlYW0vLS9mc3RyZWFtLTEuMC4xMS50Z3ojNWMxZmIx ZjExNzQ3NzExNGYwNjMyYTBlYjRiNzFiM2NiMGZkMzE3MSIKKyAgZGVwZW5k ZW5jaWVzOgorICAgIGdyYWNlZnVsLWZzICJeNC4xLjIiCisgICAgaW5oZXJp dHMgIn4yLjAuMCIKKyAgICBta2RpcnAgIj49MC41IDAiCisgICAgcmltcmFm ICIyIgorCitmdW5jdGlvbi1iaW5kQF4xLjAuMiwgZnVuY3Rpb24tYmluZEBe MS4xLjA6CisgIHZlcnNpb24gIjEuMS4wIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9mdW5jdGlvbi1iaW5kLy0vZnVuY3Rp b24tYmluZC0xLjEuMC50Z3ojMTYxNzY3MTRjODAxNzk4ZTRlOGYyY2Y3Zjc1 Mjk0NjdiYjRhNTc3MSIKKworZnVuY3Rpb24ucHJvdG90eXBlLm5hbWVAXjEu MC4wOgorICB2ZXJzaW9uICIxLjAuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vZnVuY3Rpb24ucHJvdG90eXBlLm5hbWUv LS9mdW5jdGlvbi5wcm90b3R5cGUubmFtZS0xLjAuMC50Z3ojNWY1MjNjYTY0 ZTQ5MWE1Zjk1YWJhODBjYzFlMzkxMDgwYTE0NDgyZSIKKyAgZGVwZW5kZW5j aWVzOgorICAgIGRlZmluZS1wcm9wZXJ0aWVzICJeMS4xLjIiCisgICAgZnVu Y3Rpb24tYmluZCAiXjEuMS4wIgorICAgIGlzLWNhbGxhYmxlICJeMS4xLjIi CisKK2dhdWdlQH4yLjcuMzoKKyAgdmVyc2lvbiAiMi43LjQiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2dhdWdlLy0vZ2F1 Z2UtMi43LjQudGd6IzJjMDM0MDVjNzUzOGMzOWQ3ZWIzN2IzMTcwMjJlMzI1 ZmIwMThiZjciCisgIGRlcGVuZGVuY2llczoKKyAgICBhcHJvYmEgIl4xLjAu MyIKKyAgICBjb25zb2xlLWNvbnRyb2wtc3RyaW5ncyAiXjEuMC4wIgorICAg IGhhcy11bmljb2RlICJeMi4wLjAiCisgICAgb2JqZWN0LWFzc2lnbiAiXjQu MS4wIgorICAgIHNpZ25hbC1leGl0ICJeMy4wLjAiCisgICAgc3RyaW5nLXdp ZHRoICJeMS4wLjEiCisgICAgc3RyaXAtYW5zaSAiXjMuMC4xIgorICAgIHdp ZGUtYWxpZ24gIl4xLjEuMCIKKworZ2VuZXJhdGUtZnVuY3Rpb25AXjIuMC4w OgorICB2ZXJzaW9uICIyLjAuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vZ2VuZXJhdGUtZnVuY3Rpb24vLS9nZW5lcmF0 ZS1mdW5jdGlvbi0yLjAuMC50Z3ojNjg1OGZlN2MwOTY5YjdkNGU5MDkzMzM3 NjQ3YWM3OWY2MGRmYmU3NCIKKworZ2VuZXJhdGUtb2JqZWN0LXByb3BlcnR5 QF4xLjEuMDoKKyAgdmVyc2lvbiAiMS4yLjAiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2dlbmVyYXRlLW9iamVjdC1wcm9w ZXJ0eS8tL2dlbmVyYXRlLW9iamVjdC1wcm9wZXJ0eS0xLjIuMC50Z3ojOWMw ZTFjNDAzMDhjZTgwNGY0NzgzNjE4YjkzN2ZhODhmOTlkNTBkMCIKKyAgZGVw ZW5kZW5jaWVzOgorICAgIGlzLXByb3BlcnR5ICJeMS4wLjAiCisKK2dldC1j YWxsZXItZmlsZUBeMS4wLjE6CisgIHZlcnNpb24gIjEuMC4yIgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9nZXQtY2FsbGVy LWZpbGUvLS9nZXQtY2FsbGVyLWZpbGUtMS4wLjIudGd6I2Y3MDJlNjMxMjdl N2UyMzFjMTYwYTgwYzE1NTRhY2I3MGQ1MDQ3ZTUiCisKK2dldHBhc3NAXjAu MS4xOgorICB2ZXJzaW9uICIwLjEuNyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vZ2V0cGFzcy8tL2dldHBhc3MtMC4xLjcu dGd6IzVlZmY4ZTNlNjg0ZDU2OWFlNGNiMmIxMjgyNjA0ZThiYTYyMTQ5ZmEi CisgIGRlcGVuZGVuY2llczoKKyAgICBhc3NlcnQtcGx1cyAiXjEuMC4wIgor CitnbG9iLWJhc2VAXjAuMy4wOgorICB2ZXJzaW9uICIwLjMuMCIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZ2xvYi1iYXNl Ly0vZ2xvYi1iYXNlLTAuMy4wLnRneiNkYmIxNjRmNjIyMWIxYzBiMWNjZjgy YWVhMzI4YjQ5N2RmMGVhM2M0IgorICBkZXBlbmRlbmNpZXM6CisgICAgZ2xv Yi1wYXJlbnQgIl4yLjAuMCIKKyAgICBpcy1nbG9iICJeMi4wLjAiCisKK2ds b2ItcGFyZW50QF4yLjAuMDoKKyAgdmVyc2lvbiAiMi4wLjAiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2dsb2ItcGFyZW50 Ly0vZ2xvYi1wYXJlbnQtMi4wLjAudGd6IzgxMzgzZDcyZGIwNTRmY2NjZjUz MzZkYWE5MDJmMTgyZjZlZGJiMjgiCisgIGRlcGVuZGVuY2llczoKKyAgICBp cy1nbG9iICJeMi4wLjAiCisKK2dsb2JAXjcuMC4wLCBnbG9iQF43LjAuMywg Z2xvYkBeNy4wLjUsIGdsb2JAXjcuMS4wLCBnbG9iQF43LjEuMToKKyAgdmVy c2lvbiAiNy4xLjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2dsb2IvLS9nbG9iLTcuMS4yLnRneiNjMTljOWRmOWEwMjg3 MDJkNjc4NjEyMzg0YTY1NTI0MDRjNjM2ZDE1IgorICBkZXBlbmRlbmNpZXM6 CisgICAgZnMucmVhbHBhdGggIl4xLjAuMCIKKyAgICBpbmZsaWdodCAiXjEu MC40IgorICAgIGluaGVyaXRzICIyIgorICAgIG1pbmltYXRjaCAiXjMuMC40 IgorICAgIG9uY2UgIl4xLjMuMCIKKyAgICBwYXRoLWlzLWFic29sdXRlICJe MS4wLjAiCisKK2dsb2JhbHNAXjkuMC4wLCBnbG9iYWxzQF45LjE0LjA6Cisg IHZlcnNpb24gIjkuMTguMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vZ2xvYmFscy8tL2dsb2JhbHMtOS4xOC4wLnRneiNh YTM4OTZiM2U2OWI0ODdmMTdlMzFlZDIxNDNkNjlhOGUzMGMyZDhhIgorCitn bG9iYnlAXjUuMC4wOgorICB2ZXJzaW9uICI1LjAuMCIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vZ2xvYmJ5Ly0vZ2xvYmJ5 LTUuMC4wLnRneiNlYmQ4NDY2N2NhMGRiYjMzMGI5OWJjZmM2OGVhYzJiYzU0 MzcwZTBkIgorICBkZXBlbmRlbmNpZXM6CisgICAgYXJyYXktdW5pb24gIl4x LjAuMSIKKyAgICBhcnJpZnkgIl4xLjAuMCIKKyAgICBnbG9iICJeNy4wLjMi CisgICAgb2JqZWN0LWFzc2lnbiAiXjQuMC4xIgorICAgIHBpZnkgIl4yLjAu MCIKKyAgICBwaW5raWUtcHJvbWlzZSAiXjIuMC4wIgorCitncmFjZWZ1bC1m c0BeNC4xLjIsIGdyYWNlZnVsLWZzQF40LjEuNiwgZ3JhY2VmdWwtZnNAXjQu MS45OgorICB2ZXJzaW9uICI0LjEuMTEiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2dyYWNlZnVsLWZzLy0vZ3JhY2VmdWwt ZnMtNC4xLjExLnRneiMwZThiZGZlNGQxZGRiODg1NGQ2NGUwNGVhN2MwMGUy YTAyNmU1NjU4IgorCisiZ3JhY2VmdWwtcmVhZGxpbmtAPj0gMS4wLjAiOgor ICB2ZXJzaW9uICIxLjAuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vZ3JhY2VmdWwtcmVhZGxpbmsvLS9ncmFjZWZ1bC1y ZWFkbGluay0xLjAuMS50Z3ojNGNhZmFkNzZiYzYyZjAyZmEwMzliMmY5NGU5 YTNkZDNhMzkxYTcyNSIKKworaGFyLXNjaGVtYUBeMS4wLjU6CisgIHZlcnNp b24gIjEuMC41IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9oYXItc2NoZW1hLy0vaGFyLXNjaGVtYS0xLjAuNS50Z3ojZDI2 MzEzNWY0MzMwN2MwMmM2MDJhZmM4ZmU5NTk3MGMwMTUxMzY5ZSIKKworaGFy LXZhbGlkYXRvckB+Mi4wLjY6CisgIHZlcnNpb24gIjIuMC42IgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9oYXItdmFsaWRh dG9yLy0vaGFyLXZhbGlkYXRvci0yLjAuNi50Z3ojY2RjYmMwODE4ODI2NWFk MTE5YjZhNWE3YzhhYjcwZWVjZmI1ZDI3ZCIKKyAgZGVwZW5kZW5jaWVzOgor ICAgIGNoYWxrICJeMS4xLjEiCisgICAgY29tbWFuZGVyICJeMi45LjAiCisg ICAgaXMtbXktanNvbi12YWxpZCAiXjIuMTIuNCIKKyAgICBwaW5raWUtcHJv bWlzZSAiXjIuMC4wIgorCitoYXItdmFsaWRhdG9yQH40LjIuMToKKyAgdmVy c2lvbiAiNC4yLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2hhci12YWxpZGF0b3IvLS9oYXItdmFsaWRhdG9yLTQuMi4x LnRneiMzMzQ4MWQwZjFiYmZmNjAwZGQyMDNkNzU4MTJhNmE1ZmJhMDAyZTJh IgorICBkZXBlbmRlbmNpZXM6CisgICAgYWp2ICJeNC45LjEiCisgICAgaGFy LXNjaGVtYSAiXjEuMC41IgorCitoYXMtYW5zaUBeMi4wLjA6CisgIHZlcnNp b24gIjIuMC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9oYXMtYW5zaS8tL2hhcy1hbnNpLTIuMC4wLnRneiMzNGY1MDQ5 Y2UxZWNkZjJiMDY0OWFmM2VmMjRlNDVlZDM1NDE2ZDkxIgorICBkZXBlbmRl bmNpZXM6CisgICAgYW5zaS1yZWdleCAiXjIuMC4wIgorCitoYXMtYmluYXJ5 QDAuMS43OgorICB2ZXJzaW9uICIwLjEuNyIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vaGFzLWJpbmFyeS8tL2hhcy1iaW5h cnktMC4xLjcudGd6IzY4ZTYxZWIxNjIxMGM5NTQ1YTBhNWNjZTA2YTg3Mzkx MmZlMWU2OGMiCisgIGRlcGVuZGVuY2llczoKKyAgICBpc2FycmF5ICIwLjAu MSIKKworaGFzLWNvcnNAMS4xLjA6CisgIHZlcnNpb24gIjEuMS4wIgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9oYXMtY29y cy8tL2hhcy1jb3JzLTEuMS4wLnRneiM1ZTQ3NDc5M2Y3ZWE5ODQzZDFiYjk5 YzIzZWVmNDlmZjEyNmZmZjM5IgorCitoYXMtZmxhZ0BeMS4wLjA6CisgIHZl cnNpb24gIjEuMC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9oYXMtZmxhZy8tL2hhcy1mbGFnLTEuMC4wLnRneiM5ZDll NzkzMTY1Y2UwMTdhMDBmMDA0MThjNDNmOTQyYTdiMWQxMWZhIgorCitoYXMt dW5pY29kZUBeMi4wLjA6CisgIHZlcnNpb24gIjIuMC4xIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9oYXMtdW5pY29kZS8t L2hhcy11bmljb2RlLTIuMC4xLnRneiNlMGU2ZmU2YTI4Y2Y1MTEzODg1NWUw ODZkMTY5MWU3NzFkZTJhOGI5IgorCitoYXNAXjEuMC4wLCBoYXNAXjEuMC4x OgorICB2ZXJzaW9uICIxLjAuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vaGFzLy0vaGFzLTEuMC4xLnRneiM4NDYxNzMz ZjUzOGIwODM3YzkzNjFlMzlhOWFiOWU5NzA0ZGMyZjI4IgorICBkZXBlbmRl bmNpZXM6CisgICAgZnVuY3Rpb24tYmluZCAiXjEuMC4yIgorCitoYXNoLWJh c2VAXjIuMC4wOgorICB2ZXJzaW9uICIyLjAuMiIKKyAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vaGFzaC1iYXNlLy0vaGFzaC1i YXNlLTIuMC4yLnRneiM2NmVhMWQ4NTZkYjRlOGE1NDcwY2FkZjZmY2UyM2Fl NTI0NGVmMmUxIgorICBkZXBlbmRlbmNpZXM6CisgICAgaW5oZXJpdHMgIl4y LjAuMSIKKworaGFzaC5qc0BeMS4wLjAsIGhhc2guanNAXjEuMC4zOgorICB2 ZXJzaW9uICIxLjAuMyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vaGFzaC5qcy8tL2hhc2guanMtMS4wLjMudGd6IzEzMzJm ZjAwMTU2YzBhMGZmZGQ4MjM2MDEzZDA3Yjc3YTA0NTE1NzMiCisgIGRlcGVu ZGVuY2llczoKKyAgICBpbmhlcml0cyAiXjIuMC4xIgorCitoYXNoYUB+Mi4y LjA6CisgIHZlcnNpb24gIjIuMi4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9oYXNoYS8tL2hhc2hhLTIuMi4wLnRneiM3 OGQ3Y2JmYzFlNmQ2NjMwM2ZlNzk4MzczNjU5ODQ1MTdiMmY2ZWUxIgorICBk ZXBlbmRlbmNpZXM6CisgICAgaXMtc3RyZWFtICJeMS4wLjEiCisgICAgcGlu a2llLXByb21pc2UgIl4yLjAuMCIKKworaGF0QF4wLjAuMzoKKyAgdmVyc2lv biAiMC4wLjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2hhdC8tL2hhdC0wLjAuMy50Z3ojYmIwMTRhOWU2NGIzNzg4YWVk ODAwNTkxNzQxM2Q0ZmYzZDUwMmQ4YSIKKworaGF3a0B+My4xLjM6CisgIHZl cnNpb24gIjMuMS4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9oYXdrLy0vaGF3ay0zLjEuMy50Z3ojMDc4NDQ0YmQ3YzE2 NDBiMGZlNTQwZDJjOWI3M2Q1OTY3OGU4ZTFjNCIKKyAgZGVwZW5kZW5jaWVz OgorICAgIGJvb20gIjIueC54IgorICAgIGNyeXB0aWxlcyAiMi54LngiCisg ICAgaG9layAiMi54LngiCisgICAgc250cCAiMS54LngiCisKK2htYWMtZHJi Z0BeMS4wLjA6CisgIHZlcnNpb24gIjEuMC4xIgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9obWFjLWRyYmcvLS9obWFjLWRy YmctMS4wLjEudGd6I2QyNzQ1NzAxMDI1YTZjNzc1YTZjNTQ1NzkzZWQ1MDJm YzBjNjQ5YTEiCisgIGRlcGVuZGVuY2llczoKKyAgICBoYXNoLmpzICJeMS4w LjMiCisgICAgbWluaW1hbGlzdGljLWFzc2VydCAiXjEuMC4wIgorICAgIG1p bmltYWxpc3RpYy1jcnlwdG8tdXRpbHMgIl4xLjAuMSIKKworaG9la0AyLngu eDoKKyAgdmVyc2lvbiAiMi4xNi4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9ob2VrLy0vaG9lay0yLjE2LjMudGd6IzIw YmI3NDAzZDNjZWEzOThlOTFkYzQ3MTBhOGZmMWI4Mjc0YTI1ZWQiCisKK2hv bWUtb3ItdG1wQF4yLjAuMDoKKyAgdmVyc2lvbiAiMi4wLjAiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2hvbWUtb3ItdG1w Ly0vaG9tZS1vci10bXAtMi4wLjAudGd6I2UzNmMzZjJkMmNhZTdkNzQ2YTg1 N2UzOGQxOGQ1ZjMyYTc4ODJkYjgiCisgIGRlcGVuZGVuY2llczoKKyAgICBv cy1ob21lZGlyICJeMS4wLjAiCisgICAgb3MtdG1wZGlyICJeMS4wLjEiCisK K2hvc3RlZC1naXQtaW5mb0BeMi4xLjQ6CisgIHZlcnNpb24gIjIuNC4yIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9ob3N0 ZWQtZ2l0LWluZm8vLS9ob3N0ZWQtZ2l0LWluZm8tMi40LjIudGd6IzAwNzZi OWY0NmEyNzA1MDZkZGJhYWVhNTY0OTY4OTc0NjA2MTJhNjciCisKK2h0bWxl c2NhcGVAXjEuMS4wOgorICB2ZXJzaW9uICIxLjEuMSIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vaHRtbGVzY2FwZS8tL2h0 bWxlc2NhcGUtMS4xLjEudGd6IzNhMDNlZGMyMjE0YmNhM2I2NjQyNGEzZTc5 NTkzNDk1MDljYjAzNTEiCisKK2h0bWxwYXJzZXIyQF4zLjkuMToKKyAgdmVy c2lvbiAiMy45LjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2h0bWxwYXJzZXIyLy0vaHRtbHBhcnNlcjItMy45LjIudGd6 IzFiZGY4N2FjY2EwZjNmOWU1M2ZhNGZjY2ViMGY0YjRjYmIwMGIzMzgiCisg IGRlcGVuZGVuY2llczoKKyAgICBkb21lbGVtZW50dHlwZSAiXjEuMy4wIgor ICAgIGRvbWhhbmRsZXIgIl4yLjMuMCIKKyAgICBkb211dGlscyAiXjEuNS4x IgorICAgIGVudGl0aWVzICJeMS4xLjEiCisgICAgaW5oZXJpdHMgIl4yLjAu MSIKKyAgICByZWFkYWJsZS1zdHJlYW0gIl4yLjAuMiIKKworaHR0cC1lcnJv cnNAfjEuNi4xOgorICB2ZXJzaW9uICIxLjYuMSIKKyAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vaHR0cC1lcnJvcnMvLS9odHRw LWVycm9ycy0xLjYuMS50Z3ojNWY4YjhlZDk4YWNhNTQ1NjU2YmY1NzI5OTcz ODdmOTA0YTcyMjI1NyIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGRlcGQgIjEu MS4wIgorICAgIGluaGVyaXRzICIyLjAuMyIKKyAgICBzZXRwcm90b3R5cGVv ZiAiMS4wLjMiCisgICAgc3RhdHVzZXMgIj49IDEuMy4xIDwgMiIKKworaHR0 cC1wcm94eUBeMS4xMy4wOgorICB2ZXJzaW9uICIxLjE2LjIiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2h0dHAtcHJveHkv LS9odHRwLXByb3h5LTEuMTYuMi50Z3ojMDZkZmYyOTI5NTJiZjY0ZGJlODQ3 MWZhOWRmNzMwNjZkNGYzNzc0MiIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGV2 ZW50ZW1pdHRlcjMgIjEueC54IgorICAgIHJlcXVpcmVzLXBvcnQgIjEueC54 IgorCitodHRwLXNpZ25hdHVyZUB+MS4xLjA6CisgIHZlcnNpb24gIjEuMS4x IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9o dHRwLXNpZ25hdHVyZS8tL2h0dHAtc2lnbmF0dXJlLTEuMS4xLnRneiNkZjcy ZTI2NzA2NmNkMGFjNjdmYjc2YWRmOGUxMzRhOGZiY2Y5MWJmIgorICBkZXBl bmRlbmNpZXM6CisgICAgYXNzZXJ0LXBsdXMgIl4wLjIuMCIKKyAgICBqc3By aW0gIl4xLjIuMiIKKyAgICBzc2hwayAiXjEuNy4wIgorCitodHRwcy1icm93 c2VyaWZ5QDAuMC4xLCBodHRwcy1icm93c2VyaWZ5QH4wLjAuMDoKKyAgdmVy c2lvbiAiMC4wLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2h0dHBzLWJyb3dzZXJpZnkvLS9odHRwcy1icm93c2VyaWZ5 LTAuMC4xLnRneiMzZjkxMzY1Y2FiZTYwYjc3ZWQwZWJiYTI0YjQ1NGUzZTA5 ZDk1YTgyIgorCitpY29udi1saXRlQDAuNC4xNSwgaWNvbnYtbGl0ZUB+MC40 LjEzOgorICB2ZXJzaW9uICIwLjQuMTUiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2ljb252LWxpdGUvLS9pY29udi1saXRl LTAuNC4xNS50Z3ojZmUyNjVhMjE4YWM2YTU3Y2ZlODU0OTI3ZTlkMDRjMTk4 MjVlZGRlYiIKKworaWVlZTc1NEBeMS4xLjQ6CisgIHZlcnNpb24gIjEuMS44 IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9p ZWVlNzU0Ly0vaWVlZTc1NC0xLjEuOC50Z3ojYmUzM2Q0MGFjMTBlZjE5MjY3 MDFmNmYwOGEyZDg2ZmJmZDFhZDNlNCIKKworaWdub3JlQF4zLjIuMDoKKyAg dmVyc2lvbiAiMy4zLjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL2lnbm9yZS8tL2lnbm9yZS0zLjMuMy50Z3ojNDMyMzUy ZTU3YWNjZDg3YWIzMTEwZTgyZDNmZWEwZTQ3ODEyMTU2ZCIKKworImltcG9y dHMtbG9hZGVyQGdpdCtodHRwczovL2dpdGh1Yi5jb20vd2VicGFjay1jb250 cmliL2ltcG9ydHMtbG9hZGVyLmdpdCM0NGQ2ZjQ4NDYzYjI1NmExN2MxYmE2 ZmQ5YjVjYzE0NDliNGUzNzlkIjoKKyAgdmVyc2lvbiAiMC43LjEiCisgIHJl c29sdmVkICJnaXQraHR0cHM6Ly9naXRodWIuY29tL3dlYnBhY2stY29udHJp Yi9pbXBvcnRzLWxvYWRlci5naXQjNDRkNmY0ODQ2M2IyNTZhMTdjMWJhNmZk OWI1Y2MxNDQ5YjRlMzc5ZCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGxvYWRl ci11dGlscyAiXjEuMC4yIgorICAgIHNvdXJjZS1tYXAgIl4wLjUuNiIKKwor aW11cm11cmhhc2hAXjAuMS40OgorICB2ZXJzaW9uICIwLjEuNCIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vaW11cm11cmhh c2gvLS9pbXVybXVyaGFzaC0wLjEuNC50Z3ojOTIxOGI5YjJiOTI4YTIzOGIx M2RjNGZiNmI2ZDU3NmYyMzE0NTNlYSIKKworaW5kZXhvZkAwLjAuMToKKyAg dmVyc2lvbiAiMC4wLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL2luZGV4b2YvLS9pbmRleG9mLTAuMC4xLnRneiM4MmRj MzM2ZDIzMmI5MDYyMTc5ZDA1YWIzMjkzYTY2MDU5ZmQ0MzVkIgorCitpbmZs aWdodEBeMS4wLjQ6CisgIHZlcnNpb24gIjEuMC42IgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pbmZsaWdodC8tL2luZmxp Z2h0LTEuMC42LnRneiM0OWJkNjMzMWQ3ZDAyZDBjMDliYzkxMGExMDc1YmE4 MTY1YjU2ZGY5IgorICBkZXBlbmRlbmNpZXM6CisgICAgb25jZSAiXjEuMy4w IgorICAgIHdyYXBweSAiMSIKKworaW5oZXJpdHNAMiwgaW5oZXJpdHNAMi4w LjMsIGluaGVyaXRzQF4yLjAuMSwgaW5oZXJpdHNAXjIuMC4zLCBpbmhlcml0 c0B+Mi4wLjAsIGluaGVyaXRzQH4yLjAuMToKKyAgdmVyc2lvbiAiMi4wLjMi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lu aGVyaXRzLy0vaW5oZXJpdHMtMi4wLjMudGd6IzYzM2MyYzgzZTNkYTQyYTUw MmY1MjQ2NjAyMjQ4MGY0MjA4MjYxZGUiCisKK2luaGVyaXRzQDIuMC4xOgor ICB2ZXJzaW9uICIyLjAuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vaW5oZXJpdHMvLS9pbmhlcml0cy0yLjAuMS50Z3oj YjE3ZDA4ZDMyNmI0NDIzZTU2OGVmZjcxOWY5MWIwYjFjYmRmNjlmMSIKKwor aW5pQH4xLjMuMDoKKyAgdmVyc2lvbiAiMS4zLjQiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2luaS8tL2luaS0xLjMuNC50 Z3ojMDUzN2NiNzlkYWY1OWI1OWExYTUxN2RmZjcwNmM4NmVjMDM5MTYyZSIK KworaW5saW5lLXNvdXJjZS1tYXBAfjAuNi4wOgorICB2ZXJzaW9uICIwLjYu MiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v aW5saW5lLXNvdXJjZS1tYXAvLS9pbmxpbmUtc291cmNlLW1hcC0wLjYuMi50 Z3ojZjkzOTM0NzFjMThhNzlkMTcyNGY4NjNmYTM4YjU4NjM3MGFkZTJhNSIK KyAgZGVwZW5kZW5jaWVzOgorICAgIHNvdXJjZS1tYXAgIn4wLjUuMyIKKwor aW5xdWlyZXJAXjAuMTIuMDoKKyAgdmVyc2lvbiAiMC4xMi4wIgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pbnF1aXJlci8t L2lucXVpcmVyLTAuMTIuMC50Z3ojMWVmMmJmZDYzNTA0ZGYwYmM3NTc4NWZm ZjhjMmM0MWRmMTJmMDc3ZSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGFuc2kt ZXNjYXBlcyAiXjEuMS4wIgorICAgIGFuc2ktcmVnZXggIl4yLjAuMCIKKyAg ICBjaGFsayAiXjEuMC4wIgorICAgIGNsaS1jdXJzb3IgIl4xLjAuMSIKKyAg ICBjbGktd2lkdGggIl4yLjAuMCIKKyAgICBmaWd1cmVzICJeMS4zLjUiCisg ICAgbG9kYXNoICJeNC4zLjAiCisgICAgcmVhZGxpbmUyICJeMS4wLjEiCisg ICAgcnVuLWFzeW5jICJeMC4xLjAiCisgICAgcngtbGl0ZSAiXjMuMS4yIgor ICAgIHN0cmluZy13aWR0aCAiXjEuMC4xIgorICAgIHN0cmlwLWFuc2kgIl4z LjAuMCIKKyAgICB0aHJvdWdoICJeMi4zLjYiCisKK2luc2VydC1tb2R1bGUt Z2xvYmFsc0BeNy4wLjA6CisgIHZlcnNpb24gIjcuMC4xIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pbnNlcnQtbW9kdWxl LWdsb2JhbHMvLS9pbnNlcnQtbW9kdWxlLWdsb2JhbHMtNy4wLjEudGd6I2Mw M2JmNGUwMWNiMDg2ZDViNWU1YWNlOGFkMGFmZTc4ODlkNjM4YzMiCisgIGRl cGVuZGVuY2llczoKKyAgICBKU09OU3RyZWFtICJeMS4wLjMiCisgICAgY29t YmluZS1zb3VyY2UtbWFwICJ+MC43LjEiCisgICAgY29uY2F0LXN0cmVhbSAi fjEuNS4xIgorICAgIGlzLWJ1ZmZlciAiXjEuMS4wIgorICAgIGxleGljYWwt c2NvcGUgIl4xLjIuMCIKKyAgICBwcm9jZXNzICJ+MC4xMS4wIgorICAgIHRo cm91Z2gyICJeMi4wLjAiCisgICAgeHRlbmQgIl40LjAuMCIKKworaW50ZXJw cmV0QF4xLjAuMDoKKyAgdmVyc2lvbiAiMS4wLjMiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2ludGVycHJldC8tL2ludGVy cHJldC0xLjAuMy50Z3ojY2JjMzVjNjJlZWVlNzNmMTlhYjdiMTBhODAxNTEx NDAxYWZjMGY5MCIKKworaW52YXJpYW50QF4yLjIuMDoKKyAgdmVyc2lvbiAi Mi4yLjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL2ludmFyaWFudC8tL2ludmFyaWFudC0yLjIuMi50Z3ojOWUxZjU2YWMw YWNkYjZiZjMwMzMwNmYzMzhiZTNiMjA0YWU2MDM2MCIKKyAgZGVwZW5kZW5j aWVzOgorICAgIGxvb3NlLWVudmlmeSAiXjEuMC4wIgorCitpbnZlcnQta3ZA XjEuMC4wOgorICB2ZXJzaW9uICIxLjAuMCIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vaW52ZXJ0LWt2Ly0vaW52ZXJ0LWt2 LTEuMC4wLnRneiMxMDRhOGU0YWFjYTZkM2Q4Y2QxNTdhOGVmOGJmYWIyZDdh M2ZmZGI2IgorCitpcy1hcnJheWlzaEBeMC4yLjE6CisgIHZlcnNpb24gIjAu Mi4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9pcy1hcnJheWlzaC8tL2lzLWFycmF5aXNoLTAuMi4xLnRneiM3N2M5OTg0 MDUyN2FhOGVjYjFhOGJhNjk3YjgwNjQ1YTdhOTI2YTlkIgorCitpcy1iaW5h cnktcGF0aEBeMS4wLjA6CisgIHZlcnNpb24gIjEuMC4xIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pcy1iaW5hcnktcGF0 aC8tL2lzLWJpbmFyeS1wYXRoLTEuMC4xLnRneiM3NWYxNjY0MmI0ODBmMTg3 YTcxMWM4MTQxNjFmZDNhNGE3NjU1ODk4IgorICBkZXBlbmRlbmNpZXM6Cisg ICAgYmluYXJ5LWV4dGVuc2lvbnMgIl4xLjAuMCIKKworaXMtYnVmZmVyQF4x LjEuMCwgaXMtYnVmZmVyQF4xLjEuNToKKyAgdmVyc2lvbiAiMS4xLjUiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lzLWJ1 ZmZlci8tL2lzLWJ1ZmZlci0xLjEuNS50Z3ojMWYzYjI2ZWY2MTNiMjE0Yjg4 Y2JjYTIzY2M2YzAxZDg3OTYxZWVjYyIKKworaXMtYnVpbHRpbi1tb2R1bGVA XjEuMC4wOgorICB2ZXJzaW9uICIxLjAuMCIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vaXMtYnVpbHRpbi1tb2R1bGUvLS9p cy1idWlsdGluLW1vZHVsZS0xLjAuMC50Z3ojNTQwNTcyZDM0ZjdhYzMxMTlm OGY3NmMzMGNiYzFiMWUwMzdhZmZiZSIKKyAgZGVwZW5kZW5jaWVzOgorICAg IGJ1aWx0aW4tbW9kdWxlcyAiXjEuMC4wIgorCitpcy1jYWxsYWJsZUBeMS4x LjEsIGlzLWNhbGxhYmxlQF4xLjEuMiwgaXMtY2FsbGFibGVAXjEuMS4zOgor ICB2ZXJzaW9uICIxLjEuMyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vaXMtY2FsbGFibGUvLS9pcy1jYWxsYWJsZS0xLjEu My50Z3ojODZlYjc1MzkyODA1ZGRjMzNhZjcxYzkyYTBlZWRmNzRlZTc2MDRi MiIKKworaXMtZGF0ZS1vYmplY3RAXjEuMC4xOgorICB2ZXJzaW9uICIxLjAu MSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v aXMtZGF0ZS1vYmplY3QvLS9pcy1kYXRlLW9iamVjdC0xLjAuMS50Z3ojOWFh MjBlYjZhZWViYmZmNzdmYmQzM2U3NGNhMDFiMzM1ODFkM2ExNiIKKworaXMt ZG90ZmlsZUBeMS4wLjA6CisgIHZlcnNpb24gIjEuMC4zIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pcy1kb3RmaWxlLy0v aXMtZG90ZmlsZS0xLjAuMy50Z3ojYTZhMmYzMmZmZDJkZmIwNGY1Y2EyNWVj ZDBmNmI4M2NmNzk4YTFlMSIKKworaXMtZXF1YWwtc2hhbGxvd0BeMC4xLjM6 CisgIHZlcnNpb24gIjAuMS4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9pcy1lcXVhbC1zaGFsbG93Ly0vaXMtZXF1YWwt c2hhbGxvdy0wLjEuMy50Z3ojMjIzODA5OGZjMjIxZGUwYmNmYTVkOWVhYzRj NDVkNjM4YWExYzUzNCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGlzLXByaW1p dGl2ZSAiXjIuMC4wIgorCitpcy1leHRlbmRhYmxlQF4wLjEuMToKKyAgdmVy c2lvbiAiMC4xLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2lzLWV4dGVuZGFibGUvLS9pcy1leHRlbmRhYmxlLTAuMS4x LnRneiM2MmIxMTBlMjg5YTQ3MTQxOGUzZWMzNmE2MTdkNDcyZTMwMWRmYzg5 IgorCitpcy1leHRnbG9iQF4xLjAuMDoKKyAgdmVyc2lvbiAiMS4wLjAiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lzLWV4 dGdsb2IvLS9pcy1leHRnbG9iLTEuMC4wLnRneiNhYzQ2ODE3N2M0OTQzNDA1 YTA5MmZjOGYyOTc2MGM2ZmZjNjIwNmMwIgorCitpcy1maW5pdGVAXjEuMC4w OgorICB2ZXJzaW9uICIxLjAuMiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vaXMtZmluaXRlLy0vaXMtZmluaXRlLTEuMC4y LnRneiNjYzY2Nzc2OTU2MDJiZTU1MGVmMTFlOGI0YWE2MzA1MzQyYjZkMGFh IgorICBkZXBlbmRlbmNpZXM6CisgICAgbnVtYmVyLWlzLW5hbiAiXjEuMC4w IgorCitpcy1mdWxsd2lkdGgtY29kZS1wb2ludEBeMS4wLjA6CisgIHZlcnNp b24gIjEuMC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9pcy1mdWxsd2lkdGgtY29kZS1wb2ludC8tL2lzLWZ1bGx3aWR0 aC1jb2RlLXBvaW50LTEuMC4wLnRneiNlZjllMzEzODZmMDMxYTdmMGQ2NDNh ZjgyZmRlNTBjNDU3ZWYwMGNiIgorICBkZXBlbmRlbmNpZXM6CisgICAgbnVt YmVyLWlzLW5hbiAiXjEuMC4wIgorCitpcy1mdWxsd2lkdGgtY29kZS1wb2lu dEBeMi4wLjA6CisgIHZlcnNpb24gIjIuMC4wIgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pcy1mdWxsd2lkdGgtY29kZS1w b2ludC8tL2lzLWZ1bGx3aWR0aC1jb2RlLXBvaW50LTIuMC4wLnRneiNhM2Iz MGE1YzRmMTk5MTgzMTY3YWFhYjkzYmVlZmFlM2RkZmI2NTRmIgorCitpcy1n bG9iQF4yLjAuMCwgaXMtZ2xvYkBeMi4wLjE6CisgIHZlcnNpb24gIjIuMC4x IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9p cy1nbG9iLy0vaXMtZ2xvYi0yLjAuMS50Z3ojZDA5NmY5MjZhM2RlZDU2MDBm M2ZkZmQ5MTE5OGNiMDg4OGMyZDg2MyIKKyAgZGVwZW5kZW5jaWVzOgorICAg IGlzLWV4dGdsb2IgIl4xLjAuMCIKKworaXMtbXktanNvbi12YWxpZEBeMi4x MC4wLCBpcy1teS1qc29uLXZhbGlkQF4yLjEyLjQ6CisgIHZlcnNpb24gIjIu MTYuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vaXMtbXktanNvbi12YWxpZC8tL2lzLW15LWpzb24tdmFsaWQtMi4xNi4w LnRneiNmMDc5ZGQ5YmZkYWU2NWVlMjAzOGFhZThhY2JjODZhYjEwOWUzNjkz IgorICBkZXBlbmRlbmNpZXM6CisgICAgZ2VuZXJhdGUtZnVuY3Rpb24gIl4y LjAuMCIKKyAgICBnZW5lcmF0ZS1vYmplY3QtcHJvcGVydHkgIl4xLjEuMCIK KyAgICBqc29ucG9pbnRlciAiXjQuMC4wIgorICAgIHh0ZW5kICJeNC4wLjAi CisKK2lzLW51bWJlckBeMC4xLjE6CisgIHZlcnNpb24gIjAuMS4xIgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pcy1udW1i ZXIvLS9pcy1udW1iZXItMC4xLjEudGd6IzY5YTdhZjExNjk2M2Q0NzIwNmVj OWJkOWI0OGExNDIxNmYxZTM4MDYiCisKK2lzLW51bWJlckBeMi4wLjIsIGlz LW51bWJlckBeMi4xLjA6CisgIHZlcnNpb24gIjIuMS4wIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pcy1udW1iZXIvLS9p cy1udW1iZXItMi4xLjAudGd6IzAxZmNiYmIzOTM0NjNhNTQ4ZjJmNDY2Y2Nl MTZkZWNlNDlkYjkwOGYiCisgIGRlcGVuZGVuY2llczoKKyAgICBraW5kLW9m ICJeMy4wLjIiCisKK2lzLXBhdGgtY3dkQF4xLjAuMDoKKyAgdmVyc2lvbiAi MS4wLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL2lzLXBhdGgtY3dkLy0vaXMtcGF0aC1jd2QtMS4wLjAudGd6I2QyMjVl YzIzMTMyZTg5ZWRkMzhmZGE3Njc0NzJlNjJlNjVmMTEwNmQiCisKK2lzLXBh dGgtaW4tY3dkQF4xLjAuMDoKKyAgdmVyc2lvbiAiMS4wLjAiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lzLXBhdGgtaW4t Y3dkLy0vaXMtcGF0aC1pbi1jd2QtMS4wLjAudGd6IzY0Nzc1ODJiODIxNGQ2 MDIzNDYwOTQ1NjcwMDNiZThhOWVhYzA0ZGMiCisgIGRlcGVuZGVuY2llczoK KyAgICBpcy1wYXRoLWluc2lkZSAiXjEuMC4wIgorCitpcy1wYXRoLWluc2lk ZUBeMS4wLjA6CisgIHZlcnNpb24gIjEuMC4wIgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pcy1wYXRoLWluc2lkZS8tL2lz LXBhdGgtaW5zaWRlLTEuMC4wLnRneiNmYzA2ZTVhMTY4M2ZiZGExM2RlNjY3 YWZmNzE3YmJjMTBhNDhmMzdmIgorICBkZXBlbmRlbmNpZXM6CisgICAgcGF0 aC1pcy1pbnNpZGUgIl4xLjAuMSIKKworaXMtcG9zaXgtYnJhY2tldEBeMC4x LjA6CisgIHZlcnNpb24gIjAuMS4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9pcy1wb3NpeC1icmFja2V0Ly0vaXMtcG9z aXgtYnJhY2tldC0wLjEuMS50Z3ojMzMzNGRjNzk3NzQzNjhlOTJmMDE2ZTZm YmMwYTg4ZjVjZDZlNmJjNCIKKworaXMtcHJpbWl0aXZlQF4yLjAuMDoKKyAg dmVyc2lvbiAiMi4wLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL2lzLXByaW1pdGl2ZS8tL2lzLXByaW1pdGl2ZS0yLjAu MC50Z3ojMjA3YmFiOTE2Mzg0OTljMDdiMmFkZjI0MGE0MWE4NzIxMDAzNDU3 NSIKKworaXMtcHJvcGVydHlAXjEuMC4wOgorICB2ZXJzaW9uICIxLjAuMiIK KyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vaXMt cHJvcGVydHkvLS9pcy1wcm9wZXJ0eS0xLjAuMi50Z3ojNTdmZTFjNGU0ODQ3 NGVkZDY1YjA5OTExZjI2YjFjZDQwOTVkZGE4NCIKKworaXMtcmVnZXhAXjEu MC4zOgorICB2ZXJzaW9uICIxLjAuNCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vaXMtcmVnZXgvLS9pcy1yZWdleC0xLjAu NC50Z3ojNTUxNzQ4OWI1NDcwOTFiMDkzMGUwOTU2NTRjZWQyNWVlOTdlOTQ5 MSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGhhcyAiXjEuMC4xIgorCitpcy1y ZXNvbHZhYmxlQF4xLjAuMDoKKyAgdmVyc2lvbiAiMS4wLjAiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lzLXJlc29sdmFi bGUvLS9pcy1yZXNvbHZhYmxlLTEuMC4wLnRneiM4ZGY1N2M2MWVhMmUzYzUw MTQwOGQxMDBmYjAxM2NmOGQ2ZTBjYzYyIgorICBkZXBlbmRlbmNpZXM6Cisg ICAgdHJ5aXQgIl4xLjAuMSIKKworaXMtc3RyZWFtQF4xLjAuMToKKyAgdmVy c2lvbiAiMS4xLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2lzLXN0cmVhbS8tL2lzLXN0cmVhbS0xLjEuMC50Z3ojMTJk NGEzZGQ0ZTY4ZTBiNzljZWI4ZGJjODQxNzNhZTgwZDkxY2E0NCIKKworaXMt c3Vic2V0QF4wLjEuMToKKyAgdmVyc2lvbiAiMC4xLjEiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lzLXN1YnNldC8tL2lz LXN1YnNldC0wLjEuMS50Z3ojOGE1OTExN2Q5MzJkZTFkZTAwZjI0NWZjZGQz OWNlNDNmMWU5MzlhNiIKKworaXMtc3ltYm9sQF4xLjAuMToKKyAgdmVyc2lv biAiMS4wLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2lzLXN5bWJvbC8tL2lzLXN5bWJvbC0xLjAuMS50Z3ojM2NjNTlm MDAwMjUxOTRiNmFiMmUzOGRiYWU2Njg5MjU2YjY2MDU3MiIKKworaXMtdHlw ZWRhcnJheUB+MS4wLjA6CisgIHZlcnNpb24gIjEuMC4wIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pcy10eXBlZGFycmF5 Ly0vaXMtdHlwZWRhcnJheS0xLjAuMC50Z3ojZTQ3OWM4MDg1OGRmMGMxYjEx ZGRkYTY5NDBmOTYwMTFmY2RhNGE5YSIKKworaXMtdXRmOEBeMC4yLjA6Cisg IHZlcnNpb24gIjAuMi4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9pcy11dGY4Ly0vaXMtdXRmOC0wLjIuMS50Z3ojNGIw ZGExNDQyMTA0ZDFiMzM2MzQwZTgwNzk3ZTg2NWNmMzlmN2Q3MiIKKworaXNh cnJheUAwLjAuMSwgaXNhcnJheUB+MC4wLjE6CisgIHZlcnNpb24gIjAuMC4x IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9p c2FycmF5Ly0vaXNhcnJheS0wLjAuMS50Z3ojOGExOGFjZmNhOWE4ZjQxNzdl MDlhYmZjNjAzODkzOWIwNWQxZWVkZiIKKworaXNhcnJheUAxLjAuMCwgaXNh cnJheUBeMS4wLjAsIGlzYXJyYXlAfjEuMC4wOgorICB2ZXJzaW9uICIxLjAu MCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v aXNhcnJheS8tL2lzYXJyYXktMS4wLjAudGd6I2JiOTM1ZDQ4NTgyY2JhMTY4 YzA2ODM0OTU3YTU0YTNlMDcxMjRmMTEiCisKK2lzYmluYXJ5ZmlsZUBeMy4w LjA6CisgIHZlcnNpb24gIjMuMC4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9pc2JpbmFyeWZpbGUvLS9pc2JpbmFyeWZp bGUtMy4wLjIudGd6IzRhM2U5NzRlYzBjYmE5MDA0ZDNmYzZjZGU3MjA5ZWE2 OTM2OGE2MjEiCisKK2lzZXhlQF4yLjAuMDoKKyAgdmVyc2lvbiAiMi4wLjAi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2lz ZXhlLy0vaXNleGUtMi4wLjAudGd6I2U4ZmJmMzc0ZGM1NTZmZjg5NDdhMTBk Y2IwNTcyZDYzM2YyY2ZhMTAiCisKK2lzb2JqZWN0QF4yLjAuMDoKKyAgdmVy c2lvbiAiMi4xLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlh cm5wa2cuY29tL2lzb2JqZWN0Ly0vaXNvYmplY3QtMi4xLjAudGd6I2YwNjU1 NjEwOTZhM2YxZGEyZWY0NjI3MmY4MTVjODQwZDg3ZTBjODkiCisgIGRlcGVu ZGVuY2llczoKKyAgICBpc2FycmF5ICIxLjAuMCIKKworaXNvbW9ycGhpYy1m ZXRjaEBeMi4xLjE6CisgIHZlcnNpb24gIjIuMi4xIgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9pc29tb3JwaGljLWZldGNo Ly0vaXNvbW9ycGhpYy1mZXRjaC0yLjIuMS50Z3ojNjExYWUxYWNmMTRmNWU4 MWY3Mjk1MDc0NzI4MTlmZTk3MzM1NThhOSIKKyAgZGVwZW5kZW5jaWVzOgor ICAgIG5vZGUtZmV0Y2ggIl4xLjAuMSIKKyAgICB3aGF0d2ctZmV0Y2ggIj49 MC4xMC4wIgorCitpc3N0cmVhbUB+MC4xLjI6CisgIHZlcnNpb24gIjAuMS4y IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9p c3N0cmVhbS8tL2lzc3RyZWFtLTAuMS4yLnRneiM0N2U2M2Y3YWY1NWFmYTZm OTJlMTUwMGU2OTBlYjhiODUyOWMwOTlhIgorCitqYXNtaW5lLWNvcmVAfjIu NS4yOgorICB2ZXJzaW9uICIyLjUuMiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vamFzbWluZS1jb3JlLy0vamFzbWluZS1j b3JlLTIuNS4yLnRneiM2ZjYxYmQ3OTA2MWUyN2Y0M2U2ZjkzNTVlNDRiM2M2 Y2FiNmZmMjk3IgorCitqb2RpZDI1NTE5QF4xLjAuMDoKKyAgdmVyc2lvbiAi MS4wLjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL2pvZGlkMjU1MTkvLS9qb2RpZDI1NTE5LTEuMC4yLnRneiMwNmQ0OTEy MjU1MDkzNDE5NDc3ZDQyNTYzMzYwNmUwZTkwNzgyOTY3IgorICBkZXBlbmRl bmNpZXM6CisgICAganNibiAifjAuMS4wIgorCitqcy1zdHJpbmctZXNjYXBl QF4xLjAuMDoKKyAgdmVyc2lvbiAiMS4wLjEiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2pzLXN0cmluZy1lc2NhcGUvLS9q cy1zdHJpbmctZXNjYXBlLTEuMC4xLnRneiNlMjYyNWJhZGJjMGQ2N2M3NTMz ZTllZGMxMDY4YzU4N2FlNDEzN2VmIgorCitqcy10b2tlbnNAXjMuMC4wOgor ICB2ZXJzaW9uICIzLjAuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vanMtdG9rZW5zLy0vanMtdG9rZW5zLTMuMC4xLnRn eiMwOGU5ZjEzMjQ4NGEyYzQ1YTMwOTA3ZTlkYzRkNTU2N2I3ZjExNGQ3Igor Citqcy15YW1sQF4zLjUuMToKKyAgdmVyc2lvbiAiMy44LjQiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2pzLXlhbWwvLS9q cy15YW1sLTMuOC40LnRneiM1MjBiNDU2NGY4NjU3M2JhOTY2NjJhZjg1YThj YWZhN2I0YjVhNmY2IgorICBkZXBlbmRlbmNpZXM6CisgICAgYXJncGFyc2Ug Il4xLjAuNyIKKyAgICBlc3ByaW1hICJeMy4xLjEiCisKK2pzYm5AfjAuMS4w OgorICB2ZXJzaW9uICIwLjEuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vanNibi8tL2pzYm4tMC4xLjEudGd6I2E1ZTY1 NGMyZTVhMmRlYjVmMjAxZDk2Y2VmYmNhODBjMGVmMmY1MTMiCisKK2pzZXNj QF4xLjMuMDoKKyAgdmVyc2lvbiAiMS4zLjAiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2pzZXNjLy0vanNlc2MtMS4zLjAu dGd6IzQ2YzNmZWM4YzE4OTJiMTJiMDgzM2RiOWJjNzYyMjE3NmRiYWIzNGIi CisKK2pzZXNjQH4wLjUuMDoKKyAgdmVyc2lvbiAiMC41LjAiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2pzZXNjLy0vanNl c2MtMC41LjAudGd6I2U3ZGVlNjZlMzVkNmZjMTZmNzEwZmU5MWQ1Y2Y2OWY3 MGYwODkxMWQiCisKK2pzb24tbG9hZGVyQF4wLjUuNDoKKyAgdmVyc2lvbiAi MC41LjQiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL2pzb24tbG9hZGVyLy0vanNvbi1sb2FkZXItMC41LjQudGd6IzhiYWEx MzY1YTYzMmY1OGEzYzQ2ZDIwMTc1ZmM2MDAyYzk2ZTM3ZGUiCisKK2pzb24t c2NoZW1hQDAuMi4zOgorICB2ZXJzaW9uICIwLjIuMyIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vanNvbi1zY2hlbWEvLS9q c29uLXNjaGVtYS0wLjIuMy50Z3ojYjQ4MGM4OTJlNTlhMmYwNTk1NGNlNzI3 YmQzZjJhNGU4ODJmOWUxMyIKKworanNvbi1zdGFibGUtc3RyaW5naWZ5QF4x LjAuMCwganNvbi1zdGFibGUtc3RyaW5naWZ5QF4xLjAuMToKKyAgdmVyc2lv biAiMS4wLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2pzb24tc3RhYmxlLXN0cmluZ2lmeS8tL2pzb24tc3RhYmxlLXN0 cmluZ2lmeS0xLjAuMS50Z3ojOWE3NTlkMzljNWYyZmY1MDNmZDUzMDA2NDZl ZDQ0NWY4OGM0ZjlhZiIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGpzb25pZnkg In4wLjAuMCIKKworanNvbi1zdGFibGUtc3RyaW5naWZ5QH4wLjAuMDoKKyAg dmVyc2lvbiAiMC4wLjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL2pzb24tc3RhYmxlLXN0cmluZ2lmeS8tL2pzb24tc3Rh YmxlLXN0cmluZ2lmeS0wLjAuMS50Z3ojNjExYzIzZTgxNGRiMzc1NTI3ZGY4 NTExOTNkYjU5ZGQyYWYyN2Y0NSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGpz b25pZnkgIn4wLjAuMCIKKworanNvbi1zdHJpbmdpZnktc2FmZUB+NS4wLjE6 CisgIHZlcnNpb24gIjUuMC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9qc29uLXN0cmluZ2lmeS1zYWZlLy0vanNvbi1z dHJpbmdpZnktc2FmZS01LjAuMS50Z3ojMTI5NmEyZDU4ZmQ0NWYxOWEwZjZj ZTAxZDY1NzAxZTJjNzM1YjZlYiIKKworanNvbjNAMy4zLjI6CisgIHZlcnNp b24gIjMuMy4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9qc29uMy8tL2pzb24zLTMuMy4yLnRneiMzYzA0MzQ3NDNkZjkz ZTJmNWM0MmFlZTdiMTliY2I0ODM1NzVmNGUxIgorCitqc29uNUBeMC41LjA6 CisgIHZlcnNpb24gIjAuNS4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9qc29uNS8tL2pzb241LTAuNS4xLnRneiMxZWFk ZTdhY2MwMTIwMzRhZDg0ZTIzOTY3NjdlYWQ5ZmE1NDk1ODIxIgorCitqc29u ZmlsZUBeMi4xLjA6CisgIHZlcnNpb24gIjIuNC4wIgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9qc29uZmlsZS8tL2pzb25m aWxlLTIuNC4wLnRneiMzNzM2YTJiNDI4Yjg3YmJkYTBjYzgzYjUzZmEzZDYz M2EzNWMyYWU4IgorICBvcHRpb25hbERlcGVuZGVuY2llczoKKyAgICBncmFj ZWZ1bC1mcyAiXjQuMS42IgorCitqc29uaWZ5QH4wLjAuMDoKKyAgdmVyc2lv biAiMC4wLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2pzb25pZnkvLS9qc29uaWZ5LTAuMC4wLnRneiMyYzc0YjZlZTQx ZDkzY2E1MWI3YjVhYWVlOGY1MDM2MzFkMjUyYTczIgorCitqc29ucGFyc2VA XjEuMi4wOgorICB2ZXJzaW9uICIxLjMuMSIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vanNvbnBhcnNlLy0vanNvbnBhcnNl LTEuMy4xLnRneiMzZjRkYWU0YTkxZmFjMzE1ZjcxMDYyZjg1MjFjYzIzOWYx MzY2MjgwIgorCitqc29ucG9pbnRlckBeNC4wLjA6CisgIHZlcnNpb24gIjQu MC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9qc29ucG9pbnRlci8tL2pzb25wb2ludGVyLTQuMC4xLnRneiM0ZmQ5MmNi MzRlMGU5ZGIzYzg5Yzg2MjJlY2Y1MWY5Yjk3OGM2Y2I5IgorCitqc3ByaW1A XjEuMi4yOgorICB2ZXJzaW9uICIxLjQuMCIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vanNwcmltLy0vanNwcmltLTEuNC4w LnRneiNhM2I4N2U0MDI5OGQ4YzM4MDU1MmQ4Y2M3NjI4YTBiYjk1YTIyOTE4 IgorICBkZXBlbmRlbmNpZXM6CisgICAgYXNzZXJ0LXBsdXMgIjEuMC4wIgor ICAgIGV4dHNwcmludGYgIjEuMC4yIgorICAgIGpzb24tc2NoZW1hICIwLjIu MyIKKyAgICB2ZXJyb3IgIjEuMy42IgorCitqc3gtYXN0LXV0aWxzQF4xLjMu NDoKKyAgdmVyc2lvbiAiMS40LjEiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL2pzeC1hc3QtdXRpbHMvLS9qc3gtYXN0LXV0 aWxzLTEuNC4xLnRneiMzODY3MjEzZThkZDc5YmYxZThmMjMwMGMwY2ZjMWVm YjE4MmMwZGYxIgorCitrYXJtYS1iYWJlbC1wcmVwcm9jZXNzb3JAXjYuMC4x OgorICB2ZXJzaW9uICI2LjAuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20va2FybWEtYmFiZWwtcHJlcHJvY2Vzc29yLy0v a2FybWEtYmFiZWwtcHJlcHJvY2Vzc29yLTYuMC4xLnRneiM3YWUxZDNlNjQ5 NTBkYmUxMWY0MjFiNzQwNDBhYjA4ZmI1YTY2YzIxIgorICBkZXBlbmRlbmNp ZXM6CisgICAgYmFiZWwtY29yZSAiXjYuMC4wIgorCitrYXJtYS1icm93c2Vy aWZ5QH41LjEuMToKKyAgdmVyc2lvbiAiNS4xLjEiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2thcm1hLWJyb3dzZXJpZnkv LS9rYXJtYS1icm93c2VyaWZ5LTUuMS4xLnRneiNmNjQyZDcwZDc3NmQ5YWIz YjczNTI2YzU3MzJhYmNmZWEyNDAwMzE5IgorICBkZXBlbmRlbmNpZXM6Cisg ICAgY29udmVydC1zb3VyY2UtbWFwICJeMS4xLjMiCisgICAgaGF0ICJeMC4w LjMiCisgICAganMtc3RyaW5nLWVzY2FwZSAiXjEuMC4wIgorICAgIGxvZGFz aCAiXjMuMTAuMSIKKyAgICBtaW5pbWF0Y2ggIl4zLjAuMCIKKyAgICBvcy1z aGltICJeMC4xLjMiCisKK2thcm1hLWphc21pbmUtaHRtbC1yZXBvcnRlckB+ MC4yLjI6CisgIHZlcnNpb24gIjAuMi4yIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9rYXJtYS1qYXNtaW5lLWh0bWwtcmVw b3J0ZXIvLS9rYXJtYS1qYXNtaW5lLWh0bWwtcmVwb3J0ZXItMC4yLjIudGd6 IzQ4YThlNWVmMTg4MDc2MTdlZTJiNWUzM2MxMTk0YzM1YjQzOTUyNGMiCisg IGRlcGVuZGVuY2llczoKKyAgICBrYXJtYS1qYXNtaW5lICJeMS4wLjIiCisK K2thcm1hLWphc21pbmVAXjEuMC4yLCBrYXJtYS1qYXNtaW5lQH4xLjEuMDoK KyAgdmVyc2lvbiAiMS4xLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL2thcm1hLWphc21pbmUvLS9rYXJtYS1qYXNtaW5l LTEuMS4wLnRneiMyMmU0YzA2YmY5YTE4MmU1Mjk0ZDFmNzA1ZTM3MzM4MTFi ODEwYWNmIgorCitrYXJtYS1waGFudG9tanMtbGF1bmNoZXJAfjEuMC4yOgor ICB2ZXJzaW9uICIxLjAuNCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20va2FybWEtcGhhbnRvbWpzLWxhdW5jaGVyLy0va2Fy bWEtcGhhbnRvbWpzLWxhdW5jaGVyLTEuMC40LnRneiNkMjNjYTM0ODAxYmRh OTg2M2FkMzE4ZTNiYjRiZDQwNjJiMTNhY2QyIgorICBkZXBlbmRlbmNpZXM6 CisgICAgbG9kYXNoICJeNC4wLjEiCisgICAgcGhhbnRvbWpzLXByZWJ1aWx0 ICJeMi4xLjciCisKK2thcm1hLXJlcXVpcmVqc0B+MS4xLjA6CisgIHZlcnNp b24gIjEuMS4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9rYXJtYS1yZXF1aXJlanMvLS9rYXJtYS1yZXF1aXJlanMtMS4x LjAudGd6I2ZkZGFlMmNiODdkN2ViYzE2ZmIwMjIyODkzNTY0ZDdmZWU1Nzg3 OTgiCisKK2thcm1hLXNvdXJjZW1hcC1sb2FkZXJAfjAuMy43OgorICB2ZXJz aW9uICIwLjMuNyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20va2FybWEtc291cmNlbWFwLWxvYWRlci8tL2thcm1hLXNvdXJj ZW1hcC1sb2FkZXItMC4zLjcudGd6IzkxMzIyYzc3ZjhmMTNkNDZmZWQwNjJi MDQyZTEwMDlkNGM0NTA1ZDgiCisgIGRlcGVuZGVuY2llczoKKyAgICBncmFj ZWZ1bC1mcyAiXjQuMS4yIgorCitrYXJtYS13ZWJwYWNrQH4yLjAuMzoKKyAg dmVyc2lvbiAiMi4wLjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL2thcm1hLXdlYnBhY2svLS9rYXJtYS13ZWJwYWNrLTIu MC4zLnRneiMzOWNlYmY1Y2EyNTgwMTM5YjI3ZjlhZTY5Yjc4ODE2YjljODJm YWU2IgorICBkZXBlbmRlbmNpZXM6CisgICAgYXN5bmMgIn4wLjkuMCIKKyAg ICBsb2FkZXItdXRpbHMgIl4wLjIuNSIKKyAgICBsb2Rhc2ggIl4zLjguMCIK KyAgICBzb3VyY2UtbWFwICJeMC4xLjQxIgorICAgIHdlYnBhY2stZGV2LW1p ZGRsZXdhcmUgIl4xLjAuMTEiCisKK2thcm1hQH4xLjUuMDoKKyAgdmVyc2lv biAiMS41LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL2thcm1hLy0va2FybWEtMS41LjAudGd6IzljNGMxNGYwNDAwYmVm MmMwNGM4ZThlNmJmZjU5MzcxMDI1Y2MwMDkiCisgIGRlcGVuZGVuY2llczoK KyAgICBibHVlYmlyZCAiXjMuMy4wIgorICAgIGJvZHktcGFyc2VyICJeMS4x Ni4xIgorICAgIGNob2tpZGFyICJeMS40LjEiCisgICAgY29sb3JzICJeMS4x LjAiCisgICAgY29tYmluZS1saXN0cyAiXjEuMC4wIgorICAgIGNvbm5lY3Qg Il4zLjYuMCIKKyAgICBjb3JlLWpzICJeMi4yLjAiCisgICAgZGkgIl4wLjAu MSIKKyAgICBkb20tc2VyaWFsaXplICJeMi4yLjAiCisgICAgZXhwYW5kLWJy YWNlcyAiXjAuMS4xIgorICAgIGdsb2IgIl43LjEuMSIKKyAgICBncmFjZWZ1 bC1mcyAiXjQuMS4yIgorICAgIGh0dHAtcHJveHkgIl4xLjEzLjAiCisgICAg aXNiaW5hcnlmaWxlICJeMy4wLjAiCisgICAgbG9kYXNoICJeMy44LjAiCisg ICAgbG9nNGpzICJeMC42LjMxIgorICAgIG1pbWUgIl4xLjMuNCIKKyAgICBt aW5pbWF0Y2ggIl4zLjAuMCIKKyAgICBvcHRpbWlzdCAiXjAuNi4xIgorICAg IHFqb2JzICJeMS4xLjQiCisgICAgcmFuZ2UtcGFyc2VyICJeMS4yLjAiCisg ICAgcmltcmFmICJeMi42LjAiCisgICAgc2FmZS1idWZmZXIgIl41LjAuMSIK KyAgICBzb2NrZXQuaW8gIjEuNy4zIgorICAgIHNvdXJjZS1tYXAgIl4wLjUu MyIKKyAgICB0bXAgIjAuMC4zMSIKKyAgICB1c2VyYWdlbnQgIl4yLjEuMTIi CisKK2tld0B+MC43LjA6CisgIHZlcnNpb24gIjAuNy4wIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9rZXcvLS9rZXctMC43 LjAudGd6Izc5ZDkzZDJkMzMzNjNkNmZkZDI5NzBiMzM1ZDkxNDFhZDU5MWQ3 OWIiCisKK2tpbmQtb2ZAXjMuMC4yOgorICB2ZXJzaW9uICIzLjIuMiIKKyAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20va2luZC1v Zi8tL2tpbmQtb2YtMy4yLjIudGd6IzMxZWEyMWE3MzRiYWI5YmJiMGYzMjQ2 NmQ4OTNhZWE1MWU0YTNjNjQiCisgIGRlcGVuZGVuY2llczoKKyAgICBpcy1i dWZmZXIgIl4xLjEuNSIKKwora2xhd0BeMS4wLjA6CisgIHZlcnNpb24gIjEu My4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9rbGF3Ly0va2xhdy0xLjMuMS50Z3ojNDA4ODQzM2I0NmIzYjFiYTI1OWQ3 ODc4NWQ4ZTk2ZjczYmEwMjQzOSIKKyAgb3B0aW9uYWxEZXBlbmRlbmNpZXM6 CisgICAgZ3JhY2VmdWwtZnMgIl40LjEuOSIKKworbGFiZWxlZC1zdHJlYW0t c3BsaWNlckBeMi4wLjA6CisgIHZlcnNpb24gIjIuMC4wIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9sYWJlbGVkLXN0cmVh bS1zcGxpY2VyLy0vbGFiZWxlZC1zdHJlYW0tc3BsaWNlci0yLjAuMC50Z3oj YTUyZTFkMTM4MDI0YzAwYjg2YjFjMGM5MWY2Nzc5MThiOGFlMGE1OSIKKyAg ZGVwZW5kZW5jaWVzOgorICAgIGluaGVyaXRzICJeMi4wLjEiCisgICAgaXNh cnJheSAifjAuMC4xIgorICAgIHN0cmVhbS1zcGxpY2VyICJeMi4wLjAiCisK K2xhenktY2FjaGVAXjEuMC4zOgorICB2ZXJzaW9uICIxLjAuNCIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbGF6eS1jYWNo ZS8tL2xhenktY2FjaGUtMS4wLjQudGd6I2ExZDc4ZmMzYTUwNDc0Y2I4MDg0 NWQzYjNiNmUxZGE0OWE0NDZlOGUiCisKK2xjaWRAXjEuMC4wOgorICB2ZXJz aW9uICIxLjAuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vbGNpZC8tL2xjaWQtMS4wLjAudGd6IzMwOGFjY2FmYTBiYzQ4 M2EzODY3YjRiNmYyYjk1MDYyNTFkMWI4MzUiCisgIGRlcGVuZGVuY2llczoK KyAgICBpbnZlcnQta3YgIl4xLjAuMCIKKworbGV2bkBeMC4zLjAsIGxldm5A fjAuMy4wOgorICB2ZXJzaW9uICIwLjMuMCIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vbGV2bi8tL2xldm4tMC4zLjAudGd6 IzNiMDk5MjRlZGY5ZjA4M2MwNDkwZmRkNGMwYmM0NDIxZTA0NzY0ZWUiCisg IGRlcGVuZGVuY2llczoKKyAgICBwcmVsdWRlLWxzICJ+MS4xLjIiCisgICAg dHlwZS1jaGVjayAifjAuMy4yIgorCitsZXhpY2FsLXNjb3BlQF4xLjIuMDoK KyAgdmVyc2lvbiAiMS4yLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL2xleGljYWwtc2NvcGUvLS9sZXhpY2FsLXNjb3Bl LTEuMi4wLnRneiNmY2VhNWVkYzcwNGE0YjNhODc5NmNkY2E0MTljM2EwYWZh ZjIyZGY0IgorICBkZXBlbmRlbmNpZXM6CisgICAgYXN0dyAiXjIuMC4wIgor Citsb2FkLWpzb24tZmlsZUBeMS4wLjA6CisgIHZlcnNpb24gIjEuMS4wIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9sb2Fk LWpzb24tZmlsZS8tL2xvYWQtanNvbi1maWxlLTEuMS4wLnRneiM5NTY5MDU3 MDhkNThiNGJhYjRjMjI2MWIwNGY1OWYzMWM5OTM3NGMwIgorICBkZXBlbmRl bmNpZXM6CisgICAgZ3JhY2VmdWwtZnMgIl40LjEuMiIKKyAgICBwYXJzZS1q c29uICJeMi4yLjAiCisgICAgcGlmeSAiXjIuMC4wIgorICAgIHBpbmtpZS1w cm9taXNlICJeMi4wLjAiCisgICAgc3RyaXAtYm9tICJeMi4wLjAiCisKK2xv YWRlci1ydW5uZXJAXjIuMy4wOgorICB2ZXJzaW9uICIyLjMuMCIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbG9hZGVyLXJ1 bm5lci8tL2xvYWRlci1ydW5uZXItMi4zLjAudGd6I2Y0ODJhZWE4MmQ1NDNl MDc5MjE3MDBkNWE0NmVmMjZmZGFjNmI4YTIiCisKK2xvYWRlci11dGlsc0Be MC4yLjE2LCBsb2FkZXItdXRpbHNAXjAuMi41OgorICB2ZXJzaW9uICIwLjIu MTciCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L2xvYWRlci11dGlscy8tL2xvYWRlci11dGlscy0wLjIuMTcudGd6I2Y4NmU2 Mzc0ZDQzMjA1YTZlNmM2MGU5MTk2ZjE3YzAyOTliZmIzNDgiCisgIGRlcGVu ZGVuY2llczoKKyAgICBiaWcuanMgIl4zLjEuMyIKKyAgICBlbW9qaXMtbGlz dCAiXjIuMC4wIgorICAgIGpzb241ICJeMC41LjAiCisgICAgb2JqZWN0LWFz c2lnbiAiXjQuMC4xIgorCitsb2FkZXItdXRpbHNAXjEuMC4yOgorICB2ZXJz aW9uICIxLjEuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vbG9hZGVyLXV0aWxzLy0vbG9hZGVyLXV0aWxzLTEuMS4wLnRn eiNjOThhZWY0ODhiY2NlZGEyZmZiNWUyZGU2NDZkNmE3NTQ0MjlmNWNkIgor ICBkZXBlbmRlbmNpZXM6CisgICAgYmlnLmpzICJeMy4xLjMiCisgICAgZW1v amlzLWxpc3QgIl4yLjAuMCIKKyAgICBqc29uNSAiXjAuNS4wIgorCitsb2Rh c2guYXNzaWduaW5AXjQuMC45OgorICB2ZXJzaW9uICI0LjIuMCIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbG9kYXNoLmFz c2lnbmluLy0vbG9kYXNoLmFzc2lnbmluLTQuMi4wLnRneiNiYThkZjVmYjg0 MWViMGEzZTgwNDQyMzJiMGUyNjNhOGRjNmEyOGEyIgorCitsb2Rhc2guYmlu ZEBeNC4xLjQ6CisgIHZlcnNpb24gIjQuMi4xIgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9sb2Rhc2guYmluZC8tL2xvZGFz aC5iaW5kLTQuMi4xLnRneiM3YWUzMDE3ZTkzOTYyMmFjMzFiN2Q3ZDdkY2Ix YjM0ZGIxNjkwZDM1IgorCitsb2Rhc2guZGVmYXVsdHNAXjQuMC4xOgorICB2 ZXJzaW9uICI0LjIuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vbG9kYXNoLmRlZmF1bHRzLy0vbG9kYXNoLmRlZmF1bHRz LTQuMi4wLnRneiNkMDkxNzg3MTZmZmVhNGRkZTllNWZiN2IzN2Y2ZjA4MDIy NzQ1ODBjIgorCitsb2Rhc2guZmlsdGVyQF40LjQuMDoKKyAgdmVyc2lvbiAi NC42LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL2xvZGFzaC5maWx0ZXIvLS9sb2Rhc2guZmlsdGVyLTQuNi4wLnRneiM2 NjhiMWQ0OTgxNjAzYWUxY2M1YTZmYTc2MDE0M2U0ODBiNGM0YWNlIgorCits b2Rhc2guZmxhdHRlbkBeNC4yLjA6CisgIHZlcnNpb24gIjQuNC4wIgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9sb2Rhc2gu ZmxhdHRlbi8tL2xvZGFzaC5mbGF0dGVuLTQuNC4wLnRneiNmMzFjMjIyMjVh OTYzMmQyYmJmOGU0YWRkYmVmMjQwYWE3NjVhNjFmIgorCitsb2Rhc2guZm9y ZWFjaEBeNC4zLjA6CisgIHZlcnNpb24gIjQuNS4wIgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9sb2Rhc2guZm9yZWFjaC8t L2xvZGFzaC5mb3JlYWNoLTQuNS4wLnRneiMxYTZhMzVlYWNlNDAxMjgwYzdm MDZkZGRlYzM1MTY1YWIyN2UzZTUzIgorCitsb2Rhc2gubWFwQF40LjQuMDoK KyAgdmVyc2lvbiAiNC42LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL2xvZGFzaC5tYXAvLS9sb2Rhc2gubWFwLTQuNi4w LnRneiM3NzFlYzc4MzllMzQ3M2Q5YzRjZGUyOGIxOTM5NGMzNTYyZjRmNmQz IgorCitsb2Rhc2gubWVtb2l6ZUB+My4wLjM6CisgIHZlcnNpb24gIjMuMC40 IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9s b2Rhc2gubWVtb2l6ZS8tL2xvZGFzaC5tZW1vaXplLTMuMC40LnRneiMyZGNi ZDJjMjg3Y2JjMGE1NWNjNDIzMjhiZDBjNzM2MTUwZDUzZTNmIgorCitsb2Rh c2gubWVyZ2VAXjQuNC4wOgorICB2ZXJzaW9uICI0LjYuMCIKKyAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbG9kYXNoLm1lcmdl Ly0vbG9kYXNoLm1lcmdlLTQuNi4wLnRneiM2OTg4NGJhMTQ0YWMzM2ZlNjk5 NzM3YTYwODZkZWZmYWRkMGY4OWM1IgorCitsb2Rhc2gucGlja0BeNC4yLjE6 CisgIHZlcnNpb24gIjQuNC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9sb2Rhc2gucGljay8tL2xvZGFzaC5waWNrLTQu NC4wLnRneiM1MmYwNTYxMGZmZjlkZWQ0MjI2MTE0NDFlZDFmYzEyM2EwMzAw MWIzIgorCitsb2Rhc2gucmVkdWNlQF40LjQuMDoKKyAgdmVyc2lvbiAiNC42 LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L2xvZGFzaC5yZWR1Y2UvLS9sb2Rhc2gucmVkdWNlLTQuNi4wLnRneiNmMWFi NmI4MzkyOTlhZDQ4Zjc4NGFiYmY0NzY1OTZmMDNiOTE0ZDNiIgorCitsb2Rh c2gucmVqZWN0QF40LjQuMDoKKyAgdmVyc2lvbiAiNC42LjAiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2xvZGFzaC5yZWpl Y3QvLS9sb2Rhc2gucmVqZWN0LTQuNi4wLnRneiM4MGQ2NDkyZGMxNDcwODY0 YmJmNTgzNTMzYjY1MWY0MmE5ZjUyNDE1IgorCitsb2Rhc2guc29tZUBeNC40 LjA6CisgIHZlcnNpb24gIjQuNi4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9sb2Rhc2guc29tZS8tL2xvZGFzaC5zb21l LTQuNi4wLnRneiMxYmI5ZjMxNGVmNmI4YmFkZWQxM2I1NDkxNjliMmE5NDVl YjY4ZTRkIgorCitsb2Rhc2hAXjMuMTAuMSwgbG9kYXNoQF4zLjguMDoKKyAg dmVyc2lvbiAiMy4xMC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9sb2Rhc2gvLS9sb2Rhc2gtMy4xMC4xLnRneiM1YmY0 NWU4ZTQ5YmE0MTg5ZTE3ZDQ4Mjc4OWRmZDE1YmQxNDBiN2I2IgorCitsb2Rh c2hAXjQuMC4wLCBsb2Rhc2hAXjQuMC4xLCBsb2Rhc2hAXjQuMTQuMCwgbG9k YXNoQF40LjE3LjIsIGxvZGFzaEBeNC4yLjAsIGxvZGFzaEBeNC4zLjAsIGxv ZGFzaEBeNC41LjA6CisgIHZlcnNpb24gIjQuMTcuNCIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbG9kYXNoLy0vbG9kYXNo LTQuMTcuNC50Z3ojNzgyMDNhNGQxYzMyOGFlMWQ4NmRjYTY0NjBlMzY5YjU3 ZjQwNTVhZSIKKworbG9nNGpzQF4wLjYuMzE6CisgIHZlcnNpb24gIjAuNi4z OCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v bG9nNGpzLy0vbG9nNGpzLTAuNi4zOC50Z3ojMmM0OTQxMTY2OTVkNmZiMjU0 ODA5NDNkM2ZjODcyZTY2MmE1MjJmZCIKKyAgZGVwZW5kZW5jaWVzOgorICAg IHJlYWRhYmxlLXN0cmVhbSAifjEuMC4yIgorICAgIHNlbXZlciAifjQuMy4z IgorCitsb25nZXN0QF4xLjAuMToKKyAgdmVyc2lvbiAiMS4wLjEiCisgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2xvbmdlc3Qv LS9sb25nZXN0LTEuMC4xLnRneiMzMGEwYjJkYTM4ZjczNzcwZTgyOTRhMGQy MmU2NjI1ZWQ3N2QwMDk3IgorCitsb29zZS1lbnZpZnlAXjEuMC4wLCBsb29z ZS1lbnZpZnlAXjEuMS4wLCBsb29zZS1lbnZpZnlAXjEuMy4xOgorICB2ZXJz aW9uICIxLjMuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vbG9vc2UtZW52aWZ5Ly0vbG9vc2UtZW52aWZ5LTEuMy4xLnRn eiNkMWE4YWQzM2ZhOWNlMGU3MTNkNjVmZGQwYWM4Yjc0OGQ0NzhjODQ4Igor ICBkZXBlbmRlbmNpZXM6CisgICAganMtdG9rZW5zICJeMy4wLjAiCisKK2xy dS1jYWNoZUAyLjIueDoKKyAgdmVyc2lvbiAiMi4yLjQiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL2xydS1jYWNoZS8tL2xy dS1jYWNoZS0yLjIuNC50Z3ojNmM2NTg2MTliZWNmMTQwMzFkMGQwYjU5NGIx NjA0MmNlNGRjMDYzZCIKKworbWVkaWEtdHlwZXJAMC4zLjA6CisgIHZlcnNp b24gIjAuMy4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9tZWRpYS10eXBlci8tL21lZGlhLXR5cGVyLTAuMy4wLnRneiM4 NzEwZDdhZjBhYTYyNmY4ZmZmYTFjZTAwMTY4NTQ1MjYzMjU1NzQ4IgorCitt ZW1vcnktZnNAXjAuNC4wLCBtZW1vcnktZnNAfjAuNC4xOgorICB2ZXJzaW9u ICIwLjQuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vbWVtb3J5LWZzLy0vbWVtb3J5LWZzLTAuNC4xLnRneiMzYTlhMjBi ODQ2MjUyM2U0NDdjZmJjN2U4YmI4MGVkNjY3YmZjNTUyIgorICBkZXBlbmRl bmNpZXM6CisgICAgZXJybm8gIl4wLjEuMyIKKyAgICByZWFkYWJsZS1zdHJl YW0gIl4yLjAuMSIKKworbWljcm9tYXRjaEBeMi4xLjU6CisgIHZlcnNpb24g IjIuMy4xMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vbWljcm9tYXRjaC8tL21pY3JvbWF0Y2gtMi4zLjExLnRneiM4NjY3 N2M5N2QxNzIwYjM2MzQzMWQwNGQwZDE1MjkzYmQzOGMxNTY1IgorICBkZXBl bmRlbmNpZXM6CisgICAgYXJyLWRpZmYgIl4yLjAuMCIKKyAgICBhcnJheS11 bmlxdWUgIl4wLjIuMSIKKyAgICBicmFjZXMgIl4xLjguMiIKKyAgICBleHBh bmQtYnJhY2tldHMgIl4wLjEuNCIKKyAgICBleHRnbG9iICJeMC4zLjEiCisg ICAgZmlsZW5hbWUtcmVnZXggIl4yLjAuMCIKKyAgICBpcy1leHRnbG9iICJe MS4wLjAiCisgICAgaXMtZ2xvYiAiXjIuMC4xIgorICAgIGtpbmQtb2YgIl4z LjAuMiIKKyAgICBub3JtYWxpemUtcGF0aCAiXjIuMC4xIgorICAgIG9iamVj dC5vbWl0ICJeMi4wLjAiCisgICAgcGFyc2UtZ2xvYiAiXjMuMC40IgorICAg IHJlZ2V4LWNhY2hlICJeMC40LjIiCisKK21pbGxlci1yYWJpbkBeNC4wLjA6 CisgIHZlcnNpb24gIjQuMC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9taWxsZXItcmFiaW4vLS9taWxsZXItcmFiaW4t NC4wLjAudGd6IzRhNjJmYjFkNDI5MzNjMDU1ODM5ODJmNGM3MTZmNmZiOWU2 YzZkM2QiCisgIGRlcGVuZGVuY2llczoKKyAgICBibi5qcyAiXjQuMC4wIgor ICAgIGJyb3JhbmQgIl4xLjAuMSIKKworbWltZS1kYkB+MS4yNy4wOgorICB2 ZXJzaW9uICIxLjI3LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5 Lnlhcm5wa2cuY29tL21pbWUtZGIvLS9taW1lLWRiLTEuMjcuMC50Z3ojODIw ZjU3MjI5NmJiZDIwZWMyNWVkNTVlNWI1ZGU4NjllNTQzNmViMSIKKworbWlt ZS10eXBlc0BeMi4xLjEyLCBtaW1lLXR5cGVzQH4yLjEuMTEsIG1pbWUtdHlw ZXNAfjIuMS4xNSwgbWltZS10eXBlc0B+Mi4xLjc6CisgIHZlcnNpb24gIjIu MS4xNSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vbWltZS10eXBlcy8tL21pbWUtdHlwZXMtMi4xLjE1LnRneiNhNGViZjUw NjQwOTQ1NjkyMzdiOGNmNzAwNDY3NzZkMDlmYzkyYWVkIgorICBkZXBlbmRl bmNpZXM6CisgICAgbWltZS1kYiAifjEuMjcuMCIKKworbWltZUBeMS4zLjQ6 CisgIHZlcnNpb24gIjEuMy42IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9taW1lLy0vbWltZS0xLjMuNi50Z3ojNTkxZDg0 ZDM2NTNhNmIwYjRhM2I5ZGY4ZGU1YWE4MTA4ZTcyZTVlMCIKKworbWluaW1h bGlzdGljLWFzc2VydEBeMS4wLjA6CisgIHZlcnNpb24gIjEuMC4wIgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9taW5pbWFs aXN0aWMtYXNzZXJ0Ly0vbWluaW1hbGlzdGljLWFzc2VydC0xLjAuMC50Z3oj NzAyYmUyZGRhNmIzN2Y0ODM2YmNiM2Y1ZGI1NjY0MWI2NGExZDNkMyIKKwor bWluaW1hbGlzdGljLWNyeXB0by11dGlsc0BeMS4wLjAsIG1pbmltYWxpc3Rp Yy1jcnlwdG8tdXRpbHNAXjEuMC4xOgorICB2ZXJzaW9uICIxLjAuMSIKKyAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbWluaW1h bGlzdGljLWNyeXB0by11dGlscy8tL21pbmltYWxpc3RpYy1jcnlwdG8tdXRp bHMtMS4wLjEudGd6I2Y2YzAwYzFjMGIwODIyNDZlNWM0ZDk5ZGZiOGM3YzA4 M2IyYjU4MmEiCisKK21pbmltYXRjaEBeMy4wLjAsIG1pbmltYXRjaEBeMy4w LjIsIG1pbmltYXRjaEBeMy4wLjQ6CisgIHZlcnNpb24gIjMuMC40IgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9taW5pbWF0 Y2gvLS9taW5pbWF0Y2gtMy4wLjQudGd6IzUxNjZlMjg2NDU3ZjAzMzA2MDY0 YmU1NDk3ZThkYmIwYzNkMzIwODMiCisgIGRlcGVuZGVuY2llczoKKyAgICBi cmFjZS1leHBhbnNpb24gIl4xLjEuNyIKKworbWluaW1pc3RAMC4wLjgsIG1p bmltaXN0QH4wLjAuMToKKyAgdmVyc2lvbiAiMC4wLjgiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL21pbmltaXN0Ly0vbWlu aW1pc3QtMC4wLjgudGd6Izg1N2ZjYWJmYzMzOTdkMjYyNWI4MjI4MjYyZTg2 YWE3YTAxMWIwNWQiCisKK21pbmltaXN0QF4xLjEuMCwgbWluaW1pc3RAXjEu Mi4wOgorICB2ZXJzaW9uICIxLjIuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vbWluaW1pc3QvLS9taW5pbWlzdC0xLjIu MC50Z3ojYTM1MDA4YjIwZjQxMzgzZWVjMWZiOTE0ZjRjZDVkZjc5YTI2NDI4 NCIKKworbWtkaXJwQDAuNS4wOgorICB2ZXJzaW9uICIwLjUuMCIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbWtkaXJwLy0v bWtkaXJwLTAuNS4wLnRneiMxZDczMDc2YTZkZjk4NmNkOTM0NGUxNWU3MWZj YzA1YTRjOWFiZjEyIgorICBkZXBlbmRlbmNpZXM6CisgICAgbWluaW1pc3Qg IjAuMC44IgorCisibWtkaXJwQD49MC41IDAiLCBta2RpcnBAXjAuNS4wLCBt a2RpcnBAXjAuNS4xLCBta2RpcnBAfjAuNS4wOgorICB2ZXJzaW9uICIwLjUu MSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v bWtkaXJwLy0vbWtkaXJwLTAuNS4xLnRneiMzMDA1NzQzOGVhYzZjZjdmOGM0 NzY3ZjM4NjQ4ZDY2OTdkNzVjOTAzIgorICBkZXBlbmRlbmNpZXM6CisgICAg bWluaW1pc3QgIjAuMC44IgorCittb2R1bGUtZGVwc0BeNC4wLjg6CisgIHZl cnNpb24gIjQuMS4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9tb2R1bGUtZGVwcy8tL21vZHVsZS1kZXBzLTQuMS4xLnRn eiMyMzIxNTgzM2YxZGExM2ZkNjA2Y2NiODA4N2I0NDg1MmRjYjgyMWZkIgor ICBkZXBlbmRlbmNpZXM6CisgICAgSlNPTlN0cmVhbSAiXjEuMC4zIgorICAg IGJyb3dzZXItcmVzb2x2ZSAiXjEuNy4wIgorICAgIGNhY2hlZC1wYXRoLXJl bGF0aXZlICJeMS4wLjAiCisgICAgY29uY2F0LXN0cmVhbSAifjEuNS4wIgor ICAgIGRlZmluZWQgIl4xLjAuMCIKKyAgICBkZXRlY3RpdmUgIl40LjAuMCIK KyAgICBkdXBsZXhlcjIgIl4wLjEuMiIKKyAgICBpbmhlcml0cyAiXjIuMC4x IgorICAgIHBhcmVudHMgIl4xLjAuMCIKKyAgICByZWFkYWJsZS1zdHJlYW0g Il4yLjAuMiIKKyAgICByZXNvbHZlICJeMS4xLjMiCisgICAgc3RyZWFtLWNv bWJpbmVyMiAiXjEuMS4xIgorICAgIHN1YmFyZyAiXjEuMC4wIgorICAgIHRo cm91Z2gyICJeMi4wLjAiCisgICAgeHRlbmQgIl40LjAuMCIKKworbXNAMC43 LjE6CisgIHZlcnNpb24gIjAuNy4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9tcy8tL21zLTAuNy4xLnRneiM5Y2QxM2Mw M2FkYmZmMjViNjVlZmZkZTdjZTg2NGVlOTUyMDE3MDk4IgorCittc0AwLjcu MjoKKyAgdmVyc2lvbiAiMC43LjIiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL21zLy0vbXMtMC43LjIudGd6I2FlMjVjZjI1 MTJiMzg4NWExZDk1ZDdmMDM3ODY4ZDg0MzExMjQ3NjUiCisKK21zQDIuMC4w OgorICB2ZXJzaW9uICIyLjAuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vbXMvLS9tcy0yLjAuMC50Z3ojNTYwOGFlYWRm YzAwYmU2YzI5MDFkZjVmOTg2MTc4OGRlMGQ1OTdjOCIKKworbXV0ZS1zdHJl YW1AMC4wLjU6CisgIHZlcnNpb24gIjAuMC41IgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9tdXRlLXN0cmVhbS8tL211dGUt c3RyZWFtLTAuMC41LnRneiM4ZmJmYWJiMGE5OGEyNTNkMzE4NDMzMWY5ZThk ZWI3MzcyZmFjNmMwIgorCituYW5AXjIuMy4wOgorICB2ZXJzaW9uICIyLjYu MiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v bmFuLy0vbmFuLTIuNi4yLnRneiNlNGZmMzRlNmM5NWZkZmI1YWVjYzA4ZGU2 NTk2ZjQzNjA1YTdkYjQ1IgorCituYXR1cmFsLWNvbXBhcmVAXjEuNC4wOgor ICB2ZXJzaW9uICIxLjQuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vbmF0dXJhbC1jb21wYXJlLy0vbmF0dXJhbC1jb21w YXJlLTEuNC4wLnRneiM0YWJlYmZlZWQ3NTQxZjJjMjdhY2ZiMjliZGJiZDE1 YzhkNWJhNGY3IgorCituZWdvdGlhdG9yQDAuNi4xOgorICB2ZXJzaW9uICIw LjYuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vbmVnb3RpYXRvci8tL25lZ290aWF0b3ItMC42LjEudGd6IzJiMzI3MTg0 ZTg5OTIxMDExNzdiMjg1NjNmYjVlNzEwMmFjZDBjYTkiCisKK25vZGUtZmV0 Y2hAXjEuMC4xOgorICB2ZXJzaW9uICIxLjcuMSIKKyAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbm9kZS1mZXRjaC8tL25vZGUt ZmV0Y2gtMS43LjEudGd6Izg5OWNiM2QwYTNjOTJmOTUyYzQ3ZjFiODc2ZjRj OGFlYWJkNDAwZDUiCisgIGRlcGVuZGVuY2llczoKKyAgICBlbmNvZGluZyAi XjAuMS4xMSIKKyAgICBpcy1zdHJlYW0gIl4xLjAuMSIKKworbm9kZS1saWJz LWJyb3dzZXJAXjIuMC4wOgorICB2ZXJzaW9uICIyLjAuMCIKKyAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbm9kZS1saWJzLWJy b3dzZXIvLS9ub2RlLWxpYnMtYnJvd3Nlci0yLjAuMC50Z3ojYTNhNTllYzk3 MDI0OTg1YjQ2ZTk1ODM3OTY0NmY5NmM0YjYxNjY0NiIKKyAgZGVwZW5kZW5j aWVzOgorICAgIGFzc2VydCAiXjEuMS4xIgorICAgIGJyb3dzZXJpZnktemxp YiAiXjAuMS40IgorICAgIGJ1ZmZlciAiXjQuMy4wIgorICAgIGNvbnNvbGUt YnJvd3NlcmlmeSAiXjEuMS4wIgorICAgIGNvbnN0YW50cy1icm93c2VyaWZ5 ICJeMS4wLjAiCisgICAgY3J5cHRvLWJyb3dzZXJpZnkgIl4zLjExLjAiCisg ICAgZG9tYWluLWJyb3dzZXIgIl4xLjEuMSIKKyAgICBldmVudHMgIl4xLjAu MCIKKyAgICBodHRwcy1icm93c2VyaWZ5ICIwLjAuMSIKKyAgICBvcy1icm93 c2VyaWZ5ICJeMC4yLjAiCisgICAgcGF0aC1icm93c2VyaWZ5ICIwLjAuMCIK KyAgICBwcm9jZXNzICJeMC4xMS4wIgorICAgIHB1bnljb2RlICJeMS4yLjQi CisgICAgcXVlcnlzdHJpbmctZXMzICJeMC4yLjAiCisgICAgcmVhZGFibGUt c3RyZWFtICJeMi4wLjUiCisgICAgc3RyZWFtLWJyb3dzZXJpZnkgIl4yLjAu MSIKKyAgICBzdHJlYW0taHR0cCAiXjIuMy4xIgorICAgIHN0cmluZ19kZWNv ZGVyICJeMC4xMC4yNSIKKyAgICB0aW1lcnMtYnJvd3NlcmlmeSAiXjIuMC4y IgorICAgIHR0eS1icm93c2VyaWZ5ICIwLjAuMCIKKyAgICB1cmwgIl4wLjEx LjAiCisgICAgdXRpbCAiXjAuMTAuMyIKKyAgICB2bS1icm93c2VyaWZ5ICIw LjAuNCIKKworbm9kZS1wcmUtZ3lwQF4wLjYuMjk6CisgIHZlcnNpb24gIjAu Ni4zNiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vbm9kZS1wcmUtZ3lwLy0vbm9kZS1wcmUtZ3lwLTAuNi4zNi50Z3ojZGI2 MDQxMTJjYjc0ZTBkNDc3NTU0ZTliNTA1YjE3YWJkZGZhYjc4NiIKKyAgZGVw ZW5kZW5jaWVzOgorICAgIG1rZGlycCAiXjAuNS4xIgorICAgIG5vcHQgIl40 LjAuMSIKKyAgICBucG1sb2cgIl40LjAuMiIKKyAgICByYyAiXjEuMS43Igor ICAgIHJlcXVlc3QgIl4yLjgxLjAiCisgICAgcmltcmFmICJeMi42LjEiCisg ICAgc2VtdmVyICJeNS4zLjAiCisgICAgdGFyICJeMi4yLjEiCisgICAgdGFy LXBhY2sgIl4zLjQuMCIKKworbm9wdEBeNC4wLjE6CisgIHZlcnNpb24gIjQu MC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9ub3B0Ly0vbm9wdC00LjAuMS50Z3ojZDBkNDY4NWFmZDU0MTUxOTNjOGM3 NTA1NjAyZDBkMTdjZDY0NDc0ZCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGFi YnJldiAiMSIKKyAgICBvc2VudiAiXjAuMS40IgorCitub3JtYWxpemUtcGFj a2FnZS1kYXRhQF4yLjMuMjoKKyAgdmVyc2lvbiAiMi4zLjgiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL25vcm1hbGl6ZS1w YWNrYWdlLWRhdGEvLS9ub3JtYWxpemUtcGFja2FnZS1kYXRhLTIuMy44LnRn eiNkODE5ZWRhMmE5ZGVkYmQxZmZhNTYzZWE0MDcxZDkzNjc4MjI5NWJiIgor ICBkZXBlbmRlbmNpZXM6CisgICAgaG9zdGVkLWdpdC1pbmZvICJeMi4xLjQi CisgICAgaXMtYnVpbHRpbi1tb2R1bGUgIl4xLjAuMCIKKyAgICBzZW12ZXIg IjIgfHwgMyB8fCA0IHx8IDUiCisgICAgdmFsaWRhdGUtbnBtLXBhY2thZ2Ut bGljZW5zZSAiXjMuMC4xIgorCitub3JtYWxpemUtcGF0aEBeMi4wLjE6Cisg IHZlcnNpb24gIjIuMS4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9ub3JtYWxpemUtcGF0aC8tL25vcm1hbGl6ZS1wYXRo LTIuMS4xLnRneiMxYWIyOGI1NTZlMTk4MzYzYThjMWE2ZjdlNmZhMjAxMzdm ZTZhZWQ5IgorICBkZXBlbmRlbmNpZXM6CisgICAgcmVtb3ZlLXRyYWlsaW5n LXNlcGFyYXRvciAiXjEuMC4xIgorCitucG1sb2dAXjQuMC4yOgorICB2ZXJz aW9uICI0LjEuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vbnBtbG9nLy0vbnBtbG9nLTQuMS4wLnRneiNkYzU5YmVlODVm NjRmMDBlZDQyNGVmYjJhZjA3ODNkZjI1ZDFjMGI1IgorICBkZXBlbmRlbmNp ZXM6CisgICAgYXJlLXdlLXRoZXJlLXlldCAifjEuMS4yIgorICAgIGNvbnNv bGUtY29udHJvbC1zdHJpbmdzICJ+MS4xLjAiCisgICAgZ2F1Z2UgIn4yLjcu MyIKKyAgICBzZXQtYmxvY2tpbmcgIn4yLjAuMCIKKworbnRoLWNoZWNrQH4x LjAuMToKKyAgdmVyc2lvbiAiMS4wLjEiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL250aC1jaGVjay8tL250aC1jaGVjay0x LjAuMS50Z3ojOTkyOWFjZGY2MjhmYzJjNDEwOThkZWFiODJhYzU4MGNmMTQ5 YWFlNCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGJvb2xiYXNlICJ+MS4wLjAi CisKK251bWJlci1pcy1uYW5AXjEuMC4wOgorICB2ZXJzaW9uICIxLjAuMSIK KyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vbnVt YmVyLWlzLW5hbi8tL251bWJlci1pcy1uYW4tMS4wLjEudGd6IzA5N2I2MDJi NTM0MjJhNTIyYzFhZmI4NzkwMzE4MzM2OTQxYTAxMWQiCisKK29hdXRoLXNp Z25AfjAuOC4xOgorICB2ZXJzaW9uICIwLjguMiIKKyAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vb2F1dGgtc2lnbi8tL29hdXRo LXNpZ24tMC44LjIudGd6IzQ2YTZhYjdmMGFlYWQ4ZGVhZTllYzA1NjU3ODBi N2Q0ZWZlYjlkNDMiCisKK29iamVjdC1hc3NpZ25ANC4xLjA6CisgIHZlcnNp b24gIjQuMS4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9vYmplY3QtYXNzaWduLy0vb2JqZWN0LWFzc2lnbi00LjEuMC50 Z3ojN2EzYjNkMGU5ODA2M2Q0M2Y0YzAzZjJlOGFlNmNkNTFhODY4ODNhMCIK Kworb2JqZWN0LWFzc2lnbkBeNC4wLjAsIG9iamVjdC1hc3NpZ25AXjQuMC4x LCBvYmplY3QtYXNzaWduQF40LjEuMDoKKyAgdmVyc2lvbiAiNC4xLjEiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL29iamVj dC1hc3NpZ24vLS9vYmplY3QtYXNzaWduLTQuMS4xLnRneiMyMTA5YWRjNzk2 NTg4N2NmYzA1Y2JiZDQ0MmNhYzhiZmJiMzYwODYzIgorCitvYmplY3QtY29t cG9uZW50QDAuMC4zOgorICB2ZXJzaW9uICIwLjAuMyIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vb2JqZWN0LWNvbXBvbmVu dC8tL29iamVjdC1jb21wb25lbnQtMC4wLjMudGd6I2YwYzY5YWE1MGVmYzk1 Yjg2NmMxODZmNDAwYTMzNzY5Y2IyZjEyOTEiCisKK29iamVjdC1pc0BeMS4w LjE6CisgIHZlcnNpb24gIjEuMC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9vYmplY3QtaXMvLS9vYmplY3QtaXMtMS4w LjEudGd6IzBhYTYwZWM5OTg5YTBiM2VkNzk1Y2Y0ZDA2ZjYyY2YxYWQ2NTM5 YjYiCisKK29iamVjdC1rZXlzQF4xLjAuMTAsIG9iamVjdC1rZXlzQF4xLjAu ODoKKyAgdmVyc2lvbiAiMS4wLjExIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9vYmplY3Qta2V5cy8tL29iamVjdC1rZXlz LTEuMC4xMS50Z3ojYzU0NjAxNzc4YWQ1NjBmMTE0MmNlMGUwMWJjY2E4YjU2 ZDEzNDI2ZCIKKworb2JqZWN0LmFzc2lnbkBeNC4wLjQ6CisgIHZlcnNpb24g IjQuMC40IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9vYmplY3QuYXNzaWduLy0vb2JqZWN0LmFzc2lnbi00LjAuNC50Z3oj YjFjOWNjMDQ0ZWYxYjlmZTYzNjA2ZmMxNDFhYmJiMzJlMTQ3MzBjYyIKKyAg ZGVwZW5kZW5jaWVzOgorICAgIGRlZmluZS1wcm9wZXJ0aWVzICJeMS4xLjIi CisgICAgZnVuY3Rpb24tYmluZCAiXjEuMS4wIgorICAgIG9iamVjdC1rZXlz ICJeMS4wLjEwIgorCitvYmplY3QuZW50cmllc0BeMS4wLjM6CisgIHZlcnNp b24gIjEuMC40IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9vYmplY3QuZW50cmllcy8tL29iamVjdC5lbnRyaWVzLTEuMC40 LnRneiMxYmY5YTRkZDIyODhmNWIzM2YzYTk5M2QyNTc2NjFmMDVkMTYxYTVm IgorICBkZXBlbmRlbmNpZXM6CisgICAgZGVmaW5lLXByb3BlcnRpZXMgIl4x LjEuMiIKKyAgICBlcy1hYnN0cmFjdCAiXjEuNi4xIgorICAgIGZ1bmN0aW9u LWJpbmQgIl4xLjEuMCIKKyAgICBoYXMgIl4xLjAuMSIKKworb2JqZWN0Lm9t aXRAXjIuMC4wOgorICB2ZXJzaW9uICIyLjAuMSIKKyAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vb2JqZWN0Lm9taXQvLS9vYmpl Y3Qub21pdC0yLjAuMS50Z3ojMWE5Yzc0NDgyOWYzOWRiYjg1OGM3NmNhMzU3 OWFlMmE1NGViZDFmYSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGZvci1vd24g Il4wLjEuNCIKKyAgICBpcy1leHRlbmRhYmxlICJeMC4xLjEiCisKK29iamVj dC52YWx1ZXNAXjEuMC4zOgorICB2ZXJzaW9uICIxLjAuNCIKKyAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vb2JqZWN0LnZhbHVl cy8tL29iamVjdC52YWx1ZXMtMS4wLjQudGd6I2U1MjRkYTA5YjRmNjZmZjA1 ZGY0NTc1NDZlYzcyYWM5OWYxMzA2OWEiCisgIGRlcGVuZGVuY2llczoKKyAg ICBkZWZpbmUtcHJvcGVydGllcyAiXjEuMS4yIgorICAgIGVzLWFic3RyYWN0 ICJeMS42LjEiCisgICAgZnVuY3Rpb24tYmluZCAiXjEuMS4wIgorICAgIGhh cyAiXjEuMC4xIgorCitvbi1maW5pc2hlZEB+Mi4zLjA6CisgIHZlcnNpb24g IjIuMy4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9vbi1maW5pc2hlZC8tL29uLWZpbmlzaGVkLTIuMy4wLnRneiMyMGYx MzM2NDgxYjA4M2NkNzUzMzc5OTJhMTY5NzFhYTJkOTA2OTQ3IgorICBkZXBl bmRlbmNpZXM6CisgICAgZWUtZmlyc3QgIjEuMS4xIgorCitvbmNlQF4xLjMu MCwgb25jZUBeMS4zLjM6CisgIHZlcnNpb24gIjEuNC4wIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9vbmNlLy0vb25jZS0x LjQuMC50Z3ojNTgzYjFhYTc3NTk2MWQ0YjExM2FjMTdkOWM1MGJhZWY5ZGQ3 NmJkMSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIHdyYXBweSAiMSIKKworb25l dGltZUBeMS4wLjA6CisgIHZlcnNpb24gIjEuMS4wIgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9vbmV0aW1lLy0vb25ldGlt ZS0xLjEuMC50Z3ojYTFmNzgzOGY4MzE0YzUxNmYwNWVjZWZjYmM0Y2NmZTA0 YjRlZDc4OSIKKworb3B0aW1pc3RAXjAuNi4xOgorICB2ZXJzaW9uICIwLjYu MSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v b3B0aW1pc3QvLS9vcHRpbWlzdC0wLjYuMS50Z3ojZGEzZWE3NDY4NmZhMjFh MTlhMTExYzMyNmU5MGViMTVhMDE5NjY4NiIKKyAgZGVwZW5kZW5jaWVzOgor ICAgIG1pbmltaXN0ICJ+MC4wLjEiCisgICAgd29yZHdyYXAgIn4wLjAuMiIK Kworb3B0aW9uYXRvckBeMC44LjI6CisgIHZlcnNpb24gIjAuOC4yIgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9vcHRpb25h dG9yLy0vb3B0aW9uYXRvci0wLjguMi50Z3ojMzY0YzVlNDA5ZDNmNGQ2MzAx ZDZjMGI0YzA1YmJhNTAxODBhZWI2NCIKKyAgZGVwZW5kZW5jaWVzOgorICAg IGRlZXAtaXMgIn4wLjEuMyIKKyAgICBmYXN0LWxldmVuc2h0ZWluICJ+Mi4w LjQiCisgICAgbGV2biAifjAuMy4wIgorICAgIHByZWx1ZGUtbHMgIn4xLjEu MiIKKyAgICB0eXBlLWNoZWNrICJ+MC4zLjIiCisgICAgd29yZHdyYXAgIn4x LjAuMCIKKworb3B0aW9uc0A+PTAuMC41OgorICB2ZXJzaW9uICIwLjAuNiIK KyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vb3B0 aW9ucy8tL29wdGlvbnMtMC4wLjYudGd6I2VjMjJkMzEyODA2YmI1M2U3MzE3 NzNlN2NkYWVmY2YxYzY0MzEyOGYiCisKK29zLWJyb3dzZXJpZnlAXjAuMi4w OgorICB2ZXJzaW9uICIwLjIuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vb3MtYnJvd3NlcmlmeS8tL29zLWJyb3dzZXJp ZnktMC4yLjEudGd6IzYzZmM0Y2NlZTVkMmQ3NzYzZDI2YmJmODYwMTA3OGU2 YzJlMDA0NGYiCisKK29zLWJyb3dzZXJpZnlAfjAuMS4xOgorICB2ZXJzaW9u ICIwLjEuMiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vb3MtYnJvd3NlcmlmeS8tL29zLWJyb3dzZXJpZnktMC4xLjIudGd6 IzQ5Y2EwMjkzZTBiMTk1OTBhNWY1ZGUxMGM3ZjI2NWE2MTdkOGZlNTQiCisK K29zLWhvbWVkaXJAXjEuMC4wOgorICB2ZXJzaW9uICIxLjAuMiIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vb3MtaG9tZWRp ci8tL29zLWhvbWVkaXItMS4wLjIudGd6I2ZmYmM0OTg4MzM2ZTBlODMzZGUw YzE2OGM3ZWYxNTIxMjFhYTdmYjMiCisKK29zLWxvY2FsZUBeMS40LjA6Cisg IHZlcnNpb24gIjEuNC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9vcy1sb2NhbGUvLS9vcy1sb2NhbGUtMS40LjAudGd6 IzIwZjlmMTdhZTI5ZWQzNDVlOGJkZTU4M2IxM2QyMDA5ODAzYzE0ZDkiCisg IGRlcGVuZGVuY2llczoKKyAgICBsY2lkICJeMS4wLjAiCisKK29zLXNoaW1A XjAuMS4zOgorICB2ZXJzaW9uICIwLjEuMyIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vb3Mtc2hpbS8tL29zLXNoaW0tMC4x LjMudGd6IzZiNjJjMzc5MWNmNzkwOWVhMzVlZDQ2ZTE3NjU4YmI0MTdjYjM5 MTciCisKK29zLXRtcGRpckBeMS4wLjAsIG9zLXRtcGRpckBeMS4wLjEsIG9z LXRtcGRpckB+MS4wLjE6CisgIHZlcnNpb24gIjEuMC4yIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9vcy10bXBkaXIvLS9v cy10bXBkaXItMS4wLjIudGd6I2JiZTY3NDA2Yzc5YWE4NWM1Y2ZlYzc2NmZl NTczNDU1NWRmYTEyNzQiCisKK29zZW52QF4wLjEuNDoKKyAgdmVyc2lvbiAi MC4xLjQiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL29zZW52Ly0vb3NlbnYtMC4xLjQudGd6IzQyZmU2ZDU5NTNkZjA2Yzgw NjRiZTZmMTc2YzNkMDVhYWFhMzQ2NDQiCisgIGRlcGVuZGVuY2llczoKKyAg ICBvcy1ob21lZGlyICJeMS4wLjAiCisgICAgb3MtdG1wZGlyICJeMS4wLjAi CisKK291dHBpcGVAXjEuMS4wOgorICB2ZXJzaW9uICIxLjEuMSIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vb3V0cGlwZS8t L291dHBpcGUtMS4xLjEudGd6IzUwY2Y4NjE2MzY1ZTg3ZTAzMWUyOWE1ZWM5 MzM5YTNkYTQ3MjVmYTIiCisgIGRlcGVuZGVuY2llczoKKyAgICBzaGVsbC1x dW90ZSAiXjEuNC4yIgorCitwYWtvQH4wLjIuMDoKKyAgdmVyc2lvbiAiMC4y LjkiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L3Bha28vLS9wYWtvLTAuMi45LnRneiNmM2Y3NTIyZjRlZjc4MjM0OGRhODE2 MWJhZDllY2ZkNTFiZjgzYTc1IgorCitwYXJlbnRzQF4xLjAuMCwgcGFyZW50 c0BeMS4wLjE6CisgIHZlcnNpb24gIjEuMC4xIgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9wYXJlbnRzLy0vcGFyZW50cy0x LjAuMS50Z3ojZmVkZDRkMmJmMTkzYTc3NzQ1ZmU3MWUzNzFkNzNjMzMwN2Q5 Yzc1MSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIHBhdGgtcGxhdGZvcm0gIn4w LjExLjE1IgorCitwYXJzZS1hc24xQF41LjAuMDoKKyAgdmVyc2lvbiAiNS4x LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L3BhcnNlLWFzbjEvLS9wYXJzZS1hc24xLTUuMS4wLnRneiMzN2M0ZjliN2Vk M2FiNjVjNzQ4MTdiNWYyNDgwOTM3ZmJmOTdjNzEyIgorICBkZXBlbmRlbmNp ZXM6CisgICAgYXNuMS5qcyAiXjQuMC4wIgorICAgIGJyb3dzZXJpZnktYWVz ICJeMS4wLjAiCisgICAgY3JlYXRlLWhhc2ggIl4xLjEuMCIKKyAgICBldnBf Ynl0ZXN0b2tleSAiXjEuMC4wIgorICAgIHBia2RmMiAiXjMuMC4zIgorCitw YXJzZS1nbG9iQF4zLjAuNDoKKyAgdmVyc2lvbiAiMy4wLjQiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3BhcnNlLWdsb2Iv LS9wYXJzZS1nbG9iLTMuMC40LnRneiNiMmMzNzZjZmIxMWYzNTUxM2JhZGQx NzNlZjBiYjZlM2EzODgzOTFjIgorICBkZXBlbmRlbmNpZXM6CisgICAgZ2xv Yi1iYXNlICJeMC4zLjAiCisgICAgaXMtZG90ZmlsZSAiXjEuMC4wIgorICAg IGlzLWV4dGdsb2IgIl4xLjAuMCIKKyAgICBpcy1nbG9iICJeMi4wLjAiCisK K3BhcnNlLWpzb25AXjIuMi4wOgorICB2ZXJzaW9uICIyLjIuMCIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vcGFyc2UtanNv bi8tL3BhcnNlLWpzb24tMi4yLjAudGd6I2Y0ODBmNDA0MzRlZjgwNzQxZjg0 NjkwOTlmOGRlYTE4ZjU1YTRkYzkiCisgIGRlcGVuZGVuY2llczoKKyAgICBl cnJvci1leCAiXjEuMi4wIgorCitwYXJzZWpzb25AMC4wLjM6CisgIHZlcnNp b24gIjAuMC4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9wYXJzZWpzb24vLS9wYXJzZWpzb24tMC4wLjMudGd6I2FiN2Uz NzU5ZjIwOWVjZTk5NDM3OTczZjdkMGYxZjY0YWUwZTY0YWIiCisgIGRlcGVu ZGVuY2llczoKKyAgICBiZXR0ZXItYXNzZXJ0ICJ+MS4wLjAiCisKK3BhcnNl cXNAMC4wLjU6CisgIHZlcnNpb24gIjAuMC41IgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9wYXJzZXFzLy0vcGFyc2Vxcy0w LjAuNS50Z3ojZDUyMDhhMzczOGU0Njc2NmUyOTFiYTJlYTE3MzY4NDkyMWE4 Yjg5ZCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGJldHRlci1hc3NlcnQgIn4x LjAuMCIKKworcGFyc2V1cmlAMC4wLjU6CisgIHZlcnNpb24gIjAuMC41Igor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9wYXJz ZXVyaS8tL3BhcnNldXJpLTAuMC41LnRneiM4MDIwNGE1MGQ0ZGJiNzc5YmZk YzZlYmUyNzc4ZDkwZTRiY2UzMjBhIgorICBkZXBlbmRlbmNpZXM6CisgICAg YmV0dGVyLWFzc2VydCAifjEuMC4wIgorCitwYXJzZXVybEB+MS4zLjE6Cisg IHZlcnNpb24gIjEuMy4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9wYXJzZXVybC8tL3BhcnNldXJsLTEuMy4xLnRneiNj OGFiOGM5MjIzYmEzNDg4OGFhNjRhMjk3YjI4ODUzYmVjMThkYTU2IgorCitw YXRoLWJyb3dzZXJpZnlAMC4wLjAsIHBhdGgtYnJvd3NlcmlmeUB+MC4wLjA6 CisgIHZlcnNpb24gIjAuMC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9wYXRoLWJyb3dzZXJpZnkvLS9wYXRoLWJyb3dz ZXJpZnktMC4wLjAudGd6I2EwYjg3MDcyOWFhZTIxNDAwNWI3ZDUwMzJlYzJj YmJiMGZiNDQ1MWEiCisKK3BhdGgtZXhpc3RzQF4yLjAuMDoKKyAgdmVyc2lv biAiMi4xLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5w a2cuY29tL3BhdGgtZXhpc3RzLy0vcGF0aC1leGlzdHMtMi4xLjAudGd6IzBm ZWI2YzY0ZjBmYzUxOGQ5YTc1NGRkNWVmYjYyYzcwMjI3NjFmNGIiCisgIGRl cGVuZGVuY2llczoKKyAgICBwaW5raWUtcHJvbWlzZSAiXjIuMC4wIgorCitw YXRoLWlzLWFic29sdXRlQF4xLjAuMDoKKyAgdmVyc2lvbiAiMS4wLjEiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3BhdGgt aXMtYWJzb2x1dGUvLS9wYXRoLWlzLWFic29sdXRlLTEuMC4xLnRneiMxNzRi OTI2ODczNTUzNGZmYmM3YWNlNmJmNTNhNWE5ZTFiNWM1ZjVmIgorCitwYXRo LWlzLWluc2lkZUBeMS4wLjE6CisgIHZlcnNpb24gIjEuMC4yIgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9wYXRoLWlzLWlu c2lkZS8tL3BhdGgtaXMtaW5zaWRlLTEuMC4yLnRneiMzNjU0MTdkZWRlNDQ0 MzBkMWMxMWFmNjEwMjdmYWNmMDc0YmRmYzUzIgorCitwYXRoLXBhcnNlQF4x LjAuNToKKyAgdmVyc2lvbiAiMS4wLjUiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3BhdGgtcGFyc2UvLS9wYXRoLXBhcnNl LTEuMC41LnRneiMzYzFhZGY4NzFlYTljZDZjOTQzMWI2ZWEyYmQ3NGEwZmYw NTVjNGMxIgorCitwYXRoLXBsYXRmb3JtQH4wLjExLjE1OgorICB2ZXJzaW9u ICIwLjExLjE1IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9wYXRoLXBsYXRmb3JtLy0vcGF0aC1wbGF0Zm9ybS0wLjExLjE1 LnRneiNlODY0MjE3Zjc0YzM2ODUwZjA4NTJiNzhkYzdiZjdkNGE1NzIxYmYy IgorCitwYXRoLXR5cGVAXjEuMC4wOgorICB2ZXJzaW9uICIxLjEuMCIKKyAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vcGF0aC10 eXBlLy0vcGF0aC10eXBlLTEuMS4wLnRneiM1OWM0NGY3ZWU0OTFkYTcwNGRh NDE1ZGE1YTQwNzBiYTRmOGZlNDQxIgorICBkZXBlbmRlbmNpZXM6CisgICAg Z3JhY2VmdWwtZnMgIl40LjEuMiIKKyAgICBwaWZ5ICJeMi4wLjAiCisgICAg cGlua2llLXByb21pc2UgIl4yLjAuMCIKKworcGJrZGYyQF4zLjAuMzoKKyAg dmVyc2lvbiAiMy4wLjEyIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9wYmtkZjIvLS9wYmtkZjItMy4wLjEyLnRneiNiZTM2 Nzg1YzUwNjdlYTQ4ZDgwNmZmOTIzMjg4YzVmNzUwYjZiOGEyIgorICBkZXBl bmRlbmNpZXM6CisgICAgY3JlYXRlLWhhc2ggIl4xLjEuMiIKKyAgICBjcmVh dGUtaG1hYyAiXjEuMS40IgorICAgIHJpcGVtZDE2MCAiXjIuMC4xIgorICAg IHNhZmUtYnVmZmVyICJeNS4wLjEiCisgICAgc2hhLmpzICJeMi40LjgiCisK K3BlbmRAfjEuMi4wOgorICB2ZXJzaW9uICIxLjIuMCIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vcGVuZC8tL3BlbmQtMS4y LjAudGd6IzdhNTdlYjU1MGE2NzgzZjkxMTUzMzFmY2Y0NjYzZDVjOGUwMDdh NTAiCisKK3BlcmZvcm1hbmNlLW5vd0BeMC4yLjA6CisgIHZlcnNpb24gIjAu Mi4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9wZXJmb3JtYW5jZS1ub3cvLS9wZXJmb3JtYW5jZS1ub3ctMC4yLjAudGd6 IzMzZWYzMGM1Yzc3ZDRlYTIxYzVhNTM4NjlkOTFiNTZkOGYyNTU1ZTUiCisK K3BoYW50b21qcy1wcmVidWlsdEBeMi4xLjc6CisgIHZlcnNpb24gIjIuMS4x NCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v cGhhbnRvbWpzLXByZWJ1aWx0Ly0vcGhhbnRvbWpzLXByZWJ1aWx0LTIuMS4x NC50Z3ojZDUzZDMxMWZjZmI3ZDFkMDhkZGIyNDAxNDU1OGYxMTg4YzUxNmRh MCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGVzNi1wcm9taXNlICJ+NC4wLjMi CisgICAgZXh0cmFjdC16aXAgIn4xLjUuMCIKKyAgICBmcy1leHRyYSAifjEu MC4wIgorICAgIGhhc2hhICJ+Mi4yLjAiCisgICAga2V3ICJ+MC43LjAiCisg ICAgcHJvZ3Jlc3MgIn4xLjEuOCIKKyAgICByZXF1ZXN0ICJ+Mi43OS4wIgor ICAgIHJlcXVlc3QtcHJvZ3Jlc3MgIn4yLjAuMSIKKyAgICB3aGljaCAifjEu Mi4xMCIKKworcGlmeUBeMi4wLjA6CisgIHZlcnNpb24gIjIuMy4wIgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9waWZ5Ly0v cGlmeS0yLjMuMC50Z3ojZWQxNDFhNmFjMDQzYTg0OWVhNTg4NDk4ZTdkY2E4 YjE1MzMwZTkwYyIKKworcGlua2llLXByb21pc2VAXjIuMC4wOgorICB2ZXJz aW9uICIyLjAuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vcGlua2llLXByb21pc2UvLS9waW5raWUtcHJvbWlzZS0yLjAu MS50Z3ojMjEzNWQ2ZGZhN2EzNThjMDY5YWM5YjE3ODc3NjI4ODIyODQ1MGZm YSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIHBpbmtpZSAiXjIuMC4wIgorCitw aW5raWVAXjIuMC4wOgorICB2ZXJzaW9uICIyLjAuNCIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vcGlua2llLy0vcGlua2ll LTIuMC40LnRneiM3MjU1NmI4MGNmYTBkNDhhOTc0ZTgwZTc3MjQ4ZTgwZWQ0 ZjdmODcwIgorCitwa2ctZGlyQF4xLjAuMDoKKyAgdmVyc2lvbiAiMS4wLjAi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3Br Zy1kaXIvLS9wa2ctZGlyLTEuMC4wLnRneiM3YTRiNTA4YThkNWJiMmQ2Mjlk NDQ3MDU2ZmY0ZTljOTMxNGNmM2Q0IgorICBkZXBlbmRlbmNpZXM6CisgICAg ZmluZC11cCAiXjEuMC4wIgorCitwbHVyYWxpemVAXjEuMi4xOgorICB2ZXJz aW9uICIxLjIuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vcGx1cmFsaXplLy0vcGx1cmFsaXplLTEuMi4xLnRneiNkMWEy MTQ4M2ZkMjJiYjQxZTU4YTEyZmEzNDIxODIzMTQwODk3YzQ1IgorCitwcmVs dWRlLWxzQH4xLjEuMjoKKyAgdmVyc2lvbiAiMS4xLjIiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3ByZWx1ZGUtbHMvLS9w cmVsdWRlLWxzLTEuMS4yLnRneiMyMTkzMmE1NDlmNWU1MmZmZDlhODI3ZjU3 MGUwNGJlNjJhOTdkYTU0IgorCitwcmVzZXJ2ZUBeMC4yLjA6CisgIHZlcnNp b24gIjAuMi4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9wcmVzZXJ2ZS8tL3ByZXNlcnZlLTAuMi4wLnRneiM4MTVlZDFm NmViYzY1OTI2Zjg2NWIzMTBjMDcxM2JjYjMzMTVjZTRiIgorCitwcml2YXRl QF4wLjEuNjoKKyAgdmVyc2lvbiAiMC4xLjciCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3ByaXZhdGUvLS9wcml2YXRlLTAu MS43LnRneiM2OGNlNWU4YTFlZjBhMjNiYjU3MGNjMjg1MzdiNTMzMmFiYTYz ZWYxIgorCitwcm9jZXNzLW5leHRpY2stYXJnc0B+MS4wLjY6CisgIHZlcnNp b24gIjEuMC43IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9wcm9jZXNzLW5leHRpY2stYXJncy8tL3Byb2Nlc3MtbmV4dGlj ay1hcmdzLTEuMC43LnRneiMxNTBlMjBiNzU2NTkwYWQzZjkxMDkzZjI1YTRm MmFkOGJmZjMwYmEzIgorCitwcm9jZXNzQF4wLjExLjAsIHByb2Nlc3NAfjAu MTEuMDoKKyAgdmVyc2lvbiAiMC4xMS4xMCIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vcHJvY2Vzcy8tL3Byb2Nlc3MtMC4x MS4xMC50Z3ojNzMzMjMwMGU4NDAxNjFiZGEzZTY5YTFkMWQ5MWE3ZDRiYzE2 ZjE4MiIKKworcHJvZ3Jlc3NAXjEuMS44LCBwcm9ncmVzc0B+MS4xLjg6Cisg IHZlcnNpb24gIjEuMS44IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9wcm9ncmVzcy8tL3Byb2dyZXNzLTEuMS44LnRneiNl MjYwYzc4ZjYxNjFjZGQ5YjBlNTZjYzNlMGE4NWRlMTdjN2E1N2JlIgorCitw cm9taXNlQF43LjEuMToKKyAgdmVyc2lvbiAiNy4xLjEiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3Byb21pc2UvLS9wcm9t aXNlLTcuMS4xLnRneiM0ODk2NTRjNjkyNjE2YjhhYTU1YjA3MjRmYTgwOWJi N2RiNDljNWJmIgorICBkZXBlbmRlbmNpZXM6CisgICAgYXNhcCAifjIuMC4z IgorCitwcm9wLXR5cGVzQF4xNS41LjQ6CisgIHZlcnNpb24gIjE1LjUuMTAi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3By b3AtdHlwZXMvLS9wcm9wLXR5cGVzLTE1LjUuMTAudGd6IzI3OTdkZmMzMTI2 MTgyZTNhOTVlM2RmYmIyZTg5M2RkZDc0NTYxNTQiCisgIGRlcGVuZGVuY2ll czoKKyAgICBmYmpzICJeMC44LjkiCisgICAgbG9vc2UtZW52aWZ5ICJeMS4z LjEiCisKK3ByckB+MC4wLjA6CisgIHZlcnNpb24gIjAuMC4wIgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9wcnIvLS9wcnIt MC4wLjAudGd6IzFhODRiODU5MDgzMjU1MDE0MTE4NTNkMDA4MWVlM2ZhODZl MjkyNmEiCisKK3B1YmxpYy1lbmNyeXB0QF40LjAuMDoKKyAgdmVyc2lvbiAi NC4wLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL3B1YmxpYy1lbmNyeXB0Ly0vcHVibGljLWVuY3J5cHQtNC4wLjAudGd6 IzM5ZjY5OWYzYTQ2NTYwZGQ1ZWJhY2JjYTY5M2NhZjdjNjVjMThjYzYiCisg IGRlcGVuZGVuY2llczoKKyAgICBibi5qcyAiXjQuMS4wIgorICAgIGJyb3dz ZXJpZnktcnNhICJeNC4wLjAiCisgICAgY3JlYXRlLWhhc2ggIl4xLjEuMCIK KyAgICBwYXJzZS1hc24xICJeNS4wLjAiCisgICAgcmFuZG9tYnl0ZXMgIl4y LjAuMSIKKworcHVueWNvZGVAMS4zLjI6CisgIHZlcnNpb24gIjEuMy4yIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9wdW55 Y29kZS8tL3B1bnljb2RlLTEuMy4yLnRneiM5NjUzYTAzNmZiN2MxZWU0MjM0 MmYyMzI1Y2NlZWZlYTM5MjZjNDhkIgorCitwdW55Y29kZUBeMS4yLjQsIHB1 bnljb2RlQF4xLjMuMiwgcHVueWNvZGVAXjEuNC4xOgorICB2ZXJzaW9uICIx LjQuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vcHVueWNvZGUvLS9wdW55Y29kZS0xLjQuMS50Z3ojYzBkNWE2M2IyNzE4 ODAwYWQ4ZTFlYjBmYTUyNjljODRkZDQxODQ1ZSIKKworcWpvYnNAXjEuMS40 OgorICB2ZXJzaW9uICIxLjEuNSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vcWpvYnMvLS9xam9icy0xLjEuNS50Z3ojNjU5 ZGU5ZjJjZjhkY2MyN2ExNDgxMjc2ZjIwNTM3NzI3MjM4MmU3MyIKKworcXNA Ni40LjAsIHFzQH42LjQuMDoKKyAgdmVyc2lvbiAiNi40LjAiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3FzLy0vcXMtNi40 LjAudGd6IzEzZTI2ZDI4YWQ2YjBmZmFhOTEzMTJjZDNiZjcwOGVkMzUxZTcy MzMiCisKK3FzQH42LjMuMDoKKyAgdmVyc2lvbiAiNi4zLjIiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3FzLy0vcXMtNi4z LjIudGd6I2U3NWJkNWY2ZTI2ODEyMmEyYTBlMGJkYTYzMGIyNTUwYzE2NjUw MmMiCisKK3F1ZXJ5c3RyaW5nLWVzM0BeMC4yLjAsIHF1ZXJ5c3RyaW5nLWVz M0B+MC4yLjA6CisgIHZlcnNpb24gIjAuMi4xIgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9xdWVyeXN0cmluZy1lczMvLS9x dWVyeXN0cmluZy1lczMtMC4yLjEudGd6IzllYzYxZjc5MDQ5ODc1NzA3ZDY5 NDE0NTk2ZmQ5MDdhNGQ3MTFlNzMiCisKK3F1ZXJ5c3RyaW5nQDAuMi4wOgor ICB2ZXJzaW9uICIwLjIuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vcXVlcnlzdHJpbmcvLS9xdWVyeXN0cmluZy0wLjIu MC50Z3ojYjIwOTg0OTIwM2JiMjVkZjgyMGRhNzU2ZTc0NzAwNTg3ODUyMTYy MCIKKworcmFuZG9tYXRpY0BeMS4xLjM6CisgIHZlcnNpb24gIjEuMS42Igor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9yYW5k b21hdGljLy0vcmFuZG9tYXRpYy0xLjEuNi50Z3ojMTEwZGNhYmZmMzk3ZTlk Y2ZmN2MwNzg5Y2NjMGE0OWFkZjFlYzViYiIKKyAgZGVwZW5kZW5jaWVzOgor ICAgIGlzLW51bWJlciAiXjIuMC4yIgorICAgIGtpbmQtb2YgIl4zLjAuMiIK KworcmFuZG9tYnl0ZXNAXjIuMC4wLCByYW5kb21ieXRlc0BeMi4wLjE6Cisg IHZlcnNpb24gIjIuMC40IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9yYW5kb21ieXRlcy8tL3JhbmRvbWJ5dGVzLTIuMC40 LnRneiM5NTUxZGYyMDg0MjJjOGY4MGViNThlMjMyNmRkMGI4NDBmZjIyZWZk IgorICBkZXBlbmRlbmNpZXM6CisgICAgc2FmZS1idWZmZXIgIl41LjAuMSIK KworcmFuZ2UtcGFyc2VyQF4xLjAuMywgcmFuZ2UtcGFyc2VyQF4xLjIuMDoK KyAgdmVyc2lvbiAiMS4yLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL3JhbmdlLXBhcnNlci8tL3JhbmdlLXBhcnNlci0x LjIuMC50Z3ojZjQ5YmU2YjQ4Nzg5NGRkYzQwZGNjOTRhMzIyZjYxMTA5MmUw MGQ1ZSIKKworcmF3LWJvZHlAfjIuMi4wOgorICB2ZXJzaW9uICIyLjIuMCIK KyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vcmF3 LWJvZHkvLS9yYXctYm9keS0yLjIuMC50Z3ojOTk0OTc2Y2Y2YTUwOTZhNDEx NjI4NDA0OTJmMGJkYzVkNmU3ZmI5NiIKKyAgZGVwZW5kZW5jaWVzOgorICAg IGJ5dGVzICIyLjQuMCIKKyAgICBpY29udi1saXRlICIwLjQuMTUiCisgICAg dW5waXBlICIxLjAuMCIKKworcmNAXjEuMS43OgorICB2ZXJzaW9uICIxLjIu MSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v cmMvLS9yYy0xLjIuMS50Z3ojMmUwM2U4ZTQyZWU0NTBiOGNiM2RjZTY1YmUx YmY4OTc0ZTFkZmQ5NSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGRlZXAtZXh0 ZW5kICJ+MC40LjAiCisgICAgaW5pICJ+MS4zLjAiCisgICAgbWluaW1pc3Qg Il4xLjIuMCIKKyAgICBzdHJpcC1qc29uLWNvbW1lbnRzICJ+Mi4wLjEiCisK K3JlYWN0LWFkZG9ucy10ZXN0LXV0aWxzQH4xNS40LjI6CisgIHZlcnNpb24g IjE1LjQuMiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vcmVhY3QtYWRkb25zLXRlc3QtdXRpbHMvLS9yZWFjdC1hZGRvbnMt dGVzdC11dGlscy0xNS40LjIudGd6IzkzYmNhYTcxOGZjYWU3MzYwZDQyZThm YjFjMDk3NTZjYzM2MzAyYTIiCisgIGRlcGVuZGVuY2llczoKKyAgICBmYmpz ICJeMC44LjQiCisgICAgb2JqZWN0LWFzc2lnbiAiXjQuMS4wIgorCityZWFj dC1kb21AfjE1LjQuMjoKKyAgdmVyc2lvbiAiMTUuNC4yIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9yZWFjdC1kb20vLS9y ZWFjdC1kb20tMTUuNC4yLnRneiMwMTUzNjNmMDViMGExZmQ1MmFlOWVmZGQz YTAwNjBkOTA2OTUyMDhmIgorICBkZXBlbmRlbmNpZXM6CisgICAgZmJqcyAi XjAuOC4xIgorICAgIGxvb3NlLWVudmlmeSAiXjEuMS4wIgorICAgIG9iamVj dC1hc3NpZ24gIl40LjEuMCIKKworcmVhY3RAfjE1LjQuMjoKKyAgdmVyc2lv biAiMTUuNC4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9yZWFjdC8tL3JlYWN0LTE1LjQuMi50Z3ojNDFmNzk5MWIyNjE4 NTM5MmJhOWJhZTk2Yzg4ODllN2UwMTgzOTdlZiIKKyAgZGVwZW5kZW5jaWVz OgorICAgIGZianMgIl4wLjguNCIKKyAgICBsb29zZS1lbnZpZnkgIl4xLjEu MCIKKyAgICBvYmplY3QtYXNzaWduICJeNC4xLjAiCisKK3JlYWQtb25seS1z dHJlYW1AXjIuMC4wOgorICB2ZXJzaW9uICIyLjAuMCIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vcmVhZC1vbmx5LXN0cmVh bS8tL3JlYWQtb25seS1zdHJlYW0tMi4wLjAudGd6IzI3MjRmZDZhODExM2Q3 Mzc2NGFjMjg4ZDQzODYyNzBjMWRiZjE3ZjAiCisgIGRlcGVuZGVuY2llczoK KyAgICByZWFkYWJsZS1zdHJlYW0gIl4yLjAuMiIKKworcmVhZC1wa2ctdXBA XjEuMC4xOgorICB2ZXJzaW9uICIxLjAuMSIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vcmVhZC1wa2ctdXAvLS9yZWFkLXBr Zy11cC0xLjAuMS50Z3ojOWQ2M2MxMzI3NmMwNjU5MThkNTdmMDAyYTU3ZjQw YTFiNjQzZmIwMiIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGZpbmQtdXAgIl4x LjAuMCIKKyAgICByZWFkLXBrZyAiXjEuMC4wIgorCityZWFkLXBrZ0BeMS4w LjA6CisgIHZlcnNpb24gIjEuMS4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9yZWFkLXBrZy8tL3JlYWQtcGtnLTEuMS4w LnRneiNmNWZmYWE1ZWNkMjljYjMxYzA0NzRiY2E3ZDc1NmI2YmIyOWUzZjI4 IgorICBkZXBlbmRlbmNpZXM6CisgICAgbG9hZC1qc29uLWZpbGUgIl4xLjAu MCIKKyAgICBub3JtYWxpemUtcGFja2FnZS1kYXRhICJeMi4zLjIiCisgICAg cGF0aC10eXBlICJeMS4wLjAiCisKK3JlYWRhYmxlLXN0cmVhbUBeMi4wLjEs IHJlYWRhYmxlLXN0cmVhbUBeMi4wLjIsIHJlYWRhYmxlLXN0cmVhbUBeMi4w LjUsIHJlYWRhYmxlLXN0cmVhbUBeMi4wLjYsIHJlYWRhYmxlLXN0cmVhbUBe Mi4xLjQsIHJlYWRhYmxlLXN0cmVhbUBeMi4xLjUsIHJlYWRhYmxlLXN0cmVh bUBeMi4yLjIsIHJlYWRhYmxlLXN0cmVhbUBeMi4yLjY6CisgIHZlcnNpb24g IjIuMi4xMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vcmVhZGFibGUtc3RyZWFtLy0vcmVhZGFibGUtc3RyZWFtLTIuMi4x MS50Z3ojMDc5NmIzMWY4ZDc2ODgwMDdmZjBiOTNhODA4OGQzNGFhMTdjMGY3 MiIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGNvcmUtdXRpbC1pcyAifjEuMC4w IgorICAgIGluaGVyaXRzICJ+Mi4wLjEiCisgICAgaXNhcnJheSAifjEuMC4w IgorICAgIHByb2Nlc3MtbmV4dGljay1hcmdzICJ+MS4wLjYiCisgICAgc2Fm ZS1idWZmZXIgIn41LjAuMSIKKyAgICBzdHJpbmdfZGVjb2RlciAifjEuMC4w IgorICAgIHV0aWwtZGVwcmVjYXRlICJ+MS4wLjEiCisKK3JlYWRhYmxlLXN0 cmVhbUB+MS4wLjI6CisgIHZlcnNpb24gIjEuMC4zNCIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vcmVhZGFibGUtc3RyZWFt Ly0vcmVhZGFibGUtc3RyZWFtLTEuMC4zNC50Z3ojMTI1ODIwZTM0YmM4NDJk MmYyYWFhZmFmZTRjMjkxNmVlMzJjMTU3YyIKKyAgZGVwZW5kZW5jaWVzOgor ICAgIGNvcmUtdXRpbC1pcyAifjEuMC4wIgorICAgIGluaGVyaXRzICJ+Mi4w LjEiCisgICAgaXNhcnJheSAiMC4wLjEiCisgICAgc3RyaW5nX2RlY29kZXIg In4wLjEwLngiCisKK3JlYWRhYmxlLXN0cmVhbUB+Mi4wLjA6CisgIHZlcnNp b24gIjIuMC42IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9yZWFkYWJsZS1zdHJlYW0vLS9yZWFkYWJsZS1zdHJlYW0tMi4w LjYudGd6IzhmOTAzNDFlNjhhNTNjY2M5Mjg3ODhkYWNmY2QxMWIzNmViOWI3 OGUiCisgIGRlcGVuZGVuY2llczoKKyAgICBjb3JlLXV0aWwtaXMgIn4xLjAu MCIKKyAgICBpbmhlcml0cyAifjIuMC4xIgorICAgIGlzYXJyYXkgIn4xLjAu MCIKKyAgICBwcm9jZXNzLW5leHRpY2stYXJncyAifjEuMC42IgorICAgIHN0 cmluZ19kZWNvZGVyICJ+MC4xMC54IgorICAgIHV0aWwtZGVwcmVjYXRlICJ+ MS4wLjEiCisKK3JlYWRkaXJwQF4yLjAuMDoKKyAgdmVyc2lvbiAiMi4xLjAi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3Jl YWRkaXJwLy0vcmVhZGRpcnAtMi4xLjAudGd6IzRlZDBhZDA2MGRmMzA3MzMw MGM0ODQ0MDM3M2Y3MmQxY2M2NDJkNzgiCisgIGRlcGVuZGVuY2llczoKKyAg ICBncmFjZWZ1bC1mcyAiXjQuMS4yIgorICAgIG1pbmltYXRjaCAiXjMuMC4y IgorICAgIHJlYWRhYmxlLXN0cmVhbSAiXjIuMC4yIgorICAgIHNldC1pbW1l ZGlhdGUtc2hpbSAiXjEuMC4xIgorCityZWFkbGluZTJAXjEuMC4xOgorICB2 ZXJzaW9uICIxLjAuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vcmVhZGxpbmUyLy0vcmVhZGxpbmUyLTEuMC4xLnRneiM0 MTA1OTYwOGZmYzE1NDc1N2I3MTVkOTk4OWQxOTlmZmJmMzcyZTM1IgorICBk ZXBlbmRlbmNpZXM6CisgICAgY29kZS1wb2ludC1hdCAiXjEuMC4wIgorICAg IGlzLWZ1bGx3aWR0aC1jb2RlLXBvaW50ICJeMS4wLjAiCisgICAgbXV0ZS1z dHJlYW0gIjAuMC41IgorCityZWNob2lyQF4wLjYuMjoKKyAgdmVyc2lvbiAi MC42LjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL3JlY2hvaXIvLS9yZWNob2lyLTAuNi4yLnRneiM4NTIwNGI1NGRiYTgy ZDU3NDJlMjhjOTY3NTZlZjQzYWY1MGUzMzg0IgorICBkZXBlbmRlbmNpZXM6 CisgICAgcmVzb2x2ZSAiXjEuMS42IgorCityZWdlbmVyYXRlQF4xLjIuMToK KyAgdmVyc2lvbiAiMS4zLjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL3JlZ2VuZXJhdGUvLS9yZWdlbmVyYXRlLTEuMy4y LnRneiNkMTk0MWM2N2JhZDQzN2UxYmU3NjQzM2FkZDViMzg1Zjk1YjE5MjYw IgorCityZWdlbmVyYXRvci1ydW50aW1lQF4wLjEwLjA6CisgIHZlcnNpb24g IjAuMTAuNSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBr Zy5jb20vcmVnZW5lcmF0b3ItcnVudGltZS8tL3JlZ2VuZXJhdG9yLXJ1bnRp bWUtMC4xMC41LnRneiMzMzZjM2VmYzEyMjBhZGNlZGRhMmM5ZmFiNjdiNWE3 OTU1YTMzNjU4IgorCityZWdlbmVyYXRvci10cmFuc2Zvcm1AMC45LjExOgor ICB2ZXJzaW9uICIwLjkuMTEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL3JlZ2VuZXJhdG9yLXRyYW5zZm9ybS8tL3JlZ2Vu ZXJhdG9yLXRyYW5zZm9ybS0wLjkuMTEudGd6IzNhN2QwNjc1MjBjYjdiNzE3 Njc2OWViNWZmODY4NjkxYmVmZTEyODMiCisgIGRlcGVuZGVuY2llczoKKyAg ICBiYWJlbC1ydW50aW1lICJeNi4xOC4wIgorICAgIGJhYmVsLXR5cGVzICJe Ni4xOS4wIgorICAgIHByaXZhdGUgIl4wLjEuNiIKKworcmVnZXgtY2FjaGVA XjAuNC4yOgorICB2ZXJzaW9uICIwLjQuMyIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vcmVnZXgtY2FjaGUvLS9yZWdleC1j YWNoZS0wLjQuMy50Z3ojOWIxYTZjMzVkNGQwZGZjZWY1NzExYWU2NTFlOGU5 ZDNkNzExNDE0NSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGlzLWVxdWFsLXNo YWxsb3cgIl4wLjEuMyIKKyAgICBpcy1wcmltaXRpdmUgIl4yLjAuMCIKKwor cmVnZXhwdS1jb3JlQF4yLjAuMDoKKyAgdmVyc2lvbiAiMi4wLjAiCisgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3JlZ2V4cHUt Y29yZS8tL3JlZ2V4cHUtY29yZS0yLjAuMC50Z3ojNDlkMDM4ODM3YjhkY2Y4 YmZhNWI5YTQyMTM5OTM4ZTZlYTJhZTI0MCIKKyAgZGVwZW5kZW5jaWVzOgor ICAgIHJlZ2VuZXJhdGUgIl4xLjIuMSIKKyAgICByZWdqc2dlbiAiXjAuMi4w IgorICAgIHJlZ2pzcGFyc2VyICJeMC4xLjQiCisKK3JlZ2pzZ2VuQF4wLjIu MDoKKyAgdmVyc2lvbiAiMC4yLjAiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL3JlZ2pzZ2VuLy0vcmVnanNnZW4tMC4yLjAu dGd6IzZjMDE2YWRlYWM1NTRmNzU4MjNmZTM3YWMwNWI5MmQ1YTRlZGIxZjci CisKK3JlZ2pzcGFyc2VyQF4wLjEuNDoKKyAgdmVyc2lvbiAiMC4xLjUiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3JlZ2pz cGFyc2VyLy0vcmVnanNwYXJzZXItMC4xLjUudGd6IzdlZThmODRkYzZmYTc5 MmQzZmQwYWUyMjhkMjRiZDk0OWVhZDIwNWMiCisgIGRlcGVuZGVuY2llczoK KyAgICBqc2VzYyAifjAuNS4wIgorCityZW1vdmUtdHJhaWxpbmctc2VwYXJh dG9yQF4xLjAuMToKKyAgdmVyc2lvbiAiMS4wLjIiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3JlbW92ZS10cmFpbGluZy1z ZXBhcmF0b3IvLS9yZW1vdmUtdHJhaWxpbmctc2VwYXJhdG9yLTEuMC4yLnRn eiM2OWIwNjJkOTc4NzI3YWQxNGRjNmI1NmJhNGFiNzcyZmQ4ZDcwNTExIgor CityZXBlYXQtZWxlbWVudEBeMS4xLjI6CisgIHZlcnNpb24gIjEuMS4yIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9yZXBl YXQtZWxlbWVudC8tL3JlcGVhdC1lbGVtZW50LTEuMS4yLnRneiNlZjA4OWEx NzhkMTQ4M2JhYWU0ZDkzZWI5OGI0ZjllNGUxMWQ5OTBhIgorCityZXBlYXQt c3RyaW5nQF4wLjIuMjoKKyAgdmVyc2lvbiAiMC4yLjIiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3JlcGVhdC1zdHJpbmcv LS9yZXBlYXQtc3RyaW5nLTAuMi4yLnRneiNjN2E4ZDMyMzYwNjgzNjIwNTlh N2U0NjUxZmM2ODg0ZThiMWZiNGFlIgorCityZXBlYXQtc3RyaW5nQF4xLjUu MjoKKyAgdmVyc2lvbiAiMS42LjEiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL3JlcGVhdC1zdHJpbmcvLS9yZXBlYXQtc3Ry aW5nLTEuNi4xLnRneiM4ZGNhZTQ3MGUxYzg4YWJjMmQ2MDBmZmY0YTc3NjI4 NmRhNzVlNjM3IgorCityZXBlYXRpbmdAXjIuMC4wOgorICB2ZXJzaW9uICIy LjAuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vcmVwZWF0aW5nLy0vcmVwZWF0aW5nLTIuMC4xLnRneiM1MjE0YzUzYTky NmQzNTUyNzA3NTI3ZmJhYjQxNWRiYzA4ZDA2ZGRhIgorICBkZXBlbmRlbmNp ZXM6CisgICAgaXMtZmluaXRlICJeMS4wLjAiCisKK3JlcXVlc3QtcHJvZ3Jl c3NAfjIuMC4xOgorICB2ZXJzaW9uICIyLjAuMSIKKyAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vcmVxdWVzdC1wcm9ncmVzcy8t L3JlcXVlc3QtcHJvZ3Jlc3MtMi4wLjEudGd6IzVkMzZiYjU3OTYxYzY3M2Fh NWI3ODhkYmM4MTQxZmRmMjNiNDRlMDgiCisgIGRlcGVuZGVuY2llczoKKyAg ICB0aHJvdHRsZWl0ICJeMS4wLjAiCisKK3JlcXVlc3RAXjIuODEuMDoKKyAg dmVyc2lvbiAiMi44MS4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9yZXF1ZXN0Ly0vcmVxdWVzdC0yLjgxLjAudGd6I2M2 OTI4OTQ2YTBlMDZjNWY4ZDZmOGE5MzMzNDY5ZmZkYTQ2Mjk4YTAiCisgIGRl cGVuZGVuY2llczoKKyAgICBhd3Mtc2lnbjIgIn4wLjYuMCIKKyAgICBhd3M0 ICJeMS4yLjEiCisgICAgY2FzZWxlc3MgIn4wLjEyLjAiCisgICAgY29tYmlu ZWQtc3RyZWFtICJ+MS4wLjUiCisgICAgZXh0ZW5kICJ+My4wLjAiCisgICAg Zm9yZXZlci1hZ2VudCAifjAuNi4xIgorICAgIGZvcm0tZGF0YSAifjIuMS4x IgorICAgIGhhci12YWxpZGF0b3IgIn40LjIuMSIKKyAgICBoYXdrICJ+My4x LjMiCisgICAgaHR0cC1zaWduYXR1cmUgIn4xLjEuMCIKKyAgICBpcy10eXBl ZGFycmF5ICJ+MS4wLjAiCisgICAgaXNzdHJlYW0gIn4wLjEuMiIKKyAgICBq c29uLXN0cmluZ2lmeS1zYWZlICJ+NS4wLjEiCisgICAgbWltZS10eXBlcyAi fjIuMS43IgorICAgIG9hdXRoLXNpZ24gIn4wLjguMSIKKyAgICBwZXJmb3Jt YW5jZS1ub3cgIl4wLjIuMCIKKyAgICBxcyAifjYuNC4wIgorICAgIHNhZmUt YnVmZmVyICJeNS4wLjEiCisgICAgc3RyaW5nc3RyZWFtICJ+MC4wLjQiCisg ICAgdG91Z2gtY29va2llICJ+Mi4zLjAiCisgICAgdHVubmVsLWFnZW50ICJe MC42LjAiCisgICAgdXVpZCAiXjMuMC4wIgorCityZXF1ZXN0QH4yLjc5LjA6 CisgIHZlcnNpb24gIjIuNzkuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vcmVxdWVzdC8tL3JlcXVlc3QtMi43OS4wLnRn eiM0ZGZlNWJmNmJlOGI4Y2RjMzdmY2Y5M2UwNGI2NTU3NzcyMjcxMGRlIgor ICBkZXBlbmRlbmNpZXM6CisgICAgYXdzLXNpZ24yICJ+MC42LjAiCisgICAg YXdzNCAiXjEuMi4xIgorICAgIGNhc2VsZXNzICJ+MC4xMS4wIgorICAgIGNv bWJpbmVkLXN0cmVhbSAifjEuMC41IgorICAgIGV4dGVuZCAifjMuMC4wIgor ICAgIGZvcmV2ZXItYWdlbnQgIn4wLjYuMSIKKyAgICBmb3JtLWRhdGEgIn4y LjEuMSIKKyAgICBoYXItdmFsaWRhdG9yICJ+Mi4wLjYiCisgICAgaGF3ayAi fjMuMS4zIgorICAgIGh0dHAtc2lnbmF0dXJlICJ+MS4xLjAiCisgICAgaXMt dHlwZWRhcnJheSAifjEuMC4wIgorICAgIGlzc3RyZWFtICJ+MC4xLjIiCisg ICAganNvbi1zdHJpbmdpZnktc2FmZSAifjUuMC4xIgorICAgIG1pbWUtdHlw ZXMgIn4yLjEuNyIKKyAgICBvYXV0aC1zaWduICJ+MC44LjEiCisgICAgcXMg In42LjMuMCIKKyAgICBzdHJpbmdzdHJlYW0gIn4wLjAuNCIKKyAgICB0b3Vn aC1jb29raWUgIn4yLjMuMCIKKyAgICB0dW5uZWwtYWdlbnQgIn4wLjQuMSIK KyAgICB1dWlkICJeMy4wLjAiCisKK3JlcXVpcmUtZGlyZWN0b3J5QF4yLjEu MToKKyAgdmVyc2lvbiAiMi4xLjEiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL3JlcXVpcmUtZGlyZWN0b3J5Ly0vcmVxdWly ZS1kaXJlY3RvcnktMi4xLjEudGd6IzhjNjRhZDVmZDMwZGFiMWM5NzZlMjM0 NGZmZTdmNzkyYTZhNmRmNDIiCisKK3JlcXVpcmUtbWFpbi1maWxlbmFtZUBe MS4wLjE6CisgIHZlcnNpb24gIjEuMC4xIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9yZXF1aXJlLW1haW4tZmlsZW5hbWUv LS9yZXF1aXJlLW1haW4tZmlsZW5hbWUtMS4wLjEudGd6Izk3ZjcxN2I2OWQ0 ODc4NGY1ZjUyNmE2YzVhYThmZmRkYTA1NWE0ZDEiCisKK3JlcXVpcmUtdW5j YWNoZWRAXjEuMC4yOgorICB2ZXJzaW9uICIxLjAuMyIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vcmVxdWlyZS11bmNhY2hl ZC8tL3JlcXVpcmUtdW5jYWNoZWQtMS4wLjMudGd6IzRlMGQ1NmQ2Yzk2NjJm ZDMxZTQzMDExYzRiOTVhYTQ5OTU1NDIxZDMiCisgIGRlcGVuZGVuY2llczoK KyAgICBjYWxsZXItcGF0aCAiXjAuMS4wIgorICAgIHJlc29sdmUtZnJvbSAi XjEuMC4wIgorCityZXF1aXJlanNAfjIuMy4zOgorICB2ZXJzaW9uICIyLjMu MyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v cmVxdWlyZWpzLy0vcmVxdWlyZWpzLTIuMy4zLnRneiNhYTU5ZmQzYTAyODdl YWY0MDc5NTlhMTM4MjI4MDQ0YjVkZDZhNmEzIgorCityZXF1aXJlcy1wb3J0 QDEueC54OgorICB2ZXJzaW9uICIxLjAuMCIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vcmVxdWlyZXMtcG9ydC8tL3JlcXVp cmVzLXBvcnQtMS4wLjAudGd6IzkyNWQyNjAxZDM5YWM0ODVlMDkxY2YwZGE1 YzZlNjk0ZGMzZGNhZmYiCisKK3Jlc29sdmUtZnJvbUBeMS4wLjA6CisgIHZl cnNpb24gIjEuMC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9yZXNvbHZlLWZyb20vLS9yZXNvbHZlLWZyb20tMS4wLjEu dGd6IzI2Y2JmZTkzNWQxYWVlZWFiYjI5YmMzZmU1YWViMDFlOTNkNDQyMjYi CisKK3Jlc29sdmVAMS4xLjc6CisgIHZlcnNpb24gIjEuMS43IgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9yZXNvbHZlLy0v cmVzb2x2ZS0xLjEuNy50Z3ojMjAzMTE0ZDgyYWQyYzVlZDllOGUwNDExYjM5 MzI4NzVlODg5ZTk3YiIKKworcmVzb2x2ZUBeMS4xLjMsIHJlc29sdmVAXjEu MS40LCByZXNvbHZlQF4xLjEuNjoKKyAgdmVyc2lvbiAiMS4zLjMiCisgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3Jlc29sdmUv LS9yZXNvbHZlLTEuMy4zLnRneiM2NTU5MDdjMzQ2OWE4NjgwZGMyZGUzYTI3 NWE4ZmRkNjk2OTFmMGU1IgorICBkZXBlbmRlbmNpZXM6CisgICAgcGF0aC1w YXJzZSAiXjEuMC41IgorCityZXN0b3JlLWN1cnNvckBeMS4wLjE6CisgIHZl cnNpb24gIjEuMC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9yZXN0b3JlLWN1cnNvci8tL3Jlc3RvcmUtY3Vyc29yLTEu MC4xLnRneiMzNDY2MWY0Njg4NjMyN2ZlZDI5OTE0NzkxNTIyNTJkZjkyZGFh NTQxIgorICBkZXBlbmRlbmNpZXM6CisgICAgZXhpdC1ob29rICJeMS4wLjAi CisgICAgb25ldGltZSAiXjEuMC4wIgorCityaWdodC1hbGlnbkBeMC4xLjE6 CisgIHZlcnNpb24gIjAuMS4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9yaWdodC1hbGlnbi8tL3JpZ2h0LWFsaWduLTAu MS4zLnRneiM2MTMzOWI3MjJmZTZhMzUxNTY4OTIxMGQyNGUxNGM5NjE0ODYx M2VmIgorICBkZXBlbmRlbmNpZXM6CisgICAgYWxpZ24tdGV4dCAiXjAuMS4x IgorCityaW1yYWZAMiwgcmltcmFmQF4yLjIuOCwgcmltcmFmQF4yLjUuMSwg cmltcmFmQF4yLjYuMCwgcmltcmFmQF4yLjYuMToKKyAgdmVyc2lvbiAiMi42 LjEiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L3JpbXJhZi8tL3JpbXJhZi0yLjYuMS50Z3ojYzIzMzhlYzY0M2RmN2ExYjdm ZTVjNTRmYTg2ZjU3NDI4YTU1ZjMzZCIKKyAgZGVwZW5kZW5jaWVzOgorICAg IGdsb2IgIl43LjAuNSIKKworcmlwZW1kMTYwQF4yLjAuMCwgcmlwZW1kMTYw QF4yLjAuMToKKyAgdmVyc2lvbiAiMi4wLjEiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3JpcGVtZDE2MC8tL3JpcGVtZDE2 MC0yLjAuMS50Z3ojMGY0NTg0Mjk1YzUzYTM2MjhhZjdlNmQ3OWFjYTIxY2U1 N2QxYzZlNyIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGhhc2gtYmFzZSAiXjIu MC4wIgorICAgIGluaGVyaXRzICJeMi4wLjEiCisKK3J1bi1hc3luY0BeMC4x LjA6CisgIHZlcnNpb24gIjAuMS4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9ydW4tYXN5bmMvLS9ydW4tYXN5bmMtMC4x LjAudGd6I2M4YWQ0YTVlMTEwNjYxZTQwMmE3ZDIxYjUzMGUwMDlmMjVmOGUz ODkiCisgIGRlcGVuZGVuY2llczoKKyAgICBvbmNlICJeMS4zLjAiCisKK3J4 LWxpdGVAXjMuMS4yOgorICB2ZXJzaW9uICIzLjEuMiIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vcngtbGl0ZS8tL3J4LWxp dGUtMy4xLjIudGd6IzE5Y2U1MDJjYTU3MjY2NWYzYjY0N2IxMDkzOWY5N2Zk MTYxNWYxMDIiCisKK3NhZmUtYnVmZmVyQF41LjAuMToKKyAgdmVyc2lvbiAi NS4xLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL3NhZmUtYnVmZmVyLy0vc2FmZS1idWZmZXItNS4xLjAudGd6I2ZlNGM4 NDYwMzk3ZjllYWFhYTU4ZTczYmU0NjI3MzQwOGE0NWUyMjMiCisKK3NhZmUt YnVmZmVyQH41LjAuMToKKyAgdmVyc2lvbiAiNS4wLjEiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3NhZmUtYnVmZmVyLy0v c2FmZS1idWZmZXItNS4wLjEudGd6I2QyNjNjYTU0Njk2Y2Q4YTMwNmI1Y2E2 NTUxZTkyZGU1NzkxOGZiZTciCisKKyJzZW12ZXJAMiB8fCAzIHx8IDQgfHwg NSIsIHNlbXZlckBeNS4zLjA6CisgIHZlcnNpb24gIjUuMy4wIgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zZW12ZXIvLS9z ZW12ZXItNS4zLjAudGd6IzliMmNlNWQzZGUwMmQxN2M2MDEyYWQzMjZhYTZi NGQwY2Y1NGY5NGYiCisKK3NlbXZlckB+NC4zLjM6CisgIHZlcnNpb24gIjQu My42IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS9zZW12ZXIvLS9zZW12ZXItNC4zLjYudGd6IzMwMGJjNmUwZTg2Mzc0Zjdi YTYxMDY4YjViMWVjZDU3ZmM2NTMyZGEiCisKK3NldC1ibG9ja2luZ0BeMi4w LjAsIHNldC1ibG9ja2luZ0B+Mi4wLjA6CisgIHZlcnNpb24gIjIuMC4wIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zZXQt YmxvY2tpbmcvLS9zZXQtYmxvY2tpbmctMi4wLjAudGd6IzA0NWY5NzgyZDAx MWFlOWE2ODAzZGRkMzgyYjI0MzkyYjNkODkwZjciCisKK3NldC1pbW1lZGlh dGUtc2hpbUBeMS4wLjE6CisgIHZlcnNpb24gIjEuMC4xIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zZXQtaW1tZWRpYXRl LXNoaW0vLS9zZXQtaW1tZWRpYXRlLXNoaW0tMS4wLjEudGd6IzRiMmIxYjI3 ZWI4MDhhOWY4ZGNjNDgxYTU4ZTVlNTZmNTk5ZjNmNjEiCisKK3NldGltbWVk aWF0ZUBeMS4wLjQsIHNldGltbWVkaWF0ZUBeMS4wLjU6CisgIHZlcnNpb24g IjEuMC41IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtn LmNvbS9zZXRpbW1lZGlhdGUvLS9zZXRpbW1lZGlhdGUtMS4wLjUudGd6IzI5 MGNiYjIzMmUzMDY5NDJkN2Q3ZWE5YjgzNzMyYWI3ODU2ZjgyODUiCisKK3Nl dHByb3RvdHlwZW9mQDEuMC4zOgorICB2ZXJzaW9uICIxLjAuMyIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vc2V0cHJvdG90 eXBlb2YvLS9zZXRwcm90b3R5cGVvZi0xLjAuMy50Z3ojNjY1NjdlMzcwNDNl ZWI0ZjA0ZDkxYmQ2NThjMGNiZWZiNTViOGUwNCIKKworc2hhLmpzQF4yLjQu MCwgc2hhLmpzQF4yLjQuOCwgc2hhLmpzQH4yLjQuNDoKKyAgdmVyc2lvbiAi Mi40LjgiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL3NoYS5qcy8tL3NoYS5qcy0yLjQuOC50Z3ojMzcwNjhjMmM0NzZiNmJh ZjQwMmQxNGE0OWM2N2Y1OTc5MjFmNjM0ZiIKKyAgZGVwZW5kZW5jaWVzOgor ICAgIGluaGVyaXRzICJeMi4wLjEiCisKK3NoYXN1bUBeMS4wLjA6CisgIHZl cnNpb24gIjEuMC4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9zaGFzdW0vLS9zaGFzdW0tMS4wLjIudGd6I2U3MDEyMzEw ZDhmNDE3ZjRkZWI1NzEyMTUwZTU2NzhiODdhZTU2NWYiCisgIGRlcGVuZGVu Y2llczoKKyAgICBqc29uLXN0YWJsZS1zdHJpbmdpZnkgIn4wLjAuMCIKKyAg ICBzaGEuanMgIn4yLjQuNCIKKworc2hlbGwtcXVvdGVAXjEuNC4yLCBzaGVs bC1xdW90ZUBeMS42LjE6CisgIHZlcnNpb24gIjEuNi4xIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zaGVsbC1xdW90ZS8t L3NoZWxsLXF1b3RlLTEuNi4xLnRneiNmNDc4MTk0OWNjZTQwMjY5NzEyNzQz MGVhM2IzYzU0NzZmNDgxNzY3IgorICBkZXBlbmRlbmNpZXM6CisgICAgYXJy YXktZmlsdGVyICJ+MC4wLjAiCisgICAgYXJyYXktbWFwICJ+MC4wLjAiCisg ICAgYXJyYXktcmVkdWNlICJ+MC4wLjAiCisgICAganNvbmlmeSAifjAuMC4w IgorCitzaGVsbGpzQF4wLjcuNToKKyAgdmVyc2lvbiAiMC43LjgiCisgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3NoZWxsanMv LS9zaGVsbGpzLTAuNy44LnRneiNkZWNiY2Y4NzRiMGQxZTVmYjcyZTE0YjE2 NGE5NjgzMDQ4ZTlhY2IzIgorICBkZXBlbmRlbmNpZXM6CisgICAgZ2xvYiAi XjcuMC4wIgorICAgIGludGVycHJldCAiXjEuMC4wIgorICAgIHJlY2hvaXIg Il4wLjYuMiIKKworc2lnbmFsLWV4aXRAXjMuMC4wOgorICB2ZXJzaW9uICIz LjAuMiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5j b20vc2lnbmFsLWV4aXQvLS9zaWduYWwtZXhpdC0zLjAuMi50Z3ojYjVmZGMw OGYxMjg3ZWExMTc4NjI4ZTQxNWUyNTEzMmI3MzY0NmM2ZCIKKworc2xhc2hA XjEuMC4wOgorICB2ZXJzaW9uICIxLjAuMCIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vc2xhc2gvLS9zbGFzaC0xLjAuMC50 Z3ojYzQxZjJmNmMzOWZjMTZkMWNkMTdhZDRiNWQ4OTYxMTRhZTQ3MGQ1NSIK Kworc2xpY2UtYW5zaUAwLjAuNDoKKyAgdmVyc2lvbiAiMC4wLjQiCisgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3NsaWNlLWFu c2kvLS9zbGljZS1hbnNpLTAuMC40LnRneiNlZGJmODkwM2Y2NmY3Y2UyZjhl YWZkNmNlZWQ2NWUyNjRjODMxYjM1IgorCitzbnRwQDEueC54OgorICB2ZXJz aW9uICIxLjAuOSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vc250cC8tL3NudHAtMS4wLjkudGd6IzY1NDExODRjYzkwYWVl YTZjNmU3YjM1ZTI2NTkwODI0NDNjNjYxOTgiCisgIGRlcGVuZGVuY2llczoK KyAgICBob2VrICIyLngueCIKKworc29ja2V0LmlvLWFkYXB0ZXJAMC41LjA6 CisgIHZlcnNpb24gIjAuNS4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9zb2NrZXQuaW8tYWRhcHRlci8tL3NvY2tldC5p by1hZGFwdGVyLTAuNS4wLnRneiNjYjZkNGJiOGJlYzgxZTEwNzhiOTk2Nzdm OWNlZDAwNDYwNjZiYjhiIgorICBkZXBlbmRlbmNpZXM6CisgICAgZGVidWcg IjIuMy4zIgorICAgIHNvY2tldC5pby1wYXJzZXIgIjIuMy4xIgorCitzb2Nr ZXQuaW8tY2xpZW50QDEuNy4zOgorICB2ZXJzaW9uICIxLjcuMyIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vc29ja2V0Lmlv LWNsaWVudC8tL3NvY2tldC5pby1jbGllbnQtMS43LjMudGd6I2IzMGU4NmFh MTBkNWVmMzU0NjYwMWMwOWNkZTQ3NjVlMzgxZGEzNzciCisgIGRlcGVuZGVu Y2llczoKKyAgICBiYWNrbzIgIjEuMC4yIgorICAgIGNvbXBvbmVudC1iaW5k ICIxLjAuMCIKKyAgICBjb21wb25lbnQtZW1pdHRlciAiMS4yLjEiCisgICAg ZGVidWcgIjIuMy4zIgorICAgIGVuZ2luZS5pby1jbGllbnQgIjEuOC4zIgor ICAgIGhhcy1iaW5hcnkgIjAuMS43IgorICAgIGluZGV4b2YgIjAuMC4xIgor ICAgIG9iamVjdC1jb21wb25lbnQgIjAuMC4zIgorICAgIHBhcnNldXJpICIw LjAuNSIKKyAgICBzb2NrZXQuaW8tcGFyc2VyICIyLjMuMSIKKyAgICB0by1h cnJheSAiMC4xLjQiCisKK3NvY2tldC5pby1wYXJzZXJAMi4zLjE6CisgIHZl cnNpb24gIjIuMy4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9zb2NrZXQuaW8tcGFyc2VyLy0vc29ja2V0LmlvLXBhcnNl ci0yLjMuMS50Z3ojZGQ1MzIwMjUxMDNjZTQyOTY5NzMyNmJlZmQ2NDAwNWZj ZmU1YjRhMCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGNvbXBvbmVudC1lbWl0 dGVyICIxLjEuMiIKKyAgICBkZWJ1ZyAiMi4yLjAiCisgICAgaXNhcnJheSAi MC4wLjEiCisgICAganNvbjMgIjMuMy4yIgorCitzb2NrZXQuaW9AMS43LjM6 CisgIHZlcnNpb24gIjEuNy4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9zb2NrZXQuaW8vLS9zb2NrZXQuaW8tMS43LjMu dGd6I2I4YWY5Y2FiYTAwOTQ5ZTU2OGUzNjlmMTMyN2VhOWJlOWVhMjQ2MWIi CisgIGRlcGVuZGVuY2llczoKKyAgICBkZWJ1ZyAiMi4zLjMiCisgICAgZW5n aW5lLmlvICIxLjguMyIKKyAgICBoYXMtYmluYXJ5ICIwLjEuNyIKKyAgICBv YmplY3QtYXNzaWduICI0LjEuMCIKKyAgICBzb2NrZXQuaW8tYWRhcHRlciAi MC41LjAiCisgICAgc29ja2V0LmlvLWNsaWVudCAiMS43LjMiCisgICAgc29j a2V0LmlvLXBhcnNlciAiMi4zLjEiCisKK3NvdXJjZS1saXN0LW1hcEBeMS4x LjE6CisgIHZlcnNpb24gIjEuMS4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9y ZWdpc3RyeS55YXJucGtnLmNvbS9zb3VyY2UtbGlzdC1tYXAvLS9zb3VyY2Ut bGlzdC1tYXAtMS4xLjIudGd6Izk4ODkwMTlkMTAyNGNjZTU1Y2RjMDY5NDk4 MzM3ZWY2MTg2YTExYTEiCisKK3NvdXJjZS1tYXAtc3VwcG9ydEBeMC40LjI6 CisgIHZlcnNpb24gIjAuNC4xNSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vc291cmNlLW1hcC1zdXBwb3J0Ly0vc291cmNl LW1hcC1zdXBwb3J0LTAuNC4xNS50Z3ojMDMyMDJkZjY1YzA2ZDJiZDhjN2Vj MjM2MmExOTMwNTZmZWY4ZDNiMSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIHNv dXJjZS1tYXAgIl4wLjUuNiIKKworc291cmNlLW1hcEAwLjUueCwgc291cmNl LW1hcEBeMC41LjAsIHNvdXJjZS1tYXBAXjAuNS4zLCBzb3VyY2UtbWFwQF4w LjUuNiwgc291cmNlLW1hcEB+MC41LjEsIHNvdXJjZS1tYXBAfjAuNS4zOgor ICB2ZXJzaW9uICIwLjUuNiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vc291cmNlLW1hcC8tL3NvdXJjZS1tYXAtMC41LjYu dGd6Izc1Y2UzOGY1MmJmMDczM2M1YTdmMGMxMThkODEzMzRhMmJiNWY0MTIi CisKK3NvdXJjZS1tYXBAXjAuMS40MToKKyAgdmVyc2lvbiAiMC4xLjQzIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zb3Vy Y2UtbWFwLy0vc291cmNlLW1hcC0wLjEuNDMudGd6I2MyNGJjMTQ2Y2E1MTdj MTQ3MWY1ZGFjYmUyNTcxYjJiN2Y5ZTMzNDYiCisgIGRlcGVuZGVuY2llczoK KyAgICBhbWRlZmluZSAiPj0wLjAuNCIKKworc3BkeC1jb3JyZWN0QH4xLjAu MDoKKyAgdmVyc2lvbiAiMS4wLjIiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL3NwZHgtY29ycmVjdC8tL3NwZHgtY29ycmVj dC0xLjAuMi50Z3ojNGIzMDczZDkzM2ZmNTFmMzkxMmYwM2FjNTUxOTQ5OGE0 MTUwZGI0MCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIHNwZHgtbGljZW5zZS1p ZHMgIl4xLjAuMiIKKworc3BkeC1leHByZXNzaW9uLXBhcnNlQH4xLjAuMDoK KyAgdmVyc2lvbiAiMS4wLjQiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL3NwZHgtZXhwcmVzc2lvbi1wYXJzZS8tL3NwZHgt ZXhwcmVzc2lvbi1wYXJzZS0xLjAuNC50Z3ojOWJkZjJmMjBlMWY0MGVkNDQ3 ZmJlMjczMjY2MTkxZmNlZDUxNjI2YyIKKworc3BkeC1saWNlbnNlLWlkc0Be MS4wLjI6CisgIHZlcnNpb24gIjEuMi4yIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zcGR4LWxpY2Vuc2UtaWRzLy0vc3Bk eC1saWNlbnNlLWlkcy0xLjIuMi50Z3ojYzlkZjdhMzQyNDU5NGFkZTZiZDEx OTAwZDU5NjY5NmRjMDZiYWM1NyIKKworc3ByaW50Zi1qc0B+MS4wLjI6Cisg IHZlcnNpb24gIjEuMC4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS9zcHJpbnRmLWpzLy0vc3ByaW50Zi1qcy0xLjAuMy50 Z3ojMDRlNjkyNmY2NjI4OTUzNTRmM2RkMDE1MjAzNjMzYjg1NzI5N2UyYyIK Kworc3NocGtAXjEuNy4wOgorICB2ZXJzaW9uICIxLjEzLjAiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3NzaHBrLy0vc3No cGstMS4xMy4wLnRneiNmZjJhM2U0ZmQwNDQ5NzU1NWZlZDk3YjM5YTBmZDgy ZmFmYjNhMzNjIgorICBkZXBlbmRlbmNpZXM6CisgICAgYXNuMSAifjAuMi4z IgorICAgIGFzc2VydC1wbHVzICJeMS4wLjAiCisgICAgZGFzaGRhc2ggIl4x LjEyLjAiCisgICAgZ2V0cGFzcyAiXjAuMS4xIgorICBvcHRpb25hbERlcGVu ZGVuY2llczoKKyAgICBiY3J5cHQtcGJrZGYgIl4xLjAuMCIKKyAgICBlY2Mt anNibiAifjAuMS4xIgorICAgIGpvZGlkMjU1MTkgIl4xLjAuMCIKKyAgICBq c2JuICJ+MC4xLjAiCisgICAgdHdlZXRuYWNsICJ+MC4xNC4wIgorCisic3Rh dHVzZXNAPj0gMS4zLjEgPCAyIiwgc3RhdHVzZXNAfjEuMy4xOgorICB2ZXJz aW9uICIxLjMuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vc3RhdHVzZXMvLS9zdGF0dXNlcy0xLjMuMS50Z3ojZmFmNTFi OWViNzRhYWVmM2IzYWNmNGFkNWY2MWFiZjI0Y2I3YjkzZSIKKworc3RyZWFt LWJyb3dzZXJpZnlAXjIuMC4wLCBzdHJlYW0tYnJvd3NlcmlmeUBeMi4wLjE6 CisgIHZlcnNpb24gIjIuMC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9zdHJlYW0tYnJvd3NlcmlmeS8tL3N0cmVhbS1i cm93c2VyaWZ5LTIuMC4xLnRneiM2NjI2NmVlNWY5YmRiOTk0MGE0ZTQ1MTRj YWZiNDNiYjcxZTVjOWRiIgorICBkZXBlbmRlbmNpZXM6CisgICAgaW5oZXJp dHMgIn4yLjAuMSIKKyAgICByZWFkYWJsZS1zdHJlYW0gIl4yLjAuMiIKKwor c3RyZWFtLWNvbWJpbmVyMkBeMS4xLjE6CisgIHZlcnNpb24gIjEuMS4xIgor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zdHJl YW0tY29tYmluZXIyLy0vc3RyZWFtLWNvbWJpbmVyMi0xLjEuMS50Z3ojZmI0 ZDhhMTQyMGVhMzYyNzY0ZTIxYWQ0NzgwMzk3YmViY2I0MWNiZSIKKyAgZGVw ZW5kZW5jaWVzOgorICAgIGR1cGxleGVyMiAifjAuMS4wIgorICAgIHJlYWRh YmxlLXN0cmVhbSAiXjIuMC4yIgorCitzdHJlYW0taHR0cEBeMi4wLjAsIHN0 cmVhbS1odHRwQF4yLjMuMToKKyAgdmVyc2lvbiAiMi43LjEiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3N0cmVhbS1odHRw Ly0vc3RyZWFtLWh0dHAtMi43LjEudGd6IzU0NmE1MTc0MWFkNWE2YjA3ZTll MzFiMGIxMDQ0MWE5MTdkZjUyOGEiCisgIGRlcGVuZGVuY2llczoKKyAgICBi dWlsdGluLXN0YXR1cy1jb2RlcyAiXjMuMC4wIgorICAgIGluaGVyaXRzICJe Mi4wLjEiCisgICAgcmVhZGFibGUtc3RyZWFtICJeMi4yLjYiCisgICAgdG8t YXJyYXlidWZmZXIgIl4xLjAuMCIKKyAgICB4dGVuZCAiXjQuMC4wIgorCitz dHJlYW0tc3BsaWNlckBeMi4wLjA6CisgIHZlcnNpb24gIjIuMC4wIgorICBy ZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zdHJlYW0t c3BsaWNlci8tL3N0cmVhbS1zcGxpY2VyLTIuMC4wLnRneiMxYjYzYmU0Mzhh MTMzZTRiNjcxY2MxOTM1MTk3NjAwMTc1OTEwZDgzIgorICBkZXBlbmRlbmNp ZXM6CisgICAgaW5oZXJpdHMgIl4yLjAuMSIKKyAgICByZWFkYWJsZS1zdHJl YW0gIl4yLjAuMiIKKworc3RyaW5nLXdpZHRoQF4xLjAuMSwgc3RyaW5nLXdp ZHRoQF4xLjAuMjoKKyAgdmVyc2lvbiAiMS4wLjIiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3N0cmluZy13aWR0aC8tL3N0 cmluZy13aWR0aC0xLjAuMi50Z3ojMTE4YmRmNWI4Y2RjNTFhMmE3ZTcwZDIx MWUwN2UyYjBiOWIxMDdkMyIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGNvZGUt cG9pbnQtYXQgIl4xLjAuMCIKKyAgICBpcy1mdWxsd2lkdGgtY29kZS1wb2lu dCAiXjEuMC4wIgorICAgIHN0cmlwLWFuc2kgIl4zLjAuMCIKKworc3RyaW5n LXdpZHRoQF4yLjAuMDoKKyAgdmVyc2lvbiAiMi4wLjAiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3N0cmluZy13aWR0aC8t L3N0cmluZy13aWR0aC0yLjAuMC50Z3ojNjM1YzU0MzZjYzcyYTZlMGMzODdj ZWNhMjc4ZDRlMmVlYzUyNjg3ZSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGlz LWZ1bGx3aWR0aC1jb2RlLXBvaW50ICJeMi4wLjAiCisgICAgc3RyaXAtYW5z aSAiXjMuMC4wIgorCitzdHJpbmdfZGVjb2RlckBeMC4xMC4yNSwgc3RyaW5n X2RlY29kZXJAfjAuMTAuMCwgc3RyaW5nX2RlY29kZXJAfjAuMTAueDoKKyAg dmVyc2lvbiAiMC4xMC4zMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vc3RyaW5nX2RlY29kZXIvLS9zdHJpbmdfZGVjb2Rl ci0wLjEwLjMxLnRneiM2MmUyMDNiYzQxNzY2YzZjMjhjOWZjODQzMDFkYWIx YzUzMTBmYTk0IgorCitzdHJpbmdfZGVjb2RlckB+MS4wLjA6CisgIHZlcnNp b24gIjEuMC4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS9zdHJpbmdfZGVjb2Rlci8tL3N0cmluZ19kZWNvZGVyLTEuMC4y LnRneiNiMjllMWY0ZTExMjVmYTk3YTEwMzgyYjhhNTMzNzM3Yjc0OTFlMTc5 IgorICBkZXBlbmRlbmNpZXM6CisgICAgc2FmZS1idWZmZXIgIn41LjAuMSIK Kworc3RyaW5nc3RyZWFtQH4wLjAuNDoKKyAgdmVyc2lvbiAiMC4wLjUiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3N0cmlu Z3N0cmVhbS8tL3N0cmluZ3N0cmVhbS0wLjAuNS50Z3ojNGU0ODRjZDRkZTVh MGJiYmVlMThlNDYzMDc3MTBhOGE4MTYyMTg3OCIKKworc3RyaXAtYW5zaUBe My4wLjAsIHN0cmlwLWFuc2lAXjMuMC4xOgorICB2ZXJzaW9uICIzLjAuMSIK KyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vc3Ry aXAtYW5zaS8tL3N0cmlwLWFuc2ktMy4wLjEudGd6IzZhMzg1ZmI4ODUzZDk1 MmQ1ZmYwNWQwZThhYWY5NDI3OGRjNjNkY2YiCisgIGRlcGVuZGVuY2llczoK KyAgICBhbnNpLXJlZ2V4ICJeMi4wLjAiCisKK3N0cmlwLWJvbUBeMi4wLjA6 CisgIHZlcnNpb24gIjIuMC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9zdHJpcC1ib20vLS9zdHJpcC1ib20tMi4wLjAu dGd6IzYyMTlhODU2MTY1MjA0OTFmMzU3ODhiZGJmMTQ0N2E5OWM3ZTZiMGUi CisgIGRlcGVuZGVuY2llczoKKyAgICBpcy11dGY4ICJeMC4yLjAiCisKK3N0 cmlwLWJvbUBeMy4wLjA6CisgIHZlcnNpb24gIjMuMC4wIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zdHJpcC1ib20vLS9z dHJpcC1ib20tMy4wLjAudGd6IzIzMzRjMThlOWM3NTlmN2JkZDU2ZmRlZjdl OWFlM2Q1ODhlNjhlZDMiCisKK3N0cmlwLWpzb24tY29tbWVudHNAfjIuMC4x OgorICB2ZXJzaW9uICIyLjAuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20vc3RyaXAtanNvbi1jb21tZW50cy8tL3N0cmlw LWpzb24tY29tbWVudHMtMi4wLjEudGd6IzNjNTMxOTQyZTkwOGMyNjk3YzBl YzM0NDg1OGMyODZjN2NhMGE2MGEiCisKK3N1YmFyZ0BeMS4wLjA6CisgIHZl cnNpb24gIjEuMC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS9zdWJhcmcvLS9zdWJhcmctMS4wLjAudGd6I2Y2MmNmMTc1 ODFlOTk2YjQ4ZmM5NjU2OTlmNTRjMDZhZTI2OGI4ZDIiCisgIGRlcGVuZGVu Y2llczoKKyAgICBtaW5pbWlzdCAiXjEuMS4wIgorCitzdXBwb3J0cy1jb2xv ckBeMi4wLjA6CisgIHZlcnNpb24gIjIuMC4wIgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS9zdXBwb3J0cy1jb2xvci8tL3N1 cHBvcnRzLWNvbG9yLTIuMC4wLnRneiM1MzVkMDQ1Y2U2YjYzNjNmYTQwMTE3 MDg0NjI5OTk1ZTlkZjMyNGM3IgorCitzdXBwb3J0cy1jb2xvckBeMy4xLjA6 CisgIHZlcnNpb24gIjMuMi4zIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS9zdXBwb3J0cy1jb2xvci8tL3N1cHBvcnRzLWNv bG9yLTMuMi4zLnRneiM2NWFjMDUwNGIzOTU0MTcxZDhhNjQ5NDZiMmFlM2Ni YjhhNWY1NGY2IgorICBkZXBlbmRlbmNpZXM6CisgICAgaGFzLWZsYWcgIl4x LjAuMCIKKworc3ludGF4LWVycm9yQF4xLjEuMToKKyAgdmVyc2lvbiAiMS4z LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L3N5bnRheC1lcnJvci8tL3N5bnRheC1lcnJvci0xLjMuMC50Z3ojMWVkOTI2 NmM0ZDQwYmU3NWRjNTViZjliYjFjYjc3MDYyYmI5NmNhMSIKKyAgZGVwZW5k ZW5jaWVzOgorICAgIGFjb3JuICJeNC4wLjMiCisKK3RhYmxlQF4zLjcuODoK KyAgdmVyc2lvbiAiMy44LjMiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL3RhYmxlLy0vdGFibGUtMy44LjMudGd6IzJiYmM1 NDJmMGZkYTk4NjFhNzU1ZDM5NDdmZWZkOGIzZjUxMzg1NWYiCisgIGRlcGVu ZGVuY2llczoKKyAgICBhanYgIl40LjcuMCIKKyAgICBhanYta2V5d29yZHMg Il4xLjAuMCIKKyAgICBjaGFsayAiXjEuMS4xIgorICAgIGxvZGFzaCAiXjQu MC4wIgorICAgIHNsaWNlLWFuc2kgIjAuMC40IgorICAgIHN0cmluZy13aWR0 aCAiXjIuMC4wIgorCit0YXBhYmxlQF4wLjIuNSwgdGFwYWJsZUB+MC4yLjU6 CisgIHZlcnNpb24gIjAuMi42IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS90YXBhYmxlLy0vdGFwYWJsZS0wLjIuNi50Z3oj MjA2YmU4ZTE4ODg2MGI1MTQ0MjUzNzVlNmYxYWU4OWJmYjAxZmQ4ZCIKKwor dGFyLXBhY2tAXjMuNC4wOgorICB2ZXJzaW9uICIzLjQuMCIKKyAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vdGFyLXBhY2svLS90 YXItcGFjay0zLjQuMC50Z3ojMjNiZTJkN2Y2NzFhODMzOTM3NmNiZGIwYjhm ZTNmZGViZjMxNzk4NCIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGRlYnVnICJe Mi4yLjAiCisgICAgZnN0cmVhbSAiXjEuMC4xMCIKKyAgICBmc3RyZWFtLWln bm9yZSAiXjEuMC41IgorICAgIG9uY2UgIl4xLjMuMyIKKyAgICByZWFkYWJs ZS1zdHJlYW0gIl4yLjEuNCIKKyAgICByaW1yYWYgIl4yLjUuMSIKKyAgICB0 YXIgIl4yLjIuMSIKKyAgICB1aWQtbnVtYmVyICJeMC4wLjYiCisKK3RhckBe Mi4yLjE6CisgIHZlcnNpb24gIjIuMi4xIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS90YXIvLS90YXItMi4yLjEudGd6Izhl NGQyYTI1NmMwZTIxODVjNmIxOGFkNjk0YWVjOTY4YjgzY2IxZDEiCisgIGRl cGVuZGVuY2llczoKKyAgICBibG9jay1zdHJlYW0gIioiCisgICAgZnN0cmVh bSAiXjEuMC4yIgorICAgIGluaGVyaXRzICIyIgorCit0ZXh0LXRhYmxlQH4w LjIuMDoKKyAgdmVyc2lvbiAiMC4yLjAiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3RleHQtdGFibGUvLS90ZXh0LXRhYmxl LTAuMi4wLnRneiM3ZjVlZTgyM2FlODA1MjA3YzAwYWYyZGY0YTg0ZWMzZmNm YTU3MGI0IgorCit0aHJvdHRsZWl0QF4xLjAuMDoKKyAgdmVyc2lvbiAiMS4w LjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29t L3Rocm90dGxlaXQvLS90aHJvdHRsZWl0LTEuMC4wLnRneiM5ZTc4NTgzNmRh ZjQ2NzQzMTQ1YTU5ODRiNjI2OGQ4Mjg1MjhhYzZjIgorCit0aHJvdWdoMkBe Mi4wLjA6CisgIHZlcnNpb24gIjIuMC4zIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS90aHJvdWdoMi8tL3Rocm91Z2gyLTIu MC4zLnRneiMwMDA0NTY5YjM3YzdjNzRiYTM5YzQzZjNjZWQ3OGQxYWQ5NDE0 MGJlIgorICBkZXBlbmRlbmNpZXM6CisgICAgcmVhZGFibGUtc3RyZWFtICJe Mi4xLjUiCisgICAgeHRlbmQgIn40LjAuMSIKKworInRocm91Z2hAPj0yLjIu NyA8MyIsIHRocm91Z2hAXjIuMy42OgorICB2ZXJzaW9uICIyLjMuOCIKKyAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vdGhyb3Vn aC8tL3Rocm91Z2gtMi4zLjgudGd6IzBkZDRjOWZmYWFiYzM1Nzk2MGIxYjcy NDExNWQ3ZTBlODZhMmUxZjUiCisKK3RpbWVycy1icm93c2VyaWZ5QF4xLjAu MToKKyAgdmVyc2lvbiAiMS40LjIiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL3RpbWVycy1icm93c2VyaWZ5Ly0vdGltZXJz LWJyb3dzZXJpZnktMS40LjIudGd6I2M5YzU4YjU3NWJlODQwNzM3NWNiNWUy NDYyZGFjZWU3NDM1OWY0MWQiCisgIGRlcGVuZGVuY2llczoKKyAgICBwcm9j ZXNzICJ+MC4xMS4wIgorCit0aW1lcnMtYnJvd3NlcmlmeUBeMi4wLjI6Cisg IHZlcnNpb24gIjIuMC4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3Ry eS55YXJucGtnLmNvbS90aW1lcnMtYnJvd3NlcmlmeS8tL3RpbWVycy1icm93 c2VyaWZ5LTIuMC4yLnRneiNhYjQ4ODNjZjU5N2RjZDUwYWYyMTEzNDlhMDBm YmNhNTZhYzg2Yjg2IgorICBkZXBlbmRlbmNpZXM6CisgICAgc2V0aW1tZWRp YXRlICJeMS4wLjQiCisKK3RtcEAwLjAuMzEsIHRtcEAwLjAueDoKKyAgdmVy c2lvbiAiMC4wLjMxIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55 YXJucGtnLmNvbS90bXAvLS90bXAtMC4wLjMxLnRneiM4ZjM4YWI5NDM4ZTE3 MzE1ZTVkYmQ4YjM2NTdlOGJmYjI3N2FlNGE3IgorICBkZXBlbmRlbmNpZXM6 CisgICAgb3MtdG1wZGlyICJ+MS4wLjEiCisKK3RvLWFycmF5QDAuMS40Ogor ICB2ZXJzaW9uICIwLjEuNCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0 cnkueWFybnBrZy5jb20vdG8tYXJyYXkvLS90by1hcnJheS0wLjEuNC50Z3oj MTdlNmMxMWY3M2RkNGYzZDc0Y2RhN2E0ZmYzMjM4ZTlhZDliZjg5MCIKKwor dG8tYXJyYXlidWZmZXJAXjEuMC4wOgorICB2ZXJzaW9uICIxLjAuMSIKKyAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vdG8tYXJy YXlidWZmZXIvLS90by1hcnJheWJ1ZmZlci0xLjAuMS50Z3ojN2QyMjliMWZj YzYzN2U0NjZjYTA4MTE4MDgzNmE3YWFiZmY4M2Y0MyIKKwordG8tZmFzdC1w cm9wZXJ0aWVzQF4xLjAuMToKKyAgdmVyc2lvbiAiMS4wLjMiCisgIHJlc29s dmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3RvLWZhc3QtcHJv cGVydGllcy8tL3RvLWZhc3QtcHJvcGVydGllcy0xLjAuMy50Z3ojYjgzNTcx ZmE0ZDhjMjViODJlMjMxYjA2ZTNhMzA1NWRlNGNhMWE0NyIKKwordG91Z2gt Y29va2llQH4yLjMuMDoKKyAgdmVyc2lvbiAiMi4zLjIiCisgIHJlc29sdmVk ICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3RvdWdoLWNvb2tpZS8t L3RvdWdoLWNvb2tpZS0yLjMuMi50Z3ojZjA4MWY3NmU0Yzg1NzIwZTZjMzdh NWZhY2VkNzM3MTUwZDg0MDcyYSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIHB1 bnljb2RlICJeMS40LjEiCisKK3RyaW0tcmlnaHRAXjEuMC4xOgorICB2ZXJz aW9uICIxLjAuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vdHJpbS1yaWdodC8tL3RyaW0tcmlnaHQtMS4wLjEudGd6I2Ni MmUxMjAzMDY3ZTBjOGRlMWY2MTQwOTRiOWZlNDU3MDRlYTYwMDMiCisKK3Ry eWl0QF4xLjAuMToKKyAgdmVyc2lvbiAiMS4wLjMiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3RyeWl0Ly0vdHJ5aXQtMS4w LjMudGd6IzM5M2JlNzMwYTk0NDZmZDFlYWQ2ZGE1OWEwMTQzMDhmMzZjMjg5 Y2IiCisKK3R0eS1icm93c2VyaWZ5QDAuMC4wLCB0dHktYnJvd3NlcmlmeUB+ MC4wLjA6CisgIHZlcnNpb24gIjAuMC4wIgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS90dHktYnJvd3NlcmlmeS8tL3R0eS1i cm93c2VyaWZ5LTAuMC4wLnRneiNhMTU3YmE0MDJkYTI0ZTliZjk1N2Y5YWE2 OWQ1MjRlZWQ0MjkwMWE2IgorCit0dW5uZWwtYWdlbnRAXjAuNi4wOgorICB2 ZXJzaW9uICIwLjYuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vdHVubmVsLWFnZW50Ly0vdHVubmVsLWFnZW50LTAuNi4w LnRneiMyN2E1ZGVhMDZiMzZiMDRhMGE5OTY2Nzc0YjI5MDg2OGYwZmM0MGZk IgorICBkZXBlbmRlbmNpZXM6CisgICAgc2FmZS1idWZmZXIgIl41LjAuMSIK KwordHVubmVsLWFnZW50QH4wLjQuMToKKyAgdmVyc2lvbiAiMC40LjMiCisg IHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3R1bm5l bC1hZ2VudC8tL3R1bm5lbC1hZ2VudC0wLjQuMy50Z3ojNjM3M2RiNzY5MDlm ZTU3MGUwOGQ3MzU4MzM2NWVkODI4YTc0ZWVlYiIKKwordHdlZXRuYWNsQF4w LjE0LjMsIHR3ZWV0bmFjbEB+MC4xNC4wOgorICB2ZXJzaW9uICIwLjE0LjUi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3R3 ZWV0bmFjbC8tL3R3ZWV0bmFjbC0wLjE0LjUudGd6IzVhZTY4MTc3ZjE5MmQ0 NDU2MjY5ZDEwOGFmYTkzZmY4NzQzZjRmNjQiCisKK3R5cGUtY2hlY2tAfjAu My4yOgorICB2ZXJzaW9uICIwLjMuMiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vdHlwZS1jaGVjay8tL3R5cGUtY2hlY2st MC4zLjIudGd6IzU4ODRjYWI1MTJjZjFkMzU1ZTNmYjc4NGYzMDgwNGIyYjUy MGRiNzIiCisgIGRlcGVuZGVuY2llczoKKyAgICBwcmVsdWRlLWxzICJ+MS4x LjIiCisKK3R5cGUtaXNAfjEuNi4xNToKKyAgdmVyc2lvbiAiMS42LjE1Igor ICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS90eXBl LWlzLy0vdHlwZS1pcy0xLjYuMTUudGd6I2NhYjEwZmI0OTA5ZTQ0MWM4Mjg0 MmVhZmUxYWQ2NDZjODE4MDQ0MTAiCisgIGRlcGVuZGVuY2llczoKKyAgICBt ZWRpYS10eXBlciAiMC4zLjAiCisgICAgbWltZS10eXBlcyAifjIuMS4xNSIK KwordHlwZWRhcnJheUBeMC4wLjYsIHR5cGVkYXJyYXlAfjAuMC41OgorICB2 ZXJzaW9uICIwLjAuNiIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vdHlwZWRhcnJheS8tL3R5cGVkYXJyYXktMC4wLjYudGd6 Izg2N2FjNzRlMzg2NDE4N2IxZDNkNDdkOTk2YTc4ZWM1Yzg4MzA3NzciCisK K3VhLXBhcnNlci1qc0BeMC43Ljk6CisgIHZlcnNpb24gIjAuNy4xMiIKKyAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vdWEtcGFy c2VyLWpzLy0vdWEtcGFyc2VyLWpzLTAuNy4xMi50Z3ojMDRjODFhOTliZGQ1 ZGM1MjI2M2VhMjlkMjRjNmJmOGQ0ODE4YTRiYiIKKwordWdsaWZ5LWpzQF4y LjguNToKKyAgdmVyc2lvbiAiMi44LjI4IgorICByZXNvbHZlZCAiaHR0cHM6 Ly9yZWdpc3RyeS55YXJucGtnLmNvbS91Z2xpZnktanMvLS91Z2xpZnktanMt Mi44LjI4LnRneiNlMzM1MDMyZGY5YmIyMGRjYjkxOGYxNjQ1ODlkNWFmNDdm Mzg4MzRhIgorICBkZXBlbmRlbmNpZXM6CisgICAgc291cmNlLW1hcCAifjAu NS4xIgorICAgIHlhcmdzICJ+My4xMC4wIgorICBvcHRpb25hbERlcGVuZGVu Y2llczoKKyAgICB1Z2xpZnktdG8tYnJvd3NlcmlmeSAifjEuMC4wIgorCit1 Z2xpZnktdG8tYnJvd3NlcmlmeUB+MS4wLjA6CisgIHZlcnNpb24gIjEuMC4y IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS91 Z2xpZnktdG8tYnJvd3NlcmlmeS8tL3VnbGlmeS10by1icm93c2VyaWZ5LTEu MC4yLnRneiM2ZTA5MjRkNmJkYTZiNWFmZTM0OWUzOWE2ZDYzMjg1MGEwZjg4 MmI3IgorCit1aWQtbnVtYmVyQF4wLjAuNjoKKyAgdmVyc2lvbiAiMC4wLjYi CisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3Vp ZC1udW1iZXIvLS91aWQtbnVtYmVyLTAuMC42LnRneiMwZWExMGU4MDM1ZThl YjViOGU0NDQ5ZjA2ZGExYzczMDY2M2JhYTgxIgorCit1bHRyb25AMS4wLng6 CisgIHZlcnNpb24gIjEuMC4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS91bHRyb24vLS91bHRyb24tMS4wLjIudGd6I2Fj ZTExNmFiNTU3Y2QxOTczODZhNGU4OGY0Njg1Mzc4YzhiMmU0ZmEiCisKK3Vt ZEBeMy4wLjA6CisgIHZlcnNpb24gIjMuMC4xIgorICByZXNvbHZlZCAiaHR0 cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS91bWQvLS91bWQtMy4wLjEudGd6 IzhhZTU1NmUxMTAxMWY2M2MyNTk2NzA4YTg4MzcyNTlmMDFiM2Q2MGUiCisK K3VuZGVyc2NvcmVAfjEuOC4zOgorICB2ZXJzaW9uICIxLjguMyIKKyAgcmVz b2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vdW5kZXJzY29y ZS8tL3VuZGVyc2NvcmUtMS44LjMudGd6IzRmM2ZiNTNiMTA2ZTYwOTdmY2Y5 Y2I0MTA5ZjJhNWU5YmRmYTUwMjIiCisKK3VucGlwZUAxLjAuMCwgdW5waXBl QH4xLjAuMDoKKyAgdmVyc2lvbiAiMS4wLjAiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3VucGlwZS8tL3VucGlwZS0xLjAu MC50Z3ojYjJiZjRlZTg1MTRhYWU2MTY1YjQ4MTc4MjlkMjFiMmVmNDk5MDRl YyIKKwordXJsQF4wLjExLjAsIHVybEB+MC4xMS4wOgorICB2ZXJzaW9uICIw LjExLjAiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cu Y29tL3VybC8tL3VybC0wLjExLjAudGd6IzM4MzhlOTdjZmM2MDUyMWViNzNj NTI1YThlNTViZmRkOWUyZTI4ZjEiCisgIGRlcGVuZGVuY2llczoKKyAgICBw dW55Y29kZSAiMS4zLjIiCisgICAgcXVlcnlzdHJpbmcgIjAuMi4wIgorCit1 c2VyLWhvbWVAXjIuMC4wOgorICB2ZXJzaW9uICIyLjAuMCIKKyAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vdXNlci1ob21lLy0v dXNlci1ob21lLTIuMC4wLnRneiM5YzcwYmZkODE2OWJjMWRjYmY0ODYwNGUw ZjA0YjhiNDljZGU5ZTlmIgorICBkZXBlbmRlbmNpZXM6CisgICAgb3MtaG9t ZWRpciAiXjEuMC4wIgorCit1c2VyYWdlbnRAXjIuMS4xMjoKKyAgdmVyc2lv biAiMi4xLjEzIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS91c2VyYWdlbnQvLS91c2VyYWdlbnQtMi4xLjEzLnRneiNiYmE0 M2U4YWEyNGQ1Y2ViODNjMjkzNzQ3M2UxMDJlMjFkZjc0YzEwIgorICBkZXBl bmRlbmNpZXM6CisgICAgbHJ1LWNhY2hlICIyLjIueCIKKyAgICB0bXAgIjAu MC54IgorCit1dGlsLWRlcHJlY2F0ZUB+MS4wLjE6CisgIHZlcnNpb24gIjEu MC4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS91dGlsLWRlcHJlY2F0ZS8tL3V0aWwtZGVwcmVjYXRlLTEuMC4yLnRneiM0 NTBkNGRjOWZhNzBkZTczMjc2MmZiZDJkNGEyODk4MTQxOWEwY2NmIgorCit1 dGlsQDAuMTAuMywgdXRpbEBeMC4xMC4zLCB1dGlsQH4wLjEwLjE6CisgIHZl cnNpb24gIjAuMTAuMyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnku eWFybnBrZy5jb20vdXRpbC8tL3V0aWwtMC4xMC4zLnRneiM3YWZiMWFmZTUw ODA1MjQ2NDg5ZTNkYjdmZTBlZDM3OTMzNmFjMGY5IgorICBkZXBlbmRlbmNp ZXM6CisgICAgaW5oZXJpdHMgIjIuMC4xIgorCit1dGlscy1tZXJnZUAxLjAu MDoKKyAgdmVyc2lvbiAiMS4wLjAiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL3V0aWxzLW1lcmdlLy0vdXRpbHMtbWVyZ2Ut MS4wLjAudGd6IzAyOTRmYjkyMmJiOTM3NTE1MzU0MWM0ZjcwOTYyMzFmMjg3 YzhhZjgiCisKK3V1aWRAXjIuMC4zOgorICB2ZXJzaW9uICIyLjAuMyIKKyAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vdXVpZC8t L3V1aWQtMi4wLjMudGd6IzY3ZTJlODYzNzk3MjE1NTMwZGZmMzE4ZTViZjlk Y2ViZmQ0N2IyMWEiCisKK3V1aWRAXjMuMC4wOgorICB2ZXJzaW9uICIzLjAu MSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v dXVpZC8tL3V1aWQtMy4wLjEudGd6IzY1NDRiYmEyZGZkYThjMWNmMTdlNjI5 YTNhMzA1ZTJiYjFmZWU2YzEiCisKK3ZhbGlkYXRlLW5wbS1wYWNrYWdlLWxp Y2Vuc2VAXjMuMC4xOgorICB2ZXJzaW9uICIzLjAuMSIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vdmFsaWRhdGUtbnBtLXBh Y2thZ2UtbGljZW5zZS8tL3ZhbGlkYXRlLW5wbS1wYWNrYWdlLWxpY2Vuc2Ut My4wLjEudGd6IzI4MDRiYWJlNzEyYWQzMzc5NDU5YWNmYmUyNDc0NmFiMmMz MDNmYmMiCisgIGRlcGVuZGVuY2llczoKKyAgICBzcGR4LWNvcnJlY3QgIn4x LjAuMCIKKyAgICBzcGR4LWV4cHJlc3Npb24tcGFyc2UgIn4xLjAuMCIKKwor dmVycm9yQDEuMy42OgorICB2ZXJzaW9uICIxLjMuNiIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vdmVycm9yLy0vdmVycm9y LTEuMy42LnRneiNjZmY1ZGYxMjk0NmQyOTdkMmJhYWVmYWEyNjg5ZTI1YmUw MWMwMDVjIgorICBkZXBlbmRlbmNpZXM6CisgICAgZXh0c3ByaW50ZiAiMS4w LjIiCisKK3ZtLWJyb3dzZXJpZnlAMC4wLjQsIHZtLWJyb3dzZXJpZnlAfjAu MC4xOgorICB2ZXJzaW9uICIwLjAuNCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20vdm0tYnJvd3NlcmlmeS8tL3ZtLWJyb3dz ZXJpZnktMC4wLjQudGd6IzVkN2VhNDViYmVmOWU0YTZmZjY1Zjk1NDM4ZTBh ODdjMzU3ZDVhNzMiCisgIGRlcGVuZGVuY2llczoKKyAgICBpbmRleG9mICIw LjAuMSIKKwordm9pZC1lbGVtZW50c0BeMi4wLjA6CisgIHZlcnNpb24gIjIu MC4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS92b2lkLWVsZW1lbnRzLy0vdm9pZC1lbGVtZW50cy0yLjAuMS50Z3ojYzA2 NmFmYjU4MmJiMWNiNDEyOGQ2MGVhOTIzOTJlOTRkNWU5ZGJlYyIKKword2F0 Y2hpZnlAfjMuOS4wOgorICB2ZXJzaW9uICIzLjkuMCIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vd2F0Y2hpZnkvLS93YXRj aGlmeS0zLjkuMC50Z3ojZjA3NWZkMmU4YTg2YWNkZTg0Y2VkYmE2ZTVjMmEw YmVkZDUyM2Q5ZSIKKyAgZGVwZW5kZW5jaWVzOgorICAgIGFueW1hdGNoICJe MS4zLjAiCisgICAgYnJvd3NlcmlmeSAiXjE0LjAuMCIKKyAgICBjaG9raWRh ciAiXjEuMC4wIgorICAgIGRlZmluZWQgIl4xLjAuMCIKKyAgICBvdXRwaXBl ICJeMS4xLjAiCisgICAgdGhyb3VnaDIgIl4yLjAuMCIKKyAgICB4dGVuZCAi XjQuMC4wIgorCit3YXRjaHBhY2tAXjEuMy4xOgorICB2ZXJzaW9uICIxLjMu MSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v d2F0Y2hwYWNrLy0vd2F0Y2hwYWNrLTEuMy4xLnRneiM3ZDg2OTM5MDdiMjhj ZTYwMTNlN2YzNjEwYWEyYTFhY2YwN2RhZDg3IgorICBkZXBlbmRlbmNpZXM6 CisgICAgYXN5bmMgIl4yLjEuMiIKKyAgICBjaG9raWRhciAiXjEuNC4zIgor ICAgIGdyYWNlZnVsLWZzICJeNC4xLjIiCisKK3dlYnBhY2stZGV2LW1pZGRs ZXdhcmVAXjEuMC4xMToKKyAgdmVyc2lvbiAiMS4xMC4yIgorICByZXNvbHZl ZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS93ZWJwYWNrLWRldi1t aWRkbGV3YXJlLy0vd2VicGFjay1kZXYtbWlkZGxld2FyZS0xLjEwLjIudGd6 IzJlMjUyY2UxZGZiMDIwZGJkYTFjY2IzN2RmMjZmMzBhYjAxNGRiZDEiCisg IGRlcGVuZGVuY2llczoKKyAgICBtZW1vcnktZnMgIn4wLjQuMSIKKyAgICBt aW1lICJeMS4zLjQiCisgICAgcGF0aC1pcy1hYnNvbHV0ZSAiXjEuMC4wIgor ICAgIHJhbmdlLXBhcnNlciAiXjEuMC4zIgorCit3ZWJwYWNrLXNvdXJjZXNA XjAuMi4zOgorICB2ZXJzaW9uICIwLjIuMyIKKyAgcmVzb2x2ZWQgImh0dHBz Oi8vcmVnaXN0cnkueWFybnBrZy5jb20vd2VicGFjay1zb3VyY2VzLy0vd2Vi cGFjay1zb3VyY2VzLTAuMi4zLnRneiMxN2M2MmJmYWYxM2M3MDdmOWQwMmM0 NzllMGRjZGRlODM4MDY5N2ZiIgorICBkZXBlbmRlbmNpZXM6CisgICAgc291 cmNlLWxpc3QtbWFwICJeMS4xLjEiCisgICAgc291cmNlLW1hcCAifjAuNS4z IgorCit3ZWJwYWNrQH4yLjMuMToKKyAgdmVyc2lvbiAiMi4zLjMiCisgIHJl c29sdmVkICJodHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3dlYnBhY2sv LS93ZWJwYWNrLTIuMy4zLnRneiNlZWNjMDgzYzE4ZmI3YmY5NThlYTRmNDBi NTdhNjY0MGM1YTBjYzc4IgorICBkZXBlbmRlbmNpZXM6CisgICAgYWNvcm4g Il40LjAuNCIKKyAgICBhY29ybi1keW5hbWljLWltcG9ydCAiXjIuMC4wIgor ICAgIGFqdiAiXjQuNy4wIgorICAgIGFqdi1rZXl3b3JkcyAiXjEuMS4xIgor ICAgIGFzeW5jICJeMi4xLjIiCisgICAgZW5oYW5jZWQtcmVzb2x2ZSAiXjMu MC4wIgorICAgIGludGVycHJldCAiXjEuMC4wIgorICAgIGpzb24tbG9hZGVy ICJeMC41LjQiCisgICAgbG9hZGVyLXJ1bm5lciAiXjIuMy4wIgorICAgIGxv YWRlci11dGlscyAiXjAuMi4xNiIKKyAgICBtZW1vcnktZnMgIn4wLjQuMSIK KyAgICBta2RpcnAgIn4wLjUuMCIKKyAgICBub2RlLWxpYnMtYnJvd3NlciAi XjIuMC4wIgorICAgIHNvdXJjZS1tYXAgIl4wLjUuMyIKKyAgICBzdXBwb3J0 cy1jb2xvciAiXjMuMS4wIgorICAgIHRhcGFibGUgIn4wLjIuNSIKKyAgICB1 Z2xpZnktanMgIl4yLjguNSIKKyAgICB3YXRjaHBhY2sgIl4xLjMuMSIKKyAg ICB3ZWJwYWNrLXNvdXJjZXMgIl4wLjIuMyIKKyAgICB5YXJncyAiXjYuMC4w IgorCit3aGF0d2ctZmV0Y2hAPj0wLjEwLjA6CisgIHZlcnNpb24gIjIuMC4z IgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS93 aGF0d2ctZmV0Y2gvLS93aGF0d2ctZmV0Y2gtMi4wLjMudGd6IzljODRlYzJk Y2Y2ODE4N2ZmMDBiYzY0ZTEyNzRiNDQyMTc2ZTFjODQiCisKK3doaWNoLW1v ZHVsZUBeMS4wLjA6CisgIHZlcnNpb24gIjEuMC4wIgorICByZXNvbHZlZCAi aHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS93aGljaC1tb2R1bGUvLS93 aGljaC1tb2R1bGUtMS4wLjAudGd6I2JiYTYzY2E4NjE5NDg5OTRmZjMwNzcz NjA4OWUzYjk2MDI2YzJhNGYiCisKK3doaWNoQH4xLjIuMTA6CisgIHZlcnNp b24gIjEuMi4xNCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFy bnBrZy5jb20vd2hpY2gvLS93aGljaC0xLjIuMTQudGd6IzlhODdjNDM3OGYw M2U4MjdjZWNhZjFhY2RmNTZjNzM2YzAxYzE0ZTUiCisgIGRlcGVuZGVuY2ll czoKKyAgICBpc2V4ZSAiXjIuMC4wIgorCit3aWRlLWFsaWduQF4xLjEuMDoK KyAgdmVyc2lvbiAiMS4xLjIiCisgIHJlc29sdmVkICJodHRwczovL3JlZ2lz dHJ5Lnlhcm5wa2cuY29tL3dpZGUtYWxpZ24vLS93aWRlLWFsaWduLTEuMS4y LnRneiM1NzFlMGYxYjA2MDQ2MzZlYmMwZGZjMjFiMDMzOWJiZTMxMzQxNzEw IgorICBkZXBlbmRlbmNpZXM6CisgICAgc3RyaW5nLXdpZHRoICJeMS4wLjIi CisKK3dpbmRvdy1zaXplQDAuMS4wOgorICB2ZXJzaW9uICIwLjEuMCIKKyAg cmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vd2luZG93 LXNpemUvLS93aW5kb3ctc2l6ZS0wLjEuMC50Z3ojNTQzOGNkMmVhOTNiMjAy ZWZhM2ExOWZlODg4N2FlZTdjOTRmOWM5ZCIKKword29yZHdyYXBAMC4wLjI6 CisgIHZlcnNpb24gIjAuMC4yIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdp c3RyeS55YXJucGtnLmNvbS93b3Jkd3JhcC8tL3dvcmR3cmFwLTAuMC4yLnRn eiNiNzk2NjliYjQyZWNiNDA5ZjgzZDU4M2NhZDUyY2ExN2VhYTE2NDNmIgor Cit3b3Jkd3JhcEB+MC4wLjI6CisgIHZlcnNpb24gIjAuMC4zIgorICByZXNv bHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNvbS93b3Jkd3JhcC8t L3dvcmR3cmFwLTAuMC4zLnRneiNhM2Q1ZGE2Y2Q1YzBiYzAwMDhkMzcyMzRi YmFmMWJlZDYzMDU5MTA3IgorCit3b3Jkd3JhcEB+MS4wLjA6CisgIHZlcnNp b24gIjEuMC4wIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJu cGtnLmNvbS93b3Jkd3JhcC8tL3dvcmR3cmFwLTEuMC4wLnRneiMyNzU4NDgx MDg5MTQ1NmE0MTcxYzhkMDIyNjQ0MWFkZTkwY2JjYWViIgorCit3cmFwLWFu c2lAXjIuMC4wOgorICB2ZXJzaW9uICIyLjEuMCIKKyAgcmVzb2x2ZWQgImh0 dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vd3JhcC1hbnNpLy0vd3JhcC1h bnNpLTIuMS4wLnRneiNkOGZjM2QyODRkZDA1Nzk0ZmU4NDk3M2NhZWNkZDFj ZjgyNGZkZDg1IgorICBkZXBlbmRlbmNpZXM6CisgICAgc3RyaW5nLXdpZHRo ICJeMS4wLjEiCisgICAgc3RyaXAtYW5zaSAiXjMuMC4xIgorCit3cmFwcHlA MToKKyAgdmVyc2lvbiAiMS4wLjIiCisgIHJlc29sdmVkICJodHRwczovL3Jl Z2lzdHJ5Lnlhcm5wa2cuY29tL3dyYXBweS8tL3dyYXBweS0xLjAuMi50Z3oj YjUyNDNkOGYzZWMxYWEzNWYxMzY0NjA1YmMwZDEwMzZlMzBhYjY5ZiIKKwor d3JpdGVAXjAuMi4xOgorICB2ZXJzaW9uICIwLjIuMSIKKyAgcmVzb2x2ZWQg Imh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20vd3JpdGUvLS93cml0ZS0w LjIuMS50Z3ojNWZjMDM4MjhlMjY0Y2VhM2ZlOTE0NTU0NzZmN2EzYzU2NmNi MDc1NyIKKyAgZGVwZW5kZW5jaWVzOgorICAgIG1rZGlycCAiXjAuNS4xIgor Cit3c0AxLjEuMjoKKyAgdmVyc2lvbiAiMS4xLjIiCisgIHJlc29sdmVkICJo dHRwczovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3dzLy0vd3MtMS4xLjIudGd6 IzhhMjQ0ZmEwNTI0MDFlMDhjOTg4NmNmNDRhODUxODllMWZkNDA2N2YiCisg IGRlcGVuZGVuY2llczoKKyAgICBvcHRpb25zICI+PTAuMC41IgorICAgIHVs dHJvbiAiMS4wLngiCisKK3d0Zi04QDEuMC4wOgorICB2ZXJzaW9uICIxLjAu MCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20v d3RmLTgvLS93dGYtOC0xLjAuMC50Z3ojMzkyZDhiYTJkMGYxYzM0ZDFlZTJk NjMwZjE1ZDBlZmI2OGUxMDQ4YSIKKworeG1saHR0cHJlcXVlc3Qtc3NsQDEu NS4zOgorICB2ZXJzaW9uICIxLjUuMyIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20veG1saHR0cHJlcXVlc3Qtc3NsLy0veG1s aHR0cHJlcXVlc3Qtc3NsLTEuNS4zLnRneiMxODVhODg4YzA0ZWNhNDZjM2U0 MDcwZDk5ZjdiNDlkZTM1Mjg5OTJkIgorCit4dGVuZEBeNC4wLjAsIHh0ZW5k QH40LjAuMToKKyAgdmVyc2lvbiAiNC4wLjEiCisgIHJlc29sdmVkICJodHRw czovL3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3h0ZW5kLy0veHRlbmQtNC4wLjEu dGd6I2E1YzZkNTMyYmU2NTZlMjNkYjgyMGVmYjk0M2ExZjA0OTk4ZDYzYWYi CisKK3kxOG5AXjMuMi4xOgorICB2ZXJzaW9uICIzLjIuMSIKKyAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20veTE4bi8tL3kxOG4t My4yLjEudGd6IzZkMTVmYmE4ODRjMDg2NzljMGQ3N2U4OGU3NzU5ZTgxMWUw N2ZhNDEiCisKK3lhcmdzLXBhcnNlckBeNC4yLjA6CisgIHZlcnNpb24gIjQu Mi4xIgorICByZXNvbHZlZCAiaHR0cHM6Ly9yZWdpc3RyeS55YXJucGtnLmNv bS95YXJncy1wYXJzZXIvLS95YXJncy1wYXJzZXItNC4yLjEudGd6IzI5Y2Nl YWMwZGM0ZjAzYzZjODdiNGE5ZjIxN2RkMThjOWY3NDg3MWMiCisgIGRlcGVu ZGVuY2llczoKKyAgICBjYW1lbGNhc2UgIl4zLjAuMCIKKworeWFyZ3NAXjYu MC4wOgorICB2ZXJzaW9uICI2LjYuMCIKKyAgcmVzb2x2ZWQgImh0dHBzOi8v cmVnaXN0cnkueWFybnBrZy5jb20veWFyZ3MvLS95YXJncy02LjYuMC50Z3oj NzgyZWMyMWVmNDAzMzQ1ZjgzMGE4MDhjYTNkNTEzYWY1NjA2NTIwOCIKKyAg ZGVwZW5kZW5jaWVzOgorICAgIGNhbWVsY2FzZSAiXjMuMC4wIgorICAgIGNs aXVpICJeMy4yLjAiCisgICAgZGVjYW1lbGl6ZSAiXjEuMS4xIgorICAgIGdl dC1jYWxsZXItZmlsZSAiXjEuMC4xIgorICAgIG9zLWxvY2FsZSAiXjEuNC4w IgorICAgIHJlYWQtcGtnLXVwICJeMS4wLjEiCisgICAgcmVxdWlyZS1kaXJl Y3RvcnkgIl4yLjEuMSIKKyAgICByZXF1aXJlLW1haW4tZmlsZW5hbWUgIl4x LjAuMSIKKyAgICBzZXQtYmxvY2tpbmcgIl4yLjAuMCIKKyAgICBzdHJpbmct d2lkdGggIl4xLjAuMiIKKyAgICB3aGljaC1tb2R1bGUgIl4xLjAuMCIKKyAg ICB5MThuICJeMy4yLjEiCisgICAgeWFyZ3MtcGFyc2VyICJeNC4yLjAiCisK K3lhcmdzQH4zLjEwLjA6CisgIHZlcnNpb24gIjMuMTAuMCIKKyAgcmVzb2x2 ZWQgImh0dHBzOi8vcmVnaXN0cnkueWFybnBrZy5jb20veWFyZ3MvLS95YXJn cy0zLjEwLjAudGd6I2Y3ZWU3YmQ4NTdkZDdjMWQyZDM4YzBlNzRlZmJkNjgx ZDE0MzFmZDEiCisgIGRlcGVuZGVuY2llczoKKyAgICBjYW1lbGNhc2UgIl4x LjAuMiIKKyAgICBjbGl1aSAiXjIuMS4wIgorICAgIGRlY2FtZWxpemUgIl4x LjAuMCIKKyAgICB3aW5kb3ctc2l6ZSAiMC4xLjAiCisKK3lhdXpsQDIuNC4x OgorICB2ZXJzaW9uICIyLjQuMSIKKyAgcmVzb2x2ZWQgImh0dHBzOi8vcmVn aXN0cnkueWFybnBrZy5jb20veWF1emwvLS95YXV6bC0yLjQuMS50Z3ojOTUy OGY0NDJkYWIxYjIyODRlNThiNDM3OWJiMTk0ZTIyZTBjNDAwNSIKKyAgZGVw ZW5kZW5jaWVzOgorICAgIGZkLXNsaWNlciAifjEuMC4xIgorCit5ZWFzdEAw LjEuMjoKKyAgdmVyc2lvbiAiMC4xLjIiCisgIHJlc29sdmVkICJodHRwczov L3JlZ2lzdHJ5Lnlhcm5wa2cuY29tL3llYXN0Ly0veWVhc3QtMC4xLjIudGd6 IzAwOGUwNmQ4MDk0MzIwYzM3MmRiYzJmOGVkNzZhMGNhNmM4YWM0MTkiCg== --001a1145b0e02799db0551c1336f Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a1145b0e02799db0551c1336f--