updated BadRAM-patch for linux-2.4.20

Kristian Peters (kristian.peters@korseby.net)
Fri, 13 Dec 2002 23:37:41 +0100


This is a multi-part message in MIME format.

--Multipart_Fri__13_Dec_2002_23:37:41_+0100_0823a320
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

Hello.

Since Rick van Rein doesn't seem to update (and answer my mails) the BadRAM patch, I've done it myself.
Attached you can find a version which applies against linux-2.4.20.

Please use this patch only if you have broken RAM and thus encounter problems with it. The utility memtest86 will give you the addresses.

For further information refer Documentation/badram.txt which will be created by the patch.

*Kristian

:... [snd.science] ...:
:: _o)
:: http://www.korseby.net /\\
:: _\_V
:.........................:

--Multipart_Fri__13_Dec_2002_23:37:41_+0100_0823a320
Content-Type: application/octet-stream;
name="linux-2.4.20-BadRAM-kristian-2.patch"
Content-Disposition: attachment;
filename="linux-2.4.20-BadRAM-kristian-2.patch"
Content-Transfer-Encoding: base64

ZGlmZiAtcmF1TiBsaW51eC0yLjQuMjBfb3JpZy9DUkVESVRTIGxpbnV4LTIuNC4yMF9CYWRSQU0v
Q1JFRElUUwotLS0gbGludXgtMi40LjIwX29yaWcvQ1JFRElUUwlGcmkgTm92IDI5IDAwOjUzOjA4
IDIwMDIKKysrIGxpbnV4LTIuNC4yMF9CYWRSQU0vQ1JFRElUUwlGcmkgRGVjIDEzIDE2OjU0OjE1
IDIwMDIKQEAgLTIzMzksNiArMjMzOSwxMiBAQAogUzogVGVtcGUsIEFyaXpvbmEgODUyODIKIFM6
IFVTQQogCitOOiBLcmlzdGlhbiBQZXRlcnMKK0U6IGtyaXN0aWFuLnBldGVyc0Brb3JzZWJ5Lm5l
dAorRDogdXBkYXRlZCBCYWRSQU0gcGF0Y2ggKG9yaWdpbmFsbHkgZnJvbSBSaWNrIHZhbiBSZWlu
KSB0byBsaW51eCAyLjQuMjAKK1M6IFJvc3RvY2ssIEdlcm1hbnkKK1M6IEdlcm1hbnkKKwogTjog
S2lyayBQZXRlcnNlbgogRToga2lya0BzcGVha2Vhc3kub3JnCiBXOiBodHRwOi8vd3d3LnNwZWFr
ZWFzeS5vcmcvfmtpcmsvCkBAIC0yNDc2LDYgKzI0ODIsMTQgQEAKIFM6IE1hbHZlcm4sIFBlbm5z
eWx2YW5pYSAxOTM1NQogUzogVVNBCiAKK046IFJpY2sgdmFuIFJlaW4KK0U6IHZhbnJlaW5AY3Mu
dXR3ZW50ZS5ubAorVzogaHR0cDovL3d3dy5jcy51dHdlbnRlLm5sL352YW5yZWluCitEOiBNZW1v
cnksIHRoZSBCYWRSQU0gc3Vic3lzdGVtIGRlYWxpbmcgd2l0aCBzdGF0aWNhbGx5IGNoYWxsYW5n
ZWQgUkFNIG1vZHVsZXMuCitTOiBCaW5uZW5lcyA2NworUzogOTQwNyBDWCBBc3NlbgorUzogVGhl
IE5ldGhlcmxhbmRzCisKIE46IFN0ZWZhbiBSZWluYXVlcgogRTogc3RlcGFuQGxpbnV4LmRlCiBX
OiBodHRwOi8vd3d3LmZyZWlidXJnLmxpbnV4LmRlL35zdGVwYW4vCkBAIC0yNjc0LDYgKzI2ODgs
MTMgQEAKIE46IE1pY2hhZWwgU2NobWl0egogRToKIEQ6IE1hY2ludG9zaCBJREUgRHJpdmVyCisK
K046IE5pY28gU2NobW9pZ2wKK0U6IG5pY29Ad3JpdGVtYWlsLmNvbQorVzogaHR0cDovL3dlYnJ1
bS51bmktbWFubmhlaW0uZGUvbWF0aC9zY2htb2lnbC9saW51eC8KK0Q6IE1pZ3JhdGlvbiBvZiBC
YWRSQU0gcGF0Y2ggdG8gMi40LjQgc2VyaWVzICh3aXRoIFJpY2sgdmFuIFJlaW4pCitTOiBNYW5u
aGVpbSwgQlcsIEdlcm1hbnkKK1A6IDIwNDcvMzhGQzlFMDMgIDVEIERCIDA5IEU0IDNGIEYzIENE
IDA5IDc1IDU5IC0gMTEgMTcgOUMgMDMgNDYgRTMgMzggRkMgOUUgMDMKIAogTjogUGV0ZXIgRGUg
U2NocmlqdmVyCiBFOiBzdHVkMTFAY2M0Lmt1bGV1dmVuLmFjLmJlCmRpZmYgLXJhdU4gbGludXgt
Mi40LjIwX29yaWcvRG9jdW1lbnRhdGlvbi9Db25maWd1cmUuaGVscCBsaW51eC0yLjQuMjBfQmFk
UkFNL0RvY3VtZW50YXRpb24vQ29uZmlndXJlLmhlbHAKLS0tIGxpbnV4LTIuNC4yMF9vcmlnL0Rv
Y3VtZW50YXRpb24vQ29uZmlndXJlLmhlbHAJRnJpIE5vdiAyOSAwMDo1MzowOCAyMDAyCisrKyBs
aW51eC0yLjQuMjBfQmFkUkFNL0RvY3VtZW50YXRpb24vQ29uZmlndXJlLmhlbHAJRnJpIERlYyAx
MyAxNjo1Mjo0OSAyMDAyCkBAIC0yMTQzMiw2ICsyMTQzMiwyMSBAQAogICBUaGlzIG9wdGlvbiBh
bGxvd3MgeW91IHRvIHJ1biB0aGUga2VybmVsIHdpdGggZGF0YSBjYWNoZSBkaXNhYmxlZC4KICAg
U2F5IFkgaWYgeW91IGV4cGVyaWVuY2UgQ1BNIGxvY2stdXBzLgogCitXb3JrIGFyb3VuZCBiYWQg
c3BvdHMgaW4gUkFNCitDT05GSUdfQkFEUkFNCisgIFRoaXMgc21hbGwga2VybmVsIGV4dGVuc2lv
biBtYWtlcyBpdCBwb3NzaWJsZSB0byB1c2UgbWVtb3J5IGNoaXBzCisgIHdoaWNoIGFyZSBub3Qg
ZW50aXJlbHkgY29ycmVjdC4gSXQgd29ya3MgYnkgbmV2ZXIgYWxsb2NhdGluZyB0aGUKKyAgcGxh
Y2VzIHRoYXQgYXJlIHdyb25nLiBUaG9zZSBwbGFjZXMgYXJlIHNwZWNpZmllZCB3aXRoIHRoZSBi
YWRyYW0KKyAgYm9vdCBvcHRpb24gdG8gTElMTy4gUmVhZCAvdXNyL3NyYy9saW51eC9Eb2N1bWVu
dGF0aW9uL2JhZHJhbS50eHQKKyAgYW5kL29yIHZpc2l0IGh0dHA6Ly9ob21lLnpvbm5ldC5ubC92
YW5yZWluL2JhZHJhbSBmb3IgaW5mb3JtYXRpb24uCisgIAorICBUaGlzIG9wdGlvbiBjby1vcGVy
YXRlcyB3ZWxsIHdpdGggYSBzZWNvbmQgYm9vdCBvcHRpb24gZnJvbSBMSUxPCisgIHRoYXQgc3Rh
cnRzIG1lbXRlc3Q4Niwgd2hpY2ggaXMgYWJsZSB0byBhdXRvbWF0aWNhbGx5IHByb2R1Y2UgdGhl
CisgIHBhdHRlcm5zIGZvciB0aGUgY29tbWFuZGxpbmUgaW4gY2FzZSBvZiBtZW1vcnkgdHJvdWJs
ZS4KKworICBJdCBpcyBzYWZlIHRvIHNheSAnWScgaGVyZSwgYW5kIGl0IGlzIGFkdmlzZWQgYmVj
YXVzZSB0aGVyZSBpcyBubworICBwZXJmb3JtYW5jZSBpbXBhY3QuCisKICMKICMgbTY4ay1zcGVj
aWZpYyBrZXJuZWwgb3B0aW9ucwogIyBEb2N1bWVudGVkIGJ5IENocmlzIExhd3JlbmNlIDxtYWls
dG86cXVhbmdvQHRoZW1hbGwubmV0PiBldCBhbC4KQEAgLTI2NTU3LDcgKzI2NTcyLDcgQEAKICMg
TG9jYWxXb3JkczogIENyYW1GcyBDcmFtZnMgdWlkIGNyYW1mcyBBVk0ncyBrZXJuZWxjYXBpIFBD
SVYgY2RyZGFvIENkcGFyYW5vaWEKICMgTG9jYWxXb3JkczogIERNWCBEb21leCBkbXggd2VsbGlu
Z3RvbiBmdGRpIHNpbyBBY2N0b24gQmlsbGluZ3RvbiBDb3JlZ2EgRkV0ZXIKICMgTG9jYWxXb3Jk
czogIE1FTENPIExVQSBQTkEgTGlua3N5cyBTTkMgY2hrZHNrIEFXQUNTIFdlYmNhbSBSQU1GUyBS
YW1mcyByYW1mcwotIyBMb2NhbFdvcmRzOiAgcmFtZmlsZXMgTUFLRURFViBwdHkgV0RUUENJIEFQ
QSBhcGEKKyMgTG9jYWxXb3JkczogIHJhbWZpbGVzIE1BS0VERVYgcHR5IFdEVFBDSSBBUEEgYXBh
IEJhZFJBTSBiYWRyYW0gdmFucmVpbiB6b25uZXQKICMKICMgVGhlIGZvbGxvd2luZyBzZXRzIGVk
aXQgbW9kZXMgZm9yIEdOVSBFTUFDUwogIyBMb2NhbCBWYXJpYWJsZXM6CmRpZmYgLXJhdU4gbGlu
dXgtMi40LjIwX29yaWcvRG9jdW1lbnRhdGlvbi9iYWRyYW0udHh0IGxpbnV4LTIuNC4yMF9CYWRS
QU0vRG9jdW1lbnRhdGlvbi9iYWRyYW0udHh0Ci0tLSBsaW51eC0yLjQuMjBfb3JpZy9Eb2N1bWVu
dGF0aW9uL2JhZHJhbS50eHQJVGh1IEphbiAgMSAwMTowMDowMCAxOTcwCisrKyBsaW51eC0yLjQu
MjBfQmFkUkFNL0RvY3VtZW50YXRpb24vYmFkcmFtLnR4dAlGcmkgRGVjIDEzIDE2OjUyOjQ5IDIw
MDIKQEAgLTAsMCArMSwyNjYgQEAKK0lORk9STUFUSU9OIE9OIFVTSU5HIEJBRCBSQU0gTU9EVUxF
UworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0ludHJvZHVjdGlvbgor
CVJBTSBpcyBnZXR0aW5nIHNtYWxsZXIgYW5kIHNtYWxsZXIsIGFuZCBhcyBhIHJlc3VsdCwgYWxz
byBtb3JlIGFuZCBtb3JlCisJdnVsbmVyYWJsZS4gVGhpcyBtYWtlcyB0aGUgbWFudWZhY3R1cmlu
ZyBvZiBoYXJkd2FyZSBtb3JlIGV4cGVuc2l2ZSwKKwlzaW5jZSBhbiBleGNlc3NpdmUgYW1vdW50
IG9mIFJBTSBjaGlwcyBtdXN0IGJlIGRpc2NhcmRlZCBvbiBhY2NvdW50IG9mCisJYSBzaW5nbGUg
Y2VsbCB0aGF0IGlzIHdyb25nLiBTaW1pbGFybHksIHN0YXRpYyBkaXNjaGFyZ2UgbWF5IGRhbWFn
ZSBhCisJUkFNIG1vZHVsZSBmb3JldmVyLCB3aGljaCBpcyB1c3VhbGx5IHJlbWVkaWVkIGJ5IHJl
cGxhY2luZyBpdAorCWVudGlyZWx5LgorCisJVGhpcyBpcyBub3QgbmVjZXNzYXJ5LCBhcyB0aGUg
QmFkUkFNIGNvZGUgc2hvd3M6IEJ5IGluZm9ybWluZyB0aGUgTGludXgKKwlrZXJuZWwgd2hpY2gg
YWRkcmVzc2VzIGluIGEgUkFNIGFyZSBkYW1hZ2VkLCB0aGUga2VybmVsIHNpbXBseSBhdm9pZHMK
KwlldmVyIGFsbG9jYXRpbmcgc3VjaCBhZGRyZXNzZXMgYnV0IG1ha2VzIGFsbCB0aGUgcmVzdCBh
dmFpbGFibGUuCisKK1JlYXNvbnMgZm9yIHRoaXMgZmVhdHVyZQorCVRoZXJlIGFyZSBtYW55IHJl
YXNvbnMgd2h5IHRoaXMga2VybmVsIGZlYXR1cmUgaXMgdXNlZnVsOgorCS0gQ2hpcCBtYW51ZmFj
dHVyZSBpcyByZXNvdXJjZSBpbnRlbnNpdmU7IHdhc3RlIGxlc3MgYW5kIHNsZWVwIGJldHRlcgor
CS0gSXQncyBhbm90aGVyIGNoYW5jZSB0byBwcm9tb3RlIExpbnV4IGFzICJ0aGUgZmxleGlibGUg
T1MiCisJLSBTb21lIGxhcHRvcHMgaGF2ZSB0aGVpciBSQU0gc29sZGVyZWQgaW4uLi4gYW5kIHRo
ZW4gaXQgZmFpbHMhCisJLSBJdCdzIHBsYWluIGNvb2wgOy0pCisKK1J1bm5pbmcgZXhhbXBsZQor
CVRvIHJ1biB0aGlzIHByb2plY3QsIEkgd2FzIGdpdmVuIHR3byBESU1NcywgMzIgTUIgZWFjaC4g
T25lLCB0aGF0IHdlCisJc2hhbGwgdXNlIGFzIGEgcnVubmluZyBleGFtcGxlIGluIHRoaXMgdGV4
dCwgY29udGFpbmVkIDUxMiBmYXVsdHkgYml0cywKKwlzcHJlYWQgb3ZlciAxLzQgb2YgdGhlIGFk
ZHJlc3MgcmFuZ2UgaW4gYSByZWd1bGFyIHBhdHRlcm4uIFNvbWUgdHJpY2tzCisJd2l0aCBhIFJB
TSB0ZXN0ZXIgYW5kIGEgZmV3IGJpbmFyeSBjYWxjdWxhdGlvbnMgd2VyZSBzdWZmaWNpZW50IHRv
CisJd3JpdGUgdGhlc2UgZmF1bHRzIGRvd24gaW4gMiBsb25nd29yZCBudW1iZXJzLgorCisJVGhl
IGtlcm5lbCByZWNvZ25pc2VkIHRoZSBjb3JyZWN0IG51bWJlciBvZiBwYWdlcyB3aXRoIGZhdWx0
cyBhbmQgZGlkCisJbm90IGdpdmUgdGhlbSBvdXQgZm9yIGFsbG9jYXRpb24uIFRoZSBhbGxvY2F0
aW9uIHJvdXRpbmVzIGNvdWxkCisJdGhlcmVmb3JlIHByb2dyZXNzIGFzIG5vcm1hbGx5LCB3aXRo
b3V0IGFueSBhZGFwdGlvbi4KKwlTbywgSSBnYWluZWQgMzAgTUIgb2YgRElNTSB3aGljaCB3b3Vs
ZCBvdGhlcndpc2UgaGF2ZSBiZWVuIHRocm93bgorCWF3YXkuIEFmdGVyIGJvb3RpbmcgdGhlIGtl
cm5lbCwgdGhlIGtlcm5lbCBiZWhhdmVkIGV4YWN0bHkgYXMgaXQKKwlhbHdheXMgaGFkLgorCitJ
bml0aWFsIGNoZWNrcworCUlmIHlvdSBleHBlcmllbmNlIFJBTSB0cm91YmxlLCBmaXJzdCByZWFk
IC91c3Ivc3JjL2xpbnV4L21lbW9yeS50eHQKKwlhbmQgdHJ5IG91dCB0aGUgbWVtPTRNIHRyaWNr
IHRvIHNlZSBpZiBhdCBsZWFzdCBzb21lIGluaXRpYWwgcGFydHMKKwlvZiB5b3VyIFJBTSB3b3Jr
IHdlbGwuIFRoZSBCYWRSQU0gcm91dGluZXMgaGFsdCB0aGUga2VybmVsIGluIHBhbmljCisJaWYg
dGhlIHJlc2VydmVkIGFyZWEgb2YgbWVtb3J5IChjb250YWluaW5nIGtlcm5lbCBzdHVmZikgY29u
dGFpbnMKKwlhIGZhdWx0eSBhZGRyZXNzLgorCitSdW5uaW5nIGEgUkFNIGNoZWNrZXIKKwlUaGUg
bWVtb3J5IGNoZWNrZXIgaXMgbm90IGJ1aWx0IGludG8gdGhlIGtlcm5lbCwgdG8gYXZvaWQgZGVs
YXlzIGF0CisJcnVudGltZS4gSWYgeW91IGV4cGVyaWVuY2UgcHJvYmxlbXMgdGhhdCBtYXkgYmUg
Y2F1c2VkIGJ5IFJBTSwgcnVuCisJYSBnb29kIFJBTSBjaGVja2VyLCBzdWNoIGFzCisJCWh0dHA6
Ly9yZWFsaXR5LnNnaS5jb20vY2JyYWR5X2RlbnZlci9tZW10ZXN0ODYKKwlUaGUgb3V0cHV0IG9m
IGEgUkFNIGNoZWNrZXIgcHJvdmlkZXMgYWRkcmVzc2VzIHRoYXQgd2VudCB3cm9uZy4gSW4KKwl0
aGUgMzIgTUIgY2hpcCB3aXRoIDUxMiBmYXVsdHkgYml0cyBtZW50aW9uZWQgYWJvdmUsIHRoZSBl
cnJvcnMgd2VyZQorCWZvdW5kIGluIHRoZSA4TUItMTZNQiByYW5nZSAodGhlIERJTU0gd2FzIGlu
IHNsb3QgIzApIGF0IGFkZHJlc3NlcworCQl4eHg0MmY0CisJCXh4eDYyZjQKKwkJeHh4YzJmNAor
CQl4eHhlMmY0CisJYW5kIHRoZSBlcnJvciB3YXMgYSAic3RpY2t5IDEgYml0IiwgYSBtZW1vcnkg
Yml0IHRoYXQgc3RheWVkICIxIiBubworCW1hdHRlciB3aGF0IHdhcyB3cml0dGVuIHRvIGl0LiBU
aGUgcmVndWxhcml0eSBvZiB0aGlzIHBhdHRlcm4KKwlzdWdnZXN0cyB0aGUgZGVhdGggb2YgYSBi
dWZmZXIgYXQgdGhlIG91dHB1dCBzdGFnZXMgb2YgYSByb3cgb24gb25lIG9mCisJdGhlIGNoaXBz
LiBJIGV4cGVjdCBzdWNoIHJlZ3VsYXJpdHkgdG8gYmUgY29tbW9ucGxhY2UuIEZpbmRpbmcgdGhp
cworCXJlZ3VsYXJpdHkgY3VycmVudGx5IGlzIGh1bWFuIGVmZm9ydCwgYnV0IGl0IHNob3VsZCBu
b3QgYmUgaGFyZCB0bworCWFsdGVyIGEgUkFNIGNoZWNrZXIgdG8gY2FwdHVyZSBpdCBpbiBzb21l
IHNvcnQgb2YgcGF0dGVybiwgcG9zc2libHkKKwl0aGUgQmFkUkFNIHBhdHRlcm5zIGRlc2NyaWJl
ZCBiZWxvdy4KKworCUJ5IHRoZSB3YXksIGlmIHlvdSBtYW5hZ2UgdG8gZ2V0IGhvbGQgb2YgbWVt
dGVzdDg2IHZlcnNpb24gMi4zIG9yCisJYmV5b25kLCB5b3UgY2FuIGNvbmZpZ3VyZSB0aGUgcHJp
bnRpbmcgbW9kZSB0byBwcm9kdWNlIEJhZFJBTSBwYXR0ZXJucywKKwl3aGljaCBmaW5kIG91dCBl
eGFjdGx5IHdoYXQgeW91IG11c3QgZW50ZXIgb24gdGhlIExJTE86IGNvbW1hbmRsaW5lLAorCWV4
Y2VwdCB0aGF0IHlvdSBzaG91bGRuJ3QgbWVudGlvbiB0aGUgYWRkZWQgc3BhY2luZy4gVGhhdCBt
ZWFucyB0aGF0CisJeW91IGNhbiBza2lwIHRoZSBmb2xsb3dpbmcgc3RlcCwgd2hpY2ggc2F2ZXMg
eW91IGEgKmxvdCogb2Ygd29yay4KKworCUFsc28gYnkgdGhlIHdheSwgaWYgeW91ciBtYWNoaW5l
IGhhcyB0aGUgSVNBIG1lbW9yeSBnYXAgaW4gdGhlIDE1TS0xNk0KKwlyYW5nZSB1bnN0b3BwYWJs
ZSwgTGludXggY2FuIGdldCBpbiB0cm91YmxlLiBPbmUgd2F5IG9mIGhhbmRsaW5nIHRoYXQKKwlz
aXR1YXRpb24gaXMgYnkgc3BlY2lmeWluZyB0aGUgdG90YWwgbWVtb3J5IHNpemUgdG8gTGludXgg
d2l0aCBhIGJvb3QKKwlwYXJhbWV0ZXIgbWVtPS4uLiBhbmQgdGhlbiB0byB0ZWxsIGl0IHRvIHRy
ZWF0IHRoZSAxNU0tMTZNIHJhbmdlIGFzCisJZmF1bHR5IHdpdGggYW4gYWRkaXRpb25hbCBib290
IHBhcmFtZXRlciwgZm9yIGluc3RhbmNlOgorCQltZW09MjRNIGJhZHJhbT0weDAwZjAwMDAwLDB4
ZmZmMDAwMDAKKwlpZiB5b3UgaW5zdGFsbGVkIDI0TUIgb2YgUkFNIGluIHRvdGFsLgorCitDYXB0
dXJpbmcgZXJyb3JzIGluIGEgcGF0dGVybgorCUluc3RlYWQgb2YgbWFudWFsbHkgcHJvdmlkaW5n
IGFsbCA1MTIgZXJyb3JzIHRvIHRoZSBrZXJuZWwsIGl0J3MgbmljZXIKKwl0byBnZW5lcmF0ZSBh
IHBhdHRlcm4uIFNpbmNlIHRoZSByZWd1bGFyaXR5IGlzIGJhc2VkIG9uIGFkZHJlc3MgZGVjb2Rp
bmcKKwlzb2Z0d2FyZSwgd2hpY2ggZ2VuZXJhbGx5IHRha2VzIGNlcnRhaW4gYml0cyBpbnRvIGFj
Y291bnQgYW5kIGlnbm9yZXMKKwlvdGhlcnMsIHdlIHNoYWxsIHByb3ZpZGUgYSBmYXVsdHkgYWRk
cmVzcyBGLCB0b2dldGhlciB3aXRoIGEgYml0IG1hc2sgTQorCXRoYXQgc3BlY2lmaWVzIHdoaWNo
IGJpdHMgbXVzdCBiZSBlcXVhbCB0byBGLiBJbiBDIGNvZGUsIGFuIGFkZHJlc3MgQQorCWlzIGZh
dWx0eSBpZiBhbmQgb25seSBpZgorCQkoRiAmIE0pID09IChBICYgTSkKKwlvciBhbHRlcm5hdGVs
eSAoY2xvc2VyIHRvIGEgaGFyZHdhcmUgaW1wbGVtZW50YXRpb24pOgorCQl+KChGIF4gQSkgJiBN
KQorCUluIHRoZSBleGFtcGxlIDMyIE1CIGNoaXAsIHdlIGhhZCB0aGUgZmF1bHR5IGFkZHJlc3Nl
cyBpbiA4TUItMTZNQjoKKwkJeHh4NDJmNCAgICAgICAgIC4uLi4wMTAwLi4uLgorCQl4eHg2MmY0
ICAgICAgICAgLi4uLjAxMTAuLi4uCisJCXh4eGMyZjQgICAgICAgICAuLi4uMTEwMC4uLi4KKwkJ
eHh4ZTJmNCAgICAgICAgIC4uLi4xMTEwLi4uLgorCVRoZSBzZWNvbmQgY29sdW1uIHJlcHJlc2Vu
dHMgdGhlIGFsdGVybmF0aW5nIGhleCBkaWdpdCBpbiBiaW5hcnkgZm9ybS4KKwlBcHBlcmFudGx5
LCB0aGUgZmlyc3QgYW5kIG9uZS1idXQgbGFzdCBiaW5hcnkgZGlnaXQgY2FuIGJlIGFueXRoaW5n
LAorCXNvIHRoZSBiaW5hcnkgbWFzayBmb3IgdGhhdCBwYXJ0IGlzIDAxMDEuIFRoZSBtYXNrIGZv
ciB0aGUgcGFydCBhZnRlcgorCXRoaXMgaXMgMHhmZmYsIGFuZCB0aGUgcGFydCBiZWZvcmUgc2hv
dWxkIHNlbGVjdCBhbnl0aGluZyBpbiB0aGUgcmFuZ2UKKwk4TUItMTZNQiwgb3IgMHgwMDgwMDAw
MC0weDAxMDAwMDAwOyB0aGlzIGlzIGRvbmUgd2l0aCBhIGJpdG1hc2sKKwkweGZmODB4eHh4LiBD
b21iaW5pbmcgdGhlc2UgcGFydGlhbCBtYXNrcywgd2UgZ2V0OgorCQlGPTB4MDA4MDQyZjQgICAg
TT0weGZmODA1ZmZmCisJVGhhdCBjb3ZlcnMgZXZlcnl0aGluZyBmb3IgdGhpcyBESU1NOyBmb3Ig
bW9yZSBjb21wbGljYXRlZCBmYWlsaW5nCisJRElNTXMsIG9yIGZvciBhIGNvbWJpbmF0aW9uIG9m
IG11bHRpcGxlIGZhaWxpbmcgRElNTXMsIGl0IGNhbiBiZQorCW5lY2Vzc2FyeSB0byBzZXQgdXAg
YSBudW1iZXIgb2Ygc3VjaCBGL00gcGFpcnMuCisKK1JlYm9vdGluZyBMaW51eAorCU5vdyB0aGF0
IHRoZXNlIHBhdHRlcm5zIGFyZSBrbm93biAoYW5kIGRvdWJsZS1jaGVja2VkLCB0aGUgY2FsY3Vs
YXRpb25zCisJYXJlIGhpZ2hseSBlcnJvci1wcm9uZS4uLiBpdCB3b3VsZCBiZSBuZWF0IHRvIHRl
c3QgdGhlbSBpbiB0aGUgUkFNCisJY2hlY2tlci4uLikgd2Ugc2ltcGx5IHJlc3RhcnQgTGludXgg
d2l0aCB0aGVzZSBGL00gcGFpcnMgYXMgYSBwYXJhbWV0ZXIuCisJSWYgeW91IG5vcm1hbGx5IGJv
b3QgYXMgZm9sbG93czoKKwkgICAgICAgTElMTzogbGludXgKKwl5b3Ugc2hvdWxkIG5vdyBib290
IHdpdGgKKwkgICAgICAgTElMTzogbGludXggYmFkcmFtPTB4MDA4MDQyZjQsMHhmZjgwNWZmZgor
CW9yIHBlcmhhcHMgYnkgbWVudGlvbmluZyBtb3JlIEYvTSBwYWlycyBpbiBhbiBvcmRlciBGMCxN
MCxGMSxNMSwuLi4KKwlXaGVuIHlvdSBwcm92aWRlIGFuIG9kZCBudW1iZXIgb2YgYXJndW1lbnRz
IHRvIGJhZHJhbSwgdGhlIGRlZmF1bHQgbWFzaworCTB4ZmZmZmZmZmYgKG9ubHkgb25lIGFkZHJl
c3MgbWF0Y2hlZCkgaXMgYXBwbGllZCB0byB0aGUgcGF0dGVybi4KKworCUJld2FyZSBvZiB0aGUg
Y29tbWFuZGxpbmUgbGVuZ3RoLiBBdCBsZWFzdCB1cCB0byBMSUxPIHZlcnNpb24gMC4yMSwKKwl0
aGUgY29tbWFuZGxpbmUgaXMgY3V0IG9mZiBhZnRlciB0aGUgNzh0aCBjaGFyYWN0ZXI7IGxhdGVy
IHZlcnNpb25zCisJbWF5IGdvIGFzIGZhciBhcyB0aGUga2VybmVsIGdvZXMsIG5hbWVseSAyNTUg
Y2hhcmFjdGVycy4gSW4gbm8gd2F5IGlzCisJaXQgcG9zc2libGUgdG8gZW50ZXIgbW9yZSB0aGFu
IDEwIG51bWJlcnMgdG8gdGhlIGJhZHJhbSBib290IG9wdGlvbi4KKworCVdoZW4gdGhlIGtlcm5l
bCBub3cgYm9vdHMsIGl0IHNob3VsZCBub3QgZ2l2ZSBhbnkgdHJvdWJsZSB3aXRoIFJBTS4KKwlN
aW5kIHlvdSwgdGhpcyBpcyB1bmRlciB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoZSBrZXJuZWwgYW5k
IGl0cyBkYXRhCisJc3RvcmFnZSBkbyBub3Qgb3ZlcmxhcCBhbiBlcnJvbmVvdXMgcGFydC4gSWYg
dGhpcyBoYXBwZW5zLCBhbmQgdGhlCisJa2VybmVsIGRvZXMgbm90IGNob2tlIG9uIGl0IHJpZ2h0
IGF3YXksIGl0IHdpbGwgc3RvcCB3aXRoIGEgcGFuaWMuCisJWW91IHdpbGwgbmVlZCB0byBwcm92
aWRlIGEgUkFNIHdoZXJlIHRoZSBpbml0aWFsLCBzYXkgMk1CLCBpcyBmYXVsdGxlc3MuCisKKwlO
b3cgbG9vayB1cCB5b3VyIG1lbW9yeSBzdGF0dXMgd2l0aAorCSAgICAgICBkbWVzZyB8IGdyZXAg
Xk1lbW9yeToKKwl3aGljaCBwcmludHMgYSBzaW5nbGUgbGluZSB3aXRoIGluZm9ybWF0aW9uIGxp
a2UKKwkJTWVtb3J5OiAxNTg1MjRrLzE2Mzg0MGsgYXZhaWxhYmxlCisJCQkoOTQwayBrZXJuZWwg
Y29kZSwKKwkJCTQxMmsgcmVzZXJ2ZWQsCisJCQkxODU2ayBkYXRhLAorCQkJNjBrIGluaXQsCisJ
CQkwayBoaWdobWVtLAorCQkJMjA0OGsgQmFkUkFNKQorCVRoZSBsYXR0ZXIgZW50cnksIHRoZSBi
YWRyYW0sIGlzIDIwNDhrIHRvIHJlcHJlc2VudCB0aGUgbG9zcyBvZiAyTUIKKwlvZiBnZW5lcmFs
IHB1cnBvc2UgUkFNIGR1ZSB0byB0aGUgZXJyb3JzLiBPciwgcG9zaXRpdmVseSByZXBocmFzZWQs
CisJaW5zdGVhZCBvZiB0aHJvd2luZyBvdXQgMzJNQiBhcyB1c2VsZXNzLCB5b3Ugb25seSB0aHJv
dyBvdXQgMk1CLgorCisJSWYgdGhlIHN5c3RlbSBpcyBzdGFibGUgKHRyeSBjb21waWxpbmcgYSBm
ZXcga2VybmVscywgYW5kIGRvIGEgZmV3CisJZmluZHMgaW4gLyBvciBzbykgeW91IG1heSBhZGQg
dGhlIGJvb3QgcGFyYW1ldGVyIHRvIC9ldGMvbGlsby5jb25mCisJYXMgYSBsaW5lIHRvIF9hbGxf
IHRoZSBrZXJuZWxzIHRoYXQgaGFuZGxlIHRoaXMgdHJvdWJsZSB3aXRoIGEgbGluZQorCQlhcHBl
bmQ9ImJhZHJhbT0weDAwODA0MmY0LDB4ZmY4MDVmZmYiCisJYWZ0ZXIgd2hpY2ggeW91IHJ1biAi
bGlsbyIuCisJV2FybmluZzogRG9uJ3QgZXhwZXJpbWVudCB3aXRoIHRoZXNlIHNldHRpbmdzIG9u
IHlvdXIgb25seSBib290IGltYWdlLgorCUlmIHRoZSBCYWRSQU0gb3ZlcmxheXMga2VybmVsIGNv
ZGUsIGRhdGEsIGluaXQsIG9yIG90aGVyIHJlc2VydmVkCisJbWVtb3J5LCB0aGUga2VybmVsIHdp
bGwgaGFsdCBpbiBwYW5pYy4gVHJ5IHNldHRpbmdzIG9uIGEgdGVzdCBib290CisJaW1hZ2UgZmly
c3QsIGFuZCBpZiB5b3UgZ2V0IGEgcGFuaWMgeW91IHNob3VsZCBjaGFuZ2UgdGhlIG9yZGVyIG9m
CisJeW91ciBESU1NcyBbd2hpY2ggbWF5IGludm9sdmUgYnV5aW5nIGEgbmV3IG9uZSBqdXN0IHRv
IGJlIGFibGUgdG8KKwljaGFuZ2UgdGhlIG9yZGVyXS4KKworCVlvdSBhcmUgYWxsb3dlZCB0byBl
bnRlciBhbnkgbnVtYmVyIG9mIEJhZFJBTSBwYXR0ZXJucyBpbiBhbGwgdGhlCisJcGxhY2VzIGRv
Y3VtZW50ZWQgaW4gdGhpcyBmaWxlLiBUaGV5IHdpbGwgYWxsIGFwcGx5LiBJdCBpcyBldmVuCisJ
cG9zc2libGUgdG8gbWVudGlvbiBzZXZlcmFsIEJhZFJBTSBwYXR0ZXJucyBpbiBhIHNpbmdsZSBw
bGFjZS4gVGhlCisJY29tcGxldGlvbiBvZiBhbiBvZGQgbnVtYmVyIG9mIGFyZ3VtZW50cyB3aXRo
IHRoZSBkZWZhdWx0IG1hc2sgaXMKKwlkb25lIHNlcGFyYXRlbHkgZm9yIGVhY2ggYmFkcmFtPS4u
LiBvcHRpb24uCisKK0tlcm5lbCBDdXN0b21pc2F0aW9uCisJU29tZSBwZW9wbGUgcHJlZmVyIHRv
IGVudGVyIHRoZWlyIGJhZHJhbSBwYXR0ZXJucyBpbiB0aGUga2VybmVsLCBhbmQKKwl0aGlzIGlz
IGFsc28gcG9zc2libGUuIEluIG1tL3BhZ2VfYWxsb2MuYyB0aGVyZSBpcyBhbiBhcnJheSBvZiB1
bnNpZ25lZAorCWxvbmcgaW50ZWdlcnMgaW50byB3aGljaCB0aGUgcGFyYW1ldGVycyBjYW4gYmUg
ZW50ZXJlZCwgcHJlZml4ZWQgd2l0aAorCXRoZSBudW1iZXIgb2YgaW50ZWdlcnMgKHR3aWNlIHRo
ZSBudW1iZXIgb2YgcGF0dGVybnMpLiBUaGUgYXJyYXkgaXMKKwluYW1lZCBiYWRyYW1fY3VzdG9t
IGFuZCBpdCB3aWxsIGJlIGFkZGVkIHRvIHRoZSBCYWRSQU0gbGlzdCB3aGVuZXZlciBhbgorCW9w
dGlvbiAnYmFkcmFtJyBpcyBwcm92aWRlZCBvbiB0aGUgY29tbWFuZGxpbmUgd2hlbiBib290aW5n
LCBlaXRoZXIKKwl3aXRoIG9yIHdpdGhvdXQgYWRkaXRpb25hbCBwYXR0ZXJucy4KKworCUZvciB0
aGUgcHJldmlvdXMgZXhhbXBsZSwgdGhlIGNvZGUgd291bGQgYmVjb21lCisKKwlzdGF0aWMgdW5z
aWduZWQgbG9uZyBfX2luaXQgYmFkcmFtX2N1c3RvbVtdID0geworCQkyLAkvLyBOdW1iZXIgb2Yg
bG9uZ3dvcmRzIHRoYXQgZm9sbG93LCBhcyBGL00gcGFpcnMKKwkJMHgwMDgwNDJmNEwsIDB4ZmY4
MDVmZmZMLAorCX07CisKKwlFdmVuIG9uIHRoaXMgcGxhY2UgeW91IG1heSBhc3N1bWUgdGhlIGRl
ZmF1bHQgbWFzayB0byBiZSBmaWxsZWQgaW4KKwl3aGVuIHlvdSBlbnRlciBhbiBvZGQgbnVtYmVy
IG9mIGxvbmd3b3Jkcy4gU3BlY2lmeSB0aGUgbnVtYmVyIG9mCisJbG9uZ3dvcmRzIHRvIGJlIDAg
dG8gYXZvaWQgaW5mbHVlbmNlIG9mIHRoaXMgY3VzdG9tIEJhZFJBTSBsaXN0LgorCitCYWRSQU0g
Y2xhc3NpZmljYXRpb24KKwlUaGlzIHRlY2huaXF1ZSBtYXkgc3RhcnQgYSBsaXZlbHkgbWFya2V0
IGZvciAiZGVhZCIgUkFNLiBJdCBpcyBpbXBvcnRhbnQKKwl0byByZWFsaXNlIHRoYXQgc29tZSBS
QU1zIGFyZSBtb3JlIGRlYWQgdGhhbiBvdGhlcnMuIFNvLCBpbnN0ZWFkIG9mCisJanVzdCBwcm92
aWRpbmcgYSBSQU0gc2l6ZSwgaXQgaXMgYWxzbyBpbXBvcnRhbnQgdG8ga25vdyB0aGUgQmFkUkFN
CisJY2xhc3MsIHdoaWNoIGlzIGRlZmluZWQgYXMgZm9sbG93czoKKworCQlBIEJhZFJBTSBjbGFz
cyBOIG1lYW5zIHRoYXQgYXQgbW9zdCAyXk4gYnl0ZXMgaGF2ZSBhIHByb2JsZW0sCisJCWFuZCB0
aGF0IGFsbCBwcm9ibGVtcyB3aXRoIHRoZSBSQU1zIGFyZSBwZXJzaXN0ZW50OiBUaGV5CisJCWFy
ZSBwcmVkaWN0YWJsZSBhbmQgYWx3YXlzIHNob3cgdXAuCisKKwlUaGUgRElNTSB0aGF0IHNlcnZl
cyBhcyBhbiBleGFtcGxlIGhlcmUgd2FzIG9mIGNsYXNzIDksIHNpbmNlIDUxMj0yXjkKKwllcnJv
cnMgd2VyZSBmb3VuZC4gSGlnaGVyIGNsYXNzZXMgYXJlIHdvcnNlLCAiY29ycmVjdCIgUkFNIGlz
IG9mIGNsYXNzCisJLTEgKG9yIGV2ZW4gbGVzcywgYXQgeW91ciBjaG9pY2UpLgorCUNsYXNzIE4g
YWxzbyBtZWFucyB0aGF0IHRoZSBiaXRtYXNrIGZvciB5b3VyIGNoaXAgKGlmIHRoZXJlJ3MganVz
dCBvbmUsCisJdGhhdCBpcykgY291bnRzIE4gYml0cyAiMCIgYW5kIGl0IG1lYW5zIHRoYXQgKGlm
IG5vIGZhdWx0cyBmYWxsIGluIHRoZQorCXNhbWUgcGFnZSkgYW4gYW1vdW50IG9mIDJeTipQQUdF
U0laRSBtZW1vcnkgaXMgbG9zdCwgaW4gdGhlIGV4YW1wbGUgb24KKwlhbiBpMzg2IGFyY2hpdGVj
dHVyZSB0aGF0IHdvdWxkIGJlIDJeOSo0az0yTUIsIHdoaWNoIGFjY291bnRzIGZvciB0aGUKKwlp
bml0aWFsIGNsYWltIG9mIDMwTUIgUkFNIGdhaW5lZCB3aXRoIHRoaXMgRElNTS4KKworCU5vdGUg
dGhhdCB0aGlzIHNjaGVtZSBoYXMgZGVsaWJlcmF0ZWx5IGJlZW4gZGVmaW5lZCB0byBiZSBpbmRl
cGVuZGVudAorCW9mIG1lbW9yeSB0ZWNobm9sb2d5IGFuZCBvZiBjb21wdXRlciBhcmNoaXRlY3R1
cmUuCisKK0tub3duIEJ1Z3MKKwlMSUxPIGlzIGtub3duIHRvIGN1dCBvZmYgY29tbWFuZGxpbmVz
IHdoaWNoIGFyZSB0b28gbG9uZy4gRm9yIHRoZQorCWxpbG8tMC4yMSBkaXN0cmlidXRpb24sIGEg
Y29tbWFuZGxpbmUgbWF5IG5vdCBleGNlZWQgNzggY2hhcmFjdGVycywKKwl3aGlsZSBhY3R1YWxs
eSwgMjU1IHdvdWxkIGJlIHBvc3NpYmxlIFtvbiBpMzg2LCBrZXJuZWwgMi4yLjE2XS4KKwlMSUxP
IGRvZXMgX25vdF8gcmVwb3J0IHRvby1sb25nIGNvbW1hbmRsaW5lcywgYnV0IHRoZSBlcnJvciB3
aWxsCisJc2hvdyB1cCBhcyBlaXRoZXIgYSBwYW5pYyBhdCBib290IHRpbWUsIHN0YXRpbmcKKwkJ
cGFuaWM6IEJhZFJBTSBwYWdlIGluIGluaXRpYWwgYXJlYQorCW9yIHRoZSBkbWVzZyBsaW5lIHN0
YXJ0aW5nIHdpdGggTWVtb3J5OiB3aWxsIG1lbnRpb24gYW4gdW5wcmVkaWN0ZWQKKwludW1iZXIg
b2Yga2lsb2J5dGVzLiAoTm90ZSB0aGF0IHRoZSBsYXR0ZXIgbnVtYmVyIG9ubHkgaW5jbHVkZXMK
KwllcnJvcnMgaW4gYWNjZXNzZWQgbWVtb3J5LikKKworRnV0dXJlIFBvc3NpYmlsaXRpZXMKKwlJ
dCB3b3VsZCBiZSBwb3NzaWJsZSB0byB1c2UgZXZlbiBtb3JlIG9mIHRoZSBmYXVsdHkgUkFNcyBi
eSBlbXBsb3lpbmcKKwl0aGVtIGZvciBzbGFicy4gVGhlIHNtYWxsZXIgYWxsb2NhdGlvbiBncmFu
dWxhcml0eSBvZiBzbGFicyBtYWtlcyBpdAorCXBvc3NpYmxlIHRvIHRocm93IG91dCBqdXN0LCBz
YXksIDMyIGJ5dGVzIHN1cnJvdW5kaW5nIGFuIGVycm9yLiBUaGlzCisJd291bGQgbWVhbiB0aGF0
IHRoZSBleGFtcGxlIERJTU0gb25seSBsb29zZXMgMTZrQiBpbnN0ZWFkIG9mIDJNQi4KKwlJdCBt
aWdodCBldmVuIGJlIHBvc3NpYmxlIHRvIGFsbG9jYXRlIHRoZSBzbGFicyBpbiBzdWNoIGEgd2F5
IHRoYXQsCisJd2hlcmUgcG9zc2libGUsIHRoZSByZW1haW5pbmcgYnl0ZXMgaW4gYSBzbGFiIHN0
cnVjdHVyZSBhcmUgYWxsb2NhdGVkCisJYXJvdW5kIHRoZSBlcnJvciwgcmVkdWNpbmcgdGhlIFJB
TSBsb3NzIHRvIDAgaW4gdGhlIG9wdGltYWwgc2l0dWF0aW9uIQorCisJSG93ZXZlciwgdGhpcyB5
aWVsZCBpcyBzb21ld2hhdCBmYWtlZDogSXQgaXMgcG9zc2libGUgdG8gcHJvdmlkZSA1MTIKKwlw
YWdlcyBvZiAzMi1ieXRlIHNsYWJzLCBidXQgaXQgaXMgbm90IGNlcnRhaW4gdGhhdCBhbnlvbmUg
d291bGQgdXNlCisJdGhhdCBtYW55IDMyLWJ5dGUgc2xhYnMgYXQgYW55IHRpbWUuCisKKwlBIGJl
dHRlciBzb2x1dGlvbiBtaWdodCBiZSB0byBhbHRlciB0aGUgcGFnZSBhbGxvY2F0aW9uIGZvciBh
IHNsYWIgdG8KKwloYXZlIGEgcHJlZmVyZW5jZSBmb3IgQmFkUkFNIHBhZ2VzLCBhbmQgZ2l2ZW4g
dGhvc2UgYSBzcGVjaWFsIHRyZWF0bWVudC4KKwlUaGlzIHdheSwgdGhlIEJhZFJBTSB3b3VsZCBi
ZSBzcHJlYWQgb3ZlciBhbGwgdGhlIHNsYWJzLCB3aGljaCBzZWVtcworCW1vcmUgbGlrZWx5IHRv
IGJlIGEgYHRydWUnIHBheS1vZmYuIFRoaXMgd291bGQgeWllbGQgbW9yZSBvdmVyaGVhZCBhdAor
CXNsYWIgYWxsb2NhdGlvbiB0aW1lLCBidXQgb24gdGhlIG90aGVyIGhhbmQsIGJ5IHRoZSBuYXR1
cmUgb2Ygc2xhYnMsCisJc3VjaCBhbGxvY2F0aW9ucyBhcmUgbWFkZSBhcyByYXJlIGFzIHBvc3Np
YmxlLCBzbyBpdCBtaWdodCBub3QgbWF0dGVyCisJdGhhdCBtdWNoLiBJIGFtIHVuY2VydGFpbiB3
aGVyZSB0byBnby4KKworCU1hbnkgc3VnZ2VzdGlvbnMgaGF2ZSBiZWVuIG1hZGUgdG8gaW5zZXJ0
IGEgUkFNIGNoZWNrZXIgYXQgYm9vdCB0aW1lOworCXNpbmNlIHRoaXMgd291bGQgbGVhdmUgdGhl
IHRpbWUgdG8gZG8gb25seSB2ZXJ5IG1lYWdlciBjaGVja2luZywgaXQKKwlpcyBub3QgYSByZWFz
b25hYmxlIG9wdGlvbjsgd2UgYWxyZWFkeSBoYXZlIGEgQklPUyBkb2luZyB0aGF0IGluIG1vc3QK
KwlzeXN0ZW1zIQorCisJSXQgd291bGQgYmUgaW50ZXJlc3RpbmcgdG8gaW50ZWdyYXRlIHRoaXMg
ZnVuY3Rpb25hbGl0eSB3aXRoIHRoZQorCXNlbGYtdmVyaWZ5aW5nIG5hdHVyZSBvZiBFQ0MgUkFN
LiBUaGVzZSBtZW1vcmllcyBjYW4gZXZlbiBkaXN0aW5ndWlzaAorCWJldHdlZW4gcmVjb3JhYmxl
IGFuZCB1bnJlY292ZXJhYmxlIGVycm9ycyEgU3VjaCBtZW1vcnkgaGFzIGJlZW4KKwloYW5kbGVk
IGluIG9sZGVyIG9wZXJhdGluZyBzeXN0ZW1zIGJ5IGB0ZXN0aW5nJyBvbmNlLWZhaWxlZCBtZW1v
cnkKKwlibG9ja3MgZm9yIGEgd2hpbGUsIGJ5IHBsYWNpbmcgb25seSAocmVsb2FkYWJsZSkgcHJv
Z3JhbSBjb2RlIGluIGl0LgorCVVuZm9ydHVuYXRlbHksIEkgcG9zc2VzcyBubyBmYXVsdHkgRUND
IG1vZHVsZXMgdG8gd29yayB0aGlzIG91dC4KKworTmFtZXMgYW5kIFBsYWNlcworCVRoZSBob21l
IHBhZ2Ugb2YgdGhpcyBwcm9qZWN0IGlzIG9uCisJCWh0dHA6Ly9yaWNrLnZhbnJlaW4ub3JnL2xp
bnV4L2JhZHJhbQorCVRoaXMgcGFnZSBhbHNvIGxpbmtzIHRvIE5pY28gU2NobW9pZ2wncyBleHBl
cmltZW50YWwgZXh0ZW5zaW9ucyB0bworCXRoaXMgcGF0Y2ggKHdpdGggZGVidWdnaW5nIGFuZCBh
IGZldyBvdGhlciBmYW5jeSB0aGluZ3MpLgorCisJSW4gY2FzZSB5b3UgaGF2ZSBleHBlcmllbmNl
cyB3aXRoIHRoZSBCYWRSQU0gc29mdHdhcmUgd2hpY2ggZGlmZmVyIGZyb20KKwl0aGUgdGVzdCBy
ZXBvcnRpbmdzIG9uIHRoYXQgc2l0ZSwgSSBob3BlIHlvdSB3aWxsIG1haWwgbWUgd2l0aCB0aGF0
CisJbmV3IGluZm9ybWF0aW9uLgorCisJVGhlIEJhZFJBTSBwcm9qZWN0IGlzIGFuIGlkZWEgYW5k
IGltcGxlbWVudGF0aW9uIGJ5CisJCVJpY2sgdmFuIFJlaW4KKwkJQmlubmVuZXMgNjcKKwkJOTQw
NyBDWCBBc3NlbgorCQlUaGUgTmV0aGVybGFuZHMKKwkJdmFucmVpbkBjcy51dHdlbnRlLm5sCisJ
SWYgeW91IGxpa2UgaXQsIGEgcG9zdGNhcmQgd291bGQgYmUgbXVjaCBhcHByZWNpYXRlZCA7LSkK
KworCisJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEVuam95LAorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLVJpY2suCisKZGlmZiAtcmF1TiBsaW51eC0yLjQuMjBfb3JpZy9Eb2N1bWVu
dGF0aW9uL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dCBsaW51eC0yLjQuMjBfQmFkUkFNL0RvY3VtZW50
YXRpb24va2VybmVsLXBhcmFtZXRlcnMudHh0Ci0tLSBsaW51eC0yLjQuMjBfb3JpZy9Eb2N1bWVu
dGF0aW9uL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dAlGcmkgTm92IDI5IDAwOjUzOjA4IDIwMDIKKysr
IGxpbnV4LTIuNC4yMF9CYWRSQU0vRG9jdW1lbnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50eHQJ
RnJpIERlYyAxMyAxNjo1Mjo0OSAyMDAyCkBAIC0xNCw2ICsxNCw3IEBACiAJQVBJQwlBUElDIHN1
cHBvcnQgaXMgZW5hYmxlZC4KIAlBUE0gCUFkdmFuY2VkIFBvd2VyIE1hbmFnZW1lbnQgc3VwcG9y
dCBpcyBlbmFibGVkLgogCUFYMjUJQXBwcm9wcmlhdGUgQVguMjUgc3VwcG9ydCBpcyBlbmFibGVk
LgorCUJBRFJBTQlTdXBwb3J0IGZvciBmYXVsdHkgUkFNIGNoaXBzIGlzIGVuYWJsZWQuCiAJQ0QJ
QXBwcm9wcmlhdGUgQ0Qgc3VwcG9ydCBpcyBlbmFibGVkLgogCURFVkZTICAgZGV2ZnMgc3VwcG9y
dCBpcyBlbmFibGVkLiAKIAlEUk0JRGlyZWN0IFJlbmRlcmluZyBNYW5hZ2VtZW50IHN1cHBvcnQg
aXMgZW5hYmxlZC4gCkBAIC0xMDksNiArMTEwLDkgQEAKIAlhd2U9ICAgICAgICAgICAgW0hXLFNP
VU5EXQogIAogCWF6dGNkPQkJW0hXLENEXSBBenRlYyBDRCBkcml2ZXIuCisKKwliYWRyYW09CQlb
QkFEUkFNXSBBdm9pZCBhbGxvY2F0aW5nIGZhdWx0eSBSQU0gYWRkcmVzc2VzLgorCiAKIAliYXlj
b21fZXBwPQlbSFcsQVgyNV0KICAKZGlmZiAtcmF1TiBsaW51eC0yLjQuMjBfb3JpZy9Eb2N1bWVu
dGF0aW9uL21lbW9yeS50eHQgbGludXgtMi40LjIwX0JhZFJBTS9Eb2N1bWVudGF0aW9uL21lbW9y
eS50eHQKLS0tIGxpbnV4LTIuNC4yMF9vcmlnL0RvY3VtZW50YXRpb24vbWVtb3J5LnR4dAlGcmkg
Tm92ICA5IDIyOjU4OjAyIDIwMDEKKysrIGxpbnV4LTIuNC4yMF9CYWRSQU0vRG9jdW1lbnRhdGlv
bi9tZW1vcnkudHh0CUZyaSBEZWMgMTMgMTY6NTI6NDkgMjAwMgpAQCAtMTgsNiArMTgsMTQgQEAK
IAkgICBhcyB5b3UgYWRkIG1vcmUgbWVtb3J5LiAgQ29uc2lkZXIgZXhjaGFuZ2luZyB5b3VyIAog
ICAgICAgICAgICBtb3RoZXJib2FyZC4KIAorCTQpIEEgc3RhdGljIGRpc2NoYXJnZSBvciBwcm9k
dWN0aW9uIGZhdWx0IGNhdXNlcyBhIFJBTSBtb2R1bGUKKwkgICB0byBoYXZlIChwcmVkaWN0YWJs
ZSkgZXJyb3JzLCB1c3VhbGx5IG1lYW5pbmcgdGhhdCBjZXJ0YWluCisJICAgYml0cyBjYW5ub3Qg
YmUgc2V0IG9yIHJlc2V0LiBJbnN0ZWFkIG9mIHRocm93aW5nIGF3YXkgeW91cgorCSAgIFJBTSBt
b2R1bGUsIHlvdSBtYXkgcmVhZCAvdXNyL3NyYy9saW51eC9Eb2N1bWVudGF0aW9uL2JhZHJhbS50
eHQKKwkgICB0byBsZWFybiBob3cgdG8gZGV0ZWN0LCBsb2NhdGUgYW5kIGNpcmN1aW12ZW50IHN1
Y2ggZXJyb3JzCisJICAgaW4geW91ciBSQU0gbW9kdWxlLgorCisKIEFsbCBvZiB0aGVzZSBwcm9i
bGVtcyBjYW4gYmUgYWRkcmVzc2VkIHdpdGggdGhlICJtZW09WFhYTSIgYm9vdCBvcHRpb24KICh3
aGVyZSBYWFggaXMgdGhlIHNpemUgb2YgUkFNIHRvIHVzZSBpbiBtZWdhYnl0ZXMpLiAgCiBJdCBj
YW4gYWxzbyB0ZWxsIExpbnV4IHRvIHVzZSBsZXNzIG1lbW9yeSB0aGFuIGlzIGFjdHVhbGx5IGlu
c3RhbGxlZC4KQEAgLTQ1LDYgKzUzLDggQEAKIAogCSogVHJ5IHBhc3NpbmcgdGhlICJtZW09NE0i
IG9wdGlvbiB0byB0aGUga2VybmVsIHRvIGxpbWl0CiAJICBMaW51eCB0byB1c2luZyBhIHZlcnkg
c21hbGwgYW1vdW50IG9mIG1lbW9yeS4KKwkgIElmIHRoaXMgaGVscHMsIHJlYWQgL3Vzci9zcmMv
bGludXgvRG9jdW1lbnRhdGlvbi9iYWRyYW0udHh0CisJICB0byBsZWFybiBob3cgdG8gZmluZCBh
bmQgY2lyY3VpbXZlbnQgbWVtb3J5IGVycm9ycy4KIAogCiBPdGhlciB0cmlja3M6CmRpZmYgLXJh
dU4gbGludXgtMi40LjIwX29yaWcvYXJjaC9pMzg2L2NvbmZpZy5pbiBsaW51eC0yLjQuMjBfQmFk
UkFNL2FyY2gvaTM4Ni9jb25maWcuaW4KLS0tIGxpbnV4LTIuNC4yMF9vcmlnL2FyY2gvaTM4Ni9j
b25maWcuaW4JRnJpIE5vdiAyOSAwMDo1MzowOSAyMDAyCisrKyBsaW51eC0yLjQuMjBfQmFkUkFN
L2FyY2gvaTM4Ni9jb25maWcuaW4JRnJpIERlYyAxMyAxNjo1Mjo0OSAyMDAyCkBAIC0zMTYsNiAr
MzE2LDggQEAKICAgIGJvb2wgJyAgICBVc2UgcmVhbCBtb2RlIEFQTSBCSU9TIGNhbGwgdG8gcG93
ZXIgb2ZmJyBDT05GSUdfQVBNX1JFQUxfTU9ERV9QT1dFUl9PRkYKIGZpCiAKK2Jvb2wgJ1dvcmsg
YXJvdW5kIGJhZCBzcG90cyBpbiBSQU0nIENPTkZJR19CQURSQU0KKwogZW5kbWVudQogCiBzb3Vy
Y2UgZHJpdmVycy9tdGQvQ29uZmlnLmluCmRpZmYgLXJhdU4gbGludXgtMi40LjIwX29yaWcvYXJj
aC9pMzg2L2RlZmNvbmZpZyBsaW51eC0yLjQuMjBfQmFkUkFNL2FyY2gvaTM4Ni9kZWZjb25maWcK
LS0tIGxpbnV4LTIuNC4yMF9vcmlnL2FyY2gvaTM4Ni9kZWZjb25maWcJRnJpIE5vdiAyOSAwMDo1
MzowOSAyMDAyCisrKyBsaW51eC0yLjQuMjBfQmFkUkFNL2FyY2gvaTM4Ni9kZWZjb25maWcJRnJp
IERlYyAxMyAxNjo1Mjo0OSAyMDAyCkBAIC04MSw2ICs4MSw3IEBACiAjIENPTkZJR19FSVNBIGlz
IG5vdCBzZXQKICMgQ09ORklHX01DQSBpcyBub3Qgc2V0CiBDT05GSUdfSE9UUExVRz15CitDT05G
SUdfQkFEUkFNPXkKIAogIwogIyBQQ01DSUEvQ2FyZEJ1cyBzdXBwb3J0CmRpZmYgLXJhdU4gbGlu
dXgtMi40LjIwX29yaWcvYXJjaC9pMzg2L21tL2luaXQuYyBsaW51eC0yLjQuMjBfQmFkUkFNL2Fy
Y2gvaTM4Ni9tbS9pbml0LmMKLS0tIGxpbnV4LTIuNC4yMF9vcmlnL2FyY2gvaTM4Ni9tbS9pbml0
LmMJRnJpIE5vdiAyOSAwMDo1MzowOSAyMDAyCisrKyBsaW51eC0yLjQuMjBfQmFkUkFNL2FyY2gv
aTM4Ni9tbS9pbml0LmMJRnJpIERlYyAxMyAyMTo0NToyNiAyMDAyCkBAIC05Miw3ICs5Miw3IEBA
CiAKIHZvaWQgc2hvd19tZW0odm9pZCkKIHsKLQlpbnQgaSwgdG90YWwgPSAwLCByZXNlcnZlZCA9
IDA7CisJaW50IGksIHRvdGFsID0gMCwgcmVzZXJ2ZWQgPSAwLCBiYWRyYW0gPSAwOwogCWludCBz
aGFyZWQgPSAwLCBjYWNoZWQgPSAwOwogCWludCBoaWdobWVtID0gMDsKIApAQCAtMTA2LDYgKzEw
NiwxMCBAQAogCQkJaGlnaG1lbSsrOwogCQlpZiAoUGFnZVJlc2VydmVkKG1lbV9tYXAraSkpCiAJ
CQlyZXNlcnZlZCsrOworI2lmZGVmIENPTkZJR19CQURSQU0KKwkJaWYgKFBhZ2VCYWQobWVtX21h
cCsxKSkKKwkJCWJhZHJhbSsrOworI2VuZGlmCiAJCWVsc2UgaWYgKFBhZ2VTd2FwQ2FjaGUobWVt
X21hcCtpKSkKIAkJCWNhY2hlZCsrOwogCQllbHNlIGlmIChwYWdlX2NvdW50KG1lbV9tYXAraSkp
CkBAIC0xMTQsNiArMTE4LDkgQEAKIAlwcmludGsoIiVkIHBhZ2VzIG9mIFJBTVxuIiwgdG90YWwp
OwogCXByaW50aygiJWQgcGFnZXMgb2YgSElHSE1FTVxuIixoaWdobWVtKTsKIAlwcmludGsoIiVk
IHJlc2VydmVkIHBhZ2VzXG4iLHJlc2VydmVkKTsKKyNpZmRlZiBDT05GSUdfQkFEUkFNCisJcHJp
bnRrKCIlZCBwYWdlcyBvZiBCYWRSQU1cbiIsYmFkcmFtKTsKKyNlbmRpZgogCXByaW50aygiJWQg
cGFnZXMgc2hhcmVkXG4iLHNoYXJlZCk7CiAJcHJpbnRrKCIlZCBwYWdlcyBzd2FwIGNhY2hlZFxu
IixjYWNoZWQpOwogCXByaW50aygiJWxkIHBhZ2VzIGluIHBhZ2UgdGFibGUgY2FjaGVcbiIscGd0
YWJsZV9jYWNoZV9zaXplKTsKQEAgLTQ2Miw3ICs0NjksMTMgQEAKIAlDbGVhclBhZ2VSZXNlcnZl
ZChwYWdlKTsKIAlzZXRfYml0KFBHX2hpZ2htZW0sICZwYWdlLT5mbGFncyk7CiAJYXRvbWljX3Nl
dCgmcGFnZS0+Y291bnQsIDEpOwotCV9fZnJlZV9wYWdlKHBhZ2UpOworI2lmZGVmIENPTkZJR19C
QURSQU0KKwkJaWYgKFBhZ2VCYWQocGFnZSkpCisJCQliYWRwYWdlcysrOworCQllbHNlCisjZWxz
ZQorCQkJX19mcmVlX3BhZ2UocGFnZSk7CisjZW5kaWYKIAl0b3RhbGhpZ2hfcGFnZXMrKzsKIH0K
ICNlbmRpZiAvKiBDT05GSUdfSElHSE1FTSAqLwpAQCAtNDgxLDcgKzQ5NCw3IEBACiBzdGF0aWMg
aW50IF9faW5pdCBmcmVlX3BhZ2VzX2luaXQodm9pZCkKIHsKIAlleHRlcm4gaW50IHBwcm9fd2l0
aF9yYW1fYnVnKHZvaWQpOwotCWludCBiYWRfcHBybywgcmVzZXJ2ZWRwYWdlcywgcGZuOworCWlu
dCBiYWRfcHBybywgcmVzZXJ2ZWRwYWdlcywgcGZuLCBiYWRwYWdlczsKIAogCWJhZF9wcHJvID0g
cHByb193aXRoX3JhbV9idWcoKTsKIApAQCAtNDg5LDEzICs1MDIsMTkgQEAKIAl0b3RhbHJhbV9w
YWdlcyArPSBmcmVlX2FsbF9ib290bWVtKCk7CiAKIAlyZXNlcnZlZHBhZ2VzID0gMDsKKwliYWRw
YWdlcyA9IDA7CiAJZm9yIChwZm4gPSAwOyBwZm4gPCBtYXhfbG93X3BmbjsgcGZuKyspIHsKIAkJ
LyoKLQkJICogT25seSBjb3VudCByZXNlcnZlZCBSQU0gcGFnZXMKKwkJICogT25seSBjb3VudCBy
ZXNlcnZlZCBhbmQgYmFkIFJBTSBwYWdlcwogCQkgKi8KIAkJaWYgKHBhZ2VfaXNfcmFtKHBmbikg
JiYgUGFnZVJlc2VydmVkKG1lbV9tYXArcGZuKSkKIAkJCXJlc2VydmVkcGFnZXMrKzsKKyNpZmRl
ZiBDT05GSUdfQkFEUkFNCisJCWlmIChwYWdlX2lzX3JhbShwZm4pICYmIFBhZ2VCYWQobWVtX21h
cCtwZm4pKQorCQkJYmFkcGFnZXMrKzsKKyNlbmRpZgogCX0KKwogI2lmZGVmIENPTkZJR19ISUdI
TUVNCiAJZm9yIChwZm4gPSBoaWdoZW5kX3Bmbi0xOyBwZm4gPj0gaGlnaHN0YXJ0X3BmbjsgcGZu
LS0pCiAJCW9uZV9oaWdocGFnZV9pbml0KChzdHJ1Y3QgcGFnZSAqKSAobWVtX21hcCArIHBmbiks
IHBmbiwgYmFkX3Bwcm8pOwpAQCAtNTA2LDcgKzUyNSw3IEBACiAKIHZvaWQgX19pbml0IG1lbV9p
bml0KHZvaWQpCiB7Ci0JaW50IGNvZGVzaXplLCByZXNlcnZlZHBhZ2VzLCBkYXRhc2l6ZSwgaW5p
dHNpemU7CisJaW50IGNvZGVzaXplLCByZXNlcnZlZHBhZ2VzLCBkYXRhc2l6ZSwgaW5pdHNpemUs
IGJhZHBhZ2VzOwogCiAJaWYgKCFtZW1fbWFwKQogCQlCVUcoKTsKQEAgLTUyNCw2ICs1NDMsMTgg
QEAKIAlkYXRhc2l6ZSA9ICAodW5zaWduZWQgbG9uZykgJl9lZGF0YSAtICh1bnNpZ25lZCBsb25n
KSAmX2V0ZXh0OwogCWluaXRzaXplID0gICh1bnNpZ25lZCBsb25nKSAmX19pbml0X2VuZCAtICh1
bnNpZ25lZCBsb25nKSAmX19pbml0X2JlZ2luOwogCisjaWZkZWYgQ09ORklHX0JBRFJBTQorCXBy
aW50aygiTWVtb3J5OiAlbHVrLyVsdWsgYXZhaWxhYmxlICglZGsga2VybmVsIGNvZGUsICVkayBy
ZXNlcnZlZCwgJWRrIGRhdGEsICVkayBpbml0LCAlbGRrIGhpZ2htZW0sICVsZGsgQmFkUkFNKVxu
IiwKKwkJKHVuc2lnbmVkIGxvbmcpIG5yX2ZyZWVfcGFnZXMoKSA8PCAoUEFHRV9TSElGVC0xMCks
CisJCW1heF9tYXBuciA8PCAoUEFHRV9TSElGVC0xMCksCisJCWNvZGVzaXplID4+IDEwLAorCQly
ZXNlcnZlZHBhZ2VzIDw8IChQQUdFX1NISUZULTEwKSwKKwkJZGF0YXNpemUgPj4gMTAsCisJCWlu
aXRzaXplID4+IDEwLAorCQkodW5zaWduZWQgbG9uZykgKHRvdGFsaGlnaF9wYWdlcyA8PCAoUEFH
RV9TSElGVC0xMCkpLAorCQliYWRwYWdlcyA8PCAoUEFHRV9TSElGVC0xMCkKKwkgICAgICAgKTsK
KyNlbHNlCiAJcHJpbnRrKEtFUk5fSU5GTyAiTWVtb3J5OiAlbHVrLyVsdWsgYXZhaWxhYmxlICgl
ZGsga2VybmVsIGNvZGUsICVkayByZXNlcnZlZCwgJWRrIGRhdGEsICVkayBpbml0LCAlbGRrIGhp
Z2htZW0pXG4iLAogCQkodW5zaWduZWQgbG9uZykgbnJfZnJlZV9wYWdlcygpIDw8IChQQUdFX1NI
SUZULTEwKSwKIAkJbWF4X21hcG5yIDw8IChQQUdFX1NISUZULTEwKSwKQEAgLTUzMyw2ICs1NjQs
NyBAQAogCQlpbml0c2l6ZSA+PiAxMCwKIAkJKHVuc2lnbmVkIGxvbmcpICh0b3RhbGhpZ2hfcGFn
ZXMgPDwgKFBBR0VfU0hJRlQtMTApKQogCSAgICAgICApOworI2VuZGlmCiAKICNpZiBDT05GSUdf
WDg2X1BBRQogCWlmICghY3B1X2hhc19wYWUpCmRpZmYgLXJhdU4gbGludXgtMi40LjIwX29yaWcv
aW5jbHVkZS9hc20taTM4Ni9wYWdlLmggbGludXgtMi40LjIwX0JhZFJBTS9pbmNsdWRlL2FzbS1p
Mzg2L3BhZ2UuaAotLS0gbGludXgtMi40LjIwX29yaWcvaW5jbHVkZS9hc20taTM4Ni9wYWdlLmgJ
U2F0IEF1ZyAgMyAwMjozOTo0NSAyMDAyCisrKyBsaW51eC0yLjQuMjBfQmFkUkFNL2luY2x1ZGUv
YXNtLWkzODYvcGFnZS5oCUZyaSBEZWMgMTMgMTc6MDc6MzAgMjAwMgpAQCAtMTMyLDYgKzEzMiw3
IEBACiAjZGVmaW5lIF9fcGEoeCkJCQkoKHVuc2lnbmVkIGxvbmcpKHgpLVBBR0VfT0ZGU0VUKQog
I2RlZmluZSBfX3ZhKHgpCQkJKCh2b2lkICopKCh1bnNpZ25lZCBsb25nKSh4KStQQUdFX09GRlNF
VCkpCiAjZGVmaW5lIHZpcnRfdG9fcGFnZShrYWRkcikJKG1lbV9tYXAgKyAoX19wYShrYWRkcikg
Pj4gUEFHRV9TSElGVCkpCisjZGVmaW5lIHBoeXNfdG9fcGFnZSh4KQkJKG1lbV9tYXAgKyAoKHVu
c2lnbmVkIGxvbmcpKHgpID4+IFBBR0VfU0hJRlQpKQogI2RlZmluZSBWQUxJRF9QQUdFKHBhZ2Up
CSgocGFnZSAtIG1lbV9tYXApIDwgbWF4X21hcG5yKQogCiAjZGVmaW5lIFZNX0RBVEFfREVGQVVM
VF9GTEFHUwkoVk1fUkVBRCB8IFZNX1dSSVRFIHwgVk1fRVhFQyB8IFwKZGlmZiAtcmF1TiBsaW51
eC0yLjQuMjBfb3JpZy9pbmNsdWRlL2xpbnV4L21tLmggbGludXgtMi40LjIwX0JhZFJBTS9pbmNs
dWRlL2xpbnV4L21tLmgKLS0tIGxpbnV4LTIuNC4yMF9vcmlnL2luY2x1ZGUvbGludXgvbW0uaAlT
YXQgQXVnICAzIDAyOjM5OjQ1IDIwMDIKKysrIGxpbnV4LTIuNC4yMF9CYWRSQU0vaW5jbHVkZS9s
aW51eC9tbS5oCUZyaSBEZWMgMTMgMTc6MDc6MzkgMjAwMgpAQCAtMjk3LDYgKzI5Nyw3IEBACiAj
ZGVmaW5lIFBHX2FyY2hfMQkJMTMKICNkZWZpbmUgUEdfcmVzZXJ2ZWQJCTE0CiAjZGVmaW5lIFBH
X2xhdW5kZXIJCTE1CS8qIHdyaXR0ZW4gb3V0IGJ5IFZNIHByZXNzdXJlLi4gKi8KKyNkZWZpbmUg
UEdfYmFkcmFtCQkxNgogCiAvKiBNYWtlIGl0IHByZXR0aWVyIHRvIHRlc3QgdGhlIGFib3ZlLi4u
ICovCiAjZGVmaW5lIFVubG9ja1BhZ2UocGFnZSkJdW5sb2NrX3BhZ2UocGFnZSkKQEAgLTM4Nyw2
ICszODgsOSBAQAogI2RlZmluZSBQYWdlU2xhYihwYWdlKQkJdGVzdF9iaXQoUEdfc2xhYiwgJihw
YWdlKS0+ZmxhZ3MpCiAjZGVmaW5lIFBhZ2VTZXRTbGFiKHBhZ2UpCXNldF9iaXQoUEdfc2xhYiwg
JihwYWdlKS0+ZmxhZ3MpCiAjZGVmaW5lIFBhZ2VDbGVhclNsYWIocGFnZSkJY2xlYXJfYml0KFBH
X3NsYWIsICYocGFnZSktPmZsYWdzKQorI2RlZmluZSBQYWdlQmFkKHBhZ2UpCQl0ZXN0X2JpdChQ
R19iYWRyYW0sICYocGFnZSktPmZsYWdzKQorI2RlZmluZSBQYWdlU2V0QmFkKHBhZ2UpCXNldF9i
aXQoUEdfYmFkcmFtLCAmKHBhZ2UpLT5mbGFncykKKyNkZWZpbmUgUGFnZVRlc3RhbmRTZXRCYWQo
cGFnZSkJdGVzdF9hbmRfc2V0X2JpdChQR19iYWRyYW0sICYocGFnZSktPmZsYWdzKQogI2RlZmlu
ZSBQYWdlUmVzZXJ2ZWQocGFnZSkJdGVzdF9iaXQoUEdfcmVzZXJ2ZWQsICYocGFnZSktPmZsYWdz
KQogCiAjZGVmaW5lIFBhZ2VBY3RpdmUocGFnZSkJdGVzdF9iaXQoUEdfYWN0aXZlLCAmKHBhZ2Up
LT5mbGFncykKZGlmZiAtcmF1TiBsaW51eC0yLjQuMjBfb3JpZy9tbS9ib290bWVtLmMgbGludXgt
Mi40LjIwX0JhZFJBTS9tbS9ib290bWVtLmMKLS0tIGxpbnV4LTIuNC4yMF9vcmlnL21tL2Jvb3Rt
ZW0uYwlGcmkgTm92IDI5IDAwOjUzOjE1IDIwMDIKKysrIGxpbnV4LTIuNC4yMF9CYWRSQU0vbW0v
Ym9vdG1lbS5jCUZyaSBEZWMgMTMgMTY6NTI6NDkgMjAwMgpAQCAtMjU3LDggKzI1NywxNSBAQAog
CQlpZiAoIXRlc3RfYml0KGksIGJkYXRhLT5ub2RlX2Jvb3RtZW1fbWFwKSkgewogCQkJY291bnQr
KzsKIAkJCUNsZWFyUGFnZVJlc2VydmVkKHBhZ2UpOworI2lmZGVmIENPTkZJR19CQURSQU0KKwkJ
CWlmICghUGFnZUJhZChwYWdlKSkgeworCQkJCXNldF9wYWdlX2NvdW50KHBhZ2UsIDEpOworCQkJ
CV9fZnJlZV9wYWdlKHBhZ2UpOworCQkJfQorI2Vsc2UKIAkJCXNldF9wYWdlX2NvdW50KHBhZ2Us
IDEpOwogCQkJX19mcmVlX3BhZ2UocGFnZSk7CisjZW5kaWYKIAkJfQogCX0KIAl0b3RhbCArPSBj
b3VudDsKQEAgLTI3Miw4ICsyNzksMTUgQEAKIAlmb3IgKGkgPSAwOyBpIDwgKChiZGF0YS0+bm9k
ZV9sb3dfcGZuLShiZGF0YS0+bm9kZV9ib290X3N0YXJ0ID4+IFBBR0VfU0hJRlQpKS84ICsgUEFH
RV9TSVpFLTEpL1BBR0VfU0laRTsgaSsrLHBhZ2UrKykgewogCQljb3VudCsrOwogCQlDbGVhclBh
Z2VSZXNlcnZlZChwYWdlKTsKKyNpZmRlZiBDT05GSUdfQkFEUkFNCisJCWlmICghUGFnZUJhZChw
YWdlKSkgeworCQkJc2V0X3BhZ2VfY291bnQocGFnZSwgMSk7CisJCQlfX2ZyZWVfcGFnZShwYWdl
KTsKKwkJfQorI2Vsc2UKIAkJc2V0X3BhZ2VfY291bnQocGFnZSwgMSk7CiAJCV9fZnJlZV9wYWdl
KHBhZ2UpOworI2VuZGlmCiAJfQogCXRvdGFsICs9IGNvdW50OwogCWJkYXRhLT5ub2RlX2Jvb3Rt
ZW1fbWFwID0gTlVMTDsKZGlmZiAtcmF1TiBsaW51eC0yLjQuMjBfb3JpZy9tbS9wYWdlX2FsbG9j
LmMgbGludXgtMi40LjIwX0JhZFJBTS9tbS9wYWdlX2FsbG9jLmMKLS0tIGxpbnV4LTIuNC4yMF9v
cmlnL21tL3BhZ2VfYWxsb2MuYwlGcmkgTm92IDI5IDAwOjUzOjE1IDIwMDIKKysrIGxpbnV4LTIu
NC4yMF9CYWRSQU0vbW0vcGFnZV9hbGxvYy5jCUZyaSBEZWMgMTMgMTY6NTI6NDkgMjAwMgpAQCAt
MTAsNiArMTAsNyBAQAogICogIFJlc2hhcGVkIGl0IHRvIGJlIGEgem9uZWQgYWxsb2NhdG9yLCBJ
bmdvIE1vbG5hciwgUmVkIEhhdCwgMTk5OQogICogIERpc2NvbnRpZ3VvdXMgbWVtb3J5IHN1cHBv
cnQsIEthbm9qIFNhcmNhciwgU0dJLCBOb3YgMTk5OQogICogIFpvbmUgYmFsYW5jaW5nLCBLYW5v
aiBTYXJjYXIsIFNHSSwgSmFuIDIwMDAKKyAqICBCYWRSQU0gaGFuZGxpbmcsIFJpY2sgdmFuIFJl
aW4sIEZlYiAyMDAxCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgpAQCAtODUyLDMg
Kzg1Myw5NiBAQAogfQogCiBfX3NldHVwKCJtZW1mcmFjPSIsIHNldHVwX21lbV9mcmFjKTsKKwor
CisjaWZkZWYgQ09ORklHX0JBRFJBTQorCisvKiBHaXZlbiBhIHBvaW50ZWQtYXQgYWRkcmVzcyBh
bmQgYSBtYXNrLCBpbmNyZW1lbnQgdGhlIHBhZ2Ugc28gdGhhdCB0aGUKKyAqIG1hc2sgaGlkZXMg
dGhlIGluY3JlbWVudC4gUmV0dXJuIDAgaWYgbm8gaW5jcmVtZW50IGlzIHBvc3NpYmxlLgorICov
CitzdGF0aWMgaW50IF9faW5pdCBuZXh0X21hc2tlZF9hZGRyZXNzICh1bnNpZ25lZCBsb25nICph
ZGRycCwgdW5zaWduZWQgbG9uZyBtYXNrKQoreworICAgICAgICB1bnNpZ25lZCBsb25nIGluYz0x
OworICAgICAgICB1bnNpZ25lZCBsb25nIG5ld3ZhbCA9ICphZGRycDsKKwl3aGlsZSAoaW5jICYg
bWFzaykKKwkJaW5jICs9IGluYzsKKyAgICAgICAgd2hpbGUgKGluYyAhPSAwKSB7CisJCW5ld3Zh
bCArPSBpbmM7CisJCW5ld3ZhbCAmPSB+bWFzazsKKwkJbmV3dmFsIHw9ICgoKmFkZHJwKSAmIG1h
c2spOworCQlpZiAobmV3dmFsID4gKmFkZHJwKSB7CisJCQkqYWRkcnAgPSBuZXd2YWw7CisJCQly
ZXR1cm4gMTsKKwkJfQorCQlkbyB7CisJCQlpbmMgKz0gaW5jOworCQl9IHdoaWxlIChpbmMgJiB+
bWFzayk7CisJCXdoaWxlIChpbmMgJiBtYXNrKQorCQkJaW5jICs9IGluYzsKKyAgICAgICAgfQor
ICAgICAgICByZXR1cm4gMDsKK30KKworCit2b2lkIF9faW5pdCBiYWRyYW1fbWFya3BhZ2VzIChp
bnQgYXJnYywgdW5zaWduZWQgbG9uZyAqYXJndikgeworCXVuc2lnbmVkIGxvbmcgYWRkciwgbWFz
azsKKyAgICAgICAgd2hpbGUgKGFyZ2MtLSA+IDApIHsKKyAgICAgICAgICAgICAgICBhZGRyID0g
KmFyZ3YrKzsKKyAgICAgICAgICAgICAgICBtYXNrID0gKGFyZ2MtLSA+IDApID8gKmFyZ3YrKyA6
IH4wTDsKKyAgICAgICAgICAgICAgICBtYXNrIHw9IH5QQUdFX01BU0s7CS8vIE9wdGltYWxpc2F0
aW9uCisJCWFkZHIgJj0gbWFzazsJCS8vICBOb3JtYWxpc2F0aW9uCisgICAgICAgICAgICAgICAg
ZG8geworCQkJc3RydWN0IHBhZ2UgKnBnID0gcGh5c190b19wYWdlKGFkZHIpOworcHJpbnRrICgi
JTA1bHggIiwgX19wYShfX3ZhKGFkZHIpKSA+PiBQQUdFX1NISUZUKTsKK3ByaW50ayAoIj0lMDVs
eC8lMDVseCAiLCBwZy1tZW1fbWFwLCBtYXhfbWFwbnIpOworCQkJLy8gaWYgKFZBTElEX1BBR0Uo
cGcpKSB7CisJCQkJaWYgKFBhZ2VUZXN0YW5kU2V0QmFkIChwZykpIHsKKwkJCQkJcmVzZXJ2ZV9i
b290bWVtIChhZGRyLCBQQUdFX1NJWkUpOworcHJpbnRrICgiQkFEICIpOworCQkJCX0KK2Vsc2Ug
cHJpbnRrICgiQkZSICIpOworCQkJLy8gfQorLy8gZWxzZSBwcmludGsgKCJJTlYgIik7CisgICAg
ICAgICAgICAgICAgfSB3aGlsZSAobmV4dF9tYXNrZWRfYWRkcmVzcyAoJmFkZHIsbWFzaykpOwor
ICAgICAgICB9Cit9CisKKworCisvKioqKioqKioqKiogQ09ORklHX0JBRFJBTTogQ1VTVE9NSVNB
QkxFIFNFQ1RJT04gU1RBUlRTIEhFUkUgKioqKioqKioqKioqKioqKioqLworCisKKy8vIEVudGVy
IHlvdXIgY3VzdG9tIEJhZFJBTSBwYXR0ZXJucyBoZXJlIGFzIHBhaXJzIG9mIHVuc2lnbmVkIGxv
bmcgaW50ZWdlcnMuCisvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGVzZSBGL00gcGFpcnMs
IHJlZmVyIHRvIERvY3VtZW50YXRpb24vYmFkcmFtLnR4dAorCisKK3N0YXRpYyB1bnNpZ25lZCBs
b25nIF9faW5pdCBiYWRyYW1fY3VzdG9tW10gPSB7CisJMCwJLy8gTnVtYmVyIG9mIGxvbmd3b3Jk
cyB0aGF0IGZvbGxvdywgYXMgRi9NIHBhaXJzCit9OworCisKKy8qKioqKioqKioqKiBDT05GSUdf
QkFEUkFNOiBDVVNUT01JU0FCTEUgU0VDVElPTiBFTkRTIEhFUkUgKioqKioqKioqKioqKioqKioq
KiovCisKKworCitzdGF0aWMgaW50IF9faW5pdCBiYWRyYW1fc2V0dXAgKGNoYXIgKnN0cikKK3sK
Kwl1bnNpZ25lZCBsb25nIG9wdHNbM107CisJaWYgKCFtZW1fbWFwKSBCVUcoKTsKK3ByaW50ayAo
IlBBR0VfT0ZGU0VUPTB4JTA4bHhcbiIsIFBBR0VfT0ZGU0VUKTsKK3ByaW50ayAoIkJhZFJBTSBv
cHRpb24gaXMgJXNcbiIsIHN0cik7CisJaWYgKCpzdHIrKyA9PSAnPScpCisJCXdoaWxlIChzdHI9
Z2V0X29wdGlvbnMgKHN0ciwgMywgKGludCAqKSBvcHRzKSwgKm9wdHMpIHsKK3ByaW50ayAoIiAg
IC0tPiBtYXJraW5nIDB4JTA4bHgsIDB4JTA4bHggIFslbGRdXG4iLCBvcHRzWzFdLCBvcHRzWzJd
LCBvcHRzWzBdKTsKKwkJCWJhZHJhbV9tYXJrcGFnZXMgKCpvcHRzLCBvcHRzKzEpOworCQkJaWYg
KCpvcHRzPT0xKQorCQkJCWJyZWFrOworCQl9OworCWJhZHJhbV9tYXJrcGFnZXMgKCpiYWRyYW1f
Y3VzdG9tLCBiYWRyYW1fY3VzdG9tKzEpOworCXJldHVybiAwOworfQorCitfX3NldHVwKCJiYWRy
YW0iLCBiYWRyYW1fc2V0dXApOworCisjZW5kaWYgLyogQ09ORklHX0JBRFJBTSAqLworCg==

--Multipart_Fri__13_Dec_2002_23:37:41_+0100_0823a320--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/