From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Newsgroups: gmane.emacs.bugs Subject: bug#36879: 26.2; OSC 52 paste in term/xterm.el not working Date: Sat, 03 Aug 2019 13:41:03 +0200 Message-ID: References: <87lfwecfb7.fsf@mini.la.casa> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-XZmm+3SXyx3fkhaaNTqv" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="268184"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Evolution 3.32.4 (3.32.4-1.fc30) Cc: Philipp Stephani , Stefan Monnier , 36879@debbugs.gnu.org To: Daniel =?UTF-8?Q?Ekl=C3=B6f?= Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Aug 03 13:42:24 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1htsQZ-0017dk-Ad for geb-bug-gnu-emacs@m.gmane.org; Sat, 03 Aug 2019 13:42:23 +0200 Original-Received: from localhost ([::1]:39450 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1htsQX-0003Y9-P9 for geb-bug-gnu-emacs@m.gmane.org; Sat, 03 Aug 2019 07:42:21 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:48947) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1htsQH-0003Vg-1S for bug-gnu-emacs@gnu.org; Sat, 03 Aug 2019 07:42:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1htsQF-0001ce-9a for bug-gnu-emacs@gnu.org; Sat, 03 Aug 2019 07:42:04 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:49561) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1htsQE-0001cI-Jr for bug-gnu-emacs@gnu.org; Sat, 03 Aug 2019 07:42:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1htsQE-0007t5-Ei for bug-gnu-emacs@gnu.org; Sat, 03 Aug 2019 07:42:02 -0400 X-Loop: help-debbugs@gnu.org In-Reply-To: <87lfwecfb7.fsf@mini.la.casa> Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 03 Aug 2019 11:42:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 36879 X-GNU-PR-Package: emacs Original-Received: via spool by 36879-submit@debbugs.gnu.org id=B36879.156483247430244 (code B ref 36879); Sat, 03 Aug 2019 11:42:02 +0000 Original-Received: (at 36879) by debbugs.gnu.org; 3 Aug 2019 11:41:14 +0000 Original-Received: from localhost ([127.0.0.1]:58382 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1htsPS-0007rg-8F for submit@debbugs.gnu.org; Sat, 03 Aug 2019 07:41:14 -0400 Original-Received: from mail200c50.megamailservers.eu ([91.136.10.210]:40106 helo=mail193c50.megamailservers.eu) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1htsPO-0007rO-Lc; Sat, 03 Aug 2019 07:41:12 -0400 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1564832467; bh=RdGfUCYHZTzzdm7jP62eeVsKzg1yTwEgzyYOFA03u18=; h=Subject:From:To:Cc:Date:From; b=kxiR+3yu/GASVhxjKu+IuETRmGBEWMLwx7y+2GFSioCnfueC/FrDwRenXmK+d0Nhn fNOdyE7Z/lKojkUvi5rKN/5hEZ60FNxLr2h9i3WXV+jh1sgFFquLnYdF140F8MttPa xAkKCzd1ETKheYMKD61xnYxutGEXLz4ZZFTdF1EE= Feedback-ID: mattiase@acm.or Original-Received: from dhcppc1 (c-e636e253.032-75-73746f71.bbcust.telenor.se [83.226.54.230]) (authenticated bits=0) by mail193c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id x73Bf4pt026103; Sat, 3 Aug 2019 11:41:05 +0000 X-CTCH-RefID: str=0001.0A0B0209.5D4572D3.0039, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=Yv8hubQX c=1 sm=1 tr=0 a=M+GU/qJco4WXjv8D6jB2IA==:117 a=M+GU/qJco4WXjv8D6jB2IA==:17 a=wkyQ0Q5jOQTqGCvxqjwA:9 a=QEXdDO2ut3YA:10 a=N54-gffFAAAA:8 a=4jBuBnNKD2FfzIo8FL4A:9 a=7Zwj6sZBwVKJAoWSPKxL6X1jA+E=:19 a=B2y7HmGcmWMA:10 a=ph5w4yLSdFjXOi-gCIMA:9 a=6l0D2HzqY3Epnrm8mE3f:22 a=Z5ABNNGmrOfJ6cZ5bIyy:22 a=UDnyf2zBuKT2w-IlGP_r:22 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.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" Xref: news.gmane.org gmane.emacs.bugs:164435 Archived-At: --=-XZmm+3SXyx3fkhaaNTqv Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit tags 36879 patch quit Daniel Eklöf skrev: >Have I configured something wrong? Or is this a bug? I don't think you did anything wrong; I can reproduce the bug (in XTerm; I don't have your fancy emulator). The question is rather, how did this code ever work in the first place? As you observed, when XTerm sends the reply, it uses BEL as terminator. Emacs uses BEL (C-g) as INTR char, which means that not only is special effort required to avoid having it quit the current elisp code -- this could have been done using inhibit-quit -- but when the pty receives the BEL from XTerm, it immediately discards unread characters and raises SIGINT. Thus, it's very much a race: the only way it could ever work would be if Emacs has been able to read the entire reply except the BEL, and be sitting inside (read-char) when the BEL reaches the pty. Needless to say, this is rather unlikely. We could tell the tty not to discard the queue upon INTR by setting the NOFLSH flag, but (1) I don't know how portable that is, (2) it's not what we normally want when C-g is used interactively, and (3) it would still process the BEL out-of-order with respect to earlier chars. Attached is a rather heavy-handed patch which temporarily changes the quit-char to something unlikely while sending the OSC 52 request and reading the reply. It also allows the reply to be terminated by ESC \ (ST) as well. Since XTerm parrots our choice of string terminator (BEL or ST), this suggests a simpler solution: just use ST, and the trouble with BEL is no more. Unfortunately the code has provisions for screen/tmux, where the entire request is wrapped in a DCS request: ESC P ... ESC \ which means that we cannot use ST as terminator in that case. However, I haven't been able to make this facility work with tmux at all, and with screen only by reverting 4183482f4d (bug#20356) AND explicitly setting TERM=screen (the default is screen.xterm-256color). In addition, changing quit-char can be visually annoying; it causes reinitialisation of the entire tty, something you don't want every time you press C-y. Perhaps it's fine to drop screen support from this particular function? I attached another, alternative patch that does that instead. --=-XZmm+3SXyx3fkhaaNTqv Content-Disposition: attachment; filename="heavy.patch" Content-Type: text/x-patch; name="heavy.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBkZjM0NGJkZTJiYmU0NTllYjVhZWE2NjgzODhkMjYwNmEzOGZlMTJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TWF0dGlhcz0yMEVuZ2RlZz1DMz1BNXJkPz0g PG1hdHRpYXNlQGFjbS5vcmc+CkRhdGU6IFNhdCwgMyBBdWcgMjAxOSAxMjowODoyNyArMDIwMApT dWJqZWN0OiBbUEFUQ0hdIEZpeCBYVGVybSBPU0MgNTIgc2VsZWN0aW9uIHJldHJpZXZhbCAoYnVn IzM2ODc5KQoKV2hlbiBhc2tpbmcgWFRlcm0gZm9yIHRoZSBzZWxlY3Rpb24gdmlhIE9TQyA1Miwg c2V0IHRoZSBxdWl0IGNoYXIgdG8Kc29tZXRoaW5nIG90aGVyIHRoYW4gQkVMIHNpbmNlIHRoYXQg Y2hhciBpcyB1c2VkIGFzIHN0cmluZyB0ZXJtaW5hdG9yCmluIHRoZSByZXBseS4gIE90aGVyd2lz ZSwgdGhlIHB0eSB3aWxsIHJhaXNlIFNJR0lOVCBhcyBzb29uIGFzIGl0IHNlZXMKdGhlIEJFTCwg ZGlzY2FyZGluZyBhbnkgdW5yZWFkIGNoYXJzLgoKQWxzbyBhbGxvdyB0aGUgcmVwbHkgdG8gYmUg dGVybWluYXRlZCBieSBTVCBhcyB3ZWxsIGFzIEJFTC4KCiogbGlzcC90ZXJtL3h0ZXJtLmVsIChn dWktYmFja2VuZC1nZXQtc2VsZWN0aW9uKToKQ2hhbmdlIHF1aXQgY2hhciB0ZW1wb3JhcmlseS4g IERldGVjdCBTVCBhcyBzdHJpbmcgdGVybWluYXRvciBpbiByZXBseS4KVXNlIHRpbWUtb3V0IHdo ZW4gcmVhZGluZyByZXBseS4KLS0tCiBsaXNwL3Rlcm0veHRlcm0uZWwgfCAzNyArKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0aW9u cygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL3Rlcm0veHRlcm0uZWwgYi9s aXNwL3Rlcm0veHRlcm0uZWwKaW5kZXggYzRiMGE4ZmI2ZS4uMjk0NjBlYTU1YiAxMDA2NDQKLS0t IGEvbGlzcC90ZXJtL3h0ZXJtLmVsCisrKyBiL2xpc3AvdGVybS94dGVybS5lbApAQCAtOTU0LDE0 ICs5NTQsMzUgQEAgZ3VpLWJhY2tlbmQtZ2V0LXNlbGVjdGlvbgogICAgICAgICAgKHF1ZXJ5IChj b25jYXQgIlxlXTUyOyIgKHh0ZXJtLS1zZWxlY3Rpb24tY2hhciB0eXBlKSAiOyIpKSkKICAgICAo d2l0aC10ZW1wLWJ1ZmZlcgogICAgICAgKHNldC1idWZmZXItbXVsdGlieXRlIG5pbCkKLSAgICAg ICh4dGVybS0tcXVlcnkKLSAgICAgICAoY29uY2F0ICh3aGVuIHNjcmVlbiAiXGVQIikgcXVlcnkg Ij9cYSIgKHdoZW4gc2NyZWVuICJcZVxcIikpCi0gICAgICAgKGxpc3QgKGNvbnMgcXVlcnkgKGxh bWJkYSAoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoaWxlIChsZXQgKChjaGFyIChy ZWFkLWNoYXIpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bmxlc3Mg KGVxIGNoYXIgP1xhKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5z ZXJ0IGNoYXIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQpKSkpKSkK LSAgICAgICAnbm8tYXN5bmMpCisgICAgICAobGV0ICgob2xkLXF1aXQtY2hhciAobnRoIDMgKGN1 cnJlbnQtaW5wdXQtbW9kZSkpKSkKKyAgICAgICAgOzsgVGVtcG9yYXJpbHkgc2V0IHRoZSBxdWl0 IGNoYXIgdG8gc29tZXRoaW5nIGVsc2UsIGJlY2F1c2UKKyAgICAgICAgOzsgQy1nIG1heSBiZSBz ZW50IGZyb20gdGhlIHRlcm1pbmFsIGFzIGEgc3RyaW5nIHRlcm1pbmF0b3IsCisgICAgICAgIDs7 IGFuZCB0aGUgcmVzdWx0aW5nIFNJR0lOVCAod2hpY2ggb2NjdXJzIHdoZW4gdGhlIGludGVycnVw dAorICAgICAgICA7OyBjaGFyIGlzIHJlY2VpdmVkIGJ5IHRoZSB0dHksIG5vdCB3aGVuIHdlIHJl YWQgaXQpIHdvdWxkCisgICAgICAgIDs7IGZsdXNoIHVucmVhZCBjaGFycyBmcm9tIHRoZSB0dHkg aW5wdXQgcXVldWUuCisgICAgICAgICh1bndpbmQtcHJvdGVjdAorICAgICAgICAgICAgKHByb2du CisgICAgICAgICAgICAgIChzZXQtcXVpdC1jaGFyID9cMzc3KQorICAgICAgICAgICAgICAoeHRl cm0tLXF1ZXJ5CisgICAgICAgICAgICAgICAoY29uY2F0ICh3aGVuIHNjcmVlbiAiXGVQIikgcXVl cnkgIj9cYSIgKHdoZW4gc2NyZWVuICJcZVxcIikpCisgICAgICAgICAgICAgICAobGlzdCAoY29u cyBxdWVyeQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA7OyBSZWFkIGRhdGEgdXAgdG8gdGhlIHN0cmluZyB0ZXJtaW5h dG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBlaXRoZXIgU1QgKEVTQyBcKSBv ciBCRUwuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKGNoYXIgbGFzdCkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2hpbGUgKGFuZCAoc2V0cSBjaGFyIChyZWFk LWNoYXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuaWwgbmlsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgeHRlcm0tcXVlcnktdGltZW91dCkpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKG5vdCAob3IgKGVxIGNoYXIgP1xhKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbmQgKGVxIGNoYXIgP1xc KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGVxIGxhc3QgP1xlKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3 aGVuIGxhc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluc2VydCBsYXN0 KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIGxhc3QgY2hhcikpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGVxIGNoYXIgP1xhKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluc2VydCBsYXN0KSkpKSkpCisgICAgICAgICAg ICAgICAnbm8tYXN5bmMpKQorICAgICAgICAoc2V0LXF1aXQtY2hhciBvbGQtcXVpdC1jaGFyKSkp CiAgICAgICAoYmFzZTY0LWRlY29kZS1yZWdpb24gKHBvaW50LW1pbikgKHBvaW50LW1heCkpCiAg ICAgICAoZGVjb2RlLWNvZGluZy1yZWdpb24gKHBvaW50LW1pbikgKHBvaW50LW1heCkgJ3V0Zi04 LXVuaXggdCkpKSkKIAotLSAKMi4yMS4wCgo= --=-XZmm+3SXyx3fkhaaNTqv Content-Disposition: attachment; filename="light.patch" Content-Type: text/x-patch; name="light.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBkYTEyMmRhNTI3M2E1N2IyNWVkZmUzZTg4ODVlYTIyNTBiODhiZjVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/TWF0dGlhcz0yMEVuZ2RlZz1DMz1BNXJkPz0g PG1hdHRpYXNlQGFjbS5vcmc+CkRhdGU6IFNhdCwgMyBBdWcgMjAxOSAxMjowODoyNyArMDIwMApT dWJqZWN0OiBbUEFUQ0hdIEZpeCBYVGVybSBPU0MgNTIgc2VsZWN0aW9uIHJldHJpZXZhbCAoYnVn IzM2ODc5KQoKV2hlbiBhc2tpbmcgWFRlcm0gZm9yIHRoZSBzZWxlY3Rpb24gdmlhIE9TQyA1Miwg dXNlIFNUIGFzIHN0cmluZwp0ZXJtaW5hdG9yIGluIHRoZSByZXF1ZXN0IHRvIGdldCBTVCBhcyB0 ZXJtaW5hdG9yIGluIHRoZSByZXBseSwKYmVjYXVzZSBCRUwgaXMgbWVzc3kgdG8gcmVjZWl2ZSBp biBtYW55IHdheXMuCgoqIGxpc3AvdGVybS94dGVybS5lbCAoZ3VpLWJhY2tlbmQtZ2V0LXNlbGVj dGlvbik6ClVzZSBTVCBhcyBzdHJpbmcgdGVybWluYXRvciBpbiByZXF1ZXN0IGFuZCByZXBseS4K VXNlIGEgdGltZS1vdXQgd2hlbiByZWFkaW5nIHRoZSByZXBseS4KLS0tCiBsaXNwL3Rlcm0veHRl cm0uZWwgfCAzMCArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCAyMCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL3Rl cm0veHRlcm0uZWwgYi9saXNwL3Rlcm0veHRlcm0uZWwKaW5kZXggYzRiMGE4ZmI2ZS4uNGI1NmIy Y2U0YSAxMDA2NDQKLS0tIGEvbGlzcC90ZXJtL3h0ZXJtLmVsCisrKyBiL2xpc3AvdGVybS94dGVy bS5lbApAQCAtOTQ2LDIxICs5NDYsMzEgQEAgZ3VpLWJhY2tlbmQtZ2V0LXNlbGVjdGlvbgogICAg ICh0eXBlIGRhdGEtdHlwZQogICAgICAmY29udGV4dCAod2luZG93LXN5c3RlbSBuaWwpCiAgICAg ICAgICAgICAgIDs7IE9ubHkgYXBwbGllcyB0byB0ZXJtaW5hbHMgd2hpY2ggaGF2ZSBpdCBlbmFi bGVkLgotICAgICAgICAgICAgICAoKHRlcm1pbmFsLXBhcmFtZXRlciBuaWwgJ3h0ZXJtLS1nZXQt c2VsZWN0aW9uKSAoZXFsIHQpKSkKKyAgICAgICAgICAgICAgKCh0ZXJtaW5hbC1wYXJhbWV0ZXIg bmlsICd4dGVybS0tZ2V0LXNlbGVjdGlvbikgKGVxbCB0KSkKKyAgICAgICAgICAgICAgOzsgRG9l c24ndCB3b3JrIGluIHNjcmVlbjsgc2VlIGJ1ZyMzNjg3OS4KKyAgICAgICAgICAgICAgKChlcSAo dGVybWluYWwtcGFyYW1ldGVyIG5pbCAndGVybWluYWwtaW5pdHRlZCkKKyAgICAgICAgICAgICAg ICAgICAndGVybWluYWwtaW5pdC1zY3JlZW4pCisgICAgICAgICAgICAgICAoZXFsIG5pbCkpKQog ICAodW5sZXNzIChlcSBkYXRhLXR5cGUgJ1NUUklORykKICAgICAoZXJyb3IgIlVuc3VwcG9ydGVk IGRhdGEgdHlwZSAlUyIgZGF0YS10eXBlKSkKLSAgKGxldCogKChzY3JlZW4gKGVxICh0ZXJtaW5h bC1wYXJhbWV0ZXIgbmlsICd0ZXJtaW5hbC1pbml0dGVkKQotICAgICAgICAgICAgICAgICAgICAg J3Rlcm1pbmFsLWluaXQtc2NyZWVuKSkKLSAgICAgICAgIChxdWVyeSAoY29uY2F0ICJcZV01Mjsi ICh4dGVybS0tc2VsZWN0aW9uLWNoYXIgdHlwZSkgIjsiKSkpCisgIChsZXQgKChxdWVyeSAoY29u Y2F0ICJcZV01MjsiICh4dGVybS0tc2VsZWN0aW9uLWNoYXIgdHlwZSkgIjsiKSkpCiAgICAgKHdp dGgtdGVtcC1idWZmZXIKICAgICAgIChzZXQtYnVmZmVyLW11bHRpYnl0ZSBuaWwpCiAgICAgICAo eHRlcm0tLXF1ZXJ5Ci0gICAgICAgKGNvbmNhdCAod2hlbiBzY3JlZW4gIlxlUCIpIHF1ZXJ5ICI/ XGEiICh3aGVuIHNjcmVlbiAiXGVcXCIpKQotICAgICAgIChsaXN0IChjb25zIHF1ZXJ5IChsYW1i ZGEgKCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aGlsZSAobGV0ICgoY2hhciAocmVh ZC1jaGFyKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5sZXNzIChl cSBjaGFyID9cYSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluc2Vy dCBjaGFyKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0KSkpKSkpCisg ICAgICAgOzsgVXNlIFNUIGFzIHF1ZXJ5IHRlcm1pbmF0b3IgdG8gZ2V0IFNUIGFzIHJlcGx5IHRl cm1pbmF0b3IgKGJ1ZyMzNjg3OSkuCisgICAgICAgKGNvbmNhdCBxdWVyeSAiP1xlXFwiKQorICAg ICAgIChsaXN0IChjb25zIHF1ZXJ5CisgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoKQorICAg ICAgICAgICAgICAgICAgICAgOzsgUmVhZCBkYXRhIHVwIHRvIHRoZSBzdHJpbmcgdGVybWluYXRv ciwgU1QuCisgICAgICAgICAgICAgICAgICAgICAobGV0IChjaGFyIGxhc3QpCisgICAgICAgICAg ICAgICAgICAgICAgICh3aGlsZSAoYW5kIChzZXRxIGNoYXIgKHJlYWQtY2hhcgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwgbmlsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHh0ZXJtLXF1ZXJ5LXRpbWVvdXQp KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobm90IChhbmQgKGVxIGNoYXIg P1xcKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxIGxh c3QgP1xlKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIGxhc3QKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIChpbnNlcnQgbGFzdCkpCisgICAgICAgICAgICAgICAgICAgICAg ICAgKHNldHEgbGFzdCBjaGFyKSkpKSkpCiAgICAgICAgJ25vLWFzeW5jKQogICAgICAgKGJhc2U2 NC1kZWNvZGUtcmVnaW9uIChwb2ludC1taW4pIChwb2ludC1tYXgpKQogICAgICAgKGRlY29kZS1j b2RpbmctcmVnaW9uIChwb2ludC1taW4pIChwb2ludC1tYXgpICd1dGYtOC11bml4IHQpKSkpCi0t IAoyLjIxLjAKCg== --=-XZmm+3SXyx3fkhaaNTqv--