From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: martin rudalics Newsgroups: gmane.emacs.bugs Subject: bug#36269: bug#28620: Mouse drag event records wrong window for release when crossing frames Date: Sat, 27 Jul 2019 11:26:47 +0200 Message-ID: <5881afff-b233-2a01-34c3-0d7c4225875b@gmx.at> References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------B7922B75546CE207C9316044" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="123485"; mail-complaints-to="usenet@blaine.gmane.org" To: rswgnu@gmail.com, 28620@debbugs.gnu.org, 36269@debbugs.gnu.org, Scott Otterson Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Jul 27 11:28:15 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 1hrIzu-000VvL-PN for geb-bug-gnu-emacs@m.gmane.org; Sat, 27 Jul 2019 11:28:15 +0200 Original-Received: from localhost ([::1]:44660 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hrIzs-0005Rm-P8 for geb-bug-gnu-emacs@m.gmane.org; Sat, 27 Jul 2019 05:28:12 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:39271) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hrIzn-0005RN-JD for bug-gnu-emacs@gnu.org; Sat, 27 Jul 2019 05:28:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hrIzk-00039r-A8 for bug-gnu-emacs@gnu.org; Sat, 27 Jul 2019 05:28:07 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:34771) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hrIzk-00039l-53 for bug-gnu-emacs@gnu.org; Sat, 27 Jul 2019 05:28:04 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hrIzk-0004l8-10 for bug-gnu-emacs@gnu.org; Sat, 27 Jul 2019 05:28:04 -0400 X-Loop: help-debbugs@gnu.org Resent-From: martin rudalics Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 27 Jul 2019 09:28:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 36269 X-GNU-PR-Package: emacs Original-Received: via spool by 36269-submit@debbugs.gnu.org id=B36269.156421962518223 (code B ref 36269); Sat, 27 Jul 2019 09:28:03 +0000 Original-Received: (at 36269) by debbugs.gnu.org; 27 Jul 2019 09:27:05 +0000 Original-Received: from localhost ([127.0.0.1]:43591 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hrIym-0004jl-7O for submit@debbugs.gnu.org; Sat, 27 Jul 2019 05:27:05 -0400 Original-Received: from mout.gmx.net ([212.227.17.20]:47249) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hrIyh-0004j7-4e; Sat, 27 Jul 2019 05:27:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1564219611; bh=sQf0ztfyf8qHKc9gAce+WS7gI2pibKHV2EY02miFOeI=; h=X-UI-Sender-Class:Subject:To:References:From:Date:In-Reply-To; b=N3dbwGu4oZDI+wyp9hRD8knlF2GznQ7Xn2rPiSY6cMYuIfT3xucUtsUL+SA2J3+HX ndev5M+1yFpulPyvp2slaVDLrzcc+Hj1VlWiJHyHkbgnvXoEBHGofR1d/76WRl8+Vw 0wVyPboPTPbsHNeV4rILPqRQxQXBnTsTo++4dbco= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Original-Received: from [192.168.1.101] ([213.162.80.250]) by mail.gmx.com (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MIx3C-1i7Jei2nVK-00KTOC; Sat, 27 Jul 2019 11:26:50 +0200 In-Reply-To: Content-Language: de-DE X-Provags-ID: V03:K1:ELKHQ1oVUydZPakr5y0wWKe29HXHmtSfkhZdV+h/zK5qbTOQP/y 03SPW62Urb7fsIiBseyMZmOM5ji6tdZFoQpd4SIFoWyEcSyKQk2detW+s8PA3Ipzg4r3NNP cQGHm4EOdwligMv9y+arrpYSMkowphrFQBMi1eosEFbe/LJ91IMIGSQs1mWU78TF/9a9UIR XVwTotG6XmfZowNe4yq+w== X-UI-Out-Filterresults: notjunk:1;V03:K0:vMzbYUH+jkI=:6DWA5ydhYSHmg2Ojv1sDu0 wk1EtI91gC73E4pkwpXIQfjMk7b5mvQBv66AQ/d21kOyYiKJZQ15LUsHRdQcvV1o36RMAN48y yPmgMmMe1A/PJ/P0eWgZwzQG2NYBNBby9nAISW4DEj8GBlV0eLKSeeEkbG2yTtBbR1FYvzsf+ 1K3cOQATpwCtfuQz1V94qi/0WMg5+zsON4dMk5s9qfuzwQVyN0uG7YuNIlh2FrkOjjKljaz7I PEpJ683vdTEWndA2evFpo4EZAcv5PaSfULxt+tU8UMBnbSByVfVdKXeNsYEyosqzgbdSUwvgI Eolt9TF5Kg9jJ21OvUK8hMyJOMSd7sjyJAR0ZvfF8TT1nKLbLAzX04qX62ospp+Or1kamEW8x QDh+t4ShrmGiB7yuR9iMFtA/mMKcGojxqNrxeXnQIGVw9sx+9l6kPZbo2j+/zAzX6ef7ipz7b npWFYAToJDM52O+yAh91jxsGDcrvffO5RoVuPN5JBzfcbb1UxX5x3G0rdh9RV0CzRkEigB1fV i3OQRaMaSiT5D1gUdAO/hBWbS/1fB3R0TDUE3+cQIpxRK1cUP2bquQw1Bvn3PtPSBxYh0n6tz 6NYCtY1uOqU1UuSCv/LpysFi2HXJ2mvVoY7bjJjLvORDbftGKn3T+/RVU2KhWOvBqRVwg87eb LLlQti48gCveD53/kp6y9Yp5e2mDXE0tj26N/EPbjXS+iN1e+F0/FlcmM/FgPj74ac0fiOtgG qIg13hjxFmrhqI7qks+mJvQLUfBy43WFw5uyDfyTiJMhHUYOfTCZxVVfwgPiiVnIJqtzelAO 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:163827 Archived-At: This is a multi-part message in MIME format. --------------B7922B75546CE207C9316044 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit > With Emacs 25.3 under MacOS 10.12, a drag with mouse-1 depressed from > the text area of frame F1 to the text area of frame F2 improperly > generates a drag event whose (posn-window (event-end )) shows > F1 rather than F2. > > Note that for a drag between frames, posn-window should return a frame > (according to the Elisp manual but not its own doc string). The bug is > that the event itself records the wrong frame (the depress frame rather > than the release frame). > > I have confirmed this with Emacs 25.2 under Windows 7 as well. I tried to address this problem in the attached patch. Tested with GTK, Lucid, Motif and Windows builds. Since my GNUstep Emacs is currently broken, somebody please verify that it does something reasonable (if anything at all) on MacOS. Otherwise, I'd need help from people working there. The patch should also fix the mouse drag and drop region vs. mouse avoidance mode problem. Please someone verify that it does TRT now. TIA, martin --------------B7922B75546CE207C9316044 Content-Type: text/plain; charset=UTF-8; name="track-mouse.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="track-mouse.diff" ZGlmZiAtLWdpdCBhL2xpc3AvYXZvaWQuZWwgYi9saXNwL2F2b2lkLmVsCmluZGV4IDdkNjlm YTJhMjQuLjQzZTUwNjJiNzYgMTAwNjQ0Ci0tLSBhL2xpc3AvYXZvaWQuZWwKKysrIGIvbGlz cC9hdm9pZC5lbApAQCAtMzI3LDYgKzMyNyw5IEBAIG1vdXNlLWF2b2lkYW5jZS1pZ25vcmUt cAogICAgICAgICBleGVjdXRpbmcta2JkLW1hY3JvCSAgICAgICA7IGRvbid0IGNoZWNrIGlu c2lkZSBtYWNybwogCShudWxsIChjYWRyIG1wKSkJICAgICAgIDsgZG9uJ3QgbW92ZSB1bmxl c3MgaW4gYW4gRW1hY3MgZnJhbWUKIAkobm90IChlcSAoY2FyIG1wKSAoc2VsZWN0ZWQtZnJh bWUpKSkKKyAgICAgICAgOzsgRG9uJ3QgaW50ZXJmZXJlIHdpdGggb25nb2luZyBgbW91c2Ut ZHJhZy1hbmQtZHJvcC1yZWdpb24nCisgICAgICAgIDs7IChCdWcjMzYyNjkpLgorICAgICAg ICAoZXEgdHJhY2stbW91c2UgJ2Ryb3BwaW5nKQogCTs7IERvbid0IGRvIGFueXRoaW5nIGlm IGxhc3QgZXZlbnQgd2FzIGEgbW91c2UgZXZlbnQuCiAJOzsgRklYTUU6IHRoaXMgY29kZSBm YWlscyBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgbW91c2Ugd2FzIG1vdmVkCiAJOzsgc2luY2Ug dGhlIGxhc3Qga2V5LXByZXNzIGJ1dCB3aXRob3V0IGdlbmVyYXRpbmcgYW55IGV2ZW50Lgpk aWZmIC0tZ2l0IGEvbGlzcC9tb3VzZS5lbCBiL2xpc3AvbW91c2UuZWwKaW5kZXggNGE1MzJh MTVlNS4uZTk0N2UxNmQ0NyAxMDA2NDQKLS0tIGEvbGlzcC9tb3VzZS5lbAorKysgYi9saXNw L21vdXNlLmVsCkBAIC0xMjk2LDcgKzEyOTYsNyBAQCBtb3VzZS1kcmFnLXRyYWNrCiAgICAg IHQgKGxhbWJkYSAoKQogICAgICAgICAgKHNldHEgdHJhY2stbW91c2Ugb2xkLXRyYWNrLW1v dXNlKQogICAgICAgICAgKHNldHEgYXV0by1oc2Nyb2xsLW1vZGUgYXV0by1oc2Nyb2xsLW1v ZGUtc2F2ZWQpCi0gICAgICAgICAgKGRlYWN0aXZhdGUtbWFyaykKKyAgICAgICAgIChkZWFj dGl2YXRlLW1hcmspCiAgICAgICAgICAocG9wLW1hcmspKSkpKQogCiAoZGVmdW4gbW91c2Ut LWRyYWctc2V0LW1hcmstYW5kLXBvaW50IChzdGFydCBjbGljayBjbGljay1jb3VudCkKQEAg LTI0NjcsMTIgKzI0NjcsMTMgQEAgbW91c2UtZHJhZy1hbmQtZHJvcC1yZWdpb24KIAogICAg IChpZ25vcmUtZXJyb3JzCiAgICAgICAodHJhY2stbW91c2UKKyAgICAgICAgKHNldHEgdHJh Y2stbW91c2UgJ2Ryb3BwaW5nKQogICAgICAgICA7OyBXaGVuIGV2ZW50IHdhcyAiY2xpY2si IGluc3RlYWQgb2YgImRyYWciLCBza2lwIGxvb3AuCiAgICAgICAgICh3aGlsZSAocHJvZ24K ICAgICAgICAgICAgICAgICAgKHNldHEgZXZlbnQgKHJlYWQta2V5KSkgICAgICA7IHJlYWQt ZXZlbnQgb3IgcmVhZC1rZXkKICAgICAgICAgICAgICAgICAgKG9yIChtb3VzZS1tb3ZlbWVu dC1wIGV2ZW50KQogICAgICAgICAgICAgICAgICAgICAgOzsgSGFuZGxlIGBtb3VzZS1hdXRv c2VsZWN0LXdpbmRvdycuCi0gICAgICAgICAgICAgICAgICAgICAoZXEgKGNhci1zYWZlIGV2 ZW50KSAnc2VsZWN0LXdpbmRvdykpKQorICAgICAgICAgICAgICAgICAgICAgKG1lbXEgKGNh ciBldmVudCkgJyhzZWxlY3Qtd2luZG93IHN3aXRjaC1mcmFtZSkpKSkKICAgICAgICAgICA7 OyBPYnRhaW4gdGhlIGRyYWdnZWQgdGV4dCBpbiByZWdpb24uICBXaGVuIHRoZSBsb29wIHdh cwogICAgICAgICAgIDs7IHNraXBwZWQsIHZhbHVlLXNlbGVjdGlvbiByZW1haW5zIG5pbC4K ICAgICAgICAgICAodW5sZXNzIHZhbHVlLXNlbGVjdGlvbgpkaWZmIC0tZ2l0IGEvc3JjL2Rp c3BuZXcuYyBiL3NyYy9kaXNwbmV3LmMKaW5kZXggMDEzMWI2Mzc2Ny4uNzRkNTNmYjQ2ZCAx MDA2NDQKLS0tIGEvc3JjL2Rpc3BuZXcuYworKysgYi9zcmMvZGlzcG5ldy5jCkBAIC0zNDAy LDkgKzM0MDIsOSBAQCB1cGRhdGVfd2luZG93IChzdHJ1Y3Qgd2luZG93ICp3LCBib29sIGZv cmNlX3ApCiAgIGlmICghZm9yY2VfcCkKICAgICBkZXRlY3RfaW5wdXRfcGVuZGluZ19pZ25v cmVfc3F1ZWV6YWJsZXMgKCk7CiAKLSAgLyogSWYgZm9yY2VkIHRvIGNvbXBsZXRlIHRoZSB1 cGRhdGUsIG9yIGlmIG5vIGlucHV0IGlzIHBlbmRpbmcsIGRvCi0gICAgIHRoZSB1cGRhdGUu ICAqLwotICBpZiAoZm9yY2VfcCB8fCAhaW5wdXRfcGVuZGluZyB8fCAhTklMUCAoZG9fbW91 c2VfdHJhY2tpbmcpKQorICAvKiBJZiBmb3JjZWQgdG8gY29tcGxldGUgdGhlIHVwZGF0ZSwg bm8gaW5wdXQgaXMgcGVuZGluZyBvciB3ZSBhcmUKKyAgICAgdHJhY2tpbmcgdGhlIG1vdXNl IGRvIHRoZSB1cGRhdGUuICAqLworICBpZiAoZm9yY2VfcCB8fCAhaW5wdXRfcGVuZGluZyB8 fCAhTklMUCAodHJhY2tfbW91c2UpKQogICAgIHsKICAgICAgIHN0cnVjdCBnbHlwaF9yb3cg KnJvdywgKmVuZDsKICAgICAgIHN0cnVjdCBnbHlwaF9yb3cgKm1vZGVfbGluZV9yb3c7CmRp ZmYgLS1naXQgYS9zcmMva2V5Ym9hcmQuYyBiL3NyYy9rZXlib2FyZC5jCmluZGV4IGI4NmFk MDM4NTEuLjQyMjRhYjAxYjMgMTAwNjQ0Ci0tLSBhL3NyYy9rZXlib2FyZC5jCisrKyBiL3Ny Yy9rZXlib2FyZC5jCkBAIC0xMTU5LDE0ICsxMTU5LDE0IEBAIERFRlVOICgiYWJvcnQtcmVj dXJzaXZlLWVkaXQiLCBGYWJvcnRfcmVjdXJzaXZlX2VkaXQsIFNhYm9ydF9yZWN1cnNpdmVf ZWRpdCwgMCwKICAgdXNlcl9lcnJvciAoIk5vIHJlY3Vyc2l2ZSBlZGl0IGlzIGluIHByb2dy ZXNzIik7CiB9CiAMCi0vKiBSZXN0b3JlIG1vdXNlIHRyYWNraW5nIGVuYWJsZW1lbnQuICBT ZWUgRnRyYWNrX21vdXNlIGZvciB0aGUgb25seSB1c2UKLSAgIG9mIHRoaXMgZnVuY3Rpb24u ICAqLworLyogUmVzdG9yZSBtb3VzZSB0cmFja2luZyBlbmFibGVtZW50LiAgU2VlIEZpbnRl cm5hbF90cmFja19tb3VzZSBmb3IKKyAgIHRoZSBvbmx5IHVzZSBvZiB0aGlzIGZ1bmN0aW9u LiAgKi8KIAogc3RhdGljIHZvaWQKLXRyYWNraW5nX29mZiAoTGlzcF9PYmplY3Qgb2xkX3Zh bHVlKQordHJhY2tpbmdfb2ZmIChMaXNwX09iamVjdCBvbGRfdHJhY2tfbW91c2UpCiB7Ci0g IGRvX21vdXNlX3RyYWNraW5nID0gb2xkX3ZhbHVlOwotICBpZiAoTklMUCAob2xkX3ZhbHVl KSkKKyAgdHJhY2tfbW91c2UgPSBvbGRfdHJhY2tfbW91c2U7CisgIGlmIChOSUxQIChvbGRf dHJhY2tfbW91c2UpKQogICAgIHsKICAgICAgIC8qIFJlZGlzcGxheSBtYXkgaGF2ZSBiZWVu IHByZWVtcHRlZCBiZWNhdXNlIHRoZXJlIHdhcyBpbnB1dAogCSBhdmFpbGFibGUsIGFuZCBp dCBhc3N1bWVzIGl0IHdpbGwgYmUgY2FsbGVkIGFnYWluIGFmdGVyIHRoZQpAQCAtMTE4MSwy NCArMTE4MSwyNCBAQCB0cmFja2luZ19vZmYgKExpc3BfT2JqZWN0IG9sZF92YWx1ZSkKICAg ICB9CiB9CiAKLURFRlVOICgiaW50ZXJuYWwtLXRyYWNrLW1vdXNlIiwgRnRyYWNrX21vdXNl LCBTdHJhY2tfbW91c2UsIDEsIDEsIDAsCitERUZVTiAoImludGVybmFsLS10cmFjay1tb3Vz ZSIsIEZpbnRlcm5hbF90cmFja19tb3VzZSwgU2ludGVybmFsX3RyYWNrX21vdXNlLAorICAg ICAgIDEsIDEsIDAsCiAgICAgICAgZG9jOiAvKiBDYWxsIEJPRFlGVU4gd2l0aCBtb3VzZSBt b3ZlbWVudCBldmVudHMgZW5hYmxlZC4gICovKQogICAoTGlzcF9PYmplY3QgYm9keWZ1bikK IHsKICAgcHRyZGlmZl90IGNvdW50ID0gU1BFQ1BETF9JTkRFWCAoKTsKICAgTGlzcF9PYmpl Y3QgdmFsOwogCi0gIHJlY29yZF91bndpbmRfcHJvdGVjdCAodHJhY2tpbmdfb2ZmLCBkb19t b3VzZV90cmFja2luZyk7CisgIHJlY29yZF91bndpbmRfcHJvdGVjdCAodHJhY2tpbmdfb2Zm LCB0cmFja19tb3VzZSk7CiAKLSAgZG9fbW91c2VfdHJhY2tpbmcgPSBRdDsKKyAgdHJhY2tf bW91c2UgPSBRdDsKIAogICB2YWwgPSBjYWxsMCAoYm9keWZ1bik7CiAgIHJldHVybiB1bmJp bmRfdG8gKGNvdW50LCB2YWwpOwogfQogCi0vKiBJZiBtb3VzZSBoYXMgbW92ZWQgb24gc29t ZSBmcmFtZSwgcmV0dXJuIG9uZSBvZiB0aG9zZSBmcmFtZXMuCi0KLSAgIFJldHVybiAwIG90 aGVyd2lzZS4KKy8qIElmIG1vdXNlIGhhcyBtb3ZlZCBvbiBzb21lIGZyYW1lIGFuZCB3ZSBh cmUgdHJhY2tpbmcgdGhlIG1vdXNlLAorICAgcmV0dXJuIG9uZSBvZiB0aG9zZSBmcmFtZXMu ICBSZXR1cm4gTlVMTCBvdGhlcndpc2UuCiAKICAgIElmIGlnbm9yZV9tb3VzZV9kcmFnX3Ag aXMgbm9uLXplcm8sIGlnbm9yZSAoaW1wbGljaXQpIG1vdXNlIG1vdmVtZW50CiAgICBhZnRl ciByZXNpemluZyB0aGUgdG9vbC1iYXIgd2luZG93LiAgKi8KQEAgLTEyMTAsMTEgKzEyMTAs OCBAQCBzb21lX21vdXNlX21vdmVkICh2b2lkKQogewogICBMaXNwX09iamVjdCB0YWlsLCBm cmFtZTsKIAotICBpZiAoaWdub3JlX21vdXNlX2RyYWdfcCkKLSAgICB7Ci0gICAgICAvKiBp Z25vcmVfbW91c2VfZHJhZ19wID0gZmFsc2U7ICovCi0gICAgICByZXR1cm4gMDsKLSAgICB9 CisgIGlmIChOSUxQICh0cmFja19tb3VzZSkgfHwgaWdub3JlX21vdXNlX2RyYWdfcCkKKyAg ICByZXR1cm4gTlVMTDsKIAogICBGT1JfRUFDSF9GUkFNRSAodGFpbCwgZnJhbWUpCiAgICAg ewpAQCAtMTIyMiw3ICsxMjE5LDcgQEAgc29tZV9tb3VzZV9tb3ZlZCAodm9pZCkKIAlyZXR1 cm4gWEZSQU1FIChmcmFtZSk7CiAgICAgfQogCi0gIHJldHVybiAwOworICByZXR1cm4gTlVM TDsKIH0KIAogDApAQCAtMjA3MSw3ICsyMDY4LDggQEAgc2hvd19oZWxwX2VjaG8gKExpc3Bf T2JqZWN0IGhlbHAsIExpc3BfT2JqZWN0IHdpbmRvdywgTGlzcF9PYmplY3Qgb2JqZWN0LAog CSBUaGlzIGNhdXNlcyB0cm91YmxlIGlmIHdlIGFyZSB0cnlpbmcgdG8gcmVhZCBhIG1vdXNl IG1vdGlvbgogCSBldmVudCAoaS5lLiwgaWYgd2UgYXJlIGluc2lkZSBhIGB0cmFjay1tb3Vz ZScgZm9ybSksIHNvIHdlCiAJIHJlc3RvcmUgdGhlIG1vdXNlX21vdmVkIGZsYWcuICAqLwot ICAgICAgc3RydWN0IGZyYW1lICpmID0gTklMUCAoZG9fbW91c2VfdHJhY2tpbmcpID8gTlVM TCA6IHNvbWVfbW91c2VfbW92ZWQgKCk7CisgICAgICBzdHJ1Y3QgZnJhbWUgKmYgPSBzb21l X21vdXNlX21vdmVkICgpOworCiAgICAgICBoZWxwID0gY2FsbDEgKFFtb3VzZV9maXh1cF9o ZWxwX21lc3NhZ2UsIGhlbHApOwogICAgICAgaWYgKGYpCiAJZi0+bW91c2VfbW92ZWQgPSB0 cnVlOwpAQCAtMzQwMyw4ICszNDAxLDcgQEAgcmVhZGFibGVfZXZlbnRzIChpbnQgZmxhZ3Mp CiAJcmV0dXJuIDE7CiAgICAgfQogCi0gIGlmICghKGZsYWdzICYgUkVBREFCTEVfRVZFTlRT X0lHTk9SRV9TUVVFRVpBQkxFUykKLSAgICAgICYmICFOSUxQIChkb19tb3VzZV90cmFja2lu ZykgJiYgc29tZV9tb3VzZV9tb3ZlZCAoKSkKKyAgaWYgKCEoZmxhZ3MgJiBSRUFEQUJMRV9F VkVOVFNfSUdOT1JFX1NRVUVFWkFCTEVTKSAmJiBzb21lX21vdXNlX21vdmVkICgpKQogICAg IHJldHVybiAxOwogICBpZiAoc2luZ2xlX2tib2FyZCkKICAgICB7CkBAIC0zNzg2LDcgKzM3 ODMsNyBAQCBrYmRfYnVmZmVyX2dldF9ldmVudCAoS0JPQVJEICoqa2JwLAogCiAgICAgICBp ZiAoa2JkX2ZldGNoX3B0ciAhPSBrYmRfc3RvcmVfcHRyKQogCWJyZWFrOwotICAgICAgaWYg KCFOSUxQIChkb19tb3VzZV90cmFja2luZykgJiYgc29tZV9tb3VzZV9tb3ZlZCAoKSkKKyAg ICAgIGlmIChzb21lX21vdXNlX21vdmVkICgpKQogCWJyZWFrOwogCiAgICAgICAvKiBJZiB0 aGUgcXVpdCBmbGFnIGlzIHNldCwgdGhlbiByZWFkX2NoYXIgd2lsbCByZXR1cm4KQEAgLTM4 MDIsNyArMzc5OSw3IEBAIGtiZF9idWZmZXJfZ2V0X2V2ZW50IChLQk9BUkQgKiprYnAsCiAj ZW5kaWYKICAgICAgIGlmIChrYmRfZmV0Y2hfcHRyICE9IGtiZF9zdG9yZV9wdHIpCiAJYnJl YWs7Ci0gICAgICBpZiAoIU5JTFAgKGRvX21vdXNlX3RyYWNraW5nKSAmJiBzb21lX21vdXNl X21vdmVkICgpKQorICAgICAgaWYgKHNvbWVfbW91c2VfbW92ZWQgKCkpCiAJYnJlYWs7CiAg ICAgICBpZiAoZW5kX3RpbWUpCiAJewpAQCAtMzk0MSw4ICszOTM4LDkgQEAga2JkX2J1ZmZl cl9nZXRfZXZlbnQgKEtCT0FSRCAqKmticCwKICAgICAgICAgYnJlYWs7CiAgICAgICBkZWZh dWx0OgogCXsKLQkgIC8qIElmIHRoaXMgZXZlbnQgaXMgb24gYSBkaWZmZXJlbnQgZnJhbWUs IHJldHVybiBhIHN3aXRjaC1mcmFtZSB0aGlzCi0JICAgICB0aW1lLCBhbmQgbGVhdmUgdGhl IGV2ZW50IGluIHRoZSBxdWV1ZSBmb3IgbmV4dCB0aW1lLiAgKi8KKwkgIC8qIElmIHRoaXMg ZXZlbnQgaXMgb24gYSBkaWZmZXJlbnQgZnJhbWUsIHJldHVybiBhCisJICAgICBzd2l0Y2gt ZnJhbWUgdGhpcyB0aW1lIGFuZCBsZWF2ZSB0aGUgZXZlbnQgaW4gdGhlIHF1ZXVlCisJICAg ICBmb3IgbmV4dCB0aW1lLiAgKi8KIAkgIExpc3BfT2JqZWN0IGZyYW1lOwogCSAgTGlzcF9P YmplY3QgZm9jdXM7CiAKQEAgLTM5NTYsMTQgKzM5NTQsMTMgQEAga2JkX2J1ZmZlcl9nZXRf ZXZlbnQgKEtCT0FSRCAqKmticCwKIAkgIGlmICghIE5JTFAgKGZvY3VzKSkKIAkgICAgZnJh bWUgPSBmb2N1czsKIAotCSAgaWYgKCEgRVEgKGZyYW1lLCBpbnRlcm5hbF9sYXN0X2V2ZW50 X2ZyYW1lKQorCSAgaWYgKCFFUSAoZnJhbWUsIGludGVybmFsX2xhc3RfZXZlbnRfZnJhbWUp CiAJICAgICAgJiYgIUVRIChmcmFtZSwgc2VsZWN0ZWRfZnJhbWUpKQogCSAgICBvYmogPSBt YWtlX2xpc3B5X3N3aXRjaF9mcmFtZSAoZnJhbWUpOwogCSAgaW50ZXJuYWxfbGFzdF9ldmVu dF9mcmFtZSA9IGZyYW1lOwogCiAJICAvKiBJZiB3ZSBkaWRuJ3QgZGVjaWRlIHRvIG1ha2Ug YSBzd2l0Y2gtZnJhbWUgZXZlbnQsIGdvIGFoZWFkCiAJICAgICBhbmQgYnVpbGQgYSByZWFs IGV2ZW50IGZyb20gdGhlIHF1ZXVlIGVudHJ5LiAgKi8KLQogCSAgaWYgKE5JTFAgKG9iaikp CiAJICAgIHsKIAkgICAgICBvYmogPSBtYWtlX2xpc3B5X2V2ZW50ICgmZXZlbnQtPmllKTsK QEAgLTM5OTUsNyArMzk5Miw3IEBAIGtiZF9idWZmZXJfZ2V0X2V2ZW50IChLQk9BUkQgKipr YnAsCiAgICAgICB9CiAgICAgfQogICAvKiBUcnkgZ2VuZXJhdGluZyBhIG1vdXNlIG1vdGlv biBldmVudC4gICovCi0gIGVsc2UgaWYgKCFOSUxQIChkb19tb3VzZV90cmFja2luZykgJiYg c29tZV9tb3VzZV9tb3ZlZCAoKSkKKyAgZWxzZSBpZiAoc29tZV9tb3VzZV9tb3ZlZCAoKSkK ICAgICB7CiAgICAgICBzdHJ1Y3QgZnJhbWUgKmYgPSBzb21lX21vdXNlX21vdmVkICgpOwog ICAgICAgTGlzcF9PYmplY3QgYmFyX3dpbmRvdzsKQEAgLTQwMjcsNyArNDAyNCw3IEBAIGti ZF9idWZmZXJfZ2V0X2V2ZW50IChLQk9BUkQgKiprYnAsCiAJICBpZiAoTklMUCAoZnJhbWUp KQogCSAgICBYU0VURlJBTUUgKGZyYW1lLCBmKTsKIAotCSAgaWYgKCEgRVEgKGZyYW1lLCBp bnRlcm5hbF9sYXN0X2V2ZW50X2ZyYW1lKQorCSAgaWYgKCFFUSAoZnJhbWUsIGludGVybmFs X2xhc3RfZXZlbnRfZnJhbWUpCiAJICAgICAgJiYgIUVRIChmcmFtZSwgc2VsZWN0ZWRfZnJh bWUpKQogCSAgICBvYmogPSBtYWtlX2xpc3B5X3N3aXRjaF9mcmFtZSAoZnJhbWUpOwogCSAg aW50ZXJuYWxfbGFzdF9ldmVudF9mcmFtZSA9IGZyYW1lOwpAQCAtMTA5MzUsNyArMTA5MzIs NyBAQCBpbml0X2tleWJvYXJkICh2b2lkKQogICByZWNlbnRfa2V5c19pbmRleCA9IDA7CiAg IGtiZF9mZXRjaF9wdHIgPSBrYmRfYnVmZmVyOwogICBrYmRfc3RvcmVfcHRyID0ga2JkX2J1 ZmZlcjsKLSAgZG9fbW91c2VfdHJhY2tpbmcgPSBRbmlsOworICB0cmFja19tb3VzZSA9IFFu aWw7CiAgIGlucHV0X3BlbmRpbmcgPSBmYWxzZTsKICAgaW50ZXJydXB0X2lucHV0X2Jsb2Nr ZWQgPSAwOwogICBwZW5kaW5nX3NpZ25hbHMgPSBmYWxzZTsKQEAgLTExMjk3LDcgKzExMjk0 LDcgQEAgc3ltc19vZl9rZXlib2FyZCAodm9pZCkKICAgZGVmc3ViciAoJlNyZWFkX2tleV9z ZXF1ZW5jZSk7CiAgIGRlZnN1YnIgKCZTcmVhZF9rZXlfc2VxdWVuY2VfdmVjdG9yKTsKICAg ZGVmc3ViciAoJlNyZWN1cnNpdmVfZWRpdCk7Ci0gIGRlZnN1YnIgKCZTdHJhY2tfbW91c2Up OworICBkZWZzdWJyICgmU2ludGVybmFsX3RyYWNrX21vdXNlKTsKICAgZGVmc3ViciAoJlNp bnB1dF9wZW5kaW5nX3ApOwogICBkZWZzdWJyICgmU3JlY2VudF9rZXlzKTsKICAgZGVmc3Vi ciAoJlN0aGlzX2NvbW1hbmRfa2V5cyk7CkBAIC0xMTY0Miw4ICsxMTYzOSwxNSBAQCBhbmQg dGhlIG1pbm9yIG1vZGUgbWFwcyByZWdhcmRsZXNzIG9mIGBvdmVycmlkaW5nLWxvY2FsLW1h cCcuICAqLyk7CiAJICAgICAgIGRvYzogLyogS2V5bWFwIGRlZmluaW5nIGJpbmRpbmdzIGZv ciBzcGVjaWFsIGV2ZW50cyB0byBleGVjdXRlIGF0IGxvdyBsZXZlbC4gICovKTsKICAgVnNw ZWNpYWxfZXZlbnRfbWFwID0gbGlzdDEgKFFrZXltYXApOwogCi0gIERFRlZBUl9MSVNQICgi dHJhY2stbW91c2UiLCBkb19tb3VzZV90cmFja2luZywKLQkgICAgICAgZG9jOiAvKiBOb24t bmlsIG1lYW5zIGdlbmVyYXRlIG1vdGlvbiBldmVudHMgZm9yIG1vdXNlIG1vdGlvbi4gICov KTsKKyAgREVGVkFSX0xJU1AgKCJ0cmFjay1tb3VzZSIsIHRyYWNrX21vdXNlLAorCSAgICAg ICBkb2M6IC8qIE5vbi1uaWwgbWVhbnMgZ2VuZXJhdGUgbW90aW9uIGV2ZW50cyBmb3IgbW91 c2UgbW90aW9uLgorVGhlIHNlcGVjaWFsIHZhbHVlcyAnZHJhZ2dpbmcnIGFuZCAnZHJvcHBp bmcnIGFzc2VydCB0aGF0IHRoZSBtb3VlCitjdXJzb3IgcmV0YWlucyBpdHMgYXBwZWFyYW5j ZSBkdXJpbmcgbW91c2UgbW90aW9uLiAgQW55IG5vbi1uaWwgdmFsdWUKK2J1dCAnZHJvcHBp bmcnIGFzc2VydHMgdGhhdCBtb3Rpb24gZXZlbnRzIGFsd2F5cyByZWxhdGUgdG8gdGhlIGZy YW1lCit3aGVyZSB0aGUgdGhlIG1vdXNlIG1vdmVtZW50IHN0YXJ0ZWQuICBUaGUgdmFsdWUg J2Ryb3BwaW5nJyBhc3NlcnRzCit0aGF0IG1vdGlvbiBldmVudHMgcmVsYXRlIHRvIHRoZSBm cmFtZSB3aGVyZSB0aGUgbW91c2UgY3Vyc29yIGlzIHNlZW4KK3doZW4gZ2VuZXJhdGluZyB0 aGUgZXZlbnQuICBJZiB0aGVyZSdzIG5vIHN1Y2ggZnJhbWUsIHN1Y2ggbW90aW9uCitldmVu dHMgcmVsYXRlIHRvIHRoZSBmcmFtZSB3aGVyZSB0aGUgbW91c2UgbW92ZW1lbnQgc3RhcnRl ZC4gICovKTsKIAogICBERUZWQVJfS0JPQVJEICgic3lzdGVtLWtleS1hbGlzdCIsIFZzeXN0 ZW1fa2V5X2FsaXN0LAogCQkgZG9jOiAvKiBBbGlzdCBvZiBzeXN0ZW0tc3BlY2lmaWMgWCB3 aW5kb3dzIGtleSBzeW1ib2xzLgpkaWZmIC0tZ2l0IGEvc3JjL25zdGVybS5tIGIvc3JjL25z dGVybS5tCmluZGV4IDAyMzMxODI2ZDkuLjc1YmY4NTYxN2IgMTAwNjQ0Ci0tLSBhL3NyYy9u c3Rlcm0ubQorKysgYi9zcmMvbnN0ZXJtLm0KQEAgLTI0ODAsNyArMjQ4MCwxMSBAQCBzbyBz b21lIGtleSBwcmVzc2VzIChUQUIpIGFyZSBzd2FsbG93ZWQgYnkgdGhlIHN5c3RlbS4gICov CiAgICAgICBYRlJBTUUgKGZyYW1lKS0+bW91c2VfbW92ZWQgPSAwOwogCiAgIGRweWluZm8t Pmxhc3RfbW91c2Vfc2Nyb2xsX2JhciA9IG5pbDsKKyAgZiA9IGRweWluZm8tPm5zX2ZvY3Vz X2ZyYW1lID8gZHB5aW5mby0+bnNfZm9jdXNfZnJhbWUgOiBTRUxFQ1RFRF9GUkFNRSAoKTsK ICAgaWYgKGRweWluZm8tPmxhc3RfbW91c2VfZnJhbWUKKyAgICAgIC8qIFdoaWxlIGRyb3Bw aW5nIHVzZSB0aGUgbGFzdCBtb3VzZSBmcmFtZSBvbmx5IGlmIHRoZXJlIGlzIG5vCisJIGN1 cnJlbnRseSBmb2N1c2VkIGZyYW1lLiAgKi8KKyAgICAgICYmICghRVEgKHRyYWNrX21vdXNl LCBRZHJvcHBpbmcpIHx8ICFmKQogICAgICAgJiYgRlJBTUVfTElWRV9QIChkcHlpbmZvLT5s YXN0X21vdXNlX2ZyYW1lKSkKICAgICBmID0gZHB5aW5mby0+bGFzdF9tb3VzZV9mcmFtZTsK ICAgZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlcm0uYyBiL3NyYy90ZXJtLmMKaW5kZXggYjA1 OGQ4YmRhZC4uYTg4ZDQ3ZjkyMyAxMDA2NDQKLS0tIGEvc3JjL3Rlcm0uYworKysgYi9zcmMv dGVybS5jCkBAIC0zMDMzLDE4ICszMDMzLDE4IEBAIHJlYWRfbWVudV9pbnB1dCAoc3RydWN0 IGZyYW1lICpzZiwgaW50ICp4LCBpbnQgKnksIGludCBtaW5feSwgaW50IG1heF95LAogICAg ICAgYm9vbCB1c2FibGVfaW5wdXQgPSAxOwogICAgICAgbWlfcmVzdWx0IHN0ID0gTUlfQ09O VElOVUU7CiAgICAgICBzdHJ1Y3QgdHR5X2Rpc3BsYXlfaW5mbyAqdHR5ID0gRlJBTUVfVFRZ IChzZik7Ci0gICAgICBMaXNwX09iamVjdCBzYXZlZF9tb3VzZV90cmFja2luZyA9IGRvX21v dXNlX3RyYWNraW5nOworICAgICAgTGlzcF9PYmplY3Qgb2xkX3RyYWNrX21vdXNlID0gdHJh Y2tfbW91c2U7CiAKICAgICAgIC8qIFNpZ25hbCB0aGUga2V5Ym9hcmQgcmVhZGluZyByb3V0 aW5lcyB3ZSBhcmUgZGlzcGxheWluZyBhIG1lbnUKIAkgb24gdGhpcyB0ZXJtaW5hbC4gICov CiAgICAgICB0dHktPnNob3dpbmdfbWVudSA9IDE7CiAgICAgICAvKiBXZSB3YW50IG1vdXNl IG1vdmVtZW50cyBiZSByZXBvcnRlZCBieSByZWFkX21lbnVfY29tbWFuZC4gICovCi0gICAg ICBkb19tb3VzZV90cmFja2luZyA9IFF0OworICAgICAgdHJhY2tfbW91c2UgPSBRdDsKICAg ICAgIGRvIHsKIAljbWQgPSByZWFkX21lbnVfY29tbWFuZCAoKTsKICAgICAgIH0gd2hpbGUg KE5JTFAgKGNtZCkpOwogICAgICAgdHR5LT5zaG93aW5nX21lbnUgPSAwOwotICAgICAgZG9f bW91c2VfdHJhY2tpbmcgPSBzYXZlZF9tb3VzZV90cmFja2luZzsKKyAgICAgIHRyYWNrX21v dXNlID0gb2xkX3RyYWNrX21vdXNlOwogCiAgICAgICBpZiAoRVEgKGNtZCwgUXQpIHx8IEVR IChjbWQsIFF0dHlfbWVudV9leGl0KQogCSAgLyogSWYgc29tZSBpbnB1dCBzd2l0Y2hlZCBm cmFtZXMgdW5kZXIgb3VyIGZlZXQsIGV4aXQgdGhlCmRpZmYgLS1naXQgYS9zcmMvdzMyZm5z LmMgYi9zcmMvdzMyZm5zLmMKaW5kZXggYWNkOWM4MDUyOC4uYTJhODhiMjU4OCAxMDA2NDQK LS0tIGEvc3JjL3czMmZucy5jCisrKyBiL3NyYy93MzJmbnMuYwpAQCAtNDU4Niw3ICs0NTg2 LDggQEAgdzMyX3duZF9wcm9jIChIV05EIGh3bmQsIFVJTlQgbXNnLCBXUEFSQU0gd1BhcmFt LCBMUEFSQU0gbFBhcmFtKQogCWlmIChidXR0b25fc3RhdGUgJiB0aGlzKQogCSAgcmV0dXJu IDA7CiAKLQlpZiAoYnV0dG9uX3N0YXRlID09IDApCisJLyogRG9uJ3QgY2FwdHVyZSBtb3Vz ZSB3aGVuIGRyb3BwaW5nLiAgKi8KKwlpZiAoYnV0dG9uX3N0YXRlID09IDAgJiYgIUVRICh0 cmFja19tb3VzZSwgUWRyb3BwaW5nKSkKIAkgIFNldENhcHR1cmUgKGh3bmQpOwogCiAJYnV0 dG9uX3N0YXRlIHw9IHRoaXM7CkBAIC00NzA3LDggKzQ3MDgsMTEgQEAgdzMyX3duZF9wcm9j IChIV05EIGh3bmQsIFVJTlQgbXNnLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQog CiAJaWYgKHBhcnNlX2J1dHRvbiAobXNnLCBISVdPUkQgKHdQYXJhbSksICZidXR0b24sICZ1 cCkpCiAJICB7Ci0JICAgIGlmICh1cCkgUmVsZWFzZUNhcHR1cmUgKCk7Ci0JICAgIGVsc2Ug U2V0Q2FwdHVyZSAoaHduZCk7CisJICAgIGlmICh1cCkKKwkgICAgICBSZWxlYXNlQ2FwdHVy ZSAoKTsKKwkgICAgLyogRG9uJ3QgY2FwdHVyZSBtb3VzZSB3aGVuIGRyb3BwaW5nLiAgKi8K KwkgICAgZWxzZSBpZiAoIUVRICh0cmFja19tb3VzZSwgUWRyb3BwaW5nKSkKKwkgICAgICBT ZXRDYXB0dXJlIChod25kKTsKIAkgICAgYnV0dG9uID0gKGJ1dHRvbiA9PSAwKSA/IExNT1VT RSA6CiAJICAgICAgKChidXR0b24gPT0gMSkgPyBNTU9VU0UgIDogUk1PVVNFKTsKIAkgICAg aWYgKHVwKQpAQCAtNTM1MSw4ICs1MzU1LDkgQEAgdzMyX3duZF9wcm9jIChIV05EIGh3bmQs IFVJTlQgbXNnLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQogCWVsc2UgaWYgKGJ1 dHRvbl9zdGF0ZSAmIFJNT1VTRSkKIAkgIGZsYWdzIHw9IFRQTV9SSUdIVEJVVFRPTjsKIAot CS8qIFJlbWVtYmVyIHdlIGRpZCBhIFNldENhcHR1cmUgb24gdGhlIGluaXRpYWwgbW91c2Ug ZG93biBldmVudCwKLQkgICBzbyBmb3Igc2FmZXR5LCB3ZSBtYWtlIHN1cmUgdGhlIGNhcHR1 cmUgaXMgY2FuY2VsZWQgbm93LiAgKi8KKwkvKiBXZSBtYXkgaGF2ZSBkb25lIGEgU2V0Q2Fw dHVyZSBvbiB0aGUgaW5pdGlhbCBtb3VzZSBkb3duCisJICAgZXZlbnQsIHNvIGZvciBzYWZl dHksIG1ha2Ugc3VyZSB0aGUgY2FwdHVyZSBpcyBjYW5jZWxlZAorCSAgIG5vdy4gICovCiAJ UmVsZWFzZUNhcHR1cmUgKCk7CiAJYnV0dG9uX3N0YXRlID0gMDsKIApkaWZmIC0tZ2l0IGEv c3JjL3czMnRlcm0uYyBiL3NyYy93MzJ0ZXJtLmMKaW5kZXggYzZlMTc1ZTdlNS4uYWQ5NjI4 N2E0MyAxMDA2NDQKLS0tIGEvc3JjL3czMnRlcm0uYworKysgYi9zcmMvdzMydGVybS5jCkBA IC0zNTI1LDcyICszNTI1LDc4IEBAIHczMl9tb3VzZV9wb3NpdGlvbiAoc3RydWN0IGZyYW1l ICoqZnAsIGludCBpbnNpc3QsIExpc3BfT2JqZWN0ICpiYXJfd2luZG93LAogCiAgICAgICAv KiBOb3cgd2UgaGF2ZSBhIHBvc2l0aW9uIG9uIHRoZSByb290OyBmaW5kIHRoZSBpbm5lcm1v c3Qgd2luZG93CiAJIGNvbnRhaW5pbmcgdGhlIHBvaW50ZXIuICAqLwotICAgICAgewotCS8q IElmIG1vdXNlIHdhcyBncmFiYmVkIG9uIGEgZnJhbWUsIGdpdmUgY29vcmRzIGZvciB0aGF0 Ci0JICAgZnJhbWUgZXZlbiBpZiB0aGUgbW91c2UgaXMgbm93IG91dHNpZGUgaXQuICBPdGhl cndpc2UKLQkgICBjaGVjayBmb3Igd2luZG93IHVuZGVyIG1vdXNlIG9uIG9uZSBvZiBvdXIg ZnJhbWVzLiAgKi8KLQlpZiAoZ3VpX21vdXNlX2dyYWJiZWQgKGRweWluZm8pKQotCSAgZjEg PSBkcHlpbmZvLT5sYXN0X21vdXNlX2ZyYW1lOwotCWVsc2UKLQkgIHsKLQkgICAgSFdORCB3 ZnAgPSBXaW5kb3dGcm9tUG9pbnQgKHB0KTsKIAotCSAgICBpZiAod2ZwKQotCSAgICAgIHsK LQkJZjEgPSB3MzJfd2luZG93X3RvX2ZyYW1lIChkcHlpbmZvLCB3ZnApOwotCQlpZiAoZjEp Ci0JCSAgewotCQkgICAgSFdORCBjd2ZwID0gQ2hpbGRXaW5kb3dGcm9tUG9pbnQgKHdmcCwg cHQpOworICAgICAgLyogSWYgbW91c2Ugd2FzIGdyYWJiZWQgb24gYSBmcmFtZSBhbmQgd2Ug YXJlIG5vdCBkcm9wcGluZywKKwkgZ2l2ZSBjb29yZHMgZm9yIHRoYXQgZnJhbWUgZXZlbiBp ZiB0aGUgbW91c2UgaXMgbm93IG91dHNpZGUKKwkgaXQuICBPdGhlcndpc2UgY2hlY2sgZm9y IHdpbmRvdyB1bmRlciBtb3VzZSBvbiBvbmUgb2Ygb3VyCisJIGZyYW1lcy4gICovCisgICAg ICBpZiAoZ3VpX21vdXNlX2dyYWJiZWQgKGRweWluZm8pICYmICFFUSAodHJhY2tfbW91c2Us IFFkcm9wcGluZykpCisJZjEgPSBkcHlpbmZvLT5sYXN0X21vdXNlX2ZyYW1lOworICAgICAg ZWxzZQorCXsKKwkgIEhXTkQgd2ZwID0gV2luZG93RnJvbVBvaW50IChwdCk7CiAKLQkJICAg IGlmIChjd2ZwKQotCQkgICAgICB7Ci0JCQlzdHJ1Y3QgZnJhbWUgKmYyID0gdzMyX3dpbmRv d190b19mcmFtZSAoZHB5aW5mbywgY3dmcCk7CisJICBpZiAod2ZwKQorCSAgICB7CisJICAg ICAgZjEgPSB3MzJfd2luZG93X3RvX2ZyYW1lIChkcHlpbmZvLCB3ZnApOworCSAgICAgIGlm IChmMSkKKwkJeworCQkgIEhXTkQgY3dmcCA9IENoaWxkV2luZG93RnJvbVBvaW50ICh3ZnAs IHB0KTsKIAotCQkJLyogSWYgYSBjaGlsZCB3aW5kb3cgd2FzIGZvdW5kLCBtYWtlIHN1cmUg dGhhdCBpdHMKLQkJCSAgIGZyYW1lIGlzIGEgY2hpbGQgZnJhbWUgKEJ1ZyMyNjYxNSwgbWF5 YmUpLiAgKi8KLQkJCWlmIChmMiAmJiBGUkFNRV9QQVJFTlRfRlJBTUUgKGYyKSkKLQkJCSAg ZjEgPSBmMjsKLQkJICAgICAgfQotCQkgIH0KLQkgICAgICB9Ci0JICB9CisJCSAgaWYgKGN3 ZnApCisJCSAgICB7CisJCSAgICAgIHN0cnVjdCBmcmFtZSAqZjIgPSB3MzJfd2luZG93X3Rv X2ZyYW1lIChkcHlpbmZvLCBjd2ZwKTsKIAotCS8qIElmIG5vdCwgaXMgaXQgb25lIG9mIG91 ciBzY3JvbGwgYmFycz8gICovCi0JaWYgKCEgZjEpCi0JICB7Ci0JICAgIHN0cnVjdCBzY3Jv bGxfYmFyICpiYXIKLSAgICAgICAgICAgICAgPSB3MzJfd2luZG93X3RvX3Njcm9sbF9iYXIg KFdpbmRvd0Zyb21Qb2ludCAocHQpLCAyKTsKKwkJICAgICAgLyogSWYgYSBjaGlsZCB3aW5k b3cgd2FzIGZvdW5kLCBtYWtlIHN1cmUgdGhhdCBpdHMKKwkJCSBmcmFtZSBpcyBhIGNoaWxk IGZyYW1lIChCdWcjMjY2MTUsIG1heWJlKS4gICovCisJCSAgICAgIGlmIChmMiAmJiBGUkFN RV9QQVJFTlRfRlJBTUUgKGYyKSkKKwkJCWYxID0gZjI7CisJCSAgICB9CisJCX0KKwkgICAg fQorCX0KIAotCSAgICBpZiAoYmFyKQotCSAgICAgIGYxID0gWEZSQU1FIChXSU5ET1dfRlJB TUUgKFhXSU5ET1cgKGJhci0+d2luZG93KSkpOwotCSAgfQorICAgICAgaWYgKCFmMSB8fCBG UkFNRV9UT09MVElQX1AgKGYxKSkKKwkvKiBEb24ndCB1c2UgYSB0b29sdGlwIGZyYW1lLiAg Ki8KKwlmMSA9ICgoRVEgKHRyYWNrX21vdXNlLCBRZHJvcHBpbmcpICYmIGd1aV9tb3VzZV9n cmFiYmVkIChkcHlpbmZvKSkKKwkgICAgICA/IGRweWluZm8tPmxhc3RfbW91c2VfZnJhbWUK KwkgICAgICA6IE5VTEwpOwogCi0JaWYgKGYxID09IDAgJiYgaW5zaXN0ID4gMCkKLQkgIGYx ID0gU0VMRUNURURfRlJBTUUgKCk7CisgICAgICAvKiBJZiBub3QsIGlzIGl0IG9uZSBvZiBv dXIgc2Nyb2xsIGJhcnM/ICAqLworICAgICAgaWYgKCFmMSkKKwl7CisJICBzdHJ1Y3Qgc2Ny b2xsX2JhciAqYmFyCisJICAgID0gdzMyX3dpbmRvd190b19zY3JvbGxfYmFyIChXaW5kb3dG cm9tUG9pbnQgKHB0KSwgMik7CiAKLQlpZiAoZjEpCi0JICB7Ci0JICAgIC8qIE9rLCB3ZSBm b3VuZCBhIGZyYW1lLiAgU3RvcmUgYWxsIHRoZSB2YWx1ZXMuCi0JICAgICAgIGxhc3RfbW91 c2VfZ2x5cGggaXMgYSByZWN0YW5nbGUgdXNlZCB0byByZWR1Y2UgdGhlCi0JICAgICAgIGdl bmVyYXRpb24gb2YgbW91c2UgZXZlbnRzLiAgVG8gbm90IG1pc3MgYW55IG1vdGlvbgotCSAg ICAgICBldmVudHMsIHdlIG11c3QgZGl2aWRlIHRoZSBmcmFtZSBpbnRvIHJlY3RhbmdsZXMg b2YgdGhlCi0JICAgICAgIHNpemUgb2YgdGhlIHNtYWxsZXN0IGNoYXJhY3RlciB0aGF0IGNv dWxkIGJlIGRpc3BsYXllZAotCSAgICAgICBvbiBpdCwgaS5lLiBpbnRvIHRoZSBzYW1lIHJl Y3RhbmdsZXMgdGhhdCBtYXRyaWNlcyBvbgotCSAgICAgICB0aGUgZnJhbWUgYXJlIGRpdmlk ZWQgaW50by4gICovCi0KLQkgICAgZHB5aW5mbyA9IEZSQU1FX0RJU1BMQVlfSU5GTyAoZjEp OwotCSAgICBTY3JlZW5Ub0NsaWVudCAoRlJBTUVfVzMyX1dJTkRPVyAoZjEpLCAmcHQpOwot CSAgICByZW1lbWJlcl9tb3VzZV9nbHlwaCAoZjEsIHB0LngsIHB0LnksICZkcHlpbmZvLT5s YXN0X21vdXNlX2dseXBoKTsKLQkgICAgZHB5aW5mby0+bGFzdF9tb3VzZV9nbHlwaF9mcmFt ZSA9IGYxOwotCi0JICAgICpiYXJfd2luZG93ID0gUW5pbDsKLQkgICAgKnBhcnQgPSBzY3Jv bGxfYmFyX2Fib3ZlX2hhbmRsZTsKLQkgICAgKmZwID0gZjE7Ci0JICAgIFhTRVRJTlQgKCp4 LCBwdC54KTsKLQkgICAgWFNFVElOVCAoKnksIHB0LnkpOwotCSAgICAqdGltZSA9IGRweWlu Zm8tPmxhc3RfbW91c2VfbW92ZW1lbnRfdGltZTsKLQkgIH0KLSAgICAgIH0KKwkgIGlmIChi YXIpCisJICAgIGYxID0gWEZSQU1FIChXSU5ET1dfRlJBTUUgKFhXSU5ET1cgKGJhci0+d2lu ZG93KSkpOworCX0KKworICAgICAgaWYgKCFmMSAmJiBpbnNpc3QgPiAwKQorCWYxID0gU0VM RUNURURfRlJBTUUgKCk7CisKKyAgICAgIGlmIChmMSkKKwl7CisJICAvKiBPaywgd2UgZm91 bmQgYSBmcmFtZS4gIFN0b3JlIGFsbCB0aGUgdmFsdWVzLgorCSAgICAgbGFzdF9tb3VzZV9n bHlwaCBpcyBhIHJlY3RhbmdsZSB1c2VkIHRvIHJlZHVjZSB0aGUKKwkgICAgIGdlbmVyYXRp b24gb2YgbW91c2UgZXZlbnRzLiAgVG8gbm90IG1pc3MgYW55IG1vdGlvbgorCSAgICAgZXZl bnRzLCB3ZSBtdXN0IGRpdmlkZSB0aGUgZnJhbWUgaW50byByZWN0YW5nbGVzIG9mIHRoZQor CSAgICAgc2l6ZSBvZiB0aGUgc21hbGxlc3QgY2hhcmFjdGVyIHRoYXQgY291bGQgYmUgZGlz cGxheWVkCisJICAgICBvbiBpdCwgaS5lLiBpbnRvIHRoZSBzYW1lIHJlY3RhbmdsZXMgdGhh dCBtYXRyaWNlcyBvbgorCSAgICAgdGhlIGZyYW1lIGFyZSBkaXZpZGVkIGludG8uICAqLwor CisJICBkcHlpbmZvID0gRlJBTUVfRElTUExBWV9JTkZPIChmMSk7CisJICBTY3JlZW5Ub0Ns aWVudCAoRlJBTUVfVzMyX1dJTkRPVyAoZjEpLCAmcHQpOworCSAgcmVtZW1iZXJfbW91c2Vf Z2x5cGggKGYxLCBwdC54LCBwdC55LCAmZHB5aW5mby0+bGFzdF9tb3VzZV9nbHlwaCk7CisJ ICBkcHlpbmZvLT5sYXN0X21vdXNlX2dseXBoX2ZyYW1lID0gZjE7CisKKwkgICpiYXJfd2lu ZG93ID0gUW5pbDsKKwkgICpwYXJ0ID0gc2Nyb2xsX2Jhcl9hYm92ZV9oYW5kbGU7CisJICAq ZnAgPSBmMTsKKwkgIFhTRVRJTlQgKCp4LCBwdC54KTsKKwkgIFhTRVRJTlQgKCp5LCBwdC55 KTsKKwkgICp0aW1lID0gZHB5aW5mby0+bGFzdF9tb3VzZV9tb3ZlbWVudF90aW1lOworCX0K ICAgICB9CiAKICAgdW5ibG9ja19pbnB1dCAoKTsKQEAgLTQ2NjcsNiArNDY3MywzNyBAQCBz dGF0aWMgc2hvcnQgdGVtcF9idWZmZXJbMTAwXTsKIC8qIFRlbXBvcmFyaWx5IHN0b3JlIGxl YWQgYnl0ZSBvZiBEQkNTIGlucHV0IHNlcXVlbmNlcy4gICovCiBzdGF0aWMgY2hhciBkYmNz X2xlYWQgPSAwOwogCisvKioKKyAgbW91c2Vfb3Jfd2Rlc2NfZnJhbWU6IFdoZW4gbm90IGRy b3BwaW5nIGFuZCB0aGUgbW91c2Ugd2FzIGdyYWJiZWQKKyAgZm9yIERQWUlORk8sIHJldHVy biB0aGUgZnJhbWUgd2hlcmUgdGhlIG1vdXNlIHdhcyBzZWVuIGxhc3QuICBJZgorICB0aGVy ZSdzIG5vIHN1Y2ggZnJhbWUsIHJldHVybiB0aGUgZnJhbWUgYWNjb3JkaW5nIHRvIFdERVND LiAgV2hlbgorICBkcm9wcGluZywgcmV0dXJuIHRoZSBmcmFtZSBhY2NvcmRpbmcgdG8gV0RF U0MuICBJZiB0aGVyZSdzIG5vIHN1Y2gKKyAgZnJhbWUgYW5kIHRoZSBtb3VzZSB3YXMgZ3Jh YmJlZCBmb3IgRFBZSU5GTywgcmV0dXJuIHRoZSBmcmFtZSB3aGVyZQorICB0aGUgbW91c2Ug d2FzIHNlZW4gbGFzdC4gIEluIGVpdGhlciBjYXNlLCBuZXZlciByZXR1cm4gYSB0b29sdGlw CisgIGZyYW1lLiAgKi8KK3N0YXRpYyBzdHJ1Y3QgZnJhbWUgKgorbW91c2Vfb3Jfd2Rlc2Nf ZnJhbWUgKHN0cnVjdCB3MzJfZGlzcGxheV9pbmZvICpkcHlpbmZvLCBIV05EIHdkZXNjKQor eworICBzdHJ1Y3QgZnJhbWUgKmxtX2YgPSAoZ3VpX21vdXNlX2dyYWJiZWQgKGRweWluZm8p CisJCQk/IGRweWluZm8tPmxhc3RfbW91c2VfZnJhbWUKKwkJCTogTlVMTCk7CisKKyAgaWYg KGxtX2YgJiYgIUVRICh0cmFja19tb3VzZSwgUWRyb3BwaW5nKSkKKyAgICByZXR1cm4gbG1f ZjsKKyAgZWxzZQorICAgIHsKKyAgICAgIHN0cnVjdCBmcmFtZSAqd19mID0gdzMyX3dpbmRv d190b19mcmFtZSAoZHB5aW5mbywgd2Rlc2MpOworCisgICAgICAvKiBEbyBub3QgcmV0dXJu IGEgdG9vbHRpcCBmcmFtZS4gICovCisgICAgICBpZiAoIXdfZiB8fCBGUkFNRV9UT09MVElQ X1AgKHdfZikpCisJcmV0dXJuIEVRICh0cmFja19tb3VzZSwgUWRyb3BwaW5nKSA/IGxtX2Yg OiBOVUxMOworICAgICAgZWxzZQorCS8qIFdoZW4gZHJvcHBpbmcgaXQgd291bGQgYmUgcHJv YmFibHkgbmljZSB0byByYWlzZSB3X2YKKwkgICBoZXJlLiAgKi8KKwlyZXR1cm4gd19mOwor ICAgIH0KK30KKwogLyogUmVhZCBldmVudHMgY29taW5nIGZyb20gdGhlIFczMiBzaGVsbC4K ICAgIFRoaXMgcm91dGluZSBpcyBjYWxsZWQgYnkgdGhlIFNJR0lPIGhhbmRsZXIuCiAgICBX ZSByZXR1cm4gYXMgc29vbiBhcyB0aGVyZSBhcmUgbm8gbW9yZSBldmVudHMgdG8gYmUgcmVh ZC4KQEAgLTQ5NDAsMTUgKzQ5NzcsMTMgQEAgdzMyX3JlYWRfc29ja2V0IChzdHJ1Y3QgdGVy bWluYWwgKnRlcm1pbmFsLAogICAgICAgICAgIHByZXZpb3VzX2hlbHBfZWNob19zdHJpbmcg PSBoZWxwX2VjaG9fc3RyaW5nOwogCSAgaGVscF9lY2hvX3N0cmluZyA9IFFuaWw7CiAKLQkg IGYgPSAoZ3VpX21vdXNlX2dyYWJiZWQgKGRweWluZm8pID8gZHB5aW5mby0+bGFzdF9tb3Vz ZV9mcmFtZQotCSAgICAgICA6IHczMl93aW5kb3dfdG9fZnJhbWUgKGRweWluZm8sIG1zZy5t c2cuaHduZCkpOwotCiAJICBpZiAoaGxpbmZvLT5tb3VzZV9mYWNlX2hpZGRlbikKIAkgICAg ewogCSAgICAgIGhsaW5mby0+bW91c2VfZmFjZV9oaWRkZW4gPSBmYWxzZTsKIAkgICAgICBj bGVhcl9tb3VzZV9mYWNlIChobGluZm8pOwogCSAgICB9CiAKKwkgIGYgPSBtb3VzZV9vcl93 ZGVzY19mcmFtZSAoZHB5aW5mbywgbXNnLm1zZy5od25kKTsKIAkgIGlmIChmKQogCSAgICB7 CiAJICAgICAgLyogTWF5YmUgZ2VuZXJhdGUgU0VMRUNUX1dJTkRPV19FVkVOVHMgZm9yCkBA IC01MDIwLDkgKzUwNTUsNyBAQCB3MzJfcmVhZF9zb2NrZXQgKHN0cnVjdCB0ZXJtaW5hbCAq dGVybWluYWwsCiAJICAgIGludCBidXR0b24gPSAwOwogCSAgICBpbnQgdXAgPSAwOwogCi0J ICAgIGYgPSAoZ3VpX21vdXNlX2dyYWJiZWQgKGRweWluZm8pID8gZHB5aW5mby0+bGFzdF9t b3VzZV9mcmFtZQotCQkgOiB3MzJfd2luZG93X3RvX2ZyYW1lIChkcHlpbmZvLCBtc2cubXNn Lmh3bmQpKTsKLQorCSAgICBmID0gbW91c2Vfb3Jfd2Rlc2NfZnJhbWUgKGRweWluZm8sIG1z Zy5tc2cuaHduZCk7CiAJICAgIGlmIChmKQogCSAgICAgIHsKICAgICAgICAgICAgICAgICB3 MzJfY29uc3RydWN0X21vdXNlX2NsaWNrICgmaW5ldiwgJm1zZywgZik7CkBAIC01MDgxLDkg KzUxMTQsNyBAQCB3MzJfcmVhZF9zb2NrZXQgKHN0cnVjdCB0ZXJtaW5hbCAqdGVybWluYWws CiAJY2FzZSBXTV9NT1VTRVdIRUVMOgogICAgICAgICBjYXNlIFdNX01PVVNFSFdIRUVMOgog CSAgewotCSAgICBmID0gKGd1aV9tb3VzZV9ncmFiYmVkIChkcHlpbmZvKSA/IGRweWluZm8t Pmxhc3RfbW91c2VfZnJhbWUKLQkJIDogdzMyX3dpbmRvd190b19mcmFtZSAoZHB5aW5mbywg bXNnLm1zZy5od25kKSk7Ci0KKwkgICAgZiA9IG1vdXNlX29yX3dkZXNjX2ZyYW1lIChkcHlp bmZvLCBtc2cubXNnLmh3bmQpOwogCSAgICBpZiAoZikKIAkgICAgICB7CiAJCWlmICghZHB5 aW5mby0+dzMyX2ZvY3VzX2ZyYW1lCkBAIC01NDM5LDYgKzU0NzAsNyBAQCB3MzJfcmVhZF9z b2NrZXQgKHN0cnVjdCB0ZXJtaW5hbCAqdGVybWluYWwsCiAJICAgICAgaWYgKGFueV9oZWxw X2V2ZW50X3ApCiAJCWRvX2hlbHAgPSAtMTsKIAkgICAgfQorCiAJICBicmVhazsKIAogCWNh c2UgV01fU0VURk9DVVM6CmRpZmYgLS1naXQgYS9zcmMveGRpc3AuYyBiL3NyYy94ZGlzcC5j CmluZGV4IDFiYjVmNWUwZjIuLjczMzhkMmI3ZDQgMTAwNjQ0Ci0tLSBhL3NyYy94ZGlzcC5j CisrKyBiL3NyYy94ZGlzcC5jCkBAIC0xNzI4OSw3ICsxNzI4OSw3IEBAIHJlZGlzcGxheV93 aW5kb3cgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBqdXN0X3RoaXNfb25lX3ApCiAJIHRo ZSBtb3VzZSwgcmVzdWx0aW5nIGluIGFuIHVud2FudGVkIG1vdXNlLW1vdmVtZW50IHJhdGhl cgogCSB0aGFuIGEgc2ltcGxlIG1vdXNlLWNsaWNrLiAgKi8KICAgICAgIGlmICghdy0+c3Rh cnRfYXRfbGluZV9iZWcKLQkgICYmIE5JTFAgKGRvX21vdXNlX3RyYWNraW5nKQorCSAgJiYg TklMUCAodHJhY2tfbW91c2UpCiAgICAgICAJICAmJiBDSEFSUE9TIChzdGFydHApID4gQkVH VgogCSAgJiYgQ0hBUlBPUyAoc3RhcnRwKSA+IEJFRyArIGJlZ191bmNoYW5nZWQKIAkgICYm IENIQVJQT1MgKHN0YXJ0cCkgPD0gWiAtIGVuZF91bmNoYW5nZWQKQEAgLTMwMjc5LDcgKzMw Mjc5LDcgQEAgc2hvd19tb3VzZV9mYWNlIChNb3VzZV9ITEluZm8gKmhsaW5mbywgZW51bSBk cmF3X2dseXBoc19mYWNlIGRyYXcpCiAKICNpZmRlZiBIQVZFX1dJTkRPV19TWVNURU0KICAg LyogQ2hhbmdlIHRoZSBtb3VzZSBjdXJzb3IuICAqLwotICBpZiAoRlJBTUVfV0lORE9XX1Ag KGYpICYmIE5JTFAgKGRvX21vdXNlX3RyYWNraW5nKSkKKyAgaWYgKEZSQU1FX1dJTkRPV19Q IChmKSAmJiBOSUxQICh0cmFja19tb3VzZSkpCiAgICAgewogI2lmbmRlZiBIQVZFX0VYVF9U T09MX0JBUgogICAgICAgaWYgKGRyYXcgPT0gRFJBV19OT1JNQUxfVEVYVApAQCAtMzEyMjYs NyArMzEyMjYsNyBAQCBkZWZpbmVfZnJhbWVfY3Vyc29yMSAoc3RydWN0IGZyYW1lICpmLCBF bWFjc19DdXJzb3IgY3Vyc29yLCBMaXNwX09iamVjdCBwb2ludGVyKQogICAgIHJldHVybjsK IAogICAvKiBEbyBub3QgY2hhbmdlIGN1cnNvciBzaGFwZSB3aGlsZSBkcmFnZ2luZyBtb3Vz ZS4gICovCi0gIGlmIChFUSAoZG9fbW91c2VfdHJhY2tpbmcsIFFkcmFnZ2luZykpCisgIGlm IChFUSAodHJhY2tfbW91c2UsIFFkcmFnZ2luZykgfHwgRVEgKHRyYWNrX21vdXNlLCBRZHJv cHBpbmcpKQogICAgIHJldHVybjsKIAogICBpZiAoIU5JTFAgKHBvaW50ZXIpKQpAQCAtMzI5 NTYsNiArMzI5NTYsNyBAQCBiZSBsZXQtYm91bmQgYXJvdW5kIGNvZGUgdGhhdCBuZWVkcyB0 byBkaXNhYmxlIG1lc3NhZ2VzIHRlbXBvcmFyaWx5LiAqLyk7CiAgIC8qIGFsc28gUXRleHQg Ki8KIAogICBERUZTWU0gKFFkcmFnZ2luZywgImRyYWdnaW5nIik7CisgIERFRlNZTSAoUWRy b3BwaW5nLCAiZHJvcHBpbmciKTsKIAogICBERUZTWU0gKFFpbmhpYml0X2ZyZWVfcmVhbGl6 ZWRfZmFjZXMsICJpbmhpYml0LWZyZWUtcmVhbGl6ZWQtZmFjZXMiKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL3h0ZXJtLmMgYi9zcmMveHRlcm0uYwppbmRleCBjOTZhYTc0YTdhLi45N2QxNGY3 ZDQ1IDEwMDY0NAotLS0gYS9zcmMveHRlcm0uYworKysgYi9zcmMveHRlcm0uYwpAQCAtNTE2 NywyMCArNTE2NywxNSBAQCBYVG1vdXNlX3Bvc2l0aW9uIChzdHJ1Y3QgZnJhbWUgKipmcCwg aW50IGluc2lzdCwgTGlzcF9PYmplY3QgKmJhcl93aW5kb3csCiAgICAgICAvKiBGaWd1cmUg b3V0IHdoaWNoIHJvb3Qgd2luZG93IHdlJ3JlIG9uLiAgKi8KICAgICAgIFhRdWVyeVBvaW50 ZXIgKEZSQU1FX1hfRElTUExBWSAoKmZwKSwKIAkJICAgICBEZWZhdWx0Um9vdFdpbmRvdyAo RlJBTUVfWF9ESVNQTEFZICgqZnApKSwKLQogCQkgICAgIC8qIFRoZSByb290IHdpbmRvdyB3 aGljaCBjb250YWlucyB0aGUgcG9pbnRlci4gICovCiAJCSAgICAgJnJvb3QsCi0KIAkJICAg ICAvKiBUcmFzaCB3aGljaCB3ZSBjYW4ndCB0cnVzdCBpZiB0aGUgcG9pbnRlciBpcyBvbgog CQkJYSBkaWZmZXJlbnQgc2NyZWVuLiAgKi8KIAkJICAgICAmZHVtbXlfd2luZG93LAotCiAJ CSAgICAgLyogVGhlIHBvc2l0aW9uIG9uIHRoYXQgcm9vdCB3aW5kb3cuICAqLwogCQkgICAg ICZyb290X3gsICZyb290X3ksCi0KIAkJICAgICAvKiBNb3JlIHRyYXNoIHdlIGNhbid0IHRy dXN0LiAgKi8KIAkJICAgICAmZHVtbXksICZkdW1teSwKLQogCQkgICAgIC8qIE1vZGlmaWVy IGtleXMgYW5kIHBvaW50ZXIgYnV0dG9ucywgYWJvdXQgd2hpY2gKIAkJCXdlIGRvbid0IGNh cmUuICAqLwogCQkgICAgICh1bnNpZ25lZCBpbnQgKikgJmR1bW15KTsKQEAgLTUyMDMsMjEg KzUxOTgsMTcgQEAgWFRtb3VzZV9wb3NpdGlvbiAoc3RydWN0IGZyYW1lICoqZnAsIGludCBp bnNpc3QsIExpc3BfT2JqZWN0ICpiYXJfd2luZG93LAogCiAJeF9jYXRjaF9lcnJvcnMgKEZS QU1FX1hfRElTUExBWSAoKmZwKSk7CiAKLQlpZiAoZ3VpX21vdXNlX2dyYWJiZWQgKGRweWlu Zm8pKQorCWlmIChndWlfbW91c2VfZ3JhYmJlZCAoZHB5aW5mbykgJiYgIUVRICh0cmFja19t b3VzZSwgUWRyb3BwaW5nKSkKIAkgIHsKIAkgICAgLyogSWYgbW91c2Ugd2FzIGdyYWJiZWQg b24gYSBmcmFtZSwgZ2l2ZSBjb29yZHMgZm9yIHRoYXQgZnJhbWUKIAkgICAgICAgZXZlbiBp ZiB0aGUgbW91c2UgaXMgbm93IG91dHNpZGUgaXQuICAqLwogCSAgICBYVHJhbnNsYXRlQ29v cmRpbmF0ZXMgKEZSQU1FX1hfRElTUExBWSAoKmZwKSwKLQogCQkJCSAgIC8qIEZyb20td2lu ZG93LiAgKi8KIAkJCQkgICByb290LAotCiAJCQkJICAgLyogVG8td2luZG93LiAgKi8KIAkJ CQkgICBGUkFNRV9YX1dJTkRPVyAoZHB5aW5mby0+bGFzdF9tb3VzZV9mcmFtZSksCi0KIAkJ CQkgICAvKiBGcm9tLXBvc2l0aW9uLCB0by1wb3NpdGlvbi4gICovCiAJCQkJICAgcm9vdF94 LCByb290X3ksICZ3aW5feCwgJndpbl95LAotCiAJCQkJICAgLyogQ2hpbGQgb2Ygd2luLiAg Ki8KIAkJCQkgICAmY2hpbGQpOwogCSAgICBmMSA9IGRweWluZm8tPmxhc3RfbW91c2VfZnJh bWU7CkBAIC01MjI3LDE2ICs1MjE4LDEyIEBAIFhUbW91c2VfcG9zaXRpb24gKHN0cnVjdCBm cmFtZSAqKmZwLCBpbnQgaW5zaXN0LCBMaXNwX09iamVjdCAqYmFyX3dpbmRvdywKIAkgICAg d2hpbGUgKHRydWUpCiAJICAgICAgewogCQlYVHJhbnNsYXRlQ29vcmRpbmF0ZXMgKEZSQU1F X1hfRElTUExBWSAoKmZwKSwKLQogCQkJCSAgICAgICAvKiBGcm9tLXdpbmRvdywgdG8td2lu ZG93LiAgKi8KIAkJCQkgICAgICAgcm9vdCwgd2luLAotCiAJCQkJICAgICAgIC8qIEZyb20t cG9zaXRpb24sIHRvLXBvc2l0aW9uLiAgKi8KIAkJCQkgICAgICAgcm9vdF94LCByb290X3ks ICZ3aW5feCwgJndpbl95LAotCiAJCQkJICAgICAgIC8qIENoaWxkIG9mIHdpbi4gICovCiAJ CQkJICAgICAgICZjaGlsZCk7Ci0KIAkJaWYgKGNoaWxkID09IE5vbmUgfHwgY2hpbGQgPT0g d2luKQogCQkgIHsKICNpZmRlZiBVU0VfR1RLCkBAIC01Mjk5LDEzICs1Mjg2LDM1IEBAIFhU bW91c2VfcG9zaXRpb24gKHN0cnVjdCBmcmFtZSAqKmZwLCBpbnQgaW5zaXN0LCBMaXNwX09i amVjdCAqYmFyX3dpbmRvdywKICNlbmRpZiAvKiBVU0VfWF9UT09MS0lUICovCiAJICB9CiAK KwlpZiAoKCFmMSB8fCBGUkFNRV9UT09MVElQX1AgKGYxKSkKKwkgICAgJiYgRVEgKHRyYWNr X21vdXNlLCBRZHJvcHBpbmcpCisJICAgICYmIGd1aV9tb3VzZV9ncmFiYmVkIChkcHlpbmZv KSkKKwkgIHsKKwkgICAgLyogV2hlbiBkcm9wcGluZyB0aGVuIGlmIHdlIGRpZG4ndCBnZXQg YSBmcmFtZSBvciBvbmx5IGEKKwkgICAgICAgdG9vbHRpcCBmcmFtZSBhbmQgdGhlIG1vdXNl IHdhcyBncmFiYmVkIG9uIGEgZnJhbWUsCisJICAgICAgIGdpdmUgY29vcmRzIGZvciB0aGF0 IGZyYW1lIGV2ZW4gaWYgdGhlIG1vdXNlIGlzIG5vdworCSAgICAgICBvdXRzaWRlIGl0LiAg Ki8KKwkgICAgWFRyYW5zbGF0ZUNvb3JkaW5hdGVzIChGUkFNRV9YX0RJU1BMQVkgKCpmcCks CisJCQkJICAgLyogRnJvbS13aW5kb3cuICAqLworCQkJCSAgIHJvb3QsCisJCQkJICAgLyog VG8td2luZG93LiAgKi8KKwkJCQkgICBGUkFNRV9YX1dJTkRPVyAoZHB5aW5mby0+bGFzdF9t b3VzZV9mcmFtZSksCisJCQkJICAgLyogRnJvbS1wb3NpdGlvbiwgdG8tcG9zaXRpb24uICAq LworCQkJCSAgIHJvb3RfeCwgcm9vdF95LCAmd2luX3gsICZ3aW5feSwKKwkJCQkgICAvKiBD aGlsZCBvZiB3aW4uICAqLworCQkJCSAgICZjaGlsZCk7CisJICAgIGYxID0gZHB5aW5mby0+ bGFzdF9tb3VzZV9mcmFtZTsKKwkgIH0KKwllbHNlIGlmIChmMSAmJiBGUkFNRV9UT09MVElQ X1AgKGYxKSkKKwkgIGYxID0gTlVMTDsKKwogCWlmICh4X2hhZF9lcnJvcnNfcCAoRlJBTUVf WF9ESVNQTEFZICgqZnApKSkKLQkgIGYxID0gMDsKKwkgIGYxID0gTlVMTDsKIAogCXhfdW5j YXRjaF9lcnJvcnNfYWZ0ZXJfY2hlY2sgKCk7CiAKIAkvKiBJZiBub3QsIGlzIGl0IG9uZSBv ZiBvdXIgc2Nyb2xsIGJhcnM/ICAqLwotCWlmICghIGYxKQorCWlmICghZjEpCiAJICB7CiAJ ICAgIHN0cnVjdCBzY3JvbGxfYmFyICpiYXI7CiAKQEAgLTUzMTksNyArNTMyOCw3IEBAIFhU bW91c2VfcG9zaXRpb24gKHN0cnVjdCBmcmFtZSAqKmZwLCBpbnQgaW5zaXN0LCBMaXNwX09i amVjdCAqYmFyX3dpbmRvdywKIAkgICAgICB9CiAJICB9CiAKLQlpZiAoZjEgPT0gMCAmJiBp bnNpc3QgPiAwKQorCWlmICghZjEgJiYgaW5zaXN0ID4gMCkKIAkgIGYxID0gU0VMRUNURURf RlJBTUUgKCk7CiAKIAlpZiAoZjEpCkBAIC03Nzg4LDYgKzc3OTcsMzcgQEAgZmx1c2hfZGly dHlfYmFja19idWZmZXJzICh2b2lkKQogICB1bmJsb2NrX2lucHV0ICgpOwogfQogCisvKioK KyAgbW91c2Vfb3Jfd2Rlc2NfZnJhbWU6IFdoZW4gbm90IGRyb3BwaW5nIGFuZCB0aGUgbW91 c2Ugd2FzIGdyYWJiZWQKKyAgZm9yIERQWUlORk8sIHJldHVybiB0aGUgZnJhbWUgd2hlcmUg dGhlIG1vdXNlIHdhcyBzZWVuIGxhc3QuICBJZgorICB0aGVyZSdzIG5vIHN1Y2ggZnJhbWUs IHJldHVybiB0aGUgZnJhbWUgYWNjb3JkaW5nIHRvIFdERVNDLiAgV2hlbgorICBkcm9wcGlu ZywgcmV0dXJuIHRoZSBmcmFtZSBhY2NvcmRpbmcgdG8gV0RFU0MuICBJZiB0aGVyZSdzIG5v IHN1Y2gKKyAgZnJhbWUgYW5kIHRoZSBtb3VzZSB3YXMgZ3JhYmJlZCBmb3IgRFBZSU5GTywg cmV0dXJuIHRoZSBmcmFtZSB3aGVyZQorICB0aGUgbW91c2Ugd2FzIHNlZW4gbGFzdC4gIElu IGVpdGhlciBjYXNlLCBuZXZlciByZXR1cm4gYSB0b29sdGlwCisgIGZyYW1lLiAgKi8KK3N0 YXRpYyBzdHJ1Y3QgZnJhbWUgKgorbW91c2Vfb3Jfd2Rlc2NfZnJhbWUgKHN0cnVjdCB4X2Rp c3BsYXlfaW5mbyAqZHB5aW5mbywgaW50IHdkZXNjKQoreworICBzdHJ1Y3QgZnJhbWUgKmxt X2YgPSAoZ3VpX21vdXNlX2dyYWJiZWQgKGRweWluZm8pCisJCQk/IGRweWluZm8tPmxhc3Rf bW91c2VfZnJhbWUKKwkJCTogTlVMTCk7CisKKyAgaWYgKGxtX2YgJiYgIUVRICh0cmFja19t b3VzZSwgUWRyb3BwaW5nKSkKKyAgICByZXR1cm4gbG1fZjsKKyAgZWxzZQorICAgIHsKKyAg ICAgIHN0cnVjdCBmcmFtZSAqd19mID0geF93aW5kb3dfdG9fZnJhbWUgKGRweWluZm8sIHdk ZXNjKTsKKworICAgICAgLyogRG8gbm90IHJldHVybiBhIHRvb2x0aXAgZnJhbWUuICAqLwor ICAgICAgaWYgKCF3X2YgfHwgRlJBTUVfVE9PTFRJUF9QICh3X2YpKQorCXJldHVybiBFUSAo dHJhY2tfbW91c2UsIFFkcm9wcGluZykgPyBsbV9mIDogTlVMTDsKKyAgICAgIGVsc2UKKwkv KiBXaGVuIGRyb3BwaW5nIGl0IHdvdWxkIGJlIHByb2JhYmx5IG5pY2UgdG8gcmFpc2Ugd19m CisJICAgaGVyZS4gICovCisJcmV0dXJuIHdfZjsKKyAgICB9Cit9CisKIC8qIEhhbmRsZXMg dGhlIFhFdmVudCBFVkVOVCBvbiBkaXNwbGF5IERQWUlORk8uCiAKICAgICpGSU5JU0ggaXMg WF9FVkVOVF9HT1RPX09VVCBpZiBjYWxsZXIgc2hvdWxkIHN0b3AgcmVhZGluZyBldmVudHMu CkBAIC04NzIwLDE1ICs4NzYwLDE0IEBAIGhhbmRsZV9vbmVfeGV2ZW50IChzdHJ1Y3QgeF9k aXNwbGF5X2luZm8gKmRweWluZm8sCiAgICAgICAgIHByZXZpb3VzX2hlbHBfZWNob19zdHJp bmcgPSBoZWxwX2VjaG9fc3RyaW5nOwogICAgICAgICBoZWxwX2VjaG9fc3RyaW5nID0gUW5p bDsKIAotCWYgPSAoZ3VpX21vdXNlX2dyYWJiZWQgKGRweWluZm8pID8gZHB5aW5mby0+bGFz dF9tb3VzZV9mcmFtZQotCSAgICAgOiB4X3dpbmRvd190b19mcmFtZSAoZHB5aW5mbywgZXZl bnQtPnhtb3Rpb24ud2luZG93KSk7Ci0KLSAgICAgICAgaWYgKGhsaW5mby0+bW91c2VfZmFj ZV9oaWRkZW4pCisJaWYgKGhsaW5mby0+bW91c2VfZmFjZV9oaWRkZW4pCiAgICAgICAgICAg ewogICAgICAgICAgICAgaGxpbmZvLT5tb3VzZV9mYWNlX2hpZGRlbiA9IGZhbHNlOwogICAg ICAgICAgICAgY2xlYXJfbW91c2VfZmFjZSAoaGxpbmZvKTsKICAgICAgICAgICB9CiAKKwlm ID0gbW91c2Vfb3Jfd2Rlc2NfZnJhbWUgKGRweWluZm8sIGV2ZW50LT54bW90aW9uLndpbmRv dyk7CisKICNpZmRlZiBVU0VfR1RLCiAgICAgICAgIGlmIChmICYmIHhnX2V2ZW50X2lzX2Zv cl9zY3JvbGxiYXIgKGYsIGV2ZW50KSkKICAgICAgICAgICBmID0gMDsKQEAgLTg5NzAsMzMg KzkwMDksMjcgQEAgaGFuZGxlX29uZV94ZXZlbnQgKHN0cnVjdCB4X2Rpc3BsYXlfaW5mbyAq ZHB5aW5mbywKIAlkcHlpbmZvLT5sYXN0X21vdXNlX2dseXBoX2ZyYW1lID0gTlVMTDsKIAl4 X2Rpc3BsYXlfc2V0X2xhc3RfdXNlcl90aW1lIChkcHlpbmZvLCBldmVudC0+eGJ1dHRvbi50 aW1lKTsKIAotCWlmIChndWlfbW91c2VfZ3JhYmJlZCAoZHB5aW5mbykpCi0JICBmID0gZHB5 aW5mby0+bGFzdF9tb3VzZV9mcmFtZTsKLQllbHNlCisJZiA9IG1vdXNlX29yX3dkZXNjX2Zy YW1lIChkcHlpbmZvLCBldmVudC0+eG1vdGlvbi53aW5kb3cpOworCWlmIChmICYmIGV2ZW50 LT54YnV0dG9uLnR5cGUgPT0gQnV0dG9uUHJlc3MKKwkgICAgJiYgIXBvcHVwX2FjdGl2YXRl ZCAoKQorCSAgICAmJiAheF93aW5kb3dfdG9fc2Nyb2xsX2JhciAoZXZlbnQtPnhidXR0b24u ZGlzcGxheSwKKwkJCQkJZXZlbnQtPnhidXR0b24ud2luZG93LCAyKQorCSAgICAmJiAhRlJB TUVfTk9fQUNDRVBUX0ZPQ1VTIChmKSkKIAkgIHsKLQkgICAgZiA9IHhfd2luZG93X3RvX2Zy YW1lIChkcHlpbmZvLCBldmVudC0+eGJ1dHRvbi53aW5kb3cpOworCSAgICAvKiBXaGVuIGNs aWNraW5nIGludG8gYSBjaGlsZCBmcmFtZSBvciB3aGVuIGNsaWNraW5nCisJICAgICAgIGlu dG8gYSBwYXJlbnQgZnJhbWUgd2l0aCB0aGUgY2hpbGQgZnJhbWUgc2VsZWN0ZWQgYW5kCisJ ICAgICAgIGBuby1hY2NlcHQtZm9jdXMnIGlzIG5vdCBzZXQsIHNlbGVjdCB0aGUgY2xpY2tl ZAorCSAgICAgICBmcmFtZS4gICovCisJICAgIHN0cnVjdCBmcmFtZSAqaGYgPSBkcHlpbmZv LT5oaWdobGlnaHRfZnJhbWU7CiAKLQkgICAgaWYgKGYgJiYgZXZlbnQtPnhidXR0b24udHlw ZSA9PSBCdXR0b25QcmVzcwotCQkmJiAhcG9wdXBfYWN0aXZhdGVkICgpCi0JCSYmICF4X3dp bmRvd190b19zY3JvbGxfYmFyIChldmVudC0+eGJ1dHRvbi5kaXNwbGF5LAotCQkJCQkgICAg ZXZlbnQtPnhidXR0b24ud2luZG93LCAyKQotCQkmJiAhRlJBTUVfTk9fQUNDRVBUX0ZPQ1VT IChmKSkKKwkgICAgaWYgKEZSQU1FX1BBUkVOVF9GUkFNRSAoZikgfHwgKGhmICYmIGZyYW1l X2FuY2VzdG9yX3AgKGYsIGhmKSkpCiAJICAgICAgewotCQkvKiBXaGVuIGNsaWNraW5nIGlu dG8gYSBjaGlsZCBmcmFtZSBvciB3aGVuIGNsaWNraW5nCi0JCSAgIGludG8gYSBwYXJlbnQg ZnJhbWUgd2l0aCB0aGUgY2hpbGQgZnJhbWUgc2VsZWN0ZWQgYW5kCi0JCSAgIGBuby1hY2Nl cHQtZm9jdXMnIGlzIG5vdCBzZXQsIHNlbGVjdCB0aGUgY2xpY2tlZAotCQkgICBmcmFtZS4g ICovCi0JCXN0cnVjdCBmcmFtZSAqaGYgPSBkcHlpbmZvLT5oaWdobGlnaHRfZnJhbWU7Ci0K LQkJaWYgKEZSQU1FX1BBUkVOVF9GUkFNRSAoZikgfHwgKGhmICYmIGZyYW1lX2FuY2VzdG9y X3AgKGYsIGhmKSkpCi0JCSAgewotCQkgICAgYmxvY2tfaW5wdXQgKCk7Ci0JCSAgICBYU2V0 SW5wdXRGb2N1cyAoRlJBTUVfWF9ESVNQTEFZIChmKSwgRlJBTUVfT1VURVJfV0lORE9XIChm KSwKLQkJCQkgICAgUmV2ZXJ0VG9QYXJlbnQsIEN1cnJlbnRUaW1lKTsKLQkJICAgIGlmIChG UkFNRV9QQVJFTlRfRlJBTUUgKGYpKQotCQkgICAgICBYUmFpc2VXaW5kb3cgKEZSQU1FX1hf RElTUExBWSAoZiksIEZSQU1FX09VVEVSX1dJTkRPVyAoZikpOwotCQkgICAgdW5ibG9ja19p bnB1dCAoKTsKLQkJICB9CisJCWJsb2NrX2lucHV0ICgpOworCQlYU2V0SW5wdXRGb2N1cyAo RlJBTUVfWF9ESVNQTEFZIChmKSwgRlJBTUVfT1VURVJfV0lORE9XIChmKSwKKwkJCQlSZXZl cnRUb1BhcmVudCwgQ3VycmVudFRpbWUpOworCQlpZiAoRlJBTUVfUEFSRU5UX0ZSQU1FIChm KSkKKwkJICBYUmFpc2VXaW5kb3cgKEZSQU1FX1hfRElTUExBWSAoZiksIEZSQU1FX09VVEVS X1dJTkRPVyAoZikpOworCQl1bmJsb2NrX2lucHV0ICgpOwogCSAgICAgIH0KIAkgIH0KIAoK --------------B7922B75546CE207C9316044--