From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: Rebase to FSF GDB 7.2.50.20110328 (which is a 7.3 pre-release). Date: Sat, 27 Jun 2026 23:55:06 GMT Message-ID: <178260450633.1.3193767840551537326.rpms-gdb-46a1caf62e3a@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 46a1caf62e3a06c7d6e37e1c422262fdde193e2e ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQK ICAgICAgICAgICAgQ29tbWl0IDogNDZhMWNhZjYyZTNhMDZjN2Q2ZTM3ZTFjNDIyMjYyZmRkZTE5 M2UyZQogICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxA cmVkaGF0LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxMS0wMy0yOFQyMDowNjozMSswMjow MAogICAgICAgICAgICBTdGF0cyAgOiArNzY2Ly0zNjEgaW4gOSBmaWxlKHMpCiAgICAgICAgICAg IFVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2RiL2MvNDZhMWNh ZjYyZTNhMDZjN2Q2ZTM3ZTFjNDIyMjYyZmRkZTE5M2UyZT9icmFuY2g9Z2RiLTE3LjItcmViYXNl LWY0NAoKICAgICAgICAgICAgTG9nOgogICAgICAgICAgICBSZWJhc2UgdG8gRlNGIEdEQiA3LjIu NTAuMjAxMTAzMjggKHdoaWNoIGlzIGEgNy4zIHByZS1yZWxlYXNlKS4KQnVuZGxlICV7bGlic3Rk Y3h4cHl0aG9ufS50YXIuYnoyIHVuY29uZGl0aW9uYWxseSAtIGZvciByZWJ1bGRzIG9uIFJIRUxz LgoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQppbmRleCBhNWVkYTNm Li5iMWRhMzA3IDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTEs MiArMSwyIEBACiAvbGlic3RkYysrLXYzLXB5dGhvbi1yMTU1OTc4LnRhci5iejIKLS9nZGItNy4y LjUwLjIwMTEwMzIwLnRhci5iejIKKy9nZGItNy4yLjUwLjIwMTEwMzI4LnRhci5iejIKCmRpZmYg LS1naXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxv Y2F0ZS5wYXRjaAppbmRleCA3MjBiZjIxLi44Y2U1ZjAyIDEwMDY0NAotLS0gYS9nZGItNi42LWJ1 aWxkaWQtbG9jYXRlLnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKQEAg LTEsNyArMSw3IEBACi1JbmRleDogZ2RiLTcuMi41MC4yMDExMDMyMC9nZGIvY29yZWxvdy5jCitJ bmRleDogZ2RiLTcuMi41MC4yMDExMDMyOC9nZGIvY29yZWxvdy5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMi41MC4yMDExMDMyMC5vcmlnL2dkYi9jb3JlbG93LmMJMjAxMS0wMi0yNiAwMzowNzow Ny4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEwMzIwL2dkYi9jb3JlbG93LmMJ MjAxMS0wMy0yMCAxNToxOTo1Mi4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEw MzI4Lm9yaWcvZ2RiL2NvcmVsb3cuYwkyMDExLTAyLTI2IDAzOjA3OjA3LjAwMDAwMDAwMCArMDEw MAorKysrIGdkYi03LjIuNTAuMjAxMTAzMjgvZ2RiL2NvcmVsb3cuYwkyMDExLTAzLTI4IDE4OjQx OjIwLjAwMDAwMDAwMCArMDIwMAogQEAgLTQ3LDYgKzQ3LDkgQEAKICAjaW5jbHVkZSAiZmlsZW5h bWVzLmgiCiAgI2luY2x1ZGUgInByb2dzcGFjZS5oIgpAQCAtOTAsMTEgKzkwLDExIEBAIEluZGV4 OiBnZGItNy4yLjUwLjIwMTEwMzIwL2dkYi9jb3JlbG93LmMKICsJCQkgICBOVUxMLCBOVUxMLCBO VUxMLAogKwkJCSAgICZzZXRsaXN0LCAmc2hvd2xpc3QpOwogIH0KLUluZGV4OiBnZGItNy4yLjUw LjIwMTEwMzIwL2dkYi9kb2MvZ2RiLnRleGluZm8KK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMzI4 L2dkYi9kb2MvZ2RiLnRleGluZm8KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEwMzIw Lm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDExLTAzLTIwIDE1OjE3OjQ0LjAwMDAwMDAwMCAr MDEwMAotKysrIGdkYi03LjIuNTAuMjAxMTAzMjAvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDExLTAz LTIwIDE1OjE5OjUyLjAwMDAwMDAwMCArMDEwMAotQEAgLTE1MzQzLDYgKzE1MzQzLDI3IEBAIGlu Zm9ybWF0aW9uIGZpbGVzLgorLS0tIGdkYi03LjIuNTAuMjAxMTAzMjgub3JpZy9nZGIvZG9jL2dk Yi50ZXhpbmZvCTIwMTEtMDMtMjggMTg6NDA6MTUuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcu Mi41MC4yMDExMDMyOC9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTEtMDMtMjggMTg6NDE6MjAuMDAw MDAwMDAwICswMjAwCitAQCAtMTUzNDYsNiArMTUzNDYsMjcgQEAgaW5mb3JtYXRpb24gZmlsZXMu CiAgCiAgQGVuZCB0YWJsZQogIApAQCAtMTIyLDEwICsxMjIsMTAgQEAgSW5kZXg6IGdkYi03LjIu NTAuMjAxMTAzMjAvZ2RiL2RvYy9nZGIudGV4aW5mbwogIEBjaW5kZXggQGNvZGV7LmdudV9kZWJ1 Z2xpbmt9IHNlY3Rpb25zCiAgQGNpbmRleCBkZWJ1ZyBsaW5rIHNlY3Rpb25zCiAgQSBkZWJ1ZyBs aW5rIGlzIGEgc3BlY2lhbCBzZWN0aW9uIG9mIHRoZSBleGVjdXRhYmxlIGZpbGUgbmFtZWQKLUlu ZGV4OiBnZGItNy4yLjUwLjIwMTEwMzIwL2dkYi9zb2xpYi1zdnI0LmMKK0luZGV4OiBnZGItNy4y LjUwLjIwMTEwMzI4L2dkYi9zb2xpYi1zdnI0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUw LjIwMTEwMzIwLm9yaWcvZ2RiL3NvbGliLXN2cjQuYwkyMDExLTAzLTIwIDE1OjE3OjQzLjAwMDAw MDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMTAzMjAvZ2RiL3NvbGliLXN2cjQuYwkyMDEx LTAzLTIwIDE1OjE5OjUyLjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi03LjIuNTAuMjAxMTAzMjgu b3JpZy9nZGIvc29saWItc3ZyNC5jCTIwMTEtMDMtMjggMTg6NDA6MTQuMDAwMDAwMDAwICswMjAw CisrKysgZ2RiLTcuMi41MC4yMDExMDMyOC9nZGIvc29saWItc3ZyNC5jCTIwMTEtMDMtMjggMTg6 NDE6MjAuMDAwMDAwMDAwICswMjAwCiBAQCAtMTE3OSw5ICsxMTc5LDQ5IEBAIHN2cjRfY3VycmVu dF9zb3MgKHZvaWQpCiAgCQkgICAgIHNhZmVfc3RyZXJyb3IgKGVycmNvZGUpKTsKICAJICBlbHNl CkBAIC0xNzksMTQgKzE3OSwxNCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDMyMC9nZGIvc29s aWItc3ZyNC5jCiAgCSAgICB9CiAgCSAgeGZyZWUgKGJ1ZmZlcik7CiAgCi1JbmRleDogZ2RiLTcu Mi41MC4yMDExMDMyMC9nZGIvZWxmcmVhZC5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDMyOC9n ZGIvZWxmcmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDExMDMyMC5vcmlnL2dk Yi9lbGZyZWFkLmMJMjAxMS0wMy0yMCAxNToxNzo0Mi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGIt Ny4yLjUwLjIwMTEwMzIwL2dkYi9lbGZyZWFkLmMJMjAxMS0wMy0yMCAxNToyMjozNC4wMDAwMDAw MDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMzI4Lm9yaWcvZ2RiL2VsZnJlYWQuYwkyMDEx LTAzLTI4IDE4OjQwOjE0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjIuNTAuMjAxMTAzMjgv Z2RiL2VsZnJlYWQuYwkyMDExLTAzLTI4IDE4OjQ1OjM5LjAwMDAwMDAwMCArMDIwMAogQEAgLTQ1 LDYgKzQ1LDEwIEBACisgI2luY2x1ZGUgInJlZ2NhY2hlLmgiCiAgI2luY2x1ZGUgInN0YXAtcHJv YmUuaCIKICAjaW5jbHVkZSAiYXJjaC11dGlscy5oIgotICNpbmNsdWRlICJnZGJ0eXBlcy5oIgog KyNpbmNsdWRlICJsaWJiZmQuaCIKICsjaW5jbHVkZSAiZ2RiY29yZS5oIgogKyNpbmNsdWRlICJn ZGJjbWQuaCIKQEAgLTg1OCw4ICs4NTgsOCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDMyMC9n ZGIvZWxmcmVhZC5jCiArCQkJCQkgICAgMSk7CiAgICAgICAgeGZyZWUgKGJ1aWxkX2lkKTsKICAg ICAgICAvKiBQcmV2ZW50IGxvb3Bpbmcgb24gYSBzdHJpcHBlZCAuZGVidWcgZmlsZS4gICovCi0g ICAgICAgaWYgKGJ1aWxkX2lkX25hbWUgIT0gTlVMTCAmJiBzdHJjbXAgKGJ1aWxkX2lkX25hbWUs IG9iamZpbGUtPm5hbWUpID09IDApCi1AQCAtMTIwOSw3ICsxNzg0LDcgQEAgZmluZF9zZXBhcmF0 ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0cgorICAgICAgIGlmIChidWlsZF9pZF9uYW1lICE9 IE5VTEwKK0BAIC0xMjEwLDcgKzE3ODUsNyBAQCBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlf YnVpbGRpZCAoc3RyCiAgCSAgeGZyZWUgKGJ1aWxkX2lkX25hbWUpOwogIAl9CiAgICAgICAgZWxz ZSBpZiAoYnVpbGRfaWRfbmFtZSAhPSBOVUxMKQpAQCAtODY4LDcgKzg2OCw3IEBAIEluZGV4OiBn ZGItNy4yLjUwLjIwMTEwMzIwL2dkYi9lbGZyZWFkLmMKICAgICAgfQogICAgcmV0dXJuIE5VTEw7 CiAgfQotQEAgLTE0MDcsOSArMTk4MiwxMCBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2Jq ZmlsZSAqb2JqZmlsCitAQCAtMTQwOCw5ICsxOTgzLDEwIEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0 cnVjdCBvYmpmaWxlICpvYmpmaWwKICAgICAgIGAubm90ZS5nbnUuYnVpbGQtaWQnLiAgKi8KICAg IGVsc2UgaWYgKCFvYmpmaWxlX2hhc19wYXJ0aWFsX3N5bWJvbHMgKG9iamZpbGUpKQogICAgICB7 CkBAIC04ODEsNyArODgxLDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAzMjAvZ2RiL2VsZnJl YWQuYwogIAogICAgICAgIGlmIChkZWJ1Z2ZpbGUgPT0gTlVMTCkKICAJZGVidWdmaWxlID0gZmlu ZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2RlYnVnbGluayAob2JqZmlsZSk7Ci1AQCAtMTQyMSw2 ICsxOTk3LDEyIEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWwKK0BA IC0xNDIyLDYgKzE5OTgsMTIgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0IG9iamZpbGUgKm9i amZpbAogIAkgIHN5bWJvbF9maWxlX2FkZF9zZXBhcmF0ZSAoYWJmZCwgc3ltZmlsZV9mbGFncywg b2JqZmlsZSk7CiAgCSAgeGZyZWUgKGRlYnVnZmlsZSk7CiAgCX0KQEAgLTg5NCw3ICs4OTQsNyBA QCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDMyMC9nZGIvZWxmcmVhZC5jCiAgICAgIH0KICB9CiAg Ci1AQCAtMTg3OSw0ICsyNDYxLDE2IEBAIF9pbml0aWFsaXplX2VsZnJlYWQgKHZvaWQpCitAQCAt MTg3Myw0ICsyNDU1LDE2IEBAIF9pbml0aWFsaXplX2VsZnJlYWQgKHZvaWQpCiAgCiAgICBlbGZf b2JqZmlsZV9nbnVfaWZ1bmNfY2FjaGVfZGF0YSA9IHJlZ2lzdGVyX29iamZpbGVfZGF0YSAoKTsK ICAgIGdudV9pZnVuY19mbnNfcCA9ICZlbGZfZ251X2lmdW5jX2ZuczsKQEAgLTkxMSwxMCArOTEx LDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMzIwL2dkYi9lbGZyZWFkLmMKICsKICsgIG9i c2VydmVyX2F0dGFjaF9leGVjdXRhYmxlX2NoYW5nZWQgKGRlYnVnX3ByaW50X2V4ZWN1dGFibGVf Y2hhbmdlZCk7CiAgfQotSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAzMjAvZ2RiL3N5bWZpbGUuaAor SW5kZXg6IGdkYi03LjIuNTAuMjAxMTAzMjgvZ2RiL3N5bWZpbGUuaAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjIuNTAuMjAxMTAzMjAub3JpZy9nZGIvc3ltZmlsZS5oCTIwMTEtMDMtMjAgMTU6MTc6 NDMuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDExMDMyMC9nZGIvc3ltZmlsZS5o CTIwMTEtMDMtMjAgMTU6MTk6NTIuMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMi41MC4yMDEx MDMyOC5vcmlnL2dkYi9zeW1maWxlLmgJMjAxMS0wMy0yOCAxODo0MDoxNC4wMDAwMDAwMDAgKzAy MDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMzI4L2dkYi9zeW1maWxlLmgJMjAxMS0wMy0yOCAxODo0 MToyMC4wMDAwMDAwMDAgKzAyMDAKIEBAIC02MTEsNiArNjExLDEzIEBAIHZvaWQgZnJlZV9zeW1m aWxlX3NlZ21lbnRfZGF0YSAoc3RydWN0IHMKICAKICBleHRlcm4gc3RydWN0IGNsZWFudXAgKmlu Y3JlbWVudF9yZWFkaW5nX3N5bXRhYiAodm9pZCk7CkBAIC05MjksMTEgKzkyOSwxMSBAQCBJbmRl eDogZ2RiLTcuMi41MC4yMDExMDMyMC9nZGIvc3ltZmlsZS5oCiAgLyogRnJvbSBkd2FyZjJyZWFk LmMgKi8KICAKICBleHRlcm4gaW50IGR3YXJmMl9oYXNfaW5mbyAoc3RydWN0IG9iamZpbGUgKik7 Ci1JbmRleDogZ2RiLTcuMi41MC4yMDExMDMyMC9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCitJ bmRleDogZ2RiLTcuMi41MC4yMDExMDMyOC9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDExMDMyMC5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL2dk Yi5leHAJMjAxMS0wMy0yMCAxNToxNzo0My4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUw LjIwMTEwMzIwL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxMS0wMy0yMCAxNToxOTo1Mi4w MDAwMDAwMDAgKzAxMDAKLUBAIC0xMzk3LDYgKzEzOTcsMTYgQEAgcHJvYyBkZWZhdWx0X2dkYl9z dGFydCB7IH0geworLS0tIGdkYi03LjIuNTAuMjAxMTAzMjgub3JpZy9nZGIvdGVzdHN1aXRlL2xp Yi9nZGIuZXhwCTIwMTEtMDMtMjggMTg6NDA6MTQuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcu Mi41MC4yMDExMDMyOC9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTEtMDMtMjggMTg6NDE6 MjAuMDAwMDAwMDAwICswMjAwCitAQCAtMTM4MSw2ICsxMzgxLDE2IEBAIHByb2MgZGVmYXVsdF9n ZGJfc3RhcnQgeyB9IHsKICAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNldCB0aGUgd2lkdGggdG8g MC4iCiAgCX0KICAgICAgfQpAQCAtOTUwLDEwICs5NTAsMTAgQEAgSW5kZXg6IGdkYi03LjIuNTAu MjAxMTAzMjAvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAogICAgICByZXR1cm4gMDsKICB9CiAg Ci1JbmRleDogZ2RiLTcuMi41MC4yMDExMDMyMC9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0 LmV4cAorSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAzMjgvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3Vw cG9ydC5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEwMzIwLm9yaWcvZ2RiL3Rl c3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxMS0wMy0wNyAxNzowMzowNC4wMDAwMDAwMDAg KzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEwMzIwL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBv cnQuZXhwCTIwMTEtMDMtMjAgMTU6MTk6NTIuMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMi41 MC4yMDExMDMyOC5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTEtMDMt MDcgMTc6MDM6MDQuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDMyOC9nZGIv dGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDExLTAzLTI4IDE4OjQxOjIwLjAwMDAwMDAw MCArMDIwMAogQEAgLTIyMSw2ICsyMjEsMTYgQEAgcHJvYyBkZWZhdWx0X21pX2dkYl9zdGFydCB7 IGFyZ3MgfSB7CiAgCSAgICB9CiAgICAgIAl9CkBAIC05NzEsMTAgKzk3MSwxMCBAQCBJbmRleDog Z2RiLTcuMi41MC4yMDExMDMyMC9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAogIAog ICAgICBkZXRlY3RfYXN5bmMKICAKLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMzIwL2dkYi9vYmpm aWxlcy5oCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDMyOC9nZGIvb2JqZmlsZXMuaAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAzMjAub3JpZy9nZGIvb2JqZmlsZXMuaAkyMDExLTAz LTA3IDE3OjE3OjI5LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMTAzMjAvZ2Ri L29iamZpbGVzLmgJMjAxMS0wMy0yMCAxNToyMDoyOS4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGIt Ny4yLjUwLjIwMTEwMzI4Lm9yaWcvZ2RiL29iamZpbGVzLmgJMjAxMS0wMy0wNyAxNzoxNzoyOS4w MDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMzI4L2dkYi9vYmpmaWxlcy5oCTIw MTEtMDMtMjggMTg6NDE6MjAuMDAwMDAwMDAwICswMjAwCiBAQCAtNDQxLDYgKzQ0MSwxMCBAQCBz dHJ1Y3Qgb2JqZmlsZQogIAogICNkZWZpbmUgT0JKRl9QU1lNVEFCU19SRUFEICgxIDw8IDQpCgpk aWZmIC0tZ2l0IGEvZ2RiLWFkYS1nZGJhcmNoLWNyYXNoLnBhdGNoIGIvZ2RiLWFkYS1nZGJhcmNo LWNyYXNoLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NjFmY2UxLi4wMDAw MDAwCi0tLSBhL2dkYi1hZGEtZ2RiYXJjaC1jcmFzaC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDQ5ICswLDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDExLTAz L21zZzAwOTQ2Lmh0bWwKLVN1YmplY3Q6IFtwYXRjaF0gYWRhOiBGaXggcmFzaGVzIG9uIGdkYmFy Y2ggZ2FyYmFnZQotCi1IaSBKb2VsLAotCi1mb3IgZ2RiLmFkYS9zdHJfcmVmX2NtcC5leHAgb24g eDg2XzY0LWZlZG9yYTE1LWxpbnV4LWdudSBpdCB0dXJuczoKLQotKGdkYikgcHJpbnQgU3RyaW5n X1ZhciAoMSAuLiAzKSA9ICJIZWwiCi1FUlJPUjogUHJvY2VzcyBubyBsb25nZXIgZXhpc3RzCi1V TlJFU09MVkVEOiBnZGIuYWRhL3N0cl9yZWZfY21wLmV4cDogcHJpbnQgU3RyaW5nX1ZhciAoMSAu LiAzKSA9ICJIZWwiCi0tPgotKGdkYikgcHJpbnQgU3RyaW5nX1ZhciAoMSAuLiAzKSA9ICJIZWwi Ci0kMSA9IGZhbHNlCi0oZ2RiKSBGQUlMOiBnZGIuYWRhL3N0cl9yZWZfY21wLmV4cDogcHJpbnQg U3RyaW5nX1ZhciAoMSAuLiAzKSA9ICJIZWwiCi0KLUdEQiBjcmFzaGVzIHRoZSBmb3JtZXIgd2F5 IHdpdGhvdXQgdGhpcyBmaXggb246Ci0JZ2NjLWduYXQtNC42LjAtMC4xNC5mYzE1Lng4Nl82NAot CWdjYy1nbmF0LTQuNS4xLTQuZmMxNC54ODZfNjQKLQotSSBjYW5ub3QgdGVzdCBGU0YgZ2NjIDw9 NC41IG15c2VsZiBhcyBpdHMgQWRhIGJ1aWxkIGVycm9ycyBvdXQgZm9yIG1lIG9uOgotCXVpbnRw LmFkYjoyNDI6MjI6IGV4cGVjdCB0eXBlICJIbnVtIiBkZWZpbmVkIGF0IGxpbmUgOTEKLQotR0RC IFBBU1NlcyBvbiB0aGVzZSBHTkFUcyBldmVuIHdpdGhvdXQgdGhpcyBmaXggYnV0IHRoYXQgaXMg bm90IHRoZSBwb2ludDoKLQlHTkFUIDQuNy4wIDIwMTEwMzIwIChleHBlcmltZW50YWwpCi0JR05B VCA0LjYuMCAyMDExMDMyMCAocHJlcmVsZWFzZSkKLQotVGhpcyBpcyBvbmx5IGEgc3VnZ2VzdGlv biwgSSBkbyBub3Qga25vdyBtdWNoIGFib3V0IHRoZSBhZGEtKiBjb2RlLgotCi0KLVRoYW5rcywK LUphbgotCi0KLWdkYi8KLTIwMTEtMDMtMjAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2 aWxAcmVkaGF0LmNvbT4KLQotCSogYWRhLWxhbmcuYyAocmVwbGFjZV9vcGVyYXRvcl93aXRoX2Nh bGwpOiBDb3B5IGFsc28gR0RCQVJDSC4KLQotLS0tIGEvZ2RiL2FkYS1sYW5nLmMKLSsrKyBiL2dk Yi9hZGEtbGFuZy5jCi1AQCAtMzY2MSw2ICszNjYxLDcgQEAgcmVwbGFjZV9vcGVyYXRvcl93aXRo X2NhbGwgKHN0cnVjdCBleHByZXNzaW9uICoqZXhwcCwgaW50IHBjLCBpbnQgbmFyZ3MsCi0gCi0g ICBuZXdleHAtPm5lbHRzID0gZXhwLT5uZWx0cyArIDcgLSBvcGxlbjsKLSAgIG5ld2V4cC0+bGFu Z3VhZ2VfZGVmbiA9IGV4cC0+bGFuZ3VhZ2VfZGVmbjsKLSsgIG5ld2V4cC0+Z2RiYXJjaCA9IGV4 cC0+Z2RiYXJjaDsKLSAgIG1lbWNweSAobmV3ZXhwLT5lbHRzLCBleHAtPmVsdHMsIEVYUF9FTEVN X1RPX0JZVEVTIChwYykpOwotICAgbWVtY3B5IChuZXdleHAtPmVsdHMgKyBwYyArIDcsIGV4cC0+ ZWx0cyArIHBjICsgb3BsZW4sCi0gICAgICAgICAgIEVYUF9FTEVNX1RPX0JZVEVTIChleHAtPm5l bHRzIC0gcGMgLSBvcGxlbikpOwotCgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci1waWUtYWRkb25z LWtlZXAtZGlzYWJsZWQucGF0Y2ggYi9nZGItYXJjaGVyLXBpZS1hZGRvbnMta2VlcC1kaXNhYmxl ZC5wYXRjaAppbmRleCA4ZDE2ZTZhLi41MGQ5NGEzIDEwMDY0NAotLS0gYS9nZGItYXJjaGVyLXBp ZS1hZGRvbnMta2VlcC1kaXNhYmxlZC5wYXRjaAorKysgYi9nZGItYXJjaGVyLXBpZS1hZGRvbnMt a2VlcC1kaXNhYmxlZC5wYXRjaApAQCAtMSw4ICsxLDggQEAKLUluZGV4OiBnZGItNy4yLjUwLjIw MTEwMzIwL2dkYi9icmVha3BvaW50LmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMzI4L2dkYi9i cmVha3BvaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEwMzIwLm9yaWcvZ2Ri L2JyZWFrcG9pbnQuYwkyMDExLTAzLTIwIDE1OjE3OjQyLjAwMDAwMDAwMCArMDEwMAotKysrIGdk Yi03LjIuNTAuMjAxMTAzMjAvZ2RiL2JyZWFrcG9pbnQuYwkyMDExLTAzLTIwIDE1OjI4OjQ4LjAw MDAwMDAwMCArMDEwMAotQEAgLTEwNjc4LDYgKzEwNjc4LDUwIEBAIHVwZGF0ZV9icmVha3BvaW50 X2xvY2F0aW9ucyAoc3RydWN0IGJyZWEKKy0tLSBnZGItNy4yLjUwLjIwMTEwMzI4Lm9yaWcvZ2Ri L2JyZWFrcG9pbnQuYwkyMDExLTAzLTI4IDE4OjQwOjE0LjAwMDAwMDAwMCArMDIwMAorKysrIGdk Yi03LjIuNTAuMjAxMTAzMjgvZ2RiL2JyZWFrcG9pbnQuYwkyMDExLTAzLTI4IDE4OjQ1OjU3LjAw MDAwMDAwMCArMDIwMAorQEAgLTEwNzA3LDYgKzEwNzA3LDUwIEBAIHVwZGF0ZV9icmVha3BvaW50 X2xvY2F0aW9ucyAoc3RydWN0IGJyZWEKICAgIHVwZGF0ZV9nbG9iYWxfbG9jYXRpb25fbGlzdCAo MSk7CiAgfQogIApAQCAtNTMsMjIgKzUzLDIyIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMzIw L2dkYi9icmVha3BvaW50LmMKICAvKiBSZXNldCBhIGJyZWFrcG9pbnQgZ2l2ZW4gaXQncyBzdHJ1 Y3QgYnJlYWtwb2ludCAqIEJJTlQuCiAgICAgVGhlIHZhbHVlIHdlIHJldHVybiBlbmRzIHVwIGJl aW5nIHRoZSByZXR1cm4gdmFsdWUgZnJvbSBjYXRjaF9lcnJvcnMuCiAgICAgVW51c2VkIGluIHRo aXMgY2FzZS4gICovCi1JbmRleDogZ2RiLTcuMi41MC4yMDExMDMyMC9nZGIvYnJlYWtwb2ludC5o CitJbmRleDogZ2RiLTcuMi41MC4yMDExMDMyOC9nZGIvYnJlYWtwb2ludC5oCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMi41MC4yMDExMDMyMC5vcmlnL2dkYi9icmVha3BvaW50LmgJMjAxMS0wMy0y MCAxNToxNzo0Mi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEwMzIwL2dkYi9i cmVha3BvaW50LmgJMjAxMS0wMy0yMCAxNToyOTozMy4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xMjEw LDQgKzEyMTAsNyBAQCBleHRlcm4gc3RydWN0IGJyZWFrcG9pbnQgKml0ZXJhdGVfb3Zlcl9iCist LS0gZ2RiLTcuMi41MC4yMDExMDMyOC5vcmlnL2dkYi9icmVha3BvaW50LmgJMjAxMS0wMy0yOCAx ODo0MDoxNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMzI4L2dkYi9icmVh a3BvaW50LmgJMjAxMS0wMy0yOCAxODo0NjowNy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xMjE5LDQg KzEyMTksNyBAQCBleHRlcm4gaW50IHVzZXJfYnJlYWtwb2ludF9wIChzdHJ1Y3QgYnJlCiAgCi0g ZXh0ZXJuIGludCB1c2VyX2JyZWFrcG9pbnRfcCAoc3RydWN0IGJyZWFrcG9pbnQgKik7CisgZXh0 ZXJuIHZvaWQgbW9kaWZ5X3NlbWFwaG9yZSAoc3RydWN0IGJwX2xvY2F0aW9uICpsb2NhdGlvbiwg aW50IHNldCk7CiAgCiArZXh0ZXJuIHZvaWQgYnJlYWtwb2ludHNfcmVsb2NhdGUgKHN0cnVjdCBv YmpmaWxlICpvYmpmaWxlLAogKwkJCQkgIHN0cnVjdCBzZWN0aW9uX29mZnNldHMgKmRlbHRhKTsK ICsKICAjZW5kaWYgLyogIWRlZmluZWQgKEJSRUFLUE9JTlRfSCkgKi8KLUluZGV4OiBnZGItNy4y LjUwLjIwMTEwMzIwL2dkYi9vYmpmaWxlcy5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDMyOC9n ZGIvb2JqZmlsZXMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAzMjAub3JpZy9n ZGIvb2JqZmlsZXMuYwkyMDExLTAzLTIwIDE1OjE3OjQyLjAwMDAwMDAwMCArMDEwMAotKysrIGdk Yi03LjIuNTAuMjAxMTAzMjAvZ2RiL29iamZpbGVzLmMJMjAxMS0wMy0yMCAxNToyOTowNS4wMDAw MDAwMDAgKzAxMDAKKy0tLSBnZGItNy4yLjUwLjIwMTEwMzI4Lm9yaWcvZ2RiL29iamZpbGVzLmMJ MjAxMS0wMy0yOCAxODo0MDoxNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy4yLjUwLjIwMTEw MzI4L2dkYi9vYmpmaWxlcy5jCTIwMTEtMDMtMjggMTg6NDU6NTcuMDAwMDAwMDAwICswMjAwCiBA QCAtODUxLDYgKzg1MSwxMSBAQCBvYmpmaWxlX3JlbG9jYXRlMSAoc3RydWN0IG9iamZpbGUgKm9i amZpCiAgICAgIG9iamZpbGUtPnNmLT5zeW1fcHJvYmVfZm5zLT5zeW1fcmVsb2NhdGVfcHJvYmUg KG9iamZpbGUsCiAgCQkJCQkJICAgIG5ld19vZmZzZXRzLCBkZWx0YSk7CgpkaWZmIC0tZ2l0IGEv Z2RiLWFyY2hlci5wYXRjaCBiL2dkYi1hcmNoZXIucGF0Y2gKaW5kZXggNGI0YTZhNi4uYTJkZDFm OCAxMDA2NDQKLS0tIGEvZ2RiLWFyY2hlci5wYXRjaAorKysgYi9nZGItYXJjaGVyLnBhdGNoCkBA IC0yLDcgKzIsNyBAQCBodHRwOi8vc291cmNld2FyZS5vcmcvZ2RiL3dpa2kvUHJvamVjdEFyY2hl cgogaHR0cDovL3NvdXJjZXdhcmUub3JnL2dkYi93aWtpL0FyY2hlckJyYW5jaE1hbmFnZW1lbnQK IAogR0lUIHNuYXBzaG90OgotY29tbWl0IDZiMmEwYmY3NTgyNjNkMjJiZjJiM2JkMmUwMjY2NWNm MGMyNGIwYmUKK2NvbW1pdCAxNmYzNWEyYzU1NTU2OTcwZWQxMTE0MTkyMDIzMDU3ODJhMGY3OWVj CiAKIGJyYW5jaCBgYXJjaGVyJyAtIHRoZSBtZXJnZSBvZiBicmFuY2hlczoKIGFyY2hlci1qYW5r cmF0b2NodmlsLXZsYQpAQCAtMTAsOCArMTAsNiBAQCBhcmNoZXItamFua3JhdG9jaHZpbC13YXRj aHBvaW50MwogYXJjaGVyLWphbmtyYXRvY2h2aWwtaWZ1bmMKIGFyY2hlci10cm9tZXktcHl0aG9u CiBhcmNoZXItc2VyZ2lvZGotc3RhcAotI1RPRE8/OmFyY2hlci10cm9tZXktb3B0aW9uYWwtcHN5 bXRhYiAoY2hlcnJ5LXBpY2tlZCBmcm9tIHBvc3QtNy4yIG1hc3RlcikKLSNUT0RPPzphcmNoZXIt dHJvbWV5LXRocmVhZGVkLWR3YXJmCiAKIAogZGlmZiAtLWdpdCBhL2JmZC9lbGYtYmZkLmggYi9i ZmQvZWxmLWJmZC5oCkBAIC0xNDQsNyArMTQyLDcgQEAgaW5kZXggNDg5YjFlOS4uYzMzMmIxYiAx MDA2NDQKICAJJChTSEVMTCkgY29uZmlnLnN0YXR1cyAtLXJlY2hlY2sKICAKIGRpZmYgLS1naXQg YS9nZGIvTkVXUyBiL2dkYi9ORVdTCi1pbmRleCBmZWViZjYxLi4yNzlhMWM5IDEwMDY0NAoraW5k ZXggMjI4ODQ5Ny4uNmRmOTg2OCAxMDA2NDQKIC0tLSBhL2dkYi9ORVdTCiArKysgYi9nZGIvTkVX UwogQEAgLTM2LDYgKzM2LDEwIEBACkBAIC0xNTcsMTIgKzE1NSwxMiBAQCBpbmRleCBmZWViZjYx Li4yNzlhMWM5IDEwMDY0NAogKwogICogUHl0aG9uIHNjcmlwdGluZwogIAotICAgKiogUGFyYW1l dGVycyBjYW4gbm93IGJlIGJlIHN1Yi1jbGFzc2VkIGluIFB5dGhvbiwgYW5kIGluIHBhcnRpY3Vs YXIKKyAgICoqIFRoZSBmdW5jdGlvbiBnZGIuV3JpdGUgbm93IGFjY2VwdHMgYW4gb3B0aW9uYWwg a2V5d29yZCAnc3RyZWFtJy4KIGRpZmYgLS1naXQgYS9nZGIvYWRhLWxhbmcuYyBiL2dkYi9hZGEt bGFuZy5jCi1pbmRleCBlZDUxYWIwLi42ODUxODEwIDEwMDY0NAoraW5kZXggNTcyOGFjOC4uNzQ0 ZDJmYSAxMDA2NDQKIC0tLSBhL2dkYi9hZGEtbGFuZy5jCiArKysgYi9nZGIvYWRhLWxhbmcuYwot QEAgLTExMzkwLDYgKzExMzkwLDcgQEAgYWRhX29wZXJhdG9yX2xlbmd0aCAoY29uc3Qgc3RydWN0 IGV4cHJlc3Npb24gKmV4cCwgaW50IHBjLCBpbnQgKm9wbGVucCwKK0BAIC0xMTM5MSw2ICsxMTM5 MSw3IEBAIGFkYV9vcGVyYXRvcl9sZW5ndGggKGNvbnN0IHN0cnVjdCBleHByZXNzaW9uICpleHAs IGludCBwYywgaW50ICpvcGxlbnAsCiAgCiAgc3RhdGljIGludAogIGFkYV9vcGVyYXRvcl9jaGVj ayAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50IHBvcywKQEAgLTE3MCw3ICsxNjgsNyBAQCBp bmRleCBlZDUxYWIwLi42ODUxODEwIDEwMDY0NAogIAkJICAgIGludCAoKm9iamZpbGVfZnVuYykg KHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCB2b2lkICpkYXRhKSwKICAJCSAgICB2b2lkICpkYXRh KQogIHsKLUBAIC0xMTQwNCwxMiArMTE0MDUsMTUgQEAgYWRhX29wZXJhdG9yX2NoZWNrIChzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLAorQEAgLTExNDA1LDEyICsxMTQwNiwxNSBAQCBh ZGFfb3BlcmF0b3JfY2hlY2sgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCBwb3MsCiAgCWJy ZWFrOwogIAogICAgICAgIGRlZmF1bHQ6CkBAIC01NjUsMTAgKzU2MywxMCBAQCBpbmRleCA1YmM1 OTMwLi4zYjU0NmE3IDEwMDY0NAogICAgIGlmIHRoZXJlIGlzIG5vIHN1Y2ggZnJhbWUuICBJZiBC TE9DSyBpcyBOVUxMLCBqdXN0IHJldHVybiBOVUxMLiAgKi8KICAKIGRpZmYgLS1naXQgYS9nZGIv YnJlYWtwb2ludC5jIGIvZ2RiL2JyZWFrcG9pbnQuYwotaW5kZXggYzU1ZTVjMC4uMWE3MWNmOCAx MDA2NDQKK2luZGV4IGRiZDk1ODguLmQ1NTFkZGQgMTAwNjQ0CiAtLS0gYS9nZGIvYnJlYWtwb2lu dC5jCiArKysgYi9nZGIvYnJlYWtwb2ludC5jCi1AQCAtNjIsNiArNjIsOCBAQAorQEAgLTYzLDYg KzYzLDggQEAKICAjaW5jbHVkZSAiaml0LmgiCiAgI2luY2x1ZGUgInhtbC1zeXNjYWxsLmgiCiAg I2luY2x1ZGUgInBhcnNlci1kZWZzLmgiCkBAIC01NzcsNyArNTc1LDcgQEAgaW5kZXggYzU1ZTVj MC4uMWE3MWNmOCAxMDA2NDQKICAjaW5jbHVkZSAiY2xpL2NsaS11dGlscy5oIgogIAogIC8qIHJl YWRsaW5lIGluY2x1ZGUgZmlsZXMgKi8KLUBAIC0xMDYsNiArMTA4LDkgQEAgc3RhdGljIHZvaWQg YnJlYWtfY29tbWFuZF8xIChjaGFyICosIGludCwgaW50KTsKK0BAIC0xMDcsNiArMTA5LDkgQEAg c3RhdGljIHZvaWQgYnJlYWtfY29tbWFuZF8xIChjaGFyICosIGludCwgaW50KTsKICAKICBzdGF0 aWMgdm9pZCBtZW50aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqKTsKICAKQEAgLTU4Nyw3ICs1ODUs NyBAQCBpbmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogIC8qIFRoaXMgZnVuY3Rpb24gaXMg dXNlZCBpbiBnZGJ0ayBzb3VyY2VzIGFuZCB0aHVzIGNhbiBub3QgYmUgbWFkZQogICAgIHN0YXRp Yy4gICovCiAgc3RydWN0IGJyZWFrcG9pbnQgKnNldF9yYXdfYnJlYWtwb2ludCAoc3RydWN0IGdk YmFyY2ggKmdkYmFyY2gsCi1AQCAtMTE1OCw2ICsxMTYzLDI1IEBAIHdhdGNocG9pbnRfaW5fdGhy ZWFkX3Njb3BlIChzdHJ1Y3QgYnJlYWtwb2ludCAqYikKK0BAIC0xMTU5LDYgKzExNjQsMjUgQEAg d2F0Y2hwb2ludF9pbl90aHJlYWRfc2NvcGUgKHN0cnVjdCBicmVha3BvaW50ICpiKQogIAkgICAg ICAmJiAhaXNfZXhlY3V0aW5nIChpbmZlcmlvcl9wdGlkKSkpOwogIH0KICAKQEAgLTYxMyw3ICs2 MTEsNyBAQCBpbmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogIC8qIEFzc3VtaW5nIHRoYXQg QiBpcyBhIHdhdGNocG9pbnQ6CiAgICAgLSBSZXBhcnNlIHdhdGNocG9pbnQgZXhwcmVzc2lvbiwg aWYgUkVQQVJTRSBpcyBub24temVybwogICAgIC0gRXZhbHVhdGUgZXhwcmVzc2lvbiBhbmQgc3Rv cmUgdGhlIHJlc3VsdCBpbiBCLT52YWwKLUBAIC0xMjE3LDEyICsxMjQxLDE3IEBAIHVwZGF0ZV93 YXRjaHBvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwgaW50IHJlcGFyc2UpCitAQCAtMTIxOCwx MiArMTI0MiwxNyBAQCB1cGRhdGVfd2F0Y2hwb2ludCAoc3RydWN0IGJyZWFrcG9pbnQgKmIsIGlu dCByZXBhcnNlKQogICAgc3RydWN0IGZyYW1lX2lkIHNhdmVkX2ZyYW1lX2lkOwogICAgaW50IGZy YW1lX3NhdmVkOwogIApAQCAtNjMxLDcgKzYyOSw3IEBAIGluZGV4IGM1NWU1YzAuLjFhNzFjZjgg MTAwNjQ0CiAgICBpZiAoYi0+ZGlzcG9zaXRpb24gPT0gZGlzcF9kZWxfYXRfbmV4dF9zdG9wKQog ICAgICByZXR1cm47CiAgIAotQEAgLTE0NTIsMTMgKzE0ODEsNyBAQCB1cGRhdGVfd2F0Y2hwb2lu dCAoc3RydWN0IGJyZWFrcG9pbnQgKmIsIGludCByZXBhcnNlKQorQEAgLTE0NTMsMTMgKzE0ODIs NyBAQCB1cGRhdGVfd2F0Y2hwb2ludCAoc3RydWN0IGJyZWFrcG9pbnQgKmIsIGludCByZXBhcnNl KQogIFdhdGNocG9pbnQgJWQgZGVsZXRlZCBiZWNhdXNlIHRoZSBwcm9ncmFtIGhhcyBsZWZ0IHRo ZSBibG9ja1xuXAogIGluIHdoaWNoIGl0cyBleHByZXNzaW9uIGlzIHZhbGlkLlxuIiksCiAgCQkg ICAgICAgYi0+bnVtYmVyKTsKQEAgLTY0Niw0MiArNjQ0LDU3IEBAIGluZGV4IGM1NWU1YzAuLjFh NzFjZjggMTAwNjQ0CiAgICAgIH0KICAKICAgIC8qIFJlc3RvcmUgdGhlIHNlbGVjdGVkIGZyYW1l LiAgKi8KLUBAIC0xNTAwLDYgKzE1MjMsMjQgQEAgc2hvdWxkX2JlX2luc2VydGVkIChzdHJ1Y3Qg YnBfbG9jYXRpb24gKmJsKQorQEAgLTE1MDEsNiArMTUyNCw0MCBAQCBzaG91bGRfYmVfaW5zZXJ0 ZWQgKHN0cnVjdCBicF9sb2NhdGlvbiAqYmwpCiAgICByZXR1cm4gMTsKICB9CiAgCi0rLyogU2V0 IG9yIGNsZWFyIGEgU3lzdGVtVGFwIHNlbWFwaG9yZS4gIEFSQ0ggaXMgdGhlIHRhcmdldAotKyAg IGFyY2hpdGVjdHVyZTsgQUREUkVTUyBpcyB0aGUgYWRkcmVzcyBvZiB0aGUgc2VtYXBob3JlLCBh bmQgU0VUVElORwotKyAgIGlzIGVpdGhlciB6ZXJvIG9yIG9uZS4gICovCisrLyogU2VlIHRoZSBj b21tZW50IGluIGJyZWFrcG9pbnQuaC4gICovCiArCi0rc3RhdGljIHZvaWQKLSttb2RpZnlfc2Vt YXBob3JlIChzdHJ1Y3QgZ2RiYXJjaCAqYXJjaCwgQ09SRV9BRERSIGFkZHJlc3MsIGludCBzZXR0 aW5nKQorK3ZvaWQKKyttb2RpZnlfc2VtYXBob3JlIChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYywg aW50IHNldCkKICt7CisrICBzdHJ1Y3QgZ2RiYXJjaCAqYXJjaCA9IGxvYy0+Z2RiYXJjaDsKICsg IGdkYl9ieXRlIGJ5dGVzW3NpemVvZiAoTE9OR0VTVCldOwogKyAgLyogVGhlIEFCSSBzcGVjaWZp ZXMgInVuc2lnbmVkIHNob3J0Ii4gICovCiArICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGJ1aWx0aW5f dHlwZSAoYXJjaCktPmJ1aWx0aW5fdW5zaWduZWRfc2hvcnQ7CisrICBDT1JFX0FERFIgYWRkcmVz cyA9IGxvYy0+c2VtYXBob3JlOworKyAgVUxPTkdFU1QgdmFsdWU7CisrCisrICBpZiAoYWRkcmVz cyA9PSAwKQorKyAgICByZXR1cm47CisrCisrICAvKiBTd2FsbG93IGVycm9ycy4gICovCisrICBp ZiAodGFyZ2V0X3JlYWRfbWVtb3J5IChhZGRyZXNzLCBieXRlcywgVFlQRV9MRU5HVEggKHR5cGUp KSAhPSAwKQorKyAgICByZXR1cm47CisrCisrICB2YWx1ZSA9IGV4dHJhY3RfdW5zaWduZWRfaW50 ZWdlciAoYnl0ZXMsIFRZUEVfTEVOR1RIICh0eXBlKSwKKysJCQkJICAgIGdkYmFyY2hfYnl0ZV9v cmRlciAoYXJjaCkpOworKyAgLyogTm90ZSB0aGF0IHdlIGV4cGxpY2l0bHkgZG9uJ3Qgd29ycnkg YWJvdXQgb3ZlcmZsb3cgb3IKKysgICAgIHVuZGVyZmxvdy4gICovCisrICBpZiAoc2V0KQorKyAg ICArK3ZhbHVlOworKyAgZWxzZQorKyAgICAtLXZhbHVlOwogKwogKyAgc3RvcmVfdW5zaWduZWRf aW50ZWdlciAoYnl0ZXMsIFRZUEVfTEVOR1RIICh0eXBlKSwKLSsJCQkgIGdkYmFyY2hfYnl0ZV9v cmRlciAoYXJjaCksIHNldHRpbmcpOworKwkJCSAgZ2RiYXJjaF9ieXRlX29yZGVyIChhcmNoKSwg dmFsdWUpOwogKwotKyAgLyogSWdub3JlIGVycm9ycy4gIEZJWE1FLiAgKi8KICsgIHRhcmdldF93 cml0ZV9tZW1vcnkgKGFkZHJlc3MsIGJ5dGVzLCBUWVBFX0xFTkdUSCAodHlwZSkpOwogK30KICsK ICAvKiBJbnNlcnQgYSBsb3ctbGV2ZWwgImJyZWFrcG9pbnQiIG9mIHNvbWUgdHlwZS4gIEJMIGlz IHRoZSBicmVha3BvaW50CiAgICAgbG9jYXRpb24uICBBbnkgZXJyb3IgbWVzc2FnZXMgYXJlIHBy aW50ZWQgdG8gVE1QX0VSUk9SX1NUUkVBTTsgYW5kCiAgICAgRElTQUJMRURfQlJFQUtTLCBhbmQg SFdfQlJFQUtQT0lOVF9FUlJPUiBhcmUgdXNlZCB0byByZXBvcnQgcHJvYmxlbXMuCi1AQCAtMTU5 NSw2ICsxNjM2LDkgQEAgaW5zZXJ0X2JwX2xvY2F0aW9uIChzdHJ1Y3QgYnBfbG9jYXRpb24gKmJs LAorQEAgLTE1OTYsNiArMTY1Myw4IEBAIGluc2VydF9icF9sb2NhdGlvbiAoc3RydWN0IGJwX2xv Y2F0aW9uICpibCwKICAJICBlbHNlCiAgCSAgICB2YWwgPSB0YXJnZXRfaW5zZXJ0X2JyZWFrcG9p bnQgKGJsLT5nZGJhcmNoLAogIAkJCQkJICAgICZibC0+dGFyZ2V0X2luZm8pOwogKwotKwkgIGlm IChibC0+c2VtYXBob3JlICE9IDApCi0rCSAgICBtb2RpZnlfc2VtYXBob3JlIChibC0+Z2RiYXJj aCwgYmwtPnNlbWFwaG9yZSwgMSk7CisrCSAgbW9kaWZ5X3NlbWFwaG9yZSAoYmwsIDEpOwogIAl9 CiAgICAgICAgZWxzZQogIAl7Ci1AQCAtMTg0OSw2ICsxODkzLDcgQEAgaW5zZXJ0X2JyZWFrcG9p bnRfbG9jYXRpb25zICh2b2lkKQorQEAgLTE4NTAsNiArMTkwOSw3IEBAIGluc2VydF9icmVha3Bv aW50X2xvY2F0aW9ucyAodm9pZCkKICAgIGludCB2YWwgPSAwOwogICAgaW50IGRpc2FibGVkX2Jy ZWFrcyA9IDA7CiAgICBpbnQgaHdfYnJlYWtwb2ludF9lcnJvciA9IDA7CkBAIC02ODksNyArNzAy LDcgQEAgaW5kZXggYzU1ZTVjMC4uMWE3MWNmOCAxMDA2NDQKICAKICAgIHN0cnVjdCB1aV9maWxl ICp0bXBfZXJyb3Jfc3RyZWFtID0gbWVtX2ZpbGVvcGVuICgpOwogICAgc3RydWN0IGNsZWFudXAg KmNsZWFudXBzID0gbWFrZV9jbGVhbnVwX3VpX2ZpbGVfZGVsZXRlICh0bXBfZXJyb3Jfc3RyZWFt KTsKLUBAIC0xODc2LDkgKzE5MjEsMTMgQEAgaW5zZXJ0X2JyZWFrcG9pbnRfbG9jYXRpb25zICh2 b2lkKQorQEAgLTE4NzcsOSArMTkzNywxMyBAQCBpbnNlcnRfYnJlYWtwb2ludF9sb2NhdGlvbnMg KHZvaWQpCiAgICAgICAgLyogRm9yIHRhcmdldHMgdGhhdCBzdXBwb3J0IGdsb2JhbCBicmVha3Bv aW50cywgdGhlcmUncyBubyBuZWVkCiAgCSB0byBzZWxlY3QgYW4gaW5mZXJpb3IgdG8gaW5zZXJ0 IGJyZWFrcG9pbnQgdG8uICBJbiBmYWN0LCBldmVuCiAgCSBpZiB3ZSBhcmVuJ3QgYXR0YWNoZWQg dG8gYW55IHByb2Nlc3MgeWV0LCB3ZSBzaG91bGQgc3RpbGwKQEAgLTcwNSw3ICs3MTgsNyBAQCBp bmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogIAljb250aW51ZTsKICAKICAgICAgICB2YWwg PSBpbnNlcnRfYnBfbG9jYXRpb24gKGJsLCB0bXBfZXJyb3Jfc3RyZWFtLCAmZGlzYWJsZWRfYnJl YWtzLAotQEAgLTE5MDIsMTMgKzE5NTEsMTkgQEAgaW5zZXJ0X2JyZWFrcG9pbnRfbG9jYXRpb25z ICh2b2lkKQorQEAgLTE5MDMsMTMgKzE5NjcsMTkgQEAgaW5zZXJ0X2JyZWFrcG9pbnRfbG9jYXRp b25zICh2b2lkKQogIAogICAgICAgIGlmIChicHQtPmRpc3Bvc2l0aW9uID09IGRpc3BfZGVsX2F0 X25leHRfc3RvcCkKICAJY29udGludWU7CkBAIC03MzEsNyArNzQ0LDcgQEAgaW5kZXggYzU1ZTVj MC4uMWE3MWNmOCAxMDA2NDQKICAgICAgICBpZiAoc29tZV9mYWlsZWQpCiAgCXsKICAJICBmb3Ig KGxvYyA9IGJwdC0+bG9jOyBsb2M7IGxvYyA9IGxvYy0+bmV4dCkKLUBAIC0yMDkwLDE1ICsyMTQ1 LDI0IEBAIHN0cnVjdCBicmVha3BvaW50X29iamZpbGVfZGF0YQorQEAgLTIwOTEsMTUgKzIxNjEs MjQgQEAgc3RydWN0IGJyZWFrcG9pbnRfb2JqZmlsZV9kYXRhCiAgICAvKiBNaW5pbWFsIHN5bWJv bChzKSBmb3IgImxvbmdqbXAiLCAic2lnbG9uZ2ptcCIsIGV0Yy4gKGlmIGFueSkuICAqLwogICAg c3RydWN0IG1pbmltYWxfc3ltYm9sICpsb25nam1wX21zeW1bTlVNX0xPTkdKTVBfTkFNRVNdOwog IApAQCAtNzU2LDcgKzc2OSw3IEBAIGluZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgLyog TWluaW1hbCBzeW1ib2wgbm90IGZvdW5kIHNlbnRpbmVsLiAgKi8KICBzdGF0aWMgc3RydWN0IG1p bmltYWxfc3ltYm9sIG1zeW1fbm90X2ZvdW5kOwogIAotQEAgLTIyMDYsNiArMjI3MCwyOSBAQCBj cmVhdGVfbG9uZ2ptcF9tYXN0ZXJfYnJlYWtwb2ludCAodm9pZCkKK0BAIC0yMjA3LDYgKzIyODYs MjkgQEAgY3JlYXRlX2xvbmdqbXBfbWFzdGVyX2JyZWFrcG9pbnQgKHZvaWQpCiAgCiAgICAgICAg YnBfb2JqZmlsZV9kYXRhID0gZ2V0X2JyZWFrcG9pbnRfb2JqZmlsZV9kYXRhIChvYmpmaWxlKTsK ICAKQEAgLTc4Niw3ICs3OTksNyBAQCBpbmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogICAg ICAgIGZvciAoaSA9IDA7IGkgPCBOVU1fTE9OR0pNUF9OQU1FUzsgaSsrKQogIAl7CiAgCSAgc3Ry dWN0IGJyZWFrcG9pbnQgKmI7Ci1AQCAtMjMxNCw2ICsyNDAxLDMxIEBAIGNyZWF0ZV9leGNlcHRp b25fbWFzdGVyX2JyZWFrcG9pbnQgKHZvaWQpCitAQCAtMjMxNSw2ICsyNDE3LDMxIEBAIGNyZWF0 ZV9leGNlcHRpb25fbWFzdGVyX2JyZWFrcG9pbnQgKHZvaWQpCiAgCiAgICAgICAgYnBfb2JqZmls ZV9kYXRhID0gZ2V0X2JyZWFrcG9pbnRfb2JqZmlsZV9kYXRhIChvYmpmaWxlKTsKICAKQEAgLTgx OCwxNyArODMxLDE2IEBAIGluZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgICAgICAgaWYg KG1zeW1fbm90X2ZvdW5kX3AgKGJwX29iamZpbGVfZGF0YS0+ZXhjZXB0aW9uX21zeW0pKQogIAlj b250aW51ZTsKICAKLUBAIC0yNTMyLDYgKzI2NDQsOSBAQCByZW1vdmVfYnJlYWtwb2ludF8xIChz dHJ1Y3QgYnBfbG9jYXRpb24gKmJsLCBpbnNlcnRpb25fc3RhdGVfdCBpcykKK0BAIC0yNTMzLDYg KzI2NjAsOCBAQCByZW1vdmVfYnJlYWtwb2ludF8xIChzdHJ1Y3QgYnBfbG9jYXRpb24gKmJsLCBp bnNlcnRpb25fc3RhdGVfdCBpcykKICAJICAgIHZhbCA9IHRhcmdldF9yZW1vdmVfaHdfYnJlYWtw b2ludCAoYmwtPmdkYmFyY2gsICZibC0+dGFyZ2V0X2luZm8pOwogIAkgIGVsc2UKICAJICAgIHZh bCA9IHRhcmdldF9yZW1vdmVfYnJlYWtwb2ludCAoYmwtPmdkYmFyY2gsICZibC0+dGFyZ2V0X2lu Zm8pOwogKwotKwkgIGlmIChibC0+c2VtYXBob3JlICE9IDApCi0rCSAgICBtb2RpZnlfc2VtYXBo b3JlIChibC0+Z2RiYXJjaCwgYmwtPnNlbWFwaG9yZSwgMCk7CisrCSAgbW9kaWZ5X3NlbWFwaG9y ZSAoYmwsIDApOwogIAl9CiAgICAgICAgZWxzZQogIAl7Ci1AQCAtMzQ4OCw2ICszNjAzLDggQEAg cHJpbnRfaXRfdHlwaWNhbCAoYnBzdGF0IGJzKQorQEAgLTM0ODksNiArMzYxOCw4IEBAIHByaW50 X2l0X3R5cGljYWwgKGJwc3RhdCBicykKICAgICAgY2FzZSBicF90cmFjZXBvaW50OgogICAgICBj YXNlIGJwX2Zhc3RfdHJhY2Vwb2ludDoKICAgICAgY2FzZSBicF9qaXRfZXZlbnQ6CkBAIC04Mzcs NyArODQ5LDcgQEAgaW5kZXggYzU1ZTVjMC4uMWE3MWNmOCAxMDA2NDQKICAgICAgZGVmYXVsdDoK ICAgICAgICByZXN1bHQgPSBQUklOVF9VTktOT1dOOwogICAgICAgIGJyZWFrOwotQEAgLTM3MTMs NiArMzgzMCw4IEBAIHdhdGNocG9pbnRfY2hlY2sgKHZvaWQgKnApCitAQCAtMzcxNCw2ICszODQ1 LDggQEAgd2F0Y2hwb2ludF9jaGVjayAodm9pZCAqcCkKICAgIGdkYl9hc3NlcnQgKGJzLT5icmVh a3BvaW50X2F0ICE9IE5VTEwpOwogICAgYiA9IGJzLT5icmVha3BvaW50X2F0OwogIApAQCAtODQ2 LDcgKzg1OCw3IEBAIGluZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgICAvKiBJZiB0aGlz IGlzIGEgbG9jYWwgd2F0Y2hwb2ludCwgd2Ugb25seSB3YW50IHRvIGNoZWNrIGlmIHRoZQogICAg ICAgd2F0Y2hwb2ludCBmcmFtZSBpcyBpbiBzY29wZSBpZiB0aGUgY3VycmVudCB0aHJlYWQgaXMg dGhlIHRocmVhZAogICAgICAgdGhhdCB3YXMgdXNlZCB0byBjcmVhdGUgdGhlIHdhdGNocG9pbnQu ICAqLwotQEAgLTM4MjIsMTMgKzM5NDEsNyBAQCB3YXRjaHBvaW50X2NoZWNrICh2b2lkICpwKQor QEAgLTM4MjMsMTMgKzM5NTYsNyBAQCB3YXRjaHBvaW50X2NoZWNrICh2b2lkICpwKQogIAkJICAg IiBkZWxldGVkIGJlY2F1c2UgdGhlIHByb2dyYW0gaGFzIGxlZnQgdGhlIGJsb2NrIGluXG5cCiAg d2hpY2ggaXRzIGV4cHJlc3Npb24gaXMgdmFsaWQuXG4iKTsgICAgIAogIApAQCAtODYxLDcgKzg3 Myw3IEBAIGluZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgCiAgICAgICAgcmV0dXJuIFdQ X0RFTEVURUQ7CiAgICAgIH0KLUBAIC00MDMzLDkgKzQxNDYsNyBAQCBicHN0YXRfY2hlY2tfd2F0 Y2hwb2ludCAoYnBzdGF0IGJzKQorQEAgLTQwMzQsOSArNDE2MSw3IEBAIGJwc3RhdF9jaGVja193 YXRjaHBvaW50IChicHN0YXQgYnMpCiAgCSAgICBjYXNlIDA6CiAgCSAgICAgIC8qIEVycm9yIGZy b20gY2F0Y2hfZXJyb3JzLiAgKi8KICAJICAgICAgcHJpbnRmX2ZpbHRlcmVkIChfKCJXYXRjaHBv aW50ICVkIGRlbGV0ZWQuXG4iKSwgYi0+bnVtYmVyKTsKQEAgLTg3Miw3ICs4ODQsNyBAQCBpbmRl eCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogIAkgICAgICAvKiBXZSd2ZSBhbHJlYWR5IHByaW50 ZWQgd2hhdCBuZWVkcyB0byBiZSBwcmludGVkLiAgKi8KICAJICAgICAgYnMtPnByaW50X2l0ID0g cHJpbnRfaXRfZG9uZTsKICAJICAgICAgYnJlYWs7Ci1AQCAtNDI0Niw3ICs0MzU3LDcgQEAgYnBz dGF0X3N0b3Bfc3RhdHVzIChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqYXNwYWNlLAorQEAgLTQyNDcs NyArNDM3Miw3IEBAIGJwc3RhdF9zdG9wX3N0YXR1cyAoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmFz cGFjZSwKICAJICAgICB3YXRjaHBvaW50IGFzIHRyaWdnZXJlZCBzbyB0aGF0IHdlIHdpbGwgaGFu ZGxlIHRoZQogIAkgICAgIG91dC1vZi1zY29wZSBldmVudC4gIFdlJ2xsIGdldCB0byB0aGUgd2F0 Y2hwb2ludCBuZXh0CiAgCSAgICAgaXRlcmF0aW9uLiAgKi8KQEAgLTg4MSw3ICs4OTMsNyBAQCBp bmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogIAkgICAgYi0+cmVsYXRlZF9icmVha3BvaW50 LT53YXRjaHBvaW50X3RyaWdnZXJlZCA9IHdhdGNoX3RyaWdnZXJlZF95ZXM7CiAgCX0KICAgICAg fQotQEAgLTQzNjgsNyArNDQ3OSw3IEBAIGhhbmRsZV9qaXRfZXZlbnQgKHZvaWQpCitAQCAtNDM2 OSw3ICs0NDk0LDcgQEAgaGFuZGxlX2ppdF9ldmVudCAodm9pZCkKICAvKiBEZWNpZGUgd2hhdCBp bmZydW4gbmVlZHMgdG8gZG8gd2l0aCB0aGlzIGJwc3RhdC4gICovCiAgCiAgc3RydWN0IGJwc3Rh dF93aGF0CkBAIC04OTAsNyArOTAyLDcgQEAgaW5kZXggYzU1ZTVjMC4uMWE3MWNmOCAxMDA2NDQK ICB7CiAgICBzdHJ1Y3QgYnBzdGF0X3doYXQgcmV0dmFsOwogICAgLyogV2UgbmVlZCB0byBkZWZl ciBjYWxsaW5nIGBzb2xpYl9hZGQnLCBhcyBhZGRpbmcgbmV3IHN5bWJvbHMKLUBAIC00Mzc2LDEy ICs0NDg3LDEzIEBAIGJwc3RhdF93aGF0IChicHN0YXQgYnMpCitAQCAtNDM3NywxMiArNDUwMiwx MyBAQCBicHN0YXRfd2hhdCAoYnBzdGF0IGJzKQogICAgICAgYW5kIGhlbmNlIG1heSBjbGVhciB1 bnByb2Nlc3NlZCBlbnRyaWVzIGluIHRoZSBCUyBjaGFpbi4gICovCiAgICBpbnQgc2hsaWJfZXZl bnQgPSAwOwogICAgaW50IGppdF9ldmVudCA9IDA7CkBAIC05MDUsNyArOTE3LDcgQEAgaW5kZXgg YzU1ZTVjMC4uMWE3MWNmOCAxMDA2NDQKICAgICAgewogICAgICAgIC8qIEV4dHJhY3QgdGhpcyBC UydzIGFjdGlvbi4gIEFmdGVyIHByb2Nlc3NpbmcgZWFjaCBCUywgd2UgY2hlY2sKICAJIGlmIGl0 cyBhY3Rpb24gb3ZlcnJpZGVzIGFsbCB3ZSd2ZSBzZWVtIHNvIGZhci4gICovCi1AQCAtNDUxMSw2 ICs0NjIzLDE2IEBAIGJwc3RhdF93aGF0IChicHN0YXQgYnMpCitAQCAtNDUxMiw2ICs0NjM4LDE2 IEBAIGJwc3RhdF93aGF0IChicHN0YXQgYnMpCiAgCSAgICAgb3V0IGFscmVhZHkuICAqLwogIAkg IGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCiAgCQkJICBfKCJicHN0YXRfd2hh dDogdHJhY2Vwb2ludCBlbmNvdW50ZXJlZCIpKTsKQEAgLTkyMiw3ICs5MzQsNyBAQCBpbmRleCBj NTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogIAlkZWZhdWx0OgogIAkgIGludGVybmFsX2Vycm9yIChf X0ZJTEVfXywgX19MSU5FX18sCiAgCQkJICBfKCJicHN0YXRfd2hhdDogdW5oYW5kbGVkIGJwdHlw ZSAlZCIpLCAoaW50KSBicHR5cGUpOwotQEAgLTQ1MTksNiArNDY0MSw5IEBAIGJwc3RhdF93aGF0 IChicHN0YXQgYnMpCitAQCAtNDUyMCw2ICs0NjU2LDkgQEAgYnBzdGF0X3doYXQgKGJwc3RhdCBi cykKICAgICAgICByZXR2YWwubWFpbl9hY3Rpb24gPSBtYXggKHJldHZhbC5tYWluX2FjdGlvbiwg dGhpc19hY3Rpb24pOwogICAgICB9CiAgCkBAIC05MzIsNyArOTQ0LDcgQEAgaW5kZXggYzU1ZTVj MC4uMWE3MWNmOCAxMDA2NDQKICAgIGlmIChzaGxpYl9ldmVudCkKICAgICAgewogICAgICAgIGlm IChkZWJ1Z19pbmZydW4pCi1AQCAtNDU0OCw2ICs0NjczLDIzIEBAIGJwc3RhdF93aGF0IChicHN0 YXQgYnMpCitAQCAtNDU0OSw2ICs0Njg4LDIzIEBAIGJwc3RhdF93aGF0IChicHN0YXQgYnMpCiAg ICAgICAgaGFuZGxlX2ppdF9ldmVudCAoKTsKICAgICAgfQogIApAQCAtOTU2LDcgKzk2OCw3IEBA IGluZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgICByZXR1cm4gcmV0dmFsOwogIH0KICAK LUBAIC00NzAzLDYgKzQ4NDUsOCBAQCBicHR5cGVfc3RyaW5nIChlbnVtIGJwdHlwZSB0eXBlKQor QEAgLTQ3MDYsNiArNDg2Miw4IEBAIGJwdHlwZV9zdHJpbmcgKGVudW0gYnB0eXBlIHR5cGUpCiAg ICAgIHticF9mYXN0X3RyYWNlcG9pbnQsICJmYXN0IHRyYWNlcG9pbnQifSwKICAgICAge2JwX3N0 YXRpY190cmFjZXBvaW50LCAic3RhdGljIHRyYWNlcG9pbnQifSwKICAgICAge2JwX2ppdF9ldmVu dCwgImppdCBldmVudHMifSwKQEAgLTk2NSw3ICs5NzcsNyBAQCBpbmRleCBjNTVlNWMwLi4xYTcx Y2Y4IDEwMDY0NAogICAgfTsKICAKICAgIGlmICgoKGludCkgdHlwZSA+PSAoc2l6ZW9mIChicHR5 cGVzKSAvIHNpemVvZiAoYnB0eXBlc1swXSkpKQotQEAgLTQ4MzcsNiArNDk4MSw4IEBAIHByaW50 X29uZV9icmVha3BvaW50X2xvY2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwKK0BAIC00ODQw LDYgKzQ5OTgsOCBAQCBwcmludF9vbmVfYnJlYWtwb2ludF9sb2NhdGlvbiAoc3RydWN0IGJyZWFr cG9pbnQgKmIsCiAgICAgICAgY2FzZSBicF9mYXN0X3RyYWNlcG9pbnQ6CiAgICAgICAgY2FzZSBi cF9zdGF0aWNfdHJhY2Vwb2ludDoKICAgICAgICBjYXNlIGJwX2ppdF9ldmVudDoKQEAgLTk3NCw3 ICs5ODYsNyBAQCBpbmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogIAlpZiAob3B0cy5hZGRy ZXNzcHJpbnQpCiAgCSAgewogIAkgICAgYW5ub3RhdGVfZmllbGQgKDQpOwotQEAgLTUxMTIsNyAr NTI1OCw4IEBAIHVzZXJfc2V0dGFibGVfYnJlYWtwb2ludCAoY29uc3Qgc3RydWN0IGJyZWFrcG9p bnQgKmIpCitAQCAtNTExNSw3ICs1Mjc1LDggQEAgdXNlcl9zZXR0YWJsZV9icmVha3BvaW50IChj b25zdCBzdHJ1Y3QgYnJlYWtwb2ludCAqYikKICAJICB8fCBiLT50eXBlID09IGJwX2NhdGNocG9p bnQKICAJICB8fCBiLT50eXBlID09IGJwX2hhcmR3YXJlX2JyZWFrcG9pbnQKICAJICB8fCBpc190 cmFjZXBvaW50IChiKQpAQCAtOTg0LDcgKzk5Niw3IEBAIGluZGV4IGM1NWU1YzAuLjFhNzFjZjgg MTAwNjQ0CiAgfQogIAogIC8qIFJldHVybiB0cnVlIGlmIHRoaXMgYnJlYWtwb2ludCB3YXMgc2V0 IGJ5IHRoZSB1c2VyLCBmYWxzZSBpZiBpdCBpcwotQEAgLTU2MDgsNiArNTc1NSw4IEBAIGFsbG9j YXRlX2JwX2xvY2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0KQorQEAgLTU2MTEsNiArNTc3 Miw4IEBAIGFsbG9jYXRlX2JwX2xvY2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0KQogICAg ICBjYXNlIGJwX2xvbmdqbXBfbWFzdGVyOgogICAgICBjYXNlIGJwX3N0ZF90ZXJtaW5hdGVfbWFz dGVyOgogICAgICBjYXNlIGJwX2V4Y2VwdGlvbl9tYXN0ZXI6CkBAIC05OTMsNyArMTAwNSw3IEBA IGluZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgICAgICAgbG9jLT5sb2NfdHlwZSA9IGJw X2xvY19zb2Z0d2FyZV9icmVha3BvaW50OwogICAgICAgIGJyZWFrOwogICAgICBjYXNlIGJwX2hh cmR3YXJlX2JyZWFrcG9pbnQ6Ci1AQCAtNTY5Nyw2ICs1ODQ2LDcgQEAgc2V0X3Jhd19icmVha3Bv aW50X3dpdGhvdXRfbG9jYXRpb24gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTU3MDAs NiArNTg2Myw3IEBAIHNldF9yYXdfYnJlYWtwb2ludF93aXRob3V0X2xvY2F0aW9uIChzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaCwKICAgIGItPm9wcyA9IE5VTEw7CiAgICBiLT5jb25kaXRpb25fbm90 X3BhcnNlZCA9IDA7CiAgICBiLT5weV9icF9vYmplY3QgPSBOVUxMOwpAQCAtMTAwMSw3ICsxMDEz LDcgQEAgaW5kZXggYzU1ZTVjMC4uMWE3MWNmOCAxMDA2NDQKICAKICAgIC8qIEFkZCB0aGlzIGJy ZWFrcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgY2hhaW4gc28gdGhhdCBhIGxpc3Qgb2YKICAgICAg IGJyZWFrcG9pbnRzIHdpbGwgY29tZSBvdXQgaW4gb3JkZXIgb2YgaW5jcmVhc2luZyBudW1iZXJz LiAgKi8KLUBAIC01NzEzLDkgKzU4NjMsMTIgQEAgc2V0X3Jhd19icmVha3BvaW50X3dpdGhvdXRf bG9jYXRpb24gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTU3MTYsOSArNTg4MCwxMiBA QCBzZXRfcmF3X2JyZWFrcG9pbnRfd2l0aG91dF9sb2NhdGlvbiAoc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsCiAgICByZXR1cm4gYjsKICB9CiAgCkBAIC0xMDE2LDcgKzEwMjgsNyBAQCBpbmRleCBj NTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogIHsKICAgIGdkYl9hc3NlcnQgKGxvYy0+b3duZXIgIT0g TlVMTCk7CiAgCi1AQCAtNTcyMyw4ICs1ODc2LDMzIEBAIHNldF9icmVha3BvaW50X2xvY2F0aW9u X2Z1bmN0aW9uIChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKK0BAIC01NzI2LDggKzU4OTMsMzMg QEAgc2V0X2JyZWFrcG9pbnRfbG9jYXRpb25fZnVuY3Rpb24gKHN0cnVjdCBicF9sb2NhdGlvbiAq bG9jKQogICAgICAgIHx8IGxvYy0+b3duZXItPnR5cGUgPT0gYnBfaGFyZHdhcmVfYnJlYWtwb2lu dAogICAgICAgIHx8IGlzX3RyYWNlcG9pbnQgKGxvYy0+b3duZXIpKQogICAgICB7CkBAIC0xMDUy LDcgKzEwNjQsNyBAQCBpbmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogICAgICAgIGlmIChs b2MtPmZ1bmN0aW9uX25hbWUpCiAgCWxvYy0+ZnVuY3Rpb25fbmFtZSA9IHhzdHJkdXAgKGxvYy0+ ZnVuY3Rpb25fbmFtZSk7CiAgICAgIH0KLUBAIC01Nzg3LDYgKzU5NjUsNyBAQCBzZXRfcmF3X2Jy ZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTU3OTAsNiArNTk4Miw3IEBA IHNldF9yYXdfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiAgICBiLT5sb2Mt PnJlcXVlc3RlZF9hZGRyZXNzID0gc2FsLnBjOwogICAgYi0+bG9jLT5hZGRyZXNzID0gYWRqdXN0 ZWRfYWRkcmVzczsKICAgIGItPmxvYy0+cHNwYWNlID0gc2FsLnBzcGFjZTsKQEAgLTEwNjAsNyAr MTA3Miw3IEBAIGluZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgCiAgICAvKiBTdG9yZSB0 aGUgcHJvZ3JhbSBzcGFjZSB0aGF0IHdhcyB1c2VkIHRvIHNldCB0aGUgYnJlYWtwb2ludCwgZm9y CiAgICAgICBicmVha3BvaW50IHJlc2V0dGluZy4gICovCi1AQCAtNTc5OSw3ICs1OTc4LDggQEAg c2V0X3Jhd19icmVha3BvaW50IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKK0BAIC01ODAyLDcg KzU5OTUsOCBAQCBzZXRfcmF3X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAog ICAgYi0+bG9jLT5zZWN0aW9uID0gc2FsLnNlY3Rpb247CiAgICBiLT5saW5lX251bWJlciA9IHNh bC5saW5lOwogIApAQCAtMTA3MCw3ICsxMDgyLDcgQEAgaW5kZXggYzU1ZTVjMC4uMWE3MWNmOCAx MDA2NDQKICAKICAgIGJyZWFrcG9pbnRzX2NoYW5nZWQgKCk7CiAgCi1AQCAtNjkxNiwxMyArNzA5 NiwxNCBAQCBjbG9uZV9tb21lbnRhcnlfYnJlYWtwb2ludCAoc3RydWN0IGJyZWFrcG9pbnQgKm9y aWcpCitAQCAtNjkxOSwxMyArNzExMywxNCBAQCBjbG9uZV9tb21lbnRhcnlfYnJlYWtwb2ludCAo c3RydWN0IGJyZWFrcG9pbnQgKm9yaWcpCiAgCiAgICBjb3B5ID0gc2V0X3Jhd19icmVha3BvaW50 X3dpdGhvdXRfbG9jYXRpb24gKG9yaWctPmdkYmFyY2gsIG9yaWctPnR5cGUpOwogICAgY29weS0+ bG9jID0gYWxsb2NhdGVfYnBfbG9jYXRpb24gKGNvcHkpOwpAQCAtMTA4Niw3ICsxMDk4LDcgQEAg aW5kZXggYzU1ZTVjMC4uMWE3MWNmOCAxMDA2NDQKICAKICAgIGlmIChvcmlnLT5zb3VyY2VfZmls ZSA9PSBOVUxMKQogICAgICBjb3B5LT5zb3VyY2VfZmlsZSA9IE5VTEw7Ci1AQCAtNzAxNiw2ICs3 MTk3LDcgQEAgbWVudGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIpCitAQCAtNzAxOSw2ICs3MjE0 LDcgQEAgbWVudGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIpCiAgCWRvX2NsZWFudXBzICh1aV9v dXRfY2hhaW4pOwogIAlicmVhazsKICAgICAgICBjYXNlIGJwX2JyZWFrcG9pbnQ6CkBAIC0xMDk0 LDcgKzExMDYsNyBAQCBpbmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogIAlpZiAodWlfb3V0 X2lzX21pX2xpa2VfcCAodWlvdXQpKQogIAkgIHsKICAJICAgIHNheV93aGVyZSA9IDA7Ci1AQCAt NzAyNiw2ICs3MjA4LDggQEAgbWVudGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIpCitAQCAtNzAy OSw2ICs3MjI1LDggQEAgbWVudGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIpCiAgCWVsc2UKICAJ ICBwcmludGZfZmlsdGVyZWQgKF8oIkJyZWFrcG9pbnQiKSk7CiAgCXByaW50Zl9maWx0ZXJlZCAo XygiICVkIiksIGItPm51bWJlcik7CkBAIC0xMTAzLDcgKzExMTUsNyBAQCBpbmRleCBjNTVlNWMw Li4xYTcxY2Y4IDEwMDY0NAogIAlzYXlfd2hlcmUgPSAxOwogIAlicmVhazsKICAgICAgICBjYXNl IGJwX2hhcmR3YXJlX2JyZWFrcG9pbnQ6Ci1AQCAtNzA4NSw2ICs3MjY5LDcgQEAgbWVudGlvbiAo c3RydWN0IGJyZWFrcG9pbnQgKmIpCitAQCAtNzA4OCw2ICs3Mjg2LDcgQEAgbWVudGlvbiAoc3Ry dWN0IGJyZWFrcG9pbnQgKmIpCiAgICAgICAgY2FzZSBicF9sb25nam1wX21hc3RlcjoKICAgICAg ICBjYXNlIGJwX3N0ZF90ZXJtaW5hdGVfbWFzdGVyOgogICAgICAgIGNhc2UgYnBfZXhjZXB0aW9u X21hc3RlcjoKQEAgLTExMTEsNyArMTEyMyw3IEBAIGluZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAw NjQ0CiAgCWJyZWFrOwogICAgICAgIH0KICAKLUBAIC03MTQyLDEwICs3MzI3LDEyIEBAIGFkZF9s b2NhdGlvbl90b19icmVha3BvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwKK0BAIC03MTQ1LDEw ICs3MzQ0LDEyIEBAIGFkZF9sb2NhdGlvbl90b19icmVha3BvaW50IChzdHJ1Y3QgYnJlYWtwb2lu dCAqYiwKICAgIGxvYy0+YWRkcmVzcyA9IGFkanVzdF9icmVha3BvaW50X2FkZHJlc3MgKGxvYy0+ Z2RiYXJjaCwKICAJCQkJCSAgICBsb2MtPnJlcXVlc3RlZF9hZGRyZXNzLCBiLT50eXBlKTsKICAg IGxvYy0+cHNwYWNlID0gc2FsLT5wc3BhY2U7CkBAIC0xMTI1LDcgKzExMzcsMzMgQEAgaW5kZXgg YzU1ZTVjMC4uMWE3MWNmOCAxMDA2NDQKICAgIHJldHVybiBsb2M7CiAgfQogIAwKLUBAIC04NTgw LDYgKzg3NjcsNyBAQCB3YXRjaF9jb21tYW5kXzEgKGNoYXIgKmFyZywgaW50IGFjY2Vzc2ZsYWcs IGludCBmcm9tX3R0eSwKK0BAIC03NDkzLDYgKzc2OTQsMTYgQEAgY3JlYXRlX2JyZWFrcG9pbnRz X3NhbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisgeworICAgaW50IGk7CisgCisrICBpZiAo Y2Fub25pY2FsLT5wcmVfZXhwYW5kZWQpCisrICAgIHsKKysgICAgICBjcmVhdGVfYnJlYWtwb2lu dF9zYWwgKGdkYmFyY2gsIHNhbHMsIGNhbm9uaWNhbC0+Y2Fub25pY2FsWzBdLAorKwkJCSAgICAg Y29uZF9zdHJpbmcsIHR5cGUsIGRpc3Bvc2l0aW9uLAorKwkJCSAgICAgdGhyZWFkLCB0YXNrLCBp Z25vcmVfY291bnQsIG9wcywKKysJCQkgICAgIGZyb21fdHR5LCBlbmFibGVkLCBpbnRlcm5hbCwK KysJCQkgICAgIGNhbm9uaWNhbC0+c3BlY2lhbF9kaXNwbGF5KTsKKysgICAgICByZXR1cm47Cisr ICAgIH0KKysKKyAgIGZvciAoaSA9IDA7IGkgPCBzYWxzLm5lbHRzOyArK2kpCisgICAgIHsKKyAg ICAgICBzdHJ1Y3Qgc3ltdGFic19hbmRfbGluZXMgZXhwYW5kZWQgPSAKK0BAIC04MDE4LDcgKzgy MjksNyBAQCBjcmVhdGVfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisgICAg ICAgICBtZW50aW9uIChiKTsKKyAgICAgfQorICAgCistICBpZiAoc2Fscy5uZWx0cyA+IDEpCisr ICBpZiAoc2Fscy5uZWx0cyA+IDEgJiYgIWNhbm9uaWNhbC5wcmVfZXhwYW5kZWQpCisgICAgIHsK KyAgICAgICB3YXJuaW5nIChfKCJNdWx0aXBsZSBicmVha3BvaW50cyB3ZXJlIHNldC5cblVzZSB0 aGUgIgorIAkJICJcImRlbGV0ZVwiIGNvbW1hbmQgdG8gZGVsZXRlIHVud2FudGVkIGJyZWFrcG9p bnRzLiIpKTsKK0BAIC04NTg2LDYgKzg3OTcsNyBAQCB3YXRjaF9jb21tYW5kXzEgKGNoYXIgKmFy ZywgaW50IGFjY2Vzc2ZsYWcsIGludCBmcm9tX3R0eSwKICAgIGIgPSBzZXRfcmF3X2JyZWFrcG9p bnRfd2l0aG91dF9sb2NhdGlvbiAoTlVMTCwgYnBfdHlwZSk7CiAgICBzZXRfYnJlYWtwb2ludF9u dW1iZXIgKGludGVybmFsLCBiKTsKICAgIGItPnRocmVhZCA9IHRocmVhZDsKQEAgLTExMzMsNyAr MTE3MSw3IEBAIGluZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgICBiLT5kaXNwb3NpdGlv biA9IGRpc3BfZG9udHRvdWNoOwogICAgYi0+ZXhwID0gZXhwOwogICAgYi0+ZXhwX3ZhbGlkX2Js b2NrID0gZXhwX3ZhbGlkX2Jsb2NrOwotQEAgLTk3NDIsNiArOTkzMCw5IEBAIHVwZGF0ZV9nbG9i YWxfbG9jYXRpb25fbGlzdCAoaW50IHNob3VsZF9pbnNlcnQpCitAQCAtOTc0Nyw2ICs5OTU5LDkg QEAgdXBkYXRlX2dsb2JhbF9sb2NhdGlvbl9saXN0IChpbnQgc2hvdWxkX2luc2VydCkKICAgICAg ICBpbnQga2VlcF9pbl90YXJnZXQgPSAwOwogICAgICAgIGludCByZW1vdmVkID0gMDsKICAKQEAg LTExNDMsNyArMTE4MSw3IEBAIGluZGV4IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgICAgICAg LyogU2tpcCBMT0NQIGVudHJpZXMgd2hpY2ggd2lsbCBkZWZpbml0ZWx5IG5ldmVyIGJlIG5lZWRl ZC4KICAJIFN0b3AgZWl0aGVyIGF0IG9yIGJlaW5nIHRoZSBvbmUgbWF0Y2hpbmcgT0xEX0xPQy4g ICovCiAgICAgICAgd2hpbGUgKGxvY3AgPCBicF9sb2NhdGlvbiArIGJwX2xvY2F0aW9uX2NvdW50 Ci1AQCAtMTAwNTgsMTIgKzEwMjQ5LDIwIEBAIGRlbGV0ZV9icmVha3BvaW50IChzdHJ1Y3QgYnJl YWtwb2ludCAqYnB0KQorQEAgLTEwMDYzLDEyICsxMDI3OCwyMCBAQCBkZWxldGVfYnJlYWtwb2lu dCAoc3RydWN0IGJyZWFrcG9pbnQgKmJwdCkKICAKICAgIC8qIEF0IGxlYXN0IGF2b2lkIHRoaXMg c3RhbGUgcmVmZXJlbmNlIHVudGlsIHRoZSByZWZlcmVuY2UgY291bnRpbmcKICAgICAgIG9mIGJy ZWFrcG9pbnRzIGdldHMgcmVzb2x2ZWQuICAqLwpAQCAtMTE2OSw3ICsxMjA3LDcgQEAgaW5kZXgg YzU1ZTVjMC4uMWE3MWNmOCAxMDA2NDQKICAgICAgfQogIAogICAgb2JzZXJ2ZXJfbm90aWZ5X2Jy ZWFrcG9pbnRfZGVsZXRlZCAoYnB0LT5udW1iZXIpOwotQEAgLTEwMzc2LDcgKzEwNTc1LDcgQEAg dXBkYXRlX3N0YXRpY190cmFjZXBvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwgc3RydWN0IHN5 bXRhYl9hbmRfbGluZSBzYWwpCitAQCAtMTAzODEsNyArMTA2MDQsNyBAQCB1cGRhdGVfc3RhdGlj X3RyYWNlcG9pbnQgKHN0cnVjdCBicmVha3BvaW50ICpiLCBzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5l IHNhbCkKICAgIHJldHVybiBzYWw7CiAgfQogIApAQCAtMTE3OCw3ICsxMjE2LDE1IEBAIGluZGV4 IGM1NWU1YzAuLjFhNzFjZjggMTAwNjQ0CiAgdXBkYXRlX2JyZWFrcG9pbnRfbG9jYXRpb25zIChz dHJ1Y3QgYnJlYWtwb2ludCAqYiwKICAJCQkgICAgIHN0cnVjdCBzeW10YWJzX2FuZF9saW5lcyBz YWxzKQogIHsKLUBAIC0xMDUwOCw2ICsxMDcwNyw3IEBAIGJyZWFrcG9pbnRfcmVfc2V0X29uZSAo dm9pZCAqYmludCkKK0BAIC0xMDUwMSw2ICsxMDcyNCw3IEBAIGJyZWFrcG9pbnRfcmVfc2V0X29u ZSAodm9pZCAqYmludCkKKyAgIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGU7CisgICBzdHJ1Y3QgY2xl YW51cCAqY2xlYW51cHMgPSBtYWtlX2NsZWFudXAgKG51bGxfY2xlYW51cCwgTlVMTCk7CisgICBp bnQgbWFya2VyX3NwZWMgPSAwOworKyAgaW50IHByZV9leHBhbmRlZCA9IDA7CisgCisgICBzd2l0 Y2ggKGItPnR5cGUpCisgICAgIHsKK0BAIC0xMDUxMyw2ICsxMDczNyw3IEBAIGJyZWFrcG9pbnRf cmVfc2V0X29uZSAodm9pZCAqYmludCkKICAgICAgY2FzZSBicF90cmFjZXBvaW50OgogICAgICBj YXNlIGJwX2Zhc3RfdHJhY2Vwb2ludDoKICAgICAgY2FzZSBicF9zdGF0aWNfdHJhY2Vwb2ludDoK QEAgLTExODYsNyArMTIzMiw1NiBAQCBpbmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogICAg ICAgIC8qIERvIG5vdCBhdHRlbXB0IHRvIHJlLXNldCBicmVha3BvaW50cyBkaXNhYmxlZCBkdXJp bmcgc3RhcnR1cC4gICovCiAgICAgICAgaWYgKGItPmVuYWJsZV9zdGF0ZSA9PSBicF9zdGFydHVw X2Rpc2FibGVkKQogIAlyZXR1cm4gMDsKLUBAIC0xMDY3OCw2ICsxMDg3OCw3IEBAIGJyZWFrcG9p bnRfcmVfc2V0X29uZSAodm9pZCAqYmludCkKK0BAIC0xMDU0Nyw4ICsxMDc3MiwyNSBAQCBicmVh a3BvaW50X3JlX3NldF9vbmUgKHZvaWQgKmJpbnQpCisgCQllcnJvciAoXygibWFya2VyICVzIG5v dCBmb3VuZCIpLCBiLT5zdGF0aWNfdHJhY2VfbWFya2VyX2lkKTsKKyAJICAgIH0KKyAJICBlbHNl CistCSAgICBzYWxzID0gZGVjb2RlX2xpbmVfMSAoJnMsIDEsIChzdHJ1Y3Qgc3ltdGFiICopIE5V TEwsIDAsCistCQkJCSAgTlVMTCwgbm90X2ZvdW5kX3B0cik7CisrCSAgICB7CisrCSAgICAgIHN0 cnVjdCBsaW5lc3BlY19yZXN1bHQgY2Fub25pY2FsOworKworKwkgICAgICBpbml0X2xpbmVzcGVj X3Jlc3VsdCAoJmNhbm9uaWNhbCk7CisrCSAgICAgIHNhbHMgPSBkZWNvZGVfbGluZV8xICgmcywg MSwgKHN0cnVjdCBzeW10YWIgKikgTlVMTCwgMCwKKysJCQkJICAgICZjYW5vbmljYWwsIG5vdF9m b3VuZF9wdHIpOworKworKwkgICAgICAvKiBXZSBkb24ndCBuZWVkIHRoZSBjb250ZW50cy4gICov CisrCSAgICAgIGlmIChjYW5vbmljYWwuY2Fub25pY2FsKQorKwkJeworKwkJICBpbnQgaTsKKysK KysJCSAgZm9yIChpID0gMDsgaSA8IHNhbHMubmVsdHM7ICsraSkKKysJCSAgICB4ZnJlZSAoY2Fu b25pY2FsLmNhbm9uaWNhbFtpXSk7CisrCQkgIHhmcmVlIChjYW5vbmljYWwuY2Fub25pY2FsKTsK KysJCX0KKysKKysJICAgICAgcHJlX2V4cGFuZGVkID0gY2Fub25pY2FsLnByZV9leHBhbmRlZDsK KysJICAgIH0KKyAJfQorICAgICAgIGlmIChlLnJlYXNvbiA8IDApCisgCXsKK0BAIC0xMDU4MSw3 ICsxMDgyMyw3IEBAIGJyZWFrcG9pbnRfcmVfc2V0X29uZSAodm9pZCAqYmludCkKKyAKKyAgICAg ICBpZiAoIW5vdF9mb3VuZCkKKyAJeworLQkgIGdkYl9hc3NlcnQgKHNhbHMubmVsdHMgPT0gMSk7 CisrCSAgZ2RiX2Fzc2VydCAocHJlX2V4cGFuZGVkIHx8IHNhbHMubmVsdHMgPT0gMSk7CisgCisg CSAgcmVzb2x2ZV9zYWxfcGMgKCZzYWxzLnNhbHNbMF0pOworIAkgIGlmIChiLT5jb25kaXRpb25f bm90X3BhcnNlZCAmJiBzICYmIHNbMF0pCitAQCAtMTA2MDIsNyArMTA4NDQsMTAgQEAgYnJlYWtw b2ludF9yZV9zZXRfb25lICh2b2lkICpiaW50KQorIAkgIGlmIChiLT50eXBlID09IGJwX3N0YXRp Y190cmFjZXBvaW50ICYmICFtYXJrZXJfc3BlYykKKyAJICAgIHNhbHMuc2Fsc1swXSA9IHVwZGF0 ZV9zdGF0aWNfdHJhY2Vwb2ludCAoYiwgc2Fscy5zYWxzWzBdKTsKKyAKKy0JICBleHBhbmRlZCA9 IGV4cGFuZF9saW5lX3NhbF9tYXliZSAoc2Fscy5zYWxzWzBdKTsKKysJICBpZiAocHJlX2V4cGFu ZGVkKQorKwkgICAgZXhwYW5kZWQgPSBzYWxzOworKwkgIGVsc2UKKysJICAgIGV4cGFuZGVkID0g ZXhwYW5kX2xpbmVfc2FsX21heWJlIChzYWxzLnNhbHNbMF0pOworIAl9CisgCisgICAgICAgbWFr ZV9jbGVhbnVwICh4ZnJlZSwgc2Fscy5zYWxzKTsKK0BAIC0xMDY4Myw2ICsxMDkyOCw3IEBAIGJy ZWFrcG9pbnRfcmVfc2V0X29uZSAodm9pZCAqYmludCkKICAgICAgY2FzZSBicF9leGNlcHRpb246 CiAgICAgIGNhc2UgYnBfZXhjZXB0aW9uX3Jlc3VtZToKICAgICAgY2FzZSBicF9qaXRfZXZlbnQ6 CkBAIC0xMTk0LDcgKzEyODksNyBAQCBpbmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0NAogICAg ICAgIGJyZWFrOwogICAgICB9CiAgCi1AQCAtMTA4NDQsMTEgKzExMDQ1LDI1IEBAIG1hcF9icmVh a3BvaW50X251bWJlcnMgKGNoYXIgKmFyZ3MsIHZvaWQgKCpmdW5jdGlvbikgKHN0cnVjdCBicmVh a3BvaW50ICosCitAQCAtMTA4NDksMTEgKzExMDk1LDI1IEBAIG1hcF9icmVha3BvaW50X251bWJl cnMgKGNoYXIgKmFyZ3MsIHZvaWQgKCpmdW5jdGlvbikgKHN0cnVjdCBicmVha3BvaW50ICosCiAg CSAgQUxMX0JSRUFLUE9JTlRTX1NBRkUgKGIsIHRtcCkKICAJICAgIGlmIChiLT5udW1iZXIgPT0g bnVtKQogIAkgICAgICB7CkBAIC0xMjI0LDcgKzEzMTksNyBAQCBpbmRleCBjNTVlNWMwLi4xYTcx Y2Y4IDEwMDY0NAogIAkJYnJlYWs7CiAgCSAgICAgIH0KICAJICBpZiAobWF0Y2ggPT0gMCkKLUBA IC0xMTk3OSw2ICsxMjE5NCwyNCBAQCBhbGxfdHJhY2Vwb2ludHMgKHZvaWQpCitAQCAtMTE5ODQs NiArMTIyNDQsMjQgQEAgYWxsX3RyYWNlcG9pbnRzICh2b2lkKQogICAgcmV0dXJuIHRwX3ZlYzsK ICB9CiAgCkBAIC0xMjQ5LDcgKzEzNDQsNyBAQCBpbmRleCBjNTVlNWMwLi4xYTcxY2Y4IDEwMDY0 NAogIAwKICAvKiBUaGlzIGhlbHAgc3RyaW5nIGlzIHVzZWQgZm9yIHRoZSBicmVhaywgaGJyZWFr LCB0YnJlYWsgYW5kIHRoYnJlYWsKICAgICBjb21tYW5kcy4gIEl0IGlzIGRlZmluZWQgYXMgYSBt YWNybyB0byBwcmV2ZW50IGR1cGxpY2F0aW9uLgotQEAgLTEyNTk4LDQgKzEyODMxLDcgQEAgaW5m ZXJpb3IgaW4gYWxsLXN0b3AgbW9kZSwgZ2RiIGJlaGF2ZXMgYXMgaWYgYWx3YXlzLWluc2VydGVk IG1vZGUgaXMgb2ZmLiIpLAorQEAgLTEyNjAzLDQgKzEyODgxLDcgQEAgaW5mZXJpb3IgaW4gYWxs LXN0b3AgbW9kZSwgZ2RiIGJlaGF2ZXMgYXMgaWYgYWx3YXlzLWluc2VydGVkIG1vZGUgaXMgb2Zm LiIpLAogICAgYXV0b21hdGljX2hhcmR3YXJlX2JyZWFrcG9pbnRzID0gMTsKICAKICAgIG9ic2Vy dmVyX2F0dGFjaF9hYm91dF90b19wcm9jZWVkIChicmVha3BvaW50X2Fib3V0X3RvX3Byb2NlZWQp OwpAQCAtMTI1OCw3ICsxMzUzLDcgQEAgaW5kZXggYzU1ZTVjMC4uMWE3MWNmOCAxMDA2NDQKICsj ZW5kaWYKICB9CiBkaWZmIC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQuaCBiL2dkYi9icmVha3BvaW50 LmgKLWluZGV4IGJkMDk3MTMuLjU4N2UzYTEgMTAwNjQ0CitpbmRleCBkNWFmOTI4Li5jOGEzMTYx IDEwMDY0NAogLS0tIGEvZ2RiL2JyZWFrcG9pbnQuaAogKysrIGIvZ2RiL2JyZWFrcG9pbnQuaAog QEAgLTE0OSw2ICsxNDksMTkgQEAgZW51bSBicHR5cGUKQEAgLTEyOTMsNyArMTM4OCw3IEBAIGlu ZGV4IGJkMDk3MTMuLjU4N2UzYTEgMTAwNjQ0CiAgICBjaGFyICpmdW5jdGlvbl9uYW1lOwogIAog ICAgLyogRGV0YWlscyBvZiB0aGUgcGxhY2VkIGJyZWFrcG9pbnQsIHdoZW4gaW5zZXJ0ZWQuICAq LwotQEAgLTg4OCw2ICs5MDYsOSBAQCBleHRlcm4gaW50IGJyZWFrcG9pbnRfdGhyZWFkX21hdGNo IChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLAorQEAgLTg5MCw2ICs5MDgsOSBAQCBleHRlcm4gaW50 IGJyZWFrcG9pbnRfdGhyZWFkX21hdGNoIChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLAogIAogIGV4 dGVybiB2b2lkIHVudGlsX2JyZWFrX2NvbW1hbmQgKGNoYXIgKiwgaW50LCBpbnQpOwogIApAQCAt MTMwMywxMSArMTM5OCwyMyBAQCBpbmRleCBiZDA5NzEzLi41ODdlM2ExIDEwMDY0NAogIGV4dGVy biB2b2lkIGJyZWFrcG9pbnRfcmVfc2V0ICh2b2lkKTsKICAKICBleHRlcm4gdm9pZCBicmVha3Bv aW50X3JlX3NldF90aHJlYWQgKHN0cnVjdCBicmVha3BvaW50ICopOworQEAgLTExOTEsNCArMTIx MiwxMSBAQCBleHRlcm4gc3RydWN0IGJyZWFrcG9pbnQgKml0ZXJhdGVfb3Zlcl9icmVha3BvaW50 cyAoaW50ICgqKSAoc3RydWN0IGJyZWFrcG9pbnQgKgorIAorIGV4dGVybiBpbnQgdXNlcl9icmVh a3BvaW50X3AgKHN0cnVjdCBicmVha3BvaW50ICopOworIAorKy8qIFNldCBvciBjbGVhciBhIFN5 c3RlbVRhcCBzZW1hcGhvcmUuICBMT0MgaXMgdGhlIGxvY2F0aW9uIHdoaWNoIG1heQorKyAgIGhv bGQgYSBzZW1hcGhvcmUuICBTRVQgaXMgbm9uLXplcm8gaWYgdGhlIHNlbWFwaG9yZSBzaG91bGQg YmUgc2V0LAorKyAgIG9yIHplcm8gaWYgdGhlIHNlbWFwaG9yZSBzaG91bGQgYmUgY2xlYXJlZC4g IFNlbWFwaG9yZXMgYWN0IGFzCisrICAgcmVmZXJlbmNlIGNvdW50ZXJzLCBzbyBjYWxscyB0byB0 aGlzIGZ1bmN0aW9uIG11c3QgYmUgcGFpcmVkLiAgKi8KKysKKytleHRlcm4gdm9pZCBtb2RpZnlf c2VtYXBob3JlIChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvY2F0aW9uLCBpbnQgc2V0KTsKKysKKyAj ZW5kaWYgLyogIWRlZmluZWQgKEJSRUFLUE9JTlRfSCkgKi8KIGRpZmYgLS1naXQgYS9nZGIvYy10 eXBlcHJpbnQuYyBiL2dkYi9jLXR5cGVwcmludC5jCi1pbmRleCBjNzBmYTRiLi42YmMzMzk3IDEw MDY0NAoraW5kZXggMmUyM2RkNy4uYWVmYzgwNyAxMDA2NDQKIC0tLSBhL2dkYi9jLXR5cGVwcmlu dC5jCiArKysgYi9nZGIvYy10eXBlcHJpbnQuYwotQEAgLTYyNiw5ICs2MjYsMTQgQEAgY190eXBl X3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC02MjUsOSArNjI1 LDE0IEBAIGNfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoc3RydWN0IHR5cGUgKnR5cGUsCiAg CSAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKSIpOwogIAogIAlmcHJpbnRmX2ZpbHRlcmVk IChzdHJlYW0sICJbIik7CkBAIC0xMzY5LDcgKzE0NzYsNyBAQCBpbmRleCAxMWNmMmU2Li45YTJh OGY4IDEwMDY0NAogIEZMQUdTX1RPX1BBU1MgPSBcCiAgCSJwcmVmaXg9JChwcmVmaXgpIiBcCiBk aWZmIC0tZ2l0IGEvZ2RiL2RieHJlYWQuYyBiL2dkYi9kYnhyZWFkLmMKLWluZGV4IDgyNDJjZjgu LmIyZGI2OTkgMTAwNjQ0CitpbmRleCA1MWRkZDlkLi5hNTlhZTEwIDEwMDY0NAogLS0tIGEvZ2Ri L2RieHJlYWQuYwogKysrIGIvZ2RiL2RieHJlYWQuYwogQEAgLTEsNiArMSw2IEBACkBAIC0xMzgw LDcgKzE0ODcsNyBAQCBpbmRleCA4MjQyY2Y4Li5iMmRiNjk5IDEwMDY0NAogICAgIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgogIAogICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4K LUBAIC0zNTg2LDYgKzM1ODYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN5bV9mbnMgYW91dF9z eW1fZm5zID0KK0BAIC0zNTg3LDYgKzM1ODcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN5bV9m bnMgYW91dF9zeW1fZm5zID0KICAgIGRlZmF1bHRfc3ltZmlsZV9zZWdtZW50cywJLyogR2V0IHNl Z21lbnQgaW5mb3JtYXRpb24gZnJvbSBhIGZpbGUuICAqLwogICAgTlVMTCwKICAgIGRlZmF1bHRf c3ltZmlsZV9yZWxvY2F0ZSwJLyogUmVsb2NhdGUgYSBkZWJ1ZyBzZWN0aW9uLiAgKi8KQEAgLTE0 MDIsNyArMTUwOSw3IEBAIGluZGV4IDk0MDlkZGUuLmYwZmE0YzcgMTAwNjQ0CiAgZXh0ZXJuIGNo YXIgKnhmdWxscGF0aCAoY29uc3QgY2hhciAqKTsKICAKIGRpZmYgLS1naXQgYS9nZGIvZG9jL2dk Yi50ZXhpbmZvIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwotaW5kZXggZmNiYmQ2Yy4uODc2NzQ5ZCAx MDA2NDQKK2luZGV4IGUwMjMwNTguLmJmNTRlOWEgMTAwNjQ0CiAtLS0gYS9nZGIvZG9jL2dkYi50 ZXhpbmZvCiArKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvCiBAQCAtMTE3Nyw2ICsxMTc3LDE2IEBA IGZvciByZW1vdGUgZGVidWdnaW5nLgpAQCAtMTQ4MSw3ICsxNTg4LDcgQEAgaW5kZXggZmNiYmQ2 Yy4uODc2NzQ5ZCAxMDA2NDQKICBAYyAgQGlmY2xlYXIgQkFSRVRBUkdFVAogIEBub2RlIEVycm9y IGluIEJyZWFrcG9pbnRzCiAgQHN1YnNlY3Rpb24gYGBDYW5ub3QgaW5zZXJ0IGJyZWFrcG9pbnRz JycKLUBAIC02NDExLDYgKzY0NjYsMjkgQEAgc3BlY2lmeSB0aGUgZnVuY3Rpb24gdW5hbWJpZ3Vv dXNseSwgZS5nLiwgaWYgdGhlcmUgYXJlIHNldmVyYWwKK0BAIC02NDE0LDYgKzY0NjksMjkgQEAg c3BlY2lmeSB0aGUgZnVuY3Rpb24gdW5hbWJpZ3VvdXNseSwgZS5nLiwgaWYgdGhlcmUgYXJlIHNl dmVyYWwKICBmdW5jdGlvbnMgd2l0aCBpZGVudGljYWwgbmFtZXMgaW4gZGlmZmVyZW50IHNvdXJj ZSBmaWxlcy4KICBAZW5kIHRhYmxlCiAgCkBAIC0xNTExLDcgKzE2MTgsNyBAQCBpbmRleCBmY2Ji ZDZjLi44NzY3NDlkIDEwMDY0NAogIEBlbmQgdGFibGUKICAKICAKLUBAIC04NDk3LDYgKzg1NzUs MTAgQEAgdG8gbWF0Y2ggdGhlIGZvcm1hdCBpbiB3aGljaCB0aGUgZGF0YSB3YXMgcHJpbnRlZC4K K0BAIC04NTAwLDYgKzg1NzgsMTAgQEAgdG8gbWF0Y2ggdGhlIGZvcm1hdCBpbiB3aGljaCB0aGUg ZGF0YSB3YXMgcHJpbnRlZC4KICBUaGUgdmFyaWFibGUgQGNvZGV7JF9leGl0Y29kZX0gaXMgYXV0 b21hdGljYWxseSBzZXQgdG8gdGhlIGV4aXQgY29kZSB3aGVuCiAgdGhlIHByb2dyYW0gYmVpbmcg ZGVidWdnZWQgdGVybWluYXRlcy4KICAKQEAgLTE1MjIsNyArMTYyOSw3IEBAIGluZGV4IGZjYmJk NmMuLjg3Njc0OWQgMTAwNjQ0CiAgQGl0ZW0gJF9zZGF0YQogIEB2aW5kZXggJF9zZGF0YUByeywg aW5zcGVjdCwgY29udmVuaWVuY2UgdmFyaWFibGV9CiAgVGhlIHZhcmlhYmxlIEBjb2RleyRfc2Rh dGF9IGNvbnRhaW5zIGV4dHJhIGNvbGxlY3RlZCBzdGF0aWMgdHJhY2Vwb2ludAotQEAgLTIwNjg5 LDggKzIwNzcxLDYgQEAgY29udGFpbmluZyBAY29kZXtlbmR9LiAgRm9yIGV4YW1wbGU6CitAQCAt MjA2OTIsOCArMjA3NzQsNiBAQCBjb250YWluaW5nIEBjb2Rle2VuZH0uICBGb3IgZXhhbXBsZToK ICAKICBAc21hbGxleGFtcGxlCiAgKEB2YWx1ZXtHREJQfSkgcHl0aG9uCkBAIC0xNTMxLDcgKzE2 MzgsNyBAQCBpbmRleCBmY2JiZDZjLi44NzY3NDlkIDEwMDY0NAogID5wcmludCAyMwogID5lbmQK ICAyMwotQEAgLTIwNzAzLDYgKzIwNzgzLDE0IEBAIGluIGEgUHl0aG9uIHNjcmlwdC4gIFRoaXMg Y2FuIGJlIGNvbnRyb2xsZWQgdXNpbmcgQGNvZGV7bWFpbnQgc2V0CitAQCAtMjA3MDYsNiArMjA3 ODYsMTQgQEAgaW4gYSBQeXRob24gc2NyaXB0LiAgVGhpcyBjYW4gYmUgY29udHJvbGxlZCB1c2lu ZyBAY29kZXttYWludCBzZXQKICBweXRob24gcHJpbnQtc3RhY2t9OiBpZiBAY29kZXtvbn0sIHRo ZSBkZWZhdWx0LCB0aGVuIFB5dGhvbiBzdGFjawogIHByaW50aW5nIGlzIGVuYWJsZWQ7IGlmIEBj b2Rle29mZn0sIHRoZW4gUHl0aG9uIHN0YWNrIHByaW50aW5nIGlzCiAgZGlzYWJsZWQuCkBAIC0x NTQ2LDcgKzE2NTMsNyBAQCBpbmRleCBmY2JiZDZjLi44NzY3NDlkIDEwMDY0NAogIEBlbmQgdGFi bGUKICAKICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGV4ZWN1dGUgYSBQeXRob24gc2NyaXB0IGZy b20gdGhlIEB2YWx1ZXtHREJOfQotQEAgLTIwNzI0LDYgKzIwODEyLDE0IEBAIGFuZCB0aHVzIGlz IGFsd2F5cyBhdmFpbGFibGUuCitAQCAtMjA3MjcsNiArMjA4MTUsMTQgQEAgYW5kIHRodXMgaXMg YWx3YXlzIGF2YWlsYWJsZS4KICBAY2luZGV4IHB5dGhvbiBhcGkKICBAY2luZGV4IHByb2dyYW1t aW5nIGluIHB5dGhvbgogIApAQCAtMTcwNywxMiArMTgxNCwxMiBAQCBpbmRleCBkMTZjODY1Li45 NDZhZDk1IDEwMDY0NAogIFRoaXMgb2JzZXJ2ZXIgaXMgdXNlZCBmb3IgaW50ZXJuYWwgdGVzdGlu Zy4gIERvIG5vdCB1c2UuICAKICBTZWUgdGVzdHN1aXRlL2dkYi5nZGIvb2JzZXJ2ZXIuZXhwLgog ZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJleHByLmMgYi9nZGIvZHdhcmYyZXhwci5jCi1pbmRleCA4 ZDE4MTBlLi40YTNlMmYyIDEwMDY0NAoraW5kZXggOTFmY2NmOS4uNGNkNTk0OSAxMDA2NDQKIC0t LSBhL2dkYi9kd2FyZjJleHByLmMKICsrKyBiL2dkYi9kd2FyZjJleHByLmMKLUBAIC05MDUsNiAr OTA1LDEzIEBAIGV4ZWN1dGVfc3RhY2tfb3AgKHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0 eCwKLSAJICBjdHgtPmR3YXJmX2NhbGwgKGN0eCwgcmVzdWx0KTsKLSAJICBnb3RvIG5vX3B1c2g7 CitAQCAtOTEyLDYgKzkxMiwxMyBAQCBleGVjdXRlX3N0YWNrX29wIChzdHJ1Y3QgZHdhcmZfZXhw cl9jb250ZXh0ICpjdHgsCisgCSAgY3R4LT5udW1fcGllY2VzID0gMDsKKyAJICBnb3RvIGFib3J0 X2V4cHJlc3Npb247CiAgCiArCWNhc2UgRFdfT1BfcHVzaF9vYmplY3RfYWRkcmVzczoKICsJICBp ZiAoY3R4LT5nZXRfb2JqZWN0X2FkZHJlc3MgPT0gTlVMTCkKQEAgLTE3NDYsNyArMTg1Myw3IEBA IGluZGV4IDc4ZmY1M2YuLmM4M2YyM2QgMTAwNjQ0CiAgICAvKiBUaGUgY3VycmVudCBkZXB0aCBv ZiBkd2FyZiBleHByZXNzaW9uIHJlY3Vyc2lvbiwgdmlhIERXX09QX2NhbGwqLAogICAgICAgRFdf T1BfZmJyZWcsIERXX09QX3B1c2hfb2JqZWN0X2FkZHJlc3MsIGV0Yy4sIGFuZCB0aGUgbWF4aW11 bQogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJsb2MuYyBiL2dkYi9kd2FyZjJsb2MuYwotaW5kZXgg OWZkOGRmMC4uY2JmYjZkNiAxMDA2NDQKK2luZGV4IDRjMTMzMDcuLjliMGUxYWQgMTAwNjQ0CiAt LS0gYS9nZGIvZHdhcmYybG9jLmMKICsrKyBiL2dkYi9kd2FyZjJsb2MuYwogQEAgLTEzNCw2ICsx MzQsOSBAQCBzdHJ1Y3QgZHdhcmZfZXhwcl9iYXRvbgpAQCAtMTc3OSw3ICsxODg2LDcgQEAgaW5k ZXggOWZkOGRmMC4uY2JmYjZkNiAxMDA2NDQKICsgICAgICBnZGJfYXNzZXJ0IChzeW1iYXRvbiAh PSBOVUxMKTsKICsgICAgICAqc3RhcnQgPSBzeW1iYXRvbi0+ZGF0YTsKICsgICAgICAqbGVuZ3Ro ID0gc3ltYmF0b24tPnNpemU7Ci0rICAgIH0KKyAgICAgfQogKyAgZWxzZSBpZiAoU1lNQk9MX0NP TVBVVEVEX09QUyAoZnJhbWVmdW5jKSA9PSAmZHdhcmYyX21pc3NpbmdfZnVuY3MpCiArICAgIHsK ICsgICAgICBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gKnN5bWJhdG9uOwpAQCAtMTc4OCw3 ICsxODk1LDcgQEAgaW5kZXggOWZkOGRmMC4uY2JmYjZkNiAxMDA2NDQKICsgICAgICBnZGJfYXNz ZXJ0IChzeW1iYXRvbiA9PSBOVUxMKTsKICsgICAgICAqc3RhcnQgPSBOVUxMOwogKyAgICAgICps ZW5ndGggPSAwOwkvKiB1bnVzZWQgKi8KLSAgICAgfQorKyAgICB9CiArICBlbHNlCiArICAgIGlu dGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCiArCQkgICAgXygiVW5zdXBwb3J0ZWQg U1lNQk9MX0NPTVBVVEVEX09QUyAlcCBmb3IgXCIlc1wiIiksCkBAIC0yMDQ4LDcgKzIxNTUsNyBA QCBpbmRleCA5ZmQ4ZGYwLi5jYmZiNmQ2IDEwMDY0NAogIAkgICAgcmV0dmFsID0gYWxsb2NhdGVf dmFsdWVfbGF6eSAodHlwZSk7CiAgCSAgICBWQUxVRV9MVkFMIChyZXR2YWwpID0gbHZhbF9tZW1v cnk7CiAgCSAgICBpZiAoaW5fc3RhY2tfbWVtb3J5KQotQEAgLTI4NTAsMTEgKzMwMTEsNTEgQEAg bG9jbGlzdF90cmFjZXBvaW50X3Zhcl9yZWYgKHN0cnVjdCBzeW1ib2wgKnN5bWJvbCwgc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2gsCitAQCAtMjg1NSwxMSArMzAxNiw1MSBAQCBsb2NsaXN0X3RyYWNl cG9pbnRfdmFyX3JlZiAoc3RydWN0IHN5bWJvbCAqc3ltYm9sLCBzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCwKICAJCQkgICAgICAgZGxiYXRvbi0+cGVyX2N1KTsKICB9CiAgCkBAIC0yMTIzLDcgKzIy MzAsNyBAQCBpbmRleCA5NmE0OTBlLi5iMGViYjA2IDEwMDY0NAogIC8qIENvbXBpbGUgYSBEV0FS RiBsb2NhdGlvbiBleHByZXNzaW9uIHRvIGFuIGFnZW50IGV4cHJlc3Npb24uCiAgICAgCiBkaWZm IC0tZ2l0IGEvZ2RiL2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMKLWluZGV4IDgxMGY2 NmEuLmY4ZDIwYWMgMTAwNjQ0CitpbmRleCAwY2M1Y2EwLi5iN2ZlYjA5IDEwMDY0NAogLS0tIGEv Z2RiL2R3YXJmMnJlYWQuYwogKysrIGIvZ2RiL2R3YXJmMnJlYWQuYwogQEAgLTEyMTEsNiArMTIx MSw5IEBAIHN0YXRpYyB2b2lkIGZpbGxfaW5fbG9jbGlzdF9iYXRvbiAoc3RydWN0IGR3YXJmMl9j dSAqY3UsCkBAIC0yNzk4LDEzICsyOTA1LDEzIEBAIGluZGV4IDgxMGY2NmEuLmY4ZDIwYWMgMTAw NjQ0CiAgICAgICBpbml0aWFsaXplZCAoaWYgbm90IGFscmVhZHkgc2V0KS4gIFRoZXJlIGFyZSBh IGZldyB0eXBlcyB3aGVyZQogICAgICAgd2Ugc2hvdWxkIG5vdCBiZSBkb2luZyBzbywgYmVjYXVz ZSB0aGUgdHlwZS1zcGVjaWZpYyBhcmVhIGlzCiBkaWZmIC0tZ2l0IGEvZ2RiL2VsZnJlYWQuYyBi L2dkYi9lbGZyZWFkLmMKLWluZGV4IGU2MzhhMzYuLmMxODkzZmUgMTAwNjQ0CitpbmRleCBkYWNj NmYwLi5mNzk2ODUxIDEwMDY0NAogLS0tIGEvZ2RiL2VsZnJlYWQuYwogKysrIGIvZ2RiL2VsZnJl YWQuYwotQEAgLTM3LDYgKzM3LDE0IEBACi0gI2luY2x1ZGUgImNvbXBsYWludHMuaCIKK0BAIC0z OCw2ICszOCwxMyBAQAogICNpbmNsdWRlICJkZW1hbmdsZS5oIgogICNpbmNsdWRlICJwc3ltcHJp di5oIgorICNpbmNsdWRlICJmaWxlbmFtZXMuaCIKICsjaW5jbHVkZSAiZ2RidHlwZXMuaCIKICsj aW5jbHVkZSAidmFsdWUuaCIKICsjaW5jbHVkZSAiaW5mY2FsbC5oIgpAQCAtMjgxMiwxMSArMjkx OSwxMCBAQCBpbmRleCBlNjM4YTM2Li5jMTg5M2ZlIDEwMDY0NAogKyNpbmNsdWRlICJyZWdjYWNo ZS5oIgogKyNpbmNsdWRlICJzdGFwLXByb2JlLmgiCiArI2luY2x1ZGUgImFyY2gtdXRpbHMuaCIK LSsjaW5jbHVkZSAiZ2RidHlwZXMuaCIKICAKICBleHRlcm4gdm9pZCBfaW5pdGlhbGl6ZV9lbGZy ZWFkICh2b2lkKTsKICAKLUBAIC01NSw4ICs2MywzMCBAQCBzdHJ1Y3QgZWxmaW5mbworQEAgLTU2 LDggKzYzLDMwIEBAIHN0cnVjdCBlbGZpbmZvCiAgICAgIGFzZWN0aW9uICptZGVidWdzZWN0Owkv KiBTZWN0aW9uIHBvaW50ZXIgZm9yIC5tZGVidWcgc2VjdGlvbiAqLwogICAgfTsKICAKQEAgLTI4 NDcsNyArMjk1Myw3IEBAIGluZGV4IGU2MzhhMzYuLmMxODkzZmUgMTAwNjQ0CiAgLyogTG9jYXRl IHRoZSBzZWdtZW50cyBpbiBBQkZELiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHN5bWZpbGVfc2Vn bWVudF9kYXRhICoKLUBAIC0xODQsNyArMjE0LDggQEAgcmVjb3JkX21pbmltYWxfc3ltYm9sIChj b25zdCBjaGFyICpuYW1lLCBpbnQgbmFtZV9sZW4sIGludCBjb3B5X25hbWUsCitAQCAtMTg1LDcg KzIxNCw4IEBAIHJlY29yZF9taW5pbWFsX3N5bWJvbCAoY29uc3QgY2hhciAqbmFtZSwgaW50IG5h bWVfbGVuLCBpbnQgY29weV9uYW1lLAogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0g Z2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7CiAgCkBAIC0yODU3LDcgKzI5NjMsNyBAQCBpbmRl eCBlNjM4YTM2Li5jMTg5M2ZlIDEwMDY0NAogICAgICBhZGRyZXNzID0gZ2RiYXJjaF9zbWFzaF90 ZXh0X2FkZHJlc3MgKGdkYmFyY2gsIGFkZHJlc3MpOwogIAogICAgcmV0dXJuIHByaW1fcmVjb3Jk X21pbmltYWxfc3ltYm9sX2Z1bGwgKG5hbWUsIG5hbWVfbGVuLCBjb3B5X25hbWUsIGFkZHJlc3Ms Ci1AQCAtMzkzLDcgKzQyNCwxMCBAQCBlbGZfc3ltdGFiX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlLCBpbnQgdHlwZSwKK0BAIC0zOTQsNyArNDI0LDEwIEBAIGVsZl9zeW10YWJfcmVhZCAo c3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGludCB0eXBlLAogIAkgICAgewogIAkgICAgICBpZiAo c3ltLT5mbGFncyAmIChCU0ZfR0xPQkFMIHwgQlNGX1dFQUspKQogIAkJewpAQCAtMjg2OSw3ICsy OTc1LDcgQEAgaW5kZXggZTYzOGEzNi4uYzE4OTNmZSAxMDA2NDQKICAJCX0KICAJICAgICAgZWxz ZSBpZiAoKHN5bS0+bmFtZVswXSA9PSAnLicgJiYgc3ltLT5uYW1lWzFdID09ICdMJykKICAJCSAg ICAgICB8fCAoKHN5bS0+ZmxhZ3MgJiBCU0ZfTE9DQUwpCi1AQCAtNTc3LDYgKzYxMSw0NjcgQEAg ZWxmX3N5bXRhYl9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgaW50IHR5cGUsCitAQCAt NTc4LDYgKzYxMSw0NjcgQEAgZWxmX3N5bXRhYl9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmls ZSwgaW50IHR5cGUsCiAgICBkb19jbGVhbnVwcyAoYmFja190byk7CiAgfQogIApAQCAtMzMzNyw3 ICszNDQzLDcgQEAgaW5kZXggZTYzOGEzNi4uYzE4OTNmZSAxMDA2NDQKICBzdHJ1Y3QgYnVpbGRf aWQKICAgIHsKICAgICAgc2l6ZV90IHNpemU7Ci1AQCAtODE3LDYgKzEzMTIsOCBAQCBlbGZfc3lt ZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgaW50IHN5bWZpbGVfZmxhZ3MpCitA QCAtODE5LDYgKzEzMTMsOCBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZSwgaW50IHN5bWZpbGVfZmxhZ3MpCiAgCSAgICAgICBiZmRfZXJybXNnIChiZmRfZ2V0X2Vy cm9yICgpKSk7CiAgCiAgICAgICAgZWxmX3N5bXRhYl9yZWFkIChvYmpmaWxlLCBTVF9EWU5BTUlD LCBkeW5zeW1jb3VudCwgZHluX3N5bWJvbF90YWJsZSwgMCk7CkBAIC0zMzQ2LDcgKzM0NTIsNyBA QCBpbmRleCBlNjM4YTM2Li5jMTg5M2ZlIDEwMDY0NAogICAgICB9CiAgCiAgICAvKiBBZGQgc3lu dGhldGljIHN5bWJvbHMgLSBmb3IgaW5zdGFuY2UsIG5hbWVzIGZvciBhbnkgUExUIGVudHJpZXMu ICAqLwotQEAgLTEwNzEsNyArMTU2OCwyNDMgQEAgZWxmc3RhYl9vZmZzZXRfc2VjdGlvbnMgKHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBzdCkKK0BAIC0x MDcxLDcgKzE1NjcsMjM4IEBAIGVsZnN0YWJfb2Zmc2V0X3NlY3Rpb25zIChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSwgc3RydWN0IHBhcnRpYWxfc3ltdGFiICpwc3QpCiAgICAgIGNvbXBsYWludCAo JnN5bWZpbGVfY29tcGxhaW50cywKICAJICAgICAgIF8oImVsZi9zdGFiIHNlY3Rpb24gaW5mb3Jt YXRpb24gbWlzc2luZyBmb3IgJXMiKSwgZmlsZW5hbWUpOwogIH0KQEAgLTM0NDQsMTEgKzM1NTAs NiBAQCBpbmRleCBlNjM4YTM2Li5jMTg5M2ZlIDEwMDY0NAogKyAgcmV0dXJuIGJhc2U7CiArfQog KwotKy8qIEZJWE1FIEpVU1QgRk9SIFRFU1RJTkcgKiovCi0rc3RhdGljIGludAotK2VsZl9nZXRf cHJvYmVfYXJndW1lbnRfY291bnQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAotKwkJCSAgICAg IGNvbnN0IHN0cnVjdCBzdGFwX3Byb2JlICpwcm9iZSk7Ci0rCiArc3RhdGljIGNvbnN0IHN0cnVj dCBzdGFwX3Byb2JlICoKICtlbGZfZ2V0X3Byb2JlcyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUs IGludCAqbnVtX3Byb2JlcykKICt7CkBAIC0zNTkwLDcgKzM2OTEsNyBAQCBpbmRleCBlNjM4YTM2 Li5jMTg5M2ZlIDEwMDY0NAogIC8qIFJlZ2lzdGVyIHRoYXQgd2UgYXJlIGFibGUgdG8gaGFuZGxl IEVMRiBvYmplY3QgZmlsZSBmb3JtYXRzLiAgKi8KICAKICBzdGF0aWMgY29uc3Qgc3RydWN0IHN5 bV9mbnMgZWxmX3N5bV9mbnMgPQotQEAgLTEwODYsNiArMTgxOSw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3Qgc3ltX2ZucyBlbGZfc3ltX2ZucyA9CitAQCAtMTA4Niw2ICsxODEzLDcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBzeW1fZm5zIGVsZl9zeW1fZm5zID0KICAgIGVsZl9zeW1maWxlX3NlZ21l bnRzLAkJLyogR2V0IHNlZ21lbnQgaW5mb3JtYXRpb24gZnJvbSBhIGZpbGUuICAqLwogICAgTlVM TCwKICAgIGRlZmF1bHRfc3ltZmlsZV9yZWxvY2F0ZSwJLyogUmVsb2NhdGUgYSBkZWJ1ZyBzZWN0 aW9uLiAgKi8KQEAgLTM1OTgsNyArMzY5OSw3IEBAIGluZGV4IGU2MzhhMzYuLmMxODkzZmUgMTAw NjQ0CiAgICAmcHN5bV9mdW5jdGlvbnMKICB9OwogIAotQEAgLTExMDQsNiArMTgzOCw3IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3Qgc3ltX2ZucyBlbGZfc3ltX2Zuc19sYXp5X3BzeW1zID0KK0BAIC0x MTA0LDYgKzE4MzIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN5bV9mbnMgZWxmX3N5bV9mbnNf bGF6eV9wc3ltcyA9CiAgICBlbGZfc3ltZmlsZV9zZWdtZW50cywJCS8qIEdldCBzZWdtZW50IGlu Zm9ybWF0aW9uIGZyb20gYSBmaWxlLiAgKi8KICAgIE5VTEwsCiAgICBkZWZhdWx0X3N5bWZpbGVf cmVsb2NhdGUsCS8qIFJlbG9jYXRlIGEgZGVidWcgc2VjdGlvbi4gICovCkBAIC0zNjA2LDcgKzM3 MDcsNyBAQCBpbmRleCBlNjM4YTM2Li5jMTg5M2ZlIDEwMDY0NAogICAgJnBzeW1fZnVuY3Rpb25z CiAgfTsKICAKLUBAIC0xMTIxLDExICsxODU2LDI3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3lt X2ZucyBlbGZfc3ltX2Zuc19nZGJfaW5kZXggPQorQEAgLTExMjEsMTEgKzE4NTAsMjcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBzeW1fZm5zIGVsZl9zeW1fZm5zX2dkYl9pbmRleCA9CiAgICBlbGZf c3ltZmlsZV9zZWdtZW50cywJCS8qIEdldCBzZWdtZW50IGluZm9ybWF0aW9uIGZyb20gYSBmaWxl LiAgKi8KICAgIE5VTEwsCiAgICBkZWZhdWx0X3N5bWZpbGVfcmVsb2NhdGUsCS8qIFJlbG9jYXRl IGEgZGVidWcgc2VjdGlvbi4gICovCkBAIC02NjA2LDcgKzY3MDcsNyBAQCBpbmRleCA3Y2VlN2M4 Li43NTFjOWVmIDEwMDY0NAogICAgYWRkX3NldHNob3dfYm9vbGVhbl9jbWQgKCJvYnNlcnZlciIs IG5vX2NsYXNzLAogIAkJCSAgICZvYnNlcnZlcl9tb2RlXzEsIF8oIlwKIGRpZmYgLS1naXQgYS9n ZGIvbGluZXNwZWMuYyBiL2dkYi9saW5lc3BlYy5jCi1pbmRleCAzOTU5NDAyLi4yNGJmNTM0IDEw MDY0NAoraW5kZXggNzBkZjNjYS4uYWY1M2Y5NyAxMDA2NDQKIC0tLSBhL2dkYi9saW5lc3BlYy5j CiArKysgYi9nZGIvbGluZXNwZWMuYwogQEAgLTQzLDYgKzQzLDcgQEAKQEAgLTY2MTcsNyArNjcx OCw3IEBAIGluZGV4IDM5NTk0MDIuLjI0YmY1MzQgMTAwNjQ0CiAgCiAgLyogV2Ugc2hhcmUgdGhp cyBvbmUgd2l0aCBzeW10YWIuYywgYnV0IGl0IGlzIG5vdCBleHBvcnRlZCB3aWRlbHkuICAqLwog IAotQEAgLTc1Niw2ICs3NTcsNyBAQCBrZWVwX25hbWVfaW5mbyAoY2hhciAqcHRyKQorQEAgLTc2 Miw2ICs3NjMsNyBAQCBrZWVwX25hbWVfaW5mbyAoY2hhciAqcHRyKQogICAgIFBDIHJldHVybmVk IGlzIDAuCiAgICAgRklMRTpGVU5DVElPTiAtLSBsaWtld2lzZSwgYnV0IHByZWZlciBmdW5jdGlv bnMgaW4gdGhhdCBmaWxlLgogICAgICpFWFBSIC0tIGxpbmUgaW4gd2hpY2ggYWRkcmVzcyBFWFBS IGFwcGVhcnMuCkBAIC02NjI1LDE2ICs2NzI2LDMxIEBAIGluZGV4IDM5NTk0MDIuLjI0YmY1MzQg MTAwNjQ0CiAgCiAgICAgVGhpcyBtYXkgYWxsIGJlIGZvbGxvd2VkIGJ5IGFuICJpZiBFWFBSIiwg d2hpY2ggd2UgaWdub3JlLgogIAotQEAgLTgyMyw2ICs4MjUsOSBAQCBkZWNvZGVfbGluZV8xIChj aGFyICoqYXJncHRyLCBpbnQgZnVuZmlyc3RsaW5lLCBzdHJ1Y3Qgc3ltdGFiICpkZWZhdWx0X3N5 bXRhYiwKK0BAIC04MzcsNiArODM5LDkgQEAgZGVjb2RlX2xpbmVfMSAoY2hhciAqKmFyZ3B0ciwg aW50IGZ1bmZpcnN0bGluZSwgc3RydWN0IHN5bXRhYiAqZGVmYXVsdF9zeW10YWIsCiAgICBpZiAo KiphcmdwdHIgPT0gJyonKQogICAgICByZXR1cm4gZGVjb2RlX2luZGlyZWN0IChhcmdwdHIpOwog IAogKyAgaWYgKHN0cm5jbXAgKCphcmdwdHIsICJwcm9iZToiLCA2KSA9PSAwKQotKyAgICByZXR1 cm4gcGFyc2Vfc3RhcF9wcm9iZSAoYXJncHRyKTsKKysgICAgcmV0dXJuIHBhcnNlX3N0YXBfcHJv YmUgKGFyZ3B0ciwgY2Fub25pY2FsLCBub3RfZm91bmRfcHRyKTsKICsKICAgIGlzX3F1b3RlZCA9 IChzdHJjaHIgKGdldF9nZGJfY29tcGxldGVyX3F1b3RlX2NoYXJhY3RlcnMgKCksCiAgCQkgICAg ICAgKiphcmdwdHIpICE9IE5VTEwpOwogIAorZGlmZiAtLWdpdCBhL2dkYi9saW5lc3BlYy5oIGIv Z2RiL2xpbmVzcGVjLmgKK2luZGV4IGQ4ZDJlYzkuLjQ1ODIzNWMgMTAwNjQ0CistLS0gYS9nZGIv bGluZXNwZWMuaAorKysrIGIvZ2RiL2xpbmVzcGVjLmgKK0BAIC0zMCw2ICszMCwxMCBAQCBzdHJ1 Y3QgbGluZXNwZWNfcmVzdWx0CisgICAgICBkaXNwbGF5IG1lY2hhbmlzbSB3b3VsZCBkbyB0aGUg d3JvbmcgdGhpbmcuICAqLworICAgaW50IHNwZWNpYWxfZGlzcGxheTsKKyAKKysgIC8qIElmIG5v bi16ZXJvLCB0aGUgbGluZXNwZWMgcmVzdWx0IHNob3VsZCBiZSBjb25zaWRlcmVkIHRvIGJlIGEK KysgICAgICJwcmUtZXhwYW5kZWQiIG11bHRpLWxvY2F0aW9uIGxpbmVzcGVjLiAgKi8KKysgIGlu dCBwcmVfZXhwYW5kZWQ7CisrCisgICAvKiBJZiBub24tTlVMTCwgYW4gYXJyYXkgb2YgY2Fub25p Y2FsIG5hbWVzIGZvciByZXR1cm5lZAorICAgICAgc3ltdGFiX2FuZF9saW5lIG9iamVjdHMuICBU aGUgYXJyYXkgaGFzIGFzIG1hbnkgZWxlbWVudHMgYXMgdGhlCisgICAgICBgbmVsdHMnIGZpZWxk IGluIHRoZSBzeW10YWJzX2FuZF9saW5lIHJldHVybmVkIGJ5IGRlY29kZV9saW5lXzEuCiBkaWZm IC0tZ2l0IGEvZ2RiL2xpbnV4LW5hdC5jIGIvZ2RiL2xpbnV4LW5hdC5jCiBpbmRleCA3MzI4MTJk Li4wM2IzZDE5IDEwMDY0NAogLS0tIGEvZ2RiL2xpbnV4LW5hdC5jCkBAIC02ODk2LDEwICs3MDEy LDEwIEBAIGluZGV4IGE0MDE4NDYuLjI2ZGNhOGMgMTAwNjQ0CiAgCiAgICAgICAgdmFyb2JqX3Vw ZGF0ZV9vbmUgKHZhciwgcHJpbnRfdmFsdWVzLCAxIC8qIGV4cGxpY2l0ICovKTsKIGRpZmYgLS1n aXQgYS9nZGIvbWluc3ltcy5jIGIvZ2RiL21pbnN5bXMuYwotaW5kZXggNGFlN2YyNy4uOTdkNDI1 ZSAxMDA2NDQKK2luZGV4IDQ1NTFiMDcuLmIwNTRlM2YgMTAwNjQ0CiAtLS0gYS9nZGIvbWluc3lt cy5jCiArKysgYi9nZGIvbWluc3ltcy5jCi1AQCAtMzMzLDggKzMzMyw5IEBAIGxvb2t1cF9taW5p bWFsX3N5bWJvbF90ZXh0IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZikK K0BAIC0zMzQsOCArMzM0LDkgQEAgbG9va3VwX21pbmltYWxfc3ltYm9sX3RleHQgKGNvbnN0IGNo YXIgKm5hbWUsIHN0cnVjdCBvYmpmaWxlICpvYmpmKQogIAkgICAgICAgbXN5bWJvbCA9IG1zeW1i b2wtPmhhc2hfbmV4dCkKICAJICAgIHsKICAJICAgICAgaWYgKHN0cmNtcCAoU1lNQk9MX0xJTktB R0VfTkFNRSAobXN5bWJvbCksIG5hbWUpID09IDAgJiYKQEAgLTY5MTEsNyArNzAyNyw3IEBAIGlu ZGV4IDRhZTdmMjcuLjk3ZDQyNWUgMTAwNjQ0CiAgCQl7CiAgCQkgIHN3aXRjaCAoTVNZTUJPTF9U WVBFIChtc3ltYm9sKSkKICAJCSAgICB7Ci1AQCAtNjk2LDYgKzY5Nyw2OSBAQCBsb29rdXBfbWlu aW1hbF9zeW1ib2xfYnlfcGMgKENPUkVfQUREUiBwYykKK0BAIC02OTcsNiArNjk4LDY5IEBAIGxv b2t1cF9taW5pbWFsX3N5bWJvbF9ieV9wYyAoQ09SRV9BRERSIHBjKQogICAgcmV0dXJuIGxvb2t1 cF9taW5pbWFsX3N5bWJvbF9ieV9wY19zZWN0aW9uIChwYywgTlVMTCk7CiAgfQogIApAQCAtNjk4 MSw3ICs3MDk3LDcgQEAgaW5kZXggNGFlN2YyNy4uOTdkNDI1ZSAxMDA2NDQKICAvKiBGaW5kIHRo ZSBtaW5pbWFsIHN5bWJvbCBuYW1lZCBOQU1FLCBhbmQgcmV0dXJuIGJvdGggdGhlIG1pbnN5bQog ICAgIHN0cnVjdCBhbmQgaXRzIG9iamZpbGUuICBUaGlzIG9ubHkgY2hlY2tzIHRoZSBsaW5rYWdl IG5hbWUuICBTZXRzCiAgICAgKk9CSkZJTEVfUCBhbmQgcmV0dXJucyB0aGUgbWluaW1hbCBzeW1i b2wsIGlmIGl0IGlzIGZvdW5kLiAgSWYgaXQKLUBAIC03NjUsNiArODI5LDcgQEAgcHJpbV9yZWNv cmRfbWluaW1hbF9zeW1ib2wgKGNvbnN0IGNoYXIgKm5hbWUsIENPUkVfQUREUiBhZGRyZXNzLAor QEAgLTc2Niw2ICs4MzAsNyBAQCBwcmltX3JlY29yZF9taW5pbWFsX3N5bWJvbCAoY29uc3QgY2hh ciAqbmFtZSwgQ09SRV9BRERSIGFkZHJlc3MsCiAgICBzd2l0Y2ggKG1zX3R5cGUpCiAgICAgIHsK ICAgICAgY2FzZSBtc3RfdGV4dDoKQEAgLTY5ODksNyArNzEwNSw3IEBAIGluZGV4IDRhZTdmMjcu Ljk3ZDQyNWUgMTAwNjQ0CiAgICAgIGNhc2UgbXN0X2ZpbGVfdGV4dDoKICAgICAgY2FzZSBtc3Rf c29saWJfdHJhbXBvbGluZToKICAgICAgICBzZWN0aW9uID0gU0VDVF9PRkZfVEVYVCAob2JqZmls ZSk7Ci1AQCAtMTIzMCw3ICsxMjk1LDggQEAgZmluZF9zb2xpYl90cmFtcG9saW5lX3RhcmdldCAo c3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBDT1JFX0FERFIgcGMpCitAQCAtMTIzMSw3ICsxMjk2 LDggQEAgZmluZF9zb2xpYl90cmFtcG9saW5lX3RhcmdldCAoc3RydWN0IGZyYW1lX2luZm8gKmZy YW1lLCBDT1JFX0FERFIgcGMpCiAgICAgIHsKICAgICAgICBBTExfTVNZTUJPTFMgKG9iamZpbGUs IG1zeW1ib2wpCiAgICAgICAgewpAQCAtNzQ0MCwxMCArNzU1NiwxMCBAQCBpbmRleCAwNDljZGU4 Li5mM2QzNWVjIDEwMDY0NAogIAogICAgcmV0dXJuIHJldDsKIGRpZmYgLS1naXQgYS9nZGIvcHJp bnRjbWQuYyBiL2dkYi9wcmludGNtZC5jCi1pbmRleCA4MTM2MGFkLi44ZmE5YTk5IDEwMDY0NAor aW5kZXggZjFlYmI3ZS4uZTk3ZDdmMSAxMDA2NDQKIC0tLSBhL2dkYi9wcmludGNtZC5jCiArKysg Yi9nZGIvcHJpbnRjbWQuYwotQEAgLTk3Nyw2ICs5NzcsMTEgQEAgcHJpbnRfY29tbWFuZF8xIChj aGFyICpleHAsIGludCBpbnNwZWN0LCBpbnQgdm9pZHByaW50KQorQEAgLTk3NSw2ICs5NzUsMTEg QEAgcHJpbnRfY29tbWFuZF8xIChjaGFyICpleHAsIGludCBpbnNwZWN0LCBpbnQgdm9pZHByaW50 KQogICAgZWxzZQogICAgICB2YWwgPSBhY2Nlc3NfdmFsdWVfaGlzdG9yeSAoMCk7CiAgCkBAIC03 NDU1LDcgKzc1NzEsNyBAQCBpbmRleCA4MTM2MGFkLi44ZmE5YTk5IDEwMDY0NAogICAgaWYgKHZv aWRwcmludCB8fCAodmFsICYmIHZhbHVlX3R5cGUgKHZhbCkgJiYKICAJCSAgICBUWVBFX0NPREUg KHZhbHVlX3R5cGUgKHZhbCkpICE9IFRZUEVfQ09ERV9WT0lEKSkKICAgICAgewotQEAgLTE0Nzgs NiArMTQ4MywyNCBAQCB4X2NvbW1hbmQgKGNoYXIgKmV4cCwgaW50IGZyb21fdHR5KQorQEAgLTE0 NzYsNiArMTQ4MSwyNCBAQCB4X2NvbW1hbmQgKGNoYXIgKmV4cCwgaW50IGZyb21fdHR5KQogIAlz ZXRfaW50ZXJuYWx2YXIgKGxvb2t1cF9pbnRlcm5hbHZhciAoIl9fIiksIGxhc3RfZXhhbWluZV92 YWx1ZSk7CiAgICAgIH0KICB9CkBAIC03NDgwLDcgKzc1OTYsNyBAQCBpbmRleCA4MTM2MGFkLi44 ZmE5YTk5IDEwMDY0NAogIAwKICAKICAvKiBBZGQgYW4gZXhwcmVzc2lvbiB0byB0aGUgYXV0by1k aXNwbGF5IGNoYWluLgotQEAgLTI4NzIsNCArMjg5NSw4IEBAIFNob3cgcHJpbnRpbmcgb2Ygc291 cmNlIGZpbGVuYW1lIGFuZCBsaW5lIG51bWJlciB3aXRoIDxzeW1ib2w+LiIpLCBOVUxMLAorQEAg LTI4NzAsNCArMjg5Myw4IEBAIFNob3cgcHJpbnRpbmcgb2Ygc291cmNlIGZpbGVuYW1lIGFuZCBs aW5lIG51bWJlciB3aXRoIDxzeW1ib2w+LiIpLCBOVUxMLAogICAgYWRkX2NvbSAoImV2YWwiLCBu b19jbGFzcywgZXZhbF9jb21tYW5kLCBfKCJcCiAgQ29udmVydCBcInByaW50ZiBmb3JtYXQgc3Ry aW5nXCIsIGFyZzEsIGFyZzIsIGFyZzMsIC4uLiwgYXJnbiB0b1xuXAogIGEgY29tbWFuZCBsaW5l LCBhbmQgY2FsbCBpdC4iKSk7CkBAIC04NzAzLDEwICs4ODE5LDEwIEBAIGluZGV4IDA4ODhiNjku LmMzZWZkNWIgMTAwNjQ0CiAgCSAgICAgIGVsc2UKIGRpZmYgLS1naXQgYS9nZGIvc3RhcC1wcm9i ZS5jIGIvZ2RiL3N0YXAtcHJvYmUuYwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAw MDAuLmViMmZiN2YKK2luZGV4IDAwMDAwMDAuLmUyNTFiZDMKIC0tLSAvZGV2L251bGwKICsrKyBi L2dkYi9zdGFwLXByb2JlLmMKLUBAIC0wLDAgKzEsMTkzOSBAQAorQEAgLTAsMCArMSwyMDMxIEBA CiArLyogU3lzdGVtdGFwIHByb2JlIHN1cHBvcnQgZm9yIEdEQi4KICsKICsgICBDb3B5cmlnaHQg KEMpIDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCkBAIC04NzQyLDYgKzg4NTgs NyBAQCBpbmRleCAwMDAwMDAwLi5lYjJmYjdmCiArI2luY2x1ZGUgInVzZXItcmVncy5oIgogKyNp bmNsdWRlICJjb21wbGFpbnRzLmgiCiArI2luY2x1ZGUgImNsaS9jbGktdXRpbHMuaCIKKysjaW5j bHVkZSAibGluZXNwZWMuaCIKICsKICsjaW5jbHVkZSA8Y3R5cGUuaD4KICsKQEAgLTg4MDksNyAr ODkyNiw3IEBAIGluZGV4IDAwMDAwMDAuLmViMmZiN2YKICsgIHN0cnVjdCBhZ2VudF9leHByICph ZXhwcjsKICsKICsgIC8qIFRoZSB2YWx1ZSB3ZSBhcmUgbW9kaWZ5aW5nIChmb3IgYWdlbnQgZXhw cmVzc2lvbikuICAqLwotKyAgc3RydWN0IGF4c192YWx1ZSAqdmFsdWU7CisrICBzdHJ1Y3QgYXhz X3ZhbHVlICphdmFsdWU7CiArfTsKICsKICsvKiBUaGlzIGR1bW15IHZhcmlhYmxlIGlzIHVzZWQg d2hlbiBwYXJzaW5nIGEgcHJvYmUncyBhcmd1bWVudCBmYWlscy4KQEAgLTg4MjMsMTIgKzg5NDAs MjAgQEAgaW5kZXggMDAwMDAwMC4uZWIyZmI3ZgogKyAgIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIGV4 cHJlc3Npb24sIGFuZCBQUkVDIGlzIHRoZSBwcmVjZWRlbmNlIG9mIHRoZQogKyAgIGxhc3Qgb3Bl cmF0b3IgaWRlbnRpZmllZCBiZWZvcmUgY2FsbGluZyB0aGUgZnVuY3Rpb24uICAqLwogKwotK3N0 YXRpYyBzdHJ1Y3QgdmFsdWUgKgotK3N0YXBfZXZhbHVhdGVfcHJvYmVfYXJndW1lbnRfMiAoc3Ry dWN0IHN0YXBfZXZhbHVhdGlvbl9pbmZvICpldmFsX2luZm8sCi0rCQkJCXN0cnVjdCB2YWx1ZSAq bGhzLCBpbnQgcHJlYyk7Cisrc3RhdGljIHN0cnVjdCB2YWx1ZSAqc3RhcF9ldmFsdWF0ZV9wcm9i ZV9hcmd1bWVudF8yCisrICAoc3RydWN0IHN0YXBfZXZhbHVhdGlvbl9pbmZvICpldmFsX2luZm8s CisrICAgc3RydWN0IHZhbHVlICpsaHMsIGludCBwcmVjKTsKICsKLStzdGF0aWMgc3RydWN0IHZh bHVlICoKLStzdGFwX2V2YWx1YXRlX2NvbmRpdGlvbmFsbHkgKHN0cnVjdCBzdGFwX2V2YWx1YXRp b25faW5mbyAqZXZhbF9pbmZvKTsKKysvKiBUaGlzIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZv ciBjaGVja2luZyB0aGUgbmVjZXNzYXJ5IHR5cGUgb2YgZXZhbHVhdGlvbgorKyAgIGRlcGVuZGlu ZyBvbiB3aGF0IGlzIHRoZSBuZXh0ICJ0aGluZyIgaW4gdGhlIGJ1ZmZlci4gIFZhbGlkIHZhbHVl cyBhcmU6CisrCisrICAgLSBVbmFyeSBvcGVyYXRvcnM7CisrICAgLSBJbnRlZ2VyIGNvbnN0YW50 czsKKysgICAtIFJlZ2lzdGVyIGRpc3BsYWNlbWVudCwgaW5kaXJlY3Rpb24sIGFuZCBkaXJlY3Qg YWNjZXNzOworKyAgIC0gUGFyZW50aGVzaXplZCBvcGVyYW5kLiAgKi8KKysKKytzdGF0aWMgc3Ry dWN0IHZhbHVlICpzdGFwX2V2YWx1YXRlX2NvbmRpdGlvbmFsbHkKKysgIChzdHJ1Y3Qgc3RhcF9l dmFsdWF0aW9uX2luZm8gKmV2YWxfaW5mbyk7CiArCiArc3RhdGljIHZvaWQKICtzdGFwX3NraXBf d2hpdGVzcGFjZV9jb25kIChjaGFyICoqcywgaW50IGluc2lkZV9wYXJlbikKQEAgLTkzNTAsNiAr OTQ3NSw5IEBAIGluZGV4IDAwMDAwMDAuLmViMmZiN2YKICsgIHJldHVybiByZXQ7CiArfQogKwor Ky8qIEdpdmVuIHRoZSBvcGVyYXRvciBPUENPREUsIHRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGFn ZW50IGJ5dGVjb2RlCisrICAgZm9yIGl0LiAgKi8KKysKICtzdGF0aWMgdm9pZAogK3N0YXBfb3Bj b2RlX3RvX2F4IChzdHJ1Y3Qgc3RhcF9ldmFsdWF0aW9uX2luZm8gKmV2YWxfaW5mbywKICsJCSAg IGVudW0gZXhwX29wY29kZSBvcGNvZGUpCkBAIC05MzYzLDcgKzk0OTEsNiBAQCBpbmRleCAwMDAw MDAwLi5lYjJmYjdmCiArICAgICAgYnJlYWs7CiArCiArICAgIGNhc2UgQklOT1BfRElWOgotKyAg ICAgIC8qIEZJWE1FOiBTaG91bGQgd2Ugc2lnbi1leHRlbmQgdGhlIG9wZXJhbmRzPyAgKi8KICsg ICAgICBheF9zaW1wbGUgKGV4cHIsIGFvcF9kaXZfc2lnbmVkKTsKICsgICAgICBicmVhazsKICsK QEAgLTkzNzIsNyArOTQ5OSw2IEBAIGluZGV4IDAwMDAwMDAuLmViMmZiN2YKICsgICAgICBicmVh azsKICsKICsgICAgY2FzZSBCSU5PUF9MRVNTOgotKyAgICAgIC8qIEZJWE1FOiBTaG91bGQgd2Ug c2lnbi1leHRlbmQgdGhlIG9wZXJhbmRzPyAgKi8KICsgICAgICBheF9zaW1wbGUgKGV4cHIsIGFv cF9sZXNzX3NpZ25lZCk7CiArICAgICAgYnJlYWs7CiArCkBAIC05NDEzLDggKzk1MzksNyBAQCBp bmRleCAwMDAwMDAwLi5lYjJmYjdmCiArICAgICAgYnJlYWs7CiArICAgICAKICsgICAgY2FzZSBC SU5PUF9MT0dJQ0FMX09SOgotKyAgICAgIC8qIEZJWE1FOiA/Pz8/PyAqLwotKy8vICAgICAgYXhf c2ltcGxlIChleHByLCBhb3BfCisrICAgICAgZXJyb3IgKF8oIk9wZXJhdG9yIGxvZ2ljYWwtb3Ig KGB8fCcpIG5vdCBzdXBwb3J0ZWQgeWV0LiIpKTsKICsgICAgICBicmVhazsKICsKICsgICAgY2Fz ZSBCSU5PUF9CSVRXSVNFX0FORDoKQEAgLTk0MjIsNyArOTU0Nyw3IEBAIGluZGV4IDAwMDAwMDAu LmViMmZiN2YKICsgICAgICBicmVhazsKICsKICsgICAgY2FzZSBCSU5PUF9MT0dJQ0FMX0FORDoK LSsgICAgICAvKiBGSVhNRTogPz8/PyAqLworKyAgICAgIGVycm9yIChfKCJPcGVyYXRvciBsb2dp Y2FsLWFuZCAoYCYmJykgbm90IHN1cHBvcnRlZCB5ZXQuIikpOwogKyAgICAgIGJyZWFrOwogKwog KyAgICBjYXNlIEJJTk9QX0JJVFdJU0VfWE9SOgpAQCAtOTQ4OSwxMiArOTYxNCwxOSBAQCBpbmRl eCAwMDAwMDAwLi5lYjJmYjdmCiArI2RlZmluZSBSRUdfTkFNRV9NQVhfU0laRSAyMAogKyAgY2hh ciByZWduYW1lW1JFR19OQU1FX01BWF9TSVpFICsgMV07CiArICBpbnQgbGVuLCByZWdudW0sIGlu ZGlyZWN0X3AgPSAwOwotKyAgc3RydWN0IHZhbHVlICpyZXQ7CisrICBzdHJ1Y3QgdmFsdWUgKnJl dCA9IE5VTEw7CiArICAKICsgIC8qIFRoZSBmdW5jdGlvbiB3aGljaCBjYWxsZWQgdXMgZGlkIG5v dCBjaGVjayBpZiB0aGUgZXhwcmVzc2lvbgogKyAgICAgYnVmZmVyIHdhcyBlbXB0eS4gICovCiAr ICBnZGJfYXNzZXJ0IChzICYmICpzKTsKICsKKysgIGlmIChldmFsX2luZm8tPmNvbXBpbGluZ19w KQorKyAgICAvKiBJZiB3ZSBhcmUgY29tcGlsaW5nLCB3ZSBjYW5ub3QgcmV0dXJuIE5VTEwgYmVj YXVzZSB0aGF0IHdvdWxkCisrICAgICAgIGxlYWQgdG8gZXJyb3JzIGluIGZ1dHVyZSBldmFsdWF0 aW9ucy4gIFRoYXQncyB3aHkgd2UganVzdCBtYWtlCisrICAgICAgIHRoaXMgZHVtbXkgdmFsdWUs IHJlcHJlc2VudGluZyB0aGF0IHRoZSByZXR1cm4gdmFsdWUgb2YgdGhpcworKyAgICAgICBmdW5j dGlvbiBpcyBub3QgTlVMTC4gICovCisrICAgIHJldCA9IHZhbHVlX2Zyb21fbG9uZ2VzdCAoYnVp bHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl9pbnQsIDApOworKwogKyAgLyogVmFsaWQgcmVn aXN0ZXIgbmFtZSBvbiB4ODYgcGxhdGZvcm1zIGFyZToKICsKICsgICAgIFtwYXJlbl0le2EtejAt OX1bcGFyZW5dCkBAIC05NTM1LDcgKzk2NjcsNyBAQCBpbmRleCAwMDAwMDAwLi5lYjJmYjdmCiAr CiArICBsZW4gPSBzIC0gc3RhcnQ7CiArCi0rICBpZiAoKnMgPT0gJyknKQorKyAgaWYgKGluZGly ZWN0X3AgJiYgKnMgPT0gJyknKQogKyAgICArK3M7CiArCiArICBpZiAobGVuID49IFJFR19OQU1F X01BWF9TSVpFKQpAQCAtOTU2MCw3ICs5NjkyLDcgQEAgaW5kZXggMDAwMDAwMC4uZWIyZmI3Zgog KyAgaWYgKGluZGlyZWN0X3ApCiArICAgIHsKICsgICAgICBzdHJ1Y3QgdHlwZSAqdCA9IE5VTEw7 Ci0rICAgICAgZW51bSBhZ2VudF9vcCBhb3A7CisrICAgICAgZW51bSBhZ2VudF9vcCBhb3AgPSBh b3BfcmVmMzI7CiArCiArICAgICAgLyogSWYgdGhlIHVzZXIgaGFzIHNwZWNpZmllZCB0aGF0IHRo ZSByZWdpc3RlciBtdXN0IGJlIGluZGlyZWN0ZWQsCiArCSB3ZSBzaG91bGQga25vdyB3aGF0J3Mg dGhlIGNvcnJlY3QgdHlwZSB0byBjYXN0IGl0IGJlZm9yZSBtYWtpbmcKQEAgLTk1NzIsMTAgKzk3 MDQsMjEgQEAgaW5kZXggMDAwMDAwMC4uZWIyZmI3ZgogKwl7CiArCWNhc2UgU1RBUF9BUkdfQklU TkVTU19VTkRFRklORUQ6CiArCSAgaWYgKGV2YWxfaW5mby0+Y29tcGlsaW5nX3ApCi0rCSAgICBh b3AgPSBhb3BfcmVmMzI7CisrCSAgICB7CisrCSAgICAgIGlmIChnZGJhcmNoX2FkZHJfYml0IChn ZGJhcmNoKSA9PSAzMikKKysJCWFvcCA9IGFvcF9yZWYzMjsKKysJICAgICAgZWxzZQorKwkJYW9w ID0gYW9wX3JlZjY0OworKwkgICAgfQogKwkgIGVsc2UKLSsJICAgIHQgPSBsb29rdXBfcG9pbnRl cl90eXBlCi0rCSAgICAgIChidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX3Vuc2lnbmVk X2xvbmcpOworKwkgICAgeworKwkgICAgICBpZiAoZ2RiYXJjaF9hZGRyX2JpdCAoZ2RiYXJjaCkg PT0gMzIpCisrCQl0ID0gbG9va3VwX3BvaW50ZXJfdHlwZQorKwkJICAoYnVpbHRpbl90eXBlIChn ZGJhcmNoKS0+YnVpbHRpbl91aW50MzIpOworKwkgICAgICBlbHNlCisrCQl0ID0gbG9va3VwX3Bv aW50ZXJfdHlwZQorKwkJICAoYnVpbHRpbl90eXBlIChnZGJhcmNoKS0+YnVpbHRpbl91aW50NjQp OworKwkgICAgfQogKwkgIGJyZWFrOwogKwogKwljYXNlIFNUQVBfQVJHX0JJVE5FU1NfMzJCSVRf U0lHTkVEOgpAQCAtOTYyMSw3ICs5NzY0LDYgQEAgaW5kZXggMDAwMDAwMC4uZWIyZmI3ZgogKwkg IGlmIChldmFsX2luZm8tPmNvbXBpbGluZ19wKQogKwkgICAgewogKwkgICAgICBheF9jb25zdF9s IChldmFsX2luZm8tPmFleHByLCB2YWx1ZV9hc19sb25nIChkaXNwbGFjZW1lbnQpKTsKLSsJICAg ICAgLyogRklYTUU6IElzIHRoaXMgY29ycmVjdD8gICovCiArCSAgICAgIGF4X3NpbXBsZSAoZXZh bF9pbmZvLT5hZXhwciwgYW9wX2FkZCk7CiArCSAgICB9CiArCSAgZWxzZQpAQCAtOTYyOSw3ICs5 NzcxLDE0IEBAIGluZGV4IDAwMDAwMDAuLmViMmZiN2YKICsJfQogKwogKyAgICAgIGlmIChldmFs X2luZm8tPmNvbXBpbGluZ19wKQotKwlheF9zaW1wbGUgKGV2YWxfaW5mby0+YWV4cHIsIGFvcCk7 CisrCXsKKysJICBpZiAodHJhY2Vfa2x1ZGdlKQorKwkgICAgeworKwkgICAgICBnZGJfYXNzZXJ0 IChhb3AgPT0gYW9wX3JlZjMyIHx8IGFvcCA9PSBhb3BfcmVmNjQpOworKwkgICAgICBheF90cmFj ZV9xdWljayAoZXZhbF9pbmZvLT5hZXhwciwgYW9wID09IGFvcF9yZWYzMiA/IDQgOiA4KTsKKysJ ICAgIH0KKysJICBheF9zaW1wbGUgKGV2YWxfaW5mby0+YWV4cHIsIGFvcCk7CisrCX0KICsgICAg ICBlbHNlCiArCXsKICsJICByZXQgPSB2YWx1ZV9jYXN0ICh0LCByZXQpOwpAQCAtOTY0MSw3ICs5 NzkwLDcgQEAgaW5kZXggMDAwMDAwMC4uZWIyZmI3ZgogKyAgICAgc29tZSBtb2RpZmljYXRpb25z IHRvIGl0IGJlZm9yZS4gICovCiArICBldmFsX2luZm8tPmV4cF9idWYgPSBzOwogKwotKyAgcmV0 dXJuIGV2YWxfaW5mby0+Y29tcGlsaW5nX3AgPyAoc3RydWN0IHZhbHVlICopIDEgOiByZXQ7Cisr ICByZXR1cm4gcmV0OwogK30KICsKICsvKiBUaGlzIGZ1bmN0aW9uIHRyaWVzIHRvIGV2YWx1YXRl IGEgc2luZ2xlIG9wZXJhbmQgb2YgdGhlIGV4cHJlc3Npb24uCkBAIC05NjU4LDcgKzk4MDcsMTQg QEAgaW5kZXggMDAwMDAwMC4uZWIyZmI3ZgogKyAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBl dmFsX2luZm8tPmdkYmFyY2g7CiArICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUgPSBldmFsX2lu Zm8tPmZyYW1lOwogKyAgZW51bSBzdGFwX2FyZ19iaXRuZXNzIGJpdG5lc3MgPSBldmFsX2luZm8t PmJpdG5lc3M7Ci0rICBzdHJ1Y3QgdmFsdWUgKnJlczsKKysgIHN0cnVjdCB2YWx1ZSAqcmVzID0g TlVMTDsKKysKKysgIGlmIChldmFsX2luZm8tPmNvbXBpbGluZ19wKQorKyAgICAvKiBJZiB3ZSBh cmUgY29tcGlsaW5nLCB3ZSBjYW5ub3QgcmV0dXJuIE5VTEwgYmVjYXVzZSB0aGF0IHdvdWxkCisr ICAgICAgIGxlYWQgdG8gZXJyb3JzIGluIGZ1dHVyZSBldmFsdWF0aW9ucy4gIFRoYXQncyB3aHkg d2UganVzdCBtYWtlCisrICAgICAgIHRoaXMgZHVtbXkgdmFsdWUsIHJlcHJlc2VudGluZyB0aGF0 IHRoZSByZXR1cm4gdmFsdWUgb2YgdGhpcworKyAgICAgICBmdW5jdGlvbiBpcyBub3QgTlVMTC4g ICovCisrICAgIHJlcyA9IHZhbHVlX2Zyb21fbG9uZ2VzdCAoYnVpbHRpbl90eXBlIChnZGJhcmNo KS0+YnVpbHRpbl9pbnQsIDApOwogKwogKyAgc3dpdGNoICgqZXZhbF9pbmZvLT5leHBfYnVmKQog KyAgICB7CkBAIC05NjY2LDcgKzk4MjIsNyBAQCBpbmRleCAwMDAwMDAwLi5lYjJmYjdmCiArCXsK ICsJICBjaGFyIGMgPSAqZXZhbF9pbmZvLT5leHBfYnVmOwogKwotKwkgIC8qIFRoaXMgaXMgYSBi aW5hcnkgb3BlcmF0b3IgKGVpdGhlciBgLScgb3IgYH4nKS4KKysJICAvKiBUaGlzIGlzIGFuIHVu YXJ5IG9wZXJhdG9yIChlaXRoZXIgYC0nIG9yIGB+JykuCiArCiArCSAgICAgSWYgaXQgaXMgZm9s bG93ZWQgYnkgYSBwYXJlbnRoZXNpcywgYW5kIHRoaXMgcGFyZW50aGVzaXMKICsJICAgICBpcyBO T1QgZm9sbG93ZWQgYnkgYSBgJScsIHRoZW4gd2UgYXJlIGRlYWxpbmcgd2l0aCBhbiBleHByZXNz aW9uCkBAIC05ODMxLDYgKzk5ODcsNyBAQCBpbmRleCAwMDAwMDAwLi5lYjJmYjdmCiArICAgICAg ewogKwkvKiBSZWdpc3RlciBhY2Nlc3MsIHdpdGggb3Igd2l0aG91dCBpbmRpcmVjdGlvbi4gICov CiArCXJlcyA9IHN0YXBfZmV0Y2hfcmVnX3ZhbHVlIChldmFsX2luZm8sIC8qZGlzcGxhY2VtZW50 PSovTlVMTCk7CisrCWV2YWxfaW5mby0+ZXhwX2J1ZiA9IHNraXBfc3BhY2VzIChldmFsX2luZm8t PmV4cF9idWYpOwogKyAgICAgIH0KICsgICAgYnJlYWs7CiArCkBAIC05ODQxLDE3ICs5OTk4LDkg QEAgaW5kZXggMDAwMDAwMC4uZWIyZmI3ZgogKyAgICAgIH0KICsgICAgfQogKwotKyAgcmV0dXJu IGV2YWxfaW5mby0+Y29tcGlsaW5nX3AgPyAoc3RydWN0IHZhbHVlICopIDEgOiByZXM7CisrICBy ZXR1cm4gcmVzOwogK30KICsKLSsvKiBUaGlzIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBj aGVja2luZyB0aGUgbmVjZXNzYXJ5IHR5cGUgb2YgZXZhbHVhdGlvbgotKyAgIGRlcGVuZGluZyBv biB3aGF0IGlzIHRoZSBuZXh0ICJ0aGluZyIgaW4gdGhlIGJ1ZmZlci4gIFZhbGlkIHZhbHVlcyBh cmU6Ci0rCi0rICAgLSBVbmFyeSBvcGVyYXRvcnM7Ci0rICAgLSBJbnRlZ2VyIGNvbnN0YW50czsK LSsgICAtIFJlZ2lzdGVyIGRpc3BsYWNlbWVudCwgaW5kaXJlY3Rpb24sIGFuZCBkaXJlY3QgYWNj ZXNzOwotKyAgIC0gUGFyZW50aGVzaXplZCBvcGVyYW5kLiAgKi8KLSsKICtzdGF0aWMgc3RydWN0 IHZhbHVlICoKICtzdGFwX2V2YWx1YXRlX2NvbmRpdGlvbmFsbHkgKHN0cnVjdCBzdGFwX2V2YWx1 YXRpb25faW5mbyAqZXZhbF9pbmZvKQogK3sKQEAgLTk4NzksNiArMTAwMjgsNyBAQCBpbmRleCAw MDAwMDAwLi5lYjJmYjdmCiArICAgICAgaWYgKCpldmFsX2luZm8tPmV4cF9idWYgIT0gJyknKQog KwllcnJvciAoXygiTWlzc2lnbiBjbG9zZS1wYXJlbiBvbiBleHByZXNzaW9uIGAlcycuIiksCiAr CSAgICAgICBldmFsX2luZm8tPnNhdmVkX2V4cHIpOworKwogKyAgICAgICsrZXZhbF9pbmZvLT5l eHBfYnVmOwogKyAgICAgIGV2YWxfaW5mby0+ZXhwX2J1ZiA9IHNraXBfc3BhY2VzIChldmFsX2lu Zm8tPmV4cF9idWYpOwogKyAgICB9CkBAIC0xMDAxNCw2ICsxMDE2NCw3IEBAIGluZGV4IDAwMDAw MDAuLmViMmZiN2YKICsgIC8qIFdlIGFyZSBub3QgY29tcGlsaW5nIHRvIGFuIGFnZW50IGV4cHJl c3Npb24uICAqLwogKyAgZXZhbF9pbmZvLmNvbXBpbGluZ19wID0gMDsKICsgIGV2YWxfaW5mby5h ZXhwciA9IE5VTEw7CisrICBldmFsX2luZm8uYXZhbHVlID0gTlVMTDsKICsKICsgIHJlcyA9IHN0 YXBfZXZhbHVhdGVfcHJvYmVfYXJndW1lbnRfMiAoJmV2YWxfaW5mbywKICsJCQkJCS8qbGhzPSov TlVMTCwgLypwcmVjPSovMCk7CkBAIC0xMDA2MCw2ICsxMDIxMSw3IEBAIGluZGV4IDAwMDAwMDAu LmViMmZiN2YKICsJCSAgICAgIGludCBuKQogK3sKICsgIHN0cnVjdCBzdGFwX2V2YWx1YXRpb25f aW5mbyBldmFsX2luZm87CisrICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGV4cHItPmdkYmFy Y2g7CiArICBjaGFyICpzID0gKGNoYXIgKikgcHJvYmUtPnBhcnNlZF9hcmdzLT5hcmdbbl0uYXJn X3N0cjsKICsKICsgIC8qIEZpbGxpbmcgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIGZvciBldmFsdWF0 aW9uIGZ1bmN0aW9uLiAgKi8KQEAgLTEwMDcxLDYgKzEwMjIzLDQyIEBAIGluZGV4IDAwMDAwMDAu LmViMmZiN2YKICsgIC8qIFdlIGFyZSBjb21waWxpbmcgdG8gYW4gYWdlbnQgZXhwcmVzc2lvbi4g ICovCiArICBldmFsX2luZm8uY29tcGlsaW5nX3AgPSAxOwogKyAgZXZhbF9pbmZvLmFleHByID0g ZXhwcjsKKysgIGV2YWxfaW5mby5hdmFsdWUgPSB2YWx1ZTsKKysKKysgIC8qIFdlIGNhbiBhbHdh eXMgdXNlIHRoaXMga2luZC4gICovCisrICB2YWx1ZS0+a2luZCA9IGF4c19ydmFsdWU7CisrCisr ICAvKiBGaWd1cmluZyBvdXQgdGhlIGNvcnJlY3QgdHlwZSBmb3IgdGhpcyBheHNfdmFsdWUuICAq LworKyAgc3dpdGNoIChldmFsX2luZm8uYml0bmVzcykKKysgICAgeworKyAgICBjYXNlIFNUQVBf QVJHX0JJVE5FU1NfVU5ERUZJTkVEOgorKyAgICAgIGlmIChnZGJhcmNoX2FkZHJfYml0IChnZGJh cmNoKSA9PSAzMikKKysJdmFsdWUtPnR5cGUgPSBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWls dGluX3VpbnQzMjsKKysgICAgICBlbHNlCisrCXZhbHVlLT50eXBlID0gYnVpbHRpbl90eXBlIChn ZGJhcmNoKS0+YnVpbHRpbl91aW50NjQ7CisrICAgICAgYnJlYWs7CisrCisrICAgIGNhc2UgU1RB UF9BUkdfQklUTkVTU18zMkJJVF9TSUdORUQ6CisrICAgICAgdmFsdWUtPnR5cGUgPSBidWlsdGlu X3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX2ludDMyOworKyAgICAgIGJyZWFrOworKworKyAgICBj YXNlIFNUQVBfQVJHX0JJVE5FU1NfMzJCSVRfVU5TSUdORUQ6CisrICAgICAgdmFsdWUtPnR5cGUg PSBidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5idWlsdGluX3VpbnQzMjsKKysgICAgICBicmVhazsK KysKKysgICAgY2FzZSBTVEFQX0FSR19CSVRORVNTXzY0QklUX1NJR05FRDoKKysgICAgICB2YWx1 ZS0+dHlwZSA9IGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5faW50NjQ7CisrICAgICAg YnJlYWs7CisrCisrICAgIGNhc2UgU1RBUF9BUkdfQklUTkVTU182NEJJVF9VTlNJR05FRDoKKysg ICAgICB2YWx1ZS0+dHlwZSA9IGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5fdWludDY0 OworKyAgICAgIGJyZWFrOworKworKyAgICBkZWZhdWx0OgorKyAgICAgIGludGVybmFsX2Vycm9y IChfX0ZJTEVfXywgX19MSU5FX18sCisrCQkgICAgICBfKCJVbmRlZmluZWQgYml0bmVzcyBmb3Ig cHJvYmUuIikpOworKyAgICAgIGJyZWFrOworKyAgICB9CiArCiArICBzdGFwX2V2YWx1YXRlX3By b2JlX2FyZ3VtZW50XzIgKCZldmFsX2luZm8sCiArCQkJCSAgLypsaHM9Ki9OVUxMLCAvKnByZWM9 Ki8wKTsKQEAgLTEwMzg5LDkgKzEwNTc3LDExIEBAIGluZGV4IDAwMDAwMDAuLmViMmZiN2YKICt9 CiArCiArc3RydWN0IHN5bXRhYnNfYW5kX2xpbmVzCi0rcGFyc2Vfc3RhcF9wcm9iZSAoY2hhciAq KmFyZ3B0cikKKytwYXJzZV9zdGFwX3Byb2JlIChjaGFyICoqYXJncHRyLCBzdHJ1Y3QgbGluZXNw ZWNfcmVzdWx0ICpjYW5vbmljYWwsCisrCQkgIGludCAqbm90X2ZvdW5kX3B0cikKICt7Ci0rICBj aGFyICphcmcgPSBleHRyYWN0X2FyZyAoYXJncHRyKTsKKysgIGNoYXIgKmZ1bGxfYXJnID0gZXh0 cmFjdF9hcmcgKGFyZ3B0cik7CisrICBjaGFyICphcmcgPSB4c3RyZHVwIChmdWxsX2FyZyk7CiAr ICBjaGFyICpvYmpmaWxlX25hbWUgPSBOVUxMLCAqcHJvdmlkZXIgPSBOVUxMLCAqbmFtZSwgKnA7 CiArICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cDsKICsgIHN0cnVjdCBzeW10YWJzX2FuZF9saW5l cyByZXN1bHQ7CkBAIC0xMDQwMyw2ICsxMDU5Myw3IEBAIGluZGV4IDAwMDAwMDAuLmViMmZiN2YK ICsgIC8qIFRoZSBjYWxsZXIgZW5zdXJlZCB0aGF0IHRoaXMgc3RhcnRzIHdpdGggJ3Byb2JlOicu ICAqLwogKyAgZ2RiX2Fzc2VydCAoYXJnICYmIHN0cm5jbXAgKGFyZywgInByb2JlOiIsIDYpID09 IDApOwogKyAgY2xlYW51cCA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGFyZyk7CisrICBtYWtlX2Ns ZWFudXAgKHhmcmVlLCBmdWxsX2FyZyk7CiArICBhcmcgKz0gNjsKICsKICsgIC8qIEV4dHJhY3Qg ZWFjaCB3b3JkIGZyb20gdGhlIGFyZ3VtZW50LCBzZXBhcmF0ZWQgYnkgIjoicy4gICovCkBAIC0x MDQ0MSw2ICsxMDYzMiw5IEBAIGluZGV4IDAwMDAwMDAuLmViMmZiN2YKICsgIGlmIChvYmpmaWxl X25hbWUgJiYgKm9iamZpbGVfbmFtZSA9PSAnXDAnKQogKyAgICBlcnJvciAoXygiaW52YWxpZCBv YmpmaWxlIG5hbWUiKSk7CiArCisrICBpZiAoY2Fub25pY2FsKQorKyAgICBjYW5vbmljYWwtPmNh bm9uaWNhbCA9IE5VTEw7CisrCiArICBBTExfT0JKRklMRVMgKG9iamZpbGUpCiArICB7CiArICAg IGNvbnN0IHN0cnVjdCBzdGFwX3Byb2JlICpwcm9iZXM7CkBAIC0xMDQ3NywxNSArMTA2NzEsMzIg QEAgaW5kZXggMDAwMDAwMC4uZWIyZmI3ZgogKwlzYWwtPnNlY3Rpb24gPSBmaW5kX3BjX292ZXJs YXkgKHNhbC0+cGMpOwogKwlzYWwtPnBzcGFjZSA9IGN1cnJlbnRfcHJvZ3JhbV9zcGFjZTsKICsJ c2FsLT5zZW1hcGhvcmUgPSBwcm9iZXNbaV0uc2VtX2FkZHI7CisrCisrCWlmIChjYW5vbmljYWwp CisrCSAgeworKwkgICAgY2Fub25pY2FsLT5jYW5vbmljYWwgPSB4cmVhbGxvYyAoY2Fub25pY2Fs LT5jYW5vbmljYWwsCisrCQkJCQkgICAgIHJlc3VsdC5uZWx0cyAqIHNpemVvZiAoY2hhciAqKikp OworKwkgICAgY2Fub25pY2FsLT5jYW5vbmljYWxbcmVzdWx0Lm5lbHRzIC0gMV0gPSB4c3RyZHVw IChmdWxsX2FyZyk7CisrCSAgfQogKyAgICAgIH0KICsgIH0KICsKICsgIGlmIChyZXN1bHQubmVs dHMgPT0gMCkKLSsgICAgdGhyb3dfZXJyb3IgKE5PVF9GT1VORF9FUlJPUiwKLSsJCSBfKCJObyBw cm9iZSBtYXRjaGluZyBvYmpmaWxlPWAlcycsIHByb3ZpZGVyPWAlcycsIG5hbWU9YCVzJyIpLAot KwkJIG9iamZpbGVfbmFtZSA/IG9iamZpbGVfbmFtZSA6IF8oIjxhbnk+IiksCi0rCQkgcHJvdmlk ZXIgPyBwcm92aWRlciA6IF8oIjxhbnk+IiksCi0rCQkgbmFtZSk7CisrICAgIHsKKysgICAgICBp ZiAobm90X2ZvdW5kX3B0cikKKysJKm5vdF9mb3VuZF9wdHIgPSAxOworKyAgICAgIHRocm93X2Vy cm9yIChOT1RfRk9VTkRfRVJST1IsCisrCQkgICBfKCJObyBwcm9iZSBtYXRjaGluZyBvYmpmaWxl PWAlcycsIHByb3ZpZGVyPWAlcycsIG5hbWU9YCVzJyIpLAorKwkJICAgb2JqZmlsZV9uYW1lID8g b2JqZmlsZV9uYW1lIDogXygiPGFueT4iKSwKKysJCSAgIHByb3ZpZGVyID8gcHJvdmlkZXIgOiBf KCI8YW55PiIpLAorKwkJICAgbmFtZSk7CisrICAgIH0KKysKKysgIGlmIChjYW5vbmljYWwpCisr ICAgIHsKKysgICAgICBjYW5vbmljYWwtPnNwZWNpYWxfZGlzcGxheSA9IDE7CisrICAgICAgY2Fu b25pY2FsLT5wcmVfZXhwYW5kZWQgPSAxOworKyAgICB9CiArCiArICBkb19jbGVhbnVwcyAoY2xl YW51cCk7CiArCkBAIC0xMDU5Niw5ICsxMDgwNyw2IEBAIGluZGV4IDAwMDAwMDAuLmViMmZiN2YK ICsgICAgZXJyb3IgKF8oIkludmFsaWQgcHJvYmUgYXJndW1lbnQgJWQgLS0gcHJvYmUgaGFzICVk IGFyZ3VtZW50cyBhdmFpbGFibGUiKSwKICsJICAgc2VsLCBuX3Byb2Jlcyk7CiArCi0rICAvKiBG SVhNRTogdGhpcyBpcyB0ZW1wb3JhcnkgdW50aWwgQVggdHJhbnNsYXRpb24gaXMgaW1wbGVtZW50 ZWQuICAqLwotKyAgaWYgKCFvYmpmaWxlLT5zZi0+c3ltX3Byb2JlX2Zucy0+c3ltX2NvbXBpbGVf dG9fYXgpCi0rICAgIGVycm9yIChfKCJjYW5ub3QgdHJhbnNsYXRlIGAkX3Byb2JlX2FyZyVkJyB0 byBieXRlY29kZSIpLCBzZWwpOwogKyAgb2JqZmlsZS0+c2YtPnN5bV9wcm9iZV9mbnMtPnN5bV9j b21waWxlX3RvX2F4IChvYmpmaWxlLCBwY19wcm9iZSwKICsJCQkJCQkgZXhwciwgdmFsdWUsIHNl bCk7CiArfQpAQCAtMTA2NDgsMTAgKzEwODU2LDEwIEBAIGluZGV4IDAwMDAwMDAuLmViMmZiN2YK ICt9CiBkaWZmIC0tZ2l0IGEvZ2RiL3N0YXAtcHJvYmUuaCBiL2dkYi9zdGFwLXByb2JlLmgKIG5l dyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi4zYTc5NDFmCitpbmRleCAwMDAwMDAw Li5kNzAwYjE5CiAtLS0gL2Rldi9udWxsCiArKysgYi9nZGIvc3RhcC1wcm9iZS5oCi1AQCAtMCww ICsxLDExMCBAQAorQEAgLTAsMCArMSwxMTMgQEAKICsvKiBTeXN0ZW10YXAgcHJvYmUgc3VwcG9y dCBmb3IgR0RCLgogKwogKyAgIENvcHlyaWdodCAoQykgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KQEAgLTEwNjc2LDYgKzEwODg0LDcgQEAgaW5kZXggMDAwMDAwMC4uM2E3OTQx ZgogKwogK3N0cnVjdCBzdGFwX2FyZ3NfaW5mbzsKICtzdHJ1Y3QgYXhzX3ZhbHVlOworK3N0cnVj dCBsaW5lc3BlY19yZXN1bHQ7CiArCiArc3RydWN0IHN0YXBfcHJvYmUKICt7CkBAIC0xMDcwNyw3 ICsxMDkxNiw5IEBAIGluZGV4IDAwMDAwMDAuLjNhNzk0MWYKICsgICByZXR1cm5zIGEgc3ltdGFi c19hbmRfbGluZXMgb2JqZWN0IGFuZCB1cGRhdGVzICpBUkdQVFIgb3IgdGhyb3dzIGFuCiArICAg ZXJyb3IuICAqLwogKwotK2V4dGVybiBzdHJ1Y3Qgc3ltdGFic19hbmRfbGluZXMgcGFyc2Vfc3Rh cF9wcm9iZSAoY2hhciAqKmFyZ3B0cik7CisrZXh0ZXJuIHN0cnVjdCBzeW10YWJzX2FuZF9saW5l cyBwYXJzZV9zdGFwX3Byb2JlIChjaGFyICoqYXJncHRyLAorKwkJCQkJCSAgc3RydWN0IGxpbmVz cGVjX3Jlc3VsdCAqY2Fub24sCisrCQkJCQkJICBpbnQgKm5vdF9mb3VuZF9wdHIpOwogKwogKy8q IFNlYXJjaCBPQkpGSUxFIGZvciBhIHByb2JlIHdpdGggdGhlIGdpdmVuIFBST1ZJREVSIGFuZCBO QU1FLiAgSWYgYQogKyAgIHByb2JlIGlzIGZvdW5kLCByZXR1cm4gaXQuICBJZiBubyBwcm9iZSBp cyBmb3VuZCwgcmV0dXJuIE5VTEwuICAqLwpAQCAtMTA4NDMsMTAgKzExMDU0LDEwIEBAIGluZGV4 IGEwMTUxZWEuLjc1MmM0NmEgMTAwNjQ0CiAgICAgICByZWFkZXIuICAqLwogICAgY29uc3Qgc3Ry dWN0IHF1aWNrX3N5bWJvbF9mdW5jdGlvbnMgKnFmOwogZGlmZiAtLWdpdCBhL2dkYi9zeW1taXNj LmMgYi9nZGIvc3ltbWlzYy5jCi1pbmRleCA0YmU4MTA2Li4wODFiNTMyIDEwMDY0NAoraW5kZXgg NzRlNDk0MS4uNjZjMmYwNSAxMDA2NDQKIC0tLSBhL2dkYi9zeW1taXNjLmMKICsrKyBiL2dkYi9z eW1taXNjLmMKLUBAIC0yNjQsNiArMjY0LDkgQEAgZHVtcF9tc3ltYm9scyAoc3RydWN0IG9iamZp bGUgKm9iamZpbGUsIHN0cnVjdCB1aV9maWxlICpvdXRmaWxlKQorQEAgLTI2NSw2ICsyNjUsOSBA QCBkdW1wX21zeW1ib2xzIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3RydWN0IHVpX2ZpbGUg Km91dGZpbGUpCiAgCWNhc2UgbXN0X3RleHQ6CiAgCSAgbXNfdHlwZSA9ICdUJzsKICAJICBicmVh azsKQEAgLTEwODU3LDcgKzExMDY4LDcgQEAgaW5kZXggNGJlODEwNi4uMDgxYjUzMiAxMDA2NDQK ICAJICBtc190eXBlID0gJ1MnOwogIAkgIGJyZWFrOwogZGlmZiAtLWdpdCBhL2dkYi9zeW10YWIu YyBiL2dkYi9zeW10YWIuYwotaW5kZXggNjBiYzU4NS4uNzM0ZDMxMiAxMDA2NDQKK2luZGV4IDMw NjFmM2MuLjBiY2JiZjcgMTAwNjQ0CiAtLS0gYS9nZGIvc3ltdGFiLmMKICsrKyBiL2dkYi9zeW10 YWIuYwogQEAgLTc3MCw2ICs3NzAsNyBAQCBpbml0X3NhbCAoc3RydWN0IHN5bXRhYl9hbmRfbGlu ZSAqc2FsKQpAQCAtMTIxNTAsNiArMTIzNjEsMjggQEAgaW5kZXggZDhlZTVjMC4uZGU0YmE3NSAx MDA2NDQKICsJdW5zdXBwb3J0ZWQgIiR0ZXN0IChubyBHQ0MpIgogKyAgICB9CiArfQorZGlmZiAt LWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZGVmYXVsdC5leHAgYi9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2RlZmF1bHQuZXhwCitpbmRleCBkNThjNTE5Li5hYmIxYjA1IDEwMDY0NAorLS0t IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9kZWZhdWx0LmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9kZWZhdWx0LmV4cAorQEAgLTYwNyw2ICs2MDcsMTcgQEAgZ2RiX3Rlc3RfbGlz dF9leGFjdCAic2hvdyBjb252ZW5pZW5jZSIgInNob3cgY29udmVuaWVuY2UiIFwKKyAJeyRfc2Rh dGEgPSB2b2lkfSBcCisgCXskX3NpZ2luZm8gPSB2b2lkfSBcCisgCXskX3RocmVhZCA9IDB9IFwK KysJeyRfcHJvYmVfYXJnYyA9IDxlcnJvcjogTm8gZnJhbWUgc2VsZWN0ZWQ+fSBcCisrCXskX3By b2JlX2FyZzAgPSA8ZXJyb3I6IE5vIGZyYW1lIHNlbGVjdGVkPn0gXAorKwl7JF9wcm9iZV9hcmcx ID0gPGVycm9yOiBObyBmcmFtZSBzZWxlY3RlZD59IFwKKysJeyRfcHJvYmVfYXJnMiA9IDxlcnJv cjogTm8gZnJhbWUgc2VsZWN0ZWQ+fSBcCisrCXskX3Byb2JlX2FyZzMgPSA8ZXJyb3I6IE5vIGZy YW1lIHNlbGVjdGVkPn0gXAorKwl7JF9wcm9iZV9hcmc0ID0gPGVycm9yOiBObyBmcmFtZSBzZWxl Y3RlZD59IFwKKysJeyRfcHJvYmVfYXJnNSA9IDxlcnJvcjogTm8gZnJhbWUgc2VsZWN0ZWQ+fSBc CisrCXskX3Byb2JlX2FyZzYgPSA8ZXJyb3I6IE5vIGZyYW1lIHNlbGVjdGVkPn0gXAorKwl7JF9w cm9iZV9hcmc3ID0gPGVycm9yOiBObyBmcmFtZSBzZWxlY3RlZD59IFwKKysJeyRfcHJvYmVfYXJn OCA9IDxlcnJvcjogTm8gZnJhbWUgc2VsZWN0ZWQ+fSBcCisrCXskX3Byb2JlX2FyZzkgPSA8ZXJy b3I6IE5vIGZyYW1lIHNlbGVjdGVkPn0gXAorICAgICB9CisgCisgI3Rlc3Qgc2hvdyBkaXJlY3Rv cmllcwogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZ251LWlmdW5jLWxpYi5j IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9nbnUtaWZ1bmMtbGliLmMKIG5ldyBmaWxlIG1vZGUg MTAwNjQ0CiBpbmRleCAwMDAwMDAwLi5kYzY3MTBlCkBAIC0xMjU0Myw3ICsxMjc3Niw3IEBAIGlu ZGV4IDAwMDAwMDAuLjQ3ZTRiMzkKICt9CiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS9zdGFwLXByb2JlLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc3RhcC1wcm9iZS5l eHAKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5iYzNkNDBjCitpbmRleCAw MDAwMDAwLi4zZmI3Mzc3CiAtLS0gL2Rldi9udWxsCiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL3N0YXAtcHJvYmUuZXhwCiBAQCAtMCwwICsxLDcyIEBACkBAIC0xMjYwOCw3ICsxMjg0MSw3 IEBAIGluZGV4IDAwMDAwMDAuLmJjM2Q0MGMKICsKICsgICAgIyBTZXQgYSBicmVha3BvaW50IHdp dGggbXVsdGlwbGUgcHJvYmUgbG9jYXRpb25zLgogKyAgICBnZGJfdGVzdCAiYnJlYWsgcHJvYmU6 dGVzdGU6dHdvIiBcCi0rCSJCcmVha3BvaW50IC4qIGF0ICRoZXguKkJyZWFrcG9pbnQgLiogYXQg JGhleC4qIiBcCisrCSJCcmVha3BvaW50IC4qIGF0ICRoZXguKjIgbG9jYXRpb25zLioiIFwKICsJ InNldCBtdWx0aS1sb2NhdGlvbiBwcm9iZSBicmVha3BvaW50JGFkZGVuZHVtIgogKwogKyAgICBy ZXR1cm4gMApAQCAtMTU1NDYsOCArMTU3NzksMjIwIEBAIGluZGV4IDAwMDAwMDAuLjMxZjc2NTYK ICsKICtleHRlcm4gdm9pZCBtYXJrZXIgKHZvaWQpOwogK2V4dGVybiB2b2lkIGZvcmtvZmYgKGlu dCBucik7CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIudHJhY2Uvc3RhcC10cmFjZS5j IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudHJhY2Uvc3RhcC10cmFjZS5jCituZXcgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMDAwMDAwMC4uMjdmMzE3ZQorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIudHJhY2Uvc3RhcC10cmFjZS5jCitAQCAtMCwwICsxLDcxIEBACisrLyogVGhp cyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKysKKysgICBDb3B5 cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysgICBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQor KyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lmIFVTRV9QUk9CRVMKKysKKysj ZGVmaW5lIF9TRFRfSEFTX1NFTUFQSE9SRVMKKytfX2V4dGVuc2lvbl9fIHVuc2lnbmVkIHNob3J0 IHRlc3RlX3VzZXJfc2VtYXBob3JlIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSBfX2F0dHJpYnV0 ZV9fICgoc2VjdGlvbiAoIi5wcm9iZXMiKSkpOworKyNkZWZpbmUgVEVTVCB0ZXN0ZV91c2VyX3Nl bWFwaG9yZQorKworK19fZXh0ZW5zaW9uX18gdW5zaWduZWQgc2hvcnQgdGVzdGVfdHdvX3NlbWFw aG9yZSBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSkgX19hdHRyaWJ1dGVfXyAoKHNlY3Rpb24gKCIu cHJvYmVzIikpKTsKKysjZGVmaW5lIFRFU1QyIHRlc3RlX3R3b19zZW1hcGhvcmUKKysKKysjZWxz ZQorKworKyNkZWZpbmUgVEVTVCAxCisrI2RlZmluZSBURVNUMiAxCisrCisrI2VuZGlmIC8qIFVT RV9QUk9CRVMgKi8KKysKKysjaW5jbHVkZSA8c3lzL3NkdC5oPgorKworKy8qIFdlIG9ubHkgc3Vw cG9ydCBTeXN0ZW1UYXAgYW5kIG9ubHkgdGhlIHYzIGZvcm0uICAqLworKyNpZiBfU0RUX05PVEVf VFlQRSAhPSAzCisrI2Vycm9yICJub3QgdXNpbmcgU3lzdGVtVGFwIHYzIHByb2JlcyIKKysjZW5k aWYKKysKKyt2b2lkCisrbTEgKGludCB4KQorK3sKKysgIGlmIChURVNUMikKKysgICAgU1RBUF9Q Uk9CRTEgKHRlc3RlLCB0d28sIHgpOworK30KKysKKytpbnQKKytmIChpbnQgeCkKKyt7CisrICBp ZiAoVEVTVCkKKysgICAgU1RBUF9QUk9CRTEodGVzdGUsIHVzZXIsIHgpOworKyAgcmV0dXJuIHgr NTsKKyt9CisrCisrdm9pZAorK25vdGhpbmcgKHZvaWQpCisreworKyAgaW50IGEgPSAxICsgMTsK KysgIHJldHVybjsKKyt9CisrCisraW50CisrbWFpbigpCisreworKyAgZiAoZiAoMjMpKTsKKysg IG0xICg0Nik7CisrICBub3RoaW5nICgpOyAvKiBlbmQtaGVyZSAqLworKworKyAgcmV0dXJuIDA7 CisrfQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnRyYWNlL3N0YXAtdHJhY2UuZXhw IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudHJhY2Uvc3RhcC10cmFjZS5leHAKK25ldyBmaWxlIG1vZGUg MTAwNjQ0CitpbmRleCAwMDAwMDAwLi4xODkzNTVmCistLS0gL2Rldi9udWxsCisrKysgYi9nZGIv dGVzdHN1aXRlL2dkYi50cmFjZS9zdGFwLXRyYWNlLmV4cAorQEAgLTAsMCArMSwxMjkgQEAKKysj IENvcHlyaWdodCAyMDExCisrIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysj IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisr IyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrbG9hZF9saWIgInRyYWNlLXN1cHBvcnQu ZXhwIgorKworK2lmICR0cmFjZWxldmVsIHRoZW4geworKwlzdHJhY2UgJHRyYWNlbGV2ZWwKKyt9 CisrCisrc2V0IHRlc3RmaWxlICJzdGFwLXRyYWNlIgorK3NldCBzcmNmaWxlICR7dGVzdGZpbGV9 LmMKKytzZXQgZXhlY3V0YWJsZSAkdGVzdGZpbGUKKytzZXQgYmluZmlsZSAkb2JqZGlyLyRzdWJk aXIvJGV4ZWN1dGFibGUKKysKKytzZXQgd3MgIlxbXHJcblx0IFxdKyIKKytzZXQgY3IgIlxbXHJc blxdKyIKKysKKysjIE9ubHkgeDg2IGFuZCB4ODZfNjQgdGFyZ2V0cyBhcmUgc3VwcG9ydGVkIGZv ciBub3cuCisrCisraWYgeyAhW2lzdGFyZ2V0ICJ4ODZfNjQtKiJdICYmICFbaXN0YXJnZXQgImk/ ODYtKiJdIH0geworKyAgICBjb250aW51ZQorK30KKysKKytwcm9jIGNvbXBpbGVfc3RhcF9iaW4g e3sgYXJnICIiIH19IHsKKysgICAgZ2xvYmFsIHNyY2ZpbGUKKysgICAgZ2xvYmFsIGJpbmZpbGUK KysgICAgZ2xvYmFsIHNyY2RpcgorKyAgICBnbG9iYWwgc3ViZGlyCisrCisrICAgIGlmIHsgJGFy ZyAhPSAiIiB9IHsKKysJc2V0IGFyZyAiYWRkaXRpb25hbF9mbGFncz0kYXJnIgorKyAgICB9Cisr CisrICAgIGlmIHsgW2dkYl9jb21waWxlICIkc3JjZGlyLyRzdWJkaXIvJHNyY2ZpbGUiICRiaW5m aWxlIFwKKysJICAgIGV4ZWN1dGFibGUgW2NvbmNhdCAkYXJnIGRlYnVnIG5vd2FybmluZ3NdXSAh PSAiIiB9IHsKKysJdW50ZXN0ZWQgIkNvdWxkIG5vdCBjb21waWxlICR7c3JjZmlsZX0iCisrCXJl dHVybiAtMQorKyAgICB9CisrfQorKworK3Byb2MgcHJlcGFyZV9mb3JfdHJhY2VfdGVzdCB7fSB7 CisrICAgIGdsb2JhbCBleGVjdXRhYmxlCisrCisrICAgIGNsZWFuX3Jlc3RhcnQgJGV4ZWN1dGFi bGUKKysKKysgICAgaWYgeyAhW3J1bnRvX21haW5dIH0geworKwlwZXJyb3IgIkNvdWxkIG5vdCBy dW4gdG8gYG1haW4nLiIKKysJY29udGludWUKKysgICAgfQorKworKyAgICBnZGJfYnJlYWtwb2lu dCBbZ2RiX2dldF9saW5lX251bWJlciAiZW5kLWhlcmUiXQorK30KKysKKytwcm9jIHJ1bl90cmFj ZV9leHBlcmltZW50IHsgdGVzdF9wcm9iZSBtc2cgfSB7CisrICAgIGdsb2JhbCBnZGJfcHJvbXB0 CisrCisrICAgIHNldCB0ZXN0ICJjb2xsZWN0ICRtc2c6IHN0YXJ0IHRyYWNlIGV4cGVyaW1lbnQi CisrICAgIGdkYl90ZXN0X211bHRpcGxlICJ0c3RhcnQiICIkdGVzdCIgeworKwktcmUgIl50c3Rh cnRcclxuJGdkYl9wcm9tcHQgJCIgeworKwkgICAgcGFzcyAiJHRlc3QiCisrCX0KKysgICAgfQor KworKyAgICBnZGJfdGVzdCAiY29udGludWUiIFwKKysJICAgICJDb250aW51aW5nLipCcmVha3Bv aW50IFxbMC05XF0rLioiIFwKKysJICAgICJjb2xsZWN0ICRtc2c6IHJ1biB0cmFjZSBleHBlcmlt ZW50IgorKyAgICBnZGJfdGVzdCAidHN0b3AiIFwKKysJICAgICJcW1xyXG5cXSsiIFwKKysJICAg ICJjb2xsZWN0ICRtc2c6IHN0b3AgdHJhY2UgZXhwZXJpbWVudCIKKysgICAgZ2RiX3Rlc3QgInRm aW5kIHN0YXJ0IiBcCisrCSAgICAiIzAgLioiIFwKKysJICAgICJjb2xsZWN0ICRtc2c6IHRmaW5k IHRlc3QgZnJhbWUiCisrfQorKworK3Byb2MgZ2RiX2NvbGxlY3RfcHJvYmVfYXJnIHsgbXNnIHBy b2JlIHZhbF9hcmcwIH0geworKyAgICBnbG9iYWwgZ2RiX3Byb21wdAorKyAgICBnbG9iYWwgY3IK KysKKysgICAgcHJlcGFyZV9mb3JfdHJhY2VfdGVzdAorKworKyAgICBnZGJfdGVzdCAidHJhY2Ug JHByb2JlIiBcCisrCSAgICAiVHJhY2Vwb2ludCBcWzAtOVxdKyBhdCAuKiIgXAorKwkgICAgImNv bGxlY3QgJG1zZzogc2V0IHRyYWNlcG9pbnQiCisrICAgIGdkYl90cmFjZV9zZXRhY3Rpb25zICJj b2xsZWN0ICRtc2c6IGRlZmluZSBhY3Rpb25zIiBcCisrCSAgICAiIiBcCisrCSAgICAiY29sbGVj dCBcJF9wcm9iZV9hcmcwIiAiXiQiCisrCisrICAgICMgQmVnaW4gdGhlIHRlc3QuCisrICAgIHJ1 bl90cmFjZV9leHBlcmltZW50ICRtc2cgJHByb2JlCisrCisrICAgIGdkYl90ZXN0ICJwcmludCBc JF9wcm9iZV9hcmcwIiBcCisrCSAgICAiXFwkXFswLTlcXSsgPSAkdmFsX2FyZzAkY3IiIFwKKysJ ICAgICJjb2xsZWN0ICRtc2c6IGNvbGxlY3RlZCBwcm9iZSBhcmcwIgorK30KKysKKytjb21waWxl X3N0YXBfYmluICIiCisrCisrY2xlYW5fcmVzdGFydCAkZXhlY3V0YWJsZQorK2lmIHsgIVtydW50 b19tYWluXSB9IHsKKysgICAgcGVycm9yICJDb3VsZCBub3QgcnVuIHRvIGBtYWluJy4iCisrICAg IGNvbnRpbnVlCisrfQorKworK2lmIHsgIVtnZGJfdGFyZ2V0X3N1cHBvcnRzX3RyYWNlXSB9IHsK KysgICAgIyBUZXN0IGNhbm5vdCBydW4gb24gdGhpcyB0YXJnZXQuCisrICAgIHJldHVybiAxOwor K30KKysKKytnZGJfY29sbGVjdF9wcm9iZV9hcmcgInByb2JlIGFyZ3Mgd2l0aG91dCBzZW1hcGhv cmUiICJwcm9iZTp1c2VyIiAiMjMiCisrZ2RiX2V4aXQKKysKKytjb21waWxlX3N0YXBfYmluICIt RFVTRV9QUk9CRVMiCisrZ2RiX2NvbGxlY3RfcHJvYmVfYXJnICJwcm9iZSBhcmdzIHdpdGggc2Vt YXBob3JlIiAicHJvYmU6dHdvIiAiNDYiCisrCisrIyBGaW5pc2hlZCEKKytnZGJfdGVzdCAidGZp bmQgbm9uZSIgIi4qIiAiIgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAg Yi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCi1pbmRleCA2YTJmMWEyLi5jNzVhN2YwIDEwMDY0 NAoraW5kZXggYTUxMjUyNy4uNjU0ZTNjOSAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvbGli L2dkYi5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKIEBAIC0xNDEsNiArMTQx LDExIEBAIHByb2MgZ2RiX3VubG9hZCB7fSB7CkBAIC0xNTY0NywxMCArMTYwOTIsNTggQEAgaW5k ZXggYTI1NTUwZi4uODdmMGI0MSAxMDA2NDQKICAgIC8qIFdpdGggbXVsdGlwbGUgdGhyZWFkcyBy dW5uaW5nIHdoaWxlIHRoZSBvbmUgd2UncmUgZXhhbWluaW5nIGlzCiAgICAgICBzdG9wcGVkLCB0 aGUgZGNhY2hlIGNhbiBnZXQgc3RhbGUgd2l0aG91dCB1cyBiZWluZyBhYmxlIHRvIGRldGVjdAog ZGlmZiAtLWdpdCBhL2dkYi90cmFjZXBvaW50LmMgYi9nZGIvdHJhY2Vwb2ludC5jCi1pbmRleCAz YWUzNWQwLi5lMWQyZTgyIDEwMDY0NAoraW5kZXggM2FlMzVkMC4uZDNjZDU5MyAxMDA2NDQKIC0t LSBhL2dkYi90cmFjZXBvaW50LmMKICsrKyBiL2dkYi90cmFjZXBvaW50LmMKLUBAIC00NDk3LDcg KzQ0OTcsOCBAQCBpbmZvX3N0YXRpY190cmFjZXBvaW50X21hcmtlcnNfY29tbWFuZCAoY2hhciAq YXJnLCBpbnQgZnJvbV90dHkpCitAQCAtMTYwMCw2ICsxNjAwLDggQEAgc3RhcnRfdHJhY2luZyAo dm9pZCkKKyAKKyAgIGZvciAoaXggPSAwOyBWRUNfaXRlcmF0ZSAoYnJlYWtwb2ludF9wLCB0cF92 ZWMsIGl4LCB0KTsgaXgrKykKKyAgICAgeworKyAgICAgIHN0cnVjdCBicF9sb2NhdGlvbiAqbG9j OworKworICAgICAgIGlmICgodC0+dHlwZSA9PSBicF9mYXN0X3RyYWNlcG9pbnQKKyAJICAgPyAh bWF5X2luc2VydF9mYXN0X3RyYWNlcG9pbnRzCisgCSAgIDogIW1heV9pbnNlcnRfdHJhY2Vwb2lu dHMpKQorQEAgLTE2MDgsNiArMTYxMCw5IEBAIHN0YXJ0X3RyYWNpbmcgKHZvaWQpCisgICAgICAg dC0+bnVtYmVyX29uX3RhcmdldCA9IDA7CisgICAgICAgdGFyZ2V0X2Rvd25sb2FkX3RyYWNlcG9p bnQgKHQpOworICAgICAgIHQtPm51bWJlcl9vbl90YXJnZXQgPSB0LT5udW1iZXI7CisrCisrICAg ICAgZm9yIChsb2MgPSB0LT5sb2M7IGxvYzsgbG9jID0gbG9jLT5uZXh0KQorKwltb2RpZnlfc2Vt YXBob3JlIChsb2MsIDEpOworICAgICB9CisgICBWRUNfZnJlZSAoYnJlYWtwb2ludF9wLCB0cF92 ZWMpOworIAorQEAgLTE2NjksNyArMTY3NCwyOCBAQCB0cmFjZV9zdG9wX2NvbW1hbmQgKGNoYXIg KmFyZ3MsIGludCBmcm9tX3R0eSkKKyB2b2lkCisgc3RvcF90cmFjaW5nICh2b2lkKQorIHsKKysg IFZFQyhicmVha3BvaW50X3ApICp0cF92ZWMgPSBOVUxMOworKyAgaW50IGl4OworKyAgc3RydWN0 IGJyZWFrcG9pbnQgKnQ7CisrCisgICB0YXJnZXRfdHJhY2Vfc3RvcCAoKTsKKysKKysgIHRwX3Zl YyA9IGFsbF90cmFjZXBvaW50cyAoKTsKKysgIGZvciAoaXggPSAwOyBWRUNfaXRlcmF0ZSAoYnJl YWtwb2ludF9wLCB0cF92ZWMsIGl4LCB0KTsgaXgrKykKKysgICAgeworKyAgICAgIHN0cnVjdCBi cF9sb2NhdGlvbiAqbG9jOworKworKyAgICAgIGlmICgodC0+dHlwZSA9PSBicF9mYXN0X3RyYWNl cG9pbnQKKysJICAgPyAhbWF5X2luc2VydF9mYXN0X3RyYWNlcG9pbnRzCisrCSAgIDogIW1heV9p bnNlcnRfdHJhY2Vwb2ludHMpKQorKwljb250aW51ZTsKKysKKysgICAgICBmb3IgKGxvYyA9IHQt PmxvYzsgbG9jOyBsb2MgPSBsb2MtPm5leHQpCisrCW1vZGlmeV9zZW1hcGhvcmUgKGxvYywgMCk7 CisrICAgIH0KKysKKysgIFZFQ19mcmVlIChicmVha3BvaW50X3AsIHRwX3ZlYyk7CisrCisgICAv KiBTaG91bGQgY2hhbmdlIGluIHJlc3BvbnNlIHRvIHJlcGx5PyAgKi8KKyAgIGN1cnJlbnRfdHJh Y2Vfc3RhdHVzICgpLT5ydW5uaW5nID0gMDsKKyB9CitAQCAtNDQ5Nyw3ICs0NTIzLDggQEAgaW5m b19zdGF0aWNfdHJhY2Vwb2ludF9tYXJrZXJzX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21f dHR5KQogICAgIGF2YWlsYWJsZS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC0x NTY2MCw3ICsxNjE1Myw3IEBAIGluZGV4IDNhZTM1ZDAuLmUxZDJlODIgMTAwNjQ0CiAgewogICAg TE9OR0VTVCBzaXplOwogICAgZ2RiX2J5dGUgKmJ1ZjsKLUBAIC00Njc2LDYgKzQ2NzcsMTMgQEAg dHJhY2VmcmFtZV9hdmFpbGFibGVfbWVtb3J5IChWRUMobWVtX3JhbmdlX3MpICoqcmVzdWx0LAor QEAgLTQ2NzYsNiArNDcwMywxMyBAQCB0cmFjZWZyYW1lX2F2YWlsYWJsZV9tZW1vcnkgKFZFQyht ZW1fcmFuZ2VfcykgKipyZXN1bHQsCiAgICByZXR1cm4gMDsKICB9CiAgCkBAIC0xNTY3NCw3ICsx NjE2Nyw3IEBAIGluZGV4IDNhZTM1ZDAuLmUxZDJlODIgMTAwNjQ0CiAgLyogbW9kdWxlIGluaXRp YWxpemF0aW9uICovCiAgdm9pZAogIF9pbml0aWFsaXplX3RyYWNlcG9pbnQgKHZvaWQpCi1AQCAt NDY4Niw3ICs0Njk0LDcgQEAgX2luaXRpYWxpemVfdHJhY2Vwb2ludCAodm9pZCkKK0BAIC00Njg2 LDcgKzQ3MjAsNyBAQCBfaW5pdGlhbGl6ZV90cmFjZXBvaW50ICh2b2lkKQogICAgICAgdmFsdWUg d2l0aCBhIHZvaWQgdHlwZWQgdmFsdWUsIGFuZCB3aGVuIHdlIGdldCBoZXJlLCBnZGJhcmNoCiAg ICAgICBpc24ndCBpbml0aWFsaXplZCB5ZXQuICBBdCB0aGlzIHBvaW50LCB3ZSdyZSBxdWl0ZSBz dXJlIHRoZXJlCiAgICAgICBpc24ndCBhbm90aGVyIGNvbnZlbmllbmNlIHZhcmlhYmxlIG9mIHRo ZSBzYW1lIG5hbWUuICAqLwpAQCAtMTYwMzcsNyArMTY1MzAsNyBAQCBpbmRleCAyODZlZjllLi4x ZmU1OGIxIDEwMDY0NAogIAogIC8qIFJlYWQgTEVOIGJ5dGVzIG9mIHRhcmdldCBtZW1vcnkgYXQg YWRkcmVzcyBNRU1BRERSLCBwbGFjaW5nIHRoZQogZGlmZiAtLWdpdCBhL2dkYi92YWx1ZS5jIGIv Z2RiL3ZhbHVlLmMKLWluZGV4IDJhY2IxZGYuLmFiZTc3NGUgMTAwNjQ0CitpbmRleCAyYWNiMWRm Li5jZjhkZGEwIDEwMDY0NAogLS0tIGEvZ2RiL3ZhbHVlLmMKICsrKyBiL2dkYi92YWx1ZS5jCiBA QCAtNDMsNiArNDMsNyBAQApAQCAtMTYyNTAsNyArMTY3NDMsMzMgQEAgaW5kZXggMmFjYjFkZi4u YWJlNzc0ZSAxMDA2NDQKICAgICAgICBicmVhazsKICAKICAgICAgY2FzZSBJTlRFUk5BTFZBUl9W QUxVRToKLUBAIC0zMDQ3LDcgKzMxNDUsMjQgQEAgdmFsdWVfZnJvbV9oaXN0b3J5X3JlZiAoY2hh ciAqaCwgY2hhciAqKmVuZHApCitAQCAtMjA4MCwxNCArMjE3OCwyMiBAQCBzaG93X2NvbnZlbmll bmNlIChjaGFyICppZ25vcmUsIGludCBmcm9tX3R0eSkKKyAgIGdldF91c2VyX3ByaW50X29wdGlv bnMgKCZvcHRzKTsKKyAgIGZvciAodmFyID0gaW50ZXJuYWx2YXJzOyB2YXI7IHZhciA9IHZhci0+ bmV4dCkKKyAgICAgeworKyAgICAgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGU7Cisr CisgICAgICAgaWYgKCF2YXJzZWVuKQorIAl7CisgCSAgdmFyc2VlbiA9IDE7CisgCX0KKyAgICAg ICBwcmludGZfZmlsdGVyZWQgKCgiJCVzID0gIiksIHZhci0+bmFtZSk7CistICAgICAgdmFsdWVf cHJpbnQgKHZhbHVlX29mX2ludGVybmFsdmFyIChnZGJhcmNoLCB2YXIpLCBnZGJfc3Rkb3V0LAor LQkJICAgJm9wdHMpOworLSAgICAgIHByaW50Zl9maWx0ZXJlZCAoKCJcbiIpKTsKKysKKysgICAg ICBUUllfQ0FUQ0ggKGUsIFJFVFVSTl9NQVNLX0VSUk9SKQorKwl7CisrCSAgdmFsdWVfcHJpbnQg KHZhbHVlX29mX2ludGVybmFsdmFyIChnZGJhcmNoLCB2YXIpLCBnZGJfc3Rkb3V0LAorKwkJICAg ICAgICZvcHRzKTsKKysJICBwcmludGZfZmlsdGVyZWQgKCgiXG4iKSk7CisrCX0KKysgICAgICBp ZiAoZS5yZWFzb24gPCAwKQorKwlwcmludGZfZmlsdGVyZWQgKF8oIjxlcnJvcjogJXM+XG4iKSwg ZS5tZXNzYWdlKTsKKyAgICAgfQorICAgaWYgKCF2YXJzZWVuKQorICAgICBwcmludGZfdW5maWx0 ZXJlZCAoXygiTm8gZGVidWdnZXIgY29udmVuaWVuY2UgdmFyaWFibGVzIG5vdyBkZWZpbmVkLlxu IgorQEAgLTMwNDcsNyArMzE1MywyNCBAQCB2YWx1ZV9mcm9tX2hpc3RvcnlfcmVmIChjaGFyICpo LCBjaGFyICoqZW5kcCkKICBzdHJ1Y3QgdmFsdWUgKgogIGNvZXJjZV9yZWYgKHN0cnVjdCB2YWx1 ZSAqYXJnKQogIHsKQEAgLTE2Mjc2LDcgKzE2Nzk1LDcgQEAgaW5kZXggMmFjYjFkZi4uYWJlNzc0 ZSAxMDA2NDQKICAKICAgIGlmIChUWVBFX0NPREUgKHZhbHVlX3R5cGVfYXJnX3RtcCkgPT0gVFlQ RV9DT0RFX1JFRikKICAgICAgYXJnID0gdmFsdWVfYXRfbGF6eSAoVFlQRV9UQVJHRVRfVFlQRSAo dmFsdWVfdHlwZV9hcmdfdG1wKSwKLUBAIC0zMTQ1LDQgKzMyNjAsMTAgQEAgVkFSSUFCTEUgaXMg YWxyZWFkeSBpbml0aWFsaXplZC4iKSk7CitAQCAtMzE0NSw0ICszMjY4LDEwIEBAIFZBUklBQkxF IGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQuIikpOwogICAgYWRkX3ByZWZpeF9jbWQgKCJmdW5jdGlv biIsIG5vX2NsYXNzLCBmdW5jdGlvbl9jb21tYW5kLCBfKCJcCiAgUGxhY2Vob2xkZXIgY29tbWFu ZCBmb3Igc2hvd2luZyBoZWxwIG9uIGNvbnZlbmllbmNlIGZ1bmN0aW9ucy4iKSwKICAJCSAgJmZ1 bmN0aW9ubGlzdCwgImZ1bmN0aW9uICIsIDAsICZjbWRsaXN0KTsKCmRpZmYgLS1naXQgYS9nZGIt cmhlbDUtY29tcGF0LnBhdGNoIGIvZ2RiLXJoZWw1LWNvbXBhdC5wYXRjaAppbmRleCBmMjY5YjM5 Li43ZGVmZGRiIDEwMDY0NAotLS0gYS9nZGItcmhlbDUtY29tcGF0LnBhdGNoCisrKyBiL2dkYi1y aGVsNS1jb21wYXQucGF0Y2gKQEAgLTEsMTEgKzEsMTEgQEAKIGdkYi9saW51eC1uYXQuYzoKIC0g V29ya2Fyb3VuZCBSSEVMLTUga2VybmVscyBmb3IgZGV0YWNoaW5nIFNJR1NUT1BwZWQgcHJvY2Vz c2VzIChCWiA0OTg1OTUpLgogCi1JbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNC9nZGIvZWxmcmVh ZC5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDMyOC9nZGIvZWxmcmVhZC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMi41MC4yMDExMDEwNC5vcmlnL2dkYi9lbGZyZWFkLmMJMjAxMS0wMS0wNCAw NjoxNTo1OS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi9lbGZy ZWFkLmMJMjAxMS0wMS0wNCAwNjoxNzo1NC4wMDAwMDAwMDAgKzAxMDAKLUBAIC04MzIsNyArODMy LDcgQEAgcmVzb2x2ZV9nbnVfaWZ1bmMgKGNvbnN0IGNoYXIgKmZ1bmN0aW9uXworLS0tIGdkYi03 LjIuNTAuMjAxMTAzMjgub3JpZy9nZGIvZWxmcmVhZC5jCTIwMTEtMDMtMjggMTg6NDY6MTYuMDAw MDAwMDAwICswMjAwCisrKysgZ2RiLTcuMi41MC4yMDExMDMyOC9nZGIvZWxmcmVhZC5jCTIwMTEt MDMtMjggMTg6NDg6MTkuMDAwMDAwMDAwICswMjAwCitAQCAtMTA4Myw3ICsxMDgzLDcgQEAgZWxm X2dudV9pZnVuY19yZXNvbHZlcl9yZXR1cm5fc3RvcCAoc3RydQogICNkZWZpbmUgQlVJTERfSURf VkVSQk9TRV9OT05FIDAKICAjZGVmaW5lIEJVSUxEX0lEX1ZFUkJPU0VfRklMRU5BTUVTIDEKICAj ZGVmaW5lIEJVSUxEX0lEX1ZFUkJPU0VfQklOQVJZX1BBUlNFIDIKQEAgLTE0LDkgKzE0LDkgQEAg SW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDQvZ2RiL2VsZnJlYWQuYwogIHN0YXRpYyB2b2lkCiAg c2hvd19idWlsZF9pZF92ZXJib3NlIChzdHJ1Y3QgdWlfZmlsZSAqZmlsZSwgaW50IGZyb21fdHR5 LAogIAkJICAgICAgIHN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICpjLCBjb25zdCBjaGFyICp2YWx1 ZSkKLUBAIC0xOTIwLDggKzE5MjAsMTAgQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1 aWxkaWQgKHN0cgotICAgICAgIC8qIFByZXZlbnQgbG9vcGluZyBvbiBhIHN0cmlwcGVkIC5kZWJ1 ZyBmaWxlLiAgKi8KLSAgICAgICBpZiAoYnVpbGRfaWRfbmFtZSAhPSBOVUxMICYmIHN0cmNtcCAo YnVpbGRfaWRfbmFtZSwgb2JqZmlsZS0+bmFtZSkgPT0gMCkKK0BAIC0yMTczLDggKzIxNzMsMTAg QEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxkaWQgKHN0cgorICAgICAgIGlmIChi dWlsZF9pZF9uYW1lICE9IE5VTEwKKyAJICAmJiBmaWxlbmFtZV9jbXAgKGJ1aWxkX2lkX25hbWUs IG9iamZpbGUtPm5hbWUpID09IDApCiAgICAgICAgICB7CiArI2lmIDAgLyogUkhFTC01IGJhY2t3 YXJkIGJlaGF2aW9yIGNvbXBhdGliaWxpdHkuICAqLwogIAkgIHdhcm5pbmcgKF8oIlwiJXNcIjog c2VwYXJhdGUgZGVidWcgaW5mbyBmaWxlIGhhcyBubyBkZWJ1ZyBpbmZvIiksCkBAIC0yNSwxMSAr MjUsMTEgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDQvZ2RiL2VsZnJlYWQuYwogIAkgIHhm cmVlIChidWlsZF9pZF9uYW1lKTsKICAJfQogICAgICAgIGVsc2UgaWYgKGJ1aWxkX2lkX25hbWUg IT0gTlVMTCkKLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi9jb3JlbG93LmMKK0luZGV4 OiBnZGItNy4yLjUwLjIwMTEwMzI4L2dkYi9jb3JlbG93LmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4yLjUwLjIwMTEwMTA0Lm9yaWcvZ2RiL2NvcmVsb3cuYwkyMDExLTAxLTA0IDA2OjE1OjU3LjAw MDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMTAxMDQvZ2RiL2NvcmVsb3cuYwkyMDEx LTAxLTA0IDA2OjE4OjA4LjAwMDAwMDAwMCArMDEwMAotQEAgLTI4MCw3ICsyODAsNyBAQCBhZGRf dG9fdGhyZWFkX2xpc3QgKGJmZCAqYWJmZCwgYXNlY3Rpb24gCistLS0gZ2RiLTcuMi41MC4yMDEx MDMyOC5vcmlnL2dkYi9jb3JlbG93LmMJMjAxMS0wMy0yOCAxODo0NjoxNi4wMDAwMDAwMDAgKzAy MDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMzI4L2dkYi9jb3JlbG93LmMJMjAxMS0wMy0yOCAxODo0 Nzo1Ni4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yODIsNyArMjgyLDcgQEAgYWRkX3RvX3RocmVhZF9s aXN0IChiZmQgKmFiZmQsIGFzZWN0aW9uIAogICAgICBpbmZlcmlvcl9wdGlkID0gcHRpZDsJCQkv KiBZZXMsIG1ha2UgaXQgY3VycmVudC4gICovCiAgfQogIApAQCAtMzgsMTEgKzM4LDExIEBAIElu ZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi9jb3JlbG93LmMKICAKICBzdGF0aWMgdm9pZAog IGJ1aWxkX2lkX2xvY2F0ZV9leGVjIChpbnQgZnJvbV90dHkpCi1JbmRleDogZ2RiLTcuMi41MC4y MDExMDEwNC9nZGIvbGludXgtbmF0LmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMzI4L2dkYi9s aW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAxMDQub3JpZy9nZGIv bGludXgtbmF0LmMJMjAxMS0wMS0wNCAwNjoxNTo1OS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGIt Ny4yLjUwLjIwMTEwMTA0L2dkYi9saW51eC1uYXQuYwkyMDExLTAxLTA0IDA2OjE3OjU0LjAwMDAw MDAwMCArMDEwMAotQEAgLTE3NjIsOCArMTc2MiwyMiBAQCBHUFQ6IGx3cCAlcyBoYWQgc2lnbmFs ICVzLCBidXQgaXQgaXMgaW4gCistLS0gZ2RiLTcuMi41MC4yMDExMDMyOC5vcmlnL2dkYi9saW51 eC1uYXQuYwkyMDExLTAzLTI4IDE4OjQ2OjE2LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjIu NTAuMjAxMTAzMjgvZ2RiL2xpbnV4LW5hdC5jCTIwMTEtMDMtMjggMTg6NDc6NTYuMDAwMDAwMDAw ICswMjAwCitAQCAtMTc3NCw4ICsxNzc0LDIyIEBAIGdldF9wZW5kaW5nX3N0YXR1cyAoc3RydWN0 IGx3cF9pbmZvICpscCwKICAJCQkgICAgdGFyZ2V0X3NpZ25hbF90b19zdHJpbmcgKHNpZ25vKSk7 CiAgICAgIH0KICAKCmRpZmYgLS1naXQgYS9nZGItc3RhcC13YXJuaW5ncy5wYXRjaCBiL2dkYi1z dGFwLXdhcm5pbmdzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA4ZTA3ZTA4 Li4wMDAwMDAwCi0tLSBhL2dkYi1zdGFwLXdhcm5pbmdzLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsNTkgKzAsMCBAQAotaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2FyY2hlci8yMDExLXExL21z ZzAwMTM2Lmh0bWwKLVN1YmplY3Q6IGFyY2hlci1zZXJnaW9kai1zdGFwIC1PMiAtV2FsbCB3YXJu aW5ncz1lcnJvcnMKLQotSGkgU2VyZ2lvLAotCi13aXRoIC1PMiAoK3NvbWUgLVdhbGwgb3Igc28g b3B0aW9ucyBwb3NzaWJseSAtIHdoYXQgYXBwbGllcyBmb3IgRmVkb3JhIGJ1aWxkcykKLW9uZSBn ZXRzOgotCi1nY2MtNC42LjAtMC4xNC5mYzE1Lng4Nl82NAotc3RhcC1wcm9iZS5jOiBJbiBmdW5j dGlvbiAbJEIhRhsoQnN0YXBfZmV0Y2hfcmVnX3ZhbHVlGyRCIUcbKEI6Ci1zdGFwLXByb2JlLmM6 OTIzOjEyOiBlcnJvcjogGyRCIUYbKEJhb3AbJEIhRxsoQiBtYXkgYmUgdXNlZCB1bmluaXRpYWxp emVkIGluIHRoaXMgZnVuY3Rpb24gWy1XZXJyb3I9dW5pbml0aWFsaXplZF0KLXN0YXAtcHJvYmUu Yzo5MTk6MTA6IGVycm9yOiAbJEIhRhsoQnJldBskQiFHGyhCIG1heSBiZSB1c2VkIHVuaW5pdGlh bGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiBbLVdlcnJvcj11bmluaXRpYWxpemVkXQotc3RhcC1wcm9i ZS5jOiBJbiBmdW5jdGlvbiAbJEIhRhsoQnN0YXBfZXZhbHVhdGVfY29uZGl0aW9uYWxseRskQiFH GyhCOgotc3RhcC1wcm9iZS5jOjExODQ6MzogZXJyb3I6IBskQiFGGyhCcmVzGyRCIUcbKEIgbWF5 IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uIFstV2Vycm9yPXVuaW5pdGlh bGl6ZWRdCi0KLVRoZSBhdHRhY2hlZCBwYXRjaCBuZWVkcyBhIHJldmlldywgSSBoYXZlIG9ubHkg YnJpZWZseSBjaGVja2VkIGl0IGlzIG5vdAotY29tcGxldGVseSBib2d1cy4KLQotCi1UaGFua3Ms Ci1KYW4KLQotCi0tLS0gYS9nZGIvc3RhcC1wcm9iZS5jCi0rKysgYi9nZGIvc3RhcC1wcm9iZS5j Ci1AQCAtNzgwLDcgKzc4MCw5IEBAIHN0YXBfZmV0Y2hfcmVnX3ZhbHVlIChzdHJ1Y3Qgc3RhcF9l dmFsdWF0aW9uX2luZm8gKmV2YWxfaW5mbywKLSAjZGVmaW5lIFJFR19OQU1FX01BWF9TSVpFIDIw Ci0gICBjaGFyIHJlZ25hbWVbUkVHX05BTUVfTUFYX1NJWkUgKyAxXTsKLSAgIGludCBsZW4sIHJl Z251bSwgaW5kaXJlY3RfcCA9IDA7Ci0tICBzdHJ1Y3QgdmFsdWUgKnJldDsKLSsgIC8qIEdDQyBm YWxzZSB3YXJuaW5nOiAbJEIhRhsoQnJldBskQiFHGyhCIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6 ZWQgaW4gdGhpcyBmdW5jdGlvbgotKyAgICAgKi8KLSsgIHN0cnVjdCB2YWx1ZSAqcmV0ID0gTlVM TDsKLSAgIAotICAgLyogVGhlIGZ1bmN0aW9uIHdoaWNoIGNhbGxlZCB1cyBkaWQgbm90IGNoZWNr IGlmIHRoZSBleHByZXNzaW9uCi0gICAgICBidWZmZXIgd2FzIGVtcHR5LiAgKi8KLUBAIC04NTEs NyArODUzLDkgQEAgc3RhcF9mZXRjaF9yZWdfdmFsdWUgKHN0cnVjdCBzdGFwX2V2YWx1YXRpb25f aW5mbyAqZXZhbF9pbmZvLAotICAgaWYgKGluZGlyZWN0X3ApCi0gICAgIHsKLSAgICAgICBzdHJ1 Y3QgdHlwZSAqdCA9IE5VTEw7Ci0tICAgICAgZW51bSBhZ2VudF9vcCBhb3A7Ci0rICAgICAgLyog R0NDIGZhbHNlIHdhcm5pbmc6IBskQiFGGyhCYW9wGyRCIUcbKEIgbWF5IGJlIHVzZWQgdW5pbml0 aWFsaXplZCBpbiB0aGlzIGZ1bmN0aW9uLgotKyAgICAgICAgICovCi0rICAgICAgZW51bSBhZ2Vu dF9vcCBhb3AgPSAwOwotIAotICAgICAgIC8qIElmIHRoZSB1c2VyIGhhcyBzcGVjaWZpZWQgdGhh dCB0aGUgcmVnaXN0ZXIgbXVzdCBiZSBpbmRpcmVjdGVkLAotIAkgd2Ugc2hvdWxkIGtub3cgd2hh dCdzIHRoZSBjb3JyZWN0IHR5cGUgdG8gY2FzdCBpdCBiZWZvcmUgbWFraW5nCi1AQCAtOTQ5LDcg Kzk1Myw5IEBAIHN0YXBfZXZhbHVhdGVfc2luZ2xlX29wZXJhbmQgKHN0cnVjdCBzdGFwX2V2YWx1 YXRpb25faW5mbyAqZXZhbF9pbmZvKQotICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBldmFs X2luZm8tPmdkYmFyY2g7Ci0gICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUgPSBldmFsX2luZm8t PmZyYW1lOwotICAgZW51bSBzdGFwX2FyZ19iaXRuZXNzIGJpdG5lc3MgPSBldmFsX2luZm8tPmJp dG5lc3M7Ci0tICBzdHJ1Y3QgdmFsdWUgKnJlczsKLSsgIC8qIEdDQyBmYWxzZSB3YXJuaW5nOiAb JEIhRhsoQnJlcxskQiFHGyhCIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5j dGlvbgotKyAgICAgKi8KLSsgIHN0cnVjdCB2YWx1ZSAqcmVzID0gTlVMTDsKLSAKLSAgIHN3aXRj aCAoKmV2YWxfaW5mby0+ZXhwX2J1ZikKLSAgICAgewotCgpkaWZmIC0tZ2l0IGEvZ2RiLnNwZWMg Yi9nZGIuc3BlYwppbmRleCBmZWU5ZDc1Li41NGIyYmIyIDEwMDY0NAotLS0gYS9nZGIuc3BlYwor KysgYi9nZGIuc3BlYwpAQCAtMjMsMTEgKzIzLDExIEBAIE5hbWU6IGdkYiV7P193aXRoX2RlYnVn Oi1kZWJ1Z30KICMgU2V0IHZlcnNpb24gdG8gY29udGVudHMgb2YgZ2RiL3ZlcnNpb24uaW4uCiAj IE5PVEU6IHRoZSBGU0YgZ2RiIHZlcnNpb25zIGFyZSBudW1iZXJlZCBOLk0gZm9yIG9mZmljaWFs IHJlbGVhc2VzLCBsaWtlIDYuMwogIyBhbmQsIHNpbmNlIEphbnVhcnkgMjAwNSwgWC5ZLlouZGF0 ZSBmb3IgZGFpbHkgc25hcHNob3RzLCBsaWtlIDYuMy41MC4yMDA1MDExMiAjIChkYWlseSBzbmFw c2hvdCBmcm9tIG1haWxpbmUpLCBvciA2LjMuMC4yMDA0MDExMiAoaGVhZCBvZiB0aGUgcmVsZWFz ZSBicmFuY2gpLgotVmVyc2lvbjogNy4yLjUwLjIwMTEwMzIwCitWZXJzaW9uOiA3LjIuNTAuMjAx MTAzMjgKIAogIyBUaGUgcmVsZWFzZSBhbHdheXMgY29udGFpbnMgYSBsZWFkaW5nIHJlc2VydmVk IG51bWJlciwgc3RhcnQgaXQgYXQgMS4KICMgYHVwc3RyZWFtJyBpcyBub3QgYSBwYXJ0IG9mIGBu YW1lJyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBlbmRlbmNpZXMgY29tcGF0aWJsZSBmb3IgdGhlIHRl c3RpbmcuCi1SZWxlYXNlOiAzMCV7P193aXRoX3Vwc3RyZWFtOi51cHN0cmVhbX0lez9kaXN0fQor UmVsZWFzZTogMzElez9fd2l0aF91cHN0cmVhbToudXBzdHJlYW19JXs/ZGlzdH0KIAogTGljZW5z ZTogR1BMdjMrIGFuZCBHUEx2Mysgd2l0aCBleGNlcHRpb25zIGFuZCBHUEx2MisgYW5kIEdQTHYy KyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTCsgYW5kIExHUEx2MisgYW5kIEJTRCBhbmQgUHVibGlj IERvbWFpbgogR3JvdXA6IERldmVsb3BtZW50L0RlYnVnZ2VycwpAQCAtOTIsMTEgKzkyLDkgQEAg U291cmNlMzogZ2RiLWdzdGFjay5tYW4KICM9ZmVkb3JhCiBTb3VyY2U0OiBnZGJpbml0CiAKLSVp ZiAwJXs/cmhlbDoxfQogIyBsaWJzdGRjKysgcHJldHR5IHByaW50ZXJzIGZyb20gR0NDIFNWTiBI RUFEICg0LjUgZXhwZXJpbWVudGFsKS4KICVkZWZpbmUgbGlic3RkY3h4cHl0aG9uIGxpYnN0ZGMr Ky12My1weXRob24tcjE1NTk3OAotU291cmNlNDogJXtsaWJzdGRjeHhweXRob259LnRhci5iejIK LSVlbmRpZiAjIDAlez9yaGVsOjF9CitTb3VyY2U1OiAle2xpYnN0ZGN4eHB5dGhvbn0udGFyLmJ6 MgogCiAjIFdvcmsgYXJvdW5kIG91dC1vZi1kYXRlIGRlamFnbnUgdGhhdCBkb2VzIG5vdCBoYXZl IEtGQUlMCiAjPWRyb3A6IFRoYXQgZGVqYWdudSBpcyB0b28gb2xkIHRvIGJlIHN1cHBvcnRlZC4K QEAgLTU1OCwxMiArNTU2LDYgQEAgUGF0Y2g1NzI6IGdkYi1jb3JlLXRocmVhZC1pbnRlcm5hbGVy ci0xb2YzLnBhdGNoCiBQYXRjaDU3MzogZ2RiLWNvcmUtdGhyZWFkLWludGVybmFsZXJyLTJvZjMu cGF0Y2gKIFBhdGNoNTc0OiBnZGItY29yZS10aHJlYWQtaW50ZXJuYWxlcnItM29mMy5wYXRjaAog Ci0jIFtzdGFwXSBGaXggLU8yIHdhcm5pbmdzLgotUGF0Y2g1NzY6IGdkYi1zdGFwLXdhcm5pbmdz LnBhdGNoCi0KLSMgRml4IEFkYSBzdXBwb3J0IGNyYXNoIG9uIHVuaW5pdGlhbGl6ZWQgZ2RiYXJj aC4KLVBhdGNoNTc3OiBnZGItYWRhLWdkYmFyY2gtY3Jhc2gucGF0Y2gKLQogQnVpbGRSZXF1aXJl czogbmN1cnNlcy1kZXZlbCV7P19pc2F9IHRleGluZm8gZ2V0dGV4dCBmbGV4IGJpc29uIGV4cGF0 LWRldmVsJXs/X2lzYX0KIFJlcXVpcmVzOiByZWFkbGluZSV7P19pc2F9CiBCdWlsZFJlcXVpcmVz OiByZWFkbGluZS1kZXZlbCV7P19pc2F9CkBAIC03MDYsNyArNjk4LDcgQEAgVGhpcyBwYWNrYWdl IHByb3ZpZGVzIElORk8sIEhUTUwgYW5kIFBERiB1c2VyIG1hbnVhbCBmb3IgR0RCLgogCiAlaWYg MCV7P3JoZWw6MX0KICMgbGlic3RkYysrIHByZXR0eSBwcmludGVycy4KLXRhciB4amYgJXtTT1VS Q0U0fQordGFyIHhqZiAle1NPVVJDRTV9CiAlZW5kaWYgIyAwJXs/cmhlbDoxfQogCiAjIEZpbGVz IGhhdmUgYCMgPG51bWJlcj4gPGZpbGU+JyBzdGF0ZW1lbnRzIGJyZWFraW5nIFZQQVRIIC8gZmlu ZC1kZWJ1Z2luZm8uc2ggLgpAQCAtODM1LDggKzgyNyw2IEBAIHJtIC1mIGdkYi9qdi1leHAuYyBn ZGIvbTItZXhwLmMgZ2RiL29iamMtZXhwLmMgZ2RiL3AtZXhwLmMKICVwYXRjaDU3MiAtcDEKICVw YXRjaDU3MyAtcDEKICVwYXRjaDU3NCAtcDEKLSVwYXRjaDU3NiAtcDEKLSVwYXRjaDU3NyAtcDEK IAogJXBhdGNoMzkwIC1wMQogJXBhdGNoMzkzIC1wMQpAQCAtMTI2Miw2ICsxMjUyLDEwIEBAIGZp CiAle19pbmZvZGlyfS9nZGIuaW5mbyoKIAogJWNoYW5nZWxvZworKiBNb24gTWFyIDI4IDIwMTEg SmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4yLjUwLjIwMTEw MzI4LTMxLmZjMTUKKy0gUmViYXNlIHRvIEZTRiBHREIgNy4yLjUwLjIwMTEwMzI4ICh3aGljaCBp cyBhIDcuMyBwcmUtcmVsZWFzZSkuCistIEJ1bmRsZSAlJXtsaWJzdGRjeHhweXRob259LnRhci5i ejIgdW5jb25kaXRpb25hbGx5IC0gZm9yIHJlYnVsZHMgb24gUkhFTHMuCisKICogU3VuIE1hciAy MCAyMDExIEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMi41 MC4yMDExMDMyMC0zMC5mYzE1CiAtIEZpeCB0aHJlYWRpbmcgaW50ZXJuYWwgZXJyb3Igb24gY29y cnVwdGVkIG1lbW9yeSAoQlogNjc3NjU0KS4KIC0gRml4IGkzODYgcndhdGNoK2F3YXRjaCBiZWZv cmUgcnVuIChCWiA2ODg3ODgsIG9uIHRvcCBvZiBCWiA1NDE4NjYpLgoKZGlmZiAtLWdpdCBhL3Nv dXJjZXMgYi9zb3VyY2VzCmluZGV4IGZlYzIxYzMuLmU3ZjViYTcgMTAwNjQ0Ci0tLSBhL3NvdXJj ZXMKKysrIGIvc291cmNlcwpAQCAtMSwyICsxLDIgQEAKIDA0ZTVjNGIxYjllNjMzNDIyY2M0ODk5 MGZlNjE5NThkICBsaWJzdGRjKystdjMtcHl0aG9uLXIxNTU5NzgudGFyLmJ6MgotY2M0OGQ2MmIy M2I1MzgxNmViOTYzOWE4ZTk1MDRkNDcgIGdkYi03LjIuNTAuMjAxMTAzMjAudGFyLmJ6MgorYjU5 MGUwYzEyYTUwNjAxMWVmMmMyN2Y2NzdhYTY5ZjcgIGdkYi03LjIuNTAuMjAxMTAzMjgudGFyLmJ6 Mgo=