From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dimitri Belopopsky Newsgroups: gmane.emacs.bugs Subject: bug#61412: Inlay hints implementation Date: Tue, 21 Feb 2023 19:42:19 +0100 Message-ID: References: <83edqqaf8c.fsf@gnu.org> <2B284D77-97DF-4B3E-89FB-13F0CA93D240@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000005e698c05f53a24f5" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="22797"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Po Lu , Chinmay Dalal , Eli Zaretskii , 61412@debbugs.gnu.org To: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Feb 21 19:43:18 2023 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 1pUXbh-0005gC-MA for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 21 Feb 2023 19:43:18 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUXbZ-0007EQ-6G; Tue, 21 Feb 2023 13:43:09 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUXbT-0007EC-C3 for bug-gnu-emacs@gnu.org; Tue, 21 Feb 2023 13:43:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUXbS-0006Z5-R9 for bug-gnu-emacs@gnu.org; Tue, 21 Feb 2023 13:43:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pUXbS-0001vy-DA for bug-gnu-emacs@gnu.org; Tue, 21 Feb 2023 13:43:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Dimitri Belopopsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 21 Feb 2023 18:43:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 61412 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 61412-submit@debbugs.gnu.org id=B61412.16770049587404 (code B ref 61412); Tue, 21 Feb 2023 18:43:02 +0000 Original-Received: (at 61412) by debbugs.gnu.org; 21 Feb 2023 18:42:38 +0000 Original-Received: from localhost ([127.0.0.1]:57254 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pUXb4-0001vL-DQ for submit@debbugs.gnu.org; Tue, 21 Feb 2023 13:42:38 -0500 Original-Received: from mail-qk1-f178.google.com ([209.85.222.178]:44841) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pUXb2-0001v9-9j for 61412@debbugs.gnu.org; Tue, 21 Feb 2023 13:42:36 -0500 Original-Received: by mail-qk1-f178.google.com with SMTP id h17so872400qka.11 for <61412@debbugs.gnu.org>; Tue, 21 Feb 2023 10:42:36 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=WMp/NOcwm/K11BvLez8+WKIOSOgxM1RYcw1f18bYO6Y=; b=aB4hCdAS3dJUV8z6f7wh/2ECw8cwznIeczrl3i9lS7wYWEJlulaU7A4yAtvHbYNle4 89MP4RP5er/eDqByTr3UmlDJOOoS2YGlMf46nBw/4G6rVVZBijP8xzJmR92a4V6IHOmf 1JAmAkBAa5SqPdPVyR0bJjmWzhUCuOtRRkqZyGkxtAbJR543UzFYcPDrz42J7qytWZzK wWu1m3KObkN/w0PwABTxpetE6Wi4CPv9tJlcCB1cUJ4AGDLETl+9taFEF/hjfA61RNuW BlFh9NzstC3w2ca/P+VHIKQ0QntvDqO9VXAC3yeDtfc3OTek6pb1yCQx277/oQ+miwZQ MIhQ== X-Gm-Message-State: AO0yUKUdCXYJPRyf3E24a+aBBWkFJBxtR+iO87X/5+dX2WmdLA5bYo+v XbfRdK3b6Yh3wmQwPZu3Beh4zJJdZoeSNtFsgx0= X-Google-Smtp-Source: AK7set9gZp1FFlNoywAJoCkPcQ5UZNIrwMKkzbXG3wbA5cd4NA35tn0ash6vE5fhITP/akCYrfuEUOcwaGrd+VPexHY= X-Received: by 2002:a05:620a:19a6:b0:73b:7f8c:5571 with SMTP id bm38-20020a05620a19a600b0073b7f8c5571mr853907qkb.6.1677004950613; Tue, 21 Feb 2023 10:42:30 -0800 (PST) In-Reply-To: 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:256309 Archived-At: --0000000000005e698c05f53a24f5 Content-Type: multipart/alternative; boundary="0000000000005e698a05f53a24f3" --0000000000005e698a05f53a24f3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello, I thought the point was not to create overlays directly? I'm sharing what I currently have, using the flymake diagnostics directly. Maybe something can be salvaged? In the meantime I'll try out your patches. On Tue, 21 Feb 2023 at 16:14, Jo=C3=A3o T=C3=A1vora = wrote: > [Eli, I just noticed that this bug should be merged with 61066, > but I don't know how to do that] > > Hello, > > Attached is my implementation of inlay hints for Eglot. > Two patches are provided, where the first just lays some > basic groundwork to make the actual inlay hint implementation > simpler. > > Regarding copyright stuff, I did look at Chinmay's patch, > but I re-started from scratch. While it was a very good > effort, there were too many idiomatic Elisp and Eglot things > to change. I did take Chinmay's face definitions, though. > Not sure how to proceed here and if this counts as "derived > work" and if we should wait for Chinmay's copyright assignment. > > I gave it some light testing and I kind of like it. Quite > helpful for C++ with clangd (the only server I tested it with). > You can bind `eglot-inlay-hint-mode` to some keybinding probably. It's even more helpful in languages like Rust, that rely on type deduction a lot more. Clangd has an extension for designator hints that looks interesting too. > Documentation in the manual is still missing, but shouldn't > be very hard to do. > > Anyway, this is likely not the end of the inlay hint story > because, as the second patch documents, this is likely a > very naive implementation that always requests inlay hints > for the entire buffer even if just a fraction of it is visible. > > A better implementation would probably leverage > window-scroll-functions along with the Eglot-specific > idle timer. That is probably much, much more tricky to get > right, but is also more than likely the way to go. > > In the meantime, I'd like your opinion on this patch and > the above topics first. > > Jo=C3=A3o > > I hope gmail doesn't mess up my attachments... > --0000000000005e698a05f53a24f3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello,

I thou= ght the point was not to create overlays directly?
I'm sharing= what I currently have, using the flymake diagnostics directly.
Ma= ybe something can be salvaged?

In the mean= time I'll try out your patches.

On Tue, 21 Feb 202= 3 at 16:14, Jo=C3=A3o T=C3=A1vora <joaotavora@gmail.com> wrote:
[Eli, I just noticed that this bug should be merged = with 61066,
but I don't know how to do that]

Hello,

Attached is my implementation of inlay hints for Eglot.
Two patches are provided, where the first just lays some
basic groundwork to make the actual inlay hint implementation
simpler.

Regarding copyright stuff, I did look at Chinmay's patch,
but I re-started from scratch.=C2=A0 While it was a very good
effort, there were too many idiomatic Elisp and Eglot things
to change.=C2=A0 I did take Chinmay's face definitions, though.
Not sure how to proceed here and if this counts as "derived
work" and if we should wait for Chinmay's copyright assignment.
I gave it some light testing and I kind of like it.=C2=A0 Quite
helpful for C++ with clangd (the only server I tested it with).
You can bind `eglot-inlay-hint-mode` to some keybinding probably.

It's even more helpful in languages like Rust, t= hat rely on type deduction a lot more.
Clangd has an extension fo= r designator hints that looks interesting too.
=C2=A0
Documentation in the manual is still missing, but shouldn't
be very hard to do.

Anyway, this is likely not the end of the inlay hint story
because, as the second patch documents, this is likely a
very naive implementation that always requests inlay hints
for the entire buffer even if just a fraction of it is visible.
=C2=A0
A better implementation would probably leverage
window-scroll-functions along with the Eglot-specific
idle timer.=C2=A0 That is probably much, much more tricky to get
right, but is also more than likely the way to go.

In the meantime, I'd like your opinion on this patch and
the above topics first.

Jo=C3=A3o

I hope gmail doesn't mess up my attachments...
--0000000000005e698a05f53a24f3-- --0000000000005e698c05f53a24f5 Content-Type: text/x-patch; charset="UTF-8"; name="0001-Add-inlay-hint-functionality.patch" Content-Disposition: attachment; filename="0001-Add-inlay-hint-functionality.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_leelbb940 RnJvbSBlY2IwODkxMWRjZjViMmVhZTEzMzhlZjgzMjY0MDYwM2VhZjQ0MWIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaW1pdHJpIEJlbG9wb3Bza3kgPGRpbWl0cmlAYmVsb3BvcHNr eS5jb20+CkRhdGU6IE1vbiwgMiBKYW4gMjAyMyAyMjowNjowNyArMDEwMApTdWJqZWN0OiBbUEFU Q0hdIEFkZCBpbmxheSBoaW50IGZ1bmN0aW9uYWxpdHkKCi0tLQogZWdsb3QuZWwgfCAzNzMxICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDE5ODUgaW5zZXJ0aW9ucygrKSwgMTc0NiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9lZ2xvdC5lbCBiL2VnbG90LmVsCmluZGV4IDkwMWJmMzAuLjllNWE5ZGQgMTAwNjQ0 Ci0tLSBhL2VnbG90LmVsCisrKyBiL2VnbG90LmVsCkBAIC0xMTQsMTMgKzExNCwxMyBAQAogOzsg dXNpbmcgdGhlIGxhdGVzdCB2ZXJzaW9uIGZyb20gR05VIEVscGEgd2hlbiB3ZSBsb2FkIGVnbG90 LmVsLiAgVXNlIGFuCiA7OyBoZXVyaXN0aWMgdG8gc2VlIGlmIHdlIG5lZWQgdG8gYGxvYWQnIGl0 IGluIEVtYWNzIDwgMjguCiAoaWYgKGFuZCAoPCBlbWFjcy1tYWpvci12ZXJzaW9uIDI4KQotICAg ICAgICAgKG5vdCAoYm91bmRwICdlbGRvYy1kb2N1bWVudGF0aW9uLXN0cmF0ZWd5KSkpCi0gICAg KGxvYWQgImVsZG9jIikKKyAgICAgIChub3QgKGJvdW5kcCAnZWxkb2MtZG9jdW1lbnRhdGlvbi1z dHJhdGVneSkpKQorICAobG9hZCAiZWxkb2MiKQogICAocmVxdWlyZSAnZWxkb2MpKQogCiA7OyBT aW1pbGFyIGlzc3VlIGFzIGFib3ZlIGZvciBFbWFjcyAyNi4zIGFuZCBzZXEuZWwuCiAoaWYgKDwg ZW1hY3MtbWFqb3ItdmVyc2lvbiAyNykKLSAgICAobG9hZCAic2VxIikKKyAgKGxvYWQgInNlcSIp CiAgIChyZXF1aXJlICdzZXEpKQogCiA7OyBmb3J3YXJkLWRlY2xhcmUsIGJ1dCBkb24ndCByZXF1 aXJlIChFbWFjcyAyOCBkb2Vzbid0IHNlZW0gdG8gY2FyZSkKQEAgLTE1MCw5MCArMTUwLDkwIEBA IGNob3NlbiAoaW50ZXJhY3RpdmVseSBvciBhdXRvbWF0aWNhbGx5KS4iCiAgICAgOzsgYGVnbG90 LS1leGVjdXRhYmxlLWZpbmQnIG1heSB0YWtlIG11Y2ggbG9uZ2VyIHRvIGV4ZWN1dGUgb24KICAg ICA7OyByZW1vdGUgZmlsZXMuCiAgICAgKGxldCogKChsaXN0aWZpZWQgKGNsLWxvb3AgZm9yIGEg aW4gYWx0ZXJuYXRpdmVzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sbGVjdCAo aWYgKGxpc3RwIGEpIGEgKGxpc3QgYSkpKSkKLSAgICAgICAgICAgKGVyciAobGFtYmRhICgpCi0g ICAgICAgICAgICAgICAgICAoZXJyb3IgIk5vbmUgb2YgJyVzJyBhcmUgdmFsaWQgZXhlY3V0YWJs ZXMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNvbmNhdCAjJ2NhciBsaXN0aWZpZWQg IiwgIikpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0IChpZiAobGlzdHAgYSkg YSAobGlzdCBhKSkpKQorICAgICAgICAgICAgKGVyciAobGFtYmRhICgpCisgICAgICAgICAgICAg ICAgICAgKGVycm9yICJOb25lIG9mICclcycgYXJlIHZhbGlkIGV4ZWN1dGFibGVzIgorICAgICAg ICAgICAgICAgICAgICAgKG1hcGNvbmNhdCAjJ2NhciBsaXN0aWZpZWQgIiwgIikpKSkpCiAgICAg ICAoY29uZCAoaW50ZXJhY3RpdmUKLSAgICAgICAgICAgICAobGV0KiAoKGF1Z21lbnRlZCAobWFw Y2FyIChsYW1iZGEgKGEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsZXQgKChmb3VuZCAoZWdsb3QtLWV4ZWN1dGFibGUtZmluZAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXIgYSkgdCkpKQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgZm91bmQKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zIChjYXIgYSkgKGNv bnMgZm91bmQgKGNkciBhKSkpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaXN0aWZpZWQpKQotICAgICAgICAgICAgICAgICAgICAoYXZhaWxhYmxlIChyZW1vdmUg bmlsIGF1Z21lbnRlZCkpKQotICAgICAgICAgICAgICAgKGNvbmQgKChjZHIgYXZhaWxhYmxlKQot ICAgICAgICAgICAgICAgICAgICAgIChjZHIgKGFzc29jCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGNvbXBsZXRpbmctcmVhZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW2Vn bG90XSBNb3JlIHRoYW4gb25lIHNlcnZlciBleGVjdXRhYmxlIGF2YWlsYWJsZToiCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIgIydjYXIgYXZhaWxhYmxlKQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBuaWwgdCBuaWwgbmlsIChjYXIgKGNhciBhdmFpbGFibGUpKSkK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUgIydlcXVhbCkpKQotICAgICAg ICAgICAgICAgICAgICAgKChjZHIgKGNhciBhdmFpbGFibGUpKSkKLSAgICAgICAgICAgICAgICAg ICAgICh0Ci0gICAgICAgICAgICAgICAgICAgICAgOzsgRG9uJ3QgZXJyb3Igd2hlbiB1c2VkIGlu dGVyYWN0aXZlbHksIGxldCB0aGUKLSAgICAgICAgICAgICAgICAgICAgICA7OyBFZ2xvdCBwcm9t cHQgdGhlIHVzZXIgZm9yIGFsdGVybmF0aXZlIChnaXRodWIjNzE5KQotICAgICAgICAgICAgICAg ICAgICAgIG5pbCkpKSkKLSAgICAgICAgICAgICh0Ci0gICAgICAgICAgICAgKGNsLWxvb3AgZm9y IChwIC4gYXJncykgaW4gbGlzdGlmaWVkCi0gICAgICAgICAgICAgICAgICAgICAgZm9yIHByb2Jl ID0gKGVnbG90LS1leGVjdXRhYmxlLWZpbmQgcCB0KQotICAgICAgICAgICAgICAgICAgICAgIHdo ZW4gcHJvYmUgcmV0dXJuIChjb25zIHByb2JlIGFyZ3MpCi0gICAgICAgICAgICAgICAgICAgICAg ZmluYWxseSAoZnVuY2FsbCBlcnIpKSkpKSkpCisgICAgICAgICAgICAgIChsZXQqICgoYXVnbWVu dGVkIChtYXBjYXIgKGxhbWJkYSAoYSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsZXQgKChmb3VuZCAoZWdsb3QtLWV4ZWN1dGFibGUtZmluZAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhciBhKSB0 KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgZm91 bmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ucyAo Y2FyIGEpIChjb25zIGZvdW5kIChjZHIgYSkpKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpc3RpZmllZCkpCisgICAgICAgICAgICAgICAgICAgICAgKGF2YWlsYWJsZSAo cmVtb3ZlIG5pbCBhdWdtZW50ZWQpKSkKKyAgICAgICAgICAgICAgICAoY29uZCAoKGNkciBhdmFp bGFibGUpCisgICAgICAgICAgICAgICAgICAgICAgICAoY2RyIChhc3NvYworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChjb21wbGV0aW5nLXJlYWQKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJbZWdsb3RdIE1vcmUgdGhhbiBvbmUgc2VydmVyIGV4ZWN1dGFibGUgYXZh aWxhYmxlOiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIgIydjYXIg YXZhaWxhYmxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsIHQgbmlsIG5p bCAoY2FyIChjYXIgYXZhaWxhYmxlKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXZhaWxhYmxlICMnZXF1YWwpKSkKKyAgICAgICAgICAgICAgICAgICgoY2RyIChjYXIgYXZhaWxh YmxlKSkpCisgICAgICAgICAgICAgICAgICAodAorICAgICAgICAgICAgICAgICAgICA7OyBEb24n dCBlcnJvciB3aGVuIHVzZWQgaW50ZXJhY3RpdmVseSwgbGV0IHRoZQorICAgICAgICAgICAgICAg ICAgICA7OyBFZ2xvdCBwcm9tcHQgdGhlIHVzZXIgZm9yIGFsdGVybmF0aXZlIChnaXRodWIjNzE5 KQorICAgICAgICAgICAgICAgICAgICBuaWwpKSkpCisgICAgICAgICh0CisgICAgICAgICAgKGNs LWxvb3AgZm9yIChwIC4gYXJncykgaW4gbGlzdGlmaWVkCisgICAgICAgICAgICBmb3IgcHJvYmUg PSAoZWdsb3QtLWV4ZWN1dGFibGUtZmluZCBwIHQpCisgICAgICAgICAgICB3aGVuIHByb2JlIHJl dHVybiAoY29ucyBwcm9iZSBhcmdzKQorICAgICAgICAgICAgZmluYWxseSAoZnVuY2FsbCBlcnIp KSkpKSkpCiAKIChkZWZ2YXIgZWdsb3Qtc2VydmVyLXByb2dyYW1zIGAoKHJ1c3QtbW9kZSAuICwo ZWdsb3QtYWx0ZXJuYXRpdmVzICcoInJ1c3QtYW5hbHl6ZXIiICJybHMiKSkpCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChjbWFrZS1tb2RlIC4gKCJjbWFrZS1sYW5ndWFnZS1zZXJ2 ZXIiKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZpbXJjLW1vZGUgLiAoInZp bS1sYW5ndWFnZS1zZXJ2ZXIiICItLXN0ZGlvIikpCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChweXRob24tbW9kZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAs KGVnbG90LWFsdGVybmF0aXZlcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICcoInB5bHNwIiAicHlscyIgKCJweXJpZ2h0LWxhbmdzZXJ2ZXIiICItLXN0ZGlvIikgImplZGkt bGFuZ3VhZ2Utc2VydmVyIikpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGpz LW1vZGUgdHlwZXNjcmlwdC1tb2RlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LiAoInR5cGVzY3JpcHQtbGFuZ3VhZ2Utc2VydmVyIiAiLS1zdGRpbyIpKQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoc2gtbW9kZSAuICgiYmFzaC1sYW5ndWFnZS1zZXJ2ZXIiICJz dGFydCIpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHBocC1tb2RlIHBocHMt bW9kZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gKCJwaHAiICJ2ZW5kb3Iv ZmVsaXhmYmVja2VyL1wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbWFrZS1t b2RlIC4gKCJjbWFrZS1sYW5ndWFnZS1zZXJ2ZXIiKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICh2aW1yYy1tb2RlIC4gKCJ2aW0tbGFuZ3VhZ2Utc2VydmVyIiAiLS1zdGRpbyIp KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHB5dGhvbi1tb2RlCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gLChlZ2xvdC1hbHRlcm5hdGl2ZXMKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKCJweWxzcCIgInB5bHMiICgicHly aWdodC1sYW5nc2VydmVyIiAiLS1zdGRpbyIpICJqZWRpLWxhbmd1YWdlLXNlcnZlciIpKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoanMtbW9kZSB0eXBlc2NyaXB0LW1vZGUp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gKCJ0eXBlc2NyaXB0LWxhbmd1 YWdlLXNlcnZlciIgIi0tc3RkaW8iKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChzaC1tb2RlIC4gKCJiYXNoLWxhbmd1YWdlLXNlcnZlciIgInN0YXJ0IikpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoKHBocC1tb2RlIHBocHMtbW9kZSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLiAoInBocCIgInZlbmRvci9mZWxpeGZiZWNrZXIvXAog bGFuZ3VhZ2Utc2VydmVyL2Jpbi9waHAtbGFuZ3VhZ2Utc2VydmVyLnBocCIpKQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoKGMrKy1tb2RlIGMtbW9kZSkgLiAsKGVnbG90LWFsdGVy bmF0aXZlcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICcoImNsYW5nZCIgImNjbHMiKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgoKGNhbWwtbW9kZSA6bGFuZ3VhZ2UtaWQgIm9jYW1sIikKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAodHVhcmVnLW1vZGUgOmxhbmd1YWdlLWlkICJvY2FtbCIpIHJlYXNv bi1tb2RlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAoIm9jYW1sbHNwIikp Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChydWJ5LW1vZGUKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC4gKCJzb2xhcmdyYXBoIiAic29ja2V0IiAiLS1wb3J0IiA6 YXV0b3BvcnQpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGFza2VsbC1tb2Rl Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICgiaGFza2VsbC1sYW5ndWFnZS1z ZXJ2ZXItd3JhcHBlciIgIi0tbHNwIikpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChlbG0tbW9kZSAuICgiZWxtLWxhbmd1YWdlLXNlcnZlciIpKQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobWludC1tb2RlIC4gKCJtaW50IiAibHMiKSkKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGtvdGxpbi1tb2RlIC4gKCJrb3RsaW4tbGFuZ3VhZ2Utc2VydmVy IikpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnby1tb2RlIC4gKCJnb3BscyIp KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKFItbW9kZSBlc3Mtci1tb2RlKSAu ICgiUiIgIi0tc2xhdmUiICItZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgImxhbmd1YWdlc2VydmVyOjpydW4oKSIpKQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoamF2YS1tb2RlIC4gKCJqZHRscyIpKQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoZGFydC1tb2RlIC4gKCJkYXJ0IiAibGFuZ3VhZ2Utc2Vy dmVyIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWNs aWVudC1pZCIgImVtYWNzLmVnbG90LWRhcnQiKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGVsaXhpci1tb2RlIC4gKCJsYW5ndWFnZV9zZXJ2ZXIuc2giKSkKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGFkYS1tb2RlIC4gKCJhZGFfbGFuZ3VhZ2Vfc2VydmVyIikp Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzY2FsYS1tb2RlIC4gKCJtZXRhbHMt ZW1hY3MiKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJhY2tldC1tb2RlIC4g KCJyYWNrZXQiICItbCIgInJhY2tldC1sYW5nc2VydmVyIikpCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgodGV4LW1vZGUgY29udGV4dC1tb2RlIHRleGluZm8tbW9kZSBiaWJ0ZXgt bW9kZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gKCJkaWdlc3RpZiIpKQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJsYW5nLW1vZGUgLiAoImVybGFuZ19s cyIgIi0tdHJhbnNwb3J0IiAic3RkaW8iKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHlhbWwtbW9kZSAuICgieWFtbC1sYW5ndWFnZS1zZXJ2ZXIiICItLXN0ZGlvIikpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuaXgtbW9kZSAuICgicm5peC1sc3AiKSkKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdkc2NyaXB0LW1vZGUgLiAoImxvY2FsaG9z dCIgNjAwOCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoZm9ydHJhbi1tb2Rl IGY5MC1tb2RlKSAuICgiZm9ydGxzIikpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChmdXRoYXJrLW1vZGUgLiAoImZ1dGhhcmsiICJsc3AiKSkKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGx1YS1tb2RlIC4gKCJsdWEtbHNwIikpCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICh6aWctbW9kZSAuICgiemxzIikpCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChjc3MtbW9kZSAuICwoZWdsb3QtYWx0ZXJuYXRpdmVzICcoKCJ2c2NvZGUtY3Nz LWxhbmd1YWdlLXNlcnZlciIgIi0tc3RkaW8iKSAoImNzcy1sYW5ndWFnZXNlcnZlciIgIi0tc3Rk aW8iKSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaHRtbC1tb2RlIC4gLChl Z2xvdC1hbHRlcm5hdGl2ZXMgJygoInZzY29kZS1odG1sLWxhbmd1YWdlLXNlcnZlciIgIi0tc3Rk aW8iKSAoImh0bWwtbGFuZ3VhZ2VzZXJ2ZXIiICItLXN0ZGlvIikpKSkKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGpzb24tbW9kZSAuICwoZWdsb3QtYWx0ZXJuYXRpdmVzICcoKCJ2 c2NvZGUtanNvbi1sYW5ndWFnZS1zZXJ2ZXIiICItLXN0ZGlvIikgKCJqc29uLWxhbmd1YWdlc2Vy dmVyIiAiLS1zdGRpbyIpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkb2Nr ZXJmaWxlLW1vZGUgLiAoImRvY2tlci1sYW5nc2VydmVyIiAiLS1zdGRpbyIpKQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoKGNsb2p1cmUtbW9kZSBjbG9qdXJlc2NyaXB0LW1vZGUg Y2xvanVyZWMtbW9kZSkgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICgiY2xv anVyZS1sc3AiKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNzaGFycC1tb2Rl IC4gKCJvbW5pc2hhcnAiICItbHNwIikpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChwdXJlc2NyaXB0LW1vZGUgLiAoInB1cmVzY3JpcHQtbGFuZ3VhZ2Utc2VydmVyIiAiLS1zdGRp byIpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGVybC1tb2RlIC4gKCJwZXJs IiAiLU1QZXJsOjpMYW5ndWFnZVNlcnZlciIgIi1lIiAiUGVybDo6TGFuZ3VhZ2VTZXJ2ZXI6OnJ1 biIpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFya2Rvd24tbW9kZSAuICgi bWFya3NtYW4iICJzZXJ2ZXIiKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo KGMrKy1tb2RlIGMtbW9kZSkgLiAsKGVnbG90LWFsdGVybmF0aXZlcworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygiY2xhbmdkIiAiY2Ns cyIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoKGNhbWwtbW9kZSA6bGFu Z3VhZ2UtaWQgIm9jYW1sIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0 dWFyZWctbW9kZSA6bGFuZ3VhZ2UtaWQgIm9jYW1sIikgcmVhc29uLW1vZGUpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC4gKCJvY2FtbGxzcCIpKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHJ1YnktbW9kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAuICgic29sYXJncmFwaCIgInNvY2tldCIgIi0tcG9ydCIgOmF1dG9wb3J0KSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoYXNrZWxsLW1vZGUKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLiAoImhhc2tlbGwtbGFuZ3VhZ2Utc2VydmVyLXdyYXBw ZXIiICItLWxzcCIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVsbS1tb2Rl IC4gKCJlbG0tbGFuZ3VhZ2Utc2VydmVyIikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobWludC1tb2RlIC4gKCJtaW50IiAibHMiKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChrb3RsaW4tbW9kZSAuICgia290bGluLWxhbmd1YWdlLXNlcnZlciIpKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvLW1vZGUgLiAoImdvcGxzIikpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKFItbW9kZSBlc3Mtci1tb2RlKSAuICgiUiIg Ii0tc2xhdmUiICItZSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAibGFuZ3VhZ2VzZXJ2ZXI6OnJ1bigpIikpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoamF2YS1tb2RlIC4gKCJqZHRscyIpKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGRhcnQtbW9kZSAuICgiZGFydCIgImxhbmd1YWdlLXNlcnZl ciIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWNs aWVudC1pZCIgImVtYWNzLmVnbG90LWRhcnQiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChlbGl4aXItbW9kZSAuICgibGFuZ3VhZ2Vfc2VydmVyLnNoIikpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoYWRhLW1vZGUgLiAoImFkYV9sYW5ndWFnZV9zZXJ2ZXIi KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzY2FsYS1tb2RlIC4gKCJtZXRh bHMtZW1hY3MiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyYWNrZXQtbW9k ZSAuICgicmFja2V0IiAiLWwiICJyYWNrZXQtbGFuZ3NlcnZlciIpKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKCh0ZXgtbW9kZSBjb250ZXh0LW1vZGUgdGV4aW5mby1tb2RlIGJp YnRleC1tb2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICgiZGlnZXN0 aWYiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcmxhbmctbW9kZSAuICgi ZXJsYW5nX2xzIiAiLS10cmFuc3BvcnQiICJzdGRpbyIpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHlhbWwtbW9kZSAuICgieWFtbC1sYW5ndWFnZS1zZXJ2ZXIiICItLXN0ZGlv IikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobml4LW1vZGUgLiAoInJuaXgt bHNwIikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2RzY3JpcHQtbW9kZSAu ICgibG9jYWxob3N0IiA2MDA4KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgo Zm9ydHJhbi1tb2RlIGY5MC1tb2RlKSAuICgiZm9ydGxzIikpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoZnV0aGFyay1tb2RlIC4gKCJmdXRoYXJrIiAibHNwIikpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobHVhLW1vZGUgLiAoImx1YS1sc3AiKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh6aWctbW9kZSAuICgiemxzIikpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoY3NzLW1vZGUgLiAsKGVnbG90LWFsdGVybmF0aXZl cyAnKCgidnNjb2RlLWNzcy1sYW5ndWFnZS1zZXJ2ZXIiICItLXN0ZGlvIikgKCJjc3MtbGFuZ3Vh Z2VzZXJ2ZXIiICItLXN0ZGlvIikpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChodG1sLW1vZGUgLiAsKGVnbG90LWFsdGVybmF0aXZlcyAnKCgidnNjb2RlLWh0bWwtbGFuZ3Vh Z2Utc2VydmVyIiAiLS1zdGRpbyIpICgiaHRtbC1sYW5ndWFnZXNlcnZlciIgIi0tc3RkaW8iKSkp KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGpzb24tbW9kZSAuICwoZWdsb3Qt YWx0ZXJuYXRpdmVzICcoKCJ2c2NvZGUtanNvbi1sYW5ndWFnZS1zZXJ2ZXIiICItLXN0ZGlvIikg KCJqc29uLWxhbmd1YWdlc2VydmVyIiAiLS1zdGRpbyIpKSkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoZG9ja2VyZmlsZS1tb2RlIC4gKCJkb2NrZXItbGFuZ3NlcnZlciIgIi0t c3RkaW8iKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoY2xvanVyZS1tb2Rl IGNsb2p1cmVzY3JpcHQtbW9kZSBjbG9qdXJlYy1tb2RlKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAuICgiY2xvanVyZS1sc3AiKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChjc2hhcnAtbW9kZSAuICgib21uaXNoYXJwIiAiLWxzcCIpKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHB1cmVzY3JpcHQtbW9kZSAuICgicHVyZXNjcmlwdC1s YW5ndWFnZS1zZXJ2ZXIiICItLXN0ZGlvIikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAocGVybC1tb2RlIC4gKCJwZXJsIiAiLU1QZXJsOjpMYW5ndWFnZVNlcnZlciIgIi1lIiAi UGVybDo6TGFuZ3VhZ2VTZXJ2ZXI6OnJ1biIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKG1hcmtkb3duLW1vZGUgLiAoIm1hcmtzbWFuIiAic2VydmVyIikpKQogICAiSG93IHRo ZSBjb21tYW5kIGBlZ2xvdCcgZ3Vlc3NlcyB0aGUgc2VydmVyIHRvIHN0YXJ0LgogQW4gYXNzb2Np YXRpb24gbGlzdCBvZiAoTUFKT1ItTU9ERSAuIENPTlRBQ1QpIHBhaXJzLiAgTUFKT1ItTU9ERQog aWRlbnRpZmllcyB0aGUgYnVmZmVycyB0aGF0IGFyZSB0byBiZSBtYW5hZ2VkIGJ5IGEgc3BlY2lm aWMKQEAgLTMxNCw2ICszMTQsMTAgQEAgQ09OVEFDVCBjYW4gYmU6CiAgICcoKHQgLiAoOmluaGVy aXQgc2hhZG93IDpzdHJpa2UtdGhyb3VnaCB0KSkpCiAgICJGYWNlIHVzZWQgdG8gcmVuZGVyIGRl cHJlY2F0ZWQgb3Igb2Jzb2xldGUgY29kZS4iKQogCisoZGVmZmFjZSBlZ2xvdC1mbHltYWtlLWlu bGF5LWhpbnQKKyAgJygodCAoOmluaGVyaXQgc2hhZG93IDpoZWlnaHQgMC44KSkpCisgICJGYWNl IHVzZWQgZm9yIGlubGF5IGhpbnQgb3ZlcmxheXMgaW4gZmx5bWFrZS4iKQorCiAoZGVmY3VzdG9t IGVnbG90LWF1dG9yZWNvbm5lY3QgMwogICAiQ29udHJvbCBhYmlsaXR5IHRvIHJlY29ubmVjdCBh dXRvbWF0aWNhbGx5IHRvIHRoZSBMU1Agc2VydmVyLgogSWYgdCwgYWx3YXlzIHJlY29ubmVjdCBh dXRvbWF0aWNhbGx5IChub3QgcmVjb21tZW5kZWQpLiAgSWYgbmlsLApAQCAtMzIyLDcgKzMyNiw3 IEBAIGNyYXNoZXMgb3IgbmV0d29yayBmYWlsdXJlcy4gIEEgcG9zaXRpdmUgaW50ZWdlciBudW1i ZXIgc2F5cyB0bwogb25seSBhdXRvcmVjb25uZWN0IGlmIHRoZSBwcmV2aW91cyBzdWNjZXNzZnVs IGNvbm5lY3Rpb24gYXR0ZW1wdAogbGFzdGVkIG1vcmUgdGhhbiB0aGF0IG1hbnkgc2Vjb25kcy4i CiAgIDp0eXBlICcoY2hvaWNlIChib29sZWFuIDp0YWcgIldoZXRoZXIgdG8gaW5oaWJpdCBhdXRv cmVjb25uZWN0aW9uIikKLSAgICAgICAgICAgICAgICAgKGludGVnZXIgOnRhZyAiTnVtYmVyIG9m IHNlY29uZHMiKSkpCisgICAgICAgICAgIChpbnRlZ2VyIDp0YWcgIk51bWJlciBvZiBzZWNvbmRz IikpKQogCiAoZGVmY3VzdG9tIGVnbG90LWNvbm5lY3QtdGltZW91dCAzMAogICAiTnVtYmVyIG9m IHNlY29uZHMgYmVmb3JlIHRpbWluZyBvdXQgTFNQIGNvbm5lY3Rpb24gYXR0ZW1wdHMuCkBAIC0z MzYsNyArMzQwLDcgQEAgaW50ZWdlciBudW1iZXIgbWVhbnMgYmxvY2sgZm9yIHRoYXQgbWFueSBz ZWNvbmRzLCBhbmQgdGhlbiB3YWl0CiBmb3IgdGhlIGNvbm5lY3Rpb24gaW4gdGhlIGJhY2tncm91 bmQuICBuaWwgaGFzIHRoZSBzYW1lIG1lYW5pbmcKIGFzIDAsIGkuZS4gZG9uJ3QgYmxvY2sgYXQg YWxsLiIKICAgOnR5cGUgJyhjaG9pY2UgKGJvb2xlYW4gOnRhZyAiV2hldGhlciB0byBpbmhpYml0 IGF1dG9yZWNvbm5lY3Rpb24iKQotICAgICAgICAgICAgICAgICAoaW50ZWdlciA6dGFnICJOdW1i ZXIgb2Ygc2Vjb25kcyIpKSkKKyAgICAgICAgICAgKGludGVnZXIgOnRhZyAiTnVtYmVyIG9mIHNl Y29uZHMiKSkpCiAKIChkZWZjdXN0b20gZWdsb3QtYXV0b3NodXRkb3duIG5pbAogICAiSWYgbm9u LW5pbCwgc2h1dCBkb3duIHNlcnZlciBhZnRlciBraWxsaW5nIGxhc3QgbWFuYWdlZCBidWZmZXIu IgpAQCAtMzU2LDEyICszNjAsMTIgQEAgRm9yIGNoYW5nZXMgb24gdGhpcyB2YXJpYWJsZSB0byB0 YWtlIGVmZmVjdCBvbiBhIGNvbm5lY3Rpb24KIGFscmVhZHkgc3RhcnRlZCwgeW91IG5lZWQgdG8g cmVzdGFydCB0aGUgY29ubmVjdGlvbi4gIFRoYXQgY2FuIGJlCiBkb25lIGJ5IGBlZ2xvdC1yZWNv bm5lY3QnLiIKICAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0IDp0YWcgIk5vIGxpbWl0IiBuaWwpCi0g ICAgICAgICAgICAgICAgIChpbnRlZ2VyIDp0YWcgIk51bWJlciBvZiBjaGFyYWN0ZXJzIikpKQor ICAgICAgICAgICAoaW50ZWdlciA6dGFnICJOdW1iZXIgb2YgY2hhcmFjdGVycyIpKSkKIAogKGRl ZmN1c3RvbSBlZ2xvdC1jb25maXJtLXNlcnZlci1pbml0aWF0ZWQtZWRpdHMgJ2NvbmZpcm0KICAg Ik5vbi1uaWwgaWYgc2VydmVyLWluaXRpYXRlZCBlZGl0cyBzaG91bGQgYmUgY29uZmlybWVkIHdp dGggdXNlci4iCiAgIDp0eXBlICcoY2hvaWNlIChjb25zdCA6dGFnICJEb24ndCBzaG93IGNvbmZp cm1hdGlvbiBwcm9tcHQiIG5pbCkKLSAgICAgICAgICAgICAgICAgKHN5bWJvbCA6dGFnICJTaG93 IGNvbmZpcm1hdGlvbiBwcm9tcHQiICdjb25maXJtKSkpCisgICAgICAgICAgIChzeW1ib2wgOnRh ZyAiU2hvdyBjb25maXJtYXRpb24gcHJvbXB0IiAnY29uZmlybSkpKQogCiAoZGVmY3VzdG9tIGVn bG90LWV4dGVuZC10by14cmVmIG5pbAogICAiSWYgbm9uLW5pbCwgYWN0aXZhdGUgRWdsb3QgaW4g Y3Jvc3MtcmVmZXJlbmNlZCBub24tcHJvamVjdCBmaWxlcy4iCkBAIC0zODQsMjcgKzM4OCwyNyBA QCBUaGlzIGNhbiBiZSB1c2VmdWwgd2hlbiB1c2luZyBkb2NrZXIgdG8gcnVuIGEgbGFuZ3VhZ2Ug c2VydmVyLiIpCiA7OzsKIChkZWZjb25zdCBlZ2xvdC0tc3ltYm9sLWtpbmQtbmFtZXMKICAgYCgo MSAuICJGaWxlIikgKDIgLiAiTW9kdWxlIikKLSAgICAoMyAuICJOYW1lc3BhY2UiKSAoNCAuICJQ YWNrYWdlIikgKDUgLiAiQ2xhc3MiKQotICAgICg2IC4gIk1ldGhvZCIpICg3IC4gIlByb3BlcnR5 IikgKDggLiAiRmllbGQiKQotICAgICg5IC4gIkNvbnN0cnVjdG9yIikgKDEwIC4gIkVudW0iKSAo MTEgLiAiSW50ZXJmYWNlIikKLSAgICAoMTIgLiAiRnVuY3Rpb24iKSAoMTMgLiAiVmFyaWFibGUi KSAoMTQgLiAiQ29uc3RhbnQiKQotICAgICgxNSAuICJTdHJpbmciKSAoMTYgLiAiTnVtYmVyIikg KDE3IC4gIkJvb2xlYW4iKQotICAgICgxOCAuICJBcnJheSIpICgxOSAuICJPYmplY3QiKSAoMjAg LiAiS2V5IikKLSAgICAoMjEgLiAiTnVsbCIpICgyMiAuICJFbnVtTWVtYmVyIikgKDIzIC4gIlN0 cnVjdCIpCi0gICAgKDI0IC4gIkV2ZW50IikgKDI1IC4gIk9wZXJhdG9yIikgKDI2IC4gIlR5cGVQ YXJhbWV0ZXIiKSkpCisgICAgICgzIC4gIk5hbWVzcGFjZSIpICg0IC4gIlBhY2thZ2UiKSAoNSAu ICJDbGFzcyIpCisgICAgICg2IC4gIk1ldGhvZCIpICg3IC4gIlByb3BlcnR5IikgKDggLiAiRmll bGQiKQorICAgICAoOSAuICJDb25zdHJ1Y3RvciIpICgxMCAuICJFbnVtIikgKDExIC4gIkludGVy ZmFjZSIpCisgICAgICgxMiAuICJGdW5jdGlvbiIpICgxMyAuICJWYXJpYWJsZSIpICgxNCAuICJD b25zdGFudCIpCisgICAgICgxNSAuICJTdHJpbmciKSAoMTYgLiAiTnVtYmVyIikgKDE3IC4gIkJv b2xlYW4iKQorICAgICAoMTggLiAiQXJyYXkiKSAoMTkgLiAiT2JqZWN0IikgKDIwIC4gIktleSIp CisgICAgICgyMSAuICJOdWxsIikgKDIyIC4gIkVudW1NZW1iZXIiKSAoMjMgLiAiU3RydWN0IikK KyAgICAgKDI0IC4gIkV2ZW50IikgKDI1IC4gIk9wZXJhdG9yIikgKDI2IC4gIlR5cGVQYXJhbWV0 ZXIiKSkpCiAKIChkZWZjb25zdCBlZ2xvdC0ta2luZC1uYW1lcwogICBgKCgxIC4gIlRleHQiKSAo MiAuICJNZXRob2QiKSAoMyAuICJGdW5jdGlvbiIpICg0IC4gIkNvbnN0cnVjdG9yIikKLSAgICAo NSAuICJGaWVsZCIpICg2IC4gIlZhcmlhYmxlIikgKDcgLiAiQ2xhc3MiKSAoOCAuICJJbnRlcmZh Y2UiKQotICAgICg5IC4gIk1vZHVsZSIpICgxMCAuICJQcm9wZXJ0eSIpICgxMSAuICJVbml0Iikg KDEyIC4gIlZhbHVlIikKLSAgICAoMTMgLiAiRW51bSIpICgxNCAuICJLZXl3b3JkIikgKDE1IC4g IlNuaXBwZXQiKSAoMTYgLiAiQ29sb3IiKQotICAgICgxNyAuICJGaWxlIikgKDE4IC4gIlJlZmVy ZW5jZSIpICgxOSAuICJGb2xkZXIiKSAoMjAgLiAiRW51bU1lbWJlciIpCi0gICAgKDIxIC4gIkNv bnN0YW50IikgKDIyIC4gIlN0cnVjdCIpICgyMyAuICJFdmVudCIpICgyNCAuICJPcGVyYXRvciIp Ci0gICAgKDI1IC4gIlR5cGVQYXJhbWV0ZXIiKSkpCisgICAgICg1IC4gIkZpZWxkIikgKDYgLiAi VmFyaWFibGUiKSAoNyAuICJDbGFzcyIpICg4IC4gIkludGVyZmFjZSIpCisgICAgICg5IC4gIk1v ZHVsZSIpICgxMCAuICJQcm9wZXJ0eSIpICgxMSAuICJVbml0IikgKDEyIC4gIlZhbHVlIikKKyAg ICAgKDEzIC4gIkVudW0iKSAoMTQgLiAiS2V5d29yZCIpICgxNSAuICJTbmlwcGV0IikgKDE2IC4g IkNvbG9yIikKKyAgICAgKDE3IC4gIkZpbGUiKSAoMTggLiAiUmVmZXJlbmNlIikgKDE5IC4gIkZv bGRlciIpICgyMCAuICJFbnVtTWVtYmVyIikKKyAgICAgKDIxIC4gIkNvbnN0YW50IikgKDIyIC4g IlN0cnVjdCIpICgyMyAuICJFdmVudCIpICgyNCAuICJPcGVyYXRvciIpCisgICAgICgyNSAuICJU eXBlUGFyYW1ldGVyIikpKQogCiAoZGVmY29uc3QgZWdsb3QtLXRhZy1mYWNlcwogICBgKCgxIC4g ZWdsb3QtZGlhZ25vc3RpYy10YWctdW5uZWNlc3NhcnktZmFjZSkKLSAgICAoMiAuIGVnbG90LWRp YWdub3N0aWMtdGFnLWRlcHJlY2F0ZWQtZmFjZSkpKQorICAgICAoMiAuIGVnbG90LWRpYWdub3N0 aWMtdGFnLWRlcHJlY2F0ZWQtZmFjZSkpKQogCiAoZGVmY29uc3QgZWdsb3QtLXt9IChtYWtlLWhh c2gtdGFibGUgOnNpemUgMSkgIlRoZSBlbXB0eSBKU09OIG9iamVjdC4iKQogKGRlZnZhcmFsaWFz ICdlZ2xvdC17fSAnZWdsb3QtLXt9KQpAQCAtNDIwLDQzICs0MjQsNDMgQEAgVGhpcyBjYW4gYmUg dXNlZnVsIHdoZW4gdXNpbmcgZG9ja2VyIHRvIHJ1biBhIGxhbmd1YWdlIHNlcnZlci4iKQogKGV2 YWwtYW5kLWNvbXBpbGUKICAgKGRlZnZhciBlZ2xvdC0tbHNwLWludGVyZmFjZS1hbGlzdAogICAg IGAoCi0gICAgICAoQ29kZUFjdGlvbiAoOnRpdGxlKSAoOmtpbmQgOmRpYWdub3N0aWNzIDplZGl0 IDpjb21tYW5kIDppc1ByZWZlcnJlZCkpCi0gICAgICAoQ29uZmlndXJhdGlvbkl0ZW0gKCkgKDpz Y29wZVVyaSA6c2VjdGlvbikpCi0gICAgICAoQ29tbWFuZCAoKDp0aXRsZSAuIHN0cmluZykgKDpj b21tYW5kIC4gc3RyaW5nKSkgKDphcmd1bWVudHMpKQotICAgICAgKENvbXBsZXRpb25JdGVtICg6 bGFiZWwpCi0gICAgICAgICAgICAgICAgICAgICAgKDpraW5kIDpkZXRhaWwgOmRvY3VtZW50YXRp b24gOmRlcHJlY2F0ZWQgOnByZXNlbGVjdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6 c29ydFRleHQgOmZpbHRlclRleHQgOmluc2VydFRleHQgOmluc2VydFRleHRGb3JtYXQKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOnRleHRFZGl0IDphZGRpdGlvbmFsVGV4dEVkaXRzIDpj b21taXRDaGFyYWN0ZXJzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjb21tYW5kIDpk YXRhIDp0YWdzKSkKLSAgICAgIChEaWFnbm9zdGljICg6cmFuZ2UgOm1lc3NhZ2UpICg6c2V2ZXJp dHkgOmNvZGUgOnNvdXJjZSA6cmVsYXRlZEluZm9ybWF0aW9uIDpjb2RlRGVzY3JpcHRpb24gOnRh Z3MpKQotICAgICAgKERvY3VtZW50SGlnaGxpZ2h0ICg6cmFuZ2UpICg6a2luZCkpCi0gICAgICAo RmlsZVN5c3RlbVdhdGNoZXIgKDpnbG9iUGF0dGVybikgKDpraW5kKSkKLSAgICAgIChIb3ZlciAo OmNvbnRlbnRzKSAoOnJhbmdlKSkKLSAgICAgIChJbml0aWFsaXplUmVzdWx0ICg6Y2FwYWJpbGl0 aWVzKSAoOnNlcnZlckluZm8pKQotICAgICAgKExvY2F0aW9uICg6dXJpIDpyYW5nZSkpCi0gICAg ICAoTG9jYXRpb25MaW5rICg6dGFyZ2V0VXJpIDp0YXJnZXRSYW5nZSA6dGFyZ2V0U2VsZWN0aW9u UmFuZ2UpICg6b3JpZ2luU2VsZWN0aW9uUmFuZ2UpKQotICAgICAgKExvZ01lc3NhZ2VQYXJhbXMg KDp0eXBlIDptZXNzYWdlKSkKLSAgICAgIChNYXJrdXBDb250ZW50ICg6a2luZCA6dmFsdWUpKQot ICAgICAgKFBhcmFtZXRlckluZm9ybWF0aW9uICg6bGFiZWwpICg6ZG9jdW1lbnRhdGlvbikpCi0g ICAgICAoUG9zaXRpb24gKDpsaW5lIDpjaGFyYWN0ZXIpKQotICAgICAgKFJhbmdlICg6c3RhcnQg OmVuZCkpCi0gICAgICAoUmVnaXN0cmF0aW9uICg6aWQgOm1ldGhvZCkgKDpyZWdpc3Rlck9wdGlv bnMpKQotICAgICAgKFJlc3BvbnNlRXJyb3IgKDpjb2RlIDptZXNzYWdlKSAoOmRhdGEpKQotICAg ICAgKFNob3dNZXNzYWdlUGFyYW1zICg6dHlwZSA6bWVzc2FnZSkpCi0gICAgICAoU2hvd01lc3Nh Z2VSZXF1ZXN0UGFyYW1zICg6dHlwZSA6bWVzc2FnZSkgKDphY3Rpb25zKSkKLSAgICAgIChTaWdu YXR1cmVIZWxwICg6c2lnbmF0dXJlcykgKDphY3RpdmVTaWduYXR1cmUgOmFjdGl2ZVBhcmFtZXRl cikpCi0gICAgICAoU2lnbmF0dXJlSW5mb3JtYXRpb24gKDpsYWJlbCkgKDpkb2N1bWVudGF0aW9u IDpwYXJhbWV0ZXJzIDphY3RpdmVQYXJhbWV0ZXIpKQotICAgICAgKFN5bWJvbEluZm9ybWF0aW9u ICg6bmFtZSA6a2luZCA6bG9jYXRpb24pCi0gICAgICAgICAgICAgICAgICAgICAgICAgKDpkZXBy ZWNhdGVkIDpjb250YWluZXJOYW1lKSkKLSAgICAgIChEb2N1bWVudFN5bWJvbCAoOm5hbWUgOnJh bmdlIDpzZWxlY3Rpb25SYW5nZSA6a2luZCkKLSAgICAgICAgICAgICAgICAgICAgICA7OyBgOmNv bnRhaW5lck5hbWUnIGlzbid0IHJlYWxseSBhbGxvd2VkICwgYnV0Ci0gICAgICAgICAgICAgICAg ICAgICAgOzsgaXQgc2ltcGxpZmllcyB0aGUgaW1wbCBvZiBgZWdsb3QtaW1lbnUnLgotICAgICAg ICAgICAgICAgICAgICAgICg6ZGV0YWlsIDpkZXByZWNhdGVkIDpjaGlsZHJlbiA6Y29udGFpbmVy TmFtZSkpCi0gICAgICAoVGV4dERvY3VtZW50RWRpdCAoOnRleHREb2N1bWVudCA6ZWRpdHMpICgp KQotICAgICAgKFRleHRFZGl0ICg6cmFuZ2UgOm5ld1RleHQpKQotICAgICAgKFZlcnNpb25lZFRl eHREb2N1bWVudElkZW50aWZpZXIgKDp1cmkgOnZlcnNpb24pICgpKQotICAgICAgKFdvcmtzcGFj ZUVkaXQgKCkgKDpjaGFuZ2VzIDpkb2N1bWVudENoYW5nZXMpKQotICAgICAgKFdvcmtzcGFjZVN5 bWJvbCAoOm5hbWUgOmtpbmQpICg6Y29udGFpbmVyTmFtZSA6bG9jYXRpb24gOmRhdGEpKSkKKyAg ICAgICAoQ29kZUFjdGlvbiAoOnRpdGxlKSAoOmtpbmQgOmRpYWdub3N0aWNzIDplZGl0IDpjb21t YW5kIDppc1ByZWZlcnJlZCkpCisgICAgICAgKENvbmZpZ3VyYXRpb25JdGVtICgpICg6c2NvcGVV cmkgOnNlY3Rpb24pKQorICAgICAgIChDb21tYW5kICgoOnRpdGxlIC4gc3RyaW5nKSAoOmNvbW1h bmQgLiBzdHJpbmcpKSAoOmFyZ3VtZW50cykpCisgICAgICAgKENvbXBsZXRpb25JdGVtICg6bGFi ZWwpCisgICAgICAgICAoOmtpbmQgOmRldGFpbCA6ZG9jdW1lbnRhdGlvbiA6ZGVwcmVjYXRlZCA6 cHJlc2VsZWN0CisgICAgICAgICAgIDpzb3J0VGV4dCA6ZmlsdGVyVGV4dCA6aW5zZXJ0VGV4dCA6 aW5zZXJ0VGV4dEZvcm1hdAorICAgICAgICAgICA6dGV4dEVkaXQgOmFkZGl0aW9uYWxUZXh0RWRp dHMgOmNvbW1pdENoYXJhY3RlcnMKKyAgICAgICAgICAgOmNvbW1hbmQgOmRhdGEgOnRhZ3MpKQor ICAgICAgIChEaWFnbm9zdGljICg6cmFuZ2UgOm1lc3NhZ2UpICg6c2V2ZXJpdHkgOmNvZGUgOnNv dXJjZSA6cmVsYXRlZEluZm9ybWF0aW9uIDpjb2RlRGVzY3JpcHRpb24gOnRhZ3MpKQorICAgICAg IChEb2N1bWVudEhpZ2hsaWdodCAoOnJhbmdlKSAoOmtpbmQpKQorICAgICAgIChGaWxlU3lzdGVt V2F0Y2hlciAoOmdsb2JQYXR0ZXJuKSAoOmtpbmQpKQorICAgICAgIChIb3ZlciAoOmNvbnRlbnRz KSAoOnJhbmdlKSkKKyAgICAgICAoSW5pdGlhbGl6ZVJlc3VsdCAoOmNhcGFiaWxpdGllcykgKDpz ZXJ2ZXJJbmZvKSkKKyAgICAgICAoTG9jYXRpb24gKDp1cmkgOnJhbmdlKSkKKyAgICAgICAoTG9j YXRpb25MaW5rICg6dGFyZ2V0VXJpIDp0YXJnZXRSYW5nZSA6dGFyZ2V0U2VsZWN0aW9uUmFuZ2Up ICg6b3JpZ2luU2VsZWN0aW9uUmFuZ2UpKQorICAgICAgIChMb2dNZXNzYWdlUGFyYW1zICg6dHlw ZSA6bWVzc2FnZSkpCisgICAgICAgKE1hcmt1cENvbnRlbnQgKDpraW5kIDp2YWx1ZSkpCisgICAg ICAgKFBhcmFtZXRlckluZm9ybWF0aW9uICg6bGFiZWwpICg6ZG9jdW1lbnRhdGlvbikpCisgICAg ICAgKFBvc2l0aW9uICg6bGluZSA6Y2hhcmFjdGVyKSkKKyAgICAgICAoUmFuZ2UgKDpzdGFydCA6 ZW5kKSkKKyAgICAgICAoUmVnaXN0cmF0aW9uICg6aWQgOm1ldGhvZCkgKDpyZWdpc3Rlck9wdGlv bnMpKQorICAgICAgIChSZXNwb25zZUVycm9yICg6Y29kZSA6bWVzc2FnZSkgKDpkYXRhKSkKKyAg ICAgICAoU2hvd01lc3NhZ2VQYXJhbXMgKDp0eXBlIDptZXNzYWdlKSkKKyAgICAgICAoU2hvd01l c3NhZ2VSZXF1ZXN0UGFyYW1zICg6dHlwZSA6bWVzc2FnZSkgKDphY3Rpb25zKSkKKyAgICAgICAo U2lnbmF0dXJlSGVscCAoOnNpZ25hdHVyZXMpICg6YWN0aXZlU2lnbmF0dXJlIDphY3RpdmVQYXJh bWV0ZXIpKQorICAgICAgIChTaWduYXR1cmVJbmZvcm1hdGlvbiAoOmxhYmVsKSAoOmRvY3VtZW50 YXRpb24gOnBhcmFtZXRlcnMgOmFjdGl2ZVBhcmFtZXRlcikpCisgICAgICAgKFN5bWJvbEluZm9y bWF0aW9uICg6bmFtZSA6a2luZCA6bG9jYXRpb24pCisgICAgICAgICAoOmRlcHJlY2F0ZWQgOmNv bnRhaW5lck5hbWUpKQorICAgICAgIChEb2N1bWVudFN5bWJvbCAoOm5hbWUgOnJhbmdlIDpzZWxl Y3Rpb25SYW5nZSA6a2luZCkKKyAgICAgICAgIDs7IGA6Y29udGFpbmVyTmFtZScgaXNuJ3QgcmVh bGx5IGFsbG93ZWQgLCBidXQKKyAgICAgICAgIDs7IGl0IHNpbXBsaWZpZXMgdGhlIGltcGwgb2Yg YGVnbG90LWltZW51Jy4KKyAgICAgICAgICg6ZGV0YWlsIDpkZXByZWNhdGVkIDpjaGlsZHJlbiA6 Y29udGFpbmVyTmFtZSkpCisgICAgICAgKFRleHREb2N1bWVudEVkaXQgKDp0ZXh0RG9jdW1lbnQg OmVkaXRzKSAoKSkKKyAgICAgICAoVGV4dEVkaXQgKDpyYW5nZSA6bmV3VGV4dCkpCisgICAgICAg KFZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXIgKDp1cmkgOnZlcnNpb24pICgpKQorICAg ICAgIChXb3Jrc3BhY2VFZGl0ICgpICg6Y2hhbmdlcyA6ZG9jdW1lbnRDaGFuZ2VzKSkKKyAgICAg ICAoV29ya3NwYWNlU3ltYm9sICg6bmFtZSA6a2luZCkgKDpjb250YWluZXJOYW1lIDpsb2NhdGlv biA6ZGF0YSkpKQogICAgICJBbGlzdCAoSU5URVJGQUNFLU5BTUUgLiBJTlRFUkZBQ0UpIG9mIGtu b3duIGV4dGVybmFsIExTUCBpbnRlcmZhY2VzLgogCiBJTlRFUkZBQ0UtTkFNRSBpcyBhIHN5bWJv bCBkZXNpZ25hdGVkIGJ5IHRoZSBzcGVjIGFzCkBAIC00NzQsMTAgKzQ3OCwxMCBAQCBIZXJlJ3Mg d2hhdCBhbiBlbGVtZW50IG9mIHRoaXMgYWxpc3QgbWlnaHQgbG9vayBsaWtlOgogKGV2YWwtYW5k LWNvbXBpbGUKICAgKGRlZnZhciBlZ2xvdC1zdHJpY3QtbW9kZQogICAgICcoOzsgVW5jb21tZW50 IG5leHQgbGluZXMgZm9yIGZ1biBhbmQgZGVidWdnaW5nCi0gICAgICA7OyBkaXNhbGxvdy1ub24t c3RhbmRhcmQta2V5cwotICAgICAgOzsgZW5mb3JjZS1yZXF1aXJlZC1rZXlzCi0gICAgICA7OyBl bmZvcmNlLW9wdGlvbmFsLWtleXMKLSAgICAgICkKKyAgICAgICA7OyBkaXNhbGxvdy1ub24tc3Rh bmRhcmQta2V5cworICAgICAgIDs7IGVuZm9yY2UtcmVxdWlyZWQta2V5cworICAgICAgIDs7IGVu Zm9yY2Utb3B0aW9uYWwta2V5cworICAgICAgICkKICAgICAiSG93IHN0cmljdGx5IHRvIGNoZWNr IExTUCBpbnRlcmZhY2VzIGF0IGNvbXBpbGUtIGFuZCBydW4tdGltZS4KIAogVmFsdWUgaXMgYSBs aXN0IG9mIHN5bWJvbHMgKGlmIHRoZSBsaXN0IGlzIGVtcHR5LCBubyBjaGVja3MgYXJlCkBAIC01 MDEsMzEgKzUwNSwzMSBAQCBJZiB0aGUgc3ltYm9sIGBkaXNhbGxvdy11bmtub3duLW1ldGhvZHMn IGlzIHByZXNlbnQsIEVnbG90IHdhcm5zCiBvbiB1bmtub3duIG5vdGlmaWNhdGlvbnMgYW5kIGVy cm9ycyBvbiB1bmtub3duIHJlcXVlc3RzLiIpKQogCiAoY2wtZGVmdW4gZWdsb3QtLWNoZWNrLW9i amVjdCAoaW50ZXJmYWNlLW5hbWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmpl Y3QKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3B0aW9uYWwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoZW5mb3JjZS1yZXF1aXJlZCB0KQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChkaXNhbGxvdy1ub24tc3RhbmRhcmQgdCkKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoY2hlY2stdHlwZXMgdCkpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG9iamVjdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3B0aW9u YWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZm9yY2UtcmVxdWlyZWQgdCkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRpc2FsbG93LW5vbi1zdGFuZGFyZCB0 KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hlY2stdHlwZXMgdCkpCiAgICJD aGVjayB0aGF0IE9CSkVDVCBjb25mb3JtcyB0byBJTlRFUkZBQ0UuICBFcnJvciBvdGhlcndpc2Uu IgogICAoY2wtZGVzdHJ1Y3R1cmluZy1iaW5kCi0gICAgICAoJmtleSB0eXBlcyByZXF1aXJlZC1r ZXlzIG9wdGlvbmFsLWtleXMgJmFsbG93LW90aGVyLWtleXMpCi0gICAgICAoZWdsb3QtLWludGVy ZmFjZSBpbnRlcmZhY2UtbmFtZSkKKyAgICAoJmtleSB0eXBlcyByZXF1aXJlZC1rZXlzIG9wdGlv bmFsLWtleXMgJmFsbG93LW90aGVyLWtleXMpCisgICAgKGVnbG90LS1pbnRlcmZhY2UgaW50ZXJm YWNlLW5hbWUpCiAgICAgKHdoZW4tbGV0ICgobWlzc2luZyAoYW5kIGVuZm9yY2UtcmVxdWlyZWQK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsLXNldC1kaWZmZXJlbmNlIHJlcXVpcmVk LWtleXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChl Z2xvdC0tcGxpc3Qta2V5cyBvYmplY3QpKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAo Y2wtc2V0LWRpZmZlcmVuY2UgcmVxdWlyZWQta2V5cworICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChlZ2xvdC0tcGxpc3Qta2V5cyBvYmplY3QpKSkpKQogICAgICAgKGVnbG90LS1lcnJvciAi QSBgJXMnIG11c3QgaGF2ZSAlcyIgaW50ZXJmYWNlLW5hbWUgbWlzc2luZykpCiAgICAgKHdoZW4t bGV0ICgoZXhjZXNzIChhbmQgZGlzYWxsb3ctbm9uLXN0YW5kYXJkCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGNsLXNldC1kaWZmZXJlbmNlCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChlZ2xvdC0tcGxpc3Qta2V5cyBvYmplY3QpCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChhcHBlbmQgcmVxdWlyZWQta2V5cyBvcHRpb25hbC1rZXlzKSkpKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAoY2wtc2V0LWRpZmZlcmVuY2UKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIChlZ2xvdC0tcGxpc3Qta2V5cyBvYmplY3QpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAoYXBwZW5kIHJlcXVpcmVkLWtleXMgb3B0aW9uYWwta2V5cykpKSkpCiAgICAgICAoZWdsb3Qt LWVycm9yICJBIGAlcycgbXVzdG4ndCBoYXZlICVzIiBpbnRlcmZhY2UtbmFtZSBleGNlc3MpKQog ICAgICh3aGVuIGNoZWNrLXR5cGVzCiAgICAgICAoY2wtbG9vcAotICAgICAgIGZvciAoayB2KSBv biBvYmplY3QgYnkgIydjZGRyCi0gICAgICAgZm9yIHR5cGUgPSAob3IgKGNkciAoYXNzb2MgayB0 eXBlcykpIHQpIDs7IEZJWE1FOiBlbmZvcmNlIG5pbCB0eXBlPwotICAgICAgIHVubGVzcyAoY2wt dHlwZXAgdiB0eXBlKQotICAgICAgIGRvIChlZ2xvdC0tZXJyb3IgIkEgYCVzJyBtdXN0IGhhdmUg YSAlcyBhcyAlcywgYnV0IGhhcyAlcyIKLSAgICAgICAgICAgICAgICAgICAgICAgIGludGVyZmFj ZS1uYW1lICkpKQorICAgICAgICBmb3IgKGsgdikgb24gb2JqZWN0IGJ5ICMnY2RkcgorICAgICAg ICBmb3IgdHlwZSA9IChvciAoY2RyIChhc3NvYyBrIHR5cGVzKSkgdCkgOzsgRklYTUU6IGVuZm9y Y2UgbmlsIHR5cGU/CisgICAgICAgIHVubGVzcyAoY2wtdHlwZXAgdiB0eXBlKQorICAgICAgICBk byAoZWdsb3QtLWVycm9yICJBIGAlcycgbXVzdCBoYXZlIGEgJXMgYXMgJXMsIGJ1dCBoYXMgJXMi CisgICAgICAgICAgICAgaW50ZXJmYWNlLW5hbWUgKSkpCiAgICAgdCkpCiAKIChldmFsLWFuZC1j b21waWxlCkBAIC01MzYsNDQgKzU0MCw0NCBAQCBvbiB1bmtub3duIG5vdGlmaWNhdGlvbnMgYW5k IGVycm9ycyBvbiB1bmtub3duIHJlcXVlc3RzLiIpKQogCiAgIChkZWZ1biBlZ2xvdC0taW50ZXJm YWNlIChpbnRlcmZhY2UtbmFtZSkKICAgICAobGV0KiAoKGludGVyZmFjZSAoYXNzb2MgaW50ZXJm YWNlLW5hbWUgZWdsb3QtLWxzcC1pbnRlcmZhY2UtYWxpc3QpKQotICAgICAgICAgICAocmVxdWly ZWQgKG1hcGNhciAjJ2VnbG90LS1lbnN1cmUtdHlwZSAoY2FyIChjZHIgaW50ZXJmYWNlKSkpKQot ICAgICAgICAgICAob3B0aW9uYWwgKG1hcGNhciAjJ2VnbG90LS1lbnN1cmUtdHlwZSAoY2FkciAo Y2RyIGludGVyZmFjZSkpKSkpCisgICAgICAgICAgICAocmVxdWlyZWQgKG1hcGNhciAjJ2VnbG90 LS1lbnN1cmUtdHlwZSAoY2FyIChjZHIgaW50ZXJmYWNlKSkpKQorICAgICAgICAgICAgKG9wdGlv bmFsIChtYXBjYXIgIydlZ2xvdC0tZW5zdXJlLXR5cGUgKGNhZHIgKGNkciBpbnRlcmZhY2UpKSkp KQogICAgICAgKGxpc3QgOnR5cGVzIChhcHBlbmQgcmVxdWlyZWQgb3B0aW9uYWwpCi0gICAgICAg ICAgICA6cmVxdWlyZWQta2V5cyAobWFwY2FyICMnY2FyIHJlcXVpcmVkKQotICAgICAgICAgICAg Om9wdGlvbmFsLWtleXMgKG1hcGNhciAjJ2NhciBvcHRpb25hbCkpKSkKKyAgICAgICAgOnJlcXVp cmVkLWtleXMgKG1hcGNhciAjJ2NhciByZXF1aXJlZCkKKyAgICAgICAgOm9wdGlvbmFsLWtleXMg KG1hcGNhciAjJ2NhciBvcHRpb25hbCkpKSkKIAogICAoZGVmdW4gZWdsb3QtLWNoZWNrLWRzcGVj IChpbnRlcmZhY2UtbmFtZSBkc3BlYykKICAgICAiQ2hlY2sgZGVzdHJ1Y3R1cmluZyBzcGVjIERT UEVDIGFnYWluc3QgSU5URVJGQUNFLU5BTUUuIgogICAgIChjbC1kZXN0cnVjdHVyaW5nLWJpbmQg KCZrZXkgcmVxdWlyZWQta2V5cyBvcHRpb25hbC1rZXlzICZhbGxvdy1vdGhlci1rZXlzKQotICAg ICAgICAoZWdsb3QtLWludGVyZmFjZSBpbnRlcmZhY2UtbmFtZSkKKyAgICAgIChlZ2xvdC0taW50 ZXJmYWNlIGludGVyZmFjZS1uYW1lKQogICAgICAgKGNvbmQgKChvciByZXF1aXJlZC1rZXlzIG9w dGlvbmFsLWtleXMpCi0gICAgICAgICAgICAgKGxldCAoKHRvby1tYW55Ci0gICAgICAgICAgICAg ICAgICAgIChhbmQKLSAgICAgICAgICAgICAgICAgICAgIChtZW1xICdkaXNhbGxvdy1ub24tc3Rh bmRhcmQta2V5cyBlZ2xvdC1zdHJpY3QtbW9kZSkKLSAgICAgICAgICAgICAgICAgICAgIChjbC1z ZXQtZGlmZmVyZW5jZQotICAgICAgICAgICAgICAgICAgICAgIChlZ2xvdC0ta2V5d29yZGl6ZS12 YXJzIGRzcGVjKQotICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgcmVxdWlyZWQta2V5cyBv cHRpb25hbC1rZXlzKSkpKQotICAgICAgICAgICAgICAgICAgIChpZ25vcmVkLXJlcXVpcmVkCi0g ICAgICAgICAgICAgICAgICAgIChhbmQKLSAgICAgICAgICAgICAgICAgICAgIChtZW1xICdlbmZv cmNlLXJlcXVpcmVkLWtleXMgZWdsb3Qtc3RyaWN0LW1vZGUpCi0gICAgICAgICAgICAgICAgICAg ICAoY2wtc2V0LWRpZmZlcmVuY2UKLSAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZC1rZXlz IChlZ2xvdC0ta2V5d29yZGl6ZS12YXJzIGRzcGVjKSkpKQotICAgICAgICAgICAgICAgICAgICht aXNzaW5nLW91dAotICAgICAgICAgICAgICAgICAgICAoYW5kCi0gICAgICAgICAgICAgICAgICAg ICAobWVtcSAnZW5mb3JjZS1vcHRpb25hbC1rZXlzIGVnbG90LXN0cmljdC1tb2RlKQotICAgICAg ICAgICAgICAgICAgICAgKGNsLXNldC1kaWZmZXJlbmNlCi0gICAgICAgICAgICAgICAgICAgICAg b3B0aW9uYWwta2V5cyAoZWdsb3QtLWtleXdvcmRpemUtdmFycyBkc3BlYykpKSkpCi0gICAgICAg ICAgICAgICAod2hlbiB0b28tbWFueSAoYnl0ZS1jb21waWxlLXdhcm4KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiRGVzdHJ1Y3R1cmluZyBmb3IgJXMgaGFzIGV4dHJhbmVvdXMgJXMi Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlLW5hbWUgdG9vLW1hbnkp KQotICAgICAgICAgICAgICAgKHdoZW4gaWdub3JlZC1yZXF1aXJlZCAoYnl0ZS1jb21waWxlLXdh cm4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJEZXN0cnVjdHVyaW5n IGZvciAlcyBpZ25vcmVzIHJlcXVpcmVkICVzIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW50ZXJmYWNlLW5hbWUgaWdub3JlZC1yZXF1aXJlZCkpCi0gICAgICAgICAg ICAgICAod2hlbiBtaXNzaW5nLW91dCAoYnl0ZS1jb21waWxlLXdhcm4KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiRGVzdHJ1Y3R1cmluZyBmb3IgJXMgaXMgbWlzc2luZyBvdXQg b24gJXMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlLW5hbWUg bWlzc2luZy1vdXQpKSkpCi0gICAgICAgICAgICAodAotICAgICAgICAgICAgIChieXRlLWNvbXBp bGUtd2FybiAiVW5rbm93biBMU1AgaW50ZXJmYWNlICVzIiBpbnRlcmZhY2UtbmFtZSkpKSkpKQor ICAgICAgICAgICAgICAobGV0ICgodG9vLW1hbnkKKyAgICAgICAgICAgICAgICAgICAgICAoYW5k CisgICAgICAgICAgICAgICAgICAgICAgICAobWVtcSAnZGlzYWxsb3ctbm9uLXN0YW5kYXJkLWtl eXMgZWdsb3Qtc3RyaWN0LW1vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICAoY2wtc2V0LWRp ZmZlcmVuY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGVnbG90LS1rZXl3b3JkaXplLXZh cnMgZHNwZWMpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgcmVxdWlyZWQta2V5 cyBvcHRpb25hbC1rZXlzKSkpKQorICAgICAgICAgICAgICAgICAgICAgKGlnbm9yZWQtcmVxdWly ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgKGFuZAorICAgICAgICAgICAgICAgICAgICAgICAg IChtZW1xICdlbmZvcmNlLXJlcXVpcmVkLWtleXMgZWdsb3Qtc3RyaWN0LW1vZGUpCisgICAgICAg ICAgICAgICAgICAgICAgICAgKGNsLXNldC1kaWZmZXJlbmNlCisgICAgICAgICAgICAgICAgICAg ICAgICAgICByZXF1aXJlZC1rZXlzIChlZ2xvdC0ta2V5d29yZGl6ZS12YXJzIGRzcGVjKSkpKQor ICAgICAgICAgICAgICAgICAgICAgKG1pc3Npbmctb3V0CisgICAgICAgICAgICAgICAgICAgICAg IChhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWVtcSAnZW5mb3JjZS1vcHRpb25hbC1r ZXlzIGVnbG90LXN0cmljdC1tb2RlKQorICAgICAgICAgICAgICAgICAgICAgICAgIChjbC1zZXQt ZGlmZmVyZW5jZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwta2V5cyAoZWds b3QtLWtleXdvcmRpemUtdmFycyBkc3BlYykpKSkpCisgICAgICAgICAgICAgICAgKHdoZW4gdG9v LW1hbnkgKGJ5dGUtY29tcGlsZS13YXJuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiRGVzdHJ1Y3R1cmluZyBmb3IgJXMgaGFzIGV4dHJhbmVvdXMgJXMiCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2UtbmFtZSB0b28tbWFueSkpCisgICAgICAgICAg ICAgICAgKHdoZW4gaWdub3JlZC1yZXF1aXJlZCAoYnl0ZS1jb21waWxlLXdhcm4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRlc3RydWN0dXJpbmcgZm9yICVzIGln bm9yZXMgcmVxdWlyZWQgJXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludGVyZmFjZS1uYW1lIGlnbm9yZWQtcmVxdWlyZWQpKQorICAgICAgICAgICAgICAgICh3 aGVuIG1pc3Npbmctb3V0IChieXRlLWNvbXBpbGUtd2FybgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIkRlc3RydWN0dXJpbmcgZm9yICVzIGlzIG1pc3Npbmcgb3V0IG9uICVz IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlLW5hbWUgbWlz c2luZy1vdXQpKSkpCisgICAgICAgICh0CisgICAgICAgICAgKGJ5dGUtY29tcGlsZS13YXJuICJV bmtub3duIExTUCBpbnRlcmZhY2UgJXMiIGludGVyZmFjZS1uYW1lKSkpKSkpCiAKIChjbC1kZWZt YWNybyBlZ2xvdC0tZGJpbmQgKHZhcnMgb2JqZWN0ICZib2R5IGJvZHkpCiAgICJEZXN0cnVjdHVy ZSBPQkpFQ1QsIGJpbmRpbmcgVkFSUyBpbiBCT0RZLgpAQCAtNTgxLDI2ICs1ODUsMjYgQEAgVkFS UyBpcyAoWyhJTlRFUkZBQ0UpXSBTWU1TLi4uKQogSG9ub3VyIGBlZ2xvdC1zdHJpY3QtbW9kZScu IgogICAoZGVjbGFyZSAoaW5kZW50IDIpIChkZWJ1ZyAoc2V4cCBzZXhwICZyZXN0IGZvcm0pKSkK ICAgKGxldCAoKGludGVyZmFjZS1uYW1lIChpZiAoY29uc3AgKGNhciB2YXJzKSkKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoY2FyIChwb3AgdmFycykpKSkKLSAgICAgICAgKG9iamVjdC1v bmNlIChtYWtlLXN5bWJvbCAib2JqZWN0LW9uY2UiKSkKLSAgICAgICAgKGZuLW9uY2UgKG1ha2Ut c3ltYm9sICJmbi1vbmNlIikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FyIChwb3Ag dmFycykpKSkKKyAgICAgICAgIChvYmplY3Qtb25jZSAobWFrZS1zeW1ib2wgIm9iamVjdC1vbmNl IikpCisgICAgICAgICAoZm4tb25jZSAobWFrZS1zeW1ib2wgImZuLW9uY2UiKSkpCiAgICAgKGNv bmQgKGludGVyZmFjZS1uYW1lCi0gICAgICAgICAgIChlZ2xvdC0tY2hlY2stZHNwZWMgaW50ZXJm YWNlLW5hbWUgdmFycykKLSAgICAgICAgICAgYChsZXQgKCgsb2JqZWN0LW9uY2UgLG9iamVjdCkp Ci0gICAgICAgICAgICAgIChjbC1kZXN0cnVjdHVyaW5nLWJpbmQgKCZrZXkgLEB2YXJzICZhbGxv dy1vdGhlci1rZXlzKSAsb2JqZWN0LW9uY2UKLSAgICAgICAgICAgICAgICAoZWdsb3QtLWNoZWNr LW9iamVjdCAnLGludGVyZmFjZS1uYW1lICxvYmplY3Qtb25jZQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChtZW1xICdlbmZvcmNlLXJlcXVpcmVkLWtleXMgZWdsb3Qtc3Ry aWN0LW1vZGUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbXEgJ2Rp c2FsbG93LW5vbi1zdGFuZGFyZC1rZXlzIGVnbG90LXN0cmljdC1tb2RlKQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChtZW1xICdjaGVjay10eXBlcyBlZ2xvdC1zdHJpY3Qt bW9kZSkpCi0gICAgICAgICAgICAgICAgLEBib2R5KSkpCi0gICAgICAgICAgKHQKLSAgICAgICAg ICAgYChsZXQgKCgsb2JqZWN0LW9uY2UgLG9iamVjdCkKLSAgICAgICAgICAgICAgICAgICgsZm4t b25jZSAobGFtYmRhICgsQHZhcnMpICxAYm9keSkpKQotICAgICAgICAgICAgICAoaWYgKG1lbXEg J2Rpc2FsbG93LW5vbi1zdGFuZGFyZC1rZXlzIGVnbG90LXN0cmljdC1tb2RlKQotICAgICAgICAg ICAgICAgICAgKGNsLWRlc3RydWN0dXJpbmctYmluZCAoJmtleSAsQHZhcnMpICxvYmplY3Qtb25j ZQotICAgICAgICAgICAgICAgICAgICAoZnVuY2FsbCAsZm4tb25jZSAsQHZhcnMpKQotICAgICAg ICAgICAgICAgIChjbC1kZXN0cnVjdHVyaW5nLWJpbmQgKCZrZXkgLEB2YXJzICZhbGxvdy1vdGhl ci1rZXlzKSAsb2JqZWN0LW9uY2UKLSAgICAgICAgICAgICAgICAgIChmdW5jYWxsICxmbi1vbmNl ICxAdmFycykpKSkpKSkpCisgICAgICAgICAgICAoZWdsb3QtLWNoZWNrLWRzcGVjIGludGVyZmFj ZS1uYW1lIHZhcnMpCisgICAgICAgICAgICBgKGxldCAoKCxvYmplY3Qtb25jZSAsb2JqZWN0KSkK KyAgICAgICAgICAgICAgIChjbC1kZXN0cnVjdHVyaW5nLWJpbmQgKCZrZXkgLEB2YXJzICZhbGxv dy1vdGhlci1rZXlzKSAsb2JqZWN0LW9uY2UKKyAgICAgICAgICAgICAgICAgKGVnbG90LS1jaGVj ay1vYmplY3QgJyxpbnRlcmZhY2UtbmFtZSAsb2JqZWN0LW9uY2UKKyAgICAgICAgICAgICAgICAg ICAobWVtcSAnZW5mb3JjZS1yZXF1aXJlZC1rZXlzIGVnbG90LXN0cmljdC1tb2RlKQorICAgICAg ICAgICAgICAgICAgIChtZW1xICdkaXNhbGxvdy1ub24tc3RhbmRhcmQta2V5cyBlZ2xvdC1zdHJp Y3QtbW9kZSkKKyAgICAgICAgICAgICAgICAgICAobWVtcSAnY2hlY2stdHlwZXMgZWdsb3Qtc3Ry aWN0LW1vZGUpKQorICAgICAgICAgICAgICAgICAsQGJvZHkpKSkKKyAgICAgICh0CisgICAgICAg IGAobGV0ICgoLG9iamVjdC1vbmNlICxvYmplY3QpCisgICAgICAgICAgICAgICAgKCxmbi1vbmNl IChsYW1iZGEgKCxAdmFycykgLEBib2R5KSkpCisgICAgICAgICAgIChpZiAobWVtcSAnZGlzYWxs b3ctbm9uLXN0YW5kYXJkLWtleXMgZWdsb3Qtc3RyaWN0LW1vZGUpCisgICAgICAgICAgICAgKGNs LWRlc3RydWN0dXJpbmctYmluZCAoJmtleSAsQHZhcnMpICxvYmplY3Qtb25jZQorICAgICAgICAg ICAgICAgKGZ1bmNhbGwgLGZuLW9uY2UgLEB2YXJzKSkKKyAgICAgICAgICAgICAoY2wtZGVzdHJ1 Y3R1cmluZy1iaW5kICgma2V5ICxAdmFycyAmYWxsb3ctb3RoZXIta2V5cykgLG9iamVjdC1vbmNl CisgICAgICAgICAgICAgICAoZnVuY2FsbCAsZm4tb25jZSAsQHZhcnMpKSkpKSkpKQogCiAKIChj bC1kZWZtYWNybyBlZ2xvdC0tbGFtYmRhIChjbC1sYW1iZGEtbGlzdCAmYm9keSBib2R5KQpAQCAt NjE4LDM4ICs2MjIsMzggQEAgdHJlYXRlZCBhcyBpbiBgZWdsb3QtZGJpbmQnLiIKICAgKGxldCAo KG9iai1vbmNlIChtYWtlLXN5bWJvbCAib2JqLW9uY2UiKSkpCiAgICAgYChsZXQgKCgsb2JqLW9u Y2UgLG9iaikpCiAgICAgICAgKGNvbmQKLSAgICAgICAgLEAoY2wtbG9vcAotICAgICAgICAgICBm b3IgKHZhcnMgLiBib2R5KSBpbiBjbGF1c2VzCi0gICAgICAgICAgIGZvciB2YXJzLWFzLWtleXdv cmRzID0gKGVnbG90LS1rZXl3b3JkaXplLXZhcnMgdmFycykKLSAgICAgICAgICAgZm9yIGludGVy ZmFjZS1uYW1lID0gKGlmIChjb25zcCAoY2FyIHZhcnMpKQorICAgICAgICAgLEAoY2wtbG9vcAor ICAgICAgICAgICAgIGZvciAodmFycyAuIGJvZHkpIGluIGNsYXVzZXMKKyAgICAgICAgICAgICBm b3IgdmFycy1hcy1rZXl3b3JkcyA9IChlZ2xvdC0ta2V5d29yZGl6ZS12YXJzIHZhcnMpCisgICAg ICAgICAgICAgZm9yIGludGVyZmFjZS1uYW1lID0gKGlmIChjb25zcCAoY2FyIHZhcnMpKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhciAocG9wIHZhcnMpKSkKLSAgICAg ICAgICAgZm9yIGNvbmRpdGlvbiA9Ci0gICAgICAgICAgIChjb25kIChpbnRlcmZhY2UtbmFtZQot ICAgICAgICAgICAgICAgICAgKGVnbG90LS1jaGVjay1kc3BlYyBpbnRlcmZhY2UtbmFtZSB2YXJz KQotICAgICAgICAgICAgICAgICAgOzsgSW4gdGhpcyBtb2RlLCBpbiBydW50aW1lLCB3ZSBhc3N1 bWUKLSAgICAgICAgICAgICAgICAgIDs7IGBlZ2xvdC1zdHJpY3QtbW9kZScgaXMgcGFydGlhbGx5 IG9uLCBvdGhlcndpc2Ugd2UKLSAgICAgICAgICAgICAgICAgIDs7IGNhbid0IGRpc2FtYmlndWF0 ZSBiZXR3ZWVuIGNlcnRhaW4gdHlwZXMuCi0gICAgICAgICAgICAgICAgICBgKGlnbm9yZS1lcnJv cnMKLSAgICAgICAgICAgICAgICAgICAgIChlZ2xvdC0tY2hlY2stb2JqZWN0Ci0gICAgICAgICAg ICAgICAgICAgICAgJyxpbnRlcmZhY2UtbmFtZSAsb2JqLW9uY2UKLSAgICAgICAgICAgICAgICAg ICAgICB0Ci0gICAgICAgICAgICAgICAgICAgICAgKG1lbXEgJ2Rpc2FsbG93LW5vbi1zdGFuZGFy ZC1rZXlzIGVnbG90LXN0cmljdC1tb2RlKQotICAgICAgICAgICAgICAgICAgICAgIHQpKSkKLSAg ICAgICAgICAgICAgICAgKHQKLSAgICAgICAgICAgICAgICAgIDs7IEluIHRoaXMgaW50ZXJmYWNl LWxlc3MgbW9kZSB3ZSBkb24ndCBjaGVjawotICAgICAgICAgICAgICAgICAgOzsgYGVnbG90LXN0 cmljdC1tb2RlJyBhdCBhbGw6IGp1c3QgY2hlY2sgdGhhdCB0aGUgb2JqZWN0Ci0gICAgICAgICAg ICAgICAgICA7OyBoYXMgYWxsIHRoZSBrZXlzIHRoZSB1c2VyIHdhbnRzIHRvIGRlc3RydWN0dXJl LgotICAgICAgICAgICAgICAgICAgYChudWxsIChjbC1zZXQtZGlmZmVyZW5jZQorICAgICAgICAg ICAgIGZvciBjb25kaXRpb24gPQorICAgICAgICAgICAgIChjb25kIChpbnRlcmZhY2UtbmFtZQor ICAgICAgICAgICAgICAgICAgICAgKGVnbG90LS1jaGVjay1kc3BlYyBpbnRlcmZhY2UtbmFtZSB2 YXJzKQorICAgICAgICAgICAgICAgICAgICAgOzsgSW4gdGhpcyBtb2RlLCBpbiBydW50aW1lLCB3 ZSBhc3N1bWUKKyAgICAgICAgICAgICAgICAgICAgIDs7IGBlZ2xvdC1zdHJpY3QtbW9kZScgaXMg cGFydGlhbGx5IG9uLCBvdGhlcndpc2Ugd2UKKyAgICAgICAgICAgICAgICAgICAgIDs7IGNhbid0 IGRpc2FtYmlndWF0ZSBiZXR3ZWVuIGNlcnRhaW4gdHlwZXMuCisgICAgICAgICAgICAgICAgICAg ICBgKGlnbm9yZS1lcnJvcnMKKyAgICAgICAgICAgICAgICAgICAgICAgIChlZ2xvdC0tY2hlY2st b2JqZWN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICcsaW50ZXJmYWNlLW5hbWUgLG9iai1v bmNlCisgICAgICAgICAgICAgICAgICAgICAgICAgIHQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgKG1lbXEgJ2Rpc2FsbG93LW5vbi1zdGFuZGFyZC1rZXlzIGVnbG90LXN0cmljdC1tb2RlKQor ICAgICAgICAgICAgICAgICAgICAgICAgICB0KSkpCisgICAgICAgICAgICAgICAodAorICAgICAg ICAgICAgICAgICA7OyBJbiB0aGlzIGludGVyZmFjZS1sZXNzIG1vZGUgd2UgZG9uJ3QgY2hlY2sK KyAgICAgICAgICAgICAgICAgOzsgYGVnbG90LXN0cmljdC1tb2RlJyBhdCBhbGw6IGp1c3QgY2hl Y2sgdGhhdCB0aGUgb2JqZWN0CisgICAgICAgICAgICAgICAgIDs7IGhhcyBhbGwgdGhlIGtleXMg dGhlIHVzZXIgd2FudHMgdG8gZGVzdHJ1Y3R1cmUuCisgICAgICAgICAgICAgICAgIGAobnVsbCAo Y2wtc2V0LWRpZmZlcmVuY2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgJyx2YXJzLWFzLWtl eXdvcmRzCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChlZ2xvdC0tcGxpc3Qta2V5cyAsb2Jq LW9uY2UpKSkpKQotICAgICAgICAgICBjb2xsZWN0IGAoLGNvbmRpdGlvbgotICAgICAgICAgICAg ICAgICAgICAgKGNsLWRlc3RydWN0dXJpbmctYmluZCAoJmtleSAsQHZhcnMgJmFsbG93LW90aGVy LWtleXMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgLG9iai1vbmNlCi0gICAgICAgICAgICAg ICAgICAgICAgICxAYm9keSkpKQotICAgICAgICAodAotICAgICAgICAgKGVnbG90LS1lcnJvciAi JVMgZGlkbid0IG1hdGNoIGFueSBvZiAlUyIKLSAgICAgICAgICAgICAgICAgICAgICAgLG9iai1v bmNlCi0gICAgICAgICAgICAgICAgICAgICAgICcsKG1hcGNhciAjJ2NhciBjbGF1c2VzKSkpKSkp KQorICAgICAgICAgICAgIGNvbGxlY3QgYCgsY29uZGl0aW9uCisgICAgICAgICAgICAgICAgICAg ICAgICAoY2wtZGVzdHJ1Y3R1cmluZy1iaW5kICgma2V5ICxAdmFycyAmYWxsb3ctb3RoZXIta2V5 cykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLG9iai1vbmNlCisgICAgICAgICAgICAgICAg ICAgICAgICAgICxAYm9keSkpKQorICAgICAgICAgKHQKKyAgICAgICAgICAgKGVnbG90LS1lcnJv ciAiJVMgZGlkbid0IG1hdGNoIGFueSBvZiAlUyIKKyAgICAgICAgICAgICAsb2JqLW9uY2UKKyAg ICAgICAgICAgICAnLChtYXBjYXIgIydjYXIgY2xhdXNlcykpKSkpKSkKIAogDAogOzs7IEFQSSAo V09SSy1JTi1QUk9HUkVTUyEpCkBAIC02ODMsMTU0ICs2ODcsMTU0IEBAIHRyZWF0ZWQgYXMgaW4g YGVnbG90LWRiaW5kJy4iCiAoY2wtZGVmZ2VuZXJpYyBlZ2xvdC1pbml0aWFsaXphdGlvbi1vcHRp b25zIChzZXJ2ZXIpCiAgICJKU09OIG9iamVjdCB0byBzZW5kIHVuZGVyIGBpbml0aWFsaXphdGlv bk9wdGlvbnMnLiIKICAgKDptZXRob2QgKHMpCi0gICAobGV0ICgocHJvYmUgKHBsaXN0LWdldCAo ZWdsb3QtLXNhdmVkLWluaXRhcmdzIHMpIDppbml0aWFsaXphdGlvbk9wdGlvbnMpKSkKLSAgICAg KGNvbmQgKChmdW5jdGlvbnAgcHJvYmUpIChmdW5jYWxsIHByb2JlIHMpKQotICAgICAgICAgICAo cHJvYmUpCi0gICAgICAgICAgICh0IGVnbG90LS17fSkpKSkpCisgICAgKGxldCAoKHByb2JlIChw bGlzdC1nZXQgKGVnbG90LS1zYXZlZC1pbml0YXJncyBzKSA6aW5pdGlhbGl6YXRpb25PcHRpb25z KSkpCisgICAgICAoY29uZCAoKGZ1bmN0aW9ucCBwcm9iZSkgKGZ1bmNhbGwgcHJvYmUgcykpCisg ICAgICAgIChwcm9iZSkKKyAgICAgICAgKHQgZWdsb3QtLXt9KSkpKSkKIAogKGNsLWRlZmdlbmVy aWMgZWdsb3QtcmVnaXN0ZXItY2FwYWJpbGl0eSAoc2VydmVyIG1ldGhvZCBpZCAmcmVzdCBwYXJh bXMpCiAgICJBc2sgU0VSVkVSIHRvIHJlZ2lzdGVyIGNhcGFiaWxpdHkgTUVUSE9EIG1hcmtlZCB3 aXRoIElELiIKICAgKDptZXRob2QKLSAgIChfcyBtZXRob2QgX2lkICZyZXN0IF9wYXJhbXMpCi0g ICAoZWdsb3QtLXdhcm4gIlNlcnZlciB0cmllZCB0byByZWdpc3RlciB1bnN1cHBvcnRlZCBjYXBh YmlsaXR5IGAlcyciCi0gICAgICAgICAgICAgICAgbWV0aG9kKSkpCisgICAgKF9zIG1ldGhvZCBf aWQgJnJlc3QgX3BhcmFtcykKKyAgICAoZWdsb3QtLXdhcm4gIlNlcnZlciB0cmllZCB0byByZWdp c3RlciB1bnN1cHBvcnRlZCBjYXBhYmlsaXR5IGAlcyciCisgICAgICBtZXRob2QpKSkKIAogKGNs LWRlZmdlbmVyaWMgZWdsb3QtdW5yZWdpc3Rlci1jYXBhYmlsaXR5IChzZXJ2ZXIgbWV0aG9kIGlk ICZyZXN0IHBhcmFtcykKICAgIkFzayBTRVJWRVIgdG8gcmVnaXN0ZXIgY2FwYWJpbGl0eSBNRVRI T0QgbWFya2VkIHdpdGggSUQuIgogICAoOm1ldGhvZAotICAgKF9zIG1ldGhvZCBfaWQgJnJlc3Qg X3BhcmFtcykKLSAgIChlZ2xvdC0td2FybiAiU2VydmVyIHRyaWVkIHRvIHVucmVnaXN0ZXIgdW5z dXBwb3J0ZWQgY2FwYWJpbGl0eSBgJXMnIgotICAgICAgICAgICAgICAgIG1ldGhvZCkpKQorICAg IChfcyBtZXRob2QgX2lkICZyZXN0IF9wYXJhbXMpCisgICAgKGVnbG90LS13YXJuICJTZXJ2ZXIg dHJpZWQgdG8gdW5yZWdpc3RlciB1bnN1cHBvcnRlZCBjYXBhYmlsaXR5IGAlcyciCisgICAgICBt ZXRob2QpKSkKIAogKGNsLWRlZmdlbmVyaWMgZWdsb3QtY2xpZW50LWNhcGFiaWxpdGllcyAoc2Vy dmVyKQogICAiV2hhdCB0aGUgRWdsb3QgTFNQIGNsaWVudCBzdXBwb3J0cyBmb3IgU0VSVkVSLiIK ICAgKDptZXRob2QgKHMpCi0gICAgICAgICAgIChsaXN0Ci0gICAgICAgICAgICA6d29ya3NwYWNl IChsaXN0Ci0gICAgICAgICAgICAgICAgICAgICAgICA6YXBwbHlFZGl0IHQKLSAgICAgICAgICAg ICAgICAgICAgICAgIDpleGVjdXRlQ29tbWFuZCBgKDpkeW5hbWljUmVnaXN0cmF0aW9uIDpqc29u LWZhbHNlKQotICAgICAgICAgICAgICAgICAgICAgICAgOndvcmtzcGFjZUVkaXQgYCg6ZG9jdW1l bnRDaGFuZ2VzIHQpCi0gICAgICAgICAgICAgICAgICAgICAgICA6ZGlkQ2hhbmdlV2F0Y2hlZEZp bGVzCi0gICAgICAgICAgICAgICAgICAgICAgICBgKDpkeW5hbWljUmVnaXN0cmF0aW9uCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICwoaWYgKGVnbG90LS10cmFtcGlzaC1wIHMpIDpqc29uLWZh bHNlIHQpKQotICAgICAgICAgICAgICAgICAgICAgICAgOnN5bWJvbCBgKDpkeW5hbWljUmVnaXN0 cmF0aW9uIDpqc29uLWZhbHNlKQotICAgICAgICAgICAgICAgICAgICAgICAgOmNvbmZpZ3VyYXRp b24gdAotICAgICAgICAgICAgICAgICAgICAgICAgOndvcmtzcGFjZUZvbGRlcnMgdCkKLSAgICAg ICAgICAgIDp0ZXh0RG9jdW1lbnQKLSAgICAgICAgICAgIChsaXN0Ci0gICAgICAgICAgICAgOnN5 bmNocm9uaXphdGlvbiAobGlzdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpkeW5h bWljUmVnaXN0cmF0aW9uIDpqc29uLWZhbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOndpbGxTYXZlIHQgOndpbGxTYXZlV2FpdFVudGlsIHQgOmRpZFNhdmUgdCkKLSAgICAgICAg ICAgICA6Y29tcGxldGlvbiAgICAgIChsaXN0IDpkeW5hbWljUmVnaXN0cmF0aW9uIDpqc29uLWZh bHNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y29tcGxldGlvbkl0ZW0K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAoOnNuaXBwZXRTdXBwb3J0Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwoaWYgKGVnbG90LS1zbmlwcGV0 LWV4cGFuc2lvbi1mbikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpqc29uLWZhbHNl KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZGVwcmVjYXRlZFN1cHBv cnQgdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dGFnU3VwcG9ydCAo OnZhbHVlU2V0IFsxXSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y29u dGV4dFN1cHBvcnQgdCkKLSAgICAgICAgICAgICA6aG92ZXIgICAgICAgICAgICAgIChsaXN0IDpk eW5hbWljUmVnaXN0cmF0aW9uIDpqc29uLWZhbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA6Y29udGVudEZvcm1hdAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGlmIChmYm91bmRwICdnZm0tdmlldy1tb2RlKQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsibWFya2Rvd24iICJwbGFpbnRleHQiXQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbInBsYWludGV4dCJdKSkKLSAg ICAgICAgICAgICA6c2lnbmF0dXJlSGVscCAgICAgIChsaXN0IDpkeW5hbWljUmVnaXN0cmF0aW9u IDpqc29uLWZhbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6c2ln bmF0dXJlSW5mb3JtYXRpb24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGAoOnBhcmFtZXRlckluZm9ybWF0aW9uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICg6bGFiZWxPZmZzZXRTdXBwb3J0IHQpCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDphY3RpdmVQYXJhbWV0ZXJTdXBwb3J0IHQpKQotICAgICAgICAg ICAgIDpyZWZlcmVuY2VzICAgICAgICAgYCg6ZHluYW1pY1JlZ2lzdHJhdGlvbiA6anNvbi1mYWxz ZSkKLSAgICAgICAgICAgICA6ZGVmaW5pdGlvbiAgICAgICAgIChsaXN0IDpkeW5hbWljUmVnaXN0 cmF0aW9uIDpqc29uLWZhbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA6bGlua1N1cHBvcnQgdCkKLSAgICAgICAgICAgICA6ZGVjbGFyYXRpb24gICAgICAgIChsaXN0 IDpkeW5hbWljUmVnaXN0cmF0aW9uIDpqc29uLWZhbHNlCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA6bGlua1N1cHBvcnQgdCkKLSAgICAgICAgICAgICA6aW1wbGVtZW50 YXRpb24gICAgIChsaXN0IDpkeW5hbWljUmVnaXN0cmF0aW9uIDpqc29uLWZhbHNlCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bGlua1N1cHBvcnQgdCkKLSAgICAgICAg ICAgICA6dHlwZURlZmluaXRpb24gICAgIChsaXN0IDpkeW5hbWljUmVnaXN0cmF0aW9uIDpqc29u LWZhbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bGlua1N1cHBv cnQgdCkKLSAgICAgICAgICAgICA6ZG9jdW1lbnRTeW1ib2wgICAgIChsaXN0Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOmR5bmFtaWNSZWdpc3RyYXRpb24gOmpzb24tZmFsc2UK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6aGllcmFyY2hpY2FsRG9jdW1lbnRT eW1ib2xTdXBwb3J0IHQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6c3ltYm9s S2luZCBgKDp2YWx1ZVNldAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgWyxAKG1hcGNhcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMnY2FyIGVnbG90LS1zeW1ib2wta2luZC1uYW1lcyldKSkKLSAgICAg ICAgICAgICA6ZG9jdW1lbnRIaWdobGlnaHQgIGAoOmR5bmFtaWNSZWdpc3RyYXRpb24gOmpzb24t ZmFsc2UpCi0gICAgICAgICAgICAgOmNvZGVBY3Rpb24gICAgICAgICAobGlzdAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDpkeW5hbWljUmVnaXN0cmF0aW9uIDpqc29uLWZhbHNl Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNvZGVBY3Rpb25MaXRlcmFsU3Vw cG9ydAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoOmNvZGVBY3Rpb25LaW5k Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoOnZhbHVlU2V0Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJxdWlja2ZpeCIKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgInJlZmFjdG9yIiAicmVmYWN0b3IuZXh0cmFjdCIKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZmFjdG9yLmlubGluZSIgInJl ZmFjdG9yLnJld3JpdGUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz b3VyY2UiICJzb3VyY2Uub3JnYW5pemVJbXBvcnRzIl0pKQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDppc1ByZWZlcnJlZFN1cHBvcnQgdCkKLSAgICAgICAgICAgICA6Zm9ybWF0 dGluZyAgICAgICAgIGAoOmR5bmFtaWNSZWdpc3RyYXRpb24gOmpzb24tZmFsc2UpCi0gICAgICAg ICAgICAgOnJhbmdlRm9ybWF0dGluZyAgICBgKDpkeW5hbWljUmVnaXN0cmF0aW9uIDpqc29uLWZh bHNlKQotICAgICAgICAgICAgIDpyZW5hbWUgICAgICAgICAgICAgYCg6ZHluYW1pY1JlZ2lzdHJh dGlvbiA6anNvbi1mYWxzZSkKLSAgICAgICAgICAgICA6cHVibGlzaERpYWdub3N0aWNzIChsaXN0 IDpyZWxhdGVkSW5mb3JtYXRpb24gOmpzb24tZmFsc2UKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDs7IFRPRE86IFdlIGNhbiBzdXBwb3J0IDpjb2RlRGVzY3JpcHRpb24g YWZ0ZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGFkZGluZyBh biBhcHByb3ByaWF0ZSBVSSB0bwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOzsgRmx5bWFrZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpj b2RlRGVzY3JpcHRpb25TdXBwb3J0IDpqc29uLWZhbHNlCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA6dGFnU3VwcG9ydAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYCg6dmFsdWVTZXQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgWyxAKG1hcGNhcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIydjYXIgZWdsb3QtLXRhZy1mYWNlcyldKSkpCi0gICAgICAgICAgICA6ZXhwZXJp bWVudGFsIGVnbG90LS17fSkpKQorICAgIChsaXN0CisgICAgICA6d29ya3NwYWNlIChsaXN0Cisg ICAgICAgICAgICAgICAgICAgOmFwcGx5RWRpdCB0CisgICAgICAgICAgICAgICAgICAgOmV4ZWN1 dGVDb21tYW5kIGAoOmR5bmFtaWNSZWdpc3RyYXRpb24gOmpzb24tZmFsc2UpCisgICAgICAgICAg ICAgICAgICAgOndvcmtzcGFjZUVkaXQgYCg6ZG9jdW1lbnRDaGFuZ2VzIHQpCisgICAgICAgICAg ICAgICAgICAgOmRpZENoYW5nZVdhdGNoZWRGaWxlcworICAgICAgICAgICAgICAgICAgIGAoOmR5 bmFtaWNSZWdpc3RyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAsKGlmIChlZ2xvdC0tdHJh bXBpc2gtcCBzKSA6anNvbi1mYWxzZSB0KSkKKyAgICAgICAgICAgICAgICAgICA6c3ltYm9sIGAo OmR5bmFtaWNSZWdpc3RyYXRpb24gOmpzb24tZmFsc2UpCisgICAgICAgICAgICAgICAgICAgOmNv bmZpZ3VyYXRpb24gdAorICAgICAgICAgICAgICAgICAgIDp3b3Jrc3BhY2VGb2xkZXJzIHQpCisg ICAgICA6dGV4dERvY3VtZW50CisgICAgICAobGlzdAorICAgICAgICA6c3luY2hyb25pemF0aW9u IChsaXN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZHluYW1pY1JlZ2lzdHJhdGlvbiA6 anNvbi1mYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgOndpbGxTYXZlIHQgOndpbGxT YXZlV2FpdFVudGlsIHQgOmRpZFNhdmUgdCkKKyAgICAgICAgOmNvbXBsZXRpb24gICAgICAobGlz dCA6ZHluYW1pY1JlZ2lzdHJhdGlvbiA6anNvbi1mYWxzZQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgOmNvbXBsZXRpb25JdGVtCisgICAgICAgICAgICAgICAgICAgICAgICAgICBgKDpzbmlw cGV0U3VwcG9ydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLChpZiAoZWdsb3QtLXNu aXBwZXQtZXhwYW5zaW9uLWZuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmpzb24tZmFsc2UpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6ZGVwcmVjYXRlZFN1cHBvcnQgdAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOnRhZ1N1cHBvcnQgKDp2YWx1ZVNldCBbMV0pKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgOmNvbnRleHRTdXBwb3J0IHQpCisgICAgICAgIDpob3ZlciAgICAgICAg ICAgICAgKGxpc3QgOmR5bmFtaWNSZWdpc3RyYXRpb24gOmpzb24tZmFsc2UKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDpjb250ZW50Rm9ybWF0CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoaWYgKGZib3VuZHAgJ2dmbS12aWV3LW1vZGUpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFsibWFya2Rvd24iICJwbGFpbnRleHQiXQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBbInBsYWludGV4dCJdKSkKKyAgICAgICAgOnNpZ25hdHVyZUhlbHAgICAg ICAobGlzdCA6ZHluYW1pY1JlZ2lzdHJhdGlvbiA6anNvbi1mYWxzZQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOnNpZ25hdHVyZUluZm9ybWF0aW9uCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBgKDpwYXJhbWV0ZXJJbmZvcm1hdGlvbgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKDpsYWJlbE9mZnNldFN1cHBvcnQgdCkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDphY3RpdmVQYXJhbWV0ZXJTdXBwb3J0IHQpKQorICAgICAgICA6cmVmZXJl bmNlcyAgICAgICAgIGAoOmR5bmFtaWNSZWdpc3RyYXRpb24gOmpzb24tZmFsc2UpCisgICAgICAg IDpkZWZpbml0aW9uICAgICAgICAgKGxpc3QgOmR5bmFtaWNSZWdpc3RyYXRpb24gOmpzb24tZmFs c2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpsaW5rU3VwcG9ydCB0KQorICAgICAg ICA6ZGVjbGFyYXRpb24gICAgICAgIChsaXN0IDpkeW5hbWljUmVnaXN0cmF0aW9uIDpqc29uLWZh bHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bGlua1N1cHBvcnQgdCkKKyAgICAg ICAgOmltcGxlbWVudGF0aW9uICAgICAobGlzdCA6ZHluYW1pY1JlZ2lzdHJhdGlvbiA6anNvbi1m YWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmxpbmtTdXBwb3J0IHQpCisgICAg ICAgIDp0eXBlRGVmaW5pdGlvbiAgICAgKGxpc3QgOmR5bmFtaWNSZWdpc3RyYXRpb24gOmpzb24t ZmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpsaW5rU3VwcG9ydCB0KQorICAg ICAgICA6ZG9jdW1lbnRTeW1ib2wgICAgIChsaXN0CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA6ZHluYW1pY1JlZ2lzdHJhdGlvbiA6anNvbi1mYWxzZQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOmhpZXJhcmNoaWNhbERvY3VtZW50U3ltYm9sU3VwcG9ydCB0CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA6c3ltYm9sS2luZCBgKDp2YWx1ZVNldAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyxAKG1hcGNhcgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJ2NhciBlZ2xvdC0tc3lt Ym9sLWtpbmQtbmFtZXMpXSkpCisgICAgICAgIDpkb2N1bWVudEhpZ2hsaWdodCAgYCg6ZHluYW1p Y1JlZ2lzdHJhdGlvbiA6anNvbi1mYWxzZSkKKyAgICAgICAgOmNvZGVBY3Rpb24gICAgICAgICAo bGlzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmR5bmFtaWNSZWdpc3RyYXRpb24g Ompzb24tZmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjb2RlQWN0aW9uTGl0 ZXJhbFN1cHBvcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoOmNvZGVBY3Rpb25L aW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoOnZhbHVlU2V0CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsicXVpY2tmaXgiCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgInJlZmFjdG9yIiAicmVmYWN0b3IuZXh0cmFjdCIKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmYWN0b3IuaW5saW5lIiAicmVmYWN0 b3IucmV3cml0ZSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic291cmNl IiAic291cmNlLm9yZ2FuaXplSW1wb3J0cyJdKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDppc1ByZWZlcnJlZFN1cHBvcnQgdCkKKyAgICAgICAgOmZvcm1hdHRpbmcgICAgICAgICBg KDpkeW5hbWljUmVnaXN0cmF0aW9uIDpqc29uLWZhbHNlKQorICAgICAgICA6cmFuZ2VGb3JtYXR0 aW5nICAgIGAoOmR5bmFtaWNSZWdpc3RyYXRpb24gOmpzb24tZmFsc2UpCisgICAgICAgIDpyZW5h bWUgICAgICAgICAgICAgYCg6ZHluYW1pY1JlZ2lzdHJhdGlvbiA6anNvbi1mYWxzZSkKKyAgICAg ICAgOnB1Ymxpc2hEaWFnbm9zdGljcyAobGlzdCA6cmVsYXRlZEluZm9ybWF0aW9uIDpqc29uLWZh bHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBUT0RPOiBXZSBjYW4gc3VwcG9y dCA6Y29kZURlc2NyaXB0aW9uIGFmdGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7 OyBhZGRpbmcgYW4gYXBwcm9wcmlhdGUgVUkgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDs7IEZseW1ha2UuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y29kZURlc2Ny aXB0aW9uU3VwcG9ydCA6anNvbi1mYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OnRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAoOnZhbHVlU2V0Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbLEAobWFwY2FyCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMnY2FyIGVnbG90LS10YWctZmFjZXMpXSkpKQorICAg ICAgOmV4cGVyaW1lbnRhbCBlZ2xvdC0te30pKSkKIAogKGNsLWRlZmdlbmVyaWMgZWdsb3Qtd29y a3NwYWNlLWZvbGRlcnMgKHNlcnZlcikKICAgIlJldHVybiB3b3Jrc3BhY2VGb2xkZXJzIGZvciBT RVJWRVIuIgogICAobGV0ICgocHJvamVjdCAoZWdsb3QtLXByb2plY3Qgc2VydmVyKSkpCiAgICAg KHZjb25jYXQKLSAgICAgKG1hcGNhciAobGFtYmRhIChkaXIpCi0gICAgICAgICAgICAgICAobGlz dCA6dXJpIChlZ2xvdC0tcGF0aC10by11cmkgZGlyKQotICAgICAgICAgICAgICAgICAgICAgOm5h bWUgKGFiYnJldmlhdGUtZmlsZS1uYW1lIGRpcikpKQotICAgICAgICAgICAgIGAoLChwcm9qZWN0 LXJvb3QgcHJvamVjdCkgLEAocHJvamVjdC1leHRlcm5hbC1yb290cyBwcm9qZWN0KSkpKSkpCisg ICAgICAobWFwY2FyIChsYW1iZGEgKGRpcikKKyAgICAgICAgICAgICAgICAobGlzdCA6dXJpIChl Z2xvdC0tcGF0aC10by11cmkgZGlyKQorICAgICAgICAgICAgICAgICAgOm5hbWUgKGFiYnJldmlh dGUtZmlsZS1uYW1lIGRpcikpKQorICAgICAgICBgKCwocHJvamVjdC1yb290IHByb2plY3QpICxA KHByb2plY3QtZXh0ZXJuYWwtcm9vdHMgcHJvamVjdCkpKSkpKQogCiAoZGVmY2xhc3MgZWdsb3Qt bHNwLXNlcnZlciAoanNvbnJwYy1wcm9jZXNzLWNvbm5lY3Rpb24pCiAgICgocHJvamVjdC1uaWNr bmFtZQotICAgIDpkb2N1bWVudGF0aW9uICJTaG9ydCBuaWNrbmFtZSBmb3IgdGhlIGFzc29jaWF0 ZWQgcHJvamVjdC4iCi0gICAgOmFjY2Vzc29yIGVnbG90LS1wcm9qZWN0LW5pY2tuYW1lCi0gICAg OnJlYWRlciBlZ2xvdC1wcm9qZWN0LW5pY2tuYW1lKQotICAgKG1ham9yLW1vZGVzCi0gICAgOmRv Y3VtZW50YXRpb24gIk1ham9yIG1vZGVzIHNlcnZlciBpcyByZXNwb25zaWJsZSBmb3IgaW4gYSBn aXZlbiBwcm9qZWN0LiIKLSAgICA6YWNjZXNzb3IgZWdsb3QtLW1ham9yLW1vZGVzKQotICAgKGxh bmd1YWdlLWlkCi0gICAgOmRvY3VtZW50YXRpb24gIkxhbmd1YWdlIElEIHN0cmluZyBmb3IgdGhl IG1vZGUuIgotICAgIDphY2Nlc3NvciBlZ2xvdC0tbGFuZ3VhZ2UtaWQpCi0gICAoY2FwYWJpbGl0 aWVzCi0gICAgOmRvY3VtZW50YXRpb24gIkpTT04gb2JqZWN0IGNvbnRhaW5pbmcgc2VydmVyIGNh cGFiaWxpdGllcy4iCi0gICAgOmFjY2Vzc29yIGVnbG90LS1jYXBhYmlsaXRpZXMpCi0gICAoc2Vy dmVyLWluZm8KLSAgICA6ZG9jdW1lbnRhdGlvbiAiSlNPTiBvYmplY3QgY29udGFpbmluZyBzZXJ2 ZXIgaW5mby4iCi0gICAgOmFjY2Vzc29yIGVnbG90LS1zZXJ2ZXItaW5mbykKLSAgIChzaHV0ZG93 bi1yZXF1ZXN0ZWQKLSAgICA6ZG9jdW1lbnRhdGlvbiAiRmxhZyBzZXQgd2hlbiBzZXJ2ZXIgaXMg c2h1dHRpbmcgZG93bi4iCi0gICAgOmFjY2Vzc29yIGVnbG90LS1zaHV0ZG93bi1yZXF1ZXN0ZWQp Ci0gICAocHJvamVjdAotICAgIDpkb2N1bWVudGF0aW9uICJQcm9qZWN0IGFzc29jaWF0ZWQgd2l0 aCBzZXJ2ZXIuIgotICAgIDphY2Nlc3NvciBlZ2xvdC0tcHJvamVjdCkKLSAgIChzcGlubmVyCi0g ICAgOmRvY3VtZW50YXRpb24gIkxpc3QgKElEIERPSU5HLVdIQVQgRE9ORS1QKSByZXByZXNlbnRp bmcgc2VydmVyIHByb2dyZXNzLiIKLSAgICA6aW5pdGZvcm0gYChuaWwgbmlsIHQpIDphY2Nlc3Nv ciBlZ2xvdC0tc3Bpbm5lcikKLSAgIChpbmhpYml0LWF1dG9yZWNvbm5lY3QKLSAgICA6aW5pdGZv cm0gdAotICAgIDpkb2N1bWVudGF0aW9uICJHZW5lcmFsaXplZCBib29sZWFuIGluaGliaXRpbmcg YXV0by1yZWNvbm5lY3Rpb24gaWYgdHJ1ZS4iCi0gICAgOmFjY2Vzc29yIGVnbG90LS1pbmhpYml0 LWF1dG9yZWNvbm5lY3QpCi0gICAoZmlsZS13YXRjaGVzCi0gICAgOmRvY3VtZW50YXRpb24gIk1h cCBJRCB0byBsaXN0IG9mIFdBVENIRVMgZm9yIGBkaWRDaGFuZ2VXYXRjaGVkRmlsZXMnLiIKLSAg ICA6aW5pdGZvcm0gKG1ha2UtaGFzaC10YWJsZSA6dGVzdCAjJ2VxdWFsKSA6YWNjZXNzb3IgZWds b3QtLWZpbGUtd2F0Y2hlcykKLSAgIChtYW5hZ2VkLWJ1ZmZlcnMKLSAgICA6ZG9jdW1lbnRhdGlv biAiTGlzdCBvZiBidWZmZXJzIG1hbmFnZWQgYnkgc2VydmVyLiIKLSAgICA6YWNjZXNzb3IgZWds b3QtLW1hbmFnZWQtYnVmZmVycykKLSAgIChzYXZlZC1pbml0YXJncwotICAgIDpkb2N1bWVudGF0 aW9uICJTYXZlZCBpbml0YXJncyBmb3IgcmVjb25uZWN0aW9uIHB1cnBvc2VzLiIKLSAgICA6YWNj ZXNzb3IgZWdsb3QtLXNhdmVkLWluaXRhcmdzKQotICAgKGluZmVyaW9yLXByb2Nlc3MKLSAgICA6 ZG9jdW1lbnRhdGlvbiAiU2VydmVyIHN1YnByb2Nlc3Mgc3RhcnRlZCBhdXRvbWF0aWNhbGx5LiIK LSAgICA6YWNjZXNzb3IgZWdsb3QtLWluZmVyaW9yLXByb2Nlc3MpKQorICAgICA6ZG9jdW1lbnRh dGlvbiAiU2hvcnQgbmlja25hbWUgZm9yIHRoZSBhc3NvY2lhdGVkIHByb2plY3QuIgorICAgICA6 YWNjZXNzb3IgZWdsb3QtLXByb2plY3Qtbmlja25hbWUKKyAgICAgOnJlYWRlciBlZ2xvdC1wcm9q ZWN0LW5pY2tuYW1lKQorICAgIChtYWpvci1tb2RlcworICAgICAgOmRvY3VtZW50YXRpb24gIk1h am9yIG1vZGVzIHNlcnZlciBpcyByZXNwb25zaWJsZSBmb3IgaW4gYSBnaXZlbiBwcm9qZWN0LiIK KyAgICAgIDphY2Nlc3NvciBlZ2xvdC0tbWFqb3ItbW9kZXMpCisgICAgKGxhbmd1YWdlLWlkCisg ICAgICA6ZG9jdW1lbnRhdGlvbiAiTGFuZ3VhZ2UgSUQgc3RyaW5nIGZvciB0aGUgbW9kZS4iCisg ICAgICA6YWNjZXNzb3IgZWdsb3QtLWxhbmd1YWdlLWlkKQorICAgIChjYXBhYmlsaXRpZXMKKyAg ICAgIDpkb2N1bWVudGF0aW9uICJKU09OIG9iamVjdCBjb250YWluaW5nIHNlcnZlciBjYXBhYmls aXRpZXMuIgorICAgICAgOmFjY2Vzc29yIGVnbG90LS1jYXBhYmlsaXRpZXMpCisgICAgKHNlcnZl ci1pbmZvCisgICAgICA6ZG9jdW1lbnRhdGlvbiAiSlNPTiBvYmplY3QgY29udGFpbmluZyBzZXJ2 ZXIgaW5mby4iCisgICAgICA6YWNjZXNzb3IgZWdsb3QtLXNlcnZlci1pbmZvKQorICAgIChzaHV0 ZG93bi1yZXF1ZXN0ZWQKKyAgICAgIDpkb2N1bWVudGF0aW9uICJGbGFnIHNldCB3aGVuIHNlcnZl ciBpcyBzaHV0dGluZyBkb3duLiIKKyAgICAgIDphY2Nlc3NvciBlZ2xvdC0tc2h1dGRvd24tcmVx dWVzdGVkKQorICAgIChwcm9qZWN0CisgICAgICA6ZG9jdW1lbnRhdGlvbiAiUHJvamVjdCBhc3Nv Y2lhdGVkIHdpdGggc2VydmVyLiIKKyAgICAgIDphY2Nlc3NvciBlZ2xvdC0tcHJvamVjdCkKKyAg ICAoc3Bpbm5lcgorICAgICAgOmRvY3VtZW50YXRpb24gIkxpc3QgKElEIERPSU5HLVdIQVQgRE9O RS1QKSByZXByZXNlbnRpbmcgc2VydmVyIHByb2dyZXNzLiIKKyAgICAgIDppbml0Zm9ybSBgKG5p bCBuaWwgdCkgOmFjY2Vzc29yIGVnbG90LS1zcGlubmVyKQorICAgIChpbmhpYml0LWF1dG9yZWNv bm5lY3QKKyAgICAgIDppbml0Zm9ybSB0CisgICAgICA6ZG9jdW1lbnRhdGlvbiAiR2VuZXJhbGl6 ZWQgYm9vbGVhbiBpbmhpYml0aW5nIGF1dG8tcmVjb25uZWN0aW9uIGlmIHRydWUuIgorICAgICAg OmFjY2Vzc29yIGVnbG90LS1pbmhpYml0LWF1dG9yZWNvbm5lY3QpCisgICAgKGZpbGUtd2F0Y2hl cworICAgICAgOmRvY3VtZW50YXRpb24gIk1hcCBJRCB0byBsaXN0IG9mIFdBVENIRVMgZm9yIGBk aWRDaGFuZ2VXYXRjaGVkRmlsZXMnLiIKKyAgICAgIDppbml0Zm9ybSAobWFrZS1oYXNoLXRhYmxl IDp0ZXN0ICMnZXF1YWwpIDphY2Nlc3NvciBlZ2xvdC0tZmlsZS13YXRjaGVzKQorICAgIChtYW5h Z2VkLWJ1ZmZlcnMKKyAgICAgIDpkb2N1bWVudGF0aW9uICJMaXN0IG9mIGJ1ZmZlcnMgbWFuYWdl ZCBieSBzZXJ2ZXIuIgorICAgICAgOmFjY2Vzc29yIGVnbG90LS1tYW5hZ2VkLWJ1ZmZlcnMpCisg ICAgKHNhdmVkLWluaXRhcmdzCisgICAgICA6ZG9jdW1lbnRhdGlvbiAiU2F2ZWQgaW5pdGFyZ3Mg Zm9yIHJlY29ubmVjdGlvbiBwdXJwb3Nlcy4iCisgICAgICA6YWNjZXNzb3IgZWdsb3QtLXNhdmVk LWluaXRhcmdzKQorICAgIChpbmZlcmlvci1wcm9jZXNzCisgICAgICA6ZG9jdW1lbnRhdGlvbiAi U2VydmVyIHN1YnByb2Nlc3Mgc3RhcnRlZCBhdXRvbWF0aWNhbGx5LiIKKyAgICAgIDphY2Nlc3Nv ciBlZ2xvdC0taW5mZXJpb3ItcHJvY2VzcykpCiAgIDpkb2N1bWVudGF0aW9uCiAgICJSZXByZXNl bnRzIGEgc2VydmVyLiBXcmFwcyBhIHByb2Nlc3MgZm9yIExTUCBjb21tdW5pY2F0aW9uLiIpCiAK QEAgLTg1NSwxNCArODU5LDE0IEBAIElmIFBSRVNFUlZFLUJVRkZFUlMgaXMgbm9uLW5pbCAoaW50 ZXJhY3RpdmVseSwgd2hlbiBjYWxsZWQgd2l0aCBhCiBwcmVmaXggYXJndW1lbnQpLCBkbyBub3Qg a2lsbCBldmVudHMgYW5kIG91dHB1dCBidWZmZXJzIG9mCiBTRVJWRVIuIgogICAoaW50ZXJhY3Rp dmUgKGxpc3QgKGVnbG90LS1yZWFkLXNlcnZlciAiU2h1dGRvd24gd2hpY2ggc2VydmVyIgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWdsb3QtY3VycmVudC1zZXJ2 ZXIpKQotICAgICAgICAgICAgICAgICAgICAgdCBuaWwgY3VycmVudC1wcmVmaXgtYXJnKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgKGVnbG90LWN1cnJlbnQtc2VydmVyKSkKKyAgICAgICAgICAg ICAgICAgdCBuaWwgY3VycmVudC1wcmVmaXgtYXJnKSkKICAgKGVnbG90LS1tZXNzYWdlICJBc2tp bmcgJXMgcG9saXRlbHkgdG8gdGVybWluYXRlIiAoanNvbnJwYy1uYW1lIHNlcnZlcikpCiAgICh1 bndpbmQtcHJvdGVjdAotICAgICAgKHByb2duCi0gICAgICAgIChzZXRmIChlZ2xvdC0tc2h1dGRv d24tcmVxdWVzdGVkIHNlcnZlcikgdCkKLSAgICAgICAgKGpzb25ycGMtcmVxdWVzdCBzZXJ2ZXIg OnNodXRkb3duIG5pbCA6dGltZW91dCAob3IgdGltZW91dCAxLjUpKQotICAgICAgICAoanNvbnJw Yy1ub3RpZnkgc2VydmVyIDpleGl0IG5pbCkpCisgICAgKHByb2duCisgICAgICAoc2V0ZiAoZWds b3QtLXNodXRkb3duLXJlcXVlc3RlZCBzZXJ2ZXIpIHQpCisgICAgICAoanNvbnJwYy1yZXF1ZXN0 IHNlcnZlciA6c2h1dGRvd24gbmlsIDp0aW1lb3V0IChvciB0aW1lb3V0IDEuNSkpCisgICAgICAo anNvbnJwYy1ub3RpZnkgc2VydmVyIDpleGl0IG5pbCkpCiAgICAgOzsgTm93IGFzayBqc29ucnBj LmVsIHRvIHNodXQgZG93biB0aGUgc2VydmVyLgogICAgIChqc29ucnBjLXNodXRkb3duIHNlcnZl ciAobm90IHByZXNlcnZlLWJ1ZmZlcnMpKQogICAgICh1bmxlc3MgcHJlc2VydmUtYnVmZmVycyAo a2lsbC1idWZmZXIgKGpzb25ycGMtZXZlbnRzLWJ1ZmZlciBzZXJ2ZXIpKSkpKQpAQCAtODcyLDMz ICs4NzYsMzMgQEAgU0VSVkVSLiIKIFBSRVNFUlZFLUJVRkZFUlMgYXMgaW4gYGVnbG90LXNodXRk b3duJywgd2hpY2ggc2VlLiIKICAgKGludGVyYWN0aXZlIChsaXN0IGN1cnJlbnQtcHJlZml4LWFy ZykpCiAgIChjbC1sb29wIGZvciBzcyBiZWluZyB0aGUgaGFzaC12YWx1ZXMgb2YgZWdsb3QtLXNl cnZlcnMtYnktcHJvamVjdAotICAgICAgICAgICBkbyAoY2wtbG9vcCBmb3IgcyBpbiBzcyBkbyAo ZWdsb3Qtc2h1dGRvd24gcyBuaWwgcHJlc2VydmUtYnVmZmVycykpKSkKKyAgICBkbyAoY2wtbG9v cCBmb3IgcyBpbiBzcyBkbyAoZWdsb3Qtc2h1dGRvd24gcyBuaWwgcHJlc2VydmUtYnVmZmVycykp KSkKIAogKGRlZnVuIGVnbG90LS1vbi1zaHV0ZG93biAoc2VydmVyKQogICAiQ2FsbGVkIGJ5IGpz b25ycGMuZWwgd2hlbiBTRVJWRVIgaXMgYWxyZWFkeSBkZWFkLiIKICAgOzsgVHVybiBvZmYgYGVn bG90LS1tYW5hZ2VkLW1vZGUnIHdoZXJlIGFwcHJvcHJpYXRlLgogICAoZG9saXN0IChidWZmZXIg KGVnbG90LS1tYW5hZ2VkLWJ1ZmZlcnMgc2VydmVyKSkKICAgICAobGV0ICg7OyBBdm9pZCBkdXBs aWNhdGUgc2h1dGRvd25zIChnaXRodWIjMzg5KQotICAgICAgICAgIChlZ2xvdC1hdXRvc2h1dGRv d24gbmlsKSkKKyAgICAgICAgICAgKGVnbG90LWF1dG9zaHV0ZG93biBuaWwpKQogICAgICAgKGVn bG90LS13aGVuLWxpdmUtYnVmZmVyIGJ1ZmZlciAoZWdsb3QtLW1hbmFnZWQtbW9kZS1vZmYpKSkp CiAgIDs7IEtpbGwgYW55IGV4cGVuc2l2ZSB3YXRjaGVzCiAgIChtYXBoYXNoIChsYW1iZGEgKF9p ZCB3YXRjaGVzKQogICAgICAgICAgICAgIChtYXBjYXIgIydmaWxlLW5vdGlmeS1ybS13YXRjaCB3 YXRjaGVzKSkKLSAgICAgICAgICAgKGVnbG90LS1maWxlLXdhdGNoZXMgc2VydmVyKSkKKyAgICAo ZWdsb3QtLWZpbGUtd2F0Y2hlcyBzZXJ2ZXIpKQogICA7OyBLaWxsIGFueSBhdXRvc3RhcnRlZCBp bmZlcmlvciBwcm9jZXNzZXMKICAgKHdoZW4tbGV0IChwcm9jIChlZ2xvdC0taW5mZXJpb3ItcHJv Y2VzcyBzZXJ2ZXIpKQogICAgIChkZWxldGUtcHJvY2VzcyBwcm9jKSkKICAgOzsgU2V2ZXIgdGhl IHByb2plY3Qvc2VydmVyIHJlbGF0aW9uc2hpcCBmb3IgYHNlcnZlcicKICAgKHNldGYgKGdldGhh c2ggKGVnbG90LS1wcm9qZWN0IHNlcnZlcikgZWdsb3QtLXNlcnZlcnMtYnktcHJvamVjdCkKLSAg ICAgICAgKGRlbHEgc2VydmVyCi0gICAgICAgICAgICAgIChnZXRoYXNoIChlZ2xvdC0tcHJvamVj dCBzZXJ2ZXIpIGVnbG90LS1zZXJ2ZXJzLWJ5LXByb2plY3QpKSkKKyAgICAoZGVscSBzZXJ2ZXIK KyAgICAgIChnZXRoYXNoIChlZ2xvdC0tcHJvamVjdCBzZXJ2ZXIpIGVnbG90LS1zZXJ2ZXJzLWJ5 LXByb2plY3QpKSkKICAgKGNvbmQgKChlZ2xvdC0tc2h1dGRvd24tcmVxdWVzdGVkIHNlcnZlcikK LSAgICAgICAgIHQpCi0gICAgICAgICgobm90IChlZ2xvdC0taW5oaWJpdC1hdXRvcmVjb25uZWN0 IHNlcnZlcikpCi0gICAgICAgICAoZWdsb3QtLXdhcm4gIlJlY29ubmVjdGluZyBhZnRlciB1bmV4 cGVjdGVkIHNlcnZlciBleGl0LiIpCi0gICAgICAgICAoZWdsb3QtcmVjb25uZWN0IHNlcnZlcikp Ci0gICAgICAgICgodGltZXJwIChlZ2xvdC0taW5oaWJpdC1hdXRvcmVjb25uZWN0IHNlcnZlcikp Ci0gICAgICAgICAoZWdsb3QtLXdhcm4gIk5vdCBhdXRvLXJlY29ubmVjdGluZywgbGFzdCBvbmUg ZGlkbid0IGxhc3QgbG9uZy4iKSkpKQorICAgICAgICAgIHQpCisgICAgKChub3QgKGVnbG90LS1p bmhpYml0LWF1dG9yZWNvbm5lY3Qgc2VydmVyKSkKKyAgICAgIChlZ2xvdC0td2FybiAiUmVjb25u ZWN0aW5nIGFmdGVyIHVuZXhwZWN0ZWQgc2VydmVyIGV4aXQuIikKKyAgICAgIChlZ2xvdC1yZWNv bm5lY3Qgc2VydmVyKSkKKyAgICAoKHRpbWVycCAoZWdsb3QtLWluaGliaXQtYXV0b3JlY29ubmVj dCBzZXJ2ZXIpKQorICAgICAgKGVnbG90LS13YXJuICJOb3QgYXV0by1yZWNvbm5lY3RpbmcsIGxh c3Qgb25lIGRpZG4ndCBsYXN0IGxvbmcuIikpKSkKIAogKGRlZnVuIGVnbG90LS1hbGwtbWFqb3It bW9kZXMgKCkKICAgIlJldHVybiBhbGwga25vd24gbWFqb3IgbW9kZXMuIgpAQCAtOTI1LDI1ICs5 MjksMjUgQEAgTEFOR1VBR0UtSUQgaXMgZGV0ZXJtaW5lZCBmcm9tIE1PREUncyBuYW1lLgogQ09O VEFDVC1QUk9YWSBpcyB0aGUgdmFsdWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcKIGBlZ2xvdC1zZXJ2 ZXItcHJvZ3JhbXMnIGVudHJ5LiIKICAgKGNsLWxvb3AKLSAgIGZvciAobW9kZXMgLiBjb250YWN0 KSBpbiBlZ2xvdC1zZXJ2ZXItcHJvZ3JhbXMKLSAgIGZvciBtb2RlLXN5bWJvbHMgPSAoY29ucyBt b2RlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlbGV0ZSBtb2RlCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyICMnY2FyCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXBjYXIgIydlZ2xvdC0tZW5zdXJlLWxpc3QK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWds b3QtLWVuc3VyZS1saXN0IG1vZGVzKSkpKSkKLSAgIHRoZXJlaXMgKGNsLXNvbWUKLSAgICAgICAg ICAgIChsYW1iZGEgKHNwZWMpCi0gICAgICAgICAgICAgIChjbC1kZXN0cnVjdHVyaW5nLWJpbmQg KHByb2JlICZrZXkgbGFuZ3VhZ2UtaWQgJmFsbG93LW90aGVyLWtleXMpCisgICAgZm9yIChtb2Rl cyAuIGNvbnRhY3QpIGluIGVnbG90LXNlcnZlci1wcm9ncmFtcworICAgIGZvciBtb2RlLXN5bWJv bHMgPSAoY29ucyBtb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgKGRlbGV0ZSBtb2RlCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyICMnY2FyCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChtYXBjYXIgIydlZ2xvdC0tZW5zdXJlLWxpc3QKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoZWdsb3QtLWVuc3VyZS1saXN0IG1vZGVzKSkpKSkKKyAgICB0aGVy ZWlzIChjbC1zb21lCisgICAgICAgICAgICAgIChsYW1iZGEgKHNwZWMpCisgICAgICAgICAgICAg ICAgKGNsLWRlc3RydWN0dXJpbmctYmluZCAocHJvYmUgJmtleSBsYW5ndWFnZS1pZCAmYWxsb3ct b3RoZXIta2V5cykKICAgICAgICAgICAgICAgICAgIChlZ2xvdC0tZW5zdXJlLWxpc3Qgc3BlYykK LSAgICAgICAgICAgICAgICAoYW5kIChwcm92aWRlZC1tb2RlLWRlcml2ZWQtcCBtb2RlIHByb2Jl KQotICAgICAgICAgICAgICAgICAgICAgKGxpc3QKKyAgICAgICAgICAgICAgICAgIChhbmQgKHBy b3ZpZGVkLW1vZGUtZGVyaXZlZC1wIG1vZGUgcHJvYmUpCisgICAgICAgICAgICAgICAgICAgIChs aXN0CiAgICAgICAgICAgICAgICAgICAgICAgbW9kZS1zeW1ib2xzCiAgICAgICAgICAgICAgICAg ICAgICAgKG9yIGxhbmd1YWdlLWlkCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChvciAoZ2V0 IG1vZGUgJ2VnbG90LWxhbmd1YWdlLWlkKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGdldCBzcGVjICdlZ2xvdC1sYW5ndWFnZS1pZCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChzdHJpbmctcmVtb3ZlLXN1ZmZpeCAiLW1vZGUiIChzeW1ib2wtbmFtZSBtb2RlKSkpKQor ICAgICAgICAgICAgICAgICAgICAgICAgKG9yIChnZXQgbW9kZSAnZWdsb3QtbGFuZ3VhZ2UtaWQp CisgICAgICAgICAgICAgICAgICAgICAgICAgIChnZXQgc3BlYyAnZWdsb3QtbGFuZ3VhZ2UtaWQp CisgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctcmVtb3ZlLXN1ZmZpeCAiLW1vZGUi IChzeW1ib2wtbmFtZSBtb2RlKSkpKQogICAgICAgICAgICAgICAgICAgICAgIGNvbnRhY3QpKSkp Ci0gICAgICAgICAgICAoaWYgKG9yIChzeW1ib2xwIG1vZGVzKSAoa2V5d29yZHAgKGNhZHIgbW9k ZXMpKSkKKyAgICAgICAgICAgICAgKGlmIChvciAoc3ltYm9scCBtb2RlcykgKGtleXdvcmRwIChj YWRyIG1vZGVzKSkpCiAgICAgICAgICAgICAgICAgKGxpc3QgbW9kZXMpIG1vZGVzKSkpKQogCiAo ZGVmdW4gZWdsb3QtLWd1ZXNzLWNvbnRhY3QgKCZvcHRpb25hbCBpbnRlcmFjdGl2ZSkKQEAgLTk1 Miw3NiArOTU2LDc2IEBAIFJldHVybiAoTUFOQUdFRC1NT0RFIFBST0pFQ1QgQ0xBU1MgQ09OVEFD VCBMQU5HLUlEKS4gIElmIElOVEVSQUNUSVZFIGlzCiBub24tbmlsLCBtYXliZSBwcm9tcHQgdXNl ciwgZWxzZSBlcnJvciBhcyBzb29uIGFzIHNvbWV0aGluZyBjYW4ndAogYmUgZ3Vlc3NlZC4iCiAg IChsZXQqICgoZ3Vlc3NlZC1tb2RlIChpZiBidWZmZXItZmlsZS1uYW1lIG1ham9yLW1vZGUpKQot ICAgICAgICAgKG1haW4tbW9kZQotICAgICAgICAgIChjb25kCi0gICAgICAgICAgICgoYW5kIGlu dGVyYWN0aXZlCisgICAgICAgICAgKG1haW4tbW9kZQorICAgICAgICAgICAgKGNvbmQKKyAgICAg ICAgICAgICAgKChhbmQgaW50ZXJhY3RpdmUKICAgICAgICAgICAgICAgICAgKG9yICg+PSAocHJl Zml4LW51bWVyaWMtdmFsdWUgY3VycmVudC1wcmVmaXgtYXJnKSAxNikKLSAgICAgICAgICAgICAg ICAgICAgIChub3QgZ3Vlc3NlZC1tb2RlKSkpCi0gICAgICAgICAgICAoaW50ZXJuCi0gICAgICAg ICAgICAgKGNvbXBsZXRpbmctcmVhZAotICAgICAgICAgICAgICAiW2VnbG90XSBTdGFydCBhIHNl cnZlciB0byBtYW5hZ2UgYnVmZmVycyBvZiB3aGF0IG1ham9yIG1vZGU/ICIKLSAgICAgICAgICAg ICAgKG1hcGNhciAjJ3N5bWJvbC1uYW1lIChlZ2xvdC0tYWxsLW1ham9yLW1vZGVzKSkgbmlsIHQK LSAgICAgICAgICAgICAgKHN5bWJvbC1uYW1lIGd1ZXNzZWQtbW9kZSkgbmlsIChzeW1ib2wtbmFt ZSBndWVzc2VkLW1vZGUpIG5pbCkpKQotICAgICAgICAgICAoKG5vdCBndWVzc2VkLW1vZGUpCi0g ICAgICAgICAgICAoZWdsb3QtLWVycm9yICJDYW4ndCBndWVzcyBtb2RlIHRvIG1hbmFnZSBmb3Ig YCVzJyIgKGN1cnJlbnQtYnVmZmVyKSkpCi0gICAgICAgICAgICh0IGd1ZXNzZWQtbW9kZSkpKQot ICAgICAgICAgKHRyaXBsZXQgKGVnbG90LS1sb29rdXAtbW9kZSBtYWluLW1vZGUpKQotICAgICAg ICAgKG1hbmFnZWQtbW9kZXMgKGNhciB0cmlwbGV0KSkKLSAgICAgICAgIChsYW5ndWFnZS1pZCAo b3IgKGNhZHIgdHJpcGxldCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1yZW1v dmUtc3VmZml4ICItbW9kZSIgKHN5bWJvbC1uYW1lIGd1ZXNzZWQtbW9kZSkpKSkKLSAgICAgICAg IChndWVzcyAoY2FkZHIgdHJpcGxldCkpCi0gICAgICAgICAoZ3Vlc3MgKGlmIChmdW5jdGlvbnAg Z3Vlc3MpCi0gICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIGd1ZXNzIGludGVyYWN0aXZlKQot ICAgICAgICAgICAgICAgICAgZ3Vlc3MpKQotICAgICAgICAgKGNsYXNzIChvciAoYW5kIChjb25z cCBndWVzcykgKHN5bWJvbHAgKGNhciBndWVzcykpCi0gICAgICAgICAgICAgICAgICAgICAgICAg KHByb2cxICh1bmxlc3MgY3VycmVudC1wcmVmaXgtYXJnIChjYXIgZ3Vlc3MpKQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHNldHEgZ3Vlc3MgKGNkciBndWVzcykpKSkKLSAgICAgICAgICAg ICAgICAgICAgJ2VnbG90LWxzcC1zZXJ2ZXIpKQotICAgICAgICAgKHByb2dyYW0gKGFuZCAobGlz dHAgZ3Vlc3MpCi0gICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmdwIChjYXIgZ3Vlc3MpKQot ICAgICAgICAgICAgICAgICAgICAgICA7OyBBIHNlY29uZCBlbGVtZW50IG1pZ2h0IGJlIHRoZSBw b3J0IG9mIGEgKGhvc3QsIHBvcnQpCi0gICAgICAgICAgICAgICAgICAgICAgIDs7IHBhaXIsIGJ1 dCBpbiB0aGF0IGNhc2UgaXQgaXMgbm90IGEgc3RyaW5nLgotICAgICAgICAgICAgICAgICAgICAg ICAob3IgKG51bGwgKGNkciBndWVzcykpIChzdHJpbmdwIChjYWRyIGd1ZXNzKSkpCi0gICAgICAg ICAgICAgICAgICAgICAgIChjYXIgZ3Vlc3MpKSkKLSAgICAgICAgIChiYXNlLXByb21wdAotICAg ICAgICAgIChhbmQgaW50ZXJhY3RpdmUKLSAgICAgICAgICAgICAgICJFbnRlciBwcm9ncmFtIHRv IGV4ZWN1dGUgKG9yIDxob3N0Pjo8cG9ydD4pOiAiKSkKLSAgICAgICAgIChmdWxsLXByb2dyYW0t aW52b2NhdGlvbgotICAgICAgICAgIChhbmQgcHJvZ3JhbQotICAgICAgICAgICAgICAgKGNsLWV2 ZXJ5ICMnc3RyaW5ncCBndWVzcykKLSAgICAgICAgICAgICAgIChjb21iaW5lLWFuZC1xdW90ZS1z dHJpbmdzIGd1ZXNzKSkpCi0gICAgICAgICAocHJvbXB0Ci0gICAgICAgICAgKGFuZCBiYXNlLXBy b21wdAotICAgICAgICAgICAgICAgKGNvbmQgKGN1cnJlbnQtcHJlZml4LWFyZyBiYXNlLXByb21w dCkKLSAgICAgICAgICAgICAgICAgICAgICgobnVsbCBndWVzcykKLSAgICAgICAgICAgICAgICAg ICAgICAoZm9ybWF0ICJbZWdsb3RdIFNvcnJ5LCBjb3VsZG4ndCBndWVzcyBmb3IgYCVzJyFcbiVz IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFpbi1tb2RlIGJhc2UtcHJvbXB0KSkK LSAgICAgICAgICAgICAgICAgICAgICgoYW5kIHByb2dyYW0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgIChub3QgKGZpbGUtbmFtZS1hYnNvbHV0ZS1wIHByb2dyYW0pKQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgKG5vdCAoZWdsb3QtLWV4ZWN1dGFibGUtZmluZCBwcm9ncmFtIHQpKSkK LSAgICAgICAgICAgICAgICAgICAgICAoaWYgZnVsbC1wcm9ncmFtLWludm9jYXRpb24KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCAoZm9ybWF0ICJbZWdsb3RdIEkgZ3Vlc3MgeW91 IHdhbnQgdG8gcnVuIGAlcyciCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmdWxsLXByb2dyYW0taW52b2NhdGlvbikKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoZm9ybWF0ICIsIGJ1dCBJIGNhbid0IGZpbmQgYCVzJyBpbiBQQVRIISIKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2dyYW0pCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIlxuIiBiYXNlLXByb21wdCkKLSAgICAgICAgICAgICAg ICAgICAgICAgIChlZ2xvdC0tZXJyb3IKLSAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0 ICJgJXMnIG5vdCBmb3VuZCBpbiBQQVRILCBidXQgY2FuJ3QgZm9ybSIKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICIgYW4gaW50ZXJhY3RpdmUgcHJvbXB0IGZvciB0byBmaXggJXMh IikKLSAgICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmFtIGd1ZXNzKSkpKSkpCi0gICAgICAg ICAoY29udGFjdAotICAgICAgICAgIChvciAoYW5kIHByb21wdAotICAgICAgICAgICAgICAgICAg IChzcGxpdC1zdHJpbmctYW5kLXVucXVvdGUKKyAgICAgICAgICAgICAgICAgICAobm90IGd1ZXNz ZWQtbW9kZSkpKQorICAgICAgICAgICAgICAgIChpbnRlcm4KKyAgICAgICAgICAgICAgICAgIChj b21wbGV0aW5nLXJlYWQKKyAgICAgICAgICAgICAgICAgICAgIltlZ2xvdF0gU3RhcnQgYSBzZXJ2 ZXIgdG8gbWFuYWdlIGJ1ZmZlcnMgb2Ygd2hhdCBtYWpvciBtb2RlPyAiCisgICAgICAgICAgICAg ICAgICAgIChtYXBjYXIgIydzeW1ib2wtbmFtZSAoZWdsb3QtLWFsbC1tYWpvci1tb2RlcykpIG5p bCB0CisgICAgICAgICAgICAgICAgICAgIChzeW1ib2wtbmFtZSBndWVzc2VkLW1vZGUpIG5pbCAo c3ltYm9sLW5hbWUgZ3Vlc3NlZC1tb2RlKSBuaWwpKSkKKyAgICAgICAgICAgICAgKChub3QgZ3Vl c3NlZC1tb2RlKQorICAgICAgICAgICAgICAgIChlZ2xvdC0tZXJyb3IgIkNhbid0IGd1ZXNzIG1v ZGUgdG8gbWFuYWdlIGZvciBgJXMnIiAoY3VycmVudC1idWZmZXIpKSkKKyAgICAgICAgICAgICAg KHQgZ3Vlc3NlZC1tb2RlKSkpCisgICAgICAgICAgKHRyaXBsZXQgKGVnbG90LS1sb29rdXAtbW9k ZSBtYWluLW1vZGUpKQorICAgICAgICAgIChtYW5hZ2VkLW1vZGVzIChjYXIgdHJpcGxldCkpCisg ICAgICAgICAgKGxhbmd1YWdlLWlkIChvciAoY2FkciB0cmlwbGV0KQorICAgICAgICAgICAgICAg ICAgICAgICAgIChzdHJpbmctcmVtb3ZlLXN1ZmZpeCAiLW1vZGUiIChzeW1ib2wtbmFtZSBndWVz c2VkLW1vZGUpKSkpCisgICAgICAgICAgKGd1ZXNzIChjYWRkciB0cmlwbGV0KSkKKyAgICAgICAg ICAoZ3Vlc3MgKGlmIChmdW5jdGlvbnAgZ3Vlc3MpCisgICAgICAgICAgICAgICAgICAgKGZ1bmNh bGwgZ3Vlc3MgaW50ZXJhY3RpdmUpCisgICAgICAgICAgICAgICAgICAgZ3Vlc3MpKQorICAgICAg ICAgIChjbGFzcyAob3IgKGFuZCAoY29uc3AgZ3Vlc3MpIChzeW1ib2xwIChjYXIgZ3Vlc3MpKQor ICAgICAgICAgICAgICAgICAgICAgICAocHJvZzEgKHVubGVzcyBjdXJyZW50LXByZWZpeC1hcmcg KGNhciBndWVzcykpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgZ3Vlc3MgKGNkciBn dWVzcykpKSkKKyAgICAgICAgICAgICAgICAgICAnZWdsb3QtbHNwLXNlcnZlcikpCisgICAgICAg ICAgKHByb2dyYW0gKGFuZCAobGlzdHAgZ3Vlc3MpCisgICAgICAgICAgICAgICAgICAgICAoc3Ry aW5ncCAoY2FyIGd1ZXNzKSkKKyAgICAgICAgICAgICAgICAgICAgIDs7IEEgc2Vjb25kIGVsZW1l bnQgbWlnaHQgYmUgdGhlIHBvcnQgb2YgYSAoaG9zdCwgcG9ydCkKKyAgICAgICAgICAgICAgICAg ICAgIDs7IHBhaXIsIGJ1dCBpbiB0aGF0IGNhc2UgaXQgaXMgbm90IGEgc3RyaW5nLgorICAgICAg ICAgICAgICAgICAgICAgKG9yIChudWxsIChjZHIgZ3Vlc3MpKSAoc3RyaW5ncCAoY2FkciBndWVz cykpKQorICAgICAgICAgICAgICAgICAgICAgKGNhciBndWVzcykpKQorICAgICAgICAgIChiYXNl LXByb21wdAorICAgICAgICAgICAgKGFuZCBpbnRlcmFjdGl2ZQorICAgICAgICAgICAgICAiRW50 ZXIgcHJvZ3JhbSB0byBleGVjdXRlIChvciA8aG9zdD46PHBvcnQ+KTogIikpCisgICAgICAgICAg KGZ1bGwtcHJvZ3JhbS1pbnZvY2F0aW9uCisgICAgICAgICAgICAoYW5kIHByb2dyYW0KKyAgICAg ICAgICAgICAgKGNsLWV2ZXJ5ICMnc3RyaW5ncCBndWVzcykKKyAgICAgICAgICAgICAgKGNvbWJp bmUtYW5kLXF1b3RlLXN0cmluZ3MgZ3Vlc3MpKSkKKyAgICAgICAgICAocHJvbXB0CisgICAgICAg ICAgICAoYW5kIGJhc2UtcHJvbXB0CisgICAgICAgICAgICAgIChjb25kIChjdXJyZW50LXByZWZp eC1hcmcgYmFzZS1wcm9tcHQpCisgICAgICAgICAgICAgICAgKChudWxsIGd1ZXNzKQorICAgICAg ICAgICAgICAgICAgKGZvcm1hdCAiW2VnbG90XSBTb3JyeSwgY291bGRuJ3QgZ3Vlc3MgZm9yIGAl cychXG4lcyIKKyAgICAgICAgICAgICAgICAgICAgbWFpbi1tb2RlIGJhc2UtcHJvbXB0KSkKKyAg ICAgICAgICAgICAgICAoKGFuZCBwcm9ncmFtCisgICAgICAgICAgICAgICAgICAgKG5vdCAoZmls ZS1uYW1lLWFic29sdXRlLXAgcHJvZ3JhbSkpCisgICAgICAgICAgICAgICAgICAgKG5vdCAoZWds b3QtLWV4ZWN1dGFibGUtZmluZCBwcm9ncmFtIHQpKSkKKyAgICAgICAgICAgICAgICAgIChpZiBm dWxsLXByb2dyYW0taW52b2NhdGlvbgorICAgICAgICAgICAgICAgICAgICAoY29uY2F0IChmb3Jt YXQgIltlZ2xvdF0gSSBndWVzcyB5b3Ugd2FudCB0byBydW4gYCVzJyIKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZ1bGwtcHJvZ3JhbS1pbnZvY2F0aW9uKQorICAgICAgICAgICAgICAg ICAgICAgIChmb3JtYXQgIiwgYnV0IEkgY2FuJ3QgZmluZCBgJXMnIGluIFBBVEghIgorICAgICAg ICAgICAgICAgICAgICAgICAgcHJvZ3JhbSkKKyAgICAgICAgICAgICAgICAgICAgICAiXG4iIGJh c2UtcHJvbXB0KQorICAgICAgICAgICAgICAgICAgICAoZWdsb3QtLWVycm9yCisgICAgICAgICAg ICAgICAgICAgICAgKGNvbmNhdCAiYCVzJyBub3QgZm91bmQgaW4gUEFUSCwgYnV0IGNhbid0IGZv cm0iCisgICAgICAgICAgICAgICAgICAgICAgICAiIGFuIGludGVyYWN0aXZlIHByb21wdCBmb3Ig dG8gZml4ICVzISIpCisgICAgICAgICAgICAgICAgICAgICAgcHJvZ3JhbSBndWVzcykpKSkpKQor ICAgICAgICAgIChjb250YWN0CisgICAgICAgICAgICAob3IgKGFuZCBwcm9tcHQKKyAgICAgICAg ICAgICAgICAgIChzcGxpdC1zdHJpbmctYW5kLXVucXVvdGUKICAgICAgICAgICAgICAgICAgICAg KHJlYWQtc2hlbGwtY29tbWFuZAotICAgICAgICAgICAgICAgICAgICAgcHJvbXB0Ci0gICAgICAg ICAgICAgICAgICAgICBmdWxsLXByb2dyYW0taW52b2NhdGlvbgotICAgICAgICAgICAgICAgICAg ICAgJ2VnbG90LWNvbW1hbmQtaGlzdG9yeSkpKQorICAgICAgICAgICAgICAgICAgICAgIHByb21w dAorICAgICAgICAgICAgICAgICAgICAgIGZ1bGwtcHJvZ3JhbS1pbnZvY2F0aW9uCisgICAgICAg ICAgICAgICAgICAgICAgJ2VnbG90LWNvbW1hbmQtaGlzdG9yeSkpKQogICAgICAgICAgICAgICBn dWVzcykpKQogICAgIChsaXN0IG1hbmFnZWQtbW9kZXMgKGVnbG90LS1jdXJyZW50LXByb2plY3Qp IGNsYXNzIGNvbnRhY3QgbGFuZ3VhZ2UtaWQpKSkKIAogKGRlZnZhciBlZ2xvdC1sc3AtY29udGV4 dCkKIChwdXQgJ2VnbG90LWxzcC1jb250ZXh0ICd2YXJpYWJsZS1kb2N1bWVudGF0aW9uCi0gICAg ICJEeW5hbWljYWxseSBub24tbmlsIHdoZW4gc2VhcmNoaW5nIGZvciBwcm9qZWN0cyBpbiBMU1Ag Y29udGV4dC4iKQorICAiRHluYW1pY2FsbHkgbm9uLW5pbCB3aGVuIHNlYXJjaGluZyBmb3IgcHJv amVjdHMgaW4gTFNQIGNvbnRleHQuIikKIAogKGRlZnZhciBlZ2xvdC0tc2VydmVycy1ieS14cmVm ZWQtZmlsZQogICAobWFrZS1oYXNoLXRhYmxlIDp0ZXN0ICdlcXVhbCA6d2Vha25lc3MgJ3ZhbHVl KSkKQEAgLTEwMzgsNyArMTA0Miw3IEBAIHN1aXRhYmxlIHJvb3QgZGlyZWN0b3J5IGZvciBhIGdp dmVuIExTUCBzZXJ2ZXIncyBwdXJwb3Nlcy4iCiAKIDs7OyMjI2F1dG9sb2FkCiAoZGVmdW4gZWds b3QgKG1hbmFnZWQtbWFqb3ItbW9kZSBwcm9qZWN0IGNsYXNzIGNvbnRhY3QgbGFuZ3VhZ2UtaWQK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvcHRpb25hbCBpbnRlcmFjdGl2ZSkK KyAgICAgICAgICAgICAgICZvcHRpb25hbCBpbnRlcmFjdGl2ZSkKICAgIk1hbmFnZSBhIHByb2pl Y3Qgd2l0aCBhIExhbmd1YWdlIFNlcnZlciBQcm90b2NvbCAoTFNQKSBzZXJ2ZXIuCiAKIFRoZSBM U1Agc2VydmVyIG9mIENMQVNTIGlzIHN0YXJ0ZWQgKG9yIGNvbnRhY3RlZCkgdmlhIENPTlRBQ1Qu CkBAIC0xMDc0LDExICsxMDc4LDExIEBAIE1BTkFHRUQtTUFKT1ItTU9ERSwgd2hpY2ggbWF0dGVy cyB0byBhIG1pbm9yaXR5IG9mIHNlcnZlcnMuCiBJTlRFUkFDVElWRSBpcyB0IGlmIGNhbGxlZCBp bnRlcmFjdGl2ZWx5LiIKICAgKGludGVyYWN0aXZlIChhcHBlbmQgKGVnbG90LS1ndWVzcy1jb250 YWN0IHQpICcodCkpKQogICAobGV0KiAoKGN1cnJlbnQtc2VydmVyIChlZ2xvdC1jdXJyZW50LXNl cnZlcikpCi0gICAgICAgICAobGl2ZS1wIChhbmQgY3VycmVudC1zZXJ2ZXIgKGpzb25ycGMtcnVu bmluZy1wIGN1cnJlbnQtc2VydmVyKSkpKQorICAgICAgICAgIChsaXZlLXAgKGFuZCBjdXJyZW50 LXNlcnZlciAoanNvbnJwYy1ydW5uaW5nLXAgY3VycmVudC1zZXJ2ZXIpKSkpCiAgICAgKGlmIChh bmQgbGl2ZS1wCi0gICAgICAgICAgICAgaW50ZXJhY3RpdmUKLSAgICAgICAgICAgICAoeS1vci1u LXAgIltlZ2xvdF0gTGl2ZSBwcm9jZXNzIGZvdW5kLCByZWNvbm5lY3QgaW5zdGVhZD8gIikpCi0g ICAgICAgIChlZ2xvdC1yZWNvbm5lY3QgY3VycmVudC1zZXJ2ZXIgaW50ZXJhY3RpdmUpCisgICAg ICAgICAgaW50ZXJhY3RpdmUKKyAgICAgICAgICAoeS1vci1uLXAgIltlZ2xvdF0gTGl2ZSBwcm9j ZXNzIGZvdW5kLCByZWNvbm5lY3QgaW5zdGVhZD8gIikpCisgICAgICAoZWdsb3QtcmVjb25uZWN0 IGN1cnJlbnQtc2VydmVyIGludGVyYWN0aXZlKQogICAgICAgKHdoZW4gbGl2ZS1wIChpZ25vcmUt ZXJyb3JzIChlZ2xvdC1zaHV0ZG93biBjdXJyZW50LXNlcnZlcikpKQogICAgICAgKGVnbG90LS1j b25uZWN0IG1hbmFnZWQtbWFqb3ItbW9kZSBwcm9qZWN0IGNsYXNzIGNvbnRhY3QgbGFuZ3VhZ2Ut aWQpKSkpCiAKQEAgLTEwODksMTAgKzEwOTMsMTAgQEAgSU5URVJBQ1RJVkUgaXMgdCBpZiBjYWxs ZWQgaW50ZXJhY3RpdmVseS4iCiAgICh3aGVuIChqc29ucnBjLXJ1bm5pbmctcCBzZXJ2ZXIpCiAg ICAgKGlnbm9yZS1lcnJvcnMgKGVnbG90LXNodXRkb3duIHNlcnZlciBpbnRlcmFjdGl2ZSBuaWwg J3ByZXNlcnZlLWJ1ZmZlcnMpKSkKICAgKGVnbG90LS1jb25uZWN0IChlZ2xvdC0tbWFqb3ItbW9k ZXMgc2VydmVyKQotICAgICAgICAgICAgICAgICAgKGVnbG90LS1wcm9qZWN0IHNlcnZlcikKLSAg ICAgICAgICAgICAgICAgIChlaWVpby1vYmplY3QtY2xhc3MtbmFtZSBzZXJ2ZXIpCi0gICAgICAg ICAgICAgICAgICAoZWdsb3QtLXNhdmVkLWluaXRhcmdzIHNlcnZlcikKLSAgICAgICAgICAgICAg ICAgIChlZ2xvdC0tbGFuZ3VhZ2UtaWQgc2VydmVyKSkKKyAgICAoZWdsb3QtLXByb2plY3Qgc2Vy dmVyKQorICAgIChlaWVpby1vYmplY3QtY2xhc3MtbmFtZSBzZXJ2ZXIpCisgICAgKGVnbG90LS1z YXZlZC1pbml0YXJncyBzZXJ2ZXIpCisgICAgKGVnbG90LS1sYW5ndWFnZS1pZCBzZXJ2ZXIpKQog ICAoZWdsb3QtLW1lc3NhZ2UgIlJlY29ubmVjdGVkISIpKQogCiAoZGVmdmFyIGVnbG90LS1tYW5h Z2VkLW1vZGUpIDsgZm9yd2FyZCBkZWNsCkBAIC0xMTAyLDEyICsxMTA2LDEyIEBAIElOVEVSQUNU SVZFIGlzIHQgaWYgY2FsbGVkIGludGVyYWN0aXZlbHkuIgogICAiU3RhcnQgRWdsb3Qgc2Vzc2lv biBmb3IgY3VycmVudCBidWZmZXIgaWYgdGhlcmUgaXNuJ3Qgb25lLiIKICAgKGxldCAoKGJ1ZmZl ciAoY3VycmVudC1idWZmZXIpKSkKICAgICAoY2wtbGFiZWxzCi0gICAgICAgICgobWF5YmUtY29u bmVjdAotICAgICAgICAgICgpCi0gICAgICAgICAgKHJlbW92ZS1ob29rICdwb3N0LWNvbW1hbmQt aG9vayAjJ21heWJlLWNvbm5lY3QgbmlsKQotICAgICAgICAgIChlZ2xvdC0td2hlbi1saXZlLWJ1 ZmZlciBidWZmZXIKLSAgICAgICAgICAgICh1bmxlc3MgZWdsb3QtLW1hbmFnZWQtbW9kZQotICAg ICAgICAgICAgICAoYXBwbHkgIydlZ2xvdC0tY29ubmVjdCAoZWdsb3QtLWd1ZXNzLWNvbnRhY3Qp KSkpKSkKKyAgICAgICgobWF5YmUtY29ubmVjdAorICAgICAgICAgKCkKKyAgICAgICAgIChyZW1v dmUtaG9vayAncG9zdC1jb21tYW5kLWhvb2sgIydtYXliZS1jb25uZWN0IG5pbCkKKyAgICAgICAg IChlZ2xvdC0td2hlbi1saXZlLWJ1ZmZlciBidWZmZXIKKyAgICAgICAgICAgKHVubGVzcyBlZ2xv dC0tbWFuYWdlZC1tb2RlCisgICAgICAgICAgICAgKGFwcGx5ICMnZWdsb3QtLWNvbm5lY3QgKGVn bG90LS1ndWVzcy1jb250YWN0KSkpKSkpCiAgICAgICAod2hlbiBidWZmZXItZmlsZS1uYW1lCiAg ICAgICAgIChhZGQtaG9vayAncG9zdC1jb21tYW5kLWhvb2sgIydtYXliZS1jb25uZWN0ICdhcHBl bmQgbmlsKSkpKSkKIApAQCAtMTExNyw4ICsxMTIxLDggQEAgVXNlIGN1cnJlbnQgc2VydmVyJ3Mg b3IgZmlyc3QgYXZhaWxhYmxlIEVnbG90IGV2ZW50cyBidWZmZXIuIgogICAoaW50ZXJhY3RpdmUg KGxpc3QgKGVnbG90LWN1cnJlbnQtc2VydmVyKSkpCiAgIChsZXQgKChidWZmZXIgKGlmIHNlcnZl ciAoanNvbnJwYy1ldmVudHMtYnVmZmVyIHNlcnZlcikKICAgICAgICAgICAgICAgICAgIChjbC1m aW5kICJcXCpFR0xPVC4qZXZlbnRzXFwqIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1 ZmZlci1saXN0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgOmtleSAjJ2J1ZmZlci1uYW1l IDp0ZXN0ICMnc3RyaW5nLW1hdGNoKSkpKQorICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLWxp c3QpCisgICAgICAgICAgICAgICAgICAgIDprZXkgIydidWZmZXItbmFtZSA6dGVzdCAjJ3N0cmlu Zy1tYXRjaCkpKSkKICAgICAoaWYgYnVmZmVyIChkaXNwbGF5LWJ1ZmZlciBidWZmZXIpCiAgICAg ICAoZWdsb3QtLWVycm9yICJDYW4ndCBmaW5kIGFuIEVnbG90IGV2ZW50cyBidWZmZXIhIikpKSkK IApAQCAtMTE1MCwxNiArMTE1NCwxNiBAQCBFYWNoIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgc2Vy dmVyIGFzIGFuIGFyZ3VtZW50IikKIChkZWZ1biBlZ2xvdC0tY21kIChjb250YWN0KQogICAiSGVs cGVyIGZvciBgZWdsb3QtLWNvbm5lY3QnLiIKICAgKGlmIChmaWxlLXJlbW90ZS1wIGRlZmF1bHQt ZGlyZWN0b3J5KQotICAgICAgOzsgVE9ETzogdGhpcyBzZWVtcyBsaWtlIGEgYnVnLCBhbHRob3Vn aCBpdOKAmXMgZXZlcnl3aGVyZS4gRm9yCi0gICAgICA7OyBzb21lIHJlYXNvbiwgZm9yIHJlbW90 ZSBjb25uZWN0aW9ucyBvbmx5LCBvdmVyIGEgcGlwZSwgd2UKLSAgICAgIDs7IG5lZWQgdG8gdHVy biBvZmYgbGluZSBidWZmZXJpbmcgb24gdGhlIHR0eS4KLSAgICAgIDs7Ci0gICAgICA7OyBOb3Qg b25seSBkb2VzIHRoaXMgc2VlbSBsaWtlIHRoZXJlIHNob3VsZCBiZSBhIGJldHRlciB3YXksCi0g ICAgICA7OyBidXQgaXQgYWxtb3N0IGNlcnRhaW5seSBkb2VzbuKAmXQgd29yayBvbiBub24tdW5p eCBzeXN0ZW1zLgotICAgICAgKGxpc3QgInNoIiAiLWMiCi0gICAgICAgICAgICAoc3RyaW5nLWpv aW4gKGNvbnMgInN0dHkgcmF3ID4gL2Rldi9udWxsOyIKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobWFwY2FyICMnc2hlbGwtcXVvdGUtYXJndW1lbnQgY29udGFjdCkpCi0gICAgICAg ICAgICAgIiAiKSkKKyAgICA7OyBUT0RPOiB0aGlzIHNlZW1zIGxpa2UgYSBidWcsIGFsdGhvdWdo IGl04oCZcyBldmVyeXdoZXJlLiBGb3IKKyAgICA7OyBzb21lIHJlYXNvbiwgZm9yIHJlbW90ZSBj b25uZWN0aW9ucyBvbmx5LCBvdmVyIGEgcGlwZSwgd2UKKyAgICA7OyBuZWVkIHRvIHR1cm4gb2Zm IGxpbmUgYnVmZmVyaW5nIG9uIHRoZSB0dHkuCisgICAgOzsKKyAgICA7OyBOb3Qgb25seSBkb2Vz IHRoaXMgc2VlbSBsaWtlIHRoZXJlIHNob3VsZCBiZSBhIGJldHRlciB3YXksCisgICAgOzsgYnV0 IGl0IGFsbW9zdCBjZXJ0YWlubHkgZG9lc27igJl0IHdvcmsgb24gbm9uLXVuaXggc3lzdGVtcy4K KyAgICAobGlzdCAic2giICItYyIKKyAgICAgIChzdHJpbmctam9pbiAoY29ucyAic3R0eSByYXcg PiAvZGV2L251bGw7IgorICAgICAgICAgICAgICAgICAgICAgKG1hcGNhciAjJ3NoZWxsLXF1b3Rl LWFyZ3VtZW50IGNvbnRhY3QpKQorICAgICAgICAiICIpKQogICAgIGNvbnRhY3QpKQogCiAoZGVm dmFyLWxvY2FsIGVnbG90LS1jYWNoZWQtc2VydmVyIG5pbApAQCAtMTE2OSw2NCArMTE3Myw2NCBA QCBFYWNoIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgc2VydmVyIGFzIGFuIGFyZ3VtZW50IikKICAg IkNvbm5lY3QgdG8gTUFOQUdFRC1NT0RFUywgTEFOR1VBR0UtSUQsIFBST0pFQ1QsIENMQVNTIGFu ZCBDT05UQUNULgogVGhpcyBkb2NzdHJpbmcgYXBwZWFzZXMgY2hlY2tkb2MsIHRoYXQncyBhbGwu IgogICAobGV0KiAoKGRlZmF1bHQtZGlyZWN0b3J5IChwcm9qZWN0LXJvb3QgcHJvamVjdCkpCi0g ICAgICAgICAobmlja25hbWUgKGZpbGUtbmFtZS1iYXNlIChkaXJlY3RvcnktZmlsZS1uYW1lIGRl ZmF1bHQtZGlyZWN0b3J5KSkpCi0gICAgICAgICAocmVhZGFibGUtbmFtZSAoZm9ybWF0ICJFR0xP VCAoJXMvJXMpIiBuaWNrbmFtZSBtYW5hZ2VkLW1vZGVzKSkKLSAgICAgICAgIGF1dG9zdGFydC1p bmZlcmlvci1wcm9jZXNzCi0gICAgICAgICBzZXJ2ZXItaW5mbwotICAgICAgICAgKGNvbnRhY3Qg KGlmIChmdW5jdGlvbnAgY29udGFjdCkgKGZ1bmNhbGwgY29udGFjdCkgY29udGFjdCkpCi0gICAg ICAgICAoaW5pdGFyZ3MKLSAgICAgICAgICAoY29uZCAoKGtleXdvcmRwIChjYXIgY29udGFjdCkp IGNvbnRhY3QpCi0gICAgICAgICAgICAgICAgKChpbnRlZ2VycCAoY2FkciBjb250YWN0KSkKLSAg ICAgICAgICAgICAgICAgKHNldHEgc2VydmVyLWluZm8gKGxpc3QgKGZvcm1hdCAiJXM6JXMiIChj YXIgY29udGFjdCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoY2FkciBjb250YWN0KSkpKQotICAgICAgICAgICAgICAgICBgKDpwcm9jZXNzICwobGFt YmRhICgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGx5ICMnb3Blbi1uZXR3 b3JrLXN0cmVhbQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkYWJs ZS1uYW1lIG5pbAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FyIGNv bnRhY3QpIChjYWRyIGNvbnRhY3QpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChjZGRyIGNvbnRhY3QpKSkpKQotICAgICAgICAgICAgICAgICgoYW5kIChzdHJpbmdwIChj YXIgY29udGFjdCkpIChtZW1xIDphdXRvcG9ydCBjb250YWN0KSkKLSAgICAgICAgICAgICAgICAg KHNldHEgc2VydmVyLWluZm8gKGxpc3QgIjxpbmZlcmlvciBwcm9jZXNzPiIpKQotICAgICAgICAg ICAgICAgICBgKDpwcm9jZXNzICwobGFtYmRhICgpCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHBjYXNlLWxldCAoKGAoLGNvbm5lY3Rpb24gLiAsaW5mZXJpb3IpCisgICAgICAgICAg KG5pY2tuYW1lIChmaWxlLW5hbWUtYmFzZSAoZGlyZWN0b3J5LWZpbGUtbmFtZSBkZWZhdWx0LWRp cmVjdG9yeSkpKQorICAgICAgICAgIChyZWFkYWJsZS1uYW1lIChmb3JtYXQgIkVHTE9UICglcy8l cykiIG5pY2tuYW1lIG1hbmFnZWQtbW9kZXMpKQorICAgICAgICAgIGF1dG9zdGFydC1pbmZlcmlv ci1wcm9jZXNzCisgICAgICAgICAgc2VydmVyLWluZm8KKyAgICAgICAgICAoY29udGFjdCAoaWYg KGZ1bmN0aW9ucCBjb250YWN0KSAoZnVuY2FsbCBjb250YWN0KSBjb250YWN0KSkKKyAgICAgICAg ICAoaW5pdGFyZ3MKKyAgICAgICAgICAgIChjb25kICgoa2V5d29yZHAgKGNhciBjb250YWN0KSkg Y29udGFjdCkKKyAgICAgICAgICAgICAgKChpbnRlZ2VycCAoY2FkciBjb250YWN0KSkKKyAgICAg ICAgICAgICAgICAoc2V0cSBzZXJ2ZXItaW5mbyAobGlzdCAoZm9ybWF0ICIlczolcyIgKGNhciBj b250YWN0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhZHIg Y29udGFjdCkpKSkKKyAgICAgICAgICAgICAgICBgKDpwcm9jZXNzICwobGFtYmRhICgpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoYXBwbHkgIydvcGVuLW5ldHdvcmstc3RyZWFtCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRhYmxlLW5hbWUgbmlsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChjYXIgY29udGFjdCkgKGNhZHIgY29udGFjdCkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNkZHIgY29udGFjdCkpKSkpCisgICAgICAg ICAgICAgICgoYW5kIChzdHJpbmdwIChjYXIgY29udGFjdCkpIChtZW1xIDphdXRvcG9ydCBjb250 YWN0KSkKKyAgICAgICAgICAgICAgICAoc2V0cSBzZXJ2ZXItaW5mbyAobGlzdCAiPGluZmVyaW9y IHByb2Nlc3M+IikpCisgICAgICAgICAgICAgICAgYCg6cHJvY2VzcyAsKGxhbWJkYSAoKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBjYXNlLWxldCAoKGAoLGNvbm5lY3Rpb24gLiAs aW5mZXJpb3IpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChl Z2xvdC0taW5mZXJpb3ItYm9vdHN0cmFwCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZWFkYWJsZS1uYW1lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb250YWN0KSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoc2V0cSBhdXRvc3RhcnQtaW5mZXJpb3ItcHJvY2VzcyBpbmZlcmlvcikKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24pKSkpCi0gICAgICAgICAgICAgICAg KChzdHJpbmdwIChjYXIgY29udGFjdCkpCi0gICAgICAgICAgICAgICAgIChsZXQqICgocHJvYmUg KGNsLXBvc2l0aW9uLWlmICMna2V5d29yZHAgY29udGFjdCkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGFibGUtbmFtZQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhY3QpKSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHNldHEgYXV0b3N0YXJ0LWluZmVyaW9yLXByb2Nlc3MgaW5mZXJp b3IpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24pKSkpCisgICAg ICAgICAgICAgICgoc3RyaW5ncCAoY2FyIGNvbnRhY3QpKQorICAgICAgICAgICAgICAgIChsZXQq ICgocHJvYmUgKGNsLXBvc2l0aW9uLWlmICMna2V5d29yZHAgY29udGFjdCkpCiAgICAgICAgICAg ICAgICAgICAgICAgICAobW9yZS1pbml0YXJncyAoYW5kIHByb2JlIChjbC1zdWJzZXEgY29udGFj dCBwcm9iZSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnRhY3QgKGNsLXN1YnNlcSBj b250YWN0IDAgcHJvYmUpKSkKLSAgICAgICAgICAgICAgICAgICBgKDpwcm9jZXNzCisgICAgICAg ICAgICAgICAgICBgKDpwcm9jZXNzCiAgICAgICAgICAgICAgICAgICAgICAsKGxhbWJkYSAoKQog ICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGRlZmF1bHQtZGlyZWN0b3J5IGRlZmF1bHQt ZGlyZWN0b3J5KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1ha2UtcHJvY2VzcwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgOm5hbWUgcmVhZGFibGUtbmFtZQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgOmNvbW1hbmQgKHNldHEgc2VydmVyLWluZm8gKGVnbG90LS1jbWQgY29u dGFjdCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICA6Y29ubmVjdGlvbi10eXBlICdwaXBl Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICA6Y29kaW5nICd1dGYtOC1lbWFjcy11bml4Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICA6bm9xdWVyeSB0Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICA6c3RkZXJyIChnZXQtYnVmZmVyLWNyZWF0ZQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGZvcm1hdCAiKiVzIHN0ZGVycioiIHJlYWRhYmxlLW5hbWUpKQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgOmZpbGUtaGFuZGxlciB0KSkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOm5hbWUgcmVhZGFibGUtbmFtZQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDpjb21tYW5kIChzZXRxIHNlcnZlci1pbmZvIChlZ2xvdC0tY21kIGNvbnRhY3QpKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjb25uZWN0aW9uLXR5cGUgJ3BpcGUKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICA6Y29kaW5nICd1dGYtOC1lbWFjcy11bml4CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOm5vcXVlcnkgdAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDpzdGRlcnIgKGdldC1idWZmZXItY3JlYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChmb3JtYXQgIiolcyBzdGRlcnIqIiByZWFkYWJsZS1uYW1lKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICA6ZmlsZS1oYW5kbGVyIHQpKSkKICAgICAgICAgICAgICAg ICAgICAgICxAbW9yZS1pbml0YXJncykpKSkpCi0gICAgICAgICAoc3ByZWFkIChsYW1iZGEgKGZu KSAobGFtYmRhIChzZXJ2ZXIgbWV0aG9kIHBhcmFtcykKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxldCAoKGVnbG90LS1jYWNoZWQtc2VydmVyIHNlcnZlcikpCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoYXBwbHkgZm4gc2VydmVyIG1ldGhvZCAoYXBwZW5kIHBh cmFtcyBuaWwpKSkpKSkKLSAgICAgICAgIChzZXJ2ZXIKLSAgICAgICAgICAoYXBwbHkKLSAgICAg ICAgICAgIydtYWtlLWluc3RhbmNlIGNsYXNzCi0gICAgICAgICAgIDpuYW1lIHJlYWRhYmxlLW5h bWUKLSAgICAgICAgICAgOmV2ZW50cy1idWZmZXItc2Nyb2xsYmFjay1zaXplIGVnbG90LWV2ZW50 cy1idWZmZXItc2l6ZQotICAgICAgICAgICA6bm90aWZpY2F0aW9uLWRpc3BhdGNoZXIgKGZ1bmNh bGwgc3ByZWFkICMnZWdsb3QtaGFuZGxlLW5vdGlmaWNhdGlvbikKLSAgICAgICAgICAgOnJlcXVl c3QtZGlzcGF0Y2hlciAoZnVuY2FsbCBzcHJlYWQgIydlZ2xvdC1oYW5kbGUtcmVxdWVzdCkKLSAg ICAgICAgICAgOm9uLXNodXRkb3duICMnZWdsb3QtLW9uLXNodXRkb3duCi0gICAgICAgICAgIGlu aXRhcmdzKSkKLSAgICAgICAgIChjYW5jZWxsZWQgbmlsKQotICAgICAgICAgKHRhZyAobWFrZS1z eW1ib2wgImNvbm5lY3RlZC1jYXRjaC10YWciKSkpCisgICAgICAgICAgKHNwcmVhZCAobGFtYmRh IChmbikgKGxhbWJkYSAoc2VydmVyIG1ldGhvZCBwYXJhbXMpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGV0ICgoZWdsb3QtLWNhY2hlZC1zZXJ2ZXIgc2VydmVyKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGx5IGZuIHNlcnZlciBtZXRob2QgKGFw cGVuZCBwYXJhbXMgbmlsKSkpKSkpCisgICAgICAgICAgKHNlcnZlcgorICAgICAgICAgICAgKGFw cGx5CisgICAgICAgICAgICAgICMnbWFrZS1pbnN0YW5jZSBjbGFzcworICAgICAgICAgICAgICA6 bmFtZSByZWFkYWJsZS1uYW1lCisgICAgICAgICAgICAgIDpldmVudHMtYnVmZmVyLXNjcm9sbGJh Y2stc2l6ZSBlZ2xvdC1ldmVudHMtYnVmZmVyLXNpemUKKyAgICAgICAgICAgICAgOm5vdGlmaWNh dGlvbi1kaXNwYXRjaGVyIChmdW5jYWxsIHNwcmVhZCAjJ2VnbG90LWhhbmRsZS1ub3RpZmljYXRp b24pCisgICAgICAgICAgICAgIDpyZXF1ZXN0LWRpc3BhdGNoZXIgKGZ1bmNhbGwgc3ByZWFkICMn ZWdsb3QtaGFuZGxlLXJlcXVlc3QpCisgICAgICAgICAgICAgIDpvbi1zaHV0ZG93biAjJ2VnbG90 LS1vbi1zaHV0ZG93bgorICAgICAgICAgICAgICBpbml0YXJncykpCisgICAgICAgICAgKGNhbmNl bGxlZCBuaWwpCisgICAgICAgICAgKHRhZyAobWFrZS1zeW1ib2wgImNvbm5lY3RlZC1jYXRjaC10 YWciKSkpCiAgICAgKHdoZW4gc2VydmVyLWluZm8KICAgICAgIChqc29ucnBjLS1kZWJ1ZyBzZXJ2 ZXIgIlJ1bm5pbmcgbGFuZ3VhZ2Ugc2VydmVyOiAlcyIKLSAgICAgICAgICAgICAgICAgICAgICAo c3RyaW5nLWpvaW4gc2VydmVyLWluZm8gIiAiKSkpCisgICAgICAgIChzdHJpbmctam9pbiBzZXJ2 ZXItaW5mbyAiICIpKSkKICAgICAoc2V0ZiAoZWdsb3QtLXNhdmVkLWluaXRhcmdzIHNlcnZlcikg aW5pdGFyZ3MpCiAgICAgKHNldGYgKGVnbG90LS1wcm9qZWN0IHNlcnZlcikgcHJvamVjdCkKICAg ICAoc2V0ZiAoZWdsb3QtLXByb2plY3Qtbmlja25hbWUgc2VydmVyKSBuaWNrbmFtZSkKQEAgLTEy MzgsOTEgKzEyNDIsOTEgQEAgVGhpcyBkb2NzdHJpbmcgYXBwZWFzZXMgY2hlY2tkb2MsIHRoYXQn cyBhbGwuIgogICAgIDs7IG1heWJlLXN5bmMtbWF5YmUtYXN5bmMgc2VtYW50aWNzIHdlIHVzZSBg anNvbnJwYy1hc3luYy1yZXF1ZXN0JwogICAgIDs7IGFuZCBtaW1pYyBtb3N0IG9mIGBqc29ucnBj LXJlcXVlc3QnLgogICAgICh1bndpbmQtcHJvdGVjdAotICAgICAgICAoY29uZGl0aW9uLWNhc2Ug X3F1aXQKLSAgICAgICAgICAgIChsZXQgKChyZXR2YWwKLSAgICAgICAgICAgICAgICAgICAoY2F0 Y2ggdGFnCi0gICAgICAgICAgICAgICAgICAgICAoanNvbnJwYy1hc3luYy1yZXF1ZXN0Ci0gICAg ICAgICAgICAgICAgICAgICAgc2VydmVyCi0gICAgICAgICAgICAgICAgICAgICAgOmluaXRpYWxp emUKLSAgICAgICAgICAgICAgICAgICAgICAobGlzdCA6cHJvY2Vzc0lkCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHVubGVzcyAob3IgZWdsb3Qtd2l0aGhvbGQtcHJvY2Vzcy1pZAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlLXJlbW90ZS1wIGRlZmF1 bHQtZGlyZWN0b3J5KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChl cSAoanNvbnJwYy1wcm9jZXNzLXR5cGUgc2VydmVyKQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnbmV0d29yaykpCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoZW1hY3MtcGlkKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBNYXliZSB0 dXJuIHRyYW1weSBgL3NzaDpmb29AYmFyOi9wYXRoL3RvL2Jhei5weScKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICA7OyBpbnRvIGAvcGF0aC90by9iYXoucHknLCBzbyBMU1AgZ3Jva3MgaXQu Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgOnJvb3RQYXRoIChmaWxlLWxvY2FsLW5hbWUK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChleHBhbmQtZmlsZS1uYW1l IGRlZmF1bHQtZGlyZWN0b3J5KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICA6cm9vdFVy aSAoZWdsb3QtLXBhdGgtdG8tdXJpIGRlZmF1bHQtZGlyZWN0b3J5KQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDppbml0aWFsaXphdGlvbk9wdGlvbnMgKGVnbG90LWluaXRpYWxpemF0aW9u LW9wdGlvbnMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZXJ2ZXIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNhcGFiaWxpdGllcyAo ZWdsb3QtY2xpZW50LWNhcGFiaWxpdGllcyBzZXJ2ZXIpCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgOndvcmtzcGFjZUZvbGRlcnMgKGVnbG90LXdvcmtzcGFjZS1mb2xkZXJzIHNlcnZlcikp Ci0gICAgICAgICAgICAgICAgICAgICAgOnN1Y2Nlc3MtZm4KLSAgICAgICAgICAgICAgICAgICAg ICAoZWdsb3QtLWxhbWJkYSAoKEluaXRpYWxpemVSZXN1bHQpIGNhcGFiaWxpdGllcyBzZXJ2ZXJJ bmZvKQotICAgICAgICAgICAgICAgICAgICAgICAgKHVubGVzcyBjYW5jZWxsZWQKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgKHB1c2ggc2VydmVyCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChnZXRoYXNoIHByb2plY3QgZWdsb3QtLXNlcnZlcnMtYnktcHJvamVjdCkpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgIChzZXRmIChlZ2xvdC0tY2FwYWJpbGl0aWVzIHNlcnZlcikg Y2FwYWJpbGl0aWVzKQotICAgICAgICAgICAgICAgICAgICAgICAgICAoc2V0ZiAoZWdsb3QtLXNl cnZlci1pbmZvIHNlcnZlcikgc2VydmVySW5mbykKLSAgICAgICAgICAgICAgICAgICAgICAgICAg KGpzb25ycGMtbm90aWZ5IHNlcnZlciA6aW5pdGlhbGl6ZWQgZWdsb3QtLXt9KQotICAgICAgICAg ICAgICAgICAgICAgICAgICAoZG9saXN0IChidWZmZXIgKGJ1ZmZlci1saXN0KSkKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBidWZmZXIKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDs7IE5vIG5lZWQgdG8gcGFzcyBTRVJWRVIgYXMgYW4gYXJn dW1lbnQ6IGl0IGhhcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgYmVlbiByZWdp c3RlcmVkIGluIGBlZ2xvdC0tc2VydmVycy1ieS1wcm9qZWN0JywKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDs7IHNvIHRoYXQgaXQgY2FuIGJlIGZvdW5kIChhbmQgY2FjaGVkKSBmcm9t Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBgZWdsb3QtLW1heWJlLWFjdGl2YXRl LWVkaXRpbmctbW9kZScgaW4gYW55Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBt YW5hZ2VkIGJ1ZmZlci4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlZ2xvdC0tbWF5 YmUtYWN0aXZhdGUtZWRpdGluZy1tb2RlKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChz ZXRmIChlZ2xvdC0taW5oaWJpdC1hdXRvcmVjb25uZWN0IHNlcnZlcikKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGNvbmQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICgoYm9vbGVhbnAgZWdsb3QtYXV0b3JlY29ubmVjdCkKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobm90IGVnbG90LWF1dG9yZWNvbm5lY3QpKQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKChjbC1wbHVzcCBlZ2xvdC1hdXRvcmVjb25uZWN0KQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChydW4td2l0aC10aW1lcgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBlZ2xvdC1hdXRvcmVjb25uZWN0IG5pbAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhICgpCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHNldGYgKGVnbG90LS1pbmhpYml0LWF1dG9yZWNvbm5lY3Qgc2VydmVy KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudWxsIGVnbG90 LWF1dG9yZWNvbm5lY3QpKSkpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChk ZWZhdWx0LWRpcmVjdG9yeSAocHJvamVjdC1yb290IHByb2plY3QpKQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobWFqb3ItbW9kZSAoY2FyIG1hbmFnZWQtbW9kZXMpKSkKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoaGFjay1kaXItbG9jYWwtdmFyaWFibGVzLW5vbi1maWxl LWJ1ZmZlcikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAocnVuLWhvb2std2l0aC1hcmdz ICdlZ2xvdC1jb25uZWN0LWhvb2sgc2VydmVyKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg KGVnbG90LS1tZXNzYWdlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29ubmVjdGVkISBT ZXJ2ZXIgYCVzJyBub3cgbWFuYWdpbmcgYCVzJyBidWZmZXJzIFwKKyAgICAgIChjb25kaXRpb24t Y2FzZSBfcXVpdAorICAgICAgICAobGV0ICgocmV0dmFsCisgICAgICAgICAgICAgICAgKGNhdGNo IHRhZworICAgICAgICAgICAgICAgICAgKGpzb25ycGMtYXN5bmMtcmVxdWVzdAorICAgICAgICAg ICAgICAgICAgICBzZXJ2ZXIKKyAgICAgICAgICAgICAgICAgICAgOmluaXRpYWxpemUKKyAgICAg ICAgICAgICAgICAgICAgKGxpc3QgOnByb2Nlc3NJZAorICAgICAgICAgICAgICAgICAgICAgICh1 bmxlc3MgKG9yIGVnbG90LXdpdGhob2xkLXByb2Nlc3MtaWQKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGZpbGUtcmVtb3RlLXAgZGVmYXVsdC1kaXJlY3RvcnkpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChlcSAoanNvbnJwYy1wcm9jZXNzLXR5cGUgc2VydmVyKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduZXR3b3JrKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgIChlbWFjcy1waWQpKQorICAgICAgICAgICAgICAgICAgICAgIDs7IE1heWJl IHR1cm4gdHJhbXB5IGAvc3NoOmZvb0BiYXI6L3BhdGgvdG8vYmF6LnB5JworICAgICAgICAgICAg ICAgICAgICAgIDs7IGludG8gYC9wYXRoL3RvL2Jhei5weScsIHNvIExTUCBncm9rcyBpdC4KKyAg ICAgICAgICAgICAgICAgICAgICA6cm9vdFBhdGggKGZpbGUtbG9jYWwtbmFtZQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChleHBhbmQtZmlsZS1uYW1lIGRlZmF1bHQtZGlyZWN0 b3J5KSkKKyAgICAgICAgICAgICAgICAgICAgICA6cm9vdFVyaSAoZWdsb3QtLXBhdGgtdG8tdXJp IGRlZmF1bHQtZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgICAgICAgIDppbml0aWFsaXphdGlv bk9wdGlvbnMgKGVnbG90LWluaXRpYWxpemF0aW9uLW9wdGlvbnMKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyKQorICAgICAgICAgICAgICAgICAg ICAgIDpjYXBhYmlsaXRpZXMgKGVnbG90LWNsaWVudC1jYXBhYmlsaXRpZXMgc2VydmVyKQorICAg ICAgICAgICAgICAgICAgICAgIDp3b3Jrc3BhY2VGb2xkZXJzIChlZ2xvdC13b3Jrc3BhY2UtZm9s ZGVycyBzZXJ2ZXIpKQorICAgICAgICAgICAgICAgICAgICA6c3VjY2Vzcy1mbgorICAgICAgICAg ICAgICAgICAgICAoZWdsb3QtLWxhbWJkYSAoKEluaXRpYWxpemVSZXN1bHQpIGNhcGFiaWxpdGll cyBzZXJ2ZXJJbmZvKQorICAgICAgICAgICAgICAgICAgICAgICh1bmxlc3MgY2FuY2VsbGVkCisg ICAgICAgICAgICAgICAgICAgICAgICAocHVzaCBzZXJ2ZXIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgKGdldGhhc2ggcHJvamVjdCBlZ2xvdC0tc2VydmVycy1ieS1wcm9qZWN0KSkKKyAgICAg ICAgICAgICAgICAgICAgICAgIChzZXRmIChlZ2xvdC0tY2FwYWJpbGl0aWVzIHNlcnZlcikgY2Fw YWJpbGl0aWVzKQorICAgICAgICAgICAgICAgICAgICAgICAgKHNldGYgKGVnbG90LS1zZXJ2ZXIt aW5mbyBzZXJ2ZXIpIHNlcnZlckluZm8pCisgICAgICAgICAgICAgICAgICAgICAgICAoanNvbnJw Yy1ub3RpZnkgc2VydmVyIDppbml0aWFsaXplZCBlZ2xvdC0te30pCisgICAgICAgICAgICAgICAg ICAgICAgICAoZG9saXN0IChidWZmZXIgKGJ1ZmZlci1saXN0KSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmZmVyCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOzsgTm8gbmVlZCB0byBwYXNzIFNFUlZFUiBhcyBhbiBhcmd1bWVudDogaXQgaGFz CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgYmVlbiByZWdpc3RlcmVkIGluIGBlZ2xv dC0tc2VydmVycy1ieS1wcm9qZWN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBz byB0aGF0IGl0IGNhbiBiZSBmb3VuZCAoYW5kIGNhY2hlZCkgZnJvbQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDs7IGBlZ2xvdC0tbWF5YmUtYWN0aXZhdGUtZWRpdGluZy1tb2RlJyBpbiBh bnkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBtYW5hZ2VkIGJ1ZmZlci4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoZWdsb3QtLW1heWJlLWFjdGl2YXRlLWVkaXRpbmctbW9k ZSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgKHNldGYgKGVnbG90LS1pbmhpYml0LWF1dG9y ZWNvbm5lY3Qgc2VydmVyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uZAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICgoYm9vbGVhbnAgZWdsb3QtYXV0b3JlY29ubmVjdCkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgZWdsb3QtYXV0b3JlY29ubmVjdCkpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjbC1wbHVzcCBlZ2xvdC1hdXRvcmVjb25uZWN0 KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJ1bi13aXRoLXRpbWVyCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVnbG90LWF1dG9yZWNvbm5lY3QgbmlsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKCkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoc2V0ZiAoZWdsb3QtLWluaGliaXQtYXV0b3JlY29ubmVjdCBzZXJ2ZXIp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobnVsbCBlZ2xvdC1hdXRvcmVj b25uZWN0KSkpKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGRlZmF1bHQtZGly ZWN0b3J5IChwcm9qZWN0LXJvb3QgcHJvamVjdCkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKG1ham9yLW1vZGUgKGNhciBtYW5hZ2VkLW1vZGVzKSkpCisgICAgICAgICAgICAgICAg ICAgICAgICAgIChoYWNrLWRpci1sb2NhbC12YXJpYWJsZXMtbm9uLWZpbGUtYnVmZmVyKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAocnVuLWhvb2std2l0aC1hcmdzICdlZ2xvdC1jb25uZWN0 LWhvb2sgc2VydmVyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChlZ2xvdC0tbWVzc2FnZQor ICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29ubmVjdGVkISBTZXJ2ZXIgYCVzJyBub3cgbWFu YWdpbmcgYCVzJyBidWZmZXJzIFwKIGluIHByb2plY3QgYCVzJy4iCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAob3IgKHBsaXN0LWdldCBzZXJ2ZXJJbmZvIDpuYW1lKQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChqc29ucnBjLW5hbWUgc2VydmVyKSkKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1hbmFnZWQtbW9kZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChl Z2xvdC1wcm9qZWN0LW5pY2tuYW1lIHNlcnZlcikpCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICh3aGVuIHRhZyAodGhyb3cgdGFnIHQpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgOnRpbWVv dXQgZWdsb3QtY29ubmVjdC10aW1lb3V0Ci0gICAgICAgICAgICAgICAgICAgICAgOmVycm9yLWZu IChlZ2xvdC0tbGFtYmRhICgoUmVzcG9uc2VFcnJvcikgY29kZSBtZXNzYWdlKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAob3IgKHBsaXN0LWdldCBzZXJ2ZXJJbmZvIDpuYW1lKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChqc29ucnBjLW5hbWUgc2VydmVyKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgbWFuYWdlZC1tb2RlcworICAgICAgICAgICAgICAgICAgICAgICAgICAo ZWdsb3QtcHJvamVjdC1uaWNrbmFtZSBzZXJ2ZXIpKQorICAgICAgICAgICAgICAgICAgICAgICAg KHdoZW4gdGFnICh0aHJvdyB0YWcgdCkpKSkKKyAgICAgICAgICAgICAgICAgICAgOnRpbWVvdXQg ZWdsb3QtY29ubmVjdC10aW1lb3V0CisgICAgICAgICAgICAgICAgICAgIDplcnJvci1mbiAoZWds b3QtLWxhbWJkYSAoKFJlc3BvbnNlRXJyb3IpIGNvZGUgbWVzc2FnZSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHVubGVzcyBjYW5jZWxsZWQKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoanNvbnJwYy1zaHV0ZG93biBzZXJ2ZXIpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxldCAoKG1zZyAoZm9ybWF0ICIlczogJXMiIGNvZGUgbWVzc2Fn ZSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIHRhZyAodGhyb3cg dGFnIGAoZXJyb3IgLiAsbXNnKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGVnbG90LS1lcnJvciBtc2cpKSkpKQorICAgICAgICAgICAgICAgICAgICA6dGltZW91dC1m biAobGFtYmRhICgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVubGVzcyBj YW5jZWxsZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChqc29ucnBjLXNo dXRkb3duIHNlcnZlcikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQg KChtc2cgKGZvcm1hdCAiJXM6ICVzIiBjb2RlIG1lc3NhZ2UpKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsZXQgKChtc2cgKGZvcm1hdCAiVGltZWQgb3V0IGFmdGVyICVz IHNlY29uZHMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZWdsb3QtY29ubmVjdC10aW1lb3V0KSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChpZiB0YWcgKHRocm93IHRhZyBgKGVycm9yIC4gLG1zZykpCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVnbG90LS1lcnJvciBtc2cpKSkpKQotICAg ICAgICAgICAgICAgICAgICAgIDp0aW1lb3V0LWZuIChsYW1iZGEgKCkKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICh1bmxlc3MgY2FuY2VsbGVkCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChqc29ucnBjLXNodXRkb3duIHNlcnZlcikKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKG1zZyAoZm9ybWF0ICJUaW1lZCBv dXQgYWZ0ZXIgJXMgc2Vjb25kcyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGVnbG90LWNvbm5lY3QtdGltZW91dCkpKQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiB0YWcgKHRocm93IHRhZyBgKGVycm9y IC4gLG1zZykpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWds b3QtLWVycm9yIG1zZykpKSkpKQotICAgICAgICAgICAgICAgICAgICAgKGNvbmQgKChudW1iZXJw IGVnbG90LXN5bmMtY29ubmVjdCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWNjZXB0 LXByb2Nlc3Mtb3V0cHV0IG5pbCBlZ2xvdC1zeW5jLWNvbm5lY3QpKQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGVnbG90LXN5bmMtY29ubmVjdAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICh3aGlsZSB0IChhY2NlcHQtcHJvY2Vzcy1vdXRwdXQKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbmlsIGVnbG90LWNvbm5lY3QtdGltZW91dCkpKSkpKSkKLSAgICAg ICAgICAgICAgKHBjYXNlIHJldHZhbAotICAgICAgICAgICAgICAgIChgKGVycm9yIC4gLG1zZykg KGVnbG90LS1lcnJvciBtc2cpKQotICAgICAgICAgICAgICAgIChgbmlsIChlZ2xvdC0tbWVzc2Fn ZSAiV2FpdGluZyBpbiBiYWNrZ3JvdW5kIGZvciBzZXJ2ZXIgYCVzJyIKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGpzb25ycGMtbmFtZSBzZXJ2ZXIpKQotICAgICAgICAg ICAgICAgICAgICAgIG5pbCkKLSAgICAgICAgICAgICAgICAoXyBzZXJ2ZXIpKSkKLSAgICAgICAg ICAocXVpdCAoanNvbnJwYy1zaHV0ZG93biBzZXJ2ZXIpIChzZXRxIGNhbmNlbGxlZCAncXVpdCkp KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlZ2xvdC0tZXJyb3Ig bXNnKSkpKSkpCisgICAgICAgICAgICAgICAgICAoY29uZCAoKG51bWJlcnAgZWdsb3Qtc3luYy1j b25uZWN0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAoYWNjZXB0LXByb2Nlc3Mtb3V0cHV0 IG5pbCBlZ2xvdC1zeW5jLWNvbm5lY3QpKQorICAgICAgICAgICAgICAgICAgICAoZWdsb3Qtc3lu Yy1jb25uZWN0CisgICAgICAgICAgICAgICAgICAgICAgKHdoaWxlIHQgKGFjY2VwdC1wcm9jZXNz LW91dHB1dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsIGVnbG90LWNvbm5l Y3QtdGltZW91dCkpKSkpKSkKKyAgICAgICAgICAocGNhc2UgcmV0dmFsCisgICAgICAgICAgICAo YChlcnJvciAuICxtc2cpIChlZ2xvdC0tZXJyb3IgbXNnKSkKKyAgICAgICAgICAgIChgbmlsIChl Z2xvdC0tbWVzc2FnZSAiV2FpdGluZyBpbiBiYWNrZ3JvdW5kIGZvciBzZXJ2ZXIgYCVzJyIKKyAg ICAgICAgICAgICAgICAgICAgKGpzb25ycGMtbmFtZSBzZXJ2ZXIpKQorICAgICAgICAgICAgICBu aWwpCisgICAgICAgICAgICAoXyBzZXJ2ZXIpKSkKKyAgICAgICAgKHF1aXQgKGpzb25ycGMtc2h1 dGRvd24gc2VydmVyKSAoc2V0cSBjYW5jZWxsZWQgJ3F1aXQpKSkKICAgICAgIChzZXRxIHRhZyBu aWwpKSkpCiAKIChkZWZ1biBlZ2xvdC0taW5mZXJpb3ItYm9vdHN0cmFwIChuYW1lIGNvbnRhY3Qg Jm9wdGlvbmFsIGNvbm5lY3QtYXJncykKQEAgLTEzMzIsNDcgKzEzMzYsNDcgQEAgTmFtZSBib3Ro IGJhc2VkIG9uIE5BTUUuCiBDT05ORUNULUFSR1MgYXJlIHBhc3NlZCBhcyBhZGRpdGlvbmFsIGFy Z3VtZW50cyB0bwogYG9wZW4tbmV0d29yay1zdHJlYW0nLiIKICAgKGxldCogKChwb3J0LXByb2Jl IChtYWtlLW5ldHdvcmstcHJvY2VzcyA6bmFtZSAiZWdsb3QtcG9ydC1wcm9iZS1kdW1teSIKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6c2VydmVyIHQKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6aG9zdCAibG9jYWxob3N0Igot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpzZXJ2aWNlIDApKQot ICAgICAgICAgKHBvcnQtbnVtYmVyICh1bndpbmQtcHJvdGVjdAotICAgICAgICAgICAgICAgICAg ICAgICAgICAocHJvY2Vzcy1jb250YWN0IHBvcnQtcHJvYmUgOnNlcnZpY2UpCi0gICAgICAgICAg ICAgICAgICAgICAgICAoZGVsZXRlLXByb2Nlc3MgcG9ydC1wcm9iZSkpKQotICAgICAgICAgaW5m ZXJpb3IgY29ubmVjdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgOnNlcnZlciB0CisgICAg ICAgICAgICAgICAgICAgICAgIDpob3N0ICJsb2NhbGhvc3QiCisgICAgICAgICAgICAgICAgICAg ICAgIDpzZXJ2aWNlIDApKQorICAgICAgICAgIChwb3J0LW51bWJlciAodW53aW5kLXByb3RlY3QK KyAgICAgICAgICAgICAgICAgICAgICAgICAocHJvY2Vzcy1jb250YWN0IHBvcnQtcHJvYmUgOnNl cnZpY2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgKGRlbGV0ZS1wcm9jZXNzIHBvcnQtcHJv YmUpKSkKKyAgICAgICAgICBpbmZlcmlvciBjb25uZWN0aW9uKQogICAgICh1bndpbmQtcHJvdGVj dAotICAgICAgICAocHJvZ24KLSAgICAgICAgICAoc2V0cSBpbmZlcmlvcgotICAgICAgICAgICAg ICAgIChtYWtlLXByb2Nlc3MKLSAgICAgICAgICAgICAgICAgOm5hbWUgKGZvcm1hdCAiYXV0b3N0 YXJ0LWluZmVyaW9yLSVzIiBuYW1lKQotICAgICAgICAgICAgICAgICA6c3RkZXJyIChmb3JtYXQg IiolcyBzdGRlcnIqIiBuYW1lKQotICAgICAgICAgICAgICAgICA6bm9xdWVyeSB0Ci0gICAgICAg ICAgICAgICAgIDpjb21tYW5kIChjbC1zdWJzdAotICAgICAgICAgICAgICAgICAgICAgICAgICAg KGZvcm1hdCAiJXMiIHBvcnQtbnVtYmVyKSA6YXV0b3BvcnQgY29udGFjdCkpKQotICAgICAgICAg IChzZXRxIGNvbm5lY3Rpb24KLSAgICAgICAgICAgICAgICAoY2wtbG9vcAotICAgICAgICAgICAg ICAgICByZXBlYXQgMTAgZm9yIGkgZnJvbSAxCi0gICAgICAgICAgICAgICAgIGRvIChhY2NlcHQt cHJvY2Vzcy1vdXRwdXQgbmlsIDAuNSkKLSAgICAgICAgICAgICAgICAgd2hpbGUgKHByb2Nlc3Mt bGl2ZS1wIGluZmVyaW9yKQotICAgICAgICAgICAgICAgICBkbyAoZWdsb3QtLW1lc3NhZ2UKLSAg ICAgICAgICAgICAgICAgICAgICJUcnlpbmcgdG8gY29ubmVjdCB0byBsb2NhbGhvc3QgYW5kIHBv cnQgJXMgKGF0dGVtcHQgJXMpIgotICAgICAgICAgICAgICAgICAgICAgcG9ydC1udW1iZXIgaSkK LSAgICAgICAgICAgICAgICAgdGhlcmVpcyAoaWdub3JlLWVycm9ycwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGFwcGx5ICMnb3Blbi1uZXR3b3JrLXN0cmVhbQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChmb3JtYXQgImF1dG9jb25uZWN0LSVzIiBuYW1lKQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pbAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJsb2NhbGhvc3QiIHBvcnQtbnVtYmVyIGNvbm5lY3QtYXJncykpKSkKLSAgICAg ICAgICAoY29ucyBjb25uZWN0aW9uIGluZmVyaW9yKSkKKyAgICAgIChwcm9nbgorICAgICAgICAo c2V0cSBpbmZlcmlvcgorICAgICAgICAgIChtYWtlLXByb2Nlc3MKKyAgICAgICAgICAgIDpuYW1l IChmb3JtYXQgImF1dG9zdGFydC1pbmZlcmlvci0lcyIgbmFtZSkKKyAgICAgICAgICAgIDpzdGRl cnIgKGZvcm1hdCAiKiVzIHN0ZGVycioiIG5hbWUpCisgICAgICAgICAgICA6bm9xdWVyeSB0Cisg ICAgICAgICAgICA6Y29tbWFuZCAoY2wtc3Vic3QKKyAgICAgICAgICAgICAgICAgICAgICAgKGZv cm1hdCAiJXMiIHBvcnQtbnVtYmVyKSA6YXV0b3BvcnQgY29udGFjdCkpKQorICAgICAgICAoc2V0 cSBjb25uZWN0aW9uCisgICAgICAgICAgKGNsLWxvb3AKKyAgICAgICAgICAgIHJlcGVhdCAxMCBm b3IgaSBmcm9tIDEKKyAgICAgICAgICAgIGRvIChhY2NlcHQtcHJvY2Vzcy1vdXRwdXQgbmlsIDAu NSkKKyAgICAgICAgICAgIHdoaWxlIChwcm9jZXNzLWxpdmUtcCBpbmZlcmlvcikKKyAgICAgICAg ICAgIGRvIChlZ2xvdC0tbWVzc2FnZQorICAgICAgICAgICAgICAgICAiVHJ5aW5nIHRvIGNvbm5l Y3QgdG8gbG9jYWxob3N0IGFuZCBwb3J0ICVzIChhdHRlbXB0ICVzKSIKKyAgICAgICAgICAgICAg ICAgcG9ydC1udW1iZXIgaSkKKyAgICAgICAgICAgIHRoZXJlaXMgKGlnbm9yZS1lcnJvcnMKKyAg ICAgICAgICAgICAgICAgICAgICAoYXBwbHkgIydvcGVuLW5ldHdvcmstc3RyZWFtCisgICAgICAg ICAgICAgICAgICAgICAgICAoZm9ybWF0ICJhdXRvY29ubmVjdC0lcyIgbmFtZSkKKyAgICAgICAg ICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAgICAgICAgICAgImxvY2FsaG9zdCIg cG9ydC1udW1iZXIgY29ubmVjdC1hcmdzKSkpKQorICAgICAgICAoY29ucyBjb25uZWN0aW9uIGlu ZmVyaW9yKSkKICAgICAgIChjb25kICgoYW5kIChwcm9jZXNzLWxpdmUtcCBjb25uZWN0aW9uKQot ICAgICAgICAgICAgICAgICAgKHByb2Nlc3MtbGl2ZS1wIGluZmVyaW9yKSkKLSAgICAgICAgICAg ICAoZWdsb3QtLW1lc3NhZ2UgIkRvbmUsIGNvbm5lY3RlZCB0byAlcyEiIHBvcnQtbnVtYmVyKSkK LSAgICAgICAgICAgICh0Ci0gICAgICAgICAgICAgKHdoZW4gaW5mZXJpb3IgKGRlbGV0ZS1wcm9j ZXNzIGluZmVyaW9yKSkKLSAgICAgICAgICAgICAod2hlbiBjb25uZWN0aW9uIChkZWxldGUtcHJv Y2VzcyBjb25uZWN0aW9uKSkKLSAgICAgICAgICAgICAoZWdsb3QtLWVycm9yICJDb3VsZCBub3Qg c3RhcnQgYW5kIGNvbm5lY3QgdG8gc2VydmVyJXMiCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAoaWYgaW5mZXJpb3IKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICIg c3RhcnRlZCB3aXRoICVzIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHByb2Nlc3MtY29tbWFuZCBpbmZlcmlvcikpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIhIikpKSkpKSkKKyAgICAgICAgICAgICAgIChwcm9jZXNzLWxpdmUtcCBpbmZlcmlvcikpCisg ICAgICAgICAgICAgIChlZ2xvdC0tbWVzc2FnZSAiRG9uZSwgY29ubmVjdGVkIHRvICVzISIgcG9y dC1udW1iZXIpKQorICAgICAgICAodAorICAgICAgICAgICh3aGVuIGluZmVyaW9yIChkZWxldGUt cHJvY2VzcyBpbmZlcmlvcikpCisgICAgICAgICAgKHdoZW4gY29ubmVjdGlvbiAoZGVsZXRlLXBy b2Nlc3MgY29ubmVjdGlvbikpCisgICAgICAgICAgKGVnbG90LS1lcnJvciAiQ291bGQgbm90IHN0 YXJ0IGFuZCBjb25uZWN0IHRvIHNlcnZlciVzIgorICAgICAgICAgICAgKGlmIGluZmVyaW9yCisg ICAgICAgICAgICAgIChmb3JtYXQgIiBzdGFydGVkIHdpdGggJXMiCisgICAgICAgICAgICAgICAg KHByb2Nlc3MtY29tbWFuZCBpbmZlcmlvcikpCisgICAgICAgICAgICAgICIhIikpKSkpKSkKIAog DAogOzs7IEhlbHBlcnMgKG1vdmUgdGhlc2UgdG8gQVBJPykKQEAgLTE0MDcsMTcgKzE0MTEsMTcg QEAgZnVsbHkgTFNQLWNvbXBsaWFudCBzZXJ2ZXJzLCB0aGlzIHNob3VsZCBiZSBzZXQgdG8KICAg IkNhbGN1bGF0ZSBjdXJyZW50IENPTFVNTiBhcyBkZWZpbmVkIGJ5IHRoZSBMU1Agc3BlYy4KIExC UCBkZWZhdWx0cyB0byBgbGluZS1iZWdpbm5pbmctcG9zaXRpb24nLiIKICAgKC8gKC0gKGxlbmd0 aCAoZW5jb2RlLWNvZGluZy1yZWdpb24gKG9yIGxicCAobGluZS1iZWdpbm5pbmctcG9zaXRpb24p KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBGaXggZ2l0aHViIzg2 MAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWluIChwb2ludCkgKHBv aW50LW1heCkpICd1dGYtMTYgdCkpCi0gICAgICAgIDIpCi0gICAgIDIpKQorICAgICAgICAgICAg ICAgICAgOzsgRml4IGdpdGh1YiM4NjAKKyAgICAgICAgICAgICAgICAgIChtaW4gKHBvaW50KSAo cG9pbnQtbWF4KSkgJ3V0Zi0xNiB0KSkKKyAgICAgICAyKQorICAgIDIpKQogCiAoZGVmdW4gZWds b3QtLXBvcy10by1sc3AtcG9zaXRpb24gKCZvcHRpb25hbCBwb3MpCiAgICJDb252ZXJ0IHBvaW50 IFBPUyB0byBMU1AgcG9zaXRpb24uIgogICAoZWdsb3QtLXdpZGVuaW5nCi0gICAobGlzdCA6bGlu ZSAoMS0gKGxpbmUtbnVtYmVyLWF0LXBvcyBwb3MgdCkpIDsgRiFAJiMkQ0tJTkcgT0ZGLUJZLU9O RQotICAgICAgICAgOmNoYXJhY3RlciAocHJvZ24gKHdoZW4gcG9zIChnb3RvLWNoYXIgcG9zKSkK LSAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIGVnbG90LWN1cnJlbnQtY29sdW1u LWZ1bmN0aW9uKSkpKSkKKyAgICAobGlzdCA6bGluZSAoMS0gKGxpbmUtbnVtYmVyLWF0LXBvcyBw b3MgdCkpIDsgRiFAJiMkQ0tJTkcgT0ZGLUJZLU9ORQorICAgICAgOmNoYXJhY3RlciAocHJvZ24g KHdoZW4gcG9zIChnb3RvLWNoYXIgcG9zKSkKKyAgICAgICAgICAgICAgICAgICAoZnVuY2FsbCBl Z2xvdC1jdXJyZW50LWNvbHVtbi1mdW5jdGlvbikpKSkpCiAKIChkZWZ2YXIgZWdsb3QtbW92ZS10 by1jb2x1bW4tZnVuY3Rpb24gIydlZ2xvdC1tb3ZlLXRvLWxzcC1hYmlkaW5nLWNvbHVtbgogICAi RnVuY3Rpb24gdG8gbW92ZSB0byBhIGNvbHVtbiByZXBvcnRlZCBieSB0aGUgTFNQIHNlcnZlci4K QEAgLTE0MzksMjIgKzE0NDMsMjIgQEAgYmUgc2V0IHRvIGBlZ2xvdC1tb3ZlLXRvLWxzcC1hYmlk aW5nLWNvbHVtbicgKHRoZSBkZWZhdWx0KSwgYW5kCiAgIDs7IGB3aGl0ZXNwYWNlLW1vZGUnLCBg cHJldHRpZnktc3ltYm9scy1tb2RlJywgZXRjLiAgKGdpdGh1YiMyOTYsCiAgIDs7IGdpdGh1YiMy OTcpCiAgIChnb3RvLWNoYXIgKG1pbiAoKyAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pIGNvbHVt bikKLSAgICAgICAgICAgICAgICAgIChsaW5lLWVuZC1wb3NpdGlvbikpKSkKKyAgICAgICAgICAg ICAgIChsaW5lLWVuZC1wb3NpdGlvbikpKSkKIAogKGRlZnVuIGVnbG90LW1vdmUtdG8tbHNwLWFi aWRpbmctY29sdW1uIChjb2x1bW4pCiAgICJNb3ZlIHRvIENPTFVNTiBhYmlkaW5nIGJ5IHRoZSBM U1Agc3BlYy4iCiAgIChzYXZlLXJlc3RyaWN0aW9uCiAgICAgKGNsLWxvb3AKLSAgICAgd2l0aCBs YnAgPSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pCi0gICAgIGluaXRpYWxseQotICAgICAobmFy cm93LXRvLXJlZ2lvbiBsYnAgKGxpbmUtZW5kLXBvc2l0aW9uKSkKLSAgICAgKG1vdmUtdG8tY29s dW1uIGNvbHVtbikKLSAgICAgZm9yIGRpZmYgPSAoLSBjb2x1bW4KKyAgICAgIHdpdGggbGJwID0g KGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKQorICAgICAgaW5pdGlhbGx5CisgICAgICAobmFycm93 LXRvLXJlZ2lvbiBsYnAgKGxpbmUtZW5kLXBvc2l0aW9uKSkKKyAgICAgIChtb3ZlLXRvLWNvbHVt biBjb2x1bW4pCisgICAgICBmb3IgZGlmZiA9ICgtIGNvbHVtbgogICAgICAgICAgICAgICAgICAg IChlZ2xvdC1sc3AtYWJpZGluZy1jb2x1bW4gbGJwKSkKLSAgICAgdW50aWwgKHplcm9wIGRpZmYp Ci0gICAgIGRvIChjb25kaXRpb24tY2FzZSBlb2ItZXJyCi0gICAgICAgICAgICAoZm9yd2FyZC1j aGFyICgvIChpZiAoPiBkaWZmIDApICgxKyBkaWZmKSAoMS0gZGlmZikpIDIpKQotICAgICAgICAg IChlbmQtb2YtYnVmZmVyIChjbC1yZXR1cm4gZW9iLWVycikpKSkpKQorICAgICAgdW50aWwgKHpl cm9wIGRpZmYpCisgICAgICBkbyAoY29uZGl0aW9uLWNhc2UgZW9iLWVycgorICAgICAgICAgICAo Zm9yd2FyZC1jaGFyICgvIChpZiAoPiBkaWZmIDApICgxKyBkaWZmKSAoMS0gZGlmZikpIDIpKQor ICAgICAgICAgICAoZW5kLW9mLWJ1ZmZlciAoY2wtcmV0dXJuIGVvYi1lcnIpKSkpKSkKIAogKGRl ZnVuIGVnbG90LS1sc3AtcG9zaXRpb24tdG8tcG9pbnQgKHBvcy1wbGlzdCAmb3B0aW9uYWwgbWFy a2VyKQogICAiQ29udmVydCBMU1AgcG9zaXRpb24gUE9TLVBMSVNUIHRvIEVtYWNzIHBvaW50LgpA QCAtMTQ2NCwxNCArMTQ2OCwxNCBAQCBJZiBvcHRpb25hbCBNQVJLRVIsIHJldHVybiBhIG1hcmtl ciBpbnN0ZWFkIgogICAgICAgKHdpZGVuKQogICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkK ICAgICAgIChmb3J3YXJkLWxpbmUgKG1pbiBtb3N0LXBvc2l0aXZlLWZpeG51bQotICAgICAgICAg ICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgcG9zLXBsaXN0IDpsaW5lKSkpCisgICAgICAgICAg ICAgICAgICAgICAgKHBsaXN0LWdldCBwb3MtcGxpc3QgOmxpbmUpKSkKICAgICAgICh1bmxlc3Mg KGVvYnApIDs7IGlmIGxpbmUgd2FzIGV4Y2Vzc2l2ZSBsZWF2ZSBwb2ludCBhdCBlb2IKICAgICAg ICAgKGxldCAoKHRhYi13aWR0aCAxKQotICAgICAgICAgICAgICAoY29sIChwbGlzdC1nZXQgcG9z LXBsaXN0IDpjaGFyYWN0ZXIpKSkKKyAgICAgICAgICAgICAgIChjb2wgKHBsaXN0LWdldCBwb3Mt cGxpc3QgOmNoYXJhY3RlcikpKQogICAgICAgICAgICh1bmxlc3MgKHdob2xlbnVtcCBjb2wpCiAg ICAgICAgICAgICAoZWdsb3QtLXdhcm4KLSAgICAgICAgICAgICAiQ2F1dGlvbjogTFNQIHNlcnZl ciBzZW50IGludmFsaWQgY2hhcmFjdGVyIHBvc2l0aW9uICVzLiBVc2luZyAwIGluc3RlYWQuIgot ICAgICAgICAgICAgIGNvbCkKKyAgICAgICAgICAgICAgIkNhdXRpb246IExTUCBzZXJ2ZXIgc2Vu dCBpbnZhbGlkIGNoYXJhY3RlciBwb3NpdGlvbiAlcy4gVXNpbmcgMCBpbnN0ZWFkLiIKKyAgICAg ICAgICAgICAgY29sKQogICAgICAgICAgICAgKHNldHEgY29sIDApKQogICAgICAgICAgIChmdW5j YWxsIGVnbG90LW1vdmUtdG8tY29sdW1uLWZ1bmN0aW9uIGNvbCkpKQogICAgICAgKGlmIG1hcmtl ciAoY29weS1tYXJrZXIgKHBvaW50LW1hcmtlcikpIChwb2ludCkpKSkpCkBAIC0xNDg2LDUwICsx NDkwLDUwIEBAIElmIG9wdGlvbmFsIE1BUktFUiwgcmV0dXJuIGEgbWFya2VyIGluc3RlYWQiCiAg ICJVUklmeSBQQVRILiIKICAgKGxldCAoKHRydWVwYXRoIChmaWxlLXRydWVuYW1lIHBhdGgpKSkK ICAgICAoY29uY2F0ICJmaWxlOi8vIgotICAgICAgICAgICAgOzsgQWRkIGEgbGVhZGluZyAiLyIg Zm9yIGxvY2FsIE1TIFdpbmRvd3Mtc3R5bGUgcGF0aHMuCi0gICAgICAgICAgICAoaWYgKGFuZCAo ZXEgc3lzdGVtLXR5cGUgJ3dpbmRvd3MtbnQpCi0gICAgICAgICAgICAgICAgICAgICAobm90IChm aWxlLXJlbW90ZS1wIHRydWVwYXRoKSkpCi0gICAgICAgICAgICAgICAgIi8iKQotICAgICAgICAg ICAgKHVybC1oZXhpZnktc3RyaW5nCi0gICAgICAgICAgICAgOzsgQWdhaW4gd2F0Y2ggb3V0IGZv ciB0cmFtcHkgcGF0aHMuCi0gICAgICAgICAgICAgKGRpcmVjdG9yeS1maWxlLW5hbWUgKGZpbGUt bG9jYWwtbmFtZSB0cnVlcGF0aCkpCi0gICAgICAgICAgICAgZWdsb3QtLXVyaS1wYXRoLWFsbG93 ZWQtY2hhcnMpKSkpCisgICAgICA7OyBBZGQgYSBsZWFkaW5nICIvIiBmb3IgbG9jYWwgTVMgV2lu ZG93cy1zdHlsZSBwYXRocy4KKyAgICAgIChpZiAoYW5kIChlcSBzeXN0ZW0tdHlwZSAnd2luZG93 cy1udCkKKyAgICAgICAgICAgIChub3QgKGZpbGUtcmVtb3RlLXAgdHJ1ZXBhdGgpKSkKKyAgICAg ICAgIi8iKQorICAgICAgKHVybC1oZXhpZnktc3RyaW5nCisgICAgICAgIDs7IEFnYWluIHdhdGNo IG91dCBmb3IgdHJhbXB5IHBhdGhzLgorICAgICAgICAoZGlyZWN0b3J5LWZpbGUtbmFtZSAoZmls ZS1sb2NhbC1uYW1lIHRydWVwYXRoKSkKKyAgICAgICAgZWdsb3QtLXVyaS1wYXRoLWFsbG93ZWQt Y2hhcnMpKSkpCiAKIChkZWZ1biBlZ2xvdC0tdXJpLXRvLXBhdGggKHVyaSkKICAgIkNvbnZlcnQg VVJJIHRvIGZpbGUgcGF0aCwgaGVscGVkIGJ5IGBlZ2xvdC0tY3VycmVudC1zZXJ2ZXInLiIKICAg KHdoZW4gKGtleXdvcmRwIHVyaSkgKHNldHEgdXJpIChzdWJzdHJpbmcgKHN5bWJvbC1uYW1lIHVy aSkgMSkpKQogICAobGV0KiAoKHNlcnZlciAoZWdsb3QtY3VycmVudC1zZXJ2ZXIpKQotICAgICAg ICAgKHJlbW90ZS1wcmVmaXggKGFuZCBzZXJ2ZXIgKGVnbG90LS10cmFtcGlzaC1wIHNlcnZlcikp KQotICAgICAgICAgKHJldHZhbCAodXJsLXVuaGV4LXN0cmluZyAodXJsLWZpbGVuYW1lICh1cmwt Z2VuZXJpYy1wYXJzZS11cmwgdXJpKSkpKQotICAgICAgICAgOzsgUmVtb3ZlIHRoZSBsZWFkaW5n ICIvIiBmb3IgbG9jYWwgTVMgV2luZG93cy1zdHlsZSBwYXRocy4KLSAgICAgICAgIChub3JtYWxp emVkIChpZiAoYW5kIChub3QgcmVtb3RlLXByZWZpeCkKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChlcSBzeXN0ZW0tdHlwZSAnd2luZG93cy1udCkKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChjbC1wbHVzcCAobGVuZ3RoIHJldHZhbCkpKQotICAgICAgICAgICAgICAgICAg ICAgICAgIChzdWJzdHJpbmcgcmV0dmFsIDEpCi0gICAgICAgICAgICAgICAgICAgICAgIHJldHZh bCkpKQorICAgICAgICAgIChyZW1vdGUtcHJlZml4IChhbmQgc2VydmVyIChlZ2xvdC0tdHJhbXBp c2gtcCBzZXJ2ZXIpKSkKKyAgICAgICAgICAocmV0dmFsICh1cmwtdW5oZXgtc3RyaW5nICh1cmwt ZmlsZW5hbWUgKHVybC1nZW5lcmljLXBhcnNlLXVybCB1cmkpKSkpCisgICAgICAgICAgOzsgUmVt b3ZlIHRoZSBsZWFkaW5nICIvIiBmb3IgbG9jYWwgTVMgV2luZG93cy1zdHlsZSBwYXRocy4KKyAg ICAgICAgICAobm9ybWFsaXplZCAoaWYgKGFuZCAobm90IHJlbW90ZS1wcmVmaXgpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGVxIHN5c3RlbS10eXBlICd3aW5kb3dzLW50KQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChjbC1wbHVzcCAobGVuZ3RoIHJldHZhbCkpKQorICAgICAg ICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyByZXR2YWwgMSkKKyAgICAgICAgICAgICAgICAg ICAgICAgIHJldHZhbCkpKQogICAgIChjb25jYXQgcmVtb3RlLXByZWZpeCBub3JtYWxpemVkKSkp CiAKIChkZWZ1biBlZ2xvdC0tc25pcHBldC1leHBhbnNpb24tZm4gKCkKICAgIkNvbXB1dGUgYSBm dW5jdGlvbiB0byBleHBhbmQgc25pcHBldHMuCiBEb3VibGVzIGFzIGFuIGluZGljYXRvciBvZiBz bmlwcGV0IHN1cHBvcnQuIgogICAoYW5kIChib3VuZHAgJ3lhcy1taW5vci1tb2RlKQotICAgICAg IChzeW1ib2wtdmFsdWUgJ3lhcy1taW5vci1tb2RlKQotICAgICAgICd5YXMtZXhwYW5kLXNuaXBw ZXQpKQorICAgIChzeW1ib2wtdmFsdWUgJ3lhcy1taW5vci1tb2RlKQorICAgICd5YXMtZXhwYW5k LXNuaXBwZXQpKQogCiAoZGVmdW4gZWdsb3QtLWZvcm1hdC1tYXJrdXAgKG1hcmt1cCkKICAgIkZv cm1hdCBNQVJLVVAgYWNjb3JkaW5nIHRvIExTUCdzIHNwZWMuIgogICAocGNhc2UtbGV0ICgoYCgs c3RyaW5nICxtb2RlKQotICAgICAgICAgICAgICAgKGlmIChzdHJpbmdwIG1hcmt1cCkgKGxpc3Qg bWFya3VwICdnZm0tdmlldy1tb2RlKQotICAgICAgICAgICAgICAgICAobGlzdCAocGxpc3QtZ2V0 IG1hcmt1cCA6dmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgIChwY2FzZSAocGxpc3QtZ2V0 IG1hcmt1cCA6a2luZCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAoIm1hcmtkb3duIiAnZ2Zt LXZpZXctbW9kZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAoInBsYWludGV4dCIgJ3RleHQt bW9kZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAoXyBtYWpvci1tb2RlKSkpKSkpCisgICAg ICAgICAgICAgICAgKGlmIChzdHJpbmdwIG1hcmt1cCkgKGxpc3QgbWFya3VwICdnZm0tdmlldy1t b2RlKQorICAgICAgICAgICAgICAgICAgKGxpc3QgKHBsaXN0LWdldCBtYXJrdXAgOnZhbHVlKQor ICAgICAgICAgICAgICAgICAgICAocGNhc2UgKHBsaXN0LWdldCBtYXJrdXAgOmtpbmQpCisgICAg ICAgICAgICAgICAgICAgICAgKCJtYXJrZG93biIgJ2dmbS12aWV3LW1vZGUpCisgICAgICAgICAg ICAgICAgICAgICAgKCJwbGFpbnRleHQiICd0ZXh0LW1vZGUpCisgICAgICAgICAgICAgICAgICAg ICAgKF8gbWFqb3ItbW9kZSkpKSkpKQogICAgICh3aXRoLXRlbXAtYnVmZmVyCiAgICAgICAoc2V0 cS1sb2NhbCBtYXJrZG93bi1mb250aWZ5LWNvZGUtYmxvY2tzLW5hdGl2ZWx5IHQpCiAgICAgICAo aW5zZXJ0IHN0cmluZykKICAgICAgIChsZXQgKChpbmhpYml0LW1lc3NhZ2UgdCkKLQkgICAgKG1l c3NhZ2UtbG9nLW1heCBuaWwpKQorCSAgICAgICAgICAgKG1lc3NhZ2UtbG9nLW1heCBuaWwpKQog ICAgICAgICAoaWdub3JlLWVycm9ycyAoZGVsYXktbW9kZS1ob29rcyAoZnVuY2FsbCBtb2RlKSkp KQogICAgICAgKGZvbnQtbG9jay1lbnN1cmUpCiAgICAgICAoc3RyaW5nLXRyaW0gKGJ1ZmZlci1z dHJpbmcpKSkpKQpAQCAtMTU0Myw0OSArMTU0Nyw1MCBAQCBZb3UgY291bGQgYWRkLCBmb3IgaW5z dGFuY2UsIHRoZSBzeW1ib2wKIGA6ZG9jdW1lbnRIaWdobGlnaHRQcm92aWRlcicgdG8gcHJldmVu dCBhdXRvbWF0aWMgaGlnaGxpZ2h0aW5nCiB1bmRlciBjdXJzb3IuIgogICA6dHlwZSAnKHNldAot ICAgICAgICAgIDp0YWcgIlRpY2sgdGhlIG9uZXMgeW91J3JlIG5vdCBpbnRlcmVzdGVkIGluIgot ICAgICAgICAgIChjb25zdCA6dGFnICJEb2N1bWVudGF0aW9uIG9uIGhvdmVyIiA6aG92ZXJQcm92 aWRlcikKLSAgICAgICAgICAoY29uc3QgOnRhZyAiQ29kZSBjb21wbGV0aW9uIiA6Y29tcGxldGlv blByb3ZpZGVyKQotICAgICAgICAgIChjb25zdCA6dGFnICJGdW5jdGlvbiBzaWduYXR1cmUgaGVs cCIgOnNpZ25hdHVyZUhlbHBQcm92aWRlcikKLSAgICAgICAgICAoY29uc3QgOnRhZyAiR28gdG8g ZGVmaW5pdGlvbiIgOmRlZmluaXRpb25Qcm92aWRlcikKLSAgICAgICAgICAoY29uc3QgOnRhZyAi R28gdG8gdHlwZSBkZWZpbml0aW9uIiA6dHlwZURlZmluaXRpb25Qcm92aWRlcikKLSAgICAgICAg ICAoY29uc3QgOnRhZyAiR28gdG8gaW1wbGVtZW50YXRpb24iIDppbXBsZW1lbnRhdGlvblByb3Zp ZGVyKQotICAgICAgICAgIChjb25zdCA6dGFnICJHbyB0byBkZWNsYXJhdGlvbiIgOmltcGxlbWVu dGF0aW9uUHJvdmlkZXIpCi0gICAgICAgICAgKGNvbnN0IDp0YWcgIkZpbmQgcmVmZXJlbmNlcyIg OnJlZmVyZW5jZXNQcm92aWRlcikKLSAgICAgICAgICAoY29uc3QgOnRhZyAiSGlnaGxpZ2h0IHN5 bWJvbHMgYXV0b21hdGljYWxseSIgOmRvY3VtZW50SGlnaGxpZ2h0UHJvdmlkZXIpCi0gICAgICAg ICAgKGNvbnN0IDp0YWcgIkxpc3Qgc3ltYm9scyBpbiBidWZmZXIiIDpkb2N1bWVudFN5bWJvbFBy b3ZpZGVyKQotICAgICAgICAgIChjb25zdCA6dGFnICJMaXN0IHN5bWJvbHMgaW4gd29ya3NwYWNl IiA6d29ya3NwYWNlU3ltYm9sUHJvdmlkZXIpCi0gICAgICAgICAgKGNvbnN0IDp0YWcgIkV4ZWN1 dGUgY29kZSBhY3Rpb25zIiA6Y29kZUFjdGlvblByb3ZpZGVyKQotICAgICAgICAgIChjb25zdCA6 dGFnICJDb2RlIGxlbnMiIDpjb2RlTGVuc1Byb3ZpZGVyKQotICAgICAgICAgIChjb25zdCA6dGFn ICJGb3JtYXQgYnVmZmVyIiA6ZG9jdW1lbnRGb3JtYXR0aW5nUHJvdmlkZXIpCi0gICAgICAgICAg KGNvbnN0IDp0YWcgIkZvcm1hdCBwb3J0aW9uIG9mIGJ1ZmZlciIgOmRvY3VtZW50UmFuZ2VGb3Jt YXR0aW5nUHJvdmlkZXIpCi0gICAgICAgICAgKGNvbnN0IDp0YWcgIk9uLXR5cGUgZm9ybWF0dGlu ZyIgOmRvY3VtZW50T25UeXBlRm9ybWF0dGluZ1Byb3ZpZGVyKQotICAgICAgICAgIChjb25zdCA6 dGFnICJSZW5hbWUgc3ltYm9sIiA6cmVuYW1lUHJvdmlkZXIpCi0gICAgICAgICAgKGNvbnN0IDp0 YWcgIkhpZ2hsaWdodCBsaW5rcyBpbiBkb2N1bWVudCIgOmRvY3VtZW50TGlua1Byb3ZpZGVyKQot ICAgICAgICAgIChjb25zdCA6dGFnICJEZWNvcmF0ZSBjb2xvciByZWZlcmVuY2VzIiA6Y29sb3JQ cm92aWRlcikKLSAgICAgICAgICAoY29uc3QgOnRhZyAiRm9sZCByZWdpb25zIG9mIGJ1ZmZlciIg OmZvbGRpbmdSYW5nZVByb3ZpZGVyKQotICAgICAgICAgIChjb25zdCA6dGFnICJFeGVjdXRlIGN1 c3RvbSBjb21tYW5kcyIgOmV4ZWN1dGVDb21tYW5kUHJvdmlkZXIpKSkKKyAgICAgICAgICAgOnRh ZyAiVGljayB0aGUgb25lcyB5b3UncmUgbm90IGludGVyZXN0ZWQgaW4iCisgICAgICAgICAgIChj b25zdCA6dGFnICJEb2N1bWVudGF0aW9uIG9uIGhvdmVyIiA6aG92ZXJQcm92aWRlcikKKyAgICAg ICAgICAgKGNvbnN0IDp0YWcgIkNvZGUgY29tcGxldGlvbiIgOmNvbXBsZXRpb25Qcm92aWRlcikK KyAgICAgICAgICAgKGNvbnN0IDp0YWcgIkZ1bmN0aW9uIHNpZ25hdHVyZSBoZWxwIiA6c2lnbmF0 dXJlSGVscFByb3ZpZGVyKQorICAgICAgICAgICAoY29uc3QgOnRhZyAiR28gdG8gZGVmaW5pdGlv biIgOmRlZmluaXRpb25Qcm92aWRlcikKKyAgICAgICAgICAgKGNvbnN0IDp0YWcgIkdvIHRvIHR5 cGUgZGVmaW5pdGlvbiIgOnR5cGVEZWZpbml0aW9uUHJvdmlkZXIpCisgICAgICAgICAgIChjb25z dCA6dGFnICJHbyB0byBpbXBsZW1lbnRhdGlvbiIgOmltcGxlbWVudGF0aW9uUHJvdmlkZXIpCisg ICAgICAgICAgIChjb25zdCA6dGFnICJHbyB0byBkZWNsYXJhdGlvbiIgOmltcGxlbWVudGF0aW9u UHJvdmlkZXIpCisgICAgICAgICAgIChjb25zdCA6dGFnICJGaW5kIHJlZmVyZW5jZXMiIDpyZWZl cmVuY2VzUHJvdmlkZXIpCisgICAgICAgICAgIChjb25zdCA6dGFnICJIaWdobGlnaHQgc3ltYm9s cyBhdXRvbWF0aWNhbGx5IiA6ZG9jdW1lbnRIaWdobGlnaHRQcm92aWRlcikKKyAgICAgICAgICAg KGNvbnN0IDp0YWcgIkxpc3Qgc3ltYm9scyBpbiBidWZmZXIiIDpkb2N1bWVudFN5bWJvbFByb3Zp ZGVyKQorICAgICAgICAgICAoY29uc3QgOnRhZyAiTGlzdCBzeW1ib2xzIGluIHdvcmtzcGFjZSIg OndvcmtzcGFjZVN5bWJvbFByb3ZpZGVyKQorICAgICAgICAgICAoY29uc3QgOnRhZyAiRXhlY3V0 ZSBjb2RlIGFjdGlvbnMiIDpjb2RlQWN0aW9uUHJvdmlkZXIpCisgICAgICAgICAgIChjb25zdCA6 dGFnICJDb2RlIGxlbnMiIDpjb2RlTGVuc1Byb3ZpZGVyKQorICAgICAgICAgICAoY29uc3QgOnRh ZyAiSW5sYXkgSGludCIgOmlubGF5SGludFByb3ZpZGVyKQorICAgICAgICAgICAoY29uc3QgOnRh ZyAiRm9ybWF0IGJ1ZmZlciIgOmRvY3VtZW50Rm9ybWF0dGluZ1Byb3ZpZGVyKQorICAgICAgICAg ICAoY29uc3QgOnRhZyAiRm9ybWF0IHBvcnRpb24gb2YgYnVmZmVyIiA6ZG9jdW1lbnRSYW5nZUZv cm1hdHRpbmdQcm92aWRlcikKKyAgICAgICAgICAgKGNvbnN0IDp0YWcgIk9uLXR5cGUgZm9ybWF0 dGluZyIgOmRvY3VtZW50T25UeXBlRm9ybWF0dGluZ1Byb3ZpZGVyKQorICAgICAgICAgICAoY29u c3QgOnRhZyAiUmVuYW1lIHN5bWJvbCIgOnJlbmFtZVByb3ZpZGVyKQorICAgICAgICAgICAoY29u c3QgOnRhZyAiSGlnaGxpZ2h0IGxpbmtzIGluIGRvY3VtZW50IiA6ZG9jdW1lbnRMaW5rUHJvdmlk ZXIpCisgICAgICAgICAgIChjb25zdCA6dGFnICJEZWNvcmF0ZSBjb2xvciByZWZlcmVuY2VzIiA6 Y29sb3JQcm92aWRlcikKKyAgICAgICAgICAgKGNvbnN0IDp0YWcgIkZvbGQgcmVnaW9ucyBvZiBi dWZmZXIiIDpmb2xkaW5nUmFuZ2VQcm92aWRlcikKKyAgICAgICAgICAgKGNvbnN0IDp0YWcgIkV4 ZWN1dGUgY3VzdG9tIGNvbW1hbmRzIiA6ZXhlY3V0ZUNvbW1hbmRQcm92aWRlcikpKQogCiAoZGVm dW4gZWdsb3QtLXNlcnZlci1jYXBhYmxlICgmcmVzdCBmZWF0cykKICAgIkRldGVybWluZSBpZiBj dXJyZW50IHNlcnZlciBpcyBjYXBhYmxlIG9mIEZFQVRTLiIKICAgKHVubGVzcyAoY2wtc29tZSAo bGFtYmRhIChmZWF0KQogICAgICAgICAgICAgICAgICAgICAgKG1lbXEgZmVhdCBlZ2xvdC1pZ25v cmVkLXNlcnZlci1jYXBhYmlsaXRpZXMpKQotICAgICAgICAgICAgICAgICAgIGZlYXRzKQorICAg ICAgICAgICAgZmVhdHMpCiAgICAgKGNsLWxvb3AgZm9yIGNhcHMgPSAoZWdsb3QtLWNhcGFiaWxp dGllcyAoZWdsb3QtLWN1cnJlbnQtc2VydmVyLW9yLWxvc2UpKQotICAgICAgICAgICAgIHRoZW4g KGNhZHIgcHJvYmUpCi0gICAgICAgICAgICAgZm9yIChmZWF0IC4gbW9yZSkgb24gZmVhdHMKLSAg ICAgICAgICAgICBmb3IgcHJvYmUgPSAocGxpc3QtbWVtYmVyIGNhcHMgZmVhdCkKLSAgICAgICAg ICAgICBpZiAobm90IHByb2JlKSBkbyAoY2wtcmV0dXJuIG5pbCkKLSAgICAgICAgICAgICBpZiAo ZXEgKGNhZHIgcHJvYmUpIDpqc29uLWZhbHNlKSBkbyAoY2wtcmV0dXJuIG5pbCkKLSAgICAgICAg ICAgICBpZiAobm90IChsaXN0cCAoY2FkciBwcm9iZSkpKSBkbyAoY2wtcmV0dXJuIChpZiBtb3Jl IG5pbCAoY2FkciBwcm9iZSkpKQotICAgICAgICAgICAgIGZpbmFsbHkgKGNsLXJldHVybiAob3Ig KGNhZHIgcHJvYmUpIHQpKSkpKQorICAgICAgdGhlbiAoY2FkciBwcm9iZSkKKyAgICAgIGZvciAo ZmVhdCAuIG1vcmUpIG9uIGZlYXRzCisgICAgICBmb3IgcHJvYmUgPSAocGxpc3QtbWVtYmVyIGNh cHMgZmVhdCkKKyAgICAgIGlmIChub3QgcHJvYmUpIGRvIChjbC1yZXR1cm4gbmlsKQorICAgICAg aWYgKGVxIChjYWRyIHByb2JlKSA6anNvbi1mYWxzZSkgZG8gKGNsLXJldHVybiBuaWwpCisgICAg ICBpZiAobm90IChsaXN0cCAoY2FkciBwcm9iZSkpKSBkbyAoY2wtcmV0dXJuIChpZiBtb3JlIG5p bCAoY2FkciBwcm9iZSkpKQorICAgICAgZmluYWxseSAoY2wtcmV0dXJuIChvciAoY2FkciBwcm9i ZSkgdCkpKSkpCiAKIChkZWZ1biBlZ2xvdC0tcmFuZ2UtcmVnaW9uIChyYW5nZSAmb3B0aW9uYWwg bWFya2VycykKICAgIlJldHVybiByZWdpb24gKEJFRyAuIEVORCkgdGhhdCByZXByZXNlbnRzIExT UCBSQU5HRS4KIElmIG9wdGlvbmFsIE1BUktFUlMsIG1ha2UgbWFya2Vycy4iCiAgIChsZXQqICgo c3QgKHBsaXN0LWdldCByYW5nZSA6c3RhcnQpKQotICAgICAgICAgKGJlZyAoZWdsb3QtLWxzcC1w b3NpdGlvbi10by1wb2ludCBzdCBtYXJrZXJzKSkKLSAgICAgICAgIChlbmQgKGVnbG90LS1sc3At cG9zaXRpb24tdG8tcG9pbnQgKHBsaXN0LWdldCByYW5nZSA6ZW5kKSBtYXJrZXJzKSkpCisgICAg ICAgICAgKGJlZyAoZWdsb3QtLWxzcC1wb3NpdGlvbi10by1wb2ludCBzdCBtYXJrZXJzKSkKKyAg ICAgICAgICAoZW5kIChlZ2xvdC0tbHNwLXBvc2l0aW9uLXRvLXBvaW50IChwbGlzdC1nZXQgcmFu Z2UgOmVuZCkgbWFya2VycykpKQogICAgIChjb25zIGJlZyBlbmQpKSkKIAogKGRlZnVuIGVnbG90 LS1yZWFkLXNlcnZlciAocHJvbXB0ICZvcHRpb25hbCBkb250LWlmLWp1c3QtdGhlLW9uZSkKQEAg LTE1OTMsMjYgKzE1OTgsMjYgQEAgSWYgb3B0aW9uYWwgTUFSS0VSUywgbWFrZSBtYXJrZXJzLiIK IElmIERPTlQtSUYtSlVTVC1USEUtT05FIGFuZCB0aGVyZSdzIG9ubHkgb25lIHNlcnZlciwgZG9u J3QgcHJvbXB0CiBhbmQganVzdCByZXR1cm4gaXQuICBQUk9NUFQgc2hvdWxkbid0IGVuZCB3aXRo IGEgcXVlc3Rpb24gbWFyay4iCiAgIChsZXQgKChzZXJ2ZXJzIChjbC1sb29wIGZvciBzZXJ2ZXJz Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGJlaW5nIGhhc2gtdmFsdWVzIG9mIGVnbG90LS1z ZXJ2ZXJzLWJ5LXByb2plY3QKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kIHNlcnZl cnMpKQotICAgICAgICAobmFtZSAobGFtYmRhIChzcnYpCi0gICAgICAgICAgICAgICAgKGZvcm1h dCAiJXMgJXMiIChlZ2xvdC1wcm9qZWN0LW5pY2tuYW1lIHNydikKLSAgICAgICAgICAgICAgICAg ICAgICAgIChlZ2xvdC0tbWFqb3ItbW9kZXMgc3J2KSkpKSkKKyAgICAgICAgICAgICAgICAgICBi ZWluZyBoYXNoLXZhbHVlcyBvZiBlZ2xvdC0tc2VydmVycy1ieS1wcm9qZWN0CisgICAgICAgICAg ICAgICAgICAgYXBwZW5kIHNlcnZlcnMpKQorICAgICAgICAgKG5hbWUgKGxhbWJkYSAoc3J2KQor ICAgICAgICAgICAgICAgICAoZm9ybWF0ICIlcyAlcyIgKGVnbG90LXByb2plY3Qtbmlja25hbWUg c3J2KQorICAgICAgICAgICAgICAgICAgIChlZ2xvdC0tbWFqb3ItbW9kZXMgc3J2KSkpKSkKICAg ICAoY29uZCAoKG51bGwgc2VydmVycykKLSAgICAgICAgICAgKGVnbG90LS1lcnJvciAiTm8gc2Vy dmVycyEiKSkKLSAgICAgICAgICAoKG9yIChjZHIgc2VydmVycykgKG5vdCBkb250LWlmLWp1c3Qt dGhlLW9uZSkpCi0gICAgICAgICAgIChsZXQqICgoZGVmYXVsdCAod2hlbi1sZXQgKChjdXJyZW50 IChlZ2xvdC1jdXJyZW50LXNlcnZlcikpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo ZnVuY2FsbCBuYW1lIGN1cnJlbnQpKSkKLSAgICAgICAgICAgICAgICAgIChyZWFkIChjb21wbGV0 aW5nLXJlYWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgZGVmYXVsdAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICIlcyAoZGVmYXVsdCAlcyk/ICIgcHJvbXB0IGRl ZmF1bHQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IHByb21wdCAiPyAiKSkK LSAgICAgICAgICAgICAgICAgICAgICAgICAobWFwY2FyIG5hbWUgc2VydmVycykKLSAgICAgICAg ICAgICAgICAgICAgICAgICBuaWwgdAotICAgICAgICAgICAgICAgICAgICAgICAgIG5pbCBuaWwK LSAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0KSkpCi0gICAgICAgICAgICAgKGNsLWZp bmQgcmVhZCBzZXJ2ZXJzIDprZXkgbmFtZSA6dGVzdCAjJ2VxdWFsKSkpCi0gICAgICAgICAgKHQg KGNhciBzZXJ2ZXJzKSkpKSkKKyAgICAgICAgICAgIChlZ2xvdC0tZXJyb3IgIk5vIHNlcnZlcnMh IikpCisgICAgICAoKG9yIChjZHIgc2VydmVycykgKG5vdCBkb250LWlmLWp1c3QtdGhlLW9uZSkp CisgICAgICAgIChsZXQqICgoZGVmYXVsdCAod2hlbi1sZXQgKChjdXJyZW50IChlZ2xvdC1jdXJy ZW50LXNlcnZlcikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuY2FsbCBuYW1lIGN1 cnJlbnQpKSkKKyAgICAgICAgICAgICAgICAocmVhZCAoY29tcGxldGluZy1yZWFkCisgICAgICAg ICAgICAgICAgICAgICAgICAoaWYgZGVmYXVsdAorICAgICAgICAgICAgICAgICAgICAgICAgICAo Zm9ybWF0ICIlcyAoZGVmYXVsdCAlcyk/ICIgcHJvbXB0IGRlZmF1bHQpCisgICAgICAgICAgICAg ICAgICAgICAgICAgIChjb25jYXQgcHJvbXB0ICI/ICIpKQorICAgICAgICAgICAgICAgICAgICAg ICAgKG1hcGNhciBuYW1lIHNlcnZlcnMpCisgICAgICAgICAgICAgICAgICAgICAgICBuaWwgdAor ICAgICAgICAgICAgICAgICAgICAgICAgbmlsIG5pbAorICAgICAgICAgICAgICAgICAgICAgICAg ZGVmYXVsdCkpKQorICAgICAgICAgIChjbC1maW5kIHJlYWQgc2VydmVycyA6a2V5IG5hbWUgOnRl c3QgIydlcXVhbCkpKQorICAgICAgKHQgKGNhciBzZXJ2ZXJzKSkpKSkKIAogKGRlZnVuIGVnbG90 LS10cmFtcGlzaC1wIChzZXJ2ZXIpCiAgICJUZWxsIGlmIFNFUlZFUidzIHByb2plY3Qgcm9vdCBp cyBgZmlsZS1yZW1vdGUtcCcuIgpAQCAtMTY2MCw5ICsxNjY1LDkgQEAgRm9yIGV4YW1wbGUsIHRv IGtlZXAgeW91ciBDb21wYW55IGN1c3RvbWl6YXRpb24sIGFkZCB0aGUgc3ltYm9sCiAoZGVmdW4g ZWdsb3QtLXN0YXktb3V0LW9mLXAgKHN5bWJvbCkKICAgIlRlbGwgaWYgRWdsb3Qgc2hvdWxkIHN0 YXkgb2Ygb2YgU1lNQk9MLiIKICAgKGNsLWZpbmQgKHN5bWJvbC1uYW1lIHN5bWJvbCkgZWdsb3Qt c3RheS1vdXQtb2YKLSAgICAgICAgICAgOnRlc3QgKGxhbWJkYSAocyB0aGluZykKLSAgICAgICAg ICAgICAgICAgICAobGV0ICgocmUgKGlmIChzeW1ib2xwIHRoaW5nKSAoc3ltYm9sLW5hbWUgdGhp bmcpIHRoaW5nKSkpCi0gICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoIHJlIHMpKSkp KQorICAgIDp0ZXN0IChsYW1iZGEgKHMgdGhpbmcpCisgICAgICAgICAgICAobGV0ICgocmUgKGlm IChzeW1ib2xwIHRoaW5nKSAoc3ltYm9sLW5hbWUgdGhpbmcpIHRoaW5nKSkpCisgICAgICAgICAg ICAgIChzdHJpbmctbWF0Y2ggcmUgcykpKSkpCiAKIChkZWZtYWNybyBlZ2xvdC0tc2V0cS1zYXZp bmcgKHN5bWJvbCBiaW5kaW5nKQogICBgKHVubGVzcyAob3IgKG5vdCAoYm91bmRwICcsc3ltYm9s KSkgKGVnbG90LS1zdGF5LW91dC1vZi1wICcsc3ltYm9sKSkKQEAgLTE2ODEsNjUgKzE2ODYsNjUg QEAgVXNlIGBlZ2xvdC1tYW5hZ2VkLXAnIHRvIGRldGVybWluZSBpZiBjdXJyZW50IGJ1ZmZlciBp cyBtYW5hZ2VkLiIpCiAgICJNb2RlIGZvciBzb3VyY2UgYnVmZmVycyBtYW5hZ2VkIGJ5IHNvbWUg RWdsb3QgcHJvamVjdC4iCiAgIDppbml0LXZhbHVlIG5pbCA6bGlnaHRlciBuaWwgOmtleW1hcCBl Z2xvdC1tb2RlLW1hcAogICAoY29uZAotICAgKGVnbG90LS1tYW5hZ2VkLW1vZGUKLSAgICAoYWRk LWhvb2sgJ2FmdGVyLWNoYW5nZS1mdW5jdGlvbnMgJ2VnbG90LS1hZnRlci1jaGFuZ2UgbmlsIHQp Ci0gICAgKGFkZC1ob29rICdiZWZvcmUtY2hhbmdlLWZ1bmN0aW9ucyAnZWdsb3QtLWJlZm9yZS1j aGFuZ2UgbmlsIHQpCi0gICAgKGFkZC1ob29rICdraWxsLWJ1ZmZlci1ob29rICMnZWdsb3QtLW1h bmFnZWQtbW9kZS1vZmYgbmlsIHQpCi0gICAgOzsgUHJlcGVuZCAiZGlkQ2xvc2UiIHRvIHRoZSBo b29rIGFmdGVyIHRoZSAibm9ub2ZmIiwgc28gaXQgd2lsbCBydW4gZmlyc3QKLSAgICAoYWRkLWhv b2sgJ2tpbGwtYnVmZmVyLWhvb2sgJ2VnbG90LS1zaWduYWwtdGV4dERvY3VtZW50L2RpZENsb3Nl IG5pbCB0KQotICAgIChhZGQtaG9vayAnYmVmb3JlLXJldmVydC1ob29rICdlZ2xvdC0tc2lnbmFs LXRleHREb2N1bWVudC9kaWRDbG9zZSBuaWwgdCkKLSAgICAoYWRkLWhvb2sgJ2FmdGVyLXJldmVy dC1ob29rICdlZ2xvdC0tYWZ0ZXItcmV2ZXJ0LWhvb2sgbmlsIHQpCi0gICAgKGFkZC1ob29rICdi ZWZvcmUtc2F2ZS1ob29rICdlZ2xvdC0tc2lnbmFsLXRleHREb2N1bWVudC93aWxsU2F2ZSBuaWwg dCkKLSAgICAoYWRkLWhvb2sgJ2FmdGVyLXNhdmUtaG9vayAnZWdsb3QtLXNpZ25hbC10ZXh0RG9j dW1lbnQvZGlkU2F2ZSBuaWwgdCkKLSAgICAodW5sZXNzIChlZ2xvdC0tc3RheS1vdXQtb2YtcCAn eHJlZikKLSAgICAgIChhZGQtaG9vayAneHJlZi1iYWNrZW5kLWZ1bmN0aW9ucyAnZWdsb3QteHJl Zi1iYWNrZW5kIG5pbCB0KSkKLSAgICAoYWRkLWhvb2sgJ2NvbXBsZXRpb24tYXQtcG9pbnQtZnVu Y3Rpb25zICMnZWdsb3QtY29tcGxldGlvbi1hdC1wb2ludCBuaWwgdCkKLSAgICAoYWRkLWhvb2sg J2NoYW5nZS1tYWpvci1tb2RlLWhvb2sgIydlZ2xvdC0tbWFuYWdlZC1tb2RlLW9mZiBuaWwgdCkK LSAgICAoYWRkLWhvb2sgJ3Bvc3Qtc2VsZi1pbnNlcnQtaG9vayAnZWdsb3QtLXBvc3Qtc2VsZi1p bnNlcnQtaG9vayBuaWwgdCkKLSAgICAoYWRkLWhvb2sgJ3ByZS1jb21tYW5kLWhvb2sgJ2VnbG90 LS1wcmUtY29tbWFuZC1ob29rIG5pbCB0KQotICAgIChlZ2xvdC0tc2V0cS1zYXZpbmcgZWxkb2Mt ZG9jdW1lbnRhdGlvbi1mdW5jdGlvbnMKLSAgICAgICAgICAgICAgICAgICAgICAgICcoZWdsb3Qt c2lnbmF0dXJlLWVsZG9jLWZ1bmN0aW9uCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGVnbG90 LWhvdmVyLWVsZG9jLWZ1bmN0aW9uKSkKLSAgICAoZWdsb3QtLXNldHEtc2F2aW5nIGVsZG9jLWRv Y3VtZW50YXRpb24tc3RyYXRlZ3kKLSAgICAgICAgICAgICAgICAgICAgICAgICMnZWxkb2MtZG9j dW1lbnRhdGlvbi1lbnRodXNpYXN0KQotICAgIChlZ2xvdC0tc2V0cS1zYXZpbmcgeHJlZi1wcm9t cHQtZm9yLWlkZW50aWZpZXIgbmlsKQotICAgIChlZ2xvdC0tc2V0cS1zYXZpbmcgZmx5bWFrZS1k aWFnbm9zdGljLWZ1bmN0aW9ucyAnKGVnbG90LWZseW1ha2UtYmFja2VuZCkpCi0gICAgKGVnbG90 LS1zZXRxLXNhdmluZyBjb21wYW55LWJhY2tlbmRzICcoY29tcGFueS1jYXBmKSkKLSAgICAoZWds b3QtLXNldHEtc2F2aW5nIGNvbXBhbnktdG9vbHRpcC1hbGlnbi1hbm5vdGF0aW9ucyB0KQotICAg ICh1bmxlc3MgKGVnbG90LS1zdGF5LW91dC1vZi1wICdpbWVudSkKLSAgICAgIChhZGQtZnVuY3Rp b24gOmJlZm9yZS11bnRpbCAobG9jYWwgJ2ltZW51LWNyZWF0ZS1pbmRleC1mdW5jdGlvbikKLSAg ICAgICAgICAgICAgICAgICAgIydlZ2xvdC1pbWVudSkpCi0gICAgKHVubGVzcyAoZWdsb3QtLXN0 YXktb3V0LW9mLXAgJ2ZseW1ha2UpIChmbHltYWtlLW1vZGUgMSkpCi0gICAgKHVubGVzcyAoZWds b3QtLXN0YXktb3V0LW9mLXAgJ2VsZG9jKSAoZWxkb2MtbW9kZSAxKSkKLSAgICAoY2wtcHVzaG5l dyAoY3VycmVudC1idWZmZXIpIChlZ2xvdC0tbWFuYWdlZC1idWZmZXJzIChlZ2xvdC1jdXJyZW50 LXNlcnZlcikpKSkKLSAgICh0Ci0gICAgKHJlbW92ZS1ob29rICdhZnRlci1jaGFuZ2UtZnVuY3Rp b25zICdlZ2xvdC0tYWZ0ZXItY2hhbmdlIHQpCi0gICAgKHJlbW92ZS1ob29rICdiZWZvcmUtY2hh bmdlLWZ1bmN0aW9ucyAnZWdsb3QtLWJlZm9yZS1jaGFuZ2UgdCkKLSAgICAocmVtb3ZlLWhvb2sg J2tpbGwtYnVmZmVyLWhvb2sgIydlZ2xvdC0tbWFuYWdlZC1tb2RlLW9mZiB0KQotICAgIChyZW1v dmUtaG9vayAna2lsbC1idWZmZXItaG9vayAnZWdsb3QtLXNpZ25hbC10ZXh0RG9jdW1lbnQvZGlk Q2xvc2UgdCkKLSAgICAocmVtb3ZlLWhvb2sgJ2JlZm9yZS1yZXZlcnQtaG9vayAnZWdsb3QtLXNp Z25hbC10ZXh0RG9jdW1lbnQvZGlkQ2xvc2UgdCkKLSAgICAocmVtb3ZlLWhvb2sgJ2FmdGVyLXJl dmVydC1ob29rICdlZ2xvdC0tYWZ0ZXItcmV2ZXJ0LWhvb2sgdCkKLSAgICAocmVtb3ZlLWhvb2sg J2JlZm9yZS1zYXZlLWhvb2sgJ2VnbG90LS1zaWduYWwtdGV4dERvY3VtZW50L3dpbGxTYXZlIHQp Ci0gICAgKHJlbW92ZS1ob29rICdhZnRlci1zYXZlLWhvb2sgJ2VnbG90LS1zaWduYWwtdGV4dERv Y3VtZW50L2RpZFNhdmUgdCkKLSAgICAocmVtb3ZlLWhvb2sgJ3hyZWYtYmFja2VuZC1mdW5jdGlv bnMgJ2VnbG90LXhyZWYtYmFja2VuZCB0KQotICAgIChyZW1vdmUtaG9vayAnY29tcGxldGlvbi1h dC1wb2ludC1mdW5jdGlvbnMgIydlZ2xvdC1jb21wbGV0aW9uLWF0LXBvaW50IHQpCi0gICAgKHJl bW92ZS1ob29rICdjaGFuZ2UtbWFqb3ItbW9kZS1ob29rICMnZWdsb3QtLW1hbmFnZWQtbW9kZS1v ZmYgdCkKLSAgICAocmVtb3ZlLWhvb2sgJ3Bvc3Qtc2VsZi1pbnNlcnQtaG9vayAnZWdsb3QtLXBv c3Qtc2VsZi1pbnNlcnQtaG9vayB0KQotICAgIChyZW1vdmUtaG9vayAncHJlLWNvbW1hbmQtaG9v ayAnZWdsb3QtLXByZS1jb21tYW5kLWhvb2sgdCkKLSAgICAoY2wtbG9vcCBmb3IgKHZhciAuIHNh dmVkLWJpbmRpbmcpIGluIGVnbG90LS1zYXZlZC1iaW5kaW5ncwotICAgICAgICAgICAgIGRvIChz ZXQgKG1ha2UtbG9jYWwtdmFyaWFibGUgdmFyKSBzYXZlZC1iaW5kaW5nKSkKLSAgICAocmVtb3Zl LWZ1bmN0aW9uIChsb2NhbCAnaW1lbnUtY3JlYXRlLWluZGV4LWZ1bmN0aW9uKSAjJ2VnbG90LWlt ZW51KQotICAgICh3aGVuIGVnbG90LS1jdXJyZW50LWZseW1ha2UtcmVwb3J0LWZuCi0gICAgICAo ZWdsb3QtLXJlcG9ydC10by1mbHltYWtlIG5pbCkKLSAgICAgIChzZXRxIGVnbG90LS1jdXJyZW50 LWZseW1ha2UtcmVwb3J0LWZuIG5pbCkpCi0gICAgKGxldCAoKHNlcnZlciBlZ2xvdC0tY2FjaGVk LXNlcnZlcikpCi0gICAgICAoc2V0cSBlZ2xvdC0tY2FjaGVkLXNlcnZlciBuaWwpCi0gICAgICAo d2hlbiBzZXJ2ZXIKLSAgICAgICAgKHNldGYgKGVnbG90LS1tYW5hZ2VkLWJ1ZmZlcnMgc2VydmVy KQotICAgICAgICAgICAgICAoZGVscSAoY3VycmVudC1idWZmZXIpIChlZ2xvdC0tbWFuYWdlZC1i dWZmZXJzIHNlcnZlcikpKQotICAgICAgICAod2hlbiAoYW5kIGVnbG90LWF1dG9zaHV0ZG93bgot ICAgICAgICAgICAgICAgICAgIChudWxsIChlZ2xvdC0tbWFuYWdlZC1idWZmZXJzIHNlcnZlcikp KQotICAgICAgICAgIChlZ2xvdC1zaHV0ZG93biBzZXJ2ZXIpKSkpKSkKKyAgICAoZWdsb3QtLW1h bmFnZWQtbW9kZQorICAgICAgKGFkZC1ob29rICdhZnRlci1jaGFuZ2UtZnVuY3Rpb25zICdlZ2xv dC0tYWZ0ZXItY2hhbmdlIG5pbCB0KQorICAgICAgKGFkZC1ob29rICdiZWZvcmUtY2hhbmdlLWZ1 bmN0aW9ucyAnZWdsb3QtLWJlZm9yZS1jaGFuZ2UgbmlsIHQpCisgICAgICAoYWRkLWhvb2sgJ2tp bGwtYnVmZmVyLWhvb2sgIydlZ2xvdC0tbWFuYWdlZC1tb2RlLW9mZiBuaWwgdCkKKyAgICAgIDs7 IFByZXBlbmQgImRpZENsb3NlIiB0byB0aGUgaG9vayBhZnRlciB0aGUgIm5vbm9mZiIsIHNvIGl0 IHdpbGwgcnVuIGZpcnN0CisgICAgICAoYWRkLWhvb2sgJ2tpbGwtYnVmZmVyLWhvb2sgJ2VnbG90 LS1zaWduYWwtdGV4dERvY3VtZW50L2RpZENsb3NlIG5pbCB0KQorICAgICAgKGFkZC1ob29rICdi ZWZvcmUtcmV2ZXJ0LWhvb2sgJ2VnbG90LS1zaWduYWwtdGV4dERvY3VtZW50L2RpZENsb3NlIG5p bCB0KQorICAgICAgKGFkZC1ob29rICdhZnRlci1yZXZlcnQtaG9vayAnZWdsb3QtLWFmdGVyLXJl dmVydC1ob29rIG5pbCB0KQorICAgICAgKGFkZC1ob29rICdiZWZvcmUtc2F2ZS1ob29rICdlZ2xv dC0tc2lnbmFsLXRleHREb2N1bWVudC93aWxsU2F2ZSBuaWwgdCkKKyAgICAgIChhZGQtaG9vayAn YWZ0ZXItc2F2ZS1ob29rICdlZ2xvdC0tc2lnbmFsLXRleHREb2N1bWVudC9kaWRTYXZlIG5pbCB0 KQorICAgICAgKHVubGVzcyAoZWdsb3QtLXN0YXktb3V0LW9mLXAgJ3hyZWYpCisgICAgICAgIChh ZGQtaG9vayAneHJlZi1iYWNrZW5kLWZ1bmN0aW9ucyAnZWdsb3QteHJlZi1iYWNrZW5kIG5pbCB0 KSkKKyAgICAgIChhZGQtaG9vayAnY29tcGxldGlvbi1hdC1wb2ludC1mdW5jdGlvbnMgIydlZ2xv dC1jb21wbGV0aW9uLWF0LXBvaW50IG5pbCB0KQorICAgICAgKGFkZC1ob29rICdjaGFuZ2UtbWFq b3ItbW9kZS1ob29rICMnZWdsb3QtLW1hbmFnZWQtbW9kZS1vZmYgbmlsIHQpCisgICAgICAoYWRk LWhvb2sgJ3Bvc3Qtc2VsZi1pbnNlcnQtaG9vayAnZWdsb3QtLXBvc3Qtc2VsZi1pbnNlcnQtaG9v ayBuaWwgdCkKKyAgICAgIChhZGQtaG9vayAncHJlLWNvbW1hbmQtaG9vayAnZWdsb3QtLXByZS1j b21tYW5kLWhvb2sgbmlsIHQpCisgICAgICAoZWdsb3QtLXNldHEtc2F2aW5nIGVsZG9jLWRvY3Vt ZW50YXRpb24tZnVuY3Rpb25zCisgICAgICAgICcoZWdsb3Qtc2lnbmF0dXJlLWVsZG9jLWZ1bmN0 aW9uCisgICAgICAgICAgIGVnbG90LWhvdmVyLWVsZG9jLWZ1bmN0aW9uKSkKKyAgICAgIChlZ2xv dC0tc2V0cS1zYXZpbmcgZWxkb2MtZG9jdW1lbnRhdGlvbi1zdHJhdGVneQorICAgICAgICAjJ2Vs ZG9jLWRvY3VtZW50YXRpb24tZW50aHVzaWFzdCkKKyAgICAgIChlZ2xvdC0tc2V0cS1zYXZpbmcg eHJlZi1wcm9tcHQtZm9yLWlkZW50aWZpZXIgbmlsKQorICAgICAgKGVnbG90LS1zZXRxLXNhdmlu ZyBmbHltYWtlLWRpYWdub3N0aWMtZnVuY3Rpb25zICcoZWdsb3QtZmx5bWFrZS1iYWNrZW5kKSkK KyAgICAgIChlZ2xvdC0tc2V0cS1zYXZpbmcgY29tcGFueS1iYWNrZW5kcyAnKGNvbXBhbnktY2Fw ZikpCisgICAgICAoZWdsb3QtLXNldHEtc2F2aW5nIGNvbXBhbnktdG9vbHRpcC1hbGlnbi1hbm5v dGF0aW9ucyB0KQorICAgICAgKHVubGVzcyAoZWdsb3QtLXN0YXktb3V0LW9mLXAgJ2ltZW51KQor ICAgICAgICAoYWRkLWZ1bmN0aW9uIDpiZWZvcmUtdW50aWwgKGxvY2FsICdpbWVudS1jcmVhdGUt aW5kZXgtZnVuY3Rpb24pCisgICAgICAgICAgIydlZ2xvdC1pbWVudSkpCisgICAgICAodW5sZXNz IChlZ2xvdC0tc3RheS1vdXQtb2YtcCAnZmx5bWFrZSkgKGZseW1ha2UtbW9kZSAxKSkKKyAgICAg ICh1bmxlc3MgKGVnbG90LS1zdGF5LW91dC1vZi1wICdlbGRvYykgKGVsZG9jLW1vZGUgMSkpCisg ICAgICAoY2wtcHVzaG5ldyAoY3VycmVudC1idWZmZXIpIChlZ2xvdC0tbWFuYWdlZC1idWZmZXJz IChlZ2xvdC1jdXJyZW50LXNlcnZlcikpKSkKKyAgICAodAorICAgICAgKHJlbW92ZS1ob29rICdh ZnRlci1jaGFuZ2UtZnVuY3Rpb25zICdlZ2xvdC0tYWZ0ZXItY2hhbmdlIHQpCisgICAgICAocmVt b3ZlLWhvb2sgJ2JlZm9yZS1jaGFuZ2UtZnVuY3Rpb25zICdlZ2xvdC0tYmVmb3JlLWNoYW5nZSB0 KQorICAgICAgKHJlbW92ZS1ob29rICdraWxsLWJ1ZmZlci1ob29rICMnZWdsb3QtLW1hbmFnZWQt bW9kZS1vZmYgdCkKKyAgICAgIChyZW1vdmUtaG9vayAna2lsbC1idWZmZXItaG9vayAnZWdsb3Qt LXNpZ25hbC10ZXh0RG9jdW1lbnQvZGlkQ2xvc2UgdCkKKyAgICAgIChyZW1vdmUtaG9vayAnYmVm b3JlLXJldmVydC1ob29rICdlZ2xvdC0tc2lnbmFsLXRleHREb2N1bWVudC9kaWRDbG9zZSB0KQor ICAgICAgKHJlbW92ZS1ob29rICdhZnRlci1yZXZlcnQtaG9vayAnZWdsb3QtLWFmdGVyLXJldmVy dC1ob29rIHQpCisgICAgICAocmVtb3ZlLWhvb2sgJ2JlZm9yZS1zYXZlLWhvb2sgJ2VnbG90LS1z aWduYWwtdGV4dERvY3VtZW50L3dpbGxTYXZlIHQpCisgICAgICAocmVtb3ZlLWhvb2sgJ2FmdGVy LXNhdmUtaG9vayAnZWdsb3QtLXNpZ25hbC10ZXh0RG9jdW1lbnQvZGlkU2F2ZSB0KQorICAgICAg KHJlbW92ZS1ob29rICd4cmVmLWJhY2tlbmQtZnVuY3Rpb25zICdlZ2xvdC14cmVmLWJhY2tlbmQg dCkKKyAgICAgIChyZW1vdmUtaG9vayAnY29tcGxldGlvbi1hdC1wb2ludC1mdW5jdGlvbnMgIydl Z2xvdC1jb21wbGV0aW9uLWF0LXBvaW50IHQpCisgICAgICAocmVtb3ZlLWhvb2sgJ2NoYW5nZS1t YWpvci1tb2RlLWhvb2sgIydlZ2xvdC0tbWFuYWdlZC1tb2RlLW9mZiB0KQorICAgICAgKHJlbW92 ZS1ob29rICdwb3N0LXNlbGYtaW5zZXJ0LWhvb2sgJ2VnbG90LS1wb3N0LXNlbGYtaW5zZXJ0LWhv b2sgdCkKKyAgICAgIChyZW1vdmUtaG9vayAncHJlLWNvbW1hbmQtaG9vayAnZWdsb3QtLXByZS1j b21tYW5kLWhvb2sgdCkKKyAgICAgIChjbC1sb29wIGZvciAodmFyIC4gc2F2ZWQtYmluZGluZykg aW4gZWdsb3QtLXNhdmVkLWJpbmRpbmdzCisgICAgICAgIGRvIChzZXQgKG1ha2UtbG9jYWwtdmFy aWFibGUgdmFyKSBzYXZlZC1iaW5kaW5nKSkKKyAgICAgIChyZW1vdmUtZnVuY3Rpb24gKGxvY2Fs ICdpbWVudS1jcmVhdGUtaW5kZXgtZnVuY3Rpb24pICMnZWdsb3QtaW1lbnUpCisgICAgICAod2hl biBlZ2xvdC0tY3VycmVudC1mbHltYWtlLXJlcG9ydC1mbgorICAgICAgICAoZWdsb3QtLXJlcG9y dC10by1mbHltYWtlIG5pbCkKKyAgICAgICAgKHNldHEgZWdsb3QtLWN1cnJlbnQtZmx5bWFrZS1y ZXBvcnQtZm4gbmlsKSkKKyAgICAgIChsZXQgKChzZXJ2ZXIgZWdsb3QtLWNhY2hlZC1zZXJ2ZXIp KQorICAgICAgICAoc2V0cSBlZ2xvdC0tY2FjaGVkLXNlcnZlciBuaWwpCisgICAgICAgICh3aGVu IHNlcnZlcgorICAgICAgICAgIChzZXRmIChlZ2xvdC0tbWFuYWdlZC1idWZmZXJzIHNlcnZlcikK KyAgICAgICAgICAgIChkZWxxIChjdXJyZW50LWJ1ZmZlcikgKGVnbG90LS1tYW5hZ2VkLWJ1ZmZl cnMgc2VydmVyKSkpCisgICAgICAgICAgKHdoZW4gKGFuZCBlZ2xvdC1hdXRvc2h1dGRvd24KKyAg ICAgICAgICAgICAgICAgIChudWxsIChlZ2xvdC0tbWFuYWdlZC1idWZmZXJzIHNlcnZlcikpKQor ICAgICAgICAgICAgKGVnbG90LXNodXRkb3duIHNlcnZlcikpKSkpKQogICA7OyBOb3RlOiB0aGUg cHVibGljIGhvb2sgcnVucyBiZWZvcmUgdGhlIGludGVybmFsIGVnbG90LS1tYW5hZ2VkLW1vZGUt aG9vay4KICAgKHJ1bi1ob29rcyAnZWdsb3QtbWFuYWdlZC1tb2RlLWhvb2spKQogCkBAIC0xNzUw LDIwICsxNzU1LDIwIEBAIFVzZSBgZWdsb3QtbWFuYWdlZC1wJyB0byBkZXRlcm1pbmUgaWYgY3Vy cmVudCBidWZmZXIgaXMgbWFuYWdlZC4iKQogKGRlZnVuIGVnbG90LWN1cnJlbnQtc2VydmVyICgp CiAgICJSZXR1cm4gbG9naWNhbCBFZ2xvdCBzZXJ2ZXIgZm9yIGN1cnJlbnQgYnVmZmVyLCBuaWwg aWYgbm9uZS4iCiAgIChzZXRxIGVnbG90LS1jYWNoZWQtc2VydmVyCi0gICAgICAgIChvciBlZ2xv dC0tY2FjaGVkLXNlcnZlcgotICAgICAgICAgICAgKGNsLWZpbmQgbWFqb3ItbW9kZQotICAgICAg ICAgICAgICAgICAgICAgKGdldGhhc2ggKGVnbG90LS1jdXJyZW50LXByb2plY3QpIGVnbG90LS1z ZXJ2ZXJzLWJ5LXByb2plY3QpCi0gICAgICAgICAgICAgICAgICAgICA6a2V5ICMnZWdsb3QtLW1h am9yLW1vZGVzCi0gICAgICAgICAgICAgICAgICAgICA6dGVzdCAjJ21lbXEpCi0gICAgICAgICAg ICAoYW5kIGVnbG90LWV4dGVuZC10by14cmVmCi0gICAgICAgICAgICAgICAgIGJ1ZmZlci1maWxl LW5hbWUKLSAgICAgICAgICAgICAgICAgKGdldGhhc2ggKGV4cGFuZC1maWxlLW5hbWUgYnVmZmVy LWZpbGUtbmFtZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZWdsb3QtLXNlcnZlcnMtYnkt eHJlZmVkLWZpbGUpKSkpKQorICAgIChvciBlZ2xvdC0tY2FjaGVkLXNlcnZlcgorICAgICAgKGNs LWZpbmQgbWFqb3ItbW9kZQorICAgICAgICAoZ2V0aGFzaCAoZWdsb3QtLWN1cnJlbnQtcHJvamVj dCkgZWdsb3QtLXNlcnZlcnMtYnktcHJvamVjdCkKKyAgICAgICAgOmtleSAjJ2VnbG90LS1tYWpv ci1tb2RlcworICAgICAgICA6dGVzdCAjJ21lbXEpCisgICAgICAoYW5kIGVnbG90LWV4dGVuZC10 by14cmVmCisgICAgICAgIGJ1ZmZlci1maWxlLW5hbWUKKyAgICAgICAgKGdldGhhc2ggKGV4cGFu ZC1maWxlLW5hbWUgYnVmZmVyLWZpbGUtbmFtZSkKKyAgICAgICAgICBlZ2xvdC0tc2VydmVycy1i eS14cmVmZWQtZmlsZSkpKSkpCiAKIChkZWZ1biBlZ2xvdC0tY3VycmVudC1zZXJ2ZXItb3ItbG9z ZSAoKQogICAiUmV0dXJuIGN1cnJlbnQgbG9naWNhbCBFZ2xvdCBzZXJ2ZXIgY29ubmVjdGlvbiBv ciBlcnJvci4iCiAgIChvciAoZWdsb3QtY3VycmVudC1zZXJ2ZXIpCi0gICAgICAoanNvbnJwYy1l cnJvciAiTm8gY3VycmVudCBKU09OLVJQQyBjb25uZWN0aW9uIikpKQorICAgIChqc29ucnBjLWVy cm9yICJObyBjdXJyZW50IEpTT04tUlBDIGNvbm5lY3Rpb24iKSkpCiAKIChkZWZ2YXItbG9jYWwg ZWdsb3QtLWRpYWdub3N0aWNzIG5pbAogICAiRmx5bWFrZSBkaWFnbm9zdGljcyBmb3IgdGhpcyBi dWZmZXIuIikKQEAgLTE4MDcsNyArMTgxMiw3IEBAIElmIGl0IGlzIGFjdGl2YXRlZCwgYWxzbyBz aWduYWwgdGV4dERvY3VtZW50L2RpZE9wZW4uIgogICAgIChsZXQgKChzdGFydCAoZXZlbnQtc3Rh cnQgZXZlbnQpKSkgKHdpdGgtc2VsZWN0ZWQtd2luZG93IChwb3NuLXdpbmRvdyBzdGFydCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAob3Ig KHBvc24tcG9pbnQgc3RhcnQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYWxsLWludGVyYWN0aXZlbHkgd2hhdCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9yY2UtbW9kZS1saW5l LXVwZGF0ZSB0KSkpKSkpCiAKQEAgLTE4MTYsMTMxICsxODIxLDEzOCBAQCBJZiBpdCBpcyBhY3Rp dmF0ZWQsIGFsc28gc2lnbmFsIHRleHREb2N1bWVudC9kaWRPcGVuLiIKIAogKGVhc3ktbWVudS1k ZWZpbmUgZWdsb3QtbWVudSBuaWwgIkVnbG90IgogICBgKCJFZ2xvdCIKLSAgICA7OyBDb21tYW5k cyBmb3IgZ2V0dGluZyBpbmZvcm1hdGlvbiBhbmQgY3VzdG9taXphdGlvbi4KLSAgICBbIlJlYWQg bWFudWFsIiBlZ2xvdC1tYW51YWxdCi0gICAgWyJDdXN0b21pemUgRWdsb3QiIChsYW1iZGEgKCkg KGludGVyYWN0aXZlKSAoY3VzdG9taXplLWdyb3VwICJlZ2xvdCIpKV0KLSAgICAiLS0iCi0gICAg OzsgeHJlZiBsaWtlIGNvbW1hbmRzLgotICAgIFsiRmluZCBkZWZpbml0aW9ucyIgeHJlZi1maW5k LWRlZmluaXRpb25zCi0gICAgIDpoZWxwICJGaW5kIGRlZmluaXRpb25zIG9mIGlkZW50aWZpZXIg YXQgcG9pbnQiCi0gICAgIDphY3RpdmUgKGVnbG90LS1zZXJ2ZXItY2FwYWJsZSA6ZGVmaW5pdGlv blByb3ZpZGVyKV0KLSAgICBbIkZpbmQgcmVmZXJlbmNlcyIgeHJlZi1maW5kLXJlZmVyZW5jZXMK LSAgICAgOmhlbHAgIkZpbmQgcmVmZXJlbmNlcyB0byBpZGVudGlmaWVyIGF0IHBvaW50IgotICAg ICA6YWN0aXZlIChlZ2xvdC0tc2VydmVyLWNhcGFibGUgOnJlZmVyZW5jZXNQcm92aWRlcildCi0g ICAgWyJGaW5kIHN5bWJvbHMgaW4gd29ya3NwYWNlIChhcHJvcG9zKSIgeHJlZi1maW5kLWFwcm9w b3MKLSAgICAgOmhlbHAgIkZpbmQgc3ltYm9scyBtYXRjaGluZyBhIHF1ZXJ5IgotICAgICA6YWN0 aXZlIChlZ2xvdC0tc2VydmVyLWNhcGFibGUgOndvcmtzcGFjZVN5bWJvbFByb3ZpZGVyKV0KLSAg ICBbIkZpbmQgZGVjbGFyYXRpb24iIGVnbG90LWZpbmQtZGVjbGFyYXRpb24KLSAgICAgOmhlbHAg IkZpbmQgZGVjbGFyYXRpb24gZm9yIGlkZW50aWZpZXIgYXQgcG9pbnQiCi0gICAgIDphY3RpdmUg KGVnbG90LS1zZXJ2ZXItY2FwYWJsZSA6ZGVjbGFyYXRpb25Qcm92aWRlcildCi0gICAgWyJGaW5k IGltcGxlbWVudGF0aW9uIiBlZ2xvdC1maW5kLWltcGxlbWVudGF0aW9uCi0gICAgIDpoZWxwICJG aW5kIGltcGxlbWVudGF0aW9uIGZvciBpZGVudGlmaWVyIGF0IHBvaW50IgotICAgICA6YWN0aXZl IChlZ2xvdC0tc2VydmVyLWNhcGFibGUgOmltcGxlbWVudGF0aW9uUHJvdmlkZXIpXQotICAgIFsi RmluZCB0eXBlIGRlZmluaXRpb24iIGVnbG90LWZpbmQtdHlwZURlZmluaXRpb24KLSAgICAgOmhl bHAgIkZpbmQgdHlwZSBkZWZpbml0aW9uIGZvciBpZGVudGlmaWVyIGF0IHBvaW50IgotICAgICA6 YWN0aXZlIChlZ2xvdC0tc2VydmVyLWNhcGFibGUgOnR5cGVEZWZpbml0aW9uUHJvdmlkZXIpXQot ICAgICItLSIKLSAgICA7OyBMU1AtcmVsYXRlZCBjb21tYW5kcyAobW9zdGx5IEVnbG90J3Mgb3du IGNvbW1hbmRzKS4KLSAgICBbIlJlbmFtZSBzeW1ib2wiIGVnbG90LXJlbmFtZQotICAgICA6YWN0 aXZlIChlZ2xvdC0tc2VydmVyLWNhcGFibGUgOnJlbmFtZVByb3ZpZGVyKV0KLSAgICBbIkZvcm1h dCBidWZmZXIiIGVnbG90LWZvcm1hdC1idWZmZXIKLSAgICAgOmFjdGl2ZSAoZWdsb3QtLXNlcnZl ci1jYXBhYmxlIDpkb2N1bWVudEZvcm1hdHRpbmdQcm92aWRlcildCi0gICAgWyJGb3JtYXQgYWN0 aXZlIHJlZ2lvbiIgZWdsb3QtZm9ybWF0Ci0gICAgIDphY3RpdmUgKGFuZCAocmVnaW9uLWFjdGl2 ZS1wKQotICAgICAgICAgICAgICAgICAgKGVnbG90LS1zZXJ2ZXItY2FwYWJsZSA6ZG9jdW1lbnRS YW5nZUZvcm1hdHRpbmdQcm92aWRlcikpXQotICAgIFsiU2hvdyBGbHltYWtlIGRpYWdub3N0aWNz IGZvciBidWZmZXIiIGZseW1ha2Utc2hvdy1idWZmZXItZGlhZ25vc3RpY3NdCi0gICAgWyJTaG93 IEZseW1ha2UgZGlhZ25vc3RpY3MgZm9yIHByb2plY3QiIGZseW1ha2Utc2hvdy1wcm9qZWN0LWRp YWdub3N0aWNzXQotICAgIFsiU2hvdyBFbGRvYyBkb2N1bWVudGF0aW9uIGF0IHBvaW50IiBlbGRv Yy1kb2MtYnVmZmVyXQotICAgICItLSIKLSAgICBbIkFsbCBwb3NzaWJsZSBjb2RlIGFjdGlvbnMi IGVnbG90LWNvZGUtYWN0aW9ucwotICAgICA6YWN0aXZlIChlZ2xvdC0tc2VydmVyLWNhcGFibGUg OmNvZGVBY3Rpb25Qcm92aWRlcildCi0gICAgWyJPcmdhbml6ZSBpbXBvcnRzIiBlZ2xvdC1jb2Rl LWFjdGlvbi1vcmdhbml6ZS1pbXBvcnRzCi0gICAgIDp2aXNpYmxlIChlZ2xvdC0tc2VydmVyLWNh cGFibGUgOmNvZGVBY3Rpb25Qcm92aWRlcildCi0gICAgWyJFeHRyYWN0IiBlZ2xvdC1jb2RlLWFj dGlvbi1leHRyYWN0Ci0gICAgIDp2aXNpYmxlIChlZ2xvdC0tc2VydmVyLWNhcGFibGUgOmNvZGVB Y3Rpb25Qcm92aWRlcildCi0gICAgWyJJbmxpbmUiIGVnbG90LWNvZGUtYWN0aW9uLWlubGluZQot ICAgICA6dmlzaWJsZSAoZWdsb3QtLXNlcnZlci1jYXBhYmxlIDpjb2RlQWN0aW9uUHJvdmlkZXIp XQotICAgIFsiUmV3cml0ZSIgZWdsb3QtY29kZS1hY3Rpb24tcmV3cml0ZQotICAgICA6dmlzaWJs ZSAoZWdsb3QtLXNlcnZlci1jYXBhYmxlIDpjb2RlQWN0aW9uUHJvdmlkZXIpXQotICAgIFsiUXVp Y2tmaXgiIGVnbG90LWNvZGUtYWN0aW9uLXF1aWNrZml4Ci0gICAgIDp2aXNpYmxlIChlZ2xvdC0t c2VydmVyLWNhcGFibGUgOmNvZGVBY3Rpb25Qcm92aWRlcildKSkKKyAgICAgOzsgQ29tbWFuZHMg Zm9yIGdldHRpbmcgaW5mb3JtYXRpb24gYW5kIGN1c3RvbWl6YXRpb24uCisgICAgIFsiUmVhZCBt YW51YWwiIGVnbG90LW1hbnVhbF0KKyAgICAgWyJDdXN0b21pemUgRWdsb3QiIChsYW1iZGEgKCkg KGludGVyYWN0aXZlKSAoY3VzdG9taXplLWdyb3VwICJlZ2xvdCIpKV0KKyAgICAgIi0tIgorICAg ICA7OyB4cmVmIGxpa2UgY29tbWFuZHMuCisgICAgIFsiRmluZCBkZWZpbml0aW9ucyIgeHJlZi1m aW5kLWRlZmluaXRpb25zCisgICAgICAgOmhlbHAgIkZpbmQgZGVmaW5pdGlvbnMgb2YgaWRlbnRp ZmllciBhdCBwb2ludCIKKyAgICAgICA6YWN0aXZlIChlZ2xvdC0tc2VydmVyLWNhcGFibGUgOmRl ZmluaXRpb25Qcm92aWRlcildCisgICAgIFsiRmluZCByZWZlcmVuY2VzIiB4cmVmLWZpbmQtcmVm ZXJlbmNlcworICAgICAgIDpoZWxwICJGaW5kIHJlZmVyZW5jZXMgdG8gaWRlbnRpZmllciBhdCBw b2ludCIKKyAgICAgICA6YWN0aXZlIChlZ2xvdC0tc2VydmVyLWNhcGFibGUgOnJlZmVyZW5jZXNQ cm92aWRlcildCisgICAgIFsiRmluZCBzeW1ib2xzIGluIHdvcmtzcGFjZSAoYXByb3BvcykiIHhy ZWYtZmluZC1hcHJvcG9zCisgICAgICAgOmhlbHAgIkZpbmQgc3ltYm9scyBtYXRjaGluZyBhIHF1 ZXJ5IgorICAgICAgIDphY3RpdmUgKGVnbG90LS1zZXJ2ZXItY2FwYWJsZSA6d29ya3NwYWNlU3lt Ym9sUHJvdmlkZXIpXQorICAgICBbIkZpbmQgZGVjbGFyYXRpb24iIGVnbG90LWZpbmQtZGVjbGFy YXRpb24KKyAgICAgICA6aGVscCAiRmluZCBkZWNsYXJhdGlvbiBmb3IgaWRlbnRpZmllciBhdCBw b2ludCIKKyAgICAgICA6YWN0aXZlIChlZ2xvdC0tc2VydmVyLWNhcGFibGUgOmRlY2xhcmF0aW9u UHJvdmlkZXIpXQorICAgICBbIkZpbmQgaW1wbGVtZW50YXRpb24iIGVnbG90LWZpbmQtaW1wbGVt ZW50YXRpb24KKyAgICAgICA6aGVscCAiRmluZCBpbXBsZW1lbnRhdGlvbiBmb3IgaWRlbnRpZmll ciBhdCBwb2ludCIKKyAgICAgICA6YWN0aXZlIChlZ2xvdC0tc2VydmVyLWNhcGFibGUgOmltcGxl bWVudGF0aW9uUHJvdmlkZXIpXQorICAgICBbIkZpbmQgdHlwZSBkZWZpbml0aW9uIiBlZ2xvdC1m aW5kLXR5cGVEZWZpbml0aW9uCisgICAgICAgOmhlbHAgIkZpbmQgdHlwZSBkZWZpbml0aW9uIGZv ciBpZGVudGlmaWVyIGF0IHBvaW50IgorICAgICAgIDphY3RpdmUgKGVnbG90LS1zZXJ2ZXItY2Fw YWJsZSA6dHlwZURlZmluaXRpb25Qcm92aWRlcildCisgICAgICItLSIKKyAgICAgOzsgTFNQLXJl bGF0ZWQgY29tbWFuZHMgKG1vc3RseSBFZ2xvdCdzIG93biBjb21tYW5kcykuCisgICAgIFsiUmVu YW1lIHN5bWJvbCIgZWdsb3QtcmVuYW1lCisgICAgICAgOmFjdGl2ZSAoZWdsb3QtLXNlcnZlci1j YXBhYmxlIDpyZW5hbWVQcm92aWRlcildCisgICAgIFsiRm9ybWF0IGJ1ZmZlciIgZWdsb3QtZm9y bWF0LWJ1ZmZlcgorICAgICAgIDphY3RpdmUgKGVnbG90LS1zZXJ2ZXItY2FwYWJsZSA6ZG9jdW1l bnRGb3JtYXR0aW5nUHJvdmlkZXIpXQorICAgICBbIkZvcm1hdCBhY3RpdmUgcmVnaW9uIiBlZ2xv dC1mb3JtYXQKKyAgICAgICA6YWN0aXZlIChhbmQgKHJlZ2lvbi1hY3RpdmUtcCkKKyAgICAgICAg ICAgICAgICAgKGVnbG90LS1zZXJ2ZXItY2FwYWJsZSA6ZG9jdW1lbnRSYW5nZUZvcm1hdHRpbmdQ cm92aWRlcikpXQorICAgICBbIlNob3cgRmx5bWFrZSBkaWFnbm9zdGljcyBmb3IgYnVmZmVyIiBm bHltYWtlLXNob3ctYnVmZmVyLWRpYWdub3N0aWNzXQorICAgICBbIlNob3cgRmx5bWFrZSBkaWFn bm9zdGljcyBmb3IgcHJvamVjdCIgZmx5bWFrZS1zaG93LXByb2plY3QtZGlhZ25vc3RpY3NdCisg ICAgIFsiU2hvdyBFbGRvYyBkb2N1bWVudGF0aW9uIGF0IHBvaW50IiBlbGRvYy1kb2MtYnVmZmVy XQorICAgICAiLS0iCisgICAgIFsiQWxsIHBvc3NpYmxlIGNvZGUgYWN0aW9ucyIgZWdsb3QtY29k ZS1hY3Rpb25zCisgICAgICAgOmFjdGl2ZSAoZWdsb3QtLXNlcnZlci1jYXBhYmxlIDpjb2RlQWN0 aW9uUHJvdmlkZXIpXQorICAgICBbIk9yZ2FuaXplIGltcG9ydHMiIGVnbG90LWNvZGUtYWN0aW9u LW9yZ2FuaXplLWltcG9ydHMKKyAgICAgICA6dmlzaWJsZSAoZWdsb3QtLXNlcnZlci1jYXBhYmxl IDpjb2RlQWN0aW9uUHJvdmlkZXIpXQorICAgICBbIkV4dHJhY3QiIGVnbG90LWNvZGUtYWN0aW9u LWV4dHJhY3QKKyAgICAgICA6dmlzaWJsZSAoZWdsb3QtLXNlcnZlci1jYXBhYmxlIDpjb2RlQWN0 aW9uUHJvdmlkZXIpXQorICAgICBbIklubGluZSIgZWdsb3QtY29kZS1hY3Rpb24taW5saW5lCisg ICAgICAgOnZpc2libGUgKGVnbG90LS1zZXJ2ZXItY2FwYWJsZSA6Y29kZUFjdGlvblByb3ZpZGVy KV0KKyAgICAgWyJSZXdyaXRlIiBlZ2xvdC1jb2RlLWFjdGlvbi1yZXdyaXRlCisgICAgICAgOnZp c2libGUgKGVnbG90LS1zZXJ2ZXItY2FwYWJsZSA6Y29kZUFjdGlvblByb3ZpZGVyKV0KKyAgICAg WyJRdWlja2ZpeCIgZWdsb3QtY29kZS1hY3Rpb24tcXVpY2tmaXgKKyAgICAgICA6dmlzaWJsZSAo ZWdsb3QtLXNlcnZlci1jYXBhYmxlIDpjb2RlQWN0aW9uUHJvdmlkZXIpXSkpCiAKIChlYXN5LW1l bnUtZGVmaW5lIGVnbG90LXNlcnZlci1tZW51IG5pbCAiTW9uaXRvciBzZXJ2ZXIgY29tbXVuaWNh dGlvbiIKICAgJygiRGVidWdnaW5nIHRoZSBzZXJ2ZXIgY29tbXVuaWNhdGlvbiIKLSAgICBbIlJl Y29ubmVjdCB0byBzZXJ2ZXIiIGVnbG90LXJlY29ubmVjdF0KLSAgICBbIlF1aXQgc2VydmVyIiBl Z2xvdC1zaHV0ZG93bl0KLSAgICAiLS0iCi0gICAgWyJMU1AgZXZlbnRzIGJ1ZmZlciIgZWdsb3Qt ZXZlbnRzLWJ1ZmZlcl0KLSAgICBbIlNlcnZlciBzdGRlcnIgYnVmZmVyIiBlZ2xvdC1zdGRlcnIt YnVmZmVyXQotICAgIFsiQ3VzdG9taXplIGV2ZW50IGJ1ZmZlciBzaXplIgotICAgICAobGFtYmRh ICgpCi0gICAgICAgKGludGVyYWN0aXZlKQotICAgICAgIChjdXN0b21pemUtdmFyaWFibGUgJ2Vn bG90LWV2ZW50cy1idWZmZXItc2l6ZSkpXSkpCisgICAgIFsiUmVjb25uZWN0IHRvIHNlcnZlciIg ZWdsb3QtcmVjb25uZWN0XQorICAgICBbIlF1aXQgc2VydmVyIiBlZ2xvdC1zaHV0ZG93bl0KKyAg ICAgIi0tIgorICAgICBbIkxTUCBldmVudHMgYnVmZmVyIiBlZ2xvdC1ldmVudHMtYnVmZmVyXQor ICAgICBbIlNlcnZlciBzdGRlcnIgYnVmZmVyIiBlZ2xvdC1zdGRlcnItYnVmZmVyXQorICAgICBb IkN1c3RvbWl6ZSBldmVudCBidWZmZXIgc2l6ZSIKKyAgICAgICAobGFtYmRhICgpCisgICAgICAg ICAoaW50ZXJhY3RpdmUpCisgICAgICAgICAoY3VzdG9taXplLXZhcmlhYmxlICdlZ2xvdC1ldmVu dHMtYnVmZmVyLXNpemUpKV0pKQogCiAoZGVmdW4gZWdsb3QtLW1vZGUtbGluZS1wcm9wcyAodGhp bmcgZmFjZSBkZWZzICZvcHRpb25hbCBwcmVwZW5kKQogICAiSGVscGVyIGZvciBmdW5jdGlvbiBg ZWdsb3QtLW1vZGUtbGluZS1mb3JtYXQnLgogVXNlcyBUSElORywgRkFDRSwgREVGUyBhbmQgUFJF UEVORC4iCiAgIChjbC1sb29wIHdpdGggbWFwID0gKG1ha2Utc3BhcnNlLWtleW1hcCkKLSAgICAg ICAgICAgZm9yIChlbGVtIC4gcmVzdCkgb24gZGVmcwotICAgICAgICAgICBmb3IgKGtleSBkZWYg aGVscCkgPSBlbGVtCi0gICAgICAgICAgIGRvIChkZWZpbmUta2V5IG1hcCBgW21vZGUtbGluZSAs a2V5XSAoZWdsb3QtLW1vdXNlLWNhbGwgZGVmKSkKLSAgICAgICAgICAgY29uY2F0IChmb3JtYXQg IiVzOiAlcyIga2V5IGhlbHApIGludG8gYmx1cmIKLSAgICAgICAgICAgd2hlbiByZXN0IGNvbmNh dCAiXG4iIGludG8gYmx1cmIKLSAgICAgICAgICAgZmluYWxseSAocmV0dXJuIGAoOnByb3BlcnRp emUgLHRoaW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhY2Ug LGZhY2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5bWFwICxt YXAgaGVscC1lY2hvICwoY29uY2F0IHByZXBlbmQgYmx1cmIpCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1vdXNlLWZhY2UgbW9kZS1saW5lLWhpZ2hsaWdodCkpKSkK KyAgICBmb3IgKGVsZW0gLiByZXN0KSBvbiBkZWZzCisgICAgZm9yIChrZXkgZGVmIGhlbHApID0g ZWxlbQorICAgIGRvIChkZWZpbmUta2V5IG1hcCBgW21vZGUtbGluZSAsa2V5XSAoZWdsb3QtLW1v dXNlLWNhbGwgZGVmKSkKKyAgICBjb25jYXQgKGZvcm1hdCAiJXM6ICVzIiBrZXkgaGVscCkgaW50 byBibHVyYgorICAgIHdoZW4gcmVzdCBjb25jYXQgIlxuIiBpbnRvIGJsdXJiCisgICAgZmluYWxs eSAocmV0dXJuIGAoOnByb3BlcnRpemUgLHRoaW5nCisgICAgICAgICAgICAgICAgICAgICAgIGZh Y2UgLGZhY2UKKyAgICAgICAgICAgICAgICAgICAgICAga2V5bWFwICxtYXAgaGVscC1lY2hvICwo Y29uY2F0IHByZXBlbmQgYmx1cmIpCisgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlLWZhY2Ug bW9kZS1saW5lLWhpZ2hsaWdodCkpKSkKIAogKGRlZnVuIGVnbG90LS1tb2RlLWxpbmUtZm9ybWF0 ICgpCiAgICJDb21wb3NlIHRoZSBFZ2xvdCdzIG1vZGUtbGluZS4iCiAgIChwY2FzZS1sZXQqICgo c2VydmVyIChlZ2xvdC1jdXJyZW50LXNlcnZlcikpCi0gICAgICAgICAgICAgICAobmljayAoYW5k IHNlcnZlciAoZWdsb3QtcHJvamVjdC1uaWNrbmFtZSBzZXJ2ZXIpKSkKLSAgICAgICAgICAgICAg IChwZW5kaW5nIChhbmQgc2VydmVyIChoYXNoLXRhYmxlLWNvdW50Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGpzb25ycGMtLXJlcXVlc3QtY29udGludWF0aW9ucyBzZXJ2 ZXIpKSkpCi0gICAgICAgICAgICAgICAoYCgsX2lkICxkb2luZyAsZG9uZS1wICxfZGV0YWlsKSAo YW5kIHNlcnZlciAoZWdsb3QtLXNwaW5uZXIgc2VydmVyKSkpCi0gICAgICAgICAgICAgICAobGFz dC1lcnJvciAoYW5kIHNlcnZlciAoanNvbnJwYy1sYXN0LWVycm9yIHNlcnZlcikpKSkKKyAgICAg ICAgICAgICAgICAobmljayAoYW5kIHNlcnZlciAoZWdsb3QtcHJvamVjdC1uaWNrbmFtZSBzZXJ2 ZXIpKSkKKyAgICAgICAgICAgICAgICAocGVuZGluZyAoYW5kIHNlcnZlciAoaGFzaC10YWJsZS1j b3VudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGpzb25ycGMtLXJl cXVlc3QtY29udGludWF0aW9ucyBzZXJ2ZXIpKSkpCisgICAgICAgICAgICAgICAgKGAoLF9pZCAs ZG9pbmcgLGRvbmUtcCAsX2RldGFpbCkgKGFuZCBzZXJ2ZXIgKGVnbG90LS1zcGlubmVyIHNlcnZl cikpKQorICAgICAgICAgICAgICAgIChsYXN0LWVycm9yIChhbmQgc2VydmVyIChqc29ucnBjLWxh c3QtZXJyb3Igc2VydmVyKSkpKQogICAgIChhcHBlbmQKLSAgICAgYCgsKHByb3BlcnRpemUKLSAg ICAgICAgIGVnbG90LW1lbnUtc3RyaW5nCi0gICAgICAgICAnZmFjZSAnZWdsb3QtbW9kZS1saW5l Ci0gICAgICAgICAnbW91c2UtZmFjZSAnbW9kZS1saW5lLWhpZ2hsaWdodAotICAgICAgICAgJ2hl bHAtZWNobyAiRWdsb3Q6IEVtYWNzIExTUCBjbGllbnRcbm1vdXNlLTE6IERpc3BsYXkgbWlub3Ig bW9kZSBtZW51IgotICAgICAgICAgJ2tleW1hcCAobGV0ICgobWFwIChtYWtlLXNwYXJzZS1rZXlt YXApKSkKLSAgICAgICAgICAgICAgICAgICAoZGVmaW5lLWtleSBtYXAgW21vZGUtbGluZSBkb3du LW1vdXNlLTFdIGVnbG90LW1lbnUpCi0gICAgICAgICAgICAgICAgICAgbWFwKSkpCi0gICAgICh3 aGVuIG5pY2sKLSAgICAgICBgKCI6IgotICAgICAgICAgLChwcm9wZXJ0aXplCi0gICAgICAgICAg IG5pY2sKKyAgICAgIGAoLChwcm9wZXJ0aXplCisgICAgICAgICAgIGVnbG90LW1lbnUtc3RyaW5n CiAgICAgICAgICAgICdmYWNlICdlZ2xvdC1tb2RlLWxpbmUKICAgICAgICAgICAgJ21vdXNlLWZh Y2UgJ21vZGUtbGluZS1oaWdobGlnaHQKLSAgICAgICAgICAgJ2hlbHAtZWNobyAoZm9ybWF0ICJQ cm9qZWN0ICclcydcbm1vdXNlLTE6IExTUCBzZXJ2ZXIgY29udHJvbCBtZW51IiBuaWNrKQorICAg ICAgICAgICAnaGVscC1lY2hvICJFZ2xvdDogRW1hY3MgTFNQIGNsaWVudFxubW91c2UtMTogRGlz cGxheSBtaW5vciBtb2RlIG1lbnUiCiAgICAgICAgICAgICdrZXltYXAgKGxldCAoKG1hcCAobWFr ZS1zcGFyc2Uta2V5bWFwKSkpCi0gICAgICAgICAgICAgICAgICAgICAoZGVmaW5lLWtleSBtYXAg W21vZGUtbGluZSBkb3duLW1vdXNlLTFdIGVnbG90LXNlcnZlci1tZW51KQotICAgICAgICAgICAg ICAgICAgICAgbWFwKSkKLSAgICAgICAsQCh3aGVuIGxhc3QtZXJyb3IKLSAgICAgICAgICAgICBg KCIvIiAsKGVnbG90LS1tb2RlLWxpbmUtcHJvcHMKLSAgICAgICAgICAgICAgICAgICAgICJlcnJv ciIgJ2NvbXBpbGF0aW9uLW1vZGUtbGluZS1mYWlsCi0gICAgICAgICAgICAgICAgICAgICAnKCht b3VzZS0zIGVnbG90LWNsZWFyLXN0YXR1cyAgIkNsZWFyIHRoaXMgc3RhdHVzIikpCi0gICAgICAg ICAgICAgICAgICAgICAoZm9ybWF0ICJBbiBlcnJvciBvY2N1cnJlZDogJXNcbiIgKHBsaXN0LWdl dCBsYXN0LWVycm9yCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDptZXNzYWdlKSkpKSkKLSAgICAgICAgICxAKHdoZW4gKGFu ZCBkb2luZyAobm90IGRvbmUtcCkpCi0gICAgICAgICAgICAgYCgiLyIgLChlZ2xvdC0tbW9kZS1s aW5lLXByb3BzIGRvaW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdjb21waWxhdGlvbi1tb2RlLWxpbmUtcnVuICcoKSkpKQotICAgICAgICAgLEAod2hlbiAo Y2wtcGx1c3AgcGVuZGluZykKLSAgICAgICAgICAgICBgKCIvIiAsKGVnbG90LS1tb2RlLWxpbmUt cHJvcHMKLSAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIiVkIiBwZW5kaW5nKSAnd2Fybmlu ZwotICAgICAgICAgICAgICAgICAgICAgJygobW91c2UtMyBlZ2xvdC1mb3JnZXQtcGVuZGluZy1j b250aW51YXRpb25zCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGb3JnZXQgcGVu ZGluZyBjb250aW51YXRpb25zIikpCi0gICAgICAgICAgICAgICAgICAgICAiTnVtYmVyIG9mIG91 dGdvaW5nLCBcCisgICAgICAgICAgICAgICAgICAgICAoZGVmaW5lLWtleSBtYXAgW21vZGUtbGlu ZSBkb3duLW1vdXNlLTFdIGVnbG90LW1lbnUpCisgICAgICAgICAgICAgICAgICAgICBtYXApKSkK KyAgICAgICh3aGVuIG5pY2sKKyAgICAgICAgYCgiOiIKKyAgICAgICAgICAgLChwcm9wZXJ0aXpl CisgICAgICAgICAgICAgIG5pY2sKKyAgICAgICAgICAgICAgJ2ZhY2UgJ2VnbG90LW1vZGUtbGlu ZQorICAgICAgICAgICAgICAnbW91c2UtZmFjZSAnbW9kZS1saW5lLWhpZ2hsaWdodAorICAgICAg ICAgICAgICAnaGVscC1lY2hvIChmb3JtYXQgIlByb2plY3QgJyVzJ1xubW91c2UtMTogTFNQIHNl cnZlciBjb250cm9sIG1lbnUiIG5pY2spCisgICAgICAgICAgICAgICdrZXltYXAgKGxldCAoKG1h cCAobWFrZS1zcGFyc2Uta2V5bWFwKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAoZGVmaW5l LWtleSBtYXAgW21vZGUtbGluZSBkb3duLW1vdXNlLTFdIGVnbG90LXNlcnZlci1tZW51KQorICAg ICAgICAgICAgICAgICAgICAgICAgbWFwKSkKKyAgICAgICAgICAgLEAod2hlbiBsYXN0LWVycm9y CisgICAgICAgICAgICAgICBgKCIvIiAsKGVnbG90LS1tb2RlLWxpbmUtcHJvcHMKKyAgICAgICAg ICAgICAgICAgICAgICAgICJlcnJvciIgJ2NvbXBpbGF0aW9uLW1vZGUtbGluZS1mYWlsCisgICAg ICAgICAgICAgICAgICAgICAgICAnKChtb3VzZS0zIGVnbG90LWNsZWFyLXN0YXR1cyAgIkNsZWFy IHRoaXMgc3RhdHVzIikpCisgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICJBbiBlcnJv ciBvY2N1cnJlZDogJXNcbiIgKHBsaXN0LWdldCBsYXN0LWVycm9yCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bWVzc2FnZSkpKSkp CisgICAgICAgICAgICxAKHdoZW4gKGFuZCBkb2luZyAobm90IGRvbmUtcCkpCisgICAgICAgICAg ICAgICBgKCIvIiAsKGVnbG90LS1tb2RlLWxpbmUtcHJvcHMgZG9pbmcKKyAgICAgICAgICAgICAg ICAgICAgICAgICdjb21waWxhdGlvbi1tb2RlLWxpbmUtcnVuICcoKSkpKQorICAgICAgICAgICAs QCh3aGVuIChjbC1wbHVzcCBwZW5kaW5nKQorICAgICAgICAgICAgICAgYCgiLyIgLChlZ2xvdC0t bW9kZS1saW5lLXByb3BzCisgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICIlZCIgcGVu ZGluZykgJ3dhcm5pbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICcoKG1vdXNlLTMgZWdsb3Qt Zm9yZ2V0LXBlbmRpbmctY29udGludWF0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJGb3JnZXQgcGVuZGluZyBjb250aW51YXRpb25zIikpCisgICAgICAgICAgICAgICAgICAgICAg ICAiTnVtYmVyIG9mIG91dGdvaW5nLCBcCiBzdGlsbCB1bmFuc3dlcmVkIExTUCByZXF1ZXN0cyB0 byB0aGUgc2VydmVyXG4iKSkpKSkpKSkKIAogKGFkZC10by1saXN0ICdtb2RlLWxpbmUtbWlzYy1p bmZvCi0gICAgICAgICAgICAgYChlZ2xvdC0tbWFuYWdlZC1tb2RlICgiIFsiIGVnbG90LS1tb2Rl LWxpbmUtZm9ybWF0ICJdICIpKSkKKyAgYChlZ2xvdC0tbWFuYWdlZC1tb2RlICgiIFsiIGVnbG90 LS1tb2RlLWxpbmUtZm9ybWF0ICJdICIpKSkKIAogDAogOzs7IEZseW1ha2UgY3VzdG9taXphdGlv bgogOzs7Cis7OyBUT0RPOiB0eXBlIGhpbnQgYW5kIGRpZmZlcmVudCBzaWduYXR1cmUgaGludD8g KGFuZCBmdXR1cmUgcHJvb2YgZ2VuZXJpYyBoaW50PykKKzs7KHB1dCAnZWdsb3QtaGludCAnZmx5 bWFrZS1iaXRtYXAgbmlsKQorOzsocHV0ICdlZ2xvdC1oaW50ICdzZXZlcml0eSAod2FybmluZy1u dW1lcmljLWxldmVsIDpkZWJ1ZykpCis7OyhwdXQgJ2VnbG90LWhpbnQgJ2ZseW1ha2UtdHlwZS1u YW1lICJoaW50IikKKzs7KHB1dCAnZWdsb3QtaGludCAnZmFjZSBuaWwpCisocHV0ICdlZ2xvdC1o aW50ICdmbHltYWtlLWNhdGVnb3J5ICdmbHltYWtlLW5vdGUpCisKIChwdXQgJ2VnbG90LW5vdGUg J2ZseW1ha2UtY2F0ZWdvcnkgJ2ZseW1ha2Utbm90ZSkKIChwdXQgJ2VnbG90LXdhcm5pbmcgJ2Zs eW1ha2UtY2F0ZWdvcnkgJ2ZseW1ha2Utd2FybmluZykKIChwdXQgJ2VnbG90LWVycm9yICdmbHlt YWtlLWNhdGVnb3J5ICdmbHltYWtlLWVycm9yKQpAQCAtMTk0OSwxNCArMTk2MSwxNCBAQCBzdGls bCB1bmFuc3dlcmVkIExTUCByZXF1ZXN0cyB0byB0aGUgc2VydmVyXG4iKSkpKSkpKSkKIChkZWZh bGlhcyAnZWdsb3QtLWRpYWctZGF0YSAnZmx5bWFrZS1kaWFnbm9zdGljLWRhdGEpCiAKIChjbC1s b29wIGZvciBpIGZyb20gMQotICAgICAgICAgZm9yIHR5cGUgaW4gJyhlZ2xvdC1ub3RlIGVnbG90 LXdhcm5pbmcgZWdsb3QtZXJyb3IgKQotICAgICAgICAgZG8gKHB1dCB0eXBlICdmbHltYWtlLW92 ZXJsYXktY29udHJvbAotICAgICAgICAgICAgICAgICBgKChtb3VzZS1mYWNlIC4gaGlnaGxpZ2h0 KQotICAgICAgICAgICAgICAgICAgIChwcmlvcml0eSAuICwoKyA1MCBpKSkKLSAgICAgICAgICAg ICAgICAgICAoa2V5bWFwIC4gLChsZXQgKChtYXAgKG1ha2Utc3BhcnNlLWtleW1hcCkpKQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVmaW5lLWtleSBtYXAgW21vdXNlLTFdCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVnbG90LS1tb3VzZS1jYWxsICdlZ2xv dC1jb2RlLWFjdGlvbnMpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXApKSkp KQorICBmb3IgdHlwZSBpbiAnKGVnbG90LW5vdGUgZWdsb3Qtd2FybmluZyBlZ2xvdC1lcnJvciAp CisgIGRvIChwdXQgdHlwZSAnZmx5bWFrZS1vdmVybGF5LWNvbnRyb2wKKyAgICAgICBgKChtb3Vz ZS1mYWNlIC4gaGlnaGxpZ2h0KQorICAgICAgICAgIChwcmlvcml0eSAuICwoKyA1MCBpKSkKKyAg ICAgICAgICAoa2V5bWFwIC4gLChsZXQgKChtYXAgKG1ha2Utc3BhcnNlLWtleW1hcCkpKQorICAg ICAgICAgICAgICAgICAgICAgICAoZGVmaW5lLWtleSBtYXAgW21vdXNlLTFdCisgICAgICAgICAg ICAgICAgICAgICAgICAgKGVnbG90LS1tb3VzZS1jYWxsICdlZ2xvdC1jb2RlLWFjdGlvbnMpKQor ICAgICAgICAgICAgICAgICAgICAgICBtYXApKSkpKQogCiAMCiA7OzsgUHJvdG9jb2wgaW1wbGVt ZW50YXRpb24gKFJlcXVlc3RzLCBub3RpZmljYXRpb25zLCBldGMpCkBAIC0xOTY1LDcgKzE5Nzcs NyBAQCBzdGlsbCB1bmFuc3dlcmVkIExTUCByZXF1ZXN0cyB0byB0aGUgc2VydmVyXG4iKSkpKSkp KSkKICAgKF9zZXJ2ZXIgbWV0aG9kICZrZXkgJmFsbG93LW90aGVyLWtleXMpCiAgICJIYW5kbGUg dW5rbm93biBub3RpZmljYXRpb24uIgogICAodW5sZXNzIChvciAoc3RyaW5nLXByZWZpeC1wICIk IiAoZm9ybWF0ICIlcyIgbWV0aG9kKSkKLSAgICAgICAgICAgICAgKG5vdCAobWVtcSAnZGlzYWxs b3ctdW5rbm93bi1tZXRob2RzIGVnbG90LXN0cmljdC1tb2RlKSkpCisgICAgICAgICAgICAobm90 IChtZW1xICdkaXNhbGxvdy11bmtub3duLW1ldGhvZHMgZWdsb3Qtc3RyaWN0LW1vZGUpKSkKICAg ICAoZWdsb3QtLXdhcm4gIlNlcnZlciBzZW50IHVua25vd24gbm90aWZpY2F0aW9uIG1ldGhvZCBg JXMnIiBtZXRob2QpKSkKIAogKGNsLWRlZm1ldGhvZCBlZ2xvdC1oYW5kbGUtcmVxdWVzdApAQCAt MTk3OSwyOCArMTk5MSwyOCBAQCBzdGlsbCB1bmFuc3dlcmVkIExTUCByZXF1ZXN0cyB0byB0aGUg c2VydmVyXG4iKSkpKSkpKSkKICAgIkV4ZWN1dGUgQ09NTUFORCBvbiBTRVJWRVIgd2l0aCBgOndv cmtzcGFjZS9leGVjdXRlQ29tbWFuZCcuCiBDT01NQU5EIGlzIGEgc3ltYm9sIG5hbWluZyB0aGUg Y29tbWFuZC4iCiAgIChqc29ucnBjLXJlcXVlc3Qgc2VydmVyIDp3b3Jrc3BhY2UvZXhlY3V0ZUNv bW1hbmQKLSAgICAgICAgICAgICAgICAgICBgKDpjb21tYW5kICwoZm9ybWF0ICIlcyIgY29tbWFu ZCkgOmFyZ3VtZW50cyAsYXJndW1lbnRzKSkpCisgICAgYCg6Y29tbWFuZCAsKGZvcm1hdCAiJXMi IGNvbW1hbmQpIDphcmd1bWVudHMgLGFyZ3VtZW50cykpKQogCiAoY2wtZGVmbWV0aG9kIGVnbG90 LWhhbmRsZS1ub3RpZmljYXRpb24KICAgKF9zZXJ2ZXIgKF9tZXRob2QgKGVxbCB3aW5kb3cvc2hv d01lc3NhZ2UpKSAma2V5IHR5cGUgbWVzc2FnZSkKICAgIkhhbmRsZSBub3RpZmljYXRpb24gd2lu ZG93L3Nob3dNZXNzYWdlLiIKICAgKGVnbG90LS1tZXNzYWdlIChwcm9wZXJ0aXplICJTZXJ2ZXIg cmVwb3J0cyAodHlwZT0lcyk6ICVzIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zh Y2UgKGlmICg8PSB0eXBlIDEpICdlcnJvcikpCi0gICAgICAgICAgICAgICAgICB0eXBlIG1lc3Nh Z2UpKQorICAgICAgICAgICAgICAgICAgICAnZmFjZSAoaWYgKDw9IHR5cGUgMSkgJ2Vycm9yKSkK KyAgICB0eXBlIG1lc3NhZ2UpKQogCiAoY2wtZGVmbWV0aG9kIGVnbG90LWhhbmRsZS1yZXF1ZXN0 CiAgIChfc2VydmVyIChfbWV0aG9kIChlcWwgd2luZG93L3Nob3dNZXNzYWdlUmVxdWVzdCkpICZr ZXkgdHlwZSBtZXNzYWdlIGFjdGlvbnMpCiAgICJIYW5kbGUgc2VydmVyIHJlcXVlc3Qgd2luZG93 L3Nob3dNZXNzYWdlUmVxdWVzdC4iCiAgIChsZXQqICgoYWN0aW9ucyAoYXBwZW5kIGFjdGlvbnMg bmlsKSkgOzsgZ2gjNjI3Ci0gICAgICAgICAobGFiZWwgKGNvbXBsZXRpbmctcmVhZAotICAgICAg ICAgICAgICAgICAoY29uY2F0Ci0gICAgICAgICAgICAgICAgICAoZm9ybWF0IChwcm9wZXJ0aXpl ICJbZWdsb3RdIFNlcnZlciByZXBvcnRzICh0eXBlPSVzKTogJXMiCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdmYWNlIChpZiAoPD0gdHlwZSAxKSAnZXJyb3IpKQotICAg ICAgICAgICAgICAgICAgICAgICAgICB0eXBlIG1lc3NhZ2UpCi0gICAgICAgICAgICAgICAgICAi XG5DaG9vc2UgYW4gb3B0aW9uOiAiKQotICAgICAgICAgICAgICAgICAob3IgKG1hcGNhciAobGFt YmRhIChvYmopIChwbGlzdC1nZXQgb2JqIDp0aXRsZSkpIGFjdGlvbnMpCisgICAgICAgICAgKGxh YmVsIChjb21wbGV0aW5nLXJlYWQKKyAgICAgICAgICAgICAgICAgICAoY29uY2F0CisgICAgICAg ICAgICAgICAgICAgICAoZm9ybWF0IChwcm9wZXJ0aXplICJbZWdsb3RdIFNlcnZlciByZXBvcnRz ICh0eXBlPSVzKTogJXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZhY2UgKGlm ICg8PSB0eXBlIDEpICdlcnJvcikpCisgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgbWVzc2Fn ZSkKKyAgICAgICAgICAgICAgICAgICAgICJcbkNob29zZSBhbiBvcHRpb246ICIpCisgICAgICAg ICAgICAgICAgICAgKG9yIChtYXBjYXIgKGxhbWJkYSAob2JqKSAocGxpc3QtZ2V0IG9iaiA6dGl0 bGUpKSBhY3Rpb25zKQogICAgICAgICAgICAgICAgICAgICAgJygiT0siKSkKLSAgICAgICAgICAg ICAgICAgbmlsIHQgKHBsaXN0LWdldCAoZWx0IGFjdGlvbnMgMCkgOnRpdGxlKSkpKQorICAgICAg ICAgICAgICAgICAgIG5pbCB0IChwbGlzdC1nZXQgKGVsdCBhY3Rpb25zIDApIDp0aXRsZSkpKSkK ICAgICAoaWYgbGFiZWwgYCg6dGl0bGUgLGxhYmVsKSA6bnVsbCkpKQogCiAoY2wtZGVmbWV0aG9k IGVnbG90LWhhbmRsZS1ub3RpZmljYXRpb24KQEAgLTIwMTMsODUgKzIwMjUsODUgQEAgQ09NTUFO RCBpcyBhIHN5bWJvbCBuYW1pbmcgdGhlIGNvbW1hbmQuIgogCiAoY2wtZGVmbWV0aG9kIGVnbG90 LWhhbmRsZS1ub3RpZmljYXRpb24KICAgKF9zZXJ2ZXIgKF9tZXRob2QgKGVxbCB0ZXh0RG9jdW1l bnQvcHVibGlzaERpYWdub3N0aWNzKSkgJmtleSB1cmkgZGlhZ25vc3RpY3MKLSAgICAgICAgICAg JmFsbG93LW90aGVyLWtleXMpIDsgRklYTUU6IGRvZXNuJ3QgcmVzcGVjdCBgZWdsb3Qtc3RyaWN0 LW1vZGUnCisgICAgJmFsbG93LW90aGVyLWtleXMpIDsgRklYTUU6IGRvZXNuJ3QgcmVzcGVjdCBg ZWdsb3Qtc3RyaWN0LW1vZGUnCiAgICJIYW5kbGUgbm90aWZpY2F0aW9uIHB1Ymxpc2hEaWFnbm9z dGljcy4iCiAgIChjbC1mbGV0ICgoZWdsb3QtLWRpYWctdHlwZSAoc2V2KQogICAgICAgICAgICAg ICAoY29uZCAoKG51bGwgc2V2KSAnZWdsb3QtZXJyb3IpCi0gICAgICAgICAgICAgICAgICAgICgo PD0gc2V2IDEpICdlZ2xvdC1lcnJvcikKLSAgICAgICAgICAgICAgICAgICAgKCg9IHNldiAyKSAg J2VnbG90LXdhcm5pbmcpCi0gICAgICAgICAgICAgICAgICAgICh0ICAgICAgICAgICdlZ2xvdC1u b3RlKSkpCi0gICAgICAgICAgICAobWVzcyAoc291cmNlIGNvZGUgbWVzc2FnZSkKLSAgICAgICAg ICAgICAgKGNvbmNhdCBzb3VyY2UgKGFuZCBjb2RlIChmb3JtYXQgIiBbJXNdIiBjb2RlKSkgIjog IiBtZXNzYWdlKSkpCisgICAgICAgICAgICAgICAgKCg8PSBzZXYgMSkgJ2VnbG90LWVycm9yKQor ICAgICAgICAgICAgICAgICgoPSBzZXYgMikgICdlZ2xvdC13YXJuaW5nKQorICAgICAgICAgICAg ICAgICh0ICAgICAgICAgICdlZ2xvdC1ub3RlKSkpCisgICAgICAgICAgICAgKG1lc3MgKHNvdXJj ZSBjb2RlIG1lc3NhZ2UpCisgICAgICAgICAgICAgICAoY29uY2F0IHNvdXJjZSAoYW5kIGNvZGUg KGZvcm1hdCAiIFslc10iIGNvZGUpKSAiOiAiIG1lc3NhZ2UpKSkKICAgICAoaWYtbGV0ICgoYnVm ZmVyIChmaW5kLWJ1ZmZlci12aXNpdGluZyAoZWdsb3QtLXVyaS10by1wYXRoIHVyaSkpKSkKLSAg ICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmZmVyCi0gICAgICAgICAgKGNsLWxvb3AKLSAg ICAgICAgICAgZm9yIGRpYWctc3BlYyBhY3Jvc3MgZGlhZ25vc3RpY3MKLSAgICAgICAgICAgY29s bGVjdCAoZWdsb3QtLWRiaW5kICgoRGlhZ25vc3RpYykgcmFuZ2UgY29kZSBtZXNzYWdlIHNldmVy aXR5IHNvdXJjZSB0YWdzKQotICAgICAgICAgICAgICAgICAgICAgICBkaWFnLXNwZWMKLSAgICAg ICAgICAgICAgICAgICAgIChzZXRxIG1lc3NhZ2UgKG1lc3Mgc291cmNlIGNvZGUgbWVzc2FnZSkp Ci0gICAgICAgICAgICAgICAgICAgICAocGNhc2UtbGV0Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgKChgKCxiZWcgLiAsZW5kKSAoZWdsb3QtLXJhbmdlLXJlZ2lvbiByYW5nZSkpKQotICAgICAg ICAgICAgICAgICAgICAgICA7OyBGYWxsYmFjayB0byBgZmx5bWFrZS1kaWFnLXJlZ2lvbicgaWYg c2VydmVyCi0gICAgICAgICAgICAgICAgICAgICAgIDs7IGJvdGNoZWQgdGhlIHJhbmdlCi0gICAg ICAgICAgICAgICAgICAgICAgICh3aGVuICg9IGJlZyBlbmQpCi0gICAgICAgICAgICAgICAgICAg ICAgICAgKGlmLWxldCogKChzdCAocGxpc3QtZ2V0IHJhbmdlIDpzdGFydCkpCisgICAgICAod2l0 aC1jdXJyZW50LWJ1ZmZlciBidWZmZXIKKyAgICAgICAgKGNsLWxvb3AKKyAgICAgICAgICBmb3Ig ZGlhZy1zcGVjIGFjcm9zcyBkaWFnbm9zdGljcworICAgICAgICAgIGNvbGxlY3QgKGVnbG90LS1k YmluZCAoKERpYWdub3N0aWMpIHJhbmdlIGNvZGUgbWVzc2FnZSBzZXZlcml0eSBzb3VyY2UgdGFn cykKKyAgICAgICAgICAgICAgICAgICAgZGlhZy1zcGVjCisgICAgICAgICAgICAgICAgICAgIChz ZXRxIG1lc3NhZ2UgKG1lc3Mgc291cmNlIGNvZGUgbWVzc2FnZSkpCisgICAgICAgICAgICAgICAg ICAgIChwY2FzZS1sZXQKKyAgICAgICAgICAgICAgICAgICAgICAoKGAoLGJlZyAuICxlbmQpIChl Z2xvdC0tcmFuZ2UtcmVnaW9uIHJhbmdlKSkpCisgICAgICAgICAgICAgICAgICAgICAgOzsgRmFs bGJhY2sgdG8gYGZseW1ha2UtZGlhZy1yZWdpb24nIGlmIHNlcnZlcgorICAgICAgICAgICAgICAg ICAgICAgIDs7IGJvdGNoZWQgdGhlIHJhbmdlCisgICAgICAgICAgICAgICAgICAgICAgKHdoZW4g KD0gYmVnIGVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIChpZi1sZXQqICgoc3QgKHBsaXN0 LWdldCByYW5nZSA6c3RhcnQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo ZGlhZy1yZWdpb24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmbHltYWtl LWRpYWctcmVnaW9uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJl bnQtYnVmZmVyKSAoMSsgKHBsaXN0LWdldCBzdCA6bGluZSkpCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHBsaXN0LWdldCBzdCA6Y2hhcmFjdGVyKSkpKQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoc2V0cSBiZWcgKGNhciBkaWFnLXJlZ2lvbikgZW5kIChjZHIg ZGlhZy1yZWdpb24pKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVnbG90LS13aWRlbmlu ZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmbHltYWtlLWRpYWctcmVn aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY3VycmVudC1idWZm ZXIpICgxKyAocGxpc3QtZ2V0IHN0IDpsaW5lKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChwbGlzdC1nZXQgc3QgOmNoYXJhY3RlcikpKSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgKHNldHEgYmVnIChjYXIgZGlhZy1yZWdpb24pIGVuZCAoY2RyIGRpYWctcmVn aW9uKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGVnbG90LS13aWRlbmluZwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHNldHEgYmVnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICgxKyAocGxpc3QtZ2V0IChwbGlzdC1nZXQgcmFuZ2UgOnN0YXJ0KSA6bGluZSkp KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlv bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSsgKHBsaXN0LWdldCAocGxpc3Qt Z2V0IHJhbmdlIDpzdGFydCkgOmxpbmUpKSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHNldHEgZW5kCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtZW5kLXBv c2l0aW9uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxKyAocGxpc3QtZ2V0 IChwbGlzdC1nZXQgcmFuZ2UgOmVuZCkgOmxpbmUpKSkpKSkpCi0gICAgICAgICAgICAgICAgICAg ICAgIChlZ2xvdC0tbWFrZS1kaWFnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlu ZS1lbmQtcG9zaXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDErIChwbGlz dC1nZXQgKHBsaXN0LWdldCByYW5nZSA6ZW5kKSA6bGluZSkpKSkpKSkKKyAgICAgICAgICAgICAg ICAgICAgICAoZWdsb3QtLW1ha2UtZGlhZwogICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJl bnQtYnVmZmVyKSBiZWcgZW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAoZWdsb3QtLWRpYWct dHlwZSBzZXZlcml0eSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgYCgoZWdsb3Qt bHNwLWRpYWcgLiAsZGlhZy1zcGVjKSkKICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuLWxl dCAoKGZhY2VzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2wtbG9vcCBm b3IgdGFnIGFjcm9zcyB0YWdzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB3aGVuIChhbGlzdC1nZXQgdGFnIGVnbG90LS10YWctZmFjZXMpCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0IGl0KSkpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsLWxvb3AgZm9yIHRhZyBhY3Jvc3MgdGFn cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hlbiAoYWxpc3QtZ2V0 IHRhZyBlZ2xvdC0tdGFnLWZhY2VzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29sbGVjdCBpdCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICBgKChmYWNlIC4g LGZhY2VzKSkpKSkpCi0gICAgICAgICAgIGludG8gZGlhZ3MKLSAgICAgICAgICAgZmluYWxseSAo Y29uZCAoKGFuZAorICAgICAgICAgIGludG8gZGlhZ3MKKyAgICAgICAgICBmaW5hbGx5IChjb25k ICgoYW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBvbmx5IGFkZCB0byBjdXJyZW50 IHJlcG9ydCBpZiBGbHltYWtlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBzdGFydHMg b24gaWRsZS10aW1lciAoZ2l0aHViIzk1OCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChu b3QgKG51bGwgZmx5bWFrZS1uby1jaGFuZ2VzLXRpbWVvdXQpKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgZWdsb3QtLWN1cnJlbnQtZmx5bWFrZS1yZXBvcnQtZm4pCiAgICAgICAgICAgICAg ICAgICAgICAgICAgIChlZ2xvdC0tcmVwb3J0LXRvLWZseW1ha2UgZGlhZ3MpKQotICAgICAgICAg ICAgICAgICAgICAgICAgICh0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIGVnbG90 LS1kaWFnbm9zdGljcyBkaWFncykpKSkpCisgICAgICAgICAgICAgICAgICAgICh0CisgICAgICAg ICAgICAgICAgICAgICAgKHNldHEgZWdsb3QtLWRpYWdub3N0aWNzIGRpYWdzKSkpKSkKICAgICAg IChjbC1sb29wCi0gICAgICAgd2l0aCBwYXRoID0gKGV4cGFuZC1maWxlLW5hbWUgKGVnbG90LS11 cmktdG8tcGF0aCB1cmkpKQotICAgICAgIGZvciBkaWFnLXNwZWMgYWNyb3NzIGRpYWdub3N0aWNz Ci0gICAgICAgY29sbGVjdCAoZWdsb3QtLWRiaW5kICgoRGlhZ25vc3RpYykgY29kZSByYW5nZSBt ZXNzYWdlIHNldmVyaXR5IHNvdXJjZSkgZGlhZy1zcGVjCi0gICAgICAgICAgICAgICAgIChzZXRx IG1lc3NhZ2UgKG1lc3Mgc291cmNlIGNvZGUgbWVzc2FnZSkpCi0gICAgICAgICAgICAgICAgIChs ZXQqICgoc3RhcnQgKHBsaXN0LWdldCByYW5nZSA6c3RhcnQpKQotICAgICAgICAgICAgICAgICAg ICAgICAgKGxpbmUgKDErIChwbGlzdC1nZXQgc3RhcnQgOmxpbmUpKSkKLSAgICAgICAgICAgICAg ICAgICAgICAgIChjaGFyICgxKyAocGxpc3QtZ2V0IHN0YXJ0IDpjaGFyYWN0ZXIpKSkpCi0gICAg ICAgICAgICAgICAgICAgKGVnbG90LS1tYWtlLWRpYWcKLSAgICAgICAgICAgICAgICAgICAgcGF0 aCAoY29ucyBsaW5lIGNoYXIpIG5pbCAoZWdsb3QtLWRpYWctdHlwZSBzZXZlcml0eSkgbWVzc2Fn ZSkpKQotICAgICAgIGludG8gZGlhZ3MKLSAgICAgICBmaW5hbGx5Ci0gICAgICAgKHNldHEgZmx5 bWFrZS1saXN0LW9ubHktZGlhZ25vc3RpY3MKLSAgICAgICAgICAgICAoYXNzb2MtZGVsZXRlLWFs bCBwYXRoIGZseW1ha2UtbGlzdC1vbmx5LWRpYWdub3N0aWNzICMnc3RyaW5nPSkpCi0gICAgICAg KHB1c2ggKGNvbnMgcGF0aCBkaWFncykgZmx5bWFrZS1saXN0LW9ubHktZGlhZ25vc3RpY3MpKSkp KQorICAgICAgICB3aXRoIHBhdGggPSAoZXhwYW5kLWZpbGUtbmFtZSAoZWdsb3QtLXVyaS10by1w YXRoIHVyaSkpCisgICAgICAgIGZvciBkaWFnLXNwZWMgYWNyb3NzIGRpYWdub3N0aWNzCisgICAg ICAgIGNvbGxlY3QgKGVnbG90LS1kYmluZCAoKERpYWdub3N0aWMpIGNvZGUgcmFuZ2UgbWVzc2Fn ZSBzZXZlcml0eSBzb3VyY2UpIGRpYWctc3BlYworICAgICAgICAgICAgICAgICAgKHNldHEgbWVz c2FnZSAobWVzcyBzb3VyY2UgY29kZSBtZXNzYWdlKSkKKyAgICAgICAgICAgICAgICAgIChsZXQq ICgoc3RhcnQgKHBsaXN0LWdldCByYW5nZSA6c3RhcnQpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAobGluZSAoMSsgKHBsaXN0LWdldCBzdGFydCA6bGluZSkpKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAoY2hhciAoMSsgKHBsaXN0LWdldCBzdGFydCA6Y2hhcmFjdGVyKSkpKQorICAg ICAgICAgICAgICAgICAgICAoZWdsb3QtLW1ha2UtZGlhZworICAgICAgICAgICAgICAgICAgICAg IHBhdGggKGNvbnMgbGluZSBjaGFyKSBuaWwgKGVnbG90LS1kaWFnLXR5cGUgc2V2ZXJpdHkpIG1l c3NhZ2UpKSkKKyAgICAgICAgaW50byBkaWFncworICAgICAgICBmaW5hbGx5CisgICAgICAgIChz ZXRxIGZseW1ha2UtbGlzdC1vbmx5LWRpYWdub3N0aWNzCisgICAgICAgICAgKGFzc29jLWRlbGV0 ZS1hbGwgcGF0aCBmbHltYWtlLWxpc3Qtb25seS1kaWFnbm9zdGljcyAjJ3N0cmluZz0pKQorICAg ICAgICAocHVzaCAoY29ucyBwYXRoIGRpYWdzKSBmbHltYWtlLWxpc3Qtb25seS1kaWFnbm9zdGlj cykpKSkpCiAKIChjbC1kZWZ1biBlZ2xvdC0tcmVnaXN0ZXItdW5yZWdpc3RlciAoc2VydmVyIHRo aW5ncyBob3cpCiAgICJIZWxwZXIgZm9yIGByZWdpc3RlckNhcGFiaWxpdHknLgogVEhJTkdTIGFy ZSBlaXRoZXIgcmVnaXN0cmF0aW9ucyBvciB1bnJlZ2lzdGVyYXRpb25zIChzaWMpLiIKICAgKGNs LWxvb3AKLSAgIGZvciB0aGluZyBpbiAoY2wtY29lcmNlIHRoaW5ncyAnbGlzdCkKLSAgIGRvIChl Z2xvdC0tZGJpbmQgKChSZWdpc3RyYXRpb24pIGlkIG1ldGhvZCByZWdpc3Rlck9wdGlvbnMpIHRo aW5nCi0gICAgICAgIChhcHBseSAoY2wtZWNhc2UgaG93Ci0gICAgICAgICAgICAgICAgIChyZWdp c3RlciAnZWdsb3QtcmVnaXN0ZXItY2FwYWJpbGl0eSkKLSAgICAgICAgICAgICAgICAgKHVucmVn aXN0ZXIgJ2VnbG90LXVucmVnaXN0ZXItY2FwYWJpbGl0eSkpCi0gICAgICAgICAgICAgICBzZXJ2 ZXIgKGludGVybiBtZXRob2QpIGlkIHJlZ2lzdGVyT3B0aW9ucykpKSkKKyAgICBmb3IgdGhpbmcg aW4gKGNsLWNvZXJjZSB0aGluZ3MgJ2xpc3QpCisgICAgZG8gKGVnbG90LS1kYmluZCAoKFJlZ2lz dHJhdGlvbikgaWQgbWV0aG9kIHJlZ2lzdGVyT3B0aW9ucykgdGhpbmcKKyAgICAgICAgIChhcHBs eSAoY2wtZWNhc2UgaG93CisgICAgICAgICAgICAgICAgICAocmVnaXN0ZXIgJ2VnbG90LXJlZ2lz dGVyLWNhcGFiaWxpdHkpCisgICAgICAgICAgICAgICAgICAodW5yZWdpc3RlciAnZWdsb3QtdW5y ZWdpc3Rlci1jYXBhYmlsaXR5KSkKKyAgICAgICAgICAgc2VydmVyIChpbnRlcm4gbWV0aG9kKSBp ZCByZWdpc3Rlck9wdGlvbnMpKSkpCiAKIChjbC1kZWZtZXRob2QgZWdsb3QtaGFuZGxlLXJlcXVl c3QKICAgKHNlcnZlciAoX21ldGhvZCAoZXFsIGNsaWVudC9yZWdpc3RlckNhcGFiaWxpdHkpKSAm a2V5IHJlZ2lzdHJhdGlvbnMpCkBAIC0yMTAwLDcgKzIxMTIsNyBAQCBUSElOR1MgYXJlIGVpdGhl ciByZWdpc3RyYXRpb25zIG9yIHVucmVnaXN0ZXJhdGlvbnMgKHNpYykuIgogCiAoY2wtZGVmbWV0 aG9kIGVnbG90LWhhbmRsZS1yZXF1ZXN0CiAgIChzZXJ2ZXIgKF9tZXRob2QgKGVxbCBjbGllbnQv dW5yZWdpc3RlckNhcGFiaWxpdHkpKQotICAgICAgICAgICZrZXkgdW5yZWdpc3RlcmF0aW9ucykg OzsgWFhYOiAidW5yZWdpc3RlcmF0aW9ucyIgKHNpYykKKyAgICAma2V5IHVucmVnaXN0ZXJhdGlv bnMpIDs7IFhYWDogInVucmVnaXN0ZXJhdGlvbnMiIChzaWMpCiAgICJIYW5kbGUgc2VydmVyIHJl cXVlc3QgY2xpZW50L3VucmVnaXN0ZXJDYXBhYmlsaXR5LiIKICAgKGVnbG90LS1yZWdpc3Rlci11 bnJlZ2lzdGVyIHNlcnZlciB1bnJlZ2lzdGVyYXRpb25zICd1bnJlZ2lzdGVyKSkKIApAQCAtMjEx OCwzMSArMjEzMCwzMSBAQCBUSElOR1MgYXJlIGVpdGhlciByZWdpc3RyYXRpb25zIG9yIHVucmVn aXN0ZXJhdGlvbnMgKHNpYykuIgogKGRlZnVuIGVnbG90LS1UZXh0RG9jdW1lbnRJZGVudGlmaWVy ICgpCiAgICJDb21wdXRlIFRleHREb2N1bWVudElkZW50aWZpZXIgb2JqZWN0IGZvciBjdXJyZW50 IGJ1ZmZlci4iCiAgIGAoOnVyaSAsKGVnbG90LS1wYXRoLXRvLXVyaSAob3IgYnVmZmVyLWZpbGUt bmFtZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZ25vcmUtZXJyb3JzCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLWZpbGUtbmFtZQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXItYmFzZS1idWZmZXIpKSkp KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZ25vcmUtZXJyb3JzCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1maWxlLW5hbWUKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXItYmFzZS1idWZmZXIpKSkpKSkpCiAK IChkZWZ2YXItbG9jYWwgZWdsb3QtLXZlcnNpb25lZC1pZGVudGlmaWVyIDApCiAKIChkZWZ1biBl Z2xvdC0tVmVyc2lvbmVkVGV4dERvY3VtZW50SWRlbnRpZmllciAoKQogICAiQ29tcHV0ZSBWZXJz aW9uZWRUZXh0RG9jdW1lbnRJZGVudGlmaWVyIG9iamVjdCBmb3IgY3VycmVudCBidWZmZXIuIgog ICAoYXBwZW5kIChlZ2xvdC0tVGV4dERvY3VtZW50SWRlbnRpZmllcikKLSAgICAgICAgICBgKDp2 ZXJzaW9uICxlZ2xvdC0tdmVyc2lvbmVkLWlkZW50aWZpZXIpKSkKKyAgICBgKDp2ZXJzaW9uICxl Z2xvdC0tdmVyc2lvbmVkLWlkZW50aWZpZXIpKSkKIAogKGRlZnVuIGVnbG90LS1UZXh0RG9jdW1l bnRJdGVtICgpCiAgICJDb21wdXRlIFRleHREb2N1bWVudEl0ZW0gb2JqZWN0IGZvciBjdXJyZW50 IGJ1ZmZlci4iCiAgIChhcHBlbmQKLSAgIChlZ2xvdC0tVmVyc2lvbmVkVGV4dERvY3VtZW50SWRl bnRpZmllcikKLSAgIChsaXN0IDpsYW5ndWFnZUlkCi0JIChlZ2xvdC0tbGFuZ3VhZ2UtaWQgKGVn bG90LS1jdXJyZW50LXNlcnZlci1vci1sb3NlKSkKLSAgICAgICAgIDp0ZXh0Ci0gICAgICAgICAo ZWdsb3QtLXdpZGVuaW5nCi0gICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGll cyAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkpKSkpCisgICAgKGVnbG90LS1WZXJzaW9uZWRUZXh0 RG9jdW1lbnRJZGVudGlmaWVyKQorICAgIChsaXN0IDpsYW5ndWFnZUlkCisJICAgIChlZ2xvdC0t bGFuZ3VhZ2UtaWQgKGVnbG90LS1jdXJyZW50LXNlcnZlci1vci1sb3NlKSkKKyAgICAgIDp0ZXh0 CisgICAgICAoZWdsb3QtLXdpZGVuaW5nCisgICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXBy b3BlcnRpZXMgKHBvaW50LW1pbikgKHBvaW50LW1heCkpKSkpKQogCiAoZGVmdW4gZWdsb3QtLVRl eHREb2N1bWVudFBvc2l0aW9uUGFyYW1zICgpCiAgICJDb21wdXRlIFRleHREb2N1bWVudFBvc2l0 aW9uUGFyYW1zLiIKICAgKGxpc3QgOnRleHREb2N1bWVudCAoZWdsb3QtLVRleHREb2N1bWVudElk ZW50aWZpZXIpCi0gICAgICAgIDpwb3NpdGlvbiAoZWdsb3QtLXBvcy10by1sc3AtcG9zaXRpb24p KSkKKyAgICA6cG9zaXRpb24gKGVnbG90LS1wb3MtdG8tbHNwLXBvc2l0aW9uKSkpCiAKIChkZWZ2 YXItbG9jYWwgZWdsb3QtLWxhc3QtaW5zZXJ0ZWQtY2hhciBuaWwKICAgIklmIG5vbi1uaWwsIHZh bHVlIG9mIHRoZSBsYXN0IGluc2VydGVkIGNoYXJhY3RlciBpbiBidWZmZXIuIikKQEAgLTIxNTIs MTIgKzIxNjQsMTIgQEAgVEhJTkdTIGFyZSBlaXRoZXIgcmVnaXN0cmF0aW9ucyBvciB1bnJlZ2lz dGVyYXRpb25zIChzaWMpLiIKICAgKHNldHEgZWdsb3QtLWxhc3QtaW5zZXJ0ZWQtY2hhciBsYXN0 LWlucHV0LWV2ZW50KQogICAobGV0ICgob3QtcHJvdmlkZXIgKGVnbG90LS1zZXJ2ZXItY2FwYWJs ZSA6ZG9jdW1lbnRPblR5cGVGb3JtYXR0aW5nUHJvdmlkZXIpKSkKICAgICAod2hlbiAoYW5kIG90 LXByb3ZpZGVyCi0gICAgICAgICAgICAgICAoaWdub3JlLWVycm9ycyA7IGdpdGh1YiM5MDYsIHNv bWUgTFMncyBzZW5kIGVtcHR5IHN0cmluZ3MKLSAgICAgICAgICAgICAgICAgKG9yIChlcSBsYXN0 LWlucHV0LWV2ZW50Ci0gICAgICAgICAgICAgICAgICAgICAgICAgKHNlcS1maXJzdCAocGxpc3Qt Z2V0IG90LXByb3ZpZGVyIDpmaXJzdFRyaWdnZXJDaGFyYWN0ZXIpKSkKLSAgICAgICAgICAgICAg ICAgICAgIChjbC1maW5kIGxhc3QtaW5wdXQtZXZlbnQKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChwbGlzdC1nZXQgb3QtcHJvdmlkZXIgOm1vcmVUcmlnZ2VyQ2hhcmFjdGVyKQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOmtleSAjJ3NlcS1maXJzdCkpKSkKKyAgICAgICAg ICAgIChpZ25vcmUtZXJyb3JzIDsgZ2l0aHViIzkwNiwgc29tZSBMUydzIHNlbmQgZW1wdHkgc3Ry aW5ncworICAgICAgICAgICAgICAob3IgKGVxIGxhc3QtaW5wdXQtZXZlbnQKKyAgICAgICAgICAg ICAgICAgICAgKHNlcS1maXJzdCAocGxpc3QtZ2V0IG90LXByb3ZpZGVyIDpmaXJzdFRyaWdnZXJD aGFyYWN0ZXIpKSkKKyAgICAgICAgICAgICAgICAoY2wtZmluZCBsYXN0LWlucHV0LWV2ZW50Cisg ICAgICAgICAgICAgICAgICAocGxpc3QtZ2V0IG90LXByb3ZpZGVyIDptb3JlVHJpZ2dlckNoYXJh Y3RlcikKKyAgICAgICAgICAgICAgICAgIDprZXkgIydzZXEtZmlyc3QpKSkpCiAgICAgICAoZWds b3QtZm9ybWF0IChwb2ludCkgbmlsIGxhc3QtaW5wdXQtZXZlbnQpKSkpCiAKIChkZWZ2YXIgZWds b3QtLXdvcmtzcGFjZS1zeW1ib2xzLWNhY2hlIChtYWtlLWhhc2gtdGFibGUgOnRlc3QgIydlcXVh bCkKQEAgLTIxNzAsMTQgKzIxODIsMTQgQEAgVEhJTkdTIGFyZSBlaXRoZXIgcmVnaXN0cmF0aW9u cyBvciB1bnJlZ2lzdGVyYXRpb25zIChzaWMpLiIKIAogKGRlZnVuIGVnbG90LS1Db21wbGV0aW9u UGFyYW1zICgpCiAgIChhcHBlbmQKLSAgIChlZ2xvdC0tVGV4dERvY3VtZW50UG9zaXRpb25QYXJh bXMpCi0gICBgKDpjb250ZXh0Ci0gICAgICwoaWYtbGV0ICh0cmlnZ2VyIChhbmQgKGNoYXJhY3Rl cnAgZWdsb3QtLWxhc3QtaW5zZXJ0ZWQtY2hhcikKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoY2wtZmluZCBlZ2xvdC0tbGFzdC1pbnNlcnRlZC1jaGFyCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGVnbG90LS1zZXJ2ZXItY2FwYWJsZSA6Y29tcGxldGlvblByb3Zp ZGVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA6dHJpZ2dlckNoYXJhY3RlcnMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOmtleSAobGFtYmRhIChzdHIpIChhcmVmIHN0ciAwKSkKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA6dGVzdCAjJ2NoYXItZXF1YWwpKSkKKyAgICAoZWdsb3Qt LVRleHREb2N1bWVudFBvc2l0aW9uUGFyYW1zKQorICAgIGAoOmNvbnRleHQKKyAgICAgICAsKGlm LWxldCAodHJpZ2dlciAoYW5kIChjaGFyYWN0ZXJwIGVnbG90LS1sYXN0LWluc2VydGVkLWNoYXIp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2wtZmluZCBlZ2xvdC0tbGFzdC1pbnNlcnRl ZC1jaGFyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlZ2xvdC0tc2VydmVyLWNhcGFi bGUgOmNvbXBsZXRpb25Qcm92aWRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDp0 cmlnZ2VyQ2hhcmFjdGVycykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmtleSAobGFt YmRhIChzdHIpIChhcmVmIHN0ciAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnRl c3QgIydjaGFyLWVxdWFsKSkpCiAgICAgICAgICAgYCg6dHJpZ2dlcktpbmQgMiA6dHJpZ2dlckNo YXJhY3RlciAsdHJpZ2dlcikgYCg6dHJpZ2dlcktpbmQgMSkpKSkpCiAKIChkZWZ2YXItbG9jYWwg ZWdsb3QtLXJlY2VudC1jaGFuZ2VzIG5pbApAQCAtMjE5OCw2MyArMjIxMCw2MyBAQCBUSElOR1Mg YXJlIGVpdGhlciByZWdpc3RyYXRpb25zIG9yIHVucmVnaXN0ZXJhdGlvbnMgKHNpYykuIgogICAg IDs7IGRlbGV0ZWQvYWRkZWQpLiAgQWxzbyByZWNvcmQgbWFya2VycyBvZiBCRUcgYW5kIEVORAog ICAgIDs7IChnaXRodWIjMjU5KQogICAgIChwdXNoIGAoLChlZ2xvdC0tcG9zLXRvLWxzcC1wb3Np dGlvbiBiZWcpCi0gICAgICAgICAgICAsKGVnbG90LS1wb3MtdG8tbHNwLXBvc2l0aW9uIGVuZCkK LSAgICAgICAgICAgICgsYmVnIC4gLChjb3B5LW1hcmtlciBiZWcgbmlsKSkKLSAgICAgICAgICAg ICgsZW5kIC4gLChjb3B5LW1hcmtlciBlbmQgdCkpKQotICAgICAgICAgIGVnbG90LS1yZWNlbnQt Y2hhbmdlcykpKQorICAgICAgICAgICAgICwoZWdsb3QtLXBvcy10by1sc3AtcG9zaXRpb24gZW5k KQorICAgICAgICAgICAgICgsYmVnIC4gLChjb3B5LW1hcmtlciBiZWcgbmlsKSkKKyAgICAgICAg ICAgICAoLGVuZCAuICwoY29weS1tYXJrZXIgZW5kIHQpKSkKKyAgICAgIGVnbG90LS1yZWNlbnQt Y2hhbmdlcykpKQogCiAoZGVmdW4gZWdsb3QtLWFmdGVyLWNoYW5nZSAoYmVnIGVuZCBwcmUtY2hh bmdlLWxlbmd0aCkKICAgIkhvb2sgb250byBgYWZ0ZXItY2hhbmdlLWZ1bmN0aW9ucycuCiBSZWNv cmRzIEJFRywgRU5EIGFuZCBQUkUtQ0hBTkdFLUxFTkdUSCBsb2NhbGx5LiIKICAgKGNsLWluY2Yg ZWdsb3QtLXZlcnNpb25lZC1pZGVudGlmaWVyKQogICAocGNhc2UgKGFuZCAobGlzdHAgZWdsb3Qt LXJlY2VudC1jaGFuZ2VzKQotICAgICAgICAgICAgICAoY2FyIGVnbG90LS1yZWNlbnQtY2hhbmdl cykpCisgICAgICAgICAgIChjYXIgZWdsb3QtLXJlY2VudC1jaGFuZ2VzKSkKICAgICAoYCgsbHNw LWJlZyAsbHNwLWVuZAotICAgICAgICAgICAgICAgICgsYi1iZWcgLiAsYi1iZWctbWFya2VyKQot ICAgICAgICAgICAgICAgICgsYi1lbmQgLiAsYi1lbmQtbWFya2VyKSkKLSAgICAgOzsgZ2l0aHVi IzI1OSBhbmQgZ2l0aHViIzM2NzogV2l0aCBgY2FwaXRhbGl6ZS13b3JkJyBvciBzb21lc3VjaCwK LSAgICAgOzsgYGJlZm9yZS1jaGFuZ2UtZnVuY3Rpb25zJyBhbHdheXMgcmVjb3JkcyB0aGUgd2hv bGUgd29yZCdzCi0gICAgIDs7IGBiLWJlZycgYW5kIGBiLWVuZCcuICBTaW1pbGFybHksIHdoZW4g Y29hbGVzY2luZyB0d28gbGluZXMKLSAgICAgOzsgaW50byBvbmUsIGBmaWxsLXBhcmFncmFwaCcg dGhleSBtYXJrIHRoZSBlbmQgb2YgdGhlIGZpcnN0IGxpbmUKLSAgICAgOzsgdXAgdG8gdGhlIGVu ZCBvZiB0aGUgc2Vjb25kIGxpbmUuICBJbiBib3RoIHNpdHVhdGlvbnMsIGFyZ3MKLSAgICAgOzsg cmVjZWl2ZWQgaGVyZSBjb250cmFkaWN0IHRoYXQgaW5mb3JtYXRpb246IGBiZWcnIGFuZCBgZW5k JwotICAgICA7OyB3aWxsIGRpZmZlciBieSAxIGFuZCB3aWxsIGxpa2VseSBvbmx5IGVuY29tcGFz cyB0aGUgbGV0dGVyCi0gICAgIDs7IHRoYXQgd2FzIGNhcGl0YWxpemVkIG9yLCBpbiB0aGUgc2Vu dGVuY2Utam9pbmluZyBzaXR1YXRpb24sCi0gICAgIDs7IHRoZSByZXBsYWNlbWVudCBvZiB0aGUg bmV3bGluZSB3aXRoIGEgc3BhY2UuICBUaGF0J3Mgd2Uga2VlcAotICAgICA7OyBtYXJrZXJzIF9h bmRfIHBvc2l0aW9ucyBzbyB3ZSdyZSBhYmxlIHRvIGRldGVjdCBhbmQgY29ycmVjdAotICAgICA7 OyB0aGlzLiAgV2UgaWdub3JlIGBiZWcnLCBgbGVuJyBhbmQgYHByZS1jaGFuZ2UtbGVuJyBhbmQg c2VuZAotICAgICA7OyAiZnVsbGVyIiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVnaW9uIGZyb20g dGhlIG1hcmtlcnMuICBJJ3ZlCi0gICAgIDs7IGFsc28gZXhwZXJpbWVudGVkIHdpdGggZG9pbmcg dGhpcyB1bmNvbmRpdGlvbmFsbHkgYnV0IGl0IHNlZW1zCi0gICAgIDs7IHRvIGJyZWFrIHdoZW4g bmV3bGluZXMgYXJlIGFkZGVkLgotICAgICAoaWYgKGFuZCAoPSBiLWVuZCBiLWVuZC1tYXJrZXIp ICg9IGItYmVnIGItYmVnLW1hcmtlcikKLSAgICAgICAgICAgICAgKG9yICgvPSBiZWcgYi1iZWcp ICgvPSBlbmQgYi1lbmQpKSkKLSAgICAgICAgIChzZXRjYXIgZWdsb3QtLXJlY2VudC1jaGFuZ2Vz Ci0gICAgICAgICAgICAgICAgIGAoLGxzcC1iZWcgLGxzcC1lbmQgLCgtIGItZW5kLW1hcmtlciBi LWJlZy1tYXJrZXIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLChidWZmZXItc3Vic3Ry aW5nLW5vLXByb3BlcnRpZXMgYi1iZWctbWFya2VyCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYi1lbmQtbWFya2VyKSkpCi0gICAg ICAgKHNldGNhciBlZ2xvdC0tcmVjZW50LWNoYW5nZXMKLSAgICAgICAgICAgICAgIGAoLGxzcC1i ZWcgLGxzcC1lbmQgLHByZS1jaGFuZ2UtbGVuZ3RoCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICwoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIGJlZyBlbmQpKSkpKQorICAgICAgICAo LGItYmVnIC4gLGItYmVnLW1hcmtlcikKKyAgICAgICAgKCxiLWVuZCAuICxiLWVuZC1tYXJrZXIp KQorICAgICAgOzsgZ2l0aHViIzI1OSBhbmQgZ2l0aHViIzM2NzogV2l0aCBgY2FwaXRhbGl6ZS13 b3JkJyBvciBzb21lc3VjaCwKKyAgICAgIDs7IGBiZWZvcmUtY2hhbmdlLWZ1bmN0aW9ucycgYWx3 YXlzIHJlY29yZHMgdGhlIHdob2xlIHdvcmQncworICAgICAgOzsgYGItYmVnJyBhbmQgYGItZW5k Jy4gIFNpbWlsYXJseSwgd2hlbiBjb2FsZXNjaW5nIHR3byBsaW5lcworICAgICAgOzsgaW50byBv bmUsIGBmaWxsLXBhcmFncmFwaCcgdGhleSBtYXJrIHRoZSBlbmQgb2YgdGhlIGZpcnN0IGxpbmUK KyAgICAgIDs7IHVwIHRvIHRoZSBlbmQgb2YgdGhlIHNlY29uZCBsaW5lLiAgSW4gYm90aCBzaXR1 YXRpb25zLCBhcmdzCisgICAgICA7OyByZWNlaXZlZCBoZXJlIGNvbnRyYWRpY3QgdGhhdCBpbmZv cm1hdGlvbjogYGJlZycgYW5kIGBlbmQnCisgICAgICA7OyB3aWxsIGRpZmZlciBieSAxIGFuZCB3 aWxsIGxpa2VseSBvbmx5IGVuY29tcGFzcyB0aGUgbGV0dGVyCisgICAgICA7OyB0aGF0IHdhcyBj YXBpdGFsaXplZCBvciwgaW4gdGhlIHNlbnRlbmNlLWpvaW5pbmcgc2l0dWF0aW9uLAorICAgICAg OzsgdGhlIHJlcGxhY2VtZW50IG9mIHRoZSBuZXdsaW5lIHdpdGggYSBzcGFjZS4gIFRoYXQncyB3 ZSBrZWVwCisgICAgICA7OyBtYXJrZXJzIF9hbmRfIHBvc2l0aW9ucyBzbyB3ZSdyZSBhYmxlIHRv IGRldGVjdCBhbmQgY29ycmVjdAorICAgICAgOzsgdGhpcy4gIFdlIGlnbm9yZSBgYmVnJywgYGxl bicgYW5kIGBwcmUtY2hhbmdlLWxlbicgYW5kIHNlbmQKKyAgICAgIDs7ICJmdWxsZXIiIGluZm9y bWF0aW9uIGFib3V0IHRoZSByZWdpb24gZnJvbSB0aGUgbWFya2Vycy4gIEkndmUKKyAgICAgIDs7 IGFsc28gZXhwZXJpbWVudGVkIHdpdGggZG9pbmcgdGhpcyB1bmNvbmRpdGlvbmFsbHkgYnV0IGl0 IHNlZW1zCisgICAgICA7OyB0byBicmVhayB3aGVuIG5ld2xpbmVzIGFyZSBhZGRlZC4KKyAgICAg IChpZiAoYW5kICg9IGItZW5kIGItZW5kLW1hcmtlcikgKD0gYi1iZWcgYi1iZWctbWFya2VyKQor ICAgICAgICAgICAgKG9yICgvPSBiZWcgYi1iZWcpICgvPSBlbmQgYi1lbmQpKSkKKyAgICAgICAg KHNldGNhciBlZ2xvdC0tcmVjZW50LWNoYW5nZXMKKyAgICAgICAgICBgKCxsc3AtYmVnICxsc3At ZW5kICwoLSBiLWVuZC1tYXJrZXIgYi1iZWctbWFya2VyKQorICAgICAgICAgICAgICwoYnVmZmVy LXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIGItYmVnLW1hcmtlcgorICAgICAgICAgICAgICAgIGIt ZW5kLW1hcmtlcikpKQorICAgICAgICAoc2V0Y2FyIGVnbG90LS1yZWNlbnQtY2hhbmdlcworICAg ICAgICAgIGAoLGxzcC1iZWcgLGxzcC1lbmQgLHByZS1jaGFuZ2UtbGVuZ3RoCisgICAgICAgICAg ICAgLChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgYmVnIGVuZCkpKSkpCiAgICAgKF8g KHNldGYgZWdsb3QtLXJlY2VudC1jaGFuZ2VzIDplbWFjcy1tZXNzdXApKSkKICAgKHdoZW4gZWds b3QtLWNoYW5nZS1pZGxlLXRpbWVyIChjYW5jZWwtdGltZXIgZWdsb3QtLWNoYW5nZS1pZGxlLXRp bWVyKSkKICAgKGxldCAoKGJ1ZiAoY3VycmVudC1idWZmZXIpKSkKICAgICAoc2V0cSBlZ2xvdC0t Y2hhbmdlLWlkbGUtdGltZXIKLSAgICAgICAgICAocnVuLXdpdGgtaWRsZS10aW1lcgotICAgICAg ICAgICBlZ2xvdC1zZW5kLWNoYW5nZXMtaWRsZS10aW1lCi0gICAgICAgICAgIG5pbCAobGFtYmRh ICgpIChlZ2xvdC0td2hlbi1saXZlLWJ1ZmZlciBidWYKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAod2hlbiBlZ2xvdC0tbWFuYWdlZC1tb2RlCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoZWdsb3QtLXNpZ25hbC10ZXh0RG9jdW1lbnQvZGlkQ2hhbmdlKQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHNldHEgZWdsb3QtLWNoYW5nZS1pZGxlLXRpbWVyIG5pbCkpKSkp KSkpCisgICAgICAocnVuLXdpdGgtaWRsZS10aW1lcgorICAgICAgICBlZ2xvdC1zZW5kLWNoYW5n ZXMtaWRsZS10aW1lCisgICAgICAgIG5pbCAobGFtYmRhICgpIChlZ2xvdC0td2hlbi1saXZlLWJ1 ZmZlciBidWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiBlZ2xvdC0tbWFuYWdlZC1t b2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWdsb3QtLXNpZ25hbC10ZXh0RG9jdW1l bnQvZGlkQ2hhbmdlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgZWdsb3QtLWNo YW5nZS1pZGxlLXRpbWVyIG5pbCkpKSkpKSkpCiAKIDs7IEhBQ0shIExhdW5jaGluZyBhIGRlZmVy cmVkIHN5bmMgcmVxdWVzdCB3aXRoIG91dHN0YW5kaW5nIGNoYW5nZXMgaXMgYQogOzsgYmFkIGlk ZWEsIHNpbmNlIHRoYXQgbWlnaHQgbGVhZCB0byB0aGUgcmVxdWVzdCBuZXZlciBoYXZpbmcgYQog OzsgY2hhbmNlIHRvIHJ1biwgYmVjYXVzZSBganNvbnJwYy1jb25uZWN0aW9uLXJlYWR5LXAnLgog KGFkdmljZS1hZGQgIydqc29ucnBjLXJlcXVlc3QgOmJlZm9yZQotICAgICAgICAgICAgKGNsLWZ1 bmN0aW9uIChsYW1iZGEgKF9wcm9jIF9tZXRob2QgX3BhcmFtcyAma2V5Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmZXJyZWQgJmFsbG93LW90aGVyLWtleXMpCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAod2hlbiAoYW5kIGVnbG90LS1tYW5hZ2VkLW1vZGUg ZGVmZXJyZWQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlZ2xvdC0tc2lnbmFsLXRl eHREb2N1bWVudC9kaWRDaGFuZ2UpKSkpCi0gICAgICAgICAgICAnKChuYW1lIC4gZWdsb3QtLXNp Z25hbC10ZXh0RG9jdW1lbnQvZGlkQ2hhbmdlKSkpCisgIChjbC1mdW5jdGlvbiAobGFtYmRhIChf cHJvYyBfbWV0aG9kIF9wYXJhbXMgJmtleQorICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmVy cmVkICZhbGxvdy1vdGhlci1rZXlzKQorICAgICAgICAgICAgICAgICAod2hlbiAoYW5kIGVnbG90 LS1tYW5hZ2VkLW1vZGUgZGVmZXJyZWQpCisgICAgICAgICAgICAgICAgICAgKGVnbG90LS1zaWdu YWwtdGV4dERvY3VtZW50L2RpZENoYW5nZSkpKSkKKyAgJygobmFtZSAuIGVnbG90LS1zaWduYWwt dGV4dERvY3VtZW50L2RpZENoYW5nZSkpKQogCiAoZGVmdmFyLWxvY2FsIGVnbG90LXdvcmtzcGFj ZS1jb25maWd1cmF0aW9uICgpCiAgICJDb25maWd1cmUgTFNQIHNlcnZlcnMgc3BlY2lmaWNhbGx5 IGZvciBhIGdpdmVuIHByb2plY3QuCkBAIC0yMjkxLDggKzIzMDMsOCBAQCBmb3JtYXQgZGVzY3Jp YmVkIGFib3ZlLiIpCiAoZGVmdW4gZWdsb3Qtc2hvdy13b3Jrc3BhY2UtY29uZmlndXJhdGlvbiAo Jm9wdGlvbmFsIHNlcnZlcikKICAgIkR1bXAgYGVnbG90LXdvcmtzcGFjZS1jb25maWd1cmF0aW9u JyBhcyBKU09OIGZvciBkZWJ1Z2dpbmcuIgogICAoaW50ZXJhY3RpdmUgKGxpc3QgKGFuZCAoZWds b3QtY3VycmVudC1zZXJ2ZXIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChlZ2xvdC0tcmVh ZC1zZXJ2ZXIgIlNlcnZlciBjb25maWd1cmF0aW9uIgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChlZ2xvdC1jdXJyZW50LXNlcnZlcikpKSkpCisgICAgICAg ICAgICAgICAgICAgICAgIChlZ2xvdC0tcmVhZC1zZXJ2ZXIgIlNlcnZlciBjb25maWd1cmF0aW9u IgorICAgICAgICAgICAgICAgICAgICAgICAgIChlZ2xvdC1jdXJyZW50LXNlcnZlcikpKSkpCiAg IChsZXQgKChjb25mIChlZ2xvdC0td29ya3NwYWNlLWNvbmZpZ3VyYXRpb24tcGxpc3Qgc2VydmVy KSkpCiAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlICIqRUdMT1Qg d29ya3NwYWNlIGNvbmZpZ3VyYXRpb24qIikKICAgICAgIChlcmFzZS1idWZmZXIpCkBAIC0yMzA1 LDgzICsyMzE3LDgzIEBAIGZvcm1hdCBkZXNjcmliZWQgYWJvdmUuIikKIAogKGRlZnVuIGVnbG90 LS13b3Jrc3BhY2UtY29uZmlndXJhdGlvbiAoc2VydmVyKQogICAoaWYgKGZ1bmN0aW9ucCBlZ2xv dC13b3Jrc3BhY2UtY29uZmlndXJhdGlvbikKLSAgICAgIChmdW5jYWxsIGVnbG90LXdvcmtzcGFj ZS1jb25maWd1cmF0aW9uIHNlcnZlcikKKyAgICAoZnVuY2FsbCBlZ2xvdC13b3Jrc3BhY2UtY29u ZmlndXJhdGlvbiBzZXJ2ZXIpCiAgICAgZWdsb3Qtd29ya3NwYWNlLWNvbmZpZ3VyYXRpb24pKQog CiAoZGVmdW4gZWdsb3QtLXdvcmtzcGFjZS1jb25maWd1cmF0aW9uLXBsaXN0IChzZXJ2ZXIpCiAg ICJSZXR1cm5zIGBlZ2xvdC13b3Jrc3BhY2UtY29uZmlndXJhdGlvbicgc3VpdGFibGUgZm9yIHNl cmlhbGl6YXRpb24uIgogICAobGV0ICgodmFsIChlZ2xvdC0td29ya3NwYWNlLWNvbmZpZ3VyYXRp b24gc2VydmVyKSkpCiAgICAgKG9yIChhbmQgKGNvbnNwIChjYXIgdmFsKSkKLSAgICAgICAgICAg ICAoY2wtbG9vcCBmb3IgKHNlY3Rpb24gLiB2KSBpbiB2YWwKLSAgICAgICAgICAgICAgICAgICAg ICBjb2xsZWN0IChpZiAoa2V5d29yZHAgc2VjdGlvbikgc2VjdGlvbgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoaW50ZXJuIChmb3JtYXQgIjolcyIgc2VjdGlvbikpKQotICAgICAg ICAgICAgICAgICAgICAgIGNvbGxlY3QgdikpCi0gICAgICAgIHZhbCkpKQorICAgICAgICAgIChj bC1sb29wIGZvciAoc2VjdGlvbiAuIHYpIGluIHZhbAorICAgICAgICAgICAgY29sbGVjdCAoaWYg KGtleXdvcmRwIHNlY3Rpb24pIHNlY3Rpb24KKyAgICAgICAgICAgICAgICAgICAgICAoaW50ZXJu IChmb3JtYXQgIjolcyIgc2VjdGlvbikpKQorICAgICAgICAgICAgY29sbGVjdCB2KSkKKyAgICAg IHZhbCkpKQogCiAoZGVmdW4gZWdsb3Qtc2lnbmFsLWRpZENoYW5nZUNvbmZpZ3VyYXRpb24gKHNl cnZlcikKICAgIlNlbmQgYSBgOndvcmtzcGFjZS9kaWRDaGFuZ2VDb25maWd1cmF0aW9uJyBzaWdu YWwgdG8gU0VSVkVSLgogV2hlbiBjYWxsZWQgaW50ZXJhY3RpdmVseSwgdXNlIHRoZSBjdXJyZW50 bHkgYWN0aXZlIHNlcnZlciIKICAgKGludGVyYWN0aXZlIChsaXN0IChlZ2xvdC0tY3VycmVudC1z ZXJ2ZXItb3ItbG9zZSkpKQogICAoanNvbnJwYy1ub3RpZnkKLSAgIHNlcnZlciA6d29ya3NwYWNl L2RpZENoYW5nZUNvbmZpZ3VyYXRpb24KLSAgIChsaXN0Ci0gICAgOnNldHRpbmdzCi0gICAgKG9y IChlZ2xvdC0td29ya3NwYWNlLWNvbmZpZ3VyYXRpb24tcGxpc3Qgc2VydmVyKQorICAgIHNlcnZl ciA6d29ya3NwYWNlL2RpZENoYW5nZUNvbmZpZ3VyYXRpb24KKyAgICAobGlzdAorICAgICAgOnNl dHRpbmdzCisgICAgICAob3IgKGVnbG90LS13b3Jrc3BhY2UtY29uZmlndXJhdGlvbi1wbGlzdCBz ZXJ2ZXIpCiAgICAgICAgIGVnbG90LS17fSkpKSkKIAogKGNsLWRlZm1ldGhvZCBlZ2xvdC1oYW5k bGUtcmVxdWVzdAogICAoc2VydmVyIChfbWV0aG9kIChlcWwgd29ya3NwYWNlL2NvbmZpZ3VyYXRp b24pKSAma2V5IGl0ZW1zKQogICAiSGFuZGxlIHNlcnZlciByZXF1ZXN0IHdvcmtzcGFjZS9jb25m aWd1cmF0aW9uLiIKICAgKGFwcGx5ICMndmVjdG9yCi0gICAgICAgICAobWFwY2FyCi0gICAgICAg ICAgKGVnbG90LS1sYW1iZGEgKChDb25maWd1cmF0aW9uSXRlbSkgc2NvcGVVcmkgc2VjdGlvbikK LSAgICAgICAgICAgICh3aXRoLXRlbXAtYnVmZmVyCi0gICAgICAgICAgICAgIChsZXQqICgodXJp LXBhdGggKGVnbG90LS11cmktdG8tcGF0aCBzY29wZVVyaSkpCi0gICAgICAgICAgICAgICAgICAg ICAoZGVmYXVsdC1kaXJlY3RvcnkKLSAgICAgICAgICAgICAgICAgICAgICAgKGlmIChhbmQgKG5v dCAoc3RyaW5nLWVtcHR5LXAgdXJpLXBhdGgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoZmlsZS1kaXJlY3RvcnktcCB1cmktcGF0aCkpCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAoZmlsZS1uYW1lLWFzLWRpcmVjdG9yeSB1cmktcGF0aCkKLSAgICAgICAgICAgICAgICAg ICAgICAgICAocHJvamVjdC1yb290IChlZ2xvdC0tcHJvamVjdCBzZXJ2ZXIpKSkpKQotICAgICAg ICAgICAgICAgIChzZXRxLWxvY2FsIG1ham9yLW1vZGUgKGNhciAoZWdsb3QtLW1ham9yLW1vZGVz IHNlcnZlcikpKQotICAgICAgICAgICAgICAgIChoYWNrLWRpci1sb2NhbC12YXJpYWJsZXMtbm9u LWZpbGUtYnVmZmVyKQotICAgICAgICAgICAgICAgIChjbC1sb29wIGZvciAod3NlY3Rpb24gbykK LSAgICAgICAgICAgICAgICAgICAgICAgICBvbiAoZWdsb3QtLXdvcmtzcGFjZS1jb25maWd1cmF0 aW9uLXBsaXN0IHNlcnZlcikKLSAgICAgICAgICAgICAgICAgICAgICAgICBieSAjJ2NkZHIKLSAg ICAgICAgICAgICAgICAgICAgICAgICB3aGVuIChzdHJpbmc9Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGlmIChrZXl3b3JkcCB3c2VjdGlvbikKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHN1YnN0cmluZyAoc3ltYm9sLW5hbWUgd3NlY3Rpb24pIDEpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3c2VjdGlvbikKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWN0aW9uKQotICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBv KSkpKQotICAgICAgICAgIGl0ZW1zKSkpCisgICAgKG1hcGNhcgorICAgICAgKGVnbG90LS1sYW1i ZGEgKChDb25maWd1cmF0aW9uSXRlbSkgc2NvcGVVcmkgc2VjdGlvbikKKyAgICAgICAgKHdpdGgt dGVtcC1idWZmZXIKKyAgICAgICAgICAobGV0KiAoKHVyaS1wYXRoIChlZ2xvdC0tdXJpLXRvLXBh dGggc2NvcGVVcmkpKQorICAgICAgICAgICAgICAgICAgKGRlZmF1bHQtZGlyZWN0b3J5CisgICAg ICAgICAgICAgICAgICAgIChpZiAoYW5kIChub3QgKHN0cmluZy1lbXB0eS1wIHVyaS1wYXRoKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbGUtZGlyZWN0b3J5LXAgdXJpLXBhdGgpKQor ICAgICAgICAgICAgICAgICAgICAgIChmaWxlLW5hbWUtYXMtZGlyZWN0b3J5IHVyaS1wYXRoKQor ICAgICAgICAgICAgICAgICAgICAgIChwcm9qZWN0LXJvb3QgKGVnbG90LS1wcm9qZWN0IHNlcnZl cikpKSkpCisgICAgICAgICAgICAoc2V0cS1sb2NhbCBtYWpvci1tb2RlIChjYXIgKGVnbG90LS1t YWpvci1tb2RlcyBzZXJ2ZXIpKSkKKyAgICAgICAgICAgIChoYWNrLWRpci1sb2NhbC12YXJpYWJs ZXMtbm9uLWZpbGUtYnVmZmVyKQorICAgICAgICAgICAgKGNsLWxvb3AgZm9yICh3c2VjdGlvbiBv KQorICAgICAgICAgICAgICBvbiAoZWdsb3QtLXdvcmtzcGFjZS1jb25maWd1cmF0aW9uLXBsaXN0 IHNlcnZlcikKKyAgICAgICAgICAgICAgYnkgIydjZGRyCisgICAgICAgICAgICAgIHdoZW4gKHN0 cmluZz0KKyAgICAgICAgICAgICAgICAgICAgIChpZiAoa2V5d29yZHAgd3NlY3Rpb24pCisgICAg ICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmcgKHN5bWJvbC1uYW1lIHdzZWN0aW9uKSAxKQor ICAgICAgICAgICAgICAgICAgICAgICB3c2VjdGlvbikKKyAgICAgICAgICAgICAgICAgICAgIHNl Y3Rpb24pCisgICAgICAgICAgICAgIHJldHVybiBvKSkpKQorICAgICAgaXRlbXMpKSkKIAogKGRl ZnVuIGVnbG90LS1zaWduYWwtdGV4dERvY3VtZW50L2RpZENoYW5nZSAoKQogICAiU2VuZCB0ZXh0 RG9jdW1lbnQvZGlkQ2hhbmdlIHRvIHNlcnZlci4iCiAgICh3aGVuIGVnbG90LS1yZWNlbnQtY2hh bmdlcwogICAgIChsZXQqICgoc2VydmVyIChlZ2xvdC0tY3VycmVudC1zZXJ2ZXItb3ItbG9zZSkp Ci0gICAgICAgICAgIChzeW5jLWNhcGFiaWxpdHkgKGVnbG90LS1zZXJ2ZXItY2FwYWJsZSA6dGV4 dERvY3VtZW50U3luYykpCi0gICAgICAgICAgIChzeW5jLWtpbmQgKGlmIChudW1iZXJwIHN5bmMt Y2FwYWJpbGl0eSkgc3luYy1jYXBhYmlsaXR5Ci0gICAgICAgICAgICAgICAgICAgICAgICAocGxp c3QtZ2V0IHN5bmMtY2FwYWJpbGl0eSA6Y2hhbmdlKSkpCi0gICAgICAgICAgIChmdWxsLXN5bmMt cCAob3IgKGVxIHN5bmMta2luZCAxKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcSA6 ZW1hY3MtbWVzc3VwIGVnbG90LS1yZWNlbnQtY2hhbmdlcykpKSkKKyAgICAgICAgICAgIChzeW5j LWNhcGFiaWxpdHkgKGVnbG90LS1zZXJ2ZXItY2FwYWJsZSA6dGV4dERvY3VtZW50U3luYykpCisg ICAgICAgICAgICAoc3luYy1raW5kIChpZiAobnVtYmVycCBzeW5jLWNhcGFiaWxpdHkpIHN5bmMt Y2FwYWJpbGl0eQorICAgICAgICAgICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgc3luYy1jYXBh YmlsaXR5IDpjaGFuZ2UpKSkKKyAgICAgICAgICAgIChmdWxsLXN5bmMtcCAob3IgKGVxIHN5bmMt a2luZCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxIDplbWFjcy1tZXNzdXAgZWds b3QtLXJlY2VudC1jaGFuZ2VzKSkpKQogICAgICAgKGpzb25ycGMtbm90aWZ5Ci0gICAgICAgc2Vy dmVyIDp0ZXh0RG9jdW1lbnQvZGlkQ2hhbmdlCi0gICAgICAgKGxpc3QKLSAgICAgICAgOnRleHRE b2N1bWVudCAoZWdsb3QtLVZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXIpCi0gICAgICAg IDpjb250ZW50Q2hhbmdlcwotICAgICAgICAoaWYgZnVsbC1zeW5jLXAKKyAgICAgICAgc2VydmVy IDp0ZXh0RG9jdW1lbnQvZGlkQ2hhbmdlCisgICAgICAgIChsaXN0CisgICAgICAgICAgOnRleHRE b2N1bWVudCAoZWdsb3QtLVZlcnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXIpCisgICAgICAg ICAgOmNvbnRlbnRDaGFuZ2VzCisgICAgICAgICAgKGlmIGZ1bGwtc3luYy1wCiAgICAgICAgICAg ICAodmVjdG9yIGAoOnRleHQgLChlZ2xvdC0td2lkZW5pbmcKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgKHBvaW50LW1pbikKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHBvaW50LW1heCkpKSkpCi0gICAgICAgICAgKGNsLWxvb3AgZm9yIChiZWcgZW5kIGxlbiB0 ZXh0KSBpbiAocmV2ZXJzZSBlZ2xvdC0tcmVjZW50LWNoYW5nZXMpCi0gICAgICAgICAgICAgICAg ICAgOzsgZ2l0aHViIzI1OTogYGNhcGl0YWxpemUtd29yZCcgYW5kIGNvbW1hbmRzIGJhc2VkCi0g ICAgICAgICAgICAgICAgICAgOzsgb24gYGNhc2lmeV9yZWdpb24nIHdpbGwgY2F1c2UgbXVsdGlw bGUgZHVwbGljYXRlCi0gICAgICAgICAgICAgICAgICAgOzsgZW1wdHkgZW50cmllcyBpbiBgZWds b3QtLWJlZm9yZS1jaGFuZ2UnIGNhbGxzCi0gICAgICAgICAgICAgICAgICAgOzsgd2l0aG91dCBh biBgZWdsb3QtLWFmdGVyLWNoYW5nZScgcmVjaXByb2NhbC4KLSAgICAgICAgICAgICAgICAgICA7 OyBXZWVkIHRoZW0gb3V0IGhlcmUuCi0gICAgICAgICAgICAgICAgICAgd2hlbiAobnVtYmVycCBs ZW4pCi0gICAgICAgICAgICAgICAgICAgdmNvbmNhdCBgWywobGlzdCA6cmFuZ2UgYCg6c3RhcnQg LGJlZyA6ZW5kICxlbmQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6cmFu Z2VMZW5ndGggbGVuIDp0ZXh0IHRleHQpXSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChwb2ludC1taW4pCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAocG9pbnQtbWF4KSkpKSkKKyAgICAgICAgICAgIChj bC1sb29wIGZvciAoYmVnIGVuZCBsZW4gdGV4dCkgaW4gKHJldmVyc2UgZWdsb3QtLXJlY2VudC1j aGFuZ2VzKQorICAgICAgICAgICAgICA7OyBnaXRodWIjMjU5OiBgY2FwaXRhbGl6ZS13b3JkJyBh bmQgY29tbWFuZHMgYmFzZWQKKyAgICAgICAgICAgICAgOzsgb24gYGNhc2lmeV9yZWdpb24nIHdp bGwgY2F1c2UgbXVsdGlwbGUgZHVwbGljYXRlCisgICAgICAgICAgICAgIDs7IGVtcHR5IGVudHJp ZXMgaW4gYGVnbG90LS1iZWZvcmUtY2hhbmdlJyBjYWxscworICAgICAgICAgICAgICA7OyB3aXRo b3V0IGFuIGBlZ2xvdC0tYWZ0ZXItY2hhbmdlJyByZWNpcHJvY2FsLgorICAgICAgICAgICAgICA7 OyBXZWVkIHRoZW0gb3V0IGhlcmUuCisgICAgICAgICAgICAgIHdoZW4gKG51bWJlcnAgbGVuKQor ICAgICAgICAgICAgICB2Y29uY2F0IGBbLChsaXN0IDpyYW5nZSBgKDpzdGFydCAsYmVnIDplbmQg LGVuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDpyYW5nZUxlbmd0aCBsZW4gOnRleHQg dGV4dCldKSkpKQogICAgICAgKHNldHEgZWdsb3QtLXJlY2VudC1jaGFuZ2VzIG5pbCkKICAgICAg IChzZXRmIChlZ2xvdC0tc3Bpbm5lciBzZXJ2ZXIpIChsaXN0IG5pbCA6dGV4dERvY3VtZW50L2Rp ZENoYW5nZSB0KSkKICAgICAgIChqc29ucnBjLS1jYWxsLWRlZmVycmVkIHNlcnZlcikpKSkKQEAg LTIzOTAsMzkgKzI0MDIsMTI5IEBAIFdoZW4gY2FsbGVkIGludGVyYWN0aXZlbHksIHVzZSB0aGUg Y3VycmVudGx5IGFjdGl2ZSBzZXJ2ZXIiCiAgICJTZW5kIHRleHREb2N1bWVudC9kaWRPcGVuIHRv IHNlcnZlci4iCiAgIChzZXRxIGVnbG90LS1yZWNlbnQtY2hhbmdlcyBuaWwgZWdsb3QtLXZlcnNp b25lZC1pZGVudGlmaWVyIDApCiAgIChqc29ucnBjLW5vdGlmeQotICAgKGVnbG90LS1jdXJyZW50 LXNlcnZlci1vci1sb3NlKQotICAgOnRleHREb2N1bWVudC9kaWRPcGVuIGAoOnRleHREb2N1bWVu dCAsKGVnbG90LS1UZXh0RG9jdW1lbnRJdGVtKSkpKQorICAgIChlZ2xvdC0tY3VycmVudC1zZXJ2 ZXItb3ItbG9zZSkKKyAgICA6dGV4dERvY3VtZW50L2RpZE9wZW4gYCg6dGV4dERvY3VtZW50ICwo ZWdsb3QtLVRleHREb2N1bWVudEl0ZW0pKSkpCiAKIChkZWZ1biBlZ2xvdC0tc2lnbmFsLXRleHRE b2N1bWVudC9kaWRDbG9zZSAoKQogICAiU2VuZCB0ZXh0RG9jdW1lbnQvZGlkQ2xvc2UgdG8gc2Vy dmVyLiIKICAgKHdpdGgtZGVtb3RlZC1lcnJvcnMKLSAgICAgICJbZWdsb3RdIGVycm9yIHNlbmRp bmcgdGV4dERvY3VtZW50L2RpZENsb3NlOiAlcyIKKyAgICAiW2VnbG90XSBlcnJvciBzZW5kaW5n IHRleHREb2N1bWVudC9kaWRDbG9zZTogJXMiCiAgICAgKGpzb25ycGMtbm90aWZ5Ci0gICAgIChl Z2xvdC0tY3VycmVudC1zZXJ2ZXItb3ItbG9zZSkKLSAgICAgOnRleHREb2N1bWVudC9kaWRDbG9z ZSBgKDp0ZXh0RG9jdW1lbnQgLChlZ2xvdC0tVGV4dERvY3VtZW50SWRlbnRpZmllcikpKSkpCisg ICAgICAoZWdsb3QtLWN1cnJlbnQtc2VydmVyLW9yLWxvc2UpCisgICAgICA6dGV4dERvY3VtZW50 L2RpZENsb3NlIGAoOnRleHREb2N1bWVudCAsKGVnbG90LS1UZXh0RG9jdW1lbnRJZGVudGlmaWVy KSkpKSkKIAogKGRlZnVuIGVnbG90LS1zaWduYWwtdGV4dERvY3VtZW50L3dpbGxTYXZlICgpCiAg ICJTZW5kIHRleHREb2N1bWVudC93aWxsU2F2ZSB0byBzZXJ2ZXIuIgogICAobGV0ICgoc2VydmVy IChlZ2xvdC0tY3VycmVudC1zZXJ2ZXItb3ItbG9zZSkpCi0gICAgICAgIChwYXJhbXMgYCg6cmVh c29uIDEgOnRleHREb2N1bWVudCAsKGVnbG90LS1UZXh0RG9jdW1lbnRJZGVudGlmaWVyKSkpKQor ICAgICAgICAgKHBhcmFtcyBgKDpyZWFzb24gMSA6dGV4dERvY3VtZW50ICwoZWdsb3QtLVRleHRE b2N1bWVudElkZW50aWZpZXIpKSkpCiAgICAgKHdoZW4gKGVnbG90LS1zZXJ2ZXItY2FwYWJsZSA6 dGV4dERvY3VtZW50U3luYyA6d2lsbFNhdmUpCiAgICAgICAoanNvbnJwYy1ub3RpZnkgc2VydmVy IDp0ZXh0RG9jdW1lbnQvd2lsbFNhdmUgcGFyYW1zKSkKICAgICAod2hlbiAoZWdsb3QtLXNlcnZl ci1jYXBhYmxlIDp0ZXh0RG9jdW1lbnRTeW5jIDp3aWxsU2F2ZVdhaXRVbnRpbCkKICAgICAgIChp Z25vcmUtZXJyb3JzCiAgICAgICAgIChlZ2xvdC0tYXBwbHktdGV4dC1lZGl0cwotICAgICAgICAg KGpzb25ycGMtcmVxdWVzdCBzZXJ2ZXIgOnRleHREb2N1bWVudC93aWxsU2F2ZVdhaXRVbnRpbCBw YXJhbXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgOnRpbWVvdXQgMC41KSkpKSkpCisgICAg ICAgICAgKGpzb25ycGMtcmVxdWVzdCBzZXJ2ZXIgOnRleHREb2N1bWVudC93aWxsU2F2ZVdhaXRV bnRpbCBwYXJhbXMKKyAgICAgICAgICAgIDp0aW1lb3V0IDAuNSkpKSkpKQogCiAoZGVmdW4gZWds b3QtLXNpZ25hbC10ZXh0RG9jdW1lbnQvZGlkU2F2ZSAoKQogICAiU2VuZCB0ZXh0RG9jdW1lbnQv ZGlkU2F2ZSB0byBzZXJ2ZXIuIgogICAoZWdsb3QtLXNpZ25hbC10ZXh0RG9jdW1lbnQvZGlkQ2hh bmdlKQogICAoanNvbnJwYy1ub3RpZnkKLSAgIChlZ2xvdC0tY3VycmVudC1zZXJ2ZXItb3ItbG9z ZSkKLSAgIDp0ZXh0RG9jdW1lbnQvZGlkU2F2ZQotICAgKGxpc3QKLSAgICA7OyBUT0RPOiBIYW5k bGUgVGV4dERvY3VtZW50U2F2ZVJlZ2lzdHJhdGlvbk9wdGlvbnMgdG8gY29udHJvbCB0aGlzLgot ICAgIDp0ZXh0IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgKHBvaW50LW1pbikgKHBv aW50LW1heCkpCi0gICAgOnRleHREb2N1bWVudCAoZWdsb3QtLVRleHREb2N1bWVudElkZW50aWZp ZXIpKSkpCisgICAgKGVnbG90LS1jdXJyZW50LXNlcnZlci1vci1sb3NlKQorICAgIDp0ZXh0RG9j dW1lbnQvZGlkU2F2ZQorICAgIChsaXN0CisgICAgICA7OyBUT0RPOiBIYW5kbGUgVGV4dERvY3Vt ZW50U2F2ZVJlZ2lzdHJhdGlvbk9wdGlvbnMgdG8gY29udHJvbCB0aGlzLgorICAgICAgOnRleHQg KGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkK KyAgICAgIDp0ZXh0RG9jdW1lbnQgKGVnbG90LS1UZXh0RG9jdW1lbnRJZGVudGlmaWVyKSkpKQor CisoZGVmdW4gZWdsb3QtLWlubGF5LWhpbnQtaGFuZGxlciAoYnVmZmVyIGhpbnRzIHJlcG9ydC1m bikKKyAgKHByaW50IHJlcG9ydC1mbikKKyAgOzsgTWFrZSBvdmVybGF5cyBmb3IgdGhlbS4KKyAg KGxldCAoZGlhZ3MgbmlsKQorICAgIChzZXEtZG9zZXEgKHZhbHVlIGhpbnRzKQorICAgICAgKGNs LWxvb3AgZm9yIHZhbCBiZWluZyB0aGUgZWxlbWVudHMgb2YKKyAgICAgICAgKGlmIChzdHJpbmdw IChwbGlzdC1nZXQgdmFsdWUgOmxhYmVsKSkKKyAgICAgICAgICAobGlzdCAocGxpc3QtZ2V0IHZh bHVlIDpsYWJlbCkpCisgICAgICAgICAgKHBsaXN0LWdldCB2YWx1ZSA6bGFiZWwpKQorICAgICAg ICBkbworCSAgICAgIChlZ2xvdC0td2lkZW5pbmcKKwkgICAgICAgIChsZXQgKAorICAgICAgICAg ICAgICAgICAobGluZSAocGxpc3QtZ2V0IChwbGlzdC1nZXQgdmFsdWUgOnBvc2l0aW9uKSA6bGlu ZSkpCisgICAgICAgICAgICAgICAgIChjb2wgKHBsaXN0LWdldCAocGxpc3QtZ2V0IHZhbHVlIDpw b3NpdGlvbikgOmNoYXJhY3RlcikpCisgICAgICAgICAgICAgICAgIChzb3VyY2UgKGlmIChzdHJp bmdwIChwbGlzdC1nZXQgdmFsdWUgOmxhYmVsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg IChwbGlzdC1nZXQgKHBsaXN0LWdldCAocGxpc3QtZ2V0IHZhbHVlIDpkYXRhKSA6dGV4dF9kb2N1 bWVudCkgOnVyaSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgKHBsaXN0 LWdldCAocGxpc3QtZ2V0IChjYXIgdmFsdWUpIDpsYWJlbCkgOmxvY2F0aW9uKSA6dXJpKSkpCisg ICAgICAgICAgICAgICAgICh0ZXh0CisgICAgICAgICAgICAgICAgICAgKHByb3BlcnRpemUKKyAg ICAgICAgICAgICAgICAgICAgIChjb25jYXQKKyAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4g KHBsaXN0LWdldCB2YWx1ZSA6cGFkZGluZ0xlZnQpICIgIikKKyAgICAgICAgICAgICAgICAgICAg ICAgKGlmIChzdHJpbmdwIHZhbCkgdmFsIChwbGlzdC1nZXQgdmFsIDp2YWx1ZSkpCisgICAgICAg ICAgICAgICAgICAgICAgICh3aGVuIChwbGlzdC1nZXQgdmFsdWUgOnBhZGRpbmdSaWdodCkgIiAi KSkKKyAgICAgICAgICAgICAgICAgICAgICdmYWNlICdlZ2xvdC1pbmxheS1oaW50KQorICAgICAg ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKHByaW50ICJz b3VyY2UiKQorICAgICAgICAgICAgKHByaW50IHNvdXJjZSkKKyAgICAgICAgICAgICh3aXRoLWN1 cnJlbnQtYnVmZmVyIGJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcmludCAo cGxpc3QtZ2V0IHZhbHVlIDpwb3NpdGlvbikpCisgICAgICAgICAgICAocHJpbnQgKGVnbG90LS1s c3AtcG9zaXRpb24tdG8tcG9pbnQgKHBsaXN0LWdldCB2YWx1ZSA6cG9zaXRpb24pKSkKKyAgICAg ICAgICAgIChwcmludCAoZWdsb3QtLXVyaS10by1wYXRoIHNvdXJjZSkpCisgICAgICAgICAgICAg IChwdXNoIChlZ2xvdC0tbWFrZS1kaWFnCisgICAgICAgICAgICAgICAgICAgICAgKGV4cGFuZC1m aWxlLW5hbWUgKGVnbG90LS11cmktdG8tcGF0aCBzb3VyY2UpKQorICAgICAgICAgICAgICAgICAg ICA7OyBGSVhNRTogd3JvbmcgY29vcmRpbmF0ZXM/CisgICAgICAgICAgICAgICAgICAgIDs7IFRP RE86IGNoZWNrIGRpYWcgY29ycmVjdGx5IHVwZGF0ZXMKKyAgICAgICAgICAgICAgICAgICAgKGNv bnMgKDErIGxpbmUpICgxKyBjb2wpKQorICAgICAgICAgICAgICAgICAgICA7OyhlZ2xvdC0tbHNw LXBvc2l0aW9uLXRvLXBvaW50IChwbGlzdC1nZXQgdmFsdWUgOnBvc2l0aW9uKSkKKyAgICAgICAg ICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAgICAgICAgICdlZ2xvdC1pbmxheS1oaW50Cisg ICAgICAgICAgICAgICAgICAgIHRleHQKKyAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAg ICAgICAgICAgICAgIGAoKGJlZm9yZS1zdHJpbmcgLiAsdGV4dCkKKyAgICAgICAgICAgICAgICAg ICAgICAgKSkKKyAgICAgICAgICAgICAgZGlhZ3MpCisgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgICkKKyAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkKKyAgICAoZnVuY2FsbCByZXBv cnQtZm4gZGlhZ3MpCisgICAgKQorICApCisKKyhkZWZ1biBlZ2xvdC1nZXQtaW5sYXktaGludHMg KHJlcG9ydC1mbiBidWZmZXIpCisgIDs7IChsZXQgKChsZW5zLXRhYmxlIChtYWtlLWhhc2gtdGFi bGUpKSkKKwk7OyAgICAgICA7OyBHZXQgdGhlIGlubGF5IGhpbnQgb2JqZWN0cy4KKwk7OyAgICAg ICAobWFwYyAobGFtYmRhIChpbmxheUhpbnQpCisJOzsgCSAgICAgICAgICAgICh3aGVuIChhbmQg KGVnbG90LS1zZXJ2ZXItY2FwYWJsZQorCTs7IAkJICAgICAgICAgICAgICAgICAgICAgICA6aW5s YXlIaW50UHJvdmlkZXIgOnJlc29sdmVQcm92aWRlcikKKwk7OyAJCSAgICAgICAgICAgICAgICAg IChub3QgKHBsaXN0LW1lbWJlciBpbmxheUhpbnQgOmNvbW1hbmQpKSkKKwk7OyAJICAgICAgICAg ICAgICAoc2V0cSBpbmxheUhpbnQKKwk7OyAJCSAgICAgICAgICAgICAgKGpzb25ycGMtcmVxdWVz dCAoZWdsb3QtLWN1cnJlbnQtc2VydmVyLW9yLWxvc2UpCisJOzsgCQkJCSAgICAgICAgICAgIDpp bmxheUhpbnQvcmVzb2x2ZSBpbmxheUhpbnQpKSkKKwk7OyAJICAgICAgICAgICAgKGxldCAoKGxp bmUgKHRocmVhZC1maXJzdCBpbmxheUhpbnQKKwk7OyAJCQkJICAgICAgICAgICAgICAgICAgICAo cGxpc3QtZ2V0IDpwb3NpdGlvbikKKwk7OyAJCQkJICAgICAgICAgICAgICAgICAgICAocGxpc3Qt Z2V0IDpsaW5lKSkpKQorCTs7IAkgICAgICAgICAgICAgIChwdXRoYXNoIGxpbmUKKwk7OyAJCSAg ICAgICAgICAgICAgKGFwcGVuZCAoZ2V0aGFzaCBsaW5lIGxlbnMtdGFibGUpIChsaXN0IGlubGF5 SGludCkpCisJOzsgCQkgICAgICAgICAgICAgIGxlbnMtdGFibGUpKSkKKwk7OyAJICAgICAgKGpz b25ycGMtcmVxdWVzdAorCTs7IAkgICAgICAgIChlZ2xvdC0tY3VycmVudC1zZXJ2ZXItb3ItbG9z ZSkKKwk7OyAJICAgICAgICA6dGV4dERvY3VtZW50L2lubGF5SGludAorCTs7IAkgICAgICAgIChs aXN0IDp0ZXh0RG9jdW1lbnQgKGVnbG90LS1UZXh0RG9jdW1lbnRJZGVudGlmaWVyKSA6cmFuZ2Ug KGxpc3QgOnN0YXJ0IChsaXN0IDpsaW5lIDAgOmNoYXJhY3RlciAwKSA6ZW5kIChsaXN0IDpsaW5l IChjb3VudC1saW5lcyAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkgOmNoYXJhY3RlciAwKSkpCisJ OzsgCSAgICAgICAgOmRlZmVycmVkIDp0ZXh0RG9jdW1lbnQvaW5sYXlIaW50KSkKKyAgOzsgICBs ZW5zLXRhYmxlCisgIDs7ICAgKQorICAocHJpbnQgInRvdG8iKQorKHByaW50IChlZ2xvdC0tVGV4 dERvY3VtZW50SWRlbnRpZmllcikpCisJKGpzb25ycGMtYXN5bmMtcmVxdWVzdAorCQkoZWdsb3Qt LWN1cnJlbnQtc2VydmVyLW9yLWxvc2UpCisJCTp0ZXh0RG9jdW1lbnQvaW5sYXlIaW50CisJCShs aXN0CisgICAgICA6dGV4dERvY3VtZW50IChlZ2xvdC0tVGV4dERvY3VtZW50SWRlbnRpZmllcikK KyAgICAgIDpyYW5nZSAobGlzdCA6c3RhcnQgKGxpc3QgOmxpbmUgMCA6Y2hhcmFjdGVyIDApIDpl bmQgKGxpc3QgOmxpbmUgKGNvdW50LWxpbmVzIChwb2ludC1taW4pIChwb2ludC1tYXgpKSA6Y2hh cmFjdGVyIDApKSkKKwkJOmRlZmVycmVkIHQKKyAgICA6c3VjY2Vzcy1mbiAobGFtYmRhIChoaW50 cykgKGVnbG90LS1pbmxheS1oaW50LWhhbmRsZXIgYnVmZmVyIGhpbnRzIHJlcG9ydC1mbikpCisg ICAgKQorICApCiAKIChkZWZ1biBlZ2xvdC1mbHltYWtlLWJhY2tlbmQgKHJlcG9ydC1mbiAmcmVz dCBfbW9yZSkKICAgIkEgRmx5bWFrZSBiYWNrZW5kIGZvciBFZ2xvdC4KQEAgLTI0MzEsMjIgKzI1 MzMsNzYgQEAgcHVibGlzaGVzIGRpYWdub3N0aWNzLiAgQmV0d2VlbiBjYWxscyB0byB0aGlzIGZ1 bmN0aW9uLCBSRVBPUlQtRk4KIG1heSBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgKHJlc3BlY3Rp bmcgdGhlIHByb3RvY29sIG9mCiBgZmx5bWFrZS1iYWNrZW5kLWZ1bmN0aW9ucycpLiIKICAgKGNv bmQgKGVnbG90LS1tYW5hZ2VkLW1vZGUKLSAgICAgICAgIChzZXRxIGVnbG90LS1jdXJyZW50LWZs eW1ha2UtcmVwb3J0LWZuIHJlcG9ydC1mbikKLSAgICAgICAgIChlZ2xvdC0tcmVwb3J0LXRvLWZs eW1ha2UgZWdsb3QtLWRpYWdub3N0aWNzKSkKLSAgICAgICAgKHQKLSAgICAgICAgIChmdW5jYWxs IHJlcG9ydC1mbiBuaWwpKSkpCisgICAgICAgICAgKHNldHEgZWdsb3QtLWN1cnJlbnQtZmx5bWFr ZS1yZXBvcnQtZm4gcmVwb3J0LWZuKQorICAgICAgICAgIChwcmludCAibW9yZSIpCisgICAgICAg ICAgKHByaW50IF9tb3JlKQorICAgICAgICAgIChwcmludCAiYnVmZmVyIikKKyAgICAgICAgICAo cHJpbnQgKGN1cnJlbnQtYnVmZmVyKSkKKworICAgICAgICAgICh3aGVuIChlZ2xvdC0tc2VydmVy LWNhcGFibGUgOmlubGF5SGludFByb3ZpZGVyKQorICAgICAgICAgICAgKHByaW50IGVnbG90LS1j dXJyZW50LWZseW1ha2UtcmVwb3J0LWZuKQorICAgICAgICAgICAgKGVnbG90LWdldC1pbmxheS1o aW50cyBlZ2xvdC0tY3VycmVudC1mbHltYWtlLXJlcG9ydC1mbiAoY3VycmVudC1idWZmZXIpKQor ICAgICAgICAgICkKKyAgICAgICAgICA7OyAod2hlbiAoZWdsb3QtLXNlcnZlci1jYXBhYmxlIDpp bmxheUhpbnRQcm92aWRlcikKKyAgICAgICAgICA7OyAgIChsZXQgKChzb3VyY2UgKGN1cnJlbnQt YnVmZmVyKSkKKyAgICAgICAgICA7OyAgICAgICAgICAoaGludHMgKGVnbG90LWdldC1pbmxheS1o aW50cykpKQorICAgICAgICAgIDs7ICAgICA7OyBNYWtlIG92ZXJsYXlzIGZvciB0aGVtLgorCSAg ICAgICAgOzsgICAgIChtYXBoYXNoCisJICAgICAgICA7OyAgICAgICAobGFtYmRhIChsaW5lIHZh bHVlcykKKyAgICAgICAgICA7OyAgICAgICAgIChjbC1sb29wIGZvciB2YWx1ZSBpbiB2YWx1ZXMK KyAgICAgICAgICA7OyAgICAgICAgICAgZG8KKyAgICAgICAgICA7OyAgICAgICAgICAgKHByaW50 IHZhbHVlKQorICAgICAgICAgIDs7ICAgICAgICAgICAoY2wtbG9vcCBmb3IgdmFsIGJlaW5nIHRo ZSBlbGVtZW50cyBvZgorICAgICAgICAgIDs7ICAgICAgICAgICAgIChpZiAoc3RyaW5ncCAocGxp c3QtZ2V0IHZhbHVlIDpsYWJlbCkpCisgICAgICAgICAgOzsgICAgICAgICAgICAgICAobGlzdCAo cGxpc3QtZ2V0IHZhbHVlIDpsYWJlbCkpCisgICAgICAgICAgOzsgICAgICAgICAgICAgICAocGxp c3QtZ2V0IHZhbHVlIDpsYWJlbCkpCisgICAgICAgICAgOzsgICAgICAgICAgICAgZG8KKyAgICAg ICAgICA7OyAgICAgICAgICAgICAocHJpbnQgdmFsKQorCSAgICAgICAgOzsgICAgICAgICAgICAg KGVnbG90LS13aWRlbmluZworCSAgICAgICAgOzsgICAgICAgICAgICAgICAobGV0ICgoY29sIChw bGlzdC1nZXQgKHBsaXN0LWdldCB2YWx1ZSA6cG9zaXRpb24pIDpjaGFyYWN0ZXIpKQorICAgICAg ICAgIDs7ICAgICAgICAgICAgICAgICAgICAgICh0ZXh0CisgICAgICAgICAgOzsgICAgICAgICAg ICAgICAgICAgICAgICAocHJvcGVydGl6ZQorICAgICAgICAgIDs7ICAgICAgICAgICAgICAgICAg ICAgICAgICAoY29uY2F0CisgICAgICAgICAgOzsgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHdoZW4gKHBsaXN0LWdldCB2YWx1ZSA6cGFkZGluZ0xlZnQpICIgIikKKyAgICAgICAgICA7OyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgKHN0cmluZ3AgdmFsKSB2YWwgKHBsaXN0LWdl dCB2YWwgOnZhbHVlKSkKKyAgICAgICAgICA7OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAo d2hlbiAocGxpc3QtZ2V0IHZhbHVlIDpwYWRkaW5nUmlnaHQpICIgIikpCisgICAgICAgICAgOzsg ICAgICAgICAgICAgICAgICAgICAgICAgICdmYWNlICdlZ2xvdC1pbmxheS1oaW50KQorICAgICAg ICAgIDs7ICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgIDs7ICAgICAgICAgICAg ICAgICAgICAgICkKKyAgICAgICAgICA7OyAgICAgICAgICAgICAgICAgKHByaW50IHRleHQpCisg ICAgICAgICAgOzsgICAgICAgICAgICAgICAgICAgKHB1c2ggKGVnbG90LS1tYWtlLWRpYWcKKyAg ICAgICAgICA7OyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZQorICAgICAgICAgIDs7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnMgKCsgbGluZSAxKSAoKyBjb2wgMSkpCisg ICAgICAgICAgOzsgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICA7OyAg ICAgICAgICAgICAgICAgICAgICAgICAgICdlZ2xvdC1pbmxheS1oaW50CisgICAgICAgICAgOzsg ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0CisgICAgICAgICAgOzsgICAgICAgICAgICAg ICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICA7OyAgICAgICAgICAgICAgICAgICAgICAgICAg IGAoKGJlZm9yZS1zdHJpbmcgLiAsdGV4dCkKKyAgICAgICAgICA7OyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkpCisgICAgICAgICAgOzsgICAgICAgICAgICAgICAgICAgICBlZ2xvdC0t ZGlhZ25vc3RpY3MpCisgICAgICAgICAgOzsgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICA7 OyAgICAgICAgICAgICAgICkKKyAgICAgICAgICA7OyAgICAgICAgICAgICApCisgICAgICAgICAg OzsgICAgICAgICAgICkKKyAgICAgICAgICA7OyAgICAgICAgICkKKwkgICAgICAgIDs7ICAgICAg IGhpbnRzKQorICAgICAgICAgIDs7ICAgICApKQorICAgICAgICAgIChlZ2xvdC0tcmVwb3J0LXRv LWZseW1ha2UgZWdsb3QtLWRpYWdub3N0aWNzKSkKKyAgICAodAorICAgICAgKGZ1bmNhbGwgcmVw b3J0LWZuIGRpYWdzKQorICAgICAgKSkpCiAKIChkZWZ1biBlZ2xvdC0tcmVwb3J0LXRvLWZseW1h a2UgKGRpYWdzKQogICAiSW50ZXJuYWwgaGVscGVyIGZvciBgZWdsb3QtZmx5bWFrZS1iYWNrZW5k Jy4iCiAgIChzYXZlLXJlc3RyaWN0aW9uCiAgICAgKHdpZGVuKQogICAgIChmdW5jYWxsIGVnbG90 LS1jdXJyZW50LWZseW1ha2UtcmVwb3J0LWZuIGRpYWdzCi0gICAgICAgICAgICAgOzsgSWYgdGhl IGJ1ZmZlciBoYXNuJ3QgY2hhbmdlZCBzaW5jZSBsYXN0Ci0gICAgICAgICAgICAgOzsgY2FsbCB0 byB0aGUgcmVwb3J0IGZ1bmN0aW9uLCBmbHltYWtlIHdvbid0Ci0gICAgICAgICAgICAgOzsgZGVs ZXRlIG9sZCBkaWFnbm9zdGljcy4gIFVzaW5nIDpyZWdpb24KLSAgICAgICAgICAgICA7OyBrZXl3 b3JkIGZvcmNlcyBmbHltYWtlIHRvIGRlbGV0ZQotICAgICAgICAgICAgIDs7IHRoZW0gKGdpdGh1 YiMxNTkpLgotICAgICAgICAgICAgIDpyZWdpb24gKGNvbnMgKHBvaW50LW1pbikgKHBvaW50LW1h eCkpKSkKKyAgICAgIDs7IElmIHRoZSBidWZmZXIgaGFzbid0IGNoYW5nZWQgc2luY2UgbGFzdAor ICAgICAgOzsgY2FsbCB0byB0aGUgcmVwb3J0IGZ1bmN0aW9uLCBmbHltYWtlIHdvbid0CisgICAg ICA7OyBkZWxldGUgb2xkIGRpYWdub3N0aWNzLiAgVXNpbmcgOnJlZ2lvbgorICAgICAgOzsga2V5 d29yZCBmb3JjZXMgZmx5bWFrZSB0byBkZWxldGUKKyAgICAgIDs7IHRoZW0gKGdpdGh1YiMxNTkp LgorICAgICAgOnJlZ2lvbiAoY29ucyAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkpKQogICAoc2V0 cSBlZ2xvdC0tZGlhZ25vc3RpY3MgZGlhZ3MpKQogCiAoZGVmdW4gZWdsb3QteHJlZi1iYWNrZW5k ICgpICJFZ2xvdCB4cmVmIGJhY2tlbmQuIiAnZWdsb3QpCkBAIC0yNDYyLDExICsyNjE4LDExIEBA IG1heSBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgKHJlc3BlY3RpbmcgdGhlIHByb3RvY29sIG9m CiAgIChkZWNsYXJlIChpbmRlbnQgMSkgKGRlYnVnIChzZXhwICZyZXN0IGZvcm0pKSkKICAgKGxl dCAoKGNvbGxlY3RlZCAoY2wtZ2Vuc3ltICJjb2xsZWN0ZWQiKSkpCiAgICAgYCh1bndpbmQtcHJv dGVjdAotICAgICAgICAgKGxldCAoLGNvbGxlY3RlZCkKLSAgICAgICAgICAgKGNsLWZsZXQgKCgs Y29sbGVjdG9yICh4cmVmKSAocHVzaCB4cmVmICxjb2xsZWN0ZWQpKSkKLSAgICAgICAgICAgICAs QGJvZHkpCi0gICAgICAgICAgIChzZXRxICxjb2xsZWN0ZWQgKG5yZXZlcnNlICxjb2xsZWN0ZWQp KQotICAgICAgICAgICAoc29ydCAsY29sbGVjdGVkIGVnbG90LXhyZWYtbGVzc3AtZnVuY3Rpb24p KQorICAgICAgIChsZXQgKCxjb2xsZWN0ZWQpCisgICAgICAgICAoY2wtZmxldCAoKCxjb2xsZWN0 b3IgKHhyZWYpIChwdXNoIHhyZWYgLGNvbGxlY3RlZCkpKQorICAgICAgICAgICAsQGJvZHkpCisg ICAgICAgICAoc2V0cSAsY29sbGVjdGVkIChucmV2ZXJzZSAsY29sbGVjdGVkKSkKKyAgICAgICAg IChzb3J0ICxjb2xsZWN0ZWQgZWdsb3QteHJlZi1sZXNzcC1mdW5jdGlvbikpCiAgICAgICAgKG1h cGhhc2ggKGxhbWJkYSAoX3VyaSBidWYpIChraWxsLWJ1ZmZlciBidWYpKSBlZ2xvdC0tdGVtcC1s b2NhdGlvbi1idWZmZXJzKQogICAgICAgIChjbHJoYXNoIGVnbG90LS10ZW1wLWxvY2F0aW9uLWJ1 ZmZlcnMpKSkpCiAKQEAgLTI0NzQsMzYgKzI2MzAsMzYgQEAgbWF5IGJlIGNhbGxlZCBtdWx0aXBs ZSB0aW1lcyAocmVzcGVjdGluZyB0aGUgcHJvdG9jb2wgb2YKICAgIkxpa2UgYHhyZWYtbWFrZS1t YXRjaCcgYnV0IHdpdGggTFNQJ3MgTkFNRSwgVVJJIGFuZCBSQU5HRS4KIFRyeSB0byB2aXNpdCB0 aGUgdGFyZ2V0IGZpbGUgZm9yIGEgcmljaGVyIHN1bW1hcnkgbGluZS4iCiAgIChwY2FzZS1sZXQq Ci0gICAgICAoKGZpbGUgKGVnbG90LS11cmktdG8tcGF0aCB1cmkpKQotICAgICAgICh2aXNpdGlu ZyAob3IgKGZpbmQtYnVmZmVyLXZpc2l0aW5nIGZpbGUpCi0gICAgICAgICAgICAgICAgICAgICAo Z2V0aGFzaCB1cmkgZWdsb3QtLXRlbXAtbG9jYXRpb24tYnVmZmVycykpKQotICAgICAgIChjb2xs ZWN0IChsYW1iZGEgKCkKLSAgICAgICAgICAgICAgICAgIChlZ2xvdC0td2lkZW5pbmcKKyAgICAo KGZpbGUgKGVnbG90LS11cmktdG8tcGF0aCB1cmkpKQorICAgICAgKHZpc2l0aW5nIChvciAoZmlu ZC1idWZmZXItdmlzaXRpbmcgZmlsZSkKKyAgICAgICAgICAgICAgICAgIChnZXRoYXNoIHVyaSBl Z2xvdC0tdGVtcC1sb2NhdGlvbi1idWZmZXJzKSkpCisgICAgICAoY29sbGVjdCAobGFtYmRhICgp CisgICAgICAgICAgICAgICAgIChlZ2xvdC0td2lkZW5pbmcKICAgICAgICAgICAgICAgICAgICAo cGNhc2UtbGV0KiAoKGAoLGJlZyAuICxlbmQpIChlZ2xvdC0tcmFuZ2UtcmVnaW9uIHJhbmdlKSkK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJvbCAocHJvZ24gKGdvdG8tY2hhciBi ZWcpIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoc3Vic3RyaW5nIChidWZmZXItc3Vic3RyaW5nIGJvbCAobGluZS1lbmQtcG9zaXRp b24pKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhpLWJlZyAoLSBiZWcgYm9s KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhpLWVuZCAoLSAobWluIChsaW5l LWVuZC1wb3NpdGlvbikgZW5kKSBib2wpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChib2wgKHByb2duIChnb3RvLWNoYXIgYmVnKSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24p KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdWJzdHJpbmcgKGJ1ZmZlci1z dWJzdHJpbmcgYm9sIChsaW5lLWVuZC1wb3NpdGlvbikpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGhpLWJlZyAoLSBiZWcgYm9sKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChoaS1lbmQgKC0gKG1pbiAobGluZS1lbmQtcG9zaXRpb24pIGVuZCkgYm9sKSkp CiAgICAgICAgICAgICAgICAgICAgICAoYWRkLWZhY2UtdGV4dC1wcm9wZXJ0eSBoaS1iZWcgaGkt ZW5kICd4cmVmLW1hdGNoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0IHN1YnN0cmluZykKKyAgICAgICAgICAgICAgICAgICAgICAgdCBzdWJzdHJpbmcpCiAg ICAgICAgICAgICAgICAgICAgICAobGlzdCBzdWJzdHJpbmcgKGxpbmUtbnVtYmVyLWF0LXBvcyAo cG9pbnQpIHQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoZWdsb3QtY3VycmVudC1jb2x1 bW4pICgtIGVuZCBiZWcpKSkpKSkKLSAgICAgICAoYCgsc3VtbWFyeSAsbGluZSAsY29sdW1uICxs ZW5ndGgpCisgICAgICAgICAgICAgICAgICAgICAgIChlZ2xvdC1jdXJyZW50LWNvbHVtbikgKC0g ZW5kIGJlZykpKSkpKQorICAgICAgKGAoLHN1bW1hcnkgLGxpbmUgLGNvbHVtbiAsbGVuZ3RoKQog ICAgICAgICAoY29uZAotICAgICAgICAgKHZpc2l0aW5nICh3aXRoLWN1cnJlbnQtYnVmZmVyIHZp c2l0aW5nIChmdW5jYWxsIGNvbGxlY3QpKSkKLSAgICAgICAgICgoZmlsZS1yZWFkYWJsZS1wIGZp bGUpICh3aXRoLWN1cnJlbnQtYnVmZmVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHB1dGhhc2ggdXJpIChnZW5lcmF0ZS1uZXctYnVmZmVyICIgKnRlbXAqIikKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZ2xvdC0tdGVtcC1sb2Nh dGlvbi1idWZmZXJzKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5zZXJ0 LWZpbGUtY29udGVudHMgZmlsZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGZ1bmNhbGwgY29sbGVjdCkpKQotICAgICAgICAgKHQgOzsgZmFsbCBiYWNrIHRvIHRoZSAiZHVt YiBzdHJhdGVneSIKLSAgICAgICAgICAobGV0KiAoKHN0YXJ0IChjbC1nZXRmIHJhbmdlIDpzdGFy dCkpCi0gICAgICAgICAgICAgICAgIChsaW5lICgxKyAoY2wtZ2V0ZiBzdGFydCA6bGluZSkpKQot ICAgICAgICAgICAgICAgICAoc3RhcnQtcG9zIChjbC1nZXRmIHN0YXJ0IDpjaGFyYWN0ZXIpKQot ICAgICAgICAgICAgICAgICAoZW5kLXBvcyAoY2wtZ2V0ZiAoY2wtZ2V0ZiByYW5nZSA6ZW5kKSA6 Y2hhcmFjdGVyKSkpCi0gICAgICAgICAgICAobGlzdCBuYW1lIGxpbmUgc3RhcnQtcG9zICgtIGVu ZC1wb3Mgc3RhcnQtcG9zKSkpKSkpKQorICAgICAgICAgICh2aXNpdGluZyAod2l0aC1jdXJyZW50 LWJ1ZmZlciB2aXNpdGluZyAoZnVuY2FsbCBjb2xsZWN0KSkpCisgICAgICAgICAgKChmaWxlLXJl YWRhYmxlLXAgZmlsZSkgKHdpdGgtY3VycmVudC1idWZmZXIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChwdXRoYXNoIHVyaSAoZ2VuZXJhdGUtbmV3LWJ1ZmZlciAiICp0ZW1w KiIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVnbG90LS10ZW1wLWxv Y2F0aW9uLWJ1ZmZlcnMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5z ZXJ0LWZpbGUtY29udGVudHMgZmlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChmdW5jYWxsIGNvbGxlY3QpKSkKKyAgICAgICAgICAodCA7OyBmYWxsIGJhY2sgdG8gdGhl ICJkdW1iIHN0cmF0ZWd5IgorICAgICAgICAgICAgKGxldCogKChzdGFydCAoY2wtZ2V0ZiByYW5n ZSA6c3RhcnQpKQorICAgICAgICAgICAgICAgICAgICAobGluZSAoMSsgKGNsLWdldGYgc3RhcnQg OmxpbmUpKSkKKyAgICAgICAgICAgICAgICAgICAgKHN0YXJ0LXBvcyAoY2wtZ2V0ZiBzdGFydCA6 Y2hhcmFjdGVyKSkKKyAgICAgICAgICAgICAgICAgICAgKGVuZC1wb3MgKGNsLWdldGYgKGNsLWdl dGYgcmFuZ2UgOmVuZCkgOmNoYXJhY3RlcikpKQorICAgICAgICAgICAgICAobGlzdCBuYW1lIGxp bmUgc3RhcnQtcG9zICgtIGVuZC1wb3Mgc3RhcnQtcG9zKSkpKSkpKQogICAgIChzZXRmIChnZXRo YXNoIChleHBhbmQtZmlsZS1uYW1lIGZpbGUpIGVnbG90LS1zZXJ2ZXJzLWJ5LXhyZWZlZC1maWxl KQotICAgICAgICAgIChlZ2xvdC0tY3VycmVudC1zZXJ2ZXItb3ItbG9zZSkpCisgICAgICAoZWds b3QtLWN1cnJlbnQtc2VydmVyLW9yLWxvc2UpKQogICAgICh4cmVmLW1ha2UtbWF0Y2ggc3VtbWFy eSAoeHJlZi1tYWtlLWZpbGUtbG9jYXRpb24gZmlsZSBsaW5lIGNvbHVtbikgbGVuZ3RoKSkpCiAK IChkZWZ1biBlZ2xvdC0td29ya3NwYWNlLXN5bWJvbHMgKHBhdCAmb3B0aW9uYWwgYnVmZmVyKQpA QCAtMjUxMyw0MiArMjY2OSw0MiBAQCBJZiBCVUZGRVIsIHN3aXRjaCB0byBpdCBiZWZvcmUuIgog ICAgICh1bmxlc3MgKGVnbG90LS1zZXJ2ZXItY2FwYWJsZSA6d29ya3NwYWNlU3ltYm9sUHJvdmlk ZXIpCiAgICAgICAoZWdsb3QtLWVycm9yICJUaGlzIExTUCBzZXJ2ZXIgaXNuJ3QgYSA6d29ya3Nw YWNlU3ltYm9sUHJvdmlkZXIiKSkKICAgICAobWFwY2FyCi0gICAgIChsYW1iZGEgKHdzcykKLSAg ICAgICAoZWdsb3QtLWRiaW5kICgoV29ya3NwYWNlU3ltYm9sKSBuYW1lIGNvbnRhaW5lck5hbWUg a2luZCkgd3NzCi0gICAgICAgICAocHJvcGVydGl6ZQotICAgICAgICAgIChmb3JtYXQgIiVzJXMg JXMiCi0gICAgICAgICAgICAgICAgICAoaWYgKHplcm9wIChsZW5ndGggY29udGFpbmVyTmFtZSkp ICIiCi0gICAgICAgICAgICAgICAgICAgIChjb25jYXQgKHByb3BlcnRpemUgY29udGFpbmVyTmFt ZSAnZmFjZSAnc2hhZG93KSAiICIpKQotICAgICAgICAgICAgICAgICAgbmFtZQotICAgICAgICAg ICAgICAgICAgKHByb3BlcnRpemUgKGFsaXN0LWdldCBraW5kIGVnbG90LS1zeW1ib2wta2luZC1u YW1lcyAiVW5rbm93biIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmFjZSAnc2hh ZG93KSkKLSAgICAgICAgICAnZWdsb3QtLWxzcC13b3Jrc3BhY2VTeW1ib2wgd3NzKSkpCi0gICAg IChqc29ucnBjLXJlcXVlc3QgKGVnbG90LS1jdXJyZW50LXNlcnZlci1vci1sb3NlKSA6d29ya3Nw YWNlL3N5bWJvbAotICAgICAgICAgICAgICAgICAgICAgIGAoOnF1ZXJ5ICxwYXQpKSkpKQorICAg ICAgKGxhbWJkYSAod3NzKQorICAgICAgICAoZWdsb3QtLWRiaW5kICgoV29ya3NwYWNlU3ltYm9s KSBuYW1lIGNvbnRhaW5lck5hbWUga2luZCkgd3NzCisgICAgICAgICAgKHByb3BlcnRpemUKKyAg ICAgICAgICAgIChmb3JtYXQgIiVzJXMgJXMiCisgICAgICAgICAgICAgIChpZiAoemVyb3AgKGxl bmd0aCBjb250YWluZXJOYW1lKSkgIiIKKyAgICAgICAgICAgICAgICAoY29uY2F0IChwcm9wZXJ0 aXplIGNvbnRhaW5lck5hbWUgJ2ZhY2UgJ3NoYWRvdykgIiAiKSkKKyAgICAgICAgICAgICAgbmFt ZQorICAgICAgICAgICAgICAocHJvcGVydGl6ZSAoYWxpc3QtZ2V0IGtpbmQgZWdsb3QtLXN5bWJv bC1raW5kLW5hbWVzICJVbmtub3duIikKKyAgICAgICAgICAgICAgICAnZmFjZSAnc2hhZG93KSkK KyAgICAgICAgICAgICdlZ2xvdC0tbHNwLXdvcmtzcGFjZVN5bWJvbCB3c3MpKSkKKyAgICAgIChq c29ucnBjLXJlcXVlc3QgKGVnbG90LS1jdXJyZW50LXNlcnZlci1vci1sb3NlKSA6d29ya3NwYWNl L3N5bWJvbAorICAgICAgICBgKDpxdWVyeSAscGF0KSkpKSkKIAogKGNsLWRlZm1ldGhvZCB4cmVm LWJhY2tlbmQtaWRlbnRpZmllci1jb21wbGV0aW9uLXRhYmxlICgoX2JhY2tlbmQgKGVxbCBlZ2xv dCkpKQogICAiWWV0IGFub3RoZXIgdHJpY2t5IGNvbm5lY3Rpb24gYmV0d2VlbiBMU1AgYW5kIEVs aXNwIGNvbXBsZXRpb24gc2VtYW50aWNzLiIKICAgKGxldCAoKGJ1ZiAoY3VycmVudC1idWZmZXIp KSAoY2FjaGUgZWdsb3QtLXdvcmtzcGFjZS1zeW1ib2xzLWNhY2hlKSkKICAgICAoY2wtbGFiZWxz ICgocmVmcmVzaCAocGF0KSAoZWdsb3QtLXdvcmtzcGFjZS1zeW1ib2xzIHBhdCBidWYpKQotICAg ICAgICAgICAgICAgIChsb29rdXAtMSAocGF0KSA7OyBjaGVjayBjYWNoZSwgZWxzZSByZWZyZXNo Ci0gICAgICAgICAgICAgICAgICAobGV0ICgocHJvYmUgKGdldGhhc2ggcGF0IGNhY2hlIDptaXNz aW5nKSkpCi0gICAgICAgICAgICAgICAgICAgIChpZiAoZXEgcHJvYmUgOm1pc3NpbmcpIChwdXRo YXNoIHBhdCAocmVmcmVzaCBwYXQpIGNhY2hlKQotICAgICAgICAgICAgICAgICAgICAgIHByb2Jl KSkpCi0gICAgICAgICAgICAgICAgKGxvb2t1cCAocGF0KQotICAgICAgICAgICAgICAgICAgKGxl dCAoKHJlcyAobG9va3VwLTEgcGF0KSkKLSAgICAgICAgICAgICAgICAgICAgICAgIChkZWYgKGFu ZCAoc3RyaW5nPSBwYXQgIiIpIChnZXRoYXNoIDpkZWZhdWx0IGNhY2hlKSkpKQotICAgICAgICAg ICAgICAgICAgICAoYXBwZW5kIGRlZiByZXMgbmlsKSkpCi0gICAgICAgICAgICAgICAgKHNjb3Jl IChjKQotICAgICAgICAgICAgICAgICAgKGNsLWdldGYgKGdldC10ZXh0LXByb3BlcnR5Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgMCAnZWdsb3QtLWxzcC13b3Jrc3BhY2VTeW1ib2wgYykK LSAgICAgICAgICAgICAgICAgICAgICAgICAgIDpzY29yZSAwKSkpCisgICAgICAgICAgICAgICAg IChsb29rdXAtMSAocGF0KSA7OyBjaGVjayBjYWNoZSwgZWxzZSByZWZyZXNoCisgICAgICAgICAg ICAgICAgICAgKGxldCAoKHByb2JlIChnZXRoYXNoIHBhdCBjYWNoZSA6bWlzc2luZykpKQorICAg ICAgICAgICAgICAgICAgICAgKGlmIChlcSBwcm9iZSA6bWlzc2luZykgKHB1dGhhc2ggcGF0IChy ZWZyZXNoIHBhdCkgY2FjaGUpCisgICAgICAgICAgICAgICAgICAgICAgIHByb2JlKSkpCisgICAg ICAgICAgICAgICAgIChsb29rdXAgKHBhdCkKKyAgICAgICAgICAgICAgICAgICAobGV0ICgocmVz IChsb29rdXAtMSBwYXQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVmIChhbmQgKHN0 cmluZz0gcGF0ICIiKSAoZ2V0aGFzaCA6ZGVmYXVsdCBjYWNoZSkpKSkKKyAgICAgICAgICAgICAg ICAgICAgIChhcHBlbmQgZGVmIHJlcyBuaWwpKSkKKyAgICAgICAgICAgICAgICAgKHNjb3JlIChj KQorICAgICAgICAgICAgICAgICAgIChjbC1nZXRmIChnZXQtdGV4dC1wcm9wZXJ0eQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMCAnZWdsb3QtLWxzcC13b3Jrc3BhY2VTeW1ib2wgYykK KyAgICAgICAgICAgICAgICAgICAgIDpzY29yZSAwKSkpCiAgICAgICAobGFtYmRhIChzdHJpbmcg X3ByZWQgYWN0aW9uKQogICAgICAgICAocGNhc2UgYWN0aW9uCiAgICAgICAgICAgKGBtZXRhZGF0 YSBgKG1ldGFkYXRhCi0gICAgICAgICAgICAgICAgICAgICAgIChjeWNsZS1zb3J0LWZ1bmN0aW9u Ci0gICAgICAgICAgICAgICAgICAgICAgICAuICwobGFtYmRhIChjb21wbGV0aW9ucykKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGNsLXNvcnQgY29tcGxldGlvbnMgIyc+IDprZXkgIydz Y29yZSkpKQotICAgICAgICAgICAgICAgICAgICAgICAoY2F0ZWdvcnkgLiBlZ2xvdC1pbmRpcmVj dGlvbi1qb3kpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChjeWNsZS1zb3J0LWZ1bmN0aW9u CisgICAgICAgICAgICAgICAgICAgICAgICAgIC4gLChsYW1iZGEgKGNvbXBsZXRpb25zKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbC1zb3J0IGNvbXBsZXRpb25zICMnPiA6a2V5 ICMnc2NvcmUpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIChjYXRlZ29yeSAuIGVnbG90LWlu ZGlyZWN0aW9uLWpveSkpKQogICAgICAgICAgIChgKGVnbG90LS1sc3AtdHJ5YyAuICxwb2ludCkg YChlZ2xvdC0tbHNwLXRyeWMgLiAoLHN0cmluZyAuICxwb2ludCkpKQogICAgICAgICAgIChgKGVn bG90LS1sc3AtYWxsYyAuICxfcG9pbnQpIGAoZWdsb3QtLWxzcC1hbGxjIC4gLChsb29rdXAgc3Ry aW5nKSkpCiAgICAgICAgICAgKF8gbmlsKSkpKSkpCkBAIC0yNTYxLDE4ICsyNzE3LDE4IEBAIElm IEJVRkZFUiwgc3dpdGNoIHRvIGl0IGJlZm9yZS4iCiAgICAgICAgICAgICAgICAgIDs7IExpa2Ug bWVzcz8gQXNrIG1pbmlidWZmZXIuZWwgYWJvdXQgaW1wcm9wZXIgbGlzdHMuCiAgICAgICAgICAg ICAgICAgICh3aGVuIChlcXVhbCAoY2FyIHYpIHN0cmluZykgKHRocm93ICdmb3VuZCAoY2FyIHYp KSkKICAgICAgICAgICAgICAgICAgKHNldHEgdiAoY2RyIHYpKSkpCi0gICAgICAgICAgICAgZWds b3QtLXdvcmtzcGFjZS1zeW1ib2xzLWNhY2hlKSkpCisgICAgICBlZ2xvdC0td29ya3NwYWNlLXN5 bWJvbHMtY2FjaGUpKSkKIAogKGFkZC10by1saXN0ICdjb21wbGV0aW9uLWNhdGVnb3J5LW92ZXJy aWRlcwotICAgICAgICAgICAgICcoZWdsb3QtaW5kaXJlY3Rpb24tam95IChzdHlsZXMgLiAoZWds b3QtLWxzcC1iYWNrZW5kLXN0eWxlKSkpKQorICAnKGVnbG90LWluZGlyZWN0aW9uLWpveSAoc3R5 bGVzIC4gKGVnbG90LS1sc3AtYmFja2VuZC1zdHlsZSkpKSkKIAogKGNsLWRlZm1ldGhvZCB4cmVm LWJhY2tlbmQtaWRlbnRpZmllci1hdC1wb2ludCAoKF9iYWNrZW5kIChlcWwgZWdsb3QpKSkKICAg KGxldCAoKGF0dGVtcHQKLSAgICAgICAgIChhbmQgKHhyZWYtLXByb21wdC1wIHRoaXMtY29tbWFu ZCkKLSAgICAgICAgICAgICAgKHB1dGhhc2ggOmRlZmF1bHQKLSAgICAgICAgICAgICAgICAgICAg ICAgKGlnbm9yZS1lcnJvcnMKLSAgICAgICAgICAgICAgICAgICAgICAgICAoZWdsb3QtLXdvcmtz cGFjZS1zeW1ib2xzIChzeW1ib2wtbmFtZSAoc3ltYm9sLWF0LXBvaW50KSkpKQotICAgICAgICAg ICAgICAgICAgICAgICBlZ2xvdC0td29ya3NwYWNlLXN5bWJvbHMtY2FjaGUpKSkpCisgICAgICAg ICAgKGFuZCAoeHJlZi0tcHJvbXB0LXAgdGhpcy1jb21tYW5kKQorICAgICAgICAgICAgKHB1dGhh c2ggOmRlZmF1bHQKKyAgICAgICAgICAgICAgKGlnbm9yZS1lcnJvcnMKKyAgICAgICAgICAgICAg ICAoZWdsb3QtLXdvcmtzcGFjZS1zeW1ib2xzIChzeW1ib2wtbmFtZSAoc3ltYm9sLWF0LXBvaW50 KSkpKQorICAgICAgICAgICAgICBlZ2xvdC0td29ya3NwYWNlLXN5bWJvbHMtY2FjaGUpKSkpCiAg ICAgKGlmIGF0dGVtcHQgKGNhciBhdHRlbXB0KSAiTFNQIGlkZW50aWZpZXIgYXQgcG9pbnQiKSkp CiAKIChkZWZ2YXIgZWdsb3QtLWxzcC14cmVmLXJlZnMgbmlsCkBAIC0yNTgxLDM3ICsyNzM3LDM3 IEBAIElmIEJVRkZFUiwgc3dpdGNoIHRvIGl0IGJlZm9yZS4iCiAoY2wtZGVmdW4gZWdsb3QtLWxz cC14cmVmcy1mb3ItbWV0aG9kIChtZXRob2QgJmtleSBleHRyYS1wYXJhbXMgY2FwYWJpbGl0eSkK ICAgIk1ha2UgYHhyZWYnJ3MgZm9yIE1FVEhPRCwgRVhUUkEtUEFSQU1TLCBjaGVjayBDQVBBQklM SVRZLiIKICAgKHVubGVzcyAoZWdsb3QtLXNlcnZlci1jYXBhYmxlCi0gICAgICAgICAgIChvciBj YXBhYmlsaXR5Ci0gICAgICAgICAgICAgICAoaW50ZXJuCisgICAgICAgICAgICAob3IgY2FwYWJp bGl0eQorICAgICAgICAgICAgICAoaW50ZXJuCiAgICAgICAgICAgICAgICAgKGZvcm1hdCAiOiVz UHJvdmlkZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAoY2FkciAoc3BsaXQtc3RyaW5nIChz eW1ib2wtbmFtZSBtZXRob2QpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICIvIikpKSkpKQorICAgICAgICAgICAgICAgICAgKGNhZHIgKHNwbGl0LXN0cmluZyAo c3ltYm9sLW5hbWUgbWV0aG9kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAiLyIpKSkpKSkK ICAgICAoZWdsb3QtLWVycm9yICJTb3JyeSwgdGhpcyBzZXJ2ZXIgZG9lc24ndCBkbyAlcyIgbWV0 aG9kKSkKICAgKGxldCAoKHJlc3BvbnNlCi0gICAgICAgICAoanNvbnJwYy1yZXF1ZXN0Ci0gICAg ICAgICAgKGVnbG90LS1jdXJyZW50LXNlcnZlci1vci1sb3NlKQotICAgICAgICAgIG1ldGhvZCAo YXBwZW5kIChlZ2xvdC0tVGV4dERvY3VtZW50UG9zaXRpb25QYXJhbXMpIGV4dHJhLXBhcmFtcykp KSkKKyAgICAgICAgICAoanNvbnJwYy1yZXF1ZXN0CisgICAgICAgICAgICAoZWdsb3QtLWN1cnJl bnQtc2VydmVyLW9yLWxvc2UpCisgICAgICAgICAgICBtZXRob2QgKGFwcGVuZCAoZWdsb3QtLVRl eHREb2N1bWVudFBvc2l0aW9uUGFyYW1zKSBleHRyYS1wYXJhbXMpKSkpCiAgICAgKGVnbG90LS1j b2xsZWN0aW5nLXhyZWZzIChjb2xsZWN0KQogICAgICAgKG1hcGMKLSAgICAgICAobGFtYmRhIChs b2Mtb3ItbG9jLWxpbmspCi0gICAgICAgICAobGV0ICgoc3ltLW5hbWUgKHN5bWJvbC1uYW1lIChz eW1ib2wtYXQtcG9pbnQpKSkpCi0gICAgICAgICAgIChlZ2xvdC0tZGNhc2UgbG9jLW9yLWxvYy1s aW5rCi0gICAgICAgICAgICAgKCgoTG9jYXRpb25MaW5rKSB0YXJnZXRVcmkgdGFyZ2V0U2VsZWN0 aW9uUmFuZ2UpCi0gICAgICAgICAgICAgIChjb2xsZWN0IChlZ2xvdC0teHJlZi1tYWtlLW1hdGNo IHN5bS1uYW1lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRhcmdldFVyaSB0YXJnZXRTZWxlY3Rpb25SYW5nZSkpKQotICAgICAgICAgICAgICgoKExvY2F0 aW9uKSB1cmkgcmFuZ2UpCi0gICAgICAgICAgICAgIChjb2xsZWN0IChlZ2xvdC0teHJlZi1tYWtl LW1hdGNoIHN5bS1uYW1lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVyaSByYW5nZSkpKSkpKQotICAgICAgIChpZiAodmVjdG9ycCByZXNwb25zZSkgcmVz cG9uc2UgKGFuZCByZXNwb25zZSAobGlzdCByZXNwb25zZSkpKSkpKSkKKyAgICAgICAgKGxhbWJk YSAobG9jLW9yLWxvYy1saW5rKQorICAgICAgICAgIChsZXQgKChzeW0tbmFtZSAoc3ltYm9sLW5h bWUgKHN5bWJvbC1hdC1wb2ludCkpKSkKKyAgICAgICAgICAgIChlZ2xvdC0tZGNhc2UgbG9jLW9y LWxvYy1saW5rCisgICAgICAgICAgICAgICgoKExvY2F0aW9uTGluaykgdGFyZ2V0VXJpIHRhcmdl dFNlbGVjdGlvblJhbmdlKQorICAgICAgICAgICAgICAgIChjb2xsZWN0IChlZ2xvdC0teHJlZi1t YWtlLW1hdGNoIHN5bS1uYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRVcmkg dGFyZ2V0U2VsZWN0aW9uUmFuZ2UpKSkKKyAgICAgICAgICAgICAgKCgoTG9jYXRpb24pIHVyaSBy YW5nZSkKKyAgICAgICAgICAgICAgICAoY29sbGVjdCAoZWdsb3QtLXhyZWYtbWFrZS1tYXRjaCBz eW0tbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJpIHJhbmdlKSkpKSkpCisgICAg ICAgIChpZiAodmVjdG9ycCByZXNwb25zZSkgcmVzcG9uc2UgKGFuZCByZXNwb25zZSAobGlzdCBy ZXNwb25zZSkpKSkpKSkKIAogKGNsLWRlZnVuIGVnbG90LS1sc3AteHJlZi1oZWxwZXIgKG1ldGhv ZCAma2V5IGV4dHJhLXBhcmFtcyBjYXBhYmlsaXR5ICkKICAgIkhlbHBlciBmb3IgYGVnbG90LWZp bmQtZGVjbGFyYXRpb24nICYgZnJpZW5kcy4iCiAgIChsZXQgKChlZ2xvdC0tbHNwLXhyZWYtcmVm cyAoZWdsb3QtLWxzcC14cmVmcy1mb3ItbWV0aG9kCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWV0aG9kCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmV4dHJhLXBhcmFt cyBleHRyYS1wYXJhbXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2FwYWJpbGl0 eSBjYXBhYmlsaXR5KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZXh0cmEtcGFyYW1zIGV4dHJhLXBhcmFt cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2FwYWJpbGl0eSBjYXBhYmlsaXR5 KSkpCiAgICAgKGlmIGVnbG90LS1sc3AteHJlZi1yZWZzCi0gICAgICAgICh4cmVmLWZpbmQtcmVm ZXJlbmNlcyAiTFNQIGlkZW50aWZpZXIgYXQgcG9pbnQuIikKKyAgICAgICh4cmVmLWZpbmQtcmVm ZXJlbmNlcyAiTFNQIGlkZW50aWZpZXIgYXQgcG9pbnQuIikKICAgICAgIChlZ2xvdC0tbWVzc2Fn ZSAiJXMgcmV0dXJuZWQgbm8gcmVmZXJlbmNlcyIgbWV0aG9kKSkpKQogCiAoZGVmdW4gZWdsb3Qt ZmluZC1kZWNsYXJhdGlvbiAoKQpAQCAtMjYzMiwyOCArMjc4OCwyOCBAQCBJZiBCVUZGRVIsIHN3 aXRjaCB0byBpdCBiZWZvcmUuIgogKGNsLWRlZm1ldGhvZCB4cmVmLWJhY2tlbmQtZGVmaW5pdGlv bnMgKChfYmFja2VuZCAoZXFsIGVnbG90KSkgaWQpCiAgIChsZXQgKChwcm9iZSAoZWdsb3QtLXJl Y292ZXItd29ya3NwYWNlLXN5bWJvbC1tZXRhIGlkKSkpCiAgICAgKGlmIHByb2JlCi0gICAgICAg IChlZ2xvdC0tZGJpbmQgKChXb3Jrc3BhY2VTeW1ib2wpIG5hbWUgbG9jYXRpb24pCi0gICAgICAg ICAgICAoZ2V0LXRleHQtcHJvcGVydHkgMCAnZWdsb3QtLWxzcC13b3Jrc3BhY2VTeW1ib2wgcHJv YmUpCi0gICAgICAgICAgKGVnbG90LS1kYmluZCAoKExvY2F0aW9uKSB1cmkgcmFuZ2UpIGxvY2F0 aW9uCi0gICAgICAgICAgICAobGlzdCAoZWdsb3QtLXhyZWYtbWFrZS1tYXRjaCBuYW1lIHVyaSBy YW5nZSkpKSkKLSAgICAgICAgKGVnbG90LS1sc3AteHJlZnMtZm9yLW1ldGhvZCA6dGV4dERvY3Vt ZW50L2RlZmluaXRpb24pKSkpCisgICAgICAoZWdsb3QtLWRiaW5kICgoV29ya3NwYWNlU3ltYm9s KSBuYW1lIGxvY2F0aW9uKQorICAgICAgICAoZ2V0LXRleHQtcHJvcGVydHkgMCAnZWdsb3QtLWxz cC13b3Jrc3BhY2VTeW1ib2wgcHJvYmUpCisgICAgICAgIChlZ2xvdC0tZGJpbmQgKChMb2NhdGlv bikgdXJpIHJhbmdlKSBsb2NhdGlvbgorICAgICAgICAgIChsaXN0IChlZ2xvdC0teHJlZi1tYWtl LW1hdGNoIG5hbWUgdXJpIHJhbmdlKSkpKQorICAgICAgKGVnbG90LS1sc3AteHJlZnMtZm9yLW1l dGhvZCA6dGV4dERvY3VtZW50L2RlZmluaXRpb24pKSkpCiAKIChjbC1kZWZtZXRob2QgeHJlZi1i YWNrZW5kLXJlZmVyZW5jZXMgKChfYmFja2VuZCAoZXFsIGVnbG90KSkgX2lkZW50aWZpZXIpCiAg IChvcgotICAgZWdsb3QtLWxzcC14cmVmLXJlZnMKLSAgIChlZ2xvdC0tbHNwLXhyZWZzLWZvci1t ZXRob2QKLSAgICA6dGV4dERvY3VtZW50L3JlZmVyZW5jZXMgOmV4dHJhLXBhcmFtcyBgKDpjb250 ZXh0ICg6aW5jbHVkZURlY2xhcmF0aW9uIHQpKSkpKQorICAgIGVnbG90LS1sc3AteHJlZi1yZWZz CisgICAgKGVnbG90LS1sc3AteHJlZnMtZm9yLW1ldGhvZAorICAgICAgOnRleHREb2N1bWVudC9y ZWZlcmVuY2VzIDpleHRyYS1wYXJhbXMgYCg6Y29udGV4dCAoOmluY2x1ZGVEZWNsYXJhdGlvbiB0 KSkpKSkKIAogKGNsLWRlZm1ldGhvZCB4cmVmLWJhY2tlbmQtYXByb3BvcyAoKF9iYWNrZW5kIChl cWwgZWdsb3QpKSBwYXR0ZXJuKQogICAod2hlbiAoZWdsb3QtLXNlcnZlci1jYXBhYmxlIDp3b3Jr c3BhY2VTeW1ib2xQcm92aWRlcikKICAgICAoZWdsb3QtLWNvbGxlY3RpbmcteHJlZnMgKGNvbGxl Y3QpCiAgICAgICAobWFwYwotICAgICAgIChlZ2xvdC0tbGFtYmRhICgoU3ltYm9sSW5mb3JtYXRp b24pIG5hbWUgbG9jYXRpb24pCi0gICAgICAgICAoZWdsb3QtLWRiaW5kICgoTG9jYXRpb24pIHVy aSByYW5nZSkgbG9jYXRpb24KLSAgICAgICAgICAgKGNvbGxlY3QgKGVnbG90LS14cmVmLW1ha2Ut bWF0Y2ggbmFtZSB1cmkgcmFuZ2UpKSkpCi0gICAgICAgKGpzb25ycGMtcmVxdWVzdCAoZWdsb3Qt LWN1cnJlbnQtc2VydmVyLW9yLWxvc2UpCi0gICAgICAgICAgICAgICAgICAgICAgICA6d29ya3Nw YWNlL3N5bWJvbAotICAgICAgICAgICAgICAgICAgICAgICAgYCg6cXVlcnkgLHBhdHRlcm4pKSkp KSkKKyAgICAgICAgKGVnbG90LS1sYW1iZGEgKChTeW1ib2xJbmZvcm1hdGlvbikgbmFtZSBsb2Nh dGlvbikKKyAgICAgICAgICAoZWdsb3QtLWRiaW5kICgoTG9jYXRpb24pIHVyaSByYW5nZSkgbG9j YXRpb24KKyAgICAgICAgICAgIChjb2xsZWN0IChlZ2xvdC0teHJlZi1tYWtlLW1hdGNoIG5hbWUg dXJpIHJhbmdlKSkpKQorICAgICAgICAoanNvbnJwYy1yZXF1ZXN0IChlZ2xvdC0tY3VycmVudC1z ZXJ2ZXItb3ItbG9zZSkKKyAgICAgICAgICA6d29ya3NwYWNlL3N5bWJvbAorICAgICAgICAgIGAo OnF1ZXJ5ICxwYXR0ZXJuKSkpKSkpCiAKIChkZWZ1biBlZ2xvdC1mb3JtYXQtYnVmZmVyICgpCiAg ICJGb3JtYXQgY29udGVudHMgb2YgY3VycmVudCBidWZmZXIuIgpAQCAtMjY3MCwzMDQgKzI4MjYs MzA0IEBAIElmIG5vbi1uaWwsIE9OLVRZUEUtRk9STUFUIGlzIGEgY2hhcmFjdGVyIGp1c3QgaW5z ZXJ0ZWQgYXQgQkVHCiBmb3Igd2hpY2ggTFNQIG9uLXR5cGUtZm9ybWF0dGluZyBzaG91bGQgYmUg cmVxdWVzdGVkLiIKICAgKGludGVyYWN0aXZlIChhbmQgKHJlZ2lvbi1hY3RpdmUtcCkgKGxpc3Qg KHJlZ2lvbi1iZWdpbm5pbmcpIChyZWdpb24tZW5kKSkpKQogICAocGNhc2UtbGV0ICgoYCgsbWV0 aG9kICxjYXAgLGFyZ3MpCi0gICAgICAgICAgICAgICAoY29uZAotICAgICAgICAgICAgICAgICgo YW5kIGJlZyBvbi10eXBlLWZvcm1hdCkKLSAgICAgICAgICAgICAgICAgYCg6dGV4dERvY3VtZW50 L29uVHlwZUZvcm1hdHRpbmcKLSAgICAgICAgICAgICAgICAgICA6ZG9jdW1lbnRPblR5cGVGb3Jt YXR0aW5nUHJvdmlkZXIKLSAgICAgICAgICAgICAgICAgICAsYCg6cG9zaXRpb24gLChlZ2xvdC0t cG9zLXRvLWxzcC1wb3NpdGlvbiBiZWcpCi0gICAgICAgICAgICAgICAgICAgICAgOmNoICwoc3Ry aW5nIG9uLXR5cGUtZm9ybWF0KSkpKQotICAgICAgICAgICAgICAgICgoYW5kIGJlZyBlbmQpCi0g ICAgICAgICAgICAgICAgIGAoOnRleHREb2N1bWVudC9yYW5nZUZvcm1hdHRpbmcKLSAgICAgICAg ICAgICAgICAgICA6ZG9jdW1lbnRSYW5nZUZvcm1hdHRpbmdQcm92aWRlcgotICAgICAgICAgICAg ICAgICAgICg6cmFuZ2UgLChsaXN0IDpzdGFydCAoZWdsb3QtLXBvcy10by1sc3AtcG9zaXRpb24g YmVnKQorICAgICAgICAgICAgICAgIChjb25kCisgICAgICAgICAgICAgICAgICAoKGFuZCBiZWcg b24tdHlwZS1mb3JtYXQpCisgICAgICAgICAgICAgICAgICAgIGAoOnRleHREb2N1bWVudC9vblR5 cGVGb3JtYXR0aW5nCisgICAgICAgICAgICAgICAgICAgICAgIDpkb2N1bWVudE9uVHlwZUZvcm1h dHRpbmdQcm92aWRlcgorICAgICAgICAgICAgICAgICAgICAgICAsYCg6cG9zaXRpb24gLChlZ2xv dC0tcG9zLXRvLWxzcC1wb3NpdGlvbiBiZWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICA6 Y2ggLChzdHJpbmcgb24tdHlwZS1mb3JtYXQpKSkpCisgICAgICAgICAgICAgICAgICAoKGFuZCBi ZWcgZW5kKQorICAgICAgICAgICAgICAgICAgICBgKDp0ZXh0RG9jdW1lbnQvcmFuZ2VGb3JtYXR0 aW5nCisgICAgICAgICAgICAgICAgICAgICAgIDpkb2N1bWVudFJhbmdlRm9ybWF0dGluZ1Byb3Zp ZGVyCisgICAgICAgICAgICAgICAgICAgICAgICg6cmFuZ2UgLChsaXN0IDpzdGFydCAoZWdsb3Qt LXBvcy10by1sc3AtcG9zaXRpb24gYmVnKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDplbmQgKGVnbG90LS1wb3MtdG8tbHNwLXBvc2l0aW9uIGVuZCkpKSkpCi0gICAgICAgICAg ICAgICAgKHQKLSAgICAgICAgICAgICAgICAgJyg6dGV4dERvY3VtZW50L2Zvcm1hdHRpbmcgOmRv Y3VtZW50Rm9ybWF0dGluZ1Byb3ZpZGVyIG5pbCkpKSkpCisgICAgICAgICAgICAgICAgICAodAor ICAgICAgICAgICAgICAgICAgICAnKDp0ZXh0RG9jdW1lbnQvZm9ybWF0dGluZyA6ZG9jdW1lbnRG b3JtYXR0aW5nUHJvdmlkZXIgbmlsKSkpKSkKICAgICAodW5sZXNzIChlZ2xvdC0tc2VydmVyLWNh cGFibGUgY2FwKQogICAgICAgKGVnbG90LS1lcnJvciAiU2VydmVyIGNhbid0IGZvcm1hdCEiKSkK ICAgICAoZWdsb3QtLWFwcGx5LXRleHQtZWRpdHMKLSAgICAgKGpzb25ycGMtcmVxdWVzdAotICAg ICAgKGVnbG90LS1jdXJyZW50LXNlcnZlci1vci1sb3NlKQotICAgICAgbWV0aG9kCi0gICAgICAo Y2wtbGlzdCoKLSAgICAgICA6dGV4dERvY3VtZW50IChlZ2xvdC0tVGV4dERvY3VtZW50SWRlbnRp ZmllcikKLSAgICAgICA6b3B0aW9ucyAobGlzdCA6dGFiU2l6ZSB0YWItd2lkdGgKLSAgICAgICAg ICAgICAgICAgICAgICA6aW5zZXJ0U3BhY2VzIChpZiBpbmRlbnQtdGFicy1tb2RlIDpqc29uLWZh bHNlIHQpCi0gICAgICAgICAgICAgICAgICAgICAgOmluc2VydEZpbmFsTmV3bGluZSAoaWYgcmVx dWlyZS1maW5hbC1uZXdsaW5lIHQgOmpzb24tZmFsc2UpCi0gICAgICAgICAgICAgICAgICAgICAg OnRyaW1GaW5hbE5ld2xpbmVzIChpZiBkZWxldGUtdHJhaWxpbmctbGluZXMgdCA6anNvbi1mYWxz ZSkpCi0gICAgICAgYXJncykKLSAgICAgIDpkZWZlcnJlZCBtZXRob2QpKSkpCisgICAgICAoanNv bnJwYy1yZXF1ZXN0CisgICAgICAgIChlZ2xvdC0tY3VycmVudC1zZXJ2ZXItb3ItbG9zZSkKKyAg ICAgICAgbWV0aG9kCisgICAgICAgIChjbC1saXN0KgorICAgICAgICAgIDp0ZXh0RG9jdW1lbnQg KGVnbG90LS1UZXh0RG9jdW1lbnRJZGVudGlmaWVyKQorICAgICAgICAgIDpvcHRpb25zIChsaXN0 IDp0YWJTaXplIHRhYi13aWR0aAorICAgICAgICAgICAgICAgICAgICAgOmluc2VydFNwYWNlcyAo aWYgaW5kZW50LXRhYnMtbW9kZSA6anNvbi1mYWxzZSB0KQorICAgICAgICAgICAgICAgICAgICAg Omluc2VydEZpbmFsTmV3bGluZSAoaWYgcmVxdWlyZS1maW5hbC1uZXdsaW5lIHQgOmpzb24tZmFs c2UpCisgICAgICAgICAgICAgICAgICAgICA6dHJpbUZpbmFsTmV3bGluZXMgKGlmIGRlbGV0ZS10 cmFpbGluZy1saW5lcyB0IDpqc29uLWZhbHNlKSkKKyAgICAgICAgICBhcmdzKQorICAgICAgICA6 ZGVmZXJyZWQgbWV0aG9kKSkpKQogCiAoZGVmdW4gZWdsb3QtY29tcGxldGlvbi1hdC1wb2ludCAo KQogICAiRWdsb3QncyBgY29tcGxldGlvbi1hdC1wb2ludCcgZnVuY3Rpb24uIgogICA7OyBDb21t aXQgbG9ncyBmb3IgdGhpcyBmdW5jdGlvbiBoZWxwIHVuZGVyc3RhbmQgd2hhdCdzIGdvaW5nIG9u LgogICAod2hlbi1sZXQgKGNvbXBsZXRpb24tY2FwYWJpbGl0eSAoZWdsb3QtLXNlcnZlci1jYXBh YmxlIDpjb21wbGV0aW9uUHJvdmlkZXIpKQogICAgIChsZXQqICgoc2VydmVyIChlZ2xvdC0tY3Vy cmVudC1zZXJ2ZXItb3ItbG9zZSkpCi0gICAgICAgICAgIChzb3J0LWNvbXBsZXRpb25zCi0gICAg ICAgICAgICAobGFtYmRhIChjb21wbGV0aW9ucykKLSAgICAgICAgICAgICAgKGNsLXNvcnQgY29t cGxldGlvbnMKLSAgICAgICAgICAgICAgICAgICAgICAgIydzdHJpbmctbGVzc3AKLSAgICAgICAg ICAgICAgICAgICAgICAgOmtleSAobGFtYmRhIChjKQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKG9yIChwbGlzdC1nZXQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGdldC10ZXh0LXByb3BlcnR5IDAgJ2VnbG90LS1sc3AtaXRlbSBjKQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6c29ydFRleHQpCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIiIpKSkpKQotICAgICAgICAgICAobWV0YWRhdGEgYChtZXRhZGF0YSAoY2F0ZWdv cnkgLiBlZ2xvdCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRpc3BsYXktc29y dC1mdW5jdGlvbiAuICxzb3J0LWNvbXBsZXRpb25zKSkpCi0gICAgICAgICAgIHJlc3AgaXRlbXMg KGNhY2hlZC1wcm94aWVzIDpub25lKQotICAgICAgICAgICAocHJveGllcwotICAgICAgICAgICAg KGxhbWJkYSAoKQotICAgICAgICAgICAgICAoaWYgKGxpc3RwIGNhY2hlZC1wcm94aWVzKSBjYWNo ZWQtcHJveGllcwotICAgICAgICAgICAgICAgIChzZXRxIHJlc3AKLSAgICAgICAgICAgICAgICAg ICAgICAoanNvbnJwYy1yZXF1ZXN0IHNlcnZlcgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOnRleHREb2N1bWVudC9jb21wbGV0aW9uCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoZWdsb3QtLUNvbXBsZXRpb25QYXJhbXMpCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZGVmZXJyZWQgOnRleHREb2N1bWVudC9jb21w bGV0aW9uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2FuY2VsLW9u LWlucHV0IHQpKQotICAgICAgICAgICAgICAgIChzZXRxIGl0ZW1zIChhcHBlbmQKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGlmICh2ZWN0b3JwIHJlc3ApIHJlc3AgKHBsaXN0LWdldCBy ZXNwIDppdGVtcykpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pbCkpCi0gICAgICAg ICAgICAgICAgKHNldHEgY2FjaGVkLXByb3hpZXMKLSAgICAgICAgICAgICAgICAgICAgICAobWFw Y2FyCi0gICAgICAgICAgICAgICAgICAgICAgIChqc29ucnBjLWxhbWJkYQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgKCZyZXN0IGl0ZW0gJmtleSBsYWJlbCBpbnNlcnRUZXh0IGluc2VydFRl eHRGb3JtYXQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYWxsb3ctb3RoZXIt a2V5cykKLSAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgocHJveHkKKyAgICAgICAgICAg IChzb3J0LWNvbXBsZXRpb25zCisgICAgICAgICAgICAgIChsYW1iZGEgKGNvbXBsZXRpb25zKQor ICAgICAgICAgICAgICAgIChjbC1zb3J0IGNvbXBsZXRpb25zCisgICAgICAgICAgICAgICAgICAj J3N0cmluZy1sZXNzcAorICAgICAgICAgICAgICAgICAgOmtleSAobGFtYmRhIChjKQorICAgICAg ICAgICAgICAgICAgICAgICAgIChvciAocGxpc3QtZ2V0CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGdldC10ZXh0LXByb3BlcnR5IDAgJ2VnbG90LS1sc3AtaXRlbSBjKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDpzb3J0VGV4dCkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICIiKSkpKSkKKyAgICAgICAgICAgIChtZXRhZGF0YSBgKG1ldGFkYXRhIChjYXRlZ29y eSAuIGVnbG90KQorICAgICAgICAgICAgICAgICAgICAgICAgIChkaXNwbGF5LXNvcnQtZnVuY3Rp b24gLiAsc29ydC1jb21wbGV0aW9ucykpKQorICAgICAgICAgICAgcmVzcCBpdGVtcyAoY2FjaGVk LXByb3hpZXMgOm5vbmUpCisgICAgICAgICAgICAocHJveGllcworICAgICAgICAgICAgICAobGFt YmRhICgpCisgICAgICAgICAgICAgICAgKGlmIChsaXN0cCBjYWNoZWQtcHJveGllcykgY2FjaGVk LXByb3hpZXMKKyAgICAgICAgICAgICAgICAgIChzZXRxIHJlc3AKKyAgICAgICAgICAgICAgICAg ICAgKGpzb25ycGMtcmVxdWVzdCBzZXJ2ZXIKKyAgICAgICAgICAgICAgICAgICAgICA6dGV4dERv Y3VtZW50L2NvbXBsZXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAoZWdsb3QtLUNvbXBsZXRp b25QYXJhbXMpCisgICAgICAgICAgICAgICAgICAgICAgOmRlZmVycmVkIDp0ZXh0RG9jdW1lbnQv Y29tcGxldGlvbgorICAgICAgICAgICAgICAgICAgICAgIDpjYW5jZWwtb24taW5wdXQgdCkpCisg ICAgICAgICAgICAgICAgICAoc2V0cSBpdGVtcyAoYXBwZW5kCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChpZiAodmVjdG9ycCByZXNwKSByZXNwIChwbGlzdC1nZXQgcmVzcCA6aXRl bXMpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwpKQorICAgICAgICAgICAg ICAgICAgKHNldHEgY2FjaGVkLXByb3hpZXMKKyAgICAgICAgICAgICAgICAgICAgKG1hcGNhcgor ICAgICAgICAgICAgICAgICAgICAgIChqc29ucnBjLWxhbWJkYQorICAgICAgICAgICAgICAgICAg ICAgICAgKCZyZXN0IGl0ZW0gJmtleSBsYWJlbCBpbnNlcnRUZXh0IGluc2VydFRleHRGb3JtYXQK KyAgICAgICAgICAgICAgICAgICAgICAgICAgJmFsbG93LW90aGVyLWtleXMpCisgICAgICAgICAg ICAgICAgICAgICAgICAobGV0ICgocHJveHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGNvbmQgKChhbmQgKGVxbCBpbnNlcnRUZXh0Rm9ybWF0IDIpCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlZ2xvdC0tc25pcHBldC1leHBhbnNpb24tZm4p KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy10cmltLWxl ZnQgbGFiZWwpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGFuZCBp bnNlcnRUZXh0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChu b3QgKHN0cmluZy1lbXB0eS1wIGluc2VydFRleHQpKSkKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGluc2VydFRleHQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICh0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Ry aW5nLXRyaW0tbGVmdCBsYWJlbCkpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAodW5s ZXNzICh6ZXJvcCAobGVuZ3RoIHByb3h5KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHB1dC10ZXh0LXByb3BlcnR5IDAgMSAnZWdsb3QtLWxzcC1pdGVtIGl0ZW0gcHJveHkpKQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHJveHkpKQotICAgICAgICAgICAgICAgICAgICAgICBp dGVtcykpKSkpCi0gICAgICAgICAgIChyZXNvbHZlZCAobWFrZS1oYXNoLXRhYmxlKSkKLSAgICAg ICAgICAgKHJlc29sdmUtbWF5YmUKLSAgICAgICAgICAgIDs7IE1heWJlIGNvbXBsZXRpb24vcmVz b2x2ZSBKU09OIG9iamVjdCBgbHNwLWNvbXAnIGludG8KLSAgICAgICAgICAgIDs7IGFub3RoZXIg SlNPTiBvYmplY3QsIGlmIGF0IGFsbCBwb3NzaWJsZS4gIE90aGVyd2lzZSwKLSAgICAgICAgICAg IDs7IGp1c3QgcmV0dXJuIGxzcC1jb21wLgotICAgICAgICAgICAgKGxhbWJkYSAobHNwLWNvbXAp Ci0gICAgICAgICAgICAgIChvciAoZ2V0aGFzaCBsc3AtY29tcCByZXNvbHZlZCkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVnbG90LS1zbmlwcGV0LWV4cGFuc2lv bi1mbikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy10 cmltLWxlZnQgbGFiZWwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoYW5k IGluc2VydFRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobm90IChz dHJpbmctZW1wdHktcCBpbnNlcnRUZXh0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnNlcnRUZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLXRyaW0tbGVmdCBs YWJlbCkpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICh1bmxlc3MgKHplcm9wIChsZW5n dGggcHJveHkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0 eSAwIDEgJ2VnbG90LS1sc3AtaXRlbSBpdGVtIHByb3h5KSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgcHJveHkpKQorICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zKSkpKSkKKyAgICAgICAg ICAgIChyZXNvbHZlZCAobWFrZS1oYXNoLXRhYmxlKSkKKyAgICAgICAgICAgIChyZXNvbHZlLW1h eWJlCisgICAgICAgICAgICAgIDs7IE1heWJlIGNvbXBsZXRpb24vcmVzb2x2ZSBKU09OIG9iamVj dCBgbHNwLWNvbXAnIGludG8KKyAgICAgICAgICAgICAgOzsgYW5vdGhlciBKU09OIG9iamVjdCwg aWYgYXQgYWxsIHBvc3NpYmxlLiAgT3RoZXJ3aXNlLAorICAgICAgICAgICAgICA7OyBqdXN0IHJl dHVybiBsc3AtY29tcC4KKyAgICAgICAgICAgICAgKGxhbWJkYSAobHNwLWNvbXApCisgICAgICAg ICAgICAgICAgKG9yIChnZXRoYXNoIGxzcC1jb21wIHJlc29sdmVkKQogICAgICAgICAgICAgICAg ICAgKHNldGYgKGdldGhhc2ggbHNwLWNvbXAgcmVzb2x2ZWQpCi0gICAgICAgICAgICAgICAgICAg ICAgICAoaWYgKGFuZCAoZWdsb3QtLXNlcnZlci1jYXBhYmxlIDpjb21wbGV0aW9uUHJvdmlkZXIK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OnJlc29sdmVQcm92aWRlcikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwbGlz dC1nZXQgbHNwLWNvbXAgOmRhdGEpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChqc29u cnBjLXJlcXVlc3Qgc2VydmVyIDpjb21wbGV0aW9uSXRlbS9yZXNvbHZlCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsc3AtY29tcCA6Y2FuY2VsLW9uLWlucHV0 IHQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGxzcC1jb21wKSkpKSkKLSAgICAgICAgICAg KGJvdW5kcyAoYm91bmRzLW9mLXRoaW5nLWF0LXBvaW50ICdzeW1ib2wpKSkKKyAgICAgICAgICAg ICAgICAgICAgKGlmIChhbmQgKGVnbG90LS1zZXJ2ZXItY2FwYWJsZSA6Y29tcGxldGlvblByb3Zp ZGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnJlc29sdmVQcm92aWRlcikKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgKHBsaXN0LWdldCBsc3AtY29tcCA6ZGF0YSkpCisgICAg ICAgICAgICAgICAgICAgICAgKGpzb25ycGMtcmVxdWVzdCBzZXJ2ZXIgOmNvbXBsZXRpb25JdGVt L3Jlc29sdmUKKyAgICAgICAgICAgICAgICAgICAgICAgIGxzcC1jb21wIDpjYW5jZWwtb24taW5w dXQgdCkKKyAgICAgICAgICAgICAgICAgICAgICBsc3AtY29tcCkpKSkpCisgICAgICAgICAgICAo Ym91bmRzIChib3VuZHMtb2YtdGhpbmctYXQtcG9pbnQgJ3N5bWJvbCkpKQogICAgICAgKGxpc3QK LSAgICAgICAob3IgKGNhciBib3VuZHMpIChwb2ludCkpCi0gICAgICAgKG9yIChjZHIgYm91bmRz KSAocG9pbnQpKQotICAgICAgIChsYW1iZGEgKHByb2JlIHByZWQgYWN0aW9uKQotICAgICAgICAg KGNvbmQKLSAgICAgICAgICAoKGVxIGFjdGlvbiAnbWV0YWRhdGEpIG1ldGFkYXRhKSAgICAgICAg ICAgICAgIDsgbWV0YWRhdGEKLSAgICAgICAgICAoKGVxIGFjdGlvbiAnbGFtYmRhKSAgICAgICAg ICAgICAgICAgICAgICAgICAgIDsgdGVzdC1jb21wbGV0aW9uCi0gICAgICAgICAgICh0ZXN0LWNv bXBsZXRpb24gcHJvYmUgKGZ1bmNhbGwgcHJveGllcykpKQotICAgICAgICAgICgoZXEgKGNhci1z YWZlIGFjdGlvbikgJ2JvdW5kYXJpZXMpIG5pbCkgICAgICAgOyBib3VuZGFyaWVzCi0gICAgICAg ICAgKChudWxsIGFjdGlvbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHRyeS1j b21wbGV0aW9uCi0gICAgICAgICAgICh0cnktY29tcGxldGlvbiBwcm9iZSAoZnVuY2FsbCBwcm94 aWVzKSkpCi0gICAgICAgICAgKChlcSBhY3Rpb24gdCkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA7IGFsbC1jb21wbGV0aW9ucwotICAgICAgICAgICAoYWxsLWNvbXBsZXRpb25zCi0g ICAgICAgICAgICAiIgotICAgICAgICAgICAgKGZ1bmNhbGwgcHJveGllcykKLSAgICAgICAgICAg IChsYW1iZGEgKHByb3h5KQotICAgICAgICAgICAgICAobGV0KiAoKGl0ZW0gKGdldC10ZXh0LXBy b3BlcnR5IDAgJ2VnbG90LS1sc3AtaXRlbSBwcm94eSkpCi0gICAgICAgICAgICAgICAgICAgICAo ZmlsdGVyVGV4dCAocGxpc3QtZ2V0IGl0ZW0gOmZpbHRlclRleHQpKSkKLSAgICAgICAgICAgICAg ICAoYW5kIChvciAobnVsbCBwcmVkKSAoZnVuY2FsbCBwcmVkIHByb3h5KSkKLSAgICAgICAgICAg ICAgICAgICAgIChzdHJpbmctcHJlZml4LXAKLSAgICAgICAgICAgICAgICAgICAgICBwcm9iZSAo b3IgZmlsdGVyVGV4dCBwcm94eSkgY29tcGxldGlvbi1pZ25vcmUtY2FzZSkpKSkpKSkpCi0gICAg ICAgOmFubm90YXRpb24tZnVuY3Rpb24KLSAgICAgICAobGFtYmRhIChwcm94eSkKLSAgICAgICAg IChlZ2xvdC0tZGJpbmQgKChDb21wbGV0aW9uSXRlbSkgZGV0YWlsIGtpbmQpCi0gICAgICAgICAg ICAgKGdldC10ZXh0LXByb3BlcnR5IDAgJ2VnbG90LS1sc3AtaXRlbSBwcm94eSkKLSAgICAgICAg ICAgKGxldCogKChkZXRhaWwgKGFuZCAoc3RyaW5ncCBkZXRhaWwpCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKG5vdCAoc3RyaW5nPSBkZXRhaWwgIiIpKQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRldGFpbCkpCi0gICAgICAgICAgICAgICAgICAoYW5ub3RhdGlvbgot ICAgICAgICAgICAgICAgICAgIChvciBkZXRhaWwKLSAgICAgICAgICAgICAgICAgICAgICAgKGNk ciAoYXNzb2Mga2luZCBlZ2xvdC0ta2luZC1uYW1lcykpKSkpCi0gICAgICAgICAgICAgKHdoZW4g YW5ub3RhdGlvbgotICAgICAgICAgICAgICAgKGNvbmNhdCAiICIKLSAgICAgICAgICAgICAgICAg ICAgICAgKHByb3BlcnRpemUgYW5ub3RhdGlvbgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnZmFjZSAnZm9udC1sb2NrLWZ1bmN0aW9uLW5hbWUtZmFjZSkpKSkpKQotICAgICAg IDpjb21wYW55LWtpbmQKLSAgICAgICA7OyBBc3NvY2lhdGUgZWFjaCBsc3AtaXRlbSB3aXRoIGEg bHNwLWtpbmQgc3ltYm9sLgotICAgICAgIChsYW1iZGEgKHByb3h5KQotICAgICAgICAgKHdoZW4t bGV0KiAoKGxzcC1pdGVtIChnZXQtdGV4dC1wcm9wZXJ0eSAwICdlZ2xvdC0tbHNwLWl0ZW0gcHJv eHkpKQotICAgICAgICAgICAgICAgICAgICAgKGtpbmQgKGFsaXN0LWdldCAocGxpc3QtZ2V0IGxz cC1pdGVtIDpraW5kKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZ2xv dC0ta2luZC1uYW1lcykpKQotICAgICAgICAgICAoaW50ZXJuIChkb3duY2FzZSBraW5kKSkpKQot ICAgICAgIDpjb21wYW55LWRlcHJlY2F0ZWQKLSAgICAgICAobGFtYmRhIChwcm94eSkKLSAgICAg ICAgICh3aGVuLWxldCAoKGxzcC1pdGVtIChnZXQtdGV4dC1wcm9wZXJ0eSAwICdlZ2xvdC0tbHNw LWl0ZW0gcHJveHkpKSkKLSAgICAgICAgICAgKG9yIChzZXEtY29udGFpbnMtcCAocGxpc3QtZ2V0 IGxzcC1pdGVtIDp0YWdzKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEpCi0gICAg ICAgICAgICAgICAoZXEgdCAocGxpc3QtZ2V0IGxzcC1pdGVtIDpkZXByZWNhdGVkKSkpKSkKLSAg ICAgICA6Y29tcGFueS1kb2NzaWcKLSAgICAgICA7OyBGSVhNRTogYXV0b0ltcG9ydFRleHQgaXMg c3BlY2lmaWMgdG8gdGhlIHB5cmlnaHQgbGFuZ3VhZ2Ugc2VydmVyCi0gICAgICAgKGxhbWJkYSAo cHJveHkpCi0gICAgICAgICAod2hlbi1sZXQqICgobHNwLWNvbXAgKGdldC10ZXh0LXByb3BlcnR5 IDAgJ2VnbG90LS1sc3AtaXRlbSBwcm94eSkpCi0gICAgICAgICAgICAgICAgICAgICAoZGF0YSAo cGxpc3QtZ2V0IChmdW5jYWxsIHJlc29sdmUtbWF5YmUgbHNwLWNvbXApIDpkYXRhKSkKLSAgICAg ICAgICAgICAgICAgICAgIChpbXBvcnQtdGV4dCAocGxpc3QtZ2V0IGRhdGEgOmF1dG9JbXBvcnRU ZXh0KSkpCi0gICAgICAgICAgIGltcG9ydC10ZXh0KSkKLSAgICAgICA6Y29tcGFueS1kb2MtYnVm ZmVyCi0gICAgICAgKGxhbWJkYSAocHJveHkpCi0gICAgICAgICAobGV0KiAoKGRvY3VtZW50YXRp b24KLSAgICAgICAgICAgICAgICAgKGxldCAoKGxzcC1jb21wIChnZXQtdGV4dC1wcm9wZXJ0eSAw ICdlZ2xvdC0tbHNwLWl0ZW0gcHJveHkpKSkKLSAgICAgICAgICAgICAgICAgICAocGxpc3QtZ2V0 IChmdW5jYWxsIHJlc29sdmUtbWF5YmUgbHNwLWNvbXApIDpkb2N1bWVudGF0aW9uKSkpCi0gICAg ICAgICAgICAgICAgKGZvcm1hdHRlZCAoYW5kIGRvY3VtZW50YXRpb24KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGVnbG90LS1mb3JtYXQtbWFya3VwIGRvY3VtZW50YXRpb24pKSkp Ci0gICAgICAgICAgICh3aGVuIGZvcm1hdHRlZAotICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQt YnVmZmVyIChnZXQtYnVmZmVyLWNyZWF0ZSAiICplZ2xvdCBkb2MqIikKLSAgICAgICAgICAgICAg IChlcmFzZS1idWZmZXIpCi0gICAgICAgICAgICAgICAoaW5zZXJ0IGZvcm1hdHRlZCkKLSAgICAg ICAgICAgICAgIChjdXJyZW50LWJ1ZmZlcikpKSkpCi0gICAgICAgOmNvbXBhbnktcmVxdWlyZS1t YXRjaCAnbmV2ZXIKLSAgICAgICA6Y29tcGFueS1wcmVmaXgtbGVuZ3RoCi0gICAgICAgKHNhdmUt ZXhjdXJzaW9uCi0gICAgICAgICAod2hlbiAoY2FyIGJvdW5kcykgKGdvdG8tY2hhciAoY2FyIGJv dW5kcykpKQotICAgICAgICAgKHdoZW4gKGxpc3RwIGNvbXBsZXRpb24tY2FwYWJpbGl0eSkKLSAg ICAgICAgICAgKGxvb2tpbmctYmFjawotICAgICAgICAgICAgKHJlZ2V4cC1vcHQKLSAgICAgICAg ICAgICAoY2wtY29lcmNlIChjbC1nZXRmIGNvbXBsZXRpb24tY2FwYWJpbGl0eSA6dHJpZ2dlckNo YXJhY3RlcnMpICdsaXN0KSkKLSAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikp KSkKLSAgICAgICA6ZXhpdC1mdW5jdGlvbgotICAgICAgIChsYW1iZGEgKHByb3h5IHN0YXR1cykK LSAgICAgICAgICh3aGVuIChtZW1xIHN0YXR1cyAnKGZpbmlzaGVkIGV4YWN0KSkKLSAgICAgICAg ICAgOzsgVG8gYXNzaXN0IGluIHVzaW5nIHRoaXMgd2hvbGUgYGNvbXBsZXRpb24tYXQtcG9pbnQn Ci0gICAgICAgICAgIDs7IGZ1bmN0aW9uIGluc2lkZSBgY29tcGxldGlvbi1pbi1yZWdpb24nLCBl bnN1cmUgdGhlIGV4aXQKLSAgICAgICAgICAgOzsgZnVuY3Rpb24gcnVucyBpbiB0aGUgYnVmZmVy IHdoZXJlIHRoZSBjb21wbGV0aW9uIHdhcwotICAgICAgICAgICA7OyB0cmlnZ2VyZWQgZnJvbS4g IFRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIGluIEVtYWNzIGl0c2VsZi4KLSAgICAgICAgICAgOzsg KGdpdGh1YiM1MDUpCi0gICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIChpZiAobWluaWJ1 ZmZlcnApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2luZG93LWJ1ZmZl ciAobWluaWJ1ZmZlci1zZWxlY3RlZC13aW5kb3cpKQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChjdXJyZW50LWJ1ZmZlcikpCi0gICAgICAgICAgICAgKGVnbG90LS1kYmluZCAo KENvbXBsZXRpb25JdGVtKSBpbnNlcnRUZXh0Rm9ybWF0Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW5zZXJ0VGV4dCB0ZXh0RWRpdCBhZGRpdGlvbmFsVGV4dEVkaXRzIGxhYmVsKQotICAg ICAgICAgICAgICAgICAoZnVuY2FsbAorICAgICAgICAob3IgKGNhciBib3VuZHMpIChwb2ludCkp CisgICAgICAgIChvciAoY2RyIGJvdW5kcykgKHBvaW50KSkKKyAgICAgICAgKGxhbWJkYSAocHJv YmUgcHJlZCBhY3Rpb24pCisgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICgoZXEgYWN0aW9u ICdtZXRhZGF0YSkgbWV0YWRhdGEpICAgICAgICAgICAgICAgOyBtZXRhZGF0YQorICAgICAgICAg ICAgKChlcSBhY3Rpb24gJ2xhbWJkYSkgICAgICAgICAgICAgICAgICAgICAgICAgICA7IHRlc3Qt Y29tcGxldGlvbgorICAgICAgICAgICAgICAodGVzdC1jb21wbGV0aW9uIHByb2JlIChmdW5jYWxs IHByb3hpZXMpKSkKKyAgICAgICAgICAgICgoZXEgKGNhci1zYWZlIGFjdGlvbikgJ2JvdW5kYXJp ZXMpIG5pbCkgICAgICAgOyBib3VuZGFyaWVzCisgICAgICAgICAgICAoKG51bGwgYWN0aW9uKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgdHJ5LWNvbXBsZXRpb24KKyAgICAgICAg ICAgICAgKHRyeS1jb21wbGV0aW9uIHByb2JlIChmdW5jYWxsIHByb3hpZXMpKSkKKyAgICAgICAg ICAgICgoZXEgYWN0aW9uIHQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBhbGwt Y29tcGxldGlvbnMKKyAgICAgICAgICAgICAgKGFsbC1jb21wbGV0aW9ucworICAgICAgICAgICAg ICAgICIiCisgICAgICAgICAgICAgICAgKGZ1bmNhbGwgcHJveGllcykKKyAgICAgICAgICAgICAg ICAobGFtYmRhIChwcm94eSkKKyAgICAgICAgICAgICAgICAgIChsZXQqICgoaXRlbSAoZ2V0LXRl eHQtcHJvcGVydHkgMCAnZWdsb3QtLWxzcC1pdGVtIHByb3h5KSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgKGZpbHRlclRleHQgKHBsaXN0LWdldCBpdGVtIDpmaWx0ZXJUZXh0KSkpCisgICAg ICAgICAgICAgICAgICAgIChhbmQgKG9yIChudWxsIHByZWQpIChmdW5jYWxsIHByZWQgcHJveHkp KQorICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctcHJlZml4LXAKKyAgICAgICAgICAgICAg ICAgICAgICAgIHByb2JlIChvciBmaWx0ZXJUZXh0IHByb3h5KSBjb21wbGV0aW9uLWlnbm9yZS1j YXNlKSkpKSkpKSkKKyAgICAgICAgOmFubm90YXRpb24tZnVuY3Rpb24KKyAgICAgICAgKGxhbWJk YSAocHJveHkpCisgICAgICAgICAgKGVnbG90LS1kYmluZCAoKENvbXBsZXRpb25JdGVtKSBkZXRh aWwga2luZCkKKyAgICAgICAgICAgIChnZXQtdGV4dC1wcm9wZXJ0eSAwICdlZ2xvdC0tbHNwLWl0 ZW0gcHJveHkpCisgICAgICAgICAgICAobGV0KiAoKGRldGFpbCAoYW5kIChzdHJpbmdwIGRldGFp bCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAoc3RyaW5nPSBkZXRhaWwgIiIp KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWwpKQorICAgICAgICAgICAgICAg ICAgICAoYW5ub3RhdGlvbgorICAgICAgICAgICAgICAgICAgICAgIChvciBkZXRhaWwKKyAgICAg ICAgICAgICAgICAgICAgICAgIChjZHIgKGFzc29jIGtpbmQgZWdsb3QtLWtpbmQtbmFtZXMpKSkp KQorICAgICAgICAgICAgICAod2hlbiBhbm5vdGF0aW9uCisgICAgICAgICAgICAgICAgKGNvbmNh dCAiICIKKyAgICAgICAgICAgICAgICAgIChwcm9wZXJ0aXplIGFubm90YXRpb24KKyAgICAgICAg ICAgICAgICAgICAgJ2ZhY2UgJ2ZvbnQtbG9jay1mdW5jdGlvbi1uYW1lLWZhY2UpKSkpKSkKKyAg ICAgICAgOmNvbXBhbnkta2luZAorICAgICAgICA7OyBBc3NvY2lhdGUgZWFjaCBsc3AtaXRlbSB3 aXRoIGEgbHNwLWtpbmQgc3ltYm9sLgorICAgICAgICAobGFtYmRhIChwcm94eSkKKyAgICAgICAg ICAod2hlbi1sZXQqICgobHNwLWl0ZW0gKGdldC10ZXh0LXByb3BlcnR5IDAgJ2VnbG90LS1sc3At aXRlbSBwcm94eSkpCisgICAgICAgICAgICAgICAgICAgICAgIChraW5kIChhbGlzdC1nZXQgKHBs aXN0LWdldCBsc3AtaXRlbSA6a2luZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl Z2xvdC0ta2luZC1uYW1lcykpKQorICAgICAgICAgICAgKGludGVybiAoZG93bmNhc2Uga2luZCkp KSkKKyAgICAgICAgOmNvbXBhbnktZGVwcmVjYXRlZAorICAgICAgICAobGFtYmRhIChwcm94eSkK KyAgICAgICAgICAod2hlbi1sZXQgKChsc3AtaXRlbSAoZ2V0LXRleHQtcHJvcGVydHkgMCAnZWds b3QtLWxzcC1pdGVtIHByb3h5KSkpCisgICAgICAgICAgICAob3IgKHNlcS1jb250YWlucy1wIChw bGlzdC1nZXQgbHNwLWl0ZW0gOnRhZ3MpCisgICAgICAgICAgICAgICAgICAxKQorICAgICAgICAg ICAgICAoZXEgdCAocGxpc3QtZ2V0IGxzcC1pdGVtIDpkZXByZWNhdGVkKSkpKSkKKyAgICAgICAg OmNvbXBhbnktZG9jc2lnCisgICAgICAgIDs7IEZJWE1FOiBhdXRvSW1wb3J0VGV4dCBpcyBzcGVj aWZpYyB0byB0aGUgcHlyaWdodCBsYW5ndWFnZSBzZXJ2ZXIKKyAgICAgICAgKGxhbWJkYSAocHJv eHkpCisgICAgICAgICAgKHdoZW4tbGV0KiAoKGxzcC1jb21wIChnZXQtdGV4dC1wcm9wZXJ0eSAw ICdlZ2xvdC0tbHNwLWl0ZW0gcHJveHkpKQorICAgICAgICAgICAgICAgICAgICAgICAoZGF0YSAo cGxpc3QtZ2V0IChmdW5jYWxsIHJlc29sdmUtbWF5YmUgbHNwLWNvbXApIDpkYXRhKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgKGltcG9ydC10ZXh0IChwbGlzdC1nZXQgZGF0YSA6YXV0b0ltcG9y dFRleHQpKSkKKyAgICAgICAgICAgIGltcG9ydC10ZXh0KSkKKyAgICAgICAgOmNvbXBhbnktZG9j LWJ1ZmZlcgorICAgICAgICAobGFtYmRhIChwcm94eSkKKyAgICAgICAgICAobGV0KiAoKGRvY3Vt ZW50YXRpb24KKyAgICAgICAgICAgICAgICAgICAobGV0ICgobHNwLWNvbXAgKGdldC10ZXh0LXBy b3BlcnR5IDAgJ2VnbG90LS1sc3AtaXRlbSBwcm94eSkpKQorICAgICAgICAgICAgICAgICAgICAg KHBsaXN0LWdldCAoZnVuY2FsbCByZXNvbHZlLW1heWJlIGxzcC1jb21wKSA6ZG9jdW1lbnRhdGlv bikpKQorICAgICAgICAgICAgICAgICAgKGZvcm1hdHRlZCAoYW5kIGRvY3VtZW50YXRpb24KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWdsb3QtLWZvcm1hdC1tYXJrdXAgZG9jdW1l bnRhdGlvbikpKSkKKyAgICAgICAgICAgICh3aGVuIGZvcm1hdHRlZAorICAgICAgICAgICAgICAo d2l0aC1jdXJyZW50LWJ1ZmZlciAoZ2V0LWJ1ZmZlci1jcmVhdGUgIiAqZWdsb3QgZG9jKiIpCisg ICAgICAgICAgICAgICAgKGVyYXNlLWJ1ZmZlcikKKyAgICAgICAgICAgICAgICAoaW5zZXJ0IGZv cm1hdHRlZCkKKyAgICAgICAgICAgICAgICAoY3VycmVudC1idWZmZXIpKSkpKQorICAgICAgICA6 Y29tcGFueS1yZXF1aXJlLW1hdGNoICduZXZlcgorICAgICAgICA6Y29tcGFueS1wcmVmaXgtbGVu Z3RoCisgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICh3aGVuIChjYXIgYm91bmRz KSAoZ290by1jaGFyIChjYXIgYm91bmRzKSkpCisgICAgICAgICAgKHdoZW4gKGxpc3RwIGNvbXBs ZXRpb24tY2FwYWJpbGl0eSkKKyAgICAgICAgICAgIChsb29raW5nLWJhY2sKKyAgICAgICAgICAg ICAgKHJlZ2V4cC1vcHQKKyAgICAgICAgICAgICAgICAoY2wtY29lcmNlIChjbC1nZXRmIGNvbXBs ZXRpb24tY2FwYWJpbGl0eSA6dHJpZ2dlckNoYXJhY3RlcnMpICdsaXN0KSkKKyAgICAgICAgICAg ICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpKQorICAgICAgICA6ZXhpdC1mdW5jdGlvbgor ICAgICAgICAobGFtYmRhIChwcm94eSBzdGF0dXMpCisgICAgICAgICAgKHdoZW4gKG1lbXEgc3Rh dHVzICcoZmluaXNoZWQgZXhhY3QpKQorICAgICAgICAgICAgOzsgVG8gYXNzaXN0IGluIHVzaW5n IHRoaXMgd2hvbGUgYGNvbXBsZXRpb24tYXQtcG9pbnQnCisgICAgICAgICAgICA7OyBmdW5jdGlv biBpbnNpZGUgYGNvbXBsZXRpb24taW4tcmVnaW9uJywgZW5zdXJlIHRoZSBleGl0CisgICAgICAg ICAgICA7OyBmdW5jdGlvbiBydW5zIGluIHRoZSBidWZmZXIgd2hlcmUgdGhlIGNvbXBsZXRpb24g d2FzCisgICAgICAgICAgICA7OyB0cmlnZ2VyZWQgZnJvbS4gIFRoaXMgc2hvdWxkIHByb2JhYmx5 IGJlIGluIEVtYWNzIGl0c2VsZi4KKyAgICAgICAgICAgIDs7IChnaXRodWIjNTA1KQorICAgICAg ICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKGlmIChtaW5pYnVmZmVycCkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHdpbmRvdy1idWZmZXIgKG1pbmlidWZmZXItc2VsZWN0 ZWQtd2luZG93KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQt YnVmZmVyKSkKKyAgICAgICAgICAgICAgKGVnbG90LS1kYmluZCAoKENvbXBsZXRpb25JdGVtKSBp bnNlcnRUZXh0Rm9ybWF0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRUZXh0 IHRleHRFZGl0IGFkZGl0aW9uYWxUZXh0RWRpdHMgbGFiZWwpCisgICAgICAgICAgICAgICAgKGZ1 bmNhbGwKICAgICAgICAgICAgICAgICAgIHJlc29sdmUtbWF5YmUKICAgICAgICAgICAgICAgICAg IChvciAoZ2V0LXRleHQtcHJvcGVydHkgMCAnZWdsb3QtLWxzcC1pdGVtIHByb3h5KQotICAgICAg ICAgICAgICAgICAgICAgIDs7IFdoZW4gc2VsZWN0aW5nIGZyb20gdGhlICpDb21wbGV0aW9ucyoK LSAgICAgICAgICAgICAgICAgICAgICA7OyBidWZmZXIsIGBwcm94eScgd29uJ3QgaGF2ZSBhbnkg cHJvcGVydGllcy4KLSAgICAgICAgICAgICAgICAgICAgICA7OyBBIGxvb2t1cCBzaG91bGQgZml4 IHRoYXQgKGdpdGh1YiMxNDgpCi0gICAgICAgICAgICAgICAgICAgICAgKGdldC10ZXh0LXByb3Bl cnR5Ci0gICAgICAgICAgICAgICAgICAgICAgIDAgJ2VnbG90LS1sc3AtaXRlbQotICAgICAgICAg ICAgICAgICAgICAgICAoY2wtZmluZCBwcm94eSAoZnVuY2FsbCBwcm94aWVzKSA6dGVzdCAjJ3N0 cmluZz0pKSkpCi0gICAgICAgICAgICAgICAobGV0ICgoc25pcHBldC1mbiAoYW5kIChlcWwgaW5z ZXJ0VGV4dEZvcm1hdCAyKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo ZWdsb3QtLXNuaXBwZXQtZXhwYW5zaW9uLWZuKSkpKQotICAgICAgICAgICAgICAgICAoY29uZCAo dGV4dEVkaXQKLSAgICAgICAgICAgICAgICAgICAgICAgIDs7IFVuZG8gKHllcywgdW5kbykgdGhl IG5ld2x5IGluc2VydGVkIGNvbXBsZXRpb24uCi0gICAgICAgICAgICAgICAgICAgICAgICA7OyBJ ZiBiZWZvcmUgY29tcGxldGlvbiB0aGUgYnVmZmVyIHdhcyAiZm9vLmIiIGFuZAotICAgICAgICAg ICAgICAgICAgICAgICAgOzsgbm93IGlzICJmb28uYmFyIiwgYHByb3h5JyB3aWxsIGJlICJiYXIi LiAgV2UKLSAgICAgICAgICAgICAgICAgICAgICAgIDs7IHdhbnQgdG8gZGVsZXRlIG9ubHkgImFy IiAoYHByb3h5JyBtaW51cyB0aGUKLSAgICAgICAgICAgICAgICAgICAgICAgIDs7IHN5bWJvbCB3 aG9zZSBib3VuZHMgd2UndmUgY2FsY3VsYXRlZCBiZWZvcmUpCi0gICAgICAgICAgICAgICAgICAg ICAgICA7OyAoZ2l0aHViIzE2MCkuCi0gICAgICAgICAgICAgICAgICAgICAgICAoZGVsZXRlLXJl Z2lvbiAoKyAoLSAocG9pbnQpIChsZW5ndGggcHJveHkpKQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGlmIGJvdW5kcwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICgtIChjZHIgYm91bmRzKSAoY2FyIGJvdW5kcykpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApKQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkKLSAgICAgICAgICAgICAgICAgICAg ICAgIChlZ2xvdC0tZGJpbmQgKChUZXh0RWRpdCkgcmFuZ2UgbmV3VGV4dCkgdGV4dEVkaXQKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgKHBjYXNlLWxldCAoKGAoLGJlZyAuICxlbmQpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWdsb3QtLXJhbmdlLXJlZ2lvbiBy YW5nZSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWxldGUtcmVnaW9uIGJlZyBl bmQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciBiZWcpCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgKG9yIHNuaXBwZXQtZm4gIydpbnNlcnQpIG5l d1RleHQpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgIChzbmlwcGV0LWZuCi0gICAgICAgICAg ICAgICAgICAgICAgICA7OyBBIHNuaXBwZXQgc2hvdWxkIGJlIGluc2VydGVkLCBidXQgdXNpbmcg cGxhaW4KLSAgICAgICAgICAgICAgICAgICAgICAgIDs7IGBpbnNlcnRUZXh0Jy4gIFRoaXMgcmVx dWlyZXMgdXMgdG8gZGVsZXRlIHRoZQotICAgICAgICAgICAgICAgICAgICAgICAgOzsgd2hvbGUg Y29tcGxldGlvbiwgc2luY2UgYGluc2VydFRleHQnIGlzIHRoZSBmdWxsCi0gICAgICAgICAgICAg ICAgICAgICAgICA7OyBjb21wbGV0aW9uJ3MgdGV4dC4KLSAgICAgICAgICAgICAgICAgICAgICAg IChkZWxldGUtcmVnaW9uICgtIChwb2ludCkgKGxlbmd0aCBwcm94eSkpIChwb2ludCkpCi0gICAg ICAgICAgICAgICAgICAgICAgICAoZnVuY2FsbCBzbmlwcGV0LWZuIChvciBpbnNlcnRUZXh0IGxh YmVsKSkpKQotICAgICAgICAgICAgICAgICAod2hlbiAoY2wtcGx1c3AgKGxlbmd0aCBhZGRpdGlv bmFsVGV4dEVkaXRzKSkKLSAgICAgICAgICAgICAgICAgICAoZWdsb3QtLWFwcGx5LXRleHQtZWRp dHMgYWRkaXRpb25hbFRleHRFZGl0cykpKQotICAgICAgICAgICAgICAgKGVnbG90LS1zaWduYWwt dGV4dERvY3VtZW50L2RpZENoYW5nZSkKLSAgICAgICAgICAgICAgIChlbGRvYykpKSkpKSkpKQor ICAgICAgICAgICAgICAgICAgICA7OyBXaGVuIHNlbGVjdGluZyBmcm9tIHRoZSAqQ29tcGxldGlv bnMqCisgICAgICAgICAgICAgICAgICAgIDs7IGJ1ZmZlciwgYHByb3h5JyB3b24ndCBoYXZlIGFu eSBwcm9wZXJ0aWVzLgorICAgICAgICAgICAgICAgICAgICA7OyBBIGxvb2t1cCBzaG91bGQgZml4 IHRoYXQgKGdpdGh1YiMxNDgpCisgICAgICAgICAgICAgICAgICAgIChnZXQtdGV4dC1wcm9wZXJ0 eQorICAgICAgICAgICAgICAgICAgICAgIDAgJ2VnbG90LS1sc3AtaXRlbQorICAgICAgICAgICAg ICAgICAgICAgIChjbC1maW5kIHByb3h5IChmdW5jYWxsIHByb3hpZXMpIDp0ZXN0ICMnc3RyaW5n PSkpKSkKKyAgICAgICAgICAgICAgICAobGV0ICgoc25pcHBldC1mbiAoYW5kIChlcWwgaW5zZXJ0 VGV4dEZvcm1hdCAyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVnbG90 LS1zbmlwcGV0LWV4cGFuc2lvbi1mbikpKSkKKyAgICAgICAgICAgICAgICAgIChjb25kICh0ZXh0 RWRpdAorICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBVbmRvICh5ZXMsIHVuZG8pIHRoZSBu ZXdseSBpbnNlcnRlZCBjb21wbGV0aW9uLgorICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBJ ZiBiZWZvcmUgY29tcGxldGlvbiB0aGUgYnVmZmVyIHdhcyAiZm9vLmIiIGFuZAorICAgICAgICAg ICAgICAgICAgICAgICAgICA7OyBub3cgaXMgImZvby5iYXIiLCBgcHJveHknIHdpbGwgYmUgImJh ciIuICBXZQorICAgICAgICAgICAgICAgICAgICAgICAgICA7OyB3YW50IHRvIGRlbGV0ZSBvbmx5 ICJhciIgKGBwcm94eScgbWludXMgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IHN5 bWJvbCB3aG9zZSBib3VuZHMgd2UndmUgY2FsY3VsYXRlZCBiZWZvcmUpCisgICAgICAgICAgICAg ICAgICAgICAgICAgIDs7IChnaXRodWIjMTYwKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg KGRlbGV0ZS1yZWdpb24gKCsgKC0gKHBvaW50KSAobGVuZ3RoIHByb3h5KSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYgYm91bmRzCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoLSAoY2RyIGJvdW5kcykgKGNhciBib3Vu ZHMpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCkpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50KSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgKGVnbG90LS1kYmluZCAoKFRleHRFZGl0KSByYW5nZSBuZXdUZXh0KSB0ZXh0RWRpdAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwY2FzZS1sZXQgKChgKCxiZWcgLiAsZW5kKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVnbG90LS1yYW5nZS1y ZWdpb24gcmFuZ2UpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWxldGUtcmVn aW9uIGJlZyBlbmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIGJl ZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIChvciBzbmlwcGV0LWZu ICMnaW5zZXJ0KSBuZXdUZXh0KSkpKQorICAgICAgICAgICAgICAgICAgICAoc25pcHBldC1mbgor ICAgICAgICAgICAgICAgICAgICAgIDs7IEEgc25pcHBldCBzaG91bGQgYmUgaW5zZXJ0ZWQsIGJ1 dCB1c2luZyBwbGFpbgorICAgICAgICAgICAgICAgICAgICAgIDs7IGBpbnNlcnRUZXh0Jy4gIFRo aXMgcmVxdWlyZXMgdXMgdG8gZGVsZXRlIHRoZQorICAgICAgICAgICAgICAgICAgICAgIDs7IHdo b2xlIGNvbXBsZXRpb24sIHNpbmNlIGBpbnNlcnRUZXh0JyBpcyB0aGUgZnVsbAorICAgICAgICAg ICAgICAgICAgICAgIDs7IGNvbXBsZXRpb24ncyB0ZXh0LgorICAgICAgICAgICAgICAgICAgICAg IChkZWxldGUtcmVnaW9uICgtIChwb2ludCkgKGxlbmd0aCBwcm94eSkpIChwb2ludCkpCisgICAg ICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgc25pcHBldC1mbiAob3IgaW5zZXJ0VGV4dCBsYWJl bCkpKSkKKyAgICAgICAgICAgICAgICAgICh3aGVuIChjbC1wbHVzcCAobGVuZ3RoIGFkZGl0aW9u YWxUZXh0RWRpdHMpKQorICAgICAgICAgICAgICAgICAgICAoZWdsb3QtLWFwcGx5LXRleHQtZWRp dHMgYWRkaXRpb25hbFRleHRFZGl0cykpKQorICAgICAgICAgICAgICAgIChlZ2xvdC0tc2lnbmFs LXRleHREb2N1bWVudC9kaWRDaGFuZ2UpCisgICAgICAgICAgICAgICAgKGVsZG9jKSkpKSkpKSkp CiAKIChkZWZ1biBlZ2xvdC0taG92ZXItaW5mbyAoY29udGVudHMgJm9wdGlvbmFsIF9yYW5nZSkK ICAgKG1hcGNvbmNhdCAjJ2VnbG90LS1mb3JtYXQtbWFya3VwCi0gICAgICAgICAgICAgKGlmICh2 ZWN0b3JwIGNvbnRlbnRzKSBjb250ZW50cyAobGlzdCBjb250ZW50cykpICJcbiIpKQotIAorICAg IChpZiAodmVjdG9ycCBjb250ZW50cykgY29udGVudHMgKGxpc3QgY29udGVudHMpKSAiXG4iKSkK KwogKGRlZnVuIGVnbG90LS1zaWctaW5mbyAoc2lncyBhY3RpdmUtc2lnIHNpZy1oZWxwLWFjdGl2 ZS1wYXJhbSkKICAgKGNsLWxvb3AKLSAgIGZvciAoc2lnIC4gbW9yZXNpZ3MpIG9uIChhcHBlbmQg c2lncyBuaWwpIGZvciBpIGZyb20gMAotICAgY29uY2F0Ci0gICAoZWdsb3QtLWRiaW5kICgoU2ln bmF0dXJlSW5mb3JtYXRpb24pIGxhYmVsIGRvY3VtZW50YXRpb24gcGFyYW1ldGVycyBhY3RpdmVQ YXJhbWV0ZXIpIHNpZwotICAgICAod2l0aC10ZW1wLWJ1ZmZlcgotICAgICAgIChzYXZlLWV4Y3Vy c2lvbiAoaW5zZXJ0IGxhYmVsKSkKLSAgICAgICAobGV0ICgoYWN0aXZlLXBhcmFtIChvciBhY3Rp dmVQYXJhbWV0ZXIgc2lnLWhlbHAtYWN0aXZlLXBhcmFtKSkKLSAgICAgICAgICAgICBwYXJhbXMt c3RhcnQgcGFyYW1zLWVuZCkKLSAgICAgICAgIDs7IEFkLWhvYyBhdHRlbXB0IHRvIHBhcnNlIGxh YmVsIGFzIDxuYW1lPig8cGFyYW1zPikKLSAgICAgICAgICh3aGVuIChsb29raW5nLWF0ICJcXChb XihdK1xcKShcXChbXildK1xcKSkiKQotICAgICAgICAgICAoc2V0cSBwYXJhbXMtc3RhcnQgKG1h dGNoLWJlZ2lubmluZyAyKSBwYXJhbXMtZW5kIChtYXRjaC1lbmQgMikpCi0gICAgICAgICAgIChh ZGQtZmFjZS10ZXh0LXByb3BlcnR5IChtYXRjaC1iZWdpbm5pbmcgMSkgKG1hdGNoLWVuZCAxKQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9udC1sb2NrLWZ1bmN0aW9uLW5h bWUtZmFjZSkpCi0gICAgICAgICAod2hlbiAoZXFsIGkgYWN0aXZlLXNpZykKLSAgICAgICAgICAg OzsgRGVjaWRlIHdoZXRoZXIgdG8gYWRkIG9uZS1saW5lLXN1bW1hcnkgdG8gc2lnbmF0dXJlIGxp bmUKLSAgICAgICAgICAgKHdoZW4gKGFuZCAoc3RyaW5ncCBkb2N1bWVudGF0aW9uKQotICAgICAg ICAgICAgICAgICAgICAgIChzdHJpbmctbWF0Y2ggIltbOnNwYWNlOl1dKlxcKFteLlxyXG5dK1su XT9cXCkiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudGF0aW9u KSkKLSAgICAgICAgICAgICAoc2V0cSBkb2N1bWVudGF0aW9uIChtYXRjaC1zdHJpbmcgMSBkb2N1 bWVudGF0aW9uKSkKLSAgICAgICAgICAgICAodW5sZXNzIChzdHJpbmctcHJlZml4LXAgKHN0cmlu Zy10cmltIGRvY3VtZW50YXRpb24pIGxhYmVsKQotICAgICAgICAgICAgICAgKGdvdG8tY2hhciAo cG9pbnQtbWF4KSkKLSAgICAgICAgICAgICAgIChpbnNlcnQgIjogIiAoZWdsb3QtLWZvcm1hdC1t YXJrdXAgZG9jdW1lbnRhdGlvbikpKSkKLSAgICAgICAgICAgOzsgRGVjaWRlIHdoYXQgdG8gZG8g d2l0aCB0aGUgYWN0aXZlIHBhcmFtZXRlci4uLgotICAgICAgICAgICAod2hlbiAoYW5kIChlcWwg aSBhY3RpdmUtc2lnKSBhY3RpdmUtcGFyYW0KLSAgICAgICAgICAgICAgICAgICAgICAoPCAtMSBh Y3RpdmUtcGFyYW0gKGxlbmd0aCBwYXJhbWV0ZXJzKSkpCi0gICAgICAgICAgICAgKGVnbG90LS1k YmluZCAoKFBhcmFtZXRlckluZm9ybWF0aW9uKSBsYWJlbCBkb2N1bWVudGF0aW9uKQotICAgICAg ICAgICAgICAgICAoYXJlZiBwYXJhbWV0ZXJzIGFjdGl2ZS1wYXJhbSkKLSAgICAgICAgICAgICAg IDs7IC4uLnBlcmhhcHMgaGlnaGxpZ2h0IGl0IGluIHRoZSBmb3JtYWxzIGxpc3QKLSAgICAgICAg ICAgICAgICh3aGVuIHBhcmFtcy1zdGFydAotICAgICAgICAgICAgICAgICAoZ290by1jaGFyIHBh cmFtcy1zdGFydCkKLSAgICAgICAgICAgICAgICAgKHBjYXNlLWxldAotICAgICAgICAgICAgICAg ICAgICAgKChgKCxiZWcgLGVuZCkKKyAgICBmb3IgKHNpZyAuIG1vcmVzaWdzKSBvbiAoYXBwZW5k IHNpZ3MgbmlsKSBmb3IgaSBmcm9tIDAKKyAgICBjb25jYXQKKyAgICAoZWdsb3QtLWRiaW5kICgo U2lnbmF0dXJlSW5mb3JtYXRpb24pIGxhYmVsIGRvY3VtZW50YXRpb24gcGFyYW1ldGVycyBhY3Rp dmVQYXJhbWV0ZXIpIHNpZworICAgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgICAgKHNhdmUt ZXhjdXJzaW9uIChpbnNlcnQgbGFiZWwpKQorICAgICAgICAobGV0ICgoYWN0aXZlLXBhcmFtIChv ciBhY3RpdmVQYXJhbWV0ZXIgc2lnLWhlbHAtYWN0aXZlLXBhcmFtKSkKKyAgICAgICAgICAgICAg IHBhcmFtcy1zdGFydCBwYXJhbXMtZW5kKQorICAgICAgICAgIDs7IEFkLWhvYyBhdHRlbXB0IHRv IHBhcnNlIGxhYmVsIGFzIDxuYW1lPig8cGFyYW1zPikKKyAgICAgICAgICAod2hlbiAobG9va2lu Zy1hdCAiXFwoW14oXStcXCkoXFwoW14pXStcXCkpIikKKyAgICAgICAgICAgIChzZXRxIHBhcmFt cy1zdGFydCAobWF0Y2gtYmVnaW5uaW5nIDIpIHBhcmFtcy1lbmQgKG1hdGNoLWVuZCAyKSkKKyAg ICAgICAgICAgIChhZGQtZmFjZS10ZXh0LXByb3BlcnR5IChtYXRjaC1iZWdpbm5pbmcgMSkgKG1h dGNoLWVuZCAxKQorICAgICAgICAgICAgICAnZm9udC1sb2NrLWZ1bmN0aW9uLW5hbWUtZmFjZSkp CisgICAgICAgICAgKHdoZW4gKGVxbCBpIGFjdGl2ZS1zaWcpCisgICAgICAgICAgICA7OyBEZWNp ZGUgd2hldGhlciB0byBhZGQgb25lLWxpbmUtc3VtbWFyeSB0byBzaWduYXR1cmUgbGluZQorICAg ICAgICAgICAgKHdoZW4gKGFuZCAoc3RyaW5ncCBkb2N1bWVudGF0aW9uKQorICAgICAgICAgICAg ICAgICAgICAoc3RyaW5nLW1hdGNoICJbWzpzcGFjZTpdXSpcXChbXi5cclxuXStbLl0/XFwpIgor ICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50YXRpb24pKQorICAgICAgICAgICAgICAoc2V0 cSBkb2N1bWVudGF0aW9uIChtYXRjaC1zdHJpbmcgMSBkb2N1bWVudGF0aW9uKSkKKyAgICAgICAg ICAgICAgKHVubGVzcyAoc3RyaW5nLXByZWZpeC1wIChzdHJpbmctdHJpbSBkb2N1bWVudGF0aW9u KSBsYWJlbCkKKyAgICAgICAgICAgICAgICAoZ290by1jaGFyIChwb2ludC1tYXgpKQorICAgICAg ICAgICAgICAgIChpbnNlcnQgIjogIiAoZWdsb3QtLWZvcm1hdC1tYXJrdXAgZG9jdW1lbnRhdGlv bikpKSkKKyAgICAgICAgICAgIDs7IERlY2lkZSB3aGF0IHRvIGRvIHdpdGggdGhlIGFjdGl2ZSBw YXJhbWV0ZXIuLi4KKyAgICAgICAgICAgICh3aGVuIChhbmQgKGVxbCBpIGFjdGl2ZS1zaWcpIGFj dGl2ZS1wYXJhbQorICAgICAgICAgICAgICAgICAgICAoPCAtMSBhY3RpdmUtcGFyYW0gKGxlbmd0 aCBwYXJhbWV0ZXJzKSkpCisgICAgICAgICAgICAgIChlZ2xvdC0tZGJpbmQgKChQYXJhbWV0ZXJJ bmZvcm1hdGlvbikgbGFiZWwgZG9jdW1lbnRhdGlvbikKKyAgICAgICAgICAgICAgICAoYXJlZiBw YXJhbWV0ZXJzIGFjdGl2ZS1wYXJhbSkKKyAgICAgICAgICAgICAgICA7OyAuLi5wZXJoYXBzIGhp Z2hsaWdodCBpdCBpbiB0aGUgZm9ybWFscyBsaXN0CisgICAgICAgICAgICAgICAgKHdoZW4gcGFy YW1zLXN0YXJ0CisgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIHBhcmFtcy1zdGFydCkKKyAg ICAgICAgICAgICAgICAgIChwY2FzZS1sZXQKKyAgICAgICAgICAgICAgICAgICAgKChgKCxiZWcg LGVuZCkKICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmdwIGxhYmVsKQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggbmlsKSkKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAocmUtc2VhcmNoLWZvcndhcmQKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCAiXFw8IiAocmVnZXhwLXF1b3RlIGxh YmVsKSAiXFw+IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLWVu ZCB0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IChtYXRjaC1iZWdp bm5pbmcgMCkgKG1hdGNoLWVuZCAwKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQg KChjYXNlLWZvbGQtc2VhcmNoIG5pbCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5k IChyZS1zZWFyY2gtZm9yd2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChj b25jYXQgIlxcPCIgKHJlZ2V4cC1xdW90ZSBsYWJlbCkgIlxcPiIpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGFyYW1zLWVuZCB0KQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobGlzdCAobWF0Y2gtYmVnaW5uaW5nIDApIChtYXRjaC1lbmQgMCkpKSkKICAgICAgICAg ICAgICAgICAgICAgICAgICAobWFwY2FyICMnMSsgKGFwcGVuZCBsYWJlbCBuaWwpKSkpKQotICAg ICAgICAgICAgICAgICAgIChpZiAoYW5kIGJlZyBlbmQpCi0gICAgICAgICAgICAgICAgICAgICAg IChhZGQtZmFjZS10ZXh0LXByb3BlcnR5CisgICAgICAgICAgICAgICAgICAgIChpZiAoYW5kIGJl ZyBlbmQpCisgICAgICAgICAgICAgICAgICAgICAgKGFkZC1mYWNlLXRleHQtcHJvcGVydHkKICAg ICAgICAgICAgICAgICAgICAgICAgIGJlZyBlbmQKICAgICAgICAgICAgICAgICAgICAgICAgICdl bGRvYy1oaWdobGlnaHQtZnVuY3Rpb24tYXJndW1lbnQpKSkpCi0gICAgICAgICAgICAgICA7OyAu Li5hbmQvb3IgbWF5YmUgYWRkIGl0cyBkb2Mgb24gYSBsaW5lIGJ5IGl0cyBvd24uCi0gICAgICAg ICAgICAgICAod2hlbiBkb2N1bWVudGF0aW9uCi0gICAgICAgICAgICAgICAgIChnb3RvLWNoYXIg KHBvaW50LW1heCkpCi0gICAgICAgICAgICAgICAgIChpbnNlcnQgIlxuIgotICAgICAgICAgICAg ICAgICAgICAgICAgIChwcm9wZXJ0aXplCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAo c3RyaW5ncCBsYWJlbCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGx5ICMnYnVmZmVyLXN1YnN0cmluZyAobWFwY2Fy ICMnMSsgbGFiZWwpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZhY2UgJ2VsZG9jLWhp Z2hsaWdodC1mdW5jdGlvbi1hcmd1bWVudCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAiOiAi IChlZ2xvdC0tZm9ybWF0LW1hcmt1cCBkb2N1bWVudGF0aW9uKSkpKSkpCi0gICAgICAgICAoYnVm ZmVyLXN0cmluZykpKSkKLSAgIHdoZW4gbW9yZXNpZ3MgY29uY2F0ICJcbiIpKQorICAgICAgICAg ICAgICAgIDs7IC4uLmFuZC9vciBtYXliZSBhZGQgaXRzIGRvYyBvbiBhIGxpbmUgYnkgaXRzIG93 bi4KKyAgICAgICAgICAgICAgICAod2hlbiBkb2N1bWVudGF0aW9uCisgICAgICAgICAgICAgICAg ICAoZ290by1jaGFyIChwb2ludC1tYXgpKQorICAgICAgICAgICAgICAgICAgKGluc2VydCAiXG4i CisgICAgICAgICAgICAgICAgICAgIChwcm9wZXJ0aXplCisgICAgICAgICAgICAgICAgICAgICAg KGlmIChzdHJpbmdwIGxhYmVsKQorICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwKKyAgICAg ICAgICAgICAgICAgICAgICAgIChhcHBseSAjJ2J1ZmZlci1zdWJzdHJpbmcgKG1hcGNhciAjJzEr IGxhYmVsKSkpCisgICAgICAgICAgICAgICAgICAgICAgJ2ZhY2UgJ2VsZG9jLWhpZ2hsaWdodC1m dW5jdGlvbi1hcmd1bWVudCkKKyAgICAgICAgICAgICAgICAgICAgIjogIiAoZWdsb3QtLWZvcm1h dC1tYXJrdXAgZG9jdW1lbnRhdGlvbikpKSkpKQorICAgICAgICAgIChidWZmZXItc3RyaW5nKSkp KQorICAgIHdoZW4gbW9yZXNpZ3MgY29uY2F0ICJcbiIpKQogCiAoZGVmdW4gZWdsb3Qtc2lnbmF0 dXJlLWVsZG9jLWZ1bmN0aW9uIChjYikKICAgIkEgbWVtYmVyIG9mIGBlbGRvYy1kb2N1bWVudGF0 aW9uLWZ1bmN0aW9ucycsIGZvciBzaWduYXR1cmVzLiIKICAgKHdoZW4gKGVnbG90LS1zZXJ2ZXIt Y2FwYWJsZSA6c2lnbmF0dXJlSGVscFByb3ZpZGVyKQogICAgIChsZXQgKChidWYgKGN1cnJlbnQt YnVmZmVyKSkpCiAgICAgICAoanNvbnJwYy1hc3luYy1yZXF1ZXN0Ci0gICAgICAgKGVnbG90LS1j dXJyZW50LXNlcnZlci1vci1sb3NlKQotICAgICAgIDp0ZXh0RG9jdW1lbnQvc2lnbmF0dXJlSGVs cCAoZWdsb3QtLVRleHREb2N1bWVudFBvc2l0aW9uUGFyYW1zKQotICAgICAgIDpzdWNjZXNzLWZu Ci0gICAgICAgKGVnbG90LS1sYW1iZGEgKChTaWduYXR1cmVIZWxwKQotICAgICAgICAgICAgICAg ICAgICAgICBzaWduYXR1cmVzIGFjdGl2ZVNpZ25hdHVyZSBhY3RpdmVQYXJhbWV0ZXIpCi0gICAg ICAgICAoZWdsb3QtLXdoZW4tYnVmZmVyLXdpbmRvdyBidWYKLSAgICAgICAgICAgKGZ1bmNhbGwg Y2IKLSAgICAgICAgICAgICAgICAgICAgKHVubGVzcyAoc2VxLWVtcHR5LXAgc2lnbmF0dXJlcykK LSAgICAgICAgICAgICAgICAgICAgICAoZWdsb3QtLXNpZy1pbmZvIHNpZ25hdHVyZXMKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVNpZ25hdHVyZQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlUGFyYW1ldGVyKSkpKSkKLSAg ICAgICA6ZGVmZXJyZWQgOnRleHREb2N1bWVudC9zaWduYXR1cmVIZWxwKSkKKyAgICAgICAgKGVn bG90LS1jdXJyZW50LXNlcnZlci1vci1sb3NlKQorICAgICAgICA6dGV4dERvY3VtZW50L3NpZ25h dHVyZUhlbHAgKGVnbG90LS1UZXh0RG9jdW1lbnRQb3NpdGlvblBhcmFtcykKKyAgICAgICAgOnN1 Y2Nlc3MtZm4KKyAgICAgICAgKGVnbG90LS1sYW1iZGEgKChTaWduYXR1cmVIZWxwKQorICAgICAg ICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZXMgYWN0aXZlU2lnbmF0dXJlIGFjdGl2ZVBhcmFt ZXRlcikKKyAgICAgICAgICAoZWdsb3QtLXdoZW4tYnVmZmVyLXdpbmRvdyBidWYKKyAgICAgICAg ICAgIChmdW5jYWxsIGNiCisgICAgICAgICAgICAgICh1bmxlc3MgKHNlcS1lbXB0eS1wIHNpZ25h dHVyZXMpCisgICAgICAgICAgICAgICAgKGVnbG90LS1zaWctaW5mbyBzaWduYXR1cmVzCisgICAg ICAgICAgICAgICAgICBhY3RpdmVTaWduYXR1cmUKKyAgICAgICAgICAgICAgICAgIGFjdGl2ZVBh cmFtZXRlcikpKSkpCisgICAgICAgIDpkZWZlcnJlZCA6dGV4dERvY3VtZW50L3NpZ25hdHVyZUhl bHApKQogICAgIHQpKQogCiAoZGVmdW4gZWdsb3QtaG92ZXItZWxkb2MtZnVuY3Rpb24gKGNiKQpA QCAtMjk3NSwxNCArMzEzMSwxNCBAQCBmb3Igd2hpY2ggTFNQIG9uLXR5cGUtZm9ybWF0dGluZyBz aG91bGQgYmUgcmVxdWVzdGVkLiIKICAgKHdoZW4gKGVnbG90LS1zZXJ2ZXItY2FwYWJsZSA6aG92 ZXJQcm92aWRlcikKICAgICAobGV0ICgoYnVmIChjdXJyZW50LWJ1ZmZlcikpKQogICAgICAgKGpz b25ycGMtYXN5bmMtcmVxdWVzdAotICAgICAgIChlZ2xvdC0tY3VycmVudC1zZXJ2ZXItb3ItbG9z ZSkKLSAgICAgICA6dGV4dERvY3VtZW50L2hvdmVyIChlZ2xvdC0tVGV4dERvY3VtZW50UG9zaXRp b25QYXJhbXMpCi0gICAgICAgOnN1Y2Nlc3MtZm4gKGVnbG90LS1sYW1iZGEgKChIb3ZlcikgY29u dGVudHMgcmFuZ2UpCi0gICAgICAgICAgICAgICAgICAgICAoZWdsb3QtLXdoZW4tYnVmZmVyLXdp bmRvdyBidWYKLSAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGluZm8gKHVubGVzcyAoc2Vx LWVtcHR5LXAgY29udGVudHMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGVnbG90LS1ob3Zlci1pbmZvIGNvbnRlbnRzIHJhbmdlKSkpKQotICAgICAgICAgICAgICAgICAg ICAgICAgIChmdW5jYWxsIGNiIGluZm8gOmJ1ZmZlciB0KSkpKQotICAgICAgIDpkZWZlcnJlZCA6 dGV4dERvY3VtZW50L2hvdmVyKSkKKyAgICAgICAgKGVnbG90LS1jdXJyZW50LXNlcnZlci1vci1s b3NlKQorICAgICAgICA6dGV4dERvY3VtZW50L2hvdmVyIChlZ2xvdC0tVGV4dERvY3VtZW50UG9z aXRpb25QYXJhbXMpCisgICAgICAgIDpzdWNjZXNzLWZuIChlZ2xvdC0tbGFtYmRhICgoSG92ZXIp IGNvbnRlbnRzIHJhbmdlKQorICAgICAgICAgICAgICAgICAgICAgIChlZ2xvdC0td2hlbi1idWZm ZXItd2luZG93IGJ1ZgorICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGluZm8gKHVubGVz cyAoc2VxLWVtcHR5LXAgY29udGVudHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChlZ2xvdC0taG92ZXItaW5mbyBjb250ZW50cyByYW5nZSkpKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgKGZ1bmNhbGwgY2IgaW5mbyA6YnVmZmVyIHQpKSkpCisgICAgICAgIDpk ZWZlcnJlZCA6dGV4dERvY3VtZW50L2hvdmVyKSkKICAgICAoZWdsb3QtLWhpZ2hsaWdodC1waWdn eWJhY2sgY2IpCiAgICAgdCkpCiAKQEAgLTI5OTUsODMgKzMxNTEsODMgQEAgZm9yIHdoaWNoIExT UCBvbi10eXBlLWZvcm1hdHRpbmcgc2hvdWxkIGJlIHJlcXVlc3RlZC4iCiAgIChsZXQgKChidWYg KGN1cnJlbnQtYnVmZmVyKSkpCiAgICAgKHdoZW4gKGVnbG90LS1zZXJ2ZXItY2FwYWJsZSA6ZG9j dW1lbnRIaWdobGlnaHRQcm92aWRlcikKICAgICAgIChqc29ucnBjLWFzeW5jLXJlcXVlc3QKLSAg ICAgICAoZWdsb3QtLWN1cnJlbnQtc2VydmVyLW9yLWxvc2UpCi0gICAgICAgOnRleHREb2N1bWVu dC9kb2N1bWVudEhpZ2hsaWdodCAoZWdsb3QtLVRleHREb2N1bWVudFBvc2l0aW9uUGFyYW1zKQot ICAgICAgIDpzdWNjZXNzLWZuCi0gICAgICAgKGxhbWJkYSAoaGlnaGxpZ2h0cykKLSAgICAgICAg IChtYXBjICMnZGVsZXRlLW92ZXJsYXkgZWdsb3QtLWhpZ2hsaWdodHMpCi0gICAgICAgICAoc2V0 cSBlZ2xvdC0taGlnaGxpZ2h0cwotICAgICAgICAgICAgICAgKGVnbG90LS13aGVuLWJ1ZmZlci13 aW5kb3cgYnVmCi0gICAgICAgICAgICAgICAgIChtYXBjYXIKLSAgICAgICAgICAgICAgICAgIChl Z2xvdC0tbGFtYmRhICgoRG9jdW1lbnRIaWdobGlnaHQpIHJhbmdlKQotICAgICAgICAgICAgICAg ICAgICAocGNhc2UtbGV0ICgoYCgsYmVnIC4gLGVuZCkKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChlZ2xvdC0tcmFuZ2UtcmVnaW9uIHJhbmdlKSkpCi0gICAgICAgICAgICAgICAg ICAgICAgKGxldCAoKG92IChtYWtlLW92ZXJsYXkgYmVnIGVuZCkpKQotICAgICAgICAgICAgICAg ICAgICAgICAgKG92ZXJsYXktcHV0IG92ICdmYWNlICdlZ2xvdC1oaWdobGlnaHQtc3ltYm9sLWZh Y2UpCi0gICAgICAgICAgICAgICAgICAgICAgICAob3ZlcmxheS1wdXQgb3YgJ21vZGlmaWNhdGlv bi1ob29rcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAoLChsYW1iZGEg KG8gJnJlc3QgXykgKGRlbGV0ZS1vdmVybGF5IG8pKSkpCi0gICAgICAgICAgICAgICAgICAgICAg ICBvdikpKQotICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0cykpKSkKLSAgICAgICA6ZGVmZXJy ZWQgOnRleHREb2N1bWVudC9kb2N1bWVudEhpZ2hsaWdodCkKKyAgICAgICAgKGVnbG90LS1jdXJy ZW50LXNlcnZlci1vci1sb3NlKQorICAgICAgICA6dGV4dERvY3VtZW50L2RvY3VtZW50SGlnaGxp Z2h0IChlZ2xvdC0tVGV4dERvY3VtZW50UG9zaXRpb25QYXJhbXMpCisgICAgICAgIDpzdWNjZXNz LWZuCisgICAgICAgIChsYW1iZGEgKGhpZ2hsaWdodHMpCisgICAgICAgICAgKG1hcGMgIydkZWxl dGUtb3ZlcmxheSBlZ2xvdC0taGlnaGxpZ2h0cykKKyAgICAgICAgICAoc2V0cSBlZ2xvdC0taGln aGxpZ2h0cworICAgICAgICAgICAgKGVnbG90LS13aGVuLWJ1ZmZlci13aW5kb3cgYnVmCisgICAg ICAgICAgICAgIChtYXBjYXIKKyAgICAgICAgICAgICAgICAoZWdsb3QtLWxhbWJkYSAoKERvY3Vt ZW50SGlnaGxpZ2h0KSByYW5nZSkKKyAgICAgICAgICAgICAgICAgIChwY2FzZS1sZXQgKChgKCxi ZWcgLiAsZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWdsb3QtLXJhbmdl LXJlZ2lvbiByYW5nZSkpKQorICAgICAgICAgICAgICAgICAgICAobGV0ICgob3YgKG1ha2Utb3Zl cmxheSBiZWcgZW5kKSkpCisgICAgICAgICAgICAgICAgICAgICAgKG92ZXJsYXktcHV0IG92ICdm YWNlICdlZ2xvdC1oaWdobGlnaHQtc3ltYm9sLWZhY2UpCisgICAgICAgICAgICAgICAgICAgICAg KG92ZXJsYXktcHV0IG92ICdtb2RpZmljYXRpb24taG9va3MKKyAgICAgICAgICAgICAgICAgICAg ICAgIGAoLChsYW1iZGEgKG8gJnJlc3QgXykgKGRlbGV0ZS1vdmVybGF5IG8pKSkpCisgICAgICAg ICAgICAgICAgICAgICAgb3YpKSkKKyAgICAgICAgICAgICAgICBoaWdobGlnaHRzKSkpKQorICAg ICAgICA6ZGVmZXJyZWQgOnRleHREb2N1bWVudC9kb2N1bWVudEhpZ2hsaWdodCkKICAgICAgIG5p bCkpKQogCiAoZGVmdW4gZWdsb3QtaW1lbnUgKCkKICAgIkVnbG90J3MgYGltZW51LWNyZWF0ZS1p bmRleC1mdW5jdGlvbicuCiBSZXR1cm5zIGEgbGlzdCBhcyBkZXNjcmliZWQgaW4gZG9jc3RyaW5n IG9mIGBpbWVudS0taW5kZXgtYWxpc3QnLiIKICAgKGNsLWxhYmVscwotICAgICAgKCh1bmZ1cmwg KG9iaikKLSAgICAgICAgIChlZ2xvdC0tZGNhc2Ugb2JqCi0gICAgICAgICAgICgoKFN5bWJvbElu Zm9ybWF0aW9uKSkgKGxpc3Qgb2JqKSkKLSAgICAgICAgICAgKCgoRG9jdW1lbnRTeW1ib2wpIG5h bWUgY2hpbGRyZW4pCi0gICAgICAgICAgICAoY29ucyBvYmoKLSAgICAgICAgICAgICAgICAgICht YXBjYXIKLSAgICAgICAgICAgICAgICAgICAobGFtYmRhIChjKQotICAgICAgICAgICAgICAgICAg ICAgKHBsaXN0LXB1dAotICAgICAgICAgICAgICAgICAgICAgIGMgOmNvbnRhaW5lck5hbWUKLSAg ICAgICAgICAgICAgICAgICAgICAobGV0ICgoZXhpc3RpbmcgKHBsaXN0LWdldCBjIDpjb250YWlu ZXJOYW1lKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAoaWYgZXhpc3RpbmcgKGZvcm1hdCAi JXM6OiVzIiBuYW1lIGV4aXN0aW5nKQotICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lKSkp KQotICAgICAgICAgICAgICAgICAgIChtYXBjYW4gIyd1bmZ1cmwgY2hpbGRyZW4pKSkpKSkpCisg ICAgKCh1bmZ1cmwgKG9iaikKKyAgICAgICAoZWdsb3QtLWRjYXNlIG9iagorICAgICAgICAgKCgo U3ltYm9sSW5mb3JtYXRpb24pKSAobGlzdCBvYmopKQorICAgICAgICAgKCgoRG9jdW1lbnRTeW1i b2wpIG5hbWUgY2hpbGRyZW4pCisgICAgICAgICAgIChjb25zIG9iagorICAgICAgICAgICAgICht YXBjYXIKKyAgICAgICAgICAgICAgIChsYW1iZGEgKGMpCisgICAgICAgICAgICAgICAgIChwbGlz dC1wdXQKKyAgICAgICAgICAgICAgICAgICBjIDpjb250YWluZXJOYW1lCisgICAgICAgICAgICAg ICAgICAgKGxldCAoKGV4aXN0aW5nIChwbGlzdC1nZXQgYyA6Y29udGFpbmVyTmFtZSkpKQorICAg ICAgICAgICAgICAgICAgICAgKGlmIGV4aXN0aW5nIChmb3JtYXQgIiVzOjolcyIgbmFtZSBleGlz dGluZykKKyAgICAgICAgICAgICAgICAgICAgICAgbmFtZSkpKSkKKyAgICAgICAgICAgICAgICht YXBjYW4gIyd1bmZ1cmwgY2hpbGRyZW4pKSkpKSkpCiAgICAgKG1hcGNhcgotICAgICAocGNhc2Ut bGFtYmRhIChgKCxraW5kIC4gLG9ianMpKQotICAgICAgIChjb25zCi0gICAgICAgIChhbGlzdC1n ZXQga2luZCBlZ2xvdC0tc3ltYm9sLWtpbmQtbmFtZXMgIlVua25vd24iKQotICAgICAgICAobWFw Y2FuIChwY2FzZS1sYW1iZGEgKGAoLGNvbnRhaW5lciAuICxvYmpzKSkKLSAgICAgICAgICAgICAg ICAgIChsZXQgKChlbGVtcyAobWFwY2FyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsYW1iZGEgKG9iaikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ucyAo cGxpc3QtZ2V0IG9iaiA6bmFtZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoY2FyIChlZ2xvdC0tcmFuZ2UtcmVnaW9uCisgICAgICAocGNhc2UtbGFtYmRhIChgKCxr aW5kIC4gLG9ianMpKQorICAgICAgICAoY29ucworICAgICAgICAgIChhbGlzdC1nZXQga2luZCBl Z2xvdC0tc3ltYm9sLWtpbmQtbmFtZXMgIlVua25vd24iKQorICAgICAgICAgIChtYXBjYW4gKHBj YXNlLWxhbWJkYSAoYCgsY29udGFpbmVyIC4gLG9ianMpKQorICAgICAgICAgICAgICAgICAgICAo bGV0ICgoZWxlbXMgKG1hcGNhcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bGFtYmRhIChvYmopCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnMg KHBsaXN0LWdldCBvYmogOm5hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoY2FyIChlZ2xvdC0tcmFuZ2UtcmVnaW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGVnbG90LS1kY2FzZSBvYmoKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoKFN5bWJvbEluZm9ybWF0aW9uKSBsb2Nh dGlvbikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo cGxpc3QtZ2V0IGxvY2F0aW9uIDpyYW5nZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgbG9jYXRpb24gOnJhbmdlKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoKERvY3VtZW50U3lt Ym9sKSBzZWxlY3Rpb25SYW5nZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxlY3Rpb25SYW5nZSkpKSkpKQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvYmpzKSkpCi0gICAgICAgICAgICAgICAgICAgIChpZiBjb250YWluZXIgKGxp c3QgKGNvbnMgY29udGFpbmVyIGVsZW1zKSkgZWxlbXMpKSkKLSAgICAgICAgICAgICAgICAoc2Vx LWdyb3VwLWJ5Ci0gICAgICAgICAgICAgICAgIChsYW1iZGEgKGUpIChwbGlzdC1nZXQgZSA6Y29u dGFpbmVyTmFtZSkpIG9ianMpKSkpCi0gICAgIChzZXEtZ3JvdXAtYnkKLSAgICAgIChsYW1iZGEg KG9iaikgKHBsaXN0LWdldCBvYmogOmtpbmQpKQotICAgICAgKG1hcGNhbiAjJ3VuZnVybAotICAg ICAgICAgICAgICAoanNvbnJwYy1yZXF1ZXN0IChlZ2xvdC0tY3VycmVudC1zZXJ2ZXItb3ItbG9z ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dGV4dERvY3VtZW50L2RvY3VtZW50 U3ltYm9sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCg6dGV4dERvY3VtZW50Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsKGVnbG90LS1UZXh0RG9jdW1lbnRJZGVu dGlmaWVyKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2FuY2VsLW9uLWlucHV0 IG5vbi1lc3NlbnRpYWwpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZWN0aW9uUmFuZ2UpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb2JqcykpKQorICAgICAgICAgICAgICAgICAgICAgIChpZiBjb250YWlu ZXIgKGxpc3QgKGNvbnMgY29udGFpbmVyIGVsZW1zKSkgZWxlbXMpKSkKKyAgICAgICAgICAgIChz ZXEtZ3JvdXAtYnkKKyAgICAgICAgICAgICAgKGxhbWJkYSAoZSkgKHBsaXN0LWdldCBlIDpjb250 YWluZXJOYW1lKSkgb2JqcykpKSkKKyAgICAgIChzZXEtZ3JvdXAtYnkKKyAgICAgICAgKGxhbWJk YSAob2JqKSAocGxpc3QtZ2V0IG9iaiA6a2luZCkpCisgICAgICAgIChtYXBjYW4gIyd1bmZ1cmwK KyAgICAgICAgICAoanNvbnJwYy1yZXF1ZXN0IChlZ2xvdC0tY3VycmVudC1zZXJ2ZXItb3ItbG9z ZSkKKyAgICAgICAgICAgIDp0ZXh0RG9jdW1lbnQvZG9jdW1lbnRTeW1ib2wKKyAgICAgICAgICAg IGAoOnRleHREb2N1bWVudAorICAgICAgICAgICAgICAgLChlZ2xvdC0tVGV4dERvY3VtZW50SWRl bnRpZmllcikpCisgICAgICAgICAgICA6Y2FuY2VsLW9uLWlucHV0IG5vbi1lc3NlbnRpYWwpKSkp KSkKIAogKGRlZnVuIGVnbG90LS1hcHBseS10ZXh0LWVkaXRzIChlZGl0cyAmb3B0aW9uYWwgdmVy c2lvbikKICAgIkFwcGx5IEVESVRTIGZvciBjdXJyZW50IGJ1ZmZlciBpZiBhdCBWRVJTSU9OLCBv ciBpZiBpdCdzIG5pbC4iCiAgICh1bmxlc3MgKG9yIChub3QgdmVyc2lvbikgKGVxdWFsIHZlcnNp b24gZWdsb3QtLXZlcnNpb25lZC1pZGVudGlmaWVyKSkKICAgICAoanNvbnJwYy1lcnJvciAiRWRp dHMgb24gYCVzJyByZXF1aXJlIHZlcnNpb24gJWQsIHlvdSBoYXZlICVkIgotICAgICAgICAgICAg ICAgICAgIChjdXJyZW50LWJ1ZmZlcikgdmVyc2lvbiBlZ2xvdC0tdmVyc2lvbmVkLWlkZW50aWZp ZXIpKQorICAgICAgKGN1cnJlbnQtYnVmZmVyKSB2ZXJzaW9uIGVnbG90LS12ZXJzaW9uZWQtaWRl bnRpZmllcikpCiAgIChhdG9taWMtY2hhbmdlLWdyb3VwCiAgICAgKGxldCogKChjaGFuZ2UtZ3Jv dXAgKHByZXBhcmUtY2hhbmdlLWdyb3VwKSkKLSAgICAgICAgICAgKGhvd21hbnkgKGxlbmd0aCBl ZGl0cykpCi0gICAgICAgICAgIChyZXBvcnRlciAobWFrZS1wcm9ncmVzcy1yZXBvcnRlcgotICAg ICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIltlZ2xvdF0gYXBwbHlpbmcgJXMgZWRpdHMgdG8g YCVzJy4uLiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvd21hbnkgKGN1cnJlbnQt YnVmZmVyKSkKLSAgICAgICAgICAgICAgICAgICAgICAwIGhvd21hbnkpKQotICAgICAgICAgICAo ZG9uZSAwKSkKKyAgICAgICAgICAgIChob3dtYW55IChsZW5ndGggZWRpdHMpKQorICAgICAgICAg ICAgKHJlcG9ydGVyIChtYWtlLXByb2dyZXNzLXJlcG9ydGVyCisgICAgICAgICAgICAgICAgICAg ICAgICAoZm9ybWF0ICJbZWdsb3RdIGFwcGx5aW5nICVzIGVkaXRzIHRvIGAlcycuLi4iCisgICAg ICAgICAgICAgICAgICAgICAgICAgIGhvd21hbnkgKGN1cnJlbnQtYnVmZmVyKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgIDAgaG93bWFueSkpCisgICAgICAgICAgICAoZG9uZSAwKSkKICAgICAg IChtYXBjIChwY2FzZS1sYW1iZGEgKGAoLG5ld1RleHQgLGJlZyAuICxlbmQpKQogICAgICAgICAg ICAgICAobGV0ICgoc291cmNlIChjdXJyZW50LWJ1ZmZlcikpKQogICAgICAgICAgICAgICAgICh3 aXRoLXRlbXAtYnVmZmVyCkBAIC0zMDkxLDE5ICszMjQ3LDE5IEBAIFJldHVybnMgYSBsaXN0IGFz IGRlc2NyaWJlZCBpbiBkb2NzdHJpbmcgb2YgYGltZW51LS1pbmRleC1hbGlzdCcuIgogICAgICAg ICAgICAgICAgICAgICAgICAgICA7OyBodHRwczovL2RlYmJ1Z3MuZ251Lm9yZy9jZ2kvYnVncmVw b3J0LmNnaT9idWc9MzIyMzcKICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgaHR0cHM6Ly9k ZWJidWdzLmdudS5vcmcvY2dpL2J1Z3JlcG9ydC5jZ2k/YnVnPTMyMjc4CiAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsZXQgKChpbmhpYml0LW1vZGlmaWNhdGlvbi1ob29rcyB0KQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGVuZ3RoICgtIGVuZCBiZWcpKQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoYmVnIChtYXJrZXItcG9zaXRpb24gYmVnKSkKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZCAobWFya2VyLXBvc2l0aW9uIGVuZCkpKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCAoLSBlbmQgYmVnKSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiZWcgKG1hcmtlci1wb3NpdGlvbiBiZWcp KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZCAobWFya2VyLXBvc2l0aW9u IGVuZCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChydW4taG9vay13aXRoLWFyZ3Mg J2JlZm9yZS1jaGFuZ2UtZnVuY3Rpb25zCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBiZWcgZW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YmVnIGVuZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVwbGFjZS1idWZmZXItY29u dGVudHMgdGVtcCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocnVuLWhvb2std2l0aC1h cmdzICdhZnRlci1jaGFuZ2UtZnVuY3Rpb25zCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBiZWcgKCsgYmVnIChsZW5ndGggbmV3VGV4dCkpCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGgpKSkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBiZWcgKCsgYmVnIChsZW5ndGggbmV3VGV4dCkpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGgpKSkpCiAgICAgICAgICAgICAgICAg ICAgICAgKHByb2dyZXNzLXJlcG9ydGVyLXVwZGF0ZSByZXBvcnRlciAoY2wtaW5jZiBkb25lKSkp KSkpKQotICAgICAgICAgICAgKG1hcGNhciAoZWdsb3QtLWxhbWJkYSAoKFRleHRFZGl0KSByYW5n ZSBuZXdUZXh0KQotICAgICAgICAgICAgICAgICAgICAgIChjb25zIG5ld1RleHQgKGVnbG90LS1y YW5nZS1yZWdpb24gcmFuZ2UgJ21hcmtlcnMpKSkKLSAgICAgICAgICAgICAgICAgICAgKHJldmVy c2UgZWRpdHMpKSkKKyAgICAgICAgKG1hcGNhciAoZWdsb3QtLWxhbWJkYSAoKFRleHRFZGl0KSBy YW5nZSBuZXdUZXh0KQorICAgICAgICAgICAgICAgICAgKGNvbnMgbmV3VGV4dCAoZWdsb3QtLXJh bmdlLXJlZ2lvbiByYW5nZSAnbWFya2VycykpKQorICAgICAgICAgIChyZXZlcnNlIGVkaXRzKSkp CiAgICAgICAodW5kby1hbWFsZ2FtYXRlLWNoYW5nZS1ncm91cCBjaGFuZ2UtZ3JvdXApCiAgICAg ICAocHJvZ3Jlc3MtcmVwb3J0ZXItZG9uZSByZXBvcnRlcikpKSkKIApAQCAtMzExMSw0NSArMzI2 Nyw0NSBAQCBSZXR1cm5zIGEgbGlzdCBhcyBkZXNjcmliZWQgaW4gZG9jc3RyaW5nIG9mIGBpbWVu dS0taW5kZXgtYWxpc3QnLiIKICAgIkFwcGx5IHRoZSB3b3Jrc3BhY2UgZWRpdCBXRURJVC4gIElm IENPTkZJUk0sIGFzayB1c2VyIGZpcnN0LiIKICAgKGVnbG90LS1kYmluZCAoKFdvcmtzcGFjZUVk aXQpIGNoYW5nZXMgZG9jdW1lbnRDaGFuZ2VzKSB3ZWRpdAogICAgIChsZXQgKChwcmVwYXJlZAot ICAgICAgICAgICAobWFwY2FyIChlZ2xvdC0tbGFtYmRhICgoVGV4dERvY3VtZW50RWRpdCkgdGV4 dERvY3VtZW50IGVkaXRzKQotICAgICAgICAgICAgICAgICAgICAgKGVnbG90LS1kYmluZCAoKFZl cnNpb25lZFRleHREb2N1bWVudElkZW50aWZpZXIpIHVyaSB2ZXJzaW9uKQotICAgICAgICAgICAg ICAgICAgICAgICAgIHRleHREb2N1bWVudAotICAgICAgICAgICAgICAgICAgICAgICAobGlzdCAo ZWdsb3QtLXVyaS10by1wYXRoIHVyaSkgZWRpdHMgdmVyc2lvbikpKQotICAgICAgICAgICAgICAg ICAgIGRvY3VtZW50Q2hhbmdlcykpKQorICAgICAgICAgICAgKG1hcGNhciAoZWdsb3QtLWxhbWJk YSAoKFRleHREb2N1bWVudEVkaXQpIHRleHREb2N1bWVudCBlZGl0cykKKyAgICAgICAgICAgICAg ICAgICAgICAoZWdsb3QtLWRiaW5kICgoVmVyc2lvbmVkVGV4dERvY3VtZW50SWRlbnRpZmllcikg dXJpIHZlcnNpb24pCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RG9jdW1lbnQKKyAgICAg ICAgICAgICAgICAgICAgICAgIChsaXN0IChlZ2xvdC0tdXJpLXRvLXBhdGggdXJpKSBlZGl0cyB2 ZXJzaW9uKSkpCisgICAgICAgICAgICAgIGRvY3VtZW50Q2hhbmdlcykpKQogICAgICAgKHVubGVz cyAoYW5kIGNoYW5nZXMgZG9jdW1lbnRDaGFuZ2VzKQogICAgICAgICA7OyBXZSBkb24ndCB3YW50 IGRvdWJsZSBlZGl0cywgYW5kIHNvbWUgc2VydmVycyBzZW5kIGJvdGgKICAgICAgICAgOzsgY2hh bmdlcyBhbmQgZG9jdW1lbnRDaGFuZ2VzLiAgVGhpcyB1bmxlc3MgZW5zdXJlcyB0aGF0IHdlCiAg ICAgICAgIDs7IHByZWZlciBkb2N1bWVudENoYW5nZXMgb3ZlciBjaGFuZ2VzLgogICAgICAgICAo Y2wtbG9vcCBmb3IgKHVyaSBlZGl0cykgb24gY2hhbmdlcyBieSAjJ2NkZHIKLSAgICAgICAgICAg ICAgICAgZG8gKHB1c2ggKGxpc3QgKGVnbG90LS11cmktdG8tcGF0aCB1cmkpIGVkaXRzKSBwcmVw YXJlZCkpKQorICAgICAgICAgIGRvIChwdXNoIChsaXN0IChlZ2xvdC0tdXJpLXRvLXBhdGggdXJp KSBlZGl0cykgcHJlcGFyZWQpKSkKICAgICAgIChpZiAob3IgY29uZmlybQotICAgICAgICAgICAg ICAoY2wtbm90ZXZlcnkgIydmaW5kLWJ1ZmZlci12aXNpdGluZwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgKG1hcGNhciAjJ2NhciBwcmVwYXJlZCkpKQotICAgICAgICAgICh1bmxlc3MgKHkt b3Itbi1wCi0gICAgICAgICAgICAgICAgICAgKGZvcm1hdCAiW2VnbG90XSBTZXJ2ZXIgd2FudHMg dG8gZWRpdDpcbiAgJXNcbiBQcm9jZWVkPyAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAo bWFwY29uY2F0ICMnaWRlbnRpdHkgKG1hcGNhciAjJ2NhciBwcmVwYXJlZCkgIlxuICAiKSkpCi0g ICAgICAgICAgICAoanNvbnJwYy1lcnJvciAiVXNlciBjYW5jZWxsZWQgc2VydmVyIGVkaXQiKSkp CisgICAgICAgICAgICAoY2wtbm90ZXZlcnkgIydmaW5kLWJ1ZmZlci12aXNpdGluZworICAgICAg ICAgICAgICAobWFwY2FyICMnY2FyIHByZXBhcmVkKSkpCisgICAgICAgICh1bmxlc3MgKHktb3It bi1wCisgICAgICAgICAgICAgICAgICAoZm9ybWF0ICJbZWdsb3RdIFNlcnZlciB3YW50cyB0byBl ZGl0OlxuICAlc1xuIFByb2NlZWQ/ICIKKyAgICAgICAgICAgICAgICAgICAgKG1hcGNvbmNhdCAj J2lkZW50aXR5IChtYXBjYXIgIydjYXIgcHJlcGFyZWQpICJcbiAgIikpKQorICAgICAgICAgIChq c29ucnBjLWVycm9yICJVc2VyIGNhbmNlbGxlZCBzZXJ2ZXIgZWRpdCIpKSkKICAgICAgIChjbC1s b29wIGZvciBlZGl0IGluIHByZXBhcmVkCi0gICAgICAgICAgICAgICBmb3IgKHBhdGggZWRpdHMg dmVyc2lvbikgPSBlZGl0Ci0gICAgICAgICAgICAgICBkbyAod2l0aC1jdXJyZW50LWJ1ZmZlciAo ZmluZC1maWxlLW5vc2VsZWN0IHBhdGgpCi0gICAgICAgICAgICAgICAgICAgIChlZ2xvdC0tYXBw bHktdGV4dC1lZGl0cyBlZGl0cyB2ZXJzaW9uKSkKLSAgICAgICAgICAgICAgIGZpbmFsbHkgKGVs ZG9jKSAoZWdsb3QtLW1lc3NhZ2UgIkVkaXQgc3VjY2Vzc2Z1bCEiKSkpKSkKKyAgICAgICAgZm9y IChwYXRoIGVkaXRzIHZlcnNpb24pID0gZWRpdAorICAgICAgICBkbyAod2l0aC1jdXJyZW50LWJ1 ZmZlciAoZmluZC1maWxlLW5vc2VsZWN0IHBhdGgpCisgICAgICAgICAgICAgKGVnbG90LS1hcHBs eS10ZXh0LWVkaXRzIGVkaXRzIHZlcnNpb24pKQorICAgICAgICBmaW5hbGx5IChlbGRvYykgKGVn bG90LS1tZXNzYWdlICJFZGl0IHN1Y2Nlc3NmdWwhIikpKSkpCiAKIChkZWZ1biBlZ2xvdC1yZW5h bWUgKG5ld25hbWUpCiAgICJSZW5hbWUgdGhlIGN1cnJlbnQgc3ltYm9sIHRvIE5FV05BTUUuIgog ICAoaW50ZXJhY3RpdmUKLSAgIChsaXN0IChyZWFkLWZyb20tbWluaWJ1ZmZlcgotICAgICAgICAg IChmb3JtYXQgIlJlbmFtZSBgJXMnIHRvOiAiIChvciAodGhpbmctYXQtcG9pbnQgJ3N5bWJvbCB0 KQorICAgIChsaXN0IChyZWFkLWZyb20tbWluaWJ1ZmZlcgorICAgICAgICAgICAgKGZvcm1hdCAi UmVuYW1lIGAlcycgdG86ICIgKG9yICh0aGluZy1hdC1wb2ludCAnc3ltYm9sIHQpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmtub3duIHN5bWJvbCIpKQotICAg ICAgICAgIG5pbCBuaWwgbmlsIG5pbAotICAgICAgICAgIChzeW1ib2wtbmFtZSAoc3ltYm9sLWF0 LXBvaW50KSkpKSkKKyAgICAgICAgICAgIG5pbCBuaWwgbmlsIG5pbAorICAgICAgICAgICAgKHN5 bWJvbC1uYW1lIChzeW1ib2wtYXQtcG9pbnQpKSkpKQogICAodW5sZXNzIChlZ2xvdC0tc2VydmVy LWNhcGFibGUgOnJlbmFtZVByb3ZpZGVyKQogICAgIChlZ2xvdC0tZXJyb3IgIlNlcnZlciBjYW4n dCByZW5hbWUhIikpCiAgIChlZ2xvdC0tYXBwbHktd29ya3NwYWNlLWVkaXQKLSAgIChqc29ucnBj LXJlcXVlc3QgKGVnbG90LS1jdXJyZW50LXNlcnZlci1vci1sb3NlKQotICAgICAgICAgICAgICAg ICAgICA6dGV4dERvY3VtZW50L3JlbmFtZSBgKCxAKGVnbG90LS1UZXh0RG9jdW1lbnRQb3NpdGlv blBhcmFtcykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bmV3 TmFtZSAsbmV3bmFtZSkpCi0gICBjdXJyZW50LXByZWZpeC1hcmcpKQorICAgIChqc29ucnBjLXJl cXVlc3QgKGVnbG90LS1jdXJyZW50LXNlcnZlci1vci1sb3NlKQorICAgICAgOnRleHREb2N1bWVu dC9yZW5hbWUgYCgsQChlZ2xvdC0tVGV4dERvY3VtZW50UG9zaXRpb25QYXJhbXMpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA6bmV3TmFtZSAsbmV3bmFtZSkpCisgICAgY3VycmVudC1w cmVmaXgtYXJnKSkKIAogKGRlZnVuIGVnbG90LS1yZWdpb24tYm91bmRzICgpCiAgICJSZWdpb24g Ym91bmRzIGlmIGFjdGl2ZSwgZWxzZSBib3VuZHMgb2YgdGhpbmdzIGF0IHBvaW50LiIKQEAgLTMx NjUsNzEgKzMzMjEsNzEgQEAgSW50ZXJhY3RpdmVseSwgZGVmYXVsdCBCRUcgYW5kIEVORCB0byBy ZWdpb24ncyBib3VuZHMgZWxzZSBCRUcgaXMKIHBvaW50IGFuZCBFTkQgaXMgbmlsLCB3aGljaCBy ZXN1bHRzIGluIGEgcmVxdWVzdCBmb3IgY29kZSBhY3Rpb25zCiBhdCBwb2ludC4gIFdpdGggcHJl Zml4IGFyZ3VtZW50LCBwcm9tcHQgZm9yIEFDVElPTi1LSU5ELiIKICAgKGludGVyYWN0aXZlCi0g ICBgKCxAKGVnbG90LS1yZWdpb24tYm91bmRzKQotICAgICAsKGFuZCBjdXJyZW50LXByZWZpeC1h cmcKLSAgICAgICAgICAgKGNvbXBsZXRpbmctcmVhZCAiW2VnbG90XSBBY3Rpb24ga2luZDogIgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoInF1aWNrZml4IiAicmVmYWN0b3IuZXh0cmFj dCIgInJlZmFjdG9yLmlubGluZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZh Y3Rvci5yZXdyaXRlIiAic291cmNlLm9yZ2FuaXplSW1wb3J0cyIpKSkKLSAgICAgdCkpCisgICAg YCgsQChlZ2xvdC0tcmVnaW9uLWJvdW5kcykKKyAgICAgICAsKGFuZCBjdXJyZW50LXByZWZpeC1h cmcKKyAgICAgICAgICAoY29tcGxldGluZy1yZWFkICJbZWdsb3RdIEFjdGlvbiBraW5kOiAiCisg ICAgICAgICAgICAnKCJxdWlja2ZpeCIgInJlZmFjdG9yLmV4dHJhY3QiICJyZWZhY3Rvci5pbmxp bmUiCisgICAgICAgICAgICAgICAicmVmYWN0b3IucmV3cml0ZSIgInNvdXJjZS5vcmdhbml6ZUlt cG9ydHMiKSkpCisgICAgICAgdCkpCiAgICh1bmxlc3MgKG9yIChub3QgaW50ZXJhY3RpdmUpCi0g ICAgICAgICAgICAgIChlZ2xvdC0tc2VydmVyLWNhcGFibGUgOmNvZGVBY3Rpb25Qcm92aWRlcikp CisgICAgICAgICAgICAoZWdsb3QtLXNlcnZlci1jYXBhYmxlIDpjb2RlQWN0aW9uUHJvdmlkZXIp KQogICAgIChlZ2xvdC0tZXJyb3IgIlNlcnZlciBjYW4ndCBleGVjdXRlIGNvZGUgYWN0aW9ucyEi KSkKICAgKGxldCogKChzZXJ2ZXIgKGVnbG90LS1jdXJyZW50LXNlcnZlci1vci1sb3NlKSkKLSAg ICAgICAgIChhY3Rpb25zCi0gICAgICAgICAgKGpzb25ycGMtcmVxdWVzdAotICAgICAgICAgICBz ZXJ2ZXIKLSAgICAgICAgICAgOnRleHREb2N1bWVudC9jb2RlQWN0aW9uCi0gICAgICAgICAgIChs aXN0IDp0ZXh0RG9jdW1lbnQgKGVnbG90LS1UZXh0RG9jdW1lbnRJZGVudGlmaWVyKQotICAgICAg ICAgICAgICAgICA6cmFuZ2UgKGxpc3QgOnN0YXJ0IChlZ2xvdC0tcG9zLXRvLWxzcC1wb3NpdGlv biBiZWcpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZW5kIChlZ2xvdC0tcG9zLXRv LWxzcC1wb3NpdGlvbiBlbmQpKQotICAgICAgICAgICAgICAgICA6Y29udGV4dAotICAgICAgICAg ICAgICAgICBgKDpkaWFnbm9zdGljcworICAgICAgICAgIChhY3Rpb25zCisgICAgICAgICAgICAo anNvbnJwYy1yZXF1ZXN0CisgICAgICAgICAgICAgIHNlcnZlcgorICAgICAgICAgICAgICA6dGV4 dERvY3VtZW50L2NvZGVBY3Rpb24KKyAgICAgICAgICAgICAgKGxpc3QgOnRleHREb2N1bWVudCAo ZWdsb3QtLVRleHREb2N1bWVudElkZW50aWZpZXIpCisgICAgICAgICAgICAgICAgOnJhbmdlIChs aXN0IDpzdGFydCAoZWdsb3QtLXBvcy10by1sc3AtcG9zaXRpb24gYmVnKQorICAgICAgICAgICAg ICAgICAgICAgICAgIDplbmQgKGVnbG90LS1wb3MtdG8tbHNwLXBvc2l0aW9uIGVuZCkpCisgICAg ICAgICAgICAgICAgOmNvbnRleHQKKyAgICAgICAgICAgICAgICBgKDpkaWFnbm9zdGljcwogICAg ICAgICAgICAgICAgICAgIFssQChjbC1sb29wIGZvciBkaWFnIGluIChmbHltYWtlLWRpYWdub3N0 aWNzIGJlZyBlbmQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hlbiAoY2RyIChh c3NvYyAnZWdsb3QtbHNwLWRpYWcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChlZ2xvdC0tZGlhZy1kYXRhIGRpYWcpKSkKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb2xsZWN0IGl0KV0KKyAgICAgICAgICAgICAgICAgICAgICAgIHdoZW4g KGNkciAoYXNzb2MgJ2VnbG90LWxzcC1kaWFnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoZWdsb3QtLWRpYWctZGF0YSBkaWFnKSkpCisgICAgICAgICAgICAgICAgICAgICAg ICBjb2xsZWN0IGl0KV0KICAgICAgICAgICAgICAgICAgICAsQCh3aGVuIGFjdGlvbi1raW5kIGAo Om9ubHkgWyxhY3Rpb24ta2luZF0pKSkpCi0gICAgICAgICAgIDpkZWZlcnJlZCB0KSkKLSAgICAg ICAgIDs7IFJlZG8gZmlsdGVyaW5nLCBpbiBjYXNlIHRoZSBgOm9ubHknIGRpZG4ndCBnbyB0aHJv dWdoLgotICAgICAgICAgKGFjdGlvbnMgKGNsLWxvb3AgZm9yIGEgYWNyb3NzIGFjdGlvbnMKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgIHdoZW4gKG9yIChub3QgYWN0aW9uLWtpbmQpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXF1YWwgYWN0aW9uLWtpbmQgKHBsaXN0 LWdldCBhIDpraW5kKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0IGEpKSkK KyAgICAgICAgICAgICAgOmRlZmVycmVkIHQpKQorICAgICAgICAgIDs7IFJlZG8gZmlsdGVyaW5n LCBpbiBjYXNlIHRoZSBgOm9ubHknIGRpZG4ndCBnbyB0aHJvdWdoLgorICAgICAgICAgIChhY3Rp b25zIChjbC1sb29wIGZvciBhIGFjcm9zcyBhY3Rpb25zCisgICAgICAgICAgICAgICAgICAgICB3 aGVuIChvciAobm90IGFjdGlvbi1raW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChl cXVhbCBhY3Rpb24ta2luZCAocGxpc3QtZ2V0IGEgOmtpbmQpKSkKKyAgICAgICAgICAgICAgICAg ICAgIGNvbGxlY3QgYSkpKQogICAgIChpZiBpbnRlcmFjdGl2ZQotICAgICAgICAoZWdsb3QtLXJl YWQtZXhlY3V0ZS1jb2RlLWFjdGlvbiBhY3Rpb25zIHNlcnZlciBhY3Rpb24ta2luZCkKKyAgICAg IChlZ2xvdC0tcmVhZC1leGVjdXRlLWNvZGUtYWN0aW9uIGFjdGlvbnMgc2VydmVyIGFjdGlvbi1r aW5kKQogICAgICAgYWN0aW9ucykpKQogCiAoZGVmdW4gZWdsb3QtLXJlYWQtZXhlY3V0ZS1jb2Rl LWFjdGlvbiAoYWN0aW9ucyBzZXJ2ZXIgJm9wdGlvbmFsIGFjdGlvbi1raW5kKQogICAiSGVscGVy IGZvciBpbnRlcmFjdGl2ZSBjYWxscyB0byBgZWdsb3QtY29kZS1hY3Rpb25zJyIKICAgKGxldCog KChtZW51LWl0ZW1zCi0gICAgICAgICAgKG9yIChjbC1sb29wIGZvciBhIGluIGFjdGlvbnMKLSAg ICAgICAgICAgICAgICAgICAgICAgY29sbGVjdCAoY29ucyAocGxpc3QtZ2V0IGEgOnRpdGxlKSBh KSkKLSAgICAgICAgICAgICAgKGFwcGx5ICMnZWdsb3QtLWVycm9yCi0gICAgICAgICAgICAgICAg ICAgICAoaWYgYWN0aW9uLWtpbmQgYCgiTm8gXCIlc1wiIGNvZGUgYWN0aW9ucyBoZXJlIiAsYWN0 aW9uLWtpbmQpCi0gICAgICAgICAgICAgICAgICAgICAgIGAoIk5vIGNvZGUgYWN0aW9ucyBoZXJl IikpKSkpCi0gICAgICAgICAocHJlZmVycmVkLWFjdGlvbiAoY2wtZmluZC1pZgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKG1lbnUtaXRlbSkKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChwbGlzdC1nZXQgKGNkciBtZW51LWl0ZW0pIDppc1ByZWZlcnJlZCkpCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudS1pdGVtcykpCi0gICAgICAgICAoZGVmYXVs dC1hY3Rpb24gKGNhciAob3IgcHJlZmVycmVkLWFjdGlvbiAoY2FyIG1lbnUtaXRlbXMpKSkpCi0g ICAgICAgICAoY2hvc2VuIChpZiAoYW5kIGFjdGlvbi1raW5kIChudWxsIChjYWRyIG1lbnUtaXRl bXMpKSkKLSAgICAgICAgICAgICAgICAgICAgIChjZHIgKGNhciBtZW51LWl0ZW1zKSkKLSAgICAg ICAgICAgICAgICAgICAoaWYgKGxpc3RwIGxhc3Qtbm9ubWVudS1ldmVudCkKLSAgICAgICAgICAg ICAgICAgICAgICAgKHgtcG9wdXAtbWVudSBsYXN0LW5vbm1lbnUtZXZlbnQgYCgiRWdsb3QgY29k ZSBhY3Rpb25zOiIKKyAgICAgICAgICAgKG9yIChjbC1sb29wIGZvciBhIGluIGFjdGlvbnMKKyAg ICAgICAgICAgICAgICAgY29sbGVjdCAoY29ucyAocGxpc3QtZ2V0IGEgOnRpdGxlKSBhKSkKKyAg ICAgICAgICAgICAoYXBwbHkgIydlZ2xvdC0tZXJyb3IKKyAgICAgICAgICAgICAgIChpZiBhY3Rp b24ta2luZCBgKCJObyBcIiVzXCIgY29kZSBhY3Rpb25zIGhlcmUiICxhY3Rpb24ta2luZCkKKyAg ICAgICAgICAgICAgICAgYCgiTm8gY29kZSBhY3Rpb25zIGhlcmUiKSkpKSkKKyAgICAgICAgICAo cHJlZmVycmVkLWFjdGlvbiAoY2wtZmluZC1pZgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxhbWJkYSAobWVudS1pdGVtKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo cGxpc3QtZ2V0IChjZHIgbWVudS1pdGVtKSA6aXNQcmVmZXJyZWQpKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbWVudS1pdGVtcykpCisgICAgICAgICAgKGRlZmF1bHQtYWN0aW9uIChj YXIgKG9yIHByZWZlcnJlZC1hY3Rpb24gKGNhciBtZW51LWl0ZW1zKSkpKQorICAgICAgICAgIChj aG9zZW4gKGlmIChhbmQgYWN0aW9uLWtpbmQgKG51bGwgKGNhZHIgbWVudS1pdGVtcykpKQorICAg ICAgICAgICAgICAgICAgICAoY2RyIChjYXIgbWVudS1pdGVtcykpCisgICAgICAgICAgICAgICAg ICAgIChpZiAobGlzdHAgbGFzdC1ub25tZW51LWV2ZW50KQorICAgICAgICAgICAgICAgICAgICAg ICh4LXBvcHVwLW1lbnUgbGFzdC1ub25tZW51LWV2ZW50IGAoIkVnbG90IGNvZGUgYWN0aW9uczoi CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKCJkdW1teSIgLEBtZW51LWl0ZW1zKSkpCi0gICAgICAgICAgICAgICAgICAgICAoY2RyIChh c3NvYyAoY29tcGxldGluZy1yZWFkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGZvcm1hdCAiW2VnbG90XSBQaWNrIGFuIGFjdGlvbiAoZGVmYXVsdCAlcyk6ICIKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQtYWN0aW9uKQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnUtaXRlbXMgbmlsIHQgbmlsIG5pbCBkZWZh dWx0LWFjdGlvbikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnUtaXRlbXMp KSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAoY2RyIChhc3NvYyAoY29tcGxldGluZy1yZWFk CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICJbZWdsb3RdIFBp Y2sgYW4gYWN0aW9uIChkZWZhdWx0ICVzKTogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkZWZhdWx0LWFjdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1lbnUtaXRlbXMgbmlsIHQgbmlsIG5pbCBkZWZhdWx0LWFjdGlvbikKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbWVudS1pdGVtcykpKSkpKQogICAgIChlZ2xvdC0tZGNhc2Ug Y2hvc2VuCiAgICAgICAoKChDb21tYW5kKSBjb21tYW5kIGFyZ3VtZW50cykKLSAgICAgICAoZWds b3QtZXhlY3V0ZS1jb21tYW5kIHNlcnZlciAoaW50ZXJuIGNvbW1hbmQpIGFyZ3VtZW50cykpCisg ICAgICAgIChlZ2xvdC1leGVjdXRlLWNvbW1hbmQgc2VydmVyIChpbnRlcm4gY29tbWFuZCkgYXJn dW1lbnRzKSkKICAgICAgICgoKENvZGVBY3Rpb24pIGVkaXQgY29tbWFuZCkKLSAgICAgICAod2hl biBlZGl0IChlZ2xvdC0tYXBwbHktd29ya3NwYWNlLWVkaXQgZWRpdCkpCi0gICAgICAgKHdoZW4g Y29tbWFuZAotICAgICAgICAgKGVnbG90LS1kYmluZCAoKENvbW1hbmQpIGNvbW1hbmQgYXJndW1l bnRzKSBjb21tYW5kCi0gICAgICAgICAgIChlZ2xvdC1leGVjdXRlLWNvbW1hbmQgc2VydmVyIChp bnRlcm4gY29tbWFuZCkgYXJndW1lbnRzKSkpKSkpKQorICAgICAgICAod2hlbiBlZGl0IChlZ2xv dC0tYXBwbHktd29ya3NwYWNlLWVkaXQgZWRpdCkpCisgICAgICAgICh3aGVuIGNvbW1hbmQKKyAg ICAgICAgICAoZWdsb3QtLWRiaW5kICgoQ29tbWFuZCkgY29tbWFuZCBhcmd1bWVudHMpIGNvbW1h bmQKKyAgICAgICAgICAgIChlZ2xvdC1leGVjdXRlLWNvbW1hbmQgc2VydmVyIChpbnRlcm4gY29t bWFuZCkgYXJndW1lbnRzKSkpKSkpKQogCiAoZGVmbWFjcm8gZWdsb3QtLWNvZGUtYWN0aW9uIChu YW1lIGtpbmQpCiAgICJEZWZpbmUgTkFNRSB0byBleGVjdXRlIEtJTkQgY29kZSBhY3Rpb24uIgpA QCAtMzI1Miw0MCArMzQwOCw0MCBAQCBhdCBwb2ludC4gIFdpdGggcHJlZml4IGFyZ3VtZW50LCBw cm9tcHQgZm9yIEFDVElPTi1LSU5ELiIKICAgIkhhbmRsZSBkeW5hbWljIHJlZ2lzdHJhdGlvbiBv ZiB3b3Jrc3BhY2UvZGlkQ2hhbmdlV2F0Y2hlZEZpbGVzLiIKICAgKGVnbG90LXVucmVnaXN0ZXIt Y2FwYWJpbGl0eSBzZXJ2ZXIgbWV0aG9kIGlkKQogICAobGV0KiAoc3VjY2VzcwotICAgICAgICAg KGdsb2JzIChtYXBjYXIKLSAgICAgICAgICAgICAgICAgKGVnbG90LS1sYW1iZGEgKChGaWxlU3lz dGVtV2F0Y2hlcikgZ2xvYlBhdHRlcm4pCi0gICAgICAgICAgICAgICAgICAgKGVnbG90LS1nbG9i LWNvbXBpbGUgZ2xvYlBhdHRlcm4gdCB0KSkKLSAgICAgICAgICAgICAgICAgd2F0Y2hlcnMpKQot ICAgICAgICAgKGRpcnMtdG8td2F0Y2gKLSAgICAgICAgICAoZGVsZXRlLWR1cHMgKG1hcGNhciAj J2ZpbGUtbmFtZS1kaXJlY3RvcnkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJv amVjdC1maWxlcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWdsb3QtLXByb2pl Y3Qgc2VydmVyKSkpKSkpCisgICAgICAgICAgKGdsb2JzIChtYXBjYXIKKyAgICAgICAgICAgICAg ICAgICAoZWdsb3QtLWxhbWJkYSAoKEZpbGVTeXN0ZW1XYXRjaGVyKSBnbG9iUGF0dGVybikKKyAg ICAgICAgICAgICAgICAgICAgIChlZ2xvdC0tZ2xvYi1jb21waWxlIGdsb2JQYXR0ZXJuIHQgdCkp CisgICAgICAgICAgICAgICAgICAgd2F0Y2hlcnMpKQorICAgICAgICAgIChkaXJzLXRvLXdhdGNo CisgICAgICAgICAgICAoZGVsZXRlLWR1cHMgKG1hcGNhciAjJ2ZpbGUtbmFtZS1kaXJlY3RvcnkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9qZWN0LWZpbGVzCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChlZ2xvdC0tcHJvamVjdCBzZXJ2ZXIpKSkpKSkKICAgICAoY2wtbGFi ZWxzCi0gICAgICAgICgoaGFuZGxlLWV2ZW50Ci0gICAgICAgICAgKGV2ZW50KQotICAgICAgICAg IChwY2FzZS1sZXQgKChgKCxkZXNjICxhY3Rpb24gLGZpbGUgLGZpbGUxKSBldmVudCkpCi0gICAg ICAgICAgICAoY29uZAorICAgICAgKChoYW5kbGUtZXZlbnQKKyAgICAgICAgIChldmVudCkKKyAg ICAgICAgIChwY2FzZS1sZXQgKChgKCxkZXNjICxhY3Rpb24gLGZpbGUgLGZpbGUxKSBldmVudCkp CisgICAgICAgICAgIChjb25kCiAgICAgICAgICAgICAgKChhbmQgKG1lbXEgYWN0aW9uICcoY3Jl YXRlZCBjaGFuZ2VkIGRlbGV0ZWQpKQotICAgICAgICAgICAgICAgICAgIChjbC1maW5kIGZpbGUg Z2xvYnMgOnRlc3QgKGxhbWJkYSAoZiBnKSAoZnVuY2FsbCBnIGYpKSkpCi0gICAgICAgICAgICAg IChqc29ucnBjLW5vdGlmeQotICAgICAgICAgICAgICAgc2VydmVyIDp3b3Jrc3BhY2UvZGlkQ2hh bmdlV2F0Y2hlZEZpbGVzCi0gICAgICAgICAgICAgICBgKDpjaGFuZ2VzICwodmVjdG9yIGAoOnVy aSAsKGVnbG90LS1wYXRoLXRvLXVyaSBmaWxlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOnR5cGUgLChjbC1jYXNlIGFjdGlvbgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNyZWF0ZWQgMSkKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2VkIDIpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVsZXRlZCAz KSkpKSkpKQorICAgICAgICAgICAgICAgIChjbC1maW5kIGZpbGUgZ2xvYnMgOnRlc3QgKGxhbWJk YSAoZiBnKSAoZnVuY2FsbCBnIGYpKSkpCisgICAgICAgICAgICAgICAoanNvbnJwYy1ub3RpZnkK KyAgICAgICAgICAgICAgICAgc2VydmVyIDp3b3Jrc3BhY2UvZGlkQ2hhbmdlV2F0Y2hlZEZpbGVz CisgICAgICAgICAgICAgICAgIGAoOmNoYW5nZXMgLCh2ZWN0b3IgYCg6dXJpICwoZWdsb3QtLXBh dGgtdG8tdXJpIGZpbGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg OnR5cGUgLChjbC1jYXNlIGFjdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChjcmVhdGVkIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZWQgMikKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVsZXRlZCAzKSkpKSkpKQogICAgICAgICAgICAg ICgoZXEgYWN0aW9uICdyZW5hbWVkKQotICAgICAgICAgICAgICAoaGFuZGxlLWV2ZW50IGAoLGRl c2MgJ2RlbGV0ZWQgLGZpbGUpKQotICAgICAgICAgICAgICAoaGFuZGxlLWV2ZW50IGAoLGRlc2Mg J2NyZWF0ZWQgLGZpbGUxKSkpKSkpKQorICAgICAgICAgICAgICAgKGhhbmRsZS1ldmVudCBgKCxk ZXNjICdkZWxldGVkICxmaWxlKSkKKyAgICAgICAgICAgICAgIChoYW5kbGUtZXZlbnQgYCgsZGVz YyAnY3JlYXRlZCAsZmlsZTEpKSkpKSkpCiAgICAgICAodW53aW5kLXByb3RlY3QKLSAgICAgICAg ICAocHJvZ24KLSAgICAgICAgICAgIChkb2xpc3QgKGRpciBkaXJzLXRvLXdhdGNoKQotICAgICAg ICAgICAgICAocHVzaCAoZmlsZS1ub3RpZnktYWRkLXdhdGNoIGRpciAnKGNoYW5nZSkgIydoYW5k bGUtZXZlbnQpCi0gICAgICAgICAgICAgICAgICAgIChnZXRoYXNoIGlkIChlZ2xvdC0tZmlsZS13 YXRjaGVzIHNlcnZlcikpKSkKLSAgICAgICAgICAgIChzZXRxCi0gICAgICAgICAgICAgc3VjY2Vz cwotICAgICAgICAgICAgIGAoOm1lc3NhZ2UgLChmb3JtYXQgIk9LLCB3YXRjaGluZyAlcyBkaXJl Y3RvcmllcyBpbiAlcyB3YXRjaGVycyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsZW5ndGggZGlycy10by13YXRjaCkgKGxlbmd0aCB3YXRjaGVycykpKSkpCisgICAgICAgIChw cm9nbgorICAgICAgICAgIChkb2xpc3QgKGRpciBkaXJzLXRvLXdhdGNoKQorICAgICAgICAgICAg KHB1c2ggKGZpbGUtbm90aWZ5LWFkZC13YXRjaCBkaXIgJyhjaGFuZ2UpICMnaGFuZGxlLWV2ZW50 KQorICAgICAgICAgICAgICAoZ2V0aGFzaCBpZCAoZWdsb3QtLWZpbGUtd2F0Y2hlcyBzZXJ2ZXIp KSkpCisgICAgICAgICAgKHNldHEKKyAgICAgICAgICAgIHN1Y2Nlc3MKKyAgICAgICAgICAgIGAo Om1lc3NhZ2UgLChmb3JtYXQgIk9LLCB3YXRjaGluZyAlcyBkaXJlY3RvcmllcyBpbiAlcyB3YXRj aGVycyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCBkaXJzLXRvLXdhdGNoKSAo bGVuZ3RoIHdhdGNoZXJzKSkpKSkKICAgICAgICAgKHVubGVzcyBzdWNjZXNzCiAgICAgICAgICAg KGVnbG90LXVucmVnaXN0ZXItY2FwYWJpbGl0eSBzZXJ2ZXIgbWV0aG9kIGlkKSkpKSkpCiAKQEAg LTMzMDQsMzQgKzM0NjAsMzQgQEAgYXQgcG9pbnQuICBXaXRoIHByZWZpeCBhcmd1bWVudCwgcHJv bXB0IGZvciBBQ1RJT04tS0lORC4iCiAgICh3aXRoLXRlbXAtYnVmZmVyCiAgICAgKHNhdmUtZXhj dXJzaW9uIChpbnNlcnQgZ2xvYikpCiAgICAgKGNsLWxvb3AKLSAgICAgd2l0aCBncmFtbWFyID0g JygoOioqICAgICAgIlxcKlxcKi8/IiAgICAgICAgICAgICAgZWdsb3QtLWdsb2ItZW1pdC0qKikK LSAgICAgICAgICAgICAgICAgICAgICAoOiogICAgICAgIlxcKiIgICAgICAgICAgICAgICAgICAg ZWdsb3QtLWdsb2ItZW1pdC0qKQotICAgICAgICAgICAgICAgICAgICAgICg6PyAgICAgICAiXFw/ IiAgICAgICAgICAgICAgICAgICBlZ2xvdC0tZ2xvYi1lbWl0LT8pCi0gICAgICAgICAgICAgICAg ICAgICAgKDp7fSAgICAgICJ7W15dWyp7fV0rfSIgICAgICAgICAgIGVnbG90LS1nbG9iLWVtaXQt e30pCi0gICAgICAgICAgICAgICAgICAgICAgKDpyYW5nZSAgICJcXFtcXF4/W15dWy8sKnt9XStc XF0iIGVnbG90LS1nbG9iLWVtaXQtcmFuZ2UpCi0gICAgICAgICAgICAgICAgICAgICAgKDpsaXRl cmFsICJbXl1bLCo/e31dKyIgICAgICAgICAgIGVnbG90LS1nbG9iLWVtaXQtc2VsZikpCi0gICAg IHVudGlsIChlb2JwKQotICAgICBjb2xsZWN0IChjbC1sb29wCi0gICAgICAgICAgICAgIGZvciAo X3Rva2VuIHJlZ2V4cCBlbWl0dGVyKSBpbiBncmFtbWFyCi0gICAgICAgICAgICAgIHRoZXJlaXMg KGFuZCAocmUtc2VhcmNoLWZvcndhcmQgKGNvbmNhdCAiXFw9IiByZWdleHApIG5pbCB0KQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgKGNsLWdlbnN5bSAic3RhdGUtIikgZW1pdHRl ciAobWF0Y2gtc3RyaW5nIDApKSkKLSAgICAgICAgICAgICAgZmluYWxseSAoZXJyb3IgIkdsb2Ig JyVzJyBpbnZhbGlkIGF0ICVzIiAoYnVmZmVyLXN0cmluZykgKHBvaW50KSkpKSkpCisgICAgICB3 aXRoIGdyYW1tYXIgPSAnKCg6KiogICAgICAiXFwqXFwqLz8iICAgICAgICAgICAgICBlZ2xvdC0t Z2xvYi1lbWl0LSoqKQorICAgICAgICAgICAgICAgICAgICAgICAgKDoqICAgICAgICJcXCoiICAg ICAgICAgICAgICAgICAgIGVnbG90LS1nbG9iLWVtaXQtKikKKyAgICAgICAgICAgICAgICAgICAg ICAgICg6PyAgICAgICAiXFw/IiAgICAgICAgICAgICAgICAgICBlZ2xvdC0tZ2xvYi1lbWl0LT8p CisgICAgICAgICAgICAgICAgICAgICAgICAoOnt9ICAgICAgIntbXl1bKnt9XSt9IiAgICAgICAg ICAgZWdsb3QtLWdsb2ItZW1pdC17fSkKKyAgICAgICAgICAgICAgICAgICAgICAgICg6cmFuZ2Ug ICAiXFxbXFxeP1teXVsvLCp7fV0rXFxdIiBlZ2xvdC0tZ2xvYi1lbWl0LXJhbmdlKQorICAgICAg ICAgICAgICAgICAgICAgICAgKDpsaXRlcmFsICJbXl1bLCo/e31dKyIgICAgICAgICAgIGVnbG90 LS1nbG9iLWVtaXQtc2VsZikpCisgICAgICB1bnRpbCAoZW9icCkKKyAgICAgIGNvbGxlY3QgKGNs LWxvb3AKKyAgICAgICAgICAgICAgICBmb3IgKF90b2tlbiByZWdleHAgZW1pdHRlcikgaW4gZ3Jh bW1hcgorICAgICAgICAgICAgICAgIHRoZXJlaXMgKGFuZCAocmUtc2VhcmNoLWZvcndhcmQgKGNv bmNhdCAiXFw9IiByZWdleHApIG5pbCB0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAobGlz dCAoY2wtZ2Vuc3ltICJzdGF0ZS0iKSBlbWl0dGVyIChtYXRjaC1zdHJpbmcgMCkpKQorICAgICAg ICAgICAgICAgIGZpbmFsbHkgKGVycm9yICJHbG9iICclcycgaW52YWxpZCBhdCAlcyIgKGJ1ZmZl ci1zdHJpbmcpIChwb2ludCkpKSkpKQogCiAoZGVmdW4gZWdsb3QtLWdsb2ItY29tcGlsZSAoZ2xv YiAmb3B0aW9uYWwgYnl0ZS1jb21waWxlIG5vZXJyb3IpCiAgICJDb252ZXJ0IEdMT0IgaW50byBF bGlzcCBmdW5jdGlvbi4gIE1heWJlIEJZVEUtQ09NUElMRSBpdC4KIElmIE5PRVJST1IsIHJldHVy biBwcmVkaWNhdGUsIGVsc2UgZXJyb3JpbmcgZnVuY3Rpb24uIgogICAobGV0KiAoKHN0YXRlcyAo ZWdsb3QtLWdsb2ItcGFyc2UgZ2xvYikpCi0gICAgICAgICAoYm9keSBgKHdpdGgtY3VycmVudC1i dWZmZXIgKGdldC1idWZmZXItY3JlYXRlICIgKmVnbG90LWdsb2ItbWF0Y2hlcioiKQotICAgICAg ICAgICAgICAgICAgKGVyYXNlLWJ1ZmZlcikKLSAgICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vy c2lvbiAoaW5zZXJ0IHN0cmluZykpCi0gICAgICAgICAgICAgICAgICAoY2wtbGFiZWxzICwoY2wt bG9vcCBmb3IgKHRoaXMgdGhhdCkgb24gc3RhdGVzCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmb3IgKHNlbGYgZW1pdCB0ZXh0KSA9IHRoaXMKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBuZXh0ID0gKG9yIChjYXIgdGhhdCkgJ2VvYnAp Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0IChmdW5jYWxs IGVtaXQgdGV4dCBzZWxmIG5leHQpKQotICAgICAgICAgICAgICAgICAgICAob3IgKCwoY2FhciBz dGF0ZXMpKQotICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yICJHbG9iIGRvbmUgYnV0IG1v cmUgdW5tYXRjaGVkIHRleHQ6ICclcyciCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGJ1ZmZlci1zdWJzdHJpbmcgKHBvaW50KSAocG9pbnQtbWF4KSkpKSkpKQotICAgICAgICAgKGZv cm0gYChsYW1iZGEgKHN0cmluZykgLChpZiBub2Vycm9yIGAoaWdub3JlLWVycm9ycyAsYm9keSkg Ym9keSkpKSkKKyAgICAgICAgICAoYm9keSBgKHdpdGgtY3VycmVudC1idWZmZXIgKGdldC1idWZm ZXItY3JlYXRlICIgKmVnbG90LWdsb2ItbWF0Y2hlcioiKQorICAgICAgICAgICAgICAgICAgIChl cmFzZS1idWZmZXIpCisgICAgICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uIChpbnNlcnQg c3RyaW5nKSkKKyAgICAgICAgICAgICAgICAgICAoY2wtbGFiZWxzICwoY2wtbG9vcCBmb3IgKHRo aXMgdGhhdCkgb24gc3RhdGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig KHNlbGYgZW1pdCB0ZXh0KSA9IHRoaXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZvciBuZXh0ID0gKG9yIChjYXIgdGhhdCkgJ2VvYnApCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb2xsZWN0IChmdW5jYWxsIGVtaXQgdGV4dCBzZWxmIG5leHQpKQorICAgICAg ICAgICAgICAgICAgICAgKG9yICgsKGNhYXIgc3RhdGVzKSkKKyAgICAgICAgICAgICAgICAgICAg ICAgKGVycm9yICJHbG9iIGRvbmUgYnV0IG1vcmUgdW5tYXRjaGVkIHRleHQ6ICclcyciCisgICAg ICAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmcgKHBvaW50KSAocG9pbnQtbWF4 KSkpKSkpKQorICAgICAgICAgIChmb3JtIGAobGFtYmRhIChzdHJpbmcpICwoaWYgbm9lcnJvciBg KGlnbm9yZS1lcnJvcnMgLGJvZHkpIGJvZHkpKSkpCiAgICAgKGlmIGJ5dGUtY29tcGlsZSAoYnl0 ZS1jb21waWxlIGZvcm0pIGZvcm0pKSkKIAogKGRlZnVuIGVnbG90LS1nbG9iLWVtaXQtc2VsZiAo dGV4dCBzZWxmIG5leHQpCkBAIC0zMzM5LDExICszNDk1LDExIEBAIElmIE5PRVJST1IsIHJldHVy biBwcmVkaWNhdGUsIGVsc2UgZXJyb3JpbmcgZnVuY3Rpb24uIgogCiAoZGVmdW4gZWdsb3QtLWds b2ItZW1pdC0qKiAoXyBzZWxmIG5leHQpCiAgIGAoLHNlbGYgKCkgKG9yIChpZ25vcmUtZXJyb3Jz IChzYXZlLWV4Y3Vyc2lvbiAoLG5leHQpKSkKLSAgICAgICAgICAgICAgICAgKGFuZCAocmUtc2Vh cmNoLWZvcndhcmQgIlxcPS8/W14vXSsvPyIpICgsc2VsZikpKSkpCisgICAgICAgICAgICAgICAo YW5kIChyZS1zZWFyY2gtZm9yd2FyZCAiXFw9Lz9bXi9dKy8/IikgKCxzZWxmKSkpKSkKIAogKGRl ZnVuIGVnbG90LS1nbG9iLWVtaXQtKiAoXyBzZWxmIG5leHQpCiAgIGAoLHNlbGYgKCkgKHJlLXNl YXJjaC1mb3J3YXJkICJcXD1bXi9dIikKLSAgICAgICAgICAob3IgKGlnbm9yZS1lcnJvcnMgKHNh dmUtZXhjdXJzaW9uICgsbmV4dCkpKSAoLHNlbGYpKSkpCisgICAgIChvciAoaWdub3JlLWVycm9y cyAoc2F2ZS1leGN1cnNpb24gKCxuZXh0KSkpICgsc2VsZikpKSkKIAogKGRlZnVuIGVnbG90LS1n bG9iLWVtaXQtPyAoXyBzZWxmIG5leHQpCiAgIGAoLHNlbGYgKCkgKHJlLXNlYXJjaC1mb3J3YXJk ICJcXD1bXi9dIikgKCxuZXh0KSkpCkBAIC0zMzUxLDkgKzM1MDcsOSBAQCBJZiBOT0VSUk9SLCBy ZXR1cm4gcHJlZGljYXRlLCBlbHNlIGVycm9yaW5nIGZ1bmN0aW9uLiIKIChkZWZ1biBlZ2xvdC0t Z2xvYi1lbWl0LXt9IChhcmcgc2VsZiBuZXh0KQogICAobGV0ICgoYWx0ZXJuYXRpdmVzIChzcGxp dC1zdHJpbmcgKHN1YnN0cmluZyBhcmcgMSAoMS0gKGxlbmd0aCBhcmcpKSkgIiwiKSkpCiAgICAg YCgsc2VsZiAoKQotICAgICAgICAgICAgKG9yIChyZS1zZWFyY2gtZm9yd2FyZCAsKGNvbmNhdCAi XFw9IiAocmVnZXhwLW9wdCBhbHRlcm5hdGl2ZXMpKSBuaWwgdCkKLSAgICAgICAgICAgICAgICAo ZXJyb3IgIkZhaWxlZCBtYXRjaGluZyBhbnkgb2YgJXMiICcsYWx0ZXJuYXRpdmVzKSkKLSAgICAg ICAgICAgICgsbmV4dCkpKSkKKyAgICAgICAob3IgKHJlLXNlYXJjaC1mb3J3YXJkICwoY29uY2F0 ICJcXD0iIChyZWdleHAtb3B0IGFsdGVybmF0aXZlcykpIG5pbCB0KQorICAgICAgICAgKGVycm9y ICJGYWlsZWQgbWF0Y2hpbmcgYW55IG9mICVzIiAnLGFsdGVybmF0aXZlcykpCisgICAgICAgKCxu ZXh0KSkpKQogCiAoZGVmdW4gZWdsb3QtLWdsb2ItZW1pdC1yYW5nZSAoYXJnIHNlbGYgbmV4dCkK ICAgKHdoZW4gKGVxID8hIChhcmVmIGFyZyAxKSkgKGFzZXQgYXJnIDEgP14pKQpAQCAtMzM2Niwz MiArMzUyMiwxMTUgQEAgSWYgTk9FUlJPUiwgcmV0dXJuIHByZWRpY2F0ZSwgZWxzZSBlcnJvcmlu ZyBmdW5jdGlvbi4iCiAgICIiICJFZ2xvdCBtb2RlIGZvciBsaXN0aW5nIHNlcnZlciBjb25uZWN0 aW9ucwogXFx7ZWdsb3QtbGlzdC1jb25uZWN0aW9ucy1tb2RlLW1hcH0iCiAgIChzZXRxLWxvY2Fs IHRhYnVsYXRlZC1saXN0LWZvcm1hdAotICAgICAgICAgICAgICBgWygiTGFuZ3VhZ2Ugc2VydmVy IiAxNikgKCJQcm9qZWN0IG5hbWUiIDE2KSAoIk1vZGVzIGhhbmRsZWQiIDE2KV0pCisgICAgYFso Ikxhbmd1YWdlIHNlcnZlciIgMTYpICgiUHJvamVjdCBuYW1lIiAxNikgKCJNb2RlcyBoYW5kbGVk IiAxNildKQogICAodGFidWxhdGVkLWxpc3QtaW5pdC1oZWFkZXIpKQogCiAoZGVmdW4gZWdsb3Qt bGlzdC1jb25uZWN0aW9ucyAoKQogICAiTGlzdCBjdXJyZW50bHkgYWN0aXZlIEVnbG90IGNvbm5l Y3Rpb25zLiIKICAgKGludGVyYWN0aXZlKQogICAod2l0aC1jdXJyZW50LWJ1ZmZlcgotICAgICAg KGdldC1idWZmZXItY3JlYXRlICIqRUdMT1QgY29ubmVjdGlvbnMqIikKKyAgICAoZ2V0LWJ1ZmZl ci1jcmVhdGUgIipFR0xPVCBjb25uZWN0aW9ucyoiKQogICAgIChsZXQgKChpbmhpYml0LXJlYWQt b25seSB0KSkKICAgICAgIChlcmFzZS1idWZmZXIpCiAgICAgICAoZWdsb3QtbGlzdC1jb25uZWN0 aW9ucy1tb2RlKQogICAgICAgKHNldHEtbG9jYWwgdGFidWxhdGVkLWxpc3QtZW50cmllcwotICAg ICAgICAgICAgICAgICAgKG1hcGNhcgotICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKHNlcnZl cikKLSAgICAgICAgICAgICAgICAgICAgIChsaXN0IHNlcnZlcgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgYFssKG9yIChwbGlzdC1nZXQgKGVnbG90LS1zZXJ2ZXItaW5mbyBzZXJ2ZXIpIDpu YW1lKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChqc29ucnBjLW5hbWUgc2Vy dmVyKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLChlZ2xvdC1wcm9qZWN0LW5pY2tu YW1lIHNlcnZlcikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLChtYXBjb25jYXQgIydz eW1ib2wtbmFtZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWds b3QtLW1ham9yLW1vZGVzIHNlcnZlcikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIiwgIildKSkKLSAgICAgICAgICAgICAgICAgICAoY2wtcmVkdWNlICMnYXBwZW5k Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzaC10YWJsZS12YWx1ZXMgZWdsb3Qt LXNlcnZlcnMtYnktcHJvamVjdCkpKSkKKyAgICAgICAgKG1hcGNhcgorICAgICAgICAgIChsYW1i ZGEgKHNlcnZlcikKKyAgICAgICAgICAgIChsaXN0IHNlcnZlcgorICAgICAgICAgICAgICBgWywo b3IgKHBsaXN0LWdldCAoZWdsb3QtLXNlcnZlci1pbmZvIHNlcnZlcikgOm5hbWUpCisgICAgICAg ICAgICAgICAgICAgKGpzb25ycGMtbmFtZSBzZXJ2ZXIpKQorICAgICAgICAgICAgICAgICAsKGVn bG90LXByb2plY3Qtbmlja25hbWUgc2VydmVyKQorICAgICAgICAgICAgICAgICAsKG1hcGNvbmNh dCAjJ3N5bWJvbC1uYW1lCisgICAgICAgICAgICAgICAgICAgIChlZ2xvdC0tbWFqb3ItbW9kZXMg c2VydmVyKQorICAgICAgICAgICAgICAgICAgICAiLCAiKV0pKQorICAgICAgICAgIChjbC1yZWR1 Y2UgIydhcHBlbmQKKyAgICAgICAgICAgIChoYXNoLXRhYmxlLXZhbHVlcyBlZ2xvdC0tc2VydmVy cy1ieS1wcm9qZWN0KSkpKQogICAgICAgKHJldmVydC1idWZmZXIpCiAgICAgICAocG9wLXRvLWJ1 ZmZlciAoY3VycmVudC1idWZmZXIpKSkpKQogCisoZGVmZmFjZSBlZ2xvdC1pbmxheS1oaW50Cisg ICcoKHQgKDppbmhlcml0IHNoYWRvdyA6aGVpZ2h0IDAuOCkpKQorICAiRmFjZSB1c2VkIGZvciBp bmxheSBoaW50IG92ZXJsYXlzLiIpCisKKzs7IChkZWZpbmUtbWlub3ItbW9kZSBlZ2xvdC0taW5s YXktbW9kZQorOzsgICAiTW9kZSBmb3IgZGlzcGxheWluZyBpbmxheSBoaW50LiIKKzs7ICAgOmxp Z2h0ZXIgIiBpbmxheSIKKzs7ICAgKQorCis7OyAoZGVmdW4gZWdsb3QtLXVwZGF0ZS1oaW50cygp Cis7OyAgICJSZWZyZXNoIGlubGF5IGhpbnRzIGZyb20gTFNQIHNlcnZlci4iCis7OyAgIChtYXBj ICMnZGVsZXRlLW92ZXJsYXkgKG92ZXJsYXlzLWluIChwb2ludC1taW4pIChwb2ludC1tYXgpKSkK Kzs7ICAgKGxldCAoKHJlYWQtb25seS1wIGJ1ZmZlci1yZWFkLW9ubHkpCis7OyAJICAgICAgIG92 ZXJsYXlzKQorOzsgICAgIChjb25kaXRpb24tY2FzZSBlcnIKKzs7IAkgICAgKGxldCAoKGxlbnMt dGFibGUgKG1ha2UtaGFzaC10YWJsZSkpKQorOzsgCSAgICAgIDs7IEdldCB0aGUgaW5sYXkgaGlu dCBvYmplY3RzLgorOzsgCSAgICAgIChtYXBjIChsYW1iZGEgKGlubGF5SGludCkKKzs7IAkJICAg ICAgICAgICAgKHdoZW4gKGFuZCAoZWdsb3QtLXNlcnZlci1jYXBhYmxlCis7OyAJCQkgICAgICAg ICAgICAgICAgICAgICAgIDppbmxheUhpbnRQcm92aWRlciA6cmVzb2x2ZVByb3ZpZGVyKQorOzsg CQkJICAgICAgICAgICAgICAgICAgKG5vdCAocGxpc3QtbWVtYmVyIGlubGF5SGludCA6Y29tbWFu ZCkpKQorOzsgCQkgICAgICAgICAgICAgIChzZXRxIGlubGF5SGludAorOzsgCQkJICAgICAgICAg ICAgICAoanNvbnJwYy1yZXF1ZXN0IChlZ2xvdC0tY3VycmVudC1zZXJ2ZXItb3ItbG9zZSkKKzs7 IAkJCQkJICAgICAgICAgICAgOmlubGF5SGludC9yZXNvbHZlIGlubGF5SGludCkpKQorOzsgCQkg ICAgICAgICAgICAobGV0ICgobGluZSAodGhyZWFkLWZpcnN0IGlubGF5SGludAorOzsgCQkJCQkg ICAgICAgICAgICAgICAgICAgIChwbGlzdC1nZXQgOnBvc2l0aW9uKQorOzsgCQkJCQkgICAgICAg ICAgICAgICAgICAgIChwbGlzdC1nZXQgOmxpbmUpKSkpCis7OyAJCSAgICAgICAgICAgICAgKHB1 dGhhc2ggbGluZQorOzsgCQkJICAgICAgICAgICAgICAoYXBwZW5kIChnZXRoYXNoIGxpbmUgbGVu cy10YWJsZSkgKGxpc3QgaW5sYXlIaW50KSkKKzs7IAkJCSAgICAgICAgICAgICAgbGVucy10YWJs ZSkpKQorOzsgCQkgICAgICAoanNvbnJwYy1yZXF1ZXN0Cis7OyAJCSAgICAgICAgKGVnbG90LS1j dXJyZW50LXNlcnZlci1vci1sb3NlKQorOzsgCQkgICAgICAgIDp0ZXh0RG9jdW1lbnQvaW5sYXlI aW50Cis7OyAJCSAgICAgICAgKGxpc3QgOnRleHREb2N1bWVudCAoZWdsb3QtLVRleHREb2N1bWVu dElkZW50aWZpZXIpIDpyYW5nZSAobGlzdCA6c3RhcnQgKGxpc3QgOmxpbmUgMCA6Y2hhcmFjdGVy IDApIDplbmQgKGxpc3QgOmxpbmUgKGNvdW50LWxpbmVzIChwb2ludC1taW4pIChwb2ludC1tYXgp KSA6Y2hhcmFjdGVyIDApKSkKKzs7IAkJICAgICAgICA6ZGVmZXJyZWQgOnRleHREb2N1bWVudC9p bmxheUhpbnQpKQorCis7OyAJICAgICAgOzsgTWFrZSBvdmVybGF5cyBmb3IgdGhlbS4KKzs7IAkg ICAgICAobWFwaGFzaAorOzsgCSAgICAgICAgKGxhbWJkYSAobGluZSB2YWx1ZXMpCis7OyAgICAg ICAgICAgICA7OyBUT0RPOiBtYW5hZ2UgSW5sYXlIaW50TGFiZWxQYXJ0W10KKzs7IAkgICAgICAg ICAgKGVnbG90LS13aWRlbmluZworOzsgCSAgICAgICAgICAgIChsZXQgKChjIChwbGlzdC1nZXQg KHBsaXN0LWdldCAoY2FyIHZhbHVlcykgOnBvc2l0aW9uKSA6Y2hhcmFjdGVyKSkKKzs7ICAgICAg ICAgICAgICAgICAgICAgIChsYWJlbC10ZXh0IChwcm9wZXJ0aXplIChpZiAoYW5kIChwbGlzdC1t ZW1iZXIgKGNhciB2YWx1ZXMpIDpsYWJlbCkgKHN0cmluZ3AgKHBsaXN0LWdldCAoY2FyIHZhbHVl cykgOmxhYmVsKSkpIChwbGlzdC1nZXQgKGNhciB2YWx1ZXMpIDpsYWJlbCkgIiIpKSkKKzs7IAkJ ICAgICAgICAgICAgICAgICAodGV4dCBsYWJlbC10ZXh0ICdtb3VzZS1mYWNlICdoaWdobGlnaHQp Cis7OyAgICAgICAgICAgICAgICAgICAgICApCis7OyAJICAgICAgICAgICAgICAoZ290by1jaGFy IChwb2ludC1taW4pKQorOzsgCSAgICAgICAgICAgICAgKGZvcndhcmQtbGluZSBsaW5lKQorOzsg CSAgICAgICAgICAgICAgKGVnbG90LW1vdmUtdG8tY29sdW1uIGMpCis7OyAJICAgICAgICAgICAg ICAobGV0ICgob3YgKG1ha2Utb3ZlcmxheSAocG9pbnQpIChwb2ludCkpKSkKKzs7IAkJICAgICAg ICAgICAgICAocHVzaCBvdiBvdmVybGF5cykKKzs7IAkJICAgICAgICAgICAgICAob3ZlcmxheS1w dXQgb3YgJ2VnbG90LWlubGF5LWhpbnQgdmFsdWVzKQorOzsgCQkgICAgICAgICAgICAgIChvdmVy bGF5LXB1dCBvdiAnYmVmb3JlLXN0cmluZyAocHJvcGVydGl6ZSB0ZXh0ICdmYWNlICdlZ2xvdC1p bmxheS1oaW50KSkKKzs7ICAgICAgICAgICAgICAgICAgICkpKSkKKzs7IAkgICAgICAgIGxlbnMt dGFibGUpCis7OyAgICAgICAgICkKKzs7ICAgICAgIChlcnJvcgorOzsgICAgICAgIChtYXBjICMn ZGVsZXRlLW92ZXJsYXkgb3ZlcmxheXMpCis7OyAgICAgICAgKHNldHEgYnVmZmVyLXJlYWQtb25s eSByZWFkLW9ubHktcCkKKzs7ICAgICAgICAoZWdsb3QtLWlubGF5LW1vZGUgLTEpCis7OyAgICAg ICAgKHNpZ25hbCAoY2FyIGVycikgKGNkciBlcnIpKSkpKSkKKworOzsgICAgICAgKGRlZnVuIGVn bG90LWlubGF5LWhpbnQgKCkKKzs7ICAgICAgICAgIkFzayB0aGUgc2VydmVyIGZvciBpbmxheSBo aW50IGFuZCBzaG93IHRoZW0gaW4gdGhlIGN1cnJlbnQgYnVmZmVyLiIKKzs7ICAgICAgICAgKGlu dGVyYWN0aXZlKQorOzsgICAgICAgICAodW5sZXNzIChlZ2xvdC0tc2VydmVyLWNhcGFibGUgOmlu bGF5SGludFByb3ZpZGVyKQorOzsgICAgICAgICAgIChlcnJvciAiU2VydmVyIGRvZXMgbm90IHN1 cHBvcnQgaW5sYXkgaGludC4iKSkKKworOzsgICAgICAgICA7OyBTZXR1cCBtaW5vciBtb2RlIHdo aWNoIHdpbGwgY2xlYW4gdGhlbSB1cCBhbmQgcHJvdmlkZSBrZXliaW5kaW5ncy4KKzs7ICAgICAg ICAgKGVnbG90LS1pbmxheS1tb2RlIDEpCis7OyAgICAgICAgIChlZ2xvdC0tdXBkYXRlLWhpbnRz KQorOzsgICAgICAgICAoYWRkLWhvb2sgJ2FmdGVyLXNhdmUtaG9vayAjJ2VnbG90LS11cGRhdGUt aGludHMgbmlsIHQpCisKKzs7ICAgICAgICAgKGNsLWxhYmVscworOzsgICAgICAgICAgICgoY2xl YW51cAorOzsgICAgICAgICAgICAgICgpCis7OyAgICAgICAgICAgICAgKHJlbW92ZS1ob29rICdl Z2xvdC0taW5sYXktbW9kZS1ob29rICMnY2xlYW51cCB0KQorOzsgICAgICAgICAgICAgIChyZW1v dmUtaG9vayAnYWZ0ZXItc2F2ZS1ob29rICdlZ2xvdC0tdXBkYXRlLWhpbnRzIHQpCis7OyAgICAg ICAgICAgICAgKHVubGVzcyBlZ2xvdC0taW5sYXktbW9kZQorOzsgICAgICAgICAgICAgICAgKG1h cGMgIydkZWxldGUtb3ZlcmxheSBvdmVybGF5cykKKzs7ICAgICAgICAgICAgICAgIChzZXRxIGJ1 ZmZlci1yZWFkLW9ubHkgcmVhZC1vbmx5LXApKSkpCis7OyAgICAgICAgICAgKGFkZC1ob29rICdl Z2xvdC0taW5sYXktbW9kZS1ob29rICMnY2xlYW51cCBuaWwgdCkpCis7OyAgICAgICAgICkKKwog DAogOzs7IEhhY2tzCiA7OzsKQEAgLTM0MDgsNyArMzY0Nyw3IEBAIElmIE5PRVJST1IsIHJldHVy biBwcmVkaWNhdGUsIGVsc2UgZXJyb3JpbmcgZnVuY3Rpb24uIgogOzs7CiAKIChtYWtlLW9ic29s ZXRlLXZhcmlhYmxlICdlZ2xvdC0tbWFuYWdlZC1tb2RlLWhvb2sKLSAgICAgICAgICAgICAgICAg ICAgICAgICdlZ2xvdC1tYW5hZ2VkLW1vZGUtaG9vayAiMS42IikKKyAgJ2VnbG90LW1hbmFnZWQt bW9kZS1ob29rICIxLjYiKQogKHByb3ZpZGUgJ2VnbG90KQogCiAMCkBAIC0zNDMwLDEwICszNjY5 LDEwIEBAIElmIE5PRVJST1IsIHJldHVybiBwcmVkaWNhdGUsIGVsc2UgZXJyb3JpbmcgZnVuY3Rp b24uIgogOzsgYWNjb3JkaW5nbHkuICB0cnljL2FsbGMgbmFtZXMgbWFkZSBha3dhcmQvcmVjb2du aXphYmxlIG9uIHB1cnBvc2UuCiAKIChhZGQtdG8tbGlzdCAnY29tcGxldGlvbi1zdHlsZXMtYWxp c3QKLSAgICAgICAgICAgICAnKGVnbG90LS1sc3AtYmFja2VuZC1zdHlsZQotICAgICAgICAgICAg ICAgZWdsb3QtLWxzcC1iYWNrZW5kLXN0eWxlLXRyeS1jb21wbGV0aW9uCi0gICAgICAgICAgICAg ICBlZ2xvdC0tbHNwLWJhY2tlbmQtc3R5bGUtYWxsLWNvbXBsZXRpb25zCi0gICAgICAgICAgICAg ICAiQWQtaG9jIGNvbXBsZXRpb24gc3R5bGUgcHJvdmlkZWQgYnkgdGhlIGNvbXBsZXRpb24gdGFi bGUuIikpCisgICcoZWdsb3QtLWxzcC1iYWNrZW5kLXN0eWxlCisgICAgIGVnbG90LS1sc3AtYmFj a2VuZC1zdHlsZS10cnktY29tcGxldGlvbgorICAgICBlZ2xvdC0tbHNwLWJhY2tlbmQtc3R5bGUt YWxsLWNvbXBsZXRpb25zCisgICAgICJBZC1ob2MgY29tcGxldGlvbiBzdHlsZSBwcm92aWRlZCBi eSB0aGUgY29tcGxldGlvbiB0YWJsZS4iKSkKIAogKGRlZnVuIGVnbG90LS1sc3AtYmFja2VuZC1z dHlsZS1jYWxsIChvcCBzdHJpbmcgdGFibGUgcHJlZCBwb2ludCkKICAgKHdoZW4gKGZ1bmN0aW9u cCB0YWJsZSkKLS0gCjIuMzQuMQoK --0000000000005e698c05f53a24f5--