From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: [David.Ponce@wanadoo.fr: Re: Your Emacs changes] Date: Tue, 21 Jan 2003 13:17:52 -0500 Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: Reply-To: rms@gnu.org NNTP-Posting-Host: main.gmane.org X-Trace: main.gmane.org 1043179049 12561 80.91.224.249 (21 Jan 2003 19:57:29 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Tue, 21 Jan 2003 19:57:29 +0000 (UTC) Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 18b4WW-0003GS-00 for ; Tue, 21 Jan 2003 20:57:28 +0100 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 18b4i1-0006So-00 for ; Tue, 21 Jan 2003 21:09:21 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18b4Su-00062z-00 for emacs-devel@quimby.gnus.org; Tue, 21 Jan 2003 14:53:44 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10.13) id 18b49Q-00080J-00 for emacs-devel@gnu.org; Tue, 21 Jan 2003 14:33:36 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10.13) id 18b3b7-0002vx-00 for emacs-devel@gnu.org; Tue, 21 Jan 2003 13:58:14 -0500 Original-Received: from fencepost.gnu.org ([199.232.76.164]) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18b2y8-0007Ft-00 for emacs-devel@gnu.org; Tue, 21 Jan 2003 13:17:52 -0500 Original-Received: from rms by fencepost.gnu.org with local (Exim 4.10) id 18b2y8-0007ud-00; Tue, 21 Jan 2003 13:17:52 -0500 Original-To: emacs-devel@gnu.org X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1b5 Precedence: list List-Id: Emacs development discussions. List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , Errors-To: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:10953 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:10953 Would whoever is concerned with Windows please install this if it looks correct? ------- Start of forwarded message ------- Date: Mon, 20 Jan 2003 12:15:11 +0100 (MET) From: "David PONCE" To: , "rms" Subject: Re: Your Emacs changes X-Spam-Status: No, hits=0.6 required=5.0 tests=SPAM_PHRASE_00_01 version=2.41 X-Spam-Level: - --delim.6c72 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi, KOBAYASHI Yasuhiro wrote: >>>>>>In >>>>>>=09Richard Stallman wrote: >> >>Your papers for Emacs have been recorded. Could you send me >>the latest version of your changes, and the change log entry for them=3F= > > > I'm glad to accept my contribution. > If following ChangeLog would be not good, please modify it. > > David PONCE, > > Thanks to interest in my patch. It would be enable yours. > Thanks again. Here is my revisited patch from the original version posted by KOBAYASHI Yasuhiro. See message: The main differences are: - - Cursors are loaded only at frame creation in Fx_create_frame instead of each time the cursor change. The Cursor type is actually a cursor handle instead of a resource identifier. I think it is more consistent. - - Cursors are loaded via the new function `w32_load_cursor' that try first to load from application resources (defined in emacs.rc), then from global shared predefined one. Thus it is possible to use cursors specifically built for Emacs ;-) More important that allows to provide a "hand" cursor for Windows 95 and NT for which a predefined one does not exist. I added a sample hand.cur file in the nt/icons directory (the file is attached). The patch includes some minor fixes too. You will find a new change log at end, that includes KOBAYASHI's changes and my ones. Hope it helps. Sincerely, David 2003-01-20 KOBAYASHI Yasuhiro =09* src/w32term.h (struct w32_output): New member hand_cursor. =09(WM_EMACS_SETCURSOR): New message definition. =09* src/w32term.c (note_mode_line_highlight): Delete #if 0 to enable =09function w32_define_cursor. =09(note_mouse_highlight): Initialize, setup cursor accoding to mouse =09position, change member name output_data.x to output_data.w32 and =09add function w32_define_cursor. =09(show_mouse_face): Delete #if 0 to enable function w32_define_cursor =09and change member name output_data.x to output_data.w32. =09(w32_initialize_display_info): Setup =09dpyinfo->vertical_scroll_bar_cursor. =09* src/w32fns.c (Vx_hand_shape): New variable. =09(w32_wnd_proc): Add message entries for WM_SETCURSOR and =09WM_EMACS_SETCURSOR. =09(x-create-frame): Setup Cursor types. 2003-01-20 David Ponce =09 =09* src/w32term.c (w32_encode_char): For DIM=3D1 charset, set =09ccl->reg[2] to -1 before calling ccl_driver. (Sync. with xterm.c =09x_encode_char change by Kenichi Handa on =092002-09-30. =09(w32_draw_relief_rect): Declare all args. =09(w32_define_cursor): New. =09* src/w32fns.c (w32_load_cursor): New function. =09(w32_init_class): Use it. =09(x_put_x_image): Declare all args. =09* nt/emacs.rc (32649): Declare hand cursor resource. =09* nt/icons/hand.cur: Hand cursor. - --delim.6c72 Content-Type: application/octet-stream; name="hand.cur" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="hand.cur" AAACAAEAICAAAAYAAAAwAQAAFgAAACgAAAAgAAAAQAAAAAEAAQAAAAAAAAEAAAAAAAAAAAAA AAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAf4AAAH+AAAD/wAAA/8AAAf/AAAH/4AAD/+AAAv/gAAb/4AAO/+AADP9gAADbYAA A20AAANsAAADYAAAAwAAAAMAAAADAAAAAwAAAAMAAAAAAAAA//////////////////////// //////////////////////////////wA///8AP///AD///gAf//4AH//8AB///AAP//gAD// 4AA//8AAP/+AAD//gAA//4gAP//4AH//+AD///gD///4H///+H////h////4f///+H////z/ //8NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tN2QzMjJjMWNmMDNjYS0tDQo= - --delim.6c72 Content-Type: text/x-patch; name="w32cursor.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="w32cursor.patch" PyBudC9pY29ucy9oYW5kLmN1cgpJbmRleDogbnQvZW1hY3MucmMKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS Q1MgZmlsZTogL2N2c3Jvb3QvZW1hY3MvZW1hY3MvbnQvZW1hY3MucmMsdgpyZXRyaWV2aW5n IHJldmlzaW9uIDEuNgpkaWZmIC1jIC1yMS42IGVtYWNzLnJjCioqKiBudC9lbWFjcy5yYwkz IFNlcCAyMDAyIDA3OjE0OjQyIC0wMDAwCTEuNgotLS0gbnQvZW1hY3MucmMJMjAgSmFuIDIw MDMgMTA6MzI6NDkgLTAwMDAKKioqKioqKioqKioqKioqCioqKiAxLDQgKioqKgohIEVtYWNz IElDT04gICAgaWNvbnNcZ251MmEzMnQuaWNvCiAgCiAgI2lmbmRlZiBWU19WRVJTSU9OX0lO Rk8KICAjZGVmaW5lIFZTX1ZFUlNJT05fSU5GTyAxCi0tLSAxLDUgLS0tLQohIEVtYWNzIElD T04gICBpY29uc1xnbnUyYTMydC5pY28KISAzMjY0OSBDVVJTT1IgaWNvbnNcaGFuZC5jdXIK ICAKICAjaWZuZGVmIFZTX1ZFUlNJT05fSU5GTwogICNkZWZpbmUgVlNfVkVSU0lPTl9JTkZP IDEKSW5kZXg6IHNyYy93MzJmbnMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9v dC9lbWFjcy9lbWFjcy9zcmMvdzMyZm5zLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTk2 CmRpZmYgLWMgLXIxLjE5NiB3MzJmbnMuYwoqKiogc3JjL3czMmZucy5jCTYgSmFuIDIwMDMg MTU6MjE6MDggLTAwMDAJMS4xOTYKLS0tIHNyYy93MzJmbnMuYwkyMCBKYW4gMjAwMyAxMDoz Mjo1MSAtMDAwMAoqKioqKioqKioqKioqKioKKioqIDE1NSwxNjEgKioqKgogICAgIG92ZXIg dGV4dCBvciBpbiB0aGUgbW9kZWxpbmUuICAqLwogIAogIExpc3BfT2JqZWN0IFZ4X3BvaW50 ZXJfc2hhcGUsIFZ4X25vbnRleHRfcG9pbnRlcl9zaGFwZSwgVnhfbW9kZV9wb2ludGVyX3No YXBlOwohIExpc3BfT2JqZWN0IFZ4X2hvdXJnbGFzc19wb2ludGVyX3NoYXBlLCBWeF93aW5k b3dfaG9yaXpvbnRhbF9kcmFnX3NoYXBlOwogIAogIC8qIFRoZSBzaGFwZSB3aGVuIG92ZXIg bW91c2Utc2Vuc2l0aXZlIHRleHQuICAqLwogIAotLS0gMTU1LDE2MSAtLS0tCiAgICAgb3Zl ciB0ZXh0IG9yIGluIHRoZSBtb2RlbGluZS4gICovCiAgCiAgTGlzcF9PYmplY3QgVnhfcG9p bnRlcl9zaGFwZSwgVnhfbm9udGV4dF9wb2ludGVyX3NoYXBlLCBWeF9tb2RlX3BvaW50ZXJf c2hhcGU7CiEgTGlzcF9PYmplY3QgVnhfaG91cmdsYXNzX3BvaW50ZXJfc2hhcGUsIFZ4X3dp bmRvd19ob3Jpem9udGFsX2RyYWdfc2hhcGUsIFZ4X2hhbmRfc2hhcGU7CiAgCiAgLyogVGhl IHNoYXBlIHdoZW4gb3ZlciBtb3VzZS1zZW5zaXRpdmUgdGV4dC4gICovCiAgCioqKioqKioq KioqKioqKgoqKiogMjE5NiwyMjAxICoqKioKLS0tIDIxOTYsMjIwMiAtLS0tCiAgICBlbHNl CiAgICAgIGhvcml6b250YWxfZHJhZ19jdXJzb3IKICAgICAgICA9IFhDcmVhdGVGb250Q3Vy c29yIChGUkFNRV9YX0RJU1BMQVkgKGYpLCBYQ19zYl9oX2RvdWJsZV9hcnJvdyk7CisgICAv KiBUT0RPOiBoYW5kX2N1cnNvciAqLwogIAogICAgLyogQ2hlY2sgYW5kIHJlcG9ydCBlcnJv cnMgd2l0aCB0aGUgYWJvdmUgY2FsbHMuICAqLwogICAgeF9jaGVja19lcnJvcnMgKEZSQU1F X1czMl9ESVNQTEFZIChmKSwgImNhbid0IHNldCBjdXJzb3Igc2hhcGU6ICVzIik7CioqKioq KioqKioqKioqKgoqKiogMjIyNCwyMjI5ICoqKioKLS0tIDIyMjUsMjIzMSAtLS0tCiAgICAg ICAgICAgICAgICAgICAgICAmZm9yZV9jb2xvciwgJmJhY2tfY29sb3IpOwogICAgICBYUmVj b2xvckN1cnNvciAoRlJBTUVfVzMyX0RJU1BMQVkgKGYpLCBob3VyZ2xhc3NfY3Vyc29yLAog ICAgICAgICAgICAgICAgICAgICAgJmZvcmVfY29sb3IsICZiYWNrX2NvbG9yKTsKKyAgICAg LyogVE9ETzogaGFuZF9jdXJzb3IgKi8KICAgIH0KICAKICAgIGlmIChGUkFNRV9XMzJfV0lO RE9XIChmKSAhPSAwKQoqKioqKioqKioqKioqKioKKioqIDIyNTIsMjI1NyAqKioqCi0tLSAy MjU0LDIyNjAgLS0tLQogICAgICAgICYmIGYtPm91dHB1dF9kYXRhLnczMi0+Y3Jvc3NfY3Vy c29yICE9IDApCiAgICAgIFhGcmVlQ3Vyc29yIChGUkFNRV9XMzJfRElTUExBWSAoZiksIGYt Pm91dHB1dF9kYXRhLnczMi0+Y3Jvc3NfY3Vyc29yKTsKICAgIGYtPm91dHB1dF9kYXRhLncz Mi0+Y3Jvc3NfY3Vyc29yID0gY3Jvc3NfY3Vyc29yOworICAgICAvKiBUT0RPOiBoYW5kX2N1 cnNvciAqLwogIAogICAgWEZsdXNoIChGUkFNRV9XMzJfRElTUExBWSAoZikpOwogICAgVU5C TE9DS19JTlBVVDsKKioqKioqKioqKioqKioqCioqKiAzNDIwLDM0MjUgKioqKgotLS0gMzQy MywzNDQzIC0tLS0KICB9CiAgCiAgDAorIEN1cnNvcgorIHczMl9sb2FkX2N1cnNvciAoTFBD VFNUUiBuYW1lKQorIHsKKyAgIC8qIFRyeSBmaXJzdCB0byBsb2FkIGN1cnNvciBmcm9tIGFw cGxpY2F0aW9uIHJlc291cmNlLiAgKi8KKyAgIEN1cnNvciBjdXJzb3IgPSBMb2FkSW1hZ2Ug KChISU5TVEFOQ0UpIEdldE1vZHVsZUhhbmRsZShOVUxMKSwKKyAJCQkgICAgIG5hbWUsIElN QUdFX0NVUlNPUiwgMCwgMCwKKyAJCQkgICAgIExSX0RFRkFVTFRDT0xPUiB8IExSX0RFRkFV TFRTSVpFIHwgTFJfU0hBUkVEKTsKKyAgIGlmICghY3Vyc29yKQorICAgICB7CisgICAgICAg LyogVGhlbiB0cnkgdG8gbG9hZCBhIHNoYXJlZCBwcmVkZWZpbmVkIGN1cnNvci4gICovCisg ICAgICAgY3Vyc29yID0gTG9hZEltYWdlIChOVUxMLCBuYW1lLCBJTUFHRV9DVVJTT1IsIDAs IDAsCisgCQkJICBMUl9ERUZBVUxUQ09MT1IgfCBMUl9ERUZBVUxUU0laRSB8IExSX1NIQVJF RCk7CisgICAgIH0KKyAgIHJldHVybiBjdXJzb3I7CisgfQogIAogIGV4dGVybiBMUkVTVUxU IENBTExCQUNLIHczMl93bmRfcHJvYyAoKTsKICAKKioqKioqKioqKioqKioqCioqKiAzNDM1 LDM0NDEgKioqKgogICAgd2MuY2JXbmRFeHRyYSA9IFdORF9FWFRSQV9CWVRFUzsKICAgIHdj LmhJbnN0YW5jZSA9IGhpbnN0OwogICAgd2MuaEljb24gPSBMb2FkSWNvbiAoaGluc3QsIEVN QUNTX0NMQVNTKTsKISAgIHdjLmhDdXJzb3IgPSBMb2FkQ3Vyc29yIChOVUxMLCBJRENfQVJS T1cpOwogICAgd2MuaGJyQmFja2dyb3VuZCA9IE5VTEw7IC8qIEdldFN0b2NrT2JqZWN0IChX SElURV9CUlVTSCk7ICAqLwogICAgd2MubHBzek1lbnVOYW1lID0gTlVMTDsKICAgIHdjLmxw c3pDbGFzc05hbWUgPSBFTUFDU19DTEFTUzsKLS0tIDM0NTMsMzQ1OSAtLS0tCiAgICB3Yy5j YlduZEV4dHJhID0gV05EX0VYVFJBX0JZVEVTOwogICAgd2MuaEluc3RhbmNlID0gaGluc3Q7 CiAgICB3Yy5oSWNvbiA9IExvYWRJY29uIChoaW5zdCwgRU1BQ1NfQ0xBU1MpOwohICAgd2Mu aEN1cnNvciA9IHczMl9sb2FkX2N1cnNvciAoSURDX0FSUk9XKTsKICAgIHdjLmhickJhY2tn cm91bmQgPSBOVUxMOyAvKiBHZXRTdG9ja09iamVjdCAoV0hJVEVfQlJVU0gpOyAgKi8KICAg IHdjLmxwc3pNZW51TmFtZSA9IE5VTEw7CiAgICB3Yy5scHN6Q2xhc3NOYW1lID0gRU1BQ1Nf Q0xBU1M7CioqKioqKioqKioqKioqKgoqKiogNTA2Myw1MDY4ICoqKioKLS0tIDUwODEsNTEw MCAtLS0tCiAgICAgICAgKChMUE1JTk1BWElORk8pIGxQYXJhbSktPnB0TWF4VHJhY2tTaXpl LnkgPSAzMjc2NzsKICAgICAgICByZXR1cm4gMDsKICAKKyAgICAgY2FzZSBXTV9TRVRDVVJT T1I6CisgICAgICAgaWYgKExPV09SRCAobFBhcmFtKSA9PSBIVENMSUVOVCkKKyAJcmV0dXJu IDA7CisgCisgICAgICAgZ290byBkZmx0OworICAgICAgIAorICAgICBjYXNlIFdNX0VNQUNT X1NFVENVUlNPUjoKKyAgICAgICB7CisgCUN1cnNvciBjdXJzb3IgPSAoQ3Vyc29yKSB3UGFy YW07CisgCWlmIChjdXJzb3IpCisgCSAgU2V0Q3Vyc29yIChjdXJzb3IpOworIAlyZXR1cm4g MDsKKyAgICAgICB9CisgICAgICAgCiAgICAgIGNhc2UgV01fRU1BQ1NfQ1JFQVRFU0NST0xM QkFSOgogICAgICAgIHJldHVybiAoTFJFU1VMVCkgdzMyX2NyZWF0ZXNjcm9sbGJhciAoKHN0 cnVjdCBmcmFtZSAqKSB3UGFyYW0sCiAgCQkJCQkgICAgKHN0cnVjdCBzY3JvbGxfYmFyICop IGxQYXJhbSk7CioqKioqKioqKioqKioqKgoqKiogNTY1Myw1NjU4ICoqKioKLS0tIDU2ODUs NTY5OCAtLS0tCiAgICBmLT5vdXRwdXRfZGF0YS53MzItPmR3U3R5bGUgPSBXU19PVkVSTEFQ UEVEV0lORE9XOwogICAgZi0+b3V0cHV0X2RhdGEudzMyLT5wYXJlbnRfZGVzYyA9IEZSQU1F X1czMl9ESVNQTEFZX0lORk8gKGYpLT5yb290X3dpbmRvdzsKICAKKyAgIGYtPm91dHB1dF9k YXRhLnczMi0+dGV4dF9jdXJzb3IgPSB3MzJfbG9hZF9jdXJzb3IgKElEQ19JQkVBTSk7Cisg ICBmLT5vdXRwdXRfZGF0YS53MzItPm5vbnRleHRfY3Vyc29yID0gdzMyX2xvYWRfY3Vyc29y IChJRENfQVJST1cpOworICAgZi0+b3V0cHV0X2RhdGEudzMyLT5tb2RlbGluZV9jdXJzb3Ig PSB3MzJfbG9hZF9jdXJzb3IgKElEQ19BUlJPVyk7CisgICBmLT5vdXRwdXRfZGF0YS53MzIt PmNyb3NzX2N1cnNvciA9IHczMl9sb2FkX2N1cnNvciAoSURDX0NST1NTKTsKKyAgIGYtPm91 dHB1dF9kYXRhLnczMi0+aG91cmdsYXNzX2N1cnNvciA9IHczMl9sb2FkX2N1cnNvciAoSURD X1dBSVQpOworICAgZi0+b3V0cHV0X2RhdGEudzMyLT5ob3Jpem9udGFsX2RyYWdfY3Vyc29y ID0gdzMyX2xvYWRfY3Vyc29yIChJRENfU0laRVdFKTsKKyAgIGYtPm91dHB1dF9kYXRhLncz Mi0+aGFuZF9jdXJzb3IgPSB3MzJfbG9hZF9jdXJzb3IgKElEQ19IQU5EKTsKKyAKICAgIC8q IEFkZCB0aGUgdG9vbC1iYXIgaGVpZ2h0IHRvIHRoZSBpbml0aWFsIGZyYW1lIGhlaWdodCBz byB0aGF0IHRoZQogICAgICAgdXNlciBnZXRzIGEgdGV4dCBkaXNwbGF5IGFyZWEgb2YgdGhl IHNpemUgaGUgc3BlY2lmaWVkIHdpdGggLWcgb3IKICAgICAgIHZpYSAuWGRlZmF1bHRzLiAg TGF0ZXIgY2hhbmdlcyBvZiB0aGUgdG9vbC1iYXIgaGVpZ2h0IGRvbid0CioqKioqKioqKioq KioqKgoqKiogOTQyMCw5NDI1ICoqKioKLS0tIDk0NjAsOTQ2NiAtLS0tCiAgICAgICBzdHJ1 Y3QgZnJhbWUgKmY7CiAgICAgICBYSW1hZ2UgKnhpbWc7CiAgICAgICBQaXhtYXAgcGl4bWFw OworICAgICAgaW50IHdpZHRoLCBoZWlnaHQ7CiAgewogICNpZiAwICAvKiBJIGRvbid0IHRo aW5rIHRoaXMgaXMgbmVjZXNzYXJ5IGxvb2tpbmcgYXQgd2hlcmUgaXQgaXMgdXNlZC4gICov CiAgICBIREMgaGRjID0gZ2V0X2ZyYW1lX2RjIChmKTsKSW5kZXg6IHNyYy93MzJ0ZXJtLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3QvZW1hY3MvZW1hY3Mvc3JjL3czMnRl cm0uYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xNzUKZGlmZiAtYyAtcjEuMTc1IHczMnRl cm0uYwoqKiogc3JjL3czMnRlcm0uYwkxOCBEZWMgMjAwMiAwNjoxNjoyOCAtMDAwMAkxLjE3 NQotLS0gc3JjL3czMnRlcm0uYwkyMCBKYW4gMjAwMyAxMDozMjo1NCAtMDAwMAoqKioqKioq KioqKioqKioKKioqIDE5MSwxOTYgKioqKgotLS0gMTkxLDE5NyAtLS0tCiAgZXh0ZXJuIHZv aWQgZnJlZV9mcmFtZV9tZW51YmFyICgpOwogIAogIGV4dGVybiBpbnQgdzMyX2NvZGVwYWdl X2Zvcl9mb250IChjaGFyICpmb250bmFtZSk7CisgZXh0ZXJuIEN1cnNvciB3MzJfbG9hZF9j dXJzb3IgKExQQ1RTVFIgbmFtZSk7CiAgCiAgZXh0ZXJuIGdseXBoX21ldHJpYyAqdzMyX0JE Rl9UZXh0TWV0cmljKGJkZmZvbnQgKmZvbnRwLAogIAkJCQkJdW5zaWduZWQgY2hhciAqdGV4 dCwgaW50IGRpbSk7CioqKioqKioqKioqKioqKgoqKiogMzY5LDM3NCAqKioqCi0tLSAzNzAs Mzc2IC0tLS0KICAJCQkJIGVudW0gZHJhd19nbHlwaHNfZmFjZSkpOwogIHN0YXRpYyBpbnQg Y3Vyc29yX2luX21vdXNlX2ZhY2VfcCBQXyAoKHN0cnVjdCB3aW5kb3cgKikpOwogIHN0YXRp YyBpbnQgY2xlYXJfbW91c2VfZmFjZSBQXyAoKHN0cnVjdCB3MzJfZGlzcGxheV9pbmZvICop KTsKKyB2b2lkIHczMl9kZWZpbmVfY3Vyc29yIFBfICgoV2luZG93LCBDdXJzb3IpKTsKICAK ICB2b2lkIHhfbG93ZXJfZnJhbWUgUF8gKChzdHJ1Y3QgZnJhbWUgKikpOwogIHZvaWQgeF9z Y3JvbGxfYmFyX2NsZWFyIFBfICgoc3RydWN0IGZyYW1lICopKTsKKioqKioqKioqKioqKioq CioqKiAxNDMyLDE0MzcgKioqKgotLS0gMTQzNCwxNDQwIC0tLS0KICAJewogIAkgIGNjbC0+ cmVnWzBdID0gY2hhcnNldDsKICAJICBjY2wtPnJlZ1sxXSA9IEJZVEUyICgqY2hhcjJiKTsK KyAJICBjY2wtPnJlZ1syXSA9IC0xOwogIAl9CiAgICAgICAgZWxzZQogIAl7CioqKioqKioq KioqKioqKgoqKiogMzczMCwzNzM2ICoqKioKICB3MzJfZHJhd19yZWxpZWZfcmVjdCAoZiwg bGVmdF94LCB0b3BfeSwgcmlnaHRfeCwgYm90dG9tX3ksIHdpZHRoLAogICAgICAgICAgICAg ICAgICAgICAgICByYWlzZWRfcCwgbGVmdF9wLCByaWdodF9wLCBjbGlwX3JlY3QpCiAgICAg ICBzdHJ1Y3QgZnJhbWUgKmY7CiEgICAgICBpbnQgbGVmdF94LCB0b3BfeSwgcmlnaHRfeCwg Ym90dG9tX3ksIGxlZnRfcCwgcmlnaHRfcCwgcmFpc2VkX3A7CiAgICAgICBSRUNUICpjbGlw X3JlY3Q7CiAgewogICAgaW50IGk7Ci0tLSAzNzMzLDM3MzkgLS0tLQogIHczMl9kcmF3X3Jl bGllZl9yZWN0IChmLCBsZWZ0X3gsIHRvcF95LCByaWdodF94LCBib3R0b21feSwgd2lkdGgs CiAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlZF9wLCBsZWZ0X3AsIHJpZ2h0X3AsIGNs aXBfcmVjdCkKICAgICAgIHN0cnVjdCBmcmFtZSAqZjsKISAgICAgIGludCBsZWZ0X3gsIHRv cF95LCByaWdodF94LCBib3R0b21feSwgd2lkdGgsIGxlZnRfcCwgcmlnaHRfcCwgcmFpc2Vk X3A7CiAgICAgICBSRUNUICpjbGlwX3JlY3Q7CiAgewogICAgaW50IGk7CioqKioqKioqKioq KioqKgoqKiogNjU3MSw2NTc5ICoqKioKICAJICAgIH0KICAJfQogICAgICB9CiEgI2lmIDAg LyogVE9ETzogbW91c2UgY3Vyc29yICovCiEgICBYRGVmaW5lQ3Vyc29yIChGUkFNRV9YX0RJ U1BMQVkgKGYpLCBGUkFNRV9YX1dJTkRPVyAoZiksIGN1cnNvcik7CiEgI2VuZGlmCiAgfQog IAogIAotLS0gNjU3NCw2NTgwIC0tLS0KICAJICAgIH0KICAJfQogICAgICB9CiEgICB3MzJf ZGVmaW5lX2N1cnNvciAoRlJBTUVfVzMyX1dJTkRPVyAoZiksIGN1cnNvcik7CiAgfQogIAog IAoqKioqKioqKioqKioqKioKKioqIDY1OTEsNjU5NiAqKioqCi0tLSA2NTkyLDY1OTggLS0t LQogICAgaW50IHBvcnRpb247CiAgICBMaXNwX09iamVjdCB3aW5kb3c7CiAgICBzdHJ1Y3Qg d2luZG93ICp3OworICAgQ3Vyc29yIGN1cnNvciA9IDA7CiAgICBzdHJ1Y3QgYnVmZmVyICpi OwogIAogICAgLyogV2hlbiBhIG1lbnUgaXMgYWN0aXZlLCBkb24ndCBoaWdobGlnaHQgYmVj YXVzZSB0aGlzIGxvb2tzIG9kZC4gKi8KKioqKioqKioqKioqKioqCioqKiA2NjQ2LDY2NTcg KioqKgogICAgICAgIG5vdGVfbW9kZV9saW5lX2hpZ2hsaWdodCAodywgeCwgcG9ydGlvbiA9 PSAxKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KISAjaWYgMCAvKiBUT0RPOiBtb3VzZSBj dXJzb3IgKi8KICAgIGlmIChwb3J0aW9uID09IDIpCiEgICAgIGN1cnNvciA9IGYtPm91dHB1 dF9kYXRhLngtPmhvcml6b250YWxfZHJhZ19jdXJzb3I7CiAgICBlbHNlCiEgICAgIGN1cnNv ciA9IGYtPm91dHB1dF9kYXRhLngtPnRleHRfY3Vyc29yOwohICNlbmRpZgogICAgLyogQXJl IHdlIGluIGEgd2luZG93IHdob3NlIGRpc3BsYXkgaXMgdXAgdG8gZGF0ZT8KICAgICAgIEFu ZCB2ZXJpZnkgdGhlIGJ1ZmZlcidzIHRleHQgaGFzIG5vdCBjaGFuZ2VkLiAgKi8KICAgIGIg PSBYQlVGRkVSICh3LT5idWZmZXIpOwotLS0gNjY0OCw2NjU5IC0tLS0KICAgICAgICBub3Rl X21vZGVfbGluZV9oaWdobGlnaHQgKHcsIHgsIHBvcnRpb24gPT0gMSk7CiAgICAgICAgcmV0 dXJuOwogICAgICB9CiEgCiAgICBpZiAocG9ydGlvbiA9PSAyKQohICAgICBjdXJzb3IgPSBm LT5vdXRwdXRfZGF0YS53MzItPmhvcml6b250YWxfZHJhZ19jdXJzb3I7CiAgICBlbHNlCiEg ICAgIGN1cnNvciA9IGYtPm91dHB1dF9kYXRhLnczMi0+dGV4dF9jdXJzb3I7CiEgCiAgICAv KiBBcmUgd2UgaW4gYSB3aW5kb3cgd2hvc2UgZGlzcGxheSBpcyB1cCB0byBkYXRlPwogICAg ICAgQW5kIHZlcmlmeSB0aGUgYnVmZmVyJ3MgdGV4dCBoYXMgbm90IGNoYW5nZWQuICAqLwog ICAgYiA9IFhCVUZGRVIgKHctPmJ1ZmZlcik7CioqKioqKioqKioqKioqKgoqKiogNjY3OSw2 Njg1ICoqKioKICAJICB8fCAhTUFUUklYX1JPVyAody0+Y3VycmVudF9tYXRyaXgsIHZwb3Mp LT5kaXNwbGF5c190ZXh0X3ApCiAgCXsKICAJICBjbGVhcl9tb3VzZV9mYWNlIChkcHlpbmZv KTsKISAJICAvKiBUT0RPOiBtb3VzZSBjdXJzb3IgKi8KICAJICBnb3RvIHNldF9jdXJzb3I7 CiAgCX0KICAKLS0tIDY2ODEsNjY4NyAtLS0tCiAgCSAgfHwgIU1BVFJJWF9ST1cgKHctPmN1 cnJlbnRfbWF0cml4LCB2cG9zKS0+ZGlzcGxheXNfdGV4dF9wKQogIAl7CiAgCSAgY2xlYXJf bW91c2VfZmFjZSAoZHB5aW5mbyk7CiEgCSAgY3Vyc29yID0gZi0+b3V0cHV0X2RhdGEudzMy LT5ub250ZXh0X2N1cnNvcjsKICAJICBnb3RvIHNldF9jdXJzb3I7CiAgCX0KICAKKioqKioq KioqKioqKioqCioqKiA2NzM0LDY3NDEgKioqKgogIAkJCSB8fCBocG9zIDwgZHB5aW5mby0+ bW91c2VfZmFjZV9lbmRfY29sCiAgCQkJIHx8IGRweWluZm8tPm1vdXNlX2ZhY2VfcGFzdF9l bmQpKTsKICAKISAgICAgICAvKiBUT0RPOiBpZiAoc2FtZV9yZWdpb24pCiEgCSBtb3VzZSBj dXJzb3IgKi8KICAKICAgICAgICAvKiBDaGVjayBtb3VzZS1mYWNlIGhpZ2hsaWdodGluZy4g ICovCiAgICAgICAgaWYgKCEgc2FtZV9yZWdpb24KLS0tIDY3MzYsNjc0MyAtLS0tCiAgCQkJ IHx8IGhwb3MgPCBkcHlpbmZvLT5tb3VzZV9mYWNlX2VuZF9jb2wKICAJCQkgfHwgZHB5aW5m by0+bW91c2VfZmFjZV9wYXN0X2VuZCkpOwogIAohICAgICAgIGlmIChzYW1lX3JlZ2lvbikK ISAJY3Vyc29yID0gMDsKICAKICAgICAgICAvKiBDaGVjayBtb3VzZS1mYWNlIGhpZ2hsaWdo dGluZy4gICovCiAgICAgICAgaWYgKCEgc2FtZV9yZWdpb24KKioqKioqKioqKioqKioqCioq KiA2NzY1LDY3NzIgKioqKgogIAkgIGRweWluZm8tPm1vdXNlX2ZhY2Vfb3ZlcmxheSA9IG92 ZXJsYXk7CiAgCiAgCSAgLyogQ2xlYXIgdGhlIGRpc3BsYXkgb2YgdGhlIG9sZCBhY3RpdmUg cmVnaW9uLCBpZiBhbnkuICAqLwohIAkgIGNsZWFyX21vdXNlX2ZhY2UgKGRweWluZm8pOwoh IAkgIC8qIFRPRE86IG1vdXNlIGN1cnNvciBjaGFuZ2VzLiAgKi8KICAKICAJICAvKiBJZiBu byBvdmVybGF5IGFwcGxpZXMsIGdldCBhIHRleHQgcHJvcGVydHkuICAqLwogIAkgIGlmIChO SUxQIChvdmVybGF5KSkKLS0tIDY3NjcsNjc3NCAtLS0tCiAgCSAgZHB5aW5mby0+bW91c2Vf ZmFjZV9vdmVybGF5ID0gb3ZlcmxheTsKICAKICAJICAvKiBDbGVhciB0aGUgZGlzcGxheSBv ZiB0aGUgb2xkIGFjdGl2ZSByZWdpb24sIGlmIGFueS4gICovCiEgCSAgaWYgKGNsZWFyX21v dXNlX2ZhY2UgKGRweWluZm8pKQohIAkgICAgY3Vyc29yID0gMDsKICAKICAJICAvKiBJZiBu byBvdmVybGF5IGFwcGxpZXMsIGdldCBhIHRleHQgcHJvcGVydHkuICAqLwogIAkgIGlmIChO SUxQIChvdmVybGF5KSkKKioqKioqKioqKioqKioqCioqKiA2ODA0LDY4MTAgKioqKgogIAog IAkgICAgICAvKiBEaXNwbGF5IGl0IGFzIGFjdGl2ZS4gICovCiAgCSAgICAgIHNob3dfbW91 c2VfZmFjZSAoZHB5aW5mbywgRFJBV19NT1VTRV9GQUNFKTsKISAJICAgICAgLyogVE9ETzog bW91c2UgY3Vyc29yIGNoYW5nZXMuICAqLwogIAkgICAgfQogIAkgIC8qIEhhbmRsZSB0aGUg dGV4dCBwcm9wZXJ0eSBjYXNlLiAgKi8KICAJICBlbHNlIGlmICghIE5JTFAgKG1vdXNlX2Zh Y2UpICYmIEJVRkZFUlAgKG9iamVjdCkpCi0tLSA2ODA2LDY4MTIgLS0tLQogIAogIAkgICAg ICAvKiBEaXNwbGF5IGl0IGFzIGFjdGl2ZS4gICovCiAgCSAgICAgIHNob3dfbW91c2VfZmFj ZSAoZHB5aW5mbywgRFJBV19NT1VTRV9GQUNFKTsKISAJICAgICAgY3Vyc29yID0gMDsKICAJ ICAgIH0KICAJICAvKiBIYW5kbGUgdGhlIHRleHQgcHJvcGVydHkgY2FzZS4gICovCiAgCSAg ZWxzZSBpZiAoISBOSUxQIChtb3VzZV9mYWNlKSAmJiBCVUZGRVJQIChvYmplY3QpKQoqKioq KioqKioqKioqKioKKioqIDY4NDcsNjg1MyAqKioqCiAgCiAgCSAgICAgIC8qIERpc3BsYXkg aXQgYXMgYWN0aXZlLiAgKi8KICAJICAgICAgc2hvd19tb3VzZV9mYWNlIChkcHlpbmZvLCBE UkFXX01PVVNFX0ZBQ0UpOwohIAkgICAgICAvKiBUT0RPOiBtb3VzZSBjdXJzb3IgY2hhbmdl cy4gICovCiAgCSAgICB9CiAgCSAgZWxzZSBpZiAoIU5JTFAgKG1vdXNlX2ZhY2UpICYmIFNU UklOR1AgKG9iamVjdCkpCiAgCSAgICB7Ci0tLSA2ODQ5LDY4NTUgLS0tLQogIAogIAkgICAg ICAvKiBEaXNwbGF5IGl0IGFzIGFjdGl2ZS4gICovCiAgCSAgICAgIHNob3dfbW91c2VfZmFj ZSAoZHB5aW5mbywgRFJBV19NT1VTRV9GQUNFKTsKISAJICAgICAgY3Vyc29yID0gMDsKICAJ ICAgIH0KICAJICBlbHNlIGlmICghTklMUCAobW91c2VfZmFjZSkgJiYgU1RSSU5HUCAob2Jq ZWN0KSkKICAJICAgIHsKKioqKioqKioqKioqKioqCioqKiA2ODc5LDY4ODUgKioqKgogIAkJ PSBmYWNlX2F0X3N0cmluZ19wb3NpdGlvbiAodywgb2JqZWN0LCBwb3MsIDAsIDAsIDAsICZp Z25vcmUsCiAgCQkJCQkgICBnbHlwaC0+ZmFjZV9pZCwgMSk7CiAgCSAgICAgIHNob3dfbW91 c2VfZmFjZSAoZHB5aW5mbywgRFJBV19NT1VTRV9GQUNFKTsKISAJICAgICAgLyogVE9ETzog bW91c2UgY3Vyc29yIGNoYW5nZXMuICAqLwogIAkgICAgfQogIAkgIGVsc2UgaWYgKFNUUklO R1AgKG9iamVjdCkgJiYgTklMUCAobW91c2VfZmFjZSkpCiAgCSAgICB7Ci0tLSA2ODgxLDY4 ODcgLS0tLQogIAkJPSBmYWNlX2F0X3N0cmluZ19wb3NpdGlvbiAodywgb2JqZWN0LCBwb3Ms IDAsIDAsIDAsICZpZ25vcmUsCiAgCQkJCQkgICBnbHlwaC0+ZmFjZV9pZCwgMSk7CiAgCSAg ICAgIHNob3dfbW91c2VfZmFjZSAoZHB5aW5mbywgRFJBV19NT1VTRV9GQUNFKTsKISAJICAg ICAgY3Vyc29yID0gMDsKICAJICAgIH0KICAJICBlbHNlIGlmIChTVFJJTkdQIChvYmplY3Qp ICYmIE5JTFAgKG1vdXNlX2ZhY2UpKQogIAkgICAgewoqKioqKioqKioqKioqKioKKioqIDY5 MjcsNjkzMyAqKioqCiAgCiAgCQkgIC8qIERpc3BsYXkgaXQgYXMgYWN0aXZlLiAgKi8KICAJ CSAgc2hvd19tb3VzZV9mYWNlIChkcHlpbmZvLCBEUkFXX01PVVNFX0ZBQ0UpOwohIAkJICAv KiBUT0RPOiBtb3VzZSBjdXJzb3IgY2hhbmdlcy4gICovCiAgCQl9CiAgCSAgICB9CiAgCX0K LS0tIDY5MjksNjkzNSAtLS0tCiAgCiAgCQkgIC8qIERpc3BsYXkgaXQgYXMgYWN0aXZlLiAg Ki8KICAJCSAgc2hvd19tb3VzZV9mYWNlIChkcHlpbmZvLCBEUkFXX01PVVNFX0ZBQ0UpOwoh IAkJICBjdXJzb3IgPSAwOwogIAkJfQogIAkgICAgfQogIAl9CioqKioqKioqKioqKioqKgoq KiogNzAwNyw3MDE0ICoqKioKICAgICAgfQogIAogICBzZXRfY3Vyc29yOgohICAgLyogVE9E TzogbW91c2UgY3Vyc29yIGNoYW5nZXMuICovCiEgICA7CiAgfQogIAogIHN0YXRpYyB2b2lk Ci0tLSA3MDA5LDcwMTYgLS0tLQogICAgICB9CiAgCiAgIHNldF9jdXJzb3I6CiEgICBpZiAo Y3Vyc29yKQohICAgICB3MzJfZGVmaW5lX2N1cnNvciAoRlJBTUVfVzMyX1dJTkRPVyAoZiks IGN1cnNvcik7CiAgfQogIAogIHN0YXRpYyB2b2lkCioqKioqKioqKioqKioqKgoqKiogNzAy MSw3MDI2ICoqKioKLS0tIDcwMjMsNzAzNSAtLS0tCiAgCQkJICBISVdPUkQgKGxhc3RfbW91 c2VfbW90aW9uX2V2ZW50LmxQYXJhbSkpOwogIH0KICAKKyB2b2lkCisgdzMyX2RlZmluZV9j dXJzb3IgKHdpbmRvdywgY3Vyc29yKQorICAgICAgV2luZG93IHdpbmRvdzsKKyAgICAgIEN1 cnNvciBjdXJzb3I7CisgeworICAgUG9zdE1lc3NhZ2UgKHdpbmRvdywgV01fRU1BQ1NfU0VU Q1VSU09SLCAoV1BBUkFNKSBjdXJzb3IsIDApOworIH0KICAKICAMCiAgLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCioqKioqKioqKioqKioqKgoqKiogNzU2MSw3NTc4ICoqKioKICAJCQkgIHctPnBo eXNfY3Vyc29yLngsIHctPnBoeXNfY3Vyc29yLnkpOwogICAgICB9CiAgCi0gI2lmIDAgLyog VE9ETzogbW91c2UgY3Vyc29yICovCiAgICAvKiBDaGFuZ2UgdGhlIG1vdXNlIGN1cnNvci4g ICovCiAgICBpZiAoZHJhdyA9PSBEUkFXX05PUk1BTF9URVhUKQohICAgICBYRGVmaW5lQ3Vy c29yIChGUkFNRV9YX0RJU1BMQVkgKGYpLCBGUkFNRV9YX1dJTkRPVyAoZiksCiEgCQkgICBm LT5vdXRwdXRfZGF0YS54LT50ZXh0X2N1cnNvcik7CiAgICBlbHNlIGlmIChkcmF3ID09IERS QVdfTU9VU0VfRkFDRSkKISAgICAgWERlZmluZUN1cnNvciAoRlJBTUVfWF9ESVNQTEFZIChm KSwgRlJBTUVfWF9XSU5ET1cgKGYpLAohIAkJICAgZi0+b3V0cHV0X2RhdGEueC0+Y3Jvc3Nf Y3Vyc29yKTsKICAgIGVsc2UKISAgICAgWERlZmluZUN1cnNvciAoRlJBTUVfWF9ESVNQTEFZ IChmKSwgRlJBTUVfWF9XSU5ET1cgKGYpLAohIAkJICAgZi0+b3V0cHV0X2RhdGEueC0+bm9u dGV4dF9jdXJzb3IpOwohICNlbmRpZgogIH0KICAKICAvKiBDbGVhciBvdXQgdGhlIG1vdXNl LWhpZ2hsaWdodGVkIGFjdGl2ZSByZWdpb24uCi0tLSA3NTcwLDc1ODYgLS0tLQogIAkJCSAg dy0+cGh5c19jdXJzb3IueCwgdy0+cGh5c19jdXJzb3IueSk7CiAgICAgIH0KICAKICAgIC8q IENoYW5nZSB0aGUgbW91c2UgY3Vyc29yLiAgKi8KICAgIGlmIChkcmF3ID09IERSQVdfTk9S TUFMX1RFWFQpCiEgICAgIHczMl9kZWZpbmVfY3Vyc29yIChGUkFNRV9XMzJfV0lORE9XIChm KSwKISAJCSAgICAgICBmLT5vdXRwdXRfZGF0YS53MzItPnRleHRfY3Vyc29yKTsKICAgIGVs c2UgaWYgKGRyYXcgPT0gRFJBV19NT1VTRV9GQUNFKQohICAgICB3MzJfZGVmaW5lX2N1cnNv ciAoRlJBTUVfVzMyX1dJTkRPVyAoZiksCiEgCQkgICAgICAgZi0+b3V0cHV0X2RhdGEudzMy LT5oYW5kX2N1cnNvcik7CiAgICBlbHNlCiEgICAgIHczMl9kZWZpbmVfY3Vyc29yIChGUkFN RV9XMzJfV0lORE9XIChmKSwKISAJCSAgICAgICBmLT5vdXRwdXRfZGF0YS53MzItPm5vbnRl eHRfY3Vyc29yKTsKISAKICB9CiAgCiAgLyogQ2xlYXIgb3V0IHRoZSBtb3VzZS1oaWdobGln aHRlZCBhY3RpdmUgcmVnaW9uLgoqKioqKioqKioqKioqKioKKioqIDExMDY1LDExMDcwICoq KioKLS0tIDExMDczLDExMDgwIC0tLS0KICAgIGRweWluZm8tPm1vdXNlX2ZhY2Vfd2luZG93 ID0gUW5pbDsKICAgIGRweWluZm8tPm1vdXNlX2ZhY2Vfb3ZlcmxheSA9IFFuaWw7CiAgICBk cHlpbmZvLT5tb3VzZV9mYWNlX2hpZGRlbiA9IDA7CisgCisgICBkcHlpbmZvLT52ZXJ0aWNh bF9zY3JvbGxfYmFyX2N1cnNvciA9IHczMl9sb2FkX2N1cnNvciAoSURDX0FSUk9XKTsKICAg IC8qIFRPRE86IGRweWluZm8tPmdyYXkgKi8KICAKICB9CkluZGV4OiBzcmMvdzMydGVybS5o Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L2VtYWNzL2VtYWNzL3NyYy93MzJ0 ZXJtLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDkKZGlmZiAtYyAtcjEuNDkgdzMydGVy bS5oCioqKiBzcmMvdzMydGVybS5oCTMwIEF1ZyAyMDAyIDEzOjIwOjM2IC0wMDAwCTEuNDkK LS0tIHNyYy93MzJ0ZXJtLmgJMjAgSmFuIDIwMDMgMTA6MzI6NTQgLTAwMDAKKioqKioqKioq KioqKioqCioqKiAzNTAsMzU1ICoqKioKLS0tIDM1MCwzNTYgLS0tLQogICAgQ3Vyc29yIGNy b3NzX2N1cnNvcjsKICAgIEN1cnNvciBob3VyZ2xhc3NfY3Vyc29yOwogICAgQ3Vyc29yIGhv cml6b250YWxfZHJhZ19jdXJzb3I7CisgICBDdXJzb3IgaGFuZF9jdXJzb3I7CiAgCiAgICAv KiBXaW5kb3cgd2hvc2UgY3Vyc29yIGlzIGhvdXJnbGFzc19jdXJzb3IuICBUaGlzIHdpbmRv dyBpcwogICAgICAgdGVtcG9yYXJpbHkgbWFwcGVkIHRvIGRpc3BsYXkgYW4gaG91cmdsYXNz IGN1cnNvci4gICovCioqKioqKioqKioqKioqKgoqKiogNzM1LDc0MSAqKioqCiAgI2RlZmlu ZSBXTV9FTUFDU19ERVNUUk9ZX0NBUkVUICAgICAgICAgKFdNX0VNQUNTX1NUQVJUICsgMTYp CiAgI2RlZmluZSBXTV9FTUFDU19TSE9XX0NBUkVUICAgICAgICAgICAgKFdNX0VNQUNTX1NU QVJUICsgMTcpCiAgI2RlZmluZSBXTV9FTUFDU19ISURFX0NBUkVUICAgICAgICAgICAgKFdN X0VNQUNTX1NUQVJUICsgMTgpCiEgI2RlZmluZSBXTV9FTUFDU19FTkQgICAgICAgICAgICAg ICAgICAgKFdNX0VNQUNTX1NUQVJUICsgMTkpCiAgCiAgI2RlZmluZSBXTkRfRk9OVFdJRFRI X0lOREVYICAgICgwKSAKICAjZGVmaW5lIFdORF9MSU5FSEVJR0hUX0lOREVYICAgKDQpIAot LS0gNzM2LDc0MyAtLS0tCiAgI2RlZmluZSBXTV9FTUFDU19ERVNUUk9ZX0NBUkVUICAgICAg ICAgKFdNX0VNQUNTX1NUQVJUICsgMTYpCiAgI2RlZmluZSBXTV9FTUFDU19TSE9XX0NBUkVU ICAgICAgICAgICAgKFdNX0VNQUNTX1NUQVJUICsgMTcpCiAgI2RlZmluZSBXTV9FTUFDU19I SURFX0NBUkVUICAgICAgICAgICAgKFdNX0VNQUNTX1NUQVJUICsgMTgpCiEgI2RlZmluZSBX TV9FTUFDU19TRVRDVVJTT1IgICAgICAgICAgICAgKFdNX0VNQUNTX1NUQVJUICsgMTkpCiEg I2RlZmluZSBXTV9FTUFDU19FTkQgICAgICAgICAgICAgICAgICAgKFdNX0VNQUNTX1NUQVJU ICsgMjApCiAgCiAgI2RlZmluZSBXTkRfRk9OVFdJRFRIX0lOREVYICAgICgwKSAKICAjZGVm aW5lIFdORF9MSU5FSEVJR0hUX0lOREVYICAgKDQpIAoNCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tN2QzMjRhNzViMDMzZS0tDQo= - --delim.6c72-- ------- End of forwarded message -------