Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 May 1998 21:29:51 +0400 (MSD)
From:      Maxim Bolotin <max@rnd.runnet.ru>
To:        Mike Smith <mike@smith.net.au>
Cc:        hackers@FreeBSD.ORG
Subject:   IBM EtherJet (cs8920) driver.
Message-ID:  <Pine.BSF.3.96.980505212502.8507B-300000@altos.rnd.runnet.ru>
In-Reply-To: <Pine.BSF.3.96.980423183109.29546A-300000@altos.rnd.runnet.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--0-899763362-894389391=:8507
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Thu, 23 Apr 1998, Maxim Bolotin wrote:
> On Wed, 22 Apr 1998, Mike Smith wrote:
> > > Hi!
> > 
> > G'day Max!
> > 
> > > As I write year ago, We have driver for IBM EtherJet ethernet card.
> > > It's cs8920M chip based card. TP only. We have 70 computers with
> > > FreeBSD 2.2.5, work 1 year. I make some style changes of code, and
> > > I want commite it. What have I to do it.
> > 
> > I looked at your driver last year, and made some suggestions then, but 
> > never heard back from you.  If your driver is available somewhere for 
> > FTP, I'll do the same again.  I think I should be able to obtain one of 
> > these cards for testing as well, and once we're both happy, I'll arrange
> > for it to be committed.
> 
Hi!
Here's rev. 1.5 with BPF, multicast, combo-media.

	Max.
-
Rostov State University   Computer Center
Rostov-on-Don, +7 (8632) 285794 or 357476
Russia, RUNNet, MAB1-RIPE      max@rsu.ru

--0-899763362-894389391=:8507
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="if_cs.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.3.96.980505212951.8507C@altos.rnd.runnet.ru>
Content-Description: /sys/i386/isa/if_cs.c

LyoNCiAqIENvcHlyaWdodCAoYykgMTk5NywxOTk4IE1heGltIEJvbG90aW4g
YW5kIE9sZWcgU2hhcm9pa28uDQogKiBBbGwgcmlnaHRzIHJlc2VydmVkLg0K
ICoNCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zDQogKiBhcmUgbWV0Og0KICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQNCiAqICAgIG5vdGljZSB1bm1vZGlmaWVkLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucywgYW5kIHRoZSBmb2xsb3dpbmcNCiAqICAgIGRpc2NsYWltZXIu
DQogKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQ0KICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4N
CiAqDQogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRI
T1IgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EDQogKiBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUNCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFDQogKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQ0KICogRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwNCiAqIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTDQogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikNCiAq
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUDQogKiBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZDQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GDQogKiBTVUNIIERBTUFHRS4NCiAqDQogKi8NCg0KLyoNCiAqICRJZDog
aWZfY3MuYyx2IDEuNSAxOTk4LzA1LzA1IDE3OjEzOjQzIHJvb3QgRXhwICQN
CiAqDQogKiBEZXZpY2UgZHJpdmVyIGZvciBDcnlzdGFsIFNlbWljb25kdWN0
b3IgQ1M4OTIwIGJhc2VkIGV0aGVybmV0DQogKiAgIGFkYXB0ZXJzLiBCeSBN
YXhpbSBCb2xvdGluIGFuZCBPbGVnIFNoYXJvaWtvLCAyNy1BcHJpbC0xOTk3
DQogKi8NCg0KI2luY2x1ZGUgImNzLmgiDQojaW5jbHVkZSAiYnBmaWx0ZXIu
aCINCg0KI2luY2x1ZGUgPHN5cy9wYXJhbS5oPg0KI2luY2x1ZGUgPHN5cy9z
eXN0bS5oPg0KI2luY2x1ZGUgPHN5cy9jb25mLmg+DQojaW5jbHVkZSA8c3lz
L2Vycm5vLmg+DQojaW5jbHVkZSA8c3lzL2lvY3RsLmg+DQojaW5jbHVkZSA8
c3lzL21idWYuaD4NCiNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+DQojaW5jbHVk
ZSA8c3lzL3N5c2xvZy5oPg0KDQojaW5jbHVkZSA8bmV0L2lmLmg+DQojaW5j
bHVkZSA8bmV0L2lmX2RsLmg+DQojaW5jbHVkZSA8bmV0L2lmX21pYi5oPg0K
I2luY2x1ZGUgPG5ldC9pZl90eXBlcy5oPg0KDQojaWZkZWYgSU5FVA0KI2lu
Y2x1ZGUgPG5ldGluZXQvaW4uaD4NCiNpbmNsdWRlIDxuZXRpbmV0L2luX3N5
c3RtLmg+DQojaW5jbHVkZSA8bmV0aW5ldC9pbl92YXIuaD4NCiNpbmNsdWRl
IDxuZXRpbmV0L2lwLmg+DQojaW5jbHVkZSA8bmV0aW5ldC9pZl9ldGhlci5o
Pg0KI2VuZGlmDQoNCiNpZmRlZiBJUFgNCiNpbmNsdWRlIDxuZXRpcHgvaXB4
Lmg+DQojaW5jbHVkZSA8bmV0aXB4L2lweF9pZi5oPg0KI2VuZGlmDQoNCiNp
ZmRlZiBOUw0KI2luY2x1ZGUgPG5ldG5zL25zLmg+DQojaW5jbHVkZSA8bmV0
bnMvbnNfaWYuaD4NCiNlbmRpZg0KDQojaWYgTkJQRklMVEVSID4gMA0KI2lu
Y2x1ZGUgPG5ldC9icGYuaD4NCiNpbmNsdWRlIDxuZXQvYnBmZGVzYy5oPg0K
I2VuZGlmDQoNCiNpbmNsdWRlIDxtYWNoaW5lL2Nsb2NrLmg+DQojaW5jbHVk
ZSA8bWFjaGluZS9tZF92YXIuaD4NCg0KI2luY2x1ZGUgPGkzODYvaXNhL2lz
YV9kZXZpY2UuaD4NCiNpbmNsdWRlIDxpMzg2L2lzYS9pY3UuaD4NCiNpbmNs
dWRlIDxpMzg2L2lzYS9pZl9jc3JlZy5oPg0KDQojaWZkZWYgIENTX1VTRV82
NEtfRE1BDQojZGVmaW5lIENTX0RNQV9CVUZGRVJfU0laRSA2NTUzNg0KI2Vs
c2UNCiNkZWZpbmUgQ1NfRE1BX0JVRkZFUl9TSVpFIDE2Mzg0DQojZW5kaWYN
Cg0KI2RlZmluZQlUWF9ERUxBWSAxMDAwDQoNCi8qDQogKiBjc19zb2Z0Yzog
cGVyIGxpbmUgaW5mbyBhbmQgc3RhdHVzDQogKi8NCnN0YXRpYyBzdHJ1Y3Qg
Y3Nfc29mdGMgew0KDQoJLyogRXRoZXJuZXQgY29tbW9uIGNvZGUgKi8NCglz
dHJ1Y3QgYXJwY29tIGFycGNvbTsNCg0KCS8qIENvbmZpZ3VyYXRpb24gd29y
ZHMgZnJvbSBFRVBST00gKi8NCglpbnQgYXV0b19uZWdfY25mOyAgICAgICAg
ICAgICAgIC8qIEF1dG9OZWdvdGl0YXRpb24gY29uZmlndXJhdGlvbiAqLw0K
CWludCBhZGFwdGVyX2NuZjsgICAgICAgICAgICAgICAgLyogQWRhcHRlciBj
b25maWd1cmF0aW9uICovDQoJaW50IGlzYV9jb25maWc7ICAgICAgICAgICAg
ICAgICAvKiBJU0EgY29uZmlndXJhdGlvbiAqLw0KCWludCBjaGlwX3R5cGU7
CQkJLyogVHlwZSBvZiBjaGlwICovDQoNCglpbnQgbmljX2FkZHI7IAkJCS8q
IEJhc2UgSU8gYWRkcmVzcyBvZiBjYXJkICovDQoJaW50IHNlbmRfY21kOw0K
CWludCBsaW5lX2N0bDsgICAgICAgICAgICAgICAgICAgLyogKi8NCglpbnQg
c2VuZF91bmRlcnJ1bjsNCgl2b2lkICpyZWN2X3Jpbmc7DQoNCgl1bnNpZ25l
ZCBjaGFyICpidWZmZXI7DQoJaW50IGJ1Zl9sZW47DQoNCn0JY3Nfc29mdGNb
TkNTXTsNCg0Kc3RhdGljIGludAljc19hdHRhY2gJCV9fUCgoc3RydWN0IGlz
YV9kZXZpY2UgKikpOw0Kc3RhdGljIHZvaWQJY3NfaW5pdAkJCV9fUCgodm9p
ZCAqKSk7DQpzdGF0aWMgaW50CWNzX2lvY3RsCQlfX1AoKHN0cnVjdCBpZm5l
dCAqLCBpbnQsIGNhZGRyX3QpKTsNCnN0YXRpYyBpbnQJY3NfcHJvYmUJCV9f
UCgoc3RydWN0IGlzYV9kZXZpY2UgKikpOw0Kc3RhdGljIGludAljc19jczg5
eDBfcHJvYmUJCV9fUCgoc3RydWN0IGlzYV9kZXZpY2UgKikpOw0Kc3RhdGlj
IHZvaWQJY3Nfc3RhcnQJCV9fUCgoc3RydWN0IGlmbmV0ICopKTsNCnN0YXRp
YyB2b2lkCWNzX3N0b3AJCQlfX1AoKHN0cnVjdCBjc19zb2Z0YyAqKSk7DQpz
dGF0aWMgdm9pZAljc19yZXNldAkJX19QKChzdHJ1Y3QgY3Nfc29mdGMgKikp
Ow0Kc3RhdGljIHZvaWQJY3Nfd2F0Y2hkb2cJCV9fUCgoc3RydWN0IGlmbmV0
ICopKTsNCg0Kc3RhdGljIHZvaWQJY3Nfd3JpdGVfbWJ1ZnMoc3RydWN0IGNz
X3NvZnRjKiwgc3RydWN0IG1idWYqKTsNCnN0YXRpYyB2b2lkCWNzX3htaXRf
YnVmKHN0cnVjdCBjc19zb2Z0YyopOw0Kc3RhdGljIGludAljc19nZXRfcGFj
a2V0KHN0cnVjdCBjc19zb2Z0YyopOw0Kc3RhdGljIHZvaWQJY3Nfc2V0bW9k
ZShzdHJ1Y3QgY3Nfc29mdGMqKTsNCg0Kc3RhdGljIGludAlnZXRfZWVwcm9t
X2RhdGEoc3RydWN0IGNzX3NvZnRjICpzYywgaW50LCBpbnQsIGludCAqKTsN
CnN0YXRpYyBpbnQJZ2V0X2VlcHJvbV9ja3N1bShpbnQsIGludCwgaW50ICop
Ow0Kc3RhdGljIGludAl3YWl0X2VlcHJvbV9yZWFkeSggc3RydWN0IGNzX3Nv
ZnRjICopOw0Kc3RhdGljIHZvaWQJY29udHJvbF9kY19kYyggc3RydWN0IGNz
X3NvZnRjICosIGludCApOw0Kc3RhdGljIGludAlzZW5kX3Rlc3RfcGt0KCBz
dHJ1Y3QgY3Nfc29mdGMgKiApOw0Kc3RhdGljIGludAlkZXRlY3RfdHAoIHN0
cnVjdCBjc19zb2Z0YyAqICk7DQpzdGF0aWMgaW50CWRldGVjdF9hdWkoIHN0
cnVjdCBjc19zb2Z0YyAqICk7DQpzdGF0aWMgaW50CWRldGVjdF9ibmMoIHN0
cnVjdCBjc19zb2Z0YyAqICk7DQoNCnN0cnVjdCBpc2FfZHJpdmVyIGNzZHJp
dmVyID0gew0KCWNzX3Byb2JlLA0KCWNzX2F0dGFjaCwNCglDU19OQU1FLA0K
CTANCn07DQoNCnN0YXRpYyBpbnQNCmdldF9lZXByb21fZGF0YSggc3RydWN0
IGNzX3NvZnRjICpzYywgaW50IG9mZiwgaW50IGxlbiwgaW50ICpidWZmZXIp
DQp7DQoJaW50IGk7DQoNCiNpZmRlZiBDU19ERUJVRw0KCXByaW50ZihDU19O
QU1FIjpFRVBST00gZGF0YSBmcm9tICV4IGZvciAleDpcbiIsIG9mZixsZW4p
Ow0KI2VuZGlmDQoNCglmb3IgKGk9MDtpPGxlbjtpKyspIHsNCgkJaWYgKHdh
aXRfZWVwcm9tX3JlYWR5KHNjKSA8IDApIHJldHVybiAtMTsNCgkJLyogU2Vu
ZCBjb21tYW5kIHRvIEVFUFJPTSB0byByZWFkICovDQoJCWNzX3dyaXRlcmVn
KHNjLT5uaWNfYWRkciwgUFBfRUVDTUQsIChvZmYraSl8RUVQUk9NX1JFQURf
Q01EICk7DQoJCWlmICh3YWl0X2VlcHJvbV9yZWFkeShzYyk8MCkNCgkJCXJl
dHVybiAtMTsNCgkJYnVmZmVyW2ldID0gY3NfcmVhZHJlZyAoc2MtPm5pY19h
ZGRyLCBQUF9FRURhdGEpOw0KDQojaWZkZWYgQ1NfREVCVUcNCgkJcHJpbnRm
KCIlMDR4ICIsYnVmZmVyW2ldKTsNCiNlbmRpZg0KCX0NCg0KI2lmZGVmIENT
X0RFQlVHDQoJcHJpbnRmKCJcbiIpOw0KI2VuZGlmDQoNCglyZXR1cm4gMDsN
Cn0NCg0Kc3RhdGljIGludA0KZ2V0X2VlcHJvbV9ja3N1bShpbnQgb2ZmLCBp
bnQgbGVuLCBpbnQgKmJ1ZmZlcikNCnsNCglpbnQgaSxja3N1bT0wOw0KDQoJ
Zm9yIChpPTA7aTxsZW47aSsrKQ0KCQlja3N1bSs9YnVmZmVyW2ldOw0KCWNr
c3VtICY9IDB4ZmZmZjsNCglpZiAoY2tzdW09PTApDQoJCXJldHVybiAwOw0K
CXJldHVybiAtMTsNCn0NCg0Kc3RhdGljIGludA0Kd2FpdF9lZXByb21fcmVh
ZHkoc3RydWN0IGNzX3NvZnRjICpzYykNCnsNCglpbnQgdGltZW91dD0xMDAw
Ow0KCURFTEFZICggMzAwMDAgKTsJLyogWFhYIHNob3VsZG4ndCB3ZSBkbyBz
b21lIGNoZWNrcyBoZXJlID8gKi8NCglyZXR1cm4gMDsNCn0NCg0Kc3RhdGlj
IHZvaWQNCmNvbnRyb2xfZGNfZGMoc3RydWN0IGNzX3NvZnRjICpzYywgaW50
IG9uX25vdF9vZmYpDQp7DQoJdW5zaWduZWQgaW50IHNlbGZfY29udHJvbCA9
IEhDQjFfRU5CTDsNCg0KCWlmICgoKHNjLT5hZGFwdGVyX2NuZiAmIEFfQ05G
X0RDX0RDX1BPTEFSSVRZKSE9MCkgXiBvbl9ub3Rfb2ZmKQ0KCQlzZWxmX2Nv
bnRyb2wgfD0gSENCMTsNCgllbHNlDQoJCXNlbGZfY29udHJvbCAmPSB+SENC
MTsNCgljc193cml0ZXJlZyggc2MtPm5pY19hZGRyLCBQUF9TZWxmQ1RMLCBz
ZWxmX2NvbnRyb2wgKTsNCg0KCURFTEFZKCA1MDAwMDAgKTsNCn0NCg0Kc3Rh
dGljIGludA0KZGV0ZWN0X3RwKHN0cnVjdCBjc19zb2Z0YyAqc2MpDQp7DQoJ
aW50IGk7DQoJaW50IHVuaXQgPSBzYy0+YXJwY29tLmFjX2lmLmlmX3VuaXQ7
DQoJY2hhciAqbmFtZSA9IGNzZHJpdmVyLm5hbWU7DQoNCglpZiAoYm9vdHZl
cmJvc2UpDQoJCXByaW50ZihDU19OQU1FIiUxZDogYXR0ZW1wdGluZyBUUFxu
IiwgdW5pdCk7DQoNCgljc193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0xp
bmVDVEwsIHNjLT5saW5lX2N0bCAmIH5BVUlfT05MWSk7DQoJY29udHJvbF9k
Y19kYyhzYywgMCk7DQoJREVMQVkoIDE1MDAwMCApOw0KDQoJaWYgKChjc19y
ZWFkcmVnKHNjLT5uaWNfYWRkciwgUFBfTGluZVNUKSZMSU5LX09LKT09MCkN
CgkJcmV0dXJuIDA7DQoNCglpZiAoc2MtPmNoaXBfdHlwZSAhPSBDUzg5MDAp
IHsNCgkJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9BdXRvTmVnQ1RM
LHNjLT5hdXRvX25lZ19jbmYgJiBBVVRPX05FR19NQVNLKTsNCgkJaWYoKHNj
LT5hdXRvX25lZ19jbmYgJiBBVVRPX05FR19CSVRTKSA9PSBBVVRPX05FR19F
TkFCTEUpIHsNCgkJCWlmIChib290dmVyYm9zZSkNCgkJCQlwcmludGYoQ1Nf
TkFNRSIlMWQ6IG5lZ290aWF0aW5nIGR1cGxleC4uLlxuIiwgdW5pdCk7DQoJ
CQlmb3IoaT0wO2NzX3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQUF9BdXRvTmVn
U1QpJkFVVE9fTkVHX0JVU1k7aSsrKSB7DQoJCQkJaWYoaSA+IDQwMDAwKSB7
DQoJCQkJCXByaW50ZihDU19OQU1FIiUxZDogZnVsbC9oYWxmIGR1cGxleCBh
dXRvIG5lZ290aWF0aW9uIHRpbWVvdXRcbiIsIHVuaXQpOw0KCQkJCQlicmVh
azsNCgkJCQl9DQoJCQkJREVMQVkoMTAwMCk7DQoJCQl9DQoJCX0NCg0KCQlp
ZiAoYm9vdHZlcmJvc2UpDQoJCQlpZihjc19yZWFkcmVnKHNjLT5uaWNfYWRk
ciwgUFBfQXV0b05lZ1NUKSAmIEZEWF9BQ1RJVkUpDQoJCQkJcHJpbnRmKENT
X05BTUUiJTFkOiB1c2luZyBmdWxsIGR1cGxleFxuIiwgdW5pdCk7DQoJCQll
bHNlDQoJCQkJcHJpbnRmKENTX05BTUUiJTFkOiB1c2luZyBoYWxmIGR1cGxl
eFxuIiwgdW5pdCk7DQoJfQ0KDQoJcmV0dXJuIEFfQ05GX01FRElBXzEwQl9U
Ow0KfQ0KDQovKg0KICogWFhYIFRoaXMgd2FzIHJld3JpdHRlbiBmcm9tIExp
bnV4IGRyaXZlciB3aXRob3V0IGFueSB0ZXN0cy4NCiAqLyAgICAgICAgICAg
ICANCnN0YXRpYyBpbnQNCnNlbmRfdGVzdF9wa3Qoc3RydWN0IGNzX3NvZnRj
ICpzYykNCnsNCglpbnQgdW5pdCA9IHNjLT5hcnBjb20uYWNfaWYuaWZfdW5p
dDsNCgljaGFyIHRlc3RfcGFja2V0W10gPSB7IDAsMCwwLDAsMCwwLCAwLDAs
MCwwLDAsMCwNCgkJCQkwLCA0NiwgLyogQSA0NiBpbiBuZXR3b3JrIG9yZGVy
ICovDQoJCQkJMCwgMCwgLyogRFNBUD0wICYgU1NBUD0wIGZpZWxkcyAqLw0K
CQkJCTB4ZjMsIDAgLyogQ29udHJvbCAoVGVzdCBSZXEgKyBQIGJpdCBzZXQp
ICovIH07DQoNCgljc193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0xpbmVD
VEwsDQoJCWNzX3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQUF9MaW5lQ1RMKSB8
IFNFUklBTF9UWF9PTiApOw0KCWJjb3B5KHRlc3RfcGFja2V0LA0KCQkJc2Mt
PmFycGNvbS5hY19lbmFkZHIsIEVUSEVSX0FERFJfTEVOKTsNCgliY29weSh0
ZXN0X3BhY2tldCtFVEhFUl9BRERSX0xFTiwNCgkJCXNjLT5hcnBjb20uYWNf
ZW5hZGRyLCBFVEhFUl9BRERSX0xFTik7DQoJb3V0dyhzYy0+bmljX2FkZHIg
KyBUWF9DTURfUE9SVCwgVFhfQUZURVJfQUxMKTsNCglvdXR3KHNjLT5uaWNf
YWRkciArIFRYX0xFTl9QT1JULCBzaXplb2YodGVzdF9wYWNrZXQpKTsNCg0K
CS8qIFdhaXQgZm9yIGNoaXAgdG8gYWxsb2NhdGUgbWVtb3J5ICovDQoJREVM
QVkoNTAwMDApOw0KCWlmICghKGNzX3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQ
UF9CdXNTVCkgJiBSRUFEWV9GT1JfVFhfTk9XKSkNCgkJcmV0dXJuIDA7DQoN
CglvdXRzdyhzYy0+bmljX2FkZHIgKyBUWF9GUkFNRV9QT1JULCB0ZXN0X3Bh
Y2tldCwgc2l6ZW9mKHRlc3RfcGFja2V0KSk7DQoNCglpZiAoYm9vdHZlcmJv
c2UpDQoJCXByaW50ZihDU19OQU1FIiUxZDogc2VuZGluZyB0ZXN0IHBhY2tl
dC4uLiIsIHVuaXQpOw0KDQoJREVMQVkoMzAwMDApOw0KDQoJaWYgKChjc19y
ZWFkcmVnKHNjLT5uaWNfYWRkcixQUF9UeEV2ZW50KSAmIFRYX1NFTkRfT0tf
QklUUykgPT0gVFhfT0spIHsNCgkJaWYgKGJvb3R2ZXJib3NlKQ0KCQkJcHJp
bnRmKCJvayFcbiIpOw0KCQlyZXR1cm4gMTsNCgl9DQoNCglpZiAoYm9vdHZl
cmJvc2UpDQoJCXByaW50ZigiZmFpbGVkIVxuIik7DQoJcmV0dXJuIDA7DQp9
DQoNCi8qDQogKiBYWFggVGhpcyB3YXMgcmV3cml0dGVuIGZyb20gTGludXgg
ZHJpdmVyIHdpdGhvdXQgYW55IHRlc3RzLg0KICovDQpzdGF0aWMgaW50DQpk
ZXRlY3RfYXVpKHN0cnVjdCBjc19zb2Z0YyAqc2MpDQp7DQoJaW50IHVuaXQg
PSBzYy0+YXJwY29tLmFjX2lmLmlmX3VuaXQ7DQoNCglpZiAoYm9vdHZlcmJv
c2UpDQoJCXByaW50ZihDU19OQU1FIiUxZDogYXR0ZW1wdGluZyBBVUlcbiIs
IHVuaXQpOw0KDQoJY29udHJvbF9kY19kYyhzYywgMCk7DQoJY3Nfd3JpdGVy
ZWcoc2MtPm5pY19hZGRyLCBQUF9MaW5lQ1RMLA0KCQkoc2MtPmxpbmVfY3Rs
ICYgfkFVVE9fQVVJXzEwQkFTRVQpIHwgQVVJX09OTFkpOw0KDQoJaWYgKHNl
bmRfdGVzdF9wa3Qoc2MpKQ0KCQlyZXR1cm4gQV9DTkZfTUVESUFfQVVJOw0K
CWVsc2UNCgkJcmV0dXJuIDA7DQp9DQoNCi8qDQogKiBYWFggVGhpcyB3YXMg
cmV3cml0dGVuIGZyb20gTGludXggZHJpdmVyIHdpdGhvdXQgYW55IHRlc3Rz
Lg0KICovICAgICAgICAgICAgIA0Kc3RhdGljIGludA0KZGV0ZWN0X2JuYyhz
dHJ1Y3QgY3Nfc29mdGMgKnNjKQ0Kew0KCWludCB1bml0ID0gc2MtPmFycGNv
bS5hY19pZi5pZl91bml0Ow0KDQoJaWYgKGJvb3R2ZXJib3NlKQ0KCQlwcmlu
dGYoQ1NfTkFNRSIlMWQ6IGF0dGVtcHRpbmcgQk5DXG4iLCB1bml0KTsNCg0K
CWNvbnRyb2xfZGNfZGMoc2MsIDEpOw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNf
YWRkciwgUFBfTGluZUNUTCwNCgkJKHNjLT5saW5lX2N0bCAmIH5BVVRPX0FV
SV8xMEJBU0VUKSB8IEFVSV9PTkxZKTsNCg0KCWlmIChzZW5kX3Rlc3RfcGt0
KHNjKSkNCgkJcmV0dXJuIEFfQ05GX01FRElBXzEwQl8yOw0KCWVsc2UNCgkJ
cmV0dXJuIDA7DQp9DQoNCnN0YXRpYyBpbnQNCmNzX2NzODl4MF9wcm9iZShz
dHJ1Y3QgaXNhX2RldmljZSAqZGV2KQ0Kew0KCXVuc2lnbmVkIHJldl90eXBl
ID0gMDsNCglpbnQgaSwgaXJxLCByZXN1bHQ7DQoJaW50IGlvYmFzZSA9IGRl
di0+aWRfaW9iYXNlOw0KCWludCB1bml0ID0gZGV2LT5pZF91bml0Ow0KCWlu
dCBlZXByb21fYnVmZltDSEtTVU1fTEVOXTsNCglpbnQgY2hpcF90eXBlOw0K
CWNoYXIgY2hpcF9yZXZpc2lvbjsNCglzdHJ1Y3QgY3Nfc29mdGMgKnNjID0g
JmNzX3NvZnRjW3VuaXRdOw0KDQoJaWYgKChpbncoaW9iYXNlK0FERF9QT1JU
KSAmIEFERF9NQVNLKSAhPSBBRERfU0lHKSB7DQoJCS8qIENoaXAgbm90IGRl
dGVjdGVkLiBMZXQncyB0cnkgdG8gcmVzZXQgaXQgKi8NCgkJaWYgKGJvb3R2
ZXJib3NlKQ0KCQkJcHJpbnRmKENTX05BTUUiJTFkOiB0cnlpbmcgdG8gcmVz
ZXQgdGhlIGNoaXAuXG4iLCB1bml0KTsNCgkJb3V0dyhpb2Jhc2UrQUREX1BP
UlQsIFBQX1NlbGZDVEwpOw0KCQlpID0gaW53KGlvYmFzZStEQVRBX1BPUlQp
Ow0KCQlvdXR3KGlvYmFzZStBRERfUE9SVCwgUFBfU2VsZkNUTCk7DQoJCW91
dHcoaW9iYXNlK0RBVEFfUE9SVCwgaSB8IFBPV0VSX09OX1JFU0VUKTsNCgkJ
aWYgKChpbncoaW9iYXNlK0FERF9QT1JUKSAmIEFERF9NQVNLKSAhPSBBRERf
U0lHKQ0KCQkJcmV0dXJuIDA7DQoJfQ0KDQoJb3V0dyhpb2Jhc2UrQUREX1BP
UlQsIFBQX0NoaXBJRCk7DQoJaWYgKGludyhpb2Jhc2UrREFUQV9QT1JUKSAh
PSBDSElQX0VJU0FfSURfU0lHKQ0KCQlyZXR1cm4gMDsNCg0KCXJldl90eXBl
ID0gY3NfcmVhZHJlZyhpb2Jhc2UsIFBST0RVQ1RfSURfQUREKTsNCgljaGlw
X3R5cGUgPSByZXZfdHlwZSAmIH5SRVZJU09OX0JJVFM7DQoJY2hpcF9yZXZp
c2lvbiA9ICgocmV2X3R5cGUgJiBSRVZJU09OX0JJVFMpID4+IDgpICsgJ0En
Ow0KDQoJc2MtPm5pY19hZGRyID0gaW9iYXNlOw0KCXNjLT5jaGlwX3R5cGUg
PSBjaGlwX3R5cGU7DQoJc2MtPnNlbmRfY21kID0gVFhfQ1M4OTIwX0FGVEVS
X0FMTDsNCg0KCS8qDQoJICogRUVQUk9NDQoJICovDQoJaWYoKGNzX3JlYWRy
ZWcoaW9iYXNlLCBQUF9TZWxmU1QpICYgRUVQUk9NX1BSRVNFTlQpID09IDAp
DQoJCXByaW50ZihDU19OQU1FIiUxZDogTm8gRUVQUk9NLCByZWx5aW5nIG9u
IGNvbW1hbmQgbGluZS4uLlxuIiwNCgkJCXVuaXQpOw0KCWVsc2UNCgkJaWYg
KGdldF9lZXByb21fZGF0YShzYyxTVEFSVF9FRVBST01fREFUQSxDSEtTVU1f
TEVOLA0KCQkJCSAgICBlZXByb21fYnVmZik8MCkNCgkJCXByaW50ZihDU19O
QU1FIiUxZDogRUVQUk9NIHJlYWQgZmFpbGVkLCAiDQoJCQkJInJlbHlpbmcg
b24gY29tbWFuZCBsaW5lLlxuIiwgdW5pdCk7DQoJCWVsc2UNCgkJCWlmIChn
ZXRfZWVwcm9tX2Nrc3VtKFNUQVJUX0VFUFJPTV9EQVRBLENIS1NVTV9MRU4s
DQoJCQkJCSAgICAgZWVwcm9tX2J1ZmYpPDApDQoJCQkJcHJpbnRmKCBDU19O
QU1FIiUxZDogRUVQUk9NIGNoZWtzdW0gYmFkLCAiDQoJCQkJCSJyZWx5aW5n
IG9uIGNvbW1hbmQgbGluZS5cbiIsIHVuaXQgKTsNCgkJCWVsc2Ugew0KCQkJ
CWlmICghc2MtPmF1dG9fbmVnX2NuZikNCgkJCQkJc2MtPmF1dG9fbmVnX2Nu
ZiA9DQoJCQkJCSAgICBlZXByb21fYnVmZltBVVRPX05FR19DTkZfT0ZGU0VU
LzJdOw0KCQkJCWlmICghc2MtPmFkYXB0ZXJfY25mKQ0KCQkJCQlzYy0+YWRh
cHRlcl9jbmYgPSANCgkJCQkJICAgIGVlcHJvbV9idWZmW0FEQVBURVJfQ05G
X09GRlNFVC8yXTsNCgkJCQlzYy0+aXNhX2NvbmZpZyA9IGVlcHJvbV9idWZm
W0lTQV9DTkZfT0ZGU0VULzJdOw0KDQoJCQkJZm9yIChpPTA7IGk8RVRIRVJf
QUREUl9MRU4vMjsgaSsrKSB7DQoJCQkJCXNjLT5hcnBjb20uYWNfZW5hZGRy
W2kqMl09DQoJCQkJCQkJZWVwcm9tX2J1ZmZbaV07DQoJCQkJCXNjLT5hcnBj
b20uYWNfZW5hZGRyW2kqMisxXT0NCgkJCQkJCQllZXByb21fYnVmZltpXSA+
PiA4Ow0KCQkJCX0NCg0KCQkJCWlmIChkZXYtPmlkX2lycSA8PSAwKSB7DQoJ
CQkJCWlycSA9IGNzX3JlYWRyZWcoIGlvYmFzZSwgDQoJCQkJCQlQUF9DUzg5
MjBfSVNBSU5UKSAmIDB4ZmY7DQoJCQkJCWlmIChpcnEgIT0gMCAmJiBpcnEg
PCBDUzg5MjBfTk9fSU5UUykNCgkJCQkJCWRldi0+aWRfaXJxID0gKDEgPDwg
aXJxKTsNCgkJCQl9DQoJCQkJaWYgKGRldi0+aWRfZHJxIDwgMCkNCgkJCQkJ
ZGV2LT5pZF9kcnE9Y3NfcmVhZHJlZyhpb2Jhc2UsIA0KCQkJCQkJUFBfQ1M4
OTIwX0lTQURNQSkgJiAweDBmOw0KCQkJfQ0KDQoJaWYgKGRldi0+aWRfaXJx
PjApIHsNCgkJZm9yIChpcnE9MCwgaT1kZXYtPmlkX2lycTsgaTsgaSA9IGkg
Pj4gMSkNCgkJCWlycSsrOw0KCQljc193cml0ZXJlZyhpb2Jhc2UsIFBQX0NT
ODkyMF9JU0FJTlQsIC0taXJxKTsNCgl9IGVsc2Ugew0KCQlwcmludGYoQ1Nf
TkFNRSIlMWQ6IGluY29ycmVjdCBpcnFcbiIsIHVuaXQpOw0KCQlyZXR1cm4g
MDsNCgl9DQovKg0KICogVGVtcG9yYXJ5IGRpc2FibGVkDQogKg0KCWlmIChk
ZXYtPmlkX2RycT4wKQ0KCQljc193cml0ZXJlZyhpb2Jhc2UsIFBQX0NTODky
MF9JU0FETUEsIGRldi0+aWRfZHJxKTsNCgllbHNlIHsNCgkJcHJpbnRmKCBD
U19OQU1FIiUxZDogaW5jb3JyZWN0IGRycVxuIiwgdW5pdCApOw0KCQlyZXR1
cm4gMDsNCgl9DQoqLw0KDQoJaWYgKGJvb3R2ZXJib3NlKQ0KCQkgcHJpbnRm
KENTX05BTUUiJTFkOiBtb2RlbCBDUzg5JWMwJXMgcmV2ICVjXG4iDQoJCQlD
U19OQU1FIiUxZDogbWVkaWElcyVzJXNcbiINCgkJCUNTX05BTUUiJTFkOiBp
cnEgJWQgZHJxICVkXG4iLA0KCQkJdW5pdCwNCgkJCWNoaXBfdHlwZT09Q1M4
OTAwID8gJzAnIDogJzInLA0KCQkJY2hpcF90eXBlPT1DUzg5MjBNID8gIk0i
IDogIiIsDQoJCQljaGlwX3JldmlzaW9uLA0KCQkJdW5pdCwNCgkJCShzYy0+
YWRhcHRlcl9jbmYgJiBBX0NORl8xMEJfVCkgPyAiIFRQIiAgOiAiIiwNCgkJ
CShzYy0+YWRhcHRlcl9jbmYgJiBBX0NORl9BVUkpICAgPyAiIEFVSSIgOiAi
IiwNCgkJCShzYy0+YWRhcHRlcl9jbmYgJiBBX0NORl8xMEJfMikgPyAiIEJO
QyIgOiAiIiwNCgkJCXVuaXQsIGlycSwgZGV2LT5pZF9kcnEpOw0KDQoJaWYg
KChzYy0+YWRhcHRlcl9jbmYgJiBBX0NORl9FWFRORF8xMEJfMikgJiYNCgkg
ICAgKHNjLT5hZGFwdGVyX2NuZiAmIEFfQ05GX0xPV19SWF9TUVVFTENIKSkN
CgkJc2MtPmxpbmVfY3RsID0gTE9XX1JYX1NRVUVMQ0g7DQoJZWxzZQ0KCQlz
Yy0+bGluZV9jdGwgPSAwOw0KDQoJc3dpdGNoIChzYy0+YWRhcHRlcl9jbmYg
JiBBX0NORl9NRURJQV9UWVBFKSB7DQoJICBjYXNlIEFfQ05GX01FRElBXzEw
Ql9UOg0KCSAgICByZXN1bHQgPSBzYy0+YWRhcHRlcl9jbmYgJiBBX0NORl8x
MEJfVDsNCgkgICAgYnJlYWs7DQoJICBjYXNlIEFfQ05GX01FRElBX0FVSToN
CgkgICAgcmVzdWx0ID0gc2MtPmFkYXB0ZXJfY25mICYgQV9DTkZfQVVJOw0K
CSAgICBicmVhazsNCgkgIGNhc2UgQV9DTkZfTUVESUFfMTBCXzI6DQoJICAg
IHJlc3VsdCA9IHNjLT5hZGFwdGVyX2NuZiAmIEFfQ05GXzEwQl8yOw0KCSAg
ICBicmVhazsNCgkgIGRlZmF1bHQ6DQoJICAgIHJlc3VsdCA9IHNjLT5hZGFw
dGVyX2NuZiAmIChBX0NORl8xMEJfVCB8IEFfQ05GX0FVSSB8IEFfQ05GXzEw
Ql8yKTsNCgl9DQoNCglpZiAoIXJlc3VsdCkgew0KCQlwcmludGYoQ1NfTkFN
RSIlMWQ6IHVuYXZhaWxhYmxlIG1lZGlhIVxuIiwgdW5pdCk7DQoJCXJldHVy
biAwOw0KCX0NCg0KCXN3aXRjaCAoc2MtPmFkYXB0ZXJfY25mICYgQV9DTkZf
TUVESUFfVFlQRSl7DQoNCgkgIGNhc2UgQV9DTkZfTUVESUFfMTBCX1Q6DQoJ
ICAgIHJlc3VsdCA9IGRldGVjdF90cChzYyk7DQoJICAgIGlmICghcmVzdWx0
KQ0KCQkgICAgcHJpbnRmKENTX05BTUUiJTFkOiAxMEJhc2UtVCAoUkotNDUp
IGhhcyBubyBjYWJsZVxuIiwNCgkJCSAgIHVuaXQpOw0KCSAgICBpZiAoc2Mt
PmF1dG9fbmVnX2NuZiAmIElNTV9CSVQpDQoJCSAgICByZXN1bHQgPSBBX0NO
Rl9NRURJQV8xMEJfVDsNCgkgICAgYnJlYWs7DQoNCgkgIGNhc2UgQV9DTkZf
TUVESUFfQVVJOg0KCSAgICByZXN1bHQgPSBkZXRlY3RfYXVpKHNjKTsNCgkg
ICAgaWYgKCFyZXN1bHQpDQoJCSAgICBwcmludGYoQ1NfTkFNRSIlMWQ6IDEw
QmFzZS01IChBVUkpIGhhcyBubyBjYWJsZVxuIiwgdW5pdCk7DQoJICAgIGlm
IChzYy0+YXV0b19uZWdfY25mICYgSU1NX0JJVCkNCgkJICAgIHJlc3VsdCA9
IEFfQ05GX01FRElBX0FVSTsNCgkgICAgYnJlYWs7DQoNCgkgIGNhc2UgQV9D
TkZfTUVESUFfMTBCXzI6DQoJICAgIHJlc3VsdCA9IGRldGVjdF9ibmMoc2Mp
Ow0KCSAgICBpZiAoIXJlc3VsdCkNCgkJICAgIHByaW50ZihDU19OQU1FIiUx
ZDogMTBCYXNlLTIgKEJOQykgaGFzIG5vIGNhYmxlXG4iLCB1bml0KTsNCgkg
ICAgaWYgKHNjLT5hdXRvX25lZ19jbmYgJiBJTU1fQklUKQ0KCQkgICAgcmVz
dWx0ID0gQV9DTkZfTUVESUFfMTBCXzI7DQoJICAgIGJyZWFrOw0KDQoJICBj
YXNlIEFfQ05GX01FRElBX0FVVE86DQoJICAgIGNzX3dyaXRlcmVnKHNjLT5u
aWNfYWRkciwgUFBfTGluZUNUTCwNCgkJCXNjLT5saW5lX2N0bCB8IEFVVE9f
QVVJXzEwQkFTRVQpOw0KCSAgICBpZiAoKHNjLT5hZGFwdGVyX2NuZiAmIEFf
Q05GXzEwQl9UKSAmJg0KCQkoKHJlc3VsdD1kZXRlY3RfdHAoc2MpKSE9MCkp
DQoJCSAgICBicmVhazsNCgkgICAgaWYgKChzYy0+YWRhcHRlcl9jbmYgJiBB
X0NORl9BVUkgKSAmJg0KCQkoKHJlc3VsdD1kZXRlY3RfYXVpKHNjKSkhPTAp
KQ0KCQkgICAgYnJlYWs7DQoJICAgIGlmICgoc2MtPmFkYXB0ZXJfY25mICYg
QV9DTkZfMTBCXzIpICYmDQoJCSgocmVzdWx0PWRldGVjdF9ibmMoc2MpKSE9
MCkpDQoJCSAgICBicmVhazsNCgkgICAgcHJpbnRmKENTX05BTUUiJTFkOiBu
byBtZWRpYSBkZXRlY3RlZFxuIiwgdW5pdCk7DQoJICAgIHJldHVybiAwOw0K
CX0NCg0KCXN3aXRjaCAocmVzdWx0KXsNCgkgIGNhc2UgMDoNCgkgICAgcHJp
bnRmKENTX05BTUUiJTFkOiBubyBjYWJsZSBhdHRhY2hlZCB0byBjb25maWd1
cmVkIG1lZGlhXG4iLCB1bml0KTsNCgkgICAgYnJlYWs7DQoJICBjYXNlIEFf
Q05GX01FRElBXzEwQl9UOg0KCSAgICBpZiAoYm9vdHZlcmJvc2UpDQoJCSAg
ICBwcmludGYoQ1NfTkFNRSIlMWQ6IHVzaW5nIDEwQmFzZS1UIChSSi00NSlc
biIsIHVuaXQpOw0KCSAgICBicmVhazsNCgkgIGNhc2UgQV9DTkZfTUVESUFf
QVVJOg0KCSAgICBpZiAoYm9vdHZlcmJvc2UpDQoJCSAgICBwcmludGYoQ1Nf
TkFNRSIlMWQ6IHVzaW5nIDEwQmFzZS01IChBVUkpXG4iLCB1bml0KTsNCgkg
ICAgYnJlYWs7DQoJICBjYXNlIEFfQ05GX01FRElBXzEwQl8yOg0KCSAgICBp
ZiAoYm9vdHZlcmJvc2UpDQoJCSAgICBwcmludGYoQ1NfTkFNRSIlMWQ6IHVz
aW5nIDEwQmFzZS0yIChCTkMpXG4iLCB1bml0KTsNCgkgICAgYnJlYWs7DQoJ
ICBkZWZhdWx0Og0KCSAgICBwcmludGYoQ1NfTkFNRSIlMWQ6IHVuZXhwZWN0
ZWQgcmVzdWx0IGluIG1lZGlhIGRldGVjdC5cbiIsIHVuaXQpOw0KCSAgICBy
ZXR1cm4gMDsNCgl9DQoNCglyZXR1cm4gUFBfSVNBSU9COw0KfQ0KDQovKg0K
ICogRGV0ZXJtaW5lIGlmIHRoZSBkZXZpY2UgaXMgcHJlc2VudA0KICoNCiAq
ICAgb24gZW50cnk6DQogKiAJYSBwb2ludGVyIHRvIGFuIGlzYV9kZXZpY2Ug
c3RydWN0DQogKiAgIG9uIGV4aXQ6DQogKglOVUxMIGlmIGRldmljZSBub3Qg
Zm91bmQNCiAqCW9yICMgb2YgaS9vIGFkZHJlc3NlcyB1c2VkIChpZiBmb3Vu
ZCkNCiAqLw0Kc3RhdGljIGludA0KY3NfcHJvYmUoc3RydWN0IGlzYV9kZXZp
Y2UgKmRldikNCnsNCglpbnQgbnBvcnRzOw0KDQoJbnBvcnRzID0gY3NfY3M4
OXgwX3Byb2JlKGRldik7DQoJaWYgKG5wb3J0cykNCgkJcmV0dXJuIChucG9y
dHMpOw0KDQoJcmV0dXJuICgwKTsNCn0NCg0KLyoNCiAqIEluc3RhbGwgdGhl
IGludGVyZmFjZSBpbnRvIGtlcm5lbCBuZXR3b3JraW5nIGRhdGEgc3RydWN0
dXJlcw0KICovDQpzdGF0aWMgaW50DQpjc19hdHRhY2goc3RydWN0IGlzYV9k
ZXZpY2UgKmRldikNCnsNCglzdHJ1Y3QgY3Nfc29mdGMgKnNjID0gJmNzX3Nv
ZnRjW2Rldi0+aWRfdW5pdF07DQoJc3RydWN0IGlmbmV0ICppZnAgPSAmKHNj
LT5hcnBjb20uYWNfaWYpOw0KDQoJaWYgKCFpZnAtPmlmX25hbWUpIHsNCgkJ
aWZwLT5pZl9zb2Z0Yz1zYzsNCgkJaWZwLT5pZl91bml0PWRldi0+aWRfdW5p
dDsNCgkJaWZwLT5pZl9uYW1lPWNzZHJpdmVyLm5hbWU7DQoJCWlmcC0+aWZf
b3V0cHV0PWV0aGVyX291dHB1dDsNCgkJaWZwLT5pZl9zdGFydD1jc19zdGFy
dDsNCgkJaWZwLT5pZl9pb2N0bD1jc19pb2N0bDsNCgkJaWZwLT5pZl93YXRj
aGRvZz1jc193YXRjaGRvZzsNCgkJaWZwLT5pZl9pbml0PWNzX2luaXQ7DQoJ
CWlmcC0+aWZfc25kLmlmcV9tYXhsZW49IElGUV9NQVhMRU47DQoJCS8qDQoJ
CSAqICBNSUIgREFUQQ0KCQkgaWZwLT5pZl9saW5rbWliPSZzYy0+bWliZGF0
YTsNCgkJIGlmcC0+aWZfbGlua21pYmxlbj1zaXplb2Ygc2MtPm1pYmRhdGE7
DQoJCSAqLw0KDQoJCWlmcC0+aWZfZmxhZ3M9KElGRl9CUk9BRENBU1QgfCBJ
RkZfU0lNUExFWCB8IElGRl9NVUxUSUNBU1QgKTsNCg0KCQkvKg0KCQkgKiB0
aGlzIGNvZGUgc3RpbGwgaW4gcHJvZ3Jlc3MgKERNQSBzdXBwb3J0KQ0KCQkg
Kg0KDQoJCXNjLT5yZWN2X3Jpbmc9bWFsbG9jKENTX0RNQV9CVUZGRVJfU0la
RTw8MSwgTV9ERVZCVUYsIE1fTk9XQUlUKTsNCgkJaWYgKHNjLT5yZWN2X3Jp
bmcgPT0gTlVMTCkgew0KCQkJbG9nKExPR19FUlIsQ1NfTkFNRQ0KCQkJIiVk
OiBDb3VsZG4ndCBhbGxvY2F0ZSBtZW1vcnkgZm9yIE5JQ1xuIiwgZGV2LT5p
ZF91bml0KTsNCgkJCXJldHVybigwKTsNCgkJfQ0KCQlpZiAoKHNjLT5yZWN2
X3JpbmctKHNjLT5yZWN2X3JpbmcgJiAweDFGRkZGKSkNCgkJICAgIDwgKDEy
OCoxMDI0LUNTX0RNQV9CVUZGRVJfU0laRSkpDQoJCSAgICBzYy0+cmVjdl9y
aW5nKz0xNioxMDI0Ow0KDQoJCSovDQoNCgkJc2MtPmJ1ZmZlcj1tYWxsb2Mo
RVRIRVJfTUFYX0xFTi1FVEhFUl9DUkNfTEVOLE1fREVWQlVGLE1fTk9XQUlU
KTsNCgkJaWYgKHNjLT5idWZmZXIgPT0gTlVMTCkgew0KCQkJbG9nKExPR19F
UlIsQ1NfTkFNRQ0KCQkJICAgICIlZDogQ291bGRuJ3QgYWxsb2NhdGUgbWVt
b3J5IGZvciBOSUNcbiIsDQoJCQkgICAgZGV2LT5pZF91bml0KTsNCgkJCXJl
dHVybigwKTsNCgkJfQ0KDQoJCWlmX2F0dGFjaChpZnApOw0KCQljc19zdG9w
KCBzYyApOw0KCQlldGhlcl9pZmF0dGFjaChpZnApOw0KCX0NCg0KCWlmIChi
b290dmVyYm9zZSkNCgkJcHJpbnRmKENTX05BTUUiJWQ6IGV0aGVybmV0IGFk
ZHJlc3MgJTZEXG4iLA0KCQkgICAgICAgaWZwLT5pZl91bml0LCBzYy0+YXJw
Y29tLmFjX2VuYWRkciwgIjoiKTsNCg0KI2lmIE5CUEZJTFRFUiA+IDANCgli
cGZhdHRhY2goaWZwLCBETFRfRU4xME1CLCBzaXplb2YgKHN0cnVjdCBldGhl
cl9oZWFkZXIpKTsNCiNlbmRpZg0KCXJldHVybiAxOw0KfQ0KDQovKg0KICog
SW5pdGlhbGl6ZSB0aGUgYm9hcmQNCiAqLw0Kc3RhdGljIHZvaWQNCmNzX2lu
aXQodm9pZCAqeHNjKQ0Kew0KCXN0cnVjdCBjc19zb2Z0YyAqc2M9KHN0cnVj
dCBjc19zb2Z0YyAqKXhzYzsNCglzdHJ1Y3QgaWZuZXQgKmlmcCA9ICZzYy0+
YXJwY29tLmFjX2lmOw0KCWludCBpLCBzLCByZXN1bHQsIHJ4X2NmZzsNCg0K
CWlmIChpZnAtPmlmX2FkZHJsaXN0ID09IChzdHJ1Y3QgaWZhZGRyICopIDAp
DQoJCXJldHVybjsNCg0KCS8qDQoJICogcmVzZXQgd2hhdGNoZG9nIHRpbWVy
DQoJICovDQoJaWZwLT5pZl90aW1lcj0wOw0KCXNjLT5idWZfbGVuID0gMDsN
CgkNCglzPXNwbGltcCgpOw0KDQoJLyoNCgkgKiBIYXJkd2FyZSBpbml0aWFs
aXphdGlvbiBvZiBjcw0KCSAqLw0KDQoJLyogRW5hYmxlIHJlY2VpdmVyIGFu
ZCB0cmFuc21pdHRlciAqLw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwg
UFBfTGluZUNUTCwNCgkJICAgIGNzX3JlYWRyZWcoIHNjLT5uaWNfYWRkciwg
UFBfTGluZUNUTCApIHwNCgkJICAgIFNFUklBTF9SWF9PTiB8IFNFUklBTF9U
WF9PTik7DQoNCgkvKiBDb25maWd1cmUgdGhlIHJlY2VpdmVyIG1vZGUgKi8N
Cgljc19zZXRtb2RlKHNjKTsNCg0KCS8qDQoJICogVGhpcyBkZWZpbmVzIHdo
YXQgdHlwZSBvZiBmcmFtZXMgd2lsbCBjYXVzZSBpbnRlcnJ1cHRzDQoJICog
QmFkIGZyYW1lcyBzaG91bGQgZ2VuZXJhdGUgaW50ZXJydXB0cyBzbyB0aGF0
IHRoZSBkcml2ZXINCgkgKiBjb3VsZCB0cmFjayBzdGF0aXN0aWNzIG9mIGRp
c2NhcmRlZCBwYWNrZXRzDQoJICovDQogICAgICAgIHJ4X2NmZyA9IFJYX09L
X0VOQkwgfCBSWF9DUkNfRVJST1JfRU5CTCB8IFJYX1JVTlRfRU5CTCB8DQoJ
CSBSWF9FWFRSQV9EQVRBX0VOQkw7DQoJaWYgKHNjLT5pc2FfY29uZmlnICYg
U1RSRUFNX1RSQU5TRkVSKQ0KCQlyeF9jZmcgfD0gUlhfU1RSRUFNX0VOQkw7
DQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9SeENGRywgcnhfY2Zn
KTsNCg0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfVHhDRkcsIFRY
X0xPU1RfQ1JTX0VOQkwgfA0KCQkgICAgVFhfU1FFX0VSUk9SX0VOQkwgfCBU
WF9PS19FTkJMIHwgVFhfTEFURV9DT0xfRU5CTCB8DQoJCSAgICBUWF9KQlJf
RU5CTCB8IFRYX0FOWV9DT0xfRU5CTCB8IFRYXzE2X0NPTF9FTkJMKTsNCg0K
CWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfQnVmQ0ZHLCBSRUFEWV9G
T1JfVFhfRU5CTCB8DQoJCSAgICBSWF9NSVNTX0NPVU5UX09WUkZMT1dfRU5C
TCB8IFRYX0NPTF9DT1VOVF9PVlJGTE9XX0VOQkwgfA0KCQkgICAgVFhfVU5E
RVJSVU5fRU5CTCAvKnwgUlhfRE1BX0VOQkwqLyk7DQoNCgkvKg0KCSAqIE5v
dyBlbmFibGUgZXZlcnl0aGluZw0KCSAqLw0KLyoNCiNpZmRlZglDU19VU0Vf
NjRLX0RNQQ0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfQnVzQ1RM
LCBFTkFCTEVfSVJRIHwgUlhfRE1BX1NJWkVfNjRLKTsNCiAgICAgICAgI2Vs
c2UNCg0KICAgICAgICBjc193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0J1
c0NUTCwgRU5BQkxFX0lSUSk7DQojZW5kaWYNCiovDQoJY3Nfd3JpdGVyZWco
c2MtPm5pY19hZGRyLCBQUF9CdXNDVEwsIEVOQUJMRV9JUlEpOw0KCQ0KCS8q
DQoJICogU2V0IHJ1bm5pbmcgYW5kIGNsZWFyIG91dHB1dCBhY3RpdmUgZmxh
Z3MNCgkgKi8NCglzYy0+YXJwY29tLmFjX2lmLmlmX2ZsYWdzIHw9IElGRl9S
VU5OSU5HOw0KCXNjLT5hcnBjb20uYWNfaWYuaWZfZmxhZ3MgJj0gfklGRl9P
QUNUSVZFOw0KDQoJLyoNCgkgKiBTdGFydCBzZW5kaW5nIHByb2Nlc3MNCgkg
Ki8NCgljc19zdGFydChpZnApOw0KDQoJKHZvaWQpIHNwbHgocyk7DQp9DQoN
Ci8qDQogKiBHZXQgdGhlIHBhY2tldCBmcm9tIHRoZSBib2FyZCBhbmQgc2Vu
ZCBpdCB0byB0aGUgdXBwZXIgbGF5ZXINCiAqIHZpYSBldGhlcl9pbnB1dCgp
Lg0KICovDQpzdGF0aWMgaW50DQpjc19nZXRfcGFja2V0KHN0cnVjdCBjc19z
b2Z0YyAqc2MpDQp7DQoJc3RydWN0IGlmbmV0ICppZnAgPSAmKHNjLT5hcnBj
b20uYWNfaWYpOw0KCWludCBpb2Jhc2UgPSBzYy0+bmljX2FkZHIsIHN0YXR1
cywgbGVuZ3RoOw0KCXN0cnVjdCBldGhlcl9oZWFkZXIgKmVoOw0KCXN0cnVj
dCBtYnVmICptOw0KDQoJc3RhdHVzID0gaW53KGlvYmFzZSArIFJYX0ZSQU1F
X1BPUlQpOw0KCWxlbmd0aCA9IGludyhpb2Jhc2UgKyBSWF9GUkFNRV9QT1JU
KTsNCg0KI2lmZGVmIENTX0RFQlVHDQoJcHJpbnRmKENTX05BTUUiJTFkOiBy
Y3ZkOiBzdGF0ICV4LCBsZW4gJWRcbiIsDQoJCWlmcC0+aWZfdW5pdCwgc3Rh
dHVzLCBsZW5ndGgpOw0KI2VuZGlmDQoNCglpZiAoIShzdGF0dXMgJiBSWF9P
SykpIHsNCiNpZmRlZiBDU19ERUJVRw0KCQlwcmludGYoQ1NfTkFNRSIlMWQ6
IGJhZCBwa3Qgc3RhdCAleFxuIiwgaWZwLT5pZl91bml0LCBzdGF0dXMpOw0K
I2VuZGlmDQoJCWlmcC0+aWZfaWVycm9ycysrOw0KCQlyZXR1cm4gLTE7DQoJ
fQ0KDQoJTUdFVEhEUihtLCBNX0RPTlRXQUlULCBNVF9EQVRBKTsNCglpZiAo
bT09TlVMTCkNCgkJcmV0dXJuIC0xOw0KDQoJaWYgKGxlbmd0aCA+IE1ITEVO
KSB7DQoJCU1DTEdFVChtLCBNX0RPTlRXQUlUKTsNCgkJaWYgKCEobS0+bV9m
bGFncyAmIE1fRVhUKSkgew0KCQkJbV9mcmVlbShtKTsNCgkJCXJldHVybiAt
MTsNCgkJfQ0KCX0NCg0KCS8qIEluaXRpYWxpemUgcGFja2V0J3MgaGVhZGVy
IGluZm8gKi8NCgltLT5tX3BrdGhkci5yY3ZpZiA9IGlmcDsNCgltLT5tX3Br
dGhkci5sZW4gPSBsZW5ndGg7DQoJbS0+bV9sZW4gPSBsZW5ndGg7DQoNCgkv
KiBHZXQgdGhlIGRhdGEgKi8NCglpbnN3KGlvYmFzZSArIFJYX0ZSQU1FX1BP
UlQsIG0tPm1fZGF0YSwgKGxlbmd0aCsxKT4+MSk7DQoNCgllaCA9IG10b2Qo
bSwgc3RydWN0IGV0aGVyX2hlYWRlciAqKTsNCg0KI2lmIE5CUEZJTFRFUiA+
IDANCglpZiAoaWZwLT5pZl9icGYpDQoJCWJwZl9tdGFwKGlmcCwgbSk7DQoj
ZW5kaWYNCg0KI2lmZGVmIENTX0RFQlVHDQoJZm9yIChsZW5ndGgvPTI7IGxl
bmd0aDsgbGVuZ3RoLS0pDQoJCXByaW50ZigiICUwNHgiLCBtLT5tX2RhdGEr
bGVuZ3RoKTsNCglwcmludGYoICJcbiIgKTsNCiNlbmRpZg0KDQoJaWYgKHN0
YXR1cyAmIChSWF9JQSB8IFJYX0JST0FEQ0FTVCkgfHwgDQoJICAgIChpZnAt
PmlmX2ZsYWdzICYgSUZGX01VTFRJQ0FTVCAmJiBzdGF0dXMgJiBSWF9IQVNI
RUQpKSB7DQoJCW0tPm1fcGt0aGRyLmxlbiAtPSBzaXplb2Yoc3RydWN0IGV0
aGVyX2hlYWRlcik7DQoJCW0tPm1fbGVuIC09IHNpemVvZihzdHJ1Y3QgZXRo
ZXJfaGVhZGVyKTsNCgkJbS0+bV9kYXRhICs9IHNpemVvZihzdHJ1Y3QgZXRo
ZXJfaGVhZGVyKTsNCg0KCQkvKiBGZWVkIHRoZSBwYWNrZXQgdG8gdGhlIHVw
cGVyIGxheWVyICovDQoJCWV0aGVyX2lucHV0KGlmcCwgZWgsIG0pOw0KDQoJ
CWlmcC0+aWZfaXBhY2tldHMrKzsNCg0KCQlpZiAobGVuZ3RoPT1FVEhFUl9N
QVhfTEVOLUVUSEVSX0NSQ19MRU4pDQoJCQlERUxBWSggNTcwICk7DQoJfSBl
bHNlIHsNCgkJbV9mcmVlbShtKTsNCgl9DQoNCglyZXR1cm4gMDsNCn0NCg0K
LyoNCiAqIEhhbmRsZSBpbnRlcnJ1cHRzDQogKi8NCnZvaWQNCmNzaW50cihp
bnQgdW5pdCkNCnsNCglzdHJ1Y3QgY3Nfc29mdGMgKnNjID0gJmNzX3NvZnRj
W3VuaXRdOw0KCXN0cnVjdCBpZm5ldCAqaWZwID0gJihzYy0+YXJwY29tLmFj
X2lmKTsNCglpbnQgc3RhdHVzLCBzOw0KDQojaWZkZWYgQ1NfREVCVUcNCglw
cmludGYoQ1NfTkFNRSIlMWQ6IEludGVycnVwdC5cbiIsIHVuaXQpOw0KI2Vu
ZGlmDQoNCgl3aGlsZSAoKHN0YXR1cz1jc19yZWFkd29yZChzYy0+bmljX2Fk
ZHIsIElTUV9QT1JUKSkpIHsNCg0KI2lmZGVmIENTX0RFQlVHDQoJCXByaW50
ZiggQ1NfTkFNRSIlMWQ6ZnJvbSBJU1E6ICUwNHhcbiIsIHVuaXQsIHN0YXR1
cyApOw0KI2VuZGlmDQoNCgkJc3dpdGNoIChzdGF0dXMgJiBJU1FfRVZFTlRf
TUFTSykgew0KCQkgIGNhc2UgSVNRX1JFQ0VJVkVSX0VWRU5UOg0KCQkgICAg
Y3NfZ2V0X3BhY2tldChzYyk7DQoJCSAgICBicmVhazsNCg0KCQkgIGNhc2Ug
SVNRX1RSQU5TTUlUVEVSX0VWRU5UOg0KCQkgICAgaWYgKHN0YXR1cyAmIFRY
X09LKQ0KCQkJICAgIGlmcC0+aWZfb3BhY2tldHMrKzsNCgkJICAgIGVsc2UN
CgkJCSAgICBpZnAtPmlmX29lcnJvcnMrKzsNCgkJICAgIGlmcC0+aWZfZmxh
Z3MgJj0gfklGRl9PQUNUSVZFOw0KCQkgICAgaWZwLT5pZl90aW1lciA9IDA7
DQoJCSAgICBicmVhazsNCg0KCQkgIGNhc2UgSVNRX0JVRkZFUl9FVkVOVDoN
CgkJICAgIGlmIChzdGF0dXMgJiBSRUFEWV9GT1JfVFgpIHsNCgkJCSAgICBp
ZnAtPmlmX2ZsYWdzICY9IH5JRkZfT0FDVElWRTsNCgkJCSAgICBpZnAtPmlm
X3RpbWVyID0gMDsNCgkJICAgIH0NCg0KCQkgICAgaWYgKHN0YXR1cyAmIFRY
X1VOREVSUlVOKSB7DQoJCQkgICAgaWZwLT5pZl9mbGFncyAmPSB+SUZGX09B
Q1RJVkU7DQoJCQkgICAgaWZwLT5pZl90aW1lciA9IDA7DQoJCQkgICAgaWZw
LT5pZl9vZXJyb3JzKys7DQoJCSAgICB9DQoJCSAgICBicmVhazsNCg0KCQkg
IGNhc2UgSVNRX1JYX01JU1NfRVZFTlQ6DQoJCSAgICBpZnAtPmlmX2llcnJv
cnMrPShzdGF0dXM+PjYpOw0KCQkgICAgYnJlYWs7DQoNCgkJICBjYXNlIElT
UV9UWF9DT0xfRVZFTlQ6DQoJCSAgICBpZnAtPmlmX2NvbGxpc2lvbnMrPShz
dGF0dXM+PjYpOw0KCQkgICAgYnJlYWs7DQoJCX0NCgl9DQoNCglpZiAoIShp
ZnAtPmlmX2ZsYWdzICYgSUZGX09BQ1RJVkUpKSB7DQoJCWNzX3N0YXJ0KGlm
cCk7DQoJfQ0KfQ0KDQovKg0KICogU2F2ZSB0aGUgZGF0YSBpbiBidWZmZXIN
CiAqLw0KDQpzdGF0aWMgdm9pZA0KY3Nfd3JpdGVfbWJ1ZnMoIHN0cnVjdCBj
c19zb2Z0YyAqc2MsIHN0cnVjdCBtYnVmICptICkNCnsNCglpbnQgbGVuOw0K
CXN0cnVjdCBtYnVmICptcDsNCgl1bnNpZ25lZCBjaGFyICpkYXRhLCAqYnVm
Ow0KDQoJZm9yIChtcD1tLCBidWY9c2MtPmJ1ZmZlciwgc2MtPmJ1Zl9sZW49
MDsgbXAgIT0gTlVMTDsgbXA9bXAtPm1fbmV4dCkgew0KCQlsZW4gPSBtcC0+
bV9sZW47DQoNCgkJLyoNCgkJICogSWdub3JlIGVtcHR5IHBhcnRzDQoJCSAq
Lw0KCQlpZiAoIWxlbikNCgkJY29udGludWU7DQoNCgkJLyoNCgkJICogRmlu
ZCBhY3R1YWwgZGF0YSBhZGRyZXNzDQoJCSAqLw0KCQlkYXRhID0gbXRvZCht
cCwgY2FkZHJfdCk7DQoNCgkJYmNvcHkoKGNhZGRyX3QpIGRhdGEsIChjYWRk
cl90KSBidWYsIGxlbik7DQoJCWJ1ZiArPSBsZW47DQoJCXNjLT5idWZfbGVu
ICs9IGxlbjsNCgl9DQp9DQoNCg0Kc3RhdGljIHZvaWQNCmNzX3htaXRfYnVm
KCBzdHJ1Y3QgY3Nfc29mdGMgKnNjICkNCnsNCglvdXRzdyhzYy0+bmljX2Fk
ZHIrVFhfRlJBTUVfUE9SVCwgc2MtPmJ1ZmZlciwgKHNjLT5idWZfbGVuKzEp
Pj4xKTsNCglzYy0+YnVmX2xlbiA9IDA7DQp9DQoNCnN0YXRpYyB2b2lkDQpj
c19zdGFydChzdHJ1Y3QgaWZuZXQgKmlmcCkNCnsNCglpbnQgcywgbGVuZ3Ro
Ow0KCXN0cnVjdCBtYnVmICptLCAqbXA7DQoJc3RydWN0IGNzX3NvZnRjICpz
YyA9IGlmcC0+aWZfc29mdGM7DQoNCglzID0gc3BsaW1wKCk7DQoNCglmb3Ig
KDs7KSB7DQoJCWlmIChzYy0+YnVmX2xlbikNCgkJCWxlbmd0aCA9IHNjLT5i
dWZfbGVuOw0KCQllbHNlIHsNCgkJCUlGX0RFUVVFVUUoICZpZnAtPmlmX3Nu
ZCwgbSApOw0KDQoJCQlpZiAobT09TlVMTCkgew0KCQkJCSh2b2lkKSBzcGx4
KHMpOw0KCQkJCXJldHVybjsNCgkJCX0NCg0KCQkJZm9yIChsZW5ndGg9MCwg
bXA9bTsgbXAgIT0gTlVMTDsgbXA9bXAtPm1fbmV4dCkNCgkJCQlsZW5ndGgg
Kz0gbXAtPm1fbGVuOw0KDQoJCQkvKiBTa2lwIHplcm8tbGVuZ3RoIHBhY2tl
dHMgKi8NCgkJCWlmIChsZW5ndGggPT0gMCkgew0KCQkJCW1fZnJlZW0obSk7
DQoJCQkJY29udGludWU7DQoJCQl9DQoNCgkJCWNzX3dyaXRlX21idWZzKHNj
LCBtKTsNCg0KI2lmIE5CUEZJTFRFUiA+IDANCgkJCWlmIChpZnAtPmlmX2Jw
Zikgew0KCQkJCWJwZl9tdGFwKGlmcCwgbSk7DQoJCQl9DQojZW5kaWYNCg0K
CQkJbV9mcmVlbShtKTsNCgkJfQ0KDQoJCS8qDQoJCSAqIElzc3VlIGEgU0VO
RCBjb21tYW5kDQoJCSAqLw0KCQlvdXR3KHNjLT5uaWNfYWRkcitUWF9DTURf
UE9SVCwgc2MtPnNlbmRfY21kKTsNCgkJb3V0dyhzYy0+bmljX2FkZHIrVFhf
TEVOX1BPUlQsIGxlbmd0aCApOw0KDQoJCS8qDQoJCSAqIElmIHRoZXJlJ3Mg
bm8gZnJlZSBzcGFjZSBpbiB0aGUgYnVmZmVyIHRoZW4gbGVhdmUNCgkJICog
dGhpcyBwYWNrZXQgZm9yIHRoZSBuZXh0IHRpbWU6IGluZGljYXRlIG91dHB1
dCBhY3RpdmUNCgkJICogYW5kIHJldHVybi4NCgkJICovDQoJCWlmICghKGNz
X3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQUF9CdXNTVCkgJiBSRUFEWV9GT1Jf
VFhfTk9XKSkgew0KCQkJaWZwLT5pZl90aW1lciA9IHNjLT5idWZfbGVuOw0K
CQkJKHZvaWQpIHNwbHgocyk7DQoJCQlpZnAtPmlmX2ZsYWdzIHw9IElGRl9P
QUNUSVZFOw0KCQkJcmV0dXJuOw0KCQl9DQoNCiAgICAgICAgICAgICAgIAlj
c194bWl0X2J1ZihzYyk7DQoNCgkJLyoNCgkJICogU2V0IHRoZSB3YXRjaGRv
ZyB0aW1lciBpbiBjYXNlIHdlIG5ldmVyIGhlYXINCgkJICogZnJvbSBib2Fy
ZCBhZ2Fpbi4gKEkgZG9uJ3Qga25vdyBhYm91dCBjb3JyZWN0DQoJCSAqIHZh
bHVlIGZvciB0aGlzIHRpbWVvdXQpDQoJCSAqLw0KCQlpZnAtPmlmX3RpbWVy
ID0gbGVuZ3RoOw0KDQoJCSh2b2lkKSBzcGx4KHMpOw0KCQlpZnAtPmlmX2Zs
YWdzIHw9IElGRl9PQUNUSVZFOw0KCQlyZXR1cm47DQoJfQ0KfQ0KDQovKg0K
ICogU3RvcCBldmVyeXRoaW5nIG9uIHRoZSBpbnRlcmZhY2UNCiAqLw0Kc3Rh
dGljIHZvaWQNCmNzX3N0b3Aoc3RydWN0IGNzX3NvZnRjICpzYykNCnsNCglp
bnQgcyA9IHNwbGltcCgpOw0KDQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRy
LCBQUF9SeENGRywgMCk7DQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQ
UF9UeENGRywgMCk7DQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9C
dWZDRkcsIDApOw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfQnVz
Q1RMLCAwKTsNCg0KCXNjLT5hcnBjb20uYWNfaWYuaWZfZmxhZ3MgJj0gfihJ
RkZfUlVOTklORyB8IElGRl9PQUNUSVZFKTsNCglzYy0+YXJwY29tLmFjX2lm
LmlmX3RpbWVyID0gMDsNCg0KCSh2b2lkKSBzcGx4KHMpOw0KfQ0KDQovKg0K
ICogUmVzZXQgdGhlIGludGVyZmFjZQ0KICovDQpzdGF0aWMgdm9pZA0KY3Nf
cmVzZXQoc3RydWN0IGNzX3NvZnRjICpzYykNCnsNCgljc19zdG9wKHNjKTsN
Cgljc19pbml0KHNjKTsNCn0NCg0Kc3RhdGljIHZvaWQNCmNzX3NldG1vZGUo
c3RydWN0IGNzX3NvZnRjICpzYykNCnsNCglzdHJ1Y3QgaWZuZXQgKmlmcCA9
ICYoc2MtPmFycGNvbS5hY19pZik7DQoJaW50IHJ4X2N0bDsNCg0KCS8qIFN0
b3AgdGhlIHJlY2VpdmVyIHdoaWxlIGNoYW5naW5nIGZpbHRlcnMgKi8NCglj
c193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0xpbmVDVEwsIA0KCQkJY3Nf
cmVhZHJlZyhzYy0+bmljX2FkZHIsIFBQX0xpbmVDVEwpICYgflNFUklBTF9S
WF9PTik7DQoNCglpZiAoaWZwLT5pZl9mbGFncyAmIElGRl9QUk9NSVNDKSB7
DQoJCS8qIFR1cm4gb24gcHJvbWlzY3VvdXMgbW9kZS4gKi8NCgkJcnhfY3Rs
ID0gUlhfT0tfQUNDRVBUIHwgUlhfUFJPTV9BQ0NFUFQ7DQoJfSBlbHNlIHsN
CgkJaWYgKGlmcC0+aWZfZmxhZ3MgJiBJRkZfTVVMVElDQVNUKSB7DQoJCQkv
KiBBbGxvdyByZWNlaXZpbmcgZnJhbWVzIHdpdGggbXVsdGljYXN0IGFkZHJl
c3NlcyAqLw0KCQkJcnhfY3RsID0gUlhfSUFfQUNDRVBUIHwgUlhfQlJPQURD
QVNUX0FDQ0VQVCB8DQoJCQkJIFJYX09LX0FDQ0VQVCB8IFJYX01VTFRDQVNU
X0FDQ0VQVDsNCgkJCS8qDQoJCQkgKiBIZXJlIHRoZSByZWNvbmZpZ3VyYXRp
b24gb2YgY2hpcCdzIG11bHRpY2FzdA0KCQkJICogZmlsdGVycyBzaG91bGQg
YmUgZG9uZSBidXQgSSd2ZSBubyBpZGVhIGFib3V0DQoJCQkgKiBoYXNoIHRy
YW5zZm9ybWF0aW9uIGluIHRoaXMgY2hpcC4gSWYgeW91IGNhbg0KCQkJICog
YWRkIHRoaXMgY29kZSBvciBkZXNjcmliZSBtZSB0aGUgdHJhbnNmb3JtYXRp
b24NCgkJCSAqIEknZCBiZSB2ZXJ5IGdsYWQuDQoJCQkgKi8NCgkJfSBlbHNl
IHsNCgkJCS8qDQoJCQkgKiBSZWNlaXZlIG9ubHkgZ29vZCBmcmFtZXMgYWRk
cmVzc2VkIGZvciB1cyBhbmQNCgkJCSAqIGdvb2QgYnJvYWRjYXN0cy4NCgkJ
CSAqLw0KCQkJcnhfY3RsID0gUlhfSUFfQUNDRVBUIHwgUlhfQlJPQURDQVNU
X0FDQ0VQVCB8DQoJCQkJIFJYX09LX0FDQ0VQVDsNCgkJfQ0KCX0NCg0KCS8q
IFNldCB1cCB0aGUgZmlsdGVyICovDQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19h
ZGRyLCBQUF9SeENUTCwgUlhfREVGX0FDQ0VQVCB8IFJYX01VTFRDQVNUX0FD
Q0VQVCk7DQoNCgkvKiBUdXJuIG9uIHJlY2VpdmVyICovDQoJY3Nfd3JpdGVy
ZWcoc2MtPm5pY19hZGRyLCBQUF9MaW5lQ1RMLA0KCQkJY3NfcmVhZHJlZyhz
Yy0+bmljX2FkZHIsIFBQX0xpbmVDVEwpIHwgU0VSSUFMX1JYX09OKTsNCn0N
Cg0Kc3RhdGljIGludA0KY3NfaW9jdGwocmVnaXN0ZXIgc3RydWN0IGlmbmV0
ICppZnAsIGludCBjb21tYW5kLCBjYWRkcl90IGRhdGEpDQp7DQoJc3RydWN0
IGNzX3NvZnRjICpzYz1pZnAtPmlmX3NvZnRjOw0KCWludCBzLGVycm9yPTA7
DQoNCiNpZmRlZiBDU19ERUJVRw0KCXByaW50ZihDU19OQU1FIiVkOiBpb2N0
bCgleClcbiIsc2MtPmFycGNvbS5hY19pZi5pZl91bml0LGNvbW1hbmQpOw0K
I2VuZGlmDQoNCglzPXNwbGltcCgpOw0KDQoJc3dpdGNoIChjb21tYW5kKSB7
DQoNCgkgIGNhc2UgU0lPQ1NJRkFERFI6DQoJICAgIHsNCgkJICAgIHN0cnVj
dCBpZmFkZHIgKmlmYSA9IChzdHJ1Y3QgaWZhZGRyICopZGF0YTsNCgkJICAg
IHNjLT5hcnBjb20uYWNfaWYuaWZfZmxhZ3MgfD0gSUZGX1VQOw0KDQoJCSAg
ICBzd2l0Y2ggKGlmYS0+aWZhX2FkZHItPnNhX2ZhbWlseSkgew0KI2lmZGVm
IElORVQNCgkJICAgICAgY2FzZSBBRl9JTkVUOg0KCQkJY3NfaW5pdChzYyk7
DQoJCQlhcnBfaWZpbml0KCZzYy0+YXJwY29tLCBpZmEpOw0KCQkJYnJlYWs7
DQojZW5kaWYNCiNpZmRlZiBJUFgNCgkJCS8qIFhYWA0KCQkJICogVGhpcyBj
b2RlIGlzIHRha2VuIHdpdGhvdXQgYW55IHRlc3QNCgkJCSAqLw0KCQkgICAg
ICBjYXNlIEFGX0lQWDoNCgkJCXsNCgkJCQlyZWdpc3RlciBzdHJ1Y3QgaXB4
X2FkZHIgKmluYSA9DQoJCQkJCQkmKElBX1NJUFgoaWZhKS0+c2lweF9hZGRy
KTsNCg0KCQkJCWlmIChpcHhfbnVsbGhvc3QoKmluYSkpDQoJCQkJCWluYS0+
eF9ob3N0ID0gKih1bmlvbiBpcHhfaG9zdCopDQoJCQkJCQkgICAgICAoc2Mt
PmFycGNvbS5hY19lbmFkZHIpOw0KCQkJCWVsc2Ugew0KCQkJCQliY29weSgo
Y2FkZHJfdCkgaW5hLT54X2hvc3QuY19ob3N0LA0KCQkJCQkgICAgICAoY2Fk
ZHJfdCkgc2MtPmFycGNvbS5hY19lbmFkZHIsDQoJCQkJCSAgICAgIHNpemVv
ZihzYy0+YXJwY29tLmFjX2VuYWRkcikpOw0KCQkJCX0NCgkJCQkvKiBTZXQg
bmV3IGFkZHJlc3MgKi8NCgkJCQljc19pbml0KHNjLT5hcnBjb20uYWNfaWYu
aWZfdW5pdCk7DQoJCQkJYnJlYWs7DQoJCQl9DQojZW5kaWYNCgkJICAgICAg
ZGVmYXVsdDoNCgkJCWNzX2luaXQoc2MpOw0KCQkgICAgfQ0KCQkgICAgYnJl
YWs7DQogICAgICAgICAgICB9DQovKg0KI2lmZGVmIFNJT0NHSUZBRERSDQoJ
ICBjYXNlIFNJT0NHSUZBRERSOg0KICAgICAgICAgICAgew0KCQlzdHJ1Y3Qg
aWZyZXEgKiBpZnIgPSAoc3RydWN0IGlmcmVxICopZGF0YTsNCgkJc3RydWN0
IHNvY2thZGRyICogc2EgPSAoc3RydWN0IHNvY2thZGRyICopJmlmci0+aWZy
X2RhdGE7DQoNCgkJYmNvcHkoKGNhZGRyX3Qpc2MtPnNjX2VuYWRkciwNCgkJ
ICAgICAgKGNhZGRyX3Qpc2EtPnNhX2RhdGEsIEVUSEVSX0FERFJfTEVOKTsN
CgkJYnJlYWs7DQoJICAgIH0NCiNlbmRpZg0KKi8NCiNpZmRlZiBTSU9DR0lG
UEhZU0FERFINCgkgIGNhc2UgU0lPQ0dJRlBIWVNBRERSOg0KCSAgICB7DQoJ
CXN0cnVjdCBpZnJlcSAqIGlmciA9IChzdHJ1Y3QgaWZyZXEgKilkYXRhOw0K
DQoJCWJjb3B5KChjYWRkcl90KXNjLT5zY19lbmFkZHIsDQoJCSAgICAgIChj
YWRkcl90KSZpZnItPmlmcl9kYXRhLCBFVEhFUl9BRERSX0xFTik7DQoJCWJy
ZWFrOw0KCSAgICB9DQojZW5kaWYNCiAgICAgICAgICAgIA0KI2lmZGVmIFNJ
T0NTSUZGTEFHUw0KCSAgY2FzZSBTSU9DU0lGRkxBR1M6DQoJICAgIHsNCgkJ
ICAgIC8qDQoJCSAgICAgKiBTd2l0Y2ggaW50ZXJmYWNlIHN0YXRlIGJldHdl
ZW4gInJ1bm5pbmciIGFuZA0KCQkgICAgICogInN0b3BwZWQiLCByZWZsZWN0
aW5nIHRoZSBVUCBmbGFnLg0KCQkgICAgICovDQoJCSAgICBpZiAoc2MtPmFy
cGNvbS5hY19pZi5pZl9mbGFncyAmIElGRl9VUCkgew0KCQkJICAgIGlmICgo
c2MtPmFycGNvbS5hY19pZi5pZl9mbGFncyAmIElGRl9SVU5OSU5HKT09MCkg
ew0KCQkJCSAgICBjc19pbml0KHNjKTsNCgkJCSAgICB9DQoJCSAgICB9IGVs
c2Ugew0KCQkJICAgIGlmICgoc2MtPmFycGNvbS5hY19pZi5pZl9mbGFncyAm
IElGRl9SVU5OSU5HKSE9MCkgew0KCQkJCSAgICBjc19zdG9wKHNjKTsNCgkJ
CSAgICB9DQoJCSAgICB9DQoJCSAgICAvKg0KCQkgICAgICogUHJvbWlzY3Vv
dXMgYW5kL29yIG11bHRpY2FzdCBmbGFncyBtYXkgaGF2ZSBjaGFuZ2VkLA0K
CQkgICAgICogc28gcmVwcm9ncmFtIHRoZSBtdWx0aWNhc3QgZmlsdGVyIGFu
ZC9vciByZWNlaXZlIG1vZGUuDQoJCSAgICAgKg0KCQkgICAgICogU2VlIG5v
dGUgYWJvdXQgbXVsdGljYXN0cyBpbiBjc19zZXRtb2RlDQoJCSAgICAgKi8N
CgkJICAgIGNzX3NldG1vZGUoc2MpOw0KCQkgICAgYnJlYWs7DQoJICAgIH0N
CiNlbmRpZg0KDQojaWZkZWYgU0lPQ0FERE1VTFRJDQoJICBjYXNlIFNJT0NB
RERNVUxUSToNCgkgIGNhc2UgU0lPQ0RFTE1VTFRJOg0KCSAgICB7DQoJCS8q
DQoJCSAqIFVwZGF0ZSBvdXQgbXVsdGljYXN0IGxpc3QuDQoJCSAqLw0KCQlz
dHJ1Y3QgaWZyZXEgKiBpZnIgPSAoc3RydWN0IGlmcmVxICopZGF0YTsNCg0K
CQllcnJvciA9IChjb21tYW5kID09IFNJT0NBRERNVUxUSSkNCgkJICAgICAg
PyBldGhlcl9hZGRtdWx0aShpZnIsICZzYy0+YXJwY29tKQ0KCQkgICAgICA6
IGV0aGVyX2RlbG11bHRpKGlmciwgJnNjLT5hcnBjb20pOw0KDQoJCWlmIChl
cnJvciA9PSBFTkVUUkVTRVQpIHsNCgkJCS8qDQoJCQkgKiBNdWx0aWNhc3Qg
bGlzdCBoYXMgY2hhbmdlZDsgc2V0IHRoZSBoYXJkd2FyZSBmaWx0ZXINCgkJ
CSAqIGFjY29yZGluZ2x5Lg0KCQkJICogDQoJCQkgKiBTZWUgbm90ZSBhYm91
dCBtdWx0aWNhc3RzIGluIGNzX3NldG1vZGUNCgkJCSAqLw0KCQkJY3Nfc2V0
bW9kZShzYyk7DQoJCQllcnJvciA9IDA7DQoJCX0NCg0KCQlicmVhazsNCgkg
ICAgfQ0KI2VuZGlmDQoNCiNpZmRlZiBTSU9DU0lGTVRVDQoJICBjYXNlIFNJ
T0NTSUZNVFU6DQoJICAgIHsNCgkJICAgIC8qDQoJCSAgICAgKiBTZXQgdGhl
IGludGVyZmFjZSBNVFUuDQoJCSAgICAgKi8NCgkJICAgIHN0cnVjdCBpZnJl
cSAqaWZyID0gKHN0cnVjdCBpZnJlcSAqKWRhdGE7DQoNCgkJICAgIGlmIChp
ZnItPmlmcl9tdHUgPiBFVEhFUk1UVSkgew0KCQkJICAgIGVycm9yID0gRUlO
VkFMOw0KCQkgICAgfSBlbHNlIHsNCgkJCSAgICBzYy0+YXJwY29tLmFjX2lm
LmlmX210dSA9IGlmci0+aWZyX210dTsNCgkJICAgIH0NCgkJICAgIGJyZWFr
Ow0KCSAgICB9DQojZW5kaWYNCg0KCSAgZGVmYXVsdDoNCgkgICAgZXJyb3Ig
PSBFSU5WQUw7DQoJfQ0KDQoJKHZvaWQpIHNwbHgocyk7DQoJcmV0dXJuIGVy
cm9yOw0KfQ0KDQovKg0KICogRGV2aWNlIHRpbWVvdXQvd2F0Y2hkb2cgcm91
dGluZS4gRW50ZXJlZCBpZiB0aGUgZGV2aWNlIG5lZ2xlY3RzIHRvDQogKiBn
ZW5lcmF0ZSBhbiBpbnRlcnJ1cHQgYWZ0ZXIgYSB0cmFuc21pdCBoYXMgYmVl
biBzdGFydGVkIG9uIGl0Lg0KICovDQpzdGF0aWMgdm9pZA0KY3Nfd2F0Y2hk
b2coc3RydWN0IGlmbmV0ICppZnApDQp7DQoJc3RydWN0IGNzX3NvZnRjICpz
YyA9ICZjc19zb2Z0Y1tpZnAtPmlmX3VuaXRdOw0KDQoJaWZwLT5pZl9vZXJy
b3JzKys7DQoJbG9nKExPR19FUlIsIENTX05BTUUiJWQ6IGRldmljZSB0aW1l
b3V0XG4iLCBpZnAtPmlmX3VuaXQpOw0KDQoJLyogUmVzZXQgdGhlIGludGVy
ZmFjZSAqLw0KCWlmIChpZnAtPmlmX2ZsYWdzICYgSUZGX1VQKQ0KCQljc19y
ZXNldChzYyk7DQoJZWxzZQ0KCQljc19zdG9wKHNjKTsNCn0NCg0K
--0-899763362-894389391=:8507
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="if_csreg.h"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.3.96.980505212951.8507D@altos.rnd.runnet.ru>
Content-Description: /sys/i386/isa/if_csreg.h

LyoNCiAqIENvcHlyaWdodCAoYykgMTk5NywxOTk4IE1heGltIEJvbG90aW4g
YW5kIE9sZWcgU2hhcm9pa28uDQogKiBBbGwgcmlnaHRzIHJlc2VydmVkLg0K
ICoNCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zDQogKiBhcmUgbWV0Og0KICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQNCiAqICAgIG5vdGljZSB1bm1vZGlmaWVkLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucywgYW5kIHRoZSBmb2xsb3dpbmcNCiAqICAgIGRpc2NsYWltZXIu
DQogKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQ0KICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4N
CiAqDQogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRI
T1IgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EDQogKiBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUNCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFDQogKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQ0KICogRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwNCiAqIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTDQogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikNCiAq
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUDQogKiBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZDQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GDQogKiBTVUNIIERBTUFHRS4NCiAqDQogKi8NCg0KLyoNCiAqICRJZDog
aWZfY3NyZWcuaCx2IDEuMiAxOTk4LzA0LzIwIDA5OjU4OjA5IHJvb3QgRXhw
ICQNCiAqLw0KDQojZGVmaW5lIFBQX0NoaXBJRCAweDAwMDAJLyogb2Zmc2V0
ICAgMGggLT4gQ29ycCAtSUQgICAgICAgICAgICAgICovDQoJCQkJLyogb2Zm
c2V0ICAgMmggLT4gTW9kZWwvUHJvZHVjdCBOdW1iZXIgICovDQoJCQkJLyog
b2Zmc2V0ICAgM2ggLT4gQ2hpcCBSZXZpc2lvbiBOdW1iZXIgICovDQoNCiNk
ZWZpbmUgUFBfSVNBSU9CCQkweDAwMjAJLyogIElPIGJhc2UgYWRkcmVzcyAq
Lw0KI2RlZmluZSBQUF9DUzg5MjBfSVNBSU5UCTB4MDM3MAkvKiAgSVNBIGlu
dGVycnVwdCBzZWxlY3QgKi8NCiNkZWZpbmUgUFBfQ1M4OTIwX0lTQURNQSAJ
MHgwMzc0CS8qICBJU0EgUmVjIERNQSBjaGFubmVsICovDQojZGVmaW5lIFBQ
X0lTQVNPRgkJMHgwMDI2CS8qICBJU0EgRE1BIG9mZnNldCAqLw0KI2RlZmlu
ZSBQUF9EbWFGcmFtZUNudAkJMHgwMDI4CS8qICBJU0EgRE1BIEZyYW1lIGNv
dW50ICovDQojZGVmaW5lIFBQX0RtYUJ5dGVDbnQJCTB4MDAyQQkvKiAgSVNB
IERNQSBCeXRlIGNvdW50ICovDQojZGVmaW5lIFBQX0NTODkyMF9JU0FNZW1C
CTB4MDM0OAkvKiAgTWVtb3J5IGJhc2UgKi8NCg0KLyogRUVQUk9NIGRhdGEg
YW5kIGNvbW1hbmQgcmVnaXN0ZXJzICovDQojZGVmaW5lIFBQX0VFQ01ECQkw
eDAwNDAJLyogIE5WUiBJbnRlcmZhY2UgQ29tbWFuZCByZWdpc3RlciAqLw0K
I2RlZmluZSBQUF9FRURhdGEJCTB4MDA0MgkvKiAgTlZSIEludGVyZmFjZSBE
YXRhIFJlZ2lzdGVyICovDQojZGVmaW5lIFBQX0RlYnVnUmVnCQkweDAwNDQJ
LyogIERlYnVnIFJlZ2lzdGVyICovDQoNCiNkZWZpbmUgUFBfUnhDRkcJCTB4
MDEwMgkvKiAgUnggQnVzIGNvbmZpZyAqLw0KI2RlZmluZSBQUF9SeENUTAkJ
MHgwMTA0CS8qICBSZWNlaXZlIENvbnRyb2wgUmVnaXN0ZXIgKi8NCiNkZWZp
bmUgUFBfVHhDRkcJCTB4MDEwNgkvKiAgVHJhbnNtaXQgQ29uZmlnIFJlZ2lz
dGVyICovDQojZGVmaW5lIFBQX1R4Q01ECQkweDAxMDgJLyogIFRyYW5zbWl0
IENvbW1hbmQgUmVnaXN0ZXIgKi8NCiNkZWZpbmUgUFBfQnVmQ0ZHCQkweDAx
MEEJLyogIEJ1cyBjb25maWd1cmF0aW9uIFJlZ2lzdGVyICovDQojZGVmaW5l
IFBQX0xpbmVDVEwJCTB4MDExMgkvKiAgTGluZSBDb25maWcgUmVnaXN0ZXIg
Ki8NCiNkZWZpbmUgUFBfU2VsZkNUTAkJMHgwMTE0CS8qICBTZWxmIENvbW1h
bmQgUmVnaXN0ZXIgKi8NCiNkZWZpbmUgUFBfQnVzQ1RMCQkweDAxMTYJLyog
IElTQSBidXMgY29udHJvbCBSZWdpc3RlciAqLw0KI2RlZmluZSBQUF9UZXN0
Q1RMCQkweDAxMTgJLyogIFRlc3QgUmVnaXN0ZXIgKi8NCiNkZWZpbmUgUFBf
QXV0b05lZ0NUTAkJMHgwMTFDCS8qICBBdXRvIE5lZ290aWF0aW9uIEN0cmwg
Ki8NCg0KI2RlZmluZSBQUF9JU1EJCQkweDAxMjAJLyogIEludGVycnVwdCBT
dGF0dXMgKi8NCiNkZWZpbmUgUFBfUnhFdmVudAkJMHgwMTI0CS8qICBSeCBF
dmVudCBSZWdpc3RlciAqLw0KI2RlZmluZSBQUF9UeEV2ZW50CQkweDAxMjgJ
LyogIFR4IEV2ZW50IFJlZ2lzdGVyICovDQojZGVmaW5lIFBQX0J1ZkV2ZW50
CQkweDAxMkMJLyogIEJ1cyBFdmVudCBSZWdpc3RlciAqLw0KI2RlZmluZSBQ
UF9SeE1pc3MJCTB4MDEzMAkvKiAgUmVjZWl2ZSBNaXNzIENvdW50ICovDQoj
ZGVmaW5lIFBQX1R4Q29sCQkweDAxMzIJLyogIFRyYW5zbWl0IENvbGxpc2lv
biBDb3VudCAqLw0KI2RlZmluZSBQUF9MaW5lU1QJCTB4MDEzNAkvKiAgTGlu
ZSBTdGF0ZSBSZWdpc3RlciAqLw0KI2RlZmluZSBQUF9TZWxmU1QJCTB4MDEz
NgkvKiAgU2VsZiBTdGF0ZSByZWdpc3RlciAqLw0KI2RlZmluZSBQUF9CdXNT
VAkJMHgwMTM4CS8qICBCdXMgU3RhdHVzICovDQojZGVmaW5lIFBQX1REUgkJ
CTB4MDEzQwkvKiAgVGltZSBEb21haW4gUmVmbGVjdG9tZXRyeSAqLw0KI2Rl
ZmluZSBQUF9BdXRvTmVnU1QJCTB4MDEzRQkvKiAgQXV0byBOZWcgU3RhdHVz
ICovDQojZGVmaW5lIFBQX1R4Q29tbWFuZAkJMHgwMTQ0CS8qICBUeCBDb21t
YW5kICovDQojZGVmaW5lIFBQX1R4TGVuZ3RoCQkweDAxNDYJLyogIFR4IExl
bmd0aCAqLw0KI2RlZmluZSBQUF9MQUYJCQkweDAxNTAJLyogIEhhc2ggVGFi
bGUgKi8NCiNkZWZpbmUgUFBfSUEJCQkweDAxNTgJLyogIFBoeXNpY2FsIEFk
ZHJlc3MgUmVnaXN0ZXIgKi8NCg0KI2RlZmluZSBQUF9SeFN0YXR1cwkJMHgw
NDAwCS8qICBSZWNlaXZlIHN0YXJ0IG9mIGZyYW1lICovDQojZGVmaW5lIFBQ
X1J4TGVuZ3RoCQkweDA0MDIJLyogIFJlY2VpdmUgTGVuZ3RoIG9mIGZyYW1l
ICovDQojZGVmaW5lIFBQX1J4RnJhbWUJCTB4MDQwNAkvKiAgUmVjZWl2ZSBm
cmFtZSBwb2ludGVyICovDQojZGVmaW5lIFBQX1R4RnJhbWUJCTB4MEEwMAkv
KiAgVHJhbnNtaXQgZnJhbWUgcG9pbnRlciAqLw0KDQovKg0KICogIFByaW1h
cnkgSS9PIEJhc2UgQWRkcmVzcy4gSWYgbm8gSS9PIGJhc2UgaXMgc3VwcGxp
ZWQgYnkgdGhlIHVzZXIsIHRoZW4gdGhpcw0KICogIGNhbiBiZSB1c2VkIGFz
IHRoZSBkZWZhdWx0IEkvTyBiYXNlIHRvIGFjY2VzcyB0aGUgUGFja2V0UGFn
ZSBBcmVhLg0KICovDQojZGVmaW5lIERFRkFVTFRJT0JBU0UJCTB4MDMwMA0K
I2RlZmluZSBGSVJTVF9JTwkJMHgwMjBDCS8qICBGaXJzdCBJL08gcG9ydCB0
byBjaGVjayAqLw0KI2RlZmluZSBMQVNUX0lPCQkJMHgwMzdDCS8qICBMYXN0
IEkvTyBwb3J0IHRvIGNoZWNrICgrMTBoKSAqLw0KI2RlZmluZSBBRERfTUFT
SwkJMHgzMDAwCS8qICBNYXNrIGl0IHVzZSBvZiB0aGUgQUREX1BPUlQgcmVn
aXN0ZXIgKi8NCiNkZWZpbmUgQUREX1NJRwkJCTB4MzAwMAkvKiAgRXhwZWN0
ZWQgSUQgc2lnbmF0dXJlICovDQoNCiNkZWZpbmUgQ0hJUF9FSVNBX0lEX1NJ
RwkweDYzMEUJLyogIFByb2R1Y3QgSUQgQ29kZSBmb3IgQ3J5c3RhbCBDaGlw
IChDUzg5MDAgc3BlYyA0LjMpICovDQoNCiNkZWZpbmUgUFJPRFVDVF9JRF9B
REQJCTB4MDAwMgkvKiAgQWRkcmVzcyBvZiBwcm9kdWN0IElEICovDQoNCi8q
ICBNYXNrIHRvIGZpbmQgb3V0IHRoZSB0eXBlcyBvZiAgcmVnaXN0ZXJzICov
DQojZGVmaW5lIFJFR19UWVBFX01BU0sJCTB4MDAxRg0KDQovKiAgRWVwcm9t
IENvbW1hbmRzICovDQojZGVmaW5lIEVSU0VfV1JfRU5CTAkJMHgwMEYwDQoj
ZGVmaW5lIEVSU0VfV1JfRElTQUJMRQkJMHgwMDAwDQoNCi8qICBEZWZpbmVz
IENvbnRyb2wvQ29uZmlnIHJlZ2lzdGVyIHF1aW50dXBsZXQgbnVtYmVycyAq
Lw0KI2RlZmluZSBSWF9CVUZfQ0ZHCQkweDAwMDMNCiNkZWZpbmUgUlhfQ09O
VFJPTAkJMHgwMDA1DQojZGVmaW5lIFRYX0NGRwkJCTB4MDAwNw0KI2RlZmlu
ZSBUWF9DT01NQU5ECQkweDAwMDkNCiNkZWZpbmUgQlVGX0NGRwkJCTB4MDAw
Qg0KI2RlZmluZSBMSU5FX0NPTlRST0wJCTB4MDAxMw0KI2RlZmluZSBTRUxG
X0NPTlRST0wJCTB4MDAxNQ0KI2RlZmluZSBCVVNfQ09OVFJPTAkJMHgwMDE3
DQojZGVmaW5lIFRFU1RfQ09OVFJPTAkJMHgwMDE5DQoNCi8qICBEZWZpbmVz
IFN0YXR1cy9Db3VudCByZWdpc3RlcnMgcXVpbnR1cGxldCBudW1iZXJzICov
DQojZGVmaW5lIFJYX0VWRU5UCQkweDAwMDQNCiNkZWZpbmUgVFhfRVZFTlQJ
CTB4MDAwOA0KI2RlZmluZSBCVUZfRVZFTlQJCTB4MDAwQw0KI2RlZmluZSBS
WF9NSVNTX0NPVU5UCQkweDAwMTANCiNkZWZpbmUgVFhfQ09MX0NPVU5UCQkw
eDAwMTINCiNkZWZpbmUgTElORV9TVEFUVVMJCTB4MDAxNA0KI2RlZmluZSBT
RUxGX1NUQVRVUwkJMHgwMDE2DQojZGVmaW5lIEJVU19TVEFUVVMJCTB4MDAx
OA0KI2RlZmluZSBURFIJCQkweDAwMUMNCg0KLyoNCiAqIFBQX1J4Q0ZHIC0g
UmVjZWl2ZSAgQ29uZmlndXJhdGlvbiBhbmQgSW50ZXJydXB0IE1hc2sNCiAq
CQkJIGJpdCBkZWZpbml0aW9uIC0gIFJlYWQvd3JpdGUNCiAqLw0KI2RlZmlu
ZSBTS0lQXzEJCQkweDAwNDANCiNkZWZpbmUgUlhfU1RSRUFNX0VOQkwJCTB4
MDA4MA0KI2RlZmluZSBSWF9PS19FTkJMCQkweDAxMDANCiNkZWZpbmUgUlhf
RE1BX09OTFkJCTB4MDIwMA0KI2RlZmluZSBBVVRPX1JYX0RNQQkJMHgwNDAw
DQojZGVmaW5lIEJVRkZFUl9DUkMJCTB4MDgwMA0KI2RlZmluZSBSWF9DUkNf
RVJST1JfRU5CTAkweDEwMDANCiNkZWZpbmUgUlhfUlVOVF9FTkJMCQkweDIw
MDANCiNkZWZpbmUgUlhfRVhUUkFfREFUQV9FTkJMCTB4NDAwMA0KDQovKiBQ
UF9SeENUTCAtIFJlY2VpdmUgQ29udHJvbCBiaXQgZGVmaW5pdGlvbiAtIFJl
YWQvd3JpdGUgKi8NCiNkZWZpbmUgUlhfSUFfSEFTSF9BQ0NFUFQJMHgwMDQw
DQojZGVmaW5lIFJYX1BST01fQUNDRVBUCQkweDAwODANCiNkZWZpbmUgUlhf
T0tfQUNDRVBUCQkweDAxMDANCiNkZWZpbmUgUlhfTVVMVENBU1RfQUNDRVBU
CTB4MDIwMA0KI2RlZmluZSBSWF9JQV9BQ0NFUFQJCTB4MDQwMA0KI2RlZmlu
ZSBSWF9CUk9BRENBU1RfQUNDRVBUCTB4MDgwMA0KI2RlZmluZSBSWF9CQURf
Q1JDX0FDQ0VQVAkweDEwMDANCiNkZWZpbmUgUlhfUlVOVF9BQ0NFUFQJCTB4
MjAwMA0KI2RlZmluZSBSWF9FWFRSQV9EQVRBX0FDQ0VQVAkweDQwMDANCiNk
ZWZpbmUgUlhfQUxMX0FDQ0VQVAkJKFJYX1BST01fQUNDRVBUIHwgUlhfQkFE
X0NSQ19BQ0NFUFQgfAlcDQoJCQkJIFJYX1JVTlRfQUNDRVBUIHwgUlhfRVhU
UkFfREFUQV9BQ0NFUFQpDQovKg0KICogIERlZmF1bHQgcmVjZWl2ZSBtb2Rl
IC0gaW5kaXZpZHVhbGx5IGFkZHJlc3NlZCwgYnJvYWRjYXN0LCBhbmQgZXJy
b3IgZnJlZQ0KICovDQojZGVmaW5lIFJYX0RFRl9BQ0NFUFQgKFJYX0lBX0FD
Q0VQVCB8IFJYX0JST0FEQ0FTVF9BQ0NFUFQgfCBSWF9PS19BQ0NFUFQpDQoN
Ci8qDQogKiBQUF9UeENGRyAtIFRyYW5zbWl0IENvbmZpZ3VyYXRpb24gSW50
ZXJydXB0IE1hc2sNCiAqCQkJIGJpdCBkZWZpbml0aW9uIC0gUmVhZC93cml0
ZQ0KICovDQojZGVmaW5lIFRYX0xPU1RfQ1JTX0VOQkwJMHgwMDQwDQojZGVm
aW5lIFRYX1NRRV9FUlJPUl9FTkJMCTB4MDA4MA0KI2RlZmluZSBUWF9PS19F
TkJMCQkweDAxMDANCiNkZWZpbmUgVFhfTEFURV9DT0xfRU5CTAkweDAyMDAN
CiNkZWZpbmUgVFhfSkJSX0VOQkwJCTB4MDQwMA0KI2RlZmluZSBUWF9BTllf
Q09MX0VOQkwJCTB4MDgwMA0KI2RlZmluZSBUWF8xNl9DT0xfRU5CTAkJMHg4
MDAwDQoNCi8qDQogKiBQUF9UeENNRCAtIFRyYW5zbWl0IENvbW1hbmQgYml0
IGRlZmluaXRpb24gLSBSZWFkLW9ubHkNCiAqLw0KI2RlZmluZSBUWF9TVEFS
VF80X0JZVEVTCTB4MDAwMA0KI2RlZmluZSBUWF9TVEFSVF82NF9CWVRFUwkw
eDAwNDANCiNkZWZpbmUgVFhfU1RBUlRfMTI4X0JZVEVTCTB4MDA4MA0KI2Rl
ZmluZSBUWF9TVEFSVF9BTExfQllURVMJMHgwMEMwDQojZGVmaW5lIFRYX0ZP
UkNFCQkweDAxMDANCiNkZWZpbmUgVFhfT05FX0NPTAkJMHgwMjAwDQojZGVm
aW5lIFRYX1RXT19QQVJUX0RFRkZfRElTQUJMRSAweDA0MDANCiNkZWZpbmUg
VFhfTk9fQ1JDCQkweDEwMDANCiNkZWZpbmUgVFhfUlVOVAkJCTB4MjAwMA0K
DQovKg0KICogUFBfQnVmQ0ZHIC0gQnVmZmVyIENvbmZpZ3VyYXRpb24gSW50
ZXJydXB0IE1hc2sNCiAqCQkJIGJpdCBkZWZpbml0aW9uIC0gUmVhZC93cml0
ZQ0KICovDQojZGVmaW5lIEdFTkVSQVRFX1NXX0lOVEVSUlVQVAkweDAwNDAN
CiNkZWZpbmUgUlhfRE1BX0VOQkwJCTB4MDA4MA0KI2RlZmluZSBSRUFEWV9G
T1JfVFhfRU5CTAkweDAxMDANCiNkZWZpbmUgVFhfVU5ERVJSVU5fRU5CTAkw
eDAyMDANCiNkZWZpbmUgUlhfTUlTU19FTkJMCQkweDA0MDANCiNkZWZpbmUg
UlhfMTI4X0JZVEVfRU5CTAkweDA4MDANCiNkZWZpbmUgVFhfQ09MX0NPVU5U
X09WUkZMT1dfRU5CTCAweDEwMDANCiNkZWZpbmUgUlhfTUlTU19DT1VOVF9P
VlJGTE9XX0VOQkwgMHgyMDAwDQojZGVmaW5lIFJYX0RFU1RfTUFUQ0hfRU5C
TAkweDgwMDANCg0KLyoNCiAqIFBQX0xpbmVDVEwgLSBMaW5lIENvbnRyb2wg
Yml0IGRlZmluaXRpb24gLSBSZWFkL3dyaXRlDQogKi8NCiNkZWZpbmUgU0VS
SUFMX1JYX09OCQkweDAwNDANCiNkZWZpbmUgU0VSSUFMX1RYX09OCQkweDAw
ODANCiNkZWZpbmUgQVVJX09OTFkJCTB4MDEwMA0KI2RlZmluZSBBVVRPX0FV
SV8xMEJBU0VUCTB4MDIwMA0KI2RlZmluZSBNT0RJRklFRF9CQUNLT0ZGCTB4
MDgwMA0KI2RlZmluZSBOT19BVVRPX1BPTEFSSVRZCTB4MTAwMA0KI2RlZmlu
ZSBUV09fUEFSVF9ERUZESVMJCTB4MjAwMA0KI2RlZmluZSBMT1dfUlhfU1FV
RUxDSAkJMHg0MDAwDQoNCi8qDQogKiBQUF9TZWxmQ1RMIC0gU29mdHdhcmUg
U2VsZiBDb250cm9sIGJpdCBkZWZpbml0aW9uIC0gUmVhZC93cml0ZQ0KICov
DQojZGVmaW5lIFBPV0VSX09OX1JFU0VUCQkweDAwNDANCiNkZWZpbmUgU1df
U1RPUAkJCTB4MDEwMA0KI2RlZmluZSBTTEVFUF9PTgkJMHgwMjAwDQojZGVm
aW5lIEFVVE9fV0FLRVVQCQkweDA0MDANCiNkZWZpbmUgSENCMF9FTkJMCQkw
eDEwMDANCiNkZWZpbmUgSENCMV9FTkJMCQkweDIwMDANCiNkZWZpbmUgSENC
MAkJCTB4NDAwMA0KI2RlZmluZSBIQ0IxCQkJMHg4MDAwDQoNCi8qDQogKiBQ
UF9CdXNDVEwgLSBJU0EgQnVzIENvbnRyb2wgYml0IGRlZmluaXRpb24gLSBS
ZWFkL3dyaXRlDQogKi8NCiNkZWZpbmUgUkVTRVRfUlhfRE1BCQkweDAwNDAN
CiNkZWZpbmUgTUVNT1JZX09OCQkweDA0MDANCiNkZWZpbmUgRE1BX0JVUlNU
X01PREUJCTB4MDgwMA0KI2RlZmluZSBJT19DSEFOTkVMX1JFQURZX09OCTB4
MTAwMA0KI2RlZmluZSBSWF9ETUFfU0laRV82NEtzCTB4MjAwMA0KI2RlZmlu
ZSBFTkFCTEVfSVJRCQkweDgwMDANCg0KLyoNCiAqIFBQX1Rlc3RDVEwgLSBU
ZXN0IENvbnRyb2wgYml0IGRlZmluaXRpb24gLSBSZWFkL3dyaXRlDQogKi8N
CiNkZWZpbmUgTElOS19PRkYJCTB4MDA4MA0KI2RlZmluZSBFTkRFQ19MT09Q
QkFDSwkJMHgwMjAwDQojZGVmaW5lIEFVSV9MT09QQkFDSwkJMHgwNDAwDQoj
ZGVmaW5lIEJBQ0tPRkZfT0ZGCQkweDA4MDANCiNkZWZpbmUgRkFTVF9URVNU
CQkweDgwMDANCg0KLyoNCiAqIFBQX1J4RXZlbnQgLSBSZWNlaXZlIEV2ZW50
IEJpdCBkZWZpbml0aW9uIC0gUmVhZC1vbmx5DQogKi8NCiNkZWZpbmUgUlhf
SUFfSEFTSEVECQkweDAwNDANCiNkZWZpbmUgUlhfRFJJQkJMRQkJMHgwMDgw
DQojZGVmaW5lIFJYX09LCQkJMHgwMTAwDQojZGVmaW5lIFJYX0hBU0hFRAkJ
MHgwMjAwDQojZGVmaW5lIFJYX0lBCQkJMHgwNDAwDQojZGVmaW5lIFJYX0JS
T0FEQ0FTVAkJMHgwODAwDQojZGVmaW5lIFJYX0NSQ19FUlJPUgkJMHgxMDAw
DQojZGVmaW5lIFJYX1JVTlQJCQkweDIwMDANCiNkZWZpbmUgUlhfRVhUUkFf
REFUQQkJMHg0MDAwDQoNCiNkZWZpbmUgSEFTSF9JTkRFWF9NQVNLCQkweDBG
QzAwDQoNCi8qDQogKiBQUF9UeEV2ZW50IC0gVHJhbnNtaXQgRXZlbnQgQml0
IGRlZmluaXRpb24gLSBSZWFkLW9ubHkNCiAqLw0KI2RlZmluZSBUWF9MT1NU
X0NSUwkJMHgwMDQwDQojZGVmaW5lIFRYX1NRRV9FUlJPUgkJMHgwMDgwDQoj
ZGVmaW5lIFRYX09LCQkJMHgwMTAwDQojZGVmaW5lIFRYX0xBVEVfQ09MCQkw
eDAyMDANCiNkZWZpbmUgVFhfSkJSCQkJMHgwNDAwDQojZGVmaW5lIFRYXzE2
X0NPTAkJMHg4MDAwDQojZGVmaW5lIFRYX1NFTkRfT0tfQklUUwkJKFRYX09L
IHwgVFhfTE9TVF9DUlMpDQojZGVmaW5lIFRYX0NPTF9DT1VOVF9NQVNLCTB4
NzgwMA0KDQovKg0KICogUFBfQnVmRXZlbnQgLSBCdWZmZXIgRXZlbnQgQml0
IGRlZmluaXRpb24gLSBSZWFkLW9ubHkNCiAqLw0KI2RlZmluZSBTV19JTlRF
UlJVUFQJCTB4MDA0MA0KI2RlZmluZSBSWF9ETUEJCQkweDAwODANCiNkZWZp
bmUgUkVBRFlfRk9SX1RYCQkweDAxMDANCiNkZWZpbmUgVFhfVU5ERVJSVU4J
CTB4MDIwMA0KI2RlZmluZSBSWF9NSVNTCQkJMHgwNDAwDQojZGVmaW5lIFJY
XzEyOF9CWVRFCQkweDA4MDANCiNkZWZpbmUgVFhfQ09MX09WUkZMVwkJMHgx
MDAwDQojZGVmaW5lIFJYX01JU1NfT1ZSRkxXCQkweDIwMDANCiNkZWZpbmUg
UlhfREVTVF9NQVRDSAkJMHg4MDAwDQoNCi8qDQogKiBQUF9MaW5lU1QgLSBF
dGhlcm5ldCBMaW5lIFN0YXR1cyBiaXQgZGVmaW5pdGlvbiAtIFJlYWQtb25s
eQ0KICovDQojZGVmaW5lIExJTktfT0sJCQkweDAwODANCiNkZWZpbmUgQVVJ
X09OCQkJMHgwMTAwDQojZGVmaW5lIFRFTkJBU0VUX09OCQkweDAyMDANCiNk
ZWZpbmUgUE9MQVJJVFlfT0sJCTB4MTAwMA0KI2RlZmluZSBDUlNfT0sJCQkw
eDQwMDANCg0KLyoNCiAqIFBQX1NlbGZTVCAtIENoaXAgU29mdHdhcmUgU3Rh
dHVzIGJpdCBkZWZpbml0aW9uDQogKi8NCiNkZWZpbmUgQUNUSVZFXzMzVgkJ
MHgwMDQwDQojZGVmaW5lIElOSVRfRE9ORQkJMHgwMDgwDQojZGVmaW5lIFNJ
X0JVU1kJCQkweDAxMDANCiNkZWZpbmUgRUVQUk9NX1BSRVNFTlQJCTB4MDIw
MA0KI2RlZmluZSBFRVBST01fT0sJCTB4MDQwMA0KI2RlZmluZSBFTF9QUkVT
RU5UCQkweDA4MDANCiNkZWZpbmUgRUVfU0laRV82NAkJMHgxMDAwDQoNCi8q
DQogKiBQUF9CdXNTVCAtIElTQSBCdXMgU3RhdHVzIGJpdCBkZWZpbml0aW9u
DQogKi8NCiNkZWZpbmUgVFhfQklEX0VSUk9SCQkweDAwODANCiNkZWZpbmUg
UkVBRFlfRk9SX1RYX05PVwkweDAxMDANCg0KLyoNCiAqIFBQX0F1dG9OZWdD
VEwgLSBBdXRvIE5lZ290aWF0aW9uIENvbnRyb2wgYml0IGRlZmluaXRpb24N
CiAqLw0KI2RlZmluZSBSRV9ORUdfTk9XCQkweDAwNDANCiNkZWZpbmUgQUxM
T1dfRkRYCQkweDAwODANCiNkZWZpbmUgQVVUT19ORUdfRU5BQkxFCQkweDAx
MDANCiNkZWZpbmUgTkxQX0VOQUJMRQkJMHgwMjAwDQojZGVmaW5lIEZPUkNF
X0ZEWAkJMHg4MDAwDQojZGVmaW5lIEFVVE9fTkVHX0JJVFMJCShGT1JDRV9G
RFggfCBOTFBfRU5BQkxFIHwgQVVUT19ORUdfRU5BQkxFKQ0KI2RlZmluZSBB
VVRPX05FR19NQVNLCQkoRk9SQ0VfRkRYIHwgTkxQX0VOQUJMRSB8IEFVVE9f
TkVHX0VOQUJMRSB8IFwNCgkJCQkgQUxMT1dfRkRYIHwgUkVfTkVHX05PVykN
Cg0KLyoNCiAqIFBQX0F1dG9OZWdTVCAtIEF1dG8gTmVnb3RpYXRpb24gU3Rh
dHVzIGJpdCBkZWZpbml0aW9uDQogKi8NCiNkZWZpbmUgQVVUT19ORUdfQlVT
WQkJMHgwMDgwDQojZGVmaW5lIEZMUF9MSU5LCQkweDAxMDANCiNkZWZpbmUg
RkxQX0xJTktfR09PRAkJMHgwODAwDQojZGVmaW5lIExJTktfRkFVTFQJCTB4
MTAwMA0KI2RlZmluZSBIRFhfQUNUSVZFCQkweDQwMDANCiNkZWZpbmUgRkRY
X0FDVElWRQkJMHg4MDAwDQoNCi8qDQogKiBUaGUgZm9sbG93aW5nIGJsb2Nr
IGRlZmluZXMgdGhlIElTUSBldmVudCB0eXBlcw0KICovDQojZGVmaW5lIElT
UV9SRUNFSVZFUl9FVkVOVAkweDA0DQojZGVmaW5lIElTUV9UUkFOU01JVFRF
Ul9FVkVOVAkweDA4DQojZGVmaW5lIElTUV9CVUZGRVJfRVZFTlQJMHgwYw0K
I2RlZmluZSBJU1FfUlhfTUlTU19FVkVOVAkweDEwDQojZGVmaW5lIElTUV9U
WF9DT0xfRVZFTlQJMHgxMg0KDQojZGVmaW5lIElTUV9FVkVOVF9NQVNLCQkw
eDAwM0YJLyogSVNRIG1hc2sgdG8gZmluZCBvdXQgdHlwZSBvZiBldmVudCAq
Lw0KI2RlZmluZSBJU1FfSElTVAkJMTYJLyogc21hbGwgaGlzdG9yeSBidWZm
ZXIgKi8NCiNkZWZpbmUgQVVUT0lOQ1JFTUVOVAkJMHg4MDAwCS8qIEJpdCBt
YXNrIHRvIHNldCBiaXQtMTUgZm9yIGF1dG9pbmNyZW1lbnQgKi8NCg0KI2Rl
ZmluZSBUWFJYQlVGU0laRQkJMHgwNjAwDQojZGVmaW5lIFJYRE1BQlVGU0la
RQkJMHg4MDAwDQojZGVmaW5lIFJYRE1BU0laRQkJMHg0MDAwDQojZGVmaW5l
IFRYUlhfTEVOR1RIX01BU0sJMHgwN0ZGDQoNCi8qICByeCBvcHRpb25zIGJp
dHMgKi8NCiNkZWZpbmUgUkNWX1dJVEhfUlhPTgkJMSAgICAgICAvKiAgU2V0
IFNlclJ4IE9OICovDQojZGVmaW5lIFJDVl9DT1VOVFMJCTIgICAgICAgLyog
IFVzZSBGcmFtZWNudDEgKi8NCiNkZWZpbmUgUkNWX1BPTkcJCTQgICAgICAg
LyogIFBvbmcgcmVzcG9uZGVudCAqLw0KI2RlZmluZSBSQ1ZfRE9ORwkJOCAg
ICAgICAvKiAgRG9uZyBvcGVyYXRpb24gKi8NCiNkZWZpbmUgUkNWX1BPTExJ
TkcJCTB4MTAJLyogIFBvbGwgUnhFdmVudCAqLw0KI2RlZmluZSBSQ1ZfSVNR
CQkJMHgyMAkvKiAgVXNlIElTUSwgaW50ICovDQojZGVmaW5lIFJDVl9BVVRP
X0RNQQkJMHgxMDAJLyogIFNldCBBdXRvUnhETUFFICovDQojZGVmaW5lIFJD
Vl9ETUEJCQkweDIwMAkvKiAgU2V0IFJ4RE1BIG9ubHkgKi8NCiNkZWZpbmUg
UkNWX0RNQV9BTEwJCTB4NDAwCS8qICBDb3B5IGFsbCBETUEnZWQgKi8NCiNk
ZWZpbmUgUkNWX0ZJWEVEX0RBVEEJCTB4ODAwCS8qICBFdmVyeSBmcmFtZSBz
YW1lICovDQojZGVmaW5lIFJDVl9JTwkJCTB4MTAwMAkvKiAgVXNlIElTQSBJ
TyBvbmx5ICovDQojZGVmaW5lIFJDVl9NRU1PUlkJCTB4MjAwMAkvKiAgVXNl
IElTQSBNZW1vcnkgKi8NCg0KI2RlZmluZSBSQU1fU0laRQkJMHgxMDAwICAg
ICAgLyogIFRoZSBjYXJkIGhhcyA0ayBieXRlcyBvciBSQU0gKi8NCiNkZWZp
bmUgUEtUX1NUQVJUCQlQUF9UeEZyYW1lICAvKiAgU3RhcnQgb2YgcGFja2V0
IFJBTSAqLw0KDQojZGVmaW5lIFJYX0ZSQU1FX1BPUlQJCTB4MDAwMA0KI2Rl
ZmluZSBUWF9GUkFNRV9QT1JUCQlSWF9GUkFNRV9QT1JUDQojZGVmaW5lIFRY
X0NNRF9QT1JUCQkweDAwMDQNCiNkZWZpbmUgVFhfTk9XCQkJMHgwMDAwICAv
KiBUeCBwYWNrZXQgYWZ0ZXIgICA1IGJ5dGVzIGNvcGllZCAqLw0KI2RlZmlu
ZSBUWF9BRlRFUl8zODEJCTB4MDAyMCAgLyogVHggcGFja2V0IGFmdGVyIDM4
MSBieXRlcyBjb3BpZWQgKi8NCiNkZWZpbmUgVFhfQUZURVJfQUxMCQkweDAw
NjAgIC8qIFR4IHBhY2tldCBhZnRlciBhbGwgYnl0ZXMgY29waWVkICovDQoj
ZGVmaW5lIFRYX0NTODkyMF9OT1cJCTB4MDAwMCAgLyogVHggcGFja2V0IGFm
dGVyICAgNSBieXRlcyBjb3BpZWQgKi8NCiNkZWZpbmUgVFhfQ1M4OTIwX0FG
VEVSXzM4MQkweDAwNDAgIC8qIFR4IHBhY2tldCBhZnRlciAzODEgYnl0ZXMg
Y29waWVkICovDQojZGVmaW5lIFRYX0NTODkyMF9BRlRFUl8xMDIxCTB4MDA4
MCAgLyogVHggcGFja2V0IGFmdGVyMTAyMSBieXRlcyBjb3BpZWQgKi8NCiNk
ZWZpbmUgVFhfQ1M4OTIwX0FGVEVSX0FMTAkweDAwQzAgIC8qIFR4IHBhY2tl
dCBhZnRlciBhbGwgYnl0ZXMgY29waWVkICovDQojZGVmaW5lIFRYX0xFTl9Q
T1JUCQkweDAwMDYNCiNkZWZpbmUgSVNRX1BPUlQJCTB4MDAwOA0KI2RlZmlu
ZSBBRERfUE9SVAkJMHgwMDBBDQojZGVmaW5lIERBVEFfUE9SVAkJMHgwMDBD
DQoNCiNkZWZpbmUgRUVQUk9NX1dSSVRFX0VOCQkweDAwRjANCiNkZWZpbmUg
RUVQUk9NX1dSSVRFX0RJUwkweDAwMDANCiNkZWZpbmUgRUVQUk9NX1dSSVRF
X0NNRAkweDAxMDANCiNkZWZpbmUgRUVQUk9NX1JFQURfQ01ECQkweDAyMDAN
Cg0KLyogIFJlY2VpdmUgSGVhZGVyDQogKiAgRGVzY3JpcHRpb24gb2YgaGVh
ZGVyIG9mIGVhY2ggcGFja2V0IGluIHJlY2VpdmUgYXJlYSBvZiBtZW1vcnkN
CiAqLw0KI2RlZmluZSBSQlVGX0VWRU5UX0xPVwkwICAvKiBMb3cgYnl0ZSBv
ZiBSeEV2ZW50IC0gc3RhdHVzIG9mIHJlY2VpdmVkIGZyYW1lICovDQojZGVm
aW5lIFJCVUZfRVZFTlRfSElHSAkxICAvKiBIaWdoIGJ5dGUgb2YgUnhFdmVu
dCAtIHN0YXR1cyBvZiByZWNlaXZlZCBmcmFtZSAqLw0KI2RlZmluZSBSQlVG
X0xFTl9MT1cJMiAgLyogTGVuZ3RoIG9mIHJlY2VpdmVkIGRhdGEgLSBsb3cg
Ynl0ZSAqLw0KI2RlZmluZSBSQlVGX0xFTl9ISQkzICAvKiBMZW5ndGggb2Yg
cmVjZWl2ZWQgZGF0YSAtIGhpZ2ggYnl0ZSAqLw0KI2RlZmluZSBSQlVGX0hF
QURfTEVOCTQgIC8qIExlbmd0aCBvZiB0aGlzIGhlYWRlciAqLw0KDQojZGVm
aW5lIENISVBfUkVBRCAweDEgIC8qIFVzZWQgdG8gbWFyayBzdGF0ZSBvZiB0
aGUgcmVwaW5zIGNvZGUgKGNoaXAgb3IgZG1hKSAqLw0KI2RlZmluZSBETUFf
UkVBRCAgMHgyICAvKiBVc2VkIHRvIG1hcmsgc3RhdGUgb2YgdGhlIHJlcGlu
cyBjb2RlIChjaGlwIG9yIGRtYSkgKi8NCg0KLyogIGZvciBiaW9zIHNjYW4g
Ki8NCi8qICAqLw0KI2lmZGVmIENTREVCVUcNCi8qICB1c2UgdGhlc2UgdmFs
dWVzIGZvciBkZWJ1Z2dpbmcgYmlvcyBzY2FuICovDQojZGVmaW5lIEJJT1Nf
U1RBUlRfU0VHCQkweDAwMDAwDQojZGVmaW5lIEJJT1NfT0ZGU0VUX0lOQwkJ
MHgwMDEwDQojZWxzZQ0KI2RlZmluZSBCSU9TX1NUQVJUX1NFRwkJMHgwYzAw
MA0KI2RlZmluZSBCSU9TX09GRlNFVF9JTkMJCTB4MDIwMA0KI2VuZGlmDQoN
CiNkZWZpbmUgQklPU19MQVNUX09GRlNFVAkweDBmYzAwDQoNCi8qDQogKiAg
Qnl0ZSBvZmZzZXRzIGludG8gdGhlIEVFUFJPTSBjb25maWd1cmF0aW9uIGJ1
ZmZlcg0KICovDQojZGVmaW5lIElTQV9DTkZfT0ZGU0VUCQkweDYNCiNkZWZp
bmUgVFhfQ1RMX09GRlNFVAkJKElTQV9DTkZfT0ZGU0VUICsgOCkJLyogIDg5
MDAgZWVwcm9tICovDQojZGVmaW5lIEFVVE9fTkVHX0NORl9PRkZTRVQJKElT
QV9DTkZfT0ZGU0VUICsgOCkJLyogIDg5MjAgZWVwcm9tICovDQoNCi8qDQog
KiAgdGhlIGFzc3VtcHRpb24gaGVyZSBpcyB0aGF0IHRoZSBiaXRzIGluIHRo
ZSBlZXByb20gYXJlIGdlbmVyYWxseSANCiAqICBpbiB0aGUgc2FtZSBwb3Np
dGlvbiBhcyB0aG9zZSBpbiB0aGUgYXV0b25lZ2N0bCByZWdpc3Rlci4gDQog
KiAgT2YgY291cnNlIHRoZSBJTU0gYml0IGlzIG5vdCBpbiB0aGF0IHJlZ2lz
dGVyIHNvIGl0IG11c3QgYmUgDQogKiAgbWFza2VkIG91dA0KICovDQojZGVm
aW5lIEVFX0ZPUkNFX0ZEWAkJMHg4MDAwDQojZGVmaW5lIEVFX05MUF9FTkFC
TEUJCTB4MDIwMA0KI2RlZmluZSBFRV9BVVRPX05FR19FTkFCTEUJMHgwMTAw
DQojZGVmaW5lIEVFX0FMTE9XX0ZEWAkJMHgwMDgwDQojZGVmaW5lIEVFX0FV
VE9fTkVHX0NORl9NQVNLCShFRV9GT1JDRV9GRFggfCBFRV9OTFBfRU5BQkxF
IHwgCVwNCgkJCQkgRUVfQVVUT19ORUdfRU5BQkxFIHwgRUVfQUxMT1dfRkRY
KQ0KDQojZGVmaW5lIElNTV9CSVQJCQkweDAwNDAJLyogIGlnbm9yZSBtaXNz
aW5nIG1lZGlhCSAqLw0KDQojZGVmaW5lIEFEQVBURVJfQ05GX09GRlNFVAko
QVVUT19ORUdfQ05GX09GRlNFVCArIDIpDQojZGVmaW5lIEFfQ05GXzEwQl9U
CQkweDAwMDENCiNkZWZpbmUgQV9DTkZfQVVJCQkweDAwMDINCiNkZWZpbmUg
QV9DTkZfMTBCXzIJCTB4MDAwNA0KI2RlZmluZSBBX0NORl9NRURJQV9UWVBF
CTB4MDA2MA0KI2RlZmluZSBBX0NORl9NRURJQV9BVVRPCTB4MDAwMA0KI2Rl
ZmluZSBBX0NORl9NRURJQV8xMEJfVAkweDAwMjANCiNkZWZpbmUgQV9DTkZf
TUVESUFfQVVJCQkweDAwNDANCiNkZWZpbmUgQV9DTkZfTUVESUFfMTBCXzIJ
MHgwMDYwDQojZGVmaW5lIEFfQ05GX0RDX0RDX1BPTEFSSVRZCTB4MDA4MA0K
I2RlZmluZSBBX0NORl9OT19BVVRPX1BPTEFSSVRZCTB4MjAwMA0KI2RlZmlu
ZSBBX0NORl9MT1dfUlhfU1FVRUxDSAkweDQwMDANCiNkZWZpbmUgQV9DTkZf
RVhUTkRfMTBCXzIJMHg4MDAwDQoNCiNkZWZpbmUgUEFDS0VUX1BBR0VfT0ZG
U0VUCTB4OA0KDQovKg0KICogIEJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIElT
QSBjb25maWd1cmF0aW9uIHdvcmQgZnJvbSB0aGUgRUVQUk9NDQogKi8NCiNk
ZWZpbmUgSU5UX05PX01BU0sJCTB4MDAwRg0KI2RlZmluZSBETUFfTk9fTUFT
SwkJMHgwMDcwDQojZGVmaW5lIElTQV9ETUFfU0laRQkJMHgwMjAwDQojZGVm
aW5lIElTQV9BVVRPX1J4RE1BCQkweDA0MDANCiNkZWZpbmUgSVNBX1J4RE1B
CQkweDA4MDANCiNkZWZpbmUgRE1BX0JVUlNUCQkweDEwMDANCiNkZWZpbmUg
U1RSRUFNX1RSQU5TRkVSCQkweDIwMDANCiNkZWZpbmUgQU5ZX0lTQV9ETUEJ
CShJU0FfQVVUT19SeERNQSB8IElTQV9SeERNQSkNCg0KLyogIERNQSBjb250
cm9sbGVyIHJlZ2lzdGVycyAqLw0KI2RlZmluZSBETUFfQkFTRQkJMHgwMCAg
IC8qIERNQSBjb250cm9sbGVyIGJhc2UgKi8NCiNkZWZpbmUgRE1BX0JBU0Vf
MgkJMHgwQzAgIC8qIERNQSBjb250cm9sbGVyIGJhc2UgKi8NCg0KI2RlZmlu
ZSBETUFfU1RBVAkJMHgwRDAgIC8qIERNQSBjb250cm9sbGVyIHN0YXR1cyBy
ZWdpc3RlciAqLw0KI2RlZmluZSBETUFfTUFTSwkJMHgwRDQgIC8qIERNQSBj
b250cm9sbGVyIG1hc2sgcmVnaXN0ZXIgKi8NCiNkZWZpbmUgRE1BX01PREUJ
CTB4MEQ2ICAvKiBETUEgY29udHJvbGxlciBtb2RlIHJlZ2lzdGVyICovDQoj
ZGVmaW5lIERNQV9SRVNFVEZGCQkweDBEOCAgLyogRE1BIGNvbnRyb2xsZXIg
Zmlyc3QvbGFzdCBmbGlwIGZsb3AgKi8NCg0KLyogIERNQSBkYXRhICovDQoj
ZGVmaW5lIERNQV9ESVNBQkxFCQkweDA0ICAgLyogIERpc2FibGUgY2hhbm5l
bCBuICovDQojZGVmaW5lIERNQV9FTkFCTEUJCTB4MDAgICAvKiAgRW5hYmxl
IGNoYW5uZWwgbiAqLw0KLyogIERlbWFuZCB0cmFuc2ZlcnMsIGluY3IuIGFk
ZHJlc3MsIGF1dG8gaW5pdCwgd3JpdGVzLCBjaC4gbiAqLw0KI2RlZmluZSBE
TUFfUlhfTU9ERQkJMHgxNA0KLyogIERlbWFuZCB0cmFuc2ZlcnMsIGluY3Iu
IGFkZHJlc3MsIGF1dG8gaW5pdCwgcmVhZHMsIGNoLiBuICovDQojZGVmaW5l
IERNQV9UWF9NT0RFCQkweDE4DQoNCiNkZWZpbmUgRE1BX1NJWkUJCSgxNiox
MDI0KQkvKiBTaXplIG9mIGRtYSBidWZmZXIgLSAxNmsgKi8NCg0KI2RlZmlu
ZSBDUzg5MDAJCQkweDAwMDANCiNkZWZpbmUgQ1M4OTIwCQkJMHg0MDAwICAg
DQojZGVmaW5lIENTODkyME0JCQkweDYwMDAgICANCiNkZWZpbmUgUkVWSVNP
Tl9CSVRTCQkweDFGMDANCiNkZWZpbmUgRUVWRVJfTlVNQkVSCQkweDEyDQoj
ZGVmaW5lIENIS1NVTV9MRU4JCTB4MTQNCiNkZWZpbmUgQ0hLU1VNX1ZBTAkJ
MHgwMDAwDQojZGVmaW5lIFNUQVJUX0VFUFJPTV9EQVRBCTB4MDAxYyAvKiBP
ZmZzZXQgaW50byBlZXByb20gZm9yIHN0YXJ0IG9mIGRhdGEgKi8NCiNkZWZp
bmUgSVJRX01BUF9FRVBST01fREFUQQkweDAwNDYgLyogT2Zmc2V0IGludG8g
ZWVwcm9tIGZvciB0aGUgSVJRIG1hcCAqLw0KI2RlZmluZSBJUlFfTUFQX0xF
TgkJMHgwMDA0IC8qIE5vIG9mIGJ5dGVzIHRvIHJlYWQgZm9yIHRoZSBJUlEg
bWFwICovDQojZGVmaW5lIFBOUF9JUlFfRlJNVAkJMHgwMDIyIC8qIFBOUCBz
bWFsbCBpdGVtIElSUSBmb3JtYXQgKi8NCiNkZWZpbmUgQ1M4OTAwX0lSUV9N
QVAJCTB4MWMyMCAvKiBUaGlzIElSUSBtYXAgaXMgZml4ZWQgKi8NCg0KI2Rl
ZmluZSBDUzg5MjBfTk9fSU5UUwkJMHgwRiAgIC8qICBNYXggQ1M4OTIwIGlu
dGVycnVwdCBzZWxlY3QgIyAqLw0KDQojZGVmaW5lIFBOUF9BRERfUE9SVAkJ
MHgwMjc5DQojZGVmaW5lIFBOUF9XUklURV9QT1JUCQkweDBBNzkNCg0KI2Rl
ZmluZSBHRVRfUE5QX0lTQV9TVFJVQ1QJMHg0MA0KI2RlZmluZSBQTlBfSVNB
X1NUUlVDVF9MRU4JMHgwNg0KI2RlZmluZSBQTlBfQ1NOX0NOVF9PRkYJCTB4
MDENCiNkZWZpbmUgUE5QX1JEX1BPUlRfT0ZGCQkweDAyDQojZGVmaW5lIFBO
UF9GVU5DVElPTl9PSwkJMHgwMA0KI2RlZmluZSBQTlBfV0FLRQkJMHgwMw0K
I2RlZmluZSBQTlBfUlNSQ19EQVRBCQkweDA0DQojZGVmaW5lIFBOUF9SU1JD
X1JFQURZCQkweDAxDQojZGVmaW5lIFBOUF9TVEFUVVMJCTB4MDUNCiNkZWZp
bmUgUE5QX0FDVElWQVRFCQkweDMwDQojZGVmaW5lIFBOUF9DTkZfSU9fSAkJ
MHg2MA0KI2RlZmluZSBQTlBfQ05GX0lPX0wJCTB4NjENCiNkZWZpbmUgUE5Q
X0NORl9JTlQJCTB4NzANCiNkZWZpbmUgUE5QX0NORl9ETUEJCTB4NzQNCiNk
ZWZpbmUgUE5QX0NORl9NRU0JCTB4NDgNCg0KI2RlZmluZSBCSVQwCQkJMQ0K
I2RlZmluZSBCSVQxNQkJCTB4ODAwMA0KDQovKiBEZXZpY2UgbmFtZSAqLw0K
I2RlZmluZSBDU19OQU1FCQkJImNzIg0KDQojZGVmaW5lIGNzX3JlYWRyZWco
aW9iYXNlLCBwb3J0bm8pIFwNCgkob3V0dygoaW9iYXNlKSArIEFERF9QT1JU
LCAocG9ydG5vKSksIFwNCglpbncoKGlvYmFzZSkgKyBEQVRBX1BPUlQpKQ0K
I2RlZmluZSBjc193cml0ZXJlZyhpb2Jhc2UsIHBvcnRubywgdmFsdWUpIFwN
Cgkob3V0dygoaW9iYXNlKSArIEFERF9QT1JULCAocG9ydG5vKSksIFwNCglv
dXR3KChpb2Jhc2UpICsgREFUQV9QT1JULCAodmFsdWUpKSkNCiNkZWZpbmUg
Y3NfcmVhZHdvcmQoaW9iYXNlLCBwb3J0bm8pIFwNCgkoaW53KChpb2Jhc2Up
ICsgKHBvcnRubykpKQ0KI2RlZmluZSBjc193cml0ZXdvcmQoaW9iYXNlLCBw
b3J0bm8sIHZhbHVlKSBcDQoJKG91dHcoKGlvYmFzZSkgKyAocG9ydG5vKSwg
KHZhbHVlKSkpDQoNCiNkZWZpbmUgcmVzZXRfY2hpcChuaWNfYWRkcikgXA0K
CWNzX3dyaXRlcmVnKG5pY19hZGRyLCBQUF9TZWxmQ1RMLCBjc19yZWFkcmVn
KGlvYWRkciwgUFBfU2VsZkNUTCkgfCBQT1dFUl9PTl9SRVNFVCksIFwNCglE
RUxBWSgzMDAwMCkNCg==
--0-899763362-894389391=:8507--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.980505212502.8507B-300000>