From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Simon Law Newsgroups: gmane.emacs.bugs Subject: bug#11520: 24.1.50; delete-selection-mode conflicts with electric-pair-mode Date: Sun, 21 Oct 2012 19:12:55 -0400 Message-ID: References: <87ipdqx6e4.fsf@gnu.org> <87a9z19jgj.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=0015175d07e6b89b2504cc99e111 X-Trace: ger.gmane.org 1350861263 18146 80.91.229.3 (21 Oct 2012 23:14:23 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 21 Oct 2012 23:14:23 +0000 (UTC) Cc: Chong Yidong , 11520@debbugs.gnu.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Oct 22 01:14:31 2012 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TQ4j0-0004Dk-0B for geb-bug-gnu-emacs@m.gmane.org; Mon, 22 Oct 2012 01:14:30 +0200 Original-Received: from localhost ([::1]:43877 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TQ4is-0004Er-J7 for geb-bug-gnu-emacs@m.gmane.org; Sun, 21 Oct 2012 19:14:22 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:54426) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TQ4ip-0004Ej-Ta for bug-gnu-emacs@gnu.org; Sun, 21 Oct 2012 19:14:21 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TQ4io-0000Ym-NZ for bug-gnu-emacs@gnu.org; Sun, 21 Oct 2012 19:14:19 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:44475) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TQ4io-0000Yi-KF for bug-gnu-emacs@gnu.org; Sun, 21 Oct 2012 19:14:18 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1TQ4kT-0008G6-Hh for bug-gnu-emacs@gnu.org; Sun, 21 Oct 2012 19:16:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Simon Law Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 21 Oct 2012 23:16:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 11520 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 11520-submit@debbugs.gnu.org id=B11520.135086130831681 (code B ref 11520); Sun, 21 Oct 2012 23:16:01 +0000 Original-Received: (at 11520) by debbugs.gnu.org; 21 Oct 2012 23:15:08 +0000 Original-Received: from localhost ([127.0.0.1]:54726 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TQ4jb-0008Ew-U7 for submit@debbugs.gnu.org; Sun, 21 Oct 2012 19:15:08 -0400 Original-Received: from mail-bk0-f44.google.com ([209.85.214.44]:56044) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TQ4jZ-0008EE-6r for 11520@debbugs.gnu.org; Sun, 21 Oct 2012 19:15:06 -0400 Original-Received: by mail-bk0-f44.google.com with SMTP id jc3so644394bkc.3 for <11520@debbugs.gnu.org>; Sun, 21 Oct 2012 16:13:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-originating-ip:in-reply-to:references:from:date :message-id:subject:to:cc:content-type:x-gm-message-state; bh=DSsAA5K+owDLi7DggssrqbBf6R0sf1EmQBoM51pjc08=; b=MjyPH26F0L6Nv2xF1D5qIaXIU6skeYEIO+uDrCJE4byt/f6jK8P0lJFU/SkVitIZM/ 2/nVpKQ9cKG+VOm+3TvzKBih3rXchQX6MtLM9nm1vlpvuIqYhzrDMtcnYOtHlLK/qCoY shrnwXXHd//rSY+8ZmMF7nYuETBbNe+rBB49oM0f2wO/pGOUOhMwbtsYdXPbHlOmcOsD l4uSz0/zDd8hrxmy48FNxFGiLnmrFQCXJZXWHNbOn8lfleKRmTX6sQDopg4tXOBRvv63 CJLrOr0155Z0PUP1AkRMxVyt7OBfvIzUzRIFBJvWViC4SpXpFswpR3gk8TojZkuBfVcR wsDg== Original-Received: by 10.204.151.9 with SMTP id a9mr2102370bkw.2.1350861195876; Sun, 21 Oct 2012 16:13:15 -0700 (PDT) Original-Received: by 10.204.142.140 with HTTP; Sun, 21 Oct 2012 16:12:55 -0700 (PDT) X-Originating-IP: [2607:f2c0:f00e:1900:5c08:1815:a9d3:ea30] In-Reply-To: X-Gm-Message-State: ALoCoQm9Ua07a/CBtyW5t6nASO/AZO0d1rB+SuZ/7PifC6H56kWcwQ/PNq/3wh0YtjWfLMkJMecm X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 140.186.70.43 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.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:65828 Archived-At: --0015175d07e6b89b2504cc99e111 Content-Type: text/plain; charset=UTF-8 Attached is a patch against trunk. I have addressed your concerns below: On Mon, Oct 8, 2012 at 6:25 PM, Stefan Monnier wrote: >> I proposed making delete-selection-pre-hook understand a function as >> one of the legitimate types. If it were a function, it gets called and >> its results would be interpreted as type, either: 'yank, 'kill, >> 'supersede, t, or nil. > >> That way, electric-pair-mode can override the (put >> 'self-insert-command 'delete-selection ...) with its own function that > > That's going in the right direction, but I have two problems with that: > - I don't want electric-pair-mode to decide of the whole > self-insert-command behavior. I.e. self-insert-command should have > a `delete-selection' property that is not specific to > electric-pair-mode, so that if someone implements some other > post-self-insert-hook that also interacts with > selection-selection-mode, they should be able to cooperate. > IOW, we need self-insert-command's delete-section property to be a new > function that runs a new hook on which electric-foo-mode can add their > respective function. There is a new abnormal hook called delete-selection-self-insert-hooks that delete-selection-mode attaches, by default, onto self-insert-command and self-insert-iso. Conceivably, the other functions may also need their own hooks, but I couldn't think of a good use case right now. Therefore, YAGNI. It is trivial to add this later. > - this new hook should be good enough for delete-selection-mode, > obviously, but it should also be good enough for a replacement > of delete-selection-mode that works differently. > I guess the functions on that hook would mostly need to return > a boolean indicating whether they're going to make use of the region. Instead of booleans, those functions return one of the types that delete-selection understands. -- Cheers, Simon - http://ca.linkedin.com/in/sfllaw/ --0015175d07e6b89b2504cc99e111 Content-Type: application/octet-stream; name="11520.0.patch" Content-Disposition: attachment; filename="11520.0.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h8kruz6a0 ZGlmZiAtLWdpdCBhL2xpc3AvZGVsc2VsLmVsIGIvbGlzcC9kZWxzZWwuZWwKaW5kZXggYTY0MzU2 Ny4uMDlmNThlMCAxMDA2NDQKLS0tIGEvbGlzcC9kZWxzZWwuZWwKKysrIGIvbGlzcC9kZWxzZWwu ZWwKQEAgLTQ3LDYgKzQ3LDkgQEAKIDs7ICBub24tbmlsCiA7OyAgICAgIFRoZSBub3JtYWwgY2Fz ZTogZGVsZXRlIHRoZSBhY3RpdmUgcmVnaW9uIHByaW9yIHRvIGV4ZWN1dGluZwogOzsgICAgICB0 aGUgY29tbWFuZCB3aGljaCB3aWxsIGluc2VydCByZXBsYWNlbWVudCB0ZXh0LgorOzsgIGhvb2tz Cis7OyAgICAgIEZvciBjb21tYW5kcyB3aGljaCBuZWVkIHRvIGR5bmFtaWNhbGx5IGRldGVybWlu ZSB0aGlzIGJlaGF2aW91ci4KKzs7ICAgICAgRWFjaCBob29rIHNob3VsZCByZXR1cm4gb25lIG9m IHRoZSBhYm92ZSB2YWx1ZXMgb3IgbmlsLgogCiA7OzsgQ29kZToKIApAQCAtNzEsNjYgKzc0LDEw NiBAQCBhbnkgc2VsZWN0aW9uLiIKICAgICAodHJhbnNpZW50LW1hcmstbW9kZSB0KSkpCiAKIChk ZWZ1biBkZWxldGUtYWN0aXZlLXJlZ2lvbiAoJm9wdGlvbmFsIGtpbGxwKQorICAiRGVsZXRlIHRo ZSBhY3RpdmUgcmVnaW9uLgorSWYgS0lMTFAgaW4gbm90LW5pbCwgdGhlIGFjdGl2ZSByZWdpb24g aXMga2lsbGVkIGluc3RlYWQgb2YgZGVsZXRlZC4iCiAgIChpZiBraWxscAogICAgICAgKGtpbGwt cmVnaW9uIChwb2ludCkgKG1hcmspKQogICAgIChkZWxldGUtcmVnaW9uIChwb2ludCkgKG1hcmsp KSkKICAgdCkKIAorKGRlZnVuIGRlbGV0ZS1zZWxlY3Rpb24taGVscGVyICh0eXBlKQorICAiRGVs ZXRlcyBzZWxlY3Rpb24gYWNjb3JkaW5nIHRvIFRZUEU6CisgJ3lhbmsKKyAgICAgRm9yIGNvbW1h bmRzIHdoaWNoIGRvIGEgeWFuazsgZW5zdXJlcyB0aGUgcmVnaW9uIGFib3V0IHRvIGJlCisgICAg IGRlbGV0ZWQgaXNuJ3QgeWFua2VkLgorICdzdXBlcnNlZGUKKyAgICAgRGVsZXRlIHRoZSBhY3Rp dmUgcmVnaW9uIGFuZCBpZ25vcmUgdGhlIGN1cnJlbnQgY29tbWFuZCwKKyAgICAgaS5lLiB0aGUg Y29tbWFuZCB3aWxsIGp1c3QgZGVsZXRlIHRoZSByZWdpb24uCisgJ2tpbGwKKyAgICAgYGtpbGwt cmVnaW9uJyBpcyB1c2VkIG9uIHRoZSBzZWxlY3Rpb24sIHJhdGhlciB0aGFuCisgICAgIGBkZWxl dGUtcmVnaW9uJy4gIChUZXh0IHNlbGVjdGVkIHdpdGggdGhlIG1vdXNlIHdpbGwgdHlwaWNhbGx5 CisgICAgIGJlIHlhbmthYmxlIGFueWhvdy4pCisgbm9uLW5pbAorICAgICBUaGUgbm9ybWFsIGNh c2U6IGRlbGV0ZSB0aGUgYWN0aXZlIHJlZ2lvbiBwcmlvciB0byBleGVjdXRpbmcKKyAgICAgdGhl IGNvbW1hbmQgd2hpY2ggd2lsbCBpbnNlcnQgcmVwbGFjZW1lbnQgdGV4dC4KKyBob29rcworICAg ICBGb3IgY29tbWFuZHMgd2hpY2ggbmVlZCB0byBkeW5hbWljYWxseSBkZXRlcm1pbmUgdGhpcyBi ZWhhdmlvdXIuCisgICAgIEVhY2ggaG9vayBzaG91bGQgcmV0dXJuIG9uZSBvZiB0aGUgYWJvdmUg dmFsdWVzIG9yIG5pbC4iCisgIChjb25kaXRpb24tY2FzZSBkYXRhCisgICAgICAoY29uZCAoKGVx IHR5cGUgJ2tpbGwpCisJICAgICAoZGVsZXRlLWFjdGl2ZS1yZWdpb24gdCkpCisJICAgICgoZXEg dHlwZSAneWFuaykKKwkgICAgIDs7IEJlZm9yZSBhIHlhbmsgY29tbWFuZCwgbWFrZSBzdXJlIHdl IGRvbid0IHlhbmsgdGhlCisJICAgICA7OyBoZWFkIG9mIHRoZSBraWxsLXJpbmcgdGhhdCByZWFs bHkgY29tZXMgZnJvbSB0aGUKKwkgICAgIDs7IGN1cnJlbnRseSBhY3RpdmUgcmVnaW9uIHdlIGFy ZSBnb2luZyB0byBkZWxldGUuCisJICAgICA7OyBUaGF0IHdvdWxkIG1ha2UgeWFuayBhIG5vLW9w LgorCSAgICAgKHdoZW4gKGFuZCAoc3RyaW5nPSAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0 aWVzCisJCQkJICAocG9pbnQpIChtYXJrKSkKKwkJCQkgKGNhciBraWxsLXJpbmcpKQorCQkJKGZi b3VuZHAgJ21vdXNlLXJlZ2lvbi1tYXRjaCkKKwkJCShtb3VzZS1yZWdpb24tbWF0Y2gpKQorCSAg ICAgICAoY3VycmVudC1raWxsIDEpKQorCSAgICAgKGRlbGV0ZS1hY3RpdmUtcmVnaW9uKSkKKwkg ICAgKChlcSB0eXBlICdzdXBlcnNlZGUpCisJICAgICAobGV0ICgoZW1wdHktcmVnaW9uICg9IChw b2ludCkgKG1hcmspKSkpCisJICAgICAgIChkZWxldGUtYWN0aXZlLXJlZ2lvbikKKwkgICAgICAg KHVubGVzcyBlbXB0eS1yZWdpb24KKwkJIChzZXRxIHRoaXMtY29tbWFuZCAnaWdub3JlKSkpKQor CSAgICAoKGFuZCAoc3ltYm9scCB0eXBlKSAobm90IChib29sZWFucCB0eXBlKSkpCisJICAgICAo ZGVsZXRlLXNlbGVjdGlvbi1oZWxwZXIKKwkgICAgICAocnVuLWhvb2std2l0aC1hcmdzLXVudGls LXN1Y2Nlc3MgdHlwZSkpKQorCSAgICAodHlwZQorCSAgICAgKGRlbGV0ZS1hY3RpdmUtcmVnaW9u KQorCSAgICAgKGlmIChhbmQgb3ZlcndyaXRlLW1vZGUKKwkJICAgICAgKGVxIHRoaXMtY29tbWFu ZCAnc2VsZi1pbnNlcnQtY29tbWFuZCkpCisJCSAobGV0ICgob3ZlcndyaXRlLW1vZGUgbmlsKSkK KwkJICAgKHNlbGYtaW5zZXJ0LWNvbW1hbmQKKwkJICAgIChwcmVmaXgtbnVtZXJpYy12YWx1ZSBj dXJyZW50LXByZWZpeC1hcmcpKQorCQkgICAoc2V0cSB0aGlzLWNvbW1hbmQgJ2lnbm9yZSkpKSkp CisgICAgOzsgSWYgYXNrLXVzZXItYWJvdXQtc3VwZXJzZXNzaW9uLXRocmVhdCBzaWduYWxzIGFu IGVycm9yLAorICAgIDs7IHN0b3Agc2FmZV9ydW5faG9va3MgZnJvbSBjbGVhcmluZyBvdXQgcHJl LWNvbW1hbmQtaG9vay4KKyAgICAoZmlsZS1zdXBlcnNlc3Npb24gKG1lc3NhZ2UgIiVzIiAoY2Fk ciBkYXRhKSkgKGRpbmcpKQorICAgICh0ZXh0LXJlYWQtb25seQorICAgICA7OyBUaGlzIHNpZ25h bCBtYXkgY29tZSBlaXRoZXIgZnJvbSBgZGVsZXRlLWFjdGl2ZS1yZWdpb24nIG9yCisgICAgIDs7 IGBzZWxmLWluc2VydC1jb21tYW5kJyAod2hlbiBgb3ZlcndyaXRlLW1vZGUnIGlzIG5vbi1uaWwp LgorICAgICA7OyBUbyBhdm9pZCBjbGVhcmluZyBvdXQgYHByZS1jb21tYW5kLWhvb2snIHdlIGhh bmRsZSB0aGlzIGNhc2UKKyAgICAgOzsgYnkgaXNzdWluZyBhIHNpbXBsZSBtZXNzYWdlLiAgTm90 ZSwgaG93ZXZlciwgdGhhdCB3ZSBkbyBub3QKKyAgICAgOzsgaGFuZGxlIGFsbCByZWxhdGVkIHBy b2JsZW1zOiBXaGVuIHJlYWQtb25seSB0ZXh0IGVuZHMgYmVmb3JlCisgICAgIDs7IHRoZSBlbmQg b2YgdGhlIHJlZ2lvbiwgdGhlIGxhdHRlciBpcyBub3QgZGVsZXRlZCBidXQgYW55CisgICAgIDs7 IHN1YnNlcXVlbnQgaW5zZXJ0aW9uIHdpbGwgc3VjY2VlZC4gIFdlIGNvdWxkIGF2b2lkIHRoaXMg Y2FzZQorICAgICA7OyBieSBkb2luZyBhIChzZXRxIHRoaXMtY29tbWFuZCAnaWdub3JlKSBoZXJl LiAgVGhpcyB3b3VsZCwKKyAgICAgOzsgaG93ZXZlciwgc3RpbGwgbm90IGhhbmRsZSB0aGUgY2Fz ZSB3aGVyZSByZWFkLW9ubHkgdGV4dCBlbmRzCisgICAgIDs7IHByZWNpc2VseSB3aGVyZSB0aGUg cmVnaW9uIHN0YXJ0czogSW4gdGhhdCBjYXNlIHRoZSBkZWxldGlvbgorICAgICA7OyB3b3VsZCBz dWNjZWVkIGJ1dCB0aGUgc3Vic2VxdWVudCBpbnNlcnRpb24gd291bGQgZmFpbCB3aXRoIGEKKyAg ICAgOzsgdGV4dC1yZWFkLW9ubHkgZXJyb3IuICBUbyBoYW5kbGUgdGhhdCBjYXNlIHdlIHdvdWxk IGhhdmUgdG8KKyAgICAgOzsgaW52ZXN0aWdhdGUgdGV4dCBwcm9wZXJ0aWVzIGF0IGJvdGggZW5k cyBvZiB0aGUgcmVnaW9uIGFuZAorICAgICA7OyBza2lwIHRoZSBkZWxldGlvbiB3aGVuIGluc2Vy dGluZyB0ZXh0IGlzIGZvcmJpZGRlbiB0aGVyZS4KKyAgICAgKG1lc3NhZ2UgIlRleHQgaXMgcmVh ZC1vbmx5IikgKGRpbmcpKSkpCisKIChkZWZ1biBkZWxldGUtc2VsZWN0aW9uLXByZS1ob29rICgp CisgICJOb3JtYWwgaG9vayBydW4gYmVmb3JlIGNvbW1hbmRzIHRoYXQgZGVsZXRlIHNlbGVjdGlv bnMgYXJlIGV4ZWN1dGVkLgorQ29tbWFuZHMgd2hpY2ggd2lsbCBkZWxldGUgdGhlIHNlbGVjdGlv biBuZWVkIGEgJ2RlbGV0ZS1zZWxlY3Rpb24KK3Byb3BlcnR5IG9uIHRoZWlyIHN5bWJvbHM7IGNv bW1hbmRzIHdoaWNoIGluc2VydCB0ZXh0IGJ1dCBkb24ndAoraGF2ZSB0aGlzIHByb3BlcnR5IHdv bid0IGRlbGV0ZSB0aGUgc2VsZWN0aW9uLgorCitTZWUgYGRlbGV0ZS1zZWxlY3Rpb24taGVscGVy Jy4KKyIKICAgKHdoZW4gKGFuZCBkZWxldGUtc2VsZWN0aW9uLW1vZGUgdHJhbnNpZW50LW1hcmst bW9kZSBtYXJrLWFjdGl2ZQogCSAgICAgKG5vdCBidWZmZXItcmVhZC1vbmx5KSkKICAgICAobGV0 ICgodHlwZSAoYW5kIChzeW1ib2xwIHRoaXMtY29tbWFuZCkKIAkJICAgICAoZ2V0IHRoaXMtY29t bWFuZCAnZGVsZXRlLXNlbGVjdGlvbikpKSkKLSAgICAgIChjb25kaXRpb24tY2FzZSBkYXRhCi0J ICAoY29uZCAoKGVxIHR5cGUgJ2tpbGwpCi0JCSAoZGVsZXRlLWFjdGl2ZS1yZWdpb24gdCkpCi0J CSgoZXEgdHlwZSAneWFuaykKLQkJIDs7IEJlZm9yZSBhIHlhbmsgY29tbWFuZCwgbWFrZSBzdXJl IHdlIGRvbid0IHlhbmsgdGhlCi0JCSA7OyBoZWFkIG9mIHRoZSBraWxsLXJpbmcgdGhhdCByZWFs bHkgY29tZXMgZnJvbSB0aGUKLQkJIDs7IGN1cnJlbnRseSBhY3RpdmUgcmVnaW9uIHdlIGFyZSBn b2luZyB0byBkZWxldGUuCi0JCSA7OyBUaGF0IHdvdWxkIG1ha2UgeWFuayBhIG5vLW9wLgotCQkg KHdoZW4gKGFuZCAoc3RyaW5nPSAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludCkgKG1hcmspKQotCQkJCSAg ICAgKGNhciBraWxsLXJpbmcpKQotCQkJICAgIChmYm91bmRwICdtb3VzZS1yZWdpb24tbWF0Y2gp Ci0JCQkgICAgKG1vdXNlLXJlZ2lvbi1tYXRjaCkpCi0JCSAgIChjdXJyZW50LWtpbGwgMSkpCi0J CSAoZGVsZXRlLWFjdGl2ZS1yZWdpb24pKQotCQkoKGVxIHR5cGUgJ3N1cGVyc2VkZSkKLQkJIChs ZXQgKChlbXB0eS1yZWdpb24gKD0gKHBvaW50KSAobWFyaykpKSkKLQkJICAgKGRlbGV0ZS1hY3Rp dmUtcmVnaW9uKQotCQkgICAodW5sZXNzIGVtcHR5LXJlZ2lvbgotCQkgICAgIChzZXRxIHRoaXMt Y29tbWFuZCAnaWdub3JlKSkpKQotCQkodHlwZQotCQkgKGRlbGV0ZS1hY3RpdmUtcmVnaW9uKQot CQkgKGlmIChhbmQgb3ZlcndyaXRlLW1vZGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKGVx IHRoaXMtY29tbWFuZCAnc2VsZi1pbnNlcnQtY29tbWFuZCkpCi0JCSAgIChsZXQgKChvdmVyd3Jp dGUtbW9kZSBuaWwpKQotCQkgICAgIChzZWxmLWluc2VydC1jb21tYW5kCi0gICAgICAgICAgICAg ICAgICAgICAgKHByZWZpeC1udW1lcmljLXZhbHVlIGN1cnJlbnQtcHJlZml4LWFyZykpCi0JCSAg ICAgKHNldHEgdGhpcy1jb21tYW5kICdpZ25vcmUpKSkpKQotCSA7OyBJZiBhc2stdXNlci1hYm91 dC1zdXBlcnNlc3Npb24tdGhyZWF0IHNpZ25hbHMgYW4gZXJyb3IsCi0JIDs7IHN0b3Agc2FmZV9y dW5faG9va3MgZnJvbSBjbGVhcmluZyBvdXQgcHJlLWNvbW1hbmQtaG9vay4KLQkoZmlsZS1zdXBl cnNlc3Npb24gKG1lc3NhZ2UgIiVzIiAoY2FkciBkYXRhKSkgKGRpbmcpKQotCSh0ZXh0LXJlYWQt b25seQotCSA7OyBUaGlzIHNpZ25hbCBtYXkgY29tZSBlaXRoZXIgZnJvbSBgZGVsZXRlLWFjdGl2 ZS1yZWdpb24nIG9yCi0JIDs7IGBzZWxmLWluc2VydC1jb21tYW5kJyAod2hlbiBgb3ZlcndyaXRl LW1vZGUnIGlzIG5vbi1uaWwpLgotCSA7OyBUbyBhdm9pZCBjbGVhcmluZyBvdXQgYHByZS1jb21t YW5kLWhvb2snIHdlIGhhbmRsZSB0aGlzIGNhc2UKLQkgOzsgYnkgaXNzdWluZyBhIHNpbXBsZSBt ZXNzYWdlLiAgTm90ZSwgaG93ZXZlciwgdGhhdCB3ZSBkbyBub3QKLQkgOzsgaGFuZGxlIGFsbCBy ZWxhdGVkIHByb2JsZW1zOiBXaGVuIHJlYWQtb25seSB0ZXh0IGVuZHMgYmVmb3JlCi0JIDs7IHRo ZSBlbmQgb2YgdGhlIHJlZ2lvbiwgdGhlIGxhdHRlciBpcyBub3QgZGVsZXRlZCBidXQgYW55Ci0J IDs7IHN1YnNlcXVlbnQgaW5zZXJ0aW9uIHdpbGwgc3VjY2VlZC4gIFdlIGNvdWxkIGF2b2lkIHRo aXMgY2FzZQotCSA7OyBieSBkb2luZyBhIChzZXRxIHRoaXMtY29tbWFuZCAnaWdub3JlKSBoZXJl LiAgVGhpcyB3b3VsZCwKLQkgOzsgaG93ZXZlciwgc3RpbGwgbm90IGhhbmRsZSB0aGUgY2FzZSB3 aGVyZSByZWFkLW9ubHkgdGV4dCBlbmRzCi0JIDs7IHByZWNpc2VseSB3aGVyZSB0aGUgcmVnaW9u IHN0YXJ0czogSW4gdGhhdCBjYXNlIHRoZSBkZWxldGlvbgotCSA7OyB3b3VsZCBzdWNjZWVkIGJ1 dCB0aGUgc3Vic2VxdWVudCBpbnNlcnRpb24gd291bGQgZmFpbCB3aXRoIGEKLQkgOzsgdGV4dC1y ZWFkLW9ubHkgZXJyb3IuICBUbyBoYW5kbGUgdGhhdCBjYXNlIHdlIHdvdWxkIGhhdmUgdG8KLQkg OzsgaW52ZXN0aWdhdGUgdGV4dCBwcm9wZXJ0aWVzIGF0IGJvdGggZW5kcyBvZiB0aGUgcmVnaW9u IGFuZAotCSA7OyBza2lwIHRoZSBkZWxldGlvbiB3aGVuIGluc2VydGluZyB0ZXh0IGlzIGZvcmJp ZGRlbiB0aGVyZS4KLQkgKG1lc3NhZ2UgIlRleHQgaXMgcmVhZC1vbmx5IikgKGRpbmcpKSkpKSkK LQotKHB1dCAnc2VsZi1pbnNlcnQtY29tbWFuZCAnZGVsZXRlLXNlbGVjdGlvbiB0KQotKHB1dCAn c2VsZi1pbnNlcnQtaXNvICdkZWxldGUtc2VsZWN0aW9uIHQpCisgICAgICAoZGVsZXRlLXNlbGVj dGlvbi1oZWxwZXIgdHlwZSkpKSkKKworKGRlZnVuIGRlbGV0ZS1zZWxlY3Rpb24tc2VsZi1pbnNl cnQtZnVuY3Rpb24gKCkKKyAgdCkKKworKGRlZnZhciBkZWxldGUtc2VsZWN0aW9uLXNlbGYtaW5z ZXJ0LWhvb2tzCisgICcoZGVsZXRlLXNlbGVjdGlvbi1zZWxmLWluc2VydC1mdW5jdGlvbikKKyAg IkFibm9ybWFsIGhvb2sgcnVuIGJlZm9yZSBjb21tYW5kcyB0aGF0IGluc2VydCBjaGFyYWN0ZXJz LgorVGhpcyBob29rIHNob3VsZCByZXR1cm4gYSBUWVBFIHRoYXQgYGRlbGV0ZS1zZWxlY3Rpb24t aGVscGVyJyB1bmRlcnN0YW5kcy4iKQorCisocHV0ICdzZWxmLWluc2VydC1jb21tYW5kICdkZWxl dGUtc2VsZWN0aW9uICdkZWxldGUtc2VsZWN0aW9uLXNlbGYtaW5zZXJ0LWhvb2tzKQorKHB1dCAn c2VsZi1pbnNlcnQtaXNvICdkZWxldGUtc2VsZWN0aW9uICdkZWxldGUtc2VsZWN0aW9uLXNlbGYt aW5zZXJ0LWhvb2tzKQogCiAocHV0ICd5YW5rICdkZWxldGUtc2VsZWN0aW9uICd5YW5rKQogKHB1 dCAnY2xpcGJvYXJkLXlhbmsgJ2RlbGV0ZS1zZWxlY3Rpb24gJ3lhbmspCmRpZmYgLS1naXQgYS9s aXNwL2VsZWN0cmljLmVsIGIvbGlzcC9lbGVjdHJpYy5lbAppbmRleCAzMTA4YTBlLi5lNmZhMWRm IDEwMDY0NAotLS0gYS9saXNwL2VsZWN0cmljLmVsCisrKyBiL2xpc3AvZWxlY3RyaWMuZWwKQEAg LTMwMSwxNCArMzAxLDE3IEBAIFRoaXMgY2FuIGJlIGNvbnZlbmllbnQgZm9yIHBlb3BsZSB3aG8g ZmluZCBpdCBlYXNpZXIgdG8gaGl0ICkgdGhhbiBDLWYuIgogICA6dmVyc2lvbiAiMjQuMSIKICAg OnR5cGUgJ2Jvb2xlYW4pCiAKKyhkZWZ1biBlbGVjdHJpYy1wYWlyLXN5bnRheCAoY29tbWFuZC1l dmVudCkKKyAgKGFuZCBlbGVjdHJpYy1wYWlyLW1vZGUKKyAgICAgICAobGV0ICgoeCAoYXNzcSBj b21tYW5kLWV2ZW50IGVsZWN0cmljLXBhaXItcGFpcnMpKSkKKwkgKGNvbmQKKwkgICh4IChpZiAo ZXEgKGNhciB4KSAoY2RyIHgpKSA/XCIgP1woKSkKKwkgICgocmFzc3EgY29tbWFuZC1ldmVudCBl bGVjdHJpYy1wYWlyLXBhaXJzKSA/XCkpCisJICAodCAoY2hhci1zeW50YXggY29tbWFuZC1ldmVu dCkpKSkpKQorCiAoZGVmdW4gZWxlY3RyaWMtcGFpci1wb3N0LXNlbGYtaW5zZXJ0LWZ1bmN0aW9u ICgpCiAgIChsZXQqICgoc3ludGF4IChhbmQgKGVxIChjaGFyLWJlZm9yZSkgbGFzdC1jb21tYW5k LWV2ZW50KSA7IFNhbml0eSBjaGVjay4KLSAgICAgICAgICAgICAgICAgICAgICBlbGVjdHJpYy1w YWlyLW1vZGUKLSAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoeCAoYXNzcSBsYXN0LWNvbW1h bmQtZXZlbnQgZWxlY3RyaWMtcGFpci1wYWlycykpKQotICAgICAgICAgICAgICAgICAgICAgICAg KGNvbmQKLSAgICAgICAgICAgICAgICAgICAgICAgICAoeCAoaWYgKGVxIChjYXIgeCkgKGNkciB4 KSkgP1wiID9cKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgKChyYXNzcSBsYXN0LWNvbW1h bmQtZXZlbnQgZWxlY3RyaWMtcGFpci1wYWlycykgP1wpKQotICAgICAgICAgICAgICAgICAgICAg ICAgICh0IChjaGFyLXN5bnRheCBsYXN0LWNvbW1hbmQtZXZlbnQpKSkpKSkKKwkJICAgICAgKGVs ZWN0cmljLXBhaXItc3ludGF4IGxhc3QtY29tbWFuZC1ldmVudCkpKQogICAgICAgICAgOzsgRklY TUU6IHdoZW4gaW5zZXJ0aW5nIHRoZSBjbG9zZXIsIHdlIHNob3VsZCBtYXliZSB1c2UKICAgICAg ICAgIDs7IHNlbGYtaW5zZXJ0LWNvbW1hbmQsIGFsdGhvdWdoIGl0IG1heSBwcm92ZSB0cmlja3kg cnVubmluZwogICAgICAgICAgOzsgcG9zdC1zZWxmLWluc2VydC1ob29rIHJlY3Vyc2l2ZWx5LCBh bmQgd2Ugd291bGRuJ3Qgd2FudCB0byB0cmlnZ2VyCkBAIC0zNTUsNiArMzU4LDEyIEBAIFRoaXMg Y2FuIGJlIGNvbnZlbmllbnQgZm9yIHBlb3BsZSB3aG8gZmluZCBpdCBlYXNpZXIgdG8gaGl0ICkg dGhhbiBDLWYuIgogICAgICAgICAgICAgICAgKGVxIChjaGFyLXN5bnRheCAoZm9sbG93aW5nLWNo YXIpKSA/dykpKQogICAgICAgKHNhdmUtZXhjdXJzaW9uIChpbnNlcnQgY2xvc2VyKSkpKSkpCiAK KyhkZWZ1biBlbGVjdHJpYy1wYWlyLWRlbGV0ZS1zZWxlY3Rpb24tc2VsZi1pbnNlcnQtZnVuY3Rp b24gKCkKKyAgKGxldCAoKHN5bnRheCAoZWxlY3RyaWMtcGFpci1zeW50YXggbGFzdC1jb21tYW5k LWV2ZW50KSkpCisgICAgKGlmIChhbmQgKG1lbXEgc3ludGF4ICcoP1woID9cIiA/XCQpKSAodXNl LXJlZ2lvbi1wKSkKKwkna2VlcAorICAgICAgdCkpKQorCiA7OzsjIyNhdXRvbG9hZAogKGRlZmlu ZS1taW5vci1tb2RlIGVsZWN0cmljLXBhaXItbW9kZQogICAiVG9nZ2xlIGF1dG9tYXRpYyBwYXJl bnMgcGFpcmluZyAoRWxlY3RyaWMgUGFpciBtb2RlKS4KQEAgLTM3MCwxMCArMzc5LDE2IEBAIFNl ZSBvcHRpb25zIGBlbGVjdHJpYy1wYWlyLXBhaXJzJyBhbmQgYGVsZWN0cmljLXBhaXItc2tpcC1z ZWxmJy4iCiAgIDpnbG9iYWwgdAogICA6Z3JvdXAgJ2VsZWN0cmljaXR5CiAgIChpZiBlbGVjdHJp Yy1wYWlyLW1vZGUKLSAgICAgIChhZGQtaG9vayAncG9zdC1zZWxmLWluc2VydC1ob29rCi0gICAg ICAgICAgICAgICAgIydlbGVjdHJpYy1wYWlyLXBvc3Qtc2VsZi1pbnNlcnQtZnVuY3Rpb24pCisg ICAgICAocHJvZ24KKwkocmVxdWlyZSAnZGVsc2VsKQorCShhZGQtaG9vayAncG9zdC1zZWxmLWlu c2VydC1ob29rCisJCSAgIydlbGVjdHJpYy1wYWlyLXBvc3Qtc2VsZi1pbnNlcnQtZnVuY3Rpb24p CisJKGFkZC1ob29rICdkZWxldGUtc2VsZWN0aW9uLXNlbGYtaW5zZXJ0LWhvb2tzCisJCSAgIydl bGVjdHJpYy1wYWlyLWRlbGV0ZS1zZWxlY3Rpb24tc2VsZi1pbnNlcnQtZnVuY3Rpb24pKQogICAg IChyZW1vdmUtaG9vayAncG9zdC1zZWxmLWluc2VydC1ob29rCi0gICAgICAgICAgICAgICAgICMn ZWxlY3RyaWMtcGFpci1wb3N0LXNlbGYtaW5zZXJ0LWZ1bmN0aW9uKSkpCisgICAgICAgICAgICAg ICAgICMnZWxlY3RyaWMtcGFpci1wb3N0LXNlbGYtaW5zZXJ0LWZ1bmN0aW9uKQorICAgIChyZW1v dmUtaG9vayAnZGVsZXRlLXNlbGVjdGlvbi1zZWxmLWluc2VydC1ob29rcworCQkgICMnZWxlY3Ry aWMtcGFpci1kZWxldGUtc2VsZWN0aW9uLXNlbGYtaW5zZXJ0LWZ1bmN0aW9uKSkpCiAKIDs7IEF1 dG9tYXRpY2FsbHkgYWRkIG5ld2xpbmVzIGFmdGVyL2JlZm9yZS9hcm91bmQgc29tZSBjaGFycy4K IAo= --0015175d07e6b89b2504cc99e111--