From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jared Finder via "Emacs development discussions." Newsgroups: gmane.emacs.devel Subject: Re: Making TTY menus more visual Date: Sun, 04 Oct 2020 22:36:21 -0700 Message-ID: <033517da1ce6762b3d3c656dad4d8f98@finder.org> References: <087df85a965fac6555a755c1bbebf1ea@finder.org> <83r1qhf5ii.fsf@gnu.org> <83wo07g0bf.fsf@gnu.org> <85afa5c0a0a789c6047e92f6ecfa9fcc@finder.org> <72bbff31bcf46be917c9e8d8236cad75@finder.org> <838scmfq4f.fsf@gnu.org> <83y2kme50p.fsf@gnu.org> Reply-To: Jared Finder Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=_58aeffc6645350dfe14a7f62a74670aa" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="10609"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Roundcube Webmail/1.3.15 Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Oct 05 07:37:02 2020 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 1kPJBG-0002cx-Eu for ged-emacs-devel@m.gmane-mx.org; Mon, 05 Oct 2020 07:37:02 +0200 Original-Received: from localhost ([::1]:46204 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kPJBF-0000Dr-HY for ged-emacs-devel@m.gmane-mx.org; Mon, 05 Oct 2020 01:37:01 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:60332) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kPJAi-0008FJ-37 for emacs-devel@gnu.org; Mon, 05 Oct 2020 01:36:28 -0400 Original-Received: from greenhill.hpalace.com ([2600:3c01::f03c:91ff:fe73:2daa]:59098) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kPJAe-0003rr-ON; Mon, 05 Oct 2020 01:36:27 -0400 Original-Received: from mail.finder.org (greenhill.hpalace.com [IPv6:2600:3c01::f03c:91ff:fe73:2daa]) by greenhill.hpalace.com (Postfix) with ESMTPSA id 3C631D80; Mon, 5 Oct 2020 05:36:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=finder.org; s=2018; t=1601876182; bh=1t3ZZEMB0PMnQ0/g6GaORGkZnAXbQ1OFdXeth2WNqmE=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=FE9QtoA6GOulQe4C3iF3C/DHkB4Wo4NoR5GuGfCEKI4JFPl3CvtIGgyWOmIXLUDV4 hqoCNY/4RaIYGiBpYBCNNMV7+pd55Q9u+LJWTGIwA8sANhC3aCk0fVhLPOWqq9VtqN Zb0sb30p+xsqpUInuezKo/gVKrvnIqie2Xok6+esPBReCPNWYw/gjpI6uNZHmUv1sE 9pkp2B56MH9QXNMdzgexpPLyqWXr0zStHsrv+KubCrxfr0Wb+MVoXnV9zoSGTY7Zxi 1XMrO7j1k3HPNgLR4ve+w5N6DNddSkXKNQTCxNrXr6XHFVdaIXx1fEUv0telRIptvS qo8vxMSNEAq+A== In-Reply-To: <83y2kme50p.fsf@gnu.org> X-Sender: jared@finder.org Received-SPF: pass client-ip=2600:3c01::f03c:91ff:fe73:2daa; envelope-from=jared@finder.org; helo=greenhill.hpalace.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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" Xref: news.gmane.io gmane.emacs.devel:257073 Archived-At: --=_58aeffc6645350dfe14a7f62a74670aa Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed >> > Now there are newly emitted events for mouse-movement that are not >> > handled such as " " or " >> > ". It'd be easy enough to bind all of these to ignore >> > and further update tty-menu-navigation-map to have more cases, but is >> > that the right solution? I'm surprised that only xterm-mouse would run >> > into this case. >> >> Emacs normally doesn't receive mouse-movement events unless we >> explicitly enable that, see the macro track-mouse. And the >> menu-processing code for other TTYs doesn't enable mouse-movement >> events because it isn't needed: with other mice the mouse coordinates >> can be read even if the button wasn't clicked. > > Actually, I see that my memory was faulty, sorry: we do enable > mouse-movement events internally in read_menu_input. And the map used > by TTY menus, defined in menu-bar.el, does have this binding: > > (define-key map [mouse-movement] 'tty-menu-mouse-movement) > > So I'm not sure why you'd need to explicitly ignore mouse-movement > events on the mode line. Can you tell more about the problems you saw > with that? Two things combined fixed all issues I saw: respecting track-mouse and adding all possible prefix bindings to tty-menu-navigation-map. Without track-mouse being respected, I would see messages such as " is undefined" whenever I moved the mouse over those special areas of the window. Without adding the prefix bindings to tty-menu-navigation-map, TTY menu interaction with the mouse would only work when the mouse was over the normal parts of the window and not any of the special areas such as mode-line. With both of these changes, the menu bars menus work fine as well as usual mouse drag operations such as highlighting text or dragging the mode-line to resize windows. >> diff --git a/lisp/xt-mouse.el b/lisp/xt-mouse.el >> index 362d29b943..ae6f85f1f7 100644 >> --- a/lisp/xt-mouse.el >> +++ b/lisp/xt-mouse.el >> @@ -339,7 +339,7 @@ xterm-mouse-tracking-enable-sequence >> position (<= 223), which can be reported in this >> basic mode. >> >> -\"\\e[?1002h\" \"Mouse motion mode\": Enables reports for mouse >> +\"\\e[?1003h\" \"Mouse motion mode\": Enables reports for mouse >> motion events during dragging operations. > > I think we should only switch to 0x1003 when the track-mouse variable > is non-nil, see the macro track-mouse and its internal part > internal--track-mouse. I did this slightly differently as I did not find any way to be notified that track-mouse has changed. Instead I suppress mouse events from ever being emitted if track-mouse is nil. See xterm-mouse-translate-1 in my patch. >> @@ -2804,16 +2814,14 @@ tty_menu_calc_size (tty_menu *menu, int >> *width, int *height) >> static void >> mouse_get_xy (int *x, int *y) >> { >> - struct frame *sf = SELECTED_FRAME (); >> - Lisp_Object lmx = Qnil, lmy = Qnil, lisp_dummy; >> - enum scroll_bar_part part_dummy; >> - Time time_dummy; >> - >> - if (FRAME_TERMINAL (sf)->mouse_position_hook) >> - (*FRAME_TERMINAL (sf)->mouse_position_hook) (&sf, -1, >> - &lisp_dummy, >> &part_dummy, >> - &lmx, &lmy, >> - &time_dummy); >> + Lisp_Object lmx = Qnil, lmy = Qnil, mouse_position = >> Fmouse_position (); >> + >> + if (EQ (selected_frame, XCAR(mouse_position))) >> + { >> + lmx = XCAR (XCDR (mouse_position)); >> + lmy = XCDR (XCDR (mouse_position)); >> + } >> + > > This is okay as a general idea, but it would be more clean to make > Fmouse_position call a new C function (extracted from the first part > of Fmouse_position's code) that just computes the mouse coordinates. > Then Fmouse_position's would call mouse-position-function after the > new C function returns. Then in term.c we could call just that new C > function. This is because it is inappropriate for mouse_get_xy to > call mouse-position-function when a menu is being processed. > > Thanks. That won't work. Making mouse_get_xy call mouse-position-function is the purpose of this change. mouse-position-function is how xterm-mouse injects its calculated mouse positions to the TTY menus. From searching the Emacs codebase for usage of mouse-position-function, it appears that xterm-mouse is the only client. Of course external libraries could use it too, but I assume they would have the same goal. New patches attached. BTW, is it helpful to have this split up into two patches (three if you count my bug fix)? I did it this way to make reviewing and accepting easier, but if you would rather have one bigger patch, I'm fine doing that too. -- MJF --=_58aeffc6645350dfe14a7f62a74670aa Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0001-Adding-mouse-controls-to-menu-bar.el.patch Content-Disposition: attachment; filename=0001-Adding-mouse-controls-to-menu-bar.el.patch; size=8036 RnJvbSAzMzY2YzkzZWEwYzQ2YmM1Zjk1MDE4ZmUyMzg4OWY2YjRiYmEyNjdkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYXJlZCBGaW5kZXIgPGphcmVkQGZpbmRlci5vcmc+CkRhdGU6 IFNhdCwgMTkgU2VwIDIwMjAgMDA6NDM6MjkgLTA3MDAKU3ViamVjdDogW1BBVENIIDEvMl0gQWRk aW5nIG1vdXNlIGNvbnRyb2xzIHRvIG1lbnUtYmFyLmVsLgoKLS0tCiBsaXNwL2lzZWFyY2guZWwg IHwgIDQgKy0tCiBsaXNwL21lbnUtYmFyLmVsIHwgNzQgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiBsaXNwL3RtbS5lbCAgICAgIHwgNjQgKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgODQgaW5z ZXJ0aW9ucygrKSwgNTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9pc2VhcmNoLmVs IGIvbGlzcC9pc2VhcmNoLmVsCmluZGV4IDc4MWE4YzVhOTMuLjFkNzMyMWYwZTMgMTAwNjQ0Ci0t LSBhL2xpc3AvaXNlYXJjaC5lbAorKysgYi9saXNwL2lzZWFyY2guZWwKQEAgLTU0LDcgKzU0LDcg QEAKIDs7OyBDb2RlOgogCiAoZXZhbC13aGVuLWNvbXBpbGUgKHJlcXVpcmUgJ2NsLWxpYikpCi0o ZGVjbGFyZS1mdW5jdGlvbiB0bW0tbWVudWJhci1rZXltYXAgInRtbS5lbCIpCisoZGVjbGFyZS1m dW5jdGlvbiBtZW51LWJhci1rZXltYXAgIm1lbnUtYmFyLmVsIikKIAwKIDs7IFNvbWUgYWRkaXRp b25hbCBvcHRpb25zIGFuZCBjb25zdGFudHMuCiAKQEAgLTUwMSw3ICs1MDEsNyBAQCBpc2VhcmNo LXRtbS1tZW51YmFyCiAgIChyZXF1aXJlICd0bW0pCiAgIChydW4taG9va3MgJ21lbnUtYmFyLXVw ZGF0ZS1ob29rKQogICAobGV0ICgoY29tbWFuZCBuaWwpKQotICAgIChsZXQgKChtZW51LWJhciAo dG1tLW1lbnViYXIta2V5bWFwKSkpCisgICAgKGxldCAoKG1lbnUtYmFyIChtZW51LWJhci1rZXlt YXApKSkKICAgICAgICh3aXRoLWlzZWFyY2gtc3VzcGVuZGVkCiAgICAgICAgKHNldHEgY29tbWFu ZCAobGV0ICgoaXNlYXJjaC1tb2RlIHQpKSA7IFNob3cgYmluZGluZ3MgZnJvbQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBgaXNlYXJjaC1tb2RlLW1hcCcg aW4KZGlmZiAtLWdpdCBhL2xpc3AvbWVudS1iYXIuZWwgYi9saXNwL21lbnUtYmFyLmVsCmluZGV4 IGQzZTQzNGFlYzkuLjRhMGEyNzQxNWIgMTAwNjQ0Ci0tLSBhL2xpc3AvbWVudS1iYXIuZWwKKysr IGIvbGlzcC9tZW51LWJhci5lbApAQCAtMjY2MCw2ICsyNjYwLDgwIEBAIG1lbnUtYmFyLW9wZW4K IAogKGdsb2JhbC1zZXQta2V5IFtmMTBdICdtZW51LWJhci1vcGVuKQogCisoZGVmdW4gbWVudS1i YXItb3Blbi1tb3VzZSAoZXZlbnQpCisgICJNb3N1ZS10cmlnZ2VyZWQgdmVyc2lvbiBvZiBgbWVu dS1iYXItb3BlbicuCitUaGlzIGNvbW1hbmQgaXMgdG8gYmUgdXNlZCB3aGVuIHlvdSBjbGljayB0 aGUgbW91c2UgaW4gdGhlIG1lbnViYXIuIgorICAoaW50ZXJhY3RpdmUgImUiKQorICAocmVxdWly ZSAndG1tKSAgICAgICA7IFBvc3NpYmx5IGhhdmUgdG1tIGRlcGVuZCBvbiBtZW51LWJhciBpbnN0 ZWFkPworICAobGV0KiAoKHgtcG9zaXRpb24gKGNhciAocG9zbi14LXkgKGV2ZW50LXN0YXJ0IGV2 ZW50KSkpKQorICAgICAgICAgKG1lbnUtYmFyLWl0ZW0tY29ucyAobWVudS1iYXItaXRlbS1hdC14 IHgtcG9zaXRpb24pKSkKKyAgICAobWVudS1iYXItb3BlbiBuaWwKKyAgICAgICAgICAgICAgICAg ICAoaWYgbWVudS1iYXItaXRlbS1jb25zCisgICAgICAgICAgICAgICAgICAgICAgIChjZHIgbWVu dS1iYXItaXRlbS1jb25zKQorICAgICAgICAgICAgICAgICAgICAgMCkpKSkKKworKGRlZnVuIG1l bnUtYmFyLWtleW1hcCAoKQorICAiUmV0dXJuIHRoZSBjdXJyZW50IG1lbnUtYmFyIGtleW1hcC4K KworVGhlIG9yZGVyaW5nIG9mIHRoZSByZXR1cm4gdmFsdWUgcmVzcGVjdHMgYG1lbnUtYmFyLWZp bmFsLWl0ZW1zJy4iCisgIChsZXQgKChtZW51LWJhciAnKCkpCisgICAgICAgIChtZW51LWVuZCAn KCkpKQorICAgIChtYXAta2V5bWFwCisgICAgIChsYW1iZGEgKGtleSBiaW5kaW5nKQorICAgICAg IChsZXQgKChwb3MgKHNlcS1wb3NpdGlvbiBtZW51LWJhci1maW5hbC1pdGVtcyBrZXkpKQorICAg ICAgICAgICAgIChtZW51LWl0ZW0gKGNvbnMga2V5IGJpbmRpbmcpKSkKKyAgICAgICAgIChpZiBw b3MKKyAgICAgICAgICAgICA7OyBJZiBLRVkgaXMgdGhlIG5hbWUgb2YgYW4gaXRlbSB0aGF0IHdl IHdhbnQgdG8gcHV0CisgICAgICAgICAgICAgOzsgbGFzdCwgc3RvcmUgaXQgc2VwYXJhdGVseSB3 aXRoIGV4cGxpY2l0IG9yZGVyaW5nIGZvcgorICAgICAgICAgICAgIDs7IHNvcnRpbmcuCisgICAg ICAgICAgICAgKHB1c2ggKGNvbnMgcG9zIG1lbnUtaXRlbSkgbWVudS1lbmQpCisgICAgICAgICAg IChwdXNoIG1lbnUtaXRlbSBtZW51LWJhcikpKSkKKyAgICAgKG1lbnUtYmFyLWdldC1rZXliaW5k IFttZW51LWJhcl0pKQorICAgIGAoa2V5bWFwICxAKG5yZXZlcnNlIG1lbnUtYmFyKQorICAgICAg ICAgICAgICxAKG1hcGNhciAnY2RyIChzb3J0IG1lbnUtZW5kCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxhbWJkYSAoYSBiKSAoPCAoY2FyIGEpIChjYXIgYikpKSkpKSkpCiso ZGVmdW4gbWVudS1iYXItZ2V0LWtleWJpbmQgKGtleXNlcSkKKyAgIlJldHVybiB0aGUgY3VycmVu dCBiaW5kaW5nIG9mIEtFWVNFUSwgbWVyZ2luZyBwcmVmaXggZGVmaW5pdGlvbnMuCitJZiBLRVlT RVEgaXMgYSBwcmVmaXgga2V5IHRoYXQgaGFzIGxvY2FsIGFuZCBnbG9iYWwgYmluZGluZ3MsCit3 ZSBtZXJnZSB0aGVtIGludG8gYSBzaW5nbGUga2V5bWFwIHdoaWNoIHNob3dzIHRoZSBwcm9wZXIg b3JkZXIgb2YgdGhlIG1lbnUuCitIb3dldmVyLCBmb3IgdGhlIG1lbnUgYmFyIGl0c2VsZiwgdGhl IHZhbHVlIGRvZXMgbm90IHRha2UgYWNjb3VudAorb2YgYG1lbnUtYmFyLWZpbmFsLWl0ZW1zJy4i CisgIChsb29rdXAta2V5IChjb25zICdrZXltYXAgKG5yZXZlcnNlIChjdXJyZW50LWFjdGl2ZS1t YXBzKSkpIGtleXNlcSkpCisKKyhkZWZ1biBtZW51LWJhci1pdGVtLWF0LXggKHgtcG9zaXRpb24p CisgICJSZXR1cm4gYSBjb25zIG9mIHRoZSBmb3JtIChLRVkgLiBYKSBmb3IgdGhlIGl0ZW0gY2xp Y2tlZCBvbi4KKworSWYgbm90aGluZyBpcyBjbGlja2VkIG9uLCByZXR1cm5zIG5pbC4iCisgIChs ZXQgKChjb2x1bW4gMCkKKyAgICAgICAgKG1lbnUtYmFyIChtZW51LWJhci1rZXltYXApKQorICAg ICAgICBwcmV2LWtleQorICAgICAgICBwcmV2LWNvbHVtbgorICAgICAgICBmb3VuZCkKKyAgICAo Y2F0Y2ggJ2RvbmUKKyAgICAgIChtYXAta2V5bWFwCisgICAgICAgKGxhbWJkYSAoa2V5IGJpbmRp bmcpCisgICAgICAgICAod2hlbiAoPiBjb2x1bW4geC1wb3NpdGlvbikKKyAgICAgICAgICAgKHNl dHEgZm91bmQgdCkKKyAgICAgICAgICAgKHRocm93ICdkb25lIG5pbCkpCisgICAgICAgICAoc2V0 cSBwcmV2LWtleSBrZXkpCisgICAgICAgICAocGNhc2UgYmluZGluZworICAgICAgICAgICAoKG9y IGAoLChhbmQgKHByZWQgc3RyaW5ncCkgbmFtZSkgLiAsXykgO1NpbXBsZSBtZW51IGl0ZW0uCisg ICAgICAgICAgICAgICAgYChtZW51LWl0ZW0gLG5hbWUgLF9jbWQgICAgICAgICAgICA7RXh0ZW5k ZWQgbWVudSBpdGVtLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gLChhbmQgcHJvcHMK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChndWFyZCAobGV0ICgodmlzaWJs ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGxp c3QtZ2V0IHByb3BzIDp2aXNpYmxlKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAob3IgKG51bGwgdmlzaWJsZSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoZXZhbCB2aXNpYmxlKSkpKSkpKQorICAgICAgICAg ICAgKHNldHEgcHJldi1jb2x1bW4gY29sdW1uCisgICAgICAgICAgICAgICAgICBjb2x1bW4gKCsg Y29sdW1uIChsZW5ndGggbmFtZSkgMSkpKSkpCisgICAgICAgbWVudS1iYXIpCisgICAgICA7OyBD aGVjayB0aGUgbGFzdCBtZW51IGl0ZW0uCisgICAgICAod2hlbiAoPiBjb2x1bW4geC1wb3NpdGlv bikKKyAgICAgICAgKHNldHEgZm91bmQgdCkpKQorICAgIChpZiBmb3VuZAorICAgICAgICAoY29u cyBwcmV2LWtleSBwcmV2LWNvbHVtbikKKyAgICAgIG5pbCkpKQorCiAoZGVmdW4gYnVmZmVyLW1l bnUtb3BlbiAoKQogICAiU3RhcnQga2V5IG5hdmlnYXRpb24gb2YgdGhlIGJ1ZmZlciBtZW51Lgog VGhpcyBpcyB0aGUga2V5Ym9hcmQgaW50ZXJmYWNlIHRvIFxcW21vdXNlLWJ1ZmZlci1tZW51XS4i CmRpZmYgLS1naXQgYS9saXNwL3RtbS5lbCBiL2xpc3AvdG1tLmVsCmluZGV4IDA3NGVlNzU5M2Yu LmI3M2FmOWNkYTMgMTAwNjQ0Ci0tLSBhL2xpc3AvdG1tLmVsCisrKyBiL2xpc3AvdG1tLmVsCkBA IC0yOCw2ICsyOCw4IEBACiA7OzsgQ29kZToKIAogKHJlcXVpcmUgJ2VsZWN0cmljKQorKGRlY2xh cmUtZnVuY3Rpb24gbWVudS1iYXIta2V5bWFwICJtZW51LWJhci5lbCIpCisoZGVjbGFyZS1mdW5j dGlvbiBtZW51LWJhci1pdGVtLWF0LXggIm1lbnUtYmFyLmVsIikKIAogKGRlZmdyb3VwIHRtbSBu aWwKICAgIlRleHQgbW9kZSBhY2Nlc3MgdG8gbWVudS1iYXIuIgpAQCAtNDIsMjcgKzQ0LDYgQEAg dG1tLWttLWxpc3QKIChkZWZ2YXIgdG1tLW5leHQtc2hvcnRjdXQtZGlnaXQpCiAoZGVmdmFyIHRt bS10YWJsZS11bmRlZikKIAotKGRlZnVuIHRtbS1tZW51YmFyLWtleW1hcCAoKQotICAiUmV0dXJu IHRoZSBjdXJyZW50IG1lbnUtYmFyIGtleW1hcC4KLQotVGhlIG9yZGVyaW5nIG9mIHRoZSByZXR1 cm4gdmFsdWUgcmVzcGVjdHMgYG1lbnUtYmFyLWZpbmFsLWl0ZW1zJy4iCi0gIChsZXQgKChtZW51 LWJhciAnKCkpCi0gICAgICAgIChtZW51LWVuZCAnKCkpKQotICAgIChtYXAta2V5bWFwCi0gICAg IChsYW1iZGEgKGtleSBiaW5kaW5nKQotICAgICAgIChsZXQgKChwb3MgKHNlcS1wb3NpdGlvbiBt ZW51LWJhci1maW5hbC1pdGVtcyBrZXkpKQotICAgICAgICAgICAgIChtZW51LWl0ZW0gKGNvbnMg a2V5IGJpbmRpbmcpKSkKLSAgICAgICAgIChpZiBwb3MKLSAgICAgICAgICAgICA7OyBJZiBLRVkg aXMgdGhlIG5hbWUgb2YgYW4gaXRlbSB0aGF0IHdlIHdhbnQgdG8gcHV0Ci0gICAgICAgICAgICAg OzsgbGFzdCwgc3RvcmUgaXQgc2VwYXJhdGVseSB3aXRoIGV4cGxpY2l0IG9yZGVyaW5nIGZvcgot ICAgICAgICAgICAgIDs7IHNvcnRpbmcuCi0gICAgICAgICAgICAgKHB1c2ggKGNvbnMgcG9zIG1l bnUtaXRlbSkgbWVudS1lbmQpCi0gICAgICAgICAgIChwdXNoIG1lbnUtaXRlbSBtZW51LWJhcikp KSkKLSAgICAgKHRtbS1nZXQta2V5YmluZCBbbWVudS1iYXJdKSkKLSAgICBgKGtleW1hcCAsQChu cmV2ZXJzZSBtZW51LWJhcikKLSAgICAgICAgICAgICAsQChtYXBjYXIgJ2NkciAoc29ydCBtZW51 LWVuZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGEgYikgKDwg KGNhciBhKSAoY2FyIGIpKSkpKSkpKQotCiA7OzsjIyNhdXRvbG9hZCAoZGVmaW5lLWtleSBnbG9i YWwtbWFwICJcTS1gIiAndG1tLW1lbnViYXIpCiA7OzsjIyNhdXRvbG9hZCAoZGVmaW5lLWtleSBn bG9iYWwtbWFwIFttZW51LWJhciBtb3VzZS0xXSAndG1tLW1lbnViYXItbW91c2UpCiAKQEAgLTc4 LDMzICs1OSwxMiBAQCB0bW0tbWVudWJhcgogYHR0eS1tZW51LW9wZW4tdXNlLXRtbScgdG8gYSBu b24tbmlsIHZhbHVlLiIKICAgKGludGVyYWN0aXZlKQogICAocnVuLWhvb2tzICdtZW51LWJhci11 cGRhdGUtaG9vaykKLSAgOzsgT2JleSBtZW51LWJhci1maW5hbC1pdGVtczsgcHV0IHRob3NlIGl0 ZW1zIGxhc3QuCi0gIChsZXQgKChtZW51LWJhciAodG1tLW1lbnViYXIta2V5bWFwKSkKLQltZW51 LWJhci1pdGVtKQotICAgIChpZiB4LXBvc2l0aW9uCi0JKGxldCAoKGNvbHVtbiAwKQotICAgICAg ICAgICAgICBwcmV2LWtleSkKLSAgICAgICAgICAoY2F0Y2ggJ2RvbmUKLSAgICAgICAgICAgICht YXAta2V5bWFwCi0gICAgICAgICAgICAgKGxhbWJkYSAoa2V5IGJpbmRpbmcpCi0gICAgICAgICAg ICAgICAod2hlbiAoPiBjb2x1bW4geC1wb3NpdGlvbikKLSAgICAgICAgICAgICAgICAgKHNldHEg bWVudS1iYXItaXRlbSBwcmV2LWtleSkKLSAgICAgICAgICAgICAgICAgKHRocm93ICdkb25lIG5p bCkpCi0gICAgICAgICAgICAgICAoc2V0cSBwcmV2LWtleSBrZXkpCi0gICAgICAgICAgICAgICAo cGNhc2UgYmluZGluZwotICAgICAgICAgICAgICAgICAoKG9yIGAoLChhbmQgKHByZWQgc3RyaW5n cCkgbmFtZSkgLiAsXykgO1NpbXBsZSBtZW51IGl0ZW0uCi0gICAgICAgICAgICAgICAgICAgICAg YChtZW51LWl0ZW0gLG5hbWUgLF9jbWQgICAgICAgICAgICA7RXh0ZW5kZWQgbWVudSBpdGVtLgot ICAgICAgICAgICAgICAgICAgICAgICAgLiAsKGFuZCBwcm9wcwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoZ3VhcmQgKGxldCAoKHZpc2libGUKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAocGxpc3QtZ2V0IHByb3BzIDp2aXNpYmxlKSkpCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvciAobnVsbCB2aXNpYmxl KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGV2YWwgdmlz aWJsZSkpKSkpKSkKLSAgICAgICAgICAgICAgICAgIChzZXRxIGNvbHVtbiAoKyBjb2x1bW4gKGxl bmd0aCBuYW1lKSAxKSkpKSkKLSAgICAgICAgICAgICBtZW51LWJhcikKLSAgICAgICAgICAgIDs7 IENoZWNrIHRoZSBsYXN0IG1lbnUgaXRlbS4KLSAgICAgICAgICAgICh3aGVuICg+IGNvbHVtbiB4 LXBvc2l0aW9uKQotICAgICAgICAgICAgICAoc2V0cSBtZW51LWJhci1pdGVtIHByZXYta2V5KSkp KSkKLSAgICAodG1tLXByb21wdCBtZW51LWJhciBuaWwgbWVudS1iYXItaXRlbSkpKQorICAobGV0 ICgobWVudS1iYXIgKG1lbnUtYmFyLWtleW1hcCkpCisgICAgICAgIChtZW51LWJhci1pdGVtLWNv bnMgKGFuZCB4LXBvc2l0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVu dS1iYXItaXRlbS1hdC14IHgtcG9zaXRpb24pKSkpCisgICAgKHRtbS1wcm9tcHQgbWVudS1iYXIK KyAgICAgICAgICAgICAgICBuaWwKKyAgICAgICAgICAgICAgICAoYW5kIG1lbnUtYmFyLWl0ZW0t Y29ucyAoY2FyIG1lbnUtYmFyLWl0ZW0tY29ucykpKSkpCiAKIDs7OyMjI2F1dG9sb2FkCiAoZGVm dW4gdG1tLW1lbnViYXItbW91c2UgKGV2ZW50KQpAQCAtNTI0LDE0ICs0ODQsNiBAQCB0bW0tZ2V0 LWtleW1hcAogCSAgIChvciAoYXNzb2Mgc3RyIHRtbS1rbS1saXN0KQogCSAgICAgICAocHVzaCAo Y29ucyBzdHIgKGNvbnMgZXZlbnQga20pKSB0bW0ta20tbGlzdCkpKSkpKQogCi0oZGVmdW4gdG1t LWdldC1rZXliaW5kIChrZXlzZXEpCi0gICJSZXR1cm4gdGhlIGN1cnJlbnQgYmluZGluZyBvZiBL RVlTRVEsIG1lcmdpbmcgcHJlZml4IGRlZmluaXRpb25zLgotSWYgS0VZU0VRIGlzIGEgcHJlZml4 IGtleSB0aGF0IGhhcyBsb2NhbCBhbmQgZ2xvYmFsIGJpbmRpbmdzLAotd2UgbWVyZ2UgdGhlbSBp bnRvIGEgc2luZ2xlIGtleW1hcCB3aGljaCBzaG93cyB0aGUgcHJvcGVyIG9yZGVyIG9mIHRoZSBt ZW51LgotSG93ZXZlciwgZm9yIHRoZSBtZW51IGJhciBpdHNlbGYsIHRoZSB2YWx1ZSBkb2VzIG5v dCB0YWtlIGFjY291bnQKLW9mIGBtZW51LWJhci1maW5hbC1pdGVtcycuIgotICAobG9va3VwLWtl eSAoY29ucyAna2V5bWFwIChucmV2ZXJzZSAoY3VycmVudC1hY3RpdmUtbWFwcykpKSBrZXlzZXEp KQotCiAocHJvdmlkZSAndG1tKQogCiA7OzsgdG1tLmVsIGVuZHMgaGVyZQotLSAKMi4yMC4xCgo= --=_58aeffc6645350dfe14a7f62a74670aa Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0002-Making-TTY-menus-work-with-xterm-mouse-mode.patch Content-Disposition: attachment; filename=0002-Making-TTY-menus-work-with-xterm-mouse-mode.patch; size=9141 RnJvbSBhODgzMWE4NDcwNTlhNDQ4ZGRhMWQ0NTAyZDViOGY0ODZiNmJmMGU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYXJlZCBGaW5kZXIgPGphcmVkQGZpbmRlci5vcmc+CkRhdGU6 IFNhdCwgMyBPY3QgMjAyMCAxNDo0NjozMCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBNYWtp bmcgVFRZIG1lbnVzIHdvcmsgd2l0aCB4dGVybS1tb3VzZS1tb2RlLgoKKiB4dC1tb3VzZS5lbCB1 c2VzIFNFVF9BTllfRVZFTlRfTU9VU0UgKDEwMDMpIHNvIG1vdXNlIG1vdmVtZW50IGNhbiBiZQog IHJlcG9ydGVkIGV2ZW4gaWYgbm8gYnV0dG9ucyBhcmUgcHJlc3NlZC4KKiB4dC1tb3VzZS5lbCBu b3cgcmVzcGVjdHMgdHJhY2stbW91c2UuIEl0IHByZXZpb3VzbHkgZGlkIG5vdCBuZWVkIHRvCiAg c2luY2UgbW91c2UgbW92ZW1lbnQgd2FzIG9ubHkgcmVwb3J0ZWQgaWYgYSBtb3VzZSBidXR0b24g d2FzIHByZXNzZWQuCiogSG9vayB1cCBtb3VzZV9nZXRfeHkgdG8gbW91c2UtcG9zaXRpb24gc28g aXQgd29ya3Mgd2l0aCB4dGVybSBtb3VzZS4KKiB0dHktbmF2aWdhdGlvbi1tYXAgaGFuZGxlcyBh bGwgdGhlIGRpZmZlcmVudCBwcmVmaXhlcyBtb3VzZSBldmVudHMgY2FuCiAgaGF2ZSwgc3VjaCBh cyBtZW51LWJhciBvciBtb2RlLWxpbmUuCi0tLQogbGlzcC9tZW51LWJhci5lbCB8IDY0ICsrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogbGlzcC94dC1tb3Vz ZS5lbCB8IDIwICsrKysrKysrKy0tLS0tLQogc3JjL3Rlcm0uYyAgICAgICB8IDE4ICsrKysrKy0t LS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2xpc3AvbWVudS1iYXIuZWwgYi9saXNwL21lbnUtYmFyLmVsCmluZGV4 IDRhMGEyNzQxNWIuLmRmMjdiNmQ0NTYgMTAwNjQ0Ci0tLSBhL2xpc3AvbWVudS1iYXIuZWwKKysr IGIvbGlzcC9tZW51LWJhci5lbApAQCAtMjc1Myw2ICsyNzUzLDE2IEBAIG1vdXNlLWJ1ZmZlci1t ZW51LWtleW1hcAogICAgICAgICAgICAgICAgIChtZW51LWJhci1idWZmZXItdmVjdG9yIGl0ZW0p KSkpKQogICAgIGttKSkKIAorKGRlZnVuIG1lbnUtYmFyLWRlZmluZS1tb3VzZS1rZXkgKG1hcCBr ZXkgZGVmKQorICAiTGlrZSBgZGVmaW5lLWtleScsIGJ1dCBhZGRzIGFsbCBwb3NzaWJsZSBwcmVm aXhlcyBmb3IgdGhlIG1vdXNlLiIKKyAgKGRlZmluZS1rZXkgbWFwICh2ZWN0b3Iga2V5KSBkZWYp CisgIChtYXBjIChsYW1iZGEgKHByZWZpeCkgKGRlZmluZS1rZXkgbWFwICh2ZWN0b3IgcHJlZml4 IGtleSkgZGVmKSkKKyAgICAgICAgOzsgVGhpcyBsaXN0IG9ubHkgbmVlZHMgdG8gY29udGFpbiBz cGVjaWFsIHdpbmRvdyBhcmVhcyB0aGF0CisgICAgICAgIDs7IGFyZSByZW5kZXJlZCBpbiBUVFlz LiBObyBuZWVkIGZvciAqLXNjcm9sbC1iYXIsICotZnJpbmdlLCBvcgorICAgICAgICA7OyAqLWRp dmlkZXIuCisgICAgICAgICcodGFiLWxpbmUgaGVhZGVyLWxpbmUgbWVudS1iYXIgdGFiLWJhciBt b2RlLWxpbmUgdmVydGljYWwtbGluZQorICAgICAgICAgIGxlZnQtbWFyZ2luIHJpZ2h0LW1hcmdp bikpKQorCiAoZGVmdmFyIHR0eS1tZW51LW5hdmlnYXRpb24tbWFwCiAgIChsZXQgKChtYXAgKG1h a2Utc3BhcnNlLWtleW1hcCkpKQogICAgIDs7IFRoZSBuZXh0IGxpbmUgaXMgZGlzYWJsZWQgYmVj YXVzZSBpdCBicmVha3MgaW50ZXJwcmV0YXRpb24gb2YKQEAgLTI3ODcsMzkgKzI3OTcsMzMgQEAg dHR5LW1lbnUtbmF2aWdhdGlvbi1tYXAKICAgICAoZGVmaW5lLWtleSBtYXAgWz9cQy1qXSAndHR5 LW1lbnUtc2VsZWN0KQogICAgIChkZWZpbmUta2V5IG1hcCBbcmV0dXJuXSAndHR5LW1lbnUtc2Vs ZWN0KQogICAgIChkZWZpbmUta2V5IG1hcCBbbGluZWZlZWRdICd0dHktbWVudS1zZWxlY3QpCi0g ICAgKGRlZmluZS1rZXkgbWFwIFttb3VzZS0xXSAndHR5LW1lbnUtc2VsZWN0KQotICAgIChkZWZp bmUta2V5IG1hcCBbZHJhZy1tb3VzZS0xXSAndHR5LW1lbnUtc2VsZWN0KQotICAgIChkZWZpbmUt a2V5IG1hcCBbbW91c2UtMl0gJ3R0eS1tZW51LXNlbGVjdCkKLSAgICAoZGVmaW5lLWtleSBtYXAg W2RyYWctbW91c2UtMl0gJ3R0eS1tZW51LXNlbGVjdCkKLSAgICAoZGVmaW5lLWtleSBtYXAgW21v dXNlLTNdICd0dHktbWVudS1zZWxlY3QpCi0gICAgKGRlZmluZS1rZXkgbWFwIFtkcmFnLW1vdXNl LTNdICd0dHktbWVudS1zZWxlY3QpCi0gICAgKGRlZmluZS1rZXkgbWFwIFt3aGVlbC1kb3duXSAn dHR5LW1lbnUtbmV4dC1pdGVtKQotICAgIChkZWZpbmUta2V5IG1hcCBbd2hlZWwtdXBdICd0dHkt bWVudS1wcmV2LWl0ZW0pCi0gICAgKGRlZmluZS1rZXkgbWFwIFt3aGVlbC1sZWZ0XSAndHR5LW1l bnUtcHJldi1tZW51KQotICAgIChkZWZpbmUta2V5IG1hcCBbd2hlZWwtcmlnaHRdICd0dHktbWVu dS1uZXh0LW1lbnUpCi0gICAgOzsgVGhlIGZvbGxvd2luZyA0IGJpbmRpbmdzIGFyZSBmb3IgdGhv c2Ugd2hvc2UgdGV4dC1tb2RlIG1vdXNlCisgICAgKG1lbnUtYmFyLWRlZmluZS1tb3VzZS1rZXkg bWFwICdtb3VzZS0xICd0dHktbWVudS1zZWxlY3QpCisgICAgKG1lbnUtYmFyLWRlZmluZS1tb3Vz ZS1rZXkgbWFwICdkcmFnLW1vdXNlLTEgJ3R0eS1tZW51LXNlbGVjdCkKKyAgICAobWVudS1iYXIt ZGVmaW5lLW1vdXNlLWtleSBtYXAgJ21vdXNlLTIgJ3R0eS1tZW51LXNlbGVjdCkKKyAgICAobWVu dS1iYXItZGVmaW5lLW1vdXNlLWtleSBtYXAgJ2RyYWctbW91c2UtMiAndHR5LW1lbnUtc2VsZWN0 KQorICAgIChtZW51LWJhci1kZWZpbmUtbW91c2Uta2V5IG1hcCAnbW91c2UtMyAndHR5LW1lbnUt c2VsZWN0KQorICAgIChtZW51LWJhci1kZWZpbmUtbW91c2Uta2V5IG1hcCAnZHJhZy1tb3VzZS0z ICd0dHktbWVudS1zZWxlY3QpCisgICAgKG1lbnUtYmFyLWRlZmluZS1tb3VzZS1rZXkgbWFwICd3 aGVlbC1kb3duICd0dHktbWVudS1uZXh0LWl0ZW0pCisgICAgKG1lbnUtYmFyLWRlZmluZS1tb3Vz ZS1rZXkgbWFwICd3aGVlbC11cCAndHR5LW1lbnUtcHJldi1pdGVtKQorICAgIChtZW51LWJhci1k ZWZpbmUtbW91c2Uta2V5IG1hcCAnd2hlZWwtbGVmdCAndHR5LW1lbnUtcHJldi1tZW51KQorICAg IChtZW51LWJhci1kZWZpbmUtbW91c2Uta2V5IG1hcCAnd2hlZWwtcmlnaHQgJ3R0eS1tZW51LW5l eHQtbWVudSkKKyAgICA7OyBUaGUgZm9sbG93aW5nIDYgYmluZGluZ3MgYXJlIGZvciB0aG9zZSB3 aG9zZSB0ZXh0LW1vZGUgbW91c2UKICAgICA7OyBsYWNrIHRoZSB3aGVlbC4KLSAgICAoZGVmaW5l LWtleSBtYXAgW1MtbW91c2UtMV0gJ3R0eS1tZW51LW5leHQtaXRlbSkKLSAgICAoZGVmaW5lLWtl eSBtYXAgW1MtZHJhZy1tb3VzZS0xXSAndHR5LW1lbnUtbmV4dC1pdGVtKQotICAgIChkZWZpbmUt a2V5IG1hcCBbUy1tb3VzZS0yXSAndHR5LW1lbnUtcHJldi1pdGVtKQotICAgIChkZWZpbmUta2V5 IG1hcCBbUy1kcmFnLW1vdXNlLTJdICd0dHktbWVudS1wcmV2LWl0ZW0pCi0gICAgKGRlZmluZS1r ZXkgbWFwIFtTLW1vdXNlLTNdICd0dHktbWVudS1wcmV2LWl0ZW0pCi0gICAgKGRlZmluZS1rZXkg bWFwIFtTLWRyYWctbW91c2UtM10gJ3R0eS1tZW51LXByZXYtaXRlbSkKLSAgICAoZGVmaW5lLWtl eSBtYXAgW2hlYWRlci1saW5lIG1vdXNlLTFdICd0dHktbWVudS1zZWxlY3QpCi0gICAgKGRlZmlu ZS1rZXkgbWFwIFtoZWFkZXItbGluZSBkcmFnLW1vdXNlLTFdICd0dHktbWVudS1zZWxlY3QpCisg ICAgKG1lbnUtYmFyLWRlZmluZS1tb3VzZS1rZXkgbWFwICdTLW1vdXNlLTEgJ3R0eS1tZW51LW5l eHQtaXRlbSkKKyAgICAobWVudS1iYXItZGVmaW5lLW1vdXNlLWtleSBtYXAgJ1MtZHJhZy1tb3Vz ZS0xICd0dHktbWVudS1uZXh0LWl0ZW0pCisgICAgKG1lbnUtYmFyLWRlZmluZS1tb3VzZS1rZXkg bWFwICdTLW1vdXNlLTIgJ3R0eS1tZW51LXByZXYtaXRlbSkKKyAgICAobWVudS1iYXItZGVmaW5l LW1vdXNlLWtleSBtYXAgJ1MtZHJhZy1tb3VzZS0yICd0dHktbWVudS1wcmV2LWl0ZW0pCisgICAg KG1lbnUtYmFyLWRlZmluZS1tb3VzZS1rZXkgbWFwICdTLW1vdXNlLTMgJ3R0eS1tZW51LXByZXYt aXRlbSkKKyAgICAobWVudS1iYXItZGVmaW5lLW1vdXNlLWtleSBtYXAgJ1MtZHJhZy1tb3VzZS0z ICd0dHktbWVudS1wcmV2LWl0ZW0pCiAgICAgOzsgVGhlIGRvd24tbW91c2UgZXZlbnRzIG11c3Qg YmUgYm91bmQgdG8gdHR5LW1lbnUtaWdub3JlLCBzbyB0aGF0CiAgICAgOzsgb25seSByZWxlYXNp bmcgdGhlIG1vdXNlIGJ1dHRvbiBwb3BzIHVwIHRoZSBtZW51LgotICAgIChkZWZpbmUta2V5IG1h cCBbbW9kZS1saW5lIGRvd24tbW91c2UtMV0gJ3R0eS1tZW51LWlnbm9yZSkKLSAgICAoZGVmaW5l LWtleSBtYXAgW21vZGUtbGluZSBkb3duLW1vdXNlLTJdICd0dHktbWVudS1pZ25vcmUpCi0gICAg KGRlZmluZS1rZXkgbWFwIFttb2RlLWxpbmUgZG93bi1tb3VzZS0zXSAndHR5LW1lbnUtaWdub3Jl KQotICAgIChkZWZpbmUta2V5IG1hcCBbbW9kZS1saW5lIEMtZG93bi1tb3VzZS0xXSAndHR5LW1l bnUtaWdub3JlKQotICAgIChkZWZpbmUta2V5IG1hcCBbbW9kZS1saW5lIEMtZG93bi1tb3VzZS0y XSAndHR5LW1lbnUtaWdub3JlKQotICAgIChkZWZpbmUta2V5IG1hcCBbbW9kZS1saW5lIEMtZG93 bi1tb3VzZS0zXSAndHR5LW1lbnUtaWdub3JlKQotICAgIChkZWZpbmUta2V5IG1hcCBbZG93bi1t b3VzZS0xXSAndHR5LW1lbnUtaWdub3JlKQotICAgIChkZWZpbmUta2V5IG1hcCBbQy1kb3duLW1v dXNlLTFdICd0dHktbWVudS1pZ25vcmUpCi0gICAgKGRlZmluZS1rZXkgbWFwIFtDLWRvd24tbW91 c2UtMl0gJ3R0eS1tZW51LWlnbm9yZSkKLSAgICAoZGVmaW5lLWtleSBtYXAgW0MtZG93bi1tb3Vz ZS0zXSAndHR5LW1lbnUtaWdub3JlKQotICAgIChkZWZpbmUta2V5IG1hcCBbbW91c2UtbW92ZW1l bnRdICd0dHktbWVudS1tb3VzZS1tb3ZlbWVudCkKKyAgICAobWVudS1iYXItZGVmaW5lLW1vdXNl LWtleSBtYXAgJ2Rvd24tbW91c2UtMSAndHR5LW1lbnUtaWdub3JlKQorICAgIChtZW51LWJhci1k ZWZpbmUtbW91c2Uta2V5IG1hcCAnZG93bi1tb3VzZS0yICd0dHktbWVudS1pZ25vcmUpCisgICAg KG1lbnUtYmFyLWRlZmluZS1tb3VzZS1rZXkgbWFwICdkb3duLW1vdXNlLTMgJ3R0eS1tZW51LWln bm9yZSkKKyAgICAobWVudS1iYXItZGVmaW5lLW1vdXNlLWtleSBtYXAgJ0MtZG93bi1tb3VzZS0x ICd0dHktbWVudS1pZ25vcmUpCisgICAgKG1lbnUtYmFyLWRlZmluZS1tb3VzZS1rZXkgbWFwICdD LWRvd24tbW91c2UtMiAndHR5LW1lbnUtaWdub3JlKQorICAgIChtZW51LWJhci1kZWZpbmUtbW91 c2Uta2V5IG1hcCAnQy1kb3duLW1vdXNlLTMgJ3R0eS1tZW51LWlnbm9yZSkKKyAgICAobWVudS1i YXItZGVmaW5lLW1vdXNlLWtleSBtYXAgJ21vdXNlLW1vdmVtZW50ICd0dHktbWVudS1tb3VzZS1t b3ZlbWVudCkKICAgICBtYXApCiAgICJLZXltYXAgdXNlZCB3aGlsZSBwcm9jZXNzaW5nIFRUWSBt ZW51cy4iKQogCmRpZmYgLS1naXQgYS9saXNwL3h0LW1vdXNlLmVsIGIvbGlzcC94dC1tb3VzZS5l bAppbmRleCAzNjJkMjliOTQzLi41NDEwYWFmYjNiIDEwMDY0NAotLS0gYS9saXNwL3h0LW1vdXNl LmVsCisrKyBiL2xpc3AveHQtbW91c2UuZWwKQEAgLTc2LDcgKzc2LDExIEBAIHh0ZXJtLW1vdXNl LXRyYW5zbGF0ZS0xCiAgICAgICAgICAgICAgIDs7IHRvIGd1YXJkIGFnYWluc3QgdGhhdC4KICAg ICAgICAgICAgICAgKGNvcHktc2VxdWVuY2UgZXZlbnQpKQogCXZlYykKLSAgICAgICAoaXMtbW92 ZSB2ZWMpCisgICAgICAgKGlzLW1vdmUKKyAgICAgICAgKGlmIHRyYWNrLW1vdXNlIHZlYworICAg ICAgICAgIDs7IE1vdXNlIG1vdmVtZW50IGV2ZW50cyBhcmUgY3VycmVudGx5IHN1cHBvc2VkIHRv IGJlCisgICAgICAgICAgOzsgc3VwcHJlc3NlZC4gUmV0dXJuIG5vIGV2ZW50LgorICAgICAgICAg IFtdKSkKICAgICAgICAodAogCShsZXQqICgoZG93biAodGVybWluYWwtcGFyYW1ldGVyIG5pbCAn eHRlcm0tbW91c2UtbGFzdC1kb3duKSkKIAkgICAgICAgKGRvd24tZGF0YSAobnRoIDEgZG93bikp CkBAIC0zMzksOCArMzQzLDggQEAgeHRlcm0tbW91c2UtdHJhY2tpbmctZW5hYmxlLXNlcXVlbmNl CiAgICAgICAgICAgICBwb3NpdGlvbiAoPD0gMjIzKSwgd2hpY2ggY2FuIGJlIHJlcG9ydGVkIGlu IHRoaXMKICAgICAgICAgICAgIGJhc2ljIG1vZGUuCiAKLVwiXFxlWz8xMDAyaFwiIFwiTW91c2Ug bW90aW9uIG1vZGVcIjogRW5hYmxlcyByZXBvcnRzIGZvciBtb3VzZQotICAgICAgICAgICAgbW90 aW9uIGV2ZW50cyBkdXJpbmcgZHJhZ2dpbmcgb3BlcmF0aW9ucy4KK1wiXFxlWz8xMDAzaFwiIFwi TW91c2UgbW90aW9uIG1vZGVcIjogRW5hYmxlcyByZXBvcnRzIGZvciBtb3VzZQorICAgICAgICAg ICAgbW90aW9uIGV2ZW50cy4KIAogXCJcXGVbPzEwMDVoXCIgXCJVVEYtOCBjb29yZGluYXRlIGV4 dGVuc2lvblwiOiBFbmFibGVzIGFuCiAgICAgICAgICAgICBleHRlbnNpb24gdG8gdGhlIGJhc2lj IG1vdXNlIG1vZGUsIHdoaWNoIHVzZXMgVVRGLTgKQEAgLTM2MCw3ICszNjQsNyBAQCB4dGVybS1t b3VzZS10cmFja2luZy1lbmFibGUtc2VxdWVuY2UKICAgKGFwcGx5ICMnY29uY2F0ICh4dGVybS1t b3VzZS0tdHJhY2tpbmctc2VxdWVuY2UgP2gpKSkKIAogKGRlZmNvbnN0IHh0ZXJtLW1vdXNlLXRy YWNraW5nLWVuYWJsZS1zZXF1ZW5jZQotICAiXGVbPzEwMDBoXGVbPzEwMDJoXGVbPzEwMDVoXGVb PzEwMDZoIgorICAiXGVbPzEwMDBoXGVbPzEwMDNoXGVbPzEwMDVoXGVbPzEwMDZoIgogICAiQ29u dHJvbCBzZXF1ZW5jZSB0byBlbmFibGUgeHRlcm0gbW91c2UgdHJhY2tpbmcuCiBFbmFibGVzIGJh c2ljIG1vdXNlIHRyYWNraW5nLCBtb3VzZSBtb3Rpb24gZXZlbnRzIGFuZCBmaW5hbGx5CiBleHRl bmRlZCB0cmFja2luZyBvbiB0ZXJtaW5hbHMgdGhhdCBzdXBwb3J0IGl0LiBUaGUgZm9sbG93aW5n CkBAIC0zNzEsOCArMzc1LDggQEAgeHRlcm0tbW91c2UtdHJhY2tpbmctZW5hYmxlLXNlcXVlbmNl CiAgICAgICAgICAgICBwb3NpdGlvbiAoPD0gMjIzKSwgd2hpY2ggY2FuIGJlIHJlcG9ydGVkIGlu IHRoaXMKICAgICAgICAgICAgIGJhc2ljIG1vZGUuCiAKLVwiXFxlWz8xMDAyaFwiIFwiTW91c2Ug bW90aW9uIG1vZGVcIjogRW5hYmxlcyByZXBvcnRzIGZvciBtb3VzZQotICAgICAgICAgICAgbW90 aW9uIGV2ZW50cyBkdXJpbmcgZHJhZ2dpbmcgb3BlcmF0aW9ucy4KK1wiXFxlWz8xMDAzaFwiIFwi TW91c2UgbW90aW9uIG1vZGVcIjogRW5hYmxlcyByZXBvcnRzIGZvciBtb3VzZQorICAgICAgICAg ICAgbW90aW9uIGV2ZW50cy4KIAogXCJcXGVbPzEwMDVoXCIgXCJVVEYtOCBjb29yZGluYXRlIGV4 dGVuc2lvblwiOiBFbmFibGVzIGFuIGV4dGVuc2lvbgogICAgICAgICAgICAgdG8gdGhlIGJhc2lj IG1vdXNlIG1vZGUsIHdoaWNoIHVzZXMgVVRGLTgKQEAgLTQwMCw3ICs0MDQsNyBAQCB4dGVybS1t b3VzZS10cmFja2luZy1kaXNhYmxlLXNlcXVlbmNlCiAgIChhcHBseSAjJ2NvbmNhdCAobnJldmVy c2UgKHh0ZXJtLW1vdXNlLS10cmFja2luZy1zZXF1ZW5jZSA/bCkpKSkKIAogKGRlZmNvbnN0IHh0 ZXJtLW1vdXNlLXRyYWNraW5nLWRpc2FibGUtc2VxdWVuY2UKLSAgIlxlWz8xMDA2bFxlWz8xMDA1 bFxlWz8xMDAybFxlWz8xMDAwbCIKKyAgIlxlWz8xMDA2bFxlWz8xMDA1bFxlWz8xMDAzbFxlWz8x MDAwbCIKICAgIlJlc2V0IHRoZSBtb2RlcyBzZXQgYnkgYHh0ZXJtLW1vdXNlLXRyYWNraW5nLWVu YWJsZS1zZXF1ZW5jZScuIikKIAogKG1ha2Utb2Jzb2xldGUtdmFyaWFibGUKQEAgLTQxNCw3ICs0 MTgsNyBAQCB4dGVybS1tb3VzZS0tdHJhY2tpbmctc2VxdWVuY2UKIGVuYWJsZSwgP2wgdG8gZGlz YWJsZSkuIgogICAobWFwY2FyCiAgICAobGFtYmRhIChjb2RlKSAoZm9ybWF0ICJcZVs/JWQlYyIg Y29kZSBzdWZmaXgpKQotICAgYCgxMDAwIDEwMDIgLEAod2hlbiB4dGVybS1tb3VzZS11dGYtOCAn KDEwMDUpKSAxMDA2KSkpCisgICBgKDEwMDAgMTAwMyAsQCh3aGVuIHh0ZXJtLW1vdXNlLXV0Zi04 ICcoMTAwNSkpIDEwMDYpKSkKIAogKGRlZnVuIHR1cm4tb24teHRlcm0tbW91c2UtdHJhY2tpbmct b24tdGVybWluYWwgKCZvcHRpb25hbCB0ZXJtaW5hbCkKICAgIkVuYWJsZSB4dGVybSBtb3VzZSB0 cmFja2luZyBvbiBURVJNSU5BTC4iCmRpZmYgLS1naXQgYS9zcmMvdGVybS5jIGIvc3JjL3Rlcm0u YwppbmRleCAzNjc3NjQ0ODQ1Li41NjRkNTViZTViIDEwMDY0NAotLS0gYS9zcmMvdGVybS5jCisr KyBiL3NyYy90ZXJtLmMKQEAgLTI4MDQsMTYgKzI4MDQsMTQgQEAgdHR5X21lbnVfY2FsY19zaXpl ICh0dHlfbWVudSAqbWVudSwgaW50ICp3aWR0aCwgaW50ICpoZWlnaHQpCiBzdGF0aWMgdm9pZAog bW91c2VfZ2V0X3h5IChpbnQgKngsIGludCAqeSkKIHsKLSAgc3RydWN0IGZyYW1lICpzZiA9IFNF TEVDVEVEX0ZSQU1FICgpOwotICBMaXNwX09iamVjdCBsbXggPSBRbmlsLCBsbXkgPSBRbmlsLCBs aXNwX2R1bW15OwotICBlbnVtIHNjcm9sbF9iYXJfcGFydCBwYXJ0X2R1bW15OwotICBUaW1lIHRp bWVfZHVtbXk7Ci0KLSAgaWYgKEZSQU1FX1RFUk1JTkFMIChzZiktPm1vdXNlX3Bvc2l0aW9uX2hv b2spCi0gICAgKCpGUkFNRV9URVJNSU5BTCAoc2YpLT5tb3VzZV9wb3NpdGlvbl9ob29rKSAoJnNm LCAtMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm bGlzcF9kdW1teSwgJnBhcnRfZHVtbXksCi0JCQkJCQkgJmxteCwgJmxteSwKLQkJCQkJCSAmdGlt ZV9kdW1teSk7CisgIExpc3BfT2JqZWN0IGxteCA9IFFuaWwsIGxteSA9IFFuaWwsIG1vdXNlX3Bv c2l0aW9uID0gRm1vdXNlX3Bvc2l0aW9uICgpOworCisgIGlmIChFUSAoc2VsZWN0ZWRfZnJhbWUs IFhDQVIobW91c2VfcG9zaXRpb24pKSkKKyAgICB7CisgICAgICBsbXggPSBYQ0FSIChYQ0RSICht b3VzZV9wb3NpdGlvbikpOworICAgICAgbG15ID0gWENEUiAoWENEUiAobW91c2VfcG9zaXRpb24p KTsKKyAgICB9CisKICAgaWYgKCFOSUxQIChsbXgpKQogICAgIHsKICAgICAgICp4ID0gWEZJWE5V TSAobG14KTsKLS0gCjIuMjAuMQoK --=_58aeffc6645350dfe14a7f62a74670aa--