From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "Daniel R. Grayson" Newsgroups: gmane.emacs.bugs Subject: bug#55744: infinite loop Date: Tue, 31 May 2022 13:42:27 -0700 Message-ID: References: <878rqh4g1z.fsf@gnus.org> <874k154fbj.fsf@gnus.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="00000000000087d81e05e054d04a" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="39306"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 55744@debbugs.gnu.org To: Lars Ingebrigtsen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue May 31 22:43:36 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nw8iF-000A39-NQ for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 31 May 2022 22:43:36 +0200 Original-Received: from localhost ([::1]:54574 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nw8iE-0001Xm-FR for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 31 May 2022 16:43:34 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:41798) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nw8hi-0001XA-CZ for bug-gnu-emacs@gnu.org; Tue, 31 May 2022 16:43:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:55111) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nw8hi-0002Ez-3O for bug-gnu-emacs@gnu.org; Tue, 31 May 2022 16:43:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nw8hh-0001ei-W4 for bug-gnu-emacs@gnu.org; Tue, 31 May 2022 16:43:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: "Daniel R. Grayson" Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 31 May 2022 20:43:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 55744 X-GNU-PR-Package: emacs Original-Received: via spool by 55744-submit@debbugs.gnu.org id=B55744.16540297726345 (code B ref 55744); Tue, 31 May 2022 20:43:01 +0000 Original-Received: (at 55744) by debbugs.gnu.org; 31 May 2022 20:42:52 +0000 Original-Received: from localhost ([127.0.0.1]:49008 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nw8hX-0001eH-NK for submit@debbugs.gnu.org; Tue, 31 May 2022 16:42:51 -0400 Original-Received: from mail-lj1-f180.google.com ([209.85.208.180]:36502) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nw8hW-0001e3-1l for 55744@debbugs.gnu.org; Tue, 31 May 2022 16:42:50 -0400 Original-Received: by mail-lj1-f180.google.com with SMTP id g12so15833392lja.3 for <55744@debbugs.gnu.org>; Tue, 31 May 2022 13:42:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Kw5HqzSKo+oT4yWwNTrVSYN+3JpQCK810I0bGA1nS3o=; b=R+Uy82A9g+1XU/m/Fa9jyOzkcBGR0a6Jq/4GAd6AS8jI7eHOtK3aZX40DPu6ESGqZQ E/XN3HZZI2MvAZh96IYWCc8CCS4F1quXNIlTR1fQYD/O4V7rKA1QKKl2S7pXlPL5NnwV tmmCaz9a8X3adI75wBsveaSozDUbt9GkNYLULdVXQtUb71jNHXorwgV7QzqpTER2g1lL san/Mo2lkswj0XMzffaficSpghdG2/O/yDJI0Xi3KF6eqQ2E38PrRamACi1pJaDRubyS xZnn8H5ZeQMyJywtIWKX7K7P2un0JhkC6jMRdqvOEbt5ssY1MmCH3K/kwe2/l004z8an j7vg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Kw5HqzSKo+oT4yWwNTrVSYN+3JpQCK810I0bGA1nS3o=; b=zA/lWUYc4d59DWhF4d5yyAYPa/MHt/hkbki6AepumYBwhThlNSEMshosrov29sMtGM Cbo387vDcHm4XTCiTkbcE8uazr4edXIJqYReu7OTBVpLxkmc36upaGCr4oVUNzoB99a+ 8Ye5RyQd1vZxPcnydo9BPgUG4qK5MrkFhKWvBDvfzoxFQuH2lgXLPW86spON/o4IK6FQ IlbMWXdzokmP6mTjFO4RjTOkWqf7yauPvU/mBqjZ5up4KMVA8RTPkL+eQL7FyTCRQZI7 e0G0kalwm6191Gvmb0ac77c493XDa1YkylMn7Qd7m8Qf6UQyCnUOprFlXhsfxxA4QPz0 yZ3Q== X-Gm-Message-State: AOAM533s1zpNxrBLYEG0RdAKUinEoG3QKaCbQEFyd6+TrhoyjIwxkqDz Xx2ZojAwsMPHJ07VV3nmd42ag6qgoVFYxa+t7gA= X-Google-Smtp-Source: ABdhPJyjZUXrXO8KCQTPle56LWbJC2EqKeihYGwzp9e9jRhdsCsoDw0WRMLktdm8GulclhK2bcja0hvhPH2fyV5MoJM= X-Received: by 2002:a2e:a36f:0:b0:253:d948:731c with SMTP id i15-20020a2ea36f000000b00253d948731cmr34931792ljn.159.1654029763968; Tue, 31 May 2022 13:42:43 -0700 (PDT) In-Reply-To: <874k154fbj.fsf@gnus.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:233466 Archived-At: --00000000000087d81e05e054d04a Content-Type: multipart/alternative; boundary="00000000000087d81d05e054d048" --00000000000087d81d05e054d048 Content-Type: text/plain; charset="UTF-8" Ah, indeed, the bug doesn't seem to be reproducible with "-Q". I attach my .emacs and .emacs-Macaulay2. --00000000000087d81d05e054d048 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Ah, indeed, the bug doesn't seem to be reproducible wi= th "-Q".=C2=A0 I attach my .emacs and .emacs-Macaulay2.

<= /div>

--00000000000087d81d05e054d048-- --00000000000087d81e05e054d04a Content-Type: application/octet-stream; name=".emacs" Content-Disposition: attachment; filename=".emacs" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l3umhjdf0 OzsgLSotIGNvZGluZzogdXRmLTggLSotCjs7IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KOzsgQXF1YW1h Y3MgY3VzdG9tLWZpbGUgd2FybmluZzoKOzsgV2FybmluZzogQWZ0ZXIgbG9hZGluZyB0aGlzIC5l bWFjcyBmaWxlLCBBcXVhbWFjcyB3aWxsIGFsc28gbG9hZAo7OyBjdXN0b21pemF0aW9ucyBmcm9t IGBjdXN0b20tZmlsZScgKGN1c3RvbWl6YXRpb25zLmVsKS4gQW55IHNldHRpbmdzIHRoZXJlCjs7 IHdpbGwgb3ZlcnJpZGUgdGhvc2UgbWFkZSBoZXJlLgo7OyBDb25zaWRlciBtb3ZpbmcgeW91ciBz dGFydHVwIHNldHRpbmdzIHRvIHRoZSBQcmVmZXJlbmNlcy5lbCBmaWxlLCB3aGljaAo7OyBpcyBs b2FkZWQgYWZ0ZXIgYGN1c3RvbS1maWxlJzoKOzsgfi9MaWJyYXJ5L1ByZWZlcmVuY2VzL0FxdWFt YWNzIEVtYWNzL1ByZWZlcmVuY2VzCjs7IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgo7OyBkZWJ1Z2dp bmcgY3VycmVudCBlbWFjczoKOzsoc2V0LW1hcmtlciBjb21pbnQtbGFzdC1vdXRwdXQtc3RhcnQg KHBvaW50KSkKOzsoZ290by1jaGFyIGNvbWludC1sYXN0LW91dHB1dC1zdGFydCkKCihtZXNzYWdl ICJMb2FkaW5nIC5lbWFjcyIpCihpZiAoZXF1YWwgZGVmYXVsdC1kaXJlY3RvcnkgIi8iKSAoc2V0 cSBkZWZhdWx0LWRpcmVjdG9yeSAifi8iKSkKCjs7OyBjYWNoZWQgZW52aXJvbm1lbnQgZnJvbSAu cGF0aHMgc2NyaXB0Cjs7IChsb2FkICJ+Ly5wYXRocy5lbCIgdCkKCjsgJyhjb21pbnQtcGFzc3dv cmQtcHJvbXB0LXJlZ2V4cCAiXFwoXFwoXFxbc3Vkb1xcXSBcXHxbT29dbGQgXFx8W05uXWV3IFxc fCdzIFxcfGxvZ2luIFxcfEtlcmJlcm9zIFxcfENWUyBcXHxJbWFwIFxcfFVOSVggXFx8TWFpbCBh Y2NvdW50IFxcfCBTTUIgXFx8XlxcKVtQcF1hc3N3XFwob3JcXCk/ZFxcKCAoYWdhaW4pXFwpP1xc fHBhc3MgcGhyYXNlXFx8XFwoRW50ZXJcXHxSZXBlYXRcXHxCYWRcXCkgcGFzc3BocmFzZVxcKVxc KD86LCB0cnkgYWdhaW5cXCk/XFwoPzogZm9yIFteOl0rXFwpPzpcXHMgKlxcJyIpCihzZXRxIGNv bWludC1wYXNzd29yZC1wcm9tcHQtcmVnZXhwICJcXCheICpcXHxcXCggU01CXFx8J3NcXHxCYWRc XHxDVlNcXHxFbnRlclxcKD86IFxcKD86XFwoPzpzYW1cXHx0aFxcKWVcXClcXCk/XFx8S2VyYmVy b3NcXHxMREFQXFx8TmV3XFx8T2xkXFx8UmVwZWF0XFx8VU5JWFxcfFxcW3N1ZG9dXFx8ZW50ZXJc XCg/OiBcXCg/OlxcKD86c2FtXFx8dGhcXCllXFwpXFwpP1xcfGxvZ2luXFx8bmV3XFx8b2xkXFwp ICtcXClcXCg/OlBhc3NcXCg/OiBwaHJhc2VcXHxwaHJhc2VcXHx3b3JkXFwpXFx8UmVzcG9uc2Vc XHxwYXNzXFwoPzogcGhyYXNlXFx8cGhyYXNlXFx8d29yZFxcKVxcKVxcKD86XFwoPzosIHRyeVxc KT8gKmFnYWluXFx8IChlbXB0eSBmb3Igbm8gcGFzc3BocmFzZSlcXHwgKGFnYWluKVxcKT9cXCg/ OiBmb3IgXFwoPzpbXjpdXFx8J1teJ10qJ1xcKStcXCk/OlxccyAqXFwnIikKCihjdXN0b20tc2V0 LXZhcmlhYmxlcwogOzsgY3VzdG9tLXNldC12YXJpYWJsZXMgd2FzIGFkZGVkIGJ5IEN1c3RvbS4K IDs7IElmIHlvdSBlZGl0IGl0IGJ5IGhhbmQsIHlvdSBjb3VsZCBtZXNzIGl0IHVwLCBzbyBiZSBj YXJlZnVsLgogOzsgWW91ciBpbml0IGZpbGUgc2hvdWxkIGNvbnRhaW4gb25seSBvbmUgc3VjaCBp bnN0YW5jZS4KIDs7IElmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUsIHRoZXkgd29uJ3Qgd29yayBy aWdodC4KICcoTTItaW5kZW50LWxldmVsIDUpCiAnKGF1dG8tY29tcHJlc3Npb24tbW9kZSB0KQog JyhhdXRvLWltYWdlLWZpbGUtbW9kZSB0IG5pbCAoaW1hZ2UtZmlsZSkpCiAnKGF1dG8tc2F2ZS1k ZWZhdWx0IHQpCiAnKGF1dG8tc2F2ZS1saXN0LWZpbGUtcHJlZml4ICJ+Ly5lbWFjcy5kL2F1dG8t c2F2ZS1saXN0L3NhdmVzLSIpCiAnKGJhY2t1cC1ieS1jb3B5aW5nLXdoZW4tbGlua2VkIDEpCiAn KGJsaW5rLWN1cnNvci1tb2RlIG5pbCkKICcoYy1iYXNpYy1vZmZzZXQgMikKICcoY2FsZW5kYXIt bGF0aXR1ZGUgNDAuMDg1NCkKICcoY2FsZW5kYXItbG9jYXRpb24tbmFtZSAiVXJiYW5hLCBJbGxp bm9pcyIpCiAnKGNhbGVuZGFyLWxvbmdpdHVkZSAtODguMjAyNSkKICcoY2FsZW5kYXItdmlldy1k aWFyeS1pbml0aWFsbHktZmxhZyB0KQogJyhjYXNlLWZvbGQtc2VhcmNoIG5pbCkKICcoY29taW50 LWlucHV0LWF1dG9leHBhbmQgbmlsKQogJyhjb21pbnQtc2Nyb2xsLXNob3ctbWF4aW11bS1vdXRw dXQgbmlsKQogJyhjb21waWxhdGlvbi1hc2stYWJvdXQtc2F2ZSBuaWwpCiAnKGNvbXBpbGF0aW9u LXJlYWQtY29tbWFuZCBuaWwpCiAnKGNvbXBpbGF0aW9uLXNjcm9sbC1vdXRwdXQgdCkKICcoY29t cGlsZS1jb21tYW5kICJtYWtlIC1qMSAiKQogJyhjb21wbGV0aW9uLWF1dG8taGVscCAwKQogJyhj dGwtYXJyb3cgdCkKICcoY3VzdG9tLXRoZW1lLWxvYWQtcGF0aCAnKGN1c3RvbS10aGVtZS1kaXJl Y3RvcnkgdCAifi9lbWFjcyIpIHQpCiAnKGRlbGV0ZS1hY3RpdmUtcmVnaW9uIG5pbCkKICcoZGVs ZXRlLWF1dG8tc2F2ZS1maWxlcyAxKQogJyhkZWxldGUtdHJhaWxpbmctbGluZXMgbmlsKQogJyhk ZXNjcmliZS1jaGFyLXVuaWRhdGEtbGlzdAogICAnKG5hbWUgb2xkLW5hbWUgZ2VuZXJhbC1jYXRl Z29yeSBkZWNvbXBvc2l0aW9uIGlzby0xMDY0Ni1jb21tZW50KSkKICcoZGlhcnktZGlzcGxheS1m dW5jdGlvbiAnKGZhbmN5LWRpYXJ5LWRpc3BsYXkpKQogJyhkaWFyeS1kaXNwbGF5LWhvb2sgJyhm YW5jeS1kaWFyeS1kaXNwbGF5KSkKICcoZGlhcnktZmlsZSAifi9ob21lL3Zhci9kaWFyeSIpCiAn KGRpYXJ5LWxpc3QtZW50cmllcy1ob29rICcoaW5jbHVkZS1vdGhlci1kaWFyeS1maWxlcyBzb3J0 LWRpYXJ5LWVudHJpZXMpKQogJyhkaWFyeS1udW1iZXItb2YtZW50cmllcyAzKQogJyhkaWZmLXN3 aXRjaGVzICItdSIpCiAnKGVkaXQtc2VydmVyLW5ldy1mcmFtZS1hbGlzdAogICAnKChuYW1lIC4g IkVtYWNzIFRFWFRBUkVBIikKICAgICAod2lkdGggLiAxMzApCiAgICAgKGhlaWdodCAuIDQwKQog ICAgIChtaW5pYnVmZmVyIC4gdCkKICAgICAobWVudS1iYXItbGluZXMgLiB0KQogICAgICh0b3Ag LiAxKSkpCiAnKGVuYWJsZS1yZWN1cnNpdmUtbWluaWJ1ZmZlcnMgMSkKICcoZmlsbC1jb2x1bW4g NzkpCiAnKGZvbnQtbG9jay1tYXhpbXVtLWRlY29yYXRpb24gdCkKICcoZ2MtY29ucy10aHJlc2hv bGQgMTAwMDAwMCkKICcoZ2xvYmFsLWF1dG8tcmV2ZXJ0LWlnbm9yZS1tb2RlcyAnKHRhZ3MtdGFi bGUtbW9kZSkpCiAnKGdsb2JhbC1hdXRvLXJldmVydC1tb2RlIHQpCiAnKGdsb2JhbC1mb250LWxv Y2stbW9kZSB0IG5pbCAoZm9udC1sb2NrKSkKICcoZ251cy1hcnRpY2xlLWJ1dHRvbi1mYWNlICdo aWdobGlnaHQpCiAnKGdudXMtYXJ0aWNsZS1zYXZlLWRpcmVjdG9yeSAifi8uZ251cy8iKQogJyhn bnVzLWNpdGVkLWxpbmVzLXZpc2libGUgMSkKICcoZ251cy1kZWZhdWx0LXN1YnNjcmliZWQtbmV3 c2dyb3VwcwogICAnKCJzY2kubWF0aC5yZXNlYXJjaCIgImNvbXAub3MubGludXguYW5ub3VuY2Ui ICJnbnUuZW1hY3MuYW5ub3VuY2UiICJnbnUuZ2NjLmFubm91bmNlIiAiZ251LmcrKy5hbm5vdW5j ZSIpKQogJyhnbnVzLWRpcmVjdG9yeSAifi8uZ251cy8iKQogJyhnbnVzLWdyb3VwLWxpbmUtZm9y bWF0ICIlTSVTIDwlTD4lNXk6ICUoJWclKQoiKQogJyhnbnVzLWtlZXAtc2FtZS1sZXZlbCB0KQog JyhnbnVzLWtpbGwtZmlsZXMtZGlyZWN0b3J5ICJ+Ly5nbnVzLyIpCiAnKGdudXMtbGV2ZWwtZGVm YXVsdC1zdWJzY3JpYmVkIDQpCiAnKGdudXMtc2F2ZS1uZXdzcmMtZmlsZSBuaWwpCiAnKGdudXMt c2Vjb25kYXJ5LXNlcnZlcnMKICAgJygibmV0bmV3cy5pbnNpZ2h0YmIuY29tIiAibmV3cy5jc28u dWl1Yy5lZHUiICJuZXdzLmtzLnVpdWMuZWR1IikpCiAnKGdudXMtc3VtbWFyeS1saW5lLWZvcm1h dCAiJWkgJVUlUiV6JUklKCVbJTRMOiAlLTIwLDIwbiVdJSkgJXMKIikKICcoZ251cy10cmVhdC1o aWRlLWNpdGF0aW9uIHQpCiAnKGdudXMtdmlzaWJsZS1oZWFkZXJzCiAgICcoIl5Gcm9tOiIgIl5T dWJqZWN0OiIgIl5EYXRlOiIgIl5BcHByb3ZlZDoiICJeTWVzc2FnZS1JW0RkXToiKSkKICcoZ3Jl cC1jb21tYW5kICJlZ3JlcCAtLWNvbG9yPW5ldmVyIC1uSCAtZSAiKQogJyhndWQtZ2RiLWNvbW1h bmQtbmFtZSAiZ2RiIC0tYW5ub3RhdGU9MSIpCiAnKGhpZ2hsaWdodC1ub25zZWxlY3RlZC13aW5k b3dzIHQpCiAnKGljb21wbGV0ZS1wcm9zcGVjdHMtaGVpZ2h0IDUpCiAnKGluaGliaXQtc3RhcnR1 cC1zY3JlZW4gdCkKICcobGFyZ2UtZmlsZS13YXJuaW5nLXRocmVzaG9sZCBuaWwpCiAnKGxpc3Qt ZGlhcnktZW50cmllcy1ob29rICcoaW5jbHVkZS1vdGhlci1kaWFyeS1maWxlcyBzb3J0LWRpYXJ5 LWVudHJpZXMpKQogJyhsaXN0LWRpcmVjdG9yeS1icmllZi1zd2l0Y2hlcyAiLXNDRiIpCiAnKGxv YWQtaG9tZS1pbml0LWZpbGUgdCB0KQogJyhtYWlsLWFyY2hpdmUtZmlsZS1uYW1lICJvdXRib3gi KQogJyhtYWlsLXNwZWNpZnktZW52ZWxvcGUtZnJvbSB0KQogJyhtYWlsLXlhbmstaWdub3JlZC1o ZWFkZXJzCiAgICJ8XmRpc3Bvc2l0aW9uLW5vdGlmaWNhdGlvbi10bzpcXHxedmlhOlxcfF5tYWls LWZyb206XFx8Xm9yaWdpbjpcXHxec3RhdHVzOlxcfF5yZW1haWxlZFxcfF5yZWNlaXZlZDpcXHxe bWVzc2FnZS1pZDpcXHxec3VtbWFyeS1saW5lOlxcfF5pbi1yZXBseS10bzpcXHxecmV0dXJuLXBh dGg6IikKICcobWFpbC15YW5rLXByZWZpeCAiPiAiKQogJyhtYWtlLWJhY2t1cC1maWxlcyBuaWwp CiAnKG1pemFyLWxhdW5jaC1zcGVlZGJhciBuaWwpCiAnKG5leHQtbGluZS1hZGQtbmV3bGluZXMg dCkKICcobnVtYmVyLW9mLWRpYXJ5LWVudHJpZXMgMykKICcocGFja2FnZS1zZWxlY3RlZC1wYWNr YWdlcwogICAnKGFnZGEyLW1vZGUgYWdncmVzc2l2ZS1maWxsLXBhcmFncmFwaCBqdWxpYS1tb2Rl IGdoLW1kIGNtYWtlLW1vZGUgcHJvb2YtZ2VuZXJhbCB5YW1sLW1vZGUgbGVhbi1tb2RlIGNhbWwg c21sLW1vZGUgdHVhcmVnIHBvdi1tb2RlIGdhcC1tb2RlIHJlZHBybCBydXN0LW1vZGUgY29tcGFu eS1jb3EgcmFpbmJvdy1kZWxpbWl0ZXJzIG11bHRpcGxlLWN1cnNvcnMgbWV3IG1hcmtkb3duLW1v ZGUgbWFnaXQgaGFza2VsbC1tb2RlIGV4cGFuZC1yZWdpb24pKQogJyhwYWdlLWRlbGltaXRlciAi DCIpCiAnKHByb29mLWF1dG8tYWN0aW9uLXdoZW4tZGVhY3RpdmF0aW5nLXNjcmlwdGluZyAncmV0 cmFjdCkKICcocHJvb2YtZnVsbC1hbm5vdGF0aW9uIHQpCiAnKHByb29mLWdlbmVyYWwtZGVidWcg bmlsKQogJyhwcm9vZi1tdWx0aXBsZS1mcmFtZXMtZW5hYmxlIG5pbCkKICcocHJvb2Ytb3V0cHV0 LXRvb2x0aXBzIHQpCiAnKHByb29mLXNwbGFzaC1lbmFibGUgbmlsKQogJyhwcm9vZi10aHJlZS13 aW5kb3ctZW5hYmxlIG5pbCkKICcocmVhZC1maWxlLW5hbWUtY29tcGxldGlvbi1pZ25vcmUtY2Fz ZSBuaWwpCiAnKHJlYWQtcXVvdGVkLWNoYXItcmFkaXggMTYpCiAnKHJlZnRleC11c2UtZXh0ZXJu YWwtZmlsZS1maW5kZXJzIHQpCiAnKHJlcXVpcmUtZmluYWwtbmV3bGluZSBuaWwpCiAnKHJtYWls LWVuYWJsZS1taW1lIG5pbCkKICcocm1haWwtcHJlc2VydmUtaW5ib3ggbmlsKQogJyhybWFpbC1z ZWNvbmRhcnktZmlsZS1yZWdleHAgIi4iKQogJyhzYWZlLWxvY2FsLXZhcmlhYmxlLXZhbHVlcwog ICAnKChsYXRleC1ibG9jay1uYW1lcyAibGVtbWEiICJ0aGVvcmVtIiAicmVtYXJrIiAiZGVmaW5p dGlvbiIgImNvcm9sbGFyeSIgImZhY3QiICJwcm9wZXJ0aWVzIiAiY29uamVjdHVyZSIgInByb29m IiAicXVlc3Rpb24iICJwcm9wb3NpdGlvbiIgImV4ZXJjaXNlIikKICAgICAoZXZhbCBsZXQKCSAg ICgodW5pbWF0aC10b3BkaXIKCSAgICAgKGV4cGFuZC1maWxlLW5hbWUKCSAgICAgIChsb2NhdGUt ZG9taW5hdGluZy1maWxlIGJ1ZmZlci1maWxlLW5hbWUgIlVuaU1hdGgiKSkpKQoJICAgKHNldHEg ZmlsbC1jb2x1bW4gMTAwKQoJICAgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ2NvcS11c2UtcHJvamVj dC1maWxlKQoJICAgKHNldHEgY29xLXVzZS1wcm9qZWN0LWZpbGUgbmlsKQoJICAgKG1ha2UtbG9j YWwtdmFyaWFibGUgJ2NvcS1wcm9nLWFyZ3MpCgkgICAoc2V0cSBjb3EtcHJvZy1hcmdzCgkJIGAo Ii1xdWlldCIgIi1lbWFjcyIgIi1ub2luaXQiICItaW5kaWNlcy1tYXR0ZXIiICItdHlwZS1pbi10 eXBlIiAiLXciICItbm90YXRpb24tb3ZlcnJpZGRlbiIgIi1RIiAsKGNvbmNhdCB1bmltYXRoLXRv cGRpciAiVW5pTWF0aCIpCgkJICAgIlVuaU1hdGgiKSkKCSAgIChtYWtlLWxvY2FsLXZhcmlhYmxl ICdjb3EtcHJvZy1uYW1lKQoJICAgKHNldHEgY29xLXByb2ctbmFtZQoJCSAoY29uY2F0IHVuaW1h dGgtdG9wZGlyICJzdWIvY29xL2Jpbi9jb3F0b3AiKSkKCSAgIChtYWtlLWxvY2FsLXZhcmlhYmxl ICdiZWZvcmUtc2F2ZS1ob29rKQoJICAgKGFkZC1ob29rICdiZWZvcmUtc2F2ZS1ob29rICdkZWxl dGUtdHJhaWxpbmctd2hpdGVzcGFjZSkKCSAgIChtb2RpZnktc3ludGF4LWVudHJ5IDM5ICJ3IikK CSAgIChtb2RpZnktc3ludGF4LWVudHJ5IDk1ICJ3IikKCSAgIChpZgoJICAgICAgIChub3QKCQko bWVtcSAnYWdkYS1pbnB1dCBmZWF0dXJlcykpCgkgICAgICAgKGxvYWQKCQkoY29uY2F0IHVuaW1h dGgtdG9wZGlyICJlbWFjcy9hZ2RhL2FnZGEtaW5wdXQiKSkpCgkgICAoaWYKCSAgICAgICAobm90 CgkJKG1lbWJlcgoJCSAnKCJjaGltbmV5IiAi4pWdIikKCQkgYWdkYS1pbnB1dC11c2VyLXRyYW5z bGF0aW9ucykpCgkgICAgICAgKHByb2duCgkJIChzZXRxIGFnZGEtaW5wdXQtdXNlci10cmFuc2xh dGlvbnMKCQkgICAgICAgKGNvbnMKCQkJJygiY2hpbW5leSIgIuKVnSIpCgkJCWFnZGEtaW5wdXQt dXNlci10cmFuc2xhdGlvbnMpKQoJCSAoc2V0cSBhZ2RhLWlucHV0LXVzZXItdHJhbnNsYXRpb25z CgkJICAgICAgIChjb25zCgkJCScoIj09PiIgIuKfuSIpCgkJCWFnZGEtaW5wdXQtdXNlci10cmFu c2xhdGlvbnMpKQoJCSAoYWdkYS1pbnB1dC1zZXR1cCkpKQoJICAgKHNldC1pbnB1dC1tZXRob2Qg IkFnZGEiKSkKICAgICAobGF0ZXgtYmxvY2stbmFtZXMgcXVvdGUKCQkJKCJleGVyY2lzZSIgInhj YSIpKQogICAgIChldmFsIGxldAoJICAgKChkZWZhdWx0LWRpcmVjdG9yeQoJICAgICAgKGxvY2F0 ZS1kb21pbmF0aW5nLWZpbGUgYnVmZmVyLWZpbGUtbmFtZSAiLmRpci1sb2NhbHMuZWwiKSkpCgkg ICAobWFrZS1sb2NhbC12YXJpYWJsZSAnY29xLXByb2ctbmFtZSkKCSAgIChzZXRxIGNvcS1wcm9n LW5hbWUKCQkgKGV4cGFuZC1maWxlLW5hbWUgIi4uL2hvcXRvcCIpKSkKICAgICAoVGVYLW1hc3Rl ciAuICJob3R0LW9ubGluZSIpCiAgICAgKGV2YWwgbGV0CgkgICAoKHVuaW1hdGgtdG9wZGlyCgkg ICAgIChleHBhbmQtZmlsZS1uYW1lCgkgICAgICAobG9jYXRlLWRvbWluYXRpbmctZmlsZSBidWZm ZXItZmlsZS1uYW1lICJVbmlNYXRoIikpKSkKCSAgIChzZXRxIGZpbGwtY29sdW1uIDEwMCkKCSAg IChtYWtlLWxvY2FsLXZhcmlhYmxlICdjb3EtdXNlLXByb2plY3QtZmlsZSkKCSAgIChzZXRxIGNv cS11c2UtcHJvamVjdC1maWxlIG5pbCkKCSAgIChtYWtlLWxvY2FsLXZhcmlhYmxlICdjb3EtcHJv Zy1hcmdzKQoJICAgKHNldHEgY29xLXByb2ctYXJncwoJCSBgKCItZW1hY3MiICItbm9pbml0IiAi LWluZGljZXMtbWF0dGVyIiAiLVEiICwoY29uY2F0IHVuaW1hdGgtdG9wZGlyICJVbmlNYXRoIikK CQkgICAiVW5pTWF0aCIgIi13IiAiLW5vdGF0aW9uLW92ZXJyaWRkZW4iKSkKCSAgIChpZgoJICAg ICAgIChlcXVhbCBidWZmZXItZmlsZS1uYW1lCgkJICAgICAgKGNvbmNhdCB1bmltYXRoLXRvcGRp ciAiVW5pTWF0aC9Gb3VuZGF0aW9ucy9SZXNpemluZy52IikpCgkgICAgICAgKHNldHEgY29xLXBy b2ctYXJncwoJCSAgICAgKGNvbnMgIi10eXBlLWluLXR5cGUiIGNvcS1wcm9nLWFyZ3MpKSkKCSAg IChtYWtlLWxvY2FsLXZhcmlhYmxlICdjb3EtcHJvZy1uYW1lKQoJICAgKHNldHEgY29xLXByb2ct bmFtZQoJCSAoY29uY2F0IHVuaW1hdGgtdG9wZGlyICJzdWIvY29xL2Jpbi9jb3F0b3AiKSkKCSAg IChtYWtlLWxvY2FsLXZhcmlhYmxlICdiZWZvcmUtc2F2ZS1ob29rKQoJICAgKGFkZC1ob29rICdi ZWZvcmUtc2F2ZS1ob29rICdkZWxldGUtdHJhaWxpbmctd2hpdGVzcGFjZSkKCSAgIChtb2RpZnkt c3ludGF4LWVudHJ5IDM5ICJ3IikKCSAgIChtb2RpZnktc3ludGF4LWVudHJ5IDk1ICJ3IikKCSAg IChpZgoJICAgICAgIChub3QKCQkobWVtcSAnYWdkYS1pbnB1dCBmZWF0dXJlcykpCgkgICAgICAg KGxvYWQKCQkoY29uY2F0IHVuaW1hdGgtdG9wZGlyICJlbWFjcy9hZ2RhL2FnZGEtaW5wdXQiKSkp CgkgICAoaWYKCSAgICAgICAobm90CgkJKG1lbWJlcgoJCSAnKCJjaGltbmV5IiAi4pWdIikKCQkg YWdkYS1pbnB1dC11c2VyLXRyYW5zbGF0aW9ucykpCgkgICAgICAgKHByb2duCgkJIChzZXRxIGFn ZGEtaW5wdXQtdXNlci10cmFuc2xhdGlvbnMKCQkgICAgICAgKGNvbnMKCQkJJygiY2hpbW5leSIg IuKVnSIpCgkJCWFnZGEtaW5wdXQtdXNlci10cmFuc2xhdGlvbnMpKQoJCSAoc2V0cSBhZ2RhLWlu cHV0LXVzZXItdHJhbnNsYXRpb25zCgkJICAgICAgIChjb25zCgkJCScoIj09PiIgIuKfuSIpCgkJ CWFnZGEtaW5wdXQtdXNlci10cmFuc2xhdGlvbnMpKQoJCSAoYWdkYS1pbnB1dC1zZXR1cCkpKQoJ ICAgKHNldC1pbnB1dC1tZXRob2QgIkFnZGEiKSkKICAgICAoZXZhbCBwcm9nbgoJICAgKG1ha2Ut bG9jYWwtdmFyaWFibGUgJ2NvcS1wcm9nLWFyZ3MpCgkgICAoc2V0cSBjb3EtcHJvZy1hcmdzCgkJ IGAoIi1ub2luaXQiICItZW1hY3MiICItaW5kaWNlcy1tYXR0ZXIiICItdHlwZS1pbi10eXBlIiAi LVEiICwoZXhwYW5kLWZpbGUtbmFtZQoJCQkJCQkJCQkgICAgICAgKGxvY2F0ZS1kb21pbmF0aW5n LWZpbGUgYnVmZmVyLWZpbGUtbmFtZSAiLmRpci1sb2NhbHMuZWwiKSkKCQkgICAiVHlwZVRoZW9y eSIpKSkKICAgICAoVGVYLW1hc3RlciAuICJib29rIikKICAgICAoVGVYLW1hc3RlciAuIHQpCiAg ICAgKGxhdGV4LWJsb2NrLW5hbWVzICJsZW1tYSIgInRoZW9yZW0iICJyZW1hcmsiICJkZWZpbml0 aW9uIiAiY29yb2xsYXJ5IiAiZmFjdCIgInByb3BlcnRpZXMiICJjb25qZWN0dXJlIiAicHJvb2Yi ICJxdWVzdGlvbiIgInByb3Bvc2l0aW9uIikKICAgICAoZXZhbCBsZXQKCSAgICgodW5pbWF0aC10 b3BkaXIKCSAgICAgKGV4cGFuZC1maWxlLW5hbWUKCSAgICAgIChsb2NhdGUtZG9taW5hdGluZy1m aWxlIGJ1ZmZlci1maWxlLW5hbWUgIlVuaU1hdGgiKSkpKQoJICAgKHNldHEgZmlsbC1jb2x1bW4g MTAwKQoJICAgKG1ha2UtbG9jYWwtdmFyaWFibGUgJ2NvcS11c2UtcHJvamVjdC1maWxlKQoJICAg KHNldHEgY29xLXVzZS1wcm9qZWN0LWZpbGUgbmlsKQoJICAgKG1ha2UtbG9jYWwtdmFyaWFibGUg J2NvcS1wcm9nLWFyZ3MpCgkgICAoc2V0cSBjb3EtcHJvZy1hcmdzCgkJIGAoIi1lbWFjcyIgIi1u b2luaXQiICItaW5kaWNlcy1tYXR0ZXIiICItdHlwZS1pbi10eXBlIiAiLXciICItbm90YXRpb24t b3ZlcnJpZGRlbiIgIi1RIiAsKGNvbmNhdCB1bmltYXRoLXRvcGRpciAiVW5pTWF0aCIpCgkJICAg IlVuaU1hdGgiKSkKCSAgIChtYWtlLWxvY2FsLXZhcmlhYmxlICdjb3EtcHJvZy1uYW1lKQoJICAg KHNldHEgY29xLXByb2ctbmFtZQoJCSAoY29uY2F0IHVuaW1hdGgtdG9wZGlyICJzdWIvY29xL2Jp bi9jb3F0b3AiKSkKCSAgIChtYWtlLWxvY2FsLXZhcmlhYmxlICdiZWZvcmUtc2F2ZS1ob29rKQoJ ICAgKGFkZC1ob29rICdiZWZvcmUtc2F2ZS1ob29rICdkZWxldGUtdHJhaWxpbmctd2hpdGVzcGFj ZSkKCSAgIChtb2RpZnktc3ludGF4LWVudHJ5IDM5ICJ3IikKCSAgIChtb2RpZnktc3ludGF4LWVu dHJ5IDk1ICJ3IikKCSAgIChpZgoJICAgICAgIChub3QKCQkobWVtcSAnYWdkYS1pbnB1dCBmZWF0 dXJlcykpCgkgICAgICAgKGxvYWQKCQkoY29uY2F0IHVuaW1hdGgtdG9wZGlyICJlbWFjcy9hZ2Rh L2FnZGEtaW5wdXQiKSkpCgkgICAoaWYKCSAgICAgICAobm90CgkJKG1lbWJlcgoJCSAnKCJjaGlt bmV5IiAi4pWdIikKCQkgYWdkYS1pbnB1dC11c2VyLXRyYW5zbGF0aW9ucykpCgkgICAgICAgKHBy b2duCgkJIChzZXRxIGFnZGEtaW5wdXQtdXNlci10cmFuc2xhdGlvbnMKCQkgICAgICAgKGNvbnMK CQkJJygiY2hpbW5leSIgIuKVnSIpCgkJCWFnZGEtaW5wdXQtdXNlci10cmFuc2xhdGlvbnMpKQoJ CSAoc2V0cSBhZ2RhLWlucHV0LXVzZXItdHJhbnNsYXRpb25zCgkJICAgICAgIChjb25zCgkJCSco Ij09PiIgIuKfuSIpCgkJCWFnZGEtaW5wdXQtdXNlci10cmFuc2xhdGlvbnMpKQoJCSAoYWdkYS1p bnB1dC1zZXR1cCkpKQoJICAgKHNldC1pbnB1dC1tZXRob2QgIkFnZGEiKSkpKQogJyhzY3JvbGwt YmFyLW1vZGUgbmlsKQogJyhzZW5kLW1haWwtZnVuY3Rpb24gJ3NlbmRtYWlsLXNlbmQtaXQpCiAn KHNzbC1jZXJ0aWZpY2F0ZS12ZXJpZmljYXRpb24tcG9saWN5IDEpCiAnKHNzbC1wcm9ncmFtLW5h bWUgIm9wZW5zc2wiKQogJyh0YWdzLXJldmVydC13aXRob3V0LXF1ZXJ5IHQpCiAnKHRlbXAtYnVm ZmVyLXJlc2l6ZS1tb2RlIHQpCiAnKHRleC1mb250aWZ5LXNjcmlwdCBuaWwpCiAnKHRleHQtc2Nh bGUtbW9kZS1zdGVwIDEuMDgpCiAnKHRyYWNrLWVvbCBuaWwpCiAnKHRyYW5zaWVudC1tYXJrLW1v ZGUgdCkKICcodHJ1bmNhdGUtbGluZXMgdCkKICcodXJsLXBlcnNvbmFsLW1haWwtYWRkcmVzcyAi ZGFuQG1hdGgudWl1Yy5lZHUiKQogJyh1cmwtcHJpdmFjeS1sZXZlbCAnKGVtYWlsIG9zIGxhc3Rs b2MgY29va2llKSkKICcodXNlci1mdWxsLW5hbWUgIkRhbmllbCBSLiBHcmF5c29uIikKICcodXNl ci1tYWlsLWFkZHJlc3MgImRhbkBtYXRoLnVpdWMuZWR1IikKICcodmMtZm9sbG93LXN5bWxpbmtz IG5pbCkKICcodmlldy1kaWFyeS1lbnRyaWVzLWluaXRpYWxseSB0KQogJyh2aXNpYmxlLWJlbGwg bmlsKQogJyh2bS1tdXRhYmxlLWZyYW1lcyBuaWwpCiAnKHZtLXByZXZpZXctbGluZXMgdCkKICco dzMtZGVmYXVsdC1zdHlsZXNoZWV0ICJ+Ly53My9zdHlsZXNoZWV0IikKICcodzMtdXNlci1jb2xv cnMtdGFrZS1wcmVjZWRlbmNlIHQpCiAnKHdpZGdldC1tZW51LW1pbmlidWZmZXItZmxhZyB0KQog Jyh3aW5kb3ctbWluLWhlaWdodCAyKQogJyh3b3JkLXdyYXAgdCkpCgo7OyAoc2V0cSB4LXNlbGVj dC1lbmFibGUtY2xpcGJvYXJkIHQpCjs7IChpZiAoYW5kICg+IGVtYWNzLW1ham9yLXZlcnNpb24g MjEpICg8IGVtYWNzLW1ham9yLXZlcnNpb24gMjUpKQo7OyAgICAgKHNldHEgeC1zZWxlY3QtZW5h YmxlLWNsaXBib2FyZCBuaWwgeC1zZWxlY3QtZW5hYmxlLXByaW1hcnkgdCBtb3VzZS1kcmFnLWNv cHktcmVnaW9uIHQpCQk7IGZyb20gTmVsc29uIEJlZWJlCjs7ICAgKQoKKGN1c3RvbS1zZXQtZmFj ZXMKIDs7IGN1c3RvbS1zZXQtZmFjZXMgd2FzIGFkZGVkIGJ5IEN1c3RvbS4KIDs7IElmIHlvdSBl ZGl0IGl0IGJ5IGhhbmQsIHlvdSBjb3VsZCBtZXNzIGl0IHVwLCBzbyBiZSBjYXJlZnVsLgogOzsg WW91ciBpbml0IGZpbGUgc2hvdWxkIGNvbnRhaW4gb25seSBvbmUgc3VjaCBpbnN0YW5jZS4KIDs7 IElmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUsIHRoZXkgd29uJ3Qgd29yayByaWdodC4KICkKCihp Y29tcGxldGUtbW9kZSAxKQooYWRkLWhvb2sgJ2ljb21wbGV0ZS1taW5pYnVmZmVyLXNldHVwLWhv b2sKCSAgKGZ1bmN0aW9uCgkgICAobGFtYmRhICgpCgkgICAgIChtYWtlLWxvY2FsLXZhcmlhYmxl ICd0cnVuY2F0ZS1saW5lcykKCSAgICAgKHNldHEgdHJ1bmNhdGUtbGluZXMgbmlsKSkpKQoocHV0 ICdjb21waWxlLWNvbW1hbmQgJ3NhZmUtbG9jYWwtdmFyaWFibGUgJ3N0cmluZ3ApCihpZiAoZmJv dW5kcCAndG9vbC1iYXItbW9kZSkgKHRvb2wtYmFyLW1vZGUgMCkpCihpZiAoZmJvdW5kcCAnbWVu dS1iYXItbW9kZSkgKG1lbnUtYmFyLW1vZGUgMCkpCihkZWZ1biB2aXNpYmxlLWhvcml6b250YWxs eSAoKQogIChzYXZlLWV4Y3Vyc2lvbgogICAgKGFuZAogICAgICg8PSAwICgtIChjdXJyZW50LWNv bHVtbikgKHdpbmRvdy1oc2Nyb2xsIChzZWxlY3RlZC13aW5kb3cpKSkpCiAgICAgKDwgKC0gKGN1 cnJlbnQtY29sdW1uKSAod2luZG93LWhzY3JvbGwgKHNlbGVjdGVkLXdpbmRvdykpKSAKCSh3aW5k b3ctd2lkdGggKHNlbGVjdGVkLXdpbmRvdykpKSkpKQooZ2xvYmFsLXNldC1rZXkgWyAoY29udHJv bCB6KSBdIGBzdXNwZW5kLWVtYWNzKSA7IEkgbmV2ZXIgd2FudCB0byBzdXNwZW5kIGEgZnJhbWUK KGdsb2JhbC1zZXQta2V5IFsgKGNvbnRyb2wgeCkgKGNvbnRyb2wgeikgXSBgc3VzcGVuZC1lbWFj cykgOyBJIG5ldmVyIHdhbnQgdG8gc3VzcGVuZCBhIGZyYW1lCihnbG9iYWwtc2V0LWtleSBbIGY1 IF0gJ3RvZ2dsZS10cnVuY2F0ZS1saW5lcykKKGdsb2JhbC1zZXQta2V5IFsgZjYgXSAndG9nZ2xl LXRydW5jYXRlLWxpbmVzKQooZ2xvYmFsLXNldC1rZXkgWyBmNyBdICd0b2dnbGUtbWVudS1iYXIt bW9kZS1mcm9tLWZyYW1lKQo7IChnbG9iYWwtc2V0LWtleSBbIGY4IF0gJ292ZXJ3cml0ZS1tb2Rl KQooZ2xvYmFsLXNldC1rZXkgWyAobWV0YSBmNykgXSAndG9nZ2xlLWVuYWJsZS1tdWx0aWJ5dGUt Y2hhcmFjdGVycykKKG1ha2UtdmFyaWFibGUtYnVmZmVyLWxvY2FsICd0cmFuc2llbnQtbWFyay1t b2RlKQoobWFrZS12YXJpYWJsZS1idWZmZXItbG9jYWwgJ2NvbXBpbGUtY29tbWFuZCkKOyAobWFr ZS12YXJpYWJsZS1idWZmZXItbG9jYWwgJ2NvbXBpbGUtaGlzdG9yeSkKCihzZXRxIGNvbXBpbGF0 aW9uLWRpcmVjdG9yeS1tYXRjaGVyICcoIlxcKD86RW50ZXJpbmdcXHxMZWF2aW5cXChnXFwpXFwp IGRpcmVjdG9yeSBbYCddXFwoLitcXCknJCIgKDIgLiAxKSkpCgoKOzsgbGFuZ3VhZ2UKKHNldC1s YW5ndWFnZS1lbnZpcm9ubWVudCAiVVRGLTgiKQo7IChzZXQtbGFuZ3VhZ2UtZW52aXJvbm1lbnQg IkNoaW5lc2UtR0IiKQo7ICh1dGYtdHJhbnNsYXRlLWNqay1sb2FkLXRhYmxlcykKKHNldHEgZGVm YXVsdC1pbnB1dC1tZXRob2QgImNoaW5lc2UtdG9uZXB5LXB1bmN0IikKCjsoc2V0LWxhbmd1YWdl LWVudmlyb25tZW50ICJHZXJtYW4iKQo7KHNldHEgZGVmYXVsdC1pbnB1dC1tZXRob2QgImdlcm1h bi1wb3N0Zml4IikKCihzZXRxIGZpbGUtbmFtZS1jb2Rpbmctc3lzdGVtICd1dGYtOCkKKHNldC10 ZXJtaW5hbC1jb2Rpbmctc3lzdGVtICd1dGYtOCkKOyAoc2V0cSBwcm9jZXNzLWNvZGluZy1zeXN0 ZW0tYWxpc3QgJygoIl5NMiIgLiAodXRmLTggLiB1dGYtOCkpKSkKKHNldHEgZGVmYXVsdC1wcm9j ZXNzLWNvZGluZy1zeXN0ZW0gJyh1dGYtOCAuIHV0Zi04KSkKCjs7ID9cQS1hICAgYWx0ICAgICAg Ym91bmQgdG8gQ3RybCBrZXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyXjIyCjs7 ID9ccy1hICAgc3VwZXIgICAgYm91bmQgdG8gd2luZG93cyBrZXkgb3IgcmlnaHQgYWx0IGtleSAg ICAgICAgICAgICAyXjIzCjs7ID9cSC1hICAgaHlwZXIgICAgYm91bmQgdG8gTWVudSBrZXkgb3Ig cmlnaHQgY3RybCBrZXkgICAgICAgICAgICAgICAyXjI0Cjs7ID9cUy1hICAgc2hpZnQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyXjI1Cjs7ID9c Qy1hICAgY3RybCAgICAgYm91bmQgdG8gY2FwcyBsb2NrIGtleSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAyXjI2Cjs7ID9cTS1hICAgbWV0YSAgICAgYm91bmQgdG8gQWx0IGtleSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAyXjI3IChzaWduIGJpdCBmb3IgMjggYml0IGludGVn ZXJzKQoKKGdsb2JhbC1zZXQta2V5IFsgZjkgXSAnY29taW50LXByZXZpb3VzLW1hdGNoaW5nLWlu cHV0LWZyb20taW5wdXQpCihnbG9iYWwtc2V0LWtleSBbIChjb250cm9sIHJldHVybikgXSAnbmV3 bGluZSkKCjs7IFRhcmd1cyB3aXJlbGVzcyBtb3VzZSB3aGVlbAooZGVmdW4gdXAtc2xpZ2h0bHkg KCkgKGludGVyYWN0aXZlKSAoc2Nyb2xsLXVwIDUpKQooZGVmdW4gZG93bi1zbGlnaHRseSAoKSAo aW50ZXJhY3RpdmUpIChzY3JvbGwtZG93biA1KSkKKGdsb2JhbC1zZXQta2V5IFttb3VzZS00XSAn ZG93bi1zbGlnaHRseSkKKGdsb2JhbC1zZXQta2V5IFttb3VzZS01XSAndXAtc2xpZ2h0bHkpCihk ZWZ1biBsZWZ0LXNsaWdodGx5ICgpIChpbnRlcmFjdGl2ZSkgKGJhY2t3YXJkLWNoYXIgMTUpKQoo ZGVmdW4gcmlnaHQtc2xpZ2h0bHkgKCkgKGludGVyYWN0aXZlKSAoZm9yd2FyZC1jaGFyIDE1KSkK KGRlZnVuIHVwLW9uZSAoKSAoaW50ZXJhY3RpdmUpIChzY3JvbGwtdXAgMSkpCihkZWZ1biBkb3du LW9uZSAoKSAoaW50ZXJhY3RpdmUpIChzY3JvbGwtZG93biAxKSkKKGdsb2JhbC1zZXQta2V5IFtT LW1vdXNlLTRdICdsZWZ0LXNsaWdodGx5KQooZ2xvYmFsLXNldC1rZXkgW1MtbW91c2UtNV0gJ3Jp Z2h0LXNsaWdodGx5KQooZGVmdW4gdXAtYS1sb3QgKCkgKGludGVyYWN0aXZlKSAoc2Nyb2xsLXVw KSkKKGRlZnVuIGRvd24tYS1sb3QgKCkgKGludGVyYWN0aXZlKSAoc2Nyb2xsLWRvd24pKQooZ2xv YmFsLXNldC1rZXkgW0MtbW91c2UtNF0gJ2Rvd24tYS1sb3QpCihnbG9iYWwtc2V0LWtleSBbQy1t b3VzZS01XSAndXAtYS1sb3QpCgoMCjs7OzsgICAgICAgICAgICAgICAgICoqKiogUFJPUEVSVElF UyAqKioqCihwdXQgJ2JhY2tzcGFjZSAnYXNjaWktY2hhcmFjdGVyIDgpCgoMCjs7OzsgICAgICAg ICAgICAgICAgICoqKiogU0VUVElOR1MgKioqKgoKKGRlZnVuIHVzZXJwYXRoICh4KQogIDs7IH4k VVNFUiB3aWxsIGdpdmUgdGhlIGhvbWUgZGlyZWN0b3J5IG9mIHRoZSB1c2VyCiAgOzsgVGhpcyBp cyBiZXR0ZXIgdGhhbiAkSE9NRSBvciB+IHdoZW4gYSB1c2VyIGhhcyB1c2VkCiAgOzsgdGhlIHN1 IGNvbW1hbmQgdG8gZWZmZWN0aXZlbHkgYmVjb21lIGFub3RoZXIgdXNlciwgYmVjYXVzZQogIDs7 ICRVU0VSIHJlZmxlY3RzIHRoZSByZWFsIHVzZXIuCiAgKGV4cGFuZC1maWxlLW5hbWUgKGNvbmNh dCAifiIgKGdldGVudiAiVVNFUiIpIHgpKSkKCihkZWZ2YXIgb3JpZy1sb2FkLXBhdGggbG9hZC1w YXRoKQoKKHNldHEgbG9hZC1wYXRoIAogICAgICAoYXBwZW5kCiAgICAgICAnKCAKCSAgOyB0aGVz ZSBhcmUgdGhlIGRpc3RyaWJ1dGlvbiBkaXJlY3RvcmllcyBhdCBJQVM6CgkgICAgIi9ob21lL3Nw ZWNpYWwvdW5pdmFsZW5jZS91c3Ivc2hhcmUvZW1hY3Mvc2l0ZS1saXNwIiAKCgkgIDsgZm9yIGRl dmVsb3BtZW50CgkgIDs7ICJ+L3NyYy9jb3EtYnVpbGRlci9zcmMvUHJvb2ZHZW5lcmFsL2ZpbGVz L1Byb29mR2VuZXJhbC1naXRodWItRGFuR3JheXNvbi90cyIKCSAgOzsgIn4vc3JjL2NvcS1idWls ZGVyL3NyYy9Qcm9vZkdlbmVyYWwvZmlsZXMvUHJvb2ZHZW5lcmFsLWdpdGh1Yi1EYW5HcmF5c29u L2dlbmVyaWMiCgoJICA7IHdoeSBkbyB3ZSBuZWVkIHRoaXM/CgkgIDsgIn4vc3JjL2NvcS1idWls ZGVyL3NoYXJlL2VtYWNzL3NpdGUtbGlzcC9Qcm9vZkdlbmVyYWwvZ2VuZXJpYyIKCgkgIDsgIn4v c3JjL2NvcS1idWlsZGVyL3NoYXJlL2VtYWNzL3NpdGUtbGlzcCIKCSAgKQogICAgICAgKG1hcGNh ciAndXNlcnBhdGggYCgiL3NyYy9NMi9NMi1NYWNhdWxheTIvTTIvQlVJTEQvZGFuL2J1aWxkcy50 bXAvZWluc3RlaW5pdW0tbWFzdGVyL01hY2F1bGF5Mi9lbWFjcyIgIi9zcmMvTTIvTTItTWFjYXVs YXkyL00yL01hY2F1bGF5Mi9lbWFjcyIgIi9lbWFjcyIgIi9ob21lL2VtYWNzIiAiL3NyYy9Ib1RU L2NvcS1EYW5HcmF5c29uL3Rvb2xzIiAiL2xvY2FsL3NoYXJlL2VtYWNzL3NpdGUtbGlzcCIpKQog ICAgICAgb3JpZy1sb2FkLXBhdGgKICAgICAgICkpCgooc2V0LWN1cnNvci1jb2xvciAicmVkIikK KGRlZnVuIGRhcmtlbiAoKQogICJTZXQgY29sb3JzIHRvIHdoaXRlIG9uIGJsYWNrLiIKICAoaW50 ZXJhY3RpdmUpCiAgKG1vZGlmeS1mcmFtZS1wYXJhbWV0ZXJzIG5pbCAnKChiYWNrZ3JvdW5kLW1v ZGUgLiBkYXJrKSAoZm9yZWdyb3VuZC1jb2xvciAuICJ3aGl0ZSIpIChiYWNrZ3JvdW5kLWNvbG9y IC4gImJsYWNrIikpKSkKKGRlZnVuIGJyaWdodGVuICgpCiAgIlNldCBjb2xvcnMgdG8gYmxhY2sg b24gd2hpdGUuIgogIChpbnRlcmFjdGl2ZSkKICAobW9kaWZ5LWZyYW1lLXBhcmFtZXRlcnMgbmls ICcoKGJhY2tncm91bmQtbW9kZSAuIGxpZ2h0KSAoZm9yZWdyb3VuZC1jb2xvciAuICJibGFjayIp IChiYWNrZ3JvdW5kLWNvbG9yIC4gIndoaXRlIikpKSkKOzsgKGdsb2JhbC1zZXQta2V5IFsgKHN1 cGVyIGQpIF0gJ2RhcmtlbikKOzsgKGdsb2JhbC1zZXQta2V5IFsgKHN1cGVyIGIpIF0gJ2JyaWdo dGVuKQoKKHNldC1pbnB1dC1tb2RlIG5pbCBuaWwgMSkKCjsgbXkgbW9kZSBsaW5lCihzZXRxLWRl ZmF1bHQgbW9kZS1saW5lLXN5c3RlbS1uYW1lIChsaXN0IChzeXN0ZW0tbmFtZSkpKQooc2V0cS1k ZWZhdWx0IG1vZGUtbGluZS1idWZmZXItaWRlbnRpZmljYXRpb24gCgkgICAgICAobGlzdCAoY29u Y2F0IChzeXN0ZW0tbmFtZSkgIjogJWIiKSkpCihzZXRxLWRlZmF1bHQgbW9kZS1saW5lLW1vZGlm aWVkICIgJSogIikKKHNldHEtZGVmYXVsdCBtb2RlLWxpbmUtZm9ybWF0IGAoCgkJCQkgLChnZXRl bnYgIlVTRVIiKSAiQCIgbW9kZS1saW5lLXN5c3RlbS1uYW1lCgkJCQkgIjogJSolKyUqICViICIK CQkJCSBnbG9iYWwtbW9kZS1zdHJpbmcKCQkJCSAiICgiCgkJCQkgbW9kZS1uYW1lCgkJCQkgbWlu b3ItbW9kZS1hbGlzdAoJCQkJICIlbiIKCQkJCSBtb2RlLWxpbmUtcHJvY2VzcwoJCQkJICIpICVw ICVdICIKCQkJCSBtb2RlLWxpbmUtbXVsZS1pbmZvCgkJCQkgKSkKCjs7IChzZXRxIGRpc3BsYXkt dGltZS1kYXktYW5kLWRhdGUgdCkKOzsgKGdsb2JhbC1zZXQta2V5IFsgKGNvbnRyb2wgYykgKHQp IF0gJ2Rpc3BsYXktdGltZSkKOzsgKGlmIChlcXVhbCBzeXN0ZW0tbmFtZSAidTEyMy5tYXRoLnVp dWMuZWR1IikgKGRpc3BsYXktdGltZSkpCgooZGVmdW4gcmVnZXhwLW9yIChhIGIgJnJlc3QgYykK ICAgICAobGV0ICgoeCAoY29uY2F0IGEgIlxcfCIgYikpKQoJICAoaWYgYyAoYXBwbHkgJ3JlZ2V4 cC1vciAoY29ucyB4IGMpKSB4KSkpCihwdXQgICdldmFsLWV4cHJlc3Npb24gJ2Rpc2FibGVkIG5p bCkKKHB1dCAgJ21pbmlidWZmZXItY29tcGxldGUtYW5kLWV4aXQgJ2Rpc2FibGVkIG5pbCkKKHNl dHEgbGlzcC1ib2R5LWluZGVudCAyKQoKDAo7Ozs7ICAgICAgICAgICAgICAgICAqKioqIEJJTkRJ TkdTICoqKioKCihkZWZ1biBteS1zZXQtc2VsZWN0aXZlLWRpc3BsYXkgKGFyZykKICAiTGlrZSBz ZXQtc2VsZWN0aXZlLWRpc3BsYXkgZXhjZXB0IG1ha2VzIHRoZSBjdXJyZW50IGxpbmUgdGhlCmlu bmVybW9zdCBvbmUgdGhhdCdzIHZpc2libGUuICBQcmVmaXggYXJndW1lbnQgY2F1c2VzIGl0IHRv IHR1cm4Kc2VsZWN0aXZlIGRpc3BsYXkgb2ZmLiIKICAoaW50ZXJhY3RpdmUgIlAiKQogIChpZiBh cmcKICAgICAgKHNldC1zZWxlY3RpdmUtZGlzcGxheSBuaWwpCiAgICAoc2F2ZS1leGN1cnNpb24K ICAgICAgKGxldCAoCgkgICAgKGJvbCAocHJvZ24gKGJlZ2lubmluZy1vZi1saW5lKSAocG9pbnQp KSkKCSAgICAoaW5kIChwcm9nbiAoZm9yd2FyZC10by1pbmRlbnRhdGlvbiAwKSAocG9pbnQpKSkp Cgkoc2V0LXNlbGVjdGl2ZS1kaXNwbGF5ICgrIDEgKC0gaW5kIGJvbCkpKSkpKSkKKGdsb2JhbC1z ZXQta2V5IFsgKGNvbnRyb2wgeCkgKCQpIF0gJ215LXNldC1zZWxlY3RpdmUtZGlzcGxheSkKCihk ZWZ1biB1cGRhdGUtc2NyZWVuICgpIChzZXQtd2luZG93LXN0YXJ0IChzZWxlY3RlZC13aW5kb3cp ICh3aW5kb3ctc3RhcnQgKHNlbGVjdGVkLXdpbmRvdykpKSkKCihkZWZ1biBwdXNoLXN0YXRlICgp CiAgIlNhdmVzIHRoZSBzdGF0ZSBvZiB0aGUgZW1hY3Mgc2NyZWVuLiAgR2V0IGJhY2sgd2l0aCBc XFtleGl0LXJlY3Vyc2l2ZS1lZGl0XS4iCiAgKGludGVyYWN0aXZlKQogIChsZXQgKCkgKHNhdmUt d2luZG93LWV4Y3Vyc2lvbiAoc2F2ZS1leGN1cnNpb24gKHNhdmUtcmVzdHJpY3Rpb24gKHJlY3Vy c2l2ZS1lZGl0KSkpKSkpCihnbG9iYWwtdW5zZXQta2V5IFsgKG1ldGEgaykgXSkJCTsgd2FzIGtp bGwtc2VudGVuY2UKKGdsb2JhbC1zZXQta2V5IFsgKG1ldGEgcykgKG1ldGEgcykgXSAndGFncy1z ZWFyY2gpCihnbG9iYWwtc2V0LWtleSBbIChtZXRhIFIpIF0gJ3RhZ3MtcXVlcnktcmVwbGFjZSkK KGdsb2JhbC1zZXQta2V5IFsgKG1ldGEgPyopIF0gJ3hyZWYtcG9wLW1hcmtlci1zdGFjaykKKGds b2JhbC1zZXQta2V5IFsgKG1ldGEgPywpIF0gJ3RhZ3MtbG9vcC1jb250aW51ZSkKKGdsb2JhbC1z ZXQta2V5IFsgKGNvbnRyb2wgYykgKGUpIF0gJ3B1c2gtc3RhdGUpCihnbG9iYWwtc2V0LWtleSBb IChjb250cm9sIHgpIChjb250cm9sIHIpIF0gJ3JtYWlsKQooZ2xvYmFsLXNldC1rZXkgWyAoY29u dHJvbCBjKSAoY29udHJvbCBwKSBdICdsaXN0LXByb2Nlc3NlcykKKGdsb2JhbC1zZXQta2V5IFsg KG1ldGEgc3BhY2UpIF0gJ2p1c3Qtb25lLXNwYWNlKQooZ2xvYmFsLXNldC1rZXkgWyAoY29udHJv bCBjKSAoY29udHJvbCBlKSBdICdldmFsLWN1cnJlbnQtYnVmZmVyKQooZ2xvYmFsLXNldC1rZXkg WyAobWV0YSBlKSBdICdjb3B5LXJlc3Qtb2YtbGluZS1hcy1raWxsKQooZ2xvYmFsLXNldC1rZXkg WyAoY29udHJvbCBjKSAobWV0YSBlKSBdICdrbWFjcm8tZWRpdC1tYWNybykKKGdsb2JhbC1zZXQt a2V5IFsgKGNvbnRyb2wgYykgKG1ldGEgcCkgXSAna21hY3JvLWN5Y2xlLXJpbmctcHJldmlvdXMp CihnbG9iYWwtc2V0LWtleSBbIChjb250cm9sIGMpIChtZXRhIG4pIF0gJ2ttYWNyby1jeWNsZS1y aW5nLW5leHQpCihnbG9iYWwtc2V0LWtleSBbIChjb250cm9sIGMpIChjb250cm9sIGQpIF0gJ3Rv Z2dsZS1kZWJ1Zy1vbi1lcnJvcikKKGRlZnVuIHRvZ2dsZS1kZWJ1Zy1vbi1lcnJvciAoKSAKICAo aW50ZXJhY3RpdmUpIAogIChtZXNzYWdlIAogICAoaWYgKHNldHEgZGVidWctb24tcXVpdCAoc2V0 cSBkZWJ1Zy1vbi1lcnJvciAobm90IGRlYnVnLW9uLWVycm9yKSkpIAogICAgICAgIkRlYnVnIG9u IGVycm9yIGFuZCBxdWl0LiIgIk5vIGRlYnVnIG9uIGVycm9yIGFuZCBxdWl0LiIpKSkKCihnbG9i YWwtc2V0LWtleSBbID9cQy0xIF0gJ3NldC1tYXJrLWNvbW1hbmQpCgo7OyAoc2V0cSBjb21pbnQt cHJvbXB0LXJlYWQtb25seSB0KQooYWRkLWhvb2sgJ00yLW1vZGUtaG9vayAobGFtYmRhICgpIChk ZWZpbmUta2V5IE0yLWNvbWludC1tb2RlLW1hcCBbIChjb250cm9sIHcpIF0gJ2NvbWludC1raWxs LXJlZ2lvbikpKQoKKGRlZnVuIHRvLWVuZC1vZi1wcm9tcHQoKQogICAgICJNb3ZlIHRvIGVuZCBv ZiBzaGVsbC1wcm9tcHQgb24gdGhpcyBsaW5lIgogICAgIChpbnRlcmFjdGl2ZSkKICAgICAoYmVn aW5uaW5nLW9mLWxpbmUpCiAgICAgOyAoaWYgKGxvb2tpbmctYXQgZXNoZWxsLXByb21wdC1yZWdl eHApCiAgICAgKGlmIChsb29raW5nLWF0IHNoZWxsLXByb21wdC1wYXR0ZXJuKQoJICAgICAgIChn b3RvLWNoYXIgKG1hdGNoLWVuZCAwKSkKCSAgKGJhY2stdG8taW5kZW50YXRpb24pKSkKKGdsb2Jh bC1zZXQta2V5IFsgKG1ldGEgcmV0dXJuKSBdICd0by1lbmQtb2YtcHJvbXB0KQooZ2xvYmFsLXNl dC1rZXkgWyAobWV0YSBtKSBdICd0by1lbmQtb2YtcHJvbXB0KQooZGVmdW4gY29weS1yZXN0LW9m LWxpbmUtYXMta2lsbCAoKQogICAgICJDb3B5IHJlc3Qgb2YgbGluZSBpbnRvIGtpbGwgYnVmZmVy IgogICAgIChpbnRlcmFjdGl2ZSkKICAgICAoc2F2ZS1leGN1cnNpb24KCSAgKGxldCAoKGJlZyAo cG9pbnQpKSkKCSAgICAgICAoZW5kLW9mLWxpbmUpCgkgICAgICAgKGNvcHktcmVnaW9uLWFzLWtp bGwgYmVnIChwb2ludCkpKSkpCihkZWZ1biBjb3B5LXJlc3Qtb2YtbGluZS10by1lb2IoKQogICAg ICJDb3B5IHRoZSByZXN0IG9mIHRoZSBsaW5lIHRvIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciwgbGVh dmluZyBwb2ludCB0aGVyZS4iCiAgICAgKGludGVyYWN0aXZlKQogICAgIChjb3B5LXJlc3Qtb2Yt bGluZS1hcy1raWxsKQogICAgIChnb3RvLWNoYXIgKHBvaW50LW1heCkpCiAgICAgKHlhbmspCiAg ICAgKQooZGVmdW4gY29weS1jb21tYW5kLXRvLWVvYigpCiAgICAgIkNvcHkgdGhlIHJlc3Qgb2Yg dGhlIGxpbmUgdG8gdGhlIGVuZCBvZiB0aGUgYnVmZmVyLCBsZWF2aW5nIHBvaW50IHRoZXJlLiIK ICAgICAoaW50ZXJhY3RpdmUpCiAgICAgKHRvLWVuZC1vZi1wcm9tcHQpCiAgICAgKGNvcHktcmVz dC1vZi1saW5lLWFzLWtpbGwpCiAgICAgKGdvdG8tY2hhciAocG9pbnQtbWF4KSkKICAgICAoeWFu aykKICAgICAoZXhjaGFuZ2UtcG9pbnQtYW5kLW1hcmspCiAgICAgKQooZ2xvYmFsLXNldC1rZXkg WyAobWV0YSBXKSBdICdjb3B5LWNvbW1hbmQtdG8tZW9iKQooZGVmdW4gY29weS1jb21tYW5kLXRv LWtpbGwoKQogICAgIChpbnRlcmFjdGl2ZSkKICAgICAoc2F2ZS1leGN1cnNpb24KCSAgKHRvLWVu ZC1vZi1wcm9tcHQpCgkgIChjb3B5LXJlc3Qtb2YtbGluZS1hcy1raWxsKSkpCihkZWZ1biBjb3B5 LWxpbmUtYXMta2lsbCAoKQogICAgICJDb3B5IHJlc3Qgb2YgbGluZSBpbnRvIGtpbGwgYnVmZmVy IgogICAgIChpbnRlcmFjdGl2ZSkKICAgICAoc2F2ZS1leGN1cnNpb24KCSAgKGJlZ2lubmluZy1v Zi1saW5lKQoJICAobGV0ICgoYmVnIChwb2ludCkpKQoJICAgICAgIChlbmQtb2YtbGluZSkKCSAg ICAgICAoZm9yd2FyZC1jaGFyKQoJICAgICAgIChjb3B5LXJlZ2lvbi1hcy1raWxsIGJlZyAocG9p bnQpKSkpKQo7OyAoc2V0cSBkaXItbG9jYWxzLWZpbGUgIi5teS1kaXItbG9jYWxzLmVsIikKKGds b2JhbC1zZXQta2V5IFsgKG1ldGEgRSkgXSAnY29weS1saW5lLWFzLWtpbGwpCihnbG9iYWwtc2V0 LWtleSBbIChtZXRhID9gKSBdICdzaGVsbCkKKGdsb2JhbC1zZXQta2V5IFsgMjcgZjEgXSAnc2hl bGwpCihnbG9iYWwtc2V0LWtleSBbIChtZXRhIGYxKSBdICdzaGVsbCkJO3VuZGVyIHVidW50dSBB bHQtRjEgYW5kIEFsdC1GMiBhcmUgbm93IGRlZGljYXRlZCB0byAiRGFzaCIsIHRoZSBhcHBsaWNh dGlvbiBkb2NrCihnbG9iYWwtc2V0LWtleSBbIChtZXRhIGYzKSBdICdzaGVsbCkKKGdsb2JhbC1z ZXQta2V5IFsgKG1ldGEgcmV0dXJuKSBdICdiYWNrLXRvLWluZGVudGF0aW9uKQooZ2xvYmFsLXNl dC1rZXkgWyAoY29udHJvbCBjKSAoPSkgXSAnZ290by1saW5lKQooZ2xvYmFsLXNldC1rZXkgWyAo Y29udHJvbCB4KSAoY29udHJvbCBoKSBdICdoZWxwLWNvbW1hbmQpCihnbG9iYWwtc2V0LWtleSBb IChjb250cm9sIHgpIChjb250cm9sIG4pIF0gJ25hcnJvdy10by1wYWdlKQooZGVmdW4gbXktcHJl dmlvdXMtd2luZG93KCkgCiAgICAgIk1vdmUgY3Vyc29yIHRvIHByZXZpb3VzIHdpbmRvdyBvbiBz Y3JlZW4uIgogICAgIChpbnRlcmFjdGl2ZSkKICAgICAob3RoZXItd2luZG93IC0xKSkKKGdsb2Jh bC1zZXQta2V5IFsgKGNvbnRyb2wgeCkgKHApIF0gJ215LXByZXZpb3VzLXdpbmRvdykKKGRlZnVu IHNldC1oaWdoLWJpdChjIGNvdW50KQogICAgICJTZXQgdGhlIHNpZ24gYml0IG9uIHRoZSBjaGFy YWN0ZXIgcHJvdmlkZWQgYnkgdGhlIHVzZXIsIGFuZCBpbnNlcnQgaXQiCiAgICAgKGludGVyYWN0 aXZlICJjQ2hhcmFjdGVyOiBcbnAiKQogICAgIChpbnNlcnQtY2hhciAoKyAxMjggYykgY291bnQp KQooZ2xvYmFsLXNldC1rZXkgWyAobWV0YSBjb250cm9sIHEpIF0gJ3NldC1oaWdoLWJpdCkKKGds b2JhbC1zZXQta2V5IFsgKGFsdCBzKSBdIFsgP1wzMzcgXSkKKGdsb2JhbC1zZXQta2V5IFsgKGFs dCBlKSBdIFsgP1wzNTEgXSApIDsg0JgKKGdsb2JhbC1zZXQta2V5IFsgKG1ldGEgY29udHJvbCBo KSBdICdiYWNrd2FyZC1raWxsLXdvcmQpCihnbG9iYWwtc2V0LWtleSBbIChjb250cm9sIHgpIChj b250cm9sIGwpIF0gJ2J1ZmZlci1tZW51KQooZ2xvYmFsLXNldC1rZXkgWyAoY29udHJvbCB4KSAo Y29udHJvbCB2KSBdICd2aWV3LWZpbGUpCihkZWZ1biBwb3AtdG8tb2xkLWJ1ZmZlciAoYnVmZmVy KQogICAgICJQb3AgdG8gYW4gZXhpc3RpbmcgYnVmZmVyIGluIGFub3RoZXIgd2luZG93LiIKICAg ICAoaW50ZXJhY3RpdmUgImJQb3AgdG8gb2xkIGJ1ZmZlcjogIikKICAgICAocG9wLXRvLWJ1ZmZl ciBidWZmZXIgdCkKICAgICApCihkZWZ1biBzd2l0Y2gtdG8tb2xkLWJ1ZmZlciAoYnVmZmVyKQog ICAgICJTd2l0Y2ggdG8gYW4gZXhpc3RpbmcgYnVmZmVyIGluIHRoZSBzYW1lIHdpbmRvdy4iCiAg ICAgKGludGVyYWN0aXZlICJiU3dpdGNoIHRvIG9sZCBidWZmZXI6ICIpCiAgICAgKHN3aXRjaC10 by1idWZmZXIgYnVmZmVyKQogICAgICkKKGdsb2JhbC1zZXQta2V5IFsgKGNvbnRyb2wgeCkgKGIp IF0gJ3N3aXRjaC10by1idWZmZXIpCihnbG9iYWwtc2V0LWtleSBbIChjb250cm9sIHgpIChjb250 cm9sIG4pIF0gJ3JlbmFtZS11bmlxdWVseSkKKGdsb2JhbC1zZXQta2V5IFsgKGNvbnRyb2wgeCkg KGNvbnRyb2wgYikgXSAnYnVyeS1idWZmZXIpICAgICAKKGdsb2JhbC1zZXQta2V5IFsgKG1ldGEg Y29udHJvbCByKSBdICdxdWVyeS1yZXBsYWNlLXJlZ2V4cCkKKGdsb2JhbC1zZXQta2V5IFsgKG1l dGEgcikgXSAncmVwbGFjZS1yZWdleHApCihkZWZ1biBraWxsLXRoaXMtYnVmZmVyICgpCiAgICAg IktpbGwgdGhpcyBidWZmZXIgaW1tZWRpYXRlbHkuIgogICAgIChpbnRlcmFjdGl2ZSkKICAgICAo a2lsbC1idWZmZXIgKGN1cnJlbnQtYnVmZmVyKSkpCihnbG9iYWwtc2V0LWtleSBbIChjb250cm9s IHgpIChjb250cm9sIGspIF0gJ2tpbGwtdGhpcy1idWZmZXIpCgooZGVmdW4gcmVwbGFjZS1yZWdl eHAtc2F2ZS1leGN1cnNpb24oKQogICAgICJTYW1lIGFzIHJlcGxhY2UtcmVnZXhwLCBidXQgcmVz dG9yZXMgdGhlIHBvaW50IGFmdGVyd2FyZHMuIgogICAgIChpbnRlcmFjdGl2ZSkKICAgICAoc2F2 ZS1leGN1cnNpb24KCSAgKGNhbGwtaW50ZXJhY3RpdmVseSAncmVwbGFjZS1yZWdleHApCgkgICkp CgooZ2xvYmFsLXNldC1rZXkgWyAobWV0YSByKSBdICdyZXBsYWNlLXJlZ2V4cC1zYXZlLWV4Y3Vy c2lvbikKKGFkZC1ob29rICd0ZXh0LW1vZGUtaG9vayAndHVybi1vZmYtYXV0by1maWxsKQooYWRk LWhvb2sgJ2h0bWwtbW9kZS1ob29rICd0dXJuLW9mZi1hdXRvLWZpbGwpCihnbG9iYWwtc2V0LWtl eSBbIChjb250cm9sIHgpIChxKSBdICdhdXRvLWZpbGwtbW9kZSkKCihkZWZ1biBzYXZlLWFsbC1i dWZmZXJzICgpCiAgICAgIlNhdmVzIGFsbCB2aXNpdGVkIGZpbGVzIHdpdGhvdXQgYXNraW5nLiIK ICAgICAoaW50ZXJhY3RpdmUpCiAgICAgKHNhdmUtc29tZS1idWZmZXJzIHQpKQooZ2xvYmFsLXNl dC1rZXkgWyAoY29udHJvbCB4KSAoY29udHJvbCB5KSBdICdzYXZlLWFsbC1idWZmZXJzKQooZ2xv YmFsLXNldC1rZXkgWyAoY29udHJvbCB4KSAoY29udHJvbCBlKSBdICdjb21waWxlKQooYXV0b2xv YWQgJ2NvbXBpbGUtaW50ZXJuYWwgImNvbXBpbGUiICIiIHQpCihhdXRvbG9hZCAna2lsbC1jb21w aWxhdGlvbiAiY29tcGlsZSIgIiIgdCkKKGdsb2JhbC1zZXQta2V5IFsgKGNvbnRyb2wgeCkgKGsp IF0gJ2tpbGwtY29tcGlsYXRpb24pCgooZGVmdW4gY291bnQtd29yZHMgKHN0YXJ0IGVuZCkKICAi UmV0dXJuIG51bWJlciBvZiB3b3JkcyBiZXR3ZWVuIFNUQVJUIGFuZCBFTkQuIgogIChsZXQgKChj b3VudCAwKSkKICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAoc2F2ZS1yZXN0cmljdGlvbgoJKG5h cnJvdy10by1yZWdpb24gc3RhcnQgZW5kKQoJKGdvdG8tY2hhciAocG9pbnQtbWluKSkKCSh3aGls ZSAoZm9yd2FyZC13b3JkIDEpCgkgIChzZXRxIGNvdW50ICgxKyBjb3VudCkpKSkpCiAgICBjb3Vu dCkpCihkZWZ1biBjb3VudC1yZWdpb24gKHN0YXJ0IGVuZCkKICAiQ291bnQgbGluZXMsIHdvcmRz IGFuZCBjaGFyYWN0ZXJzIGluIHJlZ2lvbi4iCiAgKGludGVyYWN0aXZlICJyIikKICAobGV0ICgo bCAoY291bnQtbGluZXMgc3RhcnQgZW5kKSkKCSh3IChjb3VudC13b3JkcyBzdGFydCBlbmQpKQoJ KGMgKC0gZW5kIHN0YXJ0KSkpCiAgICAobWVzc2FnZSAiUmVnaW9uIGhhcyAlZCBsaW5lJXMsICVk IHdvcmQlcyBhbmQgJWQgY2hhcmFjdGVyJXMuIgoJICAgICBsIChpZiAoPSAxIGwpICIiICJzIikK CSAgICAgdyAoaWYgKD0gMSB3KSAiIiAicyIpCgkgICAgIGMgKGlmICg9IDEgYykgIiIgInMiKSkp KQooZGVmaW5lLWtleSBlc2MtbWFwICI9IiAnY291bnQtcmVnaW9uKQoKDAo7Ozs7CQkqKioqIFNI RUxMIHN0dWZmICoqKioKCihhZGQtaG9vayAnc2hlbGwtbW9kZS1ob29rIAoJICAnKGxhbWJkYSAo KSAoc2V0cSBjb21pbnQtY29tcGxldGlvbi1hZGRzdWZmaXggJygiLyIgLiAiICIpKSkKCSAgdCkK CihhZGQtaG9vayAnY29taW50LW1vZGUtaG9vayAKCSAgJyhsYW1iZGEgKCkgCgkJCQkJOyBwY29t cGxldGUgaXMgYnJva2VuCgkJCQkJOyBleGFtcGxlOiAiY3ZzIGxvZyBmb28uPFRBQj4iIHJlc3Vs dHMgaW4gbm8gZmlsZW5hbWUgY29tcGxldGlvbgoJICAgICAoc2V0cSBjb21pbnQtZHluYW1pYy1j b21wbGV0ZS1mdW5jdGlvbnMgKHJlbW92ZSAncGNvbXBsZXRlLWNvbXBsZXRpb25zLWF0LXBvaW50 IGNvbWludC1keW5hbWljLWNvbXBsZXRlLWZ1bmN0aW9ucykpKQoJICB0KQoKOyhzZXRxIGNvbWlu dC1vdXRwdXQtZmlsdGVyLWZ1bmN0aW9ucwo7ICAgICAgKGNvbnMgJ2NvbWludC13YXRjaC1mb3It cGFzc3dvcmQtcHJvbXB0IGNvbWludC1vdXRwdXQtZmlsdGVyLWZ1bmN0aW9ucykpCgooc2V0cSBj b21pbnQtaW5oaWJpdC1jYXJyaWFnZS1tb3Rpb24gdCkJOyB0aGlzIG1pZ2h0IGJlIGJhZCBmb3Ig Z2RiIC4uLgoKKGRlZnVuIGNsZWFuLXNoZWxsLWJ1ZmZlciAoKSAKICAiRm9yIHVzZSBpbiBhIHNo ZWxsIGJ1ZmZlci4gIENsZWFucyBvdXQgdGhlIHBvcnRpb24gYmVmb3JlIHBvaW50LAphbmQgb2J0 YWlucyBhIG5ldyBwcm9tcHQgYnkgZW50ZXJpbmcgYSBibGFuayBsaW5lIGF0IHRoZSBlbmQuIgog ICAgICAgIChpbnRlcmFjdGl2ZSkKCShsZXQgKChoZXJlIChwb2ludCkpKQoJICAgICAoYmVnaW5u aW5nLW9mLWJ1ZmZlcikKCSAgICAgKGtpbGwtcmVnaW9uIChwb2ludCkgaGVyZSkKCSAgICAgKGVu ZC1vZi1idWZmZXIgKCkpCgkgICAgIChjb21pbnQtc2VuZC1pbnB1dCkKCSAgICAgKHJlY2VudGVy IDApCgkgICAgICkpCgooZGVmdW4gc2VuZC1zcGFjZSAoKQogICAgICJTZW5kcyBhIHNpbmdsZSBz cGFjZSBpbW1lZGlhdGVseSB0byB0aGUgcHJvY2VzcywgYW5kIGluc2VydHMgaXQgYXQgcG9pbnQu IgogICAgIChpbnRlcmFjdGl2ZSkKICAgICAoaW5zZXJ0LXN0cmluZyAiICIpCiAgICAgKHNlbmQt c3RyaW5nIChnZXQtYnVmZmVyLXByb2Nlc3MgKGN1cnJlbnQtYnVmZmVyKSkgIiAiKQogICAgICkK CihldmFsLWFmdGVyLWxvYWQgImNvbWludCIgJyhwcm9nbgogIDsoZGVmaW5lLWtleSBjb21pbnQt bW9kZS1tYXAgIlxDLWEiICdiZWdpbm5pbmctb2YtbGluZSkKICAoZGVmaW5lLWtleSBjb21pbnQt bW9kZS1tYXAgWyAobWV0YSBzKSBdICduaWwpCiAgKHNldHEgY29taW50LWlucHV0LWF1dG9leHBh bmQgbmlsKQogIChkZWZpbmUta2V5IGNvbWludC1tb2RlLW1hcCBbIChjb250cm9sIGEpIF0gbmls KQogIChkZWZpbmUta2V5IGNvbWludC1tb2RlLW1hcCBbIChjb250cm9sIGMpIChjb250cm9sIHgp IF0gJ2NvbWludC1raWxsLWlucHV0KQogIChkZWZpbmUta2V5IGNvbWludC1tb2RlLW1hcCBbIChj b250cm9sIGMpIChjKSBdICdjbGVhbi1zaGVsbC1idWZmZXIpCiAgKGRlZmluZS1rZXkgY29taW50 LW1vZGUtbWFwIFsgKGNvbnRyb2wgYykgKHNwYWNlKSBdICdzZW5kLXNwYWNlKQogIChkZWZpbmUt a2V5IGNvbWludC1tb2RlLW1hcCBbIChtZXRhIHIpIF0gbmlsKQogICkpCgooZGVmdW4gc2VuZC1i dWZmZXItdG8tc2hlbGwgKCkgCiAgICAgKGludGVyYWN0aXZlKQogICAgIChzZW5kLXJlZ2lvbiAi c2hlbGwiIChwb2ludC1taW4pIChwb2ludC1tYXgpKSkKKGRlZnVuIHNlbmQtY29tbWFuZC10by1z aGVsbCgpIAogICAgIChpbnRlcmFjdGl2ZSkKICAgICAoc2F2ZS1leGN1cnNpb24KCSAgKGxldCAo KGNtZCAoYnVmZmVyLXN1YnN0cmluZwoJCSAgICAgIChwcm9nbiAodG8tZW5kLW9mLXByb21wdCkg KHBvaW50KSkKCQkgICAgICAocHJvZ24gKGVuZC1vZi1saW5lKSAocG9pbnQpKSkpKQoJICAgICAg IChzZXQtYnVmZmVyICIqc2hlbGwqIikKCSAgICAgICAoZW5kLW9mLWJ1ZmZlcikKCSAgICAgICAo aW5zZXJ0IGNtZCkKCSAgICAgICAoY29taW50LXNlbmQtaW5wdXQpKSkpCjs7IHB1dCBzb21ld2hl cmUgZWxzZTogKGdsb2JhbC1zZXQta2V5ICJcXlhzIiAnc2VuZC1jb21tYW5kLXRvLXNoZWxsKQoK DAo7Ozs7CQkqKioqIEMgTU9ERSBlZGl0aW5nICoqKioKCihhZGQtaG9vayAnYy1tb2RlLWhvb2sg CgkgIChmdW5jdGlvbiAKCSAgIChsYW1iZGEoKQoJICAgICAobW9kaWZ5LXN5bnRheC1lbnRyeSA/ XyAidyIpKSkpCihhZGQtaG9vayAnYysrLW1vZGUtaG9vayAKCSAgKGZ1bmN0aW9uIAoJICAgKGxh bWJkYSgpCgkgICAgIChtb2RpZnktc3ludGF4LWVudHJ5ID9fICJ3IikpKSkKCQkJCSAgIAooYy1h ZGQtc3R5bGUgIm1pbmUiICcoCiAgIChjLWJhc2ljLW9mZnNldCAuIDUpCiAgIChjLWF1dG8tbmV3 bGluZSB0KQogICAoYy1lbGVjdHJpYy1mbGFnIHQpCiAgIChjLWNvbW1lbnQtb25seS1saW5lLW9m ZnNldCAuICgwIC4gMCkpCiAgIChjLWhhbmdpbmctYnJhY2VzLWFsaXN0IChzdGF0ZW1lbnQtY2Fz ZS1vcGVuIGFmdGVyKSAoZGVmdW4tb3BlbiBhZnRlcikgKHN1YnN0YXRlbWVudC1vcGVuIGFmdGVy KSAoYmxvY2stb3BlbiBhZnRlcikpCiAgIChjLW9mZnNldHMtYWxpc3QgKGMgLiAzKSAoY3BwLW1h Y3JvIC4gMCkgKHN0YXRlbWVudC1jb250IC4gMikgKGNhc2UtbGFiZWwgLiArKSAoY2xhc3MtY2xv c2UgLiArKSAoZGVmdW4tY2xvc2UgLiArKSAoYmxvY2stY2xvc2UgLiArKSkpKQooYWRkLWhvb2sg J2MtbW9kZS1ob29rIChmdW5jdGlvbiAobGFtYmRhICgpIChjLXNldC1zdHlsZSAibWluZSIpKSkp Cgo7OzsgKioqKiBjLW1vZGUgZml4ZXMgKioqKgo7OyhhZGQtaG9vayAnYy1tb2RlLWhvb2sgKGZ1 bmN0aW9uIChsYW1iZGEgKCkKOzsgICAgIChkZWZpbmUta2V5IGMtbW9kZS1tYXAgWyAobWV0YSBl KSBdIG5pbCkpKSkKCgoMCjs7OzsgCQkqKioqIFNFVFVQICoqKioKKHB1dCAnbmFycm93LXRvLXJl Z2lvbiAnZGlzYWJsZWQgbmlsKQoKOzs7OzsgCQkqKioqIE1BSUwgKioqKgoKKHNldHEgc2VuZG1h aWwtcHJvZ3JhbSAiL3Vzci9saWIvc2VuZG1haWwiKSA7IGZha2VtYWlsIGRvZXNuJ3QgcmVhbGx5 IHdvcmsKCihhZGQtaG9vayAncm1haWwtbW9kZS1ob29rIChmdW5jdGlvbiAobGFtYmRhKCkKICAo ZGVmaW5lLWtleSBybWFpbC1tb2RlLW1hcCBbIChtZXRhIG0pIF0gJ25pbCkpKSkKKGRlZnVuIGNs ZWFyLW1haWwtYWxpYXNlcyAoKQogICAgICJDbGVhciB0aGUgbGlzdCBvZiBtYWlsIGFsaWFzZXMs IGZvcmNpbmcgLm1haWxyYyB0byBiZSByZXJlYWQgbmV4dCB0aW1lCmEgbWVzc2FnZSBpcyBzZW50 LiIKICAgICAoaW50ZXJhY3RpdmUpCiAgICAgKHNldHEgbWFpbC1hbGlhc2VzIHQpKQoKKGRlZnVu IG15LW1haWwtc2lnbmF0dXJlICgpCiAgIlNpZ24gbGV0dGVyIHdpdGggY29udGVudHMgb2Ygfi8u c2lnIGZpbGUuIgogIChpbnRlcmFjdGl2ZSkKICAoZ290by1jaGFyIChwb2ludC1tYXgpKQogIChp bnNlcnQtZmlsZS1jb250ZW50cyAoZXhwYW5kLWZpbGUtbmFtZSAifi8uc2lnIikpCiAgKGdvdG8t Y2hhciAocG9pbnQtbWF4KSkKICApCihhZGQtaG9vayAnbWFpbC1tb2RlLWhvb2sgKGZ1bmN0aW9u IChsYW1iZGEgKCkgKGRlZmluZS1rZXkgbWFpbC1tb2RlLW1hcCBbIChjb250cm9sIGMpIChjb250 cm9sIHcpIF0gJ215LW1haWwtc2lnbmF0dXJlKSkpKQoKCihzZXRxIHJtYWlsLWlnbm9yZWQtaGVh ZGVycyAKICAgICAgKHJlZ2V4cC1vciAKICAgICAgICAgICAgICAgICAiXmFjY2VwdGxhbmd1YWdl OiIKICAgICAgICAgICAgICAgICAiXkFjY2VwdC1MYW5ndWFnZToiCgkJICJeQWNjcmVkaXRvcjoi CgkJICJeQXBwcm92ZWQtQnk6IgoJCSAiXkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IgoJCSA7ICJe QkNDOiIKCQkgIl5DYWNoZS1Qb3N0LVBhdGg6IgoJCSAiXkNvbW1lbnRzPzoiCgkJICJeQ29udGVu dC1JZGVudGlmaWVyOiIKCQkgIl5Db250ZW50LUxlbmd0aDoiCgkJICJeQ29udGVudC1EaXNwb3Np dGlvbjoiCgkJICJeQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzoiICJeQ29udGVudC1UeXBlOiIg OyBtYWtpbmcgdGhlc2UgdHdvIHZpc2libGUgd291bGQgYWxsb3cgImRldGFjaCIgdG8gd29yaywg YnV0IGp1c3QgcHJlc3MgInQiIGZpcnN0CgkJICJeQ29udGVudC1DbGFzczoiCgkJICJeQ29udGVu dC1MYW5ndWFnZToiCgkJICJeRGVsaXZlcnktRGF0ZToiCgkJICJeRG9tYWluS2V5LVNpZ25hdHVy ZToiCgkJICJeRW52ZWxvcGUtVG86IgoJCSAiXkNvbnRlbnQtTUQ1OiIKCQkgIl5EZWxpdmVyZWQt VG86IgoJCSAiXkRpc3RyaWJ1dGlvbjoiCgkJICJES0lNLVNpZ25hdHVyZToiCgkJICJeRXJyb3Jz LVRvOiIKCQkgIl5GYWNlOiIKCQkgIl5JbXBvcnRhbmNlOiIKCQkgIl5MaW5lczoiCgkJICJebGlz dC0uKjoiCgkJICJeTWFpbC1Gcm9tOiIKCQkgIl5NYWlsaW5nLUxpc3Q6IgoJCSAiXk1lc3NhZ2Ut SVtEZF06IgoJCSAiXk1pbWUtVmVyc2lvbjoiCgkJICJeTmV3cy1Tb2Z0d2FyZToiCgkJICJeTm50 cC1Qb3N0aW5nLS4qOiIKCQkgIl5Pcmdhbml6YXRpb246IgoJCSAiXk9yaWdpbjoiCgkJICJeUGF0 aDoiCgkJICJeUG9zdGVkLUFuZC1NYWlsZWQ6IgoJCSAiXlByaW9yaXR5OiIKCQkgIl5QcmVjZWRl bmNlOiIKCQkgIl5SZWNlaXZlZDoiCgkJICJeUmVjZWl2ZWQtU1BGOiIKCQkgIl5SZWZlcmVuY2Vz OiIKCQkgIl5SZWxheS1WZXJzaW9uOiIKCQkgIl5SZXNlbnQtTWVzc2FnZS1JRDoiCgkJICJeUmV0 dXJuLVBhdGg6IgoJCSAiXlNlbmRlcjoiCgkJICJeU3RhdHVzOiIKCQkgIl5TdWJqZWN0OiBObyBT dWJqZWN0JCIKCQkgIl5TdW1tYXJ5LUxpbmU6IgoJCSAiXlRocmVhZC1Ub3BpYzoiCgkJICJeVGhy ZWFkLUluZGV4OiIKCQkgIl5Vc2VyLUFnZW50OiIKCQkgIl5WaWE6IgoJCSAiXlgtLio6IgoJCSAp KQo7IChzZXRxIDsgc2V0dXAgZm9yIHUwMAo7CXJtYWlsLWZpbGUtbmFtZSAoZXhwYW5kLWZpbGUt bmFtZSAifi92YXIvbWFpbGJveC9tYWlsIikKOyAgICAgICBybWFpbC1kZWZhdWx0LXJtYWlsLWZp bGUgKGV4cGFuZC1maWxlLW5hbWUgIn4vdmFyL21haWxib3gvbWFpbCIpCjsgICAgICAgcm1haWwt bGFzdC1ybWFpbC1maWxlIChleHBhbmQtZmlsZS1uYW1lICJ+L3Zhci9tYWlsYm94L29sZG1haWwi KSkKKGlmIChnZXRlbnYgIk1BSUwiKQogICAgKHNldHEgcm1haWwtc3Bvb2wtZGlyZWN0b3J5IChm aWxlLW5hbWUtZGlyZWN0b3J5IChnZXRlbnYgIk1BSUwiKSkpKQoKKGRlZnVuIHJtYWlsLXJlcGx5 LXRvLXNlbmRlci1vbmx5IChldmVyeWJvZHkpCiAgIlJlcGx5IHRvIHRoZSBjdXJyZW50IG1lc3Nh Z2UuICBOb3JtYWxseSBpZ25vcmUgYWxsIG90aGVyIHJlY2lwaWVudHMgb2YKb3JpZ2luYWwgbWVz c2FnZTsgcHJlZml4IGFyZ3VtZW50IG1lYW5zIENDIHRoZW0uICBXaGlsZSBjb21wb3NpbmcgdGhl IHJlcGx5LAp1c2UgXFxbbWFpbC15YW5rLW9yaWdpbmFsXSB0byB5YW5rIHRoZSBvcmlnaW5hbCBt ZXNzYWdlIGludG8gaXQuIgogIChpbnRlcmFjdGl2ZSAiUCIpCiAgKHJtYWlsLXJlcGx5IChub3Qg ZXZlcnlib2R5KSkKICApCjsgKGFkZC1ob29rICdybWFpbC1tb2RlLWhvb2sgKGZ1bmN0aW9uIChs YW1iZGEoKSAoZGVmaW5lLWtleSBybWFpbC1tb2RlLW1hcCAiciIgJ3JtYWlsLXJlcGx5LXRvLXNl bmRlci1vbmx5KSkpKQoKKGFkZC1ob29rICdtYWlsLW1vZGUtaG9vayAoZnVuY3Rpb24gKGxhbWJk YSAoKSAoc2V0cSBwYXJhZ3JhcGgtc3RhcnQgIlsgXHRcblxmXSIpKSkpCgooZGVmdW4gcm1haWwt cmVwbHktMiAoYXJnKQogICJSZXBseSB0byB0aGUgY3VycmVudCBtZXNzYWdlLgogICBQcmVmaXgg YXJndW1lbnQgbWVhbmluZ3MgOiAKICAgICAgbm9uZSA6IHJlcGx5IGp1c3QgdG8gdGhlIHNlbmRl ciBzcGVjaWZpZWQgaW4gdGhlIEZyb20gZmllbGQKICAgICAgXFxbdW5pdmVyc2FsLWFyZ3VtZW50 XSA6IHJlcGx5IHRvIHNlbmRlciwgd2l0aCBDQyB0byB0aG9zZSBpbiBDQwogICAgICBcXFt1bml2 ZXJzYWwtYXJndW1lbnRdIDIgOiByZXBseSB0byB0aGUgcmVjaXBpZW50IHNwZWNpZmllZCBpbiB0 aGUgVG8gZmllbGQKICAgICAgXFxbdW5pdmVyc2FsLWFyZ3VtZW50XSBcXFt1bml2ZXJzYWwtYXJn dW1lbnRdIDogcmVwbHkgdG8gcmVjaXBpZW50LCB3aXRoIENDIHRvIHNlbmRlciBhbmQgdGhvc2Ug aW4gQ0MKICAgV2hpbGUgY29tcG9zaW5nIHRoZSByZXBseSwgdXNlIFxcW21haWwteWFuay1vcmln aW5hbF0gdG8geWFuayB0aGUgb3JpZ2luYWwgbWVzc2FnZQogICBpbnRvIGl0LiIKICAoaW50ZXJh Y3RpdmUgIlAiKQogIChsZXQgKHRvLXJlY2lwaWVudAkJCTsgd2hldGhlciBuZXcgVG86IGZpZWxk IGdldHMgcmVjaXBpZW50IGluc3RlYWQgb2Ygc2VuZGVyCgljYy1jYwkJCQk7IHdoZXRoZXIgbmV3 IENDOiBmaWVsZCBnZXRzIG9sZCBDQzogZmllbGQKCWNjLXNlbmRlcgkJCTsgd2hldGhlciBuZXcg Q0M6IGZpZWxkIGFsc28gZ2V0cyBzZW5kZXIKCWZyb20gcmVwbHktdG8gY2Mgc3ViamVjdCBkYXRl IHRvIG1lc3NhZ2UtaWQgcmVmZXJlbmNlcwoJICAgICByZXNlbnQtdG8gcmVzZW50LWNjIHJlc2Vu dC1yZXBseS10bwoJICAgICAobXNnbnVtIHJtYWlsLWN1cnJlbnQtbWVzc2FnZSkpCiAgICAoY29u ZCAKICAgICAoKGVxdWFsIGFyZyAnKDQpICkgKHNldHEgY2MtY2MgdCkpCiAgICAgKChlcXVhbCBh cmcgICAyICApIChzZXRxIHRvLXJlY2lwaWVudCB0KSkKICAgICAoKGVxdWFsIGFyZyAnKDE2KSkg KHNldHEgY2MtY2MgdCB0by1yZWNpcGllbnQgdCBjYy1zZW5kZXIgdCkpKQogICAgKHNhdmUtZXhj dXJzaW9uCiAgICAgIChzYXZlLXJlc3RyaWN0aW9uCgkoaWYgcm1haWwtZW5hYmxlLW1pbWUKCSAg ICAobmFycm93LXRvLXJlZ2lvbgoJICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQoJICAgICAo aWYgKHNlYXJjaC1mb3J3YXJkICJcblxuIiBuaWwgJ21vdmUpCgkJICgxKyAobWF0Y2gtYmVnaW5u aW5nIDApKQoJICAgICAgIChwb2ludCkpKQoJICAod2lkZW4pCgkgIChnb3RvLWNoYXIgKHJtYWls LW1zZ2JlZyBybWFpbC1jdXJyZW50LW1lc3NhZ2UpKQoJICAoZm9yd2FyZC1saW5lIDEpCgkgIChp ZiAoPSAoZm9sbG93aW5nLWNoYXIpID8wKQoJICAgICAgKG5hcnJvdy10by1yZWdpb24KCSAgICAg ICAocHJvZ24gKGZvcndhcmQtbGluZSAyKSAocG9pbnQpKQoJICAgICAgIChwcm9nbiAoc2VhcmNo LWZvcndhcmQgIlxuXG4iIChybWFpbC1tc2dlbmQgcm1haWwtY3VycmVudC1tZXNzYWdlKSAnbW92 ZSkgKHBvaW50KSkpCgkgICAgKG5hcnJvdy10by1yZWdpb24gKHBvaW50KQoJCQkgICAgICAocHJv Z24gKHNlYXJjaC1mb3J3YXJkICJcbioqKiBFT09IICoqKlxuIikKCQkJCSAgICAgKGJlZ2lubmlu Zy1vZi1saW5lKSAocG9pbnQpKSkpKQoJKHNldHEgZnJvbSAobWFpbC1mZXRjaC1maWVsZCAiZnJv bSIpCgkgICAgICB0byAob3IgKG1haWwtZmV0Y2gtZmllbGQgInRvIiBuaWwgdCkgIiIpCgkgICAg ICByZXBseS10byAob3IgKG1haWwtZmV0Y2gtZmllbGQgInJlcGx5LXRvIiBuaWwgdCkgZnJvbSkK CSAgICAgIHJlcGx5LXRvIChpZiB0by1yZWNpcGllbnQgdG8gcmVwbHktdG8pCgkgICAgICBjYyAo aWYgY2MtY2MgKG9yIChtYWlsLWZldGNoLWZpZWxkICJjYyIgbmlsIHQpICIiKSAiIikKCSAgICAg IHN1YmplY3QgKG1haWwtZmV0Y2gtZmllbGQgInN1YmplY3QiKQoJICAgICAgZGF0ZSAobWFpbC1m ZXRjaC1maWVsZCAiZGF0ZSIpCgkgICAgICBtZXNzYWdlLWlkIChtYWlsLWZldGNoLWZpZWxkICJt ZXNzYWdlLWlkIikKCSAgICAgIHJlZmVyZW5jZXMgKG1haWwtZmV0Y2gtZmllbGQgInJlZmVyZW5j ZXMiIG5pbCBuaWwgdCkKCSAgICAgIHJlc2VudC1yZXBseS10byAobWFpbC1mZXRjaC1maWVsZCAi cmVzZW50LXJlcGx5LXRvIiBuaWwgdCkKCSAgICAgIHJlc2VudC1jYyAoaWYgY2MtY2MgKG1haWwt ZmV0Y2gtZmllbGQgInJlc2VudC1jYyIgbmlsIHQpKQoJICAgICAgcmVzZW50LXRvIChvciAobWFp bC1mZXRjaC1maWVsZCAicmVzZW50LXRvIiBuaWwgdCkgIiIpCgkgICAgICApKSkKICAgIChpZiBj Yy1zZW5kZXIgKHNldHEgY2MgKGlmIChub3QgKGVxdWFsIGNjICIiKSkgKGNvbmNhdCBmcm9tICIs ICIgY2MpIGZyb20pKSkKICAgIChpZiAoYW5kIHJlc2VudC10byAobm90IChlcXVhbCByZXNlbnQt dG8gIiIpKSkKCShpZiAobm90IChlcXVhbCB0byAiIikpCgkgICAgKHNldHEgdG8gKGNvbmNhdCB0 byAiLCAiIHJlc2VudC10bykpCgkgIChzZXRxIHRvIHJlc2VudC10bykpKQogICAgKGlmIChhbmQg cmVzZW50LWNjIChub3QgKGVxdWFsIHJlc2VudC1jYyAiIikpKQoJKGlmIChub3QgKGVxdWFsIGNj ICIiKSkKCSAgICAoc2V0cSBjYyAoY29uY2F0IGNjICIsICIgcmVzZW50LWNjKSkKCSAgKHNldHEg Y2MgcmVzZW50LWNjKSkpCiAgICAoYW5kIChzdHJpbmdwIHN1YmplY3QpCgkgKHNldHEgc3ViamVj dAoJICAgICAgIChjb25jYXQgcm1haWwtcmVwbHktcHJlZml4CgkJICAgICAgIChpZiAobGV0ICgo Y2FzZS1mb2xkLXNlYXJjaCB0KSkKCQkJICAgICAoc3RyaW5nLW1hdGNoIHJtYWlsLXJlcGx5LXJl Z2V4cCBzdWJqZWN0KSkKCQkJICAgKHN1YnN0cmluZyBzdWJqZWN0IChtYXRjaC1lbmQgMCkpCgkJ CSBzdWJqZWN0KSkpKQogICAgKHJtYWlsLXN0YXJ0LW1haWwKICAgICBuaWwKICAgICByZXBseS10 bwogICAgIHN1YmplY3QKICAgICAocm1haWwtbWFrZS1pbi1yZXBseS10by1maWVsZCBmcm9tIGRh dGUgbWVzc2FnZS1pZCkKICAgICAoaWYgY2MtY2MKICAgICAgIChsZXQqICgoY2MtbGlzdCAocm1h aWwtZG9udC1yZXBseS10byBjYykpKQoJIChpZiAoc3RyaW5nPSBjYy1saXN0ICIiKSBuaWwgY2Mt bGlzdCkpKQogICAgIHJtYWlsLXZpZXctYnVmZmVyCiAgICAgKGxpc3QgKGxpc3QgJ3JtYWlsLW1h cmstbWVzc2FnZQoJCSBybWFpbC1idWZmZXIKCQkgKHdpdGgtY3VycmVudC1idWZmZXIgcm1haWwt YnVmZmVyCgkJICAgKGFyZWYgcm1haWwtbXNncmVmLXZlY3RvciBtc2dudW0pKQoJCSAiYW5zd2Vy ZWQiKSkKICAgICBuaWwKICAgICAobGlzdCAoY29ucyAiUmVmZXJlbmNlcyIgKGNvbmNhdCAobWFw Y29uY2F0ICdpZGVudGl0eSByZWZlcmVuY2VzICIgIikKCQkJCSAgICAgICIgIiBtZXNzYWdlLWlk KSkpKSkpCihhZGQtaG9vayAncm1haWwtbW9kZS1ob29rIChmdW5jdGlvbiAobGFtYmRhKCkgKGRl ZmluZS1rZXkgcm1haWwtbW9kZS1tYXAgInIiICdybWFpbC1yZXBseS0yKSkpKQoKDAo7Ozs7CQkq KioqIFggV0lORE9XIFBBQ0tBR0UgKioqKgooc2V0cSB4LXN3aXRjaGVzICcoCiAgICAgICggIi1m b250IiAuICI5eDE1IiApCQk7IGJpZ2dlciBmb250CiAgICAgICggIi1iIiAuICIzIiApCQkJOyBi b3JkZXIgcGl4ZWxzCiAgICAgICkpCgoMCjs7OzsgICAgICAgICAgICAgICAgICAqKioqIFRlWCBz dHVmZiAqKioqCgooc2V0cSBhdXRvLW1vZGUtYWxpc3QKICAgICAgKGFwcGVuZCAgJygoIlxcLnRl eFxcJyIgLiBsYXRleC1tb2RlKSkKCSAgICAgICBhdXRvLW1vZGUtYWxpc3QKCSAgICAgICApKQoo YWRkLWhvb2sgJ2xhdGV4LW1vZGUtaG9vayAndHVybi1vbi1yZWZ0ZXgpIDtlbWFjcwooYWRkLWhv b2sgJ0xhVGVYLW1vZGUtaG9vayAndHVybi1vbi1yZWZ0ZXgpIDthdWN0ZXgKCihzZXRxIHRleC1k dmktdmlldy1jb21tYW5kICJ4ZHZpIikKKHNldHEgdGV4LXphcC1maWxlIChtYWtlLXRlbXAtbmFt ZSAidGV4IikpCgooZGVmdW4gYXNjaWktdG8tdGV4LXJlZ2lvbiAoKQogICJDb252ZXJ0IGFzY2lp IHRleHQgaW4gdGhlIHJlZ2lvbiB0byB0ZXggZm9yIHZlcmJhdGltIHByaW50aW5nLiIKICAoaW50 ZXJhY3RpdmUpCiAgKHNhdmUtZXhjdXJzaW9uCiAgICAoc2F2ZS1yZXN0cmljdGlvbgogICAgICAo bmFycm93LXRvLXJlZ2lvbiAocG9pbnQpIChtYXJrKSkKICAgICAgKGJlZ2lubmluZy1vZi1idWZm ZXIpCiAgICAgICh3aGlsZSAoc2VhcmNoLWZvcndhcmQtcmVnZXhwICJ7XFx8fVxcfFxcJFxcfCZc XHwjXFx8XFxeXFx8X1xcfCVcXHx+XFx8XFxcXCIgCgkJCQkgICAgKHBvaW50LW1heCkgdCkKCShs ZXQgKChjIChidWZmZXItc3Vic3RyaW5nIChtYXRjaC1iZWdpbm5pbmcgMCkgKG1hdGNoLWVuZCAw KSkpKQoJICAocmVwbGFjZS1tYXRjaCAoY29uY2F0ICJ7XFxcXGNoYXIiIChudW1iZXItdG8tc3Ry aW5nIChlbHQgYyAwKSkgIn0iKSkKCSAgKQoJKQogICAgICAoYmVnaW5uaW5nLW9mLWJ1ZmZlcikK ICAgICAgKHJlcGxhY2UtcmVnZXhwICJgIiAie2B9IikKICAgICAgKGJlZ2lubmluZy1vZi1idWZm ZXIpCiAgICAgIChpbnNlcnQgIlxcYmVnaW5ncm91cAogICAgIAkJXFxwYXJpbmRlbnQ9NDBwdAog ICAgIAkJXFxiYXNlbGluZXNraXA9MTFwdAogICAgIAkJXFx0dAogICAgIAkJXFxvYmV5c3BhY2Vz XFxkZWZcXHBhcntcXGxlYXZldm1vZGVcXGhzc1xcZW5kZ3JhZn1cXG9iZXlsaW5lcwoiKQogICAg ICAoZW5kLW9mLWJ1ZmZlcikKICAgICAgKGluc2VydCAiXFxlbmRncm91cCIpCiAgICAgICkKICAg ICkgIAogICkKKGdsb2JhbC1zZXQta2V5IFsgKGNvbnRyb2wgeCkgKGNvbnRyb2wgdCkgXSAnYXNj aWktdG8tdGV4LXJlZ2lvbikKIAoMCjs7OzsgICAgICAgICAgICAgICAgICoqKiogVEFHUyAqKioq CihnbG9iYWwtc2V0LWtleSBbIChjb250cm9sIGMpIChjb250cm9sIHQpIF0gJ3NlbGVjdC10YWdz LXRhYmxlKQoKCgwKOzs7OyAgICAgICAgICAgICAgICAgKioqKiBnZGIgbW9kZSAqKioqCihhdXRv bG9hZCAnZ2RiLW1vZGUgImdkYiIgImdkYiBtb2RlIiB0KQooZGVmdmFyIGd1ZC1nZGItbWFya2Vy LXJlZ2V4cAkJO2ZpeCBhIGJ1ZyBpbiBnZGItdWkuZWwKICAoY29uY2F0ICJcMDMyXDAzMnNvdXJj ZSBcXCguOj9bXiIgIjoiICJcbl0qXFwpIiAiOiIKCSAgIlxcKFswLTldKlxcKSIgIjoiICIuKlxu IikpCgoKDAo7Ozs7ICAgICAgICAgICAgICAgICAqKioqIGVuYWJsZSBpbmZvIGVkaXRpbmcgKioq Kgooc2V0cSBJbmZvLWVuYWJsZS1lZGl0IDEpCjsgKHNldHEgSW5mby1oaWRlLW5vdGUtcmVmZXJl bmNlcyAnaGlkZSkJO290aGVyd2lzZSBpdCBpbnNlcnRzICJzZWUiIGludG8gdGhlIGxpbmtzIGlu IGluZm8gZmlsZXMgY3JlYXRlZCBieSBNMgoKDAo7Ozs7ICAgICAgICAgICAgICAgICAqKioqIElO Rk8gKioqKgooYWRkLWhvb2sgJ3RleGluZm8tbW9kZS1ob29rIChmdW5jdGlvbiAobGFtYmRhICgp IChsb2NhbC1zZXQta2V5IFsgKGNvbnRyb2wgYykgKGNvbnRyb2wgYikgXSAndGV4aW5mby1mb3Jt YXQtYnVmZmVyKSkpKQoKDAo7Ozs7ICAgICAgICAgICAgICAgICAqKioqIGRpcmVkICoqKioKKGFk ZC1ob29rICdkaXJlZC1tb2RlLWhvb2sKCSAgJyhsYW1iZGEgKCkgCgkgICAgIChkZWZpbmUta2V5 IGRpcmVkLW1vZGUtbWFwICJGIiAnZGlyZWQtZmluZC1maWxlLWxpdGVyYWxseSkKCSAgICAgKGRl ZmluZS1rZXkgZGlyZWQtbW9kZS1tYXAgIiV+IiAnZGlyZWQtZmxhZy1iYWNrdXAtZmlsZXMpKSkK KGRlZnVuIGRpcmVkLWZpbmQtZmlsZS1saXRlcmFsbHkgKCkKICAiSW4gZGlyZWQsIGxpdGVyYWxs eSB2aXNpdCB0aGUgZmlsZSBuYW1lZCBvbiB0aGlzIGxpbmUuIgogIChpbnRlcmFjdGl2ZSkKICAo bGV0ICgoZmlsZS1uYW1lIChmaWxlLW5hbWUtc2Fucy12ZXJzaW9ucyAoZGlyZWQtZ2V0LWZpbGVu YW1lKSB0KSkKCTs7IGJpbmQgaXQgc28gdGhhdCB0aGUgY29tbWFuZCB3b3JrcyBvbiBkaXJlY3Rv cmllcyB0b28sCgk7OyBpbmRlcGVuZGVudCBvZiB0aGUgdXNlcidzIHNldHRpbmcKCShmaW5kLWZp bGUtcnVuLWRpcmVkIHQpKQogICAgKGlmIChmaWxlLWV4aXN0cy1wIGZpbGUtbmFtZSkKCShmaW5k LWZpbGUtbGl0ZXJhbGx5IGZpbGUtbmFtZSkKICAgICAgKGlmIChmaWxlLXN5bWxpbmstcCBmaWxl LW5hbWUpCgkgIChlcnJvciAiRmlsZSBpcyBhIHN5bWxpbmsgdG8gYSBub25leGlzdGVudCB0YXJn ZXQiKQoJKGVycm9yICJGaWxlIG5vIGxvbmdlciBleGlzdHM7IHR5cGUgYGcnIHRvIHVwZGF0ZSBE aXJlZCBidWZmZXIiKSkpKSkKCgoMCjs7OzsgICAgICAgICAgICAgICAgICoqKiogQ09NUElMRSAq KioqCgooc2V0cS1kZWZhdWx0IGNvbXBpbGF0aW9uLWVycm9yLXJlZ2V4cC1hbGlzdCAnKAoKICgi Xm1ha2U6IFxcW1xcKC4rXFwpOlxcKFswLTldK1xcKTogIiAxIDIpCiAoIl5tYWtlOiBcXCpcXCpc XCogXFxbXFwoLitcXCk6XFwoWzAtOV0rXFwpOiAiIDEgMikKCiAoIl4gLS0+IFxcKC4rXFwpOlxc KFswLTldK1xcKTpcXChbMC05XStcXCkkIiAxIDIgMykgOzsgIiAtLT4gc3JjL21haW4ucnM6NDoy OSIgLS0gZnJvbSAicnVzdCIKCiAoIl5cXCguK1xcKTpcXChbMC05XSsrXFwpOlxcKFswLTldK1xc KTogIiAxIDIgMykKICgiXlxcKC4rXFwpOlxcKFswLTldKytcXCk6XFwoWzAtOV0rXFwpLVxcKFsw LTldK1xcKTogIiAxIDIgKDMgLiA0KSkKICgiXlxcKC4rXFwpOlxcKFswLTldK1xcKS1cXChbMC05 XStcXCk6ICIgMSBuaWwgKDIgLiAzKSkKICgiXkZhdGFsIGVycm9yOiBleGNlcHRpb24gQXNzZXJ0 X2ZhaWx1cmUoXCJcXCguK1xcKVwiLCBcXChbMC05XStcXCksIFxcKFswLTldK1xcKSkiIDEgMiAo MyAuIDMpKSA7b2NhbWxjLGNvcTogRmlsZSAiLi9MaXN0VHlwZS52IiwgbGluZSAxNywgY2hhcmFj dGVyIDkKICgiXkZpbGUgXCJcXChbXixcIlxuXHRdK1xcKVwiLCBsaW5lIFxcKFswLTldK1xcKSwg Y2hhcmFjdGVyIFxcKFswLTldK1xcKSIgMSAyICgzIC4gMykpIDtvY2FtbGMsY29xOiBGaWxlICIu L0xpc3RUeXBlLnYiLCBsaW5lIDE3LCBjaGFyYWN0ZXIgOQogKCJeRmlsZSBcIlxcKFteLFwiXG5c dF0rXFwpXCIsIGxpbmUgXFwoWzAtOV0rXFwpLCBjaGFyYWN0ZXJzIFxcKFswLTldK1xcKS1cXChb MC05XStcXCkiIDEgMiAoMyAuIDQpKSA7b2NhbWxjLGNvcTogRmlsZSAiLi9MaXN0VHlwZS52Iiwg bGluZSAxNywgY2hhcmFjdGVycyAwLTYzCiAoIl5GaWxlIFwiXFwoW14sXCJcblx0XStcXClcIiwg bGluZXMgXFwoWzAtOV0rXFwpLVxcKFswLTldK1xcKSwgY2hhcmFjdGVycyBcXChbMC05XStcXCkt XFwoWzAtOV0rXFwpIiAxICgyIC4gMykgKDQgLiA1KSkgO29jYW1sYyxjb3E6IEZpbGUgIi4vTGlz dFR5cGUudiIsIGxpbmVzIDE3LTE5LCBjaGFyYWN0ZXJzIDIyLTQKICgiXkZpbGUgXCJcXChbXixc IlxuXHRdK1xcKVwiLCBjaGFyYWN0ZXJzIFxcKFswLTldK1xcKS1cXChbMC05XStcXCkiIDEgbmls ICgyIC4gMykpIDsgKGRvZXNuJ3QgcmVhbGx5IHdvcmspIGNvcTogRmlsZSAiVW5pTWF0aC9DYXRl Z29yeVRoZW9yeS9FeGFjdENhdGVnb3JpZXMvQWJlbGlhbkNhdGVnb3JpZXMudiIsIGNoYXJhY3Rl cnMgMTQyNS0xNDI1OiBTeW50YXggZXJyb3IKCiA7OyBXQVJOSU5HOiB3ZSBhcmUgY2FyZWZ1bCB0 byBwdXQgXG4gaW5zaWRlIFteLi4uXSBzbyBmYWlsdXJlIHRvIG1hdGNoIGRvZXNuJ3Qgc2tpcCBv dmVyIGludGVyZXN0aW5nIGxpbmVzCiAoIl4uKjogXFwoW15cbixdK1xcKTpcXChbMC05XStcXCk6 IC4qOiBBc3NlcnRpb24gLiogZmFpbGVkIiAxIDIpIDsgQyBhc3NlcnQoKTogIk0yOiAvaG9tZS9k YW4vc3JjL00yL21pa2UtZGV2ZWxvcG1lbnQvQlVJTEQvZGFuLy4uLy4uL01hY2F1bGF5Mi9kL3N0 ZGlvLmQ6NTI2OiBzdGRpb19sZXNzX2xlc3NfXzE6IEFzc2VydGlvbiBgby0+b3V0aW5kZXg+PTAn IGZhaWxlZC4iCgogOzsgLi4vZC9zdGFydHVwLm0yLmluOjMwNDo2OigwKTogZXJyb3I6IGNyZWF0 aW9uIG9mIGdsb2JhbCBzeW1ib2wgaW4gYSBsb2NhbCBzY29wZTogY3VycmVudExheW91dAogOzsg Li4vTWFjYXVsYXkyL20yL2RlYnVnZ2luZy5tMjoyMDo2OigxKTpbN106IGVycm9yOiAxIGVycm9y KHMpIG9jY3VycmVkIHJ1bm5pbmcgdGVzdHMgZm9yIHBhY2thZ2UgTm9ybWFsVG9yaWNWYXJpZXRp ZXMKIDs7IC92YXIvZm9sZGVycy80MC9keTg4bDVxZDM2MTM5MW1fM3YybTUxYm0wMDAwZ24vVC9N Mi02OTk3OS0wLzE0LnRtcDowOjE6IChvdXRwdXQgZmlsZSkgZXJyb3I6IE1hY2F1bGF5MiBleGl0 ZWQgd2l0aCByZXR1cm4gY29kZSAyNTYKIDs7IC92YXIvZm9sZGVycy80MC9keTg4bDVxZDM2MTM5 MW1fM3YybTUxYm0wMDAwZ24vVC9NMi02OTk3OS0wLzE0Lm0yOjA6MTogKGlucHV0IGZpbGUpCiAo Il5cXCguK1xcKTpcXChbMC05XStcXCk6XFwoWzAtOV0rXFwpOi4qXFwoXFwoKG91dHB1dCBmaWxl KSBcXCk/ZXJyb3I6IFxcfCBbV3ddYXJuaW5nOiBcXHwgcGFyc2UgZXJyb3IgXFx8ICtyZXF1aXJl ZCBmcm9tIGhlcmVcXHwgbm90ZTogXFx8IC0tYmFjayB0cmFjZS0tXFx8KGlucHV0IGZpbGUpXFwp IiAxIDIgMykKCiA7OyBoYXNrZWxsIGdoYzoKIDs7ICAgZm9vLmhzOjM6MToKIDs7ICAgICAgIHBh cnNlIGVycm9yIChwb3NzaWJseSBpbmNvcnJlY3QgaW5kZW50YXRpb24gb3IgbWlzbWF0Y2hlZCBi cmFja2V0cykKICgiXlxcKFteOiBcbl0rXFwpOlxcKFswLTldK1xcKVs6Ll1cXChbMC05XStcXCk6 JCIgMSAyIDMpCiAoIl5cXChbXjogXG5dK1xcKTpcXChbMC05XStcXClbOi5dXFwoWzAtOV0rXFwp OiBNb2R1bGUgIiAxIDIgMykKCiA7OyBsYXRleAogKCJeISBMYVRlWCBFcnJvcjogIikKICgiXkxh VGVYIFdhcm5pbmc6ICIpCiAoIl4hIFVuZGVmaW5lZCAiKQogKCJeISBNaXNzaW5nICIpCiAoIl4h IElsbGVnYWwgIikKICgiXiEgRXh0cmEgIikKICgiXiEgTWlzcGxhY2VkICIpCgogOzsgZW1hY3MK IDs7IGlzYXIvaXNhYmVsbGUtc3lzdGVtLmVsOjI5NToxNjpFcnJvcjogLi4uCiAoIl5cXChbXjog XG5dK1xcKTpcXChbMC05XStcXCk6XFwoWzAtOV0rXFwpOkVycm9yOiAiIDEgMikKCiA7OyBiaWJ0 ZXg6IFdhcm5pbmctLXRoZXJlJ3MgYSBudW1iZXIgYnV0IG5vIHZvbHVtZSBpbiBNUjE4MTMyMjQK ICgiXldhcm5pbmctLXRoZXJlJ3MgYSBudW1iZXIgYnV0IG5vIHZvbHVtZSBpbiAiKQoKIDs7IGJp YnRleDogUmVwZWF0ZWQgZW50cnktLS1saW5lIDM0NCBvZiBmaWxlIHZvZXZvZHNreS5iaWIKICgi XlJlcGVhdGVkIGVudHJ5LS0tbGluZSBcXChbMS05XVswLTldKlxcKSBvZiBmaWxlIFxcKC4qXFwp IiAyIDEpCiAKICgiXlxcKFdhcm5pbmdcXHxFcnJvclxcKTogXFwoLitcXCkgXFwoWzAtOV0rXFwp XFwuXFwoWzAtOV0rXFwpXFwuJCIgMiAzIDQpIDsgZm9yIG1sdG9uLCBmcm9tIGh0dHA6Ly9tbHRv bi5vcmcvRW1hY3MKCiA7OyBnY2M6ICAgIGlubGluZWQgZnJvbSAneG1sTmFub0hUVFBTYXZlX19p bnRlcm5hbF9hbGlhcycgYXQgbmFub2h0dHAuYzoxNTg4OgogKCJeICppbmxpbmVkIGZyb20gJy4q JyBhdCBcXChbXjpcbl0rXFwpOlxcKFswLTldK1xcKVs6XSIgMSAyKQoKICgiXlJhaXNlZCBhdCBm aWxlIFwiXFwoW14sXCJcblx0XStcXClcIiwgbGluZXM/IFxcKFswLTldK1xcKVstMC05XSosIGNo YXJhY3RlcnMgXFwoWzAtOV0rXFwpLVxcKFswLTldK1xcKSIgMSAyICgzIC4gNCkpIDtvY2FtbGM6 IFJhaXNlZCBhdCBmaWxlICJncmFtbWFyLm1seSIsIGxpbmUgMjYsIGNoYXJhY3RlcnMgMjUtNDUK ICgiXlJlLXJhaXNlZCBhdCBmaWxlIFwiXFwoW14sXCJcblx0XStcXClcIiwgbGluZXM/IFxcKFsw LTldK1xcKVstMC05XSosIGNoYXJhY3RlcnMgXFwoWzAtOV0rXFwpLVxcKFswLTldK1xcKSIgMSAy ICgzIC4gNCkpIDtvY2FtbGM6IFJlLXJhaXNlZCBhdCBmaWxlICJwYXJzaW5nLm1sIiwgbGluZSAx NzksIGNoYXJhY3RlcnMgMTQtMTcKICgiXkNhbGxlZCBmcm9tIGZpbGUgXCJcXChbXixcIlxuXHRd K1xcKVwiLCBsaW5lcz8gXFwoWzAtOV0rXFwpWy0wLTldKiwgY2hhcmFjdGVycyBcXChbMC05XStc XCktXFwoWzAtOV0rXFwpIiAxIDIgKDMgLiA0KSkgO29jYW1sYzogQ2FsbGVkIGZyb20gZmlsZSAi Z3JhbW1hci5tbHkiLCBsaW5lIDY4LCBjaGFyYWN0ZXJzIDExMi0xMjYKICgiXmphZGU6XFwoW14g CTpcbl0rXFwpOlxcKFswLTldK1xcKTpcXChbMC05XStcXCk6IiAxIDIgMykKICgiXi4qOiBMT0NB TCBFUlJPUjogRXJyb3IgaW4gXFwoW146XG5dK1xcKTogbGluZSBcXChbMC05XStcXCk6ICIgMSAy KQogKCJeXFwoW14oXG5dK1xcKShcXChbMC05XStcXCkpIDogIiAxIDIpCiAoIl5cXCguK1xcKTog bGluZSBcXChbMC05XStcXCk6ICIgMSAyKQogKCJeXFwoW14gCShcbl0rXFwpKFxcKFswLTldK1xc KSkgOiBjb2x1bW4gXFwoWzAtOV0rXFwpIDoiIDEgMiAzKQogKCJeTG9jYXRpb246IGZpbGU6XFwo W14gCTpcbl0rXFwpKFxcKFswLTldK1xcKSxcXChbMC05XStcXCkpIiAxIDIgMykKICgiXkxhcms6 XFwoW146XG5dK1xcKTpcXChbMC05XStcXCk6XFwoWzAtOV0rXFwpOiIgMSAyIDMpCiAoIl5CRUdJ TiBmYWlsZWQtLWNvbXBpbGF0aW9uIGFib3J0ZWQgYXQgXC5cLi9cXCguKlxcKSBsaW5lIFxcKFsw LTldK1xcKVwuIiAxIDIpIDsgcGVybDogIkJFR0lOIGZhaWxlZC0tY29tcGlsYXRpb24gYWJvcnRl ZCBhdCAuLi9saWIvTWFpbC9TcGFtQXNzYXNzaW4vRXZhbFRlc3RzLnBtIGxpbmUgMzMuIgogKCJe RVJST1I6IFxcKFteOlxuXStcXCk6XFwoWzAtOV0rXFwpOlxcKFswLTldK1xcKToiIDEgMiAzKQog KCJeW14gXHRcbjpdKzogXFwoW14gCTpcbl0rXFwpOlxcKFswLTldK1xcKTogIiAxIDIpCiAoIl5c XChbXjogXG5dK1xcKTpcXChbMC05XStcXCk6W14wLTlcbl0iIDEgMikKICgiXkdDX2RlYnVnLio6 LiooXFwoLipcXCk6XFwoWzAtOV0rXFwpIiAxIDIpIDsgR0NfZGVidWdfZnJlZTogZm91bmQgc21h c2hlZCBsb2NhdGlvbiBhdCAweDlkMzA2YjQgaW4gb2JqZWN0IGF0IDB4OWQzMDZhMCguLi8uLi8u Li9NYWNhdWxheTIvZS9nYnJpbmcuY3BwOjI3LCBzej0xNCkKCiAoIl5cXChbXjogXG5dK1xcKTpc XChbMC05XStcXClbOi5dXFwoWzAtOV0rXFwpLSIgMSAyIDMpIDsgZnJvbSBNMjogImVuZ2luZXJp bmcubTI6NDE6OS00MTo5OiB3YXJuaW5nOiAiCiAoIl5cXChbXjogXG5dK1xcKTooXFwoWzAtOV0r XFwpLFxcKFswLTldK1xcKVstKV0iIDEgMiAzKSA7IGZvciBtbXgtY29tcGlsZQogKCJeSW4gZmls ZSBpbmNsdWRlZCBmcm9tIFxcKFteOlxuXStcXCk6XFwoWzAtOV0rXFwpWzosXSIgMSAyKSA7IGdj YzogIkluIGZpbGUgaW5jbHVkZWQgZnJvbSAuLi8uLi8uLi9NYWNhdWxheTIvZS9NMi1mYWN0b3J5 LmNwcDo0OiIKICgiXiAgICAgICAgICAgICAgICAgZnJvbSBcXChbXjpcbl0rXFwpOlxcKFswLTld K1xcKVs6LF0iIDEgMikgOyBnY2M6ICIgICAgICAgICAgICAgICAgIGZyb20gL2NhcHliYXJhL2lu Y2x1ZGUvZmFjdG9yeS5oOjI4LCIKICgiXkFzc2VydGlvbiBmYWlsZWQ6IC4qLCBmaWxlIFxcKFte LFxuXStcXCksIGxpbmUgXFwoWzAtOV0rXFwpXFwuIiAxIDIpIDsgZ2xpYmMgYXNzZXJ0OiAiQXNz ZXJ0aW9uIGZhaWxlZDogKC4uLiksIGZ1bmN0aW9uIG1haW4sIGZpbGUgZm9vLmMsIGxpbmUgMTIu IgogKCIgaW4gb3IgbmVhciBvYmplY3QgYXQgLiooXFwoLipcXCk6XFwoWzAtOV0rXFwpIiAgMSAy KTsgbGliZ2MgZGVidWdnZXI6IDB4MTAxMzg2ZGY4IGluIG9yIG5lYXIgb2JqZWN0IGF0IDB4MTAx Mzg2ZGYwKE0ybWVtLmM6NTIsIHN6PTgpCikpCgoMCjs7OzsgICAqKioqIFlBTUwgKioqKgooaWYg KHJlcXVpcmUgJ3lhbWwtbW9kZSBuaWwgdCkKICAgIChhZGQtdG8tbGlzdCAnYXV0by1tb2RlLWFs aXN0ICcoIlxcLnltbFxcJyIgLiB5YW1sLW1vZGUpKSkKCgwKOzs7OyAgICAgICAgICAgICAgICAg KioqKiBHRURDT00gKioqKgooc2V0cSBhdXRvLW1vZGUtYWxpc3QKICAgICAgKGFwcGVuZCAgYXV0 by1tb2RlLWFsaXN0CgkgICAgICAgJygoIlxcLmdlZCQiIC4gZ2VkY29tLW1vZGUpKQoJICAgICAg ICkpCihhdXRvbG9hZCAnZ2VkY29tLW1vZGUgImdlZGNvbS5lbCIgIiIgdCkKCgwKOzs7OyAgICAg ICAgICAgICAgICAgKioqKiBDT01JTlQgKioqKgooZ2xvYmFsLXNldC1rZXkgWyAoYWx0IHApIF0g J3NlbmQtaW52aXNpYmxlKQooc2V0cSBzaGVsbC1wcm9tcHQtcGF0dGVybgkJOyB0aGlzIGlzIHVz ZWQgdG8gCgkJCQkJOyBpbml0aWFsaXplIHNoZWxsLXByb21wdC1wYXR0ZXJuCiAgICAgIChjb25j YXQgIl4iCQkJOyBiZWdpbm5pbmcgb2YgbGluZQoJICAgICAgIlsgXHRdKiIJCQk7IHNraXAgd2hp dGUgc3BhY2UKCSAgICAgICJcXCgiCgkgICAgICAocmVnZXhwLW9yCgkJIlthLXpBLVowLTkuOn4v XSpbJSMkPl0gIgoJCSI/IgoJCSI+IgkJCTtzaGVsbCwgc2Vjb25kYXJ5IHByb21wdAoJCSJHUz4i CQkJO2dob3N0c2NyaXB0CgkJImZ0cD4gIgkJCTtmdHAKCQkiW2lvXSpbMC05XSsgWzo9XSAiCTtN YWNhdWxheSAyCgkJImxwYz4iCQkJO2xwYwoJCSJbYS16QS1aXVthLXpBLVowLTldKyA8ICIgO2Nv cQoJCSIob2NkKSAiCQk7b2NhbWxkZWJ1ZwoJCSIoZ2RiKSA/IgkJO2dkYgoJCSJVU0VSKFswLTld Kyk6ICIJO0FsbGVncm8gY29tbW9uIGxpc3AKCQkiSW5cXFtbMC05XStcXF06PSAiCTtNYXRoZW1h dGljYQoJCSJPdXRcXFtbMC05XStcXF1cXCgvL1tePV0rXFwpPz0gIiA7TWF0aGVtYXRpY2EKCQki XFwqIgoJCSkKCSAgICAgICJcXCkiCgkgICAgICApCiAgICAgICkKCgwKOzs7OyAJICAgICAgICAg ICAgICoqKiogQ0FMRU5EQVIgKioqKgoKKHNldHEgaXNsYW1pYy1ob2xpZGF5cyBuaWwKICAgICAg b3JpZW50YWwtaG9saWRheXMgbmlsCiAgICAgIG90aGVyLWhvbGlkYXlzICcoCgkJICAgICAgIChp ZiAoemVyb3AgKCUgZGlzcGxheWVkLXllYXIgNCkpCgkJCSAgIChob2xpZGF5LWZpeGVkIAoJCQkg ICAgMTEKCQkJICAgIChleHRyYWN0LWNhbGVuZGFyLWRheQoJCQkgICAgIChjYWxlbmRhci1ncmVn b3JpYW4tZnJvbS1hYnNvbHV0ZQoJCQkgICAgICAoMSsgKGNhbGVuZGFyLWRheW5hbWUtb24tb3It YmVmb3JlCgkJCQkgICAxICgrIDYgKGNhbGVuZGFyLWFic29sdXRlLWZyb20tZ3JlZ29yaWFuCgkJ CQkJICAgKGxpc3QgMTEgMSBkaXNwbGF5ZWQteWVhcikpKSkpKSkKCQkJICAgICJVUyBQcmVzaWRl bnRpYWwgRWxlY3Rpb24iKSkpKQoKOzs7OyAgICAgICAgICAgICAgICAqKioqIFBST0dSQU1NSU5H ICoqKioKCihkZWZ1biB1cGRhdGUtbW9kZS1saW5lICgpIChzZXQtYnVmZmVyLW1vZGlmaWVkLXAg KGJ1ZmZlci1tb2RpZmllZC1wKSkpCgoMCgo7Ozs7ICAgICAgICAgICAgICAgICoqKiogZWRlYnVn ICoqKioKCgooZGVmaW5lLWtleSBlbWFjcy1saXNwLW1vZGUtbWFwIFsgKGNvbnRyb2wgeCkgKHgp IF0gJ2VkZWJ1Zy1ldmFsLXRvcC1sZXZlbC1mb3JtKQooYXV0b2xvYWQgJ2VkZWJ1Zy1ldmFsLXRv cC1sZXZlbC1mb3JtICJlZGVidWciKQoKOzs7OyAgICAgICAgICAgICAgICAqKioqIGZhbWlseSB0 cmVlICoqKioKKGF1dG9sb2FkICdydC1maW5kLWZpbGUgInJldHJpZXZlLmVsIiAKICAiUmV0dXJu IHRoZSBub2RlIGZvciBGSUxFTkFNRSBhbmQgS0VZIGFzIGEgc3RyaW5nLiIgdCkKKGdsb2JhbC1z ZXQta2V5IFsgKGFsdCBmKSBdICdydC1maW5kLWZpbGUpCihzZXRxIHJ0LWVuYWJsZS1lZGl0IHQp Cgo7KGlmIChmYm91bmRwICdzdGFuZGFyZC1kaXNwbGF5LWV1cm9wZWFuKSAoc3RhbmRhcmQtZGlz cGxheS1ldXJvcGVhbiB0KSkKCjsgbXNkb3MgY29sb3JzOgo7ICB3aGl0ZQo7ICBibHVlIGJyb3du IGN5YW4gZ3JheSBncmVlbiBtYWdlbnRhIHJlZCB5ZWxsb3cKOyAgbGlnaHRibHVlIGxpZ2h0YnJv d24gbGlnaHRjeWFuIGxpZ2h0Z3JheSBsaWdodGdyZWVuIGxpZ2h0bWFnZW50YSBsaWdodHJlZCBs aWdodHllbGxvdwo7ICBibGFjawoKOzsgZnJvbSBodHRwOi8vd3d3LmNzLndhc2hpbmd0b24uZWR1 L2hvbWVzL3ZvZWxrZXIvbnRlbWFjcy5odG1sCgooYWRkLWhvb2sgJ3NoZWxsLW1vZGUtaG9vayAK CSAgKGZ1bmN0aW9uIChsYW1iZGEgKCkKCSAgICAgOyAoc2V0cSBjb21pbnQtY29tcGxldGlvbi1h ZGRzdWZmaXggdCkKCSAgICAgKHNldHEgY29taW50LXByb2Nlc3MtZWNob2VzIG5pbCkgO2Jhc2gK CSAgICAgOyAoc2V0cSBjb21pbnQtcHJvY2Vzcy1lY2hvZXMgdCkgO2NtZAoJICAgICAoc2V0cSBj b21pbnQtZW9sLW9uLXNlbmQgdCkKCSAgICAgKG1ha2UtdmFyaWFibGUtYnVmZmVyLWxvY2FsICdj b21pbnQtY29tcGxldGlvbi1hZGRzdWZmaXgpKSkpCgooc2V0cSBiaW5hcnktcHJvY2Vzcy1pbnB1 dCB0KSA7OyBiYXNoIGRvZXNuJ3QgdHJlYXQgXk0gYXMgd2hpdGUgc3BhY2UsIHNvIGRvbid0IHNl bmQgaXQuCihzZXRxIGJpbmFyeS1wcm9jZXNzLW91dHB1dCBuaWwpIDs7IG1hbnkgYXBwbGljYXRp b25zIGVtaXQgXk0ncywgc28gZ2V0IHJpZCBvZiB0aGVtLgoKKHNldHEgZXhwbGljaXQtc2gtYXJn cyAnKCItaSIpKQooc2V0cSBleHBsaWNpdC1iYXNoLWFyZ3MgJygiLWkiKSkKCgo7O2Zyb20gaHR0 cDovL3d3dy5jcy53YXNoaW5ndG9uLmVkdS9ob21lcy92b2Vsa2VyL250ZW1hY3MvZGlzY3Vzcy9i YXNoLXNldHVwCjs7IAo7OyAoaWYgUEMKOzsgICAgIChwcm9nbgo7OyAgICAgICAodXNpbmctdW5p eC1maWxlc3lzdGVtcyB0KQo7OyAgICAgICAoc2V0cSBzaGVsbC1maWxlLW5hbWUgInNoIikKOzsg ICAgICAgKHNldHEgZXhwbGljaXQtc2hlbGwtZmlsZS1uYW1lIHNoZWxsLWZpbGUtbmFtZSkKOzsg ICAgICAgKHNldHEgZXhwbGljaXQtc2gtYXJncyAnKCItbG9naW4iICItaSIpKQo7OyAgICAgICAo c2V0cSBzaGVsbC1jb21tYW5kLXN3aXRjaCAiLWMiKQo7OyAgICAgICAoc2V0cSBhcmNoaXZlLXpp cC11c2UtcGt6aXAgbmlsKQo7OyAgICAgICAoc2V0ZW52ICJTSEVMTCIgc2hlbGwtZmlsZS1uYW1l KQooc2V0cSB3aW4zMi1xdW90ZS1wcm9jZXNzLWFyZ3MgdCkKKHNldHEgd2luMzItZW5hYmxlLWl0 YWxpY3MgdCkKOzsgICAgICAgKHNldHEgY29taW50LXByb2Nlc3MtZWNob2VzIG5pbCkKOzsgO2hv bWUgKHNldC1kZWZhdWx0LWZvbnQgIi0qLUNvdXJpZXItbm9ybWFsLXItKi0qLTEyLTkwLSotKi1j LSotKi1hbnNpLSIpCjs7ICAgICAgIChzZXQtZGVmYXVsdC1mb250ICItKi1Db3VyaWVyLW5vcm1h bC1yLSotKi0xMy05Ny0qLSotYy0qLSotYW5zaS0iKQo7OyAgICAgICAobWVudS1iYXItbW9kZSAw KQo7OyAgICAgICkpCgo7OyAoYWRkLWhvb2sgJ2NvbWludC1vdXRwdXQtZmlsdGVyLWZ1bmN0aW9u cyAnc2hlbGwtc3RyaXAtY3RybC1tIG5pbCB0KQoKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7IG1haWwgOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Cgo7OyBmZXRjaGlu ZyBtYWlsIHdpdGggcG9wMzsgY29tcGlsZSBlbWFjcyB3aXRoIC0td2l0aC1wb3AKOyAoc2V0ZW52 ICJNQUlMSE9TVCIgIm1haWwuaW5zaWdodEJCLmNvbSIpCihkZWZ1biBvbmxpbmUgKCkgIlNldCB1 cCBmb3Igc2VuZGluZyBlbWFpbCB3aGlsZSBvbmxpbmUsIGFuZCBkZWxpdmVyIHRoZSBxdWV1ZS4i CiAgKGludGVyYWN0aXZlKQogIChzbXRwbWFpbC1zZW5kLXF1ZXVlZC1tYWlsKQogIChzZXRxIHNt dHBtYWlsLXF1ZXVlLW1haWwgbmlsKSkKKGRlZnVuIG9mZmxpbmUgKCkgIlNldCB1cCBmb3Igc2Vu ZGluZyBlbWFpbCB3aGlsZSBvZmZsaW5lLiIKICAoaW50ZXJhY3RpdmUpCiAgKHNldHEgc210cG1h aWwtcXVldWUtbWFpbCB0KSkKKHNldHEgOyBybWFpbC1yZW1vdGUtcGFzc3dvcmQtcmVxdWlyZWQg dAogICAgICA7IHNlbmQtbWFpbC1mdW5jdGlvbiAnc2VuZG1haWwtc2VuZC1pdAogICAgICA7IHNl bmQtbWFpbC1mdW5jdGlvbiAnc210cG1haWwtc2VuZC1pdCA7IG5vcm1hbGx5IHNldCB0byBzZW5k bWFpbC1zZW5kLWl0CiAgICAgIDsgc210cG1haWwtZGVmYXVsdC1zbXRwLXNlcnZlciAibG9jYWxo b3N0IgogICAgICA7IHNtdHBtYWlsLXNtdHAtc2VydmljZSA0MDAxCiAgICAgIDsgc210cG1haWwt cXVldWUtZGlyICJ+L3Zhci9xdWV1ZWQtbWFpbC8iCiAgICAgIDsgcm1haWwtbW92ZW1haWwtc2Vh cmNoLXBhdGggJygiL3Vzci9iaW4iKQogICAgICA7IHJtYWlsLW1vdmVtYWlsLWZsYWdzICcoKQog ICAgICA7IHJtYWlsLW1vdmVtYWlsLXByb2dyYW0gIi9ob21lL2Rhbi9iaW4vbW92ZW1haWwubG9n IiA7IGZvciBkZWJ1Z2dpbmcgcm1haWwKICAgICAgOyBtb3ZlbWFpbC5sb2cgY29udGFpbnMgdGhp czoKCQk7OyBESVI9L3Vzci9iaW4KCQk7OyBleGVjIDM+Pi90bXAvbW92ZW1haWwubG9nCgkJOzsg ZWNobyA+JjMKCQk7OyBkYXRlID4mMwoJCTs7IGVjaG8gY29tbWFuZCBsaW5lOiAkRElSL21vdmVt YWlsICIkQCIgPiYzCgkJOzsgJERJUi9tb3ZlbWFpbCAiJEAiID4vdG1wL21vdmVtYWlsLm91dCAy Pi90bXAvbW92ZW1haWwuZXJyCgkJOzsgcj0kPwoJCTs7IGNhdCAvdG1wL21vdmVtYWlsLm91dAoJ CTs7IGNhdCAvdG1wL21vdmVtYWlsLmVyciA+JjIKCQk7OyBlY2hvIHN0ZG91dDogPiYzCgkJOzsg c2VkICdzL14vPT0gLycgL3RtcC9tb3ZlbWFpbC5vdXQgPiYzCgkJOzsgZWNobyBzdGRlcnI6ID4m MwoJCTs7IHNlZCAncy9eLz09IC8nIC90bXAvbW92ZW1haWwuZXJyID4mMwoJCTs7IGVjaG8gcmV0 dXJuIGNvZGU6ICRyID4mMwoJCTs7IGV4aXQgJHIKICAgICAgOyBybWFpbC1tb3ZlbWFpbC1wcm9n cmFtICIvdXNyL2Jpbi9tb3ZlbWFpbCIKICAgICAgcm1haWwtcHJpbWFyeS1pbmJveC1saXN0IChs aXN0IChjb25jYXQgIm1haWxkaXI6Ly8iIChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQgIn4iICh1 c2VyLWxvZ2luLW5hbWUpKSkgIi9NYWlsZGlyIikpCiAgICAgIDs7IGZvciBtb3ZlbWFpbCBwZXJs IHNjcmlwdCwgc2VlIGNvbW1lbnRzIGluc2lkZSBpdDoKICAgICAgOzsgcm1haWwtbW92ZW1haWwt cHJvZ3JhbSAiL3Vzci9sb2NhbC9iaW4vbW92ZW1haWwiCiAgICAgIDs7IHJtYWlsLXByaW1hcnkt aW5ib3gtbGlzdCAKICAgICAgOzsgIChsaXN0IChleHBhbmQtZmlsZS1uYW1lICJ+L01haWxkaXIv LnJtYWlsLWlzLXRvby1zbWFydCIpKQopCgo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7IGZvbnRzIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKKGRlZnVuIGN1cnJlbnQtZm9udCAo KQogICJSZXR1cm4gdGhlIGN1cnJlbnQgZm9udCIKICAoaW50ZXJhY3RpdmUpCiAgKGNkciAoYXNz b2MgJ2ZvbnQgKGZyYW1lLXBhcmFtZXRlcnMpKSkpCgo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7OzsgdzMyIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Owooc2V0cSBjb21w bGV0aW9uLWlnbm9yZS1jYXNlIG5pbCkKCjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 OyBjdnMgOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CjsgKHNldHEgdmMtaGFuZGxl LWN2cyB0KQo7IChzZXRxIHZjLWhhbmRsZS1jdnMgbmlsKQoKKHNldHEgZmlsZS1uYW1lLWJ1ZmZl ci1maWxlLXR5cGUtYWxpc3QgOyBuaWwgZm9yIHRleHQsIHQgZm9yIGJpbmFyeS4KICAgICAgJygo IlxcLmVsYyQiIC4gdCkKCSgiXFwuXFwob2JqXFx8ZXhlXFx8Y29tXFx8bGliXFx8c3ltXFx8c3lz XFx8Y2hrXFx8YmluXFx8aWNvXFx8cGlmXFx8ZG9zXFx8Y2xhc3NcXCkkIiAuIHQpCgkoIlxcLlxc KGRsbFxcfGRydlxcfGNwbFxcfHNjclxcdmJ4XFx8Mzg2XFx8dnhkXFx8Zm9uXFx8Zm50XFx8Zm90 XFx8dHRmXFx8Z3JwXFwpJCIgLiB0KQoJKCJcXC5cXChobHBcXHxibXBcXHx3YXZcXHxhdmlcXHxt cGdcXHxqcGdcXHx0aWZcXG1vdlxcYXVcXCkiIC4gdCkKCSgiXFwuXFwoYXJjXFx8emlwXFx8cGFr XFx8bHpoXFx8em9vXFwpJCIgLiB0KQoJKCJcXC5cXChhXFx8b1xcfHRhclxcfFpcXHxnelxcfHRh elxcfGphclxcKSQiIC4gdCkKCSkpCgoMCgo7KGNvbmRpdGlvbi1jYXNlIHZhbHVlIChkaWFyeSkK OyAgKGVycm9yIChjb25kCjsJICAoKGVxdWFsIHZhbHVlICcoZXJyb3IgIllvdSBkb24ndCBoYXZl IGEgZGlhcnkgZmlsZSEiKSkgbmlsKQo7CSAgKHQgKGV2YWwgdmFsdWUpKSkpKQoKCjs7CgooZGVm dW4gbWVzc2FnZS1jYW5jZWwtc2NpLW1hdGgtcmVzZWFyY2ggKCkKICAiQ2FuY2VsIGFuIGFydGlj bGUgYXMgbW9kZXJhdG9yIG9mIHNjaS5tYXRoLnJlc2VhcmNoLiIKICAoaW50ZXJhY3RpdmUpCiAg KHVubGVzcyAobWVzc2FnZS1uZXdzLXApIChlcnJvciAiVGhpcyBpcyBub3QgYSBuZXdzIGFydGlj bGU7IGNhbmNlbGluZyBpcyBpbXBvc3NpYmxlIikpCiAgKHdoZW4gKHllcy1vci1uby1wICJEbyB5 b3UgcmVhbGx5IHdhbnQgdG8gY2FuY2VsIHRoaXMgYXJ0aWNsZT8gIikKICAgIChsZXQgKGZyb20g bmV3c2dyb3VwcyBtZXNzYWdlLWlkIGRpc3RyaWJ1dGlvbiBidWYgc2VuZGVyKQogICAgICAoc2F2 ZS1leGN1cnNpb24KCShzYXZlLXJlc3RyaWN0aW9uCgkgIChtZXNzYWdlLW5hcnJvdy10by1oZWFk KQoJICAoc2V0cSBmcm9tIChtZXNzYWdlLWZldGNoLWZpZWxkICJmcm9tIikKCQlzZW5kZXIgKG1l c3NhZ2UtZmV0Y2gtZmllbGQgInNlbmRlciIpCgkJb3JpZ2luYXRvciAoaWYgc2VuZGVyIHNlbmRl ciBmcm9tKQoJCW5ld3Nncm91cHMgKG1lc3NhZ2UtZmV0Y2gtZmllbGQgIm5ld3Nncm91cHMiKQoJ CW1lc3NhZ2UtaWQgKG1lc3NhZ2UtZmV0Y2gtZmllbGQgIm1lc3NhZ2UtaWQiIHQpCgkJZGlzdHJp YnV0aW9uIChtZXNzYWdlLWZldGNoLWZpZWxkICJkaXN0cmlidXRpb24iKSkpCgkoc2V0cSBidWYg KHNldC1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlICIgKm1lc3NhZ2UgY2FuY2VsKiIpKSkKCShi dWZmZXItZGlzYWJsZS11bmRvIChjdXJyZW50LWJ1ZmZlcikpCgkoZXJhc2UtYnVmZmVyKQoJKGlu c2VydCAiTmV3c2dyb3Vwczogc2NpLm1hdGgucmVzZWFyY2hcbiIKCQkiRnJvbTogIiBvcmlnaW5h dG9yICJcbiIKCQkiU2VuZGVyOiAiIChtZXNzYWdlLW1ha2UtZnJvbSkgIlxuIgoJCSJTdWJqZWN0 OiBjbXNnIGNhbmNlbCAiIG1lc3NhZ2UtaWQgIlxuIgoJCSJDb250cm9sOiBjYW5jZWwgIiBtZXNz YWdlLWlkICJcbiIKCQkoaWYgZGlzdHJpYnV0aW9uIChjb25jYXQgIkRpc3RyaWJ1dGlvbjogIiBk aXN0cmlidXRpb24gIlxuIikgIiIpCgkJbWFpbC1oZWFkZXItc2VwYXJhdG9yICJcbiIKCQkiVGhp cyBhcnRpY2xlIGlzIGJlaW5nIGNhbmNlbGxlZCBieSB0aGUgbW9kZXJhdG9yLlxuIikKCShtZXNz YWdlICJDYW5jZWxpbmcuLi4iKQoJKGlmIChsZXQgKChtZXNzYWdlLXN5bnRheC1jaGVja3MKCQkg ICAnZG9udC1jaGVjay1mb3ItYW55dGhpbmctanVzdC10cnVzdC1tZSkpCgkgICAgICAoZnVuY2Fs bCBtZXNzYWdlLXNlbmQtbmV3cy1mdW5jdGlvbikpCgkgICAgKG1lc3NhZ2UgIkNhbmNlbGluZy4u LmRvbmUiKSkKCTsoa2lsbC1idWZmZXIgYnVmKQoJKSkpKQoKKHNldHEgYXV0by1tb2RlLWFsaXN0 IChhcHBlbmQgICcoKCJcXC5oLmluJCIgLiBjLW1vZGUpKSBhdXRvLW1vZGUtYWxpc3QpKQoKKHNl dHEgYXV0by1tb2RlLWFsaXN0IChhcHBlbmQgICcoKCJcXC5tYWtlJCIgLiBtYWtlZmlsZS1tb2Rl KSkgYXV0by1tb2RlLWFsaXN0KSkKKHNldHEgYXV0by1tb2RlLWFsaXN0IChhcHBlbmQgICcoKCJN YWtlZmlsZVxcLiIgLiBtYWtlZmlsZS1nbWFrZS1tb2RlKSkgYXV0by1tb2RlLWFsaXN0KSkKCihh dXRvbG9hZCAndzMgInczIiAiV1dXIEJyb3dzZXIiIHQpCgoKOzs7IEVtYWNzL1czIENvbmZpZ3Vy YXRpb24KKGNvbmRpdGlvbi1jYXNlICgpIChyZXF1aXJlICd3My1hdXRvICJ3My1hdXRvIikgKGVy cm9yIG5pbCkpCgo7Ozs7IGZvcnRoCihhdXRvbG9hZCAnZm9ydGgtbW9kZSAiZ2ZvcnRoLmVsIikK KHNldHEgYXV0by1tb2RlLWFsaXN0IChjb25zICcoIlxcLmZzXFwnIiAuIGZvcnRoLW1vZGUpIGF1 dG8tbW9kZS1hbGlzdCkpCgo7Ozs7IE0yCgooaWYgKGFuZCAoZ2V0ZW52ICJIT1NUTkFNRSIpIChm aWxlLWV4aXN0cy1wIChjb25jYXQgIn4vLmhvc3RzLyIgKGdldGVudiAiSE9TVE5BTUUiKSAiLy5l bWFjcyIpKSkKICAgIChsb2FkIChjb25jYXQgIn4vLmhvc3RzLyIgKGdldGVudiAiSE9TVE5BTUUi KSAiLy5lbWFjcyIpKSkKCihkZWZ1biBNMi1zZXQtc2VuZC10by1idWZmZXIgKGJ1ZmZlci1uYW1l KQogIChpbnRlcmFjdGl2ZSAiTTIgYnVmZmVyIG5hbWU6ICIpCiAgKHNldHEgTTItc2VuZC10by1i dWZmZXIgYnVmZmVyLW5hbWUpKQooZ2xvYmFsLXNldC1rZXkgWyBmMyBdICdNMi1zZXQtc2VuZC10 by1idWZmZXIpCjs7IChnbG9iYWwtc2V0LWtleSBbIGYxMiBdICdNMikKOzsgKGdsb2JhbC1zZXQt a2V5IFsgZjExIF0gJ00yLXNlbmQtdG8tcHJvZ3JhbSkKOyhsb2FkICJELW1vZGUiKQooc2V0cSBh dXRvLW1vZGUtYWxpc3QgKGNvbnMgJygiXFwuZCQiIC4gTTItbW9kZSkgYXV0by1tb2RlLWFsaXN0 KSkKKHNldHEgYXV0by1tb2RlLWFsaXN0IChjb25zICcoIlxcLmRkJCIgLiBNMi1tb2RlKSBhdXRv LW1vZGUtYWxpc3QpKQooZGVmdW4gTTItdGV4dC10by1UVCAoYXJnKQogICJDb252ZXJ0IHRoZSBy ZWdpb24gdG8gVFQgbW9kZSBpZiB0aGUgbWFyayBpcyBhY3RpdmU7IG90aGVyd2lzZSBjb252ZXJ0 Cm9uZSBzLWV4cHJlc3Npb24uICBQcmVmaXggYXJnIEMtVSBvbmx5IG1lYW5zIGNyZWF0ZSBhIFRP IGxpbmsgZm9yIG9uZQpzLWV4cHJlc3Npb24uICBQcmVmaXggYXJnIGEgbnVtYmVyIG1lYW5zIGNv bnZlcnQgdGhhdCBtYW55IHMtZXhwcmVzc2lvbnMuIgogIChpbnRlcmFjdGl2ZSAiUCIpCiAgKG1l c3NhZ2UgImFyZzogJXMiIGFyZykKICAobGV0ICgoVE8gKGFuZCBhcmcgKGxpc3RwIGFyZykpKSkK ICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAoaWYgKG5vdCBtYXJrLWFjdGl2ZSkgKG1hcmstc2V4 cCAoaWYgVE8gMSBhcmcpKSkKICAgICAgKGxldCAoKGkgKHBvaW50KSkgKGogKG1hcmspKSAoaykp CgkoaWYgKD4gaSBqKQoJICAgIChsZXQgKChrIGkpKSAoc2V0cSBpIGopIChzZXRxIGogaykpKQoJ KGdvdG8tY2hhciBqKQoJKGluc2VydCAoaWYgVE8gIiwgXCIiICJcIiwgXCIiKSkKCShnb3RvLWNo YXIgaSkKCShpbnNlcnQgKGlmIFRPICJcIiwgVE8gIiAiXCIsIFRUIFwiIikpCgkpKSkpCgooZ2xv YmFsLXNldC1rZXkgWyAobWV0YSBjb250cm9sIHkgKSBdICdNMi10ZXh0LXRvLVRUKQoKDAo7Ozs7 ICAgICAgICAgICAgICAgICAqKioqIFBFUlNPTkFMICoqKioKOzsgKGxvYWQgCjs7ICAoZXhwYW5k LWZpbGUtbmFtZSAKOzsgICAoY29uY2F0IAo7OyAgICAifiIgKGdldGVudiAiVVNFUiIpCjs7ICAg IDs7IH4kVVNFUiB3aWxsIGdpdmUgdGhlIGhvbWUgZGlyZWN0b3J5IG9mIHRoZSB1c2VyCjs7ICAg IDs7IFRoaXMgaXMgYmV0dGVyIHRoYW4gJEhPTUUgb3IgfiBpbiB0aGUgY2FzZSB3aGVyZSBhIHVz ZXIgaGFzIHVzZWQKOzsgICAgOzsgdGhlIHN1IGNvbW1hbmQgdG8gZWZmZWN0aXZlbHkgYmVjb21l IGFub3RoZXIgdXNlci4KOzsgICAgIi9ob21lL2VtYWNzL3BlcnNvbmFsIikKOzsgICApCjs7ICB0 IHQpCgo7OyBtYWlsY3J5cHQKOzs7IChpZiAobG9hZCAibWFpbGNyeXB0IiB0KQo7OzsgICAgIChw cm9nbiAKOzs7ICAgICAgIChtYy1zZXR2ZXJzaW9uICJncGciKQo7OzsgICAgICAgKGFkZC1ob29r ICdtYWlsLW1vZGUtaG9vayAnbWMtaW5zdGFsbC13cml0ZS1tb2RlKQo7OzsgICAgICAgKGFkZC1o b29rICdybWFpbC1zaG93LW1lc3NhZ2UtaG9vayAnbWMtaW5zdGFsbC1yZWFkLW1vZGUpCjs7OyAg ICAgICAoYWRkLWhvb2sgJ3JtYWlsLXN1bW1hcnktbW9kZS1ob29rICdtYy1pbnN0YWxsLXJlYWQt bW9kZSkKOzs7ICAgICAgIChhZGQtaG9vayAnbWVzc2FnZS1tb2RlLWhvb2sgJ21jLWluc3RhbGwt d3JpdGUtbW9kZSkKOzs7ICAgICAgIChhZGQtaG9vayAnbmV3cy1yZXBseS1tb2RlLWhvb2sgJ21j LWluc3RhbGwtd3JpdGUtbW9kZSkKOzs7ICAgICAgIChzZXRxIG1jLXBhc3N3ZC10aW1lb3V0IDYw MCkpKQoKKHNldHEgTWFuLXN3aXRjaGVzICItYSIpCQk7dG8gc2VlIG1hbiBwYWdlcyBmcm9tIGFs bCBzZWN0aW9ucyBvZiB0aGUgbWFudWFsCgoKKGFkZC1ob29rICdMYVRlWC1tb2RlLWhvb2sgJ0xh VGVYLXByZXZpZXctc2V0dXApCihhdXRvbG9hZCAnTGFUZVgtcHJldmlldy1zZXR1cCAicHJldmll dyIpCihhdXRvbG9hZCAncmVxICJyZXF1ZXN0LXF1ZXVlLmVsIiAiIiB0KQoKOzs7OyBzbWwKKHNl dHEgc21sLXByb2dyYW0tbmFtZSAic21sIikKKHNldHEgYXV0by1tb2RlLWFsaXN0IChjb25zICco IlxcLm1sJCIgLiBjYW1sLW1vZGUpIGF1dG8tbW9kZS1hbGlzdCkpCihzZXRxIGF1dG8tbW9kZS1h bGlzdCAoY29ucyAnKCJcXC5tbGkkIiAuIGNhbWwtbW9kZSkgYXV0by1tb2RlLWFsaXN0KSkKCjs7 OyBmb2MKKGFkZC10by1saXN0ICdhdXRvLW1vZGUtYWxpc3QgJygiXFwuZm9jJCIgLiBmb2MtbW9k ZSkpCihhdXRvbG9hZCAnZm9jLW1vZGUgImZvYyIgIk1ham9yIG1vZGUgZm9yIGVkaXRpbmcgRm9j IGNvZGUuIiB0KQoKOzs7IGRpcmVkCihzZXRxIGRpcmVkLWdhcmJhZ2UtZmlsZXMtcmVnZXhwCTsg dXNlICUmIGluIGRpcmVkIG1vZGUgdG8gZmxhZyB0aGVzZSBmb3IgZGVsZXRpb24KICAocmVnZXhw LW9yCiAgICJeXFwuIyIKICAgIl5jb3JlJCIgCiAgICJeYS5vdXQkIiAKICAgIl5hdXRvbTR0ZVxc LmNhY2hlJCIKICAgIl8uaHRtbCQiCiAgICJfX1swLTldWzAtOV1bMC05XVswLTldXFwuaHRtbCQi CiAgIChhcHBseSAncmVnZXhwLW9yIAoJICAobWFwY2FyIChsYW1iZGEgKGEpIChjb25jYXQgIlxc LiIgYSAiJCIpKQoJCSAgJygJCQk7IGZpbGUgZXh0ZW5zaW9ucwoJCSAgICAibyIJCQk7IGNvbXBp bGVkIG9iamVjdCBmaWxlcwoJCSAgICAiY21pIiAiY21vIiAJOyBjb21waWxlZCBvY2FtbCBmaWxl cwoJCSAgICAiaWxnIiAiaW5kIiAiYmJsIiAiYmxnIiAibG9nIiAidG9jIiAiaWR4IiAiYmFrIiAi YXV4IiAidFswLTldKyIgOyBUZVggZmlsZXMKCQkgICAgIm9yaWciICJyZWoiIAk7IHBhdGNoIGZp bGVzCgkJICAgICJ2byIKCQkgICAgImJhay1bMS05XVswLTldKiIgIn5bMC05Ll0rfiIgOyBjdnMg YmFja3VwIGZpbGVzCgkJICAgICJhY28iICJhbm8iICJhdHIiICJjaG8iICJkY3MiICJkY3QiICJl Y2wiICJlbm8iICJlcmUiICJlcnIiICJlc2giICJldGgiICJldmwiICJmaWwiICJmcm0iICJsb2ci ICJub2wiICJwcmYiICJzZ2wiICJ0aGwiICJ2Y2wiIDsgbWl6YXIgYWNjb20gdGVtcG9yYXJ5IGZp bGVzOgoJCSAgICAiYW5hIiAicGFyIiAicHJlIiAicmVmIiA7IG1pemFyIHZlcmlmaWVyIHRlbXBv cmFyeSBmaWxlcwoJCSAgICAiZGZzIiA7IG1vcmUgbWl6YXIgZmlsZXMKCQkgICAgImJ1eCIgOyBt eSB2ZXJzaW9uIG9mICouYXV4IGZvciB0ZXgKCQkgICAgImdsb2IiIDsgY29xYwoJCSAgICApKSkp KQoKKHNldHEgY29tcGxldGlvbi1pZ25vcmVkLWV4dGVuc2lvbnMJOyBhbHNvIHVzZWQgYnkgZGly ZWQgZm9yIGNvbG9yaW5nCiAgICAgICAnKAoJICIubyIgIn4iICIuYmluIiAiLmxiaW4iICIuc28i ICIuYSIgIi5sbiIgIi5ibGciICIuYmJsIiAiLmVsYyIgIi5sb2YiCgkgIi5nbG8iICIuaWR4IiAi LmxvdCIgIi5zdm4vIiAiLmhnLyIgIi5ienIvIiAiQ1ZTLyIgIl9kYXJjcy8iCgkgIl9NVE4vIiAi LmZtdCIgIi50Zm0iICIuY2xhc3MiICIuZmFzIiAiLmxpYiIgIi5tZW0iICIueDg2ZiIgIi5zcGFy Y2YiCgkgIi5kZnNsIiAiLnBmc2wiICIuZDY0ZnNsIiAiLnA2NGZzbCIgIi5seDY0ZnNsIiAiLmx4 MzJmc2wiICIuZHg2NGZzbCIKCSAiLmR4MzJmc2wiICIuZng2NGZzbCIgIi5meDMyZnNsIiAiLnN4 NjRmc2wiICIuc3gzMmZzbCIgIi53eDY0ZnNsIgoJICIud3gzMmZzbCIgIi5mYXNsIiAiLnVmc2wi ICIuZnNsIiAiLmR4bCIgIi5sbyIgIi5sYSIgIi5nbW8iICIubW8iCgkgIi50b2MiICIuYXV4IiAi LmNwIiAiLmZuIiAiLmt5IiAiLnBnIiAiLnRwIiAiLnZyIiAiLmNwcyIgIi5mbnMiICIua3lzIgoJ ICIucGdzIiAiLnRwcyIgIi52cnMiICIucHljIiAiLnB5byIKCgkgIi5jbWkiICIuY214YSIgIi5t bGxpYiIJOyBDb3EKCSAiLnh5YyIgIi1tMi50ZXgiICIuYnV4IgoJICIuYXV4bG9jayIgIi5iY2Yi ICIucnVuLnhtbCIgIi5zeW5jdGV4Lmd6IiAiLmZkYl9sYXRleG1rIiAiLmZscyIgIi5icmYiCQk7 IFRlWAoJICIub2xkIiAiLm91dCIgIi5pbGciICIuaW5kIiAiLnBzIiAiLmR2aS5neiIgIi5wcy5n eiIgIi5vbyIgIi5zZyIgIi50bXAiCgkgIi5hY28iICIuYW5vIiAiLmF0ciIgIi5jaG8iICIuZGNz IiAiLmRjdCIgIi5lY2wiICIuZW5vIiAiLmVyZSIgIi5lcnIiICIuZXNoIiAiLmV0aCIgIi5ldmwi ICIuZmlsIiAiLmZybSIgIi5sb2ciICIubm9sIiAiLnByZiIgIi5zZ2wiICIudGhsIiAiLnZjbCIg OyBtaXphciBhY2NvbSB0ZW1wb3JhcnkgZmlsZXM6CgkgIi5hbmEiICIucGFyIiAiLnByZSIgIi5y ZWYiIDsgbWl6YXIgdmVyaWZpZXIgdGVtcG9yYXJ5IGZpbGVzCgkgIi5kZnMiIDsgbW9yZSBtaXph ciBmaWxlcwoJICIudi5kIgoJICkpCgo7OyBldGFjaAooYXV0b2xvYWQgJ2F0dGFjaCAiZXRhY2gi IAoiQXR0YWNoIGEgZmlsZSBvciBjb2xsZWN0aW9uIG9mIGZpbGVzIHRvIHRoZSBwcmVzZW50IG91 dGdvaW5nIGVtYWlsIG1lc3NhZ2UuCldpbGRjYXJkcyBhcmUgcGVybWl0dGVkIHVuZGVyIHJlY2Vu dCB2ZXJzaW9ucyBvZiBFbWFjcy4gIFVzZSBpbiBNYWlsIG1vZGUuIiB0KQoKKGF1dG9sb2FkICdk ZXRhY2ggImV0YWNoIgoiRGV0YWNoIHRoZSBlbmNvZGVkIGF0dGFjaG1lbnRzIGZyb20gdGhlIHBy ZXNlbnQgZW1haWwgbWVzc2FnZS4KVXNlIGluIFJNQUlMIG1vZGUuIiB0KQoKKGF1dG9sb2FkICdt aW1lLWZvcndhcmQgImV0YWNoIgoiVXNlIE1JTUUgbWVzc2FnZS9yZmM4MjIgZm9ybWF0IHRvIGZv cndhcmQgYSBtZXNzYWdlLiAgVXNlIGluIFJNQUlMIG1vZGUuIiB0KQoKKGFkZC1ob29rICdybWFp bC1tb2RlLWhvb2sKCSAgKGZ1bmN0aW9uCgkgICAobGFtYmRhICgpCgkgICAgIChkZWZpbmUta2V5 IHJtYWlsLW1vZGUtbWFwIFsgKGNvbnRyb2wgYykgKGNvbnRyb2wgdSkgXSAnYnJvd3NlLXVybC1h dC1wb2ludCkKCSAgICAgKGRlZmluZS1rZXkgcm1haWwtbW9kZS1tYXAgWyAoY29udHJvbCBjKSAo Y29udHJvbCBmKSBdICdmaW5kLWZpbGUtYXQtcG9pbnQpCgkgICAgIChkZWZpbmUta2V5IHJtYWls LW1vZGUtbWFwICJGIiAnbWltZS1mb3J3YXJkKQoJICAgICAoZGVmaW5lLWtleSBybWFpbC1tb2Rl LW1hcCAiKCIgJ2RldGFjaCkKCSAgICAgKGRlZmluZS1rZXkgcm1haWwtbW9kZS1tYXAgIksiICdr aWxsLWxhYmVsLWRldGFjaGVkKQoJICAgICApKSkKCihhZGQtaG9vayAnbWFpbC1tb2RlLWhvb2sK CSAgKGZ1bmN0aW9uCgkgICAobGFtYmRhICgpCgkgICAgIChkZWZpbmUta2V5IG1haWwtbW9kZS1t YXAgWyAoY29udHJvbCBjKSA/YSBdICdhdHRhY2gpCgkgICAgICkpKQoKKGFkZC1ob29rICdybWFp bC1zdW1tYXJ5LW1vZGUtaG9vawoJICAoZnVuY3Rpb24KCSAgIChsYW1iZGEgKCkKCSAgICAgKGRl ZmluZS1rZXkgcm1haWwtc3VtbWFyeS1tb2RlLW1hcCAiRiIgJ21pbWUtZm9yd2FyZCkKCSAgICAg KGRlZmluZS1rZXkgcm1haWwtc3VtbWFyeS1tb2RlLW1hcCAiKCIgJ2RldGFjaCkKCSAgICAgKGRl ZmluZS1rZXkgcm1haWwtc3VtbWFyeS1tb2RlLW1hcCAiSyIgJ2tpbGwtbGFiZWwtZGV0YWNoZWQp CgkgICAgICkpKQoKOzsKCihzZXRxIGZvbyAoZnJhbWUtcGFyYW1ldGVyIGZyYW1lLWluaXRpYWwt ZnJhbWUgJ3RvcCkpIDsoKyAtMTExMykgaWYgbm90IG9uIHNjcmVlbiwgZXhwZWN0aW5nIGEgbnVt YmVyLCBsaWtlIDg3LCBjb21wdXRlZCBhcyAxMjAwLTExMTMsIHdoZW4gbXkgZ2VvbWV0cnkgaXMg MTk0eDY3LTAtMAo7OyBteSBzY3JlZW4gaGVpZ2h0IGlzIDEyMDAsIGJ1dCBpdCB3b3VsZG4ndCBr bm93IHRoYXQgd2hlbiBpdCdzIG9mZiB0aGUgc2NyZWVuIQoKKGRlZnVuIHhiaWZmKCkgKGludGVy YWN0aXZlKSAoc3RhcnQtcHJvY2VzcyAieGJpZmYiICIqeGJpZmYqIiAieGJpZmYiKSkKOyAoaWYg KGFuZCAoZ2V0ZW52ICJESVNQTEFZIikgKGdldGVudiAiTUFJTCIpIChmaWxlLWV4aXN0cy1wIChn ZXRlbnYgIk1BSUwiKSkpICh4YmlmZikpCgo7Ozsgc2luZ3VsYXIKKHNldHEgbG9hZC1wYXRoIChj b25zICIvY2FweWJhcmEvZW5jYXAvU2luZ3VsYXItMi4wLjUvU2luZ3VsYXIvMi0wLTUvZW1hY3Mi IGxvYWQtcGF0aCkpCihhdXRvbG9hZCAnc2luZ3VsYXIgInNpbmd1bGFyIiAiU3RhcnQgU2luZ3Vs YXIgdXNpbmcgZGVmYXVsdCB2YWx1ZXMuIiB0KQooYXV0b2xvYWQgJ3Npbmd1bGFyLW90aGVyICJz aW5ndWxhciIgIkFzayBmb3IgYXJndW1lbnRzIGFuZCBzdGFydCBTaW5ndWxhci4iIHQpCihzZXRx IGF1dG8tbW9kZS1hbGlzdCAoY29ucyAnKCJcXC5zaW5nXFwnIiAuIGMrKy1tb2RlKSBhdXRvLW1v ZGUtYWxpc3QpKQooc2V0cSBhdXRvLW1vZGUtYWxpc3QgKGNvbnMgJygiXFwubGliXFwnIiAuICBj KystbW9kZSkgYXV0by1tb2RlLWFsaXN0KSkKCjs7OyBtaXphcgooaWYgKGdldGVudiAiTUlaRklM RVMiKQogICAgKHByb2duCiAgICAgIChhdXRvbG9hZCAnbWl6YXItbW9kZSAibWl6YXIiICJNYWpv ciBtb2RlIGZvciBlZGl0aW5nIE1pemFyIGFydGljbGVzLiIgdCkKICAgICAgKGF1dG9sb2FkICdt bWxxdWVyeS1kZWNvZGUgIm1pemFyIikKICAgICAgKGF1dG9sb2FkICdtbWxxdWVyeS1tb2RlICJt aXphciIpCiAgICAgIChzZXRxIGF1dG8tbW9kZS1hbGlzdCAoYXBwZW5kICcoICAoIlxcLm1peiIg LiBtaXphci1tb2RlKSAoIlxcLmFicyIgLiBtaXphci1tb2RlKSkgYXV0by1tb2RlLWFsaXN0KSkK ICAgICAgKHNldHEgZm9ybWF0LWFsaXN0IAoJICAgIChhcHBlbmQgICcoCgkJICAgICAgICh0ZXh0 L21tbHF1ZXJ5ICJFeHRlbmRlZCBNSU1FIHRleHQvbW1scXVlcnkgZm9ybWF0LiIgCgkJCQkgICAg ICAiOjpbIFx0XSpDb250ZW50LVtUdF15cGU6WyAJXSp0ZXh0L21tbHF1ZXJ5IgoJCQkJICAgICAg bW1scXVlcnktZGVjb2RlIG5pbCBuaWwgbW1scXVlcnktbW9kZSkpCgkJICAgICBmb3JtYXQtYWxp c3QpKSkpCgo7OyB3aWtpcGVkaWEtbW9kZS5lbAooYXV0b2xvYWQgJ3dpa2lwZWRpYS1tb2RlICJ3 aWtpcGVkaWEtbW9kZS5lbCIgIk1ham9yIG1vZGUgZm9yIGVkaXRpbmcgZG9jdW1lbnRzIGluIFdp a2lwZWRpYSBtYXJrdXAuIiB0KQooc2V0cSBhdXRvLW1vZGUtYWxpc3QgKGNvbnMgJygiXFwud2lr aVxcJyIgLiB3aWtpcGVkaWEtbW9kZSkgYXV0by1tb2RlLWFsaXN0KSkKCjs7IHZtIC0tIHRocmVh ZGVkIGVtYWlsIHJlYWRlciBmb3IgZW1hY3MKKGF1dG9sb2FkICd2bSAidm0tc3RhcnR1cCIgIlJl YWQgbWFpbCB1bmRlciBFbWFjcy4iIHQpCgo7OyB0cmFtcAooZXZhbC1hZnRlci1sb2FkICJ0cmFt cCIKICAnKHByb2duCiAgICAgKGFkZC10by1saXN0ICd0cmFtcC1kZWZhdWx0LW1ldGhvZC1hbGlz dCAnKCJrLXRoZW9yeS4qIiAiIiAiZnRwIikpCiAgICAgKHRyYW1wLXNldC1jb21wbGV0aW9uLWZ1 bmN0aW9uICJzc2giCiAgICAgICcoKHRyYW1wLXBhcnNlLXNjb25maWcgIi9ldGMvc3NoX2NvbmZp ZyIpICh0cmFtcC1wYXJzZS1zY29uZmlnICJ+Ly5zc2gvY29uZmlnIikpKQogICAgIDsgKHRyYW1w LXNldC1jb21wbGV0aW9uLWZ1bmN0aW9uICJmdHAiICcoKHRyYW1wLXBhcnNlLW5ldHJjICJ+Ly5u ZXRyYyIpKSkKICAgICApKQoKOzs7OyBmb250cyBhbmQgcHJldHR5IGNoYXJhY3RlcnMKOyhmb250 LWxvY2stYWRkLWtleXdvcmRzICdlbWFjcy1saXNwLW1vZGUKOyAgICAnKCgiKFxcKGxhbWJkYVxc KVxcPiIgKDAgKHByb2cxICgpCjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbXBv c2UtcmVnaW9uIChtYXRjaC1iZWdpbm5pbmcgMSkKOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKG1hdGNoLWVuZCAxKQo7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA/zrspKSkpKSkKCjs7OyBzYWdlCjs7OyBodHRwOi8v d3d3LnNhZ2VtYXRoLm9yZy9lbWFjcy8KCjs7OyBzYWdlCgo7IChnbG9iYWwtc2V0LWtleSBbIChj b250cm9sIGMpIChzKSBdICdzYWdlKQo7IChnbG9iYWwtc2V0LWtleSBbIChtZXRhIGkpIF0gJ3Nh Z2UpCjsgKGF1dG9sb2FkICdweXJleC1tb2RlICJweXJleC1tb2RlIiAiTWFqb3IgbW9kZSBmb3Ig ZWRpdGluZyBQeXJleCBmaWxlcyIgdCkKOyAoYXV0b2xvYWQgJ3B5dGhvbi1tb2RlICJweXRob24t bW9kZSIgIk1ham9yIG1vZGUgZm9yIGVkaXRpbmcgUHl0aG9uIGZpbGVzIiB0KQo7IChhdXRvbG9h ZCAnc2FnZSAic2FnZSIgIlN0YXJ0IGEgc2FnZSBzZXNzaW9uIiB0KQo7IChhZGQtdG8tbGlzdCAn YXV0by1tb2RlLWFsaXN0ICcoIlxcLlxcKHB4ZFxcfHB5eFxcKVxcJyIgLiBweXJleC1tb2RlKSkK OyAoYWRkLXRvLWxpc3QgJ2F1dG8tbW9kZS1hbGlzdCAnKCJcXC5weGlcXCciIC4gcHl0aG9uLW1v ZGUpKQoKOzsgKGFkZC10by1saXN0ICdsb2FkLXBhdGggKGV4cGFuZC1maWxlLW5hbWUgIi9hdXgv ZGFuL3NhZ2Uvc2FnZS0zLjIuMi11YnVudHUzMmJpdC1pbnRlbC1pNjg2LUxpbnV4L2RhdGEvZW1h Y3MiKSkKOzsgKHJlcXVpcmUgJ3B5dGhvbikKOzsgKHJlcXVpcmUgJ3B5cmV4ICJweXJleC1tb2Rl IiB0KQo7OyAocmVxdWlyZSAnc2FnZSAic2FnZS1tb2RlIiB0KQo7OyAoc2V0cSBzYWdlLWNvbW1h bmQgIi9hdXgvZGFuL3NhZ2Uvc2FnZS0zLjIuMi11YnVudHUzMmJpdC1pbnRlbC1pNjg2LUxpbnV4 L3NhZ2UiKQoKOzs7OyBNYXRoZW1hdGljYQoKKGF1dG9sb2FkICdtbWEtbW9kZSAibW1hLmVsIiAi TWF0aGVtYXRpY2EgcGFja2FnZSBmaWxlIG1vZGUiIHQpCihhZGQtdG8tbGlzdCAnYXV0by1tb2Rl LWFsaXN0ICcoIlxcLm1cXCciIC4gbW1hLW1vZGUpKQoKOzs7OyBDb0NvQQoKKGxvYWQgIi9hL3Nv ZnR3YXJlL2NvY29hLTQuNy9lbWFjcy9jb2NvYS5lbWFjcyIgdCkKCjs7OzsgZWRpIGFuZCB4MTIK OyAoYWRkLXRvLWxpc3QgJ21hZ2ljLW1vZGUtYWxpc3QgJygiXklTQSIgLiBlZGktbW9kZSkpCihh dXRvbG9hZCAnZWRpLW1vZGUgImVkaS1tb2RlIiAiZWRpIG1vZGUiIHQpCjs7OzsgeDEyLW1vZGUg aXMgYnJva2VuOiBpdCBhZGRzIGEgbmV3bGluZSB0byB0aGUgZW5kIG9mIHRoZSBmaWxlCjsgKGF1 dG9sb2FkICd4MTItbW9kZSAieDEyLW1vZGUiICJ4MTIgbW9kZSIgdCkKOyAoYWRkLXRvLWxpc3Qg J21hZ2ljLW1vZGUtYWxpc3QgJygiXklTQSIgLiB4MTItbW9kZSkpCgo7OzsKKHB1dCAnc2Nyb2xs LWxlZnQgJ2Rpc2FibGVkIG5pbCkKCjs7OyBmdWxsc2NyZWVuCihkZWZ1biBmdWxsc2NyZWVuICgm b3B0aW9uYWwgZikKICAoaW50ZXJhY3RpdmUpCiAgKHNldC1mcmFtZS1wYXJhbWV0ZXIgZiAnZnVs bHNjcmVlbgoJCSAgICAgICAoaWYgKGZyYW1lLXBhcmFtZXRlciBmICdmdWxsc2NyZWVuKSBuaWwg J2Z1bGxib3RoKSkpCjsoYWRkLWhvb2sgJ2FmdGVyLW1ha2UtZnJhbWUtZnVuY3Rpb25zICdmdWxs c2NyZWVuKQooZGVmdW4gZnVsbHNjcmVlbjIgKCkKICAoaW50ZXJhY3RpdmUpCiAgKHgtc2VuZC1j bGllbnQtbWVzc2FnZSBuaWwgMCBuaWwgIl9ORVRfV01fU1RBVEUiIDMyICcoMiAiX05FVF9XTV9T VEFURV9GVUxMU0NSRUVOIiAwKSkpCihkZWZ1biBmdWxsc2NyZWVuMyAoKQogIChpbnRlcmFjdGl2 ZSkKICAoc2hlbGwtY29tbWFuZCAid21jdHJsIC1yIDpBQ1RJVkU6IC1idG9nZ2xlLGZ1bGxzY3Jl ZW4iKSkKKGdsb2JhbC1zZXQta2V5IFsgKHN1cGVyIGYxMSkgXSAnZnVsbHNjcmVlbjEpCgo7Ozsg Zml4IE1BTlBBVEggLS0gd2h5IGlzIHRoaXMgbmVlZGVkPyAgKHNlZSB+Ly5wYXRocwooaWYgKGFu ZCAoZ2V0ZW52ICJORVdNQU5QQVRIIikgKG5vdCAoZXF1YWwgKGdldGVudiAiTUFOUEFUSCIpIChn ZXRlbnYgIk5FV01BTlBBVEgiKSkpKSAoc2V0ZW52ICJNQU5QQVRIIiAoZ2V0ZW52ICJORVdNQU5Q QVRIIikpKQoKOzsgdG8gZ2V0IG5ic3AgY2hhciAxNjAgZGlzcGxheWVkIGFzIHNwYWNlCihzdGFu ZGFyZC1kaXNwbGF5LThiaXQgMTYwIDE2MCkKCihkZWZpbmUtZ2VuZXJpYy1tb2RlICd4bW9kbWFw LW1vZGUKICAgICAgJyg/ISkKICAgICAgJygiYWRkIiAiY2xlYXIiICJrZXljb2RlIiAia2V5c3lt IiAicG9pbnRlciIgInJlbW92ZSIpCiAgICAgIG5pbAogICAgICAnKCJbeFhdbW9kbWFwXFwocmNc XCk/XFwnIikKICAgICAgbmlsCiAgICAgICJTaW1wbGUgbW9kZSBmb3IgeG1vZG1hcCBmaWxlcy4i KQoKOzs7OyBzY29ucwoKKHNldHEgYXV0by1tb2RlLWFsaXN0IChjb25zICcoIlNDb25zdHJ1Y3Qi IC4gcHl0aG9uLW1vZGUpIGF1dG8tbW9kZS1hbGlzdCkpCihzZXRxIGF1dG8tbW9kZS1hbGlzdCAo Y29ucyAnKCJTQ29uc2NyaXB0IiAuIHB5dGhvbi1tb2RlKSBhdXRvLW1vZGUtYWxpc3QpKQo7Owoo c2V0ZW52ICJQQUdFUiIgInNlZCAncy8uCC8vZyciKQoKOzs7OyBlbWFjcyBzZXJ2ZXIKICAgIChz ZXJ2ZXItc3RhcnQpCiAgICAoc2V0ZW52ICJFRElUT1IiICJlbWFjc2NsaWVudCIpCiAgICAoc2V0 ZW52ICJWSVNVQUwiICJlbWFjc2NsaWVudCIpCgooc2hvdy1wYXJlbi1tb2RlIHQpCjsgKHNldHEg c2hvdy1wYXJlbi1zdHlsZSAncGFyZW50aGVzaXMpCgo7OyAoc2V0cSBkaXItbG9jYWxzLWZpbGUg Ii5teS1kaXItbG9jYWxzLmVsIikgOyBzbyB3ZSBpZ25vcmUgY29xJ3MgZGlyIGxvY2FsIGZpbGVz Cgo7Ozs7IGNocm9tZSBlZGl0IHNlcnZlcgoKKHdoZW4gKHJlcXVpcmUgJ2VkaXQtc2VydmVyIG5p bCB0KSAoZWRpdC1zZXJ2ZXItc3RhcnQpKQoKOzs7OyB0d2VsZgoKOzsgKGxvYWQgIi9BcHBsaWNh dGlvbnMvVHdlbGYvZW1hY3MvdHdlbGYtaW5pdC5lbCIpIDs7IHVuaW5zdGFsbGVkCjs7IChzZXRx IGxvYWQtcGF0aCAoY29ucyAiL0FwcGxpY2F0aW9ucy9Ud2VsZi9lbWFjcyIgbG9hZC1wYXRoKSkK OzsgKGF1dG9sb2FkICd0d2VsZi1tb2RlICJ0d2VsZiIgIk1ham9yIG1vZGUgZm9yIGVkaXRpbmcg VHdlbGYgc291cmNlLiIgdCkKOzsgKGF1dG9sb2FkICd0d2VsZi1zZXJ2ZXIgInR3ZWxmIiAiUnVu IGFuIGluZmVyaW9yIFR3ZWxmIHNlcnZlci4iIHQpCjs7IChhdXRvbG9hZCAndHdlbGYtc21sICJ0 d2VsZiIgIlJ1biBhbiBpbmZlcmlvciBUd2VsZi1TTUwgcHJvY2Vzcy4iIHQpCgo7OyAoc2V0cSBh dXRvLW1vZGUtYWxpc3QKOzsgICAgICAgKGNvbnMgJygiXC5lbGYkIiAuIHR3ZWxmLW1vZGUpCjs7 IAkgICAgKGNvbnMgJygiXC5xdXkkIiAuIHR3ZWxmLW1vZGUpCjs7IAkJICAoY29ucyAnKCJcLnRo bSQiIC4gdHdlbGYtbW9kZSkKOzsgCQkJKGNvbnMgJygiXC5jZmckIiAuIHR3ZWxmLW1vZGUpCjs7 IAkJCSAgICAgIGF1dG8tbW9kZS1hbGlzdCkpKSkpCjs7IChzZXRxIHR3ZWxmLXNlcnZlci1wcm9n cmFtICIvQXBwbGljYXRpb25zL1R3ZWxmL2Jpbi90d2VsZi1zZXJ2ZXIiKQoKOyBvciBtYXliZSB0 aGlzOgoKKHNldHEgdHdlbGYtcm9vdCAiL1VzZXJzL2Rhbi9zcmMvdHdlbGYvdHdlbGYvIikKOyAo bG9hZCAoY29uY2F0IHR3ZWxmLXJvb3QgImVtYWNzL3R3ZWxmLWluaXQuZWwiKSkKCjs7Ozsgb2Nh bWwgYW5kIGNvcQoKOyBlbmFibGVzIGNvcS1tb2RlIG9uICoudiBmaWxlcywgYW1vbmcgb3RoZXIg dGhpbmdzOgo7IChsb2FkICJjb3FkZWJ1Zy5lbCIpCgooYWRkLWhvb2sgJ2NhbWwtbW9kZS1ob29r IAoJICAnKGxhbWJkYSAoKQoJICAgICAocmVxdWlyZSAnY2FtbC1mb250KQoJICAgICAoY2FtbC1m b250LXNldC1mb250LWxvY2spCgkgICAgIChpZiAob3IgCgkJICAoc3RyaW5nLW1hdGNoICJcXC5t bDQtcHJlcHJvY2Vzc2VkJCIgKGJ1ZmZlci1maWxlLW5hbWUpKQoJCSAgKGFuZAoJCSAgIChzdHJp bmctbWF0Y2ggIlxcLm1sJCIgKGJ1ZmZlci1maWxlLW5hbWUpKQoJCSAgIChmaWxlLWV4aXN0cy1w IChjb25jYXQgKGJ1ZmZlci1maWxlLW5hbWUpICI0IikpKSkKCQkgKHNldHEgYnVmZmVyLXJlYWQt b25seSB0KSkpKQoKKGRlZnVuIGNvcS1QcmludC1Bc3N1bXB0aW9ucyAoKQogICJBc2sgZm9yIGFu IGlkZW50IGFuZCBwcmludCB0aGUgYXNzdW1wdGlvbnMgaXQgZGVwZW5kcyBvbi4iCiAgKGludGVy YWN0aXZlKQogIChjb3EtYXNrLWRvICJQcmludCBBc3N1bXB0aW9ucyIgIlByaW50IEFzc3VtcHRp b25zIikpCjs7IChwcm9vZi1kZWZpbnZpc2libGUgY29xLVNob3ctVW5pdmVyc2VzICJTaG93IFVu aXZlcnNlcy4iKQooYWRkLWhvb2sgJ2NvcS1tb2RlLWhvb2sgCgkgIChmdW5jdGlvbiAKCSAgIChs YW1iZGEoKQoJICAgICAoZGVmaW5lLWtleSBjb3EtbW9kZS1tYXAgWyAoY29udHJvbCBjKSAoY29u dHJvbCBhKSAoYSkgXSAnY29xLVByaW50LUFzc3VtcHRpb25zKQoJICAgICAoZGVmaW5lLWtleSBj b3EtbW9kZS1tYXAgWyAoY29udHJvbCBjKSAoY29udHJvbCBhKSAodSkgXSAnY29xLVNob3ctVW5p dmVyc2VzKQoJICAgICAoZGVmaW5lLWtleSBjb3EtbW9kZS1tYXAgWyAoY29udHJvbCBjKSAoLikg XSAncHJvb2YtZWxlY3RyaWMtdGVybWluYXRvci10b2dnbGUpCgkgICAgICkpKQoKOzsgKGFkZC1o b29rICdjb3EtbW9kZS1ob29rICMnY29tcGFueS1jb3EtbW9kZSkKKHNldHEgY29tcGFueS1jb3Et bGl2ZS1vbi10aGUtZWRnZSB0KQoKOzsgKGFkZC1ob29rICdjb3EtbW9kZS1ob29rIAo7OyAJICAo ZnVuY3Rpb24gCjs7IAkgICAobGFtYmRhKCkKOzsgCSAgICAgKG1vZGlmeS1zeW50YXgtZW50cnkg P18gInciKQo7OyAJICAgICAobW9kaWZ5LXN5bnRheC1lbnRyeSA/4oSkICJ3IikgOyB3aHkgZG9l c24ndCB0aGlzIHdvcms/Cjs7IAkgICAgIChzZXQtaW5wdXQtbWV0aG9kICJBZ2RhIikKOzsgCSAg ICAgKSkpCgooc2V0cS1kZWZhdWx0IHRydW5jYXRlLWxpbmVzIHQpCgo7Ozs7IHR1YXJlZywgbmVl ZGVkIGJ5IGVmZgooYXV0b2xvYWQgJ3R1YXJlZy1tb2RlICJ0dWFyZWctbW9kZSIpCgo7Ozs7IGVm ZgooYXV0b2xvYWQgJ2VmZi1tb2RlICJlZmYtbW9kZSIgIk1ham9yIG1vZGUgZm9yIGVkaXRpbmcg ZWZmIGZpbGVzIiB0KQooc2V0cSBhdXRvLW1vZGUtYWxpc3QgKGNvbnMgJygiXFwuZWZmJCIgLiBl ZmYtbW9kZSkgYXV0by1tb2RlLWFsaXN0KSkKCjs7OzsgYWdkYQoob3IgKHJlcXVpcmUgJ2FnZGEt aW5wdXQgbmlsIHQpICh3YXJuICJmYWlsZWQgdG8gbG9hZCBhZ2RhLWlucHV0IikpCihvciAocmVx dWlyZSAnYWdkYTItbW9kZSBuaWwgdCkgKHdhcm4gImZhaWxlZCB0byBsb2FkIGFnZGEyLW1vZGUi KSkKCjs7OzsgUHJvb2YgR2VuZXJhbAoKOzsgKHJlcXVpcmUgJ3Byb29mLXNpdGUgIn4vc3JjL1By b29mQ2hlY2tpbmcvUEcvZ2VuZXJpYy9wcm9vZi1zaXRlIikKOzsgKG9yIChyZXF1aXJlICdwcm9v Zi1zaXRlICJ+Ly5lbWFjcy5kL2xpc3AvUEcuZ2l0L2dlbmVyaWMvcHJvb2Ytc2l0ZSIgdCkgKHdh cm4gImZhaWxlZCB0byBsb2FkIFByb29mR2VuZXJhbCIpKQoKOzsgKGxvYWQgIn4vLmVtYWNzLmQv bGlzcC9QRy5naXQvZ2VuZXJpYy9wcm9vZi1zaXRlIiB0KQoKCjs7OzsgVFMsIHR5cGUgc3lzdGVt IGNoZWNrZXIgYW5kIHByb29mIGFzc2lzdGFudAoKOzsgKHNldHEgYXV0by1tb2RlLWFsaXN0Cjs7 ICAgICAgIChhcHBlbmQgIGF1dG8tbW9kZS1hbGlzdAo7OyAJICAgICAgICcoKCJcXC50cyQiIC4g dHMtbW9kZSkpCjs7IAkgICAgICAgKSkKOzsgKGF1dG9sb2FkICd0cy1tb2RlICJ0cy5lbCIgIiIg dCkKCjs7IChhZGQtaG9vayAndHMtbW9kZS1ob29rCjs7IAkgIChmdW5jdGlvbiAKOzsgCSAgIChs YW1iZGEoKQo7OyAJICAgICAoc2V0LWZpbGwtY29sdW1uIDk4KSkpKQoKOzs7OyBjbWFrZSBtb2Rl Cjs7IChyZXF1aXJlICdjbWFrZS1tb2RlKQoKOzs7OyB0ZXh0IGZvbnRzCgo7IGh0dHA6Ly9zb3Vy Y2Vmb3JnZS5uZXQvcHJvamVjdHMvc291cmNlY29kZXByby5hZG9iZS8KOyhzZXQtZnJhbWUtZm9u dCAiLWFwcGxlLVNvdXJjZV9Db2RlX1Byby1tZWRpdW0tbm9ybWFsLW5vcm1hbC0qLTE0LSotKi0q LW0tMC1pc28xMDY0Ni0xIikKOyhzZXQtZnJhbWUtZm9udCAiLSotc291cmNlIGNvZGUgcHJvLSot Ki0qLSotMTYtKi0qLSotKi0qLWlzbzEwNjQ2LSoiKQooZ2xvYmFsLXNldC1rZXkgWyAoY29udHJv bCBtZXRhID0pIF0gJ3RleHQtc2NhbGUtaW5jcmVhc2UpCihnbG9iYWwtc2V0LWtleSBbIChjb250 cm9sIG1ldGEgLSkgXSAndGV4dC1zY2FsZS1kZWNyZWFzZSkKCjs7OzsgbW9yZS11bmlxdWUgYnVm ZmVyIG5hbWVzCgoocmVxdWlyZSAndW5pcXVpZnkpCgo7IChyZXF1aXJlICd0b2dnbGUtc291cmNl KQoKOzs7OyBwYWNrYWdlcwoKKGlmIChyZXF1aXJlICdwYWNrYWdlIG5pbCB0KQogICAgKHByb2du CiAgICAgIChhZGQtdG8tbGlzdCAncGFja2FnZS1hcmNoaXZlcyAnKCJtZWxwYSIgLiAiaHR0cDov L21lbHBhLm9yZy9wYWNrYWdlcy8iKSB0KQogICAgICA7IChhZGQtdG8tbGlzdCAncGFja2FnZS1h cmNoaXZlcyAnKCJtZWxwYSIgLiAiaHR0cDovL21lbHBhLm1pbGtib3gubmV0L3BhY2thZ2VzLyIp IHQpCiAgICAgIDsocGFja2FnZS1pbml0aWFsaXplKQogICAgICApKQoKOzs7OyBoYXNrZWxsCgoo YWRkLWhvb2sgJ2hhc2tlbGwtbW9kZS1ob29rICd0dXJuLW9uLWhhc2tlbGwtaW5kZW50YXRpb24p Cgo7Ozs7IGxpbHlwb25kCgoob3IgKGxvYWQgImxpbHlwb25kLWluaXQuZWwiIHQpICh3YXJuICJm YWlsZWQgdG8gbG9hZCBsaWx5cG9uZC1pbml0IikpCgo7Ozs7IGF2ciBhbmQgYXJkdWlubwoKKHNl dHEgYXV0by1tb2RlLWFsaXN0IChjb25zICcoIlxcLmlubyQiIC4gYysrLW1vZGUpIGF1dG8tbW9k ZS1hbGlzdCkpCgo7Ozs7IG9wYW0KCjsoc2V0cSBvcGFtLXNoYXJlIChzdWJzdHJpbmcgKHNoZWxs LWNvbW1hbmQtdG8tc3RyaW5nICJvcGFtIGNvbmZpZyB2YXIgc2hhcmUgMj4gL2Rldi9udWxsIikg MCAtMSkpCjsoYWRkLXRvLWxpc3QgJ2xvYWQtcGF0aCAoY29uY2F0IG9wYW0tc2hhcmUgIi9lbWFj cy9zaXRlLWxpc3AiKSkKOzsgUHJlLWxvYWQgQW5kcm9tZWRhCjs7IChyZXF1aXJlICdhbmRyb21l ZGEtYXV0b2xvYWRzKQoKOzsgKG1hcGNhciAncHJpbnQgKG1hcGNhciAoZnVuY3Rpb24gKGxhbWJk YSAoeCkKOzsgCQkgICAgKGlmIChzdHJpbmctbWF0Y2ggInNpdGUtbGlzcCQiIHgpCjs7IAkJCShp ZiAoZmlsZS1leGlzdHMtcCAoY29uY2F0IHggIi9zdWJkaXJzLmVsIikpCjs7IAkJCSAgICAod2l0 aC10ZW1wLWJ1ZmZlcgo7OyAJCQkgICAgICAoY2QgeCkKOzsgCQkJICAgICAgKGxvYWQgKGNvbmNh dCB4ICIvc3ViZGlycy5lbCIpKSkpKSkpCjs7IAlsb2FkLXBhdGgpKQoKOzs7OyBmaXggYSBidWcg aW4gc2V0dGluZyB0aGUgaGVpZ2h0IG92ZXIgc3NoIGZyb20gbWFjIHRvIGxpbnV4Cjs7Ozsgc2Vl IGh0dHBzOi8vc3VwZXJ1c2VyLmNvbS9xdWVzdGlvbnMvMTQ0NDQxOS9lbWFjcy13aW5kb3ctaGVp Z2h0LWlzLXRvby1zbWFsbC13aGVuLXRoZS1zZXNzaW9uLWlzLW92ZXItc3NoLW9uLW1hY29zLXhx dWFydHoKKGlmICg8IChmcmFtZS1oZWlnaHQpIDQpIChzZXQtZnJhbWUtaGVpZ2h0ICh3aW5kb3ct ZnJhbWUpIDQ2KSkKCjs7OzsgZXhwZXJ0IGZlYXR1cmVzCgoocHV0ICdkb3duY2FzZS1yZWdpb24g J2Rpc2FibGVkIG5pbCkKKHB1dCAndXBjYXNlLXJlZ2lvbiAnZGlzYWJsZWQgbmlsKQoKOzs7OyBG aW5uaXNoIGtleWJvYXJkcwoKOzsgKGRlZnVuIGluc2VydC1sZWZ0LWJyYWNlICgpIChpbnNlcnQt Y2hhciAxMjMpKQo7OyAoZ2xvYmFsLXNldC1rZXkgWyAobWV0YSA0MCkgXSBgaW5zZXJ0LWxlZnQt YnJhY2UpCgo7Ozs7IE1hYyBPUyBYIHN0dWZmOgoKOzsgKHNldHEgbWFjLWNvbW1hbmQtbW9kaWZp ZXIgJ21ldGEpCjs7IChzZXRxIG1hYy1vcHRpb24tbW9kaWZpZXIgJ25vbmUpCgo7OyBtYWMtYWxs b3ctYW50aS1hbGlhc2luZyAJbWFjLWNvbW1hbmQtbW9kaWZpZXIgCW1hYy1jb250cm9sLW1vZGlm aWVyIAltYWMtZnVuY3Rpb24tbW9kaWZpZXIKOzsgbWFjLW9wdGlvbi1tb2RpZmllciAJbWFjLXJp Z2h0LWNvbW1hbmQtbW9kaWZpZXIgCW1hYy1yaWdodC1jb250cm9sLW1vZGlmaWVyIAltYWMtcmln aHQtb3B0aW9uLW1vZGlmaWVyCgo7OyBNYWNhdWxheSAyIHN0YXJ0Cihsb2FkICJ+Ly5lbWFjcy1N YWNhdWxheTIiIHQpCjs7IE1hY2F1bGF5IDIgZW5kCgooYWRkLXRvLWxpc3QgJ2xvYWQtcGF0aCAi L1VzZXJzL2Rhbi9zcmMvTTIvTTIuZ2l0L00yL01hY2F1bGF5Mi9lZGl0b3JzL2VtYWNzIikgO2dl dCB0aGUgbGF0ZXN0ICouZWwgZmlsZXMgZnJvbSB0aGUgc291cmNlIGNvZGUgdHJlZQoKOzs7IChz ZXRxIGxvYWQtcGF0aCAoY29ucyAifi9zcmMvTTIvTTIuZ2l0L00yL01hY2F1bGF5Mi9lZGl0b3Jz L2VtYWNzIiBsb2FkLXBhdGgpKQoKOzs7OyBsYXN0IHRoaW5nCgoobWVzc2FnZSAiTG9hZGVkIC5l bWFjcyIpCg== --00000000000087d81e05e054d04a Content-Type: application/octet-stream; name=".emacs-Macaulay2" Content-Disposition: attachment; filename=".emacs-Macaulay2" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l3umigg21 Oy0qLWVtYWNzLWxpc3AtKi0KCjs7IGFkZCAiL0FwcGxpY2F0aW9ucy9NYWNhdWxheTItMS4yMC9z aGFyZS9lbWFjcy9zaXRlLWxpc3AvbWFjYXVsYXkyIiB0byBsb2FkLXBhdGggaWYgaXQgaXNuJ3Qg dGhlcmUKKGFkZC10by1saXN0ICdsb2FkLXBhdGggIi9BcHBsaWNhdGlvbnMvTWFjYXVsYXkyLTEu MjAvc2hhcmUvZW1hY3Mvc2l0ZS1saXNwL21hY2F1bGF5MiIpCgo7OyBhZGQgIi9BcHBsaWNhdGlv bnMvTWFjYXVsYXkyLTEuMjAvc2hhcmUvaW5mbyIgdG8gSW5mby1kZWZhdWx0LWRpcmVjdG9yeS1s aXN0IGlmIGl0IGlzbid0IHRoZXJlCihhZGQtdG8tbGlzdCAnSW5mby1kZWZhdWx0LWRpcmVjdG9y eS1saXN0ICIvQXBwbGljYXRpb25zL01hY2F1bGF5Mi0xLjIwL3NoYXJlL2luZm8iKQoKOzsgYWRk ICIvQXBwbGljYXRpb25zL01hY2F1bGF5Mi0xLjIwL2JpbiIgdG8gUEFUSCBpZiBpdCBpc24ndCB0 aGVyZQooaWYgKG5vdCAoc3RyaW5nLW1hdGNoICIvQXBwbGljYXRpb25zL01hY2F1bGF5Mi0xLjIw L2JpbiIgKGdldGVudiAiUEFUSCIpKSkKICAgICAoc2V0ZW52ICJQQVRIIiAiL0FwcGxpY2F0aW9u cy9NYWNhdWxheTItMS4yMC9iaW46JFBBVEgiIHQpKQoKOzsgdGhpcyB2ZXJzaW9uIHdpbGwgZ2l2 ZSBhbiBlcnJvciBpZiBNMi1pbml0LmVsIGlzIG5vdCBmb3VuZDoKKGxvYWQgIk0yLWluaXQiKQoK OzsgdGhpcyB2ZXJzaW9uIHdpbGwgbm90IGdpdmUgYW4gZXJyb3IgaWYgTTItaW5pdC5lbCBpcyBu b3QgZm91bmQ6CjsobG9hZCAiTTItaW5pdCIgdCkKCjsgWW91IG1heSBjb21tZW50IG91dCB0aGUg Zm9sbG93aW5nIGxpbmUgd2l0aCBhbiBpbml0aWFsIHNlbWljb2xvbiBpZiB5b3UgCjsgd2FudCB0 byB1c2UgeW91ciBmMTIga2V5IGZvciBzb21ldGhpbmcgZWxzZS4gIEhvd2V2ZXIsIHRoaXMgYWN0 aW9uCjsgd2lsbCBiZSB1bmRvbmUgdGhlIG5leHQgdGltZSB5b3UgcnVuIHNldHVwKCkgb3Igc2V0 dXBFbWFjcygpLgooZ2xvYmFsLXNldC1rZXkgWyBmMTIgXSAnTTIpCgo7IFByZXZlbnQgRW1hY3Mg ZnJvbSBpbnNlcnRpbmcgYSBzdXBlcmZsdW91cyAiU2VlIiBvciAic2VlIiBpbiBmcm9udAo7IG9m IHRoZSBoeXBlcmxpbmtzIHdoZW4gcmVhZGluZyBkb2N1bWVudGF0aW9uIGluIEluZm8gbW9kZS4K KHNldHEgSW5mby1oaWRlLW5vdGUtcmVmZXJlbmNlcyAnaGlkZSkK --00000000000087d81e05e054d04a--