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: Mattias Ellert To: git-commits@fedoraproject.org Subject: [rpms/globus-gass-copy] rawhide: Compile with OpenSSL 4 Date: Sun, 14 Jun 2026 08:46:24 GMT Message-ID: <178142678435.1.14246154846445922395.rpms-globus-gass-copy-ed5db135bf90@fedoraproject.org> List-ID: X-Git-Repo: rpms/globus-gass-copy X-Git-Branch: rawhide X-Git-Rev: ed5db135bf90242f2e4bf7f5301fb20e4e12582b ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2xvYnVzLWdhc3MtY29weQogICAgICAgICAgICBCcmFuY2ggOiByYXdoaWRl CiAgICAgICAgICAgIENvbW1pdCA6IGVkNWRiMTM1YmY5MDI0MmYyZTRiZjdmNTMwMWZiMjBlNGUx MjU4MmIKICAgICAgICAgICAgQXV0aG9yIDogTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMuZWxsZXJ0 QHBoeXNpY3MudXUuc2U+CiAgICAgICAgICAgIERhdGUgICA6IDIwMjYtMDYtMTRUMTA6Mzk6MTMr MDI6MDAKICAgICAgICAgICAgU3RhdHMgIDogKzk0NzAvLTEgaW4gNCBmaWxlKHMpCiAgICAgICAg ICAgIFVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2xvYnVzLWdh c3MtY29weS9jL2VkNWRiMTM1YmY5MDI0MmYyZTRiZjdmNTMwMWZiMjBlNGUxMjU4MmI/YnJhbmNo PXJhd2hpZGUKCiAgICAgICAgICAgIExvZzoKICAgICAgICAgICAgQ29tcGlsZSB3aXRoIE9wZW5T U0wgNApGaXggY29tcGlsZXIgYW5kIGRveHlnZW4gd2FybmluZ3MKCi0tLQpkaWZmIC0tZ2l0IGEv MDAwMS1VbnRhYmlmeS1hbmQtcmVtb3ZlLXRyYWlsaW5nLXdoaXRlLXNwYWNlLnBhdGNoIGIvMDAw MS1VbnRhYmlmeS1hbmQtcmVtb3ZlLXRyYWlsaW5nLXdoaXRlLXNwYWNlLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2YThiYzUKLS0tIC9kZXYvbnVsbAorKysgYi8w MDAxLVVudGFiaWZ5LWFuZC1yZW1vdmUtdHJhaWxpbmctd2hpdGUtc3BhY2UucGF0Y2gKQEAgLTAs MCArMSw5MjQwIEBACitGcm9tIDNjY2RhYTAyMzYyMzBiYmNiY2JmMzM5ZTdkZmRmYWYyM2MxMGJk NmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNYXR0aWFzIEVsbGVydCA8bWF0dGlh cy5lbGxlcnRAcGh5c2ljcy51dS5zZT4KK0RhdGU6IFdlZCwgMjAgTWF5IDIwMjYgMDA6MTU6Mzcg KzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAxLzNdIFVudGFiaWZ5IGFuZCByZW1vdmUgdHJhaWxpbmcg d2hpdGUtc3BhY2UKKworLS0tCisgZ2Fzcy9jb3B5L3NvdXJjZS9nbG9idXNfZ2Fzc19jb3B5LmMg fCAzNTYyICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQorIGdhc3MvY29weS9zb3VyY2UvZ2xv YnVzX3VybF9jb3B5LmMgIHwgMTIwMiArKysrLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDIzODIg aW5zZXJ0aW9ucygrKSwgMjM4MiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2dhc3MvY29w eS9zb3VyY2UvZ2xvYnVzX2dhc3NfY29weS5jIGIvZ2Fzcy9jb3B5L3NvdXJjZS9nbG9idXNfZ2Fz c19jb3B5LmMKK2luZGV4IDI2NGVkMjhlOC4uM2RlYmM3YWUzIDEwMDY0NAorLS0tIGEvZ2Fzcy9j b3B5L3NvdXJjZS9nbG9idXNfZ2Fzc19jb3B5LmMKKysrKyBiL2dhc3MvY29weS9zb3VyY2UvZ2xv YnVzX2dhc3NfY29weS5jCitAQCAtOTQsNyArOTQsNyBAQCBnbG9idXNfcmVzdWx0X3QKKyBnbG9i dXNfbF9nYXNzX2NvcHlfc3RhdGVfZnJlZV90YXJnZXRzKAorICAgICBnbG9idXNfZ2Fzc19jb3B5 X3N0YXRlX3QgKiBzdGF0ZSk7CisgCistc3RhdGljIAorK3N0YXRpYworIGdsb2J1c19yZXN1bHRf dAorIGdsb2J1c19sX2dhc3NfY29weV92ZXJpZnlfY2tzbSgKKyAgICAgZ2xvYnVzX2dhc3NfY29w eV9oYW5kbGVfdCAqICAgICAgICAgY29weV9oYW5kbGUsCitAQCAtMTE4LDcgKzExOCw3IEBAIGds b2J1c19sX2dhc3NfY29weV92ZXJpZnlfY2tzbSgKKyAgICAgICAgIGdsb2J1c19vYmplY3RfdCAq dG1wX2VycjsgXAorICAgICAgICAgdG1wX2VyciA9IGdsb2J1c19lcnJvcl9nZXQocmVzdWx0KTsg XAorICAgICAgICAgaGFuZGxlLT5lcnIgPSBnbG9idXNfb2JqZWN0X2NvcHkodG1wX2Vycik7IFwK Ky0JcmVzdWx0ID0gZ2xvYnVzX2Vycm9yX3B1dCh0bXBfZXJyKTsgXAorKyAgICAgICAgcmVzdWx0 ID0gZ2xvYnVzX2Vycm9yX3B1dCh0bXBfZXJyKTsgXAorICAgICB9IFwKKyB9CisgCitAQCAtMTUz LDMwICsxNTMsMzAgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2FjdGl2YXRlKHZvaWQpCisgICAgIHJj ID0gZ2xvYnVzX21vZHVsZV9hY3RpdmF0ZShHTE9CVVNfR0FTU19UUkFOU0ZFUl9NT0RVTEUpOwor ICAgICBpZiAocmMgIT0gR0xPQlVTX1NVQ0NFU1MpCisgICAgIHsKKy0JcmV0dXJuKHJjKTsKKysg ICAgICAgIHJldHVybihyYyk7CisgICAgIH0KKyAKKyAgICAgcmMgPSBnbG9idXNfbW9kdWxlX2Fj dGl2YXRlKEdMT0JVU19DT01NT05fTU9EVUxFKTsKKyAgICAgaWYgKHJjICE9IEdMT0JVU19TVUND RVNTKQorICAgICB7CistCXJldHVybihyYyk7CisrICAgICAgICByZXR1cm4ocmMpOworICAgICB9 CisgCisgICAgIHJjID0gZ2xvYnVzX21vZHVsZV9hY3RpdmF0ZShHTE9CVVNfSU9fTU9EVUxFKTsK KyAgICAgaWYgKHJjICE9IEdMT0JVU19TVUNDRVNTKQorICAgICB7CistCXJldHVybihyYyk7Cisr ICAgICAgICByZXR1cm4ocmMpOworICAgICB9CisgICAgIHJjID0gZ2xvYnVzX21vZHVsZV9hY3Rp dmF0ZShHTE9CVVNfRlRQX0NMSUVOVF9NT0RVTEUpOworICAgICBpZiAocmMgIT0gR0xPQlVTX1NV Q0NFU1MpCisgICAgIHsKKy0JcmV0dXJuKHJjKTsKKysgICAgICAgIHJldHVybihyYyk7CisgICAg IH0KKyAKKyAgICAgcmMgPSBnbG9idXNfbW9kdWxlX2FjdGl2YXRlKEdMT0JVU19GVFBfQ0xJRU5U X1RIUk9VR0hQVVRfUExVR0lOX01PRFVMRSk7CisgICAgIGlmIChyYyAhPSBHTE9CVVNfU1VDQ0VT UykKKyAgICAgeworLQlyZXR1cm4ocmMpOworKyAgICAgICAgcmV0dXJuKHJjKTsKKyAgICAgfQor IAorICAgICByZXR1cm4gMDsKK0BAIC0xOTcsNyArMTk3LDcgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5 X2RlYWN0aXZhdGUodm9pZCkKKyAKKyAgICAgaWYgKHJjICE9IEdMT0JVU19TVUNDRVNTKQorICAg ICB7CistCXJldHVybihyYyk7CisrICAgICAgICByZXR1cm4ocmMpOworICAgICB9CisgCisgI2lm ZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJVRworQEAgLTIwNyw3ICsyMDcsNyBAQCBnbG9idXNf bF9nYXNzX2NvcHlfZGVhY3RpdmF0ZSh2b2lkKQorICAgICByYyA9IGdsb2J1c19tb2R1bGVfZGVh Y3RpdmF0ZShHTE9CVVNfQ09NTU9OX01PRFVMRSk7CisgICAgIGlmIChyYyAhPSBHTE9CVVNfU1VD Q0VTUykKKyAgICAgeworLQlyZXR1cm4ocmMpOworKyAgICAgICAgcmV0dXJuKHJjKTsKKyAgICAg fQorIAorICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKK0BAIC0yMTcsNyArMjE3LDcg QEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2RlYWN0aXZhdGUodm9pZCkKKyAgICAgcmMgPSBnbG9idXNf bW9kdWxlX2RlYWN0aXZhdGUoR0xPQlVTX0lPX01PRFVMRSk7CisgICAgIGlmIChyYyAhPSBHTE9C VVNfU1VDQ0VTUykKKyAgICAgeworLQlyZXR1cm4ocmMpOworKyAgICAgICAgcmV0dXJuKHJjKTsK KyAgICAgfQorIAorICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKK0BAIC0yMjcsNyAr MjI3LDcgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2RlYWN0aXZhdGUodm9pZCkKKyAgICAgcmMgPSBn bG9idXNfbW9kdWxlX2RlYWN0aXZhdGUoR0xPQlVTX0dBU1NfVFJBTlNGRVJfTU9EVUxFKTsKKyAg ICAgaWYgKHJjICE9IEdMT0JVU19TVUNDRVNTKQorICAgICB7CistCXJldHVybihyYyk7CisrICAg ICAgICByZXR1cm4ocmMpOworICAgICB9CisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJV RworICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwiR0FTU19DT1BZOiBkb25lIGdsb2J1 c19tb2R1bGVfZGVhY3RpdmF0ZShHTE9CVVNfR0FTU19UUkFOU0ZFUl9NT0RVTEUpIFxuIik7CitA QCAtMjM2LDcgKzIzNiw3IEBAIGdsb2J1c19sX2dhc3NfY29weV9kZWFjdGl2YXRlKHZvaWQpCisg ICAgIHJjID0gZ2xvYnVzX21vZHVsZV9kZWFjdGl2YXRlKEdMT0JVU19GVFBfQ0xJRU5UX1RIUk9V R0hQVVRfUExVR0lOX01PRFVMRSk7CisgICAgIGlmIChyYyAhPSBHTE9CVVNfU1VDQ0VTUykKKyAg ICAgeworLQlyZXR1cm4ocmMpOworKyAgICAgICAgcmV0dXJuKHJjKTsKKyAgICAgfQorICAgICBy ZXR1cm4gMDsKKyB9IC8qIGdsb2J1c19pX2dhc3NfY29weV9kZWFjdGl2YXRlKCkgKi8KK0BAIC0y NTksOCArMjU5LDggQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X21vbml0b3JfY2FsbGJhY2soCisgICAg IG1vbml0b3ItPmRvbmUgPSBHTE9CVVNfVFJVRTsKKyAgICAgaWYoZXJyb3IgIT0gR0xPQlVTX05V TEwpCisgICAgIHsKKy0JbW9uaXRvci0+ZXJyID0gZ2xvYnVzX29iamVjdF9jb3B5KGVycm9yKTsK Ky0JbW9uaXRvci0+dXNlX2VyciA9IEdMT0JVU19UUlVFOworKyAgICAgICAgbW9uaXRvci0+ZXJy ID0gZ2xvYnVzX29iamVjdF9jb3B5KGVycm9yKTsKKysgICAgICAgIG1vbml0b3ItPnVzZV9lcnIg PSBHTE9CVVNfVFJVRTsKKyAgICAgfQorICAgICBnbG9idXNfY29uZF9zaWduYWwoJm1vbml0b3It PmNvbmQpOworICAgICBnbG9idXNfbXV0ZXhfdW5sb2NrKCZtb25pdG9yLT5tdXRleCk7CitAQCAt MzE1LDEzICszMTUsMTMgQEAgZ2xvYnVzX2dhc3NfY29weV9oYW5kbGVfaW5pdCgKKyAKKyAgICAg aWYoaGFuZGxlICE9IEdMT0JVU19OVUxMKQorICAgICB7CistCWdsb2J1c19mdHBfY2xpZW50X2hh bmRsZWF0dHJfdCAqIGZ0cF9hdHRyOworKyAgICAgICAgZ2xvYnVzX2Z0cF9jbGllbnRfaGFuZGxl YXR0cl90ICogZnRwX2F0dHI7CisgCistCWZ0cF9hdHRyID0gKGF0dHIgJiYgYXR0ci0+ZnRwX2F0 dHIpID8gYXR0ci0+ZnRwX2F0dHIgOiBHTE9CVVNfTlVMTDsKKysgICAgICAgIGZ0cF9hdHRyID0g KGF0dHIgJiYgYXR0ci0+ZnRwX2F0dHIpID8gYXR0ci0+ZnRwX2F0dHIgOiBHTE9CVVNfTlVMTDsK KyAKKyAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19mdHBfY2xpZW50X2hhbmRsZV9pbml0KCZoYW5k bGUtPmZ0cF9oYW5kbGVfMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZ0cF9hdHRyKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorKwor ICAgICAgICAgaWYgKHJlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKKyAgICAgICAgICAgICByZXR1 cm4gcmVzdWx0OworIAorQEAgLTM1MCwxMyArMzUwLDEzIEBAIGdsb2J1c19nYXNzX2NvcHlfaGFu ZGxlX2luaXQoCisgICAgIH0KKyAgICAgZWxzZQorICAgICB7CistCWVyciA9IGdsb2J1c19lcnJv cl9jb25zdHJ1Y3Rfc3RyaW5nKAorLQkgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCistCSAg ICBHTE9CVVNfTlVMTCwKKy0JICAgICJbJXNdOiBCQURfUEFSQU1FVEVSLCBoYW5kbGUgaXMgTlVM TCIsCistCSAgICBteW5hbWUpOworKyAgICAgICAgZXJyID0gZ2xvYnVzX2Vycm9yX2NvbnN0cnVj dF9zdHJpbmcoCisrICAgICAgICAgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCisrICAgICAg ICAgICAgR0xPQlVTX05VTEwsCisrICAgICAgICAgICAgIlslc106IEJBRF9QQVJBTUVURVIsIGhh bmRsZSBpcyBOVUxMIiwKKysgICAgICAgICAgICBteW5hbWUpOworIAorLQlyZXR1cm4gZ2xvYnVz X2Vycm9yX3B1dChlcnIpOworKyAgICAgICAgcmV0dXJuIGdsb2J1c19lcnJvcl9wdXQoZXJyKTsK KyAgICAgfQorIH0KKyAKK0BAIC0zOTUsNyArMzk1LDcgQEAgZ2xvYnVzX2dhc3NfY29weV9oYW5k bGVfZGVzdHJveSgKKyAKKyAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19mdHBfY2xpZW50X2hhbmRs ZV9kZXN0cm95KCZoYW5kbGUtPmZ0cF9oYW5kbGUpOworIAorLQlpZihoYW5kbGUtPmVyciAhPSBH TE9CVVNfTlVMTCkKKysgICAgICAgIGlmKGhhbmRsZS0+ZXJyICE9IEdMT0JVU19OVUxMKQorICAg ICAgICAgICAgICBnbG9idXNfb2JqZWN0X2ZyZWUoaGFuZGxlLT5lcnIpOworIAorICAgICAgICAg aGFuZGxlLT5lcnIgPSBHTE9CVVNfTlVMTDsKK0BAIC00MDgsMjQgKzQwOCwyNCBAQCBnbG9idXNf Z2Fzc19jb3B5X2hhbmRsZV9kZXN0cm95KAorICAgICAgICAgICAgIGdsb2J1c19mcmVlKGhhbmRs ZS0+cGVyZm9ybWFuY2UpOworICAgICAgICAgICAgIGhhbmRsZS0+cGVyZm9ybWFuY2UgPSBHTE9C VVNfTlVMTDsKKyAgICAgICAgIH0KKy0gICAgICAgIAorKworICAgICAgICAgaWYoaGFuZGxlLT5z dGF0ZSkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBnbG9idXNfbF9nYXNzX2NvcHlfc3RhdGVf ZnJlZShoYW5kbGUtPnN0YXRlKTsKKyAgICAgICAgICAgICBoYW5kbGUtPnN0YXRlID0gR0xPQlVT X05VTEw7CisgICAgICAgICB9CistICAgICAgICAKKysKKyAgICAgICAgIHJldHVybiByZXN1bHQ7 CisgICAgIH0KKyAgICAgZWxzZQorICAgICB7CistCWVyciA9IGdsb2J1c19lcnJvcl9jb25zdHJ1 Y3Rfc3RyaW5nKAorLQkgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCistCSAgICBHTE9CVVNf TlVMTCwKKy0JICAgICJbJXNdOiBCQURfUEFSQU1FVEVSLCBoYW5kbGUgaXMgTlVMTCIsCistCSAg ICBteW5hbWUpOworKyAgICAgICAgZXJyID0gZ2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmco CisrICAgICAgICAgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCisrICAgICAgICAgICAgR0xP QlVTX05VTEwsCisrICAgICAgICAgICAgIlslc106IEJBRF9QQVJBTUVURVIsIGhhbmRsZSBpcyBO VUxMIiwKKysgICAgICAgICAgICBteW5hbWUpOworIAorLQlyZXR1cm4gZ2xvYnVzX2Vycm9yX3B1 dChlcnIpOworKyAgICAgICAgcmV0dXJuIGdsb2J1c19lcnJvcl9wdXQoZXJyKTsKKyAgICAgfQor IH0KKyAKK0BAIC00MzgsMTkgKzQzOCwxOSBAQCBnbG9idXNfZ2Fzc19jb3B5X2hhbmRsZWF0dHJf aW5pdCgKKyAKKyAgICAgaWYoaGFuZGxlX2F0dHIpCisgICAgIHsKKy0JaGFuZGxlX2F0dHItPmZ0 cF9hdHRyID0gR0xPQlVTX05VTEw7CisrICAgICAgICBoYW5kbGVfYXR0ci0+ZnRwX2F0dHIgPSBH TE9CVVNfTlVMTDsKKyAKKy0JcmV0dXJuIEdMT0JVU19TVUNDRVNTOworKyAgICAgICAgcmV0dXJu IEdMT0JVU19TVUNDRVNTOworICAgICB9CisgICAgIGVsc2UKKyAgICAgeworLQllcnIgPSBnbG9i dXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKy0JICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxF LAorLQkgICAgR0xPQlVTX05VTEwsCistCSAgICAiWyVzXTogQkFEX1BBUkFNRVRFUiwgaGFuZGxl X2F0dHIgaXMgTlVMTCIsCistCSAgICBteW5hbWUpOworKyAgICAgICAgZXJyID0gZ2xvYnVzX2Vy cm9yX2NvbnN0cnVjdF9zdHJpbmcoCisrICAgICAgICAgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RV TEUsCisrICAgICAgICAgICAgR0xPQlVTX05VTEwsCisrICAgICAgICAgICAgIlslc106IEJBRF9Q QVJBTUVURVIsIGhhbmRsZV9hdHRyIGlzIE5VTEwiLAorKyAgICAgICAgICAgIG15bmFtZSk7Cisg CistCXJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7CisrICAgICAgICByZXR1cm4gZ2xvYnVz X2Vycm9yX3B1dChlcnIpOworICAgICB9CisgfQorIAorQEAgLTQ2MywxOSArNDYzLDE5IEBAIGds b2J1c19nYXNzX2NvcHlfaGFuZGxlYXR0cl9kZXN0cm95KAorIAorICAgICBpZihoYW5kbGVfYXR0 ciAhPSBHTE9CVVNfTlVMTCkKKyAgICAgeworLQloYW5kbGVfYXR0ci0+ZnRwX2F0dHIgPSBHTE9C VVNfTlVMTDsKKysgICAgICAgIGhhbmRsZV9hdHRyLT5mdHBfYXR0ciA9IEdMT0JVU19OVUxMOwor IAorICAgICAgICAgcmV0dXJuIEdMT0JVU19TVUNDRVNTOworICAgICB9CisgICAgIGVsc2UKKyAg ICAgeworLQllcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKy0JICAgIEdMT0JV U19HQVNTX0NPUFlfTU9EVUxFLAorLQkgICAgR0xPQlVTX05VTEwsCistCSAgICAiWyVzXTogQkFE X1BBUkFNRVRFUiwgaGFuZGxlX2F0dHIgaXMgTlVMTCIsCistCSAgICBteW5hbWUpOworKyAgICAg ICAgZXJyID0gZ2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCisrICAgICAgICAgICAgR0xP QlVTX0dBU1NfQ09QWV9NT0RVTEUsCisrICAgICAgICAgICAgR0xPQlVTX05VTEwsCisrICAgICAg ICAgICAgIlslc106IEJBRF9QQVJBTUVURVIsIGhhbmRsZV9hdHRyIGlzIE5VTEwiLAorKyAgICAg ICAgICAgIG15bmFtZSk7CisgCistCXJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7CisrICAg ICAgICByZXR1cm4gZ2xvYnVzX2Vycm9yX3B1dChlcnIpOworICAgICB9CisgfQorIAorQEAgLTQ4 OSwxOSArNDg5LDE5IEBAIGdsb2J1c19nYXNzX2NvcHlfaGFuZGxlYXR0cl9zZXRfZnRwX2F0dHIo CisgCisgICAgIGlmKGhhbmRsZV9hdHRyICE9IEdMT0JVU19OVUxMKQorICAgICB7CistCWhhbmRs ZV9hdHRyLT5mdHBfYXR0ciA9IGZ0cF9hdHRyOworKyAgICAgICAgaGFuZGxlX2F0dHItPmZ0cF9h dHRyID0gZnRwX2F0dHI7CisgCisgICAgICAgICByZXR1cm4gR0xPQlVTX1NVQ0NFU1M7CisgICAg IH0KKyAgICAgZWxzZQorICAgICB7CistCWVyciA9IGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3Ry aW5nKAorLQkgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCistCSAgICBHTE9CVVNfTlVMTCwK Ky0JICAgICJbJXNdOiBCQURfUEFSQU1FVEVSLCBoYW5kbGVfYXR0ciBpcyBOVUxMIiwKKy0JICAg IG15bmFtZSk7CisrICAgICAgICBlcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygK KysgICAgICAgICAgICBHTE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKysgICAgICAgICAgICBHTE9C VVNfTlVMTCwKKysgICAgICAgICAgICAiWyVzXTogQkFEX1BBUkFNRVRFUiwgaGFuZGxlX2F0dHIg aXMgTlVMTCIsCisrICAgICAgICAgICAgbXluYW1lKTsKKyAKKy0JcmV0dXJuIGdsb2J1c19lcnJv cl9wdXQoZXJyKTsKKysgICAgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7CisgICAg IH0KKyB9CisgCitAQCAtNTMyLDE4ICs1MzIsMTggQEAgZ2xvYnVzX2dhc3NfY29weV9zZXRfYnVm ZmVyX2xlbmd0aCgKKyAgICAgc3RhdGljIGNoYXIgKiBteW5hbWU9Imdsb2J1c19nYXNzX2NvcHlf c2V0X2J1ZmZlcl9sZW5ndGgiOworICAgICBpZiAoaGFuZGxlKQorICAgICB7CistCWhhbmRsZS0+ YnVmZmVyX2xlbmd0aCA9IGxlbmd0aDsKKy0JcmV0dXJuIEdMT0JVU19TVUNDRVNTOworKyAgICAg ICAgaGFuZGxlLT5idWZmZXJfbGVuZ3RoID0gbGVuZ3RoOworKyAgICAgICAgcmV0dXJuIEdMT0JV U19TVUNDRVNTOworICAgICB9CisgICAgIGVsc2UKKyAgICAgeworLQllcnIgPSBnbG9idXNfZXJy b3JfY29uc3RydWN0X3N0cmluZygKKy0JICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorLQkg ICAgR0xPQlVTX05VTEwsCistCSAgICAiWyVzXTogQkFEX1BBUkFNRVRFUiwgaGFuZGxlIGlzIE5V TEwiLAorLQkgICAgbXluYW1lKTsKKysgICAgICAgIGVyciA9IGdsb2J1c19lcnJvcl9jb25zdHJ1 Y3Rfc3RyaW5nKAorKyAgICAgICAgICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorKyAgICAg ICAgICAgIEdMT0JVU19OVUxMLAorKyAgICAgICAgICAgICJbJXNdOiBCQURfUEFSQU1FVEVSLCBo YW5kbGUgaXMgTlVMTCIsCisrICAgICAgICAgICAgbXluYW1lKTsKKyAKKy0JcmV0dXJuIGdsb2J1 c19lcnJvcl9wdXQoZXJyKTsKKysgICAgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7 CisgICAgIH0KKyB9IC8qIGdsb2J1c19nYXNzX2NvcHlfc2V0X2J1ZmZlcl9sZW5ndGgoKSAqLwor IAorQEAgLTU3MiwxOCArNTcyLDE4IEBAIGdsb2J1c19nYXNzX2NvcHlfZ2V0X2J1ZmZlcl9sZW5n dGgoCisgICAgIHN0YXRpYyBjaGFyICogbXluYW1lPSJnbG9idXNfZ2Fzc19jb3B5X2dldF9idWZm ZXJfbGVuZ3RoIjsKKyAgICAgaWYgKGhhbmRsZSkKKyAgICAgeworLQkqbGVuZ3RoID0gaGFuZGxl LT5idWZmZXJfbGVuZ3RoOworLQlyZXR1cm4gR0xPQlVTX1NVQ0NFU1M7CisrICAgICAgICAqbGVu Z3RoID0gaGFuZGxlLT5idWZmZXJfbGVuZ3RoOworKyAgICAgICAgcmV0dXJuIEdMT0JVU19TVUND RVNTOworICAgICB9CisgICAgIGVsc2UKKyAgICAgeworLQllcnIgPSBnbG9idXNfZXJyb3JfY29u c3RydWN0X3N0cmluZygKKy0JICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorLQkgICAgR0xP QlVTX05VTEwsCistCSAgICAiWyVzXTogQkFEX1BBUkFNRVRFUiwgaGFuZGxlIGlzIE5VTEwiLAor LQkgICAgbXluYW1lKTsKKysgICAgICAgIGVyciA9IGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3Ry aW5nKAorKyAgICAgICAgICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorKyAgICAgICAgICAg IEdMT0JVU19OVUxMLAorKyAgICAgICAgICAgICJbJXNdOiBCQURfUEFSQU1FVEVSLCBoYW5kbGUg aXMgTlVMTCIsCisrICAgICAgICAgICAgbXluYW1lKTsKKyAKKy0JcmV0dXJuIGdsb2J1c19lcnJv cl9wdXQoZXJyKTsKKysgICAgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7CisgICAg IH0KKyB9IC8qIGdsb2J1c19nYXNzX2NvcHlfZ2V0X2J1ZmZlcl9sZW5ndGgoKSAqLworIAorQEAg LTYyMCwyOSArNjIwLDI5IEBAIGdsb2J1c19nYXNzX2NvcHlfc2V0X25vX3RoaXJkX3BhcnR5X3Ry YW5zZmVycygKKyAKKyAgICAgICBpZihjdXJyZW50X3N0YXR1cyA9PSBHTE9CVVNfR0FTU19DT1BZ X1NUQVRVU19QRU5ESU5HKQorICAgICAgIHsKKy0JZXJyID0gZ2xvYnVzX2Vycm9yX2NvbnN0cnVj dF9zdHJpbmcoCistCSAgICBHTE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKy0JICAgIEdMT0JVU19O VUxMLAorLQkgICAgIlslc106IENhbm5vdCBjaGFuZ2UgdGhlIHZhbHVlIG9mIG5vX3RoaXJkX3Bh cnR5X3RyYW5zZmVycywiCisrICAgICAgICBlcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0 cmluZygKKysgICAgICAgICAgICBHTE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKysgICAgICAgICAg ICBHTE9CVVNfTlVMTCwKKysgICAgICAgICAgICAiWyVzXTogQ2Fubm90IGNoYW5nZSB0aGUgdmFs dWUgb2Ygbm9fdGhpcmRfcGFydHlfdHJhbnNmZXJzLCIKKyAgICAgICAgICAgICAgICAgICAgIlx0 dGhlcmUgaXMgYSB0cmFuc2ZlciBjdXJyZW50bHkgcGVuZGluZyBvbiB0aGlzIGhhbmRsZSIsCist CSAgICBteW5hbWUpOworLQlyZXR1cm4gZ2xvYnVzX2Vycm9yX3B1dChlcnIpOworKyAgICAgICAg ICAgIG15bmFtZSk7CisrICAgICAgICByZXR1cm4gZ2xvYnVzX2Vycm9yX3B1dChlcnIpOworICAg ICAgIH0KKyAgICAgICBlbHNlCisgICAgICAgeworLQloYW5kbGUtPm5vX3RoaXJkX3BhcnR5X3Ry YW5zZmVycyA9IG5vX3RoaXJkX3BhcnR5X3RyYW5zZmVyczsKKy0JcmV0dXJuIEdMT0JVU19TVUND RVNTOworKyAgICAgICAgaGFuZGxlLT5ub190aGlyZF9wYXJ0eV90cmFuc2ZlcnMgPSBub190aGly ZF9wYXJ0eV90cmFuc2ZlcnM7CisrICAgICAgICByZXR1cm4gR0xPQlVTX1NVQ0NFU1M7CisgICAg ICAgfQorICAgICB9CisgICAgIGVsc2UKKyAgICAgeworLQllcnIgPSBnbG9idXNfZXJyb3JfY29u c3RydWN0X3N0cmluZygKKy0JICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorLQkgICAgR0xP QlVTX05VTEwsCistCSAgICAiWyVzXTogQkFEX1BBUkFNRVRFUiwgaGFuZGxlIGlzIE5VTEwiLAor LQkgICAgbXluYW1lKTsKKysgICAgICAgIGVyciA9IGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3Ry aW5nKAorKyAgICAgICAgICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorKyAgICAgICAgICAg IEdMT0JVU19OVUxMLAorKyAgICAgICAgICAgICJbJXNdOiBCQURfUEFSQU1FVEVSLCBoYW5kbGUg aXMgTlVMTCIsCisrICAgICAgICAgICAgbXluYW1lKTsKKyAKKy0JcmV0dXJuIGdsb2J1c19lcnJv cl9wdXQoZXJyKTsKKysgICAgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7CisgICAg IH0KKyB9IC8qIGdsb2J1c19nYXNzX2NvcHlfc2V0X25vX3RoaXJkX3BhcnR5X3RyYW5zZmVycygp ICovCisgCitAQCAtNjc0LDE4ICs2NzQsMTggQEAgZ2xvYnVzX2dhc3NfY29weV9nZXRfbm9fdGhp cmRfcGFydHlfdHJhbnNmZXJzKAorICAgICBzdGF0aWMgY2hhciAqIG15bmFtZT0iZ2xvYnVzX2dh c3NfY29weV9nZXRfbm9fdGhpcmRfcGFydHlfdHJhbnNmZXJzIjsKKyAgICAgaWYgKGhhbmRsZSkK KyAgICAgeworLQkqbm9fdGhpcmRfcGFydHlfdHJhbnNmZXJzID0gaGFuZGxlLT5ub190aGlyZF9w YXJ0eV90cmFuc2ZlcnM7CistCXJldHVybiBHTE9CVVNfU1VDQ0VTUzsKKysgICAgICAgICpub190 aGlyZF9wYXJ0eV90cmFuc2ZlcnMgPSBoYW5kbGUtPm5vX3RoaXJkX3BhcnR5X3RyYW5zZmVyczsK KysgICAgICAgIHJldHVybiBHTE9CVVNfU1VDQ0VTUzsKKyAgICAgfQorICAgICBlbHNlCisgICAg IHsKKy0JZXJyID0gZ2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCistCSAgICBHTE9CVVNf R0FTU19DT1BZX01PRFVMRSwKKy0JICAgIEdMT0JVU19OVUxMLAorLQkgICAgIlslc106IEJBRF9Q QVJBTUVURVIsIGhhbmRsZSBpcyBOVUxMIiwKKy0JICAgIG15bmFtZSk7CisrICAgICAgICBlcnIg PSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKysgICAgICAgICAgICBHTE9CVVNfR0FT U19DT1BZX01PRFVMRSwKKysgICAgICAgICAgICBHTE9CVVNfTlVMTCwKKysgICAgICAgICAgICAi WyVzXTogQkFEX1BBUkFNRVRFUiwgaGFuZGxlIGlzIE5VTEwiLAorKyAgICAgICAgICAgIG15bmFt ZSk7CisgCistCXJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7CisrICAgICAgICByZXR1cm4g Z2xvYnVzX2Vycm9yX3B1dChlcnIpOworICAgICB9CisgfSAvKiBnbG9idXNfZ2Fzc19jb3B5X2dl dF9ub190aGlyZF9wYXJ0eV90cmFuc2ZlcnMoKSAqLworIAorQEAgLTcwMCw3ICs3MDAsNyBAQCBn bG9idXNfZ2Fzc19jb3B5X3NldF9hbGxvY2F0ZSgKKyAgICAgZ2xvYnVzX2Jvb2xfdCAgICAgICAg ICAgICAgICAgICAgICAgc2VuZF9hbGxvKQorIHsKKyAgICAgaGFuZGxlLT5zZW5kX2FsbG8gPSBz ZW5kX2FsbG87CistICAgIAorKworICAgICByZXR1cm4gR0xPQlVTX1NVQ0NFU1M7CisgfQorIAor QEAgLTcxNCwyMCArNzE0LDIwIEBAIGdsb2J1c19nYXNzX2NvcHlfc2V0X3N0YXRfb25fZXhwYW5k KAorICAgICBnbG9idXNfYm9vbF90ICAgICAgICAgICAgICAgICAgICAgICBhbHdheXNfc3RhdCkK KyB7CisgICAgIGhhbmRsZS0+YWx3YXlzX3N0YXRfb25fZXhwYW5kID0gYWx3YXlzX3N0YXQ7Cist ICAgIAorKworICAgICByZXR1cm4gR0xPQlVTX1NVQ0NFU1M7CisgfQorIAorIC8qKgorLSAqIEBi cmllZiBTdG9yZXMgdGhlIGNoZWNrc3VtIGFsZ29yaXRobSB0byB1c2Ugd2l0aCBhbGwgCisrICog QGJyaWVmIFN0b3JlcyB0aGUgY2hlY2tzdW0gYWxnb3JpdGhtIHRvIHVzZSB3aXRoIGFsbAorICAq ICAgICAgICBjaGVja3N1bSBvcGVyYXRpb25zLgorICAqIEBpbmdyb3VwIGdsb2J1c19nYXNzX2Nv cHkKKyAgKiBAZGV0YWlscworLSAqIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgY2hlY2tzdW0gYWxn b3JpdGhtIGFuZCB0aGUgaGFuZGxlIAorKyAqIFRoaXMgZnVuY3Rpb24gc2V0cyB0aGUgY2hlY2tz dW0gYWxnb3JpdGhtIGFuZCB0aGUgaGFuZGxlCisgICogdG8gYmUgdXNlZCBmb3IgY2hlY2tzdW0g Y2FsY3VsYXRpb25zIHRvIHRoZSBwYXNzZWQgaW4gaGFuZGxlLgorLSAqIAorKyAqCisgICogQHBh cmFtIGhhbmRsZQorLSAqICAgICAgVGhpcyBpcyB0aGUgaGFuZGxlIHRvIHdoaWNoIHRoZSBjaGVj a3N1bSBhbGdvcml0aG0gYW5kIAorKyAqICAgICAgVGhpcyBpcyB0aGUgaGFuZGxlIHRvIHdoaWNo IHRoZSBjaGVja3N1bSBhbGdvcml0aG0gYW5kCisgICogICAgICBoYW5kbGUgYXJlIHNldC4KKyAg KiBAcGFyYW0gYWxnbworICAqICAgICAgVGhpcyBpcyB0aGUgYWxnb3JpdGhtIHRvIHNldCBpbiB0 aGUgaGFuZGxlLgorQEAgLTczNyw3ICs3MzcsNyBAQCBnbG9idXNfZ2Fzc19jb3B5X3NldF9zdGF0 X29uX2V4cGFuZCgKKyAgKiBAcmV0dXJuCisgICogICAgICBUaGlzIGZ1bmN0aW9uIGFsd2F5cyBy ZXR1cm5zIEdMT0JVU19TVUNDRVNTCisgICovCistZ2xvYnVzX3Jlc3VsdF90IAorK2dsb2J1c19y ZXN1bHRfdAorIGdsb2J1c19nYXNzX2NvcHlfc2V0X2NoZWNrc3VtX2FsZ28oCisgICAgIGdsb2J1 c19nYXNzX2NvcHlfaGFuZGxlX3QgKiAgICAgICAgIGhhbmRsZSwKKyAgICAgY2hhciAgICAgICAg ICAgICAgICAgICAgICAqICAgICAgICAgYWxnbywKK0BAIC03NTcsMTkgKzc1NywxOSBAQCBnbG9i dXNfZ2Fzc19jb3B5X3NldF9jaGVja3N1bV9hbGdvKAorICAqIEBicmllZiBDb3BpZXMgdGhlIGNo ZWNrc3VtIHRvIHRoZSBoYW5kbGUncyBjaGVja3N1bSBwYXJhbWV0ZXIuCisgICogQGluZ3JvdXAg Z2xvYnVzX2dhc3NfY29weQorICAqIEBkZXRhaWxzCistICogVGhpcyBmdW5jdGlvbiBmcmVlcyBh bnkgZXhpc3RpbmcgY2hlY2tzdW0gdmFsdWUgc3RvcmVkIGluIHRoZSAKKysgKiBUaGlzIGZ1bmN0 aW9uIGZyZWVzIGFueSBleGlzdGluZyBjaGVja3N1bSB2YWx1ZSBzdG9yZWQgaW4gdGhlCisgICog aGFuZGxlLCB0aGVuIGNvcGllcyB0aGUgcGFzc2VkIGluIGNoZWNrc3VtIHRvIHRoZSBoYW5kbGUu CistICogCisrICoKKyAgKiBAcGFyYW0gaGFuZGxlCistICogICAgICBUaGUgaGFuZGxlIHRvIHRo ZSBvYmplY3QgdG8gd2hpY2ggdGhlIGNoZWNrc3VtIHNoYWxsIGJlIHNldC4gCisrICogICAgICBU aGUgaGFuZGxlIHRvIHRoZSBvYmplY3QgdG8gd2hpY2ggdGhlIGNoZWNrc3VtIHNoYWxsIGJlIHNl dC4KKyAgKiBAcGFyYW0gY2tzbQorICAqICAgICAgVGhlIGNoZWNrc3VtIHN0cmluZyB0byBiZSBz ZXQgdG8gdGhlIGhhbmRsZS4KKyAgKiBAcmV0dXJuCisgICogICAgICBUaGlzIGZ1bmN0aW9uIGFs d2F5cyByZXR1cm5zIEdMT0JVU19TVUNDRVNTCisgICovCistZ2xvYnVzX3Jlc3VsdF90IAorK2ds b2J1c19yZXN1bHRfdAorIGdsb2J1c19nYXNzX2NvcHlfc2V0X2NoZWNrc3VtKAorLSAgICBnbG9i dXNfZ2Fzc19jb3B5X2hhbmRsZV90ICogICAgICAgICBoYW5kbGUsIAorKyAgICBnbG9idXNfZ2Fz c19jb3B5X2hhbmRsZV90ICogICAgICAgICBoYW5kbGUsCisgICAgIGNoYXIgICAgICAgICAgICAg ICAgICAgICAgKiAgICAgICAgIGNrc20pCisgeworICAgICBpZihoYW5kbGUtPnN0YXRlLT5jaGVj a3N1bSAhPSBHTE9CVVNfTlVMTCkKK0BAIC04MTEsMjAgKzgxMSwyMCBAQCBnbG9idXNfZ2Fzc19j b3B5X3NldF9wYXJ0aWFsX29mZnNldHMoCisgICAgIHN0YXRpYyBjaGFyICogbXluYW1lPSJnbG9i dXNfZ2Fzc19jb3B5X3NldF9wYXJ0aWFsX29mZnNldHMiOworICAgICBpZiAoaGFuZGxlKQorICAg ICB7CistCWhhbmRsZS0+cGFydGlhbF9vZmZzZXQgPSBvZmZzZXQ7CistCWhhbmRsZS0+cGFydGlh bF9lbmRfb2Zmc2V0ID0gZW5kX29mZnNldDsKKy0JCistCXJldHVybiBHTE9CVVNfU1VDQ0VTUzsK KysgICAgICAgIGhhbmRsZS0+cGFydGlhbF9vZmZzZXQgPSBvZmZzZXQ7CisrICAgICAgICBoYW5k bGUtPnBhcnRpYWxfZW5kX29mZnNldCA9IGVuZF9vZmZzZXQ7CisrCisrICAgICAgICByZXR1cm4g R0xPQlVTX1NVQ0NFU1M7CisgICAgIH0KKyAgICAgZWxzZQorICAgICB7CistCWVyciA9IGdsb2J1 c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorLQkgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUs CistCSAgICBHTE9CVVNfTlVMTCwKKy0JICAgICJbJXNdOiBCQURfUEFSQU1FVEVSLCBoYW5kbGUg aXMgTlVMTCIsCistCSAgICBteW5hbWUpOworKyAgICAgICAgZXJyID0gZ2xvYnVzX2Vycm9yX2Nv bnN0cnVjdF9zdHJpbmcoCisrICAgICAgICAgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCisr ICAgICAgICAgICAgR0xPQlVTX05VTEwsCisrICAgICAgICAgICAgIlslc106IEJBRF9QQVJBTUVU RVIsIGhhbmRsZSBpcyBOVUxMIiwKKysgICAgICAgICAgICBteW5hbWUpOworIAorLQlyZXR1cm4g Z2xvYnVzX2Vycm9yX3B1dChlcnIpOworKyAgICAgICAgcmV0dXJuIGdsb2J1c19lcnJvcl9wdXQo ZXJyKTsKKyAgICAgfQorIH0gLyogZ2xvYnVzX2dhc3NfY29weV9zZXRfcGFydGlhbF9vZmZzZXRz KCkgKi8KKyAKK0BAIC04NTcsMTkgKzg1NywxOSBAQCBnbG9idXNfZ2Fzc19jb3B5X2dldF9wYXJ0 aWFsX29mZnNldHMoCisgICAgIHN0YXRpYyBjaGFyICogbXluYW1lPSJnbG9idXNfZ2Fzc19jb3B5 X2dldF9wYXJ0aWFsX29mZnNldHMiOworICAgICBpZiAoaGFuZGxlKQorICAgICB7CistCSpvZmZz ZXQgPSBoYW5kbGUtPnBhcnRpYWxfb2Zmc2V0OworLQkqZW5kX29mZnNldCA9IGhhbmRsZS0+cGFy dGlhbF9lbmRfb2Zmc2V0OworLQlyZXR1cm4gR0xPQlVTX1NVQ0NFU1M7CisrICAgICAgICAqb2Zm c2V0ID0gaGFuZGxlLT5wYXJ0aWFsX29mZnNldDsKKysgICAgICAgICplbmRfb2Zmc2V0ID0gaGFu ZGxlLT5wYXJ0aWFsX2VuZF9vZmZzZXQ7CisrICAgICAgICByZXR1cm4gR0xPQlVTX1NVQ0NFU1M7 CisgICAgIH0KKyAgICAgZWxzZQorICAgICB7CistCWVyciA9IGdsb2J1c19lcnJvcl9jb25zdHJ1 Y3Rfc3RyaW5nKAorLQkgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCistCSAgICBHTE9CVVNf TlVMTCwKKy0JICAgICJbJXNdOiBCQURfUEFSQU1FVEVSLCBoYW5kbGUgaXMgTlVMTCIsCistCSAg ICBteW5hbWUpOworKyAgICAgICAgZXJyID0gZ2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmco CisrICAgICAgICAgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCisrICAgICAgICAgICAgR0xP QlVTX05VTEwsCisrICAgICAgICAgICAgIlslc106IEJBRF9QQVJBTUVURVIsIGhhbmRsZSBpcyBO VUxMIiwKKysgICAgICAgICAgICBteW5hbWUpOworIAorLQlyZXR1cm4gZ2xvYnVzX2Vycm9yX3B1 dChlcnIpOworKyAgICAgICAgcmV0dXJuIGdsb2J1c19lcnJvcl9wdXQoZXJyKTsKKyAgICAgfQor IH0gLyogZ2xvYnVzX2dhc3NfY29weV9nZXRfcGFydGlhbF9vZmZzZXRzKCkgKi8KKyAKK0BAIC05 MzIsMTkgKzkzMiwxOSBAQCBnbG9idXNfZ2Fzc19jb3B5X2F0dHJfaW5pdCgKKyAgICAgc3RhdGlj IGNoYXIgKiBteW5hbWU9Imdsb2J1c19nYXNzX2NvcHlfYXR0cl9pbml0IjsKKyAgICAgaWYoYXR0 ciE9R0xPQlVTX05VTEwpCisgICAgIHsKKy0JYXR0ci0+ZnRwX2F0dHIgPSBHTE9CVVNfTlVMTDsK Ky0JYXR0ci0+aW8gPSBHTE9CVVNfTlVMTDsKKy0JYXR0ci0+Z2Fzc19yZXF1ZXN0YXR0ciA9IEdM T0JVU19OVUxMOworLQlyZXR1cm4gR0xPQlVTX1NVQ0NFU1M7CisrICAgICAgICBhdHRyLT5mdHBf YXR0ciA9IEdMT0JVU19OVUxMOworKyAgICAgICAgYXR0ci0+aW8gPSBHTE9CVVNfTlVMTDsKKysg ICAgICAgIGF0dHItPmdhc3NfcmVxdWVzdGF0dHIgPSBHTE9CVVNfTlVMTDsKKysgICAgICAgIHJl dHVybiBHTE9CVVNfU1VDQ0VTUzsKKyAgICAgfQorICAgICBlbHNlCisgICAgIHsKKy0JZXJyID0g Z2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCistCSAgICBHTE9CVVNfR0FTU19DT1BZX01P RFVMRSwKKy0JICAgIEdMT0JVU19OVUxMLAorLQkgICAgIlslc106IEJBRF9QQVJBTUVURVIsIGF0 dHIgaXMgTlVMTCIsCistCSAgICBteW5hbWUpOworLQlyZXR1cm4gZ2xvYnVzX2Vycm9yX3B1dChl cnIpOworKyAgICAgICAgZXJyID0gZ2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCisrICAg ICAgICAgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCisrICAgICAgICAgICAgR0xPQlVTX05V TEwsCisrICAgICAgICAgICAgIlslc106IEJBRF9QQVJBTUVURVIsIGF0dHIgaXMgTlVMTCIsCisr ICAgICAgICAgICAgbXluYW1lKTsKKysgICAgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVy cik7CisgICAgIH0KKyB9CisgCitAQCAtOTgzLDE3ICs5ODMsMTcgQEAgZ2xvYnVzX2dhc3NfY29w eV9hdHRyX3NldF9mdHAoCisgCisgICAgIGlmKGF0dHIgIT0gR0xPQlVTX05VTEwpCisgICAgIHsK Ky0JYXR0ci0+ZnRwX2F0dHIgPSBmdHBfYXR0cjsKKy0JcmV0dXJuIEdMT0JVU19TVUNDRVNTOwor KyAgICAgICAgYXR0ci0+ZnRwX2F0dHIgPSBmdHBfYXR0cjsKKysgICAgICAgIHJldHVybiBHTE9C VVNfU1VDQ0VTUzsKKyAgICAgfQorICAgICBlbHNlCisgICAgIHsKKy0JZXJyID0gZ2xvYnVzX2Vy cm9yX2NvbnN0cnVjdF9zdHJpbmcoCistCSAgICBHTE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKy0J ICAgIEdMT0JVU19OVUxMLAorLQkgICAgIlslc106IEJBRF9QQVJBTUVURVIsIGF0dHIgaXMgTlVM TCIsCistCSAgICBteW5hbWUpOworLQlyZXR1cm4gZ2xvYnVzX2Vycm9yX3B1dChlcnIpOworKyAg ICAgICAgZXJyID0gZ2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCisrICAgICAgICAgICAg R0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCisrICAgICAgICAgICAgR0xPQlVTX05VTEwsCisrICAg ICAgICAgICAgIlslc106IEJBRF9QQVJBTUVURVIsIGF0dHIgaXMgTlVMTCIsCisrICAgICAgICAg ICAgbXluYW1lKTsKKysgICAgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7CisgICAg IH0KKyB9IC8qIGdsb2J1c19nYXNzX2NvcHlfYXR0cl9zZXRfZnRwKCkgKi8KKyAKK0BAIC0xMDMx LDE3ICsxMDMxLDE3IEBAIGdsb2J1c19nYXNzX2NvcHlfYXR0cl9zZXRfaW8oCisgICAgIHN0YXRp YyBjaGFyICogbXluYW1lPSJnbG9idXNfZ2Fzc19jb3B5X2F0dHJfc2V0X2lvIjsKKyAgICAgaWYo YXR0ciAhPSBHTE9CVVNfTlVMTCkKKyAgICAgeworLQlhdHRyLT5pbyA9IGlvX2F0dHI7CistCXJl dHVybiBHTE9CVVNfU1VDQ0VTUzsKKysgICAgICAgIGF0dHItPmlvID0gaW9fYXR0cjsKKysgICAg ICAgIHJldHVybiBHTE9CVVNfU1VDQ0VTUzsKKyAgICAgfQorICAgICBlbHNlCisgICAgIHsKKy0J ZXJyID0gZ2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCistCSAgICBHTE9CVVNfR0FTU19D T1BZX01PRFVMRSwKKy0JICAgIEdMT0JVU19OVUxMLAorLQkgICAgIlslc106IEJBRF9QQVJBTUVU RVIsIGF0dHIgaXMgTlVMTCIsCistCSAgICBteW5hbWUpOworLQlyZXR1cm4gZ2xvYnVzX2Vycm9y X3B1dChlcnIpOworKyAgICAgICAgZXJyID0gZ2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmco CisrICAgICAgICAgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCisrICAgICAgICAgICAgR0xP QlVTX05VTEwsCisrICAgICAgICAgICAgIlslc106IEJBRF9QQVJBTUVURVIsIGF0dHIgaXMgTlVM TCIsCisrICAgICAgICAgICAgbXluYW1lKTsKKysgICAgICAgIHJldHVybiBnbG9idXNfZXJyb3Jf cHV0KGVycik7CisgICAgIH0KKyB9IC8qIGdsb2J1c19nYXNzX2NvcHlfYXR0cl9zZXRfaW8oKSAq LworIAorQEAgLTEwODAsMjQgKzEwODAsMjQgQEAgZ2xvYnVzX2dhc3NfY29weV9hdHRyX3NldF9n YXNzKAorICAgICBzdGF0aWMgY2hhciAqIG15bmFtZT0iZ2xvYnVzX2dhc3NfY29weV9hdHRyX3Nl dF9nYXNzIjsKKyAgICAgaWYoYXR0ciAhPSBHTE9CVVNfTlVMTCkKKyAgICAgeworLQlhdHRyLT5n YXNzX3JlcXVlc3RhdHRyID0gZ2Fzc19hdHRyOworLQlyZXR1cm4gR0xPQlVTX1NVQ0NFU1M7Cisr ICAgICAgICBhdHRyLT5nYXNzX3JlcXVlc3RhdHRyID0gZ2Fzc19hdHRyOworKyAgICAgICAgcmV0 dXJuIEdMT0JVU19TVUNDRVNTOworICAgICB9CisgICAgIGVsc2UKKyAgICAgeworLQllcnIgPSBn bG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKy0JICAgIEdMT0JVU19HQVNTX0NPUFlfTU9E VUxFLAorLQkgICAgR0xPQlVTX05VTEwsCistCSAgICAiWyVzXTogQkFEX1BBUkFNRVRFUiwgYXR0 ciBpcyBOVUxMIiwKKy0JICAgIG15bmFtZSk7CistCXJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVy cik7CisrICAgICAgICBlcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKysgICAg ICAgICAgICBHTE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKysgICAgICAgICAgICBHTE9CVVNfTlVM TCwKKysgICAgICAgICAgICAiWyVzXTogQkFEX1BBUkFNRVRFUiwgYXR0ciBpcyBOVUxMIiwKKysg ICAgICAgICAgICBteW5hbWUpOworKyAgICAgICAgcmV0dXJuIGdsb2J1c19lcnJvcl9wdXQoZXJy KTsKKyAgICAgfQorIH0KKyAKKyAKKyAKKyAvKioKKy0gKiBAYnJpZWYgR2V0IFVSTCBzY2hlbWUg CisrICogQGJyaWVmIEdldCBVUkwgc2NoZW1lCisgICogQGluZ3JvdXAgZ2xvYnVzX2dhc3NfY29w eQorICAqIEBkZXRhaWxzCisgICogVGhpcyBmdW5jdGlvbiBlbmFibGVzIHRoZSB1c2VyIHRvIGRl dGVybWluZSB3aGF0IHByb3RvY29sIHdpbGwgYmUgdXNlZCB0bworQEAgLTExMzEsMzcgKzExMzEs MzcgQEAgZ2xvYnVzX2dhc3NfY29weV9nZXRfdXJsX21vZGUoCisgICAgIGlmICgocmMgPSBnbG9i dXNfdXJsX3BhcnNlKHVybCwgJnVybF9pbmZvKSkgIT0gR0xPQlVTX1NVQ0NFU1MpCisgICAgIHsK KyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVHCistCWdsb2J1c19saWJjX2ZwcmludGYo c3RkZXJyLCAiY29weV91cmxfbW9kZSgpOiBnbG9idXNfdXJsX3BhcnNlIHJldHVybmVkICFHTE9C VVNfU1VDQ0VTUyBmb3IgdXJsOiAlc1xuIiwgdXJsKTsKKysgICAgICAgIGdsb2J1c19saWJjX2Zw cmludGYoc3RkZXJyLCAiY29weV91cmxfbW9kZSgpOiBnbG9idXNfdXJsX3BhcnNlIHJldHVybmVk ICFHTE9CVVNfU1VDQ0VTUyBmb3IgdXJsOiAlc1xuIiwgdXJsKTsKKyAjZW5kaWYKKy0JZXJyID0g Z2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCistCSAgICBHTE9CVVNfR0FTU19DT1BZX01P RFVMRSwKKy0JICAgIEdMT0JVU19OVUxMLAorLQkgICAgIlslc106IGdsb2J1c191cmxfcGFyc2Ug cmV0dXJuZWQgZXJyb3IgY29kZTogJWQgZm9yIHVybDogJXMiLAorLQkgICAgbXluYW1lLAorLQkg ICAgcmMsCistCSAgICB1cmwpOworKyAgICAgICAgZXJyID0gZ2xvYnVzX2Vycm9yX2NvbnN0cnVj dF9zdHJpbmcoCisrICAgICAgICAgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCisrICAgICAg ICAgICAgR0xPQlVTX05VTEwsCisrICAgICAgICAgICAgIlslc106IGdsb2J1c191cmxfcGFyc2Ug cmV0dXJuZWQgZXJyb3IgY29kZTogJWQgZm9yIHVybDogJXMiLAorKyAgICAgICAgICAgIG15bmFt ZSwKKysgICAgICAgICAgICByYywKKysgICAgICAgICAgICB1cmwpOworIAorLQlyZXR1cm4gZ2xv YnVzX2Vycm9yX3B1dChlcnIpOworKyAgICAgICAgcmV0dXJuIGdsb2J1c19lcnJvcl9wdXQoZXJy KTsKKyAgICAgfQorIAorICAgICBpZiAoICh1cmxfaW5mby5zY2hlbWVfdHlwZSA9PSBHTE9CVVNf VVJMX1NDSEVNRV9GVFApIHx8CistCSAodXJsX2luZm8uc2NoZW1lX3R5cGUgPT0gR0xPQlVTX1VS TF9TQ0hFTUVfU1NIRlRQKSB8fAorLQkgKHVybF9pbmZvLnNjaGVtZV90eXBlID09IEdMT0JVU19V UkxfU0NIRU1FX0dTSUZUUCkgKQorKyAgICAgICAgICh1cmxfaW5mby5zY2hlbWVfdHlwZSA9PSBH TE9CVVNfVVJMX1NDSEVNRV9TU0hGVFApIHx8CisrICAgICAgICAgKHVybF9pbmZvLnNjaGVtZV90 eXBlID09IEdMT0JVU19VUkxfU0NIRU1FX0dTSUZUUCkgKQorICAgICB7CistCSptb2RlID0gR0xP QlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9GVFA7CisrICAgICAgICAqbW9kZSA9IEdMT0JVU19HQVNT X0NPUFlfVVJMX01PREVfRlRQOworICAgICB9CisgICAgIGVsc2UgaWYgKCAodXJsX2luZm8uc2No ZW1lX3R5cGUgPT0gR0xPQlVTX1VSTF9TQ0hFTUVfSFRUUCkgfHwKKyAgICAgICAgICAgICAgICh1 cmxfaW5mby5zY2hlbWVfdHlwZSA9PSBHTE9CVVNfVVJMX1NDSEVNRV9IVFRQUykgKQorICAgICB7 CistCSptb2RlID0gR0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9HQVNTOworKyAgICAgICAgKm1v ZGUgPSBHTE9CVVNfR0FTU19DT1BZX1VSTF9NT0RFX0dBU1M7CisgICAgIH0KKyAgICAgZWxzZSBp ZiAoIHVybF9pbmZvLnNjaGVtZV90eXBlID09IEdMT0JVU19VUkxfU0NIRU1FX0ZJTEUpCisgICAg IHsKKy0JKm1vZGUgPSBHTE9CVVNfR0FTU19DT1BZX1VSTF9NT0RFX0lPOworKyAgICAgICAgKm1v ZGUgPSBHTE9CVVNfR0FTU19DT1BZX1VSTF9NT0RFX0lPOworICAgICB9CisgICAgIGVsc2UKKyAg ICAgeworLQkqbW9kZSA9IEdMT0JVU19HQVNTX0NPUFlfVVJMX01PREVfVU5TVVBQT1JURUQ7Cisr ICAgICAgICAqbW9kZSA9IEdMT0JVU19HQVNTX0NPUFlfVVJMX01PREVfVU5TVVBQT1JURUQ7Cisg ICAgIH0KKyAKKyAgICAgZ2xvYnVzX3VybF9kZXN0cm95KCZ1cmxfaW5mbyk7CitAQCAtMTIwNywy MyArMTIwNywyMyBAQCBnbG9idXNfZ2Fzc19jb3B5X3JlZ2lzdGVyX3BlcmZvcm1hbmNlX2NiKAor IAorICAgICBpZihoYW5kbGUgPT0gR0xPQlVTX05VTEwpCisgICAgIHsKKy0JcmV0dXJuIGdsb2J1 c19lcnJvcl9wdXQoCistCSAgICBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKy0gICAg ICAgIAkgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCistICAgICAgICAJICAgIEdMT0JVU19O VUxMLAorLSAgICAgICAgCSAgICAiWyVzXTogQkFEX1BBUkFNRVRFUiwgaGFuZGxlIGlzIE5VTEwi LAorLSAgICAgICAgCSAgICBteW5hbWUpKTsKKysgICAgICAgIHJldHVybiBnbG9idXNfZXJyb3Jf cHV0KAorKyAgICAgICAgICAgIGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorKyAgICAg ICAgICAgICAgICAgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCisrICAgICAgICAgICAgICAg ICAgICBHTE9CVVNfTlVMTCwKKysgICAgICAgICAgICAgICAgICAgICJbJXNdOiBCQURfUEFSQU1F VEVSLCBoYW5kbGUgaXMgTlVMTCIsCisrICAgICAgICAgICAgICAgICAgICBteW5hbWUpKTsKKyAg ICAgfQorIAorICAgICBpZihoYW5kbGUtPnN0YXR1cyA+IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVT X05PTkUgJiYKKyAgICAgICAgIGhhbmRsZS0+c3RhdHVzIDwgR0xPQlVTX0dBU1NfQ09QWV9TVEFU VVNfRE9ORV9TVUNDRVNTKQorICAgICB7CisgICAgICAgICByZXR1cm4gZ2xvYnVzX2Vycm9yX3B1 dCgKKy0JICAgIGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorLSAgICAgICAgCSAgICBH TE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKy0gICAgICAgIAkgICAgR0xPQlVTX05VTEwsCistICAg ICAgICAJICAgICJbJXNdOiBUaGVyZSBpcyBhIHRyYW5zZmVyIGFjdGl2ZSBvbiB0aGlzIGhhbmRs ZSIsCistICAgICAgICAJICAgIG15bmFtZSkpOworKyAgICAgICAgICAgIGdsb2J1c19lcnJvcl9j b25zdHJ1Y3Rfc3RyaW5nKAorKyAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0dBU1NfQ09QWV9N T0RVTEUsCisrICAgICAgICAgICAgICAgICAgICBHTE9CVVNfTlVMTCwKKysgICAgICAgICAgICAg ICAgICAgICJbJXNdOiBUaGVyZSBpcyBhIHRyYW5zZmVyIGFjdGl2ZSBvbiB0aGlzIGhhbmRsZSIs CisrICAgICAgICAgICAgICAgICAgICBteW5hbWUpKTsKKyAgICAgfQorIAorICAgICBpZihjYWxs YmFjayA9PSBHTE9CVVNfTlVMTCkKK0BAIC0xMjQ4LDExICsxMjQ4LDExIEBAIGdsb2J1c19nYXNz X2NvcHlfcmVnaXN0ZXJfcGVyZm9ybWFuY2VfY2IoCisgICAgICAgICBpZihoYW5kbGUtPnBlcmZv cm1hbmNlID09IEdMT0JVU19OVUxMKQorICAgICAgICAgeworICAgICAgICAgICAgIHJldHVybiBn bG9idXNfZXJyb3JfcHV0KAorLQkgICAgICAgIGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5n KAorLSAgICAgICAgCSAgICBHTE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKy0gICAgICAgIAkgICAg R0xPQlVTX05VTEwsCistICAgICAgICAJICAgICJbJXNdOiBNZW1vcnkgYWxsb2NhdGlvbiBlcnJv ciIsCistICAgICAgICAJICAgIG15bmFtZSkpOworKyAgICAgICAgICAgICAgICBnbG9idXNfZXJy b3JfY29uc3RydWN0X3N0cmluZygKKysgICAgICAgICAgICAgICAgICAgIEdMT0JVU19HQVNTX0NP UFlfTU9EVUxFLAorKyAgICAgICAgICAgICAgICAgICAgR0xPQlVTX05VTEwsCisrICAgICAgICAg ICAgICAgICAgICAiWyVzXTogTWVtb3J5IGFsbG9jYXRpb24gZXJyb3IiLAorKyAgICAgICAgICAg ICAgICAgICAgbXluYW1lKSk7CisgICAgICAgICB9CisgCisgICAgICAgICBoYW5kbGUtPnBlcmZv cm1hbmNlLT5jb3B5X2hhbmRsZSA9IGhhbmRsZTsKK0BAIC0xMzAzLDcgKzEzMDMsNyBAQCBnbG9i dXNfbF9nYXNzX2NvcHlfcGVyZl9sb2NhbF9jYigKKyAgICAgbG9uZyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVzZWNzOworICAgICBnbG9idXNfZ2Fzc19jb3B5X2hhbmRsZV90 ICogICAgICAgICAgICAgaGFuZGxlOworICAgICBnbG9idXNfZ2Fzc19jb3B5X3BlcmZvcm1hbmNl X2NiX3QgICAgICAgY2FsbGJhY2s7CistICAgIAorKworICAgICBwZXJmX2luZm8gPSAoZ2xvYnVz X2dhc3NfY29weV9wZXJmX2luZm9fdCAqKSB1c2VyX2FyZzsKKyAKKyAgICAgZ2xvYnVzX211dGV4 X2xvY2soJnBlcmZfaW5mby0+bG9jayk7CitAQCAtMTMxMSwzNyArMTMxMSwzNyBAQCBnbG9idXNf bF9nYXNzX2NvcHlfcGVyZl9sb2NhbF9jYigKKyAgICAgICAgIEdsb2J1c1RpbWVBYnN0aW1lR2V0 Q3VycmVudCh0aW1lYnVmKTsKKyAgICAgICAgIEdsb2J1c1RpbWVBYnN0aW1lR2V0KHRpbWVidWYs IHNlY3MsIHVzZWNzKTsKKyAgICAgICAgIHRpbWVfbm93ID0gc2VjcyArICh1c2VjcyAvIDEwMDAw MDAuMCk7CistICAgICAgICAKKysKKyAgICAgICAgIGJ5dGVzX25vdyA9IHBlcmZfaW5mby0+bGl2 ZV9ieXRlczsKKy0gICAgCisrCisgICAgICAgICB0aW1lX2VsYXBzZWQgPSB0aW1lX25vdyAtIHBl cmZfaW5mby0+cHJldl90aW1lOworICAgICAgICAgaWYodGltZV9lbGFwc2VkIDwgMC4xKQorICAg ICAgICAgeworICAgICAgICAgICAgIC8qIHNob3VsZG50IGJlIHBvc3NpYmxlIChjYWxsYmFjayBk ZWxheSBpcyAyIHNlY3MpICovCisgICAgICAgICAgICAgdGltZV9lbGFwc2VkID0gMC4xOworICAg ICAgICAgfQorLSAgICAKKysKKyAgICAgICAgIGluc3RhbnRhbmVvdXNfdGhyb3VnaHB1dCA9Cisg ICAgICAgICAgICAgKGJ5dGVzX25vdyAtIHBlcmZfaW5mby0+cHJldl9ieXRlcykgLworICAgICAg ICAgICAgIHRpbWVfZWxhcHNlZDsKKy0gICAgCisrCisgICAgICAgICB0aW1lX2VsYXBzZWQgPSB0 aW1lX25vdyAtIHBlcmZfaW5mby0+c3RhcnRfdGltZTsKKyAgICAgICAgIGlmKHRpbWVfZWxhcHNl ZCA8IDAuMSkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICAvKiBzaG91bGRudCBiZSBwb3NzaWJs ZSAoY2FsbGJhY2sgZGVsYXkgaXMgMiBzZWNzKSAqLworICAgICAgICAgICAgIHRpbWVfZWxhcHNl ZCA9IDAuMTsKKyAgICAgICAgIH0KKy0gICAgCisrCisgICAgICAgICBhdmdfdGhyb3VnaHB1dCA9 CisgICAgICAgICAgICAgYnl0ZXNfbm93IC8KKyAgICAgICAgICAgICB0aW1lX2VsYXBzZWQ7Cist ICAgIAorKworICAgICAgICAgcGVyZl9pbmZvLT5wcmV2X3RpbWUgPSB0aW1lX25vdzsKKyAgICAg ICAgIHBlcmZfaW5mby0+cHJldl9ieXRlcyA9IGJ5dGVzX25vdzsKKy0gICAgICAgIAorKworICAg ICAgICAgaGFuZGxlID0gcGVyZl9pbmZvLT5jb3B5X2hhbmRsZTsKKyAgICAgICAgIHVzZXJfYXJn ID0gcGVyZl9pbmZvLT51c2VyX2FyZzsKKy0gICAgICAgIAorKworICAgICAgICAgY2FsbGJhY2sg PSBwZXJmX2luZm8tPmNhbGxiYWNrOworICAgICB9CisgICAgIGdsb2J1c19tdXRleF91bmxvY2so JnBlcmZfaW5mby0+bG9jayk7CitAQCAtMTM4NSwxMSArMTM4NSwxMSBAQCBnbG9idXNfbF9nYXNz X2NvcHlfcGVyZl9zZXR1cF9sb2NhbF9jYWxsYmFjaygKKyAgICAgZ2xvYnVzX2Fic3RpbWVfdCAg ICAgICAgICAgICAgICAgICAgICAgIHRpbWVidWY7CisgICAgIGxvbmcgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWNzOworICAgICBsb25nICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdXNlY3M7CistICAgIAorKworICAgICBHbG9idXNUaW1lQWJzdGltZUdl dEN1cnJlbnQodGltZWJ1Zik7CisgICAgIEdsb2J1c1RpbWVBYnN0aW1lR2V0KHRpbWVidWYsIHNl Y3MsIHVzZWNzKTsKKyAgICAgcGVyZl9pbmZvLT5zdGFydF90aW1lID0gc2VjcyArICh1c2VjcyAv IDEwMDAwMDAuMCk7CistICAgIAorKworICAgICBwZXJmX2luZm8tPnByZXZfdGltZSA9IHBlcmZf aW5mby0+c3RhcnRfdGltZTsKKyAgICAgcGVyZl9pbmZvLT5wcmV2X2J5dGVzID0gMDsKKyAgICAg cGVyZl9pbmZvLT5saXZlX2J5dGVzID0gMDsKK0BAIC0xNTEzLDcgKzE1MTMsNyBAQCBnbG9idXNf bF9nYXNzX2NvcHlfZnRwX3JlYWRfY2FsbGJhY2soCisgICAgIGdsb2J1c19ieXRlX3QgKiAgICAg ICAgICAgICAgICAgYnl0ZXMsCisgICAgIGdsb2J1c19zaXplX3QgICAgICAgICAgICAgICAgICAg bmJ5dGVzLAorICAgICBnbG9idXNfb2ZmX3QgICAgICAgICAgICAgICAgICAgIG9mZnNldCwKKy0g ICAgZ2xvYnVzX2Jvb2xfdAkJICAgIGVvZik7CisrICAgIGdsb2J1c19ib29sX3QgICAgICAgICAg ICAgICAgICAgZW9mKTsKKyAKKyBnbG9idXNfcmVzdWx0X3QKKyBnbG9idXNfbF9nYXNzX2NvcHlf aW9fc2V0dXBfZ2V0KAorQEAgLTE1MzUsMTMgKzE1MzUsMTMgQEAgdm9pZAorIGdsb2J1c19sX2dh c3NfY29weV9mdHBfZ2V0X2RvbmVfY2FsbGJhY2soCisgICAgIHZvaWQgKiBjYWxsYmFja19hcmcs CisgICAgIGdsb2J1c19mdHBfY2xpZW50X2hhbmRsZV90ICogaGFuZGxlLAorLSAgICBnbG9idXNf b2JqZWN0X3QgKgkgICAgICAgZXJyb3IpOworKyAgICBnbG9idXNfb2JqZWN0X3QgKiAgICAgICAg ICBlcnJvcik7CisgCisgdm9pZAorIGdsb2J1c19sX2dhc3NfY29weV9mdHBfcHV0X2RvbmVfY2Fs bGJhY2soCisgICAgIHZvaWQgKiBjYWxsYmFja19hcmcsCisgICAgIGdsb2J1c19mdHBfY2xpZW50 X2hhbmRsZV90ICogaGFuZGxlLAorLSAgICBnbG9idXNfb2JqZWN0X3QgKgkgICAgICAgZXJyb3Ip OworKyAgICBnbG9idXNfb2JqZWN0X3QgKiAgICAgICAgICBlcnJvcik7CisgCisgdm9pZAorIGds b2J1c19sX2dhc3NfY29weV9pb19jYW5jZWxfY2FsbGJhY2soCitAQCAtMTU4Nyw3ICsxNTg3LDcg QEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2Z0cF93cml0ZV9jYWxsYmFjaygKKyAgICAgZ2xvYnVzX2J5 dGVfdCAqICAgICAgICAgICAgICBieXRlcywKKyAgICAgZ2xvYnVzX3NpemVfdCAgICAgICAgICAg ICAgICBuYnl0ZXMsCisgICAgIGdsb2J1c19vZmZfdCAgICAgICAgICAgICAgICAgb2Zmc2V0LAor LSAgICBnbG9idXNfYm9vbF90CQkgZW9mKTsKKysgICAgZ2xvYnVzX2Jvb2xfdCAgICAgICAgICAg ICAgICBlb2YpOworIAorIGdsb2J1c19yZXN1bHRfdAorIGdsb2J1c19pX2dhc3NfY29weV9hdHRy X2R1cGxpY2F0ZShnbG9idXNfZ2Fzc19jb3B5X2F0dHJfdCAqKiBhdHRyKTsKK0BAIC0xNjYxLDUw ICsxNjYxLDUwIEBAIGdsb2J1c19nYXNzX2NvcHlfZ2V0X3N0YXR1cygKKyAgICAgc3RhdGljIGNo YXIgKiBteW5hbWU9Imdsb2J1c19nYXNzX2NvcHlfZ2V0X3N0YXR1cyI7CisgICAgIGlmKGhhbmRs ZSAhPSBHTE9CVVNfTlVMTCkKKyAgICAgeworLQlzd2l0Y2goaGFuZGxlLT5zdGF0dXMpCistCXsK Ky0JY2FzZSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19OT05FOgorLQkgICAgKnN0YXR1cyA9IEdM T0JVU19HQVNTX0NPUFlfU1RBVFVTX05PTkU7CistCSAgICBicmVhazsKKy0JY2FzZSBHTE9CVVNf R0FTU19DT1BZX1NUQVRVU19JTklUSUFMOgorLQljYXNlIEdMT0JVU19HQVNTX0NPUFlfU1RBVFVT X1NPVVJDRV9SRUFEWToKKy0JICAgICpzdGF0dXMgPSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19Q RU5ESU5HOworLQkgICAgYnJlYWs7CistCWNhc2UgR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfVFJB TlNGRVJfSU5fUFJPR1JFU1M6CistCWNhc2UgR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfUkVBRF9D T01QTEVURToKKy0JY2FzZSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19XUklURV9DT01QTEVURToK Ky0JY2FzZSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19ET05FOgorLQkgICAgKnN0YXR1cyA9IEdM T0JVU19HQVNTX0NPUFlfU1RBVFVTX1RSQU5TRkVSX0lOX1BST0dSRVNTOworLQkgICAgYnJlYWs7 CistCWNhc2UgR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfRkFJTFVSRToKKy0JICAgICpzdGF0dXMg PSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19GQUlMVVJFOworLQkgICAgYnJlYWs7CistCWNhc2Ug R0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfQ0FOQ0VMOgorLQkgICAgKnN0YXR1cyA9IEdMT0JVU19H QVNTX0NPUFlfU1RBVFVTX0NBTkNFTDsKKy0JICAgIGJyZWFrOworLQljYXNlIEdMT0JVU19HQVNT X0NPUFlfU1RBVFVTX0RPTkVfU1VDQ0VTUzoKKy0JICAgICpzdGF0dXMgPSBHTE9CVVNfR0FTU19D T1BZX1NUQVRVU19ET05FX1NVQ0NFU1M7CistCSAgICBicmVhazsKKy0JY2FzZSBHTE9CVVNfR0FT U19DT1BZX1NUQVRVU19ET05FX0ZBSUxVUkU6CistCSAgICAqc3RhdHVzID0gR0xPQlVTX0dBU1Nf Q09QWV9TVEFUVVNfRE9ORV9GQUlMVVJFOworLQkgICAgYnJlYWs7CistCWNhc2UgR0xPQlVTX0dB U1NfQ09QWV9TVEFUVVNfRE9ORV9DQU5DRUxMRUQ6CistCSAgICAqc3RhdHVzID0gR0xPQlVTX0dB U1NfQ09QWV9TVEFUVVNfRE9ORV9DQU5DRUxMRUQ7CistCSAgICBicmVhazsKKy0JZGVmYXVsdDoK Ky0JICAgIGJyZWFrOworLQl9CistCXJldHVybiBHTE9CVVNfU1VDQ0VTUzsKKysgICAgICAgIHN3 aXRjaChoYW5kbGUtPnN0YXR1cykKKysgICAgICAgIHsKKysgICAgICAgIGNhc2UgR0xPQlVTX0dB U1NfQ09QWV9TVEFUVVNfTk9ORToKKysgICAgICAgICAgICAqc3RhdHVzID0gR0xPQlVTX0dBU1Nf Q09QWV9TVEFUVVNfTk9ORTsKKysgICAgICAgICAgICBicmVhazsKKysgICAgICAgIGNhc2UgR0xP QlVTX0dBU1NfQ09QWV9TVEFUVVNfSU5JVElBTDoKKysgICAgICAgIGNhc2UgR0xPQlVTX0dBU1Nf Q09QWV9TVEFUVVNfU09VUkNFX1JFQURZOgorKyAgICAgICAgICAgICpzdGF0dXMgPSBHTE9CVVNf R0FTU19DT1BZX1NUQVRVU19QRU5ESU5HOworKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAg Y2FzZSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19UUkFOU0ZFUl9JTl9QUk9HUkVTUzoKKysgICAg ICAgIGNhc2UgR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfUkVBRF9DT01QTEVURToKKysgICAgICAg IGNhc2UgR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfV1JJVEVfQ09NUExFVEU6CisrICAgICAgICBj YXNlIEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0RPTkU6CisrICAgICAgICAgICAgKnN0YXR1cyA9 IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX1RSQU5TRkVSX0lOX1BST0dSRVNTOworKyAgICAgICAg ICAgIGJyZWFrOworKyAgICAgICAgY2FzZSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19GQUlMVVJF OgorKyAgICAgICAgICAgICpzdGF0dXMgPSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19GQUlMVVJF OworKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgY2FzZSBHTE9CVVNfR0FTU19DT1BZX1NU QVRVU19DQU5DRUw6CisrICAgICAgICAgICAgKnN0YXR1cyA9IEdMT0JVU19HQVNTX0NPUFlfU1RB VFVTX0NBTkNFTDsKKysgICAgICAgICAgICBicmVhazsKKysgICAgICAgIGNhc2UgR0xPQlVTX0dB U1NfQ09QWV9TVEFUVVNfRE9ORV9TVUNDRVNTOgorKyAgICAgICAgICAgICpzdGF0dXMgPSBHTE9C VVNfR0FTU19DT1BZX1NUQVRVU19ET05FX1NVQ0NFU1M7CisrICAgICAgICAgICAgYnJlYWs7Cisr ICAgICAgICBjYXNlIEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0RPTkVfRkFJTFVSRToKKysgICAg ICAgICAgICAqc3RhdHVzID0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfRE9ORV9GQUlMVVJFOwor KyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgY2FzZSBHTE9CVVNfR0FTU19DT1BZX1NUQVRV U19ET05FX0NBTkNFTExFRDoKKysgICAgICAgICAgICAqc3RhdHVzID0gR0xPQlVTX0dBU1NfQ09Q WV9TVEFUVVNfRE9ORV9DQU5DRUxMRUQ7CisrICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICBk ZWZhdWx0OgorKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKyAgICAgICAgcmV0dXJu IEdMT0JVU19TVUNDRVNTOworICAgICB9CisgICAgIGVsc2UKKyAgICAgeworLQllcnIgPSBnbG9i dXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKy0JICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxF LAorLQkgICAgR0xPQlVTX05VTEwsCistCSAgICAiWyVzXTogQkFEX1BBUkFNRVRFUiwgaGFuZGxl IGlzIE5VTEwiLAorLQkgICAgbXluYW1lKTsKKysgICAgICAgIGVyciA9IGdsb2J1c19lcnJvcl9j b25zdHJ1Y3Rfc3RyaW5nKAorKyAgICAgICAgICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAor KyAgICAgICAgICAgIEdMT0JVU19OVUxMLAorKyAgICAgICAgICAgICJbJXNdOiBCQURfUEFSQU1F VEVSLCBoYW5kbGUgaXMgTlVMTCIsCisrICAgICAgICAgICAgbXluYW1lKTsKKyAKKy0JcmV0dXJu IGdsb2J1c19lcnJvcl9wdXQoZXJyKTsKKysgICAgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0 KGVycik7CisgICAgIH0KKyB9IC8qIGdsb2J1c19nYXNzX2NvcHlfZ2V0X3N0YXR1cygpICovCisg CitAQCAtMTc2NSw3ICsxNzY1LDcgQEAgc3RhdGljIGNoYXIgKgorICAgfQorICAgZWxzZQorICAg eworLQlyZXR1cm4gIltnbG9idXNfZ2Fzc19jb3B5X2dldF9zdGF0dXNfc3RyaW5nXTogQkFEX1BB UkFNRVRFUiwgaGFuZGxlIGlzIE5VTEwiOworKyAgICAgICAgcmV0dXJuICJbZ2xvYnVzX2dhc3Nf Y29weV9nZXRfc3RhdHVzX3N0cmluZ106IEJBRF9QQVJBTUVURVIsIGhhbmRsZSBpcyBOVUxMIjsK KyAgIH0KKyB9CisgCitAQCAtMTc4MSw3ICsxNzgxLDcgQEAgZ2xvYnVzX2lfZ2Fzc19jb3B5X2Z0 cF9jbGllbnRfb3BfZG9uZV9jYWxsYmFjaygKKyAgICAgZ2xvYnVzX2lfZ2Fzc19jb3B5X21vbml0 b3JfdCAqICAgICAgbW9uaXRvcjsKKyAKKyAgICAgbW9uaXRvciA9IChnbG9idXNfaV9nYXNzX2Nv cHlfbW9uaXRvcl90ICopIHVzZXJfYXJnOworLSAgICAgICAgICAgCisrCisgICAgIGdsb2J1c19t dXRleF9sb2NrKCZtb25pdG9yLT5tdXRleCk7CisgICAgIGlmIChlcnIgJiYgIW1vbml0b3ItPmVy cikKKyAgICAgeworQEAgLTE3OTAsNyArMTc5MCw3IEBAIGdsb2J1c19pX2dhc3NfY29weV9mdHBf Y2xpZW50X29wX2RvbmVfY2FsbGJhY2soCisgICAgIG1vbml0b3ItPmRvbmUgPSBHTE9CVVNfVFJV RTsKKyAgICAgZ2xvYnVzX2NvbmRfc2lnbmFsKCZtb25pdG9yLT5jb25kKTsKKyAgICAgZ2xvYnVz X211dGV4X3VubG9jaygmbW9uaXRvci0+bXV0ZXgpOworLSAgICAKKysKKyAgICAgcmV0dXJuOwor IH0KKyAKK0BAIC0xODAzLDE5ICsxODAzLDE5IEBAIGdsb2J1c19sX2dhc3NfY29weV9zaXplX2Z0 cCgKKyB7CisgICAgIGdsb2J1c19pX2dhc3NfY29weV9tb25pdG9yX3QgICAgICAgIG1vbml0b3I7 CisgICAgIGdsb2J1c19yZXN1bHRfdCAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDsKKy0gICAg CisrCisgICAgIG1lbXNldCgmbW9uaXRvciwgMCwgc2l6ZW9mKGdsb2J1c19pX2dhc3NfY29weV9t b25pdG9yX3QpKTsKKyAKKyAgICAgZ2xvYnVzX2NvbmRfaW5pdCgmbW9uaXRvci5jb25kLCBHTE9C VVNfTlVMTCk7CisgICAgIGdsb2J1c19tdXRleF9pbml0KCZtb25pdG9yLm11dGV4LCBHTE9CVVNf TlVMTCk7CistICAgICAgICAKKysKKyAgICAgcmVzdWx0ID0gZ2xvYnVzX2Z0cF9jbGllbnRfc2l6 ZSgKKyAgICAgICAgICZoYW5kbGUtPmZ0cF9oYW5kbGUsCisgICAgICAgICB1cmwsCisgICAgICAg ICBhdHRyLT5mdHBfYXR0ciwKKyAgICAgICAgIG91dF9zaXplLAorICAgICAgICAgZ2xvYnVzX2lf Z2Fzc19jb3B5X2Z0cF9jbGllbnRfb3BfZG9uZV9jYWxsYmFjaywKKy0gICAgICAgICZtb25pdG9y KTsgICAgCisrICAgICAgICAmbW9uaXRvcik7CisgICAgIGlmKHJlc3VsdCAhPSBHTE9CVVNfU1VD Q0VTUykKKyAgICAgeworICAgICAgICAgZ290byBlcnJvcjsKK0BAIC0xODMzLDcgKzE4MzMsNyBA QCBnbG9idXNfbF9nYXNzX2NvcHlfc2l6ZV9mdHAoCisgICAgICAgICByZXN1bHQgPSBnbG9idXNf ZXJyb3JfcHV0KG1vbml0b3IuZXJyKTsKKyAgICAgICAgIG1vbml0b3IuZXJyID0gR0xPQlVTX05V TEw7CisgICAgIH0KKy0gICAgCisrCisgICAgIGlmKHJlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykK KyAgICAgeworICAgICAgICAgZ290byBlcnJvcjsKK0BAIC0xODYyLDcgKzE4NjIsNyBAQCBnbG9i dXNfbF9nYXNzX2NvcHlfc2l6ZV9maWxlKAorICAgICBnbG9idXNfdXJsX3QgICAgICAgICAgICAg ICAgICAgICAgICBwYXJzZWRfdXJsOworICAgICBnbG9idXNfcmVzdWx0X3QgICAgICAgICAgICAg ICAgICAgICByZXN1bHQ7CisgICAgIHN0cnVjdCBzdGF0ICAgICAgICAgICAgICAgICAgICAgICAg IHN0YXRfYnVmOworLSAgICAKKysKKyAgICAgcmMgPSBnbG9idXNfdXJsX3BhcnNlKHVybCwgJnBh cnNlZF91cmwpOworICAgICBpZihyYyAhPSAwKQorICAgICB7CitAQCAtMTg3Niw3ICsxODc2LDcg QEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X3NpemVfZmlsZSgKKyAgICAgICAgICAgICAgICAgcmMpKTsK KyAgICAgICAgIGdvdG8gZXJyb3JfdXJsOworICAgICB9CistICAgIAorKworICAgICBpZihwYXJz ZWRfdXJsLnVybF9wYXRoID09IEdMT0JVU19OVUxMKQorICAgICB7CisgICAgICAgICByZXN1bHQg PSBnbG9idXNfZXJyb3JfcHV0KAorQEAgLTE4ODgsNyArMTg4OCw3IEBAIGdsb2J1c19sX2dhc3Nf Y29weV9zaXplX2ZpbGUoCisgICAgICAgICAgICAgICAgIG15bmFtZSkpOworICAgICAgICAgZ290 byBlcnJvcl9udWxsX3BhdGg7CisgICAgIH0KKy0gICAgCisrCisgICAgIHJjID0gc3RhdChwYXJz ZWRfdXJsLnVybF9wYXRoLCAmc3RhdF9idWYpOworICAgICBpZihyYyAhPSAwKQorICAgICB7CitA QCAtMTkwMiwyMCArMTkwMiwyMCBAQCBnbG9idXNfbF9nYXNzX2NvcHlfc2l6ZV9maWxlKAorICAg ICAgICAgICAgICAgICByYykpOworICAgICAgICAgZ290byBlcnJvcl9zdGF0OworICAgICB9Cist ICAgCisrCisgICAgICpvdXRfc2l6ZSA9IHN0YXRfYnVmLnN0X3NpemU7CistICAgIAorLSAgICBn bG9idXNfdXJsX2Rlc3Ryb3koJnBhcnNlZF91cmwpOyAKKysKKysgICAgZ2xvYnVzX3VybF9kZXN0 cm95KCZwYXJzZWRfdXJsKTsKKyAgICAgcmV0dXJuIEdMT0JVU19TVUNDRVNTOworIAorLWVycm9y X3N0YXQ6ICAgIAorK2Vycm9yX3N0YXQ6CisgZXJyb3JfbnVsbF9wYXRoOgorICAgICBnbG9idXNf dXJsX2Rlc3Ryb3koJnBhcnNlZF91cmwpOworLSAgICAKKysKKyBlcnJvcl91cmw6CisgCisgICAg IHJldHVybiByZXN1bHQ7CistICAgIAorKworIH0KKyAKKyAKK0BAIC0xOTI5LDEzICsxOTI5LDEz IEBAIGdsb2J1c19pX2dhc3NfY29weV9zaXplKAorICAgICBzdGF0aWMgY2hhciAqIG15bmFtZT0i Z2xvYnVzX2lfZ2Fzc19jb3B5X3NpemUiOworICAgICBnbG9idXNfcmVzdWx0X3QgICAgICAgICAg ICAgICAgICAgICByZXN1bHQ7CisgICAgIGdsb2J1c19nYXNzX2NvcHlfdXJsX21vZGVfdCAgICAg ICAgIHVybF9tb2RlOworLSAgICAKKysKKyAgICAgcmVzdWx0ID0gZ2xvYnVzX2dhc3NfY29weV9n ZXRfdXJsX21vZGUodXJsLCAmdXJsX21vZGUpOworICAgICBpZihyZXN1bHQgIT0gR0xPQlVTX1NV Q0NFU1MpCisgICAgIHsKKyAgICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKKyAgICAgfQorLSAgICAK KysKKyAgICAgaWYodXJsX21vZGUgPT0gR0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9GVFApCisg ICAgIHsKKyAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19sX2dhc3NfY29weV9zaXplX2Z0cChoYW5k bGUsIHVybCwgYXR0ciwgb3V0X3NpemUpOworQEAgLTE5NjQsOSArMTk2NCw5IEBAIGdsb2J1c19p X2dhc3NfY29weV9zaXplKAorICAgICAgICAgICAgICAgICB1cmwpKTsKKyAgICAgICAgIGdvdG8g ZXJyb3JfZXhpdDsKKyAgICAgfQorLSAgICAKKysKKyAgICAgcmV0dXJuIEdMT0JVU19TVUNDRVNT OworLSAgICAKKysKKyBlcnJvcl9leGl0OgorICAgICByZXR1cm4gcmVzdWx0OworIH0KK0BAIC0x OTk1LDkxICsxOTk1LDkxIEBAIGdsb2J1c19sX2dhc3NfY29weV90YXJnZXRfcG9wdWxhdGUoCisg CisgICAgIGlmKGF0dHIgPT0gR0xPQlVTX05VTEwpCisgICAgIHsKKy0JdGFyZ2V0LT5mcmVlX2F0 dHIgPSBHTE9CVVNfVFJVRTsKKy0JdG1wX2F0dHIgPSAoZ2xvYnVzX2dhc3NfY29weV9hdHRyX3Qg KikKKysgICAgICAgIHRhcmdldC0+ZnJlZV9hdHRyID0gR0xPQlVTX1RSVUU7CisrICAgICAgICB0 bXBfYXR0ciA9IChnbG9idXNfZ2Fzc19jb3B5X2F0dHJfdCAqKQorICAgICAgICAgICAgICAgICAg ICBnbG9idXNfbGliY19tYWxsb2Moc2l6ZW9mKGdsb2J1c19nYXNzX2NvcHlfYXR0cl90KSk7Cisg CistCWlmKHRtcF9hdHRyID09IEdMT0JVU19OVUxMKQorLQl7CistCSAgICBlcnIgPSBnbG9idXNf ZXJyb3JfY29uc3RydWN0X3N0cmluZygKKy0JCUdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorLQkJ R0xPQlVTX05VTEwsCistCQkiWyVzXTogZmFpbGVkIG1hbGxvYyBhIGdsb2J1c19nYXNzX2NvcHlf YXR0cl90IHN0cnVjdHVyZSBzdWNjZXNzZnVsbHkiLAorLQkJbXluYW1lKTsKKy0JICAgIHJldHVy biBnbG9idXNfZXJyb3JfcHV0KGVycik7CistCX0KKysgICAgICAgIGlmKHRtcF9hdHRyID09IEdM T0JVU19OVUxMKQorKyAgICAgICAgeworKyAgICAgICAgICAgIGVyciA9IGdsb2J1c19lcnJvcl9j b25zdHJ1Y3Rfc3RyaW5nKAorKyAgICAgICAgICAgICAgICBHTE9CVVNfR0FTU19DT1BZX01PRFVM RSwKKysgICAgICAgICAgICAgICAgR0xPQlVTX05VTEwsCisrICAgICAgICAgICAgICAgICJbJXNd OiBmYWlsZWQgbWFsbG9jIGEgZ2xvYnVzX2dhc3NfY29weV9hdHRyX3Qgc3RydWN0dXJlIHN1Y2Nl c3NmdWxseSIsCisrICAgICAgICAgICAgICAgIG15bmFtZSk7CisrICAgICAgICAgICAgcmV0dXJu IGdsb2J1c19lcnJvcl9wdXQoZXJyKTsKKysgICAgICAgIH0KKyAKKy0JZ2xvYnVzX2dhc3NfY29w eV9hdHRyX2luaXQodG1wX2F0dHIpOworKyAgICAgICAgZ2xvYnVzX2dhc3NfY29weV9hdHRyX2lu aXQodG1wX2F0dHIpOworIAorLQlhdHRyID0gdG1wX2F0dHI7CisrICAgICAgICBhdHRyID0gdG1w X2F0dHI7CisgICAgIH0KKyAgICAgZWxzZQorLQl0YXJnZXQtPmZyZWVfYXR0ciA9IEdMT0JVU19G QUxTRTsKKysgICAgICAgIHRhcmdldC0+ZnJlZV9hdHRyID0gR0xPQlVTX0ZBTFNFOworIAorICAg ICB0YXJnZXQtPm1vZGUgPSAqdXJsX21vZGU7CisgICAgIHN3aXRjaCAodGFyZ2V0LT5tb2RlKQor ICAgICB7CisgICAgIGNhc2UgR0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9GVFA6CisgCistCS8q IHdpbGwgYmUgc2V0IHRvIGZhbHNlIG9uY2UgSSBzdGFydCBhbiBvcGVyYXRpb24gdGhhdCB3aWxs IGdldCBhCistCSAgIGNvbXBsZXRpb24gY2FsbGJhY2sgKi8KKy0JdGFyZ2V0LT5kYXRhLmZ0cC5j b21wbGV0ZWQgPSBHTE9CVVNfVFJVRTsgCistCXRhcmdldC0+dXJsID0gZ2xvYnVzX2xpYmNfc3Ry ZHVwKHVybCk7CistCXRhcmdldC0+YXR0ciA9IGF0dHI7CistCS8qIEZJWFggbl9zaW11bHRhbmVv dXMgc2hvdWxkIGJlIHB1bGxlZCBmcm9tIGF0dHJpYnV0ZXMsIG9yIHNvbWV0aGluZyAqLworLQlp ZihhdHRyLT5mdHBfYXR0cikKKy0JeworLQkgICAgZ2xvYnVzX2Z0cF9jb250cm9sX3BhcmFsbGVs aXNtX3QgIHRtcF9wYXJhbGxlbGlzbTsKKy0JICAgIGdsb2J1c19mdHBfY2xpZW50X29wZXJhdGlv bmF0dHJfZ2V0X3BhcmFsbGVsaXNtKGF0dHItPmZ0cF9hdHRyLCAmdG1wX3BhcmFsbGVsaXNtKTsK Ky0JICAgIGlmKHRtcF9wYXJhbGxlbGlzbS5tb2RlID09IEdMT0JVU19GVFBfQ09OVFJPTF9QQVJB TExFTElTTV9GSVhFRCkKKy0JICAgIHsKKy0jaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVH CistCQlnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwgInRtcF9wYXJhbGxlbGlzbS5tb2RlPT0g R0xPQlVTX0ZUUF9DT05UUk9MX1BBUkFMTEVMSVNNX0ZJWEVELCB0bXBfcGFyYWxsZWxpc20uZml4 ZWQuc2l6ZSA9ICVkXG4iLCB0bXBfcGFyYWxsZWxpc20uZml4ZWQuc2l6ZSk7CistI2VuZGlmCist CQl0YXJnZXQtPm5fc2ltdWx0YW5lb3VzID0gdG1wX3BhcmFsbGVsaXNtLmZpeGVkLnNpemU7Cist CQkvKnRhcmdldC0+bl9zaW11bHRhbmVvdXMgPSAxOyovCistCSAgICB9CistCSAgICBlbHNlCist CQl0YXJnZXQtPm5fc2ltdWx0YW5lb3VzID0gMTsKKy0JfQorLQllbHNlCistCXsKKy0JICAgIHRh cmdldC0+bl9zaW11bHRhbmVvdXMgPSAxOworLQkgICAgLypnbG9idXNfbGliY19mcHJpbnRmKHN0 ZGVyciwgIioqKiogIHRhcmdldC0+bl9zaW11bHRhbmVvdXM6ICVkXG4iLHRhcmdldC0+bl9zaW11 bHRhbmVvdXMpOyAqLworLQl9CistCWJyZWFrOworKyAgICAgICAgLyogd2lsbCBiZSBzZXQgdG8g ZmFsc2Ugb25jZSBJIHN0YXJ0IGFuIG9wZXJhdGlvbiB0aGF0IHdpbGwgZ2V0IGEKKysgICAgICAg ICAgIGNvbXBsZXRpb24gY2FsbGJhY2sgKi8KKysgICAgICAgIHRhcmdldC0+ZGF0YS5mdHAuY29t cGxldGVkID0gR0xPQlVTX1RSVUU7CisrICAgICAgICB0YXJnZXQtPnVybCA9IGdsb2J1c19saWJj X3N0cmR1cCh1cmwpOworKyAgICAgICAgdGFyZ2V0LT5hdHRyID0gYXR0cjsKKysgICAgICAgIC8q IEZJWFggbl9zaW11bHRhbmVvdXMgc2hvdWxkIGJlIHB1bGxlZCBmcm9tIGF0dHJpYnV0ZXMsIG9y IHNvbWV0aGluZyAqLworKyAgICAgICAgaWYoYXR0ci0+ZnRwX2F0dHIpCisrICAgICAgICB7Cisr ICAgICAgICAgICAgZ2xvYnVzX2Z0cF9jb250cm9sX3BhcmFsbGVsaXNtX3QgIHRtcF9wYXJhbGxl bGlzbTsKKysgICAgICAgICAgICBnbG9idXNfZnRwX2NsaWVudF9vcGVyYXRpb25hdHRyX2dldF9w YXJhbGxlbGlzbShhdHRyLT5mdHBfYXR0ciwgJnRtcF9wYXJhbGxlbGlzbSk7CisrICAgICAgICAg ICAgaWYodG1wX3BhcmFsbGVsaXNtLm1vZGUgPT0gR0xPQlVTX0ZUUF9DT05UUk9MX1BBUkFMTEVM SVNNX0ZJWEVEKQorKyAgICAgICAgICAgIHsKKysjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RF QlVHCisrICAgICAgICAgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAidG1wX3Bh cmFsbGVsaXNtLm1vZGU9PSBHTE9CVVNfRlRQX0NPTlRST0xfUEFSQUxMRUxJU01fRklYRUQsIHRt cF9wYXJhbGxlbGlzbS5maXhlZC5zaXplID0gJWRcbiIsIHRtcF9wYXJhbGxlbGlzbS5maXhlZC5z aXplKTsKKysjZW5kaWYKKysgICAgICAgICAgICAgICAgdGFyZ2V0LT5uX3NpbXVsdGFuZW91cyA9 IHRtcF9wYXJhbGxlbGlzbS5maXhlZC5zaXplOworKyAgICAgICAgICAgICAgICAvKnRhcmdldC0+ bl9zaW11bHRhbmVvdXMgPSAxOyovCisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIGVsc2UK KysgICAgICAgICAgICAgICAgdGFyZ2V0LT5uX3NpbXVsdGFuZW91cyA9IDE7CisrICAgICAgICB9 CisrICAgICAgICBlbHNlCisrICAgICAgICB7CisrICAgICAgICAgICAgdGFyZ2V0LT5uX3NpbXVs dGFuZW91cyA9IDE7CisrICAgICAgICAgICAgLypnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwg IioqKiogIHRhcmdldC0+bl9zaW11bHRhbmVvdXM6ICVkXG4iLHRhcmdldC0+bl9zaW11bHRhbmVv dXMpOyAqLworKyAgICAgICAgfQorKyAgICAgICAgYnJlYWs7CisgCisgICAgIGNhc2UgR0xPQlVT X0dBU1NfQ09QWV9VUkxfTU9ERV9HQVNTOgorIAorLQkvKnRhcmdldC0+bW9kZSA9IEdMT0JVU19J X0dBU1NfQ09QWV9UQVJHRVRfTU9ERV9HQVNTOyAqLworLQl0YXJnZXQtPnVybCA9IGdsb2J1c19s aWJjX3N0cmR1cCh1cmwpOworLQl0YXJnZXQtPmF0dHIgPSBhdHRyOworLQl0YXJnZXQtPm5fc2lt dWx0YW5lb3VzID0gMTsKKy0JYnJlYWs7CisrICAgICAgICAvKnRhcmdldC0+bW9kZSA9IEdMT0JV U19JX0dBU1NfQ09QWV9UQVJHRVRfTU9ERV9HQVNTOyAqLworKyAgICAgICAgdGFyZ2V0LT51cmwg PSBnbG9idXNfbGliY19zdHJkdXAodXJsKTsKKysgICAgICAgIHRhcmdldC0+YXR0ciA9IGF0dHI7 CisrICAgICAgICB0YXJnZXQtPm5fc2ltdWx0YW5lb3VzID0gMTsKKysgICAgICAgIGJyZWFrOwor IAorICAgICBjYXNlIEdMT0JVU19HQVNTX0NPUFlfVVJMX01PREVfSU86CisgCistCS8qdGFyZ2V0 LT5tb2RlID0gR0xPQlVTX0lfR0FTU19DT1BZX1RBUkdFVF9NT0RFX0lPOyovCistCXRhcmdldC0+ dXJsID0gZ2xvYnVzX2xpYmNfc3RyZHVwKHVybCk7CistCXRhcmdldC0+YXR0ciA9IGF0dHI7Cist CXRhcmdldC0+ZGF0YS5pby5mcmVlX2hhbmRsZSA9IEdMT0JVU19UUlVFOworLQl0YXJnZXQtPmRh dGEuaW8uc2Vla2FibGUgPSBHTE9CVVNfVFJVRTsKKy0JdGFyZ2V0LT5kYXRhLmlvLmhhbmRsZSA9 IEdMT0JVU19OVUxMOworLQl0YXJnZXQtPm5fc2ltdWx0YW5lb3VzID0gMTsKKysgICAgICAgIC8q dGFyZ2V0LT5tb2RlID0gR0xPQlVTX0lfR0FTU19DT1BZX1RBUkdFVF9NT0RFX0lPOyovCisrICAg ICAgICB0YXJnZXQtPnVybCA9IGdsb2J1c19saWJjX3N0cmR1cCh1cmwpOworKyAgICAgICAgdGFy Z2V0LT5hdHRyID0gYXR0cjsKKysgICAgICAgIHRhcmdldC0+ZGF0YS5pby5mcmVlX2hhbmRsZSA9 IEdMT0JVU19UUlVFOworKyAgICAgICAgdGFyZ2V0LT5kYXRhLmlvLnNlZWthYmxlID0gR0xPQlVT X1RSVUU7CisrICAgICAgICB0YXJnZXQtPmRhdGEuaW8uaGFuZGxlID0gR0xPQlVTX05VTEw7Cisr ICAgICAgICB0YXJnZXQtPm5fc2ltdWx0YW5lb3VzID0gMTsKKyAKKy0JYnJlYWs7CisrICAgICAg ICBicmVhazsKKyAKKyAgICAgY2FzZSBHTE9CVVNfR0FTU19DT1BZX1VSTF9NT0RFX1VOU1VQUE9S VEVEOgorLQkvKiBzb21ldGhpbmcgd2VudCBob3JyaWJseSB3cm9uZyAqLworLQllcnIgPSBnbG9i dXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKy0JICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxF LAorLQkgICAgR0xPQlVTX05VTEwsCistCSAgICAiWyVzXTogJXM6IEdMT0JVU19HQVNTX0NPUFlf VVJMX01PREVfVU5TVVBQT1JURUQiLAorLQkgICAgbXluYW1lLAorLQkgICAgdXJsKTsKKy0JcmV0 dXJuIGdsb2J1c19lcnJvcl9wdXQoZXJyKTsKKy0KKy0JYnJlYWs7CQorKyAgICAgICAgLyogc29t ZXRoaW5nIHdlbnQgaG9ycmlibHkgd3JvbmcgKi8KKysgICAgICAgIGVyciA9IGdsb2J1c19lcnJv cl9jb25zdHJ1Y3Rfc3RyaW5nKAorKyAgICAgICAgICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxF LAorKyAgICAgICAgICAgIEdMT0JVU19OVUxMLAorKyAgICAgICAgICAgICJbJXNdOiAlczogR0xP QlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9VTlNVUFBPUlRFRCIsCisrICAgICAgICAgICAgbXluYW1l LAorKyAgICAgICAgICAgIHVybCk7CisrICAgICAgICByZXR1cm4gZ2xvYnVzX2Vycm9yX3B1dChl cnIpOworKworKyAgICAgICAgYnJlYWs7CisgICAgIGRlZmF1bHQ6CisgICAgICAgICBicmVhazsK KyAgICAgfQorQEAgLTIwODgsMTIgKzIwODgsMTIgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X3Rhcmdl dF9wb3B1bGF0ZSgKKyAgICAgICovCisgICAgIGlmIChnbG9idXNfZmlmb19pbml0KCYodGFyZ2V0 LT5xdWV1ZSkpICE9IEdMT0JVU19TVUNDRVNTKQorICAgICB7CistCWVyciA9IGdsb2J1c19lcnJv cl9jb25zdHJ1Y3Rfc3RyaW5nKAorLQkgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCistCSAg ICBHTE9CVVNfTlVMTCwKKy0JICAgICJbJXNdOiBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBmaWZvIHN1 Y2Nlc3NmdWxseSIsCistCSAgICBteW5hbWUpOworLQlyZXR1cm4gZ2xvYnVzX2Vycm9yX3B1dChl cnIpOworKyAgICAgICAgZXJyID0gZ2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCisrICAg ICAgICAgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCisrICAgICAgICAgICAgR0xPQlVTX05V TEwsCisrICAgICAgICAgICAgIlslc106IGZhaWxlZCB0byBpbml0aWFsaXplIGZpZm8gc3VjY2Vz c2Z1bGx5IiwKKysgICAgICAgICAgICBteW5hbWUpOworKyAgICAgICAgcmV0dXJuIGdsb2J1c19l cnJvcl9wdXQoZXJyKTsKKyAgICAgfQorIAorICAgICByZXR1cm4gR0xPQlVTX1NVQ0NFU1M7CitA QCAtMjEyNCwzMCArMjEyNCwzMCBAQCBnbG9idXNfbF9nYXNzX2NvcHlfaW9fdGFyZ2V0X3BvcHVs YXRlKAorICAgICBpZihnbG9idXNfaW9fZ2V0X2hhbmRsZV90eXBlKGlvX2hhbmRsZSkgPT0gR0xP QlVTX0lPX0hBTkRMRV9UWVBFX0ZJTEUpCisgICAgIHsKKyAgICAgICAgIC8qIHRlc3QgZmlsZSBo YW5kbGUgZm9yIHNlZWthYmxlIGFzIGl0IG1heSBiZSBhIHBpcGUgKi8KKy0gICAgICAgIGlmKGds b2J1c19pb19maWxlX3NlZWsoaW9faGFuZGxlLCAwLCBHTE9CVVNfSU9fU0VFS19DVVIpIAorKyAg ICAgICAgaWYoZ2xvYnVzX2lvX2ZpbGVfc2Vlayhpb19oYW5kbGUsIDAsIEdMT0JVU19JT19TRUVL X0NVUikKKyAgICAgICAgICAgICA9PSBHTE9CVVNfU1VDQ0VTUykKKyAgICAgICAgIHsKKy0JICAg IHRhcmdldC0+ZGF0YS5pby5zZWVrYWJsZSA9IEdMT0JVU19UUlVFOworLQl9CistCWVsc2UKKy0J eworLQkgICAgdGFyZ2V0LT5kYXRhLmlvLnNlZWthYmxlID0gR0xPQlVTX0ZBTFNFOworLQl9Cisr ICAgICAgICAgICAgdGFyZ2V0LT5kYXRhLmlvLnNlZWthYmxlID0gR0xPQlVTX1RSVUU7CisrICAg ICAgICB9CisrICAgICAgICBlbHNlCisrICAgICAgICB7CisrICAgICAgICAgICAgdGFyZ2V0LT5k YXRhLmlvLnNlZWthYmxlID0gR0xPQlVTX0ZBTFNFOworKyAgICAgICAgfQorICAgICB9CisgICAg IGVsc2UKKy0JdGFyZ2V0LT5kYXRhLmlvLnNlZWthYmxlID0gR0xPQlVTX0ZBTFNFOworKyAgICAg ICAgdGFyZ2V0LT5kYXRhLmlvLnNlZWthYmxlID0gR0xPQlVTX0ZBTFNFOworICAgICB0YXJnZXQt Pm5fc2ltdWx0YW5lb3VzID0gMTsKKyAKKyAgICAgLyogc2V0dXAgdGhlIHF1ZXVlCisgICAgICAq LworICAgICBpZiAoZ2xvYnVzX2ZpZm9faW5pdCgmKHRhcmdldC0+cXVldWUpKSAhPSBHTE9CVVNf U1VDQ0VTUykKKyAgICAgeworLQllcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygK Ky0JICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorLQkgICAgR0xPQlVTX05VTEwsCistCSAg ICAiWyVzXTogZmFpbGVkIHRvIGluaXRpYWxpemUgZmlmbyBzdWNjZXNzZnVsbHkiLAorLQkgICAg bXluYW1lKTsKKy0JcmV0dXJuIGdsb2J1c19lcnJvcl9wdXQoZXJyKTsKKysgICAgICAgIGVyciA9 IGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorKyAgICAgICAgICAgIEdMT0JVU19HQVNT X0NPUFlfTU9EVUxFLAorKyAgICAgICAgICAgIEdMT0JVU19OVUxMLAorKyAgICAgICAgICAgICJb JXNdOiBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBmaWZvIHN1Y2Nlc3NmdWxseSIsCisrICAgICAgICAg ICAgbXluYW1lKTsKKysgICAgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7CisgICAg IH0KKyAKKyAgICAgcmV0dXJuIEdMT0JVU19TVUNDRVNTOworQEAgLTIxNjYsOSArMjE2Niw5IEBA IGdsb2J1c19sX2dhc3NfY29weV90YXJnZXRfZGVzdHJveSgKKyAgICAgLyogZW1wdHkgYW5kIGZy ZWUgdGhlIHF1ZXVlICovCisgICAgIHdoaWxlKCFnbG9idXNfZmlmb19lbXB0eSgmKHRhcmdldC0+ cXVldWUpKSkKKyAgICAgeworLQlidWZmZXJfZW50cnkgPSBnbG9idXNfZmlmb19kZXF1ZXVlKCYo dGFyZ2V0LT5xdWV1ZSkpOworLQlnbG9idXNfbGliY19mcmVlKGJ1ZmZlcl9lbnRyeS0+Ynl0ZXMp OworLQlnbG9idXNfbGliY19mcmVlKGJ1ZmZlcl9lbnRyeSk7CisrICAgICAgICBidWZmZXJfZW50 cnkgPSBnbG9idXNfZmlmb19kZXF1ZXVlKCYodGFyZ2V0LT5xdWV1ZSkpOworKyAgICAgICAgZ2xv YnVzX2xpYmNfZnJlZShidWZmZXJfZW50cnktPmJ5dGVzKTsKKysgICAgICAgIGdsb2J1c19saWJj X2ZyZWUoYnVmZmVyX2VudHJ5KTsKKyAgICAgfQorICAgICBnbG9idXNfZmlmb19kZXN0cm95KCYo dGFyZ2V0LT5xdWV1ZSkpOworICAgICAvKiBjbGVhbiB1cCB0aGUgbXV0ZXggKi8KK0BAIC0yMTc3 LDQ0ICsyMTc3LDQ0IEBAIGdsb2J1c19sX2dhc3NfY29weV90YXJnZXRfZGVzdHJveSgKKyAgICAg aWYodGFyZ2V0LT5mcmVlX2F0dHIgPT0gR0xPQlVTX1RSVUUpCisgICAgIHsKKyAjaWZkZWYgR0xP QlVTX0lfR0FTU19DT1BZX0RFQlVHCistCWdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAidGFy Z2V0X2Rlc3Ryb3koKTogZnJlZWluZyB0aGUgdGFyZ2V0IGF0dHJcbiIpOworKyAgICAgICAgZ2xv YnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJ0YXJnZXRfZGVzdHJveSgpOiBmcmVlaW5nIHRoZSB0 YXJnZXQgYXR0clxuIik7CisgI2VuZGlmCistCWlmKHRhcmdldC0+bW9kZSA9PSBHTE9CVVNfR0FT U19DT1BZX1VSTF9NT0RFX0ZUUCAmJgorLQkgICB0YXJnZXQtPmZyZWVfZnRwX2F0dHIgPT0gR0xP QlVTX1RSVUUpCistCSAgICBnbG9idXNfbGliY19mcmVlKHRhcmdldC0+YXR0ci0+ZnRwX2F0dHIp OworLQlnbG9idXNfbGliY19mcmVlKHRhcmdldC0+YXR0cik7CisrICAgICAgICBpZih0YXJnZXQt Pm1vZGUgPT0gR0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9GVFAgJiYKKysgICAgICAgICAgIHRh cmdldC0+ZnJlZV9mdHBfYXR0ciA9PSBHTE9CVVNfVFJVRSkKKysgICAgICAgICAgICBnbG9idXNf bGliY19mcmVlKHRhcmdldC0+YXR0ci0+ZnRwX2F0dHIpOworKyAgICAgICAgZ2xvYnVzX2xpYmNf ZnJlZSh0YXJnZXQtPmF0dHIpOworICAgICB9CisgCisgICAgIHN3aXRjaCh0YXJnZXQtPm1vZGUp CisgICAgIHsKKyAgICAgY2FzZSBHTE9CVVNfR0FTU19DT1BZX1VSTF9NT0RFX0ZUUDoKKy0JLyog b25jZSBwYXJhbGxlbCByZWFkcy93cml0ZXMgYXJlIHBvc3NpYmxlLCB3aWxsIGhhdmUgdG8gcG90 ZW50aWFsbHkKKysgICAgICAgIC8qIG9uY2UgcGFyYWxsZWwgcmVhZHMvd3JpdGVzIGFyZSBwb3Nz aWJsZSwgd2lsbCBoYXZlIHRvIHBvdGVudGlhbGx5CisgICAgICAgICAgKiBmcmVlIHRoZSBhdHRy LCBpZiBwYXJhbGxlbGlzbSBpcyB0dXJuZWQgb2ZmIGJ5IHRoZSBsaWJyYXJ5CisgICAgICAgICAg Ki8KKyAKKy0JZ2xvYnVzX2xpYmNfZnJlZSgodGFyZ2V0LT51cmwpKTsKKy0JYnJlYWs7CisrICAg ICAgICBnbG9idXNfbGliY19mcmVlKCh0YXJnZXQtPnVybCkpOworKyAgICAgICAgYnJlYWs7Cisg CisgICAgIGNhc2UgR0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9HQVNTOgorLQlnbG9idXNfbGli Y19mcmVlKCh0YXJnZXQtPnVybCkpOworLQlicmVhazsKKysgICAgICAgIGdsb2J1c19saWJjX2Zy ZWUoKHRhcmdldC0+dXJsKSk7CisrICAgICAgICBicmVhazsKKyAKKyAgICAgY2FzZSBHTE9CVVNf R0FTU19DT1BZX1VSTF9NT0RFX0lPOgorLQlpZih0YXJnZXQtPmRhdGEuaW8uZnJlZV9oYW5kbGUg PT0gR0xPQlVTX1RSVUUpCistCXsKKy0JICAgIGlmKHRhcmdldC0+ZGF0YS5pby5oYW5kbGUpCist CSAgICB7CistCSAgICAgICAgZ2xvYnVzX2xpYmNfZnJlZSgodGFyZ2V0LT5kYXRhLmlvLmhhbmRs ZSkpOworLQkgICAgfQorLQkgICAgZ2xvYnVzX2xpYmNfZnJlZSgodGFyZ2V0LT51cmwpKTsKKy0K Ky0JfQorLQlicmVhazsKKysgICAgICAgIGlmKHRhcmdldC0+ZGF0YS5pby5mcmVlX2hhbmRsZSA9 PSBHTE9CVVNfVFJVRSkKKysgICAgICAgIHsKKysgICAgICAgICAgICBpZih0YXJnZXQtPmRhdGEu aW8uaGFuZGxlKQorKyAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAgZ2xvYnVzX2xpYmNf ZnJlZSgodGFyZ2V0LT5kYXRhLmlvLmhhbmRsZSkpOworKyAgICAgICAgICAgIH0KKysgICAgICAg ICAgICBnbG9idXNfbGliY19mcmVlKCh0YXJnZXQtPnVybCkpOworKworKyAgICAgICAgfQorKyAg ICAgICAgYnJlYWs7CisgICAgIGRlZmF1bHQ6CisgICAgICAgICBicmVhazsKKyAgICAgfQorICAg ICBtZW1zZXQodGFyZ2V0LCAwLCBzaXplb2YoZ2xvYnVzX2lfZ2Fzc19jb3B5X3RhcmdldF90KSk7 CistICAgIAorKworICAgICByZXR1cm4gR0xPQlVTX1NVQ0NFU1M7CisgfSAvKiBnbG91YnNfbF9n YXNzX2NvcHlfdGFyZ2V0X2Rlc3Ryb3koKSAqLworIAorQEAgLTIzMTUsNyArMjMxNSw3IEBAIGds b2J1c19sX2dhc3NfY29weV9zdGF0ZV9mcmVlX3RhcmdldHMoCisgCisgICAgIC8qIGNsZWFuICB1 cCB0aGUgZGVzdGluYXRpb24gdGFyZ2V0ICovCisgICAgIGdsb2J1c19sX2dhc3NfY29weV90YXJn ZXRfZGVzdHJveSgmKHN0YXRlLT5kZXN0KSk7CistICAgIAorKworICAgICByZXR1cm4gR0xPQlVT X1NVQ0NFU1M7CisgCisgfSAvKiBnbG9idXNfbF9nYXNzX2NvcHlfc3RhdGVfZnJlZV90YXJnZXRz KCkgKi8KK0BAIC0yMzU2LDY5ICsyMzU2LDY5IEBAIGdsb2J1c19sX2dhc3NfY29weV90cmFuc2Zl cl9zdGFydCgKKyAjZW5kaWYKKyAKKyAgICAgaWYgKCAgIChzdGF0ZS0+c291cmNlLm1vZGUKKy0J ICAgID09IEdMT0JVU19HQVNTX0NPUFlfVVJMX01PREVfRlRQKQorLQkgICAmJiAoICAgKCAgIChz dGF0ZS0+ZGVzdC5tb2RlCistCQkgICAgICAgPT0gR0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9H QVNTKSApCistCQkgIHx8ICggICAoc3RhdGUtPmRlc3QubW9kZQorLQkJCSAgPT0gR0xPQlVTX0dB U1NfQ09QWV9VUkxfTU9ERV9JTykKKy0JCQkgJiYgKCFzdGF0ZS0+ZGVzdC5kYXRhLmlvLnNlZWth YmxlKSApICkgKQorLSAgICB7CistCS8qCistCSAqIElmIHRoZSBzb3VyY2Ugc3RyZWFtIGlzIGZ0 cCwgdGhpcyBtZWFucyBpdCBpcyBjYXBhYmxlCistCSAqIG9mIHN1cHBvcnRpbmcgbXVsdGlwbGUg ZGF0YSBjaGFubmVscyBhbmQgaGFuZGluZyBiYWNrCistCSAqIGRhdGEgYmxvY2sgaW4gYW4gYXJi aXRyYXJ5IG9yZGVyLgorLQkgKgorLQkgKiBJZiB0aGUgZGVzdGluYXRpb24gc3RyZWFtIGNhbiBv bmx5IGhhbmRsZSBzZXF1ZW50aWFsCistCSAqIHdyaXRlcyBvZiB0aGUgZGF0YSwgdGhlbiBkaXNh YmxlIHRoZSBtdWx0aXBsZSBkYXRhCistCSAqIGNoYW5uZWwgc3VwcG9ydCBpbiBmdHAKKy0JICov CistCWlmKHN0YXRlLT5zb3VyY2UuYXR0ci0+ZnRwX2F0dHIgIT0gR0xPQlVTX05VTEwpCistCXsK Ky0JICAgIGdsb2J1c19mdHBfY29udHJvbF9wYXJhbGxlbGlzbV90ICB0bXBfcGFyYWxsZWxpc207 CistCistCSAgICBnbG9idXNfZnRwX2NsaWVudF9vcGVyYXRpb25hdHRyX2dldF9wYXJhbGxlbGlz bShzdGF0ZS0+c291cmNlLmF0dHItPmZ0cF9hdHRyLCAmdG1wX3BhcmFsbGVsaXNtKTsKKy0KKy0J ICAgIGlmKHRtcF9wYXJhbGxlbGlzbS5tb2RlICE9IEdMT0JVU19GVFBfQ09OVFJPTF9QQVJBTExF TElTTV9OT05FKQorLQkgICAgeworLQkJZ2xvYnVzX2dhc3NfY29weV9hdHRyX3QgKiBuZXdfYXR0 cjsKKy0JCWdsb2J1c19mdHBfY2xpZW50X29wZXJhdGlvbmF0dHJfdCAqIG5ld19mdHBfYXR0cjsK Ky0KKy0JCW5ld19hdHRyID0gKGdsb2J1c19nYXNzX2NvcHlfYXR0cl90ICopCistCQkgICAgZ2xv YnVzX2xpYmNfbWFsbG9jKHNpemVvZihnbG9idXNfZ2Fzc19jb3B5X2F0dHJfdCkpOworLQkJZ2xv YnVzX2dhc3NfY29weV9hdHRyX2luaXQobmV3X2F0dHIpOworLQorLQkJbmV3X2Z0cF9hdHRyID0g KGdsb2J1c19mdHBfY2xpZW50X29wZXJhdGlvbmF0dHJfdCAqKQorLQkJICAgIGdsb2J1c19saWJj X21hbGxvYyhzaXplb2YoZ2xvYnVzX2Z0cF9jbGllbnRfb3BlcmF0aW9uYXR0cl90KSk7CistCist CQlnbG9idXNfZnRwX2NsaWVudF9vcGVyYXRpb25hdHRyX2NvcHkobmV3X2Z0cF9hdHRyLCAoc3Rh dGUtPnNvdXJjZS5hdHRyLT5mdHBfYXR0cikpOworLQkJdG1wX3BhcmFsbGVsaXNtLm1vZGUgPSBH TE9CVVNfRlRQX0NPTlRST0xfUEFSQUxMRUxJU01fTk9ORTsKKy0JCWdsb2J1c19mdHBfY2xpZW50 X29wZXJhdGlvbmF0dHJfc2V0X3BhcmFsbGVsaXNtKG5ld19mdHBfYXR0ciwgJnRtcF9wYXJhbGxl bGlzbSk7CistCistCQlnbG9idXNfZ2Fzc19jb3B5X2F0dHJfc2V0X2Z0cChuZXdfYXR0ciwgbmV3 X2Z0cF9hdHRyKTsKKy0KKy0JCXN0YXRlLT5zb3VyY2UuYXR0ciA9IG5ld19hdHRyOworLQorLQkJ c3RhdGUtPnNvdXJjZS5mcmVlX2F0dHIgPSBHTE9CVVNfVFJVRTsKKy0JCXN0YXRlLT5zb3VyY2Uu ZnJlZV9mdHBfYXR0ciA9IEdMT0JVU19UUlVFOworLQkgICAgfSAvKiBpZih0bXBfcGFyYWxsZWxp c20ubW9kZSAhPSBHTE9CVVNfRlRQX0NPTlRST0xfUEFSQUxMRUxJU01fTk9ORSkgKi8KKy0JfSAv KiBpZihzdGF0ZS0+c291cmNlLmF0dHItPmZ0cF9hdHRyICE9IEdMT0JVU19OVUxMKSAqLworLQkv KgorLQkgIHN0YXRlLT5zb3VyY2UuYXR0ci5wYXJhbGxlbGlzbV9pbmZvLm1vZGUgPQorLQkgIEdM T0JVU19HU0lGVFBfQ09OVFJPTF9QQVJBTExFTElTTV9OT05FOworLQkgIHN0YXRlLT5zb3VyY2Uu YXR0ci5zdHJpcGluZ19pbmZvLm1vZGUgPQorLQkgIEdMT0JVU19HU0lGVFBfQ09OVFJPTF9TVFJJ UElOR19OT05FOworLQkgICovCistCS8qCistCSAqIGZ0cCAtPiBnYXNzX3RyYW5zZmVyOgorLQkg KiAgICAgdHVybiBvZmYgYm90aCBwYXJhbGxlbCAmIHN0cmlwaW5nCistCSAqIGZ0cCAtPiBpbzoK Ky0JICogICAgIGdsb2J1c19pb19maWxlX3NlZWsoKSBjYW4gYmUgdXNlZCB0byBkZWFsIHdpdGgg b3V0IG9mCistCSAqICAgICBvcmRlciBibG9ja3MKKy0JICogZ2Fzc190cmFuc2ZlciwgaW8gLT4g KgorLQkgKiAgICAgVGhlIHNvdXJjZSBkYXRhIGlzIHNlcmlhbGl6ZWQgYW55d2F5LCBzbyBkbyBk b24ndCBuZWVkCistCSAqICAgICB0byB3b3JyeSBhYm91dCB0aGUgZGVzdGluYXRpb24uICBBbiBm dHAgZGVzdGluYXRpb24gY2FuCistCSAqICAgICB1c2UgcGFyYWxsZWxpc20gYW5kL29yIHN0cmlw aW5nIGlmIGRlc2lyZWQKKy0JICovCisrICAgICAgICAgICAgPT0gR0xPQlVTX0dBU1NfQ09QWV9V UkxfTU9ERV9GVFApCisrICAgICAgICAgICAmJiAoICAgKCAgIChzdGF0ZS0+ZGVzdC5tb2RlCisr ICAgICAgICAgICAgICAgICAgICAgICA9PSBHTE9CVVNfR0FTU19DT1BZX1VSTF9NT0RFX0dBU1Mp ICkKKysgICAgICAgICAgICAgICAgICB8fCAoICAgKHN0YXRlLT5kZXN0Lm1vZGUKKysgICAgICAg ICAgICAgICAgICAgICAgICAgID09IEdMT0JVU19HQVNTX0NPUFlfVVJMX01PREVfSU8pCisrICAg ICAgICAgICAgICAgICAgICAgICAgICYmICghc3RhdGUtPmRlc3QuZGF0YS5pby5zZWVrYWJsZSkg KSApICkKKysgICAgeworKyAgICAgICAgLyoKKysgICAgICAgICAqIElmIHRoZSBzb3VyY2Ugc3Ry ZWFtIGlzIGZ0cCwgdGhpcyBtZWFucyBpdCBpcyBjYXBhYmxlCisrICAgICAgICAgKiBvZiBzdXBw b3J0aW5nIG11bHRpcGxlIGRhdGEgY2hhbm5lbHMgYW5kIGhhbmRpbmcgYmFjaworKyAgICAgICAg ICogZGF0YSBibG9jayBpbiBhbiBhcmJpdHJhcnkgb3JkZXIuCisrICAgICAgICAgKgorKyAgICAg ICAgICogSWYgdGhlIGRlc3RpbmF0aW9uIHN0cmVhbSBjYW4gb25seSBoYW5kbGUgc2VxdWVudGlh bAorKyAgICAgICAgICogd3JpdGVzIG9mIHRoZSBkYXRhLCB0aGVuIGRpc2FibGUgdGhlIG11bHRp cGxlIGRhdGEKKysgICAgICAgICAqIGNoYW5uZWwgc3VwcG9ydCBpbiBmdHAKKysgICAgICAgICAq LworKyAgICAgICAgaWYoc3RhdGUtPnNvdXJjZS5hdHRyLT5mdHBfYXR0ciAhPSBHTE9CVVNfTlVM TCkKKysgICAgICAgIHsKKysgICAgICAgICAgICBnbG9idXNfZnRwX2NvbnRyb2xfcGFyYWxsZWxp c21fdCAgdG1wX3BhcmFsbGVsaXNtOworKworKyAgICAgICAgICAgIGdsb2J1c19mdHBfY2xpZW50 X29wZXJhdGlvbmF0dHJfZ2V0X3BhcmFsbGVsaXNtKHN0YXRlLT5zb3VyY2UuYXR0ci0+ZnRwX2F0 dHIsICZ0bXBfcGFyYWxsZWxpc20pOworKworKyAgICAgICAgICAgIGlmKHRtcF9wYXJhbGxlbGlz bS5tb2RlICE9IEdMT0JVU19GVFBfQ09OVFJPTF9QQVJBTExFTElTTV9OT05FKQorKyAgICAgICAg ICAgIHsKKysgICAgICAgICAgICAgICAgZ2xvYnVzX2dhc3NfY29weV9hdHRyX3QgKiBuZXdfYXR0 cjsKKysgICAgICAgICAgICAgICAgZ2xvYnVzX2Z0cF9jbGllbnRfb3BlcmF0aW9uYXR0cl90ICog bmV3X2Z0cF9hdHRyOworKworKyAgICAgICAgICAgICAgICBuZXdfYXR0ciA9IChnbG9idXNfZ2Fz c19jb3B5X2F0dHJfdCAqKQorKyAgICAgICAgICAgICAgICAgICAgZ2xvYnVzX2xpYmNfbWFsbG9j KHNpemVvZihnbG9idXNfZ2Fzc19jb3B5X2F0dHJfdCkpOworKyAgICAgICAgICAgICAgICBnbG9i dXNfZ2Fzc19jb3B5X2F0dHJfaW5pdChuZXdfYXR0cik7CisrCisrICAgICAgICAgICAgICAgIG5l d19mdHBfYXR0ciA9IChnbG9idXNfZnRwX2NsaWVudF9vcGVyYXRpb25hdHRyX3QgKikKKysgICAg ICAgICAgICAgICAgICAgIGdsb2J1c19saWJjX21hbGxvYyhzaXplb2YoZ2xvYnVzX2Z0cF9jbGll bnRfb3BlcmF0aW9uYXR0cl90KSk7CisrCisrICAgICAgICAgICAgICAgIGdsb2J1c19mdHBfY2xp ZW50X29wZXJhdGlvbmF0dHJfY29weShuZXdfZnRwX2F0dHIsIChzdGF0ZS0+c291cmNlLmF0dHIt PmZ0cF9hdHRyKSk7CisrICAgICAgICAgICAgICAgIHRtcF9wYXJhbGxlbGlzbS5tb2RlID0gR0xP QlVTX0ZUUF9DT05UUk9MX1BBUkFMTEVMSVNNX05PTkU7CisrICAgICAgICAgICAgICAgIGdsb2J1 c19mdHBfY2xpZW50X29wZXJhdGlvbmF0dHJfc2V0X3BhcmFsbGVsaXNtKG5ld19mdHBfYXR0ciwg JnRtcF9wYXJhbGxlbGlzbSk7CisrCisrICAgICAgICAgICAgICAgIGdsb2J1c19nYXNzX2NvcHlf YXR0cl9zZXRfZnRwKG5ld19hdHRyLCBuZXdfZnRwX2F0dHIpOworKworKyAgICAgICAgICAgICAg ICBzdGF0ZS0+c291cmNlLmF0dHIgPSBuZXdfYXR0cjsKKysKKysgICAgICAgICAgICAgICAgc3Rh dGUtPnNvdXJjZS5mcmVlX2F0dHIgPSBHTE9CVVNfVFJVRTsKKysgICAgICAgICAgICAgICAgc3Rh dGUtPnNvdXJjZS5mcmVlX2Z0cF9hdHRyID0gR0xPQlVTX1RSVUU7CisrICAgICAgICAgICAgfSAv KiBpZih0bXBfcGFyYWxsZWxpc20ubW9kZSAhPSBHTE9CVVNfRlRQX0NPTlRST0xfUEFSQUxMRUxJ U01fTk9ORSkgKi8KKysgICAgICAgIH0gLyogaWYoc3RhdGUtPnNvdXJjZS5hdHRyLT5mdHBfYXR0 ciAhPSBHTE9CVVNfTlVMTCkgKi8KKysgICAgICAgIC8qCisrICAgICAgICAgIHN0YXRlLT5zb3Vy Y2UuYXR0ci5wYXJhbGxlbGlzbV9pbmZvLm1vZGUgPQorKyAgICAgICAgICBHTE9CVVNfR1NJRlRQ X0NPTlRST0xfUEFSQUxMRUxJU01fTk9ORTsKKysgICAgICAgICAgc3RhdGUtPnNvdXJjZS5hdHRy LnN0cmlwaW5nX2luZm8ubW9kZSA9CisrICAgICAgICAgIEdMT0JVU19HU0lGVFBfQ09OVFJPTF9T VFJJUElOR19OT05FOworKyAgICAgICAgICAqLworKyAgICAgICAgLyoKKysgICAgICAgICAqIGZ0 cCAtPiBnYXNzX3RyYW5zZmVyOgorKyAgICAgICAgICogICAgIHR1cm4gb2ZmIGJvdGggcGFyYWxs ZWwgJiBzdHJpcGluZworKyAgICAgICAgICogZnRwIC0+IGlvOgorKyAgICAgICAgICogICAgIGds b2J1c19pb19maWxlX3NlZWsoKSBjYW4gYmUgdXNlZCB0byBkZWFsIHdpdGggb3V0IG9mCisrICAg ICAgICAgKiAgICAgb3JkZXIgYmxvY2tzCisrICAgICAgICAgKiBnYXNzX3RyYW5zZmVyLCBpbyAt PiAqCisrICAgICAgICAgKiAgICAgVGhlIHNvdXJjZSBkYXRhIGlzIHNlcmlhbGl6ZWQgYW55d2F5 LCBzbyBkbyBkb24ndCBuZWVkCisrICAgICAgICAgKiAgICAgdG8gd29ycnkgYWJvdXQgdGhlIGRl c3RpbmF0aW9uLiAgQW4gZnRwIGRlc3RpbmF0aW9uIGNhbgorKyAgICAgICAgICogICAgIHVzZSBw YXJhbGxlbGlzbSBhbmQvb3Igc3RyaXBpbmcgaWYgZGVzaXJlZAorKyAgICAgICAgICovCisgICAg IH0gLyogc291cmNlLm1vZGUgPT0gR0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9GVFAsIGFuZCBk ZXN0IGlzIG5vdCBzZWVrYWJsZSAqLworIAorICAgICAvKiBkZXBlbmRpbmcgb24gdGhlIG1vZGUs IGNhbGwgdGhlIGFwcHJvcHJpYXRlIHJvdXRpbmUgdG8gc3RhcnQgdGhlCitAQCAtMjQyOCwxMiAr MjQyOCwxMiBAQCBnbG9idXNfbF9nYXNzX2NvcHlfdHJhbnNmZXJfc3RhcnQoCisgICAgIHsKKyAg ICAgY2FzZSBHTE9CVVNfR0FTU19DT1BZX1VSTF9NT0RFX0ZUUDoKKyAKKy0Jc3RhdGUtPnNvdXJj ZS5kYXRhLmZ0cC5uX2NoYW5uZWxzID0gMDsKKy0Jc3RhdGUtPnNvdXJjZS5kYXRhLmZ0cC5uX3Jl YWRzX3Bvc3RlZCA9IDA7CistCQorLQlpZihzdGF0ZS0+ZGVzdC5tb2RlID09IEdMT0JVU19HQVNT X0NPUFlfVVJMX01PREVfRlRQKQorLQl7CistCSAgICAvKiBkb2luZyBhIHRoaXJkIHBhcnR5IHRy YW5zZmVyLCBkZXN0IHNpZGUgaXMgdXNpbmcgbWFpbiBoYW5kbGUgKi8KKysgICAgICAgIHN0YXRl LT5zb3VyY2UuZGF0YS5mdHAubl9jaGFubmVscyA9IDA7CisrICAgICAgICBzdGF0ZS0+c291cmNl LmRhdGEuZnRwLm5fcmVhZHNfcG9zdGVkID0gMDsKKysKKysgICAgICAgIGlmKHN0YXRlLT5kZXN0 Lm1vZGUgPT0gR0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9GVFApCisrICAgICAgICB7CisrICAg ICAgICAgICAgLyogZG9pbmcgYSB0aGlyZCBwYXJ0eSB0cmFuc2ZlciwgZGVzdCBzaWRlIGlzIHVz aW5nIG1haW4gaGFuZGxlICovCisgICAgICAgICAgICAgc3RhdGUtPnNvdXJjZS5kYXRhLmZ0cC5o YW5kbGUgPSAmaGFuZGxlLT5mdHBfaGFuZGxlXzI7CisgICAgICAgICB9CisgICAgICAgICBlbHNl CitAQCAtMjQ0Myw1MyArMjQ0Myw1MyBAQCBnbG9idXNfbF9nYXNzX2NvcHlfdHJhbnNmZXJfc3Rh cnQoCisgCisgICAgICAgICByZXN1bHQgPSBnbG9idXNfbF9nYXNzX2NvcHlfZnRwX3NldHVwX2dl dChoYW5kbGUpOworIAorLQlicmVhazsKKysgICAgICAgIGJyZWFrOworIAorICAgICBjYXNlIEdM T0JVU19HQVNTX0NPUFlfVVJMX01PREVfR0FTUzoKKyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZ X0RFQlVHCistCWdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAidHJhbnNmZXJfc3RhcnQoKTog YWJvdXQgdG8gY2FsbCBnbG9idXNfZ2Fzc190cmFuc2Zlcl9yZWdpc3Rlcl9nZXQoKVxuIik7Cisr ICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwgInRyYW5zZmVyX3N0YXJ0KCk6IGFi b3V0IHRvIGNhbGwgZ2xvYnVzX2dhc3NfdHJhbnNmZXJfcmVnaXN0ZXJfZ2V0KClcbiIpOworICNl bmRpZgorLQlyYyA9IGdsb2J1c19nYXNzX3RyYW5zZmVyX3JlZ2lzdGVyX2dldCgKKy0JICAgICYo c3RhdGUtPnNvdXJjZS5kYXRhLmdhc3MucmVxdWVzdCksCistCSAgICAoc3RhdGUtPnNvdXJjZS5h dHRyLT5nYXNzX3JlcXVlc3RhdHRyKSwKKy0JICAgIHN0YXRlLT5zb3VyY2UudXJsLAorLQkgICAg Z2xvYnVzX2xfZ2Fzc19jb3B5X2dhc3Nfc2V0dXBfY2FsbGJhY2ssCistCSAgICAodm9pZCAqKSBo YW5kbGUpOworKyAgICAgICAgcmMgPSBnbG9idXNfZ2Fzc190cmFuc2Zlcl9yZWdpc3Rlcl9nZXQo CisrICAgICAgICAgICAgJihzdGF0ZS0+c291cmNlLmRhdGEuZ2Fzcy5yZXF1ZXN0KSwKKysgICAg ICAgICAgICAoc3RhdGUtPnNvdXJjZS5hdHRyLT5nYXNzX3JlcXVlc3RhdHRyKSwKKysgICAgICAg ICAgICBzdGF0ZS0+c291cmNlLnVybCwKKysgICAgICAgICAgICBnbG9idXNfbF9nYXNzX2NvcHlf Z2Fzc19zZXR1cF9jYWxsYmFjaywKKysgICAgICAgICAgICAodm9pZCAqKSBoYW5kbGUpOworIC8q CisgICBGSVhYIC0gd2hhdCBoYXBwZW5zIGlmIHRoaXMgaXMgYSByZWZlcnJhbD8KKyAgICovCist CWlmIChyYyAhPSBHTE9CVVNfU1VDQ0VTUykKKy0JeworKyAgICAgICAgaWYgKHJjICE9IEdMT0JV U19TVUNDRVNTKQorKyAgICAgICAgeworICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcK Ky0JICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAidHJhbnNmZXJfc3RhcnQoKTogZ2xv YnVzX2dhc3NfdHJhbnNmZXJfcmVnaXN0ZXJfZ2V0IHJldHVybmVkICFHTE9CVVNfU1VDQ0VTU1xu Iik7CisrICAgICAgICAgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJ0cmFuc2Zlcl9z dGFydCgpOiBnbG9idXNfZ2Fzc190cmFuc2Zlcl9yZWdpc3Rlcl9nZXQgcmV0dXJuZWQgIUdMT0JV U19TVUNDRVNTXG4iKTsKKyAjZW5kaWYKKy0JICAgIGVyciA9IGdsb2J1c19lcnJvcl9jb25zdHJ1 Y3Rfc3RyaW5nKAorLQkJR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCistCQlHTE9CVVNfTlVMTCwK Ky0JCSJbJXNdOiAlcyBnbG9idXNfZ2Fzc190cmFuc2Zlcl9yZWdpc3Rlcl9nZXQgcmV0dXJuZWQg YW4gZXJyb3IgY29kZSBvZjogJWQiLAorLQkJbXluYW1lLAorLQkJc3RhdGUtPnNvdXJjZS51cmws CistCQlyYyk7CistCSAgICBnbG9idXNfaV9nYXNzX2NvcHlfc2V0X2Vycm9yKGhhbmRsZSwgZXJy KTsKKysgICAgICAgICAgICBlcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKysg ICAgICAgICAgICAgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCisrICAgICAgICAgICAgICAg IEdMT0JVU19OVUxMLAorKyAgICAgICAgICAgICAgICAiWyVzXTogJXMgZ2xvYnVzX2dhc3NfdHJh bnNmZXJfcmVnaXN0ZXJfZ2V0IHJldHVybmVkIGFuIGVycm9yIGNvZGUgb2Y6ICVkIiwKKysgICAg ICAgICAgICAgICAgbXluYW1lLAorKyAgICAgICAgICAgICAgICBzdGF0ZS0+c291cmNlLnVybCwK KysgICAgICAgICAgICAgICAgcmMpOworKyAgICAgICAgICAgIGdsb2J1c19pX2dhc3NfY29weV9z ZXRfZXJyb3IoaGFuZGxlLCBlcnIpOworIAorLQkgICAgcmVzdWx0ID0gZ2xvYnVzX2Vycm9yX3B1 dChlcnIpOworLQl9CistCWJyZWFrOworKyAgICAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19lcnJv cl9wdXQoZXJyKTsKKysgICAgICAgIH0KKysgICAgICAgIGJyZWFrOworIAorICAgICBjYXNlIEdM T0JVU19HQVNTX0NPUFlfVVJMX01PREVfSU86CisgCistCXJlc3VsdCA9IGdsb2J1c19sX2dhc3Nf Y29weV9pb19zZXR1cF9nZXQoaGFuZGxlKTsKKysgICAgICAgIHJlc3VsdCA9IGdsb2J1c19sX2dh c3NfY29weV9pb19zZXR1cF9nZXQoaGFuZGxlKTsKKyAKKy0JYnJlYWs7CisrICAgICAgICBicmVh azsKKyAgICAgZGVmYXVsdDoKKyAgICAgICAgIGJyZWFrOworICAgICB9CisgCisgICAgIGlmKHJl c3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKKyAgICAgeworLQlnbG9idXNfaV9nYXNzX2NvcHlfc2V0 X2Vycm9yX2Zyb21fcmVzdWx0KGhhbmRsZSwgcmVzdWx0KTsKKy0JaGFuZGxlLT5zdGF0dXMgPSBH TE9CVVNfR0FTU19DT1BZX1NUQVRVU19GQUlMVVJFOworLQlyZXR1cm4gcmVzdWx0OworKyAgICAg ICAgZ2xvYnVzX2lfZ2Fzc19jb3B5X3NldF9lcnJvcl9mcm9tX3Jlc3VsdChoYW5kbGUsIHJlc3Vs dCk7CisrICAgICAgICBoYW5kbGUtPnN0YXR1cyA9IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0ZB SUxVUkU7CisrICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICB9CisgCisgICAgIC8qIHdhaXQg Zm9yIG9rIGZyb20gdGhlIHNvdXJjZSAqLworQEAgLTI1MDAsNDAgKzI1MDAsNDAgQEAgZ2xvYnVz X2xfZ2Fzc19jb3B5X3RyYW5zZmVyX3N0YXJ0KAorICAgICB3aGlsZShzdGF0ZS0+c291cmNlLnN0 YXR1cyA9PSBHTE9CVVNfSV9HQVNTX0NPUFlfVEFSR0VUX0lOSVRJQUwpCisgICAgIHsKKyAgICAg ICAgIGdsb2J1c19jb25kX3dhaXQoJnN0YXRlLT5tb25pdG9yLmNvbmQsCistCQkJICZzdGF0ZS0+ bW9uaXRvci5tdXRleCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICZzdGF0ZS0+bW9uaXRv ci5tdXRleCk7CisgICAgIH0KKyAgICAgZ2xvYnVzX211dGV4X3VubG9jaygmc3RhdGUtPm1vbml0 b3IubXV0ZXgpOworIAorICAgICBpZihoYW5kbGUtPmVycikKKyAgICAgeworLQloYW5kbGUtPnN0 YXR1cyA9IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0ZBSUxVUkU7CistCWVyciA9IGhhbmRsZS0+ ZXJyOworLQloYW5kbGUtPmVyciA9IEdMT0JVU19OVUxMOworKyAgICAgICAgaGFuZGxlLT5zdGF0 dXMgPSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19GQUlMVVJFOworKyAgICAgICAgZXJyID0gaGFu ZGxlLT5lcnI7CisrICAgICAgICBoYW5kbGUtPmVyciA9IEdMT0JVU19OVUxMOworIAorICAgICAg ICAgLyogY2xlYW4gdXAgdGhlIHNvdXJjZSBzaWRlIHNpbmNlIGl0IHdhcyBhbHJlYWR5IG9wZW5l ZC4uLi4uICovCistCWdsb2J1c19tdXRleF9pbml0KCZtb25pdG9yLm11dGV4LCBHTE9CVVNfTlVM TCk7CistCWdsb2J1c19jb25kX2luaXQoJm1vbml0b3IuY29uZCwgR0xPQlVTX05VTEwpOworLQlt b25pdG9yLmRvbmUgPSBHTE9CVVNfRkFMU0U7CistCW1vbml0b3IuZXJyID0gR0xPQlVTX05VTEw7 CistCW1vbml0b3IudXNlX2VyciA9IEdMT0JVU19GQUxTRTsKKysgICAgICAgIGdsb2J1c19tdXRl eF9pbml0KCZtb25pdG9yLm11dGV4LCBHTE9CVVNfTlVMTCk7CisrICAgICAgICBnbG9idXNfY29u ZF9pbml0KCZtb25pdG9yLmNvbmQsIEdMT0JVU19OVUxMKTsKKysgICAgICAgIG1vbml0b3IuZG9u ZSA9IEdMT0JVU19GQUxTRTsKKysgICAgICAgIG1vbml0b3IuZXJyID0gR0xPQlVTX05VTEw7Cisr ICAgICAgICBtb25pdG9yLnVzZV9lcnIgPSBHTE9CVVNfRkFMU0U7CisgICAgICAgICBoYW5kbGUt PnVzZXJfY2FsbGJhY2sgPSBHTE9CVVNfTlVMTDsKKyAgICAgICAgIGdsb2J1c19nYXNzX2NvcHlf Y2FuY2VsKAorLQkgICAgaGFuZGxlLAorLQkgICAgZ2xvYnVzX2xfZ2Fzc19jb3B5X21vbml0b3Jf Y2FsbGJhY2ssCistCSAgICAodm9pZCAqKSAmbW9uaXRvcik7CistCS8qIHdhaXQgZm9yIHRoZSBj YW5jZWwgdG8gY29tcGxldGUgYmVmb3JlIHJldHVybmluZyB0byB1c2VyICovCistCWdsb2J1c19t dXRleF9sb2NrKCZtb25pdG9yLm11dGV4KTsKKy0JeworLQkgICAgd2hpbGUoIW1vbml0b3IuZG9u ZSkKKy0JICAgIHsKKy0JCWdsb2J1c19jb25kX3dhaXQoJm1vbml0b3IuY29uZCwgJm1vbml0b3Iu bXV0ZXgpOworLQkgICAgfQorLQl9CistCWdsb2J1c19tdXRleF91bmxvY2soJm1vbml0b3IubXV0 ZXgpOworLQlnbG9idXNfbXV0ZXhfZGVzdHJveSgmbW9uaXRvci5tdXRleCk7CistCWdsb2J1c19j b25kX2Rlc3Ryb3koJm1vbml0b3IuY29uZCk7CistCistCXJldHVybiBnbG9idXNfZXJyb3JfcHV0 KGVycik7CisrICAgICAgICAgICAgaGFuZGxlLAorKyAgICAgICAgICAgIGdsb2J1c19sX2dhc3Nf Y29weV9tb25pdG9yX2NhbGxiYWNrLAorKyAgICAgICAgICAgICh2b2lkICopICZtb25pdG9yKTsK KysgICAgICAgIC8qIHdhaXQgZm9yIHRoZSBjYW5jZWwgdG8gY29tcGxldGUgYmVmb3JlIHJldHVy bmluZyB0byB1c2VyICovCisrICAgICAgICBnbG9idXNfbXV0ZXhfbG9jaygmbW9uaXRvci5tdXRl eCk7CisrICAgICAgICB7CisrICAgICAgICAgICAgd2hpbGUoIW1vbml0b3IuZG9uZSkKKysgICAg ICAgICAgICB7CisrICAgICAgICAgICAgICAgIGdsb2J1c19jb25kX3dhaXQoJm1vbml0b3IuY29u ZCwgJm1vbml0b3IubXV0ZXgpOworKyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKysgICAgICAg IGdsb2J1c19tdXRleF91bmxvY2soJm1vbml0b3IubXV0ZXgpOworKyAgICAgICAgZ2xvYnVzX211 dGV4X2Rlc3Ryb3koJm1vbml0b3IubXV0ZXgpOworKyAgICAgICAgZ2xvYnVzX2NvbmRfZGVzdHJv eSgmbW9uaXRvci5jb25kKTsKKysKKysgICAgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVy cik7CisgICAgIH0KKyAKKyAgICAgaGFuZGxlLT5zdGF0dXMgPSBHTE9CVVNfR0FTU19DT1BZX1NU QVRVU19TT1VSQ0VfUkVBRFk7CitAQCAtMjU2MCw0OCArMjU2MCw0OCBAQCBnbG9idXNfbF9nYXNz X2NvcHlfdHJhbnNmZXJfc3RhcnQoCisgICAgIHsKKyAgICAgY2FzZSBHTE9CVVNfR0FTU19DT1BZ X1VSTF9NT0RFX0ZUUDoKKyAKKy0Jc3RhdGUtPmRlc3QuZGF0YS5mdHAubl9jaGFubmVscyA9IDA7 CistCXN0YXRlLT5kZXN0LmRhdGEuZnRwLm5fcmVhZHNfcG9zdGVkID0gMDsKKysgICAgICAgIHN0 YXRlLT5kZXN0LmRhdGEuZnRwLm5fY2hhbm5lbHMgPSAwOworKyAgICAgICAgc3RhdGUtPmRlc3Qu ZGF0YS5mdHAubl9yZWFkc19wb3N0ZWQgPSAwOworIAorICAgICAgICAgc3RhdGUtPmRlc3QuZGF0 YS5mdHAuaGFuZGxlID0gJmhhbmRsZS0+ZnRwX2hhbmRsZTsKKy0JcmVzdWx0ID0gZ2xvYnVzX2xf Z2Fzc19jb3B5X2Z0cF9zZXR1cF9wdXQoaGFuZGxlKTsKKy0JYnJlYWs7CisrICAgICAgICByZXN1 bHQgPSBnbG9idXNfbF9nYXNzX2NvcHlfZnRwX3NldHVwX3B1dChoYW5kbGUpOworKyAgICAgICAg YnJlYWs7CisgCisgICAgIGNhc2UgR0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9HQVNTOgorICNp ZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKy0JZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRl cnIsICJ0cmFuc2Zlcl9zdGFydCgpOiBhYm91dCB0byBjYWxsIGdsb2J1c19nYXNzX3RyYW5zZmVy X3JlZ2lzdGVyX3B1dCgpXG4iKTsKKysgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJy LCAidHJhbnNmZXJfc3RhcnQoKTogYWJvdXQgdG8gY2FsbCBnbG9idXNfZ2Fzc190cmFuc2Zlcl9y ZWdpc3Rlcl9wdXQoKVxuIik7CisgI2VuZGlmCisgICAgICAgICByYyA9IGdsb2J1c19nYXNzX3Ry YW5zZmVyX3JlZ2lzdGVyX3B1dCgKKy0JICAgICYoc3RhdGUtPmRlc3QuZGF0YS5nYXNzLnJlcXVl c3QpLAorLQkgICAgKHN0YXRlLT5kZXN0LmF0dHItPmdhc3NfcmVxdWVzdGF0dHIpLAorLQkgICAg c3RhdGUtPmRlc3QudXJsLAorLQkgICAgMCwKKy0JICAgIGdsb2J1c19sX2dhc3NfY29weV9nYXNz X3NldHVwX2NhbGxiYWNrLAorLQkgICAgKHZvaWQgKikgaGFuZGxlKTsKKy0KKy0JaWYgKHJjICE9 IEdMT0JVU19TVUNDRVNTKQorLQl7CistCSAgICBlcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0 X3N0cmluZygKKy0JCUdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorLQkJR0xPQlVTX05VTEwsCist CQkiWyVzXTogJXMgZ2xvYnVzX2dhc3NfdHJhbnNmZXJfcmVnaXN0ZXJfcHV0IHJldHVybmVkIGFu IGVycm9yIGNvZGUgb2Y6ICVkIiwKKy0JCW15bmFtZSwKKy0JCXN0YXRlLT5kZXN0LnVybCwKKy0J CXJjKTsKKy0JICAgIGdsb2J1c19pX2dhc3NfY29weV9zZXRfZXJyb3IoaGFuZGxlLCBlcnIpOwor LQorLQkgICAgcmVzdWx0ID0gZ2xvYnVzX2Vycm9yX3B1dChlcnIpOworLQl9CistCistCWJyZWFr OworKyAgICAgICAgICAgICYoc3RhdGUtPmRlc3QuZGF0YS5nYXNzLnJlcXVlc3QpLAorKyAgICAg ICAgICAgIChzdGF0ZS0+ZGVzdC5hdHRyLT5nYXNzX3JlcXVlc3RhdHRyKSwKKysgICAgICAgICAg ICBzdGF0ZS0+ZGVzdC51cmwsCisrICAgICAgICAgICAgMCwKKysgICAgICAgICAgICBnbG9idXNf bF9nYXNzX2NvcHlfZ2Fzc19zZXR1cF9jYWxsYmFjaywKKysgICAgICAgICAgICAodm9pZCAqKSBo YW5kbGUpOworKworKyAgICAgICAgaWYgKHJjICE9IEdMT0JVU19TVUNDRVNTKQorKyAgICAgICAg eworKyAgICAgICAgICAgIGVyciA9IGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorKyAg ICAgICAgICAgICAgICBHTE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKysgICAgICAgICAgICAgICAg R0xPQlVTX05VTEwsCisrICAgICAgICAgICAgICAgICJbJXNdOiAlcyBnbG9idXNfZ2Fzc190cmFu c2Zlcl9yZWdpc3Rlcl9wdXQgcmV0dXJuZWQgYW4gZXJyb3IgY29kZSBvZjogJWQiLAorKyAgICAg ICAgICAgICAgICBteW5hbWUsCisrICAgICAgICAgICAgICAgIHN0YXRlLT5kZXN0LnVybCwKKysg ICAgICAgICAgICAgICAgcmMpOworKyAgICAgICAgICAgIGdsb2J1c19pX2dhc3NfY29weV9zZXRf ZXJyb3IoaGFuZGxlLCBlcnIpOworKworKyAgICAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19lcnJv cl9wdXQoZXJyKTsKKysgICAgICAgIH0KKysKKysgICAgICAgIGJyZWFrOworIAorICAgICBjYXNl IEdMT0JVU19HQVNTX0NPUFlfVVJMX01PREVfSU86CisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09Q WV9ERUJVRworLQlnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwgInRyYW5zZmVyX3N0YXJ0KCk6 IGFib3V0IHRvIGNhbGwgZ2xvYnVzX2xfZ2Fzc19jb3B5X2lvX3NldHVwX3B1dCgpXG4iKTsKKysg ICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAidHJhbnNmZXJfc3RhcnQoKTogYWJv dXQgdG8gY2FsbCBnbG9idXNfbF9nYXNzX2NvcHlfaW9fc2V0dXBfcHV0KClcbiIpOworICNlbmRp ZgorLQlyZXN1bHQgPSBnbG9idXNfbF9nYXNzX2NvcHlfaW9fc2V0dXBfcHV0KGhhbmRsZSk7Cisr ICAgICAgICByZXN1bHQgPSBnbG9idXNfbF9nYXNzX2NvcHlfaW9fc2V0dXBfcHV0KGhhbmRsZSk7 CisgCistCWJyZWFrOworKyAgICAgICAgYnJlYWs7CisgICAgIGRlZmF1bHQ6CisgICAgICAgICBi cmVhazsKKyAgICAgfQorQEAgLTI2MjAsMzYgKzI2MjAsMzYgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5 X3RyYW5zZmVyX3N0YXJ0KAorICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAKKy0JaGFuZGxl LT5zdGF0dXMgPSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19GQUlMVVJFOworKyAgICAgICAgaGFu ZGxlLT5zdGF0dXMgPSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19GQUlMVVJFOworIAorICNpZmRl ZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKy0JZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIs ICJ0cmFuc2Zlcl9zdGFydCgpOiBlcnJvciB3aXRoIHNldHRpbmcgdXAgdGhlIGRlc3RcbiIpOwor KyAgICAgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJ0cmFuc2Zlcl9zdGFydCgpOiBl cnJvciB3aXRoIHNldHRpbmcgdXAgdGhlIGRlc3RcbiIpOworICNlbmRpZgorIAorICAgICAgICAg LyogY2xlYW4gdXAgdGhlIHNvdXJjZSBzaWRlIHNpbmNlIGl0IHdhcyBhbHJlYWR5IG9wZW5lZC4u Li4uICovCistCWdsb2J1c19tdXRleF9pbml0KCZtb25pdG9yLm11dGV4LCBHTE9CVVNfTlVMTCk7 CistCWdsb2J1c19jb25kX2luaXQoJm1vbml0b3IuY29uZCwgR0xPQlVTX05VTEwpOworLQltb25p dG9yLmRvbmUgPSBHTE9CVVNfRkFMU0U7CistCW1vbml0b3IuZXJyID0gR0xPQlVTX05VTEw7Cist CW1vbml0b3IudXNlX2VyciA9IEdMT0JVU19GQUxTRTsKKysgICAgICAgIGdsb2J1c19tdXRleF9p bml0KCZtb25pdG9yLm11dGV4LCBHTE9CVVNfTlVMTCk7CisrICAgICAgICBnbG9idXNfY29uZF9p bml0KCZtb25pdG9yLmNvbmQsIEdMT0JVU19OVUxMKTsKKysgICAgICAgIG1vbml0b3IuZG9uZSA9 IEdMT0JVU19GQUxTRTsKKysgICAgICAgIG1vbml0b3IuZXJyID0gR0xPQlVTX05VTEw7CisrICAg ICAgICBtb25pdG9yLnVzZV9lcnIgPSBHTE9CVVNfRkFMU0U7CisgICAgICAgICBoYW5kbGUtPnVz ZXJfY2FsbGJhY2sgPSBHTE9CVVNfTlVMTDsKKyAgICAgICAgIGdsb2J1c19nYXNzX2NvcHlfY2Fu Y2VsKAorLQkgICAgaGFuZGxlLAorLQkgICAgZ2xvYnVzX2xfZ2Fzc19jb3B5X21vbml0b3JfY2Fs bGJhY2ssCistCSAgICAodm9pZCAqKSAmbW9uaXRvcik7CistCS8qIHdhaXQgZm9yIHRoZSBjYW5j ZWwgdG8gY29tcGxldGUgYmVmb3JlIHJldHVybmluZyB0byB1c2VyICovCistCWdsb2J1c19tdXRl eF9sb2NrKCZtb25pdG9yLm11dGV4KTsKKy0JeworLQkgICAgd2hpbGUoIW1vbml0b3IuZG9uZSkK Ky0JICAgIHsKKy0JCWdsb2J1c19jb25kX3dhaXQoJm1vbml0b3IuY29uZCwgJm1vbml0b3IubXV0 ZXgpOworLQkgICAgfQorLQl9CistCWdsb2J1c19tdXRleF91bmxvY2soJm1vbml0b3IubXV0ZXgp OworLQlnbG9idXNfbXV0ZXhfZGVzdHJveSgmbW9uaXRvci5tdXRleCk7CistCWdsb2J1c19jb25k X2Rlc3Ryb3koJm1vbml0b3IuY29uZCk7CistCistCXJldHVybiByZXN1bHQ7CisrICAgICAgICAg ICAgaGFuZGxlLAorKyAgICAgICAgICAgIGdsb2J1c19sX2dhc3NfY29weV9tb25pdG9yX2NhbGxi YWNrLAorKyAgICAgICAgICAgICh2b2lkICopICZtb25pdG9yKTsKKysgICAgICAgIC8qIHdhaXQg Zm9yIHRoZSBjYW5jZWwgdG8gY29tcGxldGUgYmVmb3JlIHJldHVybmluZyB0byB1c2VyICovCisr ICAgICAgICBnbG9idXNfbXV0ZXhfbG9jaygmbW9uaXRvci5tdXRleCk7CisrICAgICAgICB7Cisr ICAgICAgICAgICAgd2hpbGUoIW1vbml0b3IuZG9uZSkKKysgICAgICAgICAgICB7CisrICAgICAg ICAgICAgICAgIGdsb2J1c19jb25kX3dhaXQoJm1vbml0b3IuY29uZCwgJm1vbml0b3IubXV0ZXgp OworKyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKysgICAgICAgIGdsb2J1c19tdXRleF91bmxv Y2soJm1vbml0b3IubXV0ZXgpOworKyAgICAgICAgZ2xvYnVzX211dGV4X2Rlc3Ryb3koJm1vbml0 b3IubXV0ZXgpOworKyAgICAgICAgZ2xvYnVzX2NvbmRfZGVzdHJveSgmbW9uaXRvci5jb25kKTsK KysKKysgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgIH0KKyAgICAgLyogd2FpdCBmb3Igb2sg ZnJvbSB0aGUgZGVzdCAqLworICAgICBnbG9idXNfbXV0ZXhfbG9jaygmKHN0YXRlLT5tb25pdG9y Lm11dGV4KSk7CitAQCAtMjY2MSwzOSArMjY2MSwzOSBAQCBnbG9idXNfbF9nYXNzX2NvcHlfdHJh bnNmZXJfc3RhcnQoCisgICAgIHdoaWxlKHN0YXRlLT5kZXN0LnN0YXR1cyA9PSBHTE9CVVNfSV9H QVNTX0NPUFlfVEFSR0VUX0lOSVRJQUwpCisgICAgIHsKKyAgICAgICAgIGdsb2J1c19jb25kX3dh aXQoJnN0YXRlLT5tb25pdG9yLmNvbmQsCistCQkJICZzdGF0ZS0+bW9uaXRvci5tdXRleCk7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICZzdGF0ZS0+bW9uaXRvci5tdXRleCk7CisgICAgIH0K KyAgICAgZ2xvYnVzX211dGV4X3VubG9jaygmc3RhdGUtPm1vbml0b3IubXV0ZXgpOworIAorICAg ICBpZihoYW5kbGUtPmVycikKKyAgICAgeworLQloYW5kbGUtPnN0YXR1cyA9IEdMT0JVU19HQVNT X0NPUFlfU1RBVFVTX0ZBSUxVUkU7CistCWVyciA9IGhhbmRsZS0+ZXJyOworLQloYW5kbGUtPmVy ciA9IEdMT0JVU19OVUxMOworKyAgICAgICAgaGFuZGxlLT5zdGF0dXMgPSBHTE9CVVNfR0FTU19D T1BZX1NUQVRVU19GQUlMVVJFOworKyAgICAgICAgZXJyID0gaGFuZGxlLT5lcnI7CisrICAgICAg ICBoYW5kbGUtPmVyciA9IEdMT0JVU19OVUxMOworIAorICAgICAgICAgLyogY2xlYW4gdXAgdGhl IHNvdXJjZSBzaWRlIHNpbmNlIGl0IHdhcyBhbHJlYWR5IG9wZW5lZC4uLi4uICovCistCWdsb2J1 c19tdXRleF9pbml0KCZtb25pdG9yLm11dGV4LCBHTE9CVVNfTlVMTCk7CistCWdsb2J1c19jb25k X2luaXQoJm1vbml0b3IuY29uZCwgR0xPQlVTX05VTEwpOworLQltb25pdG9yLmRvbmUgPSBHTE9C VVNfRkFMU0U7CistCW1vbml0b3IuZXJyID0gR0xPQlVTX05VTEw7CistCW1vbml0b3IudXNlX2Vy ciA9IEdMT0JVU19GQUxTRTsKKysgICAgICAgIGdsb2J1c19tdXRleF9pbml0KCZtb25pdG9yLm11 dGV4LCBHTE9CVVNfTlVMTCk7CisrICAgICAgICBnbG9idXNfY29uZF9pbml0KCZtb25pdG9yLmNv bmQsIEdMT0JVU19OVUxMKTsKKysgICAgICAgIG1vbml0b3IuZG9uZSA9IEdMT0JVU19GQUxTRTsK KysgICAgICAgIG1vbml0b3IuZXJyID0gR0xPQlVTX05VTEw7CisrICAgICAgICBtb25pdG9yLnVz ZV9lcnIgPSBHTE9CVVNfRkFMU0U7CisgICAgICAgICBoYW5kbGUtPnVzZXJfY2FsbGJhY2sgPSBH TE9CVVNfTlVMTDsKKyAgICAgICAgIGdsb2J1c19nYXNzX2NvcHlfY2FuY2VsKAorLQkgICAgaGFu ZGxlLAorLQkgICAgZ2xvYnVzX2xfZ2Fzc19jb3B5X21vbml0b3JfY2FsbGJhY2ssCistCSAgICAo dm9pZCAqKSAmbW9uaXRvcik7CistCS8qIHdhaXQgZm9yIHRoZSBjYW5jZWwgdG8gY29tcGxldGUg YmVmb3JlIHJldHVybmluZyB0byB1c2VyICovCistCWdsb2J1c19tdXRleF9sb2NrKCZtb25pdG9y Lm11dGV4KTsKKy0JeworLQkgICAgd2hpbGUoIW1vbml0b3IuZG9uZSkKKy0JICAgIHsKKy0JCWds b2J1c19jb25kX3dhaXQoJm1vbml0b3IuY29uZCwgJm1vbml0b3IubXV0ZXgpOworLQkgICAgfQor LQl9CistCWdsb2J1c19tdXRleF91bmxvY2soJm1vbml0b3IubXV0ZXgpOworLQlnbG9idXNfbXV0 ZXhfZGVzdHJveSgmbW9uaXRvci5tdXRleCk7CistCWdsb2J1c19jb25kX2Rlc3Ryb3koJm1vbml0 b3IuY29uZCk7CistCXJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7CisrICAgICAgICAgICAg aGFuZGxlLAorKyAgICAgICAgICAgIGdsb2J1c19sX2dhc3NfY29weV9tb25pdG9yX2NhbGxiYWNr LAorKyAgICAgICAgICAgICh2b2lkICopICZtb25pdG9yKTsKKysgICAgICAgIC8qIHdhaXQgZm9y IHRoZSBjYW5jZWwgdG8gY29tcGxldGUgYmVmb3JlIHJldHVybmluZyB0byB1c2VyICovCisrICAg ICAgICBnbG9idXNfbXV0ZXhfbG9jaygmbW9uaXRvci5tdXRleCk7CisrICAgICAgICB7CisrICAg ICAgICAgICAgd2hpbGUoIW1vbml0b3IuZG9uZSkKKysgICAgICAgICAgICB7CisrICAgICAgICAg ICAgICAgIGdsb2J1c19jb25kX3dhaXQoJm1vbml0b3IuY29uZCwgJm1vbml0b3IubXV0ZXgpOwor KyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKysgICAgICAgIGdsb2J1c19tdXRleF91bmxvY2so Jm1vbml0b3IubXV0ZXgpOworKyAgICAgICAgZ2xvYnVzX211dGV4X2Rlc3Ryb3koJm1vbml0b3Iu bXV0ZXgpOworKyAgICAgICAgZ2xvYnVzX2NvbmRfZGVzdHJveSgmbW9uaXRvci5jb25kKTsKKysg ICAgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7CisgICAgIH0KKyAjaWZkZWYgR0xP QlVTX0lfR0FTU19DT1BZX0RFQlVHCisgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAi dHJhbnNmZXJfc3RhcnQoKTogZGVzdCBpcyByZWFkeSwgbGV0J3MgZ2V0IGdvaW4nXG4iKTsKK0BA IC0yNzIyLDM2ICsyNzIyLDM2IEBAIGdsb2J1c19sX2dhc3NfY29weV9yZWFkX2Zyb21fcXVldWUo CisgCisgICAgIGRvCisgICAgIHsKKy0JZG9fdGhlX3JlYWQgPSBHTE9CVVNfRkFMU0U7CistCWJ1 ZmZlcl9lbnRyeSA9IEdMT0JVU19OVUxMOworLQlidWZmZXIgPSBHTE9CVVNfTlVMTDsKKysgICAg ICAgIGRvX3RoZV9yZWFkID0gR0xPQlVTX0ZBTFNFOworKyAgICAgICAgYnVmZmVyX2VudHJ5ID0g R0xPQlVTX05VTEw7CisrICAgICAgICBidWZmZXIgPSBHTE9CVVNfTlVMTDsKKyAKKy0JZ2xvYnVz X211dGV4X2xvY2soJihzdGF0ZS0+c291cmNlLm11dGV4KSk7CistCXsKKysgICAgICAgIGdsb2J1 c19tdXRleF9sb2NrKCYoc3RhdGUtPnNvdXJjZS5tdXRleCkpOworKyAgICAgICAgeworICNpZmRl ZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKy0JICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3Rk ZXJyLAorKyAgICAgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorICAgICAgICAg ICAgICAgICAgICAgInJlYWRfZnJvbV9xdWV1ZSgpOiBuX3BlbmRpbmc9ICVkICBuX3NpbXVsdGFu ZW91cz0gJWRcbiIsCisgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+c291cmNlLm5fcGVuZGlu ZywKKyAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5zb3VyY2Uubl9zaW11bHRhbmVvdXMpOwor ICNlbmRpZgorIAorLQkgICAgaWYoc3RhdGUtPnNvdXJjZS5zdGF0dXMgPT0gR0xPQlVTX0lfR0FT U19DT1BZX1RBUkdFVF9SRUFEWSkKKy0JICAgIHsKKy0JCWlmICgoKHN0YXRlLT5zb3VyY2Uubl9w ZW5kaW5nIDwKKy0JCSAgICAgIHN0YXRlLT5zb3VyY2Uubl9zaW11bHRhbmVvdXMpICYmCistCQkg ICAgICFzdGF0ZS0+Y2FuY2VsKSkKKy0JCXsKKy0JCSAgICBpZighZ2xvYnVzX2ZpZm9fZW1wdHko JihzdGF0ZS0+c291cmNlLnF1ZXVlKSkpCistCQkgICAgeworLQkJCXN0YXRlLT5zb3VyY2Uubl9w ZW5kaW5nKys7CistCQkJYnVmZmVyX2VudHJ5ID0KKysgICAgICAgICAgICBpZihzdGF0ZS0+c291 cmNlLnN0YXR1cyA9PSBHTE9CVVNfSV9HQVNTX0NPUFlfVEFSR0VUX1JFQURZKQorKyAgICAgICAg ICAgIHsKKysgICAgICAgICAgICAgICAgaWYgKCgoc3RhdGUtPnNvdXJjZS5uX3BlbmRpbmcgPAor KyAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+c291cmNlLm5fc2ltdWx0YW5lb3VzKSAmJgor KyAgICAgICAgICAgICAgICAgICAgICFzdGF0ZS0+Y2FuY2VsKSkKKysgICAgICAgICAgICAgICAg eworKyAgICAgICAgICAgICAgICAgICAgaWYoIWdsb2J1c19maWZvX2VtcHR5KCYoc3RhdGUtPnNv dXJjZS5xdWV1ZSkpKQorKyAgICAgICAgICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICAg ICAgICAgIHN0YXRlLT5zb3VyY2Uubl9wZW5kaW5nKys7CisrICAgICAgICAgICAgICAgICAgICAg ICAgYnVmZmVyX2VudHJ5ID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYnVzX2Zp Zm9fZGVxdWV1ZSgmKHN0YXRlLT5zb3VyY2UucXVldWUpKTsKKy0JCQlidWZmZXIgPSBidWZmZXJf ZW50cnktPmJ5dGVzOworLQkJCWdsb2J1c19saWJjX2ZyZWUoYnVmZmVyX2VudHJ5KTsKKy0JCQlk b190aGVfcmVhZCA9IEdMT0JVU19UUlVFOworLQkJICAgIH0KKy0JCSAgICBlbHNlCistCQkgICAg eworKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciA9IGJ1ZmZlcl9lbnRyeS0+Ynl0ZXM7 CisrICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYnVzX2xpYmNfZnJlZShidWZmZXJfZW50cnkp OworKyAgICAgICAgICAgICAgICAgICAgICAgIGRvX3RoZV9yZWFkID0gR0xPQlVTX1RSVUU7Cisr ICAgICAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICAgICBlbHNlCisrICAgICAg ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYnVzX211dGV4X2xv Y2soJihzdGF0ZS0+bXV0ZXgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZihzdGF0ZS0+ bl9idWZmZXJzIDwgc3RhdGUtPm1heF9idWZmZXJzKQorICAgICAgICAgICAgICAgICAgICAgICAg IHsKK0BAIC0yNzYwLDkgKzI3NjAsOSBAQCBnbG9idXNfbF9nYXNzX2NvcHlfcmVhZF9mcm9tX3F1 ZXVlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb190aGVfcmVhZCA9IEdMT0JVU19U UlVFOworICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAg ICBnbG9idXNfbXV0ZXhfdW5sb2NrKCYoc3RhdGUtPm11dGV4KSk7CistCQkgICAgfQorLQkJfQor LSAgICAgICAgICAgICAgICAKKysgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAg ICAgfQorKworICAgICAgICAgICAgICAgICBpZihkb190aGVfcmVhZCkKKyAgICAgICAgICAgICAg ICAgeworICAgICAgICAgICAgICAgICAgICAgaWYoIWJ1ZmZlcikKK0BAIC0yNzc5LDE0ICsyNzc5 LDE0IEBAIGdsb2J1c19sX2dhc3NfY29weV9yZWFkX2Zyb21fcXVldWUoCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19lcnJvcl9wdXQoZXJyKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAg ICAgICAgICAKKysKKyAgICAgICAgICAgICAgICAgICAgIGlmKGJ1ZmZlcikKKyAgICAgICAgICAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBnbG9idXNfbF9n YXNzX2NvcHlfcmVnaXN0ZXJfcmVhZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFu ZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIpOworICAgICAgICAgICAg ICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAgCisrCisgICAgICAgICAgICAgICAgICAg ICBpZiAocmVzdWx0ICE9IEdMT0JVU19TVUNDRVNTKQorICAgICAgICAgICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5jYW5jZWwgPSBHTE9CVVNfSV9HQVNTX0NP UFlfQ0FOQ0VMX1RSVUU7CitAQCAtMjgwMCw5ICsyODAwLDkgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5 X3JlYWRfZnJvbV9xdWV1ZSgKKyAgICAgICAgIGdsb2J1c19tdXRleF91bmxvY2soJihzdGF0ZS0+ c291cmNlLm11dGV4KSk7CisgCisgICAgIH0gd2hpbGUoZG9fdGhlX3JlYWQpOworLSAgICAKKysK KyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVHCistCSAgICBnbG9idXNfbGliY19mcHJp bnRmKHN0ZGVyciwgInJlYWRfZnJvbV9xdWV1ZSgpOiByZXR1cm5pbmdcbiIpOworKyAgICAgICAg ICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAicmVhZF9mcm9tX3F1ZXVlKCk6IHJldHVy bmluZ1xuIik7CisgI2VuZGlmCisgfSAvKiBnbG9idXNfbF9nYXNzX2NvcHlfcmVhZF9mcm9tX3F1 ZXVlKCkgKi8KKyAKK0BAIC0yODQ1LDQ4ICsyODQ1LDQ4IEBAIGdsb2J1c19sX2dhc3NfY29weV9y ZWdpc3Rlcl9yZWFkKAorICAgICB7CisgICAgIGNhc2UgR0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9E RV9GVFA6CisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJVRworLQlnbG9idXNfbGliY19m cHJpbnRmKHN0ZGVyciwgInJlZ2lzdGVyX3JlYWQoKTogIGNhbGxpbmcgZ2xvYnVzX2Z0cF9jbGll bnRfcmVnaXN0ZXJfcmVhZCgpXG4iKTsKKysgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3Rk ZXJyLCAicmVnaXN0ZXJfcmVhZCgpOiAgY2FsbGluZyBnbG9idXNfZnRwX2NsaWVudF9yZWdpc3Rl cl9yZWFkKClcbiIpOworICNlbmRpZgorLSAJcmVzdWx0ID0gZ2xvYnVzX2Z0cF9jbGllbnRfcmVn aXN0ZXJfcmVhZCgKKy0JICAgIHN0YXRlLT5zb3VyY2UuZGF0YS5mdHAuaGFuZGxlLAorLQkgICAg YnVmZmVyLAorLQkgICAgaGFuZGxlLT5idWZmZXJfbGVuZ3RoLAorLQkgICAgZ2xvYnVzX2xfZ2Fz c19jb3B5X2Z0cF9yZWFkX2NhbGxiYWNrLAorLQkgICAgKHZvaWQgKikgaGFuZGxlKTsKKysgICAg ICAgIHJlc3VsdCA9IGdsb2J1c19mdHBfY2xpZW50X3JlZ2lzdGVyX3JlYWQoCisrICAgICAgICAg ICAgc3RhdGUtPnNvdXJjZS5kYXRhLmZ0cC5oYW5kbGUsCisrICAgICAgICAgICAgYnVmZmVyLAor KyAgICAgICAgICAgIGhhbmRsZS0+YnVmZmVyX2xlbmd0aCwKKysgICAgICAgICAgICBnbG9idXNf bF9nYXNzX2NvcHlfZnRwX3JlYWRfY2FsbGJhY2ssCisrICAgICAgICAgICAgKHZvaWQgKikgaGFu ZGxlKTsKKyAKKy0JYnJlYWs7CisrICAgICAgICBicmVhazsKKyAKKyAgICAgY2FzZSBHTE9CVVNf R0FTU19DT1BZX1VSTF9NT0RFX0dBU1M6CisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJV RworLQlnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwgInJlZ2lzdGVyX3JlYWQoKTogIGNhbGxp bmcgZ2xvYnVzX2dhc3NfdHJhbnNmZXJfcmVjZWl2ZV9ieXRlcygpXG4iKTsKKy0jZW5kaWYKKy0J cmMgPSBnbG9idXNfZ2Fzc190cmFuc2Zlcl9yZWNlaXZlX2J5dGVzKAorLQkgICAgc3RhdGUtPnNv dXJjZS5kYXRhLmdhc3MucmVxdWVzdCwKKy0JICAgIGJ1ZmZlciwKKy0JICAgIGhhbmRsZS0+YnVm ZmVyX2xlbmd0aCwKKy0JICAgIGhhbmRsZS0+YnVmZmVyX2xlbmd0aCwKKy0JICAgIGdsb2J1c19s X2dhc3NfY29weV9nYXNzX3JlYWRfY2FsbGJhY2ssCistCSAgICAodm9pZCAqKSBoYW5kbGUpOwor LQorLQlpZiAocmMgIT0gR0xPQlVTX1NVQ0NFU1MpCistCXsKKy0JICAgIC8qIGZpZ3VyZSBvdXQg d2hhdCB0aGUgZXJyb3IgaXMsIGFuZCBwYXNzIGl0IGJhY2sgdGhyb3VnaCB0aGUgcmVzdWx0ICAg ICAgICAgICAgICovCistCSAgICBlcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygK Ky0JCUdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorLQkJR0xPQlVTX05VTEwsCistCQkiWyVzXTog Z2xvYnVzX2dhc3NfdHJhbnNmZXJfcmVjZWl2ZV9ieXRlcyByZXR1cm5lZCBlcnJvciBjb2RlOiAl ZCIsCistCQlteW5hbWUsCistCQlyYyk7CistCSAgICByZXN1bHQgPSBnbG9idXNfZXJyb3JfcHV0 KGVycik7CistCX0KKy0JZWxzZSByZXN1bHQgPSBHTE9CVVNfU1VDQ0VTUzsKKy0KKy0JYnJlYWs7 CisrICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwgInJlZ2lzdGVyX3JlYWQoKTog IGNhbGxpbmcgZ2xvYnVzX2dhc3NfdHJhbnNmZXJfcmVjZWl2ZV9ieXRlcygpXG4iKTsKKysjZW5k aWYKKysgICAgICAgIHJjID0gZ2xvYnVzX2dhc3NfdHJhbnNmZXJfcmVjZWl2ZV9ieXRlcygKKysg ICAgICAgICAgICBzdGF0ZS0+c291cmNlLmRhdGEuZ2Fzcy5yZXF1ZXN0LAorKyAgICAgICAgICAg IGJ1ZmZlciwKKysgICAgICAgICAgICBoYW5kbGUtPmJ1ZmZlcl9sZW5ndGgsCisrICAgICAgICAg ICAgaGFuZGxlLT5idWZmZXJfbGVuZ3RoLAorKyAgICAgICAgICAgIGdsb2J1c19sX2dhc3NfY29w eV9nYXNzX3JlYWRfY2FsbGJhY2ssCisrICAgICAgICAgICAgKHZvaWQgKikgaGFuZGxlKTsKKysK KysgICAgICAgIGlmIChyYyAhPSBHTE9CVVNfU1VDQ0VTUykKKysgICAgICAgIHsKKysgICAgICAg ICAgICAvKiBmaWd1cmUgb3V0IHdoYXQgdGhlIGVycm9yIGlzLCBhbmQgcGFzcyBpdCBiYWNrIHRo cm91Z2ggdGhlIHJlc3VsdCAgICAgICAgICAgICAqLworKyAgICAgICAgICAgIGVyciA9IGdsb2J1 c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorKyAgICAgICAgICAgICAgICBHTE9CVVNfR0FTU19D T1BZX01PRFVMRSwKKysgICAgICAgICAgICAgICAgR0xPQlVTX05VTEwsCisrICAgICAgICAgICAg ICAgICJbJXNdOiBnbG9idXNfZ2Fzc190cmFuc2Zlcl9yZWNlaXZlX2J5dGVzIHJldHVybmVkIGVy cm9yIGNvZGU6ICVkIiwKKysgICAgICAgICAgICAgICAgbXluYW1lLAorKyAgICAgICAgICAgICAg ICByYyk7CisrICAgICAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2Vycm9yX3B1dChlcnIpOworKyAg ICAgICAgfQorKyAgICAgICAgZWxzZSByZXN1bHQgPSBHTE9CVVNfU1VDQ0VTUzsKKysKKysgICAg ICAgIGJyZWFrOworIAorICAgICBjYXNlIEdMT0JVU19HQVNTX0NPUFlfVVJMX01PREVfSU86Cist CWlmKGhhbmRsZS0+cGFydGlhbF9lbmRfb2Zmc2V0ICE9IC0xKQorKyAgICAgICAgaWYoaGFuZGxl LT5wYXJ0aWFsX2VuZF9vZmZzZXQgIT0gLTEpCisgICAgICAgICB7CistICAgICAgICAgICAgcmVh ZF9sZW4gPSAKKysgICAgICAgICAgICByZWFkX2xlbiA9CisgICAgICAgICAgICAgICAgIChoYW5k bGUtPmJ1ZmZlcl9sZW5ndGggPCBoYW5kbGUtPnBhcnRpYWxfYnl0ZXNfcmVtYWluaW5nKSA/Cisg ICAgICAgICAgICAgICAgICBoYW5kbGUtPmJ1ZmZlcl9sZW5ndGggOiBoYW5kbGUtPnBhcnRpYWxf Ynl0ZXNfcmVtYWluaW5nOworICAgICAgICAgICAgIGhhbmRsZS0+cGFydGlhbF9ieXRlc19yZW1h aW5pbmcgLT0gcmVhZF9sZW47CitAQCAtMjg5NSwyMyArMjg5NSwyMyBAQCBnbG9idXNfbF9nYXNz X2NvcHlfcmVnaXN0ZXJfcmVhZCgKKyAgICAgICAgIHsKKyAgICAgICAgICAgICByZWFkX2xlbiA9 IGhhbmRsZS0+YnVmZmVyX2xlbmd0aDsKKyAgICAgICAgIH0KKy0JcmVzdWx0ID0gZ2xvYnVzX2lv X3JlZ2lzdGVyX3JlYWQoCistCSAgICBzdGF0ZS0+c291cmNlLmRhdGEuaW8uaGFuZGxlLAorLQkg ICAgYnVmZmVyLAorLQkgICAgcmVhZF9sZW4sCistCSAgICByZWFkX2xlbiwKKy0JICAgIGdsb2J1 c19sX2dhc3NfY29weV9pb19yZWFkX2NhbGxiYWNrLAorLQkgICAgKHZvaWQgKikgaGFuZGxlKTsK Ky0KKy0JYnJlYWs7CisrICAgICAgICByZXN1bHQgPSBnbG9idXNfaW9fcmVnaXN0ZXJfcmVhZCgK KysgICAgICAgICAgICBzdGF0ZS0+c291cmNlLmRhdGEuaW8uaGFuZGxlLAorKyAgICAgICAgICAg IGJ1ZmZlciwKKysgICAgICAgICAgICByZWFkX2xlbiwKKysgICAgICAgICAgICByZWFkX2xlbiwK KysgICAgICAgICAgICBnbG9idXNfbF9nYXNzX2NvcHlfaW9fcmVhZF9jYWxsYmFjaywKKysgICAg ICAgICAgICAodm9pZCAqKSBoYW5kbGUpOworKworKyAgICAgICAgYnJlYWs7CisgICAgIGNhc2Ug R0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9VTlNVUFBPUlRFRDoKKyAgICAgZGVmYXVsdDoKKy0J cmVzdWx0ID0gZ2xvYnVzX2Vycm9yX3B1dChnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygK Ky0JICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorLQkgICAgR0xPQlVTX05VTEwsCistCSAg ICAiWyVzXTogJXM6IEdMT0JVU19HQVNTX0NPUFlfVVJMX01PREVfVU5TVVBQT1JURUQiLAorLQkg ICAgbXluYW1lLAorLQkgICAgc3RhdGUtPnNvdXJjZS51cmwpKTsKKysgICAgICAgIHJlc3VsdCA9 IGdsb2J1c19lcnJvcl9wdXQoZ2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCisrICAgICAg ICAgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCisrICAgICAgICAgICAgR0xPQlVTX05VTEws CisrICAgICAgICAgICAgIlslc106ICVzOiBHTE9CVVNfR0FTU19DT1BZX1VSTF9NT0RFX1VOU1VQ UE9SVEVEIiwKKysgICAgICAgICAgICBteW5hbWUsCisrICAgICAgICAgICAgc3RhdGUtPnNvdXJj ZS51cmwpKTsKKyAgICAgICAgIGJyZWFrOworICAgICB9CisgCitAQCAtMjk0NSw3ICsyOTQ1LDcg QEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2dhc3Nfc2V0dXBfY2FsbGJhY2soCisgICAgIHN0YXRpYyBj aGFyICogbXluYW1lPSJnbG9idXNfbF9nYXNzX2NvcHlfZ2Fzc19zZXR1cF9jYWxsYmFjayI7Cisg CisgICAgIGdsb2J1c19nYXNzX2NvcHlfaGFuZGxlX3QgKiAgaGFuZGxlCistCT0gKGdsb2J1c19n YXNzX2NvcHlfaGFuZGxlX3QgKikgY2FsbGJhY2tfYXJnOworKyAgICAgICAgPSAoZ2xvYnVzX2dh c3NfY29weV9oYW5kbGVfdCAqKSBjYWxsYmFja19hcmc7CisgICAgIGdsb2J1c19nYXNzX2NvcHlf c3RhdGVfdCAqIHN0YXRlID0gaGFuZGxlLT5zdGF0ZTsKKyAKKyAKK0BAIC0yOTU5LDE4MyArMjk1 OSwxODMgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2dhc3Nfc2V0dXBfY2FsbGJhY2soCisgICAgIHsK KyAgICAgY2FzZSBHTE9CVVNfR0FTU19UUkFOU0ZFUl9SRVFVRVNUX1JFRkVSUkVEOgorICNpZmRl ZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKy0JZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIs CisrICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICAg InJlcXVlc3Qgc3RhdHVzID09IEdMT0JVU19HQVNTX1RSQU5TRkVSX1JFUVVFU1RfUkVGRVJSRURc biIpOworICNlbmRpZgorLQlnbG9idXNfZ2Fzc190cmFuc2Zlcl9yZXF1ZXN0X2dldF9yZWZlcnJh bChyZXF1ZXN0LCAmcmVmZXJyYWwpOworLQlnbG9idXNfZ2Fzc190cmFuc2Zlcl9yZXF1ZXN0X2Rl c3Ryb3kocmVxdWVzdCk7CistCistCWlmIChoYW5kbGUtPnN0YXR1cyA9PSBHTE9CVVNfR0FTU19D T1BZX1NUQVRVU19JTklUSUFMKQorLQl7CistCSAgICAvKiBmaXJzdCBzZXR1cCB0aGUgc291cmNl IHdpdGggdGhlIHJlZ2lzdGVyIGdldAorLQkgICAgICovCistI2lmZGVmIEdMT0JVU19JX0dBU1Nf Q09QWV9ERUJVRworLQkgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJSRVFVRVNUX1JF RkVSUkVEOiAgU1RBVEVfSU5JVElBTFxuIik7CistI2VuZGlmCistCSAgICBjdXJyZW50X3VybCA9 IGdsb2J1c19saWJjX3N0cmR1cChzdGF0ZS0+c291cmNlLnVybCk7CistCSAgICBnbG9idXNfbGli Y19mcmVlKHN0YXRlLT5zb3VyY2UudXJsKTsKKy0JICAgIHN0YXRlLT5zb3VyY2UudXJsID1nbG9i dXNfbGliY19zdHJkdXAoCistCQlnbG9idXNfZ2Fzc190cmFuc2Zlcl9yZWZlcnJhbF9nZXRfdXJs KCZyZWZlcnJhbCwgMCkpOworLQorLSNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKy0J ICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAiUkVRVUVTVF9SRUZFUlJFRDogYWJvdXQg dG8gZ2xvYnVzX2dhc3NfdHJhbnNmZXJfcmVnaXN0ZXJfZ2V0KCkgYWdhaW4gd2l0aDogJXNcbiIs c3RhdGUtPnNvdXJjZS51cmwpOworLSNlbmRpZgorLQkgICAgaWYgKCAocmMgPSBnbG9idXNfZ2Fz c190cmFuc2Zlcl9yZWdpc3Rlcl9nZXQoCistCQkmKHN0YXRlLT5zb3VyY2UuZGF0YS5nYXNzLnJl cXVlc3QpLAorLQkJKHN0YXRlLT5zb3VyY2UuYXR0ci0+Z2Fzc19yZXF1ZXN0YXR0ciksCistCQlz dGF0ZS0+c291cmNlLnVybCwKKy0JCWdsb2J1c19sX2dhc3NfY29weV9nYXNzX3NldHVwX2NhbGxi YWNrLAorLQkJKHZvaWQgKikgaGFuZGxlKSkgIT0gR0xPQlVTX1NVQ0NFU1MgKQorLQkgICAgey8q IHRoZXJlIHdhcyBhbiBlcnJvciAqLworLQkJZ2xvYnVzX211dGV4X2xvY2soJnN0YXRlLT5tb25p dG9yLm11dGV4KTsKKy0jaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVHCistCQlnbG9idXNf bGliY19mcHJpbnRmKHN0ZGVyciwgImdhc3Nfc2V0dXBfY2FsbGJhY2soKTogdHJhbnNmZXJfcmVn aXN0ZXJfZ2V0KCkgcmV0dXJuZWQ6ICVkXG4iLCByYyk7CistCQlpZihyYz09R0xPQlVTX0dBU1Nf VFJBTlNGRVJfRVJST1JfQkFEX1VSTCkKKy0JCSAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVy ciwgInJjID09IEdMT0JVU19HQVNTX0VSUk9SX0JBRF9VUkxcbiIpOworLSNlbmRpZgorLQkJZXJy ID0gZ2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCistCQkgICAgR0xPQlVTX0dBU1NfQ09Q WV9NT0RVTEUsCistCQkgICAgR0xPQlVTX05VTEwsCistCQkgICAgIlslc106IHRoZSBvcmlnaW5h bCBzb3VyY2UgdXJsOiAlcyAgd2FzIHJlZmVycmVkIHRvOiAlcywgZm9yIHdoaWNoIGdsb2J1c19n YXNzX3RyYW5zZmVyX3JlZ2lzdGVyX2dldCByZXR1cm5lZCBhbiBlcnJvciBjb2RlIG9mOiAlZCIs CistCQkgICAgbXluYW1lLAorLQkJICAgIGN1cnJlbnRfdXJsLAorLQkJICAgIHN0YXRlLT5zb3Vy Y2UudXJsLAorLQkJICAgIHJjKTsKKy0JCWdsb2J1c19pX2dhc3NfY29weV9zZXRfZXJyb3IoaGFu ZGxlLCBlcnIpOworLQkJZ2xvYnVzX2xpYmNfZnJlZShjdXJyZW50X3VybCk7CistCQlnbG9idXNf Z2Fzc190cmFuc2Zlcl9yZWZlcnJhbF9kZXN0cm95KCZyZWZlcnJhbCk7CistCQlnb3RvIHdha2V1 cF9zdGF0ZTsKKy0JICAgIH0KKy0JICAgIGdsb2J1c19nYXNzX3RyYW5zZmVyX3JlZmVycmFsX2Rl c3Ryb3koJnJlZmVycmFsKTsKKy0JfQorLQllbHNlCistCXsKKy0JICAgIC8qIGlmIHRoZSBzdGF0 ZSBpcyBub3QgSU5JVElBTCB0aGVuIGFzc3VtZSB0aGUgc291cmNlIGlzIHJlYWR5CistCSAgICAg KiBhbmQgdGhhdCB3ZSBhcmUgbm93IHNldHRpbmcgdXAgdGhlIGRlc3RpbmF0aW9uIHdpdGggdGhl IHJlZ2lzdGVyIHB1dAorLQkgICAgICovCistCSAgICBjdXJyZW50X3VybCA9IGdsb2J1c19saWJj X3N0cmR1cChzdGF0ZS0+ZGVzdC51cmwpOworLQkgICAgZ2xvYnVzX2xpYmNfZnJlZShzdGF0ZS0+ ZGVzdC51cmwpOworLQkgICAgc3RhdGUtPmRlc3QudXJsID1nbG9idXNfbGliY19zdHJkdXAoCist CQlnbG9idXNfZ2Fzc190cmFuc2Zlcl9yZWZlcnJhbF9nZXRfdXJsKCZyZWZlcnJhbCwgMCkpOwor LQorLQkgICAgZ2xvYnVzX2dhc3NfdHJhbnNmZXJfcmVmZXJyYWxfZGVzdHJveSgmcmVmZXJyYWwp OworLQorLQkgICAgaWYgKCAocmMgPSBnbG9idXNfZ2Fzc190cmFuc2Zlcl9yZWdpc3Rlcl9wdXQo CistCQkmcmVxdWVzdCwKKy0JCShzdGF0ZS0+ZGVzdC5hdHRyLT5nYXNzX3JlcXVlc3RhdHRyKSwK Ky0JCXN0YXRlLT5kZXN0LnVybCwKKy0JCTAsCistCQlnbG9idXNfbF9nYXNzX2NvcHlfZ2Fzc19z ZXR1cF9jYWxsYmFjaywKKy0JCSh2b2lkICopIGhhbmRsZSkpICE9IEdMT0JVU19TVUNDRVNTICkK Ky0JICAgIHsgLyogdGhlcmUgd2FzIGFuIGVycm9yICovCistCQlnbG9idXNfbXV0ZXhfbG9jaygm c3RhdGUtPm1vbml0b3IubXV0ZXgpOworLQkJZXJyID0gZ2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9z dHJpbmcoCistCQkgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCistCQkgICAgR0xPQlVTX05V TEwsCistCQkgICAgIlslc106IHRoZSBvcmlnaW5hbCBkZXN0aW5hdGlvbiB1cmw6ICVzIHdhcyBy ZWZlcnJlZCB0bzogJXMsIGZvciB3aGljaCBnbG9idXNfZ2Fzc190cmFuc2Zlcl9yZWdpc3Rlcl9n ZXQgcmV0dXJuZWQgYW4gZXJyb3IgY29kZSBvZjogJWQiLAorLQkJICAgIG15bmFtZSwKKy0JCSAg ICBjdXJyZW50X3VybCwKKy0JCSAgICBzdGF0ZS0+ZGVzdC51cmwsCistCQkgICAgcmMpOworLQkJ Z2xvYnVzX2lfZ2Fzc19jb3B5X3NldF9lcnJvcihoYW5kbGUsIGVycik7CistCQlnbG9idXNfbGli Y19mcmVlKGN1cnJlbnRfdXJsKTsKKy0JCWdsb2J1c19nYXNzX3RyYW5zZmVyX3JlZmVycmFsX2Rl c3Ryb3koJnJlZmVycmFsKTsKKy0JCWdvdG8gd2FrZXVwX3N0YXRlOworLQkgICAgfQorLQkgICAg Z2xvYnVzX2dhc3NfdHJhbnNmZXJfcmVmZXJyYWxfZGVzdHJveSgmcmVmZXJyYWwpOworLQl9Cist CWdsb2J1c19saWJjX2ZyZWUoY3VycmVudF91cmwpOworLQlicmVhazsKKysgICAgICAgIGdsb2J1 c19nYXNzX3RyYW5zZmVyX3JlcXVlc3RfZ2V0X3JlZmVycmFsKHJlcXVlc3QsICZyZWZlcnJhbCk7 CisrICAgICAgICBnbG9idXNfZ2Fzc190cmFuc2Zlcl9yZXF1ZXN0X2Rlc3Ryb3kocmVxdWVzdCk7 CisrCisrICAgICAgICBpZiAoaGFuZGxlLT5zdGF0dXMgPT0gR0xPQlVTX0dBU1NfQ09QWV9TVEFU VVNfSU5JVElBTCkKKysgICAgICAgIHsKKysgICAgICAgICAgICAvKiBmaXJzdCBzZXR1cCB0aGUg c291cmNlIHdpdGggdGhlIHJlZ2lzdGVyIGdldAorKyAgICAgICAgICAgICAqLworKyNpZmRlZiBH TE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKysgICAgICAgICAgICBnbG9idXNfbGliY19mcHJpbnRm KHN0ZGVyciwgIlJFUVVFU1RfUkVGRVJSRUQ6ICBTVEFURV9JTklUSUFMXG4iKTsKKysjZW5kaWYK KysgICAgICAgICAgICBjdXJyZW50X3VybCA9IGdsb2J1c19saWJjX3N0cmR1cChzdGF0ZS0+c291 cmNlLnVybCk7CisrICAgICAgICAgICAgZ2xvYnVzX2xpYmNfZnJlZShzdGF0ZS0+c291cmNlLnVy bCk7CisrICAgICAgICAgICAgc3RhdGUtPnNvdXJjZS51cmwgPWdsb2J1c19saWJjX3N0cmR1cCgK KysgICAgICAgICAgICAgICAgZ2xvYnVzX2dhc3NfdHJhbnNmZXJfcmVmZXJyYWxfZ2V0X3VybCgm cmVmZXJyYWwsIDApKTsKKysKKysjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVHCisrICAg ICAgICAgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJSRVFVRVNUX1JFRkVSUkVEOiBh Ym91dCB0byBnbG9idXNfZ2Fzc190cmFuc2Zlcl9yZWdpc3Rlcl9nZXQoKSBhZ2FpbiB3aXRoOiAl c1xuIixzdGF0ZS0+c291cmNlLnVybCk7CisrI2VuZGlmCisrICAgICAgICAgICAgaWYgKCAocmMg PSBnbG9idXNfZ2Fzc190cmFuc2Zlcl9yZWdpc3Rlcl9nZXQoCisrICAgICAgICAgICAgICAgICYo c3RhdGUtPnNvdXJjZS5kYXRhLmdhc3MucmVxdWVzdCksCisrICAgICAgICAgICAgICAgIChzdGF0 ZS0+c291cmNlLmF0dHItPmdhc3NfcmVxdWVzdGF0dHIpLAorKyAgICAgICAgICAgICAgICBzdGF0 ZS0+c291cmNlLnVybCwKKysgICAgICAgICAgICAgICAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2dhc3Nf c2V0dXBfY2FsbGJhY2ssCisrICAgICAgICAgICAgICAgICh2b2lkICopIGhhbmRsZSkpICE9IEdM T0JVU19TVUNDRVNTICkKKysgICAgICAgICAgICB7LyogdGhlcmUgd2FzIGFuIGVycm9yICovCisr ICAgICAgICAgICAgICAgIGdsb2J1c19tdXRleF9sb2NrKCZzdGF0ZS0+bW9uaXRvci5tdXRleCk7 CisrI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJVRworKyAgICAgICAgICAgICAgICBnbG9i dXNfbGliY19mcHJpbnRmKHN0ZGVyciwgImdhc3Nfc2V0dXBfY2FsbGJhY2soKTogdHJhbnNmZXJf cmVnaXN0ZXJfZ2V0KCkgcmV0dXJuZWQ6ICVkXG4iLCByYyk7CisrICAgICAgICAgICAgICAgIGlm KHJjPT1HTE9CVVNfR0FTU19UUkFOU0ZFUl9FUlJPUl9CQURfVVJMKQorKyAgICAgICAgICAgICAg ICAgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJyYyA9PSBHTE9CVVNfR0FTU19FUlJP Ul9CQURfVVJMXG4iKTsKKysjZW5kaWYKKysgICAgICAgICAgICAgICAgZXJyID0gZ2xvYnVzX2Vy cm9yX2NvbnN0cnVjdF9zdHJpbmcoCisrICAgICAgICAgICAgICAgICAgICBHTE9CVVNfR0FTU19D T1BZX01PRFVMRSwKKysgICAgICAgICAgICAgICAgICAgIEdMT0JVU19OVUxMLAorKyAgICAgICAg ICAgICAgICAgICAgIlslc106IHRoZSBvcmlnaW5hbCBzb3VyY2UgdXJsOiAlcyAgd2FzIHJlZmVy cmVkIHRvOiAlcywgZm9yIHdoaWNoIGdsb2J1c19nYXNzX3RyYW5zZmVyX3JlZ2lzdGVyX2dldCBy ZXR1cm5lZCBhbiBlcnJvciBjb2RlIG9mOiAlZCIsCisrICAgICAgICAgICAgICAgICAgICBteW5h bWUsCisrICAgICAgICAgICAgICAgICAgICBjdXJyZW50X3VybCwKKysgICAgICAgICAgICAgICAg ICAgIHN0YXRlLT5zb3VyY2UudXJsLAorKyAgICAgICAgICAgICAgICAgICAgcmMpOworKyAgICAg ICAgICAgICAgICBnbG9idXNfaV9nYXNzX2NvcHlfc2V0X2Vycm9yKGhhbmRsZSwgZXJyKTsKKysg ICAgICAgICAgICAgICAgZ2xvYnVzX2xpYmNfZnJlZShjdXJyZW50X3VybCk7CisrICAgICAgICAg ICAgICAgIGdsb2J1c19nYXNzX3RyYW5zZmVyX3JlZmVycmFsX2Rlc3Ryb3koJnJlZmVycmFsKTsK KysgICAgICAgICAgICAgICAgZ290byB3YWtldXBfc3RhdGU7CisrICAgICAgICAgICAgfQorKyAg ICAgICAgICAgIGdsb2J1c19nYXNzX3RyYW5zZmVyX3JlZmVycmFsX2Rlc3Ryb3koJnJlZmVycmFs KTsKKysgICAgICAgIH0KKysgICAgICAgIGVsc2UKKysgICAgICAgIHsKKysgICAgICAgICAgICAv KiBpZiB0aGUgc3RhdGUgaXMgbm90IElOSVRJQUwgdGhlbiBhc3N1bWUgdGhlIHNvdXJjZSBpcyBy ZWFkeQorKyAgICAgICAgICAgICAqIGFuZCB0aGF0IHdlIGFyZSBub3cgc2V0dGluZyB1cCB0aGUg ZGVzdGluYXRpb24gd2l0aCB0aGUgcmVnaXN0ZXIgcHV0CisrICAgICAgICAgICAgICovCisrICAg ICAgICAgICAgY3VycmVudF91cmwgPSBnbG9idXNfbGliY19zdHJkdXAoc3RhdGUtPmRlc3QudXJs KTsKKysgICAgICAgICAgICBnbG9idXNfbGliY19mcmVlKHN0YXRlLT5kZXN0LnVybCk7CisrICAg ICAgICAgICAgc3RhdGUtPmRlc3QudXJsID1nbG9idXNfbGliY19zdHJkdXAoCisrICAgICAgICAg ICAgICAgIGdsb2J1c19nYXNzX3RyYW5zZmVyX3JlZmVycmFsX2dldF91cmwoJnJlZmVycmFsLCAw KSk7CisrCisrICAgICAgICAgICAgZ2xvYnVzX2dhc3NfdHJhbnNmZXJfcmVmZXJyYWxfZGVzdHJv eSgmcmVmZXJyYWwpOworKworKyAgICAgICAgICAgIGlmICggKHJjID0gZ2xvYnVzX2dhc3NfdHJh bnNmZXJfcmVnaXN0ZXJfcHV0KAorKyAgICAgICAgICAgICAgICAmcmVxdWVzdCwKKysgICAgICAg ICAgICAgICAgKHN0YXRlLT5kZXN0LmF0dHItPmdhc3NfcmVxdWVzdGF0dHIpLAorKyAgICAgICAg ICAgICAgICBzdGF0ZS0+ZGVzdC51cmwsCisrICAgICAgICAgICAgICAgIDAsCisrICAgICAgICAg ICAgICAgIGdsb2J1c19sX2dhc3NfY29weV9nYXNzX3NldHVwX2NhbGxiYWNrLAorKyAgICAgICAg ICAgICAgICAodm9pZCAqKSBoYW5kbGUpKSAhPSBHTE9CVVNfU1VDQ0VTUyApCisrICAgICAgICAg ICAgeyAvKiB0aGVyZSB3YXMgYW4gZXJyb3IgKi8KKysgICAgICAgICAgICAgICAgZ2xvYnVzX211 dGV4X2xvY2soJnN0YXRlLT5tb25pdG9yLm11dGV4KTsKKysgICAgICAgICAgICAgICAgZXJyID0g Z2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCisrICAgICAgICAgICAgICAgICAgICBHTE9C VVNfR0FTU19DT1BZX01PRFVMRSwKKysgICAgICAgICAgICAgICAgICAgIEdMT0JVU19OVUxMLAor KyAgICAgICAgICAgICAgICAgICAgIlslc106IHRoZSBvcmlnaW5hbCBkZXN0aW5hdGlvbiB1cmw6 ICVzIHdhcyByZWZlcnJlZCB0bzogJXMsIGZvciB3aGljaCBnbG9idXNfZ2Fzc190cmFuc2Zlcl9y ZWdpc3Rlcl9nZXQgcmV0dXJuZWQgYW4gZXJyb3IgY29kZSBvZjogJWQiLAorKyAgICAgICAgICAg ICAgICAgICAgbXluYW1lLAorKyAgICAgICAgICAgICAgICAgICAgY3VycmVudF91cmwsCisrICAg ICAgICAgICAgICAgICAgICBzdGF0ZS0+ZGVzdC51cmwsCisrICAgICAgICAgICAgICAgICAgICBy Yyk7CisrICAgICAgICAgICAgICAgIGdsb2J1c19pX2dhc3NfY29weV9zZXRfZXJyb3IoaGFuZGxl LCBlcnIpOworKyAgICAgICAgICAgICAgICBnbG9idXNfbGliY19mcmVlKGN1cnJlbnRfdXJsKTsK KysgICAgICAgICAgICAgICAgZ2xvYnVzX2dhc3NfdHJhbnNmZXJfcmVmZXJyYWxfZGVzdHJveSgm cmVmZXJyYWwpOworKyAgICAgICAgICAgICAgICBnb3RvIHdha2V1cF9zdGF0ZTsKKysgICAgICAg ICAgICB9CisrICAgICAgICAgICAgZ2xvYnVzX2dhc3NfdHJhbnNmZXJfcmVmZXJyYWxfZGVzdHJv eSgmcmVmZXJyYWwpOworKyAgICAgICAgfQorKyAgICAgICAgZ2xvYnVzX2xpYmNfZnJlZShjdXJy ZW50X3VybCk7CisrICAgICAgICBicmVhazsKKyAKKyAgICAgY2FzZSBHTE9CVVNfR0FTU19UUkFO U0ZFUl9SRVFVRVNUX1BFTkRJTkc6CisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJVRwor LQlnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwgInJlcXVlc3Qgc3RhdHVzID09IEdMT0JVU19H QVNTX1RSQU5TRkVSX1JFUVVFU1RfUEVORElORywgc2hvdWxkIHNpZ25hbCB0aGUgbW9uaXRvclxu Iik7CistI2VuZGlmCistCWlmIChoYW5kbGUtPnN0YXR1cyA9PSBHTE9CVVNfR0FTU19DT1BZX1NU QVRVU19JTklUSUFMKQorLQl7CistCSAgICBnbG9idXNfbXV0ZXhfbG9jaygmc3RhdGUtPm1vbml0 b3IubXV0ZXgpOworLQkgICAgc3RhdGUtPnNvdXJjZS5zdGF0dXMgPSBHTE9CVVNfSV9HQVNTX0NP UFlfVEFSR0VUX1JFQURZOworLQkgICAgZ2xvYnVzX2NvbmRfc2lnbmFsKCZzdGF0ZS0+bW9uaXRv ci5jb25kKTsKKy0JICAgIGdsb2J1c19tdXRleF91bmxvY2soJnN0YXRlLT5tb25pdG9yLm11dGV4 KTsKKy0JfQorLQllbHNlCistCXsKKy0JICAgIGdsb2J1c19tdXRleF9sb2NrKCZzdGF0ZS0+bW9u aXRvci5tdXRleCk7CistCSAgICBzdGF0ZS0+ZGVzdC5zdGF0dXMgPSBHTE9CVVNfSV9HQVNTX0NP UFlfVEFSR0VUX1JFQURZOworLQkgICAgZ2xvYnVzX2NvbmRfc2lnbmFsKCZzdGF0ZS0+bW9uaXRv ci5jb25kKTsKKy0JICAgIGdsb2J1c19tdXRleF91bmxvY2soJnN0YXRlLT5tb25pdG9yLm11dGV4 KTsKKy0JfQorLQlicmVhazsKKysgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAi cmVxdWVzdCBzdGF0dXMgPT0gR0xPQlVTX0dBU1NfVFJBTlNGRVJfUkVRVUVTVF9QRU5ESU5HLCBz aG91bGQgc2lnbmFsIHRoZSBtb25pdG9yXG4iKTsKKysjZW5kaWYKKysgICAgICAgIGlmIChoYW5k bGUtPnN0YXR1cyA9PSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19JTklUSUFMKQorKyAgICAgICAg eworKyAgICAgICAgICAgIGdsb2J1c19tdXRleF9sb2NrKCZzdGF0ZS0+bW9uaXRvci5tdXRleCk7 CisrICAgICAgICAgICAgc3RhdGUtPnNvdXJjZS5zdGF0dXMgPSBHTE9CVVNfSV9HQVNTX0NPUFlf VEFSR0VUX1JFQURZOworKyAgICAgICAgICAgIGdsb2J1c19jb25kX3NpZ25hbCgmc3RhdGUtPm1v bml0b3IuY29uZCk7CisrICAgICAgICAgICAgZ2xvYnVzX211dGV4X3VubG9jaygmc3RhdGUtPm1v bml0b3IubXV0ZXgpOworKyAgICAgICAgfQorKyAgICAgICAgZWxzZQorKyAgICAgICAgeworKyAg ICAgICAgICAgIGdsb2J1c19tdXRleF9sb2NrKCZzdGF0ZS0+bW9uaXRvci5tdXRleCk7CisrICAg ICAgICAgICAgc3RhdGUtPmRlc3Quc3RhdHVzID0gR0xPQlVTX0lfR0FTU19DT1BZX1RBUkdFVF9S RUFEWTsKKysgICAgICAgICAgICBnbG9idXNfY29uZF9zaWduYWwoJnN0YXRlLT5tb25pdG9yLmNv bmQpOworKyAgICAgICAgICAgIGdsb2J1c19tdXRleF91bmxvY2soJnN0YXRlLT5tb25pdG9yLm11 dGV4KTsKKysgICAgICAgIH0KKysgICAgICAgIGJyZWFrOworIAorICAgICBjYXNlIEdMT0JVU19H QVNTX1RSQU5TRkVSX1JFUVVFU1RfRE9ORToKKyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RF QlVHCistCWdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAicmVxdWVzdCBzdGF0dXMgPT0gR0xP QlVTX0dBU1NfVFJBTlNGRVJfUkVRVUVTVF9ET05FXG4iKTsKKysgICAgICAgIGdsb2J1c19saWJj X2ZwcmludGYoc3RkZXJyLCAicmVxdWVzdCBzdGF0dXMgPT0gR0xPQlVTX0dBU1NfVFJBTlNGRVJf UkVRVUVTVF9ET05FXG4iKTsKKyAjZW5kaWYKKy0JZ2xvYnVzX211dGV4X2xvY2soJnN0YXRlLT5t b25pdG9yLm11dGV4KTsKKy0JaWYgKGhhbmRsZS0+c3RhdHVzID09IEdMT0JVU19HQVNTX0NPUFlf U1RBVFVTX0lOSVRJQUwpCistCSAgICBjdXJyZW50X3VybCA9IHN0YXRlLT5zb3VyY2UudXJsOwor LQllbHNlCistCSAgICBjdXJyZW50X3VybCA9IHN0YXRlLT5kZXN0LnVybDsKKysgICAgICAgIGds b2J1c19tdXRleF9sb2NrKCZzdGF0ZS0+bW9uaXRvci5tdXRleCk7CisrICAgICAgICBpZiAoaGFu ZGxlLT5zdGF0dXMgPT0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfSU5JVElBTCkKKysgICAgICAg ICAgICBjdXJyZW50X3VybCA9IHN0YXRlLT5zb3VyY2UudXJsOworKyAgICAgICAgZWxzZQorKyAg ICAgICAgICAgIGN1cnJlbnRfdXJsID0gc3RhdGUtPmRlc3QudXJsOworIAorLQllcnIgPSBnbG9i dXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKy0JICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxF LAorLQkgICAgR0xPQlVTX05VTEwsCistCSAgICAiWyVzXTogd2UncmUganVzdCBnZXR0aW5nIHNl dCB1cCwgYnV0IHRoZSBzdGF0dXMgb2YgdXJsICVzIGlzIEdMT0JVU19HQVNTX1RSQU5TRkVSX1JF UVVFU1RfRE9ORSIsCistCSAgICBteW5hbWUsCistCSAgICBjdXJyZW50X3VybCk7CistCWdsb2J1 c19pX2dhc3NfY29weV9zZXRfZXJyb3IoaGFuZGxlLCBlcnIpOworKyAgICAgICAgZXJyID0gZ2xv YnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCisrICAgICAgICAgICAgR0xPQlVTX0dBU1NfQ09Q WV9NT0RVTEUsCisrICAgICAgICAgICAgR0xPQlVTX05VTEwsCisrICAgICAgICAgICAgIlslc106 IHdlJ3JlIGp1c3QgZ2V0dGluZyBzZXQgdXAsIGJ1dCB0aGUgc3RhdHVzIG9mIHVybCAlcyBpcyBH TE9CVVNfR0FTU19UUkFOU0ZFUl9SRVFVRVNUX0RPTkUiLAorKyAgICAgICAgICAgIG15bmFtZSwK KysgICAgICAgICAgICBjdXJyZW50X3VybCk7CisrICAgICAgICBnbG9idXNfaV9nYXNzX2NvcHlf c2V0X2Vycm9yKGhhbmRsZSwgZXJyKTsKKyAKKy0JZ290byB3YWtldXBfc3RhdGU7CistCWJyZWFr OworKyAgICAgICAgZ290byB3YWtldXBfc3RhdGU7CisrICAgICAgICBicmVhazsKKyAKKyAgICAg Y2FzZSBHTE9CVVNfR0FTU19UUkFOU0ZFUl9SRVFVRVNUX0RFTklFRDoKKyAjaWZkZWYgR0xPQlVT X0lfR0FTU19DT1BZX0RFQlVHCistCWdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorKyAgICAg ICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICJyZXF1ZXN0 IHN0YXR1cyA9PSBHTE9CVVNfR0FTU19UUkFOU0ZFUl9SRVFVRVNUX0RFTklFRFxuIik7CisgI2Vu ZGlmCistCWdsb2J1c19tdXRleF9sb2NrKCZzdGF0ZS0+bW9uaXRvci5tdXRleCk7CistCWlmICho YW5kbGUtPnN0YXR1cyA9PSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19JTklUSUFMKQorLQkgICAg Y3VycmVudF91cmwgPSBzdGF0ZS0+c291cmNlLnVybDsKKy0JZWxzZQorLQkgICAgY3VycmVudF91 cmwgPSBzdGF0ZS0+ZGVzdC51cmw7CisrICAgICAgICBnbG9idXNfbXV0ZXhfbG9jaygmc3RhdGUt Pm1vbml0b3IubXV0ZXgpOworKyAgICAgICAgaWYgKGhhbmRsZS0+c3RhdHVzID09IEdMT0JVU19H QVNTX0NPUFlfU1RBVFVTX0lOSVRJQUwpCisrICAgICAgICAgICAgY3VycmVudF91cmwgPSBzdGF0 ZS0+c291cmNlLnVybDsKKysgICAgICAgIGVsc2UKKysgICAgICAgICAgICBjdXJyZW50X3VybCA9 IHN0YXRlLT5kZXN0LnVybDsKKyAKKy0JZGVuaWFsX3JlYXNvbiA9IGdsb2J1c19nYXNzX3RyYW5z ZmVyX3JlcXVlc3RfZ2V0X2RlbmlhbF9yZWFzb24ocmVxdWVzdCk7CistCWRlbmlhbF9tZXNzYWdl ID0KKysgICAgICAgIGRlbmlhbF9yZWFzb24gPSBnbG9idXNfZ2Fzc190cmFuc2Zlcl9yZXF1ZXN0 X2dldF9kZW5pYWxfcmVhc29uKHJlcXVlc3QpOworKyAgICAgICAgZGVuaWFsX21lc3NhZ2UgPQor ICAgICAgICAgICAgIGdsb2J1c19nYXNzX3RyYW5zZmVyX3JlcXVlc3RfZ2V0X2RlbmlhbF9tZXNz YWdlKHJlcXVlc3QpOworLQllcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKy0J ICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorLQkgICAgR0xPQlVTX05VTEwsCistCSAgICAi WyVzXTogIHVybDogJXMgcmVxdWVzdCB3YXMgREVOSUVELCBmb3IgcmVhc29uOiAlZCwgJXMiLAor LQkgICAgbXluYW1lLAorLQkgICAgY3VycmVudF91cmwsCistCSAgICBkZW5pYWxfcmVhc29uLAor LQkgICAgZGVuaWFsX21lc3NhZ2UpOworLQlnbG9idXNfaV9nYXNzX2NvcHlfc2V0X2Vycm9yKGhh bmRsZSwgZXJyKTsKKy0KKy0JZ290byB3YWtldXBfc3RhdGU7CistCWJyZWFrOworKyAgICAgICAg ZXJyID0gZ2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCisrICAgICAgICAgICAgR0xPQlVT X0dBU1NfQ09QWV9NT0RVTEUsCisrICAgICAgICAgICAgR0xPQlVTX05VTEwsCisrICAgICAgICAg ICAgIlslc106ICB1cmw6ICVzIHJlcXVlc3Qgd2FzIERFTklFRCwgZm9yIHJlYXNvbjogJWQsICVz IiwKKysgICAgICAgICAgICBteW5hbWUsCisrICAgICAgICAgICAgY3VycmVudF91cmwsCisrICAg ICAgICAgICAgZGVuaWFsX3JlYXNvbiwKKysgICAgICAgICAgICBkZW5pYWxfbWVzc2FnZSk7Cisr ICAgICAgICBnbG9idXNfaV9nYXNzX2NvcHlfc2V0X2Vycm9yKGhhbmRsZSwgZXJyKTsKKysKKysg ICAgICAgIGdvdG8gd2FrZXVwX3N0YXRlOworKyAgICAgICAgYnJlYWs7CisgCisgICAgIGNhc2Ug R0xPQlVTX0dBU1NfVFJBTlNGRVJfUkVRVUVTVF9GQUlMRUQ6CisgI2lmZGVmIEdMT0JVU19JX0dB U1NfQ09QWV9ERUJVRworLQlnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKysgICAgICAgIGds b2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAgICAicmVxdWVzdCBzdGF0 dXMgPT0gR0xPQlVTX0dBU1NfVFJBTlNGRVJfUkVRVUVTVF9GQUlMRURcbiIpOworICNlbmRpZgor LQlnbG9idXNfbXV0ZXhfbG9jaygmc3RhdGUtPm1vbml0b3IubXV0ZXgpOworLQlpZiAoaGFuZGxl LT5zdGF0dXMgPT0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfSU5JVElBTCkKKy0JICAgIGN1cnJl bnRfdXJsID0gc3RhdGUtPnNvdXJjZS51cmw7CistCWVsc2UKKy0JICAgIGN1cnJlbnRfdXJsID0g c3RhdGUtPmRlc3QudXJsOworLQorLQllcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmlu ZygKKy0JICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorLQkgICAgR0xPQlVTX05VTEwsCist CSAgICAiWyVzXTogIHVybDogJXMgcmVxdWVzdCBGQUlMRUQiLAorLQkgICAgbXluYW1lLAorLQkg ICAgY3VycmVudF91cmwpOworLQlnbG9idXNfaV9nYXNzX2NvcHlfc2V0X2Vycm9yKGhhbmRsZSwg ZXJyKTsKKy0KKy0JZ290byB3YWtldXBfc3RhdGU7CistCWJyZWFrOworKyAgICAgICAgZ2xvYnVz X211dGV4X2xvY2soJnN0YXRlLT5tb25pdG9yLm11dGV4KTsKKysgICAgICAgIGlmIChoYW5kbGUt PnN0YXR1cyA9PSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19JTklUSUFMKQorKyAgICAgICAgICAg IGN1cnJlbnRfdXJsID0gc3RhdGUtPnNvdXJjZS51cmw7CisrICAgICAgICBlbHNlCisrICAgICAg ICAgICAgY3VycmVudF91cmwgPSBzdGF0ZS0+ZGVzdC51cmw7CisrCisrICAgICAgICBlcnIgPSBn bG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKysgICAgICAgICAgICBHTE9CVVNfR0FTU19D T1BZX01PRFVMRSwKKysgICAgICAgICAgICBHTE9CVVNfTlVMTCwKKysgICAgICAgICAgICAiWyVz XTogIHVybDogJXMgcmVxdWVzdCBGQUlMRUQiLAorKyAgICAgICAgICAgIG15bmFtZSwKKysgICAg ICAgICAgICBjdXJyZW50X3VybCk7CisrICAgICAgICBnbG9idXNfaV9nYXNzX2NvcHlfc2V0X2Vy cm9yKGhhbmRsZSwgZXJyKTsKKysKKysgICAgICAgIGdvdG8gd2FrZXVwX3N0YXRlOworKyAgICAg ICAgYnJlYWs7CisgICAgIGRlZmF1bHQ6CisgICAgICAgICBicmVhazsKKyAgICAgfSAvKiBzd2l0 Y2ggKi8KK0BAIC0zMTQ2LDkgKzMxNDYsOSBAQCB3YWtldXBfc3RhdGU6CisgICAgICAqIGFzc3Vt ZSBtdXRleCBoYXMgYWxyZWFkeSBiZWVuIGxvY2tlZCBieSBhYm92ZSBjYWxscworICAgICAgKi8K KyAgICAgaWYgKGhhbmRsZS0+c3RhdHVzID09IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0lOSVRJ QUwpCistCXN0YXRlLT5zb3VyY2Uuc3RhdHVzID0gR0xPQlVTX0lfR0FTU19DT1BZX1RBUkdFVF9G QUlMRUQ7CisrICAgICAgICBzdGF0ZS0+c291cmNlLnN0YXR1cyA9IEdMT0JVU19JX0dBU1NfQ09Q WV9UQVJHRVRfRkFJTEVEOworICAgICBlbHNlCistCXN0YXRlLT5kZXN0LnN0YXR1cyA9IEdMT0JV U19JX0dBU1NfQ09QWV9UQVJHRVRfRkFJTEVEOworKyAgICAgICAgc3RhdGUtPmRlc3Quc3RhdHVz ID0gR0xPQlVTX0lfR0FTU19DT1BZX1RBUkdFVF9GQUlMRUQ7CisgICAgIGhhbmRsZS0+c3RhdHVz ID0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfRkFJTFVSRTsKKyAKKyAgICAgc3RhdGUtPm1vbml0 b3IuZG9uZSA9IDE7CitAQCAtMzE3MCw2MSArMzE3MCw2MSBAQCBnbG9idXNfbF9nYXNzX2NvcHlf aW9fc2V0dXBfZ2V0KAorIAorICAgICBpZiAoc3RhdGUtPnNvdXJjZS5kYXRhLmlvLmZyZWVfaGFu ZGxlKQorICAgICB7CistCWdsb2J1c191cmxfcGFyc2Uoc3RhdGUtPnNvdXJjZS51cmwsICZwYXJz ZWRfdXJsKTsKKy0Jc3RhdGUtPnNvdXJjZS5kYXRhLmlvLmhhbmRsZSA9KGdsb2J1c19pb19oYW5k bGVfdCAqKQorLQkgICAgZ2xvYnVzX2xpYmNfbWFsbG9jKHNpemVvZihnbG9idXNfaW9faGFuZGxl X3QpKTsKKy0KKy0JaWYoc3RhdGUtPnNvdXJjZS5kYXRhLmlvLmhhbmRsZSA9PSBHTE9CVVNfTlVM TCkKKy0JeworLQkgICAgZXJyID0gZ2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCistCQlH TE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKy0JCUdMT0JVU19OVUxMLAorLQkJIlslc106IGZhaWxl ZCB0byBtYWxsb2MgYSBnbG9idXNfaW9faGFuZGxlX3Qgc3VjY2Vzc2Z1bGx5IiwKKy0JCW15bmFt ZSk7CistCSAgICByZXR1cm4gZ2xvYnVzX2Vycm9yX3B1dChlcnIpOworLQl9CistCXJlc3VsdCA9 IGdsb2J1c19pb19maWxlX29wZW4oCistCSAgICBwYXJzZWRfdXJsLnVybF9wYXRoLAorLQkgICAg R0xPQlVTX0lPX0ZJTEVfUkRPTkxZLAorLQkJR0xPQlVTX0lPX0ZJTEVfSVJVU1IsCistCSAgICBz dGF0ZS0+c291cmNlLmF0dHItPmlvLAorLQkgICAgc3RhdGUtPnNvdXJjZS5kYXRhLmlvLmhhbmRs ZSk7CisrICAgICAgICBnbG9idXNfdXJsX3BhcnNlKHN0YXRlLT5zb3VyY2UudXJsLCAmcGFyc2Vk X3VybCk7CisrICAgICAgICBzdGF0ZS0+c291cmNlLmRhdGEuaW8uaGFuZGxlID0oZ2xvYnVzX2lv X2hhbmRsZV90ICopCisrICAgICAgICAgICAgZ2xvYnVzX2xpYmNfbWFsbG9jKHNpemVvZihnbG9i dXNfaW9faGFuZGxlX3QpKTsKKysKKysgICAgICAgIGlmKHN0YXRlLT5zb3VyY2UuZGF0YS5pby5o YW5kbGUgPT0gR0xPQlVTX05VTEwpCisrICAgICAgICB7CisrICAgICAgICAgICAgZXJyID0gZ2xv YnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCisrICAgICAgICAgICAgICAgIEdMT0JVU19HQVNT X0NPUFlfTU9EVUxFLAorKyAgICAgICAgICAgICAgICBHTE9CVVNfTlVMTCwKKysgICAgICAgICAg ICAgICAgIlslc106IGZhaWxlZCB0byBtYWxsb2MgYSBnbG9idXNfaW9faGFuZGxlX3Qgc3VjY2Vz c2Z1bGx5IiwKKysgICAgICAgICAgICAgICAgbXluYW1lKTsKKysgICAgICAgICAgICByZXR1cm4g Z2xvYnVzX2Vycm9yX3B1dChlcnIpOworKyAgICAgICAgfQorKyAgICAgICAgcmVzdWx0ID0gZ2xv YnVzX2lvX2ZpbGVfb3BlbigKKysgICAgICAgICAgICBwYXJzZWRfdXJsLnVybF9wYXRoLAorKyAg ICAgICAgICAgIEdMT0JVU19JT19GSUxFX1JET05MWSwKKysgICAgICAgICAgICAgICAgR0xPQlVT X0lPX0ZJTEVfSVJVU1IsCisrICAgICAgICAgICAgc3RhdGUtPnNvdXJjZS5hdHRyLT5pbywKKysg ICAgICAgICAgICBzdGF0ZS0+c291cmNlLmRhdGEuaW8uaGFuZGxlKTsKKyAKKyAKKyAgICAgICAg IGlmKHJlc3VsdCA9PSBHTE9CVVNfU1VDQ0VTUyAmJiBoYW5kbGUtPnBhcnRpYWxfb2Zmc2V0ICE9 IC0xKQorICAgICAgICAgeworICAgICAgICAgICAgIGlmKGhhbmRsZS0+cGFydGlhbF9lbmRfb2Zm c2V0ICE9IC0xKQorICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAgaGFuZGxlLT5wYXJ0 aWFsX2J5dGVzX3JlbWFpbmluZyA9IAorKyAgICAgICAgICAgICAgICBoYW5kbGUtPnBhcnRpYWxf Ynl0ZXNfcmVtYWluaW5nID0KKyAgICAgICAgICAgICAgICAgICAgIGhhbmRsZS0+cGFydGlhbF9l bmRfb2Zmc2V0IC0gaGFuZGxlLT5wYXJ0aWFsX29mZnNldDsKKyAgICAgICAgICAgICB9CisgICAg ICAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2lvX2ZpbGVfc2VlaygKKyAgICAgICAgICAgICAgICAg c3RhdGUtPnNvdXJjZS5kYXRhLmlvLmhhbmRsZSwKKyAgICAgICAgICAgICAgICAgaGFuZGxlLT5w YXJ0aWFsX29mZnNldCwKKy0gICAgICAgICAgICAgICAgU0VFS19TRVQpOyAgICAgICAgICAgICAg IAorKyAgICAgICAgICAgICAgICBTRUVLX1NFVCk7CisgICAgICAgICB9CisgCistCWlmKHJlc3Vs dD09R0xPQlVTX1NVQ0NFU1MpCistCXsKKysgICAgICAgIGlmKHJlc3VsdD09R0xPQlVTX1NVQ0NF U1MpCisrICAgICAgICB7CisgCistCSAgICBzdGF0ZS0+c291cmNlLnN0YXR1cyA9IEdMT0JVU19J X0dBU1NfQ09QWV9UQVJHRVRfUkVBRFk7CisrICAgICAgICAgICAgc3RhdGUtPnNvdXJjZS5zdGF0 dXMgPSBHTE9CVVNfSV9HQVNTX0NPUFlfVEFSR0VUX1JFQURZOworICNpZmRlZiBHTE9CVVNfSV9H QVNTX0NPUFlfREVCVUcKKy0JICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorKyAgICAg ICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAgICAgICAg ImlvX3NldHVwX2dldCgpOiBTVUNDRVNTIG9wZW5pbmcgJXNcbiIscGFyc2VkX3VybC51cmxfcGF0 aCk7CistCX0KKy0JZWxzZQorLQl7CistCSAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwK KysgICAgICAgIH0KKysgICAgICAgIGVsc2UKKysgICAgICAgIHsKKysgICAgICAgICAgICBnbG9i dXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgICJpb19zZXR1cF9n ZXQoKTogRkFJTFVSRSBvcGVuaW5nICVzXG4iLHBhcnNlZF91cmwudXJsX3BhdGgpOworICNlbmRp ZgorLQl9CisrICAgICAgICB9CisgICAgICAgICBnbG9idXNfdXJsX2Rlc3Ryb3koJnBhcnNlZF91 cmwpOworLSAgICAgICAgICAgIAorKworICAgICB9CisgICAgIGVsc2UKKyAgICAgeworICNpZmRl ZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKy0JZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIs ICJpb19zZXR1cF9nZXQoKTogaGFuZGxlIHNob3VsZCBhbHJlYWR5IGhhdmUgYmVlbiAgb3BlbmVk IGJ5IHRoZSB1c2VyXG4iKTsKKysgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAi aW9fc2V0dXBfZ2V0KCk6IGhhbmRsZSBzaG91bGQgYWxyZWFkeSBoYXZlIGJlZW4gIG9wZW5lZCBi eSB0aGUgdXNlclxuIik7CisgI2VuZGlmCisgICAgICAgICBzdGF0ZS0+c291cmNlLnN0YXR1cyA9 IEdMT0JVU19JX0dBU1NfQ09QWV9UQVJHRVRfUkVBRFk7CisgICAgICAgICByZXN1bHQ9R0xPQlVT X1NVQ0NFU1M7CitAQCAtMzI0OCw2MiArMzI0OCw2MiBAQCBnbG9idXNfbF9nYXNzX2NvcHlfaW9f c2V0dXBfcHV0KAorICAgICAgICAgZ2xvYnVzX3VybF9wYXJzZShzdGF0ZS0+ZGVzdC51cmwsICZw YXJzZWRfdXJsKTsKKyAgICAgICAgIHN0YXRlLT5kZXN0LmRhdGEuaW8uaGFuZGxlID0gKGdsb2J1 c19pb19oYW5kbGVfdCAqKQorICAgICAgICAgICAgIGdsb2J1c19saWJjX21hbGxvYyhzaXplb2Yo Z2xvYnVzX2lvX2hhbmRsZV90KSk7CistCWlmKHN0YXRlLT5kZXN0LmRhdGEuaW8uaGFuZGxlID09 IEdMT0JVU19OVUxMKQorLQl7CisrICAgICAgICBpZihzdGF0ZS0+ZGVzdC5kYXRhLmlvLmhhbmRs ZSA9PSBHTE9CVVNfTlVMTCkKKysgICAgICAgIHsKKyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZ X0RFQlVHCistCSAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwgImlvX3NldHVwX3B1dCgp OiBlcnJvciBtYWxsb2NpbmcgaW9faGFuZGxlX3RcbiIpOworKyAgICAgICAgICAgIGdsb2J1c19s aWJjX2ZwcmludGYoc3RkZXJyLCAiaW9fc2V0dXBfcHV0KCk6IGVycm9yIG1hbGxvY2luZyBpb19o YW5kbGVfdFxuIik7CisgI2VuZGlmCistCSAgICBlcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0 X3N0cmluZygKKy0JCUdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorLQkJR0xPQlVTX05VTEwsCist CQkiWyVzXTogZmFpbGVkIHRvIG1hbGxvYyBhIGdsb2J1c19pb19oYW5kbGVfdCBzdWNjZXNzZnVs bHkiLAorLQkJbXluYW1lKTsKKy0JICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7Cist CX0KKysgICAgICAgICAgICBlcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKysg ICAgICAgICAgICAgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCisrICAgICAgICAgICAgICAg IEdMT0JVU19OVUxMLAorKyAgICAgICAgICAgICAgICAiWyVzXTogZmFpbGVkIHRvIG1hbGxvYyBh IGdsb2J1c19pb19oYW5kbGVfdCBzdWNjZXNzZnVsbHkiLAorKyAgICAgICAgICAgICAgICBteW5h bWUpOworKyAgICAgICAgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7CisrICAgICAg ICB9CisgCisgICAgICAgICByZXN1bHQgPSBnbG9idXNfaW9fZmlsZV9vcGVuKAorLQkgICAgcGFy c2VkX3VybC51cmxfcGF0aCwKKy0JICAgIChoYW5kbGUtPnBhcnRpYWxfb2Zmc2V0ID09IC0xKSA/ CistCSAgICAoR0xPQlVTX0lPX0ZJTEVfV1JPTkxZfEdMT0JVU19JT19GSUxFX0NSRUFUfEdMT0JV U19JT19GSUxFX1RSVU5DKSA6CistCSAgICAoR0xPQlVTX0lPX0ZJTEVfV1JPTkxZfEdMT0JVU19J T19GSUxFX0NSRUFUKSwKKy0JICAgIChHTE9CVVNfSU9fRklMRV9JUlVTUnxHTE9CVVNfSU9fRklM RV9JV1VTUnwKKy0JICAgICAgICBHTE9CVVNfSU9fRklMRV9JUkdSUHxHTE9CVVNfSU9fRklMRV9J V0dSUHwKKy0JICAgICAgICBHTE9CVVNfSU9fRklMRV9JUk9USHxHTE9CVVNfSU9fRklMRV9JV09U SCksCistCSAgICBzdGF0ZS0+ZGVzdC5hdHRyLT5pbywKKy0JICAgIHN0YXRlLT5kZXN0LmRhdGEu aW8uaGFuZGxlKTsKKysgICAgICAgICAgICBwYXJzZWRfdXJsLnVybF9wYXRoLAorKyAgICAgICAg ICAgIChoYW5kbGUtPnBhcnRpYWxfb2Zmc2V0ID09IC0xKSA/CisrICAgICAgICAgICAgKEdMT0JV U19JT19GSUxFX1dST05MWXxHTE9CVVNfSU9fRklMRV9DUkVBVHxHTE9CVVNfSU9fRklMRV9UUlVO QykgOgorKyAgICAgICAgICAgIChHTE9CVVNfSU9fRklMRV9XUk9OTFl8R0xPQlVTX0lPX0ZJTEVf Q1JFQVQpLAorKyAgICAgICAgICAgIChHTE9CVVNfSU9fRklMRV9JUlVTUnxHTE9CVVNfSU9fRklM RV9JV1VTUnwKKysgICAgICAgICAgICAgICAgR0xPQlVTX0lPX0ZJTEVfSVJHUlB8R0xPQlVTX0lP X0ZJTEVfSVdHUlB8CisrICAgICAgICAgICAgICAgIEdMT0JVU19JT19GSUxFX0lST1RIfEdMT0JV U19JT19GSUxFX0lXT1RIKSwKKysgICAgICAgICAgICBzdGF0ZS0+ZGVzdC5hdHRyLT5pbywKKysg ICAgICAgICAgICBzdGF0ZS0+ZGVzdC5kYXRhLmlvLmhhbmRsZSk7CisgCisgICAgICAgICBpZihy ZXN1bHQgPT0gR0xPQlVTX1NVQ0NFU1MgJiYgaGFuZGxlLT5wYXJ0aWFsX29mZnNldCAhPSAtMSkK KyAgICAgICAgIHsKKyAgICAgICAgICAgICByZXN1bHQgPSBnbG9idXNfaW9fZmlsZV9zZWVrKAor ICAgICAgICAgICAgICAgICBzdGF0ZS0+ZGVzdC5kYXRhLmlvLmhhbmRsZSwKKyAgICAgICAgICAg ICAgICAgaGFuZGxlLT5wYXJ0aWFsX29mZnNldCwKKy0gICAgICAgICAgICAgICAgU0VFS19TRVQp OyAgICAgICAgICAgICAgIAorKyAgICAgICAgICAgICAgICBTRUVLX1NFVCk7CisgICAgICAgICB9 CisgCisgCistCWlmKHJlc3VsdD09R0xPQlVTX1NVQ0NFU1MpCistCXsKKy0JICAgIHN0YXRlLT5k ZXN0LnN0YXR1cyA9IEdMT0JVU19JX0dBU1NfQ09QWV9UQVJHRVRfUkVBRFk7CisrICAgICAgICBp ZihyZXN1bHQ9PUdMT0JVU19TVUNDRVNTKQorKyAgICAgICAgeworKyAgICAgICAgICAgIHN0YXRl LT5kZXN0LnN0YXR1cyA9IEdMT0JVU19JX0dBU1NfQ09QWV9UQVJHRVRfUkVBRFk7CisgI2lmZGVm IEdMT0JVU19JX0dBU1NfQ09QWV9ERUJVRworLQkgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRl cnIsCisrICAgICAgICAgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisgICAgICAgICAg ICAgICAgICAgICAiaW9fc2V0dXBfcHV0KCk6IFNVQ0NFU1Mgb3BlbmluZyAlc1xuIixwYXJzZWRf dXJsLnVybF9wYXRoKTsKKy0JfQorLQllbHNlCistCXsKKy0JICAgIGdsb2J1c19saWJjX2Zwcmlu dGYoc3RkZXJyLAorKyAgICAgICAgfQorKyAgICAgICAgZWxzZQorKyAgICAgICAgeworKyAgICAg ICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAgICAgICAg ImlvX3NldHVwX3B1dCgpOiBGQUlMRUQgb3BlbmluZyAlc1xuIixwYXJzZWRfdXJsLnVybF9wYXRo KTsKKyAjZW5kaWYKKy0JfQorKyAgICAgICAgfQorIAorICAgICAgICAgZ2xvYnVzX3VybF9kZXN0 cm95KCZwYXJzZWRfdXJsKTsKKyAgICAgfQorICAgICBlbHNlCisgICAgIHsKKyAjaWZkZWYgR0xP QlVTX0lfR0FTU19DT1BZX0RFQlVHCistCWdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAiaW9f c2V0dXBfcHV0KCk6IGhhbmRsZSBzaG91bGQgYWxyZWFkeSBoYXZlIGJlZW4gIG9wZW5lZCBieSB0 aGUgdXNlclxuIik7CisrICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwgImlvX3Nl dHVwX3B1dCgpOiBoYW5kbGUgc2hvdWxkIGFscmVhZHkgaGF2ZSBiZWVuICBvcGVuZWQgYnkgdGhl IHVzZXJcbiIpOworICNlbmRpZgorLQlzdGF0ZS0+ZGVzdC5zdGF0dXMgPSBHTE9CVVNfSV9HQVNT X0NPUFlfVEFSR0VUX1JFQURZOworLQlyZXN1bHQ9R0xPQlVTX1NVQ0NFU1M7CisrICAgICAgICBz dGF0ZS0+ZGVzdC5zdGF0dXMgPSBHTE9CVVNfSV9HQVNTX0NPUFlfVEFSR0VUX1JFQURZOworKyAg ICAgICAgcmVzdWx0PUdMT0JVU19TVUNDRVNTOworICAgICB9CisgCisgICAgIHJldHVybiByZXN1 bHQ7CitAQCAtMzMyNiw3ICszMzI2LDcgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2Z0cF9zZXR1cF9n ZXQoCisgICAgICAgICAgICAgR0xPQlVTX05VTEwsCisgICAgICAgICAgICAgZ2xvYnVzX2xfZ2Fz c19jb3B5X2Z0cF9nZXRfZG9uZV9jYWxsYmFjaywKKyAgICAgICAgICAgICAodm9pZCAqKSBoYW5k bGUpOworLSAgICB9ICAgIAorKyAgICB9CisgICAgIGVsc2UKKyAgICAgeworICAgICAgICAgcmVz dWx0ID0gZ2xvYnVzX2Z0cF9jbGllbnRfcGFydGlhbF9nZXQoCitAQCAtMzMzNSwyOSArMzMzNSwy OSBAQCBnbG9idXNfbF9nYXNzX2NvcHlfZnRwX3NldHVwX2dldCgKKyAgICAgICAgICAgICBzdGF0 ZS0+c291cmNlLmF0dHItPmZ0cF9hdHRyLAorICAgICAgICAgICAgIEdMT0JVU19OVUxMLAorICAg ICAgICAgICAgIGhhbmRsZS0+cGFydGlhbF9vZmZzZXQsCistICAgICAgICAgICAgaGFuZGxlLT5w YXJ0aWFsX2VuZF9vZmZzZXQsICAgICAgICAgICAgICAgICAgIAorKyAgICAgICAgICAgIGhhbmRs ZS0+cGFydGlhbF9lbmRfb2Zmc2V0LAorICAgICAgICAgICAgIGdsb2J1c19sX2dhc3NfY29weV9m dHBfZ2V0X2RvbmVfY2FsbGJhY2ssCisgICAgICAgICAgICAgKHZvaWQgKikgaGFuZGxlKTsKKyAg ICAgfQorLSAgICAKKysKKyAgICAgaWYocmVzdWx0PT1HTE9CVVNfU1VDQ0VTUykKKyAgICAgewor LQlzdGF0ZS0+c291cmNlLnN0YXR1cyA9IEdMT0JVU19JX0dBU1NfQ09QWV9UQVJHRVRfUkVBRFk7 CistCXN0YXRlLT5zb3VyY2UuZGF0YS5mdHAuY29tcGxldGVkID0gR0xPQlVTX0ZBTFNFOworLQkK KysgICAgICAgIHN0YXRlLT5zb3VyY2Uuc3RhdHVzID0gR0xPQlVTX0lfR0FTU19DT1BZX1RBUkdF VF9SRUFEWTsKKysgICAgICAgIHN0YXRlLT5zb3VyY2UuZGF0YS5mdHAuY29tcGxldGVkID0gR0xP QlVTX0ZBTFNFOworKworICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKy0JZ2xvYnVz X2xpYmNfZnByaW50ZihzdGRlcnIsICJmdHBfc2V0dXBfZ2V0KCk6IFNVQ0NFU1Mgb3BlbmluZyAl c1xuIiwKKysgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAiZnRwX3NldHVwX2dl dCgpOiBTVUNDRVNTIG9wZW5pbmcgJXNcbiIsCisgICAgICAgICAgICAgc3RhdGUtPnNvdXJjZS51 cmwpOworICAgICB9CisgICAgIGVsc2UKKyAgICAgeworLQlnbG9idXNfbGliY19mcHJpbnRmKHN0 ZGVyciwgImZ0cF9zZXR1cF9nZXQoKTogRkFJTFVSRSBvcGVuaW5nICVzXG4iLAorKyAgICAgICAg Z2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJmdHBfc2V0dXBfZ2V0KCk6IEZBSUxVUkUgb3Bl bmluZyAlc1xuIiwKKyAgICAgICAgICAgICBzdGF0ZS0+c291cmNlLnVybCk7CisgI2VuZGlmCisg ICAgIH0KKyAKKyAgICAgcmV0dXJuIHJlc3VsdDsKKy0gICAgCisrCisgfSAvKiBnbG9idXNfbF9n YXNzX2NvcHlfZnRwX3NldHVwX2dldCgpICovCisgCisgZ2xvYnVzX3Jlc3VsdF90CitAQCAtMzM2 OCw3ICszMzY4LDcgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2Z0cF9zZXR1cF9wdXQoCisgICAgIGds b2J1c19yZXN1bHRfdCByZXN1bHQ7CisgCisgICAgIGlmKGhhbmRsZS0+cGFydGlhbF9vZmZzZXQg PT0gLTEpCistICAgIHsgICAgICAgCisrICAgIHsKKyAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19m dHBfY2xpZW50X3B1dCgKKyAgICAgICAgICAgICBzdGF0ZS0+ZGVzdC5kYXRhLmZ0cC5oYW5kbGUs CisgICAgICAgICAgICAgc3RhdGUtPmRlc3QudXJsLAorQEAgLTMzODUsMTggKzMzODUsMTggQEAg Z2xvYnVzX2xfZ2Fzc19jb3B5X2Z0cF9zZXR1cF9wdXQoCisgICAgICAgICAgICAgc3RhdGUtPmRl c3QuYXR0ci0+ZnRwX2F0dHIsCisgICAgICAgICAgICAgR0xPQlVTX05VTEwsCisgICAgICAgICAg ICAgaGFuZGxlLT5wYXJ0aWFsX29mZnNldCwKKy0gICAgICAgICAgICBoYW5kbGUtPnBhcnRpYWxf ZW5kX29mZnNldCwgICAgICAgICAgICAgICAgICAgCisrICAgICAgICAgICAgaGFuZGxlLT5wYXJ0 aWFsX2VuZF9vZmZzZXQsCisgICAgICAgICAgICAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2Z0cF9wdXRf ZG9uZV9jYWxsYmFjaywKKyAgICAgICAgICAgICAodm9pZCAqKSBoYW5kbGUpOworICAgICB9Cist ICAgIAorKworICAgICBpZihyZXN1bHQ9PUdMT0JVU19TVUNDRVNTKQorICAgICB7CistCXN0YXRl LT5kZXN0LnN0YXR1cyA9IEdMT0JVU19JX0dBU1NfQ09QWV9UQVJHRVRfUkVBRFk7CistCXN0YXRl LT5kZXN0LmRhdGEuZnRwLmNvbXBsZXRlZCA9IEdMT0JVU19GQUxTRTsKKy0JCisrICAgICAgICBz dGF0ZS0+ZGVzdC5zdGF0dXMgPSBHTE9CVVNfSV9HQVNTX0NPUFlfVEFSR0VUX1JFQURZOworKyAg ICAgICAgc3RhdGUtPmRlc3QuZGF0YS5mdHAuY29tcGxldGVkID0gR0xPQlVTX0ZBTFNFOworKwor ICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKy0JZ2xvYnVzX2xpYmNfZnByaW50Zihz dGRlcnIsCisrICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAg ICAgICAgImZ0cF9zZXR1cF9wdXQoKTogU1VDQ0VTUyBvcGVuaW5nICVzXG4iLHN0YXRlLT5kZXN0 LnVybCk7CisgICAgIH0KKyAgICAgZWxzZQorQEAgLTM0MDYsNyArMzQwNiw3IEBAIGdsb2J1c19s X2dhc3NfY29weV9mdHBfc2V0dXBfcHV0KAorICAgICAgICAgICAgIGdsb2J1c19sX2dhc3NfY29w eV9wZXJmX2NhbmNlbF9mdHBfY2FsbGJhY2soaGFuZGxlLT5wZXJmb3JtYW5jZSk7CisgICAgICAg ICB9CisgCistCWdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorKyAgICAgICAgZ2xvYnVzX2xp YmNfZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICJmdHBfc2V0dXBfcHV0KCk6IEZB SUxVUkUgb3BlbmluZyAlc1xuIixzdGF0ZS0+ZGVzdC51cmwpOworICNlbmRpZgorICAgICB9CitA QCAtMzQxOSwxNSArMzQxOSwxNSBAQCBnbG9idXNfbF9nYXNzX2NvcHlfZnRwX3NldHVwX3B1dCgK KyAKKyB2b2lkCisgZ2xvYnVzX2xfZ2Fzc19jb3B5X2Z0cF90cmFuc2Zlcl9jYWxsYmFjaygKKy0g ICAgdm9pZCAqCQkJICAgICAgIHVzZXJfYXJnLAorKyAgICB2b2lkICogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVzZXJfYXJnLAorICAgICBnbG9idXNfZnRwX2NsaWVudF9oYW5kbGVfdCAq ICAgICAgIGhhbmRsZSwKKy0gICAgZ2xvYnVzX29iamVjdF90ICoJCSAgICAgICBlcnJvcikKKysg ICAgZ2xvYnVzX29iamVjdF90ICogICAgICAgICAgICAgICAgICBlcnJvcikKKyB7CisgICAgIGds b2J1c19vYmplY3RfdCAqIGVyciA9IEdMT0JVU19OVUxMOworICAgICBnbG9idXNfcmVzdWx0X3Qg ICByZXN1bHQ7CisgCisgICAgIGdsb2J1c19nYXNzX2NvcHlfaGFuZGxlX3QgKiBjb3B5X2hhbmRs ZQorLQk9IChnbG9idXNfZ2Fzc19jb3B5X2hhbmRsZV90ICopIHVzZXJfYXJnOworKyAgICAgICAg PSAoZ2xvYnVzX2dhc3NfY29weV9oYW5kbGVfdCAqKSB1c2VyX2FyZzsKKyAKKyAjaWZkZWYgR0xP QlVTX0lfR0FTU19DT1BZX0RFQlVHCisgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAi ZnRwX3RyYW5zZmVyX2NhbGxiYWNrKCk6IGNhbGxlZFxuIik7CitAQCAtMzQzNSwxNyArMzQzNSwx NyBAQCBnbG9idXNfbF9nYXNzX2NvcHlfZnRwX3RyYW5zZmVyX2NhbGxiYWNrKAorIAorICAgICBp ZihlcnJvciAhPSBHTE9CVVNfU1VDQ0VTUykKKyAgICAgeworLQkvKiBkbyBzb21lIGVycm9yIGhh bmRsaW5nICovCistCS8qIGNvcHlfaGFuZGxlLT5lcnIgPSBnbG9idXNfY29weV9lcnJvcihlcnJv cik7Ki8KKysgICAgICAgIC8qIGRvIHNvbWUgZXJyb3IgaGFuZGxpbmcgKi8KKysgICAgICAgIC8q IGNvcHlfaGFuZGxlLT5lcnIgPSBnbG9idXNfY29weV9lcnJvcihlcnJvcik7Ki8KKyAKKyAgICAg ICAgIGlmIChjb3B5X2hhbmRsZS0+c3RhdHVzICE9IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0NB TkNFTCkKKyAgICAgICAgIHsKKy0JICAgIGdsb2J1c19pX2dhc3NfY29weV9zZXRfZXJyb3IoY29w eV9oYW5kbGUsIGVycm9yKTsKKy0JICAgIGNvcHlfaGFuZGxlLT5zdGF0dXMgPSBHTE9CVVNfR0FT U19DT1BZX1NUQVRVU19GQUlMVVJFOworKyAgICAgICAgICAgIGdsb2J1c19pX2dhc3NfY29weV9z ZXRfZXJyb3IoY29weV9oYW5kbGUsIGVycm9yKTsKKysgICAgICAgICAgICBjb3B5X2hhbmRsZS0+ c3RhdHVzID0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfRkFJTFVSRTsKKyAgICAgICAgIH0KKyAK KyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVHCistCWdsb2J1c19saWJjX2ZwcmludGYo c3RkZXJyLCAiZnRwX3RyYW5zZmVyX2NhbGxiYWNrKCk6ICFHTE9CVVNfU1VDRVNTLCBlcnJvcj0g JWRcbiIsCisrICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwgImZ0cF90cmFuc2Zl cl9jYWxsYmFjaygpOiAhR0xPQlVTX1NVQ0VTUywgZXJyb3I9ICVkXG4iLAorICAgICAgICAgICAg IGVycm9yKTsKKyAjZW5kaWYKKyAgICAgfQorQEAgLTM0NTMsNyArMzQ1Myw3IEBAIGdsb2J1c19s X2dhc3NfY29weV9mdHBfdHJhbnNmZXJfY2FsbGJhY2soCisgICAgIHsKKyAgICAgICAgIGNvcHlf aGFuZGxlLT5zdGF0dXMgPSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19ET05FOworICNpZmRlZiBH TE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKy0JZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJm dHBfdHJhbnNmZXJfY2FsbGJhY2soKTogR0xPQlVTX1NVQ0NFU1NcbiIpOworKyAgICAgICAgZ2xv YnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJmdHBfdHJhbnNmZXJfY2FsbGJhY2soKTogR0xPQlVT X1NVQ0NFU1NcbiIpOworICNlbmRpZgorICAgICB9CisgCitAQCAtMzQ2OCwyNiArMzQ2OCwyNiBA QCBnbG9idXNfbF9nYXNzX2NvcHlfZnRwX3RyYW5zZmVyX2NhbGxiYWNrKAorICAgICBzd2l0Y2go Y29weV9oYW5kbGUtPnN0YXR1cykKKyAgICAgeworICAgICBjYXNlIEdMT0JVU19HQVNTX0NPUFlf U1RBVFVTX0RPTkU6CistCSAgY29weV9oYW5kbGUtPnN0YXR1cyA9IEdMT0JVU19HQVNTX0NPUFlf U1RBVFVTX0RPTkVfU1VDQ0VTUzsKKy0JICBicmVhazsKKysgICAgICAgICAgY29weV9oYW5kbGUt PnN0YXR1cyA9IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0RPTkVfU1VDQ0VTUzsKKysgICAgICAg ICAgYnJlYWs7CisgICAgIGNhc2UgR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfRkFJTFVSRToKKy0J ICBjb3B5X2hhbmRsZS0+c3RhdHVzID0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfRE9ORV9GQUlM VVJFOworLQkgIGJyZWFrOworKyAgICAgICAgICBjb3B5X2hhbmRsZS0+c3RhdHVzID0gR0xPQlVT X0dBU1NfQ09QWV9TVEFUVVNfRE9ORV9GQUlMVVJFOworKyAgICAgICAgICBicmVhazsKKyAgICAg Y2FzZSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19DQU5DRUw6CistCSAgY29weV9oYW5kbGUtPnN0 YXR1cyA9IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0RPTkVfQ0FOQ0VMTEVEOworLQkgIGJyZWFr OworKyAgICAgICAgICBjb3B5X2hhbmRsZS0+c3RhdHVzID0gR0xPQlVTX0dBU1NfQ09QWV9TVEFU VVNfRE9ORV9DQU5DRUxMRUQ7CisrICAgICAgICAgIGJyZWFrOworICAgICBkZWZhdWx0OgorLQkg IGJyZWFrOworKyAgICAgICAgICBicmVhazsKKyAgICAgfQorIAorICAgICAvKiBjaGVja3N1bSB2 ZXJpZnkgKi8KKy0gICAgaWYoY29weV9oYW5kbGUtPnN0YXR1cyA9PSBHTE9CVVNfR0FTU19DT1BZ X1NUQVRVU19ET05FX1NVQ0NFU1MgJiYgZXJyID09IEdMT0JVU19OVUxMICYmIAorKyAgICBpZihj b3B5X2hhbmRsZS0+c3RhdHVzID09IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0RPTkVfU1VDQ0VT UyAmJiBlcnIgPT0gR0xPQlVTX05VTEwgJiYKKyAgICAgICAgY29weV9oYW5kbGUtPnN0YXRlLT5j a3NtX2hhbmRsZSAhPSBHTE9CVVNfTlVMTCAmJiBjb3B5X2hhbmRsZS0+c3RhdGUtPmNoZWNrc3Vt ICE9IEdMT0JVU19OVUxMKQorICAgICB7CisgICAgICAgICBnbG9idXNfYXNzZXJ0X3N0cmluZyhj b3B5X2hhbmRsZS0+c3RhdGUtPmRlc3QuZnJlZV9hdHRyICE9IEdMT0JVU19UUlVFLCAiQ2hlY2tz dW0gdmVyaWZpY2F0aW9uIHJlcXVpcmVzIGZ0cCBhdHRyaWJ1dGVzLiIpOworICAgICAgICAgcmVz dWx0ID0gZ2xvYnVzX2xfZ2Fzc19jb3B5X3ZlcmlmeV9ja3NtKAorICAgICAgICAgICAgIGNvcHlf aGFuZGxlLCBjb3B5X2hhbmRsZS0+c3RhdGUtPmRlc3QuYXR0ciwgY29weV9oYW5kbGUtPnN0YXRl LT5kZXN0LnVybCk7CistICAgICAgICBpZihyZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MpIAorKyAg ICAgICAgaWYocmVzdWx0ICE9IEdMT0JVU19TVUNDRVNTKQorICAgICAgICAgeworICAgICAgICAg ICAgIGVyciA9IGdsb2J1c19lcnJvcl9nZXQocmVzdWx0KTsKKyAgICAgICAgICAgICBjb3B5X2hh bmRsZS0+c3RhdHVzID0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfRE9ORV9GQUlMVVJFOworQEAg LTM1MDIsMTEgKzM1MDIsMTEgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2Z0cF90cmFuc2Zlcl9jYWxs YmFjaygKKyAgICAgfQorIAorICAgICBpZihjb3B5X2hhbmRsZS0+dXNlcl9jYWxsYmFjayAhPSBH TE9CVVNfTlVMTCkKKy0JY29weV9oYW5kbGUtPnVzZXJfY2FsbGJhY2soCistCSAgICBjb3B5X2hh bmRsZS0+Y2FsbGJhY2tfYXJnLAorLQkgICAgY29weV9oYW5kbGUsCistCSAgICBlcnIpOworLSAg ICAKKysgICAgICAgIGNvcHlfaGFuZGxlLT51c2VyX2NhbGxiYWNrKAorKyAgICAgICAgICAgIGNv cHlfaGFuZGxlLT5jYWxsYmFja19hcmcsCisrICAgICAgICAgICAgY29weV9oYW5kbGUsCisrICAg ICAgICAgICAgZXJyKTsKKysKKyAgICAgaWYoZXJyKQorICAgICB7CisgICAgICAgICBnbG9idXNf b2JqZWN0X2ZyZWUoZXJyKTsKK0BAIC0zNTE3LDI3ICszNTE3LDI3IEBAIHZvaWQKKyBnbG9idXNf bF9nYXNzX2NvcHlfZnRwX2dldF9kb25lX2NhbGxiYWNrKAorICAgICB2b2lkICogY2FsbGJhY2tf YXJnLAorICAgICBnbG9idXNfZnRwX2NsaWVudF9oYW5kbGVfdCAqIGhhbmRsZSwKKy0gICAgZ2xv YnVzX29iamVjdF90ICoJICAgICAgIGVycm9yKQorKyAgICBnbG9idXNfb2JqZWN0X3QgKiAgICAg ICAgICBlcnJvcikKKyB7CisgICAgIGdsb2J1c19nYXNzX2NvcHlfaGFuZGxlX3QgKiBjb3B5X2hh bmRsZQorLQk9IChnbG9idXNfZ2Fzc19jb3B5X2hhbmRsZV90ICopIGNhbGxiYWNrX2FyZzsKKysg ICAgICAgID0gKGdsb2J1c19nYXNzX2NvcHlfaGFuZGxlX3QgKikgY2FsbGJhY2tfYXJnOworICAg ICBnbG9idXNfaV9nYXNzX2NvcHlfY2FuY2VsX3QgKiBjYW5jZWxfaW5mbyA9IEdMT0JVU19OVUxM OworIAorICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKyAgICAgZ2xvYnVzX2xpYmNf ZnByaW50ZihzdGRlcnIsICJmdHBfZ2V0X2RvbmVfY2FsbGJhY2soKTogc3RhcnRpbmdcbiIpOwor ICNlbmRpZgorLSAgICAKKysKKyAgICAgZ2xvYnVzX211dGV4X2xvY2soJmNvcHlfaGFuZGxlLT5z dGF0ZS0+bXV0ZXgpOworICAgICB7CisgICAgICAgICBjb3B5X2hhbmRsZS0+c3RhdGUtPnNvdXJj ZS5kYXRhLmZ0cC5jb21wbGV0ZWQgPSBHTE9CVVNfVFJVRTsKKyAgICAgfQorICAgICBnbG9idXNf bXV0ZXhfdW5sb2NrKCZjb3B5X2hhbmRsZS0+c3RhdGUtPm11dGV4KTsKKy0gICAgCisrCisgICAg IGlmICgoY29weV9oYW5kbGUtPnN0YXR1cyA9PSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19DQU5D RUwpIHx8CisgICAgICAgICAoY29weV9oYW5kbGUtPnN0YXR1cyA9PSBHTE9CVVNfR0FTU19DT1BZ X1NUQVRVU19GQUlMVVJFKSkKKyAgICAgeworICAgICAgICAgLyogcHJlZmVyIHRoaXMgZXJyb3Ig b3ZlciBhIGRhdGEgZXJyb3IgKi8KKy0gICAgICAgIGlmKGNvcHlfaGFuZGxlLT5lcnIgJiYgCisr ICAgICAgICBpZihjb3B5X2hhbmRsZS0+ZXJyICYmCisgICAgICAgICAgICAgY29weV9oYW5kbGUt PmVyciA9PSBjb3B5X2hhbmRsZS0+c3RhdGUtPnNvdXJjZS5kYXRhLmZ0cC5kYXRhX2VycikKKyAg ICAgICAgIHsKKyAgICAgICAgICAgICBnbG9idXNfb2JqZWN0X2ZyZWUoY29weV9oYW5kbGUtPmVy cik7CitAQCAtMzU0NSw3ICszNTQ1LDcgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2Z0cF9nZXRfZG9u ZV9jYWxsYmFjaygKKyAgICAgICAgICAgICBjb3B5X2hhbmRsZS0+c3RhdGUtPnNvdXJjZS5kYXRh LmZ0cC5kYXRhX2VyciA9IE5VTEw7CisgICAgICAgICAgICAgZ2xvYnVzX2lfZ2Fzc19jb3B5X3Nl dF9lcnJvcihjb3B5X2hhbmRsZSwgZXJyb3IpOworICAgICAgICAgfQorLSAgICAgICAgCisrCisg ICAgICAgICBjYW5jZWxfaW5mbyA9IChnbG9idXNfaV9nYXNzX2NvcHlfY2FuY2VsX3QgKikKKyAg ICAgICAgICAgICBnbG9idXNfbGliY19tYWxsb2Moc2l6ZW9mKGdsb2J1c19pX2dhc3NfY29weV9j YW5jZWxfdCkpOworICAgICAgICAgY2FuY2VsX2luZm8tPmhhbmRsZSA9IGNvcHlfaGFuZGxlOwor QEAgLTM1NTgsNyArMzU1OCw3IEBAIGdsb2J1c19sX2dhc3NfY29weV9mdHBfZ2V0X2RvbmVfY2Fs bGJhY2soCisgICAgICAgICBpZiAoZXJyb3IgIT0gR0xPQlVTX1NVQ0NFU1MpCisgICAgICAgICB7 CisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJVRworLQkgICAgZ2xvYnVzX2xpYmNfZnBy aW50ZihzdGRlcnIsICJmdHBfZ2V0X2RvbmVfY2FsbGJhY2soKTogY2FsbGVkIHdpdGggZXJyb3Jc biIpOworKyAgICAgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAiZnRwX2dldF9k b25lX2NhbGxiYWNrKCk6IGNhbGxlZCB3aXRoIGVycm9yXG4iKTsKKyAjZW5kaWYKKyAgICAgICAg ICAgICBjb3B5X2hhbmRsZS0+c3RhdGUtPnNvdXJjZS5zdGF0dXMgPSBHTE9CVVNfSV9HQVNTX0NP UFlfVEFSR0VUX0ZBSUxFRDsKKyAgICAgICAgICAgICBjb3B5X2hhbmRsZS0+c3RhdHVzID0gR0xP QlVTX0dBU1NfQ09QWV9TVEFUVVNfRkFJTFVSRTsKK0BAIC0zNTgzLDI3ICszNTgzLDI3IEBAIHZv aWQKKyBnbG9idXNfbF9nYXNzX2NvcHlfZnRwX3B1dF9kb25lX2NhbGxiYWNrKAorICAgICB2b2lk ICogY2FsbGJhY2tfYXJnLAorICAgICBnbG9idXNfZnRwX2NsaWVudF9oYW5kbGVfdCAqIGhhbmRs ZSwKKy0gICAgZ2xvYnVzX29iamVjdF90ICoJICAgICAgIGVycm9yKQorKyAgICBnbG9idXNfb2Jq ZWN0X3QgKiAgICAgICAgICBlcnJvcikKKyB7CisgICAgIGdsb2J1c19nYXNzX2NvcHlfaGFuZGxl X3QgKiBjb3B5X2hhbmRsZQorLQk9IChnbG9idXNfZ2Fzc19jb3B5X2hhbmRsZV90ICopIGNhbGxi YWNrX2FyZzsKKysgICAgICAgID0gKGdsb2J1c19nYXNzX2NvcHlfaGFuZGxlX3QgKikgY2FsbGJh Y2tfYXJnOworICAgICBnbG9idXNfaV9nYXNzX2NvcHlfY2FuY2VsX3QgKiBjYW5jZWxfaW5mbyA9 IEdMT0JVU19OVUxMOworIAorICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKyAgICAg Z2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJmdHBfcHV0X2RvbmVfY2FsbGJhY2soKTogc3Rh cnRpbmdcbiIpOworICNlbmRpZgorLSAgICAKKysKKyAgICAgZ2xvYnVzX211dGV4X2xvY2soJmNv cHlfaGFuZGxlLT5zdGF0ZS0+bXV0ZXgpOworICAgICB7CisgICAgICAgICBjb3B5X2hhbmRsZS0+ c3RhdGUtPmRlc3QuZGF0YS5mdHAuY29tcGxldGVkID0gR0xPQlVTX1RSVUU7CisgICAgIH0KKyAg ICAgZ2xvYnVzX211dGV4X3VubG9jaygmY29weV9oYW5kbGUtPnN0YXRlLT5tdXRleCk7CistICAg IAorKworICAgICBpZiAoKGNvcHlfaGFuZGxlLT5zdGF0dXMgPT0gR0xPQlVTX0dBU1NfQ09QWV9T VEFUVVNfQ0FOQ0VMKSB8fAorICAgICAgICAgKGNvcHlfaGFuZGxlLT5zdGF0dXMgPT0gR0xPQlVT X0dBU1NfQ09QWV9TVEFUVVNfRkFJTFVSRSkpCisgICAgIHsKKyAgICAgICAgIC8qIHByZWZlciB0 aGlzIGVycm9yIG92ZXIgYSBkYXRhIGVycm9yICovCistICAgICAgICBpZihjb3B5X2hhbmRsZS0+ ZXJyICYmIAorKyAgICAgICAgaWYoY29weV9oYW5kbGUtPmVyciAmJgorICAgICAgICAgICAgIGNv cHlfaGFuZGxlLT5lcnIgPT0gY29weV9oYW5kbGUtPnN0YXRlLT5kZXN0LmRhdGEuZnRwLmRhdGFf ZXJyKQorICAgICAgICAgeworICAgICAgICAgICAgIGdsb2J1c19vYmplY3RfZnJlZShjb3B5X2hh bmRsZS0+ZXJyKTsKK0BAIC0zNjY4LDI4ICszNjY4LDI4IEBAIGdsb2J1c19sX2dhc3NfY29weV9n ZW5lcmljX3JlYWRfY2FsbGJhY2soCisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJVRwor ICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAiZ2VuZXJpY19yZWFk X2NhbGxiYWNrKCk6IHJlYWQgJWQgYnl0ZXMsIG9mZnNldDogJSJHTE9CVVNfT0ZGX1RfRk9STUFU IiwgbGFzdF9kYXRhOiAlZFxuIiwKKy0JICBuYnl0ZXMsIG9mZnNldCwgbGFzdF9kYXRhKTsKKysg ICAgICAgICAgbmJ5dGVzLCBvZmZzZXQsIGxhc3RfZGF0YSk7CisgI2VuZGlmCisgCisgICAgIGlm KHN0YXRlLT5jYW5jZWwgPT0gR0xPQlVTX0lfR0FTU19DT1BZX0NBTkNFTF9UUlVFKQorICAgICB7 CisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJVRworLQlnbG9idXNfbGliY19mcHJpbnRm KHN0ZGVyciwKKysgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorICAgICAgICAg ICAgICJnZW5lcmljX3JlYWRfY2FsbGJhY2soKTogdGhlcmUgd2FzIGFuIGVycm9yXG4iKTsKKyAj ZW5kaWYKKy0JZ2xvYnVzX211dGV4X2xvY2soJihzdGF0ZS0+c291cmNlLm11dGV4KSk7CistCXN0 YXRlLT5zb3VyY2Uubl9wZW5kaW5nLS07CistCWdsb2J1c19tdXRleF91bmxvY2soJihzdGF0ZS0+ c291cmNlLm11dGV4KSk7CisrICAgICAgICBnbG9idXNfbXV0ZXhfbG9jaygmKHN0YXRlLT5zb3Vy Y2UubXV0ZXgpKTsKKysgICAgICAgIHN0YXRlLT5zb3VyY2Uubl9wZW5kaW5nLS07CisrICAgICAg ICBnbG9idXNfbXV0ZXhfdW5sb2NrKCYoc3RhdGUtPnNvdXJjZS5tdXRleCkpOworIAorICAgICAg ICAgZ2xvYnVzX2dhc3NfY29weV9jYW5jZWwoaGFuZGxlLCBOVUxMLCBOVUxMKTsKKy0JcmV0dXJu OworKyAgICAgICAgcmV0dXJuOworICAgICB9CisgCisgICAgIC8qCisgICAgICAqIC0gaWYgaXQn cyB0aGUgbGFzdF9kYXRhLCBzZXQgVEFSR0VUX0RPTkUgdG8gcHJldmVudCBtb3JlIHJlYWRzCisg ICAgICAqIC0gYSBidWZmZXIgZW50cnkgd2l0aCBsYXN0X2RhdGEgPSBHTE9CVVNfVFJVRSBpcyBv bmx5IHNlbnQgaWYgd2UKKyAgICAgICogICAgICBoYXZlIGFscmVhZHkgcmVjZWl2ZWQgZW9mIGFu ZCB0aGVyZSBhcmUgbm8gcGVuZGluZyBjYWxsYmFja3MKKy0gICAgICogLSB3ZSBvbmx5IGFsbG93 IHplcm8gYnl0ZSB3cml0ZXMgaWYgd2UgaGF2ZSBhbHJlYWR5IHJlY2VpdmVkIGVvZiAKKysgICAg ICogLSB3ZSBvbmx5IGFsbG93IHplcm8gYnl0ZSB3cml0ZXMgaWYgd2UgaGF2ZSBhbHJlYWR5IHJl Y2VpdmVkIGVvZgorICAgICAgKiAgICAgIGFuZCB0aGVyZSBhcmUgbm8gcGVuZGluZyBjYWxsYmFj a3MKKyAgICAgICovCisgICAgIGdsb2J1c19tdXRleF9sb2NrKCYoc3RhdGUtPnNvdXJjZS5tdXRl eCkpOworQEAgLTM2OTksNyArMzY5OSw3IEBAIGdsb2J1c19sX2dhc3NfY29weV9nZW5lcmljX3Jl YWRfY2FsbGJhY2soCisgICAgICAgICB7CisgICAgICAgICAgICAgc3RhdGUtPnNvdXJjZS5zdGF0 dXMgPSBHTE9CVVNfSV9HQVNTX0NPUFlfVEFSR0VUX0RPTkU7CisgICAgICAgICB9CistICAgICAg ICAKKysKKyAgICAgICAgIGlmKHN0YXRlLT5zb3VyY2Uuc3RhdHVzID09IEdMT0JVU19JX0dBU1Nf Q09QWV9UQVJHRVRfRE9ORSAmJgorICAgICAgICAgICAgIHN0YXRlLT5zb3VyY2Uubl9wZW5kaW5n ID09IDApCisgICAgICAgICB7CitAQCAtMzcxMSwyNiArMzcxMSwyNiBAQCBnbG9idXNfbF9nYXNz X2NvcHlfZ2VuZXJpY19yZWFkX2NhbGxiYWNrKAorICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgcHVzaF93cml0ZSA9IEdMT0JVU19GQUxTRTsKKyAgICAgICAgICAgICB9CistICAgICAg ICAgICAgCisrCisgICAgICAgICAgICAgbGFzdF9kYXRhID0gR0xPQlVTX0ZBTFNFOworICAgICAg ICAgfQorICAgICB9CisgICAgIGdsb2J1c19tdXRleF91bmxvY2soJihzdGF0ZS0+c291cmNlLm11 dGV4KSk7CistICAgIAorKworICAgICAvKiBwdXNoIHRoZSB3cml0ZSAqLworICAgICBidWZmZXJf ZW50cnkgPSAoZ2xvYnVzX2lfZ2Fzc19jb3B5X2J1ZmZlcl90ICopCisgICAgICAgICBnbG9idXNf bGliY19tYWxsb2Moc2l6ZW9mKGdsb2J1c19pX2dhc3NfY29weV9idWZmZXJfdCkpOworLSAgICAK KysKKyAgICAgaWYoYnVmZmVyX2VudHJ5ID09IEdMT0JVU19OVUxMKQorICAgICB7CisgICAgICAg ICAvKiBvdXQgb2YgbWVtb3J5IGVycm9yICovCisgICAgICAgICBlcnIgPSBnbG9idXNfZXJyb3Jf Y29uc3RydWN0X3N0cmluZygKKy0gICAgCUdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorLSAgICAJ R0xPQlVTX05VTEwsCistICAgIAkiWyVzXTogZmFpbGVkIHRvIG1hbGxvYyBhIGJ1ZmZlciBzdHJ1 Y3R1cmUgc3VjY2Vzc2Z1bGx5IiwKKy0gICAgCW15bmFtZSk7CisrICAgICAgICBHTE9CVVNfR0FT U19DT1BZX01PRFVMRSwKKysgICAgICAgIEdMT0JVU19OVUxMLAorKyAgICAgICAgIlslc106IGZh aWxlZCB0byBtYWxsb2MgYSBidWZmZXIgc3RydWN0dXJlIHN1Y2Nlc3NmdWxseSIsCisrICAgICAg ICBteW5hbWUpOworICAgICAgICAgZ2xvYnVzX2lfZ2Fzc19jb3B5X3NldF9lcnJvcihoYW5kbGUs IGVycik7CistICAgIAorKworICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKyAgICAg ICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAgICAiZ2VuZXJp Y19yZWFkX2NhbGxiYWNrKCk6IG1hbGxvYyBmYWlsZWRcbiIpOworQEAgLTM3MzgsMTQgKzM3Mzgs MTQgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2dlbmVyaWNfcmVhZF9jYWxsYmFjaygKKyAgICAgICAg IGdsb2J1c19nYXNzX2NvcHlfY2FuY2VsKGhhbmRsZSwgTlVMTCwgTlVMTCk7CisgICAgICAgICBy ZXR1cm47CisgICAgIH0gLyogaWYoYnVmZmVyX2VudHJ5ID09IEdMT0JVU19OVUxMKSAqLworLSAg ICAKKysKKyAgICAgaWYocHVzaF93cml0ZSkKKyAgICAgeworICAgICAgICAgYnVmZmVyX2VudHJ5 LT5ieXRlcyAgPSBieXRlczsKKyAgICAgICAgIGJ1ZmZlcl9lbnRyeS0+bmJ5dGVzID0gbmJ5dGVz OworICAgICAgICAgYnVmZmVyX2VudHJ5LT5vZmZzZXQgPSBvZmZzZXQ7CisgICAgICAgICBidWZm ZXJfZW50cnktPmxhc3RfZGF0YSA9IGxhc3RfZGF0YTsKKy0gICAgCisrCisgICAgICAgICBnbG9i dXNfbXV0ZXhfbG9jaygmKHN0YXRlLT5kZXN0Lm11dGV4KSk7CisgICAgICAgICB7CisgICAgICAg ICAgICAgLyogcHV0IHRoaXMgcmVhZCBidWZmZXIgZW50cnkgb250byB0aGUgd3JpdGUgcXVldWUg Ki8KK0BAIC0zNzYyLDIyICszNzYyLDIyIEBAIGdsb2J1c19sX2dhc3NfY29weV9nZW5lcmljX3Jl YWRfY2FsbGJhY2soCisgICAgICAgICB9CisgICAgICAgICBnbG9idXNfbXV0ZXhfdW5sb2NrKCYo c3RhdGUtPnNvdXJjZS5tdXRleCkpOworICAgICB9CistICAgIAorKworICAgICAvKiBzdGFydCB0 aGUgbmV4dCB3cml0ZSBpZiB0aGVyZSBpc24ndCBhbHJlYWR5IG9uZSBvdXRzdGFuZGluZyAqLwor ICAgICBpZihoYW5kbGUtPnN0YXRlLT5hY3RpdmUpCistCWdsb2J1c19sX2dhc3NfY29weV93cml0 ZV9mcm9tX3F1ZXVlKGhhbmRsZSk7CisrICAgICAgICBnbG9idXNfbF9nYXNzX2NvcHlfd3JpdGVf ZnJvbV9xdWV1ZShoYW5kbGUpOworICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKyAg ICAgZWxzZQorLQlnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKysgICAgICAgIGdsb2J1c19s aWJjX2ZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICJnZW5lcmljX3JlYWRfY2FsbGJhY2so KTogaGFuZGxlLT5zdGF0ZSA9PSBHTE9CVVNfTlVMTFxuIik7CisgI2VuZGlmCisgCisgICAgIC8q IGlmIHdlIGhhdmVuJ3QgcmVhZCBldmVyeXRoaW5nIGZyb20gdGhlIHNvdXJjZSwgcmVhZCBhZ2Fp biAqLworICAgICBpZihoYW5kbGUtPnN0YXRlLT5hY3RpdmUpCistCWdsb2J1c19sX2dhc3NfY29w eV9yZWFkX2Zyb21fcXVldWUoaGFuZGxlKTsKKysgICAgICAgIGdsb2J1c19sX2dhc3NfY29weV9y ZWFkX2Zyb21fcXVldWUoaGFuZGxlKTsKKyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVH CisgICAgIGVsc2UKKy0JZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisrICAgICAgICBnbG9i dXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAiZ2VuZXJpY19yZWFkX2NhbGxi YWNrKCk6IGhhbmRsZS0+c3RhdGUgPT0gR0xPQlVTX05VTExcbiIpOworICNlbmRpZgorIAorQEAg LTM3OTIsMTAgKzM3OTIsMTAgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2Z0cF9yZWFkX2NhbGxiYWNr KAorICAgICBnbG9idXNfYnl0ZV90ICogICAgICAgICAgICAgICAgIGJ5dGVzLAorICAgICBnbG9i dXNfc2l6ZV90ICAgICAgICAgICAgICAgICAgIG5ieXRlcywKKyAgICAgZ2xvYnVzX29mZl90ICAg ICAgICAgICAgICAgICAgICBvZmZzZXQsCistICAgIGdsb2J1c19ib29sX3QJCSAgICBlb2YpCisr ICAgIGdsb2J1c19ib29sX3QgICAgICAgICAgICAgICAgICAgZW9mKQorIHsKKyAgICAgZ2xvYnVz X2dhc3NfY29weV9oYW5kbGVfdCAqIGNvcHlfaGFuZGxlCistCT0gKGdsb2J1c19nYXNzX2NvcHlf aGFuZGxlX3QgKikgY2FsbGJhY2tfYXJnOworKyAgICAgICAgPSAoZ2xvYnVzX2dhc3NfY29weV9o YW5kbGVfdCAqKSBjYWxsYmFja19hcmc7CisgICAgIGdsb2J1c19nYXNzX2NvcHlfc3RhdGVfdCAq IHN0YXRlCisgICAgICAgICA9IGNvcHlfaGFuZGxlLT5zdGF0ZTsKKyAKK0BAIC0zODAzLDU1ICsz ODAzLDU1IEBAIGdsb2J1c19sX2dhc3NfY29weV9mdHBfcmVhZF9jYWxsYmFjaygKKyAKKyAjaWZk ZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVHCisgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3Rk ZXJyLAorLQkiZnRwX3JlYWRfY2FsbGJhY2soKTogc3RhcnQsIG5fcGVuZGluZzogJWQsIG5ieXRl czogJWQsIG9mZnNldDogJSJHTE9CVVNfT0ZGX1RfRk9STUFUIiwgZW9mOiAlZFxuIiwKKy0Jc3Rh dGUtPnNvdXJjZS5uX3BlbmRpbmcsIG5ieXRlcywgb2Zmc2V0LCBlb2YpOworKyAgICAgICAgImZ0 cF9yZWFkX2NhbGxiYWNrKCk6IHN0YXJ0LCBuX3BlbmRpbmc6ICVkLCBuYnl0ZXM6ICVkLCBvZmZz ZXQ6ICUiR0xPQlVTX09GRl9UX0ZPUk1BVCIsIGVvZjogJWRcbiIsCisrICAgICAgICBzdGF0ZS0+ c291cmNlLm5fcGVuZGluZywgbmJ5dGVzLCBvZmZzZXQsIGVvZik7CisgI2VuZGlmCisgCisgICAg IGlmKGVycm9yID09IEdMT0JVU19TVUNDRVNTKSAvKiBubyBlcnJvciBvY2N1cnJlZCAqLworICAg ICB7CistCWxhc3RfZGF0YSA9IGVvZjsKKy0JaWYoZW9mKQorLQl7CisrICAgICAgICBsYXN0X2Rh dGEgPSBlb2Y7CisrICAgICAgICBpZihlb2YpCisrICAgICAgICB7CisgI2lmZGVmIEdMT0JVU19J X0dBU1NfQ09QWV9ERUJVRworLQkgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorLQkgICAg ICAiZnRwX3JlYWRfY2FsbGJhY2soKTogc291cmNlIFRBUkdFVF9ET05FLCBuYnl0ZXM6ICVkLCBv ZmZzZXQ6ICUiR0xPQlVTX09GRl9UX0ZPUk1BVCIsIGVvZjogJWRcbiIsCistCSAgICAgIG5ieXRl cywgb2Zmc2V0LCBlb2YpOworKyAgICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwK KysgICAgICAgICAgICAgICJmdHBfcmVhZF9jYWxsYmFjaygpOiBzb3VyY2UgVEFSR0VUX0RPTkUs IG5ieXRlczogJWQsIG9mZnNldDogJSJHTE9CVVNfT0ZGX1RfRk9STUFUIiwgZW9mOiAlZFxuIiwK KysgICAgICAgICAgICAgIG5ieXRlcywgb2Zmc2V0LCBlb2YpOworICNlbmRpZgorLQkgIC8qCist CSAgICBnbG9idXNfbXV0ZXhfbG9jaygmKHN0YXRlLT5zb3VyY2UubXV0ZXgpKTsKKy0JICAgIHsK Ky0JCXN0YXRlLT5zb3VyY2Uuc3RhdHVzID0gR0xPQlVTX0lfR0FTU19DT1BZX1RBUkdFVF9ET05F OworLQkgICAgfQorKyAgICAgICAgICAvKgorKyAgICAgICAgICAgIGdsb2J1c19tdXRleF9sb2Nr KCYoc3RhdGUtPnNvdXJjZS5tdXRleCkpOworKyAgICAgICAgICAgIHsKKysgICAgICAgICAgICAg ICAgc3RhdGUtPnNvdXJjZS5zdGF0dXMgPSBHTE9CVVNfSV9HQVNTX0NPUFlfVEFSR0VUX0RPTkU7 CisrICAgICAgICAgICAgfQorIAorLQkgICAgZ2xvYnVzX211dGV4X3VubG9jaygmKHN0YXRlLT5z b3VyY2UubXV0ZXgpKTsKKy0JICAqLworLQkgICAgaWYoKGNvcHlfaGFuZGxlLT5zdGF0dXMgIT0g R0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfRkFJTFVSRSkgJiYKKy0JICAgICAgIChjb3B5X2hhbmRs ZS0+c3RhdHVzIDwgR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfUkVBRF9DT01QTEVURSkpCistCQlj b3B5X2hhbmRsZS0+c3RhdHVzID0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfUkVBRF9DT01QTEVU RTsKKy0JfQorKyAgICAgICAgICAgIGdsb2J1c19tdXRleF91bmxvY2soJihzdGF0ZS0+c291cmNl Lm11dGV4KSk7CisrICAgICAgICAgICovCisrICAgICAgICAgICAgaWYoKGNvcHlfaGFuZGxlLT5z dGF0dXMgIT0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfRkFJTFVSRSkgJiYKKysgICAgICAgICAg ICAgICAoY29weV9oYW5kbGUtPnN0YXR1cyA8IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX1JFQURf Q09NUExFVEUpKQorKyAgICAgICAgICAgICAgICBjb3B5X2hhbmRsZS0+c3RhdHVzID0gR0xPQlVT X0dBU1NfQ09QWV9TVEFUVVNfUkVBRF9DT01QTEVURTsKKysgICAgICAgIH0KKyAgICAgfQorICAg ICBlbHNlIC8qIHRoZXJlIHdhcyBhbiBlcnJvciAqLworICAgICB7CisgI2lmZGVmIEdMT0JVU19J X0dBU1NfQ09QWV9ERUJVRworLQlnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwgImZ0cF9yZWFk X2NhbGxiYWNrOiB3YXMgcGFzc2VkIGFuIEVSUk9SXG4iKTsKKysgICAgICAgIGdsb2J1c19saWJj X2ZwcmludGYoc3RkZXJyLCAiZnRwX3JlYWRfY2FsbGJhY2s6IHdhcyBwYXNzZWQgYW4gRVJST1Jc biIpOworICNlbmRpZgorLQl7CistCSAgICBpZighc3RhdGUtPmNhbmNlbCkgLyogY2FuY2VsIGhh cyBub3QgYmVlbiBzZXQgYWxyZWFkeSAqLworLQkgICAgeworLQkJZ2xvYnVzX2lfZ2Fzc19jb3B5 X3NldF9lcnJvcihjb3B5X2hhbmRsZSwgZXJyb3IpOworLQkJc3RhdGUtPmNhbmNlbCA9IEdMT0JV U19JX0dBU1NfQ09QWV9DQU5DRUxfVFJVRTsKKy0JCWNvcHlfaGFuZGxlLT5zdGF0dXMgPSBHTE9C VVNfR0FTU19DT1BZX1NUQVRVU19GQUlMVVJFOworKyAgICAgICAgeworKyAgICAgICAgICAgIGlm KCFzdGF0ZS0+Y2FuY2VsKSAvKiBjYW5jZWwgaGFzIG5vdCBiZWVuIHNldCBhbHJlYWR5ICovCisr ICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICBnbG9idXNfaV9nYXNzX2NvcHlfc2V0X2Vy cm9yKGNvcHlfaGFuZGxlLCBlcnJvcik7CisrICAgICAgICAgICAgICAgIHN0YXRlLT5jYW5jZWwg PSBHTE9CVVNfSV9HQVNTX0NPUFlfQ0FOQ0VMX1RSVUU7CisrICAgICAgICAgICAgICAgIGNvcHlf aGFuZGxlLT5zdGF0dXMgPSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19GQUlMVVJFOworICAgICAg ICAgICAgICAgICBzdGF0ZS0+c291cmNlLmRhdGEuZnRwLmRhdGFfZXJyID0gY29weV9oYW5kbGUt PmVycjsKKy0JICAgIH0KKy0JICAgIGVsc2UKKy0JICAgIHsKKy0JICAgICAgICBnbG9idXNfbXV0 ZXhfbG9jaygmKHN0YXRlLT5zb3VyY2UubXV0ZXgpKTsKKy0JCXN0YXRlLT5zb3VyY2Uubl9wZW5k aW5nLS07CistCQlnbG9idXNfbXV0ZXhfdW5sb2NrKCYoc3RhdGUtPnNvdXJjZS5tdXRleCkpOwor LQkJcmV0dXJuOworLQkgICAgfQorLQorLQl9CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAg IGVsc2UKKysgICAgICAgICAgICB7CisrICAgICAgICAgICAgICAgIGdsb2J1c19tdXRleF9sb2Nr KCYoc3RhdGUtPnNvdXJjZS5tdXRleCkpOworKyAgICAgICAgICAgICAgICBzdGF0ZS0+c291cmNl Lm5fcGVuZGluZy0tOworKyAgICAgICAgICAgICAgICBnbG9idXNfbXV0ZXhfdW5sb2NrKCYoc3Rh dGUtPnNvdXJjZS5tdXRleCkpOworKyAgICAgICAgICAgICAgICByZXR1cm47CisrICAgICAgICAg ICAgfQorKworKyAgICAgICAgfQorICAgICB9IC8qIGVsc2UgKHRoZXJlIHdhcyBhbiBlcnJvcikg Ki8KKyAKKyAKK0BAIC0zODYwLDcgKzM4NjAsNyBAQCBnbG9idXNfbF9nYXNzX2NvcHlfZnRwX3Jl YWRfY2FsbGJhY2soCisgICAgICAgICBieXRlcywKKyAgICAgICAgIG5ieXRlcywKKyAgICAgICAg IG9mZnNldCwKKy0JbGFzdF9kYXRhKTsKKysgICAgICAgIGxhc3RfZGF0YSk7CisgfSAvKiBnbG9i dXNfbF9nYXNzX2NvcHlfZnRwX3JlYWRfY2FsbGJhY2soKSAqLworIAorIHZvaWQKK0BAIC0zODc3 LDcgKzM4NzcsNyBAQCBnbG9idXNfbF9nYXNzX2NvcHlfZ2Fzc19yZWFkX2NhbGxiYWNrKAorICAg ICBzdGF0aWMgY2hhciAqIG15bmFtZT0iZ2xvYnVzX2xfZ2Fzc19jb3B5X2dhc3NfcmVhZF9jYWxs YmFjayI7CisgCisgICAgIGdsb2J1c19nYXNzX2NvcHlfaGFuZGxlX3QgKiBoYW5kbGUKKy0JPSAo Z2xvYnVzX2dhc3NfY29weV9oYW5kbGVfdCAqKSBjYWxsYmFja19hcmc7CisrICAgICAgICA9IChn bG9idXNfZ2Fzc19jb3B5X2hhbmRsZV90ICopIGNhbGxiYWNrX2FyZzsKKyAgICAgZ2xvYnVzX2dh c3NfY29weV9zdGF0ZV90ICogc3RhdGUgPSBoYW5kbGUtPnN0YXRlOworICAgICByZXFfc3RhdHVz ID0gZ2xvYnVzX2dhc3NfdHJhbnNmZXJfcmVxdWVzdF9nZXRfc3RhdHVzKHJlcXVlc3QpOworICNp ZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKK0BAIC0zODg4LDYwICszODg4LDYwIEBAIGds b2J1c19sX2dhc3NfY29weV9nYXNzX3JlYWRfY2FsbGJhY2soCisgICAgIGlmKHJlcV9zdGF0dXMg PT0gR0xPQlVTX0dBU1NfVFJBTlNGRVJfUkVRVUVTVF9ET05FIHx8CisgICAgICAgIHJlcV9zdGF0 dXMgPT0gR0xPQlVTX0dBU1NfVFJBTlNGRVJfUkVRVUVTVF9QRU5ESU5HKQorICAgICB7IC8qIGFs bCBpcyB3ZWxsICovCistCWlmKGxhc3RfZGF0YSkKKy0JeyAvKiB0aGlzIHdhcyB0aGUgbGFzdCBy ZWFkLiAgc2V0IFJFQURfQ09NUExFVEUgYW5kIGZyZWUgdGhlIHJlcXVlc3QgKi8KKy0JICAvKgor LQkgICAgZ2xvYnVzX211dGV4X2xvY2soJihzdGF0ZS0+c291cmNlLm11dGV4KSk7CistCSAgICB7 CistCQlzdGF0ZS0+c291cmNlLnN0YXR1cyA9IEdMT0JVU19JX0dBU1NfQ09QWV9UQVJHRVRfRE9O RTsKKy0JICAgIH0KKy0JICAgIGdsb2J1c19tdXRleF91bmxvY2soJihzdGF0ZS0+c291cmNlLm11 dGV4KSk7CistCSAgKi8KKy0JICAgIGhhbmRsZS0+c3RhdHVzID0gR0xPQlVTX0dBU1NfQ09QWV9T VEFUVVNfUkVBRF9DT01QTEVURTsKKysgICAgICAgIGlmKGxhc3RfZGF0YSkKKysgICAgICAgIHsg LyogdGhpcyB3YXMgdGhlIGxhc3QgcmVhZC4gIHNldCBSRUFEX0NPTVBMRVRFIGFuZCBmcmVlIHRo ZSByZXF1ZXN0ICovCisrICAgICAgICAgIC8qCisrICAgICAgICAgICAgZ2xvYnVzX211dGV4X2xv Y2soJihzdGF0ZS0+c291cmNlLm11dGV4KSk7CisrICAgICAgICAgICAgeworKyAgICAgICAgICAg ICAgICBzdGF0ZS0+c291cmNlLnN0YXR1cyA9IEdMT0JVU19JX0dBU1NfQ09QWV9UQVJHRVRfRE9O RTsKKysgICAgICAgICAgICB9CisrICAgICAgICAgICAgZ2xvYnVzX211dGV4X3VubG9jaygmKHN0 YXRlLT5zb3VyY2UubXV0ZXgpKTsKKysgICAgICAgICAgKi8KKysgICAgICAgICAgICBoYW5kbGUt PnN0YXR1cyA9IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX1JFQURfQ09NUExFVEU7CisgCisgICAg ICAgICAgLyogcmVxX3N0YXR1cyA9IGdsb2J1c19nYXNzX3RyYW5zZmVyX3JlcXVlc3RfZ2V0X3N0 YXR1cyhyZXF1ZXN0KTsgKi8KKyAKKy0JICAgIGlmKHJlcV9zdGF0dXMgPT0gR0xPQlVTX0dBU1Nf VFJBTlNGRVJfUkVRVUVTVF9ET05FKQorLQkgICAgeworKyAgICAgICAgICAgIGlmKHJlcV9zdGF0 dXMgPT0gR0xPQlVTX0dBU1NfVFJBTlNGRVJfUkVRVUVTVF9ET05FKQorKyAgICAgICAgICAgIHsK KyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVHCistCQlnbG9idXNfbGliY19mcHJpbnRm KHN0ZGVyciwKKysgICAgICAgICAgICAgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisg ICAgICAgICAgICAgICAgICAgICJnYXNzX3JlYWRfY2FsbGJhY2soKTogR0xPQlVTX0dBU1NfVFJB TlNGRVJfUkVRVUVTVF9ET05FXG4iKTsKKyAjZW5kaWYKKy0JCWdsb2J1c19nYXNzX3RyYW5zZmVy X3JlcXVlc3RfZGVzdHJveShyZXF1ZXN0KTsKKy0JICAgIH0KKy0JICAgIGVsc2UKKy0JICAgIHsK Ky0JCS8qIHRoZXJlJ3MgYW4gZXJyb3IsIHRlbGwgc29tZW9uZSB3aG8gY2FyZXMgKi8KKysgICAg ICAgICAgICAgICAgZ2xvYnVzX2dhc3NfdHJhbnNmZXJfcmVxdWVzdF9kZXN0cm95KHJlcXVlc3Qp OworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgeworKyAg ICAgICAgICAgICAgICAvKiB0aGVyZSdzIGFuIGVycm9yLCB0ZWxsIHNvbWVvbmUgd2hvIGNhcmVz ICovCisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJVRworLQkJZ2xvYnVzX2xpYmNfZnBy aW50ZihzdGRlcnIsICJnYXNzX3JlYWRfY2FsbGJhY2soKTogdGhpcyB3YXMgbGFzdF9kYXRhLCBi dXQgc3RhdHVzICE9R0xPQlVTX0dBU1NfVFJBTlNGRVJfUkVRVUVTVF9ET05FXG4iKTsKKysgICAg ICAgICAgICAgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJnYXNzX3JlYWRfY2FsbGJh Y2soKTogdGhpcyB3YXMgbGFzdF9kYXRhLCBidXQgc3RhdHVzICE9R0xPQlVTX0dBU1NfVFJBTlNG RVJfUkVRVUVTVF9ET05FXG4iKTsKKyAjZW5kaWYKKy0JICAgIH0KKy0JfS8qIGlmKGxhc3RfZGF0 YSkgKi8KKysgICAgICAgICAgICB9CisrICAgICAgICB9LyogaWYobGFzdF9kYXRhKSAqLworIAor ICAgICB9IC8qIGFsbCBpcyB3ZWxsICovCisgICAgIGVsc2UKKyAgICAgeyAvKiBhbGwgaXMgTk9U IHdlbGwsIGRlYWwgd2l0aCBlcnJvciAqLworLQl7CistCSAgICBpZighc3RhdGUtPmNhbmNlbCkg LyogY2FuY2VsIGhhcyBub3QgYmVlbiBzZXQgYWxyZWFkeSAqLworLQkgICAgeworLQkJZXJyID0g Z2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCistCQkgICAgR0xPQlVTX0dBU1NfQ09QWV9N T0RVTEUsCistCQkgICAgR0xPQlVTX05VTEwsCistCQkgICAgIlslc106IGdhc3NfdHJhbnNmZXJf cmVxdWVzdF9zdGF0dXM6ICVkIiwKKy0JCSAgICBteW5hbWUsCistCQkgICAgcmVxX3N0YXR1cyk7 CistCQlnbG9idXNfaV9nYXNzX2NvcHlfc2V0X2Vycm9yKGhhbmRsZSwgZXJyKTsKKy0JCXN0YXRl LT5jYW5jZWwgPSBHTE9CVVNfSV9HQVNTX0NPUFlfQ0FOQ0VMX1RSVUU7CistCQloYW5kbGUtPnN0 YXR1cyA9IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0ZBSUxVUkU7CistCSAgICB9CistCSAgICBl bHNlCistCSAgICB7CistCSAgICAgICAgZ2xvYnVzX211dGV4X2xvY2soJihzdGF0ZS0+c291cmNl Lm11dGV4KSk7CistCQlzdGF0ZS0+c291cmNlLm5fcGVuZGluZy0tOworLQkJZ2xvYnVzX211dGV4 X3VubG9jaygmKHN0YXRlLT5zb3VyY2UubXV0ZXgpKTsKKy0JCXJldHVybjsKKy0JICAgIH0KKy0J fQorKyAgICAgICAgeworKyAgICAgICAgICAgIGlmKCFzdGF0ZS0+Y2FuY2VsKSAvKiBjYW5jZWwg aGFzIG5vdCBiZWVuIHNldCBhbHJlYWR5ICovCisrICAgICAgICAgICAgeworKyAgICAgICAgICAg ICAgICBlcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKysgICAgICAgICAgICAg ICAgICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorKyAgICAgICAgICAgICAgICAgICAgR0xP QlVTX05VTEwsCisrICAgICAgICAgICAgICAgICAgICAiWyVzXTogZ2Fzc190cmFuc2Zlcl9yZXF1 ZXN0X3N0YXR1czogJWQiLAorKyAgICAgICAgICAgICAgICAgICAgbXluYW1lLAorKyAgICAgICAg ICAgICAgICAgICAgcmVxX3N0YXR1cyk7CisrICAgICAgICAgICAgICAgIGdsb2J1c19pX2dhc3Nf Y29weV9zZXRfZXJyb3IoaGFuZGxlLCBlcnIpOworKyAgICAgICAgICAgICAgICBzdGF0ZS0+Y2Fu Y2VsID0gR0xPQlVTX0lfR0FTU19DT1BZX0NBTkNFTF9UUlVFOworKyAgICAgICAgICAgICAgICBo YW5kbGUtPnN0YXR1cyA9IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0ZBSUxVUkU7CisrICAgICAg ICAgICAgfQorKyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICB7CisrICAgICAgICAgICAg ICAgIGdsb2J1c19tdXRleF9sb2NrKCYoc3RhdGUtPnNvdXJjZS5tdXRleCkpOworKyAgICAgICAg ICAgICAgICBzdGF0ZS0+c291cmNlLm5fcGVuZGluZy0tOworKyAgICAgICAgICAgICAgICBnbG9i dXNfbXV0ZXhfdW5sb2NrKCYoc3RhdGUtPnNvdXJjZS5tdXRleCkpOworKyAgICAgICAgICAgICAg ICByZXR1cm47CisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorICAgICB9IC8qIGVsc2UgKHRo ZXJlIHdhcyBhbiBlcnJvcikgKi8KKyAKKyAgICAgLypvZmZzZXQgPSBzdGF0ZS0+c291cmNlLm5f Y29tcGxldGUgKiBoYW5kbGUtPmJ1ZmZlcl9sZW5ndGg7ICovCitAQCAtMzk1MSw3ICszOTUxLDcg QEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2dhc3NfcmVhZF9jYWxsYmFjaygKKyAgICAgICAgIGJ5dGVz LAorICAgICAgICAgbmJ5dGVzLAorICAgICAgICAgb2Zmc2V0LAorLQlsYXN0X2RhdGEpOworKyAg ICAgICAgbGFzdF9kYXRhKTsKKyAgICAgc3RhdGUtPnNvdXJjZS5uX2NvbXBsZXRlKys7CisgfSAv KiBnbG9idXNfbF9nYXNzX2NvcHlfZ2Fzc19yZWFkX2NhbGxiYWNrKCkgKi8KKyAKK0BAIC0zOTY3 LDE1ICszOTY3LDE1IEBAIGdsb2J1c19sX2dhc3NfY29weV9pb19yZWFkX2NhbGxiYWNrKAorICAg ICBnbG9idXNfb2JqZWN0X3QgKiBlcnIgPSBHTE9CVVNfTlVMTDsKKyAgICAgZ2xvYnVzX2Jvb2xf dCBsYXN0X2RhdGE9R0xPQlVTX0ZBTFNFOworICAgICBnbG9idXNfZ2Fzc19jb3B5X2hhbmRsZV90 ICogaGFuZGxlCistCT0gKGdsb2J1c19nYXNzX2NvcHlfaGFuZGxlX3QgKikgY2FsbGJhY2tfYXJn OworKyAgICAgICAgPSAoZ2xvYnVzX2dhc3NfY29weV9oYW5kbGVfdCAqKSBjYWxsYmFja19hcmc7 CisgICAgIGdsb2J1c19nYXNzX2NvcHlfc3RhdGVfdCAqIHN0YXRlID0gaGFuZGxlLT5zdGF0ZTsK KyAKKyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVHCisgICAgIGlmKHJlc3VsdD09IEdM T0JVU19TVUNDRVNTKQorLQlnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKysgICAgICAgIGds b2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICJpb19yZWFkX2NhbGxiYWNr KCk6IHJlc3VsdCA9PSBHTE9CVVNfU1VDQ0VTU1xuIik7CisgICAgIGVsc2UKKy0JZ2xvYnVzX2xp YmNfZnByaW50ZihzdGRlcnIsCisrICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwK KyAgICAgICAgICAgICAiaW9fcmVhZF9jYWxsYmFjaygpOiByZXN1bHQgIT0gR0xPQlVTX1NVQ0NF U1NcbiIpOworIAorICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKK0BAIC0zOTkzLDQx ICszOTkzLDQxIEBAIGdsb2J1c19sX2dhc3NfY29weV9pb19yZWFkX2NhbGxiYWNrKAorIAorICAg ICBpZihyZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MpCisgICAgIHsKKy0JZXJyID0gZ2xvYnVzX2Vy cm9yX3BlZWsocmVzdWx0KTsKKy0JbGFzdF9kYXRhPWdsb2J1c19pb19lb2YoZXJyKTsKKysgICAg ICAgIGVyciA9IGdsb2J1c19lcnJvcl9wZWVrKHJlc3VsdCk7CisrICAgICAgICBsYXN0X2RhdGE9 Z2xvYnVzX2lvX2VvZihlcnIpOworIAorICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcK Ky0JZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisrICAgICAgICBnbG9idXNfbGliY19mcHJp bnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAiaW9fcmVhZF9jYWxsYmFjaygpOiBsYXN0X2RhdGEg PT0gJWRcbiIsIGxhc3RfZGF0YSk7CisgI2VuZGlmCistCWlmKGxhc3RfZGF0YSkKKy0JeyAvKiB0 aGlzIHdhcyB0aGUgbGFzdCByZWFkLiAgc2V0IFJFQURfQ09NUExFVEUgKi8KKy0JICAvKgorLQkg ICAgZ2xvYnVzX211dGV4X2xvY2soJihzdGF0ZS0+c291cmNlLm11dGV4KSk7CistCSAgICB7Cist CQlzdGF0ZS0+c291cmNlLnN0YXR1cyA9IEdMT0JVU19JX0dBU1NfQ09QWV9UQVJHRVRfRE9ORTsK Ky0JICAgIH0KKy0JICAgIGdsb2J1c19tdXRleF91bmxvY2soJihzdGF0ZS0+c291cmNlLm11dGV4 KSk7CistCSAgKi8KKy0JICAgIGhhbmRsZS0+c3RhdHVzID0gR0xPQlVTX0dBU1NfQ09QWV9TVEFU VVNfUkVBRF9DT01QTEVURTsKKysgICAgICAgIGlmKGxhc3RfZGF0YSkKKysgICAgICAgIHsgLyog dGhpcyB3YXMgdGhlIGxhc3QgcmVhZC4gIHNldCBSRUFEX0NPTVBMRVRFICovCisrICAgICAgICAg IC8qCisrICAgICAgICAgICAgZ2xvYnVzX211dGV4X2xvY2soJihzdGF0ZS0+c291cmNlLm11dGV4 KSk7CisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICBzdGF0ZS0+c291cmNlLnN0YXR1 cyA9IEdMT0JVU19JX0dBU1NfQ09QWV9UQVJHRVRfRE9ORTsKKysgICAgICAgICAgICB9CisrICAg ICAgICAgICAgZ2xvYnVzX211dGV4X3VubG9jaygmKHN0YXRlLT5zb3VyY2UubXV0ZXgpKTsKKysg ICAgICAgICAgKi8KKysgICAgICAgICAgICBoYW5kbGUtPnN0YXR1cyA9IEdMT0JVU19HQVNTX0NP UFlfU1RBVFVTX1JFQURfQ09NUExFVEU7CisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJV RworLQkgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJpb19yZWFkX2NhbGxiYWNrKCk6 IHRoaXMgd2FzIHRoZSBsYXN0IFJFQUQsIHNvdXJjZS5zdGF0dXMgPT0gR0xPQlVTX0lfR0FTU19D T1BZX1RBUkdFVF9ET05FXG4iKTsKKysgICAgICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0 ZGVyciwgImlvX3JlYWRfY2FsbGJhY2soKTogdGhpcyB3YXMgdGhlIGxhc3QgUkVBRCwgc291cmNl LnN0YXR1cyA9PSBHTE9CVVNfSV9HQVNTX0NPUFlfVEFSR0VUX0RPTkVcbiIpOworICNlbmRpZgor LQkgICAgaWYoc3RhdGUtPnNvdXJjZS5kYXRhLmlvLmZyZWVfaGFuZGxlKQorLQkgICAgeworLQkJ Z2xvYnVzX2lvX2Nsb3NlKGlvX2hhbmRsZSk7CisrICAgICAgICAgICAgaWYoc3RhdGUtPnNvdXJj ZS5kYXRhLmlvLmZyZWVfaGFuZGxlKQorKyAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAg Z2xvYnVzX2lvX2Nsb3NlKGlvX2hhbmRsZSk7CisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9E RUJVRworLQkJZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisrICAgICAgICAgICAgICAgIGds b2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAgICAgICAgImlvX3JlYWRf Y2FsbGJhY2soKTogaGFuZGxlIGNsb3NlZFxuIik7CisgI2VuZGlmCistCQkvKiB0aGlua2luZyB0 aGF0IHRoaXMgc2hvdWxkIGdvIGluIHRoZQorKyAgICAgICAgICAgICAgICAvKiB0aGlua2luZyB0 aGF0IHRoaXMgc2hvdWxkIGdvIGluIHRoZQorICAgICAgICAgICAgICAgICAgKiBnbG9idXNfbF9n YXNzX2NvcHlfc3RhdGVfZnJlZSgpCistCQkgKiBnbG9idXNfbGliY19mcmVlKGhhbmRsZSk7Cist CQkgKi8KKy0JICAgIH0KKy0JfS8qIGlmKGxhc3RfZGF0YSkgKi8KKy0JZWxzZSAgLyogdGhlcmUg d2FzIGFuIGVycm9yICovCistCXsKKysgICAgICAgICAgICAgICAgICogZ2xvYnVzX2xpYmNfZnJl ZShoYW5kbGUpOworKyAgICAgICAgICAgICAgICAgKi8KKysgICAgICAgICAgICB9CisrICAgICAg ICB9LyogaWYobGFzdF9kYXRhKSAqLworKyAgICAgICAgZWxzZSAgLyogdGhlcmUgd2FzIGFuIGVy cm9yICovCisrICAgICAgICB7CisgICAgICAgICAgICAgaWYoIXN0YXRlLT5jYW5jZWwpIC8qIGNh bmNlbCBoYXMgbm90IGJlZW4gc2V0IGFscmVhZHkgKi8KKyAgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgIGdsb2J1c19pX2dhc3NfY29weV9zZXRfZXJyb3IoaGFuZGxlLCBlcnIpOworQEAg LTQwNDEsNyArNDA0MSw3IEBAIGdsb2J1c19sX2dhc3NfY29weV9pb19yZWFkX2NhbGxiYWNrKAor ICAgICAgICAgICAgICAgICBnbG9idXNfbXV0ZXhfdW5sb2NrKCYoc3RhdGUtPnNvdXJjZS5tdXRl eCkpOworICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgfQorLQl9IC8qIGVs c2UgKHRoZXJlIHdhcyBhbiBlcnJvcikgKi8KKysgICAgICAgIH0gLyogZWxzZSAodGhlcmUgd2Fz IGFuIGVycm9yKSAqLworICAgICB9CisgCisgICAgIC8qIGNhc3QgdG8gNjQgYml0cyBpZiBhdmFp bGFibGUsIG90aGVyd2lzZSBiYWQgdGhpbmdzIGhhcHBlbiAqLworQEAgLTQwNTMsNyArNDA1Myw3 IEBAIGdsb2J1c19sX2dhc3NfY29weV9pb19yZWFkX2NhbGxiYWNrKAorICAgICAgICAgYnl0ZXMs CisgICAgICAgICBuYnl0ZXMsCisgICAgICAgICBvZmZzZXQsCistCWxhc3RfZGF0YSk7CisrICAg ICAgICBsYXN0X2RhdGEpOworICAgICBzdGF0ZS0+c291cmNlLm5fY29tcGxldGUrKzsKKyB9IC8q IGdsb2J1c19sX2dhc3NfY29weV9pb19yZWFkX2NhbGxiYWNrKCkgKi8KKyAKK0BAIC00MDg4LDEx ICs0MDg4LDExIEBAIGdsb2J1c19sX2dhc3NfY29weV9nZW5lcmljX3dyaXRlX2NhbGxiYWNrKAor ICAgICBpZihzdGF0ZS0+Y2FuY2VsID09IEdMT0JVU19JX0dBU1NfQ09QWV9DQU5DRUxfVFJVRSkK KyAgICAgeworICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKy0JZ2xvYnVzX2xpYmNf ZnByaW50ZihzdGRlcnIsCisrICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKyAg ICAgICAgICAgICAiZ2VuZXJpY193cml0ZV9jYWxsYmFjaygpOiB0aGVyZSB3YXMgYW4gZXJyb3Jc biIpOworICNlbmRpZgorICAgICAgICAgZ2xvYnVzX2dhc3NfY29weV9jYW5jZWwoaGFuZGxlLCBO VUxMLCBOVUxMKTsKKy0JcmV0dXJuOworKyAgICAgICAgcmV0dXJuOworICAgICB9CisgCisgCitA QCAtNDEwMywyNCArNDEwMywyNCBAQCBnbG9idXNfbF9nYXNzX2NvcHlfZ2VuZXJpY193cml0ZV9j YWxsYmFjaygKKyAgICAgLyogcHVzaCB0aGUgYnVmZmVyIG9uIHRoZSByZWFkIHF1ZXVlIGFuZCBz dGFydCBhbm90aGVyIHJlYWQgKi8KKyAKKyAgICAgYnVmZmVyX2VudHJ5ID0gKGdsb2J1c19pX2dh c3NfY29weV9idWZmZXJfdCAqKQorLQlnbG9idXNfbGliY19tYWxsb2Moc2l6ZW9mKGdsb2J1c19p X2dhc3NfY29weV9idWZmZXJfdCkpOworKyAgICAgICAgZ2xvYnVzX2xpYmNfbWFsbG9jKHNpemVv ZihnbG9idXNfaV9nYXNzX2NvcHlfYnVmZmVyX3QpKTsKKyAKKyAgICAgaWYoYnVmZmVyX2VudHJ5 ID09IEdMT0JVU19OVUxMKQorICAgICB7CistCS8qIG91dCBvZiBtZW1vcnkgZXJyb3IgKi8KKy0J ZXJyID0gZ2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCistCSAgICBHTE9CVVNfR0FTU19D T1BZX01PRFVMRSwKKy0JICAgIEdMT0JVU19OVUxMLAorLQkgICAgIlslc106IGZhaWxlZCB0byBt YWxsb2MgYSBidWZmZXIgc3RydWN0dXJlIHN1Y2Nlc3NmdWxseSIsCistCSAgICBteW5hbWUpOwor LQlnbG9idXNfaV9nYXNzX2NvcHlfc2V0X2Vycm9yKGhhbmRsZSwgZXJyKTsKKysgICAgICAgIC8q IG91dCBvZiBtZW1vcnkgZXJyb3IgKi8KKysgICAgICAgIGVyciA9IGdsb2J1c19lcnJvcl9jb25z dHJ1Y3Rfc3RyaW5nKAorKyAgICAgICAgICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorKyAg ICAgICAgICAgIEdMT0JVU19OVUxMLAorKyAgICAgICAgICAgICJbJXNdOiBmYWlsZWQgdG8gbWFs bG9jIGEgYnVmZmVyIHN0cnVjdHVyZSBzdWNjZXNzZnVsbHkiLAorKyAgICAgICAgICAgIG15bmFt ZSk7CisrICAgICAgICBnbG9idXNfaV9nYXNzX2NvcHlfc2V0X2Vycm9yKGhhbmRsZSwgZXJyKTsK KyAKKyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVHCistCWdsb2J1c19saWJjX2Zwcmlu dGYoc3RkZXJyLAorKyAgICAgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisgICAgICAg ICAgICAgImdlbmVyaWNfd3JpdGVfY2FsbGJhY2soKTogIG1hbGxvYyBmYWlsZWRcbiIpOworICNl bmRpZgorICAgICAgICAgZ2xvYnVzX2dhc3NfY29weV9jYW5jZWwoaGFuZGxlLCBOVUxMLCBOVUxM KTsKKy0JcmV0dXJuOworKyAgICAgICAgcmV0dXJuOworICAgICB9CisgCisgICAgIGJ1ZmZlcl9l bnRyeS0+Ynl0ZXMgID0gYnl0ZXM7CitAQCAtNDEzMiwxMCArNDEzMiwxMCBAQCBnbG9idXNfbF9n YXNzX2NvcHlfZ2VuZXJpY193cml0ZV9jYWxsYmFjaygKKyAgICAgICAgICJnZW5lcmljX3dyaXRl X2NhbGxiYWNrKCk6IGNhbGxpbmcgcmVhZF9mcm9tX3F1ZXVlKClcbiIpOworICNlbmRpZgorICAg ICBpZihoYW5kbGUtPnN0YXRlLT5hY3RpdmUpCistCWdsb2J1c19sX2dhc3NfY29weV9yZWFkX2Zy b21fcXVldWUoaGFuZGxlKTsKKysgICAgICAgIGdsb2J1c19sX2dhc3NfY29weV9yZWFkX2Zyb21f cXVldWUoaGFuZGxlKTsKKyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVHCisgICAgIGVs c2UKKy0JZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisrICAgICAgICBnbG9idXNfbGliY19m cHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAiZ2VuZXJpY193cml0ZV9jYWxsYmFjaygpOiBo YW5kbGUtPnN0YXRlID09IEdMT0JVU19OVUxMXG4iKTsKKyAjZW5kaWYKKyAKK0BAIC00MTQ1LDEw ICs0MTQ1LDEwIEBAIGdsb2J1c19sX2dhc3NfY29weV9nZW5lcmljX3dyaXRlX2NhbGxiYWNrKAor ICAgICAgICAgImdlbmVyaWNfd3JpdGVfY2FsbGJhY2soKTogY2FsbGluZyB3cml0ZV9mcm9tX3F1 ZXVlKClcbiIpOworICNlbmRpZgorICAgICBpZihoYW5kbGUtPnN0YXRlLT5hY3RpdmUpCistCWds b2J1c19sX2dhc3NfY29weV93cml0ZV9mcm9tX3F1ZXVlKGhhbmRsZSk7CisrICAgICAgICBnbG9i dXNfbF9nYXNzX2NvcHlfd3JpdGVfZnJvbV9xdWV1ZShoYW5kbGUpOworICNpZmRlZiBHTE9CVVNf SV9HQVNTX0NPUFlfREVCVUcKKyAgICAgZWxzZQorLQlnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVy ciwKKysgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICJn ZW5lcmljX3dyaXRlX2NhbGxiYWNrKCk6IGhhbmRsZS0+c3RhdGUgPT0gR0xPQlVTX05VTExcbiIp OworICNlbmRpZgorIAorQEAgLTQxODIsMzMgKzQxODIsMzMgQEAgdHlwZWRlZiBzdHJ1Y3QKKyAg KiBAaW5ncm91cCBnbG9idXNfZ2Fzc19jb3B5CisgICogQGRldGFpbHMKKyAgKiBAcGFyYW0gY2Fs bGJhY2tfYXJnCistICogICAgICAgIFBhcmFtdGVyIGV4cGVjdGVkIHRvIGNvbnRhaW4gYSBnbG9i dXNfbF9nYXNzX2Nrc21faW5mb190IHVwZGF0ZWQgYnkgCisrICogICAgICAgIFBhcmFtdGVyIGV4 cGVjdGVkIHRvIGNvbnRhaW4gYSBnbG9idXNfbF9nYXNzX2Nrc21faW5mb190IHVwZGF0ZWQgYnkK KyAgKiAgICAgICAgZ2xvYnVzX2dhc3NfY29weV9ja3NtX2FzeW5jKCkuCisgICogQHBhcmFtIGhh bmRsZQorICAqICAgICAgICBVbnVzZWQgaGFuZGxlIHRvIGdsb2J1c19nYXNzX2NvcHlfaGFuZGxl X3QKKyAgKiBAcGFyYW0gZXJyb3IKKy0gKiAgICAgICAgSW5kaWNhdGVzIGFuIGVycm9yIGZyb20g Z2xvYnVzX2dhc3NfY29weV9ja3NtX2FzeW5jKCksIHdpbGwgYmUgTlVMTCBpZiAKKysgKiAgICAg ICAgSW5kaWNhdGVzIGFuIGVycm9yIGZyb20gZ2xvYnVzX2dhc3NfY29weV9ja3NtX2FzeW5jKCks IHdpbGwgYmUgTlVMTCBpZgorICAqICAgICAgICBubyBlcnJvciBvY2N1cnJlZC4KKyAgKgorICAq IEByZXR1cm4KKy0gKiAgICAgICAgIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgZGlyZWN0bHkgcmV0 dXJuIGEgdmFsdWUsIGhvd2V2ZXIgaXQgZG9lcyAKKy0gKiAgICAgICAgIHNpZ25hbCB0aGUgY2Fs bGluZyBmdW5jdGlvbiB0byBpbmRpY2F0ZSB0aGUgYXN5bmNocm9ub3VzIGNoZWNrc3VtIAorLSAq ICAgICAgICAgaGFzIGNvbXBsZXRlZC4gIFRoaXMgc2lnbmlmaWVzIHRoYXQgdGhlIGNoZWNrc3Vt IGlzIGFjY2Vzc2FibGUgCisrICogICAgICAgICBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGRpcmVj dGx5IHJldHVybiBhIHZhbHVlLCBob3dldmVyIGl0IGRvZXMKKysgKiAgICAgICAgIHNpZ25hbCB0 aGUgY2FsbGluZyBmdW5jdGlvbiB0byBpbmRpY2F0ZSB0aGUgYXN5bmNocm9ub3VzIGNoZWNrc3Vt CisrICogICAgICAgICBoYXMgY29tcGxldGVkLiAgVGhpcyBzaWduaWZpZXMgdGhhdCB0aGUgY2hl Y2tzdW0gaXMgYWNjZXNzYWJsZQorICAqICAgICAgICAgdGhyb3VnaCB0aGUgImNoZWNrc3VtIiBt ZW1iZXIgKG9yIGl0J3MgTlVMTCBpZiB0aGVyZSB3YXMgYW4gZXJyb3IpCisgICogQHNlZSBnbG9i dXNfZ2Fzc19jb3B5X2Nrc21fYXN5bmMoKQorICAqLworLXN0YXRpYyAKKytzdGF0aWMKKyB2b2lk CisgZ2xvYnVzX2xfZ2Fzc19ja3NtX2NiKAorICAgICB2b2lkICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjYWxsYmFja19hcmcsCisgICAgIGdsb2J1c19nYXNzX2NvcHlfaGFuZGxlX3Qg KiAgICAgICAgIGhhbmRsZSwKKyAgICAgZ2xvYnVzX29iamVjdF90ICogICAgICAgICAgICAgICAg ICAgZXJyb3IpCisteyAgICAKKyt7CisgICAgIGdsb2J1c19sX2dhc3NfY2tzbV9pbmZvX3QgKiAg ICAgICAgICBja3NtX2luZm87CisgICAgIGNrc21faW5mbyA9IChnbG9idXNfbF9nYXNzX2Nrc21f aW5mb190ICopIGNhbGxiYWNrX2FyZzsKKyAKKyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RF QlVHCistICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCIlczogJXMoKSBjYWxsYmFja19h cmcgJXBcblxuIiwgCisrICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCIlczogJXMoKSBj YWxsYmFja19hcmcgJXBcblxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBfX0ZJTEVfXywg X19mdW5jX18sIGNhbGxiYWNrX2FyZyk7CisgI2VuZGlmCisgICAgIGlmKGVycm9yKQorQEAgLTQy MjIsNyArNDIyMiw3IEBAIGdsb2J1c19sX2dhc3NfY2tzbV9jYigKKyAgICAgICAgIGNrc21faW5m by0+ZG9uZSA9IEdMT0JVU19UUlVFOworICAgICAgICAgZ2xvYnVzX2NvbmRfc2lnbmFsKCZja3Nt X2luZm8tPm1vbml0b3ItPmNvbmQpOworICAgICB9CistICAgIGdsb2J1c19tdXRleF91bmxvY2so JmNrc21faW5mby0+bW9uaXRvci0+bXV0ZXgpOyAgIAorKyAgICBnbG9idXNfbXV0ZXhfdW5sb2Nr KCZja3NtX2luZm8tPm1vbml0b3ItPm11dGV4KTsKKyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZ X0RFQlVHCisgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCJcblxuJXM6ICVzKCkgY2hl Y2tzdW0gaXMgJXNcblxuIiwgX19GSUxFX18sIF9fZnVuY19fLCBja3NtX2luZm8tPnVybGluZm8t PmNoZWNrc3VtKTsKKyAjZW5kaWYKK0BAIC00MjM3LDEzICs0MjM3LDEzIEBAIGdsb2J1c19sX2dh c3NfY2tzbV9jYigKKyAgKiBAcGFyYW0gY29weV9oYW5kbGUKKyAgKiAgICAgICAgVGhlIGhhbmRs ZSB1c2VkIHRvIHBlcmZvcm0gYWNjZXNzIHRoZSBmaWxlIGZvciB0aGUgY2hlY2tzdW0gb3BlcmF0 aW9uLgorICAqIEBwYXJhbSBja3NtX2F0dHIKKy0gKiAgICAgICAgQXR0cmlidXRlcyBkZXNjcmli aW5nIHRoZSBjb25uZWN0aW9uIHVzZWQgdG8gYWNjZXNzIHRoZSBmaWxlIGZvciB0aGUgCisrICog ICAgICAgIEF0dHJpYnV0ZXMgZGVzY3JpYmluZyB0aGUgY29ubmVjdGlvbiB1c2VkIHRvIGFjY2Vz cyB0aGUgZmlsZSBmb3IgdGhlCisgICogICAgICAgIGNoZWNrc3VtIG9wZXJhdGlvbi4KKyAgKiBA cGFyYW0gdXJsCisgICogICAgICAgIFRoZSBVUkwgdG8gdGhlIGRlc3RpbmF0aW9uIGZpbGUgdG8g YmUgY2hlY2tzdW1tZWQuCisgICoKKyAgKiBAcmV0dXJuCistICogICAgICAgICBUaGlzIGZ1bmN0 aW9uIHJldHVybnMgR0xPQlVTX1NVQ0NFU1MgaWYgdGhlIGNoZWNrc3VtIG9uIHRoZSBzb3VyY2Ug CisrICogICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgR0xPQlVTX1NVQ0NFU1MgaWYgdGhl IGNoZWNrc3VtIG9uIHRoZSBzb3VyY2UKKyAgKiAgICAgICAgIGFuZCBkZXN0aW5hdGlvbiBmaWxl cyBtYXRjaCwgb3IgYSByZXN1bHQgcG9pbnRpbmcgdG8gYW4KKyAgKiAgICAgICAgIG9iamVjdCBv ZiBvbmUgb2YgdGhlIHRoZSBmb2xsb3dpbmcgZXJyb3IgdHlwZXM6CisgICogQHJldHZhbCBHTE9C VVNfR0FTU19DT1BZX0VSUk9SX1RZUEVfTlVMTF9QQVJBTUVURVIKK0BAIC00MjUyLDcgKzQyNTIs NyBAQCBnbG9idXNfbF9nYXNzX2Nrc21fY2IoCisgICoKKyAgKiBAc2VlIGdsb2J1c19nYXNzX2Nv cHlfdXJsX3RvX2hhbmRsZSgpIGdsb2J1c19nYXNzX2NvcHlfaGFuZGxlX3RvX3VybCgpCisgICov Cistc3RhdGljIAorK3N0YXRpYworIGdsb2J1c19yZXN1bHRfdAorIGdsb2J1c19sX2dhc3NfY29w eV92ZXJpZnlfY2tzbSgKKyAgICAgZ2xvYnVzX2dhc3NfY29weV9oYW5kbGVfdCAqICAgICAgICAg Y29weV9oYW5kbGUsCitAQCAtNDMwNCwxMCArNDMwNCwxMCBAQCBnbG9idXNfbF9nYXNzX2NvcHlf dmVyaWZ5X2Nrc20oCisgICAgICAgICBnbG9idXNfbXV0ZXhfbG9jaygmY2tzbV9tb25pdG9yLm11 dGV4KTsKKyAgICAgICAgIHdoaWxlKCFkc3RfY2tzbV9pbmZvLmRvbmUpCisgICAgICAgICB7Cist CSAgICBnbG9idXNfY29uZF93YWl0KCZja3NtX21vbml0b3IuY29uZCwgJmNrc21fbW9uaXRvci5t dXRleCk7CisrICAgICAgICAgICAgZ2xvYnVzX2NvbmRfd2FpdCgmY2tzbV9tb25pdG9yLmNvbmQs ICZja3NtX21vbml0b3IubXV0ZXgpOworICAgICAgICAgfQorICAgICAgICAgZ2xvYnVzX211dGV4 X3VubG9jaygmY2tzbV9tb25pdG9yLm11dGV4KTsKKy0gICAgCisrCisgICAgICAgICBpZihkc3Rf Y2tzbV9pbmZvLmVycm9yKQorICAgICAgICAgeworICAgICAgICAgICAgIHJlc3VsdCA9IGdsb2J1 c19lcnJvcl9wdXQoZHN0X2Nrc21faW5mby5lcnJvcik7CitAQCAtNDM1OCw4MyArNDM1OCw4MyBA QCBnbG9idXNfbF9nYXNzX2NvcHlfd3JpdGVfZnJvbV9xdWV1ZSgKKyAKKyAgICAgd2hpbGUoMSkK KyAgICAgeworLQlkb190aGVfd3JpdGUgPSBHTE9CVVNfRkFMU0U7CisrICAgICAgICBkb190aGVf d3JpdGUgPSBHTE9CVVNfRkFMU0U7CisgCistCWdsb2J1c19tdXRleF9sb2NrKCYoc3RhdGUtPmRl c3QubXV0ZXgpKTsKKy0JeworLQkgICAgaWYoc3RhdGUtPmRlc3Quc3RhdHVzID09IEdMT0JVU19J X0dBU1NfQ09QWV9UQVJHRVRfUkVBRFkpCistCSAgICB7IC8qIGlmIHRoZSBkZXN0IGlzIFJFQURZ IChhbmQgbm90IERPTkUpLCBzZWUgaWYgd2Ugc2hvdWxkCisrICAgICAgICBnbG9idXNfbXV0ZXhf bG9jaygmKHN0YXRlLT5kZXN0Lm11dGV4KSk7CisrICAgICAgICB7CisrICAgICAgICAgICAgaWYo c3RhdGUtPmRlc3Quc3RhdHVzID09IEdMT0JVU19JX0dBU1NfQ09QWV9UQVJHRVRfUkVBRFkpCisr ICAgICAgICAgICAgeyAvKiBpZiB0aGUgZGVzdCBpcyBSRUFEWSAoYW5kIG5vdCBET05FKSwgc2Vl IGlmIHdlIHNob3VsZAorICAgICAgICAgICAgICAgICogcmVnaXN0ZXIgYSB3cml0ZQorICAgICAg ICAgICAgICAgICovCisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJVRworLQkJZ2xvYnVz X2xpYmNfZnByaW50ZihzdGRlcnIsICJ3cml0ZV9mcm9tX3F1ZXVlKCk6IGRlc3Quc3RhdHVzID09 IFRBUkdFVF9SRUFEWSwgbl9wZW5kaW5nPSAlZCwgIG5fc2ltdWx0YW5lb3VzPSAlZFxuIiwgc3Rh dGUtPmRlc3Qubl9wZW5kaW5nLCBzdGF0ZS0+ZGVzdC5uX3NpbXVsdGFuZW91cyk7CisrICAgICAg ICAgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAid3JpdGVfZnJvbV9xdWV1ZSgp OiBkZXN0LnN0YXR1cyA9PSBUQVJHRVRfUkVBRFksIG5fcGVuZGluZz0gJWQsICBuX3NpbXVsdGFu ZW91cz0gJWRcbiIsIHN0YXRlLT5kZXN0Lm5fcGVuZGluZywgc3RhdGUtPmRlc3Qubl9zaW11bHRh bmVvdXMpOworICNlbmRpZgorIAorLQkJaWYoKHN0YXRlLT5kZXN0Lm5fcGVuZGluZyA8CistCQkg ICAgc3RhdGUtPmRlc3Qubl9zaW11bHRhbmVvdXMpICYmCistCQkgICAhc3RhdGUtPmNhbmNlbCkK Ky0JCXsgLyogaWYgdGhlcmUgYXJlbid0IHRvbyBtYW55IHdyaXRlcyBvdXRzdGFuZGluZywgYW5k IHdlCisrICAgICAgICAgICAgICAgIGlmKChzdGF0ZS0+ZGVzdC5uX3BlbmRpbmcgPAorKyAgICAg ICAgICAgICAgICAgICAgc3RhdGUtPmRlc3Qubl9zaW11bHRhbmVvdXMpICYmCisrICAgICAgICAg ICAgICAgICAgICFzdGF0ZS0+Y2FuY2VsKQorKyAgICAgICAgICAgICAgICB7IC8qIGlmIHRoZXJl IGFyZW4ndCB0b28gbWFueSB3cml0ZXMgb3V0c3RhbmRpbmcsIGFuZCB3ZQorICAgICAgICAgICAg ICAgICAgICAqIGhhdmVuJ3QgY2FuY2VsZWQKKyAgICAgICAgICAgICAgICAgICAgKi8KKyAjaWZk ZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVHCistCQkgICAgZ2xvYnVzX2xpYmNfZnByaW50Zihz dGRlcnIsCisrICAgICAgICAgICAgICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwK KyAgICAgICAgICAgICAgICAgICAgICAgICAid3JpdGVfZnJvbV9xdWV1ZTogZ29ubmEgY2hlY2sg dGhlIHF1ZXVlXG4iKTsKKyAjZW5kaWYKKy0JCSAgICBpZiAoKGJ1ZmZlcl9lbnRyeT1nbG9idXNf Zmlmb19kZXF1ZXVlKCYoc3RhdGUtPmRlc3QucXVldWUpKSkKKy0JCQkhPSBHTE9CVVNfTlVMTCkK Ky0JCSAgICB7CistCQkJc3RhdGUtPmRlc3Qubl9wZW5kaW5nKys7CistCQkJZG9fdGhlX3dyaXRl ID0gR0xPQlVTX1RSVUU7CisrICAgICAgICAgICAgICAgICAgICBpZiAoKGJ1ZmZlcl9lbnRyeT1n bG9idXNfZmlmb19kZXF1ZXVlKCYoc3RhdGUtPmRlc3QucXVldWUpKSkKKysgICAgICAgICAgICAg ICAgICAgICAgICAhPSBHTE9CVVNfTlVMTCkKKysgICAgICAgICAgICAgICAgICAgIHsKKysgICAg ICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+ZGVzdC5uX3BlbmRpbmcrKzsKKysgICAgICAgICAg ICAgICAgICAgICAgICBkb190aGVfd3JpdGUgPSBHTE9CVVNfVFJVRTsKKyAjaWZkZWYgR0xPQlVT X0lfR0FTU19DT1BZX0RFQlVHCistCQkJZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisrICAg ICAgICAgICAgICAgICAgICAgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJ3cml0ZV9mcm9tX3F1ZXVlOiBnb3QgYSBidWZmZXIgZnJv bSB0aGUgcXVldWVcbiIpOworICNlbmRpZgorLQkJICAgIH0vKiBpZiAoYnVmZmVyX2VudHJ5ICE9 IEdMT0JVU19OVUxMKSwgdGhlcmUgaXMgYSBidWZmZXIKKysgICAgICAgICAgICAgICAgICAgIH0v KiBpZiAoYnVmZmVyX2VudHJ5ICE9IEdMT0JVU19OVUxMKSwgdGhlcmUgaXMgYSBidWZmZXIKKyAg ICAgICAgICAgICAgICAgICAgICAgKiBpbiB0aGUgd3JpdGUgcXVldWUKKyAgICAgICAgICAgICAg ICAgICAgICAgKi8KKy0JCSAgICBlbHNlCistCQkgICAgeworKyAgICAgICAgICAgICAgICAgICAg ZWxzZQorKyAgICAgICAgICAgICAgICAgICAgeworICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlf REVCVUcKKy0JCQlnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKysgICAgICAgICAgICAgICAg ICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIndyaXRlX2Zyb21fcXVldWU6IE5PIGJ1ZmZlcnMgaW4gdGhlIHF1ZXVlXG4iKTsK KyAjZW5kaWYKKy0JCSAgICB9CistCQl9IC8qIChuX3BlbmRpbmcgPCBuX3NpbXVsYXRuZW91cykg JiYgIWNhbmNlbCAqLworLQkgICAgfSAvKiBpZihzdGF0ZS0+ZGVzdC5zdGF0dXMgPT0gR0xPQlVT X0lfR0FTU19DT1BZX1RBUkdFVF9SRUFEWSkgKi8KKy0JfSAvKiBsb2NrIHN0YXRlLT5kZXN0ICov CistCWdsb2J1c19tdXRleF91bmxvY2soJihzdGF0ZS0+ZGVzdC5tdXRleCkpOworKyAgICAgICAg ICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgICB9IC8qIChuX3BlbmRpbmcgPCBuX3NpbXVs YXRuZW91cykgJiYgIWNhbmNlbCAqLworKyAgICAgICAgICAgIH0gLyogaWYoc3RhdGUtPmRlc3Qu c3RhdHVzID09IEdMT0JVU19JX0dBU1NfQ09QWV9UQVJHRVRfUkVBRFkpICovCisrICAgICAgICB9 IC8qIGxvY2sgc3RhdGUtPmRlc3QgKi8KKysgICAgICAgIGdsb2J1c19tdXRleF91bmxvY2soJihz dGF0ZS0+ZGVzdC5tdXRleCkpOworICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKy0J Z2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisrICAgICAgICBnbG9idXNfbGliY19mcHJpbnRm KHN0ZGVyciwKKyAgICAgICAgICAgICAid3JpdGVfZnJvbV9xdWV1ZTogdW5sb2NraW5nIHRoZSBk ZXN0IG11dGV4XG4iKTsKKyAjZW5kaWYKKy0JaWYoZG9fdGhlX3dyaXRlKQorLQl7CisrICAgICAg ICBpZihkb190aGVfd3JpdGUpCisrICAgICAgICB7CisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09Q WV9ERUJVRworLQkgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisrICAgICAgICAgICAg Z2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICJ3cml0ZV9mcm9t X3F1ZXVlKCk6IGFib3V0IHRvIGNhbGwgcmVnaXN0ZXJfd3JpdGUoKVxuIik7CistCSAgICBnbG9i dXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKysgICAgICAgICAgICBnbG9idXNfbGliY19mcHJpbnRm KHN0ZGVyciwKKyAgICAgICAgICAgICAiXHRcdFx0IG5ieXRlcz0gJWQsIG9mZnNldD0gJSJHTE9C VVNfT0ZGX1RfRk9STUFUIiwgbGFzdF9kYXRhPSAlZFxuIiwKKyAgICAgICAgICAgICAgICAgYnVm ZmVyX2VudHJ5LT5uYnl0ZXMsCistCQlidWZmZXJfZW50cnktPm9mZnNldCwKKy0JCWJ1ZmZlcl9l bnRyeS0+bGFzdF9kYXRhKTsKKysgICAgICAgICAgICAgICAgYnVmZmVyX2VudHJ5LT5vZmZzZXQs CisrICAgICAgICAgICAgICAgIGJ1ZmZlcl9lbnRyeS0+bGFzdF9kYXRhKTsKKyAjZW5kaWYKKy0J ICAgIHJlc3VsdCA9IGdsb2J1c19sX2dhc3NfY29weV9yZWdpc3Rlcl93cml0ZSgKKy0JCWhhbmRs ZSwKKy0JCWJ1ZmZlcl9lbnRyeSk7CisrICAgICAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2xfZ2Fz c19jb3B5X3JlZ2lzdGVyX3dyaXRlKAorKyAgICAgICAgICAgICAgICBoYW5kbGUsCisrICAgICAg ICAgICAgICAgIGJ1ZmZlcl9lbnRyeSk7CisgCistCSAgICBpZiAocmVzdWx0ICE9IEdMT0JVU19T VUNDRVNTKQorLQkgICAgeworLQkJc3RhdGUtPmNhbmNlbCA9IEdMT0JVU19JX0dBU1NfQ09QWV9D QU5DRUxfVFJVRTsKKysgICAgICAgICAgICBpZiAocmVzdWx0ICE9IEdMT0JVU19TVUNDRVNTKQor KyAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAgc3RhdGUtPmNhbmNlbCA9IEdMT0JVU19J X0dBU1NfQ09QWV9DQU5DRUxfVFJVRTsKKyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVH CistCQlnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwgIndyaXRlX2Zyb21fcXVldWUoKTogdGhl cmUgd2FzIGFuIEVSUk9SIHRyeWluZyB0byByZWdpc3RlciBhIHdyaXRlLCBjYWxsIGNhbmNlbFxu Iik7CisrICAgICAgICAgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAid3JpdGVf ZnJvbV9xdWV1ZSgpOiB0aGVyZSB3YXMgYW4gRVJST1IgdHJ5aW5nIHRvIHJlZ2lzdGVyIGEgd3Jp dGUsIGNhbGwgY2FuY2VsXG4iKTsKKyAjZW5kaWYKKyAgICAgICAgICAgICAgICAgZ2xvYnVzX2lf Z2Fzc19jb3B5X3NldF9lcnJvcl9mcm9tX3Jlc3VsdChoYW5kbGUsIHJlc3VsdCk7CisgICAgICAg ICAgICAgICAgIGdsb2J1c19nYXNzX2NvcHlfY2FuY2VsKGhhbmRsZSwgTlVMTCwgTlVMTCk7Cisg ICAgICAgICAgICAgICAgIHJldHVybjsKKy0JICAgIH0KKy0JfSAgLyogaWYoZG9fdGhlX3dyaXRl KSAqLworLQllbHNlCistCSAgICBicmVhazsKKysgICAgICAgICAgICB9CisrICAgICAgICB9ICAv KiBpZihkb190aGVfd3JpdGUpICovCisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgYnJlYWs7 CisgICAgIH0gLyogd2hpbGUoMSkgKi8KKyAKKyAvKiBpZiB0aGVyZSBhcmUgbm8gd3JpdGVzIHRv IGRvLCBhbmQgbm8gd3JpdGVzIHBlbmRpbmcsIGNsZWFuIHVwIGFuZCBjYWxsCitAQCAtNDQ0Mywy NSArNDQ0MywyNSBAQCBnbG9idXNfbF9nYXNzX2NvcHlfd3JpdGVfZnJvbV9xdWV1ZSgKKyAgICAg aWYoaGFuZGxlLT5zdGF0ZS0+YWN0aXZlKQorICAgICB7CisgICAgICAgICBnbG9idXNfbXV0ZXhf bG9jaygmc3RhdGUtPm11dGV4KTsKKy0gICAgICAgIAorKworICAgICAgICAgaWYoc3RhdGUtPnNv dXJjZS5zdGF0dXMgPT0gR0xPQlVTX0lfR0FTU19DT1BZX1RBUkdFVF9ET05FICYmCisgICAgICAg ICAgICBzdGF0ZS0+ZGVzdC5zdGF0dXMgPT0gR0xPQlVTX0lfR0FTU19DT1BZX1RBUkdFVF9ET05F ICYmCisgICAgICAgICAgICBzdGF0ZS0+ZGVzdC5uX3BlbmRpbmcgPT0gMCAmJiBzdGF0ZS0+c291 cmNlLm5fcGVuZGluZyA9PSAwICYmCistICAgICAgICAgICAoc3RhdGUtPmRlc3QubW9kZSAhPSBH TE9CVVNfR0FTU19DT1BZX1VSTF9NT0RFX0ZUUCB8fCAKKysgICAgICAgICAgIChzdGF0ZS0+ZGVz dC5tb2RlICE9IEdMT0JVU19HQVNTX0NPUFlfVVJMX01PREVfRlRQIHx8CisgICAgICAgICAgICAg c3RhdGUtPmRlc3QuZGF0YS5mdHAuY29tcGxldGVkKSAmJgorLSAgICAgICAgICAgKHN0YXRlLT5z b3VyY2UubW9kZSAhPSBHTE9CVVNfR0FTU19DT1BZX1VSTF9NT0RFX0ZUUCB8fCAKKysgICAgICAg ICAgIChzdGF0ZS0+c291cmNlLm1vZGUgIT0gR0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9GVFAg fHwKKyAgICAgICAgICAgICBzdGF0ZS0+c291cmNlLmRhdGEuZnRwLmNvbXBsZXRlZCkgJiYKKyAg ICAgICAgICAgICBoYW5kbGUtPnN0YXR1cyAhPSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19ET05F KQorICAgICAgICAgeworICAgICAgICAgICAgIGdsb2J1c19nYXNzX2NvcHlfY2FsbGJhY2tfdCBj YWxsYmFjazsKKy0gICAgICAgICAgICAKKysKKyAgICAgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09Q WV9ERUJVRworICAgICAgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorICAgICAg ICAgICAgICAgICAid3JpdGVfZnJvbV9xdWV1ZSgpOiBzb3VyY2UgYW5kIGRlc3Qgc3RhdHVzID09 IFRBUkdFVF9ET05FXG4iKTsKKyAgICAgI2VuZGlmCisgICAgICAgICAgICAgaGFuZGxlLT5zdGF0 dXMgPSAgIEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0RPTkU7CisgICAgICAgICAgICAgLyogZG8g Y2xlYW51cCAqLworLSAgICAKKysKKyAgICAgICAgICAgICBpZihoYW5kbGUtPnBlcmZvcm1hbmNl KQorICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgaWYoc3RhdGUtPmRlc3QubW9kZSA9 PSBHTE9CVVNfR0FTU19DT1BZX1VSTF9NT0RFX0ZUUCkKK0BAIC00NDczLDcgKzQ0NzMsNyBAQCBn bG9idXNfbF9nYXNzX2NvcHlfd3JpdGVfZnJvbV9xdWV1ZSgKKyAgICAgICAgICAgICAgICAgICAg IGdsb2J1c19sX2dhc3NfY29weV9wZXJmX2NhbmNlbF9sb2NhbF9jYWxsYmFjayhoYW5kbGUtPnBl cmZvcm1hbmNlKTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKy0gICAgCisr CisgICAgICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKyAgICAgICAgICAgICBpZigh aGFuZGxlLT5zdGF0ZS0+YWN0aXZlKQorICAgICAgICAgICAgICAgICBnbG9idXNfbGliY19mcHJp bnRmKHN0ZGVyciwgIiAgaGFuZGxlLT5zdGF0ZSA9PSBHTE9CVVNfTlVMTFxuIik7CitAQCAtNDQ4 Miw3ICs0NDgyLDcgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X3dyaXRlX2Zyb21fcXVldWUoCisgICAg ICNlbmRpZgorICAgICAgICAgICAgIGVyciA9IGhhbmRsZS0+ZXJyOworICAgICAgICAgICAgIGhh bmRsZS0+ZXJyID0gR0xPQlVTX05VTEw7CistICAgIAorKworICAgICAgICAgICAgIC8qIHNldCB0 aGUgZmluYWwgc3RhdHVzIG9mIHRoZSB0cmFuc2ZlciAqLworICAgICAgICAgICAgIHN3aXRjaCho YW5kbGUtPnN0YXR1cykKKyAgICAgICAgICAgICB7CitAQCAtNDQ5NiwxNyArNDQ5NiwxNyBAQCBn bG9idXNfbF9nYXNzX2NvcHlfd3JpdGVfZnJvbV9xdWV1ZSgKKyAgICAgICAgICAgICAgIGhhbmRs ZS0+c3RhdHVzID0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfRE9ORV9DQU5DRUxMRUQ7CisgICAg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICBkZWZhdWx0OgorLQkgICAgICBicmVhazsK KysgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgIH0KKyAKKyAgICAgICAgICAgICAv KiBjaGVja3N1bSB2ZXJpZnkgKi8KKy0gICAgICAgICAgICBpZihoYW5kbGUtPnN0YXR1cyA9PSBH TE9CVVNfR0FTU19DT1BZX1NUQVRVU19ET05FX1NVQ0NFU1MgJiYgZXJyID09IEdMT0JVU19OVUxM ICYmIAorKyAgICAgICAgICAgIGlmKGhhbmRsZS0+c3RhdHVzID09IEdMT0JVU19HQVNTX0NPUFlf U1RBVFVTX0RPTkVfU1VDQ0VTUyAmJiBlcnIgPT0gR0xPQlVTX05VTEwgJiYKKyAgICAgICAgICAg ICAgICBoYW5kbGUtPnN0YXRlLT5ja3NtX2hhbmRsZSAhPSBHTE9CVVNfTlVMTCAmJiBoYW5kbGUt PnN0YXRlLT5jaGVja3N1bSAhPSBHTE9CVVNfTlVMTCkKKyAgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgIGdsb2J1c19hc3NlcnRfc3RyaW5nKHN0YXRlLT5kZXN0LmZyZWVfYXR0ciAhPSBH TE9CVVNfVFJVRSwgIkNoZWNrc3VtIHZlcmlmaWNhdGlvbiByZXF1aXJlcyBmdHAgYXR0cmlidXRl cy4iKTsKKyAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2xfZ2Fzc19jb3B5X3Zlcmlm eV9ja3NtKAorICAgICAgICAgICAgICAgICAgICAgaGFuZGxlLCBzdGF0ZS0+ZGVzdC5hdHRyLCBz dGF0ZS0+ZGVzdC51cmwpOworLSAgICAgICAgICAgICAgICBpZihyZXN1bHQgIT0gR0xPQlVTX1NV Q0NFU1MpIAorKyAgICAgICAgICAgICAgICBpZihyZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MpCisg ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGVyciA9IGdsb2J1c19lcnJv cl9nZXQocmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgICAgIGhhbmRsZS0+c3RhdHVzID0gR0xP QlVTX0dBU1NfQ09QWV9TVEFUVVNfRE9ORV9GQUlMVVJFOworQEAgLTQ1NTksMTggKzQ1NTksMTgg QEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X3JlZ2lzdGVyX3dyaXRlKAorICAgICBzd2l0Y2ggKHN0YXRl LT5kZXN0Lm1vZGUpCisgICAgIHsKKyAgICAgY2FzZSBHTE9CVVNfR0FTU19DT1BZX1VSTF9NT0RF X0ZUUDoKKy0JLyogY2hlY2sgdGhlIG9mZnNldCB0byBzZWUgaWYgaXRzIHdoYXQgd2UgYXJlIGV4 cGVjdGluZyAqLworKyAgICAgICAgLyogY2hlY2sgdGhlIG9mZnNldCB0byBzZWUgaWYgaXRzIHdo YXQgd2UgYXJlIGV4cGVjdGluZyAqLworICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcK Ky0JZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisrICAgICAgICBnbG9idXNfbGliY19mcHJp bnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAicmVnaXN0ZXJfd3JpdGUoKTogIGNhbGxpbmcgZ2xv YnVzX2Z0cF9jbGllbnRfcmVnaXN0ZXJfd3JpdGUoKVxuIik7CistCWdsb2J1c19saWJjX2Zwcmlu dGYoc3RkZXJyLAorKyAgICAgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisgICAgICAg ICAgICAgIlx0XHRcdCBuYnl0ZXM9ICVkLCBvZmZzZXQ9ICUiR0xPQlVTX09GRl9UX0ZPUk1BVCIs IGxhc3RfZGF0YT0gJWRcbiIsCisgICAgICAgICAgICAgICAgIGJ1ZmZlcl9lbnRyeS0+bmJ5dGVz LAorLQkJYnVmZmVyX2VudHJ5LT5vZmZzZXQsCistCQlidWZmZXJfZW50cnktPmxhc3RfZGF0YSk7 CisrICAgICAgICAgICAgICAgIGJ1ZmZlcl9lbnRyeS0+b2Zmc2V0LAorKyAgICAgICAgICAgICAg ICBidWZmZXJfZW50cnktPmxhc3RfZGF0YSk7CisgI2VuZGlmCisgCistICAgICAgICBpZihoYW5k bGUtPnBhcnRpYWxfb2Zmc2V0ICE9IC0xICYmIAorKyAgICAgICAgaWYoaGFuZGxlLT5wYXJ0aWFs X29mZnNldCAhPSAtMSAmJgorICAgICAgICAgICAgIHN0YXRlLT5zb3VyY2UubW9kZSAhPSBHTE9C VVNfR0FTU19DT1BZX1VSTF9NT0RFX0ZUUCkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICB0bXBf b2Zmc2V0ID0gYnVmZmVyX2VudHJ5LT5vZmZzZXQgKyBoYW5kbGUtPnBhcnRpYWxfb2Zmc2V0Owor QEAgLTQ1ODcsNjcgKzQ1ODcsNjcgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X3JlZ2lzdGVyX3dyaXRl KAorICAgICAgICAgICAgIGJ1ZmZlcl9lbnRyeS0+bGFzdF9kYXRhLAorICAgICAgICAgICAgIGds b2J1c19sX2dhc3NfY29weV9mdHBfd3JpdGVfY2FsbGJhY2ssCisgICAgICAgICAgICAgKHZvaWQg KikgaGFuZGxlKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0JYnJlYWs7CisrCisr ICAgICAgICBicmVhazsKKyAKKyAgICAgY2FzZSBHTE9CVVNfR0FTU19DT1BZX1VSTF9NT0RFX0dB U1M6CisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJVRworLQlnbG9idXNfbGliY19mcHJp bnRmKHN0ZGVyciwKKysgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorICAgICAg ICAgICAgICAicmVnaXN0ZXJfd3JpdGUoKTogc2VuZF9ieXRlcyAtLSAlZCBieXRlcyAobGFzdF9k YXRhPT0lZClcbiIsCisgICAgICAgICAgICAgIGJ1ZmZlcl9lbnRyeS0+bmJ5dGVzLAorICAgICAg ICAgICAgICBidWZmZXJfZW50cnktPmxhc3RfZGF0YSk7CisgI2VuZGlmCistCS8qIGNoZWNrIHRo ZSBvZmZzZXQgdG8gc2VlIGlmIGl0cyB3aGF0IHdlIGFyZSBleHBlY3RpbmcgKi8KKy0JcmMgPSBn bG9idXNfZ2Fzc190cmFuc2Zlcl9zZW5kX2J5dGVzKAorLQkgICAgc3RhdGUtPmRlc3QuZGF0YS5n YXNzLnJlcXVlc3QsCistCSAgICBidWZmZXJfZW50cnktPmJ5dGVzLAorLQkgICAgYnVmZmVyX2Vu dHJ5LT5uYnl0ZXMsCistCSAgICBidWZmZXJfZW50cnktPmxhc3RfZGF0YSwKKy0JICAgIGdsb2J1 c19sX2dhc3NfY29weV9nYXNzX3dyaXRlX2NhbGxiYWNrLAorLQkgICAgKHZvaWQgKikgaGFuZGxl KTsKKy0KKy0JaWYgKHJjICE9IEdMT0JVU19TVUNDRVNTKQorLQl7CistCSAgICAvKiBmaWd1cmUg b3V0IHdoYXQgdGhlIGVycm9yIGlzLCBhbmQgcGFzcyBpdCBiYWNrIHRocm91Z2ggdGhlCisrICAg ICAgICAvKiBjaGVjayB0aGUgb2Zmc2V0IHRvIHNlZSBpZiBpdHMgd2hhdCB3ZSBhcmUgZXhwZWN0 aW5nICovCisrICAgICAgICByYyA9IGdsb2J1c19nYXNzX3RyYW5zZmVyX3NlbmRfYnl0ZXMoCisr ICAgICAgICAgICAgc3RhdGUtPmRlc3QuZGF0YS5nYXNzLnJlcXVlc3QsCisrICAgICAgICAgICAg YnVmZmVyX2VudHJ5LT5ieXRlcywKKysgICAgICAgICAgICBidWZmZXJfZW50cnktPm5ieXRlcywK KysgICAgICAgICAgICBidWZmZXJfZW50cnktPmxhc3RfZGF0YSwKKysgICAgICAgICAgICBnbG9i dXNfbF9nYXNzX2NvcHlfZ2Fzc193cml0ZV9jYWxsYmFjaywKKysgICAgICAgICAgICAodm9pZCAq KSBoYW5kbGUpOworKworKyAgICAgICAgaWYgKHJjICE9IEdMT0JVU19TVUNDRVNTKQorKyAgICAg ICAgeworKyAgICAgICAgICAgIC8qIGZpZ3VyZSBvdXQgd2hhdCB0aGUgZXJyb3IgaXMsIGFuZCBw YXNzIGl0IGJhY2sgdGhyb3VnaCB0aGUKKyAgICAgICAgICAgICAgKiByZXN1bHQKKyAgICAgICAg ICAgICAgKi8KKy0JICAgIGVyciA9IGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorLQkJ R0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCistCQlHTE9CVVNfTlVMTCwKKy0JCSJbJXNdOiBnbG9i dXNfZ2Fzc190cmFuc2Zlcl9zZW5kX2J5dGVzIHJldHVybmVkIGVycm9yIGNvZGU6ICVkIiwKKy0J CW15bmFtZSwKKy0JCXJjKTsKKy0JICAgIGdsb2J1c19pX2dhc3NfY29weV9zZXRfZXJyb3IoaGFu ZGxlLCBlcnIpOworLQkgICAgcmVzdWx0ID0gZ2xvYnVzX2Vycm9yX3B1dChlcnIpOworLQl9Cist CWVsc2UgcmVzdWx0ID0gR0xPQlVTX1NVQ0NFU1M7CistCistCWJyZWFrOworKyAgICAgICAgICAg IGVyciA9IGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorKyAgICAgICAgICAgICAgICBH TE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKysgICAgICAgICAgICAgICAgR0xPQlVTX05VTEwsCisr ICAgICAgICAgICAgICAgICJbJXNdOiBnbG9idXNfZ2Fzc190cmFuc2Zlcl9zZW5kX2J5dGVzIHJl dHVybmVkIGVycm9yIGNvZGU6ICVkIiwKKysgICAgICAgICAgICAgICAgbXluYW1lLAorKyAgICAg ICAgICAgICAgICByYyk7CisrICAgICAgICAgICAgZ2xvYnVzX2lfZ2Fzc19jb3B5X3NldF9lcnJv cihoYW5kbGUsIGVycik7CisrICAgICAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2Vycm9yX3B1dChl cnIpOworKyAgICAgICAgfQorKyAgICAgICAgZWxzZSByZXN1bHQgPSBHTE9CVVNfU1VDQ0VTUzsK KysKKysgICAgICAgIGJyZWFrOworIAorICAgICBjYXNlIEdMT0JVU19HQVNTX0NPUFlfVVJMX01P REVfSU86CisgCistCWlmIChzdGF0ZS0+ZGVzdC5kYXRhLmlvLnNlZWthYmxlICYmCistCSAgICBz dGF0ZS0+c291cmNlLm1vZGUgPT0gR0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9GVFApCistCXsK Ky0JICAgIHJlc3VsdCA9IGdsb2J1c19pb19maWxlX3NlZWsoCistCQlzdGF0ZS0+ZGVzdC5kYXRh LmlvLmhhbmRsZSwKKy0JCWJ1ZmZlcl9lbnRyeS0+b2Zmc2V0LAorLQkJR0xPQlVTX0lPX1NFRUtf U0VUKTsKKy0JfQorLQorLQlpZihyZXN1bHQgPT0gR0xPQlVTX1NVQ0NFU1MpCistCXsKKy0JICAg IHJlc3VsdCA9IGdsb2J1c19pb19yZWdpc3Rlcl93cml0ZSgKKy0JCXN0YXRlLT5kZXN0LmRhdGEu aW8uaGFuZGxlLAorLQkJYnVmZmVyX2VudHJ5LT5ieXRlcywKKy0JCWJ1ZmZlcl9lbnRyeS0+bmJ5 dGVzLAorLQkJZ2xvYnVzX2xfZ2Fzc19jb3B5X2lvX3dyaXRlX2NhbGxiYWNrLAorLQkJKHZvaWQg KikgaGFuZGxlKTsKKy0JfQorLQorLQlicmVhazsKKysgICAgICAgIGlmIChzdGF0ZS0+ZGVzdC5k YXRhLmlvLnNlZWthYmxlICYmCisrICAgICAgICAgICAgc3RhdGUtPnNvdXJjZS5tb2RlID09IEdM T0JVU19HQVNTX0NPUFlfVVJMX01PREVfRlRQKQorKyAgICAgICAgeworKyAgICAgICAgICAgIHJl c3VsdCA9IGdsb2J1c19pb19maWxlX3NlZWsoCisrICAgICAgICAgICAgICAgIHN0YXRlLT5kZXN0 LmRhdGEuaW8uaGFuZGxlLAorKyAgICAgICAgICAgICAgICBidWZmZXJfZW50cnktPm9mZnNldCwK KysgICAgICAgICAgICAgICAgR0xPQlVTX0lPX1NFRUtfU0VUKTsKKysgICAgICAgIH0KKysKKysg ICAgICAgIGlmKHJlc3VsdCA9PSBHTE9CVVNfU1VDQ0VTUykKKysgICAgICAgIHsKKysgICAgICAg ICAgICByZXN1bHQgPSBnbG9idXNfaW9fcmVnaXN0ZXJfd3JpdGUoCisrICAgICAgICAgICAgICAg IHN0YXRlLT5kZXN0LmRhdGEuaW8uaGFuZGxlLAorKyAgICAgICAgICAgICAgICBidWZmZXJfZW50 cnktPmJ5dGVzLAorKyAgICAgICAgICAgICAgICBidWZmZXJfZW50cnktPm5ieXRlcywKKysgICAg ICAgICAgICAgICAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2lvX3dyaXRlX2NhbGxiYWNrLAorKyAgICAg ICAgICAgICAgICAodm9pZCAqKSBoYW5kbGUpOworKyAgICAgICAgfQorKworKyAgICAgICAgYnJl YWs7CisgICAgIGRlZmF1bHQ6CistCWJyZWFrOworKyAgICAgICAgYnJlYWs7CisgICAgIH0vKiBz d2l0Y2ggKHN0YXRlLT5kZXN0Lm1vZGUpICovCisgCisgICAgIGdsb2J1c19saWJjX2ZyZWUoYnVm ZmVyX2VudHJ5KTsKK0BAIC00NjYzLDYxICs0NjYzLDYxIEBAIGdsb2J1c19sX2dhc3NfY29weV9m dHBfd3JpdGVfY2FsbGJhY2soCisgICAgIGdsb2J1c19ieXRlX3QgKiAgICAgICAgICAgICAgYnl0 ZXMsCisgICAgIGdsb2J1c19zaXplX3QgICAgICAgICAgICAgICAgbmJ5dGVzLAorICAgICBnbG9i dXNfb2ZmX3QgICAgICAgICAgICAgICAgIG9mZnNldCwKKy0gICAgZ2xvYnVzX2Jvb2xfdAkJIGVv ZikKKysgICAgZ2xvYnVzX2Jvb2xfdCAgICAgICAgICAgICAgICBlb2YpCisgeworICAgICBnbG9i dXNfZ2Fzc19jb3B5X2hhbmRsZV90ICogY29weV9oYW5kbGUKKy0JPSAoZ2xvYnVzX2dhc3NfY29w eV9oYW5kbGVfdCAqKSBjYWxsYmFja19hcmc7CisrICAgICAgICA9IChnbG9idXNfZ2Fzc19jb3B5 X2hhbmRsZV90ICopIGNhbGxiYWNrX2FyZzsKKyAgICAgZ2xvYnVzX2dhc3NfY29weV9zdGF0ZV90 ICogc3RhdGUKKyAgICAgICAgID0gY29weV9oYW5kbGUtPnN0YXRlOworIAorICNpZmRlZiBHTE9C VVNfSV9HQVNTX0NPUFlfREVCVUcKKyAgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisg ICAgICAgICAiZnRwX3dyaXRlX2NhbGxiYWNrKCk6ICBoYXMgYmVlbiBjYWxsZWQsIG5ieXRlczog JWQsIG9mZnNldD0gJSJHTE9CVVNfT0ZGX1RfRk9STUFUIiwgZW9mPSAlZFxuIiwKKy0JbmJ5dGVz LCBvZmZzZXQsIGVvZik7CisrICAgICAgICBuYnl0ZXMsIG9mZnNldCwgZW9mKTsKKyAjZW5kaWYK KyAKKyAgICAgaWYoZXJyb3IgPT0gR0xPQlVTX1NVQ0NFU1MpIC8qIG5vIGVycm9yIG9jY3VycmVk ICovCisgICAgIHsKKy0JaWYoZW9mKQorLQl7CisrICAgICAgICBpZihlb2YpCisrICAgICAgICB7 CisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJVRworLQkgICAgZ2xvYnVzX2xpYmNfZnBy aW50ZihzdGRlcnIsCistCSAgICAgICAgImZ0cF93cml0ZV9jYWxsYmFjaygpOiBhYm91dCB0byBz ZXQgZGVzdCBUQVJHRVRfRE9ORSwgbmJ5dGVzOiAlZCwgb2Zmc2V0PSAlIkdMT0JVU19PRkZfVF9G T1JNQVQiLCBlb2Y9ICVkXG4iLAorLQluYnl0ZXMsIG9mZnNldCwgZW9mKTsKKysgICAgICAgICAg ICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKysgICAgICAgICAgICAgICAgImZ0cF93cml0 ZV9jYWxsYmFjaygpOiBhYm91dCB0byBzZXQgZGVzdCBUQVJHRVRfRE9ORSwgbmJ5dGVzOiAlZCwg b2Zmc2V0PSAlIkdMT0JVU19PRkZfVF9GT1JNQVQiLCBlb2Y9ICVkXG4iLAorKyAgICAgICAgbmJ5 dGVzLCBvZmZzZXQsIGVvZik7CisgI2VuZGlmCistCSAgICBnbG9idXNfbXV0ZXhfbG9jaygmKHN0 YXRlLT5kZXN0Lm11dGV4KSk7CistCSAgICB7CistCQlzdGF0ZS0+ZGVzdC5zdGF0dXMgPSBHTE9C VVNfSV9HQVNTX0NPUFlfVEFSR0VUX0RPTkU7CistCSAgICB9CistCSAgICBnbG9idXNfbXV0ZXhf dW5sb2NrKCYoc3RhdGUtPmRlc3QubXV0ZXgpKTsKKy0JICAgIGlmKChjb3B5X2hhbmRsZS0+c3Rh dHVzICE9IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0ZBSUxVUkUpICYmCistCSAgICAgICAoY29w eV9oYW5kbGUtPnN0YXR1cyA8IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX1dSSVRFX0NPTVBMRVRF KSkKKy0JCWNvcHlfaGFuZGxlLT5zdGF0dXMgPSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19XUklU RV9DT01QTEVURTsKKy0JfQorKyAgICAgICAgICAgIGdsb2J1c19tdXRleF9sb2NrKCYoc3RhdGUt PmRlc3QubXV0ZXgpKTsKKysgICAgICAgICAgICB7CisrICAgICAgICAgICAgICAgIHN0YXRlLT5k ZXN0LnN0YXR1cyA9IEdMT0JVU19JX0dBU1NfQ09QWV9UQVJHRVRfRE9ORTsKKysgICAgICAgICAg ICB9CisrICAgICAgICAgICAgZ2xvYnVzX211dGV4X3VubG9jaygmKHN0YXRlLT5kZXN0Lm11dGV4 KSk7CisrICAgICAgICAgICAgaWYoKGNvcHlfaGFuZGxlLT5zdGF0dXMgIT0gR0xPQlVTX0dBU1Nf Q09QWV9TVEFUVVNfRkFJTFVSRSkgJiYKKysgICAgICAgICAgICAgICAoY29weV9oYW5kbGUtPnN0 YXR1cyA8IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX1dSSVRFX0NPTVBMRVRFKSkKKysgICAgICAg ICAgICAgICAgY29weV9oYW5kbGUtPnN0YXR1cyA9IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX1dS SVRFX0NPTVBMRVRFOworKyAgICAgICAgfQorICAgICB9CisgICAgIGVsc2UgLyogdGhlcmUgd2Fz IGFuIGVycm9yICovCisgICAgIHsKKy0JewkgICAgCistCSAgICBpZighc3RhdGUtPmNhbmNlbCkg LyogY2FuY2VsIGhhcyBub3QgYmVlbiBzZXQgYWxyZWFkeSAqLworLQkgICAgeworKyAgICAgICAg eworKyAgICAgICAgICAgIGlmKCFzdGF0ZS0+Y2FuY2VsKSAvKiBjYW5jZWwgaGFzIG5vdCBiZWVu IHNldCBhbHJlYWR5ICovCisrICAgICAgICAgICAgeworICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NP UFlfREVCVUcKKy0JCWdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAiZnRwX3dyaXRlX2NhbGxi YWNrKCk6IHRoZXJlIHdhcyBhbiBFUlJPUiwgdGhyb3cgY2FuY2VsIGZsYWdcbiIpOworKyAgICAg ICAgICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwgImZ0cF93cml0ZV9jYWxsYmFj aygpOiB0aGVyZSB3YXMgYW4gRVJST1IsIHRocm93IGNhbmNlbCBmbGFnXG4iKTsKKyAjZW5kaWYK Ky0JCWdsb2J1c19pX2dhc3NfY29weV9zZXRfZXJyb3IoY29weV9oYW5kbGUsIGVycm9yKTsKKy0J CXN0YXRlLT5jYW5jZWwgPSBHTE9CVVNfSV9HQVNTX0NPUFlfQ0FOQ0VMX1RSVUU7CistCQljb3B5 X2hhbmRsZS0+c3RhdHVzID0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfRkFJTFVSRTsKKysgICAg ICAgICAgICAgICAgZ2xvYnVzX2lfZ2Fzc19jb3B5X3NldF9lcnJvcihjb3B5X2hhbmRsZSwgZXJy b3IpOworKyAgICAgICAgICAgICAgICBzdGF0ZS0+Y2FuY2VsID0gR0xPQlVTX0lfR0FTU19DT1BZ X0NBTkNFTF9UUlVFOworKyAgICAgICAgICAgICAgICBjb3B5X2hhbmRsZS0+c3RhdHVzID0gR0xP QlVTX0dBU1NfQ09QWV9TVEFUVVNfRkFJTFVSRTsKKyAgICAgICAgICAgICAgICAgc3RhdGUtPmRl c3QuZGF0YS5mdHAuZGF0YV9lcnIgPSBjb3B5X2hhbmRsZS0+ZXJyOworLQkgICAgfQorLQkgICAg ZWxzZQorLQkgICAgeworLQkgICAgICAgIGdsb2J1c19tdXRleF9sb2NrKCYoc3RhdGUtPmRlc3Qu bXV0ZXgpKTsKKy0JCXN0YXRlLT5kZXN0Lm5fcGVuZGluZy0tOworLQkJZ2xvYnVzX211dGV4X3Vu bG9jaygmKHN0YXRlLT5kZXN0Lm11dGV4KSk7CistCQlyZXR1cm47CistCSAgICB9CisrICAgICAg ICAgICAgfQorKyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICB7CisrICAgICAgICAgICAg ICAgIGdsb2J1c19tdXRleF9sb2NrKCYoc3RhdGUtPmRlc3QubXV0ZXgpKTsKKysgICAgICAgICAg ICAgICAgc3RhdGUtPmRlc3Qubl9wZW5kaW5nLS07CisrICAgICAgICAgICAgICAgIGdsb2J1c19t dXRleF91bmxvY2soJihzdGF0ZS0+ZGVzdC5tdXRleCkpOworKyAgICAgICAgICAgICAgICByZXR1 cm47CisrICAgICAgICAgICAgfQorIAorIAorLQl9CisrICAgICAgICB9CisgICAgIH0gLyogZWxz ZSAodGhlcmUgd2FzIGFuIGVycm9yKSAqLworIAorICAgICBnbG9idXNfbF9nYXNzX2NvcHlfZ2Vu ZXJpY193cml0ZV9jYWxsYmFjaygKK0BAIC00NzQxLDcgKzQ3NDEsNyBAQCBnbG9idXNfbF9nYXNz X2NvcHlfZ2Fzc193cml0ZV9jYWxsYmFjaygKKyAgICAgc3RhdGljIGNoYXIgKiBteW5hbWU9Imds b2J1c19sX2dhc3NfY29weV9nYXNzX3dyaXRlX2NhbGxiYWNrIjsKKyAKKyAgICAgZ2xvYnVzX2dh c3NfY29weV9oYW5kbGVfdCAqIGhhbmRsZQorLQk9IChnbG9idXNfZ2Fzc19jb3B5X2hhbmRsZV90 ICopIGNhbGxiYWNrX2FyZzsKKysgICAgICAgID0gKGdsb2J1c19nYXNzX2NvcHlfaGFuZGxlX3Qg KikgY2FsbGJhY2tfYXJnOworICAgICBnbG9idXNfZ2Fzc19jb3B5X3N0YXRlX3QgKiBzdGF0ZSA9 IGhhbmRsZS0+c3RhdGU7CisgCisgICAgIHJlcV9zdGF0dXMgPSBnbG9idXNfZ2Fzc190cmFuc2Zl cl9yZXF1ZXN0X2dldF9zdGF0dXMocmVxdWVzdCk7CitAQCAtNDc1NCw1OSArNDc1NCw1OSBAQCBn bG9idXNfbF9nYXNzX2NvcHlfZ2Fzc193cml0ZV9jYWxsYmFjaygKKyAgICAgaWYocmVxX3N0YXR1 cyA9PSBHTE9CVVNfR0FTU19UUkFOU0ZFUl9SRVFVRVNUX0RPTkUgfHwKKyAgICAgICAgcmVxX3N0 YXR1cyA9PSBHTE9CVVNfR0FTU19UUkFOU0ZFUl9SRVFVRVNUX1BFTkRJTkcpCisgICAgIHsgLyog YWxsIGlzIHdlbGwgKi8KKy0JaWYobGFzdF9kYXRhKQorLQl7IC8qIHRoaXMgd2FzIHRoZSBsYXN0 IHdyaXRlLiBzZXQgV1JJVEVfQ09NUExFVEUgYW5kIGZyZWUgdGhlIHJlcXVlc3QgKi8KKysgICAg ICAgIGlmKGxhc3RfZGF0YSkKKysgICAgICAgIHsgLyogdGhpcyB3YXMgdGhlIGxhc3Qgd3JpdGUu IHNldCBXUklURV9DT01QTEVURSBhbmQgZnJlZSB0aGUgcmVxdWVzdCAqLworICNpZmRlZiBHTE9C VVNfSV9HQVNTX0NPUFlfREVCVUcKKy0JICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAor KyAgICAgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAg ICAiZ2Fzc193cml0ZV9jYWxsYmFjaygpOiBUSElTIFdBUyBUSEUgTEFTVCBXUklURVxuIik7Cisg I2VuZGlmCistCSAgICBnbG9idXNfbXV0ZXhfbG9jaygmKHN0YXRlLT5kZXN0Lm11dGV4KSk7Cist CSAgICB7CistCQlzdGF0ZS0+ZGVzdC5zdGF0dXMgPSBHTE9CVVNfSV9HQVNTX0NPUFlfVEFSR0VU X0RPTkU7CistCSAgICB9CistCSAgICBnbG9idXNfbXV0ZXhfdW5sb2NrKCYoc3RhdGUtPmRlc3Qu bXV0ZXgpKTsKKy0JICAgIGhhbmRsZS0+c3RhdHVzID0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNf V1JJVEVfQ09NUExFVEU7CisrICAgICAgICAgICAgZ2xvYnVzX211dGV4X2xvY2soJihzdGF0ZS0+ ZGVzdC5tdXRleCkpOworKyAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAgc3RhdGUtPmRl c3Quc3RhdHVzID0gR0xPQlVTX0lfR0FTU19DT1BZX1RBUkdFVF9ET05FOworKyAgICAgICAgICAg IH0KKysgICAgICAgICAgICBnbG9idXNfbXV0ZXhfdW5sb2NrKCYoc3RhdGUtPmRlc3QubXV0ZXgp KTsKKysgICAgICAgICAgICBoYW5kbGUtPnN0YXR1cyA9IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVT X1dSSVRFX0NPTVBMRVRFOworIAorLQkgICAgaWYocmVxX3N0YXR1cyA9PSBHTE9CVVNfR0FTU19U UkFOU0ZFUl9SRVFVRVNUX0RPTkUpCistCSAgICB7CisrICAgICAgICAgICAgaWYocmVxX3N0YXR1 cyA9PSBHTE9CVVNfR0FTU19UUkFOU0ZFUl9SRVFVRVNUX0RPTkUpCisrICAgICAgICAgICAgewor ICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKy0JCWdsb2J1c19saWJjX2ZwcmludGYo c3RkZXJyLAorKyAgICAgICAgICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKyAg ICAgICAgICAgICAgICAgICAiZ2Fzc193cml0ZV9jYWxsYmFjaygpOiBHTE9CVVNfR0FTU19UUkFO U0ZFUl9SRVFVRVNUX0RPTkVcbiIpOworICNlbmRpZgorLQkJZ2xvYnVzX2dhc3NfdHJhbnNmZXJf cmVxdWVzdF9kZXN0cm95KHJlcXVlc3QpOworLQkgICAgfQorLQkgICAgZWxzZQorLQkgICAgewor LQkJLyogdGhlcmUncyBhbiBlcnJvciwgdGVsbCBzb21lb25lIHdobyBjYXJlcyAqLworKyAgICAg ICAgICAgICAgICBnbG9idXNfZ2Fzc190cmFuc2Zlcl9yZXF1ZXN0X2Rlc3Ryb3kocmVxdWVzdCk7 CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICB7CisrICAg ICAgICAgICAgICAgIC8qIHRoZXJlJ3MgYW4gZXJyb3IsIHRlbGwgc29tZW9uZSB3aG8gY2FyZXMg Ki8KKyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVHCistCQlnbG9idXNfbGliY19mcHJp bnRmKHN0ZGVyciwgImdhc3Nfd3JpdGVfY2FsbGJhY2soKTogdGhpcyB3YXMgbGFzdF9kYXRhLCBi dXQgc3RhdHVzICE9R0xPQlVTX0dBU1NfVFJBTlNGRVJfUkVRVUVTVF9ET05FXG4iKTsKKysgICAg ICAgICAgICAgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJnYXNzX3dyaXRlX2NhbGxi YWNrKCk6IHRoaXMgd2FzIGxhc3RfZGF0YSwgYnV0IHN0YXR1cyAhPUdMT0JVU19HQVNTX1RSQU5T RkVSX1JFUVVFU1RfRE9ORVxuIik7CisgI2VuZGlmCistCSAgICB9CistCX0gLyogaWYgKGxhc3Rf ZGF0YSkgKi8KKysgICAgICAgICAgICB9CisrICAgICAgICB9IC8qIGlmIChsYXN0X2RhdGEpICov CisgICAgIH0gLyphbGwgaXMgd2VsbCAqLworICAgICBlbHNlCisgICAgIHsgLyogYWxsIGlzIE5P VCB3ZWxsLCBkZWFsIHdpdGggZXJyb3IgKi8KKy0JeworLQkgICAgaWYoIXN0YXRlLT5jYW5jZWwp IC8qIGNhbmNlbCBoYXMgbm90IGJlZW4gc2V0IGFscmVhZHkgKi8KKy0JICAgIHsKKy0JCWVyciA9 IGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorLQkJICAgIEdMT0JVU19HQVNTX0NPUFlf TU9EVUxFLAorLQkJICAgIEdMT0JVU19OVUxMLAorLQkJICAgICJbJXNdOiBnYXNzX3RyYW5zZmVy X3JlcXVlc3Rfc3RhdHVzOiAlZCIsCistCQkgICAgbXluYW1lLAorLQkJICAgIHJlcV9zdGF0dXMp OworLQkJZ2xvYnVzX2lfZ2Fzc19jb3B5X3NldF9lcnJvcihoYW5kbGUsIGVycik7CistCQlzdGF0 ZS0+Y2FuY2VsID0gR0xPQlVTX0lfR0FTU19DT1BZX0NBTkNFTF9UUlVFOworLQkJaGFuZGxlLT5z dGF0dXMgPSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19GQUlMVVJFOworLQkgICAgfQorLQkgICAg ZWxzZQorLQkgICAgeworLQkgICAgICAgIGdsb2J1c19tdXRleF9sb2NrKCYoc3RhdGUtPmRlc3Qu bXV0ZXgpKTsKKy0JCXN0YXRlLT5kZXN0Lm5fcGVuZGluZy0tOworLQkJZ2xvYnVzX211dGV4X3Vu bG9jaygmKHN0YXRlLT5kZXN0Lm11dGV4KSk7CistCQlyZXR1cm47CistCSAgICB9CistCX0KKysg ICAgICAgIHsKKysgICAgICAgICAgICBpZighc3RhdGUtPmNhbmNlbCkgLyogY2FuY2VsIGhhcyBu b3QgYmVlbiBzZXQgYWxyZWFkeSAqLworKyAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAg ZXJyID0gZ2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCisrICAgICAgICAgICAgICAgICAg ICBHTE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKysgICAgICAgICAgICAgICAgICAgIEdMT0JVU19O VUxMLAorKyAgICAgICAgICAgICAgICAgICAgIlslc106IGdhc3NfdHJhbnNmZXJfcmVxdWVzdF9z dGF0dXM6ICVkIiwKKysgICAgICAgICAgICAgICAgICAgIG15bmFtZSwKKysgICAgICAgICAgICAg ICAgICAgIHJlcV9zdGF0dXMpOworKyAgICAgICAgICAgICAgICBnbG9idXNfaV9nYXNzX2NvcHlf c2V0X2Vycm9yKGhhbmRsZSwgZXJyKTsKKysgICAgICAgICAgICAgICAgc3RhdGUtPmNhbmNlbCA9 IEdMT0JVU19JX0dBU1NfQ09QWV9DQU5DRUxfVFJVRTsKKysgICAgICAgICAgICAgICAgaGFuZGxl LT5zdGF0dXMgPSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19GQUlMVVJFOworKyAgICAgICAgICAg IH0KKysgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICBn bG9idXNfbXV0ZXhfbG9jaygmKHN0YXRlLT5kZXN0Lm11dGV4KSk7CisrICAgICAgICAgICAgICAg IHN0YXRlLT5kZXN0Lm5fcGVuZGluZy0tOworKyAgICAgICAgICAgICAgICBnbG9idXNfbXV0ZXhf dW5sb2NrKCYoc3RhdGUtPmRlc3QubXV0ZXgpKTsKKysgICAgICAgICAgICAgICAgcmV0dXJuOwor KyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKyAgICAgfSAvKiBlbHNlICh0aGVyZSB3YXMgYW4g ZXJyb3IpICovCisgCisgICAgIGdsb2J1c19sX2dhc3NfY29weV9nZW5lcmljX3dyaXRlX2NhbGxi YWNrKAorQEAgLTQ4MjUsOTYgKzQ4MjUsOTYgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2lvX3dyaXRl X2NhbGxiYWNrKAorICAgICBnbG9idXNfc2l6ZV90ICAgICAgICAgbmJ5dGVzKQorIHsKKyAgICAg Z2xvYnVzX2dhc3NfY29weV9oYW5kbGVfdCAqIGhhbmRsZQorLQk9IChnbG9idXNfZ2Fzc19jb3B5 X2hhbmRsZV90ICopIGNhbGxiYWNrX2FyZzsKKysgICAgICAgID0gKGdsb2J1c19nYXNzX2NvcHlf aGFuZGxlX3QgKikgY2FsbGJhY2tfYXJnOworICAgICBnbG9idXNfZ2Fzc19jb3B5X3N0YXRlX3Qg KiBzdGF0ZSA9IGhhbmRsZS0+c3RhdGU7CisgICAgIGdsb2J1c19ib29sX3QgY2xvc2VfaGFuZGxl ID0gR0xPQlVTX0ZBTFNFOworLSAgICAKKysKKyAvKgorICAqIHVzZWQgdGhpcyB0byBzaW11bGF0 ZSBhIGlvIHdyaXRlIGVycm9yCisgICoKKyAgICAgZ2xvYnVzX29iamVjdF90ICogZXJyOworIAor ICAgICBlcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKy0JR0xPQlVTX0dBU1Nf Q09QWV9NT0RVTEUsCistCUdMT0JVU19OVUxMLAorLQkiW1NUVV06IFNUVSwgZm9yY2luZyBpbyB3 cml0ZSBjYWxsYmFjayBmYXVsdCIpOworKyAgICAgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUs CisrICAgICAgICBHTE9CVVNfTlVMTCwKKysgICAgICAgICJbU1RVXTogU1RVLCBmb3JjaW5nIGlv IHdyaXRlIGNhbGxiYWNrIGZhdWx0Iik7CisgICAgIHJlc3VsdD1nbG9idXNfZXJyb3JfcHV0KGVy cik7CisgKi8KKyAKKyAgICAgaWYocmVzdWx0PT1HTE9CVVNfU1VDQ0VTUykKKyAgICAgeworICNp ZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKy0JZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRl cnIsCisrICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAi aW9fd3JpdGVfY2FsbGJhY2soKTogcmVzdWx0ID09IEdMT0JVU19TVUNDRVNTXG4iKTsKKyAjZW5k aWYKKyAKKy0JZ2xvYnVzX211dGV4X2xvY2soJihzdGF0ZS0+c291cmNlLm11dGV4KSk7CistCXsK Ky0JICAgIGlmKHN0YXRlLT5zb3VyY2Uuc3RhdHVzID09IEdMT0JVU19JX0dBU1NfQ09QWV9UQVJH RVRfRE9ORSAmJgorLQkgICAgICAgc3RhdGUtPnNvdXJjZS5uX3BlbmRpbmcgPT0gMCkKKy0JICAg IHsKKysgICAgICAgIGdsb2J1c19tdXRleF9sb2NrKCYoc3RhdGUtPnNvdXJjZS5tdXRleCkpOwor KyAgICAgICAgeworKyAgICAgICAgICAgIGlmKHN0YXRlLT5zb3VyY2Uuc3RhdHVzID09IEdMT0JV U19JX0dBU1NfQ09QWV9UQVJHRVRfRE9ORSAmJgorKyAgICAgICAgICAgICAgIHN0YXRlLT5zb3Vy Y2Uubl9wZW5kaW5nID09IDApCisrICAgICAgICAgICAgeworICNpZmRlZiBHTE9CVVNfSV9HQVNT X0NPUFlfREVCVUcKKy0JCWdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorKyAgICAgICAgICAg ICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgICJp b193cml0ZV9jYWxsYmFjaygpOiBUSElTIFdBUyBUSEUgTEFTVCBXUklURVxuIik7CisgI2VuZGlm CistCQlnbG9idXNfbXV0ZXhfbG9jaygmKHN0YXRlLT5kZXN0Lm11dGV4KSk7CistCQl7CistCQkg ICAgaWYoZ2xvYnVzX2ZpZm9fZW1wdHkoJihzdGF0ZS0+ZGVzdC5xdWV1ZSkpKQorLQkJICAgIHsK Ky0JCQlzdGF0ZS0+ZGVzdC5zdGF0dXMgPSBHTE9CVVNfSV9HQVNTX0NPUFlfVEFSR0VUX0RPTkU7 CisrICAgICAgICAgICAgICAgIGdsb2J1c19tdXRleF9sb2NrKCYoc3RhdGUtPmRlc3QubXV0ZXgp KTsKKysgICAgICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICAgICAgaWYoZ2xvYnVzX2Zp Zm9fZW1wdHkoJihzdGF0ZS0+ZGVzdC5xdWV1ZSkpKQorKyAgICAgICAgICAgICAgICAgICAgewor KyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5kZXN0LnN0YXR1cyA9IEdMT0JVU19JX0dB U1NfQ09QWV9UQVJHRVRfRE9ORTsKKyAKKy0JCQloYW5kbGUtPnN0YXR1cyA9IEdMT0JVU19HQVNT X0NPUFlfU1RBVFVTX1dSSVRFX0NPTVBMRVRFOworKyAgICAgICAgICAgICAgICAgICAgICAgIGhh bmRsZS0+c3RhdHVzID0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfV1JJVEVfQ09NUExFVEU7Cisg CistCQkJaWYoc3RhdGUtPmRlc3QuZGF0YS5pby5mcmVlX2hhbmRsZSkKKy0JCQl7CistCQkJICAg IGNsb3NlX2hhbmRsZSA9IEdMT0JVU19UUlVFOworKyAgICAgICAgICAgICAgICAgICAgICAgIGlm KHN0YXRlLT5kZXN0LmRhdGEuaW8uZnJlZV9oYW5kbGUpCisrICAgICAgICAgICAgICAgICAgICAg ICAgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZV9oYW5kbGUgPSBHTE9CVVNf VFJVRTsKKyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVHCistCQkJICAgIGdsb2J1c19s aWJjX2ZwcmludGYoc3RkZXJyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9idXNf bGliY19mcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJp b193cml0ZV9jYWxsYmFjaygpOiBoYW5kbGUgY2xvc2VkXG4iKTsKKyAjZW5kaWYKKy0JCQl9IC8q IGlmKHN0YXRlLT5kZXN0LmRhdGEuaW8uZnJlZV9oYW5kbGUpICovCistCQkgICAgfSAvKiBpZiB3 cml0ZSBxdWV1ZSBpcyBlbXB0eSAqLworLQkJfQorLQkJZ2xvYnVzX211dGV4X3VubG9jaygmKHN0 YXRlLT5kZXN0Lm11dGV4KSk7CisrICAgICAgICAgICAgICAgICAgICAgICAgfSAvKiBpZihzdGF0 ZS0+ZGVzdC5kYXRhLmlvLmZyZWVfaGFuZGxlKSAqLworKyAgICAgICAgICAgICAgICAgICAgfSAv KiBpZiB3cml0ZSBxdWV1ZSBpcyBlbXB0eSAqLworKyAgICAgICAgICAgICAgICB9CisrICAgICAg ICAgICAgICAgIGdsb2J1c19tdXRleF91bmxvY2soJihzdGF0ZS0+ZGVzdC5tdXRleCkpOworKwor KyAgICAgICAgICAgIH0gLyogZW5kIGlmIGxhc3Qgd3JpdGUgKi8KKysgICAgICAgIH0KKysgICAg ICAgIGdsb2J1c19tdXRleF91bmxvY2soJihzdGF0ZS0+c291cmNlLm11dGV4KSk7CisgCistCSAg ICB9IC8qIGVuZCBpZiBsYXN0IHdyaXRlICovCistCX0KKy0JZ2xvYnVzX211dGV4X3VubG9jaygm KHN0YXRlLT5zb3VyY2UubXV0ZXgpKTsKKy0JCistCWlmKGNsb3NlX2hhbmRsZSkKKy0JeworLQkg ICAgZ2xvYnVzX2lvX2Nsb3NlKGlvX2hhbmRsZSk7CistCX0KKysgICAgICAgIGlmKGNsb3NlX2hh bmRsZSkKKysgICAgICAgIHsKKysgICAgICAgICAgICBnbG9idXNfaW9fY2xvc2UoaW9faGFuZGxl KTsKKysgICAgICAgIH0KKyAgICAgfQorICAgICBlbHNlIC8qIHRoZXJlIHdhcyBhbiBlcnJvciAq LworICAgICB7CisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJVRworLQlnbG9idXNfbGli Y19mcHJpbnRmKHN0ZGVyciwKKysgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAor ICAgICAgICAgICAgICJpb193cml0ZV9jYWxsYmFjaygpOiByZXN1bHQgIT0gR0xPQlVTX1NVQ0NF U1NcbiIpOworICNlbmRpZgorLQl7CistCSAgICBpZighc3RhdGUtPmNhbmNlbCkgLyogY2FuY2Vs IGhhcyBub3QgYmVlbiBzZXQgYWxyZWFkeSAqLworLQkgICAgeworKyAgICAgICAgeworKyAgICAg ICAgICAgIGlmKCFzdGF0ZS0+Y2FuY2VsKSAvKiBjYW5jZWwgaGFzIG5vdCBiZWVuIHNldCBhbHJl YWR5ICovCisrICAgICAgICAgICAgeworICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcK Ky0JICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKysgICAgICAgICAgICAgICAg Z2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICAiaW9fd3Jp dGVfY2FsbGJhY2soKTogY2FuY2VsIGhhcyBub3QgYmVlbiBzZXRcbiIpOworICNlbmRpZgorLQkJ Z2xvYnVzX2lfZ2Fzc19jb3B5X3NldF9lcnJvcl9mcm9tX3Jlc3VsdChoYW5kbGUsIHJlc3VsdCk7 CistCQlzdGF0ZS0+Y2FuY2VsID0gR0xPQlVTX0lfR0FTU19DT1BZX0NBTkNFTF9UUlVFOworLQkJ aGFuZGxlLT5zdGF0dXMgPSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19GQUlMVVJFOworLQkgICAg fQorLQkgICAgZWxzZQorLQkgICAgeworKyAgICAgICAgICAgICAgICBnbG9idXNfaV9nYXNzX2Nv cHlfc2V0X2Vycm9yX2Zyb21fcmVzdWx0KGhhbmRsZSwgcmVzdWx0KTsKKysgICAgICAgICAgICAg ICAgc3RhdGUtPmNhbmNlbCA9IEdMT0JVU19JX0dBU1NfQ09QWV9DQU5DRUxfVFJVRTsKKysgICAg ICAgICAgICAgICAgaGFuZGxlLT5zdGF0dXMgPSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19GQUlM VVJFOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICBlbHNlCisrICAgICAgICAgICAgewor ICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKy0JICAgICAgICBnbG9idXNfbGliY19m cHJpbnRmKHN0ZGVyciwKKysgICAgICAgICAgICAgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRl cnIsCisgICAgICAgICAgICAgICAgICAgICAiaW9fd3JpdGVfY2FsbGJhY2soKTogY2FuY2VsIGhh cyBhbHJlYWR5IGJlZW4gc2V0XG4iKTsKKyAjZW5kaWYKKy0JICAgICAgICBnbG9idXNfbXV0ZXhf bG9jaygmKHN0YXRlLT5kZXN0Lm11dGV4KSk7CistCQlzdGF0ZS0+ZGVzdC5uX3BlbmRpbmctLTsK Ky0JCWdsb2J1c19tdXRleF91bmxvY2soJihzdGF0ZS0+ZGVzdC5tdXRleCkpOworLQkJcmV0dXJu OworLQkgICAgfQorLQl9CisrICAgICAgICAgICAgICAgIGdsb2J1c19tdXRleF9sb2NrKCYoc3Rh dGUtPmRlc3QubXV0ZXgpKTsKKysgICAgICAgICAgICAgICAgc3RhdGUtPmRlc3Qubl9wZW5kaW5n LS07CisrICAgICAgICAgICAgICAgIGdsb2J1c19tdXRleF91bmxvY2soJihzdGF0ZS0+ZGVzdC5t dXRleCkpOworKyAgICAgICAgICAgICAgICByZXR1cm47CisrICAgICAgICAgICAgfQorKyAgICAg ICAgfQorICAgICB9IC8qIGVsc2UgKHRoZXJlIHdhcyBhbiBlcnJvcikgKi8KKyAKKyAgICAgZ2xv YnVzX2xfZ2Fzc19jb3B5X2dlbmVyaWNfd3JpdGVfY2FsbGJhY2soCitAQCAtNDk3NCwxOCArNDk3 NCwxOCBAQCBnbG9idXNfZ2Fzc19jb3B5X3VybF90b191cmwoCisgCisgICAgIGlmKGhhbmRsZSA9 PSBHTE9CVVNfTlVMTCkKKyAgICAgeworLQliYWRfcGFyYW0gPSAxOworLQlnb3RvIGVycm9yX2V4 aXQ7CisrICAgICAgICBiYWRfcGFyYW0gPSAxOworKyAgICAgICAgZ290byBlcnJvcl9leGl0Owor ICAgICB9CisgICAgIGlmKHNvdXJjZV91cmwgPT0gR0xPQlVTX05VTEwpCisgICAgIHsKKy0JYmFk X3BhcmFtID0gMjsKKy0JZ290byBlcnJvcl9leGl0OworKyAgICAgICAgYmFkX3BhcmFtID0gMjsK KysgICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKKyAgICAgfQorICAgICBpZihkZXN0X3VybCA9PSBH TE9CVVNfTlVMTCkKKyAgICAgeworLQliYWRfcGFyYW0gPSA0OworLQlnb3RvIGVycm9yX2V4aXQ7 CisrICAgICAgICBiYWRfcGFyYW0gPSA0OworKyAgICAgICAgZ290byBlcnJvcl9leGl0OworICAg ICB9CisgCisgICAgICAvKiByZXR1cm4gYW4gZXJyb3IgaWYgYSB0cmFuc2ZlciBpcyBhbHJlYWR5 IGluIHByb2dyZXNzICovCitAQCAtNDk5MywxMCArNDk5MywxMCBAQCBnbG9idXNfZ2Fzc19jb3B5 X3VybF90b191cmwoCisgICAgICAgIGhhbmRsZS0+c3RhdHVzIDwgR0xPQlVTX0dBU1NfQ09QWV9T VEFUVVNfRE9ORV9TVUNDRVNTKQorICAgICB7CisgICAgICAgZXJyID0gZ2xvYnVzX2Vycm9yX2Nv bnN0cnVjdF9zdHJpbmcoCistCUdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorLQlHTE9CVVNfTlVM TCwKKy0JIlslc106IFRoZXJlIGlzIGEgdHJhbnNmZXIgYWxyZWFkeSBhY3RpdmUgb24gdGhpcyBo YW5kbGUiLAorLQlteW5hbWUpOworKyAgICAgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCisr ICAgICAgICBHTE9CVVNfTlVMTCwKKysgICAgICAgICJbJXNdOiBUaGVyZSBpcyBhIHRyYW5zZmVy IGFscmVhZHkgYWN0aXZlIG9uIHRoaXMgaGFuZGxlIiwKKysgICAgICAgIG15bmFtZSk7CisgICAg ICAgcmV0dXJuIGdsb2J1c19lcnJvcl9wdXQoZXJyKTsKKyAgICAgfQorIAorQEAgLTUwMDcsMjAg KzUwMDcsMjAgQEAgZ2xvYnVzX2dhc3NfY29weV91cmxfdG9fdXJsKAorICAgICBtb25pdG9yLnVz ZV9lcnIgPSBHTE9CVVNfRkFMU0U7CisgCisgICAgIHJlc3VsdCA9IGdsb2J1c19nYXNzX2NvcHlf cmVnaXN0ZXJfdXJsX3RvX3VybCgKKy0JaGFuZGxlLAorLQlzb3VyY2VfdXJsLAorLQlzb3VyY2Vf YXR0ciwKKy0JZGVzdF91cmwsCistCWRlc3RfYXR0ciwKKy0JZ2xvYnVzX2xfZ2Fzc19jb3B5X21v bml0b3JfY2FsbGJhY2ssCistCSh2b2lkICopICZtb25pdG9yKTsKKysgICAgICAgIGhhbmRsZSwK KysgICAgICAgIHNvdXJjZV91cmwsCisrICAgICAgICBzb3VyY2VfYXR0ciwKKysgICAgICAgIGRl c3RfdXJsLAorKyAgICAgICAgZGVzdF9hdHRyLAorKyAgICAgICAgZ2xvYnVzX2xfZ2Fzc19jb3B5 X21vbml0b3JfY2FsbGJhY2ssCisrICAgICAgICAodm9pZCAqKSAmbW9uaXRvcik7CisgCisgICAg IGlmKHJlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKKyAgICAgeworLQlnbG9idXNfbXV0ZXhfZGVz dHJveSgmbW9uaXRvci5tdXRleCk7CistCWdsb2J1c19jb25kX2Rlc3Ryb3koJm1vbml0b3IuY29u ZCk7CistCWhhbmRsZS0+c3RhdHVzID0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfRE9ORV9GQUlM VVJFOworLQlyZXR1cm4ocmVzdWx0KTsKKysgICAgICAgIGdsb2J1c19tdXRleF9kZXN0cm95KCZt b25pdG9yLm11dGV4KTsKKysgICAgICAgIGdsb2J1c19jb25kX2Rlc3Ryb3koJm1vbml0b3IuY29u ZCk7CisrICAgICAgICBoYW5kbGUtPnN0YXR1cyA9IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0RP TkVfRkFJTFVSRTsKKysgICAgICAgIHJldHVybihyZXN1bHQpOworICAgICB9CisgICAgIC8qIHdh aXQgb24gY29uZF93YWl0KCkgZm9yIGNvbXBsZXRpb24gKi8KKyAgICAgZ2xvYnVzX211dGV4X2xv Y2soJm1vbml0b3IubXV0ZXgpOworQEAgLTUwNDgsMTQgKzUwNDgsMTQgQEAgZ2xvYnVzX2dhc3Nf Y29weV91cmxfdG9fdXJsKAorIGVycm9yX2V4aXQ6CisgCisgICAgIGVyciA9IGdsb2J1c19lcnJv cl9jb25zdHJ1Y3Rfc3RyaW5nKAorLQlHTE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKy0JR0xPQlVT X05VTEwsCistCSJbJXNdOiBCQURfUEFSQU1FVEVSLCBhcmd1bWVudCAlZCBjYW5ub3QgYmUgTlVM TCIsCistCW15bmFtZSwKKy0JYmFkX3BhcmFtKTsKKysgICAgICAgIEdMT0JVU19HQVNTX0NPUFlf TU9EVUxFLAorKyAgICAgICAgR0xPQlVTX05VTEwsCisrICAgICAgICAiWyVzXTogQkFEX1BBUkFN RVRFUiwgYXJndW1lbnQgJWQgY2Fubm90IGJlIE5VTEwiLAorKyAgICAgICAgbXluYW1lLAorKyAg ICAgICAgYmFkX3BhcmFtKTsKKyAKKyAgICAgaWYoaGFuZGxlKQorLQloYW5kbGUtPnN0YXR1cyA9 IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0RPTkVfRkFJTFVSRTsKKysgICAgICAgIGhhbmRsZS0+ c3RhdHVzID0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfRE9ORV9GQUlMVVJFOworIAorICAgICBy ZXR1cm4gZ2xvYnVzX2Vycm9yX3B1dChlcnIpOworIAorQEAgLTUxMDksMTggKzUxMDksMTggQEAg Z2xvYnVzX2dhc3NfY29weV91cmxfdG9faGFuZGxlKAorICAgICAvKiBDaGVjayBhcmd1bWVudHMg Zm9yIHZhbGlkaXR5ICovCisgICAgIGlmKGhhbmRsZSA9PSBHTE9CVVNfTlVMTCkKKyAgICAgewor LQliYWRfcGFyYW09MTsKKy0JZ290byBlcnJvcl9leGl0OworKyAgICAgICAgYmFkX3BhcmFtPTE7 CisrICAgICAgICBnb3RvIGVycm9yX2V4aXQ7CisgICAgIH0KKyAgICAgaWYoc291cmNlX3VybCA9 PSBHTE9CVVNfTlVMTCkKKyAgICAgeworLQliYWRfcGFyYW09MjsKKy0JZ290byBlcnJvcl9leGl0 OworKyAgICAgICAgYmFkX3BhcmFtPTI7CisrICAgICAgICBnb3RvIGVycm9yX2V4aXQ7CisgICAg IH0KKyAgICAgaWYoZGVzdF9oYW5kbGUgPT0gR0xPQlVTX05VTEwpCisgICAgIHsKKy0JYmFkX3Bh cmFtPTQ7CistCWdvdG8gZXJyb3JfZXhpdDsKKysgICAgICAgIGJhZF9wYXJhbT00OworKyAgICAg ICAgZ290byBlcnJvcl9leGl0OworICAgICB9CisgCisgICAgIC8qIHJldHVybiBhbiBlcnJvciBp ZiBhIHRyYW5zZmVyIGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3MgKi8KK0BAIC01MTI4LDEwICs1MTI4 LDEwIEBAIGdsb2J1c19nYXNzX2NvcHlfdXJsX3RvX2hhbmRsZSgKKyAgICAgICAgaGFuZGxlLT5z dGF0dXMgPCBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19ET05FX1NVQ0NFU1MpCisgICAgIHsKKyAg ICAgICBlcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKy0JR0xPQlVTX0dBU1Nf Q09QWV9NT0RVTEUsCistCUdMT0JVU19OVUxMLAorLQkiWyVzXTogVGhlcmUgaXMgYSB0cmFuc2Zl ciBhbHJlYWR5IGFjdGl2ZSBvbiB0aGlzIGhhbmRsZSIsCistCW15bmFtZSk7CisrICAgICAgICBH TE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKysgICAgICAgIEdMT0JVU19OVUxMLAorKyAgICAgICAg Ilslc106IFRoZXJlIGlzIGEgdHJhbnNmZXIgYWxyZWFkeSBhY3RpdmUgb24gdGhpcyBoYW5kbGUi LAorKyAgICAgICAgbXluYW1lKTsKKyAgICAgICByZXR1cm4gZ2xvYnVzX2Vycm9yX3B1dChlcnIp OworICAgICB9CisgCitAQCAtNTE0MiwxOSArNTE0MiwxOSBAQCBnbG9idXNfZ2Fzc19jb3B5X3Vy bF90b19oYW5kbGUoCisgICAgIG1vbml0b3IudXNlX2VyciA9IEdMT0JVU19GQUxTRTsKKyAKKyAg ICAgcmVzdWx0ID0gZ2xvYnVzX2dhc3NfY29weV9yZWdpc3Rlcl91cmxfdG9faGFuZGxlKAorLQlo YW5kbGUsCistCXNvdXJjZV91cmwsCistCXNvdXJjZV9hdHRyLAorLQlkZXN0X2hhbmRsZSwKKy0J Z2xvYnVzX2xfZ2Fzc19jb3B5X21vbml0b3JfY2FsbGJhY2ssCistCSh2b2lkICopICZtb25pdG9y KTsKKysgICAgICAgIGhhbmRsZSwKKysgICAgICAgIHNvdXJjZV91cmwsCisrICAgICAgICBzb3Vy Y2VfYXR0ciwKKysgICAgICAgIGRlc3RfaGFuZGxlLAorKyAgICAgICAgZ2xvYnVzX2xfZ2Fzc19j b3B5X21vbml0b3JfY2FsbGJhY2ssCisrICAgICAgICAodm9pZCAqKSAmbW9uaXRvcik7CisgCisg ICAgIGlmKHJlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKKyAgICAgeworLQlnbG9idXNfbXV0ZXhf ZGVzdHJveSgmbW9uaXRvci5tdXRleCk7CistCWdsb2J1c19jb25kX2Rlc3Ryb3koJm1vbml0b3Iu Y29uZCk7CistCWhhbmRsZS0+c3RhdHVzID0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfRE9ORV9G QUlMVVJFOworLQlyZXR1cm4ocmVzdWx0KTsKKysgICAgICAgIGdsb2J1c19tdXRleF9kZXN0cm95 KCZtb25pdG9yLm11dGV4KTsKKysgICAgICAgIGdsb2J1c19jb25kX2Rlc3Ryb3koJm1vbml0b3Iu Y29uZCk7CisrICAgICAgICBoYW5kbGUtPnN0YXR1cyA9IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVT X0RPTkVfRkFJTFVSRTsKKysgICAgICAgIHJldHVybihyZXN1bHQpOworICAgICB9CisgCisgICAg IC8qIHdhaXQgb24gY29uZF93YWl0KCkgZm9yIGNvbXBsZXRpb24gKi8KK0BAIC01MTYyLDcgKzUx NjIsNyBAQCBnbG9idXNfZ2Fzc19jb3B5X3VybF90b19oYW5kbGUoCisgCisgICAgIHdoaWxlKCFt b25pdG9yLmRvbmUpCisgICAgIHsKKy0JZ2xvYnVzX2NvbmRfd2FpdCgmbW9uaXRvci5jb25kLCAm bW9uaXRvci5tdXRleCk7CisrICAgICAgICBnbG9idXNfY29uZF93YWl0KCZtb25pdG9yLmNvbmQs ICZtb25pdG9yLm11dGV4KTsKKyAgICAgfQorIAorICAgICBnbG9idXNfbXV0ZXhfdW5sb2NrKCZt b25pdG9yLm11dGV4KTsKK0BAIC01MTg0LDE0ICs1MTg0LDE0IEBAIGdsb2J1c19nYXNzX2NvcHlf dXJsX3RvX2hhbmRsZSgKKyBlcnJvcl9leGl0OgorIAorICAgICBlcnIgPSBnbG9idXNfZXJyb3Jf Y29uc3RydWN0X3N0cmluZygKKy0JR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCistCUdMT0JVU19O VUxMLAorLQkiWyVzXTogQkFEX1BBUkFNRVRFUiwgYXJndW1lbnQgJWQgY2Fubm90IGJlIE5VTEwi LAorLQlteW5hbWUsCistCWJhZF9wYXJhbSk7CisrICAgICAgICBHTE9CVVNfR0FTU19DT1BZX01P RFVMRSwKKysgICAgICAgIEdMT0JVU19OVUxMLAorKyAgICAgICAgIlslc106IEJBRF9QQVJBTUVU RVIsIGFyZ3VtZW50ICVkIGNhbm5vdCBiZSBOVUxMIiwKKysgICAgICAgIG15bmFtZSwKKysgICAg ICAgIGJhZF9wYXJhbSk7CisgCisgICAgIGlmKGhhbmRsZSkKKy0JaGFuZGxlLT5zdGF0dXMgPSBH TE9CVVNfR0FTU19DT1BZX1NUQVRVU19ET05FX0ZBSUxVUkU7CisrICAgICAgICBoYW5kbGUtPnN0 YXR1cyA9IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0RPTkVfRkFJTFVSRTsKKyAgICAgcmV0dXJu IGdsb2J1c19lcnJvcl9wdXQoZXJyKTsKKyAKKyB9IC8qIGdsb2J1c19nYXNzX2NvcHlfdXJsX3Rv X2hhbmRsZSgpICovCitAQCAtNTI0MSwxOCArNTI0MSwxOCBAQCBnbG9idXNfZ2Fzc19jb3B5X2hh bmRsZV90b191cmwoCisgICAgIC8qIENoZWNrIGFyZ3VtZW50cyBmb3IgdmFsaWRpdHkgKi8KKyAg ICAgaWYoaGFuZGxlID09IEdMT0JVU19OVUxMKQorICAgICB7CistCWJhZF9wYXJhbT0xOworLQln b3RvIGVycm9yX2V4aXQ7CisrICAgICAgICBiYWRfcGFyYW09MTsKKysgICAgICAgIGdvdG8gZXJy b3JfZXhpdDsKKyAgICAgfQorICAgICBpZihzb3VyY2VfaGFuZGxlID09IEdMT0JVU19OVUxMKQor ICAgICB7CistCWJhZF9wYXJhbT0yOworLQlnb3RvIGVycm9yX2V4aXQ7CisrICAgICAgICBiYWRf cGFyYW09MjsKKysgICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKKyAgICAgfQorICAgICBpZihkZXN0 X3VybCA9PSBHTE9CVVNfTlVMTCkKKyAgICAgeworLQliYWRfcGFyYW09MzsKKy0JZ290byBlcnJv cl9leGl0OworKyAgICAgICAgYmFkX3BhcmFtPTM7CisrICAgICAgICBnb3RvIGVycm9yX2V4aXQ7 CisgICAgIH0KKyAKKyAgICAgLyogcmV0dXJuIGFuIGVycm9yIGlmIGEgdHJhbnNmZXIgaXMgYWxy ZWFkeSBpbiBwcm9ncmVzcyAqLworQEAgLTUyNjAsMTAgKzUyNjAsMTAgQEAgZ2xvYnVzX2dhc3Nf Y29weV9oYW5kbGVfdG9fdXJsKAorICAgICAgICBoYW5kbGUtPnN0YXR1cyA8IEdMT0JVU19HQVNT X0NPUFlfU1RBVFVTX0RPTkVfU1VDQ0VTUykKKyAgICAgeworICAgICAgIGVyciA9IGdsb2J1c19l cnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorLQlHTE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKy0JR0xP QlVTX05VTEwsCistCSJbJXNdOiBUaGVyZSBpcyBhIHRyYW5zZmVyIGFscmVhZHkgYWN0aXZlIG9u IHRoaXMgaGFuZGxlIiwKKy0JbXluYW1lKTsKKysgICAgICAgIEdMT0JVU19HQVNTX0NPUFlfTU9E VUxFLAorKyAgICAgICAgR0xPQlVTX05VTEwsCisrICAgICAgICAiWyVzXTogVGhlcmUgaXMgYSB0 cmFuc2ZlciBhbHJlYWR5IGFjdGl2ZSBvbiB0aGlzIGhhbmRsZSIsCisrICAgICAgICBteW5hbWUp OworICAgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7CisgICAgIH0KKyAKK0BAIC01 Mjc0LDI2ICs1Mjc0LDI2IEBAIGdsb2J1c19nYXNzX2NvcHlfaGFuZGxlX3RvX3VybCgKKyAgICAg bW9uaXRvci51c2VfZXJyID0gR0xPQlVTX0ZBTFNFOworIAorICAgICByZXN1bHQgPSBnbG9idXNf Z2Fzc19jb3B5X3JlZ2lzdGVyX2hhbmRsZV90b191cmwoCistCWhhbmRsZSwKKy0Jc291cmNlX2hh bmRsZSwKKy0JZGVzdF91cmwsCistCWRlc3RfYXR0ciwKKy0JZ2xvYnVzX2xfZ2Fzc19jb3B5X21v bml0b3JfY2FsbGJhY2ssCistCSh2b2lkICopICZtb25pdG9yKTsKKysgICAgICAgIGhhbmRsZSwK KysgICAgICAgIHNvdXJjZV9oYW5kbGUsCisrICAgICAgICBkZXN0X3VybCwKKysgICAgICAgIGRl c3RfYXR0ciwKKysgICAgICAgIGdsb2J1c19sX2dhc3NfY29weV9tb25pdG9yX2NhbGxiYWNrLAor KyAgICAgICAgKHZvaWQgKikgJm1vbml0b3IpOworIAorICAgICBpZihyZXN1bHQgIT0gR0xPQlVT X1NVQ0NFU1MpCisgICAgIHsKKy0JZ2xvYnVzX211dGV4X2Rlc3Ryb3koJm1vbml0b3IubXV0ZXgp OworLQlnbG9idXNfY29uZF9kZXN0cm95KCZtb25pdG9yLmNvbmQpOworLQloYW5kbGUtPnN0YXR1 cyA9IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0RPTkVfRkFJTFVSRTsKKy0JcmV0dXJuKHJlc3Vs dCk7CisrICAgICAgICBnbG9idXNfbXV0ZXhfZGVzdHJveSgmbW9uaXRvci5tdXRleCk7CisrICAg ICAgICBnbG9idXNfY29uZF9kZXN0cm95KCZtb25pdG9yLmNvbmQpOworKyAgICAgICAgaGFuZGxl LT5zdGF0dXMgPSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19ET05FX0ZBSUxVUkU7CisrICAgICAg ICByZXR1cm4ocmVzdWx0KTsKKyAgICAgfQorICAgICAvKiB3YWl0IG9uIGNvbmRfd2FpdCgpIGZv ciBjb21wbGV0aW9uICovCisgICAgIGdsb2J1c19tdXRleF9sb2NrKCZtb25pdG9yLm11dGV4KTsK KyAKKyAgICAgd2hpbGUoIW1vbml0b3IuZG9uZSkKKyAgICAgeworLQlnbG9idXNfY29uZF93YWl0 KCZtb25pdG9yLmNvbmQsICZtb25pdG9yLm11dGV4KTsKKysgICAgICAgIGdsb2J1c19jb25kX3dh aXQoJm1vbml0b3IuY29uZCwgJm1vbml0b3IubXV0ZXgpOworICAgICB9CisgCisgICAgIGdsb2J1 c19tdXRleF91bmxvY2soJm1vbml0b3IubXV0ZXgpOworQEAgLTUzMDUsMjQgKzUzMDUsMjQgQEAg Z2xvYnVzX2dhc3NfY29weV9oYW5kbGVfdG9fdXJsKAorIAorICAgICBpZihtb25pdG9yLnVzZV9l cnIpCisgICAgIHsKKy0JcmV0dXJuIGdsb2J1c19lcnJvcl9wdXQobW9uaXRvci5lcnIpOworKyAg ICAgICAgcmV0dXJuIGdsb2J1c19lcnJvcl9wdXQobW9uaXRvci5lcnIpOworICAgICB9CisgICAg IGVsc2UKKyAgICAgeworLQlyZXR1cm4gR0xPQlVTX1NVQ0NFU1M7CisrICAgICAgICByZXR1cm4g R0xPQlVTX1NVQ0NFU1M7CisgICAgIH0KKyAKKyBlcnJvcl9leGl0OgorIAorICAgICBlcnIgPSBn bG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKy0JR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUs CistCUdMT0JVU19OVUxMLAorLQkiWyVzXTogQkFEX1BBUkFNRVRFUiwgYXJndW1lbnQgJWQgY2Fu bm90IGJlIE5VTEwiLAorLQlteW5hbWUsCistCWJhZF9wYXJhbSk7CisrICAgICAgICBHTE9CVVNf R0FTU19DT1BZX01PRFVMRSwKKysgICAgICAgIEdMT0JVU19OVUxMLAorKyAgICAgICAgIlslc106 IEJBRF9QQVJBTUVURVIsIGFyZ3VtZW50ICVkIGNhbm5vdCBiZSBOVUxMIiwKKysgICAgICAgIG15 bmFtZSwKKysgICAgICAgIGJhZF9wYXJhbSk7CisgCisgICAgIGlmKGhhbmRsZSkKKy0JaGFuZGxl LT5zdGF0dXMgPSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19ET05FX0ZBSUxVUkU7CisrICAgICAg ICBoYW5kbGUtPnN0YXR1cyA9IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0RPTkVfRkFJTFVSRTsK KyAKKyAgICAgcmV0dXJuIGdsb2J1c19lcnJvcl9wdXQoZXJyKTsKKyAKK0BAIC01Mzk0LDI5ICs1 Mzk0LDI5IEBAIGdsb2J1c19nYXNzX2NvcHlfcmVnaXN0ZXJfdXJsX3RvX3VybCgKKyAgICAgaWYo aGFuZGxlID09IEdMT0JVU19OVUxMKQorICAgICB7CisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09Q WV9ERUJVRworLQlnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKysgICAgICAgIGdsb2J1c19s aWJjX2ZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICJyZWdpc3Rlcl91cmxfdG9fdXJsKCk6 IGhhbmRsZSB3YXMgR0xPQlVTX05VTExcbiIpOworICNlbmRpZgorLQliYWRfcGFyYW0gPSAxOwor LQlnb3RvIGVycm9yX2V4aXQ7CisrICAgICAgICBiYWRfcGFyYW0gPSAxOworKyAgICAgICAgZ290 byBlcnJvcl9leGl0OworICAgICB9CisgICAgIGlmKHNvdXJjZV91cmwgPT0gR0xPQlVTX05VTEwp CisgICAgIHsKKyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVHCistCWdsb2J1c19saWJj X2ZwcmludGYoc3RkZXJyLAorKyAgICAgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisg ICAgICAgICAgICAgInJlZ2lzdGVyX3VybF90b191cmwoKTogc291cmNlX3VybCAgd2FzIEdMT0JV U19OVUxMXG4iKTsKKyAjZW5kaWYKKy0JYmFkX3BhcmFtID0gMjsKKy0JZ290byBlcnJvcl9leGl0 OworKyAgICAgICAgYmFkX3BhcmFtID0gMjsKKysgICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKKyAg ICAgfQorICAgICBpZihkZXN0X3VybCA9PSBHTE9CVVNfTlVMTCkKKyAgICAgeworICNpZmRlZiBH TE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKy0JZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisr ICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAicmVnaXN0 ZXJfdXJsX3RvX3VybCgpOiBkZXN0X3VybCB3YXMgR0xPQlVTX05VTExcbiIpOworICNlbmRpZgor LQliYWRfcGFyYW0gPSA0OworLQlnb3RvIGVycm9yX2V4aXQ7CisrICAgICAgICBiYWRfcGFyYW0g PSA0OworKyAgICAgICAgZ290byBlcnJvcl9leGl0OworICAgICB9CisgCisgICAgIC8qIHJldHVy biBhbiBlcnJvciBpZiBhIHRyYW5zZmVyIGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3MgKi8KK0BAIC01 NDI0LDQ3ICs1NDI0LDQ3IEBAIGdsb2J1c19nYXNzX2NvcHlfcmVnaXN0ZXJfdXJsX3RvX3VybCgK KyAgICAgICAgaGFuZGxlLT5zdGF0dXMgPCBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19ET05FX1NV Q0NFU1MpCisgICAgIHsKKyAgICAgICBlcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmlu ZygKKy0JR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCistCUdMT0JVU19OVUxMLAorLQkiWyVzXTog VGhlcmUgaXMgYSB0cmFuc2ZlciBhbHJlYWR5IGFjdGl2ZSBvbiB0aGlzIGhhbmRsZSIsCistCW15 bmFtZSk7CisrICAgICAgICBHTE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKysgICAgICAgIEdMT0JV U19OVUxMLAorKyAgICAgICAgIlslc106IFRoZXJlIGlzIGEgdHJhbnNmZXIgYWxyZWFkeSBhY3Rp dmUgb24gdGhpcyBoYW5kbGUiLAorKyAgICAgICAgbXluYW1lKTsKKyAgICAgICByZXR1cm4gZ2xv YnVzX2Vycm9yX3B1dChlcnIpOworICAgICB9CistICAgIAorKworICAgICByZXN1bHQgPSBnbG9i dXNfZ2Fzc19jb3B5X2dldF91cmxfbW9kZSgKKy0Jc291cmNlX3VybCwKKy0JJnNvdXJjZV91cmxf bW9kZSk7CisrICAgICAgICBzb3VyY2VfdXJsLAorKyAgICAgICAgJnNvdXJjZV91cmxfbW9kZSk7 CisgICAgIGlmKHJlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKKyAgICAgeworICNpZmRlZiBHTE9C VVNfSV9HQVNTX0NPUFlfREVCVUcKKy0JZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJyZWdp c3Rlcl91cmxfdG9fdXJsKCk6IGNvcHlfdXJsX21vZGUgcmV0dXJuZWQgISBHTE9CVVNfU1VDQ0VT UyBmb3Igc291cmNlX3VybFxuIik7CisrICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVy ciwgInJlZ2lzdGVyX3VybF90b191cmwoKTogY29weV91cmxfbW9kZSByZXR1cm5lZCAhIEdMT0JV U19TVUNDRVNTIGZvciBzb3VyY2VfdXJsXG4iKTsKKyAjZW5kaWYKKy0JZ290byBlcnJvcl9yZXN1 bHRfZXhpdDsKKysgICAgICAgIGdvdG8gZXJyb3JfcmVzdWx0X2V4aXQ7CisgICAgIH0KKyAKKyAg ICAgcmVzdWx0ID0gZ2xvYnVzX2dhc3NfY29weV9nZXRfdXJsX21vZGUoCistCWRlc3RfdXJsLAor LQkmZGVzdF91cmxfbW9kZSk7CisrICAgICAgICBkZXN0X3VybCwKKysgICAgICAgICZkZXN0X3Vy bF9tb2RlKTsKKyAgICAgaWYocmVzdWx0ICE9IEdMT0JVU19TVUNDRVNTKQorICAgICB7CisgI2lm ZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJVRworLQlnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVy ciwgInJlZ2lzdGVyX3VybF90b191cmwoKTogY29weV91cmxfbW9kZSByZXR1cm5lZCAhIEdMT0JV U19TVUNDRVNTIGZvciBkZXN0X3VybFxuIik7CisrICAgICAgICBnbG9idXNfbGliY19mcHJpbnRm KHN0ZGVyciwgInJlZ2lzdGVyX3VybF90b191cmwoKTogY29weV91cmxfbW9kZSByZXR1cm5lZCAh IEdMT0JVU19TVUNDRVNTIGZvciBkZXN0X3VybFxuIik7CisgI2VuZGlmCistCWdvdG8gZXJyb3Jf cmVzdWx0X2V4aXQ7CisrICAgICAgICBnb3RvIGVycm9yX3Jlc3VsdF9leGl0OworICAgICB9Cisg CisgICAgIGlmICggICAoc291cmNlX3VybF9tb2RlID09IEdMT0JVU19HQVNTX0NPUFlfVVJMX01P REVfVU5TVVBQT1JURUQpCistCSAgIHx8IChkZXN0X3VybF9tb2RlID09IEdMT0JVU19HQVNTX0NP UFlfVVJMX01PREVfVU5TVVBQT1JURUQpICkKKysgICAgICAgICAgIHx8IChkZXN0X3VybF9tb2Rl ID09IEdMT0JVU19HQVNTX0NPUFlfVVJMX01PREVfVU5TVVBQT1JURUQpICkKKyAgICAgeworLQlj aGFyIHNyY19tc2dbMjU2XTsKKy0JY2hhciBkZXN0X21zZ1syNTZdOworKyAgICAgICAgY2hhciBz cmNfbXNnWzI1Nl07CisrICAgICAgICBjaGFyIGRlc3RfbXNnWzI1Nl07CisgI2lmZGVmIEdMT0JV U19JX0dBU1NfQ09QWV9ERUJVRworLQlnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKysgICAg ICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICJyZWdpc3Rlcl91 cmxfdG9fdXJsKCk6IHNvdXJjZSBvciBkZXN0IGlzIFVSTF9NT0RFX1VOU1VQUE9SVEVEXG4iKTsK KyAjZW5kaWYKKy0JaWYoc291cmNlX3VybF9tb2RlID09IEdMT0JVU19HQVNTX0NPUFlfVVJMX01P REVfVU5TVVBQT1JURUQpCistCXsKKy0JICAgIHNwcmludGYoc3JjX21zZywgIiAgJXMsICBHTE9C VVNfR0FTU19DT1BZX1VSTF9NT0RFX1VOU1VQUE9SVEVELiIsCisrICAgICAgICBpZihzb3VyY2Vf dXJsX21vZGUgPT0gR0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9VTlNVUFBPUlRFRCkKKysgICAg ICAgIHsKKysgICAgICAgICAgICBzcHJpbnRmKHNyY19tc2csICIgICVzLCAgR0xPQlVTX0dBU1Nf Q09QWV9VUkxfTU9ERV9VTlNVUFBPUlRFRC4iLAorICAgICAgICAgICAgICAgICBzb3VyY2VfdXJs KTsKKyAgICAgICAgIH0KKyAgICAgICAgIGVsc2UKK0BAIC01NDcyLDkgKzU0NzIsOSBAQCBnbG9i dXNfZ2Fzc19jb3B5X3JlZ2lzdGVyX3VybF90b191cmwoCisgICAgICAgICAgICAgKnNyY19tc2cg PSAnXDAnOworICAgICAgICAgfQorIAorLQlpZihkZXN0X3VybF9tb2RlID09IEdMT0JVU19HQVNT X0NPUFlfVVJMX01PREVfVU5TVVBQT1JURUQpCistCXsKKy0JICAgIHNwcmludGYoZGVzdF9tc2cs ICIgICVzLCAgR0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9VTlNVUFBPUlRFRC4iLAorKyAgICAg ICAgaWYoZGVzdF91cmxfbW9kZSA9PSBHTE9CVVNfR0FTU19DT1BZX1VSTF9NT0RFX1VOU1VQUE9S VEVEKQorKyAgICAgICAgeworKyAgICAgICAgICAgIHNwcmludGYoZGVzdF9tc2csICIgICVzLCAg R0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9VTlNVUFBPUlRFRC4iLAorICAgICAgICAgICAgICAg ICBkZXN0X3VybCk7CisgICAgICAgICB9CisgICAgICAgICBlbHNlCitAQCAtNTQ4MiwxNiArNTQ4 MiwxNiBAQCBnbG9idXNfZ2Fzc19jb3B5X3JlZ2lzdGVyX3VybF90b191cmwoCisgICAgICAgICAg ICAgKmRlc3RfbXNnID0gJ1wwJzsKKyAgICAgICAgIH0KKyAKKy0JaGFuZGxlLT5zdGF0dXMgPSBH TE9CVVNfR0FTU19DT1BZX1NUQVRVU19ET05FX0ZBSUxVUkU7CistCWVyciA9IGdsb2J1c19lcnJv cl9jb25zdHJ1Y3Rfc3RyaW5nKAorLQkgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCistCSAg ICBHTE9CVVNfTlVMTCwKKy0JICAgICJbJXNdOiAlcyVzIiwKKy0JICAgIG15bmFtZSwKKy0JICAg IHNyY19tc2csCistCSAgICBkZXN0X21zZyk7CisrICAgICAgICBoYW5kbGUtPnN0YXR1cyA9IEdM T0JVU19HQVNTX0NPUFlfU1RBVFVTX0RPTkVfRkFJTFVSRTsKKysgICAgICAgIGVyciA9IGdsb2J1 c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorKyAgICAgICAgICAgIEdMT0JVU19HQVNTX0NPUFlf TU9EVUxFLAorKyAgICAgICAgICAgIEdMT0JVU19OVUxMLAorKyAgICAgICAgICAgICJbJXNdOiAl cyVzIiwKKysgICAgICAgICAgICBteW5hbWUsCisrICAgICAgICAgICAgc3JjX21zZywKKysgICAg ICAgICAgICBkZXN0X21zZyk7CisgCistCXJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7Cisr ICAgICAgICByZXR1cm4gZ2xvYnVzX2Vycm9yX3B1dChlcnIpOworICAgICB9CisgCisgICAgIC8q IHJlaW5pdGlhbGl6ZSB0aGUgc3RhdGUgZm9yIHRoaXMgdHJhbnNmZXIgKi8KK0BAIC01NTA1LDIy ICs1NTA1LDIyIEBAIGdsb2J1c19nYXNzX2NvcHlfcmVnaXN0ZXJfdXJsX3RvX3VybCgKKyAgICAg aGFuZGxlLT5jYWxsYmFja19hcmcgPSBjYWxsYmFja19hcmc7CisgCisgICAgIHJlc3VsdCA9IGds b2J1c19sX2dhc3NfY29weV90YXJnZXRfcG9wdWxhdGUoCistCWhhbmRsZSwKKy0JJihzdGF0ZS0+ c291cmNlKSwKKy0JJnNvdXJjZV91cmxfbW9kZSwKKy0Jc291cmNlX3VybCwKKy0Jc291cmNlX2F0 dHIpOworKyAgICAgICAgaGFuZGxlLAorKyAgICAgICAgJihzdGF0ZS0+c291cmNlKSwKKysgICAg ICAgICZzb3VyY2VfdXJsX21vZGUsCisrICAgICAgICBzb3VyY2VfdXJsLAorKyAgICAgICAgc291 cmNlX2F0dHIpOworIAorICAgICBpZihyZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MpIGdvdG8gZXJy b3JfcmVzdWx0X2V4aXQ7CisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJVRworICAgICBn bG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwgInNvdXJjZSB0YXJnZXQgcG9wdWxhdGVkXG4iKTsK KyAjZW5kaWYKKyAgICAgcmVzdWx0ID0gZ2xvYnVzX2xfZ2Fzc19jb3B5X3RhcmdldF9wb3B1bGF0 ZSgKKy0JaGFuZGxlLAorLQkmKHN0YXRlLT5kZXN0KSwKKy0JJmRlc3RfdXJsX21vZGUsCistCWRl c3RfdXJsLAorLQlkZXN0X2F0dHIpOworKyAgICAgICAgaGFuZGxlLAorKyAgICAgICAgJihzdGF0 ZS0+ZGVzdCksCisrICAgICAgICAmZGVzdF91cmxfbW9kZSwKKysgICAgICAgIGRlc3RfdXJsLAor KyAgICAgICAgZGVzdF9hdHRyKTsKKyAKKyAgICAgaWYocmVzdWx0ICE9IEdMT0JVU19TVUNDRVNT KSBnb3RvIGVycm9yX3Jlc3VsdF9leGl0OworICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVC VUcKK0BAIC01NTMwLDggKzU1MzAsOCBAQCBnbG9idXNfZ2Fzc19jb3B5X3JlZ2lzdGVyX3VybF90 b191cmwoCisgICAgIGlmKGRlc3RfdXJsX21vZGUgPT0gR0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9E RV9GVFAgJiYgaGFuZGxlLT5zZW5kX2FsbG8pCisgICAgIHsKKyAgICAgICAgIGdsb2J1c19vZmZf dCAgICAgICAgICAgICAgICAgICAgc291cmNlX3NpemUgPSAwOworLSAgICAgICAKKy0gICAgICAg IAorKworKworICAgICAgICAgaWYoaGFuZGxlLT5wYXJ0aWFsX2VuZF9vZmZzZXQgIT0gLTEpCisg ICAgICAgICB7CisgICAgICAgICAgICAgc291cmNlX3NpemUgPSBoYW5kbGUtPnBhcnRpYWxfZW5k X29mZnNldDsKK0BAIC01NTU1LDExICs1NTU1LDExIEBAIGdsb2J1c19nYXNzX2NvcHlfcmVnaXN0 ZXJfdXJsX3RvX3VybCgKKyAgICAgICAgICAgICAgICAgc3RhdGUtPmRlc3QuYXR0ci0+ZnRwX2F0 dHIsCisgICAgICAgICAgICAgICAgIHNvdXJjZV9zaXplKTsKKyAgICAgICAgIH0KKy0gICAgfSAg ICAKKy0gICAgCisrICAgIH0KKysKKyAgICAgaWYgKCAgIChzb3VyY2VfdXJsX21vZGUgPT0gR0xP QlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9GVFApICYmCistCSAgIChkZXN0X3VybF9tb2RlID09IEdM T0JVU19HQVNTX0NPUFlfVVJMX01PREVfRlRQKSAmJgorLQkgICAhaGFuZGxlLT5ub190aGlyZF9w YXJ0eV90cmFuc2ZlcnMgKQorKyAgICAgICAgICAgKGRlc3RfdXJsX21vZGUgPT0gR0xPQlVTX0dB U1NfQ09QWV9VUkxfTU9ERV9GVFApICYmCisrICAgICAgICAgICAhaGFuZGxlLT5ub190aGlyZF9w YXJ0eV90cmFuc2ZlcnMgKQorICAgICB7CisgCisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9E RUJVRworQEAgLTU1ODUsMTYgKzU1ODUsMTYgQEAgZ2xvYnVzX2dhc3NfY29weV9yZWdpc3Rlcl91 cmxfdG9fdXJsKAorICAgICAgICAgICAgICAgICAgICAgbW9kZSAhPSBHTE9CVVNfRlRQX0NPTlRS T0xfTU9ERV9FWFRFTkRFRF9CTE9DSykKKyAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgICAgICAgbmV3X2Z0cF9hdHRyID0gKGdsb2J1c19mdHBfY2xpZW50X29wZXJhdGlvbmF0dHJf dCAqKQorLQkJICAgICAgICBnbG9idXNfbGliY19tYWxsb2Moc2l6ZW9mKGdsb2J1c19mdHBfY2xp ZW50X29wZXJhdGlvbmF0dHJfdCkpOworKyAgICAgICAgICAgICAgICAgICAgICAgIGdsb2J1c19s aWJjX21hbGxvYyhzaXplb2YoZ2xvYnVzX2Z0cF9jbGllbnRfb3BlcmF0aW9uYXR0cl90KSk7Cisg CistCQkgICAgZ2xvYnVzX2Z0cF9jbGllbnRfb3BlcmF0aW9uYXR0cl9jb3B5KG5ld19mdHBfYXR0 ciwKKy0JCSAgICAgICAgc3RhdGUtPmRlc3QuYXR0ci0+ZnRwX2F0dHIpOworKyAgICAgICAgICAg ICAgICAgICAgZ2xvYnVzX2Z0cF9jbGllbnRfb3BlcmF0aW9uYXR0cl9jb3B5KG5ld19mdHBfYXR0 ciwKKysgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+ZGVzdC5hdHRyLT5mdHBfYXR0cik7 CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgZWxzZQor ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgbmV3X2Z0cF9hdHRyID0gKGdsb2J1c19m dHBfY2xpZW50X29wZXJhdGlvbmF0dHJfdCAqKQorLQkJICAgICAgICBnbG9idXNfbGliY19tYWxs b2Moc2l6ZW9mKGdsb2J1c19mdHBfY2xpZW50X29wZXJhdGlvbmF0dHJfdCkpOworKyAgICAgICAg ICAgICAgICAgICAgICAgIGdsb2J1c19saWJjX21hbGxvYyhzaXplb2YoZ2xvYnVzX2Z0cF9jbGll bnRfb3BlcmF0aW9uYXR0cl90KSk7CisgICAgICAgICAgICAgICAgIGdsb2J1c19mdHBfY2xpZW50 X29wZXJhdGlvbmF0dHJfaW5pdChuZXdfZnRwX2F0dHIpOworICAgICAgICAgICAgIH0KKyAKK0BA IC01NjIyLDE2ICs1NjIyLDE2IEBAIGdsb2J1c19nYXNzX2NvcHlfcmVnaXN0ZXJfdXJsX3RvX3Vy bCgKKyAgICAgICAgICAgICAgICAgICAgIG1vZGUgIT0gR0xPQlVTX0ZUUF9DT05UUk9MX01PREVf RVhURU5ERURfQkxPQ0spCisgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg IG5ld19mdHBfYXR0ciA9IChnbG9idXNfZnRwX2NsaWVudF9vcGVyYXRpb25hdHRyX3QgKikKKy0J CSAgICAgICAgZ2xvYnVzX2xpYmNfbWFsbG9jKHNpemVvZihnbG9idXNfZnRwX2NsaWVudF9vcGVy YXRpb25hdHRyX3QpKTsKKysgICAgICAgICAgICAgICAgICAgICAgICBnbG9idXNfbGliY19tYWxs b2Moc2l6ZW9mKGdsb2J1c19mdHBfY2xpZW50X29wZXJhdGlvbmF0dHJfdCkpOworIAorLQkJICAg IGdsb2J1c19mdHBfY2xpZW50X29wZXJhdGlvbmF0dHJfY29weShuZXdfZnRwX2F0dHIsCistCQkg ICAgICAgIHN0YXRlLT5zb3VyY2UuYXR0ci0+ZnRwX2F0dHIpOworKyAgICAgICAgICAgICAgICAg ICAgZ2xvYnVzX2Z0cF9jbGllbnRfb3BlcmF0aW9uYXR0cl9jb3B5KG5ld19mdHBfYXR0ciwKKysg ICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+c291cmNlLmF0dHItPmZ0cF9hdHRyKTsKKyAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBlbHNlCisgICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgICBuZXdfZnRwX2F0dHIgPSAoZ2xvYnVzX2Z0cF9j bGllbnRfb3BlcmF0aW9uYXR0cl90ICopCistCQkgICAgICAgIGdsb2J1c19saWJjX21hbGxvYyhz aXplb2YoZ2xvYnVzX2Z0cF9jbGllbnRfb3BlcmF0aW9uYXR0cl90KSk7CisrICAgICAgICAgICAg ICAgICAgICAgICAgZ2xvYnVzX2xpYmNfbWFsbG9jKHNpemVvZihnbG9idXNfZnRwX2NsaWVudF9v cGVyYXRpb25hdHRyX3QpKTsKKyAgICAgICAgICAgICAgICAgZ2xvYnVzX2Z0cF9jbGllbnRfb3Bl cmF0aW9uYXR0cl9pbml0KG5ld19mdHBfYXR0cik7CisgICAgICAgICAgICAgfQorIAorQEAgLTU2 NjMsNyArNTY2Myw3IEBAIGdsb2J1c19nYXNzX2NvcHlfcmVnaXN0ZXJfdXJsX3RvX3VybCgKKyAg ICAgICAgICAgICAgICAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2Z0cF90cmFuc2Zlcl9jYWxsYmFjaywK KyAgICAgICAgICAgICAgICAgKHZvaWQgKikgaGFuZGxlKTsKKyAgICAgICAgIH0KKy0gICAgICAg IGVsc2UgCisrICAgICAgICBlbHNlCisgICAgICAgICB7CisgICAgICAgICAgICAgcmVzdWx0ID0g Z2xvYnVzX2Z0cF9jbGllbnRfcGFydGlhbF90aGlyZF9wYXJ0eV90cmFuc2ZlcigKKyAgICAgICAg ICAgICAgICAgJmhhbmRsZS0+ZnRwX2hhbmRsZSwKK0BAIC01Njc3LDU0ICs1Njc3LDU0IEBAIGds b2J1c19nYXNzX2NvcHlfcmVnaXN0ZXJfdXJsX3RvX3VybCgKKyAgICAgICAgICAgICAgICAgZ2xv YnVzX2xfZ2Fzc19jb3B5X2Z0cF90cmFuc2Zlcl9jYWxsYmFjaywKKyAgICAgICAgICAgICAgICAg KHZvaWQgKikgaGFuZGxlKTsKKyAgICAgICAgIH0KKy0gICAgICAgIAorLQlpZiAocmVzdWx0ICE9 IEdMT0JVU19TVUNDRVNTKQorLQl7CistCSAgICAvKiBkbyBzb21lIGVycm9yIGhhbmRsaW5nICov CisrCisrICAgICAgICBpZiAocmVzdWx0ICE9IEdMT0JVU19TVUNDRVNTKQorKyAgICAgICAgewor KyAgICAgICAgICAgIC8qIGRvIHNvbWUgZXJyb3IgaGFuZGxpbmcgKi8KKyAjaWZkZWYgR0xPQlVT X0lfR0FTU19DT1BZX0RFQlVHCistCSAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKysg ICAgICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICJ0 aGlyZF9wYXJ0eV90cmFuc2ZlcigpIHdhcyBub3QgR0xPQlVTX1NVQ0NFU1MhIGl0IHJldHVybmVk ICVkXG4iLAorICAgICAgICAgICAgICAgcmVzdWx0KTsKKyAjZW5kaWYKKy0JICAgIGdvdG8gZXJy b3JfcmVzdWx0X2V4aXQ7CistCX0KKy0JZWxzZQorLQl7CistCSAgICBoYW5kbGUtPnN0YXR1cyA9 IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX1RSQU5TRkVSX0lOX1BST0dSRVNTOworKyAgICAgICAg ICAgIGdvdG8gZXJyb3JfcmVzdWx0X2V4aXQ7CisrICAgICAgICB9CisrICAgICAgICBlbHNlCisr ICAgICAgICB7CisrICAgICAgICAgICAgaGFuZGxlLT5zdGF0dXMgPSBHTE9CVVNfR0FTU19DT1BZ X1NUQVRVU19UUkFOU0ZFUl9JTl9QUk9HUkVTUzsKKyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZ X0RFQlVHCistCSAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKysgICAgICAgICAgICBn bG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICAgInRoaXJkX3BhcnR5 X3RyYW5zZmVyKCkgcmV0dXJuZWQgR0xPQlVTX1NVQ0NFU1NcbiIpOworICNlbmRpZgorLQl9Cisr ICAgICAgICB9CisgICAgIH0KKyAgICAgZWxzZQorICAgICB7CisgICAgICAgICAvKiBBdCBsZWFz dCBvbmUgb2YgdGhlIHVybHMgaXMgbm90IGZ0cCwgKG9yIHRoaXJkcGFydHkgdHJhbnNmZXJzCisg ICAgICAgICAgKiBoYXZlIGJlZW4gdHVybmVkIG9mZikgc28gd2UgaGF2ZSB0byBkbyB0aGUgY29w eSBvdXJzZWx2ZXMuCisgICAgICAgICAgKi8KKy0JcmVzdWx0ID0gZ2xvYnVzX2xfZ2Fzc19jb3B5 X3RyYW5zZmVyX3N0YXJ0KGhhbmRsZSk7CistCWlmIChyZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1Mp CistCXsKKy0JICAgIC8qIGZyZWUgdGhlIHN0YXRlICovCistCSAgICBpZihoYW5kbGUtPnN0YXRl LT5hY3RpdmUpCistCSAgICB7CistCQlnbG9idXNfbF9nYXNzX2NvcHlfc3RhdGVfZnJlZV90YXJn ZXRzKGhhbmRsZS0+c3RhdGUpOworLQkgICAgfQorLQkgICAgZ290byBlcnJvcl9yZXN1bHRfZXhp dDsKKy0JfQorKyAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2xfZ2Fzc19jb3B5X3RyYW5zZmVyX3N0 YXJ0KGhhbmRsZSk7CisrICAgICAgICBpZiAocmVzdWx0ICE9IEdMT0JVU19TVUNDRVNTKQorKyAg ICAgICAgeworKyAgICAgICAgICAgIC8qIGZyZWUgdGhlIHN0YXRlICovCisrICAgICAgICAgICAg aWYoaGFuZGxlLT5zdGF0ZS0+YWN0aXZlKQorKyAgICAgICAgICAgIHsKKysgICAgICAgICAgICAg ICAgZ2xvYnVzX2xfZ2Fzc19jb3B5X3N0YXRlX2ZyZWVfdGFyZ2V0cyhoYW5kbGUtPnN0YXRlKTsK KysgICAgICAgICAgICB9CisrICAgICAgICAgICAgZ290byBlcnJvcl9yZXN1bHRfZXhpdDsKKysg ICAgICAgIH0KKyAgICAgfQorIAorICAgICByZXR1cm4gR0xPQlVTX1NVQ0NFU1M7CisgCisgZXJy b3JfZXhpdDoKKyAgICAgaWYoaGFuZGxlKQorLQloYW5kbGUtPnN0YXR1cyA9IEdMT0JVU19HQVNT X0NPUFlfU1RBVFVTX0RPTkVfRkFJTFVSRTsKKysgICAgICAgIGhhbmRsZS0+c3RhdHVzID0gR0xP QlVTX0dBU1NfQ09QWV9TVEFUVVNfRE9ORV9GQUlMVVJFOworICAgICBlcnIgPSBnbG9idXNfZXJy b3JfY29uc3RydWN0X3N0cmluZygKKy0JR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCistCUdMT0JV U19OVUxMLAorLQkiWyVzXTogQkFEX1BBUkFNRVRFUiwgYXJndW1lbnQgJWQgY2Fubm90IGJlIE5V TEwiLAorLQlteW5hbWUsCistCWJhZF9wYXJhbSk7CisrICAgICAgICBHTE9CVVNfR0FTU19DT1BZ X01PRFVMRSwKKysgICAgICAgIEdMT0JVU19OVUxMLAorKyAgICAgICAgIlslc106IEJBRF9QQVJB TUVURVIsIGFyZ3VtZW50ICVkIGNhbm5vdCBiZSBOVUxMIiwKKysgICAgICAgIG15bmFtZSwKKysg ICAgICAgIGJhZF9wYXJhbSk7CisgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7Cisg CisgZXJyb3JfcmVzdWx0X2V4aXQ6CitAQCAtNTc5MCwxOCArNTc5MCwxOCBAQCBnbG9idXNfZ2Fz c19jb3B5X3JlZ2lzdGVyX3VybF90b19oYW5kbGUoCisgICAgIC8qIENoZWNrIGFyZ3VtZW50cyBm b3IgdmFsaWRpdHkgKi8KKyAgICAgaWYoaGFuZGxlID09IEdMT0JVU19OVUxMKQorICAgICB7Cist CWJhZF9wYXJhbT0xOworLQlnb3RvIGVycm9yX2V4aXQ7CisrICAgICAgICBiYWRfcGFyYW09MTsK KysgICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKKyAgICAgfQorICAgICBpZihzb3VyY2VfdXJsID09 IEdMT0JVU19OVUxMKQorICAgICB7CistCWJhZF9wYXJhbT0yOworLQlnb3RvIGVycm9yX2V4aXQ7 CisrICAgICAgICBiYWRfcGFyYW09MjsKKysgICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKKyAgICAg fQorICAgICBpZihkZXN0X2hhbmRsZSA9PSBHTE9CVVNfTlVMTCkKKyAgICAgeworLQliYWRfcGFy YW09NDsKKy0JZ290byBlcnJvcl9leGl0OworKyAgICAgICAgYmFkX3BhcmFtPTQ7CisrICAgICAg ICBnb3RvIGVycm9yX2V4aXQ7CisgICAgIH0KKyAKKyAgICAgLyogcmV0dXJuIGFuIGVycm9yIGlm IGEgdHJhbnNmZXIgaXMgYWxyZWFkeSBpbiBwcm9ncmVzcyAqLworQEAgLTU4MDksMzIgKzU4MDks MzIgQEAgZ2xvYnVzX2dhc3NfY29weV9yZWdpc3Rlcl91cmxfdG9faGFuZGxlKAorICAgICAgICBo YW5kbGUtPnN0YXR1cyA8IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0RPTkVfU1VDQ0VTUykKKyAg ICAgeworICAgICAgIGVyciA9IGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorLQlHTE9C VVNfR0FTU19DT1BZX01PRFVMRSwKKy0JR0xPQlVTX05VTEwsCistCSJbJXNdOiBUaGVyZSBpcyBh IHRyYW5zZmVyIGFscmVhZHkgYWN0aXZlIG9uIHRoaXMgaGFuZGxlIiwKKy0JbXluYW1lKTsKKysg ICAgICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorKyAgICAgICAgR0xPQlVTX05VTEwsCisr ICAgICAgICAiWyVzXTogVGhlcmUgaXMgYSB0cmFuc2ZlciBhbHJlYWR5IGFjdGl2ZSBvbiB0aGlz IGhhbmRsZSIsCisrICAgICAgICBteW5hbWUpOworICAgICAgIHJldHVybiBnbG9idXNfZXJyb3Jf cHV0KGVycik7CisgICAgIH0KKyAKKyAgICAgcmVzdWx0ID0gZ2xvYnVzX2dhc3NfY29weV9nZXRf dXJsX21vZGUoCistCXNvdXJjZV91cmwsCistCSZzb3VyY2VfdXJsX21vZGUpOworKyAgICAgICAg c291cmNlX3VybCwKKysgICAgICAgICZzb3VyY2VfdXJsX21vZGUpOworIAorICAgICBpZihyZXN1 bHQgIT0gR0xPQlVTX1NVQ0NFU1MpIGdvdG8gZXJyb3JfcmVzdWx0X2V4aXQ7CisgCisgICAgIGlm ICggc291cmNlX3VybF9tb2RlID09IEdMT0JVU19HQVNTX0NPUFlfVVJMX01PREVfVU5TVVBQT1JU RUQpCisgICAgIHsKKy0JaGFuZGxlLT5zdGF0dXMgPSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19G QUlMVVJFOworLQllcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKy0JICAgIEdM T0JVU19HQVNTX0NPUFlfTU9EVUxFLAorLQkgICAgR0xPQlVTX05VTEwsCistCSAgICAiWyVzXTog JXMsICBHTE9CVVNfR0FTU19DT1BZX1VSTF9NT0RFX1VOU1VQUE9SVEVEIiwKKy0JICAgIG15bmFt ZSwKKy0JICAgIHNvdXJjZV91cmwpOworKyAgICAgICAgaGFuZGxlLT5zdGF0dXMgPSBHTE9CVVNf R0FTU19DT1BZX1NUQVRVU19GQUlMVVJFOworKyAgICAgICAgZXJyID0gZ2xvYnVzX2Vycm9yX2Nv bnN0cnVjdF9zdHJpbmcoCisrICAgICAgICAgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCisr ICAgICAgICAgICAgR0xPQlVTX05VTEwsCisrICAgICAgICAgICAgIlslc106ICVzLCAgR0xPQlVT X0dBU1NfQ09QWV9VUkxfTU9ERV9VTlNVUFBPUlRFRCIsCisrICAgICAgICAgICAgbXluYW1lLAor KyAgICAgICAgICAgIHNvdXJjZV91cmwpOworIAorLQloYW5kbGUtPnN0YXR1cyA9IEdMT0JVU19H QVNTX0NPUFlfU1RBVFVTX0RPTkVfRkFJTFVSRTsKKysgICAgICAgIGhhbmRsZS0+c3RhdHVzID0g R0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfRE9ORV9GQUlMVVJFOworIAorLQlyZXR1cm4gZ2xvYnVz X2Vycm9yX3B1dChlcnIpOworKyAgICAgICAgcmV0dXJuIGdsb2J1c19lcnJvcl9wdXQoZXJyKTsK KyAgICAgfQorIAorICAgICAvKiByZWluaXRpYWxpemUgdGhlIHN0YXRlIGZvciB0aGlzIHRyYW5z ZmVyICovCitAQCAtNTg0OCwxOSArNTg0OCwxOSBAQCBnbG9idXNfZ2Fzc19jb3B5X3JlZ2lzdGVy X3VybF90b19oYW5kbGUoCisgICAgIGhhbmRsZS0+Y2FsbGJhY2tfYXJnID0gY2FsbGJhY2tfYXJn OworIAorICAgICByZXN1bHQgPSBnbG9idXNfbF9nYXNzX2NvcHlfdGFyZ2V0X3BvcHVsYXRlKAor LQloYW5kbGUsCistCSYoc3RhdGUtPnNvdXJjZSksCistCSZzb3VyY2VfdXJsX21vZGUsCistCXNv dXJjZV91cmwsCistCXNvdXJjZV9hdHRyKTsKKysgICAgICAgIGhhbmRsZSwKKysgICAgICAgICYo c3RhdGUtPnNvdXJjZSksCisrICAgICAgICAmc291cmNlX3VybF9tb2RlLAorKyAgICAgICAgc291 cmNlX3VybCwKKysgICAgICAgIHNvdXJjZV9hdHRyKTsKKyAgICAgaWYocmVzdWx0ICE9IEdMT0JV U19TVUNDRVNTKSBnb3RvIGVycm9yX3Jlc3VsdF9leGl0OworICNpZmRlZiBHTE9CVVNfSV9HQVNT X0NPUFlfREVCVUcKKyAgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJzb3VyY2UgdGFy Z2V0IHBvcHVsYXRlZFxuIik7CisgI2VuZGlmCisgICAgIHJlc3VsdCA9IGdsb2J1c19sX2dhc3Nf Y29weV9pb190YXJnZXRfcG9wdWxhdGUoCistCWhhbmRsZSwKKy0JJihzdGF0ZS0+ZGVzdCksCist CWRlc3RfaGFuZGxlKTsKKysgICAgICAgIGhhbmRsZSwKKysgICAgICAgICYoc3RhdGUtPmRlc3Qp LAorKyAgICAgICAgZGVzdF9oYW5kbGUpOworICAgICBpZihyZXN1bHQgIT0gR0xPQlVTX1NVQ0NF U1MpIGdvdG8gZXJyb3JfcmVzdWx0X2V4aXQ7CisgCisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09Q WV9ERUJVRworQEAgLTU4NzAsMjAgKzU4NzAsMjAgQEAgZ2xvYnVzX2dhc3NfY29weV9yZWdpc3Rl cl91cmxfdG9faGFuZGxlKAorICAgICByZXN1bHQgPSBnbG9idXNfbF9nYXNzX2NvcHlfdHJhbnNm ZXJfc3RhcnQoaGFuZGxlKTsKKyAgICAgaWYgKHJlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKKyAg ICAgeworLQlnb3RvIGVycm9yX3Jlc3VsdF9leGl0OworKyAgICAgICAgZ290byBlcnJvcl9yZXN1 bHRfZXhpdDsKKyAgICAgfQorIAorICAgICByZXR1cm4gR0xPQlVTX1NVQ0NFU1M7CisgCisgZXJy b3JfZXhpdDoKKyAgICAgaWYoaGFuZGxlKQorLQloYW5kbGUtPnN0YXR1cyA9IEdMT0JVU19HQVNT X0NPUFlfU1RBVFVTX0RPTkVfRkFJTFVSRTsKKysgICAgICAgIGhhbmRsZS0+c3RhdHVzID0gR0xP QlVTX0dBU1NfQ09QWV9TVEFUVVNfRE9ORV9GQUlMVVJFOworICAgICBlcnIgPSBnbG9idXNfZXJy b3JfY29uc3RydWN0X3N0cmluZygKKy0JR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCistCUdMT0JV U19OVUxMLAorLQkiWyVzXTogQkFEX1BBUkFNRVRFUiwgYXJndW1lbnQgJWQgY2Fubm90IGJlIE5V TEwiLAorLQlteW5hbWUsCistCWJhZF9wYXJhbSk7CisrICAgICAgICBHTE9CVVNfR0FTU19DT1BZ X01PRFVMRSwKKysgICAgICAgIEdMT0JVU19OVUxMLAorKyAgICAgICAgIlslc106IEJBRF9QQVJB TUVURVIsIGFyZ3VtZW50ICVkIGNhbm5vdCBiZSBOVUxMIiwKKysgICAgICAgIG15bmFtZSwKKysg ICAgICAgIGJhZF9wYXJhbSk7CisgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7Cisg CisgZXJyb3JfcmVzdWx0X2V4aXQ6CitAQCAtNTk1MCwxOCArNTk1MCwxOCBAQCBnbG9idXNfZ2Fz c19jb3B5X3JlZ2lzdGVyX2hhbmRsZV90b191cmwoCisgICAgIC8qIENoZWNrIGFyZ3VtZW50cyBm b3IgdmFsaWRpdHkgKi8KKyAgICAgaWYoaGFuZGxlID09IEdMT0JVU19OVUxMKQorICAgICB7Cist CWJhZF9wYXJhbT0xOworLQlnb3RvIGVycm9yX2V4aXQ7CisrICAgICAgICBiYWRfcGFyYW09MTsK KysgICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKKyAgICAgfQorICAgICBpZihzb3VyY2VfaGFuZGxl ID09IEdMT0JVU19OVUxMKQorICAgICB7CistCWJhZF9wYXJhbT0yOworLQlnb3RvIGVycm9yX2V4 aXQ7CisrICAgICAgICBiYWRfcGFyYW09MjsKKysgICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKKyAg ICAgfQorICAgICBpZihkZXN0X3VybCA9PSBHTE9CVVNfTlVMTCkKKyAgICAgeworLQliYWRfcGFy YW09MzsKKy0JZ290byBlcnJvcl9leGl0OworKyAgICAgICAgYmFkX3BhcmFtPTM7CisrICAgICAg ICBnb3RvIGVycm9yX2V4aXQ7CisgICAgIH0KKyAKKyAgICAgLyogcmV0dXJuIGFuIGVycm9yIGlm IGEgdHJhbnNmZXIgaXMgYWxyZWFkeSBpbiBwcm9ncmVzcyAqLworQEAgLTU5NjksMzAgKzU5Njks MzAgQEAgZ2xvYnVzX2dhc3NfY29weV9yZWdpc3Rlcl9oYW5kbGVfdG9fdXJsKAorICAgICAgICBo YW5kbGUtPnN0YXR1cyA8IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0RPTkVfU1VDQ0VTUykKKyAg ICAgeworICAgICAgIGVyciA9IGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorLQlHTE9C VVNfR0FTU19DT1BZX01PRFVMRSwKKy0JR0xPQlVTX05VTEwsCistCSJbJXNdOiBUaGVyZSBpcyBh IHRyYW5zZmVyIGFscmVhZHkgYWN0aXZlIG9uIHRoaXMgaGFuZGxlIiwKKy0JbXluYW1lKTsKKysg ICAgICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorKyAgICAgICAgR0xPQlVTX05VTEwsCisr ICAgICAgICAiWyVzXTogVGhlcmUgaXMgYSB0cmFuc2ZlciBhbHJlYWR5IGFjdGl2ZSBvbiB0aGlz IGhhbmRsZSIsCisrICAgICAgICBteW5hbWUpOworICAgICAgIHJldHVybiBnbG9idXNfZXJyb3Jf cHV0KGVycik7CisgICAgIH0KKyAKKyAgICAgcmVzdWx0ID0gZ2xvYnVzX2dhc3NfY29weV9nZXRf dXJsX21vZGUoCistCWRlc3RfdXJsLAorLQkmZGVzdF91cmxfbW9kZSk7CisrICAgICAgICBkZXN0 X3VybCwKKysgICAgICAgICZkZXN0X3VybF9tb2RlKTsKKyAgICAgaWYocmVzdWx0ICE9IEdMT0JV U19TVUNDRVNTKSBnb3RvIGVycm9yX3Jlc3VsdF9leGl0OworIAorICAgICBpZiAoIGRlc3RfdXJs X21vZGUgPT0gR0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9VTlNVUFBPUlRFRCkKKyAgICAgewor LQllcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKy0JICAgIEdMT0JVU19HQVNT X0NPUFlfTU9EVUxFLAorLQkgICAgR0xPQlVTX05VTEwsCistCSAgICAiWyVzXTogJXMsICBHTE9C VVNfR0FTU19DT1BZX1VSTF9NT0RFX1VOU1VQUE9SVEVEIiwKKy0JICAgIG15bmFtZSwKKy0JICAg IGRlc3RfdXJsKTsKKysgICAgICAgIGVyciA9IGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5n KAorKyAgICAgICAgICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorKyAgICAgICAgICAgIEdM T0JVU19OVUxMLAorKyAgICAgICAgICAgICJbJXNdOiAlcywgIEdMT0JVU19HQVNTX0NPUFlfVVJM X01PREVfVU5TVVBQT1JURUQiLAorKyAgICAgICAgICAgIG15bmFtZSwKKysgICAgICAgICAgICBk ZXN0X3VybCk7CisgCistCWhhbmRsZS0+c3RhdHVzID0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNf RE9ORV9GQUlMVVJFOworKyAgICAgICAgaGFuZGxlLT5zdGF0dXMgPSBHTE9CVVNfR0FTU19DT1BZ X1NUQVRVU19ET05FX0ZBSUxVUkU7CisgCistCXJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7 CisrICAgICAgICByZXR1cm4gZ2xvYnVzX2Vycm9yX3B1dChlcnIpOworICAgICB9CisgCisgICAg IC8qIHJlaW5pdGlhbGl6ZSB0aGUgc3RhdGUgZm9yIHRoaXMgdHJhbnNmZXIgKi8KK0BAIC02MDA2 LDE5ICs2MDA2LDE5IEBAIGdsb2J1c19nYXNzX2NvcHlfcmVnaXN0ZXJfaGFuZGxlX3RvX3VybCgK KyAgICAgaGFuZGxlLT5jYWxsYmFja19hcmcgPSBjYWxsYmFja19hcmc7CisgCisgICAgIHJlc3Vs dCA9IGdsb2J1c19sX2dhc3NfY29weV9pb190YXJnZXRfcG9wdWxhdGUoCistCWhhbmRsZSwKKy0J JihzdGF0ZS0+c291cmNlKSwKKy0Jc291cmNlX2hhbmRsZSk7CisrICAgICAgICBoYW5kbGUsCisr ICAgICAgICAmKHN0YXRlLT5zb3VyY2UpLAorKyAgICAgICAgc291cmNlX2hhbmRsZSk7CisgICAg IGlmKHJlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykgZ290byBlcnJvcl9yZXN1bHRfZXhpdDsKKyAj aWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVHCisgICAgIGdsb2J1c19saWJjX2ZwcmludGYo c3RkZXJyLCAic291cmNlIHRhcmdldCBwb3B1bGF0ZWRcbiIpOworICNlbmRpZgorICAgICByZXN1 bHQgPSBnbG9idXNfbF9nYXNzX2NvcHlfdGFyZ2V0X3BvcHVsYXRlKAorLQloYW5kbGUsCistCSYo c3RhdGUtPmRlc3QpLAorLQkmZGVzdF91cmxfbW9kZSwKKy0JZGVzdF91cmwsCistCWRlc3RfYXR0 cik7CisrICAgICAgICBoYW5kbGUsCisrICAgICAgICAmKHN0YXRlLT5kZXN0KSwKKysgICAgICAg ICZkZXN0X3VybF9tb2RlLAorKyAgICAgICAgZGVzdF91cmwsCisrICAgICAgICBkZXN0X2F0dHIp OworIAorICAgICBpZihyZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MpIGdvdG8gZXJyb3JfcmVzdWx0 X2V4aXQ7CisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJVRworQEAgLTYwMjcsMjAgKzYw MjcsMjAgQEAgZ2xvYnVzX2dhc3NfY29weV9yZWdpc3Rlcl9oYW5kbGVfdG9fdXJsKAorICAgICBy ZXN1bHQgPSBnbG9idXNfbF9nYXNzX2NvcHlfdHJhbnNmZXJfc3RhcnQoaGFuZGxlKTsKKyAgICAg aWYgKHJlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKKyAgICAgeworLQlnb3RvIGVycm9yX3Jlc3Vs dF9leGl0OworKyAgICAgICAgZ290byBlcnJvcl9yZXN1bHRfZXhpdDsKKyAgICAgfQorIAorICAg ICByZXR1cm4gR0xPQlVTX1NVQ0NFU1M7CisgCisgZXJyb3JfZXhpdDoKKyAgICAgaWYoaGFuZGxl KQorLQloYW5kbGUtPnN0YXR1cyA9IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0RPTkVfRkFJTFVS RTsKKysgICAgICAgIGhhbmRsZS0+c3RhdHVzID0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfRE9O RV9GQUlMVVJFOworICAgICBlcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKy0J R0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCistCUdMT0JVU19OVUxMLAorLQkiWyVzXTogQkFEX1BB UkFNRVRFUiwgYXJndW1lbnQgJWQgY2Fubm90IGJlIE5VTEwiLAorLQlteW5hbWUsCistCWJhZF9w YXJhbSk7CisrICAgICAgICBHTE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKysgICAgICAgIEdMT0JV U19OVUxMLAorKyAgICAgICAgIlslc106IEJBRF9QQVJBTUVURVIsIGFyZ3VtZW50ICVkIGNhbm5v dCBiZSBOVUxMIiwKKysgICAgICAgIG15bmFtZSwKKysgICAgICAgIGJhZF9wYXJhbSk7CisgICAg IHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7CisgZXJyb3JfcmVzdWx0X2V4aXQ6CisgICAg IGhhbmRsZS0+c3RhdHVzID0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfRE9ORV9GQUlMVVJFOwor QEAgLTYwODEsNDIgKzYwODEsNDIgQEAgZ2xvYnVzX2dhc3NfY29weV9jYWNoZV91cmxfc3RhdGUo CisgCisgICAgIGlmKGhhbmRsZSAhPSBHTE9CVVNfTlVMTCkKKyAgICAgeworLQlnbG9idXNfdXJs X3BhcnNlKHVybCwgJnVybF9pbmZvKTsKKy0JaWYgKCAgIChzdHJjbXAodXJsX2luZm8uc2NoZW1l LCAiZnRwIikgPT0gMCkKKy0JICAgICAgIHx8IChzdHJjbXAodXJsX2luZm8uc2NoZW1lLCAiZ3Np ZnRwIikgPT0gMCkgICAgKQorLQl7CistCSAgICByZXN1bHQgPSBnbG9idXNfZnRwX2NsaWVudF9o YW5kbGVfY2FjaGVfdXJsX3N0YXRlKAorLQkJJmhhbmRsZS0+ZnRwX2hhbmRsZV8yLAorLQkJdXJs KTsKKysgICAgICAgIGdsb2J1c191cmxfcGFyc2UodXJsLCAmdXJsX2luZm8pOworKyAgICAgICAg aWYgKCAgIChzdHJjbXAodXJsX2luZm8uc2NoZW1lLCAiZnRwIikgPT0gMCkKKysgICAgICAgICAg ICAgICB8fCAoc3RyY21wKHVybF9pbmZvLnNjaGVtZSwgImdzaWZ0cCIpID09IDApICAgICkKKysg ICAgICAgIHsKKysgICAgICAgICAgICByZXN1bHQgPSBnbG9idXNfZnRwX2NsaWVudF9oYW5kbGVf Y2FjaGVfdXJsX3N0YXRlKAorKyAgICAgICAgICAgICAgICAmaGFuZGxlLT5mdHBfaGFuZGxlXzIs CisrICAgICAgICAgICAgICAgIHVybCk7CisgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBHTE9C VVNfU1VDQ0VTUykKKyAgICAgICAgICAgICB7CistCSAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2Z0 cF9jbGllbnRfaGFuZGxlX2NhY2hlX3VybF9zdGF0ZSgKKysgICAgICAgICAgICAgICAgcmVzdWx0 ID0gZ2xvYnVzX2Z0cF9jbGllbnRfaGFuZGxlX2NhY2hlX3VybF9zdGF0ZSgKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmaGFuZGxlLT5mdHBfaGFuZGxlLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVybCk7CistCSAgICB9CistCX0KKy0JZWxzZQorLQl7CistCSAgICBlcnIgPSBn bG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKy0JCUdMT0JVU19HQVNTX0NPUFlfTU9EVUxF LAorLQkJR0xPQlVTX05VTEwsCisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICAgICAg ZWxzZQorKyAgICAgICAgeworKyAgICAgICAgICAgIGVyciA9IGdsb2J1c19lcnJvcl9jb25zdHJ1 Y3Rfc3RyaW5nKAorKyAgICAgICAgICAgICAgICBHTE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKysg ICAgICAgICAgICAgICAgR0xPQlVTX05VTEwsCisgICAgICAgICAgICAgICAiWyVzXTogQkFEX1VS TF9TQ0hFTUUsIHVybDogJXMsIG9ubHkgZnRwIG9yIGdzaWZ0cCBjYW4gYmUgY2FjaGVkIiwKKy0J CW15bmFtZSwKKy0JCXVybCk7CistCSAgICByZXR1cm4gZ2xvYnVzX2Vycm9yX3B1dChlcnIpOwor LQl9CisrICAgICAgICAgICAgICAgIG15bmFtZSwKKysgICAgICAgICAgICAgICAgdXJsKTsKKysg ICAgICAgICAgICByZXR1cm4gZ2xvYnVzX2Vycm9yX3B1dChlcnIpOworKyAgICAgICAgfQorIAor ICAgICAgICAgZ2xvYnVzX3VybF9kZXN0cm95KCZ1cmxfaW5mbyk7CisgCisgICAgIH0KKyAgICAg ZWxzZQorICAgICB7IC8qIGhhbmRsZSA9PSBHTE9CVVNfTlVMTCAqLworLQllcnIgPSBnbG9idXNf ZXJyb3JfY29uc3RydWN0X3N0cmluZygKKy0JICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAor LQkgICAgR0xPQlVTX05VTEwsCistCSAgICAiWyVzXTogQkFEX1BBUkFNRVRFUiwgaGFuZGxlIGlz IE5VTEwiLAorLQkgICAgbXluYW1lKTsKKy0JcmV0dXJuIGdsb2J1c19lcnJvcl9wdXQoZXJyKTsK KysgICAgICAgIGVyciA9IGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorKyAgICAgICAg ICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorKyAgICAgICAgICAgIEdMT0JVU19OVUxMLAor KyAgICAgICAgICAgICJbJXNdOiBCQURfUEFSQU1FVEVSLCBoYW5kbGUgaXMgTlVMTCIsCisrICAg ICAgICAgICAgbXluYW1lKTsKKysgICAgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7 CisgICAgIH0KKyAKKyAgICAgcmV0dXJuIHJlc3VsdDsKK0BAIC02MTI0LDcgKzYxMjQsNyBAQCBn bG9idXNfZ2Fzc19jb3B5X2NhY2hlX3VybF9zdGF0ZSgKKyB9IC8qIGdsb2J1c19nYXNzX2NvcHlf Y2FjaGVfdXJsX3N0YXRlKCkgKi8KKyAKKyAvKioKKy0gKiBAYnJpZWYgUmVtb3ZlIGFuIEZUUCBv ciBHcmlkRlRQIGNhY2hlZCBjb25uZWN0aW9uIAorKyAqIEBicmllZiBSZW1vdmUgYW4gRlRQIG9y IEdyaWRGVFAgY2FjaGVkIGNvbm5lY3Rpb24KKyAgKiBAaW5ncm91cCBnbG9idXNfZ2Fzc190cmFu c2ZlcgorICAqIEBkZXRhaWxzCisgICogRXhwbGljaXRseSByZW1vdmUgYSBjYWNoZWQgY29ubmVj dGlvbiB0byBhbiBGVFAgb3IgR1NJRlRQIHNlcnZlci4KK0BAIC02MTUxLDQyICs2MTUxLDQyIEBA IGdsb2J1c19nYXNzX2NvcHlfZmx1c2hfdXJsX3N0YXRlKAorIAorICAgICBpZihoYW5kbGUgIT0g R0xPQlVTX05VTEwpCisgICAgIHsKKy0JZ2xvYnVzX3VybF9wYXJzZSh1cmwsICZ1cmxfaW5mbyk7 CistCWlmICggICAoc3RyY21wKHVybF9pbmZvLnNjaGVtZSwgImZ0cCIpID09IDApCistCSAgICAg ICB8fCAoc3RyY21wKHVybF9pbmZvLnNjaGVtZSwgImdzaWZ0cCIpID09IDApICAgICkKKy0Jewor LQkgICAgcmVzdWx0ID0gZ2xvYnVzX2Z0cF9jbGllbnRfaGFuZGxlX2ZsdXNoX3VybF9zdGF0ZSgK Ky0JICAgICAgICAgICAgICAgICZoYW5kbGUtPmZ0cF9oYW5kbGVfMiwKKy0JICAgICAgICAgICAg ICAgIHVybCk7CisrICAgICAgICBnbG9idXNfdXJsX3BhcnNlKHVybCwgJnVybF9pbmZvKTsKKysg ICAgICAgIGlmICggICAoc3RyY21wKHVybF9pbmZvLnNjaGVtZSwgImZ0cCIpID09IDApCisrICAg ICAgICAgICAgICAgfHwgKHN0cmNtcCh1cmxfaW5mby5zY2hlbWUsICJnc2lmdHAiKSA9PSAwKSAg ICApCisrICAgICAgICB7CisrICAgICAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2Z0cF9jbGllbnRf aGFuZGxlX2ZsdXNoX3VybF9zdGF0ZSgKKysgICAgICAgICAgICAgICAgICAgICAgICAmaGFuZGxl LT5mdHBfaGFuZGxlXzIsCisrICAgICAgICAgICAgICAgICAgICAgICAgdXJsKTsKKyAgICAgICAg ICAgICBpZiAocmVzdWx0ID09IEdMT0JVU19TVUNDRVNTKQorICAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2Z0cF9jbGllbnRfaGFuZGxlX2ZsdXNoX3VybF9z dGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmhhbmRsZS0+ZnRwX2hhbmRs ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsKTsKKyAgICAgICAgICAgICB9 CistCX0KKy0JZWxzZQorLQl7CistCSAgICBlcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0 cmluZygKKy0JICAgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCistCSAgICAgIEdMT0JVU19O VUxMLAorLQkgICAgICAiWyVzXTogQkFEX1VSTF9TQ0hFTUUsIHVybDogJXMsIG9ubHkgZnRwIG9y IGdzaWZ0cCBjYW4gYmUgY2FjaGVkIiwKKy0JICAgICAgbXluYW1lLAorLQkgICAgICB1cmwpOwor LQkgICAgcmV0dXJuIGdsb2J1c19lcnJvcl9wdXQoZXJyKTsKKy0JfQorKyAgICAgICAgfQorKyAg ICAgICAgZWxzZQorKyAgICAgICAgeworKyAgICAgICAgICAgIGVyciA9IGdsb2J1c19lcnJvcl9j b25zdHJ1Y3Rfc3RyaW5nKAorKyAgICAgICAgICAgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUs CisrICAgICAgICAgICAgICBHTE9CVVNfTlVMTCwKKysgICAgICAgICAgICAgICJbJXNdOiBCQURf VVJMX1NDSEVNRSwgdXJsOiAlcywgb25seSBmdHAgb3IgZ3NpZnRwIGNhbiBiZSBjYWNoZWQiLAor KyAgICAgICAgICAgICAgbXluYW1lLAorKyAgICAgICAgICAgICAgdXJsKTsKKysgICAgICAgICAg ICByZXR1cm4gZ2xvYnVzX2Vycm9yX3B1dChlcnIpOworKyAgICAgICAgfQorIAorICAgICAgICAg Z2xvYnVzX3VybF9kZXN0cm95KCZ1cmxfaW5mbyk7CisgCisgICAgIH0KKyAgICAgZWxzZQorICAg ICB7IC8qIGhhbmRsZSA9PSBHTE9CVVNfTlVMTCAqLworLQllcnIgPSBnbG9idXNfZXJyb3JfY29u c3RydWN0X3N0cmluZygKKy0JICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorLQkgICAgR0xP QlVTX05VTEwsCistCSAgICAiWyVzXTogQkFEX1BBUkFNRVRFUiwgaGFuZGxlIGlzIE5VTEwiLAor LQkgICAgbXluYW1lKTsKKy0JcmV0dXJuIGdsb2J1c19lcnJvcl9wdXQoZXJyKTsKKysgICAgICAg IGVyciA9IGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorKyAgICAgICAgICAgIEdMT0JV U19HQVNTX0NPUFlfTU9EVUxFLAorKyAgICAgICAgICAgIEdMT0JVU19OVUxMLAorKyAgICAgICAg ICAgICJbJXNdOiBCQURfUEFSQU1FVEVSLCBoYW5kbGUgaXMgTlVMTCIsCisrICAgICAgICAgICAg bXluYW1lKTsKKysgICAgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7CisgICAgIH0K KyAgICAgcmV0dXJuIHJlc3VsdDsKKyB9IC8qIGdsb2J1c19nYXNzX2NvcHlfZmx1c2hfdXJsX3N0 YXRlKCkgKi8KK0BAIC02MjEwLDE3ICs2MjEwLDE3IEBAIGdsb2J1c19nYXNzX2NvcHlfc2V0X3Vz ZXJfcG9pbnRlcigKKyAKKyAgICAgaWYoaGFuZGxlKQorICAgICB7CistCWhhbmRsZS0+dXNlcl9w b2ludGVyID0gdXNlcl9wb2ludGVyOworLQlyZXR1cm4gR0xPQlVTX1NVQ0NFU1M7CisrICAgICAg ICBoYW5kbGUtPnVzZXJfcG9pbnRlciA9IHVzZXJfcG9pbnRlcjsKKysgICAgICAgIHJldHVybiBH TE9CVVNfU1VDQ0VTUzsKKyAgICAgfQorICAgICBlbHNlCisgICAgIHsKKy0JZXJyID0gZ2xvYnVz X2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCistCSAgICBHTE9CVVNfR0FTU19DT1BZX01PRFVMRSwK Ky0JICAgIEdMT0JVU19OVUxMLAorLQkgICAgIlslc106IEJBRF9QQVJBTUVURVIsIGhhbmRsZSBp cyBOVUxMIiwKKy0JICAgIG15bmFtZSk7CistCXJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7 CisrICAgICAgICBlcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKysgICAgICAg ICAgICBHTE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKysgICAgICAgICAgICBHTE9CVVNfTlVMTCwK KysgICAgICAgICAgICAiWyVzXTogQkFEX1BBUkFNRVRFUiwgaGFuZGxlIGlzIE5VTEwiLAorKyAg ICAgICAgICAgIG15bmFtZSk7CisrICAgICAgICByZXR1cm4gZ2xvYnVzX2Vycm9yX3B1dChlcnIp OworICAgICB9CisgfSAvKiBnbG9idXNfZ2Fzc19jb3B5X3NldF91c2VyX3BvaW50ZXIoKSAqLwor IAorQEAgLTYyMzgsMTcgKzYyMzgsMTcgQEAgZ2xvYnVzX2dhc3NfY29weV9nZXRfdXNlcl9wb2lu dGVyKAorIAorICAgICBpZiAoaGFuZGxlKQorICAgICB7CistCSp1c2VyX2RhdGEgPSBoYW5kbGUt PnVzZXJfcG9pbnRlcjsKKy0JcmV0dXJuIEdMT0JVU19TVUNDRVNTOworKyAgICAgICAgKnVzZXJf ZGF0YSA9IGhhbmRsZS0+dXNlcl9wb2ludGVyOworKyAgICAgICAgcmV0dXJuIEdMT0JVU19TVUND RVNTOworICAgICB9CisgICAgIGVsc2UKKyAgICAgeworLQllcnIgPSBnbG9idXNfZXJyb3JfY29u c3RydWN0X3N0cmluZygKKy0JICAgIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorLQkgICAgR0xP QlVTX05VTEwsCistCSAgICAiWyVzXTogQkFEX1BBUkFNRVRFUiwgaGFuZGxlIGlzIE5VTEwiLAor LQkgICAgbXluYW1lKTsKKy0JcmV0dXJuIGdsb2J1c19lcnJvcl9wdXQoZXJyKTsKKysgICAgICAg IGVyciA9IGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorKyAgICAgICAgICAgIEdMT0JV U19HQVNTX0NPUFlfTU9EVUxFLAorKyAgICAgICAgICAgIEdMT0JVU19OVUxMLAorKyAgICAgICAg ICAgICJbJXNdOiBCQURfUEFSQU1FVEVSLCBoYW5kbGUgaXMgTlVMTCIsCisrICAgICAgICAgICAg bXluYW1lKTsKKysgICAgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7CisgICAgIH0K KyB9CisgCitAQCAtNjI3MSwyNyArNjI3MSwyNyBAQCBnbG9idXNfZ2Fzc19jb3B5X2NhbmNlbCgK KyAgICAgIHN0YXRpYyBjaGFyICogbXluYW1lPSJnbG9idXNfZ2Fzc19jb3B5X2NhbmNlbCI7Cisg CisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJVRworLQlnbG9idXNfbGliY19mcHJpbnRm KHN0ZGVyciwgInN0YXJ0aW5nIGdsb2J1c19nYXNzX2NvcHlfY2FuY2VsKClcbiIpOworKyAgICAg ICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJzdGFydGluZyBnbG9idXNfZ2Fzc19jb3B5 X2NhbmNlbCgpXG4iKTsKKyAjZW5kaWYKKyAKKyAgICAgaWYgKGhhbmRsZS0+c3RhdHVzID09IEdM T0JVU19HQVNTX0NPUFlfU1RBVFVTX05PTkUpCisgICAgIHsKKy0JZXJyID0gZ2xvYnVzX2Vycm9y X2NvbnN0cnVjdF9zdHJpbmcoCistCQkgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCistCQkgR0xP QlVTX05VTEwsCistCQkgIlslc106IE5vIHRyYW5zZmVycyBoYXZlIGJlZW4gaW5pdGlhdGVkIHVz aW5nIHRoaXMgaGFuZGxlIiwKKy0JCSBteW5hbWUpOworKyAgICAgICAgZXJyID0gZ2xvYnVzX2Vy cm9yX2NvbnN0cnVjdF9zdHJpbmcoCisrICAgICAgICAgICAgICAgICBHTE9CVVNfR0FTU19DT1BZ X01PRFVMRSwKKysgICAgICAgICAgICAgICAgIEdMT0JVU19OVUxMLAorKyAgICAgICAgICAgICAg ICAgIlslc106IE5vIHRyYW5zZmVycyBoYXZlIGJlZW4gaW5pdGlhdGVkIHVzaW5nIHRoaXMgaGFu ZGxlIiwKKysgICAgICAgICAgICAgICAgIG15bmFtZSk7CisgCisgICAgICAgICByZXR1cm4gZ2xv YnVzX2Vycm9yX3B1dChlcnIpOworICAgICB9CisgCisgICAgIGlmIChoYW5kbGUtPnN0YXR1cyA9 PSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19ET05FKQorICAgICB7CistCWVyciA9IGdsb2J1c19l cnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorLQkJIEdMT0JVU19HQVNTX0NPUFlfTU9EVUxFLAorLQkJ IEdMT0JVU19OVUxMLAorLQkJICJbJXNdOiBUaGUgbGFzdCB0cmFuc2ZlciBoYXMgYWxyZWFkeSBj b21wbGV0ZWQuIiwKKy0JCSBteW5hbWUpOworKyAgICAgICAgZXJyID0gZ2xvYnVzX2Vycm9yX2Nv bnN0cnVjdF9zdHJpbmcoCisrICAgICAgICAgICAgICAgICBHTE9CVVNfR0FTU19DT1BZX01PRFVM RSwKKysgICAgICAgICAgICAgICAgIEdMT0JVU19OVUxMLAorKyAgICAgICAgICAgICAgICAgIlsl c106IFRoZSBsYXN0IHRyYW5zZmVyIGhhcyBhbHJlYWR5IGNvbXBsZXRlZC4iLAorKyAgICAgICAg ICAgICAgICAgbXluYW1lKTsKKyAKKyAgICAgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVy cik7CisgICAgIH0KK0BAIC02MzAzLDMzICs2MzAzLDMzIEBAIGdsb2J1c19nYXNzX2NvcHlfY2Fu Y2VsKAorICAgICAgICAgICAgICBHTE9CVVNfTlVMTCwKKyAgICAgICAgICAgICAgIlslc106IFRo ZSBsYXN0IHRyYW5zZmVyIGhhcyBhbHJlYWR5IGVuZGVkLiIsCisgICAgICAgICAgICAgIG15bmFt ZSk7CistICAgIAorKworICAgICAgICAgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7 CisgICAgIH0KKyAKKyAgICAgaWYgKGhhbmRsZS0+c3RhdGUtPmNhbmNlbCA9PSBHTE9CVVNfSV9H QVNTX0NPUFlfQ0FOQ0VMX0NBTExFRCkKKyAgICAgeworLQlpZihoYW5kbGUtPnN0YXR1cyA9PSBH TE9CVVNfR0FTU19DT1BZX1NUQVRVU19DQU5DRUwpCistCXsKKy0JICAgIGVyciA9IGdsb2J1c19l cnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorLQkJR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCistCQlH TE9CVVNfTlVMTCwKKy0JCSJbJXNdOiBUaGUgbGFzdCB0cmFuc2ZlciBoYXMgYWxyZWFkeSBiZWVu IGNhbmNlbGVkLiIsCistCQlteW5hbWUpOworKyAgICAgICAgaWYoaGFuZGxlLT5zdGF0dXMgPT0g R0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfQ0FOQ0VMKQorKyAgICAgICAgeworKyAgICAgICAgICAg IGVyciA9IGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorKyAgICAgICAgICAgICAgICBH TE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKysgICAgICAgICAgICAgICAgR0xPQlVTX05VTEwsCisr ICAgICAgICAgICAgICAgICJbJXNdOiBUaGUgbGFzdCB0cmFuc2ZlciBoYXMgYWxyZWFkeSBiZWVu IGNhbmNlbGVkLiIsCisrICAgICAgICAgICAgICAgIG15bmFtZSk7CisgCistCSAgICByZXR1cm4g Z2xvYnVzX2Vycm9yX3B1dChlcnIpOworLQl9CisrICAgICAgICAgICAgcmV0dXJuIGdsb2J1c19l cnJvcl9wdXQoZXJyKTsKKysgICAgICAgIH0KKyAKKy0JaWYoaGFuZGxlLT5zdGF0dXMgPT0gR0xP QlVTX0dBU1NfQ09QWV9TVEFUVVNfRkFJTFVSRSkKKy0JeworLQkgICAgZXJyID0gZ2xvYnVzX2Vy cm9yX2NvbnN0cnVjdF9zdHJpbmcoCistCQlHTE9CVVNfR0FTU19DT1BZX01PRFVMRSwKKy0JCUdM T0JVU19OVUxMLAorLQkJIlslc106IEEgZmFpbHVyZSBoYXMgYWxyZWFkeSBiZWVuIGRldGVjdGVk IGluIHRoZSBsYXN0IHRyYW5zZmVyLiIsCistCQlteW5hbWUpOworKyAgICAgICAgaWYoaGFuZGxl LT5zdGF0dXMgPT0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfRkFJTFVSRSkKKysgICAgICAgIHsK KysgICAgICAgICAgICBlcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKysgICAg ICAgICAgICAgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCisrICAgICAgICAgICAgICAgIEdM T0JVU19OVUxMLAorKyAgICAgICAgICAgICAgICAiWyVzXTogQSBmYWlsdXJlIGhhcyBhbHJlYWR5 IGJlZW4gZGV0ZWN0ZWQgaW4gdGhlIGxhc3QgdHJhbnNmZXIuIiwKKysgICAgICAgICAgICAgICAg bXluYW1lKTsKKyAKKy0JICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7CistCX0KKysg ICAgICAgICAgICByZXR1cm4gZ2xvYnVzX2Vycm9yX3B1dChlcnIpOworKyAgICAgICAgfQorICAg ICB9CisgCisgICAgIGhhbmRsZS0+c3RhdGUtPmNhbmNlbCA9IEdMT0JVU19JX0dBU1NfQ09QWV9D QU5DRUxfQ0FMTEVEOworQEAgLTYzNTIsNDEgKzYzNTIsNDEgQEAgZ2xvYnVzX2dhc3NfY29weV9j YW5jZWwoCisgICAgIH0KKyAgICAgZWxzZQorICAgICB7CistCXNvdXJjZV9jYW5jZWxfaW5mbyA9 IChnbG9idXNfaV9nYXNzX2NvcHlfY2FuY2VsX3QgKikKKy0JICAgIGdsb2J1c19saWJjX21hbGxv YyhzaXplb2YoZ2xvYnVzX2lfZ2Fzc19jb3B5X2NhbmNlbF90KSk7CistCXNvdXJjZV9jYW5jZWxf aW5mby0+aGFuZGxlID0gaGFuZGxlOworLQlzb3VyY2VfY2FuY2VsX2luZm8tPmNhbmNlbGluZ19z b3VyY2UgPSBHTE9CVVNfVFJVRTsKKysgICAgICAgIHNvdXJjZV9jYW5jZWxfaW5mbyA9IChnbG9i dXNfaV9nYXNzX2NvcHlfY2FuY2VsX3QgKikKKysgICAgICAgICAgICBnbG9idXNfbGliY19tYWxs b2Moc2l6ZW9mKGdsb2J1c19pX2dhc3NfY29weV9jYW5jZWxfdCkpOworKyAgICAgICAgc291cmNl X2NhbmNlbF9pbmZvLT5oYW5kbGUgPSBoYW5kbGU7CisrICAgICAgICBzb3VyY2VfY2FuY2VsX2lu Zm8tPmNhbmNlbGluZ19zb3VyY2UgPSBHTE9CVVNfVFJVRTsKKyAKKy0JZGVzdF9jYW5jZWxfaW5m byA9IChnbG9idXNfaV9nYXNzX2NvcHlfY2FuY2VsX3QgKikKKy0JICAgIGdsb2J1c19saWJjX21h bGxvYyhzaXplb2YoZ2xvYnVzX2lfZ2Fzc19jb3B5X2NhbmNlbF90KSk7CistCWRlc3RfY2FuY2Vs X2luZm8tPmhhbmRsZSA9IGhhbmRsZTsKKy0JZGVzdF9jYW5jZWxfaW5mby0+Y2FuY2VsaW5nX3Nv dXJjZSA9IEdMT0JVU19GQUxTRTsKKysgICAgICAgIGRlc3RfY2FuY2VsX2luZm8gPSAoZ2xvYnVz X2lfZ2Fzc19jb3B5X2NhbmNlbF90ICopCisrICAgICAgICAgICAgZ2xvYnVzX2xpYmNfbWFsbG9j KHNpemVvZihnbG9idXNfaV9nYXNzX2NvcHlfY2FuY2VsX3QpKTsKKysgICAgICAgIGRlc3RfY2Fu Y2VsX2luZm8tPmhhbmRsZSA9IGhhbmRsZTsKKysgICAgICAgIGRlc3RfY2FuY2VsX2luZm8tPmNh bmNlbGluZ19zb3VyY2UgPSBHTE9CVVNfRkFMU0U7CisgCistCWlmKGhhbmRsZS0+c3RhdGUtPnNv dXJjZS5zdGF0dXMgIT0gR0xPQlVTX0lfR0FTU19DT1BZX1RBUkdFVF9ET05FICYmCistCSAgIGhh bmRsZS0+c3RhdGUtPnNvdXJjZS5zdGF0dXMgIT0gR0xPQlVTX0lfR0FTU19DT1BZX1RBUkdFVF9J TklUSUFMKQorLQkgICAgc291cmNlX3Jlc3VsdCA9IGdsb2J1c19sX2dhc3NfY29weV90YXJnZXRf Y2FuY2VsKHNvdXJjZV9jYW5jZWxfaW5mbyk7CisrICAgICAgICBpZihoYW5kbGUtPnN0YXRlLT5z b3VyY2Uuc3RhdHVzICE9IEdMT0JVU19JX0dBU1NfQ09QWV9UQVJHRVRfRE9ORSAmJgorKyAgICAg ICAgICAgaGFuZGxlLT5zdGF0ZS0+c291cmNlLnN0YXR1cyAhPSBHTE9CVVNfSV9HQVNTX0NPUFlf VEFSR0VUX0lOSVRJQUwpCisrICAgICAgICAgICAgc291cmNlX3Jlc3VsdCA9IGdsb2J1c19sX2dh c3NfY29weV90YXJnZXRfY2FuY2VsKHNvdXJjZV9jYW5jZWxfaW5mbyk7CisgCisgICAgICAgICBp ZiAoaGFuZGxlLT5zdGF0ZS0+YWN0aXZlKQorICAgICAgICAgeworICAgICAgICAgICAgIGlmKGhh bmRsZS0+c3RhdGUtPmRlc3Quc3RhdHVzICE9IEdMT0JVU19JX0dBU1NfQ09QWV9UQVJHRVRfRE9O RSAmJgorICAgICAgICAgICAgICAgIGhhbmRsZS0+c3RhdGUtPmRlc3Quc3RhdHVzICE9IEdMT0JV U19JX0dBU1NfQ09QWV9UQVJHRVRfSU5JVElBTCkKKyAgICAgICAgICAgICB7CistCSAgICAgICAg ZGVzdF9yZXN1bHQgPSBnbG9idXNfbF9nYXNzX2NvcHlfdGFyZ2V0X2NhbmNlbChkZXN0X2NhbmNl bF9pbmZvKTsKKysgICAgICAgICAgICAgICAgZGVzdF9yZXN1bHQgPSBnbG9idXNfbF9nYXNzX2Nv cHlfdGFyZ2V0X2NhbmNlbChkZXN0X2NhbmNlbF9pbmZvKTsKKyAgICAgICAgICAgICB9CisgICAg ICAgICB9CisgCistCWlmKHNvdXJjZV9yZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MpCistCXsKKy0J ICAgIHJlc3VsdCA9IHNvdXJjZV9yZXN1bHQ7CistCX0KKy0JZWxzZSBpZihkZXN0X3Jlc3VsdCAh PSBHTE9CVVNfU1VDQ0VTUykKKy0JeworLQkgICAgcmVzdWx0ID0gZGVzdF9yZXN1bHQ7CistCX0K Ky0JZWxzZQorLQl7CistCSAgICByZXN1bHQgPSBHTE9CVVNfU1VDQ0VTUzsKKy0JfQorKyAgICAg ICAgaWYoc291cmNlX3Jlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKKysgICAgICAgIHsKKysgICAg ICAgICAgICByZXN1bHQgPSBzb3VyY2VfcmVzdWx0OworKyAgICAgICAgfQorKyAgICAgICAgZWxz ZSBpZihkZXN0X3Jlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKKysgICAgICAgIHsKKysgICAgICAg ICAgICByZXN1bHQgPSBkZXN0X3Jlc3VsdDsKKysgICAgICAgIH0KKysgICAgICAgIGVsc2UKKysg ICAgICAgIHsKKysgICAgICAgICAgICByZXN1bHQgPSBHTE9CVVNfU1VDQ0VTUzsKKysgICAgICAg IH0KKyAvKgorICAgICAgICAgZ2xvYnVzX2xpYmNfZnJlZShkZXN0X2NhbmNlbF9pbmZvKTsKKyAg ICAgICAgIGdsb2J1c19saWJjX2ZyZWUoc291cmNlX2NhbmNlbF9pbmZvKTsKK0BAIC02Mzk0LDcg KzYzOTQsNyBAQCBnbG9idXNfZ2Fzc19jb3B5X2NhbmNlbCgKKyAgICAgfQorIAorICNpZmRlZiBH TE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKy0JZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJs ZWF2aW5nIGdsb2J1c19nYXNzX2NvcHlfY2FuY2VsKClcbiIpOworKyAgICAgICAgZ2xvYnVzX2xp YmNfZnByaW50ZihzdGRlcnIsICJsZWF2aW5nIGdsb2J1c19nYXNzX2NvcHlfY2FuY2VsKClcbiIp OworICNlbmRpZgorIAorICAgICByZXR1cm4gcmVzdWx0OworQEAgLTY0MzAsMTYgKzY0MzAsMTYg QEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X3RhcmdldF9jYW5jZWwoCisgICAgIGlmIChjYW5jZWxfaW5m by0+Y2FuY2VsaW5nX3NvdXJjZSkKKyAgICAgeworICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlf REVCVUcKKy0JZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJfdGFyZ2V0X2NhbmNlbCgpOiBj YW5jZWxsaW5nIHNvdXJjZVxuIik7CisrICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVy ciwgIl90YXJnZXRfY2FuY2VsKCk6IGNhbmNlbGxpbmcgc291cmNlXG4iKTsKKyAjZW5kaWYKKyAg ICAgICAgdGFyZ2V0ID0gJihjYW5jZWxfaW5mby0+aGFuZGxlLT5zdGF0ZS0+c291cmNlKTsKKyAg ICAgfQorICAgICBlbHNlCisgICAgIHsKKyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVH CistCWdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAiX3RhcmdldF9jYW5jZWwoKTogY2FuY2Vs bGluZyBkZXN0XG4iKTsKKysgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAiX3Rh cmdldF9jYW5jZWwoKTogY2FuY2VsbGluZyBkZXN0XG4iKTsKKyAjZW5kaWYKKy0JdGFyZ2V0ID0g JihjYW5jZWxfaW5mby0+aGFuZGxlLT5zdGF0ZS0+ZGVzdCk7CisrICAgICAgICB0YXJnZXQgPSAm KGNhbmNlbF9pbmZvLT5oYW5kbGUtPnN0YXRlLT5kZXN0KTsKKyAgICAgfQorIAorICAgICBzd2l0 Y2ggKHRhcmdldC0+bW9kZSkKK0BAIC02NDU4LDggKzY0NTgsOCBAQCBnbG9idXNfbF9nYXNzX2Nv cHlfdGFyZ2V0X2NhbmNlbCgKKyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVHCisgICAg ICAgICAgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAg ICAgICAidGFyZ2V0X2NhbmNlbCgpOiBfZnRwX2NsaWVudF9hYm9ydCgpICByZXR1cm5lZCBhbiBl cnJvclxuIik7CistCQlnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwgInRhcmdldF9jYW5jZWwo KTogZXJyb3IgPSAlc1xuIiwKKy0JCSAgIGdsb2J1c19vYmplY3RfcHJpbnRhYmxlX3RvX3N0cmlu ZyhnbG9idXNfZXJyb3JfcGVlayhyZXN1bHQpKSk7CisrICAgICAgICAgICAgICAgIGdsb2J1c19s aWJjX2ZwcmludGYoc3RkZXJyLCAidGFyZ2V0X2NhbmNlbCgpOiBlcnJvciA9ICVzXG4iLAorKyAg ICAgICAgICAgICAgICAgICBnbG9idXNfb2JqZWN0X3ByaW50YWJsZV90b19zdHJpbmcoZ2xvYnVz X2Vycm9yX3BlZWsocmVzdWx0KSkpOworICAgICAgICAgICAgICAgICBnbG9idXNfbGliY19mcHJp bnRmKHN0ZGVyciwgIiAgICByZXNldHRpbmcgdG8gU1VDQ0VTU1xuIik7CisgI2VuZGlmCisgICAg ICAgICAgICAgICAgICByZXN1bHQgPSBHTE9CVVNfU1VDQ0VTUzsKK0BAIC02NDY4LDQyICs2NDY4 LDQyIEBAIGdsb2J1c19sX2dhc3NfY29weV90YXJnZXRfY2FuY2VsKAorICAgICAgICAgICAgICBi cmVhazsKKyAgICAgICAgIGNhc2UgR0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9HQVNTOgorIAor LQkgICAgcmVxX3N0YXR1cyA9CistCQlnbG9idXNfZ2Fzc190cmFuc2Zlcl9yZXF1ZXN0X2dldF9z dGF0dXModGFyZ2V0LT5kYXRhLmdhc3MucmVxdWVzdCk7CisrICAgICAgICAgICAgcmVxX3N0YXR1 cyA9CisrICAgICAgICAgICAgICAgIGdsb2J1c19nYXNzX3RyYW5zZmVyX3JlcXVlc3RfZ2V0X3N0 YXR1cyh0YXJnZXQtPmRhdGEuZ2Fzcy5yZXF1ZXN0KTsKKyAjaWZkZWYgR0xPQlVTX0lfR0FTU19D T1BZX0RFQlVHCistCSAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKysgICAgICAgICAg ICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgInRhcmdl dF9jYW5jZWw6IGdhc3NfcmVxdWVzdF9zdGF0dXMgPSAlZFxuIiwgcmVxX3N0YXR1cyk7CisgI2Vu ZGlmCistCSAgICBpZihyZXFfc3RhdHVzICE9IEdMT0JVU19HQVNTX1RSQU5TRkVSX1JFUVVFU1Rf RkFJTEVEICYmCisrICAgICAgICAgICAgaWYocmVxX3N0YXR1cyAhPSBHTE9CVVNfR0FTU19UUkFO U0ZFUl9SRVFVRVNUX0ZBSUxFRCAmJgorICAgICAgICAgICAgICAgIHJlcV9zdGF0dXMgIT0gR0xP QlVTX0dBU1NfVFJBTlNGRVJfUkVRVUVTVF9ERU5JRUQpCisgICAgICAgICAgICAgeworLQkJcmMg PSBnbG9idXNfZ2Fzc190cmFuc2Zlcl9mYWlsKAorKyAgICAgICAgICAgICAgICByYyA9IGdsb2J1 c19nYXNzX3RyYW5zZmVyX2ZhaWwoCisgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC0+ZGF0 YS5nYXNzLnJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgIGdsb2J1c19sX2dhc3NfY29w eV9nYXNzX3RyYW5zZmVyX2NhbmNlbF9jYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAg Y2FuY2VsX2luZm8pOworLQkJaWYgKHJjICE9IEdMT0JVU19TVUNDRVNTKQorLQkJeworLQkJICAg ICBlcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKy0JCSAgICAgR0xPQlVTX0dB U1NfQ09QWV9NT0RVTEUsCistCQkgICAgIEdMT0JVU19OVUxMLAorLQkJICAgICAiWyVzXTogJXMg Z2xvYnVzX2dhc3NfdHJhbnNmZXJfcmVxdWVzdF9mYWlsIHJldHVybmVkIGFuIGVycm9yIGNvZGUg b2Y6ICVkIiwKKy0JCSAgICAgbXluYW1lLAorLQkJICAgICB0YXJnZXQtPnVybCwKKy0JCSAgICAg cmMpOworLQkJICAgICBnbG9idXNfaV9nYXNzX2NvcHlfc2V0X2Vycm9yKGNhbmNlbF9pbmZvLT5o YW5kbGUsIGVycik7CistCistCQkgICAgIHJlc3VsdCA9IGdsb2J1c19lcnJvcl9wdXQoZXJyKTsK Ky0JCX0KKy0JCWVsc2UKKy0JCXsKKy0JCSAgICBnbG9idXNfbF9nYXNzX2NvcHlfZ2VuZXJpY19j YW5jZWwoY2FuY2VsX2luZm8pOworLQkJfQorLQkgICAgfQorLQkgICAgZWxzZQorLQkgICAgewor LQkJZ2xvYnVzX2dhc3NfdHJhbnNmZXJfcmVxdWVzdF9kZXN0cm95KHRhcmdldC0+ZGF0YS5nYXNz LnJlcXVlc3QpOworLQkJZ2xvYnVzX2xfZ2Fzc19jb3B5X2dlbmVyaWNfY2FuY2VsKGNhbmNlbF9p bmZvKTsKKy0JICAgIH0KKysgICAgICAgICAgICAgICAgaWYgKHJjICE9IEdMT0JVU19TVUNDRVNT KQorKyAgICAgICAgICAgICAgICB7CisrICAgICAgICAgICAgICAgICAgICAgZXJyID0gZ2xvYnVz X2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCisrICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0dB U1NfQ09QWV9NT0RVTEUsCisrICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX05VTEwsCisrICAg ICAgICAgICAgICAgICAgICAgIlslc106ICVzIGdsb2J1c19nYXNzX3RyYW5zZmVyX3JlcXVlc3Rf ZmFpbCByZXR1cm5lZCBhbiBlcnJvciBjb2RlIG9mOiAlZCIsCisrICAgICAgICAgICAgICAgICAg ICAgbXluYW1lLAorKyAgICAgICAgICAgICAgICAgICAgIHRhcmdldC0+dXJsLAorKyAgICAgICAg ICAgICAgICAgICAgIHJjKTsKKysgICAgICAgICAgICAgICAgICAgICBnbG9idXNfaV9nYXNzX2Nv cHlfc2V0X2Vycm9yKGNhbmNlbF9pbmZvLT5oYW5kbGUsIGVycik7CisrCisrICAgICAgICAgICAg ICAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2Vycm9yX3B1dChlcnIpOworKyAgICAgICAgICAgICAg ICB9CisrICAgICAgICAgICAgICAgIGVsc2UKKysgICAgICAgICAgICAgICAgeworKyAgICAgICAg ICAgICAgICAgICAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2dlbmVyaWNfY2FuY2VsKGNhbmNlbF9pbmZv KTsKKysgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICBlbHNl CisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICBnbG9idXNfZ2Fzc190cmFuc2Zlcl9y ZXF1ZXN0X2Rlc3Ryb3kodGFyZ2V0LT5kYXRhLmdhc3MucmVxdWVzdCk7CisrICAgICAgICAgICAg ICAgIGdsb2J1c19sX2dhc3NfY29weV9nZW5lcmljX2NhbmNlbChjYW5jZWxfaW5mbyk7CisrICAg ICAgICAgICAgfQorIAorICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgR0xPQlVT X0dBU1NfQ09QWV9VUkxfTU9ERV9JTzoKK0BAIC02NTE0LDExICs2NTE0LDExIEBAIGdsb2J1c19s X2dhc3NfY29weV90YXJnZXRfY2FuY2VsKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNhbmNlbF9pbmZvKTsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBkZWZhdWx0Ogor LQkgICAgIGJyZWFrOworKyAgICAgICAgICAgICBicmVhazsKKyAgICAgfQorICNpZmRlZiBHTE9C VVNfSV9HQVNTX0NPUFlfREVCVUcKKyAgICAgaWYocmVzdWx0ICE9IEdMT0JVU19TVUNDRVNTKQor LQlnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKysgICAgICAgIGdsb2J1c19saWJjX2Zwcmlu dGYoc3RkZXJyLAorICAgICAgICAgICAgICJbJXNdOiBlcnJvciB0cnlpbmcgdG8gY2FuY2VsIG9u ZSBvZiB0aGUgdGFyZ2V0c1xuIiwKKyAgICAgICAgICAgICBteW5hbWUpOworICNlbmRpZgorQEAg LTY1MzMsMTAgKzY1MzMsMTAgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2dhc3NfdHJhbnNmZXJfY2Fu Y2VsX2NhbGxiYWNrKAorICAgICBnbG9idXNfZ2Fzc190cmFuc2Zlcl9yZXF1ZXN0X3N0YXR1c190 IHN0YXR1czsKKyAgICAgZ2xvYnVzX29iamVjdF90ICogICAgICAgICAgICAgICAgICAgICBlcnI7 CisgICAgIGdsb2J1c19pX2dhc3NfY29weV9jYW5jZWxfdCAqICAgICAgICAgY2FuY2VsX2luZm8K Ky0JPSAoZ2xvYnVzX2lfZ2Fzc19jb3B5X2NhbmNlbF90ICopIGNhbGxiYWNrX2FyZzsKKysgICAg ICAgID0gKGdsb2J1c19pX2dhc3NfY29weV9jYW5jZWxfdCAqKSBjYWxsYmFja19hcmc7CisgCisg I2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJVRworLQlnbG9idXNfbGliY19mcHJpbnRmKHN0 ZGVyciwKKysgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAg ICJzdGFydGluZyBfZ2Fzc190cmFuc2Zlcl9jYW5jZWxfY2FsbGJhY2soKVxuIik7CisgI2VuZGlm CisgCitAQCAtNjU2Niw3ICs2NTY2LDcgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2lvX2NhbmNlbF9j YWxsYmFjaygKKyAgICAgICAgID0gKGdsb2J1c19pX2dhc3NfY29weV9jYW5jZWxfdCAqKSBjYWxs YmFja19hcmc7CisgCisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09QWV9ERUJVRworLQlnbG9idXNf bGliY19mcHJpbnRmKHN0ZGVyciwgInN0YXJ0aW5nIF9pb19jYW5jZWxfY2FsbGJhY2soKVxuIik7 CisrICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwgInN0YXJ0aW5nIF9pb19jYW5j ZWxfY2FsbGJhY2soKVxuIik7CisgI2VuZGlmCisgCisgLyogIHdoYXQgdG8gZG8gaWYgd2UgZ2V0 IGFuIGVycm9yID8/CitAQCAtNjU4OCwxOCArNjU4OCwxOCBAQCBnbG9idXNfbF9nYXNzX2NvcHlf Z2VuZXJpY19jYW5jZWwoCisgICAgIGdsb2J1c19nYXNzX2NvcHlfY2FsbGJhY2tfdCAgICAgY2Fu Y2VsX2NhbGxiYWNrOworIAorICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKy0JZ2xv YnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJzdGFydGluZyBfZ2Fzc19jb3B5X2dlbmVyaWNfY2Fu Y2VsKClcbiIpOworKyAgICAgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJzdGFydGlu ZyBfZ2Fzc19jb3B5X2dlbmVyaWNfY2FuY2VsKClcbiIpOworICNlbmRpZgorICAgICBnbG9idXNf bXV0ZXhfbG9jaygmKHN0YXRlLT5tdXRleCkpOworLSAgICAKKysKKyAgICAgaWYgKGNhbmNlbF9p bmZvLT5jYW5jZWxpbmdfc291cmNlKQorICAgICB7CisgI2lmZGVmIEdMT0JVU19JX0dBU1NfQ09Q WV9ERUJVRworLQlnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwgIl9nZW5lcmljX2NhbmNlbCgp IHNvdXJjZVxuIik7CisrICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwgIl9nZW5l cmljX2NhbmNlbCgpIHNvdXJjZVxuIik7CisgI2VuZGlmCistCWhhbmRsZS0+c3RhdGUtPnNvdXJj ZS5zdGF0dXMgPSBHTE9CVVNfSV9HQVNTX0NPUFlfVEFSR0VUX0RPTkU7CisrICAgICAgICBoYW5k bGUtPnN0YXRlLT5zb3VyY2Uuc3RhdHVzID0gR0xPQlVTX0lfR0FTU19DT1BZX1RBUkdFVF9ET05F OworICAgICAgICAgaWYgKGhhbmRsZS0+c3RhdGUtPmRlc3Quc3RhdHVzID09IEdMT0JVU19JX0dB U1NfQ09QWV9UQVJHRVRfRE9ORSB8fAorLQkgICAgaGFuZGxlLT5zdGF0ZS0+ZGVzdC5zdGF0dXMg PT0gR0xPQlVTX0lfR0FTU19DT1BZX1RBUkdFVF9JTklUSUFMKQorKyAgICAgICAgICAgIGhhbmRs ZS0+c3RhdGUtPmRlc3Quc3RhdHVzID09IEdMT0JVU19JX0dBU1NfQ09QWV9UQVJHRVRfSU5JVElB TCkKKyAgICAgICAgIHsKKyAgICAgICAgICAgIGFsbF9kb25lID0gR0xPQlVTX1RSVUU7CisgICAg ICAgICB9CitAQCAtNjYwNywxMSArNjYwNywxMSBAQCBnbG9idXNfbF9nYXNzX2NvcHlfZ2VuZXJp Y19jYW5jZWwoCisgICAgIGVsc2UKKyAgICAgeworICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlf REVCVUcKKy0JZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJfZ2VuZXJpY19jYW5jZWwoKSBk ZXN0XG4iKTsKKysgICAgICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAiX2dlbmVyaWNf Y2FuY2VsKCkgZGVzdFxuIik7CisgI2VuZGlmCistCWhhbmRsZS0+c3RhdGUtPmRlc3Quc3RhdHVz ID0gR0xPQlVTX0lfR0FTU19DT1BZX1RBUkdFVF9ET05FOworKyAgICAgICAgaGFuZGxlLT5zdGF0 ZS0+ZGVzdC5zdGF0dXMgPSBHTE9CVVNfSV9HQVNTX0NPUFlfVEFSR0VUX0RPTkU7CisgICAgICAg ICBpZiAoaGFuZGxlLT5zdGF0ZS0+c291cmNlLnN0YXR1cyA9PSBHTE9CVVNfSV9HQVNTX0NPUFlf VEFSR0VUX0RPTkUgfHwKKy0JICAgIGhhbmRsZS0+c3RhdGUtPnNvdXJjZS5zdGF0dXMgPT0gR0xP QlVTX0lfR0FTU19DT1BZX1RBUkdFVF9JTklUSUFMKQorKyAgICAgICAgICAgIGhhbmRsZS0+c3Rh dGUtPnNvdXJjZS5zdGF0dXMgPT0gR0xPQlVTX0lfR0FTU19DT1BZX1RBUkdFVF9JTklUSUFMKQor ICAgICAgICAgeworICAgICAgICAgICAgYWxsX2RvbmUgPSBHTE9CVVNfVFJVRTsKKyAgICAgICAg IH0KK0BAIC02NjIxLDE2ICs2NjIxLDE2IEBAIGdsb2J1c19sX2dhc3NfY29weV9nZW5lcmljX2Nh bmNlbCgKKyAgICAgICAgICAgICBnbG9idXNfbF9nYXNzX2NvcHlfcGVyZl9jYW5jZWxfbG9jYWxf Y2FsbGJhY2soaGFuZGxlLT5wZXJmb3JtYW5jZSk7CisgICAgICAgICB9CisgICAgIH0KKy0gICAg CisrCisgICAgIGlmIChhbGxfZG9uZSAmJgorICAgICAgICAgKChoYW5kbGUtPnN0YXRlLT5kZXN0 Lm1vZGUgPT0gR0xPQlVTX0dBU1NfQ09QWV9VUkxfTU9ERV9GVFAgJiYKKyAgICAgICAgICFoYW5k bGUtPnN0YXRlLT5kZXN0LmRhdGEuZnRwLmNvbXBsZXRlZCkgfHwKKy0gICAgICAgIChoYW5kbGUt PnN0YXRlLT5zb3VyY2UubW9kZSA9PSBHTE9CVVNfR0FTU19DT1BZX1VSTF9NT0RFX0ZUUCAmJiAK KysgICAgICAgIChoYW5kbGUtPnN0YXRlLT5zb3VyY2UubW9kZSA9PSBHTE9CVVNfR0FTU19DT1BZ X1VSTF9NT0RFX0ZUUCAmJgorICAgICAgICAgIWhhbmRsZS0+c3RhdGUtPnNvdXJjZS5kYXRhLmZ0 cC5jb21wbGV0ZWQpKSkKKyAgICAgeworICAgICAgICAgYWxsX2RvbmUgPSBHTE9CVVNfRkFMU0U7 CisgICAgIH0KKy0gICAgCisrCisgICAgIGlmKGFsbF9kb25lKQorICAgICB7CisgICAgICAgICB1 c2VyX2NhbGxiYWNrID0gaGFuZGxlLT51c2VyX2NhbGxiYWNrOworQEAgLTY2NDQsNjQgKzY2NDQs NjQgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2dlbmVyaWNfY2FuY2VsKAorICAgICAgICAgZ2xvYnVz X2dhc3NfY29weV9jYW5jZWwoaGFuZGxlLCBOVUxMLCBOVUxMKTsKKyAgICAgfQorICAgICBnbG9i dXNfbXV0ZXhfdW5sb2NrKCYoc3RhdGUtPm11dGV4KSk7CistICAgIAorKworICNpZmRlZiBHTE9C VVNfSV9HQVNTX0NPUFlfREVCVUcKKyAgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsICJf Z2VuZXJpY19jYW5jZWwoKSBiZWZvcmUgYWxsIGRvbmVcbiIpOworICNlbmRpZgorIAorICAgICBp ZiAoYWxsX2RvbmUpCisgICAgIHsKKy0JZ2xvYnVzX2xfZ2Fzc19jb3B5X3N0YXRlX2ZyZWVfdGFy Z2V0cyhzdGF0ZSk7CisrICAgICAgICBnbG9idXNfbF9nYXNzX2NvcHlfc3RhdGVfZnJlZV90YXJn ZXRzKHN0YXRlKTsKKyAKKyAjaWZkZWYgR0xPQlVTX0lfR0FTU19DT1BZX0RFQlVHCistCWdsb2J1 c19saWJjX2ZwcmludGYoc3RkZXJyLCAiZ2xvYnVzX2xfZ2Fzc19jb3B5X2dlbmVyaWNfY2FuY2Vs KCk6XG4iKTsKKy0JZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisrICAgICAgICBnbG9idXNf bGliY19mcHJpbnRmKHN0ZGVyciwgImdsb2J1c19sX2dhc3NfY29weV9nZW5lcmljX2NhbmNlbCgp OlxuIik7CisrICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAg ICAiICAgICAuLi5jaGVjayB0byBjYWxsIHVzZXIvY2FuY2VsIGNhbGxiYWNrcy5cbiIpOworICNl bmRpZgorIAorLQkvKiBzZXQgdGhlIGZpbmFsIHN0YXR1cyBvZiB0aGUgdHJhbnNmZXIgKi8KKy0J c3dpdGNoKGhhbmRsZS0+c3RhdHVzKQorLQl7CistCWNhc2UgR0xPQlVTX0dBU1NfQ09QWV9TVEFU VVNfRkFJTFVSRToKKy0JICBoYW5kbGUtPnN0YXR1cyA9IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVT X0RPTkVfRkFJTFVSRTsKKy0JICBicmVhazsKKy0JY2FzZSBHTE9CVVNfR0FTU19DT1BZX1NUQVRV U19DQU5DRUw6CistCSAgaGFuZGxlLT5zdGF0dXMgPSBHTE9CVVNfR0FTU19DT1BZX1NUQVRVU19E T05FX0NBTkNFTExFRDsKKy0JICBicmVhazsKKy0JZGVmYXVsdDoKKy0JICBicmVhazsKKy0JfQor KyAgICAgICAgLyogc2V0IHRoZSBmaW5hbCBzdGF0dXMgb2YgdGhlIHRyYW5zZmVyICovCisrICAg ICAgICBzd2l0Y2goaGFuZGxlLT5zdGF0dXMpCisrICAgICAgICB7CisrICAgICAgICBjYXNlIEdM T0JVU19HQVNTX0NPUFlfU1RBVFVTX0ZBSUxVUkU6CisrICAgICAgICAgIGhhbmRsZS0+c3RhdHVz ID0gR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfRE9ORV9GQUlMVVJFOworKyAgICAgICAgICBicmVh azsKKysgICAgICAgIGNhc2UgR0xPQlVTX0dBU1NfQ09QWV9TVEFUVVNfQ0FOQ0VMOgorKyAgICAg ICAgICBoYW5kbGUtPnN0YXR1cyA9IEdMT0JVU19HQVNTX0NPUFlfU1RBVFVTX0RPTkVfQ0FOQ0VM TEVEOworKyAgICAgICAgICBicmVhazsKKysgICAgICAgIGRlZmF1bHQ6CisrICAgICAgICAgIGJy ZWFrOworKyAgICAgICAgfQorIAorICAgICAgICAgZXJyID0gaGFuZGxlLT5lcnI7CistCWhhbmRs ZS0+ZXJyID0gR0xPQlVTX05VTEw7CistCQorLQlpZihjYW5jZWxfY2FsbGJhY2sgIT0gR0xPQlVT X05VTEwpCisrICAgICAgICBoYW5kbGUtPmVyciA9IEdMT0JVU19OVUxMOworKworKyAgICAgICAg aWYoY2FuY2VsX2NhbGxiYWNrICE9IEdMT0JVU19OVUxMKQorICAgICAgICAgeworICNpZmRlZiBH TE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKy0JZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRlcnIsCisr ICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAiICAgICAg ICAuLi5jYWxsaW5nIHVzZXIgY2FuY2VsIGNhbGxiYWNrLlxuIik7CisgI2VuZGlmCistCSAgICBj YW5jZWxfY2FsbGJhY2soCistCQloYW5kbGUtPmNhbmNlbF9jYWxsYmFja19hcmcsCistCQloYW5k bGUsCistCQllcnIpOworKyAgICAgICAgICAgIGNhbmNlbF9jYWxsYmFjaygKKysgICAgICAgICAg ICAgICAgaGFuZGxlLT5jYW5jZWxfY2FsbGJhY2tfYXJnLAorKyAgICAgICAgICAgICAgICBoYW5k bGUsCisrICAgICAgICAgICAgICAgIGVycik7CisgICAgICAgICB9CisgCistCWlmKHVzZXJfY2Fs bGJhY2sgIT0gR0xPQlVTX05VTEwpCisrICAgICAgICBpZih1c2VyX2NhbGxiYWNrICE9IEdMT0JV U19OVUxMKQorICAgICAgICAgeworICNpZmRlZiBHTE9CVVNfSV9HQVNTX0NPUFlfREVCVUcKKy0J ICAgIGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAiICAgICAgICAuLi5jYWxsaW5nIHVzZXIg Y2FsbGJhY2suXG4iKTsKKysgICAgICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwg IiAgICAgICAgLi4uY2FsbGluZyB1c2VyIGNhbGxiYWNrLlxuIik7CisgI2VuZGlmCistCSAgICB1 c2VyX2NhbGxiYWNrKAorLQkJaGFuZGxlLT5jYWxsYmFja19hcmcsCistCQloYW5kbGUsCistCQll cnIpOworKyAgICAgICAgICAgIHVzZXJfY2FsbGJhY2soCisrICAgICAgICAgICAgICAgIGhhbmRs ZS0+Y2FsbGJhY2tfYXJnLAorKyAgICAgICAgICAgICAgICBoYW5kbGUsCisrICAgICAgICAgICAg ICAgIGVycik7CisgICAgICAgICB9CistCS8qIGlmIGFuIGVycm9yIG9iamVjdCB3YXMgY3JlYXRl ZCwgZnJlZSBpdCAqLworKyAgICAgICAgLyogaWYgYW4gZXJyb3Igb2JqZWN0IHdhcyBjcmVhdGVk LCBmcmVlIGl0ICovCisgCisgICAgICAgICBpZiAoZXJyKQorICAgICAgICAgeworLQkgICAgZ2xv YnVzX29iamVjdF9mcmVlKGVycik7CisrICAgICAgICAgICAgZ2xvYnVzX29iamVjdF9mcmVlKGVy cik7CisgICAgICAgICB9CisgCisgICAgIH0gLyogaWYgKGFsbF9kb25lKSAqLworQEAgLTY4MjQs MjEgKzY4MjQsMjEgQEAgZ2xvYnVzX2lfZ2Fzc19jb3B5X2F0dHJfZHVwbGljYXRlKGdsb2J1c19n YXNzX2NvcHlfYXR0cl90ICoqIGF0dHIpCisgCisgICAgIGlmICggKGF0dHIgPT0gR0xPQlVTX05V TEwpIHx8ICgqYXR0ciA9PSBHTE9CVVNfTlVMTCkgKQorICAgICB7CistCWVyciA9IGdsb2J1c19l cnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorLQkgICAgR0xPQlVTX0dBU1NfQ09QWV9NT0RVTEUsCist CSAgICBHTE9CVVNfTlVMTCwKKy0JICAgICJbJXNdOiBCQURfUEFSQU1FVEVSLCBhdHRyPT1HTE9C VVNfTlVMTCwgb3IgKmF0dHI9PUdMT0JVU19OVUxMIiwKKy0JICAgIG15bmFtZSk7CisrICAgICAg ICBlcnIgPSBnbG9idXNfZXJyb3JfY29uc3RydWN0X3N0cmluZygKKysgICAgICAgICAgICBHTE9C VVNfR0FTU19DT1BZX01PRFVMRSwKKysgICAgICAgICAgICBHTE9CVVNfTlVMTCwKKysgICAgICAg ICAgICAiWyVzXTogQkFEX1BBUkFNRVRFUiwgYXR0cj09R0xPQlVTX05VTEwsIG9yICphdHRyPT1H TE9CVVNfTlVMTCIsCisrICAgICAgICAgICAgbXluYW1lKTsKKyAKKy0JcmV0dXJuIGdsb2J1c19l cnJvcl9wdXQoZXJyKTsKKysgICAgICAgIHJldHVybiBnbG9idXNfZXJyb3JfcHV0KGVycik7Cisg ICAgIH0KKyAKKyAgICAgbmV3X2F0dHIgPSAoZ2xvYnVzX2dhc3NfY29weV9hdHRyX3QgKikKKy0J Z2xvYnVzX2xpYmNfbWFsbG9jKHNpemVvZihnbG9idXNfZ2Fzc19jb3B5X2F0dHJfdCkpOworKyAg ICAgICAgZ2xvYnVzX2xpYmNfbWFsbG9jKHNpemVvZihnbG9idXNfZ2Fzc19jb3B5X2F0dHJfdCkp OworICAgICBnbG9idXNfZ2Fzc19jb3B5X2F0dHJfaW5pdChuZXdfYXR0cik7CisgCisgICAgIG5l d19mdHBfYXR0ciA9IChnbG9idXNfZnRwX2NsaWVudF9vcGVyYXRpb25hdHRyX3QgKikKKy0JZ2xv YnVzX2xpYmNfbWFsbG9jKHNpemVvZihnbG9idXNfZnRwX2NsaWVudF9vcGVyYXRpb25hdHRyX3Qp KTsKKysgICAgICAgIGdsb2J1c19saWJjX21hbGxvYyhzaXplb2YoZ2xvYnVzX2Z0cF9jbGllbnRf b3BlcmF0aW9uYXR0cl90KSk7CisgCisgICAgIGdsb2J1c19mdHBfY2llbnRfYXR0cl9jb3B5KG5l d19mdHBfYXR0ciwgKihhdHRyKS0+ZnRwX2F0dHIpOworICAgICAvKiBuZXdfYXR0ciA9ICphdHRy OyAqLworZGlmZiAtLWdpdCBhL2dhc3MvY29weS9zb3VyY2UvZ2xvYnVzX3VybF9jb3B5LmMgYi9n YXNzL2NvcHkvc291cmNlL2dsb2J1c191cmxfY29weS5jCitpbmRleCBjNDBkNDU5YjYuLjlhZDk5 MjkwOSAxMDA2NDQKKy0tLSBhL2dhc3MvY29weS9zb3VyY2UvZ2xvYnVzX3VybF9jb3B5LmMKKysr KyBiL2dhc3MvY29weS9zb3VyY2UvZ2xvYnVzX3VybF9jb3B5LmMKK0BAIC0xMjEsNyArMTIxLDcg QEAgaW50IGd1Y19nZW5jZXJ0KGdzc19idWZmZXJfZGVzYyAqIGJ1ZikKKyAgICAgRVZQX1BLRVkg KnBrZXkgPSBOVUxMOworICAgICBCSU8gKmJpbzsKKyAgICAgY2hhciAqcHRyOworLSAgICAKKysK KyAgICAgZ3VjX21rY2VydCgmeDUwOSwgJnBrZXksIDIwNDgsIDAsIDEwMCk7CisgCisgICAgIGJp byA9IEJJT19uZXcoQklPX3NfbWVtKCkpOworQEAgLTEzMiwxNyArMTMyLDE3IEBAIGludCBndWNf Z2VuY2VydChnc3NfYnVmZmVyX2Rlc2MgKiBidWYpCisgCisgICAgIFg1MDlfZnJlZSh4NTA5KTsK KyAgICAgRVZQX1BLRVlfZnJlZShwa2V5KTsKKy0gICAKKysKKyAgICAgYnVmLT5sZW5ndGggPSBC SU9fZ2V0X21lbV9kYXRhKGJpbywgJnB0cik7CisgICAgIGJ1Zi0+dmFsdWUgPSBzdHJkdXAocHRy KTsKKyAgICAgQklPX2ZyZWUoYmlvKTsKKyAKKyAgICAgcmV0dXJuIDA7CisgfQorLSAgICAKKyAK Ky0gICAgICAgIAorLSAgICAgICAgCisrCisrCisrCisgI2RlZmluZSBHVUNfVVJMX0VOQ19DSEFS ICIjOzo9KyAsIgorIAorIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKK0BAIC0xNTksNyArMTU5LDcg QEAgdHlwZWRlZiBzdHJ1Y3QKKyAgICAgdm9sYXRpbGUgZ2xvYnVzX2Jvb2xfdCAgICAgICAgICAg ICAgZG9uZTsKKyB9IGdsb2J1c19sX2d1Y19tb25pdG9yX3Q7CisgCistdHlwZWRlZiBzdHJ1Y3Qg CisrdHlwZWRlZiBzdHJ1Y3QKKyB7CisgICAgIGdsb2J1c19nYXNzX2NvcHlfZ2xvYl9lbnRyeV90 ICAgICAgIHR5cGU7CisgICAgIGNoYXIgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVy bDsKK0BAIC0xNjksNyArMTY5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QKKyAgICAgY2hhciAqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tzdW07CisgfSBnbG9idXNfbF9ndWNfdXJsX2lu Zm9fdDsKKyAKKy10eXBlZGVmIHN0cnVjdCAKKyt0eXBlZGVmIHN0cnVjdAorIHsKKyAgICAgY2hh ciAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjX3VybDsKKyAgICAgY2hhciAqICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X3VybDsKK0BAIC0xODQsMTQgKzE4NCwxNCBA QCB0eXBlZGVmIHN0cnVjdCBnbG9idXNfbF9ndWNfaGFuZGxlX3MKKyAgICAgZ2xvYnVzX2dhc3Nf Y29weV9oYW5kbGVfdCAgICAgICAgICAgY2tzbV9nYXNzX2NvcHlfaGFuZGxlOworIAorICAgICBn bG9idXNfZ2Fzc19jb3B5X2F0dHJfdCAgICAgICAgICAgICBzb3VyY2VfZ2Fzc19jb3B5X2F0dHI7 CistICAgIGdsb2J1c19nYXNzX2NvcHlfYXR0cl90ICAgICAgICAgICAgIGRlc3RfZ2Fzc19jb3B5 X2F0dHI7ICAgIAorLSAgICAKKysgICAgZ2xvYnVzX2dhc3NfY29weV9hdHRyX3QgICAgICAgICAg ICAgZGVzdF9nYXNzX2NvcHlfYXR0cjsKKysKKyAgICAgZ2xvYnVzX2Z0cF9jbGllbnRfb3BlcmF0 aW9uYXR0cl90ICAgc291cmNlX2Z0cF9hdHRyOworICAgICBnbG9idXNfZnRwX2NsaWVudF9vcGVy YXRpb25hdHRyX3QgICBkZXN0X2Z0cF9hdHRyOworIAorICAgICBnbG9idXNfZ2Fzc190cmFuc2Zl cl9yZXF1ZXN0YXR0cl90ICBzb3VyY2VfZ2Fzc19hdHRyOworICAgICBnbG9idXNfZ2Fzc190cmFu c2Zlcl9yZXF1ZXN0YXR0cl90ICBkZXN0X2dhc3NfYXR0cjsKKy0gICAgCisrCisgICAgIHZvaWQg KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1Y19pbmZvOworICAgICB2b2lkICogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50X3RyYW5zZmVyOworICAgICBnbG9idXNf bF9ndWNfc3JjX2RzdF9wYWlyX3QgKiAgICAgICBwaXBlbGluZV9mcmVlX3BhaXI7CitAQCAtMTk5 LDcgKzE5OSw3IEBAIHR5cGVkZWYgc3RydWN0IGdsb2J1c19sX2d1Y19oYW5kbGVfcworICAgICBp bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDsKKyB9IGdsb2J1c19sX2d1Y19o YW5kbGVfdDsKKyAKKy10eXBlZGVmIHN0cnVjdCAKKyt0eXBlZGVmIHN0cnVjdAorIHsKKyAgICAg Z2xvYnVzX2ZpZm9fdCAgICAgICAgICAgICAgICAgICAgICAgdXNlcl91cmxfbGlzdDsKKyAgICAg Z2xvYnVzX2ZpZm9fdCAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWRfdXJsX2xpc3Q7CitA QCAtMjM0LDExICsyMzQsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QKKyAgICAgaW50ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmVzdGFydF90aW1lb3V0OworICAgICBpbnQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdGFsbF90aW1lb3V0OworICAgICBnbG9idXNfc2l6ZV90 ICAgICAgICAgICAgICAgICAgICAgICBzdHJpcGVfYnM7CistICAgIGdsb2J1c19ib29sX3QJCQkg ICAgICAgICAgICBzdHJpcGVkOworLSAgICBnbG9idXNfYm9vbF90CQkJICAgICAgICAgICAgcmZj MTczODsKKy0gICAgZ2xvYnVzX2Jvb2xfdAkJCSAgICAgICAgICAgIGNyZWF0ZV9kZXN0OworLSAg ICBnbG9idXNfb2ZmX3QJCQkgICAgICAgICAgICBwYXJ0aWFsX29mZnNldDsKKy0gICAgZ2xvYnVz X29mZl90CQkJICAgICAgICAgICAgcGFydGlhbF9sZW5ndGg7CisrICAgIGdsb2J1c19ib29sX3Qg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZWQ7CisrICAgIGdsb2J1c19i b29sX3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJmYzE3Mzg7CisrICAgIGds b2J1c19ib29sX3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZV9kZXN0 OworKyAgICBnbG9idXNfb2ZmX3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw YXJ0aWFsX29mZnNldDsKKysgICAgZ2xvYnVzX29mZl90ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGFydGlhbF9sZW5ndGg7CisgICAgIGdsb2J1c19ib29sX3QgICAgICAgICAg ICAgICAgICAgICAgIGxpc3RfdXNlc19kYXRhX21vZGU7CisgICAgIGdsb2J1c19ib29sX3QgICAg ICAgICAgICAgICAgICAgICAgIHVkdDsKKyAgICAgZ2xvYnVzX2Jvb2xfdCAgICAgICAgICAgICAg ICAgICAgICAgbmxfYm90dGxlbmVjazsKK0BAIC0yNjUsNyArMjY1LDcgQEAgdHlwZWRlZiBzdHJ1 Y3QKKyAgICAgY2hhciAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0X2F1dGh6X2Fz c2VydDsKKyAgICAgZ2xvYnVzX2Jvb2xfdCAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfc3Jj X2F1dGh6X2Fzc2VydDsKKyAgICAgZ2xvYnVzX2Jvb2xfdCAgICAgICAgICAgICAgICAgICAgICAg Y2FjaGVfZHN0X2F1dGh6X2Fzc2VydDsKKy0gICAgICAgIAorKworICAgICBnc3NfY3JlZF9pZF90 ICAgICAgICAgICAgICAgICAgICAgICBzcmNfY3JlZDsKKyAgICAgZ3NzX2NyZWRfaWRfdCAgICAg ICAgICAgICAgICAgICAgICAgZHN0X2NyZWQ7CisgICAgIGdzc19jcmVkX2lkX3QgICAgICAgICAg ICAgICAgICAgICAgIGRhdGFfY3JlZDsKK0BAIC0yODMsNyArMjgzLDcgQEAgdHlwZWRlZiBzdHJ1 Y3QKKyAgICAgZ2xvYnVzX2xfZ3VjX2hhbmRsZV90ICoqICAgICAgICAgICAgaGFuZGxlczsKKyAg ICAgZ2xvYnVzX2Jvb2xfdCAgICAgICAgICAgICAgICAgICAgICAgY29tcF9jaGVja3N1bTsKKyAg ICAgY2hhciAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tzdW1fYWxnbzsKKy0g ICAgCisrCisgfSBnbG9idXNfbF9ndWNfaW5mb190OworIAorIHR5cGVkZWYgc3RydWN0IGdsb2J1 c19sX2d1Y190cmFuc2Zlcl9zCitAQCAtMzEwLDcgKzMxMCw3IEBAIGVudW0KKyAgICAgR0xPQlVT X0xfR1VDX0RBVEUgPSAyLAorICAgICBHTE9CVVNfTF9HVUNfQ0tTTSA9IDMKKyB9IGdsb2J1c19s X2d1Y19zeW5jX2xldmVsX3Q7CistICAgICAgICAgICAgCisrCisgCisgc3RhdGljIGdsb2J1c19o YXNodGFibGVfdCAgICAgICAgICAgICAgIGd1Y19sX2FsaWFzX3RhYmxlOworIHN0YXRpYyBnbG9i dXNfYm9vbF90ICAgICAgICAgICAgICAgICAgICBndWNfbF9hbGlhc2VzID0gR0xPQlVTX0ZBTFNF OworQEAgLTMyMyw3ICszMjMsNyBAQCBzdGF0aWMgZ3NzX2J1ZmZlcl9kZXNjICAgICAgICAgICAg ICAgICAgYXV0b19kYXRhID0gR1NTX0NfRU1QVFlfQlVGRkVSOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgTW9kdWxlIHNwZWNpZmljIHByb3RvdHlwZXMKKyAqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KKyAKKy1zdGF0aWMgCisrc3RhdGljCisgdm9pZAorIGdsb2J1c19sX3VybF9jb3B5X21vbml0 b3JfY2FsbGJhY2sodm9pZCAqIGNhbGxiYWNrX2FyZywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnbG9idXNfZ2Fzc19jb3B5X2hhbmRsZV90ICogaGFuZGxlLAorQEAgLTM1 MSwxMyArMzUxLDEzIEBAIGdsb2J1c19sX2d1Y19kZXN0X2VudHJ5X2NiKAorICAgICBjb25zdCBj aGFyICogICAgICAgICAgICAgICAgICAgICAgICAgdXJsLAorICAgICBjb25zdCBnbG9idXNfZ2Fz c19jb3B5X2dsb2Jfc3RhdF90ICogaW5mb19zdGF0LAorICAgICB2b2lkICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdXNlcl9hcmcpOworLSAgICAgICAKKysKKyBzdGF0aWMKKyBnbG9i dXNfcmVzdWx0X3QKKyBnbG9idXNfbF9ndWNfZmlsZV90b19zdHJpbmcoCisgICAgIGNoYXIgKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSwKKyAgICAgY2hhciAqKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cik7CistIAorKworIHN0YXRpYworIGludAorIGds b2J1c19sX2d1Y19wYXJzZV9hcmd1bWVudHMoCitAQCAtMzkwLDcgKzM5MCw3IEBAIHN0YXRpYwor IGludAorIGdsb2J1c19sX2d1Y19pbml0X2dhc3NfY29weV9oYW5kbGUoCisgICAgIGdsb2J1c19n YXNzX2NvcHlfaGFuZGxlX3QgKiAgICAgICAgICAgICAgICAgICAgIGdhc3NfY29weV9oYW5kbGUs CistICAgIGdsb2J1c19sX2d1Y19pbmZvX3QgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1 Y19pbmZvLCAKKysgICAgZ2xvYnVzX2xfZ3VjX2luZm9fdCAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ3VjX2luZm8sCisgICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlkKTsKKyAKKyBzdGF0aWMKK0BAIC00MTQsMTggKzQxNCwxOCBAQCBzdGF0 aWMKKyB2b2lkCisgZ2xvYnVzX2xfZ3VjX2luZm9fZGVzdHJveSgKKyAgICAgZ2xvYnVzX2xfZ3Vj X2luZm9fdCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VjX2luZm8pOworLSAgICAKKysK KyBzdGF0aWMKKyB2b2lkCisgZ2xvYnVzX2xfZ3VjX2Rlc3Ryb3lfdXJsX2xpc3QoCisgICAgIGds b2J1c19maWZvX3QgKiAgICAgICAgICAgICAgICAgICAgIHVybF9saXN0KTsKKyAKKy1zdGF0aWMg Cisrc3RhdGljCisgdm9pZAorIGdsb2J1c19sX2d1Y19oYXNodGFibGVfZWxlbWVudF9mcmVlKAor ICAgICB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXR1bSk7CisgCistc3Rh dGljIAorK3N0YXRpYworIHZvaWQKKyBnbG9idXNfbF9ndWNfdXJsX2luZm9fZnJlZSgKKyAgICAg dm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0dW0pOworQEAgLTQ5NiwyMyAr NDk2LDIzIEBAIGNvbnN0IGNoYXIgKiBsb25nX3VzYWdlID0KKyAiICAgICAgIENvbnZlcnQgdGhl IGZpbGUgdG8vZnJvbSBBU0NJSSBmb3JtYXQgdG8vZnJvbSBsb2NhbCBmaWxlIGZvcm1hdFxuIgor ICIgIC1iIHwgLWJpbmFyeVxuIgorICIgICAgICAgRG8gbm90IGFwcGx5IGFueSBjb252ZXJzaW9u IHRvIHRoZSBmaWxlcy4gKmRlZmF1bHQqXG4iCistIiAgLWYgPGZpbGVuYW1lPlxuIiAKKysiICAt ZiA8ZmlsZW5hbWU+XG4iCisgIiAgICAgICBSZWFkIGEgbGlzdCBvZiB1cmwgcGFpcnMgZnJvbSBm aWxlbmFtZS4gIEVhY2ggbGluZSBzaG91bGQgY29udGFpblxuIgorICIgICAgICAgPHNvdXJjZVVS TD4gPGRlc3RVUkw+XG4iCisgIiAgICAgICBFbmNsb3NlIFVSTHMgd2l0aCBzcGFjZXMgaW4gZG91 YmxlIHF1b3RlcyAoXCIpLlxuIgorICIgICAgICAgQmxhbmsgbGluZXMgYW5kIGxpbmVzIGJlZ2lu bmluZyB3aXRoICMgd2lsbCBiZSBpZ25vcmVkLlxuIgorLSIgIC1jZCB8IC1jcmVhdGUtZGVzdFxu IiAKKysiICAtY2QgfCAtY3JlYXRlLWRlc3RcbiIKKyAiICAgICAgIENyZWF0ZSBkZXN0aW5hdGlv biBkaXJlY3RvcnkgaWYgbmVlZGVkXG4iCistIiAgLXIgfCAtcmVjdXJzZVxuIiAKKysiICAtciB8 IC1yZWN1cnNlXG4iCisgIiAgICAgICBDb3B5IGZpbGVzIGluIHN1YmRpcmVjdG9yaWVzXG4iCist ICAgCistIiAgLWZhc3RcbiIgCisrCisrIiAgLWZhc3RcbiIKKyAiICAgICAgIFJlY29tbWVuZGVk IHdoZW4gdXNpbmcgR3JpZEZUUCBzZXJ2ZXJzLiBVc2UgTU9ERSBFIGZvciBhbGwgZGF0YVxuIgor ICIgICAgICAgdHJhbnNmZXJzLCBpbmNsdWRpbmcgcmV1c2luZyBkYXRhIGNoYW5uZWxzIGJldHdl ZW4gbGlzdCBhbmQgdHJhbnNmZXJcbiIKKyAiICAgICAgIG9wZXJhdGlvbnMuXG4iCisgIiAgLXQg PHRyYW5zZmVyIHRpbWUgaW4gc2Vjb25kcz5cbiIKKyAiICAgICAgIFJ1biB0aGUgdHJhbnNmZXIg Zm9yIHRoaXMgbnVtYmVyIG9mIHNlY29uZHMgYW5kIHRoZW4gZW5kLlxuIgorLSIgICAgICAgVXNl ZnVsIGZvciBwZXJmb3JtYW5jZSB0ZXN0aW5nIG9yIGZvcmNlZCByZXN0YXJ0IGxvb3BzLlxuIiAg IAorKyIgICAgICAgVXNlZnVsIGZvciBwZXJmb3JtYW5jZSB0ZXN0aW5nIG9yIGZvcmNlZCByZXN0 YXJ0IGxvb3BzLlxuIgorICIgIC1xIHwgLXF1aWV0IFxuIgorICIgICAgICAgU3VwcHJlc3MgYWxs IG91dHB1dCBmb3Igc3VjY2Vzc2Z1bCBvcGVyYXRpb25cbiIKKyAiICAtdiB8IC12ZXJib3NlIFxu IgorQEAgLTUzMyw3ICs1MzMsNyBAQCBjb25zdCBjaGFyICogbG9uZ191c2FnZSA9CisgIiAgICAg ICBUaGUgaW50ZXJ2YWwgaW4gc2Vjb25kcyB0byB3YWl0IGFmdGVyIGEgZmFpbHVyZSBiZWZvcmUg cmV0cnlpbmdcbiIKKyAiICAgICAgIHRoZSB0cmFuc2Zlci4gIFVzZSAwIGZvciBhbiBleHBvbmVu dGlhbCBiYWNrIG9mZi4gIERlZmF1bHQgaXMgMC5cbiIKKyAiICAtcnN0LXRpbWVvdXQgPHNlY29u ZHM+XG4iCistIiAgICAgICBNYXhpbXVtIHRpbWUgYWZ0ZXIgYSBmYWlsdXJlIHRvIGtlZXAgcmV0 cnlpbmcuICBVc2UgMCBmb3Igbm9cbiIgCisrIiAgICAgICBNYXhpbXVtIHRpbWUgYWZ0ZXIgYSBm YWlsdXJlIHRvIGtlZXAgcmV0cnlpbmcuICBVc2UgMCBmb3Igbm9cbiIKKyAiICAgICAgIHRpbWVv dXQuICBEZWZhdWx0IGlzIDAuXG4iCisgIiAgLXN0YWxsLXRpbWVvdXQgfCAtc3QgPHNlY29uZHM+ XG4iCisgIiAgICAgICBIb3cgbG9uZyBiZWZvcmUgY2FuY2VsaW5nL3Jlc3RhcnRpbmcgYSB0cmFu c2ZlciB3aXRoIG5vIGRhdGFcbiIKK0BAIC01NTUsNyArNTU1LDcgQEAgY29uc3QgY2hhciAqIGxv bmdfdXNhZ2UgPQorICIgICAgICB1c2VyJ3Mgc3RhcnRpbmcgZGlyZWN0b3J5IG9uIHRoZSBzZXJ2 ZXIuICBCeSBkZWZhdWx0LCBhbGwgcGF0aHMgYXJlXG4iCisgIiAgICAgIHJvb3QtcmVsYXRpdmUu ICBXaGVuIHRoaXMgZmxhZyBpcyBzZXQsIHRoZSBwYXRoIHBvcnRpb24gb2YgdGhlIGZ0cCB1cmxc biIKKyAiICAgICAgbXVzdCBzdGFydCB3aXRoICUlMkYgaWYgaXQgZGVzaWduYXRlcyBhIHJvb3Qt cmVsYXRpdmUgcGF0aC5cbiIKKy0gICAKKysKKyAiICAtcyAgPHN1YmplY3Q+IHwgLXN1YmplY3Qg PHN1YmplY3Q+XG4iCisgIiAgICAgICBVc2UgdGhpcyBzdWJqZWN0IHRvIG1hdGNoIHdpdGggYm90 aCB0aGUgc291cmNlIGFuZCBkZXN0IHNlcnZlcnNcbiIKKyAiICAtc3MgPHN1YmplY3Q+IHwgLXNv dXJjZS1zdWJqZWN0IDxzdWJqZWN0PlxuIgorQEAgLTU3MCw3ICs1NzAsNyBAQCBjb25zdCBjaGFy ICogbG9uZ191c2FnZSA9CisgIiAgICAgICB1bmRlcmx5aW5nIHRyYW5zZmVyIG1ldGhvZHNcbiIK KyAiICAtcCA8cGFyYWxsZWxpc20+IHwgLXBhcmFsbGVsIDxwYXJhbGxlbGlzbT5cbiIKKyAiICAg ICAgIHNwZWNpZnkgdGhlIG51bWJlciBvZiBwYXJhbGxlbCBkYXRhIGNvbm5lY3Rpb25zIHNob3Vs ZCBiZSB1c2VkLlxuIgorLSAgIAorKworICIgIC1ub3RwdCB8IC1uby10aGlyZC1wYXJ0eS10cmFu c2ZlcnNcbiIKKyAiICAgICAgIHR1cm4gdGhpcmQtcGFydHkgdHJhbnNmZXJzIG9mZiAob24gYnkg ZGVmYXVsdClcbiIKKyAiICAtbm9kY2F1IHwgLW5vLWRhdGEtY2hhbm5lbC1hdXRoZW50aWNhdGlv blxuIgorQEAgLTU3OSw3ICs1NzksNyBAQCBjb25zdCBjaGFyICogbG9uZ191c2FnZSA9CisgIiAg ICAgICBzZXQgZGF0YSBjaGFubmVsIHByb3RlY3Rpb24gbW9kZSB0byBTQUZFXG4iCisgIiAgLWRj cHJpdiB8IC1kYXRhLWNoYW5uZWwtcHJpdmF0ZVxuIgorICIgICAgICAgc2V0IGRhdGEgY2hhbm5l bCBwcm90ZWN0aW9uIG1vZGUgdG8gUFJJVkFURVxuIgorLSAgIAorKworICIgIC1vZmYgfCAtcGFy dGlhbC1vZmZzZXRcbiIKKyAiICAgICAgIG9mZnNldCBmb3IgcGFydGlhbCBmdHAgZmlsZSB0cmFu c2ZlcnMsIGRlZmF1bHRzIHRvIDBcbiIKKyAiICAtbGVuIHwgLXBhcnRpYWwtbGVuZ3RoXG4iCitA QCAtNTk2LDcgKzU5Niw3IEBAIGNvbnN0IGNoYXIgKiBsb25nX3VzYWdlID0KKyAiICAtaXB2Nlxu IgorICIgICAgICAgdXNlIGlwdjYgd2hlbiBhdmFpbGFibGUgKEVYUEVSSU1FTlRBTClcbiIKKyAi ICAtdWR0XG4iCistIiAgICAgICBVc2UgVURULCBhIHJlbGlhYmxlIHVkcCBiYXNlZCB0cmFuc3Bv cnQgcHJvdG9jb2wsIGZvciBkYXRhIHRyYW5zZmVyc1xuIiAKKysiICAgICAgIFVzZSBVRFQsIGEg cmVsaWFibGUgdWRwIGJhc2VkIHRyYW5zcG9ydCBwcm90b2NvbCwgZm9yIGRhdGEgdHJhbnNmZXJz XG4iCisgIiAgLW5vLWcyIHwgLW5vZ3JpZGZ0cDJcbiIKKyAiICAgICAgIGRpc2FibGUgdXNlIG9m IEdyaWRGVFAgdjIgcHJvdG9jb2wgZW5oYW5jZW1lbnRzXG4iCisgIiAgLWRwIHwgLWRlbGF5ZWQt cGFzdlxuIgorQEAgLTYyMSwxMyArNjIxLDEzIEBAIGNvbnN0IGNoYXIgKiBsb25nX3VzYWdlID0K KyAiICAgICAgaW4gYSBHcmlkRlRQIHRyYW5zZmVyXG4iCisgIiAgLWFhIHwgLWF1dGh6LWFzc2Vy dCA8YXV0aG9yaXphdGlvbiBhc3NlcnRpb24gZmlsZT5cbiIKKyAiICAgICAgVXNlIHRoZSBhc3Nl cnRpb25zIGluIHRoaXMgZmlsZSB0byBhdXRob3JpemUgdGhlIGFjY2VzcyB3aXRoIGJvdGhcbiIK Ky0iICAgICAgc291cmNlIGFuZCBkZXN0IHNlcnZlcnNcbiIgCisrIiAgICAgIHNvdXJjZSBhbmQg ZGVzdCBzZXJ2ZXJzXG4iCisgIiAgLXNhYSB8IC1zcmMtYXV0aHotYXNzZXJ0IDxhdXRob3JpemF0 aW9uIGFzc2VydGlvbiBmaWxlPlxuIgorICIgICAgICBVc2UgdGhlIGFzc2VydGlvbnMgaW4gdGhp cyBmaWxlIHRvIGF1dGhvcml6ZSB0aGUgYWNjZXNzIHdpdGggc291cmNlXG4iCistIiAgICAgIHNl cnZlclxuIiAKKysiICAgICAgc2VydmVyXG4iCisgIiAgLWRhYSB8IC1kc3QtYXV0aHotYXNzZXJ0 IDxhdXRob3JpemF0aW9uIGFzc2VydGlvbiBmaWxlPlxuIgorICIgICAgICBVc2UgdGhlIGFzc2Vy dGlvbnMgaW4gdGhpcyBmaWxlIHRvIGF1dGhvcml6ZSB0aGUgYWNjZXNzIHdpdGggZGVzdFxuIgor LSIgICAgICBzZXJ2ZXJcbiIgCisrIiAgICAgIHNlcnZlclxuIgorICIgIC1jYWNoZS1hYSB8IC1j YWNoZS1hdXRoei1hc3NlcnRcbiIKKyAiICAgICAgQ2FjaGUgdGhlIGF1dGh6IGFzc2VydGlvbiBm b3Igc3Vic2VxdWVudCB0cmFuc2ZlcnNcbiIKKyAiICAtY2FjaGUtc2FhIHwgLWNhY2hlLXNyYy1h dXRoei1hc3NlcnRcbiIKK0BAIC02ODAsNyArNjgwLDcgQEAgY29uc3QgY2hhciAqIGxvbmdfdXNh Z2UgPQorICIgICAgIFNldCB0aGUgY3JlZGVudGlhbHMgdG8gdXNlIGZvciBzb3VyY2UsIGRlc3Rp bmF0aW9uLCBcbiIKKyAiICAgICBvciBib3RoIGZ0cCBjb25uZWN0aW9ucy5cbiIKKyAiICAtZGF0 YS1jcmVkIDxwYXRoIHRvIGNyZWRlbnRpYWxzIG9yIHByb3h5IGZpbGU+XG4iCistIiAgICAgU2V0 IHRoZSBjcmVkZW50aWFsIHRvIHVzZSBmb3IgZGF0YSBjb25uZWN0aW9uLiAgQSB2YWx1ZSBvZiAn YXV0bycgd2lsbFxuIiAKKysiICAgICBTZXQgdGhlIGNyZWRlbnRpYWwgdG8gdXNlIGZvciBkYXRh IGNvbm5lY3Rpb24uICBBIHZhbHVlIG9mICdhdXRvJyB3aWxsXG4iCisgIiAgICAgZ2VuZXJhdGUg YSB0ZW1wb3Jhcnkgc2VsZi1zaWduZWQgY3JlZGVudGlhbC4gIFRoaXMgbWF5IGJlIHVzZWQgd2l0 aFxuIgorICIgICAgIGFueSBhdXRoZW50aWNhdGlvbiBtZXRob2QsIGJ1dCB0aGUgc2VydmVyIG11 c3Qgc3VwcG9ydCB0aGUgRENTQyBjb21tYW5kLlxuIgorICIgIC1hZiA8ZmlsZW5hbWU+IHwgLWFs aWFzLWZpbGUgPGZpbGVuYW1lPlxuIgorQEAgLTc0Nyw3ICs3NDcsNyBAQCB0aGlzIGZlYXR1cmUg aGFzIG5vdCB5ZXQgYmVlbiBpbXBsZW1lbnRlZC4KKyAgICAgZXhpdCgxKTsgXAorIH0KKyAKKy1z dGF0aWMgCisrc3RhdGljCisgaW50CisgdGVzdF9pbnRlZ2VyKCBjaGFyICogICB2YWx1ZSwKKyAg ICAgICAgICAgICAgIHZvaWQgKiAgIGlnbm9yZWQsCitAQCAtNzU5LDExICs3NTksMTEgQEAgdGVz dF9pbnRlZ2VyKCBjaGFyICogICB2YWx1ZSwKKyAgICAgcmV0dXJuIHJlczsKKyB9CisgCistZW51 bSAKKy17IAorLSAgICBhcmdfYSA9IDEsIAorLSAgICBhcmdfYiwgCistICAgIGFyZ19jLCAKKytl bnVtCisreworKyAgICBhcmdfYSA9IDEsCisrICAgIGFyZ19iLAorKyAgICBhcmdfYywKKyAgICAg YXJnX2V4dCwKKyAgICAgYXJnX3BsdWdpbiwKKyAgICAgYXJnX21jLAorQEAgLTc3NSwyNSArNzc1 LDI1IEBAIGVudW0KKyAgICAgYXJnX3NyY19tb2RhcmdzLAorICAgICBhcmdfZHN0X21vZG5hbWUs CisgICAgIGFyZ19kc3RfbW9kYXJncywKKy0gICAgYXJnX3MsIAorLSAgICBhcmdfdCwgCistICAg IGFyZ19wLCAKKy0gICAgYXJnX2YsIAorKyAgICBhcmdfcywKKysgICAgYXJnX3QsCisrICAgIGFy Z19wLAorKyAgICBhcmdfZiwKKyAgICAgYXJnX3ZiLAorLSAgICBhcmdfcSwgCistICAgIGFyZ192 LCAKKy0gICAgYXJnX2RlYnVnZnRwLCAKKysgICAgYXJnX3EsCisrICAgIGFyZ192LAorKyAgICBh cmdfZGVidWdmdHAsCisgICAgIGFyZ19yZXN0YXJ0LAorLSAgICBhcmdfcnN0X3JldHJpZXMsIAor LSAgICBhcmdfcnN0X2ludGVydmFsLCAKKy0gICAgYXJnX3JzdF90aW1lb3V0LCAKKysgICAgYXJn X3JzdF9yZXRyaWVzLAorKyAgICBhcmdfcnN0X2ludGVydmFsLAorKyAgICBhcmdfcnN0X3RpbWVv dXQsCisgICAgIGFyZ19zdGFsbF90aW1lb3V0LAorLSAgICBhcmdfc3MsIAorLSAgICBhcmdfZHMs IAorKyAgICBhcmdfc3MsCisrICAgIGFyZ19kcywKKyAgICAgYXJnX3RjcF9icywKKy0gICAgYXJn X2JzLCAKKysgICAgYXJnX2JzLAorICAgICBhcmdfY29uYywKKy0gICAgYXJnX25vdHB0LCAKKysg ICAgYXJnX25vdHB0LAorICAgICBhcmdfbm9kY2F1LAorICAgICBhcmdfZGF0YV9zYWZlLAorICAg ICBhcmdfZGF0YV9wcml2YXRlLAorQEAgLTg1NCw3ICs4NTQsNyBAQCBzdGF0aWMgY2hhciAqIGxp c3RuYW1lKGlkKVtdID0geyBhbGlhczEsIGFsaWFzMiwgR0xPQlVTX05VTEwgfQorICNkZWZpbmUg ZmxhZ2RlZihpZCxhbGlhczEsYWxpYXMyKSBcCisgbmFtZWRlZihpZCxhbGlhczEsYWxpYXMyKTsg XAorIHN0YXRpYyBnbG9idXNfYXJnc19vcHRpb25fZGVzY3JpcHRvcl90IGRlZm5hbWUoaWQpID0g eyBpZCwgbGlzdG5hbWUoaWQpLCAwLCBcCistCQkJCQkJR0xPQlVTX05VTEwsIEdMT0JVU19OVUxM IH0KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTE9C VVNfTlVMTCwgR0xPQlVTX05VTEwgfQorICNkZWZpbmUgZnVuY25hbWUoeCkgeCMjX3ByZWRpY2F0 ZV90ZXN0CisgI2RlZmluZSBwYXJhbXNuYW1lKHgpIHgjI19wcmVkaWNhdGVfcGFyYW1zCisgCitA QCAtMTAwMSwxOSArMTAwMSwxOSBAQCBzdGF0aWMgZ2xvYnVzX2FyZ3Nfb3B0aW9uX2Rlc2NyaXB0 b3JfdCBhcmdzX29wdGlvbnNbYXJnX251bV07CisgICAgIHNldHVwb3B0KGFyZ19ub2RjYXUpOyAg ICAgICAgICAgICAgIFwKKyAgICAgc2V0dXBvcHQoYXJnX2RhdGFfc2FmZSk7ICAgICAgICAgICAg XAorICAgICBzZXR1cG9wdChhcmdfZGF0YV9wcml2YXRlKTsgICAgICAgICBcCistICAgIHNldHVw b3B0KGFyZ19yZWN1cnNlKTsJCVwKKy0gICAgc2V0dXBvcHQoYXJnX3BhcnRpYWxfb2Zmc2V0KTsJ XAorLSAgICBzZXR1cG9wdChhcmdfcGFydGlhbF9sZW5ndGgpOwlcCistICAgIHNldHVwb3B0KGFy Z19yZmMxNzM4KTsgICAgICAJXAorKyAgICBzZXR1cG9wdChhcmdfcmVjdXJzZSk7ICAgICAgICAg ICAgICBcCisrICAgIHNldHVwb3B0KGFyZ19wYXJ0aWFsX29mZnNldCk7ICAgICAgIFwKKysgICAg c2V0dXBvcHQoYXJnX3BhcnRpYWxfbGVuZ3RoKTsgICAgICAgXAorKyAgICBzZXR1cG9wdChhcmdf cmZjMTczOCk7ICAgICAgICAgICAgICBcCisgICAgIHNldHVwb3B0KGFyZ19jcmVhdGVfZGVzdCk7 ICAgICAgICAgIFwKKy0gICAgc2V0dXBvcHQoYXJnX2Zhc3QpOwkgICAgICAgICAgICAgICAgXAor LSAgICBzZXR1cG9wdChhcmdfbGlzdCk7CSAgICAgICAgICAgICAgICBcCisrICAgIHNldHVwb3B0 KGFyZ19mYXN0KTsgICAgICAgICAgICAgICAgIFwKKysgICAgc2V0dXBvcHQoYXJnX2xpc3QpOyAg ICAgICAgICAgICAgICAgXAorICAgICBzZXR1cG9wdChhcmdfdWR0KTsgICAgICAgICAgICAgICAg ICBcCisgICAgIHNldHVwb3B0KGFyZ19ubF9ib3R0bGVuZWNrKTsgICAgICAgIFwKKyAgICAgc2V0 dXBvcHQoYXJnX25sX2ludGVydmFsKTsgICAgICAgIFwKKy0gICAgc2V0dXBvcHQoYXJnX2lwdjYp OyAgICAgICAgIAlcCisrICAgIHNldHVwb3B0KGFyZ19pcHY2KTsgICAgICAgICAgICAgICAgIFwK KyAgICAgc2V0dXBvcHQoYXJnX2dyaWRmdHAyX29mZik7ICAgICAgICAgXAorLSAgICBzZXR1cG9w dChhcmdfZ3JpZGZ0cDIpOyAgICAgICAgIAlcCisrICAgIHNldHVwb3B0KGFyZ19ncmlkZnRwMik7 ICAgICAgICAgICAgIFwKKyAgICAgc2V0dXBvcHQoYXJnX3NyY19waXBlX3N0cik7ICAgICAgICBc CisgICAgIHNldHVwb3B0KGFyZ19kc3RfcGlwZV9zdHIpOyAgICAgICAgXAorICAgICBzZXR1cG9w dChhcmdfcGlwZV9zdHIpOyAgICAgICAgXAorQEAgLTEwMzcsMTMgKzEwMzcsMTMgQEAgc3RhdGlj IGdsb2J1c19hcmdzX29wdGlvbl9kZXNjcmlwdG9yX3QgYXJnc19vcHRpb25zW2FyZ19udW1dOwor ICAgICBzZXR1cG9wdChhcmdfZHVtcF9vbmx5KTsgICAgICAgICAgICBcCisgICAgIHNldHVwb3B0 KGFyZ19wcmVzZXJ2ZSk7ICAgICAgICAgICAgIFwKKyAgICAgc2V0dXBvcHQoYXJnX3Blcm1zKTsg ICAgICAgICAgICAgICAgXAorLSAgICBzZXR1cG9wdChhcmdfYWxsbyk7ICAgICAgICAgCVwKKy0g ICAgc2V0dXBvcHQoYXJnX25vYWxsbyk7ICAgICAgICAgCVwKKy0gICAgc2V0dXBvcHQoYXJnX2Ny ZWQpOyAgICAgICAgIAlcCistICAgIHNldHVwb3B0KGFyZ19zcmNfY3JlZCk7ICAgICAgICAgCVwK Ky0gICAgc2V0dXBvcHQoYXJnX2RzdF9jcmVkKTsgICAgICAgICAJXAorLSAgICBzZXR1cG9wdChh cmdfZGF0YV9jcmVkKTsgICAgICAgICAJXAorLSAgICBzZXR1cG9wdChhcmdfc3RyaXBlX2JzKTsg ICAgICAgICAJXAorKyAgICBzZXR1cG9wdChhcmdfYWxsbyk7ICAgICAgICAgICAgICAgICBcCisr ICAgIHNldHVwb3B0KGFyZ19ub2FsbG8pOyAgICAgICAgICAgICAgIFwKKysgICAgc2V0dXBvcHQo YXJnX2NyZWQpOyAgICAgICAgICAgICAgICAgXAorKyAgICBzZXR1cG9wdChhcmdfc3JjX2NyZWQp OyAgICAgICAgICAgICBcCisrICAgIHNldHVwb3B0KGFyZ19kc3RfY3JlZCk7ICAgICAgICAgICAg IFwKKysgICAgc2V0dXBvcHQoYXJnX2RhdGFfY3JlZCk7ICAgICAgICAgICAgXAorKyAgICBzZXR1 cG9wdChhcmdfc3RyaXBlX2JzKTsgICAgICAgICAgICBcCisgICAgIHNldHVwb3B0KGFyZ19zdHJp cGVkKTsgICAgICAgICAgICAgIFwKKyAgICAgc2V0dXBvcHQoYXJnX2NoZWNrc3VtKTsgICAgICAg ICAgICAgXAorICAgICBzZXR1cG9wdChhcmdfY2hlY2tzdW1fYWxnbyk7CitAQCAtMTExNiw3ICsx MTE2LDcgQEAgZ2xvYnVzX2xfZ3VjX2dsb2JfbGlzdF9jYigKKyAgICAgfQorICAgICBnbG9idXNf dXJsX2Rlc3Ryb3koJnVybF9pbmZvKTsKKyB9CistICAgIAorKworIHN0YXRpYworIHZvaWQKKyBn bG9idXNfbF9ndWNfZXh0X2ludGVycnVwdF9oYW5kbGVyKAorQEAgLTEyODUsNyArMTI4NSw3IEBA IGdsb2J1c19sX2d1Y19leHQoCisgZXJyb3I6CisgCisgICAgIGZwcmludGYoc3RkZXJyLCAiJXNc biIsIGdsb2J1c19lcnJvcl9wcmludF9mcmllbmRseShlcnIpKTsKKy0gCisrCisgICAgIHJldHVy biAxOworIH0KKyAvKiBFTkQgQ1JGVCBTVFVGRiAqLworQEAgLTEzMzgsNyArMTMzOCw3IEBAIGds b2J1c19sX2d1Y191cmxfcmVwbGFjZV9ob3N0KAorICAgICBjaGFyICogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwdHI7CisgICAgIGNoYXIgKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRtcDsKKyAgICAgY2hhciAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOwor LSAgICAKKysKKyAgICAgdG1wID0gZ2xvYnVzX2xpYmNfc3RyZHVwKGluX3VybCk7CisgICAgIHB0 ciA9IHN0cnN0cih0bXAsICJmdHA6Ly8iKTsKKyAgICAgaWYocHRyID09IE5VTEwpCitAQCAtMTM1 MywxNSArMTM1MywxNSBAQCBnbG9idXNfbF9ndWNfdXJsX3JlcGxhY2VfaG9zdCgKKyAgICAgewor ICAgICAgICAgZ290byBza2lwOworICAgICB9CistICAgIAorKworICAgICBvdXQgPSBnbG9idXNf Y29tbW9uX2NyZWF0ZV9zdHJpbmcoIiVzLyVzJXMiLCB0bXAsIGhvc3QsIGVuZCk7CisgICAgIGds b2J1c19mcmVlKHRtcCk7CistICAgIAorKworICAgICByZXR1cm4gb3V0OworLSAgICAKKysKKyBz a2lwOgorICAgICBnbG9idXNfZnJlZSh0bXApOworLSAgICByZXR1cm4gTlVMTDsgICAgCisrICAg IHJldHVybiBOVUxMOworIH0KKyAKKyBzdGF0aWMKK0BAIC0xMzc1LDIwICsxMzc1LDIwIEBAIGds b2J1c19sX2d1Y19kZXF1ZXVlX3BhaXIoCisgICAgIGdsb2J1c19sX2d1Y19hbGlhc190ICogICAg ICAgICAgICAgIGRzdF9hbGlhcyA9IE5VTEw7CisgICAgIGNoYXIgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG5ld19zcmM7CisgICAgIGNoYXIgKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG5ld19kc3Q7CistICAgIAorKworICAgICBwYWlyID0gKGdsb2J1c19sX2d1Y19zcmNf ZHN0X3BhaXJfdCAqKSBnbG9idXNfZmlmb19kZXF1ZXVlKHEpOworLSAgICAKKysKKyAgICAgaWYo Z3VjX2xfYWxpYXNlcykKKyAgICAgeworICAgICAgICAgLyoKKy0gICAgICAgIHNyY19hbGlhcyA9 IChnbG9idXNfbF9ndWNfYWxpYXNfdCAqKSAKKysgICAgICAgIHNyY19hbGlhcyA9IChnbG9idXNf bF9ndWNfYWxpYXNfdCAqKQorICAgICAgICAgICAgIGdsb2J1c19oYXNodGFibGVfbG9va3VwKCZn dWNfbF9hbGlhc190YWJsZSwgKHZvaWQgKikgInNvdXJjZSIpOworLSAgICAgICAgZHN0X2FsaWFz ID0gKGdsb2J1c19sX2d1Y19hbGlhc190ICopIAorKyAgICAgICAgZHN0X2FsaWFzID0gKGdsb2J1 c19sX2d1Y19hbGlhc190ICopCisgICAgICAgICAgICAgZ2xvYnVzX2hhc2h0YWJsZV9sb29rdXAo Jmd1Y19sX2FsaWFzX3RhYmxlLCAodm9pZCAqKSAiZGVzdGluYXRpb24iKTsKKyAgICAgICAgICov CisgICAgICAgICBzcmNfYWxpYXMgPSBndWNfbF9zcmNfYWxpYXNfZW50OworICAgICAgICAgZHN0 X2FsaWFzID0gZ3VjX2xfZHN0X2FsaWFzX2VudDsKKy0gICAgICAgIAorKworICAgICAgICAgaWYo c3JjX2FsaWFzICYmIHNyY19hbGlhcy0+ZW50cmllcyA+IDApCisgICAgICAgICB7CisgICAgICAg ICAgICAgbmV3X3NyYyA9IGdsb2J1c19sX2d1Y191cmxfcmVwbGFjZV9ob3N0KAorQEAgLTEzOTks NyArMTM5OSw3IEBAIGdsb2J1c19sX2d1Y19kZXF1ZXVlX3BhaXIoCisgICAgICAgICAgICAgICAg IHBhaXItPnNyY191cmwgPSBuZXdfc3JjOworICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKy0g ICAgCisrCisgICAgICAgICBpZihkc3RfYWxpYXMgJiYgZHN0X2FsaWFzLT5lbnRyaWVzID4gMCkK KyAgICAgICAgIHsKKyAgICAgICAgICAgICBuZXdfZHN0ID0gZ2xvYnVzX2xfZ3VjX3VybF9yZXBs YWNlX2hvc3QoCitAQCAtMTQxMSw3ICsxNDExLDcgQEAgZ2xvYnVzX2xfZ3VjX2RlcXVldWVfcGFp cigKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgIH0KKy0gICAgCisrCisgICAgIGlm KCFnX3NzaF9wcmludF9jb25uZWN0ICYmICFnX2FsbF9xdWlldCAmJgorICAgICAgICAgc3RybmNt cChwYWlyLT5zcmNfdXJsLCAic3NoZnRwOi8vIiwgOSkgPT0gMCAmJgorICAgICAgICAgc3RybmNt cChwYWlyLT5kc3RfdXJsLCAic3NoZnRwOi8vIiwgOSkgPT0gMCkKK0BAIC0xNDQzLDEzICsxNDQz LDEzIEBAIGdsb2J1c19sX2d1Y19wcmludF91cmxfbGluZSgKKyAgICAgY2hhciAqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcHJlOworICAgICBjaGFyICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdGF0c3RyID0gTlVMTDsKKyAgICAgY2hhciAqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdG1wc3RyID0gTlVMTDsKKy0gICAgICAgIAorKworICAgICBwcmUgPSBwcmVm aXggPyBwcmVmaXggOiAiIjsKKy0gICAgCisrCisgICAgIHN0YXRzdHIgPSBnbG9idXNfbGliY19z dHJkdXAoIiIpOworIAorICAgICBpZihpbmZvKQorLSAgICB7ICAgICAgICAKKysgICAgeworICAg ICAgICAgaWYoaW5mby0+c2l6ZSA+PSAwICYmIGluZm8tPnR5cGUgPT0gR0xPQlVTX0dBU1NfQ09Q WV9HTE9CX0VOVFJZX0ZJTEUpCisgICAgICAgICB7CisgICAgICAgICAgICAgdG1wc3RyID0gZ2xv YnVzX2NvbW1vbl9jcmVhdGVfc3RyaW5nKAorQEAgLTE0NzksMzEgKzE0NzksMzEgQEAgZ2xvYnVz X2xfZ3VjX3ByaW50X3VybF9saW5lKAorICAgICAgICAgICAgIHN0YXRzdHIgPSB0bXBzdHI7Cisg ICAgICAgICB9CisgICAgIH0KKy0gICAgCisrCisgICAgIGlmKGxlbmd0aCA+IC0xKQorICAgICB7 CisgICAgICAgICByYyA9IGZwcmludGYoCistICAgICAgICAgICAgZnAsIAorKyAgICAgICAgICAg IGZwLAorICAgICAgICAgICAgICIlc1wiJXNcIiBcIiVzXCIgJSJHTE9CVVNfT0ZGX1RfRk9STUFU IiwlIkdMT0JVU19PRkZfVF9GT1JNQVQiICVzXG4iLAorLSAgICAgICAgICAgIHByZSwgc3JjX3Vy bCwgZHN0X3VybCwgb2Zmc2V0LCBsZW5ndGgsIHN0YXRzdHIpOyAgICAgICAgICAgICAgICAKKysg ICAgICAgICAgICBwcmUsIHNyY191cmwsIGRzdF91cmwsIG9mZnNldCwgbGVuZ3RoLCBzdGF0c3Ry KTsKKyAgICAgfQorICAgICBlbHNlIGlmKG9mZnNldCA+IC0xKQorLSAgICB7ICAgICAgICAgICAg ICAgIAorKyAgICB7CisgICAgICAgICByYyA9IGZwcmludGYoCistICAgICAgICAgICAgZnAsIAor LSAgICAgICAgICAgICIlc1wiJXNcIiBcIiVzXCIgJSJHTE9CVVNfT0ZGX1RfRk9STUFUIiAlc1xu IiwgCisrICAgICAgICAgICAgZnAsCisrICAgICAgICAgICAgIiVzXCIlc1wiIFwiJXNcIiAlIkdM T0JVU19PRkZfVF9GT1JNQVQiICVzXG4iLAorICAgICAgICAgICAgIHByZSwgc3JjX3VybCwgZHN0 X3VybCwgb2Zmc2V0LCBzdGF0c3RyKTsKKyAgICAgfQorICAgICBlbHNlIGlmKHRtcHN0cikKKyAg ICAgeworLSAgICAgICAgcmMgPSBmcHJpbnRmKGZwLCAiJXNcIiVzXCIgXCIlc1wiIDAsLTEgJXNc biIsIAorKyAgICAgICAgcmMgPSBmcHJpbnRmKGZwLCAiJXNcIiVzXCIgXCIlc1wiIDAsLTEgJXNc biIsCisgICAgICAgICAgICAgcHJlLCBzcmNfdXJsLCBkc3RfdXJsLCBzdGF0c3RyKTsKKy0gICAg fSAgICAgICAgICAgICAgICAKKysgICAgfQorICAgICBlbHNlCisgICAgIHsKKy0gICAgICAgIHJj ID0gZnByaW50ZihmcCwgIiVzXCIlc1wiIFwiJXNcIlxuIiwgCisrICAgICAgICByYyA9IGZwcmlu dGYoZnAsICIlc1wiJXNcIiBcIiVzXCJcbiIsCisgICAgICAgICAgICAgcHJlLCBzcmNfdXJsLCBk c3RfdXJsKTsKKy0gICAgfSAgICAgICAgICAgICAgICAKKysgICAgfQorIAorICAgICBnbG9idXNf ZnJlZShzdGF0c3RyKTsKKyAgICAgcmV0dXJuIHJjOworQEAgLTE1MjcsNyArMTUyNyw3IEBAIGds b2J1c19sX2d1Y19kdW1wX3VybHMoCisgICAgIGdsb2J1c19sX2d1Y190cmFuc2Zlcl90ICogICAg ICAgICAgIHRyYW5zZmVyX2luZm87CisgCisgICAgIGd1Y19pbmZvID0gKGdsb2J1c19sX2d1Y19p bmZvX3QgKikgdXNlcl9hcmc7CistICAgIAorKworICAgICBnbG9idXNfbXV0ZXhfbG9jaygmZ19t b25pdG9yLm11dGV4KTsKKyAKKyAgICAgaWYoZ3VjX2luZm8tPmR1bXBmaWxlKQorQEAgLTE1NTAs MTAgKzE1NTAsMTAgQEAgZ2xvYnVzX2xfZ3VjX2R1bXBfdXJscygKKyAgICAgICAgICAgICB1bmxp bmsoZHVtcHRtcCk7CisgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgfQorLSAgICAgICAg ICAgIAorKworICAgICAgICAgZm9yKGkgPSAwOyBpIDwgZ3VjX2luZm8tPmNvbmM7IGkrKykKKyAg ICAgICAgIHsKKy0gICAgICAgICAgICB0cmFuc2Zlcl9pbmZvID0gKGdsb2J1c19sX2d1Y190cmFu c2Zlcl90ICopIAorKyAgICAgICAgICAgIHRyYW5zZmVyX2luZm8gPSAoZ2xvYnVzX2xfZ3VjX3Ry YW5zZmVyX3QgKikKKyAgICAgICAgICAgICAgICAgZ3VjX2luZm8tPmhhbmRsZXNbaV0tPmN1cnJl bnRfdHJhbnNmZXI7CisgICAgICAgICAgICAgaWYodHJhbnNmZXJfaW5mbykKKyAgICAgICAgICAg ICB7CitAQCAtMTU2Myw3ICsxNTYzLDcgQEAgZ2xvYnVzX2xfZ3VjX2R1bXBfdXJscygKKyAgICAg ICAgICAgICAgICAgZ2xvYnVzX29mZl90ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9v ZmZzZXQgPSAwOworICAgICAgICAgICAgICAgICBnbG9idXNfb2ZmX3QgICAgICAgICAgICAgICAg b2ZmID0gdHJhbnNmZXJfaW5mby0+dXJscy0+b2Zmc2V0OworICAgICAgICAgICAgICAgICBnbG9i dXNfb2ZmX3QgICAgICAgICAgICAgICAgbGVuID0gdHJhbnNmZXJfaW5mby0+dXJscy0+bGVuZ3Ro OworLSAgICAgICAgICAgICAgICAKKysKKyAgICAgICAgICAgICAgICAgZ2xvYnVzX2dhc3NfY29w eV9nZXRfZnRwX2hhbmRsZSgKKyAgICAgICAgICAgICAgICAgICAgICZndWNfaW5mby0+aGFuZGxl c1tpXS0+Z2Fzc19jb3B5X2hhbmRsZSwgJmZ0cF9oYW5kbGUpOworICAgICAgICAgICAgICAgICBn bG9idXNfZnRwX2NsaWVudF9oYW5kbGVfZ2V0X3Jlc3RhcnRfbWFya2VyKAorQEAgLTE1NzEsMTUg KzE1NzEsMTUgQEAgZ2xvYnVzX2xfZ3VjX2R1bXBfdXJscygKKyAgICAgICAgICAgICAgICAgZ2xv YnVzX2Z0cF9jbGllbnRfcmVzdGFydF9tYXJrZXJfZ2V0X2ZpcnN0X2Jsb2NrKAorICAgICAgICAg ICAgICAgICAgICAgJm1hcmtlciwgJnN0YXJ0X29mZnNldCwgJmVuZF9vZmZzZXQpOworICAgICAg ICAgICAgICAgICBnbG9idXNfZnRwX2NsaWVudF9yZXN0YXJ0X21hcmtlcl9kZXN0cm95KCZtYXJr ZXIpOworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKysKKyAgICAgICAgICAgICAgICAg aWYodHJhbnNmZXJfaW5mby0+dXJscy0+bGVuZ3RoID4gLTEpCisgICAgICAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICAgICAgIG9mZiA9IHRyYW5zZmVyX2luZm8tPnVybHMtPm9mZnNldCAr IGVuZF9vZmZzZXQ7CistICAgICAgICAgICAgICAgICAgICBsZW4gPSB0cmFuc2Zlcl9pbmZvLT51 cmxzLT5sZW5ndGggLSAoZW5kX29mZnNldCAtIHN0YXJ0X29mZnNldCk7ICAgICAgICAgICAgICAg CisrICAgICAgICAgICAgICAgICAgICBsZW4gPSB0cmFuc2Zlcl9pbmZvLT51cmxzLT5sZW5ndGgg LSAoZW5kX29mZnNldCAtIHN0YXJ0X29mZnNldCk7CisgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICAgZWxzZSBpZihlbmRfb2Zmc2V0ID4gMCB8fCB0cmFuc2Zlcl9pbmZvLT51cmxz LT5vZmZzZXQgPiAtMSkKKy0gICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAKKy0gICAg ICAgICAgICAgICAgICAgIG9mZiA9IGVuZF9vZmZzZXQgPiB0cmFuc2Zlcl9pbmZvLT51cmxzLT5v ZmZzZXQgPyAKKysgICAgICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICAgICAgb2ZmID0g ZW5kX29mZnNldCA+IHRyYW5zZmVyX2luZm8tPnVybHMtPm9mZnNldCA/CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGVuZF9vZmZzZXQgOiB0cmFuc2Zlcl9pbmZvLT51cmxzLT5vZmZzZXQ7 CisgICAgICAgICAgICAgICAgIH0KKyAKK0BAIC0xNTkxLDE4ICsxNTkxLDE4IEBAIGdsb2J1c19s X2d1Y19kdW1wX3VybHMoCisgICAgICAgICAgICAgICAgICAgICBsZW4sCisgICAgICAgICAgICAg ICAgICAgICB0cmFuc2Zlcl9pbmZvLT51cmxzLT5zcmNfaW5mbywKKyAgICAgICAgICAgICAgICAg ICAgIE5VTEwpOworLSAgICAgICAgICAgIH0gICAgICAgICAgICAKKysgICAgICAgICAgICB9Cisg ICAgICAgICB9CistICAgICAgICAgCisrCisgICAgICAgICBpZighZ2xvYnVzX2ZpZm9fZW1wdHko Jmd1Y19pbmZvLT5leHBhbmRlZF91cmxfbGlzdCkpCisgICAgICAgICB7CisgICAgICAgICAgICAg dG1wX2ZpZm8gPSBnbG9idXNfZmlmb19jb3B5KCZndWNfaW5mby0+ZXhwYW5kZWRfdXJsX2xpc3Qp OworLSAgICAgICAgICAgIAorKworICAgICAgICAgICAgIHdoaWxlKCFnbG9idXNfZmlmb19lbXB0 eSh0bXBfZmlmbykpCisgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICB1cmxfcGFpciA9 IAorKyAgICAgICAgICAgICAgICB1cmxfcGFpciA9CisgICAgICAgICAgICAgICAgICAgICAoZ2xv YnVzX2xfZ3VjX3NyY19kc3RfcGFpcl90ICopIGdsb2J1c19maWZvX2RlcXVldWUodG1wX2ZpZm8p OworLSAgICAgICAgICAgICAgICAKKysKKyAgICAgICAgICAgICAgICAgZ2xvYnVzX2xfZ3VjX3By aW50X3VybF9saW5lKAorICAgICAgICAgICAgICAgICAgICAgZHVtcGZpbGUsCisgICAgICAgICAg ICAgICAgICAgICB1cmxfcGFpci0+c3JjX3VybCwKK0BAIC0xNjE0LDE2ICsxNjE0LDE2IEBAIGds b2J1c19sX2d1Y19kdW1wX3VybHMoCisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGdsb2J1 c19maWZvX2Rlc3Ryb3kodG1wX2ZpZm8pOworICAgICAgICAgfQorLSAgICAKKysKKyAgICAgICAg IGlmKCFnbG9idXNfZmlmb19lbXB0eSgmZ3VjX2luZm8tPnVzZXJfdXJsX2xpc3QpKQorICAgICAg ICAgeworICAgICAgICAgICAgIHRtcF9maWZvID0gZ2xvYnVzX2ZpZm9fY29weSgmZ3VjX2luZm8t PnVzZXJfdXJsX2xpc3QpOworLSAgICAgICAgICAgIAorKworICAgICAgICAgICAgIHdoaWxlKCFn bG9idXNfZmlmb19lbXB0eSh0bXBfZmlmbykpCisgICAgICAgICAgICAgeworLSAgICAgICAgICAg ICAgICB1cmxfcGFpciA9IAorKyAgICAgICAgICAgICAgICB1cmxfcGFpciA9CisgICAgICAgICAg ICAgICAgICAgICAoZ2xvYnVzX2xfZ3VjX3NyY19kc3RfcGFpcl90ICopIGdsb2J1c19maWZvX2Rl cXVldWUodG1wX2ZpZm8pOworLSAgICAgICAgICAgIAorKworICAgICAgICAgICAgICAgICBnbG9i dXNfbF9ndWNfcHJpbnRfdXJsX2xpbmUoCisgICAgICAgICAgICAgICAgICAgICBkdW1wZmlsZSwK KyAgICAgICAgICAgICAgICAgICAgIHVybF9wYWlyLT5zcmNfdXJsLAorQEAgLTE2MzUsNyArMTYz NSw3IEBAIGdsb2J1c19sX2d1Y19kdW1wX3VybHMoCisgICAgICAgICAgICAgfQorICAgICAgICAg ICAgIGdsb2J1c19maWZvX2Rlc3Ryb3kodG1wX2ZpZm8pOworICAgICAgICAgfQorLSAgICAgICAg ICAgICAgICAKKysKKyAgICAgICAgIGZjbG9zZShkdW1wZmlsZSk7CisgICAgICAgICBpZihyZW5h bWUoZHVtcHRtcCwgZ3VjX2luZm8tPmR1bXBmaWxlKSA8IDApCisgICAgICAgICB7CitAQCAtMTY0 Myw3ICsxNjQzLDcgQEAgZ2xvYnVzX2xfZ3VjX2R1bXBfdXJscygKKyAgICAgICAgIH0KKyAgICAg ICAgIGdsb2J1c19mcmVlKGR1bXB0bXApOworICAgICB9CistICAgIAorKworICAgICBpZihndWNf aW5mby0+ZHVtcF9vbmx5X2ZpbGUgJiYgZ3VjX2luZm8tPmR1bXBfb25seV9mcCA9PSBOVUxMKQor ICAgICB7CisgICAgICAgICBkdW1wdG1wID0gZ2xvYnVzX2NvbW1vbl9jcmVhdGVfc3RyaW5nKCIl cy5YWFhYWFgiLCBndWNfaW5mby0+ZHVtcF9vbmx5X2ZpbGUpOworQEAgLTE2NjMsMjAgKzE2NjMs MjAgQEAgZ2xvYnVzX2xfZ3VjX2R1bXBfdXJscygKKyAgICAgICAgICAgICBjbG9zZShkdW1wZmQp OworICAgICAgICAgICAgIHVubGluayhkdW1wdG1wKTsKKyAgICAgICAgICAgICByZXR1cm47Cist ICAgICAgICB9ICAgIAorLSAgICAgICAgIAorKyAgICAgICAgfQorKworICAgICAgICAgaWYoIWds b2J1c19maWZvX2VtcHR5KCZndWNfaW5mby0+ZHVtcF91cmxfbGlzdCkpCisgICAgICAgICB7Cisg ICAgICAgICAgICAgdG1wX2ZpZm8gPSBnbG9idXNfZmlmb19jb3B5KCZndWNfaW5mby0+ZHVtcF91 cmxfbGlzdCk7CistICAgICAgICAgICAgCisrCisgICAgICAgICAgICAgd2hpbGUoIWdsb2J1c19m aWZvX2VtcHR5KHRtcF9maWZvKSkKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIGNo YXIgKiAgICAgICAgICAgICAgICAgIGlzX2RpcjsKKy0gICAgICAgICAgICAgICAgCistICAgICAg ICAgICAgICAgIHVybF9wYWlyID0gCisrCisrICAgICAgICAgICAgICAgIHVybF9wYWlyID0KKyAg ICAgICAgICAgICAgICAgICAgIChnbG9idXNfbF9ndWNfc3JjX2RzdF9wYWlyX3QgKikgZ2xvYnVz X2ZpZm9fZGVxdWV1ZSh0bXBfZmlmbyk7CistICAgICAgICAgICAgICAgIAorLSAgICAgICAgICAg ICAgICBpc19kaXIgPSAKKysKKysgICAgICAgICAgICAgICAgaXNfZGlyID0KKyAgICAgICAgICAg ICAgICAgICAgIHVybF9wYWlyLT5zcmNfdXJsW3N0cmxlbih1cmxfcGFpci0+c3JjX3VybCkgLSAx XSA9PSAnLycgPworICAgICAgICAgICAgICAgICAgICAgICAgICIjIiA6IE5VTEw7CisgCitAQCAt MTY5OCw4ICsxNjk4LDggQEAgZ2xvYnVzX2xfZ3VjX2R1bXBfdXJscygKKyAgICAgICAgICAgICB1 bmxpbmsoZHVtcHRtcCk7CisgICAgICAgICB9CisgICAgICAgICBnbG9idXNfZnJlZShkdW1wdG1w KTsKKy0gICAgICAgIAorLSAgICB9ICAgIAorKworKyAgICB9CisgCisgICAgIGdsb2J1c19tdXRl eF91bmxvY2soJmdfbW9uaXRvci5tdXRleCk7CisgCitAQCAtMTcxOCwxNCArMTcxOCwxNCBAQCBn bG9idXNfbF9ndWNfdHJhbnNmZXJfa2lja291dCgKKyAgICAgZ2xvYnVzX2Jvb2xfdCAgICAgICAg ICAgICAgICAgICAgICAgZXhwYW5kZWQgPSBHTE9CVVNfRkFMU0U7CisgICAgIGdsb2J1c19ib29s X3QgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZCA9IEdMT0JVU19GQUxTRTsKKyAgICAgZ2xv YnVzX29iamVjdF90ICogICAgICAgICAgICAgICAgICAgZXJyID0gTlVMTDsKKy0gICAgCisrCisg ICAgIHRyYW5zZmVyX2luZm8gPSAoZ2xvYnVzX2xfZ3VjX3RyYW5zZmVyX3QgKiApICB1c2VyX2Fy ZzsKKyAKKyAgICAgZ2xvYnVzX211dGV4X2xvY2soJmdfbW9uaXRvci5tdXRleCk7CistICAgIHsg ICAgICAgIAorKyAgICB7CisgICAgICAgICBpZighZ19tb25pdG9yLmRvbmUgJiYgIXRyYW5zZmVy X2luZm8tPmd1Y19pbmZvLT5jYW5jZWxsZWQgJiYKKyAgICAgICAgICAgICAhZ2xvYnVzX2ZpZm9f ZW1wdHkoJnRyYW5zZmVyX2luZm8tPmd1Y19pbmZvLT5leHBhbmRlZF91cmxfbGlzdCkpCistICAg ICAgICB7ICAgCisrICAgICAgICB7CisgICAgICAgICAgICAgZ2xvYnVzX2xfZ3VjX3VybF9wYWly X2ZyZWUodHJhbnNmZXJfaW5mby0+dXJscyk7CisgICAgICAgICAgICAgdHJhbnNmZXJfaW5mby0+ dXJscyA9IGdsb2J1c19sX2d1Y19kZXF1ZXVlX3BhaXIoCisgICAgICAgICAgICAgICAgICZ0cmFu c2Zlcl9pbmZvLT5ndWNfaW5mby0+ZXhwYW5kZWRfdXJsX2xpc3QsCitAQCAtMTczNywxOSArMTcz NywxOSBAQCBnbG9idXNfbF9ndWNfdHJhbnNmZXJfa2lja291dCgKKyAgICAgICAgIH0KKyAgICAg ICAgIGVsc2UgaWYoIWdfbW9uaXRvci5kb25lICYmICF0cmFuc2Zlcl9pbmZvLT5ndWNfaW5mby0+ Y2FuY2VsbGVkICYmCisgICAgICAgICAgICAgIWdsb2J1c19maWZvX2VtcHR5KCZ0cmFuc2Zlcl9p bmZvLT5ndWNfaW5mby0+dXNlcl91cmxfbGlzdCkpCistICAgICAgICB7ICAgICAgICAKKysgICAg ICAgIHsKKyAgICAgICAgICAgICBnbG9idXNfbF9ndWNfdXJsX3BhaXJfZnJlZSh0cmFuc2Zlcl9p bmZvLT51cmxzKTsKKyAgICAgICAgICAgICB0cmFuc2Zlcl9pbmZvLT51cmxzID0gZ2xvYnVzX2xf Z3VjX2RlcXVldWVfcGFpcigKKyAgICAgICAgICAgICAgICAgJnRyYW5zZmVyX2luZm8tPmd1Y19p bmZvLT51c2VyX3VybF9saXN0LAorICAgICAgICAgICAgICAgICB0cmFuc2Zlcl9pbmZvLT5oYW5k bGUtPmlkKTsKKy0gICAgICAgICAgICAgICAgICAgICAgICAKKysKKyAgICAgICAgICAgICB0cmFu c2Zlcl9pbmZvLT5ndWNfaW5mby0+Y29uY19vdXRzdGFuZGluZysrOworICAgICAgICAgICAgIHRy YW5zZmVyX2luZm8tPmhhbmRsZS0+Y3VycmVudF90cmFuc2ZlciA9IHRyYW5zZmVyX2luZm87Cisg ICAgICAgICAgICAgaWYodHJhbnNmZXJfaW5mby0+Z3VjX2luZm8tPmNyZWF0ZV9kZXN0KQorICAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgdHJhbnNmZXJfaW5mby0+bmVlZHNfbWtkaXIg PSBHTE9CVVNfVFJVRTsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAgCisrCisgICAgICAg ICAgICAgZXhwYW5kID0gR0xPQlVTX1RSVUU7CisgICAgICAgICB9CisgICAgICAgICBlbHNlCitA QCAtMTc2NiwyMSArMTc2NiwyMSBAQCBnbG9idXNfbF9ndWNfdHJhbnNmZXJfa2lja291dCgKKyAg ICAgICAgICAgICAgICAgcmV0cnkgPSBHTE9CVVNfVFJVRTsKKyAgICAgICAgICAgICB9CisgICAg ICAgICB9CistICAgICAgICAKKysKKyAgICAgfQorICAgICBnbG9idXNfbXV0ZXhfdW5sb2NrKCZn X21vbml0b3IubXV0ZXgpOworLSAgICAKKysKKyAgICAgaWYoZXhwYW5kZWQpCistICAgIHsgICAg ICAgIAorKyAgICB7CisgICAgICAgICByZXN1bHQgPSBnbG9idXNfbF9ndWNfdHJhbnNmZXIodHJh bnNmZXJfaW5mbyk7CisgICAgICAgICBpZihyZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MgJiYgIWdf Y29udGludWUpCistICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgCisrICAgICAgICB7 CisgICAgICAgICAgICAgZ2xvYnVzX211dGV4X2xvY2soJmdfbW9uaXRvci5tdXRleCk7CisgICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgICBnX21vbml0b3IuZG9uZSA9IEdMT0JVU19UUlVF OworICAgICAgICAgICAgICAgICBnX21vbml0b3IudXNlX2VyciA9IEdMT0JVU19UUlVFOworICAg ICAgICAgICAgICAgICBnX21vbml0b3IuZXJyID0gZ2xvYnVzX2Vycm9yX3BlZWsocmVzdWx0KTsK Ky0gICAgICAgICAgICAgICAgCisrCisgICAgICAgICAgICAgICAgIGlmKHRyYW5zZmVyX2luZm8t Pmd1Y19pbmZvLT5jb25jX291dHN0YW5kaW5nID09IDApCisgICAgICAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICAgICAgIGdsb2J1c19jb25kX3NpZ25hbCgmZ19tb25pdG9yLmNvbmQpOwor QEAgLTE4MTAsMTMgKzE4MTAsMTMgQEAgZ2xvYnVzX2xfZ3VjX3RyYW5zZmVyX2tpY2tvdXQoCisg ICAgICAgICAgICAgICAgICAgICBHTE9CVVNfRkFMU0UsCisgICAgICAgICAgICAgICAgICAgICBH TE9CVVNfVFJVRSk7CisgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAKKysKKyAgICAgICAg ICAgICByZXN1bHQgPSBnbG9idXNfbF9ndWNfZXhwYW5kX3NpbmdsZV91cmwodHJhbnNmZXJfaW5m byk7CisgICAgICAgICAgICAgaWYocmVzdWx0ICE9IEdMT0JVU19TVUNDRVNTKQorICAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICAgZXJyID0gZ2xvYnVzX2Vycm9yX3BlZWsocmVzdWx0KTsK KyAgICAgICAgICAgICB9CistICAgICAgICAgICAgCisrCisgICAgICAgICAgICAgcmVzdWx0ID0g R0xPQlVTX1NVQ0NFU1M7CisgICAgICAgICAgICAgZ2xvYnVzX2xfdXJsX2NvcHlfbW9uaXRvcl9j YWxsYmFjaygKKyAgICAgICAgICAgICAgICAgdHJhbnNmZXJfaW5mbywgJnRyYW5zZmVyX2luZm8t PmhhbmRsZS0+Z2Fzc19jb3B5X2hhbmRsZSwgZXJyKTsKK0BAIC0xODY1LDcgKzE4NjUsNyBAQCBt YWluKGludCBhcmdjLCBjaGFyICoqYXJndikKKyAgICAgZXJyID0gZ2xvYnVzX21vZHVsZV9hY3Rp dmF0ZShHTE9CVVNfR0FTU19DT1BZX01PRFVMRSk7CisgICAgIGlmKCBlcnIgIT0gR0xPQlVTX1NV Q0NFU1MgKQorICAgICB7CistICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwgCisr ICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICBfR0FTQ1NM KCJFcnJvciAlZCwgYWN0aXZhdGluZyBnYXNzIGNvcHkgbW9kdWxlXG4iKSwKKyAgICAgICAgICAg ICBlcnIpOworICAgICAgICAgcmV0dXJuIDE7CitAQCAtMTg3Myw3ICsxODczLDcgQEAgbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpCisgICAgIGVyciA9IGdsb2J1c19tb2R1bGVfYWN0aXZhdGUo R0xPQlVTX0ZUUF9DTElFTlRfREVCVUdfUExVR0lOX01PRFVMRSk7CisgICAgIGlmKCBlcnIgIT0g R0xPQlVTX1NVQ0NFU1MgKQorICAgICB7CistICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0 ZGVyciwgCisrICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAg ICBfR0FTQ1NMKCJFcnJvciAlZCwgYWN0aXZhdGluZyBmdHAgZGVidWcgcGx1Z2luIG1vZHVsZVxu IiksCisgICAgICAgICAgICAgZXJyKTsKKyAgICAgICAgIHJldHVybiAxOworQEAgLTE4ODEsNyAr MTg4MSw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorICAgICBlcnIgPSBnbG9idXNf bW9kdWxlX2FjdGl2YXRlKEdMT0JVU19GVFBfQ0xJRU5UX1JFU1RBUlRfUExVR0lOX01PRFVMRSk7 CisgICAgIGlmKCBlcnIgIT0gR0xPQlVTX1NVQ0NFU1MgKQorICAgICB7CistICAgICAgICBnbG9i dXNfbGliY19mcHJpbnRmKHN0ZGVyciwgCisrICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0 ZGVyciwKKyAgICAgICAgICAgICBfR0FTQ1NMKCJFcnJvciAlZCwgYWN0aXZhdGluZyBmdHAgcmVz dGFydCBwbHVnaW4gbW9kdWxlXG4iKSwKKyAgICAgICAgICAgICBlcnIpOworICAgICAgICAgcmV0 dXJuIDE7CitAQCAtMTg4OSw3ICsxODg5LDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CisgICAgIGVyciA9IGdsb2J1c19tb2R1bGVfYWN0aXZhdGUoR0xPQlVTX0dTSV9HU1NBUElfTU9E VUxFKTsKKyAgICAgaWYoIGVyciAhPSBHTE9CVVNfU1VDQ0VTUyApCisgICAgIHsKKy0gICAgICAg IGdsb2J1c19saWJjX2ZwcmludGYoc3RkZXJyLCAKKysgICAgICAgIGdsb2J1c19saWJjX2Zwcmlu dGYoc3RkZXJyLAorICAgICAgICAgICAgIF9HQVNDU0woIkVycm9yICVkLCBhY3RpdmF0aW5nIGZ0 cCByZXN0YXJ0IHBsdWdpbiBtb2R1bGVcbiIpLAorICAgICAgICAgICAgIGVycik7CisgICAgICAg ICByZXR1cm4gMTsKK0BAIC0xOTA4LDIyICsxOTA4LDIyIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIg Kiphcmd2KQorICAgICB7CisgICAgICAgICByZXR1cm4gMTsKKyAgICAgfQorLSAgICAKKysKKyAg ICAgLyogY3JmdCBpbnRlcmNlcHRpb24gKi8KKyAgICAgaWYoZ19leHQgIT0gTlVMTCkKKyAgICAg eworICAgICAgICAgcmV0dXJuIGdsb2J1c19sX2d1Y19leHQoJmd1Y19pbmZvKTsKKyAgICAgfQor LSAgICAKKy0gICAgZ3VjX2luZm8uaGFuZGxlcyA9IChnbG9idXNfbF9ndWNfaGFuZGxlX3QgKiop IAorKworKyAgICBndWNfaW5mby5oYW5kbGVzID0gKGdsb2J1c19sX2d1Y19oYW5kbGVfdCAqKikK KyAgICAgICAgIGdsb2J1c19jYWxsb2MoZ3VjX2luZm8uY29uYywgc2l6ZW9mKGdsb2J1c19sX2d1 Y19oYW5kbGVfdCAqKSk7CisgICAgIGZvcihpID0gMDsgaSA8IGd1Y19pbmZvLmNvbmM7IGkrKykK KyAgICAgeworLSAgICAgICAgZ3VjX2luZm8uaGFuZGxlc1tpXSA9IChnbG9idXNfbF9ndWNfaGFu ZGxlX3QgKikgCisrICAgICAgICBndWNfaW5mby5oYW5kbGVzW2ldID0gKGdsb2J1c19sX2d1Y19o YW5kbGVfdCAqKQorICAgICAgICAgICAgIGdsb2J1c19jYWxsb2MoMSwgc2l6ZW9mKGdsb2J1c19s X2d1Y19oYW5kbGVfdCkpOworLSAgICAgICAgCisrCisgICAgICAgICBndWNfaW5mby5oYW5kbGVz W2ldLT5ndWNfaW5mbyA9ICZndWNfaW5mbzsKKy0gICAgICAgIAorKworICAgICAgICAgZ2xvYnVz X2dhc3NfY29weV9hdHRyX2luaXQoCisgICAgICAgICAgICAgJmd1Y19pbmZvLmhhbmRsZXNbaV0t PnNvdXJjZV9nYXNzX2NvcHlfYXR0cik7CisgICAgICAgICBnbG9idXNfZ2Fzc19jb3B5X2F0dHJf aW5pdCgKK0BAIC0xOTUxLDExICsxOTUxLDExIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2 KQorICAgICAgICAgICAgICAgICAmZ3VjX2luZm8uaGFuZGxlc1tpXS0+Y2tzbV9nYXNzX2NvcHlf aGFuZGxlKTsKKyAgICAgICAgIH0KKyAgICAgfQorLSAgICAKKysKKyAgICAgZ2xvYnVzX211dGV4 X2luaXQoJmdfbW9uaXRvci5tdXRleCwgTlVMTCk7CisgICAgIGdsb2J1c19jb25kX2luaXQoJmdf bW9uaXRvci5jb25kLCBOVUxMKTsKKyAgICAgZ19tb25pdG9yLndhc19lcnJvciA9IDA7CistICAg IAorKworICAgICBpZihndWNfaW5mby5saXN0X3VybCAhPSBOVUxMKQorICAgICB7CisgICAgICAg ICBnbG9idXNfZmlmb19lbnF1ZXVlKCZndWNfaW5mby5leHBhbmRlZF91cmxfbGlzdCwKK0BAIC0x OTk5LDcgKzE5OTksNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKKyAgICAgICAgICAg ICAgICAgZ2xvYnVzX2xfZ3VjX2ludGVycnVwdF9oYW5kbGVyLAorICAgICAgICAgICAgICAgICBO VUxMKTsKKyAgICAgICAgIH0KKy0gICAgICAgIAorKworICAgICAgICAgaWYoZ3VjX2luZm8uZHVt cGZpbGUgfHwgZ3VjX2luZm8uZHVtcF9vbmx5X2ZpbGUpCisgICAgICAgICB7CisgICAgICAgICAg ICAgR2xvYnVzVGltZVJlbHRpbWVTZXQoZGVsYXksIDYwLCAwKTsKK0BAIC0yMDIwLDEwICsyMDIw LDEwIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorICAgICAgICAgZ19lcnJfbXNnID0g Z2xvYnVzX2Vycm9yX3ByaW50X2ZyaWVuZGx5KAorICAgICAgICAgICAgIGdsb2J1c19lcnJvcl9w ZWVrKHJlc3VsdCkpOworICAgICAgICAgZnByaW50ZihzdGRlcnIsIF9HQVNDU0woIlxuZXJyb3I6 ICVzIiksIGdfZXJyX21zZyk7CistICAgICAgICBnbG9idXNfZnJlZShnX2Vycl9tc2cpOyAgICAg ICAgCisrICAgICAgICBnbG9idXNfZnJlZShnX2Vycl9tc2cpOworICAgICAgICAgcmV0X3ZhbCA9 IDE7CisgICAgIH0KKy0gICAgCisrCisgICAgIGlmKGd1Y19pbmZvLmR1bXBmaWxlIHx8IGd1Y19p bmZvLmR1bXBfb25seV9maWxlKQorICAgICB7CisgICAgICAgICBnbG9idXNfY2FsbGJhY2tfdW5y ZWdpc3RlcihkdW1wZmlsZV9oYW5kbGUsIE5VTEwsIE5VTEwsIE5VTEwpOworQEAgLTIwMzksNyAr MjAzOSw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorICAgICAgICAgcmFpc2UoU0lH SU5UKTsKKyAjZW5kaWYKKyAgICAgfQorLSAgICAKKysKKyAgICAgLyogbWFrZSBzdXJlIHRoZSB0 aW1lciBkb2Vzbid0IGdvIG9mZiBhZnRlciBhIGNhbmNlbC4gIHNldHRpbmcgdGhpcworICAgICAg ICAgdG8gdHJ1ZSBtYWtlcyB0aGUgaGFuZGxlciBpZ25vcmUgZXZlcnl0aGluZyBpZiBpdCBoYXNu J3QgZmlyZWQgeWV0ICovCisgICAgIGdsb2J1c19tdXRleF9sb2NrKCZnX21vbml0b3IubXV0ZXgp OworQEAgLTIwNTYsNyArMjA1Niw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQorICAg ICB7CisgICAgICAgICBnbG9idXNfbGliY19mcHJpbnRmKHN0ZG91dCwgIlxuIik7CisgICAgIH0K Ky0gICAgCisrCisgICAgIGlmKGd1Y19pbmZvLnVkdCkKKyAgICAgeworICAgICAgICAgLyogc2lk ZXN0ZXAgdWR0IHNodXRkb3duIGlzc3VlcyAqLworQEAgLTIwNjgsMTcgKzIwNjgsMTcgQEAgbWFp bihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCisgICAgICAgICAgICAgJmd1Y19pbmZvLmhhbmRsZXNb aV0tPmdhc3NfY29weV9oYW5kbGUpOworICAgICAgICAgZ2xvYnVzX2dhc3NfY29weV9oYW5kbGVf ZGVzdHJveSgKKyAgICAgICAgICAgICAmZ3VjX2luZm8uaGFuZGxlc1tpXS0+Y2tzbV9nYXNzX2Nv cHlfaGFuZGxlKTsKKy0gICAgICAgIAorKworICAgICAgICAgZ2xvYnVzX2ZyZWUoZ3VjX2luZm8u aGFuZGxlc1tpXSk7CisgICAgIH0KKyAgICAgZ2xvYnVzX2ZyZWUoZ3VjX2luZm8uaGFuZGxlcyk7 CisgICAgIGd1Y19pbmZvLmhhbmRsZXMgPSBOVUxMOworLSAgICAKKysKKyAgICAgZ2xvYnVzX211 dGV4X2Rlc3Ryb3koJmdfbW9uaXRvci5tdXRleCk7CisgICAgIGdsb2J1c19jb25kX2Rlc3Ryb3ko JmdfbW9uaXRvci5jb25kKTsKKyAKKyAgICAgZ2xvYnVzX2xfZ3VjX2luZm9fZGVzdHJveSgmZ3Vj X2luZm8pOworLSAgICAKKysKKyAgICAgZ2xvYnVzX21vZHVsZV9kZWFjdGl2YXRlKEdMT0JVU19H U0lfR1NTQVBJX01PRFVMRSk7CisgICAgIC8qIFhYWCBmaXggaGFuZyBnbG9idXNfbW9kdWxlX2Rl YWN0aXZhdGVfYWxsKCk7ICovCisgCitAQCAtMjA5NSwxNyArMjA5NSwxNyBAQCBQYXJhbWV0ZXJz OgorIFJldHVybnM6CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworIAorLXN0YXRpYyAKKytzdGF0 aWMKKyB2b2lkCisgZ2xvYnVzX2xfdXJsX2NvcHlfbW9uaXRvcl9jYWxsYmFjaygKKyAgICAgdm9p ZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tfYXJnLAorICAgICBnbG9i dXNfZ2Fzc19jb3B5X2hhbmRsZV90ICogICAgICAgICBoYW5kbGUsCisgICAgIGdsb2J1c19vYmpl Y3RfdCAqICAgICAgICAgICAgICAgICAgIGVycm9yKQorLXsgICAgCisreworICAgICBnbG9idXNf bF9ndWNfdHJhbnNmZXJfdCAqICAgICAgICAgICB0cmFuc2Zlcl9pbmZvOworLSAgICAKKysKKyAg ICAgdHJhbnNmZXJfaW5mbyA9IChnbG9idXNfbF9ndWNfdHJhbnNmZXJfdCAqKSAgY2FsbGJhY2tf YXJnOworLSAgICAKKysKKyAgICAgZ2xvYnVzX211dGV4X2xvY2soJmdfbW9uaXRvci5tdXRleCk7 CisgICAgIHsKKyAgICAgICAgIGlmKGVycm9yICE9IE5VTEwpCitAQCAtMjExMywxNyArMjExMywx NyBAQCBnbG9idXNfbF91cmxfY29weV9tb25pdG9yX2NhbGxiYWNrKAorICAgICAgICAgICAgIGlm KCFnX2NvbnRpbnVlKQorICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgZ2xvYnVzX2xf Z3VjX2VucXVldWVfcGFpcigKKy0gICAgICAgICAgICAgICAgICAgICZ0cmFuc2Zlcl9pbmZvLT5n dWNfaW5mby0+dXNlcl91cmxfbGlzdCwgCisrICAgICAgICAgICAgICAgICAgICAmdHJhbnNmZXJf aW5mby0+Z3VjX2luZm8tPnVzZXJfdXJsX2xpc3QsCisgICAgICAgICAgICAgICAgICAgICB0cmFu c2Zlcl9pbmZvLT51cmxzKTsKKy0gICAgICAgICAgICAgICAgICAgIAorKworICAgICAgICAgICAg ICAgICB0cmFuc2Zlcl9pbmZvLT51cmxzID0gTlVMTDsKKy0gICAgCisrCisgICAgICAgICAgICAg ICAgIGdfbW9uaXRvci5kb25lID0gR0xPQlVTX1RSVUU7CisgICAgICAgICAgICAgICAgIGdfbW9u aXRvci51c2VfZXJyID0gR0xPQlVTX1RSVUU7CisgICAgICAgICAgICAgICAgIGdfbW9uaXRvci5l cnIgPSBnbG9idXNfb2JqZWN0X2NvcHkoZXJyb3IpOworICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICBlbHNlCistICAgICAgICAgICAgeyAgCisrICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgICBjaGFyICogICAgICAgICAgICAgICAgICBtc2c7CisgICAgICAgICAgICAgICAgIGdfbW9u aXRvci53YXNfZXJyb3IrKzsKKyAgICAgICAgICAgICAgICAgbXNnID0gZ2xvYnVzX2Vycm9yX3By aW50X2ZyaWVuZGx5KGVycm9yKTsKK0BAIC0yMTMyLDEyICsyMTMyLDEyIEBAIGdsb2J1c19sX3Vy bF9jb3B5X21vbml0b3JfY2FsbGJhY2soCisgICAgICAgICAgICAgfQorIAorICAgICAgICAgfQor LSAgICAgICAgCisrCisgICAgICAgICB0cmFuc2Zlcl9pbmZvLT5ndWNfaW5mby0+Y29uY19vdXRz dGFuZGluZy0tOworICAgICAgICAgdHJhbnNmZXJfaW5mby0+aGFuZGxlLT5jdXJyZW50X3RyYW5z ZmVyID0gTlVMTDsKKyAgICAgICAgIGdsb2J1c19sX2d1Y191cmxfcGFpcl9mcmVlKHRyYW5zZmVy X2luZm8tPnVybHMpOworICAgICAgICAgdHJhbnNmZXJfaW5mby0+dXJscyA9IE5VTEw7CistICAg ICAgICAKKysKKyAgICAgICAgIGlmKHRyYW5zZmVyX2luZm8tPmhhbmRsZS0+c291cmNlX2Z0cF9h dHRyKQorICAgICAgICAgeworICAgICAgICAgICAgIGdsb2J1c19mdHBfY2xpZW50X29wZXJhdGlv bmF0dHJfZGVzdHJveSgKK0BAIC0yMTQ5LDE2ICsyMTQ5LDE2IEBAIGdsb2J1c19sX3VybF9jb3B5 X21vbml0b3JfY2FsbGJhY2soCisgICAgICAgICAgICAgZ2xvYnVzX2Z0cF9jbGllbnRfb3BlcmF0 aW9uYXR0cl9kZXN0cm95KAorICAgICAgICAgICAgICAgICAmdHJhbnNmZXJfaW5mby0+aGFuZGxl LT5kZXN0X2Z0cF9hdHRyKTsKKyAgICAgICAgICAgICB0cmFuc2Zlcl9pbmZvLT5oYW5kbGUtPmRl c3RfZnRwX2F0dHIgPSBOVUxMOworLSAgICAgICAgfSAgIAorKyAgICAgICAgfQorICAgICB9Cisg ICAgIGdsb2J1c19tdXRleF91bmxvY2soJmdfbW9uaXRvci5tdXRleCk7CistICAgIAorKworICAg ICBnbG9idXNfY2FsbGJhY2tfcmVnaXN0ZXJfb25lc2hvdCgKKyAgICAgICAgIE5VTEwsCisgICAg ICAgICBOVUxMLAorICAgICAgICAgZ2xvYnVzX2xfZ3VjX3RyYW5zZmVyX2tpY2tvdXQsCisgICAg ICAgICB0cmFuc2Zlcl9pbmZvKTsKKy0gICAgICAgIAorKworICAgICByZXR1cm47CisgfSAvKiBn bG9idXNfbF91cmxfY29weV9tb25pdG9yX2NhbGxiYWNrKCkgKi8KKyAKK0BAIC0yMTc4LDcgKzIx NzgsNyBAQCBnbG9idXNfbF9nYXNzX2NvcHlfcGVyZm9ybWFuY2VfY2IoCisgICAgIGZsb2F0ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2Z190aHJvdWdocHV0KQor IHsKKyAgICAgZ2xvYnVzX2xpYmNfZnByaW50ZihzdGRvdXQsCistICAgICAgICAiICUxMiIgR0xP QlVTX09GRl9UX0ZPUk1BVCAKKysgICAgICAgICIgJTEyIiBHTE9CVVNfT0ZGX1RfRk9STUFUCisg ICAgICAgICAiIGJ5dGVzICUxMi4yZiBNQi9zZWMgYXZnICUxMi4yZiBNQi9zZWMgaW5zdFxyIiwK KyAgICAgICAgIHRvdGFsX2J5dGVzLAorICAgICAgICAgYXZnX3Rocm91Z2hwdXQgLyAoMTAyNCAq IDEwMjQpLAorQEAgLTIyNDQsMTQgKzIyNDQsMTQgQEAgZ2xvYnVzX2xfZ3VjX2VudHJ5X2NiKAor ICAgICBjaGFyICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXBfdW5pcXVlOworICAg ICBnbG9idXNfYm9vbF90ICAgICAgICAgICAgICAgICAgICAgICBzZWVuID0gR0xPQlVTX0ZBTFNF OworICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR2YWw7CistICAg IGdsb2J1c19sX2d1Y190cmFuc2Zlcl90ICogICAgICAgICAgIHRyYW5zZmVyX2luZm87ICAgICAg ICAgICAgICAgICAgICAgIAorKyAgICBnbG9idXNfbF9ndWNfdHJhbnNmZXJfdCAqICAgICAgICAg ICB0cmFuc2Zlcl9pbmZvOworICAgICBnbG9idXNfbF9ndWNfdXJsX2luZm9fdCAqICAgICAgICAg ICB1cmxpbmZvOworLSAgICAKKysKKyAgICAgdHJhbnNmZXJfaW5mbyA9IChnbG9idXNfbF9ndWNf dHJhbnNmZXJfdCAqKSB1c2VyX2FyZzsKKyAgICAgZ3VjX2luZm8gPSB0cmFuc2Zlcl9pbmZvLT5n dWNfaW5mbzsKKyAKKyAgICAgZ2xvYnVzX211dGV4X2xvY2soJmdfbW9uaXRvci5tdXRleCk7Cist ICAgIAorKworICAgICBpZihndWNfaW5mby0+cmVjdXJzZSAmJiBpbmZvX3N0YXQgJiYKKyAgICAg ICAgIGluZm9fc3RhdC0+dHlwZSA9PSBHTE9CVVNfR0FTU19DT1BZX0dMT0JfRU5UUllfRElSICYm CisgICAgICAgICBpbmZvX3N0YXQtPnVuaXF1ZV9pZCAmJiAqaW5mb19zdGF0LT51bmlxdWVfaWQp CitAQCAtMjI2MSwxOSArMjI2MSwxOSBAQCBnbG9idXNfbF9ndWNfZW50cnlfY2IoCisgICAgICAg ICAgICAgJmd1Y19pbmZvLT5yZWN1cnNlX2hhc2gsCisgICAgICAgICAgICAgdG1wX3VuaXF1ZSwK KyAgICAgICAgICAgICB0bXBfdW5pcXVlKTsKKy0gICAgICAgICAgICAKKysKKyAgICAgICAgIGlm KHJldHZhbCAhPSAwKQorICAgICAgICAgeworICAgICAgICAgICAgIGdsb2J1c19mcmVlKHRtcF91 bmlxdWUpOworICAgICAgICAgICAgIHNlZW4gPSBHTE9CVVNfVFJVRTsKKyAgICAgICAgIH0KKyAg ICAgfQorLSAgICAKKysKKyAgICAgaWYoIXNlZW4pCisgICAgIHsKKy0gICAgICAgIHVybGluZm8g PSAoZ2xvYnVzX2xfZ3VjX3VybF9pbmZvX3QgKikgCisrICAgICAgICB1cmxpbmZvID0gKGdsb2J1 c19sX2d1Y191cmxfaW5mb190ICopCisgICAgICAgICAgICAgZ2xvYnVzX2NhbGxvYyhzaXplb2Yo Z2xvYnVzX2xfZ3VjX3VybF9pbmZvX3QpLCAxKTsKKy0gICAgICAgICAgICAKKysKKyAgICAgICAg IHVybGluZm8tPnVybCA9IGdsb2J1c19saWJjX3N0cmR1cCh1cmwpOworICAgICAgICAgdXJsaW5m by0+bW9kZSA9IGluZm9fc3RhdC0+bW9kZTsKKyAgICAgICAgIHVybGluZm8tPm1kdG0gPSBpbmZv X3N0YXQtPm1kdG07CitAQCAtMjI4NCwxMSArMjI4NCwxMSBAQCBnbG9idXNfbF9ndWNfZW50cnlf Y2IoCisgICAgICAgICAgICAgJnRyYW5zZmVyX2luZm8tPm1hdGNoZWRfdXJsX2xpc3QsCisgICAg ICAgICAgICB1cmxpbmZvKTsKKyAgICAgfQorLSAgICAKKysKKyAgICAgZ2xvYnVzX211dGV4X3Vu bG9jaygmZ19tb25pdG9yLm11dGV4KTsKKy0gICAgCistICAgIHJldHVybjsgICAKKy19ICAgIAor KworKyAgICByZXR1cm47CisrfQorIAorIHN0YXRpYworIHZvaWQKK0BAIC0yMjk5LDUwICsyMjk5 LDUwIEBAIGdsb2J1c19sX2d1Y19kZXN0X2VudHJ5X2NiKAorIHsKKyAgICAgZ2xvYnVzX2xfZ3Vj X2luZm9fdCAqICAgICAgICAgICAgICAgZ3VjX2luZm87CisgICAgIGludCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJldHZhbDsKKy0gICAgZ2xvYnVzX2xfZ3VjX3RyYW5zZmVyX3Qg KiAgICAgICAgICAgdHJhbnNmZXJfaW5mbzsgICAgICAgICAgICAgICAgICAgICAgCisrICAgIGds b2J1c19sX2d1Y190cmFuc2Zlcl90ICogICAgICAgICAgIHRyYW5zZmVyX2luZm87CisgICAgIGds b2J1c19sX2d1Y191cmxfaW5mb190ICogICAgICAgICAgIHVybGluZm87CistICAgIAorKworICAg ICB0cmFuc2Zlcl9pbmZvID0gKGdsb2J1c19sX2d1Y190cmFuc2Zlcl90ICopIHVzZXJfYXJnOwor ICAgICBndWNfaW5mbyA9IHRyYW5zZmVyX2luZm8tPmd1Y19pbmZvOworIAorICAgICBnbG9idXNf bXV0ZXhfbG9jaygmZ19tb25pdG9yLm11dGV4KTsKKy0gICAgICAgICAgICAKKysKKyAgICAgaWYo aW5mb19zdGF0ICYmCisgICAgICAgICBpbmZvX3N0YXQtPnR5cGUgIT0gR0xPQlVTX0dBU1NfQ09Q WV9HTE9CX0VOVFJZX0RJUikKKyAgICAgeworLSAgICAgICAgdXJsaW5mbyA9IChnbG9idXNfbF9n dWNfdXJsX2luZm9fdCAqKSAKKysgICAgICAgIHVybGluZm8gPSAoZ2xvYnVzX2xfZ3VjX3VybF9p bmZvX3QgKikKKyAgICAgICAgICAgICBnbG9idXNfY2FsbG9jKHNpemVvZihnbG9idXNfbF9ndWNf dXJsX2luZm9fdCksIDEpOworLSAgICAgICAgICAgIAorKworICAgICAgICAgdXJsaW5mby0+dXJs ID0gZ2xvYnVzX2xpYmNfc3RyZHVwKHVybCk7CisgICAgICAgICB1cmxpbmZvLT5tb2RlID0gaW5m b19zdGF0LT5tb2RlOworICAgICAgICAgdXJsaW5mby0+bWR0bSA9IGluZm9fc3RhdC0+bWR0bTsK KyAgICAgICAgIHVybGluZm8tPnNpemUgPSBpbmZvX3N0YXQtPnNpemU7CisgICAgICAgICB1cmxp bmZvLT50eXBlID0gaW5mb19zdGF0LT50eXBlOworLSAgICAgICAgCisrCisgICAgICAgICByZXR2 YWwgPSBnbG9idXNfaGFzaHRhYmxlX2luc2VydCgKKyAgICAgICAgICAgICAmZ3VjX2luZm8tPmRl c3RfaGFzaCwKKyAgICAgICAgICAgICB1cmxpbmZvLT51cmwsCisgICAgICAgICAgICAgdXJsaW5m byk7CistICAgICAgICAgICAgCisrCisgICAgICAgICBpZihyZXR2YWwgIT0gMCkKKyAgICAgICAg IHsKKyAgICAgICAgICAgICBnbG9idXNfZnJlZSh1cmxpbmZvLT51cmwpOworICAgICAgICAgICAg IGdsb2J1c19mcmVlKHVybGluZm8pOworICAgICAgICAgfQorICAgICB9CistICAgICAgICAKKysK KyAgICAgZ2xvYnVzX211dGV4X3VubG9jaygmZ19tb25pdG9yLm11dGV4KTsKKy0gICAgCistICAg IHJldHVybjsgICAKKy19ICAgIAorIAorLXN0YXRpYyAKKysgICAgcmV0dXJuOworK30KKysKKytz dGF0aWMKKyB2b2lkCisgZ2xvYnVzX2xfZ3VjX2luZm9fZGVzdHJveSgKKyAgICAgZ2xvYnVzX2xf Z3VjX2luZm9fdCAqICAgICAgICAgICAgICAgICAgICBndWNfaW5mbykKKyB7CisgICAgIE9NX3Vp bnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbl9zdGF0OworLSAgICAKKysKKyAgICAg aWYoZ3VjX2luZm8tPnNvdXJjZV9zdWJqZWN0KQorICAgICB7CisgICAgICAgICBnbG9idXNfZnJl ZShndWNfaW5mby0+c291cmNlX3N1YmplY3QpOworQEAgLTI0MTYsNyArMjQxNiw3IEBAIHN0YXRp YworIGludAorIGdsb2J1c19sX2d1Y19wYXJzZV9maWxlKAorICAgICBnbG9idXNfbF9ndWNfaW5m b190ICogICAgICAgICAgICAgICAgICAgICAgICAgICBndWNfaW5mbywKKy0gICAgY2hhciAqICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZV9uYW1lLCAKKysgICAg Y2hhciAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZV9uYW1l LAorICAgICBnbG9idXNfZmlmb190ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 c2VyX3VybF9saXN0KQorIHsKKyAgICAgRklMRSAqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZnB0cjsKK0BAIC0yNDQ2LDcgKzI0NDYsNyBAQCBnbG9idXNfbF9ndWNf cGFyc2VfZmlsZSgKKyAgICAgICAgIHVybF9sZW4gPSAwOworICAgICAgICAgb2Zmc2V0ID0gZ3Vj X2luZm8tPnBhcnRpYWxfb2Zmc2V0OworICAgICAgICAgbGVuZ3RoID0gZ3VjX2luZm8tPnBhcnRp YWxfbGVuZ3RoOworLSAgICAgICAgICAgICAgICAKKysKKyAgICAgICAgIHdoaWxlKCpwICYmIGlz c3BhY2UoKnApKQorICAgICAgICAgeworICAgICAgICAgICAgIHArKzsKK0BAIC0yNDYwLDcgKzI0 NjAsNyBAQCBnbG9idXNfbF9ndWNfcGFyc2VfZmlsZSgKKyAgICAgICAgIHsKKyAgICAgICAgICAg ICBjb250aW51ZTsKKyAgICAgICAgIH0KKy0gICAgICAgIAorKworICAgICAgICAgaWYoKnAgPT0g JyInKQorICAgICAgICAgeworICAgICAgICAgICAgIHJjID0gc3NjYW5mKHAsICJcIiVbXlwiXVwi Iiwgc3JjX3VybCk7CitAQCAtMjQ2OSwxNiArMjQ2OSwxNiBAQCBnbG9idXNfbF9ndWNfcGFyc2Vf ZmlsZSgKKyAgICAgICAgIGVsc2UKKyAgICAgICAgIHsKKyAgICAgICAgICAgICByYyA9IHNzY2Fu ZihwLCAiJXMiLCBzcmNfdXJsKTsKKy0gICAgICAgIH0gCistICAgICAgICAKKysgICAgICAgIH0K KysKKyAgICAgICAgIGlmKHJjICE9IDEpCistICAgICAgICB7ICAgCisrICAgICAgICB7CisgICAg ICAgICAgICAgZ290byBlcnJvcl9wYXJzZTsKKyAgICAgICAgIH0KKy0gICAgICAgIAorKworICAg ICAgICAgdXJsX2xlbiArPSBzdHJsZW4oc3JjX3VybCk7CisgICAgICAgICBwID0gcCArIHVybF9s ZW47CistICAgICAgIAorKworICAgICAgICAgdXJsX2xlbiA9IDA7CisgICAgICAgICB3aGlsZSgq cCAmJiBpc3NwYWNlKCpwKSkKKyAgICAgICAgIHsKK0BAIC0yNDkzLDE2ICsyNDkzLDE2IEBAIGds b2J1c19sX2d1Y19wYXJzZV9maWxlKAorICAgICAgICAgZWxzZQorICAgICAgICAgeworICAgICAg ICAgICAgIHJjID0gc3NjYW5mKHAsICIlcyIsIGRzdF91cmwpOworLSAgICAgICAgfSAgICAgICAg CisrICAgICAgICB9CisgCisgICAgICAgICBpZihyYyAhPSAxKQorLSAgICAgICAgeyAgIAorKyAg ICAgICAgeworICAgICAgICAgICAgIGdvdG8gZXJyb3JfcGFyc2U7CisgICAgICAgICB9CistICAg ICAgICAKKysKKyAgICAgICAgIHVybF9sZW4gKz0gc3RybGVuKGRzdF91cmwpOworICAgICAgICAg cCA9IHAgKyB1cmxfbGVuOworLSAgICAgICAgCisrCisgICAgICAgICB3aGlsZSgqcCAmJiBpc3Nw YWNlKCpwKSkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBwKys7CitAQCAtMjUxMiw3ICsyNTEy LDcgQEAgZ2xvYnVzX2xfZ3VjX3BhcnNlX2ZpbGUoCisgICAgICAgICAgICAgcmMgPSBzc2NhbmYo cCwgIiUiR0xPQlVTX09GRl9UX0ZPUk1BVCIsJSJHTE9CVVNfT0ZGX1RfRk9STUFULAorICAgICAg ICAgICAgICAgICAgJm9mZnNldCwgJmxlbmd0aCk7CisgICAgICAgICAgICAgaWYocmMgPCAxIHx8 IG9mZnNldCA8IC0xIHx8IGxlbmd0aCA8IC0xKQorLSAgICAgICAgICAgIHsgICAKKysgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3JfcGFyc2U7CisgICAgICAgICAgICAg fQorICAgICAgICAgfQorQEAgLTI1NDgsNyArMjU0OCw3IEBAIGdsb2J1c19sX2d1Y19wYXJzZV9m aWxlKAorICAgICB9CisgCisgICAgIHJldHVybiAwOworLSAgICAKKysKKyBlcnJvcl9wYXJzZToK KyAgICAgaWYoZnB0ciAhPSBzdGRpbikKKyAgICAgeworQEAgLTI1NTYsNyArMjU1Niw3IEBAIGVy cm9yX3BhcnNlOgorICAgICB9CisgICAgIGZwcmludGYoc3RkZXJyLCBfR0FTQ1NMKCJQcm9ibGVt IHBhcnNpbmcgdXJsIGxpc3Q6IGxpbmUgJWRcbiIpLCBsaW5lX251bSk7CisgICAgIHJldHVybiAt MjsKKy0gCisrCisgfQorIAorIHN0YXRpYworQEAgLTI1OTIsNyArMjU5Miw3IEBAIGdsb2J1c19s X2d1Y19sb2FkX2FsaWFzX2ZpbGUoCisgICAgIHsKKyAgICAgICAgIGxpbmVfbnVtKys7CisgICAg ICAgICBwID0gbGluZTsKKy0gICAgICAgICAgICAgICAgCisrCisgICAgICAgICB3aGlsZSgqcCAm JiBpc3NwYWNlKCpwKSkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBwKys7CitAQCAtMjYwMSwy OCArMjYwMSwyOCBAQCBnbG9idXNfbF9ndWNfbG9hZF9hbGlhc19maWxlKAorICAgICAgICAgewor ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgfQorLSAgICAgICAgCisrCisgICAgICAg ICBpZigqcCA9PSAnQCcpCisgICAgICAgICB7CisgICAgICAgICAgICAgbmV3YWxpYXMgPSBHTE9C VVNfVFJVRTsKKyAgICAgICAgICAgICByYyA9IHNzY2FuZihwLCAiQCVzIiwgYnVmKTsKKyAgICAg ICAgICAgICBpZihyYyAhPSAxKQorLSAgICAgICAgICAgIHsgICAKKysgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgIGdvdG8gZXJyb3JfcGFyc2U7CisgICAgICAgICAgICAgfQorICAgICAg ICAgfQorICAgICAgICAgZWxzZQorICAgICAgICAgeworICAgICAgICAgICAgIGlmKCFhbGlhc19l bnQpCistICAgICAgICAgICAgeyAgIAorKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg Z290byBlcnJvcl9wYXJzZTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgcmMgPSBzc2Nh bmYocCwgIiVzIiwgYnVmKTsKKyAgICAgICAgICAgICBpZihyYyAhPSAxKQorLSAgICAgICAgICAg IHsgICAKKysgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3JfcGFyc2U7 CisgICAgICAgICAgICAgfQorLSAgICAgICAgfSAgICAgICAgICAgCisrICAgICAgICB9CisgCisg ICAgICAgICBpZihuZXdhbGlhcykKKyAgICAgICAgIHsKK0BAIC0yNjM4LDcgKzI2MzgsNyBAQCBn bG9idXNfbF9ndWNfbG9hZF9hbGlhc19maWxlKAorICAgICAgICAgICAgIGlmKHJjICE9IDApCisg ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBnb3RvIGVycm9yX3BhcnNlOworLSAgICAg ICAgICAgIH0gICAgICAgICAgICAKKysgICAgICAgICAgICB9CisgICAgICAgICAgICAgbmV3YWxp YXMgPSBHTE9CVVNfRkFMU0U7CisgICAgICAgICB9CisgICAgICAgICBlbHNlCitAQCAtMjY0OSwy MSArMjY0OSwyMSBAQCBnbG9idXNfbF9ndWNfbG9hZF9hbGlhc19maWxlKAorICAgICB9CisgCisg ICAgIGZjbG9zZShmcHRyKTsKKy0gICAgCisrCisgICAgIGd1Y19sX2FsaWFzZXMgPSBHTE9CVVNf VFJVRTsKKy0gICAgZ3VjX2xfc3JjX2FsaWFzX2VudCA9IChnbG9idXNfbF9ndWNfYWxpYXNfdCAq KSAKKysgICAgZ3VjX2xfc3JjX2FsaWFzX2VudCA9IChnbG9idXNfbF9ndWNfYWxpYXNfdCAqKQor ICAgICAgICAgZ2xvYnVzX2hhc2h0YWJsZV9sb29rdXAoJmd1Y19sX2FsaWFzX3RhYmxlLCAodm9p ZCAqKSAic291cmNlIik7CistICAgIGd1Y19sX2RzdF9hbGlhc19lbnQgPSAoZ2xvYnVzX2xfZ3Vj X2FsaWFzX3QgKikgCisrICAgIGd1Y19sX2RzdF9hbGlhc19lbnQgPSAoZ2xvYnVzX2xfZ3VjX2Fs aWFzX3QgKikKKyAgICAgICAgIGdsb2J1c19oYXNodGFibGVfbG9va3VwKCZndWNfbF9hbGlhc190 YWJsZSwgKHZvaWQgKikgImRlc3RpbmF0aW9uIik7CisgCisgICAgIHJldHVybiAwOworLSAgICAK KysKKyBlcnJvcl9wYXJzZToKKyAgICAgZmNsb3NlKGZwdHIpOworLSAgICBmcHJpbnRmKHN0ZGVy ciwgCisrICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgIlByb2JsZW0gcGFyc2luZyBhbGlh cyBmaWxlICVzOiBsaW5lICVkXG4iLCBmaWxlX25hbWUsIGxpbmVfbnVtKTsKKyAgICAgcmV0dXJu IC0yOworLSAKKysKKyB9CisgCisgCitAQCAtMjY5OCwxNCArMjY5OCwxNCBAQCBnbG9idXNfbF9n dWNfdHJhbnNmZXIoCisgICAgIHNvdXJjZV9pb19oYW5kbGUgPSBnbG9idXNfbF9ndWNfZ2V0X2lv X2hhbmRsZShzcmNfdXJsLCBmaWxlbm8oc3RkaW4pKTsKKyAgICAgZGVzdF9pb19oYW5kbGUgPSBn bG9idXNfbF9ndWNfZ2V0X2lvX2hhbmRsZShkc3RfdXJsLCBmaWxlbm8oc3Rkb3V0KSk7CisgCist ICAgIGlmKGd1Y19pbmZvLT5jb21wX2NoZWNrc3VtKSAKKysgICAgaWYoZ3VjX2luZm8tPmNvbXBf Y2hlY2tzdW0pCisgICAgIHsKKyAgICAgICAgIC8qCisgICAgICAgICAgKiBBc3NvY2lhdGUgdGhl IHNvdXJjZSBjaGVja3N1bSB3aXRoIHRoZSB0cmFuc2ZlciBoYW5kbGUKKyAgICAgICAgICAqIHNv IHRoYXQgdGhlIGRlc3RpbmF0aW9uIGNoZWNrc3VtIGNhbiBiZSB2ZXJpZmllZCBhZnRlcgorICAg ICAgICAgICogdGhlIHN1Y2Nlc3NmdWwgdHJhbnNmZXIuCistICAgICAgICAgKi8gICAKKy0gICAg ICAgIGdsb2J1c19nYXNzX2NvcHlfc2V0X2NoZWNrc3VtKCZoYW5kbGUtPmdhc3NfY29weV9oYW5k bGUsIAorKyAgICAgICAgICovCisrICAgICAgICBnbG9idXNfZ2Fzc19jb3B5X3NldF9jaGVja3N1 bSgmaGFuZGxlLT5nYXNzX2NvcHlfaGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdHJhbnNmZXJfaW5mby0+dXJscy0+c3JjX2luZm8tPmNoZWNrc3VtKTsKKyAg ICAgfQorIAorQEAgLTI3MjQsNyArMjcyNCw3IEBAIGdsb2J1c19sX2d1Y190cmFuc2ZlcigKKyAg ICAgICAgICAgICBzcmNfdXJsLAorICAgICAgICAgICAgIEdMT0JVU19UUlVFLAorICAgICAgICAg ICAgIEdMT0JVU19GQUxTRSk7CistICAgIH0gCisrICAgIH0KKyAgICAgaWYoZGVzdF9pb19oYW5k bGUgPT0gTlVMTCkKKyAgICAgeworICAgICAgICAgZ2xvYnVzX2xfZ3VjX2dhc3NfYXR0cl9pbml0 KAorQEAgLTI3MzcsMTIgKzI3MzcsMTIgQEAgZ2xvYnVzX2xfZ3VjX3RyYW5zZmVyKAorICAgICAg ICAgICAgIEdMT0JVU19GQUxTRSk7CisgICAgIH0KKyAKKy0gICAgLyogc2V0dGluZyBvZmZzZXRz IHNob3VsZCBoYXZlIGJlZW4gYW4gYXR0ciBvcHRpb24gaW4gZ2Fzc19jb3B5IGJ1dCAKKysgICAg Lyogc2V0dGluZyBvZmZzZXRzIHNob3VsZCBoYXZlIGJlZW4gYW4gYXR0ciBvcHRpb24gaW4gZ2Fz c19jb3B5IGJ1dAorICAgICAgIHNpbmNlIHdlIG9ubHkgcnVuIG9uZSBvcGVyYXRpb24gcGVyIGhh bmRsZSB0aGlzIHdpbGwgYmUgb2suICovCisgICAgIGdsb2J1c19nYXNzX2NvcHlfc2V0X3BhcnRp YWxfb2Zmc2V0cygKKy0gICAgICAgICZoYW5kbGUtPmdhc3NfY29weV9oYW5kbGUsIAorKyAgICAg ICAgJmhhbmRsZS0+Z2Fzc19jb3B5X2hhbmRsZSwKKyAgICAgICAgIHRyYW5zZmVyX2luZm8tPnVy bHMtPm9mZnNldCwKKy0gICAgICAgICh0cmFuc2Zlcl9pbmZvLT51cmxzLT5sZW5ndGggPT0gLTEp ID8gCisrICAgICAgICAodHJhbnNmZXJfaW5mby0+dXJscy0+bGVuZ3RoID09IC0xKSA/CisgICAg ICAgICAgICAgLTEgOiB0cmFuc2Zlcl9pbmZvLT51cmxzLT5vZmZzZXQgKyB0cmFuc2Zlcl9pbmZv LT51cmxzLT5sZW5ndGgpOworIAorICAgICBpZihzb3VyY2VfaW9faGFuZGxlKQorQEAgLTI3Njks MTggKzI3NjksMTggQEAgZ2xvYnVzX2xfZ3VjX3RyYW5zZmVyKAorICAgICB7CisgICAgICAgICBp Zihkc3RfdXJsW3N0cmxlbihkc3RfdXJsKSAtIDFdID09ICcvJykKKyAgICAgICAgIHsKKy0gICAg ICAgICAgICBkc3RfaXNfZGlyID0gR0xPQlVTX1RSVUU7ICAgCisrICAgICAgICAgICAgZHN0X2lz X2RpciA9IEdMT0JVU19UUlVFOworICAgICAgICAgfQorICAgICAgICAgZWxzZQorICAgICAgICAg eworICAgICAgICAgICAgIGRzdF9pc19kaXIgPSBHTE9CVVNfRkFMU0U7CistICAgICAgICB9ICAg CistICAgIAorKyAgICAgICAgfQorKworICAgICAgICAgaWYoIWdfcXVpZXRfZmxhZykKKyAgICAg ICAgIHsKKyAgICAgICAgICAgICBpZihkc3RfaXNfZGlyKQorICAgICAgICAgICAgIHsKKy0gICAg ICAgICAgICAgICAgc3JjX2ZpbGVuYW1lID0gc3RycmNocihzcmNfdXJsLCAnLycpOyAgICAgICAg ICAgICAgIAorKyAgICAgICAgICAgICAgICBzcmNfZmlsZW5hbWUgPSBzdHJyY2hyKHNyY191cmws ICcvJyk7CisgICAgICAgICAgICAgICAgIHdoaWxlKHNyY19maWxlbmFtZSA+IHNyY191cmwgJiYg KnNyY19maWxlbmFtZSA9PSAnLycpCisgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICAgICAgIHNyY19maWxlbmFtZS0tOworQEAgLTI3OTAsOCArMjc5MCw4IEBAIGdsb2J1c19sX2d1 Y190cmFuc2ZlcigKKyAgICAgICAgICAgICAgICAgICAgIHNyY19maWxlbmFtZS0tOworICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIHNyY19maWxlbmFtZSsrOworLSAgICAgICAg ICAgICAgICAKKy0gICAgICAgICAgICAgICAgZHN0X2ZpbGVuYW1lID0gc3RycmNocihkc3RfdXJs LCAnLycpOyAgICAgICAgICAgICAgIAorKworKyAgICAgICAgICAgICAgICBkc3RfZmlsZW5hbWUg PSBzdHJyY2hyKGRzdF91cmwsICcvJyk7CisgICAgICAgICAgICAgICAgIHdoaWxlKGRzdF9maWxl bmFtZSA+IGRzdF91cmwgJiYgKmRzdF9maWxlbmFtZSA9PSAnLycpCisgICAgICAgICAgICAgICAg IHsKKyAgICAgICAgICAgICAgICAgICAgIGRzdF9maWxlbmFtZS0tOworQEAgLTI4MDksMTYgKzI4 MDksMTYgQEAgZ2xvYnVzX2xfZ3VjX3RyYW5zZmVyKAorICAgICAgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgICAgICBzcmNfZmlsZW5hbWUgPSBzcmNfdXJsOworICAgICAgICAgICAgICAg ICB9CistICAgICAgICAgICAgICAgIAorKworICAgICAgICAgICAgICAgICBkc3RfZmlsZW5hbWUg PSBzdHJyY2hyKGRzdF91cmwsICcvJyk7CisgICAgICAgICAgICAgICAgIGlmKCFkc3RfZmlsZW5h bWUrKykKKyAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgZHN0X2ZpbGVu YW1lID0gZHN0X3VybDsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKy0gICAg CistICAgICAgICAgICAgCistICAgICAgICAgICAgaWYoc3JjX3VybF9iYXNlID09IEdMT0JVU19O VUxMIHx8IAorKworKworKyAgICAgICAgICAgIGlmKHNyY191cmxfYmFzZSA9PSBHTE9CVVNfTlVM TCB8fAorICAgICAgICAgICAgICAgICBzcmNfZmlsZW5hbWUgLSBzcmNfdXJsICE9IHNyY191cmxf YmFzZV9sZW4gfHwKKyAgICAgICAgICAgICAgICAgc3RybmNtcChzcmNfdXJsLCBzcmNfdXJsX2Jh c2UsIHNyY19maWxlbmFtZSAtIHNyY191cmwpKQorICAgICAgICAgICAgIHsKK0BAIC0yODI3LDcg KzI4MjcsNyBAQCBnbG9idXNfbF9ndWNfdHJhbnNmZXIoCisgICAgICAgICAgICAgICAgICAgICBn bG9idXNfZnJlZShzcmNfdXJsX2Jhc2UpOworICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgIHNyY191cmxfYmFzZSA9IGdsb2J1c19saWJjX3N0cmR1cChzcmNfdXJsKTsKKy0gICAg CisrCisgICAgICAgICAgICAgICAgIHNyY191cmxfYmFzZV9sZW4gPSBzcmNfZmlsZW5hbWUgLSBz cmNfdXJsOworICAgICAgICAgICAgICAgICBzcmNfdXJsX2Jhc2Vbc3JjX3VybF9iYXNlX2xlbl0g PSAnXDAnOworICAgICAgICAgICAgICAgICBuZXdfdXJsID0gR0xPQlVTX1RSVUU7CitAQCAtMjgz Niw4ICsyODM2LDggQEAgZ2xvYnVzX2xfZ3VjX3RyYW5zZmVyKAorICAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICAgbmV3X3VybCA9IEdMT0JVU19GQUxTRTsKKyAgICAgICAgICAgICB9Cist ICAgICAgICAgICAgCistICAgICAgICAgICAgaWYoZHN0X3VybF9iYXNlID09IEdMT0JVU19OVUxM IHx8IAorKworKyAgICAgICAgICAgIGlmKGRzdF91cmxfYmFzZSA9PSBHTE9CVVNfTlVMTCB8fAor ICAgICAgICAgICAgICAgICBkc3RfZmlsZW5hbWUgLSBkc3RfdXJsICE9IGRzdF91cmxfYmFzZV9s ZW4gfHwKKyAgICAgICAgICAgICAgICAgc3RybmNtcChkc3RfdXJsLCBkc3RfdXJsX2Jhc2UsIGRz dF9maWxlbmFtZSAtIGRzdF91cmwpKQorICAgICAgICAgICAgIHsKK0BAIC0yODQ2LDEyICsyODQ2 LDEyIEBAIGdsb2J1c19sX2d1Y190cmFuc2ZlcigKKyAgICAgICAgICAgICAgICAgICAgIGdsb2J1 c19mcmVlKGRzdF91cmxfYmFzZSk7CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg ICAgZHN0X3VybF9iYXNlID0gZ2xvYnVzX2xpYmNfc3RyZHVwKGRzdF91cmwpOworLSAgICAKKysK KyAgICAgICAgICAgICAgICAgZHN0X3VybF9iYXNlX2xlbiA9IGRzdF9maWxlbmFtZSAtIGRzdF91 cmw7CisgICAgICAgICAgICAgICAgIGRzdF91cmxfYmFzZVtkc3RfdXJsX2Jhc2VfbGVuXSA9ICdc MCc7CisgICAgICAgICAgICAgICAgIG5ld191cmwgPSBHTE9CVVNfVFJVRTsKKyAgICAgICAgICAg ICB9CistICAgIAorKworICAgICAgICAgICAgIGlmKG5ld191cmwpCisgICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgICBnbG9idXNfZ3VjX3RyYW5zZmVyX3VwZGF0ZSgKK0BAIC0yODYwLDcg KzI4NjAsNyBAQCBnbG9idXNfbF9ndWNfdHJhbnNmZXIoCisgICAgICAgICAgICAgZ2xvYnVzX2d1 Y190cmFuc2Zlcl91cGRhdGUoCisgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwsIHNyY19maWxl bmFtZSwgZHN0X2ZpbGVuYW1lKTsKKyAgICAgICAgIH0KKy0gICAgICAgIAorKworICAgICAgICAg aWYoZHN0X2lzX2RpcikKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBpZihndWNfaW5mby0+ZHVt cF9vbmx5X2ZpbGUpCitAQCAtMjg3MCwxNiArMjg3MCwxNiBAQCBnbG9idXNfbF9ndWNfdHJhbnNm ZXIoCisgICAgICAgICAgICAgICAgICAgICBnbG9idXNfbF9ndWNfc3JjX2RzdF9wYWlyX3QgKiAg IHVybF9wYWlyOworICAgICAgICAgICAgICAgICAgICAgdXJsX3BhaXIgPSAoZ2xvYnVzX2xfZ3Vj X3NyY19kc3RfcGFpcl90ICopCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdsb2J1c19t YWxsb2Moc2l6ZW9mKGdsb2J1c19sX2d1Y19zcmNfZHN0X3BhaXJfdCkpOworLSAgICAgICAgICAg ICAgICAKKysKKyAgICAgICAgICAgICAgICAgICAgIHVybF9wYWlyLT5zcmNfdXJsID0gZ2xvYnVz X2xpYmNfc3RyZHVwKHRyYW5zZmVyX2luZm8tPnVybHMtPnNyY191cmwpOworICAgICAgICAgICAg ICAgICAgICAgdXJsX3BhaXItPmRzdF91cmwgPSBnbG9idXNfbGliY19zdHJkdXAodHJhbnNmZXJf aW5mby0+dXJscy0+ZHN0X3VybCk7CisgICAgICAgICAgICAgICAgICAgICB1cmxfcGFpci0+b2Zm c2V0ID0gdHJhbnNmZXJfaW5mby0+dXJscy0+b2Zmc2V0OworICAgICAgICAgICAgICAgICAgICAg dXJsX3BhaXItPmxlbmd0aCA9IHRyYW5zZmVyX2luZm8tPnVybHMtPmxlbmd0aDsKKyAgICAgICAg ICAgICAgICAgICAgIHVybF9wYWlyLT5zcmNfaW5mbyA9IHRyYW5zZmVyX2luZm8tPnVybHMtPnNy Y19pbmZvOworICAgICAgICAgICAgICAgICAgICAgdHJhbnNmZXJfaW5mby0+dXJscy0+c3JjX2lu Zm8gPSBOVUxMOworLSAgICAgICAgICAgICAgICAgICAgCisrCisgICAgICAgICAgICAgICAgICAg ICBnbG9idXNfbF9ndWNfZW5xdWV1ZV9wYWlyKAorLSAgICAgICAgICAgICAgICAgICAgICAgICZn dWNfaW5mby0+ZHVtcF91cmxfbGlzdCwgCisrICAgICAgICAgICAgICAgICAgICAgICAgJmd1Y19p bmZvLT5kdW1wX3VybF9saXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9wYWlyKTsK KyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICByZXN1bHQgPSBHTE9CVVNfU1VD Q0VTUzsKK0BAIC0yOTE0LDEwICsyOTE0LDEwIEBAIGdsb2J1c19sX2d1Y190cmFuc2ZlcigKKyAg ICAgICAgICAgICAgICAgICAgIEdMT0JVU19GQUxTRSwKKyAgICAgICAgICAgICAgICAgICAgIEdM T0JVU19UUlVFKTsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIAorKworICAgICAg ICAgICAgIHJlc3VsdCA9IGdsb2J1c19sX2d1Y19leHBhbmRfc2luZ2xlX3VybCh0cmFuc2Zlcl9p bmZvKTsKKyAgICAgICAgICAgICBpZihyZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MpCistICAgICAg ICAgICAgeyAgIAorKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgZXJyID0gZ2xvYnVz X2Vycm9yX3BlZWsocmVzdWx0KTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgcmVzdWx0 ID0gR0xPQlVTX1NVQ0NFU1M7CitAQCAtMjk0NCwyMiArMjk0NCwyMiBAQCBnbG9idXNfbF9ndWNf dHJhbnNmZXIoCisgICAgICAgICAgICAgICAgICAgICBnbG9idXNfbF9ndWNfc3JjX2RzdF9wYWly X3QgKiAgIHVybF9wYWlyOworICAgICAgICAgICAgICAgICAgICAgdXJsX3BhaXIgPSAoZ2xvYnVz X2xfZ3VjX3NyY19kc3RfcGFpcl90ICopCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGds b2J1c19tYWxsb2Moc2l6ZW9mKGdsb2J1c19sX2d1Y19zcmNfZHN0X3BhaXJfdCkpOworLSAgICAg ICAgICAgICAgICAKKysKKyAgICAgICAgICAgICAgICAgICAgIHVybF9wYWlyLT5zcmNfdXJsID0g Z2xvYnVzX2xpYmNfc3RyZHVwKHRyYW5zZmVyX2luZm8tPnVybHMtPnNyY191cmwpOworICAgICAg ICAgICAgICAgICAgICAgdXJsX3BhaXItPmRzdF91cmwgPSBnbG9idXNfbGliY19zdHJkdXAodHJh bnNmZXJfaW5mby0+dXJscy0+ZHN0X3VybCk7CisgICAgICAgICAgICAgICAgICAgICB1cmxfcGFp ci0+b2Zmc2V0ID0gdHJhbnNmZXJfaW5mby0+dXJscy0+b2Zmc2V0OworICAgICAgICAgICAgICAg ICAgICAgdXJsX3BhaXItPmxlbmd0aCA9IHRyYW5zZmVyX2luZm8tPnVybHMtPmxlbmd0aDsKKyAg ICAgICAgICAgICAgICAgICAgIHVybF9wYWlyLT5zcmNfaW5mbyA9IHRyYW5zZmVyX2luZm8tPnVy bHMtPnNyY19pbmZvOworLSAgICAgICAgICAgICAgICAgICAgdHJhbnNmZXJfaW5mby0+dXJscy0+ c3JjX2luZm8gPSBOVUxMOyAgICAgICAgICAgICAgICAgICAgCistICAgICAgICAgICAgICAgICAg ICAKKysgICAgICAgICAgICAgICAgICAgIHRyYW5zZmVyX2luZm8tPnVybHMtPnNyY19pbmZvID0g TlVMTDsKKysKKyAgICAgICAgICAgICAgICAgICAgIGdsb2J1c19sX2d1Y19lbnF1ZXVlX3BhaXIo CistICAgICAgICAgICAgICAgICAgICAgICAgJmd1Y19pbmZvLT5kdW1wX3VybF9saXN0LCAKKysg ICAgICAgICAgICAgICAgICAgICAgICAmZ3VjX2luZm8tPmR1bXBfdXJsX2xpc3QsCisgICAgICAg ICAgICAgICAgICAgICAgICAgdXJsX3BhaXIpOworICAgICAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgICAgIHJlc3VsdCA9IEdMT0JVU19TVUNDRVNTOworLSAgICAKKysKKyAgICAgICAgICAg ICAgICAgZ2xvYnVzX2xfdXJsX2NvcHlfbW9uaXRvcl9jYWxsYmFjaygKKy0gICAgICAgICAgICAg ICAgICAgIHRyYW5zZmVyX2luZm8sICZoYW5kbGUtPmdhc3NfY29weV9oYW5kbGUsIE5VTEwpOyAg ICAgICAgICAgICAgIAorKyAgICAgICAgICAgICAgICAgICAgdHJhbnNmZXJfaW5mbywgJmhhbmRs ZS0+Z2Fzc19jb3B5X2hhbmRsZSwgTlVMTCk7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQor ICAgICB9CitAQCAtMjk4MywxMSArMjk4MywxMSBAQCBnbG9idXNfbF9ndWNfdHJhbnNmZXIoCisg ICAgIHsKKyAgICAgICAgIGdsb2J1c19mcmVlKGRzdF91cmxfYmFzZSk7CisgICAgIH0KKy0gICAg CistICAgIHJldHVybiByZXN1bHQ7ICAKKysKKysgICAgcmV0dXJuIHJlc3VsdDsKKyAKKyB9Cist ICAgIAorKworIHN0YXRpYworIGdsb2J1c19yZXN1bHRfdAorIGdsb2J1c19sX2d1Y190cmFuc2Zl cl9maWxlcygKK0BAIC0zMDEwLDcgKzMwMTAsNyBAQCBnbG9idXNfbF9ndWNfdHJhbnNmZXJfZmls ZXMoCisgICAgIGdfbW9uaXRvci51c2VfZXJyID0gR0xPQlVTX0ZBTFNFOworICAgICBndWNfaW5m by0+Y2FuY2VsbGVkID0gR0xPQlVTX0ZBTFNFOworICAgICBndWNfaW5mby0+Y29uY19vdXRzdGFu ZGluZyA9IDA7CistICAgIAorKworICAgICBmb3IoaSA9IDA7IGkgPCBndWNfaW5mby0+Y29uYzsg aSsrKQorICAgICB7CisgICAgICAgICB0cmFuc2Zlcl9pbmZvID0gKGdsb2J1c19sX2d1Y190cmFu c2Zlcl90ICopCitAQCAtMzAyMSwxMCArMzAyMSwxMCBAQCBnbG9idXNfbF9ndWNfdHJhbnNmZXJf ZmlsZXMoCisgICAgICAgICB0cmFuc2Zlcl9pbmZvLT5ndWNfaW5mbyA9IGd1Y19pbmZvOworICAg ICAgICAgdHJhbnNmZXJfaW5mby0+bmVlZHNfbWtkaXIgPSBHTE9CVVNfRkFMU0U7CisgICAgICAg ICBnbG9idXNfZmlmb19pbml0KCZ0cmFuc2Zlcl9pbmZvLT5tYXRjaGVkX3VybF9saXN0KTsKKy0g ICAgICAgIAorKworICAgICAgICAgZ2xvYnVzX2xfZ3VjX3RyYW5zZmVyX2tpY2tvdXQodHJhbnNm ZXJfaW5mbyk7CisgICAgIH0KKy0gICAgICAgIAorKworICAgICBnbG9idXNfbXV0ZXhfbG9jaygm Z19tb25pdG9yLm11dGV4KTsKKyAKKyAgICAgd2hpbGUoIWdfbW9uaXRvci5kb25lIHx8IGd1Y19p bmZvLT5jb25jX291dHN0YW5kaW5nID4gMCkKK0BAIC0zMDM2LDI3ICszMDM2LDI3IEBAIGdsb2J1 c19sX2d1Y190cmFuc2Zlcl9maWxlcygKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBmcHJpbnRm KHN0ZGVyciwgIiVzIiwgX0dBU0NTTCgiXG5DYW5jZWxsaW5nIGNvcHkuLi5cbiIpKTsKKyAgICAg ICAgICAgICBndWNfaW5mby0+Y2FuY2VsbGVkID0gR0xPQlVTX1RSVUU7CistICAgICAgICAgICAg CisrCisgICAgICAgICAgICAgaWYoZ3VjX2luZm8tPmR1bXBmaWxlIHx8IGd1Y19pbmZvLT5kdW1w X29ubHlfZmlsZSkKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIGdsb2J1c19sX2d1 Y19kdW1wX3VybHMoZ3VjX2luZm8pOworICAgICAgICAgICAgIH0KKyAKKyAgICAgICAgICAgICBm b3IoaSA9IDA7IGkgPCBndWNfaW5mby0+Y29uYzsgaSsrKQorLSAgICAgICAgICAgIHsgICAgICAg IAorKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgZ2xvYnVzX2dhc3NfY29weV9jYW5j ZWwoCistICAgICAgICAgICAgICAgICAgICAmZ3VjX2luZm8tPmhhbmRsZXNbaV0tPmdhc3NfY29w eV9oYW5kbGUsIAorLSAgICAgICAgICAgICAgICAgICAgR0xPQlVTX05VTEwsIAorKyAgICAgICAg ICAgICAgICAgICAgJmd1Y19pbmZvLT5oYW5kbGVzW2ldLT5nYXNzX2NvcHlfaGFuZGxlLAorKyAg ICAgICAgICAgICAgICAgICAgR0xPQlVTX05VTEwsCisgICAgICAgICAgICAgICAgICAgICBHTE9C VVNfTlVMTCk7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGdsb2J1c19sX2dsb2J1c191 cmxfY29weV9jdHJsY19oYW5kbGVkID0gR0xPQlVTX1RSVUU7CistICAgICAgICAgICAgCisrCisg ICAgICAgICAgICAgZ2xvYnVzX2NhbGxiYWNrX3VucmVnaXN0ZXJfc2lnbmFsX2hhbmRsZXIoCisg ICAgICAgICAgICAgICAgIEdMT0JVU19TSUdOQUxfSU5URVJSVVBULCBHTE9CVVNfTlVMTCwgR0xP QlVTX05VTEwpOworICAgICAgICAgfQorICAgICB9CisgICAgIGdsb2J1c19tdXRleF91bmxvY2so JmdfbW9uaXRvci5tdXRleCk7CistCQorKworIAorICAgICBpZihnX21vbml0b3IudXNlX2VycikK KyAgICAgeworQEAgLTMwODAsNyArMzA4MCw3IEBAIGdsb2J1c19sX2d1Y190cmFuc2Zlcl9maWxl cygKKyAgICAgeworICAgICAgICAgZ290byBlcnJvcl90cmFuc2ZlcjsKKyAgICAgfQorLSAgICAK KysKKyAgICAgaWYoIWdsb2J1c19sX2dsb2J1c191cmxfY29weV9jdHJsY19oYW5kbGVkKQorICAg ICB7CisgICAgICAgICBnbG9idXNfY2FsbGJhY2tfdW5yZWdpc3Rlcl9zaWduYWxfaGFuZGxlcigK K0BAIC0zMTA0LDcgKzMxMDQsNyBAQCBnbG9idXNfbF9ndWNfdHJhbnNmZXJfZmlsZXMoCisgICAg ICAgICAgICAgICAgIGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAorICAgICAgICAgICAg ICAgICAgICAgR0xPQlVTX05VTEwsCisgICAgICAgICAgICAgICAgICAgICBHTE9CVVNfTlVMTCwK Ky0gICAgICAgICAgICAgICAgICAgIF9HQVNDU0woIlRoZXJlIHdlcmUgZXJyb3JzIHdpdGggJWQg dHJhbnNmZXJzLlxuIiksIAorKyAgICAgICAgICAgICAgICAgICAgX0dBU0NTTCgiVGhlcmUgd2Vy ZSBlcnJvcnMgd2l0aCAlZCB0cmFuc2ZlcnMuXG4iKSwKKyAgICAgICAgICAgICAgICAgICAgIGdf bW9uaXRvci53YXNfZXJyb3IpKTsKKyAgICAgICAgIH0KKyAgICAgICAgIGVsc2UKK0BAIC0zMTE1 LDggKzMxMTUsOCBAQCBnbG9idXNfbF9ndWNfdHJhbnNmZXJfZmlsZXMoCisgICAgICAgICAgICAg ICAgICAgICBHTE9CVVNfTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgIF9HQVNDU0woIlRoZXJl IHdhcyBhbiBlcnJvciB3aXRoIDEgdHJhbnNmZXIuXG4iKSkpOworICAgICAgICAgfQorLSAgICAg ICAgICAgIAorLSAgICB9ICAgICAgICAKKysKKysgICAgfQorICAgICByZXR1cm4gcmVzdWx0Owor IAorIGVycm9yX3RyYW5zZmVyOgorQEAgLTMxMjksMTMgKzMxMjksMTMgQEAgZXJyb3JfdHJhbnNm ZXI6CisgICAgIHsKKyAgICAgICAgIGdsb2J1c19mcmVlKGRlc3RfaW9faGFuZGxlKTsKKyAgICAg fQorLSAgICAgICAgCisrCisgICAgIGlmKCFnbG9idXNfbF9nbG9idXNfdXJsX2NvcHlfY3RybGNf aGFuZGxlZCkKKyAgICAgeworICAgICAgICAgZ2xvYnVzX2NhbGxiYWNrX3VucmVnaXN0ZXJfc2ln bmFsX2hhbmRsZXIoCisgICAgICAgICAgICAgR0xPQlVTX1NJR05BTF9JTlRFUlJVUFQsIEdMT0JV U19OVUxMLCBHTE9CVVNfTlVMTCk7CisgICAgIH0KKy0gICAgCisrCisgICAgIHJldHVybiByZXN1 bHQ7CisgfQorIAorQEAgLTMxNjgsMjMgKzMxNjgsMjMgQEAgZ2xvYnVzX2xfZ3VjX2ZpbGVfdG9f c3RyaW5nKAorIAorIGVycm9yX21lbW9yeToKKyAgICAgcmVzdWx0ID0gZ2xvYnVzX2Vycm9yX3B1 dCgKKy0JZ2xvYnVzX2Vycm9yX2NvbnN0cnVjdF9zdHJpbmcoCistCSAgICBHTE9CVVNfTlVMTCwK Ky0JICAgIEdMT0JVU19OVUxMLAorLQkgICAgX0dBU0NTTCgiQ291bGQgbm90IG9wZW4gZmlsZTog JXNcbiIpLAorLSAgICAgICAgICAgIGZpbGVuYW1lKSk7ICAgICAgCisrICAgICAgICBnbG9idXNf ZXJyb3JfY29uc3RydWN0X3N0cmluZygKKysgICAgICAgICAgICBHTE9CVVNfTlVMTCwKKysgICAg ICAgICAgICBHTE9CVVNfTlVMTCwKKysgICAgICAgICAgICBfR0FTQ1NMKCJDb3VsZCBub3Qgb3Bl biBmaWxlOiAlc1xuIiksCisrICAgICAgICAgICAgZmlsZW5hbWUpKTsKKyAgICAgZmNsb3NlKGZw KTsKKyBlcnJvcl9vcGVuOgorICAgICBpZihyZXN1bHQgPT0gR0xPQlVTX1NVQ0NFU1MpCistICAg IHsgCistCXJlc3VsdCA9IGdsb2J1c19lcnJvcl9wdXQoCistCSAgICBnbG9idXNfZXJyb3JfY29u c3RydWN0X3N0cmluZygKKy0JCUdMT0JVU19OVUxMLAorLQkJR0xPQlVTX05VTEwsCistCQlfR0FT Q1NMKCJDb3VsZCBub3QgYWxsb2NhdGUgbWVtb3J5LlxuIikpKTsgICAgICAKKysgICAgeworKyAg ICAgICAgcmVzdWx0ID0gZ2xvYnVzX2Vycm9yX3B1dCgKKysgICAgICAgICAgICBnbG9idXNfZXJy b3JfY29uc3RydWN0X3N0cmluZygKKysgICAgICAgICAgICAgICAgR0xPQlVTX05VTEwsCisrICAg ICAgICAgICAgICAgIEdMT0JVU19OVUxMLAorKyAgICAgICAgICAgICAgICBfR0FTQ1NMKCJDb3Vs ZCBub3QgYWxsb2NhdGUgbWVtb3J5LlxuIikpKTsKKyAgICAgfQorICAgICByZXR1cm4gcmVzdWx0 OworLX0gCisrfQorIAorICNpZiAwCisgc3RhdGljCitAQCAtMzQ0OCwxNCArMzQ0OCwxNCBAQCBn dWNfbF9jb252ZXJ0X2ZpbGVfdXJsKAorICAgICAgICAgcmV0dXJuIGdsb2J1c19saWJjX3N0cmR1 cChpbl91cmwpOworICAgICB9CisgICAgIGRpcl9wdHIgPSBnbG9idXNfdXJsX3N0cmluZ19oZXhf ZW5jb2RlKHRtcF9wYXRoLCAiIik7CistICAgIAorKworICAgICAvKiBJbiB3aW5kb3dzLCBhYnNv bHV0ZSBwYXRocyBkb24ndCBiZWdpbiB3aXRoIC8gKi8KKyAgICAgdG1wX3B0ciA9IGdsb2J1c19j b21tb25fY3JlYXRlX3N0cmluZygiZmlsZTovLyVzJXMiLAorICAgICAgICAgZGlyX3B0clswXSA9 PSAnLycgPyAiIiA6ICIvIiwgZGlyX3B0cik7CistICAgIAorKworICAgICBnbG9idXNfZnJlZShk aXJfcHRyKTsKKyAgICAgZ2xvYnVzX2ZyZWUodG1wX3BhdGgpOworLSAgICAKKysKKyAgICAgcmV0 dXJuIHRtcF9wdHI7CisgfQorIAorQEAgLTM1NDAsMTMgKzM1NDAsMTMgQEAgZ2xvYnVzX2xfZ3Vj X2xvYWRfY3JlZCgKKyAgICAgICAgICAgICBndWNfZ2VuY2VydCgmYnVmKTsKKyAgICAgICAgICAg ICBhdXRvX2RhdGEubGVuZ3RoID0gYnVmLmxlbmd0aDsKKyAgICAgICAgICAgICBhdXRvX2RhdGEu dmFsdWUgPSBidWYudmFsdWU7CistICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsgICAgICAgCisr ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgIH0KKyAgICAgICAgIGVsc2UKKy0g ICAgICAgIHsgICAgICAgICAgICAKKysgICAgICAgIHsKKyAgICAgICAgICAgICBidWYudmFsdWUg PSBnbG9idXNfY29tbW9uX2NyZWF0ZV9zdHJpbmcoIlg1MDlfVVNFUl9QUk9YWT0lcyIsIHBhdGgp OworICAgICAgICAgICAgIGJ1Zi5sZW5ndGggPSBzdHJsZW4oYnVmLnZhbHVlKTsKKy0gICAgICAg IAorKworICAgICAgICAgICAgIG1hal9zdGF0ID0gZ3NzX2ltcG9ydF9jcmVkKAorICAgICAgICAg ICAgICAgICAmbWluX3N0YXQsCisgICAgICAgICAgICAgICAgICZjcmVkLAorQEAgLTM1NTksNyAr MzU1OSw3IEBAIGdsb2J1c19sX2d1Y19sb2FkX2NyZWQoCisgICAgICAgICAgICAgeworICAgICAg ICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgIH0KKy0gICAgICAgIAorKworICAg ICAgICAgICAgIGdsb2J1c19mcmVlKGJ1Zi52YWx1ZSk7CisgICAgICAgICB9CisgICAgIH0KK0BA IC0zNTg4LDE4ICszNTg4LDE4IEBAIGdsb2J1c19sX2d1Y19sb2FkX2NyZWQoCisgICAgICAgICB7 CisgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgIH0KKy0gICAgCisrCisgICAgICAg ICBtYWpfc3RhdCA9IGdzc19kaXNwbGF5X25hbWUoJm1pbl9zdGF0LCBuYW1lLCAmYnVmLCBOVUxM KTsKKyAgICAgICAgIGlmKG1hal9zdGF0ICE9IEdTU19TX0NPTVBMRVRFKQorICAgICAgICAgewor ICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICB9CistICAgIAorKworICAgICAgICAg Km91dF9zdWJqZWN0ID0gYnVmLnZhbHVlOworLSAgICAgICAgCisrCisgICAgICAgICBnc3NfcmVs ZWFzZV9uYW1lKCZtaW5fc3RhdCwgJm5hbWUpOworICAgICB9CistICAgIAorKworICAgICBpZihv dXRfY3JlZCkKKyAgICAgeworICAgICAgICAgKm91dF9jcmVkID0gY3JlZDsKK0BAIC0zNjEwLDcg KzM2MTAsNyBAQCBnbG9idXNfbF9ndWNfbG9hZF9jcmVkKAorICAgICB9CisgCisgICAgIHJldHVy biByZXN1bHQ7CistICAgIAorKworIGVycm9yOgorICAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2Vy cm9yX3B1dChnbG9idXNfZXJyb3JfY29uc3RydWN0X2dzc2FwaV9lcnJvcigKKyAgICAgICAgICAg ICBOVUxMLCBOVUxMLCBtYWpfc3RhdCwgbWluX3N0YXQpKTsKK0BAIC0zNzAzLDcgKzM3MDMsNyBA QCBnbG9idXNfbF9ndWNfcGFyc2VfYXJndW1lbnRzKAorIAorIAorICAgICAvKiBkZXRlcm1pbmUg dGhlIHByb2dyYW0gbmFtZSAqLworLSAgICAKKysKKyAgICAgcHJvZ3JhbSA9IHN0cnJjaHIoYXJn dlswXSwnLycpOworICAgICBpZighcHJvZ3JhbSkKKyAgICAgeworQEAgLTM3MTEsNyArMzcxMSw3 IEBAIGdsb2J1c19sX2d1Y19wYXJzZV9hcmd1bWVudHMoCisgICAgIH0KKyAgICAgZWxzZQorICAg ICB7CistCXByb2dyYW0rKzsKKysgICAgICAgIHByb2dyYW0rKzsKKyAgICAgfQorIAorICAgICBn bG9idXNfdXJsX2NvcHlfaV9hcmdzX2luaXQoKTsKK0BAIC0zNzMwLDcgKzM3MzAsNyBAQCBnbG9i dXNfbF9ndWNfcGFyc2VfYXJndW1lbnRzKAorICAgICB7CisgICAgICAgICByZXR1cm4gLTE7Cisg ICAgIH0KKy0gICAgCisrCisgICAgIGZvcihsaXN0ID0gb3B0aW9uc19mb3VuZDsKKyAgICAgICAg ICFnbG9idXNfbGlzdF9lbXB0eShsaXN0KTsKKyAgICAgICAgIGxpc3QgPSBnbG9idXNfbGlzdF9y ZXN0KGxpc3QpKQorQEAgLTM4MjgsNyArMzgyOCw3IEBAIGdsb2J1c19sX2d1Y19wYXJzZV9hcmd1 bWVudHMoCisgICAgICAgICAgICAgICAgIGdsb2J1c191cmxfY29weV9sX2FyZ3NfZXJyb3IoCisg ICAgICAgICAgICAgICAgICAgICAiaW52YWxpZCB2YWx1ZSBmb3IgYmxvY2sgc2l6ZSIpOworICAg ICAgICAgICAgICAgICByZXR1cm4gLTE7CistICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAg IAorKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBndWNfaW5mby0+YmxvY2tfc2l6ZSA9IChn bG9idXNfc2l6ZV90KSB0bXBfb2ZmOworICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2Fz ZSBhcmdfZjoKK0BAIC0zODQxLDcgKzM4NDEsNyBAQCBnbG9idXNfbF9ndWNfcGFyc2VfYXJndW1l bnRzKAorICAgICAgICAgICAgICAgICBnbG9idXNfdXJsX2NvcHlfbF9hcmdzX2Vycm9yKAorICAg ICAgICAgICAgICAgICAgICAgImludmFsaWQgdmFsdWUgZm9yIHRjcCBidWZmZXIgc2l6ZSIpOwor ICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CistICAgICAgICAgICAgfSAgICAgICAgICAgICAg ICAgIAorKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBndWNfaW5mby0+dGNwX2J1ZmZlcl9z aXplID0gKGdsb2J1c19zaXplX3QpIHRtcF9vZmY7CisgICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICBjYXNlIGFyZ19zOgorQEAgLTM4NTQsNyArMzg1NCw3IEBAIGdsb2J1c19sX2d1Y19wYXJz ZV9hcmd1bWVudHMoCisgICAgICAgICAgICAgICAgIGdsb2J1c191cmxfY29weV9sX2FyZ3NfZXJy b3IoCisgICAgICAgICAgICAgICAgICAgICAiSW52YWxpZCB2YWx1ZSB0byAtdC4gIE11c3QgYmUg YW4gaW50ZWdlciIpOworICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CistICAgICAgICAgICAg fSAgICAgICAgICAgICAgICAgIAorKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBicmVhazsK KyAgICAgICAgIGNhc2UgYXJnX3NzOgorICAgICAgICAgICAgIGd1Y19pbmZvLT5zb3VyY2Vfc3Vi amVjdCA9IGdsb2J1c19saWJjX3N0cmR1cChpbnN0YW5jZS0+dmFsdWVzWzBdKTsKK0BAIC0zOTEw LDcgKzM5MTAsNyBAQCBnbG9idXNfbF9ndWNfcGFyc2VfYXJndW1lbnRzKAorICAgICAgICAgICAg IGJyZWFrOworICAgICAgICAgY2FzZSBhcmdfY3JlYXRlX2Rlc3Q6CisgICAgICAgICAgICAgZ3Vj X2luZm8tPmNyZWF0ZV9kZXN0ID0gR0xPQlVTX1RSVUU7CistICAgICAgICAgICAgYnJlYWs7CQor KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBhcmdfc3RyaXBlX2JzOgorICAgICAg ICAgICAgIHJjID0gZ2xvYnVzX2FyZ3NfYnl0ZXN0cl90b19udW0oaW5zdGFuY2UtPnZhbHVlc1sw XSwgJnRtcF9vZmYpOworICAgICAgICAgICAgIGlmKHJjICE9IDApCitAQCAtMzkxOCwxOSArMzkx OCwxOSBAQCBnbG9idXNfbF9ndWNfcGFyc2VfYXJndW1lbnRzKAorICAgICAgICAgICAgICAgICBn bG9idXNfdXJsX2NvcHlfbF9hcmdzX2Vycm9yKAorICAgICAgICAgICAgICAgICAgICAgImludmFs aWQgdmFsdWUgZm9yIHN0cmlwZSBibG9ja3NpemUiKTsKKyAgICAgICAgICAgICAgICAgcmV0dXJu IC0xOworLSAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAKKysgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgZ3VjX2luZm8tPnN0cmlwZV9icyA9IChnbG9idXNfc2l6ZV90KSB0bXBfb2Zm OworLQkgICAgYnJlYWs7CistCWNhc2UgYXJnX3N0cmlwZWQ6CistCSAgICBndWNfaW5mby0+c3Ry aXBlZCA9IEdMT0JVU19UUlVFOworLQkgICAgYnJlYWs7CistCWNhc2UgYXJnX3VkdDoKKy0JICAg IGd1Y19pbmZvLT51ZHQgPSBHTE9CVVNfVFJVRTsKKy0JICAgIGJyZWFrOworLQljYXNlIGFyZ19u bF9ib3R0bGVuZWNrOgorLQkgICAgZ3VjX2luZm8tPm5sX2JvdHRsZW5lY2sgPSBHTE9CVVNfVFJV RTsKKysgICAgICAgICAgICBicmVhazsKKysgICAgICAgIGNhc2UgYXJnX3N0cmlwZWQ6CisrICAg ICAgICAgICAgZ3VjX2luZm8tPnN0cmlwZWQgPSBHTE9CVVNfVFJVRTsKKysgICAgICAgICAgICBi cmVhazsKKysgICAgICAgIGNhc2UgYXJnX3VkdDoKKysgICAgICAgICAgICBndWNfaW5mby0+dWR0 ID0gR0xPQlVTX1RSVUU7CisrICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIGFyZ19u bF9ib3R0bGVuZWNrOgorKyAgICAgICAgICAgIGd1Y19pbmZvLT5ubF9ib3R0bGVuZWNrID0gR0xP QlVTX1RSVUU7CisgICAgICAgICBndWNfaW5mby0+bmxfbGV2ZWwgPSAxNTsKKy0JICAgIGJyZWFr OworKyAgICAgICAgICAgIGJyZWFrOworIAorICAgICBjYXNlIGFyZ19ubF9pbnRlcnZhbDoKKyAg ICAgICAgIGd1Y19pbmZvLT5ubF9ib3R0bGVuZWNrID0gR0xPQlVTX1RSVUU7CitAQCAtMzk0Miwx OSArMzk0MiwxOSBAQCBnbG9idXNfbF9ndWNfcGFyc2VfYXJndW1lbnRzKAorICAgICAgICAgICAg ICAgIF9HQVNDU0woIkVycm9yOiBBcmd1bWVudCB0byBubC1ib3R0bGVuZWNrIG11c3QgYmUgYSA0 IGJpdCBtYXNrIgorICAgICAgICAgICAgICAgICAiXG4iKSk7CisgICAgICAgICAgICAgcmV0dXJu IC0xOworLSAgICAgICAgfSAKKysgICAgICAgIH0KKyAgICAgICAgIGJyZWFrOworIAorIAorLQlj YXNlIGFyZ19pcHY2OgorLQkgICAgZ3VjX2luZm8tPmlwdjYgPSBHTE9CVVNfVFJVRTsKKy0JICAg IGJyZWFrOworLQljYXNlIGFyZ19ncmlkZnRwMjoKKy0JICAgIGd1Y19pbmZvLT5ncmlkZnRwMiA9 IEdMT0JVU19UUlVFOworLQkgICAgYnJlYWs7CistCWNhc2UgYXJnX2dyaWRmdHAyX29mZjoKKy0J ICAgIGd1Y19pbmZvLT5ncmlkZnRwMiA9IEdMT0JVU19GQUxTRTsKKy0JICAgIGJyZWFrOworKyAg ICAgICAgY2FzZSBhcmdfaXB2NjoKKysgICAgICAgICAgICBndWNfaW5mby0+aXB2NiA9IEdMT0JV U19UUlVFOworKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgY2FzZSBhcmdfZ3JpZGZ0cDI6 CisrICAgICAgICAgICAgZ3VjX2luZm8tPmdyaWRmdHAyID0gR0xPQlVTX1RSVUU7CisrICAgICAg ICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIGFyZ19ncmlkZnRwMl9vZmY6CisrICAgICAgICAg ICAgZ3VjX2luZm8tPmdyaWRmdHAyID0gR0xPQlVTX0ZBTFNFOworKyAgICAgICAgICAgIGJyZWFr OworIAorICAgICAgICAgY2FzZSBhcmdfc3JjX3BpcGVfc3RyOgorICAgICAgICAgICAgIGd1Y19p bmZvLT5zcmNfcGlwZV9zdHIgPQorQEAgLTM5NzIsMzEgKzM5NzIsMzEgQEAgZ2xvYnVzX2xfZ3Vj X3BhcnNlX2FyZ3VtZW50cygKKyAgICAgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgIGNhc2Ug YXJnX3NyY19uZXRfc3RhY2tfc3RyOgorLSAgICAgICAgICAgIGd1Y19pbmZvLT5zcmNfbmV0X3N0 YWNrX3N0ciA9IAorKyAgICAgICAgICAgIGd1Y19pbmZvLT5zcmNfbmV0X3N0YWNrX3N0ciA9Cisg ICAgICAgICAgICAgICAgIGdsb2J1c19saWJjX3N0cmR1cChpbnN0YW5jZS0+dmFsdWVzWzBdKTsK KyAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgYXJnX3NyY19kaXNrX3N0YWNrX3N0 cjoKKy0gICAgICAgICAgICBndWNfaW5mby0+c3JjX2Rpc2tfc3RhY2tfc3RyID0gCisrICAgICAg ICAgICAgZ3VjX2luZm8tPnNyY19kaXNrX3N0YWNrX3N0ciA9CisgICAgICAgICAgICAgICAgIGds b2J1c19saWJjX3N0cmR1cChpbnN0YW5jZS0+dmFsdWVzWzBdKTsKKyAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgIGNhc2UgYXJnX2RzdF9uZXRfc3RhY2tfc3RyOgorLSAgICAgICAgICAgIGd1 Y19pbmZvLT5kc3RfbmV0X3N0YWNrX3N0ciA9IAorKyAgICAgICAgICAgIGd1Y19pbmZvLT5kc3Rf bmV0X3N0YWNrX3N0ciA9CisgICAgICAgICAgICAgICAgIGdsb2J1c19saWJjX3N0cmR1cChpbnN0 YW5jZS0+dmFsdWVzWzBdKTsKKyAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgYXJn X2RzdF9kaXNrX3N0YWNrX3N0cjoKKy0gICAgICAgICAgICBndWNfaW5mby0+ZHN0X2Rpc2tfc3Rh Y2tfc3RyID0gCisrICAgICAgICAgICAgZ3VjX2luZm8tPmRzdF9kaXNrX3N0YWNrX3N0ciA9Cisg ICAgICAgICAgICAgICAgIGdsb2J1c19saWJjX3N0cmR1cChpbnN0YW5jZS0+dmFsdWVzWzBdKTsK KyAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgYXJnX25ldF9zdGFja19zdHI6Cist ICAgICAgICAgICAgZ3VjX2luZm8tPnNyY19uZXRfc3RhY2tfc3RyID0gCisrICAgICAgICAgICAg Z3VjX2luZm8tPnNyY19uZXRfc3RhY2tfc3RyID0KKyAgICAgICAgICAgICAgICAgZ2xvYnVzX2xp YmNfc3RyZHVwKGluc3RhbmNlLT52YWx1ZXNbMF0pOworLSAgICAgICAgICAgIGd1Y19pbmZvLT5k c3RfbmV0X3N0YWNrX3N0ciA9IAorKyAgICAgICAgICAgIGd1Y19pbmZvLT5kc3RfbmV0X3N0YWNr X3N0ciA9CisgICAgICAgICAgICAgICAgIGdsb2J1c19saWJjX3N0cmR1cChpbnN0YW5jZS0+dmFs dWVzWzBdKTsKKyAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgYXJnX2Rpc2tfc3Rh Y2tfc3RyOgorLSAgICAgICAgICAgIGd1Y19pbmZvLT5zcmNfZGlza19zdGFja19zdHIgPSAKKysg ICAgICAgICAgICBndWNfaW5mby0+c3JjX2Rpc2tfc3RhY2tfc3RyID0KKyAgICAgICAgICAgICAg ICAgZ2xvYnVzX2xpYmNfc3RyZHVwKGluc3RhbmNlLT52YWx1ZXNbMF0pOworLSAgICAgICAgICAg IGd1Y19pbmZvLT5kc3RfZGlza19zdGFja19zdHIgPSAKKysgICAgICAgICAgICBndWNfaW5mby0+ ZHN0X2Rpc2tfc3RhY2tfc3RyID0KKyAgICAgICAgICAgICAgICAgZ2xvYnVzX2xpYmNfc3RyZHVw KGluc3RhbmNlLT52YWx1ZXNbMF0pOworICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2Fz ZSBhcmdfYXV0aHpfYXNzZXJ0OgorQEAgLTQwMDQsMzEgKzQwMDQsMzEgQEAgZ2xvYnVzX2xfZ3Vj X3BhcnNlX2FyZ3VtZW50cygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFu Y2UtPnZhbHVlc1swXSwgJmF1dGh6X2Fzc2VydCk7CisgICAgICAgICAgICAgaWYocmVzdWx0ICE9 IEdMT0JVU19TVUNDRVNTKQorICAgICAgICAgICAgIHsKKy0JCWZwcmludGYoc3RkZXJyLCAKKysg ICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICBfR0FT Q1NMKCJFcnJvcjogVW5hYmxlIHRvIHJlYWQgYXV0aHogYXNzZXJ0aW9uICVzXG4iKSwKKy0JCSAg ICBnbG9idXNfZXJyb3JfcHJpbnRfZnJpZW5kbHkoZ2xvYnVzX2Vycm9yX3BlZWsocmVzdWx0KSkp OworKyAgICAgICAgICAgICAgICAgICAgZ2xvYnVzX2Vycm9yX3ByaW50X2ZyaWVuZGx5KGdsb2J1 c19lcnJvcl9wZWVrKHJlc3VsdCkpKTsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgYXJnX3NyY19h dXRoel9hc3NlcnQ6CisgICAgICAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2xfZ3VjX2ZpbGVfdG9f c3RyaW5nKAorLQkJICAgICAgIGluc3RhbmNlLT52YWx1ZXNbMF0sICZndWNfaW5mby0+c3JjX2F1 dGh6X2Fzc2VydCk7CisrICAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS0+dmFsdWVzWzBd LCAmZ3VjX2luZm8tPnNyY19hdXRoel9hc3NlcnQpOworICAgICAgICAgICAgIGlmKHJlc3VsdCAh PSBHTE9CVVNfU1VDQ0VTUykKKyAgICAgICAgICAgICB7CistCQlmcHJpbnRmKHN0ZGVyciwgCisr ICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAgICAgICAgX0dB U0NTTCgiRXJyb3I6IFVuYWJsZSB0byByZWFkIHNyYyBhdXRoeiBhc3NlcnRpb24gJXNcbiIpLAor LQkJICAgIGdsb2J1c19lcnJvcl9wcmludF9mcmllbmRseShnbG9idXNfZXJyb3JfcGVlayhyZXN1 bHQpKSk7CisrICAgICAgICAgICAgICAgICAgICBnbG9idXNfZXJyb3JfcHJpbnRfZnJpZW5kbHko Z2xvYnVzX2Vycm9yX3BlZWsocmVzdWx0KSkpOworICAgICAgICAgICAgICAgICByZXR1cm4gLTE7 CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBhcmdf ZHN0X2F1dGh6X2Fzc2VydDoKKyAgICAgICAgICAgICByZXN1bHQgPSBnbG9idXNfbF9ndWNfZmls ZV90b19zdHJpbmcoCistCQkgICAgICAgaW5zdGFuY2UtPnZhbHVlc1swXSwgJmd1Y19pbmZvLT5k c3RfYXV0aHpfYXNzZXJ0KTsKKysgICAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLT52YWx1 ZXNbMF0sICZndWNfaW5mby0+ZHN0X2F1dGh6X2Fzc2VydCk7CisgICAgICAgICAgICAgaWYocmVz dWx0ICE9IEdMT0JVU19TVUNDRVNTKQorICAgICAgICAgICAgIHsKKy0JCWZwcmludGYoc3RkZXJy LCAKKysgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAg ICBfR0FTQ1NMKCJFcnJvcjogVW5hYmxlIHRvIHJlYWQgZHN0IGF1dGh6IGFzc2VydGlvbiAlc1xu IiksCistCQkgICAgZ2xvYnVzX2Vycm9yX3ByaW50X2ZyaWVuZGx5KGdsb2J1c19lcnJvcl9wZWVr KHJlc3VsdCkpKTsKKysgICAgICAgICAgICAgICAgICAgIGdsb2J1c19lcnJvcl9wcmludF9mcmll bmRseShnbG9idXNfZXJyb3JfcGVlayhyZXN1bHQpKSk7CisgICAgICAgICAgICAgICAgIHJldHVy biAtMTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgYnJlYWs7CitAQCAtNDA0Nyw4ICs0 MDQ3LDggQEAgZ2xvYnVzX2xfZ3VjX3BhcnNlX2FyZ3VtZW50cygKKyAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgIGNhc2UgYXJnX3NyY19jcmVkOgorICAgICAgICAgICAgIHJlc3VsdCA9IGds b2J1c19sX2d1Y19sb2FkX2NyZWQoCistICAgICAgICAgICAgICAgIGluc3RhbmNlLT52YWx1ZXNb MF0sIAorLSAgICAgICAgICAgICAgICAmZ3VjX2luZm8tPnNyY19jcmVkLCAKKysgICAgICAgICAg ICAgICAgaW5zdGFuY2UtPnZhbHVlc1swXSwKKysgICAgICAgICAgICAgICAgJmd1Y19pbmZvLT5z cmNfY3JlZCwKKyAgICAgICAgICAgICAgICAgJmd1Y19pbmZvLT5zcmNfY3JlZF9zdWJqKTsKKyAg ICAgICAgICAgICBpZihyZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MpCisgICAgICAgICAgICAgewor QEAgLTQwNjAsNyArNDA2MCw3IEBAIGdsb2J1c19sX2d1Y19wYXJzZV9hcmd1bWVudHMoCisgICAg ICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIGFyZ19kc3RfY3JlZDoKKyAgICAgICAgICAg ICByZXN1bHQgPSBnbG9idXNfbF9ndWNfbG9hZF9jcmVkKAorLSAgICAgICAgICAgICAgICBpbnN0 YW5jZS0+dmFsdWVzWzBdLCAKKysgICAgICAgICAgICAgICAgaW5zdGFuY2UtPnZhbHVlc1swXSwK KyAgICAgICAgICAgICAgICAgJmd1Y19pbmZvLT5kc3RfY3JlZCwKKyAgICAgICAgICAgICAgICAg Jmd1Y19pbmZvLT5kc3RfY3JlZF9zdWJqKTsKKyAgICAgICAgICAgICBpZihyZXN1bHQgIT0gR0xP QlVTX1NVQ0NFU1MpCitAQCAtNDA3Myw3ICs0MDczLDcgQEAgZ2xvYnVzX2xfZ3VjX3BhcnNlX2Fy Z3VtZW50cygKKyAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgYXJnX2RhdGFfY3Jl ZDoKKyAgICAgICAgICAgICByZXN1bHQgPSBnbG9idXNfbF9ndWNfbG9hZF9jcmVkKAorLSAgICAg ICAgICAgICAgICBpbnN0YW5jZS0+dmFsdWVzWzBdLCAKKysgICAgICAgICAgICAgICAgaW5zdGFu Y2UtPnZhbHVlc1swXSwKKyAgICAgICAgICAgICAgICAgJmd1Y19pbmZvLT5kYXRhX2NyZWQsCisg ICAgICAgICAgICAgICAgICZndWNfaW5mby0+ZGF0YV9jcmVkX3N1YmopOworICAgICAgICAgICAg IGlmKHJlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKK0BAIC00MDg0LDc1ICs0MDg0LDc1IEBAIGds b2J1c19sX2d1Y19wYXJzZV9hcmd1bWVudHMoCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4g LTE7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGJyZWFrOworLQljYXNlIGFyZ19kZWxh eWVkX3Bhc3Y6CistCSAgICBndWNfaW5mby0+ZGVsYXllZF9wYXN2ID0gR0xPQlVTX1RSVUU7Cist CSAgICBicmVhazsKKy0JY2FzZSBhcmdfcGlwZWxpbmU6CistCSAgICBndWNfaW5mby0+cGlwZWxp bmUgPSBHTE9CVVNfVFJVRTsKKy0JICAgIGJyZWFrOworLQljYXNlIGFyZ19waXBlbGluZXE6Cist CSAgICBndWNfaW5mby0+cGlwZWxpbmUgPSBHTE9CVVNfVFJVRTsKKy0JICAgIGd1Y19pbmZvLT5w aXBlbGluZXEgPSBhdG9pKGluc3RhbmNlLT52YWx1ZXNbMF0pOworLQkgICAgYnJlYWs7CistCWNh c2UgYXJnX3N5bmM6CistCSAgICBndWNfaW5mby0+c3luYyA9IEdMT0JVU19UUlVFOworLQkgICAg YnJlYWs7CistCWNhc2UgYXJnX3N5bmNfbGV2ZWw6CistCSAgICBndWNfaW5mby0+c3luY19sZXZl bCA9IGF0b2koaW5zdGFuY2UtPnZhbHVlc1swXSk7CistCSAgICBicmVhazsKKy0JY2FzZSBhcmdf Y2hlY2tzdW06CistCSAgICBndWNfaW5mby0+Y29tcF9jaGVja3N1bSA9IEdMT0JVU19UUlVFOwor LQkgICAgYnJlYWs7CistCWNhc2UgYXJnX2NoZWNrc3VtX2FsZ286CistCSAgICBndWNfaW5mby0+ Y2hlY2tzdW1fYWxnbyA9IGdsb2J1c19saWJjX3N0cmR1cChpbnN0YW5jZS0+dmFsdWVzWzBdKTsK Ky0JICAgIGJyZWFrOworLQljYXNlIGFyZ19kdW1wX29ubHk6CistCSAgICBndWNfaW5mby0+ZHVt cF9vbmx5X2ZpbGUgPSBnbG9idXNfbGliY19zdHJkdXAoaW5zdGFuY2UtPnZhbHVlc1swXSk7Cist CSAgICBicmVhazsKKy0JY2FzZSBhcmdfcHJlc2VydmU6CistCWNhc2UgYXJnX3Blcm1zOgorLQkg ICAgZ3VjX2luZm8tPnBlcm1zID0gR0xPQlVTX1RSVUU7CistCSAgICBicmVhazsKKy0JY2FzZSBh cmdfYWxsbzoKKy0JICAgIGd1Y19pbmZvLT5hbGxvID0gR0xPQlVTX1RSVUU7CistCSAgICBicmVh azsKKy0JY2FzZSBhcmdfbm9hbGxvOgorLQkgICAgZ3VjX2luZm8tPmFsbG8gPSBHTE9CVVNfRkFM U0U7CistCSAgICBicmVhazsKKy0JY2FzZSBhcmdfcGFydGlhbF9vZmZzZXQ6CisrICAgICAgICBj YXNlIGFyZ19kZWxheWVkX3Bhc3Y6CisrICAgICAgICAgICAgZ3VjX2luZm8tPmRlbGF5ZWRfcGFz diA9IEdMT0JVU19UUlVFOworKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgY2FzZSBhcmdf cGlwZWxpbmU6CisrICAgICAgICAgICAgZ3VjX2luZm8tPnBpcGVsaW5lID0gR0xPQlVTX1RSVUU7 CisrICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIGFyZ19waXBlbGluZXE6CisrICAg ICAgICAgICAgZ3VjX2luZm8tPnBpcGVsaW5lID0gR0xPQlVTX1RSVUU7CisrICAgICAgICAgICAg Z3VjX2luZm8tPnBpcGVsaW5lcSA9IGF0b2koaW5zdGFuY2UtPnZhbHVlc1swXSk7CisrICAgICAg ICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIGFyZ19zeW5jOgorKyAgICAgICAgICAgIGd1Y19p bmZvLT5zeW5jID0gR0xPQlVTX1RSVUU7CisrICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICBj YXNlIGFyZ19zeW5jX2xldmVsOgorKyAgICAgICAgICAgIGd1Y19pbmZvLT5zeW5jX2xldmVsID0g YXRvaShpbnN0YW5jZS0+dmFsdWVzWzBdKTsKKysgICAgICAgICAgICBicmVhazsKKysgICAgICAg IGNhc2UgYXJnX2NoZWNrc3VtOgorKyAgICAgICAgICAgIGd1Y19pbmZvLT5jb21wX2NoZWNrc3Vt ID0gR0xPQlVTX1RSVUU7CisrICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIGFyZ19j aGVja3N1bV9hbGdvOgorKyAgICAgICAgICAgIGd1Y19pbmZvLT5jaGVja3N1bV9hbGdvID0gZ2xv YnVzX2xpYmNfc3RyZHVwKGluc3RhbmNlLT52YWx1ZXNbMF0pOworKyAgICAgICAgICAgIGJyZWFr OworKyAgICAgICAgY2FzZSBhcmdfZHVtcF9vbmx5OgorKyAgICAgICAgICAgIGd1Y19pbmZvLT5k dW1wX29ubHlfZmlsZSA9IGdsb2J1c19saWJjX3N0cmR1cChpbnN0YW5jZS0+dmFsdWVzWzBdKTsK KysgICAgICAgICAgICBicmVhazsKKysgICAgICAgIGNhc2UgYXJnX3ByZXNlcnZlOgorKyAgICAg ICAgY2FzZSBhcmdfcGVybXM6CisrICAgICAgICAgICAgZ3VjX2luZm8tPnBlcm1zID0gR0xPQlVT X1RSVUU7CisrICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIGFyZ19hbGxvOgorKyAg ICAgICAgICAgIGd1Y19pbmZvLT5hbGxvID0gR0xPQlVTX1RSVUU7CisrICAgICAgICAgICAgYnJl YWs7CisrICAgICAgICBjYXNlIGFyZ19ub2FsbG86CisrICAgICAgICAgICAgZ3VjX2luZm8tPmFs bG8gPSBHTE9CVVNfRkFMU0U7CisrICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIGFy Z19wYXJ0aWFsX29mZnNldDoKKyAgICAgICAgICAgICByYyA9IGdsb2J1c19hcmdzX2J5dGVzdHJf dG9fbnVtKGluc3RhbmNlLT52YWx1ZXNbMF0sICZ0bXBfb2ZmKTsKKyAgICAgICAgICAgICBpZihy YyAhPSAwKQorICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgZ2xvYnVzX3VybF9jb3B5 X2xfYXJnc19lcnJvcigKKyAgICAgICAgICAgICAgICAgICAgICJpbnZhbGlkIHZhbHVlIGZvciBv ZmZzZXQiKTsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworLSAgICAgICAgICAgIH0gICAg ICAgICAgICAgICAgICAKKysgICAgICAgICAgICB9CisgICAgICAgICAgICAgZ3VjX2luZm8tPnBh cnRpYWxfb2Zmc2V0ID0gdG1wX29mZjsKKy0JICAgIGJyZWFrOworLQljYXNlIGFyZ19wYXJ0aWFs X2xlbmd0aDoKKysgICAgICAgICAgICBicmVhazsKKysgICAgICAgIGNhc2UgYXJnX3BhcnRpYWxf bGVuZ3RoOgorICAgICAgICAgICAgIHJjID0gZ2xvYnVzX2FyZ3NfYnl0ZXN0cl90b19udW0oaW5z dGFuY2UtPnZhbHVlc1swXSwgJnRtcF9vZmYpOworICAgICAgICAgICAgIGlmKHJjICE9IDApCisg ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBnbG9idXNfdXJsX2NvcHlfbF9hcmdzX2Vy cm9yKAorICAgICAgICAgICAgICAgICAgICAgImludmFsaWQgdmFsdWUgZm9yIGxlbmd0aCIpOwor ICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CistICAgICAgICAgICAgfSAgICAgICAgICAgICAg ICAgIAorKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBndWNfaW5mby0+cGFydGlhbF9sZW5n dGggPSB0bXBfb2ZmOworICAgICAgICAgICAgIGlmKGd1Y19pbmZvLT5wYXJ0aWFsX29mZnNldCA9 PSAtMSkKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIGd1Y19pbmZvLT5wYXJ0aWFs X29mZnNldCA9IDA7CisgICAgICAgICAgICAgfQorLQkgICAgYnJlYWs7CistCWNhc2UgYXJnX2Zh c3Q6CistCSAgICBndWNfaW5mby0+bGlzdF91c2VzX2RhdGFfbW9kZSA9IEdMT0JVU19UUlVFOwor LQkgICAgaWYoZ3VjX2luZm8tPm51bV9zdHJlYW1zIDwgMSkKKy0JICAgIHsKKysgICAgICAgICAg ICBicmVhazsKKysgICAgICAgIGNhc2UgYXJnX2Zhc3Q6CisrICAgICAgICAgICAgZ3VjX2luZm8t Pmxpc3RfdXNlc19kYXRhX21vZGUgPSBHTE9CVVNfVFJVRTsKKysgICAgICAgICAgICBpZihndWNf aW5mby0+bnVtX3N0cmVhbXMgPCAxKQorKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg Z3VjX2luZm8tPm51bV9zdHJlYW1zID0gMTsKKyAgICAgICAgICAgICB9CisgCistCSAgICBicmVh azsKKysgICAgICAgICAgICBicmVhazsKKyAKKy0JICAgIGNhc2UgYXJnX2xpc3Q6CisrICAgICAg ICAgICAgY2FzZSBhcmdfbGlzdDoKKyAgICAgICAgICAgICBndWNfaW5mby0+bGlzdF91cmwgPSBn bG9idXNfbGliY19zdHJkdXAoaW5zdGFuY2UtPnZhbHVlc1swXSk7CisgICAgICAgICAgICAgYnJl YWs7CisgCitAQCAtNDE3NCw3ICs0MTc0LDcgQEAgZ2xvYnVzX2xfZ3VjX3BhcnNlX2FyZ3VtZW50 cygKKyAgICAgeworICAgICAgICAgaWYoZ3VjX2luZm8tPnNyY19kaXNrX3N0YWNrX3N0cikKKyAg ICAgICAgIHsKKy0gICAgICAgICAgICB0bXBfc3RyID0gZ2xvYnVzX2NvbW1vbl9jcmVhdGVfc3Ry aW5nKCIlcywlcyIsIAorKyAgICAgICAgICAgIHRtcF9zdHIgPSBnbG9idXNfY29tbW9uX2NyZWF0 ZV9zdHJpbmcoIiVzLCVzIiwKKyAgICAgICAgICAgICAgICAgZ3VjX2luZm8tPnNyY19waXBlX3N0 ciwgZ3VjX2luZm8tPnNyY19kaXNrX3N0YWNrX3N0cik7CisgICAgICAgICAgICAgZnJlZShndWNf aW5mby0+c3JjX2Rpc2tfc3RhY2tfc3RyKTsKKyAgICAgICAgICAgICBndWNfaW5mby0+c3JjX2Rp c2tfc3RhY2tfc3RyID0gdG1wX3N0cjsKK0BAIC00MTg4LDcgKzQxODgsNyBAQCBnbG9idXNfbF9n dWNfcGFyc2VfYXJndW1lbnRzKAorICAgICB7CisgICAgICAgICBpZihndWNfaW5mby0+ZHN0X2Rp c2tfc3RhY2tfc3RyKQorICAgICAgICAgeworLSAgICAgICAgICAgIHRtcF9zdHIgPSBnbG9idXNf Y29tbW9uX2NyZWF0ZV9zdHJpbmcoIiVzLCVzIiwgCisrICAgICAgICAgICAgdG1wX3N0ciA9IGds b2J1c19jb21tb25fY3JlYXRlX3N0cmluZygiJXMsJXMiLAorICAgICAgICAgICAgICAgICBndWNf aW5mby0+ZHN0X3BpcGVfc3RyLCBndWNfaW5mby0+ZHN0X2Rpc2tfc3RhY2tfc3RyKTsKKyAgICAg ICAgICAgICBmcmVlKGd1Y19pbmZvLT5kc3RfZGlza19zdGFja19zdHIpOworICAgICAgICAgICAg IGd1Y19pbmZvLT5kc3RfZGlza19zdGFja19zdHIgPSB0bXBfc3RyOworQEAgLTQxOTksNyArNDE5 OSw3IEBAIGdsb2J1c19sX2d1Y19wYXJzZV9hcmd1bWVudHMoCisgICAgICAgICAgICAgICAgICIl cyxvcmRlcmluZyIsIGd1Y19pbmZvLT5kc3RfcGlwZV9zdHIpOworICAgICAgICAgfQorICAgICB9 CistICAgIC8qIGlmIHdlIGFyZSBkb2luZyBtdWx0aWNhc3QgYWxsb3cgbm8gZGVzdCBvcHRpb24g YnkgYWRkaW5nIHRoZSBmaXJzdCAKKysgICAgLyogaWYgd2UgYXJlIGRvaW5nIG11bHRpY2FzdCBh bGxvdyBubyBkZXN0IG9wdGlvbiBieSBhZGRpbmcgdGhlIGZpcnN0CisgICAgICAgICB1cmwgaW4g dGhlIGZpbGUgKi8KKyAgICAgaWYoZ3VjX2luZm8tPm1jX2ZpbGUgIT0gTlVMTCkKKyAgICAgewor QEAgLTQyNDMsMTIgKzQyNDMsMTIgQEAgZ2xvYnVzX2xfZ3VjX3BhcnNlX2FyZ3VtZW50cygKKyAg ICAgfQorIAorICAgICByYyA9IC0xOworLSAgICBpZihndWNfaW5mby0+ZHVtcF9vbmx5X2ZpbGUg JiYgZ3VjX2luZm8tPmR1bXBfb25seV9maWxlWzBdID09ICctJyAmJiAKKysgICAgaWYoZ3VjX2lu Zm8tPmR1bXBfb25seV9maWxlICYmIGd1Y19pbmZvLT5kdW1wX29ubHlfZmlsZVswXSA9PSAnLScg JiYKKyAgICAgICAgIGd1Y19pbmZvLT5kdW1wX29ubHlfZmlsZVsxXSA9PSAnXDAnKQorICAgICB7 CisgICAgICAgICBndWNfaW5mby0+ZHVtcF9vbmx5X2ZwID0gc3Rkb3V0OworICAgICB9CistICAg IAorKworICAgICBpZihndWNfaW5mby0+ZHVtcGZpbGUpCisgICAgIHsKKyAgICAgICAgIGlmKGd1 Y19pbmZvLT5kdW1wX29ubHlfZmlsZSAmJiAhZ3VjX2luZm8tPmR1bXBfb25seV9mcCkKK0BAIC00 MjYzLDcgKzQyNjMsNyBAQCBnbG9idXNfbF9ndWNfcGFyc2VfYXJndW1lbnRzKAorIAorICAgICAg ICAgcmMgPSBnbG9idXNfbF9ndWNfcGFyc2VfZmlsZSgKKyAgICAgICAgICAgICBndWNfaW5mbywg Z3VjX2luZm8tPmR1bXBmaWxlLCAmZ3VjX2luZm8tPnVzZXJfdXJsX2xpc3QpOworLSAgICAgICAg CisrCisgICAgICAgICBpZihyYyA9PSAwICYmIGdsb2J1c19maWZvX2VtcHR5KCZndWNfaW5mby0+ dXNlcl91cmxfbGlzdCkpCisgICAgICAgICB7CisgICAgICAgICAgICAgcHJpbnRmKCJEdW1wZmls ZSBleGlzdHMgYW5kIGlzIGVtcHR5LiAgTm90aGluZyB0byBkby4iKTsKK0BAIC00Mjc1LDE0ICs0 Mjc1LDE0IEBAIGdsb2J1c19sX2d1Y19wYXJzZV9hcmd1bWVudHMoCisgICAgICAgICB9CisgCisg ICAgIH0KKy0gICAgCisrCisgICAgIGlmKHJjID09IDApCisgICAgIHsKKyAgICAgICAgIGlmKGdf dmVyYm9zZV9mbGFnKQorICAgICAgICAgeworICAgICAgICAgICAgIHByaW50ZigiUmVhZGluZyBV UkxzIGZyb20gZHVtcGZpbGVcbiIpOworICAgICAgICAgfQorLSAgICB9ICAgIAorKyAgICB9Cisg ICAgIGVsc2UgaWYoZmlsZV9uYW1lICE9IE5VTEwpCisgICAgIHsKKyAgICAgICAgIC8qIGdldCBz b3VyY2UgZGVzdCBwYWlycyAqLworQEAgLTQzMDcsOCArNDMwNyw4IEBAIGdsb2J1c19sX2d1Y19w YXJzZV9hcmd1bWVudHMoCisgICAgIGVsc2UgaWYoZ3VjX2luZm8tPmxpc3RfdXJsID09IE5VTEwp IC8qIG9ubHkgaWYgd2UgYXJlIG5vdCBsaXN0aW5nICovCisgICAgIHsKKyAgICAgICAgIC8qIHRo ZXJlIG11c3QgYmUgMiBhZGRpdGlvbmFsIHVuZmxhZ2dlZCBhcmd1bWVudHM6CistICAgICAgICAg KiAgICAgdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gVVJMJ3MgCistICAgICAgICAgKi8gICAg CisrICAgICAgICAgKiAgICAgdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gVVJMJ3MKKysgICAg ICAgICAqLworICAgICAgICAgaWYoYXJnYyA+IDMpCisgICAgICAgICB7CisgICAgICAgICAgICAg Z2xvYnVzX3VybF9jb3B5X2xfYXJnc19lcnJvcigidG9vIG1hbnkgdXJsIHN0cmluZ3Mgc3BlY2lm aWVkIik7CitAQCAtNDMyOCw3ICs0MzI4LDcgQEAgZ2xvYnVzX2xfZ3VjX3BhcnNlX2FyZ3VtZW50 cygKKyAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICB9CisgICAgICAgICBlbHNlCist ICAgICAgICB7ICAgCisrICAgICAgICB7CisgICAgICAgICAgICAgZW50ID0gKGdsb2J1c19sX2d1 Y19zcmNfZHN0X3BhaXJfdCAqKQorICAgICAgICAgICAgICAgICAgICAgZ2xvYnVzX21hbGxvYyhz aXplb2YoZ2xvYnVzX2xfZ3VjX3NyY19kc3RfcGFpcl90KSk7CisgCitAQCAtNDMzNywxMCArNDMz NywxMCBAQCBnbG9idXNfbF9ndWNfcGFyc2VfYXJndW1lbnRzKAorICAgICAgICAgICAgIGVudC0+ b2Zmc2V0ID0gZ3VjX2luZm8tPnBhcnRpYWxfb2Zmc2V0OworICAgICAgICAgICAgIGVudC0+bGVu Z3RoID0gZ3VjX2luZm8tPnBhcnRpYWxfbGVuZ3RoOworICAgICAgICAgICAgIGVudC0+c3JjX2lu Zm8gPSBOVUxMOworLSAKKysKKyAgICAgICAgICAgICBnbG9idXNfZmlmb19lbnF1ZXVlKCZndWNf aW5mby0+dXNlcl91cmxfbGlzdCwgZW50KTsKKyAgICAgICAgIH0KKy0gICAgICAgIAorKworICAg ICB9CisgCisgICAgIGdsb2J1c19sX2d1Y19sb2FkX2FsaWFzX2ZpbGUoZ3VjX2luZm8tPmFsaWFz X2ZpbGUpOworQEAgLTQzNTAsNyArNDM1MCw3IEBAIGdsb2J1c19sX2d1Y19wYXJzZV9hcmd1bWVu dHMoCisgICAgICAgICBpZihndWNfaW5mby0+c3JjX2NyZWQgPT0gR1NTX0NfTk9fQ1JFREVOVElB TCkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICByZXN1bHQgPSBnbG9idXNfbF9ndWNfbG9hZF9j cmVkKAorLSAgICAgICAgICAgICAgICBjcmVkX3BhdGgsIAorKyAgICAgICAgICAgICAgICBjcmVk X3BhdGgsCisgICAgICAgICAgICAgICAgICZndWNfaW5mby0+c3JjX2NyZWQsCisgICAgICAgICAg ICAgICAgICZndWNfaW5mby0+c3JjX2NyZWRfc3Viaik7CisgICAgICAgICAgICAgaWYocmVzdWx0 ICE9IEdMT0JVU19TVUNDRVNTKQorQEAgLTQzNjQsNyArNDM2NCw3IEBAIGdsb2J1c19sX2d1Y19w YXJzZV9hcmd1bWVudHMoCisgICAgICAgICBpZihndWNfaW5mby0+ZHN0X2NyZWQgPT0gR1NTX0Nf Tk9fQ1JFREVOVElBTCkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICByZXN1bHQgPSBnbG9idXNf bF9ndWNfbG9hZF9jcmVkKAorLSAgICAgICAgICAgICAgICBjcmVkX3BhdGgsIAorKyAgICAgICAg ICAgICAgICBjcmVkX3BhdGgsCisgICAgICAgICAgICAgICAgICZndWNfaW5mby0+ZHN0X2NyZWQs CisgICAgICAgICAgICAgICAgICZndWNfaW5mby0+ZHN0X2NyZWRfc3Viaik7CisgICAgICAgICAg ICAgaWYocmVzdWx0ICE9IEdMT0JVU19TVUNDRVNTKQorQEAgLTQzNzUsMTUgKzQzNzUsMTUgQEAg Z2xvYnVzX2xfZ3VjX3BhcnNlX2FyZ3VtZW50cygKKyAgICAgICAgICAgICAgICAgICAgIHJldHVy biAtMTsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CistICAgICAgICAKKysKKyAgICAgICAg IGdsb2J1c19mcmVlKGNyZWRfcGF0aCk7CisgICAgIH0KKy0gICAgCistICAgIGlmKGd1Y19pbmZv LT5zcmNfY3JlZCAhPSBHU1NfQ19OT19DUkVERU5USUFMICYmIAorKworKyAgICBpZihndWNfaW5m by0+c3JjX2NyZWQgIT0gR1NTX0NfTk9fQ1JFREVOVElBTCAmJgorICAgICAgICAgZ3VjX2luZm8t PmRzdF9jcmVkID09IEdTU19DX05PX0NSRURFTlRJQUwpCisgICAgIHsKKyAgICAgICAgIHJlc3Vs dCA9IGdsb2J1c19sX2d1Y19sb2FkX2NyZWQoCistICAgICAgICAgICAgTlVMTCwgCisrICAgICAg ICAgICAgTlVMTCwKKyAgICAgICAgICAgICAmZ3VjX2luZm8tPmRzdF9jcmVkLAorICAgICAgICAg ICAgICZndWNfaW5mby0+ZHN0X2NyZWRfc3Viaik7CisgICAgICAgICBpZihyZXN1bHQgIT0gR0xP QlVTX1NVQ0NFU1MpCitAQCAtNDM5NCwxMSArNDM5NCwxMSBAQCBnbG9idXNfbF9ndWNfcGFyc2Vf YXJndW1lbnRzKAorICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICB9CisgICAg IH0KKy0gICAgaWYoZ3VjX2luZm8tPnNyY19jcmVkID09IEdTU19DX05PX0NSRURFTlRJQUwgJiYg CisrICAgIGlmKGd1Y19pbmZvLT5zcmNfY3JlZCA9PSBHU1NfQ19OT19DUkVERU5USUFMICYmCisg ICAgICAgICBndWNfaW5mby0+ZHN0X2NyZWQgIT0gR1NTX0NfTk9fQ1JFREVOVElBTCkKKyAgICAg eworICAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2xfZ3VjX2xvYWRfY3JlZCgKKy0gICAgICAgICAg ICBOVUxMLCAKKysgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICZndWNfaW5mby0+c3Jj X2NyZWQsCisgICAgICAgICAgICAgJmd1Y19pbmZvLT5zcmNfY3JlZF9zdWJqKTsKKyAgICAgICAg IGlmKHJlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKK0BAIC00NDU3LDcgKzQ0NTcsNyBAQCBnbG9i dXNfbF9ndWNfcGFyc2VfYXJndW1lbnRzKAorICAgICAgICAgICAgIGdsb2J1c19maWZvX3BlZWso Jmd1Y19pbmZvLT51c2VyX3VybF9saXN0KTsKKyAKKyAgICAgICAgIC8qIHdlIG11c3QgdmVyaWZ5 IHRoYXQgd2UgYXJlIGRvaW5nIGEgM3B0LiAgdGhpcyBtZWFucyB0aGF0CistICAgICAgICAgICAg Ym90aCBzcmMgYW5kIGRzdCB1cmwgbXVzdCBiZSBmdHA6Ly8gb3IgZ3NpZnRwOi8vIAorKyAgICAg ICAgICAgIGJvdGggc3JjIGFuZCBkc3QgdXJsIG11c3QgYmUgZnRwOi8vIG9yIGdzaWZ0cDovLwor ICAgICAgICAgICAgIG9idmlvdXNseSB0aGlzIGRvZXNudCB3b3JrIGZvciB0aGUgY2FzZSB3aGVy ZSB0aGVyZSBpcworICAgICAgICAgICAgIGEgZmlsZSBmdWxsIG9yIHVybCB0cmFuc2ZlcnMgYW5k IHRoZSBmaXJzdCBpcyAzcHQgZnB0IHRyYW5zZmVycworICAgICAgICAgICAgIGJ1dCB0aGUgcmVt YWluZGVyIGFyZSBub3QuICB0aGF0IGNhc2UgaXMgYSBQSVRBLiAgRm9yIG5vdworQEAgLTQ1NTYs NyArNDU1Niw3IEBAIGdsb2J1c19sX2d1Y19wYXJzZV9hcmd1bWVudHMoCisgICAgICAgICBnbG9i dXNfZnJlZShuZXRfbmV0bG9nX3N0cik7CisgICAgICAgICBnbG9idXNfZnJlZShkaXNrX25ldGxv Z19zdHIpOworICAgICB9CistICAgIAorKworICAgICAvKiBjaGVjayBhcmd1ZW1udCB2YWxpZGl0 eSAqLworICAgICBpZigoZ3VjX2luZm8tPm9wdGlvbnMgJiBHTE9CVVNfVVJMX0NPUFlfQVJHX0FT Q0lJKSAmJgorICAgICAgICAoZ3VjX2luZm8tPm9wdGlvbnMgJiBHTE9CVVNfVVJMX0NPUFlfQVJH X0JJTkFSWSkgKQorQEAgLTQ1NzMsNyArNDU3Myw3IEBAIGdsb2J1c19sX2d1Y19wYXJzZV9hcmd1 bWVudHMoCisgICAgICAgICByZXR1cm4gLTE7CisgICAgIH0KKyAgICAgcmV0dXJuIDA7CistICAg IAorKworIH0KKyAKKyAKK0BAIC00NTkyLDcgKzQ1OTIsNyBAQCBnbG9idXNfbF9ndWNfY3JlYXRl X2RpcigKKyAgICAgZ2xvYnVzX3VybF90ICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkX3Vy bDsKKyAgICAgZ2xvYnVzX2xpc3RfdCAqICAgICAgICAgICAgICAgICAgICAgbWtkaXJfdXJscyA9 IEdMT0JVU19OVUxMOworICAgICBjaGFyICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk c3RfZmlsZW5hbWU7CistICAgIAorKworICAgICByYyA9IGdsb2J1c191cmxfcGFyc2UodXJsLCAm cGFyc2VkX3VybCk7CisgICAgIGlmKHJjICE9IDApCisgICAgIHsKK0BAIC00NjI0LDEwICs0NjI0 LDEwIEBAIGdsb2J1c19sX2d1Y19jcmVhdGVfZGlyKAorIAorICAgICAgICAgICAgIHNhdmVfdXJs W2RzdF9maWxlbmFtZSAtIGRzdF9ta3VybCArIDFdID0gJ1wwJzsKKyAgICAgICAgICAgICBnbG9i dXNfbGlzdF9pbnNlcnQoJm1rZGlyX3VybHMsIHNhdmVfdXJsKTsKKy0gICAgICAgICAgICAKKy0g ICAgICAgICAgICAqZHN0X2ZpbGVuYW1lID0gJ1wwJzsgICAgICAgICAgICAgICAgICAgICAgIAor KworKyAgICAgICAgICAgICpkc3RfZmlsZW5hbWUgPSAnXDAnOworICAgICAgICAgfQorLSAgICAg ICAgCisrCisgICAgICAgICBnbG9idXNfdXJsX2Rlc3Ryb3koJnBhcnNlZF91cmwpOworICAgICAg ICAgcmMgPSBnbG9idXNfdXJsX3BhcnNlKGRzdF9ta3VybCwgJnBhcnNlZF91cmwpOworICAgICB9 CitAQCAtNDYzNiw3ICs0NjM2LDcgQEAgZ2xvYnVzX2xfZ3VjX2NyZWF0ZV9kaXIoCisgICAgICAg ICBnbG9idXNfdXJsX2Rlc3Ryb3koJnBhcnNlZF91cmwpOworICAgICB9CisgICAgIGdsb2J1c19m cmVlKGRzdF9ta3VybCk7CistICAgIAorKworICAgICBkc3RfbWt1cmwgPSBnbG9idXNfbGliY19z dHJkdXAodXJsKTsKKyAgICAgZHN0X2ZpbGVuYW1lID0gc3RycmNocihkc3RfbWt1cmwsICcvJyk7 CisgICAgIGlmKGRzdF9maWxlbmFtZSAmJiAqKCsrZHN0X2ZpbGVuYW1lKSkKK0BAIC00NjQ2LDEy ICs0NjQ2LDEyIEBAIGdsb2J1c19sX2d1Y19jcmVhdGVfZGlyKAorICAgICBnbG9idXNfbGlzdF9p bnNlcnQoJm1rZGlyX3VybHMsIGRzdF9ta3VybCk7CisgCisgICAgIHdoaWxlKCFkb25lX2NyZWF0 ZV9kZXN0ICYmICFnbG9idXNfbGlzdF9lbXB0eShta2Rpcl91cmxzKSkKKy0gICAgeyAgICAgICAg CisrICAgIHsKKyAgICAgICAgIGdsb2J1c19ib29sX3QgICAgICAgICAgICAgICAgICAgaW5zZXJ0 ZWQgPSBHTE9CVVNfRkFMU0U7CisgICAgICAgICBjaGFyICogICAgICAgICAgICAgICAgICAgICAg ICAgIGFscmVhZHlfZXhpc3RzID0gTlVMTDsKKy0gICAgICAgIAorKworICAgICAgICAgZHN0X21r dXJsID0gZ2xvYnVzX2xpc3RfcmVtb3ZlKCZta2Rpcl91cmxzLCBta2Rpcl91cmxzKTsKKy0gICAg ICAgIAorKworICAgICAgICAgYWxyZWFkeV9leGlzdHMgPSBnbG9idXNfaGFzaHRhYmxlX2xvb2t1 cCgKKyAgICAgICAgICAgICAmZ3VjX2luZm8tPm1rZGlyX2hhc2gsIGRzdF9ta3VybCk7CisgCitA QCAtNDY4MCw3ICs0NjgwLDcgQEAgZ2xvYnVzX2xfZ3VjX2NyZWF0ZV9kaXIoCisgICAgICAgICAg ICAgeworICAgICAgICAgICAgICAgICBkb25lX2NyZWF0ZV9kZXN0ID0gR0xPQlVTX1RSVUU7Cisg ICAgICAgICAgICAgfQorLSAgICAgICAgICAgIAorKworICAgICAgICAgICAgIGlmKHJlc3VsdCA9 PSBHTE9CVVNfU1VDQ0VTUyB8fCAhZmlyc3RfYXR0ZW1wdCkKKyAgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgIGdsb2J1c19tdXRleF9sb2NrKCZnX21vbml0b3IubXV0ZXgpOworQEAgLTQ3 MDAsMjIgKzQ3MDAsMjIgQEAgZ2xvYnVzX2xfZ3VjX2NyZWF0ZV9kaXIoCisgICAgICAgICAgICAg ICAgICZoYW5kbGUtPmRlc3RfZnRwX2F0dHIpOworICAgICAgICAgICAgIGhhbmRsZS0+ZGVzdF9m dHBfYXR0ciA9IE5VTEw7CisgICAgICAgICB9CistICAgICAgICAKKysKKyAgICAgICAgIGZpcnN0 X2F0dGVtcHQgPSBHTE9CVVNfRkFMU0U7CisgICAgICAgICBpZighaW5zZXJ0ZWQpCisgICAgICAg ICB7CisgICAgICAgICAgICAgZ2xvYnVzX2ZyZWUoZHN0X21rdXJsKTsKKyAgICAgICAgIH0KKyAg ICAgfQorLSAgICAKKysKKyAgICAgd2hpbGUoIWdsb2J1c19saXN0X2VtcHR5KG1rZGlyX3VybHMp KQorICAgICB7CisgICAgICAgICBkc3RfbWt1cmwgPSBnbG9idXNfbGlzdF9yZW1vdmUoJm1rZGly X3VybHMsIG1rZGlyX3VybHMpOworICAgICAgICAgZ2xvYnVzX2ZyZWUoZHN0X21rdXJsKTsKKyAg ICAgfQorLSAgICAKKysKKyAgICAgcmV0dXJuIEdMT0JVU19TVUNDRVNTOworLSAgICAKKysKKyBl cnJvcjoKKyAgICAgcmV0dXJuIHJlc3VsdDsKKyB9CitAQCAtNDc0MCw3ICs0NzQwLDcgQEAgZ2xv YnVzX2xfZ3VjX2V4cGFuZF91cmxzKAorICAgICAgICAgMjU2LAorICAgICAgICAgZ2xvYnVzX2hh c2h0YWJsZV9zdHJpbmdfaGFzaCwKKyAgICAgICAgIGdsb2J1c19oYXNodGFibGVfc3RyaW5nX2tl eWVxKTsKKy0gICAgICAgICAgICAKKysKKyAgICAgZ2xvYnVzX2hhc2h0YWJsZV9pbml0KAorICAg ICAgICAgJmd1Y19pbmZvLT5kZXN0X2hhc2gsCisgICAgICAgICAyNTYsCitAQCAtNDc2MCwxOSAr NDc2MCwxOSBAQCBnbG9idXNfbF9ndWNfZXhwYW5kX3VybHMoCisgCisgICAgICAgICBzcmNfdXJs ID0gdXNlcl91cmxfcGFpci0+c3JjX3VybDsKKyAgICAgICAgIGRzdF91cmwgPSB1c2VyX3VybF9w YWlyLT5kc3RfdXJsOworLSAgICAgICAgCisrCisgICAgICAgICBub19leHBhbmQgPSBHTE9CVVNf RkFMU0U7CisgICAgICAgICBpZihzdHJjbXAoIi0iLCBzcmNfdXJsKSA9PSAwKQorICAgICAgICAg eworICAgICAgICAgICAgIGV4cGFuZGVkX3VybF9wYWlyID0gKGdsb2J1c19sX2d1Y19zcmNfZHN0 X3BhaXJfdCAqKQorICAgICAgICAgICAgICAgICAgICAgZ2xvYnVzX21hbGxvYyhzaXplb2YoZ2xv YnVzX2xfZ3VjX3NyY19kc3RfcGFpcl90KSk7CistICAgICAgICAKKysKKyAgICAgICAgICAgICBl eHBhbmRlZF91cmxfcGFpci0+c3JjX3VybCA9IGdsb2J1c19saWJjX3N0cmR1cChzcmNfdXJsKTsK KyAgICAgICAgICAgICBleHBhbmRlZF91cmxfcGFpci0+ZHN0X3VybCA9IGdsb2J1c19saWJjX3N0 cmR1cChkc3RfdXJsKTsKKyAgICAgICAgICAgICBleHBhbmRlZF91cmxfcGFpci0+b2Zmc2V0ID0g dXNlcl91cmxfcGFpci0+b2Zmc2V0OworICAgICAgICAgICAgIGV4cGFuZGVkX3VybF9wYWlyLT5s ZW5ndGggPSB1c2VyX3VybF9wYWlyLT5sZW5ndGg7CisgICAgICAgICAgICAgZXhwYW5kZWRfdXJs X3BhaXItPnNyY19pbmZvID0gTlVMTDsKKy0gICAgICAgICAgICAKKysKKyAgICAgICAgICAgICBp ZihndWNfaW5mby0+Y3JlYXRlX2Rlc3QgJiYgIWd1Y19pbmZvLT5kdW1wX29ubHlfZmlsZSkKKyAg ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19sX2d1Y19jcmVh dGVfZGlyKAorQEAgLTQ3ODQsMTEgKzQ3ODQsMTEgQEAgZ2xvYnVzX2xfZ3VjX2V4cGFuZF91cmxz KAorICAgICAgICAgICAgIH0KKyAKKyAgICAgICAgICAgICBnbG9idXNfZmlmb19lbnF1ZXVlKAor LSAgICAgICAgICAgICAgICAmZ3VjX2luZm8tPmV4cGFuZGVkX3VybF9saXN0LCAKKysgICAgICAg ICAgICAgICAgJmd1Y19pbmZvLT5leHBhbmRlZF91cmxfbGlzdCwKKyAgICAgICAgICAgICAgICAg ZXhwYW5kZWRfdXJsX3BhaXIpOworICAgICAgICAgICAgIG5vX2V4cGFuZCA9IEdMT0JVU19UUlVF OworICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAKKysKKyAgICAgICAgIGdsb2J1c19sX2d1 Y19nYXNzX2F0dHJfaW5pdCgKKyAgICAgICAgICAgICAmaGFuZGxlLT5zb3VyY2VfZ2Fzc19jb3B5 X2F0dHIsCisgICAgICAgICAgICAgJmhhbmRsZS0+c291cmNlX2dhc3NfYXR0ciwKK0BAIC00ODEw LDcgKzQ4MTAsNyBAQCBnbG9idXNfbF9ndWNfZXhwYW5kX3VybHMoCisgICAgICAgICB9CisgCisg ICAgICAgICBpZighbm9fZXhwYW5kKQorLSAgICAgICAgeyAKKysgICAgICAgIHsKKyAgICAgICAg ICAgICBnbG9idXNfbF9ndWNfdHJhbnNmZXJfdCAgICB0cmFuc2Zlcl9pbmZvOworICAgICAgICAg ICAgIHRyYW5zZmVyX2luZm8udXJscyA9IHVzZXJfdXJsX3BhaXI7CisgICAgICAgICAgICAgZ2xv YnVzX2ZpZm9faW5pdCgmdHJhbnNmZXJfaW5mby5tYXRjaGVkX3VybF9saXN0KTsKK0BAIC00ODMw LDE3ICs0ODMwLDE3IEBAIGdsb2J1c19sX2d1Y19leHBhbmRfdXJscygKKyAgICAgICAgICAgICBp ZihyZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MpCisgICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgICBpZighZ19jb250aW51ZSkKKy0gICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAg ICAgCisrICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgIGdsb2J1c19maWZv X2VucXVldWUoCistICAgICAgICAgICAgICAgICAgICAgICAgJnRyYW5zZmVyX2luZm8uZ3VjX2lu Zm8tPnVzZXJfdXJsX2xpc3QsIAorKyAgICAgICAgICAgICAgICAgICAgICAgICZ0cmFuc2Zlcl9p bmZvLmd1Y19pbmZvLT51c2VyX3VybF9saXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHRy YW5zZmVyX2luZm8udXJscyk7CisgCisgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zlcl9pbmZv LnVybHMgPSBOVUxMOworICAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICAgIAorKwor ICAgICAgICAgICAgICAgICBnbG9idXNfbF9ndWNfdXJsX3BhaXJfZnJlZSh0cmFuc2Zlcl9pbmZv LnVybHMpOworICAgICAgICAgICAgICAgICBnb3RvIGVycm9yX2V4cGFuZDsKKy0gICAgICAgICAg ICAgICAgCisrCisgICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgICAgZ2xvYnVzX2Z0 cF9jbGllbnRfb3BlcmF0aW9uYXR0cl9kZXN0cm95KCZoYW5kbGUtPnNvdXJjZV9mdHBfYXR0cik7 CitAQCAtNDg1MCwxOCArNDg1MCwxOCBAQCBnbG9idXNfbF9ndWNfZXhwYW5kX3VybHMoCisgICAg ICAgICAgICAgZ2xvYnVzX2Z0cF9jbGllbnRfb3BlcmF0aW9uYXR0cl9kZXN0cm95KCZoYW5kbGUt PmRlc3RfZnRwX2F0dHIpOworICAgICAgICAgICAgIGhhbmRsZS0+ZGVzdF9mdHBfYXR0ciA9IE5V TEw7CisgICAgICAgICB9CistICAgICAgICAgICAgICAgIAorKworICAgICAgICAgZ2xvYnVzX2xf Z3VjX3VybF9wYWlyX2ZyZWUodXNlcl91cmxfcGFpcik7CisgICAgIH0KKyAKKy0gICAgaWYoIWds b2J1c19maWZvX2VtcHR5KCZndWNfaW5mby0+ZXhwYW5kZWRfdXJsX2xpc3QpIHx8IAorKyAgICBp ZighZ2xvYnVzX2ZpZm9fZW1wdHkoJmd1Y19pbmZvLT5leHBhbmRlZF91cmxfbGlzdCkgfHwKKyAg ICAgICAgIGd1Y19pbmZvLT5zeW5jIHx8IGd1Y19pbmZvLT5kdW1wX29ubHlfZnApCisgICAgIHsK KyAgICAgICAgIG5vX21hdGNoZXMgPSBHTE9CVVNfRkFMU0U7CisgICAgIH0KKyAKKyAgICAgcmVz dWx0ID0gZ2xvYnVzX2xfZ3VjX3RyYW5zZmVyX2ZpbGVzKGd1Y19pbmZvKTsKKy0gICAgCisrCisg ICAgIGlmKGdsb2J1c19sX2dsb2J1c191cmxfY29weV9jdHJsY19oYW5kbGVkKQorICAgICB7Cisg ICAgICAgICBnb3RvIGVycm9yX3RyYW5zZmVyOworQEAgLTQ4NzQsMTQgKzQ4NzQsMTQgQEAgZ2xv YnVzX2xfZ3VjX2V4cGFuZF91cmxzKAorICAgICAgICAgICAgIGdvdG8gZXJyb3JfdHJhbnNmZXI7 CisgICAgICAgICB9CisgICAgIH0KKy0gICAgCisrCisgICAgIGlmKG5vX21hdGNoZXMgJiYgcmVz dWx0ID09IEdMT0JVU19TVUNDRVNTKQorICAgICB7CisgICAgICAgICByZXN1bHQgPSBnbG9idXNf ZXJyb3JfcHV0KAorICAgICAgICAgICAgIGdsb2J1c19lcnJvcl9jb25zdHJ1Y3Rfc3RyaW5nKAor ICAgICAgICAgICAgICAgICBHTE9CVVNfTlVMTCwKKyAgICAgICAgICAgICAgICAgR0xPQlVTX05V TEwsCistICAgICAgICAgICAgICAgIF9HQVNDU0woIk5vIGZpbGVzIG1hdGNoZWQgdGhlIHNvdXJj ZSB1cmwuXG4iKSkpOyAgICAgICAgICAgICAgICAgICAgCisrICAgICAgICAgICAgICAgIF9HQVND U0woIk5vIGZpbGVzIG1hdGNoZWQgdGhlIHNvdXJjZSB1cmwuXG4iKSkpOworICAgICB9CisgICAg IGlmKHdhc19lcnJvciAmJiByZXN1bHQgPT0gR0xPQlVTX1NVQ0NFU1MpCisgICAgIHsKK0BAIC00 OTEwLDE1ICs0OTEwLDE1IEBAIGVycm9yX2V4cGFuZDoKKyAgICAgICAgIGhhbmRsZS0+ZGVzdF9m dHBfYXR0ciA9IE5VTEw7CisgICAgIH0KKyAKKy1lcnJvcl90cmFuc2ZlcjogICAgICAgICAgICAK KytlcnJvcl90cmFuc2ZlcjoKKyAgICAgZ2xvYnVzX2hhc2h0YWJsZV9kZXN0cm95X2FsbCgmZ3Vj X2luZm8tPnJlY3Vyc2VfaGFzaCwKKyAgICAgICAgIGdsb2J1c19sX2d1Y19oYXNodGFibGVfZWxl bWVudF9mcmVlKTsKKyAgICAgZ2xvYnVzX2hhc2h0YWJsZV9kZXN0cm95X2FsbCgmZ3VjX2luZm8t PmRlc3RfaGFzaCwKKyAgICAgICAgIGdsb2J1c19sX2d1Y191cmxfaW5mb19mcmVlKTsKKyAgICAg Z2xvYnVzX2hhc2h0YWJsZV9kZXN0cm95X2FsbCgmZ3VjX2luZm8tPm1rZGlyX2hhc2gsCisgICAg ICAgICBnbG9idXNfbF9ndWNfaGFzaHRhYmxlX2VsZW1lbnRfZnJlZSk7CistICAgICAKKy0gICAg cmV0dXJuIHJlc3VsdDsgICAgICAgICAgICAgICAgCisrCisrICAgIHJldHVybiByZXN1bHQ7Cisg fQorIAorIHR5cGVkZWYgc3RydWN0CitAQCAtNDkzMiwxNyArNDkzMiwxNyBAQCB0eXBlZGVmIHN0 cnVjdAorIH0gZ2xvYnVzX2xfZ3VjX2Nrc21faW5mb190OworIAorIAorLXN0YXRpYyAKKytzdGF0 aWMKKyB2b2lkCisgZ2xvYnVzX2xfZ3VjX2Nrc21fY2IoCisgICAgIHZvaWQgKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrX2FyZywKKyAgICAgZ2xvYnVzX2dhc3NfY29weV9o YW5kbGVfdCAqICAgICAgICAgaGFuZGxlLAorICAgICBnbG9idXNfb2JqZWN0X3QgKiAgICAgICAg ICAgICAgICAgICBlcnJvcikKKy17ICAgIAorK3sKKyAgICAgZ2xvYnVzX2xfZ3VjX2Nrc21faW5m b190ICogICAgICAgICAgY2tzbV9pbmZvOworIAorICAgICBja3NtX2luZm8gPSAoZ2xvYnVzX2xf Z3VjX2Nrc21faW5mb190ICopIGNhbGxiYWNrX2FyZzsKKy0gICAgCisrCisgICAgIGlmKGVycm9y KQorICAgICB7CisgICAgICAgICBnbG9idXNfZnJlZShja3NtX2luZm8tPnVybGluZm8tPmNoZWNr c3VtKTsKK0BAIC00OTU0LDcgKzQ5NTQsNyBAQCBnbG9idXNfbF9ndWNfY2tzbV9jYigKKyAgICAg ICAgIGNrc21faW5mby0+ZG9uZSA9IEdMT0JVU19UUlVFOworICAgICAgICAgZ2xvYnVzX2NvbmRf c2lnbmFsKCZja3NtX2luZm8tPm1vbml0b3ItPmNvbmQpOworICAgICB9CistICAgIGdsb2J1c19t dXRleF91bmxvY2soJmNrc21faW5mby0+bW9uaXRvci0+bXV0ZXgpOyAgIAorKyAgICBnbG9idXNf bXV0ZXhfdW5sb2NrKCZja3NtX2luZm8tPm1vbml0b3ItPm11dGV4KTsKKyB9CisgCisgCitAQCAt NDk3MCw3ICs0OTcwLDcgQEAgZ2xvYnVzX2xfZ3VjX2NoZWNrX3N5bmMoCisgICAgIGdsb2J1c19i b29sX3QgICAgICAgICAgICAgICAgICAgICAgIHJldHZhbCA9IEdMT0JVU19UUlVFOworICAgICBn bG9idXNfcmVzdWx0X3QgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBHTE9CVVNfU1VDQ0VT UzsKKyAgICAgZ2xvYnVzX2xfZ3VjX3VybF9pbmZvX3QgKiAgICAgICAgICAgZGVzdF91cmxpbmZv OworLSAgICAKKysKKyAgICAgZ2xvYnVzX211dGV4X2xvY2soJmdfbW9uaXRvci5tdXRleCk7Cisg ICAgIGRlc3RfdXJsaW5mbyA9IGdsb2J1c19oYXNodGFibGVfcmVtb3ZlKCZndWNfaW5mby0+ZGVz dF9oYXNoLCBkc3RfdXJsKTsKKyAgICAgZ2xvYnVzX211dGV4X3VubG9jaygmZ19tb25pdG9yLm11 dGV4KTsKK0BAIC00OTg4LDEzICs0OTg4LDEzIEBAIGdsb2J1c19sX2d1Y19jaGVja19zeW5jKAor IAorICAgICAgICAgICAgICAgICAgICAgZ2xvYnVzX211dGV4X2luaXQoJmNrc21fbW9uaXRvci5t dXRleCwgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICBnbG9idXNfY29uZF9pbml0KCZja3Nt X21vbml0b3IuY29uZCwgTlVMTCk7CistICAgICAgICAgICAgICAgICAgICAKKysKKyAgICAgICAg ICAgICAgICAgICAgIHNyY191cmxpbmZvLT5jaGVja3N1bSA9IG1hbGxvYyhDS1NNX1NJWkUpOwor ICAgICAgICAgICAgICAgICAgICAgc3JjX2Nrc21faW5mby51cmxpbmZvID0gc3JjX3VybGluZm87 CisgICAgICAgICAgICAgICAgICAgICBzcmNfY2tzbV9pbmZvLmRvbmUgPSBHTE9CVVNfRkFMU0U7 CisgICAgICAgICAgICAgICAgICAgICBzcmNfY2tzbV9pbmZvLm1vbml0b3IgPSAmY2tzbV9tb25p dG9yOworICAgICAgICAgICAgICAgICAgICAgc3JjX2Nrc21faW5mby5lcnJvciA9IE5VTEw7Cist ICAgICAgICAgICAgICAgICAgICAKKysKKyAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGds b2J1c19nYXNzX2NvcHlfY2tzbV9hc3luYygKKyAgICAgICAgICAgICAgICAgICAgICAgICAmaGFu ZGxlLT5nYXNzX2NvcHlfaGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNyY191cmxp bmZvLT51cmwsCitAQCAtNTAxMywyMCArNTAxMywyMCBAQCBnbG9idXNfbF9ndWNfY2hlY2tfc3lu YygKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGdsb2J1c19m dHBfY2xpZW50X2hhbmRsZV90ICAgICAgcmVhbF9mdHBfaGFuZGxlOworICAgICAgICAgICAgICAg ICAgICAgZ2xvYnVzX2Z0cF9jbGllbnRfaGFuZGxlX3QgICAgICBja3NtX2Z0cF9oYW5kbGU7Cist ICAgICAgICAgICAgICAgICAgICAKKysKKyAgICAgICAgICAgICAgICAgICAgIGRlc3RfdXJsaW5m by0+Y2hlY2tzdW0gPSBtYWxsb2MoQ0tTTV9TSVpFKTsKKyAgICAgICAgICAgICAgICAgICAgIGRz dF9ja3NtX2luZm8udXJsaW5mbyA9IGRlc3RfdXJsaW5mbzsKKyAgICAgICAgICAgICAgICAgICAg IGRzdF9ja3NtX2luZm8uZG9uZSA9IEdMT0JVU19GQUxTRTsKKyAgICAgICAgICAgICAgICAgICAg IGRzdF9ja3NtX2luZm8ubW9uaXRvciA9ICZja3NtX21vbml0b3I7CisgICAgICAgICAgICAgICAg ICAgICBkc3RfY2tzbV9pbmZvLmVycm9yID0gTlVMTDsKKy0gICAgICAgICAgICAgICAgICAgIAor KworICAgICAgICAgICAgICAgICAgICAgZ2xvYnVzX2dhc3NfY29weV9nZXRfZnRwX2hhbmRsZSgK KyAgICAgICAgICAgICAgICAgICAgICAgICAmaGFuZGxlLT5nYXNzX2NvcHlfaGFuZGxlLCAmcmVh bF9mdHBfaGFuZGxlKTsKKyAgICAgICAgICAgICAgICAgICAgIGdsb2J1c19nYXNzX2NvcHlfZ2V0 X2Z0cF9oYW5kbGUoCisgICAgICAgICAgICAgICAgICAgICAgICAgJmhhbmRsZS0+Y2tzbV9nYXNz X2NvcHlfaGFuZGxlLCAmY2tzbV9mdHBfaGFuZGxlKTsKKyAgICAgICAgICAgICAgICAgICAgIGds b2J1c19mdHBfY2xpZW50X2hhbmRsZV9ib3Jyb3dfY29ubmVjdGlvbigKKyAgICAgICAgICAgICAg ICAgICAgICAgICAmcmVhbF9mdHBfaGFuZGxlLCBHTE9CVVNfRkFMU0UsICZja3NtX2Z0cF9oYW5k bGUsIEdMT0JVU19UUlVFKTsKKy0gICAgICAgICAgICAgICAgICAgIAorKworICAgICAgICAgICAg ICAgICAgICAgcmVzdWx0ID0gZ2xvYnVzX2dhc3NfY29weV9ja3NtX2FzeW5jKAorICAgICAgICAg ICAgICAgICAgICAgICAgICZoYW5kbGUtPmNrc21fZ2Fzc19jb3B5X2hhbmRsZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICBkZXN0X3VybGluZm8tPnVybCwKK0BAIC01MDQ2LDcgKzUwNDYsNyBA QCBnbG9idXNfbF9ndWNfY2hlY2tfc3luYygKKyAKKyAgICAgICAgICAgICAgICAgICAgICAgICBn b3RvIGVycm9yOworICAgICAgICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICAgICAg ICAgIAorKworICAgICAgICAgICAgICAgICAgICAgZ2xvYnVzX211dGV4X2xvY2soJmNrc21fbW9u aXRvci5tdXRleCk7CisgICAgICAgICAgICAgICAgICAgICB3aGlsZSghc3JjX2Nrc21faW5mby5k b25lIHx8ICFkc3RfY2tzbV9pbmZvLmRvbmUpCisgICAgICAgICAgICAgICAgICAgICB7CitAQCAt NTA1NCw3ICs1MDU0LDcgQEAgZ2xvYnVzX2xfZ3VjX2NoZWNrX3N5bmMoCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZja3NtX21vbml0b3IuY29uZCwgJmNrc21fbW9uaXRvci5tdXRleCk7 CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICBnbG9idXNfbXV0 ZXhfdW5sb2NrKCZja3NtX21vbml0b3IubXV0ZXgpOworLSAgICAgICAgICAgICAgICAgICAgCisr CisgICAgICAgICAgICAgICAgICAgICBpZihzcmNfY2tzbV9pbmZvLmVycm9yKQorICAgICAgICAg ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19l cnJvcl9wdXQoc3JjX2Nrc21faW5mby5lcnJvcik7CitAQCAtNTA3MSw3ICs1MDcxLDcgQEAgZ2xv YnVzX2xfZ3VjX2NoZWNrX3N5bmMoCisgCisgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBl cnJvcjsKKyAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAgIAorKwor ICAgICAgICAgICAgICAgICAgICAgaWYoc3JjX3VybGluZm8tPmNoZWNrc3VtICYmIGRlc3RfdXJs aW5mby0+Y2hlY2tzdW0gJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJjbXAoc3JjX3Vy bGluZm8tPmNoZWNrc3VtLCBkZXN0X3VybGluZm8tPmNoZWNrc3VtKSA9PSAwKQorICAgICAgICAg ICAgICAgICAgICAgeworQEAgLTUwODYsNyArNTA4Niw3IEBAIGdsb2J1c19sX2d1Y19jaGVja19z eW5jKAorICAgICAgICAgICAgICAgICBicmVhazsKKyAKKyAgICAgICAgICAgICBjYXNlIEdMT0JV U19MX0dVQ19EQVRFOgorLSAgICAgICAgICAgICAgICBpZihkZXN0X3VybGluZm8tPm1kdG0gPj0g c3JjX3VybGluZm8tPm1kdG0gJiYgCisrICAgICAgICAgICAgICAgIGlmKGRlc3RfdXJsaW5mby0+ bWR0bSA+PSBzcmNfdXJsaW5mby0+bWR0bSAmJgorICAgICAgICAgICAgICAgICAgICAgc3JjX3Vy bGluZm8tPm1kdG0gIT0gLTEgJiYKKyAgICAgICAgICAgICAgICAgICAgIGRlc3RfdXJsaW5mby0+ c2l6ZSA9PSBzcmNfdXJsaW5mby0+c2l6ZSAmJgorICAgICAgICAgICAgICAgICAgICAgc3JjX3Vy bGluZm8tPnNpemUgIT0gLTEpCitAQCAtNTA5NCw3ICs1MDk0LDcgQEAgZ2xvYnVzX2xfZ3VjX2No ZWNrX3N5bmMoCisgICAgICAgICAgICAgICAgICAgICByZXR2YWwgPSBHTE9CVVNfRkFMU0U7Cisg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgYnJlYWs7CistICAgICAgICAgICAg ICAgIAorKworICAgICAgICAgICAgIGNhc2UgR0xPQlVTX0xfR1VDX1NJWkU6CisgICAgICAgICAg ICAgICAgIGlmKGRlc3RfdXJsaW5mby0+c2l6ZSA9PSBzcmNfdXJsaW5mby0+c2l6ZSAmJgorICAg ICAgICAgICAgICAgICAgICAgc3JjX3VybGluZm8tPnNpemUgIT0gLTEpCitAQCAtNTEwOSwxNCAr NTEwOSwxNCBAQCBnbG9idXNfbF9ndWNfY2hlY2tfc3luYygKKyAgICAgICAgICAgICAgICAgICAg IHJldHZhbCA9IEdMT0JVU19GQUxTRTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICBicmVhazsKKy0gICAgICAgICAgICAgCisrCisgICAgICAgICAgICAgZGVmYXVsdDoKKyAg ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICB9CisgCisgICAgICAgICBnbG9idXNfbF9n dWNfdXJsX2luZm9fZnJlZShkZXN0X3VybGluZm8pOworICAgICB9CistICAgIAorKworICAgICAq bWlzbWF0Y2ggPSByZXR2YWw7CisgICAgIHJldHVybiBHTE9CVVNfU1VDQ0VTUzsKKyAKK0BAIC01 MTQyLDQxICs1MTQyLDQxIEBAIGdsb2J1c19sX2d1Y19leHBhbmRfc2luZ2xlX3VybCgKKyAgICAg Z2xvYnVzX3Jlc3VsdF90ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OworICAgICBnbG9idXNf Ym9vbF90ICAgICAgICAgICAgICAgICAgICAgICBkc3RfaXNfZmlsZTsKKyAgICAgZ2xvYnVzX2Jv b2xfdCAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9pc19kaXI7CistICAgIGludAkJCQkg ICAgICAgIGZpbGVzX21hdGNoZWQ7ICAKKysgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZmlsZXNfbWF0Y2hlZDsKKyAgICAgZ2xvYnVzX2xfZ3VjX2luZm9fdCAqICAgICAg ICAgICAgICAgZ3VjX2luZm87CisgICAgIGdsb2J1c19sX2d1Y19oYW5kbGVfdCAqICAgICAgICAg ICAgIGhhbmRsZTsKKyAgICAgZ2xvYnVzX2Jvb2xfdCAgICAgICAgICAgICAgICAgICAgICAgZG9f dHJhbnNmZXIgPSBHTE9CVVNfVFJVRTsKKy0gICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmM7IAorLSAgICAKKysgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmM7CisrCisgICAgIHNyY191cmwgPSB0cmFuc2Zlcl9pbmZvLT51cmxzLT5zcmNfdXJs OworICAgICBkc3RfdXJsID0gdHJhbnNmZXJfaW5mby0+dXJscy0+ZHN0X3VybDsKKyAgICAgaGFu ZGxlID0gdHJhbnNmZXJfaW5mby0+aGFuZGxlOworICAgICBndWNfaW5mbyA9IHRyYW5zZmVyX2lu Zm8tPmd1Y19pbmZvOworLSAgICAgICAgCisrCisgICAgIHJlc3VsdCA9IGdsb2J1c19nYXNzX2Nv cHlfZ2xvYl9leHBhbmRfdXJsKAorICAgICAgICAgICAgICAgICAmaGFuZGxlLT5nYXNzX2NvcHlf aGFuZGxlLAorICAgICAgICAgICAgICAgICBzcmNfdXJsLAorICAgICAgICAgICAgICAgICAmaGFu ZGxlLT5zb3VyY2VfZ2Fzc19jb3B5X2F0dHIsCisgICAgICAgICAgICAgICAgIGdsb2J1c19sX2d1 Y19lbnRyeV9jYiwKKyAgICAgICAgICAgICAgICAgdHJhbnNmZXJfaW5mbyk7CistICAgIAorKwor ICAgICBpZihyZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MpCisgICAgIHsKKyAgICAgICAgIHJlc3Vs dCA9IGdsb2J1c19lcnJvcl9wdXQoCistICAgICAgICAgICAgZ2xvYnVzX2Vycm9yX2NvbnN0cnVj dF9lcnJvciggCistICAgICAgICAgICAgICAgIEdMT0JVU19OVUxMLCAgICAgICAgICAgICAgCist ICAgICAgICAgICAgICAgIGdsb2J1c19lcnJvcl9wZWVrKHJlc3VsdCksICAgCistICAgICAgICAg ICAgICAgIDAsICAgICAKKy0gICAgICAgICAgICAgICAgX19GSUxFX18sICAgICAgICAgICAgICAg ICAgICAgCistICAgICAgICAgICAgICAgIEdMT0JVU19OVUxMLCAgICAgICAgICAgICAgICAgICAg CistICAgICAgICAgICAgICAgIF9fTElORV9fLCAgICAgICAgICAgICAgICAgICAgIAorLSAgICAg ICAgICAgICAgICAiVW5hYmxlIHRvIGxpc3QgdXJsICVzOiIsICAgICAgICAgICAgICAgICAKKysg ICAgICAgICAgICBnbG9idXNfZXJyb3JfY29uc3RydWN0X2Vycm9yKAorKyAgICAgICAgICAgICAg ICBHTE9CVVNfTlVMTCwKKysgICAgICAgICAgICAgICAgZ2xvYnVzX2Vycm9yX3BlZWsocmVzdWx0 KSwKKysgICAgICAgICAgICAgICAgMCwKKysgICAgICAgICAgICAgICAgX19GSUxFX18sCisrICAg ICAgICAgICAgICAgIEdMT0JVU19OVUxMLAorKyAgICAgICAgICAgICAgICBfX0xJTkVfXywKKysg ICAgICAgICAgICAgICAgIlVuYWJsZSB0byBsaXN0IHVybCAlczoiLAorICAgICAgICAgICAgICAg ICBzcmNfdXJsKSk7CistICAgICAgICBnb3RvIGVycm9yX2V4cGFuZDsgIAorKyAgICAgICAgZ290 byBlcnJvcl9leHBhbmQ7CisgICAgIH0KKy0gICAgCisrCisgICAgIHVybF9sZW4gPSBzdHJsZW4o ZHN0X3VybCk7CistICAgIAorKworICAgICBpZihkc3RfdXJsW3VybF9sZW4gLSAxXSA9PSAnLycp CisgICAgIHsKKyAgICAgICAgIGRzdF9pc19maWxlID0gR0xPQlVTX0ZBTFNFOworQEAgLTUxODks NyArNTE4OSw3IEBAIGdsb2J1c19sX2d1Y19leHBhbmRfc2luZ2xlX3VybCgKKyAgICAgaWYoZ3Vj X2luZm8tPnN5bmMpCisgICAgIHsKKyAgICAgICAgIGdsb2J1c19nYXNzX2NvcHlfZ2xvYl9zdGF0 X3QgICAgc3RhdF9pbmZvOworLSAgICAgICAgCisrCisgICAgICAgICByZXN1bHQgPSBnbG9idXNf Z2Fzc19jb3B5X3N0YXQoCisgICAgICAgICAgICAgJmhhbmRsZS0+Z2Fzc19jb3B5X2hhbmRsZSwK KyAgICAgICAgICAgICBkc3RfdXJsLAorQEAgLTUyMDIsNyArNTIwMiw3IEBAIGdsb2J1c19sX2d1 Y19leHBhbmRfc2luZ2xlX3VybCgKKyAgICAgICAgICAgICAgICAgY2hhciAqICAgICAgICAgICAg ICAgICAgdG1wX2RzdDsKKyAKKyAgICAgICAgICAgICAgICAgdG1wX2RzdCA9IGdsb2J1c19saWJj X3N0cmR1cChkc3RfdXJsKTsKKy0gICAgICAgICAgICAgICAgCisrCisgICAgICAgICAgICAgICAg IGdsb2J1c19tdXRleF9sb2NrKCZnX21vbml0b3IubXV0ZXgpOworICAgICAgICAgICAgICAgICBy YyA9IGdsb2J1c19oYXNodGFibGVfaW5zZXJ0KAorICAgICAgICAgICAgICAgICAgICAgJmd1Y19p bmZvLT5ta2Rpcl9oYXNoLAorQEAgLTUyNDEsNyArNTI0MSw3IEBAIGdsb2J1c19sX2d1Y19leHBh bmRfc2luZ2xlX3VybCgKKyAgICAgICAgICAgICAgICAgZ2xvYnVzX2xfZ3VjX2Rlc3RfZW50cnlf Y2IoCisgICAgICAgICAgICAgICAgICAgICBkc3RfdXJsLCAmc3RhdF9pbmZvLCB0cmFuc2Zlcl9p bmZvKTsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAgCisrCisgICAgICAgICAgICAgaWYo c3RhdF9pbmZvLnN5bWxpbmtfdGFyZ2V0KQorICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICAgZ2xvYnVzX2ZyZWUoc3RhdF9pbmZvLnN5bWxpbmtfdGFyZ2V0KTsKK0BAIC01MjU2LDcgKzUy NTYsNyBAQCBnbG9idXNfbF9ndWNfZXhwYW5kX3NpbmdsZV91cmwoCisgICAgICAgICAgICAgY2hh ciAqICAgICAgICAgICAgICAgICAgICAgIHRtcF9lcnJzdHI7CisgICAgICAgICAgICAgZ2xvYnVz X29iamVjdF90ICogICAgICAgICAgIHRtcF9lcnI7CisgICAgICAgICAgICAgY2hhciAqICAgICAg ICAgICAgICAgICAgICAgIHRtcF9wdHI7CistICAgICAgICAgICAgCisrCisgICAgICAgICAgICAg dG1wX2VyciA9IGdsb2J1c19lcnJvcl9wZWVrKHJlc3VsdCk7CisgICAgICAgICAgICAgdG1wX2Vy cnN0ciA9IGdsb2J1c19lcnJvcl9wcmludF9mcmllbmRseSh0bXBfZXJyKTsKKyAgICAgICAgICAg ICBmb3IodG1wX3B0ciA9IHRtcF9lcnJzdHI7ICp0bXBfcHRyICE9ICdcMCc7IHRtcF9wdHIrKykK K0BAIC01Mjg4LDE3ICs1Mjg4LDE3IEBAIGdsb2J1c19sX2d1Y19leHBhbmRfc2luZ2xlX3VybCgK KyAgICAgICAgICAgICBnbG9idXNfZnJlZSh0bXBfZXJyc3RyKTsKKyAgICAgICAgIH0KKyAgICAg fQorLSAgICAKKysKKyAgICAgZmlsZXNfbWF0Y2hlZCA9IDA7CisgICAgIGJhc2VfdXJsX2xlbiA9 IHN0cnJjaHIoc3JjX3VybCwgJy8nKSAtIHNyY191cmwgKyAxOworLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorKworICAgICB3aGlsZSghZ2xvYnVzX2ZpZm9fZW1wdHkoJnRyYW5z ZmVyX2luZm8tPm1hdGNoZWRfdXJsX2xpc3QpKQorICAgICB7CistICAgICAgICBtYXRjaGVkX3Ny Y191cmxpbmZvID0gKGdsb2J1c19sX2d1Y191cmxfaW5mb190ICopIAorKyAgICAgICAgbWF0Y2hl ZF9zcmNfdXJsaW5mbyA9IChnbG9idXNfbF9ndWNfdXJsX2luZm9fdCAqKQorICAgICAgICAgICAg IGdsb2J1c19maWZvX2RlcXVldWUoJnRyYW5zZmVyX2luZm8tPm1hdGNoZWRfdXJsX2xpc3QpOwor LSAgICAKKysKKyAgICAgICAgIG1hdGNoZWRfZmlsZSA9IG1hdGNoZWRfc3JjX3VybGluZm8tPnVy bCArIGJhc2VfdXJsX2xlbjsKKy0gICAgCisrCisgICAgICAgICBtYXRjaGVkX2lzX2RpciA9IEdM T0JVU19GQUxTRTsKKyAgICAgICAgIGlmKG1hdGNoZWRfc3JjX3VybGluZm8tPnVybFtzdHJsZW4o bWF0Y2hlZF9zcmNfdXJsaW5mby0+dXJsKSAtIDFdID09ICcvJykKKyAgICAgICAgIHsKK0BAIC01 MzE0LDcgKzUzMTQsNyBAQCBnbG9idXNfbF9ndWNfZXhwYW5kX3NpbmdsZV91cmwoCisgICAgICAg ICAgICAgICAgIGdvdG8gZXJyb3JfdG9vX21hbnlfbWF0Y2hlczsKKyAgICAgICAgICAgICB9Cisg ICAgICAgICB9CistICAgICAgICAgICAgCisrCisgICAgICAgICBpZihkc3RfaXNfZmlsZSAmJiAr K2ZpbGVzX21hdGNoZWQgPiAxKQorICAgICAgICAgeworICAgICAgICAgICAgIGdsb2J1c19sX2d1 Y191cmxfaW5mb19mcmVlKG1hdGNoZWRfc3JjX3VybGluZm8pOworQEAgLTUzMjUsMTEgKzUzMjUs MTEgQEAgZ2xvYnVzX2xfZ3VjX2V4cGFuZF9zaW5nbGVfdXJsKAorICAgICAgICAgeworICAgICAg ICAgICAgIG1hdGNoZWRfZGVzdF91cmwgPSBnbG9idXNfbGliY19zdHJkdXAoZHN0X3VybCk7Cisg ICAgICAgICB9CistICAgICAgICBlbHNlIAorLSAgICAgICAgeyAgICAgICAgCisrICAgICAgICBl bHNlCisrICAgICAgICB7CisgICAgICAgICAgICAgbWF0Y2hlZF9kZXN0X3VybCA9IChjaGFyICop IGdsb2J1c19tYWxsb2MoCisgICAgICAgICAgICAgICAgICh1cmxfbGVuICsgc3RybGVuKG1hdGNo ZWRfZmlsZSkgKyAxKSAqIHNpemVvZihjaGFyKSk7CistICAgICAgICAgICAgCisrCisgICAgICAg ICAgICAgc3ByaW50ZihtYXRjaGVkX2Rlc3RfdXJsLCAiJXMlcyIsIGRzdF91cmwsIG1hdGNoZWRf ZmlsZSk7CisgICAgICAgICB9CisgICAgICAgICBpZihndWNfaW5mby0+c3luYykKK0BAIC01MzQx LDM0ICs1MzQxLDM0IEBAIGdsb2J1c19sX2d1Y19leHBhbmRfc2luZ2xlX3VybCgKKyAgICAgICAg ICAgICAgICAgZ290byBlcnJvcl9leHBhbmQ7CisgICAgICAgICAgICAgfQorICAgICAgICAgfQor LSAgICAgICAgCisrCisgICAgICAgICBpZihkb190cmFuc2ZlcikKKyAgICAgICAgIHsKKyAKKyAg ICAgICAgICAgICAvKgorICAgICAgICAgICAgICAqIFNlZSBpZiBhIHBvc3QgdHJhbnNmZXIgY2hl Y2tzdW0gY29tcGFyaXNvbiBoYXMgYmVlbiByZXF1ZXN0ZWQKKy0gICAgICAgICAgICAgKi8gICAK KysgICAgICAgICAgICAgKi8KKyAKKy0gICAgICAgICAgICBpZihndWNfaW5mby0+Y29tcF9jaGVj a3N1bSkgCisrICAgICAgICAgICAgaWYoZ3VjX2luZm8tPmNvbXBfY2hlY2tzdW0pCisgICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgICBpZihtYXRjaGVkX3NyY191cmxpbmZvLT5jaGVja3N1 bSA9PSBHTE9CVVNfTlVMTCkKKyAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg ICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAqIElmIGEgY2hlY2tzdW0gaGFzbid0IGJlZW4g dGFrZW4gb24gdGhlIHNvdXJjZSB5ZXQsIHRha2UgaXQgbm93LgorICAgICAgICAgICAgICAgICAg ICAgICovCistICAgIAorKworICAgICAgICAgICAgICAgICAgICAgZ2xvYnVzX2xfZ3VjX2Nrc21f aW5mb190ICAgIHNyY19ja3NtX2luZm87CisgICAgICAgICAgICAgICAgICAgICBnbG9idXNfbF9n dWNfbW9uaXRvcl90ICAgICAgY2tzbV9tb25pdG9yOworLSAgICAgICAgCisrCisgICAgICAgICAg ICAgICAgICAgICBnbG9idXNfbXV0ZXhfaW5pdCgmY2tzbV9tb25pdG9yLm11dGV4LCBOVUxMKTsK KyAgICAgICAgICAgICAgICAgICAgIGdsb2J1c19jb25kX2luaXQoJmNrc21fbW9uaXRvci5jb25k LCBOVUxMKTsKKy0gICAgICAgIAorKworICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9zcmNf dXJsaW5mby0+Y2hlY2tzdW0gPSBtYWxsb2MoQ0tTTV9TSVpFKTsKKyAgICAgICAgICAgICAgICAg ICAgIHNyY19ja3NtX2luZm8udXJsaW5mbyA9IG1hdGNoZWRfc3JjX3VybGluZm87CisgICAgICAg ICAgICAgICAgICAgICBzcmNfY2tzbV9pbmZvLmRvbmUgPSBHTE9CVVNfRkFMU0U7CisgICAgICAg ICAgICAgICAgICAgICBzcmNfY2tzbV9pbmZvLm1vbml0b3IgPSAmY2tzbV9tb25pdG9yOworICAg ICAgICAgICAgICAgICAgICAgc3JjX2Nrc21faW5mby5lcnJvciA9IE5VTEw7CistICAgICAgICAK KysKKyAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19nYXNzX2NvcHlfY2tzbV9h c3luYygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZoYW5k bGUtPmdhc3NfY29weV9oYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtYXRjaGVkX3NyY191cmxpbmZvLT51cmwsCitAQCAtNTM5Miw3ICs1MzkyLDcg QEAgZ2xvYnVzX2xfZ3VjX2V4cGFuZF9zaW5nbGVfdXJsKAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmY2tzbV9tb25pdG9yLmNvbmQsICZja3NtX21vbml0b3IubXV0ZXgpOworICAgICAg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgZ2xvYnVzX211dGV4X3VubG9j aygmY2tzbV9tb25pdG9yLm11dGV4KTsKKy0gICAgICAgICAgICAgICAgICAgIAorKworICAgICAg ICAgICAgICAgICAgICAgaWYoc3JjX2Nrc21faW5mby5lcnJvcikKKyAgICAgICAgICAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBnbG9idXNfZXJyb3JfcHV0 KHNyY19ja3NtX2luZm8uZXJyb3IpOworQEAgLTU0MDAsNyArNTQwMCw3IEBAIGdsb2J1c19sX2d1 Y19leHBhbmRfc2luZ2xlX3VybCgKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgIH0KKy0gICAgCisrCisgICAgICAgICAgICAgaWYoZ3VjX2lu Zm8tPmNyZWF0ZV9kZXN0ICYmICFndWNfaW5mby0+ZHVtcF9vbmx5X2ZpbGUpCisgICAgICAgICAg ICAgeworICAgICAgICAgICAgICAgICByZXN1bHQgPSBnbG9idXNfbF9ndWNfY3JlYXRlX2RpcigK K0BAIC01NDEwLDcgKzU0MTAsNyBAQCBnbG9idXNfbF9ndWNfZXhwYW5kX3NpbmdsZV91cmwoCisg ICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yX21rZGlyOworICAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIAorKworICAgICAgICAgICAgIGlmKGd1Y19p bmZvLT5kdW1wX29ubHlfZnApCisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBnbG9i dXNfbF9ndWNfcHJpbnRfdXJsX2xpbmUoCitAQCAtNTQyMiw3ICs1NDIyLDcgQEAgZ2xvYnVzX2xf Z3VjX2V4cGFuZF9zaW5nbGVfdXJsKAorICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlZF9zcmNf dXJsaW5mbywKKyAgICAgICAgICAgICAgICAgICAgIG1hdGNoZWRfaXNfZGlyID8gIiMiIDogTlVM TCk7CisgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIAorKworICAgICAgICAgICAgIGV4cGFu ZGVkX3VybF9wYWlyID0gKGdsb2J1c19sX2d1Y19zcmNfZHN0X3BhaXJfdCAqKQorICAgICAgICAg ICAgICAgICAgICAgZ2xvYnVzX21hbGxvYyhzaXplb2YoZ2xvYnVzX2xfZ3VjX3NyY19kc3RfcGFp cl90KSk7CisgCitAQCAtNTQzMSwxMyArNTQzMSwxMyBAQCBnbG9idXNfbF9ndWNfZXhwYW5kX3Np bmdsZV91cmwoCisgICAgICAgICAgICAgZXhwYW5kZWRfdXJsX3BhaXItPm9mZnNldCA9IHRyYW5z ZmVyX2luZm8tPnVybHMtPm9mZnNldDsKKyAgICAgICAgICAgICBleHBhbmRlZF91cmxfcGFpci0+ bGVuZ3RoID0gdHJhbnNmZXJfaW5mby0+dXJscy0+bGVuZ3RoOworICAgICAgICAgICAgIGV4cGFu ZGVkX3VybF9wYWlyLT5zcmNfaW5mbyA9IG1hdGNoZWRfc3JjX3VybGluZm87CistICAgICAgICAg ICAgCisrCisgICAgICAgICAgICAgbWF0Y2hlZF9zcmNfdXJsaW5mby0+dXJsID0gTlVMTDsKKy0g ICAgICAgICAgICAgICAgCisrCisgICAgICAgICAgICAgaWYoIWd1Y19pbmZvLT5kdW1wX29ubHlf ZnAgfHwgbWF0Y2hlZF9pc19kaXIpCisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBn bG9idXNfbF9ndWNfZW5xdWV1ZV9wYWlyKAorLSAgICAgICAgICAgICAgICAgICAgJmd1Y19pbmZv LT5leHBhbmRlZF91cmxfbGlzdCwgCisrICAgICAgICAgICAgICAgICAgICAmZ3VjX2luZm8tPmV4 cGFuZGVkX3VybF9saXN0LAorICAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWRfdXJsX3BhaXIp OworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBlbHNlCitAQCAtNTQ1MSw5ICs1NDUxLDkg QEAgZ2xvYnVzX2xfZ3VjX2V4cGFuZF9zaW5nbGVfdXJsKAorICAgICAgICAgICAgIGdsb2J1c19m cmVlKG1hdGNoZWRfZGVzdF91cmwpOworICAgICAgICAgfQorICAgICB9CistICAgIAorKworICAg ICByZXR1cm4gR0xPQlVTX1NVQ0NFU1M7CistICAgIAorKworIGVycm9yX3Rvb19tYW55X21hdGNo ZXM6CisgICAgIHJlc3VsdCA9IGdsb2J1c19lcnJvcl9wdXQoCisgICAgICAgICBnbG9idXNfZXJy b3JfY29uc3RydWN0X3N0cmluZygKK0BAIC01NDYxLDE1ICs1NDYxLDE1IEBAIGVycm9yX3Rvb19t YW55X21hdGNoZXM6CisgICAgICAgICAgICAgR0xPQlVTX05VTEwsCisgICAgICAgICAgICAgX0dB U0NTTCgiTXVsdGlwbGUgc291cmNlIHVybHMgbXVzdCBiZSB0cmFuc2ZlcnJlZCB0byBhIGRpcmVj dG9yeSAiCisgICAgICAgICAgICAgImRlc3RpbmF0aW9uIHVybDpcbiVzXG4iKSwKKy0gICAgICAg ICAgICBkc3RfdXJsKSk7ICAgICAgICAgICAgICAgICAgICAKKysgICAgICAgICAgICBkc3RfdXJs KSk7CisgZXJyb3JfbWtkaXI6CisgZXJyb3JfZXhwYW5kOgorIGVycm9yX2NoZWNrc3VtOgorLSAg ICByZXR1cm4gcmVzdWx0OyAgICAgICAgICAgICAgICAKKysgICAgcmV0dXJuIHJlc3VsdDsKKyB9 CisgCisgc3RhdGljCistdm9pZCAKKyt2b2lkCisgZ2xvYnVzX2xfZ3VjX3BpcGVsaW5lKAorICAg ICBnbG9idXNfZnRwX2NsaWVudF9oYW5kbGVfdCAqICAgICAgICAgICAgICAgIGZ0cF9oYW5kbGUs CisgICAgIGNoYXIgKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNl X3VybCwKK0BAIC01NDgwLDQ3ICs1NDgwLDQ3IEBAIGdsb2J1c19sX2d1Y19waXBlbGluZSgKKyAg ICAgZ2xvYnVzX2xfZ3VjX2luZm9fdCAqICAgICAgICAgICAgICAgICAgICAgICBndWNfaW5mbzsK KyAgICAgZ2xvYnVzX2xfZ3VjX3NyY19kc3RfcGFpcl90ICogICAgICAgICAgICAgICBwYWlyOwor ICAgICBnbG9idXNfYm9vbF90ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbmUgPSBH TE9CVVNfRkFMU0U7CistICAgIAorKworICAgICBoYW5kbGUgPSAoZ2xvYnVzX2xfZ3VjX2hhbmRs ZV90ICopIHVzZXJfYXJnOworICAgICBndWNfaW5mbyA9IGhhbmRsZS0+Z3VjX2luZm87CistICAg IAorKworICAgICAqc291cmNlX3VybCA9IE5VTEw7CisgICAgICpkZXN0X3VybCA9IE5VTEw7Cist ICAgIAorKworICAgICBnbG9idXNfbXV0ZXhfbG9jaygmZ19tb25pdG9yLm11dGV4KTsKKyAKKy0g ICAgZ2xvYnVzX2xfZ3VjX3VybF9wYWlyX2ZyZWUoaGFuZGxlLT5waXBlbGluZV9mcmVlX3BhaXIp OyAgICAgICAgCisrICAgIGdsb2J1c19sX2d1Y191cmxfcGFpcl9mcmVlKGhhbmRsZS0+cGlwZWxp bmVfZnJlZV9wYWlyKTsKKyAgICAgaGFuZGxlLT5waXBlbGluZV9mcmVlX3BhaXIgPSBOVUxMOwor LSAgICAKKysKKyAgICAgaWYoIWdfbW9uaXRvci5kb25lICYmICFnbG9idXNfZmlmb19lbXB0eSgm Z3VjX2luZm8tPmV4cGFuZGVkX3VybF9saXN0KSkKKyAgICAgeworICAgICAgICAgcGFpciA9IChn bG9idXNfbF9ndWNfc3JjX2RzdF9wYWlyX3QgKikKKyAgICAgICAgICAgICBnbG9idXNfZmlmb19w ZWVrKCZndWNfaW5mby0+ZXhwYW5kZWRfdXJsX2xpc3QpOworLSAgICAgICAgCisrCisgICAgICAg ICBpZihwYWlyLT5kc3RfdXJsW3N0cmxlbihwYWlyLT5kc3RfdXJsKSAtIDFdID09ICcvJykKKyAg ICAgICAgIHsKKyAgICAgICAgICAgICBub25lID0gR0xPQlVTX1RSVUU7CisgICAgICAgICB9Cist ICAgICAgICAKKy0gICAgICAgIGlmKHN0cm5jbXAocGFpci0+c3JjX3VybCwgImZpbGU6LyIsIDUp ID09IDAgfHwgCisrCisrICAgICAgICBpZihzdHJuY21wKHBhaXItPnNyY191cmwsICJmaWxlOi8i LCA1KSA9PSAwIHx8CisgICAgICAgICAgICAgc3RybmNtcChwYWlyLT5zcmNfdXJsLCAiaHR0cCIs IDQpID09IDAgfHwKKy0gICAgICAgICAgICBzdHJuY21wKHBhaXItPmRzdF91cmwsICJmaWxlOi8i LCA1KSA9PSAwIHx8IAorLSAgICAgICAgICAgIHN0cm5jbXAocGFpci0+ZHN0X3VybCwgImh0dHAi LCA0KSA9PSAwKSAgICAgICAKKysgICAgICAgICAgICBzdHJuY21wKHBhaXItPmRzdF91cmwsICJm aWxlOi8iLCA1KSA9PSAwIHx8CisrICAgICAgICAgICAgc3RybmNtcChwYWlyLT5kc3RfdXJsLCAi aHR0cCIsIDQpID09IDApCisgICAgICAgICB7CisgICAgICAgICAgICAgbm9uZSA9IEdMT0JVU19U UlVFOworICAgICAgICAgfQorLSAgICAgICAgCisrCisgICAgICAgICBpZighbm9uZSkKKyAgICAg ICAgIHsKKyAgICAgICAgICAgICBjaGFyICAgICAgICAgICAgICAgICAgICAgICAgaWRzdHJbMTZd OworLSAgICAgICAgICAgIAorKworICAgICAgICAgICAgIHNwcmludGYoaWRzdHIsICIldSIsIGhh bmRsZS0+cGlwZWxpbmVfaWQrKyk7CisgICAgICAgICAgICAgKnNvdXJjZV91cmwgPSBwYWlyLT5z cmNfdXJsOworICAgICAgICAgICAgICpkZXN0X3VybCA9IHBhaXItPmRzdF91cmw7CistICAgICAg ICAgICAgCisrCisgICAgICAgICAgICAgaGFuZGxlLT5waXBlbGluZV9mcmVlX3BhaXIgPSBnbG9i dXNfZmlmb19kZXF1ZXVlKAorICAgICAgICAgICAgICAgICAmZ3VjX2luZm8tPmV4cGFuZGVkX3Vy bF9saXN0KTsKKy0gICAgICAgICAgICAgICAgCisrCisgICAgICAgICAgICAgaWYoIWdfcXVpZXRf ZmxhZykKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIGdsb2J1c19saWJjX2Zwcmlu dGYoc3Rkb3V0LAorQEAgLTU1MzEsNyArNTUzMSw3IEBAIGdsb2J1c19sX2d1Y19waXBlbGluZSgK KyAKKyAgICAgZ2xvYnVzX211dGV4X3VubG9jaygmZ19tb25pdG9yLm11dGV4KTsKKyAKKy0gICAg ICAgIAorKworIH0KKyAKKyAKK0BAIC01NTc0LDcgKzU1NzQsNyBAQCBnbG9idXNfbF9ndWNfaW5p dF9nYXNzX2NvcHlfaGFuZGxlKAorIAorICAgICAgICAgcmV0dXJuIC0xOworICAgICB9CistICAg IAorKworICAgICB2ZXJfc3RyID0gZ2xvYnVzX2NvbW1vbl9jcmVhdGVfc3RyaW5nKAorICAgICAg ICAgIiVkLiVkICglcywgJWQtJWQpIFslc10iLAorICAgICAgICAgbG9jYWxfdmVyc2lvbi5tYWpv ciwKK0BAIC01NjExLDcgKzU2MTEsNyBAQCBnbG9idXNfbF9ndWNfaW5pdF9nYXNzX2NvcHlfaGFu ZGxlKAorICAgICAgICAgeworICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRv IGxvYWQgZXh0ZW5zaW9uICVzXG4iLCBwbHVnaW5fbmFtZSk7CisgICAgICAgICB9CistICAgIAor KworICAgICAgICAgZnVuY19uYW1lID0gZ2xvYnVzX2NvbW1vbl9jcmVhdGVfc3RyaW5nKCIlc19m dW5jcyIsIHBsdWdpbl9uYW1lKTsKKyAKKyAgICAgICAgIGZ1bmNzID0gKGdsb2J1c19ndWNfY2xp ZW50X3BsdWdpbl9mdW5jc190ICopIGdsb2J1c19leHRlbnNpb25fbG9va3VwKAorQEAgLTU2NzMs MTMgKzU2NzMsMTMgQEAgZ2xvYnVzX2xfZ3VjX2luaXRfZ2Fzc19jb3B5X2hhbmRsZSgKKyAgICAg aWYoZ191c2VfcmVzdGFydCkKKyAgICAgeworICAgICAgICAgR2xvYnVzVGltZVJlbHRpbWVTZXQo aW50ZXJ2YWwsIGd1Y19pbmZvLT5yZXN0YXJ0X2ludGVydmFsLCAwKTsKKy0gICAgICAgIAorKwor ICAgICAgICAgaWYoZ3VjX2luZm8tPnJlc3RhcnRfdGltZW91dCkKKyAgICAgICAgIHsKKyAgICAg ICAgICAgICBHbG9idXNUaW1lQWJzdGltZVNldCh0aW1lb3V0LCBndWNfaW5mby0+cmVzdGFydF90 aW1lb3V0LCAwKTsKKyAgICAgICAgICAgICB0aW1lb3V0X3AgPSAmdGltZW91dDsKKyAgICAgICAg IH0KKy0gICAgICAgICAgICAKKysKKyAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19mdHBfY2xpZW50 X3Jlc3RhcnRfcGx1Z2luX2luaXQoCisgICAgICAgICAgICAgJnJlc3RhcnRfcGx1Z2luLAorICAg ICAgICAgICAgIGd1Y19pbmZvLT5yZXN0YXJ0X3JldHJpZXMsIC8qIHJldHJ5IHRpbWVzIDA9Zm9y ZXZlciAqLworQEAgLTU2OTIsNyArNTY5Miw3IEBAIGdsb2J1c19sX2d1Y19pbml0X2dhc3NfY29w eV9oYW5kbGUoCisgCisgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgfQorLSAgICAg ICAgCisrCisgICAgICAgICBpZihndWNfaW5mby0+c3RhbGxfdGltZW91dCkKKyAgICAgICAgIHsK KyAgICAgICAgICAgICByZXN1bHQgPSBnbG9idXNfZnRwX2NsaWVudF9yZXN0YXJ0X3BsdWdpbl9z ZXRfc3RhbGxfdGltZW91dCgKK0BAIC01NzAxLDcgKzU3MDEsNyBAQCBnbG9idXNfbF9ndWNfaW5p dF9nYXNzX2NvcHlfaGFuZGxlKAorICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgZnBy aW50ZihzdGRlcnIsIF9HQVNDU0woIkVycm9yOiBVbmFibGUgdG8gaW5pdCBkZWJ1ZyBwbHVnaW4g JXNcbiIpLAorICAgICAgICAgICAgICAgICAgICAgZ2xvYnVzX2Vycm9yX3ByaW50X2ZyaWVuZGx5 KGdsb2J1c19lcnJvcl9wZWVrKHJlc3VsdCkpKTsKKy0gICAgCisrCisgICAgICAgICAgICAgICAg IHJldHVybiAtMTsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CitAQCAtNTcxOCwxMiArNTcx OCwxMiBAQCBnbG9idXNfbF9ndWNfaW5pdF9nYXNzX2NvcHlfaGFuZGxlKAorICAgICAgICAgfQor ICAgICB9CisgICAgIGVsc2UgaWYoZ3VjX2luZm8tPnN0YWxsX3RpbWVvdXQpCistICAgIHsgICAg ICAgIAorKyAgICB7CisgICAgICAgICBHbG9idXNUaW1lQWJzdGltZVNldCh0aW1lb3V0LCAwLCAx KTsKKyAgICAgICAgIHRpbWVvdXRfcCA9ICZ0aW1lb3V0OworIAorICAgICAgICAgcmVzdWx0ID0g Z2xvYnVzX2Z0cF9jbGllbnRfcmVzdGFydF9wbHVnaW5faW5pdCgKKy0gICAgICAgICAgICAmcmVz dGFydF9wbHVnaW4sIDAsIE5VTEwsIHRpbWVvdXRfcCk7IAorKyAgICAgICAgICAgICZyZXN0YXJ0 X3BsdWdpbiwgMCwgTlVMTCwgdGltZW91dF9wKTsKKyAgICAgICAgIGlmKHJlc3VsdCAhPSBHTE9C VVNfU1VDQ0VTUykKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgX0dB U0NTTCgiRXJyb3I6IFVuYWJsZSB0byBpbml0IGRlYnVnIHBsdWdpbiAlc1xuIiksCitAQCAtNTcz MSw3ICs1NzMxLDcgQEAgZ2xvYnVzX2xfZ3VjX2luaXRfZ2Fzc19jb3B5X2hhbmRsZSgKKyAKKyAg ICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICB9CistICAgICAgICAKKysKKyAgICAgICAg IHJlc3VsdCA9IGdsb2J1c19mdHBfY2xpZW50X3Jlc3RhcnRfcGx1Z2luX3NldF9zdGFsbF90aW1l b3V0KAorICAgICAgICAgICAgICZyZXN0YXJ0X3BsdWdpbiwgZ3VjX2luZm8tPnN0YWxsX3RpbWVv dXQpOworICAgICAgICAgaWYocmVzdWx0ICE9IEdMT0JVU19TVUNDRVNTKQorQEAgLTU3NTIsNyAr NTc1Miw3IEBAIGdsb2J1c19sX2d1Y19pbml0X2dhc3NfY29weV9oYW5kbGUoCisgCisgICAgICAg ICAgICAgcmV0dXJuIC0xOworICAgICAgICAgfQorLSAgICB9ICAgICAgICAKKysgICAgfQorIAor ICAgICBpZihndWNfaW5mby0+cmZjMTczOCkKKyAgICAgeworQEAgLTU3NjUsNyArNTc2NSw3IEBA IGdsb2J1c19sX2d1Y19pbml0X2dhc3NfY29weV9oYW5kbGUoCisgCisgICAgICAgICAgICAgcmV0 dXJuIC0xOworICAgICAgICAgfQorLSAgICB9ICAgICAgICAKKysgICAgfQorIAorICAgICByZXN1 bHQgPSBnbG9idXNfZnRwX2NsaWVudF9oYW5kbGVhdHRyX3NldF9ncmlkZnRwMigKKyAgICAgICAg ICZmdHBfaGFuZGxlYXR0ciwgZ3VjX2luZm8tPmdyaWRmdHAyKTsKK0BAIC01NzkwLDE1ICs1Nzkw LDE1IEBAIGdsb2J1c19sX2d1Y19pbml0X2dhc3NfY29weV9oYW5kbGUoCisgCisgICAgICAgICAg ICAgcmV0dXJuIC0xOworICAgICAgICAgfQorLSAgICB9ICAgICAgICAKKy0gICAgCisrICAgIH0K KysKKyAgICAgZ2xvYnVzX2dhc3NfY29weV9oYW5kbGVhdHRyX3NldF9mdHBfYXR0cigKKyAgICAg ICAgICZnYXNzX2NvcHlfaGFuZGxlYXR0ciwgJmZ0cF9oYW5kbGVhdHRyKTsKKyAgICAgZ2xvYnVz X2dhc3NfY29weV9oYW5kbGVfaW5pdChnYXNzX2NvcHlfaGFuZGxlLCAmZ2Fzc19jb3B5X2hhbmRs ZWF0dHIpOworIAorICAgICBpZihndWNfaW5mby0+YmxvY2tfc2l6ZSA+IDApCisgICAgIHsKKy0g ICAgICAgIGdsb2J1c19nYXNzX2NvcHlfc2V0X2J1ZmZlcl9sZW5ndGgoZ2Fzc19jb3B5X2hhbmRs ZSwgCisrICAgICAgICBnbG9idXNfZ2Fzc19jb3B5X3NldF9idWZmZXJfbGVuZ3RoKGdhc3NfY29w eV9oYW5kbGUsCisgICAgICAgICAgICAgZ3VjX2luZm8tPmJsb2NrX3NpemUpOworICAgICB9Cisg CitAQCAtNTgwNywxNyArNTgwNywxNyBAQCBnbG9idXNfbF9ndWNfaW5pdF9nYXNzX2NvcHlfaGFu ZGxlKAorICAgICAgICAgZ2xvYnVzX2dhc3NfY29weV9zZXRfbm9fdGhpcmRfcGFydHlfdHJhbnNm ZXJzKGdhc3NfY29weV9oYW5kbGUsCisgICAgICAgICAgICAgR0xPQlVTX1RSVUUpOworICAgICB9 CistICAgIAorKworICAgICBpZighZ3VjX2luZm8tPnBpcGVsaW5lKQorICAgICB7CisgICAgICAg ICBnbG9idXNfZ2Fzc19jb3B5X3NldF9hbGxvY2F0ZShnYXNzX2NvcHlfaGFuZGxlLCBndWNfaW5m by0+YWxsbyk7CisgICAgIH0KKy0gICAgCisrCisgICAgIGlmKGd1Y19pbmZvLT5zeW5jKQorICAg ICB7CisgICAgICAgICBnbG9idXNfZ2Fzc19jb3B5X3NldF9zdGF0X29uX2V4cGFuZChnYXNzX2Nv cHlfaGFuZGxlLCBHTE9CVVNfVFJVRSk7CisgICAgIH0KKy0gICAgCisrCisgICAgIGlmKGdfdmVy Ym9zZV9mbGFnKQorICAgICB7CisgICAgICAgICByZXN1bHQgPSBnbG9idXNfZ2Fzc19jb3B5X3Jl Z2lzdGVyX3BlcmZvcm1hbmNlX2NiKAorQEAgLTU4MjcsNyArNTgyNyw3IEBAIGdsb2J1c19sX2d1 Y19pbml0X2dhc3NfY29weV9oYW5kbGUoCisgCisgICAgICAgICBpZihyZXN1bHQgIT0gR0xPQlVT X1NVQ0NFU1MpCisgICAgICAgICB7CistICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsIAorKyAg ICAgICAgICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAgICBfR0FTQ1NMKCJFcnJv cjogVW5hYmxlIHRvIHJlZ2lzdGVyIHBlcmZvcm1hbmNlIGhhbmRsZXIgJXNcbiIpLAorICAgICAg ICAgICAgICAgICBnbG9idXNfZXJyb3JfcHJpbnRfZnJpZW5kbHkoZ2xvYnVzX2Vycm9yX3BlZWso cmVzdWx0KSkpOworIAorQEAgLTU4OTMsMTQgKzU4OTMsMTQgQEAgZ2xvYnVzX2xfZ3VjX2dhc3Nf YXR0cl9pbml0KAorICAgICBjaGFyICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkY2F1 X3N1YmogPSBOVUxMOworIAorICAgICBpZihzcmMpCistICAgIHsgICAgICAgICAgICAgICAgICAK KysgICAgeworICAgICAgICAgc3ViamVjdCA9IGd1Y19pbmZvLT5zb3VyY2Vfc3ViamVjdDsKKyAg ICAgICAgIG1vZHVsZV9uYW1lID0gZ3VjX2luZm8tPnNyY19tb2R1bGVfbmFtZTsKKyAgICAgICAg IG1vZHVsZV9hcmdzID0gZ3VjX2luZm8tPnNyY19tb2R1bGVfYXJnczsKKyAgICAgICAgIGF1dGh6 X2Fzc2VydCA9IGd1Y19pbmZvLT5zcmNfYXV0aHpfYXNzZXJ0LAorICAgICAgICAgY2FjaGVfYXV0 aHpfYXNzZXJ0ID0gZ3VjX2luZm8tPmNhY2hlX3NyY19hdXRoel9hc3NlcnQ7CisgICAgICAgICBj cmVkID0gZ3VjX2luZm8tPnNyY19jcmVkOworLSAgICAgICAgaWYoZ3VjX2luZm8tPnNyY19jcmVk X3N1YmogJiYgZ3VjX2luZm8tPmRzdF9jcmVkX3N1YmogJiYgCisrICAgICAgICBpZihndWNfaW5m by0+c3JjX2NyZWRfc3ViaiAmJiBndWNfaW5mby0+ZHN0X2NyZWRfc3ViaiAmJgorICAgICAgICAg ICAgIHN0cmNtcChndWNfaW5mby0+c3JjX2NyZWRfc3ViaiwgZ3VjX2luZm8tPmRzdF9jcmVkX3N1 YmopKQorICAgICAgICAgeworICAgICAgICAgICAgIGRjYXVfc3ViaiA9IGd1Y19pbmZvLT5kc3Rf Y3JlZF9zdWJqOworQEAgLTU5MTQsMjAgKzU5MTQsMjAgQEAgZ2xvYnVzX2xfZ3VjX2dhc3NfYXR0 cl9pbml0KAorICAgICAgICAgYXV0aHpfYXNzZXJ0ID0gZ3VjX2luZm8tPmRzdF9hdXRoel9hc3Nl cnQsCisgICAgICAgICBjYWNoZV9hdXRoel9hc3NlcnQgPSBndWNfaW5mby0+Y2FjaGVfZHN0X2F1 dGh6X2Fzc2VydDsKKyAgICAgICAgIGNyZWQgPSBndWNfaW5mby0+ZHN0X2NyZWQ7CistICAgICAg ICBpZihndWNfaW5mby0+c3JjX2NyZWRfc3ViaiAmJiBndWNfaW5mby0+ZHN0X2NyZWRfc3ViaiAm JiAKKysgICAgICAgIGlmKGd1Y19pbmZvLT5zcmNfY3JlZF9zdWJqICYmIGd1Y19pbmZvLT5kc3Rf Y3JlZF9zdWJqICYmCisgICAgICAgICAgICAgc3RyY21wKGd1Y19pbmZvLT5zcmNfY3JlZF9zdWJq LCBndWNfaW5mby0+ZHN0X2NyZWRfc3ViaikpCisgICAgICAgICB7CisgICAgICAgICAgICAgZGNh dV9zdWJqID0gZ3VjX2luZm8tPnNyY19jcmVkX3N1Ymo7CisgICAgICAgICB9CisgICAgIH0KKy0g ICAgCisrCisgICAgIGdsb2J1c191cmxfcGFyc2UodXJsLCAmdXJsX2luZm8pOworICAgICBnbG9i dXNfZ2Fzc19jb3B5X2dldF91cmxfbW9kZSh1cmwsICZ1cmxfbW9kZSk7CisgICAgIC8qCisgICAg ICAqICBzZXR1cCB0aGUgZnRwIGF0dHIKKyAgICAgICovCisgICAgIGlmKHVybF9tb2RlID09IEdM T0JVU19HQVNTX0NPUFlfVVJMX01PREVfRlRQKQorLSAgICB7ICAgICAKKysgICAgeworICAgICAg ICAgZ2xvYnVzX2Z0cF9jbGllbnRfb3BlcmF0aW9uYXR0cl9pbml0KGZ0cF9hdHRyKTsKKyAKKyAg ICAgICAgIGlmKGd1Y19pbmZvLT50Y3BfYnVmZmVyX3NpemUgPiAwKQorQEAgLTU5NDksNDkgKzU5 NDksNDkgQEAgZ2xvYnVzX2xfZ3VjX2dhc3NfYXR0cl9pbml0KAorICAgICAgICAgICAgIHBhcmFs bGVsaXNtLmZpeGVkLnNpemUgPSBndWNfaW5mby0+bnVtX3N0cmVhbXM7CisgICAgICAgICAgICAg Z2xvYnVzX2Z0cF9jbGllbnRfb3BlcmF0aW9uYXR0cl9zZXRfcGFyYWxsZWxpc20oCisgICAgICAg ICAgICAgICAgIGZ0cF9hdHRyLAorLSAgICAgICAgICAgICAgICAmcGFyYWxsZWxpc20pOyAKKy0g ICAgICAgICAgICAKKysgICAgICAgICAgICAgICAgJnBhcmFsbGVsaXNtKTsKKysKKyAgICAgICAg ICAgICBnbG9idXNfZnRwX2NsaWVudF9vcGVyYXRpb25hdHRyX3NldF9saXN0X3VzZXNfZGF0YV9t b2RlKAorICAgICAgICAgICAgICAgICBmdHBfYXR0ciwKKyAgICAgICAgICAgICAgICAgZ3VjX2lu Zm8tPmxpc3RfdXNlc19kYXRhX21vZGUpOworLQl9CisrICAgICAgICB9CisgCistCWlmKGd1Y19p bmZvLT5zdHJpcGVkKQorLQl7CistCSAgICBtZW1zZXQoJmxheW91dCwgJ1wwJywgc2l6ZW9mKGds b2J1c19mdHBfY29udHJvbF9sYXlvdXRfdCkpOworKyAgICAgICAgaWYoZ3VjX2luZm8tPnN0cmlw ZWQpCisrICAgICAgICB7CisrICAgICAgICAgICAgbWVtc2V0KCZsYXlvdXQsICdcMCcsIHNpemVv ZihnbG9idXNfZnRwX2NvbnRyb2xfbGF5b3V0X3QpKTsKKyAgICAgICAgICAgICBzd2l0Y2goZ3Vj X2luZm8tPnN0cmlwZV9icykKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIGNhc2Ug LTE6CistICAgICAgICAgICAgICAgICAgICBsYXlvdXQubW9kZSA9IAorKyAgICAgICAgICAgICAg ICAgICAgbGF5b3V0Lm1vZGUgPQorICAgICAgICAgICAgICAgICAgICAgICAgIEdMT0JVU19GVFBf Q09OVFJPTF9TVFJJUElOR19OT05FOworICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICAgICAgICAgIGNhc2UgMDoKKy0gICAgICAgICAgICAgICAgICAgIGxheW91dC5tb2RlID0g CisrICAgICAgICAgICAgICAgICAgICBsYXlvdXQubW9kZSA9CisgICAgICAgICAgICAgICAgICAg ICAgICAgR0xPQlVTX0ZUUF9DT05UUk9MX1NUUklQSU5HX1BBUlRJVElPTkVEOworICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CistICAgICAgICAg ICAgICAgICAgICBsYXlvdXQubW9kZSA9IAorKyAgICAgICAgICAgICAgICAgICAgbGF5b3V0Lm1v ZGUgPQorICAgICAgICAgICAgICAgICAgICAgICAgIEdMT0JVU19GVFBfQ09OVFJPTF9TVFJJUElO R19CTE9DS0VEX1JPVU5EX1JPQklOOworICAgICAgICAgICAgICAgICAgICAgbGF5b3V0LnJvdW5k X3JvYmluLmJsb2NrX3NpemUgPSBndWNfaW5mby0+c3RyaXBlX2JzOworICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICBnbG9idXNfZnRwX2NsaWVudF9vcGVyYXRpb25hdHRyX3NldF9tb2RlKAor ICAgICAgICAgICAgICAgICAgICAgICAgIGZ0cF9hdHRyLAorICAgICAgICAgICAgICAgICAgICAg ICAgIEdMT0JVU19GVFBfQ09OVFJPTF9NT0RFX0VYVEVOREVEX0JMT0NLKTsKKy0gICAgICAgICAg ICBnbG9idXNfZnRwX2NsaWVudF9vcGVyYXRpb25hdHRyX3NldF9zdHJpcGVkKGZ0cF9hdHRyLCBH TE9CVVNfVFJVRSk7ICAgIAorKyAgICAgICAgICAgIGdsb2J1c19mdHBfY2xpZW50X29wZXJhdGlv bmF0dHJfc2V0X3N0cmlwZWQoZnRwX2F0dHIsIEdMT0JVU19UUlVFKTsKKyAgICAgICAgICAgICBn bG9idXNfZnRwX2NsaWVudF9vcGVyYXRpb25hdHRyX3NldF9sYXlvdXQoZnRwX2F0dHIsICZsYXlv dXQpOworLQl9CisrICAgICAgICB9CisgCistCWlmKGd1Y19pbmZvLT5kZWxheWVkX3Bhc3YpCist CXsKKysgICAgICAgIGlmKGd1Y19pbmZvLT5kZWxheWVkX3Bhc3YpCisrICAgICAgICB7CisgICAg ICAgICAgICAgZ2xvYnVzX2Z0cF9jbGllbnRfb3BlcmF0aW9uYXR0cl9zZXRfZGVsYXllZF9wYXN2 KAorLSAgICAgICAgICAgICAgICBmdHBfYXR0ciwgR0xPQlVTX1RSVUUpOyAgICAKKy0JfQorKyAg ICAgICAgICAgICAgICBmdHBfYXR0ciwgR0xPQlVTX1RSVUUpOworKyAgICAgICAgfQorIAorLQlp ZihndWNfaW5mby0+aXB2NikKKy0JeworKyAgICAgICAgaWYoZ3VjX2luZm8tPmlwdjYpCisrICAg ICAgICB7CisgICAgICAgICAgICAgZ2xvYnVzX2Z0cF9jbGllbnRfb3BlcmF0aW9uYXR0cl9zZXRf YWxsb3dfaXB2NigKKy0gICAgICAgICAgICAgICAgZnRwX2F0dHIsIEdMT0JVU19UUlVFKTsgICAg CistCX0KKysgICAgICAgICAgICAgICAgZnRwX2F0dHIsIEdMT0JVU19UUlVFKTsKKysgICAgICAg IH0KKyAKKyAgICAgICAgIGlmKG1vZHVsZV9uYW1lICE9IE5VTEwpCisgICAgICAgICB7CitAQCAt NjAzOSwxNSArNjAzOSwxNSBAQCBnbG9idXNfbF9ndWNfZ2Fzc19hdHRyX2luaXQoCisgICAgICAg ICBlbHNlIGlmKGF1dG9fZGF0YS5sZW5ndGggPiAwKQorICAgICAgICAgeworICAgICAgICAgICAg IGdsb2J1c19mdHBfY2xpZW50X29wZXJhdGlvbmF0dHJfc2V0X2RhdGFfc2VjdXJpdHkoCistICAg ICAgICAgICAgICAgIGZ0cF9hdHRyLCAncCcsICZhdXRvX2RhdGEpOyAgICAgICAgICAgIAorKyAg ICAgICAgICAgICAgICBmdHBfYXR0ciwgJ3AnLCAmYXV0b19kYXRhKTsKKyAgICAgICAgIH0KKy0g ICAgICAgIGVsc2UgaWYodXJsX2luZm8uc2NoZW1lX3R5cGUgPT0gR0xPQlVTX1VSTF9TQ0hFTUVf U1NIRlRQICYmIAorKyAgICAgICAgZWxzZSBpZih1cmxfaW5mby5zY2hlbWVfdHlwZSA9PSBHTE9C VVNfVVJMX1NDSEVNRV9TU0hGVFAgJiYKKyAgICAgICAgICAgICAoZ3VjX2luZm8tPmRhdGFfcHJp dmF0ZSB8fCBndWNfaW5mby0+ZGF0YV9zYWZlKSkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBm cHJpbnRmKHN0ZGVyciwgIlxuRVJST1I6IERhdGEgcHJvdGVjdGlvbiB3aXRoIHNzaGZ0cCByZXF1 aXJlcyBhIGNyZWRlbnRpYWwuIFRyeSAnLWRhdGEtY3JlZCBhdXRvJy5cblxuIik7CisgICAgICAg ICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOworICAgICAgICAgfQorLSAgICAgICAgICAgIAorKwor ICAgICAgICAgaWYoZ3VjX2luZm8tPm5vX2RjYXUpCisgICAgICAgICB7CisgICAgICAgICAgICAg ZGNhdS5tb2RlID0gR0xPQlVTX0ZUUF9DT05UUk9MX0RDQVVfTk9ORTsKK0BAIC02MDY1LDEzICs2 MDY1LDEzIEBAIGdsb2J1c19sX2d1Y19nYXNzX2F0dHJfaW5pdCgKKyAgICAgICAgICAgICAgICAg ICAgIGZ0cF9hdHRyLAorICAgICAgICAgICAgICAgICAgICAgJmRjYXUpOworICAgICAgICAgICAg IH0KKy0gICAgICAgICAgICAKKysKKyAgICAgICAgICAgICBpZih1cmxfaW5mby5zY2hlbWVfdHlw ZSA9PSBHTE9CVVNfVVJMX1NDSEVNRV9HU0lGVFApCisgICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgICBnc2lfZHJpdmVyX3N0ciA9ICJnc2kiOworICAgICAgICAgICAgIH0KKyAgICAgICAg IH0KKy0gICAgICAgIAorKworICAgICAgICAgaWYoZ3VjX2luZm8tPmRhdGFfcHJpdmF0ZSkKKyAg ICAgICAgIHsKKyAgICAgICAgICAgICBnbG9idXNfZnRwX2NsaWVudF9vcGVyYXRpb25hdHRyX3Nl dF9kYXRhX3Byb3RlY3Rpb24oCitAQCAtNjA4NCw3ICs2MDg0LDcgQEAgZ2xvYnVzX2xfZ3VjX2dh c3NfYXR0cl9pbml0KAorICAgICAgICAgICAgICAgICBmdHBfYXR0ciwKKyAgICAgICAgICAgICAg ICAgR0xPQlVTX0ZUUF9DT05UUk9MX1BST1RFQ1RJT05fU0FGRSk7CisgICAgICAgICB9CistICAg ICAgICAgICAgICAgIAorKworICAgICAgICAgaWYoc3JjKQorICAgICAgICAgeworICAgICAgICAg ICAgIHRtcF9uZXRfc3RyID0gZ3VjX2luZm8tPnNyY19uZXRfc3RhY2tfc3RyOworQEAgLTYxNjUs NyArNjE2NSw3IEBAIGdsb2J1c19sX2d1Y19nYXNzX2F0dHJfaW5pdCgKKyAgICAgICAgIH0KKyAK KyAgICAgICAgIGdsb2J1c19nYXNzX2NvcHlfYXR0cl9zZXRfZnRwKGdhc3NfY29weV9hdHRyLCBm dHBfYXR0cik7CistICAgICAgICAKKysKKyAgICAgfQorICAgICAvKgorICAgICAgKiAgc2V0dXAg dGhlIGdhc3MgY29weSBhdHRyCitAQCAtNjE5OCw4ICs2MTk4LDggQEAgZ2xvYnVzX2xfZ3VjX2dh c3NfYXR0cl9pbml0KAorICAgICAgICAgZ2xvYnVzX2dhc3NfY29weV9hdHRyX3NldF9nYXNzKGdh c3NfY29weV9hdHRyLCBnYXNzX3RfYXR0cik7CisgICAgIH0KKyAKKy0gICAgZ2xvYnVzX3VybF9k ZXN0cm95KCZ1cmxfaW5mbyk7ICAgIAorLQkKKysgICAgZ2xvYnVzX3VybF9kZXN0cm95KCZ1cmxf aW5mbyk7CisrCisgICAgIHJldHVybiAwOworIH0KKyAKK0BAIC02MjIwLDcgKzYyMjAsNyBAQCBn bG9idXNfbF9ndWNfZ2V0X2lvX2hhbmRsZSgKKyAgICAgeworICAgICAgICAgcmV0dXJuIE5VTEw7 CisgICAgIH0KKy0gICAgCisrCisgICAgIGlvX2hhbmRsZSA9KGdsb2J1c19pb19oYW5kbGVfdCAq KQorICAgICAgICAgZ2xvYnVzX2xpYmNfbWFsbG9jKHNpemVvZihnbG9idXNfaW9faGFuZGxlX3Qp KTsKKyAKK0BAIC02MjQ5LDcgKzYyNDksNyBAQCBnbG9idXNfbF9ndWNfdXJsX3BhaXJfZnJlZSgK KyAgICAgICAgIGdsb2J1c19sX2d1Y191cmxfaW5mb19mcmVlKHVybF9wYWlyLT5zcmNfaW5mbyk7 CisgICAgICAgICBnbG9idXNfZnJlZSh1cmxfcGFpcik7CisgICAgIH0KKy19ICAgCisrfQorIAor IHN0YXRpYworIHZvaWQKK0BAIC02MjYzLDM4ICs2MjYzLDM4IEBAIGdsb2J1c19sX2d1Y19kZXN0 cm95X3VybF9saXN0KAorICAgICAgICAgdXJsX3BhaXIgPSAoZ2xvYnVzX2xfZ3VjX3NyY19kc3Rf cGFpcl90ICopCisgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYnVzX2ZpZm9fZGVxdWV1ZSh1 cmxfbGlzdCk7CisgICAgICAgICBnbG9idXNfbF9ndWNfdXJsX3BhaXJfZnJlZSh1cmxfcGFpcik7 CistICAgIH0gICAgICAKKysgICAgfQorICAgICBnbG9idXNfZmlmb19kZXN0cm95KHVybF9saXN0 KTsKKy19ICAgCisrfQorIAorLXN0YXRpYyAKKytzdGF0aWMKKyB2b2lkCisgZ2xvYnVzX2xfZ3Vj X2hhc2h0YWJsZV9lbGVtZW50X2ZyZWUoCisgICAgIHZvaWQgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRhdHVtKQorIHsKKyAgICAgY2hhciAqICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RyaW5nOworLSAgICAKKysKKyAgICAgc3RyaW5nID0gKGNoYXIgKikgZGF0dW07Cisg CisgICAgIGlmKHN0cmluZyAhPSBHTE9CVVNfTlVMTCkKKy0gICAgeyAKKysgICAgeworICAgICAg ICAgZ2xvYnVzX2ZyZWUoc3RyaW5nKTsKKyAgICAgfQorLSAgICAKKysKKyAgICAgcmV0dXJuOwor IH0KKyAKKy1zdGF0aWMgCisrc3RhdGljCisgdm9pZAorIGdsb2J1c19sX2d1Y191cmxfaW5mb19m cmVlKAorICAgICB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXR1bSkKKyB7 CisgICAgIGdsb2J1c19sX2d1Y191cmxfaW5mb190ICogICAgICAgICAgIGluZm87CistICAgIAor KworICAgICBpbmZvID0gKGdsb2J1c19sX2d1Y191cmxfaW5mb190ICopIGRhdHVtOworIAorICAg ICBpZihpbmZvICE9IE5VTEwpCistICAgIHsgCisrICAgIHsKKyAgICAgICAgIGlmKGluZm8tPnVy bCkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBnbG9idXNfZnJlZShpbmZvLT51cmwpOworQEAg LTYzMDUsNiArNjMwNSw2IEBAIGdsb2J1c19sX2d1Y191cmxfaW5mb19mcmVlKAorICAgICAgICAg fQorICAgICAgICAgZ2xvYnVzX2ZyZWUoaW5mbyk7CisgICAgIH0KKy0gICAgCisrCisgICAgIHJl dHVybjsKKyB9CistLSAKKzIuNTQuMAorCgpkaWZmIC0tZ2l0IGEvMDAwMi1CdWlsZC13aXRoLU9w ZW5TU0wtNC5wYXRjaCBiLzAwMDItQnVpbGQtd2l0aC1PcGVuU1NMLTQucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2VhM2NlNAotLS0gL2Rldi9udWxsCisrKyBiLzAw MDItQnVpbGQtd2l0aC1PcGVuU1NMLTQucGF0Y2gKQEAgLTAsMCArMSwzNSBAQAorRnJvbSAyNDM3 NWI4NTAzZDJhNDM3MzYwMGIxNGQwMzcwMGI2OTc0MTU3MzdiIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQorRnJvbTogTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMuZWxsZXJ0QHBoeXNpY3MudXUuc2U+ CitEYXRlOiBXZWQsIDIwIE1heSAyMDI2IDAwOjE1OjM3ICswMjAwCitTdWJqZWN0OiBbUEFUQ0gg Mi8zXSBCdWlsZCB3aXRoIE9wZW5TU0wgNAorCistLS0KKyBnYXNzL2NvcHkvc291cmNlL2dsb2J1 c191cmxfY29weS5jIHwgNCArKystCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0IGEvZ2Fzcy9jb3B5L3NvdXJjZS9nbG9idXNfdXJs X2NvcHkuYyBiL2dhc3MvY29weS9zb3VyY2UvZ2xvYnVzX3VybF9jb3B5LmMKK2luZGV4IDlhZDk5 MjkwOS4uN2Y3Mjc0Y2RiIDEwMDY0NAorLS0tIGEvZ2Fzcy9jb3B5L3NvdXJjZS9nbG9idXNfdXJs X2NvcHkuYworKysrIGIvZ2Fzcy9jb3B5L3NvdXJjZS9nbG9idXNfdXJsX2NvcHkuYworQEAgLTg4 LDcgKzg4LDcgQEAgaW50IGd1Y19ta2NlcnQoWDUwOSAqKng1MDlwLCBFVlBfUEtFWSAqKnBrZXlw LCBpbnQgYml0cywgaW50IHNlcmlhbCwgaW50IGRheXMpCisgICAgIFg1MDlfZ210aW1lX2FkaihY NTA5X2dldF9ub3RBZnRlcih4KSwobG9uZyk2MCo2MCoyNCpkYXlzKTsKKyAgICAgWDUwOV9zZXRf cHVia2V5KHgscGspOworIAorLSAgICBuYW1lID0gWDUwOV9nZXRfc3ViamVjdF9uYW1lKHgpOwor KyAgICBuYW1lID0gWDUwOV9OQU1FX2R1cChYNTA5X2dldF9zdWJqZWN0X25hbWUoeCkpOworIAor ICAgICAvKiBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYW5kIGFkZHMgdGhlIGVudHJ5LCB3b3JraW5n IG91dCB0aGUKKyAgICAgKiBjb3JyZWN0IHN0cmluZyB0eXBlIGFuZCBwZXJmb3JtaW5nIGNoZWNr cyBvbiBpdHMgbGVuZ3RoLgorQEAgLTEwMiw3ICsxMDIsOSBAQCBpbnQgZ3VjX21rY2VydChYNTA5 ICoqeDUwOXAsIEVWUF9QS0VZICoqcGtleXAsIGludCBiaXRzLCBpbnQgc2VyaWFsLCBpbnQgZGF5 cykKKyAgICAgLyogSXRzIHNlbGYgc2lnbmVkIHNvIHNldCB0aGUgaXNzdWVyIG5hbWUgdG8gYmUg dGhlIHNhbWUgYXMgdGhlCisgICAgICogc3ViamVjdC4KKyAgICAgKi8KKysgICAgWDUwOV9zZXRf c3ViamVjdF9uYW1lKHgsbmFtZSk7CisgICAgIFg1MDlfc2V0X2lzc3Vlcl9uYW1lKHgsbmFtZSk7 CisrICAgIFg1MDlfTkFNRV9mcmVlKG5hbWUpOworIAorICAgICBpZiAoIVg1MDlfc2lnbih4LHBr LEVWUF9tZDUoKSkpCisgICAgICAgICBnb3RvIGVycjsKKy0tIAorMi41NC4wCisKCmRpZmYgLS1n aXQgYS8wMDAzLUZpeC1jb21waWxlci1hbmQtZG94eWdlbi13YXJuaW5ncy5wYXRjaCBiLzAwMDMt Rml4LWNvbXBpbGVyLWFuZC1kb3h5Z2VuLXdhcm5pbmdzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjExNTdlMjMKLS0tIC9kZXYvbnVsbAorKysgYi8wMDAzLUZpeC1j b21waWxlci1hbmQtZG94eWdlbi13YXJuaW5ncy5wYXRjaApAQCAtMCwwICsxLDE4NCBAQAorRnJv bSA0ZWUwOGQxM2UyOTYzMzA5ZTIwNjNkYzQ1ZGVkZDA2NzMzN2QzYjc2IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMuZWxsZXJ0QHBoeXNpY3Mu dXUuc2U+CitEYXRlOiBXZWQsIDIwIE1heSAyMDI2IDAwOjE1OjM3ICswMjAwCitTdWJqZWN0OiBb UEFUQ0ggMy8zXSBGaXggY29tcGlsZXIgYW5kIGRveHlnZW4gd2FybmluZ3MKKworLS0tCisgZ2Fz cy9jb3B5L3NvdXJjZS9nbG9idXNfZ2Fzc19jb3B5LmMgICAgICB8IDMyICsrKysrKysrKysrKy0t LS0tLS0tLS0tLQorIGdhc3MvY29weS9zb3VyY2UvZ2xvYnVzX2dhc3NfY29weV9nbG9iLmMgfCAg NSArLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMo LSkKKworZGlmZiAtLWdpdCBhL2dhc3MvY29weS9zb3VyY2UvZ2xvYnVzX2dhc3NfY29weS5jIGIv Z2Fzcy9jb3B5L3NvdXJjZS9nbG9idXNfZ2Fzc19jb3B5LmMKK2luZGV4IDNkZWJjN2FlMy4uNjEz NjVkMWNjIDEwMDY0NAorLS0tIGEvZ2Fzcy9jb3B5L3NvdXJjZS9nbG9idXNfZ2Fzc19jb3B5LmMK KysrKyBiL2dhc3MvY29weS9zb3VyY2UvZ2xvYnVzX2dhc3NfY29weS5jCitAQCAtNDkzMiw3ICs0 OTMyLDcgQEAgZ2xvYnVzX2xfZ2Fzc19jb3B5X2lvX3dyaXRlX2NhbGxiYWNrKAorIAorIC8qKgor ICAqIEBicmllZiBCbG9ja2luZyBUcmFuc2ZlciBiZXR3ZWVuIFVSTHMKKy0gKiBAaW5ncm91cCBn bG9idXNfZ2Fzc190cmFuc2ZlcgorKyAqIEBpbmdyb3VwIGdsb2J1c19nYXNzX2NvcHkKKyAgKiBA ZGV0YWlscworICAqIEBwYXJhbSBoYW5kbGUKKyAgKiAgICAgICAgVGhlIGhhbmRsZSB0byBwZXJm b3JtIHRoZSBjb3B5IG9wZXJhdGlvbgorQEAgLTUwNjksNyArNTA2OSw3IEBAIGVycm9yX2V4aXQ6 CisgCisgLyoqCisgICogQGJyaWVmIEJsb2NraW5nIFRyYW5zZmVyIGZyb20gYW4gVVJMIHRvIGFu IElPIGhhbmRsZQorLSAqIEBpbmdyb3VwIGdsb2J1c19nYXNzX3RyYW5zZmVyCisrICogQGluZ3Jv dXAgZ2xvYnVzX2dhc3NfY29weQorICAqIEBkZXRhaWxzCisgICogQHBhcmFtIGhhbmRsZQorICAq ICAgICAgICBUaGUgaGFuZGxlIHRvIHBlcmZvcm0gdGhlIGNvcHkgb3BlcmF0aW9uCitAQCAtNTE5 OSw3ICs1MTk5LDcgQEAgZXJyb3JfZXhpdDoKKyAKKyAvKioKKyAgKiBAYnJpZWYgQmxvY2tpbmcg dHJhbnNmZXIgZnJvbSBhbiBJTyBoYW5kbGUgdG8gYW4gVVJMCistICogQGluZ3JvdXAgZ2xvYnVz X2dhc3NfdHJhbnNmZXIKKysgKiBAaW5ncm91cCBnbG9idXNfZ2Fzc19jb3B5CisgICogQGRldGFp bHMKKyAgKiBAcGFyYW0gaGFuZGxlCisgICogICAgICAgIFRoZSBoYW5kbGUgdG8gcGVyZm9ybSB0 aGUgY29weSBvcGVyYXRpb24KK0BAIC01MzM0LDcgKzUzMzQsNyBAQCBlcnJvcl9leGl0OgorIAor IC8qKgorICAqIE5vbmJsb2NraW5nIFRyYW5zZmVyIGJldHdlZW4gVVJMcworLSAqIEBpbmdyb3Vw IGdsb2J1c19nYXNzX3RyYW5zZmVyCisrICogQGluZ3JvdXAgZ2xvYnVzX2dhc3NfY29weQorICAq IEBkZXRhaWxzCisgICogVGhpcyBmdW5jdGlvbnMgaW5pdGlhdGVzIGEgdHJhbnNmZXIgZnJvbSBz b3VyY2UgVVJMIHRvIGRlc3RpbmF0aW9uIFVSTCwKKyAgKiB0aGVuIHJldHVybnMgaW1tZWRpYXRl bHkuCitAQCAtNTczNCw3ICs1NzM0LDcgQEAgZXJyb3JfcmVzdWx0X2V4aXQ6CisgCisgLyoqCisg ICogQGJyaWVmIE5vbmJsb2NraW5nIHRyYW5zZmVyIGZyb20gYW4gVVJMIHRvIGFuIElPIGhhbmRs ZQorLSAqIEBpbmdyb3VwIGdsb2J1c19nYXNzX3RyYW5zZmVyCisrICogQGluZ3JvdXAgZ2xvYnVz X2dhc3NfY29weQorICAqIEBkZXRhaWxzCisgICogVGhpcyBmdW5jdGlvbnMgaW5pdGlhdGVzIGEg dHJhbnNmZXIgZnJvbSBzb3VyY2UgVVJMIHRvIGFuIElPIGhhbmRsZSwKKyAgKiB0aGVuIHJldHVy bnMgaW1tZWRpYXRlbHkuCitAQCAtNTg5NCw3ICs1ODk0LDcgQEAgZXJyb3JfcmVzdWx0X2V4aXQ6 CisgCisgLyoqCisgICogTm9uYmxvY2tpbmcgVHJhbnNmZXIgRnJvbSBhbiBJTyBoYW5kbGUgdG8g YW4gVVJMCistICogQGluZ3JvdXAgZ2xvYnVzX2dhc3NfdHJhbnNmZXIKKysgKiBAaW5ncm91cCBn bG9idXNfZ2Fzc19jb3B5CisgICogQGRldGFpbHMKKyAgKiBUaGlzIGZ1bmN0aW9ucyBpbml0aWF0 ZXMgYSB0cmFuc2ZlciBmcm9tIGFuIElPIGhhbmRsZSB0byBkZXN0aW5hdGlvbiBVUkwsCisgICog dGhlbiByZXR1cm5zIGltbWVkaWF0ZWx5LgorQEAgLTYwNTMsNyArNjA1Myw3IEBAIGVycm9yX3Jl c3VsdF9leGl0OgorIAorIC8qKgorICAqIEBicmllZiBDYWNoZSBjb25uZWN0aW9ucyB0byBhbiBG VFAgb3IgR3JpZEZUUCBzZXJ2ZXIKKy0gKiBAaW5ncm91cCBnbG9idXNfZ2Fzc190cmFuc2Zlcgor KyAqIEBpbmdyb3VwIGdsb2J1c19nYXNzX2NvcHkKKyAgKiBAZGV0YWlscworICAqIEV4cGxpY2l0 bHkgY2FjaGUgY29ubmVjdGlvbnMgdG8gVVJMIHNlcnZlci4gV2hlbgorICAqIGFuIFVSTCBpcyBj YWNoZWQsIHRoZSBjb25uZWN0aW9uCitAQCAtNjEyNSw3ICs2MTI1LDcgQEAgZ2xvYnVzX2dhc3Nf Y29weV9jYWNoZV91cmxfc3RhdGUoCisgCisgLyoqCisgICogQGJyaWVmIFJlbW92ZSBhbiBGVFAg b3IgR3JpZEZUUCBjYWNoZWQgY29ubmVjdGlvbgorLSAqIEBpbmdyb3VwIGdsb2J1c19nYXNzX3Ry YW5zZmVyCisrICogQGluZ3JvdXAgZ2xvYnVzX2dhc3NfY29weQorICAqIEBkZXRhaWxzCisgICog RXhwbGljaXRseSByZW1vdmUgYSBjYWNoZWQgY29ubmVjdGlvbiB0byBhbiBGVFAgb3IgR1NJRlRQ IHNlcnZlci4KKyAgKiBJZiBhbiBpZGxlIGNvbm5lY3Rpb24gdG8gYW4gRlRQIHNlcnZlciBleGlz dHMsIGl0IHdpbGwgYmUgY2xvc2VkLgorQEAgLTYxOTgsNyArNjE5OCw3IEBAIGdsb2J1c19nYXNz X2NvcHlfZmx1c2hfdXJsX3N0YXRlKAorIAorIC8qKgorICAqIEBicmllZiBTZXQgdGhlIHVzZXIg cG9pbnRlciBpbiBhIGhhbmRsZQorLSAqIEBpbmdyb3VwIGdsb2J1c19nYXNzX3RyYW5zZmVyCisr ICogQGluZ3JvdXAgZ2xvYnVzX2dhc3NfY29weQorICAqLworIGdsb2J1c19yZXN1bHRfdAorIGds b2J1c19nYXNzX2NvcHlfc2V0X3VzZXJfcG9pbnRlcigKK0BAIC02MjI2LDcgKzYyMjYsNyBAQCBn bG9idXNfZ2Fzc19jb3B5X3NldF91c2VyX3BvaW50ZXIoCisgCisgLyoqCisgICogQGJyaWVmIEdl dCB0aGUgdXNlciBwb2ludGVyIGluIGEgaGFuZGxlCistICogQGluZ3JvdXAgZ2xvYnVzX2dhc3Nf dHJhbnNmZXIKKysgKiBAaW5ncm91cCBnbG9idXNfZ2Fzc19jb3B5CisgICovCisgZ2xvYnVzX3Jl c3VsdF90CisgZ2xvYnVzX2dhc3NfY29weV9nZXRfdXNlcl9wb2ludGVyKAorQEAgLTYyNTQsNyAr NjI1NCw3IEBAIGdsb2J1c19nYXNzX2NvcHlfZ2V0X3VzZXJfcG9pbnRlcigKKyAKKyAvKioKKyAg KiBAYnJpZWYgQ2FuY2VsIGEgdHJhbnNmZXIKKy0gKiBAaW5ncm91cCBnbG9idXNfZ2Fzc190cmFu c2ZlcgorKyAqIEBpbmdyb3VwIGdsb2J1c19nYXNzX2NvcHkKKyAgKi8KKyBnbG9idXNfcmVzdWx0 X3QKKyBnbG9idXNfZ2Fzc19jb3B5X2NhbmNlbCgKK0BAIC02NzE2LDcgKzY3MTYsNyBAQCBnbG9i dXNfbF9nYXNzX2NvcHlfZ2VuZXJpY19jYW5jZWwoCisgI2lmZGVmIFVTRV9GVFBfQVRUUlMKKyAv KioKKyAgKiBAYnJpZWYgU2V0IFRDUCBidWZmZXIvd2luZG93IHNpemUKKy0gKiBAaW5ncm91cCBn bG9idXNfZ2Fzc190cmFuc2ZlcgorKyAqIEBpbmdyb3VwIGdsb2J1c19nYXNzX2NvcHkKKyAgKi8K KyBnbG9idXNfcmVzdWx0X3QKKyBnbG9idXNfZ2Fzc19jb3B5X2F0dHJfc2V0X3RjcGJ1ZmZlcigK K0BAIC02NzYxLDcgKzY3NjEsNyBAQCBnbG9idXNfZ2Fzc19jb3B5X2F0dHJfc2V0X3RjcGJ1ZmZl cigKKyAKKyAvKioKKyAgKiBAYnJpZWYgU2V0IHBhcmFsbGVsaXNtIGluZm8KKy0gKiBAaW5ncm91 cCBnbG9idXNfZ2Fzc190cmFuc2ZlcgorKyAqIEBpbmdyb3VwIGdsb2J1c19nYXNzX2NvcHkKKyAg Ki8KKyBnbG9idXNfcmVzdWx0X3QKKyBnbG9idXNfZ2Fzc19jb3B5X2F0dHJfc2V0X3BhcmFsbGVs aXNtKAorQEAgLTY3NzMsNyArNjc3Myw3IEBAIGdsb2J1c19nYXNzX2NvcHlfYXR0cl9zZXRfcGFy YWxsZWxpc20oCisgCisgLyoqCisgICogQGJyaWVmIFNldCBzdHJpcGluZyBpbmZvCistICogQGlu Z3JvdXAgZ2xvYnVzX2dhc3NfdHJhbnNmZXIKKysgKiBAaW5ncm91cCBnbG9idXNfZ2Fzc19jb3B5 CisgICovCisgZ2xvYnVzX3Jlc3VsdF90CisgZ2xvYnVzX2dhc3NfY29weV9hdHRyX3NldF9zdHJp cGluZygKK0BAIC02Nzg1LDcgKzY3ODUsNyBAQCBnbG9idXNfZ2Fzc19jb3B5X2F0dHJfc2V0X3N0 cmlwaW5nKAorIAorIC8qKgorICAqIEBicmllZiBTZXQgYXV0aG9yaXphdGlvbiBpbmZvCistICog QGluZ3JvdXAgZ2xvYnVzX2dhc3NfdHJhbnNmZXIKKysgKiBAaW5ncm91cCBnbG9idXNfZ2Fzc19j b3B5CisgICovCisgZ2xvYnVzX3Jlc3VsdF90CisgZ2xvYnVzX2dhc3NfY29weV9hdHRyX3NldF9h dXRob3JpemF0aW9uKAorQEAgLTY3OTcsNyArNjc5Nyw3IEBAIGdsb2J1c19nYXNzX2NvcHlfYXR0 cl9zZXRfYXV0aG9yaXphdGlvbigKKyAKKyAvKioKKyAgKiBAYnJpZWYgU2V0IHNlY3VyZSBjaGFu bmVsIGluZm8KKy0gKiBAaW5ncm91cCBnbG9idXNfZ2Fzc190cmFuc2ZlcgorKyAqIEBpbmdyb3Vw IGdsb2J1c19nYXNzX2NvcHkKKyAgKi8KKyBnbG9idXNfcmVzdWx0X3QKKyBnbG9idXNfZ2Fzc19j b3B5X2F0dHJfc2V0X3NlY3VyZV9jaGFubmVsKAorZGlmZiAtLWdpdCBhL2dhc3MvY29weS9zb3Vy Y2UvZ2xvYnVzX2dhc3NfY29weV9nbG9iLmMgYi9nYXNzL2NvcHkvc291cmNlL2dsb2J1c19nYXNz X2NvcHlfZ2xvYi5jCitpbmRleCA3ZmEwYzFjZjMuLjdmYmU3Yzc5OCAxMDA2NDQKKy0tLSBhL2dh c3MvY29weS9zb3VyY2UvZ2xvYnVzX2dhc3NfY29weV9nbG9iLmMKKysrKyBiL2dhc3MvY29weS9z b3VyY2UvZ2xvYnVzX2dhc3NfY29weV9nbG9iLmMKK0BAIC0yOTUsNyArMjk1LDYgQEAgZ2xvYnVz X2xfZ2Fzc19jb3B5X2dsb2JfZXhwYW5kX2ZpbGVfdXJsKAorICAgICBnbG9idXNfcmVzdWx0X3Qg ICAgICAgICAgICAgICAgICAgICByZXN1bHQ7CisgICAgIGludCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJldHZhbDsKKyAgICAgZ2xvYnVzX3VybF90ICAgICAgICAgICAgICAgICAg ICAgICAgcGFyc2VkX3VybDsKKy0gICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaTsKKyAgICAgc3RydWN0IHN0YXQgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdF9idWY7 CisgICAgIGNoYXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXF1ZV9pZFsyNTZd OworICAgICBnbG9idXNfZ2Fzc19jb3B5X2dsb2JfZW50cnlfdCAgICAgICB0eXBlOworQEAgLTM3 NSw5ICszNzQsNyBAQCBnbG9idXNfbF9nYXNzX2NvcHlfZ2xvYl9leHBhbmRfZmlsZV91cmwoCisg ICAgICAgICBnb3RvIGVycm9yX29wZW47CisgICAgIH0KKyAKKy0gICAgZm9yKGkgPSAwOworLSAg ICAgICAgZ2xvYnVzX2xpYmNfcmVhZGRpcl9yKGRpciwgJmRpcl9lbnRyeSkgPT0gMCAmJiBkaXJf ZW50cnk7CistICAgICAgICBpKyspCisrICAgIHdoaWxlKGdsb2J1c19saWJjX3JlYWRkaXJfcihk aXIsICZkaXJfZW50cnkpID09IDAgJiYgZGlyX2VudHJ5KQorICAgICB7CisgICAgICAgICBjaGFy ICAgICAgICAgICAgICAgICAgICAgICAgcGF0aFtNQVhQQVRITEVOXTsKKyAKKy0tIAorMi41NC4w CisKCmRpZmYgLS1naXQgYS9nbG9idXMtZ2Fzcy1jb3B5LnNwZWMgYi9nbG9idXMtZ2Fzcy1jb3B5 LnNwZWMKaW5kZXggMDdkOGZlOS4uY2E2NGRiZiAxMDA2NDQKLS0tIGEvZ2xvYnVzLWdhc3MtY29w eS5zcGVjCisrKyBiL2dsb2J1cy1nYXNzLWNvcHkuc3BlYwpAQCAtMSwxMyArMSwxNiBAQAogTmFt ZToJCWdsb2J1cy1nYXNzLWNvcHkKICVnbG9iYWwgX25hbWUgJSh0ciAtIF8gPDw8ICV7bmFtZX0p CiBWZXJzaW9uOgkxMC4xMwotUmVsZWFzZToJNSV7P2Rpc3R9CitSZWxlYXNlOgk2JXs/ZGlzdH0K IFN1bW1hcnk6CUdyaWQgQ29tbXVuaXR5IFRvb2xraXQgLSBHbG9idXMgR2FzcyBDb3B5CiAKIExp Y2Vuc2U6CUFwYWNoZS0yLjAKIFVSTDoJCWh0dHBzOi8vZ2l0aHViLmNvbS9ncmlkY2YvZ2N0Lwog U291cmNlOgkJaHR0cHM6Ly9yZXBvLmdyaWRjZi5vcmcvZ2N0Ni9zb3VyY2VzLyV7X25hbWV9LSV7 dmVyc2lvbn0udGFyLmd6CiBTb3VyY2U4OglSRUFETUUKK1BhdGNoMDoJCTAwMDEtVW50YWJpZnkt YW5kLXJlbW92ZS10cmFpbGluZy13aGl0ZS1zcGFjZS5wYXRjaAorUGF0Y2gxOgkJMDAwMi1CdWls ZC13aXRoLU9wZW5TU0wtNC5wYXRjaAorUGF0Y2gyOgkJMDAwMy1GaXgtY29tcGlsZXItYW5kLWRv eHlnZW4td2FybmluZ3MucGF0Y2gKIAogQnVpbGRSZXF1aXJlczoJbWFrZQogQnVpbGRSZXF1aXJl czoJZ2NjCkBAIC05NSw2ICs5OCw5IEBAIEdsb2J1cyBHYXNzIENvcHkgRG9jdW1lbnRhdGlvbiBG aWxlcwogCiAlcHJlcAogJXNldHVwIC1xIC1uICV7X25hbWV9LSV7dmVyc2lvbn0KKyVwYXRjaCAt UDAgLXA0CislcGF0Y2ggLVAxIC1wNAorJXBhdGNoIC1QMiAtcDQKIAogJWJ1aWxkCiAjIFJlZHVj ZSBvdmVybGlua2luZwpAQCAtMTUxLDYgKzE1NywxMCBAQCBHTE9CVVNfSE9TVE5BTUU9bG9jYWxo b3N0ICVtYWtlX2J1aWxkIGNoZWNrCiAlbGljZW5zZSBHTE9CVVNfTElDRU5TRQogCiAlY2hhbmdl bG9nCisqIFN1biBKdW4gMTQgMjAyNiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5 c2ljcy51dS5zZT4gLSAxMC4xMy02CistIENvbXBpbGUgd2l0aCBPcGVuU1NMIDQKKy0gRml4IGNv bXBpbGVyIGFuZCBkb3h5Z2VuIHdhcm5pbmdzCisKICogRnJpIEphbiAxNiAyMDI2IEZlZG9yYSBS ZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMTAuMTMtNQog LSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzQ0X01h c3NfUmVidWlsZAogCg==