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/nordugrid-arc] rawhide: Support OpenSSL 4 Date: Thu, 18 Jun 2026 17:23:07 GMT Message-ID: <178180338765.1.15573775170584249911.rpms-nordugrid-arc-d66c8b17f5ff@fedoraproject.org> List-ID: X-Git-Repo: rpms/nordugrid-arc X-Git-Branch: rawhide X-Git-Rev: d66c8b17f5ff053f1c1f0e27f56e6ad928e79277 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvbm9yZHVncmlkLWFy YwpCcmFuY2ggOiByYXdoaWRlCkNvbW1pdCA6IGQ2NmM4YjE3ZjVmZjA1M2YxYzFmMGUyN2Y1NmU2 YWQ5MjhlNzkyNzcKQXV0aG9yIDogTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMuZWxsZXJ0QHBoeXNp Y3MudXUuc2U+CkRhdGUgICA6IDIwMjYtMDYtMThUMTk6MjI6MzMrMDI6MDAKU3RhdHMgIDogKzU2 NS8tMTQgaW4gMiBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3Jn L3JwbXMvbm9yZHVncmlkLWFyYy9jL2Q2NmM4YjE3ZjVmZjA1M2YxYzFmMGUyN2Y1NmU2YWQ5Mjhl NzkyNzc/YnJhbmNoPXJhd2hpZGUKCkxvZzoKU3VwcG9ydCBPcGVuU1NMIDQKCi0tLQpkaWZmIC0t Z2l0IGEvMDAwMS1TdXBwb3J0LU9wZW5TU0wtNC5wYXRjaCBiLzAwMDEtU3VwcG9ydC1PcGVuU1NM LTQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTEyODlmNwotLS0g L2Rldi9udWxsCisrKyBiLzAwMDEtU3VwcG9ydC1PcGVuU1NMLTQucGF0Y2gKQEAgLTAsMCArMSw1 NDcgQEAKK0Zyb20gMjFiNzE0NWQzZjFhOTQwOGNjNmZjOGY0ZjI1YzNkMDA2NDc4YTI3OSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1hdHRpYXMgRWxsZXJ0IDxtYXR0aWFzLmVsbGVy dEBwaHlzaWNzLnV1LnNlPgorRGF0ZTogVGh1LCAxOCBKdW4gMjAyNiAxODo1NjoyOSArMDIwMAor U3ViamVjdDogW1BBVENIXSBTdXBwb3J0IE9wZW5TU0wgNAorCistLS0KKyBzcmMvY2xpZW50cy9j b21wdXRlL2FyY3Rlc3QuY3BwICAgICAgICAgICAgICAgfCAgNCArKworIHNyYy9oZWQvbGlicy9j cmVkZW50aWFsL0NlcnRVdGlsLmNwcCAgICAgICAgICB8IDI4ICsrKysrLS0tCisgc3JjL2hlZC9s aWJzL2NyZWRlbnRpYWwvQ3JlZGVudGlhbC5jcHAgICAgICAgIHwgNjYgKysrKysrKysrKy0tLS0t LS0tLQorIHNyYy9oZWQvbGlicy9jcmVkZW50aWFsL1Byb3h5Y2VydGluZm8uY3BwICAgICB8ICA2 ICstCisgc3JjL2hlZC9saWJzL2NyZWRlbnRpYWwvVk9NU1V0aWwuY3BwICAgICAgICAgIHwgNDAg KysrKysrLS0tLS0KKyAuLi4vbGlicy9kZWxlZ2F0aW9uL0RlbGVnYXRpb25JbnRlcmZhY2UuY3Bw ICAgfCAxNSArKystLQorIHNyYy9oZWQvbWNjL3Rscy9EZWxlZ2F0aW9uQ29sbGVjdG9yLmNwcCAg ICAgICB8ICA0ICstCisgc3JjL2hlZC9tY2MvdGxzL1BheWxvYWRUTFNNQ0MuY3BwICAgICAgICAg ICAgIHwgIDYgKy0KKyA4IGZpbGVzIGNoYW5nZWQsIDk2IGluc2VydGlvbnMoKyksIDczIGRlbGV0 aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL2NsaWVudHMvY29tcHV0ZS9hcmN0ZXN0LmNwcCBi L3NyYy9jbGllbnRzL2NvbXB1dGUvYXJjdGVzdC5jcHAKK2luZGV4IDE4NGI3ZTUxOC4uMDI0YTAz MzhhIDEwMDY0NAorLS0tIGEvc3JjL2NsaWVudHMvY29tcHV0ZS9hcmN0ZXN0LmNwcAorKysrIGIv c3JjL2NsaWVudHMvY29tcHV0ZS9hcmN0ZXN0LmNwcAorQEAgLTMzNyw3ICszMzcsMTEgQEAgaW50 IGR1bXBqb2JkZXNjcmlwdGlvbl9hcmN0ZXN0X2xlZ2FjeShjb25zdCBBcmM6OlVzZXJDb25maWcm IHVzZXJjZmcsIEFyYzo6RXhlY3UKKyBzdGF0aWMgYm9vbCBnZXRfaGFzaF92YWx1ZShjb25zdCBB cmM6OkNyZWRlbnRpYWwmIGMsIHN0ZDo6c3RyaW5nJiBoYXNoX3N0cikgeworICAgWDUwOSogY2Vy dCA9IGMuR2V0Q2VydCgpOworICAgaWYoIWNlcnQpIHJldHVybiBmYWxzZTsKKysjaWYgKE9QRU5T U0xfVkVSU0lPTl9OVU1CRVIgPCAweDMwMDAwMDAwTCkKKyAgIFg1MDlfTkFNRSogY2VydF9uYW1l ID0gWDUwOV9nZXRfc3ViamVjdF9uYW1lKGNlcnQpOworKyNlbHNlCisrICBjb25zdCBYNTA5X05B TUUqIGNlcnRfbmFtZSA9IFg1MDlfZ2V0X3N1YmplY3RfbmFtZShjZXJ0KTsKKysjZW5kaWYKKyAg IGlmKCFjZXJ0X25hbWUpIHJldHVybiBmYWxzZTsKKyAKKyAgIGNoYXIgaGFzaFszMl07CitkaWZm IC0tZ2l0IGEvc3JjL2hlZC9saWJzL2NyZWRlbnRpYWwvQ2VydFV0aWwuY3BwIGIvc3JjL2hlZC9s aWJzL2NyZWRlbnRpYWwvQ2VydFV0aWwuY3BwCitpbmRleCAwNzc2ZWU3MTYuLjU1MjE3ZWM1YyAx MDA2NDQKKy0tLSBhL3NyYy9oZWQvbGlicy9jcmVkZW50aWFsL0NlcnRVdGlsLmNwcAorKysrIGIv c3JjL2hlZC9saWJzL2NyZWRlbnRpYWwvQ2VydFV0aWwuY3BwCitAQCAtMzA2LDggKzMwNiwxMiBA QCBzdGF0aWMgaW50IHZlcmlmeV9jZXJ0X2FkZGl0aW9uYWwoWDUwOSogY2VydCwgWDUwOV9TVE9S RV9DVFgqIHN0b3JlX2N0eCwgc3RkOjpzdAorIAorIHN0YXRpYyBib29sIGNvbGxlY3RfcHJveHlf aW5mbyhzdGQ6OnN0cmluZyYgcHJveHlfcG9saWN5LCBYNTA5KiBjZXJ0KSB7CisgICAvKipDaGVj ayB0aGUgcHJveHkgY2VydGlmaWNhdGUgaW5mb21hdGlvbiBleHRlbnNpb24qLworKyNpZiAoT1BF TlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4NDAwMDAwMDBMKQorICAgWDUwOV9FWFRFTlNJT04qIGV4 dDsKKy0gIEFTTjFfT0JKRUNUKiBleHRlbnNpb25fb2JqOworKyNlbHNlCisrICBjb25zdCBYNTA5 X0VYVEVOU0lPTiogZXh0OworKyNlbmRpZgorKyAgY29uc3QgQVNOMV9PQkpFQ1QqIGV4dGVuc2lv bl9vYmo7CisgICBpbnQgaTsKKyAgIGZvciAoaT0wO2k8WDUwOV9nZXRfZXh0X2NvdW50KGNlcnQp O2krKykgeworICAgICBleHQgPSAoWDUwOV9FWFRFTlNJT04gKikgWDUwOV9nZXRfZXh0KGNlcnQs aSk7CitAQCAtMzU4LDEwICszNjIsMTAgQEAgc3RhdGljIGJvb2wgY29sbGVjdF9wcm94eV9pbmZv KHN0ZDo6c3RyaW5nJiBwcm94eV9wb2xpY3ksIFg1MDkqIGNlcnQpIHsKKyAgICAgICAgICAgICAg IHByb3h5X3BvbGljeS5jbGVhcigpOworICAgICAgICAgICAgICAgaWYoKHByb3h5Y2VydGluZm8t PnByb3h5UG9saWN5KSAmJgorICAgICAgICAgICAgICAgICAgKHByb3h5Y2VydGluZm8tPnByb3h5 UG9saWN5LT5wb2xpY3kpICYmCistICAgICAgICAgICAgICAgICAocHJveHljZXJ0aW5mby0+cHJv eHlQb2xpY3ktPnBvbGljeS0+ZGF0YSkpIHsKKysgICAgICAgICAgICAgICAgIEFTTjFfU1RSSU5H X2dldDBfZGF0YShwcm94eWNlcnRpbmZvLT5wcm94eVBvbGljeS0+cG9saWN5KSkgeworICAgICAg ICAgICAgICAgICBwcm94eV9wb2xpY3kuYXBwZW5kKAorLSAgICAgICAgICAgICAgICAgICAoY2hh ciBjb25zdCopKHByb3h5Y2VydGluZm8tPnByb3h5UG9saWN5LT5wb2xpY3ktPmRhdGEpLAorLSAg ICAgICAgICAgICAgICAgICBwcm94eWNlcnRpbmZvLT5wcm94eVBvbGljeS0+cG9saWN5LT5sZW5n dGgpOworKyAgICAgICAgICAgICAgICAgICAoY2hhciBjb25zdCopIEFTTjFfU1RSSU5HX2dldDBf ZGF0YShwcm94eWNlcnRpbmZvLT5wcm94eVBvbGljeS0+cG9saWN5KSwKKysgICAgICAgICAgICAg ICAgICAgQVNOMV9TVFJJTkdfbGVuZ3RoKHByb3h5Y2VydGluZm8tPnByb3h5UG9saWN5LT5wb2xp Y3kpKTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIC8qIFVzZSA6IGFzIHNlcGFy YXRvciBmb3IgcG9saWNpZXMgcGFyc2VkIGZyb20gZGlmZmVyZW50IHByb3h5IGNlcnRpZmljYXRl Ki8KKyAgICAgICAgICAgICAgIC8qICEhISEgVGFraW5nIGludCBhY2NvdW50IHByZXZpb3VzIHBy b3h5X3BvbGljeS5jbGVhcigpICEhISEKK0BAIC0zODcsOCArMzkxLDEyIEBAIGJvb2wgY2hlY2tf Y2VydF90eXBlKFg1MDkqIGNlcnQsIGNlcnRUeXBlJiB0eXBlKSB7CisgICBib29sIHJldCA9IGZh bHNlOworICAgdHlwZSA9IENFUlRfVFlQRV9FRUM7CisgCistICBBU04xX1NUUklORyogZGF0YTsK KysgIGNvbnN0IEFTTjFfU1RSSU5HKiBkYXRhOworKyNpZiAoT1BFTlNTTF9WRVJTSU9OX05VTUJF UiA8IDB4NDAwMDAwMDBMKQorICAgWDUwOV9FWFRFTlNJT04qIGNlcnRpbmZvX2V4dDsKKysjZWxz ZQorKyAgY29uc3QgWDUwOV9FWFRFTlNJT04qIGNlcnRpbmZvX2V4dDsKKysjZW5kaWYKKyAgIGlu dCBwb2xpY3luaWQ7CisgICBQUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OKiBjZXJ0aW5mb19vcGVu c3NsID0gTlVMTDsKKyAKK0BAIC00MDQsOCArNDEyLDggQEAgYm9vbCBjaGVja19jZXJ0X3R5cGUo WDUwOSogY2VydCwgY2VydFR5cGUmIHR5cGUpIHsKKyAgIH0KKyAKKyAgIFg1MDlfTkFNRSogaXNz dWVyID0gTlVMTDsKKy0gIFg1MDlfTkFNRSogc3ViamVjdCA9IFg1MDlfZ2V0X3N1YmplY3RfbmFt ZShjZXJ0KTsKKy0gIFg1MDlfTkFNRV9FTlRSWSAqIG5hbWVfZW50cnkgPSBOVUxMOworKyAgY29u c3QgWDUwOV9OQU1FKiBzdWJqZWN0ID0gWDUwOV9nZXRfc3ViamVjdF9uYW1lKGNlcnQpOworKyAg Y29uc3QgWDUwOV9OQU1FX0VOVFJZICogbmFtZV9lbnRyeSA9IE5VTEw7CisgICBpZighc3ViamVj dCkgZ290byBlcnI7CisgICBuYW1lX2VudHJ5ID0gWDUwOV9OQU1FX2dldF9lbnRyeShzdWJqZWN0 LCBYNTA5X05BTUVfZW50cnlfY291bnQoc3ViamVjdCktMSk7CisgICBpZighbmFtZV9lbnRyeSkg Z290byBlcnI7CitAQCAtNDEzLDggKzQyMSw4IEBAIGJvb2wgY2hlY2tfY2VydF90eXBlKFg1MDkq IGNlcnQsIGNlcnRUeXBlJiB0eXBlKSB7CisgICAgIC8qIHRoZSBuYW1lIGVudHJ5IGlzIG9mIHRo ZSB0eXBlOiBjb21tb24gbmFtZSAqLworICAgICBkYXRhID0gWDUwOV9OQU1FX0VOVFJZX2dldF9k YXRhKG5hbWVfZW50cnkpOworICAgICBpZighZGF0YSkgZ290byBlcnI7CistICAgIGlmIChkYXRh LT5sZW5ndGggPT0gNSAmJiAhbWVtY21wKGRhdGEtPmRhdGEsInByb3h5Iiw1KSkgeyB0eXBlID0g Q0VSVF9UWVBFX0dTSV8yX1BST1hZOyB9CistICAgIGVsc2UgaWYoZGF0YS0+bGVuZ3RoID09IDEz ICYmICFtZW1jbXAoZGF0YS0+ZGF0YSwibGltaXRlZCBwcm94eSIsMTMpKSB7IHR5cGUgPSBDRVJU X1RZUEVfR1NJXzJfTElNSVRFRF9QUk9YWTsgfQorKyAgICBpZiAoQVNOMV9TVFJJTkdfbGVuZ3Ro KGRhdGEpID09IDUgJiYgIW1lbWNtcChBU04xX1NUUklOR19nZXQwX2RhdGEoZGF0YSksInByb3h5 Iiw1KSkgeyB0eXBlID0gQ0VSVF9UWVBFX0dTSV8yX1BST1hZOyB9CisrICAgIGVsc2UgaWYoQVNO MV9TVFJJTkdfbGVuZ3RoKGRhdGEpID09IDEzICYmICFtZW1jbXAoQVNOMV9TVFJJTkdfZ2V0MF9k YXRhKGRhdGEpLCJsaW1pdGVkIHByb3h5IiwxMykpIHsgdHlwZSA9IENFUlRfVFlQRV9HU0lfMl9M SU1JVEVEX1BST1hZOyB9CisgICAgIGVsc2UgaWYoKGluZGV4ID0gWDUwOV9nZXRfZXh0X2J5X05J RChjZXJ0LCBOSURfcHJveHlDZXJ0SW5mbywgLTEpKSAhPSAtMSkgeworICAgICAgIGNlcnRpbmZv X2V4dCA9IFg1MDlfZ2V0X2V4dChjZXJ0LGluZGV4KTsKKyAgICAgICBpZihYNTA5X0VYVEVOU0lP Tl9nZXRfY3JpdGljYWwoY2VydGluZm9fZXh0KSkgeworQEAgLTQ1Myw3ICs0NjEsNyBAQCBib29s IGNoZWNrX2NlcnRfdHlwZShYNTA5KiBjZXJ0LCBjZXJ0VHlwZSYgdHlwZSkgeworICAgICBYNTA5 X05BTUVfRU5UUlkqIG5ld19uYW1lX2VudHJ5ID0gTlVMTDsKKyAgICAgaWYodHlwZSAhPSBDRVJU X1RZUEVfRUVDICYmIHR5cGUgIT0gQ0VSVF9UWVBFX0NBKSB7CisgICAgICAgaXNzdWVyID0gWDUw OV9OQU1FX2R1cChYNTA5X2dldF9pc3N1ZXJfbmFtZShjZXJ0KSk7CistICAgICAgbmV3X25hbWVf ZW50cnkgPSBYNTA5X05BTUVfRU5UUllfY3JlYXRlX2J5X05JRChOVUxMLCBOSURfY29tbW9uTmFt ZSwgVl9BU04xX0FQUF9DSE9PU0UsIGRhdGEtPmRhdGEsIC0xKTsKKysgICAgICBuZXdfbmFtZV9l bnRyeSA9IFg1MDlfTkFNRV9FTlRSWV9jcmVhdGVfYnlfTklEKE5VTEwsIE5JRF9jb21tb25OYW1l LCBWX0FTTjFfQVBQX0NIT09TRSwgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKGRhdGEpLCAtMSk7Cisg ICAgICAgaWYoIW5ld19uYW1lX2VudHJ5KSBnb3RvIGVycjsKKyAgICAgICBYNTA5X05BTUVfYWRk X2VudHJ5KGlzc3VlcixuZXdfbmFtZV9lbnRyeSxYNTA5X05BTUVfZW50cnlfY291bnQoaXNzdWVy KSwwKTsKKyAgICAgICBYNTA5X05BTUVfRU5UUllfZnJlZShuZXdfbmFtZV9lbnRyeSk7CitkaWZm IC0tZ2l0IGEvc3JjL2hlZC9saWJzL2NyZWRlbnRpYWwvQ3JlZGVudGlhbC5jcHAgYi9zcmMvaGVk L2xpYnMvY3JlZGVudGlhbC9DcmVkZW50aWFsLmNwcAoraW5kZXggNjA5ZjlhMzRkLi40Mzk0OTZl Y2EgMTAwNjQ0CistLS0gYS9zcmMvaGVkL2xpYnMvY3JlZGVudGlhbC9DcmVkZW50aWFsLmNwcAor KysrIGIvc3JjL2hlZC9saWJzL2NyZWRlbnRpYWwvQ3JlZGVudGlhbC5jcHAKK0BAIC03OSwxNSAr NzksMTUgQEAgbmFtZXNwYWNlIEFyYyB7CisgICAgIEVSUl9wcmludF9lcnJvcnNfY2IoJnNzbF9l cnJfY2IsICZDcmVkZW50aWFsTG9nZ2VyKTsKKyAgIH0KKyAKKy0gIFRpbWUgYXNuMV90b191dGN0 aW1lKGNvbnN0IEFTTjFfVVRDVElNRSAqcykgeworKyAgVGltZSBhc24xX3RvX3V0Y3RpbWUoY29u c3QgQVNOMV9USU1FICpzKSB7CisgICAgIGlmKHMgPT0gTlVMTCkgcmV0dXJuIFRpbWUoKTsKKyAg ICAgc3RkOjpzdHJpbmcgdF9zdHI7CistICAgIGlmKHMtPnR5cGUgPT0gVl9BU04xX1VUQ1RJTUUp IHsKKysgICAgaWYoQVNOMV9TVFJJTkdfdHlwZShzKSA9PSBWX0FTTjFfVVRDVElNRSkgeworICAg ICAgIHRfc3RyLmFwcGVuZCgiMjAiKTsKKy0gICAgICB0X3N0ci5hcHBlbmQoKGNoYXIqKShzLT5k YXRhKSk7CisrICAgICAgdF9zdHIuYXBwZW5kKChjb25zdCBjaGFyKikgQVNOMV9TVFJJTkdfZ2V0 MF9kYXRhKHMpKTsKKyAgICAgfQorICAgICBlbHNlIHsvL1ZfQVNOMV9HRU5FUkFMSVpFRFRJTUUK Ky0gICAgICB0X3N0ci5hcHBlbmQoKGNoYXIqKShzLT5kYXRhKSk7CisrICAgICAgdF9zdHIuYXBw ZW5kKChjb25zdCBjaGFyKikgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKHMpKTsKKyAgICAgfQorICAg ICByZXR1cm4gVGltZSh0X3N0cik7CisgICB9CitAQCAtMTI0LDcgKzEyNCw3IEBAIG5hbWVzcGFj ZSBBcmMgeworICAgLy9HZXQgdGhlIGxpZmUgdGltZSBvZiB0aGUgY3JlZGVudGlhbAorICAgdm9p ZCBDcmVkZW50aWFsOjpHZXRMaWZldGltZShTVEFDS19PRihYNTA5KSBjb25zdCAqIGNlcnRjaGFp biwgWDUwOSBjb25zdCAqIGNlcnQsIFRpbWUmIHN0YXJ0LCBQZXJpb2QgJmxpZmV0aW1lKSB7Cisg ICAgIFRpbWUgc3RhcnRfdGltZSgtMSksIGVuZF90aW1lKC0xKTsKKy0gICAgQVNOMV9VVENUSU1F KiBhdGltZSA9IE5VTEw7CisrICAgIGNvbnN0IEFTTjFfVVRDVElNRSogYXRpbWUgPSBOVUxMOwor IAorICAgICBpZihjZXJ0ID09IE5VTEwpIHsKKyAgICAgICBzdGFydCA9IFRpbWUoKTsKK0BAIC0x MzUsMjAgKzEzNSwyMCBAQCBuYW1lc3BhY2UgQXJjIHsKKyAgICAgaWYoY2VydGNoYWluKSBmb3Ig KGludCBuID0gMDsgbiA8IHNrX1g1MDlfbnVtKGNlcnRjaGFpbik7IG4rKykgeworICAgICAgIFg1 MDkqIHRtcF9jZXJ0ID0gc2tfWDUwOV92YWx1ZShjZXJ0Y2hhaW4sIG4pOworIAorLSAgICAgIGF0 aW1lID0gWDUwOV9nZXRtX25vdEFmdGVyKHRtcF9jZXJ0KTsKKysgICAgICBhdGltZSA9IFg1MDlf Z2V0MF9ub3RBZnRlcih0bXBfY2VydCk7CisgICAgICAgVGltZSBlID0gYXNuMV90b191dGN0aW1l KGF0aW1lKTsKKyAgICAgICBpZiAoZW5kX3RpbWUgPT0gVGltZSgtMSkgfHwgZSA8IGVuZF90aW1l KSB7IGVuZF90aW1lID0gZTsgfQorIAorLSAgICAgIGF0aW1lID0gWDUwOV9nZXRtX25vdEJlZm9y ZSh0bXBfY2VydCk7CisrICAgICAgYXRpbWUgPSBYNTA5X2dldDBfbm90QmVmb3JlKHRtcF9jZXJ0 KTsKKyAgICAgICBUaW1lIHMgPSBhc24xX3RvX3V0Y3RpbWUoYXRpbWUpOworICAgICAgIGlmIChz dGFydF90aW1lID09IFRpbWUoLTEpIHx8IHMgPiBzdGFydF90aW1lKSB7IHN0YXJ0X3RpbWUgPSBz OyB9CisgICAgIH0KKyAKKy0gICAgYXRpbWUgPSBYNTA5X2dldG1fbm90QWZ0ZXIoY2VydCk7Cisr ICAgIGF0aW1lID0gWDUwOV9nZXQwX25vdEFmdGVyKGNlcnQpOworICAgICBUaW1lIGUgPSBhc24x X3RvX3V0Y3RpbWUoYXRpbWUpOworICAgICBpZiAoZW5kX3RpbWUgPT0gVGltZSgtMSkgfHwgZSA8 IGVuZF90aW1lKSB7IGVuZF90aW1lID0gZTsgfQorIAorLSAgICBhdGltZSA9IFg1MDlfZ2V0bV9u b3RCZWZvcmUoY2VydCk7CisrICAgIGF0aW1lID0gWDUwOV9nZXQwX25vdEJlZm9yZShjZXJ0KTsK KyAgICAgVGltZSBzID0gYXNuMV90b191dGN0aW1lKGF0aW1lKTsKKyAgICAgaWYgKHN0YXJ0X3Rp bWUgPT0gVGltZSgtMSkgfHwgcyA+IHN0YXJ0X3RpbWUpIHsgc3RhcnRfdGltZSA9IHM7IH0KKyAK K0BAIC0yNDksNyArMjQ5LDcgQEAgbmFtZXNwYWNlIEFyYyB7CisgICB9CisgCisgICBzdGQ6OnN0 cmluZyBDcmVkZW50aWFsOjpHZXRETih2b2lkKSBjb25zdCB7CistICAgIFg1MDlfTkFNRSAqc3Vi amVjdCA9IE5VTEw7CisrICAgIGNvbnN0IFg1MDlfTkFNRSAqc3ViamVjdCA9IE5VTEw7CisgICAg IGlmKCFjZXJ0XykgcmV0dXJuICIiOworICAgICBzdWJqZWN0ID0gWDUwOV9nZXRfc3ViamVjdF9u YW1lKGNlcnRfKTsKKyAgICAgc3RkOjpzdHJpbmcgc3RyOworQEAgLTI2OSwxOSArMjY5LDE3IEBA IG5hbWVzcGFjZSBBcmMgeworICAgICBpZighY2VydF8pIHJldHVybiAiIjsKKyAgICAgc3ViamVj dCA9IFg1MDlfTkFNRV9kdXAoWDUwOV9nZXRfc3ViamVjdF9uYW1lKGNlcnRfKSk7CisgCistICAg IEFTTjFfU1RSSU5HKiBlbnRyeTsKKysgICAgY29uc3QgQVNOMV9TVFJJTkcqIGVudHJ5OworICAg ICBzdGQ6OnN0cmluZyBlbnRyeV9zdHI7CisgICAgIGZvcig7OykgeworLSAgICAgIFg1MDlfTkFN RV9FTlRSWSAqbmUgPSBYNTA5X05BTUVfZ2V0X2VudHJ5KHN1YmplY3QsIFg1MDlfTkFNRV9lbnRy eV9jb3VudChzdWJqZWN0KS0xKTsKKysgICAgICBjb25zdCBYNTA5X05BTUVfRU5UUlkgKm5lID0g WDUwOV9OQU1FX2dldF9lbnRyeShzdWJqZWN0LCBYNTA5X05BTUVfZW50cnlfY291bnQoc3ViamVj dCktMSk7CisgICAgICAgaWYgKCFPQkpfY21wKFg1MDlfTkFNRV9FTlRSWV9nZXRfb2JqZWN0KG5l KSxPQkpfbmlkMm9iaihOSURfY29tbW9uTmFtZSkpKSB7CisgICAgICAgICBlbnRyeSA9IFg1MDlf TkFNRV9FTlRSWV9nZXRfZGF0YShuZSk7CistICAgICAgICBlbnRyeV9zdHIuYXNzaWduKChjb25z dCBjaGFyKikoZW50cnktPmRhdGEpLCAoc3RkOjpzaXplX3QpKGVudHJ5LT5sZW5ndGgpKTsKKysg ICAgICAgIGVudHJ5X3N0ci5hc3NpZ24oKGNvbnN0IGNoYXIqKSBBU04xX1NUUklOR19nZXQwX2Rh dGEoZW50cnkpLCAoc3RkOjpzaXplX3QpIEFTTjFfU1RSSU5HX2xlbmd0aChlbnRyeSkpOworICAg ICAgICAgaWYoZW50cnlfc3RyID09ICJwcm94eSIgfHwgZW50cnlfc3RyID09ICJsaW1pdGVkIHBy b3h5IiB8fAorICAgICAgICAgICAgZW50cnlfc3RyLmZpbmRfZmlyc3Rfbm90X29mKCIwMTIzNDU2 Nzg5IikgPT0gc3RkOjpzdHJpbmc6Om5wb3MpIHsKKyAgICAgICAgICAgLy9Ecm9wIHRoZSBuYW1l IGVudHJ5ICJwcm94eSIsICJsaW1pdGVkIHByb3h5Iiwgb3IgdGhlIHJhbmRvbSBkaWdpdGFsKFJG QykKKy0gICAgICAgICAgbmUgPSBYNTA5X05BTUVfZGVsZXRlX2VudHJ5KHN1YmplY3QsIFg1MDlf TkFNRV9lbnRyeV9jb3VudChzdWJqZWN0KS0xKTsKKy0gICAgICAgICAgWDUwOV9OQU1FX0VOVFJZ X2ZyZWUobmUpOworLSAgICAgICAgICBuZSA9IE5VTEw7CisrICAgICAgICAgIFg1MDlfTkFNRV9F TlRSWV9mcmVlKFg1MDlfTkFNRV9kZWxldGVfZW50cnkoc3ViamVjdCwgWDUwOV9OQU1FX2VudHJ5 X2NvdW50KHN1YmplY3QpLTEpKTsKKyAgICAgICAgIH0KKyAgICAgICAgIGVsc2UgYnJlYWs7Cisg ICAgICAgfQorQEAgLTMwNSw3ICszMDMsNyBAQCBuYW1lc3BhY2UgQXJjIHsKKyAgIH0KKyAKKyAg IHN0ZDo6c3RyaW5nIENyZWRlbnRpYWw6OkdldElzc3Vlck5hbWUodm9pZCkgY29uc3QgeworLSAg ICBYNTA5X05BTUUgKmlzc3VlciA9IE5VTEw7CisrICAgIGNvbnN0IFg1MDlfTkFNRSAqaXNzdWVy ID0gTlVMTDsKKyAgICAgaWYoIWNlcnRfKSByZXR1cm4gIiI7CisgICAgIGlzc3VlciA9IFg1MDlf Z2V0X2lzc3Vlcl9uYW1lKGNlcnRfKTsKKyAgICAgc3RkOjpzdHJpbmcgc3RyOworQEAgLTMyNyw3 ICszMjUsNyBAQCBuYW1lc3BhY2UgQXJjIHsKKyAgICAgICAvLyBUaGlzIHdvcmtzIGV2ZW4gaWYg bGFzdCBjZXJ0IG9uIGNoYWluIGlzIENBCisgICAgICAgLy8gaXRzZWxmIGJlY2F1c2UgQ0EgaXMg c2VsZi1zaWduZWQuCisgICAgICAgWDUwOSAqY2FjZXJ0ID0gc2tfWDUwOV92YWx1ZShjZXJ0X2No YWluXywgbnVtLTEpOworLSAgICAgIFg1MDlfTkFNRSAqY2FuYW1lID0gWDUwOV9nZXRfaXNzdWVy X25hbWUoY2FjZXJ0KTsKKysgICAgICBjb25zdCBYNTA5X05BTUUgKmNhbmFtZSA9IFg1MDlfZ2V0 X2lzc3Vlcl9uYW1lKGNhY2VydCk7CisgICAgICAgaWYoY2FuYW1lIT1OVUxMKSB7CisgICAgICAg ICBjaGFyKiBidWYgPSBYNTA5X05BTUVfb25lbGluZShjYW5hbWUsTlVMTCwwKTsKKyAgICAgICAg IGlmKGJ1ZikgeworQEAgLTExNTgsMTYgKzExNTYsMTIgQEAgbmFtZXNwYWNlIEFyYyB7CisgICAg ICAgcmV0dXJuIE5VTEw7CisgICAgIH0KKyAKKy0gICAgLy9BU04xX09DVEVUX1NUUklOR19zZXQo ZXh0X29jdCwgZGF0YS5jX3N0cigpLCBkYXRhLnNpemUoKSk7CistICAgIGV4dF9vY3QtPmRhdGEg PSAodW5zaWduZWQgY2hhciopIG1hbGxvYyhkYXRhLnNpemUoKSk7CistICAgIGlmKCEoZXh0X29j dC0+ZGF0YSkpIHsKKysgICAgaWYgKEFTTjFfT0NURVRfU1RSSU5HX3NldChleHRfb2N0LCAoY29u c3QgdW5zaWduZWQgY2hhciAqKSBkYXRhLmNfc3RyKCksIGRhdGEuc2l6ZSgpKSA9PSAwKSB7Cisg ICAgICAgQ3JlZGVudGlhbExvZ2dlci5tc2coRVJST1IsICJDYW4gbm90IGFsbG9jYXRlIG1lbW9y eSBmb3IgZXh0ZW5zaW9uIGZvciBwcm94eSBjZXJ0aWZpY2F0ZSIpOworICAgICAgIGlmKGV4dF9v Y3QpIEFTTjFfT0NURVRfU1RSSU5HX2ZyZWUoZXh0X29jdCk7CisgICAgICAgaWYoZXh0X29iaikg QVNOMV9PQkpFQ1RfZnJlZShleHRfb2JqKTsKKyAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgfQor LSAgICBtZW1jcHkoZXh0X29jdC0+ZGF0YSwgZGF0YS5jX3N0cigpLCBkYXRhLnNpemUoKSk7Cist ICAgIGV4dF9vY3QtPmxlbmd0aCA9IGRhdGEuc2l6ZSgpOworIAorICAgICBYNTA5X0VYVEVOU0lP TiogZXh0ID0gTlVMTDsKKyAgICAgaWYgKCEoZXh0ID0gWDUwOV9FWFRFTlNJT05fY3JlYXRlX2J5 X09CSihOVUxMLCBleHRfb2JqLCBjcml0LCBleHRfb2N0KSkpIHsKK0BAIC0xNzA4LDE0ICsxNzAy LDE0IEBAIG5hbWVzcGFjZSBBcmMgeworICAgICByZXFfZXh0ZW5zaW9ucyA9IFg1MDlfUkVRX2dl dF9leHRlbnNpb25zKHJlcV8pOworICAgICBmb3IoaT0wO2k8c2tfWDUwOV9FWFRFTlNJT05fbnVt KHJlcV9leHRlbnNpb25zKTtpKyspIHsKKyAgICAgICBYNTA5X0VYVEVOU0lPTiogZXh0ID0gc2tf WDUwOV9FWFRFTlNJT05fdmFsdWUocmVxX2V4dGVuc2lvbnMsaSk7CistICAgICAgQVNOMV9PQkpF Q1QqIGV4dGVuc2lvbl9vaWQgPSBYNTA5X0VYVEVOU0lPTl9nZXRfb2JqZWN0KGV4dCk7CisrICAg ICAgY29uc3QgQVNOMV9PQkpFQ1QqIGV4dGVuc2lvbl9vaWQgPSBYNTA5X0VYVEVOU0lPTl9nZXRf b2JqZWN0KGV4dCk7CisgICAgICAgaW50IG5pZCA9IE9CSl9vYmoybmlkKGV4dGVuc2lvbl9vaWQp OworICAgICAgIGlmKG5pZCA9PSBOSURfcHJveHlDZXJ0SW5mbykgeworICAgICAgICAgaWYocHJv eHlfY2VydF9pbmZvXykgeworICAgICAgICAgICBQUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OX2Zy ZWUocHJveHlfY2VydF9pbmZvXyk7CisgICAgICAgICAgIHByb3h5X2NlcnRfaW5mb18gPSBOVUxM OworICAgICAgICAgfQorLSAgICAgICAgQVNOMV9PQ1RFVF9TVFJJTkcqIGRhdGEgPSBYNTA5X0VY VEVOU0lPTl9nZXRfZGF0YShleHQpOworKyAgICAgICAgY29uc3QgQVNOMV9PQ1RFVF9TVFJJTkcq IGRhdGEgPSBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpOworICAgICAgICAgaWYoIWRhdGEp IHsKKyAgICAgICAgICAgIENyZWRlbnRpYWxMb2dnZXIubXNnKEVSUk9SLCAiTWlzc2luZyBkYXRh IGluIERFUiBlbmNvZGVkIFBST1hZX0NFUlRfSU5GT19FWFRFTlNJT04gZXh0ZW5zaW9uIik7Cisg ICAgICAgICAgICBMb2dFcnJvcigpOyBnb3RvIGVycjsKK0BAIC0xOTU0LDcgKzE5NDgsMTEgQEAg ZXJyOgorICAgICBpbnQgbnVtOworICAgICBpZiAoKG51bSA9IFg1MDlfZ2V0X2V4dF9jb3VudChj ZXJ0XykpID4gMCkgeworICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKKysj aWYgKE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDQwMDAwMDAwTCkKKyAgICAgICAgIFg1MDlf RVhURU5TSU9OICpleHQ7CisrI2Vsc2UKKysgICAgICAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICpl eHQ7CisrI2VuZGlmCisgICAgICAgICBjb25zdCBjaGFyICpleHRuYW1lOworIAorICAgICAgICAg ZXh0ID0gWDUwOV9nZXRfZXh0KGNlcnRfLCBpKTsKK0BAIC0xOTcwLDE4ICsxOTY4LDE4IEBAIGVy cjoKKyAgICAgICAgICAgLy9HZXQgeDUwOSBleHRlbnNpb24gbWV0aG9kIHN0cnVjdHVyZQorICAg ICAgICAgICBpZiAoIShtZXRob2QgPSAoWDUwOVYzX0VYVF9NRVRIT0QgKikoWDUwOVYzX0VYVF9n ZXQoZXh0KSkpKSBicmVhazsKKyAKKy0gICAgICAgICAgQVNOMV9PQ1RFVF9TVFJJTkcqIGV4dHZh bHVlID0gWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KTsKKy0gICAgICAgICAgZXh0X3ZhbHVl X2RhdGEgPSBleHR2YWx1ZS0+ZGF0YTsKKysgICAgICAgICAgY29uc3QgQVNOMV9PQ1RFVF9TVFJJ TkcqIGV4dHZhbHVlID0gWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KTsKKysgICAgICAgICAg ZXh0X3ZhbHVlX2RhdGEgPSBBU04xX1NUUklOR19nZXQwX2RhdGEoZXh0dmFsdWUpOworIAorICAg ICAgICAgICAvL0RlY29kZSBBU04xIGl0ZW0gaW4gZGF0YQorICAgICAgICAgICBpZiAobWV0aG9k LT5pdCkgeworICAgICAgICAgICAgICAgIC8vTmV3IHN0eWxlIEFTTjEKKy0gICAgICAgICAgICAg ICBleHRzdHIgPSBBU04xX2l0ZW1fZDJpKE5VTEwsICZleHRfdmFsdWVfZGF0YSwgZXh0dmFsdWUt Pmxlbmd0aCwKKysgICAgICAgICAgICAgICBleHRzdHIgPSBBU04xX2l0ZW1fZDJpKE5VTEwsICZl eHRfdmFsdWVfZGF0YSwgQVNOMV9TVFJJTkdfbGVuZ3RoKGV4dHZhbHVlKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTTjFfSVRFTV9wdHIobWV0aG9kLT5pdCkpOwor ICAgICAgICAgICB9CisgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vT2xkIHN0 eWxlIEFTTjEKKy0gICAgICAgICAgICAgICBleHRzdHIgPSBtZXRob2QtPmQyaShOVUxMLCAmZXh0 X3ZhbHVlX2RhdGEsIGV4dHZhbHVlLT5sZW5ndGgpOworKyAgICAgICAgICAgICAgIGV4dHN0ciA9 IG1ldGhvZC0+ZDJpKE5VTEwsICZleHRfdmFsdWVfZGF0YSwgQVNOMV9TVFJJTkdfbGVuZ3RoKGV4 dHZhbHVlKSk7CisgICAgICAgICAgIH0KKyAKKyAgICAgICAgICAgdmFsID0gbWV0aG9kLT5pMnYo bWV0aG9kLCBleHRzdHIsIE5VTEwpOworQEAgLTIxMDAsMTIgKzIwOTgsMTYgQEAgZXJyOgorIAor ICAgICBwb3NpdGlvbiA9IFg1MDlfZ2V0X2V4dF9ieV9OSUQoaXNzdWVyLCBOSURfZXh0X2tleV91 c2FnZSwgLTEpOworICAgICBpZihwb3NpdGlvbiA+IC0xKSB7CistICAgICAgWDUwOV9FWFRFTlNJ T04qIGV4dCA9IE5VTEw7CistICAgICAgaWYoIShleHQgPSBYNTA5X2dldF9leHQoaXNzdWVyLCBw b3NpdGlvbikpKSB7CisrI2lmIChPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgzMDAwMDAwMEwp CisrICAgICAgWDUwOV9FWFRFTlNJT04qIGV4dDA7CisrI2Vsc2UKKysgICAgICBjb25zdCBYNTA5 X0VYVEVOU0lPTiogZXh0MDsKKysjZW5kaWYKKysgICAgICBpZighKGV4dDAgPSBYNTA5X2dldF9l eHQoaXNzdWVyLCBwb3NpdGlvbikpKSB7CisgICAgICAgICBDcmVkZW50aWFsTG9nZ2VyLm1zZyhF UlJPUiwgIkNhbiBub3QgZ2V0IGV4dGVuZGVkIEtleVVzYWdlIGV4dGVuc2lvbiBmcm9tIGlzc3Vl ciBjZXJ0aWZpY2F0ZSIpOworICAgICAgICAgTG9nRXJyb3IoKTsgZ290byBlcnI7CisgICAgICAg fQorLSAgICAgIGV4dCA9IFg1MDlfRVhURU5TSU9OX2R1cChleHQpOworKyAgICAgIFg1MDlfRVhU RU5TSU9OKiBleHQgPSBYNTA5X0VYVEVOU0lPTl9kdXAoZXh0MCk7CisgICAgICAgaWYoIWV4dCkg eworICAgICAgICAgQ3JlZGVudGlhbExvZ2dlci5tc2coRVJST1IsICJDYW4gbm90IGNvcHkgZXh0 ZW5kZWQgS2V5VXNhZ2UgZXh0ZW5zaW9uIik7CisgICAgICAgICBMb2dFcnJvcigpOyBnb3RvIGVy cjsKK2RpZmYgLS1naXQgYS9zcmMvaGVkL2xpYnMvY3JlZGVudGlhbC9Qcm94eWNlcnRpbmZvLmNw cCBiL3NyYy9oZWQvbGlicy9jcmVkZW50aWFsL1Byb3h5Y2VydGluZm8uY3BwCitpbmRleCBhZjI0 YWZkNWUuLjZmMGYyMTRmNyAxMDA2NDQKKy0tLSBhL3NyYy9oZWQvbGlicy9jcmVkZW50aWFsL1By b3h5Y2VydGluZm8uY3BwCisrKysgYi9zcmMvaGVkL2xpYnMvY3JlZGVudGlhbC9Qcm94eWNlcnRp bmZvLmNwcAorQEAgLTU0LDEyICs1NCwxMiBAQCBpbnQgUFJPWFlfUE9MSUNZX3NldF9wb2xpY3ko UFJPWFlfUE9MSUNZICogcHJveHlwb2xpY3ksIHVuc2lnbmVkIGNoYXIgKiBwb2xpY3ksCisgdW5z aWduZWQgY2hhciAqIFBST1hZX1BPTElDWV9nZXRfcG9saWN5KFBST1hZX1BPTElDWSAqIHByb3h5 cG9saWN5LCBpbnQgKiBsZW5ndGgpIHsKKyAgIC8qIGFzc3VyZSBmaWVsZCBwb2xpY3kgaXMgc2V0 ICovCisgICBpZihwcm94eXBvbGljeS0+cG9saWN5KSB7CistICAgICpsZW5ndGggPSBwcm94eXBv bGljeS0+cG9saWN5LT5sZW5ndGg7CisrICAgICpsZW5ndGggPSBBU04xX1NUUklOR19sZW5ndGgo cHJveHlwb2xpY3ktPnBvbGljeSk7CisgICAgIC8qIGFzc3VyZSBBU04xX09DVEVUX1NUUklORyBp cyBmdWxsICovCistICAgIGlmICgqbGVuZ3RoPjAgJiYgcHJveHlwb2xpY3ktPnBvbGljeS0+ZGF0 YSkgeworKyAgICBpZiAoKmxlbmd0aCA+IDAgJiYgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKHByb3h5 cG9saWN5LT5wb2xpY3kpKSB7CisgICAgICAgdW5zaWduZWQgY2hhciAqIGNvcHkgPSAodW5zaWdu ZWQgY2hhciopIG1hbGxvYygqbGVuZ3RoKTsKKyAgICAgICBpZihjb3B5KSB7CistICAgICAgICBt ZW1jcHkoY29weSwgcHJveHlwb2xpY3ktPnBvbGljeS0+ZGF0YSwgKmxlbmd0aCk7CisrICAgICAg ICBtZW1jcHkoY29weSwgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKHByb3h5cG9saWN5LT5wb2xpY3kp LCAqbGVuZ3RoKTsKKyAgICAgICAgIHJldHVybiBjb3B5OworICAgICAgIH0KKyAgICAgfQorZGlm ZiAtLWdpdCBhL3NyYy9oZWQvbGlicy9jcmVkZW50aWFsL1ZPTVNVdGlsLmNwcCBiL3NyYy9oZWQv bGlicy9jcmVkZW50aWFsL1ZPTVNVdGlsLmNwcAoraW5kZXggMmI0ZjEzMzVmLi44YTRhNThlYTgg MTAwNjQ0CistLS0gYS9zcmMvaGVkL2xpYnMvY3JlZGVudGlhbC9WT01TVXRpbC5jcHAKKysrKyBi L3NyYy9oZWQvbGlicy9jcmVkZW50aWFsL1ZPTVNVdGlsLmNwcAorQEAgLTgxOCw3ICs4MTgsNyBA QCBlcnI6CisgICAgICAgLy8gY29uc3RfY2FzdCBoYWNrIGR1ZSB0byBtaXNzaW5nIHNldCBtZXRo b2QKKyAgICAgICBjb25zdCBBU04xX0JJVF9TVFJJTkcqIGJzdHIgPSBYNTA5X0FDRVJUX2dldDBf aXNzdWVyVUlEKGEpOworICAgICAgIGlmKGJzdHIpCistICAgICAgICBBU04xX0JJVF9TVFJJTkdf c2V0KGNvbnN0X2Nhc3Q8QVNOMV9CSVRfU1RSSU5HKj4oYnN0ciksIHVpZC0+ZGF0YSwgdWlkLT5s ZW5ndGgpOworKyAgICAgICAgQVNOMV9CSVRfU1RSSU5HX3NldChjb25zdF9jYXN0PEFTTjFfQklU X1NUUklORyo+KGJzdHIpLCBjb25zdF9jYXN0PHVuc2lnbmVkIGNoYXIqPihBU04xX1NUUklOR19n ZXQwX2RhdGEodWlkKSksIEFTTjFfU1RSSU5HX2xlbmd0aCh1aWQpKTsKKyAgICAgfQorIAorICAg ICBpZihhbGcxKSB7CitAQCAtMTQ1NSw3ICsxNDU1LDcgQEAgZXJyOgorICAgICBHRU5FUkFMX05B TUUgKmRhdGEgPSBza19HRU5FUkFMX05BTUVfdmFsdWUoT1NTTF9JRVRGX0FUVFJfU1lOVEFYX2dl dDBfcG9saWN5QXV0aG9yaXR5KGNhcGF0dHIpLCAwKTsKKyAgICAgaWYgKGRhdGEgJiYgZGF0YS0+ dHlwZSA9PSBHRU5fVVJJKSB7CisgICAgICAgc3RkOjpzdHJpbmcgdm9uYW1lKCIvdm9uYW1lPSIp OworLSAgICAgIHZvbmFtZS5hcHBlbmQoKGNvbnN0IGNoYXIqKShkYXRhLT5kLmlhNS0+ZGF0YSks IGRhdGEtPmQuaWE1LT5sZW5ndGgpOworKyAgICAgIHZvbmFtZS5hcHBlbmQoKGNvbnN0IGNoYXIq KSBBU04xX1NUUklOR19nZXQwX2RhdGEoZGF0YS0+ZC5pYTUpLCBBU04xX1NUUklOR19sZW5ndGgo ZGF0YS0+ZC5pYTUpKTsKKyAgICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIHBvcyA9IHZvbmFt ZS5maW5kKCI6Ly8iKTsKKyAgICAgICBpZihwb3MgIT0gc3RkOjpzdHJpbmc6Om5wb3MpIHsKKyAg ICAgICAgIHZvbmFtZS5yZXBsYWNlKHBvcywzLCIvaG9zdG5hbWU9Iik7CitAQCAtMTQ3OSw3ICsx NDc5LDcgQEAgZXJyOgorICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgIH0KKyAKKy0gICAg ICBzdGQ6OnN0cmluZyBmcWFuKChjb25zdCBjaGFyKikoY2FwbmFtZS0+ZGF0YSksIGNhcG5hbWUt Pmxlbmd0aCk7CisrICAgICAgc3RkOjpzdHJpbmcgZnFhbigoY29uc3QgY2hhciopIEFTTjFfU1RS SU5HX2dldDBfZGF0YShjYXBuYW1lKSwgQVNOMV9TVFJJTkdfbGVuZ3RoKGNhcG5hbWUpKTsKKyAK KyAgICAgICAvLyBpZiB0aGUgYXR0cmlidXRlIGlzIGxpa2U6IC9rbm93YXJjLmV1L1JvbGU9TlVM TC9DYXBhYmlsaXR5PU5VTEwKKyAgICAgICAvLyBvciAva25vd2FyYy5ldS9Sb2xlPXRlc3Rlci9D YXBhYmlsaXR5PU5VTEwKK0BAIC0xNTMzLDcgKzE1MzMsNyBAQCBlcnI6CisgICAgICAgU1RBQ0tf T0YoQUNfQVRUUklCVVRFKSAqYXR0cyA9IGhvbGRlci0+YXR0cmlidXRlczsKKyAKKyAgICAgICBn biA9IHNrX0dFTkVSQUxfTkFNRV92YWx1ZShob2xkZXItPmdyYW50b3IsIDApOworLSAgICAgIGdy YW50b3IuYXNzaWduKChjb25zdCBjaGFyKikoZ24tPmQuaWE1LT5kYXRhKSwgZ24tPmQuaWE1LT5s ZW5ndGgpOworKyAgICAgIGdyYW50b3IuYXNzaWduKChjb25zdCBjaGFyKikgQVNOMV9TVFJJTkdf Z2V0MF9kYXRhKGduLT5kLmlhNSksIEFTTjFfU1RSSU5HX2xlbmd0aChnbi0+ZC5pYTUpKTsKKyAg ICAgICBpZihncmFudG9yLmVtcHR5KCkpIHsKKyAgICAgICAgIENyZWRlbnRpYWxMb2dnZXIubXNn KEVSUk9SLCJWT01TOiB0aGUgZ3JhbnRvciBhdHRyaWJ1dGUgaXMgZW1wdHkiKTsKKyAgICAgICAg IHN0YXR1cyB8PSBWT01TQUNJbmZvOjpJbnRlcm5hbFBhcnNpbmdGYWlsZWQ7CitAQCAtMTU1MSwx OCArMTU1MSwxOCBAQCBlcnI6CisgICAgICAgICBzdGQ6OnN0cmluZyBhdHRyaWJ1dGU7CisgICAg ICAgICBBQ19BVFRSSUJVVEUgKmF0ID0gc2tfQUNfQVRUUklCVVRFX3ZhbHVlKGF0dHMsIGopOwor IAorLSAgICAgICAgbmFtZS5hc3NpZ24oKGNvbnN0IGNoYXIqKShhdC0+bmFtZS0+ZGF0YSksIGF0 LT5uYW1lLT5sZW5ndGgpOworKyAgICAgICAgbmFtZS5hc3NpZ24oKGNvbnN0IGNoYXIqKSBBU04x X1NUUklOR19nZXQwX2RhdGEoYXQtPm5hbWUpLCBBU04xX1NUUklOR19sZW5ndGgoYXQtPm5hbWUp KTsKKyAgICAgICAgIGlmKG5hbWUuZW1wdHkoKSkgeworICAgICAgICAgICBDcmVkZW50aWFsTG9n Z2VyLm1zZyhFUlJPUiwiVk9NUzogdGhlIGF0dHJpYnV0ZSBuYW1lIGlzIGVtcHR5Iik7CisgICAg ICAgICAgIHN0YXR1cyB8PSBWT01TQUNJbmZvOjpJbnRlcm5hbFBhcnNpbmdGYWlsZWQ7CisgICAg ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgIH0KKy0gICAgICAgIHZhbHVlLmFzc2lnbigo Y29uc3QgY2hhciopKGF0LT52YWx1ZS0+ZGF0YSksIGF0LT52YWx1ZS0+bGVuZ3RoKTsKKysgICAg ICAgIHZhbHVlLmFzc2lnbigoY29uc3QgY2hhciopIEFTTjFfU1RSSU5HX2dldDBfZGF0YShhdC0+ dmFsdWUpLCBBU04xX1NUUklOR19sZW5ndGgoYXQtPnZhbHVlKSk7CisgICAgICAgICBpZih2YWx1 ZS5lbXB0eSgpKSB7CisgICAgICAgICAgIENyZWRlbnRpYWxMb2dnZXIubXNnKFdBUk5JTkcsIlZP TVM6IHRoZSBhdHRyaWJ1dGUgdmFsdWUgZm9yICVzIGlzIGVtcHR5IiwgbmFtZS5jX3N0cigpKTsK KyAgICAgICAgICAgLy9yZXR1cm4gZmFsc2U7CisgICAgICAgICB9CistICAgICAgICBxdWFsaWZp ZXIuYXNzaWduKChjb25zdCBjaGFyKikoYXQtPnF1YWxpZmllci0+ZGF0YSksIGF0LT5xdWFsaWZp ZXItPmxlbmd0aCk7CisrICAgICAgICBxdWFsaWZpZXIuYXNzaWduKChjb25zdCBjaGFyKikgQVNO MV9TVFJJTkdfZ2V0MF9kYXRhKGF0LT5xdWFsaWZpZXIpLCBBU04xX1NUUklOR19sZW5ndGgoYXQt PnF1YWxpZmllcikpOworICAgICAgICAgaWYocXVhbGlmaWVyLmVtcHR5KCkpIHsKKyAgICAgICAg ICAgQ3JlZGVudGlhbExvZ2dlci5tc2coRVJST1IsIlZPTVM6IHRoZSBhdHRyaWJ1dGUgcXVhbGlm aWVyIGlzIGVtcHR5Iik7CisgICAgICAgICAgIHN0YXR1cyB8PSBWT01TQUNJbmZvOjpJbnRlcm5h bFBhcnNpbmdGYWlsZWQ7CitAQCAtMTc5NCwxNCArMTc5NCwxNCBAQCBlcnI6CisgICAgICAgICBp ZiAoaXNzKSB7CisgICAgICAgICAgIGlmIChrZXktPmtleWlkKSB7CisgICAgICAgICAgICAgdW5z aWduZWQgY2hhciBoYXNoZWRbMjBdOworLSAgICAgICAgICAgIEFTTjFfQklUX1NUUklORyogcGtl eXN0ciA9IFg1MDlfZ2V0MF9wdWJrZXlfYml0c3RyKGlzcyk7CistICAgICAgICAgICAgaWYgKCFT SEExKHBrZXlzdHItPmRhdGEsCistICAgICAgICAgICAgICAgICAgICAgIHBrZXlzdHItPmxlbmd0 aCwKKysgICAgICAgICAgICBjb25zdCBBU04xX0JJVF9TVFJJTkcqIHBrZXlzdHIgPSBYNTA5X2dl dDBfcHVia2V5X2JpdHN0cihpc3MpOworKyAgICAgICAgICAgIGlmICghU0hBMShBU04xX1NUUklO R19nZXQwX2RhdGEocGtleXN0ciksCisrICAgICAgICAgICAgICAgICAgICAgIEFTTjFfU1RSSU5H X2xlbmd0aChwa2V5c3RyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgaGFzaGVkKSkKKyAgICAg ICAgICAgICAgIGtleWVyciA9IHRydWU7CisgCistICAgICAgICAgICAgaWYgKChtZW1jbXAoa2V5 LT5rZXlpZC0+ZGF0YSwgaGFzaGVkLCAyMCkgIT0gMCkgJiYKKy0gICAgICAgICAgICAgICAgKGtl eS0+a2V5aWQtPmxlbmd0aCA9PSAyMCkpCisrICAgICAgICAgICAgaWYgKChtZW1jbXAoQVNOMV9T VFJJTkdfZ2V0MF9kYXRhKGtleS0+a2V5aWQpLCBoYXNoZWQsIDIwKSAhPSAwKSAmJgorKyAgICAg ICAgICAgICAgICAoQVNOMV9TVFJJTkdfbGVuZ3RoKGtleS0+a2V5aWQpID09IDIwKSkKKyAgICAg ICAgICAgICAgIGtleWVyciA9IHRydWU7CisgICAgICAgICAgIH0KKyAgICAgICAgICAgZWxzZSB7 CitAQCAtMTgzOCw4ICsxODM4LDggQEAgZXJyOgorICAgfQorIAorICAgc3RhdGljIHRpbWVfdCBB U04xX0dFTkVSQUxJWkVEVElNRV9nZXQoY29uc3QgQVNOMV9HRU5FUkFMSVpFRFRJTUUqIGNvbnN0 IHMpIHsKKy0gICAgaWYgKChzID09IE5VTEwpIHx8IChzLT5kYXRhID09IE5VTEwpIHx8IChzLT5s ZW5ndGggPT0gMCkpIHJldHVybiBBcmM6OlRpbWU6OlVOREVGSU5FRDsKKy0gICAgc3RkOjpzdHJp bmcgc3RyKChjaGFyIGNvbnN0ICopKHMtPmRhdGEpLCBzLT5sZW5ndGgpOworKyAgICBpZiAoKHMg PT0gTlVMTCkgfHwgKEFTTjFfU1RSSU5HX2dldDBfZGF0YShzKSA9PSBOVUxMKSB8fCAoQVNOMV9T VFJJTkdfbGVuZ3RoKHMpID09IDApKSByZXR1cm4gQXJjOjpUaW1lOjpVTkRFRklORUQ7CisrICAg IHN0ZDo6c3RyaW5nIHN0cigoY2hhciBjb25zdCAqKSBBU04xX1NUUklOR19nZXQwX2RhdGEocyks IEFTTjFfU1RSSU5HX2xlbmd0aChzKSk7CisgICAgIEFyYzo6VGltZSB0KHN0cik7CisgICAgIHJl dHVybiB0LkdldFRpbWUoKTsKKyAgIH0KK0BAIC0yMDUwLDcgKzIwNTAsNyBAQCBlcnI6CisgICAg IGN0aW1lICs9IDMwMDsKKyAgICAgZHRpbWUgPSBjdGltZS02MDA7CisgCistICAgIGlmICgoc3Rh cnQtPnR5cGUgIT0gVl9BU04xX0dFTkVSQUxJWkVEVElNRSkgfHwgKGVuZC0+dHlwZSAhPSBWX0FT TjFfR0VORVJBTElaRURUSU1FKSkgeworKyAgICBpZiAoKEFTTjFfU1RSSU5HX3R5cGUoc3RhcnQp ICE9IFZfQVNOMV9HRU5FUkFMSVpFRFRJTUUpIHx8IChBU04xX1NUUklOR190eXBlKGVuZCkgIT0g Vl9BU04xX0dFTkVSQUxJWkVEVElNRSkpIHsKKyAgICAgICBDcmVkZW50aWFsTG9nZ2VyLm1zZyhF UlJPUiwiVk9NUzogdW5zdXBwb3J0ZWQgdGltZSBmb3JtYXQgaW4gQUMgLSBleHBlY3RpbmcgR0VO RVJBTElaRUQgVElNRSIpOworICAgICAgIHN0YXR1cyB8PSBWT01TQUNJbmZvOjpBQ1BhcnNpbmdG YWlsZWQ7CisgICAgICAgcmV0dXJuIGZhbHNlOyAvLyA/CitAQCAtMjE4MSw3ICsyMTgxLDcgQEAg ZXJyOgorICAgICAgIH0KKyAgICAgfQorIAorLSAgICBpZiAoWDUwOV9BQ0VSVF9nZXQwX3Nlcmlh bE51bWJlcihhYyktPmxlbmd0aCA+IDIwKSB7CisrICAgIGlmIChBU04xX1NUUklOR19sZW5ndGgo WDUwOV9BQ0VSVF9nZXQwX3NlcmlhbE51bWJlcihhYykpID4gMjApIHsKKyAgICAgICBDcmVkZW50 aWFsTG9nZ2VyLm1zZyhFUlJPUiwiVk9NUzogdGhlIHNlcmlhbCBudW1iZXIgb2YgQUMgSU5GTyBp cyB0b28gbG9uZyAtIGV4cGVjdGluZyBubyBtb3JlIHRoYW4gMjAgb2N0ZXRzIik7CisgICAgICAg c3RhdHVzIHw9IFZPTVNBQ0luZm86OkludGVybmFsUGFyc2luZ0ZhaWxlZDsKKyAgICAgICByZXR1 cm4gZmFsc2U7CitAQCAtMjI2MSw3ICsyMjYxLDcgQEAgZXJyOgorICAgICAgIHJldHVybiBmYWxz ZTsKKyAgICAgfQorIAorLSAgICBzdGQ6OnN0cmluZyB2b25hbWUoKGNvbnN0IGNoYXIgKiluYW1l LT5kLmlhNS0+ZGF0YSwgMCwgbmFtZS0+ZC5pYTUtPmxlbmd0aCk7CisrICAgIHN0ZDo6c3RyaW5n IHZvbmFtZSgoY29uc3QgY2hhciAqKSBBU04xX1NUUklOR19nZXQwX2RhdGEobmFtZS0+ZC5pYTUp LCAwLCBBU04xX1NUUklOR19sZW5ndGgobmFtZS0+ZC5pYTUpKTsKKyAgICAgc3RkOjpzdHJpbmc6 OnNpemVfdHlwZSBjcG9zID0gdm9uYW1lLmZpbmQoIjovLyIpOworICAgICBzdGQ6OnN0cmluZyBo b3N0bmFtZTsKKyAgICAgaWYgKGNwb3MgIT0gc3RkOjpzdHJpbmc6Om5wb3MpIHsKK0BAIC0yMzE0 LDcgKzIzMTQsMTEgQEAgZXJyOgorICAgICBpbnQgbmlkID0gMDsKKyAgICAgaW50IHBvc2l0aW9u ID0gMDsKKyAgICAgYm9vbCBjcml0aWNhbCA9IGZhbHNlOworKyNpZiAoT1BFTlNTTF9WRVJTSU9O X05VTUJFUiA8IDB4NDAwMDAwMDBMKQorICAgICBYNTA5X0VYVEVOU0lPTiAqIGV4dDsKKysjZWxz ZQorKyAgICBjb25zdCBYNTA5X0VYVEVOU0lPTiAqIGV4dDsKKysjZW5kaWYKKyAgICAgQUNfU0VR KiBhY2xpc3QgPSBOVUxMOworICAgICBuaWQgPSBPQkpfdHh0Mm5pZChhY3NlcU9JRCk7CisgICAg IHBvc2l0aW9uID0gWDUwOV9nZXRfZXh0X2J5X05JRChob2xkZXIsIG5pZCwgLTEpOworQEAgLTI2 NzUsNyArMjY3OSw3IEBAIGVycjoKKyAgICAgZXh0ID0gWDUwOVYzX0VYVF9jb25mX25pZChOVUxM LCBOVUxMLCBPQkpfdHh0Mm5pZChhY3NlcU9JRCksIChjaGFyKikoYWNfc2VxLmNfc3RyKCkpKTsK KyAgICAgaWYoZXh0IT1OVUxMKSB7CisgICAgICAgYXNuMS5jbGVhcigpOworLSAgICAgIGFzbjEu YXNzaWduKChjb25zdCBjaGFyKikoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KS0+ZGF0YSks IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCktPmxlbmd0aCk7CisrICAgICAgYXNuMS5hc3Np Z24oKGNvbnN0IGNoYXIqKSBBU04xX1NUUklOR19nZXQwX2RhdGEoWDUwOV9FWFRFTlNJT05fZ2V0 X2RhdGEoZXh0KSksIEFTTjFfU1RSSU5HX2xlbmd0aChYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShl eHQpKSk7CisgICAgICAgcmV0ID0gdHJ1ZTsKKyAgICAgICBYNTA5X0VYVEVOU0lPTl9mcmVlKGV4 dCk7CisgICAgIH0KK2RpZmYgLS1naXQgYS9zcmMvaGVkL2xpYnMvZGVsZWdhdGlvbi9EZWxlZ2F0 aW9uSW50ZXJmYWNlLmNwcCBiL3NyYy9oZWQvbGlicy9kZWxlZ2F0aW9uL0RlbGVnYXRpb25JbnRl cmZhY2UuY3BwCitpbmRleCBhZDYxZTQwZDAuLmE5ZGY4NzlkYiAxMDA2NDQKKy0tLSBhL3NyYy9o ZWQvbGlicy9kZWxlZ2F0aW9uL0RlbGVnYXRpb25JbnRlcmZhY2UuY3BwCisrKysgYi9zcmMvaGVk L2xpYnMvZGVsZWdhdGlvbi9EZWxlZ2F0aW9uSW50ZXJmYWNlLmNwcAorQEAgLTIxNCw4ICsyMTQs OCBAQCBlcnI6CisgCisgc3RhdGljIFRpbWUgYXNuMV90b190aW1lKGNvbnN0IEFTTjFfVVRDVElN RSAqcykgeworICAgaWYocyAhPSBOVUxMKSB7CistICAgIGlmKHMtPnR5cGUgPT0gVl9BU04xX1VU Q1RJTUUpIHJldHVybiBUaW1lKHN0ZDo6c3RyaW5nKCIyMCIpKygoY2hhciopKHMtPmRhdGEpKSk7 CistICAgIGlmKHMtPnR5cGUgPT0gVl9BU04xX0dFTkVSQUxJWkVEVElNRSkgcmV0dXJuIFRpbWUo c3RkOjpzdHJpbmcoKGNoYXIqKShzLT5kYXRhKSkpOworKyAgICBpZihBU04xX1NUUklOR190eXBl KHMpID09IFZfQVNOMV9VVENUSU1FKSByZXR1cm4gVGltZShzdGQ6OnN0cmluZygiMjAiKSsoKGNv bnN0IGNoYXIqKShBU04xX1NUUklOR19nZXQwX2RhdGEocykpKSk7CisrICAgIGlmKEFTTjFfU1RS SU5HX3R5cGUocykgPT0gVl9BU04xX0dFTkVSQUxJWkVEVElNRSkgcmV0dXJuIFRpbWUoc3RkOjpz dHJpbmcoKGNvbnN0IGNoYXIqKShBU04xX1NUUklOR19nZXQwX2RhdGEocykpKSk7CisgICB9Cisg ICByZXR1cm4gVGltZShUaW1lOjpVTkRFRklORUQpOworIH0KK0BAIC02NDgsNiArNjQ4LDExIEBA IHN0ZDo6c3RyaW5nIERlbGVnYXRpb25Qcm92aWRlcjo6RGVsZWdhdGUoY29uc3Qgc3RkOjpzdHJp bmcmIHJlcXVlc3QsY29uc3QgRGVsZWdhCisgICBQUk9YWV9QT0xJQ1kgcHJveHlfcG9saWN5Owor ICAgY29uc3QgRVZQX01EICpkaWdlc3QgPSBFVlBfc2hhMjU2KCk7CisgICBYNTA5X05BTUUgKnN1 YmplY3QgPSBOVUxMOworKyNpZiAoT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MzAwMDAwMDBM KQorKyAgWDUwOV9OQU1FICpzdWJqZWN0X2MgPSBOVUxMOworKyNlbHNlCisrICBjb25zdCBYNTA5 X05BTUUgKnN1YmplY3RfYyA9IE5VTEw7CisrI2VuZGlmCisgICBjb25zdCBjaGFyKiBuZWVkX2V4 dCA9ICJjcml0aWNhbCxkaWdpdGFsU2lnbmF0dXJlLGtleUVuY2lwaGVybWVudCI7CisgICBzdGQ6 OnN0cmluZyBwcm94eV9jbjsKKyAgIHN0ZDo6c3RyaW5nIHJlczsKK0BAIC04MTQsOSArODE5LDkg QEAgc3RkOjpzdHJpbmcgRGVsZWdhdGlvblByb3ZpZGVyOjpEZWxlZ2F0ZShjb25zdCBzdGQ6OnN0 cmluZyYgcmVxdWVzdCxjb25zdCBEZWxlZ2EKKyAgICAgICAgIH0gUFJPWFlfUE9MSUNZOworICAg Ki8KKyAKKy0gIHN1YmplY3Q9WDUwOV9nZXRfc3ViamVjdF9uYW1lKChYNTA5KiljZXJ0Xyk7Cist ICBpZighc3ViamVjdCkgZ290byBlcnI7CistICBzdWJqZWN0PVg1MDlfTkFNRV9kdXAoc3ViamVj dCk7CisrICBzdWJqZWN0X2M9WDUwOV9nZXRfc3ViamVjdF9uYW1lKChYNTA5KiljZXJ0Xyk7Cisr ICBpZighc3ViamVjdF9jKSBnb3RvIGVycjsKKysgIHN1YmplY3Q9WDUwOV9OQU1FX2R1cChzdWJq ZWN0X2MpOworICAgaWYoIXN1YmplY3QpIGdvdG8gZXJyOworICAgaWYoIVg1MDlfc2V0X2lzc3Vl cl9uYW1lKGNlcnQsc3ViamVjdCkpIGdvdG8gZXJyOworICAgaWYoIVg1MDlfTkFNRV9hZGRfZW50 cnlfYnlfTklEKHN1YmplY3QsTklEX2NvbW1vbk5hbWUsTUJTVFJJTkdfQVNDLCh1bnNpZ25lZCBj aGFyKikocHJveHlfY24uY19zdHIoKSkscHJveHlfY24ubGVuZ3RoKCksLTEsMCkpIGdvdG8gZXJy OworZGlmZiAtLWdpdCBhL3NyYy9oZWQvbWNjL3Rscy9EZWxlZ2F0aW9uQ29sbGVjdG9yLmNwcCBi L3NyYy9oZWQvbWNjL3Rscy9EZWxlZ2F0aW9uQ29sbGVjdG9yLmNwcAoraW5kZXggNWQ5YzA0ZGZj Li4yZGNiYjY2YjQgMTAwNjQ0CistLS0gYS9zcmMvaGVkL21jYy90bHMvRGVsZWdhdGlvbkNvbGxl Y3Rvci5jcHAKKysrKyBiL3NyYy9oZWQvbWNjL3Rscy9EZWxlZ2F0aW9uQ29sbGVjdG9yLmNwcAor QEAgLTQ1LDggKzQ1LDggQEAgc3RhdGljIGJvb2wgZ2V0X3Byb3h5X3BvbGljeShYNTA5KiBjZXJ0 LERlbGVnYXRpb25NdWx0aVNlY0F0dHIqIHNhdHRyKSB7CisgICAgIH07IGJyZWFrOworICAgICBj YXNlIE5JRF9pZF9wcGxfYW55TGFuZ3VhZ2U6IHsgLy8gSGVyZSB3ZSBzdG9yZSBBUkMgcG9saWN5 CisgICAgICAgLy8gRWl0aGVyIHRoaXMgaXMgQVJDIHBvbGljeSBpcyBkZXRlcm1pbmVkIGJ5IGV4 YW1pbmluZyBjb250ZW50CistICAgICAgY29uc3QgY2hhciogcG9saWN5X3N0ciA9IChjb25zdCBj aGFyICopKHBjaS0+cHJveHlQb2xpY3ktPnBvbGljeS0+ZGF0YSk7CistICAgICAgaW50IHBvbGlj eV9sZW5ndGggPSBwY2ktPnByb3h5UG9saWN5LT5wb2xpY3ktPmxlbmd0aDsKKysgICAgICBjb25z dCBjaGFyKiBwb2xpY3lfc3RyID0gKGNvbnN0IGNoYXIgKikgQVNOMV9TVFJJTkdfZ2V0MF9kYXRh KHBjaS0+cHJveHlQb2xpY3ktPnBvbGljeSk7CisrICAgICAgaW50IHBvbGljeV9sZW5ndGggPSBB U04xX1NUUklOR19sZW5ndGgocGNpLT5wcm94eVBvbGljeS0+cG9saWN5KTsKKyAgICAgICBpZigo cG9saWN5X3N0ciA9PSBOVUxMKSB8fCAocG9saWN5X2xlbmd0aCA8PSAwKSkgeworICAgICAgICAg bG9nZ2VyLm1zZyhERUJVRywiUHJveHkgd2l0aCBlbXB0eSBwb2xpY3kgIC0gZmFpbCBvbiB1bnJl Y29nbml6ZWQgcG9saWN5Iik7CisgICAgICAgICBicmVhazsKK2RpZmYgLS1naXQgYS9zcmMvaGVk L21jYy90bHMvUGF5bG9hZFRMU01DQy5jcHAgYi9zcmMvaGVkL21jYy90bHMvUGF5bG9hZFRMU01D Qy5jcHAKK2luZGV4IDgxYWQ5ZDcxZi4uMzU4ZmFjODQ0IDEwMDY0NAorLS0tIGEvc3JjL2hlZC9t Y2MvdGxzL1BheWxvYWRUTFNNQ0MuY3BwCisrKysgYi9zcmMvaGVkL21jYy90bHMvUGF5bG9hZFRM U01DQy5jcHAKK0BAIC0yMCwxMiArMjAsMTIgQEAgaW50IFBheWxvYWRUTFNNQ0M6OmV4X2RhdGFf aW5kZXhfID0gLTE7CisgVGltZSBhc24xX3RvX3V0Y3RpbWUoY29uc3QgQVNOMV9VVENUSU1FICpz KSB7CisgICBzdGQ6OnN0cmluZyB0X3N0cjsKKyAgIGlmKCFzKSByZXR1cm4gVGltZSgpOworLSAg aWYocy0+dHlwZSA9PSBWX0FTTjFfVVRDVElNRSkgeworKyAgaWYoQVNOMV9TVFJJTkdfdHlwZShz KSA9PSBWX0FTTjFfVVRDVElNRSkgeworICAgICB0X3N0ci5hcHBlbmQoIjIwIik7CistICAgIHRf c3RyLmFwcGVuZCgoY2hhciopKHMtPmRhdGEpKTsKKysgICAgdF9zdHIuYXBwZW5kKChjb25zdCBj aGFyKikgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKHMpKTsKKyAgIH0KKyAgIGVsc2Ugey8vVl9BU04x X0dFTkVSQUxJWkVEVElNRQorLSAgICB0X3N0ci5hcHBlbmQoKGNoYXIqKShzLT5kYXRhKSk7Cisr ICAgIHRfc3RyLmFwcGVuZCgoY29uc3QgY2hhciopIEFTTjFfU1RSSU5HX2dldDBfZGF0YShzKSk7 CisgICB9CisgICByZXR1cm4gVGltZSh0X3N0cik7CisgfQorLS0gCisyLjU0LjAKKwoKZGlmZiAt LWdpdCBhL25vcmR1Z3JpZC1hcmMuc3BlYyBiL25vcmR1Z3JpZC1hcmMuc3BlYwppbmRleCBjYTk5 N2FkLi5hYTViYzc3IDEwMDY0NAotLS0gYS9ub3JkdWdyaWQtYXJjLnNwZWMKKysrIGIvbm9yZHVn cmlkLWFyYy5zcGVjCkBAIC0zNCw3ICszNCwxMCBAQCBTb3VyY2U6CQlodHRwczovL2Rvd25sb2Fk Lm5vcmR1Z3JpZC5vcmcvcGFja2FnZXMvJXtuYW1lfS9yZWxlYXNlcy8le3ZlcnNpb259L3NyYwog IwkJaHR0cHM6Ly9naXRodWIuY29tL25vcmR1Z3JpZC9hcmMvcHVsbC8xNQogIwkJaHR0cHM6Ly9z b3VyY2UuY29kZXJlZmluZXJ5Lm9yZy9ub3JkdWdyaWQvYXJjLy0vbWVyZ2VfcmVxdWVzdHMvMTk2 NAogUGF0Y2gwOgkJMDAwMS1IYW5kbGUtUHl0aG9uLW11bHRpLXBoYXNlLWluaXRpYWxpemF0aW9u LXN1cHBvcnQtaW4tLnBhdGNoCisjCQlodHRwczovL3NvdXJjZS5jb2RlcmVmaW5lcnkub3JnL25v cmR1Z3JpZC9hcmMvLS9tZXJnZV9yZXF1ZXN0cy8xOTcxCiBQYXRjaDE6CQkwMDAxLUZpeC1jb21w aWxhdGlvbi13aXRoLVB5dGhvbi0zLjE1LnBhdGNoCisjCQlodHRwczovL3NvdXJjZS5jb2RlcmVm aW5lcnkub3JnL25vcmR1Z3JpZC9hcmMvLS9tZXJnZV9yZXF1ZXN0cy8xOTk3CitQYXRjaDI6CQkw MDAxLVN1cHBvcnQtT3BlblNTTC00LnBhdGNoCiAKICMJCVBhY2thZ2VzIGRyb3BwZWQgd2l0aG91 dCByZXBsYWNlbWVudHMKIE9ic29sZXRlczoJJXtuYW1lfS1hcmNwcm94eWFsdCA8IDYuMC4wCkBA IC03MSwxMCArNzQsMTAgQEAgQnVpbGRSZXF1aXJlczoJc3lzdGVtZC1ycG0tbWFjcm9zCiBCdWls ZFJlcXVpcmVzOglzeXN0ZW1kLWRldmVsCiBCdWlsZFJlcXVpcmVzOglsaWJ1dWlkLWRldmVsCiBC dWlsZFJlcXVpcmVzOglnZXR0ZXh0LWRldmVsCi1CdWlsZFJlcXVpcmVzOglweXRob24le3B5dGhv bjNfcGtndmVyc2lvbn0tZGV2ZWwKLUJ1aWxkUmVxdWlyZXM6CXB5dGhvbiV7cHl0aG9uM19wa2d2 ZXJzaW9ufS1waXAKLUJ1aWxkUmVxdWlyZXM6CXB5dGhvbiV7cHl0aG9uM19wa2d2ZXJzaW9ufS1z ZXR1cHRvb2xzCi1CdWlsZFJlcXVpcmVzOglweXRob24le3B5dGhvbjNfcGtndmVyc2lvbn0td2hl ZWwKK0J1aWxkUmVxdWlyZXM6CXB5dGhvbjMtZGV2ZWwKK0J1aWxkUmVxdWlyZXM6CXB5dGhvbjMt cGlwCitCdWlsZFJlcXVpcmVzOglweXRob24zLXNldHVwdG9vbHMKK0J1aWxkUmVxdWlyZXM6CXB5 dGhvbjMtd2hlZWwKICVpZiAle3dpdGhfcHlsaW50fQogQnVpbGRSZXF1aXJlczoJcHlsaW50CiAl ZW5kaWYKQEAgLTQ1MCw3ICs0NTMsNyBAQCBzaXRlcywgdG8gYmUgdXNlZCB3aXRoIGEgbG9jYWwg aW5zdGFsbGF0aW9uIG9mIHRoZSBBUkMgQ29udHJvbCBUb3dlci4KICVwYWNrYWdlIHBsdWdpbnMt cHl0aG9uCiBTdW1tYXJ5OglBUkMgUHl0aG9uIGRlcGVuZGVudCBwbHVnaW4KIFJlcXVpcmVzOgkl e25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci1SZXF1aXJlczoJcHl0aG9uJXtweXRob24z X3BrZ3ZlcnNpb259LSV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KK1JlcXVpcmVzOglw eXRob24zLSV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KIAogJWRlc2NyaXB0aW9uIHBs dWdpbnMtcHl0aG9uCiBOb3JkdUdyaWQgaXMgYSBjb2xsYWJvcmF0aW9uIGFpbWluZyBhdCBkZXZl bG9wbWVudCwgbWFpbnRlbmFuY2UgYW5kCkBAIC00NzcsMTIgKzQ4MCwxMiBAQCBDb25uZWN0b3Ig KEFSQykuCiAKIEhlYWRlciBmaWxlcyBhbmQgbGlicmFyaWVzIG5lZWRlZCB0byBkZXZlbG9wIGFw cGxpY2F0aW9ucyB1c2luZyBBUkMuCiAKLSVwYWNrYWdlIC1uIHB5dGhvbiV7cHl0aG9uM19wa2d2 ZXJzaW9ufS0le25hbWV9CislcGFja2FnZSAtbiBweXRob24zLSV7bmFtZX0KIFN1bW1hcnk6CUFS QyBQeXRob24gMyB3cmFwcGVyCi0lez9weXRob25fcHJvdmlkZTolcHl0aG9uX3Byb3ZpZGUgcHl0 aG9uJXtweXRob24zX3BrZ3ZlcnNpb259LSV7bmFtZX19Cislez9weXRob25fcHJvdmlkZTolcHl0 aG9uX3Byb3ZpZGUgcHl0aG9uMy0le25hbWV9fQogUmVxdWlyZXM6CSV7bmFtZX0gPSAle3ZlcnNp b259LSV7cmVsZWFzZX0KIAotJWRlc2NyaXB0aW9uIC1uIHB5dGhvbiV7cHl0aG9uM19wa2d2ZXJz aW9ufS0le25hbWV9CislZGVzY3JpcHRpb24gLW4gcHl0aG9uMy0le25hbWV9CiBOb3JkdUdyaWQg aXMgYSBjb2xsYWJvcmF0aW9uIGFpbWluZyBhdCBkZXZlbG9wbWVudCwgbWFpbnRlbmFuY2UgYW5k CiBzdXBwb3J0IG9mIHRoZSBtaWRkbGV3YXJlLCBrbm93biBhcyB0aGUgQWR2YW5jZWQgUmVzb3Vy Y2UKIENvbm5lY3RvciAoQVJDKS4KQEAgLTUyOSwxMiArNTMyLDEyIEBAIENvbm5lY3RvciAoQVJD KS4KIFRoaXMgcGFja2FnZSBjb250YWlucyB0aGUgb3B0aW9uYWwgY29tcG9uZW50cyB0aGF0IHBy b3ZpZGUgbmV3IGpvYgogbWFuYWdlbWVudCBmZWF0dXJlcyBvbiB0aGUgd29ya2VyIG5vZGVzIChX TikuCiAKLSVwYWNrYWdlIC1uIHB5dGhvbiV7cHl0aG9uM19wa2d2ZXJzaW9ufS1hcmNyZXN0Cisl cGFja2FnZSAtbiBweXRob24zLWFyY3Jlc3QKIFN1bW1hcnk6CUFSQyBSRVNUIGNsaWVudAotJXs/ cHl0aG9uX3Byb3ZpZGU6JXB5dGhvbl9wcm92aWRlIHB5dGhvbiV7cHl0aG9uM19wa2d2ZXJzaW9u fS1hcmNyZXN0fQorJXs/cHl0aG9uX3Byb3ZpZGU6JXB5dGhvbl9wcm92aWRlIHB5dGhvbjMtYXJj cmVzdH0KIEJ1aWxkQXJjaDoJbm9hcmNoCiAKLSVkZXNjcmlwdGlvbiAtbiBweXRob24le3B5dGhv bjNfcGtndmVyc2lvbn0tYXJjcmVzdAorJWRlc2NyaXB0aW9uIC1uIHB5dGhvbjMtYXJjcmVzdAog Tm9yZHVHcmlkIGlzIGEgY29sbGFib3JhdGlvbiBhaW1pbmcgYXQgZGV2ZWxvcG1lbnQsIG1haW50 ZW5hbmNlIGFuZAogc3VwcG9ydCBvZiB0aGUgbWlkZGxld2FyZSwga25vd24gYXMgdGhlIEFkdmFu Y2VkIFJlc291cmNlCiBDb25uZWN0b3IgKEFSQykuCkBAIC01NTgsNiArNTYxLDcgQEAgcHVibGlz aGVzIG1ldHJpY3MgYWJvdXQgam9icyBhbmQgZGF0YXN0YWdpbmcgb24gdGhlIEFSQy1DRS4KICVz ZXR1cCAtcQogJXBhdGNoIC1QMCAtcDEKICVwYXRjaCAtUDEgLXAxCislcGF0Y2ggLVAyIC1wMQog CiAlYnVpbGQKIGF1dG9yZWNvbmYgLXYgLWYgLWkKQEAgLTExMTIsNyArMTExNiw3IEBAIHNlbWFu YWdlIGZjb250ZXh0IC1hIC10IHNsYXBkX3Zhcl9ydW5fdCAiL3Zhci9ydW4vYXJjL2JkaWkvZGIo Ly4qKT8iIDI+L2Rldi9udWxsCiAle19iaW5kaXJ9L2FyY3BsdWdpbgogJWRvYyAle19tYW5kaXJ9 L21hbjEvYXJjcGx1Z2luLjEqCiAKLSVmaWxlcyAtbiBweXRob24le3B5dGhvbjNfcGtndmVyc2lv bn0tJXtuYW1lfQorJWZpbGVzIC1uIHB5dGhvbjMtJXtuYW1lfQogJXtweXRob24zX3NpdGVhcmNo fS9fYXJjLipzbwogJXtweXRob24zX3NpdGVhcmNofS8le3BrZ2Rpcn0vW15fcF0qLnB5CiAle3B5 dGhvbjNfc2l0ZWFyY2h9LyV7cGtnZGlyfS9fX3B5Y2FjaGVfXy9bXl9wXSouKgpAQCAtMTEyNyw3 ICsxMTMxLDcgQEAgc2VtYW5hZ2UgZmNvbnRleHQgLWEgLXQgc2xhcGRfdmFyX3J1bl90ICIvdmFy L3J1bi9hcmMvYmRpaS9kYigvLiopPyIgMj4vZGV2L251bGwKICVmaWxlcyB3bgogJWF0dHIoNDc1 NSxyb290LHJvb3QpICV7X2JpbmRpcn0vYXJjLWpvYi1jZ3JvdXAKIAotJWZpbGVzIC1uIHB5dGhv biV7cHl0aG9uM19wa2d2ZXJzaW9ufS1hcmNyZXN0CislZmlsZXMgLW4gcHl0aG9uMy1hcmNyZXN0 CiAle3B5dGhvbjNfc2l0ZWxpYn0vcHlhcmNyZXN0CiAle3B5dGhvbjNfc2l0ZWxpYn0vcHlhcmNy ZXN0LSouKi1pbmZvCiAle19iaW5kaXJ9L2FyY3Jlc3QKQEAgLTExNDMsNyArMTE0Nyw3IEBAIHNl bWFuYWdlIGZjb250ZXh0IC1hIC10IHNsYXBkX3Zhcl9ydW5fdCAiL3Zhci9ydW4vYXJjL2JkaWkv ZGIoLy4qKT8iIDI+L2Rldi9udWxsCiAtIFJlYnVpbHQgZm9yIFB5dGhvbiAzLjE1CiAKICogVHVl IE1heSAxOSAyMDI2IE1hdHRpYXMgRWxsZXJ0IDxtYXR0aWFzLmVsbGVydEBwaHlzaWNzLnV1LnNl PiAtIDcuMS4yLTEKLS0gVXBkYXRlIHRvIHZlcnNpb24gNy4xLgorLSBVcGRhdGUgdG8gdmVyc2lv biA3LjEuMgogCiAqIFdlZCBBcHIgMjIgMjAyNiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxl cnRAcGh5c2ljcy51dS5zZT4gLSA3LjEuMS01CiAtIFJlYnVpbHQgZm9yIHhyb290ZCA2Cg==