patch for vanilla kernel 2.6.18

Lino Sanfilippo <[email protected]> Tue, 07 Jul 2009 17:12:52 +0200
Newsgroups gmane.linux.dazuko.devel
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------080403000800050709010803
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit



Geschäftsführender Gesellschafter: Tjark Auerbach
Sitz der Gesellschaft: Tettnang
Handelsregister: Amtsgericht Ulm, HRB 630992
ALLGEMEINE GESCHÄFTSBEDINGUNGEN
Es gelten unsere Allgemeinen Geschäftsbedingungen
(AGB). Sie finden sie in der jeweils gültigen Fassung
im Internet unter http://www.avira.de/agb
***************************************************
--------------080403000800050709010803
Content-Type: text/plain;
 name="patch_2.6.18"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="patch_2.6.18"

ZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9DSEFOR0VMT0cgZGF6dWtvZnMtMy4w
LjAtcmM0XzIuNi4xOC9DSEFOR0VMT0cKLS0tIGRhenVrb2ZzLTMuMC4wL0NIQU5HRUxPRwky
MDA5LTAyLTIyIDE3OjUxOjIyLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAt
cmM0XzIuNi4xOC9DSEFOR0VMT0cJMjAwOC0xMi0xMiAxODowMTowNy4wMDAwMDAwMDAgKzAx
MDAKQEAgLTIsMTEgKzIsNiBAQAogIERhenVrb0ZTIENIQU5HRUxPRwogPT09PT09PT09PT09
PT09PT09PT0KIAotMy4wLjAgKDIwMDktMDItMjIpCi0tIGFkZGVkIGRlZmluZSBmb3IgdmVy
c2lvbiBudW1iZXIgb3V0cHV0Ci0tIGFkZGVkIHBhdGNoZXMgZm9yIHZhcmlvdXMgb3RoZXIg
a2VybmVscwotCi0KIDMuMC4wLXJjNCAoMjAwOC0xMS0zMCkKIC0gZml4IGluY29ycmVjdCBk
ZW50cnkvdmZzbW50IHJlZmVyZW5jaW5nIHdoZW4gYWNjZXNzIGRlbmllZAogLSBmaXggaW1w
cm9wZXIgY2xlYW51cCBpbiBzZXZlcmFsIGVycm9yIGhhbmRsaW5nIGNvbmRpdGlvbnMKZGlm
ZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9jdHJsX2Rldi5jIGRhenVrb2ZzLTMuMC4w
LXJjNF8yLjYuMTgvY3RybF9kZXYuYwotLS0gZGF6dWtvZnMtMy4wLjAvY3RybF9kZXYuYwky
MDA5LTAyLTIyIDE3OjQ1OjIwLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAt
cmM0XzIuNi4xOC9jdHJsX2Rldi5jCTIwMDktMDItMDEgMjM6MzY6MTIuMDAwMDAwMDAwICsw
MTAwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRl
IDxsaW51eC9jZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUg
PGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogCiAjaW5jbHVkZSAiZXZlbnQuaCIKICNpbmNs
dWRlICJkZXYuaCIKQEAgLTE4MSw5ICsxODIsMTEgQEAgaW50IGRhenVrb2ZzX2N0cmxfZGV2
X2luaXQoaW50IGRldl9tYWpvcgogCWlmIChlcnIpCiAJCWdvdG8gZXJyb3Jfb3V0MTsKIAor
CWRldiA9IGRldmljZV9jcmVhdGUoZGF6dWtvZnNfY2xhc3MsICZwbGF0Zm9ybV9idXMsIAor
CSAgICAgICAgICAgICAgICAgICAgTUtERVYoZGV2X21ham9yLCBkZXZfbWlub3IpLCAiJXMu
Y3RybCIsIAorCQkJICAgIERFVklDRV9OQU1FKTsKKwogCS8qIGNyZWF0ZSBjb250cm9sIGRl
dmljZSAqLwotCWRldiA9IGRldmljZV9jcmVhdGUoZGF6dWtvZnNfY2xhc3MsIE5VTEwsIE1L
REVWKGRldl9tYWpvciwgZGV2X21pbm9yKSwKLQkJCSAgICBOVUxMLCAiJXMuY3RybCIsIERF
VklDRV9OQU1FKTsKIAlpZiAoSVNfRVJSKGRldikpIHsKIAkJZXJyID0gUFRSX0VSUihkZXYp
OwogCQlnb3RvIGVycm9yX291dDI7CkBAIC0xOTcsNiArMjAwLDcgQEAgZXJyb3Jfb3V0MToK
IAlyZXR1cm4gZXJyOwogfQogCisKIHZvaWQgZGF6dWtvZnNfY3RybF9kZXZfZGVzdHJveShp
bnQgZGV2X21ham9yLCBpbnQgZGV2X21pbm9yLAogCQkJICAgICAgIHN0cnVjdCBjbGFzcyAq
ZGF6dWtvZnNfY2xhc3MpCiB7CmRpZmYgLXggQ1ZTIC1ydXAgZGF6dWtvZnMtMy4wLjAvZGF6
dWtvZnNfZnMuaCBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjE4L2RhenVrb2ZzX2ZzLmgKLS0t
IGRhenVrb2ZzLTMuMC4wL2RhenVrb2ZzX2ZzLmgJMjAwOS0wMi0yMiAxNzo0MzoxMS4wMDAw
MDAwMDAgKzAxMDAKKysrIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMTgvZGF6dWtvZnNfZnMu
aAkyMDA5LTA3LTAzIDE4OjAxOjU2LjAwMDAwMDAwMCArMDIwMApAQCAtMyw3ICszLDcgQEAK
ICAgIENvcHlyaWdodCAoQykgMTk5Ny0yMDA0IEVyZXogWmFkb2sKICAgIENvcHlyaWdodCAo
QykgMjAwMS0yMDA0IFN0b255IEJyb29rIFVuaXZlcnNpdHkKICAgIENvcHlyaWdodCAoQykg
MjAwNC0yMDA3IEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgQ29ycC4KLSAgIENv
cHlyaWdodCAoQykgMjAwOC0yMDA5IEpvaG4gT2duZXNzCisgICBDb3B5cmlnaHQgKEMpIDIw
MDggSm9obiBPZ25lc3MKICAgICAgQXV0aG9yOiBKb2huIE9nbmVzcyA8ZGF6dWtvY29kZUBv
Z25lc3MubmV0PgogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yNCw4ICsyNCw2IEBACiAjaWZuZGVmIF9f
REFaVUtPRlNfRlNfSAogI2RlZmluZSBfX0RBWlVLT0ZTX0ZTX0gKIAotI2RlZmluZSBEQVpV
S09GU19WRVJTSU9OICIzLjAuMCIKLQogZXh0ZXJuIHN0cnVjdCBrbWVtX2NhY2hlICpkYXp1
a29mc19kZW50cnlfaW5mb19jYWNoZXA7CiBleHRlcm4gc3RydWN0IGttZW1fY2FjaGUgKmRh
enVrb2ZzX2ZpbGVfaW5mb19jYWNoZXA7CiBleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9u
cyBkYXp1a29mc19tYWluX2ZvcHM7CkBAIC01OSw2ICs1NywzNyBAQCBzdHJ1Y3QgZGF6dWtv
ZnNfZmlsZV9pbmZvIHsKIAlzdHJ1Y3QgZmlsZSAqbG93ZXJfZmlsZTsKIH07CiAKK3ZvaWQg
ZnNzdGFja19jb3B5X2lub2RlX3NpemUoc3RydWN0IGlub2RlICpkc3QsIGNvbnN0IHN0cnVj
dCBpbm9kZSAqc3JjKTsKKworc3RhdGljIGlubGluZQordm9pZCBmc3N0YWNrX2NvcHlfYXR0
cl9hdGltZShzdHJ1Y3QgaW5vZGUgKmRzdCwgY29uc3Qgc3RydWN0IGlub2RlICpzcmMpCit7
CisJZHN0LT5pX2F0aW1lID0gc3JjLT5pX2F0aW1lOworfQorCitzdGF0aWMgaW5saW5lCit2
b2lkIGZzc3RhY2tfY29weV9hdHRyX3RpbWVzKHN0cnVjdCBpbm9kZSAqZHN0LCBjb25zdCBz
dHJ1Y3QgaW5vZGUgKnNyYykKK3sKKwlkc3QtPmlfYXRpbWUgPSBzcmMtPmlfYXRpbWU7CisJ
ZHN0LT5pX210aW1lID0gc3JjLT5pX210aW1lOworCWRzdC0+aV9jdGltZSA9IHNyYy0+aV9j
dGltZTsKK30KKworc3RhdGljIGlubGluZSAKK3ZvaWQgZnNzdGFja19jb3B5X2F0dHJfYWxs
KHN0cnVjdCBpbm9kZSAqZHN0LCBjb25zdCBzdHJ1Y3QgaW5vZGUgKnNyYykKK3sKKwlkc3Qt
PmlfbW9kZSA9IHNyYy0+aV9tb2RlOworCWRzdC0+aV91aWQgPSBzcmMtPmlfdWlkOworCWRz
dC0+aV9naWQgPSBzcmMtPmlfZ2lkOworCWRzdC0+aV9yZGV2ID0gc3JjLT5pX3JkZXY7CisJ
ZHN0LT5pX2F0aW1lID0gc3JjLT5pX2F0aW1lOworCWRzdC0+aV9tdGltZSA9IHNyYy0+aV9t
dGltZTsKKwlkc3QtPmlfY3RpbWUgPSBzcmMtPmlfY3RpbWU7CisJZHN0LT5pX2Jsa3NpemU9
IHNyYy0+aV9ibGtzaXplOworCWRzdC0+aV9ibGtiaXRzID0gc3JjLT5pX2Jsa2JpdHM7CisJ
ZHN0LT5pX2ZsYWdzID0gc3JjLT5pX2ZsYWdzOworfQorCiBzdGF0aWMgaW5saW5lCiBzdHJ1
Y3QgZGF6dWtvZnNfc2JfaW5mbyAqR0VUX1NCX0lORk8oc3RydWN0IHN1cGVyX2Jsb2NrICp1
cHBlcl9zYikKIHsKZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9kZW50cnkuYyBk
YXp1a29mcy0zLjAuMC1yYzRfMi42LjE4L2RlbnRyeS5jCi0tLSBkYXp1a29mcy0zLjAuMC9k
ZW50cnkuYwkyMDA5LTAyLTIyIDE3OjQ0OjIyLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtv
ZnMtMy4wLjAtcmM0XzIuNi4xOC9kZW50cnkuYwkyMDA4LTEyLTEyIDE4OjE2OjE1LjAwMDAw
MDAwMCArMDEwMApAQCAtMjUsNyArMjUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAj
aW5jbHVkZSA8bGludXgvbmFtZWkuaD4KICNpbmNsdWRlIDxsaW51eC9tb3VudC5oPgotI2lu
Y2x1ZGUgPGxpbnV4L2ZzX3N0YWNrLmg+CisKIAogI2luY2x1ZGUgImRhenVrb2ZzX2ZzLmgi
CiAKQEAgLTY1LDE5ICs2NSwxOSBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX2RfcmV2YWxpZGF0
ZShzdHJ1Y3QgCiAKIAlsb3dlcl9tbnQgPSBHRVRfTE9XRVJfTU5UKGRlbnRyeSk7CiAKLQl2
ZnNtb3VudF9zYXZlID0gbmQtPnBhdGgubW50OwotCWRlbnRyeV9zYXZlID0gbmQtPnBhdGgu
ZGVudHJ5OworCXZmc21vdW50X3NhdmUgPSBuZC0+bW50OworCWRlbnRyeV9zYXZlID0gbmQt
PmRlbnRyeTsKIAotCW5kLT5wYXRoLm1udCA9IG1udGdldChsb3dlcl9tbnQpOwotCW5kLT5w
YXRoLmRlbnRyeSA9IGRnZXQobG93ZXJfZGVudHJ5KTsKKwluZC0+bW50ID0gbW50Z2V0KGxv
d2VyX21udCk7CisJbmQtPmRlbnRyeSA9IGRnZXQobG93ZXJfZGVudHJ5KTsKIAogCXZhbGlk
ID0gbG93ZXJfZGVudHJ5LT5kX29wLT5kX3JldmFsaWRhdGUobG93ZXJfZGVudHJ5LCBuZCk7
CiAKIAltbnRwdXQobG93ZXJfbW50KTsKIAlkcHV0KGxvd2VyX2RlbnRyeSk7CiAKLQluZC0+
cGF0aC5tbnQgPSB2ZnNtb3VudF9zYXZlOwotCW5kLT5wYXRoLmRlbnRyeSA9IGRlbnRyeV9z
YXZlOworCW5kLT5tbnQgPSB2ZnNtb3VudF9zYXZlOworCW5kLT5kZW50cnkgPSBkZW50cnlf
c2F2ZTsKIAogCS8qIHVwZGF0ZSB0aGUgaW5vZGUsIGV2ZW4gaWYgZF9yZXZhbGlkYXRlKCkg
IT0gMSAqLwogCWlmIChkZW50cnktPmRfaW5vZGUpIHsKQEAgLTg1LDcgKzg1LDcgQEAgc3Rh
dGljIGludCBkYXp1a29mc19kX3JldmFsaWRhdGUoc3RydWN0IAogCiAJCWxvd2VyX2lub2Rl
ID0gR0VUX0xPV0VSX0lOT0RFKGRlbnRyeS0+ZF9pbm9kZSk7CiAKLQkJZnNzdGFja19jb3B5
X2F0dHJfYWxsKGRlbnRyeS0+ZF9pbm9kZSwgbG93ZXJfaW5vZGUsIE5VTEwpOworCQlmc3N0
YWNrX2NvcHlfYXR0cl9hbGwoZGVudHJ5LT5kX2lub2RlLCBsb3dlcl9pbm9kZSk7CiAJfQog
b3V0OgogCXJldHVybiB2YWxpZDsKZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9l
dmVudC5jIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMTgvZXZlbnQuYwotLS0gZGF6dWtvZnMt
My4wLjAvZXZlbnQuYwkyMDA5LTAyLTIyIDE3OjQ0OjAzLjAwMDAwMDAwMCArMDEwMAorKysg
ZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4xOC9ldmVudC5jCTIwMDktMDctMDMgMTg6NTY6NTMu
MDAwMDAwMDAwICswMjAwCkBAIC0yMyw3ICsyMyw2IEBACiAjaW5jbHVkZSA8bGludXgvZmls
ZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4K
LSNpbmNsdWRlIDxsaW51eC9mcmVlemVyLmg+CiAKICNpbmNsdWRlICJkZXYuaCIKICNpbmNs
dWRlICJkYXp1a29mc19mcy5oIgpAQCAtMTEzLDIxICsxMTIsMjEgQEAgaW50IGRhenVrb2Zz
X2luaXRfZXZlbnRzKHZvaWQpCiAJZGF6dWtvZnNfZ3JvdXBfY2FjaGVwID0KIAkJa21lbV9j
YWNoZV9jcmVhdGUoImRhenVrb2ZzX2dyb3VwX2NhY2hlIiwKIAkJCQkgIHNpemVvZihzdHJ1
Y3QgZGF6dWtvZnNfZ3JvdXApLCAwLAotCQkJCSAgU0xBQl9IV0NBQ0hFX0FMSUdOLCBOVUxM
KTsKKwkJCQkgIFNMQUJfSFdDQUNIRV9BTElHTiwgTlVMTCwgTlVMTCk7CiAJaWYgKCFkYXp1
a29mc19ncm91cF9jYWNoZXApCiAJCWdvdG8gZXJyb3Jfb3V0OwogCiAJZGF6dWtvZnNfZXZl
bnRfY29udGFpbmVyX2NhY2hlcCA9CiAJCWttZW1fY2FjaGVfY3JlYXRlKCJkYXp1a29mc19l
dmVudF9jb250YWluZXJfY2FjaGUiLAogCQkJCSAgc2l6ZW9mKHN0cnVjdCBkYXp1a29mc19l
dmVudF9jb250YWluZXIpLCAwLAotCQkJCSAgU0xBQl9IV0NBQ0hFX0FMSUdOLCBOVUxMKTsK
KwkJCQkgIFNMQUJfSFdDQUNIRV9BTElHTiwgTlVMTCwgTlVMTCk7CiAJaWYgKCFkYXp1a29m
c19ldmVudF9jb250YWluZXJfY2FjaGVwKQogCQlnb3RvIGVycm9yX291dDsKIAogCWRhenVr
b2ZzX2V2ZW50X2NhY2hlcCA9CiAJCWttZW1fY2FjaGVfY3JlYXRlKCJkYXp1a29mc19ldmVu
dF9jYWNoZSIsCiAJCQkJICBzaXplb2Yoc3RydWN0IGRhenVrb2ZzX2V2ZW50KSwgMCwKLQkJ
CQkgIFNMQUJfSFdDQUNIRV9BTElHTiwgTlVMTCk7CisJCQkJICBTTEFCX0hXQ0FDSEVfQUxJ
R04sIE5VTEwsIE5VTEwpOwogCWlmICghZGF6dWtvZnNfZXZlbnRfY2FjaGVwKQogCQlnb3Rv
IGVycm9yX291dDsKIApAQCAtMTYyLDE2ICsxNjEsMjMgQEAgc3RhdGljIGludCBjYXB0dXJl
X2dyb3VwX2NvdW50KGludCAqY2FjaAogCXJldHVybiBlcnI7CiB9CiAKLXN0YXRpYyBpbnQg
Z2V0X2dyb3VwX2NvdW50KHZvaWQpCitzdGF0aWMgaW50IGdldF9ncm91cF9jb3VudF9pbnRl
cnJ1cHRpYmxlKHZvaWQpCiB7CiAJaW50IGNhY2hlID0gMDsKLQlpbnQgcmV0ID0gd2FpdF9l
dmVudF9mcmVlemFibGUoX19ncm91cF9jb3VudF9xdWV1ZSwKLQkJCQkgICAgICAgY2FwdHVy
ZV9ncm91cF9jb3VudCgmY2FjaGUpID09IDApOworCWludCByZXQgPSB3YWl0X2V2ZW50X2lu
dGVycnVwdGlibGUoX19ncm91cF9jb3VudF9xdWV1ZSwKKwkJCQkgICAgICAgICAgIGNhcHR1
cmVfZ3JvdXBfY291bnQoJmNhY2hlKSA9PSAwKTsKIAlpZiAocmV0ID09IDApCiAJCXJldCA9
IF9fZ3JvdXBfY291bnQ7CiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGludCBnZXRfZ3Jv
dXBfY291bnQodm9pZCkKK3sKKwlpbnQgY2FjaGUgPSAwOworCXdhaXRfZXZlbnQoX19ncm91
cF9jb3VudF9xdWV1ZSwgY2FwdHVyZV9ncm91cF9jb3VudCgmY2FjaGUpID09IDApOworCXJl
dHVybiBfX2dyb3VwX2NvdW50OworfQorCiBzdGF0aWMgdm9pZCBwdXRfZ3JvdXBfY291bnQo
dm9pZCkKIHsKIAltdXRleF9sb2NrKCZncm91cF9jb3VudF9tdXRleCk7CkBAIC0zOTksNyAr
NDA1LDcgQEAgaW50IGRhenVrb2ZzX2FkZF9ncm91cChjb25zdCBjaGFyICpuYW1lLAogCWlu
dCBhbHJlYWR5X2V4aXN0czsKIAlpbnQgYXZhaWxhYmxlX2lkID0gMDsKIAlzdHJ1Y3QgZGF6
dWtvZnNfZ3JvdXAgKmdycDsKLQlpbnQgZ3JwX2NvdW50ID0gZ2V0X2dyb3VwX2NvdW50KCk7
CisJaW50IGdycF9jb3VudCA9IGdldF9ncm91cF9jb3VudF9pbnRlcnJ1cHRpYmxlKCk7CiAK
IAlpZiAoZ3JwX2NvdW50IDwgMCkgewogCQlyZXQgPSBncnBfY291bnQ7CkBAIC00NDcsNyAr
NDUzLDcgQEAgaW50IGRhenVrb2ZzX3JlbW92ZV9ncm91cChjb25zdCBjaGFyICpuYQogCWlu
dCByZXQgPSAwOwogCXN0cnVjdCBkYXp1a29mc19ncm91cCAqZ3JwOwogCXN0cnVjdCBsaXN0
X2hlYWQgKnBvczsKLQlpbnQgZ3JwX2NvdW50ID0gZ2V0X2dyb3VwX2NvdW50KCk7CisJaW50
IGdycF9jb3VudCA9IGdldF9ncm91cF9jb3VudF9pbnRlcnJ1cHRpYmxlKCk7CiAKIAlpZiAo
Z3JwX2NvdW50IDwgMCkgewogCQlyZXQgPSBncnBfY291bnQ7CkBAIC03MDEsMTEgKzcwNywx
MCBAQCBpbnQgZGF6dWtvZnNfY2hlY2tfYWNjZXNzKHN0cnVjdCBkZW50cnkgCiB7CiAJc3Ry
dWN0IGRhenVrb2ZzX2V2ZW50X2NvbnRhaW5lciAqZWNfYXJyYXlbR1JPVVBfQ09VTlRdOwog
CXN0cnVjdCBkYXp1a29mc19ldmVudCAqZXZ0OwotCWludCBncnBfY291bnQgPSBnZXRfZ3Jv
dXBfY291bnQoKTsKLQlpbnQgZXJyOworCWludCBncnBfY291bnQ7CisJaW50IGVyciA9IDA7
CiAKLQlpZiAoZ3JwX2NvdW50IDwgMCkKLQkJcmV0dXJuIGdycF9jb3VudDsKKwlncnBfY291
bnQgPSBnZXRfZ3JvdXBfY291bnQoKTsKIAogCWlmIChjaGVja19hY2Nlc3NfcHJlY2hlY2so
Z3JwX2NvdW50KSkgewogCQlwdXRfZ3JvdXBfY291bnQoKTsKQEAgLTcxMywzMiArNzE4LDI5
IEBAIGludCBkYXp1a29mc19jaGVja19hY2Nlc3Moc3RydWN0IGRlbnRyeSAKIAl9CiAKIAkv
KiBhdCB0aGlzIHBvaW50LCB0aGUgYWNjZXNzIHNob3VsZCBiZSBoYW5kbGVkICovCi0KIAlp
ZiAoYWxsb2NhdGVfZXZlbnRfYW5kX2NvbnRhaW5lcnMoJmV2dCwgZWNfYXJyYXksIGdycF9j
b3VudCkpIHsKIAkJcHV0X2dyb3VwX2NvdW50KCk7Ci0JCWVyciA9IC1FTk9NRU07Ci0JCWdv
dG8gb3V0OworCQlyZXR1cm4gLUVOT01FTTsKIAl9Ci0KIAlldnQtPmRlbnRyeSA9IGRnZXQo
ZGVudHJ5KTsKIAlldnQtPm1udCA9IG1udGdldChtbnQpOwogCWV2dC0+cGlkID0gY3VycmVu
dC0+cGlkOwotCiAJYXNzaWduX2V2ZW50X3RvX2dyb3VwcyhldnQsIGVjX2FycmF5KTsKIAog
CXB1dF9ncm91cF9jb3VudCgpOwogCi0JLyogd2FpdCB1bnRpbCBldmVudCBjb21wbGV0ZWx5
IHByb2Nlc3NlZCBvciBzaWduYWwgKi8KLQllcnIgPSB3YWl0X2V2ZW50X2ZyZWV6YWJsZShl
dnQtPnF1ZXVlLCBldmVudF9hc3NpZ25lZChldnQpID09IDApOworCS8qIHdhaXQgdW50aWwg
ZXZlbnQgY29tcGxldGVseSBwcm9jZXNzZWQgKi8KKwl3YWl0X2V2ZW50KGV2dC0+cXVldWUs
IGV2ZW50X2Fzc2lnbmVkKGV2dCkgPT0gMCk7CiAKIAlpZiAoZXZ0LT5kZW55KQogCQllcnIg
PSAtRVBFUk07CiAKIAlyZWxlYXNlX2V2ZW50KGV2dCwgMCwgMCk7Ci1vdXQ6CisJCiAJcmV0
dXJuIGVycjsKIH0KIAorCiBpbnQgZGF6dWtvZnNfZ3JvdXBfb3Blbl90cmFja2luZyh1bnNp
Z25lZCBsb25nIGdyb3VwX2lkKQogewogCXN0cnVjdCBkYXp1a29mc19ncm91cCAqZ3JwOwpA
QCAtODc0LDcgKzg3Niw4IEBAIHN0YXRpYyBzdHJ1Y3QgZGF6dWtvZnNfZXZlbnRfY29udGFp
bmVyICoKIAkvKiBtb3ZlIGZpcnN0IHRvZG8taXRlbSB0byB3b3JraW5nIGxpc3QgKi8KIAlt
dXRleF9sb2NrKCZ3b3JrX211dGV4KTsKIAlpZiAoIWxpc3RfZW1wdHkoJmdycC0+dG9kb19s
aXN0Lmxpc3QpKSB7Ci0JCWVjID0gbGlzdF9maXJzdF9lbnRyeSgmZ3JwLT50b2RvX2xpc3Qu
bGlzdCwKKwkJc3RydWN0IGxpc3RfaGVhZCAqaGVhZCA9ICZncnAtPnRvZG9fbGlzdC5saXN0
OworCQllYyA9IGxpc3RfZW50cnkoaGVhZC0+bmV4dCwKIAkJCQkgICAgICBzdHJ1Y3QgZGF6
dWtvZnNfZXZlbnRfY29udGFpbmVyLCBsaXN0KTsKIAkJbGlzdF9kZWwoJmVjLT5saXN0KTsK
IAkJbGlzdF9hZGQoJmVjLT5saXN0LCAmZ3JwLT53b3JraW5nX2xpc3QubGlzdCk7CkBAIC05
MjgsNyArOTMxLDggQEAgc3RhdGljIGludCBvcGVuX2ZpbGUoc3RydWN0IGRhenVrb2ZzX2V2
ZQogCS8qIGFkZCBteXNlbGYgdG8gYmUgaWdub3JlZCBvbiBmaWxlIG9wZW4gKHRvIGF2b2lk
IHJlY3Vyc2lvbikgKi8KIAltYXNrX3Byb2MoJnByb2MpOwogCi0JZWMtPmZpbGUgPSBkZW50
cnlfb3BlbihkZ2V0KGV2dC0+ZGVudHJ5KSwgbW50Z2V0KGV2dC0+bW50KSwgT19SRE9OTFkp
OworCWVjLT5maWxlID0gZGVudHJ5X29wZW4oZGdldChldnQtPmRlbnRyeSksIG1udGdldChl
dnQtPm1udCksIAorCQkJICAgICAgIE9fUkRPTkxZIHwgT19MQVJHRUZJTEUpOwogCWlmIChJ
U19FUlIoZWMtPmZpbGUpKSB7CiAJCWNoZWNrX3JlY3Vyc2lvbigpOyAgLyogcmVtb3ZlIG15
c2VsZiBmcm9tIHByb2NfbGlzdCAqLwogCQlyZXQgPSBQVFJfRVJSKGVjLT5maWxlKTsKQEAg
LTEwMDQsOSArMTAwOCw5IEBAIGludCBkYXp1a29mc19nZXRfZXZlbnQodW5zaWduZWQgbG9u
ZyBncm8KIAl9CiAKIAl3aGlsZSAoMSkgewotCQlyZXQgPSB3YWl0X2V2ZW50X2ZyZWV6YWJs
ZShncnAtPnF1ZXVlLAotCQkJCQkgICBpc19ldmVudF9hdmFpbGFibGUoZ3JwKSB8fAotCQkJ
CQkgICBncnAtPmRlcHJlY2F0ZWQpOworCQlyZXQgPSB3YWl0X2V2ZW50X2ludGVycnVwdGli
bGUoZ3JwLT5xdWV1ZSwKKwkJCQkJICAgICAgIGlzX2V2ZW50X2F2YWlsYWJsZShncnApIHx8
CisJCQkJCSAgICAgICBncnAtPmRlcHJlY2F0ZWQpOwogCQlpZiAocmV0ICE9IDApCiAJCQli
cmVhazsKIApkaWZmIC14IENWUyAtcnVwIGRhenVrb2ZzLTMuMC4wL2ZpbGUuYyBkYXp1a29m
cy0zLjAuMC1yYzRfMi42LjE4L2ZpbGUuYwotLS0gZGF6dWtvZnMtMy4wLjAvZmlsZS5jCTIw
MDktMDItMjIgMTc6NDM6MTEuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1a29mcy0zLjAuMC1y
YzRfMi42LjE4L2ZpbGUuYwkyMDA5LTA3LTAzIDE4OjUwOjMzLjAwMDAwMDAwMCArMDIwMApA
QCAtMjUsNyArMjUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGlu
dXgvbW91bnQuaD4KICNpbmNsdWRlIDxsaW51eC9maWxlLmg+Ci0jaW5jbHVkZSA8bGludXgv
ZnNfc3RhY2suaD4KKwogCiAjaW5jbHVkZSAiZGF6dWtvZnNfZnMuaCIKICNpbmNsdWRlICJl
dmVudC5oIgpAQCAtMTc3LDEwICsxNzcsMTEgQEAgc3RhdGljIGludCBkYXp1a29mc19vcGVu
KHN0cnVjdCBpbm9kZSAqaQogCXN0cnVjdCBmaWxlICpsb3dlcl9maWxlOwogCWludCBlcnI7
CiAKLQllcnIgPSBkYXp1a29mc19jaGVja19hY2Nlc3MoZmlsZS0+Zl9kZW50cnksIGZpbGUt
PmZfdmZzbW50KTsKLQlpZiAoZXJyKQotCQlnb3RvIGVycm9yX291dDE7Ci0KKwlpZiAoU19J
U1JFRyhpbm9kZS0+aV9tb2RlKSkgeworCQllcnIgPSBkYXp1a29mc19jaGVja19hY2Nlc3Mo
ZmlsZS0+Zl9kZW50cnksIGZpbGUtPmZfdmZzbW50KTsKKwkJaWYgKGVycikKKwkJCWdvdG8g
ZXJyb3Jfb3V0MTsKKwl9CQogCVNFVF9GSUxFX0lORk8oZmlsZSwga21lbV9jYWNoZV96YWxs
b2MoZGF6dWtvZnNfZmlsZV9pbmZvX2NhY2hlcCwKIAkJICAgICAgR0ZQX0tFUk5FTCkpOwog
CWlmICghR0VUX0ZJTEVfSU5GTyhmaWxlKSkgewpAQCAtMjcyLDYgKzI3MywyMCBAQCBvdXQ6
CiAJcmV0dXJuIGVycjsKIH0KIAorc3RhdGljIGludCBkYXp1a29mc19tbWFwIChzdHJ1Y3Qg
ZmlsZSAqZmlsZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bSkKK3sKKworCXN0cnVjdCBm
aWxlICpsb3dlcl9maWxlID0gR0VUX0xPV0VSX0ZJTEUoZmlsZSk7CisKKwkvKiBpZiBsb3dl
ciBmcyBkb2VzIG5vdCBzdXBwb3J0IG1tYXAoKSwgd2UgZG9udCBjYWxsIGdlbmVyaWNfZmls
ZV9yZWFkb25seV9tbWFwKCksIAorCSAqIHNpbmNlIHRoaXMgd291bGQgcmVzdWx0IGluIGNh
bGxpbmcgbG93ZXIgcmVhZHBhZ2UoKSwgd2hpY2ggbWlnaHQgbm90IGJlIAorCSAqIGRlZmlu
ZWQgYnkgbG93ZXIgZnMgaWYgbW1hcCgpIGlzIG5vdCBzdXBwb3J0ZWQqLworCWlmICghbG93
ZXJfZmlsZS0+Zl9vcCB8fCAhbG93ZXJfZmlsZS0+Zl9vcC0+bW1hcCkgCisJCXJldHVybiAt
RU5PREVWOworCQorCisJcmV0dXJuIGdlbmVyaWNfZmlsZV9yZWFkb25seV9tbWFwKGZpbGUs
IHZtKTsKK30KIC8qKgogICogVW51c2VkIG9wZXJhdGlvbnM6CiAgKiAgIC0gb3duZXIKQEAg
LTI5NSwxOCArMzEwLDE1IEBAIG91dDoKIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGF6dWtv
ZnNfbWFpbl9mb3BzID0gewogCS5sbHNlZWsJCT0gZGF6dWtvZnNfbGxzZWVrLAogCS5yZWFk
CQk9IGRhenVrb2ZzX3JlYWQsCi0JLmFpb19yZWFkCT0gZ2VuZXJpY19maWxlX2Fpb19yZWFk
LAogCS53cml0ZQkJPSBkYXp1a29mc193cml0ZSwKLQkuYWlvX3dyaXRlCT0gZ2VuZXJpY19m
aWxlX2Fpb193cml0ZSwKIAkucmVhZGRpcgk9IGRhenVrb2ZzX3JlYWRkaXIsCiAJLmlvY3Rs
CQk9IGRhenVrb2ZzX2lvY3RsLAotCS5tbWFwCQk9IGdlbmVyaWNfZmlsZV9tbWFwLAorCS5t
bWFwCQk9IGRhenVrb2ZzX21tYXAsCiAJLm9wZW4JCT0gZGF6dWtvZnNfb3BlbiwKIAkuZmx1
c2gJCT0gZGF6dWtvZnNfZmx1c2gsCiAJLnJlbGVhc2UJPSBkYXp1a29mc19yZWxlYXNlLAog
CS5mc3luYwkJPSBkYXp1a29mc19mc3luYywKIAkuZmFzeW5jCQk9IGRhenVrb2ZzX2Zhc3lu
YywKLQkuc3BsaWNlX3JlYWQJPSBnZW5lcmljX2ZpbGVfc3BsaWNlX3JlYWQsCiB9OwogCiAv
KioKQEAgLTMzNSwxMSArMzQ3LDEwIEBAIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGF6dWtv
ZnNfbWFpbl9mb3AKIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGF6dWtvZnNfZGly
X2ZvcHMgPSB7CiAJLnJlYWRkaXIJPSBkYXp1a29mc19yZWFkZGlyLAogCS5pb2N0bAkJPSBk
YXp1a29mc19pb2N0bCwKLQkubW1hcAkJPSBnZW5lcmljX2ZpbGVfbW1hcCwKKwkubW1hcAkJ
PSBkYXp1a29mc19tbWFwLAogCS5vcGVuCQk9IGRhenVrb2ZzX29wZW4sCiAJLmZsdXNoCQk9
IGRhenVrb2ZzX2ZsdXNoLAogCS5yZWxlYXNlCT0gZGF6dWtvZnNfcmVsZWFzZSwKIAkuZnN5
bmMJCT0gZGF6dWtvZnNfZnN5bmMsCiAJLmZhc3luYwkJPSBkYXp1a29mc19mYXN5bmMsCi0J
LnNwbGljZV9yZWFkCT0gZ2VuZXJpY19maWxlX3NwbGljZV9yZWFkLAogfTsKZGlmZiAteCBD
VlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9ncm91cF9kZXYuYyBkYXp1a29mcy0zLjAuMC1yYzRf
Mi42LjE4L2dyb3VwX2Rldi5jCi0tLSBkYXp1a29mcy0zLjAuMC9ncm91cF9kZXYuYwkyMDA5
LTAyLTIyIDE3OjQ1OjIwLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAtcmM0
XzIuNi4xOC9ncm91cF9kZXYuYwkyMDA5LTAyLTAxIDIzOjM2OjI1LjAwMDAwMDAwMCArMDEw
MApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8
bGludXgvY2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxs
aW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KIAogI2luY2x1ZGUgImRhenVrb2ZzX2ZzLmgiCiAj
aW5jbHVkZSAiZXZlbnQuaCIKQEAgLTIwOSw5ICsyMTAsOSBAQCBpbnQgZGF6dWtvZnNfZ3Jv
dXBfZGV2X2luaXQoaW50IGRldl9tYWpvCiAKIAkvKiBjcmVhdGUgZ3JvdXAgZGV2aWNlcyAq
LwogCWZvciAoaSA9IDA7IGkgPCBHUk9VUF9DT1VOVDsgaSsrKSB7Ci0JCWRldiA9IGRldmlj
ZV9jcmVhdGUoZGF6dWtvZnNfY2xhc3MsIE5VTEwsCi0JCQkJICAgIE1LREVWKGRldl9tYWpv
ciwgZGV2X21pbm9yX2VuZCksIE5VTEwsCi0JCQkJICAgICIlcy4lZCIsIERFVklDRV9OQU1F
LCBpKTsKKwkJZGV2ID0gZGV2aWNlX2NyZWF0ZShkYXp1a29mc19jbGFzcywgJnBsYXRmb3Jt
X2J1cywKKwkJCQkgICAgTUtERVYoZGV2X21ham9yLCBkZXZfbWlub3JfZW5kKSwgIiVzLiVk
IiwgCisJCQkJICAgIERFVklDRV9OQU1FLCBpKTsKIAkJaWYgKElTX0VSUihkZXYpKSB7CiAJ
CQllcnIgPSBQVFJfRVJSKGRldik7CiAJCQlnb3RvIGVycm9yX291dDI7CmRpZmYgLXggQ1ZT
IC1ydXAgZGF6dWtvZnMtMy4wLjAvaWduX2Rldi5jIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYu
MTgvaWduX2Rldi5jCi0tLSBkYXp1a29mcy0zLjAuMC9pZ25fZGV2LmMJMjAwOS0wMi0yMiAx
Nzo0NToyMC4wMDAwMDAwMDAgKzAxMDAKKysrIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMTgv
aWduX2Rldi5jCTIwMDktMDItMDEgMjM6MzY6MTguMDAwMDAwMDAwICswMTAwCkBAIC0yMiw2
ICsyMiw3IEBACiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9jZGV2
Lmg+CiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRm
b3JtX2RldmljZS5oPgogCiAjaW5jbHVkZSAiZGF6dWtvZnNfZnMuaCIKICNpbmNsdWRlICJk
ZXYuaCIKQEAgLTE0NCw3ICsxNDUsNyBAQCBpbnQgZGF6dWtvZnNfaWduX2Rldl9pbml0KGlu
dCBkZXZfbWFqb3IsCiAJZGF6dWtvZnNfaWduX2NhY2hlcCA9CiAJCWttZW1fY2FjaGVfY3Jl
YXRlKCJkYXp1a29mc19pZ25fY2FjaGUiLAogCQkJCSAgc2l6ZW9mKHN0cnVjdCBkYXp1a29m
c19wcm9jKSwgMCwKLQkJCQkgIFNMQUJfSFdDQUNIRV9BTElHTiwgTlVMTCk7CisJCQkJICBT
TEFCX0hXQ0FDSEVfQUxJR04sIE5VTEwsIE5VTEwpOwogCWlmICghZGF6dWtvZnNfaWduX2Nh
Y2hlcCkgewogCQllcnIgPSAtRU5PTUVNOwogCQlnb3RvIGVycm9yX291dDE7CkBAIC0xNTgs
OCArMTU5LDkgQEAgaW50IGRhenVrb2ZzX2lnbl9kZXZfaW5pdChpbnQgZGV2X21ham9yLAog
CQlnb3RvIGVycm9yX291dDI7CiAKIAkvKiBjcmVhdGUgaWdub3JlIGRldmljZSAqLwotCWRl
diA9IGRldmljZV9jcmVhdGUoZGF6dWtvZnNfY2xhc3MsIE5VTEwsIE1LREVWKGRldl9tYWpv
ciwgZGV2X21pbm9yKSwKLQkJCSAgICBOVUxMLCAiJXMuaWduIiwgREVWSUNFX05BTUUpOwor
CWRldiA9IGRldmljZV9jcmVhdGUoZGF6dWtvZnNfY2xhc3MsICZwbGF0Zm9ybV9idXMsIAor
CQkgICAgICAgICAgICBNS0RFVihkZXZfbWFqb3IsIGRldl9taW5vciksICIlcy5pZ24iLCAK
KwkJCSAgICBERVZJQ0VfTkFNRSk7CiAJaWYgKElTX0VSUihkZXYpKSB7CiAJCWVyciA9IFBU
Ul9FUlIoZGV2KTsKIAkJZ290byBlcnJvcl9vdXQzOwpAQCAtMTc2LDYgKzE3OCw3IEBAIGVy
cm9yX291dDE6CiAJcmV0dXJuIGVycjsKIH0KIAorCiB2b2lkIGRhenVrb2ZzX2lnbl9kZXZf
ZGVzdHJveShpbnQgZGV2X21ham9yLCBpbnQgZGV2X21pbm9yLAogCQkJICAgICAgc3RydWN0
IGNsYXNzICpkYXp1a29mc19jbGFzcykKIHsKZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0z
LjAuMC9pbm9kZS5jIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMTgvaW5vZGUuYwotLS0gZGF6
dWtvZnMtMy4wLjAvaW5vZGUuYwkyMDA5LTAyLTIyIDE3OjQ2OjAyLjAwMDAwMDAwMCArMDEw
MAorKysgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4xOC9pbm9kZS5jCTIwMDktMDctMDYgMTA6
MjY6NTIuMDAwMDAwMDAwICswMjAwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSA8bGlu
dXgvbmFtZWkuaD4KICNpbmNsdWRlIDxsaW51eC9tb3VudC5oPgogI2luY2x1ZGUgPGxpbnV4
L3VhY2Nlc3MuaD4KLSNpbmNsdWRlIDxsaW51eC9mc19zdGFjay5oPgorCiAKICNpbmNsdWRl
ICJkYXp1a29mc19mcy5oIgogCkBAIC0zNCw2ICszNCwxMiBAQCBzdGF0aWMgc3RydWN0IGlu
b2RlX29wZXJhdGlvbnMgZGF6dWtvZnNfCiBzdGF0aWMgc3RydWN0IGlub2RlX29wZXJhdGlv
bnMgZGF6dWtvZnNfZGlyX2lvcHM7CiBzdGF0aWMgc3RydWN0IGlub2RlX29wZXJhdGlvbnMg
ZGF6dWtvZnNfbWFpbl9pb3BzOwogCit2b2lkIGZzc3RhY2tfY29weV9pbm9kZV9zaXplKHN0
cnVjdCBpbm9kZSAqZHN0LCBjb25zdCBzdHJ1Y3QgaW5vZGUgKnNyYykKK3sKKwlpX3NpemVf
d3JpdGUoZHN0LCBpX3NpemVfcmVhZCgoc3RydWN0IGlub2RlICopIHNyYykpOworCWRzdC0+
aV9ibG9ja3MgPSBzcmMtPmlfYmxvY2tzOworfQorCiBzdGF0aWMgaW50IGRhenVrb2ZzX2lu
b2RlX3Rlc3Qoc3RydWN0IGlub2RlICppbm9kZSwKIAkJCSAgICAgICB2b2lkICpjYW5kaWRh
dGVfbG93ZXJfaW5vZGUpCiB7CkBAIC00NywxMiArNTMsMjUgQEAgc3RhdGljIGludCBkYXp1
a29mc19pbm9kZV90ZXN0KHN0cnVjdCBpbgogCiBzdGF0aWMgdm9pZCBkYXp1a29mc19pbml0
X2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBpbm9kZSAqbG93ZXJfaW5vZGUp
CiB7Ci0JU0VUX0xPV0VSX0lOT0RFKGlub2RlLCBsb3dlcl9pbm9kZSk7Ci0JaW5vZGUtPmlf
aW5vID0gbG93ZXJfaW5vZGUtPmlfaW5vOwotCWlub2RlLT5pX3ZlcnNpb24rKzsKLQlpbm9k
ZS0+aV9vcCA9ICZkYXp1a29mc19tYWluX2lvcHM7Ci0JaW5vZGUtPmlfZm9wID0gJmRhenVr
b2ZzX21haW5fZm9wczsKLQlpbm9kZS0+aV9tYXBwaW5nLT5hX29wcyA9ICZkYXp1a29mc19h
b3BzOworICAgICAgICBTRVRfTE9XRVJfSU5PREUoaW5vZGUsIGxvd2VyX2lub2RlKTsKKyAg
ICAgICAgaW5vZGUtPmlfaW5vID0gbG93ZXJfaW5vZGUtPmlfaW5vOworICAgICAgICBpbm9k
ZS0+aV92ZXJzaW9uKys7CisKKyAgICAgICAgaWYgKFNfSVNESVIobG93ZXJfaW5vZGUtPmlf
bW9kZSkpIHsKKyAgICAgICAgICAgICAgICBpbm9kZS0+aV9vcCA9ICZkYXp1a29mc19kaXJf
aW9wczsKKyAgICAgICAgICAgICAgICBpbm9kZS0+aV9mb3AgPSAmZGF6dWtvZnNfZGlyX2Zv
cHM7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaW5vZGUtPmlfb3AgPSAm
ZGF6dWtvZnNfbWFpbl9pb3BzOworICAgICAgICAgICAgICAgIGlub2RlLT5pX2ZvcCA9ICZk
YXp1a29mc19tYWluX2ZvcHM7CisKKyAgICAgICAgICAgICAgICBpZiAoU19JU0xOSyhsb3dl
cl9pbm9kZS0+aV9tb2RlKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlub2RlLT5pX29w
ID0gJmRhenVrb2ZzX3N5bWxpbmtfaW9wczsKKyAgICAgICAgICAgICAgICBlbHNlICBpZiAo
c3BlY2lhbF9maWxlKGxvd2VyX2lub2RlLT5pX21vZGUpKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpbml0X3NwZWNpYWxfaW5vZGUoaW5vZGUsIGxvd2VyX2lub2RlLT5pX21vZGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG93ZXJfaW5v
ZGUtPmlfcmRldik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlu
b2RlLT5pX21hcHBpbmctPmFfb3BzID0gJmRhenVrb2ZzX2FvcHM7CiB9CiAKIHN0YXRpYyBp
bnQgZGF6dWtvZnNfaW5vZGVfc2V0KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHZvaWQgKmxvd2Vy
X2lub2RlKQpAQCAtNjIsNzIgKzgxLDEyNCBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX2lub2Rl
X3NldChzdHJ1Y3QgaW5vCiB9CiAKIGludCBkYXp1a29mc19pbnRlcnBvc2Uoc3RydWN0IGRl
bnRyeSAqbG93ZXJfZGVudHJ5LCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksCi0JCSAgICAgc3Ry
dWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IGZsYWcpCisJCSAgICAgc3RydWN0IHN1cGVyX2Js
b2NrICpzYiwgaW50IGhhc2gpCiB7CiAJc3RydWN0IGlub2RlICppbm9kZTsKLQlzdHJ1Y3Qg
aW5vZGUgKmxvd2VyX2lub2RlID0gaWdyYWIobG93ZXJfZGVudHJ5LT5kX2lub2RlKTsKLQlp
bnQgZXJyID0gMDsKKwlzdHJ1Y3QgaW5vZGUgKmxvd2VyX2lub2RlOworCWludCBlcnI7CiAK
LQlpZiAoIWxvd2VyX2lub2RlKSB7Ci0JCWVyciA9IC1FU1RBTEU7Ci0JCWdvdG8gb3V0Owot
CX0KKwlsb3dlcl9pbm9kZSA9IGlncmFiKGxvd2VyX2RlbnRyeS0+ZF9pbm9kZSk7CiAKLQlp
ZiAobG93ZXJfaW5vZGUtPmlfc2IgIT0gR0VUX0xPV0VSX1NCKHNiKSkgewotCQlpcHV0KGxv
d2VyX2lub2RlKTsKLQkJZXJyID0gLUVYREVWOwotCQlnb3RvIG91dDsKLQl9CisJaWYgKCFs
b3dlcl9pbm9kZSkgCisJCXJldHVybiAtRVNUQUxFOwogCiAJaW5vZGUgPSBpZ2V0NV9sb2Nr
ZWQoc2IsICh1bnNpZ25lZCBsb25nKWxvd2VyX2lub2RlLAogCQkJICAgICBkYXp1a29mc19p
bm9kZV90ZXN0LCBkYXp1a29mc19pbm9kZV9zZXQsCiAJCQkgICAgIGxvd2VyX2lub2RlKTsK
LQogCWlmICghaW5vZGUpIHsKLQkJaXB1dChsb3dlcl9pbm9kZSk7CiAJCWVyciA9IC1FQUND
RVM7Ci0JCWdvdG8gb3V0OworCQlnb3RvIGVycjsKIAl9CiAKLQlpZiAoaW5vZGUtPmlfc3Rh
dGUgJiBJX05FVykgeworCWlmIChpbm9kZS0+aV9zdGF0ZSAmIElfTkVXKSAKIAkJdW5sb2Nr
X25ld19pbm9kZShpbm9kZSk7CiAJCS8qCiAJCSAqIFRoaXMgaXMgYSBuZXcgbm9kZSBzbyB3
ZSBsZWF2ZSB0aGUgbG93ZXJfbm9kZSAiaW4gdXNlIgogCQkgKiBhbmQgZG8gbm90IGNhbGwg
aXB1dCgpLgogCQkgKi8KLQl9IGVsc2UgeworCWVsc2UgCiAJCS8qCiAJCSAqIFRoaXMgaXMg
bm90IGEgbmV3IG5vZGUgc28gd2UgZGVjcmVtZW50IHRoZSB1c2FnZSBjb3VudC4KIAkJICov
CiAJCWlwdXQobG93ZXJfaW5vZGUpOwotCX0KIAotCWlmIChTX0lTTE5LKGxvd2VyX2lub2Rl
LT5pX21vZGUpKQotCQlpbm9kZS0+aV9vcCA9ICZkYXp1a29mc19zeW1saW5rX2lvcHM7Ci0J
ZWxzZSBpZiAoU19JU0RJUihsb3dlcl9pbm9kZS0+aV9tb2RlKSkKLQkJaW5vZGUtPmlfb3Ag
PSAmZGF6dWtvZnNfZGlyX2lvcHM7Ci0KLQlpZiAoU19JU0RJUihsb3dlcl9pbm9kZS0+aV9t
b2RlKSkKLQkJaW5vZGUtPmlfZm9wID0gJmRhenVrb2ZzX2Rpcl9mb3BzOwotCi0JaWYgKHNw
ZWNpYWxfZmlsZShsb3dlcl9pbm9kZS0+aV9tb2RlKSkgewotCQlpbml0X3NwZWNpYWxfaW5v
ZGUoaW5vZGUsIGxvd2VyX2lub2RlLT5pX21vZGUsCi0JCQkJICAgbG93ZXJfaW5vZGUtPmlf
cmRldik7Ci0JfQotCi0JZGVudHJ5LT5kX29wID0gJmRhenVrb2ZzX2RvcHM7CiAKLQlpZiAo
ZmxhZykKKwlpZiAoaGFzaCkKIAkJZF9hZGQoZGVudHJ5LCBpbm9kZSk7CiAJZWxzZQogCQlk
X2luc3RhbnRpYXRlKGRlbnRyeSwgaW5vZGUpOwogCi0JZnNzdGFja19jb3B5X2F0dHJfYWxs
KGlub2RlLCBsb3dlcl9pbm9kZSwgTlVMTCk7CisJZnNzdGFja19jb3B5X2F0dHJfYWxsKGlu
b2RlLCBsb3dlcl9pbm9kZSk7CiAJZnNzdGFja19jb3B5X2lub2RlX3NpemUoaW5vZGUsIGxv
d2VyX2lub2RlKTsKLW91dDoKKworCXJldHVybiAwOworZXJyOgorCWlwdXQobG93ZXJfaW5v
ZGUpOwogCXJldHVybiBlcnI7CiB9CiAKKy8qIGNyZWF0ZXMgYSBuZXcgbG93ZXIgZGVudHJ5
ICovCitzdGF0aWMgc3RydWN0IGRlbnRyeSAqZGF6dWtvZnNfbmV3X2xvd2VyX2RlbnRyeShz
dHJ1Y3QgcXN0ciAqbmFtZSwKKwkJCQkJCXN0cnVjdCBkZW50cnkgKmxvd2VyX2Jhc2UsIAor
CQkJCQkJc3RydWN0IG5hbWVpZGF0YSAqbmQpCit7CisJc3RydWN0IGRlbnRyeSAqbmV3X2Rl
bnRyeTsKKwlzdHJ1Y3QgZGVudHJ5ICp0bXA7CisJc3RydWN0IGlub2RlICpsb3dlcl9pbm9k
ZTsKKworCWxvd2VyX2lub2RlID0gbG93ZXJfYmFzZS0+ZF9pbm9kZTsKKwkvKiBYWFg6IGlz
IHRoaXMgY2hlY2sgc3RpbGwgbmVjZXNzYXJ5PyAoc2VlIF9fbG9va3VwX2hhc2goKSkKKwkg
ICBUaGlzIGlzIChob3BlbHkpIHByb3RlY3RlZCBieSBsb2NrZWQgdXBwZXIgaW5vZGUgKi8K
KwlpZiAoSVNfREVBRERJUihsb3dlcl9pbm9kZSkpIHsKKwkJbmV3X2RlbnRyeSA9IEVSUl9Q
VFIoLUVOT0VOVCk7CisJCWdvdG8gb3V0OworCX0KKwl0bXAgPSBkX2FsbG9jKGxvd2VyX2Jh
c2UsIG5hbWUpOworCWlmICghdG1wKSB7CisJCW5ld19kZW50cnkgPSBFUlJfUFRSKC1FTk9N
RU0pOworCQlnb3RvIG91dDsKKwl9CisJbmV3X2RlbnRyeSA9IGxvd2VyX2lub2RlLT5pX29w
LT5sb29rdXAobG93ZXJfaW5vZGUsIHRtcCwgbmQpOworCS8qIGxvb2t1cCgpIHNlZW1pbmds
eSBpcyBhbGxvd2VkIHRvIHJldHVybiBpdHMgb3duIGRlbnRyeSAod2hpY2ggCisJICogbWF5
IGluZGVlZCBiZSBhIGRlbnRyeSBvciBvbmx5IGFuIGVycm9yKS4gSWYgc28KKwkgKiB3ZSB1
c2UgaXQgYW5kIGRpc2NhcmQgb3Vycy4gT3RoZXJ3aXNlIHdlIHVzZSBvdXJzICovIAorCWlm
ICghbmV3X2RlbnRyeSkgCisJCW5ld19kZW50cnkgPSB0bXA7CisJZWxzZSAKKwkJZHB1dCh0
bXApOworCQkKK291dDoJCQorCXJldHVybiBuZXdfZGVudHJ5OworfQorCisKKy8qIGdldCBs
b3dlciBkZW50cnkgZm9yIGdpdmVuIG5hbWUgKi8KK3N0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpk
YXp1a29mc19sb29rdXBfb25lX2xvd2VyKHN0cnVjdCBxc3RyICpuYW1lLCAKKwkJCQkJCXN0
cnVjdCBkZW50cnkgKmxvd2VyX2Jhc2UsCisJCQkJCQlzdHJ1Y3QgdmZzbW91bnQgKmxvd2Vy
X21udCkKK3sKKwlzdHJ1Y3QgZGVudHJ5ICpyZXN1bHQ7CisJc3RydWN0IG5hbWVpZGF0YSBu
ZDsKKwlpbnQgZXJyOworCisJLyogc2VlIHZmc19wYXRoX2xvb2t1cCBpbiBrZXJuZWwgdmVy
c2lvbnMgPj0gMi42LjI0ICovCisJbmQubGFzdF90eXBlID0gTEFTVF9ST09UOworCW5kLmZs
YWdzID0gMDsKKwluZC5kZXB0aCA9IDA7CisJbmQuZGVudHJ5ID0gZGdldChsb3dlcl9iYXNl
KTsKKwluZC5tbnQgPSBtbnRnZXQobG93ZXJfbW50KTsKKworCWVyciA9IHBhdGhfd2Fsayhu
YW1lLT5uYW1lLCAmbmQpOworCisJaWYgKCFlcnIpIHsKKwkJLyogaW5vZGUgYWxyZWFkeSBl
eGlzdHMgb24gZGlzayAqLworCQlyZXN1bHQgPSBuZC5kZW50cnk7CisJCS8qIHdlIGRvbnQg
bmVlZCB0aGUgbW91bnQgKi8KKwkJbW50cHV0KG5kLm1udCk7CisJCWdvdG8gb3V0OworCX0K
KwlpZiAoZXJyICE9IC1FTk9FTlQpIHsgLyogdGhpcyBpcyBhIFJFQUwgZXJyb3IgKi8JCisJ
CXJlc3VsdCA9IEVSUl9QVFIoZXJyKTsKKwkJZ290byBvdXQ7CisJfQkKKwkvKiBjcmVhdGUg
YSBuZXcgKGxvd2VyKSBkZW50cnkgKi8KKwlyZXN1bHQgPSBkYXp1a29mc19uZXdfbG93ZXJf
ZGVudHJ5KG5hbWUsIGxvd2VyX2Jhc2UsICZuZCk7CitvdXQ6CisJcmV0dXJuIHJlc3VsdDsK
KworfQorCisKIC8qKgogICogRGVzY3JpcHRpb246IENhbGxlZCB3aGVuIHRoZSBWRlMgbmVl
ZHMgdG8gbG9vayB1cCBhbiBpbm9kZSBpbiBhIHBhcmVudAogICogZGlyZWN0b3J5LiBUaGUg
bmFtZSB0byBsb29rIGZvciBpcyBmb3VuZCBpbiB0aGUgZGVudHJ5LiBUaGlzIG1ldGhvZApA
QCAtMTQ4LDYyICsyMTksNDggQEAgc3RhdGljIHN0cnVjdCBkZW50cnkgKmRhenVrb2ZzX2xv
b2t1cChzdAogCXN0cnVjdCBkZW50cnkgKmxvd2VyX2RlbnRyeTsKIAlzdHJ1Y3QgZGVudHJ5
ICpsb3dlcl9kZW50cnlfcGFyZW50OwogCXN0cnVjdCB2ZnNtb3VudCAqbG93ZXJfbW50Owot
CWludCBlcnIgPSAwOwotCi0JaWYgKChkZW50cnktPmRfbmFtZS5sZW4gPT0gMSAmJiAhc3Ry
Y21wKGRlbnRyeS0+ZF9uYW1lLm5hbWUsICIuIikpCi0JICAgIHx8IChkZW50cnktPmRfbmFt
ZS5sZW4gPT0gMiAmJgotCQkhc3RyY21wKGRlbnRyeS0+ZF9uYW1lLm5hbWUsICIuLiIpKSkg
ewotCQlkX2Ryb3AoZGVudHJ5KTsKLQkJZ290byBvdXQ7Ci0JfQotCi0JZGVudHJ5LT5kX29w
ID0gJmRhenVrb2ZzX2RvcHM7CisJaW50IGVycjsKIAogCWxvd2VyX2RlbnRyeV9wYXJlbnQg
PSBHRVRfTE9XRVJfREVOVFJZKGRlbnRyeS0+ZF9wYXJlbnQpOwotCWxvd2VyX2RlbnRyeSA9
IGxvb2t1cF9vbmVfbGVuKGRlbnRyeS0+ZF9uYW1lLm5hbWUsIGxvd2VyX2RlbnRyeV9wYXJl
bnQsCi0JCQkJICAgICAgZGVudHJ5LT5kX25hbWUubGVuKTsKKwkvKiBzaG91bGQgYmUgcmVs
ZWFzZWQgaW4gZF9yZWxlYXNlKCkgKi8KKwlsb3dlcl9tbnQgPSBtbnRnZXQoR0VUX0xPV0VS
X01OVChkZW50cnktPmRfcGFyZW50KSk7CiAKKwlsb3dlcl9kZW50cnkgPSBkYXp1a29mc19s
b29rdXBfb25lX2xvd2VyKCZkZW50cnktPmRfbmFtZSwgCisJCQkJCQkgbG93ZXJfZGVudHJ5
X3BhcmVudCwgCisJCQkJCQkgbG93ZXJfbW50KTsgCiAJaWYgKElTX0VSUihsb3dlcl9kZW50
cnkpKSB7Ci0JCWVyciA9IFBUUl9FUlIobG93ZXJfZGVudHJ5KTsKLQkJZF9kcm9wKGRlbnRy
eSk7Ci0JCWdvdG8gb3V0OworCQltbnRwdXQobG93ZXJfbW50KTsKKwkJcmV0dXJuIGxvd2Vy
X2RlbnRyeTsKIAl9Ci0KIAlCVUdfT04oIWF0b21pY19yZWFkKCZsb3dlcl9kZW50cnktPmRf
Y291bnQpKTsKIAorCWRlbnRyeS0+ZF9vcCA9ICZkYXp1a29mc19kb3BzOwogCVNFVF9ERU5U
UllfSU5GTyhkZW50cnksIGttZW1fY2FjaGVfemFsbG9jKGRhenVrb2ZzX2RlbnRyeV9pbmZv
X2NhY2hlcCwKIAkJCUdGUF9LRVJORUwpKTsKIAogCWlmICghR0VUX0RFTlRSWV9JTkZPKGRl
bnRyeSkpIHsKLQkJZXJyID0gLUVOT01FTTsKLQkJZ290byBvdXRfZHB1dDsKKwkJbW50cHV0
KGxvd2VyX21udCk7CisJCWRwdXQobG93ZXJfZGVudHJ5KTsKKwkJcmV0dXJuIEVSUl9QVFIo
LUVOT01FTSk7CiAJfQotCi0JbG93ZXJfbW50ID0gbW50Z2V0KEdFVF9MT1dFUl9NTlQoZGVu
dHJ5LT5kX3BhcmVudCkpOwotCi0JZnNzdGFja19jb3B5X2F0dHJfYXRpbWUoZGlyLCBsb3dl
cl9kZW50cnlfcGFyZW50LT5kX2lub2RlKTsKLQogCVNFVF9MT1dFUl9ERU5UUlkoZGVudHJ5
LCBsb3dlcl9kZW50cnksIGxvd2VyX21udCk7Ci0KKwkvKiBmcm9tIG5vdyBsb3dlciBkZW50
cnkgYW5kIGxvd2VyIG1vdW50IGFyZSByZWxlYXNlZCBpbiAKKwkgIGRfcmVsZWFzZSBvZiB1
cHBlciBkZW50cnkgKi8KKwlmc3N0YWNrX2NvcHlfYXR0cl9hdGltZShkaXIsIGxvd2VyX2Rl
bnRyeV9wYXJlbnQtPmRfaW5vZGUpOwogCWlmICghbG93ZXJfZGVudHJ5LT5kX2lub2RlKSB7
CiAJCS8qCiAJCSAqIFdlIHdhbnQgdG8gYWRkIGJlY2F1c2Ugd2UgY291bGQgbm90IGZpbmQg
aW4gbG93ZXIuCiAJCSAqLwogCQlkX2FkZChkZW50cnksIE5VTEwpOwotCQlnb3RvIG91dDsK
KwkJZ290byBvazsKIAl9CiAKIAllcnIgPSBkYXp1a29mc19pbnRlcnBvc2UobG93ZXJfZGVu
dHJ5LCBkZW50cnksIGRpci0+aV9zYiwgMSk7Ci0JaWYgKGVycikKLQkJZ290byBvdXRfZHB1
dDsKLQlnb3RvIG91dDsKLQotb3V0X2RwdXQ6Ci0JZHB1dChsb3dlcl9kZW50cnkpOwotCWRf
ZHJvcChkZW50cnkpOworCWlmIChlcnIpIAorCQlyZXR1cm4gRVJSX1BUUihlcnIpOwogCi1v
dXQ6Ci0JcmV0dXJuIEVSUl9QVFIoZXJyKTsKK29rOgorCXJldHVybiBOVUxMOyAvKiB0ZWxs
IGNhbGxlciB0byB1c2UgaXRzIG93biwgcGFzc2VkIGRlbnRyeSwgbm90IG91cnMgKi8KIH0K
IAogLyoqCkBAIC0yOTQsMTkgKzM1MSwxOSBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX2NyZWF0
ZShzdHJ1Y3QgaW5vZGUgCiAJbXV0ZXhfbG9ja19uZXN0ZWQoJihsb3dlcl9kZW50cnlfcGFy
ZW50X2lub2RlLT5pX211dGV4KSwKIAkJCSAgSV9NVVRFWF9QQVJFTlQpOwogCi0JdmZzbW91
bnRfc2F2ZSA9IG5kLT5wYXRoLm1udDsKLQlkZW50cnlfc2F2ZSA9IG5kLT5wYXRoLmRlbnRy
eTsKKwl2ZnNtb3VudF9zYXZlID0gbmQtPm1udDsKKwlkZW50cnlfc2F2ZSA9IG5kLT5kZW50
cnk7CiAKLQluZC0+cGF0aC5tbnQgPSBtbnRnZXQobG93ZXJfbW50KTsKLQluZC0+cGF0aC5k
ZW50cnkgPSBkZ2V0KGxvd2VyX2RlbnRyeSk7CisJbmQtPm1udCA9IG1udGdldChsb3dlcl9t
bnQpOworCW5kLT5kZW50cnkgPSBkZ2V0KGxvd2VyX2RlbnRyeSk7CiAKIAllcnIgPSB2ZnNf
Y3JlYXRlKGxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUsIGxvd2VyX2RlbnRyeSwgbW9kZSwg
bmQpOwogCiAJbW50cHV0KGxvd2VyX21udCk7CiAJZHB1dChsb3dlcl9kZW50cnkpOwogCi0J
bmQtPnBhdGgubW50ID0gdmZzbW91bnRfc2F2ZTsKLQluZC0+cGF0aC5kZW50cnkgPSBkZW50
cnlfc2F2ZTsKKwluZC0+bW50ID0gdmZzbW91bnRfc2F2ZTsKKwluZC0+ZGVudHJ5ID0gZGVu
dHJ5X3NhdmU7CiAKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKQEAgLTM0MCw3ICszOTcsOCBA
QCBzdGF0aWMgaW50IGRhenVrb2ZzX3N5bWxpbmsoc3RydWN0IGlub2RlCiAJbXV0ZXhfbG9j
a19uZXN0ZWQoJihsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLT5pX211dGV4KSwKIAkJCSAg
SV9NVVRFWF9QQVJFTlQpOwogCi0JZXJyID0gdmZzX3N5bWxpbmsobG93ZXJfZGVudHJ5X3Bh
cmVudF9pbm9kZSwgbG93ZXJfZGVudHJ5LCBzeW1uYW1lKTsKKwllcnIgPSB2ZnNfc3ltbGlu
ayhsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLCBsb3dlcl9kZW50cnksIHN5bW5hbWUsCisJ
CQkgIFNfSUFMTFVHTyk7CiAJaWYgKGVycikKIAkJZ290byBvdXQ7CiAKQEAgLTQ1Miw5ICs1
MTAsMzcgQEAgc3RhdGljIHZvaWQgZGF6dWtvZnNfcHV0X2xpbmsoc3RydWN0IGRlbgogICog
RGVzY3JpcHRpb246IENhbGxlZCBieSB0aGUgVkZTIHRvIGNoZWNrIGZvciBhY2Nlc3Mgcmln
aHRzIG9uIGEKICAqIFBPU0lYLWxpa2UgZmlsZXN5c3RlbS4KICAqLwotc3RhdGljIGludCBk
YXp1a29mc19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKQorc3Rh
dGljIGludCBkYXp1a29mc19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBt
YXNrLAorCQkJICAgICAgIHN0cnVjdCBuYW1laWRhdGEgKm5kKQogewotCXJldHVybiBpbm9k
ZV9wZXJtaXNzaW9uKEdFVF9MT1dFUl9JTk9ERShpbm9kZSksIG1hc2spOworCXN0cnVjdCB2
ZnNtb3VudCAqbG93ZXJfbW50ID0gTlVMTDsKKwlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9kZW50
cnkgPSBOVUxMOworCXN0cnVjdCB2ZnNtb3VudCAqdmZzbW50X3NhdmUgPSBOVUxMOworCXN0
cnVjdCBkZW50cnkgKmRlbnRyeV9zYXZlID0gTlVMTDsKKwlpbnQgZXJyOworCisJaWYgKG5k
KSB7CisJCWxvd2VyX21udCA9IEdFVF9MT1dFUl9NTlQobmQtPmRlbnRyeSk7CisJCWxvd2Vy
X2RlbnRyeSA9IEdFVF9MT1dFUl9ERU5UUlkobmQtPmRlbnRyeSk7CisKKwkJdmZzbW50X3Nh
dmUgPSBuZC0+bW50OworCQlkZW50cnlfc2F2ZSA9IG5kLT5kZW50cnk7CisKKwkJbmQtPm1u
dCA9IG1udGdldChsb3dlcl9tbnQpOworCQluZC0+ZGVudHJ5ID0gZGdldChsb3dlcl9kZW50
cnkpOworCX0KKworCWVyciA9IHBlcm1pc3Npb24oR0VUX0xPV0VSX0lOT0RFKGlub2RlKSwg
bWFzaywgbmQpOworCisJaWYgKG5kKSB7CisJCW1udHB1dChsb3dlcl9tbnQpOworCQlkcHV0
KGxvd2VyX2RlbnRyeSk7CisKKwkJbmQtPm1udCA9IHZmc21udF9zYXZlOworCQluZC0+ZGVu
dHJ5ID0gZGVudHJ5X3NhdmU7CisJfQorCisgICAgICAgIHJldHVybiBlcnI7CiB9CiAKIC8q
KgpAQCAtNDY4LDE0ICs1NTQsMjcgQEAgc3RhdGljIGludCBkYXp1a29mc19zZXRhdHRyKHN0
cnVjdCBkZW50cgogCXN0cnVjdCBpbm9kZSAqbG93ZXJfaW5vZGUgPSBHRVRfTE9XRVJfSU5P
REUoaW5vZGUpOwogCWludCBlcnI7CiAKLQllcnIgPSBub3RpZnlfY2hhbmdlKGxvd2VyX2Rl
bnRyeSwgaWEpOwogCi0JZnNzdGFja19jb3B5X2F0dHJfYWxsKGlub2RlLCBsb3dlcl9pbm9k
ZSwgTlVMTCk7Ci0JZnNzdGFja19jb3B5X2lub2RlX3NpemUoaW5vZGUsIGxvd2VyX2lub2Rl
KTsKKwlpZiAoIWxvd2VyX2lub2RlLT5pX29wIHx8ICFsb3dlcl9pbm9kZS0+aV9vcC0+c2V0
YXR0cikgCisJCS8qIFhYWDogYXQgdGhpcyBwb2ludCBpdCBpcyB0b28gbGF0ZSB0byBoYW5k
bGUgaW5vZGVzIHByb3Blcmx5IHRoYXQgZG8gTk9UCisJCXNwZWNpZnkgc2V0YXR0cigpLiBW
RlMgd291bGQgbm9ybWFsbHkgY2FsbCBpbm9kZV9zZXRhdHRyKCkgaW4gCisJCXRoaXMgY2Fz
ZS4gU28gdG8gZm9yY2UgdGhpcyB3ZSBqdW1wIGJhY2sgdG8gbm90aWZ5X2NoYW5nZSB3aGlj
aCB3aWxsCisJCWhhbmRsZSB0aGlzIGZvciB1cy4gQnV0IHRoaXMgaXMgZGFuZ2Vyb3VzOgor
CQlUaGUgYXR0cmlidXRlcyBtaWdodCBiZSBtb2RpZmllZCBieSBub3RpZnlfY2hhbmdlKCkg
aW4gYSB3YXkKKwkJdGhhdCByZXN1bHRzIGluIGludmFsaWQgYXR0cmlidXRlcy4gVGhpcyBz
ZWVtcyB0byBiZSB0aGUgY2FzZQorCQlpZiB0aGUgaW5vZGUgZm9yIHdoaWNoIHRoaXMgZnVu
Y3Rpb24gaXMgY2FsbGVkIGhhcyB0aGUgc2V0dWlkCisJCW9yIHNldGdpZCBiaXQgc2V0ICov
IAorCQllcnIgPSBub3RpZnlfY2hhbmdlKGxvd2VyX2RlbnRyeSwgaWEpOworCWVsc2UgCisJ
CWVyciA9IGxvd2VyX2lub2RlLT5pX29wLT5zZXRhdHRyKGxvd2VyX2RlbnRyeSwgaWEpOwor
CQorCWlmICghZXJyKSB7CisJCWZzc3RhY2tfY29weV9hdHRyX2FsbChpbm9kZSwgbG93ZXJf
aW5vZGUpOworCQlmc3N0YWNrX2NvcHlfaW5vZGVfc2l6ZShpbm9kZSwgbG93ZXJfaW5vZGUp
OworCX0gCiAKIAlyZXR1cm4gZXJyOwogfQotCiAvKioKICAqIERlc2NyaXB0aW9uOiBDYWxs
ZWQgYnkgdGhlIFZGUyB0byBzZXQgYW4gZXh0ZW5kZWQgYXR0cmlidXRlIGZvciBhIGZpbGUu
CiAgKiBFeHRlbmRlZCBhdHRyaWJ1dGUgaXMgYSBuYW1lOnZhbHVlIHBhaXIgYXNzb2NpYXRl
ZCB3aXRoIGFuIGlub2RlLiBUaGlzCkBAIC00OTYsMTQgKzU5NSwxNCBAQCBzdGF0aWMgaW50
IGRhenVrb2ZzX3NldHhhdHRyKHN0cnVjdCBkZW50CiAKIAlpZiAoIWxvd2VyX2RlbnRyeV9p
bm9kZS0+aV9vcCB8fAogCSAgICAhbG93ZXJfZGVudHJ5X2lub2RlLT5pX29wLT5zZXR4YXR0
cikgewotCQllcnIgPSAtRU5PU1lTOworCQllcnIgPSAtRU9QTk9UU1VQUDsKIAkJZ290byBv
dXQ7CiAJfQogCiAJZXJyID0gbG93ZXJfZGVudHJ5X2lub2RlLT5pX29wLT5zZXR4YXR0cihs
b3dlcl9kZW50cnksIG5hbWUsIHZhbHVlLAogCQkJCQkJIHNpemUsIGZsYWdzKTsKIAotCWZz
c3RhY2tfY29weV9hdHRyX2FsbChkZW50cnktPmRfaW5vZGUsIGxvd2VyX2RlbnRyeV9pbm9k
ZSwgTlVMTCk7CisJZnNzdGFja19jb3B5X2F0dHJfYWxsKGRlbnRyeS0+ZF9pbm9kZSwgbG93
ZXJfZGVudHJ5X2lub2RlKTsKIAlmc3N0YWNrX2NvcHlfaW5vZGVfc2l6ZShkZW50cnktPmRf
aW5vZGUsIGxvd2VyX2RlbnRyeV9pbm9kZSk7CiBvdXQ6CiAJcmV0dXJuIGVycjsKQEAgLTUy
OCw3ICs2MjcsNyBAQCBzdGF0aWMgc3NpemVfdCBkYXp1a29mc19nZXR4YXR0cihzdHJ1Y3Qg
CiAKIAlpZiAoIWxvd2VyX2RlbnRyeV9pbm9kZS0+aV9vcCB8fAogCSAgICAhbG93ZXJfZGVu
dHJ5X2lub2RlLT5pX29wLT5nZXR4YXR0cikgewotCQllcnIgPSAtRU5PU1lTOworCQllcnIg
PSAtRU9QTk9UU1VQUDsKIAkJZ290byBvdXQ7CiAJfQogCkBAIC01NTcsNyArNjU2LDcgQEAg
c3RhdGljIHNzaXplX3QgZGF6dWtvZnNfbGlzdHhhdHRyKHN0cnVjdAogCiAJaWYgKCFsb3dl
cl9kZW50cnlfaW5vZGUtPmlfb3AgfHwKIAkgICAgIWxvd2VyX2RlbnRyeV9pbm9kZS0+aV9v
cC0+bGlzdHhhdHRyKSB7Ci0JCWVyciA9IC1FTk9TWVM7CisJCWVyciA9IC1FT1BOT1RTVVBQ
OwogCQlnb3RvIG91dDsKIAl9CiAKQEAgLTU4NCw3ICs2ODMsNyBAQCBzdGF0aWMgaW50IGRh
enVrb2ZzX3JlbW92ZXhhdHRyKHN0cnVjdCBkCiAKIAlpZiAoIWxvd2VyX2RlbnRyeV9pbm9k
ZS0+aV9vcCB8fAogCSAgICAhbG93ZXJfZGVudHJ5X2lub2RlLT5pX29wLT5yZW1vdmV4YXR0
cikgewotCQllcnIgPSAtRU5PU1lTOworCQllcnIgPSAtRU9QTk9UU1VQUDsKIAkJZ290byBv
dXQ7CiAJfQogCkBAIC03MjQsMTAgKzgyMyw5IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfcmVu
YW1lKHN0cnVjdCBpbm9kZSAKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKIAotCWZzc3RhY2tf
Y29weV9hdHRyX2FsbChuZXdfZGlyLCBsb3dlcl9uZXdfZGVudHJ5X3BhcmVudF9pbm9kZSwg
TlVMTCk7CisJZnNzdGFja19jb3B5X2F0dHJfYWxsKG5ld19kaXIsIGxvd2VyX25ld19kZW50
cnlfcGFyZW50X2lub2RlKTsKIAlpZiAobmV3X2RpciAhPSBvbGRfZGlyKQotCQlmc3N0YWNr
X2NvcHlfYXR0cl9hbGwob2xkX2RpciwgbG93ZXJfb2xkX2RlbnRyeV9wYXJlbnRfaW5vZGUs
Ci0JCQkJICAgICAgTlVMTCk7CisJCWZzc3RhY2tfY29weV9hdHRyX2FsbChvbGRfZGlyLCBs
b3dlcl9vbGRfZGVudHJ5X3BhcmVudF9pbm9kZSk7CiBvdXQ6CiAJZHB1dChsb3dlcl9vbGRf
ZGVudHJ5X3BhcmVudCk7CiAJZHB1dChsb3dlcl9uZXdfZGVudHJ5X3BhcmVudCk7CmRpZmYg
LXggQ1ZTIC1ydXAgZGF6dWtvZnMtMy4wLjAvTWFrZWZpbGUgZGF6dWtvZnMtMy4wLjAtcmM0
XzIuNi4xOC9NYWtlZmlsZQotLS0gZGF6dWtvZnMtMy4wLjAvTWFrZWZpbGUJMjAwOS0wMi0y
MiAxNzo0NjowMi4wMDAwMDAwMDAgKzAxMDAKKysrIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYu
MTgvTWFrZWZpbGUJMjAwOS0wNS0xMSAxOTo1MDoxOS4wMDAwMDAwMDAgKzAyMDAKQEAgLTE5
LDYgKzE5LDcgQEAgZGF6dWtvZnNfaW5zdGFsbDogZGF6dWtvZnNfbW9kdWxlcwogCiBjbGVh
bjoKIAlybSAtZiBNb2R1bGUuc3ltdmVycworCXJtIC1mIG1vZHVsZXMub3JkZXIKIAltYWtl
IC1DICQoREFaVUtPRlNfS0VSTkVMX1NSQykgU1VCRElSUz0iYHB3ZGAiIGNsZWFuCiAKIC5Q
SE9OWTogZGF6dWtvZnNfbW9kdWxlcyBkYXp1a29mc19pbnN0YWxsIGNsZWFuCmRpZmYgLXgg
Q1ZTIC1ydXAgZGF6dWtvZnMtMy4wLjAvUkVBRE1FIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYu
MTgvUkVBRE1FCi0tLSBkYXp1a29mcy0zLjAuMC9SRUFETUUJMjAwOS0wMi0yMiAxNzozODoy
MS4wMDAwMDAwMDAgKzAxMDAKKysrIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMTgvUkVBRE1F
CTIwMDgtMTItMTIgMTg6MDE6MDcuMDAwMDAwMDAwICswMTAwCkBAIC0yMSwxMCArMjEsMTAg
QEAgTk9URTogRGF6dWtvRlMgaXMgY29tcGxldGVseSBzZXBhcmF0ZSBmcgogPT09PT09PT09
PT09PT09PT0KIAogQmVsb3cgYXJlIGJyaWVmIGluc3RydWN0aW9ucyB0byBnZXQgRGF6dWtv
RlMgY29tcGlsZWQgYW5kIHJ1bm5pbmcgb24gYQotc3lzdGVtIHdpdGggYSBMaW51eCAyLjYu
Mjgga2VybmVsLiBZb3UgbWF5IG5lZWQgdG8gbWFudWFsbHkgYWRqdXN0IHRoZQorc3lzdGVt
IHdpdGggYSBMaW51eCAyLjYuMjcga2VybmVsLiBZb3UgbWF5IG5lZWQgdG8gbWFudWFsbHkg
YWRqdXN0IHRoZQogTWFrZWZpbGUgaWYgeW91IGtlcm5lbCBzb3VyY2VzIGFyZSBub3QgaW4g
dGhlIGRlZmF1bHQgbG9jYXRpb24uCi0oUGF0Y2hlcyBhcmUgcHJvdmlkZWQgZm9yIHZhcmlv
dXMgb3RoZXIga2VybmVscy4gU2VlIHRoZSBzZWN0aW9uIGJlbG93Ci10aXRsZWQgIlBBVENI
SU5HIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4pCisoQSBwYXRjaCBpcyBwcm92aWRlZCB0byBj
b252ZXJ0IHRoZSBEYXp1a29GUyBjb2RlIHRvIHN1cHBvcnQgTGludXgKKzIuNi4yNi4pCiAK
IGNvbXBpbGUgdGhlIGtlcm5lbCBtb2R1bGUKICAgIyBtYWtlCkBAIC01MiwyNSArNTIsNiBA
QCB1bm1vdW50IERhenVrb0ZTCiAKIAogCi09PT09PT09PT09Ci0gUEFUQ0hJTkcKLT09PT09
PT09PT0KLQotSW4gdGhlICJwYXRjaGVzIiBkaXJlY3RvcnkgdGhlcmUgYXJlIHBhdGNoZXMg
YXZhaWxhYmxlIHRvIG1vZGlmeSB0aGUKLURhenVrb0ZTIGNvZGUgdG8gZml0IHZhcmlvdXMg
b3RoZXIga2VybmVscy4gRm9yIGV4YW1wbGUsIGlmIHlvdSBhcmUKLXJ1bm5pbmcgb3BlblNV
U0UgMTEuMSB5b3UgY2FuIHBhdGNoIHRoZSBjb2RlIHdpdGggdGhlIGZvbGxvd2luZwotY29t
bWFuZDoKLQotJCBwYXRjaCAtcDEgPCBwYXRjaGVzL3BhdGNoLW9wZW5zdXNlLTExLjEKLQot
VGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgZXJyb3JzLiBJZiB0aGVyZSBhcmUgZXJyb3JzLCB0
aGVuIHRoZSBwYXRjaAotaXMgYnJva2VuIGFuZCBzaG91bGQgYmUgcmVwb3J0ZWQgb24gdGhl
IGRhenVrby1kZXZlbCBtYWlsaW5nIGxpc3QuCi0KLU9uY2UgdGhlIGNvZGUgaGFzIGJlZW4g
cGF0Y2hlZCB5b3UgY2FuIGJ1aWxkIHRoZSBrZXJuZWwgbW9kdWxlIGFzCi1kZXNjcmliZWQg
aW4gdGhlIHNlY3Rpb24gIkJVSUxEIC8gSU5TVEFMTCIgYWJvdmUuCi0KLQotCiA9PT09PT09
PT0KICBURVNUSU5HCiA9PT09PT09PT0KQEAgLTE1NCw5ICsxMzUsNiBAQCBhbnkgcHJvYmxl
bXMuCiAgS05PV04gSVNTVUVTCiA9PT09PT09PT09PT09PQogCi0tIFRoZSBrZXJuZWwgd2ls
bCBjcmFzaCBpZiB5b3UgYXR0ZW1wdCB0byBtb3VudCBEYXp1a29GUyB0byBhIGZpbGUgaW5z
dGVhZAotICBvZiBhIGRpcmVjdG9yeS4gKFRoZSB2YXJpb3VzIGtlcm5lbCBwYXRjaGVzIGhh
bmRsZSB0aGlzIGVycm9yLikKLQogLSBEYXp1a29GUyBkb2VzIG5vdCBzdXBwb3J0IHdyaXRp
bmcgdG8gbWVtb3J5IG1hcHBlZCBmaWxlcy4gVGhpcyBzaG91bGQgbm90CiAgIGNhdXNlIHRo
ZSBrZXJuZWwgdG8gY3Jhc2gsIGJ1dCB3aWxsIGluc3RlYWQgcmVzdWx0IGluIHRoZSBhcHBs
aWNhdGlvbgogICBmYWlsaW5nIHRvIHBlcmZvcm0gdGhlIHdyaXRlcyAoYWx0aG91Z2ggbW1h
cCgpIHdpbGwgYXBwZWFyIHRvIGJlCmRpZmYgLXggQ1ZTIC1ydXAgZGF6dWtvZnMtMy4wLjAv
c3VwZXIuYyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjE4L3N1cGVyLmMKLS0tIGRhenVrb2Zz
LTMuMC4wL3N1cGVyLmMJMjAwOS0wMi0yMiAxNzo0NjowMi4wMDAwMDAwMDAgKzAxMDAKKysr
IGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMTgvc3VwZXIuYwkyMDA5LTA3LTAzIDE3OjU4OjQy
LjAwMDAwMDAwMCArMDIwMApAQCAtMzUsNiArMzUsOSBAQCBzdGF0aWMgc3RydWN0IGttZW1f
Y2FjaGUgKmRhenVrb2ZzX3NiX2luCiBzdHJ1Y3Qga21lbV9jYWNoZSAqZGF6dWtvZnNfZGVu
dHJ5X2luZm9fY2FjaGVwOwogc3RydWN0IGttZW1fY2FjaGUgKmRhenVrb2ZzX2ZpbGVfaW5m
b19jYWNoZXA7CiAKKworI2RlZmluZSBEQVpVS09GU19WRVJTSU9OICIzLjAuMC1yYzQtYXZp
cmEtYjIuNiIKKwogc3RhdGljIHN0cnVjdCBpbm9kZSAqZGF6dWtvZnNfYWxsb2NfaW5vZGUo
c3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIHsKIAlzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5m
byAqaW5vZGVpOwpAQCAtMTU4LDggKzE2MSw4IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfcmVh
ZF9zdXBlcihzdHJ1Y3Qgc3UKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCi0JbG93ZXJf
cm9vdCA9IGRnZXQobmQucGF0aC5kZW50cnkpOwotCWxvd2VyX21udCA9IG1udGdldChuZC5w
YXRoLm1udCk7CisJbG93ZXJfcm9vdCA9IGRnZXQobmQuZGVudHJ5KTsKKwlsb3dlcl9tbnQg
PSBtbnRnZXQobmQubW50KTsKIAogCWlmIChJU19FUlIobG93ZXJfcm9vdCkpIHsKIAkJZXJy
ID0gUFRSX0VSUihsb3dlcl9yb290KTsKQEAgLTE3MCw2ICsxNzMsMTAgQEAgc3RhdGljIGlu
dCBkYXp1a29mc19yZWFkX3N1cGVyKHN0cnVjdCBzdQogCQllcnIgPSAtRU5PRU5UOwogCQln
b3RvIG91dF9wdXQ7CiAJfQorCWlmICghU19JU0RJUihsb3dlcl9yb290LT5kX2lub2RlLT5p
X21vZGUpKSB7CisJCWVyciA9IC1FTk9FTlQ7CisJCWdvdG8gb3V0X3B1dDsKKwl9CiAKIAlT
RVRfTE9XRVJfU0Ioc2IsIGxvd2VyX3Jvb3QtPmRfc2IpOwogCXNiLT5zX21heGJ5dGVzID0g
bG93ZXJfcm9vdC0+ZF9zYi0+c19tYXhieXRlczsKQEAgLTE4NCw3ICsxOTEsNyBAQCBvdXRf
cHV0OgogCWRwdXQobG93ZXJfcm9vdCk7CiAJbW50cHV0KGxvd2VyX21udCk7CiBvdXQ6Ci0J
cGF0aF9wdXQoJm5kLnBhdGgpOworCXBhdGhfcmVsZWFzZSgmbmQpOwogCXJldHVybiBlcnI7
CiB9CiAKQEAgLTIxMywxNSArMjIwLDE2IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfZ2V0X3Ni
KHN0cnVjdCBmaWxlX3MKIAogb3V0X2Fib3J0OgogCXVwX3dyaXRlKCZzYi0+c191bW91bnQp
OworCWRwdXQoc2ItPnNfcm9vdCk7CiAJZGVhY3RpdmF0ZV9zdXBlcihzYik7CiBvdXQ6CiAJ
cmV0dXJuIGVycjsKIH0KIAotc3RhdGljIHZvaWQgaW5pdF9vbmNlKHZvaWQgKmRhdGEpCitz
dGF0aWMgdm9pZCBpbml0X29uY2Uodm9pZCAqdnB0ciwgc3RydWN0IGttZW1fY2FjaGUgKmNh
Y2hlcCwgdW5zaWduZWQgbG9uZyBmbGFncykKIHsKIAlzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVf
aW5mbyAqaW5vZGVfaW5mbyA9Ci0JCShzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5mbyAqKWRh
dGE7CisJCShzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5mbyAqKXZwdHI7CiAKIAltZW1zZXQo
aW5vZGVfaW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBkYXp1a29mc19pbm9kZV9pbmZvKSk7CiAJ
aW5vZGVfaW5pdF9vbmNlKCYoaW5vZGVfaW5mby0+dmZzX2lub2RlKSk7CkBAIC0yNTYsNyAr
MjY0LDcgQEAgc3RhdGljIGludCBpbml0X2NhY2hlcyh2b2lkKQogCQlrbWVtX2NhY2hlX2Ny
ZWF0ZSgiZGF6dWtvZnNfaW5vZGVfaW5mb19jYWNoZSIsCiAJCQkJICBzaXplb2Yoc3RydWN0
IGRhenVrb2ZzX2lub2RlX2luZm8pLCAwLAogCQkJCSAgU0xBQl9IV0NBQ0hFX0FMSUdOLAot
CQkJCSAgaW5pdF9vbmNlKTsKKwkJCQkgIGluaXRfb25jZSwgTlVMTCk7CiAJaWYgKCFkYXp1
a29mc19pbm9kZV9pbmZvX2NhY2hlcCkKIAkJZ290byBvdXRfbm9tZW07CiAKQEAgLTI2NCw3
ICsyNzIsNyBAQCBzdGF0aWMgaW50IGluaXRfY2FjaGVzKHZvaWQpCiAJCWttZW1fY2FjaGVf
Y3JlYXRlKCJkYXp1a29mc19zYl9pbmZvX2NhY2hlIiwKIAkJCQkgIHNpemVvZihzdHJ1Y3Qg
ZGF6dWtvZnNfc2JfaW5mbyksIDAsCiAJCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04sCi0JCQkJ
ICBOVUxMKTsKKwkJCQkgIE5VTEwsIE5VTEwpOwogCWlmICghZGF6dWtvZnNfc2JfaW5mb19j
YWNoZXApCiAJCWdvdG8gb3V0X25vbWVtOwogCkBAIC0yNzIsNyArMjgwLDcgQEAgc3RhdGlj
IGludCBpbml0X2NhY2hlcyh2b2lkKQogCQlrbWVtX2NhY2hlX2NyZWF0ZSgiZGF6dWtvZnNf
ZGVudHJ5X2luZm9fY2FjaGUiLAogCQkJCSAgc2l6ZW9mKHN0cnVjdCBkYXp1a29mc19kZW50
cnlfaW5mbyksIDAsCiAJCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04sCi0JCQkJICBOVUxMKTsK
KwkJCQkgIE5VTEwsIE5VTEwpOwogCWlmICghZGF6dWtvZnNfZGVudHJ5X2luZm9fY2FjaGVw
KQogCQlnb3RvIG91dF9ub21lbTsKIApAQCAtMjgwLDcgKzI4OCw3IEBAIHN0YXRpYyBpbnQg
aW5pdF9jYWNoZXModm9pZCkKIAkJa21lbV9jYWNoZV9jcmVhdGUoImRhenVrb2ZzX2ZpbGVf
aW5mb19jYWNoZSIsCiAJCQkJICBzaXplb2Yoc3RydWN0IGRhenVrb2ZzX2ZpbGVfaW5mbyks
IDAsCiAJCQkJICBTTEFCX0hXQ0FDSEVfQUxJR04sCi0JCQkJICBOVUxMKTsKKwkJCQkgIE5V
TEwsIE5VTEwpOwogCWlmICghZGF6dWtvZnNfZmlsZV9pbmZvX2NhY2hlcCkKIAkJZ290byBv
dXRfbm9tZW07CiAKQEAgLTMwNSw3ICszMTMsNyBAQCBzdGF0aWMgc3RydWN0IGZpbGVfc3lz
dGVtX3R5cGUgZGF6dWtvZnNfCiAKIHN0YXRpYyBpbnQgX19pbml0IGluaXRfZGF6dWtvZnNf
ZnModm9pZCkKIHsKLQlpbnQgZXJyID0gMDsKKwlpbnQgZXJyOwogCiAJZXJyID0gZGF6dWtv
ZnNfZGV2X2luaXQoKTsKIAlpZiAoZXJyKQpAQCAtMzE5LDcgKzMyNyw3IEBAIHN0YXRpYyBp
bnQgX19pbml0IGluaXRfZGF6dWtvZnNfZnModm9pZCkKIAlpZiAoZXJyKQogCQlnb3RvIGVy
cm9yX291dDM7CiAKLQlwcmludGsoS0VSTl9JTkZPICJkYXp1a29mczogbG9hZGVkLCB2ZXJz
aW9uPSVzXG4iLCBEQVpVS09GU19WRVJTSU9OKTsKKwlwcmludGsoS0VSTl9JTkZPICJkYXp1
a29mczogbG9hZGVkLCB2ZXJzaW9uPSIgREFaVUtPRlNfVkVSU0lPTiAiXG4iKTsKIAlyZXR1
cm4gMDsKIAogZXJyb3Jfb3V0MzoKQEAgLTMzNSw3ICszNDMsNyBAQCBzdGF0aWMgdm9pZCBf
X2V4aXQgZXhpdF9kYXp1a29mc19mcyh2b2lkCiAJdW5yZWdpc3Rlcl9maWxlc3lzdGVtKCZk
YXp1a29mc19mc190eXBlKTsKIAlkZXN0cm95X2NhY2hlcygpOwogCWRhenVrb2ZzX2Rldl9k
ZXN0cm95KCk7Ci0JcHJpbnRrKEtFUk5fSU5GTyAiZGF6dWtvZnM6IHVubG9hZGVkLCB2ZXJz
aW9uPSVzXG4iLCBEQVpVS09GU19WRVJTSU9OKTsKKwlwcmludGsoS0VSTl9JTkZPICJkYXp1
a29mczogdW5sb2FkZWQsIHZlcnNpb249IiBEQVpVS09GU19WRVJTSU9OICJcbiIpOwogfQog
CiBNT0RVTEVfQVVUSE9SKCJKb2huIE9nbmVzcyIpOwo=
--------------080403000800050709010803
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Dazuko-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/dazuko-devel

--------------080403000800050709010803--