From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Okamsn via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#73431: Add `setf` support for `stream.el` in ELPA Date: Sun, 29 Sep 2024 19:30:42 +0000 Message-ID: <6caa1395-a3b2-4e70-b905-1cbfee0f92bd@protonmail.com> References: <827cc7fc-10be-4b93-bd67-f275193e5d84@protonmail.com> <87o74bqy9g.fsf@posteo.net> <87jzexqgg8.fsf@posteo.net> <87tte0q2qc.fsf@posteo.net> <068ecfc3-b452-49a8-89bb-f42012aea5d4@protonmail.com> Reply-To: Okamsn Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_guz4NsQFJkSIIMcYkRFzKmQJDI1T0paKBWCV3Zw0" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="17132"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Philip Kaludercic , Nicolas Petton , 73431@debbugs.gnu.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Sep 29 21:32:09 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 1suzeL-0004Jg-0j for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 29 Sep 2024 21:32:09 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1suzds-00039d-2w; Sun, 29 Sep 2024 15:31:40 -0400 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 1suzdi-000394-KL for bug-gnu-emacs@gnu.org; Sun, 29 Sep 2024 15:31:31 -0400 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 1suzdi-00008e-BJ for bug-gnu-emacs@gnu.org; Sun, 29 Sep 2024 15:31:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:From:Date:To:Subject; bh=x5aj7DMx8ES/OSKB7nFAERGkmLgx8l9O1foWW/MxyCc=; b=p+44YMZ5e5ap3jMFNU1FZrMO0vDYwRWS/e3TQwPuW86W0kL5z2Mn1pfHz9BPOW8m0nl8xt6r0Bu24sZgs+dTE9endBBexDFGo3Epo7LoVCYbd9AcLYCdZ50k50w0AnazNzEC/f1YwQr4/kZXeA4D1/ywgw5CVNr7H+be0JLCYcZOLCpfPbxBw9UTD0gCXGsUwLMWtAa/ObOnYEfGIcIUHU6QR36ehaFMZyLduTzFgnqrWsBuuZaz9GBZrQcBEJQbOaPc9aAbWvON9Jor9BdIvcUxsXzFGlsIUeZeiZW0TuWOD/rF5xOUhtxxTq5cLAJ+LriGfCdq7VugO2vK2Ie1yA==; Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1suzeD-0006rW-Vs for bug-gnu-emacs@gnu.org; Sun, 29 Sep 2024 15:32:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Okamsn Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 29 Sep 2024 19:32:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 73431 X-GNU-PR-Package: emacs Original-Received: via spool by 73431-submit@debbugs.gnu.org id=B73431.172763829026360 (code B ref 73431); Sun, 29 Sep 2024 19:32:01 +0000 Original-Received: (at 73431) by debbugs.gnu.org; 29 Sep 2024 19:31:30 +0000 Original-Received: from localhost ([127.0.0.1]:41890 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1suzdh-0006r6-HW for submit@debbugs.gnu.org; Sun, 29 Sep 2024 15:31:30 -0400 Original-Received: from mail-4322.protonmail.ch ([185.70.43.22]:24907) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1suzde-0006qe-Cd for 73431@debbugs.gnu.org; Sun, 29 Sep 2024 15:31:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1727638247; x=1727897447; bh=x5aj7DMx8ES/OSKB7nFAERGkmLgx8l9O1foWW/MxyCc=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=JbvzPLMA74CdneCc+o93Wwm+u3/cQT7/ESWi9Pd28x1B8opwB0VrM8igAzTjujpwC I+aiobTonfYmBGosZIf/UpwTi21vPtm6ExGwdpF2fPr2Qx0wuqSrcbijJ88tsby7iB Omzhrqi6heVk2AnQEC5dklK47JfXT+Qb6wj7CJ4Aa0G82UR/gn31QB2pfON/XZSnot P9QsQvNKND2Bcs9QGdB8hXsbnE3w8TaU7Ox9IXwv8ph+Qvon0hL+OmoSjl//I3ny21 DLE5xYSyfN4aEfm+bivD5AryP0HruP3+d91rc5bxDiAnCRfRZRMjhRoH3muyzcrjmd tZ1m5wVO/m+ew== In-Reply-To: Feedback-ID: 25935600:user:proton X-Pm-Message-ID: 438d798323414d032c1de058de29abbaad9c2276 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:292664 Archived-At: This is a multi-part message in MIME format. --b1_guz4NsQFJkSIIMcYkRFzKmQJDI1T0paKBWCV3Zw0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Stefan Monnier wrote: >> Is there a major downside to using `cl-defstruct` to define a stream? >=20 > Probably not major, no. Beware: it'll come with several upsides, tho. >=20 >=20 > Stefan >=20 Hello, Please see the attached file. It changes streams to be structs, warns=20 that streams are not mutable, adds a creation method for arrays that=20 doesn't create intermediate sub-arrays, and adds some methods for=20 streams for more of the seq.el functions. Please let me know what you would like changed. Thank you. --b1_guz4NsQFJkSIIMcYkRFzKmQJDI1T0paKBWCV3Zw0 Content-Type: text/x-patch; charset=UTF-8; name=0001-Change-stream.el-to-use-structs-instead-of-cons-cell.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0001-Change-stream.el-to-use-structs-instead-of-cons-cell.patch RnJvbSBkYjNlYmY3ODE2N2JmMDJiNzhlOTg2NTcyMWY1YjI0MDk4MjM5NGNhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFYXJsIEh5YXR0IDxva2Ftc25AcHJvdG9ubWFpbC5jb20+CkRh dGU6IFNhdCwgMjggU2VwIDIwMjQgMTU6MDk6MTAgLTA0MDAKU3ViamVjdDogW1BBVENIXSBDaGFu Z2UgJ3N0cmVhbS5lbCcgdG8gdXNlIHN0cnVjdHMgaW5zdGVhZCBvZiBjb25zIGNlbGxzLiAKIFVw ZGF0ZSBmZWF0dXJlcy4KCiogc3RyZWFtLmVsIChzdHJlYW0pOiBEZWZpbmUgdGhlIHN0cnVjdHVy ZSB1c2luZyAnY2wtZGVmc3RydWN0Jy4KCiogc3RyZWFtLmVsIChzdHJlYW0tbWFrZSk6IENoYW5n ZSB0byB1c2UgbmV3IHN0cnVjdHVyZSBjb25zdHJ1Y3Rvcgonc3RyZWFtLS1tYWtlLXN0cmVhbScu CgoqIHN0cmVhbS5lbCAoc3RyZWFtLS1mb3JjZSwgc3RyZWFtLWZpcnN0LCBzdHJlYW0tcmVzdCkK KHN0cmVhbS1lbXB0eSwgc3RyZWFtLWVtcHR5LXApOiBSZWRlZmluZSB0byB1c2Ugc3RydWN0dXJl IHNsb3RzLiAgTW92ZQp0byBiZSBjbG9zZXIgdG8gdGhlIHN0cnVjdHVyZSBkZWZpbml0aW9uLgoK KiBzdHJlYW0uZWwgKHN0cmVhbS1maXJzdCwgc3RyZWFtLXJlc3QpOiBTaWduYWwgYW4gZXJyb3Ig d2hlbiB0cnlpbmcgdG8gdXNlCnRoZXNlIGZ1bmN0aW9ucyBhcyBwbGFjZXMgZm9yICdzZXRmJy4K Ciogc3RyZWFtLmVsIChzdHJlYW0tLWZyZXNoLWlkZW50aWZpZXIsIHN0cmVhbS0tZXZhbGQtaWRl bnRpZmllcik6ClJlbW92ZSBub3cgdW51c2VkIGRlZmluaXRpb25zLgoKKiBzdHJlYW0uZWwgKHN0 cmVhbSk6IEFkZCBhIG1ldGhvZCB0aGF0IGFjY2VwdHMgYSBzdHJlYW0sIHJldHVybmluZyBpdAp1 bm1vZGlmaWVkLiAgVGhpcyBtYWtlcyBtYXBwaW5nIGFjcm9zcyBtdWx0aXBsZSBzZXF1ZW5jZXMg ZWFzaWVyLgoKKiBzdHJlYW0uZWwgKHN0cmVhbSk6IEFkZCBhIG1ldGhvZCB0aGF0IGFjY2VwdHMg YW4gYXJyYXkgYW5kIHdoaWNoIGRvZXMgbm90CmNyZWF0ZSBzdWItc2VxdWVuY2VzIG9mIHRoZSBh cnJheSwgdW5saWtlIHRoZSBpbXBsZW1lbnRhdGlvbiBmb3IgZ2VuZXJpYwpzZXF1ZW5jZXMuICBU aGlzIGlzIGEgYml0IGZhc3RlciBhbmQgaXMgYSBnb29kIGV4YW1wbGUgb2YgYSBjdXN0b20gdXBk YXRlcgpmdW5jdGlvbi4KCiogc3RyZWFtLmVsIChzdHJlYW0tLWdlbmVyYWxpemVyLCBjbC1nZW5l cmljLWdlbmVyYWxpemVycyk6IFJlbW92ZQp0aGVzZSBzcGVjaWFsaXplcnMgZnJvbSB0aGUgb2xk LCBjb25zLWJhc2VkIGltcGxlbWVudGF0aW9uLgoKKiBzdHJlYW0uZWwgKHNlcS1lbHQpOiBTaWdu YWwgYW4gZXJyb3Igd2hlbiB0cnlpbmcgdG8gdXNlIHRoaXMgZnVuY3Rpb24gYXMgYQpwbGFjZSBm b3IgJ3NldGYnLgoKKiBzdHJlYW0uZWwgKHNlcS1zb3J0LCBzZXEtcmV2ZXJzZSwgc2VxLWNvbmNh dGVuYXRlLCBzZXEtcmVtb3ZlLWF0LXBvc2l0aW9uKToKQWRkIG1ldGhvZHMgdGhhdCBkaWQgbm90 IHdvcmsgYXMgZXhwZWN0ZWQgd2l0aCB0aGUgZ2VuZXJpYyBpbXBsZW1lbnRhdGlvbi4KCiogdGVz dHMvc3RyZWFtLXRlc3RzLmVsIChzdHJlYW0tc2VxLXNvcnQtdGVzdCwgc3RyZWFtLXNlcS1yZXZl cnNlLXRlc3QpCihzdHJlYW0tc2VxLWNvbmNhdGVuYXRlLXRlc3QsIHN0cmVhbS1zZXEtbWFwY2F0 LXRlc3QpCihzdHJlYW0tc2VxLXJlbW92ZS1hdC1wb3NpdGlvbiwgc3RyZWFtLWFycmF5LXRlc3Qp OiBBZGQgdGVzdHMgZm9yIHRoZXNlCmZlYXR1cmVzLgoKKiB0ZXN0cy9zdHJlYW0tdGVzdHMuZWw6 IFRlc3QgdGhhdCBldmFsdWF0aW9uIGlzIGRlbGF5ZWQgZm9yCnNlcS1kcm9wLXdoaWxlLCBzZXEt cmVtb3ZlLWF0LXBvc2l0aW9uLCBhbmQgc2VxLXNvcnQKdXNpbmcgZGVmdGVzdC1mb3ItZGVsYXll ZC1ldmFsdWF0aW9uLgotLS0KIHN0cmVhbS5lbCAgICAgICAgICAgICB8IDI0OCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIHRlc3RzL3N0cmVhbS10ZXN0cy5lbCB8 ICA0NCArKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAyMjkgaW5zZXJ0aW9ucygrKSwgNjMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3RyZWFtLmVsIGIvc3RyZWFtLmVsCmluZGV4IDcxMzVl ZTAuLjFhMjZjODEgMTAwNjQ0Ci0tLSBhL3N0cmVhbS5lbAorKysgYi9zdHJlYW0uZWwKQEAgLTY2 LDM2ICs2NiwxMjggQEAKIChldmFsLXdoZW4tY29tcGlsZSAocmVxdWlyZSAnY2wtbGliKSkKIChy ZXF1aXJlICdzZXEpCiAKLShldmFsLWFuZC1jb21waWxlCi0gIChkZWZjb25zdCBzdHJlYW0tLWZy ZXNoLWlkZW50aWZpZXIgJy0tc3RyZWFtLWZyZXNoLS0KLSAgICAiU3ltYm9sIGludGVybmFsbHkg dXNlZCB0byBzdHJlYW1zIHdob3NlIGhlYWQgd2FzIG5vdCBldmFsdWF0ZWQuIikKLSAgKGRlZmNv bnN0IHN0cmVhbS0tZXZhbGQtaWRlbnRpZmllciAnLS1zdHJlYW0tZXZhbGQtLQotICAgICJTeW1i b2wgaW50ZXJuYWxseSB1c2VkIHRvIHN0cmVhbXMgd2hvc2UgaGVhZCB3YXMgZXZhbHVhdGVkLiIp KQorKGNsLWRlZnN0cnVjdCAoc3RyZWFtICg6Y29uc3RydWN0b3Igc3RyZWFtLS1tYWtlLXN0cmVh bSkKKyAgICAgICAgICAgICAgICAgICAgICAoOnByZWRpY2F0ZSBzdHJlYW1wKQorICAgICAgICAg ICAgICAgICAgICAgIDpuYW1lZCkKKworICAiQSBsYXppbHkgZXZhbHVhdGVkIHNlcXVlbmNlLCBj b21wYXRpYmxlIHdpdGggdGhlIGBzZXEnIGxpYnJhcnkncyBmdW5jdGlvbnMuIgorCisgIChldmFs dWF0ZWQtLWludGVybmFsCisgICBuaWwKKyAgIDp0eXBlIGJvb2xlYW4KKyAgIDpkb2N1bWVudGF0 aW9uICJXaGV0aGVyIHRoZSBoZWFkIGFuZCB0YWlsIG9mIHRoZSBzdHJlYW0gYXJlIGFjY2Vzc2li bGUuCisKK1RoaXMgdmFsdWUgaXMgc2V0IHRvIHQgdmlhIHRoZSBmdW5jdGlvbiBgc3RyZWFtLS1m b3JjZScgYWZ0ZXIgaXQKK2NhbGxzIHRoZSB1cGRhdGVyIGZ1bmN0aW9uLiIpCisKKyAgKGZpcnN0 LS1pbnRlcm5hbAorICAgbmlsCisgICA6dHlwZSAob3IgdCBudWxsKQorICAgOmRvY3VtZW50YXRp b24gIlRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBzdHJlYW0uIikKKworICAocmVzdC0taW50ZXJu YWwKKyAgIG5pbAorICAgOnR5cGUgKG9yIHN0cmVhbSBudWxsKQorICAgOmRvY3VtZW50YXRpb24g IlRoZSByZXN0IG9mIHRoZSBzdHJlYW0sIHdoaWNoIGlzIGl0c2VsZiBhIHN0cmVhbS4iKQorCisg IChlbXB0eS0taW50ZXJuYWwKKyAgIG5pbAorICAgOnR5cGUgYm9vbGVhbgorICAgOmRvY3VtZW50 YXRpb24gIldoZXRoZXIgdGhlIGV2YWx1YXRlZCBzdHJlYW0gaXMgZW1wdHkuCisKK0Egc3RyZWFt IGlzIGVtcHR5IGlmIHRoZSB1cGRhdGVyIGZ1bmN0aW9uIHJldHVybnMgbmlsIHdoZW4KK2BzdHJl YW0tLWZvcmNlJyBldmFsdWF0ZXMgdGhlIHN0cmVhbS4iKQorCisgICh1cGRhdGVyLS1pbnRlcm5h bAorICAgbmlsCisgICA6dHlwZSAob3IgZnVuY3Rpb24gbnVsbCkKKyAgIDpkb2N1bWVudGF0aW9u ICJGdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIGhlYWQgYW5kIHRhaWwgb2YgdGhlIHN0cmVhbSB3 aGVuIGNhbGxlZC4KKworVGhlIHVwZGF0ZXIgZnVuY3Rpb24gcmV0dXJucyB0aGUgaGVhZCBhbmQg dGFpbCBpbiBhIGNvbnMgY2VsbC4KK0lmIGl0IHJldHVybnMgbmlsLCB0aGVuIHRoZSBzdHJlYW0g aXMgZW1wdHkgYW5kIGBlbXB0eS0taW50ZXJuYWwnIGlzCitzZXQgdG8gdC4gIEFmdGVyIHRoaXMg ZnVuY3Rpb24gaXMgY2FsbGVkLCBhc3N1bWluZyBubyBlcnJvcnMgd2VyZSBzaWduYWxlZCwKK2Bl dmFsdWF0ZWQtLWludGVybmFsJyBpcyBzZXQgdG8gdC4KKworSW4gdGhlIGNhc2Ugb2YgdGhlIGNh bm9uaWNhbCBlbXB0eSBzdHJlYW0gKHNlZSB0aGUgdmFyaWFibGUgYHN0cmVhbS1lbXB0eScpLAor dGhpcyBzbG90IGlzIG5pbC4iKSkKKworKGRlZnVuIHN0cmVhbS0tZm9yY2UgKHN0cmVhbSkKKyAg IkV2YWx1YXRlIGFuZCByZXR1cm4gdGhlIFNUUkVBTS4KKworSWYgdGhlIG91dHB1dCBvZiB0aGUg dXBkYXRlciBmdW5jdGlvbiBpcyBuaWwsIHRoZW4gU1RSRUFNIGlzCittYXJrZWQgYXMgZW1wdHku ICBPdGhlcndpc2UsIHRoZSBvdXRwdXQgb2YgdGhlIHVwZGF0ZXIgZnVuY3Rpb24KK2lzIHVzZWQg dG8gc2V0IHRoZSBoZWFkIGFuZCB0aGUgdGFpbCBvZiB0aGUgc3RyZWFtLiIKKyAgKGlmIChzdHJl YW0tZXZhbHVhdGVkLS1pbnRlcm5hbCBzdHJlYW0pCisgICAgICBzdHJlYW0KKyAgICAocGNhc2Ug KGZ1bmNhbGwgKHN0cmVhbS11cGRhdGVyLS1pbnRlcm5hbCBzdHJlYW0pKQorICAgICAgKGAoLGhl YWQgLiAsdGFpbCkKKyAgICAgICAoc2V0ZiAoc3RyZWFtLWZpcnN0LS1pbnRlcm5hbCBzdHJlYW0p IGhlYWQKKyAgICAgICAgICAgICAoc3RyZWFtLXJlc3QtLWludGVybmFsIHN0cmVhbSkgdGFpbCkp CisgICAgICAoKHByZWQgbnVsbCkKKyAgICAgICAoc2V0ZiAoc3RyZWFtLWVtcHR5LS1pbnRlcm5h bCBzdHJlYW0pIHQpKQorICAgICAgKGJhZC1vdXRwdXQKKyAgICAgICAoZXJyb3IgIkJhZCBvdXRw dXQgZnJvbSBzdHJlYW0gdXBkYXRlcjogJXMiCisgICAgICAgICAgICAgIGJhZC1vdXRwdXQpKSkK KyAgICAoc2V0ZiAoc3RyZWFtLWV2YWx1YXRlZC0taW50ZXJuYWwgc3RyZWFtKSB0KQorICAgIHN0 cmVhbSkpCiAKIChkZWZtYWNybyBzdHJlYW0tbWFrZSAoJnJlc3QgYm9keSkKICAgIlJldHVybiBh IHN0cmVhbSBidWlsdCBmcm9tIEJPRFkuCi1CT0RZIG11c3QgcmV0dXJuIG5pbCBvciBhIGNvbnMg Y2VsbCB3aG9zZSBjZHIgaXMgaXRzZWxmIGEKLXN0cmVhbS4iCi0gIChkZWNsYXJlIChkZWJ1ZyB0 KSkKLSAgYChjb25zICcsc3RyZWFtLS1mcmVzaC1pZGVudGlmaWVyIChsYW1iZGEgKCkgLEBib2R5 KSkpCiAKLShkZWZ1biBzdHJlYW0tLWZvcmNlIChzdHJlYW0pCi0gICJFdmFsdWF0ZSBhbmQgcmV0 dXJuIHRoZSBmaXJzdCBjb25zIGNlbGwgb2YgU1RSRUFNLgotVGhhdCB2YWx1ZSBpcyB0aGUgb25l IHBhc3NlZCB0byBgc3RyZWFtLW1ha2UnLiIKLSAgKGNvbmQKLSAgICgoZXEgKGNhci1zYWZlIHN0 cmVhbSkgc3RyZWFtLS1ldmFsZC1pZGVudGlmaWVyKQotICAgIChjZHIgc3RyZWFtKSkKLSAgICgo ZXEgKGNhci1zYWZlIHN0cmVhbSkgc3RyZWFtLS1mcmVzaC1pZGVudGlmaWVyKQotICAgIChwcm9n MSAoc2V0ZiAoY2RyIHN0cmVhbSkgKGZ1bmNhbGwgKGNkciBzdHJlYW0pKSkKLSAgICAgIDs7IGlk ZW50aWZpZXIgaXMgb25seSB1cGRhdGVkIHdoZW4gZm9yY2luZyBkaWRuJ3QgZXhpdCBub25sb2Nh bGx5Ci0gICAgICAoc2V0ZiAoY2FyIHN0cmVhbSkgc3RyZWFtLS1ldmFsZC1pZGVudGlmaWVyKSkp Ci0gICAodCAoc2lnbmFsICd3cm9uZy10eXBlLWFyZ3VtZW50IChsaXN0ICdzdHJlYW1wIHN0cmVh bSkpKSkpCitCT0RZIG11c3QgcmV0dXJuIGEgY29ucyBjZWxsIHdob3NlIGNhciB3b3VsZCBiZSB0 aGUgaGVhZCBvZiBhCitzdHJlYW0gYW5kIHdob3NlIGNkciB3b3VsZCBiZSB0aGUgdGFpbCBvZiBh IHN0cmVhbS4gIFRoZSBjZHIgbXVzdAorYmUgYSBzdHJlYW0gaXRzZWxmIGluIG9yZGVyIHRvIGJl IGEgdmFsaWQgdGFpbC4gIEFsdGVybmF0aXZlbHksCitCT0RZIG1heSByZXR1cm4gbmlsLCBpbiB3 aGljaCBjYXNlIHRoZSBzdHJlYW0gaXMgbWFya2VkIGVtcHR5Cit3aGVuIHRoZSBzdHJlYW0gaXMg ZXZhbHVhdGVkLiIKKyAgKGRlY2xhcmUgKGRlYnVnIHQpKQorICBgKHN0cmVhbS0tbWFrZS1zdHJl YW0gOmV2YWx1YXRlZC0taW50ZXJuYWwgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICA6dXBk YXRlci0taW50ZXJuYWwgKGxhbWJkYSAoKSAsQGJvZHkpKSkKIAogKGRlZm1hY3JvIHN0cmVhbS1j b25zIChmaXJzdCByZXN0KQogICAiUmV0dXJuIGEgc3RyZWFtIGJ1aWx0IGZyb20gdGhlIGNvbnMg b2YgRklSU1QgYW5kIFJFU1QuCi1GSVJTVCBhbmQgUkVTVCBhcmUgZm9ybXMgYW5kIFJFU1QgbXVz dCByZXR1cm4gYSBzdHJlYW0uIgorCitGSVJTVCBhbmQgUkVTVCBhcmUgZm9ybXMuICBSRVNUIG11 c3QgcmV0dXJuIGEgc3RyZWFtLiIKICAgKGRlY2xhcmUgKGRlYnVnIHQpKQogICBgKHN0cmVhbS1t YWtlIChjb25zICxmaXJzdCAscmVzdCkpKQorCisoZGVmY29uc3Qgc3RyZWFtLWVtcHR5CisgIChz dHJlYW0tLW1ha2Utc3RyZWFtIDpldmFsdWF0ZWQtLWludGVybmFsIHQKKyAgICAgICAgICAgICAg ICAgICAgICAgOmZpcnN0LS1pbnRlcm5hbCBuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgOnJl c3QtLWludGVybmFsIG5pbAorICAgICAgICAgICAgICAgICAgICAgICA6ZW1wdHktLWludGVybmFs IHQKKyAgICAgICAgICAgICAgICAgICAgICAgOnVwZGF0ZXItLWludGVybmFsIG5pbCkKKyAgIlRo ZSBlbXB0eSBzdHJlYW0uIikKKworKGRlZnVuIHN0cmVhbS1lbXB0eSAoKQorICAiUmV0dXJuIHRo ZSBlbXB0eSBzdHJlYW0uIgorICBzdHJlYW0tZW1wdHkpCisKKyhkZWZ1biBzdHJlYW0tZW1wdHkt cCAoc3RyZWFtKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgU1RSRUFNIGlzIGVtcHR5LCBuaWwgb3Ro ZXJ3aXNlLiIKKyAgKHN0cmVhbS1lbXB0eS0taW50ZXJuYWwgKHN0cmVhbS0tZm9yY2Ugc3RyZWFt KSkpCisKKyhkZWZ1biBzdHJlYW0tZmlyc3QgKHN0cmVhbSkKKyAgIlJldHVybiB0aGUgZmlyc3Qg ZWxlbWVudCBvZiBTVFJFQU0sIGV2YWx1YXRpbmcgaWYgbmVjZXNzYXJ5LgorCitJZiBTVFJFQU0g aXMgZW1wdHksIHJldHVybiBuaWwuIgorICAoc3RyZWFtLWZpcnN0LS1pbnRlcm5hbCAoc3RyZWFt LS1mb3JjZSBzdHJlYW0pKSkKKworKGRlZnVuIFwoc2V0Zlwgc3RyZWFtLWZpcnN0XCkgKF9zdG9y ZSBfc3RyZWFtKQorICAiU2lnbmFsIGFuIGVycm9yIHdoZW4gdHJ5aW5nIHRvIHVzZSBgc2V0Zicg b24gdGhlIGhlYWQgb2YgYSBzdHJlYW0uIgorICAoZXJyb3IgIlN0cmVhbXMgYXJlIG5vdCBtdXRh YmxlIikpCisKKyhkZWZ1biBzdHJlYW0tcmVzdCAoc3RyZWFtKQorICAiUmV0dXJuIHRoZSB0YWls IG9mIFNUUkVBTSwgZXZhbHVhdGluZyBpZiBuZWNlc3NhcnkuCisKK0lmIFNUUkVBTSBpcyBlbXB0 eSwgcmV0dXJuIHRoZSBjYW5vbmljYWwgZW1wdHkgc3RyZWFtLiIKKyAgKGlmIChzdHJlYW0tZW1w dHktcCBzdHJlYW0pCisgICAgICBzdHJlYW0tZW1wdHkKKyAgICAoc3RyZWFtLXJlc3QtLWludGVy bmFsIChzdHJlYW0tLWZvcmNlIHN0cmVhbSkpKSkKKworKGRlZnVuIFwoc2V0Zlwgc3RyZWFtLXJl c3RcKSAoX3N0b3JlIF9zdHJlYW0pCisgICJTaWduYWwgYW4gZXJyb3Igd2hlbiB0cnlpbmcgdG8g dXNlIGBzZXRmJyBvbiB0aGUgdGFpbCBvZiBhIHN0cmVhbS4iCisgIChlcnJvciAiU3RyZWFtcyBh cmUgbm90IG11dGFibGUiKSkKKwogDAogCiA7OzsgQ29udmVuaWVudCBmdW5jdGlvbnMgZm9yIGNy ZWF0aW5nIHN0cmVhbXMKQEAgLTEwMyw2ICsxOTUsMTAgQEAgKGRlZm1hY3JvIHN0cmVhbS1jb25z IChmaXJzdCByZXN0KQogKGNsLWRlZmdlbmVyaWMgc3RyZWFtIChzcmMpCiAgICJSZXR1cm4gYSBu ZXcgc3RyZWFtIGZyb20gU1JDLiIpCiAKKyhjbC1kZWZtZXRob2Qgc3RyZWFtICgoc3RyZWFtIHN0 cmVhbSkpCisgICJSZXR1cm4gU1RSRUFNIHVubW9kaWZpZWQuIgorICBzdHJlYW0pCisKIChjbC1k ZWZtZXRob2Qgc3RyZWFtICgoc2VxIHNlcXVlbmNlKSkKICAgIlJldHVybiBhIHN0cmVhbSBidWls dCBmcm9tIHRoZSBzZXF1ZW5jZSBTRVEuCiBTRVEgY2FuIGJlIGEgbGlzdCwgdmVjdG9yIG9yIHN0 cmluZy4iCkBAIC0xMTIsNiArMjA4LDI0IEBAIChjbC1kZWZtZXRob2Qgc3RyZWFtICgoc2VxIHNl cXVlbmNlKSkKICAgICAgKHNlcS1lbHQgc2VxIDApCiAgICAgIChzdHJlYW0gKHNlcS1zdWJzZXEg c2VxIDEpKSkpKQogCisoY2wtZGVmbWV0aG9kIHN0cmVhbSAoKGFycmF5IGFycmF5KSkKKyAgIlJl dHVybiBhIHN0cmVhbSBidWlsdCBmcm9tIHRoZSBhcnJheSBBUlJBWS4iCisgIChsZXQgKChsZW4g KGxlbmd0aCBhcnJheSkpKQorICAgIChpZiAoPSBsZW4gMCkKKyAgICAgICAgKHN0cmVhbS1lbXB0 eSkKKyAgICAgIDs7IFRoaXMgYXBwcm9hY2ggY291bGQgYXZvaWQgb25lIGxldmVsIG9mIGluZGly ZWN0aW9uIGJ5IHNldHRpbmcKKyAgICAgIDs7IGBzdHJlYW0tdXBkYXRlci0taW50ZXJuYWwnIGRp cmVjdGx5LCBidXQgdXNpbmcgYGZ1bmNhbGwnIG1ha2VzIGZvciBhCisgICAgICA7OyBnb29kIGV4 YW1wbGUgb2YgaG93IHRvIHVzZSBhIGN1c3RvbSB1cGRhdGVyIGZ1bmN0aW9uIHVzaW5nIHRoZSBw dWJsaWMKKyAgICAgIDs7IGludGVyZmFjZS4KKyAgICAgIChsZXQgKChpZHggMCkpCisgICAgICAg IChjbC1sYWJlbHMgKCh1cGRhdGVyICgpCisgICAgICAgICAgICAgICAgICAgICAgKGlmICg8IGlk eCBsZW4pCisgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9nMSAoY29ucyAoYXJlZiBhcnJh eSBpZHgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyZWFtLW1h a2UgKGZ1bmNhbGwgIyd1cGRhdGVyKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNl dHEgaWR4ICgxKyBpZHgpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG5pbCkpKQorICAgICAg ICAgIChzdHJlYW0tbWFrZSAoZnVuY2FsbCAjJ3VwZGF0ZXIpKSkpKSkpCisKIChjbC1kZWZtZXRo b2Qgc3RyZWFtICgobGlzdCBsaXN0KSkKICAgIlJldHVybiBhIHN0cmVhbSBidWlsdCBmcm9tIHRo ZSBsaXN0IExJU1QuIgogICAoaWYgKG51bGwgbGlzdCkKQEAgLTE5MCwzMyArMzA0LDYgQEAgKGRl ZnVuIHN0cmVhbS1yYW5nZSAoJm9wdGlvbmFsIHN0YXJ0IGVuZCBzdGVwKQogICAgICAoc3RyZWFt LXJhbmdlICgrIHN0YXJ0IHN0ZXApIGVuZCBzdGVwKSkpKQogDAogCi0oZGVmdW4gc3RyZWFtcCAo c3RyZWFtKQotICAiUmV0dXJuIG5vbi1uaWwgaWYgU1RSRUFNIGlzIGEgc3RyZWFtLCBuaWwgb3Ro ZXJ3aXNlLiIKLSAgKGxldCAoKGNhciAoY2FyLXNhZmUgc3RyZWFtKSkpCi0gICAgKG9yIChlcSBj YXIgc3RyZWFtLS1mcmVzaC1pZGVudGlmaWVyKQotICAgICAgICAoZXEgY2FyIHN0cmVhbS0tZXZh bGQtaWRlbnRpZmllcikpKSkKLQotKGRlZmNvbnN0IHN0cmVhbS1lbXB0eSAoY29ucyBzdHJlYW0t LWV2YWxkLWlkZW50aWZpZXIgbmlsKQotICAiVGhlIGVtcHR5IHN0cmVhbS4iKQotCi0oZGVmdW4g c3RyZWFtLWVtcHR5ICgpCi0gICJSZXR1cm4gdGhlIGVtcHR5IHN0cmVhbS4iCi0gIHN0cmVhbS1l bXB0eSkKLQotKGRlZnVuIHN0cmVhbS1lbXB0eS1wIChzdHJlYW0pCi0gICJSZXR1cm4gbm9uLW5p bCBpZiBTVFJFQU0gaXMgZW1wdHksIG5pbCBvdGhlcndpc2UuIgotICAobnVsbCAoY2RyIChzdHJl YW0tLWZvcmNlIHN0cmVhbSkpKSkKLQotKGRlZnVuIHN0cmVhbS1maXJzdCAoc3RyZWFtKQotICAi UmV0dXJuIHRoZSBmaXJzdCBlbGVtZW50IG9mIFNUUkVBTS4KLVJldHVybiBuaWwgaWYgU1RSRUFN IGlzIGVtcHR5LiIKLSAgKGNhciAoc3RyZWFtLS1mb3JjZSBzdHJlYW0pKSkKLQotKGRlZnVuIHN0 cmVhbS1yZXN0IChzdHJlYW0pCi0gICJSZXR1cm4gYSBzdHJlYW0gb2YgYWxsIGJ1dCB0aGUgZmly c3QgZWxlbWVudCBvZiBTVFJFQU0uIgotICAob3IgKGNkciAoc3RyZWFtLS1mb3JjZSBzdHJlYW0p KQotICAgICAgKHN0cmVhbS1lbXB0eSkpKQotCiAoZGVmdW4gc3RyZWFtLWFwcGVuZCAoJnJlc3Qg c3RyZWFtcykKICAgIkNvbmNhdGVuYXRlIHRoZSBTVFJFQU1TLgogUmVxdWVzdGluZyBlbGVtZW50 cyBmcm9tIHRoZSByZXN1bHRpbmcgc3RyZWFtIHdpbGwgcmVxdWVzdCB0aGUKQEAgLTI0MCwyMiAr MzI3LDcgQEAgKGRlZm1hY3JvIHN0cmVhbS1wb3AgKHN0cmVhbSkKICAgYChwcm9nMQogICAgICAg IChzdHJlYW0tZmlyc3QgLHN0cmVhbSkKICAgICAgKHNldHEgLHN0cmVhbSAoc3RyZWFtLXJlc3Qg LHN0cmVhbSkpKSkKLQwKIAotOzs7IGNsLWdlbmVyaWMgc3VwcG9ydCBmb3Igc3RyZWFtcwotCi0o Y2wtZ2VuZXJpYy1kZWZpbmUtZ2VuZXJhbGl6ZXIgc3RyZWFtLS1nZW5lcmFsaXplcgotICAxMQot ICAobGFtYmRhIChuYW1lICZyZXN0IF8pCi0gICAgYCh3aGVuIChzdHJlYW1wICxuYW1lKQotICAg ICAgICdzdHJlYW0pKQotICAobGFtYmRhICh0YWcgJnJlc3QgXykKLSAgICAod2hlbiAoZXEgdGFn ICdzdHJlYW0pCi0gICAgICAnKHN0cmVhbSkpKSkKLQotKGNsLWRlZm1ldGhvZCBjbC1nZW5lcmlj LWdlbmVyYWxpemVycyAoKF9zcGVjaWFsaXplciAoZXFsIHN0cmVhbSkpKQotICAiU3VwcG9ydCBm b3IgYHN0cmVhbScgc3BlY2lhbGl6ZXJzLiIKLSAgKGxpc3Qgc3RyZWFtLS1nZW5lcmFsaXplcikp CiAMCiAKIDs7OyBJbXBsZW1lbnRhdGlvbiBvZiBzZXEuZWwgZ2VuZXJpYyBmdW5jdGlvbnMKQEAg LTI3Myw2ICszNDUsOSBAQCAoY2wtZGVmbWV0aG9kIHNlcS1lbHQgKChzdHJlYW0gc3RyZWFtKSBu KQogICAgIChzZXRxIG4gKDEtIG4pKSkKICAgKHN0cmVhbS1maXJzdCBzdHJlYW0pKQogCisoY2wt ZGVmbWV0aG9kIChzZXRmIHNlcS1lbHQpIChfc3RvcmUgKF9zZXF1ZW5jZSBzdHJlYW0pIF9uKQor ICAoZXJyb3IgIlN0cmVhbXMgYXJlIG5vdCBtdXRhYmxlIikpCisKIChjbC1kZWZtZXRob2Qgc2Vx LWxlbmd0aCAoKHN0cmVhbSBzdHJlYW0pKQogICAiUmV0dXJuIHRoZSBsZW5ndGggb2YgU1RSRUFN LgogVGhpcyBmdW5jdGlvbiB3aWxsIGVhZ2VybHkgY29uc3VtZSB0aGUgZW50aXJlIHN0cmVhbS4i CkBAIC00MTcsNiArNDkyLDUzIEBAIChkZWZtYWNybyBzdHJlYW0tZGVsYXkgKGV4cHIpCiAoY2wt ZGVmbWV0aG9kIHNlcS1jb3B5ICgoc3RyZWFtIHN0cmVhbSkpCiAgICJSZXR1cm4gYSBzaGFsbG93 IGNvcHkgb2YgU1RSRUFNLiIKICAgKHN0cmVhbS1kZWxheSBzdHJlYW0pKQorCisoY2wtZGVmbWV0 aG9kIHNlcS1zb3J0IChwcmVkIChzZXF1ZW5jZSBzdHJlYW0pKQorICAiU29ydCBTRVFVRU5DRSB1 c2luZyBQUkVEIHZpYSBRdWlja3NvcnQuIgorICAoc3RyZWFtLWRlbGF5CisgICAoaWYgKHN0cmVh bS1lbXB0eS1wIHNlcXVlbmNlKQorICAgICAgIHN0cmVhbS1lbXB0eQorICAgICAobGV0KiAoKGZp cnN0IChzdHJlYW0tZmlyc3Qgc2VxdWVuY2UpKQorICAgICAgICAgICAgKHJlc3QgKHN0cmVhbS1y ZXN0IHNlcXVlbmNlKSkpCisgICAgICAgKHN0cmVhbS1hcHBlbmQKKyAgICAgICAgKHNlcS1zb3J0 IHByZWQKKyAgICAgICAgICAgICAgICAgIChzZXEtZmlsdGVyIChsYW1iZGEgKGVsdCkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgcHJlZCBlbHQgZmlyc3QpKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdCkpCisgICAgICAgIChzdHJlYW0tY29ucyBm aXJzdAorICAgICAgICAgICAgICAgICAgICAgKHNlcS1zb3J0IHByZWQKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc2VxLWZpbHRlciAobGFtYmRhIChlbHQpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobm90IChmdW5jYWxsIHByZWQgZWx0IGZp cnN0KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdCkp KSkpKSkpCisKKyhjbC1kZWZtZXRob2Qgc2VxLXJldmVyc2UgKChzZXF1ZW5jZSBzdHJlYW0pKQor ICAiRm9yY2UgdGhlIGV2YWx1YXRpb24gb2YgU0VRVUVOQ0UgYW5kIHJldHVybiBhIHJldmVyc2Vk IHN0cmVhbSBvZiBTRVFVRU5DRS4KKworYHNlcS1yZXZlcnNlJyBjYW5ub3QgYmUgdXNlZCB3aXRo IGluZmluaXRlIHN0cmVhbXMuIgorICAobGV0ICgoaW50ZXJtZWRpYXRlIG5pbCkpCisgICAgKHNl cS1kb3NlcSAoeCBzZXF1ZW5jZSkKKyAgICAgIChwdXNoIHggaW50ZXJtZWRpYXRlKSkKKyAgICAo c3RyZWFtIGludGVybWVkaWF0ZSkpKQorCisoY2wtZGVmbWV0aG9kIHNlcS1jb25jYXRlbmF0ZSAo KF90eXBlIChlcWwgc3RyZWFtKSkgJnJlc3Qgc2VxdWVuY2VzKQorICAiTWFrZSBhIHN0cmVhbSB3 aGljaCBjb25jYXRlbmF0ZXMgZWFjaCBzZXF1ZW5jZSBpbiBTRVFVRU5DRVMuIgorICAoYXBwbHkg IydzdHJlYW0tYXBwZW5kIChtYXBjYXIgIydzdHJlYW0gc2VxdWVuY2VzKSkpCisKKyhjbC1kZWZt ZXRob2Qgc2VxLXJlbW92ZS1hdC1wb3NpdGlvbiAoKHNlcXVlbmNlIHN0cmVhbSkgbikKKyAgIlJl dHVybiBhIGNvcHkgb2YgU0VRVUVOQ0Ugd2l0aCB0aGUgZWxlbWVudCBhdCBpbmRleCBOIHJlbW92 ZWQuCisKK04gaXMgdGhlICh6ZXJvLWJhc2VkKSBpbmRleCBvZiB0aGUgZWxlbWVudCB0aGF0IHNo b3VsZCBub3QgYmUgaW4KK3RoZSByZXN1bHQuCisKK1RoZSByZXN1bHQgaXMgYSBzdHJlYW0uIgor ICAoc3RyZWFtLWRlbGF5CisgICAobGV0ICgoc3RyZWFtIChzdHJlYW0tYXBwZW5kCisgICAgICAg ICAgICAgICAgICAoc2VxLXRha2Ugc2VxdWVuY2UgbikKKyAgICAgICAgICAgICAgICAgIChzZXEt ZHJvcCBzZXF1ZW5jZSAoMSsgbikpKSkpCisgICAgIChpZiAoc3RyZWFtLWVtcHR5LXAgc3RyZWFt KQorICAgICAgICAgKGVycm9yICJEcm9wcGVkIGluZGV4IG91dCBvZiBib3VuZHM6ICVkLCAlcyIg biBzZXF1ZW5jZSkKKyAgICAgICBzdHJlYW0pKSkpCisKIAwKIAogOzs7IE1vcmUgc3RyZWFtIG9w ZXJhdGlvbnMKZGlmZiAtLWdpdCBhL3Rlc3RzL3N0cmVhbS10ZXN0cy5lbCBiL3Rlc3RzL3N0cmVh bS10ZXN0cy5lbAppbmRleCBiYTMwNGYxLi43MWVjMWFlIDEwMDY0NAotLS0gYS90ZXN0cy9zdHJl YW0tdGVzdHMuZWwKKysrIGIvdGVzdHMvc3RyZWFtLXRlc3RzLmVsCkBAIC0yMTIsNiArMjEyLDQz IEBAIChlcnQtZGVmdGVzdCBzdHJlYW0tZGVsYXktdGVzdCAoKQogICAgICAgICAgICAgKGFuZCAo ZXF1YWwgcmVzMSA1KQogICAgICAgICAgICAgICAgICAoZXF1YWwgcmVzMiA1KSkpKSkKIAorKGVy dC1kZWZ0ZXN0IHN0cmVhbS1zZXEtc29ydC10ZXN0ICgpCisgIChzaG91bGQgKHN0cmVhbS1lbXB0 eS1wIChzZXEtc29ydCAjJzwgKHN0cmVhbS1lbXB0eSkpKSkKKyAgKHNob3VsZCAoc3RyZWFtcCAo c2VxLXNvcnQgIyc8IChzdHJlYW0gKHZlY3RvciA1IDQgMyAxIDIpKSkpKQorICAoc2hvdWxkIChl cXVhbCAnKDEgMiAzIDQgNSkgKHNlcS1pbnRvIChzZXEtc29ydCAjJzwgKHN0cmVhbSAodmVjdG9y IDUgNCAzIDEgMikpKSAnbGlzdCkpKSkKKworKGVydC1kZWZ0ZXN0IHN0cmVhbS1zZXEtcmV2ZXJz ZS10ZXN0ICgpCisgIChzaG91bGQgKHN0cmVhbXAgKHNlcS1yZXZlcnNlIChzdHJlYW0gKGxpc3Qg MCAxIDIpKSkpKQorICAoc2hvdWxkIChlcXVhbCAnKDIgMSAwKSAoc2VxLWludG8gKHNlcS1yZXZl cnNlIChzdHJlYW0gKGxpc3QgMCAxIDIpKSkgJ2xpc3QpKSkpCisKKyhlcnQtZGVmdGVzdCBzdHJl YW0tc2VxLWNvbmNhdGVuYXRlLXRlc3QgKCkKKyAgKHNob3VsZCAoc3RyZWFtcCAoc2VxLWNvbmNh dGVuYXRlICdzdHJlYW0gKGxpc3QgMSAyKSAodmVjdG9yIDMgNCkgKHN0cmVhbSAobGlzdCA1IDYp KSkpKQorICAoc2hvdWxkIChlcXVhbCAnKDEgMiAzIDQgNSA2KQorICAgICAgICAgICAgICAgICAo c2VxLWludG8gKHNlcS1jb25jYXRlbmF0ZSAnc3RyZWFtCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaXN0IDEgMikKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciAzIDQpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChzdHJlYW0gKGxpc3QgNSA2KSkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAnbGlzdCkpKSkKKworKGVydC1kZWZ0ZXN0IHN0cmVhbS1zZXEtbWFwY2F0 LXRlc3QgKCkKKyAgKHNob3VsZCAoc3RyZWFtcCAoc2VxLW1hcGNhdCAjJ3N0cmVhbSAobGlzdCAo bGlzdCAxIDIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHZlY3RvciAzIDQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHN0cmVhbSAobGlzdCA1IDYpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn c3RyZWFtKSkpCisgIChzaG91bGQgKGVxdWFsICcoMSAyIDMgNCA1IDYpCisgICAgICAgICAgICAg ICAgIChzZXEtaW50byAoc2VxLW1hcGNhdCAjJ3N0cmVhbSAobGlzdCAobGlzdCAxIDIpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9y IDMgNCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChzdHJlYW0gKGxpc3QgNSA2KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnc3RyZWFtKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xpc3QpKSkpCisK KyhlcnQtZGVmdGVzdCBzdHJlYW0tc2VxLXJlbW92ZS1hdC1wb3NpdGlvbiAoKQorICAoc2hvdWxk IChzdHJlYW1wIChzZXEtcmVtb3ZlLWF0LXBvc2l0aW9uIChzdHJlYW0gKGxpc3QgMCAxIDIgMyA0 KSkgMikpKQorICAoc2hvdWxkLWVycm9yIChzdHJlYW0tZmlyc3QgKHNlcS1yZW1vdmUtYXQtcG9z aXRpb24gKHN0cmVhbSBuaWwpIDIpKSkKKyAgKHNob3VsZCAoZXF1YWwgJygwIDEgMyA0KQorICAg ICAgICAgICAgICAgICAoc2VxLWludG8gKHNlcS1yZW1vdmUtYXQtcG9zaXRpb24gKHN0cmVhbSAo bGlzdCAwIDEgMiAzIDQpKSAyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xpc3QpKSkp CisKIChlcnQtZGVmdGVzdCBzdHJlYW0tc2VxLWNvcHktdGVzdCAoKQogICAoc2hvdWxkIChzdHJl YW1wIChzZXEtY29weSAoc3RyZWFtLXJhbmdlKSkpKQogICAoc2hvdWxkICg9IDAgKHN0cmVhbS1m aXJzdCAoc2VxLWNvcHkgKHN0cmVhbS1yYW5nZSkpKSkpCkBAIC0yMzQsNiArMjcxLDEwIEBAIChl cnQtZGVmdGVzdCBzdHJlYW0tbGlzdC10ZXN0ICgpCiAgIChkb2xpc3QgKGxpc3QgJyhuaWwgJygx IDIgMykgJyhhIC4gYikpKQogICAgIChzaG91bGQgKGVxdWFsIGxpc3QgKHNlcS1pbnRvIChzdHJl YW0gbGlzdCkgJ2xpc3QpKSkpKQogCisoZXJ0LWRlZnRlc3Qgc3RyZWFtLWFycmF5LXRlc3QgKCkK KyAgKGRvbGlzdCAoYXJyIChsaXN0ICJjYXQiIFswIDEgMl0pKQorICAgIChzaG91bGQgKGVxdWFs IGFyciAoc2VxLWludG8gKHN0cmVhbSBhcnIpICh0eXBlLW9mIGFycikpKSkpKQorCiAoZXJ0LWRl ZnRlc3Qgc3RyZWFtLXNlcS1zdWJzZXEtdGVzdCAoKQogICAoc2hvdWxkIChzdHJlYW0tZW1wdHkt cCAoc2VxLXN1YnNlcSAoc3RyZWFtLXJhbmdlIDIgMTApIDAgMCkpKQogICAoc2hvdWxkICg9IChz dHJlYW0tZmlyc3QgKHNlcS1zdWJzZXEgKHN0cmVhbS1yYW5nZSAyIDEwKSAwIDMpKSAyKSkKQEAg LTI5Niw2ICszMzcsOCBAQCAoZGVmdGVzdC1mb3ItZGVsYXllZC1ldmFsdWF0aW9uIChzdHJlYW0t YXBwZW5kICAobWFrZS1kZWxheWVkLXRlc3Qtc3RyZWFtKSAobWFrZQogKGRlZnRlc3QtZm9yLWRl bGF5ZWQtZXZhbHVhdGlvbiAoc2VxLXRha2UgKG1ha2UtZGVsYXllZC10ZXN0LXN0cmVhbSkgMikp CiAoZGVmdGVzdC1mb3ItZGVsYXllZC1ldmFsdWF0aW9uIChzZXEtZHJvcCAobWFrZS1kZWxheWVk LXRlc3Qtc3RyZWFtKSAyKSkKIChkZWZ0ZXN0LWZvci1kZWxheWVkLWV2YWx1YXRpb24gKHNlcS10 YWtlLXdoaWxlICMnbnVtYmVycCAobWFrZS1kZWxheWVkLXRlc3Qtc3RyZWFtKSkpCisoZGVmdGVz dC1mb3ItZGVsYXllZC1ldmFsdWF0aW9uIChzZXEtZHJvcC13aGlsZSAjJ251bWJlcnAgKG1ha2Ut ZGVsYXllZC10ZXN0LXN0cmVhbSkpKQorKGRlZnRlc3QtZm9yLWRlbGF5ZWQtZXZhbHVhdGlvbiAo c2VxLXJlbW92ZS1hdC1wb3NpdGlvbiAobWFrZS1kZWxheWVkLXRlc3Qtc3RyZWFtKSAyKSkKIChk ZWZ0ZXN0LWZvci1kZWxheWVkLWV2YWx1YXRpb24gKHNlcS1tYXAgIydpZGVudGl0eSAobWFrZS1k ZWxheWVkLXRlc3Qtc3RyZWFtKSkpCiAoZGVmdGVzdC1mb3ItZGVsYXllZC1ldmFsdWF0aW9uIChz ZXEtbWFwbiAjJ2NvbnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChtYWtlLWRlbGF5ZWQtdGVzdC1zdHJlYW0pCkBAIC0zMDcsNiArMzUwLDcgQEAgKGRlZnRlc3Qt Zm9yLWRlbGF5ZWQtZXZhbHVhdGlvbiAoc2VxLXN1YnNlcSAobWFrZS1kZWxheWVkLXRlc3Qtc3Ry ZWFtKSAyKSkKIChkZWZ0ZXN0LWZvci1kZWxheWVkLWV2YWx1YXRpb24gKHN0cmVhbS1zY2FuICMn KiAxIChtYWtlLWRlbGF5ZWQtdGVzdC1zdHJlYW0pKSkKIChkZWZ0ZXN0LWZvci1kZWxheWVkLWV2 YWx1YXRpb24gKHN0cmVhbS1jb25jYXRlbmF0ZSAoc3RyZWFtIChsaXN0IChtYWtlLWRlbGF5ZWQt dGVzdC1zdHJlYW0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobWFrZS1kZWxheWVkLXRlc3Qtc3RyZWFtKSkpKSkKKyhk ZWZ0ZXN0LWZvci1kZWxheWVkLWV2YWx1YXRpb24gKHNlcS1zb3J0ICMnPCAobWFrZS1kZWxheWVk LXRlc3Qtc3RyZWFtKSkpCiAKIChwcm92aWRlICdzdHJlYW0tdGVzdHMpCiA7Ozsgc3RyZWFtLXRl c3RzLmVsIGVuZHMgaGVyZQotLSAKMi4zNC4xCgo= --b1_guz4NsQFJkSIIMcYkRFzKmQJDI1T0paKBWCV3Zw0--