From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Liu Hui Newsgroups: gmane.emacs.bugs Subject: bug#68559: [PATCH] Improve Python shell completion Date: Wed, 7 Feb 2024 21:22:23 +0800 Message-ID: References: <83zfx39mcy.fsf@gnu.org> <87a5og8m7t.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000008649db0610ca961f" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="19310"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Eli Zaretskii , 68559@debbugs.gnu.org To: kobarity Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Wed Feb 07 14:23:05 2024 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 1rXhtJ-0004oW-0n for geb-bug-gnu-emacs@m.gmane-mx.org; Wed, 07 Feb 2024 14:23:05 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rXht4-0001ay-6I; Wed, 07 Feb 2024 08:22:50 -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 1rXht2-0001ap-TU for bug-gnu-emacs@gnu.org; Wed, 07 Feb 2024 08:22:48 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rXht2-00067B-Ku for bug-gnu-emacs@gnu.org; Wed, 07 Feb 2024 08:22:48 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rXhtG-0002jh-3S for bug-gnu-emacs@gnu.org; Wed, 07 Feb 2024 08:23:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Liu Hui Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 07 Feb 2024 13:23:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68559 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 68559-submit@debbugs.gnu.org id=B68559.170731217810506 (code B ref 68559); Wed, 07 Feb 2024 13:23:02 +0000 Original-Received: (at 68559) by debbugs.gnu.org; 7 Feb 2024 13:22:58 +0000 Original-Received: from localhost ([127.0.0.1]:55884 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXhtB-0002jM-Ie for submit@debbugs.gnu.org; Wed, 07 Feb 2024 08:22:58 -0500 Original-Received: from mail-ua1-x92b.google.com ([2607:f8b0:4864:20::92b]:59765) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rXht8-0002j9-Hp for 68559@debbugs.gnu.org; Wed, 07 Feb 2024 08:22:55 -0500 Original-Received: by mail-ua1-x92b.google.com with SMTP id a1e0cc1a2514c-7d5bbbe57b9so289572241.3 for <68559@debbugs.gnu.org>; Wed, 07 Feb 2024 05:22:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707312155; x=1707916955; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=w2ZGopeEbMRQSmCWHh1HILVW/v07Ma1m0NDTimSXU/k=; b=aTfOveeEAhRbyuXK959yRpj58k1iasppEhb5KU+81wLm81nvoWEVHQu2wpHDqzOEHW iorZ+G56rtM9qfoHhmOtSDP7lgXp3mrcxhJKha/IJKw3cafT74IOUft3e8GhPWCOTbjd 8Tc0TPt1xN6sPXMqrCtGF9bAzBewY9xMz4yI/qkHdMfwUAx8u3oUSzeLdMFW8N3oEi/m xJxn9msmJVSWsuh4/1qTD56UKZTN5iap8lAErudCo6Xx/xgbaYB7PYM9ir+gQxeh2jtR wxgnxrSdXvVlhZGU/akqSQaruOmsfE1nRj/yb9oq1Dz24i+CgNrkXFKonS7vjeCmu40r TG9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707312155; x=1707916955; 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=w2ZGopeEbMRQSmCWHh1HILVW/v07Ma1m0NDTimSXU/k=; b=IcQ5uqD9Ee79gU9DN5VY4uK5n622KBXfTzee62AJsFPidYaIxMdhspAerEP/UyQ4GW fiDO+RbSVOMbRukZ9+KKykrKg8twZWxpP3TxHIIufoyiVmIxposDs9/h7o1kuYzLl88a 736ACxHN1UnHpHiyVtMipWgiOPqcvf6ljNwSJFDarjD5E7P6iFmvT+c8HqeTqJCWH+kj eDE5/9ziFF/xcZ0IIBLsprCCF3c2y3vtFnlDNIITV+okdJdVpCy8qB5CzgnDtYPT32/F TkRfbXG4ABs6yuXtfZrqvtU3KH+OuMh3wFI39lrjEj+X609Uxs2/w9pYbin7BvzV+C0F mgiA== X-Gm-Message-State: AOJu0Yyiod2rYZbra5vYTc0Wkw+9u0JhTgodJvB+AWmA37RwMBHhhwDJ KiUdLcnhO5zwvg9nYUJqODTzUpw+C613XSWmjzfPP/sT544xuMPNCcb9J1MOgL+OaZ6KEjT7ZqY 96p++ARWb0IMepT09jf179NQL6JM= X-Google-Smtp-Source: AGHT+IHvKSFFZo513WdxIhq0dLd/wMmlbRZYdLs5jePo8r1RP3n7OljOY/pChp0ItG0p8zzZ6rdcdfS5JcxKfvN08r4= X-Received: by 2002:a05:6122:3a07:b0:4c0:309b:2755 with SMTP id fp7-20020a0561223a0700b004c0309b2755mr2704612vkb.3.1707312155075; Wed, 07 Feb 2024 05:22:35 -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:279548 Archived-At: --0000000000008649db0610ca961f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Feb 6, 2024 at 11:12=E2=80=AFPM kobarity wrote= : > Sorry, I noticed one more thing. As written in the comments below, it > would be better to use `line-beginning-position' and > `line-end-position' instead of `pos-bol' and `pos-eol'. > > ;; This is a GNU ELPA :core package. Avoid functionality that is not > ;; compatible with the version of Emacs recorded above. Thanks for pointing it out! `pos-bol' was used because it can ignore the prompt in `python-shell--get-multiline-input'. Fortunately, I find `pos-bol' and `pos-eol' are available in the compat package since 29.1.1.0, so it should be enough to upgrade the compat version in Package-Requires. I have updated the attached patch. --0000000000008649db0610ca961f Content-Type: text/x-patch; charset="UTF-8"; name="0001-Respect-the-delimiter-of-completer-in-Python-shell-c.patch" Content-Disposition: attachment; filename="0001-Respect-the-delimiter-of-completer-in-Python-shell-c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lsbtjvys0 RnJvbSBhNmRhNGMwYjg4MzI2ODU5ZGU1ODQ3YWFhOTc4MTZmODlmYzk3ODJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSHVpIDxsaXVodWkxNjEwQGdtYWlsLmNvbT4KRGF0ZTog VGh1LCAxOCBKYW4gMjAyNCAxMjowMDowMCArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFJlc3BlY3Qg dGhlIGRlbGltaXRlciBvZiBjb21wbGV0ZXIgaW4gUHl0aG9uIHNoZWxsIGNvbXBsZXRpb24KCiog bGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsOiAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2V0dXAt Y29kZSk6IEZpeAp0aGUgY29tcGxldGlvbiBjb2RlIG9mIElQeXRob24uICBDaGFuZ2UgdGhlIHJl dHVybiB2YWx1ZSB0byBKU09OIHN0cmluZwphbmQgLi4uCihweXRob24tc2hlbGwtY29tcGxldGlv bi1nZXQtY29tcGxldGlvbnMpOiAuLi4gc2ltcGxpZnkgcGFyc2luZy4KKGluZmVyaW9yLXB5dGhv bi1tb2RlKTogVXBkYXRlIGRvY3N0cmluZy4KKHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0 ZXItZGVsaW1zKTogTmV3IHZhcmlhYmxlIGluZGljYXRpbmcgdGhlCndvcmQgZGVsaW1pdGVycyBv ZiByZWFkbGluZSBjb21wbGV0ZXIuCihweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtc2V0 dXApOiBTZXQgdGhlIGNvbXBsZXRlciBkZWxpbWl0ZXIuCihweXRob24tc2hlbGwtY29tcGxldGlv bi1uYXRpdmUtZ2V0LWNvbXBsZXRpb25zKTogQ29udmVydCBvdXRwdXQgc3RyaW5nCnRvIGNvbXBs ZXRpb25zIHByb3Blcmx5LgoocHl0aG9uLXNoZWxsLS1nZXQtbXVsdGlsaW5lLWlucHV0KQoocHl0 aG9uLXNoZWxsLS1leHRyYS1jb21wbGV0aW9uLWNvbnRleHQpCihweXRob24tc2hlbGwtY29tcGxl dGlvbi1leHRyYS1jb250ZXh0KTogTmV3IGZ1bmN0aW9ucy4KKHB5dGhvbi1zaGVsbC1jb21wbGV0 aW9uLWF0LXBvaW50KTogU2VuZCB0ZXh0IGJlZ2lubmluZyBmcm9tIHRoZSBsaW5lCnN0YXJ0IGlm IHRoZSBjb21wbGV0aW9uIGJhY2tlbmQgZG9lcyBub3QgbmVlZCB3b3JkIHNwbGl0dGluZy4gIFJl bW92ZQp0aGUgZGV0ZWN0aW9uIG9mIGltcG9ydCBzdGF0ZW1lbnQgYmVjYXVzZSBpdCBpcyBub3Qg bmVlZGVkIGFueW1vcmUuCkNyZWF0ZSBwcm9wZXIgY29tcGxldGlvbiB0YWJsZSBiYXNlZCBvbiBj b21wbGV0aW9ucyByZXR1cm5lZCBmcm9tCmRpZmZlcmVudCBiYWNrZW5kcy4KCiogdGVzdC9saXNw L3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1tb2R1 bGUpCihweXRob24tdGVzdHMtLWNvbXBsZXRpb24tcGFyYW1ldGVycykKKHB5dGhvbi10ZXN0cy0t Y29tcGxldGlvbi1leHRyYS1jb250ZXh0KTogTmV3IGhlbHBlciBmdW5jdGlvbnMuCihweXRob24t c2hlbGwtY29tcGxldGlvbi1hdC1wb2ludC1qZWRpLWNvbXBsZXRlcikKKHB5dGhvbi1zaGVsbC1j b21wbGV0aW9uLWF0LXBvaW50LWlweXRob24pOiBOZXcgdGVzdHMuICAoYnVnIzY4NTU5KQotLS0K IGxpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbCAgICAgICAgICAgIHwgMjIwICsrKysrKysrKysrKysr KysrKysrKystLS0tLS0KIHRlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsIHwgIDky ICsrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAyNjQgaW5zZXJ0aW9ucygrKSwgNDggZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsIGIvbGlzcC9w cm9nbW9kZXMvcHl0aG9uLmVsCmluZGV4IDlkODQwZWZiOWRhLi5iMTY1NGI2YTVhYSAxMDA2NDQK LS0tIGEvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCisrKyBiL2xpc3AvcHJvZ21vZGVzL3B5dGhv bi5lbApAQCAtNSw3ICs1LDcgQEAgOzs7IHB5dGhvbi5lbCAtLS0gUHl0aG9uJ3MgZmx5aW5nIGNp cmN1cyBzdXBwb3J0IGZvciBFbWFjcyAtKi0gbGV4aWNhbC1iaW5kaW5nOgogOzsgQXV0aG9yOiBG YWJpw6FuIEUuIEdhbGxpbmEgPGZnYWxsaW5hQGdudS5vcmc+CiA7OyBVUkw6IGh0dHBzOi8vZ2l0 aHViLmNvbS9mZ2FsbGluYS9weXRob24uZWwKIDs7IFZlcnNpb246IDAuMjgKLTs7IFBhY2thZ2Ut UmVxdWlyZXM6ICgoZW1hY3MgIjI0LjQiKSAoY29tcGF0ICIyOC4xLjIuMSIpIChzZXEgIjIuMjMi KSkKKzs7IFBhY2thZ2UtUmVxdWlyZXM6ICgoZW1hY3MgIjI0LjQiKSAoY29tcGF0ICIyOS4xLjEu MCIpIChzZXEgIjIuMjMiKSkKIDs7IE1haW50YWluZXI6IGVtYWNzLWRldmVsQGdudS5vcmcKIDs7 IENyZWF0ZWQ6IEp1bCAyMDEwCiA7OyBLZXl3b3JkczogbGFuZ3VhZ2VzCkBAIC0xMjgsOSArMTI4 LDkgQEAgOzs7IENvbW1lbnRhcnk6CiA7OyByZWNlaXZpbmcgZXNjYXBlIHNlcXVlbmNlcyAod2l0 aCBzb21lIGxpbWl0YXRpb25zLCBpLmUuIGNvbXBsZXRpb24KIDs7IGluIGJsb2NrcyBkb2VzIG5v dCB3b3JrKS4gIFRoZSBjb2RlIGV4ZWN1dGVkIGZvciB0aGUgImZhbGxiYWNrIgogOzsgY29tcGxl dGlvbiBjYW4gYmUgZm91bmQgaW4gYHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUn IGFuZAotOzsgYHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXN0cmluZy1jb2RlJyB2YXJpYWJsZXMu ICBUaGVpciBkZWZhdWx0Ci07OyB2YWx1ZXMgZW5hYmxlIGNvbXBsZXRpb24gZm9yIGJvdGggQ1B5 dGhvbiBhbmQgSVB5dGhvbiwgYW5kIHByb2JhYmx5Ci07OyBhbnkgcmVhZGxpbmUgYmFzZWQgc2hl bGwgKGl0J3Mga25vd24gdG8gd29yayB3aXRoIFB5UHkpLiAgSWYgeW91cgorOzsgYHB5dGhvbi1z aGVsbC1jb21wbGV0aW9uLWdldC1jb21wbGV0aW9ucycuICBUaGVpciBkZWZhdWx0IHZhbHVlcwor OzsgZW5hYmxlIGNvbXBsZXRpb24gZm9yIGJvdGggQ1B5dGhvbiBhbmQgSVB5dGhvbiwgYW5kIHBy b2JhYmx5IGFueQorOzsgcmVhZGxpbmUgYmFzZWQgc2hlbGwgKGl0J3Mga25vd24gdG8gd29yayB3 aXRoIFB5UHkpLiAgSWYgeW91cgogOzsgUHl0aG9uIGluc3RhbGxhdGlvbiBsYWNrcyByZWFkbGlu ZSAobGlrZSBDUHl0aG9uIGZvciBXaW5kb3dzKSwKIDs7IGluc3RhbGxpbmcgcHlyZWFkbGluZSAo VVJMIGBodHRwczovL2lweXRob24ub3JnL3B5cmVhZGxpbmUuaHRtbCcpCiA7OyBzaG91bGQgc3Vm ZmljZS4gIFRvIHRyb3VibGVzaG9vdCB3aHkgeW91IGFyZSBub3QgZ2V0dGluZyBhbnkKQEAgLTE0 MSw2ICsxNDEsMTIgQEAgOzs7IENvbW1lbnRhcnk6CiA7OyBJZiB5b3Ugc2VlIGFuIGVycm9yLCB0 aGVuIHlvdSBuZWVkIHRvIGVpdGhlciBpbnN0YWxsIHB5cmVhZGxpbmUgb3IKIDs7IHNldHVwIGN1 c3RvbSBjb2RlIHRoYXQgYXZvaWRzIHRoYXQgZGVwZW5kZW5jeS4KIAorOzsgQnkgZGVmYXVsdCwg dGhlICJuYXRpdmUiIGNvbXBsZXRpb24gdXNlcyB0aGUgYnVpbHQtaW4gcmxjb21wbGV0ZXIuCis7 OyBUbyB1c2Ugb3RoZXIgcmVhZGxpbmUgY29tcGxldGVyIChlLmcuIEplZGkpIG9yIGEgY3VzdG9t IG9uZSwgeW91IGp1c3QKKzs7IG5lZWQgdG8gc2V0IGl0IGluIHRoZSBQWVRIT05TVEFSVFVQIGZp bGUuICBZb3UgY2FuIHNldCBhbgorOzsgRW1hY3Mtc3BlY2lmaWMgY29tcGxldGVyIGJ5IHRlc3Rp bmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlCis7OyBJTlNJREVfRU1BQ1MuCisKIDs7IFNoZWxs IHZpcnR1YWxlbnYgc3VwcG9ydDogVGhlIHNoZWxsIGFsc28gY29udGFpbnMgc3VwcG9ydCBmb3IK IDs7IHZpcnR1YWxlbnZzIGFuZCBvdGhlciBzcGVjaWFsIGVudmlyb25tZW50IG1vZGlmaWNhdGlv bnMgdGhhbmtzIHRvCiA7OyBgcHl0aG9uLXNoZWxsLXByb2Nlc3MtZW52aXJvbm1lbnQnIGFuZCBg cHl0aG9uLXNoZWxsLWV4ZWMtcGF0aCcuCkBAIC0zNjA0LDcgKzM2MTAsNiBAQCAoZGVmaW5lLWRl cml2ZWQtbW9kZSBpbmZlcmlvci1weXRob24tbW9kZSBjb21pbnQtbW9kZSAiSW5mZXJpb3IgUHl0 aG9uIgogYHB5dGhvbi1zaGVsbC1wcm9tcHQtYmxvY2stcmVnZXhwJywKIGBweXRob24tc2hlbGwt Zm9udC1sb2NrLWVuYWJsZScsCiBgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2V0dXAtY29kZScs Ci1gcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc3RyaW5nLWNvZGUnLAogYHB5dGhvbi1lbGRvYy1z ZXR1cC1jb2RlJywKIGBweXRob24tZmZhcC1zZXR1cC1jb2RlJyBjYW4KIGN1c3RvbWl6ZSB0aGlz IG1vZGUgZm9yIGRpZmZlcmVudCBQeXRob24gaW50ZXJwcmV0ZXJzLgpAQCAtNDI0NCw4ICs0MjQ5 LDkgQEAgKGRlZmN1c3RvbSBweXRob24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlCiAgICAg Y29tcGxldGlvbnMgPSBbXQogICAgIGNvbXBsZXRlciA9IE5vbmUKIAorICAgIGltcG9ydCBqc29u CiAgICAgdHJ5OgotICAgICAgICBpbXBvcnQgcmVhZGxpbmUKKyAgICAgICAgaW1wb3J0IHJlYWRs aW5lLCByZQogCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGltcG9ydCBfX2J1aWx0aW5fXwpA QCAtNDI1NiwxNiArNDI2MiwyOSBAQCAoZGVmY3VzdG9tIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9u LXNldHVwLWNvZGUKIAogICAgICAgICBpc19pcHl0aG9uID0gKCdfX0lQWVRIT05fXycgaW4gYnVp bHRpbnMgb3IKICAgICAgICAgICAgICAgICAgICAgICAnX19JUFlUSE9OX19hY3RpdmUnIGluIGJ1 aWx0aW5zKQotICAgICAgICBzcGxpdHMgPSB0ZXh0LnNwbGl0KCkKLSAgICAgICAgaXNfbW9kdWxl ID0gc3BsaXRzIGFuZCBzcGxpdHNbMF0gaW4gKCdmcm9tJywgJ2ltcG9ydCcpCi0KLSAgICAgICAg aWYgaXNfaXB5dGhvbiBhbmQgaXNfbW9kdWxlOgotICAgICAgICAgICAgZnJvbSBJUHl0aG9uLmNv cmUuY29tcGxldGVybGliIGltcG9ydCBtb2R1bGVfY29tcGxldGlvbgotICAgICAgICAgICAgY29t cGxldGlvbnMgPSBtb2R1bGVfY29tcGxldGlvbih0ZXh0LnN0cmlwKCkpCi0gICAgICAgIGVsaWYg aXNfaXB5dGhvbiBhbmQgJ19fSVAnIGluIGJ1aWx0aW5zOgotICAgICAgICAgICAgY29tcGxldGlv bnMgPSBfX0lQLmNvbXBsZXRlKHRleHQpCi0gICAgICAgIGVsaWYgaXNfaXB5dGhvbiBhbmQgJ2dl dF9pcHl0aG9uJyBpbiBidWlsdGluczoKLSAgICAgICAgICAgIGNvbXBsZXRpb25zID0gZ2V0X2lw eXRob24oKS5Db21wbGV0ZXIuYWxsX2NvbXBsZXRpb25zKHRleHQpCisKKyAgICAgICAgaWYgaXNf aXB5dGhvbiBhbmQgJ2dldF9pcHl0aG9uJyBpbiBidWlsdGluczoKKyAgICAgICAgICAgIGRlZiBm aWx0ZXJfYyhwcmVmaXgsIGMpOgorICAgICAgICAgICAgICAgIGlmIHJlLm1hdGNoKCdfKyhpP1sw LTldKyk/JCcsIGMpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAg ICAgICAgICBlbGlmIGNbMF0gPT0gJyUnIGFuZCBub3QgcmUubWF0Y2goJ1slYS16QS1aXSskJywg cHJlZml4KToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAg ICAgcmV0dXJuIFRydWUKKworICAgICAgICAgICAgaW1wb3J0IElQeXRob24KKyAgICAgICAgICAg IHRyeToKKyAgICAgICAgICAgICAgICBpZiBJUHl0aG9uLnZlcnNpb25faW5mb1swXSA+PSA2Ogor ICAgICAgICAgICAgICAgICAgICBmcm9tIElQeXRob24uY29yZS5jb21wbGV0ZXIgaW1wb3J0IHBy b3Zpc2lvbmFsY29tcGxldGVyCisgICAgICAgICAgICAgICAgICAgIHdpdGggcHJvdmlzaW9uYWxj b21wbGV0ZXIoKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zID0gWworICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFtjLnRleHQsIGMuc3RhcnQsIGMuZW5kLCBjLnR5cGUg b3IgJz8nLCBjLnNpZ25hdHVyZSBvciAnJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Zm9yIGMgaW4gZ2V0X2lweXRob24oKS5Db21wbGV0ZXIuY29tcGxldGlvbnModGV4dCwgbGVuKHRl eHQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBmaWx0ZXJfYyh0ZXh0LCBjLnRl eHQpXQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHBhcnQsIG1h dGNoZXMgPSBnZXRfaXB5dGhvbigpLkNvbXBsZXRlci5jb21wbGV0ZShsaW5lX2J1ZmZlcj10ZXh0 KQorICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9ucyA9IFt0ZXh0ICsgbVtsZW4ocGFydCk6 XSBmb3IgbSBpbiBtYXRjaGVzIGlmIGZpbHRlcl9jKHRleHQsIG0pXQorICAgICAgICAgICAgZXhj ZXB0OgorICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgZWxzZToKICAgICAgICAgICAgICMg VHJ5IHRvIHJldXNlIGN1cnJlbnQgY29tcGxldGVyLgogICAgICAgICAgICAgY29tcGxldGVyID0g cmVhZGxpbmUuZ2V0X2NvbXBsZXRlcigpCkBAIC00Mjg4LDcgKzQzMDcsNyBAQCAoZGVmY3VzdG9t IHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUKICAgICBmaW5hbGx5OgogICAgICAg ICBpZiBnZXRhdHRyKGNvbXBsZXRlciwgJ1BZVEhPTl9FTF9XUkFQUEVEJywgRmFsc2UpOgogICAg ICAgICAgICAgY29tcGxldGVyLnByaW50X21vZGUgPSBUcnVlCi0gICAgcmV0dXJuIGNvbXBsZXRp b25zIgorICAgIHJldHVybiBqc29uLmR1bXBzKGNvbXBsZXRpb25zKSIKICAgIkNvZGUgdXNlZCB0 byBzZXR1cCBjb21wbGV0aW9uIGluIGluZmVyaW9yIFB5dGhvbiBwcm9jZXNzZXMuIgogICA6dHlw ZSAnc3RyaW5nKQogCkBAIC00MzI5LDYgKzQzNDgsMTAgQEAgKGRlZmN1c3RvbSBweXRob24tc2hl bGwtY29tcGxldGlvbi1uYXRpdmUtdHJ5LW91dHB1dC10aW1lb3V0IDEuMAogICA6dmVyc2lvbiAi MjUuMSIKICAgOnR5cGUgJ2Zsb2F0KQogCisoZGVmdmFyIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1j b21wbGV0ZXItZGVsaW1zIG5pbAorICAiV29yZCBkZWxpbWl0ZXJzIHVzZWQgYnkgdGhlIHJlYWRs aW5lIGNvbXBsZXRlci4KK0l0IGlzIGF1dG9tYXRpY2FsbHkgc2V0IGJ5IFB5dGhvbiBzaGVsbC4i KQorCiAoZGVmdmFyIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1yZWRpcmVjdC1idWZm ZXIKICAgIiAqUHl0aG9uIGNvbXBsZXRpb25zIHJlZGlyZWN0KiIKICAgIkJ1ZmZlciB0byBiZSB1 c2VkIHRvIHJlZGlyZWN0IG91dHB1dCBvZiByZWFkbGluZSBjb21tYW5kcy4iKQpAQCAtNDQ2Nyw2 ICs0NDkwLDEwIEBAIChkZWZ1biBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtc2V0dXAg KCkKIF9fUFlUSE9OX0VMX25hdGl2ZV9jb21wbGV0aW9uX3NldHVwKCkiIHByb2Nlc3MpKSkKICAg ICAod2hlbiAoc3RyaW5nLW1hdGNoLXAgInB5dGhvblxcLmVsOiBuYXRpdmUgY29tcGxldGlvbiBz ZXR1cCBsb2FkZWQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCkKKyAgICAgIChz ZXRxLWxvY2FsIHB5dGhvbi1zaGVsbC1yZWFkbGluZS1jb21wbGV0ZXItZGVsaW1zCisgICAgICAg ICAgICAgICAgICAoc3RyaW5nLXRyaW0tcmlnaHQKKyAgICAgICAgICAgICAgICAgICAocHl0aG9u LXNoZWxsLXNlbmQtc3RyaW5nLW5vLW91dHB1dAorICAgICAgICAgICAgICAgICAgICAiaW1wb3J0 IHJlYWRsaW5lOyBwcmludChyZWFkbGluZS5nZXRfY29tcGxldGVyX2RlbGltcygpKSIpKSkKICAg ICAgIChweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtdHJ5KSkpKQogCiAoZGVmdW4gcHl0 aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb2ZmICgmb3B0aW9uYWwgbXNnKQpAQCAt NDUzNCw2ICs0NTYxLDggQEAgKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1n ZXQtY29tcGxldGlvbnMgKHByb2Nlc3MgaW5wdXQpCiAgICAgKGxldCogKChvcmlnaW5hbC1maWx0 ZXItZm4gKHByb2Nlc3MtZmlsdGVyIHByb2Nlc3MpKQogICAgICAgICAgICAocmVkaXJlY3QtYnVm ZmVyIChnZXQtYnVmZmVyLWNyZWF0ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweXRo b24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtcmVkaXJlY3QtYnVmZmVyKSkKKyAgICAgICAgICAg KHNlcCAoaWYgKHN0cmluZz0gcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMg IiIpCisgICAgICAgICAgICAgICAgICAgICJbXG5ccl0rIiAiWyBcZlx0XG5cclx2KCldKyIpKQog ICAgICAgICAgICAodHJpZ2dlciAiXHQiKQogICAgICAgICAgICAobmV3LWlucHV0IChjb25jYXQg aW5wdXQgdHJpZ2dlcikpCiAgICAgICAgICAgIChpbnB1dC1sZW5ndGgKQEAgLTQ1NzYsMjggKzQ2 MDUsODAgQEAgKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1nZXQtY29tcGxl dGlvbnMgKHByb2Nlc3MgaW5wdXQpCiAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzIHB5dGhv bi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1vdXRwdXQtdGltZW91dAogICAgICAgICAgICAgICAg ICAgICAgY29taW50LXJlZGlyZWN0LWZpbmlzaGVkLXJlZ2V4cCkKICAgICAgICAgICAgICAgICAo cmUtc2VhcmNoLWJhY2t3YXJkICIwX19kdW1teV9jb21wbGV0aW9uX18iIG5pbCB0KQotICAgICAg ICAgICAgICAgIChjbC1yZW1vdmUtZHVwbGljYXRlcwotICAgICAgICAgICAgICAgICAoc3BsaXQt c3RyaW5nCi0gICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVz Ci0gICAgICAgICAgICAgICAgICAgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAocG9pbnQtbWlu KSkKLSAgICAgICAgICAgICAgICAgICJbIFxmXHRcblxyXHYoKV0rIiB0KQotICAgICAgICAgICAg ICAgICA6dGVzdCAjJ3N0cmluZz0pKSkpCisgICAgICAgICAgICAgICAgKGxldCAoKHN0ciAoYnVm ZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAocG9pbnQtbWluKSkpKQorICAgICAgICAgICAgICAg ICAgOzsgVGhlIHJlYWRsaW5lIGNvbXBsZXRlciBpcyBhbGxvd2VkIHRvIHJldHVybiBhIGxpc3QK KyAgICAgICAgICAgICAgICAgIDs7IG9mICh0ZXh0IHN0YXJ0IGVuZCB0eXBlIHNpZ25hdHVyZSkg YXMgYSBKU09OCisgICAgICAgICAgICAgICAgICA7OyBzdHJpbmcuICBTZWUgdGhlIHJldHVybiB2 YWx1ZSBmb3IgSVB5dGhvbiBpbgorICAgICAgICAgICAgICAgICAgOzsgYHB5dGhvbi1zaGVsbC1j b21wbGV0aW9uLXNldHVwLWNvZGUnLgorICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmc9ICJb IiAoc3Vic3RyaW5nIHN0ciAwIDEpKQorICAgICAgICAgICAgICAgICAgICAgIChjb25kaXRpb24t Y2FzZSBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHB5dGhvbi0tcGFyc2UtanNvbi1h cnJheSBzdHIpCisgICAgICAgICAgICAgICAgICAgICAgICAodCAoY2wtcmVtb3ZlLWR1cGxpY2F0 ZXMgKHNwbGl0LXN0cmluZyBzdHIgc2VwIHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOnRlc3QgIydzdHJpbmc9KSkpCisgICAgICAgICAgICAgICAg ICAgIChjbC1yZW1vdmUtZHVwbGljYXRlcyAoc3BsaXQtc3RyaW5nIHN0ciBzZXAgdCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDp0ZXN0ICMnc3RyaW5nPSkpKSkp KQogICAgICAgICAoc2V0LXByb2Nlc3MtZmlsdGVyIHByb2Nlc3Mgb3JpZ2luYWwtZmlsdGVyLWZu KSkpKSkKIAogKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWdldC1jb21wbGV0aW9ucyAo cHJvY2VzcyBpbnB1dCkKICAgIkdldCBjb21wbGV0aW9ucyBvZiBJTlBVVCB1c2luZyBQUk9DRVNT LiIKICAgKHdpdGgtY3VycmVudC1idWZmZXIgKHByb2Nlc3MtYnVmZmVyIHByb2Nlc3MpCi0gICAg KGxldCAoKGNvbXBsZXRpb25zCi0gICAgICAgICAgIChweXRob24tdXRpbC1zdHJpcC1zdHJpbmcK LSAgICAgICAgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0Ci0gICAgICAg ICAgICAgKGZvcm1hdAotICAgICAgICAgICAgICAiJXNcbnByaW50KCc7Jy5qb2luKF9fUFlUSE9O X0VMX2dldF9jb21wbGV0aW9ucyglcykpKSIKKyAgICAocHl0aG9uLS1wYXJzZS1qc29uLWFycmF5 CisgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0CisgICAgICAoZm9ybWF0 ICIlc1xucHJpbnQoX19QWVRIT05fRUxfZ2V0X2NvbXBsZXRpb25zKCVzKSkiCiAgICAgICAgICAg ICAgIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUKICAgICAgICAgICAgICAgKHB5 dGhvbi1zaGVsbC0tZW5jb2RlLXN0cmluZyBpbnB1dCkpCi0gICAgICAgICAgICAgcHJvY2Vzcykp KSkKLSAgICAgICh3aGVuICg+IChsZW5ndGggY29tcGxldGlvbnMpIDIpCi0gICAgICAgIChzcGxp dC1zdHJpbmcgY29tcGxldGlvbnMKLSAgICAgICAgICAgICAgICAgICAgICAiXidcXHxeXCJcXHw7 XFx8JyRcXHxcIiQiIHQpKSkpKQorICAgICAgcHJvY2VzcykpKSkKKworKGRlZnVuIHB5dGhvbi1z aGVsbC0tZ2V0LW11bHRpbGluZS1pbnB1dCAoKQorICAiUmV0dXJuIGxpbmVzIGF0IGEgbXVsdGkt bGluZSBpbnB1dCBpbiBQeXRob24gc2hlbGwuIgorICAoc2F2ZS1leGN1cnNpb24KKyAgICAobGV0 ICgocCAocG9pbnQpKSBsaW5lcykKKyAgICAgICh3aGVuIChwcm9nbgorICAgICAgICAgICAgICAo YmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgIChsb29raW5nLWJhY2sgcHl0aG9uLXNo ZWxsLXByb21wdC1ibG9jay1yZWdleHAgKHBvcy1ib2wpKSkKKyAgICAgICAgKHB1c2ggKGJ1ZmZl ci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyAocG9pbnQpIHApIGxpbmVzKQorICAgICAgICAod2hp bGUgKHByb2duIChjb21pbnQtcHJldmlvdXMtcHJvbXB0IDEpCisgICAgICAgICAgICAgICAgICAg ICAgKGxvb2tpbmctYmFjayBweXRob24tc2hlbGwtcHJvbXB0LWJsb2NrLXJlZ2V4cCAocG9zLWJv bCkpKQorICAgICAgICAgIChwdXNoIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgKHBv aW50KSAocG9zLWVvbCkpIGxpbmVzKSkKKyAgICAgICAgKHB1c2ggKGJ1ZmZlci1zdWJzdHJpbmct bm8tcHJvcGVydGllcyAocG9pbnQpIChwb3MtZW9sKSkgbGluZXMpKQorICAgICAgbGluZXMpKSkK KworKGRlZnVuIHB5dGhvbi1zaGVsbC0tZXh0cmEtY29tcGxldGlvbi1jb250ZXh0ICgpCisgICJH ZXQgZXh0cmEgY29tcGxldGlvbiBjb250ZXh0IG9mIGN1cnJlbnQgaW5wdXQgaW4gUHl0aG9uIHNo ZWxsLiIKKyAgKGxldCAoKGxpbmVzIChweXRob24tc2hlbGwtLWdldC1tdWx0aWxpbmUtaW5wdXQp KQorICAgICAgICAocHl0aG9uLWluZGVudC1ndWVzcy1pbmRlbnQtb2Zmc2V0IG5pbCkpCisgICAg KHdoZW4gKG5vdCAoemVyb3AgKGxlbmd0aCBsaW5lcykpKQorICAgICAgKHdpdGgtdGVtcC1idWZm ZXIKKyAgICAgICAgKGRlbGF5LW1vZGUtaG9va3MKKyAgICAgICAgICAoaW5zZXJ0IChzdHJpbmct am9pbiBsaW5lcyAiXG4iKSkKKyAgICAgICAgICAocHl0aG9uLW1vZGUpCisgICAgICAgICAgKHB5 dGhvbi1zaGVsbC1jb21wbGV0aW9uLWV4dHJhLWNvbnRleHQpKSkpKSkKKworKGRlZnVuIHB5dGhv bi1zaGVsbC1jb21wbGV0aW9uLWV4dHJhLWNvbnRleHQgKCZvcHRpb25hbCBwb3MpCisgICJHZXQg ZXh0cmEgY29tcGxldGlvbiBjb250ZXh0IGF0IHBvc2l0aW9uIFBPUyBpbiBQeXRob24gYnVmZmVy LgorSWYgb3B0aW9uYWwgYXJndW1lbnQgUE9TIGlzIG5pbCwgdXNlIGN1cnJlbnQgcG9zaXRpb24u CisKK1JlYWRsaW5lIGNvbXBsZXRlcnMgY291bGQgdXNlIGN1cnJlbnQgbGluZSBhcyB0aGUgY29t cGxldGlvbgorY29udGV4dCwgd2hpY2ggbWF5IGJlIGluc3VmZmljaWVudC4gIEluIHRoaXMgZnVu Y3Rpb24sIGV4dHJhCitjb250ZXh0IChlLmcuIG11bHRpLWxpbmUgZnVuY3Rpb24gY2FsbCkgaXMg Zm91bmQgYW5kIHJlZm9ybWF0dGVkCithcyBvbmUgbGluZSwgd2hpY2ggaXMgcmVxdWlyZWQgYnkg bmF0aXZlIGNvbXBsZXRpb24uIgorICAobGV0IChib3VuZCBwKQorICAgIChzYXZlLWV4Y3Vyc2lv bgorICAgICAgKGFuZCBwb3MgKGdvdG8tY2hhciBwb3MpKQorICAgICAgKHNldHEgYm91bmQgKHBv cy1ib2wpKQorICAgICAgKHB5dGhvbi1uYXYtdXAtbGlzdCAtMSkKKyAgICAgICh3aGVuIChhbmQg KDwgKHBvaW50KSBib3VuZCkKKyAgICAgICAgICAgICAgICAgKG9yCisgICAgICAgICAgICAgICAg ICAobG9va2luZy1iYWNrCisgICAgICAgICAgICAgICAgICAgKHB5dGhvbi1yeCAoZ3JvdXAgKCsg KG9yICIuIiBzeW1ib2wtbmFtZSkpKSkgKHBvcy1ib2wpIHQpCisgICAgICAgICAgICAgICAgICAo cHJvZ24KKyAgICAgICAgICAgICAgICAgICAgKGZvcndhcmQtbGluZSAwKQorICAgICAgICAgICAg ICAgICAgICAobG9va2luZy1hdCAiXlsgXHRdKlxcKGZyb20gXFwpIikpKSkKKyAgICAgICAgKHNl dHEgcCAobWF0Y2gtYmVnaW5uaW5nIDEpKSkpCisgICAgKHdoZW4gcAorICAgICAgKHJlcGxhY2Ut cmVnZXhwLWluLXN0cmluZworICAgICAgICJcblsgXHRdKiIgIiIgKGJ1ZmZlci1zdWJzdHJpbmct bm8tcHJvcGVydGllcyBwICgxLSBib3VuZCkpKSkpKQogCiAoZGVmdmFyLWxvY2FsIHB5dGhvbi1z aGVsbC0tY2FwZi1jYWNoZSBuaWwKICAgIlZhcmlhYmxlIHRvIHN0b3JlIGNhY2hlZCBjb21wbGV0 aW9ucyBhbmQgaW52YWxpZGF0aW9uIGtleXMuIikKQEAgLTQ2MTIsMjEgKzQ2OTMsMjYgQEAgKGRl ZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50ICgmb3B0aW9uYWwgcHJvY2VzcykK ICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBXb3JraW5nIG9uIGEgc2hlbGwgYnVmZmVyOiB1 c2UgcHJvbXB0IGVuZC4KICAgICAgICAgICAgICAgICAgICAgICAgICAoY2RyIChweXRob24tdXRp bC1jb21pbnQtbGFzdC1wcm9tcHQpKQogICAgICAgICAgICAgICAgICAgICAgICAobGluZS1iZWdp bm5pbmctcG9zaXRpb24pKSkKLSAgICAgICAgIChpbXBvcnQtc3RhdGVtZW50Ci0gICAgICAgICAg KHdoZW4gKHN0cmluZy1tYXRjaC1wCi0gICAgICAgICAgICAgICAgIChyeCAoKiBzcGFjZSkgd29y ZC1zdGFydCAob3IgImZyb20iICJpbXBvcnQiKSB3b3JkLWVuZCBzcGFjZSkKLSAgICAgICAgICAg ICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBsaW5lLXN0YXJ0IChwb2ludCkp KQotICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyBsaW5lLXN0YXJ0 IChwb2ludCkpKSkKKyAgICAgICAgIChuby1kZWxpbXMKKyAgICAgICAgICAoYW5kIChub3QgKGlm IGlzLXNoZWxsLWJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgICAgKGVxICdmb250LWxvY2st Y29tbWVudC1mYWNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdldC10ZXh0LXByb3Bl cnR5ICgxLSAocG9pbnQpKSAnZmFjZSkpCisgICAgICAgICAgICAgICAgICAgICAgKHB5dGhvbi1z eW50YXgtY29udGV4dCAnY29tbWVudCkpKQorICAgICAgICAgICAgICAgKHdpdGgtY3VycmVudC1i dWZmZXIgKHByb2Nlc3MtYnVmZmVyIHByb2Nlc3MpCisgICAgICAgICAgICAgICAgIChpZiBweXRo b24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtZW5hYmxlCisgICAgICAgICAgICAgICAgICAgICAo c3RyaW5nPSBweXRob24tc2hlbGwtcmVhZGxpbmUtY29tcGxldGVyLWRlbGltcyAiIikKKyAgICAg ICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoLXAgImlweXRob25bMjNdP1xcJyIgcHl0aG9uLXNo ZWxsLWludGVycHJldGVyKSkpKSkKICAgICAgICAgIChzdGFydAogICAgICAgICAgIChpZiAoPCAo cG9pbnQpIGxpbmUtc3RhcnQpCiAgICAgICAgICAgICAgIChwb2ludCkKICAgICAgICAgICAgIChz YXZlLWV4Y3Vyc2lvbgotICAgICAgICAgICAgICAoaWYgKG5vdCAocmUtc2VhcmNoLWJhY2t3YXJk Ci0gICAgICAgICAgICAgICAgICAgICAgICAocHl0aG9uLXJ4Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgKG9yIHdoaXRlc3BhY2Ugb3Blbi1wYXJlbiBjbG9zZS1wYXJlbgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJpbmctZGVsaW1pdGVyIHNpbXBsZS1vcGVyYXRvcikpCi0gICAg ICAgICAgICAgICAgICAgICAgICBsaW5lLXN0YXJ0Ci0gICAgICAgICAgICAgICAgICAgICAgICB0 IDEpKQorICAgICAgICAgICAgICAoaWYgKG9yIG5vLWRlbGltcworICAgICAgICAgICAgICAgICAg ICAgIChub3QgKHJlLXNlYXJjaC1iYWNrd2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IChweXRob24tcngKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yIHdoaXRlc3BhY2Ug b3Blbi1wYXJlbiBjbG9zZS1wYXJlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RyaW5nLWRlbGltaXRlciBzaW1wbGUtb3BlcmF0b3IpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpbmUtc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0IDEpKSkKICAg ICAgICAgICAgICAgICAgIGxpbmUtc3RhcnQKICAgICAgICAgICAgICAgICAoZm9yd2FyZC1jaGFy IChsZW5ndGggKG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzIDApKSkKICAgICAgICAgICAgICAg ICAocG9pbnQpKSkpKQpAQCAtNDY2NiwxOCArNDc1Miw1NiBAQCAoZGVmdW4gcHl0aG9uLXNoZWxs LWNvbXBsZXRpb24tYXQtcG9pbnQgKCZvcHRpb25hbCBwcm9jZXNzKQogICAgICAgICAgICAgICAg ICAgKHQgIydweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRpdmUtZ2V0LWNvbXBsZXRpb25zKSkp KQogICAgICAgICAgKHByZXYtcHJvbXB0IChjYXIgcHl0aG9uLXNoZWxsLS1jYXBmLWNhY2hlKSkK ICAgICAgICAgIChyZSAob3IgKGNhZHIgcHl0aG9uLXNoZWxsLS1jYXBmLWNhY2hlKSByZWdleHAt dW5tYXRjaGFibGUpKQotICAgICAgICAgKHByZWZpeCAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9w ZXJ0aWVzIHN0YXJ0IGVuZCkpKQorICAgICAgICAgKHByZWZpeCAoYnVmZmVyLXN1YnN0cmluZy1u by1wcm9wZXJ0aWVzIHN0YXJ0IGVuZCkpCisgICAgICAgICAocHJlZml4LW9mZnNldCAwKQorICAg ICAgICAgKGV4dHJhLWNvbnRleHQgKHdoZW4gbm8tZGVsaW1zCisgICAgICAgICAgICAgICAgICAg ICAgICAgIChpZiBpcy1zaGVsbC1idWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChweXRob24tc2hlbGwtLWV4dHJhLWNvbXBsZXRpb24tY29udGV4dCkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tZXh0cmEtY29udGV4dCkpKSkK KyAgICAgICAgIChleHRyYS1vZmZzZXQgKGxlbmd0aCBleHRyYS1jb250ZXh0KSkpCisgICAgKHVu bGVzcyAoemVyb3AgZXh0cmEtb2Zmc2V0KQorICAgICAgKHNldHEgcHJlZml4IChjb25jYXQgZXh0 cmEtY29udGV4dCBwcmVmaXgpKSkKICAgICA7OyBUbyBpbnZhbGlkYXRlIHRoZSBjYWNoZSwgd2Ug Y2hlY2sgaWYgdGhlIHByb21wdCBwb3NpdGlvbiBvciB0aGUKICAgICA7OyBjb21wbGV0aW9uIHBy ZWZpeCBjaGFuZ2VkLgogICAgICh1bmxlc3MgKGFuZCAoZXF1YWwgcHJldi1wcm9tcHQgKGNhciBw cm9tcHQtYm91bmRhcmllcykpCi0gICAgICAgICAgICAgICAgIChzdHJpbmctbWF0Y2ggcmUgcHJl Zml4KSkKKyAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaCByZSBwcmVmaXgpCisgICAgICAg ICAgICAgICAgIChzZXRxIHByZWZpeC1vZmZzZXQgKC0gKGxlbmd0aCBwcmVmaXgpIChtYXRjaC1l bmQgMSkpKSkKICAgICAgIChzZXRxIHB5dGhvbi1zaGVsbC0tY2FwZi1jYWNoZQogICAgICAgICAg ICAgYCgsKGNhciBwcm9tcHQtYm91bmRhcmllcykKICAgICAgICAgICAgICAgLChpZiAoc3RyaW5n LWVtcHR5LXAgcHJlZml4KQogICAgICAgICAgICAgICAgICAgIHJlZ2V4cC11bm1hdGNoYWJsZQot ICAgICAgICAgICAgICAgICAoY29uY2F0ICJcXGAiIChyZWdleHAtcXVvdGUgcHJlZml4KSAiXFwo PzpcXHN3XFx8XFxzX1xcKSpcXCciKSkKLSAgICAgICAgICAgICAgLEAoZnVuY2FsbCBjb21wbGV0 aW9uLWZuIHByb2Nlc3MgKG9yIGltcG9ydC1zdGF0ZW1lbnQgcHJlZml4KSkpKSkKLSAgICAobGlz dCBzdGFydCBlbmQgKGNkZHIgcHl0aG9uLXNoZWxsLS1jYXBmLWNhY2hlKSkpKQorICAgICAgICAg ICAgICAgICAoY29uY2F0ICJcXGBcXCgiIChyZWdleHAtcXVvdGUgcHJlZml4KSAiXFwpXFwoPzpc XHN3XFx8XFxzX1xcKSpcXCciKSkKKyAgICAgICAgICAgICAgLEAoZnVuY2FsbCBjb21wbGV0aW9u LWZuIHByb2Nlc3MgcHJlZml4KSkpKQorICAgIChsZXQgKChjYW5kcyAoY2RkciBweXRob24tc2hl bGwtLWNhcGYtY2FjaGUpKSkKKyAgICAgIChjb25kCisgICAgICAgKChzdHJpbmdwIChjYXIgY2Fu ZHMpKQorICAgICAgICAoaWYgbm8tZGVsaW1zCisgICAgICAgICAgICA7OyBSZWR1Y2UgY29tcGxl dGlvbiBjYW5kaWRhdGVzIGR1ZSB0byBsb25nIHByZWZpeC4KKyAgICAgICAgICAgIChpZi1sZXQg KChMcCAobGVuZ3RoIHByZWZpeCkpCisgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRj aCAiXFwoXFxzd1xcfFxcc19cXCkrXFwnIiBwcmVmaXgpKQorICAgICAgICAgICAgICAgICAgICAg KEwgKG1hdGNoLWJlZ2lubmluZyAwKSkpCisgICAgICAgICAgICAgICAgOzsgSWYgZXh0cmEtb2Zm c2V0IGlzIG5vdCB6ZXJvOgorICAgICAgICAgICAgICAgIDs7ICAgICAgICAgICAgICAgICAgc3Rh cnQgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgIDs7IG8tLS0tLS0tLS0tLS0tLS0t LS1vLS0tLS0tLS0tby0tLS0tLS1vCisgICAgICAgICAgICAgICAgOzsgfDwtIGV4dHJhLW9mZnNl dCAtPnwKKyAgICAgICAgICAgICAgICA7OyB8PC0tLS0tLS0tLS0tIEwgLS0tLS0tLS0tLS0tPnwK KyAgICAgICAgICAgICAgICA7OyAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3LXN0YXJ0Cisg ICAgICAgICAgICAgICAgKGxpc3QgKCsgc3RhcnQgTCAoLSBleHRyYS1vZmZzZXQpKSBlbmQKKyAg ICAgICAgICAgICAgICAgICAgICAobWFwY2FyIChsYW1iZGEgKHMpIChzdWJzdHJpbmcgcyBMKSkg Y2FuZHMpKQorICAgICAgICAgICAgICAobGlzdCBlbmQgZW5kIChtYXBjYXIgKGxhbWJkYSAocykg KHN1YnN0cmluZyBzIExwKSkgY2FuZHMpKSkKKyAgICAgICAgICAobGlzdCBzdGFydCBlbmQgY2Fu ZHMpKSkKKyAgICAgICA7OyBweXRob24tc2hlbGwtY29tcGxldGlvbigtbmF0aXZlKS1nZXQtY29t cGxldGlvbnMgbWF5IHByb2R1Y2UgYQorICAgICAgIDs7IGxpc3Qgb2YgKHRleHQgc3RhcnQgZW5k IHR5cGUgc2lnbmF0dXJlKSBmb3IgY29tcGxldGlvbi4KKyAgICAgICAoKGNvbnNwIChjYXIgY2Fu ZHMpKQorICAgICAgICAobGlzdCAoKyBzdGFydCAobnRoIDEgKGNhciBjYW5kcykpICgtIGV4dHJh LW9mZnNldCkpCisgICAgICAgICAgICAgIDs7IENhbmRpZGF0ZXMgbWF5IGJlIGNhY2hlZCwgc28g dGhlIGVuZCBwb3NpdGlvbiBzaG91bGQKKyAgICAgICAgICAgICAgOzsgYmUgYWRqdXN0ZWQgYWNj b3JkaW5nIHRvIGN1cnJlbnQgY29tcGxldGlvbiBwcmVmaXguCisgICAgICAgICAgICAgICgrIHN0 YXJ0IChudGggMiAoY2FyIGNhbmRzKSkgKC0gZXh0cmEtb2Zmc2V0KSBwcmVmaXgtb2Zmc2V0KQor ICAgICAgICAgICAgICBjYW5kcworICAgICAgICAgICAgICA6YW5ub3RhdGlvbi1mdW5jdGlvbgor ICAgICAgICAgICAgICAobGFtYmRhIChjKSAoY29uY2F0ICIgIiAobnRoIDMgKGFzc29jIGMgY2Fu ZHMpKSkpCisgICAgICAgICAgICAgIDpjb21wYW55LWRvY3NpZworICAgICAgICAgICAgICAobGFt YmRhIChjKSAobnRoIDQgKGFzc29jIGMgY2FuZHMpKSkpKSkpKSkKIAogKGRlZmluZS1vYnNvbGV0 ZS1mdW5jdGlvbi1hbGlhcwogICAncHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tY29tcGxldGUtYXQt cG9pbnQKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsIGIv dGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwKaW5kZXggNTk5NTdmZjA3MTIuLmFm NmMxOTliNWJkIDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5l bAorKysgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbApAQCAtNDc5OSw2ICs0 Nzk5LDk4IEBAIChlcnQtZGVmdGVzdCBweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludC1u YXRpdmUtMSAoKQogICAgICAoZW5kLW9mLWxpbmUgMCkKICAgICAgKHNob3VsZC1ub3QgKG50aCAy IChweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludCkpKSkpKQogCisoZGVmdW4gcHl0aG9u LXRlc3RzLS1jb21wbGV0aW9uLW1vZHVsZSAoKQorICAiQ2hlY2sgaWYgbW9kdWxlcyBjYW4gYmUg Y29tcGxldGVkIGluIFB5dGhvbiBzaGVsbC4iCisgIChpbnNlcnQgImltcG9ydCBkYXRldCIpCisg IChjb21wbGV0aW9uLWF0LXBvaW50KQorICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgIChzaG91bGQg KGxvb2tpbmctYXQtcCAiaW1wb3J0IGRhdGV0aW1lIikpCisgIChraWxsLWxpbmUpCisgIChpbnNl cnQgImZyb20gZGF0ZXQiKQorICAoY29tcGxldGlvbi1hdC1wb2ludCkKKyAgKGJlZ2lubmluZy1v Zi1saW5lKQorICAoc2hvdWxkIChsb29raW5nLWF0LXAgImZyb20gZGF0ZXRpbWUiKSkKKyAgKGVu ZC1vZi1saW5lKQorICAoaW5zZXJ0ICIgaW1wb3J0IHRpbWVkIikKKyAgKGNvbXBsZXRpb24tYXQt cG9pbnQpCisgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgKHNob3VsZCAobG9va2luZy1hdC1wICJm cm9tIGRhdGV0aW1lIGltcG9ydCB0aW1lZGVsdGEiKSkKKyAgKGtpbGwtbGluZSkpCisKKyhkZWZ1 biBweXRob24tdGVzdHMtLWNvbXBsZXRpb24tcGFyYW1ldGVycyAoKQorICAiQ2hlY2sgaWYgcGFy YW1ldGVycyBjYW4gYmUgY29tcGxldGVkIGluIFB5dGhvbiBzaGVsbC4iCisgIChpbnNlcnQgImlt cG9ydCByZSIpCisgIChjb21pbnQtc2VuZC1pbnB1dCkKKyAgKHB5dGhvbi10ZXN0cy1zaGVsbC13 YWl0LWZvci1wcm9tcHQpCisgIChpbnNlcnQgInJlLnNwbGl0KCdiJywgJ2FiYycsIG1heHMiKQor ICAoY29tcGxldGlvbi1hdC1wb2ludCkKKyAgKHNob3VsZCAoc3RyaW5nPSAicmUuc3BsaXQoJ2In LCAnYWJjJywgbWF4c3BsaXQ9IgorICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5n IChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKHBvaW50KSkpKQorICAoaW5zZXJ0ICIwLCAiKQor ICAoc2hvdWxkIChweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludCkpCisgIDs7IFRlc3Qg aWYgY2FjaGUgaXMgdXNlZC4KKyAgKGNsLWxldGYgKCgoc3ltYm9sLWZ1bmN0aW9uICdweXRob24t c2hlbGwtY29tcGxldGlvbi1nZXQtY29tcGxldGlvbnMpCisgICAgICAgICAgICAgJ2lnbm9yZSkK KyAgICAgICAgICAgICgoc3ltYm9sLWZ1bmN0aW9uICdweXRob24tc2hlbGwtY29tcGxldGlvbi1u YXRpdmUtZ2V0LWNvbXBsZXRpb25zKQorICAgICAgICAgICAgICdpZ25vcmUpKQorICAgIChpbnNl cnQgImZsYSIpCisgICAgKGNvbXBsZXRpb24tYXQtcG9pbnQpCisgICAgKHNob3VsZCAoc3RyaW5n PSAicmUuc3BsaXQoJ2InLCAnYWJjJywgbWF4c3BsaXQ9MCwgZmxhZ3M9IgorICAgICAgICAgICAg ICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmcgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAocG9p bnQpKSkpKQorICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgIChraWxsLWxpbmUpKQorCisoZGVmdW4g cHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLWV4dHJhLWNvbnRleHQgKCkKKyAgIkNoZWNrIGlmIGV4 dHJhIGNvbnRleHQgaXMgdXNlZCBmb3IgY29tcGxldGlvbi4iCisgIChpbnNlcnQgInJlLnNwbGl0 KCdiJywgJ2FiYycsIikKKyAgKGNvbWludC1zZW5kLWlucHV0KQorICAocHl0aG9uLXRlc3RzLXNo ZWxsLXdhaXQtZm9yLXByb21wdCkKKyAgKGluc2VydCAibWF4cyIpCisgIChjb21wbGV0aW9uLWF0 LXBvaW50KQorICAoc2hvdWxkIChzdHJpbmc9ICJtYXhzcGxpdD0iCisgICAgICAgICAgICAgICAg ICAgKGJ1ZmZlci1zdWJzdHJpbmcgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAocG9pbnQpKSkp CisgIChpbnNlcnQgIjApIikKKyAgKGNvbWludC1zZW5kLWlucHV0KQorICAocHl0aG9uLXRlc3Rz LXNoZWxsLXdhaXQtZm9yLXByb21wdCkKKyAgKGluc2VydCAiZnJvbSByZSBpbXBvcnQgKCIpCisg IChjb21pbnQtc2VuZC1pbnB1dCkKKyAgKHB5dGhvbi10ZXN0cy1zaGVsbC13YWl0LWZvci1wcm9t cHQpCisgIChpbnNlcnQgIklHTiIpCisgIChjb21wbGV0aW9uLWF0LXBvaW50KQorICAoc2hvdWxk IChzdHJpbmc9ICJJR05PUkVDQVNFIgorICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3Ry aW5nIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKHBvaW50KSkpKSkKKworKGVydC1kZWZ0ZXN0 IHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50LWplZGktY29tcGxldGVyICgpCisgICJD aGVjayBpZiBQeXRob24gc2hlbGwgY29tcGxldGlvbiB3b3JrcyB3aGVuIEplZGkgY29tcGxldGVy IGlzIHVzZWQuIgorICAoc2tpcC11bmxlc3MgKGV4ZWN1dGFibGUtZmluZCBweXRob24tdGVzdHMt c2hlbGwtaW50ZXJwcmV0ZXIpKQorICAocHl0aG9uLXRlc3RzLXdpdGgtdGVtcC1idWZmZXItd2l0 aC1zaGVsbAorICAgIiIKKyAgIChweXRob24tc2hlbGwtd2l0aC1zaGVsbC1idWZmZXIKKyAgICAg KHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9uKQorICAgICAoc2tpcC11bmxl c3MgKHN0cmluZz0gcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMgIiIpKQor ICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLW1vZHVsZSkKKyAgICAgKHB5dGhvbi10ZXN0 cy0tY29tcGxldGlvbi1wYXJhbWV0ZXJzKQorICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9u LWV4dHJhLWNvbnRleHQpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24tc2hlbGwtY29tcGxldGlv bi1hdC1wb2ludC1pcHl0aG9uICgpCisgICJDaGVjayBpZiBQeXRob24gc2hlbGwgY29tcGxldGlv biB3b3JrcyBmb3IgSVB5dGhvbi4iCisgIChsZXQgKChweXRob24tc2hlbGwtaW50ZXJwcmV0ZXIg ImlweXRob24iKQorICAgICAgICAocHl0aG9uLXNoZWxsLWludGVycHJldGVyLWFyZ3MgIi1pIC0t c2ltcGxlLXByb21wdCIpKQorICAgIChza2lwLXVubGVzcworICAgICAoYW5kCisgICAgICAoZXhl Y3V0YWJsZS1maW5kIHB5dGhvbi1zaGVsbC1pbnRlcnByZXRlcikKKyAgICAgIChlcWwgKGNhbGwt cHJvY2VzcyBweXRob24tc2hlbGwtaW50ZXJwcmV0ZXIgbmlsIG5pbCBuaWwgIi0tdmVyc2lvbiIp IDApKSkKKyAgICAocHl0aG9uLXRlc3RzLXdpdGgtdGVtcC1idWZmZXItd2l0aC1zaGVsbAorICAg ICAiIgorICAgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVmZmVyCisgICAgICAgKHB5dGhv bi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9mZikKKyAgICAgICAocHl0aG9uLXRlc3Rz LS1jb21wbGV0aW9uLW1vZHVsZSkKKyAgICAgICAocHl0aG9uLXRlc3RzLS1jb21wbGV0aW9uLXBh cmFtZXRlcnMpCisgICAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9u KQorICAgICAgIChza2lwLXVubGVzcyAoc3RyaW5nPSBweXRob24tc2hlbGwtcmVhZGxpbmUtY29t cGxldGVyLWRlbGltcyAiIikpCisgICAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1tb2R1 bGUpCisgICAgICAgKHB5dGhvbi10ZXN0cy0tY29tcGxldGlvbi1wYXJhbWV0ZXJzKQorICAgICAg IChweXRob24tdGVzdHMtLWNvbXBsZXRpb24tZXh0cmEtY29udGV4dCkpKSkpCiAKIAwKIDs7OyBQ REIgVHJhY2sgaW50ZWdyYXRpb24KLS0gCjIuMzkuMgoK --0000000000008649db0610ca961f--