From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.devel Subject: Re: If records are not sequences, why does aref work on records? Date: Fri, 7 Apr 2017 18:58:52 -0700 Organization: UCLA Computer Science Department Message-ID: <74e43816-ff68-d443-e37b-fd41bbf584d0@cs.ucla.edu> References: <86pogo4vty.fsf@molnjunk.nocrew.org> <8360igof0k.fsf@gnu.org> <867f2w4qdk.fsf@molnjunk.nocrew.org> <0e6a0a16-8133-b2bc-404a-d0016f0c655e@cs.ucla.edu> <86h9202knq.fsf@molnjunk.nocrew.org> <4f2a1d4c-8703-4f07-a721-ea28c348631d@default> <864ly02i1m.fsf@molnjunk.nocrew.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------7C321F8AED923ED409F86A0D" X-Trace: blaine.gmane.org 1491616784 30941 195.159.176.226 (8 Apr 2017 01:59:44 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sat, 8 Apr 2017 01:59:44 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 Cc: Stefan Monnier , Emacs developers To: Noam Postavsky , Drew Adams Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Apr 08 03:59:39 2017 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cwff5-0007F0-Iu for ged-emacs-devel@m.gmane.org; Sat, 08 Apr 2017 03:59:35 +0200 Original-Received: from localhost ([::1]:53231 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cwffB-0006o5-LA for ged-emacs-devel@m.gmane.org; Fri, 07 Apr 2017 21:59:41 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44546) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cwfeU-0006mZ-Pi for emacs-devel@gnu.org; Fri, 07 Apr 2017 21:59:00 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cwfeR-0006iN-Nz for emacs-devel@gnu.org; Fri, 07 Apr 2017 21:58:58 -0400 Original-Received: from zimbra.cs.ucla.edu ([131.179.128.68]:33688) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cwfeR-0006i5-Ao for emacs-devel@gnu.org; Fri, 07 Apr 2017 21:58:55 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 53815160060; Fri, 7 Apr 2017 18:58:53 -0700 (PDT) Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 3GTlHNXQoZQh; Fri, 7 Apr 2017 18:58:52 -0700 (PDT) Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 990A6160074; Fri, 7 Apr 2017 18:58:52 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id NP_irJ1uO0Sx; Fri, 7 Apr 2017 18:58:52 -0700 (PDT) Original-Received: from Penguin.CS.UCLA.EDU (Penguin.CS.UCLA.EDU [131.179.64.200]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 77CBC160060; Fri, 7 Apr 2017 18:58:52 -0700 (PDT) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 131.179.128.68 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:213794 Archived-At: This is a multi-part message in MIME format. --------------7C321F8AED923ED409F86A0D Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 04/07/2017 02:02 PM, Noam Postavsky wrote: > Now they are "record" objects, but we don't want > to break code that uses aref and copy-sequence on them. OK, given what you and Stefan have said, for backward-compatibility reasons copy-sequence should work on records. This means Emacs doesn't need a copy-record function, as people can just use copy-sequence. I installed the attached patch to do that, and to try to document the current low-level behavior better. --------------7C321F8AED923ED409F86A0D Content-Type: application/x-patch; name="0001-Deprecate-copy-record-in-favor-of-copy-sequence.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Deprecate-copy-record-in-favor-of-copy-sequence.patch" RnJvbSA1MzcwMjE0MmQ4ZmMxNDQwYjMyNGM2MGJhNDljZTExNDk4MTcwODMwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDcgQXByIDIwMTcgMTg6NTM6MTUgLTA3MDAKU3ViamVjdDogW1BBVENI XSBEZXByZWNhdGUgY29weS1yZWNvcmQgaW4gZmF2b3Igb2YgY29weS1zZXF1ZW5jZQoKU2lu Y2UgY29weS1zZXF1ZW5jZSBzZWVtcyB0byBiZSBuZWVkZWQgYW55d2F5IGZvciByZWNvcmRz LCBoYXZlIGl0Cndvcmsgb24gcmVjb3JkcywgYW5kIHJlbW92ZSBjb3B5LXJlY29yZCBhcyBi ZWluZyBzdXBlcmZsdW91cy4KKiBkb2MvbGlzcHJlZi9yZWNvcmRzLnRleGkgKFJlY29yZHMs IFJlY29yZCBGdW5jdGlvbnMpOgoqIGxpc3AvZW1hY3MtbGlzcC9jbC1tYWNzLmVsIChjbC1k ZWZzdHJ1Y3QpOgoqIGxpc3AvZW1hY3MtbGlzcC9laWVpby5lbCAobWFrZS1pbnN0YW5jZSwg Y2xvbmUpOgoqIHRlc3Qvc3JjL2FsbG9jLXRlc3RzLmVsIChyZWNvcmQtMyk6ClVzZSBjb3B5 LXNlcXVlbmNlLCBub3QgY29weS1yZWNvcmQsIHRvIGNvcHkgcmVjb3Jkcy4KKiBkb2MvbGlz cHJlZi9zZXF1ZW5jZXMudGV4aSAoU2VxdWVuY2UgRnVuY3Rpb25zKQooQXJyYXkgRnVuY3Rp b25zKTogRG9jdW1lbnQgdGhhdCBhcmVmIGFuZCBjb3B5LXNlcXVlbmNlCndvcmsgb24gcmVj b3Jkcy4KKiBldGMvTkVXUzogT21pdCBjb3B5LXJlY29yZC4KKiBzcmMvYWxsb2MuYyAoRmNv cHlfcmVjb3JkKTogUmVtb3ZlLgoqIHNyYy9kYXRhLmMgKEZhcmVmKTogRG9jdW1lbnQgdGhh dCBhcmcgY2FuIGJlIGEgcmVjb3JkLgoqIHNyYy9mbnMuYyAoRmNvcHlfc2VxdWVuY2UpOiBD b3B5IHJlY29yZHMsIHRvby4KLS0tCiBkb2MvbGlzcHJlZi9yZWNvcmRzLnRleGkgICB8IDM3 ICsrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRvYy9saXNwcmVmL3Nl cXVlbmNlcy50ZXhpIHwgMjMgKysrKysrKysrKystLS0tLS0tLS0tLS0KIGV0Yy9ORVdTICAg ICAgICAgICAgICAgICAgIHwgIDYgKysrLS0tCiBsaXNwL2VtYWNzLWxpc3AvY2wtbWFjcy5l bCB8ICAzICstLQogbGlzcC9lbWFjcy1saXNwL2VpZWlvLmVsICAgfCAgNiArKystLS0KIHNy Yy9hbGxvYy5jICAgICAgICAgICAgICAgIHwgMTQgLS0tLS0tLS0tLS0tLS0KIHNyYy9kYXRh LmMgICAgICAgICAgICAgICAgIHwgIDQgKystLQogc3JjL2Zucy5jICAgICAgICAgICAgICAg ICAgfCAxMiArKysrKysrKystLS0KIHRlc3Qvc3JjL2FsbG9jLXRlc3RzLmVsICAgIHwgIDIg Ky0KIDkgZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgNzQgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZG9jL2xpc3ByZWYvcmVjb3Jkcy50ZXhpIGIvZG9jL2xpc3ByZWYv cmVjb3Jkcy50ZXhpCmluZGV4IDI1MzNhOGEuLjdjYzM2ZjEgMTAwNjQ0Ci0tLSBhL2RvYy9s aXNwcmVmL3JlY29yZHMudGV4aQorKysgYi9kb2MvbGlzcHJlZi9yZWNvcmRzLnRleGkKQEAg LTEzLDggKzEzLDkgQEAgUmVjb3JkcwogaW5zdGFuY2VzLgogCiAgIEludGVybmFsbHksIGEg cmVjb3JkIG9iamVjdCBpcyBtdWNoIGxpa2UgYSB2ZWN0b3I7IGl0cyBzbG90cyBjYW4gYmUK LWFjY2Vzc2VkIHVzaW5nIEBjb2Rle2FyZWZ9LiAgSG93ZXZlciwgdGhlIGZpcnN0IHNsb3Qg aXMgdXNlZCB0byBob2xkCi1pdHMgdHlwZSBhcyByZXR1cm5lZCBieSBAY29kZXt0eXBlLW9m fS4gIEFsc28sIGluIHRoZSBjdXJyZW50CithY2Nlc3NlZCB1c2luZyBAY29kZXthcmVmfSBh bmQgaXQgY2FuIGJlIGNvcGllZCB1c2luZworQGNvZGV7Y29weS1zZXF1ZW5jZX0uICBIb3dl dmVyLCB0aGUgZmlyc3Qgc2xvdCBpcyB1c2VkIHRvIGhvbGQgaXRzCit0eXBlIGFzIHJldHVy bmVkIGJ5IEBjb2Rle3R5cGUtb2Z9LiAgQWxzbywgaW4gdGhlIGN1cnJlbnQKIGltcGxlbWVu dGF0aW9uIHJlY29yZHMgY2FuIGhhdmUgYXQgbW9zdCA0MDk2IHNsb3RzLCB3aGVyZWFzIHZl Y3RvcnMKIGNhbiBiZSBtdWNoIGxhcmdlci4gIExpa2UgYXJyYXlzLCByZWNvcmRzIHVzZSB6 ZXJvLW9yaWdpbiBpbmRleGluZzoKIHRoZSBmaXJzdCBzbG90IGhhcyBpbmRleCAwLgpAQCAt NzQsMzggKzc1LDYgQEAgUmVjb3JkIEZ1bmN0aW9ucwogQGVuZCBleGFtcGxlCiBAZW5kIGRl ZnVuCiAKLUBkZWZ1biBjb3B5LXJlY29yZCByZWNvcmQKLVRoaXMgZnVuY3Rpb24gcmV0dXJu cyBhIHNoYWxsb3cgY29weSBvZiBAdmFye3JlY29yZH0uICBUaGUgY29weSBpcyB0aGUKLXNh bWUgdHlwZSBhcyB0aGUgb3JpZ2luYWwgcmVjb3JkLCBhbmQgaXQgaGFzIHRoZSBzYW1lIHNs b3RzIGluIHRoZQotc2FtZSBvcmRlci4KLQotICBTdG9yaW5nIGEgbmV3IHNsb3QgaW50byB0 aGUgY29weSBkb2VzIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsCi1AdmFye3JlY29yZH0sIGFu ZCB2aWNlIHZlcnNhLiAgSG93ZXZlciwgdGhlIHNsb3RzIG9mIHRoZSBuZXcgcmVjb3JkCi1h cmUgbm90IGNvcGllczsgdGhleSBhcmUgaWRlbnRpY2FsIChAY29kZXtlcX0pIHRvIHRoZSBz bG90cyBvZiB0aGUKLW9yaWdpbmFsLiAgVGhlcmVmb3JlLCBjaGFuZ2VzIG1hZGUgd2l0aGlu IHRoZXNlIHNsb3RzLCBhcyBmb3VuZCB2aWEKLXRoZSBjb3BpZWQgcmVjb3JkLCBhcmUgYWxz byB2aXNpYmxlIGluIHRoZSBvcmlnaW5hbCByZWNvcmQuCi0KLUBleGFtcGxlCi1AZ3JvdXAK LShzZXRxIHggKHJlY29yZCAnZm9vIDEgMikpCi0gICAgIEByZXN1bHR7fSAjcyhmb28gMSAy KQotQGVuZCBncm91cAotQGdyb3VwCi0oc2V0cSB5IChjb3B5LXJlY29yZCB4KSkKLSAgICAg QHJlc3VsdHt9ICNzKGZvbyAxIDIpCi1AZW5kIGdyb3VwCi0KLUBncm91cAotKGVxIHggeSkK LSAgICAgQHJlc3VsdHt9IG5pbAotQGVuZCBncm91cAotQGdyb3VwCi0oZXF1YWwgeCB5KQot ICAgICBAcmVzdWx0e30gdAotQGVuZCBncm91cAotQGVuZCBleGFtcGxlCi1AZW5kIGRlZnVu Ci0KIEBub2RlIEJhY2t3YXJkIENvbXBhdGliaWxpdHkKIEBzZWN0aW9uIEJhY2t3YXJkIENv bXBhdGliaWxpdHkKIApkaWZmIC0tZ2l0IGEvZG9jL2xpc3ByZWYvc2VxdWVuY2VzLnRleGkg Yi9kb2MvbGlzcHJlZi9zZXF1ZW5jZXMudGV4aQppbmRleCAyYzg4ZWUzLi45M2U4ZmE4IDEw MDY0NAotLS0gYS9kb2MvbGlzcHJlZi9zZXF1ZW5jZXMudGV4aQorKysgYi9kb2MvbGlzcHJl Zi9zZXF1ZW5jZXMudGV4aQpAQCAtMTUxLDIwICsxNTEsMTkgQEAgU2VxdWVuY2UgRnVuY3Rp b25zCiBAY29kZXtudGh9IChAcHhyZWZ7RGVmaW5pdGlvbiBvZiBudGh9KS4KIEBlbmQgZGVm dW4KIAotQGRlZnVuIGNvcHktc2VxdWVuY2Ugc2VxdWVuY2UKK0BkZWZ1biBjb3B5LXNlcXVl bmNlIHNlcXIKIEBjaW5kZXggY29weWluZyBzZXF1ZW5jZXMKLVRoaXMgZnVuY3Rpb24gcmV0 dXJucyBhIGNvcHkgb2YgQHZhcntzZXF1ZW5jZX0uICBUaGUgY29weSBpcyB0aGUgc2FtZQot dHlwZSBvZiBvYmplY3QgYXMgdGhlIG9yaWdpbmFsIHNlcXVlbmNlLCBhbmQgaXQgaGFzIHRo ZSBzYW1lIGVsZW1lbnRzCi1pbiB0aGUgc2FtZSBvcmRlci4KK1RoaXMgZnVuY3Rpb24gcmV0 dXJucyBhIGNvcHkgb2YgQHZhcntzZXFyfSwgd2hpY2ggc2hvdWxkIGJlIGVpdGhlciBhCitz ZXF1ZW5jZSBvciBhIHJlY29yZC4gIFRoZSBjb3B5IGlzIHRoZSBzYW1lIHR5cGUgb2Ygb2Jq ZWN0IGFzIHRoZQorb3JpZ2luYWwsIGFuZCBpdCBoYXMgdGhlIHNhbWUgZWxlbWVudHMgaW4g dGhlIHNhbWUgb3JkZXIuCiAKIFN0b3JpbmcgYSBuZXcgZWxlbWVudCBpbnRvIHRoZSBjb3B5 IGRvZXMgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwKLUB2YXJ7c2VxdWVuY2V9LCBhbmQgdmlj ZSB2ZXJzYS4gIEhvd2V2ZXIsIHRoZSBlbGVtZW50cyBvZiB0aGUgbmV3Ci1zZXF1ZW5jZSBh cmUgbm90IGNvcGllczsgdGhleSBhcmUgaWRlbnRpY2FsIChAY29kZXtlcX0pIHRvIHRoZSBl bGVtZW50cworQHZhcntzZXFyfSwgYW5kIHZpY2UgdmVyc2EuICBIb3dldmVyLCB0aGUgZWxl bWVudHMgb2YgdGhlIGNvcHkKK2FyZSBub3QgY29waWVzOyB0aGV5IGFyZSBpZGVudGljYWwg KEBjb2Rle2VxfSkgdG8gdGhlIGVsZW1lbnRzCiBvZiB0aGUgb3JpZ2luYWwuICBUaGVyZWZv cmUsIGNoYW5nZXMgbWFkZSB3aXRoaW4gdGhlc2UgZWxlbWVudHMsIGFzCi1mb3VuZCB2aWEg dGhlIGNvcGllZCBzZXF1ZW5jZSwgYXJlIGFsc28gdmlzaWJsZSBpbiB0aGUgb3JpZ2luYWwK LXNlcXVlbmNlLgorZm91bmQgdmlhIHRoZSBjb3B5LCBhcmUgYWxzbyB2aXNpYmxlIGluIHRo ZSBvcmlnaW5hbC4KIAotSWYgdGhlIHNlcXVlbmNlIGlzIGEgc3RyaW5nIHdpdGggdGV4dCBw cm9wZXJ0aWVzLCB0aGUgcHJvcGVydHkgbGlzdCBpbgorSWYgdGhlIGFyZ3VtZW50IGlzIGEg c3RyaW5nIHdpdGggdGV4dCBwcm9wZXJ0aWVzLCB0aGUgcHJvcGVydHkgbGlzdCBpbgogdGhl IGNvcHkgaXMgaXRzZWxmIGEgY29weSwgbm90IHNoYXJlZCB3aXRoIHRoZSBvcmlnaW5hbCdz IHByb3BlcnR5CiBsaXN0LiAgSG93ZXZlciwgdGhlIGFjdHVhbCB2YWx1ZXMgb2YgdGhlIHBy b3BlcnRpZXMgYXJlIHNoYXJlZC4KIEB4cmVme1RleHQgUHJvcGVydGllc30uCkBAIC0xMTQ4 LDEwICsxMTQ3LDEwIEBAIEFycmF5IEZ1bmN0aW9ucwogQGVuZCBleGFtcGxlCiBAZW5kIGRl ZnVuCiAKLUBkZWZ1biBhcmVmIGFycmF5IGluZGV4CitAZGVmdW4gYXJlZiBhcnIgaW5kZXgK IEBjaW5kZXggYXJyYXkgZWxlbWVudHMKLVRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgQHZh cntpbmRleH10aCBlbGVtZW50IG9mIEB2YXJ7YXJyYXl9LiAgVGhlCi1maXJzdCBlbGVtZW50 IGlzIGF0IGluZGV4IHplcm8uCitUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIEB2YXJ7aW5k ZXh9dGggZWxlbWVudCBvZiB0aGUgYXJyYXkgb3IgcmVjb3JkCitAdmFye2Fycn0uICBUaGUg Zmlyc3QgZWxlbWVudCBpcyBhdCBpbmRleCB6ZXJvLgogCiBAZXhhbXBsZQogQGdyb3VwCmRp ZmYgLS1naXQgYS9ldGMvTkVXUyBiL2V0Yy9ORVdTCmluZGV4IGFhY2EyMjkuLmUzNTFhYmMg MTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBAIC04NjMsOSArODYzLDkg QEAgaW5zdGVhZCBvZiBpdHMgZmlyc3QuCiAKICsrKwogKiogRW1hY3Mgbm93IHN1cHBvcnRz IHJlY29yZHMgZm9yIHVzZXItZGVmaW5lZCB0eXBlcywgdmlhIHRoZSBuZXcKLWZ1bmN0aW9u cyAnY29weS1yZWNvcmQnLCAnbWFrZS1yZWNvcmQnLCAncmVjb3JkJywgYW5kICdyZWNvcmRw Jy4KLVJlY29yZHMgYXJlIG5vdyB1c2VkIGludGVybmFsbHkgdG8gcmVwcmVzZW50IGNsLWRl ZnN0cnVjdCBhbmQgZGVmY2xhc3MKLWluc3RhbmNlcywgZm9yIGV4YW1wbGUuCitmdW5jdGlv bnMgJ21ha2UtcmVjb3JkJywgJ3JlY29yZCcsIGFuZCAncmVjb3JkcCcuICBSZWNvcmRzIGFy ZSBub3cKK3VzZWQgaW50ZXJuYWxseSB0byByZXByZXNlbnQgY2wtZGVmc3RydWN0IGFuZCBk ZWZjbGFzcyBpbnN0YW5jZXMsIGZvcgorZXhhbXBsZS4KIAogKysrCiAqKiAnc2F2ZS1zb21l LWJ1ZmZlcnMnIG5vdyB1c2VzICdzYXZlLXNvbWUtYnVmZmVycy1kZWZhdWx0LXByZWRpY2F0 ZScKZGlmZiAtLWdpdCBhL2xpc3AvZW1hY3MtbGlzcC9jbC1tYWNzLmVsIGIvbGlzcC9lbWFj cy1saXNwL2NsLW1hY3MuZWwKaW5kZXggMjVjOWY5OS4uZWNiODlmZCAxMDA2NDQKLS0tIGEv bGlzcC9lbWFjcy1saXNwL2NsLW1hY3MuZWwKKysrIGIvbGlzcC9lbWFjcy1saXNwL2NsLW1h Y3MuZWwKQEAgLTI4MDgsOCArMjgwOCw3IEBAIGNsLWRlZnN0cnVjdAogICAgIChzZXRxIHNs b3RzIChucmV2ZXJzZSBzbG90cykKIAkgIGRlZmF1bHRzIChucmV2ZXJzZSBkZWZhdWx0cykp CiAgICAgKGFuZCBjb3BpZXIKLSAgICAgICAgIChwdXNoIGAoZGVmYWxpYXMgJyxjb3BpZXIK LSAgICAgICAgICAgICAgICAgICAgLChpZiAobnVsbCB0eXBlKSAnIydjb3B5LXJlY29yZCAn Iydjb3B5LXNlcXVlbmNlKSkKKyAgICAgICAgIChwdXNoIGAoZGVmYWxpYXMgJyxjb3BpZXIg Iydjb3B5LXNlcXVlbmNlKQogICAgICAgICAgICAgICAgZm9ybXMpKQogICAgIChpZiBjb25z dHJ1Y3RvcgogCShwdXNoIChsaXN0IGNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9saXNwL2Vt YWNzLWxpc3AvZWllaW8uZWwgYi9saXNwL2VtYWNzLWxpc3AvZWllaW8uZWwKaW5kZXggODU4 YjJmZC4uZTIxZDQ2ZSAxMDA2NDQKLS0tIGEvbGlzcC9lbWFjcy1saXNwL2VpZWlvLmVsCisr KyBiL2xpc3AvZW1hY3MtbGlzcC9laWVpby5lbApAQCAtNjk5LDggKzY5OSw4IEBAICdjb25z dHJ1Y3RvcgogVGhpcyBzdGF0aWMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIGFuIG9iamVjdCBp cyBjb25zdHJ1Y3RlZC4KIEl0IGFsbG9jYXRlcyB0aGUgdmVjdG9yIHVzZWQgdG8gcmVwcmVz ZW50IGFuIEVJRUlPIG9iamVjdCwgYW5kIHRoZW4KIGNhbGxzIGBpbml0aWFsaXplLWluc3Rh bmNlJyBvbiB0aGF0IG9iamVjdC4iCi0gIChsZXQqICgobmV3LW9iamVjdCAoY29weS1yZWNv cmQgKGVpZWlvLS1jbGFzcy1kZWZhdWx0LW9iamVjdC1jYWNoZQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoZWllaW8tLWNsYXNzLW9iamVjdCBjbGFzcykpKSkpCisg IChsZXQqICgobmV3LW9iamVjdCAoY29weS1zZXF1ZW5jZSAoZWllaW8tLWNsYXNzLWRlZmF1 bHQtb2JqZWN0LWNhY2hlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGVpZWlvLS1jbGFzcy1vYmplY3QgY2xhc3MpKSkpKQogICAgIChpZiAoYW5kIHNsb3RzCiAg ICAgICAgICAgICAgKGxldCAoKHggKGNhciBzbG90cykpKQogICAgICAgICAgICAgICAgKG9y IChzdHJpbmdwIHgpIChudWxsIHgpKSkpCkBAIC04MDQsNyArODA0LDcgQEAgJ2NvbnN0cnVj dG9yCiAKIChjbC1kZWZtZXRob2QgY2xvbmUgKChvYmogZWllaW8tZGVmYXVsdC1zdXBlcmNs YXNzKSAmcmVzdCBwYXJhbXMpCiAgICJNYWtlIGEgY29weSBvZiBPQkosIGFuZCB0aGVuIGFw cGx5IFBBUkFNUy4iCi0gIChsZXQgKChub2JqIChjb3B5LXJlY29yZCBvYmopKSkKKyAgKGxl dCAoKG5vYmogKGNvcHktc2VxdWVuY2Ugb2JqKSkpCiAgICAgKGlmIChzdHJpbmdwIChjYXIg cGFyYW1zKSkKICAgICAgICAgKGZ1bmNhbGwgKGlmIGVpZWlvLWJhY2t3YXJkLWNvbXBhdGli aWxpdHkgIydpZ25vcmUgIydtZXNzYWdlKQogICAgICAgICAgICAgICAgICAiT2Jzb2xldGUg bmFtZSAlUyBwYXNzZWQgdG8gY2xvbmUiIChwb3AgcGFyYW1zKSkpCmRpZmYgLS1naXQgYS9z cmMvYWxsb2MuYyBiL3NyYy9hbGxvYy5jCmluZGV4IGZhZDg0YjguLjg4YTFhMWUgMTAwNjQ0 Ci0tLSBhL3NyYy9hbGxvYy5jCisrKyBiL3NyYy9hbGxvYy5jCkBAIC0zNDQwLDE5ICszNDQw LDYgQEAgdXNhZ2U6IChyZWNvcmQgVFlQRSAmcmVzdCBTTE9UUykgKi8pCiB9CiAKIAotREVG VU4gKCJjb3B5LXJlY29yZCIsIEZjb3B5X3JlY29yZCwgU2NvcHlfcmVjb3JkLCAxLCAxLCAw LAotICAgICAgIGRvYzogLyogUmV0dXJuIGEgbmV3IHJlY29yZCB0aGF0IGlzIGEgc2hhbGxv dyBjb3B5IG9mIHRoZSBhcmd1bWVudCBSRUNPUkQuICAqLykKLSAgKExpc3BfT2JqZWN0IHJl Y29yZCkKLXsKLSAgQ0hFQ0tfUkVDT1JEIChyZWNvcmQpOwotICBwdHJkaWZmX3Qgc2l6ZSA9 IEFTSVpFIChyZWNvcmQpICYgUFNFVURPVkVDVE9SX1NJWkVfTUFTSzsKLSAgc3RydWN0IExp c3BfVmVjdG9yICpuZXcgPSBhbGxvY2F0ZV9yZWNvcmQgKHNpemUpOwotICBtZW1jcHkgKG5l dy0+Y29udGVudHMsIFhWRUNUT1IgKHJlY29yZCktPmNvbnRlbnRzLAotICAgICAgICAgIHNp emUgKiBzaXplb2YgKExpc3BfT2JqZWN0KSk7Ci0gIHJldHVybiBtYWtlX2xpc3BfcHRyIChu ZXcsIExpc3BfVmVjdG9ybGlrZSk7Ci19Ci0KLQogREVGVU4gKCJtYWtlLXZlY3RvciIsIEZt YWtlX3ZlY3RvciwgU21ha2VfdmVjdG9yLCAyLCAyLCAwLAogICAgICAgIGRvYzogLyogUmV0 dXJuIGEgbmV3bHkgY3JlYXRlZCB2ZWN0b3Igb2YgbGVuZ3RoIExFTkdUSCwgd2l0aCBlYWNo IGVsZW1lbnQgYmVpbmcgSU5JVC4KIFNlZSBhbHNvIHRoZSBmdW5jdGlvbiBgdmVjdG9yJy4g ICovKQpAQCAtNzUyMyw3ICs3NTEwLDYgQEAgVGhlIHRpbWUgaXMgaW4gc2Vjb25kcyBhcyBh IGZsb2F0aW5nIHBvaW50IHZhbHVlLiAgKi8pOwogICBkZWZzdWJyICgmU2xpc3QpOwogICBk ZWZzdWJyICgmU3ZlY3Rvcik7CiAgIGRlZnN1YnIgKCZTcmVjb3JkKTsKLSAgZGVmc3ViciAo JlNjb3B5X3JlY29yZCk7CiAgIGRlZnN1YnIgKCZTYm9vbF92ZWN0b3IpOwogICBkZWZzdWJy ICgmU21ha2VfYnl0ZV9jb2RlKTsKICAgZGVmc3ViciAoJlNtYWtlX2xpc3QpOwpkaWZmIC0t Z2l0IGEvc3JjL2RhdGEuYyBiL3NyYy9kYXRhLmMKaW5kZXggM2ZmY2E1NC4uOTAzZTgwOSAx MDA2NDQKLS0tIGEvc3JjL2RhdGEuYworKysgYi9zcmMvZGF0YS5jCkBAIC0yMjY2LDggKzIy NjYsOCBAQCBmdW5jdGlvbiBjaGFpbiBvZiBzeW1ib2xzLiAgKi8pCiAvKiBFeHRyYWN0IGFu ZCBzZXQgdmVjdG9yIGFuZCBzdHJpbmcgZWxlbWVudHMuICAqLwogCiBERUZVTiAoImFyZWYi LCBGYXJlZiwgU2FyZWYsIDIsIDIsIDAsCi0gICAgICAgZG9jOiAvKiBSZXR1cm4gdGhlIGVs ZW1lbnQgb2YgQVJSQVkgYXQgaW5kZXggSURYLgotQVJSQVkgbWF5IGJlIGEgdmVjdG9yLCBh IHN0cmluZywgYSBjaGFyLXRhYmxlLCBhIGJvb2wtdmVjdG9yLAorICAgICAgIGRvYzogLyog UmV0dXJuIHRoZSBlbGVtZW50IG9mIEFSRyBhdCBpbmRleCBJRFguCitBUkcgbWF5IGJlIGEg dmVjdG9yLCBhIHN0cmluZywgYSBjaGFyLXRhYmxlLCBhIGJvb2wtdmVjdG9yLCBhIHJlY29y ZCwKIG9yIGEgYnl0ZS1jb2RlIG9iamVjdC4gIElEWCBzdGFydHMgYXQgMC4gICovKQogICAo cmVnaXN0ZXIgTGlzcF9PYmplY3QgYXJyYXksIExpc3BfT2JqZWN0IGlkeCkKIHsKZGlmZiAt LWdpdCBhL3NyYy9mbnMuYyBiL3NyYy9mbnMuYwppbmRleCA0N2RhNWY4Li4yZjA3YzJjIDEw MDY0NAotLS0gYS9zcmMvZm5zLmMKKysrIGIvc3JjL2Zucy5jCkBAIC00NzUsMTMgKzQ3NSwx OSBAQCB1c2FnZTogKHZjb25jYXQgJnJlc3QgU0VRVUVOQ0VTKSAgICovKQogCiAKIERFRlVO ICgiY29weS1zZXF1ZW5jZSIsIEZjb3B5X3NlcXVlbmNlLCBTY29weV9zZXF1ZW5jZSwgMSwg MSwgMCwKLSAgICAgICBkb2M6IC8qIFJldHVybiBhIGNvcHkgb2YgYSBsaXN0LCB2ZWN0b3Is IHN0cmluZyBvciBjaGFyLXRhYmxlLgotVGhlIGVsZW1lbnRzIG9mIGEgbGlzdCBvciB2ZWN0 b3IgYXJlIG5vdCBjb3BpZWQ7IHRoZXkgYXJlIHNoYXJlZAotd2l0aCB0aGUgb3JpZ2luYWwu ICAqLykKKyAgICAgICBkb2M6IC8qIFJldHVybiBhIGNvcHkgb2YgYSBsaXN0LCB2ZWN0b3Is IHN0cmluZywgY2hhci10YWJsZSBvciByZWNvcmQuCitUaGUgZWxlbWVudHMgb2YgYSBsaXN0 LCB2ZWN0b3Igb3IgcmVjb3JkIGFyZSBub3QgY29waWVkOyB0aGV5IGFyZQorc2hhcmVkIHdp dGggdGhlIG9yaWdpbmFsLiAgKi8pCiAgIChMaXNwX09iamVjdCBhcmcpCiB7CiAgIGlmIChO SUxQIChhcmcpKSByZXR1cm4gYXJnOwogCisgIGlmIChSRUNPUkRQIChhcmcpKQorICAgIHsK KyAgICAgIHB0cmRpZmZfdCBzaXplID0gQVNJWkUgKGFyZykgJiBQU0VVRE9WRUNUT1JfU0la RV9NQVNLOworICAgICAgcmV0dXJuIEZyZWNvcmQgKHNpemUsIFhWRUNUT1IgKGFyZyktPmNv bnRlbnRzKTsKKyAgICB9CisKICAgaWYgKENIQVJfVEFCTEVfUCAoYXJnKSkKICAgICB7CiAg ICAgICByZXR1cm4gY29weV9jaGFyX3RhYmxlIChhcmcpOwpkaWZmIC0tZ2l0IGEvdGVzdC9z cmMvYWxsb2MtdGVzdHMuZWwgYi90ZXN0L3NyYy9hbGxvYy10ZXN0cy5lbAppbmRleCA4YjRl ZjhjLi4xY2YxZmMzIDEwMDY0NAotLS0gYS90ZXN0L3NyYy9hbGxvYy10ZXN0cy5lbAorKysg Yi90ZXN0L3NyYy9hbGxvYy10ZXN0cy5lbApAQCAtNDcsNyArNDcsNyBAQAogCiAoZXJ0LWRl ZnRlc3QgcmVjb3JkLTMgKCkKICAgKGxldCogKCh4IChyZWNvcmQgJ2ZvbyAxIDIgMykpCi0g ICAgICAgICAoeSAoY29weS1yZWNvcmQgeCkpKQorICAgICAgICAgKHkgKGNvcHktc2VxdWVu Y2UgeCkpKQogICAgIChzaG91bGQtbm90IChlcSB4IHkpKQogICAgIChkb3RpbWVzIChpIDQp CiAgICAgICAoc2hvdWxkIChlcWwgKGFyZWYgeCBpKSAoYXJlZiB5IGkpKSkpKSkKLS0gCjIu OS4zCgo= --------------7C321F8AED923ED409F86A0D--