Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Mar 2000 11:46:17 +0300 (MSK)
From:      Maxim Bolotin <max@rsu.ru>
To:        freebsd-current@FreeBSD.ORG
Subject:   cs89x0 driver update (fwd)
Message-ID:  <Pine.BSF.4.10.10003141143290.29420-300000@altos.rnd.runnet.ru>

next 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-1106502712-952877046=:96199
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.BSF.4.10.10003141143292.29420@altos.rnd.runnet.ru>

Hi,

We found that our driver doesn't work with PNP in 4.0 and
use old, shared memory softc scheme. We rewrite it for the
new scheme, now We can install it in dev/cs and remove
isa_compat.c lines. I belive we have to commit it before
4.0 release.

Regards,
	Max. 

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

--0-1106502712-952877046=:96199
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="if_cs.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.4.10.10003121904060.96199@altos.rnd.runnet.ru>
Content-Description: sys/dev/cs/if_cs.c
Content-Disposition: ATTACHMENT; FILENAME="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
IE9GDQogKiBTVUNIIERBTUFHRS4NCiAqDQogKi8NCg0KLyoNCiAqICRGcmVl
QlNEOiBzcmMvc3lzL2kzODYvaXNhL2lmX2NzLmMsdiAxLjE0IDE5OTkvMDkv
MjUgMTI6MDU6NTIgcGhrIEV4cCAkDQogKg0KICogRGV2aWNlIGRyaXZlciBm
b3IgQ3J5c3RhbCBTZW1pY29uZHVjdG9yIENTODkyMCBiYXNlZCBldGhlcm5l
dA0KICogICBhZGFwdGVycy4gQnkgTWF4aW0gQm9sb3RpbiBhbmQgT2xlZyBT
aGFyb2lrbywgMjctQXByaWwtMTk5Nw0KICovDQoNCi8qDQojZGVmaW5lCSBD
U19ERUJVRyANCiAqLw0KDQojaW5jbHVkZSA8c3lzL3BhcmFtLmg+DQojaW5j
bHVkZSA8c3lzL3N5c3RtLmg+DQojaW5jbHVkZSA8c3lzL21hbGxvYy5oPg0K
I2luY2x1ZGUgPHN5cy9tYnVmLmg+DQojaW5jbHVkZSA8c3lzL3NvY2tldC5o
Pg0KI2luY2x1ZGUgPHN5cy9zb2NraW8uaD4NCiNpbmNsdWRlIDxzeXMva2Vy
bmVsLmg+DQojaW5jbHVkZSA8c3lzL3N5c2N0bC5oPg0KI2luY2x1ZGUgPHN5
cy9zeXNsb2cuaD4NCg0KI2luY2x1ZGUgPHN5cy9tb2R1bGUuaD4NCiNpbmNs
dWRlIDxzeXMvYnVzLmg+DQojaW5jbHVkZSA8bWFjaGluZS9idXMuaD4NCiNp
bmNsdWRlIDxzeXMvcm1hbi5oPg0KI2luY2x1ZGUgPG1hY2hpbmUvcmVzb3Vy
Y2UuaD4NCg0KI2luY2x1ZGUgPG5ldC9pZi5oPg0KI2luY2x1ZGUgPG5ldC9p
Zl9hcnAuaD4NCiNpbmNsdWRlIDxuZXQvaWZfbWVkaWEuaD4NCiNpbmNsdWRl
IDxuZXQvZXRoZXJuZXQuaD4NCg0KI2luY2x1ZGUgPG5ldC9icGYuaD4NCg0K
I2luY2x1ZGUgPGlzYS9pc2F2YXIuaD4NCg0KI2lmZGVmIEJSSURHRQ0KI2lu
Y2x1ZGUgPG5ldC9icmlkZ2UuaD4NCiNlbmRpZg0KDQojaW5jbHVkZSA8bWFj
aGluZS9jbG9jay5oPg0KDQojaW5jbHVkZSA8ZGV2L2NzL2lmX2NzcmVnLmg+
DQoNCiNpZmRlZiAgQ1NfVVNFXzY0S19ETUENCiNkZWZpbmUgQ1NfRE1BX0JV
RkZFUl9TSVpFIDY1NTM2DQojZWxzZQ0KI2RlZmluZSBDU19ETUFfQlVGRkVS
X1NJWkUgMTYzODQNCiNlbmRpZg0KDQovKg0KICogY3Nfc29mdGM6IHBlciBs
aW5lIGluZm8gYW5kIHN0YXR1cw0KICovDQpzdHJ1Y3QgY3Nfc29mdGMgew0K
DQogICAgICAgIC8qIEV0aGVybmV0IGNvbW1vbiBjb2RlICovDQogICAgICAg
IHN0cnVjdCBhcnBjb20gYXJwY29tOw0KDQogICAgICAgIC8qIENvbmZpZ3Vy
YXRpb24gd29yZHMgZnJvbSBFRVBST00gKi8NCiAgICAgICAgaW50IGF1dG9f
bmVnX2NuZjsgICAgICAgICAgICAgICAvKiBBdXRvTmVnb3RpdGF0aW9uIGNv
bmZpZ3VyYXRpb24gKi8NCglpbnQgYWRhcHRlcl9jbmY7ICAgICAgICAgICAg
ICAgIC8qIEFkYXB0ZXIgY29uZmlndXJhdGlvbiAqLw0KICAgICAgICBpbnQg
aXNhX2NvbmZpZzsgICAgICAgICAgICAgICAgIC8qIElTQSBjb25maWd1cmF0
aW9uICovDQogICAgICAgIGludCBjaGlwX3R5cGU7CQkJLyogVHlwZSBvZiBj
aGlwICovDQoNCiAgICAgICAgc3RydWN0IGlmbWVkaWEgbWVkaWE7CQkvKiBN
ZWRpYSBpbmZvcm1hdGlvbiAqLw0KDQoJaW50ICAgICBwb3J0X3JpZDsJCS8q
IHJlc291cmNlIGlkIGZvciBwb3J0IHJhbmdlICovDQoJaW50ICAgICBwb3J0
X3VzZWQ7CQkvKiBub256ZXJvIGlmIHBvcnRzIHVzZWQgKi8NCglzdHJ1Y3Qg
cmVzb3VyY2UqIHBvcnRfcmVzOwkvKiByZXNvdXJjZSBmb3IgcG9ydCByYW5n
ZSAqLw0KCWludCAgICAgbWVtX3JpZDsgIAkJLyogcmVzb3VyY2UgaWQgZm9y
IG1lbW9yeSByYW5nZSAqLw0KICAgICAgICBpbnQgICAgIG1lbV91c2VkOyAg
CQkvKiBub256ZXJvIGlmIG1lbW9yeSB1c2VkICovDQoJc3RydWN0IHJlc291
cmNlKiBtZW1fcmVzOwkvKiByZXNvdXJjZSBmb3IgbWVtb3J5IHJhbmdlICov
DQogICAgICAgIGludCAgICAgaXJxX3JpZDsJCS8qIHJlc291cmNlIGlkIGZv
ciBpcnEgKi8NCiAgICAgICAgc3RydWN0IHJlc291cmNlKiBpcnFfcmVzOwkv
KiByZXNvdXJjZSBmb3IgaXJxICovDQogICAgICAgIHZvaWQqICAgaXJxX2hh
bmRsZTsJCS8qIGhhbmRsZSBmb3IgaXJxIGhhbmRsZXIgKi8NCg0KICAgICAg
ICBpbnQgCW5pY19hZGRyOyAJCS8qIEJhc2UgSU8gYWRkcmVzcyBvZiBjYXJk
ICovDQoJaW50CXNlbmRfY21kOw0KICAgICAgICBpbnQJbGluZV9jdGw7CQkv
KiAqLw0KICAgICAgICBpbnQJc2VuZF91bmRlcnJ1bjsNCiAgICAgICAgdm9p
ZAkqcmVjdl9yaW5nOw0KDQogICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZmZl
cjsNCiAgICAgICAgaW50IGJ1Zl9sZW47DQp9Ow0KDQpzdGF0aWMgaW50CWNz
X3JlY3ZfZGVsYXkgPSA1NzA7DQpTWVNDVExfSU5UKF9tYWNoZGVwLCBPSURf
QVVUTywgY3NfcmVjdl9kZWxheSwgQ1RMRkxBR19SVywgJmNzX3JlY3ZfZGVs
YXksIDAsICIiKTsNCg0Kc3RhdGljIGludAljc19pc2FfcHJvYmUJCV9fUCgo
ZGV2aWNlX3QgZGV2KSk7DQpzdGF0aWMgaW50CWNzX2lzYV9hdHRhY2gJCV9f
UCgoZGV2aWNlX3QgZGV2KSk7DQoNCnN0YXRpYyBpbnQJY3NfY3M4OXgwX3By
b2JlCQlfX1AoKGRldmljZV90IGRldikpOw0KDQpkcml2ZXJfaW50cl90CWNz
aW50cjsNCg0Kc3RhdGljIGludAljc19hdHRhY2gJCV9fUCgoc3RydWN0IGNz
X3NvZnRjICosIGludCwgaW50KSk7DQoNCnN0YXRpYyB2b2lkCWNzX2luaXQJ
CQlfX1AoKHZvaWQgKikpOw0Kc3RhdGljIGludAljc19pb2N0bAkJX19QKChz
dHJ1Y3QgaWZuZXQgKiwgdV9sb25nLCBjYWRkcl90KSk7DQpzdGF0aWMgdm9p
ZAljc19zdGFydAkJX19QKChzdHJ1Y3QgaWZuZXQgKikpOw0Kc3RhdGljIHZv
aWQJY3Nfc3RvcAkJCV9fUCgoc3RydWN0IGNzX3NvZnRjICopKTsNCnN0YXRp
YyB2b2lkCWNzX3Jlc2V0CQlfX1AoKHN0cnVjdCBjc19zb2Z0YyAqKSk7DQpz
dGF0aWMgdm9pZAljc193YXRjaGRvZwkJX19QKChzdHJ1Y3QgaWZuZXQgKikp
Ow0KDQpzdGF0aWMgaW50CWNzX2FsbG9jX3BvcnQoZGV2aWNlX3QgZGV2LCBp
bnQgcmlkLCBpbnQgc2l6ZSk7DQpzdGF0aWMgaW50CWNzX2FsbG9jX21lbW9y
eShkZXZpY2VfdCBkZXYsIGludCByaWQsIGludCBzaXplKTsNCnN0YXRpYyBp
bnQJY3NfYWxsb2NfaXJxKGRldmljZV90IGRldiwgaW50IHJpZCwgaW50IGZs
YWdzKTsNCnN0YXRpYyB2b2lkCWNzX3JlbGVhc2VfcmVzb3VyY2VzKGRldmlj
ZV90IGRldik7DQoNCnN0YXRpYyBpbnQJY3NfbWVkaWFjaGFuZ2UJX19QKChz
dHJ1Y3QgaWZuZXQgKikpOw0Kc3RhdGljIHZvaWQJY3NfbWVkaWFzdGF0dXMJ
X19QKChzdHJ1Y3QgaWZuZXQgKiwgc3RydWN0IGlmbWVkaWFyZXEgKikpOw0K
c3RhdGljIGludCAgICAgIGNzX21lZGlhc2V0CV9fUCgoc3RydWN0IGNzX3Nv
ZnRjICosIGludCkpOw0KDQpzdGF0aWMgdm9pZAljc193cml0ZV9tYnVmcyhz
dHJ1Y3QgY3Nfc29mdGMqLCBzdHJ1Y3QgbWJ1ZiopOw0Kc3RhdGljIHZvaWQJ
Y3NfeG1pdF9idWYoc3RydWN0IGNzX3NvZnRjKik7DQpzdGF0aWMgaW50CWNz
X2dldF9wYWNrZXQoc3RydWN0IGNzX3NvZnRjKik7DQpzdGF0aWMgdm9pZAlj
c19zZXRtb2RlKHN0cnVjdCBjc19zb2Z0YyopOw0KDQpzdGF0aWMgaW50CWdl
dF9lZXByb21fZGF0YShzdHJ1Y3QgY3Nfc29mdGMgKnNjLCBpbnQsIGludCwg
aW50ICopOw0Kc3RhdGljIGludAlnZXRfZWVwcm9tX2Nrc3VtKGludCwgaW50
LCBpbnQgKik7DQpzdGF0aWMgaW50CXdhaXRfZWVwcm9tX3JlYWR5KCBzdHJ1
Y3QgY3Nfc29mdGMgKik7DQpzdGF0aWMgdm9pZAljb250cm9sX2RjX2RjKCBz
dHJ1Y3QgY3Nfc29mdGMgKiwgaW50ICk7DQpzdGF0aWMgaW50CXNlbmRfdGVz
dF9wa3QoIHN0cnVjdCBjc19zb2Z0YyAqICk7DQpzdGF0aWMgaW50CWVuYWJs
ZV90cChzdHJ1Y3QgY3Nfc29mdGMgKik7DQpzdGF0aWMgaW50CWVuYWJsZV9h
dWkoc3RydWN0IGNzX3NvZnRjICopOw0Kc3RhdGljIGludAllbmFibGVfYm5j
KHN0cnVjdCBjc19zb2Z0YyAqKTsNCnN0YXRpYyBpbnQgICAgICBjc19kdXBs
ZXhfYXV0byhzdHJ1Y3QgY3Nfc29mdGMgKik7DQoNCnN0YXRpYyBkZXZpY2Vf
bWV0aG9kX3QgY3NfbWV0aG9kc1tdID0gew0KICAgICAgICAvKiBEZXZpY2Ug
aW50ZXJmYWNlICovDQogICAgICAgIERFVk1FVEhPRChkZXZpY2VfcHJvYmUs
ICAgICAgICAgY3NfaXNhX3Byb2JlKSwNCiAgICAgICAgREVWTUVUSE9EKGRl
dmljZV9hdHRhY2gsICAgICAgICBjc19pc2FfYXR0YWNoKSwNCiAgICAgICAg
eyAwLCAwIH0NCn07DQoNCnN0YXRpYyBkcml2ZXJfdCBjc19kcml2ZXIgPSB7
DQogICAgICAgICJjcyIsDQogICAgICAgIGNzX21ldGhvZHMsDQogICAgICAg
IHNpemVvZihzdHJ1Y3QgY3Nfc29mdGMpDQp9Ow0KDQpzdGF0aWMgZGV2Y2xh
c3NfdCBjc19kZXZjbGFzczsNCg0KRFJJVkVSX01PRFVMRShjcywgaXNhLCBj
c19kcml2ZXIsIGNzX2RldmNsYXNzLCAwLCAwKTsNCg0Kc3RhdGljIGludA0K
Z2V0X2VlcHJvbV9kYXRhKCBzdHJ1Y3QgY3Nfc29mdGMgKnNjLCBpbnQgb2Zm
LCBpbnQgbGVuLCBpbnQgKmJ1ZmZlcikNCnsNCglpbnQgaTsNCg0KI2lmZGVm
IENTX0RFQlVHDQoJcHJpbnRmKENTX05BTUUiOkVFUFJPTSBkYXRhIGZyb20g
JXggZm9yICV4OlxuIiwgb2ZmLGxlbik7DQojZW5kaWYNCg0KCWZvciAoaT0w
O2k8bGVuO2krKykgew0KCQlpZiAod2FpdF9lZXByb21fcmVhZHkoc2MpIDwg
MCkgcmV0dXJuIC0xOw0KCQkvKiBTZW5kIGNvbW1hbmQgdG8gRUVQUk9NIHRv
IHJlYWQgKi8NCgkJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9FRUNN
RCwgKG9mZitpKXxFRVBST01fUkVBRF9DTUQgKTsNCgkJaWYgKHdhaXRfZWVw
cm9tX3JlYWR5KHNjKTwwKQ0KCQkJcmV0dXJuIC0xOw0KCQlidWZmZXJbaV0g
PSBjc19yZWFkcmVnIChzYy0+bmljX2FkZHIsIFBQX0VFRGF0YSk7DQoNCiNp
ZmRlZiBDU19ERUJVRw0KCQlwcmludGYoIiUwMnggJTAyeCAiLCh1bnNpZ25l
ZCBjaGFyKWJ1ZmZlcltpXSwNCgkJCQkJKHVuc2lnbmVkIGNoYXIpYnVmZmVy
W2krMV0pOw0KI2VuZGlmDQoJfQ0KDQojaWZkZWYgQ1NfREVCVUcNCglwcmlu
dGYoIlxuIik7DQojZW5kaWYNCg0KCXJldHVybiAwOw0KfQ0KDQpzdGF0aWMg
aW50DQpnZXRfZWVwcm9tX2Nrc3VtKGludCBvZmYsIGludCBsZW4sIGludCAq
YnVmZmVyKQ0Kew0KCWludCBpLGNrc3VtPTA7DQoNCglmb3IgKGk9MDtpPGxl
bjtpKyspDQoJCWNrc3VtKz1idWZmZXJbaV07DQoJY2tzdW0gJj0gMHhmZmZm
Ow0KCWlmIChja3N1bT09MCkNCgkJcmV0dXJuIDA7DQoJcmV0dXJuIC0xOw0K
fQ0KDQpzdGF0aWMgaW50DQp3YWl0X2VlcHJvbV9yZWFkeShzdHJ1Y3QgY3Nf
c29mdGMgKnNjKQ0Kew0KCURFTEFZICggMzAwMDAgKTsJLyogWFhYIHNob3Vs
ZCB3ZSBkbyBzb21lIGNoZWNrcyBoZXJlID8gKi8NCglyZXR1cm4gMDsNCn0N
Cg0Kc3RhdGljIHZvaWQNCmNvbnRyb2xfZGNfZGMoc3RydWN0IGNzX3NvZnRj
ICpzYywgaW50IG9uX25vdF9vZmYpDQp7DQoJdW5zaWduZWQgaW50IHNlbGZf
Y29udHJvbCA9IEhDQjFfRU5CTDsNCg0KCWlmICgoKHNjLT5hZGFwdGVyX2Nu
ZiAmIEFfQ05GX0RDX0RDX1BPTEFSSVRZKSE9MCkgXiBvbl9ub3Rfb2ZmKQ0K
CQlzZWxmX2NvbnRyb2wgfD0gSENCMTsNCgllbHNlDQoJCXNlbGZfY29udHJv
bCAmPSB+SENCMTsNCgljc193cml0ZXJlZyggc2MtPm5pY19hZGRyLCBQUF9T
ZWxmQ1RMLCBzZWxmX2NvbnRyb2wgKTsNCg0KCURFTEFZKCA1MDAwMDAgKTsN
Cn0NCg0KDQpzdGF0aWMgaW50DQpjc19kdXBsZXhfYXV0byhzdHJ1Y3QgY3Nf
c29mdGMgKnNjKQ0Kew0KICAgICAgICBpbnQgaSwgZXJyb3I9MCwgdW5pdD1z
Yy0+YXJwY29tLmFjX2lmLmlmX3VuaXQ7DQogICAgICAgIA0KICAgICAgICBj
c193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0F1dG9OZWdDVEwsDQogICAg
ICAgICAgICAgICAgICAgIFJFX05FR19OT1cgfCBBTExPV19GRFggfCBBVVRP
X05FR19FTkFCTEUgKTsNCiAgICAgICAgZm9yIChpPTA7IGNzX3JlYWRyZWco
c2MtPm5pY19hZGRyLFBQX0F1dG9OZWdTVCkmQVVUT19ORUdfQlVTWTsgaSsr
KSB7DQogICAgICAgICAgICAgICAgaWYgKGkgPiA0MDAwMCkgew0KICAgICAg
ICAgICAgICAgICAgICAgICAgcHJpbnRmKENTX05BTUUiJTFkOiBmdWxsL2hh
bGYgZHVwbGV4ICINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
YXV0byBuZWdvdGlhdGlvbiB0aW1lb3V0XG4iLCB1bml0KTsNCgkJCWVycm9y
ID0gRVRJTUVET1VUOw0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIERFTEFZKDEw
MDApOw0KICAgICAgICB9DQogICAgICAgIERFTEFZKCAxMDAwMDAwICk7DQoJ
cmV0dXJuIGVycm9yOw0KfQ0KDQpzdGF0aWMgaW50DQplbmFibGVfdHAoc3Ry
dWN0IGNzX3NvZnRjICpzYykNCnsNCglpbnQgdW5pdCA9IHNjLT5hcnBjb20u
YWNfaWYuaWZfdW5pdDsNCg0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwg
UFBfTGluZUNUTCwgc2MtPmxpbmVfY3RsICYgfkFVSV9PTkxZKTsNCgljb250
cm9sX2RjX2RjKHNjLCAwKTsNCglERUxBWSggMTUwMDAwICk7DQoNCglpZiAo
KGNzX3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQUF9MaW5lU1QpICYgTElOS19P
Syk9PTApIHsNCgkJcHJpbnRmKENTX05BTUUiJTFkOiBmYWlsZWQgdG8gZW5h
YmxlIFRQXG4iLCB1bml0KTsNCiAgICAgICAgICAgICAgICByZXR1cm4gRUlO
VkFMOw0KCX0NCg0KCXJldHVybiAwOw0KfQ0KDQovKg0KICogWFhYIFRoaXMg
d2FzIHJld3JpdHRlbiBmcm9tIExpbnV4IGRyaXZlciB3aXRob3V0IGFueSB0
ZXN0cy4NCiAqLyAgICAgICAgICAgICANCnN0YXRpYyBpbnQNCnNlbmRfdGVz
dF9wa3Qoc3RydWN0IGNzX3NvZnRjICpzYykNCnsNCgljaGFyIHRlc3RfcGFj
a2V0W10gPSB7IDAsMCwwLDAsMCwwLCAwLDAsMCwwLDAsMCwNCgkJCQkwLCA0
NiwgIC8qIEEgNDYgaW4gbmV0d29yayBvcmRlciAqLw0KCQkJCTAsIDAsICAg
LyogRFNBUD0wICYgU1NBUD0wIGZpZWxkcyAqLw0KCQkJCTB4ZjMsIDAgLyog
Q29udHJvbCAoVGVzdCBSZXEgKyBQIGJpdCBzZXQpICovIH07DQoJaW50IGk7
DQoJdV9jaGFyIGV0aGVyX2FkZHJlc3NfYmFja3VwW0VUSEVSX0FERFJfTEVO
XTsNCg0KCWZvciAoaSA9IDA7IGkgPCBFVEhFUl9BRERSX0xFTjsgaSsrKSB7
DQoJCWV0aGVyX2FkZHJlc3NfYmFja3VwW2ldID0gc2MtPmFycGNvbS5hY19l
bmFkZHJbaV07DQoJfQ0KDQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQ
UF9MaW5lQ1RMLA0KCQljc19yZWFkcmVnKHNjLT5uaWNfYWRkciwgUFBfTGlu
ZUNUTCkgfCBTRVJJQUxfVFhfT04gKTsNCgliY29weSh0ZXN0X3BhY2tldCwN
CgkJCXNjLT5hcnBjb20uYWNfZW5hZGRyLCBFVEhFUl9BRERSX0xFTik7DQoJ
YmNvcHkodGVzdF9wYWNrZXQrRVRIRVJfQUREUl9MRU4sDQoJCQlzYy0+YXJw
Y29tLmFjX2VuYWRkciwgRVRIRVJfQUREUl9MRU4pOw0KCW91dHcoc2MtPm5p
Y19hZGRyICsgVFhfQ01EX1BPUlQsIHNjLT5zZW5kX2NtZCk7DQoJb3V0dyhz
Yy0+bmljX2FkZHIgKyBUWF9MRU5fUE9SVCwgc2l6ZW9mKHRlc3RfcGFja2V0
KSk7DQoNCgkvKiBXYWl0IGZvciBjaGlwIHRvIGFsbG9jYXRlIG1lbW9yeSAq
Lw0KCURFTEFZKDUwMDAwKTsNCglpZiAoIShjc19yZWFkcmVnKHNjLT5uaWNf
YWRkciwgUFBfQnVzU1QpICYgUkVBRFlfRk9SX1RYX05PVykpIHsNCgkJZm9y
IChpID0gMDsgaSA8IEVUSEVSX0FERFJfTEVOOyBpKyspIHsNCgkJCXNjLT5h
cnBjb20uYWNfZW5hZGRyW2ldID0gZXRoZXJfYWRkcmVzc19iYWNrdXBbaV07
DQoJCX0NCgkJcmV0dXJuIDA7DQoJfQ0KDQoJb3V0c3coc2MtPm5pY19hZGRy
ICsgVFhfRlJBTUVfUE9SVCwgdGVzdF9wYWNrZXQsIHNpemVvZih0ZXN0X3Bh
Y2tldCkpOw0KDQoJREVMQVkoMzAwMDApOw0KDQoJaWYgKChjc19yZWFkcmVn
KHNjLT5uaWNfYWRkcixQUF9UeEV2ZW50KSAmIFRYX1NFTkRfT0tfQklUUykg
PT0gVFhfT0spIHsNCgkJZm9yIChpID0gMDsgaSA8IEVUSEVSX0FERFJfTEVO
OyBpKyspIHsNCgkJCXNjLT5hcnBjb20uYWNfZW5hZGRyW2ldID0gZXRoZXJf
YWRkcmVzc19iYWNrdXBbaV07DQoJCX0NCgkJcmV0dXJuIDE7DQoJfQ0KCWZv
ciAoaSA9IDA7IGkgPCBFVEhFUl9BRERSX0xFTjsgaSsrKSB7DQoJCXNjLT5h
cnBjb20uYWNfZW5hZGRyW2ldID0gZXRoZXJfYWRkcmVzc19iYWNrdXBbaV07
DQoJfQ0KCXJldHVybiAwOw0KfQ0KDQovKg0KICogWFhYIFRoaXMgd2FzIHJl
d3JpdHRlbiBmcm9tIExpbnV4IGRyaXZlciB3aXRob3V0IGFueSB0ZXN0cy4N
CiAqLw0Kc3RhdGljIGludA0KZW5hYmxlX2F1aShzdHJ1Y3QgY3Nfc29mdGMg
KnNjKQ0Kew0KCWludCB1bml0ID0gc2MtPmFycGNvbS5hY19pZi5pZl91bml0
Ow0KDQoJY29udHJvbF9kY19kYyhzYywgMCk7DQoJY3Nfd3JpdGVyZWcoc2Mt
Pm5pY19hZGRyLCBQUF9MaW5lQ1RMLA0KCQkoc2MtPmxpbmVfY3RsICYgfkFV
VE9fQVVJXzEwQkFTRVQpIHwgQVVJX09OTFkpOw0KDQoJaWYgKCFzZW5kX3Rl
c3RfcGt0KHNjKSkgew0KCQlwcmludGYoQ1NfTkFNRSIlMWQgZmFpbGVkIHRv
IGVuYWJsZSBBVUlcbiIsIHVuaXQpOw0KCQlyZXR1cm4gRUlOVkFMOw0KICAg
ICAgICB9DQogICAgICAgIHJldHVybiAwOw0KfQ0KDQovKg0KICogWFhYIFRo
aXMgd2FzIHJld3JpdHRlbiBmcm9tIExpbnV4IGRyaXZlciB3aXRob3V0IGFu
eSB0ZXN0cy4NCiAqLyAgICAgICAgICAgICANCnN0YXRpYyBpbnQNCmVuYWJs
ZV9ibmMoc3RydWN0IGNzX3NvZnRjICpzYykNCnsNCglpbnQgdW5pdCA9IHNj
LT5hcnBjb20uYWNfaWYuaWZfdW5pdDsNCg0KCWNvbnRyb2xfZGNfZGMoc2Ms
IDEpOw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfTGluZUNUTCwN
CgkJKHNjLT5saW5lX2N0bCAmIH5BVVRPX0FVSV8xMEJBU0VUKSB8IEFVSV9P
TkxZKTsNCg0KCWlmICghc2VuZF90ZXN0X3BrdChzYykpIHsNCgkJcHJpbnRm
KENTX05BTUUiJTFkIGZhaWxlZCB0byBlbmFibGUgQk5DXG4iLCB1bml0KTsN
CgkJcmV0dXJuIEVJTlZBTDsNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4g
MDsNCn0NCg0Kc3RhdGljIGludA0KY3NfY3M4OXgwX3Byb2JlKGRldmljZV90
IGRldikNCnsNCglpbnQgaTsNCglpbnQgaW9iYXNlOw0KCWludCBlcnJvcjsN
Cg0KCXVfbG9uZyBpcnEsIGp1bms7DQoNCglzdHJ1Y3QgY3Nfc29mdGMgKnNj
ID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYpOw0KDQoJdW5zaWduZWQgcmV2X3R5
cGUgPSAwOw0KCWNoYXIgY2hpcF9yZXZpc2lvbjsNCglpbnQgZWVwcm9tX2J1
ZmZbQ0hLU1VNX0xFTl07DQoJaW50IGNoaXBfdHlwZSwgcHBfaXNhaW50LCBw
cF9pc2FkbWE7DQoNCgllcnJvciA9IGNzX2FsbG9jX3BvcnQoZGV2LCAwLCBD
U184OXgwX0lPX1BPUlRTKTsNCglpZiAoZXJyb3IpDQoJCXJldHVybiAoZXJy
b3IpOw0KDQoJaW9iYXNlPXJtYW5fZ2V0X3N0YXJ0KHNjLT5wb3J0X3Jlcyk7
DQoNCglpZiAoKGludyhpb2Jhc2UrQUREX1BPUlQpICYgQUREX01BU0spICE9
IEFERF9TSUcpIHsNCgkJLyogQ2hpcCBub3QgZGV0ZWN0ZWQuIExldCdzIHRy
eSB0byByZXNldCBpdCAqLw0KCQlpZiAoYm9vdHZlcmJvc2UpDQoJCQlkZXZp
Y2VfcHJpbnRmKGRldiwgInRyeWluZyB0byByZXNldCB0aGUgY2hpcC5cbiIp
Ow0KCQlvdXR3KGlvYmFzZStBRERfUE9SVCwgUFBfU2VsZkNUTCk7DQoJCWkg
PSBpbncoaW9iYXNlK0RBVEFfUE9SVCk7DQoJCW91dHcoaW9iYXNlK0FERF9Q
T1JULCBQUF9TZWxmQ1RMKTsNCgkJb3V0dyhpb2Jhc2UrREFUQV9QT1JULCBp
IHwgUE9XRVJfT05fUkVTRVQpOw0KCQlpZiAoKGludyhpb2Jhc2UrQUREX1BP
UlQpICYgQUREX01BU0spICE9IEFERF9TSUcpDQoJCQlyZXR1cm4gKEVOWElP
KTsNCgl9DQoNCglvdXR3KGlvYmFzZStBRERfUE9SVCwgUFBfQ2hpcElEKTsN
CglpZiAoaW53KGlvYmFzZStEQVRBX1BPUlQpICE9IENISVBfRUlTQV9JRF9T
SUcpDQoJCXJldHVybiAoRU5YSU8pOw0KDQoJcmV2X3R5cGUgPSBjc19yZWFk
cmVnKGlvYmFzZSwgUFJPRFVDVF9JRF9BREQpOw0KCWNoaXBfdHlwZSA9IHJl
dl90eXBlICYgflJFVklTT05fQklUUzsNCgljaGlwX3JldmlzaW9uID0gKChy
ZXZfdHlwZSAmIFJFVklTT05fQklUUykgPj4gOCkgKyAnQSc7DQoNCglzYy0+
bmljX2FkZHIgPSBpb2Jhc2U7DQoJc2MtPmNoaXBfdHlwZSA9IGNoaXBfdHlw
ZTsNCg0KCWlmKGNoaXBfdHlwZT09Q1M4OTAwKSB7DQoJCXBwX2lzYWludCA9
IFBQX0NTODkwMF9JU0FJTlQ7DQoJCXBwX2lzYWRtYSA9IFBQX0NTODkwMF9J
U0FETUE7DQoJCXNjLT5zZW5kX2NtZCA9IFRYX0NTODkwMF9BRlRFUl9BTEw7
DQoJfSBlbHNlIHsNCgkJcHBfaXNhaW50ID0gUFBfQ1M4OTIwX0lTQUlOVDsN
CgkJcHBfaXNhZG1hID0gUFBfQ1M4OTIwX0lTQURNQTsNCgkJc2MtPnNlbmRf
Y21kID0gVFhfQ1M4OTIwX0FGVEVSX0FMTDsNCgl9DQoNCiAgICAgICAgLyoN
CiAgICAgICAgICogQ2xlYXIgc29tZSBmaWVsZHMgc28gdGhhdCBmYWlsIG9m
IEVFUFJPTSB3aWxsIGxlZnQgdGhlbSBjbGVhbg0KICAgICAgICAgKi8NCiAg
ICAgICAgc2MtPmF1dG9fbmVnX2NuZiA9IDA7DQogICAgICAgIHNjLT5hZGFw
dGVyX2NuZiAgPSAwOw0KICAgICAgICBzYy0+aXNhX2NvbmZpZyAgID0gMDsN
CiAgICAgICAgDQoJLyoNCgkgKiBJZiBubyBpbnRlcnJ1cHQgc3BlY2lmaWVk
IChvciAiPyIpLCB1c2Ugd2hhdCB0aGUgYm9hcmQgdGVsbHMgdXMuDQoJICov
DQoJZXJyb3IgPSBidXNfZ2V0X3Jlc291cmNlKGRldiwgU1lTX1JFU19JUlEs
IDAsICZpcnEsICZqdW5rKTsNCg0KCS8qDQoJICogR2V0IGRhdGEgZnJvbSBF
RVBST00NCgkgKi8NCglpZigoY3NfcmVhZHJlZyhpb2Jhc2UsIFBQX1NlbGZT
VCkgJiBFRVBST01fUFJFU0VOVCkgPT0gMCkgew0KCQlkZXZpY2VfcHJpbnRm
KGRldiwgIk5vIEVFUFJPTSwgYXNzdW1pbmcgZGVmYXVsdHMuXG4iKTsNCgl9
IGVsc2Ugew0KCQlpZiAoZ2V0X2VlcHJvbV9kYXRhKHNjLFNUQVJUX0VFUFJP
TV9EQVRBLENIS1NVTV9MRU4sIGVlcHJvbV9idWZmKTwwKSB7DQoJCQlkZXZp
Y2VfcHJpbnRmKGRldiwgIkVFUFJPTSByZWFkIGZhaWxlZCwgIg0KCQkJCSJh
c3N1bWluZyBkZWZhdWx0cy5cbiIpOw0KCQl9IGVsc2Ugew0KCQkJaWYgKGdl
dF9lZXByb21fY2tzdW0oU1RBUlRfRUVQUk9NX0RBVEEsQ0hLU1VNX0xFTiwg
ZWVwcm9tX2J1ZmYpPDApIHsNCgkJCQlkZXZpY2VfcHJpbnRmKGRldiwgIkVF
UFJPTSBjaGVrc3VtIGJhZCwgIg0KCQkJCQkiYXNzdW1pbmcgZGVmYXVsdHMu
XG4iKTsNCgkJCX0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNjLT5hdXRvX25lZ19jbmYgPQ0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGVlcHJvbV9idWZmW0FVVE9fTkVHX0NO
Rl9PRkZTRVQvMl07DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNjLT5hZGFwdGVyX2NuZiA9DQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZWVwcm9tX2J1ZmZbQURBUFRFUl9DTkZfT0ZGU0VU
LzJdOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYy0+aXNh
X2NvbmZpZyA9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZWVwcm9tX2J1ZmZbSVNBX0NORl9PRkZTRVQvMl07DQoNCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpPTA7IGk8RVRIRVJf
QUREUl9MRU4vMjsgaSsrKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2MtPmFycGNvbS5hY19lbmFkZHJbaSoyXT0NCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVlcHJvbV9idWZmW2ldOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNjLT5hcnBjb20uYWNfZW5hZGRyW2kqMisxXT0NCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVlcHJvbV9idWZmW2ldID4+IDg7DQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAvKg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBJZiBu
byBpbnRlcnJ1cHQgc3BlY2lmaWVkIChvciAiPyIpLA0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKiB1c2Ugd2hhdCB0aGUgYm9hcmQgdGVs
bHMgdXMuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0K
CQkJCWlmIChlcnJvcikgew0KCQkJCQlpcnEgPSBzYy0+aXNhX2NvbmZpZyAm
IElOVF9OT19NQVNLOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChjaGlwX3R5cGU9PUNTODkwMCkgew0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNo
KGlycSkgew0KCQkJCQkJIGNhc2UgMDoNCgkJCQkJCQlpcnE9MTA7DQoJCQkJ
CQkJZXJyb3I9MDsNCgkJCQkJCQlicmVhazsNCgkJCQkJCSBjYXNlIDE6DQoJ
CQkJCQkJaXJxPTExOw0KCQkJCQkJCWVycm9yPTA7DQoJCQkJCQkJYnJlYWs7
DQoJCQkJCQkgY2FzZSAyOg0KCQkJCQkJCWlycT0xMjsNCgkJCQkJCQllcnJv
cj0wOw0KCQkJCQkJCWJyZWFrOw0KCQkJCQkJIGNhc2UgMzoNCgkJCQkJCQlp
cnE9NTsNCgkJCQkJCQllcnJvcj0wOw0KCQkJCQkJCWJyZWFrOw0KCQkJCQkJ
IGRlZmF1bHQ6DQoJCQkJCQkJZGV2aWNlX3ByaW50ZihkZXYsICJpbnZhbGlk
IGlycSBpbiBFRVBST00uXG4iKTsNCgkJCQkJCQllcnJvcj1FSU5WQUw7DQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQlpZiAoaXJxPkNTODkyMF9OT19J
TlRTKSB7DQoJCQkJCQkJZGV2aWNlX3ByaW50ZihkZXYsICJpbnZhbGlkIGly
cSBpbiBFRVBST00uXG4iKTsNCgkJCQkJCQllcnJvcj1FSU5WQUw7DQoJCQkJ
CQl9IGVsc2Ugew0KCQkJCQkJCWVycm9yPTA7DQoJCQkJCQl9DQoJCQkJCX0N
Cg0KCQkJCQlpZiAoIWVycm9yKQ0KCQkJCQkJYnVzX3NldF9yZXNvdXJjZShk
ZXYsIFNZU19SRVNfSVJRLCAwLA0KCQkJCQkJCQlpcnEsIDEpOw0KCQkJCX0N
CgkJCX0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgIH0NCg0KCWlmICgh
ZXJyb3IpIHsNCiAgICAgICAgICAgICAgICBpZiAoY2hpcF90eXBlID09IENT
ODkwMCkgew0KCQkJc3dpdGNoKGlycSkgew0KCQkJCWNhc2UgIDU6DQoJCQkJ
CWlycSA9IDM7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgMTA6DQoJCQkJCWly
cSA9IDA7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgMTE6DQoJCQkJCWlycSA9
IDE7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgMTI6DQoJCQkJCWlycSA9IDI7
DQoJCQkJCWJyZWFrOw0KCQkJCWRlZmF1bHQ6DQoJCQkJCWVycm9yPUVJTlZB
TDsNCgkJCX0NCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGlycSA+IENTODkyMF9OT19JTlRTKSB7DQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gRUlOVkFM
Ow0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg
IH0NCgl9DQoNCglpZiAoIWVycm9yKSB7DQogICAgICAgICAgICAgICAgY3Nf
d3JpdGVyZWcoaW9iYXNlLCBwcF9pc2FpbnQsIGlycSk7DQoJfSBlbHNlIHsN
CgkgICAgICAgCWRldmljZV9wcmludGYoZGV2LCAiVW5rbm93biBvciBpbnZh
bGlkIGlycVxuIik7DQogICAgICAgICAgICAgICAgcmV0dXJuIChFTlhJTyk7
DQogICAgICAgIH0NCiAgICAgICAgDQogICAgICAgIC8qDQogICAgICAgICAq
IFRlbXBvcmFyeSBkaXNhYmxlZA0KICAgICAgICAgKg0KICAgICAgICBpZiAo
ZHJxPjApDQoJCWNzX3dyaXRlcmVnKGlvYmFzZSwgcHBfaXNhZG1hLCBkcnEp
Ow0KCWVsc2Ugew0KCQlwcmludGYoIENTX05BTUUiJTFkOiBpbmNvcnJlY3Qg
ZHJxXG4iLCB1bml0ICk7DQoJCXJldHVybiAwOw0KCX0NCiAgICAgICAgKi8N
Cg0KCWlmIChib290dmVyYm9zZSkNCgkJIGRldmljZV9wcmludGYoZGV2LCAi
Q1M4OSVjMCVzIHJldiAlYyBtZWRpYSVzJXMlc1xuIiwNCgkJCWNoaXBfdHlw
ZT09Q1M4OTAwID8gJzAnIDogJzInLA0KCQkJY2hpcF90eXBlPT1DUzg5MjBN
ID8gIk0iIDogIiIsDQoJCQljaGlwX3JldmlzaW9uLA0KCQkJKHNjLT5hZGFw
dGVyX2NuZiAmIEFfQ05GXzEwQl9UKSA/ICIgVFAiICA6ICIiLA0KCQkJKHNj
LT5hZGFwdGVyX2NuZiAmIEFfQ05GX0FVSSkgICA/ICIgQVVJIiA6ICIiLA0K
CQkJKHNjLT5hZGFwdGVyX2NuZiAmIEFfQ05GXzEwQl8yKSA/ICIgQk5DIiA6
ICIiKTsNCg0KICAgICAgICBpZiAoKHNjLT5hZGFwdGVyX2NuZiAmIEFfQ05G
X0VYVE5EXzEwQl8yKSAmJg0KICAgICAgICAgICAgKHNjLT5hZGFwdGVyX2Nu
ZiAmIEFfQ05GX0xPV19SWF9TUVVFTENIKSkNCiAgICAgICAgICAgICAgICBz
Yy0+bGluZV9jdGwgPSBMT1dfUlhfU1FVRUxDSDsNCiAgICAgICAgZWxzZQ0K
ICAgICAgICAgICAgICAgIHNjLT5saW5lX2N0bCA9IDA7DQoNCiAgICAgICAg
DQoJcmV0dXJuIDA7DQp9DQoNCi8qDQogKiBBbGxvY2F0ZSBhIHBvcnQgcmVz
b3VyY2Ugd2l0aCB0aGUgZ2l2ZW4gcmVzb3VyY2UgaWQuDQogKi8NCmludCBj
c19hbGxvY19wb3J0KGRldmljZV90IGRldiwgaW50IHJpZCwgaW50IHNpemUp
DQp7DQogICAgICAgIHN0cnVjdCBjc19zb2Z0YyAqc2MgPSBkZXZpY2VfZ2V0
X3NvZnRjKGRldik7DQogICAgICAgIHN0cnVjdCByZXNvdXJjZSAqcmVzOw0K
DQogICAgICAgIHJlcyA9IGJ1c19hbGxvY19yZXNvdXJjZShkZXYsIFNZU19S
RVNfSU9QT1JULCAmcmlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMHVsLCB+MHVsLCBzaXplLCBSRl9BQ1RJVkUpOw0KICAgICAgICBp
ZiAocmVzKSB7DQogICAgICAgICAgICAgICAgc2MtPnBvcnRfcmlkID0gcmlk
Ow0KICAgICAgICAgICAgICAgIHNjLT5wb3J0X3JlcyA9IHJlczsNCiAgICAg
ICAgICAgICAgICBzYy0+cG9ydF91c2VkID0gc2l6ZTsNCiAgICAgICAgICAg
ICAgICByZXR1cm4gKDApOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAg
ICAgICAgIHJldHVybiAoRU5PRU5UKTsNCiAgICAgICAgfQ0KfQ0KDQovKg0K
ICogQWxsb2NhdGUgYSBtZW1vcnkgcmVzb3VyY2Ugd2l0aCB0aGUgZ2l2ZW4g
cmVzb3VyY2UgaWQuDQogKi8NCmludCBjc19hbGxvY19tZW1vcnkoZGV2aWNl
X3QgZGV2LCBpbnQgcmlkLCBpbnQgc2l6ZSkNCnsNCiAgICAgICAgc3RydWN0
IGNzX3NvZnRjICpzYyA9IGRldmljZV9nZXRfc29mdGMoZGV2KTsNCiAgICAg
ICAgc3RydWN0IHJlc291cmNlICpyZXM7DQoNCiAgICAgICAgcmVzID0gYnVz
X2FsbG9jX3Jlc291cmNlKGRldiwgU1lTX1JFU19NRU1PUlksICZyaWQsDQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwdWwsIH4wdWwsIHNp
emUsIFJGX0FDVElWRSk7DQogICAgICAgIGlmIChyZXMpIHsNCiAgICAgICAg
ICAgICAgICBzYy0+bWVtX3JpZCA9IHJpZDsNCiAgICAgICAgICAgICAgICBz
Yy0+bWVtX3JlcyA9IHJlczsNCiAgICAgICAgICAgICAgICBzYy0+bWVtX3Vz
ZWQgPSBzaXplOw0KICAgICAgICAgICAgICAgIHJldHVybiAoMCk7DQogICAg
ICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgcmV0dXJuIChFTk9FTlQp
Ow0KICAgICAgICB9DQp9DQoNCi8qDQogKiBBbGxvY2F0ZSBhbiBpcnEgcmVz
b3VyY2Ugd2l0aCB0aGUgZ2l2ZW4gcmVzb3VyY2UgaWQuDQogKi8NCmludCBj
c19hbGxvY19pcnEoZGV2aWNlX3QgZGV2LCBpbnQgcmlkLCBpbnQgZmxhZ3Mp
DQp7DQogICAgICAgIHN0cnVjdCBjc19zb2Z0YyAqc2MgPSBkZXZpY2VfZ2V0
X3NvZnRjKGRldik7DQogICAgICAgIHN0cnVjdCByZXNvdXJjZSAqcmVzOw0K
DQogICAgICAgIHJlcyA9IGJ1c19hbGxvY19yZXNvdXJjZShkZXYsIFNZU19S
RVNfSVJRLCAmcmlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMHVsLCB+MHVsLCAxLCAoUkZfQUNUSVZFIHwgZmxhZ3MpKTsNCiAgICAg
ICAgaWYgKHJlcykgew0KICAgICAgICAgICAgICAgIHNjLT5pcnFfcmlkID0g
cmlkOw0KICAgICAgICAgICAgICAgIHNjLT5pcnFfcmVzID0gcmVzOw0KICAg
ICAgICAgICAgICAgIHJldHVybiAoMCk7DQogICAgICAgIH0gZWxzZSB7DQog
ICAgICAgICAgICAgICAgcmV0dXJuIChFTk9FTlQpOw0KICAgICAgICB9DQp9
DQoNCi8qDQogKiBSZWxlYXNlIGFsbCByZXNvdXJjZXMNCiAqLw0Kdm9pZCBj
c19yZWxlYXNlX3Jlc291cmNlcyhkZXZpY2VfdCBkZXYpDQp7DQogICAgICAg
IHN0cnVjdCBjc19zb2Z0YyAqc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7
DQoNCiAgICAgICAgaWYgKHNjLT5wb3J0X3Jlcykgew0KICAgICAgICAgICAg
ICAgIGJ1c19yZWxlYXNlX3Jlc291cmNlKGRldiwgU1lTX1JFU19JT1BPUlQs
DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2MtPnBv
cnRfcmlkLCBzYy0+cG9ydF9yZXMpOw0KICAgICAgICAgICAgICAgIHNjLT5w
b3J0X3JlcyA9IDA7DQogICAgICAgIH0NCiAgICAgICAgaWYgKHNjLT5tZW1f
cmVzKSB7DQogICAgICAgICAgICAgICAgYnVzX3JlbGVhc2VfcmVzb3VyY2Uo
ZGV2LCBTWVNfUkVTX01FTU9SWSwNCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzYy0+bWVtX3JpZCwgc2MtPm1lbV9yZXMpOw0KICAg
ICAgICAgICAgICAgIHNjLT5tZW1fcmVzID0gMDsNCiAgICAgICAgfQ0KICAg
ICAgICBpZiAoc2MtPmlycV9yZXMpIHsNCiAgICAgICAgICAgICAgICBidXNf
cmVsZWFzZV9yZXNvdXJjZShkZXYsIFNZU19SRVNfSVJRLA0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjLT5pcnFfcmlkLCBzYy0+
aXJxX3Jlcyk7DQogICAgICAgICAgICAgICAgc2MtPmlycV9yZXMgPSAwOw0K
ICAgICAgICB9DQp9DQoNCnN0YXRpYyBzdHJ1Y3QgaXNhX3BucF9pZCBjc19p
ZHNbXSA9IHsNCgl7IDB4NDA2MDYzMGUsIE5VTEwgfSwJCS8qIENTQzYwNDAg
Ki8NCgl7IDB4MTAxMDRkMjQsIE5VTEwgfSwJCS8qIElCTSBFdGhlckpldCAq
Lw0KCXsgMCwgTlVMTCB9DQp9Ow0KDQovKg0KICogRGV0ZXJtaW5lIGlmIHRo
ZSBkZXZpY2UgaXMgcHJlc2VudA0KICovDQpzdGF0aWMgaW50DQpjc19pc2Ff
cHJvYmUoZGV2aWNlX3QgZGV2KQ0Kew0KCWludCBlcnJvciA9IDA7DQoNCglz
dHJ1Y3QgY3Nfc29mdGMgKnNjID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYpOw0K
DQoJYnplcm8oc2MsIHNpemVvZihzdHJ1Y3QgY3Nfc29mdGMpKTsNCg0KCS8q
IENoZWNrIGlzYXBucCBpZHMgKi8NCgllcnJvciA9IElTQV9QTlBfUFJPQkUo
ZGV2aWNlX2dldF9wYXJlbnQoZGV2KSwgZGV2LCBjc19pZHMpOw0KDQoJLyog
SWYgdGhlIGNhcmQgaGFkIGEgUG5QIElEIHRoYXQgZGlkbid0IG1hdGNoIGFu
eSB3ZSBrbm93IGFib3V0ICovDQoJaWYgKGVycm9yID09IEVOWElPKSB7DQog
ICAgICAgICAgICAgICAgZ290byBlbmQ7DQogICAgICAgIH0NCg0KICAgICAg
ICAvKiBJZiB3ZSBoYWQgc29tZSBvdGhlciBwcm9ibGVtLiAqLw0KICAgICAg
ICBpZiAoIShlcnJvciA9PSAwIHx8IGVycm9yID09IEVOT0VOVCkpIHsNCiAg
ICAgICAgICAgICAgICBnb3RvIGVuZDsNCiAgICAgICAgfSANCg0KCWVycm9y
PWNzX2NzODl4MF9wcm9iZShkZXYpOw0KDQplbmQ6DQoJaWYgKGVycm9yID09
IDApDQogICAgICAgICAgICAgICAgZXJyb3IgPSBjc19hbGxvY19pcnEoZGV2
LCAwLCAwKTsNCg0KICAgICAgICBjc19yZWxlYXNlX3Jlc291cmNlcyhkZXYp
Ow0KICAgICAgICByZXR1cm4gKGVycm9yKTsNCn0NCg0Kc3RhdGljIGludCBj
c19pc2FfYXR0YWNoKGRldmljZV90IGRldikNCnsNCiAgICAgICAgc3RydWN0
IGNzX3NvZnRjICpzYyA9IGRldmljZV9nZXRfc29mdGMoZGV2KTsNCiAgICAg
ICAgaW50IGZsYWdzID0gZGV2aWNlX2dldF9mbGFncyhkZXYpOw0KICAgICAg
ICBpbnQgZXJyb3I7DQogICAgICAgIA0KICAgICAgICBpZiAoc2MtPnBvcnRf
dXNlZCA+IDApDQogICAgICAgICAgICAgICAgY3NfYWxsb2NfcG9ydChkZXYs
IHNjLT5wb3J0X3JpZCwgc2MtPnBvcnRfdXNlZCk7DQogICAgICAgIGlmIChz
Yy0+bWVtX3VzZWQpDQogICAgICAgICAgICAgICAgY3NfYWxsb2NfbWVtb3J5
KGRldiwgc2MtPm1lbV9yaWQsIHNjLT5tZW1fdXNlZCk7DQogICAgICAgIGNz
X2FsbG9jX2lycShkZXYsIHNjLT5pcnFfcmlkLCAwKTsNCiAgICAgICAgICAg
ICAgICANCiAgICAgICAgZXJyb3IgPSBidXNfc2V0dXBfaW50cihkZXYsIHNj
LT5pcnFfcmVzLCBJTlRSX1RZUEVfTkVULA0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNzaW50ciwgc2MsICZzYy0+aXJxX2hhbmRsZSk7DQog
ICAgICAgIGlmIChlcnJvcikgew0KICAgICAgICAgICAgICAgIGNzX3JlbGVh
c2VfcmVzb3VyY2VzKGRldik7DQogICAgICAgICAgICAgICAgcmV0dXJuIChl
cnJvcik7DQogICAgICAgIH0gICAgICAgICAgICAgIA0KDQogICAgICAgIHJl
dHVybiBjc19hdHRhY2goc2MsIGRldmljZV9nZXRfdW5pdChkZXYpLCBmbGFn
cyk7DQp9DQoNCi8qDQogKiBJbnN0YWxsIHRoZSBpbnRlcmZhY2UgaW50byBr
ZXJuZWwgbmV0d29ya2luZyBkYXRhIHN0cnVjdHVyZXMNCiAqLw0Kc3RhdGlj
IGludA0KY3NfYXR0YWNoKHN0cnVjdCBjc19zb2Z0YyAqc2MsIGludCB1bml0
LCBpbnQgZmxhZ3MpDQp7DQogICAgICAgIGludCBtZWRpYT0wOw0KCXN0cnVj
dCBpZm5ldCAqaWZwID0gJihzYy0+YXJwY29tLmFjX2lmKTsNCg0KCWNzX3N0
b3AoIHNjICk7DQoNCglpZiAoIWlmcC0+aWZfbmFtZSkgew0KCQlpZnAtPmlm
X3NvZnRjPXNjOw0KCQlpZnAtPmlmX3VuaXQ9dW5pdDsNCgkJaWZwLT5pZl9u
YW1lPSJjcyI7DQoJCWlmcC0+aWZfb3V0cHV0PWV0aGVyX291dHB1dDsNCgkJ
aWZwLT5pZl9zdGFydD1jc19zdGFydDsNCgkJaWZwLT5pZl9pb2N0bD1jc19p
b2N0bDsNCgkJaWZwLT5pZl93YXRjaGRvZz1jc193YXRjaGRvZzsNCgkJaWZw
LT5pZl9pbml0PWNzX2luaXQ7DQoJCWlmcC0+aWZfc25kLmlmcV9tYXhsZW49
IElGUV9NQVhMRU47DQoJCS8qDQogICAgICAgICAgICAgICAgICogIE1JQiBE
QVRBDQogICAgICAgICAgICAgICAgICovDQogICAgICAgICAgICAgICAgLyoN
CgkJaWZwLT5pZl9saW5rbWliPSZzYy0+bWliZGF0YTsNCgkJaWZwLT5pZl9s
aW5rbWlibGVuPXNpemVvZiBzYy0+bWliZGF0YTsNCiAgICAgICAgICAgICAg
ICAqLw0KDQoJCWlmcC0+aWZfZmxhZ3M9KElGRl9CUk9BRENBU1QgfCBJRkZf
U0lNUExFWCB8IElGRl9NVUxUSUNBU1QgKTsNCg0KCQkvKg0KCQkgKiB0aGlz
IGNvZGUgc3RpbGwgaW4gcHJvZ3Jlc3MgKERNQSBzdXBwb3J0KQ0KCQkgKg0K
DQoJCXNjLT5yZWN2X3Jpbmc9bWFsbG9jKENTX0RNQV9CVUZGRVJfU0laRTw8
MSwgTV9ERVZCVUYsIE1fTk9XQUlUKTsNCgkJaWYgKHNjLT5yZWN2X3Jpbmcg
PT0gTlVMTCkgew0KCQkJbG9nKExPR19FUlIsQ1NfTkFNRQ0KCQkJIiVkOiBD
b3VsZG4ndCBhbGxvY2F0ZSBtZW1vcnkgZm9yIE5JQ1xuIiwgdW5pdCk7DQoJ
CQlyZXR1cm4oMCk7DQoJCX0NCgkJaWYgKChzYy0+cmVjdl9yaW5nLShzYy0+
cmVjdl9yaW5nICYgMHgxRkZGRikpDQoJCSAgICA8ICgxMjgqMTAyNC1DU19E
TUFfQlVGRkVSX1NJWkUpKQ0KCQkgICAgc2MtPnJlY3ZfcmluZys9MTYqMTAy
NDsNCg0KCQkqLw0KDQoJCXNjLT5idWZmZXI9bWFsbG9jKEVUSEVSX01BWF9M
RU4tRVRIRVJfQ1JDX0xFTixNX0RFVkJVRixNX05PV0FJVCk7DQoJCWlmIChz
Yy0+YnVmZmVyID09IE5VTEwpIHsNCiAgICAgICAgICAgICAgICAgICAgICAg
IHByaW50ZihDU19OQU1FIiVkOiBDb3VsZG4ndCBhbGxvY2F0ZSBtZW1vcnkg
Zm9yIE5JQ1xuIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bml0KTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybigwKTsNCgkJ
fQ0KDQoJCS8qDQoJCSAqIEluaXRpYWxpemUgdGhlIG1lZGlhIHN0cnVjdHVy
ZXMuDQoJCSAqLw0KCQlpZm1lZGlhX2luaXQoJnNjLT5tZWRpYSwgMCwgY3Nf
bWVkaWFjaGFuZ2UsIGNzX21lZGlhc3RhdHVzKTsNCg0KCQlpZiAoc2MtPmFk
YXB0ZXJfY25mICYgQV9DTkZfMTBCX1QpIHsNCgkJCWlmbWVkaWFfYWRkKCZz
Yy0+bWVkaWEsIElGTV9FVEhFUnxJRk1fMTBfVCwgMCwgTlVMTCk7DQoJCQlp
ZiAoc2MtPmNoaXBfdHlwZSAhPSBDUzg5MDApIHsNCgkJCQlpZm1lZGlhX2Fk
ZCgmc2MtPm1lZGlhLA0KCQkJCQlJRk1fRVRIRVJ8SUZNXzEwX1R8SUZNX0ZE
WCwgMCwgTlVMTCk7DQoJCQkJaWZtZWRpYV9hZGQoJnNjLT5tZWRpYSwNCgkJ
CQkJSUZNX0VUSEVSfElGTV8xMF9UfElGTV9IRFgsIDAsIE5VTEwpOw0KCQkJ
fQ0KCQl9IA0KDQoJCWlmIChzYy0+YWRhcHRlcl9jbmYgJiBBX0NORl8xMEJf
MikNCgkJCWlmbWVkaWFfYWRkKCZzYy0+bWVkaWEsIElGTV9FVEhFUnxJRk1f
MTBfMiwgMCwgTlVMTCk7DQoNCgkJaWYgKHNjLT5hZGFwdGVyX2NuZiAmIEFf
Q05GX0FVSSkNCgkJCWlmbWVkaWFfYWRkKCZzYy0+bWVkaWEsIElGTV9FVEhF
UnxJRk1fMTBfNSwgMCwgTlVMTCk7DQoNCiAgICAgICAgICAgICAgICBpZiAo
c2MtPmFkYXB0ZXJfY25mICYgQV9DTkZfTUVESUEpDQogICAgICAgICAgICAg
ICAgICAgICAgICBpZm1lZGlhX2FkZCgmc2MtPm1lZGlhLCBJRk1fRVRIRVJ8
SUZNX0FVVE8sIDAsIE5VTEwpOw0KDQogICAgICAgICAgICAgICAgLyogU2V0
IGRlZmF1bHQgbWVkaWEgZnJvbSBFRVBST00gKi8NCiAgICAgICAgICAgICAg
ICBzd2l0Y2ggKHNjLT5hZGFwdGVyX2NuZiAmIEFfQ05GX01FRElBX1RZUEUp
IHsNCiAgICAgICAgICAgICAgICBjYXNlIEFfQ05GX01FRElBX0FVVE86ICBt
ZWRpYSA9IElGTV9FVEhFUnxJRk1fQVVUTzsgYnJlYWs7DQogICAgICAgICAg
ICAgICAgY2FzZSBBX0NORl9NRURJQV8xMEJfVDogbWVkaWEgPSBJRk1fRVRI
RVJ8SUZNXzEwX1Q7IGJyZWFrOw0KICAgICAgICAgICAgICAgIGNhc2UgQV9D
TkZfTUVESUFfMTBCXzI6IG1lZGlhID0gSUZNX0VUSEVSfElGTV8xMF8yOyBi
cmVhazsNCiAgICAgICAgICAgICAgICBjYXNlIEFfQ05GX01FRElBX0FVSTog
ICBtZWRpYSA9IElGTV9FVEhFUnxJRk1fMTBfNTsgYnJlYWs7DQogICAgICAg
ICAgICAgICAgZGVmYXVsdDogcHJpbnRmKENTX05BTUUiJWQ6IGFkYXB0ZXIg
aGFzIG5vIG1lZGlhXG4iLCB1bml0KTsNCiAgICAgICAgICAgICAgICB9DQog
ICAgICAgICAgICAgICAgaWZtZWRpYV9zZXQoJnNjLT5tZWRpYSwgbWVkaWEp
Ow0KCQljc19tZWRpYXNldChzYywgbWVkaWEpOw0KDQoJCWlmX2F0dGFjaChp
ZnApOw0KCQlldGhlcl9pZmF0dGFjaChpZnApOw0KCX0NCg0KCWlmIChib290
dmVyYm9zZSkNCgkJcHJpbnRmKENTX05BTUUiJWQ6IGV0aGVybmV0IGFkZHJl
c3MgJTZEXG4iLA0KCQkgICAgICAgaWZwLT5pZl91bml0LCBzYy0+YXJwY29t
LmFjX2VuYWRkciwgIjoiKTsNCg0KCWJwZmF0dGFjaChpZnAsIERMVF9FTjEw
TUIsIHNpemVvZiAoc3RydWN0IGV0aGVyX2hlYWRlcikpOw0KCXJldHVybiAo
MCk7DQp9DQoNCi8qDQogKiBJbml0aWFsaXplIHRoZSBib2FyZA0KICovDQpz
dGF0aWMgdm9pZA0KY3NfaW5pdCh2b2lkICp4c2MpDQp7DQoJc3RydWN0IGNz
X3NvZnRjICpzYz0oc3RydWN0IGNzX3NvZnRjICopeHNjOw0KCXN0cnVjdCBp
Zm5ldCAqaWZwID0gJnNjLT5hcnBjb20uYWNfaWY7DQoJaW50IGksIHMsIHJ4
X2NmZzsNCg0KCS8qIGFkZHJlc3Mgbm90IGtub3duICovDQoJaWYgKFRBSUxR
X0VNUFRZKCZpZnAtPmlmX2FkZHJoZWFkKSkgLyogdW5saWtlbHk/IFhYWCAq
Lw0KCQlyZXR1cm47DQoNCgkvKg0KCSAqIHJlc2V0IHdoYXRjaGRvZyB0aW1l
cg0KCSAqLw0KCWlmcC0+aWZfdGltZXI9MDsNCglzYy0+YnVmX2xlbiA9IDA7
DQoJDQoJcz1zcGxpbXAoKTsNCg0KCS8qDQoJICogSGFyZHdhcmUgaW5pdGlh
bGl6YXRpb24gb2YgY3MNCgkgKi8NCg0KCS8qIEVuYWJsZSByZWNlaXZlciBh
bmQgdHJhbnNtaXR0ZXIgKi8NCgljc193cml0ZXJlZyhzYy0+bmljX2FkZHIs
IFBQX0xpbmVDVEwsDQoJCWNzX3JlYWRyZWcoIHNjLT5uaWNfYWRkciwgUFBf
TGluZUNUTCApIHwNCgkJU0VSSUFMX1JYX09OIHwgU0VSSUFMX1RYX09OKTsN
Cg0KCS8qIENvbmZpZ3VyZSB0aGUgcmVjZWl2ZXIgbW9kZSAqLw0KCWNzX3Nl
dG1vZGUoc2MpOw0KDQoJLyoNCgkgKiBUaGlzIGRlZmluZXMgd2hhdCB0eXBl
IG9mIGZyYW1lcyB3aWxsIGNhdXNlIGludGVycnVwdHMNCgkgKiBCYWQgZnJh
bWVzIHNob3VsZCBnZW5lcmF0ZSBpbnRlcnJ1cHRzIHNvIHRoYXQgdGhlIGRy
aXZlcg0KCSAqIGNvdWxkIHRyYWNrIHN0YXRpc3RpY3Mgb2YgZGlzY2FyZGVk
IHBhY2tldHMNCgkgKi8NCiAgICAgICAgcnhfY2ZnID0gUlhfT0tfRU5CTCB8
IFJYX0NSQ19FUlJPUl9FTkJMIHwgUlhfUlVOVF9FTkJMIHwNCgkJIFJYX0VY
VFJBX0RBVEFfRU5CTDsNCglpZiAoc2MtPmlzYV9jb25maWcgJiBTVFJFQU1f
VFJBTlNGRVIpDQoJCXJ4X2NmZyB8PSBSWF9TVFJFQU1fRU5CTDsNCgljc193
cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX1J4Q0ZHLCByeF9jZmcpOw0KDQoJ
Y3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9UeENGRywgVFhfTE9TVF9D
UlNfRU5CTCB8DQoJCSAgICBUWF9TUUVfRVJST1JfRU5CTCB8IFRYX09LX0VO
QkwgfCBUWF9MQVRFX0NPTF9FTkJMIHwNCgkJICAgIFRYX0pCUl9FTkJMIHwg
VFhfQU5ZX0NPTF9FTkJMIHwgVFhfMTZfQ09MX0VOQkwpOw0KDQoJY3Nfd3Jp
dGVyZWcoc2MtPm5pY19hZGRyLCBQUF9CdWZDRkcsIFJFQURZX0ZPUl9UWF9F
TkJMIHwNCgkJICAgIFJYX01JU1NfQ09VTlRfT1ZSRkxPV19FTkJMIHwgVFhf
Q09MX0NPVU5UX09WUkZMT1dfRU5CTCB8DQoJCSAgICBUWF9VTkRFUlJVTl9F
TkJMIC8qfCBSWF9ETUFfRU5CTCovKTsNCg0KICAgICAgICAvKiBXcml0ZSBN
QUMgYWRkcmVzcyBpbnRvIElBIGZpbHRlciAqLw0KICAgICAgICBmb3IgKGk9
MDsgaTxFVEhFUl9BRERSX0xFTi8yOyBpKyspDQogICAgICAgICAgICAgICAg
Y3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9JQStpKjIsDQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2MtPmFycGNvbS5hY19lbmFkZHJbaSoy
XSB8DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNjLT5hcnBjb20u
YWNfZW5hZGRyW2kqMisxXSA8PCA4KSApOw0KDQoJLyoNCgkgKiBOb3cgZW5h
YmxlIGV2ZXJ5dGhpbmcNCgkgKi8NCi8qDQojaWZkZWYJQ1NfVVNFXzY0S19E
TUENCgljc193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0J1c0NUTCwgRU5B
QkxFX0lSUSB8IFJYX0RNQV9TSVpFXzY0Syk7DQogICAgICAgICNlbHNlDQoN
CiAgICAgICAgY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9CdXNDVEws
IEVOQUJMRV9JUlEpOw0KI2VuZGlmDQoqLw0KCWNzX3dyaXRlcmVnKHNjLT5u
aWNfYWRkciwgUFBfQnVzQ1RMLCBFTkFCTEVfSVJRKTsNCgkNCgkvKg0KCSAq
IFNldCBydW5uaW5nIGFuZCBjbGVhciBvdXRwdXQgYWN0aXZlIGZsYWdzDQoJ
ICovDQoJc2MtPmFycGNvbS5hY19pZi5pZl9mbGFncyB8PSBJRkZfUlVOTklO
RzsNCglzYy0+YXJwY29tLmFjX2lmLmlmX2ZsYWdzICY9IH5JRkZfT0FDVElW
RTsNCg0KCS8qDQoJICogU3RhcnQgc2VuZGluZyBwcm9jZXNzDQoJICovDQoJ
Y3Nfc3RhcnQoaWZwKTsNCg0KCSh2b2lkKSBzcGx4KHMpOw0KfQ0KDQovKg0K
ICogR2V0IHRoZSBwYWNrZXQgZnJvbSB0aGUgYm9hcmQgYW5kIHNlbmQgaXQg
dG8gdGhlIHVwcGVyIGxheWVyDQogKiB2aWEgZXRoZXJfaW5wdXQoKS4NCiAq
Lw0Kc3RhdGljIGludA0KY3NfZ2V0X3BhY2tldChzdHJ1Y3QgY3Nfc29mdGMg
KnNjKQ0Kew0KCXN0cnVjdCBpZm5ldCAqaWZwID0gJihzYy0+YXJwY29tLmFj
X2lmKTsNCglpbnQgaW9iYXNlID0gc2MtPm5pY19hZGRyLCBzdGF0dXMsIGxl
bmd0aDsNCglzdHJ1Y3QgZXRoZXJfaGVhZGVyICplaDsNCglzdHJ1Y3QgbWJ1
ZiAqbTsNCg0KI2lmZGVmIENTX0RFQlVHDQoJaW50IGk7DQojZW5kaWYNCg0K
CXN0YXR1cyA9IGludyhpb2Jhc2UgKyBSWF9GUkFNRV9QT1JUKTsNCglsZW5n
dGggPSBpbncoaW9iYXNlICsgUlhfRlJBTUVfUE9SVCk7DQoNCiNpZmRlZiBD
U19ERUJVRw0KCXByaW50ZihDU19OQU1FIiUxZDogcmN2ZDogc3RhdCAleCwg
bGVuICVkXG4iLA0KCQlpZnAtPmlmX3VuaXQsIHN0YXR1cywgbGVuZ3RoKTsN
CiNlbmRpZg0KDQoJaWYgKCEoc3RhdHVzICYgUlhfT0spKSB7DQojaWZkZWYg
Q1NfREVCVUcNCgkJcHJpbnRmKENTX05BTUUiJTFkOiBiYWQgcGt0IHN0YXQg
JXhcbiIsIGlmcC0+aWZfdW5pdCwgc3RhdHVzKTsNCiNlbmRpZg0KCQlpZnAt
PmlmX2llcnJvcnMrKzsNCgkJcmV0dXJuIC0xOw0KCX0NCg0KCU1HRVRIRFIo
bSwgTV9ET05UV0FJVCwgTVRfREFUQSk7DQoJaWYgKG09PU5VTEwpDQoJCXJl
dHVybiAtMTsNCg0KCWlmIChsZW5ndGggPiBNSExFTikgew0KCQlNQ0xHRVQo
bSwgTV9ET05UV0FJVCk7DQoJCWlmICghKG0tPm1fZmxhZ3MgJiBNX0VYVCkp
IHsNCgkJCW1fZnJlZW0obSk7DQoJCQlyZXR1cm4gLTE7DQoJCX0NCgl9DQoN
CgkvKiBJbml0aWFsaXplIHBhY2tldCdzIGhlYWRlciBpbmZvICovDQoJbS0+
bV9wa3RoZHIucmN2aWYgPSBpZnA7DQoJbS0+bV9wa3RoZHIubGVuID0gbGVu
Z3RoOw0KCW0tPm1fbGVuID0gbGVuZ3RoOw0KDQoJLyogR2V0IHRoZSBkYXRh
ICovDQoJaW5zdyhpb2Jhc2UgKyBSWF9GUkFNRV9QT1JULCBtLT5tX2RhdGEs
IChsZW5ndGgrMSk+PjEpOw0KDQoJZWggPSBtdG9kKG0sIHN0cnVjdCBldGhl
cl9oZWFkZXIgKik7DQoNCglpZiAoaWZwLT5pZl9icGYpDQoJCWJwZl9tdGFw
KGlmcCwgbSk7DQoNCiNpZmRlZiBDU19ERUJVRw0KCWZvciAoaT0wO2k8bGVu
Z3RoO2krKykNCgkgICAgIHByaW50ZigiICUwMngiLCh1bnNpZ25lZCBjaGFy
KSooKGNoYXIgKikobS0+bV9kYXRhK2kpKSk7DQoJcHJpbnRmKCAiXG4iICk7
DQojZW5kaWYNCg0KCWlmIChzdGF0dXMgJiAoUlhfSUEgfCBSWF9CUk9BRENB
U1QpIHx8IA0KCSAgICAoaWZwLT5pZl9mbGFncyAmIElGRl9NVUxUSUNBU1Qg
JiYgc3RhdHVzICYgUlhfSEFTSEVEKSkgew0KCQltLT5tX3BrdGhkci5sZW4g
LT0gc2l6ZW9mKHN0cnVjdCBldGhlcl9oZWFkZXIpOw0KCQltLT5tX2xlbiAt
PSBzaXplb2Yoc3RydWN0IGV0aGVyX2hlYWRlcik7DQoJCW0tPm1fZGF0YSAr
PSBzaXplb2Yoc3RydWN0IGV0aGVyX2hlYWRlcik7DQoNCgkJLyogRmVlZCB0
aGUgcGFja2V0IHRvIHRoZSB1cHBlciBsYXllciAqLw0KCQlldGhlcl9pbnB1
dChpZnAsIGVoLCBtKTsNCg0KCQlpZnAtPmlmX2lwYWNrZXRzKys7DQoNCgkJ
aWYgKGxlbmd0aD09RVRIRVJfTUFYX0xFTi1FVEhFUl9DUkNfTEVOKQ0KICAg
ICAgICAgICAgICAgICAgICAgICAgREVMQVkoIGNzX3JlY3ZfZGVsYXkgKTsN
Cgl9IGVsc2Ugew0KCQltX2ZyZWVtKG0pOw0KCX0NCg0KCXJldHVybiAwOw0K
fQ0KDQovKg0KICogSGFuZGxlIGludGVycnVwdHMNCiAqLw0Kdm9pZA0KY3Np
bnRyKHZvaWQgKmFyZykNCnsNCglzdHJ1Y3QgY3Nfc29mdGMgKnNjID0gKHN0
cnVjdCBjc19zb2Z0YyopIGFyZzsNCglzdHJ1Y3QgaWZuZXQgKmlmcCA9ICYo
c2MtPmFycGNvbS5hY19pZik7DQoJaW50IHN0YXR1czsNCg0KI2lmZGVmIENT
X0RFQlVHDQoJaW50IHVuaXQgPSBpZnAtPmlmX3VuaXQ7DQoJcHJpbnRmKENT
X05BTUUiJTFkOiBJbnRlcnJ1cHQuXG4iLCB1bml0KTsNCiNlbmRpZg0KDQoJ
d2hpbGUgKChzdGF0dXM9Y3NfcmVhZHdvcmQoc2MtPm5pY19hZGRyLCBJU1Ff
UE9SVCkpKSB7DQoNCiNpZmRlZiBDU19ERUJVRw0KCQlwcmludGYoIENTX05B
TUUiJTFkOmZyb20gSVNROiAlMDR4XG4iLCB1bml0LCBzdGF0dXMgKTsNCiNl
bmRpZg0KDQoJCXN3aXRjaCAoc3RhdHVzICYgSVNRX0VWRU5UX01BU0spIHsN
CiAgICAgICAgICAgICAgICBjYXNlIElTUV9SRUNFSVZFUl9FVkVOVDoNCiAg
ICAgICAgICAgICAgICAgICAgICAgIGNzX2dldF9wYWNrZXQoc2MpOw0KICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAgICAgICAg
ICBjYXNlIElTUV9UUkFOU01JVFRFUl9FVkVOVDoNCiAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChzdGF0dXMgJiBUWF9PSykNCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWZwLT5pZl9vcGFja2V0cysrOw0KICAgICAg
ICAgICAgICAgICAgICAgICAgZWxzZQ0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZnAtPmlmX29lcnJvcnMrKzsNCiAgICAgICAgICAgICAg
ICAgICAgICAgIGlmcC0+aWZfZmxhZ3MgJj0gfklGRl9PQUNUSVZFOw0KICAg
ICAgICAgICAgICAgICAgICAgICAgaWZwLT5pZl90aW1lciA9IDA7DQogICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsNCg0KICAgICAgICAgICAgICAg
IGNhc2UgSVNRX0JVRkZFUl9FVkVOVDoNCiAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChzdGF0dXMgJiBSRUFEWV9GT1JfVFgpIHsNCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWZwLT5pZl9mbGFncyAmPSB+SUZGX09B
Q1RJVkU7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmcC0+
aWZfdGltZXIgPSAwOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQog
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzICYgVFhfVU5ERVJS
VU4pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZwLT5p
Zl9mbGFncyAmPSB+SUZGX09BQ1RJVkU7DQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmcC0+aWZfdGltZXIgPSAwOw0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZnAtPmlmX29lcnJvcnMrKzsNCiAgICAg
ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOw0KDQogICAgICAgICAgICAgICAgY2FzZSBJU1FfUlhfTUlTU19F
VkVOVDoNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmcC0+aWZfaWVycm9y
cys9KHN0YXR1cz4+Nik7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsNCg0KICAgICAgICAgICAgICAgIGNhc2UgSVNRX1RYX0NPTF9FVkVOVDoN
CiAgICAgICAgICAgICAgICAgICAgICAgIGlmcC0+aWZfY29sbGlzaW9ucys9
KHN0YXR1cz4+Nik7DQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsN
CiAgICAgICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBpZiAo
IShpZnAtPmlmX2ZsYWdzICYgSUZGX09BQ1RJVkUpKSB7DQogICAgICAgICAg
ICAgICAgY3Nfc3RhcnQoaWZwKTsNCiAgICAgICAgfQ0KfQ0KDQovKg0KICog
U2F2ZSB0aGUgZGF0YSBpbiBidWZmZXINCiAqLw0KDQpzdGF0aWMgdm9pZA0K
Y3Nfd3JpdGVfbWJ1ZnMoIHN0cnVjdCBjc19zb2Z0YyAqc2MsIHN0cnVjdCBt
YnVmICptICkNCnsNCglpbnQgbGVuOw0KCXN0cnVjdCBtYnVmICptcDsNCgl1
bnNpZ25lZCBjaGFyICpkYXRhLCAqYnVmOw0KDQoJZm9yIChtcD1tLCBidWY9
c2MtPmJ1ZmZlciwgc2MtPmJ1Zl9sZW49MDsgbXAgIT0gTlVMTDsgbXA9bXAt
Pm1fbmV4dCkgew0KCQlsZW4gPSBtcC0+bV9sZW47DQoNCgkJLyoNCgkJICog
SWdub3JlIGVtcHR5IHBhcnRzDQoJCSAqLw0KCQlpZiAoIWxlbikNCgkJY29u
dGludWU7DQoNCgkJLyoNCgkJICogRmluZCBhY3R1YWwgZGF0YSBhZGRyZXNz
DQoJCSAqLw0KCQlkYXRhID0gbXRvZChtcCwgY2FkZHJfdCk7DQoNCgkJYmNv
cHkoKGNhZGRyX3QpIGRhdGEsIChjYWRkcl90KSBidWYsIGxlbik7DQoJCWJ1
ZiArPSBsZW47DQoJCXNjLT5idWZfbGVuICs9IGxlbjsNCgl9DQp9DQoNCg0K
c3RhdGljIHZvaWQNCmNzX3htaXRfYnVmKCBzdHJ1Y3QgY3Nfc29mdGMgKnNj
ICkNCnsNCglvdXRzdyhzYy0+bmljX2FkZHIrVFhfRlJBTUVfUE9SVCwgc2Mt
PmJ1ZmZlciwgKHNjLT5idWZfbGVuKzEpPj4xKTsNCglzYy0+YnVmX2xlbiA9
IDA7DQp9DQoNCnN0YXRpYyB2b2lkDQpjc19zdGFydChzdHJ1Y3QgaWZuZXQg
KmlmcCkNCnsNCglpbnQgcywgbGVuZ3RoOw0KCXN0cnVjdCBtYnVmICptLCAq
bXA7DQoJc3RydWN0IGNzX3NvZnRjICpzYyA9IGlmcC0+aWZfc29mdGM7DQoN
CglzID0gc3BsaW1wKCk7DQoNCglmb3IgKDs7KSB7DQoJCWlmIChzYy0+YnVm
X2xlbikNCgkJCWxlbmd0aCA9IHNjLT5idWZfbGVuOw0KCQllbHNlIHsNCgkJ
CUlGX0RFUVVFVUUoICZpZnAtPmlmX3NuZCwgbSApOw0KDQoJCQlpZiAobT09
TlVMTCkgew0KCQkJCSh2b2lkKSBzcGx4KHMpOw0KCQkJCXJldHVybjsNCgkJ
CX0NCg0KCQkJZm9yIChsZW5ndGg9MCwgbXA9bTsgbXAgIT0gTlVMTDsgbXA9
bXAtPm1fbmV4dCkNCgkJCQlsZW5ndGggKz0gbXAtPm1fbGVuOw0KDQoJCQkv
KiBTa2lwIHplcm8tbGVuZ3RoIHBhY2tldHMgKi8NCgkJCWlmIChsZW5ndGgg
PT0gMCkgew0KCQkJCW1fZnJlZW0obSk7DQoJCQkJY29udGludWU7DQoJCQl9
DQoNCgkJCWNzX3dyaXRlX21idWZzKHNjLCBtKTsNCg0KCQkJaWYgKGlmcC0+
aWZfYnBmKSB7DQoJCQkJYnBmX210YXAoaWZwLCBtKTsNCgkJCX0NCg0KCQkJ
bV9mcmVlbShtKTsNCgkJfQ0KDQoJCS8qDQoJCSAqIElzc3VlIGEgU0VORCBj
b21tYW5kDQoJCSAqLw0KCQlvdXR3KHNjLT5uaWNfYWRkcitUWF9DTURfUE9S
VCwgc2MtPnNlbmRfY21kKTsNCgkJb3V0dyhzYy0+bmljX2FkZHIrVFhfTEVO
X1BPUlQsIGxlbmd0aCApOw0KDQoJCS8qDQoJCSAqIElmIHRoZXJlJ3Mgbm8g
ZnJlZSBzcGFjZSBpbiB0aGUgYnVmZmVyIHRoZW4gbGVhdmUNCgkJICogdGhp
cyBwYWNrZXQgZm9yIHRoZSBuZXh0IHRpbWU6IGluZGljYXRlIG91dHB1dCBh
Y3RpdmUNCgkJICogYW5kIHJldHVybi4NCgkJICovDQoJCWlmICghKGNzX3Jl
YWRyZWcoc2MtPm5pY19hZGRyLCBQUF9CdXNTVCkgJiBSRUFEWV9GT1JfVFhf
Tk9XKSkgew0KCQkJaWZwLT5pZl90aW1lciA9IHNjLT5idWZfbGVuOw0KCQkJ
KHZvaWQpIHNwbHgocyk7DQoJCQlpZnAtPmlmX2ZsYWdzIHw9IElGRl9PQUNU
SVZFOw0KCQkJcmV0dXJuOw0KCQl9DQoNCiAgICAgICAgICAgICAgIAljc194
bWl0X2J1ZihzYyk7DQoNCgkJLyoNCgkJICogU2V0IHRoZSB3YXRjaGRvZyB0
aW1lciBpbiBjYXNlIHdlIG5ldmVyIGhlYXINCgkJICogZnJvbSBib2FyZCBh
Z2Fpbi4gKEkgZG9uJ3Qga25vdyBhYm91dCBjb3JyZWN0DQoJCSAqIHZhbHVl
IGZvciB0aGlzIHRpbWVvdXQpDQoJCSAqLw0KCQlpZnAtPmlmX3RpbWVyID0g
bGVuZ3RoOw0KDQoJCSh2b2lkKSBzcGx4KHMpOw0KCQlpZnAtPmlmX2ZsYWdz
IHw9IElGRl9PQUNUSVZFOw0KCQlyZXR1cm47DQoJfQ0KfQ0KDQovKg0KICog
U3RvcCBldmVyeXRoaW5nIG9uIHRoZSBpbnRlcmZhY2UNCiAqLw0Kc3RhdGlj
IHZvaWQNCmNzX3N0b3Aoc3RydWN0IGNzX3NvZnRjICpzYykNCnsNCglpbnQg
cyA9IHNwbGltcCgpOw0KDQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQ
UF9SeENGRywgMCk7DQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9U
eENGRywgMCk7DQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9CdWZD
RkcsIDApOw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfQnVzQ1RM
LCAwKTsNCg0KCXNjLT5hcnBjb20uYWNfaWYuaWZfZmxhZ3MgJj0gfihJRkZf
UlVOTklORyB8IElGRl9PQUNUSVZFKTsNCglzYy0+YXJwY29tLmFjX2lmLmlm
X3RpbWVyID0gMDsNCg0KCSh2b2lkKSBzcGx4KHMpOw0KfQ0KDQovKg0KICog
UmVzZXQgdGhlIGludGVyZmFjZQ0KICovDQpzdGF0aWMgdm9pZA0KY3NfcmVz
ZXQoc3RydWN0IGNzX3NvZnRjICpzYykNCnsNCgljc19zdG9wKHNjKTsNCglj
c19pbml0KHNjKTsNCn0NCg0Kc3RhdGljIHZvaWQNCmNzX3NldG1vZGUoc3Ry
dWN0IGNzX3NvZnRjICpzYykNCnsNCglzdHJ1Y3QgaWZuZXQgKmlmcCA9ICYo
c2MtPmFycGNvbS5hY19pZik7DQoJaW50IHJ4X2N0bDsNCg0KCS8qIFN0b3Ag
dGhlIHJlY2VpdmVyIHdoaWxlIGNoYW5naW5nIGZpbHRlcnMgKi8NCgljc193
cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0xpbmVDVEwsIA0KCQkJY3NfcmVh
ZHJlZyhzYy0+bmljX2FkZHIsIFBQX0xpbmVDVEwpICYgflNFUklBTF9SWF9P
Tik7DQoNCglpZiAoaWZwLT5pZl9mbGFncyAmIElGRl9QUk9NSVNDKSB7DQoJ
CS8qIFR1cm4gb24gcHJvbWlzY3VvdXMgbW9kZS4gKi8NCgkJcnhfY3RsID0g
UlhfT0tfQUNDRVBUIHwgUlhfUFJPTV9BQ0NFUFQ7DQoJfSBlbHNlIHsNCgkJ
aWYgKGlmcC0+aWZfZmxhZ3MgJiBJRkZfTVVMVElDQVNUKSB7DQoJCQkvKiBB
bGxvdyByZWNlaXZpbmcgZnJhbWVzIHdpdGggbXVsdGljYXN0IGFkZHJlc3Nl
cyAqLw0KCQkJcnhfY3RsID0gUlhfSUFfQUNDRVBUIHwgUlhfQlJPQURDQVNU
X0FDQ0VQVCB8DQoJCQkJIFJYX09LX0FDQ0VQVCB8IFJYX01VTFRDQVNUX0FD
Q0VQVDsNCgkJCS8qDQoJCQkgKiBIZXJlIHRoZSByZWNvbmZpZ3VyYXRpb24g
b2YgY2hpcCdzIG11bHRpY2FzdA0KCQkJICogZmlsdGVycyBzaG91bGQgYmUg
ZG9uZSBidXQgSSd2ZSBubyBpZGVhIGFib3V0DQoJCQkgKiBoYXNoIHRyYW5z
Zm9ybWF0aW9uIGluIHRoaXMgY2hpcC4gSWYgeW91IGNhbg0KCQkJICogYWRk
IHRoaXMgY29kZSBvciBkZXNjcmliZSBtZSB0aGUgdHJhbnNmb3JtYXRpb24N
CgkJCSAqIEknZCBiZSB2ZXJ5IGdsYWQuDQoJCQkgKi8NCgkJfSBlbHNlIHsN
CgkJCS8qDQoJCQkgKiBSZWNlaXZlIG9ubHkgZ29vZCBmcmFtZXMgYWRkcmVz
c2VkIGZvciB1cyBhbmQNCgkJCSAqIGdvb2QgYnJvYWRjYXN0cy4NCgkJCSAq
Lw0KCQkJcnhfY3RsID0gUlhfSUFfQUNDRVBUIHwgUlhfQlJPQURDQVNUX0FD
Q0VQVCB8DQoJCQkJIFJYX09LX0FDQ0VQVDsNCgkJfQ0KCX0NCg0KCS8qIFNl
dCB1cCB0aGUgZmlsdGVyICovDQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRy
LCBQUF9SeENUTCwgUlhfREVGX0FDQ0VQVCB8IHJ4X2N0bCk7DQoNCgkvKiBU
dXJuIG9uIHJlY2VpdmVyICovDQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRy
LCBQUF9MaW5lQ1RMLA0KCQkJY3NfcmVhZHJlZyhzYy0+bmljX2FkZHIsIFBQ
X0xpbmVDVEwpIHwgU0VSSUFMX1JYX09OKTsNCn0NCg0Kc3RhdGljIGludA0K
Y3NfaW9jdGwocmVnaXN0ZXIgc3RydWN0IGlmbmV0ICppZnAsIHVfbG9uZyBj
b21tYW5kLCBjYWRkcl90IGRhdGEpDQp7DQoJc3RydWN0IGNzX3NvZnRjICpz
Yz1pZnAtPmlmX3NvZnRjOw0KCXN0cnVjdCBpZnJlcSAqaWZyID0gKHN0cnVj
dCBpZnJlcSAqKWRhdGE7DQoJaW50IHMsZXJyb3I9MDsNCg0KI2lmZGVmIENT
X0RFQlVHDQoJcHJpbnRmKENTX05BTUUiJWQ6IGlvY3RsKCVseClcbiIsc2Mt
PmFycGNvbS5hY19pZi5pZl91bml0LGNvbW1hbmQpOw0KI2VuZGlmDQoNCglz
PXNwbGltcCgpOw0KDQoJc3dpdGNoIChjb21tYW5kKSB7DQoJY2FzZSBTSU9D
U0lGQUREUjoNCgljYXNlIFNJT0NHSUZBRERSOg0KCWNhc2UgU0lPQ1NJRk1U
VToNCgkJZXRoZXJfaW9jdGwoaWZwLCBjb21tYW5kLCBkYXRhKTsNCgkJYnJl
YWs7DQoNCgljYXNlIFNJT0NTSUZGTEFHUzoNCgkJLyoNCgkJICogU3dpdGNo
IGludGVyZmFjZSBzdGF0ZSBiZXR3ZWVuICJydW5uaW5nIiBhbmQNCgkJICog
InN0b3BwZWQiLCByZWZsZWN0aW5nIHRoZSBVUCBmbGFnLg0KICAgICAgICAg
ICAgICAgICAqLw0KICAgICAgICAgICAgICAgIGlmIChzYy0+YXJwY29tLmFj
X2lmLmlmX2ZsYWdzICYgSUZGX1VQKSB7DQogICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoKHNjLT5hcnBjb20uYWNfaWYuaWZfZmxhZ3MgJiBJRkZfUlVO
TklORyk9PTApIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y3NfaW5pdChzYyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAg
ICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICAgICAgICAg
IGlmICgoc2MtPmFycGNvbS5hY19pZi5pZl9mbGFncyAmIElGRl9SVU5OSU5H
KSE9MCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc19z
dG9wKHNjKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCgkJfQ0KCQkv
Kg0KCQkgKiBQcm9taXNjdW91cyBhbmQvb3IgbXVsdGljYXN0IGZsYWdzIG1h
eSBoYXZlIGNoYW5nZWQsDQoJCSAqIHNvIHJlcHJvZ3JhbSB0aGUgbXVsdGlj
YXN0IGZpbHRlciBhbmQvb3IgcmVjZWl2ZSBtb2RlLg0KCQkgKg0KCQkgKiBT
ZWUgbm90ZSBhYm91dCBtdWx0aWNhc3RzIGluIGNzX3NldG1vZGUNCgkJICov
DQoJCWNzX3NldG1vZGUoc2MpOw0KCQlicmVhazsNCg0KCWNhc2UgU0lPQ0FE
RE1VTFRJOg0KCWNhc2UgU0lPQ0RFTE1VTFRJOg0KCSAgICAvKg0KCSAgICAg
KiBNdWx0aWNhc3QgbGlzdCBoYXMgY2hhbmdlZDsgc2V0IHRoZSBoYXJkd2Fy
ZSBmaWx0ZXINCgkgICAgICogYWNjb3JkaW5nbHkuDQoJICAgICAqDQoJICAg
ICAqIFNlZSBub3RlIGFib3V0IG11bHRpY2FzdHMgaW4gY3Nfc2V0bW9kZQ0K
CSAgICAgKi8NCgkgICAgY3Nfc2V0bW9kZShzYyk7DQoJICAgIGVycm9yID0g
MDsNCgkgICAgYnJlYWs7DQoNCiAgICAgICAgY2FzZSBTSU9DU0lGTUVESUE6
DQogICAgICAgIGNhc2UgU0lPQ0dJRk1FRElBOg0KICAgICAgICAgICAgICAg
IGVycm9yID0gaWZtZWRpYV9pb2N0bChpZnAsIGlmciwgJnNjLT5tZWRpYSwg
Y29tbWFuZCk7DQogICAgICAgICAgICAgICAgYnJlYWs7DQoNCiAgICAgICAg
ZGVmYXVsdDoNCgkJZXJyb3IgPSBFSU5WQUw7DQogICAgICAgIH0NCg0KCSh2
b2lkKSBzcGx4KHMpOw0KCXJldHVybiBlcnJvcjsNCn0NCg0KLyoNCiAqIERl
dmljZSB0aW1lb3V0L3dhdGNoZG9nIHJvdXRpbmUuIEVudGVyZWQgaWYgdGhl
IGRldmljZSBuZWdsZWN0cyB0bw0KICogZ2VuZXJhdGUgYW4gaW50ZXJydXB0
IGFmdGVyIGEgdHJhbnNtaXQgaGFzIGJlZW4gc3RhcnRlZCBvbiBpdC4NCiAq
Lw0Kc3RhdGljIHZvaWQNCmNzX3dhdGNoZG9nKHN0cnVjdCBpZm5ldCAqaWZw
KQ0Kew0KCXN0cnVjdCBjc19zb2Z0YyAqc2MgPSBpZnAtPmlmX3NvZnRjOw0K
DQoJaWZwLT5pZl9vZXJyb3JzKys7DQoJbG9nKExPR19FUlIsIENTX05BTUUi
JWQ6IGRldmljZSB0aW1lb3V0XG4iLCBpZnAtPmlmX3VuaXQpOw0KDQoJLyog
UmVzZXQgdGhlIGludGVyZmFjZSAqLw0KCWlmIChpZnAtPmlmX2ZsYWdzICYg
SUZGX1VQKQ0KCQljc19yZXNldChzYyk7DQoJZWxzZQ0KCQljc19zdG9wKHNj
KTsNCn0NCg0Kc3RhdGljIGludA0KY3NfbWVkaWFjaGFuZ2Uoc3RydWN0IGlm
bmV0ICppZnApDQp7DQoJc3RydWN0IGNzX3NvZnRjICpzYyA9IGlmcC0+aWZf
c29mdGM7DQoJc3RydWN0IGlmbWVkaWEgKmlmbSA9ICZzYy0+bWVkaWE7DQoN
CglpZiAoSUZNX1RZUEUoaWZtLT5pZm1fbWVkaWEpICE9IElGTV9FVEhFUikN
CgkJcmV0dXJuIEVJTlZBTDsNCg0KCXJldHVybiBjc19tZWRpYXNldChzYywg
aWZtLT5pZm1fbWVkaWEpOw0KfQ0KDQpzdGF0aWMgdm9pZA0KY3NfbWVkaWFz
dGF0dXMoc3RydWN0IGlmbmV0ICppZnAsIHN0cnVjdCBpZm1lZGlhcmVxICpp
Zm1yKQ0Kew0KCWludCBsaW5lX3N0YXR1czsNCglzdHJ1Y3QgY3Nfc29mdGMg
KnNjID0gaWZwLT5pZl9zb2Z0YzsNCg0KCWlmbXItPmlmbV9hY3RpdmUgPSBJ
Rk1fRVRIRVI7DQoJbGluZV9zdGF0dXMgPSBjc19yZWFkcmVnKHNjLT5uaWNf
YWRkciwgUFBfTGluZVNUKTsNCglpZiAobGluZV9zdGF0dXMgJiBURU5CQVNF
VF9PTikgew0KCQlpZm1yLT5pZm1fYWN0aXZlIHw9IElGTV8xMF9UOw0KCQlp
ZiAoc2MtPmNoaXBfdHlwZSAhPSBDUzg5MDApIHsNCgkJCWlmIChjc19yZWFk
cmVnKHNjLT5uaWNfYWRkciwgUFBfQXV0b05lZ1NUKSAmIEZEWF9BQ1RJVkUp
DQoJCQkJaWZtci0+aWZtX2FjdGl2ZSB8PSBJRk1fRkRYOw0KCQkJaWYgKGNz
X3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQUF9BdXRvTmVnU1QpICYgSERYX0FD
VElWRSkNCgkJCQlpZm1yLT5pZm1fYWN0aXZlIHw9IElGTV9IRFg7DQoJCX0N
CgkJaWZtci0+aWZtX3N0YXR1cyA9IElGTV9BVkFMSUQ7DQoJCWlmIChsaW5l
X3N0YXR1cyAmIExJTktfT0spDQoJCQlpZm1yLT5pZm1fc3RhdHVzIHw9IElG
TV9BQ1RJVkU7DQoJfSBlbHNlIHsNCgkJaWYgKGxpbmVfc3RhdHVzICYgQVVJ
X09OKSB7DQoJCQljc193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX1NlbGZD
VEwsDQoJCQkJICAgIGNzX3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQUF9TZWxm
Q1RMKSB8DQoJCQkJICAgIEhDQjFfRU5CTCk7DQoJCQlpZiAoKChzYy0+YWRh
cHRlcl9jbmYgJiBBX0NORl9EQ19EQ19QT0xBUklUWSkhPTApXg0KCQkJICAg
IChjc19yZWFkcmVnKHNjLT5uaWNfYWRkciwgUFBfU2VsZkNUTCkmSENCMSkp
DQoJCQkJaWZtci0+aWZtX2FjdGl2ZSB8PSBJRk1fMTBfMjsNCgkJCWVsc2UN
CgkJCQlpZm1yLT5pZm1fYWN0aXZlIHw9IElGTV8xMF81Ow0KCQl9DQoJfQ0K
fQ0KDQpzdGF0aWMgaW50DQpjc19tZWRpYXNldChzdHJ1Y3QgY3Nfc29mdGMg
KnNjLCBpbnQgbWVkaWEpDQp7DQogICAgICAgIGludCBlcnJvcjsNCg0KCS8q
IFN0b3AgdGhlIHJlY2VpdmVyICYgdHJhbnNtaXR0ZXIgKi8NCgljc193cml0
ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0xpbmVDVEwsDQogICAgICAgICAgICAg
ICAgICAgIGNzX3JlYWRyZWcoc2MtPm5pY19hZGRyLCBQUF9MaW5lQ1RMKSAm
DQoJCSAgICB+KFNFUklBTF9SWF9PTiB8IFNFUklBTF9UWF9PTikpOw0KDQoj
aWZkZWYgQ1NfREVCVUcNCglwcmludGYoQ1NfTkFNRSIlZDogY3Nfc2V0bWVk
aWEoJXgpXG4iLHNjLT5hcnBjb20uYWNfaWYuaWZfdW5pdCxtZWRpYSk7DQoj
ZW5kaWYNCg0KCXN3aXRjaCAoSUZNX1NVQlRZUEUobWVkaWEpKSB7DQoJZGVm
YXVsdDoNCgljYXNlIElGTV9BVVRPOg0KCQlpZiAoKGVycm9yPWVuYWJsZV90
cChzYykpPT0wKQ0KCQkJZXJyb3IgPSBjc19kdXBsZXhfYXV0byhzYyk7DQoJ
CWVsc2UgaWYgKChlcnJvcj1lbmFibGVfYm5jKHNjKSkgIT0gMCkNCgkJCWVy
cm9yID0gZW5hYmxlX2F1aShzYyk7DQoJCWJyZWFrOw0KCWNhc2UgSUZNXzEw
X1Q6DQoJCWlmICgoZXJyb3I9ZW5hYmxlX3RwKHNjKSkgIT0gMCkNCgkJCWJy
ZWFrOw0KCQlpZiAobWVkaWEgJiBJRk1fRkRYKQ0KCQkJY3NfZHVwbGV4X2Z1
bGwoc2MpOw0KCQllbHNlIGlmIChtZWRpYSAmIElGTV9IRFgpDQoJCQljc19k
dXBsZXhfaGFsZihzYyk7DQoJCWVsc2UNCgkJCWVycm9yID0gY3NfZHVwbGV4
X2F1dG8oc2MpOw0KCQlicmVhazsNCgljYXNlIElGTV8xMF8yOg0KCQllcnJv
ciA9IGVuYWJsZV9ibmMoc2MpOw0KCQlicmVhazsNCgljYXNlIElGTV8xMF81
Og0KCQllcnJvciA9IGVuYWJsZV9hdWkoc2MpOw0KCQlicmVhazsNCgl9DQoN
CgkvKg0KCSAqIFR1cm4gdGhlIHRyYW5zbWl0dGVyICYgcmVjZWl2ZXIgYmFj
ayBvbg0KCSAqLw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfTGlu
ZUNUTCwNCgkJICAgIGNzX3JlYWRyZWcoIHNjLT5uaWNfYWRkciwgUFBfTGlu
ZUNUTCApIHwNCgkJICAgIFNFUklBTF9SWF9PTiB8IFNFUklBTF9UWF9PTik7
IA0KDQoJcmV0dXJuIGVycm9yOw0KfQ==
--0-1106502712-952877046=:96199
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="if_csreg.h"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.4.10.10003121904061.96199@altos.rnd.runnet.ru>
Content-Description: sys/dev/cs/if_csreg.h
Content-Disposition: ATTACHMENT; FILENAME="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
IE9GDQogKiBTVUNIIERBTUFHRS4NCiAqDQogKi8NCg0KLyoNCiAqICRGcmVl
QlNEOiBzcmMvc3lzL2kzODYvaXNhL2lmX2NzcmVnLmgsdiAxLjIgMTk5OS8w
OC8yOCAwMDo0NDo0MyBwZXRlciBFeHAgJA0KICovDQoNCiNkZWZpbmUgQ1Nf
ODl4MF9JT19QT1JUUwkweDAwMjANCg0KI2RlZmluZSBQUF9DaGlwSUQgMHgw
MDAwCS8qIG9mZnNldCAgIDBoIC0+IENvcnAgLUlEICAgICAgICAgICAgICAq
Lw0KCQkJCS8qIG9mZnNldCAgIDJoIC0+IE1vZGVsL1Byb2R1Y3QgTnVtYmVy
ICAqLw0KCQkJCS8qIG9mZnNldCAgIDNoIC0+IENoaXAgUmV2aXNpb24gTnVt
YmVyICAqLw0KDQojZGVmaW5lIFBQX0lTQUlPQgkJMHgwMDIwCS8qICBJTyBi
YXNlIGFkZHJlc3MgKi8NCiNkZWZpbmUJUFBfQ1M4OTAwX0lTQUlOVAkweDAw
MjIJLyogIElTQSBpbnRlcnJ1cHQgc2VsZWN0ICovDQojZGVmaW5lCVBQX0NT
ODkwMF9JU0FETUEJMHgwMDI0CS8qICBJU0EgUmVjIERNQSBjaGFubmVsICov
DQojZGVmaW5lIFBQX0NTODkyMF9JU0FJTlQJMHgwMzcwCS8qICBJU0EgaW50
ZXJydXB0IHNlbGVjdCAqLw0KI2RlZmluZSBQUF9DUzg5MjBfSVNBRE1BIAkw
eDAzNzQJLyogIElTQSBSZWMgRE1BIGNoYW5uZWwgKi8NCiNkZWZpbmUgUFBf
SVNBU09GCQkweDAwMjYJLyogIElTQSBETUEgb2Zmc2V0ICovDQojZGVmaW5l
IFBQX0RtYUZyYW1lQ250CQkweDAwMjgJLyogIElTQSBETUEgRnJhbWUgY291
bnQgKi8NCiNkZWZpbmUgUFBfRG1hQnl0ZUNudAkJMHgwMDJBCS8qICBJU0Eg
RE1BIEJ5dGUgY291bnQgKi8NCiNkZWZpbmUgUFBfQ1M4OTIwX0lTQU1lbUIJ
MHgwMzQ4CS8qICBNZW1vcnkgYmFzZSAqLw0KDQovKiBFRVBST00gZGF0YSBh
bmQgY29tbWFuZCByZWdpc3RlcnMgKi8NCiNkZWZpbmUgUFBfRUVDTUQJCTB4
MDA0MAkvKiAgTlZSIEludGVyZmFjZSBDb21tYW5kIHJlZ2lzdGVyICovDQoj
ZGVmaW5lIFBQX0VFRGF0YQkJMHgwMDQyCS8qICBOVlIgSW50ZXJmYWNlIERh
dGEgUmVnaXN0ZXIgKi8NCiNkZWZpbmUgUFBfRGVidWdSZWcJCTB4MDA0NAkv
KiAgRGVidWcgUmVnaXN0ZXIgKi8NCg0KI2RlZmluZSBQUF9SeENGRwkJMHgw
MTAyCS8qICBSeCBCdXMgY29uZmlnICovDQojZGVmaW5lIFBQX1J4Q1RMCQkw
eDAxMDQJLyogIFJlY2VpdmUgQ29udHJvbCBSZWdpc3RlciAqLw0KI2RlZmlu
ZSBQUF9UeENGRwkJMHgwMTA2CS8qICBUcmFuc21pdCBDb25maWcgUmVnaXN0
ZXIgKi8NCiNkZWZpbmUgUFBfVHhDTUQJCTB4MDEwOAkvKiAgVHJhbnNtaXQg
Q29tbWFuZCBSZWdpc3RlciAqLw0KI2RlZmluZSBQUF9CdWZDRkcJCTB4MDEw
QQkvKiAgQnVzIGNvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8NCiNkZWZpbmUg
UFBfTGluZUNUTAkJMHgwMTEyCS8qICBMaW5lIENvbmZpZyBSZWdpc3RlciAq
Lw0KI2RlZmluZSBQUF9TZWxmQ1RMCQkweDAxMTQJLyogIFNlbGYgQ29tbWFu
ZCBSZWdpc3RlciAqLw0KI2RlZmluZSBQUF9CdXNDVEwJCTB4MDExNgkvKiAg
SVNBIGJ1cyBjb250cm9sIFJlZ2lzdGVyICovDQojZGVmaW5lIFBQX1Rlc3RD
VEwJCTB4MDExOAkvKiAgVGVzdCBSZWdpc3RlciAqLw0KI2RlZmluZSBQUF9B
dXRvTmVnQ1RMCQkweDAxMUMJLyogIEF1dG8gTmVnb3RpYXRpb24gQ3RybCAq
Lw0KDQojZGVmaW5lIFBQX0lTUQkJCTB4MDEyMAkvKiAgSW50ZXJydXB0IFN0
YXR1cyAqLw0KI2RlZmluZSBQUF9SeEV2ZW50CQkweDAxMjQJLyogIFJ4IEV2
ZW50IFJlZ2lzdGVyICovDQojZGVmaW5lIFBQX1R4RXZlbnQJCTB4MDEyOAkv
KiAgVHggRXZlbnQgUmVnaXN0ZXIgKi8NCiNkZWZpbmUgUFBfQnVmRXZlbnQJ
CTB4MDEyQwkvKiAgQnVzIEV2ZW50IFJlZ2lzdGVyICovDQojZGVmaW5lIFBQ
X1J4TWlzcwkJMHgwMTMwCS8qICBSZWNlaXZlIE1pc3MgQ291bnQgKi8NCiNk
ZWZpbmUgUFBfVHhDb2wJCTB4MDEzMgkvKiAgVHJhbnNtaXQgQ29sbGlzaW9u
IENvdW50ICovDQojZGVmaW5lIFBQX0xpbmVTVAkJMHgwMTM0CS8qICBMaW5l
IFN0YXRlIFJlZ2lzdGVyICovDQojZGVmaW5lIFBQX1NlbGZTVAkJMHgwMTM2
CS8qICBTZWxmIFN0YXRlIHJlZ2lzdGVyICovDQojZGVmaW5lIFBQX0J1c1NU
CQkweDAxMzgJLyogIEJ1cyBTdGF0dXMgKi8NCiNkZWZpbmUgUFBfVERSCQkJ
MHgwMTNDCS8qICBUaW1lIERvbWFpbiBSZWZsZWN0b21ldHJ5ICovDQojZGVm
aW5lIFBQX0F1dG9OZWdTVAkJMHgwMTNFCS8qICBBdXRvIE5lZyBTdGF0dXMg
Ki8NCiNkZWZpbmUgUFBfVHhDb21tYW5kCQkweDAxNDQJLyogIFR4IENvbW1h
bmQgKi8NCiNkZWZpbmUgUFBfVHhMZW5ndGgJCTB4MDE0NgkvKiAgVHggTGVu
Z3RoICovDQojZGVmaW5lIFBQX0xBRgkJCTB4MDE1MAkvKiAgSGFzaCBUYWJs
ZSAqLw0KI2RlZmluZSBQUF9JQQkJCTB4MDE1OAkvKiAgUGh5c2ljYWwgQWRk
cmVzcyBSZWdpc3RlciAqLw0KDQojZGVmaW5lIFBQX1J4U3RhdHVzCQkweDA0
MDAJLyogIFJlY2VpdmUgc3RhcnQgb2YgZnJhbWUgKi8NCiNkZWZpbmUgUFBf
UnhMZW5ndGgJCTB4MDQwMgkvKiAgUmVjZWl2ZSBMZW5ndGggb2YgZnJhbWUg
Ki8NCiNkZWZpbmUgUFBfUnhGcmFtZQkJMHgwNDA0CS8qICBSZWNlaXZlIGZy
YW1lIHBvaW50ZXIgKi8NCiNkZWZpbmUgUFBfVHhGcmFtZQkJMHgwQTAwCS8q
ICBUcmFuc21pdCBmcmFtZSBwb2ludGVyICovDQoNCi8qDQogKiAgUHJpbWFy
eSBJL08gQmFzZSBBZGRyZXNzLiBJZiBubyBJL08gYmFzZSBpcyBzdXBwbGll
ZCBieSB0aGUgdXNlciwgdGhlbiB0aGlzDQogKiAgY2FuIGJlIHVzZWQgYXMg
dGhlIGRlZmF1bHQgSS9PIGJhc2UgdG8gYWNjZXNzIHRoZSBQYWNrZXRQYWdl
IEFyZWEuDQogKi8NCiNkZWZpbmUgREVGQVVMVElPQkFTRQkJMHgwMzAwDQoj
ZGVmaW5lIEZJUlNUX0lPCQkweDAyMEMJLyogIEZpcnN0IEkvTyBwb3J0IHRv
IGNoZWNrICovDQojZGVmaW5lIExBU1RfSU8JCQkweDAzN0MJLyogIExhc3Qg
SS9PIHBvcnQgdG8gY2hlY2sgKCsxMGgpICovDQojZGVmaW5lIEFERF9NQVNL
CQkweDMwMDAJLyogIE1hc2sgaXQgdXNlIG9mIHRoZSBBRERfUE9SVCByZWdp
c3RlciAqLw0KI2RlZmluZSBBRERfU0lHCQkJMHgzMDAwCS8qICBFeHBlY3Rl
ZCBJRCBzaWduYXR1cmUgKi8NCg0KI2RlZmluZSBDSElQX0VJU0FfSURfU0lH
CTB4NjMwRQkvKiAgUHJvZHVjdCBJRCBDb2RlIGZvciBDcnlzdGFsIENoaXAg
KENTODkwMCBzcGVjIDQuMykgKi8NCg0KI2RlZmluZSBQUk9EVUNUX0lEX0FE
RAkJMHgwMDAyCS8qICBBZGRyZXNzIG9mIHByb2R1Y3QgSUQgKi8NCg0KLyog
IE1hc2sgdG8gZmluZCBvdXQgdGhlIHR5cGVzIG9mICByZWdpc3RlcnMgKi8N
CiNkZWZpbmUgUkVHX1RZUEVfTUFTSwkJMHgwMDFGDQoNCi8qICBFZXByb20g
Q29tbWFuZHMgKi8NCiNkZWZpbmUgRVJTRV9XUl9FTkJMCQkweDAwRjANCiNk
ZWZpbmUgRVJTRV9XUl9ESVNBQkxFCQkweDAwMDANCg0KLyogIERlZmluZXMg
Q29udHJvbC9Db25maWcgcmVnaXN0ZXIgcXVpbnR1cGxldCBudW1iZXJzICov
DQojZGVmaW5lIFJYX0JVRl9DRkcJCTB4MDAwMw0KI2RlZmluZSBSWF9DT05U
Uk9MCQkweDAwMDUNCiNkZWZpbmUgVFhfQ0ZHCQkJMHgwMDA3DQojZGVmaW5l
IFRYX0NPTU1BTkQJCTB4MDAwOQ0KI2RlZmluZSBCVUZfQ0ZHCQkJMHgwMDBC
DQojZGVmaW5lIExJTkVfQ09OVFJPTAkJMHgwMDEzDQojZGVmaW5lIFNFTEZf
Q09OVFJPTAkJMHgwMDE1DQojZGVmaW5lIEJVU19DT05UUk9MCQkweDAwMTcN
CiNkZWZpbmUgVEVTVF9DT05UUk9MCQkweDAwMTkNCg0KLyogIERlZmluZXMg
U3RhdHVzL0NvdW50IHJlZ2lzdGVycyBxdWludHVwbGV0IG51bWJlcnMgKi8N
CiNkZWZpbmUgUlhfRVZFTlQJCTB4MDAwNA0KI2RlZmluZSBUWF9FVkVOVAkJ
MHgwMDA4DQojZGVmaW5lIEJVRl9FVkVOVAkJMHgwMDBDDQojZGVmaW5lIFJY
X01JU1NfQ09VTlQJCTB4MDAxMA0KI2RlZmluZSBUWF9DT0xfQ09VTlQJCTB4
MDAxMg0KI2RlZmluZSBMSU5FX1NUQVRVUwkJMHgwMDE0DQojZGVmaW5lIFNF
TEZfU1RBVFVTCQkweDAwMTYNCiNkZWZpbmUgQlVTX1NUQVRVUwkJMHgwMDE4
DQojZGVmaW5lIFREUgkJCTB4MDAxQw0KDQovKg0KICogUFBfUnhDRkcgLSBS
ZWNlaXZlICBDb25maWd1cmF0aW9uIGFuZCBJbnRlcnJ1cHQgTWFzaw0KICoJ
CQkgYml0IGRlZmluaXRpb24gLSAgUmVhZC93cml0ZQ0KICovDQojZGVmaW5l
IFNLSVBfMQkJCTB4MDA0MA0KI2RlZmluZSBSWF9TVFJFQU1fRU5CTAkJMHgw
MDgwDQojZGVmaW5lIFJYX09LX0VOQkwJCTB4MDEwMA0KI2RlZmluZSBSWF9E
TUFfT05MWQkJMHgwMjAwDQojZGVmaW5lIEFVVE9fUlhfRE1BCQkweDA0MDAN
CiNkZWZpbmUgQlVGRkVSX0NSQwkJMHgwODAwDQojZGVmaW5lIFJYX0NSQ19F
UlJPUl9FTkJMCTB4MTAwMA0KI2RlZmluZSBSWF9SVU5UX0VOQkwJCTB4MjAw
MA0KI2RlZmluZSBSWF9FWFRSQV9EQVRBX0VOQkwJMHg0MDAwDQoNCi8qIFBQ
X1J4Q1RMIC0gUmVjZWl2ZSBDb250cm9sIGJpdCBkZWZpbml0aW9uIC0gUmVh
ZC93cml0ZSAqLw0KI2RlZmluZSBSWF9JQV9IQVNIX0FDQ0VQVAkweDAwNDAN
CiNkZWZpbmUgUlhfUFJPTV9BQ0NFUFQJCTB4MDA4MA0KI2RlZmluZSBSWF9P
S19BQ0NFUFQJCTB4MDEwMA0KI2RlZmluZSBSWF9NVUxUQ0FTVF9BQ0NFUFQJ
MHgwMjAwDQojZGVmaW5lIFJYX0lBX0FDQ0VQVAkJMHgwNDAwDQojZGVmaW5l
IFJYX0JST0FEQ0FTVF9BQ0NFUFQJMHgwODAwDQojZGVmaW5lIFJYX0JBRF9D
UkNfQUNDRVBUCTB4MTAwMA0KI2RlZmluZSBSWF9SVU5UX0FDQ0VQVAkJMHgy
MDAwDQojZGVmaW5lIFJYX0VYVFJBX0RBVEFfQUNDRVBUCTB4NDAwMA0KI2Rl
ZmluZSBSWF9BTExfQUNDRVBUCQkoUlhfUFJPTV9BQ0NFUFQgfCBSWF9CQURf
Q1JDX0FDQ0VQVCB8CVwNCgkJCQkgUlhfUlVOVF9BQ0NFUFQgfCBSWF9FWFRS
QV9EQVRBX0FDQ0VQVCkNCi8qDQogKiAgRGVmYXVsdCByZWNlaXZlIG1vZGUg
LSBpbmRpdmlkdWFsbHkgYWRkcmVzc2VkLCBicm9hZGNhc3QsIGFuZCBlcnJv
ciBmcmVlDQogKi8NCiNkZWZpbmUgUlhfREVGX0FDQ0VQVCAoUlhfSUFfQUND
RVBUIHwgUlhfQlJPQURDQVNUX0FDQ0VQVCB8IFJYX09LX0FDQ0VQVCkNCg0K
LyoNCiAqIFBQX1R4Q0ZHIC0gVHJhbnNtaXQgQ29uZmlndXJhdGlvbiBJbnRl
cnJ1cHQgTWFzaw0KICoJCQkgYml0IGRlZmluaXRpb24gLSBSZWFkL3dyaXRl
DQogKi8NCiNkZWZpbmUgVFhfTE9TVF9DUlNfRU5CTAkweDAwNDANCiNkZWZp
bmUgVFhfU1FFX0VSUk9SX0VOQkwJMHgwMDgwDQojZGVmaW5lIFRYX09LX0VO
QkwJCTB4MDEwMA0KI2RlZmluZSBUWF9MQVRFX0NPTF9FTkJMCTB4MDIwMA0K
I2RlZmluZSBUWF9KQlJfRU5CTAkJMHgwNDAwDQojZGVmaW5lIFRYX0FOWV9D
T0xfRU5CTAkJMHgwODAwDQojZGVmaW5lIFRYXzE2X0NPTF9FTkJMCQkweDgw
MDANCg0KLyoNCiAqIFBQX1R4Q01EIC0gVHJhbnNtaXQgQ29tbWFuZCBiaXQg
ZGVmaW5pdGlvbiAtIFJlYWQtb25seQ0KICovDQojZGVmaW5lIFRYX1NUQVJU
XzRfQllURVMJMHgwMDAwDQojZGVmaW5lIFRYX1NUQVJUXzY0X0JZVEVTCTB4
MDA0MA0KI2RlZmluZSBUWF9TVEFSVF8xMjhfQllURVMJMHgwMDgwDQojZGVm
aW5lIFRYX1NUQVJUX0FMTF9CWVRFUwkweDAwQzANCiNkZWZpbmUgVFhfRk9S
Q0UJCTB4MDEwMA0KI2RlZmluZSBUWF9PTkVfQ09MCQkweDAyMDANCiNkZWZp
bmUgVFhfVFdPX1BBUlRfREVGRl9ESVNBQkxFIDB4MDQwMA0KI2RlZmluZSBU
WF9OT19DUkMJCTB4MTAwMA0KI2RlZmluZSBUWF9SVU5UCQkJMHgyMDAwDQoN
Ci8qDQogKiBQUF9CdWZDRkcgLSBCdWZmZXIgQ29uZmlndXJhdGlvbiBJbnRl
cnJ1cHQgTWFzaw0KICoJCQkgYml0IGRlZmluaXRpb24gLSBSZWFkL3dyaXRl
DQogKi8NCiNkZWZpbmUgR0VORVJBVEVfU1dfSU5URVJSVVBUCTB4MDA0MA0K
I2RlZmluZSBSWF9ETUFfRU5CTAkJMHgwMDgwDQojZGVmaW5lIFJFQURZX0ZP
Ul9UWF9FTkJMCTB4MDEwMA0KI2RlZmluZSBUWF9VTkRFUlJVTl9FTkJMCTB4
MDIwMA0KI2RlZmluZSBSWF9NSVNTX0VOQkwJCTB4MDQwMA0KI2RlZmluZSBS
WF8xMjhfQllURV9FTkJMCTB4MDgwMA0KI2RlZmluZSBUWF9DT0xfQ09VTlRf
T1ZSRkxPV19FTkJMIDB4MTAwMA0KI2RlZmluZSBSWF9NSVNTX0NPVU5UX09W
UkZMT1dfRU5CTCAweDIwMDANCiNkZWZpbmUgUlhfREVTVF9NQVRDSF9FTkJM
CTB4ODAwMA0KDQovKg0KICogUFBfTGluZUNUTCAtIExpbmUgQ29udHJvbCBi
aXQgZGVmaW5pdGlvbiAtIFJlYWQvd3JpdGUNCiAqLw0KI2RlZmluZSBTRVJJ
QUxfUlhfT04JCTB4MDA0MA0KI2RlZmluZSBTRVJJQUxfVFhfT04JCTB4MDA4
MA0KI2RlZmluZSBBVUlfT05MWQkJMHgwMTAwDQojZGVmaW5lIEFVVE9fQVVJ
XzEwQkFTRVQJMHgwMjAwDQojZGVmaW5lIE1PRElGSUVEX0JBQ0tPRkYJMHgw
ODAwDQojZGVmaW5lIE5PX0FVVE9fUE9MQVJJVFkJMHgxMDAwDQojZGVmaW5l
IFRXT19QQVJUX0RFRkRJUwkJMHgyMDAwDQojZGVmaW5lIExPV19SWF9TUVVF
TENICQkweDQwMDANCg0KLyoNCiAqIFBQX1NlbGZDVEwgLSBTb2Z0d2FyZSBT
ZWxmIENvbnRyb2wgYml0IGRlZmluaXRpb24gLSBSZWFkL3dyaXRlDQogKi8N
CiNkZWZpbmUgUE9XRVJfT05fUkVTRVQJCTB4MDA0MA0KI2RlZmluZSBTV19T
VE9QCQkJMHgwMTAwDQojZGVmaW5lIFNMRUVQX09OCQkweDAyMDANCiNkZWZp
bmUgQVVUT19XQUtFVVAJCTB4MDQwMA0KI2RlZmluZSBIQ0IwX0VOQkwJCTB4
MTAwMA0KI2RlZmluZSBIQ0IxX0VOQkwJCTB4MjAwMA0KI2RlZmluZSBIQ0Iw
CQkJMHg0MDAwDQojZGVmaW5lIEhDQjEJCQkweDgwMDANCg0KLyoNCiAqIFBQ
X0J1c0NUTCAtIElTQSBCdXMgQ29udHJvbCBiaXQgZGVmaW5pdGlvbiAtIFJl
YWQvd3JpdGUNCiAqLw0KI2RlZmluZSBSRVNFVF9SWF9ETUEJCTB4MDA0MA0K
I2RlZmluZSBNRU1PUllfT04JCTB4MDQwMA0KI2RlZmluZSBETUFfQlVSU1Rf
TU9ERQkJMHgwODAwDQojZGVmaW5lIElPX0NIQU5ORUxfUkVBRFlfT04JMHgx
MDAwDQojZGVmaW5lIFJYX0RNQV9TSVpFXzY0S3MJMHgyMDAwDQojZGVmaW5l
IEVOQUJMRV9JUlEJCTB4ODAwMA0KDQovKg0KICogUFBfVGVzdENUTCAtIFRl
c3QgQ29udHJvbCBiaXQgZGVmaW5pdGlvbiAtIFJlYWQvd3JpdGUNCiAqLw0K
I2RlZmluZSBMSU5LX09GRgkJMHgwMDgwDQojZGVmaW5lIEVOREVDX0xPT1BC
QUNLCQkweDAyMDANCiNkZWZpbmUgQVVJX0xPT1BCQUNLCQkweDA0MDANCiNk
ZWZpbmUgQkFDS09GRl9PRkYJCTB4MDgwMA0KI2RlZmluZSBGQVNUX1RFU1QJ
CTB4ODAwMA0KDQovKg0KICogUFBfUnhFdmVudCAtIFJlY2VpdmUgRXZlbnQg
Qml0IGRlZmluaXRpb24gLSBSZWFkLW9ubHkNCiAqLw0KI2RlZmluZSBSWF9J
QV9IQVNIRUQJCTB4MDA0MA0KI2RlZmluZSBSWF9EUklCQkxFCQkweDAwODAN
CiNkZWZpbmUgUlhfT0sJCQkweDAxMDANCiNkZWZpbmUgUlhfSEFTSEVECQkw
eDAyMDANCiNkZWZpbmUgUlhfSUEJCQkweDA0MDANCiNkZWZpbmUgUlhfQlJP
QURDQVNUCQkweDA4MDANCiNkZWZpbmUgUlhfQ1JDX0VSUk9SCQkweDEwMDAN
CiNkZWZpbmUgUlhfUlVOVAkJCTB4MjAwMA0KI2RlZmluZSBSWF9FWFRSQV9E
QVRBCQkweDQwMDANCg0KI2RlZmluZSBIQVNIX0lOREVYX01BU0sJCTB4MEZD
MDANCg0KLyoNCiAqIFBQX1R4RXZlbnQgLSBUcmFuc21pdCBFdmVudCBCaXQg
ZGVmaW5pdGlvbiAtIFJlYWQtb25seQ0KICovDQojZGVmaW5lIFRYX0xPU1Rf
Q1JTCQkweDAwNDANCiNkZWZpbmUgVFhfU1FFX0VSUk9SCQkweDAwODANCiNk
ZWZpbmUgVFhfT0sJCQkweDAxMDANCiNkZWZpbmUgVFhfTEFURV9DT0wJCTB4
MDIwMA0KI2RlZmluZSBUWF9KQlIJCQkweDA0MDANCiNkZWZpbmUgVFhfMTZf
Q09MCQkweDgwMDANCiNkZWZpbmUgVFhfU0VORF9PS19CSVRTCQkoVFhfT0sg
fCBUWF9MT1NUX0NSUykNCiNkZWZpbmUgVFhfQ09MX0NPVU5UX01BU0sJMHg3
ODAwDQoNCi8qDQogKiBQUF9CdWZFdmVudCAtIEJ1ZmZlciBFdmVudCBCaXQg
ZGVmaW5pdGlvbiAtIFJlYWQtb25seQ0KICovDQojZGVmaW5lIFNXX0lOVEVS
UlVQVAkJMHgwMDQwDQojZGVmaW5lIFJYX0RNQQkJCTB4MDA4MA0KI2RlZmlu
ZSBSRUFEWV9GT1JfVFgJCTB4MDEwMA0KI2RlZmluZSBUWF9VTkRFUlJVTgkJ
MHgwMjAwDQojZGVmaW5lIFJYX01JU1MJCQkweDA0MDANCiNkZWZpbmUgUlhf
MTI4X0JZVEUJCTB4MDgwMA0KI2RlZmluZSBUWF9DT0xfT1ZSRkxXCQkweDEw
MDANCiNkZWZpbmUgUlhfTUlTU19PVlJGTFcJCTB4MjAwMA0KI2RlZmluZSBS
WF9ERVNUX01BVENICQkweDgwMDANCg0KLyoNCiAqIFBQX0xpbmVTVCAtIEV0
aGVybmV0IExpbmUgU3RhdHVzIGJpdCBkZWZpbml0aW9uIC0gUmVhZC1vbmx5
DQogKi8NCiNkZWZpbmUgTElOS19PSwkJCTB4MDA4MA0KI2RlZmluZSBBVUlf
T04JCQkweDAxMDANCiNkZWZpbmUgVEVOQkFTRVRfT04JCTB4MDIwMA0KI2Rl
ZmluZSBQT0xBUklUWV9PSwkJMHgxMDAwDQojZGVmaW5lIENSU19PSwkJCTB4
NDAwMA0KDQovKg0KICogUFBfU2VsZlNUIC0gQ2hpcCBTb2Z0d2FyZSBTdGF0
dXMgYml0IGRlZmluaXRpb24NCiAqLw0KI2RlZmluZSBBQ1RJVkVfMzNWCQkw
eDAwNDANCiNkZWZpbmUgSU5JVF9ET05FCQkweDAwODANCiNkZWZpbmUgU0lf
QlVTWQkJCTB4MDEwMA0KI2RlZmluZSBFRVBST01fUFJFU0VOVAkJMHgwMjAw
DQojZGVmaW5lIEVFUFJPTV9PSwkJMHgwNDAwDQojZGVmaW5lIEVMX1BSRVNF
TlQJCTB4MDgwMA0KI2RlZmluZSBFRV9TSVpFXzY0CQkweDEwMDANCg0KLyoN
CiAqIFBQX0J1c1NUIC0gSVNBIEJ1cyBTdGF0dXMgYml0IGRlZmluaXRpb24N
CiAqLw0KI2RlZmluZSBUWF9CSURfRVJST1IJCTB4MDA4MA0KI2RlZmluZSBS
RUFEWV9GT1JfVFhfTk9XCTB4MDEwMA0KDQovKg0KICogUFBfQXV0b05lZ0NU
TCAtIEF1dG8gTmVnb3RpYXRpb24gQ29udHJvbCBiaXQgZGVmaW5pdGlvbg0K
ICovDQojZGVmaW5lIFJFX05FR19OT1cJCTB4MDA0MA0KI2RlZmluZSBBTExP
V19GRFgJCTB4MDA4MA0KI2RlZmluZSBBVVRPX05FR19FTkFCTEUJCTB4MDEw
MA0KI2RlZmluZSBOTFBfRU5BQkxFCQkweDAyMDANCiNkZWZpbmUgRk9SQ0Vf
RkRYCQkweDgwMDANCiNkZWZpbmUgQVVUT19ORUdfQklUUwkJKEZPUkNFX0ZE
WCB8IE5MUF9FTkFCTEUgfCBBVVRPX05FR19FTkFCTEUpDQojZGVmaW5lIEFV
VE9fTkVHX01BU0sJCShGT1JDRV9GRFggfCBOTFBfRU5BQkxFIHwgQVVUT19O
RUdfRU5BQkxFIHwgXA0KCQkJCSBBTExPV19GRFggfCBSRV9ORUdfTk9XKQ0K
DQovKg0KICogUFBfQXV0b05lZ1NUIC0gQXV0byBOZWdvdGlhdGlvbiBTdGF0
dXMgYml0IGRlZmluaXRpb24NCiAqLw0KI2RlZmluZSBBVVRPX05FR19CVVNZ
CQkweDAwODANCiNkZWZpbmUgRkxQX0xJTksJCTB4MDEwMA0KI2RlZmluZSBG
TFBfTElOS19HT09ECQkweDA4MDANCiNkZWZpbmUgTElOS19GQVVMVAkJMHgx
MDAwDQojZGVmaW5lIEhEWF9BQ1RJVkUJCTB4NDAwMA0KI2RlZmluZSBGRFhf
QUNUSVZFCQkweDgwMDANCg0KLyoNCiAqIFRoZSBmb2xsb3dpbmcgYmxvY2sg
ZGVmaW5lcyB0aGUgSVNRIGV2ZW50IHR5cGVzDQogKi8NCiNkZWZpbmUgSVNR
X1JFQ0VJVkVSX0VWRU5UCTB4MDQNCiNkZWZpbmUgSVNRX1RSQU5TTUlUVEVS
X0VWRU5UCTB4MDgNCiNkZWZpbmUgSVNRX0JVRkZFUl9FVkVOVAkweDBjDQoj
ZGVmaW5lIElTUV9SWF9NSVNTX0VWRU5UCTB4MTANCiNkZWZpbmUgSVNRX1RY
X0NPTF9FVkVOVAkweDEyDQoNCiNkZWZpbmUgSVNRX0VWRU5UX01BU0sJCTB4
MDAzRgkvKiBJU1EgbWFzayB0byBmaW5kIG91dCB0eXBlIG9mIGV2ZW50ICov
DQojZGVmaW5lIElTUV9ISVNUCQkxNgkvKiBzbWFsbCBoaXN0b3J5IGJ1ZmZl
ciAqLw0KI2RlZmluZSBBVVRPSU5DUkVNRU5UCQkweDgwMDAJLyogQml0IG1h
c2sgdG8gc2V0IGJpdC0xNSBmb3IgYXV0b2luY3JlbWVudCAqLw0KDQojZGVm
aW5lIFRYUlhCVUZTSVpFCQkweDA2MDANCiNkZWZpbmUgUlhETUFCVUZTSVpF
CQkweDgwMDANCiNkZWZpbmUgUlhETUFTSVpFCQkweDQwMDANCiNkZWZpbmUg
VFhSWF9MRU5HVEhfTUFTSwkweDA3RkYNCg0KLyogIHJ4IG9wdGlvbnMgYml0
cyAqLw0KI2RlZmluZSBSQ1ZfV0lUSF9SWE9OCQkxICAgICAgIC8qICBTZXQg
U2VyUnggT04gKi8NCiNkZWZpbmUgUkNWX0NPVU5UUwkJMiAgICAgICAvKiAg
VXNlIEZyYW1lY250MSAqLw0KI2RlZmluZSBSQ1ZfUE9ORwkJNCAgICAgICAv
KiAgUG9uZyByZXNwb25kZW50ICovDQojZGVmaW5lIFJDVl9ET05HCQk4ICAg
ICAgIC8qICBEb25nIG9wZXJhdGlvbiAqLw0KI2RlZmluZSBSQ1ZfUE9MTElO
RwkJMHgxMAkvKiAgUG9sbCBSeEV2ZW50ICovDQojZGVmaW5lIFJDVl9JU1EJ
CQkweDIwCS8qICBVc2UgSVNRLCBpbnQgKi8NCiNkZWZpbmUgUkNWX0FVVE9f
RE1BCQkweDEwMAkvKiAgU2V0IEF1dG9SeERNQUUgKi8NCiNkZWZpbmUgUkNW
X0RNQQkJCTB4MjAwCS8qICBTZXQgUnhETUEgb25seSAqLw0KI2RlZmluZSBS
Q1ZfRE1BX0FMTAkJMHg0MDAJLyogIENvcHkgYWxsIERNQSdlZCAqLw0KI2Rl
ZmluZSBSQ1ZfRklYRURfREFUQQkJMHg4MDAJLyogIEV2ZXJ5IGZyYW1lIHNh
bWUgKi8NCiNkZWZpbmUgUkNWX0lPCQkJMHgxMDAwCS8qICBVc2UgSVNBIElP
IG9ubHkgKi8NCiNkZWZpbmUgUkNWX01FTU9SWQkJMHgyMDAwCS8qICBVc2Ug
SVNBIE1lbW9yeSAqLw0KDQojZGVmaW5lIFJBTV9TSVpFCQkweDEwMDAgICAg
ICAvKiAgVGhlIGNhcmQgaGFzIDRrIGJ5dGVzIG9yIFJBTSAqLw0KI2RlZmlu
ZSBQS1RfU1RBUlQJCVBQX1R4RnJhbWUgIC8qICBTdGFydCBvZiBwYWNrZXQg
UkFNICovDQoNCiNkZWZpbmUgUlhfRlJBTUVfUE9SVAkJMHgwMDAwDQojZGVm
aW5lIFRYX0ZSQU1FX1BPUlQJCVJYX0ZSQU1FX1BPUlQNCiNkZWZpbmUgVFhf
Q01EX1BPUlQJCTB4MDAwNA0KI2RlZmluZSBUWF9DUzg5MDBfTk9XCQkweDAw
MDAgIC8qIFR4IHBhY2tldCBhZnRlciAgIDUgYnl0ZXMgY29waWVkICovDQoj
ZGVmaW5lIFRYX0NTODkwMF9BRlRFUl8zODEJMHgwMDIwICAvKiBUeCBwYWNr
ZXQgYWZ0ZXIgMzgxIGJ5dGVzIGNvcGllZCAqLw0KI2RlZmluZSBUWF9DUzg5
MDBfQUZURVJfQUxMCTB4MDA2MCAgLyogVHggcGFja2V0IGFmdGVyIGFsbCBi
eXRlcyBjb3BpZWQgKi8NCiNkZWZpbmUgVFhfQ1M4OTIwX05PVwkJMHgwMDAw
ICAvKiBUeCBwYWNrZXQgYWZ0ZXIgICA1IGJ5dGVzIGNvcGllZCAqLw0KI2Rl
ZmluZSBUWF9DUzg5MjBfQUZURVJfMzgxCTB4MDA0MCAgLyogVHggcGFja2V0
IGFmdGVyIDM4MSBieXRlcyBjb3BpZWQgKi8NCiNkZWZpbmUgVFhfQ1M4OTIw
X0FGVEVSXzEwMjEJMHgwMDgwICAvKiBUeCBwYWNrZXQgYWZ0ZXIxMDIxIGJ5
dGVzIGNvcGllZCAqLw0KI2RlZmluZSBUWF9DUzg5MjBfQUZURVJfQUxMCTB4
MDBDMCAgLyogVHggcGFja2V0IGFmdGVyIGFsbCBieXRlcyBjb3BpZWQgKi8N
CiNkZWZpbmUgVFhfTEVOX1BPUlQJCTB4MDAwNg0KI2RlZmluZSBJU1FfUE9S
VAkJMHgwMDA4DQojZGVmaW5lIEFERF9QT1JUCQkweDAwMEENCiNkZWZpbmUg
REFUQV9QT1JUCQkweDAwMEMNCg0KI2RlZmluZSBFRVBST01fV1JJVEVfRU4J
CTB4MDBGMA0KI2RlZmluZSBFRVBST01fV1JJVEVfRElTCTB4MDAwMA0KI2Rl
ZmluZSBFRVBST01fV1JJVEVfQ01ECTB4MDEwMA0KI2RlZmluZSBFRVBST01f
UkVBRF9DTUQJCTB4MDIwMA0KDQovKiAgUmVjZWl2ZSBIZWFkZXINCiAqICBE
ZXNjcmlwdGlvbiBvZiBoZWFkZXIgb2YgZWFjaCBwYWNrZXQgaW4gcmVjZWl2
ZSBhcmVhIG9mIG1lbW9yeQ0KICovDQojZGVmaW5lIFJCVUZfRVZFTlRfTE9X
CTAgIC8qIExvdyBieXRlIG9mIFJ4RXZlbnQgLSBzdGF0dXMgb2YgcmVjZWl2
ZWQgZnJhbWUgKi8NCiNkZWZpbmUgUkJVRl9FVkVOVF9ISUdICTEgIC8qIEhp
Z2ggYnl0ZSBvZiBSeEV2ZW50IC0gc3RhdHVzIG9mIHJlY2VpdmVkIGZyYW1l
ICovDQojZGVmaW5lIFJCVUZfTEVOX0xPVwkyICAvKiBMZW5ndGggb2YgcmVj
ZWl2ZWQgZGF0YSAtIGxvdyBieXRlICovDQojZGVmaW5lIFJCVUZfTEVOX0hJ
CTMgIC8qIExlbmd0aCBvZiByZWNlaXZlZCBkYXRhIC0gaGlnaCBieXRlICov
DQojZGVmaW5lIFJCVUZfSEVBRF9MRU4JNCAgLyogTGVuZ3RoIG9mIHRoaXMg
aGVhZGVyICovDQoNCiNkZWZpbmUgQ0hJUF9SRUFEIDB4MSAgLyogVXNlZCB0
byBtYXJrIHN0YXRlIG9mIHRoZSByZXBpbnMgY29kZSAoY2hpcCBvciBkbWEp
ICovDQojZGVmaW5lIERNQV9SRUFEICAweDIgIC8qIFVzZWQgdG8gbWFyayBz
dGF0ZSBvZiB0aGUgcmVwaW5zIGNvZGUgKGNoaXAgb3IgZG1hKSAqLw0KDQov
KiAgZm9yIGJpb3Mgc2NhbiAqLw0KLyogICovDQojaWZkZWYgQ1NERUJVRw0K
LyogIHVzZSB0aGVzZSB2YWx1ZXMgZm9yIGRlYnVnZ2luZyBiaW9zIHNjYW4g
Ki8NCiNkZWZpbmUgQklPU19TVEFSVF9TRUcJCTB4MDAwMDANCiNkZWZpbmUg
QklPU19PRkZTRVRfSU5DCQkweDAwMTANCiNlbHNlDQojZGVmaW5lIEJJT1Nf
U1RBUlRfU0VHCQkweDBjMDAwDQojZGVmaW5lIEJJT1NfT0ZGU0VUX0lOQwkJ
MHgwMjAwDQojZW5kaWYNCg0KI2RlZmluZSBCSU9TX0xBU1RfT0ZGU0VUCTB4
MGZjMDANCg0KLyoNCiAqICBCeXRlIG9mZnNldHMgaW50byB0aGUgRUVQUk9N
IGNvbmZpZ3VyYXRpb24gYnVmZmVyDQogKi8NCiNkZWZpbmUgSVNBX0NORl9P
RkZTRVQJCTB4Ng0KI2RlZmluZSBUWF9DVExfT0ZGU0VUCQkoSVNBX0NORl9P
RkZTRVQgKyA4KQkvKiAgODkwMCBlZXByb20gKi8NCiNkZWZpbmUgQVVUT19O
RUdfQ05GX09GRlNFVAkoSVNBX0NORl9PRkZTRVQgKyA4KQkvKiAgODkyMCBl
ZXByb20gKi8NCg0KLyoNCiAqICB0aGUgYXNzdW1wdGlvbiBoZXJlIGlzIHRo
YXQgdGhlIGJpdHMgaW4gdGhlIGVlcHJvbSBhcmUgZ2VuZXJhbGx5IA0KICog
IGluIHRoZSBzYW1lIHBvc2l0aW9uIGFzIHRob3NlIGluIHRoZSBhdXRvbmVn
Y3RsIHJlZ2lzdGVyLiANCiAqICBPZiBjb3Vyc2UgdGhlIElNTSBiaXQgaXMg
bm90IGluIHRoYXQgcmVnaXN0ZXIgc28gaXQgbXVzdCBiZSANCiAqICBtYXNr
ZWQgb3V0DQogKi8NCiNkZWZpbmUgRUVfRk9SQ0VfRkRYCQkweDgwMDANCiNk
ZWZpbmUgRUVfTkxQX0VOQUJMRQkJMHgwMjAwDQojZGVmaW5lIEVFX0FVVE9f
TkVHX0VOQUJMRQkweDAxMDANCiNkZWZpbmUgRUVfQUxMT1dfRkRYCQkweDAw
ODANCiNkZWZpbmUgRUVfQVVUT19ORUdfQ05GX01BU0sJKEVFX0ZPUkNFX0ZE
WCB8IEVFX05MUF9FTkFCTEUgfCAJXA0KCQkJCSBFRV9BVVRPX05FR19FTkFC
TEUgfCBFRV9BTExPV19GRFgpDQoNCiNkZWZpbmUgSU1NX0JJVAkJCTB4MDA0
MAkvKiAgaWdub3JlIG1pc3NpbmcgbWVkaWEJICovDQoNCiNkZWZpbmUgQURB
UFRFUl9DTkZfT0ZGU0VUCShBVVRPX05FR19DTkZfT0ZGU0VUICsgMikNCiNk
ZWZpbmUgQV9DTkZfTUVESUEgICAgICAgICAgICAgMHgwMDA3DQojZGVmaW5l
IEFfQ05GXzEwQl9UCQkweDAwMDENCiNkZWZpbmUgQV9DTkZfQVVJCQkweDAw
MDINCiNkZWZpbmUgQV9DTkZfMTBCXzIJCTB4MDAwNA0KI2RlZmluZSBBX0NO
Rl9NRURJQV9UWVBFCTB4MDA2MA0KI2RlZmluZSBBX0NORl9NRURJQV9BVVRP
CTB4MDAwMA0KI2RlZmluZSBBX0NORl9NRURJQV8xMEJfVAkweDAwMjANCiNk
ZWZpbmUgQV9DTkZfTUVESUFfQVVJCQkweDAwNDANCiNkZWZpbmUgQV9DTkZf
TUVESUFfMTBCXzIJMHgwMDYwDQojZGVmaW5lIEFfQ05GX0RDX0RDX1BPTEFS
SVRZCTB4MDA4MA0KI2RlZmluZSBBX0NORl9OT19BVVRPX1BPTEFSSVRZCTB4
MjAwMA0KI2RlZmluZSBBX0NORl9MT1dfUlhfU1FVRUxDSAkweDQwMDANCiNk
ZWZpbmUgQV9DTkZfRVhUTkRfMTBCXzIJMHg4MDAwDQoNCiNkZWZpbmUgUEFD
S0VUX1BBR0VfT0ZGU0VUCTB4OA0KDQovKg0KICogIEJpdCBkZWZpbml0aW9u
cyBmb3IgdGhlIElTQSBjb25maWd1cmF0aW9uIHdvcmQgZnJvbSB0aGUgRUVQ
Uk9NDQogKi8NCiNkZWZpbmUgSU5UX05PX01BU0sJCTB4MDAwRg0KI2RlZmlu
ZSBETUFfTk9fTUFTSwkJMHgwMDcwDQojZGVmaW5lIElTQV9ETUFfU0laRQkJ
MHgwMjAwDQojZGVmaW5lIElTQV9BVVRPX1J4RE1BCQkweDA0MDANCiNkZWZp
bmUgSVNBX1J4RE1BCQkweDA4MDANCiNkZWZpbmUgRE1BX0JVUlNUCQkweDEw
MDANCiNkZWZpbmUgU1RSRUFNX1RSQU5TRkVSCQkweDIwMDANCiNkZWZpbmUg
QU5ZX0lTQV9ETUEJCShJU0FfQVVUT19SeERNQSB8IElTQV9SeERNQSkNCg0K
LyogIERNQSBjb250cm9sbGVyIHJlZ2lzdGVycyAqLw0KI2RlZmluZSBETUFf
QkFTRQkJMHgwMCAgIC8qIERNQSBjb250cm9sbGVyIGJhc2UgKi8NCiNkZWZp
bmUgRE1BX0JBU0VfMgkJMHgwQzAgIC8qIERNQSBjb250cm9sbGVyIGJhc2Ug
Ki8NCg0KI2RlZmluZSBETUFfU1RBVAkJMHgwRDAgIC8qIERNQSBjb250cm9s
bGVyIHN0YXR1cyByZWdpc3RlciAqLw0KI2RlZmluZSBETUFfTUFTSwkJMHgw
RDQgIC8qIERNQSBjb250cm9sbGVyIG1hc2sgcmVnaXN0ZXIgKi8NCiNkZWZp
bmUgRE1BX01PREUJCTB4MEQ2ICAvKiBETUEgY29udHJvbGxlciBtb2RlIHJl
Z2lzdGVyICovDQojZGVmaW5lIERNQV9SRVNFVEZGCQkweDBEOCAgLyogRE1B
IGNvbnRyb2xsZXIgZmlyc3QvbGFzdCBmbGlwIGZsb3AgKi8NCg0KLyogIERN
QSBkYXRhICovDQojZGVmaW5lIERNQV9ESVNBQkxFCQkweDA0ICAgLyogIERp
c2FibGUgY2hhbm5lbCBuICovDQojZGVmaW5lIERNQV9FTkFCTEUJCTB4MDAg
ICAvKiAgRW5hYmxlIGNoYW5uZWwgbiAqLw0KLyogIERlbWFuZCB0cmFuc2Zl
cnMsIGluY3IuIGFkZHJlc3MsIGF1dG8gaW5pdCwgd3JpdGVzLCBjaC4gbiAq
Lw0KI2RlZmluZSBETUFfUlhfTU9ERQkJMHgxNA0KLyogIERlbWFuZCB0cmFu
c2ZlcnMsIGluY3IuIGFkZHJlc3MsIGF1dG8gaW5pdCwgcmVhZHMsIGNoLiBu
ICovDQojZGVmaW5lIERNQV9UWF9NT0RFCQkweDE4DQoNCiNkZWZpbmUgRE1B
X1NJWkUJCSgxNioxMDI0KQkvKiBTaXplIG9mIGRtYSBidWZmZXIgLSAxNmsg
Ki8NCg0KI2RlZmluZSBDUzg5MDAJCQkweDAwMDANCiNkZWZpbmUgQ1M4OTIw
CQkJMHg0MDAwICAgDQojZGVmaW5lIENTODkyME0JCQkweDYwMDAgICANCiNk
ZWZpbmUgUkVWSVNPTl9CSVRTCQkweDFGMDANCiNkZWZpbmUgRUVWRVJfTlVN
QkVSCQkweDEyDQojZGVmaW5lIENIS1NVTV9MRU4JCTB4MTQNCiNkZWZpbmUg
Q0hLU1VNX1ZBTAkJMHgwMDAwDQojZGVmaW5lIFNUQVJUX0VFUFJPTV9EQVRB
CTB4MDAxYyAvKiBPZmZzZXQgaW50byBlZXByb20gZm9yIHN0YXJ0IG9mIGRh
dGEgKi8NCiNkZWZpbmUgSVJRX01BUF9FRVBST01fREFUQQkweDAwNDYgLyog
T2Zmc2V0IGludG8gZWVwcm9tIGZvciB0aGUgSVJRIG1hcCAqLw0KI2RlZmlu
ZSBJUlFfTUFQX0xFTgkJMHgwMDA0IC8qIE5vIG9mIGJ5dGVzIHRvIHJlYWQg
Zm9yIHRoZSBJUlEgbWFwICovDQojZGVmaW5lIFBOUF9JUlFfRlJNVAkJMHgw
MDIyIC8qIFBOUCBzbWFsbCBpdGVtIElSUSBmb3JtYXQgKi8NCiNkZWZpbmUg
Q1M4OTAwX0lSUV9NQVAJCTB4MWMyMCAvKiBUaGlzIElSUSBtYXAgaXMgZml4
ZWQgKi8NCg0KI2RlZmluZSBDUzg5MjBfTk9fSU5UUwkJMHgwRiAgIC8qICBN
YXggQ1M4OTIwIGludGVycnVwdCBzZWxlY3QgIyAqLw0KDQojZGVmaW5lIFBO
UF9BRERfUE9SVAkJMHgwMjc5DQojZGVmaW5lIFBOUF9XUklURV9QT1JUCQkw
eDBBNzkNCg0KI2RlZmluZSBHRVRfUE5QX0lTQV9TVFJVQ1QJMHg0MA0KI2Rl
ZmluZSBQTlBfSVNBX1NUUlVDVF9MRU4JMHgwNg0KI2RlZmluZSBQTlBfQ1NO
X0NOVF9PRkYJCTB4MDENCiNkZWZpbmUgUE5QX1JEX1BPUlRfT0ZGCQkweDAy
DQojZGVmaW5lIFBOUF9GVU5DVElPTl9PSwkJMHgwMA0KI2RlZmluZSBQTlBf
V0FLRQkJMHgwMw0KI2RlZmluZSBQTlBfUlNSQ19EQVRBCQkweDA0DQojZGVm
aW5lIFBOUF9SU1JDX1JFQURZCQkweDAxDQojZGVmaW5lIFBOUF9TVEFUVVMJ
CTB4MDUNCiNkZWZpbmUgUE5QX0FDVElWQVRFCQkweDMwDQojZGVmaW5lIFBO
UF9DTkZfSU9fSAkJMHg2MA0KI2RlZmluZSBQTlBfQ05GX0lPX0wJCTB4NjEN
CiNkZWZpbmUgUE5QX0NORl9JTlQJCTB4NzANCiNkZWZpbmUgUE5QX0NORl9E
TUEJCTB4NzQNCiNkZWZpbmUgUE5QX0NORl9NRU0JCTB4NDgNCg0KI2RlZmlu
ZSBCSVQwCQkJMQ0KI2RlZmluZSBCSVQxNQkJCTB4ODAwMA0KDQojZGVmaW5l
CUNTX0RVUExFWF9BVVRPCQkwDQojZGVmaW5lIENTX0RVUExFWF9GVUxMCQkx
DQojZGVmaW5lIENTX0RVUExFWF9IQUxGCQkyDQoNCi8qIERldmljZSBuYW1l
ICovDQojZGVmaW5lIENTX05BTUUJCQkiY3MiDQoNCiNkZWZpbmUgY3NfcmVh
ZHJlZyhpb2Jhc2UsIHBvcnRubykgXA0KCShvdXR3KChpb2Jhc2UpICsgQURE
X1BPUlQsIChwb3J0bm8pKSwgXA0KCWludygoaW9iYXNlKSArIERBVEFfUE9S
VCkpDQojZGVmaW5lIGNzX3dyaXRlcmVnKGlvYmFzZSwgcG9ydG5vLCB2YWx1
ZSkgXA0KCShvdXR3KChpb2Jhc2UpICsgQUREX1BPUlQsIChwb3J0bm8pKSwg
XA0KCW91dHcoKGlvYmFzZSkgKyBEQVRBX1BPUlQsICh2YWx1ZSkpKQ0KI2Rl
ZmluZSBjc19yZWFkd29yZChpb2Jhc2UsIHBvcnRubykgXA0KCShpbncoKGlv
YmFzZSkgKyAocG9ydG5vKSkpDQojZGVmaW5lIGNzX3dyaXRld29yZChpb2Jh
c2UsIHBvcnRubywgdmFsdWUpIFwNCgkob3V0dygoaW9iYXNlKSArIChwb3J0
bm8pLCAodmFsdWUpKSkNCg0KI2RlZmluZSByZXNldF9jaGlwKG5pY19hZGRy
KSBcDQoJY3Nfd3JpdGVyZWcobmljX2FkZHIsIFBQX1NlbGZDVEwsIGNzX3Jl
YWRyZWcoaW9hZGRyLCBQUF9TZWxmQ1RMKSB8IFBPV0VSX09OX1JFU0VUKSwg
XA0KCURFTEFZKDMwMDAwKQ0KDQojZGVmaW5lIGNzX2R1cGxleF9mdWxsKHNj
KSBcDQogICAgICAgIChjc193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0F1
dG9OZWdDVEwsIEZPUkNFX0ZEWCkpDQoNCiNkZWZpbmUgY3NfZHVwbGV4X2hh
bGYoc2MpIFwNCiAgICAgICAgKGNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwg
UFBfQXV0b05lZ0NUTCwgTkxQX0VOQUJMRSkpDQoNCg==
--0-1106502712-952877046=:96199--


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" 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.4.10.10003141143290.29420-300000>