From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Keith David Bershatsky Newsgroups: gmane.emacs.bugs Subject: bug#22404: 25.1.50; Forcing `window-scroll-functions` to run. Date: Mon, 08 Feb 2016 00:51:44 -0800 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 (generated by - "") Content-Type: multipart/mixed; boundary="Multipart_Mon_Feb__8_00:51:43_2016-1" X-Trace: ger.gmane.org 1454921551 31976 80.91.229.3 (8 Feb 2016 08:52:31 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 8 Feb 2016 08:52:31 +0000 (UTC) Cc: 22404@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Feb 08 09:52:15 2016 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 1aShYL-0003bh-RL for geb-bug-gnu-emacs@m.gmane.org; Mon, 08 Feb 2016 09:52:14 +0100 Original-Received: from localhost ([::1]:42556 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aShYK-0005NW-RM for geb-bug-gnu-emacs@m.gmane.org; Mon, 08 Feb 2016 03:52:12 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:33462) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aShYD-0005N9-H4 for bug-gnu-emacs@gnu.org; Mon, 08 Feb 2016 03:52:09 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aShYA-0007qk-AT for bug-gnu-emacs@gnu.org; Mon, 08 Feb 2016 03:52:05 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:57589) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aShYA-0007qP-6i for bug-gnu-emacs@gnu.org; Mon, 08 Feb 2016 03:52:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84) (envelope-from ) id 1aShY9-0001ZX-Vf for bug-gnu-emacs@gnu.org; Mon, 08 Feb 2016 03:52:01 -0500 X-Loop: help-debbugs@gnu.org In-Reply-To: Resent-From: Keith David Bershatsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 08 Feb 2016 08:52:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 22404 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 22404-submit@debbugs.gnu.org id=B22404.14549215166032 (code B ref 22404); Mon, 08 Feb 2016 08:52:01 +0000 Original-Received: (at 22404) by debbugs.gnu.org; 8 Feb 2016 08:51:56 +0000 Original-Received: from localhost ([127.0.0.1]:37945 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aShY3-0001ZE-Qa for submit@debbugs.gnu.org; Mon, 08 Feb 2016 03:51:55 -0500 Original-Received: from cobb.liquidweb.com ([50.28.13.150]:46234) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aShY2-0001Z1-7Y for 22404@debbugs.gnu.org; Mon, 08 Feb 2016 03:51:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com; s=default; h=Content-Type:MIME-Version:Subject:Cc:To:From:Message-ID:Date; bh=sSlUAt5p5rHF96X3qELPDmgyo0ogsSTKmRoEWeY3qvI=; b=3OkIDcIU1+TrpEhIWUiQ2LnB+k6oeeJYf+MRWOZR7H5tYOywmgBiSXmHbXHhfMAOAVFddEDYfT2yYd89RuUMvD7nkMa5yJ5r8CaO5q5PuVUyf0zN612T2aRcDYcPBeHR; Original-Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:54321 helo=server.private.localhost) by cobb.liquidweb.com with esmtp (Exim 4.82) (envelope-from ) id 1aShXs-0003W7-5F; Mon, 08 Feb 2016 03:51:44 -0500 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cobb.liquidweb.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-Get-Message-Sender-Via: cobb.liquidweb.com: acl_c_relayhosts_text_entry: lawlist|lawlist.com 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: 208.118.235.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:112700 Archived-At: --Multipart_Mon_Feb__8_00:51:43_2016-1 Content-Type: text/plain; charset=US-ASCII Attached is the next in the series of draft concept ideas, which ensures the point is fully visible before firing. Some people will naturally prefer that point be partially visible when the hook is triggered, but I like fully visible instead. I noticed that redisplay handles a large yank/paste by erroneously letting the user see for a split second that point is partially visible on the bottom of the screen (when `scroll-conservatively` is 101), and then redisplay fixes the display by moving the lines up far enough to bring point back into view. That behavior appears to be a bug -- i.e., Emacs should internally know that point is partially visible at the bottom of the screen following a large yank and then patiently wait to display the finished product until point is fully visible. This is most noticeable in my own minor-mode that can take up to .040 seconds to perform its calculations with `vertical-motion'. The following is the proposed usage based on the attached concept draft patch/diff file: (defun window-start-end-hook-fn (win start end pbol-start peol-end fully-p) (message "win: %s | start: %s | end: %s | pbol-start: %s | peol-end: %s | fully-p: %s" win start end pbol-start peol-end fully-p)) (setq window-start-end-hook-var t) (setq scroll-conservatively 101) (add-hook 'window-start-end-hook 'window-start-end-hook-fn nil t) --Multipart_Mon_Feb__8_00:51:43_2016-1 Content-Type: application/diff; type=patch Content-Disposition: attachment; filename="window_start_end_hook.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9rZXlib2FyZC5jIGIvc3JjL2tleWJvYXJkLmMKaW5kZXggYmFjYTRi NS4uZjM2ZmM2MiAxMDA2NDQKLS0tIGEvc3JjL2tleWJvYXJkLmMKKysrIGIvc3JjL2tleWJvYXJk LmMKQEAgLTEyMzMsNiArMTIzMywxNSBAQCBzdGF0aWMgaW50IHJlYWRfa2V5X3NlcXVlbmNlIChM aXNwX09iamVjdCAqLCBpbnQsIExpc3BfT2JqZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCk7CiBzdGF0aWMgdm9pZCBhZGp1c3RfcG9pbnRf Zm9yX3Byb3BlcnR5IChwdHJkaWZmX3QsIGJvb2wpOwogCitzdGF0aWMgdm9pZAorc2V0X3dpbmRv d19zdGFydF9lbmRfaG9vayAodm9pZCkKK3sKKyAgTGlzcF9PYmplY3Qgd2luZG93ID0gKHNlbGVj dGVkX3dpbmRvdyk7CisgIHN0cnVjdCB3aW5kb3cgKncgPSBkZWNvZGVfbGl2ZV93aW5kb3cgKHdp bmRvdyk7CisgIHctPndpbmRvd19zdGFydF9lbmRfaG9va19mb3JjZSA9IHRydWU7CisgIHctPndp bmRvd19zdGFydF9lbmRfaG9va19wZW5kaW5nID0gdHJ1ZTsKK30KKwogTGlzcF9PYmplY3QKIGNv bW1hbmRfbG9vcF8xICh2b2lkKQogewpAQCAtMTI1OCw2ICsxMjY3LDggQEAgY29tbWFuZF9sb29w XzEgKHZvaWQpCiAgICAgICBpZiAoIU5JTFAgKFZwb3N0X2NvbW1hbmRfaG9vaykgJiYgIU5JTFAg KFZydW5faG9va3MpKQogCXNhZmVfcnVuX2hvb2tzIChRcG9zdF9jb21tYW5kX2hvb2spOwogCisg ICAgICBzZXRfd2luZG93X3N0YXJ0X2VuZF9ob29rICgpOworCiAgICAgICAvKiBJZiBkaXNwbGF5 aW5nIGEgbWVzc2FnZSwgcmVzaXplIHRoZSBlY2hvIGFyZWEgd2luZG93IHRvIGZpdAogCSB0aGF0 IG1lc3NhZ2UncyBzaXplIGV4YWN0bHkuICAqLwogICAgICAgaWYgKCFOSUxQIChlY2hvX2FyZWFf YnVmZmVyWzBdKSkKQEAgLTE0NzQsNiArMTQ4NSw4IEBAIGNvbW1hbmRfbG9vcF8xICh2b2lkKQog CiAgICAgICBzYWZlX3J1bl9ob29rcyAoUXBvc3RfY29tbWFuZF9ob29rKTsKIAorICAgICAgc2V0 X3dpbmRvd19zdGFydF9lbmRfaG9vayAoKTsKKwogICAgICAgLyogSWYgZGlzcGxheWluZyBhIG1l c3NhZ2UsIHJlc2l6ZSB0aGUgZWNobyBhcmVhIHdpbmRvdyB0byBmaXQKIAkgdGhhdCBtZXNzYWdl J3Mgc2l6ZSBleGFjdGx5LiAgKi8KICAgICAgIGlmICghTklMUCAoZWNob19hcmVhX2J1ZmZlclsw XSkpCmRpZmYgLS1naXQgYS9zcmMvd2luZG93LmggYi9zcmMvd2luZG93LmgKaW5kZXggYzI5MjA3 ZC4uMzE1NjkyNyAxMDA2NDQKLS0tIGEvc3JjL3dpbmRvdy5oCisrKyBiL3NyYy93aW5kb3cuaApA QCAtMzQ4LDYgKzM0OCwxMiBAQCBzdHJ1Y3Qgd2luZG93CiAgICAgICAgVndpbmRvd19zY3JvbGxf ZnVuY3Rpb25zOyBhbHNvIGJ5IEZyZWNlbnRlciB3aXRoIGFyZ3VtZW50LiAgKi8KICAgICBib29s X2JmIG9wdGlvbmFsX25ld19zdGFydCA6IDE7CiAKKyAgICAvKiBUcnVlIG1lYW5zIGZvcmNlIGEg Y2FsbCB0byBWd2luZG93X3N0YXJ0X2VuZF9ob29rLiAgKi8KKyAgICBib29sX2JmIHdpbmRvd19z dGFydF9lbmRfaG9va19mb3JjZSA6IDE7CisKKyAgICAvKiBUcnVlIG1lYW5zIHRoZSBob29rIGhh cyBub3QgeWV0IHJ1biB3aXRoIHBvaW50IGZ1bGx5IHZpc2libGUuICAqLworICAgIGJvb2xfYmYg d2luZG93X3N0YXJ0X2VuZF9ob29rX3BlbmRpbmcgOiAxOworCiAgICAgLyogVHJ1ZSBtZWFucyB0 aGUgY3Vyc29yIGlzIGN1cnJlbnRseSBkaXNwbGF5ZWQuICBUaGlzIGNhbiBiZQogICAgICAgIHNl dCB0byB6ZXJvIGJ5IGZ1bmN0aW9ucyBvdmVycGFpbnRpbmcgdGhlIGN1cnNvciBpbWFnZS4gICov CiAgICAgYm9vbF9iZiBwaHlzX2N1cnNvcl9vbl9wIDogMTsKZGlmZiAtLWdpdCBhL3NyYy94ZGlz cC5jIGIvc3JjL3hkaXNwLmMKaW5kZXggOGYxZTk4ZC4uMDk3OTA1MCAxMDA2NDQKLS0tIGEvc3Jj L3hkaXNwLmMKKysrIGIvc3JjL3hkaXNwLmMKQEAgLTEzNDE2LDYgKzEzNDE2LDY4IEBAIGRvIHsg aWYgKCEgcG9sbGluZ19zdG9wcGVkX2hlcmUpIHN0b3BfcG9sbGluZyAoKTsJXAogZG8geyBpZiAo cG9sbGluZ19zdG9wcGVkX2hlcmUpIHN0YXJ0X3BvbGxpbmcgKCk7CVwKICAgICAgICBwb2xsaW5n X3N0b3BwZWRfaGVyZSA9IGZhbHNlOyB9IHdoaWxlIChmYWxzZSkKIAorc3RhdGljIHZvaWQKK3J1 bl93aW5kb3dfc3RhcnRfZW5kX2hvb2sgKHN0cnVjdCB0ZXh0X3BvcyBzdGFydHAsIHN0cnVjdCB3 aW5kb3cgKncsIExpc3BfT2JqZWN0IHdpbmRvdywgc3RydWN0IGl0IGl0LCBjaGFyICpzdHJpbmcp Cit7CisgIHZvaWQgKml0ZGF0YSA9IE5VTEw7CisgIGJvb2wgaW5fd2luZG93ID0gZmFsc2U7Cisg IGJvb2wgZnVsbHlfcCA9IHRydWU7CisgIGJvb2wgcGFydGlhbGx5ID0gdHJ1ZTsKKyAgRU1BQ1Nf SU5UIHBvc2ludCA9IFBUOworICBpbnQgeCwgeSwgcnRvcCwgcmJvdCwgcm93aCwgdnBvcywgc3Rh cnRwX2ludGVnZXIsIGVuZHAsIHBib2xfc3RhcnRwLCBwZW9sX2VuZHA7CisgIHN0YXJ0cF9pbnRl Z2VyID0gQ0hBUlBPUyAoc3RhcnRwKTsKKyAgc3RydWN0IGJ1ZmZlciAqYnVmOworICBidWYgPSBY QlVGRkVSICh3LT5jb250ZW50cyk7CisgIGlmICghTklMUCAoVndpbmRvd19zdGFydF9lbmRfaG9v aykKKyAgICAgICYmIChGbG9jYWxfdmFyaWFibGVfcCAoUXdpbmRvd19zdGFydF9lbmRfaG9va192 YXIsIEZ3aW5kb3dfYnVmZmVyICh3aW5kb3cpKSkKKyAgICAgICYmIHctPndpbmRvd19zdGFydF9l bmRfaG9va19wZW5kaW5nKQorICAgIHsKKyAgICBpZiAoKHBvc2ludCA+PSBDSEFSUE9TIChzdGFy dHApICYmIHBvc2ludCA8PSBCVUZfWlYgKGJ1ZikpCisgICAgICAgICYmIENIQVJQT1MgKHN0YXJ0 cCkgPj0gQlVGX0JFR1YgKGJ1ZikKKyAgICAgICAgJiYgQ0hBUlBPUyAoc3RhcnRwKSA8PSBCVUZf WlYgKGJ1ZikKKyAgICAgICAgJiYgcG9zX3Zpc2libGVfcCAodywgcG9zaW50LCAmeCwgJnksICZy dG9wLCAmcmJvdCwgJnJvd2gsICZ2cG9zKSkKKyAgICAgIHsKKyAgICAgIGZ1bGx5X3AgPSAhcnRv cCAmJiAhcmJvdDsKKyAgICAgIGlmICghTklMUCAocGFydGlhbGx5KSB8fCBmdWxseV9wKQorICAg ICAgICBpbl93aW5kb3cgPSB0cnVlOworICAgICAgfQorICAgIGlmICghTklMUCAoaW5fd2luZG93 KSAmJiAhTklMUCAocGFydGlhbGx5KSkKKyAgICAgIHsKKyNpZmRlZiBHTFlQSF9ERUJVRworICAg ICAgLyogU2VlIHRoZSBkb2Mtc3RyaW5nIGZvciBgcG9zLXZpc2libGUtaW4td2luZG93LXAnLiAg Ki8KKyAgICAgIGlmICghZnVsbHlfcCkKKyAgICAgICAgZGVidWdfbWV0aG9kX2FkZCAodywgIiVz IC0tIHg6ICVkIHwgeTogJWQgfCBydG9wOiAlZCB8IHJib3QgJWQgfCByb3doOiAlZCB8IHZwb3M6 ICVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZywgeCwgeSwgcnRvcCwg cmJvdCwgcm93aCwgdnBvcyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgZGVidWdfbWV0aG9kX2Fk ZCAodywgIiVzIC0tIHg6ICVkIHwgeTogJWQgfCBzdGFydHA6ICVkIHwgZW5kcDogJWQgfCBwYm9s X3N0YXJ0cDogJWQgfCBwZW9sX2VuZHA6ICVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cmluZywgeCwgeSwgc3RhcnRwX2ludGVnZXIsIGVuZHAsIHBib2xfc3RhcnRwLCBwZW9s X2VuZHApOworI2VuZGlmCisgICAgICBpZiAoZnVsbHlfcCkKKyAgICAgICAgeworICAgICAgICBD TElQX1RFWFRfUE9TX0ZST01fTUFSS0VSIChzdGFydHAsIHctPnN0YXJ0KTsKKyAgICAgICAgaXRk YXRhID0gYmlkaV9zaGVsdmVfY2FjaGUgKCk7CisgICAgICAgIHN0YXJ0X2Rpc3BsYXkgKCZpdCwg dywgc3RhcnRwKTsKKyAgICAgICAgbW92ZV9pdF92ZXJ0aWNhbGx5ICgmaXQsIHdpbmRvd19ib3hf aGVpZ2h0ICh3KSk7CisgICAgICAgIGlmIChpdC5jdXJyZW50X3kgPCBpdC5sYXN0X3Zpc2libGVf eSkKKyAgICAgICAgICBtb3ZlX2l0X3Bhc3RfZW9sICgmaXQpOworICAgICAgICBlbmRwID0gKElU X0NIQVJQT1MgKGl0KSk7CisgICAgICAgIGJpZGlfdW5zaGVsdmVfY2FjaGUgKGl0ZGF0YSwgZmFs c2UpOworICAgICAgICBTRVRfUFQgKHN0YXJ0cF9pbnRlZ2VyKTsKKyAgICAgICAgcGJvbF9zdGFy dHAgPSBYSU5UIChGbGluZV9iZWdpbm5pbmdfcG9zaXRpb24gKFFuaWwpKTsKKyAgICAgICAgU0VU X1BUIChlbmRwKTsKKyAgICAgICAgcGVvbF9lbmRwID0gWElOVCAoRmxpbmVfZW5kX3Bvc2l0aW9u IChRbmlsKSk7CisgICAgICAgIFNFVF9QVCAocG9zaW50KTsKKyAgICAgICAgQ0FMTE4gKEZydW5f aG9va193aXRoX2FyZ3MsIFF3aW5kb3dfc3RhcnRfZW5kX2hvb2ssIHdpbmRvdywKKyAgICAgICAg ICAgIG1ha2VfbnVtYmVyIChzdGFydHBfaW50ZWdlciksCisgICAgICAgICAgICBtYWtlX251bWJl ciAoZW5kcCksCisgICAgICAgICAgICBtYWtlX251bWJlciAocGJvbF9zdGFydHApLAorICAgICAg ICAgICAgbWFrZV9udW1iZXIgKHBlb2xfZW5kcCksCisgICAgICAgICAgICBmdWxseV9wID8gUXQg OiBRbmlsKTsKKyAgICAgICAgdy0+d2luZG93X3N0YXJ0X2VuZF9ob29rX3BlbmRpbmcgPSBmYWxz ZTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KK30KIAogLyogUGVyaGFwcyBpbiB0aGUgZnV0 dXJlIGF2b2lkIHJlY2VudGVyaW5nIHdpbmRvd3MgaWYgaXQKICAgIGlzIG5vdCBuZWNlc3Nhcnk7 IGN1cnJlbnRseSB0aGF0IGNhdXNlcyBzb21lIHByb2JsZW1zLiAgKi8KQEAgLTEzNzEzLDYgKzEz Nzc1LDcgQEAgcmVkaXNwbGF5X2ludGVybmFsICh2b2lkKQogICAgICAgJiYgbWF0Y2hfcAogICAg ICAgJiYgIXctPmZvcmNlX3N0YXJ0CiAgICAgICAmJiAhdy0+b3B0aW9uYWxfbmV3X3N0YXJ0Cisg ICAgICAmJiAhdy0+d2luZG93X3N0YXJ0X2VuZF9ob29rX2ZvcmNlCiAgICAgICAvKiBQb2ludCBt dXN0IGJlIG9uIHRoZSBsaW5lIHRoYXQgd2UgaGF2ZSBpbmZvIHJlY29yZGVkIGFib3V0LiAgKi8K ICAgICAgICYmIFBUID49IENIQVJQT1MgKHRsYnVmcG9zKQogICAgICAgJiYgUFQgPD0gWiAtIENI QVJQT1MgKHRsZW5kcG9zKQpAQCAtMTU0MTIsNiArMTU0NzUsOCBAQCB0cnlfc2Nyb2xsaW5nIChM aXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wLAogICAvKiBSdW4gd2luZG93 IHNjcm9sbCBmdW5jdGlvbnMuICAqLwogICBzdGFydHAgPSBydW5fd2luZG93X3Njcm9sbF9mdW5j dGlvbnMgKHdpbmRvdywgc3RhcnRwKTsKIAorICBydW5fd2luZG93X3N0YXJ0X2VuZF9ob29rIChz dGFydHAsIHcsIHdpbmRvdywgaXQsICJ0cnlfc2Nyb2xsaW5nIik7CisKICAgLyogRGlzcGxheSB0 aGUgd2luZG93LiAgR2l2ZSB1cCBpZiBuZXcgZm9udHMgYXJlIGxvYWRlZCwgb3IgaWYgcG9pbnQK ICAgICAgZG9lc24ndCBhcHBlYXIuICAqLwogICBpZiAoIXRyeV93aW5kb3cgKHdpbmRvdywgc3Rh cnRwLCAwKSkKQEAgLTE2MjY2LDEzICsxNjMzMSwxMiBAQCByZWRpc3BsYXlfd2luZG93IChMaXNw X09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9wKQogCiAgIC8qIElmIHNvbWVvbmUg c3BlY2lmaWVkIGEgbmV3IHN0YXJ0aW5nIHBvaW50IGJ1dCBkaWQgbm90IGluc2lzdCwKICAgICAg Y2hlY2sgd2hldGhlciBpdCBjYW4gYmUgdXNlZC4gICovCi0gIGlmICgody0+b3B0aW9uYWxfbmV3 X3N0YXJ0IHx8IHdpbmRvd19mcm96ZW5fcCAodykpCisgIGlmICgody0+b3B0aW9uYWxfbmV3X3N0 YXJ0IHx8IHctPndpbmRvd19zdGFydF9lbmRfaG9va19mb3JjZSB8fCB3aW5kb3dfZnJvemVuX3Ag KHcpKQogICAgICAgJiYgQ0hBUlBPUyAoc3RhcnRwKSA+PSBCRUdWCiAgICAgICAmJiBDSEFSUE9T IChzdGFydHApIDw9IFpWKQogICAgIHsKICAgICAgIHB0cmRpZmZfdCBpdF9jaGFycG9zOwogCi0g ICAgICB3LT5vcHRpb25hbF9uZXdfc3RhcnQgPSBmYWxzZTsKICAgICAgIHN0YXJ0X2Rpc3BsYXkg KCZpdCwgdywgc3RhcnRwKTsKICAgICAgIG1vdmVfaXRfdG8gKCZpdCwgUFQsIDAsIGl0Lmxhc3Rf dmlzaWJsZV95LCAtMSwKIAkJICBNT1ZFX1RPX1BPUyB8IE1PVkVfVE9fWCB8IE1PVkVfVE9fWSk7 CkBAIC0xNjI5MywxNCArMTYzNTcsMjggQEAgcmVkaXNwbGF5X3dpbmRvdyAoTGlzcF9PYmplY3Qg d2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKIAkgICAgdy0+Zm9yY2Vfc3RhcnQgPSB0cnVl OwogI2lmZGVmIEdMWVBIX0RFQlVHCiAJICBpZiAody0+Zm9yY2Vfc3RhcnQpCi0JICAgIHsKLQkg ICAgICBpZiAod2luZG93X2Zyb3plbl9wICh3KSkKLQkJZGVidWdfbWV0aG9kX2FkZCAodywgInNl dCBmb3JjZV9zdGFydCBmcm9tIGZyb3plbiB3aW5kb3cgc3RhcnQiKTsKLQkgICAgICBlbHNlCi0J CWRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9yY2Vfc3RhcnQgZnJvbSBvcHRpb25hbF9uZXdf c3RhcnQiKTsKLQkgICAgfQorICAgIHsKKyAgICAgIGlmICh3aW5kb3dfZnJvemVuX3AgKHcpKQor ICAgICAgICB7CisgICAgICAgIGRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9yY2Vfc3RhcnQg ZnJvbSBmcm96ZW4gd2luZG93IHN0YXJ0Iik7CisgICAgICB9CisgICAgICBlbHNlIGlmICh3LT5v cHRpb25hbF9uZXdfc3RhcnQpCisgICAgICAgIHsKKyAgICAgICAgZGVidWdfbWV0aG9kX2FkZCAo dywgInNldCBmb3JjZV9zdGFydCBmcm9tIG9wdGlvbmFsX25ld19zdGFydCIpOworICAgICAgfQor ICAgICAgZWxzZSBpZiAody0+d2luZG93X3N0YXJ0X2VuZF9ob29rX2ZvcmNlKQorICAgICAgICB7 CisgICAgICAgIGRlYnVnX21ldGhvZF9hZGQgKHcsICJzZXQgZm9yY2Vfc3RhcnQgZnJvbSB3aW5k b3dfc3RhcnRfZW5kX2hvb2tfZm9yY2UiKTsKKyAgICAgIH0KKyAgICAgIGVsc2UKKyAgICAgICAg eworICAgICAgICBkZWJ1Z19tZXRob2RfYWRkICh3LCAiVGhpcyBzaXR1YXRpb24gaXMgbm90IHll dCBjb250ZW1wbGF0ZWQuIik7CisgICAgICB9CisgICAgfQogI2VuZGlmCiAJfQorICAgICAgdy0+ b3B0aW9uYWxfbmV3X3N0YXJ0ID0gZmFsc2U7CisgICAgICB3LT53aW5kb3dfc3RhcnRfZW5kX2hv b2tfZm9yY2UgPSBmYWxzZTsKICAgICB9CiAKICBmb3JjZV9zdGFydDoKQEAgLTE2MzI4LDExICsx NjQwNiwxOSBAQCByZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVz dF90aGlzX29uZV9wKQogCSB0aGFuIHRvIGdldCBpbnRvIGFuIGluZmluaXRlIGxvb3AgY2FsbGlu ZyB0aGUgaG9vayBmdW5jdGlvbnMKIAkgYW5kIGhhdmluZyB0aGVtIGdldCBtb3JlIGVycm9ycy4g ICovCiAgICAgICBpZiAoIXVwZGF0ZV9tb2RlX2xpbmUKLQkgIHx8ICEgTklMUCAoVndpbmRvd19z Y3JvbGxfZnVuY3Rpb25zKSkKKwkgIHx8ICEgTklMUCAoVndpbmRvd19zY3JvbGxfZnVuY3Rpb25z KQorCSAgfHwgISBOSUxQIChWd2luZG93X3N0YXJ0X2VuZF9ob29rKSkKIAl7CiAJICB1cGRhdGVf bW9kZV9saW5lID0gdHJ1ZTsKIAkgIHctPnVwZGF0ZV9tb2RlX2xpbmUgPSB0cnVlOworCisgIC8q IFJ1biB3aW5kb3cgc2Nyb2xsIGZ1bmN0aW9ucy4gIEZJWE1FOiAgc2V0IHVwIGNvbmRpdGlvbnMg c28gdGhhdAorYHJ1bl93aW5kb3dfc2Nyb2xsX2Z1bmN0aW9uc2AgZG9lcyBub3QgYWx3YXlzIHJ1 biB3aGVuZXZlcgorYHctPndpbmRvd19zdGFydF9lbmRfaG9va19mb3JjZWAgaXMgYHRydWVgLiAg Ki8KIAkgIHN0YXJ0cCA9IHJ1bl93aW5kb3dfc2Nyb2xsX2Z1bmN0aW9ucyAod2luZG93LCBzdGFy dHApOworCisgIHJ1bl93aW5kb3dfc3RhcnRfZW5kX2hvb2sgKHN0YXJ0cCwgdywgd2luZG93LCBp dCwgInJlZGlzcGxheV93aW5kb3cgKGZvcmNlX3N0YXJ0KSIpOworCiAJfQogCiAgICAgICBpZiAo Q0hBUlBPUyAoc3RhcnRwKSA8IEJFR1YpCkBAIC0xNjYwMCw2ICsxNjY4Niw3IEBAIHJlZGlzcGxh eV93aW5kb3cgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBqdXN0X3RoaXNfb25lX3ApCiAJICAg ICBiZWNhdXNlIGEgd2luZG93IHNjcm9sbCBmdW5jdGlvbiBjYW4gaGF2ZSBjaGFuZ2VkIHRoZQog CSAgICAgYnVmZmVyLiAgKi8KIAkgIHx8ICFOSUxQIChWd2luZG93X3Njcm9sbF9mdW5jdGlvbnMp CisJICB8fCAhTklMUCAoVndpbmRvd19zdGFydF9lbmRfaG9vaykKIAkgIHx8IE1JTklfV0lORE9X X1AgKHcpCiAJICB8fCAhKHVzZWRfY3VycmVudF9tYXRyaXhfcAogCSAgICAgICA9IHRyeV93aW5k b3dfcmV1c2luZ19jdXJyZW50X21hdHJpeCAodykpKQpAQCAtMTY3OTcsNiArMTY4ODQsOCBAQCBy ZWRpc3BsYXlfd2luZG93IChMaXNwX09iamVjdCB3aW5kb3csIGJvb2wganVzdF90aGlzX29uZV9w KQogICAvKiBSdW4gc2Nyb2xsIGhvb2tzLiAgKi8KICAgc3RhcnRwID0gcnVuX3dpbmRvd19zY3Jv bGxfZnVuY3Rpb25zICh3aW5kb3csIGl0LmN1cnJlbnQucG9zKTsKIAorICBydW5fd2luZG93X3N0 YXJ0X2VuZF9ob29rIChzdGFydHAsIHcsIHdpbmRvdywgaXQsICJyZWRpc3BsYXlfd2luZG93IChy ZWNlbnRlcikiKTsKKwogICAvKiBSZWRpc3BsYXkgdGhlIHdpbmRvdy4gICovCiAgIGJvb2wgdXNl X2Rlc2lyZWRfbWF0cml4ID0gZmFsc2U7CiAgIGlmICghY3VycmVudF9tYXRyaXhfdXBfdG9fZGF0 ZV9wCkBAIC0xNjgwNSw2ICsxNjg5NCw3IEBAIHJlZGlzcGxheV93aW5kb3cgKExpc3BfT2JqZWN0 IHdpbmRvdywgYm9vbCBqdXN0X3RoaXNfb25lX3ApCiAgICAgICAvKiBEb24ndCB1c2UgdHJ5X3dp bmRvd19yZXVzaW5nX2N1cnJlbnRfbWF0cml4IGluIHRoaXMgY2FzZQogCSBiZWNhdXNlIGl0IGNh biBoYXZlIGNoYW5nZWQgdGhlIGJ1ZmZlci4gICovCiAgICAgICB8fCAhTklMUCAoVndpbmRvd19z Y3JvbGxfZnVuY3Rpb25zKQorICAgICAgfHwgIU5JTFAgKFZ3aW5kb3dfc3RhcnRfZW5kX2hvb2sp CiAgICAgICB8fCAhanVzdF90aGlzX29uZV9wCiAgICAgICB8fCBNSU5JX1dJTkRPV19QICh3KQog ICAgICAgfHwgISh1c2VkX2N1cnJlbnRfbWF0cml4X3AKQEAgLTIzNjgwLDYgKzIzNzcwLDIwIEBA IGRlY29kZV9tb2RlX3NwZWMgKHN0cnVjdCB3aW5kb3cgKncsIHJlZ2lzdGVyIGludCBjLCBpbnQg ZmllbGRfd2lkdGgsCiAJICByZXR1cm4gIkAiOwogICAgICAgfQogCisgICAgY2FzZSAndyc6Cisg ICAgICB7CisgIHB0cmRpZmZfdCB3aW5kb3dfc3RhcnQgPSBtYXJrZXJfcG9zaXRpb24gKHctPnN0 YXJ0KTsKKyAgcGludDJzdHIgKGRlY29kZV9tb2RlX3NwZWNfYnVmLCB3aWR0aCwgd2luZG93X3N0 YXJ0KTsKKyAgcmV0dXJuIGRlY29kZV9tb2RlX3NwZWNfYnVmOworICAgICAgfQorCisgICAgY2Fz ZSAnVyc6CisgICAgICB7CisgIHB0cmRpZmZfdCB3aW5kb3dfZW5kID0gQlVGX1ogKGIpIC0gdy0+ d2luZG93X2VuZF9wb3M7CisgIHBpbnQyc3RyIChkZWNvZGVfbW9kZV9zcGVjX2J1Ziwgd2lkdGgs IHdpbmRvd19lbmQpOworICByZXR1cm4gZGVjb2RlX21vZGVfc3BlY19idWY7CisgICAgICB9CisK ICAgICBjYXNlICd6JzoKICAgICAgIC8qIGNvZGluZy1zeXN0ZW0gKG5vdCBpbmNsdWRpbmcgZW5k LW9mLWxpbmUgZm9ybWF0KSAqLwogICAgIGNhc2UgJ1onOgpAQCAtMzExNDUsNiArMzEyNDksOCBA QCBUaGV5IGFyZSBzdGlsbCBsb2dnZWQgdG8gdGhlICpNZXNzYWdlcyogYnVmZmVyLiAgKi8pOwog ICBERUZTWU0gKFFvdmVycmlkaW5nX3Rlcm1pbmFsX2xvY2FsX21hcCwgIm92ZXJyaWRpbmctdGVy bWluYWwtbG9jYWwtbWFwIik7CiAgIERFRlNZTSAoUW92ZXJyaWRpbmdfbG9jYWxfbWFwLCAib3Zl cnJpZGluZy1sb2NhbC1tYXAiKTsKICAgREVGU1lNIChRd2luZG93X3Njcm9sbF9mdW5jdGlvbnMs ICJ3aW5kb3ctc2Nyb2xsLWZ1bmN0aW9ucyIpOworICBERUZTWU0gKFF3aW5kb3dfc3RhcnRfZW5k X2hvb2ssICJ3aW5kb3ctc3RhcnQtZW5kLWhvb2siKTsKKyAgREVGU1lNIChRd2luZG93X3N0YXJ0 X2VuZF9ob29rX3ZhciwgIndpbmRvdy1zdGFydC1lbmQtaG9vay12YXIiKTsKICAgREVGU1lNIChR d2luZG93X3RleHRfY2hhbmdlX2Z1bmN0aW9ucywgIndpbmRvdy10ZXh0LWNoYW5nZS1mdW5jdGlv bnMiKTsKICAgREVGU1lNIChRcmVkaXNwbGF5X2VuZF90cmlnZ2VyX2Z1bmN0aW9ucywgInJlZGlz cGxheS1lbmQtdHJpZ2dlci1mdW5jdGlvbnMiKTsKICAgREVGU1lNIChRaW5oaWJpdF9wb2ludF9t b3Rpb25faG9va3MsICJpbmhpYml0LXBvaW50LW1vdGlvbi1ob29rcyIpOwpAQCAtMzE0NjYsNiAr MzE1NzIsMTUgQEAgaXMgc2Nyb2xsZWQuICBJdCBpcyBub3QgZGVzaWduZWQgZm9yIHRoYXQsIGFu ZCBzdWNoIHVzZSBwcm9iYWJseSB3b24ndAogd29yay4gICovKTsKICAgVndpbmRvd19zY3JvbGxf ZnVuY3Rpb25zID0gUW5pbDsKIAorICBERUZWQVJfTElTUCAoIndpbmRvdy1zdGFydC1lbmQtaG9v ayIsIFZ3aW5kb3dfc3RhcnRfZW5kX2hvb2ssCisgICAgZG9jOiAvKiBVc2VkIHRvIG9idGFpbiB0 aGUgbmV3IGB3aW5kb3ctc3RhcnQnIGR1cmluZyByZWRpc3BsYXkuICAqLyk7CisgIFZ3aW5kb3df c3RhcnRfZW5kX2hvb2sgPSBRbmlsOworCisgIERFRlZBUl9MSVNQICgid2luZG93LXN0YXJ0LWVu ZC1ob29rLXZhciIsIFZ3aW5kb3dfc3RhcnRfZW5kX2hvb2tfdmFyLAorICAgIGRvYzogLyogYHdp bmRvdy1zdGFydC1lbmQtaG9va2AgY2hlY2tzIHRvIHNlZSBpZiBgd2luZG93LXN0YXJ0LWVuZC1o b29rLXZhcmAgaXMgc2V0IGxvY2FsbHkuICAqLyk7CisgIFZ3aW5kb3dfc3RhcnRfZW5kX2hvb2tf dmFyID0gUW5pbDsKKyAgRm1ha2VfdmFyaWFibGVfYnVmZmVyX2xvY2FsIChRd2luZG93X3N0YXJ0 X2VuZF9ob29rX3Zhcik7CisKICAgREVGVkFSX0xJU1AgKCJ3aW5kb3ctdGV4dC1jaGFuZ2UtZnVu Y3Rpb25zIiwKIAkgICAgICAgVndpbmRvd190ZXh0X2NoYW5nZV9mdW5jdGlvbnMsCiAgICAgZG9j OiAvKiBGdW5jdGlvbnMgdG8gY2FsbCBpbiByZWRpc3BsYXkgd2hlbiB0ZXh0IGluIHRoZSB3aW5k b3cgbWlnaHQgY2hhbmdlLiAgKi8pOwo= --Multipart_Mon_Feb__8_00:51:43_2016-1--