From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Taylan Kammer Newsgroups: gmane.lisp.guile.bugs Subject: bug#39221: Elisp nil is not a symbol in Elisp Date: Thu, 13 May 2021 12:22:37 +0200 Message-ID: <6f61e272-ffeb-db15-37f2-a85e22e8f640@gmail.com> References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------5642C8B3351B34C197FF8E8D" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12936"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 To: 39221@debbugs.gnu.org Original-X-From: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Thu May 13 12:23:09 2021 Return-path: Envelope-to: guile-bugs@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 1lh8Um-0003B6-M8 for guile-bugs@m.gmane-mx.org; Thu, 13 May 2021 12:23:08 +0200 Original-Received: from localhost ([::1]:49712 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lh8Ul-0007MQ-Nx for guile-bugs@m.gmane-mx.org; Thu, 13 May 2021 06:23:07 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59514) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lh8Ug-0007IR-OP for bug-guile@gnu.org; Thu, 13 May 2021 06:23:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:58101) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lh8Ug-0005BV-Ex for bug-guile@gnu.org; Thu, 13 May 2021 06:23:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lh8Ug-0001ij-Bb for bug-guile@gnu.org; Thu, 13 May 2021 06:23:02 -0400 X-Loop: help-debbugs@gnu.org In-Reply-To: Resent-From: Taylan Kammer Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Thu, 13 May 2021 10:23:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 39221 X-GNU-PR-Package: guile Original-Received: via spool by 39221-submit@debbugs.gnu.org id=B39221.16209013746583 (code B ref 39221); Thu, 13 May 2021 10:23:02 +0000 Original-Received: (at 39221) by debbugs.gnu.org; 13 May 2021 10:22:54 +0000 Original-Received: from localhost ([127.0.0.1]:41414 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lh8UT-0001i0-6k for submit@debbugs.gnu.org; Thu, 13 May 2021 06:22:54 -0400 Original-Received: from mail-ej1-f54.google.com ([209.85.218.54]:42528) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lh8UQ-0001hk-Ve for 39221@debbugs.gnu.org; Thu, 13 May 2021 06:22:48 -0400 Original-Received: by mail-ej1-f54.google.com with SMTP id s20so33642742ejr.9 for <39221@debbugs.gnu.org>; Thu, 13 May 2021 03:22:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:from:subject:cc:message-id:date:user-agent:mime-version :content-language; bh=w88M3C/Fj2Ixk7ZEqRKhDgFAZmqpDVdnzBW0JeXeicQ=; b=suE0LckyDjcuNiGZix4XA/Obz1G5IItEH6Fyg5cl8X8/9KEoWXbvGQDJC9MkHybUPk /l1qSzw2gVMabnGRaZAmdQFqjshMaOoyFjLkVnvFMtPOBLHsx2V5rRffbG6seYRuog97 2rrXqGXdcInkBJJngWopGUpL3HeyqyzTpOc5svTW23gjeKnh5phDymIF3JFxSstdKnEm q+R3NZ1xIe0TMzm94WNVibgM6zOURemMwf17G4z9L+Dk/0ZVbYSwWEKBi8HwQEH+6P9V GiyhCJlzGvTzLMt4C7H2qZ9nmQ5nndFN8LttMF9OwtyhKjV/oTVN2tAGytfeyzSWUJGE Eodg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:from:subject:cc:message-id:date:user-agent :mime-version:content-language; bh=w88M3C/Fj2Ixk7ZEqRKhDgFAZmqpDVdnzBW0JeXeicQ=; b=IXqsPYYHb3eZmw04BSbmeCoQlrDfVf/jcx+1dKYwQgPyG7oZoBgyuQMLGDm/9b77Zu /9MSHCT6Iw2EZNzRAETKTf4QPzb85NRnrCc7qyh2lm/85QIsmjUBti4m3jA2R+yPvfs7 y9OYPS9kgUE4FaCHbu+GnfAeEjqnFEBZaSFmNJKCa65nfE7uv7tF3jmFhyD89lau+w9F DlsZpL+faFQ6CJYJh3Qul8FNVVqe9lmznDxSPT82ciaNErTneX7osDq/8WdVW/IyOV8p fCIDpMqQ/cF5rnRHpZc/bxq9MPLo1ZFgBcx363OERKQbvMRewMTUtw/rv88kz/SASlhH w/Pg== X-Gm-Message-State: AOAM530IkeyrShca+17bdTKrafEa+W+9oV4PFOOXpdn5b+KDkFbrrxCd tSsMNfi9/6x/eshB2Q2iLsA= X-Google-Smtp-Source: ABdhPJzj0keLYLDu/1cEZNDpRfOQAr4R9L/BfHu0DnXeKfcvkf85NxVe2Ob+RGQB6SL3ooE+LjKG7g== X-Received: by 2002:a17:906:8a51:: with SMTP id gx17mr42518424ejc.549.1620901360030; Thu, 13 May 2021 03:22:40 -0700 (PDT) Original-Received: from [192.168.178.20] (b2b-109-90-125-150.unitymedia.biz. [109.90.125.150]) by smtp.gmail.com with ESMTPSA id n17sm2016304eds.72.2021.05.13.03.22.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 13 May 2021 03:22:39 -0700 (PDT) Content-Language: en-US X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guile@gnu.org List-Id: "Bug reports for GUILE, GNU's Ubiquitous Extension Language" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Original-Sender: "bug-guile" Xref: news.gmane.io gmane.lisp.guile.bugs:10051 Archived-At: This is a multi-part message in MIME format. --------------5642C8B3351B34C197FF8E8D Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Interesting issue. Was also not fixed in bipt's wip-elisp branch. Attached is a patch that attempts to fix this, and some related issues, both for nil and for t. The strategy is: 1. All Elisp functions we implement in terms of Scheme must be written to special-handle #nil and #t if they accept symbols as arguments. (Examples: symbolp, symbol-name, set, makunbound) 2. The Elisp function 'intern' must special-handle "nil" and "t". This patch, to realize nr. 1, turns #nil and #t into the Scheme symbols 'nil and 't internally in some situations, but makes sure not to return those symbols, which are of course not equivalent to the #nil and #t values. The Elisp reader already turns nil and t into #nil and #t, but we should probably also write a custom Elisp writer that writes them back as nil and t. I see you have a separate bug report open for that issue (https://bugs.gnu.org/39220) and I think we can keep the two issues separate so no attempt to touch on that in this patch. - Taylan --------------5642C8B3351B34C197FF8E8D Content-Type: text/plain; charset=UTF-8; name="0001-In-elisp-nil-and-t-are-symbols.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-In-elisp-nil-and-t-are-symbols.patch" RnJvbSA0YTRkMzZiYWZjY2UxNWJmMmVkZGMzMGI0ZjVhYjdjZWQ5YWQ5Zjg3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUYXlsYW4gS2FtbWVyIDx0YXlsYW4ua2FtbWVyQGdt YWlsLmNvbT4KRGF0ZTogVGh1LCAxMyBNYXkgMjAyMSAxMjowMzozNyArMDIwMApTdWJqZWN0 OiBbUEFUQ0hdIEluIGVsaXNwLCAjbmlsIGFuZCAjdCBhcmUgc3ltYm9scy4KCi0tLQogbW9k dWxlL2xhbmd1YWdlL2VsaXNwL2Jvb3QuZWwgICAgIHwgIDYgKy0KIG1vZHVsZS9sYW5ndWFn ZS9lbGlzcC9ydW50aW1lLnNjbSB8IDk3ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0KIDIgZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgMzQgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbW9kdWxlL2xhbmd1YWdlL2VsaXNwL2Jvb3QuZWwgYi9tb2R1bGUv bGFuZ3VhZ2UvZWxpc3AvYm9vdC5lbAppbmRleCBmNTU3MjJhOWEuLjAwODliN2MzNyAxMDA2 NDQKLS0tIGEvbW9kdWxlL2xhbmd1YWdlL2VsaXNwL2Jvb3QuZWwKKysrIGIvbW9kdWxlL2xh bmd1YWdlL2VsaXNwL2Jvb3QuZWwKQEAgLTE0MCw3ICsxNDAsNyBAQAogICAgICAsQGJvZHkp KQogCiAoZGVmdW4gc3ltYm9scCAob2JqZWN0KQotICAoJWZ1bmNhbGwgKEAgKGd1aWxlKSBz eW1ib2w/KSBvYmplY3QpKQorICAoJWZ1bmNhbGwgKEAgKGxhbmd1YWdlIGVsaXNwIHJ1bnRp bWUpIGVsaXNwLXN5bWJvbD8pIG9iamVjdCkpCiAKIChkZWZ1biBmdW5jdGlvbnAgKG9iamVj dCkKICAgKCVmdW5jYWxsIChAIChndWlsZSkgcHJvY2VkdXJlPykgb2JqZWN0KSkKQEAgLTIy MiwxNCArMjIyLDE0IEBACiAKIDs7OyBgc3ltYm9scCcgYW5kIGBzeW1ib2wtZnVuY3Rpb24n IGFyZSBkZWZpbmVkIGFib3ZlLgogCi0oZnNldCAnc3ltYm9sLW5hbWUgKEAgKGd1aWxlKSBz eW1ib2wtPnN0cmluZykpCisoZnNldCAnc3ltYm9sLW5hbWUgKEAgKGxhbmd1YWdlIGVsaXNw IHJ1bnRpbWUpIHN5bWJvbC1uYW1lKSkKIChmc2V0ICdzeW1ib2wtdmFsdWUgKEAgKGxhbmd1 YWdlIGVsaXNwIHJ1bnRpbWUpIHN5bWJvbC12YWx1ZSkpCiAoZnNldCAnc2V0IChAIChsYW5n dWFnZSBlbGlzcCBydW50aW1lKSBzZXQtc3ltYm9sLXZhbHVlISkpCiAoZnNldCAnbWFrdW5i b3VuZCAoQCAobGFuZ3VhZ2UgZWxpc3AgcnVudGltZSkgbWFrdW5ib3VuZCEpKQogKGZzZXQg J2ZtYWt1bmJvdW5kIChAIChsYW5ndWFnZSBlbGlzcCBydW50aW1lKSBmbWFrdW5ib3VuZCEp KQogKGZzZXQgJ2JvdW5kcCAoQCAobGFuZ3VhZ2UgZWxpc3AgcnVudGltZSkgc3ltYm9sLWJv dW5kPykpCiAoZnNldCAnZmJvdW5kcCAoQCAobGFuZ3VhZ2UgZWxpc3AgcnVudGltZSkgc3lt Ym9sLWZib3VuZD8pKQotKGZzZXQgJ2ludGVybiAoQCAoZ3VpbGUpIHN0cmluZy0+c3ltYm9s KSkKKyhmc2V0ICdpbnRlcm4gKEAgKGxhbmd1YWdlIGVsaXNwIHJ1bnRpbWUpIGludGVybikp CiAKIChkZWZ1biBkZWZ2YXJhbGlhcyAobmV3LWFsaWFzIGJhc2UtdmFyaWFibGUgJm9wdGlv bmFsIGRvY3N0cmluZykKICAgKGxldCAoKGZsdWlkIChmdW5jYWxsIChAIChsYW5ndWFnZSBl bGlzcCBydW50aW1lKSBzeW1ib2wtZmx1aWQpCmRpZmYgLS1naXQgYS9tb2R1bGUvbGFuZ3Vh Z2UvZWxpc3AvcnVudGltZS5zY20gYi9tb2R1bGUvbGFuZ3VhZ2UvZWxpc3AvcnVudGltZS5z Y20KaW5kZXggNmY2YTIyMDc0Li44MzE4Y2MzMTMgMTAwNjQ0Ci0tLSBhL21vZHVsZS9sYW5n dWFnZS9lbGlzcC9ydW50aW1lLnNjbQorKysgYi9tb2R1bGUvbGFuZ3VhZ2UvZWxpc3AvcnVu dGltZS5zY20KQEAgLTIxLDYgKzIxLDkgQEAKIChkZWZpbmUtbW9kdWxlIChsYW5ndWFnZSBl bGlzcCBydW50aW1lKQogICAjOmV4cG9ydCAobmlsLXZhbHVlCiAgICAgICAgICAgICB0LXZh bHVlCisgICAgICAgICAgICBlbGlzcC1zeW1ib2w/CisgICAgICAgICAgICBzeW1ib2wtbmFt ZQorICAgICAgICAgICAgaW50ZXJuCiAgICAgICAgICAgICB2YWx1ZS1zbG90LW1vZHVsZQog ICAgICAgICAgICAgZnVuY3Rpb24tc2xvdC1tb2R1bGUKICAgICAgICAgICAgIGVsaXNwLWJv b2wKQEAgLTQ1LDYgKzQ4LDMwIEBACiAKIChkZWZpbmUgdC12YWx1ZSAjdCkKIAorOzs7IEVs aXNwIHN5bWJvbHMgaW5jbHVkZSAjbmlsIGFuZCAjdAorCisoZGVmaW5lIChlbGlzcC1zeW1i b2w/IHgpCisgIChvciAoc3ltYm9sPyB4KQorICAgICAgKGVxPyAjbmlsIHgpCisgICAgICAo ZXE/ICN0IHgpKSkKKworKGRlZmluZSAoZWxpc3Atc3ltYm9sIHN5bSkKKyAgKGNvbmQKKyAg ICgoc3ltYm9sPyBzeW0pIHN5bSkKKyAgICgoZXE/IHN5bSAjbmlsKSAnbmlsKQorICAgKChl cT8gc3ltICN0KSAndCkKKyAgIChlbHNlIChlcnJvciAiTm90IGEgc3ltYm9sLiIgc3ltKSkp KQorCisoZGVmaW5lIChzeW1ib2wtbmFtZSBzeW0pCisgIChzeW1ib2wtPnN0cmluZyAoZWxp c3Atc3ltYm9sIHN5bSkpKQorCisoZGVmaW5lIChpbnRlcm4gc3RyKQorICAobGV0ICgoc3lt IChzdHJpbmctPnN5bWJvbCBzdHIpKSkKKyAgICAoY29uZAorICAgICAoKGVxPyBzeW0gJ25p bCkgI25pbCkKKyAgICAgKChlcT8gc3ltICd0KSAjdCkKKyAgICAgKGVsc2Ugc3ltKSkpKQor CiA7OzsgTW9kdWxlcyBmb3IgdGhlIGJpbmRpbmcgc2xvdHMuCiA7OzsgTm90ZTogTmFtaW5n IHRob3NlIHZhbHVlLXNsb3QgYW5kL29yIGZ1bmN0aW9uLXNsb3QgY2xhc2hlcyB3aXRoIHRo ZQogOzs7IHN1Ym1vZHVsZXMgb2YgdGhlc2UgbmFtZXMhCkBAIC02OCw2NCArOTUsNzIgQEAK ICAgICAgICAgICAobW9kdWxlLWV4cG9ydCEgcmVzb2x2ZWQgYCgsc3ltKSkpKSkpCiAKIChk ZWZpbmUgKHN5bWJvbC1mbHVpZCBzeW1ib2wpCi0gIChsZXQgKChtb2R1bGUgKHJlc29sdmUt bW9kdWxlIHZhbHVlLXNsb3QtbW9kdWxlKSkpCisgIChsZXQgKChtb2R1bGUgKHJlc29sdmUt bW9kdWxlIHZhbHVlLXNsb3QtbW9kdWxlKSkKKyAgICAgICAgKHN5bWJvbCAoZWxpc3Atc3lt Ym9sIHN5bWJvbCkpKQogICAgIChlbnN1cmUtZmx1aWQhIHZhbHVlLXNsb3QtbW9kdWxlIHN5 bWJvbCkgOysrIGltcGxpY2l0IHNwZWNpYWwgcHJvY2xhbWF0aW9uCiAgICAgKG1vZHVsZS1y ZWYgbW9kdWxlIHN5bWJvbCkpKQogCiAoZGVmaW5lIChzZXQtc3ltYm9sLWZsdWlkISBzeW1i b2wgZmx1aWQpCi0gIChsZXQgKChtb2R1bGUgKHJlc29sdmUtbW9kdWxlIHZhbHVlLXNsb3Qt bW9kdWxlKSkpCisgIChsZXQgKChtb2R1bGUgKHJlc29sdmUtbW9kdWxlIHZhbHVlLXNsb3Qt bW9kdWxlKSkKKyAgICAgICAgKHN5bWJvbCAoZWxpc3Atc3ltYm9sIHN5bWJvbCkpKQogICAg IChtb2R1bGUtZGVmaW5lISBtb2R1bGUgc3ltYm9sIGZsdWlkKQogICAgIChtb2R1bGUtZXhw b3J0ISBtb2R1bGUgKGxpc3Qgc3ltYm9sKSkpCiAgIGZsdWlkKQogCiAoZGVmaW5lIChzeW1i b2wtdmFsdWUgc3ltYm9sKQotICAoZmx1aWQtcmVmIChzeW1ib2wtZmx1aWQgc3ltYm9sKSkp CisgIChmbHVpZC1yZWYgKHN5bWJvbC1mbHVpZCAoZWxpc3Atc3ltYm9sIHN5bWJvbCkpKSkK IAogKGRlZmluZSAoc2V0LXN5bWJvbC12YWx1ZSEgc3ltYm9sIHZhbHVlKQotICAoZmx1aWQt c2V0ISAoc3ltYm9sLWZsdWlkIHN5bWJvbCkgdmFsdWUpCisgIChmbHVpZC1zZXQhIChzeW1i b2wtZmx1aWQgKGVsaXNwLXN5bWJvbCBzeW1ib2wpKSB2YWx1ZSkKICAgdmFsdWUpCiAKIChk ZWZpbmUgKHN5bWJvbC1mdW5jdGlvbiBzeW1ib2wpCi0gIChsZXQgKChtb2R1bGUgKHJlc29s dmUtbW9kdWxlIGZ1bmN0aW9uLXNsb3QtbW9kdWxlKSkpCisgIChsZXQgKChtb2R1bGUgKHJl c29sdmUtbW9kdWxlIGZ1bmN0aW9uLXNsb3QtbW9kdWxlKSkKKyAgICAgICAgKHN5bWJvbCAo ZWxpc3Atc3ltYm9sIHN5bWJvbCkpKQogICAgIChtb2R1bGUtcmVmIG1vZHVsZSBzeW1ib2wp KSkKIAogKGRlZmluZSAoc2V0LXN5bWJvbC1mdW5jdGlvbiEgc3ltYm9sIHZhbHVlKQotICAo bGV0ICgobW9kdWxlIChyZXNvbHZlLW1vZHVsZSBmdW5jdGlvbi1zbG90LW1vZHVsZSkpKQor ICAobGV0ICgobW9kdWxlIChyZXNvbHZlLW1vZHVsZSBmdW5jdGlvbi1zbG90LW1vZHVsZSkp CisgICAgICAgIChzeW1ib2wgKGVsaXNwLXN5bWJvbCBzeW1ib2wpKSkKICAgIChtb2R1bGUt ZGVmaW5lISBtb2R1bGUgc3ltYm9sIHZhbHVlKQogICAgKG1vZHVsZS1leHBvcnQhIG1vZHVs ZSAobGlzdCBzeW1ib2wpKSkKICAgdmFsdWUpCiAKIChkZWZpbmUgKHN5bWJvbC1ib3VuZD8g c3ltYm9sKQotICAoYW5kCi0gICAobW9kdWxlLWJvdW5kPyAocmVzb2x2ZS1pbnRlcmZhY2Ug dmFsdWUtc2xvdC1tb2R1bGUpIHN5bWJvbCkKLSAgIChsZXQgKCh2YXIgKG1vZHVsZS12YXJp YWJsZSAocmVzb2x2ZS1tb2R1bGUgdmFsdWUtc2xvdC1tb2R1bGUpCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3ltYm9sKSkpCi0gICAgIChhbmQgKHZhcmlhYmxlLWJvdW5k PyB2YXIpCi0gICAgICAgICAgKGlmIChmbHVpZD8gKHZhcmlhYmxlLXJlZiB2YXIpKQotICAg ICAgICAgICAgICAoZmx1aWQtYm91bmQ/ICh2YXJpYWJsZS1yZWYgdmFyKSkKLSAgICAgICAg ICAgICAgI3QpKSkpKQorICAobGV0ICgoc3ltYm9sIChlbGlzcC1zeW1ib2wgc3ltYm9sKSkp CisgICAgKGFuZAorICAgICAobW9kdWxlLWJvdW5kPyAocmVzb2x2ZS1pbnRlcmZhY2UgdmFs dWUtc2xvdC1tb2R1bGUpIHN5bWJvbCkKKyAgICAgKGxldCAoKHZhciAobW9kdWxlLXZhcmlh YmxlIChyZXNvbHZlLW1vZHVsZSB2YWx1ZS1zbG90LW1vZHVsZSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN5bWJvbCkpKQorICAgICAgIChhbmQgKHZhcmlhYmxlLWJv dW5kPyB2YXIpCisgICAgICAgICAgICAoaWYgKGZsdWlkPyAodmFyaWFibGUtcmVmIHZhcikp CisgICAgICAgICAgICAgICAgKGZsdWlkLWJvdW5kPyAodmFyaWFibGUtcmVmIHZhcikpCisg ICAgICAgICAgICAgICAgI3QpKSkpKSkKIAogKGRlZmluZSAoc3ltYm9sLWZib3VuZD8gc3lt Ym9sKQotICAoYW5kCi0gICAobW9kdWxlLWJvdW5kPyAocmVzb2x2ZS1pbnRlcmZhY2UgZnVu Y3Rpb24tc2xvdC1tb2R1bGUpIHN5bWJvbCkKLSAgICh2YXJpYWJsZS1ib3VuZD8KLSAgICAo bW9kdWxlLXZhcmlhYmxlIChyZXNvbHZlLW1vZHVsZSBmdW5jdGlvbi1zbG90LW1vZHVsZSkK LSAgICAgICAgICAgICAgICAgICAgIHN5bWJvbCkpKSkKKyAgKGxldCAoKHN5bWJvbCAoZWxp c3Atc3ltYm9sIHN5bWJvbCkpKQorICAgIChhbmQKKyAgICAgKG1vZHVsZS1ib3VuZD8gKHJl c29sdmUtaW50ZXJmYWNlIGZ1bmN0aW9uLXNsb3QtbW9kdWxlKSBzeW1ib2wpCisgICAgICh2 YXJpYWJsZS1ib3VuZD8KKyAgICAgIChtb2R1bGUtdmFyaWFibGUgKHJlc29sdmUtbW9kdWxl IGZ1bmN0aW9uLXNsb3QtbW9kdWxlKQorICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2wp KSkpKQogCiAoZGVmaW5lIChtYWt1bmJvdW5kISBzeW1ib2wpCi0gIChpZiAobW9kdWxlLWJv dW5kPyAocmVzb2x2ZS1pbnRlcmZhY2UgdmFsdWUtc2xvdC1tb2R1bGUpIHN5bWJvbCkKLSAg ICAgIChsZXQgKCh2YXIgKG1vZHVsZS12YXJpYWJsZSAocmVzb2x2ZS1tb2R1bGUgdmFsdWUt c2xvdC1tb2R1bGUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9s KSkpCi0gICAgICAgIChpZiAoYW5kICh2YXJpYWJsZS1ib3VuZD8gdmFyKSAoZmx1aWQ/ICh2 YXJpYWJsZS1yZWYgdmFyKSkpCi0gICAgICAgICAgICAoZmx1aWQtdW5zZXQhICh2YXJpYWJs ZS1yZWYgdmFyKSkKLSAgICAgICAgICAgICh2YXJpYWJsZS11bnNldCEgdmFyKSkpKQotICAg IHN5bWJvbCkKKyAgKGxldCAoKHN5bWJvbCAoZWxpc3Atc3ltYm9sIHN5bWJvbCkpKQorICAg IChpZiAobW9kdWxlLWJvdW5kPyAocmVzb2x2ZS1pbnRlcmZhY2UgdmFsdWUtc2xvdC1tb2R1 bGUpIHN5bWJvbCkKKyAgICAgICAgKGxldCAoKHZhciAobW9kdWxlLXZhcmlhYmxlIChyZXNv bHZlLW1vZHVsZSB2YWx1ZS1zbG90LW1vZHVsZSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN5bWJvbCkpKQorICAgICAgICAgIChpZiAoYW5kICh2YXJpYWJsZS1i b3VuZD8gdmFyKSAoZmx1aWQ/ICh2YXJpYWJsZS1yZWYgdmFyKSkpCisgICAgICAgICAgICAg IChmbHVpZC11bnNldCEgKHZhcmlhYmxlLXJlZiB2YXIpKQorICAgICAgICAgICAgICAodmFy aWFibGUtdW5zZXQhIHZhcikpKSkpCisgIHN5bWJvbCkKIAogKGRlZmluZSAoZm1ha3VuYm91 bmQhIHN5bWJvbCkKLSAgKGlmIChtb2R1bGUtYm91bmQ/IChyZXNvbHZlLWludGVyZmFjZSBm dW5jdGlvbi1zbG90LW1vZHVsZSkgc3ltYm9sKQotICAgICAgKHZhcmlhYmxlLXVuc2V0ISAo bW9kdWxlLXZhcmlhYmxlCi0gICAgICAgICAgICAgICAgICAgICAgICAocmVzb2x2ZS1tb2R1 bGUgZnVuY3Rpb24tc2xvdC1tb2R1bGUpCi0gICAgICAgICAgICAgICAgICAgICAgICBzeW1i b2wpKSkKKyAgKGxldCAoKHN5bWJvbCAoZWxpc3Atc3ltYm9sIHN5bWJvbCkpKQorICAgIChp ZiAobW9kdWxlLWJvdW5kPyAocmVzb2x2ZS1pbnRlcmZhY2UgZnVuY3Rpb24tc2xvdC1tb2R1 bGUpIHN5bWJvbCkKKyAgICAgICAgKHZhcmlhYmxlLXVuc2V0ISAobW9kdWxlLXZhcmlhYmxl CisgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXNvbHZlLW1vZHVsZSBmdW5jdGlvbi1z bG90LW1vZHVsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9sKSkpKQogICBz eW1ib2wpCiAKIDs7OyBEZWZpbmUgYSBwcmVkZWZpbmVkIG1hY3JvIGZvciB1c2UgaW4gdGhl IGZ1bmN0aW9uLXNsb3QgbW9kdWxlLgpAQCAtMTM0LDcgKzE2OSw3IEBACiAgIChsZXQgKChh cHBlbmQtc3ltYm9scwogICAgICAgICAgKGxhbWJkYSAoc3ltYm9scykKICAgICAgICAgICAg KHN0cmluZy0+c3ltYm9sCi0gICAgICAgICAgICAoYXBwbHkgc3RyaW5nLWFwcGVuZCAobWFw IHN5bWJvbC0+c3RyaW5nIHN5bWJvbHMpKSkpKSkKKyAgICAgICAgICAgIChhcHBseSBzdHJp bmctYXBwZW5kIChtYXAgc3ltYm9sLW5hbWUgc3ltYm9scykpKSkpKQogICAgIChkYXR1bS0+ c3ludGF4IHRlbXBsYXRlLWlkCiAgICAgICAgICAgICAgICAgICAgKGFwcGVuZC1zeW1ib2xz CiAgICAgICAgICAgICAgICAgICAgIChtYXAgKGxhbWJkYSAoZGF0dW0pCi0tIAoyLjMwLjIK Cg== --------------5642C8B3351B34C197FF8E8D--