patch for ubuntu 8.04

Lino Sanfilippo <[email protected]> Tue, 07 Jul 2009 17:10:23 +0200
Newsgroups gmane.linux.dazuko.devel
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------090005060303020503050008
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
***************************************************
--------------090005060303020503050008
Content-Type: text/plain;
 name="patch_ubuntu8.04"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="patch_ubuntu8.04"

ZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9DSEFOR0VMT0cgZGF6dWtvZnMtMy4w
LjAtcmM0XzIuNi4yNF9VYnVudHU4LjA0L0NIQU5HRUxPRwotLS0gZGF6dWtvZnMtMy4wLjAv
Q0hBTkdFTE9HCTIwMDktMDItMjIgMTc6NTE6MjIuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1
a29mcy0zLjAuMC1yYzRfMi42LjI0X1VidW50dTguMDQvQ0hBTkdFTE9HCTIwMDktMDItMjMg
MTE6MDU6NTAuMDAwMDAwMDAwICswMTAwCkBAIC0yLDExICsyLDYgQEAKICBEYXp1a29GUyBD
SEFOR0VMT0cKID09PT09PT09PT09PT09PT09PT09CiAKLTMuMC4wICgyMDA5LTAyLTIyKQot
LSBhZGRlZCBkZWZpbmUgZm9yIHZlcnNpb24gbnVtYmVyIG91dHB1dAotLSBhZGRlZCBwYXRj
aGVzIGZvciB2YXJpb3VzIG90aGVyIGtlcm5lbHMKLQotCiAzLjAuMC1yYzQgKDIwMDgtMTEt
MzApCiAtIGZpeCBpbmNvcnJlY3QgZGVudHJ5L3Zmc21udCByZWZlcmVuY2luZyB3aGVuIGFj
Y2VzcyBkZW5pZWQKIC0gZml4IGltcHJvcGVyIGNsZWFudXAgaW4gc2V2ZXJhbCBlcnJvciBo
YW5kbGluZyBjb25kaXRpb25zCk51ciBpbiBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0X1Vi
dW50dTguMDQ6IENIQU5HRUxPR19BVklSQS4KZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0z
LjAuMC9jdHJsX2Rldi5jIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjRfVWJ1bnR1OC4wNC9j
dHJsX2Rldi5jCi0tLSBkYXp1a29mcy0zLjAuMC9jdHJsX2Rldi5jCTIwMDktMDItMjIgMTc6
NDU6MjAuMDAwMDAwMDAwICswMTAwCisrKyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0X1Vi
dW50dTguMDQvY3RybF9kZXYuYwkyMDA5LTAyLTIzIDExOjA1OjUxLjAwMDAwMDAwMCArMDEw
MApAQCAtMTgzLDcgKzE4Myw3IEBAIGludCBkYXp1a29mc19jdHJsX2Rldl9pbml0KGludCBk
ZXZfbWFqb3IKIAogCS8qIGNyZWF0ZSBjb250cm9sIGRldmljZSAqLwogCWRldiA9IGRldmlj
ZV9jcmVhdGUoZGF6dWtvZnNfY2xhc3MsIE5VTEwsIE1LREVWKGRldl9tYWpvciwgZGV2X21p
bm9yKSwKLQkJCSAgICBOVUxMLCAiJXMuY3RybCIsIERFVklDRV9OQU1FKTsKKwkJCSAgICAi
JXMuY3RybCIsIERFVklDRV9OQU1FKTsKIAlpZiAoSVNfRVJSKGRldikpIHsKIAkJZXJyID0g
UFRSX0VSUihkZXYpOwogCQlnb3RvIGVycm9yX291dDI7CmRpZmYgLXggQ1ZTIC1ydXAgZGF6
dWtvZnMtMy4wLjAvZGF6dWtvZnNfZnMuaCBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0X1Vi
dW50dTguMDQvZGF6dWtvZnNfZnMuaAotLS0gZGF6dWtvZnMtMy4wLjAvZGF6dWtvZnNfZnMu
aAkyMDA5LTAyLTIyIDE3OjQzOjExLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4w
LjAtcmM0XzIuNi4yNF9VYnVudHU4LjA0L2RhenVrb2ZzX2ZzLmgJMjAwOS0wNy0wMyAxODow
MDo1MS4wMDAwMDAwMDAgKzAyMDAKQEAgLTMsNyArMyw3IEBACiAgICBDb3B5cmlnaHQgKEMp
IDE5OTctMjAwNCBFcmV6IFphZG9rCiAgICBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNCBTdG9u
eSBCcm9vayBVbml2ZXJzaXR5CiAgICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNyBJbnRlcm5h
dGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzIENvcnAuCi0gICBDb3B5cmlnaHQgKEMpIDIwMDgt
MjAwOSBKb2huIE9nbmVzcworICAgQ29weXJpZ2h0IChDKSAyMDA4IEpvaG4gT2duZXNzCiAg
ICAgIEF1dGhvcjogSm9obiBPZ25lc3MgPGRhenVrb2NvZGVAb2duZXNzLm5ldD4KIAogICAg
VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgpAQCAtMjQsOCArMjQsNiBAQAogI2lmbmRlZiBfX0RBWlVLT0ZTX0ZTX0gKICNk
ZWZpbmUgX19EQVpVS09GU19GU19ICiAKLSNkZWZpbmUgREFaVUtPRlNfVkVSU0lPTiAiMy4w
LjAiCi0KIGV4dGVybiBzdHJ1Y3Qga21lbV9jYWNoZSAqZGF6dWtvZnNfZGVudHJ5X2luZm9f
Y2FjaGVwOwogZXh0ZXJuIHN0cnVjdCBrbWVtX2NhY2hlICpkYXp1a29mc19maWxlX2luZm9f
Y2FjaGVwOwogZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGF6dWtvZnNfbWFpbl9m
b3BzOwpkaWZmIC14IENWUyAtcnVwIGRhenVrb2ZzLTMuMC4wL2RlbnRyeS5jIGRhenVrb2Zz
LTMuMC4wLXJjNF8yLjYuMjRfVWJ1bnR1OC4wNC9kZW50cnkuYwotLS0gZGF6dWtvZnMtMy4w
LjAvZGVudHJ5LmMJMjAwOS0wMi0yMiAxNzo0NDoyMi4wMDAwMDAwMDAgKzAxMDAKKysrIGRh
enVrb2ZzLTMuMC4wLXJjNF8yLjYuMjRfVWJ1bnR1OC4wNC9kZW50cnkuYwkyMDA5LTAyLTIz
IDExOjA1OjUxLjAwMDAwMDAwMCArMDEwMApAQCAtNjUsMTkgKzY1LDE5IEBAIHN0YXRpYyBp
bnQgZGF6dWtvZnNfZF9yZXZhbGlkYXRlKHN0cnVjdCAKIAogCWxvd2VyX21udCA9IEdFVF9M
T1dFUl9NTlQoZGVudHJ5KTsKIAotCXZmc21vdW50X3NhdmUgPSBuZC0+cGF0aC5tbnQ7Ci0J
ZGVudHJ5X3NhdmUgPSBuZC0+cGF0aC5kZW50cnk7CisJdmZzbW91bnRfc2F2ZSA9IG5kLT5t
bnQ7CisJZGVudHJ5X3NhdmUgPSBuZC0+ZGVudHJ5OwogCi0JbmQtPnBhdGgubW50ID0gbW50
Z2V0KGxvd2VyX21udCk7Ci0JbmQtPnBhdGguZGVudHJ5ID0gZGdldChsb3dlcl9kZW50cnkp
OworCW5kLT5tbnQgPSBtbnRnZXQobG93ZXJfbW50KTsKKwluZC0+ZGVudHJ5ID0gZGdldChs
b3dlcl9kZW50cnkpOwogCiAJdmFsaWQgPSBsb3dlcl9kZW50cnktPmRfb3AtPmRfcmV2YWxp
ZGF0ZShsb3dlcl9kZW50cnksIG5kKTsKIAogCW1udHB1dChsb3dlcl9tbnQpOwogCWRwdXQo
bG93ZXJfZGVudHJ5KTsKIAotCW5kLT5wYXRoLm1udCA9IHZmc21vdW50X3NhdmU7Ci0JbmQt
PnBhdGguZGVudHJ5ID0gZGVudHJ5X3NhdmU7CisJbmQtPm1udCA9IHZmc21vdW50X3NhdmU7
CisJbmQtPmRlbnRyeSA9IGRlbnRyeV9zYXZlOwogCiAJLyogdXBkYXRlIHRoZSBpbm9kZSwg
ZXZlbiBpZiBkX3JldmFsaWRhdGUoKSAhPSAxICovCiAJaWYgKGRlbnRyeS0+ZF9pbm9kZSkg
ewpkaWZmIC14IENWUyAtcnVwIGRhenVrb2ZzLTMuMC4wL2V2ZW50LmMgZGF6dWtvZnMtMy4w
LjAtcmM0XzIuNi4yNF9VYnVudHU4LjA0L2V2ZW50LmMKLS0tIGRhenVrb2ZzLTMuMC4wL2V2
ZW50LmMJMjAwOS0wMi0yMiAxNzo0NDowMy4wMDAwMDAwMDAgKzAxMDAKKysrIGRhenVrb2Zz
LTMuMC4wLXJjNF8yLjYuMjRfVWJ1bnR1OC4wNC9ldmVudC5jCTIwMDktMDctMDMgMTg6NTU6
MzguMDAwMDAwMDAwICswMjAwCkBAIC0yMyw3ICsyMyw2IEBACiAjaW5jbHVkZSA8bGludXgv
ZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvbW91bnQu
aD4KLSNpbmNsdWRlIDxsaW51eC9mcmVlemVyLmg+CiAKICNpbmNsdWRlICJkZXYuaCIKICNp
bmNsdWRlICJkYXp1a29mc19mcy5oIgpAQCAtMTYyLDE2ICsxNjEsMjMgQEAgc3RhdGljIGlu
dCBjYXB0dXJlX2dyb3VwX2NvdW50KGludCAqY2FjaAogCXJldHVybiBlcnI7CiB9CiAKLXN0
YXRpYyBpbnQgZ2V0X2dyb3VwX2NvdW50KHZvaWQpCitzdGF0aWMgaW50IGdldF9ncm91cF9j
b3VudF9pbnRlcnJ1cHRpYmxlKHZvaWQpCiB7CiAJaW50IGNhY2hlID0gMDsKLQlpbnQgcmV0
ID0gd2FpdF9ldmVudF9mcmVlemFibGUoX19ncm91cF9jb3VudF9xdWV1ZSwKLQkJCQkgICAg
ICAgY2FwdHVyZV9ncm91cF9jb3VudCgmY2FjaGUpID09IDApOworCWludCByZXQgPSB3YWl0
X2V2ZW50X2ludGVycnVwdGlibGUoX19ncm91cF9jb3VudF9xdWV1ZSwKKwkJCQkgICAgICAg
ICAgIGNhcHR1cmVfZ3JvdXBfY291bnQoJmNhY2hlKSA9PSAwKTsKIAlpZiAocmV0ID09IDAp
CiAJCXJldCA9IF9fZ3JvdXBfY291bnQ7CiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIGlu
dCBnZXRfZ3JvdXBfY291bnQodm9pZCkKK3sKKwlpbnQgY2FjaGUgPSAwOworCXdhaXRfZXZl
bnQoX19ncm91cF9jb3VudF9xdWV1ZSwgY2FwdHVyZV9ncm91cF9jb3VudCgmY2FjaGUpID09
IDApOworCXJldHVybiBfX2dyb3VwX2NvdW50OworfQorCiBzdGF0aWMgdm9pZCBwdXRfZ3Jv
dXBfY291bnQodm9pZCkKIHsKIAltdXRleF9sb2NrKCZncm91cF9jb3VudF9tdXRleCk7CkBA
IC0zOTksNyArNDA1LDcgQEAgaW50IGRhenVrb2ZzX2FkZF9ncm91cChjb25zdCBjaGFyICpu
YW1lLAogCWludCBhbHJlYWR5X2V4aXN0czsKIAlpbnQgYXZhaWxhYmxlX2lkID0gMDsKIAlz
dHJ1Y3QgZGF6dWtvZnNfZ3JvdXAgKmdycDsKLQlpbnQgZ3JwX2NvdW50ID0gZ2V0X2dyb3Vw
X2NvdW50KCk7CisJaW50IGdycF9jb3VudCA9IGdldF9ncm91cF9jb3VudF9pbnRlcnJ1cHRp
YmxlKCk7CiAKIAlpZiAoZ3JwX2NvdW50IDwgMCkgewogCQlyZXQgPSBncnBfY291bnQ7CkBA
IC00NDcsNyArNDUzLDcgQEAgaW50IGRhenVrb2ZzX3JlbW92ZV9ncm91cChjb25zdCBjaGFy
ICpuYQogCWludCByZXQgPSAwOwogCXN0cnVjdCBkYXp1a29mc19ncm91cCAqZ3JwOwogCXN0
cnVjdCBsaXN0X2hlYWQgKnBvczsKLQlpbnQgZ3JwX2NvdW50ID0gZ2V0X2dyb3VwX2NvdW50
KCk7CisJaW50IGdycF9jb3VudCA9IGdldF9ncm91cF9jb3VudF9pbnRlcnJ1cHRpYmxlKCk7
CiAKIAlpZiAoZ3JwX2NvdW50IDwgMCkgewogCQlyZXQgPSBncnBfY291bnQ7CkBAIC03MDEs
MTEgKzcwNywxMCBAQCBpbnQgZGF6dWtvZnNfY2hlY2tfYWNjZXNzKHN0cnVjdCBkZW50cnkg
CiB7CiAJc3RydWN0IGRhenVrb2ZzX2V2ZW50X2NvbnRhaW5lciAqZWNfYXJyYXlbR1JPVVBf
Q09VTlRdOwogCXN0cnVjdCBkYXp1a29mc19ldmVudCAqZXZ0OwotCWludCBncnBfY291bnQg
PSBnZXRfZ3JvdXBfY291bnQoKTsKLQlpbnQgZXJyOworCWludCBncnBfY291bnQ7CisJaW50
IGVyciA9IDA7CiAKLQlpZiAoZ3JwX2NvdW50IDwgMCkKLQkJcmV0dXJuIGdycF9jb3VudDsK
KwlncnBfY291bnQgPSBnZXRfZ3JvdXBfY291bnQoKTsKIAogCWlmIChjaGVja19hY2Nlc3Nf
cHJlY2hlY2soZ3JwX2NvdW50KSkgewogCQlwdXRfZ3JvdXBfY291bnQoKTsKQEAgLTcxMywz
MiArNzE4LDI5IEBAIGludCBkYXp1a29mc19jaGVja19hY2Nlc3Moc3RydWN0IGRlbnRyeSAK
IAl9CiAKIAkvKiBhdCB0aGlzIHBvaW50LCB0aGUgYWNjZXNzIHNob3VsZCBiZSBoYW5kbGVk
ICovCi0KIAlpZiAoYWxsb2NhdGVfZXZlbnRfYW5kX2NvbnRhaW5lcnMoJmV2dCwgZWNfYXJy
YXksIGdycF9jb3VudCkpIHsKIAkJcHV0X2dyb3VwX2NvdW50KCk7Ci0JCWVyciA9IC1FTk9N
RU07Ci0JCWdvdG8gb3V0OworCQlyZXR1cm4gLUVOT01FTTsKIAl9Ci0KIAlldnQtPmRlbnRy
eSA9IGRnZXQoZGVudHJ5KTsKIAlldnQtPm1udCA9IG1udGdldChtbnQpOwogCWV2dC0+cGlk
ID0gY3VycmVudC0+cGlkOwotCiAJYXNzaWduX2V2ZW50X3RvX2dyb3VwcyhldnQsIGVjX2Fy
cmF5KTsKIAogCXB1dF9ncm91cF9jb3VudCgpOwogCi0JLyogd2FpdCB1bnRpbCBldmVudCBj
b21wbGV0ZWx5IHByb2Nlc3NlZCBvciBzaWduYWwgKi8KLQllcnIgPSB3YWl0X2V2ZW50X2Zy
ZWV6YWJsZShldnQtPnF1ZXVlLCBldmVudF9hc3NpZ25lZChldnQpID09IDApOworCS8qIHdh
aXQgdW50aWwgZXZlbnQgY29tcGxldGVseSBwcm9jZXNzZWQgKi8KKwl3YWl0X2V2ZW50KGV2
dC0+cXVldWUsIGV2ZW50X2Fzc2lnbmVkKGV2dCkgPT0gMCk7CiAKIAlpZiAoZXZ0LT5kZW55
KQogCQllcnIgPSAtRVBFUk07CiAKIAlyZWxlYXNlX2V2ZW50KGV2dCwgMCwgMCk7Ci1vdXQ6
CisJCiAJcmV0dXJuIGVycjsKIH0KIAorCiBpbnQgZGF6dWtvZnNfZ3JvdXBfb3Blbl90cmFj
a2luZyh1bnNpZ25lZCBsb25nIGdyb3VwX2lkKQogewogCXN0cnVjdCBkYXp1a29mc19ncm91
cCAqZ3JwOwpAQCAtOTI4LDcgKzkzMCw4IEBAIHN0YXRpYyBpbnQgb3Blbl9maWxlKHN0cnVj
dCBkYXp1a29mc19ldmUKIAkvKiBhZGQgbXlzZWxmIHRvIGJlIGlnbm9yZWQgb24gZmlsZSBv
cGVuICh0byBhdm9pZCByZWN1cnNpb24pICovCiAJbWFza19wcm9jKCZwcm9jKTsKIAotCWVj
LT5maWxlID0gZGVudHJ5X29wZW4oZGdldChldnQtPmRlbnRyeSksIG1udGdldChldnQtPm1u
dCksIE9fUkRPTkxZKTsKKwllYy0+ZmlsZSA9IGRlbnRyeV9vcGVuKGRnZXQoZXZ0LT5kZW50
cnkpLCBtbnRnZXQoZXZ0LT5tbnQpLCAKKwkJCSAgICAgICBPX1JET05MWSB8IE9fTEFSR0VG
SUxFKTsKIAlpZiAoSVNfRVJSKGVjLT5maWxlKSkgewogCQljaGVja19yZWN1cnNpb24oKTsg
IC8qIHJlbW92ZSBteXNlbGYgZnJvbSBwcm9jX2xpc3QgKi8KIAkJcmV0ID0gUFRSX0VSUihl
Yy0+ZmlsZSk7CkBAIC0xMDA0LDkgKzEwMDcsOSBAQCBpbnQgZGF6dWtvZnNfZ2V0X2V2ZW50
KHVuc2lnbmVkIGxvbmcgZ3JvCiAJfQogCiAJd2hpbGUgKDEpIHsKLQkJcmV0ID0gd2FpdF9l
dmVudF9mcmVlemFibGUoZ3JwLT5xdWV1ZSwKLQkJCQkJICAgaXNfZXZlbnRfYXZhaWxhYmxl
KGdycCkgfHwKLQkJCQkJICAgZ3JwLT5kZXByZWNhdGVkKTsKKwkJcmV0ID0gd2FpdF9ldmVu
dF9pbnRlcnJ1cHRpYmxlKGdycC0+cXVldWUsCisJCQkJCSAgICAgICBpc19ldmVudF9hdmFp
bGFibGUoZ3JwKSB8fAorCQkJCQkgICAgICAgZ3JwLT5kZXByZWNhdGVkKTsKIAkJaWYgKHJl
dCAhPSAwKQogCQkJYnJlYWs7CiAKZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9m
aWxlLmMgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yNF9VYnVudHU4LjA0L2ZpbGUuYwotLS0g
ZGF6dWtvZnMtMy4wLjAvZmlsZS5jCTIwMDktMDItMjIgMTc6NDM6MTEuMDAwMDAwMDAwICsw
MTAwCisrKyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0X1VidW50dTguMDQvZmlsZS5jCTIw
MDktMDctMDMgMTg6NDk6MDguMDAwMDAwMDAwICswMjAwCkBAIC0xNzcsMTAgKzE3NywxMSBA
QCBzdGF0aWMgaW50IGRhenVrb2ZzX29wZW4oc3RydWN0IGlub2RlICppCiAJc3RydWN0IGZp
bGUgKmxvd2VyX2ZpbGU7CiAJaW50IGVycjsKIAotCWVyciA9IGRhenVrb2ZzX2NoZWNrX2Fj
Y2VzcyhmaWxlLT5mX2RlbnRyeSwgZmlsZS0+Zl92ZnNtbnQpOwotCWlmIChlcnIpCi0JCWdv
dG8gZXJyb3Jfb3V0MTsKLQorCWlmIChTX0lTUkVHKGlub2RlLT5pX21vZGUpKSB7CisJCWVy
ciA9IGRhenVrb2ZzX2NoZWNrX2FjY2VzcyhmaWxlLT5mX2RlbnRyeSwgZmlsZS0+Zl92ZnNt
bnQpOworCQlpZiAoZXJyKQorCQkJZ290byBlcnJvcl9vdXQxOworCX0KIAlTRVRfRklMRV9J
TkZPKGZpbGUsIGttZW1fY2FjaGVfemFsbG9jKGRhenVrb2ZzX2ZpbGVfaW5mb19jYWNoZXAs
CiAJCSAgICAgIEdGUF9LRVJORUwpKTsKIAlpZiAoIUdFVF9GSUxFX0lORk8oZmlsZSkpIHsK
QEAgLTI3Miw2ICsyNzMsMjAgQEAgb3V0OgogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyBp
bnQgZGF6dWtvZnNfbW1hcCAoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0
cnVjdCAqdm0pCit7CisKKwlzdHJ1Y3QgZmlsZSAqbG93ZXJfZmlsZSA9IEdFVF9MT1dFUl9G
SUxFKGZpbGUpOworCisJLyogaWYgbG93ZXIgZnMgZG9lcyBub3Qgc3VwcG9ydCBtbWFwKCks
IHdlIGRvbnQgY2FsbCBnZW5lcmljX2ZpbGVfcmVhZG9ubHlfbW1hcCgpLCAKKwkgKiBzaW5j
ZSB0aGlzIHdvdWxkIHJlc3VsdCBpbiBjYWxsaW5nIGxvd2VyIHJlYWRwYWdlKCksIHdoaWNo
IG1pZ2h0IG5vdCBiZSAKKwkgKiBkZWZpbmVkIGJ5IGxvd2VyIGZzIGlmIG1tYXAoKSBpcyBu
b3Qgc3VwcG9ydGVkKi8KKwlpZiAoIWxvd2VyX2ZpbGUtPmZfb3AgfHwgIWxvd2VyX2ZpbGUt
PmZfb3AtPm1tYXApIAorCQlyZXR1cm4gLUVOT0RFVjsKKwkKKworCXJldHVybiBnZW5lcmlj
X2ZpbGVfcmVhZG9ubHlfbW1hcChmaWxlLCB2bSk7Cit9CiAvKioKICAqIFVudXNlZCBvcGVy
YXRpb25zOgogICogICAtIG93bmVyCkBAIC0yOTUsMTggKzMxMCwxNSBAQCBvdXQ6CiBzdHJ1
Y3QgZmlsZV9vcGVyYXRpb25zIGRhenVrb2ZzX21haW5fZm9wcyA9IHsKIAkubGxzZWVrCQk9
IGRhenVrb2ZzX2xsc2VlaywKIAkucmVhZAkJPSBkYXp1a29mc19yZWFkLAotCS5haW9fcmVh
ZAk9IGdlbmVyaWNfZmlsZV9haW9fcmVhZCwKIAkud3JpdGUJCT0gZGF6dWtvZnNfd3JpdGUs
Ci0JLmFpb193cml0ZQk9IGdlbmVyaWNfZmlsZV9haW9fd3JpdGUsCiAJLnJlYWRkaXIJPSBk
YXp1a29mc19yZWFkZGlyLAogCS5pb2N0bAkJPSBkYXp1a29mc19pb2N0bCwKLQkubW1hcAkJ
PSBnZW5lcmljX2ZpbGVfbW1hcCwKKwkubW1hcAkJPSBkYXp1a29mc19tbWFwLAogCS5vcGVu
CQk9IGRhenVrb2ZzX29wZW4sCiAJLmZsdXNoCQk9IGRhenVrb2ZzX2ZsdXNoLAogCS5yZWxl
YXNlCT0gZGF6dWtvZnNfcmVsZWFzZSwKIAkuZnN5bmMJCT0gZGF6dWtvZnNfZnN5bmMsCiAJ
LmZhc3luYwkJPSBkYXp1a29mc19mYXN5bmMsCi0JLnNwbGljZV9yZWFkCT0gZ2VuZXJpY19m
aWxlX3NwbGljZV9yZWFkLAogfTsKIAogLyoqCkBAIC0zMzUsMTEgKzM0NywxMCBAQCBzdHJ1
Y3QgZmlsZV9vcGVyYXRpb25zIGRhenVrb2ZzX21haW5fZm9wCiBjb25zdCBzdHJ1Y3QgZmls
ZV9vcGVyYXRpb25zIGRhenVrb2ZzX2Rpcl9mb3BzID0gewogCS5yZWFkZGlyCT0gZGF6dWtv
ZnNfcmVhZGRpciwKIAkuaW9jdGwJCT0gZGF6dWtvZnNfaW9jdGwsCi0JLm1tYXAJCT0gZ2Vu
ZXJpY19maWxlX21tYXAsCisJLm1tYXAJCT0gZGF6dWtvZnNfbW1hcCwKIAkub3BlbgkJPSBk
YXp1a29mc19vcGVuLAogCS5mbHVzaAkJPSBkYXp1a29mc19mbHVzaCwKIAkucmVsZWFzZQk9
IGRhenVrb2ZzX3JlbGVhc2UsCiAJLmZzeW5jCQk9IGRhenVrb2ZzX2ZzeW5jLAogCS5mYXN5
bmMJCT0gZGF6dWtvZnNfZmFzeW5jLAotCS5zcGxpY2VfcmVhZAk9IGdlbmVyaWNfZmlsZV9z
cGxpY2VfcmVhZCwKIH07CmRpZmYgLXggQ1ZTIC1ydXAgZGF6dWtvZnMtMy4wLjAvZ3JvdXBf
ZGV2LmMgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yNF9VYnVudHU4LjA0L2dyb3VwX2Rldi5j
Ci0tLSBkYXp1a29mcy0zLjAuMC9ncm91cF9kZXYuYwkyMDA5LTAyLTIyIDE3OjQ1OjIwLjAw
MDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yNF9VYnVudHU4LjA0
L2dyb3VwX2Rldi5jCTIwMDktMDItMjMgMTE6MDU6NDcuMDAwMDAwMDAwICswMTAwCkBAIC0y
MTAsNyArMjEwLDcgQEAgaW50IGRhenVrb2ZzX2dyb3VwX2Rldl9pbml0KGludCBkZXZfbWFq
bwogCS8qIGNyZWF0ZSBncm91cCBkZXZpY2VzICovCiAJZm9yIChpID0gMDsgaSA8IEdST1VQ
X0NPVU5UOyBpKyspIHsKIAkJZGV2ID0gZGV2aWNlX2NyZWF0ZShkYXp1a29mc19jbGFzcywg
TlVMTCwKLQkJCQkgICAgTUtERVYoZGV2X21ham9yLCBkZXZfbWlub3JfZW5kKSwgTlVMTCwK
KwkJCQkgICAgTUtERVYoZGV2X21ham9yLCBkZXZfbWlub3JfZW5kKSwKIAkJCQkgICAgIiVz
LiVkIiwgREVWSUNFX05BTUUsIGkpOwogCQlpZiAoSVNfRVJSKGRldikpIHsKIAkJCWVyciA9
IFBUUl9FUlIoZGV2KTsKZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9pZ25fZGV2
LmMgZGF6dWtvZnMtMy4wLjAtcmM0XzIuNi4yNF9VYnVudHU4LjA0L2lnbl9kZXYuYwotLS0g
ZGF6dWtvZnMtMy4wLjAvaWduX2Rldi5jCTIwMDktMDItMjIgMTc6NDU6MjAuMDAwMDAwMDAw
ICswMTAwCisrKyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0X1VidW50dTguMDQvaWduX2Rl
di5jCTIwMDktMDItMjMgMTE6MDU6NDcuMDAwMDAwMDAwICswMTAwCkBAIC0xNTksNyArMTU5
LDcgQEAgaW50IGRhenVrb2ZzX2lnbl9kZXZfaW5pdChpbnQgZGV2X21ham9yLAogCiAJLyog
Y3JlYXRlIGlnbm9yZSBkZXZpY2UgKi8KIAlkZXYgPSBkZXZpY2VfY3JlYXRlKGRhenVrb2Zz
X2NsYXNzLCBOVUxMLCBNS0RFVihkZXZfbWFqb3IsIGRldl9taW5vciksCi0JCQkgICAgTlVM
TCwgIiVzLmlnbiIsIERFVklDRV9OQU1FKTsKKwkJCSAgICAiJXMuaWduIiwgREVWSUNFX05B
TUUpOwogCWlmIChJU19FUlIoZGV2KSkgewogCQllcnIgPSBQVFJfRVJSKGRldik7CiAJCWdv
dG8gZXJyb3Jfb3V0MzsKZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9pbm9kZS5j
IGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjRfVWJ1bnR1OC4wNC9pbm9kZS5jCi0tLSBkYXp1
a29mcy0zLjAuMC9pbm9kZS5jCTIwMDktMDItMjIgMTc6NDY6MDIuMDAwMDAwMDAwICswMTAw
CisrKyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0X1VidW50dTguMDQvaW5vZGUuYwkyMDA5
LTA3LTAzIDE4OjM5OjQ2LjAwMDAwMDAwMCArMDIwMApAQCAtNDUsMTQgKzQ1LDI4IEBAIHN0
YXRpYyBpbnQgZGF6dWtvZnNfaW5vZGVfdGVzdChzdHJ1Y3QgaW4KIAlyZXR1cm4gMDsKIH0K
IAorCiBzdGF0aWMgdm9pZCBkYXp1a29mc19pbml0X2lub2RlKHN0cnVjdCBpbm9kZSAqaW5v
ZGUsIHN0cnVjdCBpbm9kZSAqbG93ZXJfaW5vZGUpCiB7Ci0JU0VUX0xPV0VSX0lOT0RFKGlu
b2RlLCBsb3dlcl9pbm9kZSk7Ci0JaW5vZGUtPmlfaW5vID0gbG93ZXJfaW5vZGUtPmlfaW5v
OwotCWlub2RlLT5pX3ZlcnNpb24rKzsKLQlpbm9kZS0+aV9vcCA9ICZkYXp1a29mc19tYWlu
X2lvcHM7Ci0JaW5vZGUtPmlfZm9wID0gJmRhenVrb2ZzX21haW5fZm9wczsKLQlpbm9kZS0+
aV9tYXBwaW5nLT5hX29wcyA9ICZkYXp1a29mc19hb3BzOworICAgICAgICBTRVRfTE9XRVJf
SU5PREUoaW5vZGUsIGxvd2VyX2lub2RlKTsKKyAgICAgICAgaW5vZGUtPmlfaW5vID0gbG93
ZXJfaW5vZGUtPmlfaW5vOworICAgICAgICBpbm9kZS0+aV92ZXJzaW9uKys7CisKKyAgICAg
ICAgaWYgKFNfSVNESVIobG93ZXJfaW5vZGUtPmlfbW9kZSkpIHsKKyAgICAgICAgICAgICAg
ICBpbm9kZS0+aV9vcCA9ICZkYXp1a29mc19kaXJfaW9wczsKKyAgICAgICAgICAgICAgICBp
bm9kZS0+aV9mb3AgPSAmZGF6dWtvZnNfZGlyX2ZvcHM7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgaW5vZGUtPmlfb3AgPSAmZGF6dWtvZnNfbWFpbl9pb3BzOworICAg
ICAgICAgICAgICAgIGlub2RlLT5pX2ZvcCA9ICZkYXp1a29mc19tYWluX2ZvcHM7CisKKyAg
ICAgICAgICAgICAgICBpZiAoU19JU0xOSyhsb3dlcl9pbm9kZS0+aV9tb2RlKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlub2RlLT5pX29wID0gJmRhenVrb2ZzX3N5bWxpbmtfaW9w
czsKKyAgICAgICAgICAgICAgICBlbHNlICBpZiAoc3BlY2lhbF9maWxlKGxvd2VyX2lub2Rl
LT5pX21vZGUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbml0X3NwZWNpYWxfaW5v
ZGUoaW5vZGUsIGxvd2VyX2lub2RlLT5pX21vZGUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbG93ZXJfaW5vZGUtPmlfcmRldik7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlub2RlLT5pX21hcHBpbmctPmFfb3BzID0g
JmRhenVrb2ZzX2FvcHM7CiB9CiAKIHN0YXRpYyBpbnQgZGF6dWtvZnNfaW5vZGVfc2V0KHN0
cnVjdCBpbm9kZSAqaW5vZGUsIHZvaWQgKmxvd2VyX2lub2RlKQpAQCAtNjEsNzMgKzc1LDEy
MCBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX2lub2RlX3NldChzdHJ1Y3QgaW5vCiAJcmV0dXJu
IDA7CiB9CiAKKwogaW50IGRhenVrb2ZzX2ludGVycG9zZShzdHJ1Y3QgZGVudHJ5ICpsb3dl
cl9kZW50cnksIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKLQkJICAgICBzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKnNiLCBpbnQgZmxhZykKKwkJICAgICBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBp
bnQgaGFzaCkKIHsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlOwotCXN0cnVjdCBpbm9kZSAqbG93
ZXJfaW5vZGUgPSBpZ3JhYihsb3dlcl9kZW50cnktPmRfaW5vZGUpOwotCWludCBlcnIgPSAw
OworCXN0cnVjdCBpbm9kZSAqbG93ZXJfaW5vZGU7CisJaW50IGVycjsKIAotCWlmICghbG93
ZXJfaW5vZGUpIHsKLQkJZXJyID0gLUVTVEFMRTsKLQkJZ290byBvdXQ7Ci0JfQorCWxvd2Vy
X2lub2RlID0gaWdyYWIobG93ZXJfZGVudHJ5LT5kX2lub2RlKTsKIAotCWlmIChsb3dlcl9p
bm9kZS0+aV9zYiAhPSBHRVRfTE9XRVJfU0Ioc2IpKSB7Ci0JCWlwdXQobG93ZXJfaW5vZGUp
OwotCQllcnIgPSAtRVhERVY7Ci0JCWdvdG8gb3V0OwotCX0KKwlpZiAoIWxvd2VyX2lub2Rl
KSAKKwkJcmV0dXJuIC1FU1RBTEU7CiAKIAlpbm9kZSA9IGlnZXQ1X2xvY2tlZChzYiwgKHVu
c2lnbmVkIGxvbmcpbG93ZXJfaW5vZGUsCiAJCQkgICAgIGRhenVrb2ZzX2lub2RlX3Rlc3Qs
IGRhenVrb2ZzX2lub2RlX3NldCwKIAkJCSAgICAgbG93ZXJfaW5vZGUpOwotCiAJaWYgKCFp
bm9kZSkgewotCQlpcHV0KGxvd2VyX2lub2RlKTsKIAkJZXJyID0gLUVBQ0NFUzsKLQkJZ290
byBvdXQ7CisJCWdvdG8gZXJyOwogCX0KIAotCWlmIChpbm9kZS0+aV9zdGF0ZSAmIElfTkVX
KSB7CisJaWYgKGlub2RlLT5pX3N0YXRlICYgSV9ORVcpIAogCQl1bmxvY2tfbmV3X2lub2Rl
KGlub2RlKTsKIAkJLyoKIAkJICogVGhpcyBpcyBhIG5ldyBub2RlIHNvIHdlIGxlYXZlIHRo
ZSBsb3dlcl9ub2RlICJpbiB1c2UiCiAJCSAqIGFuZCBkbyBub3QgY2FsbCBpcHV0KCkuCiAJ
CSAqLwotCX0gZWxzZSB7CisJZWxzZSAKIAkJLyoKIAkJICogVGhpcyBpcyBub3QgYSBuZXcg
bm9kZSBzbyB3ZSBkZWNyZW1lbnQgdGhlIHVzYWdlIGNvdW50LgogCQkgKi8KIAkJaXB1dChs
b3dlcl9pbm9kZSk7Ci0JfQotCi0JaWYgKFNfSVNMTksobG93ZXJfaW5vZGUtPmlfbW9kZSkp
Ci0JCWlub2RlLT5pX29wID0gJmRhenVrb2ZzX3N5bWxpbmtfaW9wczsKLQllbHNlIGlmIChT
X0lTRElSKGxvd2VyX2lub2RlLT5pX21vZGUpKQotCQlpbm9kZS0+aV9vcCA9ICZkYXp1a29m
c19kaXJfaW9wczsKLQotCWlmIChTX0lTRElSKGxvd2VyX2lub2RlLT5pX21vZGUpKQotCQlp
bm9kZS0+aV9mb3AgPSAmZGF6dWtvZnNfZGlyX2ZvcHM7Ci0KLQlpZiAoc3BlY2lhbF9maWxl
KGxvd2VyX2lub2RlLT5pX21vZGUpKSB7Ci0JCWluaXRfc3BlY2lhbF9pbm9kZShpbm9kZSwg
bG93ZXJfaW5vZGUtPmlfbW9kZSwKLQkJCQkgICBsb3dlcl9pbm9kZS0+aV9yZGV2KTsKLQl9
CiAKLQlkZW50cnktPmRfb3AgPSAmZGF6dWtvZnNfZG9wczsKIAotCWlmIChmbGFnKQorCWlm
IChoYXNoKQogCQlkX2FkZChkZW50cnksIGlub2RlKTsKIAllbHNlCiAJCWRfaW5zdGFudGlh
dGUoZGVudHJ5LCBpbm9kZSk7CiAKIAlmc3N0YWNrX2NvcHlfYXR0cl9hbGwoaW5vZGUsIGxv
d2VyX2lub2RlLCBOVUxMKTsKIAlmc3N0YWNrX2NvcHlfaW5vZGVfc2l6ZShpbm9kZSwgbG93
ZXJfaW5vZGUpOwotb3V0OgorCisJcmV0dXJuIDA7CitlcnI6CisJaXB1dChsb3dlcl9pbm9k
ZSk7CiAJcmV0dXJuIGVycjsKIH0KIAorCisvKiBjcmVhdGVzIGEgbmV3IGxvd2VyIGRlbnRy
eSAqLworc3RhdGljIHN0cnVjdCBkZW50cnkgKmRhenVrb2ZzX25ld19sb3dlcl9kZW50cnko
c3RydWN0IHFzdHIgKm5hbWUsCisJCQkJCQlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9iYXNlLCAK
KwkJCQkJCXN0cnVjdCBuYW1laWRhdGEgKm5kKQoreworCXN0cnVjdCBkZW50cnkgKm5ld19k
ZW50cnk7CisJc3RydWN0IGRlbnRyeSAqdG1wOworCXN0cnVjdCBpbm9kZSAqbG93ZXJfaW5v
ZGU7CisKKwlsb3dlcl9pbm9kZSA9IGxvd2VyX2Jhc2UtPmRfaW5vZGU7CisJLyogWFhYOiBp
cyB0aGlzIGNoZWNrIHN0aWxsIG5lY2Vzc2FyeT8gKHNlZSBfX2xvb2t1cF9oYXNoKCkpCisJ
ICAgVGhpcyBpcyAoaG9wZWx5KSBwcm90ZWN0ZWQgYnkgbG9ja2VkIHVwcGVyIGlub2RlICov
CisJaWYgKElTX0RFQURESVIobG93ZXJfaW5vZGUpKSB7CisJCW5ld19kZW50cnkgPSBFUlJf
UFRSKC1FTk9FTlQpOworCQlnb3RvIG91dDsKKwl9CisJdG1wID0gZF9hbGxvYyhsb3dlcl9i
YXNlLCBuYW1lKTsKKwlpZiAoIXRtcCkgeworCQluZXdfZGVudHJ5ID0gRVJSX1BUUigtRU5P
TUVNKTsKKwkJZ290byBvdXQ7CisJfQorCW5ld19kZW50cnkgPSBsb3dlcl9pbm9kZS0+aV9v
cC0+bG9va3VwKGxvd2VyX2lub2RlLCB0bXAsIG5kKTsKKwkvKiBsb29rdXAoKSBzZWVtaW5n
bHkgaXMgYWxsb3dlZCB0byByZXR1cm4gaXRzIG93biBkZW50cnkgKHdoaWNoIAorCSAqIG1h
eSBpbmRlZWQgYmUgYSBkZW50cnkgb3Igb25seSBhbiBlcnJvcikuIElmIHNvCisJICogd2Ug
dXNlIGl0IGFuZCBkaXNjYXJkIG91cnMuIE90aGVyd2lzZSB3ZSB1c2Ugb3VycyAqLyAKKwlp
ZiAoIW5ld19kZW50cnkpIAorCQluZXdfZGVudHJ5ID0gdG1wOworCWVsc2UgCisJCWRwdXQo
dG1wKTsKKwkJCitvdXQ6CQkKKwlyZXR1cm4gbmV3X2RlbnRyeTsKK30KKworCisvKiBnZXQg
bG93ZXIgZGVudHJ5IGZvciBnaXZlbiBuYW1lICovCitzdGF0aWMgc3RydWN0IGRlbnRyeSAq
ZGF6dWtvZnNfbG9va3VwX29uZV9sb3dlcihzdHJ1Y3QgcXN0ciAqbmFtZSwgCisJCQkJCQlz
dHJ1Y3QgZGVudHJ5ICpsb3dlcl9iYXNlLAorCQkJCQkJc3RydWN0IHZmc21vdW50ICpsb3dl
cl9tbnQpCit7CisJc3RydWN0IGRlbnRyeSAqcmVzdWx0OworCXN0cnVjdCBuYW1laWRhdGEg
bmQ7CisJaW50IGVycjsKKworCWVyciA9IHZmc19wYXRoX2xvb2t1cChsb3dlcl9iYXNlLCBs
b3dlcl9tbnQsIG5hbWUtPm5hbWUsIDAsICZuZCk7CisKKwlpZiAoIWVycikgeworCQkvKiBp
bm9kZSBhbHJlYWR5IGV4aXN0cyBvbiBkaXNrICovCisJCXJlc3VsdCA9IG5kLmRlbnRyeTsK
KwkJLyogd2UgZG9udCBuZWVkIHRoZSBtb3VudCAqLworCQltbnRwdXQobmQubW50KTsKKwkJ
Z290byBvdXQ7CisJfQorCWlmIChlcnIgIT0gLUVOT0VOVCkgeyAvKiB0aGlzIGlzIGEgUkVB
TCBlcnJvciAqLwkKKwkJcmVzdWx0ID0gRVJSX1BUUihlcnIpOworCQlnb3RvIG91dDsKKwl9
CQorCS8qIGNyZWF0ZSBhIG5ldyAobG93ZXIpIGRlbnRyeSAqLworCXJlc3VsdCA9IGRhenVr
b2ZzX25ld19sb3dlcl9kZW50cnkobmFtZSwgbG93ZXJfYmFzZSwgJm5kKTsKK291dDoKKwly
ZXR1cm4gcmVzdWx0OworCit9CisKKwogLyoqCiAgKiBEZXNjcmlwdGlvbjogQ2FsbGVkIHdo
ZW4gdGhlIFZGUyBuZWVkcyB0byBsb29rIHVwIGFuIGlub2RlIGluIGEgcGFyZW50CiAgKiBk
aXJlY3RvcnkuIFRoZSBuYW1lIHRvIGxvb2sgZm9yIGlzIGZvdW5kIGluIHRoZSBkZW50cnku
IFRoaXMgbWV0aG9kCkBAIC0xNDgsNjIgKzIwOSw0OCBAQCBzdGF0aWMgc3RydWN0IGRlbnRy
eSAqZGF6dWtvZnNfbG9va3VwKHN0CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfZGVudHJ5Owog
CXN0cnVjdCBkZW50cnkgKmxvd2VyX2RlbnRyeV9wYXJlbnQ7CiAJc3RydWN0IHZmc21vdW50
ICpsb3dlcl9tbnQ7Ci0JaW50IGVyciA9IDA7Ci0KLQlpZiAoKGRlbnRyeS0+ZF9uYW1lLmxl
biA9PSAxICYmICFzdHJjbXAoZGVudHJ5LT5kX25hbWUubmFtZSwgIi4iKSkKLQkgICAgfHwg
KGRlbnRyeS0+ZF9uYW1lLmxlbiA9PSAyICYmCi0JCSFzdHJjbXAoZGVudHJ5LT5kX25hbWUu
bmFtZSwgIi4uIikpKSB7Ci0JCWRfZHJvcChkZW50cnkpOwotCQlnb3RvIG91dDsKLQl9Ci0K
LQlkZW50cnktPmRfb3AgPSAmZGF6dWtvZnNfZG9wczsKKwlpbnQgZXJyOwogCiAJbG93ZXJf
ZGVudHJ5X3BhcmVudCA9IEdFVF9MT1dFUl9ERU5UUlkoZGVudHJ5LT5kX3BhcmVudCk7Ci0J
bG93ZXJfZGVudHJ5ID0gbG9va3VwX29uZV9sZW4oZGVudHJ5LT5kX25hbWUubmFtZSwgbG93
ZXJfZGVudHJ5X3BhcmVudCwKLQkJCQkgICAgICBkZW50cnktPmRfbmFtZS5sZW4pOworCS8q
IHNob3VsZCBiZSByZWxlYXNlZCBpbiBkX3JlbGVhc2UoKSAqLworCWxvd2VyX21udCA9IG1u
dGdldChHRVRfTE9XRVJfTU5UKGRlbnRyeS0+ZF9wYXJlbnQpKTsKIAorCWxvd2VyX2RlbnRy
eSA9IGRhenVrb2ZzX2xvb2t1cF9vbmVfbG93ZXIoJmRlbnRyeS0+ZF9uYW1lLCAKKwkJCQkJ
CSBsb3dlcl9kZW50cnlfcGFyZW50LCAKKwkJCQkJCSBsb3dlcl9tbnQpOyAKIAlpZiAoSVNf
RVJSKGxvd2VyX2RlbnRyeSkpIHsKLQkJZXJyID0gUFRSX0VSUihsb3dlcl9kZW50cnkpOwot
CQlkX2Ryb3AoZGVudHJ5KTsKLQkJZ290byBvdXQ7CisJCW1udHB1dChsb3dlcl9tbnQpOwor
CQlyZXR1cm4gbG93ZXJfZGVudHJ5OwogCX0KLQogCUJVR19PTighYXRvbWljX3JlYWQoJmxv
d2VyX2RlbnRyeS0+ZF9jb3VudCkpOwogCisJZGVudHJ5LT5kX29wID0gJmRhenVrb2ZzX2Rv
cHM7CiAJU0VUX0RFTlRSWV9JTkZPKGRlbnRyeSwga21lbV9jYWNoZV96YWxsb2MoZGF6dWtv
ZnNfZGVudHJ5X2luZm9fY2FjaGVwLAogCQkJR0ZQX0tFUk5FTCkpOwogCiAJaWYgKCFHRVRf
REVOVFJZX0lORk8oZGVudHJ5KSkgewotCQllcnIgPSAtRU5PTUVNOwotCQlnb3RvIG91dF9k
cHV0OworCQltbnRwdXQobG93ZXJfbW50KTsKKwkJZHB1dChsb3dlcl9kZW50cnkpOworCQly
ZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAl9Ci0KLQlsb3dlcl9tbnQgPSBtbnRnZXQoR0VU
X0xPV0VSX01OVChkZW50cnktPmRfcGFyZW50KSk7Ci0KLQlmc3N0YWNrX2NvcHlfYXR0cl9h
dGltZShkaXIsIGxvd2VyX2RlbnRyeV9wYXJlbnQtPmRfaW5vZGUpOwotCiAJU0VUX0xPV0VS
X0RFTlRSWShkZW50cnksIGxvd2VyX2RlbnRyeSwgbG93ZXJfbW50KTsKLQorCS8qIGZyb20g
bm93IGxvd2VyIGRlbnRyeSBhbmQgbG93ZXIgbW91bnQgYXJlIHJlbGVhc2VkIGluIAorCSAg
ZF9yZWxlYXNlIG9mIHVwcGVyIGRlbnRyeSAqLworCWZzc3RhY2tfY29weV9hdHRyX2F0aW1l
KGRpciwgbG93ZXJfZGVudHJ5X3BhcmVudC0+ZF9pbm9kZSk7CiAJaWYgKCFsb3dlcl9kZW50
cnktPmRfaW5vZGUpIHsKIAkJLyoKIAkJICogV2Ugd2FudCB0byBhZGQgYmVjYXVzZSB3ZSBj
b3VsZCBub3QgZmluZCBpbiBsb3dlci4KIAkJICovCiAJCWRfYWRkKGRlbnRyeSwgTlVMTCk7
Ci0JCWdvdG8gb3V0OworCQlnb3RvIG9rOwogCX0KIAogCWVyciA9IGRhenVrb2ZzX2ludGVy
cG9zZShsb3dlcl9kZW50cnksIGRlbnRyeSwgZGlyLT5pX3NiLCAxKTsKLQlpZiAoZXJyKQot
CQlnb3RvIG91dF9kcHV0OwotCWdvdG8gb3V0OwotCi1vdXRfZHB1dDoKLQlkcHV0KGxvd2Vy
X2RlbnRyeSk7Ci0JZF9kcm9wKGRlbnRyeSk7CisJaWYgKGVycikgCisJCXJldHVybiBFUlJf
UFRSKGVycik7CiAKLW91dDoKLQlyZXR1cm4gRVJSX1BUUihlcnIpOworb2s6CisJcmV0dXJu
IE5VTEw7IC8qIHRlbGwgY2FsbGVyIHRvIHVzZSBpdHMgb3duLCBwYXNzZWQgZGVudHJ5LCBu
b3Qgb3VycyAqLwogfQogCiAvKioKQEAgLTIxNiw2ICsyNjMsNyBAQCBzdGF0aWMgaW50IGRh
enVrb2ZzX21rbm9kKHN0cnVjdCBpbm9kZSAqCiAJCQkgIGRldl90IGRldikKIHsKIAlzdHJ1
Y3QgZGVudHJ5ICpsb3dlcl9kZW50cnkgPSBHRVRfTE9XRVJfREVOVFJZKGRlbnRyeSk7CisJ
c3RydWN0IHZmc21vdW50ICpsb3dlcl9tbnQgPSBHRVRfTE9XRVJfTU5UKGRlbnRyeSk7CiAJ
c3RydWN0IGRlbnRyeSAqbG93ZXJfZGVudHJ5X3BhcmVudCA9IGRnZXQobG93ZXJfZGVudHJ5
LT5kX3BhcmVudCk7CiAJc3RydWN0IGlub2RlICpsb3dlcl9kZW50cnlfcGFyZW50X2lub2Rl
ID0gbG93ZXJfZGVudHJ5X3BhcmVudC0+ZF9pbm9kZTsKIAlpbnQgZXJyID0gLUVOT0VOVDsK
QEAgLTIyMyw3ICsyNzEsOCBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX21rbm9kKHN0cnVjdCBp
bm9kZSAqCiAJbXV0ZXhfbG9ja19uZXN0ZWQoJihsb3dlcl9kZW50cnlfcGFyZW50X2lub2Rl
LT5pX211dGV4KSwKIAkJCSAgSV9NVVRFWF9QQVJFTlQpOwogCi0JZXJyID0gdmZzX21rbm9k
KGxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUsIGxvd2VyX2RlbnRyeSwgbW9kZSwgZGV2KTsK
KwllcnIgPSB2ZnNfbWtub2QobG93ZXJfZGVudHJ5X3BhcmVudF9pbm9kZSwgbG93ZXJfZGVu
dHJ5LGxvd2VyX21udCwgCisJCQkgbW9kZSwgZGV2KTsKIAlpZiAoZXJyKQogCQlnb3RvIG91
dDsKIApAQCAtMjQ4LDYgKzI5Nyw3IEBAIG91dDoKIHN0YXRpYyBpbnQgZGF6dWtvZnNfbWtk
aXIoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgaW50IG1vZGUp
CiB7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfZGVudHJ5ID0gR0VUX0xPV0VSX0RFTlRSWShk
ZW50cnkpOworCXN0cnVjdCB2ZnNtb3VudCAqbG93ZXJfbW50ID0gR0VUX0xPV0VSX01OVChk
ZW50cnkpOwogCXN0cnVjdCBkZW50cnkgKmxvd2VyX2RlbnRyeV9wYXJlbnQgPSBkZ2V0KGxv
d2VyX2RlbnRyeS0+ZF9wYXJlbnQpOwogCXN0cnVjdCBpbm9kZSAqbG93ZXJfZGVudHJ5X3Bh
cmVudF9pbm9kZSA9IGxvd2VyX2RlbnRyeV9wYXJlbnQtPmRfaW5vZGU7CiAJaW50IGVyciA9
IC1FTk9FTlQ7CkBAIC0yNTUsNyArMzA1LDggQEAgc3RhdGljIGludCBkYXp1a29mc19ta2Rp
cihzdHJ1Y3QgaW5vZGUgKgogCW11dGV4X2xvY2tfbmVzdGVkKCYobG93ZXJfZGVudHJ5X3Bh
cmVudF9pbm9kZS0+aV9tdXRleCksCiAJCQkgIElfTVVURVhfUEFSRU5UKTsKIAotCWVyciA9
IHZmc19ta2Rpcihsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLCBsb3dlcl9kZW50cnksIG1v
ZGUpOworCWVyciA9IHZmc19ta2Rpcihsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLCBsb3dl
cl9kZW50cnksIGxvd2VyX21udCwKKwkJCW1vZGUpOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0
OwogCkBAIC0yOTQsMTkgKzM0NSwxOSBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX2NyZWF0ZShz
dHJ1Y3QgaW5vZGUgCiAJbXV0ZXhfbG9ja19uZXN0ZWQoJihsb3dlcl9kZW50cnlfcGFyZW50
X2lub2RlLT5pX211dGV4KSwKIAkJCSAgSV9NVVRFWF9QQVJFTlQpOwogCi0JdmZzbW91bnRf
c2F2ZSA9IG5kLT5wYXRoLm1udDsKLQlkZW50cnlfc2F2ZSA9IG5kLT5wYXRoLmRlbnRyeTsK
Kwl2ZnNtb3VudF9zYXZlID0gbmQtPm1udDsKKwlkZW50cnlfc2F2ZSA9IG5kLT5kZW50cnk7
CiAKLQluZC0+cGF0aC5tbnQgPSBtbnRnZXQobG93ZXJfbW50KTsKLQluZC0+cGF0aC5kZW50
cnkgPSBkZ2V0KGxvd2VyX2RlbnRyeSk7CisJbmQtPm1udCA9IG1udGdldChsb3dlcl9tbnQp
OworCW5kLT5kZW50cnkgPSBkZ2V0KGxvd2VyX2RlbnRyeSk7CiAKIAllcnIgPSB2ZnNfY3Jl
YXRlKGxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUsIGxvd2VyX2RlbnRyeSwgbW9kZSwgbmQp
OwogCiAJbW50cHV0KGxvd2VyX21udCk7CiAJZHB1dChsb3dlcl9kZW50cnkpOwogCi0JbmQt
PnBhdGgubW50ID0gdmZzbW91bnRfc2F2ZTsKLQluZC0+cGF0aC5kZW50cnkgPSBkZW50cnlf
c2F2ZTsKKwluZC0+bW50ID0gdmZzbW91bnRfc2F2ZTsKKwluZC0+ZGVudHJ5ID0gZGVudHJ5
X3NhdmU7CiAKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKQEAgLTMzMyw2ICszODQsNyBAQCBz
dGF0aWMgaW50IGRhenVrb2ZzX3N5bWxpbmsoc3RydWN0IGlub2RlCiAJCQkgICAgY29uc3Qg
Y2hhciAqc3ltbmFtZSkKIHsKIAlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9kZW50cnkgPSBHRVRf
TE9XRVJfREVOVFJZKGRlbnRyeSk7CisJc3RydWN0IHZmc21vdW50ICpsb3dlcl9tbnQgPSBH
RVRfTE9XRVJfTU5UKGRlbnRyeSk7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfZGVudHJ5X3Bh
cmVudCA9IGRnZXQobG93ZXJfZGVudHJ5LT5kX3BhcmVudCk7CiAJc3RydWN0IGlub2RlICps
b3dlcl9kZW50cnlfcGFyZW50X2lub2RlID0gbG93ZXJfZGVudHJ5X3BhcmVudC0+ZF9pbm9k
ZTsKIAlpbnQgZXJyID0gLUVOT0VOVDsKQEAgLTM0MCw3ICszOTIsOCBAQCBzdGF0aWMgaW50
IGRhenVrb2ZzX3N5bWxpbmsoc3RydWN0IGlub2RlCiAJbXV0ZXhfbG9ja19uZXN0ZWQoJihs
b3dlcl9kZW50cnlfcGFyZW50X2lub2RlLT5pX211dGV4KSwKIAkJCSAgSV9NVVRFWF9QQVJF
TlQpOwogCi0JZXJyID0gdmZzX3N5bWxpbmsobG93ZXJfZGVudHJ5X3BhcmVudF9pbm9kZSwg
bG93ZXJfZGVudHJ5LCBzeW1uYW1lKTsKKwllcnIgPSB2ZnNfc3ltbGluayhsb3dlcl9kZW50
cnlfcGFyZW50X2lub2RlLCBsb3dlcl9kZW50cnksIGxvd2VyX21udCwgCisJCQkgIHN5bW5h
bWUsIFNfSUFMTFVHTyk7CiAJaWYgKGVycikKIAkJZ290byBvdXQ7CiAKQEAgLTQ1Miw5ICs1
MDUsMzcgQEAgc3RhdGljIHZvaWQgZGF6dWtvZnNfcHV0X2xpbmsoc3RydWN0IGRlbgogICog
RGVzY3JpcHRpb246IENhbGxlZCBieSB0aGUgVkZTIHRvIGNoZWNrIGZvciBhY2Nlc3Mgcmln
aHRzIG9uIGEKICAqIFBPU0lYLWxpa2UgZmlsZXN5c3RlbS4KICAqLwotc3RhdGljIGludCBk
YXp1a29mc19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrKQorc3Rh
dGljIGludCBkYXp1a29mc19wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBt
YXNrLAorCQkJICAgICAgIHN0cnVjdCBuYW1laWRhdGEgKm5kKQogewotCXJldHVybiBpbm9k
ZV9wZXJtaXNzaW9uKEdFVF9MT1dFUl9JTk9ERShpbm9kZSksIG1hc2spOworCXN0cnVjdCB2
ZnNtb3VudCAqbG93ZXJfbW50ID0gTlVMTDsKKwlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9kZW50
cnkgPSBOVUxMOworCXN0cnVjdCB2ZnNtb3VudCAqdmZzbW50X3NhdmUgPSBOVUxMOworCXN0
cnVjdCBkZW50cnkgKmRlbnRyeV9zYXZlID0gTlVMTDsKKwlpbnQgZXJyOworCisJaWYgKG5k
KSB7CisJCWxvd2VyX21udCA9IEdFVF9MT1dFUl9NTlQobmQtPmRlbnRyeSk7CisJCWxvd2Vy
X2RlbnRyeSA9IEdFVF9MT1dFUl9ERU5UUlkobmQtPmRlbnRyeSk7CisKKwkJdmZzbW50X3Nh
dmUgPSBuZC0+bW50OworCQlkZW50cnlfc2F2ZSA9IG5kLT5kZW50cnk7CisKKwkJbmQtPm1u
dCA9IG1udGdldChsb3dlcl9tbnQpOworCQluZC0+ZGVudHJ5ID0gZGdldChsb3dlcl9kZW50
cnkpOworCX0KKworCWVyciA9IHBlcm1pc3Npb24oR0VUX0xPV0VSX0lOT0RFKGlub2RlKSwg
bWFzaywgbmQpOworCisJaWYgKG5kKSB7CisJCW1udHB1dChsb3dlcl9tbnQpOworCQlkcHV0
KGxvd2VyX2RlbnRyeSk7CisKKwkJbmQtPm1udCA9IHZmc21udF9zYXZlOworCQluZC0+ZGVu
dHJ5ID0gZGVudHJ5X3NhdmU7CisJfQorCisgICAgICAgIHJldHVybiBlcnI7CiB9CiAKIC8q
KgpAQCAtNDY0LDE4ICs1NDUsMzIgQEAgc3RhdGljIGludCBkYXp1a29mc19wZXJtaXNzaW9u
KHN0cnVjdCBpbgogc3RhdGljIGludCBkYXp1a29mc19zZXRhdHRyKHN0cnVjdCBkZW50cnkg
KmRlbnRyeSwgc3RydWN0IGlhdHRyICppYSkKIHsKIAlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9k
ZW50cnkgPSBHRVRfTE9XRVJfREVOVFJZKGRlbnRyeSk7CisJc3RydWN0IHZmc21vdW50ICps
b3dlcl9tbnQgPSBHRVRfTE9XRVJfTU5UKGRlbnRyeSk7CiAJc3RydWN0IGlub2RlICppbm9k
ZSA9IGRlbnRyeS0+ZF9pbm9kZTsKIAlzdHJ1Y3QgaW5vZGUgKmxvd2VyX2lub2RlID0gR0VU
X0xPV0VSX0lOT0RFKGlub2RlKTsKIAlpbnQgZXJyOwogCi0JZXJyID0gbm90aWZ5X2NoYW5n
ZShsb3dlcl9kZW50cnksIGlhKTsKIAotCWZzc3RhY2tfY29weV9hdHRyX2FsbChpbm9kZSwg
bG93ZXJfaW5vZGUsIE5VTEwpOwotCWZzc3RhY2tfY29weV9pbm9kZV9zaXplKGlub2RlLCBs
b3dlcl9pbm9kZSk7CisJaWYgKCFsb3dlcl9pbm9kZS0+aV9vcCB8fCAhbG93ZXJfaW5vZGUt
Pmlfb3AtPnNldGF0dHIpIAorCQkvKiBYWFg6IGF0IHRoaXMgcG9pbnQgaXQgaXMgdG9vIGxh
dGUgdG8gaGFuZGxlIGlub2RlcyBwcm9wZXJseSB0aGF0IGRvIE5PVAorCQlzcGVjaWZ5IHNl
dGF0dHIoKS4gVkZTIHdvdWxkIG5vcm1hbGx5IGNhbGwgaW5vZGVfc2V0YXR0cigpIGluIAor
CQl0aGlzIGNhc2UuIFNvIHRvIGZvcmNlIHRoaXMgd2UganVtcCBiYWNrIHRvIG5vdGlmeV9j
aGFuZ2Ugd2hpY2ggd2lsbAorCQloYW5kbGUgdGhpcyBmb3IgdXMuIEJ1dCB0aGlzIGlzIGRh
bmdlcm91czoKKwkJVGhlIGF0dHJpYnV0ZXMgbWlnaHQgYmUgbW9kaWZpZWQgYnkgbm90aWZ5
X2NoYW5nZSgpIGluIGEgd2F5CisJCXRoYXQgcmVzdWx0cyBpbiBpbnZhbGlkIGF0dHJpYnV0
ZXMuIFRoaXMgc2VlbXMgdG8gYmUgdGhlIGNhc2UKKwkJaWYgdGhlIGlub2RlIGZvciB3aGlj
aCB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBoYXMgdGhlIHNldHVpZAorCQlvciBzZXRnaWQg
Yml0IHNldCAqLyAKKwkJZXJyID0gbm90aWZ5X2NoYW5nZShsb3dlcl9kZW50cnksIGxvd2Vy
X21udCwgaWEpOworCWVsc2UgCisJCWVyciA9IGxvd2VyX2lub2RlLT5pX29wLT5zZXRhdHRy
KGxvd2VyX2RlbnRyeSwgaWEpOworCQorCWlmICghZXJyKSB7CisJCWZzc3RhY2tfY29weV9h
dHRyX2FsbChpbm9kZSwgbG93ZXJfaW5vZGUsIE5VTEwpOworCQlmc3N0YWNrX2NvcHlfaW5v
ZGVfc2l6ZShpbm9kZSwgbG93ZXJfaW5vZGUpOworCX0gCiAKIAlyZXR1cm4gZXJyOwogfQot
CiAvKioKICAqIERlc2NyaXB0aW9uOiBDYWxsZWQgYnkgdGhlIFZGUyB0byBzZXQgYW4gZXh0
ZW5kZWQgYXR0cmlidXRlIGZvciBhIGZpbGUuCiAgKiBFeHRlbmRlZCBhdHRyaWJ1dGUgaXMg
YSBuYW1lOnZhbHVlIHBhaXIgYXNzb2NpYXRlZCB3aXRoIGFuIGlub2RlLiBUaGlzCkBAIC00
OTYsNyArNTkxLDcgQEAgc3RhdGljIGludCBkYXp1a29mc19zZXR4YXR0cihzdHJ1Y3QgZGVu
dAogCiAJaWYgKCFsb3dlcl9kZW50cnlfaW5vZGUtPmlfb3AgfHwKIAkgICAgIWxvd2VyX2Rl
bnRyeV9pbm9kZS0+aV9vcC0+c2V0eGF0dHIpIHsKLQkJZXJyID0gLUVOT1NZUzsKKwkJZXJy
ID0gLUVPUE5PVFNVUFA7CiAJCWdvdG8gb3V0OwogCX0KIApAQCAtNTI4LDcgKzYyMyw3IEBA
IHN0YXRpYyBzc2l6ZV90IGRhenVrb2ZzX2dldHhhdHRyKHN0cnVjdCAKIAogCWlmICghbG93
ZXJfZGVudHJ5X2lub2RlLT5pX29wIHx8CiAJICAgICFsb3dlcl9kZW50cnlfaW5vZGUtPmlf
b3AtPmdldHhhdHRyKSB7Ci0JCWVyciA9IC1FTk9TWVM7CisJCWVyciA9IC1FT1BOT1RTVVBQ
OwogCQlnb3RvIG91dDsKIAl9CiAKQEAgLTU1Nyw3ICs2NTIsNyBAQCBzdGF0aWMgc3NpemVf
dCBkYXp1a29mc19saXN0eGF0dHIoc3RydWN0CiAKIAlpZiAoIWxvd2VyX2RlbnRyeV9pbm9k
ZS0+aV9vcCB8fAogCSAgICAhbG93ZXJfZGVudHJ5X2lub2RlLT5pX29wLT5saXN0eGF0dHIp
IHsKLQkJZXJyID0gLUVOT1NZUzsKKwkJZXJyID0gLUVPUE5PVFNVUFA7CiAJCWdvdG8gb3V0
OwogCX0KIApAQCAtNTg0LDcgKzY3OSw3IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfcmVtb3Zl
eGF0dHIoc3RydWN0IGQKIAogCWlmICghbG93ZXJfZGVudHJ5X2lub2RlLT5pX29wIHx8CiAJ
ICAgICFsb3dlcl9kZW50cnlfaW5vZGUtPmlfb3AtPnJlbW92ZXhhdHRyKSB7Ci0JCWVyciA9
IC1FTk9TWVM7CisJCWVyciA9IC1FT1BOT1RTVVBQOwogCQlnb3RvIG91dDsKIAl9CiAKQEAg
LTYwMyw2ICs2OTgsOCBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX2xpbmsoc3RydWN0IGRlbnRy
eSAqCiB7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfb2xkX2RlbnRyeSA9IEdFVF9MT1dFUl9E
RU5UUlkob2xkX2RlbnRyeSk7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfbmV3X2RlbnRyeSA9
IEdFVF9MT1dFUl9ERU5UUlkobmV3X2RlbnRyeSk7CisJc3RydWN0IHZmc21vdW50ICpsb3dl
cl9vbGRfbW50ID0gR0VUX0xPV0VSX01OVChvbGRfZGVudHJ5KTsKKwlzdHJ1Y3QgdmZzbW91
bnQgKmxvd2VyX25ld19tbnQgPSBHRVRfTE9XRVJfTU5UKG5ld19kZW50cnkpOwogCXN0cnVj
dCBkZW50cnkgKmxvd2VyX2RlbnRyeV9wYXJlbnQgPSBkZ2V0KGxvd2VyX25ld19kZW50cnkt
PmRfcGFyZW50KTsKIAlzdHJ1Y3QgaW5vZGUgKmxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUg
PSBsb3dlcl9kZW50cnlfcGFyZW50LT5kX2lub2RlOwogCWludCBlcnIgPSAtRU5PRU5UOwpA
QCAtNjEwLDggKzcwNyw5IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfbGluayhzdHJ1Y3QgZGVu
dHJ5ICoKIAltdXRleF9sb2NrX25lc3RlZCgmKGxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUt
PmlfbXV0ZXgpLAogCQkJICBJX01VVEVYX1BBUkVOVCk7CiAKLQllcnIgPSB2ZnNfbGluayhs
b3dlcl9vbGRfZGVudHJ5LCBsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLAotCQkgICAgICAg
bG93ZXJfbmV3X2RlbnRyeSk7CisJZXJyID0gdmZzX2xpbmsobG93ZXJfb2xkX2RlbnRyeSwg
bG93ZXJfb2xkX21udCwKKwkJICAgICAgIGxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUsIGxv
d2VyX25ld19kZW50cnksCisJCSAgICAgICBsb3dlcl9uZXdfbW50KTsKIAlpZiAoZXJyKQog
CQlnb3RvIG91dDsKIApAQCAtNjM1LDYgKzczMyw3IEBAIG91dDoKIHN0YXRpYyBpbnQgZGF6
dWtvZnNfdW5saW5rKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkp
CiB7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfZGVudHJ5ID0gR0VUX0xPV0VSX0RFTlRSWShk
ZW50cnkpOworCXN0cnVjdCB2ZnNtb3VudCAqbG93ZXJfbW50ID0gR0VUX0xPV0VSX01OVChk
ZW50cnkpOwogCXN0cnVjdCBkZW50cnkgKmxvd2VyX2RlbnRyeV9wYXJlbnQgPSBkZ2V0KGxv
d2VyX2RlbnRyeS0+ZF9wYXJlbnQpOwogCXN0cnVjdCBpbm9kZSAqbG93ZXJfZGVudHJ5X3Bh
cmVudF9pbm9kZSA9IGxvd2VyX2RlbnRyeV9wYXJlbnQtPmRfaW5vZGU7CiAJaW50IGVycjsK
QEAgLTY0Miw3ICs3NDEsNyBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX3VubGluayhzdHJ1Y3Qg
aW5vZGUgCiAJbXV0ZXhfbG9ja19uZXN0ZWQoJihsb3dlcl9kZW50cnlfcGFyZW50X2lub2Rl
LT5pX211dGV4KSwKIAkJCSAgSV9NVVRFWF9QQVJFTlQpOwogCi0JZXJyID0gdmZzX3VubGlu
ayhsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLCBsb3dlcl9kZW50cnkpOworCWVyciA9IHZm
c191bmxpbmsobG93ZXJfZGVudHJ5X3BhcmVudF9pbm9kZSwgbG93ZXJfZGVudHJ5LCBsb3dl
cl9tbnQpOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0OwogCkBAIC02NjQsNiArNzYzLDcgQEAg
b3V0Ogogc3RhdGljIGludCBkYXp1a29mc19ybWRpcihzdHJ1Y3QgaW5vZGUgKmRpciwgc3Ry
dWN0IGRlbnRyeSAqZGVudHJ5KQogewogCXN0cnVjdCBkZW50cnkgKmxvd2VyX2RlbnRyeSA9
IEdFVF9MT1dFUl9ERU5UUlkoZGVudHJ5KTsKKwlzdHJ1Y3QgdmZzbW91bnQgKmxvd2VyX21u
dCA9IEdFVF9MT1dFUl9NTlQoZGVudHJ5KTsKIAlzdHJ1Y3QgZGVudHJ5ICpsb3dlcl9kZW50
cnlfcGFyZW50ID0gZGdldChsb3dlcl9kZW50cnktPmRfcGFyZW50KTsKIAlzdHJ1Y3QgaW5v
ZGUgKmxvd2VyX2RlbnRyeV9wYXJlbnRfaW5vZGUgPSBsb3dlcl9kZW50cnlfcGFyZW50LT5k
X2lub2RlOwogCWludCBlcnI7CkBAIC02NzEsNyArNzcxLDcgQEAgc3RhdGljIGludCBkYXp1
a29mc19ybWRpcihzdHJ1Y3QgaW5vZGUgKgogCW11dGV4X2xvY2tfbmVzdGVkKCYobG93ZXJf
ZGVudHJ5X3BhcmVudF9pbm9kZS0+aV9tdXRleCksCiAJCQkgIElfTVVURVhfUEFSRU5UKTsK
IAotCWVyciA9IHZmc19ybWRpcihsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLCBsb3dlcl9k
ZW50cnkpOworCWVyciA9IHZmc19ybWRpcihsb3dlcl9kZW50cnlfcGFyZW50X2lub2RlLCBs
b3dlcl9kZW50cnksIGxvd2VyX21udCk7CiAJaWYgKGVycikKIAkJZ290byBvdXQ7CiAKQEAg
LTY5Niw2ICs3OTYsOCBAQCBzdGF0aWMgaW50IGRhenVrb2ZzX3JlbmFtZShzdHJ1Y3QgaW5v
ZGUgCiB7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfb2xkX2RlbnRyeSA9IEdFVF9MT1dFUl9E
RU5UUlkob2xkX2RlbnRyeSk7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfbmV3X2RlbnRyeSA9
IEdFVF9MT1dFUl9ERU5UUlkobmV3X2RlbnRyeSk7CisJc3RydWN0IHZmc21vdW50ICpsb3dl
cl9vbGRfbW50ID0gR0VUX0xPV0VSX01OVChvbGRfZGVudHJ5KTsKKwlzdHJ1Y3QgdmZzbW91
bnQgKmxvd2VyX25ld19tbnQgPSBHRVRfTE9XRVJfTU5UKG5ld19kZW50cnkpOwogCXN0cnVj
dCBkZW50cnkgKmxvd2VyX29sZF9kZW50cnlfcGFyZW50ID0KIAkJZGdldChsb3dlcl9vbGRf
ZGVudHJ5LT5kX3BhcmVudCk7CiAJc3RydWN0IGRlbnRyeSAqbG93ZXJfbmV3X2RlbnRyeV9w
YXJlbnQgPQpAQCAtNzE4LDcgKzgyMCw4IEBAIHN0YXRpYyBpbnQgZGF6dWtvZnNfcmVuYW1l
KHN0cnVjdCBpbm9kZSAKIAogCWxvY2tfcmVuYW1lKGxvd2VyX29sZF9kZW50cnlfcGFyZW50
LCBsb3dlcl9uZXdfZGVudHJ5X3BhcmVudCk7CiAJZXJyID0gdmZzX3JlbmFtZShsb3dlcl9v
bGRfZGVudHJ5X3BhcmVudF9pbm9kZSwgbG93ZXJfb2xkX2RlbnRyeSwKLQkJCSBsb3dlcl9u
ZXdfZGVudHJ5X3BhcmVudF9pbm9kZSwgbG93ZXJfbmV3X2RlbnRyeSk7CisJCQkgbG93ZXJf
b2xkX21udCwgbG93ZXJfbmV3X2RlbnRyeV9wYXJlbnRfaW5vZGUsIAorCQkJIGxvd2VyX25l
d19kZW50cnksIGxvd2VyX25ld19tbnQpOwogCXVubG9ja19yZW5hbWUobG93ZXJfb2xkX2Rl
bnRyeV9wYXJlbnQsIGxvd2VyX25ld19kZW50cnlfcGFyZW50KTsKIAogCWlmIChlcnIpCmRp
ZmYgLXggQ1ZTIC1ydXAgZGF6dWtvZnMtMy4wLjAvTWFrZWZpbGUgZGF6dWtvZnMtMy4wLjAt
cmM0XzIuNi4yNF9VYnVudHU4LjA0L01ha2VmaWxlCi0tLSBkYXp1a29mcy0zLjAuMC9NYWtl
ZmlsZQkyMDA5LTAyLTIyIDE3OjQ2OjAyLjAwMDAwMDAwMCArMDEwMAorKysgZGF6dWtvZnMt
My4wLjAtcmM0XzIuNi4yNF9VYnVudHU4LjA0L01ha2VmaWxlCTIwMDktMDUtMTkgMTU6MDE6
NTMuMDAwMDAwMDAwICswMjAwCkBAIC0xOSw2ICsxOSw3IEBAIGRhenVrb2ZzX2luc3RhbGw6
IGRhenVrb2ZzX21vZHVsZXMKIAogY2xlYW46CiAJcm0gLWYgTW9kdWxlLnN5bXZlcnMKKwly
bSAtZiBtb2R1bGVzLm9yZGVyCiAJbWFrZSAtQyAkKERBWlVLT0ZTX0tFUk5FTF9TUkMpIFNV
QkRJUlM9ImBwd2RgIiBjbGVhbgogCiAuUEhPTlk6IGRhenVrb2ZzX21vZHVsZXMgZGF6dWtv
ZnNfaW5zdGFsbCBjbGVhbgpkaWZmIC14IENWUyAtcnVwIGRhenVrb2ZzLTMuMC4wL1JFQURN
RSBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0X1VidW50dTguMDQvUkVBRE1FCi0tLSBkYXp1
a29mcy0zLjAuMC9SRUFETUUJMjAwOS0wMi0yMiAxNzozODoyMS4wMDAwMDAwMDAgKzAxMDAK
KysrIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjRfVWJ1bnR1OC4wNC9SRUFETUUJMjAwOS0w
Mi0yMyAxMTowNTo0Ni4wMDAwMDAwMDAgKzAxMDAKQEAgLTIxLDEwICsyMSwxMCBAQCBOT1RF
OiBEYXp1a29GUyBpcyBjb21wbGV0ZWx5IHNlcGFyYXRlIGZyCiA9PT09PT09PT09PT09PT09
PQogCiBCZWxvdyBhcmUgYnJpZWYgaW5zdHJ1Y3Rpb25zIHRvIGdldCBEYXp1a29GUyBjb21w
aWxlZCBhbmQgcnVubmluZyBvbiBhCi1zeXN0ZW0gd2l0aCBhIExpbnV4IDIuNi4yOCBrZXJu
ZWwuIFlvdSBtYXkgbmVlZCB0byBtYW51YWxseSBhZGp1c3QgdGhlCitzeXN0ZW0gd2l0aCBh
IExpbnV4IDIuNi4yNyBrZXJuZWwuIFlvdSBtYXkgbmVlZCB0byBtYW51YWxseSBhZGp1c3Qg
dGhlCiBNYWtlZmlsZSBpZiB5b3Uga2VybmVsIHNvdXJjZXMgYXJlIG5vdCBpbiB0aGUgZGVm
YXVsdCBsb2NhdGlvbi4KLShQYXRjaGVzIGFyZSBwcm92aWRlZCBmb3IgdmFyaW91cyBvdGhl
ciBrZXJuZWxzLiBTZWUgdGhlIHNlY3Rpb24gYmVsb3cKLXRpdGxlZCAiUEFUQ0hJTkciIGZv
ciBtb3JlIGluZm9ybWF0aW9uLikKKyhBIHBhdGNoIGlzIHByb3ZpZGVkIHRvIGNvbnZlcnQg
dGhlIERhenVrb0ZTIGNvZGUgdG8gc3VwcG9ydCBMaW51eAorMi42LjI2LikKIAogY29tcGls
ZSB0aGUga2VybmVsIG1vZHVsZQogICAjIG1ha2UKQEAgLTUyLDI1ICs1Miw2IEBAIHVubW91
bnQgRGF6dWtvRlMKIAogCiAKLT09PT09PT09PT0KLSBQQVRDSElORwotPT09PT09PT09PQot
Ci1JbiB0aGUgInBhdGNoZXMiIGRpcmVjdG9yeSB0aGVyZSBhcmUgcGF0Y2hlcyBhdmFpbGFi
bGUgdG8gbW9kaWZ5IHRoZQotRGF6dWtvRlMgY29kZSB0byBmaXQgdmFyaW91cyBvdGhlciBr
ZXJuZWxzLiBGb3IgZXhhbXBsZSwgaWYgeW91IGFyZQotcnVubmluZyBvcGVuU1VTRSAxMS4x
IHlvdSBjYW4gcGF0Y2ggdGhlIGNvZGUgd2l0aCB0aGUgZm9sbG93aW5nCi1jb21tYW5kOgot
Ci0kIHBhdGNoIC1wMSA8IHBhdGNoZXMvcGF0Y2gtb3BlbnN1c2UtMTEuMQotCi1UaGVyZSBz
aG91bGQgbm90IGJlIGFueSBlcnJvcnMuIElmIHRoZXJlIGFyZSBlcnJvcnMsIHRoZW4gdGhl
IHBhdGNoCi1pcyBicm9rZW4gYW5kIHNob3VsZCBiZSByZXBvcnRlZCBvbiB0aGUgZGF6dWtv
LWRldmVsIG1haWxpbmcgbGlzdC4KLQotT25jZSB0aGUgY29kZSBoYXMgYmVlbiBwYXRjaGVk
IHlvdSBjYW4gYnVpbGQgdGhlIGtlcm5lbCBtb2R1bGUgYXMKLWRlc2NyaWJlZCBpbiB0aGUg
c2VjdGlvbiAiQlVJTEQgLyBJTlNUQUxMIiBhYm92ZS4KLQotCi0KID09PT09PT09PQogIFRF
U1RJTkcKID09PT09PT09PQpAQCAtMTU0LDkgKzEzNSw2IEBAIGFueSBwcm9ibGVtcy4KICBL
Tk9XTiBJU1NVRVMKID09PT09PT09PT09PT09CiAKLS0gVGhlIGtlcm5lbCB3aWxsIGNyYXNo
IGlmIHlvdSBhdHRlbXB0IHRvIG1vdW50IERhenVrb0ZTIHRvIGEgZmlsZSBpbnN0ZWFkCi0g
IG9mIGEgZGlyZWN0b3J5LiAoVGhlIHZhcmlvdXMga2VybmVsIHBhdGNoZXMgaGFuZGxlIHRo
aXMgZXJyb3IuKQotCiAtIERhenVrb0ZTIGRvZXMgbm90IHN1cHBvcnQgd3JpdGluZyB0byBt
ZW1vcnkgbWFwcGVkIGZpbGVzLiBUaGlzIHNob3VsZCBub3QKICAgY2F1c2UgdGhlIGtlcm5l
bCB0byBjcmFzaCwgYnV0IHdpbGwgaW5zdGVhZCByZXN1bHQgaW4gdGhlIGFwcGxpY2F0aW9u
CiAgIGZhaWxpbmcgdG8gcGVyZm9ybSB0aGUgd3JpdGVzIChhbHRob3VnaCBtbWFwKCkgd2ls
bCBhcHBlYXIgdG8gYmUKZGlmZiAteCBDVlMgLXJ1cCBkYXp1a29mcy0zLjAuMC9zdXBlci5j
IGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjRfVWJ1bnR1OC4wNC9zdXBlci5jCi0tLSBkYXp1
a29mcy0zLjAuMC9zdXBlci5jCTIwMDktMDItMjIgMTc6NDY6MDIuMDAwMDAwMDAwICswMTAw
CisrKyBkYXp1a29mcy0zLjAuMC1yYzRfMi42LjI0X1VidW50dTguMDQvc3VwZXIuYwkyMDA5
LTA3LTAzIDE4OjE0OjU0LjAwMDAwMDAwMCArMDIwMApAQCAtMzUsNiArMzUsMTAgQEAgc3Rh
dGljIHN0cnVjdCBrbWVtX2NhY2hlICpkYXp1a29mc19zYl9pbgogc3RydWN0IGttZW1fY2Fj
aGUgKmRhenVrb2ZzX2RlbnRyeV9pbmZvX2NhY2hlcDsKIHN0cnVjdCBrbWVtX2NhY2hlICpk
YXp1a29mc19maWxlX2luZm9fY2FjaGVwOwogCisKKyNkZWZpbmUgREFaVUtPRlNfVkVSU0lP
TiAiMy4wLjAtcmM0LWF2aXJhLWIyLjYiCisKKwogc3RhdGljIHN0cnVjdCBpbm9kZSAqZGF6
dWtvZnNfYWxsb2NfaW5vZGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIHsKIAlzdHJ1Y3Qg
ZGF6dWtvZnNfaW5vZGVfaW5mbyAqaW5vZGVpOwpAQCAtMTU4LDggKzE2Miw4IEBAIHN0YXRp
YyBpbnQgZGF6dWtvZnNfcmVhZF9zdXBlcihzdHJ1Y3Qgc3UKIAlpZiAoZXJyKQogCQlyZXR1
cm4gZXJyOwogCi0JbG93ZXJfcm9vdCA9IGRnZXQobmQucGF0aC5kZW50cnkpOwotCWxvd2Vy
X21udCA9IG1udGdldChuZC5wYXRoLm1udCk7CisJbG93ZXJfcm9vdCA9IGRnZXQobmQuZGVu
dHJ5KTsKKwlsb3dlcl9tbnQgPSBtbnRnZXQobmQubW50KTsKIAogCWlmIChJU19FUlIobG93
ZXJfcm9vdCkpIHsKIAkJZXJyID0gUFRSX0VSUihsb3dlcl9yb290KTsKQEAgLTE3MCw2ICsx
NzQsMTAgQEAgc3RhdGljIGludCBkYXp1a29mc19yZWFkX3N1cGVyKHN0cnVjdCBzdQogCQll
cnIgPSAtRU5PRU5UOwogCQlnb3RvIG91dF9wdXQ7CiAJfQorCWlmICghU19JU0RJUihsb3dl
cl9yb290LT5kX2lub2RlLT5pX21vZGUpKSB7CisJCWVyciA9IC1FTk9FTlQ7CisJCWdvdG8g
b3V0X3B1dDsKKwl9CiAKIAlTRVRfTE9XRVJfU0Ioc2IsIGxvd2VyX3Jvb3QtPmRfc2IpOwog
CXNiLT5zX21heGJ5dGVzID0gbG93ZXJfcm9vdC0+ZF9zYi0+c19tYXhieXRlczsKQEAgLTE4
NCw3ICsxOTIsNyBAQCBvdXRfcHV0OgogCWRwdXQobG93ZXJfcm9vdCk7CiAJbW50cHV0KGxv
d2VyX21udCk7CiBvdXQ6Ci0JcGF0aF9wdXQoJm5kLnBhdGgpOworCXBhdGhfcmVsZWFzZSgm
bmQpOwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTIxMywxNSArMjIxLDE2IEBAIHN0YXRpYyBp
bnQgZGF6dWtvZnNfZ2V0X3NiKHN0cnVjdCBmaWxlX3MKIAogb3V0X2Fib3J0OgogCXVwX3dy
aXRlKCZzYi0+c191bW91bnQpOworCWRwdXQoc2ItPnNfcm9vdCk7CiAJZGVhY3RpdmF0ZV9z
dXBlcihzYik7CiBvdXQ6CiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIHZvaWQgaW5pdF9v
bmNlKHZvaWQgKmRhdGEpCitzdGF0aWMgdm9pZCBpbml0X29uY2Uoc3RydWN0IGttZW1fY2Fj
aGUgKmNhY2hlcCwgdm9pZCAqdnB0cikKIHsKIAlzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5m
byAqaW5vZGVfaW5mbyA9Ci0JCShzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5mbyAqKWRhdGE7
CisJCShzdHJ1Y3QgZGF6dWtvZnNfaW5vZGVfaW5mbyAqKXZwdHI7CiAKIAltZW1zZXQoaW5v
ZGVfaW5mbywgMCwgc2l6ZW9mKHN0cnVjdCBkYXp1a29mc19pbm9kZV9pbmZvKSk7CiAJaW5v
ZGVfaW5pdF9vbmNlKCYoaW5vZGVfaW5mby0+dmZzX2lub2RlKSk7CkBAIC0zMDUsNyArMzE0
LDcgQEAgc3RhdGljIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlIGRhenVrb2ZzXwogCiBzdGF0
aWMgaW50IF9faW5pdCBpbml0X2RhenVrb2ZzX2ZzKHZvaWQpCiB7Ci0JaW50IGVyciA9IDA7
CisJaW50IGVycjsKIAogCWVyciA9IGRhenVrb2ZzX2Rldl9pbml0KCk7CiAJaWYgKGVycikK
QEAgLTMxOSw3ICszMjgsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBpbml0X2RhenVrb2ZzX2Zz
KHZvaWQpCiAJaWYgKGVycikKIAkJZ290byBlcnJvcl9vdXQzOwogCi0JcHJpbnRrKEtFUk5f
SU5GTyAiZGF6dWtvZnM6IGxvYWRlZCwgdmVyc2lvbj0lc1xuIiwgREFaVUtPRlNfVkVSU0lP
Tik7CisJcHJpbnRrKEtFUk5fSU5GTyAiZGF6dWtvZnM6IGxvYWRlZCwgdmVyc2lvbj0iIERB
WlVLT0ZTX1ZFUlNJT04gIlxuIik7CiAJcmV0dXJuIDA7CiAKIGVycm9yX291dDM6CkBAIC0z
MzUsNyArMzQ0LDcgQEAgc3RhdGljIHZvaWQgX19leGl0IGV4aXRfZGF6dWtvZnNfZnModm9p
ZAogCXVucmVnaXN0ZXJfZmlsZXN5c3RlbSgmZGF6dWtvZnNfZnNfdHlwZSk7CiAJZGVzdHJv
eV9jYWNoZXMoKTsKIAlkYXp1a29mc19kZXZfZGVzdHJveSgpOwotCXByaW50ayhLRVJOX0lO
Rk8gImRhenVrb2ZzOiB1bmxvYWRlZCwgdmVyc2lvbj0lc1xuIiwgREFaVUtPRlNfVkVSU0lP
Tik7CisJcHJpbnRrKEtFUk5fSU5GTyAiZGF6dWtvZnM6IHVubG9hZGVkLCB2ZXJzaW9uPSIg
REFaVUtPRlNfVkVSU0lPTiAiXG4iKTsKIH0KIAogTU9EVUxFX0FVVEhPUigiSm9obiBPZ25l
c3MiKTsKTnVyIGluIGRhenVrb2ZzLTMuMC4wLXJjNF8yLjYuMjRfVWJ1bnR1OC4wNDogc3Vw
cG9ydGVkX2Rpc3Ryb3MuCg==
--------------090005060303020503050008
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

--------------090005060303020503050008--