ktrace-pre-2.1.48-4

Michael L. Galbraith (mikeg@weiden.de)
Fri, 8 Aug 1997 20:05:26 +0200 (MET DST)


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.

---876492614-819129120-871063526=:553
Content-Type: TEXT/PLAIN; charset=US-ASCII

Howdy..

Wanting to do some profiling, I tried to paint ktrace-2.1.32 into pre-2.1.48-4.
I'm pretty sure that I screwed up with what I did with __initfunc. This patch
in it's existing form is a great way to rapidly reboot the system.. not quite
my goal :) If someone who isn't reading kernel code through the coke bottle of
ignorance could find time to take a peek, I'd appreciate it.

Or.. maybe someone has a current version I can chew on?

-Mike

---876492614-819129120-871063526=:553
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=yy
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.970808200525.553C@mikeg.weiden.de>
Content-Description:

ZGlmZiAtdXJOIGxpbnV4LXByZS0yLjEuNDgtNC9NYWtlZmlsZSBsaW51eC1w
cmUtMi4xLjQ4LTQudHJhY2VyL01ha2VmaWxlDQotLS0gbGludXgtcHJlLTIu
MS40OC00L01ha2VmaWxlCVRodSBBdWcgIDcgMDY6MzQ6NTQgMTk5Nw0KKysr
IGxpbnV4LXByZS0yLjEuNDgtNC50cmFjZXIvTWFrZWZpbGUJRnJpIEF1ZyAg
OCAxMzoxMDoyMCAxOTk3DQpAQCAtNjEsNiArNjEsMTIgQEANCiBkby1pdC1h
bGw6CWNvbmZpZw0KIGVuZGlmDQogDQoraWZlcSAoJChDT05GSUdfVFJBQ0VS
KSx5KQ0KK1BST0ZJTEVGTEFHUyAgID0tcGcgLWZuby1vbWl0LWZyYW1lLXBv
aW50ZXIgLU8yIC1ERElTQUJMRV9JTklURlVOQw0KK2Vsc2UNCitQUk9GSUxF
RkxBR1MgICA9LWZvbWl0LWZyYW1lLXBvaW50ZXIgLU8yDQorZW5kaWYNCisN
CiAjDQogIyBST09UX0RFViBzcGVjaWZpZXMgdGhlIGRlZmF1bHQgcm9vdC1k
ZXZpY2Ugd2hlbiBtYWtpbmcgdGhlIGltYWdlLg0KICMgVGhpcyBjYW4gYmUg
ZWl0aGVyIEZMT1BQWSwgQ1VSUkVOVCwgL2Rldi94eHh4IG9yIGVtcHR5LCBp
biB3aGljaCBjYXNlDQpAQCAtODgsNyArOTQsNyBAQA0KICMgc3RhbmRhcmQg
Q0ZMQUdTDQogIw0KIA0KLUNGTEFHUyA9IC1XYWxsIC1Xc3RyaWN0LXByb3Rv
dHlwZXMgLU8yIC1mb21pdC1mcmFtZS1wb2ludGVyDQorQ0ZMQUdTID0gLVdh
bGwgLVdzdHJpY3QtcHJvdG90eXBlcyAkKFBST0ZJTEVGTEFHUykNCiANCiBp
ZmRlZiBDT05GSUdfQ1BQDQogQ0ZMQUdTIDo9ICQoQ0ZMQUdTKSAteCBjKysN
CmRpZmYgLXVyTiBsaW51eC1wcmUtMi4xLjQ4LTQvYXJjaC9pMzg2L2NvbmZp
Zy5pbiBsaW51eC1wcmUtMi4xLjQ4LTQudHJhY2VyL2FyY2gvaTM4Ni9jb25m
aWcuaW4NCi0tLSBsaW51eC1wcmUtMi4xLjQ4LTQvYXJjaC9pMzg2L2NvbmZp
Zy5pbglUaHUgQXVnICA3IDA2OjEwOjIzIDE5OTcNCisrKyBsaW51eC1wcmUt
Mi4xLjQ4LTQudHJhY2VyL2FyY2gvaTM4Ni9jb25maWcuaW4JRnJpIEF1ZyAg
OCAxMzoxMDoyMCAxOTk3DQpAQCAtMTI4LDQgKzEyOCw4IEBADQogICBpbnQg
JyBQcm9maWxlIHNoaWZ0IGNvdW50JyBDT05GSUdfUFJPRklMRV9TSElGVCAy
DQogZmkNCiBib29sICdNYWdpYyBTeXNScSBrZXknIENPTkZJR19NQUdJQ19T
WVNSUQ0KK2Jvb2wgJyBFbmFibGUga2VybmVsIHRyYWNlcicgQ09ORklHX1RS
QUNFUg0KK2lmIFsgIiRDT05GSUdfVFJBQ0VSIiA9ICJ5IiBdOyB0aGVuDQor
ICBpbnQgJyAgdHJhY2UgcmluZ2J1ZmZlciBzaXplIChwb3dlciBvZiAyISkn
IENPTkZJR19UUkFDRV9TSVpFIDE2Mzg0DQorZmkNCiBlbmRtZW51DQpkaWZm
IC11ck4gbGludXgtcHJlLTIuMS40OC00L2FyY2gvaTM4Ni9rZXJuZWwvZW50
cnkuUyBsaW51eC1wcmUtMi4xLjQ4LTQudHJhY2VyL2FyY2gvaTM4Ni9rZXJu
ZWwvZW50cnkuUw0KLS0tIGxpbnV4LXByZS0yLjEuNDgtNC9hcmNoL2kzODYv
a2VybmVsL2VudHJ5LlMJVGh1IEp1biAyNiAyMTozMzozNiAxOTk3DQorKysg
bGludXgtcHJlLTIuMS40OC00LnRyYWNlci9hcmNoL2kzODYva2VybmVsL2Vu
dHJ5LlMJRnJpIEF1ZyAgOCAxMzoxMDoyMCAxOTk3DQpAQCAtNDIsNiArNDIs
NyBAQA0KIA0KICNpbmNsdWRlIDxsaW51eC9zeXMuaD4NCiAjaW5jbHVkZSA8
bGludXgvbGlua2FnZS5oPg0KKyNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4N
CiAjaW5jbHVkZSA8YXNtL3NlZ21lbnQuaD4NCiAjZGVmaW5lIEFTU0VNQkxZ
DQogI2luY2x1ZGUgPGFzbS9zbXAuaD4NCkBAIC0xNTgsOCArMTU5LDE4IEBA
DQogCWphZSBiYWRzeXMNCiAJdGVzdGIgJDB4MjAsZmxhZ3MoJWVieCkJCSMg
UEZfVFJBQ0VTWVMNCiAJam5lIHRyYWNlc3lzDQorI2lmZGVmIENPTkZJR19U
UkFDRVINCisJcHVzaGwgJWVheA0KKwljYWxsIFNZTUJPTF9OQU1FKG1jb3Vu
dCkNCisJcG9wbCAlZWF4DQorI2VuZGlmDQogCWNhbGwgU1lNQk9MX05BTUUo
c3lzX2NhbGxfdGFibGUpKCwlZWF4LDQpDQogCW1vdmwgJWVheCxFQVgoJWVz
cCkJCSMgc2F2ZSB0aGUgcmV0dXJuIHZhbHVlDQorI2lmZGVmIENPTkZJR19U
UkFDRVINCisJcHVzaGwgJWVheA0KKwljYWxsIFNZTUJPTF9OQU1FKG1jb3Vu
dCkNCisJcG9wbCAlZWF4DQorI2VuZGlmDQogCUFMSUdODQogCS5nbG9ibCBy
ZXRfZnJvbV9zeXNfY2FsbA0KIAkuZ2xvYmwgcmV0X2Zyb21faW50cg0KZGlm
ZiAtdXJOIGxpbnV4LXByZS0yLjEuNDgtNC9hcmNoL2kzODYva2VybmVsL2ly
cS5jIGxpbnV4LXByZS0yLjEuNDgtNC50cmFjZXIvYXJjaC9pMzg2L2tlcm5l
bC9pcnEuYw0KLS0tIGxpbnV4LXByZS0yLjEuNDgtNC9hcmNoL2kzODYva2Vy
bmVsL2lycS5jCVR1ZSBKdWwgIDEgMDA6NTc6MDQgMTk5Nw0KKysrIGxpbnV4
LXByZS0yLjEuNDgtNC50cmFjZXIvYXJjaC9pMzg2L2tlcm5lbC9pcnEuYwlG
cmkgQXVnICA4IDEzOjEwOjIwIDE5OTcNCkBAIC0yOCw2ICsyOCw3IEBADQog
I2luY2x1ZGUgPGxpbnV4L3NtcC5oPg0KICNpbmNsdWRlIDxsaW51eC9zbXBf
bG9jay5oPg0KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+DQorI2luY2x1ZGUg
PGxpbnV4L3Byb2ZpbGVyLmg+DQogDQogI2luY2x1ZGUgPGFzbS9zeXN0ZW0u
aD4NCiAjaW5jbHVkZSA8YXNtL2lvLmg+DQpAQCAtNTUyLDYgKzU1Myw3IEBA
DQogCQlpZiAoYmhfYWN0aXZlICYgYmhfbWFzaykNCiAJCQlkb19ib3R0b21f
aGFsZigpOw0KIAl9DQorCW1jb3VudCgpOw0KIH0NCiANCiBpbnQgc2V0dXBf
eDg2X2lycShpbnQgaXJxLCBzdHJ1Y3QgaXJxYWN0aW9uICogbmV3KQ0KZGlm
ZiAtdXJOIGxpbnV4LXByZS0yLjEuNDgtNC9hcmNoL2kzODYva2VybmVsL3Ry
YXBzLmMgbGludXgtcHJlLTIuMS40OC00LnRyYWNlci9hcmNoL2kzODYva2Vy
bmVsL3RyYXBzLmMNCi0tLSBsaW51eC1wcmUtMi4xLjQ4LTQvYXJjaC9pMzg2
L2tlcm5lbC90cmFwcy5jCVR1ZSBKdW4gMTcgMDE6MzU6NTMgMTk5Nw0KKysr
IGxpbnV4LXByZS0yLjEuNDgtNC50cmFjZXIvYXJjaC9pMzg2L2tlcm5lbC90
cmFwcy5jCUZyaSBBdWcgIDggMTM6NDA6NDQgMTk5Nw0KQEAgLTI0LDYgKzI0
LDcgQEANCiAjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4NCiAjaW5jbHVk
ZSA8bGludXgvaW5pdC5oPg0KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPg0K
KyNpbmNsdWRlIDxsaW51eC9wcm9maWxlci5oPg0KIA0KICNpbmNsdWRlIDxh
c20vc3lzdGVtLmg+DQogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+DQpAQCAt
MTE3LDEzICsxMTgsNjQgQEANCiAjZGVmaW5lIFZNQUxMT0NfT0ZGU0VUICg4
KjEwMjQqMTAyNCkNCiAjZGVmaW5lIE1PRFVMRV9SQU5HRSAoOCoxMDI0KjEw
MjQpDQogDQorI2lmZGVmIENPTkZJR19UUkFDRVINCitpbmxpbmUgdm9pZCBw
cmludF9jYWxsX3RyYWNlX2V4YWN0IChzdHJ1Y3QgcHRfcmVncyAqIHJlZ3Mp
DQorew0KKwlpbnQgaT0xOw0KKwl1bnNpZ25lZCBsb25nICp0aGlzX3N0YWNr
LCAqcHJldl9zdGFjaywgcHJldl9hZGRyLCAqcHJldl9icCwgZnJhbWVzaXpl
Ow0KKw0KKwlwcmludGsoIlxuQ2FsbCBUcmFjZTogIik7DQorDQorCS8qDQor
CSAqIHRoZSBzdGFjayBsYXlvdXQ6ICAgLy0tLS0tICp0aGlzX3N0YWNrDQor
CSAqICAgICAgICAgICAgICAgICAgICBWDQorCSAqICAgW3RoaXNfZnJhbWVd
W3ByZXZfYnBdW3ByZXZfYWRkcl1bcHJldl9mcmFtZV1bLi4uXQ0KKwkgKi8N
CisNCisJLyoNCisJICogRklYTUU6IGknbSBydXRobGVzc2x5IGFidXNpbmcg
bGluZWFyIG1hcHBpbmcgb24gaTM4Ng0KKwkgKi8NCisNCisJdGhpc19zdGFj
ayA9ICh1bnNpZ25lZCBsb25nICopIHJlZ3MtPmVicDsNCisJZnJhbWVzaXpl
PTA7DQorDQorCXdoaWxlICgoKGxvbmcpIHRoaXNfc3RhY2sgJiA0MDk1KSAh
PSAwKSB7DQorCQlwcmV2X2FkZHIgPSAqKHRoaXNfc3RhY2srMSk7DQorDQor
CQlpZiAoaSAmJiAoKGkgJSA4KSA9PSAwKSkNCisJCQlwcmludGsoIlxuICAg
ICAgICIpOw0KKwkJcHJpbnRrKCJbPCUwOGx4PiglbHUpXSAiLCBwcmV2X2Fk
ZHIsIGZyYW1lc2l6ZSk7DQorCQlpKys7DQorDQorCQlwcmV2X2JwID0gKHVu
c2lnbmVkIGxvbmcgKikoKnRoaXNfc3RhY2spOw0KKwkJcHJldl9zdGFjayA9
IHRoaXNfc3RhY2s7DQorCQl0aGlzX3N0YWNrID0gcHJldl9icDsNCisNCisJ
CWlmICgNCisJCQkoKHVuc2lnbmVkIGxvbmcpdGhpc19zdGFjayA8IDQwOTYr
KHVuc2lnbmVkIGxvbmcpY3VycmVudCkgfHwNCisJCQkoKHVuc2lnbmVkIGxv
bmcpdGhpc19zdGFjayA+IDQwOTYrKHVuc2lnbmVkIGxvbmcpY3VycmVudCs0
MDg4KQ0KKwkJCXx8IGk+MjAwICkgew0KKw0KKwkJCWlmICgodW5zaWduZWQg
bG9uZyl0aGlzX3N0YWNrPDB4YzAwMDAwMDBVTCkNCisJCQkJYnJlYWs7DQor
DQorCQkJcHJpbnRrKCJXQVJOSU5HOiBzb21ldGhpbmcgZmlzaHkgd2l0aCB0
aGUgc3RhY2sgZnJhbWU/XG4iKTsNCisJCQlwcmludGsoInRoaXNfc3RhY2s6
IFs8JTA4bHg+XVxuIiwgKHVuc2lnbmVkIGxvbmcpdGhpc19zdGFjayk7DQor
CQkJcHJpbnRrKCJpOiAlZC5cbiIsIGkpOw0KKwkJCWJyZWFrOw0KKwkJfQ0K
KwkJZnJhbWVzaXplID0gKHVuc2lnbmVkIGxvbmcpdGhpc19zdGFjay0odW5z
aWduZWQgbG9uZylwcmV2X3N0YWNrOw0KKwl9DQorCXByaW50X2VtZXJnZW5j
eV90cmFjZSgpOw0KK30NCisjZW5kaWYNCisNCiBzdGF0aWMgdm9pZCBzaG93
X3JlZ2lzdGVycyhzdHJ1Y3QgcHRfcmVncyAqcmVncykNCiB7DQogCWludCBp
Ow0KIAl1bnNpZ25lZCBsb25nIGVzcDsNCiAJdW5zaWduZWQgc2hvcnQgc3M7
DQotCXVuc2lnbmVkIGxvbmcgKnN0YWNrLCBhZGRyLCBtb2R1bGVfc3RhcnQs
IG1vZHVsZV9lbmQ7DQotCWV4dGVybiBjaGFyIF9zdGV4dCwgX2V0ZXh0Ow0K
Kwl1bnNpZ25lZCBsb25nICpzdGFjazsNCiANCiAJZXNwID0gKHVuc2lnbmVk
IGxvbmcpICZyZWdzLT5lc3A7DQogCXNzID0gS0VSTkVMX0RTOw0KQEAgLTE1
MCw4ICsyMDIsMjAgQEANCiAJCQlwcmludGsoIlxuICAgICAgICIpOw0KIAkJ
cHJpbnRrKCIlMDhseCAiLCBnZXRfc2VnX2xvbmcoc3Msc3RhY2srKykpOw0K
IAl9DQorDQorLyoNCisgKiBJZiBkZWJ1Z2dpbmcgaXMgc3dpdGNoZWQgb24g
dGhlbiB3ZSBjYW4gd2FsayB0aGUgc3RhY2sgZnJhbWUuIE90aGVyd2lzZSB3
ZQ0KKyAqIGNhbiBvbmx5IGd1ZXNzLg0KKyAqLw0KKyNpZmRlZiBDT05GSUdf
VFJBQ0VSDQorCXByaW50X2NhbGxfdHJhY2VfZXhhY3QocmVncyk7DQorI2Vs
c2UNCit7DQorCXVuc2lnbmVkIGxvbmcgbW9kdWxlX3N0YXJ0LCBtb2R1bGVf
ZW5kLCBhZGRyOw0KKyAgICAgICAgZXh0ZXJuIGNoYXIgX3N0ZXh0LCBfZXRl
eHQ7DQorDQogCXByaW50aygiXG5DYWxsIFRyYWNlOiAiKTsNCi0Jc3RhY2sg
PSAodW5zaWduZWQgbG9uZyAqKSBlc3A7DQorCXN0YWNrID0gKHVuc2lnbmVk
IGxvbmcgKikgJnJlZ3MtPmVzcDsNCiAJaSA9IDE7DQogCW1vZHVsZV9zdGFy
dCA9IFBBR0VfT0ZGU0VUICsgKG1heF9tYXBuciA8PCBQQUdFX1NISUZUKTsN
CiAJbW9kdWxlX3N0YXJ0ID0gKChtb2R1bGVfc3RhcnQgKyBWTUFMTE9DX09G
RlNFVCkgJiB+KFZNQUxMT0NfT0ZGU0VULTEpKTsNCkBAIC0xNzUsNiArMjM5
LDkgQEANCiAJCQlpKys7DQogCQl9DQogCX0NCit9DQorI2VuZGlmDQorDQog
CXByaW50aygiXG5Db2RlOiAiKTsNCiAJZm9yKGk9MDtpPDIwO2krKykNCiAJ
CXByaW50aygiJTAyeCAiLDB4ZmYgJiBnZXRfc2VnX2J5dGUocmVncy0+eGNz
ICYgMHhmZmZmLChpKyhjaGFyICopcmVncy0+ZWlwKSkpOw0KZGlmZiAtdXJO
IGxpbnV4LXByZS0yLjEuNDgtNC9hcmNoL2kzODYvbW0vZmF1bHQuYyBsaW51
eC1wcmUtMi4xLjQ4LTQudHJhY2VyL2FyY2gvaTM4Ni9tbS9mYXVsdC5jDQot
LS0gbGludXgtcHJlLTIuMS40OC00L2FyY2gvaTM4Ni9tbS9mYXVsdC5jCU1v
biBKdWwgMTQgMTk6NDA6MTMgMTk5Nw0KKysrIGxpbnV4LXByZS0yLjEuNDgt
NC50cmFjZXIvYXJjaC9pMzg2L21tL2ZhdWx0LmMJRnJpIEF1ZyAgOCAxMzox
MDoyMCAxOTk3DQpAQCAtMTYsNiArMTYsNyBAQA0KICNpbmNsdWRlIDxsaW51
eC9tbS5oPg0KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4NCiAjaW5jbHVkZSA8
bGludXgvc21wX2xvY2suaD4NCisjaW5jbHVkZSA8bGludXgvcHJvZmlsZXIu
aD4NCiANCiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPg0KICNpbmNsdWRlIDxh
c20vdWFjY2Vzcy5oPg0KQEAgLTIxMyw0ICsyMTQsNSBAQA0KIAlkb19leGl0
KFNJR0tJTEwpOw0KIG91dDoNCiAJdW5sb2NrX2tlcm5lbCgpOw0KKwltY291
bnQoKTsNCiB9DQpkaWZmIC11ck4gbGludXgtcHJlLTIuMS40OC00L2ZzL3By
b2MvYXJyYXkuYyBsaW51eC1wcmUtMi4xLjQ4LTQudHJhY2VyL2ZzL3Byb2Mv
YXJyYXkuYw0KLS0tIGxpbnV4LXByZS0yLjEuNDgtNC9mcy9wcm9jL2FycmF5
LmMJVGh1IEF1ZyAgNyAwNjozMjo0NCAxOTk3DQorKysgbGludXgtcHJlLTIu
MS40OC00LnRyYWNlci9mcy9wcm9jL2FycmF5LmMJRnJpIEF1ZyAgOCAxMzox
MDoyMCAxOTk3DQpAQCAtMjgsNiArMjgsOSBAQA0KICAqDQogICogWXZlcyBB
cnJvdXllICAgICAgOiAgcmVtb3ZlIHJlbW92YWwgb2YgdHJhaWxpbmcgc3Bh
Y2VzIGluIGdldF9hcnJheS4NCiAgKgkJCTxZdmVzLkFycm91eWVAbWFyaW4u
ZmRuLmZyPg0KKyAqDQorICogSW5nbyBNb2xuYXIgICAgICAgOiAga2VybmVs
IHRyYWNlci4NCisgKiAgICAgICAgICAgICAgICAgICAgICA8aW5nby5tb2xu
YXJAc2llbWVucy5hdD4NCiAgKi8NCiANCiAjaW5jbHVkZSA8bGludXgvdHlw
ZXMuaD4NCkBAIC00OCw2ICs1MSw3IEBADQogI2luY2x1ZGUgPGxpbnV4L3N3
YXAuaD4NCiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPg0KICNpbmNsdWRlIDxs
aW51eC9zbXAuaD4NCisjaW5jbHVkZSA8bGludXgvcHJvZmlsZXIuaD4NCiAN
CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4NCiAjaW5jbHVkZSA8YXNtL3Bn
dGFibGUuaD4NCkBAIC0xOTMsNiArMTk3LDY5IEBADQogCSZwcm9jX3Byb2Zp
bGVfb3BlcmF0aW9ucywgDQogfTsNCiANCisjaWZkZWYgQ09ORklHX1RSQUNF
Ug0KKw0KKy8qDQorICogVGhpcyBmdW5jdGlvbiBhY2Nlc3NlcyBrZXJuZWwg
dHJhY2VyIGluZm9ybWF0aW9uLiBUaGUgcmV0dXJuZWQgZGF0YSBpcw0KKyAq
IGJpbmFyeTogdGhlIHNhbXBsaW5nIHN0ZXAgYW5kIHRoZSBhY3R1YWwgY29u
dGVudHMgb2YgdGhlIHRyYWNlDQorICogcmluZ2J1ZmZlci4gVXNlIG9mIHRo
ZSBwcm9ncmFtICdrdHJhY2UnIGlzIHJlY29tbWVuZGVkIGluIG9yZGVyIHRv
DQorICogZ2V0IG1lYW5pbmdmdWwgaW5mbyBvdXQgb2YgdGhlc2UgZGF0YS4N
CisgKi8NCitzdGF0aWMgbG9uZyByZWFkX3RyYWNlKHN0cnVjdCBpbm9kZSAq
aW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLA0KKwljaGFyICpidWYsIHVuc2ln
bmVkIGxvbmcgY291bnQpDQorew0KKwl1bnNpZ25lZCBsb25nIHAgPSBmaWxl
LT5mX3BvcywgbGVmdDsNCisJdW5zaWduZWQgbG9uZyBmbGFnczsNCisNCisJ
c2F2ZV9mbGFncyhmbGFncyk7DQorCWNsaSgpOw0KKw0KKwkvKiBDYWxpYnJh
dGUgdGhlIHRyYWNlciAqLw0KKwltY291bnRfaW50ZXJuYWwoLTEsIC0xKTsN
CisJbWNvdW50X2ludGVybmFsKC0xLCAtMSk7DQorCW1jb3VudF9pbnRlcm5h
bCgtMSwgLTEpOw0KKwltY291bnRfaW50ZXJuYWwoLTEsIC0xKTsNCisNCisJ
aWYgKHAgPj0gc2l6ZW9mKHRyYWNlX3RhYmxlKSkNCisJCWNvdW50ID0gMDsN
CisJZWxzZSBpZiAoY291bnQgPiBzaXplb2YodHJhY2VfdGFibGUpIC0gcCkN
CisJCWNvdW50ID0gc2l6ZW9mKHRyYWNlX3RhYmxlKSAtIHA7DQorDQorCWxl
ZnQgPSBjb3B5X3RvX3VzZXIoYnVmLCBwICsgKGNoYXIgKikmdHJhY2VfdGFi
bGUsIGNvdW50KTsNCisNCisJcmVzdG9yZV9mbGFncyhmbGFncyk7DQorDQor
CWlmIChjb3VudCAmJiBsZWZ0ID09IGNvdW50KQ0KKwkJcmV0dXJuIC1FRkFV
TFQ7DQorDQorCWZpbGUtPmZfcG9zICs9IGNvdW50IC0gbGVmdDsNCisJcmV0
dXJuIGNvdW50IC0gbGVmdDsNCit9DQorDQorLyoNCisgKiBXcml0aW5nIHRv
IC9wcm9jL3RyYWNlIHJlc2V0cyB0aGUgY291bnRlcnMuIERvZXNudCBtYWtl
IG11Y2ggc2Vuc2UNCisgKiBhcyBpdCdzIGEgcmluZ2J1ZmZlciwgYnV0IHdl
IGRvIGl0IGFueXdheXMsIGl0IG1pZ2h0IG1ha2Ugc2Vuc2UgZm9yDQorICog
ZG9pbmcgc2hvcnQgdGVybSB0cmFjZXMuDQorICovDQorDQorc3RhdGljIGxv
bmcgd3JpdGVfdHJhY2Uoc3RydWN0IGlub2RlICogaW5vZGUsIHN0cnVjdCBm
aWxlICogZmlsZSwNCisJY29uc3QgY2hhciAqIGJ1ZiwgdW5zaWduZWQgbG9u
ZyBjb3VudCkNCit7DQorCW1lbXNldCh0cmFjZV90YWJsZS5lbnRyaWVzLCAw
LCBzaXplb2YodHJhY2VfdGFibGUuZW50cmllcykpOw0KKwlyZXR1cm4gY291
bnQ7DQorfQ0KKw0KK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHBy
b2NfdHJhY2Vfb3BlcmF0aW9ucyA9IHsNCisJTlVMTCwgICAgICAgICAgIC8q
IGxzZWVrICovDQorCXJlYWRfdHJhY2UsDQorCXdyaXRlX3RyYWNlLA0KK307
DQorDQorc3RydWN0IGlub2RlX29wZXJhdGlvbnMgcHJvY190cmFjZV9pbm9k
ZV9vcGVyYXRpb25zID0gew0KKwkmcHJvY190cmFjZV9vcGVyYXRpb25zLCAN
Cit9Ow0KKw0KKyNlbmRpZg0KIA0KIHN0YXRpYyBpbnQgZ2V0X2xvYWRhdmco
Y2hhciAqIGJ1ZmZlcikNCiB7DQpkaWZmIC11ck4gbGludXgtcHJlLTIuMS40
OC00L2ZzL3Byb2Mvcm9vdC5jIGxpbnV4LXByZS0yLjEuNDgtNC50cmFjZXIv
ZnMvcHJvYy9yb290LmMNCi0tLSBsaW51eC1wcmUtMi4xLjQ4LTQvZnMvcHJv
Yy9yb290LmMJVGh1IEF1ZyAgNyAwNjozMjo0NCAxOTk3DQorKysgbGludXgt
cHJlLTIuMS40OC00LnRyYWNlci9mcy9wcm9jL3Jvb3QuYwlGcmkgQXVnICA4
IDEzOjEwOjIwIDE5OTcNCkBAIC0xNyw2ICsxNyw3IEBADQogI2lmZGVmIENP
TkZJR19LRVJORUxEDQogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbGQuaD4NCiAj
ZW5kaWYNCisjaW5jbHVkZSA8bGludXgvcHJvZmlsZXIuaD4NCiANCiAvKg0K
ICAqIE9mZnNldCBvZiB0aGUgZmlyc3QgcHJvY2VzcyBpbiB0aGUgL3Byb2Mg
cm9vdCBkaXJlY3RvcnkuLg0KQEAgLTU0OCw2ICs1NDksMTMgQEANCiAJMCwg
JnByb2Nfb21pcnJfaW5vZGVfb3BlcmF0aW9ucw0KIH07DQogI2VuZGlmDQor
I2lmZGVmIENPTkZJR19UUkFDRVINCitzdGF0aWMgc3RydWN0IHByb2NfZGly
X2VudHJ5IHByb2Nfcm9vdF90cmFjZSA9IHsNCisJUFJPQ19UUkFDRSwgNSwg
InRyYWNlIiwNCisJU19JRlJFRyB8IFNfSVJVR08gfCBTX0lXVVNSLCAxLCAw
LCAwLA0KKwkwLCAmcHJvY190cmFjZV9pbm9kZV9vcGVyYXRpb25zDQorfTsN
CisjZW5kaWYNCiANCiB2b2lkIHByb2Nfcm9vdF9pbml0KHZvaWQpDQogew0K
QEAgLTYxMyw2ICs2MjEsMTAgQEANCiAjZW5kaWYNCiAJcHJvY19yZWdpc3Rl
cigmcHJvY19yb290LCAmcHJvY19yb290X3NsYWIpOw0KIA0KKyNpZmRlZiBD
T05GSUdfVFJBQ0VSDQorCXByb2NfcmVnaXN0ZXIoJnByb2Nfcm9vdCwgJnBy
b2Nfcm9vdF90cmFjZSk7DQorCXByb2Nfcm9vdF90cmFjZS5zaXplID0gQ09O
RklHX1RSQUNFX1NJWkUgKiBzaXplb2Yoc3RydWN0IHRyYWNlX2VudHJ5KTsN
CisjZW5kaWYNCiAJaWYgKHByb2Zfc2hpZnQpIHsNCiAJCXByb2NfcmVnaXN0
ZXIoJnByb2Nfcm9vdCwgJnByb2Nfcm9vdF9wcm9maWxlKTsNCiAJCXByb2Nf
cm9vdF9wcm9maWxlLnNpemUgPSAoMStwcm9mX2xlbikgKiBzaXplb2YodW5z
aWduZWQgbG9uZyk7DQpkaWZmIC11ck4gbGludXgtcHJlLTIuMS40OC00L2lu
Y2x1ZGUvYXNtLWkzODYvcHJvZmlsZXIuaCBsaW51eC1wcmUtMi4xLjQ4LTQu
dHJhY2VyL2luY2x1ZGUvYXNtLWkzODYvcHJvZmlsZXIuaA0KLS0tIGxpbnV4
LXByZS0yLjEuNDgtNC9pbmNsdWRlL2FzbS1pMzg2L3Byb2ZpbGVyLmgJVGh1
IEphbiAgMSAwMTowMDowMCAxOTcwDQorKysgbGludXgtcHJlLTIuMS40OC00
LnRyYWNlci9pbmNsdWRlL2FzbS1pMzg2L3Byb2ZpbGVyLmgJRnJpIEF1ZyAg
OCAxMzoxODoyNyAxOTk3DQpAQCAtMCwwICsxLDMyIEBADQorI2lmbmRlZiBf
TElOVVhfUFJPRklMRVJfQVNNX0gNCisjZGVmaW5lIF9MSU5VWF9QUk9GSUxF
Ul9BU01fSA0KKw0KKyNpbmNsdWRlIDxsaW51eC9wcm9maWxlci5oPg0KKw0K
Ky8qDQorICogW2tlcm5lbCB0cmFjZXJdDQorICoNCisgKiAgICB0aGlzIG1h
Y3JvIGdldHMgZmFzdCBhbiBhY2N1cmF0ZSB0aW1lIGFuZCBwdXRzIGl0IGlu
dG8gYSAnbG9uZyBsb25nJw0KKyAqICAgIHZhcmlhYmxlLiBJdCdzIHVzZWQg
YXMgYSB0cmFjZXIgdGltZXN0YW1wLiBDYW4gYmUgZW1wdHkgZGVmaW5lIGlm
DQorICogICAgeW91IGRvbnQgd2FudCB0aW1lc3RhbXBzLg0KKyAqLw0KKw0K
Kw0KKy8qDQorICogdW5kZWYgdGhpcyBpZiB5b3UgaGF2ZSBhIENQVSB0aGF0
IGRvZXNudCBrbm93IHRoZSBydGRzYyBpbnN0cnVjdGlvbi4NCisgKiBTZWUg
dGhlICd0c2MnIGZsYWcgaW4gdGhlIC9wcm9jL2NwdWluZm8gZmxhZ3MgZmll
bGQuDQorICovDQorDQorI2RlZmluZSBIQVZFX1JURFNDDQorDQorI2lmZGVm
IEhBVkVfUlREU0MNCisjZGVmaW5lIGdldF9wcm9maWxlcl90aW1lc3RhbXAo
KQkJCQlcDQorKHsgcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVz
OwkJCQlcDQorICAgX19hc21fXyBfX3ZvbGF0aWxlX18oIi5ieXRlIDB4MGYs
MHgzMSIgOiAiPUEiKF9fcmVzKSk7CVwNCisgICBfX3JlczsJCQkJCQkJXA0K
K30pDQorI2Vsc2UNCisjZGVmaW5lIGdldF9wcm9maWxlcl90aW1lc3RhbXAo
KSAoeyAwOyB9KQ0KKyNlbmRpZg0KKw0KKyNlbmRpZgkvKiBfTElOVVhfUFJP
RklMRVJfQVNNX0ggKi8NCmRpZmYgLXVyTiBsaW51eC1wcmUtMi4xLjQ4LTQv
aW5jbHVkZS9saW51eC9pbml0LmggbGludXgtcHJlLTIuMS40OC00LnRyYWNl
ci9pbmNsdWRlL2xpbnV4L2luaXQuaA0KLS0tIGxpbnV4LXByZS0yLjEuNDgt
NC9pbmNsdWRlL2xpbnV4L2luaXQuaAlUaHUgQXByIDI0IDA0OjAxOjI5IDE5
OTcNCisrKyBsaW51eC1wcmUtMi4xLjQ4LTQudHJhY2VyL2luY2x1ZGUvbGlu
dXgvaW5pdC5oCUZyaSBBdWcgIDggMTM6MTA6MjEgMTk5Nw0KQEAgLTM2LDcg
KzM2LDcgQEANCiAgKiB3aXRoIG1vZHVsZSBsaW5raW5nLg0KICAqLw0KIA0K
LSNpZm5kZWYgTU9EVUxFDQorI2lmICFkZWZpbmVkKE1PRFVMRSkgJiYgIWRl
ZmluZWQoRElTQUJMRV9JTklURlVOQykNCiAjaW5jbHVkZSA8YXNtL2luaXQu
aD4NCiAjZWxzZQ0KICNkZWZpbmUgX19pbml0DQpkaWZmIC11ck4gbGludXgt
cHJlLTIuMS40OC00L2luY2x1ZGUvbGludXgvcHJvY19mcy5oIGxpbnV4LXBy
ZS0yLjEuNDgtNC50cmFjZXIvaW5jbHVkZS9saW51eC9wcm9jX2ZzLmgNCi0t
LSBsaW51eC1wcmUtMi4xLjQ4LTQvaW5jbHVkZS9saW51eC9wcm9jX2ZzLmgJ
VGh1IEF1ZyAgNyAwNjozNjo0NyAxOTk3DQorKysgbGludXgtcHJlLTIuMS40
OC00LnRyYWNlci9pbmNsdWRlL2xpbnV4L3Byb2NfZnMuaAlGcmkgQXVnICA4
IDEzOjE3OjQ4IDE5OTcNCkBAIC01MSw3ICs1MSw4IEBADQogCVBST0NfSEFS
RFdBUkUsDQogCVBST0NfU0xBQklORk8sDQogCVBST0NfUEFSUE9SVCwNCi0J
UFJPQ19PTUlSUiAvKiB3aGV0aGVyIGVuYWJsZWQgb3Igbm90ICovDQorCVBS
T0NfT01JUlIsIC8qIHdoZXRoZXIgZW5hYmxlZCBvciBub3QgKi8NCisJUFJP
Q19UUkFDRSAvKiB3aGV0aGVyIGVuYWJsZWQgb3Igbm90ICovDQogfTsNCiAN
CiBlbnVtIHBpZF9kaXJlY3RvcnlfaW5vcyB7DQpAQCAtMzU1LDYgKzM1Niw3
IEBADQogZXh0ZXJuIHN0cnVjdCBpbm9kZV9vcGVyYXRpb25zIHByb2NfYXJy
YXlsb25nX2lub2RlX29wZXJhdGlvbnM7DQogZXh0ZXJuIHN0cnVjdCBpbm9k
ZV9vcGVyYXRpb25zIHByb2Nfa2NvcmVfaW5vZGVfb3BlcmF0aW9uczsNCiBl
eHRlcm4gc3RydWN0IGlub2RlX29wZXJhdGlvbnMgcHJvY19wcm9maWxlX2lu
b2RlX29wZXJhdGlvbnM7DQorZXh0ZXJuIHN0cnVjdCBpbm9kZV9vcGVyYXRp
b25zIHByb2NfdHJhY2VfaW5vZGVfb3BlcmF0aW9uczsNCiBleHRlcm4gc3Ry
dWN0IGlub2RlX29wZXJhdGlvbnMgcHJvY19rbXNnX2lub2RlX29wZXJhdGlv
bnM7DQogZXh0ZXJuIHN0cnVjdCBpbm9kZV9vcGVyYXRpb25zIHByb2NfbGlu
a19pbm9kZV9vcGVyYXRpb25zOw0KIGV4dGVybiBzdHJ1Y3QgaW5vZGVfb3Bl
cmF0aW9ucyBwcm9jX2ZkX2lub2RlX29wZXJhdGlvbnM7DQpkaWZmIC11ck4g
bGludXgtcHJlLTIuMS40OC00L2luY2x1ZGUvbGludXgvcHJvZmlsZXIuaCBs
aW51eC1wcmUtMi4xLjQ4LTQudHJhY2VyL2luY2x1ZGUvbGludXgvcHJvZmls
ZXIuaA0KLS0tIGxpbnV4LXByZS0yLjEuNDgtNC9pbmNsdWRlL2xpbnV4L3By
b2ZpbGVyLmgJVGh1IEphbiAgMSAwMTowMDowMCAxOTcwDQorKysgbGludXgt
cHJlLTIuMS40OC00LnRyYWNlci9pbmNsdWRlL2xpbnV4L3Byb2ZpbGVyLmgJ
RnJpIEF1ZyAgOCAxMzoxNzo1MiAxOTk3DQpAQCAtMCwwICsxLDQyIEBADQor
I2lmbmRlZiBfTElOVVhfUFJPRklMRVJfSA0KKyNkZWZpbmUgX0xJTlVYX1BS
T0ZJTEVSX0gNCisNCisjaW5jbHVkZSA8bGludXgvY29uZmlnLmg+DQorDQor
ZXh0ZXJuIHZvaWQgbWNvdW50ICh2b2lkKTsNCisNCitzdHJ1Y3QgdHJhY2Vf
ZW50cnkgew0KKyAgICAgICAgdW5zaWduZWQgbG9uZyBwYzsNCisgICAgICAg
IHVuc2lnbmVkIGxvbmcgdGltZXN0YW1wOw0KK307DQorDQorI2lmZGVmIF9f
S0VSTkVMX18NCisjaWZkZWYgQ09ORklHX1RSQUNFUg0KKw0KKyNkZWZpbmUg
VFJBQ0VfTUFTSyAoQ09ORklHX1RSQUNFX1NJWkUtMSkNCisNCisNCitleHRl
cm4gc3RydWN0IHRyYWNlX3RhYmxlIHsNCisJdW5zaWduZWQgbG9uZyB0YWJs
ZV9zaXplOw0KKwlzdHJ1Y3QgdHJhY2VfZW50cnkgZW50cmllc1tDT05GSUdf
VFJBQ0VfU0laRV07DQorfSB0cmFjZV90YWJsZTsNCisNCitleHRlcm4gaW50
IG1jb3VudF9yZWFkeTsNCitleHRlcm4gdm9pZCBtY291bnRfaW50ZXJuYWwo
dW5zaWduZWQgbG9uZyByZXRfYWRkciwgdW5zaWduZWQgbG9uZyBzZWxmX2Fk
ZHIpOw0KK2V4dGVybiBpbnQgdHJhY2VyX3JlYWR5Ow0KKw0KKy8qDQorICog
ZGllX2lmX2tlcm5lbCgpIHVzZXMgdGhpcyB0byAnZXh0ZW5kJyB0aGUgc3Rh
Y2sgdHJhY2UgZ2l2ZW4gaW4gYW4gT29wcw0KKyAqIG1lc3NhZ2UuIFlvdSBj
YW4gdXNlIHRoaXMgd2hlbiBkZWJ1Z2dpbmcgc3BlY2lhbCBjb2RlLCBhcyBh
IGRlYnVnZ2luZyBhaWQuDQorICovDQordm9pZCBwcmludF9lbWVyZ2VuY3lf
dHJhY2UgKHZvaWQpOw0KKw0KKyNlbHNlIC8qIENPTkZJR19UUkFDRVIgKi8N
CisNCisjZGVmaW5lIG1jb3VudCgpDQorDQorI2VuZGlmIC8qIENPTkZJR19U
UkFDRVIgKi8NCisjZW5kaWYgLyogX19LRVJORUxfXyAqLw0KKw0KKw0KKyNl
bmRpZgkvKiBfTElOVVhfUFJPRklMRVJfSCAqLw0KZGlmZiAtdXJOIGxpbnV4
LXByZS0yLjEuNDgtNC9pbml0L21haW4uYyBsaW51eC1wcmUtMi4xLjQ4LTQu
dHJhY2VyL2luaXQvbWFpbi5jDQotLS0gbGludXgtcHJlLTIuMS40OC00L2lu
aXQvbWFpbi5jCVRodSBBdWcgIDcgMDY6MzI6NDggMTk5Nw0KKysrIGxpbnV4
LXByZS0yLjEuNDgtNC50cmFjZXIvaW5pdC9tYWluLmMJRnJpIEF1ZyAgOCAx
MzoxMDoyMSAxOTk3DQpAQCAtMjI2LDYgKzIyNiwxMCBAQA0KIGV4dGVybiB2
b2lkIGlwY19pbml0KHZvaWQpOw0KICNlbmRpZg0KIA0KKyNpZmRlZiBDT05G
SUdfVFJBQ0VSDQorZXh0ZXJuIHZvaWQgbWNvdW50X2luaXQodm9pZCk7DQor
I2VuZGlmDQorDQogI2lmZGVmIF9fc3BhcmNfXw0KIGV4dGVybiBpbnQgc2Vy
aWFsX2NvbnNvbGU7DQogI2VuZGlmDQpAQCAtOTIwLDYgKzkyNCw5IEBADQog
I2VuZGlmDQogI2lmZGVmIENPTkZJR19TWVNDVEwNCiAJc3lzY3RsX2luaXQo
KTsNCisjZW5kaWYNCisjaWZkZWYgQ09ORklHX1RSQUNFUg0KKwltY291bnRf
aW5pdCgpOw0KICNlbmRpZg0KIAkvKiANCiAJICoJV2UgY291bnQgb24gdGhl
IGluaXRpYWwgdGhyZWFkIGdvaW5nIG9rIA0KZGlmZiAtdXJOIGxpbnV4LXBy
ZS0yLjEuNDgtNC9rZXJuZWwvTWFrZWZpbGUgbGludXgtcHJlLTIuMS40OC00
LnRyYWNlci9rZXJuZWwvTWFrZWZpbGUNCi0tLSBsaW51eC1wcmUtMi4xLjQ4
LTQva2VybmVsL01ha2VmaWxlCVdlZCBKYW4gMTAgMDg6Mjc6MzkgMTk5Ng0K
KysrIGxpbnV4LXByZS0yLjEuNDgtNC50cmFjZXIva2VybmVsL01ha2VmaWxl
CUZyaSBBdWcgIDggMTM6MTA6MjEgMTk5Nw0KQEAgLTE5LDcgKzE5LDM5IEBA
DQogT1hfT0JKUyA9IGtzeW1zLm8NCiBlbmRpZg0KIA0KK2lmZXEgKCQoQ09O
RklHX1RSQUNFUikseSkNCitPX09CSlMgKz0gcHJvZmlsZXIubw0KK2VuZGlm
DQorDQogaW5jbHVkZSAkKFRPUERJUikvUnVsZXMubWFrZQ0KIA0KIHNjaGVk
Lm86IHNjaGVkLmMNCiAJJChDQykgJChDRkxBR1MpICQoUFJPRklMSU5HKSAt
Zm5vLW9taXQtZnJhbWUtcG9pbnRlciAtYyAkPA0KKw0KKyMgRklYTUU6IHRo
aXMgaXMgYSBoYWNrDQorDQorDQorTk9QUk9GSUxFX0NGTEFHUyA6PSAtV2Fs
bCAtV3N0cmljdC1wcm90b3R5cGVzIC1nIC1mbm8tb21pdC1mcmFtZS1wb2lu
dGVyIC1PMiAtYw0KKw0KK2lmZXEgKCQoU01QKSx5KQ0KK05PUFJPRklMRV9D
RkxBR1MgOj0gLURfX1NNUF9fICQoTk9QUk9GSUxFX0NGTEFHUykNCitlbmRp
Zg0KKw0KK2lmZXEgKCQoQ09ORklHX01PRFVMRVMpLHkpDQorTk9QUk9GSUxF
X0NGTEFHUyA6PSAtREVYUE9SVF9TWU1UQUIgJChOT1BST0ZJTEVfQ0ZMQUdT
KQ0KK2VuZGlmDQorDQorcHJvZmlsZXIubzogcHJvZmlsZXIuYw0KKwkkKEND
KSAkKE5PUFJPRklMRV9DRkxBR1MpICQ8DQorDQorDQorI2lmZXEgKCQoQ09O
RklHX01PRFVMRVMpLHkpDQorI2lmZXEgKCQoU01QKSx5KQ0KKyNwcm9maWxl
ci5vOiBwcm9maWxlci5jDQorIwkkKENDKSAtRF9fU01QX18gLURFWFBPUlRf
U1lNVEFCIC1XYWxsIC1Xc3RyaWN0LXByb3RvdHlwZXMgLWcgLWZuby1vbWl0
LWZyYW1lLXBvaW50ZXIgLU8yIC1jICQ8DQorI2Vsc2UNCisjCSQoQ0MpIC1E
RVhQT1JUX1NZTVRBQiAtV2FsbCAtV3N0cmljdC1wcm90b3R5cGVzIC1nIC1m
bm8tb21pdC1mcmFtZS1wb2ludGVyIC1PMiAtYyAkPA0KKyNlbmRpZg0KKyNl
bHNlDQorIwkkKENDKSAtRF9fU01QX18gLVdhbGwgLVdzdHJpY3QtcHJvdG90
eXBlcyAtZyAtZm5vLW9taXQtZnJhbWUtcG9pbnRlciAtTzIgLWMgJDwNCisj
ZW5kaWYNCmRpZmYgLXVyTiBsaW51eC1wcmUtMi4xLjQ4LTQva2VybmVsL2tz
eW1zLmMgbGludXgtcHJlLTIuMS40OC00LnRyYWNlci9rZXJuZWwva3N5bXMu
Yw0KLS0tIGxpbnV4LXByZS0yLjEuNDgtNC9rZXJuZWwva3N5bXMuYwlUaHUg
QXVnICA3IDA2OjMyOjQ4IDE5OTcNCisrKyBsaW51eC1wcmUtMi4xLjQ4LTQu
dHJhY2VyL2tlcm5lbC9rc3ltcy5jCUZyaSBBdWcgIDggMTM6MTA6MjEgMTk5
Nw0KQEAgLTcyLDYgKzcyLDkgQEANCiAjaW5jbHVkZSA8YXNtL3N0cmluZy5o
Pg0KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPg0KICNlbmRpZg0KKyNpZmRl
ZiBDT05GSUdfVFJBQ0VSDQorI2luY2x1ZGUgPGxpbnV4L3Byb2ZpbGVyLmg+
DQorI2VuZGlmDQogDQogZXh0ZXJuIGNoYXIgKmdldF9vcHRpb25zKGNoYXIg
KnN0ciwgaW50ICppbnRzKTsNCiBleHRlcm4gdm9pZCBzZXRfZGV2aWNlX3Jv
KGludCBkZXYsaW50IGZsYWcpOw0KQEAgLTM5Myw2ICszOTYsMTAgQEANCiAv
KiBiaW5mbXRfYW91dCAqLw0KIEVYUE9SVF9TWU1CT0woZ2V0X3dyaXRlX2Fj
Y2Vzcyk7DQogRVhQT1JUX1NZTUJPTChwdXRfd3JpdGVfYWNjZXNzKTsNCisN
CisjaWZkZWYgQ09ORklHX1RSQUNFUg0KK0VYUE9SVF9TWU1CT0wobWNvdW50
KTsNCisjZW5kaWYNCiANCiAjaWZkZWYgQ09ORklHX001ODZfQ09QWQ0KIC8q
IFBlbnRpdW0gbWVtY3B5ICovDQpkaWZmIC11ck4gbGludXgtcHJlLTIuMS40
OC00L2tlcm5lbC9wcm9maWxlci5jIGxpbnV4LXByZS0yLjEuNDgtNC50cmFj
ZXIva2VybmVsL3Byb2ZpbGVyLmMNCi0tLSBsaW51eC1wcmUtMi4xLjQ4LTQv
a2VybmVsL3Byb2ZpbGVyLmMJVGh1IEphbiAgMSAwMTowMDowMCAxOTcwDQor
KysgbGludXgtcHJlLTIuMS40OC00LnRyYWNlci9rZXJuZWwvcHJvZmlsZXIu
YwlGcmkgQXVnICA4IDEzOjEwOjIxIDE5OTcNCkBAIC0wLDAgKzEsMTA2IEBA
DQorLyoNCisgKiAgbGludXgva2VybmVsL3Byb2ZpbGVyLmMNCisgKg0KKyAq
ICBDb3B5cmlnaHQgKEMpIDE5OTcgIEluZ28gTW9sbmFyLCBSaWNoYXJkIEhl
bmRlcnNvbg0KKyAqDQorICogIFRoaXMgc291cmNlIGlzIGNvdmVyZWQgYnkg
dGhlIEdOVSBHUEwsIHRoZSBzYW1lIGFzIGFsbCBrZXJuZWwgc291cmNlcy4N
CisgKi8NCisNCisvKg0KKyAqICdwcm9maWxlci5jJyBpbXBsZW1lbnRzIHZh
cmlvdXMgcHJvZmlsaW5nIGhhY2tzLCBieSBhYnVzaW5nIHRoZSBwcm9maWxp
bmcNCisgKiAgaG9vayAnbWNvdW50JywgZ2VuZXJhdGVkIGJ5IEdDQyAtcGcN
CisgKg0KKyAqIEN1cnJlbnRseSB1c2VkIGZvcjoNCisgKg0KKyAqICAgLSBt
b25pdG9yaW5nIGtlcm5lbCBzdGFjayB1c2FnZSBhbmQgZ2VuZXJhdGluZyBv
b3BzZXMgd2hlbiBzdGFjayBvdmVyZmxvdw0KKyAqICAgLSBkZXRlY3Rpbmcg
c29mdHdhcmUgbG9ja3Vwcw0KKyAqICAgLSB0cmFjaW5nIHRoZSBrZXJuZWwN
CisgKg0KKyAqIEhhcyB0byBiZSBhIHNlcGFyYXRlIEMgbW9kdWxlLCBiZWNh
dXNlIHdlIGhhdmUgdG8gY29tcGlsZSBpdCB3aXRob3V0IC1wZywNCisgKiB0
byBhdm9pZCByZWN1cnNpb24uDQorICovDQorDQorI2luY2x1ZGUgPGxpbnV4
L2NvbmZpZy5oPg0KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCisjaW5j
bHVkZSA8bGludXgvc2NoZWQuaD4NCisjaW5jbHVkZSA8YXNtL3Byb2ZpbGVy
Lmg+DQorDQorLyoNCisgKiBHZW5lcmFsbHkgd2UgZGlzbGlrZSAjaWZkZWYn
cyBpbiBtYWluIG1vZHVsZXMsIGJ1dCB0aGVzZSBtY291bnQoKSBiYXNlZA0K
KyAqIGZlYXR1cmVzIGFyZSBpcyB0b28gcGVyZm9ybWFuY2Utc2Vuc2l0aXZl
IHRvIG1ha2UgdGhlbSBhbiBhbGwgb3Igbm90aGluZw0KKyAqIG9wdGlvbiwg
YW5kIHRvbyBzbWFsbCB0byBiZSBwdXQgaW50byBoZWFkZXIgZmlsZXMuIA0K
KyAqLw0KKw0KKy8qDQorICogRklYTUU6IFRoaXMgZ2xvYmFsIHRyYWNlIHJp
bmdidWZmZXIgY291bnRlciBpcyAoc2xpZ2h0bHkpIFNNUCBhbmQgSVJRIHVu
c2FmZQ0KKyAqICAgICAgICBjdXJyZW50bHkuIFRoZSBlZmZlY3Qgb2YgdGhp
cyBpcyB0aGF0IGlmIHRoZSBjb2RlIGdldHMgaW50ZXJydXB0ZWQgaW4NCisg
KiAgICAgICAgdGhlIHdyb25nIG1vbWVudCwgaXQgbWlnaHQgb3ZlcndyaXRl
IHRoZSBsYXN0IElSUSB0cmFjZSBlbnRyeSBhZnRlcg0KKyAqICAgICAgICB0
aGUgSVJRIGhhbmRsZXIgcmV0dXJucyB0byB0aGUgb3JpZ2luYWwgY29kZS4g
Y2xpKCkvc3RpKCkgaXMgcXVpdGUgb2YNCisgKiAgICAgICAgYW4gb3Zlcmtp
bGwgZm9yIHN1Y2ggYSBtaW5vciBpc3N1ZSwgYnV0IGlmIHlvdSd2ZSBnb3Qg
c29tZSBnb29kIGlkZWENCisgKiAgICAgICAgZmVlbCBmcmVlIHRvIHRlbGwg
bWUgLi4uDQorICovDQordW5zaWduZWQgaW50IGN1cnJfY2FsbDsNCisNCisj
aWZkZWYgQ09ORklHX1RSQUNFUg0KK3N0cnVjdCB0cmFjZV90YWJsZSB0cmFj
ZV90YWJsZSA9IHsgQ09ORklHX1RSQUNFX1NJWkUgfTsNCisjZW5kaWYNCisN
CisvKiBkZWFsIHdpdGggdG9vIGVhcmx5IGNhbGxzIHRvIG1jb3VudCgpIGFu
ZCByZWN1cnNpb24gKi8NCitpbnQgbWNvdW50X3JlYWR5PTA7DQorDQordm9p
ZCBtY291bnRfaW5pdCAodm9pZCkNCit7DQorCXByaW50aygiPG1jb3VudF9p
bml0KCkgZG9uZT5cbiIpOw0KKw0KKwkvKg0KKwkgKiBPaywgZnJvbSBub3cg
b24gaXQncyBmb3IgcmVhbDoNCisJICovDQorCW1jb3VudF9yZWFkeT0xOw0K
K30NCisNCisjaWZkZWYgX19pMzg2X18NCisvKg0KKyAqIEZJWE1FOiBkbyB0
aGlzIGluIHg4NiBhc3NlbWJseQ0KKyAqLw0KKw0KK3ZvaWQgbWNvdW50ICh2
b2lkKQ0KK3sNCisJbWNvdW50X2ludGVybmFsKDAsICh1bnNpZ25lZCBsb25n
KV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSk7DQorfQ0KKyNlbmRpZg0K
Kw0KKw0KK3ZvaWQgcHJpbnRfZW1lcmdlbmN5X3RyYWNlICh2b2lkKQ0KK3sN
CisJc3RydWN0IHRyYWNlX2VudHJ5ICp0Ow0KKwlpbnQgaTsNCisNCisJbWNv
dW50X3JlYWR5PTA7DQorCXByaW50ayAoIls8ZmZmZmZmZmY+XSAiKTsNCisN
CisvKg0KKyAqIFdlbGwsIDEwMCBlbnRyaWVzIGlzIHByZXR0eSBhcmJpdHJh
cnksIHNlZW1zIHRvIGJlIGEgcmVhc29uYWJsZSB2YWx1ZS4NCisgKi8NCisJ
Zm9yIChpPTA7IGk8MTAwOyBpKyspIHsNCisJCXQgPSAmdHJhY2VfdGFibGUu
ZW50cmllc1tjdXJyX2NhbGwtaV07DQorCQlwcmludGsgKCJbPCUwOGx4Pl0g
IiwgdC0+cGMpOw0KKwl9DQorCW1jb3VudF9yZWFkeT0xOw0KK30NCisNCisN
Cit2b2lkIG1jb3VudF9pbnRlcm5hbCh1bnNpZ25lZCBsb25nIHJldF9hZGRy
LCB1bnNpZ25lZCBsb25nIHNlbGZfYWRkcikNCit7DQorCWlmICghbWNvdW50
X3JlYWR5KQ0KKwkJcmV0dXJuOw0KKw0KKyNpZmRlZiBDT05GSUdfVFJBQ0VS
DQorCXsNCisJCXVuc2lnbmVkIGxvbmcgaWR4ID0gKGN1cnJfY2FsbD0oY3Vy
cl9jYWxsKzEpJlRSQUNFX01BU0spOw0KKwkJc3RydWN0IHRyYWNlX2VudHJ5
ICp0ID0gJnRyYWNlX3RhYmxlLmVudHJpZXNbaWR4XTsNCisNCisJCXQtPnBj
ID0gc2VsZl9hZGRyOw0KKwkJdC0+dGltZXN0YW1wID0gZ2V0X3Byb2ZpbGVy
X3RpbWVzdGFtcCgpOw0KKwl9DQorI2VuZGlmDQorfQ0KZGlmZiAtdXJOIGxp
bnV4LXByZS0yLjEuNDgtNC9rZXJuZWwvc29mdGlycS5jIGxpbnV4LXByZS0y
LjEuNDgtNC50cmFjZXIva2VybmVsL3NvZnRpcnEuYw0KLS0tIGxpbnV4LXBy
ZS0yLjEuNDgtNC9rZXJuZWwvc29mdGlycS5jCVdlZCBNYXkgMTQgMDc6NDE6
MjAgMTk5Nw0KKysrIGxpbnV4LXByZS0yLjEuNDgtNC50cmFjZXIva2VybmVs
L3NvZnRpcnEuYwlGcmkgQXVnICA4IDEzOjEwOjIxIDE5OTcNCkBAIC0xNyw2
ICsxNyw3IEBADQogI2luY2x1ZGUgPGxpbnV4L21tLmg+DQogI2luY2x1ZGUg
PGxpbnV4L3NtcC5oPg0KICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPg0K
KyNpbmNsdWRlIDxsaW51eC9wcm9maWxlci5oPg0KIA0KICNpbmNsdWRlIDxh
c20vc3lzdGVtLmg+DQogI2luY2x1ZGUgPGFzbS9pby5oPg0KQEAgLTcyLDQg
KzczLDUgQEANCiAJCX0NCiAJCXNvZnRpcnFfZW5kbG9jaygpOw0KIAl9DQor
CW1jb3VudCgpOw0KIH0NCg==
---876492614-819129120-871063526=:553--