Re: PATCH v4: Arla 0.90 on Linux 2.6.34 to 4.4
Bo Branten <[email protected]> Fri, 22 Jan 2016 20:24:58 +0100 (CET)
| Newsgroups | gmane.comp.file-systems.arla.general |
|---|---|
| Message-ID | <[email protected]> |
This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---276651502-1608297379-1453490698=:21172 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII PATCH v4: Arla 0.90 on Linux 2.6.34 to 4.4 The latest patch to 0.90 (the CVS patch v3 is still valid so there is only one patch this time) Bo Branten ---276651502-1608297379-1453490698=:21172 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-v4-arla-0.90-for-linux-4.4 Content-Transfer-Encoding: BASE64 Content-ID: <[email protected]> Content-Description: Content-Disposition: attachment; filename=patch-v4-arla-0.90-for-linux-4.4 ZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2luY2x1 ZGUvbm5wZnMvbm5wZnNfYXR0ci5oIGFybGEtMC45MC9ubnBmcy9pbmNsdWRl L25ucGZzL25ucGZzX2F0dHIuaA0KLS0tIGFybGEtMC45MC1vbGQvbm5wZnMv aW5jbHVkZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAwNi0xMC0yNCAxODozMzoz MC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvaW5jbHVk ZS9ubnBmcy9ubnBmc19hdHRyLmgJMjAxNi0wMS0yMiAxMjo1MTowNy4wMDAw MDAwMDAgKzAxMDANCkBAIC0xMTMsOCArMTEzLDE4IEBAIHN0cnVjdCBubnBm c19hdHRyIHsNCiAgICAgdWludDMyX3QJCXhhX25saW5rOw0KICAgICB1aW50 MzJfdAkJeGFfdHlwZTsNCiANCisjaWZuZGVmIF9fS0VSTkVMX18NCiAgICAg dWludDMyX3QJCXhhX3VpZDsNCiAgICAgdWludDMyX3QJCXhhX2dpZDsNCisj ZWxzZQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJ T04oMywxNCwwKQ0KKyAgICBrdWlkX3QJCXhhX3VpZDsNCisgICAga2dpZF90 CQl4YV9naWQ7DQorI2Vsc2UNCisgICAgdWludDMyX3QJCXhhX3VpZDsNCisg ICAgdWludDMyX3QJCXhhX2dpZDsNCisjZW5kaWYNCisjZW5kaWYNCiANCiAg ICAgdWludDMyX3QJCXhhX2F0aW1lOw0KICAgICB1aW50MzJfdAkJeGFfbXRp bWU7DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMv aW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaCBhcmxhLTAuOTAvbm5wZnMv aW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaA0KLS0tIGFybGEtMC45MC1v bGQvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19ibG9ja3MuaAkyMDA2LTEw LTI0IDE4OjMzOjMxLjAwMDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9u bnBmcy9pbmNsdWRlL25ucGZzL25ucGZzX2Jsb2Nrcy5oCTIwMDctMDEtMjQg MTg6MDk6MTcuMDAwMDAwMDAwICswMTAwDQpAQCAtMSw1ICsxLDUgQEANCiAv Kg0KLSAqIENvcHlyaWdodCAoYykgMjAwNS0yMDA2LCBTdG9ja2hvbG1zIFVu aXZlcnNpdGV0DQorICogQ29weXJpZ2h0IChjKSAyMDA1LTIwMDcsIFN0b2Nr aG9sbXMgVW5pdmVyc2l0ZXQNCiAgKiAoU3RvY2tob2xtIFVuaXZlcnNpdHks IFN0b2NraG9sbSBTd2VkZW4pDQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4N CiAgKg0KQEAgLTMxLDExICszMSwxNSBAQA0KICAqIFBPU1NJQklMSVRZIE9G IFNVQ0ggREFNQUdFLg0KICAqLw0KIA0KLS8qICRJZDogbm5wZnNfYmxvY2tz LmgsdiAxLjIgMjAwNi8xMC8yNCAxNjozMzozMSB0b2wgRXhwICQgKi8NCisv KiAkSWQ6IG5ucGZzX2Jsb2Nrcy5oLHYgMS4zIDIwMDcvMDEvMjQgMTc6MDk6 MTcgdG9sIEV4cCAkICovDQogDQogI2RlZmluZSBOTlBGU19OT19JTkRFWCAg IDAgIC8qIGR1bW15IGNhY2hlIGluZGV4ICovDQogI2RlZmluZSBOTlBGU19O T19PRkZTRVQgICgodWludDY0X3QpLTEpICAvKiBkdW1teSBvZmZzZXQsIG5v IGJsb2NrICovDQogDQotI2RlZmluZSBOTlBGU19DQUNIRV9GSUxFX1BBVEgg ICAgIiUwMlgvJTAyWC8lMDJsbFgiDQotI2RlZmluZSBOTlBGU19DQUNIRV9E SVJfUEFUSCAgICAgIiUwMlgvJTAyWEAiDQotI2RlZmluZSBOTlBGU19DQUNI RV9QQVRIX1NJWkUgICAgKCA2ICsxICsyKzEgKzE2ICsxKQ0KKyNkZWZpbmUg Tk5QRlNfQ0FDSEVfRklMRV9ESVIxICAgICAgICAiJTAyeCINCisjZGVmaW5l IE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklM RV9ESVIxICIvIiBOTlBGU19DQUNIRV9GSUxFX0RJUjENCisjZGVmaW5lIE5O UEZTX0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSCAgIiUwMmxseCINCisNCisjZGVm aW5lIE5OUEZTX0NBQ0hFX0ZJTEVfUEFUSCAgIE5OUEZTX0NBQ0hFX0ZJTEVf RElSX1BBVEggIi8iIE5OUEZTX0NBQ0hFX0ZJTEVfQkxPQ0tfUEFUSA0KKyNk ZWZpbmUgTk5QRlNfQ0FDSEVfRElSX1BBVEggICAgTk5QRlNfQ0FDSEVfRklM RV9ESVJfUEFUSCAiQCINCisjZGVmaW5lIE5OUEZTX0NBQ0hFX1BBVEhfU0la RSAgICggNiArMSArMisxICsxNiArMSApDQpkaWZmIC11cHJOIC1Ybm9kaWZm IGFybGEtMC45MC1vbGQvbm5wZnMvaW5jbHVkZS9ubnBmcy9ubnBmc19tZXNz YWdlLmggYXJsYS0wLjkwL25ucGZzL2luY2x1ZGUvbm5wZnMvbm5wZnNfbWVz c2FnZS5oDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9pbmNsdWRlL25ucGZz L25ucGZzX21lc3NhZ2UuaAkyMDA2LTEwLTI0IDE4OjMzOjMyLjAwMDAwMDAw MCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9pbmNsdWRlL25ucGZzL25u cGZzX21lc3NhZ2UuaAkyMDE2LTAxLTIyIDEyOjUzOjI5LjAwMDAwMDAwMCAr MDEwMA0KQEAgLTMxLDcgKzMxLDcgQEANCiAgKiBTVUNIIERBTUFHRS4NCiAg Ki8NCiANCi0vKiAkSWQ6IG5ucGZzX21lc3NhZ2UuaCx2IDEuNjEgMjAwNi8x MC8yNCAxNjozMzozMiB0b2wgRXhwICQgKi8NCisvKiAkSWQ6IG5ucGZzX21l c3NhZ2UuaCx2IDEuNjIgMjAwOS8wMi8yNCAyMDoyMDo1NSB0b2wgRXhwICQg Ki8NCiANCiAjaWZuZGVmIF94bXNnX2gNCiAjZGVmaW5lIF94bXNnX2gNCkBA IC01Miw3ICs1MiwxNSBAQCB0eXBlZGVmIHVpbnQxNl90IG5ucGZzX3JpZ2h0 czsNCiAgKiBUaGUgbm5wZnNfY3JlZCwgaWYgcGFnID09IDAsIHVzZSB1aWQg DQogICovDQogdHlwZWRlZiBzdHJ1Y3Qgbm5wZnNfY3JlZCB7DQorI2lmbmRl ZiBfX0tFUk5FTF9fDQogICAgIHVpbnQzMl90IHVpZDsNCisjZWxzZQ0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMywxNCww KQ0KKyAgICBrdWlkX3QgdWlkOw0KKyNlbHNlDQorICAgIHVpbnQzMl90IHVp ZDsNCisjZW5kaWYNCisjZW5kaWYNCiAgICAgbm5wZnNfcGFnX3QgcGFnOw0K IH0gbm5wZnNfY3JlZDsNCiANCkBAIC0xMDYsNyArMTE0LDcgQEAgdHlwZWRl ZiBzdHJ1Y3Qgbm5wZnNfYmxvY2tfaGFuZGxlIHsNCiANCiAvKiBubnBmc19u b2RlLmZsYWdzDQogICogVGhlIGxvd2VyIDE2IGJpdCBmbGFncyBhcmUgcmVz ZXJ2ZWQgZm9yIGNvbW1vbiBubnBmcyBmbGFncw0KLSAqIFRoZSB1cHBlciAx NiBiaXQgZmxhZ3MgYXJlIHJlc2VydmVkIGZvciBvcGVydGluZyBzeXN0ZW0g ZGVwZW5kYW50DQorICogVGhlIHVwcGVyIDE2IGJpdCBmbGFncyBhcmUgcmVz ZXJ2ZWQgZm9yIG9wZXJhdGluZyBzeXN0ZW0gZGVwZW5kZW50DQogICogZmxh Z3MuDQogICovDQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1v bGQvbm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmggYXJsYS0wLjkwL25ucGZz L2xpbnV4L25ucGZzL25ubnBmcy5oDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBm cy9saW51eC9ubnBmcy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAw MDAwMDAwMCArMDIwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBm cy9ubm5wZnMuaAkyMDAyLTA5LTA3IDEyOjQ3OjE3LjAwMDAwMDAwMCArMDIw MA0KQEAgLTEsNCArMSw0IEBADQogLyogJElkOiBubm5wZnMuaCx2IDEuMiAy MDAyLzA5LzA3IDEwOjQ3OjE3IGxoYSBFeHAgJCAqLw0KLS8qICRTb3VyY2U6 IC9hZnMvc3RhY2tlbi5rdGguc2Uvc3JjL1NvdXJjZVJlcG9zaXRvcnkvYXJs YS9ubnBmcy9saW51eC9ubnBmcy9ubm5wZnMuaCx2ICQgKi8NCisvKiAkU291 cmNlOiAvVXNlcnMvYm8vdG1wL0FybGFTb3VyY2VSZXBvc2l0b3J5L2FybGEv bm5wZnMvbGludXgvbm5wZnMvbm5ucGZzLmgsdiAkICovDQogDQogI2RlZmlu ZSBOTk5QRlMgMg0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xk L25ucGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmggYXJsYS0wLjkwL25ucGZz L2xpbnV4L25ucGZzL25ucGZzX2ZzLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25u cGZzL2xpbnV4L25ucGZzL25ucGZzX2ZzLmgJMjAwNi0xMC0yNCAxODozMzo0 OC4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGludXgv bm5wZnMvbm5wZnNfZnMuaAkyMDE2LTAxLTEzIDIyOjU3OjA2LjAwMDAwMDAw MCArMDEwMA0KQEAgLTg0LDggKzg0LDEzIEBAIHN0cnVjdCBubnBmcyB7DQog ICAgIHN0cnVjdCB2ZnNtb3VudCAqY2FjaGVyb290OyAvKiBzaW1wbGlmeSBv cGVuIG9mIGNhY2hlIGJsb2NrcyAqLw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpj YWNoZWRpcjsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxNCwwKQ0KICAgICB1aWRfdCB1aWQ7IC8qIGtlZXAgdHJh Y2sgb2YgZGFlbW9uJ3MgaWRlbnRpdHkgKi8NCiAgICAgZ2lkX3QgZ2lkOw0K KyNlbHNlDQorICAgIGt1aWRfdCB1aWQ7IC8qIGtlZXAgdHJhY2sgb2YgZGFl bW9uJ3MgaWRlbnRpdHkgKi8NCisgICAga2dpZF90IGdpZDsNCisjZW5kaWYN CiANCiAgICAgc3RydWN0IHsNCiAJaW50IHJlY3Vyc2U7DQpkaWZmIC11cHJO IC1Ybm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5w ZnNfbG9jbC5oIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19s b2NsLmgNCi0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzL25u cGZzX2xvY2wuaAkyMDA3LTAxLTA4IDE0OjUyOjQ5LjAwMDAwMDAwMCArMDEw MA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19sb2Ns LmgJMjAxNi0wMS0xMyAyMzowMToxMC4wMDAwMDAwMDAgKzAxMDANCkBAIC0z NCw3ICszNCw3IEBADQogICogU1VDSCBEQU1BR0UuDQogICovDQogDQotLyog JElkOiBubnBmc19sb2NsLmgsdiAxLjc3IDIwMDcvMDEvMDggMTM6NTI6NDkg dG9sIEV4cCAkICovDQorLyogJElkOiBubnBmc19sb2NsLmgsdiAxLjc4IDIw MTAvMDgvMDggMjA6NDM6MDYgdG9sIEV4cCAkICovDQogDQogI2lmZGVmIEhB VkVfQ09ORklHX0gNCiAjaW5jbHVkZSA8Y29uZmlnLmg+DQpAQCAtNTEsNyAr NTEsOSBAQA0KICNpbmNsdWRlIDxsaW51eC9zdGF0Lmg+DQogI2luY2x1ZGUg PGxpbnV4L3N0cmluZy5oPg0KICNpbmNsdWRlIDxsaW51eC9uYW1laS5oPg0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYs MzkpDQogI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+DQorI2VuZGlmDQog I2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4NCiANCiAvKg0KQEAgLTEzOCwxNSAr MTQwLDE2IEBAIHR5cGVkZWYgX191MzIgIHVpbnQzMl90Ow0KIGludA0KIG5u cGZzX2ZldGNoX3Jvb3Qoc3RydWN0IGlub2RlICppKTsNCiANCi0jaWYgTElO VVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5 KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlw ZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRl dl9uYW1lLA0KIAkgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCB2ZnNtb3VudCAq bW50KTsNCiAjZWxzZQ0KLXN0cnVjdCBzdXBlcl9ibG9jayAqDQotbm5wZnNf Z2V0X3NiIChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCi0J ICAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwgdm9pZCAq ZGF0YSk7DQorc3RydWN0IGRlbnRyeSoNCitubnBmc19tb3VudChzdHJ1Y3Qg ZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCisJICAgICBpbnQgZmxhZ3Ms IGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KKwkgICAgIHZvaWQgKmRhdGEpOw0K ICNlbmRpZg0KIA0KIGV4dGVybiBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMg bm5wZnNfZGVudHJ5X29wZXJhdGlvbnM7DQpAQCAtMjAwLDE2ICsyMDMsMjUg QEAgbm5wZnNfaXdyaXRlY291bnQgKHN0cnVjdCBpbm9kZSAqaW5vZGUpDQog ICogSGVscCBmdW5jdGlvbiB0byByZWFkIHRoZSBkZW50cnktPmRfY291bnQg YSBwb3J0YWJsZSB3YXkNCiAgKi8NCiANCisvKiNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgpKi8NCiBzdGF0aWMgaW5s aW5lIGludA0KIG5ucGZzX2Rjb3VudCAoY29uc3Qgc3RydWN0IGRlbnRyeSAq ZGVudHJ5KQ0KKy8qI2Vsc2UNCitzdGF0aWMgaW5saW5lIGludA0KK25ucGZz X2Rjb3VudCAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQ0KKyNlbmRpZiovDQog ew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy LDYsMzgpDQogICAgIHJldHVybiBhdG9taWNfcmVhZCgmZGVudHJ5LT5kX2Nv dW50KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDExLDApDQorICAgIHJldHVybiBhdG9taWNfcmVhZCgoY29uc3Qg YXRvbWljX3QqKSZkZW50cnktPmRfY291bnQpOw0KKyNlbHNlDQorICAgIHJl dHVybiBkX2NvdW50KGRlbnRyeSk7Ow0KKyNlbmRpZg0KIH0NCiANCiBleHRl cm4gDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP TigyLDYsMTgpDQogY29uc3QNCi0jZW5kaWYNCiBzdHJ1Y3QgYWRkcmVzc19z cGFjZV9vcGVyYXRpb25zIG5ucGZzX2FvcHM7DQogDQogI2lmbmRlZiBsaXN0 X2Zvcl9lYWNoDQpAQCAtMjM3LDcgKzI0OSwxMiBAQCBubnBmc19maXh1cF9z eXNjYWxsX2xvc3NhZ2Uodm9pZCk7DQogI2VuZGlmDQogDQogI2RlZmluZSBu bnBmc19kZXZfdCBkZXZfdA0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigyLDYsMzgpDQogI2RlZmluZSBubnBmc19kX2Vu dHJ5X3VuaGFzaGVkKGQpIGhsaXN0X3VuaGFzaGVkKGQpDQorI2Vsc2UNCisj ZGVmaW5lIG5ucGZzX2RfZW50cnlfdW5oYXNoZWQoZCkgaGxpc3RfYmxfdW5o YXNoZWQoZCkNCisjZW5kaWYNCiANCiAjZGVmaW5lIE5OUEZTX05PT1AgICAg ICB3aGlsZSgwKXt9DQogDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45 MC1vbGQvbm5wZnMvbGludXgvbm5wZnMvbm5wZnNfbm9kZS5oIGFybGEtMC45 MC9ubnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmgNCi0tLSBhcmxhLTAu OTAtb2xkL25ucGZzL2xpbnV4L25ucGZzL25ucGZzX25vZGUuaAkyMDA2LTEy LTExIDE3OjI5OjM5LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9u bnBmcy9saW51eC9ubnBmcy9ubnBmc19ub2RlLmgJMjAxMC0wOC0wOCAyMjo0 MzowNy4wMDAwMDAwMDAgKzAyMDANCkBAIC01NCw3ICs1NCw3IEBAIGV4dGVy biB1aW50MzJfdCBubnBmc19ibG9ja3NpemViaXRzOw0KICAqIGZsYWdzLg0K ICAqLw0KIA0KLSNkZWZpbmUgTk5QRlNfTk9ERV9JUFVUCTB4MDAwMTAwMDAg ICAvKiBub2RlIGlzIGluIGlwdXQoKSwgYXZvaWQgZGVhZGxvY2sgKi8NCisj ZGVmaW5lIE5OUEZTX05PREVfSVBVVAkweDAwMDEwMDAwICAgLyogbm9kZSBp cyBpbiBpcHV0KCksIGF2b2lkIGRlYWRsb2NrLiBDYW4gYmUgcmVtb3ZlZD8g Ki8NCiANCiAjZGVmaW5lIFhOX0hBU0hTSVpFIDEwMDkNCiAjZGVmaW5lIFhO X0NMRUFOVVBfSVRFUlMgMTI5DQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEt MC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfYmxvY2tzLmMgYXJsYS0wLjkw L25ucGZzL2xpbnV4L25ucGZzX2Jsb2Nrcy5jDQotLS0gYXJsYS0wLjkwLW9s ZC9ubnBmcy9saW51eC9ubnBmc19ibG9ja3MuYwkyMDA3LTAxLTA4IDE0OjI0 OjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBmcy9saW51 eC9ubnBmc19ibG9ja3MuYwkyMDE2LTAxLTE2IDE0OjE2OjQ5LjAwMDAwMDAw MCArMDEwMA0KQEAgLTM0LDcgKzM0LDcgQEANCiAgKiBQT1NTSUJJTElUWSBP RiBTVUNIIERBTUFHRS4NCiAgKi8NCiANCi0vKiAkSWQ6IG5ucGZzX2Jsb2Nr cy5jLHYgMS4zIDIwMDcvMDEvMDggMTM6MjQ6MjQgdG9sIEV4cCAkICovDQor LyogJElkOiBubnBmc19ibG9ja3MuYyx2IDEuNiAyMDEwLzA4LzA4IDIwOjQz OjA0IHRvbCBFeHAgJCAqLw0KIA0KICNpbmNsdWRlIDxubnBmcy9ubnBmc19s b2NsLmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2ZzLmg+DQpAQCAtNDMs NiArNDMsMTEgQEANCiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4NCiAjaW5j bHVkZSA8bGludXgvbW0uaD4NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF ID49IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCitleHRlcm4gaW50IHZmc19w YXRoX2xvb2t1cChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCB2ZnNtb3VudCAq LA0KKwkJCSAgIGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50LCBzdHJ1Y3Qg cGF0aCAqKTsNCisjZW5kaWYNCisNCiAvKg0KICAqIHJldHVybiB0cnVlIGlm IGJsb2NrIGlzIGluIGNhY2hlDQogICovDQpAQCAtMjkwLDcgKzI5NSwxMyBA QCBubnBmc19ibG9ja19leHRlbmQoc3RydWN0IG5ucGZzX25vZGUgKm5vDQog ICAgIGJhY2tub2RlID0gYmFja2ZpbGUtPmZfbWFwcGluZy0+aG9zdDsNCiAN CiAgICAgbXV0ZXhfbG9jaygmYmFja25vZGUtPmlfbXV0ZXgpOw0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDgsMCkNCiAg ICAgcmV0ID0gdm10cnVuY2F0ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl KTsNCisjZWxzZQ0KKyAgICByZXQgPSBpbm9kZV9uZXdzaXplX29rKGJhY2tu b2RlLCBubnBmc19ibG9ja3NpemUpOw0KKyAgICBpZighcmV0KQ0KKyAgICAg ICAgdHJ1bmNhdGVfc2V0c2l6ZShiYWNrbm9kZSwgbm5wZnNfYmxvY2tzaXpl KTsNCisjZW5kaWYNCiAgICAgbXV0ZXhfdW5sb2NrKCZiYWNrbm9kZS0+aV9t dXRleCk7DQogICAgIA0KICAgICBmaWxwX2Nsb3NlKGJhY2tmaWxlLCBOVUxM KTsNCkBAIC0zMTgsMTAgKzMyOSwyNiBAQCBubnBmc19ibG9ja19vcGVuKHN0 cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIHN0cnVjdCBubnBmcyAqbm5w ZnNwID0gTk5QRlNfRlJPTV9YTk9ERShub2RlKTsNCiAgICAgc3RydWN0IGlu b2RlICppbm9kZSA9IFhOT0RFX1RPX1ZOT0RFKG5vZGUpOw0KICAgICBpbnQg ZmxhZ3MgPSBPX0xBUkdFRklMRSB8IGZsYWc7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0 IG5hbWVpZGF0YSBuZDsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgcGF0aCBwYXRo Ow0KKyNlbmRpZg0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDE0LDApDQogICAgIHVpZF90IHNhdmV1aWQ7DQogICAgIGdp ZF90IHNhdmVnaWQ7DQorI2Vsc2UNCisgICAga3VpZF90IHNhdmV1aWQ7DQor ICAgIGtnaWRfdCBzYXZlZ2lkOw0KKyNlbmRpZg0KICAgICBpbnQgcmV0Ow0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2 LDI5KQ0KKyAgICBjb25zdCBzdHJ1Y3QgY3JlZCAqb2xkX2NyZWQ7DQorICAg IHN0cnVjdCBjcmVkICpvdmVycmlkZV9jcmVkOw0KKyNlbmRpZg0KKw0KKyAg ICAodm9pZClzYXZldWlkOw0KKyAgICAodm9pZClzYXZlZ2lkOw0KIA0KICAg ICBCVUdfT04oIW5ucGZzcCk7DQogICAgIEJVR19PTihmbGFncyAmIE9fQ1JF QVQgJiYgZmlsZSAhPSBOVUxMKTsNCkBAIC0zNDYsMjEgKzM3MywzOCBAQCBu bnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAg IEJVR19PTighbm5wZnNwLT5jYWNoZWRpciB8fCAhbm5wZnNwLT5jYWNoZXJv b3QpOw0KICAgICANCiAgICAgLyogdXNlIHRoZSBuZnNkIHRyaWNrIHRvIGdp dmUgdXMgYWNjZXNzICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBL RVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHNhdmV1aWQgPSBjdXJyZW50 LT5mc3VpZDsNCiAgICAgc2F2ZWdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KICAg ICBjdXJyZW50LT5mc3VpZCA9IG5ucGZzcC0+dWlkOw0KICAgICBjdXJyZW50 LT5mc2dpZCA9IG5ucGZzcC0+Z2lkOw0KLQ0KLSAgICBuZC5kZW50cnkgPSBk Z2V0KG5ucGZzcC0+Y2FjaGVkaXIpOw0KLSAgICBuZC5tbnQgPSBtbnRnZXQo bm5wZnNwLT5jYWNoZXJvb3QpOw0KLSAgICBuZC5sYXN0X3R5cGUgPSBMQVNU X05PUk07DQotICAgIG5kLmRlcHRoID0gMDsNCi0gICAgbmQuZmxhZ3MgPSAw Ow0KLSAgICANCi0gICAgaWYgKGZsYWdzICYgT19DUkVBVCkNCi0JbmQuZmxh Z3MgPSBMT09LVVBfUEFSRU5UOw0KLSAgICANCi0gICAgcmV0ID0gcGF0aF93 YWxrKGNhY2hlbmFtZSwgJm5kKTsNCisjZWxzZQ0KKyAgICBzYXZldWlkID0g Y3VycmVudF9mc3VpZCgpOw0KKyAgICBzYXZlZ2lkID0gY3VycmVudF9mc2dp ZCgpOw0KKyAgICBvdmVycmlkZV9jcmVkID0gcHJlcGFyZV9jcmVkcygpOw0K KyAgICBpZiAob3ZlcnJpZGVfY3JlZCA9PSBOVUxMKQ0KKyAgICAgICAgcmV0 dXJuIC1FTk9NRU07DQorICAgIG92ZXJyaWRlX2NyZWQtPmZzdWlkID0gbm5w ZnNwLT51aWQ7DQorICAgIG92ZXJyaWRlX2NyZWQtPmZzZ2lkID0gbm5wZnNw LT5naWQ7DQorICAgIG9sZF9jcmVkID0gb3ZlcnJpZGVfY3JlZHMob3ZlcnJp ZGVfY3JlZCk7DQorI2VuZGlmDQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMSwwKQ0KKyAgICByZXQgPSB2ZnNfcGF0 aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3Qs DQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQgPyBM T09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZuZCk7DQorI2VsaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBy ZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNwLT5jYWNoZWRpciwgbm5wZnNw LT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5hbWUsDQorCQkJICBmbGFncyAm IE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDogMCwNCisJCQkgICZuZC5wYXRo KTsNCisjZWxzZQ0KKyAgICByZXQgPSB2ZnNfcGF0aF9sb29rdXAobm5wZnNw LT5jYWNoZWRpciwgbm5wZnNwLT5jYWNoZXJvb3QsDQorCQkJICBjYWNoZW5h bWUsDQorCQkJICBmbGFncyAmIE9fQ1JFQVQgPyBMT09LVVBfUEFSRU5UIDog MCwNCisJCQkgICZwYXRoKTsNCisjZW5kaWYNCiAgICAgaWYgKHJldCkgew0K IAl1aW50MzJfdCBubWFza3MgPSBub2RlLT5kYXRhLm5tYXNrczsNCiAJdWlu dDMyX3QgbWFzazsNCkBAIC0zODcsMTYgKzQzMSwzNyBAQCBubnBmc19ibG9j a19vcGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogICAgIA0KICAgICBp ZiAoZmxhZ3MgJiBPX0NSRUFUKSB7DQogCS8qIFhYWCBtb2RlIGJpdHMgb24g Y3JlYXRlIC0tIFNfSVJVU1J8U19JV1VTUiAqLw0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEsMCkNCiAJc3RydWN0IGRl bnRyeSAqZGVudHJ5ID0gbG9va3VwX2NyZWF0ZSgmbmQsIDApOwkNCisjZWxp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDAp DQorCS8qIFRPRE86IGNoZWNrIHRoZSBjYWxsIHRvIGtlcm5fcGF0aF9jcmVh dGUoKSwgaXMgdGhlIHNlY29uZCBhcmd1bWVudCBvcHRpb25hbD8gKi8NCisJ c3RydWN0IGRlbnRyeSAqZGVudHJ5ID0ga2Vybl9wYXRoX2NyZWF0ZShBVF9G RENXRCwgTlVMTCwgJm5kLnBhdGgsIDApOwkNCisjZWxzZQ0KKwkvKiBUT0RP OiBjaGVjayB0aGUgY2FsbCB0byBrZXJuX3BhdGhfY3JlYXRlKCksIGlzIHRo ZSBzZWNvbmQgYXJndW1lbnQgb3B0aW9uYWw/ICovDQorCXN0cnVjdCBkZW50 cnkgKmRlbnRyeSA9IGtlcm5fcGF0aF9jcmVhdGUoQVRfRkRDV0QsIE5VTEws ICZwYXRoLCAwKTsJDQorI2VuZGlmDQogCWlmIChJU19FUlIoZGVudHJ5KSkg ew0KIAkgICAgcmV0ID0gUFRSX0VSUihkZW50cnkpOw0KIAl9IGVsc2Ugew0K LQkgICAgcmV0ID0gdmZzX2NyZWF0ZShuZC5kZW50cnktPmRfaW5vZGUsIGRl bnRyeSwgU19JUlVTUnxTX0lXVVNSLCAmbmQpOw0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDYsMCkNCisJICAgIHJldCA9 IHZmc19jcmVhdGUobmQucGF0aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwg U19JUlVTUnxTX0lXVVNSLCAmbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJICAgIC8qIFRPRE86 IHNob3VsZCB0aGUgbGFzdCBhcmd1bWVudCB0byB2ZnNfY3JlYXRlOiBib29s IHdhbnRfZXhjbCwgYmUgMCBvciAxPyAqLw0KKwkgICAgcmV0ID0gdmZzX2Ny ZWF0ZShuZC5wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgZGVudHJ5LCBTX0lSVVNS fFNfSVdVU1IsIDApOw0KKyNlbHNlDQorCSAgICAvKiBUT0RPOiBzaG91bGQg dGhlIGxhc3QgYXJndW1lbnQgdG8gdmZzX2NyZWF0ZTogYm9vbCB3YW50X2V4 Y2wsIGJlIDAgb3IgMT8gKi8NCisJICAgIHJldCA9IHZmc19jcmVhdGUocGF0 aC5kZW50cnktPmRfaW5vZGUsIGRlbnRyeSwgU19JUlVTUnxTX0lXVVNSLCAw KTsNCisjZW5kaWYNCiAJICAgIGRwdXQoZGVudHJ5KTsNCiAJfQ0KIA0KLQlt dXRleF91bmxvY2soJm5kLmRlbnRyeS0+ZF9pbm9kZS0+aV9tdXRleCk7DQot CXBhdGhfcmVsZWFzZSgmbmQpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorCW11dGV4X3VubG9jaygmbmQu cGF0aC5kZW50cnktPmRfaW5vZGUtPmlfbXV0ZXgpOw0KKwlwYXRoX3B1dCgm bmQucGF0aCk7DQorI2Vsc2UNCisJbXV0ZXhfdW5sb2NrKCZwYXRoLmRlbnRy eS0+ZF9pbm9kZS0+aV9tdXRleCk7DQorCXBhdGhfcHV0KCZwYXRoKTsNCisj ZW5kaWYNCiANCiAJaWYgKHJldCkgew0KIAkgICAgcHJpbnRrKCJubnBmc19i bG9ja19vcGVuKCVzKSBjcmVhdGUgZmFpbGVkOiAlZFxuIiwgY2FjaGVuYW1l LCAtcmV0KTsNCkBAIC00MTAsMTIgKzQ3NSwyNSBAQCBubnBmc19ibG9ja19v cGVuKHN0cnVjdCBubnBmc19ub2RlICpub2RlDQogCSAgICByZXQgPSBubnBm c19ibG9ja19leHRlbmQobm9kZSwgb2Zmc2V0KTsNCiAJfQ0KICAgICB9IGVs c2Ugew0KLQlzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKG5kLmRlbnRy eSwgbmQubW50LCBmbGFncyk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDIsNiwyOSkNCisJc3RydWN0IGZpbGUgKmYgPSBk ZW50cnlfb3BlbihuZC5wYXRoLmRlbnRyeSwgbmQucGF0aC5tbnQsIGZsYWdz KTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDYsMCkNCisgICAgICAgIHN0cnVjdCBmaWxlICpmID0gZGVudHJ5X29w ZW4obmQucGF0aC5kZW50cnksIG5kLnBhdGgubW50LCBmbGFncywgY3VycmVu dF9jcmVkKCkpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTksMCkNCisJc3RydWN0IHBhdGggdG1wX3BhdGggPSB7 IC5tbnQgPSBuZC5wYXRoLm1udCwgLmRlbnRyeSA9IG5kLnBhdGguZGVudHJ5 IH07DQorICAgICAgICBzdHJ1Y3QgZmlsZSAqZiA9IGRlbnRyeV9vcGVuKCZ0 bXBfcGF0aCwgZmxhZ3MsIGN1cnJlbnRfY3JlZCgpKTsNCisjZWxzZQ0KKyAg ICAgICAgc3RydWN0IGZpbGUgKmYgPSBkZW50cnlfb3BlbigmcGF0aCwgZmxh Z3MsIGN1cnJlbnRfY3JlZCgpKTsNCisjZW5kaWYNCiAJaWYgKElTX0VSUihm KSkgew0KIAkgICAgcmV0ID0gUFRSX0VSUihmKTsNCiAJICAgIHByaW50aygi bm5wZnNfYmxvY2tfb3Blbiglcykgb3BlbiBmYWlsZWQ6ICVkXG4iLCBjYWNo ZW5hbWUsIC1yZXQpOw0KIAkgICAgbm5wZnNfZGVidWdfb29wcygpOw0KLQkg ICAgcGF0aF9yZWxlYXNlKCZuZCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJICAgIHBhdGhfcHV0KCZu ZC5wYXRoKTsNCisjZWxzZQ0KKwkgICAgcGF0aF9wdXQoJnBhdGgpOw0KKyNl bmRpZg0KIAl9IGVsc2Ugew0KIAkgICAgKmZpbGUgPSBmOw0KIAl9DQpAQCAt NDI0LDggKzUwMiwxMyBAQCBubnBmc19ibG9ja19vcGVuKHN0cnVjdCBubnBm c19ub2RlICpub2RlDQogICAgIC8qIHBhdGhfcmVsZWFzZSgpIGlzIHVzdWFs bHkgaGFuZGxlZCBvbiBjbG9zZSAqLw0KIA0KICBvdXQ6DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAg IGN1cnJlbnQtPmZzdWlkID0gc2F2ZXVpZDsNCiAgICAgY3VycmVudC0+ZnNn aWQgPSBzYXZlZ2lkOw0KKyNlbHNlDQorICAgIHJldmVydF9jcmVkcyhvbGRf Y3JlZCk7DQorICAgIHB1dF9jcmVkKG92ZXJyaWRlX2NyZWQpOw0KKyNlbmRp Zg0KIA0KICAgICByZXR1cm4gcmV0Ow0KIH0NCmRpZmYgLXVwck4gLVhub2Rp ZmYgYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19jb21tb24uYyBh cmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfY29tbW9uLmMNCi0tLSBhcmxh LTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jCTIwMDYtMTIt MTEgMTc6MzE6NDYuMDAwMDAwMDAwICswMTAwDQorKysgYXJsYS0wLjkwL25u cGZzL2xpbnV4L25ucGZzX2NvbW1vbi5jCTIwMTYtMDEtMTQgMTY6MTU6MDAu MDAwMDAwMDAwICswMTAwDQpAQCAtMTEyLDEwICsxMTIsMTUgQEAgbm5wZnNf cHJpbnRfYWxpYXNlcyhjb25zdCBzdHJ1Y3QgaW5vZGUgKg0KIHZvaWQNCiBu bnBmc19wcmludF9hbGlhc2VzX3JlYWwoY29uc3Qgc3RydWN0IGlub2RlICpp bm9kZSkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9oZWFkICphbGlhczsN CisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigz LDksMCkNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKmFsaWFzOw0KKyNlbmRp Zg0KICAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQogICAgIGludCBiYWls b3V0ID0gMTAwOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDYsMCkNCiAgICAgYWxpYXMgPSBpbm9kZS0+aV9kZW50 cnkubmV4dDsNCiAgICAgd2hpbGUgKGFsaWFzICE9ICZpbm9kZS0+aV9kZW50 cnkpIHsNCiAJaWYgKC0tYmFpbG91dCA8IDApIHsNCkBAIC0xMzEsNiArMTM2 LDI2IEBAIG5ucGZzX3ByaW50X2FsaWFzZXNfcmVhbChjb25zdCBzdHJ1Y3Qg aW4NCiAJfQ0KIAlhbGlhcyA9IGFsaWFzLT5uZXh0Ow0KICAgICB9DQorI2Vs c2UNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o Myw5LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgYWxp YXMsICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAg IGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlub2RlLT5pX2RlbnRy eSwgZF9hbGlhcykgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zvcl9lYWNoX2Vu dHJ5KGRlbnRyeSwgJmlub2RlLT5pX2RlbnRyeSwgZF91LmRfYWxpYXMpIHsN CisjZW5kaWYNCisJaWYgKC0tYmFpbG91dCA8IDApIHsNCisJICAgIHByaW50 aygiIC4uLiIpOw0KKwkgICAgYnJlYWs7DQorCX0NCisJaWYgKGRlbnRyeSkg ew0KKwkgICAgcHJpbnRrKCIgJS4qcyglcCkiLCAoaW50KWRlbnRyeS0+ZF9u YW1lLmxlbiwNCisJCSAgIGRlbnRyeS0+ZF9uYW1lLm5hbWUsIGRlbnRyeSk7 DQorCSAgICBpZiAobm5wZnNfZF9lbnRyeV91bmhhc2hlZCgmZGVudHJ5LT5k X2hhc2gpKQ0KKwkJcHJpbnRrKCIodW5oYXNoZWQpIik7DQorCX0NCisgICAg fQ0KKyNlbmRpZg0KICAgICBwcmludGsoIlxuIik7DQogfQ0KIA0KQEAgLTE0 Niw3ICsxNzEsMTEgQEAgbm5wZnNfcHJpbnRfY2hpbGRyZW4oY29uc3Qgc3Ry dWN0IGRlbnRyeQ0KIA0KICAgICB3aGlsZSAoc3ViZGlycyAhPSAmZGVudHJ5 LT5kX3N1YmRpcnMpIHsNCiAJc3RydWN0IGxpc3RfaGVhZCAqdG1wID0gc3Vi ZGlyczsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMywxOSwwKQ0KIAlzdHJ1Y3QgZGVudHJ5ICpjaGlsZCA9IGxpc3RfZW50 cnkodG1wLCBzdHJ1Y3QgZGVudHJ5LCBkX3UuZF9jaGlsZCk7DQorI2Vsc2UN CisJc3RydWN0IGRlbnRyeSAqY2hpbGQgPSBsaXN0X2VudHJ5KHRtcCwgc3Ry dWN0IGRlbnRyeSwgZF9jaGlsZCk7DQorI2VuZGlmDQogDQogCXByaW50aygi ICUuKnMoJXApIiwgKGludCljaGlsZC0+ZF9uYW1lLmxlbiwNCiAJICAgICAg IGNoaWxkLT5kX25hbWUubmFtZSwgY2hpbGQpOw0KZGlmZiAtdXByTiAtWG5v ZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2Rldi5jIGFy bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19kZXYuYw0KLS0tIGFybGEtMC45 MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfZGV2LmMJMjAwNi0xMC0yNCAxODoz MzozNi4wMDAwMDAwMDAgKzAyMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGlu dXgvbm5wZnNfZGV2LmMJMjAxNi0wMS0xNCAxNjoyODoxOS4wMDAwMDAwMDAg KzAxMDANCkBAIC0zMDAsNyArMzAwLDkgQEAgbm5wZnNfaW52YWxpZGF0ZV9h bGwoc3RydWN0IG5ucGZzICpubnBmcw0KICAgICBOTlBGU0RFQihYREVCTk9E RSwgKCJmcmVlX2FsbF9ubnBmc19ub2RlcyBzdGFydGluZ1xuIikpOw0KIA0K ICAgICBzaHJpbmtfZGNhY2hlX3NiKG5ucGZzLT5zYik7DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzNykNCiAgICAg aW52YWxpZGF0ZV9pbm9kZXMobm5wZnMtPnNiKTsNCisjZW5kaWYNCiAgICAg DQogICAgIE5OUEZTREVCKFhERUJOT0RFLCAoImZyZWVfYWxsX25ucGZzX25v ZGVzIGRvbmVcbiIpKTsNCiB9DQpAQCAtMzc0LDcgKzM3NiwxMSBAQCBubnBm c19kZXZjbG9zZShzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RyDQogc3RhdGlj IHNzaXplX3QNCiBubnBmc19kZXZyZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBj aGFyICpidWYsIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQ0KIHsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww KQ0KICAgICBubnBmc19kZXZfdCBkZXYgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p bm9kZS0+aV9yZGV2Ow0KKyNlbHNlDQorICAgIG5ucGZzX2Rldl90IGRldiA9 IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUtPmlfcmRldjsNCisjZW5k aWYNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSAmbm5wZnNbTUlOT1Io ZGV2KV07DQogICAgIHN0cnVjdCBubnBmc19saW5rICpmaXJzdDsNCiAgICAg aW50IHJldCA9IDAsIGVycm9yID0gMDsNCkBAIC00MzksOCArNDQ1LDEyIEBA IG5ucGZzX2RldndyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCANCiAN CiAgICAgTk5QRlNERUIoWERFQkRFViwgKCJubnBmc19kZXZ3cml0ZVxuIikp Ow0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxOSwwKQ0KICAgICBkZXYgPSBmaWxlLT5mX2RlbnRyeS0+ZF9p bm9kZS0+aV9yZGV2Ow0KLSAgICBubnBmc3AgPSAmbm5wZnNbTUlOT1IoZGV2 KV07DQorI2Vsc2UNCisgICAgZGV2ID0gZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ ZF9pbm9kZS0+aV9yZGV2Ow0KKyNlbmRpZg0KKyAgICAgbm5wZnNwID0gJm5u cGZzW01JTk9SKGRldildOw0KIA0KICAgICBkb3duKCZubnBmc3AtPmNoYW5u ZWxfc2VtKTsNCiAgICAgaWYgKG5ucGZzcC0+c3RhdHVzICYgTk5QRlNfREVW V1JJVEUpIHsNCkBAIC01MDUsMTkgKzUxNSwzNyBAQCBubnBmc19kZXZ3cml0 ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgDQogLyoNCiAgKiBOb3QgdXNl ZC4NCiAgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQNCiBubnBmc19kZXZpb2N0bChz dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJICAg ICAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQ0KKyNl bHNlDQorc3RhdGljIGxvbmcNCitubnBmc191bmxvY2tlZF9kZXZpb2N0bChz dHJ1Y3QgZmlsZSAqZmlsZSwNCisJICAgICAgIHVuc2lnbmVkIGludCBjbWQs IHVuc2lnbmVkIGxvbmcgYXJnKQ0KKyNlbmRpZg0KIHsNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0KICAgICBO TlBGU0RFQihYREVCREVWLCAoIm5ucGZzX2RldmlvY3RsIGRldiA9ICVkLCBm bGFncyA9ICVkXG4iLA0KIAkJICAgICAgIGlub2RlLT5pX3JkZXYsIGZpbGUt PmZfZmxhZ3MpKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE5LDApDQorICAgIE5OUEZTREVCKFhERUJERVYsICgi bm5wZnNfZGV2aW9jdGwgZGV2ID0gJWQsIGZsYWdzID0gJWRcbiIsDQorCQkg ICAgICAgZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfcmRldiwgZmlsZS0+ Zl9mbGFncykpOw0KKyNlbHNlDQorICAgIE5OUEZTREVCKFhERUJERVYsICgi bm5wZnNfZGV2aW9jdGwgZGV2ID0gJWQsIGZsYWdzID0gJWRcbiIsDQorCQkg ICAgICAgZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9yZGV2LCBm aWxlLT5mX2ZsYWdzKSk7DQorI2VuZGlmDQogICAgIHJldHVybiAtRUlOVkFM Ow0KIH0NCiANCiBzdGF0aWMgdW5zaWduZWQgaW50DQogbm5wZnNfZGV2cG9s bChzdHJ1Y3QgZmlsZSAqZmlsZSwgcG9sbF90YWJsZSAqd2FpdCkNCiB7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks MCkNCiAgICAgbm5wZnNfZGV2X3QgZGV2ID0gZmlsZS0+Zl9kZW50cnktPmRf aW5vZGUtPmlfcmRldjsNCisjZWxzZQ0KKyAgICBubnBmc19kZXZfdCBkZXYg PSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX3JkZXY7DQorI2Vu ZGlmDQogICAgIHN0cnVjdCBubnBmcyAqbm5wZnNwID0gJm5ucGZzW01JTk9S KGRldildOw0KICAgICBpbnQgcmV0ID0gMDsNCiAgICAgDQpAQCAtOTUzLDcg Kzk4MSwxMSBAQCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX2ZvcHMg PSB7DQogICAgIHJlYWQ6CQlubnBmc19kZXZyZWFkLA0KICAgICB3cml0ZToJ CW5ucGZzX2RldndyaXRlLA0KICAgICBwb2xsOgkJbm5wZnNfZGV2cG9sbCwN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2 LDM2KQ0KICAgICBpb2N0bDoJCW5ucGZzX2RldmlvY3RsLA0KKyNlbHNlDQor ICAgIHVubG9ja2VkX2lvY3RsOglubnBmc191bmxvY2tlZF9kZXZpb2N0bCwN CisjZW5kaWYNCiAgICAgcmVsZWFzZToJCW5ucGZzX2RldmNsb3NlLA0KICAg ICBvcGVuOgkJbm5wZnNfZGV2b3BlbiwNCiB9Ow0KQEAgLTk2OCw4ICsxMDAw LDEzIEBAIG5ucGZzX2luaXRfZGV2aWNlKHZvaWQpDQogCWluaXRfd2FpdHF1 ZXVlX2hlYWQoJihubnBmc1tpXS53YWl0X3F1ZXVlKSk7DQogCW5ucGZzX2lu aXRxKCZubnBmc1tpXS5tZXNzYWdlcSk7DQogCW5ucGZzX2luaXRxKCZubnBm c1tpXS5zbGVlcHEpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDYsMzcpDQogCWluaXRfTVVURVgoJm5ucGZzW2ldLmlu YWN0aXZlX3NlbSk7DQogCWluaXRfTVVURVgoJm5ucGZzW2ldLmNoYW5uZWxf c2VtKTsNCisjZWxzZQ0KKwlzZW1hX2luaXQoJm5ucGZzW2ldLmluYWN0aXZl X3NlbSwgMSk7DQorCXNlbWFfaW5pdCgmbm5wZnNbaV0uY2hhbm5lbF9zZW0s IDEpOw0KKyNlbmRpZg0KIAlJTklUX0xJU1RfSEVBRCgmbm5wZnNbaV0uaW5h Y3RpdmVfbGlzdCk7DQogCW5ucGZzW2ldLm5ub2RlcyA9IDA7DQogICAgIH0N CmRpZmYgLXVwck4gLVhub2RpZmYgYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51 eC9ubnBmc19pbm9kZW9wcy5jIGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBm c19pbm9kZW9wcy5jDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9u bnBmc19pbm9kZW9wcy5jCTIwMDYtMTItMTEgMTc6MzU6MjYuMDAwMDAwMDAw ICswMTAwDQorKysgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX2lub2Rl b3BzLmMJMjAxNi0wMS0xNSAxMjo0NDo1Ni4wMDAwMDAwMDAgKzAxMDANCkBA IC00MCwyNSArNDAsNDEgQEANCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfZGV2 Lmg+DQogI2luY2x1ZGUgPG5ucGZzL25ucGZzX2RpcmVudC5oPg0KICNpbmNs dWRlIDxubnBmcy9ubnBmc19zeXNjYWxscy5oPg0KKyNpbmNsdWRlIDxsaW51 eC9haW8uaD4NCiAjaW5jbHVkZSA8bGludXgvYmluZm10cy5oPg0KICNpbmNs dWRlIDxsaW51eC9maWxlLmg+DQogI2luY2x1ZGUgPGxpbnV4L3BhZ2VtYXAu aD4NCiAjaW5jbHVkZSA8bGludXgvcGFnZS1mbGFncy5oPg0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oNCwxLDApDQorI2lu Y2x1ZGUgPGxpbnV4L3Vpby5oPg0KKyNlbmRpZg0KICNpbmNsdWRlIDxsaW51 eC93cml0ZWJhY2suaD4NCiAjaW5jbHVkZSA8YXNtL2ZjbnRsLmg+DQogDQog I2lmZGVmIFJDU0lEDQotUkNTSUQoIiRJZDogbm5wZnNfaW5vZGVvcHMuYyx2 IDEuMjIzIDIwMDYvMTIvMTEgMTY6MzU6MjYgdG9sIEV4cCAkIik7DQorUkNT SUQoIiRJZDogbm5wZnNfaW5vZGVvcHMuYyx2IDEuMjI2IDIwMTAvMDgvMDgg MjA6NDM6MDQgdG9sIEV4cCAkIik7DQogI2VuZGlmDQogDQogc3RhdGljIGlu dA0KIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmlsZSAqZmlsZSwgdV9pbnQg ZmxhZyk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsNiwwKQ0KIHN0YXRpYyBpbnQNCiBubnBmc19kX3JldmFsaWRh dGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpu ZCk7DQotDQorI2Vsc2UNCiBzdGF0aWMgaW50DQorbm5wZnNfZF9yZXZhbGlk YXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgdW5zaWduZWQgaW50IGZsYWdz KTsNCisjZW5kaWYNCisNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMiw2LDM4KQ0KK3N0YXRpYw0KK2ludA0KIG5ucGZzX2Rf ZGVsZXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7DQorI2Vsc2UNCitzdGF0 aWMNCitpbnQNCitubnBmc19kX2RlbGV0ZShjb25zdCBzdHJ1Y3QgZGVudHJ5 ICpkZW50cnkpOw0KKyNlbmRpZg0KIA0KIHN0YXRpYyB2b2lkDQogbm5wZnNf ZF9yZWxlYXNlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7DQpAQCAtMTA1LDcg KzEyMSw3IEBAIG5ucGZzX3ZtYV9jbG9zZSAoc3RydWN0IHZtX2FyZWFfc3Ry dWN0ICoNCiB9DQogDQogc3RhdGljIHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0 cnVjdCBubnBmc19maWxlX3ZtX29wcyA9IHsNCi0gICAgLm5vcGFnZQk9IGZp bGVtYXBfbm9wYWdlLA0KKyAgICAuZmF1bHQgICAgICA9IGZpbGVtYXBfZmF1 bHQsDQogICAgIC5jbG9zZQk9IG5ucGZzX3ZtYV9jbG9zZSwNCiB9Ow0KIA0K QEAgLTEzNCwxMiArMTUwLDE0IEBAIG5ucGZzX3ByaW50X3BhdGgoc3RydWN0 IGRlbnRyeSAqZGVudHJ5KQ0KICAqDQogICovDQogDQorI2lmIDANCiB2b2lk DQogbm5wZnNfcHJpbnRfbG9jayhjaGFyICpzLCBzdHJ1Y3Qgc2VtYXBob3Jl ICpzZW0pDQogew0KICAgICBOTlBGU0RFQihYREVCTE9DSywgKCJsb2NrOiAl cyBzZW06ICVwIGNvdW50OiAlZFxuIiwNCiAJCSAgICAgIHMsIHNlbSwgKGlu dClhdG9taWNfcmVhZCgmc2VtLT5jb3VudCkpKTsNCiB9DQorI2VuZGlmDQog DQogLyoNCiAgKg0KQEAgLTE4NSw3ICsyMDMsNyBAQCBubnBmc19kX2lwdXQo c3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1DQogICAgIE5OUEZTREVCKFhE RUJWTk9QUywNCiAJICAgICAoIm5ucGZzX2RfaXB1dDogZGVudHJ5ICVwLCBp bm9kZSAlcFxuIiwgZGVudHJ5LCBpbm9kZSkpOw0KICAgICANCi0gICAgaWYg KG5vZGUtPmZsYWdzICYgTk5QRlNfTk9ERV9JUFVUKSAvKiBYWFggbG9ja2lu ZyAqLw0KKyAgICBpZiAobm9kZS0+ZmxhZ3MgJiBOTlBGU19OT0RFX0lQVVQp IC8qIFhYWCBsb2NraW5nLiBuZXZlciBzZXQ/ICovDQogCW5ucGZzX2lyZWxl KGlub2RlKTsNCiAgICAgZWxzZQ0KIAlpcHV0KGlub2RlKTsNCkBAIC0yMTIs OCArMjMwLDEzIEBAIG5ucGZzX2lub2RlX3ZhbGlkKHN0cnVjdCBpbm9kZSAq aW5vZGUpDQogICogbm5wZnNfbG9va3VwIG5vdyByZXR1cm5zIGEgZGVudHJ5 Lg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDYsMCkNCiBzdGF0aWMgc3RydWN0IGRlbnRyeSAqDQogbm5w ZnNfbG9va3VwIChzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRlbnRyeSAq ZGVudHJ5LCBzdHJ1Y3QgbmFtZWlkYXRhICpuZCkNCisjZWxzZQ0KK3N0YXRp YyBzdHJ1Y3QgZGVudHJ5ICoNCitubnBmc19sb29rdXAgKHN0cnVjdCBpbm9k ZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2lnbmVkIGludCBm bGFncykNCisjZW5kaWYNCiB7DQogICAgIHN0cnVjdCBubnBmc19tZXNzYWdl X2dldG5vZGUgbXNnOw0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcDsNCkBA IC0yNDAsNyArMjYzLDExIEBAIG5ucGZzX2xvb2t1cCAoc3RydWN0IGlub2Rl ICpkaXIsIHN0cnVjdCANCiANCiAJbXNnLmhlYWRlci5vcGNvZGUgPSBOTlBG U19NU0dfR0VUTk9ERTsNCiAgICAgICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cuY3JlZC51 aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1zZy5jcmVk LnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBh ZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJbXNnLnBhcmVudF9oYW5kbGUgPSBk LT5oYW5kbGU7DQogICAgICAgICANCkBAIC0zMTAsNyArMzM3LDExIEBAIG5u cGZzX29wZW5fdmFsaWQoc3RydWN0IGlub2RlICp2cCwgdV9pbnQNCiAgICAg ICB7DQogCXN0cnVjdCBubnBmc19tZXNzYWdlX29wZW4gbXNnOw0KIAltc2cu aGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19PUEVOOw0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAltc2cu Y3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgIG1z Zy5jcmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogCW1zZy5j cmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAJbXNnLmhhbmRsZSA9IHhu LT5oYW5kbGU7DQogCW1zZy50b2tlbnMgPSB0b2s7DQpAQCAtMzk3LDcgKzQy OCwxMSBAQCBmaW5kX2ZpcnN0X2Jsb2NrKHN0cnVjdCBubnBmc19ub2RlICpu b2RlDQogc3RhdGljIGludA0KIG5ucGZzX2ZzeW5jX2ludChzdHJ1Y3QgZmls ZSAqZmlsZSwgdV9pbnQgZmxhZykNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlu b2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNl DQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVu dHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnMgKm5u cGZzcCA9IE5OUEZTX0ZST01fVk5PREUoaW5vZGUpOw0KICAgICBzdHJ1Y3Qg bm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAg IGxvZmZfdCBsZW4gPSBpX3NpemVfcmVhZChpbm9kZSk7DQpAQCAtNDI1LDcg KzQ2MCwxMSBAQCBubnBmc19mc3luY19pbnQoc3RydWN0IGZpbGUgKmZpbGUs IHVfaW50DQogDQogCW1zZy5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BV VERBVEE7DQogCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwy OCkNCiAJbXNnLmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQor ICAgICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRp Zg0KIAltc2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAJbXNnLmZsYWcgICA9 IGZsYWc7DQogCW1zZy5vZmZzZXQgPSBvZmY7DQpAQCAtNDYwLDE0ICs0OTks MjcgQEAgbm5wZnNfZnN5bmNfaW50KHN0cnVjdCBmaWxlICpmaWxlLCB1X2lu dA0KICAqDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwzNSkNCiBzdGF0aWMgaW50DQogbm5wZnNfZnN5 bmMoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwg aW50IGRhdGFzeW5jKQ0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsMSwwKQ0KK3N0YXRpYyBpbnQNCitubnBmc19mc3lu YyhzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IGRhdGFzeW5jKQ0KKyNlbHNlDQor c3RhdGljIGludA0KK25ucGZzX2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxlLCBs b2ZmX3Qgc3RhcnQsIGxvZmZfdCBlbmQsIGludCBkYXRhc3luYykNCisjZW5k aWYNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVS U0lPTigyLDYsMzUpDQorICAgIHN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGZp bGUtPmZfcGF0aC5kZW50cnk7DQorI2VuZGlmDQogICAgIHN0cnVjdCBpbm9k ZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVudHJ5KTsNCiAgICAgc3Ry dWN0IG5ucGZzICpubnBmc3A7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4 bjsNCiAgICAgaW50IGVycm9yID0gMDsNCiANCisgICAgKHZvaWQpbm5wZnNw Ow0KKw0KICAgICBlcnJvciA9IG5ucGZzX2lub2RlX3ZhbGlkKGlub2RlKTsN CiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1cm4gZXJyb3I7DQpAQCAtNTExLDcg KzU2MywxMSBAQCBubnBmc19hdHRyX3ZhbGlkKHN0cnVjdCBpbm9kZSAqIHZw LCB1X2luDQogICAgICAgICAgICAgc3RydWN0IG5ucGZzX21lc3NhZ2VfZ2V0 YXR0ciBtc2c7DQogDQogICAgICAgICAgICAgbXNnLmhlYWRlci5vcGNvZGUg PSBOTlBGU19NU0dfR0VUQVRUUjsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgICAgICAgICBtc2cu Y3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgICAgICAg ICBtc2cuY3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAg ICAgICAgICAgIG1zZy5jcmVkLnBhZyA9IHBhZzsNCiAgICAgICAgICAgICBt c2cuaGFuZGxlID0geG4tPmhhbmRsZTsNCiAgICAgICAgICAgICBlcnJvciA9 IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVv Zihtc2cpKTsNCkBAIC01NTEsNyArNjA3LDExIEBAIG5ucGZzX3JpZ2h0c192 YWxpZChzdHJ1Y3QgaW5vZGUgKiB2cCwgbm4NCiAgICAgICAgICAgICBzdHJ1 Y3Qgbm5wZnNfbWVzc2FnZV9nZXRhdHRyIG1zZzsNCiANCiAgICAgICAgICAg ICBtc2cuaGVhZGVyLm9wY29kZSA9IE5OUEZTX01TR19HRVRBVFRSOw0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4 KQ0KICAgICAgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsN CisjZWxzZQ0KKyAgICAgICAgICAgIG1zZy5jcmVkLnVpZCA9IGN1cnJlbnRf dWlkKCk7DQorI2VuZGlmDQogICAgICAgICAgICAgbXNnLmNyZWQucGFnID0g cGFnOw0KICAgICAgICAgICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0K ICAgICAgICAgICAgIGVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5wZnNw LCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KQEAgLTU5MiwxMSArNjUy LDI1IEBAIGNoZWNrX3JpZ2h0cyAobm5wZnNfcmlnaHRzIHJpZ2h0cywgaW50 IG0NCiAgKiBXZSBkb24ndCBob2xkIGlfbXV0ZXguDQogICovDQogDQorI2lm IChMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzgp IHx8IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDEs MCkpDQorc3RhdGljIGludA0KK25ucGZzX3Blcm1pc3Npb24oc3RydWN0IGlu b2RlICppbm9kZSwgaW50IG1vZGUpDQorI2Vsc2UNCiBzdGF0aWMgaW50DQot bm5wZnNfcGVybWlzc2lvbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9k ZSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpDQorbm5wZnNfcGVybWlzc2lvbihz dHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbW9kZSwgdW5zaWduZWQgaW50IGZs YWdzKQ0KKyNlbmRpZg0KIHsNCiAgICAgaW50IGVycm9yID0gMDsNCi0gICAg bm5wZnNfcGFnX3QgcGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KKyAgICBubnBm c19wYWdfdCBwYWc7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO RUxfVkVSU0lPTigzLDEsMCkNCisgICAgaWYgKG1vZGUgJiBNQVlfTk9UX0JM T0NLKQ0KKyAgICAgICAgcmV0dXJuIC1FQ0hJTEQ7DQorI2VsaWYgTElOVVhf VkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCisgICAg aWYgKGZsYWdzICYgSVBFUk1fRkxBR19SQ1UpDQorICAgICAgICByZXR1cm4g LUVDSElMRDsNCisjZW5kaWYNCisNCisgICAgcGFnID0gbm5wZnNfZ2V0X3Bh ZygpOw0KICAgICANCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZz X2FjY2VzcyAoJXApIG1vZGUgPSAwJW8gYWxpYXNlczoiLCBpbm9kZSwgbW9k ZSkpOw0KICAgICBubnBmc19wcmludF9hbGlhc2VzKGlub2RlKTsNCkBAIC02 MzYsNyArNzEwLDExIEBAIG5ucGZzX2RvX2dldGRhdGEoc3RydWN0IG5ucGZz X25vZGUgKnhuLCANCiAgICAgaW50IGVycm9yOw0KIA0KICAgICBtc2cuaGVh ZGVyLm9wY29kZSA9IE5OUEZTX01TR19HRVREQVRBOw0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBt c2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAgbXNn LmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAgICAgbXNn LmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICBtc2cuaGFuZGxl ID0geG4tPmhhbmRsZTsNCiAgICAgbXNnLnRva2VucyA9IHRvazsNCkBAIC03 NTAsMTEgKzgyOCwxOSBAQCBubnBmc19kYXRhX3ZhbGlkKHN0cnVjdCBpbm9k ZSAqaW5vZGUsIHVfDQogaW50IG5ucGZzX2ZpbGVfbW1hcChzdHJ1Y3QgZmls ZSAqIGZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqIHZtYSkNCiB7DQog ICAgIGludCBmbGFncywgZXJyb3IgPSAwOw0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBp bm9kZSAqaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsNCisjZWxz ZQ0KKyAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9wYXRoLmRl bnRyeS0+ZF9pbm9kZTsNCisjZW5kaWYNCiAgICAgc3RydWN0IGFkZHJlc3Nf c3BhY2UgKm1hcHBpbmcgPSBmaWxlLT5mX21hcHBpbmc7DQogDQogICAgIE5O UEZTREVCKFhERUJWTk9QUywgKCJubnBmc19tbWFwIGlub2RlOiAlcFxuIiwg aW5vZGUpKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxOSwwKQ0KICAgICBubnBmc19wcmludF9wYXRoKGZpbGUtPmZf ZGVudHJ5KTsNCisjZWxzZQ0KKyAgICBubnBmc19wcmludF9wYXRoKGZpbGUt PmZfcGF0aC5kZW50cnkpOw0KKyNlbmRpZg0KICAgICBOTlBGU0RFQihYREVC Vk5PUFMsICgibm5wZnNfbW1hcCBhbGlhc2VzOiIpKTsNCiAgICAgbm5wZnNf cHJpbnRfYWxpYXNlcyhpbm9kZSk7DQogICAgIA0KQEAgLTc4OSwzNyArODc1 LDUwIEBAIGludCBubnBmc19maWxlX21tYXAoc3RydWN0IGZpbGUgKiBmaWxl LCANCiAgKg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDE2LDApDQogc3RhdGljIHNzaXplX3QNCiBubnBm c19haW9fcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsDQotI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQogCSAgICAg ICBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWduZWQgbG9uZyBucl9z ZWdzLA0KKwkgICAgICAgbG9mZl90IHBvcykNCiAjZWxzZQ0KLQkgICAgICAg Y2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LA0KK3N0YXRpYyBzc2l6 ZV90DQorbm5wZnNfcmVhZF9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwgc3Ry dWN0IGlvdl9pdGVyICp0bykNCiAjZW5kaWYNCi0JICAgICAgIGxvZmZfdCBw b3MpDQogew0KICAgICBpbnQgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgZmls ZSAqZmlsZSA9IGlvY2ItPmtpX2ZpbHA7DQotI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTkpDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTIsMCkNCiAgICAgc3Np emVfdCBjb3VudCA9IGlvY2ItPmtpX2xlZnQ7DQorI2VsaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCwxLDApDQorICAgIHNzaXpl X3QgY291bnQgPSBpb2NiLT5raV9uYnl0ZXM7DQorI2Vsc2UNCisgICAgc3Np emVfdCBjb3VudCA9IGlvdl9pdGVyX2NvdW50KHRvKTsNCiAjZW5kaWYNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww KQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50cnkt PmRfaW5vZGU7DQorI2Vsc2UNCisgICAgc3RydWN0IGlub2RlICppbm9kZSA9 IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQorI2VuZGlmDQogICAg IHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RPX1hOT0RFKGlub2Rl KTsNCiAgICAgDQogICAgIGlmICh4biAhPSBOVUxMKQ0KIAlOTlBGU0RFQihY REVCVk5PUFMsICgibm5wZnNfcmVhZF9maWxlKCVwKTogdG9rZW5zOiAweCV4 XG4iLA0KIAkJCSAgICAgaW5vZGUsIHhuLT50b2tlbnMpKTsNCiANCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0K ICAgICBlcnJvciA9IG5ucGZzX2RhdGFfdmFsaWQoaW5vZGUsIE5OUEZTX0RB VEFfUiwgcG9zLCBwb3MgKyBjb3VudCk7DQorI2Vsc2UNCisgICAgZXJyb3Ig PSBubnBmc19kYXRhX3ZhbGlkKGlub2RlLCBOTlBGU19EQVRBX1IsIGlvY2It PmtpX3BvcywgaW9jYi0+a2lfcG9zICsgY291bnQpOw0KKyNlbmRpZg0KICAg ICBpZiAoZXJyb3IpIHsNCiAJTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZz X3JlYWRfZmlsZTogZGF0YSBub3QgdmFsaWQgJWRcbiIsIGVycm9yKSk7DQog CXJldHVybiBlcnJvcjsNCiAgICAgfQ0KICAgICANCi0jaWYgTElOVVhfVkVS U0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNiwwKQ0KICAg ICBlcnJvciA9IGdlbmVyaWNfZmlsZV9haW9fcmVhZChpb2NiLCBpb3YsIG5y X3NlZ3MsIHBvcyk7DQogI2Vsc2UNCi0gICAgZXJyb3IgPSBnZW5lcmljX2Zp bGVfYWlvX3JlYWQoaW9jYiwgYnVmLCBjb3VudCwgcG9zKTsNCisgICAgZXJy b3IgPSBnZW5lcmljX2ZpbGVfcmVhZF9pdGVyKGlvY2IsIHRvKTsNCiAjZW5k aWYNCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3JlYWRfZmls ZTogZXJyb3IgPSAlZFxuIiwgZXJyb3IpKTsNCiAgICAgcmV0dXJuIGVycm9y Ow0KQEAgLTgyOSwyMyArOTI4LDM2IEBAIG5ucGZzX2Fpb19yZWFkKHN0cnVj dCBraW9jYiAqaW9jYiwNCiAgKg0KICAqLw0KIA0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogc3RhdGljIHNz aXplX3QNCiBubnBmc19haW9fd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLA0K LSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2 LDE5KQ0KIAkJY29uc3Qgc3RydWN0IGlvdmVjICppb3YsIHVuc2lnbmVkIGxv bmcgbnJfc2VncywNCisJCWxvZmZfdCBwb3MpDQogI2Vsc2UNCi0JCWNvbnN0 IGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCwgDQorc3RhdGljIHNz aXplX3QNCitubnBmc193cml0ZV9pdGVyKHN0cnVjdCBraW9jYiAqaW9jYiwg c3RydWN0IGlvdl9pdGVyICpmcm9tKQ0KICNlbmRpZg0KLQkJbG9mZl90IHBv cykNCiB7DQogICAgIGludCBlcnJvciA9IDA7DQogICAgIHN0cnVjdCBmaWxl ICpmaWxlID0gaW9jYi0+a2lfZmlscDsNCi0jaWYgTElOVVhfVkVSU0lPTl9D T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMiwwKQ0KICAgICBzc2l6 ZV90IGNvdW50ID0gaW9jYi0+a2lfbGVmdDsNCisjZWxpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTig0LDEsMCkNCisgICAgc3NpemVf dCBjb3VudCA9IGlvY2ItPmtpX25ieXRlczsNCisjZWxzZQ0KKyAgICBzc2l6 ZV90IGNvdW50ID0gaW92X2l0ZXJfY291bnQoZnJvbSk7DQogI2VuZGlmDQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTks MCkNCiAgICAgc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5 LT5kX2lub2RlOw0KKyNlbHNlDQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUg PSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAg ICBzdHJ1Y3Qgbm5wZnNfbm9kZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9k ZSk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsMTYsMCkNCiAgICAgbG9mZl90IHJlYWxwb3MgPSBwb3M7DQorI2Vsc2UN CisgICAgbG9mZl90IHJlYWxwb3MgPSBpb2NiLT5raV9wb3M7DQorI2VuZGlm DQogICAgIA0KICAgICBOTlBGU0RFQihYREVCVk5PUFMsICgibm5wZnNfYWlv X3dyaXRlKCVwKTogdG9rZW5zOiAweCV4XG4iLA0KIAkJCSBpbm9kZSwgeG4t PnRva2VucykpOw0KQEAgLTg1OSwxMCArOTcxLDEwIEBAIG5ucGZzX2Fpb193 cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCXJldHVybiBlcnJvcjsNCiAg ICAgfQ0KIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZF UlNJT04oMiw2LDE5KQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE2LDApDQogICAgIGVycm9yID0gZ2VuZXJpY19maWxl X2Fpb193cml0ZShpb2NiLCBpb3YsIG5yX3NlZ3MsIHBvcyk7DQogI2Vsc2UN Ci0gICAgZXJyb3IgPSBnZW5lcmljX2ZpbGVfYWlvX3dyaXRlKGlvY2IsIGJ1 ZiwgY291bnQsIHBvcyk7DQorICAgIGVycm9yID0gZ2VuZXJpY19maWxlX3dy aXRlX2l0ZXIoaW9jYiwgZnJvbSk7DQogI2VuZGlmDQogICAgIGlmICghSVNf RVJSX1ZBTFVFKGVycm9yKSkNCiAJeG4tPmZsYWdzIHw9IE5OUEZTX0RBVEFf RElSVFk7IC8qIFhYWCByYWNlICovDQpAQCAtODcxLDkgKzk4MywxOSBAQCBu bnBmc19haW9fd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLA0KICAgICByZXR1 cm4gZXJyb3I7DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDMsMCkNCiBzdGF0aWMgaW50DQogbm5wZnNfY3Jl YXRlKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnks DQogCSAgICAgaW50IG1vZGUsIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNl bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiww KQ0KK3N0YXRpYyBpbnQNCitubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpk aXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwNCisJICAgICB1bW9kZV90IG1v ZGUsIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGljIGlu dA0KK25ucGZzX2NyZWF0ZShzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGRl bnRyeSAqZGVudHJ5LA0KKwkgICAgIHVtb2RlX3QgbW9kZSwgYm9vbCBleGNs KQ0KKyNlbmRpZg0KIHsNCiAgICAgc3RydWN0IG5ucGZzICpubnBmc3A7DQog ICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBAIC05MDMsOSArMTAyNSwx NyBAQCBubnBmc19jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBk DQogICAgIFhBX0NMRUFSKCZtc2cuYXR0cik7DQogICAgIFhBX1NFVF9NT0RF KCZtc2cuYXR0ciwgbW9kZSk7DQogICAgIFhBX1NFVF9UWVBFKCZtc2cuYXR0 ciwgTk5QRlNfRklMRV9SRUcpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUg PD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KICAgICBYQV9TRVRfR0lEKCZt c2cuYXR0ciwgY3VycmVudC0+ZnNnaWQpOw0KKyNlbHNlDQorICAgIFhBX1NF VF9HSUQoJm1zZy5hdHRyLCBjdXJyZW50X2ZzZ2lkKCkpOw0KKyNlbmRpZg0K ICAgICBtc2cubW9kZSA9IDA7CQkvKiBYWFggKi8NCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbXNn LmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIG1zZy5j cmVkLnVpZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAgIG1zZy5j cmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgZXJyb3IgPSBubnBm c19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNn KSk7DQogICAgIGlmIChlcnJvciA9PSAwKQ0KQEAgLTk0Niw3ICsxMDc2LDEx IEBAIG5ucGZzX3VubGluayAoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3QN CiAgICAgaWYgKHN0cmxjcHkobXNnLm5hbWUsIGRlbnRyeS0+ZF9uYW1lLm5h bWUsIHNpemVvZihtc2cubmFtZSkpID49IE5OUEZTX01BWF9OQU1FKQ0KIAly ZXR1cm4gLUVOQU1FVE9PTE9ORzsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgbXNnLmNyZWQu dWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgIG1zZy5jcmVkLnVp ZCA9IGN1cnJlbnRfdWlkKCk7DQorI2VuZGlmDQogICAgIG1zZy5jcmVkLnBh ZyA9IG5ucGZzX2dldF9wYWcoKTsNCiAgICAgZXJyb3IgPSBubnBmc19tZXNz YWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXplb2YobXNnKSk7DQog ICAgIGlmIChlcnJvciA9PSAwKQ0KQEAgLTk5MSw3ICsxMTI1LDExIEBAIG5u cGZzX3JlbmFtZSAoc3RydWN0IGlub2RlICogb2xkX2Rpciwgc3QNCiAgICAg aWYgKHN0cmxjcHkobXNnLm5ld19uYW1lLCBuZXdfZGVudHJ5LT5kX25hbWUu bmFtZSwgc2l6ZW9mKG1zZy5uZXdfbmFtZSkpID49IE5OUEZTX01BWF9OQU1F KQ0KIAlyZXR1cm4gLUVOQU1FVE9PTE9ORzsNCiAJDQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIG1z Zy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBtc2cu Y3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KICAgICBtc2cu Y3JlZC5wYWcgPSBubnBmc19nZXRfcGFnKCk7DQogICAgIGVycm9yID0gbm5w ZnNfbWVzc2FnZV9ycGMobm5wZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1z ZykpOw0KICAgICBpZiAoZXJyb3IgPT0gMCkNCkBAIC0xMDA4LDggKzExNDYs MTMgQEAgbm5wZnNfcmVuYW1lIChzdHJ1Y3QgaW5vZGUgKiBvbGRfZGlyLCBz dA0KICAgICByZXR1cm4gZXJyb3I7DQogfQ0KIA0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDMsMCkNCiBzdGF0aWMgaW50 DQogbm5wZnNfbWtkaXIoc3RydWN0IGlub2RlICogZGlyLCBzdHJ1Y3QgZGVu dHJ5ICpkZW50cnksIGludCBtb2RlKQ0KKyNlbHNlDQorc3RhdGljIGludA0K K25ucGZzX21rZGlyKHN0cnVjdCBpbm9kZSAqIGRpciwgc3RydWN0IGRlbnRy eSAqZGVudHJ5LCB1bW9kZV90IG1vZGUpDQorI2VuZGlmDQogew0KICAgICBz dHJ1Y3Qgbm5wZnMgKm5ucGZzcDsNCiAgICAgc3RydWN0IG5ucGZzX25vZGUg KnhuOw0KQEAgLTEwNDAsOSArMTE4MywxNyBAQCBubnBmc19ta2RpcihzdHJ1 Y3QgaW5vZGUgKiBkaXIsIHN0cnVjdCBkDQogCVhBX0NMRUFSKCZtc2cuYXR0 cik7DQogCVhBX1NFVF9NT0RFKCZtc2cuYXR0ciwgbW9kZSk7DQogCVhBX1NF VF9UWVBFKCZtc2cuYXR0ciwgTk5QRlNfRklMRV9ESVIpOw0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAlY QV9TRVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudC0+ZnNnaWQpOw0KKyNlbHNl DQorICAgICAgICBYQV9TRVRfR0lEKCZtc2cuYXR0ciwgY3VycmVudF9mc2dp ZCgpKTsNCisjZW5kaWYNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9 IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAJbXNnLmNyZWQudWlkID0gY3Vy cmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAgICBtc2cuY3JlZC51aWQgPSBj dXJyZW50X3VpZCgpOw0KKyNlbmRpZg0KIAltc2cuY3JlZC5wYWcgPSBubnBm c19nZXRfcGFnKCk7DQogCWVycm9yID0gbm5wZnNfbWVzc2FnZV9ycGMobm5w ZnNwLCAmbXNnLmhlYWRlciwgc2l6ZW9mKG1zZykpOw0KIAlpZiAoZXJyb3Ig PT0gMCkNCkBAIC0xMDgzLDcgKzEyMzQsMTEgQEAgbm5wZnNfcm1kaXIoc3Ry dWN0IGlub2RlICogZGlyLCBzdHJ1Y3QgZA0KICAgICBtc2cucGFyZW50X2hh bmRsZSA9IHhuLT5oYW5kbGU7DQogICAgIGlmIChzdHJsY3B5KG1zZy5uYW1l LCBkZW50cnktPmRfbmFtZS5uYW1lLCBzaXplb2YobXNnLm5hbWUpKSA+PSBO TlBGU19NQVhfTkFNRSkNCiAJICAgIHJldHVybiAtRU5BTUVUT09MT05HOw0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2 LDI4KQ0KICAgICBtc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vs c2UNCisgICAgbXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5k aWYNCiAgICAgbXNnLmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAg ICBlcnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFk ZXIsIHNpemVvZihtc2cpKTsNCiAgICAgaWYgKGVycm9yID09IDApDQpAQCAt MTEyOCw3ICsxMjgzLDExIEBAIHN0YXRpYyBpbnQgbm5wZnNfbGluayhzdHJ1 Y3QgZGVudHJ5ICpvbGQNCiAJaWYgKHN0cmxjcHkobXNnLm5hbWUsIG5hbWUs IHNpemVvZihtc2cubmFtZSkpID49IE5OUEZTX01BWF9OQU1FKQ0KIAkgICAg cmV0dXJuIC1FTkFNRVRPT0xPTkc7DQogDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1zZy5jcmVkLnVp ZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAgbXNnLmNyZWQu dWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNnLmNyZWQucGFn ID0gbm5wZnNfZ2V0X3BhZygpOw0KIAllcnJvciA9IG5ucGZzX21lc3NhZ2Vf cnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIsIHNpemVvZihtc2cpKTsNCiAJaWYg KGVycm9yID09IDApDQpAQCAtMTE1NywyOSArMTMxNiw0NyBAQCBzdGF0aWMg aW50IG5ucGZzX3N5bWxpbmsoc3RydWN0IGlub2RlICpkDQogICAgIHhuID0g Vk5PREVfVE9fWE5PREUoZGlyKTsNCiANCiAgICAgew0KLQlzdHJ1Y3Qgbm5w ZnNfbWVzc2FnZV9zeW1saW5rIG1zZzsNCisJc3RydWN0IG5ucGZzX21lc3Nh Z2Vfc3ltbGluayAqbXNnID0gTlVMTDsNCiANCi0JbXNnLmhlYWRlci5vcGNv ZGUgPSBOTlBGU19NU0dfU1lNTElOSzsNCi0JbXNnLnBhcmVudF9oYW5kbGUg PSB4bi0+aGFuZGxlOw0KLQlpZiAoc3RybGNweShtc2cubmFtZSwgbmFtZSwg c2l6ZW9mKG1zZy5uYW1lKSkgPj0gTk5QRlNfTUFYX05BTUUpDQotCSAgICBy ZXR1cm4gLUVOQU1FVE9PTE9ORzsNCi0JaWYgKHN0cmxjcHkobXNnLmNvbnRl bnRzLCBzeW1uYW1lLCBzaXplb2YobXNnLmNvbnRlbnRzKSkgPj0gTk5QRlNf TUFYX1NZTUxJTktfQ09OVEVOVCkNCi0JICAgIHJldHVybiAtRU5BTUVUT09M T05HOw0KLQlYQV9DTEVBUigmbXNnLmF0dHIpOw0KLQlYQV9TRVRfTU9ERSgm bXNnLmF0dHIsIDA3NzcpOw0KLQlYQV9TRVRfVFlQRSgmbXNnLmF0dHIsIE5O UEZTX0ZJTEVfTE5LKTsNCi0JWEFfU0VUX0dJRCgmbXNnLmF0dHIsIGN1cnJl bnQtPmZzZ2lkKTsNCisJbXNnID0ga21hbGxvYyhzaXplb2YoKm1zZyksIEdG UF9LRVJORUwpOw0KIA0KLQltc2cuY3JlZC51aWQgPSBjdXJyZW50LT51aWQ7 DQotCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCi0JZXJyb3Ig PSBubnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2cuaGVhZGVyLCBzaXpl b2YobXNnKSk7DQorCWlmIChtc2cgPT0gTlVMTCkNCisJICByZXR1cm4gLUVO T01FTTsNCisNCisJbXNnLT5oZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1NZ TUxJTks7DQorCW1zZy0+cGFyZW50X2hhbmRsZSA9IHhuLT5oYW5kbGU7DQor CWlmIChzdHJsY3B5KG1zZy0+bmFtZSwgbmFtZSwgc2l6ZW9mKG1zZy0+bmFt ZSkpID49IE5OUEZTX01BWF9OQU1FKSB7DQorCSAga2ZyZWUobXNnKTsNCisJ ICByZXR1cm4gLUVOQU1FVE9PTE9ORzsNCisJfQ0KKwlpZiAoc3RybGNweSht c2ctPmNvbnRlbnRzLCBzeW1uYW1lLCBzaXplb2YobXNnLT5jb250ZW50cykp ID49IE5OUEZTX01BWF9TWU1MSU5LX0NPTlRFTlQpIHsNCisJICBrZnJlZSht c2cpOw0KKwkgIHJldHVybiAtRU5BTUVUT09MT05HOw0KKwl9DQorCVhBX0NM RUFSKCZtc2ctPmF0dHIpOw0KKwlYQV9TRVRfTU9ERSgmbXNnLT5hdHRyLCAw Nzc3KTsNCisJWEFfU0VUX1RZUEUoJm1zZy0+YXR0ciwgTk5QRlNfRklMRV9M TkspOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJ T04oMiw2LDI4KQ0KKwlYQV9TRVRfR0lEKCZtc2ctPmF0dHIsIGN1cnJlbnQt PmZzZ2lkKTsNCisjZWxzZQ0KKyAgICAgICAgWEFfU0VUX0dJRCgmbXNnLT5h dHRyLCBjdXJyZW50X2ZzZ2lkKCkpOw0KKyNlbmRpZg0KKw0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KKwlt c2ctPmNyZWQudWlkID0gY3VycmVudC0+dWlkOw0KKyNlbHNlDQorICAgICAg ICBtc2ctPmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCisJ bXNnLT5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWcoKTsNCisJZXJyb3IgPSBu bnBmc19tZXNzYWdlX3JwYyhubnBmc3AsICZtc2ctPmhlYWRlciwgc2l6ZW9m KCptc2cpKTsNCiAJaWYgKGVycm9yID09IDApDQotCSAgICBlcnJvciA9IE5O UEZTX01TR19XQUtFVVBfRVJST1IoJm1zZyk7DQorCSAgICBlcnJvciA9IE5O UEZTX01TR19XQUtFVVBfRVJST1IobXNnKTsNCiANCiAJLyogWFhYIHNob3Vs ZCB0aGlzIHJlYWxseSBiZSBoZXJlICovDQogCWlmIChERU5UUllfVE9fWERF TlRSWShkZW50cnkpLT54ZF9mbGFncyA9PSAwKSB7DQogCSAgICBwcmludGso S0VSTl9FTUVSRyAiTk5QRlMgUGFuaWM6IG5ucGZzX3N5bWxpbms6IGRlbnRy eSBub3QgdmFsaWRcbiIpOw0KIAl9DQorCWtmcmVlKG1zZyk7DQogICAgIH0N CiANCiAgICAgcmV0dXJuIGVycm9yOw0KQEAgLTExODgsMTIgKzEzNjUsMjEg QEAgc3RhdGljIGludCBubnBmc19zeW1saW5rKHN0cnVjdCBpbm9kZSAqZA0K IC8qDQogICogV2UgaG9sZCBpX211dGV4Lg0KICAqLw0KKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDExLDApDQogc3RhdGlj IGludA0KIG5ucGZzX3JlYWRkaXIoc3RydWN0IGZpbGUgKiBmaWxlLCB2b2lk ICogZGlyZW50LCBmaWxsZGlyX3QgZmlsbGRpcikNCisjZWxzZQ0KK3N0YXRp YyBpbnQNCitubnBmc19pdGVyYXRlKHN0cnVjdCBmaWxlICogZmlsZSwgc3Ry dWN0IGRpcl9jb250ZXh0ICpjdHgpDQorI2VuZGlmDQogew0KICAgICBpbnQg ZXJyb3I7DQogICAgIGxvZmZfdCBvZmZzZXQsIGJlZ2luX29mZnNldDsNCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSww KQ0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9kZW50cnkt PmRfaW5vZGU7DQorI2Vsc2UNCisgICAgc3RydWN0IGlub2RlICppbm9kZSA9 IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7DQorI2VuZGlmDQogICAg IHN0cnVjdCBpbm9kZSAqY2FjaGVfaW5vZGU7DQogICAgIHN0cnVjdCBubnBm c19ub2RlICp4biA9IFZOT0RFX1RPX1hOT0RFKGlub2RlKTsNCiAgICAgY2hh ciAqYnVmOw0KQEAgLTEyNjQsNiArMTQ1MCw3IEBAIG5ucGZzX3JlYWRkaXIo c3RydWN0IGZpbGUgKiBmaWxlLCB2b2lkICoNCiAJCSAgICAoaW50KSB4ZGly ZW50LT5kX25hbWxlbiwNCiAJCSAgICAoaW50KSAob2Zmc2V0K2JlZ2luX29m ZnNldCkpKTsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxMSwwKQ0KIAkgICAgaWYgKHhkaXJlbnQtPmRfZmlsZW5v ICE9IDANCiAJCSYmIChmaWxsZGlyX2Vycm9yID0gZmlsbGRpciAoZGlyZW50 LA0KIAkJCQkgICAgIHhkaXJlbnQtPmRfbmFtZSwNCkBAIC0xMjc1LDYgKzE0 NjIsMTggQEAgbm5wZnNfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbGUsIHZv aWQgKg0KIAkJCSAoIm5ucGZzX3JlYWRkaXIgZmlsbGRpcjogJWRcbiIsIGZp bGxkaXJfZXJyb3IpKTsNCiAJCWJyZWFrOw0KIAkgICAgfQ0KKyNlbHNlDQor CSAgICBpZiAoeGRpcmVudC0+ZF9maWxlbm8gIT0gMA0KKwkJJiYgKGZpbGxk aXJfZXJyb3IgPSBkaXJfZW1pdCAoY3R4LA0KKwkJCQkgICAgIHhkaXJlbnQt PmRfbmFtZSwNCisJCQkJICAgICB4ZGlyZW50LT5kX25hbWxlbiwNCisJCQkJ ICAgICB4ZGlyZW50LT5kX2ZpbGVubywNCisJCQkJICAgICBEVF9VTktOT1dO KSkgPCAwKSB7DQorCQlOTlBGU0RFQihYREVCUkVBRERJUiwNCisJCQkgKCJu bnBmc19yZWFkZGlyIGZpbGxkaXI6ICVkXG4iLCBmaWxsZGlyX2Vycm9yKSk7 DQorCQlicmVhazsNCisJICAgIH0NCisjZW5kaWYNCiAJICAgIG9mZnNldCAr PSB4ZGlyZW50LT5kX3JlY2xlbjsNCiANCiAJICAgIGlmICh4ZGlyZW50LT5k X3JlY2xlbiA9PSAwKSB7DQpAQCAtMTMzMSw5ICsxNTMwLDE1IEBAIG5ucGZz X3JlYWRsaW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGMNCiAgKiBXZSBk b24ndCBob2xkIGlfbXV0ZXguDQogICovDQogDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsMiwwKQ0KIHN0YXRpYyB2b2lk ICoNCiBubnBmc19mb2xsb3dfbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5 LA0KIAkJIHN0cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGlj IGNvbnN0IGNoYXIgKg0KK25ucGZzX2ZvbGxvd19saW5rIChzdHJ1Y3QgZGVu dHJ5ICpkZW50cnksDQorCQkgdm9pZCAqKnBhZ2UpDQorI2VuZGlmDQogew0K ICAgICBpbnQgZXJyb3IgPSAwOw0KICAgICBzdHJ1Y3QgaW5vZGUgKmlub2Rl ID0gREVOVFJZX1RPX0lOT0RFKGRlbnRyeSk7DQpAQCAtMTM0NCw3ICsxNTQ5 LDExIEBAIG5ucGZzX2ZvbGxvd19saW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50 cnkNCiAgICAgaWYgKGVycm9yKQ0KICAgICAgICByZXR1cm4gRVJSX1BUUihl cnJvcik7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDQsMiwwKQ0KICAgICByZXR1cm4gcGFnZV9mb2xsb3dfbGlua19s aWdodChkZW50cnksIG5kKTsNCisjZWxzZQ0KKyAgICByZXR1cm4gcGFnZV9m b2xsb3dfbGlua19saWdodChkZW50cnksIHBhZ2UpOw0KKyNlbmRpZg0KIH0N CiANCiAvKg0KQEAgLTEzOTgsNyArMTYwNywxMSBAQCBubnBmc19zZXRhdHRy IChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0DQogICAgICAgICBzdHJ1Y3Qg bm5wZnNfbWVzc2FnZV9wdXRhdHRyIG1zZzsNCiANCiAgICAgICAgIG1zZy5o ZWFkZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BVVEFUVFI7DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogCW1z Zy5jcmVkLnVpZCA9IGN1cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICAgICAg bXNnLmNyZWQudWlkID0gY3VycmVudF91aWQoKTsNCisjZW5kaWYNCiAJbXNn LmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KICAgICAgICAgbXNnLmhh bmRsZSA9IHhuLT5oYW5kbGU7DQogICAgICAgICBubnBmc19pYXR0cjJhdHRy KHhuLCBhdHRyLCAmbXNnLmF0dHIpOw0KQEAgLTE0MjIsNiArMTYzNSw4IEBA IG5ucGZzX3JlbGVhc2VfZmlsZSAoc3RydWN0IGlub2RlICppbm9kZSwNCiAg ICAgc3RydWN0IG5ucGZzX25vZGUgKnhuOw0KICAgICBpbnQgZXJyb3IgPSAw Ow0KIA0KKyAgICAodm9pZClubnBmc3A7DQorDQogICAgIE5OUEZTREVCKFhE RUJWTk9QUywgKCJubnBmc19yZWxlYXNlX2ZpbGVcbiIpKTsNCiANCiAgICAg ZXJyb3IgPSBubnBmc19pbm9kZV92YWxpZChpbm9kZSk7DQpAQCAtMTQ1MCwx OCArMTY2NSwxOCBAQCBubnBmc19yZWxlYXNlX2ZpbGUgKHN0cnVjdCBpbm9k ZSAqaW5vZGUsDQogICoNCiAgKi8NCiANCi0jaWYgTElOVVhfVkVSU0lPTl9D T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOCkNCiBzdGF0aWMgaW50DQog bm5wZnNfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUsIGZsX293bmVyX3QgaWQp DQotI2Vsc2UNCi1zdGF0aWMgaW50DQotbm5wZnNfZmx1c2goc3RydWN0IGZp bGUgKmZpbGUpDQotI2VuZGlmDQogew0KICAgICBOTlBGU0RFQihYREVCVk5P UFMsICgibm5wZnNfZmx1c2hcbiIpKTsNCiANCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KICAgICBpZiAoZmls ZSAmJiBmaWxlLT5mX2RlbnRyeSAmJiBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9k ZSkNCiAJcmV0dXJuIG5ucGZzX3JlbGVhc2VfZmlsZShmaWxlLT5mX2RlbnRy eS0+ZF9pbm9kZSwgZmlsZSk7DQorI2Vsc2UNCisgICAgaWYgKGZpbGUgJiYg ZmlsZS0+Zl9wYXRoLmRlbnRyeSAmJiBmaWxlLT5mX3BhdGguZGVudHJ5LT5k X2lub2RlKQ0KKwlyZXR1cm4gbm5wZnNfcmVsZWFzZV9maWxlKGZpbGUtPmZf cGF0aC5kZW50cnktPmRfaW5vZGUsIGZpbGUpOw0KKyNlbmRpZg0KICAgICBl bHNlDQogCXJldHVybiAwOw0KIH0NCkBAIC0xNDcwLDggKzE2ODUsMTMgQEAg bm5wZnNfZmx1c2goc3RydWN0IGZpbGUgKmZpbGUpDQogICogUmV0dXJuIDEg aWYgYGRlbnRyeScgaXMgc3RpbGwgdmFsaWQsIG90aGVyd2lzZSAwLg0KICAq Lw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDYsMCkNCiBzdGF0aWMgaW50DQotbm5wZnNfZF9yZXZhbGlkYXRlKHN0 cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IG5hbWVpZGF0YSAqbmQpIA0K K25ucGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0 cnVjdCBuYW1laWRhdGEgKm5kKQ0KKyNlbHNlDQorc3RhdGljIGludA0KK25u cGZzX2RfcmV2YWxpZGF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHVuc2ln bmVkIGludCBmbGFncykNCisjZW5kaWYNCiB7DQogICAgIHN0cnVjdCBpbm9k ZSAqaW5vZGUgPSBERU5UUllfVE9fSU5PREUoZGVudHJ5KTsNCiAgICAgTk5Q RlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2RfcmV2YWxpZGF0ZSAlcCBcIiUu KnNcIiAoaW5vZGUgJXApXG4iLA0KQEAgLTE1MTksOSArMTczOSwxNSBAQCBu bnBmc19kX3JldmFsaWRhdGUoc3RydWN0IGRlbnRyeSAqZGVudHJ5DQogICAg IHJldHVybiAwOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwg S0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KIHN0YXRpYw0KIGludA0KIG5ucGZz X2RfZGVsZXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkNCisjZWxzZQ0KK3N0 YXRpYw0KK2ludA0KK25ucGZzX2RfZGVsZXRlKGNvbnN0IHN0cnVjdCBkZW50 cnkgKmRlbnRyeSkNCisjZW5kaWYNCiB7DQogICAgIHN0cnVjdCBpbm9kZSAq aW5vZGU7DQogICAgIHN0cnVjdCBubnBmc19ub2RlICp4bjsNCkBAIC0xNTQ2 LDExICsxNzcyLDE2IEBAIG5ucGZzX2RfZGVsZXRlKHN0cnVjdCBkZW50cnkg KmRlbnRyeSkNCiB9DQogDQogc3RhdGljIHNzaXplX3QNCi1ubnBmc19zZW5k ZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90ICpwcG9zLCBzaXplX3Qg Y291bnQsDQotCSAgICAgICByZWFkX2FjdG9yX3QgYWN0b3IsIHZvaWQgKnRh cmdldCkNCitubnBmc19zcGxpY2VfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwg bG9mZl90ICpwcG9zLA0KKwkJICBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpw aXBlLCBzaXplX3QgY291bnQsDQorCQkgIHVuc2lnbmVkIGludCBmbGFncykN CiB7DQogICAgIGludCBlcnJvciA9IDA7DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAgICAgc3RydWN0IGlu b2RlICppbm9kZSA9IGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlOw0KKyNlbHNl DQorICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVu dHJ5LT5kX2lub2RlOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3Qgbm5wZnNfbm9k ZSAqeG4gPSBWTk9ERV9UT19YTk9ERShpbm9kZSk7DQogICAgIA0KICAgICBp ZiAoeG4gIT0gTlVMTCkNCkBAIC0xNTYxLDggKzE3OTIsNyBAQCBubnBmc19z ZW5kZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90DQogCU5OUEZTREVC KFhERUJWTk9QUywgKCJubnBmc19zZW5kZmlsZTogZGF0YSBub3QgdmFsaWQg JWRcbiIsIGVycm9yKSk7DQogCXJldHVybiBlcnJvcjsNCiAgICAgfQ0KLQ0K LSAgICBlcnJvciA9IGdlbmVyaWNfZmlsZV9zZW5kZmlsZShmaWxlLCBwcG9z LCBjb3VudCwgYWN0b3IsIHRhcmdldCk7DQorICAgIGVycm9yID0gZmlsZS0+ Zl9vcC0+c3BsaWNlX3JlYWQoZmlsZSwgcHBvcywgcGlwZSwgY291bnQsIGZs YWdzKTsNCiANCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX3Nl bmRmaWxlOiBlcnJvciA9ICVkXG4iLCBlcnJvcikpOw0KICAgICByZXR1cm4g ZXJyb3I7DQpAQCAtMTYzOSwzNCArMTg2OSwzMSBAQCBubnBmc193cml0ZV9i YWNrcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgDQogCXN0cnVjdCBhZGRyZXNz X3NwYWNlICptYXBwaW5nID0gYmFja2ZpbGUtPmZfbWFwcGluZzsNCiAJdW5z aWduZWQgbGVuID0gUEFHRV9DQUNIRV9TSVpFOw0KIAlzdHJ1Y3QgcGFnZSAq YmFja3BhZ2U7DQorCXZvaWQgKmZzZGF0YTsNCiAJdW5zaWduZWQgbG9uZyBv ZmZzZXQ7DQogDQogCWludCBlcnJvcjsNCiAJDQotCWRvIHsNCi0JCWJhY2tw YWdlID0gZ3JhYl9jYWNoZV9wYWdlKG1hcHBpbmcsIG5ucGZzX2dldF9iYWNr aW5kZXgocGFnZSkpOw0KLQkJaWYgKCFiYWNrcGFnZSkgew0KLQkJCXByaW50 aygibm5wZnNfd3JpdGVfYmFja3BhZ2U6IG5vIHBhZ2VcbiIpOw0KLQkJCXJl dHVybiAtRUlPOw0KLQkJfQ0KKwkodm9pZClvZmZzZXQ7DQogDQotCQllcnJv ciA9IG1hcHBpbmctPmFfb3BzLT5wcmVwYXJlX3dyaXRlKGJhY2tmaWxlLCBi YWNrcGFnZSwNCi0JCQkJCQkgICAgICAwLCBsZW4pOw0KKwlkbyB7DQorCQll cnJvciA9IHBhZ2VjYWNoZV93cml0ZV9iZWdpbihiYWNrZmlsZSwgbWFwcGlu ZywgMCwgbGVuLA0KKwkJCQkJICAgICAgQU9QX0ZMQUdfVU5JTlRFUlJVUFRJ QkxFLA0KKwkJCQkJICAgICAgJmJhY2twYWdlLCAmZnNkYXRhKTsNCiAJCWlm ICghZXJyb3IpIHsNCiAJCQljb3B5X2hpZ2hwYWdlKGJhY2twYWdlLCBwYWdl KTsNCiAJCQlmbHVzaF9kY2FjaGVfcGFnZShiYWNrcGFnZSk7DQotCQkJZXJy b3IgPSBtYXBwaW5nLT5hX29wcy0+Y29tbWl0X3dyaXRlKGJhY2tmaWxlLCBi YWNrcGFnZSwNCi0JCQkJCQkJICAgICAwLCBsZW4pOw0KKwkJCWVycm9yID0g cGFnZWNhY2hlX3dyaXRlX2VuZChiYWNrZmlsZSwgbWFwcGluZywgMCwgbGVu LA0KKwkJCQkJbGVuLCBiYWNrcGFnZSwgZnNkYXRhKTsNCisJCQlpZiAoZXJy b3IgPiAwKQ0KKwkJCQllcnJvciA9IDA7DQogCQl9DQogCQlpZiAoZXJyb3Ig PT0gQU9QX1RSVU5DQVRFRF9QQUdFKSB7DQotCQkJcGFnZV9jYWNoZV9yZWxl YXNlKGJhY2twYWdlKTsNCiAJCQljb250aW51ZTsNCiAJCX0NCiAJfSB3aGls ZSAoMCk7DQogDQogCW9mZnNldCA9IHBhZ2Vfb2Zmc2V0KGJhY2twYWdlKTsN Ci0JdW5sb2NrX3BhZ2UoYmFja3BhZ2UpOw0KLQlwYWdlX2NhY2hlX3JlbGVh c2UoYmFja3BhZ2UpOw0KIA0KIAlpZiAoZXJyb3IpDQogCQlwcmludGsoIm5u cGZzX3dyaXRlX2JhY2twYWdlOiBFSU9cbiIpOw0KQEAgLTE2ODksMTMgKzE5 MTYsOSBAQCBubnBmc19yZWFkX2JhY2twYWdlKHN0cnVjdCBwYWdlICpwYWdl LCBzDQogCXN0cnVjdCBwYWdlICpiYWNrcGFnZTsNCiAJdW5zaWduZWQgbG9u ZyBvZmZzZXQ7DQogDQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO RUxfVkVSU0lPTigyLDYsMTgpDQorCSh2b2lkKW9mZnNldDsNCisNCiAJYmFj a3BhZ2UgPSByZWFkX21hcHBpbmdfcGFnZShtYXBwaW5nLCBuLCBiYWNrZmls ZSk7DQotI2Vsc2UNCi0JYmFja3BhZ2UgPSByZWFkX2NhY2hlX3BhZ2UobWFw cGluZywgbiwNCi0JCQkJICAgKGZpbGxlcl90ICopbWFwcGluZy0+YV9vcHMt PnJlYWRwYWdlLA0KLQkJCQkgICBiYWNrZmlsZSk7DQotI2VuZGlmDQogCWlm ICghSVNfRVJSKGJhY2twYWdlKSkgew0KIAkJd2FpdF9vbl9wYWdlX2xvY2tl ZChiYWNrcGFnZSk7DQogDQpAQCAtMTg0MiwxMSArMjA2NSwxNyBAQCBubnBm c19wcmVwYXJlX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBzDQogDQogCWlm IChtb2RzaXplID4gaV9zaXplX3JlYWQoaW5vZGUpKSB7DQogCQlpbnQgZXJy b3I7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9O KDMsOCwwKQ0KIAkJZXJyb3IgPSB2bXRydW5jYXRlKGlub2RlLCBtb2RzaXpl KTsNCisjZWxzZQ0KKwkJZXJyb3IgPSBpbm9kZV9uZXdzaXplX29rKGlub2Rl LCBtb2RzaXplKTsNCisJCWlmKCFlcnJvcikNCisJCQl0cnVuY2F0ZV9zZXRz aXplKGlub2RlLCBtb2RzaXplKTsNCisjZW5kaWYNCiAJCWlmIChlcnJvcikg ew0KIAkJCXByaW50aygibm5wZnNfcHJlcGFyZV93cml0ZTogdHJ1bmNhdGUo JWxsdSkgLT4gJWRcbiIsDQogCQkJICAgICAgIG1vZHNpemUsIC1lcnJvcik7 DQotCQkJQlVHKCk7IC8qIFhYWCBub3QgY29ycmVjdCAqLw0KKwkJCS8qQlVH KCk7Ki8gLyogWFhYIG5vdCBjb3JyZWN0ICovDQogCQl9DQogCX0NCiANCkBA IC0xODcyLDggKzIxMDEsMzcgQEAgbm5wZnNfcHJlcGFyZV93cml0ZShzdHJ1 Y3QgZmlsZSAqZmlsZSwgcw0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkN CisNCitzdGF0aWMgaW50DQorbm5wZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZp bGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2Zm X3QgcG9zLA0KK3Vuc2lnbmVkIGxlbiwgdW5zaWduZWQgZmxhZ3MsIHN0cnVj dCBwYWdlICoqcGFnZXAsIHZvaWQgKipmc2RhdGEpDQorew0KKwlzdHJ1Y3Qg cGFnZSAqcGFnZTsNCisJcGdvZmZfdCBpbmRleDsNCisJdW5zaWduZWQgZnJv bTsNCisNCisJaW5kZXggPSBwb3MgPj4gUEFHRV9DQUNIRV9TSElGVDsNCisJ ZnJvbSA9IHBvcyAmIChQQUdFX0NBQ0hFX1NJWkUgLSAxKTsNCisNCisjaWZk ZWYgQU9QX0ZMQUdfTk9GUw0KKwlwYWdlID0gZ3JhYl9jYWNoZV9wYWdlX3dy aXRlX2JlZ2luKG1hcHBpbmcsIGluZGV4LCBmbGFncyk7DQorI2Vsc2UNCisJ cGFnZSA9IF9fZ3JhYl9jYWNoZV9wYWdlKG1hcHBpbmcsIGluZGV4KTsNCisj ZW5kaWYNCisJaWYgKHBhZ2UgPT0gTlVMTCkNCisJCXJldHVybiAtRU5PTUVN Ow0KKw0KKwkqcGFnZXAgPSBwYWdlOw0KKw0KKwlyZXR1cm4gbm5wZnNfcHJl cGFyZV93cml0ZShmaWxlLCBwYWdlLCBmcm9tLCBmcm9tICsgbGVuKTsNCit9 DQorDQorI2VuZGlmDQorDQogc3RhdGljIGludA0KLW5ucGZzX2NvbW1pdF93 cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsIHVu c2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKQ0KK25ucGZzX2NvbW1pdF93cml0 ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsDQorCQkg ICB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykNCiB7DQogICAgIHN0cnVj dCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0Ow0KICAgICBs b2ZmX3QgcG9zID0gKChsb2ZmX3QpcGFnZS0+aW5kZXggPDwgUEFHRV9DQUNI RV9TSElGVCkgKyB0bzsNCkBAIC0xOTAyLDE0ICsyMTYwLDUxIEBAIG5ucGZz X2NvbW1pdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3QNCiAgICAgcmV0 dXJuIDA7DQogfQ0KIA0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VS TkVMX1ZFUlNJT04oMiw2LDE4KQ0KLWNvbnN0DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQorDQorc3RhdGlj IGludA0KK25ucGZzX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3Ry dWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsDQorCQl1 bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwgc3RydWN0IHBhZ2UgKnBh Z2UsIHZvaWQgKmZzZGF0YSkNCit7DQorCXVuc2lnbmVkIGZyb20gPSBwb3Mg JiAoUEFHRV9DQUNIRV9TSVpFIC0gMSk7DQorDQorCS8qIHplcm8gdGhlIHN0 YWxlIHBhcnQgb2YgdGhlIHBhZ2UgaWYgd2UgZGlkIGEgc2hvcnQgY29weSAq Lw0KKwlpZiAoY29waWVkIDwgbGVuKSB7DQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KKwkJdm9pZCAqa2FkZHIg PSBrbWFwX2F0b21pYyhwYWdlLCBLTV9VU0VSMCk7DQorI2Vsc2UNCisJCXZv aWQgKmthZGRyID0ga21hcF9hdG9taWMocGFnZSk7DQorI2VuZGlmDQorCQlt ZW1zZXQoa2FkZHIgKyBmcm9tICsgY29waWVkLCAwLCBsZW4gLSBjb3BpZWQp Ow0KKwkJZmx1c2hfZGNhY2hlX3BhZ2UocGFnZSk7DQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KKwkJa3VubWFw X2F0b21pYyhrYWRkciwgS01fVVNFUjApOw0KKyNlbHNlDQorCQlrdW5tYXBf YXRvbWljKGthZGRyKTsNCiAjZW5kaWYNCisJfQ0KKw0KKwlubnBmc19jb21t aXRfd3JpdGUoZmlsZSwgcGFnZSwgZnJvbSwgZnJvbSArIGNvcGllZCk7DQor DQorCXVubG9ja19wYWdlKHBhZ2UpOw0KKwlwYWdlX2NhY2hlX3JlbGVhc2Uo cGFnZSk7DQorDQorCXJldHVybiBjb3BpZWQ7DQorfQ0KKw0KKyNlbmRpZg0K Kw0KK2NvbnN0DQogc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBu bnBmc19hb3BzID0gew0KIAkucmVhZHBhZ2UgPSBubnBmc19yZWFkcGFnZSwN CiAJLndyaXRlcGFnZSA9IG5ucGZzX3dyaXRlcGFnZSwNCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDI4KQ0KIAkucHJl cGFyZV93cml0ZSA9IG5ucGZzX3ByZXBhcmVfd3JpdGUsDQogCS5jb21taXRf d3JpdGUgPSBubnBmc19jb21taXRfd3JpdGUsDQorI2Vsc2UNCisJLndyaXRl X2JlZ2luID0gbm5wZnNfd3JpdGVfYmVnaW4sDQorCS53cml0ZV9lbmQgPSBu bnBmc193cml0ZV9lbmQsDQorI2VuZGlmDQogfTsNCiANCiAvKg0KQEAgLTE5 MTcsMjEgKzIyMTIsMzAgQEAgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0 aW9ucyBubnBmc19hbw0KICAqLw0KIA0KIHN0cnVjdCBmaWxlX29wZXJhdGlv bnMgbm5wZnNfZmlsZV9vcGVyYXRpb25zID0gew0KKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE2LDApDQogICAgIC5haW9f cmVhZAk9IG5ucGZzX2Fpb19yZWFkLA0KICAgICAuYWlvX3dyaXRlCT0gbm5w ZnNfYWlvX3dyaXRlLA0KKyNlbHNlDQorICAgIC5yZWFkX2l0ZXIJPSBubnBm c19yZWFkX2l0ZXIsDQorICAgIC53cml0ZV9pdGVyCT0gbm5wZnNfd3JpdGVf aXRlciwNCisjZW5kaWYNCiAgICAgLm1tYXAJPSBubnBmc19maWxlX21tYXAs DQogICAgIC5vcGVuCT0gbm5wZnNfb3BlbiwNCiAgICAgLmZsdXNoCT0gbm5w ZnNfZmx1c2gsDQogICAgIC5yZWxlYXNlCT0gbm5wZnNfcmVsZWFzZV9maWxl LA0KICAgICAuZnN5bmMJPSBubnBmc19mc3luYywNCi0gICAgLnNlbmRmaWxl CT0gbm5wZnNfc2VuZGZpbGUsDQorICAgIC5zcGxpY2VfcmVhZCA9IG5ucGZz X3NwbGljZV9yZWFkLA0KIH07DQogDQogc3RydWN0IGZpbGVfb3BlcmF0aW9u cyBubnBmc19kZWFkX29wZXJhdGlvbnMgPSB7DQogfTsNCiANCiBzdHJ1Y3Qg ZmlsZV9vcGVyYXRpb25zIG5ucGZzX2Rpcl9vcGVyYXRpb25zID0gew0KKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDExLDAp DQogICAgIC5yZWFkZGlyCT0gbm5wZnNfcmVhZGRpciwNCisjZWxzZQ0KKyAg ICAuaXRlcmF0ZSAgICA9IG5ucGZzX2l0ZXJhdGUsDQorI2VuZGlmDQogICAg IC5mbHVzaAk9IG5ucGZzX2ZsdXNoLA0KIH07DQogDQpkaWZmIC11cHJOIC1Y bm9kaWZmIGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfbG9hZC5j IGFybGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19sb2FkLmMNCi0tLSBhcmxh LTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX2xvYWQuYwkyMDA2LTEwLTMx IDExOjAyOjQxLjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9ubnBm cy9saW51eC9ubnBmc19sb2FkLmMJMjAxNi0wMS0xMyAyMDoxNDowMi4wMDAw MDAwMDAgKzAxMDANCkBAIC01NCw3ICs1NCwxMSBAQCBleHRlcm4gc3RydWN0 IGZpbGVfb3BlcmF0aW9ucyBubnBmc19mb3BzDQogDQogc3RydWN0IGZpbGVf c3lzdGVtX3R5cGUgbm5wZnNfZnNfdHlwZSA9IHsNCiAgICAgICAgbmFtZTog ICAgICAgICAgICJubnBmcyIsDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgICAgZ2V0X3NiOiAgICAg ICAgIG5ucGZzX2dldF9zYiwNCisjZWxzZQ0KKyAgICAgICBtb3VudDogICAg ICAgICAgbm5wZnNfbW91bnQsDQorI2VuZGlmDQogICAgICAgIGtpbGxfc2I6 ICAgICAgICBraWxsX2xpdHRlcl9zdXBlciwNCiAgICAgICAgb3duZXI6ICAg ICAgICAgIFRISVNfTU9EVUxFLA0KIH07DQpkaWZmIC11cHJOIC1Ybm9kaWZm IGFybGEtMC45MC1vbGQvbm5wZnMvbGludXgvbm5wZnNfbWVzc2FnZS5jIGFy bGEtMC45MC9ubnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMNCi0tLSBhcmxh LTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX21lc3NhZ2UuYwkyMDA3LTAx LTA5IDE3OjMzOjMxLjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9u bnBmcy9saW51eC9ubnBmc19tZXNzYWdlLmMJMjAxNi0wMS0xNCAxNjo1MDox NS4wMDAwMDAwMDAgKzAxMDANCkBAIC00NSw3ICs0NSw3IEBADQogI2luY2x1 ZGUgPGxpbnV4L21vdW50Lmg+DQogDQogI2lmZGVmIFJDU0lEDQotUkNTSUQo IiRJZDogbm5wZnNfbWVzc2FnZS5jLHYgMS4xNDMuMi4xIDIwMDcvMDEvMDkg MTY6MzM6MzEgdG9sIEV4cCAkIik7DQorUkNTSUQoIiRJZDogbm5wZnNfbWVz c2FnZS5jLHYgMS4xNDUgMjAxMC8wOC8wOCAyMDo0MzowNSB0b2wgRXhwICQi KTsNCiAjZW5kaWYNCiANCiBzdGF0aWMgdm9pZA0KQEAgLTU1LDkgKzU1LDE1 IEBAIHN0YXRpYyB2b2lkDQogbm5wZnNfZF9yZW1vdmUoc3RydWN0IGRlbnRy eSAqZGVudHJ5KQ0KIHsNCiAgICAgTk5QRlNERUIoWERFQk1TRywgKCJubnBm c19kX3JlbW92ZSAlcFxuIiwgZGVudHJ5KSk7DQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkNCiAgICAgc3Bpbl9s b2NrKCZkY2FjaGVfbG9jayk7DQogICAgIGRnZXRfbG9ja2VkKGRlbnRyeSk7 DQogICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisg ICAgc3Bpbl9sb2NrKCZkZW50cnktPmRfbG9jayk7DQorICAgIGRnZXRfZGxv Y2soZGVudHJ5KTsNCisgICAgc3Bpbl91bmxvY2soJmRlbnRyeS0+ZF9sb2Nr KTsNCisjZW5kaWYNCiAgICAgZF9kcm9wKGRlbnRyeSk7DQogICAgIGRwdXQo ZGVudHJ5KTsNCiB9DQpAQCAtMTIxLDcgKzEyNywxMSBAQCBubnBmc19tZXNz YWdlX2luc3RhbGxub2RlKHN0cnVjdCBubnBmcyAqDQogICAgIHN0cnVjdCBp bm9kZSAqZGksICppbm9kZTsNCiAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50 ID0gTlVMTDsNCiAgICAgc3RydWN0IHFzdHIgc3FzdHI7DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBz dHJ1Y3QgbGlzdF9oZWFkICphbGlhczsNCisjZWxpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDksMCkNCisgICAgc3RydWN0IGhs aXN0X25vZGUgKmFsaWFzOw0KKyNlbmRpZg0KICAgICANCiAgICAgTk5QRlNE RUIoWERFQk1TRywgKCJubnBmc19tZXNzYWdlX2luc3RhbGxub2RlXG4iKSk7 DQogICAgIA0KQEAgLTE3NiwxMiArMTg2LDI2IEBAIG5ucGZzX21lc3NhZ2Vf aW5zdGFsbG5vZGUoc3RydWN0IG5ucGZzICoNCiAgICAgICoNCiAgICAgICov DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDYsMCkNCiAgICAgYWxpYXMgPSBkaS0+aV9kZW50cnkubmV4dDsN CiAgICAgd2hpbGUgKGFsaWFzICE9ICZkaS0+aV9kZW50cnkpIHsNCiAJcGFy ZW50ID0gbGlzdF9lbnRyeShhbGlhcywgc3RydWN0IGRlbnRyeSwgZF9hbGlh cyk7DQotCXNwaW5fbG9jaygmZGNhY2hlX2xvY2spOw0KLQlkZ2V0X2xvY2tl ZChwYXJlbnQpOw0KLQlzcGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNl bGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsOSww KQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQsIGFsaWFzLCAm ZGktPmlfZGVudHJ5LCBkX2FsaWFzKSB7DQorI2VsaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKyAgICBobGlzdF9m b3JfZWFjaF9lbnRyeShwYXJlbnQsICZkaS0+aV9kZW50cnksIGRfYWxpYXMp IHsNCisjZWxzZQ0KKyAgICBobGlzdF9mb3JfZWFjaF9lbnRyeShwYXJlbnQs ICZkaS0+aV9kZW50cnksIGRfdS5kX2FsaWFzKSB7DQorI2VuZGlmDQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOCkN CisgICAgc3Bpbl9sb2NrKCZkY2FjaGVfbG9jayk7DQorICAgIGRnZXRfbG9j a2VkKHBhcmVudCk7DQorICAgIHNwaW5fdW5sb2NrKCZkY2FjaGVfbG9jayk7 DQorI2Vsc2UNCisgICAgc3Bpbl9sb2NrKCZwYXJlbnQtPmRfbG9jayk7DQor ICAgIGRnZXRfZGxvY2socGFyZW50KTsNCisgICAgc3Bpbl91bmxvY2soJnBh cmVudC0+ZF9sb2NrKTsNCisjZW5kaWYNCiAJZGVudHJ5ID0gZF9sb29rdXAo cGFyZW50LCAmc3FzdHIpOw0KIAlOTlBGU0RFQihYREVCTVNHLA0KIAkJICgi bm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZTogYWxpYXMgJXAsIGxvb2t1cCAl cFxuIiwNCkBAIC0yMzMsNyArMjU3LDkgQEAgbm5wZnNfbWVzc2FnZV9pbnN0 YWxsbm9kZShzdHJ1Y3Qgbm5wZnMgKg0KIAkNCiAJZHB1dChkZW50cnkpOw0K IAlkZW50cnkgPSBOVUxMOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigzLDYsMCkNCiAJYWxpYXMgPSBhbGlhcy0+bmV4dDsN CisjZW5kaWYNCiAJZHB1dChwYXJlbnQpOw0KICAgICB9DQogICAgIE5OUEZT REVCKFhERUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsbm9kZTogZG9u ZSBpbnN0YWxsaW5nXG4iKSk7DQpAQCAtMjY4LDcgKzI5NCwxMyBAQCBubnBm c19tZXNzYWdlX2luc3RhbGxhdHRyKHN0cnVjdCBubnBmcyAqDQogICAgIH0N CiANCiAgICAgaW5vZGUgPSBYTk9ERV9UT19WTk9ERSh0KTsNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAg IGRlbnRyeSA9IGxpc3RfZW50cnkoaW5vZGUtPmlfZGVudHJ5Lm5leHQsIHN0 cnVjdCBkZW50cnksIGRfYWxpYXMpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisgICAgZGVudHJ5ID0g aGxpc3RfZW50cnkoaW5vZGUtPmlfZGVudHJ5LmZpcnN0LCBzdHJ1Y3QgZGVu dHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKyAgICBkZW50cnkgPSBobGlzdF9l bnRyeShpbm9kZS0+aV9kZW50cnkuZmlyc3QsIHN0cnVjdCBkZW50cnksIGRf dS5kX2FsaWFzKTsNCisjZW5kaWYNCiAgICAgDQogICAgIE5OUEZTREVCKFhE RUJNU0csICgibm5wZnNfbWVzc2FnZV9pbnN0YWxsYXR0ciBuYW1lOiVzXG4i LA0KIAkJICAgICAgIGRlbnRyeS0+ZF9uYW1lLm5hbWUpKTsNCkBAIC0zOTYs MTcgKzQyOCwzNiBAQCBubnBmc19tZXNzYWdlX2luc3RhbGxkYXRhKHN0cnVj dCBubnBmcyAqDQogc3RhdGljIHZvaWQNCiBjbGVhcl9hbGxfY2hpbGRyZW4g KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBwYXJlbnQpDQogew0KKyAgICBz dHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBzdHJ1Y3QgbGlzdF9o ZWFkICphbGlhczsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDksMCkNCisgICAgc3RydWN0IGhsaXN0X25vZGUgKmFs aWFzOw0KKyNlbmRpZg0KIA0KICBhZ2FpbjoNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KICAgICBzcGluX2xv Y2soJmRjYWNoZV9sb2NrKTsNCisjZWxzZQ0KKyAgICAvKiBUT0RPOiBmaW5k IHRoZSBkZW50cnkgdG8gbG9jayAqLw0KKyAgICAvKnNwaW5fbG9jaygmZGVu dHJ5LT5kX2xvY2spOyovDQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05f Q09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBhbGlhcyA9IGlu b2RlLT5pX2RlbnRyeS5uZXh0Ow0KICAgICB3aGlsZSAoYWxpYXMgIT0gJmlu b2RlLT5pX2RlbnRyeSkgew0KLQlzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7DQor I2VsaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw5 LDApDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgYWxpYXMs ICZpbm9kZS0+aV9kZW50cnksIGRfYWxpYXMpIHsNCisjZWxpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAgIGhs aXN0X2Zvcl9lYWNoX2VudHJ5KGRlbnRyeSwgJmlub2RlLT5pX2RlbnRyeSwg ZF9hbGlhcykgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zvcl9lYWNoX2VudHJ5 KGRlbnRyeSwgJmlub2RlLT5pX2RlbnRyeSwgZF91LmRfYWxpYXMpIHsNCisj ZW5kaWYNCiAJc3RydWN0IGxpc3RfaGVhZCAqc3ViZGlyczsNCiAJc3RydWN0 IG5ucGZzX2RlbnRyeV9kYXRhICp4ZDsNCiAJDQorI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNiwwKQ0KIAlkZW50cnkgPSBs aXN0X2VudHJ5KGFsaWFzLCBzdHJ1Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisj ZW5kaWYNCiAJaWYgKGRlbnRyeSA9PSBOVUxMKSB7DQogCSAgICBwcmludGso S0VSTl9FTUVSRyAiTk5QRlMgUGFuaWM6IGRlbnRyeSBpbiBhbGlhcyBsaXN0 IGlzIG51bGxcbiIpOw0KIAkgICAgYnJlYWs7DQpAQCAtNDIyLDcgKzQ3Mywx MSBAQCBjbGVhcl9hbGxfY2hpbGRyZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUs DQogCXN1YmRpcnMgPSBkZW50cnktPmRfc3ViZGlycy5uZXh0Ow0KIAl3aGls ZSAoc3ViZGlycyAhPSAmZGVudHJ5LT5kX3N1YmRpcnMpIHsNCiAJICAgIHN0 cnVjdCBsaXN0X2hlYWQgKnRtcCA9IHN1YmRpcnM7DQorI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCiAJICAgIHN0 cnVjdCBkZW50cnkgKmNoaWxkID0gbGlzdF9lbnRyeSh0bXAsIHN0cnVjdCBk ZW50cnksIGRfdS5kX2NoaWxkKTsNCisjZWxzZQ0KKwkgICAgc3RydWN0IGRl bnRyeSAqY2hpbGQgPSBsaXN0X2VudHJ5KHRtcCwgc3RydWN0IGRlbnRyeSwg ZF9jaGlsZCk7DQorI2VuZGlmDQogCSAgICBzdWJkaXJzID0gdG1wLT5uZXh0 Ow0KIAkgICAgTk5QRlNERUIoWERFQk1TRywgKCJjbGVhcl9hbGxfY2hpbGRy ZW4gY2hpbGQ6ICUuKnMgaW5vZGU6ICVwLyVwICINCiAJCQkgICAgICAgImRj b3VudDogJWQgYWxpYXNlczpcbiIsDQpAQCAtNDQyLDE0ICs0OTcsMjYgQEAg Y2xlYXJfYWxsX2NoaWxkcmVuIChzdHJ1Y3QgaW5vZGUgKmlub2RlLA0KIA0K IAkgICAgLyogVGhyb3cgaW1tZWRpYXRlbHkgKi8NCiAJICAgIGlmIChubnBm c19kY291bnQoY2hpbGQpID09IDApIHsNCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KIAkgICAgICAgIHNwaW5f dW5sb2NrKCZkY2FjaGVfbG9jayk7DQorI2Vsc2UNCisJCS8qIFRPRE86IHVu bG9jayB0aGUgZGVudHJ5ICovDQorCQkvKnNwaW5fdW5sb2NrKCZkZW50cnkt PmRfbG9jayk7Ki8NCisjZW5kaWYNCiAJCW5ucGZzX2RfcmVtb3ZlKGNoaWxk KTsNCiAJCWdvdG8gYWdhaW47DQogCSAgICB9DQogCX0NCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogCWFsaWFz ID0gYWxpYXMtPm5leHQ7DQorI2VuZGlmDQogICAgIH0NCisjaWYgTElOVVhf VkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM4KQ0KICAgICBz cGluX3VubG9jaygmZGNhY2hlX2xvY2spOw0KKyNlbHNlDQorICAgIC8qIFRP RE86IHVubG9jayB0aGUgZGVudHJ5ICovDQorICAgIC8qc3Bpbl91bmxvY2so JmRlbnRyeS0+ZF9sb2NrKTsqLw0KKyNlbmRpZg0KIH0NCiANCiBzdGF0aWMg dm9pZA0KQEAgLTYwNSwxMiArNjcyLDEwIEBAIGdjX2Jsb2NrKHN0cnVjdCBu bnBmcyAqbm5wZnNwLA0KICAgICB9DQogDQogICAgIGlmICghbm5wZnNfYmxv Y2tfaGF2ZV9wKHhuLCBvZmZzZXQpKSB7DQotI2lmIDAgICAvKiBoYXBwZW5z IHdoZW4gZGFlbW9uIHNlbmRzIHNldmVyYWwgbWVzc2FnZXMgZm9yIHNhbWUg YmxvY2sgKi8NCiAJcHJpbnRrKEtFUk5fRU1FUkcgIk5OUEZTL2djX2Jsb2Nr OiAiDQogCSAgICAgICAiRU5PRU5UICglZCwlZCwlZCwlZCkgMHglbGx4XG4i LCANCiAJICAgICAgIHhuLT5oYW5kbGUuYSwgeG4tPmhhbmRsZS5iLCB4bi0+ aGFuZGxlLmMsIHhuLT5oYW5kbGUuZCwgDQogCSAgICAgICAodW5zaWduZWQg bG9uZyBsb25nKW9mZnNldCk7DQotI2VuZGlmDQogCXJldHVybiAtRU5PRU5U Ow0KICAgICB9DQogDQpAQCAtNzIxLDEyICs3ODYsMjIgQEAgbm5wZnNfbWVz c2FnZV92ZXJzaW9uKHN0cnVjdCBubnBmcyAqbm5wZg0KIA0KICAgICAvKiBz YW5pdHkgY2hlY2sgYmVmb3JlIHdlIGxvb2sgYXQgaXQgKi8NCiAgICAgaWYg KHNpemUgPT0gc2l6ZW9mKCptZXNzYWdlKSAmJiBtZXNzYWdlLT52ZXJzaW9u ID09IE5OUEZTX1ZFUlNJT04pIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KIAlzdHJ1Y3QgbmFtZWlkYXRh IG5kOw0KKyNlbHNlDQorCXN0cnVjdCBwYXRoIHBhdGg7DQorI2VuZGlmDQog CWludCBlcnJvcjsNCiANCiAJdWludDY0X3QgYmxvY2tzaXplID0gbWVzc2Fn ZS0+YmxvY2tzaXplOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigyLDYsMzkpDQogCWVycm9yID0gcGF0aF9sb29rdXAo Ii4iLCAwLCAmbmQpOw0KKyNlbGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsMTksMCkNCisJZXJyb3IgPSBrZXJuX3BhdGgoIi4i LCAwLCAmbmQucGF0aCk7DQorI2Vsc2UNCisJZXJyb3IgPSBrZXJuX3BhdGgo Ii4iLCAwLCAmcGF0aCk7DQorI2VuZGlmDQogCWlmIChlcnJvcikgew0KIAkg ICAgLyoNCiAJICAgICAqIEJhZCBjYWNoZSByb290LCBqdXN0IHJldHVybi4N CkBAIC03MzcsMTIgKzgxMiwyMyBAQCBubnBmc19tZXNzYWdlX3ZlcnNpb24o c3RydWN0IG5ucGZzICpubnBmDQogCQkgICAibm5wZnNfbWVzc2FnZV92ZXJz aW9uIGZhaWxlZCBwYXRoX2xvb2t1cCwgIg0KIAkJICAgImVycm5vOiAlZFxu IiwgZXJyb3IpOw0KIAl9IGVsc2Ugew0KLQkgICAgbm5wZnNwLT5jYWNoZXJv b3QgPSBtbnRnZXQobmQubW50KTsNCi0JICAgIG5ucGZzcC0+Y2FjaGVkaXIg PSBkZ2V0KG5kLmRlbnRyeSk7DQotCSAgICBwYXRoX3JlbGVhc2UoJm5kKTsN CisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywx OSwwKQ0KKwkgICAgbm5wZnNwLT5jYWNoZXJvb3QgPSBtbnRnZXQobmQucGF0 aC5tbnQpOw0KKwkgICAgbm5wZnNwLT5jYWNoZWRpciA9IGRnZXQobmQucGF0 aC5kZW50cnkpOw0KKwkgICAgcGF0aF9wdXQoJm5kLnBhdGgpOw0KKyNlbHNl DQorCSAgICBubnBmc3AtPmNhY2hlcm9vdCA9IG1udGdldChwYXRoLm1udCk7 DQorCSAgICBubnBmc3AtPmNhY2hlZGlyID0gZGdldChwYXRoLmRlbnRyeSk7 DQorCSAgICBwYXRoX3B1dCgmcGF0aCk7DQorI2VuZGlmDQogCSAgICANCisj aWYgTElOVVhfVkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwy OCkNCiAJICAgIG5ucGZzcC0+dWlkID0gY3VycmVudC0+ZnN1aWQ7DQogCSAg ICBubnBmc3AtPmdpZCA9IGN1cnJlbnQtPmZzZ2lkOw0KKyNlbHNlDQorICAg ICAgICAgICAgbm5wZnNwLT51aWQgPSBjdXJyZW50X2ZzdWlkKCk7DQorICAg ICAgICAgICAgbm5wZnNwLT5naWQgPSBjdXJyZW50X2ZzZ2lkKCk7DQorI2Vu ZGlmDQogDQogCSAgICAvKiBYWFggd2Ugc2hvdWxkIHZhbGlkYXRlIHRoZXNl IHZhbHVlcyAqLw0KIAkgICAgbm5wZnNfYmxvY2tzaXplID0gYmxvY2tzaXpl Ow0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2xp bnV4L25ucGZzX25vZGUuYyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNf bm9kZS5jDQotLS0gYXJsYS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19u b2RlLmMJMjAwNy0wMS0wMyAxNDo1MjowMi4wMDAwMDAwMDAgKzAxMDANCisr KyBhcmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfbm9kZS5jCTIwMTYtMDEt MTQgMTY6NTE6MTEuMDAwMDAwMDAwICswMTAwDQpAQCAtMTMyLDcgKzEzMiwx MiBAQCBubnBmc19zZXRzaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHVpbnQ2 DQogCXByaW50aygibm5wZnNfc2V0c2l6ZTogdHJ1bmNhdGluZyBAMHglbGx1 XG4iLA0KIAkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylzaXplKTsNCiAj ZW5kaWYNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJ T04oMyw4LDApDQogCXZtdHJ1bmNhdGUoaW5vZGUsIHNpemUpOyAvKiBYWFgg cmV0dmFsICovDQorI2Vsc2UNCisJaWYoIWlub2RlX25ld3NpemVfb2soaW5v ZGUsIHNpemUpKQ0KKwkgICAgdHJ1bmNhdGVfc2V0c2l6ZShpbm9kZSwgc2l6 ZSk7DQorI2VuZGlmDQogCW5ucGZzX2Jsb2NrX3RydW5jYXRlKHhuLCBzaXpl KTsNCiAgICAgfQ0KIH0NCkBAIC0xNTAsOSArMTU1LDE4IEBAIG5ucGZzX2F0 dHIyaW5vZGUoY29uc3Qgc3RydWN0IG5ucGZzX2F0dHINCiAJc3RydWN0IHRp bWVzcGVjIG5vdGltZSA9IHswfTsNCiANCiAJaW5vZGUtPmlfbW9kZSAgID0g MDsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04o MywxNCwwKQ0KIAlpbm9kZS0+aV91aWQgICAgPSAwOw0KIAlpbm9kZS0+aV9n aWQgICAgPSAwOw0KKyNlbHNlDQorCWlub2RlLT5pX3VpZCAgICA9IEtVSURU X0lOSVQoMCk7DQorCWlub2RlLT5pX2dpZCAgICA9IEtHSURUX0lOSVQoMCk7 DQorI2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMiwwKQ0KIAlpbm9kZS0+aV9ubGluayAgPSAxOw0KKyNlbHNl DQorCXNldF9ubGluayhpbm9kZSwgMSk7DQorI2VuZGlmDQogCWlub2RlLT5p X2F0aW1lICA9IG5vdGltZTsNCiAJaW5vZGUtPmlfbXRpbWUgID0gbm90aW1l Ow0KIAlpbm9kZS0+aV9jdGltZSAgPSBub3RpbWU7DQpAQCAtMTY5LDcgKzE4 MywxMSBAQCBubnBmc19hdHRyMmlub2RlKGNvbnN0IHN0cnVjdCBubnBmc19h dHRyDQogICAgIGlmIChYQV9WQUxJRF9HSUQoYXR0cikpDQogCWlub2RlLT5p X2dpZCAgICA9IGF0dHItPnhhX2dpZDsNCiAgICAgaWYgKFhBX1ZBTElEX05M SU5LKGF0dHIpKQ0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDIsMCkNCiAJaW5vZGUtPmlfbmxpbmsgID0gYXR0ci0+eGFf bmxpbms7DQorI2Vsc2UNCisJc2V0X25saW5rKGlub2RlLCBhdHRyLT54YV9u bGluayk7DQorI2VuZGlmDQogICAgIA0KICAgICBpZiAoWEFfVkFMSURfU0la RShhdHRyKSkgew0KIAlubnBmc19zZXRzaXplKGlub2RlLCBhdHRyLT54YV9z aXplKTsNCkBAIC01MTAsMTIgKzUyOCwyNCBAQCBubnBmc19oYXNfcGFnKGNv bnN0IHN0cnVjdCBubnBmc19ub2RlICp4DQogaW50DQogbm5wZnNfbm9kZV91 c2VycyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQogICAgIHN0cnVj dCBsaXN0X2hlYWQgKnBvczsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgaGxpc3Rf bm9kZSAqcG9zOw0KKyNlbmRpZg0KICAgICBpbnQgdXNlcnMgPSAwOw0KICAg ICANCiAgICAgLyogWFhYIHRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHByb3Rl Y3RlZCBzb21laG93ICovDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDMsNiwwKQ0KICAgICBsaXN0X2Zvcl9lYWNoKHBvcywg Jmlub2RlLT5pX2RlbnRyeSkgew0KKyNlbHNlDQorICAgIGhsaXN0X2Zvcl9l YWNoKHBvcywgJmlub2RlLT5pX2RlbnRyeSkgew0KKyNlbmRpZg0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQog CXN0cnVjdCBkZW50cnkgKmRlbnRyeSA9IGxpc3RfZW50cnkocG9zLCBzdHJ1 Y3QgZGVudHJ5LCBkX2FsaWFzKTsNCisjZWxzZQ0KKwlzdHJ1Y3QgZGVudHJ5 ICpkZW50cnkgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0IGRlbnRyeSwgZF91 LmRfYWxpYXMpOw0KKyNlbmRpZg0KIAlpZiAobm5wZnNfZGNvdW50KGRlbnRy eSkgPiAxKQ0KIAkgICAgdXNlcnMrKzsNCiAgICAgfQ0KZGlmZiAtdXByTiAt WG5vZGlmZiBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2Nh bGxzLmMgYXJsYS0wLjkwL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLmMN Ci0tLSBhcmxhLTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3N5c2NhbGxz LmMJMjAwNy0wMS0wMyAxNToyNjoyNy4wMDAwMDAwMDAgKzAxMDANCisrKyBh cmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMuYwkyMDE2LTAx LTE0IDE3OjAwOjIwLjAwMDAwMDAwMCArMDEwMA0KQEAgLTQyLDcgKzQyLDkg QEANCiAjaW5jbHVkZSA8bm5wZnMvbm5wZnNfc3lzY2FsbHMuaD4NCiAjaW5j bHVkZSA8bm5wZnMvbm5wZnNfY29tbW9uLmg+DQogI2luY2x1ZGUgPGxpbnV4 L2ZpbGUuaD4NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMiw2LDM5KQ0KICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPg0K KyNlbmRpZg0KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4NCiAjaW5jbHVkZSA8 bGludXgvcHJvY19mcy5oPg0KIA0KQEAgLTUwLDYgKzUyLDExIEBADQogI2lu Y2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+DQogI2VuZGlmDQogDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigzLDcsMCkNCisj dW5kZWYgU1lTQ0FMTEhBQ0sNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xv d2VyX2JvdW5kJyBkb2VzIG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxh dGVyLCBzZSBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMgKi8NCisjZW5kaWYN CisNCiAjaWYgMA0KICNpZmRlZiBDT05GSUdfQ09NUEFUDQogI2luY2x1ZGUg PGxpbnV4L2lvY3RsMzIuaD4NCkBAIC02NCw3ICs3MSw3IEBADQogI3VuZGVm IE5FRURfVklDRUlPQ1RMMzINCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgi JElkOiBubnBmc19zeXNjYWxscy5jLHYgMS4xMjIgMjAwNy8wMS8wMyAxNDoy NjoyNyB0b2wgRXhwICQiKTsNCitSQ1NJRCgiJElkOiBubnBmc19zeXNjYWxs cy5jLHYgMS4xMjUgMjAxMC8wOC8wOCAyMDo0MzowNiB0b2wgRXhwICQiKTsN CiAjZW5kaWYNCiANCiBzdGF0aWMgc3RydWN0IHByb2NfZGlyX2VudHJ5ICpu bnBmc19wcm9jZnNfZGlyOw0KQEAgLTgyLDEyICs4OSwyMiBAQCB0eXBlZGVm IHN0cnVjdCBhZnNwcm9jZGF0YSB7DQogICAgIHVuc2lnbmVkIGxvbmcgc3lz Y2FsbDsNCiB9IGFmc3Byb2NkYXRhOw0KIA0KKyNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMzYpDQogc3RhdGljIGludA0K IG5ucGZzX3Byb2Nmc19pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1 Y3QgZmlsZSAqZmlsZSwNCiAJCSAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2ln bmVkIGxvbmcgYXJnKTsNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNf cHJvY2ZzX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWdu ZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOw0KKyNlbmRpZg0KIA0K IHN0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG5ucGZzX3Byb2Nmc19m b3BzID0gew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigyLDYsMzYpDQogICAgIC5pb2N0bCA9IG5ucGZzX3Byb2Nmc19pb2N0 bCwNCisjZWxzZQ0KKyAgICAudW5sb2NrZWRfaW9jdGwgPSBubnBmc19wcm9j ZnNfaW9jdGwsDQorI2VuZGlmDQogfTsNCiANCiANCkBAIC0xNDcsNTMgKzE2 NCw0OCBAQCBzdGF0aWMgaW50IG5ucGZzX3NlY19yZWdpc3RlcmVkID0gMDsN CiAjZGVmaW5lIFNFQzJQQUcocykgKG5ucGZzX3BhZ190KSh1bnNpZ25lZCBs b25nKShzKQ0KICNkZWZpbmUgUEFHMlNFQyhwKSAodm9pZCAqKSh1bnNpZ25l ZCBsb25nKShwKQ0KIA0KLXN0YXRpYyBpbnQNCi1ubnBmc19zZWNfdGFza19h bGxvYyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApDQotew0KLSAgICBubnBmc19w YWdfdCBwYWcgPSBTRUMyUEFHKGN1cnJlbnQtPnNlY3VyaXR5KTsNCi0gICAg aWYgKHBhZykNCi0JcC0+c2VjdXJpdHkgPSBQQUcyU0VDKHBhZyk7DQotICAg IHJldHVybiAwOw0KLX0NCi0NCi1zdGF0aWMgdm9pZA0KLW5ucGZzX3NlY190 YXNrX2ZyZWUoc3RydWN0IHRhc2tfc3RydWN0ICpwKQ0KLXsNCi0gICAgbm5w ZnNfcGFnX3QgcGFnID0gU0VDMlBBRyhwLT5zZWN1cml0eSk7DQotICAgIGlm IChwYWcpDQotCXAtPnNlY3VyaXR5ID0gTlVMTDsNCi19DQotDQogc3RhdGlj IG5ucGZzX3BhZ190DQogbm5wZnNfZ2V0X3BhZ19zZWModm9pZCkNCiB7DQor I2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYs MjgpDQogICAgIG5ucGZzX3BhZ190IHBhZyA9IFNFQzJQQUcoY3VycmVudC0+ c2VjdXJpdHkpOw0KKyNlbHNlDQorICAgIG5ucGZzX3BhZ190IHBhZyA9IFNF QzJQQUcoY3VycmVudF9zZWN1cml0eSgpKTsNCisjZW5kaWYNCiAgICAgaWYg KHBhZykNCiAJcmV0dXJuIHBhZzsNCiANCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsNiwyOCkNCiAgICAgcmV0dXJuIGN1 cnJlbnQtPnVpZDsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE0LDApDQorICAgIHJldHVybiBjdXJyZW50X3VpZCgp Ow0KKyNlbHNlDQorICAgIHsga3VpZF90IGt1aWQgPSBjdXJyZW50X3VpZCgp OyByZXR1cm4ga3VpZC52YWw7IH0NCisjZW5kaWYNCiB9DQogDQogc3RhdGlj IGludA0KIG5ucGZzX3NldF9wYWdfc2VjKHZvaWQpDQogew0KICAgICBzdGF0 aWMgbm5wZnNfcGFnX3QgcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07DQorI2lm IExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMjkp DQorICAgIHN0cnVjdCBjcmVkICpjcmVkOw0KKyNlbmRpZg0KIA0KICAgICBp ZiAocGFnbnVtID09IE5OUEZTX1BBR19VTElNKQ0KIAlyZXR1cm4gLUVOT01F TTsNCiAgICAgLyogcGFnbnVtID0gTk5QRlNfUEFHX0xMSU07ICovDQogICAg IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04o Miw2LDI4KQ0KICAgICBjdXJyZW50LT5zZWN1cml0eSA9IFBBRzJTRUMocGFn bnVtKTsNCisjZWxzZQ0KKyAgICBjcmVkID0gKHN0cnVjdCBjcmVkICopIGN1 cnJlbnQtPmNyZWQ7DQorICAgIGNyZWQtPnNlY3VyaXR5ID0gUEFHMlNFQyhw YWdudW0pOw0KKyNlbmRpZg0KICAgICBwYWdudW0rKzsNCiAgICAgcmV0dXJu IDA7DQogfQ0KIA0KLXN0YXRpYyBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9u cyBubnBmc19zZWNfb3BzID0gew0KLSAgICAudGFza19hbGxvY19zZWN1cml0 eSA9IG5ucGZzX3NlY190YXNrX2FsbG9jLA0KLSAgICAudGFza19mcmVlX3Nl Y3VyaXR5ID0gbm5wZnNfc2VjX3Rhc2tfZnJlZSwNCi0vLyAgICAudGFza19y ZXBhcmVudF90b19pbml0ID0gbm5wZnNfc2VjX3JlcGFyZW50X3RvX2luaXQs DQotfTsNCi0NCiAjZW5kaWYgLyogQ09ORklHX1NFQ1VSSVRZICovDQogDQog I2lmZGVmIEdST1VQUEFHUw0KQEAgLTIwNiw3ICsyMTgsMTIgQEAgZmluZF9w YWcoc3RydWN0IGdyb3VwX2luZm8gKmdpKQ0KICAgICBOTlBGU0RFQihYREVC U1lTLCAoImZpbmRfcGFnOiBuZ3JvdXBzID0gJWRcbiIsIGdpLT5uZ3JvdXBz KSk7DQogDQogICAgIGZvciAoaSA9IGdpLT5uZ3JvdXBzIC0gMTsgaSA+PSAw OyBpLS0pIHsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMywxNCwwKQ0KIAlnaWRfdCBncm91cCA9IEdST1VQX0FUKGdpLCBp KTsNCisjZWxzZQ0KKwlrZ2lkX3Qga2dyb3VwID0gR1JPVVBfQVQoZ2ksIGkp Ow0KKwlnaWRfdCBncm91cCA9IGtncm91cC52YWw7DQorI2VuZGlmDQogCWlm ICgobm5wZnNfcGFnX3QpZ3JvdXAgPj0gTk5QRlNfUEFHX0xMSU0gJiYgKG5u cGZzX3BhZ190KWdyb3VwIDwgTk5QRlNfUEFHX1VMSU0pIHsNCiAJICAgIE5O UEZTREVCKFhERUJTWVMsDQogCQkgICAgICgiZmluZF9wYWc6IEV4aXN0aW5n IHBhZyAldSBhdCBwb3MgJXVcbiIsIGdyb3VwLCBpKSk7DQpAQCAtMjIyLDE1 ICsyMzksMzEgQEAgZmluZF9wYWcoc3RydWN0IGdyb3VwX2luZm8gKmdpKQ0K IHN0YXRpYyBubnBmc19wYWdfdA0KIG5ucGZzX2dldF9wYWdfZ3JvdXAodm9p ZCkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVS U0lPTigyLDYsMjgpDQogICAgIHN0cnVjdCBncm91cF9pbmZvICpnaSA9IGN1 cnJlbnQtPmdyb3VwX2luZm87DQogICAgIG5ucGZzX3BhZ190IHJldCA9IGN1 cnJlbnQtPnVpZDsNCisjZWxzZQ0KKyAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAq Z2kgPSBnZXRfY3VycmVudF9ncm91cHMoKTsNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KKyAgICBubnBmc19w YWdfdCByZXQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbHNlDQorICAgIGt1aWRf dCBrdWlkID0gY3VycmVudF91aWQoKTsNCisgICAgbm5wZnNfcGFnX3QgcmV0 ID0ga3VpZC52YWw7DQorI2VuZGlmDQorI2VuZGlmDQogICAgIGludCBpOw0K IA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gS0VSTkVMX1ZFUlNJT04o Miw2LDI4KQ0KICAgICBnZXRfZ3JvdXBfaW5mbyhnaSk7DQorI2VuZGlmDQog DQogICAgIGkgPSBmaW5kX3BhZyhnaSk7DQogICAgIGlmIChpICE9IE5OUEZT X1BBR19OT1RGT1VORCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMywxNCwwKQ0KIAlyZXQgPSBHUk9VUF9BVChnaSwgaSk7 DQorI2Vsc2UNCisJeyBrZ2lkX3Qga2dpZCA9IEdST1VQX0FUKGdpLCBpKTsg cmV0ID0ga2dpZC52YWw7IH0NCisjZW5kaWYNCiANCiAgICAgcHV0X2dyb3Vw X2luZm8oZ2kpOw0KIA0KQEAgLTI0MiwxMyArMjc1LDE5IEBAIG5ucGZzX2dl dF9wYWdfZ3JvdXAodm9pZCkNCiBzdGF0aWMgaW50DQogc3RvcmVfcGFnKG5u cGZzX3BhZ190IHBhZ251bSkNCiB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09E RSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQogICAgIHN0cnVjdCBncm91 cF9pbmZvICpvbGRfZ2kgPSBjdXJyZW50LT5ncm91cF9pbmZvOw0KKyNlbHNl DQorICAgc3RydWN0IGdyb3VwX2luZm8gKm9sZF9naSA9IGdldF9jdXJyZW50 X2dyb3VwcygpOw0KKyNlbmRpZg0KICAgICBzdHJ1Y3QgZ3JvdXBfaW5mbyAq bmV3X2dpOw0KLSAgICBpbnQgbmJsb2NrcywgY291bnQ7DQorICAgIHVuc2ln bmVkIGludCBuYmxvY2tzLCBjb3VudDsNCiAgICAgaW50IGZvdW5kID0gMDsN CiAgICAgaW50IGksIGs7DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPD0gS0VSTkVMX1ZFUlNJT04oMiw2LDI4KSAgICANCiAgICAgZ2V0X2dy b3VwX2luZm8ob2xkX2dpKTsNCisjZW5kaWYNCiANCiAgICAgaSA9IGZpbmRf cGFnKG9sZF9naSk7DQogICAgIGlmIChpICE9IE5OUEZTX1BBR19OT1RGT1VO RCkNCkBAIC0yNzQsMTAgKzMxMywxNyBAQCBzdG9yZV9wYWcobm5wZnNfcGFn X3QgcGFnbnVtKQ0KIAljb3VudCAtPSBOR1JPVVBTX1BFUl9CTE9DSzsNCiAg ICAgfQ0KIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigzLDE0LDApDQogICAgIGlmIChmb3VuZCkNCiAJR1JPVVBfQVQobmV3 X2dpLCBpKSA9IHBhZ251bTsNCiAgICAgZWxzZQ0KIAlHUk9VUF9BVChuZXdf Z2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0gcGFnbnVtOw0KKyNlbHNlDQor ICAgIGlmIChmb3VuZCkNCisJeyBrZ2lkX3Qga2dpZCA9IEtHSURUX0lOSVQo cGFnbnVtKTsgR1JPVVBfQVQobmV3X2dpLCBpKSA9IGtnaWQ7IH0NCisgICAg ZWxzZQ0KKwl7IGtnaWRfdCBrZ2lkID0gS0dJRFRfSU5JVChwYWdudW0pOyBH Uk9VUF9BVChuZXdfZ2ksIG5ld19naS0+bmdyb3VwcyAtIDEpID0ga2dpZDsg fQ0KKyNlbmRpZg0KICAgICANCiAgICAgc2V0X2N1cnJlbnRfZ3JvdXBzKG5l d19naSk7DQogICAgIHB1dF9ncm91cF9pbmZvKG5ld19naSk7DQpAQCAtMzE3 LDcgKzM2MywxMyBAQCBubnBmc19nZXRfcGFnKCkNCiAgICAgcmV0dXJuIG5u cGZzX2dldF9wYWdfZ3JvdXAoKTsNCiAjZW5kaWYgLyogR1JPVVBQQUdTICov DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lP TigyLDYsMjgpDQogICAgIHJldHVybiBjdXJyZW50LT51aWQ7DQorI2VsaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0K KyAgICByZXR1cm4gY3VycmVudF91aWQoKTsNCisjZWxzZQ0KKyAgICB7IGt1 aWRfdCBrdWlkID0gY3VycmVudF91aWQoKTsgcmV0dXJuIGt1aWQudmFsOyB9 DQorI2VuZGlmDQogfQ0KIA0KIHN0YXRpYyBpbmxpbmUgaW50DQpAQCAtNDIy LDcgKzQ3NCw3IEBAIG5ucGZzX3NldGdyb3VwczE2IChpbnQgZ2lkc2V0c2l6 ZSwgb2xkX2cNCiAjZW5kaWYgLyogU1lTQ0FMTEhBQ0sgKi8NCiAjZW5kaWYg LyogR1JPVVBQQUdTICovDQogDQotc3RydWN0IGZpbGVfaGFuZGxlIHsNCitz dHJ1Y3Qgbm5wZnNfZmlsZV9oYW5kbGUgew0KICAgICBubnBmc19kZXZfdCBk ZXY7DQogICAgIGlub190IGlub2RlOw0KICAgICBfX3UzMiBnZW47DQpAQCAt NTA5LDE0ICs1NjEsMjcgQEAgbm5wZnNfZGVidWdfcHJpbnQgKHN0cnVjdCBh cmxhVmljZUlvY3RsIA0KICAqIGZvbGxvdyBzeW1saW5rcyBpZmYgYGZvbGxv dycNCiAgKi8NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMywxOSwwKQ0KIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICoNCiB1 c2VyX3BhdGgyZGVudHJ5IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwgY2hhciAq dXNlcl9wYXRoLCBpbnQgZm9sbG93KQ0KKyNlbHNlDQorc3RhdGljIHN0cnVj dCBkZW50cnkgKg0KK3VzZXJfcGF0aDJkZW50cnkgKHN0cnVjdCBwYXRoICpw YXRoLCBjaGFyICp1c2VyX3BhdGgsIGludCBmb2xsb3cpDQorI2VuZGlmDQog ew0KLSAgICBjaGFyICprbmFtZTsNCiAgICAgaW50IGZsYWdzID0gMDsNCiAg ICAgaW50IGVycm9yID0gMDsNCiANCi0gICAga25hbWUgPSBnZXRuYW1lICh1 c2VyX3BhdGgpOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigzLDcsMCkNCisgICAgY2hhciAqa25hbWU7DQorICAgIGtuYW1l ID0gZ2V0bmFtZSh1c2VyX3BhdGgpOw0KKyNlbHNlDQorICAgIGNvbnN0IGNo YXIgKmtuYW1lOw0KKyAgICBzdHJ1Y3QgZmlsZW5hbWUgKmZuYW1lOw0KKyAg ICBmbmFtZSA9IGdldG5hbWUodXNlcl9wYXRoKTsNCisgICAga25hbWUgPSBm bmFtZS0+bmFtZTsNCisjZW5kaWYNCisNCiAgICAgaWYgKElTX0VSUihrbmFt ZSkpDQogCXJldHVybiBFUlJfUFRSKFBUUl9FUlIoa25hbWUpKTsNCiAgICAg aWYgKGZvbGxvdykNCkBAIC01MjQsMTEgKzU4OSwyNSBAQCB1c2VyX3BhdGgy ZGVudHJ5IChzdHJ1Y3QgbmFtZWlkYXRhICpuZCwgDQogDQogICAgIE5OUEZT REVCKFhERUJNU0csICgibm5wZnNfc3lzY2FsbDogbG9va2luZyB1cDogJXNc biIsIGtuYW1lKSk7DQogDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtF Uk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAgZXJyb3IgPSBwYXRoX2xvb2t1 cChrbmFtZSwgZmxhZ3MsIG5kKTsNCisjZWxpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAgIGVycm9yID0ga2Vy bl9wYXRoKGtuYW1lLCBmbGFncywgJihuZC0+cGF0aCkpOw0KKyNlbHNlDQor ICAgIGVycm9yID0ga2Vybl9wYXRoKGtuYW1lLCBmbGFncywgcGF0aCk7DQor I2VuZGlmDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJT SU9OKDMsNywwKQ0KICAgICBwdXRuYW1lKGtuYW1lKTsNCisjZWxzZQ0KKyAg ICBrbWVtX2NhY2hlX2ZyZWUobmFtZXNfY2FjaGVwLCAodm9pZCAqKWtuYW1l KTsNCisjZW5kaWYNCiAgICAgaWYgKGVycm9yKQ0KIAlyZXR1cm4gRVJSX1BU UihlcnJvcik7DQotICAgIHJldHVybiBuZC0+ZGVudHJ5Ow0KKyNpZiBMSU5V WF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5LDApDQorICAg IHJldHVybiBuZC0+cGF0aC5kZW50cnk7DQorI2Vsc2UNCisgICAgcmV0dXJu IHBhdGgtPmRlbnRyeTsNCisjZW5kaWYNCiB9DQogDQogYXNtbGlua2FnZSBs b25nDQpAQCAtNTQwLDEyICs2MTksMjQgQEAgc3lzX2Fmc19pbnQgKGludCBv cGVyYXRpb24sDQogew0KICAgICBsb25nIGVycm9yID0gMDsNCiAgICAgc3Ry dWN0IGFybGFWaWNlSW9jdGwgdmljZV9pb2N0bDsgDQotICAgIHN0cnVjdCBu bnBmc19tZXNzYWdlX3Bpb2N0bCBtc2c7DQorICAgIHN0cnVjdCBubnBmc19t ZXNzYWdlX3Bpb2N0bCAqbXNnID0gTlVMTDsNCiAgICAgc3RydWN0IG5ucGZz X21lc3NhZ2Vfd2FrZXVwICptc2cyOw0KICAgICBzdHJ1Y3QgZGVudHJ5ICpk ZW50cnkgPSBOVUxMOw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigzLDE5LDApDQogICAgIHN0cnVjdCBuYW1laWRhdGEgbmQ7 DQorI2Vsc2UNCisgICAgc3RydWN0IHBhdGggcGF0aDsNCisjZW5kaWYNCiAg ICAgDQorICAgIG1zZyA9IGttYWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfS0VS TkVMKTsNCisgICAgaWYgKG1zZyA9PSBOVUxMKQ0KKyAgICAgIHJldHVybiAt RU5PTUVNOw0KKw0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxf VkVSU0lPTigyLDYsMzkpDQogICAgIGxvY2tfa2VybmVsKCk7DQorI2Vsc2UN CisgICAgLyogVE9ETzogbG9ja19rZXJuZWwoKSBpcyByZW1vdmVkLCBjb25z aWRlciBhZGRpbmcgYW4gcHJpdmF0ZSBsb2NrICovDQorI2VuZGlmDQogDQog ICAgIE5OUEZTREVCKFhERUJTWVMsICgic3lzX2FmcyBrZXJuZWwgbG9ja2Vk XG4iKSk7DQogDQpAQCAtNTc1LDcgKzY2Niw3IEBAIHN5c19hZnNfaW50IChp bnQgb3BlcmF0aW9uLA0KIAkgICAgZ290byB1bmxvY2s7DQogCX0NCiAJaWYg KHZpY2VfaW9jdGwuaW5fc2l6ZSAhPSAwKSB7DQotCSAgICBpZihjb3B5X2Zy b21fdXNlcigmbXNnLm1zZywNCisJICAgIGlmKGNvcHlfZnJvbV91c2VyKCZt c2ctPm1zZywNCiAJCQkgICAgICB2aWNlX2lvY3RsLmluLA0KIAkJCSAgICAg IHZpY2VfaW9jdGwuaW5fc2l6ZSkgIT0gMCkgew0KIAkJZXJyb3IgPSAtRUZB VUxUOw0KQEAgLTU4Myw3ICs2NzQsMTEgQEAgc3lzX2Fmc19pbnQgKGludCBv cGVyYXRpb24sDQogCSAgICB9DQogCX0NCiAJaWYgKGFfcGF0aFAgIT0gTlVM TCkgew0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lP TigzLDE5LDApDQogCSAgICBkZW50cnkgPSB1c2VyX3BhdGgyZGVudHJ5ICgm bmQsIGFfcGF0aFAsIGFfZm9sbG93U3ltbGlua3MpOw0KKyNlbHNlDQorCSAg ICBkZW50cnkgPSB1c2VyX3BhdGgyZGVudHJ5ICgmcGF0aCwgYV9wYXRoUCwg YV9mb2xsb3dTeW1saW5rcyk7DQorI2VuZGlmDQogCSAgICBpZiAoIWRlbnRy eSkgew0KIAkJZXJyb3IgPSAtRUlOVkFMOw0KIAkJZ290byB1bmxvY2s7DQpA QCAtNjI4LDE5ICs3MjMsMjMgQEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRp b24sDQogCQllcnJvciA9IC1FSU5WQUw7DQogCQlnb3RvIHVubG9jazsNCiAJ ICAgIH0NCi0JICAgIG1zZy5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KKwkgICAg bXNnLT5oYW5kbGUgPSB4bi0+aGFuZGxlOw0KIAl9DQogDQotCW1zZy5oZWFk ZXIub3Bjb2RlID0gTk5QRlNfTVNHX1BJT0NUTDsNCi0JbXNnLm9wY29kZSA9 IGFfb3Bjb2RlOw0KKwltc2ctPmhlYWRlci5vcGNvZGUgPSBOTlBGU19NU0df UElPQ1RMOw0KKwltc2ctPm9wY29kZSA9IGFfb3Bjb2RlOw0KIAkNCi0JbXNn Lmluc2l6ZSAgID0gdmljZV9pb2N0bC5pbl9zaXplOw0KLQltc2cub3V0c2l6 ZSAgPSB2aWNlX2lvY3RsLm91dF9zaXplOw0KLQltc2cuY3JlZC51aWQgPSBj dXJyZW50LT51aWQ7DQotCW1zZy5jcmVkLnBhZyA9IG5ucGZzX2dldF9wYWco KTsNCisJbXNnLT5pbnNpemUgICA9IHZpY2VfaW9jdGwuaW5fc2l6ZTsNCisJ bXNnLT5vdXRzaXplICA9IHZpY2VfaW9jdGwub3V0X3NpemU7DQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8PSBLRVJORUxfVkVSU0lPTigyLDYsMjgpDQor CW1zZy0+Y3JlZC51aWQgPSBjdXJyZW50LT51aWQ7DQorI2Vsc2UNCisgICAg ICAgIG1zZy0+Y3JlZC51aWQgPSBjdXJyZW50X3VpZCgpOw0KKyNlbmRpZg0K Kwltc2ctPmNyZWQucGFnID0gbm5wZnNfZ2V0X3BhZygpOw0KIAkNCi0JZXJy b3IgPSBubnBmc19tZXNzYWdlX3JwYygmbm5wZnNbMF0sICZtc2cuaGVhZGVy LCBzaXplb2YobXNnKSk7IC8qIFhYWCAqLw0KLQltc2cyID0gKHN0cnVjdCBu bnBmc19tZXNzYWdlX3dha2V1cCAqKSAmbXNnOw0KKwllcnJvciA9IG5ucGZz X21lc3NhZ2VfcnBjKCZubnBmc1swXSwgJm1zZy0+aGVhZGVyLCBzaXplb2Yo Km1zZykpOyAvKiBYWFggKi8NCisJbXNnMiA9IChzdHJ1Y3Qgbm5wZnNfbWVz c2FnZV93YWtldXAgKikgbXNnOw0KIAlpZiAoZXJyb3IgPT0gMCkNCiAJICAg IGVycm9yID0gbXNnMi0+ZXJyb3I7DQogDQpAQCAtNjc1LDEyICs3NzQsMjEg QEAgc3lzX2Fmc19pbnQgKGludCBvcGVyYXRpb24sDQogICAgIA0KICB1bmxv Y2s6DQogICAgIGlmIChkZW50cnkpDQotCXBhdGhfcmVsZWFzZSgmbmQpOw0K KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDE5 LDApDQorCXBhdGhfcHV0KCZuZC5wYXRoKTsNCisjZWxzZQ0KKwlwYXRoX3B1 dCgmcGF0aCk7DQorI2VuZGlmDQogDQogICAgIE5OUEZTREVCKFhERUJTWVMs ICgibm5wZnNfc3lzY2FsbCByZXR1cm5zIGVycm9yOiAlbGRcbiIsIGVycm9y KSk7DQogDQogICAgIE5OUEZTREVCKFhERUJTWVMsICgic3lzX2FmcyBrZXJu ZWwgdW5sb2NrXG4iKSk7DQorICAgIGtmcmVlKG1zZyk7DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsNiwzOSkNCiAgICAg dW5sb2NrX2tlcm5lbCgpOw0KKyNlbHNlDQorICAgIC8qIFRPRE86IHNlZSB0 aGUgY29tbWVudCBhdCBsb2NrX2tlcm5lbCgpIGFib3ZlICovDQorI2VuZGlm DQogDQogICAgIHJldHVybiBlcnJvcjsNCiB9DQpAQCAtNzI5LDkgKzgzNywx NSBAQCBzeXNfYWZzIChpbnQgb3BlcmF0aW9uLA0KIAkJICAgICAgIGFfZm9s bG93U3ltbGlua3MpOw0KIH0NCiANCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF IDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM2KQ0KIHN0YXRpYyBpbnQNCiBubnBm c19wcm9jZnNfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZp bGUgKmZpbGUsDQogCQkgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBs b25nIGFyZykNCisjZWxzZQ0KK3N0YXRpYyBsb25nDQorbm5wZnNfcHJvY2Zz X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLA0KKwkJICAgdW5zaWduZWQgaW50 IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpDQorI2VuZGlmDQogew0KICAgICBh ZnNwcm9jZGF0YSBhcmdzOw0KICAgICBsb25nIHJldDsNCkBAIC03ODAsMjEg Kzg5NCwzMSBAQCBzdGF0aWMgaW50IG5ucGZzX2luaXRfcHJvY2ZzKHZvaWQp DQogew0KICAgICBzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKmVudHJ5Ow0KICAg ICANCi0gICAgbm5wZnNfcHJvY2ZzX2RpciA9IHByb2NfbWtkaXIoTk5QRlNf UFJPQ19ESVIsIHByb2Nfcm9vdF9mcyk7DQorICAgIG5ucGZzX3Byb2Nmc19k aXIgPSBwcm9jX21rZGlyKCJmcy8iIE5OUEZTX1BST0NfRElSLCBOVUxMKTsN CiAgICAgaWYgKG5ucGZzX3Byb2Nmc19kaXIgPT0gTlVMTCkNCiAJcmV0dXJu IC1FTk9NRU07DQogICAgIA0KKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigyLDYsMzApDQogICAgIG5ucGZzX3Byb2Nmc19kaXIt Pm93bmVyID0gVEhJU19NT0RVTEU7DQorI2VuZGlmDQogICAgIA0KKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigzLDEwLDApDQog ICAgIGVudHJ5ID0gY3JlYXRlX3Byb2NfZW50cnkoTk5QRlNfUFJPQ19OT0RF LCAwNjY2LCBubnBmc19wcm9jZnNfZGlyKTsNCisjZWxzZQ0KKyAgICBlbnRy eSA9IHByb2NfY3JlYXRlKE5OUEZTX1BST0NfTk9ERSwgMDY2NiwgTlVMTCwg Jm5ucGZzX3Byb2Nmc19mb3BzKTsNCisjZW5kaWYNCiAgICAgaWYgKGVudHJ5 ID09IE5VTEwpIHsNCiAJTk5QRlNERUIoWERFQlNZUywgKCJubnBmc19pbml0 X3Byb2Nmczogbm8gbm9kZVxuIikpOw0KLQlyZW1vdmVfcHJvY19lbnRyeShO TlBGU19QUk9DX0RJUiwgcHJvY19yb290X2ZzKTsNCisJcmVtb3ZlX3Byb2Nf ZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIsIE5VTEwpOw0KIAlyZXR1cm4g LUVOT01FTTsNCiAgICAgfQ0KICAgICANCisjaWYgTElOVVhfVkVSU0lPTl9D T0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDMwKQ0KICAgICBlbnRyeS0+b3du ZXIgPSBUSElTX01PRFVMRTsNCisjZW5kaWYNCisjaWYgTElOVVhfVkVSU0lP Tl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxMCwwKQ0KICAgICBlbnRyeS0+ cHJvY19mb3BzID0gJm5ucGZzX3Byb2Nmc19mb3BzOw0KKyNlbmRpZg0KIA0K ICNpZmRlZiBTWVNDQUxMQ09NUEFUDQogICAgIGlmIChyZWdpc3Rlcl9pb2N0 bDMyX2NvbnZlcnNpb24oQVJMQV9WSU9DX1NZU0NBTEwzMiwgbm5wZnNfcHJv Y2ZzX2lvY3RsMzIpKSB7DQpAQCAtODE1LDcgKzkzOSw3IEBAIHN0YXRpYyB2 b2lkIG5ucGZzX2V4aXRfcHJvY2ZzKHZvaWQpDQogICAgIH0NCiAjZW5kaWYg LyogU1lTQ0FMTENPTVBBVCAqLw0KICAgICByZW1vdmVfcHJvY19lbnRyeShO TlBGU19QUk9DX05PREUsIG5ucGZzX3Byb2Nmc19kaXIpOw0KLSAgICByZW1v dmVfcHJvY19lbnRyeShOTlBGU19QUk9DX0RJUiwgcHJvY19yb290X2ZzKTsN CisgICAgcmVtb3ZlX3Byb2NfZW50cnkoImZzLyIgTk5QRlNfUFJPQ19ESVIs IE5VTEwpOw0KIH0NCiANCiAjaWZkZWYgR1JPVVBQQUdTDQpAQCAtODM5LDE0 ICs5NjMsNiBAQCBpbnN0YWxsX3NldGdyb3Vwcyh2b2lkKQ0KIHZvaWQNCiBp bnN0YWxsX2Fmc19zeXNjYWxsKHZvaWQpDQogew0KLSNpZmRlZiBDT05GSUdf U0VDVVJJVFkNCi0gICAgaWYgKHJlZ2lzdGVyX3NlY3VyaXR5KCZubnBmc19z ZWNfb3BzKSkNCi0JTk5QRlNERUIoWERFQlNZUywNCi0JCSAoImluc3RhbGxf YWZzX3N5c2NhbGw6IG5ucGZzX2luaXRfc2VjIGZhaWxlZFxuIikpOw0KLSAg ICBlbHNlDQotCW5ucGZzX3NlY19yZWdpc3RlcmVkID0gMTsNCi0jZW5kaWYN Ci0NCiAgICAgbm5wZnNfaW5pdF9wcm9jZnMoKTsNCiANCiAjaWZkZWYgU1lT Q0FMTEhBQ0sNCkBAIC04ODcsMTIgKzEwMDMsNiBAQCByZXN0b3JlX2Fmc19z eXNjYWxsICh2b2lkKQ0KICNlbmRpZg0KICNlbmRpZiAvKiBTWVNDQUxMSEFD SyAqLw0KIA0KLSNpZmRlZiBDT05GSUdfU0VDVVJJVFkNCi0gICAgaWYgKG5u cGZzX3NlY19yZWdpc3RlcmVkKQ0KLQlpZiAodW5yZWdpc3Rlcl9zZWN1cml0 eSgmbm5wZnNfc2VjX29wcykpDQotCSAgICBwcmludGsoS0VSTl9FTUVSRyAi bm5wZnNfZXhpdF9zZWM6IGNvdWxkbid0IHVucmVnaXN0ZXJcbiIpOw0KLSNl bmRpZiAvKiAhQ09ORklHX1NFQ1VSSVRZICovDQotDQogI2lmZGVmIEdST1VQ UEFHUw0KICNpZmRlZiBTWVNDQUxMSEFDSw0KICAgICBpZiAob2xkX3NldGdy b3Vwcykgew0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxhLTAuOTAtb2xkL25u cGZzL2xpbnV4L25ucGZzX3N5c2NhbGxzLWxvc3NhZ2UuYyBhcmxhLTAuOTAv bm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5jDQotLS0gYXJs YS0wLjkwLW9sZC9ubnBmcy9saW51eC9ubnBmc19zeXNjYWxscy1sb3NzYWdl LmMJMjAwNi0xMi0xMSAxNzozMTo0NS4wMDAwMDAwMDAgKzAxMDANCisrKyBh cmxhLTAuOTAvbm5wZnMvbGludXgvbm5wZnNfc3lzY2FsbHMtbG9zc2FnZS5j CTIwMTYtMDEtMTMgMjE6NTE6NDkuMDAwMDAwMDAwICswMTAwDQpAQCAtNDcs MTEgKzQ3LDIwIEBADQogI2luY2x1ZGUgPGxpbnV4L3VuaXN0ZC5oPg0KIA0K ICNpZmRlZiBSQ1NJRA0KLVJDU0lEKCIkSWQ6IG5ucGZzX3N5c2NhbGxzLWxv c3NhZ2UuYyx2IDEuMTcgMjAwNi8xMi8xMSAxNjozMTo0NSB0b2wgRXhwICQi KTsNCitSQ1NJRCgiJElkOiBubnBmc19zeXNjYWxscy1sb3NzYWdlLmMsdiAx LjE5IDIwMTAvMDgvMDggMjA6NDM6MDUgdG9sIEV4cCAkIik7DQorI2VuZGlm DQorDQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lP TigzLDcsMCkNCisvKiB0aGUgbWV0aG9kIHRvIHJlYWQgJ2xvd2VyX2JvdW5k JyBkb2VzIG5vdCB3b3JrIG9uIGtlcm5lbCAzLjcgYW5kIGxhdGVyICovDQor I3VuZGVmIFNZU0NBTExIQUNLDQogI2VuZGlmDQogDQogI2luY2x1ZGUgPGxp bnV4L2thbGxzeW1zLmg+DQorI2lmZGVmIFNZU0NBTExIQUNLDQorI2lmIExJ TlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsNywwKQ0KIHN0 YXRpYyB2b2lkICpsb3dlcl9ib3VuZCA9ICZrZXJuZWxfdGhyZWFkOw0KKyNl bmRpZg0KKyNlbmRpZg0KIA0KIHZvaWQgKiBfX2F0dHJpYnV0ZV9fKCh3ZWFr KSkgc3lzX2NhbGxfdGFibGUodm9pZCk7DQogbm5wZnNfc3lzX2NhbGxfZnVu Y3Rpb24gKm5ucGZzX3N5c19jYWxsX3RhYmxlID0NCkBAIC02Myw2ICs3Miwx MSBAQCBjb25zdCBjaGFyICogX19hdHRyaWJ1dGVfXygod2VhaykpDQogCQkg ICAgdW5zaWduZWQgbG9uZyAqb2Zmc2V0LA0KIAkJICAgIGNoYXIgKiptb2Ru YW1lLCBjaGFyICpuYW1lYnVmKTsNCiANCisjaWZkZWYgX194ODZfNjRfXw0K K2V4dGVybiByd2xvY2tfdCB0YXNrbGlzdF9sb2NrIF9fYXR0cmlidXRlX18o KHdlYWspKTsNCisjZW5kaWYNCisNCisjaWZkZWYgU1lTQ0FMTEhBQ0sNCiBz dGF0aWMgdm9pZCAqKg0KIGdldF9zdGFydF9hZGRyKHZvaWQpIHsNCiAjaWZk ZWYgX194ODZfNjRfXw0KQEAgLTcxLDYgKzg1LDcgQEAgZ2V0X3N0YXJ0X2Fk ZHIodm9pZCkgew0KICAgICByZXR1cm4gKHZvaWQgKiopJm11dGV4X2xvY2s7 DQogI2VuZGlmDQogfQ0KKyNlbmRpZg0KIA0KIHN0YXRpYyBpbmxpbmUgaW50 IA0KIGthbGxzeW1faXNfZXF1YWwodW5zaWduZWQgbG9uZyBhZGRyLCBjb25z dCBjaGFyICpuYW1lKQ0KQEAgLTEzOSw2ICsxNTQsOCBAQCB2ZXJpZnkodm9p ZCAqKnApIHsNCiAgICAgcmV0dXJuIDE7DQogfQ0KIA0KKyNpZmRlZiBTWVND QUxMSEFDSw0KKw0KIHN0YXRpYyBpbmxpbmUgaW50IGxvb2tzX2dvb2Qodm9p ZCAqKnApDQogew0KICAgICBpZiAoKnAgPD0gKHZvaWQqKWxvd2VyX2JvdW5k IHx8ICpwID49ICh2b2lkKilwKQ0KQEAgLTE4OCwzICsyMDUsNSBAQCBubnBm c19maXh1cF9zeXNjYWxsX2xvc3NhZ2Uodm9pZCkNCiANCiAgICAgcmV0dXJu IDA7DQogfQ0KKw0KKyNlbmRpZg0KZGlmZiAtdXByTiAtWG5vZGlmZiBhcmxh LTAuOTAtb2xkL25ucGZzL2xpbnV4L25ucGZzX3Zmc29wcy5jIGFybGEtMC45 MC9ubnBmcy9saW51eC9ubnBmc192ZnNvcHMuYw0KLS0tIGFybGEtMC45MC1v bGQvbm5wZnMvbGludXgvbm5wZnNfdmZzb3BzLmMJMjAwNi0xMi0xMSAxNzo0 MzozNS4wMDAwMDAwMDAgKzAxMDANCisrKyBhcmxhLTAuOTAvbm5wZnMvbGlu dXgvbm5wZnNfdmZzb3BzLmMJMjAxNi0wMS0xNCAxNzoxMzoxOC4wMDAwMDAw MDAgKzAxMDANCkBAIC00NCwzMCArNDQsMjYgQEANCiAjaW5jbHVkZSA8bGlu dXgvbW0uaD4NCiANCiAjaWZkZWYgUkNTSUQNCi1SQ1NJRCgiJElkOiBubnBm c192ZnNvcHMuYyx2IDEuMTA5IDIwMDYvMTIvMTEgMTY6NDM6MzUgdG9sIEV4 cCAkIik7DQorUkNTSUQoIiRJZDogbm5wZnNfdmZzb3BzLmMsdiAxLjExMSAy MDEwLzA4LzA4IDIwOjQzOjA2IHRvbCBFeHAgJCIpOw0KICNlbmRpZg0KIA0K IHN0cnVjdCBubnBmcyBubnBmc1tOTk5QRlNdOw0KIA0KLXN0YXRpYyB2b2lk IG5ucGZzX3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSk7DQogc3Rh dGljIHZvaWQgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAq c2IpOw0KLXN0YXRpYyB2b2lkIG5ucGZzX3B1dF9pbm9kZShzdHJ1Y3QgaW5v ZGUgKmlub2RlKTsNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMyw2LDApDQogc3RhdGljIHZvaWQgbm5wZnNfd3JpdGVfc3Vw ZXIoc3RydWN0IHN1cGVyX2Jsb2NrICogc2IpOw0KKyNlbmRpZg0KIA0KLSNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE4 KQ0KIHN0YXRpYyBpbnQgbm5wZnNfc3RhdGZzKHN0cnVjdCBkZW50cnkgKmRl bnRyeSwgc3RydWN0IGtzdGF0ZnMgKmJ1Zik7DQotI2Vsc2UNCi1zdGF0aWMg aW50IG5ucGZzX3N0YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1 Y3Qga3N0YXRmcyAqYnVmKTsNCi0jZW5kaWYNCiANCiBzdGF0aWMgc3RydWN0 IHN1cGVyX29wZXJhdGlvbnMgbm5wZnNfc29wcyA9IHsgDQotICAgIHJlYWRf aW5vZGUJCTogbm5wZnNfcmVhZF9pbm9kZSwNCi0gICAgcHV0X2lub2RlCQk6 IG5ucGZzX3B1dF9pbm9kZSwNCiAgICAgYWxsb2NfaW5vZGUJCTogbm5wZnNf bm9kZV9hbGxvYywNCiAgICAgZGVzdHJveV9pbm9kZQk6IG5ucGZzX25vZGVf ZnJlZSwNCiAgICAgZHJvcF9pbm9kZQkJOiBnZW5lcmljX2RlbGV0ZV9pbm9k ZSwNCiAgICAgcHV0X3N1cGVyCQk6IG5ucGZzX3B1dF9zdXBlciwNCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQog ICAgIHdyaXRlX3N1cGVyCQk6IG5ucGZzX3dyaXRlX3N1cGVyLA0KKyNlbmRp Zg0KICAgICBzdGF0ZnMJCTogbm5wZnNfc3RhdGZzLA0KIH07DQogDQpAQCAt OTQsNyArOTAsMTEgQEAgbm5wZnNfZmV0Y2hfcm9vdChzdHJ1Y3QgaW5vZGUg KmkpDQogCSAqIHJvb3QncyBwcml2aWxpZ2VzICh1c3VhbGx5IG5vbmUsIGFu ZCBub25lIGlzIG5lZWRlZCkuDQogCSAqLw0KIAkNCisjaWYgTElOVVhfVkVS U0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxNCwwKQ0KIAltc2cuY3Jl ZC51aWQgPSAwOw0KKyNlbHNlDQorCW1zZy5jcmVkLnVpZCA9IEtVSURUX0lO SVQoMCk7DQorI2VuZGlmDQogCW1zZy5jcmVkLnBhZyA9IDA7DQogCQ0KIAll cnJvciA9IG5ucGZzX21lc3NhZ2VfcnBjKG5ucGZzcCwgJm1zZy5oZWFkZXIs IHNpemVvZihtc2cpKTsNCkBAIC0xMjksOCArMTI5LDEzIEBAIG1ha2Vfcm9v dF9pbm9kZShzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCkNCiAgICAgWEFfU0VUX01P REUoJm5vZGUuYXR0ciwgU19JRkRJUiB8IDA3NzcpOw0KICAgICBYQV9TRVRf TkxJTksoJm5vZGUuYXR0ciwgMTAwKTsNCiAgICAgWEFfU0VUX1NJWkUoJm5v ZGUuYXR0ciwgMCk7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5F TF9WRVJTSU9OKDMsMTQsMCkNCiAgICAgWEFfU0VUX1VJRCgmbm9kZS5hdHRy LCAwKTsNCiAgICAgWEFfU0VUX0dJRCgmbm9kZS5hdHRyLCAwKTsNCisjZWxz ZQ0KKyAgICBYQV9TRVRfVUlEKCZub2RlLmF0dHIsIEtVSURUX0lOSVQoMCkp Ow0KKyAgICBYQV9TRVRfR0lEKCZub2RlLmF0dHIsIEtHSURUX0lOSVQoMCkp Ow0KKyNlbmRpZg0KICAgICBYQV9TRVRfQVRJTUUoJm5vZGUuYXR0ciwgMCk7 DQogICAgIFhBX1NFVF9NVElNRSgmbm9kZS5hdHRyLCAwKTsNCiAgICAgWEFf U0VUX0NUSU1FKCZub2RlLmF0dHIsIDApOw0KQEAgLTE1OSw3ICsxNjQsMTEg QEAgbWFrZV9yb290IChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQ0KICAgICBu bnBmcy0+cm9vdCA9IGlub2RlOw0KIA0KICAgICAvKiBYWFggZXJyb3IgaGFu ZGxpbmcgKi8NCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZF UlNJT04oMyw0LDApDQogICAgIGRwID0gZF9hbGxvY19yb290KGlub2RlKTsN CisjZWxzZQ0KKyAgICBkcCA9IGRfbWFrZV9yb290KGlub2RlKTsNCisjZW5k aWYNCiAgICAgbm5wZnNfZF9pbml0KGRwKTsNCiAgICAgc2ItPnNfcm9vdCA9 IGRwOw0KICAgICByZXR1cm4gMDsNCkBAIC0xODMsMTMgKzE5MiwyNyBAQCBu bnBmc19yZWFkX3N1cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiBzDQogICAg IE5OUEZTREVCKFhERUJWRk9QUywgKCJubnBmc19yZWFkX3N1cGVyOiBiZWdp biBzZXR0aW5nIHZhcmlhYmxlc1xuIikpOw0KIA0KICAgICBpZiAoZGF0YSAh PSBOVUxMKSB7DQorI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9W RVJTSU9OKDMsMTksMCkNCiAJc3RydWN0IG5hbWVpZGF0YSBuZDsNCisjZWxz ZQ0KKwlzdHJ1Y3QgcGF0aCBwYXRoOw0KKyNlbmRpZg0KIAkNCisjaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw2LDM5KQ0KIAll cnJvciA9IHBhdGhfbG9va3VwKGRhdGEsIDAsICZuZCk7DQorI2VsaWYgTElO VVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMywxOSwwKQ0KKwll cnJvciA9IGtlcm5fcGF0aChkYXRhLCAwLCAmbmQucGF0aCk7DQorI2Vsc2UN CisJZXJyb3IgPSBrZXJuX3BhdGgoZGF0YSwgMCwgJnBhdGgpOw0KKyNlbmRp Zg0KIAlpZiAoZXJyb3IpDQogCSAgICBkZGV2ID0gRVJSX1BUUihlcnJvcik7 DQogCWVsc2UNCi0JICAgIGRkZXYgPSBuZC5kZW50cnk7DQorI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDMsMTksMCkNCisJICAg IGRkZXYgPSBuZC5wYXRoLmRlbnRyeTsNCisjZWxzZQ0KKwkgICAgZGRldiA9 IHBhdGguZGVudHJ5Ow0KKyNlbmRpZg0KIA0KIAlpZiAoIUlTX0VSUihkZGV2 KSkgew0KIAkgICAgbWlub3JkZXZpY2UgPSBNSU5PUihkZGV2LT5kX2lub2Rl LT5pX3JkZXYpOw0KQEAgLTIzMyw3ICsyNTYsNyBAQCBubnBmc19maWxsX3N1 cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiDQogICAgIHJldHVybiAwOw0K IH0NCiANCi0jaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJT SU9OKDIsNiwxOCkNCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVM X1ZFUlNJT04oMiw2LDM5KQ0KIGludA0KIG5ucGZzX2dldF9zYihzdHJ1Y3Qg ZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwNCiAJICAgICBpbnQgZmxhZ3Ms IGNvbnN0IGNoYXIgKmRldl9uYW1lLA0KQEAgLTI0MiwxOSArMjY1LDIyIEBA IG5ucGZzX2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnMNCiAg ICAgcmV0dXJuIGdldF9zYl9ub2Rldihmc190eXBlLCBmbGFncywgZGF0YSwg bm5wZnNfZmlsbF9zdXBlciwgbW50KTsNCiB9DQogI2Vsc2UNCi1zdHJ1Y3Qg c3VwZXJfYmxvY2sgKg0KLW5ucGZzX2dldF9zYiAoc3RydWN0IGZpbGVfc3lz dGVtX3R5cGUgKmZzX3R5cGUsDQotCSAgICAgIGludCBmbGFncywgY29uc3Qg Y2hhciAqZGV2X25hbWUsIHZvaWQgKmRhdGEpIA0KK3N0cnVjdCBkZW50cnkq DQorbm5wZnNfbW91bnQoc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmZzX3R5 cGUsDQorCSAgICAgaW50IGZsYWdzLCBjb25zdCBjaGFyICpkZXZfbmFtZSwN CisJICAgICB2b2lkICpkYXRhKSANCiB7DQotICAgIHJldHVybiBnZXRfc2Jf bm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRhdGEsIG5ucGZzX2ZpbGxfc3VwZXIp Ow0KKyAgICByZXR1cm4gbW91bnRfbm9kZXYoZnNfdHlwZSwgZmxhZ3MsIGRh dGEsIG5ucGZzX2ZpbGxfc3VwZXIpOw0KIH0NCiAjZW5kaWYNCiANCisjaWYg TElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMyw2LDApDQog c3RhdGljIHZvaWQNCiBubnBmc193cml0ZV9zdXBlcihzdHJ1Y3Qgc3VwZXJf YmxvY2sgKiBzYikNCiB7DQogICAgIHNiLT5zX2RpcnQgPSAwOw0KIH0NCisj ZW5kaWYNCiANCiAvKg0KICAqIFhYWCBpcyB0aGlzIGdvb2Q/IA0KQEAgLTI3 Myw3MyArMjk5LDYgQEAgbm5wZnNfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9i bG9jayAqc2IpDQogICAgIE5OUEZTREVCKFhERUJWRk9QUywgKCJubnBmc19w dXRfc3VwZXIgZXhpdGluZ1xuIikpOw0KIH0NCiANCi1zdGF0aWMgdm9pZA0K LW5ucGZzX3JlYWRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkNCi17DQot ICAgIE5OUEZTREVCKFhERUJWRk9QUywoIm5ucGZzX3JlYWRfaW5vZGUgc3Rh cnRpbmcgaW5vZGU6ICVwXG4iLGlub2RlKSk7DQotICAgIE5OUEZTREVCKFhE RUJWRk9QUywoIm5ucGZzX3JlYWRfaW5vZGUgaW5vZGUtPmlfaW5vOiAlbGRc biIsaW5vZGUtPmlfaW5vKSk7DQotI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8 IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkNCi0gICAgaW5vZGUtPmlfYmxrc2l6 ZSA9IDEwMjQ7DQotI2VuZGlmDQotICAgIGlub2RlLT5pX21vZGUgPSAwOw0K LSAgICBpbm9kZS0+aV9vcCA9IE5VTEw7DQotICAgIE5OUEZTREVCKFhERUJW Rk9QUywoIm5ucGZzX3JlYWRfaW5vZGUgZXhpdGluZ1xuIikpOw0KLX0NCi0g DQotLyoNCi0gKiBDYWxsZWQgd2hlbiBgaW5vZGUnIGlzIGRlLXJlZmVyZW5j ZWQsIGllIHdoZW4gaXB1dCBpcyBjYWxsZWQuDQotICovDQotDQotc3RhdGlj IHZvaWQNCi1ubnBmc19wdXRfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSkN Ci17DQotICAgIHN0cnVjdCBubnBmc19ub2RlICp4biA9IFZOT0RFX1RPX1hO T0RFKGlub2RlKTsNCi0gICAgc3RydWN0IG5ucGZzICpubnBmc3AgPSBOTlBG U19GUk9NX1ZOT0RFKGlub2RlKTsNCi0gICAgaW50IGJhZDsNCi0NCi0gICAg Tk5QRlNERUIoWERFQlZGT1BTLCgibm5wZnNfcHV0X2lub2RlOiBpbm9kZTog JXAgY291bnQ6ICVkIGFsaWFzZXM6IiwNCi0JCQlpbm9kZSwgbm5wZnNfaWNv dW50KGlub2RlKSkpOw0KLSAgICBubnBmc19wcmludF9hbGlhc2VzKGlub2Rl KTsNCi0gICAgDQotICAgIGRvd24oJm5ucGZzcC0+aW5hY3RpdmVfc2VtKTsN Ci0NCi0gICAgaWYgKChubnBmc3AtPnN0YXR1cyAmIE5OUEZTX0RFVk9QRU4p ID09IDApIHsNCi0JaWYgKCFpc19iYWRfaW5vZGUoaW5vZGUpKSB7DQotCSAg ICBpZiAoaW5vZGUgIT0gbm5wZnNwLT5yb290KSB7DQotCQltYWtlX2JhZF9p bm9kZShpbm9kZSk7DQotCQlubnBmc19pcmVsZShpbm9kZSk7IC8qIHNlZSBu bnBmc19ub2RlX2FkZCgpICovDQotCSAgICB9DQotCSAgICB4bi0+ZmxhZ3Mg fD0gTk5QRlNfU1RBTEU7DQotCX0NCi0JYmFkID0gMTsgLyogb3Igcm9vdCwg cmVhbGx5ICovDQotICAgIH0gZWxzZSB7DQotCWJhZCA9IGlzX2JhZF9pbm9k ZShpbm9kZSk7DQotICAgIH0NCi0NCi0gICAgaWYgKHhuLT5mbGFncyAmIE5O UEZTX1NUQUxFICYmICFubnBmc19ub2RlX3VzZXJzKGlub2RlKSkgew0KLQl4 bi0+ZmxhZ3MgfD0gTk5QRlNfTk9ERV9JUFVUOyAvKiBYWFggbG9ja2luZyAq Lw0KLSAgCW5ucGZzX2ZvcmNlX2ludmFsaWRfbm9kZSh4bik7DQotCXhuLT5m bGFncyAmPSB+Tk5QRlNfTk9ERV9JUFVUOw0KLSAgICB9DQotICAgIA0KLSAg ICBpZiAoYmFkKSB7DQotCWlmIChubnBmc19pY291bnQoaW5vZGUpID09IDEp DQotCSAgICBubnBmc19ub2RlX2NsZWFyKHhuKTsNCi0gICAgfSBlbHNlIGlm IChubnBmc19pY291bnQoaW5vZGUpID09IDIpIHsNCi0JLyogDQotCSAqIFRo ZSBsYXN0IGV4dGVybmFsIHJlZmVyZW5jZSBpcyBiZWluZyBkcm9wcGVkLCBv bmx5IHRoZSBvbmUNCi0JICogZnJvbSBubnBmc19ub2RlX2FkZCgpIGlzIGxl ZnQuIFRpbWUgdG8gbGV0IGRhZW1vbiByZWxlYXNlDQotCSAqIHRoaXMgbm9k ZSBwcm9wZXJseS4NCi0JICovDQotCWlmICgoeG4tPmZsYWdzICYgTk5QRlNf TElNQk8pID09IDApIHsNCi0JICAgIG5ucGZzX25vZGVfY2xlYXIoeG4pOw0K LQkgICAgbm5wZnNfcXVldWVfaW5hY3RpdmUoeG4pOw0KLQl9DQotICAgIH0N Ci0NCi0gICAgdXAoJm5ucGZzcC0+aW5hY3RpdmVfc2VtKTsNCi19DQotDQog c3RhdGljIGludA0KIG5ucGZzX3N0YXRmc19pbnQoc3RydWN0IHN1cGVyX2Js b2NrICpzYiwgc3RydWN0IGtzdGF0ZnMgKmJ1ZikNCiB7DQpAQCAtMzUyLDI1 ICszMTEsMjEgQEAgbm5wZnNfc3RhdGZzX2ludChzdHJ1Y3Qgc3VwZXJfYmxv Y2sgKnNiLA0KICAgICB0bXAuZl9iYXZhaWwgID0gMTAyNCoxMDI0KjItNTA7 DQogICAgIHRtcC5mX2ZpbGVzICAgPSAxMDI0KjEwMjQ7DQogICAgIHRtcC5m X2ZmcmVlICAgPSAxMDI0KjEwMjQtMTAwOw0KKyAgICB0bXAuZl9mc2lkLnZh bFswXSA9IDA7DQorICAgIHRtcC5mX2ZzaWQudmFsWzFdID0gMDsNCiAgICAg dG1wLmZfbmFtZWxlbiA9IE5BTUVfTUFYOw0KKyAgICB0bXAuZl9mcnNpemUg ID0gMDsNCisgICAgdG1wLmZfc3BhcmVbMF0gPSAwOw0KKyAgICB0bXAuZl9z cGFyZVsxXSA9IDA7DQorICAgIHRtcC5mX3NwYXJlWzJdID0gMDsNCisgICAg dG1wLmZfc3BhcmVbM10gPSAwOw0KKyAgICB0bXAuZl9zcGFyZVs0XSA9IDA7 DQogICAgICpidWYgPSB0bXA7DQogICAgIHJldHVybiAwOw0KIH0NCiANCi0j aWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwx OCkNCi0NCiBzdGF0aWMgaW50DQogbm5wZnNfc3RhdGZzKHN0cnVjdCBkZW50 cnkgKmRlbnRyeSwgc3RydWN0IGtzdGF0ZnMgKmJ1ZikNCiB7DQogICAgIHJl dHVybiBubnBmc19zdGF0ZnNfaW50KGRlbnRyeS0+ZF9zYiwgYnVmKTsNCiB9 DQotDQotI2Vsc2UNCi0NCi1zdGF0aWMgaW50DQotbm5wZnNfc3RhdGZzKHN0 cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBrc3RhdGZzICpidWYpDQot ew0KLSAgICByZXR1cm4gbm5wZnNfc3RhdGZzX2ludChzYiwgYnVmKTsNCi19 DQotDQotI2VuZGlmDQpkaWZmIC11cHJOIC1Ybm9kaWZmIGFybGEtMC45MC1v bGQvYXJsYWQvZmNhY2hlLmMgYXJsYS0wLjkwL2FybGFkL2ZjYWNoZS5jDQot LS0gYXJsYS0wLjkwLW9sZC9hcmxhZC9mY2FjaGUuYwkyMDA2LTEyLTExIDE3 OjIzOjI0LjAwMDAwMDAwMCArMDEwMA0KKysrIGFybGEtMC45MC9hcmxhZC9m Y2FjaGUuYwkyMDE2LTAxLTIyIDE3OjAwOjQzLjAwMDAwMDAwMCArMDEwMA0K QEAgLTcxMyw3ICs3MTMsNyBAQCBmY2FjaGVfaGF2ZV93YW50ZWQoRkNhY2hl RW50cnkgKmVudHJ5LCB1DQogaW50DQogZmNhY2hlX2Rpcl9uYW1lIChGQ2Fj aGVFbnRyeSAqZW50cnksIGNoYXIgKnMsIHNpemVfdCBsZW4pDQogew0KLSAg ICByZXR1cm4gc25wcmludGYgKHMsIGxlbiwgIiUwMlgiLCBlbnRyeS0+aW5k ZXggLyAweDEwMCk7DQorICAgIHJldHVybiBzbnByaW50ZiAocywgbGVuLCBO TlBGU19DQUNIRV9GSUxFX0RJUjEsIGVudHJ5LT5pbmRleCAvIDB4MTAwKTsN CiB9DQogDQogLyoNCkBAIC03MjMsNyArNzIzLDcgQEAgZmNhY2hlX2Rpcl9u YW1lIChGQ2FjaGVFbnRyeSAqZW50cnksIGNoYQ0KIHN0YXRpYyBpbnQNCiBm Y2FjaGVfZmlsZV9uYW1lIChGQ2FjaGVFbnRyeSAqZW50cnksIGNoYXIgKnMs IHNpemVfdCBsZW4pDQogew0KLSAgICByZXR1cm4gc25wcmludGYgKHMsIGxl biwgIiUwMlgvJTAyWCIsDQorICAgIHJldHVybiBzbnByaW50ZiAocywgbGVu LCBOTlBGU19DQUNIRV9GSUxFX0RJUl9QQVRILA0KIAkJICAgICBlbnRyeS0+ aW5kZXggLyAweDEwMCwgZW50cnktPmluZGV4ICUgMHgxMDApOw0KIH0NCiAN CkBAIC04MTUsNyArODE1LDcgQEAgZmNhY2hlX2ZoZ2V0IChjaGFyICpmaWxl bmFtZSwgZmNhY2hlX2NhYw0KIAlpbnQgcmV0LCBhLCBiOw0KIAljaGFyIGJ1 ZlsxMDI0XTsNCiANCi0JcmV0ID0gc3NjYW5mKGZpbGVuYW1lLCAiJTAyWC8l MDJYIiwgJmEsICZiKTsNCisJcmV0ID0gc3NjYW5mKGZpbGVuYW1lLCBOTlBG U19DQUNIRV9GSUxFX0RJUl9QQVRILCAmYSwgJmIpOw0KIAlpZiAocmV0ICE9 IDIpDQogCSAgICByZXR1cm4gRUlOVkFMOw0KIA0KQEAgLTgyNCw3ICs4MjQs NyBAQCBmY2FjaGVfZmhnZXQgKGNoYXIgKmZpbGVuYW1lLCBmY2FjaGVfY2Fj DQogCQ0KIAlyZXQgPSBzbnByaW50ZigoY2hhciAqKWhhbmRsZS0+bm5wZnNf aGFuZGxlLCANCiAJCSAgICAgICBzaXplb2YoaGFuZGxlLT5ubnBmc19oYW5k bGUpLA0KLQkJICAgICAgICIlc1xcJTAyWFxcJTAyWCIsIGJ1ZiwgYSwgYik7 DQorCQkgICAgICAgIiVzXFwiIE5OUEZTX0NBQ0hFX0ZJTEVfRElSX1BBVEgs IGJ1ZiwgYSwgYik7DQogDQogCWlmIChyZXQgPiAwICYmIHJldCA8IHNpemVv ZihoYW5kbGUtPm5ucGZzX2hhbmRsZSkpDQogCSAgICBoYW5kbGUtPnZhbGlk ID0gMTsNCg== ---276651502-1608297379-1453490698=:21172 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Arla-drinkers mailing list [email protected] https://lists.stacken.kth.se/mailman/listinfo/arla-drinkers ---276651502-1608297379-1453490698=:21172--