From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Vivien Kraus via "Bug reports for GUILE, GNU's Ubiquitous Extension Language" Newsgroups: gmane.lisp.guile.bugs Subject: bug#49085: Unicode in uri-decode: =?UTF-8?Q?we=E2=80=99re?= parsing IRIs, so NFC (unicode normalization) applies. Date: Tue, 20 Jul 2021 15:54:21 +0200 Message-ID: <07ecac6cc7ec4a46ae24ec4c04d645306389968d.camel@planete-kraus.eu> References: <103527ae65edab29b1ff860c214499104729d00c.camel@planete-kraus.eu> Reply-To: Vivien Kraus Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-bswCT9WEQ2DuS99vhwnN" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8035"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Evolution 3.34.2 To: 49085@debbugs.gnu.org Original-X-From: bug-guile-bounces+guile-bugs=m.gmane-mx.org@gnu.org Tue Jul 20 15:55:11 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 1m5qDH-0001pM-2L for guile-bugs@m.gmane-mx.org; Tue, 20 Jul 2021 15:55:11 +0200 Original-Received: from localhost ([::1]:36442 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m5qDG-0003oD-14 for guile-bugs@m.gmane-mx.org; Tue, 20 Jul 2021 09:55:10 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:34410) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m5qD8-0003nn-If for bug-guile@gnu.org; Tue, 20 Jul 2021 09:55:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:49950) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1m5qD8-00009Y-BF for bug-guile@gnu.org; Tue, 20 Jul 2021 09:55:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1m5qD8-0007zH-9m for bug-guile@gnu.org; Tue, 20 Jul 2021 09:55:02 -0400 X-Loop: help-debbugs@gnu.org In-Reply-To: <103527ae65edab29b1ff860c214499104729d00c.camel@planete-kraus.eu> Resent-From: Vivien Kraus Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Tue, 20 Jul 2021 13:55:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 49085 X-GNU-PR-Package: guile Original-Received: via spool by 49085-submit@debbugs.gnu.org id=B49085.162678929530669 (code B ref 49085); Tue, 20 Jul 2021 13:55:02 +0000 Original-Received: (at 49085) by debbugs.gnu.org; 20 Jul 2021 13:54:55 +0000 Original-Received: from localhost ([127.0.0.1]:33258 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m5qD0-0007yb-Qh for submit@debbugs.gnu.org; Tue, 20 Jul 2021 09:54:55 -0400 Original-Received: from planete-kraus.eu ([89.234.140.182]:39740) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1m5qCu-0007xw-6l for 49085@debbugs.gnu.org; Tue, 20 Jul 2021 09:54:53 -0400 Original-Received: from planete-kraus.eu (localhost.lan [127.0.0.1]) by planete-kraus.eu (OpenSMTPD) with ESMTP id 8c2540e1 for <49085@debbugs.gnu.org>; Tue, 20 Jul 2021 13:54:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=planete-kraus.eu; h= message-id:subject:from:to:date:content-type:mime-version; s=*; bh=jBixZ252HsBMqw/To+3WPomIn/Y=; b=hM25Epg0hSSsNSOIB8wWKTIBzl7f WrLcp/g1FLhQjd78u+lO4ow0BGlr2vzDCE2nwbcH2N2r3q56Rfd5wk8PmFO1XLk+ +bu4W2GvnUK4QkarRpzjvqAAo6DbGnjVf93TxnoYK+AJpBJphjAywcieJJbyCPUy 6uZwO4NZxQ7djDY= Original-Received: by planete-kraus.eu (OpenSMTPD) with ESMTPSA id e01786dc (TLSv1.3:AEAD-CHACHA20-POLY1305-SHA256:256:NO) for <49085@debbugs.gnu.org>; Tue, 20 Jul 2021 13:54:39 +0000 (UTC) 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:10153 Archived-At: --=-bswCT9WEQ2DuS99vhwnN Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit maximed in #guix pointed out that there should not be any non-ascii character in a URI, so what I was trying to do is simultaneously parse an IRI and convert it to an URI. For this to work, unicode normalization is required. --=-bswCT9WEQ2DuS99vhwnN Content-Disposition: attachment; filename*0=0001-Let-uri-decode-handle-more-cases-with-unicode-input.patc; filename*1=h Content-Type: text/x-patch; name="0001-Let-uri-decode-handle-more-cases-with-unicode-input.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAzOWZkMjU5YWMxYWExMjZjYTMxMWM2ODcwNDFiYWE1NTY4Y2ZkYzA5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaXZpZW4gS3JhdXMgPHZpdmllbkBwbGFuZXRlLWtyYXVzLmV1 PgpEYXRlOiBGcmksIDE4IEp1biAyMDIxIDExOjU3OjEzICswMjAwClN1YmplY3Q6IFtQQVRDSF0g TGV0IHVyaS1kZWNvZGUgaGFuZGxlIG1vcmUgY2FzZXMgd2l0aCB1bmljb2RlIGlucHV0LgoKVW5p Y29kZSBjaGFyYWN0ZXJzIGFyZSBhbGxvd2VkIGluIFVSSXMuIEhvd2V2ZXIsIHNpbmNlIEd1aWxl IFVSSXMgYXJlCm5vdCBhdXRvbWF0aWNhbGx5IFVURi04LCBpdCBpcyBwb3NzaWJsZSB0aGF0IHRo ZSBkZWNvZGluZyBmYWlscyBpbiB0d28KZGlmZmVyZW50IHdheXM6CgoxLiBhIGNoYXJhY3RlciBp biB0aGUgVVJJIGNhbm5vdCBiZSBwYXJ0IG9mIHRoZSBzcGVjaWZpZWQgZW5jb2RpbmcsIGZvcgog ICBpbnN0YW5jZSBhIG5vbi10cml2aWFsIHVuaWNvZGUgY2hhcmFjdGVyIHdpdGggSVNPLTg4NTkt MTsKMi4gdGhlIHBlcmNlbnQtZW5jb2Rpbmcgc2VxdWVuY2UgY2Fubm90IGJlIGRlY29kZWQsIGZv ciBpbnN0YW5jZSAlRkYKICAgYWxvbmUgaW4gYSBVVEYtOCBVUkkuCi0tLQogZG9jL3JlZi93ZWIu dGV4aSAgICAgICAgICAgICAgfCAgNiArKysrKy0KIG1vZHVsZS93ZWIvdXJpLnNjbSAgICAgICAg ICAgIHwgMjcgKysrKysrKysrKysrKysrKysrKysrKystLS0tCiB0ZXN0LXN1aXRlL3Rlc3RzL3dl Yi11cmkudGVzdCB8IDMwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBj aGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Rv Yy9yZWYvd2ViLnRleGkgYi9kb2MvcmVmL3dlYi50ZXhpCmluZGV4IDkzY2QwMjE0Zi4uMTA4NjA0 NzgxIDEwMDY0NAotLS0gYS9kb2MvcmVmL3dlYi50ZXhpCisrKyBiL2RvYy9yZWYvd2ViLnRleGkK QEAgLTI0Myw3ICsyNDMsNyBAQCByZXN1bHRpbmcgc3RyaW5nIHdpbGwgb21pdCB0aGUgZnJhZ21l bnQgKGlmIGFueSkuCiBEZWNsYXJlIGEgZGVmYXVsdCBwb3J0IGZvciB0aGUgZ2l2ZW4gVVJJIHNj aGVtZS4KIEBlbmQgZGVmZm4KIAotQGRlZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSB1cmktZGVjb2Rl IHN0ciBbIzplbmNvZGluZz1AY29kZXsidXRmLTgifV0gWyM6ZGVjb2RlLXBsdXMtdG8tc3BhY2U/ ICN0XQorQGRlZmZuIHtTY2hlbWUgUHJvY2VkdXJlfSB1cmktZGVjb2RlIHN0ciBbIzplbmNvZGlu Zz1AY29kZXsidXRmLTgifV0gWyM6ZGVjb2RlLXBsdXMtdG8tc3BhY2U/ICN0XSBbIzphbGxvdy11 bmVzY2FwZWQtdW5pY29kZT8gI3RdIFsjOgogUGVyY2VudC1kZWNvZGUgdGhlIGdpdmVuIEB2YXJ7 c3RyfSwgYWNjb3JkaW5nIHRvIEB2YXJ7ZW5jb2Rpbmd9LCB3aGljaAogc2hvdWxkIGJlIHRoZSBu YW1lIG9mIGEgY2hhcmFjdGVyIGVuY29kaW5nLgogCkBAIC0yNjUsNiArMjY1LDEwIEBAIHJlcGxh Y2UgaW5zdGFuY2VzIG9mIHRoZSBwbHVzIGNoYXJhY3RlciBAc2FtcHsrfSB3aXRoIGEgc3BhY2Ug Y2hhcmFjdGVyLgogVGhpcyBpcyBuZWVkZWQgd2hlbiBwYXJzaW5nIEBjb2Rle2FwcGxpY2F0aW9u L3gtd3d3LWZvcm0tdXJsZW5jb2RlZH0KIGRhdGEuCiAKK0lmIEB2YXJ7YWxsb3ctdW5lc2NhcGVk LXVuaWNvZGU/fSBpcyB0cnVlLCB3aGljaCBpcyBhbHNvIHRoZSBkZWZhdWx0LCBhY2NlcHQKK3Vu ZXNjYXBlZCB1bmljb2RlIGNoYXJhY3RlcnMgaW4gdGhlIGlucHV0IFVSSSwgYXMgaWYgaXQgd2Vy ZSBhbiBJUkkgKFJGQworMzk4NykuCisKIFJldHVybnMgYSBzdHJpbmcgb2YgdGhlIGRlY29kZWQg Y2hhcmFjdGVycywgb3IgYSBieXRldmVjdG9yIGlmCiBAdmFye2VuY29kaW5nfSB3YXMgQGNvZGV7 I2Z9LgogQGVuZCBkZWZmbgpkaWZmIC0tZ2l0IGEvbW9kdWxlL3dlYi91cmkuc2NtIGIvbW9kdWxl L3dlYi91cmkuc2NtCmluZGV4IDhlMGI5YmVlNy4uYTBlODU3MjVlIDEwMDY0NAotLS0gYS9tb2R1 bGUvd2ViL3VyaS5zY20KKysrIGIvbW9kdWxlL3dlYi91cmkuc2NtCkBAIC0zNzgsNyArMzc4LDcg QEAgc2VyaWFsaXphdGlvbi4iCiAoZGVmaW5lIGhleC1jaGFycwogICAoc3RyaW5nLT5jaGFyLXNl dCAiMDEyMzQ1Njc4OWFiY2RlZkFCQ0RFRiIpKQogCi0oZGVmaW5lKiAodXJpLWRlY29kZSBzdHIg IzprZXkgKGVuY29kaW5nICJ1dGYtOCIpIChkZWNvZGUtcGx1cy10by1zcGFjZT8gI3QpKQorKGRl ZmluZSogKHVyaS1kZWNvZGUgc3RyICM6a2V5IChlbmNvZGluZyAidXRmLTgiKSAoZGVjb2RlLXBs dXMtdG8tc3BhY2U/ICN0KSAoYWxsb3ctdW5lc2NhcGVkLXVuaWNvZGU/ICN0KSkKICAgIlBlcmNl bnQtZGVjb2RlIHRoZSBnaXZlbiBTVFIsIGFjY29yZGluZyB0byBFTkNPRElORywKIHdoaWNoIHNo b3VsZCBiZSB0aGUgbmFtZSBvZiBhIGNoYXJhY3RlciBlbmNvZGluZy4KIApAQCAtMzk4LDYgKzM5 OCwxMCBAQCBJZiBERUNPREUtUExVUy1UTy1TUEFDRT8gaXMgdHJ1ZSwgd2hpY2ggaXMgdGhlIGRl ZmF1bHQsIGFsc28gcmVwbGFjZQogaW5zdGFuY2VzIG9mIHRoZSBwbHVzIGNoYXJhY3RlciAoKykg d2l0aCBhIHNwYWNlIGNoYXJhY3Rlci4gIFRoaXMgaXMKIG5lZWRlZCB3aGVuIHBhcnNpbmcgYXBw bGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIGRhdGEuCiAKK0lmIEFMTE9XLVVORVNDQVBF RC1VTklDT0RFPyBpcyB0cnVlLCB3aGljaCBpcyBhbHNvIHRoZSBkZWZhdWx0LCBhY2NlcHQKK3Vu ZXNjYXBlZCB1bmljb2RlIGNoYXJhY3RlcnMgaW4gdGhlIGlucHV0IFVSSSwgYXMgaWYgaXQgd2Vy ZSBhbiBJUkkgKFJGQworMzk4NykuCisKIFJldHVybnMgYSBzdHJpbmcgb2YgdGhlIGRlY29kZWQg Y2hhcmFjdGVycywgb3IgYSBieXRldmVjdG9yIGlmCiBFTkNPRElORyB3YXMg4oCYI2bigJkuIgog ICAobGV0KiAoKGxlbiAoc3RyaW5nLWxlbmd0aCBzdHIpKQpAQCAtNDI0LDEwICs0MjgsMjUgQEAg RU5DT0RJTkcgd2FzIOKAmCNm4oCZLiIKICAgICAgICAgICAgICAgICAgICAgICAgKHB1dC11OCBw b3J0IChjaGFyLT5pbnRlZ2VyIGNoKSkKICAgICAgICAgICAgICAgICAgICAgICAgKGxwICgxKyBp KSkpCiAgICAgICAgICAgICAgICAgICAgICAgKGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAg KHVyaS1lcnJvciAiSW52YWxpZCBjaGFyYWN0ZXIgaW4gZW5jb2RlZCBVUkkgfmE6IH5zIgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciBjaCkpKSkpKSkpKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgKHVubGVzcyBhbGxvdy11bmVzY2FwZWQtdW5pY29kZT8KKyAgICAgICAg ICAgICAgICAgICAgICAgICAodXJpLWVycm9yICJJbnZhbGlkIGNoYXJhY3RlciBpbiBlbmNvZGVk IFVSSSB+YTogfnMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgY2gp KQorICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoZW5jb2RlZAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGNhdGNoICdlbmNvZGluZy1lcnJvcgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGFtYmRhICgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHN0cmluZy0+Ynl0ZXZlY3RvciAoc3RyaW5nIGNoKSBlbmNvZGluZykpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgZXJyb3IKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAodXJpLWVycm9yICJJbnZhbGlkIGNoYXJhY3RlciBpbiBlbmNvZGVkIFVS SSB+YTogfnMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHIgY2gpKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgIChwdXQtYnl0ZXZlY3RvciBwb3J0 IGVuY29kZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgKGxwICgxKyBpKSkpKSkpKSkpKSkp CiAgICAgKGlmIGVuY29kaW5nCi0gICAgICAgIChieXRldmVjdG9yLT5zdHJpbmcgYnYgZW5jb2Rp bmcpCisgICAgICAgIChjYXRjaCAnZGVjb2RpbmctZXJyb3IKKyAgICAgICAgICAobGFtYmRhICgp CisgICAgICAgICAgICAoc3RyaW5nLW5vcm1hbGl6ZS1uZmMgOzsgZm9yIHBsYWluIFVSSXMsIHRo aXMgZG9lcyBub3RoaW5nCisgICAgICAgICAgICAgKGJ5dGV2ZWN0b3ItPnN0cmluZyBidiBlbmNv ZGluZykpKQorICAgICAgICAgIChsYW1iZGEgZXJyb3IKKyAgICAgICAgICAgICh1cmktZXJyb3Ig IkludmFsaWQgY2hhcmFjdGVyIGluIGVuY29kZWQgVVJJIH5hIiBzdHIpKSkKICAgICAgICAgOzsg T3RoZXJ3aXNlIHJldHVybiByYXcgYnl0ZXZlY3RvcgogICAgICAgICBidikpKQogCmRpZmYgLS1n aXQgYS90ZXN0LXN1aXRlL3Rlc3RzL3dlYi11cmkudGVzdCBiL3Rlc3Qtc3VpdGUvdGVzdHMvd2Vi LXVyaS50ZXN0CmluZGV4IDk1ZmQ4MmYxNi4uODEyMDZlYzU0IDEwMDY0NAotLS0gYS90ZXN0LXN1 aXRlL3Rlc3RzL3dlYi11cmkudGVzdAorKysgYi90ZXN0LXN1aXRlL3Rlc3RzL3dlYi11cmkudGVz dApAQCAtNjg2LDYgKzY4NiwzNiBAQAogICAocGFzcy1pZiAiZm9vK2JhciIKICAgICAoZXF1YWw/ ICJmb28gYmFyIiAodXJpLWRlY29kZSAiZm9vK2JhciIpKSkKIAorICAocGFzcy1pZiAiZm9v4pyr YmFyIgorICAgIChlcXVhbD8gImZvb+Kcq2JhciIgKHVyaS1kZWNvZGUgImZvb+Kcq2JhciIpKSkK KworICAocGFzcy1pZi11cmktZXhjZXB0aW9uICJmb2/inKtiYXIgaW4gbm9uLXV0ZjggZW5jb2Rp bmciCisgICAgICAgICAgICAgICAgICAgICAgICAgIkludmFsaWQgY2hhcmFjdGVyIGluIGVuY29k ZWQgVVJJIH5hOiB+cyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAodXJpLWRlY29kZSAiZm9v 4pyrYmFyIiAjOmVuY29kaW5nICJJU08tODg1OS0xIikpCisKKyAgKHBhc3MtaWYtdXJpLWV4Y2Vw dGlvbiAiZm9vJUZGYmFyIGluIHV0Zi04IgorICAgICAgICAgICAgICAgICAgICAgICAgICJJbnZh bGlkIGNoYXJhY3RlciBpbiBlbmNvZGVkIFVSSSB+YSIKKyAgICAgICAgICAgICAgICAgICAgICAg ICAodXJpLWRlY29kZSAiZm9vJUZGYmFyIGluIHV0Zi04IikpCisKKyAgKHBhc3MtaWYtdXJpLWV4 Y2VwdGlvbiAiZm9v4pyrYmFyLCBidXQgdW5pY29kZSBNVVNUIGJlIGVzY2FwZWQiCisgICAgICAg ICAgICAgICAgICAgICAgICAgIkludmFsaWQgY2hhcmFjdGVyIGluIGVuY29kZWQgVVJJIH5hOiB+ cyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAodXJpLWRlY29kZSAiZm9v4pyrYmFyIiAjOmFs bG93LXVuZXNjYXBlZC11bmljb2RlPyAjZikpCisKKyAgOzsgVGhpcyBub3JtYWxpemF0aW9uIGV4 YW1wbGUgdXNlcyB0aGUgw7QgZGVjb21wb3NpdGlvbiBpbgorICA7OyBodHRwczovL3d3dy51bmlj b2RlLm9yZy9yZXBvcnRzL3RyMTUvI05vcm1fRm9ybXMKKyAgKGxldCAoKG5vbi1ub3JtYWwgKGxp c3QtPnN0cmluZworICAgICAgICAgICAgICAgICAgICAgKGxpc3QgI1xmICNcbworICAgICAgICAg ICAgICAgICAgICAgICAgICAgI1xvIChpbnRlZ2VyLT5jaGFyIChzdHJpbmctPm51bWJlciAiMDMw MiIgMTYpKSkpKQorICAgICAgICAobm9ybWFsIChsaXN0LT5zdHJpbmcKKyAgICAgICAgICAgICAg ICAgKGxpc3QgI1xmICNcbworICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlci0+Y2hhciAo c3RyaW5nLT5udW1iZXIgIjAwRjQiIDE2KSkpKSkpCisgICAgKHBhc3MtaWYgImV4dGVuZGVkIFVS SSBkZWNvZGU6IHRoZSBzdHJpbmdzIGFyZSBkaWZmZXJlbnQiCisgICAgICAobm90IChlcXVhbD8g bm9uLW5vcm1hbCBub3JtYWwpKSkKKyAgICAocGFzcy1pZiAiZXh0ZW5kZWQgVVJJIGRlY29kZTog b25lIGlzIHRoZSBORkMgb2YgdGhlIG90aGVyIgorICAgICAgKGVxdWFsPyAoc3RyaW5nLW5vcm1h bGl6ZS1uZmMgbm9uLW5vcm1hbCkgbm9ybWFsKSkKKyAgICAocGFzcy1pZiAiZXh0ZW5kZWQgVVJJ IGRlY29kZTogTkZDIGlzIHBlcmZvcm1lZCBjb3JyZWN0bHkiCisgICAgICAoZXF1YWw/IG5vcm1h bCAodXJpLWRlY29kZSBub24tbm9ybWFsKSkpKQorCiAgIChwYXNzLWlmICJmb28rYmFyIgogICAg IChlcXVhbD8gJygiZm9vK2JhciIpIChzcGxpdC1hbmQtZGVjb2RlLXVyaS1wYXRoICJmb28rYmFy IikpKSkKIAotLSAKMi4zMi4wCgo= --=-bswCT9WEQ2DuS99vhwnN--