From xemacs-m  Mon May  5 22:51:36 1997
Received: from bittersweet.inetarena.com (karlheg@bittersweet.inetarena.com [206.129.216.38])
	by xemacs.org (8.8.5/8.8.5) with ESMTP id WAA27011
	for <xemacs-beta@xemacs.org>; Mon, 5 May 1997 22:51:29 -0500 (CDT)
Received: (from karlheg@localhost)
	by bittersweet.inetarena.com (8.8.5/8.8.5) id UAA24187;
	Mon, 5 May 1997 20:52:59 -0700
Date: Mon, 5 May 1997 20:52:59 -0700
Message-Id: <199705060352.UAA24187@bittersweet.inetarena.com>
From: "Karl M. Hegbloom" <karlheg@inetarena.com>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="iXe2jkUkRM"
Content-Transfer-Encoding: 7bit
To: <xemacs-beta@xemacs.org>
Subject: GPM
X-Mailer: VM 6.30 under 20.2 XEmacs Lucid (beta3)
X-Face: /Q}=yl}1_v7nP)xXo5XjG8+tl@=uVu7o5u6)f]zN?+<hB!K.m9:[|*p34jVN`O;:XZXVSy>/\R>qDt(t8w!-i{(y0"`jFw^uk8inzO9wXabd'CdjUWfC\GHi:6nO*YC89#-qD>Q4r%9!V"<RYJ=7D#$";q=zML5'!=wvXk^$`6FT=5CMofQX)WUKt0p:OKl.mFOXx/D


--iXe2jkUkRM
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable


 I've managed to patch and get XEmacs to compile using Mr. Perry's
patches, but temacs seg faults during loadup.  This is as much as I
know how to do right now.  I don't know how to proceed from here, or I
would.  Enclosed is the core trace and a (hopefully correct) patch
against XEmacs-20.2-b4, based on Wm Perry's patch from
http://www.xemacs.org/beta/bugs/messages/misc/154

8<----------------------------------------------------------------->8
Script started on Mon May  5 20:39:00 1997

karlheg@bittersweet:/usr/local/src/xemacs-20.2-b4/src
501$ gdb temacs core
GDB is free software and you are welcome to distribute copies of it
 under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for detai=
ls.
GDB 4.16 (i586-debian-linux), Copyright 1996 Free Software Foundation, =
Inc...
Core was generated by `./temacs -batch -l ../prim/update-elc.el /usr/lo=
cal/src/xemacs-20.2-b4/src/../li=C8=89=10=08=03'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/X11R6/lib/Xaw3d/libXaw.so.6...done.
Reading symbols from /usr/X11R6/lib/libXpm.so.4...done.
Reading symbols from /usr/lib/libcompface.so...done.
Reading symbols from /usr/lib/libjpeg.so.6a...done.
Reading symbols from /usr/lib/libpng.so.1...done.
Reading symbols from /usr/lib/libz.so.1...done.
Reading symbols from /usr/X11R6/lib/libXmu.so.6...done.
Reading symbols from /usr/X11R6/lib/libXt.so.6...done.
Reading symbols from /usr/X11R6/lib/libSM.so.6...done.
Reading symbols from /usr/X11R6/lib/libICE.so.6...done.
Reading symbols from /usr/X11R6/lib/libXext.so.6...done.
Reading symbols from /usr/X11R6/lib/libX11.so.6...done.
Reading symbols from /lib/libncurses.so.3.0...done.
Reading symbols from /usr/lib/libgdbm.so.1...done.
Reading symbols from /usr/lib/libdb.so.1...done.
Reading symbols from /usr/lib/libgpm.so.1...done.
Reading symbols from /lib/libm.so.5...done.
Reading symbols from /lib/libc.so.5...done.
Reading symbols from /lib/ld-linux.so.1...done.
#0  0x40291b09 in __kill ()
(gdb) where
#0  0x40291b09 in __kill ()
#1  0x807056d in fatal_error_signal (sig=3D11) at emacs.c:204
#2  0xbfffe270 in ?? ()
#3  0x80f4b7a in emacs_Xt_select_console (con=3D0x822a500) at event-Xt.=
c:1742
#4  0x807c9da in event_stream_select_console (con=3D0x822a500) at event=
-stream.c:544
#5  0x80634c3 in init_console_stream () at console-stream.c:352
#6  0x807112c in xemacs_20_2_beta4 (argc=3D13, argv=3D0x8384a80, envp=3D=
0xbfffe560) at emacs.c:1408
#7  0x80718b6 in main (argc=3D91, argv=3D0xbfffe3f0, envp=3D0xbfffe560)=
 at emacs.c:1812
#8  0x804e84e in _start ()
(gdb)=20

karlheg@bittersweet:/usr/local/src/xemacs-20.2-b4/src
502$ exit

Script done on Mon May  5 20:39:10 1997
8<----------------------------------------------------------------->8

 Here's my version of the patch, against 20.2-b4.  I hope I did this
right...


--iXe2jkUkRM
Content-Type: application/octet-stream
Content-Description: gpm-patch.diff
Content-Disposition: attachment;
	filename="gpm-patch.diff"
Content-Transfer-Encoding: base64

ZGlmZiAtYyAtciB0bXAub3JpZy9jb25maWd1cmUgdG1wL2NvbmZpZ3VyZQoqKiogdG1wLm9y
aWcvY29uZmlndXJlCU1vbiBNYXkgIDUgMTg6NTU6MDYgMTk5NwotLS0gdG1wL2NvbmZpZ3Vy
ZQlNb24gTWF5ICA1IDE5OjM0OjEyIDE5OTcKKioqKioqKioqKioqKioqCioqKiAyMTAsMjE1
ICoqKioKLS0tIDIxMCwyMTYgLS0tLQogIAkJCSBmb3VuZC4pCiAgLS13aXRoLWNkZSAoKikJ
CUNvbXBpbGUgaW4gc3VwcG9ydCBmb3IgQ0RFIGRyYWcgYW5kIGRyb3AuCiAgLS13aXRoLW9m
Zml4ICgqKQlDb21waWxlIGluIHN1cHBvcnQgZm9yIE9mZmlYIGRyYWcgYW5kIGRyb3AuCisg
LS13aXRoLWdwbSAoKikJCUNvbXBpbGUgaW4gc3VwcG9ydCBmb3IgR2VuZXJhbCBQdXJwb3Nl
IE1vdXNlCiAgLS13aXRoLXhwbSAoKikJCUNvbXBpbGUgd2l0aCBzdXBwb3J0IGZvciBYUE0g
ZmlsZXMuCiAgCQkJSXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgeW91IG9idGFpbiBY
UE0KICAJCQkodmVyc2lvbiAzLjRnIG9yIGJldHRlcikgaWYgeW91IGRvbid0IGFscmVhZHkK
KioqKioqKioqKioqKioqCioqKiA1MDMsNTA4ICoqKioKLS0tIDUwNCw1MjUgLS0tLQogICAg
ICAgICAgICBldmFsICIke29wdH09XCIke3ZhbH1cIiIKICAgICAgICAgIDs7CiAgCisgICAg
ICAgICAjIyBIYXMgdGhlIHVzZXIgcmVxdWVzdGVkIEdQTSBzdXBwb3J0PworIAkid2l0aF9n
cG0iICkKKyAJICAjIyBNYWtlIHN1cmUgdGhlIHZhbHVlIGdpdmVuIHdhcyBlaXRoZXIgInll
cyIgb3IgIm5vIi4KKyAJICBjYXNlICIke3ZhbH0iIGluCisgCSAgICB5IHwgeWUgfCB5ZXMg
KQl2YWw9eWVzIDs7CisgCSAgICBuIHwgbm8gKQkJdmFsPW5vICA7OworIAkgICAgKiApCisg
CSAgICAgIChlY2hvICIke3Byb2duYW1lfTogdGhlIFxgLS0ke29wdG5hbWV9JyBvcHRpb24g
aXMgc3VwcG9zZWQgdG8gaGF2ZSBhIGJvb2xlYW4gdmFsdWUuCisgU2V0IGl0IHRvIGVpdGhl
ciBcYHllcycgb3IgXGBubycuIgorIAkgICAgICAgZWNobyAiJHtzaG9ydF91c2FnZX0iKSA+
JjIKKyAJICAgICAgZXhpdCAxCisgCSAgICA7OworIAkgIGVzYWMKKyAgICAgICAgICAgZXZh
bCAiJHtvcHR9PVwiJHt2YWx9XCIiCisgICAgICAgICA7OworIAogICAgICAgICAgIyMgSGFz
IHRoZSB1c2VyIHJlcXVlc3RlZCBkYXRhYmFzZSBzdXBwb3J0PwogICAgICAgICAgIndpdGhf
ZGF0YWJhc2UiICkKICAJICB3aXRoX2RhdGFiYXNlX2JlcmtkYj1ubwoqKioqKioqKioqKioq
KioKKioqIDQyMjQsNDIyOSAqKioqCi0tLSA0MjQxLDQyOTUgLS0tLQogICIKICB9CiAgCisg
IworICMgYXV0b2RldGVjdCBHUE0KKyAjCisgaWYgdGVzdCAiJHt3aXRoX3R0eX0iICE9ICJu
byIgOyB0aGVuCisgICBpZiB0ZXN0ICIke3dpdGhfZ3BtfSIgIT0gIm5vIiA7IHRoZW4KKyAg
ICAgaWYgdGVzdCAiJHt3aXRoX2dwbX0iICE9ICJ5ZXMiIDsgdGhlbgorICAgICAgICNBQ19I
QVZFX0xJQlJBUlkoLWxncG0sIHdpdGhfZ3BtPSJ5ZXMiKQorICAgICAgIGFjX3NhdmVfTElC
Uz0iJHtMSUJTfSIKKyBMSUJTPSIke0xJQlN9IC1sZ3BtIgorIGFjX2hhdmVfbGliPSIiCisg
dGVzdCAtbiAiJHNpbGVudCIgfHwgZWNobyAiY2hlY2tpbmcgZm9yIC1sZ3BtIgorIGNhdCA+
IGNvbmZ0ZXN0LiR7YWNfZXh0fSA8PEVPRgorICNpbmNsdWRlICJjb25mZGVmcy5oIgorIAor
IGludCBtYWluKCkgeyByZXR1cm4gMDsgfQorIGludCB0KCkgeyBtYWluKCk7OyByZXR1cm4g
MDsgfQorIEVPRgorIGlmIGV2YWwgJGFjX2NvbXBpbGU7IHRoZW4KKyAgIHJtIC1yZiBjb25m
dGVzdCoKKyAgIGFjX2hhdmVfbGliPSIxIgorIAorIGZpCisgcm0gLWYgY29uZnRlc3QqCisg
TElCUz0iJHthY19zYXZlX0xJQlN9IgorIGlmIHRlc3QgLW4gIiR7YWNfaGF2ZV9saWJ9Ijsg
dGhlbgorICAgIDo7IHdpdGhfZ3BtPSJ5ZXMiCisgZWxzZQorICAgIDo7IAorIGZpCisgICAg
IGZpCisgICBmaQorIGVsc2UKKyAgIGVjaG8gIkdQTSBzdXBwb3J0IGNhbm5vdCBiZSBzcGVj
aWZpZWQgd2l0aG91dCBUVFkgc3VwcG9ydC4iCisgICBleGl0IDEKKyBmaQorIAorIGlmIHRl
c3QgIiR7d2l0aF9ncG19IiA9ICJ5ZXMiIDsgdGhlbgorICAgI0FDX0RFRklORShIQVZFX0dQ
TSkKKyAgIHsKKyB0ZXN0IC1uICIkdmVyYm9zZSIgJiYgXAorIGVjaG8gIglkZWZpbmluZyBI
QVZFX0dQTSIKKyBlY2hvICIjZGVmaW5lIiBIQVZFX0dQTSAiMSIgPj4gY29uZmRlZnMuaAor
IERFRlM9IiRERUZTIC1ESEFWRV9HUE09MSIKKyBhY19zZWRfZGVmcz0iJHthY19zZWRfZGVm
c31cJHthY19kQX1IQVZFX0dQTVwke2FjX2RCfUhBVkVfR1BNXCR7YWNfZEN9MVwke2FjX2RE
fQorIFwke2FjX3VBfUhBVkVfR1BNXCR7YWNfdUJ9SEFWRV9HUE1cJHthY191Q30xXCR7YWNf
dUR9CisgXCR7YWNfZUF9SEFWRV9HUE1cJHthY19lQn1IQVZFX0dQTVwke2FjX2VDfTFcJHth
Y19lRH0KKyAiCisgfQorIGZpCiAgCiAgIyBXZSB1c2UgTHVjaWQgdG9vbGtpdCBkZWZhdWx0
cyBmb3IgdGhlIG1lbnViYXJzIGFuZCBzY3JvbGxiYXJzLCBidXQKICAjIGlmIE1vdGlmIGlz
IGF2YWlsYWJsZSB3ZSB1c2UgaXQgZm9yIHRoZSBkaWFsb2cgYm94ZXMuCioqKioqKioqKioq
KioqKgoqKiogNzE1NCw3MTU5ICoqKioKLS0tIDcyMjAsNzIyNiAtLS0tCiAgICBlY2hvICIg
IEFkZGl0aW9uYWwgbGlicmFyaWVzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJHtzaXRlX3J1bnRpbWVfbGlicmFyaWVzfSIKICBmaQogIHRlc3QgIiR3aXRoX2RuZXQi
ICA9IHllcyAmJiBlY2hvICIgIENvbXBpbGluZyBpbiBzdXBwb3J0IGZvciBETkVULiIKKyB0
ZXN0ICIkd2l0aF9ncG0iICAgPSB5ZXMgJiYgZWNobyAiICBDb21waWxpbmcgaW4gc3VwcG9y
dCBmb3IgR1BNLiIKICB0ZXN0ICIkd2l0aF9zb2NrcyIgPSB5ZXMgJiYgZWNobyAiICBDb21w
aWxpbmcgaW4gc3VwcG9ydCBmb3IgU09DS1MuIgogIHRlc3QgIiR3aXRoX3Rlcm0iICA9IHll
cyAmJiBlY2hvICIgIENvbXBpbGluZyBpbiBzdXBwb3J0IGZvciBURVJNLiIKICB0ZXN0ICIk
d2l0aF94YXV0aCIgPSB5ZXMgJiYgZWNobyAiICBDb21waWxpbmcgaW4gc3VwcG9ydCBmb3Ig
WEFVVEguIgpkaWZmIC1jIC1yIHRtcC5vcmlnL2NvbmZpZ3VyZS5pbiB0bXAvY29uZmlndXJl
LmluCioqKiB0bXAub3JpZy9jb25maWd1cmUuaW4JTW9uIE1heSAgNSAxODozNjozMiAxOTk3
Ci0tLSB0bXAvY29uZmlndXJlLmluCU1vbiBNYXkgIDUgMTk6MTI6NTEgMTk5NwoqKioqKioq
KioqKioqKioKKioqIDIyNiwyMzEgKioqKgotLS0gMjI2LDIzMiAtLS0tCiAgCQkJIGZvdW5k
LikKICAtLXdpdGgtY2RlICgqKQkJQ29tcGlsZSBpbiBzdXBwb3J0IGZvciBDREUgZHJhZyBh
bmQgZHJvcC4KICAtLXdpdGgtb2ZmaXggKCopCUNvbXBpbGUgaW4gc3VwcG9ydCBmb3IgT2Zm
aVggZHJhZyBhbmQgZHJvcC4KKyAtLXdpdGgtZ3BtICgqKQkJQ29tcGlsZSBpbiBzdXBwb3J0
IGZvciBHZW5lcmFsIFB1cnBvc2UgTW91c2UKICAtLXdpdGgteHBtICgqKQkJQ29tcGlsZSB3
aXRoIHN1cHBvcnQgZm9yIFhQTSBmaWxlcy4KICAJCQlJdCBpcyBoaWdobHkgcmVjb21tZW5k
ZWQgdGhhdCB5b3Ugb2J0YWluIFhQTQogIAkJCSh2ZXJzaW9uIDMuNGcgb3IgYmV0dGVyKSBp
ZiB5b3UgZG9uJ3QgYWxyZWFkeQoqKioqKioqKioqKioqKioKKioqIDUxNiw1MjEgKioqKgot
LS0gNTE3LDUzOCAtLS0tCiAgICAgICAgICAgIGV2YWwgIiR7b3B0fT1cIiR7dmFsfVwiIgog
ICAgICAgICAgOzsKICAKKyAgICAgICAgICMjIEhhcyB0aGUgdXNlciByZXF1ZXN0ZWQgR1BN
IHN1cHBvcnQ/CisgCSJ3aXRoX2dwbSIgKQorIAkgICMjIE1ha2Ugc3VyZSB0aGUgdmFsdWUg
Z2l2ZW4gd2FzIGVpdGhlciAieWVzIiBvciAibm8iLgorIAkgIGNhc2UgIiR7dmFsfSIgaW4K
KyAJICAgIHkgfCB5ZSB8IHllcyApCXZhbD15ZXMgOzsKKyAJICAgIG4gfCBubyApCQl2YWw9
bm8gIDs7CisgCSAgICAqICkKKyAJICAgICAgKGVjaG8gIiR7cHJvZ25hbWV9OiB0aGUgXGAt
LSR7b3B0bmFtZX0nIG9wdGlvbiBpcyBzdXBwb3NlZCB0byBoYXZlIGEgYm9vbGVhbiB2YWx1
ZS4KKyBTZXQgaXQgdG8gZWl0aGVyIFxgeWVzJyBvciBcYG5vJy4iCisgCSAgICAgICBlY2hv
ICIke3Nob3J0X3VzYWdlfSIpID4mMgorIAkgICAgICBleGl0IDEKKyAJICAgIDs7CisgCSAg
ZXNhYworICAgICAgICAgICBldmFsICIke29wdH09XCIke3ZhbH1cIiIKKyAgICAgICAgIDs7
CisgCiAgICAgICAgICAjIyBIYXMgdGhlIHVzZXIgcmVxdWVzdGVkIGRhdGFiYXNlIHN1cHBv
cnQ/CiAgICAgICAgICAid2l0aF9kYXRhYmFzZSIgKQogIAkgIHdpdGhfZGF0YWJhc2VfYmVy
a2RiPW5vCioqKioqKioqKioqKioqKgoqKiogMjUzMCwyNTM1ICoqKioKLS0tIDI1NDcsMjU3
MCAtLS0tCiAgZG5sICMjIyBhdXRvZGV0ZWN0IFRJRkYgKG5vdCB5ZXQgaW1wbGVtZW50ZWQp
CiAgSUZfWUVTX0FDX0RFRklORSh3aXRoX3RpZmYsIEhBVkVfVElGRikKICAKKyAjCisgIyBh
dXRvZGV0ZWN0IEdQTQorICMKKyBpZiB0ZXN0ICIke3dpdGhfdHR5fSIgIT0gIm5vIiA7IHRo
ZW4KKyAgIGlmIHRlc3QgIiR7d2l0aF9ncG19IiAhPSAibm8iIDsgdGhlbgorICAgICBpZiB0
ZXN0ICIke3dpdGhfZ3BtfSIgIT0gInllcyIgOyB0aGVuCisgICAgICAgQUNfSEFWRV9MSUJS
QVJZKC1sZ3BtLCB3aXRoX2dwbT0ieWVzIikKKyAgICAgZmkKKyAgIGZpCisgZWxzZQorICAg
ZWNobyAiR1BNIHN1cHBvcnQgY2Fubm90IGJlIHNwZWNpZmllZCB3aXRob3V0IFRUWSBzdXBw
b3J0LiIKKyAgIGV4aXQgMQorIGZpCisgCisgaWYgdGVzdCAiJHt3aXRoX2dwbX0iID0gInll
cyIgOyB0aGVuCisgICBBQ19ERUZJTkUoSEFWRV9HUE0pCisgZmkKKyAKICAjIFdlIHVzZSBM
dWNpZCB0b29sa2l0IGRlZmF1bHRzIGZvciB0aGUgbWVudWJhcnMgYW5kIHNjcm9sbGJhcnMs
IGJ1dAogICMgaWYgTW90aWYgaXMgYXZhaWxhYmxlIHdlIHVzZSBpdCBmb3IgdGhlIGRpYWxv
ZyBib3hlcy4KICBpZiB0ZXN0ICIke3dpbmRvd19zeXN0ZW19IiAhPSAibm9uZSIgOyB0aGVu
CioqKioqKioqKioqKioqKgoqKiogMzIxMCwzMjE1ICoqKioKLS0tIDMyNDUsMzI1MSAtLS0t
CiAgICBlY2hvICIgIEFkZGl0aW9uYWwgbGlicmFyaWVzOiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJHtzaXRlX3J1bnRpbWVfbGlicmFyaWVzfSIKICBmaQogIHRlc3Qg
IiR3aXRoX2RuZXQiICA9IHllcyAmJiBlY2hvICIgIENvbXBpbGluZyBpbiBzdXBwb3J0IGZv
ciBETkVULiIKKyB0ZXN0ICIkd2l0aF9ncG0iICAgPSB5ZXMgJiYgZWNobyAiICBDb21waWxp
bmcgaW4gc3VwcG9ydCBmb3IgR1BNLiIKICB0ZXN0ICIkd2l0aF9zb2NrcyIgPSB5ZXMgJiYg
ZWNobyAiICBDb21waWxpbmcgaW4gc3VwcG9ydCBmb3IgU09DS1MuIgogIHRlc3QgIiR3aXRo
X3Rlcm0iICA9IHllcyAmJiBlY2hvICIgIENvbXBpbGluZyBpbiBzdXBwb3J0IGZvciBURVJN
LiIKICB0ZXN0ICIkd2l0aF94YXV0aCIgPSB5ZXMgJiYgZWNobyAiICBDb21waWxpbmcgaW4g
c3VwcG9ydCBmb3IgWEFVVEguIgpkaWZmIC1jIC1yIHRtcC5vcmlnL3NyYy9NYWtlZmlsZS5p
bi5pbiB0bXAvc3JjL01ha2VmaWxlLmluLmluCioqKiB0bXAub3JpZy9zcmMvTWFrZWZpbGUu
aW4uaW4JTW9uIE1heSAgNSAxNzowMjoyMSAxOTk3Ci0tLSB0bXAvc3JjL01ha2VmaWxlLmlu
LmluCU1vbiBNYXkgIDUgMTk6MTQ6MDAgMTk5NwoqKioqKioqKioqKioqKioKKioqIDQxOCw0
MjMgKioqKgotLS0gNDE4LDQzMCAtLS0tCiAgSlBFR19MSUJTID0gLWxqcGVnCiAgI2VuZGlm
CiAgCisgI2lmZGVmIEhBVkVfR1BNCisgR1BNX0xJQlMgPSAtbGdwbQorICNkZWZpbmUgR1BN
X09CSlMgZ3BtZXZlbnQubworICNlbHNlIC8qIG5vdCBIQVZFX0dQTSAqLworICNkZWZpbmUg
R1BNX09CSlMKKyAjZW5kaWYgLyogbm90IEhBVkVfR1BNICovCisgCiAgI2RlZmluZSBOT19H
TlVfTElOS0VSCiAgCiAgI2lmZGVmIERZTk9EVU1QCioqKioqKioqKioqKioqKgoqKiogODk1
LDkwMCAqKioqCi0tLSA5MDIsOTA4IC0tLS0KICAJVE9PTEJBUl9PQkpTIFRPT0xUQUxLX09C
SlMgVFRZX09CSlMgXAogIAl1bmRvLm8gVU5FWEVDIFwKICAJWE9CSlMgWE1VX09CSlMgQkFM
TE9PTk9CSlMgXAorIAlHUE1fT0JKUyBcCiAgCXdpbmRvdy5vCiAgCiAgI2lmZGVmIEhBVkVf
VFRZCioqKioqKioqKioqKioqKgoqKiogMTI1MCwxMjU2ICoqKioKICAJTElCX1RPT0xUQUxL
ICQoTElCWCkgXAogIAlMSUJTX1NZU1RFTSBMSUJTX01BQ0hJTkUgTElCU19URVJNQ0FQIFwK
ICAJTElCX0NBTk5BIExJQl9XTk4gTElCX0lOVEwgUVVBTlRJRllfTElCUyAkKExJQl9LU1RB
VCkgXAohIAlEQVRBQkFTRV9MSUJTIExJQlNfREVCVUcgJChHTlVMSUJfVkFSKSBMSUJfTUFU
SCBMSUJfU1RBTkRBUkQgXAogIAkkKEdOVUxJQl9WQVIpCiAgCiAgLyogRW5hYmxlIHJlY29t
cGlsYXRpb24gb2YgY2VydGFpbiBvdGhlciBmaWxlcyBkZXBlbmRpbmcgb24gc3lzdGVtIHR5
cGUuICAqLwotLS0gMTI1OCwxMjY1IC0tLS0KICAJTElCX1RPT0xUQUxLICQoTElCWCkgXAog
IAlMSUJTX1NZU1RFTSBMSUJTX01BQ0hJTkUgTElCU19URVJNQ0FQIFwKICAJTElCX0NBTk5B
IExJQl9XTk4gTElCX0lOVEwgUVVBTlRJRllfTElCUyAkKExJQl9LU1RBVCkgXAohIAlEQVRB
QkFTRV9MSUJTICQoR1BNX0xJQlMpIExJQlNfREVCVUcgJChHTlVMSUJfVkFSKSBcCiEgCUxJ
Ql9NQVRIIExJQl9TVEFOREFSRCBcCiAgCSQoR05VTElCX1ZBUikKICAKICAvKiBFbmFibGUg
cmVjb21waWxhdGlvbiBvZiBjZXJ0YWluIG90aGVyIGZpbGVzIGRlcGVuZGluZyBvbiBzeXN0
ZW0gdHlwZS4gICovCmRpZmYgLWMgLXIgdG1wLm9yaWcvc3JjL2NvbmZpZy5oLmluIHRtcC9z
cmMvY29uZmlnLmguaW4KKioqIHRtcC5vcmlnL3NyYy9jb25maWcuaC5pbglXZWQgQXByICA5
IDIyOjU2OjExIDE5OTcKLS0tIHRtcC9zcmMvY29uZmlnLmguaW4JTW9uIE1heSAgNSAxOTox
NDoxNyAxOTk3CioqKioqKioqKioqKioqKgoqKiogMjE4LDIyMyAqKioqCi0tLSAyMTgsMjI2
IC0tLS0KICAjdW5kZWYgVU5FWEVDX1NSQwogICN1bmRlZiBBSVhfU01UX0VYUAogIAorIC8q
IERlZmluZSBIQVZFX0dQTSBpZiB5b3UgaGF2ZSB0aGUgJ2dwbScgbGlicmFyeSBhbmQgd2Fu
dCBYRW1hY3MgdG8gdXNlIGl0ICovCisgI3VuZGVmIEhBVkVfR1BNCisgCiAgLyogRG8geW91
IGhhdmUgdGhlIGBzb2NrcycgbGlicmFyeSBhbmQgd2FudCBYRW1hY3MgdG8gdXNlIGl0PyAq
LwogICN1bmRlZiBIQVZFX1NPQ0tTCiAgCmRpZmYgLWMgLXIgdG1wLm9yaWcvc3JjL2NvbnNv
bGUtdHR5LmMgdG1wL3NyYy9jb25zb2xlLXR0eS5jCioqKiB0bXAub3JpZy9zcmMvY29uc29s
ZS10dHkuYwlTYXQgTWFyICA4IDE1OjI3OjIyIDE5OTcKLS0tIHRtcC9zcmMvY29uc29sZS10
dHkuYwlNb24gTWF5ICA1IDE5OjE1OjAyIDE5OTcKKioqKioqKioqKioqKioqCioqKiAxMjcs
MTMyICoqKioKLS0tIDEyNywxMzUgLS0tLQogICNlbmRpZiAvKiBNVUxFICovCiAgICBDT05T
T0xFX1RUWV9EQVRBIChjb24pLT50ZXJtaW5hbF90eXBlID0gdGVybWluYWxfdHlwZTsKICAg
IENPTlNPTEVfVFRZX0RBVEEgKGNvbiktPmNvbnRyb2xsaW5nX3Byb2Nlc3MgPSBjb250cm9s
bGluZ19wcm9jZXNzOworICNpZmRlZiBIQVZFX0dQTQorICAgY29ubmVjdF90b19ncG0gKGNv
bik7CisgI2VuZGlmCiAgICBpZiAoTklMUCAoQ09OU09MRV9OQU1FIChjb24pKSkKICAgICAg
Q09OU09MRV9OQU1FIChjb24pID0gRmZpbGVfbmFtZV9ub25kaXJlY3RvcnkgKHR0eSk7CiAg
ICB7CmRpZmYgLWMgLXIgdG1wLm9yaWcvc3JjL2NvbnNvbGUtdHR5LmggdG1wL3NyYy9jb25z
b2xlLXR0eS5oCioqKiB0bXAub3JpZy9zcmMvY29uc29sZS10dHkuaAlUaHUgQXByIDEwIDE5
OjEwOjExIDE5OTcKLS0tIHRtcC9zcmMvY29uc29sZS10dHkuaAlNb24gTWF5ICA1IDE5OjE1
OjAyIDE5OTcKKioqKioqKioqKioqKioqCioqKiA0MSw0NiAqKioqCi0tLSA0MSw0OSAtLS0t
CiAgc3RydWN0IHR0eV9jb25zb2xlCiAgewogICAgaW50IGluZmQsIG91dGZkOworICNpZmRl
ZiBIQVZFX0dQTQorICAgaW50IG1vdXNlX2ZkOworICNlbmRpZgogICAgTGlzcF9PYmplY3Qg
aW5zdHJlYW0sIG91dHN0cmVhbTsKICAgIExpc3BfT2JqZWN0IHRlcm1pbmFsX3R5cGU7CiAg
ICBMaXNwX09iamVjdCBjb250cm9sbGluZ19wcm9jZXNzOwoqKioqKioqKioqKioqKioKKioq
IDE5NSwyMDAgKioqKgotLS0gMTk4LDIwNiAtLS0tCiAgfTsKICAKICAjZGVmaW5lIENPTlNP
TEVfVFRZX0RBVEEoYykgQ09OU09MRV9UWVBFX0RBVEEgKGMsIHR0eSkKKyAjaWZkZWYgSEFW
RV9HUE0KKyAjZGVmaW5lIENPTlNPTEVfVFRZX01PVVNFX0ZEKGMpIChDT05TT0xFX1RUWV9E
QVRBIChjKS0+bW91c2VfZmQpCisgI2VuZGlmCiAgI2RlZmluZSBDT05TT0xFX1RUWV9DVVJT
T1JfWChjKSAoQ09OU09MRV9UVFlfREFUQSAoYyktPmN1cnNvcl94KQogICNkZWZpbmUgQ09O
U09MRV9UVFlfQ1VSU09SX1koYykgKENPTlNPTEVfVFRZX0RBVEEgKGMpLT5jdXJzb3JfeSkK
ICAjZGVmaW5lIENPTlNPTEVfVFRZX1JFQUxfQ1VSU09SX1goYykgKENPTlNPTEVfVFRZX0RB
VEEgKGMpLT5yZWFsX2N1cnNvcl94KQpkaWZmIC1jIC1yIHRtcC5vcmlnL3NyYy9ldmVudC1Y
dC5jIHRtcC9zcmMvZXZlbnQtWHQuYwoqKiogdG1wLm9yaWcvc3JjL2V2ZW50LVh0LmMJTW9u
IEFwciAyOCAxMjo1NzozMSAxOTk3Ci0tLSB0bXAvc3JjL2V2ZW50LVh0LmMJTW9uIE1heSAg
NSAxOToxNTowMiAxOTk3CioqKioqKioqKioqKioqKgoqKiogMTcyOCwxNzM0ICoqKioKICBl
bWFjc19YdF9zZWxlY3RfY29uc29sZSAoc3RydWN0IGNvbnNvbGUgKmNvbikKICB7CiAgICBM
aXNwX09iamVjdCBjb25zb2xlID0gUW5pbDsKISAgIGludCBpbmZkOwogIAogICAgaWYgKENP
TlNPTEVfWF9QIChjb24pKQogICAgICByZXR1cm47IC8qIFggY29uc29sZXMgYXJlIGF1dG9t
YXRpY2FsbHkgc2VsZWN0ZWQgZm9yIHdoZW4gd2UKLS0tIDE3MjgsMTczNCAtLS0tCiAgZW1h
Y3NfWHRfc2VsZWN0X2NvbnNvbGUgKHN0cnVjdCBjb25zb2xlICpjb24pCiAgewogICAgTGlz
cF9PYmplY3QgY29uc29sZSA9IFFuaWw7CiEgICBpbnQgaW5mZCxtb3VzZWZkOwogIAogICAg
aWYgKENPTlNPTEVfWF9QIChjb24pKQogICAgICByZXR1cm47IC8qIFggY29uc29sZXMgYXJl
IGF1dG9tYXRpY2FsbHkgc2VsZWN0ZWQgZm9yIHdoZW4gd2UKKioqKioqKioqKioqKioqCioq
KiAxNzM2LDE3NDggKioqKgogICAgaW5mZCA9IGV2ZW50X3N0cmVhbV91bml4b2lkX3NlbGVj
dF9jb25zb2xlIChjb24pOwogICAgWFNFVENPTlNPTEUgKGNvbnNvbGUsIGNvbik7CiAgICBz
ZWxlY3RfZmlsZWRlc2MgKGluZmQsIGNvbnNvbGUpOwogIH0KICAKICBzdGF0aWMgdm9pZAog
IGVtYWNzX1h0X3Vuc2VsZWN0X2NvbnNvbGUgKHN0cnVjdCBjb25zb2xlICpjb24pCiAgewog
ICAgTGlzcF9PYmplY3QgY29uc29sZSA9IFFuaWw7CiEgICBpbnQgaW5mZDsKICAKICAgIGlm
IChDT05TT0xFX1hfUCAoY29uKSkKICAgICAgcmV0dXJuOyAvKiBYIGNvbnNvbGVzIGFyZSBh
dXRvbWF0aWNhbGx5IHNlbGVjdGVkIGZvciB3aGVuIHdlCi0tLSAxNzM2LDE3NTQgLS0tLQog
ICAgaW5mZCA9IGV2ZW50X3N0cmVhbV91bml4b2lkX3NlbGVjdF9jb25zb2xlIChjb24pOwog
ICAgWFNFVENPTlNPTEUgKGNvbnNvbGUsIGNvbik7CiAgICBzZWxlY3RfZmlsZWRlc2MgKGlu
ZmQsIGNvbnNvbGUpOworICNpZmRlZiBIQVZFX0dQTQorICAgbW91c2VmZCA9IENPTlNPTEVf
VFRZX01PVVNFX0ZEIChjb24pOworICAgaWYgKG1vdXNlZmQgIT0gLTEpIHsKKyAgICAgc2Vs
ZWN0X2ZpbGVkZXNjIChtb3VzZWZkLCBjb25zb2xlKTsKKyAgIH0KKyAjZW5kaWYKICB9CiAg
CiAgc3RhdGljIHZvaWQKICBlbWFjc19YdF91bnNlbGVjdF9jb25zb2xlIChzdHJ1Y3QgY29u
c29sZSAqY29uKQogIHsKICAgIExpc3BfT2JqZWN0IGNvbnNvbGUgPSBRbmlsOwohICAgaW50
IGluZmQsbW91c2VmZDsKICAKICAgIGlmIChDT05TT0xFX1hfUCAoY29uKSkKICAgICAgcmV0
dXJuOyAvKiBYIGNvbnNvbGVzIGFyZSBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkIGZvciB3aGVu
IHdlCioqKioqKioqKioqKioqKgoqKiogMTc1MCwxNzU1ICoqKioKLS0tIDE3NTYsMTc2NyAt
LS0tCiAgICBpbmZkID0gZXZlbnRfc3RyZWFtX3VuaXhvaWRfdW5zZWxlY3RfY29uc29sZSAo
Y29uKTsKICAgIFhTRVRDT05TT0xFIChjb25zb2xlLCBjb24pOwogICAgdW5zZWxlY3RfZmls
ZWRlc2MgKGluZmQpOworICNpZmRlZiBIQVZFX0dQTQorICAgbW91c2VmZCA9IENPTlNPTEVf
VFRZX01PVVNFX0ZEIChjb24pOworICAgaWYgKG1vdXNlZmQgIT0gLTEpIHsKKyAgICAgdW5z
ZWxlY3RfZmlsZWRlc2MgKG1vdXNlZmQpOworICAgfQorICNlbmRpZgogIH0KICAKICAvKiBy
ZWFkIGFuIGV2ZW50IGZyb20gYSB0dHksIGlmIG9uZSBpcyBhdmFpbGFibGUuICBSZXR1cm5z
IG5vbi16ZXJvCmRpZmYgLWMgLXIgdG1wLm9yaWcvc3JjL2V2ZW50LXVuaXhvaWQuYyB0bXAv
c3JjL2V2ZW50LXVuaXhvaWQuYwoqKiogdG1wLm9yaWcvc3JjL2V2ZW50LXVuaXhvaWQuYwlX
ZWQgRGVjIDE4IDE0OjQzOjUwIDE5OTYKLS0tIHRtcC9zcmMvZXZlbnQtdW5peG9pZC5jCU1v
biBNYXkgIDUgMTk6MTU6MDIgMTk5NwoqKioqKioqKioqKioqKioKKioqIDM5LDQ0ICoqKioK
LS0tIDM5LDQ5IC0tLS0KICAjaW5jbHVkZSAic3lzcHJvYy5oIgkJLyogc2VsZWN0IHN0dWZm
ICovCiAgI2luY2x1ZGUgInN5c3RpbWUuaCIKICAKKyAjaWZkZWYgSEFWRV9HUE0KKyAjaW5j
bHVkZSAiZ3BtZXZlbnQuaCIKKyAjaW5jbHVkZSA8Z3BtLmg+CisgI2VuZGlmCisgCiAgLyog
TWFzayBvZiBiaXRzIGluZGljYXRpbmcgdGhlIGRlc2NyaXB0b3JzIHRoYXQgd2Ugd2FpdCBm
b3IgaW5wdXQgb24uCiAgICAgVGhlc2Ugd29yayBhcyBmb2xsb3dzOgogIAoqKioqKioqKioq
KioqKioKKioqIDc3LDgyICoqKioKLS0tIDgyLDkzIC0tLS0KICAgIExpc3BfT2JqZWN0IGNv
bnNvbGUgPSBRbmlsOwogIAogICAgWFNFVENPTlNPTEUgKGNvbnNvbGUsIGNvbik7CisgCisg
I2lmZGVmIEhBVkVfR1BNCisgICBpZiAoZmQgPT0gQ09OU09MRV9UVFlfTU9VU0VfRkQgKGNv
bikpIHsKKyAgICAgcmV0dXJuIChoYW5kbGVfZ3BtX3JlYWQgKGV2ZW50LGNvbixmZCkpOwor
ICAgfQorICNlbmRpZgogIAogICAgbnJlYWQgPSByZWFkIChmZCwgJmNoLCAxKTsKICAgIGlm
IChucmVhZCA8PSAwKQpkaWZmIC1jIC1yIHRtcC5vcmlnL3NyYy9mcmFtZS10dHkuYyB0bXAv
c3JjL2ZyYW1lLXR0eS5jCioqKiB0bXAub3JpZy9zcmMvZnJhbWUtdHR5LmMJTW9uIE1heSAg
NSAxNzo1Mzo1MiAxOTk3Ci0tLSB0bXAvc3JjL2ZyYW1lLXR0eS5jCU1vbiBNYXkgIDUgMTk6
MTU6MDIgMTk5NwoqKioqKioqKioqKioqKioKKioqIDMzLDM4ICoqKioKLS0tIDMzLDQyIC0t
LS0KICAjaW5jbHVkZSAiY29uc29sZS10dHkuaCIKICAjaW5jbHVkZSAiZnJhbWUuaCIKICAK
KyAjaWZkZWYgSEFWRV9HUE0KKyAjaW5jbHVkZSA8Z3BtLmg+CisgI2VuZGlmCisgCiAgTGlz
cF9PYmplY3QgVmRlZmF1bHRfdHR5X2ZyYW1lX3BsaXN0OwogIAogIHN0YXRpYyB2b2lkCioq
KioqKioqKioqKioqKgoqKiogNjIsNjcgKioqKgotLS0gNjYsOTcgLS0tLQogICAgICAgIGNh
bGwxIChRaW5pdF9wb3N0X3R0eV93aW4sIEZSQU1FX0NPTlNPTEUgKGYpKTsKICB9CiAgCisg
I2lmZGVmIEhBVkVfR1BNCisgc3RhdGljIGludAorIHR0eV9nZXRfbW91c2VfcG9zaXRpb24g
KHN0cnVjdCBkZXZpY2UgKmQsIExpc3BfT2JqZWN0ICpmcmFtZSwgaW50ICp4LCBpbnQgKnkp
CisgeworICAgR3BtX0V2ZW50IGV2OworICAgaW50IG51bV9idXR0b25zOworIAorICAgbnVt
X2J1dHRvbnMgPSBHcG1fR2V0U25hcHNob3QoJmV2KTsKKyAgICp4ID0gZXYueDsKKyAgICp5
ID0gZXYueTsKKyAgICpmcmFtZSA9IERFVklDRV9TRUxFQ1RFRF9GUkFNRSAoZCk7CisgICBy
ZXR1cm4gKDEpOworIH0KKyAKKyBzdGF0aWMgdm9pZAorIHR0eV9zZXRfbW91c2VfcG9zaXRp
b24gKHN0cnVjdCB3aW5kb3cgKncsIGludCB4LCBpbnQgeSkKKyB7CisgICAvKiBYWFgKKyAg
ICAgIEkgY291bGRuJ3QgZmluZCBhbnkgR1BNIGZ1bmN0aW9ucyB0aGF0IHNldCB0aGUgbW91
c2UgcG9zaXRpb24uCisgICAgICBNci4gUGVycnkgaGFkIGxlZnQgdGhpcyBmdW5jdGlvbiBl
bXB0eTsgdGhhdCBtdXN0IGJlIHdoeS4KKyAgICAgIGthcmxoZWcKKyAgICovCisgfQorIAor
ICNlbmRpZgorIAogIC8qIENoYW5nZSBmcm9tIHdpdGhkcmF3biBzdGF0ZSB0byBtYXBwZWQg
c3RhdGUuICovCiAgc3RhdGljIHZvaWQKICB0dHlfbWFrZV9mcmFtZV92aXNpYmxlIChzdHJ1
Y3QgZnJhbWUgKmYpCioqKioqKioqKioqKioqKgoqKiogOTcsMTAyICoqKioKLS0tIDEyNywx
MzYgLS0tLQogIHsKICAgIENPTlNPTEVfSEFTX01FVEhPRCAodHR5LCBpbml0X2ZyYW1lXzEp
OwogICAgQ09OU09MRV9IQVNfTUVUSE9EICh0dHksIGFmdGVyX2luaXRfZnJhbWUpOworICNp
ZmRlZiBIQVZFX0dQTQorICAgQ09OU09MRV9IQVNfTUVUSE9EICh0dHksIGdldF9tb3VzZV9w
b3NpdGlvbik7CisgICBDT05TT0xFX0hBU19NRVRIT0QgKHR0eSwgc2V0X21vdXNlX3Bvc2l0
aW9uKTsKKyAjZW5kaWYKICAgIENPTlNPTEVfSEFTX01FVEhPRCAodHR5LCBtYWtlX2ZyYW1l
X3Zpc2libGUpOwogICAgQ09OU09MRV9IQVNfTUVUSE9EICh0dHksIG1ha2VfZnJhbWVfaW52
aXNpYmxlKTsKICAgIENPTlNPTEVfSEFTX01FVEhPRCAodHR5LCBmcmFtZV92aXNpYmxlX3Ap
OwpkaWZmIC1jIC1yIHRtcC5vcmlnL3NyYy9ncG1ldmVudC5jIHRtcC9zcmMvZ3BtZXZlbnQu
YwoqKiogdG1wLm9yaWcvc3JjL2dwbWV2ZW50LmMJTW9uIE1heSAgNSAxOTowNzoxNiAxOTk3
Ci0tLSB0bXAvc3JjL2dwbWV2ZW50LmMJTW9uIE1heSAgNSAyMDozNToxNCAxOTk3CioqKioq
KioqKioqKioqKgoqKiogMCAqKioqCi0tLSAxLDExMyAtLS0tCisgLyogV2lsbGlhbSBQZXJy
eSAxOTk3ICovCisgCisgI2luY2x1ZGUgPGNvbmZpZy5oPgorICNpbmNsdWRlICJsaXNwLmgi
CisgI2luY2x1ZGUgImNvbnNvbGUtdHR5LmgiCisgI2luY2x1ZGUgImRldmljZS5oIgorICNp
bmNsdWRlICJldmVudHMuaCIKKyAjaW5jbHVkZSAiZXZlbnRzLW1vZC5oIgorICNpbmNsdWRl
ICJwcm9jZXNzLmgiCisgI2luY2x1ZGUgInN5c2RlcC5oIgorICNpbmNsdWRlICJzeXNwcm9j
LmgiCQkvKiBzZWxlY3Qgc3R1ZmYgKi8KKyAjaW5jbHVkZSAic3lzdGltZS5oIgorIAorICNp
ZmRlZiBIQVZFX0dQTQorICNpbmNsdWRlICJncG1ldmVudC5oIgorICNpbmNsdWRlIDxncG0u
aD4KKyAKKyAjaWYgKCFkZWZpbmVkKF9fbGludXhfXykpCS8qIHBvc3NpYmxlIHVuZGVyIHh0
ZXJtICovCisgI2RlZmluZSBLR19TSElGVAkwCisgI2RlZmluZSBLR19DVFJMCQkyCisgI2Rl
ZmluZSBLR19BTFQJCTMKKyAjZWxzZQorICNpbmNsdWRlIDxsaW51eC9rZXlib2FyZC5oPiAK
KyAjZW5kaWYKKyAKKyBleHRlcm4gU0VMRUNUX1RZUEUgaW5wdXRfd2FpdF9tYXNrLCBub25f
ZmFrZV9pbnB1dF93YWl0X21hc2s7CisgZXh0ZXJuIFNFTEVDVF9UWVBFIHByb2Nlc3Nfb25s
eV9tYXNrLCBkZXZpY2Vfb25seV9tYXNrOworIHZvaWQgc2VsZWN0X2ZpbGVkZXNjIChpbnQg
ZmQsIExpc3BfT2JqZWN0IHdoYXQpOworIAorIGludCBoYW5kbGVfZ3BtX3JlYWQoc3RydWN0
IExpc3BfRXZlbnQgKmV2ZW50LCBzdHJ1Y3QgY29uc29sZSAqY29uLCBpbnQgZmQpCisgewor
ICAgR3BtX0V2ZW50IGV2OworICAgaW50IG1vZGlmaWVycyx0eXBlLGJ1dHRvbjsKKyAKKyAg
IHR5cGUgPSAtMTsKKyAgIGJ1dHRvbiA9IDE7CisgCisgICBpZiAoIUdwbV9HZXRFdmVudCgm
ZXYpKQorICAgICByZXR1cm4oMCk7CisgICAKKyAgIGV2ZW50LT50aW1lc3RhbXAgICAgICAg
PSAwOworICAgZXZlbnQtPmNoYW5uZWwgICAgICAgICA9IENPTlNPTEVfU0VMRUNURURfRlJB
TUUgKGNvbik7CisgICAKKyAgIC8qIFdob3csIHdvdWxkbid0IG5hbWVkIGRlZmluZXMgYmUg
TklDRSE/IT8hICovCisgICBtb2RpZmllcnMgPSAwOworIAorICAgaWYgKGV2Lm1vZGlmaWVy
cyAmIDEpICAgbW9kaWZpZXJzIHw9IE1PRF9TSElGVDsKKyAgIGlmIChldi5tb2RpZmllcnMg
JiAyKSAgIG1vZGlmaWVycyB8PSBNT0RfTUVUQTsKKyAgIGlmIChldi5tb2RpZmllcnMgJiA0
KSAgIG1vZGlmaWVycyB8PSBNT0RfQ09OVFJPTDsKKyAgIGlmIChldi5tb2RpZmllcnMgJiA4
KSAgIG1vZGlmaWVycyB8PSBNT0RfTUVUQTsKKyAKKyAgIGlmIChldi50eXBlICYgR1BNX0RP
V04pCisgICAgIHR5cGUgPSBHUE1fRE9XTjsKKyAgIGVsc2UgaWYgKGV2LnR5cGUgJiBHUE1f
VVApCisgICAgIHR5cGUgPSBHUE1fVVA7CisgICBlbHNlIGlmIChldi50eXBlICYgR1BNX01P
VkUpIHsKKyAgICAgdHlwZSA9IEdQTV9NT1ZFOworICAgICBHUE1fRFJBV1BPSU5URVIoJmV2
KTsKKyAgIH0KKyAKKyAgIGlmIChldi5idXR0b25zICYgR1BNX0JfTEVGVCkKKyAgICAgYnV0
dG9uID0gMTsKKyAgIGVsc2UgaWYgKGV2LmJ1dHRvbnMgJiBHUE1fQl9NSURETEUpCisgICAg
IGJ1dHRvbiA9IDI7CisgICBlbHNlIGlmIChldi5idXR0b25zICYgR1BNX0JfUklHSFQpCisg
ICAgIGJ1dHRvbiA9IDM7CisgCisgICBzd2l0Y2ggKHR5cGUpIHsKKyAgIGNhc2UgR1BNX0RP
V046CisgICBjYXNlIEdQTV9VUDoKKyAgICAgaWYgKHR5cGUgPT0gR1BNX0RPV04pCisgICAg
ICAgZXZlbnQtPmV2ZW50X3R5cGUgICAgICAgICAgID0gYnV0dG9uX3ByZXNzX2V2ZW50Owor
ICAgICBlbHNlIGV2ZW50LT5ldmVudF90eXBlICAgICAgICA9IGJ1dHRvbl9yZWxlYXNlX2V2
ZW50OworICAgICBldmVudC0+ZXZlbnQuYnV0dG9uLnggICAgICAgICA9IGV2Lng7CisgICAg
IGV2ZW50LT5ldmVudC5idXR0b24ueSAgICAgICAgID0gZXYueTsKKyAgICAgZXZlbnQtPmV2
ZW50LmJ1dHRvbi5idXR0b24gICAgPSBidXR0b247CisgICAgIGV2ZW50LT5ldmVudC5idXR0
b24ubW9kaWZpZXJzID0gbW9kaWZpZXJzOworICAgICBicmVhazsKKyAgIGNhc2UgR1BNX01P
VkU6CisgICAgIGV2ZW50LT5ldmVudF90eXBlICAgICAgICAgICAgID0gcG9pbnRlcl9tb3Rp
b25fZXZlbnQ7CisgICAgIGV2ZW50LT5ldmVudC5tb3Rpb24ueCAgICAgICAgID0gZXYueDsK
KyAgICAgZXZlbnQtPmV2ZW50Lm1vdGlvbi55ICAgICAgICAgPSBldi55OworICAgICBldmVu
dC0+ZXZlbnQubW90aW9uLm1vZGlmaWVycyA9IG1vZGlmaWVyczsKKyAgIGRlZmF1bHQ6Cisg
ICAgIHJldHVybiAoMCk7CisgICB9CisgICByZXR1cm4gKDEpOworIH0KKyAKKyBpbnQgY29u
bmVjdF90b19ncG0oc3RydWN0IGNvbnNvbGUgKmNvbikKKyB7CisgICAvKiBPbmx5IGRvIHRo
aXMgaWYgd2UgYXJlIHJ1bm5pbmcgYWZ0ZXIgZHVtcGluZyBhbmQgcmVhbGx5IGludGVyYWN0
aXZlICovCisgICBpZiAoIW5vbmludGVyYWN0aXZlICYmIGluaXRpYWxpemVkKSB7CisgICAg
IC8qIFdlIHJlYWxseSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBvbiBhIFRUWSAqLworICAgICBp
ZiAoRVEgKENPTlNPTEVfVFlQRSAoY29uKSwgUXR0eSkpIHsKKyAgICAgICBHcG1fQ29ubmVj
dCBjb25uOworIAorICAgICAgIGNvbm4uZXZlbnRNYXNrID0gR1BNX0RPV058R1BNX1VQfEdQ
TV9NT1ZFOworICAgICAgIGNvbm4uZGVmYXVsdE1hc2sgPSBHUE1fTU9WRTsKKyAgICAgICBj
b25uLm1pbk1vZCA9IDA7CisgICAgICAgY29ubi5tYXhNb2QgPSAoKDE8PEtHX1NISUZUKXwo
MTw8S0dfQUxUKXwoMTw8S0dfQ1RSTCkpOworIAorICAgICAgIGlmIChHcG1fT3BlbiAoJmNv
bm4sIDApID09IC0xKSB7CisgCUNPTlNPTEVfVFRZX01PVVNFX0ZEIChjb24pID0gLTE7Cisg
CXJldHVybigwKTsKKyAgICAgICB9CisgICAgICAgc2V0X2Rlc2NyaXB0b3Jfbm9uX2Jsb2Nr
aW5nIChncG1fZmQpOworICAgICAgIENPTlNPTEVfVFRZX01PVVNFX0ZEIChjb24pID0gZ3Bt
X2ZkOworICAgICB9CisgICB9CisgfQorIAorICNlbmRpZgpkaWZmIC1jIC1yIHRtcC5vcmln
L3NyYy9ncG1ldmVudC5oIHRtcC9zcmMvZ3BtZXZlbnQuaAoqKiogdG1wLm9yaWcvc3JjL2dw
bWV2ZW50LmgJTW9uIE1heSAgNSAxOTowNzoxNiAxOTk3Ci0tLSB0bXAvc3JjL2dwbWV2ZW50
LmgJTW9uIE1heSAgNSAxOToxNTowMiAxOTk3CioqKioqKioqKioqKioqKgoqKiogMCAqKioq
Ci0tLSAxLDcgLS0tLQorICNpZm5kZWYgX0hBVkVfR1BNCisgI2RlZmluZSBfSEFWRV9HUE0K
KyAKKyBpbnQgaGFuZGxlX2dwbV9yZWFkKHN0cnVjdCBMaXNwX0V2ZW50ICpldmVudCwgc3Ry
dWN0IGNvbnNvbGUgKmNvbiwgaW50IGZkKTsKKyBpbnQgY29ubmVjdF90b19ncG0oc3RydWN0
IGNvbnNvbGUgKmNvbik7CisgCisgI2VuZGlmCg==

--iXe2jkUkRM
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit


-- 
Karl M. Hegbloom <karlheg@inetarena.com>
http://www.inetarena.com/~karlheg
Portland, OR  USA
Debian GNU 1.2  Linux 2.0.30t


--iXe2jkUkRM--

