From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Kangas Newsgroups: gmane.emacs.bugs Subject: bug#19479: Package manager vulnerable Date: Fri, 4 Oct 2019 11:49:54 +0200 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="00000000000081bb75059412a0f0" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="45233"; mail-complaints-to="usenet@blaine.gmane.org" To: 19479@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Oct 04 12:57:34 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iGLHC-000Bbz-4D for geb-bug-gnu-emacs@m.gmane.org; Fri, 04 Oct 2019 12:57:34 +0200 Original-Received: from localhost ([::1]:46164 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iGLHA-0003cx-IF for geb-bug-gnu-emacs@m.gmane.org; Fri, 04 Oct 2019 06:57:32 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:56055) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iGKEs-0001Ln-Hj for bug-gnu-emacs@gnu.org; Fri, 04 Oct 2019 05:51:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iGKEo-0000WK-IU for bug-gnu-emacs@gnu.org; Fri, 04 Oct 2019 05:51:06 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:32945) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iGKEo-0000WB-Bp for bug-gnu-emacs@gnu.org; Fri, 04 Oct 2019 05:51:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1iGKEo-00053p-8l for bug-gnu-emacs@gnu.org; Fri, 04 Oct 2019 05:51:02 -0400 X-Loop: help-debbugs@gnu.org In-Reply-To: Resent-From: Stefan Kangas Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 04 Oct 2019 09:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 19479 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: security Original-Received: via spool by 19479-submit@debbugs.gnu.org id=B19479.157018261819400 (code B ref 19479); Fri, 04 Oct 2019 09:51:02 +0000 Original-Received: (at 19479) by debbugs.gnu.org; 4 Oct 2019 09:50:18 +0000 Original-Received: from localhost ([127.0.0.1]:41766 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iGKE4-00052o-KF for submit@debbugs.gnu.org; Fri, 04 Oct 2019 05:50:17 -0400 Original-Received: from mail-pg1-f171.google.com ([209.85.215.171]:43505) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iGKE1-00052Q-5l for 19479@debbugs.gnu.org; Fri, 04 Oct 2019 05:50:14 -0400 Original-Received: by mail-pg1-f171.google.com with SMTP id v27so3438618pgk.10 for <19479@debbugs.gnu.org>; Fri, 04 Oct 2019 02:50:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=CsAyQ6xCVcGnDAI/I2O3QCW1AoYdoRBsQUGt2aj88HQ=; b=b82C+OWsX5ZBJqsYqDwY2WoR31wYQEK+L1l8hfO6Aaqik57x3zZBm66C6+0JZzTtT0 i7pb8QTRyvbBeyCiaVqFSF/dnTr1V73Dwghyfk0mwnAyXgDDDQMN3v7+a3wlu+COu0OY H7iNtcf7A8y/aN++RV7bdkcFSpqRS3ibKieqSjFjcpGDelA5vrRSkt0MV48CziGDR8uP MNCCMzmBbKGFRh2u8k7wmELOQZwqhMULDse9u/cKazTJ+PeiSLcEejeLdf1pI4g5soXj VvviyKNvbu0U3KnS7M78R+tnjqp7hCBp5PkSfIA0k5sd8ZvQsLQlMiDk1PjF6eypGaNx yGGQ== X-Gm-Message-State: APjAAAWdTnq1LRD+6WC7bgmORqMwO/qCuCSYGATDUmV2TY9Xo+34ZKA4 6Qn9dzSsvw0j0qYrvFexPScRqQJliuc16eF36rI6N6EK X-Google-Smtp-Source: APXvYqyR/zzonR7yONiqCM1mS24k1uaxV93VIH1LL2CfGx/M/ca7YQS1MbXGs+fUfjOy7zM/XfLWplmN59vLzD4x8Gk= X-Received: by 2002:a63:720f:: with SMTP id n15mr13963673pgc.198.1570182606717; Fri, 04 Oct 2019 02:50:06 -0700 (PDT) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 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.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:168319 Archived-At: --00000000000081bb75059412a0f0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Kelly Dean writes: > Ivan Shmakov requested that I send this message to the bug list. > > For details, see my message with subject =E2=8C=9CEmacs package manager v= ulnerable to replay attacks=E2=8C=9D to emacs-devel on 30 Dec 2014: > https://lists.gnu.org/archive/html/emacs-devel/2014-12/msg02319.html > > Executive summary to fix the vulnerabilities: > > 0. Include a hash and length of each package's content in the package's r= ecord > in archive-contents, rather than only including the package name and vers= ion > number in that file as Emacs currently does. Barf if a package hash doesn= 't > verify, regardless of whether any signatures verify. > (Length technically not necessary, but still generally useful, e.g. if > there's a length mismatch then you know there's a content mismatch and > you don't have to bother checking the hash.) I have implemented the first part of the protection against metadata replay attacks in the attached patch: support for checksum (or hash) verification. This change is backwards-compatible; the new fields can be added to "archive-contents" file without impacting old clients. I've not yet updated documentation, NEWS, etc. but will get to that next. I introduce a new user option `package-verify-checksums' that controls this new behaviour. The default is 'allow-missing', which only carries out this check if there are checksums in "archive-contents", and does nothing otherwise. In itself, this does nothing to protect against metadata replay attacks (but might protect against data corruption). You need to set `package-verify-checksums' to t, and implement timestamping (discussed below). I still suggest to stick with this default for Emacs 27.1, or at least until common package archives can catch up. Once this is implemented in GNU ELPA and MELPA, it makes more sense to move to a stricter default. Otherwise, the transition will be very bumpy. I therefore suggest to discuss stricter defaults later. (BTW, I didn't bother fixing the package-x.el code for this patch, since it seems like it's not that widely used. It will work as before, but lack support for adding the checksums automatically.) > 1. Include a timestamp of archive-contents in that file itself (so that t= he > signature in archive-contents.sig depends on the timestamp, so that the > timestamp can't be forged), and have Emacs ignore any new archive-content= s > that's older than the latest valid one that Emacs has already seen or is = older > than some specified limit. One thing I forgot to mention in my original m= essage: > have Emacs signal a warning if it ever sees an archive-contents dated in = the > future, which indicates misconfiguration of the client or server (or of c= ourse, > some kind of mischief). To protect against metadata replay attacks, it is correct that we need timestamps too. I haven't done that in this first patch, but I hope to do it in a following patch. I wanted to get this first part done before I started working on that. My current best idea for how to do it is one which AFAICT haven't been raised in this thread before: to add a comment with an RFC3339 timestamp to the top of the "archive-contents" file: ;; Last-Updated: 2019-10-01T15:32:55.000Z This will be ignored by older versions of Emacs, since package.el uses (read (current-buffer)) to read this file. New versions will have an easy time parsing this header, caching the value, and refusing to update the package cache if the timestamp is older than one we have already seen. With that, we would have implemented protection against metadata replay attacks. I think it would be highly beneficial if this could go in before Emacs 27, not least so that package archives can start implementing support for this. Comments on all this are obviously more than welcome. Best regards, Stefan Kangas PS. Note that the original thread ended up highly off-topic discussing copyright issues, because one potential contributor refused to sign the standard copyright assignment. The eventual outcome was that we could not use a patch written by that person. I have therefore deliberately not looked at that persons patch in order to avoid any copyright issues. I have implemented this from scratch based solely on the below link, and the discussion in this thread: https://www2.cs.arizona.edu/stork/packagemanagersecurity/attacks-on-package= -managers.html --00000000000081bb75059412a0f0 Content-Type: text/x-patch; charset="UTF-8"; name="0001-Support-package-checksum-verification.patch" Content-Disposition: attachment; filename="0001-Support-package-checksum-verification.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k1by4izu0 RnJvbSA1NDMwMjlmNGQzZGNjNGUwNDAxMjYzYzkzZTAxZmU5MzE5Mzk1NzA4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVmYW4gS2FuZ2FzIDxzdGVmYW5rYW5nYXNAZ21haWwuY29t PgpEYXRlOiBGcmksIDQgT2N0IDIwMTkgMTA6MzY6MTQgKzAyMDAKU3ViamVjdDogW1BBVENIXSBT dXBwb3J0IHBhY2thZ2UgY2hlY2tzdW0gdmVyaWZpY2F0aW9uCgpUaGlzIGlzIHRoZSBmaXJzdCBz dGVwIHRvd2FyZHMgcHJvdGVjdGluZyB1c2VycyBvZiBwYWNrYWdlLmVsIGFnYWluc3QKbWV0YWRh dGEgcmVwbGF5IGF0dGFja3MuCgoqIGxpc3AvZW1hY3MtbGlzcC9wYWNrYWdlLmVsIChwYWNrYWdl LXZlcmlmeS1jaGVja3N1bXMpOiBOZXcKZGVmY3VzdG9tLgoocGFja2FnZS1kZXNjLCBwYWNrYWdl LS1hYy1kZXNjKQoocGFja2FnZS0tYWRkLXRvLWFyY2hpdmUtY29udGVudHMsIHBhY2thZ2UtaW5z dGFsbC1mcm9tLWFyY2hpdmUpOiBOZXcKZmllbGRzICdzaXplJyBhbmQgJ2NoZWNrc3VtcycuCihw YWNrYWdlLWRlc2MtZmlsZW5hbWUpOiBOZXcgZnVuY3Rpb24uCihwYWNrYWdlLXByb2Nlc3MtZGVm aW5lLXBhY2thZ2UpOiBEb2MgZml4LgoKKGJhZC1jaGVja3N1bSk6IE5ldyBlcnJvciB0eXBlLgoo cGFja2FnZS0tdmVyaWZ5LXBhY2thZ2UtY2hlY2tzdW0pCihwYWNrYWdlLS12ZXJpZnktcGFja2Fn ZS1zaXplKTogTmV3IGZ1bmN0aW9uIHRvIHZlcmlmeSB0aGF0IHRoZQpjaGVja3N1bSBhbmQgc2l6 ZSBvZiBhIHBhY2thZ2UgY29ycmVzcG9uZHMgdG8gdGhlIGNoZWNrc3VtIGFuZCBzaXplCmRhdGEg aW4gdGhlICJhcmNoaXZlLWNvbnRlbnRzIiBmaWxlIG9uIHRoZSBwYWNrYWdlIGFyY2hpdmUuCihw YWNrYWdlLS1zaG93LXZlcmlmeS1jaGVja3N1bS1lcnJvcik6IE5ldyBmdW5jdGlvbiB0byBzaG93 CmRldGFpbHMgb2YgYW4gZXJyb3Igb24gY2hlY2tzdW0gdmVyaWZpY2F0aW9uLiAgKEJ1ZyMxOTQ3 OSkKCiogbGlzcC9lbWFjcy1saXNwL3BhY2thZ2UteC5lbCAocGFja2FnZS11cGxvYWQtYnVmZmVy LWludGVybmFsKToKVXBkYXRlIHRvIHVzZSBhYm92ZSBuZXcgZmllbGRzICdzaXplJyBhbmQgJ2No ZWNrc3VtcycuCgoqIHRlc3QvbGlzcC9lbWFjcy1saXNwL3BhY2thZ2UtdGVzdHMuZWwgKHBhY2th Z2UtdGVzdC1yZWZyZXNoLWNvbnRlbnRzKQoocGFja2FnZS10ZXN0LWluc3RhbGwtc2luZ2xlLWZy b20tYXJjaGl2ZSk6IFVwZGF0ZSB0ZXN0cy4KKHdpdGgtaW5zdGFsbC11c2luZy1jaGVja3N1bSk6 IE5ldyBtYWNyby4KKHBhY2thZ2UtdGVzdC1pbnN0YWxsLXdpdGgtY2hlY2tzdW0vc2luZ2xlLXZh bGlkKQoocGFja2FnZS10ZXN0LWluc3RhbGwtd2l0aC1jaGVja3N1bS9zaW5nbGUtaW52YWxpZCkK KHBhY2thZ2UtdGVzdC1pbnN0YWxsLXdpdGgtY2hlY2tzdW0vdGFyLXZhbGlkKQoocGFja2FnZS10 ZXN0LWluc3RhbGwtd2l0aC1jaGVja3N1bS90YXItaW52YWxpZCk6IE5ldyB0ZXN0cyBmb3IKaW5z dGFsbGluZyBwYWNrYWdlcyB3aXRoIGNoZWNrc3Vtcy4KKHBhY2thZ2UtdGVzdC12ZXJpZmljYXRp b24tdGV4dCkKKHBhY2thZ2UtdGVzdHMtdmFsaWQtbWQ1LWNoZWNrc3VtKQoocGFja2FnZS10ZXN0 cy12YWxpZC1zaGEyNTYtY2hlY2tzdW0pCihwYWNrYWdlLXRlc3RzLXZhbGlkLXNoYTUxMi1jaGVj a3N1bSk6IE5ldyB2YXJpYWJsZXMuCihydW4tdmVyaWZ5LWNoZWNrc3Vtcy10ZXN0KTogTmV3IG1h Y3JvLgoocGFja2FnZS10ZXN0LS12ZXJpZnktcGFja2FnZS1jaGVja3N1bXMtbmlsL2lnbm9yZS1p bnZhbGlkKQoocGFja2FnZS10ZXN0LS12ZXJpZnktcGFja2FnZS1jaGVja3N1bXMtYWxsb3ctbWlz c2luZykKKHBhY2thZ2UtdGVzdC0tdmVyaWZ5LXBhY2thZ2UtY2hlY2tzdW1zLWFsbG93LW1pc3Np bmcvbWlzc2luZykKKHBhY2thZ2UtdGVzdC0tdmVyaWZ5LXBhY2thZ2UtY2hlY2tzdW1zLWFsbG93 LW1pc3NpbmcvaWdub3JlLXVuc3VwcG9ydGVkKQoocGFja2FnZS10ZXN0LS12ZXJpZnktcGFja2Fn ZS1jaGVja3N1bXMtdCkKKHBhY2thZ2UtdGVzdC0tdmVyaWZ5LXBhY2thZ2UtY2hlY2tzdW1zLXQv aW52YWxpZC1mYWlscykKKHBhY2thZ2UtdGVzdC0tdmVyaWZ5LXBhY2thZ2UtY2hlY2tzdW1zLXQv bWlzc2luZy1mYWlscykKKHBhY2thZ2UtdGVzdC0tdmVyaWZ5LXBhY2thZ2UtY2hlY2tzdW1zLWFs bCkKKHBhY2thZ2UtdGVzdC0tdmVyaWZ5LXBhY2thZ2UtY2hlY2tzdW1zLWFsbC9pbnZhbGlkLWZh aWxzKQoocGFja2FnZS10ZXN0LS12ZXJpZnktcGFja2FnZS1jaGVja3N1bXMtYWxsL21pc3Npbmct ZmFpbHMpCihwYWNrYWdlLXRlc3QtLXZlcmlmeS1wYWNrYWdlLWNoZWNrc3Vtcy1hbGwvbm8tc3Vw cG9ydGVkLWhhc2gtZmFpbHMpCihwYWNrYWdlLXRlc3QtLXZlcmlmeS1wYWNrYWdlLWNoZWNrc3Vt cy1hbGwvaWdub3JlLXVuc3VwcG9ydGVkKQoocGFja2FnZS10ZXN0LS12ZXJpZnktcGFja2FnZS1z aXplKTogTmV3IHRlc3RzIGZvciB0aGUgY2hlY2tzdW0Kc3VwcG9ydC4KCiogdGVzdC9saXNwL2Vt YWNzLWxpc3AvcGFja2FnZS1yZXNvdXJjZXMvYXJjaGl2ZS1jb250ZW50czoKKiB0ZXN0L2xpc3Av ZW1hY3MtbGlzcC9wYWNrYWdlLXJlc291cmNlcy9jaGVja3N1bS1pbnZhbGlkLTEuMC5lbDoKKiB0 ZXN0L2xpc3AvZW1hY3MtbGlzcC9wYWNrYWdlLXJlc291cmNlcy9jaGVja3N1bS12YWxpZC0xMjMu ZWw6CiogdGVzdC9saXNwL2VtYWNzLWxpc3AvcGFja2FnZS1yZXNvdXJjZXMvY2hlY2tzdW0tdmFs aWQtdGFyLTAuOTkudGFyOgoqIHRlc3QvbGlzcC9lbWFjcy1saXNwL3BhY2thZ2UtcmVzb3VyY2Vz L2NoZWNrc3VtLXZhbGlkLXRhci0wLjk5LnRhcjoKTmV3IHRlc3QgZGF0YSBmaWxlcy4KLS0tCiBs aXNwL2VtYWNzLWxpc3AvcGFja2FnZS14LmVsICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGxp c3AvZW1hY3MtbGlzcC9wYWNrYWdlLmVsICAgICAgICAgICAgICAgICAgICB8IDE1OSArKysrKysr KysrKysrKy0tCiAuLi4vcGFja2FnZS1yZXNvdXJjZXMvYXJjaGl2ZS1jb250ZW50cyAgICAgICAg fCAgMjYgKystCiAuLi4vcGFja2FnZS1yZXNvdXJjZXMvY2hlY2tzdW0taW52YWxpZC0xLjAuZWwg fCAgMTcgKysKIC4uLi9jaGVja3N1bS1pbnZhbGlkLXRhci0wLjEudGFyICAgICAgICAgICAgICB8 IEJpbiAwIC0+IDEwMjQwIGJ5dGVzCiAuLi4vcGFja2FnZS1yZXNvdXJjZXMvY2hlY2tzdW0tdmFs aWQtMTIzLmVsICAgfCAgMTcgKysKIC4uLi9jaGVja3N1bS12YWxpZC10YXItMC45OS50YXIgICAg ICAgICAgICAgICB8IEJpbiAwIC0+IDEwMjQwIGJ5dGVzCiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9w YWNrYWdlLXRlc3RzLmVsICAgICAgICAgfCAxNzcgKysrKysrKysrKysrKysrKystCiA4IGZpbGVz IGNoYW5nZWQsIDM3OCBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9wYWNrYWdlLXJlc291cmNlcy9jaGVja3N1bS1p bnZhbGlkLTEuMC5lbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3QvbGlzcC9lbWFjcy1saXNwL3Bh Y2thZ2UtcmVzb3VyY2VzL2NoZWNrc3VtLWludmFsaWQtdGFyLTAuMS50YXIKIGNyZWF0ZSBtb2Rl IDEwMDY0NCB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9wYWNrYWdlLXJlc291cmNlcy9jaGVja3N1bS12 YWxpZC0xMjMuZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9wYWNr YWdlLXJlc291cmNlcy9jaGVja3N1bS12YWxpZC10YXItMC45OS50YXIKCmRpZmYgLS1naXQgYS9s aXNwL2VtYWNzLWxpc3AvcGFja2FnZS14LmVsIGIvbGlzcC9lbWFjcy1saXNwL3BhY2thZ2UteC5l bAppbmRleCAyODE1YmUzZmU2Li41NjM3M2MxNGM0IDEwMDY0NAotLS0gYS9saXNwL2VtYWNzLWxp c3AvcGFja2FnZS14LmVsCisrKyBiL2xpc3AvZW1hY3MtbGlzcC9wYWNrYWdlLXguZWwKQEAgLTIx OSw3ICsyMTksOSBAQCBwYWNrYWdlLXVwbG9hZC1idWZmZXItaW50ZXJuYWwKIAkgIChsZXQgKChj b250ZW50cyAob3IgKHBhY2thZ2UtLWFyY2hpdmUtY29udGVudHMtZnJvbS11cmwgYXJjaGl2ZS11 cmwpCiAJCQkgICAgICAocGFja2FnZS0tYXJjaGl2ZS1jb250ZW50cy1mcm9tLWZpbGUpKSkKIAkJ KG5ldy1kZXNjIChwYWNrYWdlLW1ha2UtYWMtZGVzYwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3BsaXQtdmVyc2lvbiByZXF1aXJlcyBkZXNjIGZpbGUtdHlwZSBleHRyYXMpKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNwbGl0LXZlcnNpb24gcmVxdWlyZXMgZGVzYyBmaWxlLXR5 cGUgZXh0cmFzCisgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBGSVhNRTogVXNlIGJldHRl ciB2YWx1ZXMgdGhhbiBuaWwgbmlsLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsIG5p bCkpKQogCSAgICAoaWYgKD4gKGNhciBjb250ZW50cykgcGFja2FnZS1hcmNoaXZlLXZlcnNpb24p CiAJCShlcnJvciAiVW5yZWNvZ25pemVkIGFyY2hpdmUgdmVyc2lvbiAlZCIgKGNhciBjb250ZW50 cykpKQogCSAgICAobGV0ICgoZWx0IChhc3NxIHBrZy1uYW1lIChjZHIgY29udGVudHMpKSkpCmRp ZmYgLS1naXQgYS9saXNwL2VtYWNzLWxpc3AvcGFja2FnZS5lbCBiL2xpc3AvZW1hY3MtbGlzcC9w YWNrYWdlLmVsCmluZGV4IDE4OGYzOThhNTYuLjY3OTVlMTdhYzMgMTAwNjQ0Ci0tLSBhL2xpc3Av ZW1hY3MtbGlzcC9wYWNrYWdlLmVsCisrKyBiL2xpc3AvZW1hY3MtbGlzcC9wYWNrYWdlLmVsCkBA IC0zMzUsNiArMzM1LDMwIEBAIHBhY2thZ2UtZ251cGdob21lLWRpcgogICA6cmlza3kgdAogICA6 dmVyc2lvbiAiMjYuMSIpCiAKKyhkZWZjdXN0b20gcGFja2FnZS12ZXJpZnktY2hlY2tzdW1zICdh bGxvdy1taXNzaW5nCisgICJOb24tbmlsIG1lYW5zIHRvIHZlcmlmeSB0aGUgY2hlY2tzdW0gb2Yg YSBwYWNrYWdlIGJlZm9yZSBpbnN0YWxsaW5nIGl0LgorCitUaGlzIGNhbiBiZSBvbmUgb2Y6Cist IG5pbDogSWdub3JlIGNoZWNrc3Vtcy4KKy0gYGFsbG93LW1pc3NpbmcnOiBTYW1lIGFzIHQgaWYg YSBjaGVja3N1bSBleGlzdHMsIGJ1dCBpbnN0YWxsIGEKKyAgcGFja2FnZSBldmVuIGlmIHRoZXJl IGlzIG5vIGNoZWNrc3VtLgorLSB0OiBSZXF1aXJlIGEgdmFsaWQgY2hlY2tzdW07IHJlZnVzZSB0 byBpbnN0YWxsIHBhY2thZ2UgaWYgdGhlCisgIGNoZWNrc3VtIGlzIG1pc3Npbmcgb3IgaW52YWxp ZC4gIFZlcmlmaWVzIG9uZSBjaGVja3N1bS4KKy0gYGFsbCc6IFNhbWUgYXMgdCwgYnV0IHZlcmlm eSBhbGwgYXZhaWxhYmxlIChhbmQgc3VwcG9ydGVkKQorICBjaGVja3N1bXMuCisKK1RoZSBwYWNr YWdlIGNoZWNrc3VtcyBhcmUgYXV0b21hdGljYWxseSBmZXRjaGVkIGZyb20gcGFja2FnZQorYXJj aGl2ZXMgd2l0aCB0aGUgcGFja2FnZSBkYXRhIG9uIGBwYWNrYWdlLXJlZnJlc2gtY29udGVudHMn LgorCitOb3RlIHRoYXQgc2V0dGluZyB0aGlzIHRvIG5pbCBpcyBpbnRlbmRlZCBmb3IgZGVidWdn aW5nLCBhbmQKK3Nob3VsZCBub3JtYWxseSBub3QgYmUgdXNlZCBzaW5jZSBpdCB3aWxsIGRlY3Jl YXNlIHNlY3VyaXR5LiIKKyAgOnR5cGUgJyhjaG9pY2UgKGNvbnN0IG5pbCA6dGFnICJOZXZlciIp CisgICAgICAgICAgICAgICAgIChjb25zdCBhbGxvdy1taXNzaW5nIDp0YWcgIkFsbG93IG1pc3Np bmciKQorICAgICAgICAgICAgICAgICAoY29uc3QgdCA6dGFnICJSZXF1aXJlIHZhbGlkIGNoZWNr c3VtIikKKyAgICAgICAgICAgICAgICAgKGNvbnN0IHQgOnRhZyAiUmVxdWlyZSB2YWxpZCBjaGVj a3N1bSwgYW5kIGNoZWNrIGFsbCIpKQorICA6cmlza3kgdAorICA6dmVyc2lvbiAiMjcuMSIpCisK IChkZWZjdXN0b20gcGFja2FnZS1jaGVjay1zaWduYXR1cmUgJ2FsbG93LXVuc2lnbmVkCiAgICJO b24tbmlsIG1lYW5zIHRvIGNoZWNrIHBhY2thZ2Ugc2lnbmF0dXJlcyB3aGVuIGluc3RhbGxpbmcu CiBNb3JlIHNwZWNpZmljYWxseSB0aGUgdmFsdWUgY2FuIGJlOgpAQCAtNDI5LDYgKzQ1Myw4IEBA IHBhY2thZ2UtLWRlZmF1bHQtc3VtbWFyeQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmVxdWlyZW1lbnRzKSkpCiAgICAgICAgICAgICAgICAgIChraW5kIChwbGlzdC1nZXQgcmVz dC1wbGlzdCA6a2luZCkpCiAgICAgICAgICAgICAgICAgIChhcmNoaXZlIChwbGlzdC1nZXQgcmVz dC1wbGlzdCA6YXJjaGl2ZSkpCisgICAgICAgICAgICAgICAgIChjaGVja3N1bXMgKHBsaXN0LWdl dCByZXN0LXBsaXN0IDpjaGVja3N1bXMpKQorICAgICAgICAgICAgICAgICAoc2l6ZSAocGxpc3Qt Z2V0IHJlc3QtcGxpc3QgOnNpemUpKQogICAgICAgICAgICAgICAgICAoZXh0cmFzIChsZXQgKGFs aXN0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoaWxlIHJlc3QtcGxpc3QKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHVubGVzcyAobWVtcSAoY2FyIHJlc3QtcGxpc3QpICco OmtpbmQgOmFyY2hpdmUpKQpAQCAtNDY2LDYgKzQ5MiwxMyBAQCBwYWNrYWdlLS1kZWZhdWx0LXN1 bW1hcnkKIAogYGV4dHJhcycgT3B0aW9uYWwgYWxpc3Qgb2YgYWRkaXRpb25hbCBrZXl3b3JkLXZh bHVlIHBhaXJzLgogCitgc2l6ZScgIFNpemUgb2YgdGhlIHBhY2thZ2UgaW4gYnl0ZXMuCisKK2Bj aGVja3N1bXMnIENoZWNrc3VtcyBmb3IgdGhlIHBhY2thZ2UgZmlsZS4gIEFsaXN0IG9mICgoQUxH T1JJVEhNCisgICAgICAgIC4gQ0hFQ0tTVU0pKSB3aGVyZSBBTEdPUklUSE0gaXMgYSBzeW1ib2wg c3BlY2lmeWluZyBhCisgICAgICAgIGBzZWN1cmUtaGFzaCcgYWxnb3JpdGhtLCBhbmQgQ0hFQ0tT VU0gaXMgYSBzdHJpbmcKKyAgICAgICAgY29udGFpbmluZyB0aGUgY2hlY2tzdW0uCisKIGBzaWdu ZWQnIEZsYWcgdG8gaW5kaWNhdGUgdGhhdCB0aGUgcGFja2FnZSBpcyBzaWduZWQgYnkgcHJvdmlk ZXIuIgogICBuYW1lCiAgIHZlcnNpb24KQEAgLTQ3NSw3ICs1MDgsOSBAQCBwYWNrYWdlLS1kZWZh dWx0LXN1bW1hcnkKICAgYXJjaGl2ZQogICBkaXIKICAgZXh0cmFzCi0gIHNpZ25lZCkKKyAgc2ln bmVkCisgIHNpemUKKyAgY2hlY2tzdW1zKQogCiAoZGVmdW4gcGFja2FnZS0tZnJvbS1idWlsdGlu IChiaS1kZXNjKQogICAiQ3JlYXRlIGEgYHBhY2thZ2UtZGVzYycgb2JqZWN0IGZyb20gQkktREVT Qy4KQEAgLTUzOCw2ICs1NzMsMTMgQEAgcGFja2FnZS1kZXNjLXN1ZmZpeAogICAgICgnZGlyICIi KQogICAgIChraW5kIChlcnJvciAiVW5rbm93biBwYWNrYWdlIGtpbmQ6ICVzIiBraW5kKSkpKQog CisoZGVmdW4gcGFja2FnZS1kZXNjLWZpbGVuYW1lIChwa2ctZGVzYykKKyAgIlJldHVybiBmaWxl LW5hbWUgb2YgcGFja2FnZS1kZXNjIG9iamVjdCBQS0ctREVTQy4KK1RoaXMgaXMgdGhlIGNvbmNh dGVuYXRpb24gb2YgYHBhY2thZ2UtZGVzYy1mdWxsLW5hbWUnIGFuZAorYHBhY2thZ2UtZGVzYy1z dWZmaXgnLiIKKyAgKGNvbmNhdCAocGFja2FnZS1kZXNjLWZ1bGwtbmFtZSBwa2ctZGVzYykKKyAg ICAgICAgICAocGFja2FnZS1kZXNjLXN1ZmZpeCBwa2ctZGVzYykpKQorCiAoZGVmdW4gcGFja2Fn ZS1kZXNjLS1rZXl3b3JkcyAocGtnLWRlc2MpCiAgICJSZXR1cm4ga2V5d29yZHMgb2YgcGFja2Fn ZS1kZXNjIG9iamVjdCBQS0ctREVTQy4KIFRoZXNlIGtleXdvcmRzIGNvbWUgZnJvbSB0aGUgZm9v LXBrZy5lbCBmaWxlLCBhbmQgaW4gZ2VuZXJhbApAQCAtNjAzLDExICs2NDUsMTEgQEAgcGFja2Fn ZS1hY3RpdmF0ZWQtbGlzdAogKGRlZnVuIHBhY2thZ2UtcHJvY2Vzcy1kZWZpbmUtcGFja2FnZSAo ZXhwKQogICAiUHJvY2VzcyBkZWZpbmUtcGFja2FnZSBleHByZXNzaW9uIEVYUCBhbmQgcHVzaCBp dCB0byBgcGFja2FnZS1hbGlzdCcuCiBFWFAgc2hvdWxkIGJlIGEgZm9ybSByZWFkIGZyb20gYSBm b28tcGtnLmVsIGZpbGUuCi1Db252ZXJ0IEVYUCBpbnRvIGEgYHBhY2thZ2UtZGVzYycgb2JqZWN0 IHVzaW5nIHRoZQotYHBhY2thZ2UtZGVzYy1mcm9tLWRlZmluZScgY29uc3RydWN0b3IgYmVmb3Jl IHB1c2hpbmcgaXQgdG8KLWBwYWNrYWdlLWFsaXN0Jy4KLUlmIHRoZXJlIGFscmVhZHkgZXhpc3Rz IGEgcGFja2FnZSBieSB0aGF0IG5hbWUgaW4KLWBwYWNrYWdlLWFsaXN0JywgcmVwbGFjZSB0aGF0 IGRlZmluaXRpb24gd2l0aCB0aGUgbmV3IG9uZS4iCisKK0NvbnZlcnQgRVhQIGludG8gYSBgcGFj a2FnZS1kZXNjJyBvYmplY3QsIHRoZW4gcHVzaCBpdCB0bworYHBhY2thZ2UtYWxpc3QnLiAgSWYg dGhlcmUgYWxyZWFkeSBleGlzdHMgYSBwYWNrYWdlIGJ5IHRoZSBzYW1lCituYW1lIGluIGBwYWNr YWdlLWFsaXN0JywgYWRkIHRoZSBvYmplY3QgdG8gdGhlIGxpc3Qgb2YgcGFja2FnZXMsCithbmQg c29ydCB0aGUgZW50cmllcyBieSB2ZXJzaW9uLiIKICAgKHdoZW4gKGVxIChjYXItc2FmZSBleHAp ICdkZWZpbmUtcGFja2FnZSkKICAgICAobGV0KiAoKG5ldy1wa2ctZGVzYyAoYXBwbHkgIydwYWNr YWdlLWRlc2MtZnJvbS1kZWZpbmUgKGNkciBleHApKSkKICAgICAgICAgICAgKG5hbWUgKHBhY2th Z2UtZGVzYy1uYW1lIG5ldy1wa2ctZGVzYykpCkBAIC0xMzEwLDYgKzEzNTIsODEgQEAgcGFja2Fn ZS0td2l0aC1yZXNwb25zZS1idWZmZXItMQogICAgICAgICAgICAgICAgICAgIHVybCkpCiAgICAg ICAgICAgKGluc2VydC1maWxlLWNvbnRlbnRzLWxpdGVyYWxseSB1cmwpKSkpKQogCisoZGVmaW5l LWVycm9yICdiYWQtY2hlY2tzdW0gIkZhaWxlZCB0byB2ZXJpZnkgY2hlY2tzdW0iKQorCisoZGVm dW4gcGFja2FnZS0tc2hvdy12ZXJpZnktY2hlY2tzdW0tZXJyb3IgKHBrZy1kZXNjIGRldGFpbHMp CisgICJTaG93IGVycm9yIG9uIGZhaWxlZCBjaGVja3N1bSB2ZXJpZmljYXRpb24gb2YgUEtHLURF U0Mgd2l0aCBERVRBSUxTLgorRXJyb3IgaXMgZGlzcGxheWVkIGluIGEgbmV3IGJ1ZmZlciBuYW1l ZCBcIipFcnJvcipcIi4iCisgICh3aXRoLW91dHB1dC10by10ZW1wLWJ1ZmZlciAiKkVycm9yKiIK KyAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBzdGFuZGFyZC1vdXRwdXQKKyAgICAgIChpbnNlcnQg KGZvcm1hdCAiRmFpbGVkIHRvIHZlcmlmeSBjaGVja3N1bSBvZiBwYWNrYWdlIGAlcyc6XG5cbiIK KyAgICAgICAgICAgICAgICAgICAgICAocGFja2FnZS1kZXNjLW5hbWUgcGtnLWRlc2MpKSkKKyAg ICAgIChpbnNlcnQgZGV0YWlscykpKSkKKworKGRlZnVuIHBhY2thZ2UtLXZlcmlmeS1wYWNrYWdl LWNoZWNrc3VtIChwa2ctZGVzYykKKyAgIlZlcmlmeSBjaGVja3N1bXMgb2YgYHBhY2thZ2UtZGVz Yycgb2JqZWN0IFBLRy1ERVNDLgorVGhpcyBhc3N1bWVzIHRoYXQgdGhlIHdlIGFyZSBpbiBhIGJ1 ZmZlciBjb250YWluaW5nIHBhY2thZ2UuCisKK1RoZSB2YWx1ZSBvZiBgcGFja2FnZS12ZXJpZnkt Y2hlY2tzdW1zJyBkZWNpZGVzIHdoYXQgdGhpcworZnVuY3Rpb24gZG9lczoKKy0gbmlsOiBEbyBu b3RoaW5nLgorLSAnYWxsb3ctbWlzc2luZzogVmVyaWZ5IGNoZWNrc3VtIGlmIGl0IGV4aXN0cywg b3RoZXJ3aXNlIGRvCisgIG5vdGhpbmcuCistIHQ6IFZlcmlmeSB0aGF0IHRoZXJlIGlzIGF0IGxl YXN0IG9uZSB2YWxpZCBjaGVja3N1bS4KKy0gJ2FsbCc6IExpa2UgdCwgYnV0IGNoZWNrIGFsbCAo c3VwcG9ydGVkKSBjaGVja3N1bXMgaW4gdHVybi4KKworU2lnbmFsIGFuIGVycm9yIG9mIHR5cGUg YGJhZC1jaGVja3N1bScgaWYgdGhlIHZlcmlmaWNhdGlvbi4iCisgIChjbC1mbGV0KgorICAgICAg KChzdXBwb3J0ZWQtaGFzaGVzCisgICAgICAgIChsYW1iZGEgKCkKKyAgICAgICAgICAob3IgKHNl cS1maWx0ZXIgKGxhbWJkYSAoaCkgKG1lbXFsIChjYXIgaCkgKHNlY3VyZS1oYXNoLWFsZ29yaXRo bXMpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhY2thZ2UtZGVzYy1jaGVja3N1bXMg cGtnLWRlc2MpKQorICAgICAgICAgICAgICA7OyBGYWlsZWQ7IHNpZ25hbCBlcnJvci4KKyAgICAg ICAgICAgICAgKHBhY2thZ2UtLXNob3ctdmVyaWZ5LWNoZWNrc3VtLWVycm9yCisgICAgICAgICAg ICAgICBwa2ctZGVzYworICAgICAgICAgICAgICAgKGNvbmNhdAorICAgICAgICAgICAgICAgIChp ZiAocGFja2FnZS1kZXNjLWNoZWNrc3VtcyBwa2ctZGVzYykKKyAgICAgICAgICAgICAgICAgICAg KGNvbmNhdAorICAgICAgICAgICAgICAgICAgICAgIk5vIHN1cHBvcnRlZCBjaGVja3N1bXMgZm91 bmRcblxuIgorICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdC1tZXNzYWdlICJQYWNrYWdlIGFy Y2hpdmUgaGFkOiAlc1xuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChw YWNrYWdlLWRlc2MtY2hlY2tzdW1zIHBrZy1kZXNjKSkKKyAgICAgICAgICAgICAgICAgICAgIChm b3JtYXQtbWVzc2FnZSAiRW1hY3Mgc3VwcG9ydHM6ICVzXG4iCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHNlY3VyZS1oYXNoLWFsZ29yaXRobXMpKSkKKyAgICAgICAgICAg ICAgICAgICJQYWNrYWdlIGFyY2hpdmUgaGFkIG5vIGNoZWNrc3VtcyBmb3IgdGhpcyBwYWNrYWdl XG4iKSkpCisgICAgICAgICAgICAgIChzaWduYWwgJ2JhZC1jaGVja3N1bSAibm8gc3VwcG9ydGVk IGNoZWNrc3VtcyBmb3VuZCIpKSkpCisgICAgICAgKGRvLWNoZWNrCisgICAgICAgIChsYW1iZGEg KCZvcHRpb25hbCBhbGwpCisgICAgICAgICAgKGRvbGlzdCAoaGFzaCAoc2VxLXRha2UgKHN1cHBv cnRlZC1oYXNoZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIGFsbCBt b3N0LXBvc2l0aXZlLWZpeG51bSAxKSkpCisgICAgICAgICAgICAobGV0KiAoKGFsZ29yaXRobSAo Y2FyIGhhc2gpKQorICAgICAgICAgICAgICAgICAgIChhIChjZHIgaGFzaCkpCisgICAgICAgICAg ICAgICAgICAgKGIgKHNlY3VyZS1oYXNoIGFsZ29yaXRobSAoY3VycmVudC1idWZmZXIpKSkpCisg ICAgICAgICAgICAgIChpZiAoZXF1YWwgYSBiKSB0CisgICAgICAgICAgICAgICAgOzsgRmFpbGVk OyBzaWduYWwgZXJyb3IuCisgICAgICAgICAgICAgICAgKHBhY2thZ2UtLXNob3ctdmVyaWZ5LWNo ZWNrc3VtLWVycm9yCisgICAgICAgICAgICAgICAgIHBrZy1kZXNjCisgICAgICAgICAgICAgICAg IChjb25jYXQKKyAgICAgICAgICAgICAgICAgIChmb3JtYXQtbWVzc2FnZSAiXG5DaGVja3N1bSBt aXNtYXRjaCAoJXMpXG5cbiIgYWxnb3JpdGhtKQorICAgICAgICAgICAgICAgICAgKGZvcm1hdC1t ZXNzYWdlICJFeHBlY3RlZDogJXNcbiIgYSkKKyAgICAgICAgICAgICAgICAgIChmb3JtYXQtbWVz c2FnZSAiUmVzdWx0OiAlc1xuIiBiKSkpCisgICAgICAgICAgICAgICAgKHNpZ25hbCAnYmFkLWNo ZWNrc3VtIChsaXN0ICJjaGVja3N1bSBtaXNtYXRjaCIgYSBiKSkpKSkpKSkKKyAgICAocGNhc2Ug cGFja2FnZS12ZXJpZnktY2hlY2tzdW1zCisgICAgICAoJ25pbCBuaWwpCisgICAgICAoJ2FsbG93 LW1pc3NpbmcgKHdoZW4gKHBhY2thZ2UtZGVzYy1jaGVja3N1bXMgcGtnLWRlc2MpIChkby1jaGVj aykpKQorICAgICAgKCd0IChkby1jaGVjaykpCisgICAgICAoJ2FsbCAoZG8tY2hlY2sgJ2FsbCkp CisgICAgICAoXyAodXNlci1lcnJvciAiVmFsdWUgb2YgYHBhY2thZ2UtdmVyaWZ5LWNoZWNrc3Vt cycgaXMgaW52YWxpZDogYCVzJyIKKyAgICAgICAgICAgICAgICAgICAgIHBhY2thZ2UtdmVyaWZ5 LWNoZWNrc3VtcykpKSkpCisKKyhkZWZ1biBwYWNrYWdlLS12ZXJpZnktcGFja2FnZS1zaXplIChw a2ctZGVzYykKKyAgIlZlcmlmeSBwYWNrYWdlIHNpemUgb2YgYHBhY2thZ2UtZGVzYycgb2JqZWN0 IFBLRy1ERVNDLgorVGhpcyBhc3N1bWVzIHRoYXQgdGhlIHdlIGFyZSBpbiBhIGJ1ZmZlciBjb250 YWluaW5nIHBhY2thZ2UuIgorICAod2hlbi1sZXQgKChhIChwYWNrYWdlLWRlc2Mtc2l6ZSBwa2ct ZGVzYykpCisgICAgICAgICAgICAgKGIgKHN0cmluZy1ieXRlcyAoYnVmZmVyLXN0cmluZykpKSkK KyAgICAodW5sZXNzIChlcXVhbCBhIGIpCisgICAgICAoZXJyb3IgIk1pc21hdGNoIGluIHNpemUg aW4gcGFja2FnZSBgJXMnLiAgU2l6ZSB3YXMgJXMsIGJ1dCBleHBlY3RlZCAlcy4iCisgICAgICAg ICAgICAgKHBhY2thZ2UtZGVzYy1uYW1lIHBrZy1kZXNjKSBiIGEpKSkpCisKIChkZWZpbmUtZXJy b3IgJ2JhZC1zaWduYXR1cmUgIkZhaWxlZCB0byB2ZXJpZnkgc2lnbmF0dXJlIikKIAogKGRlZnVu IHBhY2thZ2UtLWNoZWNrLXNpZ25hdHVyZS1jb250ZW50IChjb250ZW50IHN0cmluZyAmb3B0aW9u YWwgc2lnLWZpbGUpCkBAIC0xNDM3LDE0ICsxNTU0LDE5IEBAIHBhY2thZ2UtLWFkZC10by1jb21w YXRpYmlsaXR5LXRhYmxlCiAgICAgICAgICAgICAgICAgKHZlcnNpb24tbGlzdC08IHRhYmxlLXZl cnNpb24gdmVyc2lvbikpCiAgICAgICAgIChwdXRoYXNoIG5hbWUgdmVyc2lvbiBwYWNrYWdlLS1j b21wYXRpYmlsaXR5LXRhYmxlKSkpKSkKIAotOzsgUGFja2FnZSBkZXNjcmlwdG9yIG9iamVjdHMg dXNlZCBpbnNpZGUgdGhlICJhcmNoaXZlLWNvbnRlbnRzIiBmaWxlLgotOzsgQ2hhbmdpbmcgdGhp cyBkZWZzdHJ1Y3QgaW1wbGllcyBjaGFuZ2luZyB0aGUgZm9ybWF0IG9mIHRoZQotOzsgImFyY2hp dmUtY29udGVudHMiIGZpbGVzLgogKGNsLWRlZnN0cnVjdCAocGFja2FnZS0tYWMtZGVzYwotICAg ICAgICAgICAgICAgKDpjb25zdHJ1Y3RvciBwYWNrYWdlLW1ha2UtYWMtZGVzYyAodmVyc2lvbiBy ZXFzIHN1bW1hcnkga2luZCBleHRyYXMpKQorICAgICAgICAgICAgICAgKDpjb25zdHJ1Y3Rvcgor ICAgICAgICAgICAgICAgIHBhY2thZ2UtbWFrZS1hYy1kZXNjICh2ZXJzaW9uIHJlcXMgc3VtbWFy eSBraW5kIGV4dHJhcyBzaXplIGNoZWNrc3VtcykpCiAgICAgICAgICAgICAgICAoOmNvcGllciBu aWwpCiAgICAgICAgICAgICAgICAoOnR5cGUgdmVjdG9yKSkKLSAgdmVyc2lvbiByZXFzIHN1bW1h cnkga2luZCBleHRyYXMpCisgICJQYWNrYWdlIGRlc2NyaXB0b3Igb2JqZWN0IHVzZWQgaW5zaWRl IHRoZSBcImFyY2hpdmUtY29udGVudHNcIiBmaWxlLgorQ2hhbmdpbmcgdGhpcyBkZWZzdHJ1Y3Qg aW1wbGllcyBjaGFuZ2luZyB0aGUgZm9ybWF0IG9mIHRoZQorXCJhcmNoaXZlLWNvbnRlbnRzXCIg ZmlsZXMuCisKK1RoaXMgaXMgbWFpbmx5IHVzZWQgaW4gYHBhY2thZ2UtLWFkZC10by1hcmNoaXZl LWNvbnRlbnRzJyB0byBtYWtlCit0aGUgY29kZSB0aGF0IHBhcnNlcyB0aGUgXCJhcmNoaXZlLWNv bnRlbnRzXCIgZmlsZSBtb3JlCityZWFkYWJsZS4iCisgIHZlcnNpb24gcmVxcyBzdW1tYXJ5IGtp bmQgZXh0cmFzIHNpemUgY2hlY2tzdW1zKQogCiAoZGVmdW4gcGFja2FnZS0tYXBwZW5kLXRvLWFs aXN0IChwa2ctZGVzYyBhbGlzdCkKICAgIkFwcGVuZCBhbiBlbnRyeSBmb3IgUEtHLURFU0MgdG8g dGhlIHN0YXJ0IG9mIEFMSVNUIGFuZCByZXR1cm4gaXQuCkBAIC0xNDgyLDEwICsxNjA0LDE0IEBA IHBhY2thZ2UtLWFkZC10by1hcmNoaXZlLWNvbnRlbnRzCiAgICAgICAgICAgIDpzdW1tYXJ5IChw YWNrYWdlLS1hYy1kZXNjLXN1bW1hcnkgKGNkciBwYWNrYWdlKSkKICAgICAgICAgICAgOmtpbmQg KHBhY2thZ2UtLWFjLWRlc2Mta2luZCAoY2RyIHBhY2thZ2UpKQogICAgICAgICAgICA6YXJjaGl2 ZSBhcmNoaXZlCisgICAgICAgICAgIDs7IE9sZGVyICJhcmNoaXZlLWNvbnRlbnRzIiBmaWxlcyBt aWdodCBub3QgaGF2ZSB0aGUKKyAgICAgICAgICAgOzsgYmVsb3cgZWxlbWVudHMuCiAgICAgICAg ICAgIDpleHRyYXMgKGFuZCAoPiAobGVuZ3RoIChjZHIgcGFja2FnZSkpIDQpCi0gICAgICAgICAg ICAgICAgICAgICAgICA7OyBPbGRlciBhcmNoaXZlLWNvbnRlbnRzIGZpbGVzIGhhdmUgb25seSA0 Ci0gICAgICAgICAgICAgICAgICAgICAgICA7OyBlbGVtZW50cyBoZXJlLgotICAgICAgICAgICAg ICAgICAgICAgICAgKHBhY2thZ2UtLWFjLWRlc2MtZXh0cmFzIChjZHIgcGFja2FnZSkpKSkpCisg ICAgICAgICAgICAgICAgICAgICAgICAocGFja2FnZS0tYWMtZGVzYy1leHRyYXMgKGNkciBwYWNr YWdlKSkpCisgICAgICAgICAgIDpzaXplIChhbmQgKD4gKGxlbmd0aCAoY2RyIHBhY2thZ2UpKSA1 KQorICAgICAgICAgICAgICAgICAgICAgIChwYWNrYWdlLS1hYy1kZXNjLXNpemUgKGNkciBwYWNr YWdlKSkpCisgICAgICAgICAgIDpjaGVja3N1bXMgKGFuZCAoPiAobGVuZ3RoIChjZHIgcGFja2Fn ZSkpIDYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFja2FnZS0tYWMtZGVzYy1jaGVj a3N1bXMgKGNkciBwYWNrYWdlKSkpKSkKICAgICAgICAgIChwaW5uZWQtdG8tYXJjaGl2ZSAoYXNz b2MgbmFtZSBwYWNrYWdlLXBpbm5lZC1wYWNrYWdlcykpKQogICAgIDs7IFNraXAgZW50aXJlbHkg aWYgcGlubmVkIHRvIGFub3RoZXIgYXJjaGl2ZS4KICAgICAod2hlbiAobm90IChhbmQgcGlubmVk LXRvLWFyY2hpdmUKQEAgLTE5NTYsOSArMjA4MiwxMCBAQCBwYWNrYWdlLWluc3RhbGwtZnJvbS1h cmNoaXZlCiAgICh3aGVuIChlcSAocGFja2FnZS1kZXNjLWtpbmQgcGtnLWRlc2MpICdkaXIpCiAg ICAgKGVycm9yICJDYW4ndCBpbnN0YWxsIGRpcmVjdG9yeSBwYWNrYWdlIGZyb20gYXJjaGl2ZSIp KQogICAobGV0KiAoKGxvY2F0aW9uIChwYWNrYWdlLWFyY2hpdmUtYmFzZSBwa2ctZGVzYykpCi0g ICAgICAgICAoZmlsZSAoY29uY2F0IChwYWNrYWdlLWRlc2MtZnVsbC1uYW1lIHBrZy1kZXNjKQot ICAgICAgICAgICAgICAgICAgICAgICAocGFja2FnZS1kZXNjLXN1ZmZpeCBwa2ctZGVzYykpKSkK KyAgICAgICAgIChmaWxlIChwYWNrYWdlLWRlc2MtZmlsZW5hbWUgcGtnLWRlc2MpKSkKICAgICAo cGFja2FnZS0td2l0aC1yZXNwb25zZS1idWZmZXIgbG9jYXRpb24gOmZpbGUgZmlsZQorICAgICAg KHBhY2thZ2UtLXZlcmlmeS1wYWNrYWdlLXNpemUgcGtnLWRlc2MpCisgICAgICAocGFja2FnZS0t dmVyaWZ5LXBhY2thZ2UtY2hlY2tzdW0gcGtnLWRlc2MpCiAgICAgICAoaWYgKG9yIChub3QgKHBh Y2thZ2UtY2hlY2stc2lnbmF0dXJlKSkKICAgICAgICAgICAgICAgKG1lbWJlciAocGFja2FnZS1k ZXNjLWFyY2hpdmUgcGtnLWRlc2MpCiAgICAgICAgICAgICAgICAgICAgICAgcGFja2FnZS11bnNp Z25lZC1hcmNoaXZlcykpCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZW1hY3MtbGlzcC9wYWNrYWdl LXJlc291cmNlcy9hcmNoaXZlLWNvbnRlbnRzIGIvdGVzdC9saXNwL2VtYWNzLWxpc3AvcGFja2Fn ZS1yZXNvdXJjZXMvYXJjaGl2ZS1jb250ZW50cwppbmRleCBlMmY5MjMwNGY4Li5iNDEyODdhZTg5 IDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvZW1hY3MtbGlzcC9wYWNrYWdlLXJlc291cmNlcy9hcmNo aXZlLWNvbnRlbnRzCisrKyBiL3Rlc3QvbGlzcC9lbWFjcy1saXNwL3BhY2thZ2UtcmVzb3VyY2Vz L2FyY2hpdmUtY29udGVudHMKQEAgLTE0LDQgKzE0LDI4IEBACiAgKG11bHRpLWZpbGUgLgogICAg ICAgICAgICAgIFsoMCAyIDMpCiAgICAgICAgICAgICAgIG5pbCAiRXhhbXBsZSBvZiBhIG11bHRp LWZpbGUgdGFyIHBhY2thZ2UiIHRhcgotICAgICAgICAgICAgICAoKDp1cmwgLiAiaHR0cDovL3B1 ZGRsZXMubGkiKSldKSkKKyAgICAgICAgICAgICAgKCg6dXJsIC4gImh0dHA6Ly9wdWRkbGVzLmxp IikpXSkKKyAoY2hlY2tzdW0tdmFsaWQgIC4KKyAgICAgICAgICAgICAgICAgIFsoMTIzKQorICAg ICAgICAgICAgICAgICAgICBuaWwgIkEgc2luZ2xlLWZpbGUgcGFja2FnZSB3aXRoIGEgdmFsaWQg Y2hlY2tzdW0uIiBzaW5nbGUKKyAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAgICAgICAg ICAgICAgIDM0MworICAgICAgICAgICAgICAgICAgICAoKHNoYTUxMiAuICI2MjcwZDY0ZDYzYzkw ZWY1NDFjMzM4NmM0MGFjYjc3MTY4NjU0OTljNTA2NDY1ZjJmZjliNDA4ZjA1YzY2MTJmYjBjNThm NWQ4M2I2MGFmOWQ3ZjhkOTcyNzk2ZWUyNzBkMGJjNmNhOGExN2JkMDQxMmNjMjQ5ZGVkZTZmNzM1 OSIpKV0pCisgKGNoZWNrc3VtLXZhbGlkLXRhciAuCisgICAgICAgICAgICAgICAgICAgICBbKDAg OTkpCisgICAgICAgICAgICAgICAgICAgICBuaWwgIkEgbXVsdGktZmlsZSBwYWNrYWdlIHdpdGgg YSB2YWxpZCBjaGVja3N1bS4iIHRhcgorICAgICAgICAgICAgICAgICAgICAgbmlsCisgICAgICAg ICAgICAgICAgICAgICAxMDI0MAorICAgICAgICAgICAgICAgICAgICAgKChzaGE1MTIgLiAiMmJl N2MzN2ExNmRiMzJhMmIwOGZjOTE3ZWQ1ZjQyNDE4MTRlMjY2NWJkYTFiZDE1MzI4YzJlNWE4NDJl NDViODFmNmYzMTI3NDY5NzI0OGZmYWFiZjgwMTA3OTY2ODVhY2IzMzQyYzU5MjBhZjUzZGRkMWU3 NWQ3ZmQ3NjRiZDEiKSldKQorIChjaGVja3N1bS1pbnZhbGlkIC4KKyAgICAgICAgICAgICAgICAg ICBbKDEgMCkKKyAgICAgICAgICAgICAgICAgICAgbmlsICJBIHNpbmdsZS1maWxlIHBhY2thZ2Ug d2l0aCBhbiBpbnZhbGlkIGNoZWNrc3VtLiIgc2luZ2xlCisgICAgICAgICAgICAgICAgICAgIG5p bAorICAgICAgICAgICAgICAgICAgICAzNjUKKyAgICAgICAgICAgICAgICAgICAgKChzaGE1MTIg LiAibm90LWEtdmFsaWQtY2hlY2tzdW0iKSldKQorIChjaGVja3N1bS1pbnZhbGlkLXRhciAuCisg ICAgICAgICAgICAgICAgICAgICAgIFsoMCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgbmls ICJBIG11bHRpLWZpbGUgcGFja2FnZSB3aXRoIGFuIGludmFsaWQgY2hlY2tzdW0uIiB0YXIKKyAg ICAgICAgICAgICAgICAgICAgICAgIG5pbAorICAgICAgICAgICAgICAgICAgICAgICAgMTAyNDAK KyAgICAgICAgICAgICAgICAgICAgICAgICgoc2hhNTEyIC4gIm5vdC1hLXZhbGlkLWNoZWNrc3Vt IikpXSkpCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZW1hY3MtbGlzcC9wYWNrYWdlLXJlc291cmNl cy9jaGVja3N1bS1pbnZhbGlkLTEuMC5lbCBiL3Rlc3QvbGlzcC9lbWFjcy1saXNwL3BhY2thZ2Ut cmVzb3VyY2VzL2NoZWNrc3VtLWludmFsaWQtMS4wLmVsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAuLjNiOGIwN2E0YjgKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0L2xpc3Av ZW1hY3MtbGlzcC9wYWNrYWdlLXJlc291cmNlcy9jaGVja3N1bS1pbnZhbGlkLTEuMC5lbApAQCAt MCwwICsxLDE3IEBACis7OzsgaW52YWxpZC1jaGVja3N1bS5lbCAtLS0gQSBwYWNrYWdlIHdpdGgg YW4gaW52YWxpZCBjaGVja3N1bSBpbiBhcmNoaXZlLWNvbnRlbnRzCisKKzs7IFZlcnNpb246IDEu MAorCis7OzsgQ29tbWVudGFyeToKKworOzsgVGhpcyBwYWNrYWdlIGhhcyBhbiBpbnZhbGlkIGNo ZWNrc3VtIGluIGFyY2hpdmUtY29udGVudHMgYW5kIGlzCis7OyBqdXN0IHVzZWQgdG8gdmVyaWZ5 IHRoYXQgcGFja2FnZS5lbCByZWZ1c2VzIHRvIGluc3RhbGwuCisKKzs7OyBDb2RlOgorCisoZGVm dW4gcC1lcXVhbC10by1ucC1wICgpCisgIChlcnJvciAiRklYTUUiKSkKKworKHByb3ZpZGUgJ2lu dmFsaWQtY2hlY2tzdW0pCisKKzs7OyBpbnZhbGlkLWNoZWNrc3VtLmVsIGVuZHMgaGVyZQpkaWZm IC0tZ2l0IGEvdGVzdC9saXNwL2VtYWNzLWxpc3AvcGFja2FnZS1yZXNvdXJjZXMvY2hlY2tzdW0t aW52YWxpZC10YXItMC4xLnRhciBiL3Rlc3QvbGlzcC9lbWFjcy1saXNwL3BhY2thZ2UtcmVzb3Vy Y2VzL2NoZWNrc3VtLWludmFsaWQtdGFyLTAuMS50YXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjE1M2ViMzY2YjEy NjRjMjkzMzI3YzA4YzUwNzg3Njk0MzU3MjUzMwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTAy NDAKemNtZUl3djJLR2Y1QyZrK2Q1WVVRTDJhPFpHaTJgem9XT3ZFVj04UFM8P1U7djM+fUlwcTcw UyMte1JyeSF+VEJTCnooWTh9dXVaMFVZX08yQHVGTkd9Q3lMZXM2VCNZZHpGUkMlfWA/fEhaNX4/ PVpuNUlAfEV1PUQpUilXbXl1Q1BDOAp6anJxa3lCMkY5emo9TEx3PitjQD8rbF9XRnxEUEpBXzBQ TyEzOzMqYXR+PmR3eF9SV1VPfDI+K0RgZ3JmTkl2dGkKenFpNm5re3ZWXkliYEhzZzZsdn0kalZ7 dEJ3LVhQUnk0bDk/bWd2ZVUqYCsqUDYyKTt8ZU1kYnpQd1dAVi1KTGttCnolYFVGTHlEO1BkZEVu IXhEbztuI3o8dmxvMDBJenowMGJaYTBTR188MHVYPXoxUnd3YjJ0V1Y9NVAkIyNBT0hhZgpUS21Z O3xmQip5XzAwOVU8O0RFcHZxb2lRPAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0 IGEvdGVzdC9saXNwL2VtYWNzLWxpc3AvcGFja2FnZS1yZXNvdXJjZXMvY2hlY2tzdW0tdmFsaWQt MTIzLmVsIGIvdGVzdC9saXNwL2VtYWNzLWxpc3AvcGFja2FnZS1yZXNvdXJjZXMvY2hlY2tzdW0t dmFsaWQtMTIzLmVsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjk2MTFm ZDhjODcKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9wYWNrYWdlLXJl c291cmNlcy9jaGVja3N1bS12YWxpZC0xMjMuZWwKQEAgLTAsMCArMSwxNyBAQAorOzs7IHZhbGlk LWNoZWNrc3VtLmVsIC0tLSBBIHBhY2thZ2Ugd2l0aCBhbiB2YWxpZCBjaGVja3N1bSBpbiBhcmNo aXZlLWNvbnRlbnRzCisKKzs7IFZlcnNpb246IDEyMworCis7OzsgQ29tbWVudGFyeToKKworOzsg VGhpcyBwYWNrYWdlIGhhcyBhbiB2YWxpZCBjaGVja3N1bSBpbiBhcmNoaXZlLWNvbnRlbnRzIGFu ZCBpcworOzsgdXNlZCB0byB2ZXJpZnkgdGhhdCBwYWNrYWdlLmVsIGluc3RhbGxzIGl0LgorCis7 OzsgQ29kZToKKworKGRlZnVuIHAtZXF1YWwtdG8tbnAtcCAoKQorICAoZXJyb3IgIkZJWE1FIikp CisKKyhwcm92aWRlICd2YWxpZC1jaGVja3N1bSkKKworOzs7IHZhbGlkLWNoZWNrc3VtLmVsIGVu ZHMgaGVyZQpkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL2VtYWNzLWxpc3AvcGFja2FnZS1yZXNvdXJj ZXMvY2hlY2tzdW0tdmFsaWQtdGFyLTAuOTkudGFyIGIvdGVzdC9saXNwL2VtYWNzLWxpc3AvcGFj a2FnZS1yZXNvdXJjZXMvY2hlY2tzdW0tdmFsaWQtdGFyLTAuOTkudGFyCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0 Njg3NTRiYjk0ZDk2YTA0N2RmN2E1YzU5MjZlYjFkMDY1ZTM2M2YKR0lUIGJpbmFyeSBwYXRjaAps aXRlcmFsIDEwMjQwCnpjbWVITFU2MHkyNWFvRykjVjlXWVgjKXZNc0xFRFg7X2loT1grSUZLWlRI YjYxNlo1Ynh3WnI0LWB7Y2c9dzFPXgp6d2MzP2gpZSN+UCtjVj5IWDNpTW0xOyZyTSRvd1RzZEV5 KFV7R2s1c1U4Q31YUzN1WD5ENX1zY2Q+YUslP3s+JnUKem1HQn5KTU52QyFoMyFmWk1uTT08QWJQ PFZQTVJ0LT9IUW49QUROZ2xlUkFJUyMhb0sld0ZseDh7RXZGd2V7T20mCno2VDJuMi1EKkFNZVV9 R3poYDVnU3s4SnVTe0BkK2wxJWo3eHxHYnF5b2QzeSFZb0hme0RPMmNBcjljZXxTJnx7bAp6Y3VI P2xmbXQ5TkNKTiolZXE/ajNwRk5NVDh+dWU1SUhZeD58QSlgKG5FdkVHWT5odXR8SU9me3dYZ3Er dXZyUDMKekF2RndGfDMzLSQ0PXVhQXlnWDljIzVNVDc1NTJEfSVTaTt9ajBFQl5DQlV9TXRxUG8t ayk8bnt1Tjl2ITN7PGFiCnomPHcmUl5jNW5FPDs8KXxVIVg0d2t1YnhoSUVSNlY+KmNFOU1uXmhG SlhvV2pQLSRBdzBlZGhoN25HdF5zdUwrIQp6Jlhsbk1lej83ZFVkQ2QqRn1uWTEpb29eaihBeXc3 dSRCZUhPcHdrY1RwUHV3ZyticzNtYEVCVmNiUUUxWTs5ZkIKekdsfn5DM1RSTWUrSXE1Ylh3ODI+ ZnJfT3RFVCQ9cztoTSlOR3k8Y1Q+PVY3ZjFnNTFPeVcldHUkWjFAYGE8Zm1rCnoqIWtFUkpPYDw0 RmpaITM8TypiTjBqeUVEWWUqU3x3T2V7Kj1pZkclMDJnS0czejtLKkFaeFV9NjtEJWBBYH17RAp6 TVM1PWk1RX00I0YhXnxRS1l7TTsxQU9qfE0lfi1WIXpFMk4zclZCNiNFbUlWKn0tWC0jSTBoJnRT Tkc5O2lmbWIKemBiYk48ZS1FdylsTHZ8KWBoJkBCWiM7KG4tM1lvYz8yYWFidE5aS2oyIXs4Zztv WjFiMk4pQWExY1d2NDQ3Iz0tCnpXcypgVUxCbnt1VyY0MmApZjhLcno9QUUybjJuSnlES2JpMSVF PXZ+cnxudj1FUnx3alp0X1ZvMFNzbSFxJld2bwp6QHg1T2RsWG5gOClvTjlyaT1yO295Z31Tcy1n Vj16NWBTOS1TJSFqWVc4THxkdTlTcn4zbz1HNWwmUU4tQj00fVMKenlqQE4wP0lsUS1zdEhqZkFv dWEjZn5DSFp6UjNMP3M8a3RLRGs/PzVjPlRlYm8xUnl6KGQ9QndCfks5RTk2RiVrCnooeyt5YChM bmkjdUM0ISZsSyE1UDUwbTMpfElaKWl1aCMjQVgzKmFFZT54MG9gYWt7dGJMYW9wJm5ZVl5UJWY9 MAp6OyY0PXNKbGxDYUBjd3JrJGNvZih6bSYyayRBRkR8bVZZTWYrcW5tVnJ6QkZITFojcXM2Kk1v QkJ0PjBNeG1SO2EKeV5aRzxQNC1OcmBmSjQ5YDsxRjtLSTBQSTU0Z3JVTkwlPD42NU80QE0xUk1l bTBmJkc/eiM7SFFBQENtJmEyV0ZkCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQg YS90ZXN0L2xpc3AvZW1hY3MtbGlzcC9wYWNrYWdlLXRlc3RzLmVsIGIvdGVzdC9saXNwL2VtYWNz LWxpc3AvcGFja2FnZS10ZXN0cy5lbAppbmRleCBmNDUwZmQyN2MyLi44MjNiNjhiMjM0IDEwMDY0 NAotLS0gYS90ZXN0L2xpc3AvZW1hY3MtbGlzcC9wYWNrYWdlLXRlc3RzLmVsCisrKyBiL3Rlc3Qv bGlzcC9lbWFjcy1saXNwL3BhY2thZ2UtdGVzdHMuZWwKQEAgLTQzLDYgKzQzLDkgQEAKIAogKHNl dHEgcGFja2FnZS1tZW51LWFzeW5jIG5pbCkKIAorOzsgU2lsZW5jZSBieXRlLWNvbXBpbGVyLgor KGRlZnZhciBlcGctY29uZmlnLS1wcm9ncmFtLWFsaXN0KQorCiAoZGVmdmFyIHBhY2thZ2UtdGVz dC11c2VyLWRpciBuaWwKICAgIkRpcmVjdG9yeSB0byB1c2UgZm9yIGluc3RhbGxpbmcgcGFja2Fn ZXMgZHVyaW5nIHRlc3RpbmcuIikKIApAQCAtMjk2LDE0ICsyOTksMTUgQEAgcGFja2FnZS10ZXN0 LXJlZnJlc2gtY29udGVudHMKICAgKHdpdGgtcGFja2FnZS10ZXN0ICgpCiAgICAgKHBhY2thZ2Ut aW5pdGlhbGl6ZSkKICAgICAocGFja2FnZS1yZWZyZXNoLWNvbnRlbnRzKQotICAgIChzaG91bGQg KGVxIDQgKGxlbmd0aCBwYWNrYWdlLWFyY2hpdmUtY29udGVudHMpKSkpKQorICAgIChzaG91bGQg KGVxIDggKGxlbmd0aCBwYWNrYWdlLWFyY2hpdmUtY29udGVudHMpKSkpKQogCiAoZXJ0LWRlZnRl c3QgcGFja2FnZS10ZXN0LWluc3RhbGwtc2luZ2xlLWZyb20tYXJjaGl2ZSAoKQogICAiSW5zdGFs bCBhIHNpbmdsZSBwYWNrYWdlIGZyb20gYSBwYWNrYWdlIGFyY2hpdmUuIgogICAod2l0aC1wYWNr YWdlLXRlc3QgKCkKICAgICAocGFja2FnZS1pbml0aWFsaXplKQogICAgIChwYWNrYWdlLXJlZnJl c2gtY29udGVudHMpCi0gICAgKHBhY2thZ2UtaW5zdGFsbCAnc2ltcGxlLXNpbmdsZSkpKQorICAg IChwYWNrYWdlLWluc3RhbGwgJ3NpbXBsZS1zaW5nbGUpCisgICAgKHNob3VsZCAocGFja2FnZS1p bnN0YWxsZWQtcCAnc2ltcGxlLXNpbmdsZSkpKSkKIAogKGVydC1kZWZ0ZXN0IHBhY2thZ2UtdGVz dC1pbnN0YWxsLXByaW9yaXRpemVkICgpCiAgICJJbnN0YWxsIGEgbG93ZXIgdmVyc2lvbiBmcm9t IGEgaGlnaGVyLXByaW9yaXRpemVkIGFyY2hpdmUuIgpAQCAtNTU3LDYgKzU2MSwxNjcgQEAgcGFj a2FnZS10ZXN0LXNpZ25lZAogCQkiU3RhdHVzOiBJbnN0YWxsZWQgaW4gWydg4oCYXXNpZ25lZC1n b29kLTEuMC9bJ+KAmV0uIgogCQluaWwgdCkpKSkpKQogCisMCis7OzsgVGVzdHMgZm9yIHBhY2th Z2UgY2hlY2tzdW0gdmVyaWZpY2F0aW9uLgorCisoZGVmbWFjcm8gd2l0aC1pbnN0YWxsLXVzaW5n LWNoZWNrc3VtIChvayBmYWlsIHBhY2thZ2UgJnJlc3QgYm9keSkKKyAgIlRlc3QgaW5zdGFsbGlu ZyBQQUNLQUdFIHdoaWxlIHNldHRpbmcgYHBhY2thZ2UtdmVyaWZ5LWNoZWNrc3VtcycuIgorICAo ZGVjbGFyZSAoaW5kZW50IDIpKQorICBgKHByb2duCisgICAgIChkb2xpc3QgKG9wdCAsb2spCisg ICAgICAgKGxldCAoKHBhY2thZ2UtdmVyaWZ5LWNoZWNrc3VtcyBvcHQpKQorICAgICAgICAgKHdp dGgtcGFja2FnZS10ZXN0ICgpCisgICAgICAgICAgIChwYWNrYWdlLWluaXRpYWxpemUpCisgICAg ICAgICAgIChwYWNrYWdlLXJlZnJlc2gtY29udGVudHMpCisgICAgICAgICAgIChwYWNrYWdlLWlu c3RhbGwgLHBhY2thZ2UpCisgICAgICAgICAgIChwYWNrYWdlLWluc3RhbGxlZC1wICxwYWNrYWdl KSkpKQorICAgICAoZG9saXN0IChvcHQgLGZhaWwpCisgICAgICAgKGxldCAoKHBhY2thZ2UtdmVy aWZ5LWNoZWNrc3VtcyBvcHQpKQorICAgICAgICAgKHNob3VsZC1lcnJvcgorICAgICAgICAgICh3 aXRoLXBhY2thZ2UtdGVzdCAoKQorICAgICAgICAgICAgKHBhY2thZ2UtaW5pdGlhbGl6ZSkKKyAg ICAgICAgICAgIChwYWNrYWdlLXJlZnJlc2gtY29udGVudHMpCisgICAgICAgICAgICAocGFja2Fn ZS1pbnN0YWxsICxwYWNrYWdlKSkKKyAgICAgICAgICA6dHlwZSAnYmFkLWNoZWNrc3VtKSkpKSkK KworKGVydC1kZWZ0ZXN0IHBhY2thZ2UtdGVzdC1pbnN0YWxsLXdpdGgtY2hlY2tzdW0vc2luZ2xl LXZhbGlkICgpCisgICJJbnN0YWxsIGEgc2luZ2xlIHBhY2thZ2Ugd2l0aCB2YWxpZCBjaGVja3N1 bS4iCisgICh3aXRoLWluc3RhbGwtdXNpbmctY2hlY2tzdW0gJyhuaWwgYWxsb3ctbWlzc2luZyB0 IGFsbCkgJygpICdjaGVja3N1bS12YWxpZCkpCisKKyhlcnQtZGVmdGVzdCBwYWNrYWdlLXRlc3Qt aW5zdGFsbC13aXRoLWNoZWNrc3VtL3NpbmdsZS1pbnZhbGlkICgpCisgICJJbnN0YWxsIGEgdGFy IHBhY2thZ2Ugd2l0aCBpbnZhbGlkIGNoZWNrc3VtLiIKKyAgKHdpdGgtaW5zdGFsbC11c2luZy1j aGVja3N1bSAnKG5pbCkgJyhhbGxvdy1taXNzaW5nIHQgYWxsKSAnY2hlY2tzdW0taW52YWxpZCkp CisKKyhlcnQtZGVmdGVzdCBwYWNrYWdlLXRlc3QtaW5zdGFsbC13aXRoLWNoZWNrc3VtL3Rhci12 YWxpZCAoKQorICAiSW5zdGFsbCBhIHRhciBwYWNrYWdlIHdpdGggdmFsaWQgY2hlY2tzdW0uIgor ICAod2l0aC1pbnN0YWxsLXVzaW5nLWNoZWNrc3VtICcobmlsIGFsbG93LW1pc3NpbmcgdCBhbGwp ICcoKSAnY2hlY2tzdW0tdmFsaWQtdGFyKSkKKworKGVydC1kZWZ0ZXN0IHBhY2thZ2UtdGVzdC1p bnN0YWxsLXdpdGgtY2hlY2tzdW0vdGFyLWludmFsaWQgKCkKKyAgIkluc3RhbGwgYSB0YXIgcGFj a2FnZSB3aXRoIGludmFsaWQgY2hlY2tzdW0uIgorICAod2l0aC1pbnN0YWxsLXVzaW5nLWNoZWNr c3VtICcobmlsKSAnKGFsbG93LW1pc3NpbmcgdCBhbGwpICdjaGVja3N1bS1pbnZhbGlkLXRhcikp CisKKyhkZWZjb25zdCBwYWNrYWdlLXRlc3QtdmVyaWZpY2F0aW9uLXRleHQKKyAgIkV4YW1wbGUg dGV4dCBmb3IgdGVzdGluZyBjaGVja3N1bSB2ZXJpZmljYXRpb24uIikKKyhkZWZjb25zdCBwYWNr YWdlLXRlc3RzLXZhbGlkLW1kNS1jaGVja3N1bQorICA7OyAoc2VjdXJlLWhhc2ggJ21kNSBwYWNr YWdlLXRlc3QtdmVyaWZpY2F0aW9uLXRleHQpCisgICJhYmU2Mzc1ODA5ZTUzMmYwODFiODA4YjNh YTA1MmRmYiIpCisoZGVmY29uc3QgcGFja2FnZS10ZXN0cy12YWxpZC1zaGEyNTYtY2hlY2tzdW0K KyAgOzsgKHNlY3VyZS1oYXNoICdzaGEyNTYgcGFja2FnZS10ZXN0LXZlcmlmaWNhdGlvbi10ZXh0 KQorICAiNjg3NWFhNDUyM2U0NWRkZWY2MjdiNGVkZjEyOTZmMWQ3ZGQwYzIyZGRkNmE2NTg0ZjAy MjgyMTVkMjVlZWZjZCIpCisoZGVmY29uc3QgcGFja2FnZS10ZXN0cy12YWxpZC1zaGE1MTItY2hl Y2tzdW0KKyAgOzsgKHNlY3VyZS1oYXNoICdzaGE1MTIgcGFja2FnZS10ZXN0LXZlcmlmaWNhdGlv bi10ZXh0KQorICAoY29uY2F0ICJiZGM2MzFmOWU2NzViMWVhMzQ1NzBmMGE0YmI0NDU2OGRjNWNl Y2FjOTA1ZWVhNzM3ZjVmNDUxYmM1MmZkMGM2IgorICAgICAgICAgICI4MWIwZDhiM2RjMmE5NDJi OTk1MGZiZTkwOTZlYmRmNTE3NjY4MjQ1YzliNWE3YmJkZWE4NDg3YThmOWNkY2U2IikpCisKKyhk ZWZtYWNybyBydW4tdmVyaWZ5LWNoZWNrc3Vtcy10ZXN0ICh2ZXJpZnktY2hlY2tzdW1zIGNoZWNr c3VtcykKKyAgIlJ1biBhIHRlc3QgZm9yIGBwYWNrYWdlLXZlcmlmeS1jaGVja3N1bXMnLiIKKyAg KGRlY2xhcmUgKGluZGVudCAxKSkKKyAgYCh3aXRoLXRlbXAtYnVmZmVyCisgICAgIChpbnNlcnQg cGFja2FnZS10ZXN0LXZlcmlmaWNhdGlvbi10ZXh0KQorICAgICAobGV0ICgocGFja2FnZS12ZXJp ZnktY2hlY2tzdW1zICx2ZXJpZnktY2hlY2tzdW1zKQorICAgICAgICAgICAocGtnIChwYWNrYWdl LWRlc2MtY3JlYXRlIDpuYW1lICdmb29iYXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDp2ZXJzaW9uICcoMSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOnN1bW1hcnkg Ikp1c3QgYSBwYWNrYWdlIHdpdGggY2hlY2tzdW0uIgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOmtpbmQgJ3NpbmdsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNoZWNr c3VtcyAsY2hlY2tzdW1zKSkpCisgICAgICAgKHBhY2thZ2UtLXZlcmlmeS1wYWNrYWdlLWNoZWNr c3VtIHBrZykpKSkKKworKGVydC1kZWZ0ZXN0IHBhY2thZ2UtdGVzdC0tdmVyaWZ5LXBhY2thZ2Ut Y2hlY2tzdW1zLW5pbC9pZ25vcmUtaW52YWxpZCAoKQorICAiSWdub3JlIGFsbCBjaGVja3N1bXMg ZXZlbiB3aGVuIGludmFsaWQuIgorICAocnVuLXZlcmlmeS1jaGVja3N1bXMtdGVzdCBuaWwKKyAg ICAnKChzaGE1MTIgLiAiaW52YWxpZCIpCisgICAgICAoaW52YWxpZCAuICJpbnZhbGlkIikpKSkK KworKGVydC1kZWZ0ZXN0IHBhY2thZ2UtdGVzdC0tdmVyaWZ5LXBhY2thZ2UtY2hlY2tzdW1zLW5p bC9pZ25vcmUtZW1wdHkgKCkKKyAgIklnbm9yZSBhbGwgY2hlY2tzdW1zIGV2ZW4gd2hlbiBlbXB0 eS4iCisgIChydW4tdmVyaWZ5LWNoZWNrc3Vtcy10ZXN0IG5pbAorICAgIG5pbCkpCisKKyhlcnQt ZGVmdGVzdCBwYWNrYWdlLXRlc3QtLXZlcmlmeS1wYWNrYWdlLWNoZWNrc3Vtcy1hbGxvdy1taXNz aW5nICgpCisgICJWZXJpZnkgY2hlY2tzdW1zIChhbGxvdy1taXNzaW5nKSAtLSB2ZXJpZnkgaWYg YXZhaWxhYmxlLiIKKyAgKHJ1bi12ZXJpZnktY2hlY2tzdW1zLXRlc3QgJ2FsbG93LW1pc3NpbmcK KyAgICBgKChzaGE1MTIgLiAscGFja2FnZS10ZXN0cy12YWxpZC1zaGE1MTItY2hlY2tzdW0pKSkp CisKKyhlcnQtZGVmdGVzdCBwYWNrYWdlLXRlc3QtLXZlcmlmeS1wYWNrYWdlLWNoZWNrc3Vtcy1h bGxvdy1taXNzaW5nL21pc3NpbmcgKCkKKyAgIlZlcmlmeSBjaGVja3N1bXMgKGFsbG93LW1pc3Np bmcpIC0tIGFsbG93IG1pc3NpbmcuIgorICAocnVuLXZlcmlmeS1jaGVja3N1bXMtdGVzdCAnYWxs b3ctbWlzc2luZworICAgIG5pbCkpCisKKyhlcnQtZGVmdGVzdCBwYWNrYWdlLXRlc3QtLXZlcmlm eS1wYWNrYWdlLWNoZWNrc3Vtcy1hbGxvdy1taXNzaW5nL2lnbm9yZS11bnN1cHBvcnRlZCAoKQor ICAiVmVyaWZ5IGNoZWNrc3VtcyAodCkgLS0gaWdub3JlIHVuc3VwcG9ydGVkIGFsZ29yaXRobS4i CisgIChydW4tdmVyaWZ5LWNoZWNrc3Vtcy10ZXN0ICdhbGxvdy1taXNzaW5nCisgICAgYCgoaWdu b3JlIC4gIm5vdCBzdXBwb3J0ZWQiKQorICAgICAgKHNoYTUxMiAuICxwYWNrYWdlLXRlc3RzLXZh bGlkLXNoYTUxMi1jaGVja3N1bSkpKSkKKworKGVydC1kZWZ0ZXN0IHBhY2thZ2UtdGVzdC0tdmVy aWZ5LXBhY2thZ2UtY2hlY2tzdW1zLXQgKCkKKyAgIlZlcmlmeSBjaGVja3N1bXMgKHQpIC0tIHN1 Y2NlZWQgd2hlbiB2YWxpZC4iCisgIChydW4tdmVyaWZ5LWNoZWNrc3Vtcy10ZXN0IHQKKyAgICBg KChzaGE1MTIgLiAscGFja2FnZS10ZXN0cy12YWxpZC1zaGE1MTItY2hlY2tzdW0pKSkpCisKKyhl cnQtZGVmdGVzdCBwYWNrYWdlLXRlc3QtLXZlcmlmeS1wYWNrYWdlLWNoZWNrc3Vtcy10L2ludmFs aWQtZmFpbHMgKCkKKyAgIlZlcmlmeSBjaGVja3N1bXMgKHQpIC0tIGZhaWwgb24gaW52YWxpZC4i CisgIChzaG91bGQtZXJyb3IKKyAgIChydW4tdmVyaWZ5LWNoZWNrc3Vtcy10ZXN0IHQKKyAgICAg Jygoc2hhNTEyIC4gImludmFsaWQiKSkpCisgICA6dHlwZSAnYmFkLWNoZWNrc3VtKSkKKworKGVy dC1kZWZ0ZXN0IHBhY2thZ2UtdGVzdC0tdmVyaWZ5LXBhY2thZ2UtY2hlY2tzdW1zLXQvbWlzc2lu Zy1mYWlscyAoKQorICAiVmVyaWZ5IGNoZWNrc3VtcyAodCkgLS0gZmFpbCBvbiBtaXNzaW5nLiIK KyAgKHNob3VsZC1lcnJvcgorICAgKHJ1bi12ZXJpZnktY2hlY2tzdW1zLXRlc3QgdAorICAgICBu aWwpCisgICA6dHlwZSAnYmFkLWNoZWNrc3VtKSkKKworKGVydC1kZWZ0ZXN0IHBhY2thZ2UtdGVz dC0tdmVyaWZ5LXBhY2thZ2UtY2hlY2tzdW1zLXQvaWdub3JlLXVuc3VwcG9ydGVkICgpCisgICJW ZXJpZnkgY2hlY2tzdW1zICh0KSAtLSBpZ25vcmUgdW5zdXBwb3J0ZWQgYWxnb3JpdGhtLiIKKyAg KHJ1bi12ZXJpZnktY2hlY2tzdW1zLXRlc3QgdAorICAgIGAoKGlnbm9yZSAuICJub3Qgc3VwcG9y dGVkIikKKyAgICAgIChzaGE1MTIgLiAscGFja2FnZS10ZXN0cy12YWxpZC1zaGE1MTItY2hlY2tz dW0pKSkpCisKKyhlcnQtZGVmdGVzdCBwYWNrYWdlLXRlc3QtLXZlcmlmeS1wYWNrYWdlLWNoZWNr c3Vtcy1hbGwgKCkKKyAgIlZlcmlmeSBjaGVja3N1bXMgKGFsbCkgLS0gc3VjY2VlZCBvbiB2YWxp ZC4iCisgIChydW4tdmVyaWZ5LWNoZWNrc3Vtcy10ZXN0ICdhbGwKKyAgICBgKChtZDUgICAgLiAs cGFja2FnZS10ZXN0cy12YWxpZC1tZDUtY2hlY2tzdW0pCisgICAgICAoc2hhMjU2IC4gLHBhY2th Z2UtdGVzdHMtdmFsaWQtc2hhMjU2LWNoZWNrc3VtKQorICAgICAgKHNoYTUxMiAuICxwYWNrYWdl LXRlc3RzLXZhbGlkLXNoYTUxMi1jaGVja3N1bSkpKSkKKworKGVydC1kZWZ0ZXN0IHBhY2thZ2Ut dGVzdC0tdmVyaWZ5LXBhY2thZ2UtY2hlY2tzdW1zLWFsbC9pbnZhbGlkLWZhaWxzICgpCisgICJW ZXJpZnkgY2hlY2tzdW1zIChhbGwpIC0tIGZhaWwgaWYgb25lIGNoZWNrc3VtIGlzIGludmFsaWQu IgorICAoc2hvdWxkLWVycm9yCisgICAocnVuLXZlcmlmeS1jaGVja3N1bXMtdGVzdCAnYWxsCisg ICAgIGAoKG1kNSAgICAuICxwYWNrYWdlLXRlc3RzLXZhbGlkLW1kNS1jaGVja3N1bSkKKyAgICAg ICAoc2hhMjU2IC4gImludmFsaWQiKQorICAgICAgIChzaGE1MTIgLiAscGFja2FnZS10ZXN0cy12 YWxpZC1zaGE1MTItY2hlY2tzdW0pKSkKKyAgIDp0eXBlICdiYWQtY2hlY2tzdW0pKQorCisoZXJ0 LWRlZnRlc3QgcGFja2FnZS10ZXN0LS12ZXJpZnktcGFja2FnZS1jaGVja3N1bXMtYWxsL21pc3Np bmctZmFpbHMgKCkKKyAgIlZlcmlmeSBjaGVja3N1bXMgKGFsbCkgLS0gZmFpbCBvbiBtaXNzaW5n IGNoZWNrc3Vtcy4iCisgIChzaG91bGQtZXJyb3IKKyAgIChydW4tdmVyaWZ5LWNoZWNrc3Vtcy10 ZXN0ICdhbGwKKyAgICAgbmlsKQorICAgOnR5cGUgJ2JhZC1jaGVja3N1bSkpCisKKyhlcnQtZGVm dGVzdCBwYWNrYWdlLXRlc3QtLXZlcmlmeS1wYWNrYWdlLWNoZWNrc3Vtcy1hbGwvbm8tc3VwcG9y dGVkLWhhc2gtZmFpbHMgKCkKKyAgIlZlcmlmeSBjaGVja3N1bXMgKGFsbCkgLS0gZmFpbCBpZiB3 ZSBoYXZlIG5vIHN1cHBvcnRlZCBoYXNoLiIKKyAgKHNob3VsZC1lcnJvcgorICAgKHJ1bi12ZXJp ZnktY2hlY2tzdW1zLXRlc3QgJ2FsbAorICAgICAnKCh1bnN1cHBvcnRlZCAuICJpbnZhbGlkIikp KQorICAgOnR5cGUgJ2JhZC1jaGVja3N1bSkpCisKKyhlcnQtZGVmdGVzdCBwYWNrYWdlLXRlc3Qt LXZlcmlmeS1wYWNrYWdlLWNoZWNrc3Vtcy1hbGwvaWdub3JlLXVuc3VwcG9ydGVkICgpCisgICJW ZXJpZnkgY2hlY2tzdW1zIChhbGwpIC0tIHN1Y2NlZCBpZiBvbmUgaGFzaCBhbGdvcml0aG0gaXMg dW5zdXBwb3J0ZWQuCitJZiB0aGUgcmVzdCBzdWNjZWVkLCBqdXN0IGlnbm9yZSB0aGUgdW5zdXBw b3J0ZWQgb25lLiIKKyAgKHJ1bi12ZXJpZnktY2hlY2tzdW1zLXRlc3QgJ2FsbAorICAgIGAoKG1k NSAgICAuICxwYWNrYWdlLXRlc3RzLXZhbGlkLW1kNS1jaGVja3N1bSkKKyAgICAgIChzaGEyNTYg LiAscGFja2FnZS10ZXN0cy12YWxpZC1zaGEyNTYtY2hlY2tzdW0pCisgICAgICAoc2hhNTEyIC4g LHBhY2thZ2UtdGVzdHMtdmFsaWQtc2hhNTEyLWNoZWNrc3VtKQorICAgICAgKGlnbm9yZSAuICJu b3Qgc3VwcG9ydGVkIikpKSkKKworKGVydC1kZWZ0ZXN0IHBhY2thZ2UtdGVzdC0tdmVyaWZ5LXBh Y2thZ2Utc2l6ZSAoKQorICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgIChsZXQgKChsZW4gKDErIChh YnMgKHJhbmRvbSAxMDAwKSkpKSkKKyAgICAgIChpbnNlcnQgKG1ha2Utc3RyaW5nIGxlbiA/Iykp CisgICAgICAocGFja2FnZS0tdmVyaWZ5LXBhY2thZ2Utc2l6ZSAocGFja2FnZS1kZXNjLWNyZWF0 ZSA6c2l6ZSBsZW4pKSkpKQogCiAMCiA7OzsgVGVzdHMgZm9yIHBhY2thZ2UteCBmZWF0dXJlcy4K QEAgLTU3MCw3ICs3MzUsOSBAQCBwYWNrYWdlLXgtdGVzdC0tc2luZ2xlLWFyY2hpdmUtZW50cnkt MS0zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2luZ2xlCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnKCg6YXV0aG9ycyAoIkouIFIuIEhhY2tlciIgLiAianJoQGV4YW1w bGUuY29tIikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg6bWFpbnRhaW5lciAi Si4gUi4gSGFja2VyIiAuICJqcmhAZXhhbXBsZS5jb20iKQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoOnVybCAuICJodHRwOi8vZG9vZGxlcy5hdSIpKSkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICg6dXJsIC4gImh0dHA6Ly9kb29kbGVzLmF1IikpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG5pbCkpCiAgICJFeHBlY3RlZCBjb250ZW50cyBvZiB0aGUgYXJjaGl2ZSBlbnRyeSBmcm9tIHRo ZSBcInNpbXBsZS1zaW5nbGVcIiBwYWNrYWdlLiIpCiAKIChkZWZ2YXIgcGFja2FnZS14LXRlc3Qt LXNpbmdsZS1hcmNoaXZlLWVudHJ5LTEtNApAQCAtNTc5LDcgKzc0Niw5IEBAIHBhY2thZ2UteC10 ZXN0LS1zaW5nbGUtYXJjaGl2ZS1lbnRyeS0xLTQKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJBIHNpbmdsZS1maWxlIHBhY2thZ2Ugd2l0aCBubyBkZXBlbmRlbmNpZXMiCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnc2luZ2xlCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnKCg6YXV0aG9ycyAoIkouIFIuIEhhY2tlciIgLiAianJoQGV4YW1wbGUuY29tIikpCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg6bWFpbnRhaW5lciAiSi4gUi4gSGFja2Vy IiAuICJqcmhAZXhhbXBsZS5jb20iKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoOm1haW50YWluZXIgIkouIFIuIEhhY2tlciIgLiAianJoQGV4YW1wbGUuY29tIikpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG5pbCkpCiAgICJFeHBlY3RlZCBjb250ZW50cyBvZiB0aGUgYXJjaGl2ZSBlbnRyeSBmcm9t IHRoZSB1cGRhdGVkIFwic2ltcGxlLXNpbmdsZVwiIHBhY2thZ2UuIikKIAogKGVydC1kZWZ0ZXN0 IHBhY2thZ2UteC10ZXN0LXVwbG9hZC1idWZmZXIgKCkKLS0gCjIuMjAuMQoK --00000000000081bb75059412a0f0--