[PR] tests/checkasm: Use init callback to reset parameters with --repeat (PR #23940)
mkver via ffmpeg-devel <[email protected]> Tue, 28 Jul 2026 14:43:28 -0000
| Newsgroups | gmane.comp.video.ffmpeg.devel |
|---|---|
| Message-ID | <178524980878.51.8066532097484245206@29965ddac10e> |
UFIgIzIzOTQwIG9wZW5lZCBieSBta3ZlcgpVUkw6IGh0dHBzOi8vY29kZS5mZm1wZWcub3JnL0ZG bXBlZy9GRm1wZWcvcHVsbHMvMjM5NDAKUGF0Y2ggVVJMOiBodHRwczovL2NvZGUuZmZtcGVnLm9y Zy9GRm1wZWcvRkZtcGVnL3B1bGxzLzIzOTQwLnBhdGNoCgpBbHNvIGZpeCBhIHNlZ2ZhdWx0IGlu IGF2X3R4IHdoZW4gdXNpbmcgLS1yZXBlYXQgKGluIGEgZGlmZmVyZW50IHdheSB0byAjMjM3OTYp LgoKCkZyb20gMGQ2YjY0M2E2N2RiNjY3OWM2MjA0MjU1YTliZDRhOGRjY2Y0ZjFlZCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWlu aGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IFR1ZSwgMjggSnVsIDIwMjYgMTE6MzY6MzAgKzAyMDAK U3ViamVjdDogW1BBVENIIDEvOV0gU3F1YXNoZWQgJ3Rlc3RzL2NoZWNrYXNtL2V4dC8nIGNoYW5n ZXMgZnJvbQogZTEzYjBiYjNmZi4uZTQ2YzQ3M2Y3MwoKZTQ2YzQ3M2Y3MyBSZS1vcmRlciBjb25k aXRpb25hbCAobW9zdGx5IGNvc21ldGljKQoxNjczOGYwMjhkIFNlZWQgUFJORyBiZWZvcmUgcnVu bmluZyBDaGVja2FzbVRlc3QuaW5pdCgpCjkyOTJmOWNmNmQgQmlrZXNoZWQgc3VtbWFyeSBsaW5l IGEgYml0IG1vcmUsIGVzcGVjaWFsbHkgZm9yIGludGVycnVwdGVkIHJ1bnMKMGYwMzYxMmVjOSBT dXBwcmVzcyBub24tZmFpbHVyZSBvdXRwdXQgYWZ0ZXIgZmlyc3QgaXRlcmF0aW9uCmJmZGIyMzBk ZDkgY2hlY2thc206IFByaW50IHN0YXR1c2xpbmUgdG8gdHJhY2sgY3VycmVudCB0ZXN0L2JlbmNo IHByb2dyZXNzCmM4OTk2YTI4NGIgY2hlY2thc206IE1vdmUgdGVzdCBpdGVyYXRpb24gdmFyaWFi bGUgdG8gZ2xvYmFsIHN0YXRlCjQ2ZTEzNmVlMGUgdXRpbHM6IEFkZCBzZWxmLXJlcGFpbnRpbmcg c3RhdHVzbGluZSBidWZmZXIKODAwMDUzZWRjYSBSb3V0ZSBhbGwgbG9nIG1lc3NhZ2VzIHRocm91 Z2ggY2hlY2thc21fZnByaW50ZigpCmY2NzkxZmVlNTkgdXRpbHM6IFJlZGVmaW5lIGNoZWNrYXNt X2ZwcmludGYoKSBhcyBjaGVja2FzbV92ZnByaW50ZigpCjYyOWEyMTFmZWIgQWRkIG9wdGlvbmFs IENoZWNrYXNtVGVzdC5pbml0KCkgYW5kIHVuaW5pdCgpCjM1NGYzZDNlOGQgcmlzY3YvY2FsbGNo ZWNrOiBBdm9pZCBvdXQtb2YtcmFuZ2UgbGkgaW1tZWRpYXRlIHVuZGVyIExMVk0gb24gcnYzMgo2 ZTFiNGNkNmNhIHJpc2N2L2NwdTogSW5jbHVkZSA8YXNtL3VuaXN0ZC5oPiBmb3IgX19OUl9yaXNj dl9od3Byb2JlCjgxMzAwNDNiMzIgRml4IENQVSBkZXRlY3Rpb24gZm9yIEFWWDUxMkYKOTc2MDgx MGI0OSBTdXBwb3J0IFlNTSBjb3B5IHRlc3RzIG9uIHByb2Nlc3NvcnMgd2l0aCBvbmx5IEFWWApk YzhjMzIwMzEzIFN1cHBvcnQgWE1NIGNvcHkgdGVzdHMgb24gcHJvY2Vzc29ycyB3aXRoIG9ubHkg U1NFCgpnaXQtc3VidHJlZS1kaXI6IHRlc3RzL2NoZWNrYXNtL2V4dApnaXQtc3VidHJlZS1zcGxp dDogZTQ2YzQ3M2Y3M2U3NDczMDFkNDRkMmU3ZjgxMTdlMjNmOWEwNmY2NAotLS0KIGluY2x1ZGUv Y2hlY2thc20vY2hlY2thc20uaCB8ICAxOCArKystCiBzcmMvY2hlY2thc20uYyAgICAgICAgICAg ICAgfCAxNzQgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiBzcmMvaW50ZXJu YWwuaCAgICAgICAgICAgICAgfCAgMjEgKysrKy0KIHNyYy9yaXNjdi9jYWxsY2hlY2suUyAgICAg ICB8ICAgMiArLQogc3JjL3Jpc2N2L2NwdS5jICAgICAgICAgICAgIHwgICAxICsKIHNyYy91dGls cy5jICAgICAgICAgICAgICAgICB8ICA1MSArKysrKysrKystLQogc3JjL3g4Ni9jcHUuYyAgICAg ICAgICAgICAgIHwgICAyICstCiB0ZXN0cy9zZWxmdGVzdC5jICAgICAgICAgICAgfCAgIDQgKy0K IHRlc3RzL3Rlc3RzLmggICAgICAgICAgICAgICB8ICAgNCArLQogdGVzdHMveDg2L3Rlc3RzLmMg ICAgICAgICAgIHwgIDM3ICsrKystLS0tCiB0ZXN0cy94ODYvdGVzdHNfYXNtLmFzbSAgICAgfCAg MTAgKy0tCiAxMSBmaWxlcyBjaGFuZ2VkLCAyMjEgaW5zZXJ0aW9ucygrKSwgMTAzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvY2hlY2thc20vY2hlY2thc20uaCBiL2luY2x1ZGUv Y2hlY2thc20vY2hlY2thc20uaAppbmRleCBmYzQwZmFiNGNkLi5hODZmNDFjNzJhIDEwMDY0NAot LS0gYS9pbmNsdWRlL2NoZWNrYXNtL2NoZWNrYXNtLmgKKysrIGIvaW5jbHVkZS9jaGVja2FzbS9j aGVja2FzbS5oCkBAIC0xMTcsNiArMTE3LDIwIEBAIHR5cGVkZWYgc3RydWN0IENoZWNrYXNtQ3B1 SW5mbyB7CiB0eXBlZGVmIHN0cnVjdCBDaGVja2FzbVRlc3QgewogICAgIGNvbnN0IGNoYXIgKm5h bWU7ICAgLyoqPCBOYW1lIG9mIHRoZSB0ZXN0ICh1c2VkIGZvciBmaWx0ZXJpbmcgYW5kIHJlcG9y dGluZykgKi8KICAgICB2b2lkICgqZnVuYykodm9pZCk7IC8qKjwgVGVzdCBmdW5jdGlvbiB0byBp bnZva2UgKi8KKworICAgIC8qKgorICAgICAqIEBicmllZiBPcHRpb25hbCBpbml0aWFsaXphdGlv biBmdW5jdGlvbgorICAgICAqCisgICAgICogVGhlc2UgZnVuY3Rpb25zLCBpZiBzZXQsIGFyZSBp bnZva2VkIGJlZm9yZSB0ZXN0aW5nIGFueSBDUFUgZmxhZ3MKKyAgICAgKiBhbmQgYWZ0ZXIgdGVz dGluZyBhbGwgQ1BVIGZsYWdzLCByZXNwZWN0aXZlbHkuCisgICAgICoKKyAgICAgKiBAbm90ZSBJ ZiBDaGVja2FzbUNvbmZpZy5yZXBlYXQgPiAxLCB0aGV5IHdpbGwgYmUgY2FsbGVkIGZvciBldmVy eQorICAgICAqIGl0ZXJhdGlvbi4KKyAgICAgKgorICAgICAqIEB3YXJuaW5nIFRoZXNlIGFyZSBj YWxsZWQgZXZlbiB3aGVuIHJ1bm5pbmcgY2hlY2thc21fbGlzdF9mdW5jdGlvbnMoKS4KKyAgICAg Ki8KKyAgICB2b2lkICgqaW5pdCkodm9pZCk7CisgICAgdm9pZCAoKnVuaW5pdCkodm9pZCk7CiB9 IENoZWNrYXNtVGVzdDsKIAogLyoqCkBAIC0zNjIsNyArMzc2LDkgQEAgQ0hFQ0tBU01fQVBJIHZv aWQgY2hlY2thc21fbGlzdF90ZXN0cyhjb25zdCBDaGVja2FzbUNvbmZpZyAqY29uZmlnKTsKICAq IEBub3RlIFRoaXMgcmVxdWlyZXMgZXhlY3V0aW5nIGFsbCB0ZXN0cyB0byBnYXRoZXIgaW5mb3Jt YXRpb24gYWJvdXQgdGhlCiAgKiAgICAgICBhdmFpbGFibGUgZnVuY3Rpb25zLiBEdXJpbmcgdGhp cyBwcm9jZXNzLCBjaGVja2FzbV9jaGVja19mdW5jKCkgYWx3YXlzCiAgKiAgICAgICByZXR1cm5z IDAgdG8gc2tpcCB0aGUgYWN0dWFsIHRlc3RpbmcuIEhvd2V2ZXIsIGFueSBzaWRlIGVmZmVjdHMg ZnJvbQotICogICAgICAgdGVzdCBmdW5jdGlvbnMgd2lsbCBzdGlsbCBvY2N1ciwgdW5sZXNzIHBy b3Blcmx5IGd1YXJkZWQuCisgKiAgICAgICB0ZXN0IGZ1bmN0aW9ucyB3aWxsIHN0aWxsIG9jY3Vy LCB1bmxlc3MgcHJvcGVybHkgZ3VhcmRlZC4gSW4KKyAqICAgICAgIHBhcnRpY3VsYXIsIENoZWNr YXNtVGVzdC5pbml0KCkgYW5kIENoZWNrYXNtVGVzdC51bmluaXQoKSB3aWxsIHN0aWxsCisgKiAg ICAgICBiZSBleGVjdXRlZC4KICAqLwogQ0hFQ0tBU01fQVBJIHZvaWQgY2hlY2thc21fbGlzdF9m dW5jdGlvbnMoY29uc3QgQ2hlY2thc21Db25maWcgKmNvbmZpZyk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9jaGVja2FzbS5jIGIvc3JjL2NoZWNrYXNtLmMKaW5kZXggZTEwY2ZhMjNlYi4uMmViZWJhZWMz ZCAxMDA2NDQKLS0tIGEvc3JjL2NoZWNrYXNtLmMKKysrIGIvc3JjL2NoZWNrYXNtLmMKQEAgLTEw OCw2ICsxMDgsNyBAQCBzdGF0aWMgc3RydWN0IHsKICAgICAvKiBNaXNjZWxsYW5lb3VzIGdsb2Jh bCBzdGF0ZSAoY29zbWV0aWMpICovCiAgICAgaW50IG1heF9mdW5jdGlvbl9uYW1lX2xlbmd0aDsK ICAgICBpbnQgbWF4X3JlcG9ydF9uYW1lX2xlbmd0aDsKKyAgICB1bnNpZ25lZCB0ZXN0X2l0ZXI7 CiAKICAgICAvKiBUaW1pbmcgY29kZSBtZWFzdXJlbWVudHMgKGFnZ3JlZ2F0ZWQgb3ZlciBtdWx0 aXBsZSB0cmlhbHMpICovCiAgICAgQ2hlY2thc21NZWFzdXJlbWVudCBub3BfY3ljbGVzOwpAQCAt NTIzLDYgKzUyNCwxMiBAQCBzdGF0aWMgaW50IHdpbGRzdHJjbXAoY29uc3QgY2hhciAqc3RyLCBj b25zdCBjaGFyICpwYXR0ZXJuKQogfQogCiBzdGF0aWMgdm9pZCBoYW5kbGVfaW50ZXJydXB0KHZv aWQpOworc3RhdGljIHZvaWQgdXBkYXRlX3N0YXR1c2xpbmUodm9pZCk7CisKK3N0YXRpYyBpbnQg dGVzdF9lbmFibGVkKGNvbnN0IENoZWNrYXNtVGVzdCAqdGVzdCkKK3sKKyAgICByZXR1cm4gIWNm Zy50ZXN0X3BhdHRlcm4gfHwgIXdpbGRzdHJjbXAodGVzdC0+bmFtZSwgY2ZnLnRlc3RfcGF0dGVy bik7Cit9CiAKIC8qIFBlcmZvcm0gdGVzdHMgYW5kIGJlbmNobWFya3MgZm9yIHRoZSBzcGVjaWZp ZWQKICAqIGNwdSBmbGFnIGlmIHN1cHBvcnRlZCBieSB0aGUgaG9zdCAqLwpAQCAtNTUwLDkgKzU1 NywxMCBAQCBzdGF0aWMgdm9pZCBjaGVja19jcHVfZmxhZyhjb25zdCBDaGVja2FzbUNwdUluZm8g KmNwdSkKICAgICAgICAgY2ZnLnNldF9jcHVfZmxhZ3MoY3VycmVudC5jcHVfZmxhZ3MpOwogCiAg ICAgZm9yIChjb25zdCBDaGVja2FzbVRlc3QgKnRlc3QgPSBjZmcudGVzdHM7IHRlc3QtPmZ1bmM7 IHRlc3QrKykgewotICAgICAgICBpZiAoY2ZnLnRlc3RfcGF0dGVybiAmJiB3aWxkc3RyY21wKHRl c3QtPm5hbWUsIGNmZy50ZXN0X3BhdHRlcm4pKQorICAgICAgICBpZiAoIXRlc3RfZW5hYmxlZCh0 ZXN0KSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBjdXJyZW50LnRlc3RfbmFtZSA9 IHRlc3QtPm5hbWU7CisgICAgICAgIHVwZGF0ZV9zdGF0dXNsaW5lKCk7CiAKICAgICAgICAgaWYg KGNoZWNrYXNtX3NhdmVfY29udGV4dChjaGVja2FzbV9jb250ZXh0KSkgewogICAgICAgICAgICAg Y29uc3QgY2hhciAqc2lnbmFsID0gY2hlY2thc21fZ2V0X2xhc3Rfc2lnbmFsX2Rlc2MoKTsKQEAg LTU5Miw4ICs2MDAsNyBAQCBzdGF0aWMgdm9pZCBjaGVja19jcHVfZmxhZyhjb25zdCBDaGVja2Fz bUNwdUluZm8gKmNwdSkKIHN0YXRpYyB2b2lkIHByaW50X2NwdV9uYW1lKHZvaWQpCiB7CiAgICAg aWYgKCFjdXJyZW50LmNwdV9uYW1lX3ByaW50ZWQpIHsKLSAgICAgICAgY2hlY2thc21fZnByaW50 ZihzdGRlcnIsIENPTE9SX1lFTExPVywgIiVzOlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAg ICBjdXJyZW50LmNwdSA/IGN1cnJlbnQuY3B1LT5uYW1lIDogIkMiKTsKKyAgICAgICAgTE9HX0NP TE9SKENPTE9SX1lFTExPVywgIiVzOlxuIiwgY3VycmVudC5jcHUgPyBjdXJyZW50LmNwdS0+bmFt ZSA6ICJDIik7CiAgICAgICAgIGN1cnJlbnQuY3B1X25hbWVfcHJpbnRlZCA9IDE7CiAgICAgfQog fQpAQCAtNjUyLDE1ICs2NTksMTUgQEAgc3RhdGljIGludCBzZXRfY3B1X2FmZmluaXR5KGNvbnN0 IHVuc2lnbmVkIGFmZmluaXR5KQogI2Vsc2UKICAgICAodm9pZCkgYWZmaW5pdHk7CiAgICAgKHZv aWQpIGFmZmluaXR5X2VycjsKLSAgICBmcHJpbnRmKHN0ZGVyciwgImNoZWNrYXNtOiAtLWFmZmlu aXR5IGlzIG5vdCBzdXBwb3J0ZWQgb24geW91ciBzeXN0ZW1cbiIpOworICAgIExPRygiY2hlY2th c206IC0tYWZmaW5pdHkgaXMgbm90IHN1cHBvcnRlZCBvbiB5b3VyIHN5c3RlbVxuIik7CiAgICAg cmV0dXJuIDE7CiAjZW5kaWYKIAogICAgIGlmIChhZmZpbml0eV9lcnIpIHsKLSAgICAgICAgZnBy aW50ZihzdGRlcnIsICJjaGVja2FzbTogaW52YWxpZCBjcHUgYWZmaW5pdHkgKCV1KVxuIiwgYWZm aW5pdHkpOworICAgICAgICBMT0coImNoZWNrYXNtOiBpbnZhbGlkIGNwdSBhZmZpbml0eSAoJXUp XG4iLCBhZmZpbml0eSk7CiAgICAgICAgIHJldHVybiAxOwogICAgIH0gZWxzZSB7Ci0gICAgICAg IGZwcmludGYoc3RkZXJyLCAiY2hlY2thc206IHJ1bm5pbmcgb24gY3B1ICV1XG4iLCBhZmZpbml0 eSk7CisgICAgICAgIExPRygiY2hlY2thc206IHJ1bm5pbmcgb24gY3B1ICV1XG4iLCBhZmZpbml0 eSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIH0KQEAgLTY5Nyw2ICs3MDQsMjUgQEAgc3Rh dGljIHZvaWQgcHJpbnRfZnVuY3Rpb25zKGNvbnN0IENoZWNrYXNtRnVuYyAqY29uc3QgZikKICAg ICB9CiB9CiAKK3N0YXRpYyB2b2lkIHJ1bl9hbGxfdGVzdHModm9pZCkKK3sKKyAgICBmb3IgKGNv bnN0IENoZWNrYXNtVGVzdCAqdGVzdCA9IGNmZy50ZXN0czsgdGVzdC0+ZnVuYzsgdGVzdCsrKSB7 CisgICAgICAgIGlmICh0ZXN0LT5pbml0ICYmIHRlc3RfZW5hYmxlZCh0ZXN0KSkgeworICAgICAg ICAgICAgY2hlY2thc21fc3JhbmQoY2ZnLnNlZWQpOworICAgICAgICAgICAgdGVzdC0+aW5pdCgp OworICAgICAgICB9CisgICAgfQorCisgICAgY2hlY2tfY3B1X2ZsYWcoTlVMTCk7CisgICAgZm9y IChjb25zdCBDaGVja2FzbUNwdUluZm8gKmluZm8gPSBjZmcuY3B1X2ZsYWdzOyBpbmZvLT5mbGFn OyBpbmZvKyspCisgICAgICAgIGNoZWNrX2NwdV9mbGFnKGluZm8pOworCisgICAgZm9yIChjb25z dCBDaGVja2FzbVRlc3QgKnRlc3QgPSBjZmcudGVzdHM7IHRlc3QtPmZ1bmM7IHRlc3QrKykgewor ICAgICAgICBpZiAodGVzdC0+dW5pbml0ICYmIHRlc3RfZW5hYmxlZCh0ZXN0KSkKKyAgICAgICAg ICAgIHRlc3QtPnVuaW5pdCgpOworICAgIH0KK30KKwogdm9pZCBjaGVja2FzbV9saXN0X2Z1bmN0 aW9ucyhjb25zdCBDaGVja2FzbUNvbmZpZyAqY29uZmlnKQogewogICAgIG1lbXNldCgmc3RhdGUs IDAsIHNpemVvZihzdGF0ZSkpOwpAQCAtNzA0LDkgKzczMCw3IEBAIHZvaWQgY2hlY2thc21fbGlz dF9mdW5jdGlvbnMoY29uc3QgQ2hlY2thc21Db25maWcgKmNvbmZpZykKICAgICBzdGF0ZS5za2lw X3Rlc3RzID0gMTsKICAgICBjZmcgICAgICAgICAgICAgID0gKmNvbmZpZzsKIAotICAgIGNoZWNr X2NwdV9mbGFnKE5VTEwpOwotICAgIGZvciAoY29uc3QgQ2hlY2thc21DcHVJbmZvICppbmZvID0g Y2ZnLmNwdV9mbGFnczsgaW5mby0+ZmxhZzsgaW5mbysrKQotICAgICAgICBjaGVja19jcHVfZmxh ZyhpbmZvKTsKKyAgICBydW5fYWxsX3Rlc3RzKCk7CiAKICAgICBwcmludF9mdW5jdGlvbnMoY3Vy cmVudC50cmVlLnJvb3QpOwogICAgIGNoZWNrYXNtX2Z1bmNfdHJlZV91bmluaXQoJmN1cnJlbnQu dHJlZSk7CkBAIC03MjYsNDUgKzc1MCw3OSBAQCBzdGF0aWMgdm9pZCBjcHVfZnByaW50Zih2b2lk ICpwcml2LCBjb25zdCBjaGFyICpmbXQsIC4uLikKIAogc3RhdGljIENPTEQgdm9pZCBwcmludF9p bmZvKHZvaWQpCiB7Ci0gICAgY2hlY2thc21fZnByaW50ZihzdGRlcnIsIENPTE9SX1lFTExPVywg ImNoZWNrYXNtOlxuIik7CisgICAgTE9HX0NPTE9SKENPTE9SX1lFTExPVywgImNoZWNrYXNtOlxu Iik7CiAgICAgY2hlY2thc21fY3B1X2luZm8oY3B1X2ZwcmludGYsIHN0ZGVyciwgJmNmZyk7CiAK ICAgICBpZiAoY2ZnLmJlbmNoKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiIC0gVGltaW5n IHNvdXJjZTogJXNcbiIsIGNoZWNrYXNtX3BlcmYubmFtZSk7CisgICAgICAgIExPRygiIC0gVGlt aW5nIHNvdXJjZTogJXNcbiIsIGNoZWNrYXNtX3BlcmYubmFtZSk7CiAgICAgICAgIGlmIChjZmcu dmVyYm9zZSkgewogICAgICAgICAgICAgY29uc3QgQ2hlY2thc21WYXIgcGVyZl9zY2FsZSA9IGNo ZWNrYXNtX21lYXN1cmVtZW50X3Jlc3VsdChzdGF0ZS5wZXJmX3NjYWxlKTsKICAgICAgICAgICAg IGNvbnN0IENoZWNrYXNtVmFyIG5vcF9jeWNsZXMgPSBjaGVja2FzbV9tZWFzdXJlbWVudF9yZXN1 bHQoc3RhdGUubm9wX2N5Y2xlcyk7CiAgICAgICAgICAgICBjb25zdCBDaGVja2FzbVZhciBtaHog PSBjaGVja2FzbV92YXJfZGl2KGNoZWNrYXNtX3Zhcl9jb25zdCgxZTMpLCBwZXJmX3NjYWxlKTsK LSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAgICAgICAgICAgICAiIC0gVGlt aW5nIHJlc29sdXRpb246ICUuNGYgKy8tICUuM2YgbnMvJXMgKCUuMGYgKy8tICUuMWYgIgotICAg ICAgICAgICAgICAgICAgICAiTUh6KSAocHJvdmlzaW9uYWwpXG4iLAotICAgICAgICAgICAgICAg ICAgICBjaGVja2FzbV9tb2RlKHBlcmZfc2NhbGUpLCBjaGVja2FzbV9zdGRkZXYocGVyZl9zY2Fs ZSksCi0gICAgICAgICAgICAgICAgICAgIGNoZWNrYXNtX3BlcmYudW5pdCwgY2hlY2thc21fbW9k ZShtaHopLCBjaGVja2FzbV9zdGRkZXYobWh6KSk7CisgICAgICAgICAgICBMT0coIiAtIFRpbWlu ZyByZXNvbHV0aW9uOiAlLjRmICsvLSAlLjNmIG5zLyVzICglLjBmICsvLSAlLjFmICIKKyAgICAg ICAgICAgICAgICAiTUh6KSAocHJvdmlzaW9uYWwpXG4iLAorICAgICAgICAgICAgICAgIGNoZWNr YXNtX21vZGUocGVyZl9zY2FsZSksIGNoZWNrYXNtX3N0ZGRldihwZXJmX3NjYWxlKSwKKyAgICAg ICAgICAgICAgICBjaGVja2FzbV9wZXJmLnVuaXQsIGNoZWNrYXNtX21vZGUobWh6KSwgY2hlY2th c21fc3RkZGV2KG1oeikpOwogCi0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwKLSAgICAgICAg ICAgICAgICAgICAgIiAtIE5vLW9wIG92ZXJoZWFkOiAlLjJmICsvLSAlLjNmICVzcyBwZXIgY2Fs bCAocHJvdmlzaW9uYWwpXG4iLAotICAgICAgICAgICAgICAgICAgICBjaGVja2FzbV9tb2RlKG5v cF9jeWNsZXMpLCBjaGVja2FzbV9zdGRkZXYobm9wX2N5Y2xlcyksCi0gICAgICAgICAgICAgICAg ICAgIGNoZWNrYXNtX3BlcmYudW5pdCk7CisgICAgICAgICAgICBMT0coIiAtIE5vLW9wIG92ZXJo ZWFkOiAlLjJmICsvLSAlLjNmICVzcyBwZXIgY2FsbCAocHJvdmlzaW9uYWwpXG4iLAorICAgICAg ICAgICAgICAgIGNoZWNrYXNtX21vZGUobm9wX2N5Y2xlcyksIGNoZWNrYXNtX3N0ZGRldihub3Bf Y3ljbGVzKSwKKyAgICAgICAgICAgICAgICBjaGVja2FzbV9wZXJmLnVuaXQpOwogICAgICAgICB9 Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiIC0gQmVuY2ggZHVyYXRpb246ICVkIMK1cyBwZXIg ZnVuY3Rpb24gKCUiIFBSSXU2NCAiICVzcylcbiIsCi0gICAgICAgICAgICAgICAgY2ZnLmJlbmNo X3VzZWMsIHN0YXRlLnRhcmdldF9jeWNsZXMsIGNoZWNrYXNtX3BlcmYudW5pdCk7CisgICAgICAg IExPRygiIC0gQmVuY2ggZHVyYXRpb246ICVkIMK1cyBwZXIgZnVuY3Rpb24gKCUiIFBSSXU2NCAi ICVzcylcbiIsIGNmZy5iZW5jaF91c2VjLAorICAgICAgICAgICAgc3RhdGUudGFyZ2V0X2N5Y2xl cywgY2hlY2thc21fcGVyZi51bml0KTsKICAgICB9Ci0gICAgZnByaW50ZihzdGRlcnIsICIgLSBS YW5kb20gc2VlZDogJXVcbiIsIGNmZy5zZWVkKTsKKyAgICBMT0coIiAtIFJhbmRvbSBzZWVkOiAl dVxuIiwgY2ZnLnNlZWQpOwogfQogCi1zdGF0aWMgaW50IHByaW50X3N1bW1hcnkodm9pZCkKK3N0 YXRpYyB2b2lkIHVwZGF0ZV9zdGF0dXNsaW5lKHZvaWQpCiB7CisgICAgaWYgKHN0YXRlLnNraXBf dGVzdHMpCisgICAgICAgIHJldHVybjsKKworICAgIGNoYXIgc3RhdHVzWzI1Nl07CisgICAgaW50 IGxlbiA9IDA7CisKKyAgICBsZW4gKz0gc25wcmludGYoc3RhdHVzLCBzaXplb2Yoc3RhdHVzKSwg ImNoZWNrYXNtOiBpdGVyPSVkLyVkIGNwdT0lcyB0ZXN0PSVzIiwKKyAgICAgICAgICAgICAgICAg ICAgc3RhdGUudGVzdF9pdGVyICsgMSwgY2ZnLnJlcGVhdCwgY3B1X3N1ZmZpeChjdXJyZW50LmNw dSksCisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQudGVzdF9uYW1lKTsKKworICAgIGlmIChj dXJyZW50LmZ1bmMgJiYgY3VycmVudC5mdW5jLT5yZXBvcnRfbmFtZSkgeworICAgICAgICBzbnBy aW50ZihzdGF0dXMgKyBsZW4sIHNpemVvZihzdGF0dXMpIC0gbGVuLCAiIGZ1bmM9JXMiLAorICAg ICAgICAgICAgICAgICBjdXJyZW50LmZ1bmMtPnJlcG9ydF9uYW1lKTsKKyAgICB9CisKKyAgICBj aGVja2FzbV9zdGF0dXNsaW5lKHN0YXR1cyk7Cit9CisKK3N0YXRpYyBpbnQgcHJpbnRfc3VtbWFy eShpbnQgaW50ZXJydXB0ZWQpCit7CisgICAgY2hlY2thc21fc3RhdHVzbGluZShOVUxMKTsKKwor ICAgIExPRygiY2hlY2thc206ICIpOworICAgIGlmIChpbnRlcnJ1cHRlZCkKKyAgICAgICAgTE9H X0NPTE9SKENPTE9SX0JMVUUsICIoaW50ZXJydXB0ZWQpICIpOworCiAgICAgLyogRXhjbHVkZSBD L3JlZiB2ZXJzaW9ucyBmcm9tIGNvdW50IHJlcG9ydGVkIHRvIHVzZXIgKi8KICAgICBjb25zdCBp bnQgbnVtX2NoZWNrZWRfYXNtID0gY3VycmVudC5udW1fY2hlY2tlZCAtIGN1cnJlbnQubnVtX2Z1 bmNzOwogICAgIGlmIChjdXJyZW50Lm51bV9mYWlsZWQpIHsKLSAgICAgICAgZnByaW50ZihzdGRl cnIsICJjaGVja2FzbTogJWQgb2YgJWQgdGVzdHMgZmFpbGVkXG4iLCBjdXJyZW50Lm51bV9mYWls ZWQsCi0gICAgICAgICAgICAgICAgbnVtX2NoZWNrZWRfYXNtKTsKKyAgICAgICAgTE9HX0NPTE9S KENPTE9SX1JFRCwgIiVkICIsIGN1cnJlbnQubnVtX2ZhaWxlZCk7CisgICAgICAgIExPRygib2Yg JWQgdGVzdHMgZmFpbGVkIiwgbnVtX2NoZWNrZWRfYXNtKTsKICAgICB9IGVsc2UgaWYgKG51bV9j aGVja2VkX2FzbSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImNoZWNrYXNtOiBhbGwgJWQg dGVzdHMgcGFzc2VkXG4iLCBudW1fY2hlY2tlZF9hc20pOworICAgICAgICBpZiAoIWludGVycnVw dGVkKQorICAgICAgICAgICAgTE9HKCJhbGwgIik7CisgICAgICAgIExPRygiJWQgdGVzdHMgcGFz c2VkIiwgbnVtX2NoZWNrZWRfYXNtKTsKKyAgICB9IGVsc2UgaWYgKGludGVycnVwdGVkKSB7Cisg ICAgICAgIExPRygibm8gdGVzdHMgcGVyZm9ybWVkIik7CiAgICAgfSBlbHNlIHsKLSAgICAgICAg ZnByaW50ZihzdGRlcnIsICJjaGVja2FzbTogbm8gdGVzdHMgdG8gcGVyZm9ybVxuIik7CisgICAg ICAgIC8qIFVzZXIgZGlkIG5vdCBkZWZpbmUgYW55IHRlc3RzICovCisgICAgICAgIExPR19DT0xP UihDT0xPUl9ZRUxMT1csICJubyB0ZXN0cyB0byBwZXJmb3JtIik7CiAgICAgfQogCisgICAgaWYg KGNmZy5yZXBlYXQgPiAxKQorICAgICAgICBMT0coIiwgaXRlcmF0aW9uICVkIG9mICVkLCBzZWVk ICV1XG4iLCBzdGF0ZS50ZXN0X2l0ZXIgKyAxLCBjZmcucmVwZWF0LCBjZmcuc2VlZCk7CisgICAg ZWxzZQorICAgICAgICBMT0coIlxuIik7CisKICAgICBpZiAoY3VycmVudC5udW1fYmVuY2hlZCAm JiAhY3VycmVudC5udW1fZmFpbGVkKQogICAgICAgICBwcmludF9iZW5jaG1hcmtzKCk7CiAKQEAg LTc3NCw4ICs4MzIsNyBAQCBzdGF0aWMgaW50IHByaW50X3N1bW1hcnkodm9pZCkKIHN0YXRpYyB2 b2lkIGhhbmRsZV9pbnRlcnJ1cHQodm9pZCkKIHsKICAgICBpZiAoY2hlY2thc21faW50ZXJydXB0 ZWQpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJjaGVja2FzbTogaW50ZXJydXB0ZWRcbiIp OwotICAgICAgICBwcmludF9zdW1tYXJ5KCk7CisgICAgICAgIHByaW50X3N1bW1hcnkoMSk7CiAg ICAgICAgIGV4aXQoMTI4ICsgY2hlY2thc21faW50ZXJydXB0ZWQpOwogICAgIH0KIH0KQEAgLTc4 NCw3ICs4NDEsNyBAQCBpbnQgY2hlY2thc21fcnVuKGNvbnN0IENoZWNrYXNtQ29uZmlnICpjb25m aWcpCiB7CiAjaWYgIUhBVkVfSFRNTF9EQVRBCiAgICAgaWYgKGNmZy5mb3JtYXQgPT0gQ0hFQ0tB U01fRk9STUFUX0hUTUwpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJjaGVja2FzbTogYnVp bHQgd2l0aG91dCBIVE1MIHN1cHBvcnRcbiIpOworICAgICAgICBMT0coImNoZWNrYXNtOiBidWls dCB3aXRob3V0IEhUTUwgc3VwcG9ydFxuIik7CiAgICAgICAgIHJldHVybiAxOwogICAgIH0KICNl bmRpZgpAQCAtODM3LDE3ICs4OTQsMTAgQEAgaW50IGNoZWNrYXNtX3J1bihjb25zdCBDaGVja2Fz bUNvbmZpZyAqY29uZmlnKQogCiAgICAgcHJpbnRfaW5mbygpOwogCi0gICAgZm9yICh1bnNpZ25l ZCBpID0gMDsgaSA8IGNmZy5yZXBlYXQ7IGkrKykgewotICAgICAgICBpZiAoaSA+IDApIHsKLSAg ICAgICAgICAgIGNoZWNrYXNtX2ZwcmludGYoc3RkZXJyLCBDT0xPUl9ZRUxMT1csICJcblRlc3Qg IyVkOlxuIiwgaSArIDEpOwotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIgLSBSYW5kb20g c2VlZDogJXVcbiIsIGNmZy5zZWVkKTsKLSAgICAgICAgfQorICAgIGZvciAoc3RhdGUudGVzdF9p dGVyID0gMDsgc3RhdGUudGVzdF9pdGVyIDwgY2ZnLnJlcGVhdDsgc3RhdGUudGVzdF9pdGVyKysp IHsKKyAgICAgICAgcnVuX2FsbF90ZXN0cygpOwogCi0gICAgICAgIGNoZWNrX2NwdV9mbGFnKE5V TEwpOwotICAgICAgICBmb3IgKGNvbnN0IENoZWNrYXNtQ3B1SW5mbyAqaW5mbyA9IGNmZy5jcHVf ZmxhZ3M7IGluZm8tPmZsYWc7IGluZm8rKykKLSAgICAgICAgICAgIGNoZWNrX2NwdV9mbGFnKGlu Zm8pOwotCi0gICAgICAgIGludCByZXMgPSBwcmludF9zdW1tYXJ5KCk7CisgICAgICAgIGludCBy ZXMgPSBwcmludF9zdW1tYXJ5KDApOwogICAgICAgICBjaGVja2FzbV9mdW5jX3RyZWVfdW5pbml0 KCZjdXJyZW50LnRyZWUpOwogICAgICAgICBpZiAocmVzKQogICAgICAgICAgICAgcmV0dXJuIHJl czsKQEAgLTk0OSw2ICs5OTksNyBAQCBDaGVja2FzbUtleSBjaGVja2FzbV9jaGVja19rZXkoY29u c3QgQ2hlY2thc21LZXkgdmVyc2lvbiwgY29uc3QgY2hhciAqY29uc3QgbmFtZQogICAgIGN1cnJl bnQuZnVuY192ZXIgPSB2OwogICAgIGN1cnJlbnQubnVtX2NoZWNrZWQrKzsKICAgICBjaGVja2Fz bV9zcmFuZChjZmcuc2VlZCk7CisgICAgdXBkYXRlX3N0YXR1c2xpbmUoKTsKIAogICAgIGlmIChj ZmcuYmVuY2gpIHsKICNpZiBBUkNIX1g4NgpAQCAtOTgyLDggKzEwMzMsOCBAQCBzdGF0aWMgaW50 IGZhaWxfaW50ZXJuYWwoY29uc3QgY2hhciAqY29uc3QgbXNnLCB2YV9saXN0IGFyZykKICAgICBp ZiAodiAmJiB2LT5zdGF0ZSA9PSBDSEVDS0FTTV9GVU5DX09LKSB7CiAgICAgICAgIGlmICghY3Vy cmVudC5zaG91bGRfZmFpbCkgewogICAgICAgICAgICAgcHJpbnRfY3B1X25hbWUoKTsKLSAgICAg ICAgICAgIGNoZWNrYXNtX2ZwcmludGYoc3RkZXJyLCBDT0xPUl9SRUQsICJGQUlMVVJFOiIpOwot ICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIgJXNfJXMgKCIsIGN1cnJlbnQuZnVuYy0+bmFt ZSwgdmVyX3N1ZmZpeCh2KSk7CisgICAgICAgICAgICBMT0dfQ09MT1IoQ09MT1JfUkVELCAiRkFJ TFVSRToiKTsKKyAgICAgICAgICAgIExPRygiICVzXyVzICgiLCBjdXJyZW50LmZ1bmMtPm5hbWUs IHZlcl9zdWZmaXgodikpOwogICAgICAgICAgICAgdmZwcmludGYoc3RkZXJyLCBtc2csIGFyZyk7 CiAgICAgICAgICAgICBmcHV0cygiKVxuIiwgc3RkZXJyKTsKICAgICAgICAgfQpAQCAtMTA1NCwy OCArMTEwNSwyNyBAQCB2b2lkIGNoZWNrYXNtX3JlcG9ydChjb25zdCBjaGFyICpjb25zdCBuYW1l LCAuLi4pCiAgICAgICAgIGlmIChjdXJyZW50LnNob3VsZF9mYWlsKQogICAgICAgICAgICAgY3Vy cmVudC5udW1fZmFpbGVkID0gY3VycmVudC5wcmV2X2ZhaWxlZCArIChuZXdfY2hlY2tlZCAtIGZh aWxzKTsKIAotICAgICAgICAvKiBPbWl0ICJPSyIgZm9yIG5vbi12ZXJib3NlIG5vbi1iZW5jaG1h cmsgQyBmdW5jdGlvbiBzdWNjZXNzZXMgKi8KLSAgICAgICAgY29uc3QgaW50IHdhbnRfcHJpbnQg PSBjdXJyZW50Lm51bV9mYWlsZWQgIT0gY3VycmVudC5wcmV2X2ZhaWxlZAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHx8IGN1cnJlbnQuc2hvdWxkX2ZhaWwgfHwgY2ZnLnZlcmJvc2UgfHwg Y2ZnLmJlbmNoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgY3VycmVudC5jcHU7Cisg ICAgICAgIC8qIE9taXQgJ09LJyBhZnRlciB0aGUgZmlyc3QgcnVuLCB1bmxlc3MgZmFpbGVkIG9y IHZlcmJvc2UgKi8KKyAgICAgICAgaW50IHdhbnRfcHJpbnQgPSBjdXJyZW50Lm51bV9mYWlsZWQg IT0gY3VycmVudC5wcmV2X2ZhaWxlZCB8fCBjZmcudmVyYm9zZTsKKyAgICAgICAgaWYgKHN0YXRl LnRlc3RfaXRlciA9PSAwKQorICAgICAgICAgICAgd2FudF9wcmludCB8PSBjdXJyZW50LnNob3Vs ZF9mYWlsIHx8IGN1cnJlbnQuY3B1OwogCiAgICAgICAgIGlmICh3YW50X3ByaW50KSB7CiAgICAg ICAgICAgICBwcmludF9jcHVfbmFtZSgpOwogICAgICAgICAgICAgaWYgKG5hbWUpIHsKLSAgICAg ICAgICAgICAgICBwYWRfbGVuZ3RoIC09IGZwcmludGYoc3RkZXJyLCAiIC0gJXMuJXMiLCBjdXJy ZW50LnRlc3RfbmFtZSwgcmVwb3J0X25hbWUpOworICAgICAgICAgICAgICAgIHBhZF9sZW5ndGgg LT0gTE9HKCIgLSAlcy4lcyIsIGN1cnJlbnQudGVzdF9uYW1lLCByZXBvcnRfbmFtZSk7CiAgICAg ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHBhZF9sZW5ndGggLT0gZnByaW50Zihz dGRlcnIsICIgLSAlcyIsIGN1cnJlbnQudGVzdF9uYW1lKTsKKyAgICAgICAgICAgICAgICBwYWRf bGVuZ3RoIC09IExPRygiIC0gJXMiLCBjdXJyZW50LnRlc3RfbmFtZSk7CiAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiUqYyIsIGltYXgocGFkX2xlbmd0aCwgMCkg KyAyLCAnWycpOworICAgICAgICAgICAgTE9HKCIlKmMiLCBpbWF4KHBhZF9sZW5ndGgsIDApICsg MiwgJ1snKTsKIAotICAgICAgICAgICAgaWYgKGN1cnJlbnQubnVtX2ZhaWxlZCA9PSBjdXJyZW50 LnByZXZfZmFpbGVkKSB7Ci0gICAgICAgICAgICAgICAgY2hlY2thc21fZnByaW50ZihzdGRlcnIs IENPTE9SX0dSRUVOLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudC5z aG91bGRfZmFpbCA/ICJFWFBFQ1RFRCIgOiAiT0siKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAo IWN1cnJlbnQuc2hvdWxkX2ZhaWwpCi0gICAgICAgICAgICAgICAgY2hlY2thc21fZnByaW50Zihz dGRlcnIsIENPTE9SX1JFRCwgIkZBSUxFRCIpOworICAgICAgICAgICAgaWYgKGN1cnJlbnQubnVt X2ZhaWxlZCA9PSBjdXJyZW50LnByZXZfZmFpbGVkKQorICAgICAgICAgICAgICAgIExPR19DT0xP UihDT0xPUl9HUkVFTiwgY3VycmVudC5zaG91bGRfZmFpbCA/ICJFWFBFQ1RFRCIgOiAiT0siKTsK KyAgICAgICAgICAgIGVsc2UgaWYgKCFjdXJyZW50LnNob3VsZF9mYWlsKQorICAgICAgICAgICAg ICAgIExPR19DT0xPUihDT0xPUl9SRUQsICJGQUlMRUQiKTsKICAgICAgICAgICAgIGVsc2UKLSAg ICAgICAgICAgICAgICBjaGVja2FzbV9mcHJpbnRmKHN0ZGVyciwgQ09MT1JfUkVELCAiJWQvJWQg RVhQRUNURUQiLCBmYWlscywgbmV3X2NoZWNrZWQpOwotICAgICAgICAgICAgZnByaW50ZihzdGRl cnIsICJdXG4iKTsKKyAgICAgICAgICAgICAgICBMT0dfQ09MT1IoQ09MT1JfUkVELCAiJWQvJWQg RVhQRUNURUQiLCBmYWlscywgbmV3X2NoZWNrZWQpOworICAgICAgICAgICAgTE9HKCJdXG4iKTsK ICAgICAgICAgfQogCiAgICAgICAgIGN1cnJlbnQucHJldl9jaGVja2VkID0gY3VycmVudC5udW1f Y2hlY2tlZDsKQEAgLTExNzAsMTMgKzEyMjAsMTMgQEAgaW50IGNoZWNrYXNtX21haW4oQ2hlY2th c21Db25maWcgKmNvbmZpZywgaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSkKICNpZiBIQVZF X0hUTUxfREFUQQogICAgICAgICAgICAgY29uZmlnLT5mb3JtYXQgPSBDSEVDS0FTTV9GT1JNQVRf SFRNTDsKICNlbHNlCi0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImNoZWNrYXNtOiBidWls dCB3aXRob3V0IEhUTUwgc3VwcG9ydFxuIik7CisgICAgICAgICAgICBMT0coImNoZWNrYXNtOiBi dWlsdCB3aXRob3V0IEhUTUwgc3VwcG9ydFxuIik7CiAgICAgICAgICAgICByZXR1cm4gMTsKICNl bmRpZgogICAgICAgICB9IGVsc2UgaWYgKCFzdHJuY21wKGFyZ3ZbMV0sICItLWR1cmF0aW9uPSIs IDExKSkgewogICAgICAgICAgICAgY29uc3QgY2hhciAqY29uc3QgcyA9IGFyZ3ZbMV0gKyAxMTsK ICAgICAgICAgICAgIGlmICghcGFyc2V1KCZjb25maWctPmJlbmNoX3VzZWMsIHMsIDEwKSkgewot ICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiY2hlY2thc206IGludmFsaWQgZHVyYXRp b24gKCVzKVxuIiwgcyk7CisgICAgICAgICAgICAgICAgTE9HKCJjaGVja2FzbTogaW52YWxpZCBk dXJhdGlvbiAoJXMpXG4iLCBzKTsKICAgICAgICAgICAgICAgICBwcmludF91c2FnZShhcmd2WzBd KTsKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgIH0KQEAgLTExOTgsMTQg KzEyNDgsMTQgQEAgaW50IGNoZWNrYXNtX21haW4oQ2hlY2thc21Db25maWcgKmNvbmZpZywgaW50 IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSkKICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmNvbnN0 IHMgICAgICA9IGFyZ3ZbMV0gKyAxMTsKICAgICAgICAgICAgIGNvbmZpZy0+Y3B1X2FmZmluaXR5 X3NldCA9IDE7CiAgICAgICAgICAgICBpZiAoIXBhcnNldSgmY29uZmlnLT5jcHVfYWZmaW5pdHks IHMsIDE2KSkgewotICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiY2hlY2thc206IGlu dmFsaWQgY3B1IGFmZmluaXR5ICglcylcbiIsIHMpOworICAgICAgICAgICAgICAgIExPRygiY2hl Y2thc206IGludmFsaWQgY3B1IGFmZmluaXR5ICglcylcbiIsIHMpOwogICAgICAgICAgICAgICAg IHByaW50X3VzYWdlKGFyZ3ZbMF0pOwogICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAg ICAgICAgfQogICAgICAgICB9IGVsc2UgaWYgKCFzdHJuY21wKGFyZ3ZbMV0sICItLXJlcGVhdD0i LCA5KSkgewogICAgICAgICAgICAgY29uc3QgY2hhciAqY29uc3QgcyA9IGFyZ3ZbMV0gKyA5Owog ICAgICAgICAgICAgaWYgKCFwYXJzZXUoJmNvbmZpZy0+cmVwZWF0LCBzLCAxMCkpIHsKLSAgICAg ICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImNoZWNrYXNtOiBpbnZhbGlkIG51bWJlciBvZiBy ZXBldGl0aW9ucyAoJXMpXG4iLCBzKTsKKyAgICAgICAgICAgICAgICBMT0coImNoZWNrYXNtOiBp bnZhbGlkIG51bWJlciBvZiByZXBldGl0aW9ucyAoJXMpXG4iLCBzKTsKICAgICAgICAgICAgICAg ICBwcmludF91c2FnZShhcmd2WzBdKTsKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAg ICAgICAgIH0KQEAgLTEyMTQsNyArMTI2NCw3IEBAIGludCBjaGVja2FzbV9tYWluKENoZWNrYXNt Q29uZmlnICpjb25maWcsIGludCBhcmdjLCBjb25zdCBjaGFyICphcmd2W10pCiAgICAgICAgIH0g ZWxzZSB7CiAgICAgICAgICAgICBjb25maWctPnNlZWRfc2V0ID0gMTsKICAgICAgICAgICAgIGlm ICghcGFyc2V1KCZjb25maWctPnNlZWQsIGFyZ3ZbMV0sIDEwKSkgewotICAgICAgICAgICAgICAg IGZwcmludGYoc3RkZXJyLCAiY2hlY2thc206IHVua25vd24gb3B0aW9uICglcylcbiIsIGFyZ3Zb MV0pOworICAgICAgICAgICAgICAgIExPRygiY2hlY2thc206IHVua25vd24gb3B0aW9uICglcylc biIsIGFyZ3ZbMV0pOwogICAgICAgICAgICAgICAgIHByaW50X3VzYWdlKGFyZ3ZbMF0pOwogICAg ICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvc3JjL2lu dGVybmFsLmggYi9zcmMvaW50ZXJuYWwuaAppbmRleCBkZDY5OGNiYzg0Li42MTkyZWRlMjIxIDEw MDY0NAotLS0gYS9zcmMvaW50ZXJuYWwuaAorKysgYi9zcmMvaW50ZXJuYWwuaApAQCAtMTA5LDgg KzEwOSwyNSBAQCBOT1JFVFVSTiB2b2lkIGNoZWNrYXNtX2ZhaWxfYWJvcnQoY29uc3QgY2hhciAq bXNnLCAuLi4pIENIRUNLQVNNX1BSSU5URigxLCAyKTsKIAogLyogQ29sb3JlZCB2YXJpYW50IG9m IGZwcmludGYgZm9yIHRlcm1pbmFscyB0aGF0IHN1cHBvcnQgaXQgKi8KIHZvaWQgY2hlY2thc21f c2V0dXBfZnByaW50Zih2b2lkKTsKLXZvaWQgY2hlY2thc21fZnByaW50ZihGSUxFICpjb25zdCBm LCBjb25zdCBpbnQgY29sb3IsIGNvbnN0IGNoYXIgKmNvbnN0IGZtdCwgLi4uKQotICAgIENIRUNL QVNNX1BSSU5URigzLCA0KTsKK2ludCBjaGVja2FzbV92ZnByaW50ZihGSUxFICpjb25zdCBmLCBp bnQgY29sb3IsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmcpCisgICAgQ0hFQ0tBU01fUFJJ TlRGKDMsIDApOworCitDSEVDS0FTTV9QUklOVEYoMywgNCkKK3N0YXRpYyBpbmxpbmUgaW50IGNo ZWNrYXNtX2ZwcmludGYoRklMRSAqY29uc3QgZiwgaW50IGNvbG9yLCBjb25zdCBjaGFyICpmbXQs IC4uLikKK3sKKyAgICB2YV9saXN0IGFwOworICAgIHZhX3N0YXJ0KGFwLCBmbXQpOworICAgIGlu dCByZXQgPSBjaGVja2FzbV92ZnByaW50ZihmLCBjb2xvciwgZm10LCBhcCk7CisgICAgdmFfZW5k KGFwKTsKKyAgICByZXR1cm4gcmV0OworfQorCisjZGVmaW5lIExPR19DT0xPUiguLi4pIGNoZWNr YXNtX2ZwcmludGYoc3RkZXJyLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUgTE9HKC4uLikgICAgICAg TE9HX0NPTE9SKENPTE9SX0RFRkFVTFQsIF9fVkFfQVJHU19fKQorCisvKiBVcGRhdGUgdGhlIHN0 YXR1c2xpbmUsIHJlcHJpbnRlZCBhdXRvbWF0aWNhbGx5IGFzIG5lZWRlZC4gUGFzcyBOVUxMIG9y IGFuCisgKiBlbXB0eSBzdHJpbmcgKCIiKSB0byBjbGVhciBpdCBlbnRpcmVseS4gTWF4aW11bSAy NTYgY2hhcmFjdGVycyAqLwordm9pZCBjaGVja2FzbV9zdGF0dXNsaW5lKGNvbnN0IGNoYXIgKnN0 YXR1cyk7CiAKIC8qIExpZ2h0LXdlaWdodCBoZWxwZXIgZm9yIHByaW50aW5nIG5lc3RlZCBKU09O IG9iamVjdHMgKi8KIHR5cGVkZWYgc3RydWN0IENoZWNrYXNtSnNvbiB7CmRpZmYgLS1naXQgYS9z cmMvcmlzY3YvY2FsbGNoZWNrLlMgYi9zcmMvcmlzY3YvY2FsbGNoZWNrLlMKaW5kZXggMmZhNmQz YTg3My4uMmZhZDk5OGVlYyAxMDA2NDQKLS0tIGEvc3JjL3Jpc2N2L2NhbGxjaGVjay5TCisrKyBi L3NyYy9yaXNjdi9jYWxsY2hlY2suUwpAQCAtMzEyLDcgKzMxMiw3IEBAIGZ1bmN0aW9uIGNoZWNr ZWRfY2FsbF9pZnYsIGV4cG9ydD0xLCBleHQ9enZlMzJ4CiAuTGNsb2JiZXJfdjoKICAgICAgICAg IyBDbG9iYmVyIHRoZSB2ZWN0b3IgcmVnaXN0ZXJzCiAgICAgICAgIHZzZXR2bGkgdDEsIHplcm8s IGUzMiwgbTgsIHRhLCBtYQotICAgICAgICBsaSAgICAgIHQxLCAtMHhkZWFkYmVlZgorICAgICAg ICBsaSAgICAgIHQxLCAweDBiYWRmMDBkCiAgICAgICAgIHZtdi52LnggdjAsIHQxCiAgICAgICAg IHZtdi52LnggdjgsIHQxCiAgICAgICAgIHZtdi52LnggdjE2LCB0MQpkaWZmIC0tZ2l0IGEvc3Jj L3Jpc2N2L2NwdS5jIGIvc3JjL3Jpc2N2L2NwdS5jCmluZGV4IDkyNDhiYWJlZGQuLjRmMzEyMTA4 NmMgMTAwNjQ0Ci0tLSBhL3NyYy9yaXNjdi9jcHUuYworKysgYi9zcmMvcmlzY3YvY3B1LmMKQEAg LTQ0LDYgKzQ0LDcgQEAKICAgICAjaW5jbHVkZSA8c3lzL2h3cHJvYmUuaD4KICAgI2VsaWYgSEFW RV9BU01fSFdQUk9CRV9ICiAgICAgI2luY2x1ZGUgPGFzbS9od3Byb2JlLmg+CisgICAgI2luY2x1 ZGUgPGFzbS91bmlzdGQuaD4KICAgICAjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KICAgICAjaW5j bHVkZSA8dW5pc3RkLmg+CiAKZGlmZiAtLWdpdCBhL3NyYy91dGlscy5jIGIvc3JjL3V0aWxzLmMK aW5kZXggNzY4ZDMwMjhlZi4uOTZlMzM1MjViZCAxMDA2NDQKLS0tIGEvc3JjL3V0aWxzLmMKKysr IGIvc3JjL3V0aWxzLmMKQEAgLTM2MSwyMiArMzYxLDU3IEBAIERFRl9DSEVDS0FTTV9JTklUX01B U0soOCwgdWludDhfdCkKIERFRl9DSEVDS0FTTV9JTklUX01BU0soMTYsIHVpbnQxNl90KQogCiBz dGF0aWMgaW50IHVzZV9wcmludGZfY29sb3JbMl07CitzdGF0aWMgY2hhciBzdGF0dXNsaW5lWzI1 Nl07CitzdGF0aWMgaW50IHN0YXR1c2xpbmVfdmlzaWJsZTsKIAogLyogUHJpbnQgY29sb3JlZCB0 ZXh0IHRvIHN0ZGVyciBpZiB0aGUgdGVybWluYWwgc3VwcG9ydHMgaXQgKi8KLXZvaWQgY2hlY2th c21fZnByaW50ZihGSUxFICpjb25zdCBmLCBjb25zdCBpbnQgY29sb3IsIGNvbnN0IGNoYXIgKmNv bnN0IGZtdCwgLi4uKQoraW50IGNoZWNrYXNtX3ZmcHJpbnRmKEZJTEUgKmNvbnN0IGYsIGNvbnN0 IGludCBjb2xvciwgY29uc3QgY2hhciAqY29uc3QgZm10LCB2YV9saXN0IGFyZykKIHsKLSAgICB2 YV9saXN0IGFyZzsKLSAgICBpbnQgICAgIHVzZV9jb2xvciA9IHVzZV9wcmludGZfY29sb3JbZiA9 PSBzdGRlcnJdOworICAgIHNpemVfdCBmbXRfbGVuID0gc3RybGVuKGZtdCk7CisgICAgaW50IHVz ZV9jb2xvciA9IHVzZV9wcmludGZfY29sb3JbZiA9PSBzdGRlcnJdOworICAgIGlmICghdXNlX2Nv bG9yIHx8ICFmbXRfbGVuKQorICAgICAgICByZXR1cm4gdmZwcmludGYoZiwgZm10LCBhcmcpOwog Ci0gICAgaWYgKGNvbG9yID49IDAgJiYgdXNlX2NvbG9yKQorICAgIGlmIChmID09IHN0ZGVyciAm JiBzdGF0dXNsaW5lX3Zpc2libGUpIHsKKyAgICAgICAgZnByaW50ZihmLCAiXHJcMDMzW0siKTsg LyogY2xlYXIgbGluZSAqLworICAgICAgICBzdGF0dXNsaW5lX3Zpc2libGUgPSAwOworICAgIH0K KworICAgIGlmIChjb2xvciA+PSAwKQogICAgICAgICBmcHJpbnRmKGYsICJceDFiWzA7JWRtIiwg Y29sb3IpOwogCi0gICAgdmFfc3RhcnQoYXJnLCBmbXQpOwotICAgIHZmcHJpbnRmKGYsIGZtdCwg YXJnKTsKLSAgICB2YV9lbmQoYXJnKTsKKyAgICBpbnQgcmV0ID0gdmZwcmludGYoZiwgZm10LCBh cmcpOwogCi0gICAgaWYgKGNvbG9yID49IDAgJiYgdXNlX2NvbG9yKQorICAgIGlmIChjb2xvciA+ PSAwKQogICAgICAgICBmcHJpbnRmKGYsICJceDFiWzBtIik7CisKKyAgICBpZiAoZiA9PSBzdGRl cnIgJiYgc3RhdHVzbGluZVswXSAmJiBmbXRbZm10X2xlbiAtIDFdID09ICdcbicpIHsKKyAgICAg ICAgZnByaW50ZihmLCAiJXMiLCBzdGF0dXNsaW5lKTsKKyAgICAgICAgc3RhdHVzbGluZV92aXNp YmxlID0gMTsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0OworfQorCit2b2lkIGNoZWNrYXNtX3N0 YXR1c2xpbmUoY29uc3QgY2hhciAqc3RhdHVzKQoreworICAgIGlmICghc3RhdHVzKQorICAgICAg ICBzdGF0dXMgPSAiIjsKKworICAgIGlmICghdXNlX3ByaW50Zl9jb2xvclsxXSB8fCAhc3RyY21w KHN0YXR1c2xpbmUsIHN0YXR1cykpCisgICAgICAgIHJldHVybjsgLyogZG9uJ3QgcmUtcGFpbnQg dW5jaGFuZ2VkIHN0YXR1cyAqLworCisgICAgc25wcmludGYoc3RhdHVzbGluZSwgc2l6ZW9mKHN0 YXR1c2xpbmUpLCAiJXMiLCBzdGF0dXMpOworCisgICAgaWYgKHN0YXR1c2xpbmVfdmlzaWJsZSkg eworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlxyXDAzM1tLIik7CisgICAgICAgIHN0YXR1c2xp bmVfdmlzaWJsZSA9IDA7CisgICAgfQorCisgICAgaWYgKHN0YXR1c2xpbmVbMF0pIHsKKyAgICAg ICAgZnByaW50ZihzdGRlcnIsICIlcyIsIHN0YXR1c2xpbmUpOworICAgICAgICBzdGF0dXNsaW5l X3Zpc2libGUgPSAxOworICAgIH0KIH0KIAogc3RhdGljIENPTEQgaW50IHNob3VsZF91c2VfY29s b3IoRklMRSAqY29uc3QgZikKZGlmZiAtLWdpdCBhL3NyYy94ODYvY3B1LmMgYi9zcmMveDg2L2Nw dS5jCmluZGV4IDYyZmE0YzU1YTAuLmY0MDQyMDQwNzIgMTAwNjQ0Ci0tLSBhL3NyYy94ODYvY3B1 LmMKKysrIGIvc3JjL3g4Ni9jcHUuYwpAQCAtMTY3LDcgKzE2Nyw3IEBAIHN0YXRpYyBDT0xEIGNo ZWNrYXNtX3NpbWRfd2FybXVwX2Z1bmMgZ2V0X3NpbWRfd2FybXVwKHZvaWQpCiAgICAgICAgIHJl dHVybiBzaW1kX3dhcm11cDsKIAogICAgIGNoZWNrYXNtX2NwdV9jcHVpZCgmciwgNywgMCk7Ci0g ICAgaWYgKHIuZWJ4ICYgMHgwMDAwMDAyMCkgLyogQVZYNTEyRiAqLworICAgIGlmIChyLmVieCAm IDB4MDAwMTAwMDApIC8qIEFWWDUxMkYgKi8KICAgICAgICAgc2ltZF93YXJtdXAgPSBjaGVja2Fz bV93YXJtdXBfYXZ4NTEyOwogCiAgICAgcmV0dXJuIHNpbWRfd2FybXVwOwpkaWZmIC0tZ2l0IGEv dGVzdHMvc2VsZnRlc3QuYyBiL3Rlc3RzL3NlbGZ0ZXN0LmMKaW5kZXggN2FjNTJkN2ExYi4uNDcx MTEyOWVkNyAxMDA2NDQKLS0tIGEvdGVzdHMvc2VsZnRlc3QuYworKysgYi90ZXN0cy9zZWxmdGVz dC5jCkBAIC02LDggKzYsOCBAQCBzdGF0aWMgY29uc3QgQ2hlY2thc21DcHVJbmZvIGNwdXNbXSA9 IHsKICNpZiBBUkNIX1g4NgogICAgIHsgIkdlbmVyaWMgeDg2IiwgICAgICJ4ODYiLCAgICAgU0VM RlRFU1RfQ1BVX0ZMQUdfWDg2ICAgICB9LAogICAgIHsgIk1NWCIsICAgICAgICAgICAgICJtbXgi LCAgICAgU0VMRlRFU1RfQ1BVX0ZMQUdfTU1YICAgICB9LAotICAgIHsgIlNTRTIiLCAgICAgICAg ICAgICJzc2UyIiwgICAgU0VMRlRFU1RfQ1BVX0ZMQUdfU1NFMiAgICB9LAotICAgIHsgIkFWWC0y IiwgICAgICAgICAgICJhdngyIiwgICAgU0VMRlRFU1RfQ1BVX0ZMQUdfQVZYMiAgICB9LAorICAg IHsgIlNTRSIsICAgICAgICAgICAgICJzc2UiLCAgICAgU0VMRlRFU1RfQ1BVX0ZMQUdfU1NFICAg ICB9LAorICAgIHsgIkFWWCIsICAgICAgICAgICAgICJhdngiLCAgICAgU0VMRlRFU1RfQ1BVX0ZM QUdfQVZYICAgICB9LAogICAgIHsgIkFWWC01MTIiLCAgICAgICAgICJhdng1MTIiLCAgU0VMRlRF U1RfQ1BVX0ZMQUdfQVZYNTEyICB9LAogI2VuZGlmCiAjaWYgQVJDSF9SSVNDVgpkaWZmIC0tZ2l0 IGEvdGVzdHMvdGVzdHMuaCBiL3Rlc3RzL3Rlc3RzLmgKaW5kZXggZjNmOWMwNDYzNS4uNWYyZDk5 MDgwMiAxMDA2NDQKLS0tIGEvdGVzdHMvdGVzdHMuaAorKysgYi90ZXN0cy90ZXN0cy5oCkBAIC00 MSw4ICs0MSw4IEBAIGVudW0gewogI2lmIEFSQ0hfWDg2CiAgICAgU0VMRlRFU1RfQ1BVX0ZMQUdf WDg2ICAgID0gMSA8PCAxLAogICAgIFNFTEZURVNUX0NQVV9GTEFHX01NWCAgICA9IDEgPDwgMiwK LSAgICBTRUxGVEVTVF9DUFVfRkxBR19TU0UyICAgPSAxIDw8IDMsCi0gICAgU0VMRlRFU1RfQ1BV X0ZMQUdfQVZYMiAgID0gMSA8PCA0LAorICAgIFNFTEZURVNUX0NQVV9GTEFHX1NTRSAgICA9IDEg PDwgMywKKyAgICBTRUxGVEVTVF9DUFVfRkxBR19BVlggICAgPSAxIDw8IDQsCiAgICAgU0VMRlRF U1RfQ1BVX0ZMQUdfQVZYNTEyID0gMSA8PCA1LAogI2VsaWYgQVJDSF9SSVNDVgogICAgIFNFTEZU RVNUX0NQVV9GTEFHX1JWSSAgICA9IDEgPDwgMSwKZGlmZiAtLWdpdCBhL3Rlc3RzL3g4Ni90ZXN0 cy5jIGIvdGVzdHMveDg2L3Rlc3RzLmMKaW5kZXggN2M3Mjc3ZDlkNS4uMzc3ZWM0MjhhMCAxMDA2 NDQKLS0tIGEvdGVzdHMveDg2L3Rlc3RzLmMKKysrIGIvdGVzdHMveDg2L3Rlc3RzLmMKQEAgLTIw LDMxICsyMCwzMCBAQCB1aW50NjRfdCBzZWxmdGVzdF9nZXRfY3B1X2ZsYWdzX3g4Nih2b2lkKQog ICAgIGNoZWNrYXNtX2NwdV9jcHVpZCgmciwgMSwgMCk7CiAgICAgaWYgKHIuZWR4ICYgMHgwMDgw MDAwMCkgLyogTU1YICovCiAgICAgICAgIGZsYWdzIHw9IFNFTEZURVNUX0NQVV9GTEFHX01NWDsK LSAgICBpZiAoci5lZHggJiAweDAyMDAwMDAwKSAvKiBTU0UyICovCi0gICAgICAgIGZsYWdzIHw9 IFNFTEZURVNUX0NQVV9GTEFHX1NTRTI7CisgICAgaWYgKHIuZWR4ICYgMHgwMjAwMDAwMCkgLyog U1NFICovCisgICAgICAgIGZsYWdzIHw9IFNFTEZURVNUX0NQVV9GTEFHX1NTRTsKICAgICBpZiAo fnIuZWN4ICYgMHgxODAwMDAwMCkgLyogT1NYU0FWRS9BVlggKi8KICAgICAgICAgcmV0dXJuIGZs YWdzOwogCiAgICAgY29uc3QgdWludDY0X3QgeGNyMCA9IGNoZWNrYXNtX2NwdV94Z2V0YnYoMCk7 Ci0gICAgaWYgKG1heF9sZWFmIDwgNyB8fCB+eGNyMCAmIDB4NikgLyogWE1NL1lNTSAqLworICAg IGlmICh+eGNyMCAmIDB4NikgLyogWE1NL1lNTSAqLworICAgICAgICByZXR1cm4gZmxhZ3M7CisK KyAgICBmbGFncyB8PSBTRUxGVEVTVF9DUFVfRkxBR19BVlg7CisKKyAgICBpZiAobWF4X2xlYWYg PCA3IHx8IH54Y3IwICYgMHhlMCkgLyogWk1NL09QTUFTSyAqLwogICAgICAgICByZXR1cm4gZmxh Z3M7CiAKICAgICBjaGVja2FzbV9jcHVfY3B1aWQoJnIsIDcsIDApOwotICAgIGlmIChyLmVieCAm IDB4MDAwMDAwMjApIC8qIEFWWDIgKi8KLSAgICAgICAgZmxhZ3MgfD0gU0VMRlRFU1RfQ1BVX0ZM QUdfQVZYMjsKLQotICAgIGlmICh+eGNyMCAmIDB4ZTApIC8qIFpNTS9PUE1BU0sgKi8KLSAgICAg ICAgcmV0dXJuIGZsYWdzOwotCi0gICAgaWYgKHIuZWJ4ICYgMHgwMDAwMDAyMCkgLyogQVZYNTEy RiAqLworICAgIGlmIChyLmVieCAmIDB4MDAwMTAwMDApIC8qIEFWWDUxMkYgKi8KICAgICAgICAg ZmxhZ3MgfD0gU0VMRlRFU1RfQ1BVX0ZMQUdfQVZYNTEyOwogICAgIHJldHVybiBmbGFnczsKIH0K IAogREVGX0NPUFlfRlVOQyhjb3B5X3g4Nik7CiBERUZfQ09QWV9GVU5DKGNvcHlfbW14KTsKLURF Rl9DT1BZX0ZVTkMoY29weV9zc2UyKTsKLURFRl9DT1BZX0ZVTkMoY29weV9hdngyKTsKK0RFRl9D T1BZX0ZVTkMoY29weV9zc2UpOworREVGX0NPUFlfRlVOQyhjb3B5X2F2eCk7CiBERUZfQ09QWV9G VU5DKGNvcHlfYXZ4NTEyKTsKIAogREVGX05PT1BfRlVOQyhjbG9iYmVyX3IwKTsKQEAgLTY5LDcg KzY4LDcgQEAgREVGX05PT1BfRlVOQyhzaWdpbGxfeDg2KTsKIERFRl9OT09QX0ZVTkMoY29ycnVw dF9zdGFja194ODYpOwogCiBERUZfQ09QWV9GVU5DKGNvcHlfbm9lbW1zX21teCk7Ci1ERUZfQ09Q WV9GVU5DKGNvcHlfbm92emVyb3VwcGVyX2F2eDIpOworREVGX0NPUFlfRlVOQyhjb3B5X25vdnpl cm91cHBlcl9hdngpOwogCiBzdGF0aWMgY29weV9mdW5jICpnZXRfY29weV94ODYodm9pZCkKIHsK QEAgLTc3LDEwICs3NiwxMCBAQCBzdGF0aWMgY29weV9mdW5jICpnZXRfY29weV94ODYodm9pZCkK ICNpZiBBUkNIX1g4NgogICAgIGlmIChmbGFncyAmIFNFTEZURVNUX0NQVV9GTEFHX0FWWDUxMikK ICAgICAgICAgcmV0dXJuIHNlbGZ0ZXN0X2NvcHlfYXZ4NTEyOwotICAgIGlmIChmbGFncyAmIFNF TEZURVNUX0NQVV9GTEFHX0FWWDIpCi0gICAgICAgIHJldHVybiBzZWxmdGVzdF9jb3B5X2F2eDI7 Ci0gICAgaWYgKGZsYWdzICYgU0VMRlRFU1RfQ1BVX0ZMQUdfU1NFMikKLSAgICAgICAgcmV0dXJu IHNlbGZ0ZXN0X2NvcHlfc3NlMjsKKyAgICBpZiAoZmxhZ3MgJiBTRUxGVEVTVF9DUFVfRkxBR19B VlgpCisgICAgICAgIHJldHVybiBzZWxmdGVzdF9jb3B5X2F2eDsKKyAgICBpZiAoZmxhZ3MgJiBT RUxGVEVTVF9DUFVfRkxBR19TU0UpCisgICAgICAgIHJldHVybiBzZWxmdGVzdF9jb3B5X3NzZTsK ICAgICBpZiAoZmxhZ3MgJiBTRUxGVEVTVF9DUFVfRkxBR19NTVgpCiAgICAgICAgIHJldHVybiBz ZWxmdGVzdF9jb3B5X21teDsKICAgICBpZiAoZmxhZ3MgJiBTRUxGVEVTVF9DUFVfRkxBR19YODYp CkBAIC0xMzQsNyArMTMzLDcgQEAgc3RhdGljIG5vb3BfZnVuYyAqZ2V0X2Nsb2JiZXIoaW50IHJl ZykKIERFRl9OT09QX0dFVFRFUihTRUxGVEVTVF9DUFVfRkxBR19YODYsIHNpZ2lsbF94ODYpCiBE RUZfTk9PUF9HRVRURVIoU0VMRlRFU1RfQ1BVX0ZMQUdfWDg2LCBjb3JydXB0X3N0YWNrX3g4NikK IERFRl9DT1BZX0dFVFRFUihTRUxGVEVTVF9DUFVfRkxBR19NTVgsIGNvcHlfbm9lbW1zX21teCkK LURFRl9DT1BZX0dFVFRFUihTRUxGVEVTVF9DUFVfRkxBR19BVlgyLCBjb3B5X25vdnplcm91cHBl cl9hdngyKQorREVGX0NPUFlfR0VUVEVSKFNFTEZURVNUX0NQVV9GTEFHX0FWWCwgY29weV9ub3Z6 ZXJvdXBwZXJfYXZ4KQogCiB1aW50cHRyX3Qgc2VsZnRlc3RfZ2V0X3N0YWNrX3BvaW50ZXJfeDg2 KGludCB1bnVzZWQpOwogCkBAIC0yMTQsNyArMjEzLDcgQEAgdm9pZCBzZWxmdGVzdF9jaGVja194 ODYodm9pZCkKICAgICBjaGVja19jbG9iYmVyKE5VTV9TQUZFLCBOVU1fUkVHUyk7CiAKICAgICBp ZiAoY2hlY2thc21fZ2V0X2NoZWNrX3Z6ZXJvdXBwZXIoKSkKLSAgICAgICAgc2VsZnRlc3RfdGVz dF9jb3B5KGdldF9jb3B5X25vdnplcm91cHBlcl9hdngyKCksICJub3Z6ZXJvdXBwZXIiLCAzMik7 CisgICAgICAgIHNlbGZ0ZXN0X3Rlc3RfY29weShnZXRfY29weV9ub3Z6ZXJvdXBwZXJfYXZ4KCks ICJub3Z6ZXJvdXBwZXIiLCAzMik7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdGVzdHMveDg2 L3Rlc3RzX2FzbS5hc20gYi90ZXN0cy94ODYvdGVzdHNfYXNtLmFzbQppbmRleCAxYWY5ZTEyZGFl Li5hMmVlZmY0N2VlIDEwMDY0NAotLS0gYS90ZXN0cy94ODYvdGVzdHNfYXNtLmFzbQorKysgYi90 ZXN0cy94ODYvdGVzdHNfYXNtLmFzbQpAQCAtOTksMTUgKzk5LDE1IEBAIGNvcHlfbW0gX25vZW1t cwogY2dsb2JhbCBub2VtbXMsIDMsIDMsIDAsIGRzdCwgc3JjLCBzaXplCiAgICAgUkVUCiAKLTsg U1NFMiBmdW5jdGlvbnMKLUlOSVRfWE1NIHNzZTIKKzsgU1NFIGZ1bmN0aW9ucworSU5JVF9YTU0g c3NlCiBjb3B5X21tCiAKLTsgQVZYMiBmdW5jdGlvbnMKLUlOSVRfWU1NIGF2eDIKKzsgQVZYIGZ1 bmN0aW9ucworSU5JVF9ZTU0gYXZ4CiBjb3B5X21tCiBjb3B5X21tIF9ub3Z6ZXJvdXBwZXIKIAog OyBBVlg1MTIgZnVuY3Rpb25zCi1JTklUX1lNTSBhdng1MTIKK0lOSVRfWk1NIGF2eDUxMgogY29w eV9tbQotLSAKMi41Mi4wCgoKRnJvbSBlZDA3MmNkMDAyZmE0MTYzNmI1NWJkZGE4YWViMWFkNTdl ZWQ1ODY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJoZWluaGFyZHQg PGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogVHVlLCAyOCBKdWwgMjAyNiAw MTo0MDoxMiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMi85XSB0ZXN0cy9jaGVja2FzbS9hdl90eDog Rml4IHNlZ2ZhdWx0IHdoZW4gdXNpbmcgLS1yZXBlYXQKClRoZSBUWCB0ZXN0cyByZXF1aXJlIGEg Y29udGV4dCB0aGF0IGlzIGluaXRpYWxpemVkCmZvciBhIHNwZWNpZmljIHNldCBvZiBDUFUgZmxh Z3MuIFNvIGluIG9yZGVyIHRvIGhhdmUKYSBjb250ZXh0IGZvciB0aGUgcmVmZXJlbmNlIGZ1bmN0 aW9uIHRvIHVzZSwgdGhlIGxhc3QKY29udGV4dCBpcyBzdG9yZWQgKGluIHN0YXRpYyBzdG9yYWdl KS4gVGhpcyB3b3JrcyB3ZWxsCmluIG5vcm1hbCB1c2FnZSwgYnV0IGl0IGRvZXMgd29yayB0aGUg LS1yZXBlYXQgZmVhdHVyZQp0aGF0IGhhcyBiZWVuIGFkZGVkIHRvIGNoZWNrYXNtIGJ5IHRoZSBz d2l0Y2ggdG8gbGliY2hlY2thc206CldoZW4gdGhlIEMgZnVuY3Rpb25zIG91Z2h0IHRvIGJlIHRl c3RlZCBhIHNlY29uZCB0aW1lLAp0aGVyZSBpcyBhIG1pc21hdGNoIGJldHdlZW4gdGhlIG5ldyBm dW5jdGlvbiBwb2ludGVyCih3aGljaCBpcyB0aGUgQyB2ZXJzaW9uKSBhbmQgdGhlIHJlZmVyZW5j ZSBjb250ZXh0Cih3aGljaCBpcyBpbml0aWFsaXplZCB0byBvcHRpbWl6ZWQgQ1BVIGZsYWdzOyB1 cCB1bnRpbCBub3csCnRoZXJlIHdhcyBubyBzdG9yZWQgY29udGV4dCB3aGVuIHRlc3RpbmcgdGhl IEMgdmVyc2lvbnMpLApsZWFkaW5nIHRvIHNlZ2ZhdWx0cy4KCkZpeCB0aGlzIGJ5IGFkZGluZyBh biB1bmluaXQgY2FsbGJhY2sgZm9yIHRoZSBUWCB0ZXN0LApyZXBsYWNpbmcgdGhlIGF0ZXhpdCBo YW5kbGVyLgoKU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWlu aGFyZHRAb3V0bG9vay5jb20+Ci0tLQogdGVzdHMvY2hlY2thc20vYXZfdHguYyAgICB8IDggKy0t LS0tLS0KIHRlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmMgfCAyICstCiB0ZXN0cy9jaGVja2FzbS9j aGVja2FzbS5oIHwgMiArKwogMyBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDggZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2thc20vYXZfdHguYyBiL3Rlc3RzL2No ZWNrYXNtL2F2X3R4LmMKaW5kZXggMmQ3YjRlNjYyZC4uM2JjNjZlZGYyNSAxMDA2NDQKLS0tIGEv dGVzdHMvY2hlY2thc20vYXZfdHguYworKysgYi90ZXN0cy9jaGVja2FzbS9hdl90eC5jCkBAIC00 NSw5ICs0NSw4IEBAIHN0YXRpYyBjb25zdCBpbnQgY2hlY2tfbGVuc1tdID0gewogfTsKIAogc3Rh dGljIEFWVFhDb250ZXh0ICp0eF9yZWZzW0FWX1RYX05CXVsyIC8qIERpcmVjdGlvbiAqL11bRkZf QVJSQVlfRUxFTVMoY2hlY2tfbGVucyldID0geyAwIH07Ci1zdGF0aWMgaW50IGluaXQgPSAwOwog Ci1zdGF0aWMgdm9pZCBmcmVlX3R4X3JlZnModm9pZCkKK3ZvaWQgY2hlY2thc21fdW5pbml0X3R4 KHZvaWQpCiB7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBGRl9BUlJBWV9FTEVNUyh0eF9yZWZz KTsgaSsrKQogICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IEZGX0FSUkFZX0VMRU1TKCp0eF9y ZWZzKTsgaisrKQpAQCAtMTIxLDkgKzEyMCw0IEBAIHZvaWQgY2hlY2thc21fY2hlY2tfYXZfdHgo dm9pZCkKICAgICBhdl9mcmVlKGluKTsKICAgICBhdl9mcmVlKG91dF9yZWYpOwogICAgIGF2X2Zy ZWUob3V0X25ldyk7Ci0KLSAgICBpZiAoIWluaXQpIHsKLSAgICAgICAgaW5pdCA9IDE7Ci0gICAg ICAgIGF0ZXhpdChmcmVlX3R4X3JlZnMpOwotICAgIH0KIH0KZGlmZiAtLWdpdCBhL3Rlc3RzL2No ZWNrYXNtL2NoZWNrYXNtLmMgYi90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5jCmluZGV4IGE4Y2Fk NTlkNGMuLmQzOTRkM2M2MWEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmMK KysrIGIvdGVzdHMvY2hlY2thc20vY2hlY2thc20uYwpAQCAtMzA3LDcgKzMwNyw3IEBAIHN0YXRp YyBjb25zdCBDaGVja2FzbVRlc3QgdGVzdHNbXSA9IHsKICNpZiBDT05GSUdfUElYRUxVVElMUwog ICAgICAgICB7ICJwaXhlbHV0aWxzIixjaGVja2FzbV9jaGVja19waXhlbHV0aWxzIH0sCiAjZW5k aWYKLSAgICAgICAgeyAiYXZfdHgiLCAgICAgY2hlY2thc21fY2hlY2tfYXZfdHggfSwKKyAgICAg ICAgeyAiYXZfdHgiLCAgICAgY2hlY2thc21fY2hlY2tfYXZfdHgsIC51bmluaXQgPSBjaGVja2Fz bV91bmluaXRfdHggfSwKICNlbmRpZgogICAgIHsgTlVMTCB9CiAgICAgLyogTk9URTogV2hlbiBh ZGRpbmcgYSBuZXcgdGVzdCB0byB0aGlzIGxpc3QgaGVyZSwgaXQgYWxzbyBuZWVkcyB0byBiZQpk aWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2thc20vY2hlY2thc20uaCBiL3Rlc3RzL2NoZWNrYXNtL2No ZWNrYXNtLmgKaW5kZXggNzA5ODdiNTJmMS4uM2UyNjZjMTYyNiAxMDA2NDQKLS0tIGEvdGVzdHMv Y2hlY2thc20vY2hlY2thc20uaAorKysgYi90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5oCkBAIC0x MzMsNiArMTMzLDggQEAgdm9pZCBjaGVja2FzbV9jaGVja192dmNfYWxmKHZvaWQpOwogdm9pZCBj aGVja2FzbV9jaGVja192dmNfbWModm9pZCk7CiB2b2lkIGNoZWNrYXNtX2NoZWNrX3Z2Y19zYW8o dm9pZCk7CiAKK3ZvaWQgY2hlY2thc21fdW5pbml0X3R4KHZvaWQpOworCiAjZGVmaW5lIHJuZCBj aGVja2FzbV9yYW5kX3VpbnQzMgogI2RlZmluZSBkZWNsYXJlX2Z1bmNfZmxvYXQgZGVjbGFyZV9m dW5jCiAjZGVmaW5lIGJlbmNoKC4uLikgY2hlY2thc21fYmVuY2goX19WQV9BUkdTX18pCi0tIAoy LjUyLjAKCgpGcm9tIGFiODNkNmU3Yjk0ZmVjMTBhNWIyNWZkNmIxMWJiY2QyZTFjZTExMWUgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5y aGVpbmhhcmR0QG91dGxvb2suY29tPgpEYXRlOiBUdWUsIDI4IEp1bCAyMDI2IDEyOjEyOjQ3ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAzLzldIHRlc3RzL2NoZWNrYXNtL2NyYzogUmVzZXQgc3RhdGlj IHN0dWZmIG9uIHJlcGVhdAoKSW4gb3JkZXIgdG8gdGVzdCByYW5kb20gZW5kaWFubmVzcyBhbmQg cG9seW5vbWlhbCBjb21iaW5hdGlvbnMsCnRoZSBwYXJhbWV0ZXJzIChlbmRpYW5uZXNzLCBuYiBv ZiBiaXRzLCBwb2x5bm9taWFsKSBoYXZlIHRvIGJlCnRoZSBzYW1lIGZvciB0aGUgb3B0aW1pemVk IGFuZCB0aGUgcmVmZXJlbmNlIHRhYmxlczsgdGhlcmVmb3JlCnNhaWQgcGFyYW1ldGVycyBhcmUg a2VwdCAoaW4gc3RhdGljIHN0b3JhZ2UpIGFuZCB1cCB1bnRpbCBub3cKaW5pdGlhbGl6ZWQgZHVy aW5nIHRoZSBmaXJzdCBydW4uCgpUaGlzIGhhcyB0aGUgZG93bnNpZGUgdGhhdCB3aXRoIC0tcmVw ZWF0IG9uZSBvbmx5IGV2ZXIgdGVzdHMKb25lIHJhbmRvbSBwb2x5bm9taWFsLiBGaXggdGhpcyBi eSBpbml0aWFsaXppbmcgdGhlIHBhcmFtZXRlcnMKaW4gYW4gaW5pdCBjYWxsYmFjay4gQWxzbyBp bml0IHRoZSBzaXplcyBhbmQgb2Zmc2V0cyB0aGVyZQoodGhleSB3ZXJlIGFsc28ga2VwdCBmb3Ig YmVuY2htYXJrIHN0YWJpbGl0eSkuCgpBbHNvIGZyZWUgdGhlIHByZXZpb3VzbHkgYWxsb2NhdGVk IGN1c3RvbSB0YWJsZXMgaW4gYW4gdW5pbml0CmNhbGxiYWNrIHRvIGF2b2lkIHVzaW5nIHVubmVj ZXNzYXJpbHkgbGFyZ2UgYW1vdW50cyBvZiBtZW1vcnk7Cml0IGFsc28gbWFrZXMgVmFsZ3JpbmQg bm8gbG9uZ2VyIHJlcG9ydCB0aGVtIGFzICJzdGlsbCByZWFjaGFibGUiLgoKU2lnbmVkLW9mZi1i eTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0t LQogdGVzdHMvY2hlY2thc20vY2hlY2thc20uYyB8ICAyICstCiB0ZXN0cy9jaGVja2FzbS9jaGVj a2FzbS5oIHwgIDMgKysKIHRlc3RzL2NoZWNrYXNtL2NyYy5jICAgICAgfCA2NSArKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNDQgaW5zZXJ0 aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2thc20vY2hl Y2thc20uYyBiL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmMKaW5kZXggZDM5NGQzYzYxYS4uYjlj ZmMwMjdlNCAxMDA2NDQKLS0tIGEvdGVzdHMvY2hlY2thc20vY2hlY2thc20uYworKysgYi90ZXN0 cy9jaGVja2FzbS9jaGVja2FzbS5jCkBAIC0zMDAsNyArMzAwLDcgQEAgc3RhdGljIGNvbnN0IENo ZWNrYXNtVGVzdCB0ZXN0c1tdID0gewogI2VuZGlmCiAjaWYgQ09ORklHX0FWVVRJTAogICAgICAg ICB7ICJhZXMiLCAgICAgICBjaGVja2FzbV9jaGVja19hZXMgfSwKLSAgICAgICAgeyAiY3JjIiwg ICAgICAgY2hlY2thc21fY2hlY2tfY3JjIH0sCisgICAgICAgIHsgImNyYyIsICAgICAgIGNoZWNr YXNtX2NoZWNrX2NyYywgLmluaXQgPSBjaGVja2FzbV9pbml0X2NyYywgLnVuaW5pdCA9IGNoZWNr YXNtX3VuaW5pdF9jcmMgfSwKICAgICAgICAgeyAiZml4ZWRfZHNwIiwgY2hlY2thc21fY2hlY2tf Zml4ZWRfZHNwIH0sCiAgICAgICAgIHsgImZsb2F0X2RzcCIsIGNoZWNrYXNtX2NoZWNrX2Zsb2F0 X2RzcCB9LAogICAgICAgICB7ICJsbHMiLCAgICAgICBjaGVja2FzbV9jaGVja19sbHMgfSwKZGlm ZiAtLWdpdCBhL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmggYi90ZXN0cy9jaGVja2FzbS9jaGVj a2FzbS5oCmluZGV4IDNlMjY2YzE2MjYuLjhjYzBlYjcyZjIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2No ZWNrYXNtL2NoZWNrYXNtLmgKKysrIGIvdGVzdHMvY2hlY2thc20vY2hlY2thc20uaApAQCAtMTMz LDYgKzEzMyw5IEBAIHZvaWQgY2hlY2thc21fY2hlY2tfdnZjX2FsZih2b2lkKTsKIHZvaWQgY2hl Y2thc21fY2hlY2tfdnZjX21jKHZvaWQpOwogdm9pZCBjaGVja2FzbV9jaGVja192dmNfc2FvKHZv aWQpOwogCit2b2lkIGNoZWNrYXNtX2luaXRfY3JjKHZvaWQpOworCit2b2lkIGNoZWNrYXNtX3Vu aW5pdF9jcmModm9pZCk7CiB2b2lkIGNoZWNrYXNtX3VuaW5pdF90eCh2b2lkKTsKIAogI2RlZmlu ZSBybmQgY2hlY2thc21fcmFuZF91aW50MzIKZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNrYXNtL2Ny Yy5jIGIvdGVzdHMvY2hlY2thc20vY3JjLmMKaW5kZXggZDZmYzljMjUyNi4uMDcwZjhhYTZkNCAx MDA2NDQKLS0tIGEvdGVzdHMvY2hlY2thc20vY3JjLmMKKysrIGIvdGVzdHMvY2hlY2thc20vY3Jj LmMKQEAgLTMzLDYgKzMzLDQxIEBACiAjaW5jbHVkZSAibGliYXZ1dGlsL21hY3Jvcy5oIgogI2lu Y2x1ZGUgImxpYmF2dXRpbC9tZW1faW50ZXJuYWwuaCIKIAorZW51bSB7CisgICAgQlVGX1NJWkUg PSAxNjM4NCwKK307CisKK3R5cGVkZWYgc3RydWN0IEN1c3RvbVRlc3QgeworICAgIHN0cnVjdCBD dXN0b21UZXN0ICpwcmV2OworICAgIEFWQ1JDIGN0eFsxMDI0XTsKK30gQ3VzdG9tVGVzdDsKKwor c3RhdGljIEN1c3RvbVRlc3QgKmN0eF9saXN0ID0gTlVMTDsKK3N0YXRpYyBzaXplX3Qgb2Zmc2V0 c1tBVl9DUkNfTUFYICsgMV07CitzdGF0aWMgc2l6ZV90IHNpemVzW0FWX0NSQ19NQVggKyAxXTsK K3N0YXRpYyB1aW50MzJfdCBwb2x5Oworc3RhdGljIGludCBsZSwgYml0czsKKwordm9pZCBjaGVj a2FzbV9pbml0X2NyYyh2b2lkKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgRkZfQVJS QVlfRUxFTVMob2Zmc2V0cyk7ICsraSkgeworICAgICAgICBvZmZzZXRzW2ldID0gcm5kKCkgJiAz MTsKKyAgICAgICAgc2l6ZXNbaV0gICA9IHJuZCgpICUgKEJVRl9TSVpFIC0gMSAtIG9mZnNldHNb aV0pOworICAgIH0KKyAgICBsZSAgID0gcm5kKCkgJiAxOworICAgIGJpdHMgPSA4ICsgcm5kKCkg JSAyNTsgLy8gYXZfY3JjX2luaXQoKSBhY2NlcHRzIGJldHdlZW4gOCBhbmQgMzIgYml0cworICAg IHBvbHkgPSBybmQoKSA+PiAoMzIgLSBiaXRzKTsKK30KKwordm9pZCBjaGVja2FzbV91bmluaXRf Y3JjKHZvaWQpCit7CisgICAgZm9yIChDdXN0b21UZXN0ICpjdXIgPSBjdHhfbGlzdDsgY3VyOykg eworICAgICAgICBDdXN0b21UZXN0ICpwcmV2ID0gY3VyLT5wcmV2OworICAgICAgICBhdl9mcmVl KGN1cik7CisgICAgICAgIGN1ciA9IHByZXY7CisgICAgfQorICAgIGN0eF9saXN0ID0gTlVMTDsK K30KIAogc3RhdGljIHZvaWQgY2hlY2tfY3JjKGNvbnN0IEFWQ1JDICp0YWJsZV9uZXcsIGNvbnN0 IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGlkeCkKIHsKQEAgLTQzLDE4ICs3OCw5IEBAIHN0YXRpYyB2 b2lkIGNoZWNrX2NyYyhjb25zdCBBVkNSQyAqdGFibGVfbmV3LCBjb25zdCBjaGFyICpuYW1lLCB1 bnNpZ25lZCBpZHgpCiAgICAgaWYgKCF0YWJsZV9yZWYpCiAgICAgICAgIHJldHVybjsKIAotICAg IERFQ0xBUkVfQUxJR05FRCg0LCB1aW50OF90LCBidWYpWzE2Mzg0XTsKLSAgICBzdGF0aWMgc2l6 ZV90IG9mZnNldHNbQVZfQ1JDX01BWCArIDFdOwotICAgIHN0YXRpYyBzaXplX3Qgc2l6ZXNbQVZf Q1JDX01BWCArIDFdOwotICAgIHN0YXRpYyB1bnNpZ25lZCBzaXplc19pbml0aWFsaXplZCA9IDA7 CisgICAgREVDTEFSRV9BTElHTkVEKDQsIHVpbnQ4X3QsIGJ1ZilbQlVGX1NJWkVdOwogICAgIHVp bnQzMl90IHByZXZfY3JjID0gcm5kKCk7CiAKLSAgICBpZiAoIShzaXplc19pbml0aWFsaXplZCAm ICgxIDw8IGlkeCkpKSB7Ci0gICAgICAgIHNpemVzX2luaXRpYWxpemVkIHw9IDEgPDwgaWR4Owot ICAgICAgICBvZmZzZXRzW2lkeF0gPSBybmQoKSAmIDMxOwotICAgICAgICBzaXplc1tpZHhdID0g cm5kKCkgJSAoc2l6ZW9mKGJ1ZikgLSAxIC0gb2Zmc2V0c1tpZHhdKTsKLSAgICB9Ci0KICAgICBz aXplX3Qgc2l6ZSA9IHNpemVzW2lkeF07CiAgICAgc2l6ZV90IG9mZnNldCA9IG9mZnNldHNbaWR4 XTsKIApAQCAtODMsMzAgKzEwOSwxOSBAQCB2b2lkIGNoZWNrYXNtX2NoZWNrX2NyYyh2b2lkKQog ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBBVl9DUkNfTUFYOyArK2kpCiAgICAgICAgIGNo ZWNrX2NyYyhhdl9jcmNfZ2V0X3RhYmxlKGkpLCB0ZXN0c1tpXSwgaSk7CiAKLSAgICBzdGF0aWMg c3RydWN0IEN1c3RvbVRlc3QgewotICAgICAgICBzdHJ1Y3QgQ3VzdG9tVGVzdCAqcHJldjsKLSAg ICAgICAgQVZDUkMgY3R4WzEwMjRdOwotICAgIH0gKmN0eCA9IE5VTEw7CiAgICAgc3RydWN0IEN1 c3RvbVRlc3QgKm5ldyA9IGF2X21hbGxvY3ooc2l6ZW9mKCpuZXcpKTsKLSAgICBzdGF0aWMgaW50 IGxlLCBiaXRzOwotICAgIHN0YXRpYyB1aW50MzJfdCBwb2x5OwogCiAgICAgaWYgKCFuZXcpCiAg ICAgICAgIGZhaWwoKTsKIAotICAgIGlmICghY3R4KSB7Ci0gICAgICAgIGxlICAgPSBybmQoKSAm IDE7Ci0gICAgICAgIGJpdHMgPSA4ICsgcm5kKCkgJSAyNTsgLy8gYXZfY3JjX2luaXQoKSBhY2Nl cHRzIGJldHdlZW4gOCBhbmQgMzIgYml0cwotICAgICAgICBwb2x5ID0gcm5kKCkgPj4gKDMyIC0g Yml0cyk7Ci0gICAgfQogICAgIGF2X2Fzc2VydDAoYXZfY3JjX2luaXQobmV3LT5jdHgsIGxlLCBi aXRzLCBwb2x5LCBzaXplb2YobmV3LT5jdHgpKSA+PSAwKTsKLSAgICBpZiAoY3R4ICYmICFtZW1j bXAoY3R4LT5jdHgsIG5ldy0+Y3R4LCBzaXplb2YobmV3LT5jdHgpKSkgeworICAgIGlmIChjdHhf bGlzdCAmJiAhbWVtY21wKGN0eF9saXN0LT5jdHgsIG5ldy0+Y3R4LCBzaXplb2YobmV3LT5jdHgp KSkgewogICAgICAgICBhdl9mcmVlKG5ldyk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbmV3LT5w cmV2ID0gY3R4OwotICAgICAgICBjdHggPSBuZXc7CisgICAgICAgIG5ldy0+cHJldiA9IGN0eF9s aXN0OworICAgICAgICBjdHhfbGlzdCA9IG5ldzsKICAgICB9CiAKLSAgICBjaGVja19jcmMoY3R4 LT5jdHgsICJjdXN0b21fcG9seW5vbWlhbCIsIEFWX0NSQ19NQVgpOworICAgIGNoZWNrX2NyYyhj dHhfbGlzdC0+Y3R4LCAiY3VzdG9tX3BvbHlub21pYWwiLCBBVl9DUkNfTUFYKTsKICAgICByZXBv cnQoImNyYyIpOwogfQotLSAKMi41Mi4wCgoKRnJvbSA4OGU2ZDg4ODUyOWU3NjJkYmRjYmE2NGQz ZjM3MGU1M2Q5YjVlMzE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZWFzIFJo ZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KRGF0ZTogVHVlLCAyOCBK dWwgMjAyNiAxMjo0ODowMCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNC85XSB0ZXN0cy9jaGVja2Fz bS9zYmNkc3A6IFNldCBuYiBvZiBibG9ja3MgdG8gdGVzdCBpbiBpbml0CgpJdCBtZWFucyB0aGF0 IG9uZSBkb2VzIG5vdCBvbmx5IHRlc3Qgb25lIG51bWJlciBvZiBibG9ja3MKd2hlbiB1c2luZyAt LXJlcGVhdC4KClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVp bmhhcmR0QG91dGxvb2suY29tPgotLS0KIHRlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmMgfCAgMiAr LQogdGVzdHMvY2hlY2thc20vY2hlY2thc20uaCB8ICAxICsKIHRlc3RzL2NoZWNrYXNtL3NiY2Rz cC5jICAgfCAxMCArKysrKysrLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwg NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5jIGIv dGVzdHMvY2hlY2thc20vY2hlY2thc20uYwppbmRleCBiOWNmYzAyN2U0Li42NmJjZTIzNzY0IDEw MDY0NAotLS0gYS90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5jCisrKyBiL3Rlc3RzL2NoZWNrYXNt L2NoZWNrYXNtLmMKQEAgLTE5MSw3ICsxOTEsNyBAQCBzdGF0aWMgY29uc3QgQ2hlY2thc21UZXN0 IHRlc3RzW10gPSB7CiAgICAgICAgIHsgInJ2NDBkc3AiLCBjaGVja2FzbV9jaGVja19ydjQwZHNw IH0sCiAgICAgI2VuZGlmCiAgICAgI2lmIENPTkZJR19TQkNfRU5DT0RFUgotICAgICAgICB7ICJz YmNkc3AiLCBjaGVja2FzbV9jaGVja19zYmNkc3AgfSwKKyAgICAgICAgeyAic2JjZHNwIiwgY2hl Y2thc21fY2hlY2tfc2JjZHNwLCAuaW5pdCA9IGNoZWNrYXNtX2luaXRfc2JjIH0sCiAgICAgI2Vu ZGlmCiAgICAgI2lmIENPTkZJR19TTk9XX0RFQ09ERVIKICAgICAgICAgeyAic25vd2RzcCIsIGNo ZWNrYXNtX2NoZWNrX3Nub3dkc3AgfSwKZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNrYXNtL2NoZWNr YXNtLmggYi90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5oCmluZGV4IDhjYzBlYjcyZjIuLjQ0OWVj YjE4OGMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmgKKysrIGIvdGVzdHMv Y2hlY2thc20vY2hlY2thc20uaApAQCAtMTM0LDYgKzEzNCw3IEBAIHZvaWQgY2hlY2thc21fY2hl Y2tfdnZjX21jKHZvaWQpOwogdm9pZCBjaGVja2FzbV9jaGVja192dmNfc2FvKHZvaWQpOwogCiB2 b2lkIGNoZWNrYXNtX2luaXRfY3JjKHZvaWQpOwordm9pZCBjaGVja2FzbV9pbml0X3NiYyh2b2lk KTsKIAogdm9pZCBjaGVja2FzbV91bmluaXRfY3JjKHZvaWQpOwogdm9pZCBjaGVja2FzbV91bmlu aXRfdHgodm9pZCk7CmRpZmYgLS1naXQgYS90ZXN0cy9jaGVja2FzbS9zYmNkc3AuYyBiL3Rlc3Rz L2NoZWNrYXNtL3NiY2RzcC5jCmluZGV4IDgwMmViNDMwZWQuLmI3NzI2MDViMTYgMTAwNjQ0Ci0t LSBhL3Rlc3RzL2NoZWNrYXNtL3NiY2RzcC5jCisrKyBiL3Rlc3RzL2NoZWNrYXNtL3NiY2RzcC5j CkBAIC0zNSw2ICszNSwxMyBAQCBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKICAgICAgICAgYnVmW2tdID0gcm5kKCk7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAogfSB3aGlsZSAoMCkKIAorc3RhdGljIGludCBibG9ja3M7CisKK3Zv aWQgY2hlY2thc21faW5pdF9zYmModm9pZCkKK3sKKyAgICBibG9ja3MgPSAoKGNvbnN0IGludFtd KXs0LCA4LCAxMiwgMTUsIDE2fSlbcm5kKCkgJSA1XTsKK30KKwogc3RhdGljIHZvaWQgY2hlY2tf c2JjX2FuYWx5emUoU0JDRFNQQ29udGV4dCAqc2JjZHNwKQogewogICAgIERFQ0xBUkVfQUxJR05F RChTQkNfQUxJR04sIGludDE2X3QsIGluKVsxMCAqIFNCQ19NQVhfU1VCQkFORFNdOwpAQCAtNzks OSArODYsNiBAQCBzdGF0aWMgdm9pZCBjaGVja19zYmNfY2FsY19zY2FsZWZhY3RvcnMoY29uc3Qg U0JDRFNQQ29udGV4dCAqY29uc3Qgc2JjZHNwKQogICAgICAgICAgICAgICAgICAgICAgICB1aW50 MzJfdCBzY2FsZV9mYWN0b3JbMl1bOF0sCiAgICAgICAgICAgICAgICAgICAgICAgIGludCBibG9j a3MsIGludCBjaGFubmVscywgaW50IHN1YmJhbmRzKTsKIAotICAgIHN0YXRpYyBpbnQgYmxvY2tz ID0gMDsKLSAgICBpZiAoIWJsb2NrcykKLSAgICAgICAgYmxvY2tzID0gKChjb25zdCBpbnRbXSl7 NCwgOCwgMTIsIDE1LCAxNn0pW3JuZCgpICUgNV07CiAgICAgaW50IGluaXRlZCA9IDA7CiAKICAg ICBmb3IgKGludCBjaCA9IDE7IGNoIDw9IDI7ICsrY2gpIHsKLS0gCjIuNTIuMAoKCkZyb20gOWMw MTRmMzBhMGY4ZWM2MmEyNGRjNDIyYzlhYTQ2NjQ2NzU2YTI3ZiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9v ay5jb20+CkRhdGU6IFR1ZSwgMjggSnVsIDIwMjYgMTI6NTc6MDcgKzAyMDAKU3ViamVjdDogW1BB VENIIDUvOV0gdGVzdHMvY2hlY2thc20vaHVmZnl1dmVuY2RzcDogU2V0IHdpZHRoIGluIGluaXQK Ckl0IG1lYW5zIHRoYXQgb25lIG5vdyB0ZXN0cyBtdWx0aXBsZSB3aWR0aCB2YWx1ZXMgd2hlbiB1 c2luZwotLXJlcGVhdC4KClNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVh cy5yaGVpbmhhcmR0QG91dGxvb2suY29tPgotLS0KIHRlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmMg ICAgICB8ICAyICstCiB0ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5oICAgICAgfCAgMSArCiB0ZXN0 cy9jaGVja2FzbS9odWZmeXV2ZW5jZHNwLmMgfCAxNSArKysrKysrKy0tLS0tLS0KIDMgZmlsZXMg Y2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90 ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5jIGIvdGVzdHMvY2hlY2thc20vY2hlY2thc20uYwppbmRl eCA2NmJjZTIzNzY0Li45YTE1NmIzYzIzIDEwMDY0NAotLS0gYS90ZXN0cy9jaGVja2FzbS9jaGVj a2FzbS5jCisrKyBiL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmMKQEAgLTE0MCw3ICsxNDAsNyBA QCBzdGF0aWMgY29uc3QgQ2hlY2thc21UZXN0IHRlc3RzW10gPSB7CiAgICAgICAgIHsgImh1ZmZ5 dXZkc3AiLCBjaGVja2FzbV9jaGVja19odWZmeXV2ZHNwIH0sCiAgICAgI2VuZGlmCiAgICAgI2lm IENPTkZJR19IVUZGWVVWRU5DRFNQCi0gICAgICAgIHsgImh1ZmZ5dXZlbmNkc3AiLCBjaGVja2Fz bV9jaGVja19odWZmeXV2ZW5jZHNwIH0sCisgICAgICAgIHsgImh1ZmZ5dXZlbmNkc3AiLCBjaGVj a2FzbV9jaGVja19odWZmeXV2ZW5jZHNwLCAuaW5pdCA9IGNoZWNrYXNtX2luaXRfaHVmZnl1dmVu Y2RzcCB9LAogICAgICNlbmRpZgogICAgICNpZiBDT05GSUdfSURDVERTUAogICAgICAgICB7ICJp ZGN0ZHNwIiwgY2hlY2thc21fY2hlY2tfaWRjdGRzcCB9LApkaWZmIC0tZ2l0IGEvdGVzdHMvY2hl Y2thc20vY2hlY2thc20uaCBiL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmgKaW5kZXggNDQ5ZWNi MTg4Yy4uMzUwYWE1Y2JjOSAxMDA2NDQKLS0tIGEvdGVzdHMvY2hlY2thc20vY2hlY2thc20uaAor KysgYi90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5oCkBAIC0xMzQsNiArMTM0LDcgQEAgdm9pZCBj aGVja2FzbV9jaGVja192dmNfbWModm9pZCk7CiB2b2lkIGNoZWNrYXNtX2NoZWNrX3Z2Y19zYW8o dm9pZCk7CiAKIHZvaWQgY2hlY2thc21faW5pdF9jcmModm9pZCk7Cit2b2lkIGNoZWNrYXNtX2lu aXRfaHVmZnl1dmVuY2RzcCh2b2lkKTsKIHZvaWQgY2hlY2thc21faW5pdF9zYmModm9pZCk7CiAK IHZvaWQgY2hlY2thc21fdW5pbml0X2NyYyh2b2lkKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNr YXNtL2h1ZmZ5dXZlbmNkc3AuYyBiL3Rlc3RzL2NoZWNrYXNtL2h1ZmZ5dXZlbmNkc3AuYwppbmRl eCBiNWQwMmNkYTZkLi43OTViZTI0MWVhIDEwMDY0NAotLS0gYS90ZXN0cy9jaGVja2FzbS9odWZm eXV2ZW5jZHNwLmMKKysrIGIvdGVzdHMvY2hlY2thc20vaHVmZnl1dmVuY2RzcC5jCkBAIC0zNiw2 ICszNiwxMyBAQCBlbnVtIHsKICAgICAgICAgICAgIGJ1ZltqXSA9IHJuZCgpICYgbWFzazsgICAg ICAgICBcCiAgICAgfSB3aGlsZSAoMCkKIAorc3RhdGljIHVuc2lnbmVkIHNhdmVkX3dpZHRoOwor Cit2b2lkIGNoZWNrYXNtX2luaXRfaHVmZnl1dmVuY2RzcCh2b2lkKQoreworICAgIHNhdmVkX3dp ZHRoID0gcm5kKCkgJSBNQVhfV0lEVEg7CisgICAgc2F2ZWRfd2lkdGggPSBzYXZlZF93aWR0aCA/ IHNhdmVkX3dpZHRoIDogMTsKK30KIAogc3RhdGljIHZvaWQgY2hlY2tfc3ViX2hmeXVfbWVkaWFu X3ByZWRfaW50MTYoY29uc3QgY2hhciAqYWxpZ25lZCwgdW5zaWduZWQgd2lkdGgpCiB7CkBAIC03 MiwxNCArNzksOCBAQCBzdGF0aWMgdm9pZCBjaGVja19zdWJfaGZ5dV9tZWRpYW5fcHJlZF9pbnQx Nihjb25zdCBjaGFyICphbGlnbmVkLCB1bnNpZ25lZCB3aWR0aAogCiB2b2lkIGNoZWNrYXNtX2No ZWNrX2h1ZmZ5dXZlbmNkc3Aodm9pZCkKIHsKLSAgICBzdGF0aWMgdW5zaWduZWQgd2lkdGggPSAw OwotCi0gICAgaWYgKCF3aWR0aCkgewotICAgICAgICB3aWR0aCA9IHJuZCgpICUgTUFYX1dJRFRI OwotICAgICAgICB3aWR0aCA9IHdpZHRoID8gd2lkdGggOiAxOwotICAgIH0KLQogICAgIGNvbnN0 IHNpemVfdCBhbGlnbiA9IGF2X2NwdV9tYXhfYWxpZ24oKTsKKyAgICB1bnNpZ25lZCB3aWR0aCA9 IHNhdmVkX3dpZHRoOwogCiAgICAgY2hlY2tfc3ViX2hmeXVfbWVkaWFuX3ByZWRfaW50MTYoIl9h bGlnbmVkIiwgRkZBTElHTih3aWR0aCwgYWxpZ24gLyBzaXplb2YodWludDE2X3QpKSk7CiAgICAg cmVwb3J0KCJzdWJfaGZ5dV9tZWRpYW5fcHJlZF9pbnQxNl9hbGlnbmVkIik7Ci0tIAoyLjUyLjAK CgpGcm9tIGM4NTgwMjIzMDgyMDc0Yjc1NDY0MDc1NjFlOGRiY2U2ZGI0MjcwMWYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhh cmR0QG91dGxvb2suY29tPgpEYXRlOiBUdWUsIDI4IEp1bCAyMDI2IDEzOjE2OjA1ICswMjAwClN1 YmplY3Q6IFtQQVRDSCA2LzldIHRlc3RzL2NoZWNrYXNtL2xsdmlkZHNwOiBTZXQgd2lkdGggaW4g aW5pdAoKSXQgbWVhbnMgdGhhdCBvbmUgbm93IHRlc3RzIG11bHRpcGxlIHdpZHRoIHZhbHVlcyB3 aGVuIHVzaW5nCi0tcmVwZWF0LgoKU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0IDxh bmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogdGVzdHMvY2hlY2thc20vY2hlY2th c20uYyB8ICAyICstCiB0ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5oIHwgIDEgKwogdGVzdHMvY2hl Y2thc20vbGx2aWRkc3AuYyB8IDExICsrKysrKystLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDkgaW5z ZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90ZXN0cy9jaGVja2FzbS9j aGVja2FzbS5jIGIvdGVzdHMvY2hlY2thc20vY2hlY2thc20uYwppbmRleCA5YTE1NmIzYzIzLi5m NTBhMmM4MzcwIDEwMDY0NAotLS0gYS90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5jCisrKyBiL3Rl c3RzL2NoZWNrYXNtL2NoZWNrYXNtLmMKQEAgLTE1Miw3ICsxNTIsNyBAQCBzdGF0aWMgY29uc3Qg Q2hlY2thc21UZXN0IHRlc3RzW10gPSB7CiAgICAgICAgIHsgImxsYXVkZHNwIiwgY2hlY2thc21f Y2hlY2tfbGxhdWRkc3AgfSwKICAgICAjZW5kaWYKICAgICAjaWYgQ09ORklHX0hVRkZZVVZEU1AK LSAgICAgICAgeyAibGx2aWRkc3AiLCBjaGVja2FzbV9jaGVja19sbHZpZGRzcCB9LAorICAgICAg ICB7ICJsbHZpZGRzcCIsIGNoZWNrYXNtX2NoZWNrX2xsdmlkZHNwLCAuaW5pdCA9IGNoZWNrYXNt X2luaXRfbGx2aWRkc3AgfSwKICAgICAjZW5kaWYKICAgICAjaWYgQ09ORklHX0xMVklERU5DRFNQ CiAgICAgICAgIHsgImxsdmlkZW5jZHNwIiwgY2hlY2thc21fY2hlY2tfbGx2aWRlbmNkc3AgfSwK ZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmggYi90ZXN0cy9jaGVja2FzbS9j aGVja2FzbS5oCmluZGV4IDM1MGFhNWNiYzkuLjRiZTYxMWYxMzYgMTAwNjQ0Ci0tLSBhL3Rlc3Rz L2NoZWNrYXNtL2NoZWNrYXNtLmgKKysrIGIvdGVzdHMvY2hlY2thc20vY2hlY2thc20uaApAQCAt MTM1LDYgKzEzNSw3IEBAIHZvaWQgY2hlY2thc21fY2hlY2tfdnZjX3Nhbyh2b2lkKTsKIAogdm9p ZCBjaGVja2FzbV9pbml0X2NyYyh2b2lkKTsKIHZvaWQgY2hlY2thc21faW5pdF9odWZmeXV2ZW5j ZHNwKHZvaWQpOwordm9pZCBjaGVja2FzbV9pbml0X2xsdmlkZHNwKHZvaWQpOwogdm9pZCBjaGVj a2FzbV9pbml0X3NiYyh2b2lkKTsKIAogdm9pZCBjaGVja2FzbV91bmluaXRfY3JjKHZvaWQpOwpk aWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2thc20vbGx2aWRkc3AuYyBiL3Rlc3RzL2NoZWNrYXNtL2xs dmlkZHNwLmMKaW5kZXggMTA5NDYzODIyOS4uMTlmNzNlNGVlOSAxMDA2NDQKLS0tIGEvdGVzdHMv Y2hlY2thc20vbGx2aWRkc3AuYworKysgYi90ZXN0cy9jaGVja2FzbS9sbHZpZGRzcC5jCkBAIC00 Miw2ICs0MiwxMyBAQAogICAgIHJhbmRvbWl6ZV9idWZmZXJzKGEwLCB3aWR0aCAqIHNpemVvZih0 eXBlKSk7XAogICAgIG1lbWNweShhMSwgYTAsIHdpZHRoKnNpemVvZih0eXBlKSk7XAogCitzdGF0 aWMgaW50IHNhdmVkX3dpZHRoOworCit2b2lkIGNoZWNrYXNtX2luaXRfbGx2aWRkc3AoKQorewor ICAgIHNhdmVkX3dpZHRoID0gMTYgKiBhdl9jbGlwKHJuZCgpLCAxNiwgMTI4KTsKK30KKwogc3Rh dGljIHZvaWQgY2hlY2tfYWRkX2J5dGVzKExMVmlkRFNQQ29udGV4dCAqYywgaW50IHdpZHRoKQog ewogICAgIHVpbnQ4X3QgKmRzdDAgPSBhdl9tYWxsb2N6KHdpZHRoKTsKQEAgLTE4MywxMyArMTkw LDkgQEAgc3RhdGljIHZvaWQgY2hlY2tfYWRkX2dyYWRpZW50X3ByZWQoTExWaWREU1BDb250ZXh0 ICpjLCBpbnQgdykgewogdm9pZCBjaGVja2FzbV9jaGVja19sbHZpZGRzcCh2b2lkKQogewogICAg IExMVmlkRFNQQ29udGV4dCBjOwotICAgIHN0YXRpYyBpbnQgc2F2ZWRfd2lkdGggPSAwOwogICAg IGludCB3aWR0aCA9IHNhdmVkX3dpZHRoOwogICAgIGludCBhY2NSbmQgPSBybmQoKSAmIDB4RkY7 CiAKLSAgICBpZiAoIXdpZHRoKQotICAgICAgICBzYXZlZF93aWR0aCA9IHdpZHRoID0gMTYgKiBh dl9jbGlwKHJuZCgpLCAxNiwgMTI4KTsKLQogICAgIGZmX2xsdmlkZHNwX2luaXQoJmMpOwogCiAg ICAgaWYgKGNoZWNrX2Z1bmMoYy5hZGRfYnl0ZXMsICJhZGRfYnl0ZXMiKSkKLS0gCjIuNTIuMAoK CkZyb20gZGRhZTlmNGRlNDdjYjczY2M2YWNkMmMyMTk5NTlhYmQ2YmQ0YWI3MSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRyZWFzLnJoZWluaGFy ZHRAb3V0bG9vay5jb20+CkRhdGU6IFR1ZSwgMjggSnVsIDIwMjYgMTM6MzM6MTUgKzAyMDAKU3Vi amVjdDogW1BBVENIIDcvOV0gdGVzdHMvY2hlY2thc20vaHBlbGRzcDogU2V0IG5iIG9mIGxpbmVz IHRvIHByb2Nlc3MgZHVyaW5nCiBpbml0CgpJdCBlbnN1cmVzIHRoYXQgaGVpZ2h0IGlzIG5vdCBj b25zdGFudCAocGVyIHRlc3QpIHdoZW4gdXNpbmcKLS1yZXBlYXQuCgpTaWduZWQtb2ZmLWJ5OiBB bmRyZWFzIFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KLS0tCiB0 ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5jIHwgIDIgKy0KIHRlc3RzL2NoZWNrYXNtL2NoZWNrYXNt LmggfCAgMSArCiB0ZXN0cy9jaGVja2FzbS9ocGVsZHNwLmMgIHwgNDIgKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDI4IGluc2VydGlvbnMo KyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNt LmMgYi90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5jCmluZGV4IGY1MGEyYzgzNzAuLjEwNzhmMTEx NmQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmMKKysrIGIvdGVzdHMvY2hl Y2thc20vY2hlY2thc20uYwpAQCAtMTM0LDcgKzEzNCw3IEBAIHN0YXRpYyBjb25zdCBDaGVja2Fz bVRlc3QgdGVzdHNbXSA9IHsKICAgICAgICAgeyAiaGV2Y19zYW8iLCBjaGVja2FzbV9jaGVja19o ZXZjX3NhbyB9LAogICAgICNlbmRpZgogICAgICNpZiBDT05GSUdfSFBFTERTUAotICAgICAgICB7 ICJocGVsZHNwIiwgY2hlY2thc21fY2hlY2tfaHBlbGRzcCB9LAorICAgICAgICB7ICJocGVsZHNw IiwgY2hlY2thc21fY2hlY2tfaHBlbGRzcCwgLmluaXQgPSBjaGVja2FzbV9pbml0X2hwZWxkc3Ag fSwKICAgICAjZW5kaWYKICAgICAjaWYgQ09ORklHX0hVRkZZVVZEU1AKICAgICAgICAgeyAiaHVm Znl1dmRzcCIsIGNoZWNrYXNtX2NoZWNrX2h1ZmZ5dXZkc3AgfSwKZGlmZiAtLWdpdCBhL3Rlc3Rz L2NoZWNrYXNtL2NoZWNrYXNtLmggYi90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5oCmluZGV4IDRi ZTYxMWYxMzYuLmEzMDQzMWEzNTEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNt LmgKKysrIGIvdGVzdHMvY2hlY2thc20vY2hlY2thc20uaApAQCAtMTM0LDYgKzEzNCw3IEBAIHZv aWQgY2hlY2thc21fY2hlY2tfdnZjX21jKHZvaWQpOwogdm9pZCBjaGVja2FzbV9jaGVja192dmNf c2FvKHZvaWQpOwogCiB2b2lkIGNoZWNrYXNtX2luaXRfY3JjKHZvaWQpOwordm9pZCBjaGVja2Fz bV9pbml0X2hwZWxkc3Aodm9pZCk7CiB2b2lkIGNoZWNrYXNtX2luaXRfaHVmZnl1dmVuY2RzcCh2 b2lkKTsKIHZvaWQgY2hlY2thc21faW5pdF9sbHZpZGRzcCh2b2lkKTsKIHZvaWQgY2hlY2thc21f aW5pdF9zYmModm9pZCk7CmRpZmYgLS1naXQgYS90ZXN0cy9jaGVja2FzbS9ocGVsZHNwLmMgYi90 ZXN0cy9jaGVja2FzbS9ocGVsZHNwLmMKaW5kZXggZmQ4NzUwOWRkYy4uZGU1NDViMTViMSAxMDA2 NDQKLS0tIGEvdGVzdHMvY2hlY2thc20vaHBlbGRzcC5jCisrKyBiL3Rlc3RzL2NoZWNrYXNtL2hw ZWxkc3AuYwpAQCAtNTAsNiArNTAsMzIgQEAKICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIH0gd2hpbGUgKDApCiAKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgeworICAgIGNvbnN0IGNoYXIgKm5hbWU7CisgICAgc2l6ZV90IG9mZnNl dDsKKyAgICB1bnNpZ25lZCBuYl9ibG9ja3NpemVzOworfSB0ZXN0c1tdID0geworI2RlZmluZSBU RVNUKE5BTUUsIE5CKSB7IC5uYW1lID0gI05BTUUsIC5vZmZzZXQgPSBvZmZzZXRvZihIcGVsRFNQ Q29udGV4dCwgTkFNRSksIC5uYl9ibG9ja3NpemVzID0gTkIgfQorICAgIFRFU1QocHV0X3BpeGVs c190YWIsIDQpLAorICAgIFRFU1QoYXZnX3BpeGVsc190YWIsIDQpLAorICAgIFRFU1QocHV0X25v X3JuZF9waXhlbHNfdGFiLCAyKSwgLy8gcHV0X25vX3JuZF9waXhlbHNfdGFiIG9ubHkgaGFzIHR3 byB1c2FibGUgYmxvY2tzaXplcworICAgIFRFU1QoYXZnX25vX3JuZF9waXhlbHNfdGFiLCAxKSwK K307CisKK3N0YXRpYyBpbnQgc2F2ZWRfaGVpZ2h0c1tGRl9BUlJBWV9FTEVNUyh0ZXN0cyldWzRd WzRdOworCit2b2lkIGNoZWNrYXNtX2luaXRfaHBlbGRzcCh2b2lkKQoreworICAgIGZvciAoc2l6 ZV90IGkgPSAwOyBpIDwgRkZfQVJSQVlfRUxFTVMoc2F2ZWRfaGVpZ2h0cyk7ICsraSkKKyAgICAg ICAgZm9yICh1bnNpZ25lZCBqID0gMDsgaiA8IHRlc3RzW2ldLm5iX2Jsb2Nrc2l6ZXM7ICsraikg eworICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgYmxvY2tzaXplID0gTUFYX0JMT0NLX1NJWkUg Pj4gajsKKyAgICAgICAgICAgIC8vIGggbXVzdCBhbHdheXMgYmUgYSBtdWx0aXBsZSBvZiBmb3Vy LCBleGNlcHQgd2hlbiB3aWR0aCBpcyB0d28gb3IgZm91ci4KKyAgICAgICAgICAgIGNvbnN0IHVu c2lnbmVkIGhfbXVsdCA9IGJsb2Nrc2l6ZSA8PSA0ID8gMiA6IDQ7CisKKyAgICAgICAgICAgIGZv ciAodW5zaWduZWQgZHh5ID0gMDsgZHh5IDwgNDsgKytkeHkpCisgICAgICAgICAgICAgICAgc2F2 ZWRfaGVpZ2h0c1tpXVtqXVtkeHldID0gKHJuZCgpICUgKE1BWF9IRUlHSFQgLyBoX211bHQpICsg MSkgKiBoX211bHQ7CisgICAgICAgIH0KK30KIAogdm9pZCBjaGVja2FzbV9jaGVja19ocGVsZHNw KHZvaWQpCiB7CkBAIC01OCwxNyArODQsNiBAQCB2b2lkIGNoZWNrYXNtX2NoZWNrX2hwZWxkc3Ao dm9pZCkKICAgICBERUNMQVJFX0FMSUdORUQoTUFYX0JMT0NLX1NJWkUsIHVpbnQ4X3QsIGRzdGJ1 ZjApW0JVRl9TSVpFXTsKICAgICBERUNMQVJFX0FMSUdORUQoTUFYX0JMT0NLX1NJWkUsIHVpbnQ4 X3QsIGRzdGJ1ZjEpW0JVRl9TSVpFXTsKICAgICBIcGVsRFNQQ29udGV4dCBoZHNwOwotICAgIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgewotICAgICAgICBjb25zdCBjaGFyICpuYW1lOwotICAgICAgICBz aXplX3Qgb2Zmc2V0OwotICAgICAgICB1bnNpZ25lZCBuYl9ibG9ja3NpemVzOwotICAgIH0gdGVz dHNbXSA9IHsKLSNkZWZpbmUgVEVTVChOQU1FLCBOQikgeyAubmFtZSA9ICNOQU1FLCAub2Zmc2V0 ID0gb2Zmc2V0b2YoSHBlbERTUENvbnRleHQsIE5BTUUpLCAubmJfYmxvY2tzaXplcyA9IE5CIH0K LSAgICAgICAgVEVTVChwdXRfcGl4ZWxzX3RhYiwgNCksCi0gICAgICAgIFRFU1QoYXZnX3BpeGVs c190YWIsIDQpLAotICAgICAgICBURVNUKHB1dF9ub19ybmRfcGl4ZWxzX3RhYiwgMiksIC8vIHB1 dF9ub19ybmRfcGl4ZWxzX3RhYiBvbmx5IGhhcyB0d28gdXNhYmxlIGJsb2Nrc2l6ZXMKLSAgICAg ICAgVEVTVChhdmdfbm9fcm5kX3BpeGVsc190YWIsIDEpLAotICAgIH07CiAgICAgZGVjbGFyZV9m dW5jKHZvaWQsIHVpbnQ4X3QgKmRzdCwgY29uc3QgdWludDhfdCAqc3JjLCBwdHJkaWZmX3Qgc3Ry aWRlLCBpbnQgaCk7CiAKICAgICBmZl9ocGVsZHNwX2luaXQoJmhkc3AsIEFWX0NPREVDX0ZMQUdf QklURVhBQ1QpOwpAQCAtNzcsOCArOTIsNiBAQCB2b2lkIGNoZWNrYXNtX2NoZWNrX2hwZWxkc3Ao dm9pZCkKICAgICAgICAgb3BfcGl4ZWxzX2Z1bmMgKCpmdW5jX3RhYilbNF0gPSAob3BfcGl4ZWxz X2Z1bmMgKCopWzRdKSgoY2hhciopJmhkc3AgKyB0ZXN0c1tpXS5vZmZzZXQpOwogICAgICAgICBm b3IgKHVuc2lnbmVkIGogPSAwOyBqIDwgdGVzdHNbaV0ubmJfYmxvY2tzaXplczsgKytqKSB7CiAg ICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBibG9ja3NpemUgPSBNQVhfQkxPQ0tfU0laRSA+PiBq OwotICAgICAgICAgICAgLy8gaCBtdXN0IGFsd2F5cyBiZSBhIG11bHRpcGxlIG9mIGZvdXIsIGV4 Y2VwdCB3aGVuIHdpZHRoIGlzIHR3byBvciBmb3VyLgotICAgICAgICAgICAgY29uc3QgdW5zaWdu ZWQgaF9tdWx0ID0gYmxvY2tzaXplIDw9IDQgPyAyIDogNDsKIAogICAgICAgICAgICAgZm9yICh1 bnNpZ25lZCBkeHkgPSAwOyBkeHkgPCA0OyArK2R4eSkgewogICAgICAgICAgICAgICAgIGlmIChj aGVja19mdW5jKGZ1bmNfdGFiW2pdW2R4eV0sICIlc1sldV1bJXVdIiwgdGVzdHNbaV0ubmFtZSwg aiwgZHh5KSkgewpAQCAtOTEsMTAgKzEwNCw3IEBAIHZvaWQgY2hlY2thc21fY2hlY2tfaHBlbGRz cCh2b2lkKQogCiAgICAgICAgICAgICAgICAgICAgIC8vIEFsd2F5cyB1c2UgdGhlIHNhbWUgaGVp Z2h0IGZvciBlYWNoIHRlc3QsIHNvIHRoYXQgY29tcGFyaXNvbnMgb2YgYmVuY2htYXJrcwogICAg ICAgICAgICAgICAgICAgICAvLyBmcm9tIGRpZmZlcmVudCBpbnN0cnVjdGlvbiBzZXRzIGFyZSBt ZWFuaW5nZnVsLgotICAgICAgICAgICAgICAgICAgICBzdGF0aWMgaW50IHNhdmVkX2hlaWdodHNb RkZfQVJSQVlfRUxFTVModGVzdHMpXVs0XVs0XTsKICAgICAgICAgICAgICAgICAgICAgaW50IGgg PSBzYXZlZF9oZWlnaHRzW2ldW2pdW2R4eV07Ci0gICAgICAgICAgICAgICAgICAgIGlmICghaCkK LSAgICAgICAgICAgICAgICAgICAgICAgIHNhdmVkX2hlaWdodHNbaV1bal1bZHh5XSA9IGggPSAo cm5kKCkgJSAoTUFYX0hFSUdIVCAvIGhfbXVsdCkgKyAxKSAqIGhfbXVsdDsKIAogICAgICAgICAg ICAgICAgICAgICBpZiAocm5kKCkgJiAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBG bGlwIHN0cmlkZS4KLS0gCjIuNTIuMAoKCkZyb20gZDY1YjVlYmFjODE4OWM4MzllYTU1Y2E2Yzg3 M2RkOTUzMjg5YTg4ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVp bmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IFR1ZSwgMjggSnVs IDIwMjYgMTY6MTU6MDAgKzAyMDAKU3ViamVjdDogW1BBVENIIDgvOV0gdGVzdHMvY2hlY2thc20v Y2hlY2thc206IFJlbW92ZSBpbmFwcHJvcHJpYXRlIGhlYWRlcnMKClNpbmNlIHRoZSBzd2l0Y2gg dG8gbGliY2hlY2thc20sIGNoZWNrYXNtIG5vIGxvbmdlciB1c2VzCkZGbXBlZydzIGVtbXNfYywg dGltZXJzLCBBVkxGRyBvciBzdHJpbmcgaGFuZGxpbmcgZnVuY3Rpb25zLApzbyByZW1vdmUgdGhl c2UgaGVhZGVycy4KVGhpcyBuZWNlc3NpdGF0ZWQgYWRkaW5nIHNvbWUgbWlzc2luZyBoZWFkZXJz IChtb3N0bHkgc3RyaW5nLmgpCnRvIHNvbWUgZmlsZXMuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZWFz IFJoZWluaGFyZHQgPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4KLS0tCiB0ZXN0cy9j aGVja2FzbS9hYWNwc2RzcC5jICAgICAgfCAyICsrCiB0ZXN0cy9jaGVja2FzbS9hZXMuYyAgICAg ICAgICAgfCAyICsrCiB0ZXN0cy9jaGVja2FzbS9hZl9hZmlyLmMgICAgICAgfCAyICsrCiB0ZXN0 cy9jaGVja2FzbS9hcHZfZHNwLmMgICAgICAgfCAyICstCiB0ZXN0cy9jaGVja2FzbS9jYXZzZHNw LmMgICAgICAgfCAxICsKIHRlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmggICAgICB8IDUgLS0tLS0K IHRlc3RzL2NoZWNrYXNtL2NyYy5jICAgICAgICAgICB8IDEgKwogdGVzdHMvY2hlY2thc20vZGly YWNkc3AuYyAgICAgIHwgMiArKwogdGVzdHMvY2hlY2thc20vZmxvYXRfZHNwLmMgICAgIHwgMSAr CiB0ZXN0cy9jaGVja2FzbS9sbHMuYyAgICAgICAgICAgfCAzICsrKwogdGVzdHMvY2hlY2thc20v bXBlZzR2aWRlb2RzcC5jIHwgMSArCiB0ZXN0cy9jaGVja2FzbS9vcHVzZHNwLmMgICAgICAgfCAy ICsrCiB0ZXN0cy9jaGVja2FzbS9wbmcuYyAgICAgICAgICAgfCAxICsKIHRlc3RzL2NoZWNrYXNt L3FwZWxkc3AuYyAgICAgICB8IDEgKwogdGVzdHMvY2hlY2thc20vc2JjZHNwLmMgICAgICAgIHwg MSArCiB0ZXN0cy9jaGVja2FzbS9zYnJkc3AuYyAgICAgICAgfCAyICsrCiB0ZXN0cy9jaGVja2Fz bS92Zl9ubG1lYW5zLmMgICAgfCAyICsrCiB0ZXN0cy9jaGVja2FzbS92Zl9wcDcuYyAgICAgICAg fCAxICsKIHRlc3RzL2NoZWNrYXNtL3ZvcmJpc2RzcC5jICAgICB8IDIgKysKIDE5IGZpbGVzIGNo YW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdGVz dHMvY2hlY2thc20vYWFjcHNkc3AuYyBiL3Rlc3RzL2NoZWNrYXNtL2FhY3BzZHNwLmMKaW5kZXgg MzU5YjFlOWEwMC4uNzM4OGVkMDNlZiAxMDA2NDQKLS0tIGEvdGVzdHMvY2hlY2thc20vYWFjcHNk c3AuYworKysgYi90ZXN0cy9jaGVja2FzbS9hYWNwc2RzcC5jCkBAIC0xNiw2ICsxNiw4IEBACiAg KiA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEg VVNBLgogICovCiAKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKwogI2luY2x1ZGUgImxpYmF2Y29kZWMv YWFjcHNkc3AuaCIKICNpbmNsdWRlICJsaWJhdnV0aWwvaW50ZmxvYXQuaCIKICNpbmNsdWRlICJs aWJhdnV0aWwvbWVtX2ludGVybmFsLmgiCmRpZmYgLS1naXQgYS90ZXN0cy9jaGVja2FzbS9hZXMu YyBiL3Rlc3RzL2NoZWNrYXNtL2Flcy5jCmluZGV4IDRiYmZjNTc1MGIuLmIwMzkxYWIxY2IgMTAw NjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNtL2Flcy5jCisrKyBiL3Rlc3RzL2NoZWNrYXNtL2Flcy5j CkBAIC0xOCw2ICsxOCw4IEBACiAgKiA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC b3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBLgogICovCiAKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKwog I2luY2x1ZGUgImNoZWNrYXNtLmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL2Flcy5oIgogI2luY2x1 ZGUgImxpYmF2dXRpbC9hZXNfaW50ZXJuYWwuaCIKZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNrYXNt L2FmX2FmaXIuYyBiL3Rlc3RzL2NoZWNrYXNtL2FmX2FmaXIuYwppbmRleCBkYmExNTMxNDczLi5m MzBkMjJmMjY2IDEwMDY0NAotLS0gYS90ZXN0cy9jaGVja2FzbS9hZl9hZmlyLmMKKysrIGIvdGVz dHMvY2hlY2thc20vYWZfYWZpci5jCkBAIC0yMCw2ICsyMCw4IEBACiAKICNpbmNsdWRlIDxmbG9h dC5oPgogI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8 c3RyaW5nLmg+CiAKICNpbmNsdWRlICJsaWJhdmZpbHRlci9hZl9hZmlyZHNwLmgiCiAjaW5jbHVk ZSAibGliYXZ1dGlsL2ludGVybmFsLmgiCmRpZmYgLS1naXQgYS90ZXN0cy9jaGVja2FzbS9hcHZf ZHNwLmMgYi90ZXN0cy9jaGVja2FzbS9hcHZfZHNwLmMKaW5kZXggNjhjMGYwMzEzYy4uMTQ5YzQ2 Mzc2MyAxMDA2NDQKLS0tIGEvdGVzdHMvY2hlY2thc20vYXB2X2RzcC5jCisrKyBiL3Rlc3RzL2No ZWNrYXNtL2Fwdl9kc3AuYwpAQCAtMTcsMTAgKzE3LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgPHN0 ZGludC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgogCiAjaW5jbHVkZSAiY2hlY2thc20uaCIKIAot I2luY2x1ZGUgImxpYmF2dXRpbC9hdHRyaWJ1dGVzLmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL21l bV9pbnRlcm5hbC5oIgogI2luY2x1ZGUgImxpYmF2Y29kZWMvYXB2X2RzcC5oIgogCmRpZmYgLS1n aXQgYS90ZXN0cy9jaGVja2FzbS9jYXZzZHNwLmMgYi90ZXN0cy9jaGVja2FzbS9jYXZzZHNwLmMK aW5kZXggYWI2YjY5NWFlNC4uNDdjMjUxMDY4NyAxMDA2NDQKLS0tIGEvdGVzdHMvY2hlY2thc20v Y2F2c2RzcC5jCisrKyBiL3Rlc3RzL2NoZWNrYXNtL2NhdnNkc3AuYwpAQCAtMTgsNiArMTgsNyBA QAogCiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8c3RkZGVmLmg+CisjaW5jbHVkZSA8 c3RyaW5nLmg+CiAKICNpbmNsdWRlICJjaGVja2FzbS5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9p bnRyZWFkd3JpdGUuaCIKZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmggYi90 ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5oCmluZGV4IGEzMDQzMWEzNTEuLjQ5MzgwYzE4OTggMTAw NjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmgKKysrIGIvdGVzdHMvY2hlY2thc20v Y2hlY2thc20uaApAQCAtMjcsMTMgKzI3LDggQEAKICNpbmNsdWRlIDxjaGVja2FzbS90ZXN0Lmg+ CiAjaW5jbHVkZSA8Y2hlY2thc20vdXRpbHMuaD4KIAotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu Y2x1ZGUgImxpYmF2dXRpbC9hdnN0cmluZy5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9jcHUuaCIK LSNpbmNsdWRlICJsaWJhdnV0aWwvZW1tcy5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRlcm5h bC5oIgotI2luY2x1ZGUgImxpYmF2dXRpbC9sZmcuaCIKLSNpbmNsdWRlICJsaWJhdnV0aWwvdGlt ZXIuaCIKIAogdm9pZCBjaGVja2FzbV9jaGVja19hYWNlbmNkc3Aodm9pZCk7CiB2b2lkIGNoZWNr YXNtX2NoZWNrX2FhY3BzZHNwKHZvaWQpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2thc20vY3Jj LmMgYi90ZXN0cy9jaGVja2FzbS9jcmMuYwppbmRleCAwNzBmOGFhNmQ0Li4xMzM4ODMwYzhjIDEw MDY0NAotLS0gYS90ZXN0cy9jaGVja2FzbS9jcmMuYworKysgYi90ZXN0cy9jaGVja2FzbS9jcmMu YwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImxpYmF2dXRpbC9jcmMuaCIKICNpbmNsdWRl ICJsaWJhdnV0aWwvaW50cmVhZHdyaXRlLmgiCiAjaW5jbHVkZSAibGliYXZ1dGlsL21hY3Jvcy5o IgorI2luY2x1ZGUgImxpYmF2dXRpbC9tZW0uaCIKICNpbmNsdWRlICJsaWJhdnV0aWwvbWVtX2lu dGVybmFsLmgiCiAKIGVudW0gewpkaWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2thc20vZGlyYWNkc3Au YyBiL3Rlc3RzL2NoZWNrYXNtL2RpcmFjZHNwLmMKaW5kZXggYWEwOWM0M2RkZi4uNDdlYWVmYzkw YiAxMDA2NDQKLS0tIGEvdGVzdHMvY2hlY2thc20vZGlyYWNkc3AuYworKysgYi90ZXN0cy9jaGVj a2FzbS9kaXJhY2RzcC5jCkBAIC0xOCw2ICsxOCw4IEBACiAgKiA1MSBGcmFua2xpbiBTdHJlZXQs IEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBLgogICovCiAKKyNpbmNsdWRl IDxzdHJpbmcuaD4KKwogI2luY2x1ZGUgImNoZWNrYXNtLmgiCiAKICNpbmNsdWRlICJsaWJhdmNv ZGVjL2RpcmFjZHNwLmgiCmRpZmYgLS1naXQgYS90ZXN0cy9jaGVja2FzbS9mbG9hdF9kc3AuYyBi L3Rlc3RzL2NoZWNrYXNtL2Zsb2F0X2RzcC5jCmluZGV4IGMyODM0M2U0YTguLjk1ZmVlNTc5NDEg MTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNtL2Zsb2F0X2RzcC5jCisrKyBiL3Rlc3RzL2NoZWNr YXNtL2Zsb2F0X2RzcC5jCkBAIC0xOCw2ICsxOCw3IEBACiAKICNpbmNsdWRlIDxmbG9hdC5oPgog I2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgogCiAjaW5jbHVkZSAibGli YXZ1dGlsL2Zsb2F0X2RzcC5oIgogI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRlcm5hbC5oIgpkaWZm IC0tZ2l0IGEvdGVzdHMvY2hlY2thc20vbGxzLmMgYi90ZXN0cy9jaGVja2FzbS9sbHMuYwppbmRl eCA4Yjg3NmIxYmI5Li4wNjcwOTQxNDAzIDEwMDY0NAotLS0gYS90ZXN0cy9jaGVja2FzbS9sbHMu YworKysgYi90ZXN0cy9jaGVja2FzbS9sbHMuYwpAQCAtMTcsNiArMTcsOSBAQAogICovCiAKICNp bmNsdWRlIDxmbG9hdC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+ CisKICNpbmNsdWRlICJsaWJhdnV0aWwvbGxzLmgiCiAjaW5jbHVkZSAiY2hlY2thc20uaCIKIApk aWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2thc20vbXBlZzR2aWRlb2RzcC5jIGIvdGVzdHMvY2hlY2th c20vbXBlZzR2aWRlb2RzcC5jCmluZGV4IDdjN2U4MmM0YjAuLjQ5NTU3MjI0ZjUgMTAwNjQ0Ci0t LSBhL3Rlc3RzL2NoZWNrYXNtL21wZWc0dmlkZW9kc3AuYworKysgYi90ZXN0cy9jaGVja2FzbS9t cGVnNHZpZGVvZHNwLmMKQEAgLTE3LDYgKzE3LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8YXNzZXJ0 Lmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CiAKICNpbmNsdWRlICJjaGVja2FzbS5oIgogI2luY2x1 ZGUgImxpYmF2Y29kZWMvbXBlZzR2aWRlb2RzcC5oIgpkaWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2th c20vb3B1c2RzcC5jIGIvdGVzdHMvY2hlY2thc20vb3B1c2RzcC5jCmluZGV4IDg4NTExZjZlMTMu Ljk4MzEzZGEyZWMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNtL29wdXNkc3AuYworKysgYi90 ZXN0cy9jaGVja2FzbS9vcHVzZHNwLmMKQEAgLTE2LDYgKzE2LDggQEAKICAqIDUxIEZyYW5rbGlu IFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EuCiAgKi8KIAor I2luY2x1ZGUgPHN0cmluZy5oPgorCiAjaW5jbHVkZSAibGliYXZ1dGlsL21lbV9pbnRlcm5hbC5o IgogCiAjaW5jbHVkZSAibGliYXZjb2RlYy9vcHVzL2RzcC5oIgpkaWZmIC0tZ2l0IGEvdGVzdHMv Y2hlY2thc20vcG5nLmMgYi90ZXN0cy9jaGVja2FzbS9wbmcuYwppbmRleCA5ODg4OGI5OWRiLi43 MjdhOWIwMzBjIDEwMDY0NAotLS0gYS90ZXN0cy9jaGVja2FzbS9wbmcuYworKysgYi90ZXN0cy9j aGVja2FzbS9wbmcuYwpAQCAtMTgsNiArMTgsNyBAQAogICogRm91bmRhdGlvbiwgSW5jLiwgNTEg RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQog ICovCiAKKyNpbmNsdWRlIDxzdHJpbmcuaD4KIAogI2luY2x1ZGUgImxpYmF2dXRpbC9tZW1faW50 ZXJuYWwuaCIKICNpbmNsdWRlICJsaWJhdmNvZGVjL3BuZ2RzcC5oIgpkaWZmIC0tZ2l0IGEvdGVz dHMvY2hlY2thc20vcXBlbGRzcC5jIGIvdGVzdHMvY2hlY2thc20vcXBlbGRzcC5jCmluZGV4IDFm MThiNGZmZGEuLjJkYjcyMGMxMzAgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNtL3FwZWxkc3Au YworKysgYi90ZXN0cy9jaGVja2FzbS9xcGVsZHNwLmMKQEAgLTE4LDYgKzE4LDcgQEAKIAogI2lu Y2x1ZGUgPGFzc2VydC5oPgogI2luY2x1ZGUgPHN0ZGRlZi5oPgorI2luY2x1ZGUgPHN0cmluZy5o PgogCiAjaW5jbHVkZSAiY2hlY2thc20uaCIKICNpbmNsdWRlICJsaWJhdnV0aWwvaW50cmVhZHdy aXRlLmgiCmRpZmYgLS1naXQgYS90ZXN0cy9jaGVja2FzbS9zYmNkc3AuYyBiL3Rlc3RzL2NoZWNr YXNtL3NiY2RzcC5jCmluZGV4IGI3NzI2MDViMTYuLjBlMTJmYzQ5N2YgMTAwNjQ0Ci0tLSBhL3Rl c3RzL2NoZWNrYXNtL3NiY2RzcC5jCisrKyBiL3Rlc3RzL2NoZWNrYXNtL3NiY2RzcC5jCkBAIC0x OCw2ICsxOCw3IEBACiAKICNpbmNsdWRlIDxzdGRkZWYuaD4KICNpbmNsdWRlIDxzdGRpbnQuaD4K KyNpbmNsdWRlIDxzdHJpbmcuaD4KIAogI2luY2x1ZGUgImNoZWNrYXNtLmgiCiAjaW5jbHVkZSAi bGliYXZjb2RlYy9zYmNkc3AuaCIKZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNrYXNtL3NicmRzcC5j IGIvdGVzdHMvY2hlY2thc20vc2JyZHNwLmMKaW5kZXggZDZjMTA4NTNhZi4uZWVlMDhhNDYyZiAx MDA2NDQKLS0tIGEvdGVzdHMvY2hlY2thc20vc2JyZHNwLmMKKysrIGIvdGVzdHMvY2hlY2thc20v c2JyZHNwLmMKQEAgLTE2LDYgKzE2LDggQEAKICAqIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg Rmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EuCiAgKi8KIAorI2luY2x1ZGUgPHN0cmlu Zy5oPgorCiAjaW5jbHVkZSAibGliYXZ1dGlsL21lbV9pbnRlcm5hbC5oIgogCiAjaW5jbHVkZSAi bGliYXZjb2RlYy9zYnJkc3AuaCIKZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNrYXNtL3ZmX25sbWVh bnMuYyBiL3Rlc3RzL2NoZWNrYXNtL3ZmX25sbWVhbnMuYwppbmRleCAyNmJkMmQ1ODkwLi42YWI1 MDYwN2Y3IDEwMDY0NAotLS0gYS90ZXN0cy9jaGVja2FzbS92Zl9ubG1lYW5zLmMKKysrIGIvdGVz dHMvY2hlY2thc20vdmZfbmxtZWFucy5jCkBAIC0xOSw2ICsxOSw4IEBACiAgKi8KIAogI2luY2x1 ZGUgPG1hdGguaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKwogI2luY2x1ZGUgImNoZWNrYXNtLmgi CiAjaW5jbHVkZSAibGliYXZmaWx0ZXIvdmZfbmxtZWFuc19pbml0LmgiCiAjaW5jbHVkZSAibGli YXZ1dGlsL2F2YXNzZXJ0LmgiCmRpZmYgLS1naXQgYS90ZXN0cy9jaGVja2FzbS92Zl9wcDcuYyBi L3Rlc3RzL2NoZWNrYXNtL3ZmX3BwNy5jCmluZGV4IGU1MDZlZWIxNmMuLjNmMWZhOWE3NWYgMTAw NjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNtL3ZmX3BwNy5jCisrKyBiL3Rlc3RzL2NoZWNrYXNtL3Zm X3BwNy5jCkBAIC0xOSw2ICsxOSw3IEBACiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8 c3RkZGVmLmg+CiAjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CiAKICNp bmNsdWRlICJjaGVja2FzbS5oIgogI2luY2x1ZGUgImxpYmF2ZmlsdGVyL3ZmX3BwN2RzcC5oIgpk aWZmIC0tZ2l0IGEvdGVzdHMvY2hlY2thc20vdm9yYmlzZHNwLmMgYi90ZXN0cy9jaGVja2FzbS92 b3JiaXNkc3AuYwppbmRleCBiNGQ2MGNjNDQ2Li5lOTdmZjk2ZTBjIDEwMDY0NAotLS0gYS90ZXN0 cy9jaGVja2FzbS92b3JiaXNkc3AuYworKysgYi90ZXN0cy9jaGVja2FzbS92b3JiaXNkc3AuYwpA QCAtMTcsNiArMTcsOCBAQAogICovCiAKICNpbmNsdWRlIDxmbG9hdC5oPgorI2luY2x1ZGUgPHN0 ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CiAKICNpbmNsdWRlICJsaWJhdnV0aWwvbWVtX2lu dGVybmFsLmgiCiAKLS0gCjIuNTIuMAoKCkZyb20gNjY2ZjRhZDJkYTcyZWU4ZTgzODg1N2IzOGNk OGE2NWYyNzE3NDg5NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQW5kcmVhcyBSaGVp bmhhcmR0IDxhbmRyZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+CkRhdGU6IFR1ZSwgMjggSnVs IDIwMjYgMTY6MzM6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIIDkvOV0gdGVzdHMvY2hlY2thc20v bXBlZ3ZpZGVvX3VucXVhbnRpemU6IFNldCBwYXJhbWV0ZXJzIGluCiBpbml0IGNiCgpJdCBtZWFu cyB0aGF0IHRoZXNlIHBhcmFtZXRlcnMgY2hhbmdlIHJhbmRvbWx5IGZvciBlYWNoIHJ1bgp3aGVu IHVzaW5nIC0tcmVwZWF0LgoKU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBSaGVpbmhhcmR0IDxhbmRy ZWFzLnJoZWluaGFyZHRAb3V0bG9vay5jb20+Ci0tLQogdGVzdHMvY2hlY2thc20vY2hlY2thc20u YyAgICAgICAgICAgICB8ICAgMyArLQogdGVzdHMvY2hlY2thc20vY2hlY2thc20uaCAgICAgICAg ICAgICB8ICAgMSArCiB0ZXN0cy9jaGVja2FzbS9tcGVndmlkZW9fdW5xdWFudGl6ZS5jIHwgMTM5 ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDczIGluc2VydGlv bnMoKyksIDcwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNrYXNtL2NoZWNr YXNtLmMgYi90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5jCmluZGV4IDEwNzhmMTExNmQuLjQ5ODYz MGFmNmQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmMKKysrIGIvdGVzdHMv Y2hlY2thc20vY2hlY2thc20uYwpAQCAtMTY3LDcgKzE2Nyw4IEBAIHN0YXRpYyBjb25zdCBDaGVj a2FzbVRlc3QgdGVzdHNbXSA9IHsKICAgICAgICAgeyAibXBlZzR2aWRlb2RzcCIsIGNoZWNrYXNt X2NoZWNrX21wZWc0dmlkZW9kc3AgfSwKICAgICAjZW5kaWYKICAgICAjaWYgQ09ORklHX01QRUdW SURFTwotICAgICAgICB7ICJtcGVndmlkZW9fdW5xdWFudGl6ZSIsIGNoZWNrYXNtX2NoZWNrX21w ZWd2aWRlb191bnF1YW50aXplIH0sCisgICAgICAgIHsgIm1wZWd2aWRlb191bnF1YW50aXplIiwg Y2hlY2thc21fY2hlY2tfbXBlZ3ZpZGVvX3VucXVhbnRpemUsCisgICAgICAgICAgLmluaXQgPSBj aGVja2FzbV9pbml0X21wZWd2aWRlb191bnF1YW50aXplIH0sCiAgICAgI2VuZGlmCiAgICAgI2lm IENPTkZJR19NUEVHVklERU9FTkNEU1AKICAgICAgICAgeyAibXBlZ3ZpZGVvZW5jZHNwIiwgY2hl Y2thc21fY2hlY2tfbXBlZ3ZpZGVvZW5jZHNwIH0sCmRpZmYgLS1naXQgYS90ZXN0cy9jaGVja2Fz bS9jaGVja2FzbS5oIGIvdGVzdHMvY2hlY2thc20vY2hlY2thc20uaAppbmRleCA0OTM4MGMxODk4 Li5iOGU3MzE4OWFmIDEwMDY0NAotLS0gYS90ZXN0cy9jaGVja2FzbS9jaGVja2FzbS5oCisrKyBi L3Rlc3RzL2NoZWNrYXNtL2NoZWNrYXNtLmgKQEAgLTEzMiw2ICsxMzIsNyBAQCB2b2lkIGNoZWNr YXNtX2luaXRfY3JjKHZvaWQpOwogdm9pZCBjaGVja2FzbV9pbml0X2hwZWxkc3Aodm9pZCk7CiB2 b2lkIGNoZWNrYXNtX2luaXRfaHVmZnl1dmVuY2RzcCh2b2lkKTsKIHZvaWQgY2hlY2thc21faW5p dF9sbHZpZGRzcCh2b2lkKTsKK3ZvaWQgY2hlY2thc21faW5pdF9tcGVndmlkZW9fdW5xdWFudGl6 ZSh2b2lkKTsKIHZvaWQgY2hlY2thc21faW5pdF9zYmModm9pZCk7CiAKIHZvaWQgY2hlY2thc21f dW5pbml0X2NyYyh2b2lkKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2NoZWNrYXNtL21wZWd2aWRlb191 bnF1YW50aXplLmMgYi90ZXN0cy9jaGVja2FzbS9tcGVndmlkZW9fdW5xdWFudGl6ZS5jCmluZGV4 IDlkZTBiYjQyODQuLjg1Mjk3MjExNmUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2NoZWNrYXNtL21wZWd2 aWRlb191bnF1YW50aXplLmMKKysrIGIvdGVzdHMvY2hlY2thc20vbXBlZ3ZpZGVvX3VucXVhbnRp emUuYwpAQCAtNDgsNzYgKzQ4LDg2IEBAIGVudW0gVGVzdFR5cGUgewogICAgIE1QRUcyLAogfTsK IAotc3RhdGljIHZvaWQgaW5pdF9pZGN0X3NjYW50YWJsZShNUFZDb250ZXh0ICpjb25zdCBzLCBp bnQgaW50cmFfc2NhbnRhYmxlKQotewotICAgIHN0YXRpYyBjb25zdCBlbnVtIGlkY3RfcGVybXV0 YXRpb25fdHlwZSBwZXJtdXRhdGlvbl90eXBlc1tdID0gewotICAgICAgICBGRl9JRENUX1BFUk1f Tk9ORSwKLSAgICAgICAgRkZfSURDVF9QRVJNX0xJQk1QRUcyLAorc3RhdGljIGNvbnN0IGVudW0g aWRjdF9wZXJtdXRhdGlvbl90eXBlIHBlcm11dGF0aW9uX3R5cGVzW10gPSB7CisgICAgRkZfSURD VF9QRVJNX05PTkUsCisgICAgRkZfSURDVF9QRVJNX0xJQk1QRUcyLAogI2lmIEFSQ0hfWDg2XzMy ICYmIEhBVkVfWDg2QVNNCi0gICAgICAgIEZGX0lEQ1RfUEVSTV9TSU1QTEUsCisgICAgRkZfSURD VF9QRVJNX1NJTVBMRSwKICNlbmRpZgogI2lmIEFSQ0hfUFBDIHx8IEFSQ0hfWDg2Ci0gICAgICAg IEZGX0lEQ1RfUEVSTV9UUkFOU1BPU0UsCisgICAgRkZfSURDVF9QRVJNX1RSQU5TUE9TRSwKICNl bmRpZgogI2lmIEFSQ0hfQVJNIHx8IEFSQ0hfQUFSQ0g2NAotICAgICAgICBGRl9JRENUX1BFUk1f UEFSVFRSQU5TLAorICAgIEZGX0lEQ1RfUEVSTV9QQVJUVFJBTlMsCiAjZW5kaWYKICNpZiBBUkNI X1g4NiAmJiBIQVZFX1g4NkFTTQotICAgICAgICBGRl9JRENUX1BFUk1fU1NFMiwKKyAgICBGRl9J RENUX1BFUk1fU1NFMiwKICNlbmRpZgotICAgIH07Ci0gICAgLy8gQ29waWVkIGhlcmUgdG8gYXZv aWQgI2lmcy4KLSAgICBzdGF0aWMgY29uc3QgdWludDhfdCBmZl93bXYxX3NjYW50YWJsZVtdWzY0 XSA9IHsKLSAgICB7IDB4MDAsIDB4MDgsIDB4MDEsIDB4MDIsIDB4MDksIDB4MTAsIDB4MTgsIDB4 MTEsCi0gICAgICAweDBBLCAweDAzLCAweDA0LCAweDBCLCAweDEyLCAweDE5LCAweDIwLCAweDI4 LAotICAgICAgMHgzMCwgMHgzOCwgMHgyOSwgMHgyMSwgMHgxQSwgMHgxMywgMHgwQywgMHgwNSwK LSAgICAgIDB4MDYsIDB4MEQsIDB4MTQsIDB4MUIsIDB4MjIsIDB4MzEsIDB4MzksIDB4M0EsCi0g ICAgICAweDMyLCAweDJBLCAweDIzLCAweDFDLCAweDE1LCAweDBFLCAweDA3LCAweDBGLAotICAg ICAgMHgxNiwgMHgxRCwgMHgyNCwgMHgyQiwgMHgzMywgMHgzQiwgMHgzQywgMHgzNCwKLSAgICAg IDB4MkMsIDB4MjUsIDB4MUUsIDB4MTcsIDB4MUYsIDB4MjYsIDB4MkQsIDB4MzUsCi0gICAgICAw eDNELCAweDNFLCAweDM2LCAweDJFLCAweDI3LCAweDJGLCAweDM3LCAweDNGLCB9LAotICAgIHsg MHgwMCwgMHgwOCwgMHgwMSwgMHgwMiwgMHgwOSwgMHgxMCwgMHgxOCwgMHgxMSwKLSAgICAgIDB4 MEEsIDB4MDMsIDB4MDQsIDB4MEIsIDB4MTIsIDB4MTksIDB4MjAsIDB4MjgsCi0gICAgICAweDIx LCAweDMwLCAweDFBLCAweDEzLCAweDBDLCAweDA1LCAweDA2LCAweDBELAotICAgICAgMHgxNCwg MHgxQiwgMHgyMiwgMHgyOSwgMHgzOCwgMHgzMSwgMHgzOSwgMHgyQSwKLSAgICAgIDB4MjMsIDB4 MUMsIDB4MTUsIDB4MEUsIDB4MDcsIDB4MEYsIDB4MTYsIDB4MUQsCi0gICAgICAweDI0LCAweDJC LCAweDMyLCAweDNBLCAweDMzLCAweDNCLCAweDJDLCAweDI1LAotICAgICAgMHgxRSwgMHgxNywg MHgxRiwgMHgyNiwgMHgyRCwgMHgzNCwgMHgzQywgMHgzNSwKLSAgICAgIDB4M0QsIDB4MkUsIDB4 MjcsIDB4MkYsIDB4MzYsIDB4M0UsIDB4MzcsIDB4M0YsIH0sCi0gICAgeyAweDAwLCAweDAxLCAw eDA4LCAweDAyLCAweDAzLCAweDA5LCAweDEwLCAweDE4LAotICAgICAgMHgxMSwgMHgwQSwgMHgw NCwgMHgwNSwgMHgwQiwgMHgxMiwgMHgxOSwgMHgyMCwKLSAgICAgIDB4MjgsIDB4MzAsIDB4MjEs IDB4MUEsIDB4MTMsIDB4MEMsIDB4MDYsIDB4MDcsCi0gICAgICAweDBELCAweDE0LCAweDFCLCAw eDIyLCAweDI5LCAweDM4LCAweDMxLCAweDM5LAotICAgICAgMHgyQSwgMHgyMywgMHgxQywgMHgx NSwgMHgwRSwgMHgwRiwgMHgxNiwgMHgxRCwKLSAgICAgIDB4MjQsIDB4MkIsIDB4MzIsIDB4M0Es IDB4MzMsIDB4MkMsIDB4MjUsIDB4MUUsCi0gICAgICAweDE3LCAweDFGLCAweDI2LCAweDJELCAw eDM0LCAweDNCLCAweDNDLCAweDM1LAotICAgICAgMHgyRSwgMHgyNywgMHgyRiwgMHgzNiwgMHgz RCwgMHgzRSwgMHgzNywgMHgzRiwgfSwKLSAgICB7IDB4MDAsIDB4MDgsIDB4MTAsIDB4MDEsIDB4 MTgsIDB4MjAsIDB4MjgsIDB4MDksCi0gICAgICAweDAyLCAweDAzLCAweDBBLCAweDExLCAweDE5 LCAweDMwLCAweDM4LCAweDI5LAotICAgICAgMHgyMSwgMHgxQSwgMHgxMiwgMHgwQiwgMHgwNCwg MHgwNSwgMHgwQywgMHgxMywKLSAgICAgIDB4MUIsIDB4MjIsIDB4MzEsIDB4MzksIDB4MzIsIDB4 MkEsIDB4MjMsIDB4MUMsCi0gICAgICAweDE0LCAweDBELCAweDA2LCAweDA3LCAweDBFLCAweDE1 LCAweDFELCAweDI0LAotICAgICAgMHgyQiwgMHgzMywgMHgzQSwgMHgzQiwgMHgzNCwgMHgyQywg MHgyNSwgMHgxRSwKLSAgICAgIDB4MTYsIDB4MEYsIDB4MTcsIDB4MUYsIDB4MjYsIDB4MkQsIDB4 M0MsIDB4MzUsCi0gICAgICAweDJFLCAweDI3LCAweDJGLCAweDM2LCAweDNELCAweDNFLCAweDM3 LCAweDNGLCB9Ci0gICAgfTsKK307CisvLyBDb3BpZWQgaGVyZSB0byBhdm9pZCAjaWZzLgorc3Rh dGljIGNvbnN0IHVpbnQ4X3QgZmZfd212MV9zY2FudGFibGVbXVs2NF0gPSB7CisgIHsgMHgwMCwg MHgwOCwgMHgwMSwgMHgwMiwgMHgwOSwgMHgxMCwgMHgxOCwgMHgxMSwKKyAgICAweDBBLCAweDAz LCAweDA0LCAweDBCLCAweDEyLCAweDE5LCAweDIwLCAweDI4LAorICAgIDB4MzAsIDB4MzgsIDB4 MjksIDB4MjEsIDB4MUEsIDB4MTMsIDB4MEMsIDB4MDUsCisgICAgMHgwNiwgMHgwRCwgMHgxNCwg MHgxQiwgMHgyMiwgMHgzMSwgMHgzOSwgMHgzQSwKKyAgICAweDMyLCAweDJBLCAweDIzLCAweDFD LCAweDE1LCAweDBFLCAweDA3LCAweDBGLAorICAgIDB4MTYsIDB4MUQsIDB4MjQsIDB4MkIsIDB4 MzMsIDB4M0IsIDB4M0MsIDB4MzQsCisgICAgMHgyQywgMHgyNSwgMHgxRSwgMHgxNywgMHgxRiwg MHgyNiwgMHgyRCwgMHgzNSwKKyAgICAweDNELCAweDNFLCAweDM2LCAweDJFLCAweDI3LCAweDJG LCAweDM3LCAweDNGLCB9LAorICB7IDB4MDAsIDB4MDgsIDB4MDEsIDB4MDIsIDB4MDksIDB4MTAs IDB4MTgsIDB4MTEsCisgICAgMHgwQSwgMHgwMywgMHgwNCwgMHgwQiwgMHgxMiwgMHgxOSwgMHgy MCwgMHgyOCwKKyAgICAweDIxLCAweDMwLCAweDFBLCAweDEzLCAweDBDLCAweDA1LCAweDA2LCAw eDBELAorICAgIDB4MTQsIDB4MUIsIDB4MjIsIDB4MjksIDB4MzgsIDB4MzEsIDB4MzksIDB4MkEs CisgICAgMHgyMywgMHgxQywgMHgxNSwgMHgwRSwgMHgwNywgMHgwRiwgMHgxNiwgMHgxRCwKKyAg ICAweDI0LCAweDJCLCAweDMyLCAweDNBLCAweDMzLCAweDNCLCAweDJDLCAweDI1LAorICAgIDB4 MUUsIDB4MTcsIDB4MUYsIDB4MjYsIDB4MkQsIDB4MzQsIDB4M0MsIDB4MzUsCisgICAgMHgzRCwg MHgyRSwgMHgyNywgMHgyRiwgMHgzNiwgMHgzRSwgMHgzNywgMHgzRiwgfSwKKyAgeyAweDAwLCAw eDAxLCAweDA4LCAweDAyLCAweDAzLCAweDA5LCAweDEwLCAweDE4LAorICAgIDB4MTEsIDB4MEEs IDB4MDQsIDB4MDUsIDB4MEIsIDB4MTIsIDB4MTksIDB4MjAsCisgICAgMHgyOCwgMHgzMCwgMHgy MSwgMHgxQSwgMHgxMywgMHgwQywgMHgwNiwgMHgwNywKKyAgICAweDBELCAweDE0LCAweDFCLCAw eDIyLCAweDI5LCAweDM4LCAweDMxLCAweDM5LAorICAgIDB4MkEsIDB4MjMsIDB4MUMsIDB4MTUs IDB4MEUsIDB4MEYsIDB4MTYsIDB4MUQsCisgICAgMHgyNCwgMHgyQiwgMHgzMiwgMHgzQSwgMHgz MywgMHgyQywgMHgyNSwgMHgxRSwKKyAgICAweDE3LCAweDFGLCAweDI2LCAweDJELCAweDM0LCAw eDNCLCAweDNDLCAweDM1LAorICAgIDB4MkUsIDB4MjcsIDB4MkYsIDB4MzYsIDB4M0QsIDB4M0Us IDB4MzcsIDB4M0YsIH0sCisgIHsgMHgwMCwgMHgwOCwgMHgxMCwgMHgwMSwgMHgxOCwgMHgyMCwg MHgyOCwgMHgwOSwKKyAgICAweDAyLCAweDAzLCAweDBBLCAweDExLCAweDE5LCAweDMwLCAweDM4 LCAweDI5LAorICAgIDB4MjEsIDB4MUEsIDB4MTIsIDB4MEIsIDB4MDQsIDB4MDUsIDB4MEMsIDB4 MTMsCisgICAgMHgxQiwgMHgyMiwgMHgzMSwgMHgzOSwgMHgzMiwgMHgyQSwgMHgyMywgMHgxQywK KyAgICAweDE0LCAweDBELCAweDA2LCAweDA3LCAweDBFLCAweDE1LCAweDFELCAweDI0LAorICAg IDB4MkIsIDB4MzMsIDB4M0EsIDB4M0IsIDB4MzQsIDB4MkMsIDB4MjUsIDB4MUUsCisgICAgMHgx NiwgMHgwRiwgMHgxNywgMHgxRiwgMHgyNiwgMHgyRCwgMHgzQywgMHgzNSwKKyAgICAweDJFLCAw eDI3LCAweDJGLCAweDM2LCAweDNELCAweDNFLCAweDM3LCAweDNGLCB9Cit9OwogCi0gICAgc3Rh dGljIGNvbnN0IHVpbnQ4X3QgKmNvbnN0IHNjYW50YWJsZXNbXSA9IHsKLSAgICAgICAgZmZfYWx0 ZXJuYXRlX3ZlcnRpY2FsX3NjYW4sCi0gICAgICAgIGZmX2FsdGVybmF0ZV9ob3Jpem9udGFsX3Nj YW4sCi0gICAgICAgIGZmX3ppZ3phZ19kaXJlY3QsCi0gICAgICAgIGZmX3dtdjFfc2NhbnRhYmxl WzBdLAotICAgICAgICBmZl93bXYxX3NjYW50YWJsZVsxXSwKLSAgICAgICAgZmZfd212MV9zY2Fu dGFibGVbMl0sCi0gICAgICAgIGZmX3dtdjFfc2NhbnRhYmxlWzNdLAotICAgIH07Ci0gICAgc3Rh dGljIGNvbnN0IHVpbnQ4X3QgKnNjYW50YWJsZSA9IE5VTEw7Ci0gICAgc3RhdGljIGVudW0gaWRj dF9wZXJtdXRhdGlvbl90eXBlIGlkY3RfcGVybXV0YXRpb247CitzdGF0aWMgY29uc3QgdWludDhf dCAqY29uc3Qgc2NhbnRhYmxlc1tdID0geworICAgIGZmX2FsdGVybmF0ZV92ZXJ0aWNhbF9zY2Fu LAorICAgIGZmX2FsdGVybmF0ZV9ob3Jpem9udGFsX3NjYW4sCisgICAgZmZfemlnemFnX2RpcmVj dCwKKyAgICBmZl93bXYxX3NjYW50YWJsZVswXSwKKyAgICBmZl93bXYxX3NjYW50YWJsZVsxXSwK KyAgICBmZl93bXYxX3NjYW50YWJsZVsyXSwKKyAgICBmZl93bXYxX3NjYW50YWJsZVszXSwKK307 CitzdGF0aWMgY29uc3QgdWludDhfdCAqc2NhbnRhYmxlOworc3RhdGljIGVudW0gaWRjdF9wZXJt dXRhdGlvbl90eXBlIGlkY3RfcGVybXV0YXRpb247CiAKLSAgICBpZiAoIXNjYW50YWJsZSkgewot ICAgICAgICBzY2FudGFibGUgICAgICAgID0gc2NhbnRhYmxlc1tybmQoKSAlIEZGX0FSUkFZX0VM RU1TKHNjYW50YWJsZXMpXTsKLSAgICAgICAgaWRjdF9wZXJtdXRhdGlvbiA9IHBlcm11dGF0aW9u X3R5cGVzW3JuZCgpICUgRkZfQVJSQVlfRUxFTVMocGVybXV0YXRpb25fdHlwZXMpXTsKLSAgICB9 CitzdGF0aWMgaW50IGgyNjNfYWljLCBhY19wcmVkOworc3RhdGljIGludCBibG9ja19sYXN0X2lu ZGV4OworCit2b2lkIGNoZWNrYXNtX2luaXRfbXBlZ3ZpZGVvX3VucXVhbnRpemUodm9pZCkKK3sK KyAgICBzY2FudGFibGUgICAgICAgID0gc2NhbnRhYmxlc1tybmQoKSAlIEZGX0FSUkFZX0VMRU1T KHNjYW50YWJsZXMpXTsKKyAgICBpZGN0X3Blcm11dGF0aW9uID0gcGVybXV0YXRpb25fdHlwZXNb cm5kKCkgJSBGRl9BUlJBWV9FTEVNUyhwZXJtdXRhdGlvbl90eXBlcyldOworCisgICAgaDI2M19h aWMgPSBybmQoKSAmIDE7CisgICAgYWNfcHJlZCAgPSBybmQoKSAmIDE7CisKKyAgICBibG9ja19s YXN0X2luZGV4ID0gcm5kKCkgJSA2NDsKK30KKworc3RhdGljIHZvaWQgaW5pdF9pZGN0X3NjYW50 YWJsZShNUFZDb250ZXh0ICpjb25zdCBzLCBpbnQgaW50cmFfc2NhbnRhYmxlKQorewogICAgIGZm X2luaXRfc2NhbnRhYmxlX3Blcm11dGF0aW9uKHMtPmlkc3AuaWRjdF9wZXJtdXRhdGlvbiwgaWRj dF9wZXJtdXRhdGlvbik7CiAgICAgZmZfaW5pdF9zY2FudGFibGUocy0+aWRzcC5pZGN0X3Blcm11 dGF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgIGludHJhX3NjYW50YWJsZSA/ICZzLT5pbnRy YV9zY2FudGFibGUgOiAmcy0+aW50ZXJfc2NhbnRhYmxlLApAQCAtMTMxLDExICsxNDEsNiBAQCBz dGF0aWMgdm9pZCBpbml0X2gyNjNfdGVzdChNUFZDb250ZXh0ICpjb25zdCBzLCBpbnQxNl90IGJs b2NrWzY0XSwKICAgICBpZiAoaW50cmEpIHsKICAgICAgICAgcGVybXV0YXRpb24gPSBzLT5pbnRy YV9zY2FudGFibGUucGVybXV0YXRlZDsKICAgICAgICAgYmxvY2tbMF0gICAgPSBybmQoKSAmIDUx MTsKLSAgICAgICAgc3RhdGljIGludCBoMjYzX2FpYyA9IC0xLCBhY19wcmVkOwotICAgICAgICBp ZiAoaDI2M19haWMgPCAwKSB7Ci0gICAgICAgICAgICBoMjYzX2FpYyA9IHJuZCgpICYgMTsKLSAg ICAgICAgICAgIGFjX3ByZWQgID0gcm5kKCkgJiAxOwotICAgICAgICB9CiAgICAgICAgIHMtPmgy NjNfYWljID0gaDI2M19haWM7CiAgICAgICAgIHMtPmFjX3ByZWQgID0gYWNfcHJlZDsKICAgICAg ICAgaWYgKHMtPmFjX3ByZWQpCkBAIC0yMjQsNyArMjI5LDYgQEAgdm9pZCBjaGVja2FzbV9jaGVj a19tcGVndmlkZW9fdW5xdWFudGl6ZSh2b2lkKQogICAgICAgICAgICAgTVBWQ29udGV4dCBuZXcs IHJlZjsKICAgICAgICAgICAgIERFQ0xBUkVfQUxJR05FRCgxNiwgaW50MTZfdCwgYmxvY2tfbmV3 KVs2NF07CiAgICAgICAgICAgICBERUNMQVJFX0FMSUdORUQoMTYsIGludDE2X3QsIGJsb2NrX3Jl ZilbNjRdOwotICAgICAgICAgICAgc3RhdGljIGludCBibG9ja19sYXN0X2luZGV4ID0gLTE7CiAK ICAgICAgICAgICAgIHJhbmRvbWl6ZV9zdHJ1Y3QoTVBWQ29udGV4dCwgJnJlZik7CiAKQEAgLTIz Miw5ICsyMzYsNiBAQCB2b2lkIGNoZWNrYXNtX2NoZWNrX21wZWd2aWRlb191bnF1YW50aXplKHZv aWQpCiAKICAgICAgICAgICAgIGluaXRfaWRjdF9zY2FudGFibGUoJnJlZiwgdGVzdHNbaV0uaW50 cmFfc2NhbnRhYmxlKTsKIAotICAgICAgICAgICAgaWYgKGJsb2NrX2xhc3RfaW5kZXggPCAwKQot ICAgICAgICAgICAgICAgIGJsb2NrX2xhc3RfaW5kZXggPSBybmQoKSAlIDY0OwotCiAgICAgICAg ICAgICBtZW1zZXQoYmxvY2tfcmVmLCAwLCBzaXplb2YoYmxvY2tfcmVmKSk7CiAKICAgICAgICAg ICAgIGlmICh0ZXN0c1tpXS5pbnRyYSkgewotLSAKMi41Mi4wCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0IC0t IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnClRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8g ZmZtcGVnLWRldmVsLWxlYXZlQGZmbXBlZy5vcmcK