From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jim Porter Newsgroups: gmane.emacs.bugs Subject: bug#53517: 29.0.50; [PATCH] `eshell-eval-using-options' :preserve-args breaks :external handling in some cases Date: Mon, 24 Jan 2022 17:11:27 -0800 Message-ID: <31760ab2-2f47-dacd-0a9f-6a0bddced866@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------D311FDC71EF8723005F77684" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="4677"; mail-complaints-to="usenet@ciao.gmane.io" To: 53517@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Jan 25 02:13:00 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nCAOI-000100-1g for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 25 Jan 2022 02:12:58 +0100 Original-Received: from localhost ([::1]:38592 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nCAOH-0006t0-54 for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 24 Jan 2022 20:12:57 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:50674) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nCANW-0006ky-AE for bug-gnu-emacs@gnu.org; Mon, 24 Jan 2022 20:12:10 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:53486) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nCANO-0007Uq-Us for bug-gnu-emacs@gnu.org; Mon, 24 Jan 2022 20:12:08 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1nCANO-00055n-Ln for bug-gnu-emacs@gnu.org; Mon, 24 Jan 2022 20:12:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 25 Jan 2022 01:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 53517 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.164307310519544 (code B ref -1); Tue, 25 Jan 2022 01:12:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 25 Jan 2022 01:11:45 +0000 Original-Received: from localhost ([127.0.0.1]:46389 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nCAN5-000559-S2 for submit@debbugs.gnu.org; Mon, 24 Jan 2022 20:11:44 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:40006) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nCAN1-00054z-3Y for submit@debbugs.gnu.org; Mon, 24 Jan 2022 20:11:42 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:50548) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nCAN0-0006Oh-UT for bug-gnu-emacs@gnu.org; Mon, 24 Jan 2022 20:11:38 -0500 Original-Received: from [2607:f8b0:4864:20::434] (port=40526 helo=mail-pf1-x434.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nCAMs-0007Kn-Fv for bug-gnu-emacs@gnu.org; Mon, 24 Jan 2022 20:11:33 -0500 Original-Received: by mail-pf1-x434.google.com with SMTP id w190so11609574pfw.7 for ; Mon, 24 Jan 2022 17:11:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:subject:to:message-id:date:mime-version:content-language; bh=bJWClHbk3DUWrpU1unoIBeGBsfmW1GP0gQVNZkChEmw=; b=Gk2imbZ1bgEMPiQ7YWfEBasX6cQSXrVeXXwFD9d1U42E5pYeG4MjXWOHvJ/1w1QxiV GGuMsCwVE7pg40Nt8kzVlAGDUXphXZ6KFynhf2LiwkFwSsth753vAXt3nfKGRer0aQNf V4QaeNIfNh6G8oObj/ubPmqHPhkE5jUOb6qIlJ55NjhG8nJyLhtE/j8fPqBZHpjgDors WD7pdPvNSIQaM+w7giz1oiYDn9/cdL8kg8HfggmmSIYr4C2rR0gPLGDd8C4GDOy4MlDy /6ISbpGl4oCWGvKO3MtzbAdRt4adaYjJkXZnc/oeBsFG6qQrrdwn30cIeqZp638nIxRO NfXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:subject:to:message-id:date:mime-version :content-language; bh=bJWClHbk3DUWrpU1unoIBeGBsfmW1GP0gQVNZkChEmw=; b=gQAmAH3wrQs82JuFDT0JZBCjkPV7gqt9BuIKxnqAAghqGAgPSXSSKzGbFsEKF/86az bFa3QlLRtj6Mgr7TbwHCdZ2gNCCCuhkSo2brrPNZiOEUxXDOWjeSGre8y+al1hp67pv2 BO6QQTd8tCyK9bbnCb6EJTqft/XoWHWh+5k6lsBW6R1VoeuKaDpr8LespBivVR+PAgE4 gWpW0UGE+sisNJcfkcN9X1afte+GZbRhTK8yDqqgF58R4JJfAdyGDR9B+P6MMxzpmMr6 ZS7hqqwtvTOvpf9B/pqCB64FY8A170cIdaoCvZRfwKo6KhSWV3hGmFxWq0osXBWEZ5GR 2vLw== X-Gm-Message-State: AOAM5324sS/hvuNujP3DKmHTGY0Ng3KBb+BlYrsVJgLkBX+zyvWVdrnS RptKrpBv28r4DwsU1Z6sD4dfd+32ixLk8A== X-Google-Smtp-Source: ABdhPJyTb61i+uMdDC5I+I5Z9lpRqlMcl5SX0zRNFASmSzoGjYRRcO99iSEWdLo37S5SVcGW9rxpFw== X-Received: by 2002:a63:10d:: with SMTP id 13mr13397710pgb.559.1643073088724; Mon, 24 Jan 2022 17:11:28 -0800 (PST) Original-Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id x17sm15997636pfu.135.2022.01.24.17.11.27 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 24 Jan 2022 17:11:27 -0800 (PST) X-Mozilla-News-Host: news://news.gmane.org Content-Language: en-US X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::434 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::434; envelope-from=jporterbugs@gmail.com; helo=mail-pf1-x434.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:225138 Archived-At: This is a multi-part message in MIME format. --------------D311FDC71EF8723005F77684 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit To see this in action: $ touch foo $ emacs -Q M-x eshell cp foo bar -s ls -l bar `bar' should be a symlink pointing to `foo', but it's just a regular file. This happens because, when :preserve-args is true, `eshell-eval-using-options' doesn't flatten and stringify the args to be parsed. That results in the various helper functions modifying the list of raw args in-place. When :external is set, if `eshell--process-option' finds an option it doesn't recognize, it throws, telling `eshell--do-opts' to run the external command instead. That requires having the original args, un-tampered with, in order to forward on to the external command. Attached is a patch that fixes this by copying the raw args list for the :preserve-args case before manipulating it. I considered only adding this when :external is also set, but I think it's useful for callers to be able to inspect the raw args afterwards. This is used by `eshell/su' to check for the presence of a "-" argument, since `eshell-eval-using-options' doesn't handle that. (It might be nice to fix that too, but I think it's still useful to keep the original raw args around unchanged. Improving "-" support could be done later.) As part of this, I also added several unit tests for `eshell/su' and `eshell/sudo' to make sure I didn't break anything there; these should pass both before and after the rest of the patch. I also added tests to make sure the original arguments are preserved for calling the external command; these should fail before the patch, and pass after. There's just one remaining issue that I'm not sure how to fix: since I updated the `eshell-eval-using-options' macro, any file that uses it needs to be recompiled to get the new version. What's the right way to tell the build system about this? I just ran `touch lisp/eshell/*.el' locally, but I'm sure there's a better way so that people can just run `make' after pulling this patch. --------------D311FDC71EF8723005F77684 Content-Type: text/plain; charset=UTF-8; name="0001-Don-t-manipulate-args-in-place-for-eshell-eval-using.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Don-t-manipulate-args-in-place-for-eshell-eval-using.pa"; filename*1="tch" RnJvbSBlZjI3NTk2ZmM2MzM1N2QzNzI0OGIxNTU3NWM2NGFmNTU1Zjc1YTk3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IE1vbiwgMjQgSmFuIDIwMjIgMTU6NDY6MDEgLTA4MDAKU3ViamVjdDogW1BB VENIXSBEb24ndCBtYW5pcHVsYXRlIGFyZ3MgaW4tcGxhY2UgZm9yCiAnZXNoZWxsLWV2YWwt dXNpbmctb3B0aW9ucycKClRoaXMgaXMgbmVjZXNzYXJ5IGZvciBwcmVzZXJ2ZSB0aGUgb3Jp Z2luYWwgYXJndW1lbnRzIHRvIGZvcndhcmQgb24gdG8KOmV4dGVybmFsIGNvbW1hbmRzLiAg UHJldmlvdXNseSwgd2hlbiA6cHJlc2VydmUtYXJncyB3YXMgYWxzbyBzZXQsIHRoZQpvcmln aW5hbCBhcmd1bWVudCBsaXN0IGNvdWxkIGJlIGFsdGVyZWQsIGNoYW5naW5nIHRoZSBtZWFu aW5nIG9mIHRoZQpjb21tYW5kLgoKKiBsaXNwL2VzaGVsbC9lc2gtb3B0LmVsIChlc2hlbGwt ZXZhbC11c2luZy1vcHRpb25zKTogQ29weSBNQUNSTy1BUkdTCndoZW4gOnByZXNlcnZlLWFy Z3MgaXMgc2V0LCBhbmQgcGFzcyB0aGUgb3JpZ2luYWwgdmFsdWUgdG8KJ2VzaGVsbC0tZG8t b3B0cycuCihlc2hlbGwtLWRvLW9wdHMpOiBVc2UgdGhlIG9yaWdpbmFsIGFyZ3VtZW50cyB3 aGVuIGNhbGxpbmcgYW4gZXh0ZXJuYWwKY29tbWFuZC4KCiogbGlzcC9lc2hlbGwvZW0tdHJh bXAuZWwgKGVzaGVsbC9zdSwgZXNoZWxsL3N1ZG8pOiBEb24ndCBjb3B5IHRoZQpvcmlnaW5h bCBhcmd1bWVudHMsIHNpbmNlICdlc2hlbGwtZXZhbC11c2luZy1vcHRpb25zJyBkb2VzIHRo aXMgZm9yCnVzLgoKKiB0ZXN0L2xpc3AvZXNoZWxsL2VzaC1vcHQtdGVzdHMuZWwgKGVzaC1v cHQtcHJvY2Vzcy1hcmdzLXRlc3QpOgpTcGxpdCB0aGlzIHRlc3QgaW50by4uLgooZXNoLW9w dC10ZXN0L3Byb2Nlc3MtYXJncykKKGVzaC1vcHQtdGVzdC9wcm9jZXNzLWFyZ3MtcGFyc2Ut bGVhZGluZy1vcHRpb25zLW9ubHkpCihlc2gtb3B0LXRlc3QvcHJvY2Vzcy1hcmdzLWV4dGVy bmFsKTogLi4uIHRoZXNlLgoodGVzdC1lc2hlbGwtZXZhbC11c2luZy1vcHRpb25zKTogU3Bs aXQgdGhpcyB0ZXN0IGludG8uLi4KKGVzaC1vcHQtdGVzdC9ldmFsLXVzaW5nLW9wdGlvbnMt c2hvcnQpCihlc2gtb3B0LXRlc3QvZXZhbC11c2luZy1vcHRpb25zLWxvbmcpCihlc2gtb3B0 LXRlc3QvZXZhbC11c2luZy1vcHRpb25zLWNvbnN0YW50KQooZXNoLW9wdC10ZXN0L2V2YWwt dXNpbmctb3B0aW9ucy11c2VyLXNwZWNpZmllZCkKKGVzaC1vcHQtdGVzdC9ldmFsLXVzaW5n LW9wdGlvbnMtc2hvcnQtc2luZ2xlLXRva2VuKQooZXNoLW9wdC10ZXN0L2V2YWwtdXNpbmct b3B0aW9ucy10ZXJtaW5hdGUtb3B0aW9ucykKKGVzaC1vcHQtdGVzdC9ldmFsLXVzaW5nLW9w dGlvbnMtcGFyc2UtbGVhZGluZy1vcHRpb25zLW9ubHkpCihlc2gtb3B0LXRlc3QvZXZhbC11 c2luZy1vcHRpb25zLXVucmVjb2duaXplZCk6IC4uLiB0aGVzZS4KKGVzaC1vcHQtdGVzdC9l dmFsLXVzaW5nLW9wdGlvbnMtZXh0ZXJuYWwpOiBOZXcgdGVzdC4KCiogdGVzdC9saXNwL2Vz aGVsbC9lbS10cmFtcC10ZXN0cy5lbDogTmV3IHRlc3RzLgotLS0KIGxpc3AvZXNoZWxsL2Vt LXRyYW1wLmVsICAgICAgICAgICAgfCAxMjUgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0KIGxpc3AvZXNoZWxsL2VzaC1vcHQuZWwgICAgICAgICAgICAgfCAgIDggKy0KIHRlc3Qv bGlzcC9lc2hlbGwvZW0tdHJhbXAtdGVzdHMuZWwgfCAgODUgKysrKysrKysrKysrKysrKysr KysKIHRlc3QvbGlzcC9lc2hlbGwvZXNoLW9wdC10ZXN0cy5lbCAgfCAgODkgKysrKysrKysr KysrKy0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgMjA4IGluc2VydGlvbnMoKyksIDk5IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3QvbGlzcC9lc2hlbGwvZW0tdHJh bXAtdGVzdHMuZWwKCmRpZmYgLS1naXQgYS9saXNwL2VzaGVsbC9lbS10cmFtcC5lbCBiL2xp c3AvZXNoZWxsL2VtLXRyYW1wLmVsCmluZGV4IGU5MDE4YmRiOTMuLjc5MTQ1ODgyMmQgMTAw NjQ0Ci0tLSBhL2xpc3AvZXNoZWxsL2VtLXRyYW1wLmVsCisrKyBiL2xpc3AvZXNoZWxsL2Vt LXRyYW1wLmVsCkBAIC01Nyw0MSArNTcsNDIgQEAgZXNoZWxsLXRyYW1wLWluaXRpYWxpemUK IAogKGF1dG9sb2FkICdlc2hlbGwtcGFyc2UtY29tbWFuZCAiZXNoLWNtZCIpCiAKLShkZWZ1 biBlc2hlbGwvc3UgKCZyZXN0IGFyZ3MpCisoZGVmdW4gZXNoZWxsL3N1ICgmcmVzdCBhcmd1 bWVudHMpCiAgICJBbGlhcyBcInN1XCIgdG8gY2FsbCBUUkFNUC4KIAogVXNlcyB0aGUgc3lz dGVtIHN1IHRocm91Z2ggVFJBTVAncyBzdSBtZXRob2QuIgotICAoc2V0cSBhcmdzIChlc2hl bGwtc3RyaW5naWZ5LWxpc3QgKGZsYXR0ZW4tdHJlZSBhcmdzKSkpCi0gIChsZXQgKChvcmln LWFyZ3MgKGNvcHktdHJlZSBhcmdzKSkpCi0gICAgKGVzaGVsbC1ldmFsLXVzaW5nLW9wdGlv bnMKLSAgICAgInN1IiBhcmdzCi0gICAgICcoKD9oICJoZWxwIiBuaWwgbmlsICJzaG93IHRo aXMgdXNhZ2Ugc2NyZWVuIikKLSAgICAgICAoP2wgImxvZ2luIiBuaWwgbG9naW4gInByb3Zp ZGUgYSBsb2dpbiBlbnZpcm9ubWVudCIpCi0gICAgICAgKD8gIG5pbCBuaWwgbG9naW4gInBy b3ZpZGUgYSBsb2dpbiBlbnZpcm9ubWVudCIpCi0gICAgICAgOnVzYWdlICJbLSB8IC1sIHwg LS1sb2dpbl0gW1VTRVJdCisgIChzZXRxIGFyZ3VtZW50cyAoZXNoZWxsLXN0cmluZ2lmeS1s aXN0IChmbGF0dGVuLXRyZWUgYXJndW1lbnRzKSkpCisgIChlc2hlbGwtZXZhbC11c2luZy1v cHRpb25zCisgICAic3UiIGFyZ3VtZW50cworICAgJygoP2ggImhlbHAiIG5pbCBuaWwgInNo b3cgdGhpcyB1c2FnZSBzY3JlZW4iKQorICAgICAoP2wgImxvZ2luIiBuaWwgbG9naW4gInBy b3ZpZGUgYSBsb2dpbiBlbnZpcm9ubWVudCIpCisgICAgICg/ICBuaWwgbmlsIGxvZ2luICJw cm92aWRlIGEgbG9naW4gZW52aXJvbm1lbnQiKQorICAgICA6dXNhZ2UgIlstIHwgLWwgfCAt LWxvZ2luXSBbVVNFUl0KIEJlY29tZSBhbm90aGVyIFVTRVIgZHVyaW5nIGEgbG9naW4gc2Vz c2lvbi4iKQotICAgICAodGhyb3cgJ2VzaGVsbC1yZXBsYWNlLWNvbW1hbmQKLQkgICAgKGxl dCAoKHVzZXIgInJvb3QiKQotCQkgIChob3N0IChvciAoZmlsZS1yZW1vdGUtcCBkZWZhdWx0 LWRpcmVjdG9yeSAnaG9zdCkKLQkJCSAgICAibG9jYWxob3N0IikpCi0JCSAgKGRpciAoZmls ZS1sb2NhbC1uYW1lIChleHBhbmQtZmlsZS1uYW1lIGRlZmF1bHQtZGlyZWN0b3J5KSkpCi0J CSAgKHByZWZpeCAoZmlsZS1yZW1vdGUtcCBkZWZhdWx0LWRpcmVjdG9yeSkpKQotCSAgICAg IChkb2xpc3QgKGFyZyBhcmdzKQotCQkoaWYgKHN0cmluZy1lcXVhbCBhcmcgIi0iKSAoc2V0 cSBsb2dpbiB0KSAoc2V0cSB1c2VyIGFyZykpKQotCSAgICAgIDs7IGBlc2hlbGwtZXZhbC11 c2luZy1vcHRpb25zJyBkb2VzIG5vdCBoYW5kbGUgIi0iLgotCSAgICAgIChpZiAobWVtYmVy ICItIiBvcmlnLWFyZ3MpIChzZXRxIGxvZ2luIHQpKQotCSAgICAgIChpZiBsb2dpbiAoc2V0 cSBkaXIgIn4vIikpCi0JICAgICAgKGlmIChhbmQgcHJlZml4Ci0JCSAgICAgICAob3IKLQkJ CShub3QgKHN0cmluZy1lcXVhbAotCQkJICAgICAgInN1IiAoZmlsZS1yZW1vdGUtcCBkZWZh dWx0LWRpcmVjdG9yeSAnbWV0aG9kKSkpCi0JCQkobm90IChzdHJpbmctZXF1YWwKLQkJCSAg ICAgIHVzZXIgKGZpbGUtcmVtb3RlLXAgZGVmYXVsdC1kaXJlY3RvcnkgJ3VzZXIpKSkpKQot CQkgIChlc2hlbGwtcGFyc2UtY29tbWFuZAotCQkgICAiY2QiIChsaXN0IChmb3JtYXQgIiVz fHN1OiVzQCVzOiVzIgotCQkJCSAgICAgIChzdWJzdHJpbmcgcHJlZml4IDAgLTEpIHVzZXIg aG9zdCBkaXIpKSkKLQkJKGVzaGVsbC1wYXJzZS1jb21tYW5kCi0JCSAiY2QiIChsaXN0IChm b3JtYXQgIi9zdTolc0AlczolcyIgdXNlciBob3N0IGRpcikpKSkpKSkpKQorICAgKHRocm93 ICdlc2hlbGwtcmVwbGFjZS1jb21tYW5kCisgICAgICAgICAgKGxldCAoKHVzZXIgInJvb3Qi KQorICAgICAgICAgICAgICAgIChob3N0IChvciAoZmlsZS1yZW1vdGUtcCBkZWZhdWx0LWRp cmVjdG9yeSAnaG9zdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImxvY2FsaG9zdCIp KQorICAgICAgICAgICAgICAgIChkaXIgKGZpbGUtbG9jYWwtbmFtZSAoZXhwYW5kLWZpbGUt bmFtZSBkZWZhdWx0LWRpcmVjdG9yeSkpKQorICAgICAgICAgICAgICAgIChwcmVmaXggKGZp bGUtcmVtb3RlLXAgZGVmYXVsdC1kaXJlY3RvcnkpKSkKKyAgICAgICAgICAgIChkb2xpc3Qg KGFyZyBhcmdzKQorICAgICAgICAgICAgICAoaWYgKHN0cmluZy1lcXVhbCBhcmcgIi0iKSAo c2V0cSBsb2dpbiB0KSAoc2V0cSB1c2VyIGFyZykpKQorICAgICAgICAgICAgOzsgYGVzaGVs bC1ldmFsLXVzaW5nLW9wdGlvbnMnIHRyaWVzIHRvIGhhbmRsZSAiLSIgYXMgYQorICAgICAg ICAgICAgOzsgc2hvcnQgb3B0aW9uOyBkb3VibGUtY2hlY2sgd2hldGhlciB0aGUgb3JpZ2lu YWwKKyAgICAgICAgICAgIDs7IGFyZ3VtZW50cyBpbmNsdWRlIGl0LgorICAgICAgICAgICAg KHdoZW4gKG1lbWJlciAiLSIgYXJndW1lbnRzKSAoc2V0cSBsb2dpbiB0KSkKKyAgICAgICAg ICAgICh3aGVuIGxvZ2luIChzZXRxIGRpciAifi8iKSkKKyAgICAgICAgICAgIChpZiAoYW5k IHByZWZpeAorICAgICAgICAgICAgICAgICAgICAgKG9yCisgICAgICAgICAgICAgICAgICAg ICAgKG5vdCAoc3RyaW5nLWVxdWFsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1 IiAoZmlsZS1yZW1vdGUtcCBkZWZhdWx0LWRpcmVjdG9yeSAnbWV0aG9kKSkpCisgICAgICAg ICAgICAgICAgICAgICAgKG5vdCAoc3RyaW5nLWVxdWFsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdXNlciAoZmlsZS1yZW1vdGUtcCBkZWZhdWx0LWRpcmVjdG9yeSAndXNlcikp KSkpCisgICAgICAgICAgICAgICAgKGVzaGVsbC1wYXJzZS1jb21tYW5kCisgICAgICAgICAg ICAgICAgICJjZCIgKGxpc3QgKGZvcm1hdCAiJXN8c3U6JXNAJXM6JXMiCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RyaW5nIHByZWZpeCAwIC0xKSB1c2Vy IGhvc3QgZGlyKSkpCisgICAgICAgICAgICAgIChlc2hlbGwtcGFyc2UtY29tbWFuZAorICAg ICAgICAgICAgICAgImNkIiAobGlzdCAoZm9ybWF0ICIvc3U6JXNAJXM6JXMiIHVzZXIgaG9z dCBkaXIpKSkpKSkpKQogCiAocHV0ICdlc2hlbGwvc3UgJ2VzaGVsbC1uby1udW1lcmljLWNv bnZlcnNpb25zIHQpCiAKQEAgLTk5LDQxICsxMDAsMzUgQEAgZXNoZWxsL3N1ZG8KICAgIkFs aWFzIFwic3Vkb1wiIHRvIGNhbGwgVHJhbXAuCiAKIFVzZXMgdGhlIHN5c3RlbSBzdWRvIHRo cm91Z2ggVFJBTVAncyBzdWRvIG1ldGhvZC4iCi0gIChzZXRxIGFyZ3MgKGVzaGVsbC1zdHJp bmdpZnktbGlzdCAoZmxhdHRlbi10cmVlIGFyZ3MpKSkKLSAgKGxldCAoKG9yaWctYXJncyAo Y29weS10cmVlIGFyZ3MpKSkKLSAgICAoZXNoZWxsLWV2YWwtdXNpbmctb3B0aW9ucwotICAg ICAic3VkbyIgYXJncwotICAgICAnKCg/aCAiaGVscCIgbmlsIG5pbCAic2hvdyB0aGlzIHVz YWdlIHNjcmVlbiIpCi0gICAgICAgKD91ICJ1c2VyIiB0IHVzZXIgImV4ZWN1dGUgYSBjb21t YW5kIGFzIGFub3RoZXIgVVNFUiIpCi0gICAgICAgOnNob3ctdXNhZ2UKLSAgICAgICA6cGFy c2UtbGVhZGluZy1vcHRpb25zLW9ubHkKLSAgICAgICA6dXNhZ2UgIlsoLXUgfCAtLXVzZXIp IFVTRVJdIENPTU1BTkQKKyAgKGVzaGVsbC1ldmFsLXVzaW5nLW9wdGlvbnMKKyAgICJzdWRv IiBhcmdzCisgICAnKCg/aCAiaGVscCIgbmlsIG5pbCAic2hvdyB0aGlzIHVzYWdlIHNjcmVl biIpCisgICAgICg/dSAidXNlciIgdCB1c2VyICJleGVjdXRlIGEgY29tbWFuZCBhcyBhbm90 aGVyIFVTRVIiKQorICAgICA6c2hvdy11c2FnZQorICAgICA6cGFyc2UtbGVhZGluZy1vcHRp b25zLW9ubHkKKyAgICAgOnVzYWdlICJbKC11IHwgLS11c2VyKSBVU0VSXSBDT01NQU5ECiBF eGVjdXRlIGEgQ09NTUFORCBhcyB0aGUgc3VwZXJ1c2VyIG9yIGFub3RoZXIgVVNFUi4iKQot ICAgICAodGhyb3cgJ2VzaGVsbC1leHRlcm5hbAotCSAgICAobGV0ICgodXNlciAob3IgdXNl ciAicm9vdCIpKQotCQkgIChob3N0IChvciAoZmlsZS1yZW1vdGUtcCBkZWZhdWx0LWRpcmVj dG9yeSAnaG9zdCkKLQkJCSAgICAibG9jYWxob3N0IikpCi0JCSAgKGRpciAoZmlsZS1sb2Nh bC1uYW1lIChleHBhbmQtZmlsZS1uYW1lIGRlZmF1bHQtZGlyZWN0b3J5KSkpCi0JCSAgKHBy ZWZpeCAoZmlsZS1yZW1vdGUtcCBkZWZhdWx0LWRpcmVjdG9yeSkpKQotCSAgICAgIDs7IGBl c2hlbGwtZXZhbC11c2luZy1vcHRpb25zJyByZWFkcyBvcHRpb25zIG9mIENPTU1BTkQuCi0J ICAgICAgKHdoaWxlIChhbmQgKHN0cmluZ3AgKGNhciBvcmlnLWFyZ3MpKQotCQkJICAobWVt YmVyIChjYXIgb3JpZy1hcmdzKSAnKCItdSIgIi0tdXNlciIpKSkKLQkJKHNldHEgb3JpZy1h cmdzIChjZGRyIG9yaWctYXJncykpKQotCSAgICAgIChsZXQgKChkZWZhdWx0LWRpcmVjdG9y eQotCQkgICAgICAoaWYgKGFuZCBwcmVmaXgKLQkJCSAgICAgICAob3IKLQkJCQkobm90Ci0J CQkJIChzdHJpbmctZXF1YWwKLQkJCQkgICJzdWRvIgotCQkJCSAgKGZpbGUtcmVtb3RlLXAg ZGVmYXVsdC1kaXJlY3RvcnkgJ21ldGhvZCkpKQotCQkJCShub3QKLQkJCQkgKHN0cmluZy1l cXVhbAotCQkJCSAgdXNlcgotCQkJCSAgKGZpbGUtcmVtb3RlLXAgZGVmYXVsdC1kaXJlY3Rv cnkgJ3VzZXIpKSkpKQotCQkJICAoZm9ybWF0ICIlc3xzdWRvOiVzQCVzOiVzIgotCQkJCSAg KHN1YnN0cmluZyBwcmVmaXggMCAtMSkgdXNlciBob3N0IGRpcikKLQkJCShmb3JtYXQgIi9z dWRvOiVzQCVzOiVzIiB1c2VyIGhvc3QgZGlyKSkpKQotCQkoZXNoZWxsLW5hbWVkLWNvbW1h bmQgKGNhciBvcmlnLWFyZ3MpIChjZHIgb3JpZy1hcmdzKSkpKSkpKSkKKyAgICh0aHJvdyAn ZXNoZWxsLWV4dGVybmFsCisgICAgICAgICAgKGxldCogKCh1c2VyIChvciB1c2VyICJyb290 IikpCisgICAgICAgICAgICAgICAgIChob3N0IChvciAoZmlsZS1yZW1vdGUtcCBkZWZhdWx0 LWRpcmVjdG9yeSAnaG9zdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhbGhv c3QiKSkKKyAgICAgICAgICAgICAgICAgKGRpciAoZmlsZS1sb2NhbC1uYW1lIChleHBhbmQt ZmlsZS1uYW1lIGRlZmF1bHQtZGlyZWN0b3J5KSkpCisgICAgICAgICAgICAgICAgIChwcmVm aXggKGZpbGUtcmVtb3RlLXAgZGVmYXVsdC1kaXJlY3RvcnkpKQorICAgICAgICAgICAgICAg ICAoZGVmYXVsdC1kaXJlY3RvcnkKKyAgICAgICAgICAgICAgICAgICAoaWYgKGFuZCBwcmVm aXgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3IKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKG5vdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmlu Zy1lcXVhbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWRvIgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlLXJlbW90ZS1wIGRlZmF1bHQtZGlyZWN0 b3J5ICdtZXRob2QpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vdAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1lcXVhbAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVzZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoZmlsZS1yZW1vdGUtcCBkZWZhdWx0LWRpcmVjdG9yeSAndXNlcikpKSkpCisgICAgICAg ICAgICAgICAgICAgICAgIChmb3JtYXQgIiVzfHN1ZG86JXNAJXM6JXMiCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBwcmVmaXggMCAtMSkgdXNlciBob3N0 IGRpcikKKyAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIi9zdWRvOiVzQCVzOiVzIiB1 c2VyIGhvc3QgZGlyKSkpKQorICAgICAgICAgICAgKGVzaGVsbC1uYW1lZC1jb21tYW5kIChj YXIgYXJncykgKGNkciBhcmdzKSkpKSkpCiAKIChwdXQgJ2VzaGVsbC9zdWRvICdlc2hlbGwt bm8tbnVtZXJpYy1jb252ZXJzaW9ucyB0KQogCmRpZmYgLS1naXQgYS9saXNwL2VzaGVsbC9l c2gtb3B0LmVsIGIvbGlzcC9lc2hlbGwvZXNoLW9wdC5lbAppbmRleCBjODAyYmVlM2FmLi44 YzI5ZmZmODA5IDEwMDY0NAotLS0gYS9saXNwL2VzaGVsbC9lc2gtb3B0LmVsCisrKyBiL2xp c3AvZXNoZWxsL2VzaC1vcHQuZWwKQEAgLTk3LDEwICs5NywxMCBAQCBlc2hlbGwtZXZhbC11 c2luZy1vcHRpb25zCiAgIChkZWNsYXJlIChkZWJ1ZyAoZm9ybSBmb3JtIHNleHAgYm9keSkp KQogICBgKGxldCogKCh0ZW1wLWFyZ3MKICAgICAgICAgICAgLChpZiAobWVtcSAnOnByZXNl cnZlLWFyZ3MgKGNhZHIgb3B0aW9ucykpCi0gICAgICAgICAgICAgICAgbWFjcm8tYXJncwor ICAgICAgICAgICAgICAgIChsaXN0ICdjb3B5LXRyZWUgbWFjcm8tYXJncykKICAgICAgICAg ICAgICAgKGxpc3QgJ2VzaGVsbC1zdHJpbmdpZnktbGlzdAogICAgICAgICAgICAgICAgICAg ICAobGlzdCAnZmxhdHRlbi10cmVlIG1hY3JvLWFyZ3MpKSkpCi0gICAgICAgICAgKHByb2Nl c3NlZC1hcmdzIChlc2hlbGwtLWRvLW9wdHMgLG5hbWUgLG9wdGlvbnMgdGVtcC1hcmdzKSkK KyAgICAgICAgICAocHJvY2Vzc2VkLWFyZ3MgKGVzaGVsbC0tZG8tb3B0cyAsbmFtZSAsb3B0 aW9ucyB0ZW1wLWFyZ3MgLG1hY3JvLWFyZ3MpKQogICAgICAgICAgICxAKGRlbGV0ZS1kdXBz CiAgICAgICAgICAgICAgKGRlbHEgbmlsIChtYXBjYXIgKGxhbWJkYSAob3B0KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAobGlzdHAgb3B0KSAobnRoIDMgb3B0 KQpAQCAtMTE3LDcgKzExNyw3IEBAIGVzaGVsbC1ldmFsLXVzaW5nLW9wdGlvbnMKIDs7IERv Y3VtZW50ZWQgcGFydCBvZiB0aGUgaW50ZXJmYWNlOyBzZWUgZXNoZWxsLWV2YWwtdXNpbmct b3B0aW9ucy4KIChkZWZ2YXIgZXNoZWxsLS1hcmdzKQogCi0oZGVmdW4gZXNoZWxsLS1kby1v cHRzIChuYW1lIG9wdGlvbnMgYXJncykKKyhkZWZ1biBlc2hlbGwtLWRvLW9wdHMgKG5hbWUg b3B0aW9ucyBhcmdzIG9yaWctYXJncykKICAgIkhlbHBlciBmdW5jdGlvbiBmb3IgYGVzaGVs bC1ldmFsLXVzaW5nLW9wdGlvbnMnLgogVGhpcyBjb2RlIGRvZXNuJ3QgcmVhbGx5IG5lZWQg dG8gYmUgbWFjcm8gZXhwYW5kZWQgZXZlcnl3aGVyZS4iCiAgIChyZXF1aXJlICdlc2gtZXh0 KQpAQCAtMTM1LDcgKzEzNSw3IEBAIGVzaGVsbC0tZG8tb3B0cwogICAgICAgICAgICAgICAg KGVycm9yICIlcyIgdXNhZ2UtbXNnKSkpKSkpCiAgICAgKGlmIGV4dC1jb21tYW5kCiAgICAg ICAgICh0aHJvdyAnZXNoZWxsLWV4dGVybmFsCi0gICAgICAgICAgICAgICAoZXNoZWxsLWV4 dGVybmFsLWNvbW1hbmQgZXh0LWNvbW1hbmQgYXJncykpCisgICAgICAgICAgICAgICAoZXNo ZWxsLWV4dGVybmFsLWNvbW1hbmQgZXh0LWNvbW1hbmQgb3JpZy1hcmdzKSkKICAgICAgIGFy Z3MpKSkKIAogKGRlZnVuIGVzaGVsbC1zaG93LXVzYWdlIChuYW1lIG9wdGlvbnMpCmRpZmYg LS1naXQgYS90ZXN0L2xpc3AvZXNoZWxsL2VtLXRyYW1wLXRlc3RzLmVsIGIvdGVzdC9saXNw L2VzaGVsbC9lbS10cmFtcC10ZXN0cy5lbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwLi43ZjA1NGRhNTE0Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdC9saXNwL2Vz aGVsbC9lbS10cmFtcC10ZXN0cy5lbApAQCAtMCwwICsxLDg1IEBACis7OzsgZW0tdHJhbXAt dGVzdHMuZWwgLS0tIGVtLXRyYW1wIHRlc3Qgc3VpdGUgIC0qLSBsZXhpY2FsLWJpbmRpbmc6 dCAtKi0KKworOzsgQ29weXJpZ2h0IChDKSAyMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorCis7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuCisKKzs7IEdO VSBFbWFjcyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5Cis7OyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKzs7IChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKzs7IEdOVSBFbWFjcyBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorOzsgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKzs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKKzs7IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisKKzs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7OyBhbG9uZyB3aXRoIEdOVSBFbWFjcy4g IElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKzs7OyBD b2RlOgorCisocmVxdWlyZSAnZXJ0KQorKHJlcXVpcmUgJ2VtLXRyYW1wKQorCisoZXJ0LWRl ZnRlc3QgZW0tdHJhbXAtdGVzdC9zdS1kZWZhdWx0ICgpCisgICJUZXN0IEVzaGVsbCBgc3Un IGNvbW1hbmQgd2l0aCBubyBhcmd1bWVudHMuIgorICAoc2hvdWxkIChlcXVhbAorICAgICAg ICAgICAoY2F0Y2ggJ2VzaGVsbC1yZXBsYWNlLWNvbW1hbmQgKGVzaGVsbC9zdSkpCisgICAg ICAgICAgIGAoZXNoZWxsLXRyYXAtZXJyb3JzCisgICAgICAgICAgICAgKGVzaGVsbC1uYW1l ZC1jb21tYW5kCisgICAgICAgICAgICAgICJjZCIKKyAgICAgICAgICAgICAgKGxpc3QgLChm b3JtYXQgIi9zdTpyb290QGxvY2FsaG9zdDolcyIgZGVmYXVsdC1kaXJlY3RvcnkpKSkpKSkp CisKKyhlcnQtZGVmdGVzdCBlbS10cmFtcC10ZXN0L3N1LXVzZXIgKCkKKyAgIlRlc3QgRXNo ZWxsIGBzdScgY29tbWFuZCB3aXRoIFVTRVIgYXJndW1lbnQuIgorICAoc2hvdWxkIChlcXVh bAorICAgICAgICAgICAoY2F0Y2ggJ2VzaGVsbC1yZXBsYWNlLWNvbW1hbmQgKGVzaGVsbC9z dSAiVVNFUiIpKQorICAgICAgICAgICBgKGVzaGVsbC10cmFwLWVycm9ycworICAgICAgICAg ICAgIChlc2hlbGwtbmFtZWQtY29tbWFuZAorICAgICAgICAgICAgICAiY2QiCisgICAgICAg ICAgICAgIChsaXN0ICwoZm9ybWF0ICIvc3U6VVNFUkBsb2NhbGhvc3Q6JXMiIGRlZmF1bHQt ZGlyZWN0b3J5KSkpKSkpKQorCisoZXJ0LWRlZnRlc3QgZW0tdHJhbXAtdGVzdC9zdS1sb2dp biAoKQorICAiVGVzdCBFc2hlbGwgYHN1JyBjb21tYW5kIHdpdGggLS8tbC8tLWxvZ2luIG9w dGlvbi4iCisgIChkb2xpc3QgKGFyZ3MgJygoIi0tbG9naW4iKQorICAgICAgICAgICAgICAg ICAgKCItbCIpCisgICAgICAgICAgICAgICAgICAoIi0iKSkpCisgICAgKHNob3VsZCAoZXF1 YWwKKyAgICAgICAgICAgICAoY2F0Y2ggJ2VzaGVsbC1yZXBsYWNlLWNvbW1hbmQgKGFwcGx5 ICMnZXNoZWxsL3N1IGFyZ3MpKQorICAgICAgICAgICAgIGAoZXNoZWxsLXRyYXAtZXJyb3Jz CisgICAgICAgICAgICAgICAoZXNoZWxsLW5hbWVkLWNvbW1hbmQKKyAgICAgICAgICAgICAg ICAiY2QiCisgICAgICAgICAgICAgICAgKGxpc3QgIi9zdTpyb290QGxvY2FsaG9zdDp+LyIp KSkpKSkpCisKKyhkZWZ1biBtb2NrLWVzaGVsbC1uYW1lZC1jb21tYW5kICgmcmVzdCBhcmdz KQorICAiRHVtbXkgZnVuY3Rpb24gdG8gdGVzdCBFc2hlbGwgYHN1ZG8nIGNvbW1hbmQgcmV3 cml0aW5nLiIKKyAgKGxpc3QgZGVmYXVsdC1kaXJlY3RvcnkgYXJncykpCisKKyhlcnQtZGVm dGVzdCBlbS10cmFtcC10ZXN0L3N1ZG8tYmFzaWMgKCkKKyAgIlRlc3QgRXNoZWxsIGBzdWRv JyBjb21tYW5kIHdpdGggZGVmYXVsdCB1c2VyLiIKKyAgKGNsLWxldGYgKCgoc3ltYm9sLWZ1 bmN0aW9uICdlc2hlbGwtbmFtZWQtY29tbWFuZCkKKyAgICAgICAgICAgICAjJ21vY2stZXNo ZWxsLW5hbWVkLWNvbW1hbmQpKQorICAgIChzaG91bGQgKGVxdWFsCisgICAgICAgICAgICAg KGNhdGNoICdlc2hlbGwtZXh0ZXJuYWwgKGVzaGVsbC9zdWRvICJlY2hvIiAiaGkiKSkKKyAg ICAgICAgICAgICBgKCwoZm9ybWF0ICIvc3Vkbzpyb290QGxvY2FsaG9zdDolcyIgZGVmYXVs dC1kaXJlY3RvcnkpCisgICAgICAgICAgICAgICAoImVjaG8iICgiaGkiKSkpKSkKKyAgICAo c2hvdWxkIChlcXVhbAorICAgICAgICAgICAgIChjYXRjaCAnZXNoZWxsLWV4dGVybmFsIChl c2hlbGwvc3VkbyAiZWNobyIgIi11IiAiaGkiKSkKKyAgICAgICAgICAgICBgKCwoZm9ybWF0 ICIvc3Vkbzpyb290QGxvY2FsaG9zdDolcyIgZGVmYXVsdC1kaXJlY3RvcnkpCisgICAgICAg ICAgICAgICAoImVjaG8iICgiLXUiICJoaSIpKSkpKSkpCisKKyhlcnQtZGVmdGVzdCBlbS10 cmFtcC10ZXN0L3N1ZG8tdXNlciAoKQorICAiVGVzdCBFc2hlbGwgYHN1ZG8nIGNvbW1hbmQg d2l0aCBzcGVjaWZpZWQgdXNlci4iCisgIChjbC1sZXRmICgoKHN5bWJvbC1mdW5jdGlvbiAn ZXNoZWxsLW5hbWVkLWNvbW1hbmQpCisgICAgICAgICAgICAgIydtb2NrLWVzaGVsbC1uYW1l ZC1jb21tYW5kKSkKKyAgICAoc2hvdWxkIChlcXVhbAorICAgICAgICAgICAgIChjYXRjaCAn ZXNoZWxsLWV4dGVybmFsIChlc2hlbGwvc3VkbyAiLXUiICJVU0VSIiAiZWNobyIgImhpIikp CisgICAgICAgICAgICAgYCgsKGZvcm1hdCAiL3N1ZG86VVNFUkBsb2NhbGhvc3Q6JXMiIGRl ZmF1bHQtZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgKCJlY2hvIiAoImhpIikpKSkpCisg ICAgKHNob3VsZCAoZXF1YWwKKyAgICAgICAgICAgICAoY2F0Y2ggJ2VzaGVsbC1leHRlcm5h bCAoZXNoZWxsL3N1ZG8gIi11IiAiVVNFUiIgImVjaG8iICItdSIgImhpIikpCisgICAgICAg ICAgICAgYCgsKGZvcm1hdCAiL3N1ZG86VVNFUkBsb2NhbGhvc3Q6JXMiIGRlZmF1bHQtZGly ZWN0b3J5KQorICAgICAgICAgICAgICAgKCJlY2hvIiAoIi11IiAiaGkiKSkpKSkpKQorCis7 OzsgZW0tdHJhbXAtdGVzdHMuZWwgZW5kcyBoZXJlCmRpZmYgLS1naXQgYS90ZXN0L2xpc3Av ZXNoZWxsL2VzaC1vcHQtdGVzdHMuZWwgYi90ZXN0L2xpc3AvZXNoZWxsL2VzaC1vcHQtdGVz dHMuZWwKaW5kZXggYjc2ZWQ4ODY2ZC4uZWMzZjc0ZWY0MCAxMDA2NDQKLS0tIGEvdGVzdC9s aXNwL2VzaGVsbC9lc2gtb3B0LXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9lc2hlbGwvZXNo LW9wdC10ZXN0cy5lbApAQCAtMjIsOCArMjIsOCBAQAogKHJlcXVpcmUgJ2VydCkKIChyZXF1 aXJlICdlc2gtb3B0KQogCi0oZXJ0LWRlZnRlc3QgZXNoLW9wdC1wcm9jZXNzLWFyZ3MtdGVz dCAoKQotICAiVW5pdCB0ZXN0cyB3aGljaCB2ZXJpZnkgY29ycmVjdCBiZWhhdmlvciBvZiBg ZXNoZWxsLS1wcm9jZXNzLWFyZ3MnLiIKKyhlcnQtZGVmdGVzdCBlc2gtb3B0LXRlc3QvcHJv Y2Vzcy1hcmdzICgpCisgICJUZXN0IGJlaGF2aW9yIG9mIGBlc2hlbGwtLXByb2Nlc3MtYXJn cycuIgogICAoc2hvdWxkCiAgICAoZXF1YWwgJyh0KQogICAgICAgICAgIChlc2hlbGwtLXBy b2Nlc3MtYXJncwpAQCAtMzUsNyArMzUsMTAgQEAgZXNoLW9wdC1wcm9jZXNzLWFyZ3MtdGVz dAogICAgICAgICAgIChlc2hlbGwtLXByb2Nlc3MtYXJncwogICAgICAgICAgICAic3VkbyIg JygiLXUiICJyb290IiAid29ybGQiKQogICAgICAgICAgICAnKCg/dSAidXNlciIgdCB1c2Vy Ci0gICAgICAgICAgICAgICAgICJleGVjdXRlIGEgY29tbWFuZCBhcyBhbm90aGVyIFVTRVIi KSkpKSkKKyAgICAgICAgICAgICAgICAgImV4ZWN1dGUgYSBjb21tYW5kIGFzIGFub3RoZXIg VVNFUiIpKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVzaC1vcHQtdGVzdC9wcm9jZXNzLWFyZ3Mt cGFyc2UtbGVhZGluZy1vcHRpb25zLW9ubHkgKCkKKyAgIlRlc3QgYmVoYXZpb3Igb2YgOnBh cnNlLWxlYWRpbmctb3B0aW9ucy1vbmx5IGluIGBlc2hlbGwtLXByb2Nlc3MtYXJncycuIgog ICAoc2hvdWxkCiAgICAoZXF1YWwgJyhuaWwgImVtZXJnZSIgIi11RE4iICJ3b3JsZCIpCiAg ICAgICAgICAgKGVzaGVsbC0tcHJvY2Vzcy1hcmdzCkBAIC01NSw5ICs1OCwxMCBAQCBlc2gt b3B0LXByb2Nlc3MtYXJncy10ZXN0CiAgICAgICAgICAgKGVzaGVsbC0tcHJvY2Vzcy1hcmdz CiAgICAgICAgICAgICJzdWRvIiAnKCItdSIgInJvb3QiICJlbWVyZ2UiICItdUROIiAid29y bGQiKQogICAgICAgICAgICAnKCg/dSAidXNlciIgdCB1c2VyCi0gICAgICAgICAgICAgICAg ICJleGVjdXRlIGEgY29tbWFuZCBhcyBhbm90aGVyIFVTRVIiKSkpKSkKKyAgICAgICAgICAg ICAgICAgImV4ZWN1dGUgYSBjb21tYW5kIGFzIGFub3RoZXIgVVNFUiIpKSkpKSkKIAotICA7 OyBUZXN0IDpleHRlcm5hbC4KKyhlcnQtZGVmdGVzdCBlc2gtb3B0LXRlc3QvcHJvY2Vzcy1h cmdzLWV4dGVybmFsICgpCisgICJUZXN0IGJlaGF2aW9yIG9mIDpleHRlcm5hbCBpbiBgZXNo ZWxsLS1wcm9jZXNzLWFyZ3MnLiIKICAgKGNsLWxldGYgKCgoc3ltYm9sLWZ1bmN0aW9uICdl c2hlbGwtc2VhcmNoLXBhdGgpICMnaWdub3JlKSkKICAgICAoc2hvdWxkCiAgICAgIChlcXVh bCAnKG5pbCAiL3NvbWUvcGF0aCIpCkBAIC04NSw5ICs4OSw4IEBAIGVzaC1vcHQtcHJvY2Vz cy1hcmdzLXRlc3QKICAgICAgICAgOmV4dGVybmFsICJscyIpKQogICAgICA6dHlwZSAnZXJy b3IpKSkKIAotKGVydC1kZWZ0ZXN0IHRlc3QtZXNoZWxsLWV2YWwtdXNpbmctb3B0aW9ucyAo KQotICAiVGVzdHMgZm9yIGBlc2hlbGwtZXZhbC11c2luZy1vcHRpb25zJy4iCi0gIDs7IFRl c3Qgc2hvcnQgb3B0aW9ucy4KKyhlcnQtZGVmdGVzdCBlc2gtb3B0LXRlc3QvZXZhbC11c2lu Zy1vcHRpb25zLXNob3J0ICgpCisgICJUZXN0IGBlc2hlbGwtZXZhbC11c2luZy1vcHRpb25z JyB3aXRoIHNob3J0IG9wdGlvbnMuIgogICAoZXNoZWxsLWV2YWwtdXNpbmctb3B0aW9ucwog ICAgImxzIiAnKCItYSIgIi9zb21lL3BhdGgiKQogICAgJygoP2EgImFsbCIgbmlsIHNob3ct YWxsCkBAIC05OSwxNyArMTAyLDE5IEBAIHRlc3QtZXNoZWxsLWV2YWwtdXNpbmctb3B0aW9u cwogICAgJygoP2EgImFsbCIgbmlsIHNob3ctYWxsCiAgICAgICAgICAiZG8gbm90IGlnbm9y ZSBlbnRyaWVzIHN0YXJ0aW5nIHdpdGggLiIpKQogICAgKHNob3VsZCAoZXEgc2hvdy1hbGwg bmlsKSkKLSAgIChzaG91bGQgKGVxdWFsIGFyZ3MgJygiL3NvbWUvcGF0aCIpKSkpCisgICAo c2hvdWxkIChlcXVhbCBhcmdzICcoIi9zb21lL3BhdGgiKSkpKSkKIAotICA7OyBUZXN0IGxv bmcgb3B0aW9ucy4KKyhlcnQtZGVmdGVzdCBlc2gtb3B0LXRlc3QvZXZhbC11c2luZy1vcHRp b25zLWxvbmcgKCkKKyAgIlRlc3QgYGVzaGVsbC1ldmFsLXVzaW5nLW9wdGlvbnMnIHdpdGgg bG9uZyBvcHRpb25zLiIKICAgKGVzaGVsbC1ldmFsLXVzaW5nLW9wdGlvbnMKICAgICJscyIg JygiLS1hbGwiICIvc29tZS9wYXRoIikKICAgICcoKD9hICJhbGwiIG5pbCBzaG93LWFsbAog ICAgICAgICAgImRvIG5vdCBpZ25vcmUgZW50cmllcyBzdGFydGluZyB3aXRoIC4iKSkKICAg IChzaG91bGQgKGVxIHNob3ctYWxsIHQpKQotICAgKHNob3VsZCAoZXF1YWwgYXJncyAnKCIv c29tZS9wYXRoIikpKSkKKyAgIChzaG91bGQgKGVxdWFsIGFyZ3MgJygiL3NvbWUvcGF0aCIp KSkpKQogCi0gIDs7IFRlc3Qgb3B0aW9ucyB3aXRoIGNvbnN0YW50IHZhbHVlcy4KKyhlcnQt ZGVmdGVzdCBlc2gtb3B0LXRlc3QvZXZhbC11c2luZy1vcHRpb25zLWNvbnN0YW50ICgpCisg ICJUZXN0IGBlc2hlbGwtZXZhbC11c2luZy1vcHRpb25zJyB3aXRoIG9wdGlvbnMgd2l0aCBj b25zdGFudCB2YWx1ZXMuIgogICAoZXNoZWxsLWV2YWwtdXNpbmctb3B0aW9ucwogICAgImxz IiAnKCIvc29tZS9wYXRoIiAiLWgiKQogICAgJygoP2ggImh1bWFuLXJlYWRhYmxlIiAxMDI0 IGh1bWFuLXJlYWRhYmxlCkBAIC0xMjcsOSArMTMyLDEwIEBAIHRlc3QtZXNoZWxsLWV2YWwt dXNpbmctb3B0aW9ucwogICAgJygoP2ggImh1bWFuLXJlYWRhYmxlIiAxMDI0IGh1bWFuLXJl YWRhYmxlCiAgICAgICAgICAicHJpbnQgc2l6ZXMgaW4gaHVtYW4gcmVhZGFibGUgZm9ybWF0 IikpCiAgICAoc2hvdWxkIChlcSBodW1hbi1yZWFkYWJsZSBuaWwpKQotICAgKHNob3VsZCAo ZXF1YWwgYXJncyAnKCIvc29tZS9wYXRoIikpKSkKKyAgIChzaG91bGQgKGVxdWFsIGFyZ3Mg JygiL3NvbWUvcGF0aCIpKSkpKQogCi0gIDs7IFRlc3Qgb3B0aW9ucyB3aXRoIHVzZXItc3Bl Y2lmaWVkIHZhbHVlcy4KKyhlcnQtZGVmdGVzdCBlc2gtb3B0LXRlc3QvZXZhbC11c2luZy1v cHRpb25zLXVzZXItc3BlY2lmaWVkICgpCisgICJUZXN0IGBlc2hlbGwtZXZhbC11c2luZy1v cHRpb25zJyB3aXRoIG9wdGlvbnMgd2l0aCB1c2VyLXNwZWNpZmllZCB2YWx1ZXMuIgogICAo ZXNoZWxsLWV2YWwtdXNpbmctb3B0aW9ucwogICAgImxzIiAnKCItSSIgIioudHh0IiAiL3Nv bWUvcGF0aCIpCiAgICAnKCg/SSAiaWdub3JlIiB0IGlnbm9yZS1wYXR0ZXJuCkBAIC0xNTMs OSArMTU5LDEwIEBAIHRlc3QtZXNoZWxsLWV2YWwtdXNpbmctb3B0aW9ucwogICAgJygoP0kg Imlnbm9yZSIgdCBpZ25vcmUtcGF0dGVybgogICAgICAgICAgImRvIG5vdCBsaXN0IGltcGxp ZWQgZW50cmllcyBtYXRjaGluZyBwYXR0ZXJuIikpCiAgICAoc2hvdWxkIChlcXVhbCBpZ25v cmUtcGF0dGVybiAiKi50eHQiKSkKLSAgIChzaG91bGQgKGVxdWFsIGFyZ3MgJygiL3NvbWUv cGF0aCIpKSkpCisgICAoc2hvdWxkIChlcXVhbCBhcmdzICcoIi9zb21lL3BhdGgiKSkpKSkK IAotICA7OyBUZXN0IG11bHRpcGxlIHNob3J0IG9wdGlvbnMgaW4gYSBzaW5nbGUgdG9rZW4u CisoZXJ0LWRlZnRlc3QgZXNoLW9wdC10ZXN0L2V2YWwtdXNpbmctb3B0aW9ucy1zaG9ydC1z aW5nbGUtdG9rZW4gKCkKKyAgIlRlc3QgYGVzaGVsbC1ldmFsLXVzaW5nLW9wdGlvbnMnIHdp dGggbXVsdGlwbGUgc2hvcnQgb3B0aW9ucyBpbiBvbmUgdG9rZW4uIgogICAoZXNoZWxsLWV2 YWwtdXNpbmctb3B0aW9ucwogICAgImxzIiAnKCItYWwiICIvc29tZS9wYXRoIikKICAgICco KD9hICJhbGwiIG5pbCBzaG93LWFsbApAQCAtMTc1LDcgKzE4Miw4IEBAIHRlc3QtZXNoZWxs LWV2YWwtdXNpbmctb3B0aW9ucwogICAgKHNob3VsZCAoZXF1YWwgaWdub3JlLXBhdHRlcm4g IioudHh0IikpCiAgICAoc2hvdWxkIChlcXVhbCBhcmdzICcoIi9zb21lL3BhdGgiKSkpKQog Ci0gIDs7IFRlc3QgdGhhdCAiLS0iIHRlcm1pbmF0ZXMgb3B0aW9ucy4KKyhlcnQtZGVmdGVz dCBlc2gtb3B0LXRlc3QvZXZhbC11c2luZy1vcHRpb25zLXRlcm1pbmF0ZS1vcHRpb25zICgp CisgICJUZXN0IHRoYXQgXCItLVwiIHRlcm1pbmF0ZXMgb3B0aW9ucyBpbiBgZXNoZWxsLWV2 YWwtdXNpbmctb3B0aW9ucycuIgogICAoZXNoZWxsLWV2YWwtdXNpbmctb3B0aW9ucwogICAg ImxzIiAnKCItLSIgIi1hIikKICAgICcoKD9hICJhbGwiIG5pbCBzaG93LWFsbApAQCAtMTg3 LDkgKzE5NSwxMCBAQCB0ZXN0LWVzaGVsbC1ldmFsLXVzaW5nLW9wdGlvbnMKICAgICcoKD9h ICJhbGwiIG5pbCBzaG93LWFsbAogICAgICAgICAgImRvIG5vdCBpZ25vcmUgZW50cmllcyBz dGFydGluZyB3aXRoIC4iKSkKICAgIChzaG91bGQgKGVxIHNob3ctYWxsIG5pbCkpCi0gICAo c2hvdWxkIChlcXVhbCBhcmdzICcoIi0tYWxsIikpKSkKKyAgIChzaG91bGQgKGVxdWFsIGFy Z3MgJygiLS1hbGwiKSkpKSkKIAotICA7OyBUZXN0IDpwYXJzZS1sZWFkaW5nLW9wdGlvbnMt b25seS4KKyhlcnQtZGVmdGVzdCBlc2gtb3B0LXRlc3QvZXZhbC11c2luZy1vcHRpb25zLXBh cnNlLWxlYWRpbmctb3B0aW9ucy1vbmx5ICgpCisgICJUZXN0IDpwYXJzZS1sZWFkaW5nLW9w dGlvbnMtb25seSBpbiBgZXNoZWxsLWV2YWwtdXNpbmctb3B0aW9ucycuIgogICAoZXNoZWxs LWV2YWwtdXNpbmctb3B0aW9ucwogICAgInN1ZG8iICcoIi11IiAicm9vdCIgIndob2FtaSIp CiAgICAnKCg/dSAidXNlciIgdCB1c2VyICJleGVjdXRlIGEgY29tbWFuZCBhcyBhbm90aGVy IFVTRVIiKQpAQCAtMjEyLDI3ICsyMjEsNDcgQEAgdGVzdC1lc2hlbGwtZXZhbC11c2luZy1v cHRpb25zCiAgICAnKCg/dSAidXNlciIgdCB1c2VyICJleGVjdXRlIGEgY29tbWFuZCBhcyBh bm90aGVyIFVTRVIiKQogICAgICA6cGFyc2UtbGVhZGluZy1vcHRpb25zLW9ubHkpCiAgICAo c2hvdWxkIChlcSB1c2VyIG5pbCkpCi0gICAoc2hvdWxkIChlcXVhbCBhcmdzICcoImVtZXJn ZSIgIi11RE4iICJ3b3JsZCIpKSkpCisgICAoc2hvdWxkIChlcXVhbCBhcmdzICcoImVtZXJn ZSIgIi11RE4iICJ3b3JsZCIpKSkpKQogCi0gIDs7IFRlc3QgdW5yZWNvZ25pemVkIG9wdGlv bnMuCisoZXJ0LWRlZnRlc3QgZXNoLW9wdC10ZXN0L2V2YWwtdXNpbmctb3B0aW9ucy11bnJl Y29nbml6ZWQgKCkKKyAgIlRlc3QgYGVzaGVsbC1ldmFsLXVzaW5nLW9wdGlvbnMnIHdpdGgg dW5yZWNvZ25pemVkIG9wdGlvbnMuIgogICAoc2hvdWxkLWVycm9yCiAgICAoZXNoZWxsLWV2 YWwtdXNpbmctb3B0aW9ucwogICAgICJscyIgJygiLXUiICIvc29tZS9wYXRoIikKLSAgICAn KCg/YSAiYWxsIiBuaWwgc2hvdy1hbGwKLSAgICAgICAgICAiZG8gbm90IGlnbm9yZSBlbnRy aWVzIHN0YXJ0aW5nIHdpdGggLiIpKQotICAgIChpZ25vcmUgc2hvdy1hbGwpKSkKKyAgICAn KCg/YSAiYWxsIiBuaWwgX3Nob3ctYWxsCisgICAgICAgICAgImRvIG5vdCBpZ25vcmUgZW50 cmllcyBzdGFydGluZyB3aXRoIC4iKSkpKQogICAoc2hvdWxkLWVycm9yCiAgICAoZXNoZWxs LWV2YWwtdXNpbmctb3B0aW9ucwogICAgICJscyIgJygiLWF1IiAiL3NvbWUvcGF0aCIpCi0g ICAgJygoP2EgImFsbCIgbmlsIHNob3ctYWxsCi0gICAgICAgICAgImRvIG5vdCBpZ25vcmUg ZW50cmllcyBzdGFydGluZyB3aXRoIC4iKSkKLSAgICAoaWdub3JlIHNob3ctYWxsKSkpCisg ICAgJygoP2EgImFsbCIgbmlsIF9zaG93LWFsbAorICAgICAgICAgICJkbyBub3QgaWdub3Jl IGVudHJpZXMgc3RhcnRpbmcgd2l0aCAuIikpKSkKICAgKHNob3VsZC1lcnJvcgogICAgKGVz aGVsbC1ldmFsLXVzaW5nLW9wdGlvbnMKICAgICAibHMiICcoIi0tdW5yZWNvZ25pemVkIiAi L3NvbWUvcGF0aCIpCi0gICAgJygoP2EgImFsbCIgbmlsIHNob3ctYWxsCi0gICAgICAgICAg ImRvIG5vdCBpZ25vcmUgZW50cmllcyBzdGFydGluZyB3aXRoIC4iKSkKLSAgICAoaWdub3Jl IHNob3ctYWxsKSkpKQorICAgICcoKD9hICJhbGwiIG5pbCBfc2hvdy1hbGwKKyAgICAgICAg ICAiZG8gbm90IGlnbm9yZSBlbnRyaWVzIHN0YXJ0aW5nIHdpdGggLiIpKSkpKQorCisoZXJ0 LWRlZnRlc3QgZXNoLW9wdC10ZXN0L2V2YWwtdXNpbmctb3B0aW9ucy1leHRlcm5hbCAoKQor ICAiVGVzdCA6ZXh0ZXJuYWwgaW4gYGVzaGVsbC1ldmFsLXVzaW5nLW9wdGlvbnMnLiIKKyAg KGNsLWxldGYgKCgoc3ltYm9sLWZ1bmN0aW9uICdlc2hlbGwtc2VhcmNoLXBhdGgpICMnaWRl bnRpdHkpCisgICAgICAgICAgICAoKHN5bWJvbC1mdW5jdGlvbiAnZXNoZWxsLWV4dGVybmFs LWNvbW1hbmQpICMnbGlzdCkpCisgICAgKHNob3VsZAorICAgICAoZXF1YWwgKGNhdGNoICdl c2hlbGwtZXh0ZXJuYWwKKyAgICAgICAgICAgICAgKGVzaGVsbC1ldmFsLXVzaW5nLW9wdGlv bnMKKyAgICAgICAgICAgICAgICJscyIgJygiL3NvbWUvcGF0aCIgIi11IikKKyAgICAgICAg ICAgICAgICcoKD9hICJhbGwiIG5pbCBfc2hvdy1hbGwKKyAgICAgICAgICAgICAgICAgICAg ICJkbyBub3QgaWdub3JlIGVudHJpZXMgc3RhcnRpbmcgd2l0aCAuIikKKyAgICAgICAgICAg ICAgICAgOmV4dGVybmFsICJscyIpKSkKKyAgICAgICAgICAgICcoImxzIiAoIi9zb21lL3Bh dGgiICItdSIpKSkpCisgICAgKHNob3VsZAorICAgICAoZXF1YWwgKGNhdGNoICdlc2hlbGwt ZXh0ZXJuYWwKKyAgICAgICAgICAgICAgKGVzaGVsbC1ldmFsLXVzaW5nLW9wdGlvbnMKKyAg ICAgICAgICAgICAgICJscyIgJygiL3NvbWUvcGF0aDIiICItdSIpCisgICAgICAgICAgICAg ICAnKCg/YSAiYWxsIiBuaWwgX3Nob3ctYWxsCisgICAgICAgICAgICAgICAgICAgICAiZG8g bm90IGlnbm9yZSBlbnRyaWVzIHN0YXJ0aW5nIHdpdGggLiIpCisgICAgICAgICAgICAgICAg IDpwcmVzZXJ2ZS1hcmdzCisgICAgICAgICAgICAgICAgIDpleHRlcm5hbCAibHMiKSkpCisg ICAgICAgICAgICAnKCJscyIgKCIvc29tZS9wYXRoMiIgIi11IikpKSkpKSkKIAogKHByb3Zp ZGUgJ2VzaC1vcHQtdGVzdHMpCiAKLS0gCjIuMjUuMQoK --------------D311FDC71EF8723005F77684--