From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.devel Subject: Re: Lisp reader syntax and bootstrap Date: Thu, 13 Jul 2023 15:07:43 -0700 Organization: UCLA Computer Science Department Message-ID: <5a110245-9b1c-be43-ca6e-2d37d3cac077@cs.ucla.edu> References: <83cz16k2kx.fsf@gnu.org> <833522jwvr.fsf@gnu.org> <87wmzdjk6l.fsf@yahoo.com> <219844d2-ca07-30f4-4e2c-1b1df76d0fa5@cs.ucla.edu> <83fs60hnj2.fsf@gnu.org> <83cz14guz3.fsf@gnu.org> <83pm52dbzh.fsf@gnu.org> <87y1jqwhhs.fsf@epfl.ch> <835y6uct1j.fsf@gnu.org> <878rbpe7a3.fsf@yahoo.com> <87y1jka126.fsf@yahoo.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------qM8qHGrX2owFoAwNfYq0L3nO" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="22774"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Cc: ulm@gentoo.org, eliz@gnu.org, contovob@tcd.ie, emacs-devel@gnu.org To: Po Lu , Richard Stallman Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Jul 14 00:08:53 2023 Return-path: Envelope-to: ged-emacs-devel@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 1qK4UV-0005jW-VJ for ged-emacs-devel@m.gmane-mx.org; Fri, 14 Jul 2023 00:08:53 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qK4TY-0005gj-S3; Thu, 13 Jul 2023 18:07:52 -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 1qK4TX-0005gb-TX for emacs-devel@gnu.org; Thu, 13 Jul 2023 18:07:51 -0400 Original-Received: from mail.cs.ucla.edu ([131.179.128.66]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qK4TV-0000SG-Br; Thu, 13 Jul 2023 18:07:51 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id 149423C011BD4; Thu, 13 Jul 2023 15:07:45 -0700 (PDT) Original-Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id F1qvWN74kj3T; Thu, 13 Jul 2023 15:07:44 -0700 (PDT) Original-Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id 880483C011BD8; Thu, 13 Jul 2023 15:07:44 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu 880483C011BD8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu; s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1689286064; bh=2lmcPth/gz10xDtvme4wpfw2wp6wzHcnRUhn4SeG7bE=; h=Message-ID:Date:MIME-Version:To:From; b=CXzHzmpKqkr/8mB4eAACoMO5EKNbEiD2Nk1trx+A4x0DOnDr0NZabDrZGNKy/Tttf uCpmn0C/uAVLBTdebzls6dCACzU2zHwUK9yJmldwhepdNUsJCyh4Zlaob5T9gvbOlU dCCWOVF+KyOV1Bm6z8Y9VA6LGn4WZ50WACFaWCVfIFRZJ5wb5MzilfRBDEORniDC4c V4GNJ/OrWWdFr6+Gz7LMoKs8v4p9cqeq7HLqFV3tcNXMM/sTdRek8+FtsM+QCzXdQr AUvNUcwLKRDXju7S5Dq0vkehSt9BwvjO0Ia1v1DubJTOifsf1GluiONksIIaOY3CaY LQj3Vav67rfcA== X-Virus-Scanned: amavisd-new at mail.cs.ucla.edu Original-Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id wVIcDYQXnfvs; Thu, 13 Jul 2023 15:07:44 -0700 (PDT) Original-Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by mail.cs.ucla.edu (Postfix) with ESMTPSA id 4EE5C3C011BD4; Thu, 13 Jul 2023 15:07:44 -0700 (PDT) Content-Language: en-US In-Reply-To: <87y1jka126.fsf@yahoo.com> Received-SPF: pass client-ip=131.179.128.66; envelope-from=eggert@cs.ucla.edu; helo=mail.cs.ucla.edu X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, NICE_REPLY_A=-0.096, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:307832 Archived-At: This is a multi-part message in MIME format. --------------qM8qHGrX2owFoAwNfYq0L3nO Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 2023-07-12 21:27, Po Lu wrote: > Lisp programmers should simply avoid using NaN and Inf Support for NaN and Inf is ubiquitous nowadays, and it should be OK to write Emacs Lisp programs that use NaN and Inf, especially since Emacs itself uses them in its own Lisp files. As I actually made money back in the 1970s writing code for VAXes, I was moved to look into RMS's suggestion to signal an error when reading "0.0e+NaN" on a VAX. Unfortunately this broke calculator.el - that is, I couldn't load calculator.el (or calculator.elc), as loading signaled an error when it saw the NaN. And even if we removed the NaN from calculator.el (and I suppose, infinities from other .el files), users would run into similar issues with their own code. So I instead installed the attached patch. On a VAX this approximates infinities and NaNs with extremal values and non-numeric objects, respectively. Although I do not have a VAX to test it on, and am too lazy to spin up an emulator, I did test it on x86-64 by pretending that the x86-64 lacked IEEE support, and it seemed to work OK. (At least, I could load calculator.el....) This patch shouldn't change behavior (or even the executable code) on today's platforms. It's purely for computer museums. --------------qM8qHGrX2owFoAwNfYq0L3nO Content-Type: text/x-patch; charset=UTF-8; name="0001-Port-NaN-infinity-handling-better-to-VAX.patch" Content-Disposition: attachment; filename="0001-Port-NaN-infinity-handling-better-to-VAX.patch" Content-Transfer-Encoding: base64 RnJvbSAwY2Q1MTk5NzFkMTk5ODM2YmEwYTZlOWYwZTM2YWY5YjlhY2NhZjBkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUaHUsIDEzIEp1bCAyMDIzIDE0OjI2OjI5IC0wNzAwClN1YmplY3Q6IFtQQVRD SF0gUG9ydCBOYU4sIGluZmluaXR5IGhhbmRsaW5nIGJldHRlciB0byBWQVgKCk5vd2FkYXlz IC5lbGMgZmlsZXMgcm91dGluZWx5IGNvbnRhaW4gdG9rZW5zIGxpa2UgMS4wZStJTkYgYW5k CjAuMGUrTmFOIHRoYXQgZG8gbm90IHdvcmsgb24gYW50aXF1ZXMgbGlrZSB0aGUgVkFYIHRo YXQgbGFjayBJRUVFIGZwLgpQb3J0IEVtYWNzIHRvIHRoZXNlIHBsYXRmb3JtcywgYnkgdHJl YXRpbmcgaW5maW5pdGllcyBhcyBleHRyZW1lCnZhbHVlcyBhbmQgTmFOcyBhcyBzdHJpbmdz IHRoYXQgdHJhcCBpZiB1c2VkIG51bWVyaWNhbGx5LgoqIHNyYy9scmVhZC5jIChJTkZJTklU WSk6IERlZmF1bHQgdG8gSFVHRV9WQUwgaWYgbm9uLUlFRUUuCihub3RfYV9udW1iZXIpIFsh SUVFRV9GTE9BVElOR19QT0lOVF06IE5ldyBzdGF0aWMgYXJyYXkuCihzeW1zX29mX2xyZWFk KSBbIUlFRUVfRkxPQVRJTkdfUE9JTlRdOiBJbml0aWFsaXplIGl0LgoocmVhZDApOiBSZXBv cnQgaW52YWxpZCBzeW50YXggZm9yICswLjBlK05hTiBvbiBwbGF0Zm9ybXMKdGhhdCBsYWNr IE5hTnMuCihzdHJpbmdfdG9fbnVtYmVyKTogT24gbm9uLUlFRUUgcGxhdGZvcm1zLCByZXR1 cm4gSFVHRV9WQUwKZm9yIGluZmluaXR5IGFuZCBhIHN0cmluZyBmb3IgTmFOLiAgQWxsIGNh bGxlcnMgY2hhbmdlZC4KLS0tCiBkb2MvbGlzcHJlZi9udW1iZXJzLnRleGkgfCAxMCArKysr KystLS0tCiBldGMvTkVXUyAgICAgICAgICAgICAgICAgfCAgOCArKysrKysrKwogc3JjL2Rh dGEuYyAgICAgICAgICAgICAgIHwgIDMgKystCiBzcmMvbHJlYWQuYyAgICAgICAgICAgICAg fCAyOSArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogc3JjL3Byb2Nlc3MuYyAgICAg ICAgICAgIHwgIDMgKystCiA1IGZpbGVzIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDkg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2xpc3ByZWYvbnVtYmVycy50ZXhpIGIv ZG9jL2xpc3ByZWYvbnVtYmVycy50ZXhpCmluZGV4IDNlNDVhYTkwZmRhLi5iY2Y4OWZjOWFi MSAxMDA2NDQKLS0tIGEvZG9jL2xpc3ByZWYvbnVtYmVycy50ZXhpCisrKyBiL2RvYy9saXNw cmVmL251bWJlcnMudGV4aQpAQCAtMjcwLDEwICsyNzAsNiBAQCBGbG9hdCBCYXNpY3MKIHNp Z25zIGFuZCBzaWduaWZpY2FuZHMgYWdyZWUuICBTaWduaWZpY2FuZHMgb2YgTmFOcyBhcmUK IG1hY2hpbmUtZGVwZW5kZW50LCBhcyBhcmUgdGhlIGRpZ2l0cyBpbiB0aGVpciBzdHJpbmcg cmVwcmVzZW50YXRpb24uCiAKLSAgTmFOcyBhcmUgbm90IGF2YWlsYWJsZSBvbiBzeXN0ZW1z IHdoaWNoIGRvIG5vdCB1c2UgSUVFRQotZmxvYXRpbmctcG9pbnQgYXJpdGhtZXRpYzsgaWYg dGhlIHJlYWQgc3ludGF4IGZvciBhIE5hTiBpcyB1c2VkIG9uIGEKLVZBWCwgZm9yIGV4YW1w bGUsIHRoZSByZWFkZXIgc2lnbmFscyBhbiBlcnJvci4KLQogICBXaGVuIE5hTnMgYW5kIHNp Z25lZCB6ZXJvcyBhcmUgaW52b2x2ZWQsIG5vbi1udW1lcmljIGZ1bmN0aW9ucyBsaWtlCiBA Y29kZXtlcWx9LCBAY29kZXtlcXVhbH0sIEBjb2Rle3N4aGFzaC1lcWx9LCBAY29kZXtzeGhh c2gtZXF1YWx9IGFuZAogQGNvZGV7Z2V0aGFzaH0gZGV0ZXJtaW5lIHdoZXRoZXIgdmFsdWVz IGFyZSBpbmRpc3Rpbmd1aXNoYWJsZSwgbm90CkBAIC0yODMsNiArMjc5LDEyIEBAIEZsb2F0 IEJhc2ljcwogY29udmVyc2VseSwgQGNvZGV7KGVxdWFsIDAuMCAtMC4wKX0gcmV0dXJucyBA Y29kZXtuaWx9IHdoZXJlYXMKIEBjb2Rleyg9IDAuMCAtMC4wKX0gcmV0dXJucyBAY29kZXt0 fS4KIAorICBJbmZpbml0aWVzIGFuZCBOYU5zIGFyZSBub3QgYXZhaWxhYmxlIG9uIGxlZ2Fj eSBzeXN0ZW1zIHRoYXQgbGFjaworSUVFRSBmbG9hdGluZy1wb2ludCBhcml0aG1ldGljLiAg T24gYSBjaXJjYSAxOTgwIFZBWCwgZm9yIGV4YW1wbGUsIHRoZQorTGlzcCByZWFkZXIgYXBw cm94aW1hdGVzIGFuIGluZmluaXR5IHdpdGggdGhlIG5lYXJlc3QgZmluaXRlIHZhbHVlLAor YW5kIGEgTmFOIHdpdGggc29tZSBvdGhlciBub24tbnVtZXJpYyBMaXNwIG9iamVjdCB0aGF0 IHByb3Zva2VzIGFuCitlcnJvciBpZiB1c2VkIG51bWVyaWNhbGx5LgorCiBIZXJlIGFyZSBy ZWFkIHN5bnRheGVzIGZvciB0aGVzZSBzcGVjaWFsIGZsb2F0aW5nLXBvaW50IHZhbHVlczoK IAogQHRhYmxlIEBhc2lzCmRpZmYgLS1naXQgYS9ldGMvTkVXUyBiL2V0Yy9ORVdTCmluZGV4 IDVkNWVhOTkwYjkyLi45OTdmN2U4MmMyYiAxMDA2NDQKLS0tIGEvZXRjL05FV1MKKysrIGIv ZXRjL05FV1MKQEAgLTU4NSw2ICs1ODUsMTQgQEAgYmVoYXZpb3IgYmFjayBmb3IgYW55IG90 aGVyIHJlYXNvbiwgeW91IGNhbiBkbyB0aGF0IHVzaW5nIHRoZQogcHJldmlvdXMgYmVoYXZp b3Igb2Ygc2hvd2luZyAnVScgaW4gdGhlIG1vZGUgbGluZSBmb3IgJ2tvaTgtdSc6CiAKICAg ICAgKGNvZGluZy1zeXN0ZW0tcHV0ICdrb2k4LXUgOm1uZW1vbmljID9VKQorCisrKysKKyoq IEluZmluaXRpZXMgYW5kIE5hTnMgbm8gbG9uZ2VyIGFjdCBhcyBzeW1ib2xzIG9uIG5vbi1J RUVFIHBsYXRmb3Jtcy4KK09uIG9sZCBwbGF0Zm9ybXMgbGlrZSB0aGUgVkFYIHRoYXQgZG8g bm90IHN1cHBvcnQgSUVFRSBmbG9hdGluZy1wb2ludCwKK3Rva2VucyBsaWtlIDAuMGUrTmFO IGFuZCAxLjBlK0lORiBhcmUgbm8gbG9uZ2VyIHJlYWQgYXMgc3ltYm9scy4KK0luc3RlYWQs IHRoZSBMaXNwIHJlYWRlciBhcHByb3hpbWF0ZXMgYW4gaW5maW5pdHkgd2l0aCB0aGUgbmVh cmVzdAorZmluaXRlIHZhbHVlLCBhbmQgYSBOYU4gd2l0aCBzb21lIG90aGVyIG5vbi1udW1l cmljIG9iamVjdCB0aGF0Citwcm92b2tlcyBhbiBlcnJvciBpZiB1c2VkIG51bWVyaWNhbGx5 LgogDAogKiBMaXNwIENoYW5nZXMgaW4gRW1hY3MgMzAuMQogCmRpZmYgLS1naXQgYS9zcmMv ZGF0YS5jIGIvc3JjL2RhdGEuYwppbmRleCA2ZGU4ZTBjZjFhMS4uNWEzMTQ2MmQ4Y2EgMTAw NjQ0Ci0tLSBhL3NyYy9kYXRhLmMKKysrIGIvc3JjL2RhdGEuYwpAQCAtMzAzMyw3ICszMDMz LDggQEAgREVGVU4gKCJzdHJpbmctdG8tbnVtYmVyIiwgRnN0cmluZ190b19udW1iZXIsIFNz dHJpbmdfdG9fbnVtYmVyLCAxLCAyLCAwLAogICAgIHArKzsKIAogICBMaXNwX09iamVjdCB2 YWwgPSBzdHJpbmdfdG9fbnVtYmVyIChwLCBiLCAwKTsKLSAgcmV0dXJuIE5JTFAgKHZhbCkg PyBtYWtlX2ZpeG51bSAoMCkgOiB2YWw7CisgIHJldHVybiAoKElFRUVfRkxPQVRJTkdfUE9J TlQgPyBOSUxQICh2YWwpIDogIU5VTUJFUlAgKHZhbCkpCisJICA/IG1ha2VfZml4bnVtICgw KSA6IHZhbCk7CiB9CiAMCiBlbnVtIGFyaXRob3AKZGlmZiAtLWdpdCBhL3NyYy9scmVhZC5j IGIvc3JjL2xyZWFkLmMKaW5kZXggNTFkMGQyYTNjMjQuLjY3OTJlZjI3MjA2IDEwMDY0NAot LS0gYS9zcmMvbHJlYWQuYworKysgYi9zcmMvbHJlYWQuYwpAQCAtNzUsNiArNzUsMTAgQEAg I2RlZmluZSBmaWxlX3RlbGwgZnRlbGwKICMgaWZuZGVmIElORklOSVRZCiAjICBkZWZpbmUg SU5GSU5JVFkgKCh1bmlvbiBpZWVlNzU0X2RvdWJsZSkgey5pZWVlID0gey5leHBvbmVudCA9 IC0xfX0uZCkKICMgZW5kaWYKKyNlbHNlCisjIGlmbmRlZiBJTkZJTklUWQorIyAgZGVmaW5l IElORklOSVRZIEhVR0VfVkFMCisjIGVuZGlmCiAjZW5kaWYKIAogLyogVGhlIG9iamVjdHMg b3IgcGxhY2Vob2xkZXJzIHJlYWQgd2l0aCB0aGUgI249b2JqZWN0IGZvcm0uCkBAIC00NDc3 LDEwICs0NDgxLDE3IEBAIHN1YnN0aXR1dGVfaW5faW50ZXJ2YWwgKElOVEVSVkFMIGludGVy dmFsLCB2b2lkICphcmcpCiB9CiAKIAwKKyNpZiAhSUVFRV9GTE9BVElOR19QT0lOVAorLyog U3RyaW5ncyB0aGF0IHN0YW5kIGluIGZvciArTmFOLCAtTmFOLCByZXNwZWN0aXZlbHkuICAq Lworc3RhdGljIExpc3BfT2JqZWN0IG5vdF9hX251bWJlclsyXTsKKyNlbmRpZgorCiAvKiBD b252ZXJ0IHRoZSBpbml0aWFsIHByZWZpeCBvZiBTVFJJTkcgdG8gYSBudW1iZXIsIGFzc3Vt aW5nIGJhc2UgQkFTRS4KICAgIElmIHRoZSBwcmVmaXggaGFzIGZsb2F0aW5nIHBvaW50IHN5 bnRheCBhbmQgQkFTRSBpcyAxMCwgcmV0dXJuIGEKICAgIG5lYXJlc3QgZmxvYXQ7IG90aGVy d2lzZSwgaWYgdGhlIHByZWZpeCBoYXMgaW50ZWdlciBzeW50YXgsIHJldHVybgotICAgdGhl IGludGVnZXI7IG90aGVyd2lzZSwgcmV0dXJuIG5pbC4gIElmIFBMRU4sIHNldCAqUExFTiB0 byB0aGUKKyAgIHRoZSBpbnRlZ2VyOyBvdGhlcndpc2UsIHJldHVybiBuaWwuICAoT24gYW50 aXF1ZSBwbGF0Zm9ybXMgdGhhdCBsYWNrCisgICBzdXBwb3J0IGZvciBOYU5zLCBpZiB0aGUg cHJlZml4IGhhcyBOYU4gc3ludGF4IHJldHVybiBhIExpc3Agb2JqZWN0IHRoYXQKKyAgIHdp bGwgcHJvdm9rZSBhbiBlcnJvciBpZiB1c2VkIGFzIGEgbnVtYmVyLikgIElmIFBMRU4sIHNl dCAqUExFTiB0byB0aGUKICAgIGxlbmd0aCBvZiB0aGUgbnVtZXJpYyBwcmVmaXggaWYgdGhl cmUgaXMgb25lLCBvdGhlcndpc2UgKlBMRU4gaXMKICAgIHVuc3BlY2lmaWVkLiAgKi8KIApA QCAtNDU0NSw3ICs0NTU2LDYgQEAgc3RyaW5nX3RvX251bWJlciAoY2hhciBjb25zdCAqc3Ry aW5nLCBpbnQgYmFzZSwgcHRyZGlmZl90ICpwbGVuKQogCQljcCsrOwogCSAgICAgIHdoaWxl ICgnMCcgPD0gKmNwICYmICpjcCA8PSAnOScpOwogCSAgICB9Ci0jaWYgSUVFRV9GTE9BVElO R19QT0lOVAogCSAgZWxzZSBpZiAoY3BbLTFdID09ICcrJwogCQkgICAmJiBjcFswXSA9PSAn SScgJiYgY3BbMV0gPT0gJ04nICYmIGNwWzJdID09ICdGJykKIAkgICAgewpAQCAtNDU1OCwx MiArNDU2OCwxNyBAQCBzdHJpbmdfdG9fbnVtYmVyIChjaGFyIGNvbnN0ICpzdHJpbmcsIGlu dCBiYXNlLCBwdHJkaWZmX3QgKnBsZW4pCiAJICAgIHsKIAkgICAgICBzdGF0ZSB8PSBFX0VY UDsKIAkgICAgICBjcCArPSAzOworI2lmIElFRUVfRkxPQVRJTkdfUE9JTlQKIAkgICAgICB1 bmlvbiBpZWVlNzU0X2RvdWJsZSB1CiAJCT0geyAuaWVlZV9uYW4gPSB7IC5leHBvbmVudCA9 IDB4N2ZmLCAucXVpZXRfbmFuID0gMSwKIAkJCQkgIC5tYW50aXNzYTAgPSBuID4+IDMxID4+ IDEsIC5tYW50aXNzYTEgPSBuIH19OwogCSAgICAgIHZhbHVlID0gdS5kOwotCSAgICB9Cisj ZWxzZQorCSAgICAgIGlmIChwbGVuKQorCQkqcGxlbiA9IGNwIC0gc3RyaW5nOworCSAgICAg IHJldHVybiBub3RfYV9udW1iZXJbbmVnYXRpdmVdOwogI2VuZGlmCisJICAgIH0KIAkgIGVs c2UKIAkgICAgY3AgPSBlY3A7CiAJfQpAQCAtNTcwNyw2ICs1NzIyLDE0IEBAIHN5bXNfb2Zf bHJlYWQgKHZvaWQpCiAgIERFRlNZTSAoUWNvbW1hLCAiLCIpOwogICBERUZTWU0gKFFjb21t YV9hdCwgIixAIik7CiAKKyNpZiAhSUVFRV9GTE9BVElOR19QT0lOVAorICBmb3IgKGludCBu ZWdhdGl2ZSA9IDA7IG5lZ2F0aXZlIDwgMjsgbmVnYXRpdmUrKykKKyAgICB7CisgICAgICBu b3RfYV9udW1iZXJbbmVnYXRpdmVdID0gYnVpbGRfcHVyZV9jX3N0cmluZyAoJiItMC4wZStO YU4iWyFuZWdhdGl2ZV0pOworICAgICAgc3RhdGljcHJvICgmbm90X2FfbnVtYmVyW25lZ2F0 aXZlXSk7CisgICAgfQorI2VuZGlmCisKICAgREVGU1lNIChRaW5oaWJpdF9maWxlX25hbWVf b3BlcmF0aW9uLCAiaW5oaWJpdC1maWxlLW5hbWUtb3BlcmF0aW9uIik7CiAgIERFRlNZTSAo UWFzY2lpX2NoYXJhY3RlciwgImFzY2lpLWNoYXJhY3RlciIpOwogICBERUZTWU0gKFFmdW5j dGlvbiwgImZ1bmN0aW9uIik7CmRpZmYgLS1naXQgYS9zcmMvcHJvY2Vzcy5jIGIvc3JjL3By b2Nlc3MuYwppbmRleCA2N2QxZDNlNDI1Zi4uMmQ2ZTA4ZjE2YjUgMTAwNjQ0Ci0tLSBhL3Ny Yy9wcm9jZXNzLmMKKysrIGIvc3JjL3Byb2Nlc3MuYwpAQCAtNzEzMCw3ICs3MTMwLDggQEAg REVGVU4gKCJpbnRlcm5hbC1kZWZhdWx0LXNpZ25hbC1wcm9jZXNzIiwKIAl7CiAJICBwdHJk aWZmX3QgbGVuOwogCSAgdGVtID0gc3RyaW5nX3RvX251bWJlciAoU1NEQVRBIChwcm9jZXNz KSwgMTAsICZsZW4pOwotCSAgaWYgKE5JTFAgKHRlbSkgfHwgbGVuICE9IFNCWVRFUyAocHJv Y2VzcykpCisJICBpZiAoKElFRUVfRkxPQVRJTkdfUE9JTlQgPyBOSUxQICh0ZW0pIDogIU5V TUJFUlAgKHRlbSkpCisJICAgICAgfHwgbGVuICE9IFNCWVRFUyAocHJvY2VzcykpCiAJICAg IHJldHVybiBRbmlsOwogCX0KICAgICAgIHByb2Nlc3MgPSB0ZW07Ci0tIAoyLjM5LjIKCg== --------------qM8qHGrX2owFoAwNfYq0L3nO--