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: Michael Young To: git-commits@fedoraproject.org Subject: [rpms/xen] f44: 4 security updates Date: Fri, 12 Jun 2026 20:16:36 GMT Message-ID: <178129539622.1.3796594591649298051.rpms-xen-5166c93885c2@fedoraproject.org> List-ID: X-Git-Repo: rpms/xen X-Git-Branch: f44 X-Git-Rev: 5166c93885c2b0d89ae8103359622e5e19a9a100 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMveGVuCiAgICAgICAgICAgIEJyYW5jaCA6IGY0NAogICAgICAgICAgICBDb21t aXQgOiA1MTY2YzkzODg1YzJiMGQ4OWFlODEwMzM1OTYyMmU1ZTE5YTlhMTAwCiAgICAgICAgICAg IEF1dGhvciA6IE1pY2hhZWwgWW91bmcgPG0uYS55b3VuZ0BkdXJoYW0uYWMudWs+CiAgICAgICAg ICAgIERhdGUgICA6IDIwMjYtMDYtMTJUMjE6MTM6NTcrMDE6MDAKICAgICAgICAgICAgU3RhdHMg IDogKzQwNjYvLTEgaW4gMjcgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBodHRwczovL3Ny Yy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL3hlbi9jLzUxNjZjOTM4ODVjMmIwZDg5YWU4MTAzMzU5 NjIyZTVlMTlhOWExMDA/YnJhbmNoPWY0NAoKICAgICAgICAgICAgTG9nOgogICAgICAgICAgICA0 IHNlY3VyaXR5IHVwZGF0ZXMKCng4NiBIVk0gSS9PIHBvcnQgbGlzdCB0cmF2ZXJzYWwgW1hTQS00 OTEsIENWRS0yMDI2LTQyNDg3XQpkb21jdGwgbG9jayBvcGVuIHRvIGFidXNlIFtYU0EtNDkyLCBD VkUtMjAyNi00MjQ4OSwgQ1ZFLTIwMjYtNDI0OTBdCkFybTogQ29tcGxldGlvbiBvZiBtZW1vcnkg YWNjZXNzZXMgbm90IGd1YXJhbnRlZWQgYnkgY29tcGxldGlvbiBvZiBhIFRMQkkKICAgICAgICBb WFNBLTQ5MywgQ1ZFLTIwMjUtMTAyNjNdCng4NjogbWlzbWF0Y2hlZCBtYXBjYWNoZSBtZXRhZGF0 YSBbWFNBLTQ5NCwgQ1ZFLTIwMjYtNDI0ODhdCgotLS0KZGlmZiAtLWdpdCBhL3hlbi5zcGVjIGIv eGVuLnNwZWMKaW5kZXggZmRiOWZiYS4uNzY1NmU2YiAxMDA2NDQKLS0tIGEveGVuLnNwZWMKKysr IGIveGVuLnNwZWMKQEAgLTUxLDcgKzUxLDcgQEAKIFN1bW1hcnk6IFhlbiBpcyBhIHZpcnR1YWwg bWFjaGluZSBtb25pdG9yCiBOYW1lOiAgICB4ZW4KIFZlcnNpb246IDQuMjEuMQotUmVsZWFzZTog MyV7P2Rpc3R9CitSZWxlYXNlOiA0JXs/ZGlzdH0KICMgQXV0b21hdGljYWxseSBjb252ZXJ0ZWQg ZnJvbSBvbGQgZm9ybWF0OiBHUEx2MisgYW5kIExHUEx2MisgYW5kIEJTRCAtIHJldmlldyBpcyBo aWdobHkgcmVjb21tZW5kZWQuCiBMaWNlbnNlOiBHUEwtMi4wLW9yLWxhdGVyIEFORCBMaWNlbnNl UmVmLUNhbGxhd2F5LUxHUEx2MisgQU5EIExpY2Vuc2VSZWYtQ2FsbGF3YXktQlNECiBVUkw6ICAg ICBodHRwOi8veGVuLm9yZy8KQEAgLTg0LDYgKzg0LDMyIEBAIFBhdGNoMTM6IHhzYTQ4NC5wYXRj aAogUGF0Y2gxNDogeHNhNDg2LnBhdGNoCiBQYXRjaDE1OiB4ZW4uZ2l0LTkwYjIwNTQ3Yjc1NmE1 Y2Y5YjBmZWM5ZmIwZGU1YjM2MWU4YmY0YzMucGF0Y2gKIFBhdGNoMTY6IHhzYTQ5MC00LjIxLnBh dGNoCitQYXRjaDE3OiB4c2E0OTEtNC4yMS5wYXRjaAorUGF0Y2gxODogeHNhNDkyLTQuMjEtMDEu cGF0Y2gKK1BhdGNoMTk6IHhzYTQ5Mi00LjIxLTAyLnBhdGNoCitQYXRjaDIwOiB4c2E0OTItNC4y MS0wMy5wYXRjaAorUGF0Y2gyMTogeHNhNDkyLTQuMjEtMDQucGF0Y2gKK1BhdGNoMjI6IHhzYTQ5 Mi00LjIxLTA1LnBhdGNoCitQYXRjaDIzOiB4c2E0OTItNC4yMS0wNi5wYXRjaAorUGF0Y2gyNDog eHNhNDkyLTQuMjEtMDcucGF0Y2gKK1BhdGNoMjU6IHhzYTQ5Mi00LjIxLTA4LnBhdGNoCitQYXRj aDI2OiB4c2E0OTItNC4yMS0wOS5wYXRjaAorUGF0Y2gyNzogeHNhNDkyLTQuMjEtMTAucGF0Y2gK K1BhdGNoMjg6IHhzYTQ5Mi00LjIxLTExLnBhdGNoCitQYXRjaDI5OiB4c2E0OTItNC4yMS0xMi5w YXRjaAorUGF0Y2gzMDogeHNhNDkyLTQuMjEtMTMucGF0Y2gKK1BhdGNoMzE6IHhzYTQ5Mi00LjIx LTE0LnBhdGNoCitQYXRjaDMyOiB4c2E0OTItNC4yMS0xNS5wYXRjaAorUGF0Y2gzMzogeHNhNDky LTQuMjEtMTYucGF0Y2gKK1BhdGNoMzQ6IHhzYTQ5Mi00LjIxLTE3LnBhdGNoCitQYXRjaDM1OiB4 c2E0OTItNC4yMS0xOC5wYXRjaAorUGF0Y2gzNjogeHNhNDkyLTQuMjEtMTkucGF0Y2gKK1BhdGNo Mzc6IHhzYTQ5Mi00LjIxLTIwLnBhdGNoCitQYXRjaDM4OiB4c2E0OTMtNC4yMS0wMS5wYXRjaAor UGF0Y2gzOTogeHNhNDkzLTQuMjEtMDIucGF0Y2gKK1BhdGNoNDA6IHhzYTQ5My00LjIxLTAzLnBh dGNoCitQYXRjaDQxOiB4c2E0OTMtNC4yMS0wNC5wYXRjaAorUGF0Y2g0MjogeHNhNDk0LTQuMjEu cGF0Y2gKIAogCiAjIGJ1aWxkIHVzaW5nIEZlZG9yYSBzZWFiaW9zIGFuZCBpcHhlIHBhY2thZ2Vz IGZvciByb21zCkBAIC0yNzUsNiArMzAxLDMyIEBAIFRoaXMgcGFja2FnZSBjb250YWlucyBmaWxl cyB1c2VkIGluIHRlc3RpbmcgdGhlIHhlbiBidWlsZHMKICVwYXRjaCAxNCAtcDEKICVwYXRjaCAx NSAtcDEKICVwYXRjaCAxNiAtcDEKKyVwYXRjaCAxNyAtcDEKKyVwYXRjaCAxOCAtcDEKKyVwYXRj aCAxOSAtcDEKKyVwYXRjaCAyMCAtcDEKKyVwYXRjaCAyMSAtcDEKKyVwYXRjaCAyMiAtcDEKKyVw YXRjaCAyMyAtcDEKKyVwYXRjaCAyNCAtcDEKKyVwYXRjaCAyNSAtcDEKKyVwYXRjaCAyNiAtcDEK KyVwYXRjaCAyNyAtcDEKKyVwYXRjaCAyOCAtcDEKKyVwYXRjaCAyOSAtcDEKKyVwYXRjaCAzMCAt cDEKKyVwYXRjaCAzMSAtcDEKKyVwYXRjaCAzMiAtcDEKKyVwYXRjaCAzMyAtcDEKKyVwYXRjaCAz NCAtcDEKKyVwYXRjaCAzNSAtcDEKKyVwYXRjaCAzNiAtcDEKKyVwYXRjaCAzNyAtcDEKKyVwYXRj aCAzOCAtcDEKKyVwYXRjaCAzOSAtcDEKKyVwYXRjaCA0MCAtcDEKKyVwYXRjaCA0MSAtcDEKKyVw YXRjaCA0MiAtcDEKIAogIyBzdHViZG9tIHNvdXJjZXMKIGNwIC12ICV7U09VUkNFMTB9ICV7U09V UkNFMTF9ICV7U09VUkNFMTJ9ICV7U09VUkNFMTN9ICV7U09VUkNFMTR9ICV7U09VUkNFMTV9IHN0 dWJkb20KQEAgLTgzMCw2ICs4ODIsMTMgQEAgZmkKICV7X2xpYmV4ZWNkaXJ9L3hlbi90ZXN0cy8q CiAKICVjaGFuZ2Vsb2cKKyogRnJpIEp1biAxMiAyMDI2IE1pY2hhZWwgWW91bmcgPG0uYS55b3Vu Z0BkdXJoYW0uYWMudWs+IC0gNC4yMS4xLTQKKy0geDg2IEhWTSBJL08gcG9ydCBsaXN0IHRyYXZl cnNhbCBbWFNBLTQ5MSwgQ1ZFLTIwMjYtNDI0ODddCistIGRvbWN0bCBsb2NrIG9wZW4gdG8gYWJ1 c2UgW1hTQS00OTIsIENWRS0yMDI2LTQyNDg5LCBDVkUtMjAyNi00MjQ5MF0KKy0gQXJtOiBDb21w bGV0aW9uIG9mIG1lbW9yeSBhY2Nlc3NlcyBub3QgZ3VhcmFudGVlZCBieSBjb21wbGV0aW9uIG9m IGEgVExCSQorCSBbWFNBLTQ5MywgQ1ZFLTIwMjUtMTAyNjNdCistIHg4NjogbWlzbWF0Y2hlZCBt YXBjYWNoZSBtZXRhZGF0YSBbWFNBLTQ5NCwgQ1ZFLTIwMjYtNDI0ODhdCisKICogVHVlIE1heSAx MiAyMDI2IE1pY2hhZWwgWW91bmcgPG0uYS55b3VuZ0BkdXJoYW0uYWMudWs+IC0gNC4yMS4xLTMK IC0geDg2OiBDUFUgT3Bjb2RlIENhY2hlIGNvcnJ1cHRpb24gW1hTQS00OTAsQ1ZFLTIwMjUtNTQ1 MThdCiAKCmRpZmYgLS1naXQgYS94c2E0OTEtNC4yMS5wYXRjaCBiL3hzYTQ5MS00LjIxLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxZWJjMWEKLS0tIC9kZXYvbnVs bAorKysgYi94c2E0OTEtNC4yMS5wYXRjaApAQCAtMCwwICsxLDIxMSBAQAorRnJvbTogSmFuIEJl dWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgorU3ViamVjdDogeDg2L0hWTTogYWRkIGxvY2tpbmcg dG8gSS9PIHBvcnQgdHJhbnNsYXRpb24gbGlzdCB0cmF2ZXJzYWwKKworWEVOX0RPTUNUTF9pb3Bv cnRfbWFwcGluZyBpcyB1c2FibGUgYnkgRE0gc3R1YmRvbXMsIGFuZCBoZW5jZSB3ZSBjYW4ndAor YXNzdW1lIHRoZSBsaXN0IHRvIGJlIGxlZnQgdW5hbHRlcmVkIHdoaWxlIHRoZSBndWVzdCAocmVh bGx5OiB0aGUKK2h5cGVydmlzb3Igb24gYmVoYWxmIG9mIHRoZSBndWVzdCkgaXMgYWNjZXNzaW5n IGl0LgorCitUaGlzIGlzIFhTQS00OTEgLyBDVkUtMjAyNi00MjQ4Ny4KKworRml4ZXM6IDE5MmM0 ZGFiYzM0NCAoImRvbWN0bCBhbmQgcDJtIGNoYW5nZXMgZm9yIFBDSSBwYXNzdGhydSIpCitTaWdu ZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitSZXZpZXdlZC1ieTog Um9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CisKKy0tLSBhL3hlbi9hcmNo L3g4Ni9kb21jdGwuYworKysrIGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCitAQCAtNjYzLDYgKzY2 Myw3IEBAIGxvbmcgYXJjaF9kb19kb21jdGwoCisgICAgICAgICAgICAgICAgICAgICJpb3BvcnRf bWFwOmFkZDogZG9tJWQgZ3BvcnQ9JXggbXBvcnQ9JXggbnI9JXhcbiIsCisgICAgICAgICAgICAg ICAgICAgIGQtPmRvbWFpbl9pZCwgZmdwLCBmbXAsIG5wKTsKKyAKKysgICAgICAgICAgICB3cml0 ZV9sb2NrKCZodm0tPmcybV9pb3BvcnRfbG9jayk7CisgICAgICAgICAgICAgbGlzdF9mb3JfZWFj aF9lbnRyeShnMm1faW9wb3J0LCAmaHZtLT5nMm1faW9wb3J0X2xpc3QsIGxpc3QpCisgICAgICAg ICAgICAgICAgIGlmIChnMm1faW9wb3J0LT5tcG9ydCA9PSBmbXAgKQorICAgICAgICAgICAgICAg ICB7CitAQCAtNjg0LDExICs2ODUsMTQgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKKyAgICAgICAg ICAgICAgICAgZzJtX2lvcG9ydC0+bnAgPSBucDsKKyAgICAgICAgICAgICAgICAgbGlzdF9hZGRf dGFpbCgmZzJtX2lvcG9ydC0+bGlzdCwgJmh2bS0+ZzJtX2lvcG9ydF9saXN0KTsKKyAgICAgICAg ICAgICB9CisrICAgICAgICAgICAgd3JpdGVfdW5sb2NrKCZodm0tPmcybV9pb3BvcnRfbG9jayk7 CisgICAgICAgICAgICAgaWYgKCAhcmV0ICkKKyAgICAgICAgICAgICAgICAgcmV0ID0gaW9wb3J0 c19wZXJtaXRfYWNjZXNzKGQsIGZtcCwgZm1wICsgbnAgLSAxKTsKKyAgICAgICAgICAgICBpZiAo IHJldCAmJiAhZm91bmQgJiYgZzJtX2lvcG9ydCApCisgICAgICAgICAgICAgeworKyAgICAgICAg ICAgICAgICB3cml0ZV9sb2NrKCZodm0tPmcybV9pb3BvcnRfbG9jayk7CisgICAgICAgICAgICAg ICAgIGxpc3RfZGVsKCZnMm1faW9wb3J0LT5saXN0KTsKKysgICAgICAgICAgICAgICAgd3JpdGVf dW5sb2NrKCZodm0tPmcybV9pb3BvcnRfbG9jayk7CisgICAgICAgICAgICAgICAgIHhmcmVlKGcy bV9pb3BvcnQpOworICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KK0BAIC02OTcsNiArNzAxLDgg QEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKKyAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfSU5G TworICAgICAgICAgICAgICAgICAgICAiaW9wb3J0X21hcDpyZW1vdmU6IGRvbSVkIGdwb3J0PSV4 IG1wb3J0PSV4IG5yPSV4XG4iLAorICAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGZn cCwgZm1wLCBucCk7CisrCisrICAgICAgICAgICAgd3JpdGVfbG9jaygmaHZtLT5nMm1faW9wb3J0 X2xvY2spOworICAgICAgICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoZzJtX2lvcG9ydCwgJmh2 bS0+ZzJtX2lvcG9ydF9saXN0LCBsaXN0KQorICAgICAgICAgICAgICAgICBpZiAoIGcybV9pb3Bv cnQtPm1wb3J0ID09IGZtcCApCisgICAgICAgICAgICAgICAgIHsKK0BAIC03MDQsNiArNzEwLDgg QEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKKyAgICAgICAgICAgICAgICAgICAgIHhmcmVlKGcybV9p b3BvcnQpOworICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIH0K KysgICAgICAgICAgICB3cml0ZV91bmxvY2soJmh2bS0+ZzJtX2lvcG9ydF9sb2NrKTsKKysKKyAg ICAgICAgICAgICByZXQgPSBpb3BvcnRzX2RlbnlfYWNjZXNzKGQsIGZtcCwgZm1wICsgbnAgLSAx KTsKKyAgICAgICAgICAgICBpZiAoIHJldCAmJiBpc19oYXJkd2FyZV9kb21haW4oY3VycmQpICkK KyAgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIKKy0tLSBhL3hlbi9hcmNoL3g4Ni9o dm0vZW11bGF0ZS5jCisrKysgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYworQEAgLTE2MCw3 ICsxNjAsNiBAQCB2b2lkIGh2bWVtdWxfY2FuY2VsKHN0cnVjdCB2Y3B1ICp2KQorICAgICBodmlv LT5tbWlvX2luc25fYnl0ZXMgPSAwOworICAgICBodmlvLT5tbWlvX2FjY2VzcyA9IChzdHJ1Y3Qg bnBmZWMpe307CisgICAgIGh2aW8tPm1taW9fcmV0cnkgPSBmYWxzZTsKKy0gICAgaHZpby0+ZzJt X2lvcG9ydCA9IE5VTEw7CisgCisgICAgIGh2bWVtdWxfY2FjaGVfZGlzYWJsZSh2KTsKKyB9Cist LS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5j CitAQCAtNjEwLDYgKzYxMCw3IEBAIGludCBodm1fZG9tYWluX2luaXRpYWxpc2Uoc3RydWN0IGRv bWFpbgorICAgICBzcGluX2xvY2tfaW5pdCgmZC0+YXJjaC5odm0uaXJxX2xvY2spOworICAgICBz cGluX2xvY2tfaW5pdCgmZC0+YXJjaC5odm0udWNfbG9jayk7CisgICAgIHNwaW5fbG9ja19pbml0 KCZkLT5hcmNoLmh2bS53cml0ZV9tYXAubG9jayk7CisrICAgIHJ3bG9ja19pbml0KCZkLT5hcmNo Lmh2bS5nMm1faW9wb3J0X2xvY2spOworICAgICByd2xvY2tfaW5pdCgmZC0+YXJjaC5odm0ubW1j ZmdfbG9jayk7CisgICAgIElOSVRfTElTVF9IRUFEKCZkLT5hcmNoLmh2bS53cml0ZV9tYXAubGlz dCk7CisgICAgIElOSVRfTElTVF9IRUFEKCZkLT5hcmNoLmh2bS5nMm1faW9wb3J0X2xpc3QpOwor LS0tIGEveGVuL2FyY2gveDg2L2h2bS9pby5jCisrKysgYi94ZW4vYXJjaC94ODYvaHZtL2lvLmMK K0BAIC0xNDMsMzYgKzE0Myw1NiBAQCBib29sIGhhbmRsZV9waW8odWludDE2X3QgcG9ydCwgdW5z aWduZWQKKyAgICAgcmV0dXJuIHRydWU7CisgfQorIAorLXN0YXRpYyBib29sIGNmX2NoZWNrIGcy bV9wb3J0aW9fYWNjZXB0KAorLSAgICBjb25zdCBzdHJ1Y3QgaHZtX2lvX2hhbmRsZXIgKmhhbmRs ZXIsIGNvbnN0IGlvcmVxX3QgKnApCisrLyogTkI6IFJldHVybnMgd2l0aCB0aGUgbG9jayBoZWxk IGluIHRoZSBzdWNjZXNzIGNhc2UuICovCisrc3RhdGljIGNvbnN0IHN0cnVjdCBnMm1faW9wb3J0 ICpnMm1fcG9ydGlvX2ZpbmRfYW5kX2xvY2soc3RydWN0IGh2bV9kb21haW4gKmh2bSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50 NjRfdCBhZGRyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQzMl90IHNpemUpCisgeworLSAgICBzdHJ1Y3QgdmNwdSAqY3VyciA9 IGN1cnJlbnQ7CistICAgIGNvbnN0IHN0cnVjdCBodm1fZG9tYWluICpodm0gPSAmY3Vyci0+ZG9t YWluLT5hcmNoLmh2bTsKKy0gICAgc3RydWN0IGh2bV92Y3B1X2lvICpodmlvID0gJmN1cnItPmFy Y2guaHZtLmh2bV9pbzsKKy0gICAgc3RydWN0IGcybV9pb3BvcnQgKmcybV9pb3BvcnQ7CistICAg IHVuc2lnbmVkIGludCBzdGFydCwgZW5kOworKyAgICBjb25zdCBzdHJ1Y3QgZzJtX2lvcG9ydCAq ZzJtX2lvcG9ydDsKKysKKysgICAgcmVhZF9sb2NrKCZodm0tPmcybV9pb3BvcnRfbG9jayk7Cisg CisgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoIGcybV9pb3BvcnQsICZodm0tPmcybV9pb3BvcnRf bGlzdCwgbGlzdCApCisgICAgIHsKKy0gICAgICAgIHN0YXJ0ID0gZzJtX2lvcG9ydC0+Z3BvcnQ7 CistICAgICAgICBlbmQgPSBzdGFydCArIGcybV9pb3BvcnQtPm5wOworLSAgICAgICAgaWYgKCAo cC0+YWRkciA+PSBzdGFydCkgJiYgKHAtPmFkZHIgKyBwLT5zaXplIDw9IGVuZCkgKQorLSAgICAg ICAgeworLSAgICAgICAgICAgIGh2aW8tPmcybV9pb3BvcnQgPSBnMm1faW9wb3J0OworLSAgICAg ICAgICAgIHJldHVybiAxOworLSAgICAgICAgfQorKyAgICAgICAgdW5zaWduZWQgaW50IHN0YXJ0 ID0gZzJtX2lvcG9ydC0+Z3BvcnQ7CisrCisrICAgICAgICBpZiAoIGFkZHIgPj0gc3RhcnQgJiYg YWRkciArIHNpemUgPD0gc3RhcnQgKyBnMm1faW9wb3J0LT5ucCApCisrICAgICAgICAgICAgcmV0 dXJuIGcybV9pb3BvcnQ7CisgICAgIH0KKyAKKy0gICAgcmV0dXJuIDA7CisrICAgIHJlYWRfdW5s b2NrKCZodm0tPmcybV9pb3BvcnRfbG9jayk7CisrCisrICAgIHJldHVybiBOVUxMOworK30KKysK KytzdGF0aWMgYm9vbCBjZl9jaGVjayBnMm1fcG9ydGlvX2FjY2VwdCgKKysgICAgY29uc3Qgc3Ry dWN0IGh2bV9pb19oYW5kbGVyICpoYW5kbGVyLCBjb25zdCBpb3JlcV90ICpwKQorK3sKKysgICAg c3RydWN0IGh2bV9kb21haW4gKmh2bSA9ICZjdXJyZW50LT5kb21haW4tPmFyY2guaHZtOworKyAg ICBjb25zdCBzdHJ1Y3QgZzJtX2lvcG9ydCAqZzJtX2lvcG9ydCA9CisrICAgICAgICBnMm1fcG9y dGlvX2ZpbmRfYW5kX2xvY2soaHZtLCBwLT5hZGRyLCBwLT5zaXplKTsKKysKKysgICAgaWYgKCAh ZzJtX2lvcG9ydCApCisrICAgICAgICByZXR1cm4gZmFsc2U7CisrCisrICAgIHJlYWRfdW5sb2Nr KCZodm0tPmcybV9pb3BvcnRfbG9jayk7CisrCisrICAgIHJldHVybiB0cnVlOworIH0KKyAKKyBz dGF0aWMgaW50IGNmX2NoZWNrIGcybV9wb3J0aW9fcmVhZCgKKyAgICAgY29uc3Qgc3RydWN0IGh2 bV9pb19oYW5kbGVyICpoYW5kbGVyLCB1aW50NjRfdCBhZGRyLCB1aW50MzJfdCBzaXplLAorICAg ICB1aW50NjRfdCAqZGF0YSkKKyB7CistICAgIHN0cnVjdCBodm1fdmNwdV9pbyAqaHZpbyA9ICZj dXJyZW50LT5hcmNoLmh2bS5odm1faW87CistICAgIGNvbnN0IHN0cnVjdCBnMm1faW9wb3J0ICpn Mm1faW9wb3J0ID0gaHZpby0+ZzJtX2lvcG9ydDsKKy0gICAgdW5zaWduZWQgaW50IG1wb3J0ID0g KGFkZHIgLSBnMm1faW9wb3J0LT5ncG9ydCkgKyBnMm1faW9wb3J0LT5tcG9ydDsKKysgICAgc3Ry dWN0IGh2bV9kb21haW4gKmh2bSA9ICZjdXJyZW50LT5kb21haW4tPmFyY2guaHZtOworKyAgICBj b25zdCBzdHJ1Y3QgZzJtX2lvcG9ydCAqZzJtX2lvcG9ydCA9CisrICAgICAgICBnMm1fcG9ydGlv X2ZpbmRfYW5kX2xvY2soaHZtLCBhZGRyLCBzaXplKTsKKysgICAgdW5zaWduZWQgaW50IG1wb3J0 OworKworKyAgICBpZiAoICFnMm1faW9wb3J0ICkKKysgICAgICAgIHJldHVybiBYODZFTVVMX1JF VFJZOworKworKyAgICBtcG9ydCA9IGFkZHIgLSBnMm1faW9wb3J0LT5ncG9ydCArIGcybV9pb3Bv cnQtPm1wb3J0OworIAorICAgICBzd2l0Y2ggKCBzaXplICkKKyAgICAgeworQEAgLTE4OSw2ICsy MDksOCBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGcybV9wb3J0aW9fcmVhZCgKKyAgICAgICAgIEJV RygpOworICAgICB9CisgCisrICAgIHJlYWRfdW5sb2NrKCZodm0tPmcybV9pb3BvcnRfbG9jayk7 CisrCisgICAgIHJldHVybiBYODZFTVVMX09LQVk7CisgfQorIAorQEAgLTE5Niw5ICsyMTgsMTUg QEAgc3RhdGljIGludCBjZl9jaGVjayBnMm1fcG9ydGlvX3dyaXRlKAorICAgICBjb25zdCBzdHJ1 Y3QgaHZtX2lvX2hhbmRsZXIgKmhhbmRsZXIsIHVpbnQ2NF90IGFkZHIsIHVpbnQzMl90IHNpemUs CisgICAgIHVpbnQ2NF90IGRhdGEpCisgeworLSAgICBzdHJ1Y3QgaHZtX3ZjcHVfaW8gKmh2aW8g PSAmY3VycmVudC0+YXJjaC5odm0uaHZtX2lvOworLSAgICBjb25zdCBzdHJ1Y3QgZzJtX2lvcG9y dCAqZzJtX2lvcG9ydCA9IGh2aW8tPmcybV9pb3BvcnQ7CistICAgIHVuc2lnbmVkIGludCBtcG9y dCA9IChhZGRyIC0gZzJtX2lvcG9ydC0+Z3BvcnQpICsgZzJtX2lvcG9ydC0+bXBvcnQ7CisrICAg IHN0cnVjdCBodm1fZG9tYWluICpodm0gPSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bTsKKysg ICAgY29uc3Qgc3RydWN0IGcybV9pb3BvcnQgKmcybV9pb3BvcnQgPQorKyAgICAgICAgZzJtX3Bv cnRpb19maW5kX2FuZF9sb2NrKGh2bSwgYWRkciwgc2l6ZSk7CisrICAgIHVuc2lnbmVkIGludCBt cG9ydDsKKysKKysgICAgaWYgKCAhZzJtX2lvcG9ydCApCisrICAgICAgICByZXR1cm4gWDg2RU1V TF9SRVRSWTsKKysKKysgICAgbXBvcnQgPSBhZGRyIC0gZzJtX2lvcG9ydC0+Z3BvcnQgKyBnMm1f aW9wb3J0LT5tcG9ydDsKKyAKKyAgICAgc3dpdGNoICggc2l6ZSApCisgICAgIHsKK0BAIC0yMTUs NiArMjQzLDggQEAgc3RhdGljIGludCBjZl9jaGVjayBnMm1fcG9ydGlvX3dyaXRlKAorICAgICAg ICAgQlVHKCk7CisgICAgIH0KKyAKKysgICAgcmVhZF91bmxvY2soJmh2bS0+ZzJtX2lvcG9ydF9s b2NrKTsKKysKKyAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKKyB9CisgCistLS0gYS94ZW4vYXJj aC94ODYvaW5jbHVkZS9hc20vaHZtL2RvbWFpbi5oCisrKysgYi94ZW4vYXJjaC94ODYvaW5jbHVk ZS9hc20vaHZtL2RvbWFpbi5oCitAQCAtMTI1LDYgKzEyNSw3IEBAIHN0cnVjdCBodm1fZG9tYWlu IHsKKyAKKyAgICAgLyogTGlzdCBvZiBndWVzdCB0byBtYWNoaW5lIElPIHBvcnRzIG1hcHBpbmcu ICovCisgICAgIHN0cnVjdCBsaXN0X2hlYWQgZzJtX2lvcG9ydF9saXN0OworKyAgICByd2xvY2tf dCBnMm1faW9wb3J0X2xvY2s7CisgCisgICAgIC8qIExpc3Qgb2YgTU1DRkcgcmVnaW9ucyB0cmFw cGVkIGJ5IFhlbi4gKi8KKyAgICAgc3RydWN0IGxpc3RfaGVhZCBtbWNmZ19yZWdpb25zOworLS0t IGEveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2h2bS92Y3B1LmgKKysrKyBiL3hlbi9hcmNoL3g4 Ni9pbmNsdWRlL2FzbS9odm0vdmNwdS5oCitAQCAtNTQsOCArNTQsNiBAQCBzdHJ1Y3QgaHZtX3Zj cHVfaW8geworICAgICB1bnNpZ25lZCBsb25nIG1zaXhfdW5tYXNrX2FkZHJlc3M7CisgICAgIHVu c2lnbmVkIGxvbmcgbXNpeF9zbm9vcF9hZGRyZXNzOworICAgICB1bnNpZ25lZCBsb25nIG1zaXhf c25vb3BfZ3BhOworLQorLSAgICBjb25zdCBzdHJ1Y3QgZzJtX2lvcG9ydCAqZzJtX2lvcG9ydDsK KyB9OworIAorIHN0cnVjdCBuZXN0ZWR2Y3B1IHsKCmRpZmYgLS1naXQgYS94c2E0OTItNC4yMS0w MS5wYXRjaCBiL3hzYTQ5Mi00LjIxLTAxLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjcyNDRlYmQKLS0tIC9kZXYvbnVsbAorKysgYi94c2E0OTItNC4yMS0wMS5wYXRj aApAQCAtMCwwICsxLDI2NCBAQAorRnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29t PgorU3ViamVjdDogc2NoZWQ6IHVzZSBzZXF1ZW5jZSBjb3VudGVyIHRvIGVubGlnaHRlbiB2Y3B1 X3J1bnN0YXRlX2dldCgpCisKK1N1YnNlcXVlbnRseSBYRU5fRE9NQ1RMX2dldGRvbWFpbmluZm8g d2lsbCB3YW50IHRvIGludm9rZSB0aGUgZnVuY3Rpb24KK3dpdGhvdXQgaG9sZGluZyBhIGxvY2ss IHRodXMgYWxsb3dpbmcgcGFyYWxsZWwgZXhlY3V0aW9uIG9mIHBvdGVudGlhbGx5CittYW55IGlu c3RhbmNlcy4gQXMgd2FzIGxlYXJuZWQgZnJvbSAyMjhhYjk5OTJmZmIgKCJkb21jdGw6IGltcHJv dmUKK2xvY2tpbmcgZHVyaW5nIGRvbWFpbiBkZXN0cnVjdGlvbiIpLCByZXZlcnRlZCBieSBkMDg4 N2NjNmIxNmUsIHN1Y2gKK3BhcmFsbGVsaXNtIGNhbiByZXN1bHQgaW4gc2V2ZXJlIGxvY2sgY29u dGVudGlvbiBvbiBhbnkgKHByZXZpb3VzbHkpCitpbm5lciBsb2NrLiBUbyBhdm9pZCB0YWtpbmcg dGhhdCByaXNrIHJlcGxhY2UgdGhlIHVzZSBvZiB0aGUgc2NoZWR1bGVyCitsb2NrIGluIHZjcHVf cnVuc3RhdGVfZ2V0KCkgYnkgYSBuZXdseSBpbnRyb2R1Y2VkIHNlcXVlbmNlIGNvdW50ZXIuCitD b252ZXJ0IHRoZSAibm8gbG9jayBpZiBjdXJyZW50IiBwcm9wZXJ0eSB0byAidXNlIGEgbG9jYWwg Y291bnRlcgoraW5zdGFuY2UiLCB0aHVzIGd1YXJhbnRlZWluZyB0aGUgbG9vcCB0byBleGl0IGFm dGVyIHRoZSBmaXJzdCBpdGVyYXRpb24uCisKK1NrZWxldG9uIGFuZCBjb21tZW50YXJ5IG9mIHRo ZSBzZXFjb3VudCBpbXBsZW1lbnRhdGlvbiBiYXNlZCBvbiAvCitkZXJpdmVkIGZyb20gTGludXgg Ni4xMS1yYy4KKworVG8gaGF2ZSBydW5zdGF0ZV9zZXEgcGxhY2VkIG5leHQgdG8gcnVuc3RhdGUg aW4gc3RydWN0IHZjcHUsIHdpdGhvdXQKK2ludHJvZHVjaW5nIGEgbmV3IG9idmlvdXMgcGFkZGlu ZyBob2xlLCB5ZXQgd2hpbGUga2VlcGluZyB0aGUgbGF0dGVyCithZGphY2VudCB0byBydW5zdGF0 ZV9ndWVzdHssX2FyZWF9IGFzIHdlbGwsIG1vdmUgcnVuc3RhdGUgZG93biBhIGxpdHRsZS4KKwor VGhpcyBpcyBwYXJ0IG9mIFhTQS00OTIuCisKK1JlcXVlc3RlZC1ieTogQW5kcmV3IENvb3BlciA8 YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KK1NpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxq YmV1bGljaEBzdXNlLmNvbT4KK1NpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5j b29wZXIzQGNpdHJpeC5jb20+CitSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIu cGF1QGNpdHJpeC5jb20+CitSZXZpZXdlZC1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2Uu Y29tPgorCistLS0gYS94ZW4vY29tbW9uL3NjaGVkL2NvcmUuYworKysrIGIveGVuL2NvbW1vbi9z Y2hlZC9jb3JlLmMKK0BAIC0yODEsMTMgKzI4MSwxOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdmNw dV9ydW5zdGF0ZV9jaGFuZ2UoCisgICAgIH0KKyAKKyAgICAgZGVsdGEgPSBuZXdfZW50cnlfdGlt ZSAtIHYtPnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWU7CistICAgIGlmICggZGVsdGEgPiAwICkK KysKKysgICAgLyogU2VyaWFsaXphdGlvbjogLT5zY2hlZHVsZV9sb2NrIChzZWUgQVNTRVJUKCkg YWJvdmUpLiAqLworKyAgICB3aXRoX3NlcV93cml0ZSgmdi0+cnVuc3RhdGVfc2VxKQorICAgICB7 CistICAgICAgICB2LT5ydW5zdGF0ZS50aW1lW3YtPnJ1bnN0YXRlLnN0YXRlXSArPSBkZWx0YTsK Ky0gICAgICAgIHYtPnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgPSBuZXdfZW50cnlfdGltZTsK Ky0gICAgfQorKyAgICAgICAgaWYgKCBkZWx0YSA+IDAgKQorKyAgICAgICAgeworKyAgICAgICAg ICAgIHYtPnJ1bnN0YXRlLnRpbWVbdi0+cnVuc3RhdGUuc3RhdGVdICs9IGRlbHRhOworKyAgICAg ICAgICAgIHYtPnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3RpbWUgPSBuZXdfZW50cnlfdGltZTsKKysg ICAgICAgIH0KKyAKKy0gICAgdi0+cnVuc3RhdGUuc3RhdGUgPSBuZXdfc3RhdGU7CisrICAgICAg ICB2LT5ydW5zdGF0ZS5zdGF0ZSA9IG5ld19zdGF0ZTsKKysgICAgfQorIH0KKyAKKyB2b2lkIHNj aGVkX2d1ZXN0X2lkbGUodm9pZCAoKmlkbGUpICh2b2lkKSwgdW5zaWduZWQgaW50IGNwdSkKK0BA IC0zMDcsMzAgKzMxMiwxOCBAQCB2b2lkIHNjaGVkX2d1ZXN0X2lkbGUodm9pZCAoKmlkbGUpICh2 b2lkCisgdm9pZCB2Y3B1X3J1bnN0YXRlX2dldChjb25zdCBzdHJ1Y3QgdmNwdSAqdiwKKyAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2Y3B1X3J1bnN0YXRlX2luZm8gKnJ1bnN0YXRlKQor IHsKKy0gICAgc3BpbmxvY2tfdCAqbG9jazsKKy0gICAgc190aW1lX3QgZGVsdGE7CistICAgIHN0 cnVjdCBzY2hlZF91bml0ICp1bml0OworKyAgICBzdHJ1Y3Qgc2VxY291bnQgc2VxID0gU0VRQ05U X1pFUk8oKTsKKysgICAgY29uc3Qgc3RydWN0IHNlcWNvdW50ICpzID0gbGlrZWx5KHYgPT0gY3Vy cmVudCkgPyAmc2VxIDogJnYtPnJ1bnN0YXRlX3NlcTsKKyAKKy0gICAgcmN1X3JlYWRfbG9jaygm c2NoZWRfcmVzX3JjdWxvY2spOworLQorLSAgICAvKgorLSAgICAgKiBCZSBjYXJlZnVsIGluIGNh c2Ugb2YgYW4gaWRsZSB2Y3B1OiB0aGUgYXNzaWdubWVudCB0byBhIHVuaXQgbWlnaHQKKy0gICAg ICogY2hhbmdlIGV2ZW4gd2l0aCB0aGUgc2NoZWR1bGluZyBsb2NrIGhlbGQsIHNvIGJlIHN1cmUg dG8gdXNlIHRoZQorLSAgICAgKiBjb3JyZWN0IHVuaXQgZm9yIGxvY2tpbmcgaW4gb3JkZXIgdG8g YXZvaWQgdHJpZ2dlcmluZyBhbiBBU1NFUlQoKSBpbgorLSAgICAgKiB0aGUgdW5sb2NrIGZ1bmN0 aW9uLgorLSAgICAgKi8KKy0gICAgdW5pdCA9IGlzX2lkbGVfdmNwdSh2KSA/IGdldF9zY2hlZF9y ZXModi0+cHJvY2Vzc29yKS0+c2NoZWRfdW5pdF9pZGxlCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgOiB2LT5zY2hlZF91bml0OworLSAgICBsb2NrID0gbGlrZWx5KHYgPT0gY3VycmVudCkg PyBOVUxMIDogdW5pdF9zY2hlZHVsZV9sb2NrX2lycSh1bml0KTsKKy0gICAgbWVtY3B5KHJ1bnN0 YXRlLCAmdi0+cnVuc3RhdGUsIHNpemVvZigqcnVuc3RhdGUpKTsKKy0gICAgZGVsdGEgPSBOT1co KSAtIHJ1bnN0YXRlLT5zdGF0ZV9lbnRyeV90aW1lOworLSAgICBpZiAoIGRlbHRhID4gMCApCist ICAgICAgICBydW5zdGF0ZS0+dGltZVtydW5zdGF0ZS0+c3RhdGVdICs9IGRlbHRhOworLQorLSAg ICBpZiAoIHVubGlrZWx5KGxvY2sgIT0gTlVMTCkgKQorLSAgICAgICAgdW5pdF9zY2hlZHVsZV91 bmxvY2tfaXJxKGxvY2ssIHVuaXQpOworKyAgICB1bnRpbF9zZXFfcmVhZChzKQorKyAgICB7Cisr ICAgICAgICBzX3RpbWVfdCBkZWx0YTsKKyAKKy0gICAgcmN1X3JlYWRfdW5sb2NrKCZzY2hlZF9y ZXNfcmN1bG9jayk7CisrICAgICAgICAqcnVuc3RhdGUgPSB2LT5ydW5zdGF0ZTsKKysgICAgICAg IGRlbHRhID0gTk9XKCkgLSBydW5zdGF0ZS0+c3RhdGVfZW50cnlfdGltZTsKKysgICAgICAgIGlm ICggZGVsdGEgPiAwICkKKysgICAgICAgICAgICBydW5zdGF0ZS0+dGltZVtydW5zdGF0ZS0+c3Rh dGVdICs9IGRlbHRhOworKyAgICB9CisgfQorIAorIHVpbnQ2NF90IGdldF9jcHVfaWRsZV90aW1l KHVuc2lnbmVkIGludCBjcHUpCistLS0gYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAorKysrIGIv eGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKK0BAIC0xNiw2ICsxNiw3IEBACisgI2luY2x1ZGUgPHhl bi9yYWRpeC10cmVlLmg+CisgI2luY2x1ZGUgPHhlbi9tdWx0aWNhbGwuaD4KKyAjaW5jbHVkZSA8 eGVuL25vc3BlYy5oPgorKyNpbmNsdWRlIDx4ZW4vc2VxY291bnQuaD4KKyAjaW5jbHVkZSA8eGVu L3Rhc2tsZXQuaD4KKyAjaW5jbHVkZSA8eGVuL21tLmg+CisgI2luY2x1ZGUgPHhlbi9zbXAuaD4K K0BAIC0xOTgsNyArMTk5LDYgQEAgc3RydWN0IHZjcHUKKyAKKyAgICAgc3RydWN0IHNjaGVkX3Vu aXQgKnNjaGVkX3VuaXQ7CisgCistICAgIHN0cnVjdCB2Y3B1X3J1bnN0YXRlX2luZm8gcnVuc3Rh dGU7CisgI2lmbmRlZiBDT05GSUdfQ09NUEFUCisgIyBkZWZpbmUgcnVuc3RhdGVfZ3Vlc3Qodikg KCh2KS0+cnVuc3RhdGVfZ3Vlc3QpCisgICAgIFhFTl9HVUVTVF9IQU5ETEUodmNwdV9ydW5zdGF0 ZV9pbmZvX3QpIHJ1bnN0YXRlX2d1ZXN0OyAvKiBndWVzdCBhZGRyZXNzICovCitAQCAtMjEwLDYg KzIxMCw4IEBAIHN0cnVjdCB2Y3B1CisgICAgIH0gcnVuc3RhdGVfZ3Vlc3Q7IC8qIGd1ZXN0IGFk ZHJlc3MgKi8KKyAjZW5kaWYKKyAgICAgc3RydWN0IGd1ZXN0X2FyZWEgcnVuc3RhdGVfZ3Vlc3Rf YXJlYTsKKysgICAgc3RydWN0IHZjcHVfcnVuc3RhdGVfaW5mbyBydW5zdGF0ZTsKKysgICAgc3Ry dWN0IHNlcWNvdW50ICBydW5zdGF0ZV9zZXE7CisgICAgIHVuc2lnbmVkIGludCAgICAgbmV3X3N0 YXRlOworIAorICAgICAvKiBIYXMgdGhlIEZQVSBiZWVuIGluaXRpYWxpc2VkPyAqLworLS0tIC9k ZXYvbnVsbAorKysrIGIveGVuL2luY2x1ZGUveGVuL3NlcWNvdW50LmgKK0BAIC0wLDAgKzEsMTM5 IEBACisrLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLworKyNpZm5k ZWYgWEVOX1NFUUNPVU5UX0gKKysjZGVmaW5lIFhFTl9TRVFDT1VOVF9ICisrCisrI2luY2x1ZGUg PHhlbi9saWIuaD4KKysjaW5jbHVkZSA8eGVuL25vc3BlYy5oPgorKworKyNpbmNsdWRlIDxhc20v YXRvbWljLmg+CisrI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KKysKKysvKgorKyAqIFNlcXVlbmNl IGNvdW50ZXJzIChzZXFjb3VudF90KQorKyAqCisrICogVGhpcyBpcyB0aGUgcmF3IGNvdW50aW5n IG1lY2hhbmlzbSwgd2l0aG91dCBhbnkgd3JpdGVyIHByb3RlY3Rpb24uCisrICoKKysgKiBXcml0 ZSBzaWRlIGNyaXRpY2FsIHNlY3Rpb25zIG11c3QgYmUgc2VyaWFsaXplZCAoYW5kIG5vbi1wcmVl bXB0aWJsZSkuCisrICoKKysgKiBJZiByZWFkZXJzIGNhbiBiZSBpbnZva2VkIGZyb20gaW50ZXJy dXB0IGNvbnRleHRzLCBpbnRlcnJ1cHRzIG11c3QgYWxzbworKyAqIGJlIHJlc3BlY3RpdmVseSBk aXNhYmxlZCBiZWZvcmUgZW50ZXJpbmcgdGhlIHdyaXRlIHNlY3Rpb24uCisrICoKKysgKiBUaGlz IG1lY2hhbmlzbSBjYW4ndCBiZSB1c2VkIGlmIHRoZSBwcm90ZWN0ZWQgZGF0YSBjb250YWlucyBw b2ludGVycywKKysgKiBhcyB0aGUgd3JpdGVyIGNhbiBpbnZhbGlkYXRlIGEgcG9pbnRlciB0aGF0 IGEgcmVhZGVyIGlzIGZvbGxvd2luZy4KKysgKi8KKytzdHJ1Y3Qgc2VxY291bnQgeworKyAgICB1 bnNpZ25lZCBpbnQgc2VxdWVuY2U7CisrfTsKKysKKysvKgorKyAqIFNFUUNOVF9aRVJPKCkgLSBp bml0aWFsaXplciBmb3Igc2VxY291bnRfdAorKyAqIEBuYW1lOiBOYW1lIG9mIHRoZSBzdHJ1Y3Qg c2VxY291bnQgaW5zdGFuY2UKKysgKi8KKysjZGVmaW5lIFNFUUNOVF9aRVJPKCkgeyAuc2VxdWVu Y2UgPSAwIH0KKysKKytzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBzZXFwcm9wX3NlcXVlbmNl KGNvbnN0IHN0cnVjdCBzZXFjb3VudCAqcykKKyt7CisrICAgIHJldHVybiBBQ0NFU1NfT05DRShz LT5zZXF1ZW5jZSk7CisrfQorKworKy8qCisrICogcmVhZF9zZXFjb3VudF9iZWdpbigpIC0gYmVn aW4gYSBzZXFjb3VudCByZWFkIGNyaXRpY2FsIHNlY3Rpb24KKysgKiBAczogUG9pbnRlciB0byBz dHJ1Y3Qgc2VxY291bnQKKysgKgorKyAqIFJldHVybjogY291bnQgdG8gYmUgcGFzc2VkIHRvIHJl YWRfc2VxY291bnRfcmV0cnkoKQorKyAqLworK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IF9y ZWFkX3NlcWNvdW50X2JlZ2luKGNvbnN0IHN0cnVjdCBzZXFjb3VudCAqcykKKyt7CisrICAgIHVu c2lnbmVkIGludCBzZXE7CisrCisrICAgIHdoaWxlICgoc2VxID0gc2VxcHJvcF9zZXF1ZW5jZShz KSkgJiAxKQorKyAgICAgICAgY3B1X3JlbGF4KCk7CisrCisrICAgIHNtcF9ybWIoKTsKKysKKysg ICAgcmV0dXJuIHNlcTsKKyt9CisrCisrc3RhdGljIGFsd2F5c19pbmxpbmUgdW5zaWduZWQgaW50 IHJlYWRfc2VxY291bnRfYmVnaW4oY29uc3Qgc3RydWN0IHNlcWNvdW50ICpzKQorK3sKKysgICAg dW5zaWduZWQgaW50IHNlcSA9IF9yZWFkX3NlcWNvdW50X2JlZ2luKHMpOworKworKyAgICBibG9j a19sb2NrX3NwZWN1bGF0aW9uKCk7CisrCisrICAgIHJldHVybiBzZXE7CisrfQorKworKy8qCisr ICogcmVhZF9zZXFjb3VudF9yZXRyeSgpIC0gZW5kIGEgc2VxY291bnQgcmVhZCBjcml0aWNhbCBz ZWN0aW9uCisrICogQHM6IFBvaW50ZXIgdG8gc3RydWN0IHNlcWNvdW50CisrICogQHN0YXJ0OiBj b3VudCwgZnJvbSByZWFkX3NlcWNvdW50X2JlZ2luKCkKKysgKgorKyAqIHJlYWRfc2VxY291bnRf cmV0cnkgY2xvc2VzIHRoZSByZWFkIGNyaXRpY2FsIHNlY3Rpb24gb2YgZ2l2ZW4gc3RydWN0Cisr ICogc2VxY291bnQuICBJZiB0aGUgY3JpdGljYWwgc2VjdGlvbiB3YXMgaW52YWxpZCwgaXQgbXVz dCBiZSBpZ25vcmVkCisrICogKGFuZCB0eXBpY2FsbHkgcmV0cmllZCkuCisrICoKKysgKiBSZXR1 cm46IHRydWUgaWYgYSByZWFkIHNlY3Rpb24gcmV0cnkgaXMgcmVxdWlyZWQsIGVsc2UgZmFsc2UK KysgKi8KKytzdGF0aWMgaW5saW5lIGJvb2wgX3JlYWRfc2VxY291bnRfcmV0cnkoY29uc3Qgc3Ry dWN0IHNlcWNvdW50ICpzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBpbnQgc3RhcnQpCisreworKyAgICBzbXBfcm1iKCk7CisrICAgIHJldHVybiB1 bmxpa2VseShzZXFwcm9wX3NlcXVlbmNlKHMpICE9IHN0YXJ0KTsKKyt9CisrCisrc3RhdGljIGFs d2F5c19pbmxpbmUgYm9vbCByZWFkX3NlcWNvdW50X3JldHJ5KGNvbnN0IHN0cnVjdCBzZXFjb3Vu dCAqcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgaW50IHN0YXJ0KQorK3sKKysgICAgcmV0dXJuIGxvY2tfZXZhbHVhdGVfbm9zcGVjKF9y ZWFkX3NlcWNvdW50X3JldHJ5KHMsIHN0YXJ0KSk7CisrfQorKworKy8qIExvb3BzIHVudGlsIGEg Y29uc2lzdGVudCBjb3VudCBoYXMgYmVlbiBvYnNlcnZlZCBhY3Jvc3MgdGhlIGxvb3AgYm9keS4g Ki8KKysjZGVmaW5lIHVudGlsX3NlcV9yZWFkKHNlcSkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisrICAgIGZvciAoIHVuc2lnbmVkIGludCByZXRyeV8gPSAxLCBjb3VudF87 ICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICAgICByZXRyeV8gJiYgKGNvdW50XyA9IHJl YWRfc2VxY291bnRfYmVnaW4oc2VxKSwgdHJ1ZSk7IFwKKysgICAgICAgICAgcmV0cnlfID0gcmVh ZF9zZXFjb3VudF9yZXRyeShzZXEsIGNvdW50XykgKQorKworKy8qCisrICogd3JpdGVfc2VxY291 bnRfYmVnaW4oKSAtIHN0YXJ0IGEgc3RydWN0IHNlcWNvdW50IHdyaXRlIHNpZGUgY3JpdGljYWwg c2VjdGlvbgorKyAqIEBzOiBQb2ludGVyIHRvIHN0cnVjdCBzZXFjb3VudAorKyAqCisrICogQ29u dGV4dDogc2VxdWVuY2UgY291bnRlciB3cml0ZSBzaWRlIHNlY3Rpb25zIG11c3QgYmUgc2VyaWFs aXplZC4KKysgKiBJZiByZWFkZXJzIGNhbiBiZSBpbnZva2VkIGZyb20gaW50ZXJydXB0IGNvbnRl eHQsIGludGVycnVwdHMgbXVzdCBiZQorKyAqIHJlc3BlY3RpdmVseSBkaXNhYmxlZC4KKysgKi8K KytzdGF0aWMgaW5saW5lIHZvaWQgd3JpdGVfc2VxY291bnRfYmVnaW4oc3RydWN0IHNlcWNvdW50 ICpzKQorK3sKKysgICAgYWRkX3NpemVkKCZzLT5zZXF1ZW5jZSwgMSk7CisrICAgIHNtcF93bWIo KTsKKyt9CisrCisrLyoKKysgKiB3cml0ZV9zZXFjb3VudF9lbmQoKSAtIGVuZCBhIHN0cnVjdCBz ZXFjb3VudCB3cml0ZSBzaWRlIGNyaXRpY2FsIHNlY3Rpb24KKysgKiBAczogUG9pbnRlciB0byBz ZXFjb3VudAorKyAqLworK3N0YXRpYyBpbmxpbmUgdm9pZCB3cml0ZV9zZXFjb3VudF9lbmQoc3Ry dWN0IHNlcWNvdW50ICpzKQorK3sKKysgICAgc21wX3dtYigpOworKyAgICBhZGRfc2l6ZWQoJnMt PnNlcXVlbmNlLCAxKTsKKyt9CisrCisrLyoKKysgKiBOb3QgcmVhbGx5IGEgbG9vcCwgYnV0IHdl IG5lZWQgd3JpdGVfc2VxY291bnRfe2JlZ2luLGVuZH0oKSBpbiB0aGUgY29ycmVjdAorKyAqIHBv c2l0aW9uLgorKyAqLworKyNkZWZpbmUgd2l0aF9zZXFfd3JpdGUoc2VxKSAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKysgICAgZm9yICggYm9vbCBvbmNlXyA9IHRydWU7ICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisrICAgICAgICAgIG9uY2VfICYmICh3cml0ZV9zZXFjb3VudF9iZWdp bihzZXEpLCB0cnVlKTsgXAorKyAgICAgICAgICAod3JpdGVfc2VxY291bnRfZW5kKHNlcSksIG9u Y2VfID0gZmFsc2UpICkKKysKKysjZW5kaWYgLyogWEVOX1NFUUNPVU5UX0ggKi8KKysKKysvKgor KyAqIExvY2FsIHZhcmlhYmxlczoKKysgKiBtb2RlOiBDCisrICogYy1maWxlLXN0eWxlOiAiQlNE IgorKyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisrICogdGFiLXdpZHRoOiA0CisrICogaW5kZW50LXRh YnMtbW9kZTogbmlsCisrICogRW5kOgorKyAqLwoKZGlmZiAtLWdpdCBhL3hzYTQ5Mi00LjIxLTAy LnBhdGNoIGIveHNhNDkyLTQuMjEtMDIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uNzVjYThjYQotLS0gL2Rldi9udWxsCisrKyBiL3hzYTQ5Mi00LjIxLTAyLnBhdGNo CkBAIC0wLDAgKzEsMTA0IEBACitGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ CitTdWJqZWN0OiBkb21jdGw6IGhhbmRsZSBYRU5fRE9NQ1RMX2dldGRvbWFpbmluZm8gd2l0aG91 dCBhY3F1aXJpbmcgZG9tY3RsIGxvY2sKKworZ2V0ZG9tYWluaW5mbygpIGlzIG5vdCBjYWxsZWQg dW5kZXIgY29uc2lzdGVudGx5IHRoZSBzYW1lIGxvY2suIFRodXMsCit3aXRoIGNhbGxlciBzaWRl IGxvY2tpbmcgaXJyZWxldmFudCwgaXQgY2FuIGFzIHdlbGwgYmUgY2FsbGVkIHdpdGggdGhlCitk b21jdGwgbG9jayBub3QgaGVsZC4gKENhbGxlcnMgbm90IHBhdXNpbmcgdGhlIGRvbWFpbiB0aGV5 IHdhbnQgdG8KK3JldHJpZXZlIGluZm9ybWF0aW9uIGZvciBhbHJlYWR5IG5lZWQgdG8gYmUgYXdh cmUgdGhhdCBub3QgYWxsIG9mIHRoZQorZGF0YSByZXR1cm5lZCBjYW4gYmUgcmVsaWVkIG9uIGFz IGJlaW5nIGNvbnNpc3RlbnQ7IG1vc3QgZGF0YSB3aWxsIGFsc28KK2JlIHN0YWxlIGJ5IHRoZSB0 aW1lIHRoZSBjYWxsZXIgZ2V0cyB0byBsb29rIGF0IGl0LikKKworTW92ZSB0aGUgaGFuZGxpbmcg bm90IG9ubHkgYWhlYWQgb2YgYWNxdWlyaW5nIHRoZSBsb2NrLCBidXQgYWxzbyBhaGVhZAorb2Yg dGhlIFhTTSBjaGVjaywgbGV2ZXJhZ2luZyB0aGF0IHRoZSBzdWItb3AgaGFzIGl0cyBvd24gaG9v ay4KKworV2hpbGUgbW92aW5nLCBjb252ZXJ0IGFuIGFzc2lnbm1lbnQgdG8gYW4gYXNzZXJ0aW9u OiBUaGUgZG9tYWluIGluCitxdWVzdGlvbiB3YXMgZGV0ZXJtaW5lZCBmcm9tIHRoZSBmaWVsZCB3 aGljaCBwcmV2aW91c2x5IHdhcyAidXBkYXRlZCIuCisKK1RoaXMgaXMgcGFydCBvZiBYU0EtNDky LgorCitGaXhlczogNTUxM2JkMGI0Njc1ICgiYWRkIHhlbnN0b3JlIGRvbWFpbiBmbGFnIHRvIGh5 cGVydmlzb3IiKQorUmVwb3J0ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNp dHJpeC5jb20+CitTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ CitSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CitB Y2tlZC1ieTogRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPgor CistLS0gYS94ZW4vY29tbW9uL2RvbWN0bC5jCisrKysgYi94ZW4vY29tbW9uL2RvbWN0bC5jCitA QCAtMzE4LDYgKzMxOCwyNiBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFN KHhlCisgICAgICAgICBicmVhazsKKyAgICAgfQorIAorKyAgICAvKiBIYW5kbGUgc3ViLW9wcyBu b3QgcmVxdWlyaW5nIHRoZSBkb21jdGwgbG9jay4gKi8KKysgICAgc3dpdGNoICggb3AtPmNtZCAp CisrICAgIHsKKysgICAgY2FzZSBYRU5fRE9NQ1RMX2dldGRvbWFpbmluZm86CisrICAgICAgICBy ZXQgPSB4c21fZ2V0ZG9tYWluaW5mbyhYU01fWFNfUFJJViwgZCk7CisrICAgICAgICBpZiAoICFy ZXQgKQorKyAgICAgICAgeworKyAgICAgICAgICAgIGdldGRvbWFpbmluZm8oZCwgJm9wLT51Lmdl dGRvbWFpbmluZm8pOworKworKyAgICAgICAgICAgIEFTU0VSVChvcC0+ZG9tYWluID09IG9wLT51 LmdldGRvbWFpbmluZm8uZG9tYWluKTsKKysgICAgICAgICAgICBjb3B5YmFjayA9IHRydWU7Cisr ICAgICAgICB9CisrCisrICAgICAgICBnb3RvIGRvbWN0bF9vdXRfdW5sb2NrX2RvbW9ubHk7Cisr CisrICAgIGRlZmF1bHQ6CisrICAgICAgICAvKiBFdmVyeXRoaW5nIGVsc2UgaGFuZGxlZCBmdXJ0 aGVyIGRvd24uICovCisrICAgICAgICBicmVhazsKKysgICAgfQorKworICAgICByZXQgPSB4c21f ZG9tY3RsKFhTTV9PVEhFUiwgZCwgb3AtPmNtZCwKKyAgICAgICAgICAgICAgICAgICAgICAvKiBT U0lEUmVmIG9ubHkgYXBwbGljYWJsZSBmb3IgY21kID09IGNyZWF0ZWRvbWFpbiAqLworICAgICAg ICAgICAgICAgICAgICAgIG9wLT51LmNyZWF0ZWRvbWFpbi5zc2lkcmVmKTsKK0BAIC01MTYsMTcg KzUzNiw2IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGUKKyAgICAg ICAgIGNvcHliYWNrID0gMTsKKyAgICAgICAgIGJyZWFrOworIAorLSAgICBjYXNlIFhFTl9ET01D VExfZ2V0ZG9tYWluaW5mbzoKKy0gICAgICAgIHJldCA9IHhzbV9nZXRkb21haW5pbmZvKFhTTV9Y U19QUklWLCBkKTsKKy0gICAgICAgIGlmICggcmV0ICkKKy0gICAgICAgICAgICBicmVhazsKKy0K Ky0gICAgICAgIGdldGRvbWFpbmluZm8oZCwgJm9wLT51LmdldGRvbWFpbmluZm8pOworLQorLSAg ICAgICAgb3AtPmRvbWFpbiA9IG9wLT51LmdldGRvbWFpbmluZm8uZG9tYWluOworLSAgICAgICAg Y29weWJhY2sgPSAxOworLSAgICAgICAgYnJlYWs7CistCisgICAgIGNhc2UgWEVOX0RPTUNUTF9n ZXR2Y3B1Y29udGV4dDoKKyAgICAgeworICAgICAgICAgdmNwdV9ndWVzdF9jb250ZXh0X3UgYyA9 IHsgLm5hdCA9IE5VTEwgfTsKKy0tLSBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCisrKysgYi94 ZW4vaW5jbHVkZS94c20vZHVtbXkuaAorQEAgLTE3Miw5ICsxNzIsMTMgQEAgc3RhdGljIFhTTV9J TkxJTkUgaW50IGNmX2NoZWNrIHhzbV9kb21jdAorICAgICBjYXNlIFhFTl9ET01DVExfYmluZF9w dF9pcnE6CisgICAgIGNhc2UgWEVOX0RPTUNUTF91bmJpbmRfcHRfaXJxOgorICAgICAgICAgcmV0 dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihYU01fRE1fUFJJViwgY3VycmVudC0+ZG9tYWluLCBkKTsK Ky0gICAgY2FzZSBYRU5fRE9NQ1RMX2dldGRvbWFpbmluZm86CisgICAgIGNhc2UgWEVOX0RPTUNU TF9nZXRfZG9tYWluX3N0YXRlOgorICAgICAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihY U01fWFNfUFJJViwgY3VycmVudC0+ZG9tYWluLCBkKTsKKysKKysgICAgY2FzZSBYRU5fRE9NQ1RM X2dldGRvbWFpbmluZm86CisrICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKKysgICAgICAg IHJldHVybiAtRUlMU0VROworKworICAgICBkZWZhdWx0OgorICAgICAgICAgcmV0dXJuIHhzbV9k ZWZhdWx0X2FjdGlvbihYU01fUFJJViwgY3VycmVudC0+ZG9tYWluLCBkKTsKKyAgICAgfQorLS0t IGEveGVuL3hzbS9mbGFzay9ob29rcy5jCisrKysgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKK0BA IC02ODIsOCArNjgyLDEyIEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVj dAorICAgICAgICAgICovCisgICAgICAgICByZXR1cm4gYXZjX2N1cnJlbnRfaGFzX3Blcm0oc3Np ZHJlZiwgU0VDQ0xBU1NfRE9NQUlOLCBET01BSU5fX0NSRUFURSwgTlVMTCk7CisgCistICAgIC8q IFRoZXNlIGhhdmUgaW5kaXZpZHVhbCBYU00gaG9va3MgKGNvbW1vbi9kb21jdGwuYykgKi8KKysg ICAgLyogVGhlc2UgaGF2ZSBpbmRpdmlkdWFsIFhTTSBob29rcyBhbmQgZG9uJ3QgbWFrZSBpdCBo ZXJlLiAqLworICAgICBjYXNlIFhFTl9ET01DVExfZ2V0ZG9tYWluaW5mbzoKKysgICAgICAgIEFT U0VSVF9VTlJFQUNIQUJMRSgpOworKyAgICAgICAgcmV0dXJuIC1FSUxTRVE7CisrCisrICAgIC8q IFRoZXNlIGhhdmUgaW5kaXZpZHVhbCBYU00gaG9va3MgKGNvbW1vbi9kb21jdGwuYykgKi8KKyAg ICAgY2FzZSBYRU5fRE9NQ1RMX3NjaGVkdWxlcl9vcDoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2ly cV9wZXJtaXNzaW9uOgorICAgICBjYXNlIFhFTl9ET01DVExfaW9tZW1fcGVybWlzc2lvbjoKCmRp ZmYgLS1naXQgYS94c2E0OTItNC4yMS0wMy5wYXRjaCBiL3hzYTQ5Mi00LjIxLTAzLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhMGRiMjIKLS0tIC9kZXYvbnVsbAor KysgYi94c2E0OTItNC4yMS0wMy5wYXRjaApAQCAtMCwwICsxLDg3IEBACitGcm9tOiBEYW5pZWwg UC4gU21pdGggPGRwc21pdGhAYXBlcnR1c3NvbHV0aW9ucy5jb20+CitTdWJqZWN0OiBkb21jdGw6 IHByb3RlY3QgbG9ja2luZyBmb3IgZ2V0X2RvbWFpbl9zdGF0ZQorCitXaGVuIERPTUlEX0lOVkFM SUQgaXMgcGFzc2VkLCB0aGUgZG9tIGV4ZWMgaGFuZGxlciBsb2NrIGlzIGJlaW5nIHRha2VuCit3 aXRob3V0IGFueSBjaGVjayB0aGF0IHRoZSBkb21haW4gaXMgZXZlbiBhbGxvd2VkIHRvIHRha2Ug dGhlIGxvY2suIFRoaXMKK2FsbG93cyBmb3IgYW4gdW5hdXRob3JpemVkIGRvbWFpbiB0byBEb1Mg dGhlIGdldF9kb21haW5fc3RhdGUgZG9tY3RsIG9wLgorTW92ZSB0byBjb25zaWRlciB0aGUgb3Ag ZWZmZWN0aXZlbHkgYmVpbmcgY2FsbGVkIGFnYWluc3QgdGhlIGh5cGVydmlzb3IuCitUaHVzIGl0 IGlzIHRoZSB0YXJnZXQgb2YgdGhlIGNhbGwgYmVpbmcgaW52b2tlZCB0byBpZGVudGlmeSB0aGUg bGFzdAorZG9tYWluIHdpdGggYSBzdGF0ZSBjaGFuZ2UuIFRoZSBzdWJzZXF1ZW50IGNoZWNrIG9m IHdoZXRoZXIgdGhlIHNvdXJjZQorZG9tYWluIGlzIGFsbG93ZWQgdGhlIHN0YXRlIG9mIHRoZSBs YXN0IGRvbWFpbiB0byBjaGFuZ2Ugc3RhdGUgaXMgc3RpbGwKK3JlbGV2YW50LgorCitUaGlzIGlz IHBhcnQgb2YgWFNBLTQ5Mi4KKworU2lnbmVkLW9mZi1ieTogRGFuaWVsIFAuIFNtaXRoIDxkcHNt aXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPgorU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpi ZXVsaWNoQHN1c2UuY29tPgorUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBh dUBjaXRyaXguY29tPgorCistLS0gYS90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW5zdG9y ZS50ZQorKysrIGIvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuc3RvcmUudGUKK0BAIC0x NCw2ICsxNCw3IEBAIGFsbG93IHhlbnN0b3JlX3QgeGVuX3Q6eGVuIHdyaXRlY29uc29sZTsKKyAj IFhlbnN0b3JlIHF1ZXJpZXMgZG9tYWluaW5mbyBvbiBhbGwgZG9tYWlucworIGFsbG93IHhlbnN0 b3JlX3QgZG9tYWluX3R5cGU6ZG9tYWluIGdldGRvbWFpbmluZm87CisgYWxsb3cgeGVuc3RvcmVf dCBkb21haW5fdHlwZTpkb21haW4yIGdldF9kb21haW5fc3RhdGU7CisrYWxsb3cgeGVuc3RvcmVf dCBkb214ZW5fdDpkb21haW4yIGdldF9kb21haW5fc3RhdGU7CisgCisgIyBBcyBhIHNob3J0Y3V0 LCB0aGUgZm9sbG93aW5nIDMgcnVsZXMgYXJlIHVzZWQgaW5zdGVhZCBvZiBhZGRpbmcgYSBkb21h aW5fY29tbXMKKyAjIHJ1bGUgYmV0d2VlbiB4ZW5zdG9yZV90IGFuZCBldmVyeSBkb21haW4gdHlw ZSB0aGF0IHRhbGtzIHRvIHhlbnN0b3JlCistLS0gYS94ZW4vY29tbW9uL2RvbWFpbi5jCisrKysg Yi94ZW4vY29tbW9uL2RvbWFpbi5jCitAQCAtMjE2LDEyICsyMTYsOCBAQCBpbnQgZ2V0X2RvbWFp bl9zdGF0ZShzdHJ1Y3QgeGVuX2RvbWN0bF9nCisgICAgIGlmICggaW5mby0+cGFkMCApCisgICAg ICAgICByZXR1cm4gLUVJTlZBTDsKKyAKKy0gICAgaWYgKCBkICkKKysgICAgaWYgKCBkICE9IGRv bV94ZW4gKQorICAgICB7CistICAgICAgICByYyA9IHhzbV9nZXRfZG9tYWluX3N0YXRlKFhTTV9Y U19QUklWLCBkKTsKKy0gICAgICAgIGlmICggcmMgKQorLSAgICAgICAgICAgIHJldHVybiByYzsK Ky0KKyAgICAgICAgIHNldF9kb21haW5fc3RhdGVfaW5mbyhpbmZvLCBkKTsKKyAKKyAgICAgICAg IHJldHVybiAwOworLS0tIGEveGVuL2NvbW1vbi9kb21jdGwuYworKysrIGIveGVuL2NvbW1vbi9k b21jdGwuYworQEAgLTMwNCwxMyArMzA0LDE5IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9I QU5ETEVfUEFSQU0oeGUKKyAgICAgICAgIGZhbGx0aHJvdWdoOworICAgICBjYXNlIFhFTl9ET01D VExfdGVzdF9hc3NpZ25fZGV2aWNlOgorICAgICBjYXNlIFhFTl9ET01DVExfdm1fZXZlbnRfb3A6 CistICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0YXRlOgorICAgICAgICAgaWYgKCBv cC0+ZG9tYWluID09IERPTUlEX0lOVkFMSUQgKQorICAgICAgICAgeworICAgICAgICAgICAgIGQg PSBOVUxMOworICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgfQorICAgICAgICAgZmFsbHRo cm91Z2g7CisrICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0YXRlOgorKyAgICAgICAg aWYgKCBvcC0+ZG9tYWluID09IERPTUlEX0lOVkFMSUQgKQorKyAgICAgICAgeworKyAgICAgICAg ICAgIGQgPSBkb21feGVuOworKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKyAgICAg ICAgZmFsbHRocm91Z2g7CisgICAgIGRlZmF1bHQ6CisgICAgICAgICBkID0gcmN1X2xvY2tfZG9t YWluX2J5X2lkKG9wLT5kb21haW4pOworICAgICAgICAgaWYgKCAhZCApCitAQCAtODYzLDcgKzg2 OSw5IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGUKKyAgICAgICAg IGJyZWFrOworIAorICAgICBjYXNlIFhFTl9ET01DVExfZ2V0X2RvbWFpbl9zdGF0ZToKKy0gICAg ICAgIHJldCA9IGdldF9kb21haW5fc3RhdGUoJm9wLT51LmdldF9kb21haW5fc3RhdGUsIGQsICZv cC0+ZG9tYWluKTsKKysgICAgICAgIHJldCA9IHhzbV9nZXRfZG9tYWluX3N0YXRlKFhTTV9YU19Q UklWLCBkKTsKKysgICAgICAgIGlmICggIXJldCApCisrICAgICAgICAgICAgcmV0ID0gZ2V0X2Rv bWFpbl9zdGF0ZSgmb3AtPnUuZ2V0X2RvbWFpbl9zdGF0ZSwgZCwgJm9wLT5kb21haW4pOworICAg ICAgICAgaWYgKCAhcmV0ICkKKyAgICAgICAgICAgICBjb3B5YmFjayA9IHRydWU7CisgICAgICAg ICBicmVhazsKK0BAIC04NzYsNyArODg0LDcgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hB TkRMRV9QQVJBTSh4ZQorICAgICBkb21jdGxfbG9ja19yZWxlYXNlKCk7CisgCisgIGRvbWN0bF9v dXRfdW5sb2NrX2RvbW9ubHk6CistICAgIGlmICggZCAmJiBkICE9IGRvbV9pbyApCisrICAgIGlm ICggZCAmJiAhaXNfc3lzdGVtX2RvbWFpbihkKSApCisgICAgICAgICByY3VfdW5sb2NrX2RvbWFp bihkKTsKKyAKKyAgICAgaWYgKCBjb3B5YmFjayAmJiBfX2NvcHlfdG9fZ3Vlc3QodV9kb21jdGws IG9wLCAxKSApCgpkaWZmIC0tZ2l0IGEveHNhNDkyLTQuMjEtMDQucGF0Y2ggYi94c2E0OTItNC4y MS0wNC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODFmZjVkCi0t LSAvZGV2L251bGwKKysrIGIveHNhNDkyLTQuMjEtMDQucGF0Y2gKQEAgLTAsMCArMSw4MSBAQAor RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgorU3ViamVjdDogZG9tY3RsOiBo YW5kbGUgWEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0YXRlIHdpdGhvdXQgYWNxdWlyaW5nIGRvbWN0 bCBsb2NrCisKK2dldF9kb21haW5fc3RhdGUoKSB1c2VzIGl0cyBvd24gbG9ja2luZy4gVGh1cywg d2l0aCBjYWxsZXIgc2lkZSBsb2NraW5nCitpcnJlbGV2YW50LCBpdCBjYW4gYXMgd2VsbCBiZSBj YWxsZWQgd2l0aCB0aGUgZG9tY3RsIGxvY2sgbm90IGhlbGQuCisKK01vdmUgdGhlIGhhbmRsaW5n IG5vdCBvbmx5IGFoZWFkIG9mIGFjcXVpcmluZyB0aGUgbG9jaywgYnV0IGFsc28gYWhlYWQKK29m IHRoZSBYU00gY2hlY2ssIGxldmVyYWdpbmcgdGhhdCB0aGUgc3ViLW9wIGhhcyBpdHMgb3duIGhv b2suCisKK1RoaXMgaXMgcGFydCBvZiBYU0EtNDkyLgorCitGaXhlczogM2FkM2RmMWJkMGFhICgi eGVuOiBhZGQgbmV3IGRvbWN0bCBnZXRfZG9tYWluX3N0YXRlIikKK1JlcG9ydGVkLWJ5OiBBbmRy ZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgorU2lnbmVkLW9mZi1ieTogSmFu IEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgorQWNrZWQtYnk6IERhbmllbCBQLiBTbWl0aCA8 ZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbT4KK1Jldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9u bsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KKworLS0tIGEveGVuL2NvbW1vbi9kb21jdGwuYwor KysrIGIveGVuL2NvbW1vbi9kb21jdGwuYworQEAgLTMzOSw2ICszMzksMTQgQEAgbG9uZyBkb19k b21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQorIAorICAgICAgICAgZ290byBkb21jdGxf b3V0X3VubG9ja19kb21vbmx5OworIAorKyAgICBjYXNlIFhFTl9ET01DVExfZ2V0X2RvbWFpbl9z dGF0ZToKKysgICAgICAgIHJldCA9IHhzbV9nZXRfZG9tYWluX3N0YXRlKFhTTV9YU19QUklWLCBk KTsKKysgICAgICAgIGlmICggIXJldCApCisrICAgICAgICAgICAgcmV0ID0gZ2V0X2RvbWFpbl9z dGF0ZSgmb3AtPnUuZ2V0X2RvbWFpbl9zdGF0ZSwgZCwgJm9wLT5kb21haW4pOworKyAgICAgICAg aWYgKCAhcmV0ICkKKysgICAgICAgICAgICBjb3B5YmFjayA9IHRydWU7CisrICAgICAgICBnb3Rv IGRvbWN0bF9vdXRfdW5sb2NrX2RvbW9ubHk7CisrCisgICAgIGRlZmF1bHQ6CisgICAgICAgICAv KiBFdmVyeXRoaW5nIGVsc2UgaGFuZGxlZCBmdXJ0aGVyIGRvd24uICovCisgICAgICAgICBicmVh azsKK0BAIC04NjgsMTQgKzg3Niw2IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVf UEFSQU0oeGUKKyAgICAgICAgICAgICByZXQgPSAtRU9QTk9UU1VQUDsKKyAgICAgICAgIGJyZWFr OworIAorLSAgICBjYXNlIFhFTl9ET01DVExfZ2V0X2RvbWFpbl9zdGF0ZToKKy0gICAgICAgIHJl dCA9IHhzbV9nZXRfZG9tYWluX3N0YXRlKFhTTV9YU19QUklWLCBkKTsKKy0gICAgICAgIGlmICgg IXJldCApCistICAgICAgICAgICAgcmV0ID0gZ2V0X2RvbWFpbl9zdGF0ZSgmb3AtPnUuZ2V0X2Rv bWFpbl9zdGF0ZSwgZCwgJm9wLT5kb21haW4pOworLSAgICAgICAgaWYgKCAhcmV0ICkKKy0gICAg ICAgICAgICBjb3B5YmFjayA9IHRydWU7CistICAgICAgICBicmVhazsKKy0KKyAgICAgZGVmYXVs dDoKKyAgICAgICAgIHJldCA9IGFyY2hfZG9fZG9tY3RsKG9wLCBkLCB1X2RvbWN0bCk7CisgICAg ICAgICBicmVhazsKKy0tLSBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCisrKysgYi94ZW4vaW5j bHVkZS94c20vZHVtbXkuaAorQEAgLTE3MiwxMCArMTcyLDkgQEAgc3RhdGljIFhTTV9JTkxJTkUg aW50IGNmX2NoZWNrIHhzbV9kb21jdAorICAgICBjYXNlIFhFTl9ET01DVExfYmluZF9wdF9pcnE6 CisgICAgIGNhc2UgWEVOX0RPTUNUTF91bmJpbmRfcHRfaXJxOgorICAgICAgICAgcmV0dXJuIHhz bV9kZWZhdWx0X2FjdGlvbihYU01fRE1fUFJJViwgY3VycmVudC0+ZG9tYWluLCBkKTsKKy0gICAg Y2FzZSBYRU5fRE9NQ1RMX2dldF9kb21haW5fc3RhdGU6CistICAgICAgICByZXR1cm4geHNtX2Rl ZmF1bHRfYWN0aW9uKFhTTV9YU19QUklWLCBjdXJyZW50LT5kb21haW4sIGQpOworIAorICAgICBj YXNlIFhFTl9ET01DVExfZ2V0ZG9tYWluaW5mbzoKKysgICAgY2FzZSBYRU5fRE9NQ1RMX2dldF9k b21haW5fc3RhdGU6CisgICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKKyAgICAgICAgIHJl dHVybiAtRUlMU0VROworIAorLS0tIGEveGVuL3hzbS9mbGFzay9ob29rcy5jCisrKysgYi94ZW4v eHNtL2ZsYXNrL2hvb2tzLmMKK0BAIC02ODQsNiArNjg0LDcgQEAgc3RhdGljIGludCBjZl9jaGVj ayBmbGFza19kb21jdGwoc3RydWN0CisgCisgICAgIC8qIFRoZXNlIGhhdmUgaW5kaXZpZHVhbCBY U00gaG9va3MgYW5kIGRvbid0IG1ha2UgaXQgaGVyZS4gKi8KKyAgICAgY2FzZSBYRU5fRE9NQ1RM X2dldGRvbWFpbmluZm86CisrICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0YXRlOgor ICAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CisgICAgICAgICByZXR1cm4gLUVJTFNFUTsK KyAKK0BAIC02OTQsNyArNjk1LDYgQEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19kb21jdGwo c3RydWN0CisgICAgIGNhc2UgWEVOX0RPTUNUTF9tZW1vcnlfbWFwcGluZzoKKyAgICAgY2FzZSBY RU5fRE9NQ1RMX3NldF90YXJnZXQ6CisgICAgIGNhc2UgWEVOX0RPTUNUTF92bV9ldmVudF9vcDoK Ky0gICAgY2FzZSBYRU5fRE9NQ1RMX2dldF9kb21haW5fc3RhdGU6CisgCisgICAgIC8qIFRoZXNl IGhhdmUgaW5kaXZpZHVhbCBYU00gaG9va3MgKGFyY2gvLi4vZG9tY3RsLmMpICovCisgICAgIGNh c2UgWEVOX0RPTUNUTF9iaW5kX3B0X2lycToKCmRpZmYgLS1naXQgYS94c2E0OTItNC4yMS0wNS5w YXRjaCBiL3hzYTQ5Mi00LjIxLTA1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmNiN2JlYWEKLS0tIC9kZXYvbnVsbAorKysgYi94c2E0OTItNC4yMS0wNS5wYXRjaApA QCAtMCwwICsxLDE1NiBAQAorRnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgor U3ViamVjdDogZG9tYWluOiBsb2NraW5nIGZvciBpb21lbV9jYXBzIGFjY2Vzc2VzCisKK0luIG9y ZGVyIHRvIGJlIGFibGUgdG8gcHVsbCBhdCBsZWFzdCB0aGUgWEVOX0RPTUNUTF9pb21lbV9tYXBw aW5nIGhhbmRsaW5nCitvdXQgb2YgdGhlIGRvbWN0bC1sb2NrZWQgcmVnaW9uLCBhIHNlcGFyYXRl IChwZXItZG9tYWluKSBsb2NrIGlzIG5lZWRlZCB0bworc3luY2hyb25pemUgaW4gcGFydGljdWxh ciB3aXRoIFhFTl9ET01DVExfaW9tZW1fcGVybWlzc2lvbi4KKworTG9ja2luZyBpcyBhZGRlZCBv bmx5IGFzIGZhciBhcyBkb21jdGwtcyBhcmUgYWZmZWN0ZWQuIFVzZXMgcHJlc2VudGx5CitvdXRz aWRlIG9mIHRoZSBkb21jdGwgbG9jayBtYXkgd2FudCBkZWFsaW5nIHdpdGggc3Vic2VxdWVudGx5 IChwZXJoYXBzCitsaW1pdGVkIHRvIG5vbi1fX2luaXQgY29kZSkuCisKK1RoaXMgaXMgcGFydCBv ZiBYU0EtNDkyLgorCitTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5j b20+CitSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+ CisKKy0tLSBhL3hlbi9jb21tb24vZG9tYWluLmMKKysrKyBiL3hlbi9jb21tb24vZG9tYWluLmMK K0BAIC01MTgsMTAgKzUxOCwxNSBAQCBzdGF0aWMgaW50IGxhdGVfaHdkb21faW5pdChzdHJ1Y3Qg ZG9tYWluCisgICAgICAqIG1heSBiZSBtb2RpZmllZCBhZnRlciB0aGlzIGh5cGVyY2FsbCByZXR1 cm5zIGlmIGEgbW9yZSBjb21wbGV4CisgICAgICAqIGRldmljZSBtb2RlbCBpcyBkZXNpcmVkLgor ICAgICAgKi8KKysgICAgd3JpdGVfbG9jaygmZG9tMC0+Y2Fwc19sb2NrKTsKKyAgICAgcmFuZ2Vz ZXRfc3dhcChkLT5pcnFfY2FwcywgZG9tMC0+aXJxX2NhcHMpOworICAgICByYW5nZXNldF9zd2Fw KGQtPmlvbWVtX2NhcHMsIGRvbTAtPmlvbWVtX2NhcHMpOworICNpZmRlZiBDT05GSUdfWDg2Cisg ICAgIHJhbmdlc2V0X3N3YXAoZC0+YXJjaC5pb3BvcnRfY2FwcywgZG9tMC0+YXJjaC5pb3BvcnRf Y2Fwcyk7CisrI2VuZGlmCisrICAgIHdyaXRlX3VubG9jaygmZG9tMC0+Y2Fwc19sb2NrKTsKKysK KysjaWZkZWYgQ09ORklHX1g4NgorICAgICBzZXR1cF9pb19iaXRtYXAoZCk7CisgICAgIHNldHVw X2lvX2JpdG1hcChkb20wKTsKKyAjZW5kaWYKK0BAIC04NzMsNiArODc4LDcgQEAgc3RydWN0IGRv bWFpbiAqZG9tYWluX2NyZWF0ZShkb21pZF90IGRvbQorICAgICByc3Bpbl9sb2NrX2luaXRfcHJv ZihkLCBkb21haW5fbG9jayk7CisgICAgIHJzcGluX2xvY2tfaW5pdF9wcm9mKGQsIHBhZ2VfYWxs b2NfbG9jayk7CisgICAgIHNwaW5fbG9ja19pbml0KCZkLT5oeXBlcmNhbGxfZGVhZGxvY2tfbXV0 ZXgpOworKyAgICByd2xvY2tfaW5pdCgmZC0+Y2Fwc19sb2NrKTsKKyAgICAgSU5JVF9QQUdFX0xJ U1RfSEVBRCgmZC0+cGFnZV9saXN0KTsKKyAgICAgSU5JVF9QQUdFX0xJU1RfSEVBRCgmZC0+ZXh0 cmFfcGFnZV9saXN0KTsKKyAgICAgSU5JVF9QQUdFX0xJU1RfSEVBRCgmZC0+eGVucGFnZV9saXN0 KTsKKy0tLSBhL3hlbi9jb21tb24vZG9tY3RsLmMKKysrKyBiL3hlbi9jb21tb24vZG9tY3RsLmMK K0BAIC0yNjcsNiArMjY3LDM1IEBAIHN0YXRpYyBzdHJ1Y3Qgdm51bWFfaW5mbyAqdm51bWFfaW5p dChjb24KKyAgICAgcmV0dXJuIEVSUl9QVFIocmV0KTsKKyB9CisgCisrdm9pZCBpb2NhcHNfZG91 YmxlX2xvY2soc3RydWN0IGRvbWFpbiAqZCwgYm9vbCB3cml0ZSkKKyt7CisrICAgIHN0cnVjdCBk b21haW4gKmN1cnJkID0gY3VycmVudC0+ZG9tYWluOworKworKyAgICBpZiAoIGQtPmRvbWFpbl9p ZCA+IGN1cnJkLT5kb21haW5faWQgKQorKyAgICAgICAgcmVhZF9sb2NrKCZjdXJyZC0+Y2Fwc19s b2NrKTsKKysKKysgICAgaWYgKCB3cml0ZSApCisrICAgICAgICB3cml0ZV9sb2NrKCZkLT5jYXBz X2xvY2spOworKyAgICBlbHNlCisrICAgICAgICByZWFkX2xvY2soJmQtPmNhcHNfbG9jayk7Cisr CisrICAgIGlmICggZC0+ZG9tYWluX2lkIDwgY3VycmQtPmRvbWFpbl9pZCApCisrICAgICAgICBy ZWFkX2xvY2soJmN1cnJkLT5jYXBzX2xvY2spOworK30KKysKKyt2b2lkIGlvY2Fwc19kb3VibGVf dW5sb2NrKHN0cnVjdCBkb21haW4gKmQsIGJvb2wgd3JpdGUpCisreworKyAgICBzdHJ1Y3QgZG9t YWluICpjdXJyZCA9IGN1cnJlbnQtPmRvbWFpbjsKKysKKysgICAgaWYgKCBkICE9IGN1cnJkICkK KysgICAgICAgIHJlYWRfdW5sb2NrKCZjdXJyZC0+Y2Fwc19sb2NrKTsKKysKKysgICAgaWYgKCB3 cml0ZSApCisrICAgICAgICB3cml0ZV91bmxvY2soJmQtPmNhcHNfbG9jayk7CisrICAgIGVsc2UK KysgICAgICAgIHJlYWRfdW5sb2NrKCZkLT5jYXBzX2xvY2spOworK30KKysKKyBzdGF0aWMgYm9v bCBpc19zdGFibGVfZG9tY3RsKHVpbnQzMl90IGNtZCkKKyB7CisgICAgIHJldHVybiBjbWQgPT0g WEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0YXRlOworQEAgLTY4Nyw2ICs3MTYsOCBAQCBsb25nIGRv X2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCisgICAgICAgICBpZiAoIChtZm4gKyBu cl9tZm5zIC0gMSkgPCBtZm4gKSAvKiB3cmFwPyAqLworICAgICAgICAgICAgIGJyZWFrOworIAor KyAgICAgICAgaW9jYXBzX2RvdWJsZV9sb2NrKGQsIHRydWUpOworKworICAgICAgICAgaWYgKCAh aW9tZW1fYWNjZXNzX3Blcm1pdHRlZChjdXJyZW50LT5kb21haW4sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1mbiwgbWZuICsgbnJfbWZucyAtIDEpIHx8CisgICAgICAg ICAgICAgIHhzbV9pb21lbV9wZXJtaXNzaW9uKFhTTV9IT09LLCBkLCBtZm4sIG1mbiArIG5yX21m bnMgLSAxLCBhbGxvdykgKQorQEAgLTY5NSw2ICs3MjYsOCBAQCBsb25nIGRvX2RvbWN0bChYRU5f R1VFU1RfSEFORExFX1BBUkFNKHhlCisgICAgICAgICAgICAgcmV0ID0gaW9tZW1fcGVybWl0X2Fj Y2VzcyhkLCBtZm4sIG1mbiArIG5yX21mbnMgLSAxKTsKKyAgICAgICAgIGVsc2UKKyAgICAgICAg ICAgICByZXQgPSBpb21lbV9kZW55X2FjY2VzcyhkLCBtZm4sIG1mbiArIG5yX21mbnMgLSAxKTsK KysKKysgICAgICAgIGlvY2Fwc19kb3VibGVfdW5sb2NrKGQsIHRydWUpOworICAgICAgICAgYnJl YWs7CisgICAgIH0KKyAKK0BAIC03MTksMTkgKzc1MiwxNSBAQCBsb25nIGRvX2RvbWN0bChYRU5f R1VFU1RfSEFORExFX1BBUkFNKHhlCisgICAgICAgICAgICAgYnJlYWs7CisgI2VuZGlmCisgCisr ICAgICAgICBpb2NhcHNfZG91YmxlX2xvY2soZCwgZmFsc2UpOworKworICAgICAgICAgcmV0ID0g LUVQRVJNOworICAgICAgICAgaWYgKCAhaW9tZW1fYWNjZXNzX3Blcm1pdHRlZChjdXJyZW50LT5k b21haW4sIG1mbiwgbWZuX2VuZCkgfHwKKy0gICAgICAgICAgICAgIWlvbWVtX2FjY2Vzc19wZXJt aXR0ZWQoZCwgbWZuLCBtZm5fZW5kKSApCistICAgICAgICAgICAgYnJlYWs7CistCistICAgICAg ICByZXQgPSB4c21faW9tZW1fbWFwcGluZyhYU01fSE9PSywgZCwgbWZuLCBtZm5fZW5kLCBhZGQp OworLSAgICAgICAgaWYgKCByZXQgKQorLSAgICAgICAgICAgIGJyZWFrOworLQorLSAgICAgICAg aWYgKCAhcGFnaW5nX21vZGVfdHJhbnNsYXRlKGQpICkKKy0gICAgICAgICAgICBicmVhazsKKy0K Ky0gICAgICAgIGlmICggYWRkICkKKysgICAgICAgICAgICAgIWlvbWVtX2FjY2Vzc19wZXJtaXR0 ZWQoZCwgbWZuLCBtZm5fZW5kKSB8fAorKyAgICAgICAgICAgICAocmV0ID0geHNtX2lvbWVtX21h cHBpbmcoWFNNX0hPT0ssIGQsIG1mbiwgbWZuX2VuZCwgYWRkKSkgfHwKKysgICAgICAgICAgICAg IXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShkKSApCisrICAgICAgICAgICAgLyogTm90aGluZy4gKi87 CisrICAgICAgICBlbHNlIGlmICggYWRkICkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBwcmlu dGsoWEVOTE9HX0dfREVCVUcKKyAgICAgICAgICAgICAgICAgICAgIm1lbW9yeV9tYXA6YWRkOiBk b20lZCBnZm49JWx4IG1mbj0lbHggbnI9JWx4XG4iLAorQEAgLTc1NSw2ICs3ODQsOCBAQCBsb25n IGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCisgICAgICAgICAgICAgICAgICAg ICAgICAibWVtb3J5X21hcDogZXJyb3IgJWxkIHJlbW92aW5nIGRvbSVkIGFjY2VzcyB0byBbJWx4 LCVseF1cbiIsCisgICAgICAgICAgICAgICAgICAgICAgICByZXQsIGQtPmRvbWFpbl9pZCwgbWZu LCBtZm5fZW5kKTsKKyAgICAgICAgIH0KKysKKysgICAgICAgIGlvY2Fwc19kb3VibGVfdW5sb2Nr KGQsIGZhbHNlKTsKKyAgICAgICAgIGJyZWFrOworICAgICB9CisgCistLS0gYS94ZW4vaW5jbHVk ZS94ZW4vaW9jYXAuaAorKysrIGIveGVuL2luY2x1ZGUveGVuL2lvY2FwLmgKK0BAIC0xMiw2ICsx Miw5IEBACisgI2luY2x1ZGUgPGFzbS9pb2NhcC5oPgorICNpbmNsdWRlIDxhc20vcDJtLmg+Cisg Cisrdm9pZCBpb2NhcHNfZG91YmxlX2xvY2soc3RydWN0IGRvbWFpbiAqZCwgYm9vbCB3cml0ZSk7 Cisrdm9pZCBpb2NhcHNfZG91YmxlX3VubG9jayhzdHJ1Y3QgZG9tYWluICpkLCBib29sIHdyaXRl KTsKKysKKyBzdGF0aWMgaW5saW5lIGludCBpb21lbV9wZXJtaXRfYWNjZXNzKHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGxvbmcgcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGxvbmcgZSkKKyB7CistLS0gYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQu aAorKysrIGIveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKK0BAIC01MzYsNiArNTM2LDcgQEAgc3Ry dWN0IGRvbWFpbgorICNlbmRpZgorIAorICAgICAvKiBJL08gY2FwYWJpbGl0aWVzIChhY2Nlc3Mg dG8gSVJRcyBhbmQgbWVtb3J5LW1hcHBlZCBJL08pLiAqLworKyAgICByd2xvY2tfdCAgICAgICAg IGNhcHNfbG9jazsKKyAgICAgc3RydWN0IHJhbmdlc2V0ICppb21lbV9jYXBzOworICAgICBzdHJ1 Y3QgcmFuZ2VzZXQgKmlycV9jYXBzOworIAoKZGlmZiAtLWdpdCBhL3hzYTQ5Mi00LjIxLTA2LnBh dGNoIGIveHNhNDkyLTQuMjEtMDYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uYzllMDA2MQotLS0gL2Rldi9udWxsCisrKyBiL3hzYTQ5Mi00LjIxLTA2LnBhdGNoCkBA IC0wLDAgKzEsODQgQEAKK0Zyb206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KK1N1 YmplY3Q6IHg4Ni9kb21haW46IGxvY2tpbmcgZm9yIGlvcG9ydF9jYXBzIGFjY2Vzc2VzCisKK0lu IG9yZGVyIHRvIGJlIGFibGUgdG8gcHVsbCBhdCBsZWFzdCB0aGUgWEVOX0RPTUNUTF9pb3BvcnRf bWFwcGluZworaGFuZGxpbmcgb3V0IG9mIHRoZSBkb21jdGwtbG9ja2VkIHJlZ2lvbiwgdGhlIG5l dyBzZXBhcmF0ZSAocGVyLWRvbWFpbikKK2xvY2sgaXMgdXNlZCB0byBzeW5jaHJvbml6ZSBpbiBw YXJ0aWN1bGFyIHdpdGgKK1hFTl9ET01DVExfaW9wb3J0X3Blcm1pc3Npb24uCisKK0xvY2tpbmcg aXMgYWRkZWQgb25seSBhcyBmYXIgYXMgZG9tY3RsLXMgYXJlIGFmZmVjdGVkLiBVc2VzIHByZXNl bnRseQorb3V0c2lkZSBvZiB0aGUgZG9tY3RsIGxvY2sgbWF5IHdhbnQgZGVhbGluZyB3aXRoIHN1 YnNlcXVlbnRseSAocGVyaGFwcworbGltaXRlZCB0byBub24tX19pbml0IGNvZGUpLgorCitUaGlz IGlzIHBhcnQgb2YgWFNBLTQ5Mi4KKworU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVs aWNoQHN1c2UuY29tPgorUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBj aXRyaXguY29tPgorCistLS0gYS94ZW4vYXJjaC94ODYvZG9tY3RsLmMKKysrKyBiL3hlbi9hcmNo L3g4Ni9kb21jdGwuYworQEAgLTIzMyw2ICsyMzMsOCBAQCBsb25nIGFyY2hfZG9fZG9tY3RsKAor ICAgICAgICAgdW5zaWduZWQgaW50IG5wID0gZG9tY3RsLT51LmlvcG9ydF9wZXJtaXNzaW9uLm5y X3BvcnRzOworICAgICAgICAgaW50IGFsbG93ID0gZG9tY3RsLT51LmlvcG9ydF9wZXJtaXNzaW9u LmFsbG93X2FjY2VzczsKKyAKKysgICAgICAgIGlvY2Fwc19kb3VibGVfbG9jayhkLCB0cnVlKTsK KysKKyAgICAgICAgIGlmICggKGZwICsgbnApIDw9IGZwIHx8IChmcCArIG5wKSA+IE1BWF9JT1BP UlRTICkKKyAgICAgICAgICAgICByZXQgPSAtRUlOVkFMOworICAgICAgICAgZWxzZSBpZiAoICFp b3BvcnRzX2FjY2Vzc19wZXJtaXR0ZWQoY3VycmQsIGZwLCBmcCArIG5wIC0gMSkgfHwKK0BAIC0y NDIsNiArMjQ0LDggQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKKyAgICAgICAgICAgICByZXQgPSBp b3BvcnRzX3Blcm1pdF9hY2Nlc3MoZCwgZnAsIGZwICsgbnAgLSAxKTsKKyAgICAgICAgIGVsc2UK KyAgICAgICAgICAgICByZXQgPSBpb3BvcnRzX2RlbnlfYWNjZXNzKGQsIGZwLCBmcCArIG5wIC0g MSk7CisrCisrICAgICAgICBpb2NhcHNfZG91YmxlX3VubG9jayhkLCB0cnVlKTsKKyAgICAgICAg IGJyZWFrOworICAgICB9CisgCitAQCAtNjQ4LDE2ICs2NTIsMTMgQEAgbG9uZyBhcmNoX2RvX2Rv bWN0bCgKKyAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIH0KKyAKKy0gICAgICAgIHJldCA9 IC1FUEVSTTsKKy0gICAgICAgIGlmICggIWlvcG9ydHNfYWNjZXNzX3Blcm1pdHRlZChjdXJyZCwg Zm1wLCBmbXAgKyBucCAtIDEpICkKKy0gICAgICAgICAgICBicmVhazsKKy0KKy0gICAgICAgIHJl dCA9IHhzbV9pb3BvcnRfbWFwcGluZyhYU01fSE9PSywgZCwgZm1wLCBmbXAgKyBucCAtIDEsIGFk ZCk7CistICAgICAgICBpZiAoIHJldCApCistICAgICAgICAgICAgYnJlYWs7CistCisgICAgICAg ICBodm0gPSAmZC0+YXJjaC5odm07CistICAgICAgICBpZiAoIGFkZCApCisrICAgICAgICBpb2Nh cHNfZG91YmxlX2xvY2soZCwgdHJ1ZSk7CisrCisrICAgICAgICBpZiAoICFpb3BvcnRzX2FjY2Vz c19wZXJtaXR0ZWQoY3VycmQsIGZtcCwgZm1wICsgbnAgLSAxKSB8fAorKyAgICAgICAgICAgICAo cmV0ID0geHNtX2lvcG9ydF9tYXBwaW5nKFhTTV9IT09LLCBkLCBmbXAsIGZtcCArIG5wIC0gMSwg YWRkKSkgKQorKyAgICAgICAgICAgIHJldCA9IHJldCA/OiAtRVBFUk07CisrICAgICAgICBlbHNl IGlmICggYWRkICkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfSU5G TworICAgICAgICAgICAgICAgICAgICAiaW9wb3J0X21hcDphZGQ6IGRvbSVkIGdwb3J0PSV4IG1w b3J0PSV4IG5yPSV4XG4iLAorQEAgLTcxOCw2ICs3MjAsOCBAQCBsb25nIGFyY2hfZG9fZG9tY3Rs KAorICAgICAgICAgICAgICAgICAgICAgICAgImlvcG9ydF9tYXA6IGVycm9yICVsZCBkZW55aW5n IGRvbSVkIGFjY2VzcyB0byBbJXgsJXhdXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgcmV0 LCBkLT5kb21haW5faWQsIGZtcCwgZm1wICsgbnAgLSAxKTsKKyAgICAgICAgIH0KKysKKysgICAg ICAgIGlvY2Fwc19kb3VibGVfdW5sb2NrKGQsIHRydWUpOworICAgICAgICAgYnJlYWs7CisgICAg IH0KKyAKKy0tLSBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCisrKysgYi94ZW4vYXJjaC94ODYvc2V0 dXAuYworQEAgLTIzMzksOSArMjMzOSwxMiBAQCB2b2lkIF9faHdkb21faW5pdCBzZXR1cF9pb19i aXRtYXAoc3RydWN0CisgICAgICAgICByZXR1cm47CisgCisgICAgIGJpdG1hcF9maWxsKGQtPmFy Y2guaHZtLmlvX2JpdG1hcCwgMHgxMDAwMCk7CisrCisrICAgIHJlYWRfbG9jaygmZC0+Y2Fwc19s b2NrKTsKKyAgICAgaWYgKCByYW5nZXNldF9yZXBvcnRfcmFuZ2VzKGQtPmFyY2guaW9wb3J0X2Nh cHMsIDAsIDB4MTAwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb19iaXRt YXBfY2IsIGQpICkKKyAgICAgICAgIEJVRygpOworKyAgICByZWFkX3VubG9jaygmZC0+Y2Fwc19s b2NrKTsKKyAKKyAgICAgLyoKKyAgICAgICogV2UgbmVlZCB0byB0cmFwIDQtYnl0ZSBhY2Nlc3Nl cyB0byAweGNmOCAoc2VlIGFkbWluX2lvX29rYXkoKSwKCmRpZmYgLS1naXQgYS94c2E0OTItNC4y MS0wNy5wYXRjaCBiL3hzYTQ5Mi00LjIxLTA3LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmUzNDM3NzMKLS0tIC9kZXYvbnVsbAorKysgYi94c2E0OTItNC4yMS0wNy5w YXRjaApAQCAtMCwwICsxLDIwMiBAQAorRnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPgorU3ViamVjdDogZG9tYWluOiBsb2NraW5nIGZvciBpcnFfY2FwcyBhY2Nlc3NlcworCitJ biBvcmRlciB0byBiZSBhYmxlIHRvIHB1bGwgYXQgbGVhc3QgdGhlIFhFTl9ET01DVExfeyx1bn1i aW5kX3B0X2lycQoraGFuZGxpbmcgb3V0IG9mIHRoZSBkb21jdGwtbG9ja2VkIHJlZ2lvbiwgYSBz ZXBhcmF0ZSAocGVyLWRvbWFpbikgbG9jayBpcworbmVlZGVkIHRvIHN5bmNocm9uaXplIGluIHBh cnRpY3VsYXIgd2l0aCBYRU5fRE9NQ1RMX3tpcnEsZ3NpfV9wZXJtaXNzaW9uLgorCitMb2NraW5n IGlzIGFkZGVkIG9ubHkgYXMgZmFyIGFzIGRvbWN0bC1zIGFyZSBhZmZlY3RlZC4gVXNlcyBwcmVz ZW50bHkKK291dHNpZGUgb2YgdGhlIGRvbWN0bCBsb2NrIG1heSB3YW50IGRlYWxpbmcgd2l0aCBz dWJzZXF1ZW50bHkgKHBlcmhhcHMKK2xpbWl0ZWQgdG8gbm9uLV9faW5pdCBjb2RlKS4KKworVGhp cyBpcyBwYXJ0IG9mIFhTQS00OTIuCisKK1NpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1 bGljaEBzdXNlLmNvbT4KK1Jldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVA Y2l0cml4LmNvbT4KK1Jldmlld2VkLWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGllbkB4ZW4ub3JnPgor CistLS0gYS94ZW4vYXJjaC9hcm0vZG9tY3RsLmMKKysrKyBiL3hlbi9hcmNoL2FybS9kb21jdGwu YworQEAgLTc2LDYgKzc2LDcgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bChzdHJ1Y3QgeGVuX2RvbWN0 bCAqZAorICAgICBjYXNlIFhFTl9ET01DVExfYmluZF9wdF9pcnE6CisgICAgIHsKKyAgICAgICAg IGludCByYzsKKysgICAgICAgIHN0cnVjdCBkb21haW4gKmN1cnJkID0gY3VycmVudC0+ZG9tYWlu OworICAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfYmluZF9wdF9pcnEgKmJpbmQgPSAmZG9tY3Rs LT51LmJpbmRfcHRfaXJxOworICAgICAgICAgdWludDMyX3QgaXJxID0gYmluZC0+dS5zcGkuc3Bp OworICAgICAgICAgdWludDMyX3QgdmlycSA9IGJpbmQtPm1hY2hpbmVfaXJxOworQEAgLTEwNywy MSArMTA4LDI2IEBAIGxvbmcgYXJjaF9kb19kb21jdGwoc3RydWN0IHhlbl9kb21jdGwgKmQKKyAg ICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgIHJldHVybiByYzsKKyAKKy0gICAgICAgIGlm ICggIWlycV9hY2Nlc3NfcGVybWl0dGVkKGN1cnJlbnQtPmRvbWFpbiwgaXJxKSApCistICAgICAg ICAgICAgcmV0dXJuIC1FUEVSTTsKKysgICAgICAgIHJlYWRfbG9jaygmY3VycmQtPmNhcHNfbG9j ayk7CisgCistICAgICAgICBpZiAoICF2Z2ljX3Jlc2VydmVfdmlycShkLCB2aXJxKSApCistICAg ICAgICAgICAgcmV0dXJuIC1FQlVTWTsKKy0KKy0gICAgICAgIHJjID0gcm91dGVfaXJxX3RvX2d1 ZXN0KGQsIHZpcnEsIGlycSwgInJvdXRlZCBJUlEiKTsKKy0gICAgICAgIGlmICggcmMgKQorLSAg ICAgICAgICAgIHZnaWNfZnJlZV92aXJxKGQsIHZpcnEpOworKyAgICAgICAgaWYgKCAhaXJxX2Fj Y2Vzc19wZXJtaXR0ZWQoY3VycmQsIGlycSkgKQorKyAgICAgICAgICAgIHJjID0gLUVQRVJNOwor KyAgICAgICAgZWxzZSBpZiAoICF2Z2ljX3Jlc2VydmVfdmlycShkLCB2aXJxKSApCisrICAgICAg ICAgICAgcmMgPSAtRUJVU1k7CisrICAgICAgICBlbHNlCisrICAgICAgICB7CisrICAgICAgICAg ICAgcmMgPSByb3V0ZV9pcnFfdG9fZ3Vlc3QoZCwgdmlycSwgaXJxLCAicm91dGVkIElSUSIpOwor KyAgICAgICAgICAgIGlmICggcmMgKQorKyAgICAgICAgICAgICAgICB2Z2ljX2ZyZWVfdmlycShk LCB2aXJxKTsKKysgICAgICAgIH0KKyAKKysgICAgICAgIHJlYWRfdW5sb2NrKCZjdXJyZC0+Y2Fw c19sb2NrKTsKKyAgICAgICAgIHJldHVybiByYzsKKyAgICAgfQorICAgICBjYXNlIFhFTl9ET01D VExfdW5iaW5kX3B0X2lycToKKyAgICAgeworICAgICAgICAgaW50IHJjOworKyAgICAgICAgc3Ry dWN0IGRvbWFpbiAqY3VycmQgPSBjdXJyZW50LT5kb21haW47CisgICAgICAgICBzdHJ1Y3QgeGVu X2RvbWN0bF9iaW5kX3B0X2lycSAqYmluZCA9ICZkb21jdGwtPnUuYmluZF9wdF9pcnE7CisgICAg ICAgICB1aW50MzJfdCBpcnEgPSBiaW5kLT51LnNwaS5zcGk7CisgICAgICAgICB1aW50MzJfdCB2 aXJxID0gYmluZC0+bWFjaGluZV9pcnE7CitAQCAtMTM4LDE2ICsxNDQsMTUgQEAgbG9uZyBhcmNo X2RvX2RvbWN0bChzdHJ1Y3QgeGVuX2RvbWN0bCAqZAorICAgICAgICAgaWYgKCByYyApCisgICAg ICAgICAgICAgcmV0dXJuIHJjOworIAorLSAgICAgICAgaWYgKCAhaXJxX2FjY2Vzc19wZXJtaXR0 ZWQoY3VycmVudC0+ZG9tYWluLCBpcnEpICkKKy0gICAgICAgICAgICByZXR1cm4gLUVQRVJNOwor LQorLSAgICAgICAgcmMgPSByZWxlYXNlX2d1ZXN0X2lycShkLCB2aXJxKTsKKy0gICAgICAgIGlm ICggcmMgKQorLSAgICAgICAgICAgIHJldHVybiByYzsKKysgICAgICAgIHJlYWRfbG9jaygmY3Vy cmQtPmNhcHNfbG9jayk7CisgCistICAgICAgICB2Z2ljX2ZyZWVfdmlycShkLCB2aXJxKTsKKysg ICAgICAgIGlmICggIWlycV9hY2Nlc3NfcGVybWl0dGVkKGN1cnJkLCBpcnEpICkKKysgICAgICAg ICAgICByYyA9IC1FUEVSTTsKKysgICAgICAgIGVsc2UgaWYgKCAhKHJjID0gcmVsZWFzZV9ndWVz dF9pcnEoZCwgdmlycSkpICkKKysgICAgICAgICAgICB2Z2ljX2ZyZWVfdmlycShkLCB2aXJxKTsK KyAKKy0gICAgICAgIHJldHVybiAwOworKyAgICAgICAgcmVhZF91bmxvY2soJmN1cnJkLT5jYXBz X2xvY2spOworKyAgICAgICAgcmV0dXJuIHJjOworICAgICB9CisgCisgICAgIGNhc2UgWEVOX0RP TUNUTF92dWFydF9vcDoKKy0tLSBhL3hlbi9hcmNoL3g4Ni9kb21jdGwuYworKysrIGIveGVuL2Fy Y2gveDg2L2RvbWN0bC5jCitAQCAtMjY3LDE2ICsyNjcsMTcgQEAgbG9uZyBhcmNoX2RvX2RvbWN0 bCgKKyAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIH0KKyAKKy0gICAgICAgIHJldCA9IC1F UEVSTTsKKysgICAgICAgIGlvY2Fwc19kb3VibGVfbG9jayhkLCB0cnVlKTsKKysKKyAgICAgICAg IGlmICggIWlycV9hY2Nlc3NfcGVybWl0dGVkKGN1cnJkLCBpcnEpIHx8CisgICAgICAgICAgICAg IHhzbV9pcnFfcGVybWlzc2lvbihYU01fSE9PSywgZCwgaXJxLCBmbGFncykgKQorLSAgICAgICAg ICAgIGJyZWFrOworLQorLSAgICAgICAgaWYgKCBmbGFncyApCisrICAgICAgICAgICAgcmV0ID0g LUVQRVJNOworKyAgICAgICAgZWxzZSBpZiAoIGZsYWdzICkKKyAgICAgICAgICAgICByZXQgPSBp cnFfcGVybWl0X2FjY2VzcyhkLCBpcnEpOworICAgICAgICAgZWxzZQorICAgICAgICAgICAgIHJl dCA9IGlycV9kZW55X2FjY2VzcyhkLCBpcnEpOworIAorKyAgICAgICAgaW9jYXBzX2RvdWJsZV91 bmxvY2soZCwgdHJ1ZSk7CisgICAgICAgICBicmVhazsKKyAgICAgfQorIAorQEAgLTU3OSwyMCAr NTgwLDI3IEBAIGxvbmcgYXJjaF9kb19kb21jdGwoCisgICAgICAgICAgICAgYnJlYWs7CisgCisg ICAgICAgICBpcnEgPSBkb21haW5fcGlycV90b19pcnEoZCwgYmluZC0+bWFjaGluZV9pcnEpOwor LSAgICAgICAgcmV0ID0gLUVQRVJNOworLSAgICAgICAgaWYgKCBpcnEgPD0gMCB8fCAhaXJxX2Fj Y2Vzc19wZXJtaXR0ZWQoY3VycmQsIGlycSkgKQorLSAgICAgICAgICAgIGJyZWFrOworKyAgICAg ICAgaWYgKCBpcnEgPD0gMCApCisrICAgICAgICAgICAgcmV0ID0gLUVQRVJNOworIAorLSAgICAg ICAgcmV0ID0gLUVTUkNIOworLSAgICAgICAgaWYgKCBpc19pb21tdV9lbmFibGVkKGQpICkKKysg ICAgICAgIHJlYWRfbG9jaygmY3VycmQtPmNhcHNfbG9jayk7CisrCisrICAgICAgICBpZiAoICFp cnFfYWNjZXNzX3Blcm1pdHRlZChjdXJyZCwgaXJxKSApCisrICAgICAgICAgICAgcmV0ID0gLUVQ RVJNOworKyAgICAgICAgZWxzZSBpZiAoIGlzX2lvbW11X2VuYWJsZWQoZCkgKQorICAgICAgICAg eworICAgICAgICAgICAgIHBjaWRldnNfbG9jaygpOworICAgICAgICAgICAgIHJldCA9IHB0X2ly cV9jcmVhdGVfYmluZChkLCBiaW5kKTsKKyAgICAgICAgICAgICBwY2lkZXZzX3VubG9jaygpOwor KworKyAgICAgICAgICAgIGlmICggcmV0IDwgMCApCisrICAgICAgICAgICAgICAgIHByaW50ayhY RU5MT0dfR19FUlIgInB0X2lycV9jcmVhdGVfYmluZCBmYWlsZWQgKCVsZCkgZm9yICVwZFxuIiwK KysgICAgICAgICAgICAgICAgICAgICAgIHJldCwgZCk7CisgICAgICAgICB9CistICAgICAgICBp ZiAoIHJldCA8IDAgKQorLSAgICAgICAgICAgIHByaW50ayhYRU5MT0dfR19FUlIgInB0X2lycV9j cmVhdGVfYmluZCBmYWlsZWQgKCVsZCkgZm9yIGRvbSVkXG4iLAorLSAgICAgICAgICAgICAgICAg ICByZXQsIGQtPmRvbWFpbl9pZCk7CisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgcmV0ID0g LUVTUkNIOworKworKyAgICAgICAgcmVhZF91bmxvY2soJmN1cnJkLT5jYXBzX2xvY2spOworICAg ICAgICAgYnJlYWs7CisgICAgIH0KKyAKK0BAIC02MDUsMjMgKzYxMywyNiBAQCBsb25nIGFyY2hf ZG9fZG9tY3RsKAorICAgICAgICAgaWYgKCAhaXNfaHZtX2RvbWFpbihkKSApCisgICAgICAgICAg ICAgYnJlYWs7CisgCistICAgICAgICByZXQgPSAtRVBFUk07CistICAgICAgICBpZiAoIGlycSA8 PSAwIHx8ICFpcnFfYWNjZXNzX3Blcm1pdHRlZChjdXJyZCwgaXJxKSApCistICAgICAgICAgICAg YnJlYWs7CistCisgICAgICAgICByZXQgPSB4c21fdW5iaW5kX3B0X2lycShYU01fSE9PSywgZCwg YmluZCk7CisgICAgICAgICBpZiAoIHJldCApCisgICAgICAgICAgICAgYnJlYWs7CisgCistICAg ICAgICBpZiAoIGlzX2lvbW11X2VuYWJsZWQoZCkgKQorKyAgICAgICAgcmVhZF9sb2NrKCZjdXJy ZC0+Y2Fwc19sb2NrKTsKKysKKysgICAgICAgIGlmICggIWlycV9hY2Nlc3NfcGVybWl0dGVkKGN1 cnJkLCBpcnEpICkKKysgICAgICAgICAgICByZXQgPSAtRVBFUk07CisrICAgICAgICBlbHNlIGlm ICggaXNfaW9tbXVfZW5hYmxlZChkKSApCisgICAgICAgICB7CisgICAgICAgICAgICAgcGNpZGV2 c19sb2NrKCk7CisgICAgICAgICAgICAgcmV0ID0gcHRfaXJxX2Rlc3Ryb3lfYmluZChkLCBiaW5k KTsKKyAgICAgICAgICAgICBwY2lkZXZzX3VubG9jaygpOworKworKyAgICAgICAgICAgIGlmICgg cmV0IDwgMCApCisrICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfR19FUlIgInB0X2lycV9k ZXN0cm95X2JpbmQgZmFpbGVkICglbGQpIGZvciAlcGRcbiIsCisrICAgICAgICAgICAgICAgICAg ICAgICByZXQsIGQpOworICAgICAgICAgfQorLSAgICAgICAgaWYgKCByZXQgPCAwICkKKy0gICAg ICAgICAgICBwcmludGsoWEVOTE9HX0dfRVJSICJwdF9pcnFfZGVzdHJveV9iaW5kIGZhaWxlZCAo JWxkKSBmb3IgZG9tJWRcbiIsCistICAgICAgICAgICAgICAgICAgIHJldCwgZC0+ZG9tYWluX2lk KTsKKysKKysgICAgICAgIHJlYWRfdW5sb2NrKCZjdXJyZC0+Y2Fwc19sb2NrKTsKKyAgICAgICAg IGJyZWFrOworICAgICB9CisgCistLS0gYS94ZW4vY29tbW9uL2RvbWN0bC5jCisrKysgYi94ZW4v Y29tbW9uL2RvbWN0bC5jCitAQCAtNjk1LDYgKzY5NSw5IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9H VUVTVF9IQU5ETEVfUEFSQU0oeGUKKyAgICAgICAgICAgICByZXQgPSAtRUlOVkFMOworICAgICAg ICAgICAgIGJyZWFrOworICAgICAgICAgfQorKworKyAgICAgICAgaW9jYXBzX2RvdWJsZV9sb2Nr KGQsIHRydWUpOworKworICAgICAgICAgaXJxID0gcGlycV9hY2Nlc3NfcGVybWl0dGVkKGN1cnJl bnQtPmRvbWFpbiwgcGlycSk7CisgICAgICAgICBpZiAoICFpcnEgfHwgeHNtX2lycV9wZXJtaXNz aW9uKFhTTV9IT09LLCBkLCBpcnEsIGFsbG93KSApCisgICAgICAgICAgICAgcmV0ID0gLUVQRVJN OworQEAgLTcwMiw2ICs3MDUsOCBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BB UkFNKHhlCisgICAgICAgICAgICAgcmV0ID0gaXJxX3Blcm1pdF9hY2Nlc3MoZCwgaXJxKTsKKyAg ICAgICAgIGVsc2UKKyAgICAgICAgICAgICByZXQgPSBpcnFfZGVueV9hY2Nlc3MoZCwgaXJxKTsK KysKKysgICAgICAgIGlvY2Fwc19kb3VibGVfdW5sb2NrKGQsIHRydWUpOworICAgICAgICAgYnJl YWs7CisgICAgIH0KKyAjZW5kaWYKCmRpZmYgLS1naXQgYS94c2E0OTItNC4yMS0wOC5wYXRjaCBi L3hzYTQ5Mi00LjIxLTA4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjRhZWZiZjQKLS0tIC9kZXYvbnVsbAorKysgYi94c2E0OTItNC4yMS0wOC5wYXRjaApAQCAtMCww ICsxLDg1IEBACitGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitTdWJqZWN0 OiBYU00vRmxhc2s6IHNwbGl0IHRoZSAuaW9tZW1fbWFwcGluZygpIGhvb2sKKworSXQncyB1c2Vk IHR3aWNlIGluIGVudGlyZWx5IGRpZmZlcmVudCBzaXR1YXRpb25zLiBUaGUgdXNlIGluIGRvX2Rv bWN0bCgpCit3YW50cyB0byBiZWNvbWUgYW4gb3JkaW5hcnkgWFNNX0RNX1BSSVYgaW52b2NhdGlv biwgd2hpbGUgdGhlIG9uZSBpbiB2UENJCitjb2RlIG5lZWQgdG8gcmVtYWluIFhTTV9IT09LIChp dCBtYXkgcGxhdXNpYmx5IGJlY29tZSBYU01fVEFSR0VUKS4gRm9yCitGbGFzaywgdGhlIHNhbWUg YmFja2luZyBmdW5jdGlvbiB3aWxsIGNvbnRpbnVlIHRvIGJlIHVzZWQgZm9yIHRoZSB0aW1lCiti ZWluZy4KKworVGhpcyBpcyBwYXJ0IG9mIFhTQS00OTIuCisKK1NpZ25lZC1vZmYtYnk6IEphbiBC ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KK0Fja2VkLWJ5OiBEYW5pZWwgUC4gU21pdGggPGRw c21pdGhAYXBlcnR1c3NvbHV0aW9ucy5jb20+CisKKy0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvaGVh ZGVyLmMKKysrKyBiL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMKK0BAIC02Nyw3ICs2Nyw3IEBA IHN0YXRpYyBpbnQgY2ZfY2hlY2sgbWFwX3JhbmdlKAorICAgICAgICAgICAgIHJldHVybiAtRVBF Uk07CisgICAgICAgICB9CisgCistICAgICAgICByYyA9IHhzbV9pb21lbV9tYXBwaW5nKFhTTV9I T09LLCBtYXAtPmQsIG1hcF9tZm4sIG1fZW5kLCBtYXAtPm1hcCk7CisrICAgICAgICByYyA9IHhz bV9pb21lbV9tYXBwaW5nX3ZwY2koWFNNX0hPT0ssIG1hcC0+ZCwgbWFwX21mbiwgbV9lbmQsIG1h cC0+bWFwKTsKKyAgICAgICAgIGlmICggcmMgKQorICAgICAgICAgeworICAgICAgICAgICAgIHBy aW50ayhYRU5MT0dfR19XQVJOSU5HCistLS0gYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAorKysr IGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKK0BAIC01ODAsNiArNTgwLDEzIEBAIHN0YXRpYyBY U01fSU5MSU5FIGludCBjZl9jaGVjayB4c21faW9tZW0KKyAgICAgcmV0dXJuIHhzbV9kZWZhdWx0 X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7CisgfQorIAorK3N0YXRpYyBYU01f SU5MSU5FIGludCBjZl9jaGVjayB4c21faW9tZW1fbWFwcGluZ192cGNpKAorKyAgICBYU01fREVG QVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgdWludDY0X3QgcywgdWludDY0X3QgZSwgdWludDhf dCBhbGxvdykKKyt7CisrICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9IT09LKTsKKysgICAgcmV0 dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7CisrfQor KworIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21fcGNpX2NvbmZpZ19wZXJtaXNz aW9uKAorICAgICBYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3QgbWFj aGluZV9iZGYsIHVpbnQxNl90IHN0YXJ0LAorICAgICB1aW50MTZfdCBlbmQsIHVpbnQ4X3QgYWNj ZXNzKQorLS0tIGEveGVuL2luY2x1ZGUveHNtL3hzbS5oCisrKysgYi94ZW4vaW5jbHVkZS94c20v eHNtLmgKK0BAIC0xMTgsNiArMTE4LDggQEAgc3RydWN0IHhzbV9vcHMgeworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1aW50OF90IGFsbG93KTsKKyAgICAgaW50ICgqaW9tZW1fbWFwcGlu Zykoc3RydWN0IGRvbWFpbiAqZCwgdWludDY0X3QgcywgdWludDY0X3QgZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDhfdCBhbGxvdyk7CisrICAgIGludCAoKmlvbWVtX21hcHBpbmdf dnBjaSkoc3RydWN0IGRvbWFpbiAqZCwgdWludDY0X3QgcywgdWludDY0X3QgZSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IGFsbG93KTsKKyAgICAgaW50ICgqcGNpX2Nv bmZpZ19wZXJtaXNzaW9uKShzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBtYWNoaW5lX2JkZiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCBzdGFydCwgdWludDE2 X3QgZW5kLCB1aW50OF90IGFjY2Vzcyk7CisgCitAQCAtNTIzLDYgKzUyNSwxMiBAQCBzdGF0aWMg aW5saW5lIGludCB4c21faW9tZW1fbWFwcGluZygKKyAgICAgcmV0dXJuIGFsdGVybmF0aXZlX2Nh bGwoeHNtX29wcy5pb21lbV9tYXBwaW5nLCBkLCBzLCBlLCBhbGxvdyk7CisgfQorIAorK3N0YXRp YyBpbmxpbmUgaW50IHhzbV9pb21lbV9tYXBwaW5nX3ZwY2koCisrICAgIHhzbV9kZWZhdWx0X3Qg ZGVmLCBzdHJ1Y3QgZG9tYWluICpkLCB1aW50NjRfdCBzLCB1aW50NjRfdCBlLCB1aW50OF90IGFs bG93KQorK3sKKysgICAgcmV0dXJuIGFsdGVybmF0aXZlX2NhbGwoeHNtX29wcy5pb21lbV9tYXBw aW5nX3ZwY2ksIGQsIHMsIGUsIGFsbG93KTsKKyt9CisrCisgc3RhdGljIGlubGluZSBpbnQgeHNt X3BjaV9jb25maWdfcGVybWlzc2lvbigKKyAgICAgeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBk b21haW4gKmQsIHVpbnQzMl90IG1hY2hpbmVfYmRmLCB1aW50MTZfdCBzdGFydCwKKyAgICAgdWlu dDE2X3QgZW5kLCB1aW50OF90IGFjY2VzcykKKy0tLSBhL3hlbi94c20vZHVtbXkuYworKysrIGIv eGVuL3hzbS9kdW1teS5jCitAQCAtNzYsNiArNzYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHhz bV9vcHMgX19pbml0Y29uc3RfCisgICAgIC5pcnFfcGVybWlzc2lvbiAgICAgICAgICAgICAgICA9 IHhzbV9pcnFfcGVybWlzc2lvbiwKKyAgICAgLmlvbWVtX3Blcm1pc3Npb24gICAgICAgICAgICAg ID0geHNtX2lvbWVtX3Blcm1pc3Npb24sCisgICAgIC5pb21lbV9tYXBwaW5nICAgICAgICAgICAg ICAgICA9IHhzbV9pb21lbV9tYXBwaW5nLAorKyAgICAuaW9tZW1fbWFwcGluZ192cGNpICAgICAg ICAgICAgPSB4c21faW9tZW1fbWFwcGluZ192cGNpLAorICAgICAucGNpX2NvbmZpZ19wZXJtaXNz aW9uICAgICAgICAgPSB4c21fcGNpX2NvbmZpZ19wZXJtaXNzaW9uLAorICAgICAuZ2V0X3ZudW1h aW5mbyAgICAgICAgICAgICAgICAgPSB4c21fZ2V0X3ZudW1haW5mbywKKyAKKy0tLSBhL3hlbi94 c20vZmxhc2svaG9va3MuYworKysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCitAQCAtMTk1MCw2 ICsxOTUwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB4c21fb3BzIF9faW5pdGNvbnN0XworICAg ICAuaXJxX3Blcm1pc3Npb24gPSBmbGFza19pcnFfcGVybWlzc2lvbiwKKyAgICAgLmlvbWVtX3Bl cm1pc3Npb24gPSBmbGFza19pb21lbV9wZXJtaXNzaW9uLAorICAgICAuaW9tZW1fbWFwcGluZyA9 IGZsYXNrX2lvbWVtX21hcHBpbmcsCisrICAgIC5pb21lbV9tYXBwaW5nX3ZwY2kgPSBmbGFza19p b21lbV9tYXBwaW5nLAorICAgICAucGNpX2NvbmZpZ19wZXJtaXNzaW9uID0gZmxhc2tfcGNpX2Nv bmZpZ19wZXJtaXNzaW9uLAorIAorICAgICAucmVzb3VyY2VfcGx1Z19jb3JlID0gZmxhc2tfcmVz b3VyY2VfcGx1Z19jb3JlLAoKZGlmZiAtLWdpdCBhL3hzYTQ5Mi00LjIxLTA5LnBhdGNoIGIveHNh NDkyLTQuMjEtMDkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZl OTQwMwotLS0gL2Rldi9udWxsCisrKyBiL3hzYTQ5Mi00LjIxLTA5LnBhdGNoCkBAIC0wLDAgKzEs MTk0IEBACitGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitTdWJqZWN0OiBk b21jdGw6IGhhbmRsZSBYRU5fRE9NQ1RMX21lbW9yeV9tYXBwaW5nIHdpdGhvdXQgYWNxdWlyaW5n IGRvbWN0bCBsb2NrCisKK1dpdGggZGVkaWNhdGVkIGxvY2tpbmcgYWRkZWQsIHRoZSBkb21jdGwg bG9jayBpc24ndCByZXF1aXJlZCBoZXJlIGFueW1vcmUuCitNb3ZlIHRoZSByZS1wdXJwb3NlZCBk ZWRpY2F0ZWQgWFNNIGNoZWNrIGFzIGVhcmx5IGFzIHBvc3NpYmxlLgorCitNaW5pbWFsICJtb2Rl cm5pemF0aW9uIjogU3dpdGNoICJhZGQiIHRvIGJvb2wgYW5kIHVzZSAlcGQgaW4gbG9nIG1lc3Nh Z2VzLgorCitUaGlzIGlzIHBhcnQgb2YgWFNBLTQ5Mi4KKworRml4ZXM6IGZkYTQ5ZjliM2ZiYiAo IkFkZCBidWlsZCBvcHRpb24gdG8gYWxsb3cgbW9yZSBoeXBlcmNhbGxzIGZyb20gc3R1YmRvbXMi KQorUmVwb3J0ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ CitTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitBY2tlZC1i eTogRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPgorUmV2aWV3 ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgorCistLS0gYS94 ZW4vY29tbW9uL2RvbWN0bC5jCisrKysgYi94ZW4vY29tbW9uL2RvbWN0bC5jCitAQCAtMzc2LDYg KzM3Niw2NiBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCisgICAg ICAgICAgICAgY29weWJhY2sgPSB0cnVlOworICAgICAgICAgZ290byBkb21jdGxfb3V0X3VubG9j a19kb21vbmx5OworIAorKyAgICBjYXNlIFhFTl9ET01DVExfbWVtb3J5X21hcHBpbmc6CisrICAg IHsKKysgICAgICAgIHVuc2lnbmVkIGxvbmcgZ2ZuID0gb3AtPnUubWVtb3J5X21hcHBpbmcuZmly c3RfZ2ZuOworKyAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4gPSBvcC0+dS5tZW1vcnlfbWFwcGlu Zy5maXJzdF9tZm47CisrICAgICAgICB1bnNpZ25lZCBsb25nIG5yX21mbnMgPSBvcC0+dS5tZW1v cnlfbWFwcGluZy5ucl9tZm5zOworKyAgICAgICAgdW5zaWduZWQgbG9uZyBtZm5fZW5kID0gbWZu ICsgbnJfbWZucyAtIDE7CisrICAgICAgICBib29sIGFkZCA9IG9wLT51Lm1lbW9yeV9tYXBwaW5n LmFkZF9tYXBwaW5nOworKworKyAgICAgICAgcmV0ID0gLUVJTlZBTDsKKysgICAgICAgIGlmICgg bWZuX2VuZCA8IG1mbiB8fCAvKiBXcmFwPyAqLworKyAgICAgICAgICAgICAoKG1mbiB8IG1mbl9l bmQpID4+IChwYWRkcl9iaXRzIC0gUEFHRV9TSElGVCkpIHx8CisrICAgICAgICAgICAgIChnZm4g KyBucl9tZm5zIC0gMSkgPCBnZm4gKSAvKiBXcmFwPyAqLworKyAgICAgICAgICAgIGdvdG8gZG9t Y3RsX291dF91bmxvY2tfZG9tb25seTsKKysKKysgICAgICAgIHJldCA9IHhzbV9pb21lbV9tYXBw aW5nKFhTTV9ETV9QUklWLCBkLCBtZm4sIG1mbl9lbmQsIGFkZCk7CisrICAgICAgICBpZiAoIHJl dCB8fCAhcGFnaW5nX21vZGVfdHJhbnNsYXRlKGQpICkKKysgICAgICAgICAgICBnb3RvIGRvbWN0 bF9vdXRfdW5sb2NrX2RvbW9ubHk7CisrCisrI2lmbmRlZiBDT05GSUdfWDg2IC8qIFhYWCBBUk0h PyAqLworKyAgICAgICAgcmV0ID0gLUUyQklHOworKyAgICAgICAgLyogTXVzdCBicmVhayBoeXBl cmNhbGwgdXAgYXMgdGhpcyBjb3VsZCB0YWtlIGEgd2hpbGUuICovCisrICAgICAgICBpZiAoIG5y X21mbnMgPiA2NCApCisrICAgICAgICAgICAgZ290byBkb21jdGxfb3V0X3VubG9ja19kb21vbmx5 OworKyNlbmRpZgorKworKyAgICAgICAgaW9jYXBzX2RvdWJsZV9sb2NrKGQsIGZhbHNlKTsKKysK KysgICAgICAgIHJldCA9IC1FUEVSTTsKKysgICAgICAgIGlmICggIWlvbWVtX2FjY2Vzc19wZXJt aXR0ZWQoY3VycmVudC0+ZG9tYWluLCBtZm4sIG1mbl9lbmQpIHx8CisrICAgICAgICAgICAgICFp b21lbV9hY2Nlc3NfcGVybWl0dGVkKGQsIG1mbiwgbWZuX2VuZCkgKQorKyAgICAgICAgICAgIC8q IE5vdGhpbmcuICovOworKyAgICAgICAgZWxzZSBpZiAoIGFkZCApCisrICAgICAgICB7CisrICAg ICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0RFQlVHCisrICAgICAgICAgICAgICAgICAgICJtZW1v cnlfbWFwOmFkZDogJXBkIGdmbj0lbHggbWZuPSVseCBucj0lbHhcbiIsCisrICAgICAgICAgICAg ICAgICAgIGQsIGdmbiwgbWZuLCBucl9tZm5zKTsKKysKKysgICAgICAgICAgICByZXQgPSBtYXBf bW1pb19yZWdpb25zKGQsIF9nZm4oZ2ZuKSwgbnJfbWZucywgX21mbihtZm4pKTsKKysgICAgICAg ICAgICBpZiAoIHJldCA8IDAgKQorKyAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfV0FS TklORworKyAgICAgICAgICAgICAgICAgICAgICAgIm1lbW9yeV9tYXA6ZmFpbDogJXBkIGdmbj0l bHggbWZuPSVseCBucj0lbHggcmV0OiVsZFxuIiwKKysgICAgICAgICAgICAgICAgICAgICAgIGQs IGdmbiwgbWZuLCBucl9tZm5zLCByZXQpOworKyAgICAgICAgfQorKyAgICAgICAgZWxzZQorKyAg ICAgICAgeworKyAgICAgICAgICAgIHByaW50ayhYRU5MT0dfR19ERUJVRworKyAgICAgICAgICAg ICAgICAgICAibWVtb3J5X21hcDpyZW1vdmU6ICVwZCBnZm49JWx4IG1mbj0lbHggbnI9JWx4XG4i LAorKyAgICAgICAgICAgICAgICAgICBkLCBnZm4sIG1mbiwgbnJfbWZucyk7CisrCisrICAgICAg ICAgICAgcmV0ID0gdW5tYXBfbW1pb19yZWdpb25zKGQsIF9nZm4oZ2ZuKSwgbnJfbWZucywgX21m bihtZm4pKTsKKysgICAgICAgICAgICBpZiAoIHJldCA8IDAgJiYgaXNfaGFyZHdhcmVfZG9tYWlu KGN1cnJlbnQtPmRvbWFpbikgKQorKyAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUgor KyAgICAgICAgICAgICAgICAgICAgICAgIm1lbW9yeV9tYXA6IGVycm9yICVsZCByZW1vdmluZyAl cGQgYWNjZXNzIHRvIFslbHgsJWx4XVxuIiwKKysgICAgICAgICAgICAgICAgICAgICAgIHJldCwg ZCwgbWZuLCBtZm5fZW5kKTsKKysgICAgICAgIH0KKysKKysgICAgICAgIGlvY2Fwc19kb3VibGVf dW5sb2NrKGQsIGZhbHNlKTsKKysgICAgICAgIGdvdG8gZG9tY3RsX291dF91bmxvY2tfZG9tb25s eTsKKysgICAgfQorKworICAgICBkZWZhdWx0OgorICAgICAgICAgLyogRXZlcnl0aGluZyBlbHNl IGhhbmRsZWQgZnVydGhlciBkb3duLiAqLworICAgICAgICAgYnJlYWs7CitAQCAtNzM2LDY0ICs3 OTYsNiBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCisgICAgICAg ICBicmVhazsKKyAgICAgfQorIAorLSAgICBjYXNlIFhFTl9ET01DVExfbWVtb3J5X21hcHBpbmc6 CistICAgIHsKKy0gICAgICAgIHVuc2lnbmVkIGxvbmcgZ2ZuID0gb3AtPnUubWVtb3J5X21hcHBp bmcuZmlyc3RfZ2ZuOworLSAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4gPSBvcC0+dS5tZW1vcnlf bWFwcGluZy5maXJzdF9tZm47CistICAgICAgICB1bnNpZ25lZCBsb25nIG5yX21mbnMgPSBvcC0+ dS5tZW1vcnlfbWFwcGluZy5ucl9tZm5zOworLSAgICAgICAgdW5zaWduZWQgbG9uZyBtZm5fZW5k ID0gbWZuICsgbnJfbWZucyAtIDE7CistICAgICAgICBpbnQgYWRkID0gb3AtPnUubWVtb3J5X21h cHBpbmcuYWRkX21hcHBpbmc7CistCistICAgICAgICByZXQgPSAtRUlOVkFMOworLSAgICAgICAg aWYgKCBtZm5fZW5kIDwgbWZuIHx8IC8qIHdyYXA/ICovCistICAgICAgICAgICAgICgobWZuIHwg bWZuX2VuZCkgPj4gKHBhZGRyX2JpdHMgLSBQQUdFX1NISUZUKSkgfHwKKy0gICAgICAgICAgICAg KGdmbiArIG5yX21mbnMgLSAxKSA8IGdmbiApIC8qIHdyYXA/ICovCistICAgICAgICAgICAgYnJl YWs7CistCistI2lmbmRlZiBDT05GSUdfWDg2IC8qIFhYWCBBUk0hPyAqLworLSAgICAgICAgcmV0 ID0gLUUyQklHOworLSAgICAgICAgLyogTXVzdCBicmVhayBoeXBlcmNhbGwgdXAgYXMgdGhpcyBj b3VsZCB0YWtlIGEgd2hpbGUuICovCistICAgICAgICBpZiAoIG5yX21mbnMgPiA2NCApCistICAg ICAgICAgICAgYnJlYWs7CistI2VuZGlmCistCistICAgICAgICBpb2NhcHNfZG91YmxlX2xvY2so ZCwgZmFsc2UpOworLQorLSAgICAgICAgcmV0ID0gLUVQRVJNOworLSAgICAgICAgaWYgKCAhaW9t ZW1fYWNjZXNzX3Blcm1pdHRlZChjdXJyZW50LT5kb21haW4sIG1mbiwgbWZuX2VuZCkgfHwKKy0g ICAgICAgICAgICAgIWlvbWVtX2FjY2Vzc19wZXJtaXR0ZWQoZCwgbWZuLCBtZm5fZW5kKSB8fAor LSAgICAgICAgICAgICAocmV0ID0geHNtX2lvbWVtX21hcHBpbmcoWFNNX0hPT0ssIGQsIG1mbiwg bWZuX2VuZCwgYWRkKSkgfHwKKy0gICAgICAgICAgICAgIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShk KSApCistICAgICAgICAgICAgLyogTm90aGluZy4gKi87CistICAgICAgICBlbHNlIGlmICggYWRk ICkKKy0gICAgICAgIHsKKy0gICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfREVCVUcKKy0gICAg ICAgICAgICAgICAgICAgIm1lbW9yeV9tYXA6YWRkOiBkb20lZCBnZm49JWx4IG1mbj0lbHggbnI9 JWx4XG4iLAorLSAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGdmbiwgbWZuLCBucl9t Zm5zKTsKKy0KKy0gICAgICAgICAgICByZXQgPSBtYXBfbW1pb19yZWdpb25zKGQsIF9nZm4oZ2Zu KSwgbnJfbWZucywgX21mbihtZm4pKTsKKy0gICAgICAgICAgICBpZiAoIHJldCA8IDAgKQorLSAg ICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfV0FSTklORworLSAgICAgICAgICAgICAgICAg ICAgICAgIm1lbW9yeV9tYXA6ZmFpbDogZG9tJWQgZ2ZuPSVseCBtZm49JWx4IG5yPSVseCByZXQ6 JWxkXG4iLAorLSAgICAgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBnZm4sIG1mbiwg bnJfbWZucywgcmV0KTsKKy0gICAgICAgIH0KKy0gICAgICAgIGVsc2UKKy0gICAgICAgIHsKKy0g ICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfREVCVUcKKy0gICAgICAgICAgICAgICAgICAgIm1l bW9yeV9tYXA6cmVtb3ZlOiBkb20lZCBnZm49JWx4IG1mbj0lbHggbnI9JWx4XG4iLAorLSAgICAg ICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGdmbiwgbWZuLCBucl9tZm5zKTsKKy0KKy0gICAg ICAgICAgICByZXQgPSB1bm1hcF9tbWlvX3JlZ2lvbnMoZCwgX2dmbihnZm4pLCBucl9tZm5zLCBf bWZuKG1mbikpOworLSAgICAgICAgICAgIGlmICggcmV0IDwgMCAmJiBpc19oYXJkd2FyZV9kb21h aW4oY3VycmVudC0+ZG9tYWluKSApCistICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJS CistICAgICAgICAgICAgICAgICAgICAgICAibWVtb3J5X21hcDogZXJyb3IgJWxkIHJlbW92aW5n IGRvbSVkIGFjY2VzcyB0byBbJWx4LCVseF1cbiIsCistICAgICAgICAgICAgICAgICAgICAgICBy ZXQsIGQtPmRvbWFpbl9pZCwgbWZuLCBtZm5fZW5kKTsKKy0gICAgICAgIH0KKy0KKy0gICAgICAg IGlvY2Fwc19kb3VibGVfdW5sb2NrKGQsIGZhbHNlKTsKKy0gICAgICAgIGJyZWFrOworLSAgICB9 CistCisgICAgIGNhc2UgWEVOX0RPTUNUTF9zZXR0aW1lb2Zmc2V0OgorICAgICAgICAgZG9tYWlu X3NldF90aW1lX29mZnNldChkLCBvcC0+dS5zZXR0aW1lb2Zmc2V0LnRpbWVfb2Zmc2V0X3NlY29u ZHMpOworICAgICAgICAgYnJlYWs7CistLS0gYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAorKysr IGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKK0BAIC0xNjgsMTMgKzE2OCwxMyBAQCBzdGF0aWMg WFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2RvbWN0CisgICAgIHN3aXRjaCAoIGNtZCApCisg ICAgIHsKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9tYXBwaW5nOgorLSAgICBjYXNlIFhF Tl9ET01DVExfbWVtb3J5X21hcHBpbmc6CisgICAgIGNhc2UgWEVOX0RPTUNUTF9iaW5kX3B0X2ly cToKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX3VuYmluZF9wdF9pcnE6CisgICAgICAgICByZXR1cm4g eHNtX2RlZmF1bHRfYWN0aW9uKFhTTV9ETV9QUklWLCBjdXJyZW50LT5kb21haW4sIGQpOworIAor ICAgICBjYXNlIFhFTl9ET01DVExfZ2V0ZG9tYWluaW5mbzoKKyAgICAgY2FzZSBYRU5fRE9NQ1RM X2dldF9kb21haW5fc3RhdGU6CisrICAgIGNhc2UgWEVOX0RPTUNUTF9tZW1vcnlfbWFwcGluZzoK KyAgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOworICAgICAgICAgcmV0dXJuIC1FSUxTRVE7 CisgCitAQCAtNTc2LDcgKzU3Niw3IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4 c21faW9tZW0KKyBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2lvbWVtX21hcHBp bmcoCisgICAgIFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkLCB1aW50NjRfdCBzLCB1 aW50NjRfdCBlLCB1aW50OF90IGFsbG93KQorIHsKKy0gICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNN X0hPT0spOworKyAgICBYU01fQVNTRVJUX0FDVElPTihYU01fRE1fUFJJVik7CisgICAgIHJldHVy biB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOworIH0KKyAK Ky0tLSBhL3hlbi94c20vZmxhc2svaG9va3MuYworKysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5j CitAQCAtNjg1LDYgKzY4NSw3IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0 cnVjdAorICAgICAvKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzIGFuZCBkb24ndCBt YWtlIGl0IGhlcmUuICovCisgICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRkb21haW5pbmZvOgorICAg ICBjYXNlIFhFTl9ET01DVExfZ2V0X2RvbWFpbl9zdGF0ZToKKysgICAgY2FzZSBYRU5fRE9NQ1RM X21lbW9yeV9tYXBwaW5nOgorICAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CisgICAgICAg ICByZXR1cm4gLUVJTFNFUTsKKyAKK0BAIC02OTIsNyArNjkzLDYgQEAgc3RhdGljIGludCBjZl9j aGVjayBmbGFza19kb21jdGwoc3RydWN0CisgICAgIGNhc2UgWEVOX0RPTUNUTF9zY2hlZHVsZXJf b3A6CisgICAgIGNhc2UgWEVOX0RPTUNUTF9pcnFfcGVybWlzc2lvbjoKKyAgICAgY2FzZSBYRU5f RE9NQ1RMX2lvbWVtX3Blcm1pc3Npb246CistICAgIGNhc2UgWEVOX0RPTUNUTF9tZW1vcnlfbWFw cGluZzoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX3NldF90YXJnZXQ6CisgICAgIGNhc2UgWEVOX0RP TUNUTF92bV9ldmVudF9vcDoKKyAKCmRpZmYgLS1naXQgYS94c2E0OTItNC4yMS0xMC5wYXRjaCBi L3hzYTQ5Mi00LjIxLTEwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjY0MDZhMTkKLS0tIC9kZXYvbnVsbAorKysgYi94c2E0OTItNC4yMS0xMC5wYXRjaApAQCAtMCww ICsxLDk3IEBACitGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitTdWJqZWN0 OiBkb21jdGw6IGhhbmRsZSBYRU5fRE9NQ1RMX2lvcG9ydF9tYXBwaW5nIHdpdGhvdXQgYWNxdWly aW5nIGRvbWN0bCBsb2NrCisKK1dpdGggZGVkaWNhdGVkIGxvY2tpbmcgYWRkZWQsIHRoZSBkb21j dGwgbG9jayBpc24ndCByZXF1aXJlZCBoZXJlIGFueW1vcmUuCitBcyB0aGUgaGFuZGxpbmcgaXMg aW4gYXJjaC1zcGVjaWZpYyBjb2RlICh4ODYgb25seSksIGFsbW9zdCBubyBjb2RlIGlzCitiZWlu ZyBtb3ZlZCwgYnV0IGEgMm5kIChleHRlbnNpYmxlIHRvIG90aGVyIHN1Yi1vcHMpIGludm9jYXRp b24gb2YKK2FyY2hfZG9fZG9tY3RsKCkgaXMgYmVpbmcgYWRkZWQuIE1vdmUganVzdCB0aGUgcmUt cHVycG9zZWQgZGVkaWNhdGVkIFhTTQorY2hlY2sgYXMgZWFybHkgYXMgcG9zc2libGUuCisKK0lu IGZsYXNrX2RvbWN0bCgpIGRvbid0IHB1dCAjaWZkZWYgYXJvdW5kIHRoZSBtb3ZlZCBjYXNlIGxh YmVsLgorCitUaGlzIGlzIHBhcnQgb2YgWFNBLTQ5Mi4KKworRml4ZXM6IGZkYTQ5ZjliM2ZiYiAo IkFkZCBidWlsZCBvcHRpb24gdG8gYWxsb3cgbW9yZSBoeXBlcmNhbGxzIGZyb20gc3R1YmRvbXMi KQorUmVwb3J0ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ CitTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitSZXZpZXdl ZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CitBY2tlZC1ieTog RGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPgorCistLS0gYS94 ZW4vYXJjaC94ODYvZG9tY3RsLmMKKysrKyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYworQEAgLTY2 MywxMiArNjYzLDE1IEBAIGxvbmcgYXJjaF9kb19kb21jdGwoCisgICAgICAgICAgICAgYnJlYWs7 CisgICAgICAgICB9CisgCisrICAgICAgICByZXQgPSB4c21faW9wb3J0X21hcHBpbmcoWFNNX0RN X1BSSVYsIGQsIGZtcCwgZm1wICsgbnAgLSAxLCBhZGQpOworKyAgICAgICAgaWYgKCByZXQgKQor KyAgICAgICAgICAgIGJyZWFrOworKworICAgICAgICAgaHZtID0gJmQtPmFyY2guaHZtOworICAg ICAgICAgaW9jYXBzX2RvdWJsZV9sb2NrKGQsIHRydWUpOworIAorLSAgICAgICAgaWYgKCAhaW9w b3J0c19hY2Nlc3NfcGVybWl0dGVkKGN1cnJkLCBmbXAsIGZtcCArIG5wIC0gMSkgfHwKKy0gICAg ICAgICAgICAgKHJldCA9IHhzbV9pb3BvcnRfbWFwcGluZyhYU01fSE9PSywgZCwgZm1wLCBmbXAg KyBucCAtIDEsIGFkZCkpICkKKy0gICAgICAgICAgICByZXQgPSByZXQgPzogLUVQRVJNOworKyAg ICAgICAgaWYgKCAhaW9wb3J0c19hY2Nlc3NfcGVybWl0dGVkKGN1cnJkLCBmbXAsIGZtcCArIG5w IC0gMSkgKQorKyAgICAgICAgICAgIHJldCA9IC1FUEVSTTsKKyAgICAgICAgIGVsc2UgaWYgKCBh ZGQgKQorICAgICAgICAgeworICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfR19JTkZPCistLS0g YS94ZW4vY29tbW9uL2RvbWN0bC5jCisrKysgYi94ZW4vY29tbW9uL2RvbWN0bC5jCitAQCAtNDM2 LDYgKzQzNiwxMCBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCisg ICAgICAgICBnb3RvIGRvbWN0bF9vdXRfdW5sb2NrX2RvbW9ubHk7CisgICAgIH0KKyAKKysgICAg Y2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9tYXBwaW5nOgorKyAgICAgICAgcmV0ID0gYXJjaF9kb19k b21jdGwob3AsIGQsIHVfZG9tY3RsKTsKKysgICAgICAgIGdvdG8gZG9tY3RsX291dF91bmxvY2tf ZG9tb25seTsKKysKKyAgICAgZGVmYXVsdDoKKyAgICAgICAgIC8qIEV2ZXJ5dGhpbmcgZWxzZSBo YW5kbGVkIGZ1cnRoZXIgZG93bi4gKi8KKyAgICAgICAgIGJyZWFrOworLS0tIGEveGVuL2luY2x1 ZGUveHNtL2R1bW15LmgKKysrKyBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCitAQCAtMTY3LDEz ICsxNjcsMTMgQEAgc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV9kb21jdAorICAg ICBYU01fQVNTRVJUX0FDVElPTihYU01fT1RIRVIpOworICAgICBzd2l0Y2ggKCBjbWQgKQorICAg ICB7CistICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfbWFwcGluZzoKKyAgICAgY2FzZSBYRU5f RE9NQ1RMX2JpbmRfcHRfaXJxOgorICAgICBjYXNlIFhFTl9ET01DVExfdW5iaW5kX3B0X2lycToK KyAgICAgICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oWFNNX0RNX1BSSVYsIGN1cnJlbnQt PmRvbWFpbiwgZCk7CisgCisgICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRkb21haW5pbmZvOgorICAg ICBjYXNlIFhFTl9ET01DVExfZ2V0X2RvbWFpbl9zdGF0ZToKKysgICAgY2FzZSBYRU5fRE9NQ1RM X2lvcG9ydF9tYXBwaW5nOgorICAgICBjYXNlIFhFTl9ET01DVExfbWVtb3J5X21hcHBpbmc6Cisg ICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKKyAgICAgICAgIHJldHVybiAtRUlMU0VROwor QEAgLTc3Miw3ICs3NzIsNyBAQCBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2lv cG9yCisgc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV9pb3BvcnRfbWFwcGluZygK KyAgICAgWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IHMsIHVpbnQz Ml90IGUsIHVpbnQ4X3QgYWxsb3cpCisgeworLSAgICBYU01fQVNTRVJUX0FDVElPTihYU01fSE9P Syk7CisrICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9ETV9QUklWKTsKKyAgICAgcmV0dXJuIHhz bV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7CisgfQorIAorLS0t IGEveGVuL3hzbS9mbGFzay9ob29rcy5jCisrKysgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKK0BA IC02ODUsNiArNjg1LDcgQEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19kb21jdGwoc3RydWN0 CisgICAgIC8qIFRoZXNlIGhhdmUgaW5kaXZpZHVhbCBYU00gaG9va3MgYW5kIGRvbid0IG1ha2Ug aXQgaGVyZS4gKi8KKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2dldGRvbWFpbmluZm86CisgICAgIGNh c2UgWEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0YXRlOgorKyAgICBjYXNlIFhFTl9ET01DVExfaW9w b3J0X21hcHBpbmc6CisgICAgIGNhc2UgWEVOX0RPTUNUTF9tZW1vcnlfbWFwcGluZzoKKyAgICAg ICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOworICAgICAgICAgcmV0dXJuIC1FSUxTRVE7CitAQCAt NzAzLDcgKzcwNCw2IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdAor ICAgICAvKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzIChhcmNoL3g4Ni9kb21jdGwu YykgKi8KKyAgICAgY2FzZSBYRU5fRE9NQ1RMX3NoYWRvd19vcDoKKyAgICAgY2FzZSBYRU5fRE9N Q1RMX2lvcG9ydF9wZXJtaXNzaW9uOgorLSAgICBjYXNlIFhFTl9ET01DVExfaW9wb3J0X21hcHBp bmc6CisgICAgIGNhc2UgWEVOX0RPTUNUTF9nc2lfcGVybWlzc2lvbjoKKyAjZW5kaWYKKyAjaWZk ZWYgQ09ORklHX0hBU19QQVNTVEhST1VHSAoKZGlmZiAtLWdpdCBhL3hzYTQ5Mi00LjIxLTExLnBh dGNoIGIveHNhNDkyLTQuMjEtMTEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uNjQ3ZmQ1YQotLS0gL2Rldi9udWxsCisrKyBiL3hzYTQ5Mi00LjIxLTExLnBhdGNoCkBA IC0wLDAgKzEsMTI4IEBACitGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitT dWJqZWN0OiBkb21jdGw6IGhhbmRsZSBYRU5fRE9NQ1RMX3ssdW59YmluZF9wdF9pcnEgd2l0aG91 dCBhY3F1aXJpbmcgZG9tY3RsIGxvY2sKKworV2l0aCBkZWRpY2F0ZWQgbG9ja2luZyBhZGRlZCwg dGhlIGRvbWN0bCBsb2NrIGlzbid0IHJlcXVpcmVkIGhlcmUgYW55bW9yZS4KKyhJdCBhbHNvIGFs cmVhZHkgaXNuJ3QgdXNlZCB3aGVuIHB0X2lycV97Y3JlYXRlLGRlc3Ryb3l9X2JpbmQoKSBhcmUK K2ludm9rZWQgZm9yIFBWSCBEb20wLikgQXMgdGhlIGhhbmRsaW5nIGlzIGluIGFyY2gtc3BlY2lm aWMgY29kZSwgbm8gY29kZQoraXMgYmVpbmcgbW92ZWQsIGJ1dCB0aGUgMm5kIChleHRlbnNpYmxl IHRvIG90aGVyIHN1Yi1vcHMgbGlrZSB0aGUgb25lcworaGVyZSkgaW52b2NhdGlvbiBvZiBhcmNo X2RvX2RvbWN0bCgpIGlzIGJlaW5nIHJlLXVzZWQuCisKK1RoaXMgaXMgcGFydCBvZiBYU0EtNDky LgorCitGaXhlczogZmRhNDlmOWIzZmJiICgiQWRkIGJ1aWxkIG9wdGlvbiB0byBhbGxvdyBtb3Jl IGh5cGVyY2FsbHMgZnJvbSBzdHViZG9tcyIpCitSZXBvcnRlZC1ieTogQW5kcmV3IENvb3BlciA8 YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KK1NpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxq YmV1bGljaEBzdXNlLmNvbT4KK1Jldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5w YXVAY2l0cml4LmNvbT4KK0Fja2VkLWJ5OiBEYW5pZWwgUC4gU21pdGggPGRwc21pdGhAYXBlcnR1 c3NvbHV0aW9ucy5jb20+CitBY2tlZC1ieTogSnVsaWVuIEdyYWxsIDxqdWxpZW5AeGVuLm9yZz4K KworLS0tIGEveGVuL2FyY2gvYXJtL2RvbWN0bC5jCisrKysgYi94ZW4vYXJjaC9hcm0vZG9tY3Rs LmMKK0BAIC0xMDQsNyArMTA0LDcgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bChzdHJ1Y3QgeGVuX2Rv bWN0bCAqZAorICAgICAgICAgaWYgKCByYyApCisgICAgICAgICAgICAgcmV0dXJuIHJjOworIAor LSAgICAgICAgcmMgPSB4c21fYmluZF9wdF9pcnEoWFNNX0hPT0ssIGQsIGJpbmQpOworKyAgICAg ICAgcmMgPSB4c21fYmluZF9wdF9pcnEoWFNNX0RNX1BSSVYsIGQsIGJpbmQpOworICAgICAgICAg aWYgKCByYyApCisgICAgICAgICAgICAgcmV0dXJuIHJjOworIAorQEAgLTE0MCw3ICsxNDAsNyBA QCBsb25nIGFyY2hfZG9fZG9tY3RsKHN0cnVjdCB4ZW5fZG9tY3RsICpkCisgICAgICAgICBpZiAo IGlycSAhPSB2aXJxICkKKyAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAKKy0gICAgICAg IHJjID0geHNtX3VuYmluZF9wdF9pcnEoWFNNX0hPT0ssIGQsIGJpbmQpOworKyAgICAgICAgcmMg PSB4c21fdW5iaW5kX3B0X2lycShYU01fRE1fUFJJViwgZCwgYmluZCk7CisgICAgICAgICBpZiAo IHJjICkKKyAgICAgICAgICAgICByZXR1cm4gcmM7CisgCistLS0gYS94ZW4vYXJjaC94ODYvZG9t Y3RsLmMKKysrKyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYworQEAgLTU3NSw3ICs1NzUsNyBAQCBs b25nIGFyY2hfZG9fZG9tY3RsKAorICAgICAgICAgaWYgKCAhaXNfaHZtX2RvbWFpbihkKSApCisg ICAgICAgICAgICAgYnJlYWs7CisgCistICAgICAgICByZXQgPSB4c21fYmluZF9wdF9pcnEoWFNN X0hPT0ssIGQsIGJpbmQpOworKyAgICAgICAgcmV0ID0geHNtX2JpbmRfcHRfaXJxKFhTTV9ETV9Q UklWLCBkLCBiaW5kKTsKKyAgICAgICAgIGlmICggcmV0ICkKKyAgICAgICAgICAgICBicmVhazsK KyAKK0BAIC02MTMsNyArNjEzLDcgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKKyAgICAgICAgIGlm ICggIWlzX2h2bV9kb21haW4oZCkgKQorICAgICAgICAgICAgIGJyZWFrOworIAorLSAgICAgICAg cmV0ID0geHNtX3VuYmluZF9wdF9pcnEoWFNNX0hPT0ssIGQsIGJpbmQpOworKyAgICAgICAgcmV0 ID0geHNtX3VuYmluZF9wdF9pcnEoWFNNX0RNX1BSSVYsIGQsIGJpbmQpOworICAgICAgICAgaWYg KCByZXQgKQorICAgICAgICAgICAgIGJyZWFrOworIAorLS0tIGEveGVuL2NvbW1vbi9kb21jdGwu YworKysrIGIveGVuL2NvbW1vbi9kb21jdGwuYworQEAgLTQzNyw2ICs0MzcsOCBAQCBsb25nIGRv X2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCisgICAgIH0KKyAKKyAgICAgY2FzZSBY RU5fRE9NQ1RMX2lvcG9ydF9tYXBwaW5nOgorKyAgICBjYXNlIFhFTl9ET01DVExfYmluZF9wdF9p cnE6CisrICAgIGNhc2UgWEVOX0RPTUNUTF91bmJpbmRfcHRfaXJxOgorICAgICAgICAgcmV0ID0g YXJjaF9kb19kb21jdGwob3AsIGQsIHVfZG9tY3RsKTsKKyAgICAgICAgIGdvdG8gZG9tY3RsX291 dF91bmxvY2tfZG9tb25seTsKKyAKKy0tLSBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCisrKysg Yi94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAorQEAgLTE2OCwxMyArMTY4LDExIEBAIHN0YXRpYyBY U01fSU5MSU5FIGludCBjZl9jaGVjayB4c21fZG9tY3QKKyAgICAgc3dpdGNoICggY21kICkKKyAg ICAgeworICAgICBjYXNlIFhFTl9ET01DVExfYmluZF9wdF9pcnE6CistICAgIGNhc2UgWEVOX0RP TUNUTF91bmJpbmRfcHRfaXJxOgorLSAgICAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihY U01fRE1fUFJJViwgY3VycmVudC0+ZG9tYWluLCBkKTsKKy0KKyAgICAgY2FzZSBYRU5fRE9NQ1RM X2dldGRvbWFpbmluZm86CisgICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfZG9tYWluX3N0YXRlOgor ICAgICBjYXNlIFhFTl9ET01DVExfaW9wb3J0X21hcHBpbmc6CisgICAgIGNhc2UgWEVOX0RPTUNU TF9tZW1vcnlfbWFwcGluZzoKKysgICAgY2FzZSBYRU5fRE9NQ1RMX3VuYmluZF9wdF9pcnE6Cisg ICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKKyAgICAgICAgIHJldHVybiAtRUlMU0VROwor IAorQEAgLTU0MSwxNCArNTM5LDE0IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4 c21fdW5tYXAKKyBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2JpbmRfcHRfaXJx KAorICAgICBYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHhlbl9kb21j dGxfYmluZF9wdF9pcnEgKmJpbmQpCisgeworLSAgICBYU01fQVNTRVJUX0FDVElPTihYU01fSE9P Syk7CisrICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9ETV9QUklWKTsKKyAgICAgcmV0dXJuIHhz bV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7CisgfQorIAorIHN0 YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21fdW5iaW5kX3B0X2lycSgKKyAgICAgWFNN X0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB4ZW5fZG9tY3RsX2JpbmRfcHRf aXJxICpiaW5kKQorIHsKKy0gICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0hPT0spOworKyAgICBY U01fQVNTRVJUX0FDVElPTihYU01fRE1fUFJJVik7CisgICAgIHJldHVybiB4c21fZGVmYXVsdF9h Y3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOworIH0KKyAKKy0tLSBhL3hlbi94c20v Zmxhc2svaG9va3MuYworKysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCitAQCAtNjgzLDEwICs2 ODMsMTIgQEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19kb21jdGwoc3RydWN0CisgICAgICAg ICByZXR1cm4gYXZjX2N1cnJlbnRfaGFzX3Blcm0oc3NpZHJlZiwgU0VDQ0xBU1NfRE9NQUlOLCBE T01BSU5fX0NSRUFURSwgTlVMTCk7CisgCisgICAgIC8qIFRoZXNlIGhhdmUgaW5kaXZpZHVhbCBY U00gaG9va3MgYW5kIGRvbid0IG1ha2UgaXQgaGVyZS4gKi8KKysgICAgY2FzZSBYRU5fRE9NQ1RM X2JpbmRfcHRfaXJxOgorICAgICBjYXNlIFhFTl9ET01DVExfZ2V0ZG9tYWluaW5mbzoKKyAgICAg Y2FzZSBYRU5fRE9NQ1RMX2dldF9kb21haW5fc3RhdGU6CisgICAgIGNhc2UgWEVOX0RPTUNUTF9p b3BvcnRfbWFwcGluZzoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX21lbW9yeV9tYXBwaW5nOgorKyAg ICBjYXNlIFhFTl9ET01DVExfdW5iaW5kX3B0X2lycToKKyAgICAgICAgIEFTU0VSVF9VTlJFQUNI QUJMRSgpOworICAgICAgICAgcmV0dXJuIC1FSUxTRVE7CisgCitAQCAtNjk3LDkgKzY5OSw2IEBA IHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdAorICAgICBjYXNlIFhFTl9E T01DVExfc2V0X3RhcmdldDoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX3ZtX2V2ZW50X29wOgorIAor LSAgICAvKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzIChhcmNoLy4uL2RvbWN0bC5j KSAqLworLSAgICBjYXNlIFhFTl9ET01DVExfYmluZF9wdF9pcnE6CistICAgIGNhc2UgWEVOX0RP TUNUTF91bmJpbmRfcHRfaXJxOgorICNpZmRlZiBDT05GSUdfWDg2CisgICAgIC8qIFRoZXNlIGhh dmUgaW5kaXZpZHVhbCBYU00gaG9va3MgKGFyY2gveDg2L2RvbWN0bC5jKSAqLworICAgICBjYXNl IFhFTl9ET01DVExfc2hhZG93X29wOgoKZGlmZiAtLWdpdCBhL3hzYTQ5Mi00LjIxLTEyLnBhdGNo IGIveHNhNDkyLTQuMjEtMTIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uYzE5ZDFlMQotLS0gL2Rldi9udWxsCisrKyBiL3hzYTQ5Mi00LjIxLTEyLnBhdGNoCkBAIC0w LDAgKzEsMTcyIEBACitGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitTdWJq ZWN0OiBkb21jdGw6IGhhbmRsZSBYRU5fRE9NQ1RMX2lve21lbSxwb3J0fV9wZXJtaXNzaW9uIHdp dGhvdXQgYWNxdWlyaW5nIGRvbWN0bCBsb2NrCisKK1dpdGggZGVkaWNhdGVkIGxvY2tpbmcgYWRk ZWQsIHRoZSBkb21jdGwgbG9jayBpc24ndCByZXF1aXJlZCBoZXJlIGFueW1vcmUuCitBcyB0aGUg SS9PIHBvcnQgaGFuZGxpbmcgaXMgaW4gYXJjaC1zcGVjaWZpYyBjb2RlICh4ODYgb25seSksIG5v IGNvZGUgaXMKK2JlaW5nIG1vdmVkLCBidXQgdGhlIDJuZCBpbnZvY2F0aW9uIG9mIGFyY2hfZG9f ZG9tY3RsKCkgaXMgcmUtdXNlZC4gTW92ZQordGhlIHJlLXB1cnBvc2VkIGRlZGljYXRlZCBYU00g Y2hlY2tzIGFzIGVhcmx5IGFzIHBvc3NpYmxlLgorCitUaGlzIGlzIHBhcnQgb2YgWFNBLTQ5Mi4K KworU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgorUmV2aWV3 ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgorQWNrZWQtYnk6 IERhbmllbCBQLiBTbWl0aCA8ZHBzbWl0aEBhcGVydHVzc29sdXRpb25zLmNvbT4KKworLS0tIGEv eGVuL2FyY2gveDg2L2RvbWN0bC5jCisrKysgYi94ZW4vYXJjaC94ODYvZG9tY3RsLmMKK0BAIC0y MzMsMTIgKzIzMywxNyBAQCBsb25nIGFyY2hfZG9fZG9tY3RsKAorICAgICAgICAgdW5zaWduZWQg aW50IG5wID0gZG9tY3RsLT51LmlvcG9ydF9wZXJtaXNzaW9uLm5yX3BvcnRzOworICAgICAgICAg aW50IGFsbG93ID0gZG9tY3RsLT51LmlvcG9ydF9wZXJtaXNzaW9uLmFsbG93X2FjY2VzczsKKyAK KysgICAgICAgIHJldCA9IC1FSU5WQUw7CisrICAgICAgICBpZiAoIChmcCArIG5wKSA8PSBmcCB8 fCAoZnAgKyBucCkgPiBNQVhfSU9QT1JUUyApCisrICAgICAgICAgICAgYnJlYWs7CisrCisrICAg ICAgICByZXQgPSB4c21faW9wb3J0X3Blcm1pc3Npb24oWFNNX1BSSVYsIGQsIGZwLCBmcCArIG5w IC0gMSwgYWxsb3cpOworKyAgICAgICAgaWYgKCByZXQgKQorKyAgICAgICAgICAgIGJyZWFrOwor KworICAgICAgICAgaW9jYXBzX2RvdWJsZV9sb2NrKGQsIHRydWUpOworIAorLSAgICAgICAgaWYg KCAoZnAgKyBucCkgPD0gZnAgfHwgKGZwICsgbnApID4gTUFYX0lPUE9SVFMgKQorLSAgICAgICAg ICAgIHJldCA9IC1FSU5WQUw7CistICAgICAgICBlbHNlIGlmICggIWlvcG9ydHNfYWNjZXNzX3Bl cm1pdHRlZChjdXJyZCwgZnAsIGZwICsgbnAgLSAxKSB8fAorLSAgICAgICAgICAgICAgICAgIHhz bV9pb3BvcnRfcGVybWlzc2lvbihYU01fSE9PSywgZCwgZnAsIGZwICsgbnAgLSAxLCBhbGxvdykg KQorKyAgICAgICAgaWYgKCAhaW9wb3J0c19hY2Nlc3NfcGVybWl0dGVkKGN1cnJkLCBmcCwgZnAg KyBucCAtIDEpICkKKyAgICAgICAgICAgICByZXQgPSAtRVBFUk07CisgICAgICAgICBlbHNlIGlm ICggYWxsb3cgKQorICAgICAgICAgICAgIHJldCA9IGlvcG9ydHNfcGVybWl0X2FjY2VzcyhkLCBm cCwgZnAgKyBucCAtIDEpOworLS0tIGEveGVuL2NvbW1vbi9kb21jdGwuYworKysrIGIveGVuL2Nv bW1vbi9kb21jdGwuYworQEAgLTM3Niw2ICszNzYsMzQgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dV RVNUX0hBTkRMRV9QQVJBTSh4ZQorICAgICAgICAgICAgIGNvcHliYWNrID0gdHJ1ZTsKKyAgICAg ICAgIGdvdG8gZG9tY3RsX291dF91bmxvY2tfZG9tb25seTsKKyAKKysgICAgY2FzZSBYRU5fRE9N Q1RMX2lvbWVtX3Blcm1pc3Npb246CisrICAgIHsKKysgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZu ID0gb3AtPnUuaW9tZW1fcGVybWlzc2lvbi5maXJzdF9tZm47CisrICAgICAgICB1bnNpZ25lZCBs b25nIG5yX21mbnMgPSBvcC0+dS5pb21lbV9wZXJtaXNzaW9uLm5yX21mbnM7CisrICAgICAgICBi b29sIGFsbG93ID0gb3AtPnUuaW9tZW1fcGVybWlzc2lvbi5hbGxvd19hY2Nlc3M7CisrCisrICAg ICAgICByZXQgPSAtRUlOVkFMOworKyAgICAgICAgaWYgKCAobWZuICsgbnJfbWZucyAtIDEpIDwg bWZuICkgLyogV3JhcD8gKi8KKysgICAgICAgICAgICBnb3RvIGRvbWN0bF9vdXRfdW5sb2NrX2Rv bW9ubHk7CisrCisrICAgICAgICByZXQgPSB4c21faW9tZW1fcGVybWlzc2lvbihYU01fUFJJViwg ZCwgbWZuLCBtZm4gKyBucl9tZm5zIC0gMSwgYWxsb3cpOworKyAgICAgICAgaWYgKCByZXQgKQor KyAgICAgICAgICAgIGdvdG8gZG9tY3RsX291dF91bmxvY2tfZG9tb25seTsKKysKKysgICAgICAg IGlvY2Fwc19kb3VibGVfbG9jayhkLCB0cnVlKTsKKysKKysgICAgICAgIGlmICggIWlvbWVtX2Fj Y2Vzc19wZXJtaXR0ZWQoY3VycmVudC0+ZG9tYWluLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtZm4sIG1mbiArIG5yX21mbnMgLSAxKSApCisrICAgICAgICAgICAgcmV0 ID0gLUVQRVJNOworKyAgICAgICAgZWxzZSBpZiAoIGFsbG93ICkKKysgICAgICAgICAgICByZXQg PSBpb21lbV9wZXJtaXRfYWNjZXNzKGQsIG1mbiwgbWZuICsgbnJfbWZucyAtIDEpOworKyAgICAg ICAgZWxzZQorKyAgICAgICAgICAgIHJldCA9IGlvbWVtX2RlbnlfYWNjZXNzKGQsIG1mbiwgbWZu ICsgbnJfbWZucyAtIDEpOworKworKyAgICAgICAgaW9jYXBzX2RvdWJsZV91bmxvY2soZCwgdHJ1 ZSk7CisrICAgICAgICBnb3RvIGRvbWN0bF9vdXRfdW5sb2NrX2RvbW9ubHk7CisrICAgIH0KKysK KyAgICAgY2FzZSBYRU5fRE9NQ1RMX21lbW9yeV9tYXBwaW5nOgorICAgICB7CisgICAgICAgICB1 bnNpZ25lZCBsb25nIGdmbiA9IG9wLT51Lm1lbW9yeV9tYXBwaW5nLmZpcnN0X2dmbjsKK0BAIC00 MzYsNiArNDY0LDcgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQor ICAgICAgICAgZ290byBkb21jdGxfb3V0X3VubG9ja19kb21vbmx5OworICAgICB9CisgCisrICAg IGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfcGVybWlzc2lvbjoKKyAgICAgY2FzZSBYRU5fRE9NQ1RM X2lvcG9ydF9tYXBwaW5nOgorICAgICBjYXNlIFhFTl9ET01DVExfYmluZF9wdF9pcnE6CisgICAg IGNhc2UgWEVOX0RPTUNUTF91bmJpbmRfcHRfaXJxOgorQEAgLTc3NywzMSArODA2LDYgQEAgbG9u ZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQorICAgICB9CisgI2VuZGlmCisg CistICAgIGNhc2UgWEVOX0RPTUNUTF9pb21lbV9wZXJtaXNzaW9uOgorLSAgICB7CistICAgICAg ICB1bnNpZ25lZCBsb25nIG1mbiA9IG9wLT51LmlvbWVtX3Blcm1pc3Npb24uZmlyc3RfbWZuOwor LSAgICAgICAgdW5zaWduZWQgbG9uZyBucl9tZm5zID0gb3AtPnUuaW9tZW1fcGVybWlzc2lvbi5u cl9tZm5zOworLSAgICAgICAgaW50IGFsbG93ID0gb3AtPnUuaW9tZW1fcGVybWlzc2lvbi5hbGxv d19hY2Nlc3M7CistCistICAgICAgICByZXQgPSAtRUlOVkFMOworLSAgICAgICAgaWYgKCAobWZu ICsgbnJfbWZucyAtIDEpIDwgbWZuICkgLyogd3JhcD8gKi8KKy0gICAgICAgICAgICBicmVhazsK Ky0KKy0gICAgICAgIGlvY2Fwc19kb3VibGVfbG9jayhkLCB0cnVlKTsKKy0KKy0gICAgICAgIGlm ICggIWlvbWVtX2FjY2Vzc19wZXJtaXR0ZWQoY3VycmVudC0+ZG9tYWluLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBtZm4sIG1mbiArIG5yX21mbnMgLSAxKSB8fAorLSAg ICAgICAgICAgICB4c21faW9tZW1fcGVybWlzc2lvbihYU01fSE9PSywgZCwgbWZuLCBtZm4gKyBu cl9tZm5zIC0gMSwgYWxsb3cpICkKKy0gICAgICAgICAgICByZXQgPSAtRVBFUk07CistICAgICAg ICBlbHNlIGlmICggYWxsb3cgKQorLSAgICAgICAgICAgIHJldCA9IGlvbWVtX3Blcm1pdF9hY2Nl c3MoZCwgbWZuLCBtZm4gKyBucl9tZm5zIC0gMSk7CistICAgICAgICBlbHNlCistICAgICAgICAg ICAgcmV0ID0gaW9tZW1fZGVueV9hY2Nlc3MoZCwgbWZuLCBtZm4gKyBucl9tZm5zIC0gMSk7Cist CistICAgICAgICBpb2NhcHNfZG91YmxlX3VubG9jayhkLCB0cnVlKTsKKy0gICAgICAgIGJyZWFr OworLSAgICB9CistCisgICAgIGNhc2UgWEVOX0RPTUNUTF9zZXR0aW1lb2Zmc2V0OgorICAgICAg ICAgZG9tYWluX3NldF90aW1lX29mZnNldChkLCBvcC0+dS5zZXR0aW1lb2Zmc2V0LnRpbWVfb2Zm c2V0X3NlY29uZHMpOworICAgICAgICAgYnJlYWs7CistLS0gYS94ZW4vaW5jbHVkZS94c20vZHVt bXkuaAorKysrIGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKK0BAIC0xNzAsNyArMTcwLDkgQEAg c3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV9kb21jdAorICAgICBjYXNlIFhFTl9E T01DVExfYmluZF9wdF9pcnE6CisgICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRkb21haW5pbmZvOgor ICAgICBjYXNlIFhFTl9ET01DVExfZ2V0X2RvbWFpbl9zdGF0ZToKKysgICAgY2FzZSBYRU5fRE9N Q1RMX2lvbWVtX3Blcm1pc3Npb246CisgICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfbWFwcGlu ZzoKKysgICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9wZXJtaXNzaW9uOgorICAgICBjYXNlIFhF Tl9ET01DVExfbWVtb3J5X21hcHBpbmc6CisgICAgIGNhc2UgWEVOX0RPTUNUTF91bmJpbmRfcHRf aXJxOgorICAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CitAQCAtNTY3LDcgKzU2OSw3IEBA IHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21faXJxX3AKKyBzdGF0aWMgWFNNX0lO TElORSBpbnQgY2ZfY2hlY2sgeHNtX2lvbWVtX3Blcm1pc3Npb24oCisgICAgIFhTTV9ERUZBVUxU X0FSRyBzdHJ1Y3QgZG9tYWluICpkLCB1aW50NjRfdCBzLCB1aW50NjRfdCBlLCB1aW50OF90IGFs bG93KQorIHsKKy0gICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0hPT0spOworKyAgICBYU01fQVNT RVJUX0FDVElPTihYU01fUFJJVik7CisgICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0 aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOworIH0KKyAKK0BAIC03NjMsNyArNzY1LDcgQEAgc3Rh dGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV9wcml2XworIHN0YXRpYyBYU01fSU5MSU5F IGludCBjZl9jaGVjayB4c21faW9wb3J0X3Blcm1pc3Npb24oCisgICAgIFhTTV9ERUZBVUxUX0FS RyBzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBzLCB1aW50MzJfdCBlLCB1aW50OF90IGFsbG93 KQorIHsKKy0gICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0hPT0spOworKyAgICBYU01fQVNTRVJU X0FDVElPTihYU01fUFJJVik7CisgICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9u LCBjdXJyZW50LT5kb21haW4sIGQpOworIH0KKyAKKy0tLSBhL3hlbi94c20vZmxhc2svaG9va3Mu YworKysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCitAQCAtNjg2LDcgKzY4Niw5IEBAIHN0YXRp YyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdAorICAgICBjYXNlIFhFTl9ET01DVExf YmluZF9wdF9pcnE6CisgICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRkb21haW5pbmZvOgorICAgICBj YXNlIFhFTl9ET01DVExfZ2V0X2RvbWFpbl9zdGF0ZToKKysgICAgY2FzZSBYRU5fRE9NQ1RMX2lv bWVtX3Blcm1pc3Npb246CisgICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfbWFwcGluZzoKKysg ICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9wZXJtaXNzaW9uOgorICAgICBjYXNlIFhFTl9ET01D VExfbWVtb3J5X21hcHBpbmc6CisgICAgIGNhc2UgWEVOX0RPTUNUTF91bmJpbmRfcHRfaXJxOgor ICAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CitAQCAtNjk1LDE0ICs2OTcsMTIgQEAgc3Rh dGljIGludCBjZl9jaGVjayBmbGFza19kb21jdGwoc3RydWN0CisgICAgIC8qIFRoZXNlIGhhdmUg aW5kaXZpZHVhbCBYU00gaG9va3MgKGNvbW1vbi9kb21jdGwuYykgKi8KKyAgICAgY2FzZSBYRU5f RE9NQ1RMX3NjaGVkdWxlcl9vcDoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2lycV9wZXJtaXNzaW9u OgorLSAgICBjYXNlIFhFTl9ET01DVExfaW9tZW1fcGVybWlzc2lvbjoKKyAgICAgY2FzZSBYRU5f RE9NQ1RMX3NldF90YXJnZXQ6CisgICAgIGNhc2UgWEVOX0RPTUNUTF92bV9ldmVudF9vcDoKKyAK KyAjaWZkZWYgQ09ORklHX1g4NgorICAgICAvKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhv b2tzIChhcmNoL3g4Ni9kb21jdGwuYykgKi8KKyAgICAgY2FzZSBYRU5fRE9NQ1RMX3NoYWRvd19v cDoKKy0gICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9wZXJtaXNzaW9uOgorICAgICBjYXNlIFhF Tl9ET01DVExfZ3NpX3Blcm1pc3Npb246CisgI2VuZGlmCisgI2lmZGVmIENPTkZJR19IQVNfUEFT U1RIUk9VR0gKCmRpZmYgLS1naXQgYS94c2E0OTItNC4yMS0xMy5wYXRjaCBiL3hzYTQ5Mi00LjIx LTEzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxY2UxYWUKLS0t IC9kZXYvbnVsbAorKysgYi94c2E0OTItNC4yMS0xMy5wYXRjaApAQCAtMCwwICsxLDE2MyBAQAor RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgorU3ViamVjdDogZG9tY3RsOiBo YW5kbGUgWEVOX0RPTUNUTF97aXJxLGdzaX1fcGVybWlzc2lvbiB3aXRob3V0IGFjcXVpcmluZyBk b21jdGwgbG9jaworCitXaXRoIGRlZGljYXRlZCBsb2NraW5nIGFkZGVkLCB0aGUgZG9tY3RsIGxv Y2sgaXNuJ3QgcmVxdWlyZWQgaGVyZSBhbnltb3JlLgorQXMgdGhlIEdTSSBoYW5kbGluZyBpcyBp biBhcmNoLXNwZWNpZmljIGNvZGUgKHg4NiBvbmx5KSwgbm8gY29kZSBpcyBiZWluZworbW92ZWQg dGhlcmU7IHRoZSAybmQgaW52b2NhdGlvbiBvZiBhcmNoX2RvX2RvbWN0bCgpIGlzIHJlLXVzZWQu IE1vdmUgdGhlCityZS1wdXJwb3NlZCAoWFNNX0hPT0sgLT4gWFNNX1BSSVYsIGFzIHhzbV9kb21j dGwoKSBpcyBub3cgYnlwYXNzZWQpCitkZWRpY2F0ZWQgWFNNIGNoZWNrcyBhcyBlYXJseSBhcyBw b3NzaWJsZS4KKworVGhpcyBpcyBwYXJ0IG9mIFhTQS00OTIuCisKK1NpZ25lZC1vZmYtYnk6IEph biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KK0Fja2VkLWJ5OiBEYW5pZWwgUC4gU21pdGgg PGRwc21pdGhAYXBlcnR1c3NvbHV0aW9ucy5jb20+CitSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1v bm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CisKKy0tLSBhL3hlbi9hcmNoL3g4Ni9kb21jdGwu YworKysrIGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCitAQCAtMjcyLDEwICsyNzIsMTMgQEAgbG9u ZyBhcmNoX2RvX2RvbWN0bCgKKyAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgIH0KKyAKKysg ICAgICAgIHJldCA9IHhzbV9pcnFfcGVybWlzc2lvbihYU01fUFJJViwgZCwgaXJxLCBmbGFncyk7 CisrICAgICAgICBpZiAoIHJldCApCisrICAgICAgICAgICAgYnJlYWs7CisrCisgICAgICAgICBp b2NhcHNfZG91YmxlX2xvY2soZCwgdHJ1ZSk7CisgCistICAgICAgICBpZiAoICFpcnFfYWNjZXNz X3Blcm1pdHRlZChjdXJyZCwgaXJxKSB8fAorLSAgICAgICAgICAgICB4c21faXJxX3Blcm1pc3Np b24oWFNNX0hPT0ssIGQsIGlycSwgZmxhZ3MpICkKKysgICAgICAgIGlmICggIWlycV9hY2Nlc3Nf cGVybWl0dGVkKGN1cnJkLCBpcnEpICkKKyAgICAgICAgICAgICByZXQgPSAtRVBFUk07CisgICAg ICAgICBlbHNlIGlmICggZmxhZ3MgKQorICAgICAgICAgICAgIHJldCA9IGlycV9wZXJtaXRfYWNj ZXNzKGQsIGlycSk7CistLS0gYS94ZW4vY29tbW9uL2RvbWN0bC5jCisrKysgYi94ZW4vY29tbW9u L2RvbWN0bC5jCitAQCAtNDY0LDggKzQ2NCw0MSBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1Rf SEFORExFX1BBUkFNKHhlCisgICAgICAgICBnb3RvIGRvbWN0bF9vdXRfdW5sb2NrX2RvbW9ubHk7 CisgICAgIH0KKyAKKysjaWZkZWYgQ09ORklHX0hBU19QSVJRCisrICAgIGNhc2UgWEVOX0RPTUNU TF9pcnFfcGVybWlzc2lvbjoKKysgICAgeworKyAgICAgICAgdW5zaWduZWQgaW50IHBpcnEgPSBv cC0+dS5pcnFfcGVybWlzc2lvbi5waXJxLCBpcnE7CisrICAgICAgICBib29sIGFsbG93ID0gb3At PnUuaXJxX3Blcm1pc3Npb24uYWxsb3dfYWNjZXNzOworKworKyAgICAgICAgcmV0ID0gLUVJTlZB TDsKKysgICAgICAgIGlmICggcGlycSA+PSBjdXJyZW50LT5kb21haW4tPm5yX3BpcnFzICkKKysg ICAgICAgICAgICBnb3RvIGRvbWN0bF9vdXRfdW5sb2NrX2RvbW9ubHk7CisrCisrICAgICAgICBp cnEgPSBkb21haW5fcGlycV90b19pcnEoY3VycmVudC0+ZG9tYWluLCBwaXJxKTsKKysKKysgICAg ICAgIHJldCA9IC1FUEVSTTsKKysgICAgICAgIGlmICggaXJxICkKKysgICAgICAgICAgICByZXQg PSB4c21faXJxX3Blcm1pc3Npb24oWFNNX1BSSVYsIGQsIGlycSwgYWxsb3cpOworKyAgICAgICAg aWYgKCByZXQgKQorKyAgICAgICAgICAgIGdvdG8gZG9tY3RsX291dF91bmxvY2tfZG9tb25seTsK KysKKysgICAgICAgIGlvY2Fwc19kb3VibGVfbG9jayhkLCB0cnVlKTsKKysKKysgICAgICAgIGlm ICggIWlycV9hY2Nlc3NfcGVybWl0dGVkKGN1cnJlbnQtPmRvbWFpbiwgaXJxKSApCisrICAgICAg ICAgICAgcmV0ID0gLUVQRVJNOworKyAgICAgICAgZWxzZSBpZiAoIGFsbG93ICkKKysgICAgICAg ICAgICByZXQgPSBpcnFfcGVybWl0X2FjY2VzcyhkLCBpcnEpOworKyAgICAgICAgZWxzZQorKyAg ICAgICAgICAgIHJldCA9IGlycV9kZW55X2FjY2VzcyhkLCBpcnEpOworKworKyAgICAgICAgaW9j YXBzX2RvdWJsZV91bmxvY2soZCwgdHJ1ZSk7CisrICAgICAgICBnb3RvIGRvbWN0bF9vdXRfdW5s b2NrX2RvbW9ubHk7CisrICAgIH0KKysjZW5kaWYKKysKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2lv cG9ydF9wZXJtaXNzaW9uOgorICAgICBjYXNlIFhFTl9ET01DVExfaW9wb3J0X21hcHBpbmc6Cisr ICAgIGNhc2UgWEVOX0RPTUNUTF9nc2lfcGVybWlzc2lvbjoKKyAgICAgY2FzZSBYRU5fRE9NQ1RM X2JpbmRfcHRfaXJxOgorICAgICBjYXNlIFhFTl9ET01DVExfdW5iaW5kX3B0X2lycToKKyAgICAg ICAgIHJldCA9IGFyY2hfZG9fZG9tY3RsKG9wLCBkLCB1X2RvbWN0bCk7CitAQCAtNzc5LDMzICs4 MTIsNiBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCisgICAgICAg ICB9CisgICAgICAgICBicmVhazsKKyAKKy0jaWZkZWYgQ09ORklHX0hBU19QSVJRCistICAgIGNh c2UgWEVOX0RPTUNUTF9pcnFfcGVybWlzc2lvbjoKKy0gICAgeworLSAgICAgICAgdW5zaWduZWQg aW50IHBpcnEgPSBvcC0+dS5pcnFfcGVybWlzc2lvbi5waXJxLCBpcnE7CistICAgICAgICBpbnQg YWxsb3cgPSBvcC0+dS5pcnFfcGVybWlzc2lvbi5hbGxvd19hY2Nlc3M7CistCistICAgICAgICBp ZiAoIHBpcnEgPj0gY3VycmVudC0+ZG9tYWluLT5ucl9waXJxcyApCistICAgICAgICB7CistICAg ICAgICAgICAgcmV0ID0gLUVJTlZBTDsKKy0gICAgICAgICAgICBicmVhazsKKy0gICAgICAgIH0K Ky0KKy0gICAgICAgIGlvY2Fwc19kb3VibGVfbG9jayhkLCB0cnVlKTsKKy0KKy0gICAgICAgIGly cSA9IHBpcnFfYWNjZXNzX3Blcm1pdHRlZChjdXJyZW50LT5kb21haW4sIHBpcnEpOworLSAgICAg ICAgaWYgKCAhaXJxIHx8IHhzbV9pcnFfcGVybWlzc2lvbihYU01fSE9PSywgZCwgaXJxLCBhbGxv dykgKQorLSAgICAgICAgICAgIHJldCA9IC1FUEVSTTsKKy0gICAgICAgIGVsc2UgaWYgKCBhbGxv dyApCistICAgICAgICAgICAgcmV0ID0gaXJxX3Blcm1pdF9hY2Nlc3MoZCwgaXJxKTsKKy0gICAg ICAgIGVsc2UKKy0gICAgICAgICAgICByZXQgPSBpcnFfZGVueV9hY2Nlc3MoZCwgaXJxKTsKKy0K Ky0gICAgICAgIGlvY2Fwc19kb3VibGVfdW5sb2NrKGQsIHRydWUpOworLSAgICAgICAgYnJlYWs7 CistICAgIH0KKy0jZW5kaWYKKy0KKyAgICAgY2FzZSBYRU5fRE9NQ1RMX3NldHRpbWVvZmZzZXQ6 CisgICAgICAgICBkb21haW5fc2V0X3RpbWVfb2Zmc2V0KGQsIG9wLT51LnNldHRpbWVvZmZzZXQu dGltZV9vZmZzZXRfc2Vjb25kcyk7CisgICAgICAgICBicmVhazsKKy0tLSBhL3hlbi9pbmNsdWRl L3hzbS9kdW1teS5oCisrKysgYi94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAorQEAgLTE3MCw5ICsx NzAsMTEgQEAgc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV9kb21jdAorICAgICBj YXNlIFhFTl9ET01DVExfYmluZF9wdF9pcnE6CisgICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRkb21h aW5pbmZvOgorICAgICBjYXNlIFhFTl9ET01DVExfZ2V0X2RvbWFpbl9zdGF0ZToKKysgICAgY2Fz ZSBYRU5fRE9NQ1RMX2dzaV9wZXJtaXNzaW9uOgorICAgICBjYXNlIFhFTl9ET01DVExfaW9tZW1f cGVybWlzc2lvbjoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9tYXBwaW5nOgorICAgICBj YXNlIFhFTl9ET01DVExfaW9wb3J0X3Blcm1pc3Npb246CisrICAgIGNhc2UgWEVOX0RPTUNUTF9p cnFfcGVybWlzc2lvbjoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX21lbW9yeV9tYXBwaW5nOgorICAg ICBjYXNlIFhFTl9ET01DVExfdW5iaW5kX3B0X2lycToKKyAgICAgICAgIEFTU0VSVF9VTlJFQUNI QUJMRSgpOworQEAgLTU2Miw3ICs1NjQsNyBAQCBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hl Y2sgeHNtX3VubWFwCisgc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV9pcnFfcGVy bWlzc2lvbigKKyAgICAgWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQsIGludCBwaXJx LCB1aW50OF90IGFsbG93KQorIHsKKy0gICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0hPT0spOwor KyAgICBYU01fQVNTRVJUX0FDVElPTihYU01fUFJJVik7CisgICAgIHJldHVybiB4c21fZGVmYXVs dF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOworIH0KKyAKKy0tLSBhL3hlbi94 c20vZmxhc2svaG9va3MuYworKysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCitAQCAtNjg2LDkg KzY4NiwxMSBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNrX2RvbWN0bChzdHJ1Y3QKKyAgICAg Y2FzZSBYRU5fRE9NQ1RMX2JpbmRfcHRfaXJxOgorICAgICBjYXNlIFhFTl9ET01DVExfZ2V0ZG9t YWluaW5mbzoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2dldF9kb21haW5fc3RhdGU6CisrICAgIGNh c2UgWEVOX0RPTUNUTF9nc2lfcGVybWlzc2lvbjoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2lvbWVt X3Blcm1pc3Npb246CisgICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfbWFwcGluZzoKKyAgICAg Y2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9wZXJtaXNzaW9uOgorKyAgICBjYXNlIFhFTl9ET01DVExf aXJxX3Blcm1pc3Npb246CisgICAgIGNhc2UgWEVOX0RPTUNUTF9tZW1vcnlfbWFwcGluZzoKKyAg ICAgY2FzZSBYRU5fRE9NQ1RMX3VuYmluZF9wdF9pcnE6CisgICAgICAgICBBU1NFUlRfVU5SRUFD SEFCTEUoKTsKK0BAIC02OTYsMTQgKzY5OCwxMiBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNr X2RvbWN0bChzdHJ1Y3QKKyAKKyAgICAgLyogVGhlc2UgaGF2ZSBpbmRpdmlkdWFsIFhTTSBob29r cyAoY29tbW9uL2RvbWN0bC5jKSAqLworICAgICBjYXNlIFhFTl9ET01DVExfc2NoZWR1bGVyX29w OgorLSAgICBjYXNlIFhFTl9ET01DVExfaXJxX3Blcm1pc3Npb246CisgICAgIGNhc2UgWEVOX0RP TUNUTF9zZXRfdGFyZ2V0OgorICAgICBjYXNlIFhFTl9ET01DVExfdm1fZXZlbnRfb3A6CisgCisg I2lmZGVmIENPTkZJR19YODYKKyAgICAgLyogVGhlc2UgaGF2ZSBpbmRpdmlkdWFsIFhTTSBob29r cyAoYXJjaC94ODYvZG9tY3RsLmMpICovCisgICAgIGNhc2UgWEVOX0RPTUNUTF9zaGFkb3dfb3A6 CistICAgIGNhc2UgWEVOX0RPTUNUTF9nc2lfcGVybWlzc2lvbjoKKyAjZW5kaWYKKyAjaWZkZWYg Q09ORklHX0hBU19QQVNTVEhST1VHSAorICAgICAvKgoKZGlmZiAtLWdpdCBhL3hzYTQ5Mi00LjIx LTE0LnBhdGNoIGIveHNhNDkyLTQuMjEtMTQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMmIxMzM3NwotLS0gL2Rldi9udWxsCisrKyBiL3hzYTQ5Mi00LjIxLTE0LnBh dGNoCkBAIC0wLDAgKzEsMTc5IEBACitGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5j b20+CitTdWJqZWN0OiBkb21jdGwvWFNNOiBkcm9wIHZtX2V2ZW50X2NvbnRyb2wgaG9vaworCitJ bnRlZ3JhdGUgdGhlIGNoZWNraW5nIHdpdGggeHNtX2RvbWN0bCgpLiBDYXJlIG5lZWRzIHRvIGJl IHRha2VuIHdpdGggdGhlCitHRVRfVkVSU0lPTiBzdWItb3AsIHdoaWNoIG1heSBiZSBpbnZva2Vk IHdpdGggRE9NSURfSU5WQUxJRCwgYW5kIHdoaWNoIGhhcworYmVlbiAoYW5kIGNvbnRpbnVlcyB0 byBiZSkgYnlwYXNzaW5nIFhTTSBjaGVja2luZy4KKworU2luY2UgdGhlIGxhdHRlciB0d28gcGFy YW1ldGVycyB3ZXJlIHVudXNlZCwgbW9uaXRvcl9kb21jdGwoKSBpbnZva2luZyB0aGUKK2hvb2sg d2FzIGFjdHVhbGx5IHJlZHVuZGFudCB3aXRoIHRoZSBlYXJsaWVyIHhzbV9kb21jdGwoKSAoYXMg Y2FuIGJlIHNlZW4KK25pY2VseSBmcm9tIHRoZSBodW5rcyBjaGFuZ2luZyB4c20vZmxhc2svaG9v a3MuYykuCisKK0FzIGEgcG9zaXRpdmUgc2lkZSBlZmZlY3QsIHBlcm1pc3Npb25zIGFyZSB0aGVu IGNoZWNrZWQgYXQgdGhlIHNhbWUgZWFybHkKK3BvaW50IHdpdGggYW5kIHdpdGhvdXQgRmxhc2su CisKK1doaWxlIGZvbGRpbmcgWEVOX0RPTUNUTF9tb25pdG9yX29wIGFuZCBYRU5fRE9NQ1RMX3Zt X2V2ZW50X29wIGluCitmbGFza19kb21jdGwoKSwgYWxzbyBmb2xkIGluIFhFTl9ET01DVExfc2V0 X2FjY2Vzc19yZXF1aXJlZC4KKworVGhpcyBpcyBwYXJ0IG9mIFhTQS00OTIuCisKK1NpZ25lZC1v ZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KK0Fja2VkLWJ5OiBEYW5pZWwg UC4gU21pdGggPGRwc21pdGhAYXBlcnR1c3NvbHV0aW9ucy5jb20+CitSZXZpZXdlZC1ieTogUm9n ZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CisKKy0tLSBhL3hlbi9jb21tb24v ZG9tY3RsLmMKKysrKyBiL3hlbi9jb21tb24vZG9tY3RsLmMKK0BAIC00OTYsNiArNDk2LDIzIEBA IGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGUKKyAgICAgfQorICNlbmRp ZgorIAorKyAgICBjYXNlIFhFTl9ET01DVExfdm1fZXZlbnRfb3A6CisrICAgICAgICBpZiAoIG9w LT51LnZtX2V2ZW50X29wLm9wID09IFhFTl9WTV9FVkVOVF9HRVRfVkVSU0lPTiApCisrICAgICAg ICB7CisrICAgICAgICAgICAgLyogTm8gWFNNIGNoZWNrIChhbmQgcG90ZW50aWFsbHkgZCA9PSBO VUxMKSBoZXJlLiAqLworKyAgICAgICAgICAgIHJldCA9IHZtX2V2ZW50X2RvbWN0bChkLCAmb3At PnUudm1fZXZlbnRfb3ApOworKyAgICAgICAgICAgIGlmICggIXJldCApCisrICAgICAgICAgICAg ICAgIGNvcHliYWNrID0gdHJ1ZTsKKysgICAgICAgICAgICBnb3RvIGRvbWN0bF9vdXRfdW5sb2Nr X2RvbW9ubHk7CisrICAgICAgICB9CisrICAgICAgICBpZiAoICFkICkKKysgICAgICAgIHsKKysg ICAgICAgICAgICByZXQgPSAtRVNSQ0g7CisrICAgICAgICAgICAgZ290byBkb21jdGxfb3V0X3Vu bG9ja19kb21vbmx5OworKyAgICAgICAgfQorKyAgICAgICAgLyogT3RoZXIgc3ViLW9wcyBoYW5k bGVkIGZ1cnRoZXIgZG93bi4gKi8KKysgICAgICAgIGJyZWFrOworKworICAgICBjYXNlIFhFTl9E T01DVExfaW9wb3J0X3Blcm1pc3Npb246CisgICAgIGNhc2UgWEVOX0RPTUNUTF9pb3BvcnRfbWFw cGluZzoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2dzaV9wZXJtaXNzaW9uOgorLS0tIGEveGVuL2Nv bW1vbi9tb25pdG9yLmMKKysrKyBiL3hlbi9jb21tb24vbW9uaXRvci5jCitAQCAtMzAsMTYgKzMw LDExIEBACisgCisgaW50IG1vbml0b3JfZG9tY3RsKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB4 ZW5fZG9tY3RsX21vbml0b3Jfb3AgKm1vcCkKKyB7CistICAgIGludCByYzsKKyAgICAgYm9vbCBy ZXF1ZXN0ZWRfc3RhdHVzID0gZmFsc2U7CisgCisgICAgIGlmICggdW5saWtlbHkoY3VycmVudC0+ ZG9tYWluID09IGQpICkgLyogbm8gZG9tYWluX3BhdXNlKCkgKi8KKyAgICAgICAgIHJldHVybiAt RVBFUk07CisgCistICAgIHJjID0geHNtX3ZtX2V2ZW50X2NvbnRyb2woWFNNX1BSSVYsIGQsIG1v cC0+b3AsIG1vcC0+ZXZlbnQpOworLSAgICBpZiAoIHVubGlrZWx5KHJjKSApCistICAgICAgICBy ZXR1cm4gcmM7CistCisgICAgIHN3aXRjaCAoIG1vcC0+b3AgKQorICAgICB7CisgICAgIGNhc2Ug WEVOX0RPTUNUTF9NT05JVE9SX09QX0VOQUJMRToKKy0tLSBhL3hlbi9jb21tb24vdm1fZXZlbnQu YworKysrIGIveGVuL2NvbW1vbi92bV9ldmVudC5jCitAQCAtNjAzLDExICs2MDMsMTAgQEAgaW50 IHZtX2V2ZW50X2RvbWN0bChzdHJ1Y3QgZG9tYWluICpkLCBzdAorIAorICAgICAvKiBBbGwgb3Ro ZXIgc3Vib3BzIG5lZWQgdG8gdGFyZ2V0IGEgcmVhbCBkb21haW4uICovCisgICAgIGlmICggdW5s aWtlbHkoZCA9PSBOVUxMKSApCistICAgICAgICByZXR1cm4gLUVTUkNIOworLQorLSAgICByYyA9 IHhzbV92bV9ldmVudF9jb250cm9sKFhTTV9QUklWLCBkLCB2ZWMtPm1vZGUsIHZlYy0+b3ApOwor LSAgICBpZiAoIHJjICkKKy0gICAgICAgIHJldHVybiByYzsKKysgICAgeworKyAgICAgICAgQVNT RVJUX1VOUkVBQ0hBQkxFKCk7CisrICAgICAgICByZXR1cm4gLUVJTFNFUTsKKysgICAgfQorIAor ICAgICBpZiAoIHVubGlrZWx5KGQgPT0gY3VycmVudC0+ZG9tYWluKSApIC8qIG5vIGRvbWFpbl9w YXVzZSgpICovCisgICAgIHsKKy0tLSBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCisrKysgYi94 ZW4vaW5jbHVkZS94c20vZHVtbXkuaAorQEAgLTY1MiwxMyArNjUyLDYgQEAgc3RhdGljIFhTTV9J TkxJTkUgaW50IGNmX2NoZWNrIHhzbV9odm1fYQorICAgICB9CisgfQorIAorLXN0YXRpYyBYU01f SU5MSU5FIGludCBjZl9jaGVjayB4c21fdm1fZXZlbnRfY29udHJvbCgKKy0gICAgWFNNX0RFRkFV TFRfQVJHIHN0cnVjdCBkb21haW4gKmQsIGludCBtb2RlLCBpbnQgb3ApCisteworLSAgICBYU01f QVNTRVJUX0FDVElPTihYU01fUFJJVik7CistICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24o YWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOworLX0KKy0KKyAjaWZkZWYgQ09ORklHX1ZNX0VW RU5UCisgc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV9tZW1fYWNjZXNzKFhTTV9E RUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkKQorIHsKKy0tLSBhL3hlbi9pbmNsdWRlL3hzbS94 c20uaAorKysrIGIveGVuL2luY2x1ZGUveHNtL3hzbS5oCitAQCAtMTU3LDggKzE1Nyw2IEBAIHN0 cnVjdCB4c21fb3BzIHsKKyAgICAgaW50ICgqaHZtX2FsdHAybWh2bV9vcCkoc3RydWN0IGRvbWFp biAqZCwgdWludDY0X3QgbW9kZSwgdWludDMyX3Qgb3ApOworICAgICBpbnQgKCpnZXRfdm51bWFp bmZvKShzdHJ1Y3QgZG9tYWluICpkKTsKKyAKKy0gICAgaW50ICgqdm1fZXZlbnRfY29udHJvbCko c3RydWN0IGRvbWFpbiAqZCwgaW50IG1vZGUsIGludCBvcCk7CistCisgI2lmZGVmIENPTkZJR19W TV9FVkVOVAorICAgICBpbnQgKCptZW1fYWNjZXNzKShzdHJ1Y3QgZG9tYWluICpkKTsKKyAjZW5k aWYKK0BAIC02NTcsMTIgKzY1NSw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IHhzbV9nZXRfdm51bWFp bmZvKHhzbV8KKyAgICAgcmV0dXJuIGFsdGVybmF0aXZlX2NhbGwoeHNtX29wcy5nZXRfdm51bWFp bmZvLCBkKTsKKyB9CisgCistc3RhdGljIGlubGluZSBpbnQgeHNtX3ZtX2V2ZW50X2NvbnRyb2wo CistICAgIHhzbV9kZWZhdWx0X3QgZGVmLCBzdHJ1Y3QgZG9tYWluICpkLCBpbnQgbW9kZSwgaW50 IG9wKQorLXsKKy0gICAgcmV0dXJuIGFsdGVybmF0aXZlX2NhbGwoeHNtX29wcy52bV9ldmVudF9j b250cm9sLCBkLCBtb2RlLCBvcCk7CistfQorLQorICNpZmRlZiBDT05GSUdfVk1fRVZFTlQKKyBz dGF0aWMgaW5saW5lIGludCB4c21fbWVtX2FjY2Vzcyh4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0 IGRvbWFpbiAqZCkKKyB7CistLS0gYS94ZW4veHNtL2R1bW15LmMKKysrKyBiL3hlbi94c20vZHVt bXkuYworQEAgLTExNiw4ICsxMTYsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHhzbV9vcHMgX19p bml0Y29uc3RfCisgICAgIC5yZW1vdmVfZnJvbV9waHlzbWFwICAgICAgICAgICA9IHhzbV9yZW1v dmVfZnJvbV9waHlzbWFwLAorICAgICAubWFwX2dtZm5fZm9yZWlnbiAgICAgICAgICAgICAgPSB4 c21fbWFwX2dtZm5fZm9yZWlnbiwKKyAKKy0gICAgLnZtX2V2ZW50X2NvbnRyb2wgICAgICAgICAg ICAgID0geHNtX3ZtX2V2ZW50X2NvbnRyb2wsCistCisgI2lmZGVmIENPTkZJR19WTV9FVkVOVAor ICAgICAubWVtX2FjY2VzcyAgICAgICAgICAgICAgICAgICAgPSB4c21fbWVtX2FjY2VzcywKKyAj ZW5kaWYKKy0tLSBhL3hlbi94c20vZmxhc2svaG9va3MuYworKysrIGIveGVuL3hzbS9mbGFzay9o b29rcy5jCitAQCAtNjk5LDcgKzY5OSw2IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9t Y3RsKHN0cnVjdAorICAgICAvKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzIChjb21t b24vZG9tY3RsLmMpICovCisgICAgIGNhc2UgWEVOX0RPTUNUTF9zY2hlZHVsZXJfb3A6CisgICAg IGNhc2UgWEVOX0RPTUNUTF9zZXRfdGFyZ2V0OgorLSAgICBjYXNlIFhFTl9ET01DVExfdm1fZXZl bnRfb3A6CisgCisgI2lmZGVmIENPTkZJR19YODYKKyAgICAgLyogVGhlc2UgaGF2ZSBpbmRpdmlk dWFsIFhTTSBob29rcyAoYXJjaC94ODYvZG9tY3RsLmMpICovCitAQCAtNzkzLDkgKzc5Miw4IEBA IHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdAorICAgICAgICAgcmV0dXJu IGN1cnJlbnRfaGFzX3Blcm0oZCwgU0VDQ0xBU1NfRE9NQUlOLCBET01BSU5fX1RSSUdHRVIpOwor IAorICAgICBjYXNlIFhFTl9ET01DVExfc2V0X2FjY2Vzc19yZXF1aXJlZDoKKy0gICAgICAgIHJl dHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0RPTUFJTjIsIERPTUFJTjJfX1ZNX0VW RU5UKTsKKy0KKyAgICAgY2FzZSBYRU5fRE9NQ1RMX21vbml0b3Jfb3A6CisrICAgIGNhc2UgWEVO X0RPTUNUTF92bV9ldmVudF9vcDoKKyAgICAgICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQs IFNFQ0NMQVNTX0RPTUFJTjIsIERPTUFJTjJfX1ZNX0VWRU5UKTsKKyAKKyAgICAgY2FzZSBYRU5f RE9NQ1RMX2RlYnVnX29wOgorQEAgLTEzNjgsMTEgKzEzNjYsNiBAQCBzdGF0aWMgaW50IGNmX2No ZWNrIGZsYXNrX2h2bV9hbHRwMm1odm1fCisgICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQs IFNFQ0NMQVNTX0hWTSwgSFZNX19BTFRQMk1IVk1fT1ApOworIH0KKyAKKy1zdGF0aWMgaW50IGNm X2NoZWNrIGZsYXNrX3ZtX2V2ZW50X2NvbnRyb2woc3RydWN0IGRvbWFpbiAqZCwgaW50IG1vZGUs IGludCBvcCkKKy17CistICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0RP TUFJTjIsIERPTUFJTjJfX1ZNX0VWRU5UKTsKKy19CistCisgI2lmZGVmIENPTkZJR19WTV9FVkVO VAorIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfbWVtX2FjY2VzcyhzdHJ1Y3QgZG9tYWluICpk KQorIHsKK0BAIC0xOTcxLDggKzE5NjQsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHhzbV9vcHMg X19pbml0Y29uc3RfCisgICAgIC5kb194c21fb3AgPSBkb19mbGFza19vcCwKKyAgICAgLmdldF92 bnVtYWluZm8gPSBmbGFza19nZXRfdm51bWFpbmZvLAorIAorLSAgICAudm1fZXZlbnRfY29udHJv bCA9IGZsYXNrX3ZtX2V2ZW50X2NvbnRyb2wsCistCisgI2lmZGVmIENPTkZJR19WTV9FVkVOVAor ICAgICAubWVtX2FjY2VzcyA9IGZsYXNrX21lbV9hY2Nlc3MsCisgI2VuZGlmCgpkaWZmIC0tZ2l0 IGEveHNhNDkyLTQuMjEtMTUucGF0Y2ggYi94c2E0OTItNC4yMS0xNS5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzg3ZjNiCi0tLSAvZGV2L251bGwKKysrIGIveHNh NDkyLTQuMjEtMTUucGF0Y2gKQEAgLTAsMCArMSwxMDggQEAKK0Zyb206IEphbiBCZXVsaWNoIDxq YmV1bGljaEBzdXNlLmNvbT4KK1N1YmplY3Q6IGRvbWN0bC9YU006IHBhc3MgZnVsbCBzdHJ1Y3Qg eGVuX2RvbWN0bCB0byB4c21fZG9tY3RsKCkKKworU3Vic2VxdWVudGx5IHNvbWUgc3ViLW9wcyB3 aWxsIHdhbnQgdG8gaW5zcGVjdCB0aGVpciBzdWItc3ViLW9wcy4gUGx1cwordGhpcyB3YXkgd2Ug ZG9uJ3QgbmVlZCB0byBwYXNzIFNTSURyZWYgc2VwYXJhdGVseSBhbnltb3JlIGZvcgorZG9tYWlu X2NyZWF0ZS4KKworVGhpcyBpcyBwYXJ0IG9mIFhTQS00OTIuCisKK1NpZ25lZC1vZmYtYnk6IEph biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KK0Fja2VkLWJ5OiBEYW5pZWwgUC4gU21pdGgg PGRwc21pdGhAYXBlcnR1c3NvbHV0aW9ucy5jb20+CisKKy0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9w YWdpbmcuYworKysrIGIveGVuL2FyY2gveDg2L21tL3BhZ2luZy5jCitAQCAtNzM1LDcgKzczNSw3 IEBAIGxvbmcgZG9fcGFnaW5nX2RvbWN0bF9jb250KAorICAgICBpZiAoIGQgPT0gTlVMTCApCisg ICAgICAgICByZXR1cm4gLUVTUkNIOworIAorLSAgICByZXQgPSB4c21fZG9tY3RsKFhTTV9PVEhF UiwgZCwgb3AuY21kLCAwIC8qIFNTSURyZWYgbm90IGFwcGxpY2FibGUgKi8pOworKyAgICByZXQg PSB4c21fZG9tY3RsKFhTTV9PVEhFUiwgZCwgJm9wKTsKKyAgICAgaWYgKCAhcmV0ICkKKyAgICAg eworICAgICAgICAgaWYgKCBkb21jdGxfbG9ja19hY3F1aXJlKCkgKQorLS0tIGEveGVuL2NvbW1v bi9kb21jdGwuYworKysrIGIveGVuL2NvbW1vbi9kb21jdGwuYworQEAgLTUyNiw5ICs1MjYsNyBA QCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlCisgICAgICAgICBicmVh azsKKyAgICAgfQorIAorLSAgICByZXQgPSB4c21fZG9tY3RsKFhTTV9PVEhFUiwgZCwgb3AtPmNt ZCwKKy0gICAgICAgICAgICAgICAgICAgICAvKiBTU0lEUmVmIG9ubHkgYXBwbGljYWJsZSBmb3Ig Y21kID09IGNyZWF0ZWRvbWFpbiAqLworLSAgICAgICAgICAgICAgICAgICAgIG9wLT51LmNyZWF0 ZWRvbWFpbi5zc2lkcmVmKTsKKysgICAgcmV0ID0geHNtX2RvbWN0bChYU01fT1RIRVIsIGQsIG9w KTsKKyAgICAgaWYgKCByZXQgKQorICAgICAgICAgZ290byBkb21jdGxfb3V0X3VubG9ja19kb21v bmx5OworIAorLS0tIGEveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKKysrKyBiL3hlbi9pbmNsdWRl L3hzbS9kdW1teS5oCitAQCAtMTYyLDEwICsxNjIsMTAgQEAgc3RhdGljIFhTTV9JTkxJTkUgaW50 IGNmX2NoZWNrIHhzbV9zZXRfdAorIH0KKyAKKyBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hl Y2sgeHNtX2RvbWN0bCgKKy0gICAgWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGludCBjbWQsIHVpbnQzMl90IHNzaWRyZWYpCisrICAgIFhTTV9ERUZBVUxUX0FSRyBz dHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgeGVuX2RvbWN0bCAqb3ApCisgeworICAgICBYU01fQVNT RVJUX0FDVElPTihYU01fT1RIRVIpOworLSAgICBzd2l0Y2ggKCBjbWQgKQorKyAgICBzd2l0Y2gg KCBvcC0+Y21kICkKKyAgICAgeworICAgICBjYXNlIFhFTl9ET01DVExfYmluZF9wdF9pcnE6Cisg ICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRkb21haW5pbmZvOgorLS0tIGEveGVuL2luY2x1ZGUveHNt L3hzbS5oCisrKysgYi94ZW4vaW5jbHVkZS94c20veHNtLmgKK0BAIC02MSw3ICs2MSw3IEBAIHN0 cnVjdCB4c21fb3BzIHsKKyAgICAgaW50ICgqc3lzY3RsX3NjaGVkdWxlcl9vcCkoaW50IG9wKTsK KyAjZW5kaWYKKyAgICAgaW50ICgqc2V0X3RhcmdldCkoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0 IGRvbWFpbiAqZSk7CistICAgIGludCAoKmRvbWN0bCkoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWdu ZWQgaW50IGNtZCwgdWludDMyX3Qgc3NpZHJlZik7CisrICAgIGludCAoKmRvbWN0bCkoc3RydWN0 IGRvbWFpbiAqZCwgc3RydWN0IHhlbl9kb21jdGwgKm9wKTsKKyAgICAgaW50ICgqc3lzY3RsKShp bnQgY21kKTsKKyAgICAgaW50ICgqcmVhZGNvbnNvbGUpKHVpbnQzMl90IGNsZWFyKTsKKyAKK0BA IC0yNjAsOSArMjYwLDkgQEAgc3RhdGljIGlubGluZSBpbnQgeHNtX3NldF90YXJnZXQoCisgfQor IAorIHN0YXRpYyBpbmxpbmUgaW50IHhzbV9kb21jdGwoeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVj dCBkb21haW4gKmQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg Y21kLCB1aW50MzJfdCBzc2lkcmVmKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHhlbl9kb21jdGwgKm9wKQorIHsKKy0gICAgcmV0dXJuIGFsdGVybmF0aXZlX2NhbGwoeHNt X29wcy5kb21jdGwsIGQsIGNtZCwgc3NpZHJlZik7CisrICAgIHJldHVybiBhbHRlcm5hdGl2ZV9j YWxsKHhzbV9vcHMuZG9tY3RsLCBkLCBvcCk7CisgfQorIAorIHN0YXRpYyBpbmxpbmUgaW50IHhz bV9zeXNjdGwoeHNtX2RlZmF1bHRfdCBkZWYsIGludCBjbWQpCistLS0gYS94ZW4veHNtL2ZsYXNr L2hvb2tzLmMKKysrKyBiL3hlbi94c20vZmxhc2svaG9va3MuYworQEAgLTY2NywxMCArNjY3LDkg QEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19zZXRfdGFyZ2V0KHN0cgorICAgICByZXR1cm4g cmM7CisgfQorIAorLXN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGludCBjbWQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDMyX3Qgc3NpZHJlZikKKytzdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNrX2RvbWN0bChz dHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgeGVuX2RvbWN0bCAqb3ApCisgeworLSAgICBzd2l0Y2gg KCBjbWQgKQorKyAgICBzd2l0Y2ggKCBvcC0+Y21kICkKKyAgICAgeworICAgICBjYXNlIFhFTl9E T01DVExfY3JlYXRlZG9tYWluOgorICAgICAgICAgLyoKK0BAIC02ODAsNyArNjc5LDggQEAgc3Rh dGljIGludCBjZl9jaGVjayBmbGFza19kb21jdGwoc3RydWN0CisgICAgICAgICAgKiBOb3RlIHRo YXQgZCBpcyBOVUxMIGJlY2F1c2Ugd2UgaGF2ZW4ndCBldmVuIGFsbG9jYXRlZCBtZW1vcnkgZm9y IGl0CisgICAgICAgICAgKiB0aGlzIGVhcmx5IGluIFhFTl9ET01DVExfY3JlYXRlZG9tYWluLgor ICAgICAgICAgICovCistICAgICAgICByZXR1cm4gYXZjX2N1cnJlbnRfaGFzX3Blcm0oc3NpZHJl ZiwgU0VDQ0xBU1NfRE9NQUlOLCBET01BSU5fX0NSRUFURSwgTlVMTCk7CisrICAgICAgICByZXR1 cm4gYXZjX2N1cnJlbnRfaGFzX3Blcm0ob3AtPnUuY3JlYXRlZG9tYWluLnNzaWRyZWYsIFNFQ0NM QVNTX0RPTUFJTiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBET01BSU5f X0NSRUFURSwgTlVMTCk7CisgCisgICAgIC8qIFRoZXNlIGhhdmUgaW5kaXZpZHVhbCBYU00gaG9v a3MgYW5kIGRvbid0IG1ha2UgaXQgaGVyZS4gKi8KKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2JpbmRf cHRfaXJxOgorQEAgLTg1NSw3ICs4NTUsNyBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNrX2Rv bWN0bChzdHJ1Y3QKKyAgICAgICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNT X0RPTUFJTjIsIERPTUFJTjJfX1NFVF9MTENfQ09MT1JTKTsKKyAKKyAgICAgZGVmYXVsdDoKKy0g ICAgICAgIHJldHVybiBhdmNfdW5rbm93bl9wZXJtaXNzaW9uKCJkb21jdGwiLCBjbWQpOworKyAg ICAgICAgcmV0dXJuIGF2Y191bmtub3duX3Blcm1pc3Npb24oImRvbWN0bCIsIG9wLT5jbWQpOwor ICAgICB9CisgfQorIAoKZGlmZiAtLWdpdCBhL3hzYTQ5Mi00LjIxLTE2LnBhdGNoIGIveHNhNDky LTQuMjEtMTYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNiODYx OQotLS0gL2Rldi9udWxsCisrKyBiL3hzYTQ5Mi00LjIxLTE2LnBhdGNoCkBAIC0wLDAgKzEsMTEy IEBACitGcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitTdWJqZWN0OiBkb21j dGwvWFNNOiBkcm9wIHNjaGVkdWxlcl9vcCBob29rCisKK0ludGVncmF0ZSB0aGUgY2hlY2tpbmcg d2l0aCB4c21fZG9tY3RsKCksIG5vdyB0aGF0IGl0IGhhcyB0aGUgZnVsbCBvcAorc3RydWN0IHBh c3NlZC4gQXMgYSBwb3NpdGl2ZSBzaWRlIGVmZmVjdCwgcGVybWlzc2lvbnMgYXJlIHRoZW4gY2hl Y2tlZCBhdAordGhlIHNhbWUgZWFybHkgcG9pbnQgd2l0aCBhbmQgd2l0aG91dCBGbGFzay4KKwor VGhpcyBpcyBwYXJ0IG9mIFhTQS00OTIuCisKK1NpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxq YmV1bGljaEBzdXNlLmNvbT4KK0Fja2VkLWJ5OiBEYW5pZWwgUC4gU21pdGggPGRwc21pdGhAYXBl cnR1c3NvbHV0aW9ucy5jb20+CitSZXZpZXdlZC1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1 c2UuY29tPgorCistLS0gYS94ZW4vY29tbW9uL3NjaGVkL2NvcmUuYworKysrIGIveGVuL2NvbW1v bi9zY2hlZC9jb3JlLmMKK0BAIC0yMDc0LDEwICsyMDc0LDYgQEAgbG9uZyBzY2hlZF9hZGp1c3Qo c3RydWN0IGRvbWFpbiAqZCwgc3RydQorIHsKKyAgICAgbG9uZyByZXQ7CisgCistICAgIHJldCA9 IHhzbV9kb21jdGxfc2NoZWR1bGVyX29wKFhTTV9IT09LLCBkLCBvcC0+Y21kKTsKKy0gICAgaWYg KCByZXQgKQorLSAgICAgICAgcmV0dXJuIHJldDsKKy0KKyAgICAgaWYgKCBvcC0+c2NoZWRfaWQg IT0gZG9tX3NjaGVkdWxlcihkKS0+c2NoZWRfaWQgKQorICAgICAgICAgcmV0dXJuIC1FSU5WQUw7 CisgCistLS0gYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAorKysrIGIveGVuL2luY2x1ZGUveHNt L2R1bW15LmgKK0BAIC0xNDEsMTMgKzE0MSw2IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9j aGVjayB4c21fZ2V0ZG8KKyAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1 cnJlbnQtPmRvbWFpbiwgZCk7CisgfQorIAorLXN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVj ayB4c21fZG9tY3RsX3NjaGVkdWxlcl9vcCgKKy0gICAgWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBk b21haW4gKmQsIGludCBjbWQpCisteworLSAgICBYU01fQVNTRVJUX0FDVElPTihYU01fSE9PSyk7 CistICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4s IGQpOworLX0KKy0KKyBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX3N5c2N0bF9z Y2hlZHVsZXJfb3AoWFNNX0RFRkFVTFRfQVJHIGludCBjbWQpCisgeworICAgICBYU01fQVNTRVJU X0FDVElPTihYU01fSE9PSyk7CistLS0gYS94ZW4vaW5jbHVkZS94c20veHNtLmgKKysrKyBiL3hl bi9pbmNsdWRlL3hzbS94c20uaAorQEAgLTU2LDcgKzU2LDYgQEAgc3RydWN0IHhzbV9vcHMgewor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfZ2V0ZG9t YWluaW5mbyAqaW5mbyk7CisgICAgIGludCAoKmRvbWFpbl9jcmVhdGUpKHN0cnVjdCBkb21haW4g KmQsIHVpbnQzMl90IHNzaWRyZWYpOworICAgICBpbnQgKCpnZXRkb21haW5pbmZvKShzdHJ1Y3Qg ZG9tYWluICpkKTsKKy0gICAgaW50ICgqZG9tY3RsX3NjaGVkdWxlcl9vcCkoc3RydWN0IGRvbWFp biAqZCwgaW50IG9wKTsKKyAjaWZkZWYgQ09ORklHX1NZU0NUTAorICAgICBpbnQgKCpzeXNjdGxf c2NoZWR1bGVyX29wKShpbnQgb3ApOworICNlbmRpZgorQEAgLTI0MCwxMiArMjM5LDYgQEAgc3Rh dGljIGlubGluZSBpbnQgeHNtX2dldF9kb21haW5fc3RhdGUoeAorICAgICByZXR1cm4gYWx0ZXJu YXRpdmVfY2FsbCh4c21fb3BzLmdldF9kb21haW5fc3RhdGUsIGQpOworIH0KKyAKKy1zdGF0aWMg aW5saW5lIGludCB4c21fZG9tY3RsX3NjaGVkdWxlcl9vcCgKKy0gICAgeHNtX2RlZmF1bHRfdCBk ZWYsIHN0cnVjdCBkb21haW4gKmQsIGludCBjbWQpCisteworLSAgICByZXR1cm4gYWx0ZXJuYXRp dmVfY2FsbCh4c21fb3BzLmRvbWN0bF9zY2hlZHVsZXJfb3AsIGQsIGNtZCk7CistfQorLQorICNp ZmRlZiBDT05GSUdfU1lTQ1RMCisgc3RhdGljIGlubGluZSBpbnQgeHNtX3N5c2N0bF9zY2hlZHVs ZXJfb3AoeHNtX2RlZmF1bHRfdCBkZWYsIGludCBjbWQpCisgeworLS0tIGEveGVuL3hzbS9kdW1t eS5jCisrKysgYi94ZW4veHNtL2R1bW15LmMKK0BAIC0xOCw3ICsxOCw2IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgeHNtX29wcyBfX2luaXRjb25zdF8KKyAgICAgLnNlY3VyaXR5X2RvbWFpbmluZm8g ICAgICAgICAgID0geHNtX3NlY3VyaXR5X2RvbWFpbmluZm8sCisgICAgIC5kb21haW5fY3JlYXRl ICAgICAgICAgICAgICAgICA9IHhzbV9kb21haW5fY3JlYXRlLAorICAgICAuZ2V0ZG9tYWluaW5m byAgICAgICAgICAgICAgICAgPSB4c21fZ2V0ZG9tYWluaW5mbywKKy0gICAgLmRvbWN0bF9zY2hl ZHVsZXJfb3AgICAgICAgICAgID0geHNtX2RvbWN0bF9zY2hlZHVsZXJfb3AsCisgI2lmZGVmIENP TkZJR19TWVNDVEwKKyAgICAgLnN5c2N0bF9zY2hlZHVsZXJfb3AgICAgICAgICAgID0geHNtX3N5 c2N0bF9zY2hlZHVsZXJfb3AsCisgI2VuZGlmCistLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMK KysrKyBiL3hlbi94c20vZmxhc2svaG9va3MuYworQEAgLTYwOSw3ICs2MDksNyBAQCBzdGF0aWMg aW50IGNmX2NoZWNrIGZsYXNrX2dldGRvbWFpbmluZm8oCisgICAgIHJldHVybiBjdXJyZW50X2hh c19wZXJtKGQsIFNFQ0NMQVNTX0RPTUFJTiwgRE9NQUlOX19HRVRET01BSU5JTkZPKTsKKyB9Cisg Cistc3RhdGljIGludCBjZl9jaGVjayBmbGFza19kb21jdGxfc2NoZWR1bGVyX29wKHN0cnVjdCBk b21haW4gKmQsIGludCBvcCkKKytzdGF0aWMgaW50IGZsYXNrX2RvbWN0bF9zY2hlZHVsZXJfb3Ao c3RydWN0IGRvbWFpbiAqZCwgaW50IG9wKQorIHsKKyAgICAgc3dpdGNoICggb3AgKQorICAgICB7 CitAQCAtNjk3LDcgKzY5Nyw2IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0 cnVjdAorICAgICAgICAgcmV0dXJuIC1FSUxTRVE7CisgCisgICAgIC8qIFRoZXNlIGhhdmUgaW5k aXZpZHVhbCBYU00gaG9va3MgKGNvbW1vbi9kb21jdGwuYykgKi8KKy0gICAgY2FzZSBYRU5fRE9N Q1RMX3NjaGVkdWxlcl9vcDoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX3NldF90YXJnZXQ6CisgCisg I2lmZGVmIENPTkZJR19YODYKK0BAIC03NDUsNiArNzQ0LDkgQEAgc3RhdGljIGludCBjZl9jaGVj ayBmbGFza19kb21jdGwoc3RydWN0CisgICAgIGNhc2UgWEVOX0RPTUNUTF9zZXRkb21haW5oYW5k bGU6CisgICAgICAgICByZXR1cm4gY3VycmVudF9oYXNfcGVybShkLCBTRUNDTEFTU19ET01BSU4s IERPTUFJTl9fU0VURE9NQUlOSEFORExFKTsKKyAKKysgICAgY2FzZSBYRU5fRE9NQ1RMX3NjaGVk dWxlcl9vcDoKKysgICAgICAgIHJldHVybiBmbGFza19kb21jdGxfc2NoZWR1bGVyX29wKGQsIG9w LT51LnNjaGVkdWxlcl9vcC5jbWQpOworKworICAgICBjYXNlIFhFTl9ET01DVExfc2V0X2V4dF92 Y3B1Y29udGV4dDoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX3NldF92Y3B1X21zcnM6CisgICAgIGNh c2UgWEVOX0RPTUNUTF9zZXR2Y3B1Y29udGV4dDoKK0BAIC0xODg0LDcgKzE4ODYsNiBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IHhzbV9vcHMgX19pbml0Y29uc3RfCisgICAgIC5zZWN1cml0eV9kb21h aW5pbmZvID0gZmxhc2tfc2VjdXJpdHlfZG9tYWluaW5mbywKKyAgICAgLmRvbWFpbl9jcmVhdGUg PSBmbGFza19kb21haW5fY3JlYXRlLAorICAgICAuZ2V0ZG9tYWluaW5mbyA9IGZsYXNrX2dldGRv bWFpbmluZm8sCistICAgIC5kb21jdGxfc2NoZWR1bGVyX29wID0gZmxhc2tfZG9tY3RsX3NjaGVk dWxlcl9vcCwKKyAjaWZkZWYgQ09ORklHX1NZU0NUTAorICAgICAuc3lzY3RsX3NjaGVkdWxlcl9v cCA9IGZsYXNrX3N5c2N0bF9zY2hlZHVsZXJfb3AsCisgI2VuZGlmCgpkaWZmIC0tZ2l0IGEveHNh NDkyLTQuMjEtMTcucGF0Y2ggYi94c2E0OTItNC4yMS0xNy5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi45OTU0MmRmCi0tLSAvZGV2L251bGwKKysrIGIveHNhNDkyLTQu MjEtMTcucGF0Y2gKQEAgLTAsMCArMSwxMjQgQEAKK0Zyb206IEphbiBCZXVsaWNoIDxqYmV1bGlj aEBzdXNlLmNvbT4KK1N1YmplY3Q6IGRvbWN0bC9YU006IGRyb3Agc2hhZG93X2NvbnRyb2xfb3Ag aG9vaworCitJbnRlZ3JhdGUgdGhlIGNoZWNraW5nIHdpdGggeHNtX2RvbWN0bCgpLCBub3cgdGhh dCBpdCBoYXMgdGhlIGZ1bGwgb3AKK3N0cnVjdCBwYXNzZWQuIEFzIGEgcG9zaXRpdmUgc2lkZSBl ZmZlY3QsIHBlcm1pc3Npb25zIGFyZSB0aGVuIGNoZWNrZWQgYXQKK3RoZSBzYW1lIGVhcmx5IHBv aW50IHdpdGggYW5kIHdpdGhvdXQgRmxhc2suCisKK1RoaXMgaXMgcGFydCBvZiBYU0EtNDkyLgor CitTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CitBY2tlZC1i eTogRGFuaWVsIFAuIFNtaXRoIDxkcHNtaXRoQGFwZXJ0dXNzb2x1dGlvbnMuY29tPgorCistLS0g YS94ZW4vYXJjaC94ODYvbW0vcGFnaW5nLmMKKysrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wYWdpbmcu YworQEAgLTY3NywxMCArNjc3LDYgQEAgaW50IHBhZ2luZ19kb21jdGwoc3RydWN0IGRvbWFpbiAq ZCwgc3RydQorICAgICAgICAgcmV0dXJuIC1FQlVTWTsKKyAgICAgfQorIAorLSAgICByYyA9IHhz bV9zaGFkb3dfY29udHJvbChYU01fSE9PSywgZCwgc2MtPm9wKTsKKy0gICAgaWYgKCByYyApCist ICAgICAgICByZXR1cm4gcmM7CistCisgICAgIC8qIENvZGUgdG8gaGFuZGxlIGxvZy1kaXJ0eS4g Tm90ZSB0aGF0IHNvbWUgbG9nIGRpcnR5IG9wZXJhdGlvbnMKKyAgICAgICogcGlnZ3ktYmFjayBv biBzaGFkb3cgb3BlcmF0aW9ucy4gRm9yIGV4YW1wbGUsIHdoZW4KKyAgICAgICogWEVOX0RPTUNU TF9TSEFET1dfT1BfT0ZGIGlzIGNhbGxlZCwgaXQgZmlyc3QgY2hlY2tzIHdoZXRoZXIgbG9nIGRp cnR5CistLS0gYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAorKysrIGIveGVuL2luY2x1ZGUveHNt L2R1bW15LmgKK0BAIC02ODIsMTMgKzY4Miw2IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9j aGVjayB4c21fZG9fbWMKKyAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1 cnJlbnQtPmRvbWFpbiwgTlVMTCk7CisgfQorIAorLXN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9j aGVjayB4c21fc2hhZG93X2NvbnRyb2woCistICAgIFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9t YWluICpkLCB1aW50MzJfdCBvcCkKKy17CistICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9IT09L KTsKKy0gICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFp biwgZCk7CistfQorLQorIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21fbWVtX3No YXJpbmdfb3AoCisgICAgIFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3Qg ZG9tYWluICpjZCwgaW50IG9wKQorIHsKKy0tLSBhL3hlbi9pbmNsdWRlL3hzbS94c20uaAorKysr IGIveGVuL2luY2x1ZGUveHNtL3hzbS5oCitAQCAtMTcyLDcgKzE3Miw2IEBAIHN0cnVjdCB4c21f b3BzIHsKKyAKKyAjaWZkZWYgQ09ORklHX1g4NgorICAgICBpbnQgKCpkb19tY2EpKHZvaWQpOwor LSAgICBpbnQgKCpzaGFkb3dfY29udHJvbCkoc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3Qgb3Ap OworICAgICBpbnQgKCptZW1fc2hhcmluZ19vcCkoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGRv bWFpbiAqY2QsIGludCBvcCk7CisgICAgIGludCAoKmFwaWMpKHN0cnVjdCBkb21haW4gKmQsIGlu dCBjbWQpOworICAgICBpbnQgKCptYWNoaW5lX21lbW9yeV9tYXApKHZvaWQpOworQEAgLTY4MCwx MiArNjc5LDYgQEAgc3RhdGljIGlubGluZSBpbnQgeHNtX2RvX21jYSh4c21fZGVmYXVsdAorICAg ICByZXR1cm4gYWx0ZXJuYXRpdmVfY2FsbCh4c21fb3BzLmRvX21jYSk7CisgfQorIAorLXN0YXRp YyBpbmxpbmUgaW50IHhzbV9zaGFkb3dfY29udHJvbCgKKy0gICAgeHNtX2RlZmF1bHRfdCBkZWYs IHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IG9wKQorLXsKKy0gICAgcmV0dXJuIGFsdGVybmF0 aXZlX2NhbGwoeHNtX29wcy5zaGFkb3dfY29udHJvbCwgZCwgb3ApOworLX0KKy0KKyBzdGF0aWMg aW5saW5lIGludCB4c21fbWVtX3NoYXJpbmdfb3AoCisgICAgIHhzbV9kZWZhdWx0X3QgZGVmLCBz dHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgZG9tYWluICpjZCwgaW50IG9wKQorIHsKKy0tLSBhL3hl bi94c20vZHVtbXkuYworKysrIGIveGVuL3hzbS9kdW1teS5jCitAQCAtMTMwLDcgKzEzMCw2IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgeHNtX29wcyBfX2luaXRjb25zdF8KKyAgICAgLnBsYXRmb3Jt X29wICAgICAgICAgICAgICAgICAgID0geHNtX3BsYXRmb3JtX29wLAorICNpZmRlZiBDT05GSUdf WDg2CisgICAgIC5kb19tY2EgICAgICAgICAgICAgICAgICAgICAgICA9IHhzbV9kb19tY2EsCist ICAgIC5zaGFkb3dfY29udHJvbCAgICAgICAgICAgICAgICA9IHhzbV9zaGFkb3dfY29udHJvbCwK KyAgICAgLm1lbV9zaGFyaW5nX29wICAgICAgICAgICAgICAgID0geHNtX21lbV9zaGFyaW5nX29w LAorICAgICAuYXBpYyAgICAgICAgICAgICAgICAgICAgICAgICAgPSB4c21fYXBpYywKKyAgICAg Lm1hY2hpbmVfbWVtb3J5X21hcCAgICAgICAgICAgID0geHNtX21hY2hpbmVfbWVtb3J5X21hcCwK Ky0tLSBhL3hlbi94c20vZmxhc2svaG9va3MuYworKysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5j CitAQCAtNDAsNiArNDAsNyBAQAorIAorICNpZmRlZiBDT05GSUdfWDg2CisgI2luY2x1ZGUgPGFz bS9wdi9zaGltLmg+Cisrc3RhdGljIGludCBmbGFza19zaGFkb3dfY29udHJvbChzdHJ1Y3QgZG9t YWluICpkLCB1bnNpZ25lZCBpbnQgb3ApOworICNlbHNlCisgI2RlZmluZSBwdl9zaGltIGZhbHNl CisgI2VuZGlmCitAQCAtNjk5LDEwICs3MDAsNiBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNr X2RvbWN0bChzdHJ1Y3QKKyAgICAgLyogVGhlc2UgaGF2ZSBpbmRpdmlkdWFsIFhTTSBob29rcyAo Y29tbW9uL2RvbWN0bC5jKSAqLworICAgICBjYXNlIFhFTl9ET01DVExfc2V0X3RhcmdldDoKKyAK Ky0jaWZkZWYgQ09ORklHX1g4NgorLSAgICAvKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhv b2tzIChhcmNoL3g4Ni9kb21jdGwuYykgKi8KKy0gICAgY2FzZSBYRU5fRE9NQ1RMX3NoYWRvd19v cDoKKy0jZW5kaWYKKyAjaWZkZWYgQ09ORklHX0hBU19QQVNTVEhST1VHSAorICAgICAvKgorICAg ICAgKiBUaGVzZSBoYXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzCitAQCAtNzg3LDYgKzc4NCwxMSBA QCBzdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNrX2RvbWN0bChzdHJ1Y3QKKyAgICAgY2FzZSBYRU5f RE9NQ1RMX2dldF9hZGRyZXNzX3NpemU6CisgICAgICAgICByZXR1cm4gY3VycmVudF9oYXNfcGVy bShkLCBTRUNDTEFTU19ET01BSU4sIERPTUFJTl9fR0VUQUREUlNJWkUpOworIAorKyNpZmRlZiBD T05GSUdfWDg2CisrICAgIGNhc2UgWEVOX0RPTUNUTF9zaGFkb3dfb3A6CisrICAgICAgICByZXR1 cm4gZmxhc2tfc2hhZG93X2NvbnRyb2woZCwgb3AtPnUuc2hhZG93X29wLm9wKTsKKysjZW5kaWYK KysKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX21lbV9zaGFyaW5nX29wOgorICAgICAgICAgcmV0dXJu IGN1cnJlbnRfaGFzX3Blcm0oZCwgU0VDQ0xBU1NfSFZNLCBIVk1fX01FTV9TSEFSSU5HKTsKKyAK K0BAIC0xNjAzLDcgKzE2MDUsNyBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGZsYXNrX2RvX21jYSh2 b2lkKQorICAgICByZXR1cm4gZG9tYWluX2hhc194ZW4oY3VycmVudC0+ZG9tYWluLCBYRU5fX01D QV9PUCk7CisgfQorIAorLXN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfc2hhZG93X2NvbnRyb2wo c3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3Qgb3ApCisrc3RhdGljIGludCBmbGFza19zaGFkb3df Y29udHJvbChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgb3ApCisgeworICAgICB1aW50 MzJfdCBwZXJtOworIAorQEAgLTE5OTksNyArMjAwMSw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg eHNtX29wcyBfX2luaXRjb25zdF8KKyAgICAgLnBsYXRmb3JtX29wID0gZmxhc2tfcGxhdGZvcm1f b3AsCisgI2lmZGVmIENPTkZJR19YODYKKyAgICAgLmRvX21jYSA9IGZsYXNrX2RvX21jYSwKKy0g ICAgLnNoYWRvd19jb250cm9sID0gZmxhc2tfc2hhZG93X2NvbnRyb2wsCisgICAgIC5tZW1fc2hh cmluZ19vcCA9IGZsYXNrX21lbV9zaGFyaW5nX29wLAorICAgICAuYXBpYyA9IGZsYXNrX2FwaWMs CisgICAgIC5tYWNoaW5lX21lbW9yeV9tYXAgPSBmbGFza19tYWNoaW5lX21lbW9yeV9tYXAsCgpk aWZmIC0tZ2l0IGEveHNhNDkyLTQuMjEtMTgucGF0Y2ggYi94c2E0OTItNC4yMS0xOC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDgyMTI0Ci0tLSAvZGV2L251bGwK KysrIGIveHNhNDkyLTQuMjEtMTgucGF0Y2gKQEAgLTAsMCArMSw5NCBAQAorRnJvbTogSmFuIEJl dWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgorU3ViamVjdDogZG9tY3RsOiBoYW5kbGUgWEVOX0RP TUNUTF9nZXRfZGV2aWNlX2dyb3VwIHdpdGhvdXQgYWNxdWlyaW5nIGRvbWN0bCBsb2NrCisKK2lv bW11X2dldF9kZXZpY2VfZ3JvdXAoKSB1c2VzIGl0cyBvd24gbG9ja2luZy4gVGh1cywgd2l0aCBj YWxsZXIgc2lkZQorbG9ja2luZyBpcnJlbGV2YW50LCBpdCBjYW4gYXMgd2VsbCBiZSBjYWxsZWQg d2l0aCB0aGUgZG9tY3RsIGxvY2sgbm90CitoZWxkLgorCitNb3ZlIHRoZSBoYW5kbGluZyBub3Qg b25seSBhaGVhZCBvZiBhY3F1aXJpbmcgdGhlIGxvY2ssIGJ1dCBhbHNvIGFoZWFkCitvZiB0aGUg WFNNIGNoZWNrLCBsZXZlcmFnaW5nIHRoYXQgdGhlIHN1Yi1vcCBoYXMgaXRzIG93biBob29rLgor CitUaGlzIGlzIHBhcnQgb2YgWFNBLTQ5Mi4KKworU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2gg PGpiZXVsaWNoQHN1c2UuY29tPgorQWNrZWQtYnk6IERhbmllbCBQLiBTbWl0aCA8ZHBzbWl0aEBh cGVydHVzc29sdXRpb25zLmNvbT4KK1Jldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dl ci5wYXVAY2l0cml4LmNvbT4KKworLS0tIGEveGVuL2NvbW1vbi9kb21jdGwuYworKysrIGIveGVu L2NvbW1vbi9kb21jdGwuYworQEAgLTUxMyw2ICs1MTMsMTAgQEAgbG9uZyBkb19kb21jdGwoWEVO X0dVRVNUX0hBTkRMRV9QQVJBTSh4ZQorICAgICAgICAgLyogT3RoZXIgc3ViLW9wcyBoYW5kbGVk IGZ1cnRoZXIgZG93bi4gKi8KKyAgICAgICAgIGJyZWFrOworIAorKyAgICBjYXNlIFhFTl9ET01D VExfZ2V0X2RldmljZV9ncm91cDoKKysgICAgICAgIHJldCA9IGlvbW11X2RvX2RvbWN0bChvcCwg ZCwgdV9kb21jdGwpOworKyAgICAgICAgZ290byBkb21jdGxfb3V0X3VubG9ja19kb21vbmx5Owor KworICAgICBjYXNlIFhFTl9ET01DVExfaW9wb3J0X3Blcm1pc3Npb246CisgICAgIGNhc2UgWEVO X0RPTUNUTF9pb3BvcnRfbWFwcGluZzoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2dzaV9wZXJtaXNz aW9uOgorQEAgLTkxOCw3ICs5MjIsNiBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExF X1BBUkFNKHhlCisgICAgIGNhc2UgWEVOX0RPTUNUTF9hc3NpZ25fZGV2aWNlOgorICAgICBjYXNl IFhFTl9ET01DVExfdGVzdF9hc3NpZ25fZGV2aWNlOgorICAgICBjYXNlIFhFTl9ET01DVExfZGVh c3NpZ25fZGV2aWNlOgorLSAgICBjYXNlIFhFTl9ET01DVExfZ2V0X2RldmljZV9ncm91cDoKKyAg ICAgICAgIHJldCA9IGlvbW11X2RvX2RvbWN0bChvcCwgZCwgdV9kb21jdGwpOworICAgICAgICAg YnJlYWs7CisgCistLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYworKysrIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKK0BAIC0xNjIwLDcgKzE2MjAsNyBAQCBzdGF0aWMg aW50IGlvbW11X2dldF9kZXZpY2VfZ3JvdXAoCisgICAgICAgICBpZiAoIChwZGV2LT5zZWcgIT0g c2VnKSB8fCAoKGIgPT0gYnVzKSAmJiAoZGYgPT0gZGV2Zm4pKSApCisgICAgICAgICAgICAgY29u dGludWU7CisgCistICAgICAgICBpZiAoIHhzbV9nZXRfZGV2aWNlX2dyb3VwKFhTTV9IT09LLCAo c2VnIDw8IDE2KSB8IChiIDw8IDgpIHwgZGYpICkKKysgICAgICAgIGlmICggeHNtX2dldF9kZXZp Y2VfZ3JvdXAoWFNNX1BSSVYsIChzZWcgPDwgMTYpIHwgKGIgPDwgOCkgfCBkZikgKQorICAgICAg ICAgICAgIGNvbnRpbnVlOworIAorICAgICAgICAgc2Rldl9pZCA9IGlvbW11X2NhbGwob3BzLCBn ZXRfZGV2aWNlX2dyb3VwX2lkLCBzZWcsIGIsIGRmKTsKK0BAIC0xNjkwLDcgKzE2OTAsNyBAQCBp bnQgaW9tbXVfZG9fcGNpX2RvbWN0bCgKKyAgICAgICAgIHUzMiBtYXhfc2RldnM7CisgICAgICAg ICBYRU5fR1VFU1RfSEFORExFXzY0KHVpbnQzMikgc2RldnM7CisgCistICAgICAgICByZXQgPSB4 c21fZ2V0X2RldmljZV9ncm91cChYU01fSE9PSywgZG9tY3RsLT51LmdldF9kZXZpY2VfZ3JvdXAu bWFjaGluZV9zYmRmKTsKKysgICAgICAgIHJldCA9IHhzbV9nZXRfZGV2aWNlX2dyb3VwKFhTTV9Q UklWLCBkb21jdGwtPnUuZ2V0X2RldmljZV9ncm91cC5tYWNoaW5lX3NiZGYpOworICAgICAgICAg aWYgKCByZXQgKQorICAgICAgICAgICAgIGJyZWFrOworIAorLS0tIGEveGVuL2luY2x1ZGUveHNt L2R1bW15LmgKKysrKyBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCitAQCAtMTYyLDYgKzE2Miw3 IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21fZG9tY3QKKyAgICAgeworICAg ICBjYXNlIFhFTl9ET01DVExfYmluZF9wdF9pcnE6CisgICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRk b21haW5pbmZvOgorKyAgICBjYXNlIFhFTl9ET01DVExfZ2V0X2RldmljZV9ncm91cDoKKyAgICAg Y2FzZSBYRU5fRE9NQ1RMX2dldF9kb21haW5fc3RhdGU6CisgICAgIGNhc2UgWEVOX0RPTUNUTF9n c2lfcGVybWlzc2lvbjoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2lvbWVtX3Blcm1pc3Npb246CitA QCAtNDAxLDcgKzQwMiw3IEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCBjZl9jaGVjayB4c21fZ2V0 X3YKKyBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2dldF9kZXZpY2VfZ3JvdXAo CisgICAgIFhTTV9ERUZBVUxUX0FSRyB1aW50MzJfdCBtYWNoaW5lX2JkZikKKyB7CistICAgIFhT TV9BU1NFUlRfQUNUSU9OKFhTTV9IT09LKTsKKysgICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX1BS SVYpOworICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9t YWluLCBOVUxMKTsKKyB9CisgCistLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKKysrKyBiL3hl bi94c20vZmxhc2svaG9va3MuYworQEAgLTY4Niw2ICs2ODYsNyBAQCBzdGF0aWMgaW50IGNmX2No ZWNrIGZsYXNrX2RvbWN0bChzdHJ1Y3QKKyAgICAgLyogVGhlc2UgaGF2ZSBpbmRpdmlkdWFsIFhT TSBob29rcyBhbmQgZG9uJ3QgbWFrZSBpdCBoZXJlLiAqLworICAgICBjYXNlIFhFTl9ET01DVExf YmluZF9wdF9pcnE6CisgICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRkb21haW5pbmZvOgorKyAgICBj YXNlIFhFTl9ET01DVExfZ2V0X2RldmljZV9ncm91cDoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2dl dF9kb21haW5fc3RhdGU6CisgICAgIGNhc2UgWEVOX0RPTUNUTF9nc2lfcGVybWlzc2lvbjoKKyAg ICAgY2FzZSBYRU5fRE9NQ1RMX2lvbWVtX3Blcm1pc3Npb246CitAQCAtNzA1LDcgKzcwNiw2IEBA IHN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdAorICAgICAgKiBUaGVzZSBo YXZlIGluZGl2aWR1YWwgWFNNIGhvb2tzCisgICAgICAqIChkcml2ZXJzL3Bhc3N0aHJvdWdoL3tw Y2ksZGV2aWNlX3RyZWUuYykKKyAgICAgICovCistICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfZGV2 aWNlX2dyb3VwOgorICAgICBjYXNlIFhFTl9ET01DVExfdGVzdF9hc3NpZ25fZGV2aWNlOgorICAg ICBjYXNlIFhFTl9ET01DVExfYXNzaWduX2RldmljZToKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2Rl YXNzaWduX2RldmljZToKCmRpZmYgLS1naXQgYS94c2E0OTItNC4yMS0xOS5wYXRjaCBiL3hzYTQ5 Mi00LjIxLTE5LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0YTEx MTcKLS0tIC9kZXYvbnVsbAorKysgYi94c2E0OTItNC4yMS0xOS5wYXRjaApAQCAtMCwwICsxLDM3 OCBAQAorRnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgorU3ViamVjdDogZG9t Y3RsL1hTTTogZHJvcCB7LGRlfWFzc2lnbl97LGR0fWRldmljZSBob29rcworCitJbnRlZ3JhdGUg dGhlIGNoZWNraW5nIHdpdGggeHNtX2RvbWN0bCgpLiBBcyBhIHBvc2l0aXZlIHNpZGUgZWZmZWN0 LAorcGVybWlzc2lvbnMgYXJlIHRoZW4gY2hlY2tlZCBhdCB0aGUgc2FtZSBlYXJseSBwb2ludCB3 aXRoIGFuZCB3aXRob3V0CitGbGFzay4gQXMgdGhlIERUIGRldmljZSBwYXRoIG5lZWRzIGZldGNo aW5nIGVhcmxpZXIgKGJ1dCBtdXN0IG5vdCBiZQorZG91YmxlIGZldGNoZWQpLCBjYWNoZSBpdCBp biBhIHByaXZhdGUgZmllbGQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UKK3N0cnVjdC4KKworVGhp cyBpcyBwYXJ0IG9mIFhTQS00OTIuCisKK1NpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1 bGljaEBzdXNlLmNvbT4KK0Fja2VkLWJ5OiBEYW5pZWwgUC4gU21pdGggPGRwc21pdGhAYXBlcnR1 c3NvbHV0aW9ucy5jb20+CitSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1 QGNpdHJpeC5jb20+CisKKy0tLSBhL3hlbi9jb21tb24vZG9tY3RsLmMKKysrKyBiL3hlbi9jb21t b24vZG9tY3RsLmMKK0BAIC0zMjUsNiArMzI1LDEwIEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVT VF9IQU5ETEVfUEFSQU0oeGUKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2RlYXNzaWduX2RldmljZToK KyAgICAgICAgIGlmICggb3AtPmRvbWFpbiA9PSBET01JRF9JTyApCisgICAgICAgICB7CisrI2lm ZGVmIENPTkZJR19IQVNfREVWSUNFX1RSRUVfRElTQ09WRVJZCisrICAgICAgICAgICAgaWYgKCBv cC0+dS5hc3NpZ25fZGV2aWNlLmRldiA9PSBYRU5fRE9NQ1RMX0RFVl9EVCApCisrICAgICAgICAg ICAgICAgIG9wLT51LmFzc2lnbl9kZXZpY2UudS5kdC5kZXYgPSBOVUxMOworKyNlbmRpZgorICAg ICAgICAgICAgIGQgPSBkb21faW87CisgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICB9CitA QCAtMzMyLDYgKzMzNiwxMSBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFN KHhlCisgICAgICAgICAgICAgcmV0dXJuIC1FU1JDSDsKKyAgICAgICAgIGZhbGx0aHJvdWdoOwor ICAgICBjYXNlIFhFTl9ET01DVExfdGVzdF9hc3NpZ25fZGV2aWNlOgorKyNpZmRlZiBDT05GSUdf SEFTX0RFVklDRV9UUkVFX0RJU0NPVkVSWQorKyAgICAgICAgaWYgKCBvcC0+dS5hc3NpZ25fZGV2 aWNlLmRldiA9PSBYRU5fRE9NQ1RMX0RFVl9EVCApCisrICAgICAgICAgICAgb3AtPnUuYXNzaWdu X2RldmljZS51LmR0LmRldiA9IE5VTEw7CisrICAgICAgICBmYWxsdGhyb3VnaDsKKysjZW5kaWYK KyAgICAgY2FzZSBYRU5fRE9NQ1RMX3ZtX2V2ZW50X29wOgorICAgICAgICAgaWYgKCBvcC0+ZG9t YWluID09IERPTUlEX0lOVkFMSUQgKQorICAgICAgICAgeworLS0tIGEveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvZGV2aWNlX3RyZWUuYworKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvZGV2 aWNlX3RyZWUuYworQEAgLTM0MCwxNSArMzQwLDE1IEBAIGludCBpb21tdV9kb19kdF9kb21jdGwo c3RydWN0IHhlbl9kb21jdGwKKyAgICAgICAgIGlmICggKGQgJiYgZC0+aXNfZHlpbmcpIHx8IGRv bWN0bC0+dS5hc3NpZ25fZGV2aWNlLmZsYWdzICkKKyAgICAgICAgICAgICBicmVhazsKKyAKKy0g ICAgICAgIHJldCA9IGR0X2ZpbmRfbm9kZV9ieV9ncGF0aChkb21jdGwtPnUuYXNzaWduX2Rldmlj ZS51LmR0LnBhdGgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tY3Rs LT51LmFzc2lnbl9kZXZpY2UudS5kdC5zaXplLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZkZXYpOworLSAgICAgICAgaWYgKCByZXQgKQorLSAgICAgICAgICAgIGJyZWFr OworLQorLSAgICAgICAgcmV0ID0geHNtX2Fzc2lnbl9kdGRldmljZShYU01fSE9PSywgZCwgZHRf bm9kZV9mdWxsX25hbWUoZGV2KSk7CistICAgICAgICBpZiAoIHJldCApCistICAgICAgICAgICAg YnJlYWs7CisrICAgICAgICBkZXYgPSBkb21jdGwtPnUuYXNzaWduX2RldmljZS51LmR0LmRldjsK KysgICAgICAgIGlmICggIWRldiApCisrICAgICAgICB7CisrICAgICAgICAgICAgcmV0ID0gZHRf ZmluZF9ub2RlX2J5X2dwYXRoKGRvbWN0bC0+dS5hc3NpZ25fZGV2aWNlLnUuZHQucGF0aCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tY3RsLT51LmFzc2lnbl9k ZXZpY2UudS5kdC5zaXplLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmZGV2KTsKKysgICAgICAgICAgICBpZiAoIHJldCApCisrICAgICAgICAgICAgICAgIGJyZWFr OworKyAgICAgICAgfQorIAorICAgICAgICAgaWYgKCBkb21jdGwtPmNtZCA9PSBYRU5fRE9NQ1RM X3Rlc3RfYXNzaWduX2RldmljZSApCisgICAgICAgICB7CitAQCAtMzk2LDE1ICszOTYsMTUgQEAg aW50IGlvbW11X2RvX2R0X2RvbWN0bChzdHJ1Y3QgeGVuX2RvbWN0bAorICAgICAgICAgaWYgKCBk b21jdGwtPnUuYXNzaWduX2RldmljZS5mbGFncyApCisgICAgICAgICAgICAgYnJlYWs7CisgCist ICAgICAgICByZXQgPSBkdF9maW5kX25vZGVfYnlfZ3BhdGgoZG9tY3RsLT51LmFzc2lnbl9kZXZp Y2UudS5kdC5wYXRoLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWN0 bC0+dS5hc3NpZ25fZGV2aWNlLnUuZHQuc2l6ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmZGV2KTsKKy0gICAgICAgIGlmICggcmV0ICkKKy0gICAgICAgICAgICBicmVh azsKKy0KKy0gICAgICAgIHJldCA9IHhzbV9kZWFzc2lnbl9kdGRldmljZShYU01fSE9PSywgZCwg ZHRfbm9kZV9mdWxsX25hbWUoZGV2KSk7CistICAgICAgICBpZiAoIHJldCApCistICAgICAgICAg ICAgYnJlYWs7CisrICAgICAgICBkZXYgPSBkb21jdGwtPnUuYXNzaWduX2RldmljZS51LmR0LmRl djsKKysgICAgICAgIGlmICggIWRldiApCisrICAgICAgICB7CisrICAgICAgICAgICAgcmV0ID0g ZHRfZmluZF9ub2RlX2J5X2dwYXRoKGRvbWN0bC0+dS5hc3NpZ25fZGV2aWNlLnUuZHQucGF0aCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tY3RsLT51LmFzc2ln bl9kZXZpY2UudS5kdC5zaXplLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmZGV2KTsKKysgICAgICAgICAgICBpZiAoIHJldCApCisrICAgICAgICAgICAgICAgIGJy ZWFrOworKyAgICAgICAgfQorIAorICAgICAgICAgaWYgKCBkID09IGRvbV9pbyApCisgICAgICAg ICB7CistLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYworKysrIGIveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvcGNpLmMKK0BAIC0xNzQwLDEwICsxNzQwLDYgQEAgaW50IGlvbW11X2Rv X3BjaV9kb21jdGwoCisgCisgICAgICAgICBtYWNoaW5lX3NiZGYgPSBkb21jdGwtPnUuYXNzaWdu X2RldmljZS51LnBjaS5tYWNoaW5lX3NiZGY7CisgCistICAgICAgICByZXQgPSB4c21fYXNzaWdu X2RldmljZShYU01fSE9PSywgZCwgbWFjaGluZV9zYmRmKTsKKy0gICAgICAgIGlmICggcmV0ICkK Ky0gICAgICAgICAgICBicmVhazsKKy0KKyAgICAgICAgIHNlZyA9IG1hY2hpbmVfc2JkZiA+PiAx NjsKKyAgICAgICAgIGJ1cyA9IFBDSV9CVVMobWFjaGluZV9zYmRmKTsKKyAgICAgICAgIGRldmZu ID0gUENJX0RFVkZOKG1hY2hpbmVfc2JkZik7CitAQCAtMTc4NSwxMCArMTc4MSw2IEBAIGludCBp b21tdV9kb19wY2lfZG9tY3RsKAorIAorICAgICAgICAgbWFjaGluZV9zYmRmID0gZG9tY3RsLT51 LmFzc2lnbl9kZXZpY2UudS5wY2kubWFjaGluZV9zYmRmOworIAorLSAgICAgICAgcmV0ID0geHNt X2RlYXNzaWduX2RldmljZShYU01fSE9PSywgZCwgbWFjaGluZV9zYmRmKTsKKy0gICAgICAgIGlm ICggcmV0ICkKKy0gICAgICAgICAgICBicmVhazsKKy0KKyAgICAgICAgIHNlZyA9IG1hY2hpbmVf c2JkZiA+PiAxNjsKKyAgICAgICAgIGJ1cyA9IFBDSV9CVVMobWFjaGluZV9zYmRmKTsKKyAgICAg ICAgIGRldmZuID0gUENJX0RFVkZOKG1hY2hpbmVfc2JkZik7CistLS0gYS94ZW4vaW5jbHVkZS9w dWJsaWMvZG9tY3RsLmgKKysrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaAorQEAgLTU3 NSw3ICs1NzUsMTAgQEAgc3RydWN0IHhlbl9kb21jdGxfYXNzaWduX2RldmljZSB7CisgICAgICAg ICB9IHBjaTsKKyAgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICAgdWludDMyX3Qgc2l6ZTsg LyogTGVuZ3RoIG9mIHRoZSBwYXRoICovCistICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV82 NChjaGFyKSBwYXRoOyAvKiBwYXRoIHRvIHRoZSBkZXZpY2UgdHJlZSBub2RlICovCisrICAgICAg ICAgICAgWEVOX0dVRVNUX0hBTkRMRV82NChjaGFyKSBwYXRoOyAvKiBQYXRoIHRvIHRoZSBkZXZp Y2UgdHJlZSBub2RlICovCisrI2lmZGVmIF9fWEVOX18KKysgICAgICAgICAgICBzdHJ1Y3QgZHRf ZGV2aWNlX25vZGUgKmRldjsgLyogUmVzb2x2ZWQgZGV2aWNlIG5vZGUgb2YgdGhlIGFib3ZlICov CisrI2VuZGlmCisgICAgICAgICB9IGR0OworICAgICB9IHU7CisgfTsKKy0tLSBhL3hlbi9pbmNs dWRlL3hzbS9kdW1teS5oCisrKysgYi94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAorQEAgLTQwNSw0 MCArNDA1LDggQEAgc3RhdGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV9nZXRfZAorICAg ICBYU01fQVNTRVJUX0FDVElPTihYU01fUFJJVik7CisgICAgIHJldHVybiB4c21fZGVmYXVsdF9h Y3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIE5VTEwpOworIH0KKy0KKy1zdGF0aWMgWFNN X0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX2Fzc2lnbl9kZXZpY2UoCistICAgIFhTTV9ERUZBVUxU X0FSRyBzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBtYWNoaW5lX2JkZikKKy17CistICAgIFhT TV9BU1NFUlRfQUNUSU9OKFhTTV9IT09LKTsKKy0gICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlv bihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7CistfQorLQorLXN0YXRpYyBYU01fSU5MSU5F IGludCBjZl9jaGVjayB4c21fZGVhc3NpZ25fZGV2aWNlKAorLSAgICBYU01fREVGQVVMVF9BUkcg c3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3QgbWFjaGluZV9iZGYpCisteworLSAgICBYU01fQVNT RVJUX0FDVElPTihYU01fSE9PSyk7CistICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0 aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOworLX0KKy0KKyAjZW5kaWYgLyogSEFTX1BBU1NUSFJP VUdIICYmIEhBU19QQ0kgKi8KKyAKKy0jaWYgZGVmaW5lZChDT05GSUdfSEFTX1BBU1NUSFJPVUdI KSAmJiBkZWZpbmVkKENPTkZJR19IQVNfREVWSUNFX1RSRUVfRElTQ09WRVJZKQorLXN0YXRpYyBY U01fSU5MSU5FIGludCBjZl9jaGVjayB4c21fYXNzaWduX2R0ZGV2aWNlKAorLSAgICBYU01fREVG QVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgY29uc3QgY2hhciAqZHRwYXRoKQorLXsKKy0gICAg WFNNX0FTU0VSVF9BQ1RJT04oWFNNX0hPT0spOworLSAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0 aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBkKTsKKy19CistCistc3RhdGljIFhTTV9JTkxJ TkUgaW50IGNmX2NoZWNrIHhzbV9kZWFzc2lnbl9kdGRldmljZSgKKy0gICAgWFNNX0RFRkFVTFRf QVJHIHN0cnVjdCBkb21haW4gKmQsIGNvbnN0IGNoYXIgKmR0cGF0aCkKKy17CistICAgIFhTTV9B U1NFUlRfQUNUSU9OKFhTTV9IT09LKTsKKy0gICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihh Y3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7CistfQorLQorLSNlbmRpZiAvKiBIQVNfUEFTU1RI Uk9VR0ggJiYgSEFTX0RFVklDRV9UUkVFX0RJU0NPVkVSWSAqLworLQorIHN0YXRpYyBYU01fSU5M SU5FIGludCBjZl9jaGVjayB4c21fcmVzb3VyY2VfcGx1Z19jb3JlKFhTTV9ERUZBVUxUX1ZPSUQp CisgeworICAgICBYU01fQVNTRVJUX0FDVElPTihYU01fSE9PSyk7CistLS0gYS94ZW4vaW5jbHVk ZS94c20veHNtLmgKKysrKyBiL3hlbi9pbmNsdWRlL3hzbS94c20uaAorQEAgLTEyNCwxMyArMTI0 LDYgQEAgc3RydWN0IHhzbV9vcHMgeworIAorICNpZiBkZWZpbmVkKENPTkZJR19IQVNfUEFTU1RI Uk9VR0gpICYmIGRlZmluZWQoQ09ORklHX0hBU19QQ0kpCisgICAgIGludCAoKmdldF9kZXZpY2Vf Z3JvdXApKHVpbnQzMl90IG1hY2hpbmVfYmRmKTsKKy0gICAgaW50ICgqYXNzaWduX2RldmljZSko c3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3QgbWFjaGluZV9iZGYpOworLSAgICBpbnQgKCpkZWFz c2lnbl9kZXZpY2UpKHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IG1hY2hpbmVfYmRmKTsKKy0j ZW5kaWYKKy0KKy0jaWYgZGVmaW5lZChDT05GSUdfSEFTX1BBU1NUSFJPVUdIKSAmJiBkZWZpbmVk KENPTkZJR19IQVNfREVWSUNFX1RSRUVfRElTQ09WRVJZKQorLSAgICBpbnQgKCphc3NpZ25fZHRk ZXZpY2UpKHN0cnVjdCBkb21haW4gKmQsIGNvbnN0IGNoYXIgKmR0cGF0aCk7CistICAgIGludCAo KmRlYXNzaWduX2R0ZGV2aWNlKShzdHJ1Y3QgZG9tYWluICpkLCBjb25zdCBjaGFyICpkdHBhdGgp OworICNlbmRpZgorIAorICAgICBpbnQgKCpyZXNvdXJjZV9wbHVnX2NvcmUpKHZvaWQpOworQEAg LTUzMywzNSArNTI2LDggQEAgc3RhdGljIGlubGluZSBpbnQgeHNtX2dldF9kZXZpY2VfZ3JvdXAo eAorIHsKKyAgICAgcmV0dXJuIGFsdGVybmF0aXZlX2NhbGwoeHNtX29wcy5nZXRfZGV2aWNlX2dy b3VwLCBtYWNoaW5lX2JkZik7CisgfQorLQorLXN0YXRpYyBpbmxpbmUgaW50IHhzbV9hc3NpZ25f ZGV2aWNlKAorLSAgICB4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCwgdWludDMy X3QgbWFjaGluZV9iZGYpCisteworLSAgICByZXR1cm4gYWx0ZXJuYXRpdmVfY2FsbCh4c21fb3Bz LmFzc2lnbl9kZXZpY2UsIGQsIG1hY2hpbmVfYmRmKTsKKy19CistCistc3RhdGljIGlubGluZSBp bnQgeHNtX2RlYXNzaWduX2RldmljZSgKKy0gICAgeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBk b21haW4gKmQsIHVpbnQzMl90IG1hY2hpbmVfYmRmKQorLXsKKy0gICAgcmV0dXJuIGFsdGVybmF0 aXZlX2NhbGwoeHNtX29wcy5kZWFzc2lnbl9kZXZpY2UsIGQsIG1hY2hpbmVfYmRmKTsKKy19Cisg I2VuZGlmIC8qIEhBU19QQVNTVEhST1VHSCAmJiBIQVNfUENJKSAqLworIAorLSNpZiBkZWZpbmVk KENPTkZJR19IQVNfUEFTU1RIUk9VR0gpICYmIGRlZmluZWQoQ09ORklHX0hBU19ERVZJQ0VfVFJF RV9ESVNDT1ZFUlkpCistc3RhdGljIGlubGluZSBpbnQgeHNtX2Fzc2lnbl9kdGRldmljZSgKKy0g ICAgeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQsIGNvbnN0IGNoYXIgKmR0cGF0 aCkKKy17CistICAgIHJldHVybiBhbHRlcm5hdGl2ZV9jYWxsKHhzbV9vcHMuYXNzaWduX2R0ZGV2 aWNlLCBkLCBkdHBhdGgpOworLX0KKy0KKy1zdGF0aWMgaW5saW5lIGludCB4c21fZGVhc3NpZ25f ZHRkZXZpY2UoCistICAgIHhzbV9kZWZhdWx0X3QgZGVmLCBzdHJ1Y3QgZG9tYWluICpkLCBjb25z dCBjaGFyICpkdHBhdGgpCisteworLSAgICByZXR1cm4gYWx0ZXJuYXRpdmVfY2FsbCh4c21fb3Bz LmRlYXNzaWduX2R0ZGV2aWNlLCBkLCBkdHBhdGgpOworLX0KKy0KKy0jZW5kaWYgLyogSEFTX1BB U1NUSFJPVUdIICYmIEhBU19ERVZJQ0VfVFJFRV9ESVNDT1ZFUlkgKi8KKy0KKyBzdGF0aWMgaW5s aW5lIGludCB4c21fcmVzb3VyY2VfcGx1Z19wY2koeHNtX2RlZmF1bHRfdCBkZWYsIHVpbnQzMl90 IG1hY2hpbmVfYmRmKQorIHsKKyAgICAgcmV0dXJuIGFsdGVybmF0aXZlX2NhbGwoeHNtX29wcy5y ZXNvdXJjZV9wbHVnX3BjaSwgbWFjaGluZV9iZGYpOworLS0tIGEveGVuL3hzbS9kdW1teS5jCisr KysgYi94ZW4veHNtL2R1bW15LmMKK0BAIC04MSwxMyArODEsNiBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHhzbV9vcHMgX19pbml0Y29uc3RfCisgCisgI2lmIGRlZmluZWQoQ09ORklHX0hBU19QQVNT VEhST1VHSCkgJiYgZGVmaW5lZChDT05GSUdfSEFTX1BDSSkKKyAgICAgLmdldF9kZXZpY2VfZ3Jv dXAgICAgICAgICAgICAgID0geHNtX2dldF9kZXZpY2VfZ3JvdXAsCistICAgIC5hc3NpZ25fZGV2 aWNlICAgICAgICAgICAgICAgICA9IHhzbV9hc3NpZ25fZGV2aWNlLAorLSAgICAuZGVhc3NpZ25f ZGV2aWNlICAgICAgICAgICAgICAgPSB4c21fZGVhc3NpZ25fZGV2aWNlLAorLSNlbmRpZgorLQor LSNpZiBkZWZpbmVkKENPTkZJR19IQVNfUEFTU1RIUk9VR0gpICYmIGRlZmluZWQoQ09ORklHX0hB U19ERVZJQ0VfVFJFRV9ESVNDT1ZFUlkpCistICAgIC5hc3NpZ25fZHRkZXZpY2UgICAgICAgICAg ICAgICA9IHhzbV9hc3NpZ25fZHRkZXZpY2UsCistICAgIC5kZWFzc2lnbl9kdGRldmljZSAgICAg ICAgICAgICA9IHhzbV9kZWFzc2lnbl9kdGRldmljZSwKKyAjZW5kaWYKKyAKKyAgICAgLnJlc291 cmNlX3BsdWdfY29yZSAgICAgICAgICAgID0geHNtX3Jlc291cmNlX3BsdWdfY29yZSwKKy0tLSBh L3hlbi94c20vZmxhc2svaG9va3MuYworKysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCitAQCAt NDUsNiArNDUsMTcgQEAgc3RhdGljIGludCBmbGFza19zaGFkb3dfY29udHJvbChzdHJ1Y3QgZAor ICNkZWZpbmUgcHZfc2hpbSBmYWxzZQorICNlbmRpZgorIAorKyNpZmRlZiBDT05GSUdfSEFTX1BB U1NUSFJPVUdICisrI2lmZGVmIENPTkZJR19IQVNfUENJCisrc3RhdGljIGludCBmbGFza19hc3Np Z25fZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBtYWNoaW5lX2JkZik7Cisr c3RhdGljIGludCBmbGFza19kZWFzc2lnbl9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWdu ZWQgaW50IG1hY2hpbmVfYmRmKTsKKysjZW5kaWYKKysjaWZkZWYgQ09ORklHX0hBU19ERVZJQ0Vf VFJFRV9ESVNDT1ZFUlkKKytzdGF0aWMgaW50IGZsYXNrX2Fzc2lnbl9kdGRldmljZShzdHJ1Y3Qg ZG9tYWluICpkLCBjb25zdCBjaGFyICpkdHBhdGgpOworK3N0YXRpYyBpbnQgZmxhc2tfZGVhc3Np Z25fZHRkZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgY29uc3QgY2hhciAqZHRwYXRoKTsKKysjZW5k aWYKKysjZW5kaWYgLyogQ09ORklHX0hBU19QQVNTVEhST1VHSCAqLworKworIHN0YXRpYyB1aW50 MzJfdCBkb21haW5fc2lkKGNvbnN0IHN0cnVjdCBkb21haW4gKmRvbSkKKyB7CisgICAgIHN0cnVj dCBkb21haW5fc2VjdXJpdHlfc3RydWN0ICpkc2VjID0gZG9tLT5zc2lkOworQEAgLTcwMCwxNiAr NzExLDYgQEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19kb21jdGwoc3RydWN0CisgCisgICAg IC8qIFRoZXNlIGhhdmUgaW5kaXZpZHVhbCBYU00gaG9va3MgKGNvbW1vbi9kb21jdGwuYykgKi8K KyAgICAgY2FzZSBYRU5fRE9NQ1RMX3NldF90YXJnZXQ6CistCistI2lmZGVmIENPTkZJR19IQVNf UEFTU1RIUk9VR0gKKy0gICAgLyoKKy0gICAgICogVGhlc2UgaGF2ZSBpbmRpdmlkdWFsIFhTTSBo b29rcworLSAgICAgKiAoZHJpdmVycy9wYXNzdGhyb3VnaC97cGNpLGRldmljZV90cmVlLmMpCist ICAgICAqLworLSAgICBjYXNlIFhFTl9ET01DVExfdGVzdF9hc3NpZ25fZGV2aWNlOgorLSAgICBj YXNlIFhFTl9ET01DVExfYXNzaWduX2RldmljZToKKy0gICAgY2FzZSBYRU5fRE9NQ1RMX2RlYXNz aWduX2RldmljZToKKy0jZW5kaWYKKyAgICAgICAgIHJldHVybiAwOworIAorICAgICBjYXNlIFhF Tl9ET01DVExfZGVzdHJveWRvbWFpbjoKK0BAIC03ODksNiArNzkwLDQ5IEBAIHN0YXRpYyBpbnQg Y2ZfY2hlY2sgZmxhc2tfZG9tY3RsKHN0cnVjdAorICAgICAgICAgcmV0dXJuIGZsYXNrX3NoYWRv d19jb250cm9sKGQsIG9wLT51LnNoYWRvd19vcC5vcCk7CisgI2VuZGlmCisgCisrI2lmZGVmIENP TkZJR19IQVNfUEFTU1RIUk9VR0gKKysKKysgICAgY2FzZSBYRU5fRE9NQ1RMX3Rlc3RfYXNzaWdu X2RldmljZToKKysgICAgY2FzZSBYRU5fRE9NQ1RMX2Fzc2lnbl9kZXZpY2U6CisrICAgIGNhc2Ug WEVOX0RPTUNUTF9kZWFzc2lnbl9kZXZpY2U6CisrICAgICAgICBzd2l0Y2ggKCBvcC0+dS5hc3Np Z25fZGV2aWNlLmRldiApCisrICAgICAgICB7CisrI2lmZGVmIENPTkZJR19IQVNfUENJCisrICAg ICAgICBjYXNlIFhFTl9ET01DVExfREVWX1BDSToKKysgICAgICAgICAgICByZXR1cm4gb3AtPmNt ZCAhPSBYRU5fRE9NQ1RMX2RlYXNzaWduX2RldmljZQorKyAgICAgICAgICAgICAgICAgICA/IGZs YXNrX2Fzc2lnbl9kZXZpY2UoCisrICAgICAgICAgICAgICAgICAgICAgICAgIGQsIG9wLT51LmFz c2lnbl9kZXZpY2UudS5wY2kubWFjaGluZV9zYmRmKQorKyAgICAgICAgICAgICAgICAgICA6IGZs YXNrX2RlYXNzaWduX2RldmljZSgKKysgICAgICAgICAgICAgICAgICAgICAgICAgZCwgb3AtPnUu YXNzaWduX2RldmljZS51LnBjaS5tYWNoaW5lX3NiZGYpOworKyNlbmRpZgorKworKyNpZmRlZiBD T05GSUdfSEFTX0RFVklDRV9UUkVFX0RJU0NPVkVSWQorKyAgICAgICAgY2FzZSBYRU5fRE9NQ1RM X0RFVl9EVDoKKysgICAgICAgIHsKKysgICAgICAgICAgICBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUg KmRldjsKKysgICAgICAgICAgICBpbnQgcmV0ID0gZHRfZmluZF9ub2RlX2J5X2dwYXRoKG9wLT51 LmFzc2lnbl9kZXZpY2UudS5kdC5wYXRoLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb3AtPnUuYXNzaWduX2RldmljZS51LmR0LnNpemUsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGV2KTsKKysKKysgICAgICAgICAg ICBpZiAoIHJldCApCisrICAgICAgICAgICAgICAgIHJldHVybiByZXQ7CisrCisrICAgICAgICAg ICAgb3AtPnUuYXNzaWduX2RldmljZS51LmR0LmRldiA9IGRldjsKKysKKysgICAgICAgICAgICBy ZXR1cm4gb3AtPmNtZCAhPSBYRU5fRE9NQ1RMX2RlYXNzaWduX2RldmljZQorKyAgICAgICAgICAg ICAgICAgICA/IGZsYXNrX2Fzc2lnbl9kdGRldmljZShkLCBkdF9ub2RlX2Z1bGxfbmFtZShkZXYp KQorKyAgICAgICAgICAgICAgICAgICA6IGZsYXNrX2RlYXNzaWduX2R0ZGV2aWNlKGQsIGR0X25v ZGVfZnVsbF9uYW1lKGRldikpOworKyAgICAgICAgfQorKyNlbmRpZgorKworKyAgICAgICAgZGVm YXVsdDoKKysgICAgICAgICAgICAvKiBVbmtub3duIHR5cGUuICovCisrICAgICAgICAgICAgYnJl YWs7CisrICAgICAgICB9CisrICAgICAgICByZXR1cm4gYXZjX3Vua25vd25fcGVybWlzc2lvbigi YXNzaWduX2RldmljZSIsIG9wLT5jbWQpOworKworKyNlbmRpZiAvKiBDT05GSUdfSEFTX1BBU1NU SFJPVUdIICovCisrCisgICAgIGNhc2UgWEVOX0RPTUNUTF9tZW1fc2hhcmluZ19vcDoKKyAgICAg ICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0hWTSwgSFZNX19NRU1fU0hB UklORyk7CisgCitAQCAtMTQxNiw3ICsxNDYwLDcgQEAgc3RhdGljIGludCBmbGFza190ZXN0X2Fz c2lnbl9kZXZpY2UodWludAorICAgICByZXR1cm4gYXZjX2N1cnJlbnRfaGFzX3Blcm0ocnNpZCwg U0VDQ0xBU1NfUkVTT1VSQ0UsIFJFU09VUkNFX19TVEFUX0RFVklDRSwgTlVMTCk7CisgfQorIAor LXN0YXRpYyBpbnQgY2ZfY2hlY2sgZmxhc2tfYXNzaWduX2RldmljZShzdHJ1Y3QgZG9tYWluICpk LCB1aW50MzJfdCBtYWNoaW5lX2JkZikKKytzdGF0aWMgaW50IGZsYXNrX2Fzc2lnbl9kZXZpY2Uo c3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3QgbWFjaGluZV9iZGYpCisgeworICAgICB1aW50MzJf dCBkc2lkLCByc2lkOworICAgICBpbnQgcmMgPSAtRVBFUk07CitAQCAtMTQ0Niw3ICsxNDkwLDcg QEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19hc3NpZ25fZGV2aWNlKAorICAgICByZXR1cm4g YXZjX2hhc19wZXJtKGRzaWQsIHJzaWQsIFNFQ0NMQVNTX1JFU09VUkNFLCBkcGVybSwgJmFkKTsK KyB9CisgCistc3RhdGljIGludCBjZl9jaGVjayBmbGFza19kZWFzc2lnbl9kZXZpY2UoCisrc3Rh dGljIGludCBmbGFza19kZWFzc2lnbl9kZXZpY2UoCisgICAgIHN0cnVjdCBkb21haW4gKmQsIHVp bnQzMl90IG1hY2hpbmVfYmRmKQorIHsKKyAgICAgdWludDMyX3QgcnNpZDsKK0BAIC0xNDc4LDcg KzE1MjIsNyBAQCBzdGF0aWMgaW50IGZsYXNrX3Rlc3RfYXNzaWduX2R0ZGV2aWNlKGNvCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyB9CisgCistc3RhdGljIGludCBj Zl9jaGVjayBmbGFza19hc3NpZ25fZHRkZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgY29uc3QgY2hh ciAqZHRwYXRoKQorK3N0YXRpYyBpbnQgZmxhc2tfYXNzaWduX2R0ZGV2aWNlKHN0cnVjdCBkb21h aW4gKmQsIGNvbnN0IGNoYXIgKmR0cGF0aCkKKyB7CisgICAgIHVpbnQzMl90IGRzaWQsIHJzaWQ7 CisgICAgIGludCByYyA9IC1FUEVSTTsKK0BAIC0xNTA4LDcgKzE1NTIsNyBAQCBzdGF0aWMgaW50 IGNmX2NoZWNrIGZsYXNrX2Fzc2lnbl9kdGRldmljCisgICAgIHJldHVybiBhdmNfaGFzX3Blcm0o ZHNpZCwgcnNpZCwgU0VDQ0xBU1NfUkVTT1VSQ0UsIGRwZXJtLCAmYWQpOworIH0KKyAKKy1zdGF0 aWMgaW50IGNmX2NoZWNrIGZsYXNrX2RlYXNzaWduX2R0ZGV2aWNlKAorK3N0YXRpYyBpbnQgZmxh c2tfZGVhc3NpZ25fZHRkZXZpY2UoCisgICAgIHN0cnVjdCBkb21haW4gKmQsIGNvbnN0IGNoYXIg KmR0cGF0aCkKKyB7CisgICAgIHVpbnQzMl90IHJzaWQ7CitAQCAtMTk4OSwxMyArMjAzMyw2IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgeHNtX29wcyBfX2luaXRjb25zdF8KKyAKKyAjaWYgZGVmaW5l ZChDT05GSUdfSEFTX1BBU1NUSFJPVUdIKSAmJiBkZWZpbmVkKENPTkZJR19IQVNfUENJKQorICAg ICAuZ2V0X2RldmljZV9ncm91cCA9IGZsYXNrX2dldF9kZXZpY2VfZ3JvdXAsCistICAgIC5hc3Np Z25fZGV2aWNlID0gZmxhc2tfYXNzaWduX2RldmljZSwKKy0gICAgLmRlYXNzaWduX2RldmljZSA9 IGZsYXNrX2RlYXNzaWduX2RldmljZSwKKy0jZW5kaWYKKy0KKy0jaWYgZGVmaW5lZChDT05GSUdf SEFTX1BBU1NUSFJPVUdIKSAmJiBkZWZpbmVkKENPTkZJR19IQVNfREVWSUNFX1RSRUVfRElTQ09W RVJZKQorLSAgICAuYXNzaWduX2R0ZGV2aWNlID0gZmxhc2tfYXNzaWduX2R0ZGV2aWNlLAorLSAg ICAuZGVhc3NpZ25fZHRkZXZpY2UgPSBmbGFza19kZWFzc2lnbl9kdGRldmljZSwKKyAjZW5kaWYK KyAKKyAgICAgLnBsYXRmb3JtX29wID0gZmxhc2tfcGxhdGZvcm1fb3AsCgpkaWZmIC0tZ2l0IGEv eHNhNDkyLTQuMjEtMjAucGF0Y2ggYi94c2E0OTItNC4yMS0yMC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmQxMGE5Ci0tLSAvZGV2L251bGwKKysrIGIveHNhNDky LTQuMjEtMjAucGF0Y2gKQEAgLTAsMCArMSwxMjMgQEAKK0Zyb206IEphbiBCZXVsaWNoIDxqYmV1 bGljaEBzdXNlLmNvbT4KK1N1YmplY3Q6IGRvbWN0bDogaGFuZGxlIFhFTl9ET01DVExfc2V0X3Rh cmdldCB3aXRob3V0IGFjcXVpcmluZyBkb21jdGwgbG9jaworCitUaGUgb25seSBsb2NraW5nIHJl cXVpcmVkIGhlcmUgaXMgdGhhdCBiZXR3ZWVuIGNoZWNraW5nIGQtPnRhcmdldCBhbmQKK3NldHRp bmcgaXQuIFRvIGF2b2lkIHRoZSBuZWVkIGZvciBhbiBleHBsaWNpdCBsb2NrLCB1c2UgY21weGNo Z3B0cigpIHRvCit1cGRhdGUgZC0+dGFyZ2V0LgorCitNb3ZlIHRoZSBoYW5kbGluZyBub3Qgb25s eSBhaGVhZCBvZiBhY3F1aXJpbmcgdGhlIGxvY2ssIGJ1dCBhbHNvIGFoZWFkCitvZiB0aGUgWFNN IGNoZWNrLCBsZXZlcmFnaW5nIHRoYXQgdGhlIHN1Yi1vcCBoYXMgaXRzIG93biBob29rLgorCitU aGlzIGlzIHBhcnQgb2YgWFNBLTQ5Mi4KKworU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpi ZXVsaWNoQHN1c2UuY29tPgorQWNrZWQtYnk6IERhbmllbCBQLiBTbWl0aCA8ZHBzbWl0aEBhcGVy dHVzc29sdXRpb25zLmNvbT4KK1Jldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5w YXVAY2l0cml4LmNvbT4KKworLS0tIGEveGVuL2NvbW1vbi9kb21jdGwuYworKysrIGIveGVuL2Nv bW1vbi9kb21jdGwuYworQEAgLTUwNSw2ICs1MDUsMzAgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dV RVNUX0hBTkRMRV9QQVJBTSh4ZQorICAgICB9CisgI2VuZGlmCisgCisrICAgIGNhc2UgWEVOX0RP TUNUTF9zZXRfdGFyZ2V0OgorKyAgICB7CisrICAgICAgICBzdHJ1Y3QgZG9tYWluICplID0gZ2V0 X2RvbWFpbl9ieV9pZChvcC0+dS5zZXRfdGFyZ2V0LnRhcmdldCk7CisrCisrICAgICAgICByZXQg PSAtRVNSQ0g7CisrICAgICAgICBpZiAoICFlICkKKysgICAgICAgICAgICBnb3RvIGRvbWN0bF9v dXRfdW5sb2NrX2RvbW9ubHk7CisrCisrICAgICAgICBpZiAoIGQgPT0gZSApCisrICAgICAgICAg ICAgcmV0ID0gLUVJTlZBTDsKKysgICAgICAgIGVsc2UgaWYgKCAhaXNfaHZtX2RvbWFpbihlKSAp CisrICAgICAgICAgICAgcmV0ID0gLUVPUE5PVFNVUFA7CisrICAgICAgICBlbHNlCisrICAgICAg ICAgICAgcmV0ID0geHNtX3NldF90YXJnZXQoWFNNX1BSSVYsIGQsIGUpOworKworKyAgICAgICAg LyogSG9sZCByZWZlcmVuY2Ugb24gQGUgdW50aWwgd2UgZGVzdHJveSBAZC4gKi8KKysgICAgICAg IGlmICggIXJldCAmJiBjbXB4Y2hncHRyKCZkLT50YXJnZXQsIE5VTEwsIGUpICkKKysgICAgICAg ICAgICByZXQgPSAtRUlOVkFMOworKworKyAgICAgICAgaWYgKCByZXQgKQorKyAgICAgICAgICAg IHB1dF9kb21haW4oZSk7CisrICAgICAgICBnb3RvIGRvbWN0bF9vdXRfdW5sb2NrX2RvbW9ubHk7 CisrICAgIH0KKysKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX3ZtX2V2ZW50X29wOgorICAgICAgICAg aWYgKCBvcC0+dS52bV9ldmVudF9vcC5vcCA9PSBYRU5fVk1fRVZFTlRfR0VUX1ZFUlNJT04gKQor ICAgICAgICAgeworQEAgLTg0NCwzNiArODY4LDYgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNU X0hBTkRMRV9QQVJBTSh4ZQorICAgICAgICAgZG9tYWluX3NldF90aW1lX29mZnNldChkLCBvcC0+ dS5zZXR0aW1lb2Zmc2V0LnRpbWVfb2Zmc2V0X3NlY29uZHMpOworICAgICAgICAgYnJlYWs7Cisg CistICAgIGNhc2UgWEVOX0RPTUNUTF9zZXRfdGFyZ2V0OgorLSAgICB7CistICAgICAgICBzdHJ1 Y3QgZG9tYWluICplOworLQorLSAgICAgICAgcmV0ID0gLUVTUkNIOworLSAgICAgICAgZSA9IGdl dF9kb21haW5fYnlfaWQob3AtPnUuc2V0X3RhcmdldC50YXJnZXQpOworLSAgICAgICAgaWYgKCBl ID09IE5VTEwgKQorLSAgICAgICAgICAgIGJyZWFrOworLQorLSAgICAgICAgcmV0ID0gLUVJTlZB TDsKKy0gICAgICAgIGlmICggKGQgPT0gZSkgfHwgKGQtPnRhcmdldCAhPSBOVUxMKSApCistICAg ICAgICB7CistICAgICAgICAgICAgcHV0X2RvbWFpbihlKTsKKy0gICAgICAgICAgICBicmVhazsK Ky0gICAgICAgIH0KKy0KKy0gICAgICAgIHJldCA9IC1FT1BOT1RTVVBQOworLSAgICAgICAgaWYg KCBpc19odm1fZG9tYWluKGUpICkKKy0gICAgICAgICAgICByZXQgPSB4c21fc2V0X3RhcmdldChY U01fSE9PSywgZCwgZSk7CistICAgICAgICBpZiAoIHJldCApCistICAgICAgICB7CistICAgICAg ICAgICAgcHV0X2RvbWFpbihlKTsKKy0gICAgICAgICAgICBicmVhazsKKy0gICAgICAgIH0KKy0K Ky0gICAgICAgIC8qIEhvbGQgcmVmZXJlbmNlIG9uIEBlIHVudGlsIHdlIGRlc3Ryb3kgQGQuICov CistICAgICAgICBkLT50YXJnZXQgPSBlOworLSAgICAgICAgYnJlYWs7CistICAgIH0KKy0KKyAg ICAgY2FzZSBYRU5fRE9NQ1RMX3N1YnNjcmliZToKKyAgICAgICAgIGQtPnN1c3BlbmRfZXZ0Y2hu ID0gb3AtPnUuc3Vic2NyaWJlLnBvcnQ7CisgICAgICAgICBicmVhazsKKy0tLSBhL3hlbi9pbmNs dWRlL3hzbS9kdW1teS5oCisrKysgYi94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAorQEAgLTE1MCw3 ICsxNTAsNyBAQCBzdGF0aWMgWFNNX0lOTElORSBpbnQgY2ZfY2hlY2sgeHNtX3N5c2N0Cisgc3Rh dGljIFhTTV9JTkxJTkUgaW50IGNmX2NoZWNrIHhzbV9zZXRfdGFyZ2V0KAorICAgICBYU01fREVG QVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGRvbWFpbiAqZSkKKyB7CistICAgIFhT TV9BU1NFUlRfQUNUSU9OKFhTTV9IT09LKTsKKysgICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX1BS SVYpOworICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9t YWluLCBOVUxMKTsKKyB9CisgCitAQCAtMTcwLDYgKzE3MCw3IEBAIHN0YXRpYyBYU01fSU5MSU5F IGludCBjZl9jaGVjayB4c21fZG9tY3QKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2lvcG9ydF9wZXJt aXNzaW9uOgorICAgICBjYXNlIFhFTl9ET01DVExfaXJxX3Blcm1pc3Npb246CisgICAgIGNhc2Ug WEVOX0RPTUNUTF9tZW1vcnlfbWFwcGluZzoKKysgICAgY2FzZSBYRU5fRE9NQ1RMX3NldF90YXJn ZXQ6CisgICAgIGNhc2UgWEVOX0RPTUNUTF91bmJpbmRfcHRfaXJxOgorICAgICAgICAgQVNTRVJU X1VOUkVBQ0hBQkxFKCk7CisgICAgICAgICByZXR1cm4gLUVJTFNFUTsKKy0tLSBhL3hlbi94c20v Zmxhc2svaG9va3MuYworKysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCitAQCAtNzA1LDE0ICs3 MDUsMTEgQEAgc3RhdGljIGludCBjZl9jaGVjayBmbGFza19kb21jdGwoc3RydWN0CisgICAgIGNh c2UgWEVOX0RPTUNUTF9pb3BvcnRfcGVybWlzc2lvbjoKKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2ly cV9wZXJtaXNzaW9uOgorICAgICBjYXNlIFhFTl9ET01DVExfbWVtb3J5X21hcHBpbmc6CisrICAg IGNhc2UgWEVOX0RPTUNUTF9zZXRfdGFyZ2V0OgorICAgICBjYXNlIFhFTl9ET01DVExfdW5iaW5k X3B0X2lycToKKyAgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOworICAgICAgICAgcmV0dXJu IC1FSUxTRVE7CisgCistICAgIC8qIFRoZXNlIGhhdmUgaW5kaXZpZHVhbCBYU00gaG9va3MgKGNv bW1vbi9kb21jdGwuYykgKi8KKy0gICAgY2FzZSBYRU5fRE9NQ1RMX3NldF90YXJnZXQ6CistICAg ICAgICByZXR1cm4gMDsKKy0KKyAgICAgY2FzZSBYRU5fRE9NQ1RMX2Rlc3Ryb3lkb21haW46Cisg ICAgICAgICByZXR1cm4gY3VycmVudF9oYXNfcGVybShkLCBTRUNDTEFTU19ET01BSU4sIERPTUFJ Tl9fREVTVFJPWSk7CisgCgpkaWZmIC0tZ2l0IGEveHNhNDkzLTQuMjEtMDEucGF0Y2ggYi94c2E0 OTMtNC4yMS0wMS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDZi OWE1Ci0tLSAvZGV2L251bGwKKysrIGIveHNhNDkzLTQuMjEtMDEucGF0Y2gKQEAgLTAsMCArMSwz MTEgQEAKK0Zyb20gMmUyMWI1MzAxNzY1ZGUzNTNjMDYwODFlZWU5NTMyNTViZjMyNzE3NiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1pY2hhbCBPcnplbCA8bWljaGFsLm9yemVsQGFt ZC5jb20+CitEYXRlOiBUdWUsIDE0IEFwciAyMDI2IDEwOjExOjI0ICswMjAwCitTdWJqZWN0OiB4 ZW4vYXJtNjQ6IGZsdXNodGxiOiBPcHRpbWl6ZSBBUk02NF9XT1JLQVJPVU5EX1JFUEVBVF9UTEJJ CisKK1RoZSBBUk02NF9XT1JLQVJPVU5EX1JFUEVBVF9UTEJJIHdvcmthcm91bmQgaXMgdXNlZCB0 byBtaXRpZ2F0ZSBzZXZlcmFsCitlcnJhdGEgd2hlcmUgYnJvYWRjYXN0IFRMQkk7RFNCIHNlcXVl bmNlcyBkb24ndCBwcm92aWRlIGFsbCB0aGUKK2FyY2hpdGVjdHVyYWxseSByZXF1aXJlZCBzeW5j aHJvbml6YXRpb24uIFRoZSB3b3JrYXJvdW5kIHBlcmZvcm1zIG1vcmUKK3dvcmsgdGhhbiBuZWNl c3NhcnksIGFuZCBjYW4gaGF2ZSBzaWduaWZpY2FudCBvdmVyaGVhZC4gVGhpcyBwYXRjaAorb3B0 aW1pemVzIHRoZSB3b3JrYXJvdW5kLCBhcyBleHBsYWluZWQgYmVsb3cuCisKKzEuIEFsbCByZWxl dmFudCBlcnJhdGEgb25seSBhZmZlY3QgdGhlIG9yZGVyaW5nIGFuZC9vciBjb21wbGV0aW9uIG9m CisgICBtZW1vcnkgYWNjZXNzZXMgd2hpY2ggaGF2ZSBiZWVuIHRyYW5zbGF0ZWQgYnkgYW4gaW52 YWxpZGF0ZWQgVExCCisgICBlbnRyeS4gVGhlIGFjdHVhbCBpbnZhbGlkYXRpb24gb2YgVExCIGVu dHJpZXMgaXMgdW5hZmZlY3RlZC4KKworMi4gVGhlIGV4aXN0aW5nIHdvcmthcm91bmQgaXMgYXBw bGllZCB0byBib3RoIGJyb2FkY2FzdCBhbmQgbG9jYWwgVExCCisgICBpbnZhbGlkYXRpb24sIHdo ZXJlYXMgZm9yIGFsbCByZWxldmFudCBlcnJhdGEgaXQgaXMgb25seSBuZWNlc3NhcnkgdG8KKyAg IGFwcGx5IGEgd29ya2Fyb3VuZCBmb3IgYnJvYWRjYXN0IGludmFsaWRhdGlvbi4KKworMy4gVGhl IGV4aXN0aW5nIHdvcmthcm91bmQgcmVwbGFjZXMgZXZlcnkgVExCSSB3aXRoIGEgVExCSTtEU0I7 VExCSQorICAgc2VxdWVuY2UsIHdoZXJlYXMgZm9yIGFsbCByZWxldmFudCBlcnJhdGEgaXQgaXMg b25seSBuZWNlc3NhcnkgdG8KKyAgIGV4ZWN1dGUgYSBzaW5nbGUgYWRkaXRpb25hbCBUTEJJO0RT QiBzZXF1ZW5jZSBhZnRlciBhbnkgbnVtYmVyIG9mCisgICBUTEJJcyBhcmUgY29tcGxldGVkIGJ5 IGEgRFNCLgorCisgICBGb3IgZXhhbXBsZSwgZm9yIGEgc2VxdWVuY2Ugb2YgYmF0Y2hlZCBUTEJJ czoKKworICAgICAgIFRMQkkgPG9wMT5bLCA8YXJnMT5dCisgICAgICAgVExCSSA8b3AyPlssIDxh cmcyPl0KKyAgICAgICBUTEJJIDxvcDM+WywgPGFyZzM+XQorICAgICAgIERTQiBJU0gKKworICAg Li4uIHRoZSBleGlzdGluZyB3b3JrYXJvdW5kIHdpbGwgZXhwYW5kIHRoaXMgdG86CisKKyAgICAg ICBUTEJJIDxvcDE+WywgPGFyZzE+XQorICAgICAgIERTQiBJU0ggICAgICAgICAgICAgICAgICAv LyBhZGRpdGlvbmFsCisgICAgICAgVExCSSA8b3AxPlssIDxhcmcxPl0gICAgIC8vIGFkZGl0aW9u YWwKKyAgICAgICBUTEJJIDxvcDI+WywgPGFyZzI+XQorICAgICAgIERTQiBJU0ggICAgICAgICAg ICAgICAgICAvLyBhZGRpdGlvbmFsCisgICAgICAgVExCSSA8b3AyPlssIDxhcmcyPl0gICAgIC8v IGFkZGl0aW9uYWwKKyAgICAgICBUTEJJIDxvcDM+WywgPGFyZzM+XQorICAgICAgIERTQiBJU0gg ICAgICAgICAgICAgICAgICAvLyBhZGRpdGlvbmFsCisgICAgICAgVExCSSA8b3AzPlssIDxhcmcz Pl0gICAgIC8vIGFkZGl0aW9uYWwKKyAgICAgICBEU0IgSVNICisKKyAgIC4uLiB3aGVyZWFzIGl0 IGlzIHN1ZmZpY2llbnQgdG8gaGF2ZToKKworICAgICAgIFRMQkkgPG9wMT5bLCA8YXJnMT5dCisg ICAgICAgVExCSSA8b3AyPlssIDxhcmcyPl0KKyAgICAgICBUTEJJIDxvcDM+WywgPGFyZzM+XQor ICAgICAgIERTQiBJU0gKKyAgICAgICBUTEJJIDxvcFg+WywgPGFyZ1g+XSAgICAgLy8gYWRkaXRp b25hbAorICAgICAgIERTQiBJU0ggICAgICAgICAgICAgICAgICAvLyBhZGRpdGlvbmFsCisKKyAg IFVzaW5nIGEgc2luZ2xlIGFkZGl0aW9uYWwgVExCSSBhbmQgRFNCIGF0IHRoZSBlbmQgb2YgdGhl IHNlcXVlbmNlIGNhbgorICAgaGF2ZSBzaWduaWZpY2FudGx5IGxvd2VyIG92ZXJoZWFkIGFzIGVh Y2ggRFNCIHdoaWNoIGNvbXBsZXRlcyBhIFRMQkkKKyAgIG11c3Qgc3luY2hyb25pemUgd2l0aCBv dGhlciBQRXMgaW4gdGhlIHN5c3RlbSwgd2l0aCBwb3RlbnRpYWwKKyAgIHBlcmZvcm1hbmNlIGVm ZmVjdHMgYm90aCBsb2NhbGx5IGFuZCBzeXN0ZW0td2lkZS4KKworNC4gVGhlIGV4aXN0aW5nIHdv cmthcm91bmQgcmVwZWF0cyBlYWNoIHNwZWNpZmljIFRMQkkgb3BlcmF0aW9uLCB3aGVyZWFzCisg ICBmb3IgYWxsIHJlbGV2YW50IGVycmF0YSBpdCBpcyBzdWZmaWNpZW50IGZvciB0aGUgYWRkaXRp b25hbCBUTEJJIHRvCisgICB1c2UgKmFueSogb3BlcmF0aW9uIHdoaWNoIHdpbGwgYmUgYnJvYWRj YXN0LCByZWdhcmRsZXNzIG9mIHdoaWNoCisgICB0cmFuc2xhdGlvbiByZWdpbWUgb3Igc3RhZ2Ug b2YgdHJhbnNsYXRpb24gdGhlIG9wZXJhdGlvbiBhcHBsaWVzIHRvLgorCisgICBGb3IgZXhhbXBs ZSwgZm9yIGEgc2luZ2xlIFRMQkk6CisKKyAgICAgICBUTEJJIEFMTEUySVMKKyAgICAgICBEU0Ig SVNICisKKyAgIC4uLiB0aGUgZXhpc3Rpbmcgd29ya2Fyb3VuZCB3aWxsIGV4cGFuZCB0aGlzIHRv OgorCisgICAgICAgVExCSSBBTExFMklTCisgICAgICAgRFNCIElTSAorICAgICAgIFRMQkkgQUxM RTJJUyAgICAgICAgICAgICAvLyBhZGRpdGlvbmFsCisgICAgICAgRFNCIElTSCAgICAgICAgICAg ICAgICAgIC8vIGFkZGl0aW9uYWwKKworICAgLi4uIHdoZXJlYXMgaXQgaXMgc3VmZmljaWVudCB0 byBoYXZlOgorCisgICAgICAgVExCSSBBTExFMklTCisgICAgICAgRFNCIElTSAorICAgICAgIFRM QkkgVkFMRTFJUywgWFpSICAgICAgICAvLyBhZGRpdGlvbmFsCisgICAgICAgRFNCIElTSCAgICAg ICAgICAgICAgICAgIC8vIGFkZGl0aW9uYWwKKworICAgQXMgdGhlIGFkZGl0aW9uYWwgVExCSSBk b2Vzbid0IGhhdmUgdG8gbWF0Y2ggYSBzcGVjaWZpYyBlYXJsaWVyIFRMQkksCisgICB0aGUgYWRk aXRpb25hbCBUTEJJIGNhbiBiZSBpbXBsZW1lbnRlZCBpbiBzZXBhcmF0ZSBjb2RlLCB3aXRoIG5v CisgICBtZW1vcnkgb2YgdGhlIGVhcmxpZXIgVExCSXMuIFRoZSBhZGRpdGlvbmFsIFRMQkkgY2Fu IGFsc28gdXNlIGEKKyAgIGNoZWFwZXIgVExCSSBvcGVyYXRpb24uCisKKzUuIFRoZSBleGlzdGlu ZyB3b3JrYXJvdW5kIGlzIGFwcGxpZWQgdG8gYm90aCBTdGFnZS0xIGFuZCBTdGFnZS0yIFRMQgor ICAgaW52YWxpZGF0aW9uLCB3aGVyZWFzIGZvciBhbGwgcmVsZXZhbnQgZXJyYXRhIGl0IGlzIG9u bHkgbmVjZXNzYXJ5IHRvCisgICBhcHBseSBhIHdvcmthcm91bmQgZm9yIFN0YWdlLTEgaW52YWxp ZGF0aW9uLgorCisgICBBcmNoaXRlY3R1cmFsbHksIFRMQkkgb3BlcmF0aW9ucyB3aGljaCBpbnZh bGlkYXRlIG9ubHkgU3RhZ2UtMgorICAgaW5mb3JtYXRpb24gKGUuZy4gSVBBUzJFMUlTKSBhcmUg bm90IHJlcXVpcmVkIHRvIGludmFsaWRhdGUgVExCCisgICBlbnRyaWVzIHdoaWNoIGNvbWJpbmUg aW5mb3JtYXRpb24gZnJvbSBTdGFnZS0xIGFuZCBTdGFnZS0yCisgICB0cmFuc2xhdGlvbiB0YWJs ZSBlbnRyaWVzLCBhbmQgY29uc2VxdWVudGx5IG1heSBub3QgY29tcGxldGUgbWVtb3J5CisgICBh Y2Nlc3NlcyB0cmFuc2xhdGVkIGJ5IHRob3NlIGNvbWJpbmVkIGVudHJpZXMuIEluIHRoZXNlIGNh c2VzLAorICAgY29tcGxldGlvbiBvZiBtZW1vcnkgYWNjZXNzZXMgaXMgb25seSBndWFyYW50ZWVk IGFmdGVyIHN1YnNlcXVlbnQKKyAgIGludmFsaWRhdGlvbiBvZiBTdGFnZS0xIGluZm9ybWF0aW9u IChlLmcuIFZNQUxMRTFJUykuCisKK1Jld29yayB0aGUgd29ya2Fyb3VuZCBsb2dpYyBhcyBmb2xs b3dzOgorIC0gYWRkIFRMQl9IRUxQRVJfTE9DQUwoKSB0byBiZSB1c2VkIGZvciBsb2NhbCBUTEIg b3BzIHdpdGhvdXQgYQorICAgd29ya2Fyb3VuZCwKKyAtIG1vZGlmeSBUTEJfSEVMUEVSKCkgd29y a2Fyb3VuZCB0byB1c2UgdGxiaSB2YWxlMmlzLCB4enIgYXMgYSBzZWNvbmQKKyAgIFRMQkksCisg LSBkcm9wIFRMQl9IRUxQRVJfVkEoKS4gSXQncyB1c2VkIG9ubHkgYnkgX19mbHVzaF94ZW5fdGxi X29uZV9sb2NhbAorICAgd2hpY2ggaXMgbG9jYWwgYW5kIGRvZXMgbm90IG5lZWQgd29ya2Fyb3Vu ZCBhbmQgYnkKKyAgIF9fZmx1c2hfeGVuX3RsYl9vbmUuIEluIHRoZSBsYXR0ZXIgY2FzZSwgc2lu Y2UgaXQncyB1c2VkIGluIGEgbG9vcCwKKyAgIHdlIGRvbid0IG5lZWQgYSB3b3JrYXJvdW5kIGlu IHRoZSBtaWRkbGUuIEFkZCBfX3RsYl9yZXBlYXRfc3luYyB3aXRoCisgICBhIHdvcmthcm91bmQg dG8gYmUgdXNlZCBhdCB0aGUgZW5kIGFmdGVyIERTQiBhbmQgYmVmb3JlIGZpbmFsIElTQiwKKyAt IFRMQkkgVkFMRTJJUyBwYXNzaW5nIFhaUiBpcyB1c2VkIGFzIGFuIGFkZGl0aW9uYWwgVExCSS4g V2hpbGUgdGhlcmUgaXMKKyAgIGFuIGlkZW50aXR5IG1hcHBpbmcgdGhlcmUsIGl0J3MgdXNlZCB2 ZXJ5IHJhcmVseS4gVGhlIHBlcmZvcm1hbmNlCisgICBpbXBhY3QgaXMgdGhlcmVmb3JlIG5lZ2xp Z2libGUuIElmIHRoaW5ncyBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSwgd2UKKyAgIGNhbiByZXZpc2l0 IHRoZSBkZWNpc2lvbi4KKworU2lnbmVkLW9mZi1ieTogTWljaGFsIE9yemVsIDxtaWNoYWwub3J6 ZWxAYW1kLmNvbT4KK1Jldmlld2VkLWJ5OiBMdWNhIEZhbmNlbGx1IDxsdWNhLmZhbmNlbGx1QGFy bS5jb20+CitSZXZpZXdlZC1ieTogSnVsaWVuIEdyYWxsIDxqZ3JhbGxAYW1hem9uLmNvbT4KKyhj aGVycnkgcGlja2VkIGZyb20gY29tbWl0IDdjNTAyZDc1OTE1MTkxMzU3NjViODA0MWNiZDFjNzBl NTZlNWEwYjkpCisKK2RpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtMzIv Zmx1c2h0bGIuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hcm0zMi9mbHVzaHRsYi5oCitp bmRleCA2MWMyNWEzMTg5OTguLjU0ODNiZTA4ZmJiZSAxMDA2NDQKKy0tLSBhL3hlbi9hcmNoL2Fy bS9pbmNsdWRlL2FzbS9hcm0zMi9mbHVzaHRsYi5oCisrKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVk ZS9hc20vYXJtMzIvZmx1c2h0bGIuaAorQEAgLTU3LDYgKzU3LDkgQEAgc3RhdGljIGlubGluZSB2 b2lkIF9fZmx1c2hfeGVuX3RsYl9vbmUodmFkZHJfdCB2YSkKKyAgICAgYXNtIHZvbGF0aWxlKFNU T1JFX0NQMzIoMCwgVExCSU1WQUhJUykgOiA6ICJyIiAodmEpIDogIm1lbW9yeSIpOworIH0KKyAK KysvKiBPbmx5IGZvciBBUk02NF9XT1JLQVJPVU5EX1JFUEVBVF9UTEJJICovCisrc3RhdGljIGlu bGluZSB2b2lkIF9fdGxiX3JlcGVhdF9zeW5jKHZvaWQpIHt9CisrCisgI2VuZGlmIC8qIF9fQVNN X0FSTV9BUk0zMl9GTFVTSFRMQl9IX18gKi8KKyAvKgorICAqIExvY2FsIHZhcmlhYmxlczoKK2Rp ZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtNjQvZmx1c2h0bGIuaCBiL3hl bi9hcmNoL2FybS9pbmNsdWRlL2FzbS9hcm02NC9mbHVzaHRsYi5oCitpbmRleCAzYjk5YzExYjUw ZDEuLjE2MDZiMjZiZjI4YSAxMDA2NDQKKy0tLSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9h cm02NC9mbHVzaHRsYi5oCisrKysgYi94ZW4vYXJjaC9hcm0vaW5jbHVkZS9hc20vYXJtNjQvZmx1 c2h0bGIuaAorQEAgLTEyLDkgKzEyLDE0IEBACisgICogQVJNNjRfV09SS0FST1VORF9SRVBFQVRf VExCSToKKyAgKiBNb2RpZmljYXRpb24gb2YgdGhlIHRyYW5zbGF0aW9uIHRhYmxlIGZvciBhIHZp cnR1YWwgYWRkcmVzcyBtaWdodCBsZWFkIHRvCisgICogcmVhZC1hZnRlci1yZWFkIG9yZGVyaW5n IHZpb2xhdGlvbi4KKy0gKiBUaGUgd29ya2Fyb3VuZCByZXBlYXRzIFRMQkkrRFNCIElTSCBvcGVy YXRpb24gZm9yIGFsbCB0aGUgVExCIGZsdXNoCistICogb3BlcmF0aW9ucy4gV2hpbGUgdGhpcyBp cyBzdHJpY3RseSBub3QgbmVjZXNzYXJ5LCB3ZSBkb24ndCB3YW50IHRvCistICogdGFrZSBhbnkg cmlzay4KKysgKiBUaGUgd29ya2Fyb3VuZCByZXBlYXRzIFRMQkkrRFNCIElTSCBvcGVyYXRpb24g Zm9yIGJyb2FkY2FzdCBUTEIgZmx1c2gKKysgKiBvcGVyYXRpb25zLiBUaGUgd29ya2Fyb3VuZCBp cyBub3QgbmVlZGVkIGZvciBsb2NhbCBvcGVyYXRpb25zLgorKyAqCisrICogSXQgaXMgc3VmZmlj aWVudCBmb3IgdGhlIGFkZGl0aW9uYWwgVExCSSB0byB1c2UgKmFueSogb3BlcmF0aW9uIHdoaWNo IHdpbGwKKysgKiBiZSBicm9hZGNhc3QsIHJlZ2FyZGxlc3Mgb2Ygd2hpY2ggdHJhbnNsYXRpb24g cmVnaW1lIG9yIHN0YWdlIG9mIHRyYW5zbGF0aW9uCisrICogdGhlIG9wZXJhdGlvbiBhcHBsaWVz IHRvLiBUTEJJIFZBTEUySVMgaXMgdXNlZCBwYXNzaW5nIFhaUi4gV2hpbGUgdGhlcmUgaXMKKysg KiBhbiBpZGVudGl0eSBtYXBwaW5nIHRoZXJlLCBpdCdzIG9ubHkgdXNlZCBkdXJpbmcgc3VzcGVu ZC9yZXN1bWUsIENQVSBvbi9vZmYsCisrICogc28gdGhlIGltcGFjdCAocGVyZm9ybWFuY2UgaWYg YW55KSBpcyBuZWdsaWdpYmxlLgorICAqCisgICogRm9yIFhlbiBwYWdlLXRhYmxlcyB0aGUgSVNC IHdpbGwgZGlzY2FyZCBhbnkgaW5zdHJ1Y3Rpb25zIGZldGNoZWQKKyAgKiBmcm9tIHRoZSBvbGQg bWFwcGluZ3MuCitAQCAtMjYsNjkgKzMxLDkwIEBACisgICogTm90ZSB0aGF0IGZvciBsb2NhbCBU TEIgZmx1c2gsIHVzaW5nIG5vbi1zaGFyZWFibGUgKG5zaCkgaXMgc3VmZmljaWVudAorICAqIChz ZWUgRDUtNDkyOSBpbiBBUk0gRERJIDA0ODdILmEpLiBBbHRob3VnaCwgdGhlIG1lbW9yeSBiYXJy aWVyIGluCisgICogZm9yIHRoZSB3b3JrYXJvdW5kIGlzIGxlZnQgYXMgaW5uZXItc2hhcmVhYmxl IHRvIG1hdGNoIHdpdGggTGludXgKKy0gKiB2Ni4xLXJjOC4KKysgKiB2Ni4xOS4KKyAgKi8KKy0j ZGVmaW5lIFRMQl9IRUxQRVIobmFtZSwgdGxib3AsIHNoKSAgICAgICAgICAgICAgXAorKyNkZWZp bmUgVExCX0hFTFBFUl9MT0NBTChuYW1lLCB0bGJvcCkgICAgICAgICAgICBcCisgc3RhdGljIGlu bGluZSB2b2lkIG5hbWUodm9pZCkgICAgICAgICAgICAgICAgICAgIFwKKyB7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICBhc21faW5saW5lIHZv bGF0aWxlICggICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAiZHNiICAiICAjIHNo ICAic3Q7IiAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgICJkc2IgIG5zaHN0OyIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgInRsYmkgIiAgIyB0bGJvcCAgIjsi ICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICBBTFRFUk5BVElWRSggICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAibm9wOyBub3A7IiwgICAgICAgICAgICAg ICAgICAgICAgICAgXAorLSAgICAgICAgICAgICJkc2IgIGlzaDsiICAgICAgICAgICAgICAgICAg ICAgICAgICBcCistICAgICAgICAgICAgInRsYmkgIiAgIyB0bGJvcCAgIjsiLCAgICAgICAgICAg ICAgIFwKKy0gICAgICAgICAgICBBUk02NF9XT1JLQVJPVU5EX1JFUEVBVF9UTEJJLCAgICAgICAg XAorLSAgICAgICAgICAgIENPTkZJR19BUk02NF9XT1JLQVJPVU5EX1JFUEVBVF9UTEJJKSBcCist ICAgICAgICAiZHNiICAiICAjIHNoICAiOyIgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAg ICAgICJkc2IgIG5zaDsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAg ImlzYjsiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICA6IDog OiAibWVtb3J5Iik7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyB9CisgCistLyoKKy0gKiBG THVzaCBUTEIgYnkgVkEuIFRoaXMgd2lsbCBsaWtlbHkgYmUgdXNlZCBpbiBhIGxvb3AsIHNvIHRo ZSBjYWxsZXIKKy0gKiBpcyByZXNwb25zaWJsZSB0byB1c2UgdGhlIGFwcHJvcHJpYXRlIG1lbW9y eSBiYXJyaWVycyBiZWZvcmUvYWZ0ZXIKKy0gKiB0aGUgc2VxdWVuY2UuCistICoKKy0gKiBTZWUg YWJvdmUgYWJvdXQgdGhlIEFSTTY0X1dPUktBUk9VTkRfUkVQRUFUX1RMQkkgc2VxdWVuY2UuCist ICovCistI2RlZmluZSBUTEJfSEVMUEVSX1ZBKG5hbWUsIHRsYm9wKSAgICAgICAgICAgICAgIFwK Ky1zdGF0aWMgaW5saW5lIHZvaWQgbmFtZSh2YWRkcl90IHZhKSAgICAgICAgICAgICAgXAorLXsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgIGFz bV9pbmxpbmUgdm9sYXRpbGUgKCAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICJ0 bGJpICIgICMgdGxib3AgICIsICUwOyIgICAgICAgICAgICAgICAgXAorLSAgICAgICAgQUxURVJO QVRJVkUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICAgICAgIm5vcDsg bm9wOyIsICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0gICAgICAgICAgICAiZHNiICBpc2g7 IiAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgICAgICJ0bGJpICIgICMgdGxi b3AgICIsICUwOyIsICAgICAgICAgICBcCistICAgICAgICAgICAgQVJNNjRfV09SS0FST1VORF9S RVBFQVRfVExCSSwgICAgICAgIFwKKy0gICAgICAgICAgICBDT05GSUdfQVJNNjRfV09SS0FST1VO RF9SRVBFQVRfVExCSSkgXAorLSAgICAgICAgOiA6ICJyIiAodmEgPj4gUEFHRV9TSElGVCkgOiAi bWVtb3J5Iik7ICBcCisrI2RlZmluZSBUTEJfSEVMUEVSKG5hbWUsIHRsYm9wKSAgICAgICAgICAg ICAgICAgICAgICAgXAorK3N0YXRpYyBpbmxpbmUgdm9pZCBuYW1lKHZvaWQpICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKyt7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisrICAgIGFzbV9pbmxpbmUgdm9sYXRpbGUgKCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgICAgICAgImRzYiAgaXNoc3Q7IiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKysgICAgICAgICJ0bGJpICIgICMgdGxib3AgICI7IiAgICAgICAg ICAgICAgICAgICAgICAgICBcCisrICAgICAgICBBTFRFUk5BVElWRSggICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgICAgICAgICAgICJub3A7IG5vcDsiLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgICAgICAiZHNiICBpc2g7IiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgICAgICAgInRsYmkgdmFsZTJpcywgeHpyOyIs ICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICAgICAgIEFSTTY0X1dPUktBUk9VTkRfUkVQ RUFUX1RMQkksICAgICAgICAgICAgIFwKKysgICAgICAgICAgICBDT05GSUdfQVJNNjRfV09SS0FS T1VORF9SRVBFQVRfVExCSSkgICAgICBcCisrICAgICAgICAiZHNiICBpc2g7IiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICAgImlzYjsiICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgIDogOiA6ICJtZW1vcnkiKTsgXAor IH0KKyAKKyAvKiBGbHVzaCBsb2NhbCBUTEJzLCBjdXJyZW50IFZNSUQgb25seS4gKi8KKy1UTEJf SEVMUEVSKGZsdXNoX2d1ZXN0X3RsYl9sb2NhbCwgdm1hbGxzMTJlMSwgbnNoKQorK1RMQl9IRUxQ RVJfTE9DQUwoZmx1c2hfZ3Vlc3RfdGxiX2xvY2FsLCB2bWFsbHMxMmUxKQorIAorIC8qIEZsdXNo IGlubmVyc2hhcmVhYmxlIFRMQnMsIGN1cnJlbnQgVk1JRCBvbmx5ICovCistVExCX0hFTFBFUihm bHVzaF9ndWVzdF90bGIsIHZtYWxsczEyZTFpcywgaXNoKQorK1RMQl9IRUxQRVIoZmx1c2hfZ3Vl c3RfdGxiLCB2bWFsbHMxMmUxaXMpCisgCisgLyogRmx1c2ggbG9jYWwgVExCcywgYWxsIFZNSURz LCBub24taHlwZXJ2aXNvciBtb2RlICovCistVExCX0hFTFBFUihmbHVzaF9hbGxfZ3Vlc3RzX3Rs Yl9sb2NhbCwgYWxsZTEsIG5zaCkKKytUTEJfSEVMUEVSX0xPQ0FMKGZsdXNoX2FsbF9ndWVzdHNf dGxiX2xvY2FsLCBhbGxlMSkKKyAKKyAvKiBGbHVzaCBpbm5lcnNoYXJlYWJsZSBUTEJzLCBhbGwg Vk1JRHMsIG5vbi1oeXBlcnZpc29yIG1vZGUgKi8KKy1UTEJfSEVMUEVSKGZsdXNoX2FsbF9ndWVz dHNfdGxiLCBhbGxlMWlzLCBpc2gpCisrVExCX0hFTFBFUihmbHVzaF9hbGxfZ3Vlc3RzX3RsYiwg YWxsZTFpcykKKyAKKyAvKiBGbHVzaCBhbGwgaHlwZXJ2aXNvciBtYXBwaW5ncyBmcm9tIHRoZSBU TEIgb2YgdGhlIGxvY2FsIHByb2Nlc3Nvci4gKi8KKy1UTEJfSEVMUEVSKGZsdXNoX3hlbl90bGJf bG9jYWwsIGFsbGUyLCBuc2gpCisrVExCX0hFTFBFUl9MT0NBTChmbHVzaF94ZW5fdGxiX2xvY2Fs LCBhbGxlMikKKysKKysjdW5kZWYgVExCX0hFTFBFUl9MT0NBTAorKyN1bmRlZiBUTEJfSEVMUEVS CisrCisrLyoKKysgKiBGTHVzaCBUTEIgYnkgVkEuIFRoaXMgd2lsbCBsaWtlbHkgYmUgdXNlZCBp biBhIGxvb3AsIHNvIHRoZSBjYWxsZXIKKysgKiBpcyByZXNwb25zaWJsZSB0byB1c2UgdGhlIGFw cHJvcHJpYXRlIG1lbW9yeSBiYXJyaWVycyBiZWZvcmUvYWZ0ZXIKKysgKiB0aGUgc2VxdWVuY2Uu CisrICovCisgCisgLyogRmx1c2ggVExCIG9mIGxvY2FsIHByb2Nlc3NvciBmb3IgYWRkcmVzcyB2 YS4gKi8KKy1UTEJfSEVMUEVSX1ZBKF9fZmx1c2hfeGVuX3RsYl9vbmVfbG9jYWwsIHZhZTIpCisr c3RhdGljIGlubGluZSB2b2lkIF9fZmx1c2hfeGVuX3RsYl9vbmVfbG9jYWwodmFkZHJfdCB2YSkK Kyt7CisrICAgIGFzbV9pbmxpbmUgdm9sYXRpbGUgKAorKyAgICAgICAgInRsYmkgdmFlMiwgJTAi IDogOiAiciIgKHZhID4+IFBBR0VfU0hJRlQpIDogIm1lbW9yeSIpOworK30KKyAKKyAvKiBGbHVz aCBUTEIgb2YgYWxsIHByb2Nlc3NvcnMgaW4gdGhlIGlubmVyLXNoYXJlYWJsZSBkb21haW4gZm9y IGFkZHJlc3MgdmEuICovCistVExCX0hFTFBFUl9WQShfX2ZsdXNoX3hlbl90bGJfb25lLCB2YWUy aXMpCisrc3RhdGljIGlubGluZSB2b2lkIF9fZmx1c2hfeGVuX3RsYl9vbmUodmFkZHJfdCB2YSkK Kyt7CisrICAgIGFzbV9pbmxpbmUgdm9sYXRpbGUgKAorKyAgICAgICAgInRsYmkgdmFlMmlzLCAl MCIgOiA6ICJyIiAodmEgPj4gUEFHRV9TSElGVCkgOiAibWVtb3J5Iik7CisrfQorIAorLSN1bmRl ZiBUTEJfSEVMUEVSCistI3VuZGVmIFRMQl9IRUxQRVJfVkEKKysvKgorKyAqIEFSTTY0X1dPUktB Uk9VTkRfUkVQRUFUX1RMQkk6CisrICogRm9yIGFsbCByZWxldmFudCBlcnJhdGFzIGl0IGlzIG9u bHkgbmVjZXNzYXJ5IHRvIGV4ZWN1dGUgYSBzaW5nbGUKKysgKiBhZGRpdGlvbmFsIFRMQkk7RFNC IHNlcXVlbmNlIGFmdGVyIGFueSBudW1iZXIgb2YgVExCSXMgYXJlIGNvbXBsZXRlZCBieSBEU0Iu CisrICovCisrc3RhdGljIGlubGluZSB2b2lkIF9fdGxiX3JlcGVhdF9zeW5jKHZvaWQpCisrewor KyAgICBhc21faW5saW5lIHZvbGF0aWxlICgKKysgICAgICAgIEFMVEVSTkFUSVZFKAorKyAgICAg ICAgICAgICJub3A7IG5vcDsiLAorKyAgICAgICAgICAgICJ0bGJpIHZhbGUyaXMsIHh6cjsiCisr ICAgICAgICAgICAgImRzYiAgaXNoOyIsCisrICAgICAgICAgICAgQVJNNjRfV09SS0FST1VORF9S RVBFQVRfVExCSSwKKysgICAgICAgICAgICBDT05GSUdfQVJNNjRfV09SS0FST1VORF9SRVBFQVRf VExCSSkKKysgICAgICAgIDogOiA6ICJtZW1vcnkiKTsKKyt9CisgCisgI2VuZGlmIC8qIF9fQVNN X0FSTV9BUk02NF9GTFVTSFRMQl9IX18gKi8KKyAvKgorZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2Fy bS9pbmNsdWRlL2FzbS9mbHVzaHRsYi5oIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2ZsdXNo dGxiLmgKK2luZGV4IGU0NWZiNmQ5N2IwMi4uYzI5MmMzYzAwZDI5IDEwMDY0NAorLS0tIGEveGVu L2FyY2gvYXJtL2luY2x1ZGUvYXNtL2ZsdXNodGxiLmgKKysrKyBiL3hlbi9hcmNoL2FybS9pbmNs dWRlL2FzbS9mbHVzaHRsYi5oCitAQCAtNjUsNiArNjUsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQg Zmx1c2hfeGVuX3RsYl9yYW5nZV92YSh2YWRkcl90IHZhLAorICAgICAgICAgdmEgKz0gUEFHRV9T SVpFOworICAgICB9CisgICAgIGRzYihpc2gpOyAvKiBFbnN1cmUgdGhlIFRMQiBpbnZhbGlkYXRp b24gaGFzIGNvbXBsZXRlZCAqLworKyAgICBfX3RsYl9yZXBlYXRfc3luYygpOworICAgICBpc2Io KTsKKyB9CisgCitkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21tdS9sYXlv dXQuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tbXUvbGF5b3V0LmgKK2luZGV4IDE5YzBl YzYzYTU5YS4uZmVhZmMxNGViZmRhIDEwMDY0NAorLS0tIGEveGVuL2FyY2gvYXJtL2luY2x1ZGUv YXNtL21tdS9sYXlvdXQuaAorKysrIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21tdS9sYXlv dXQuaAorQEAgLTIzLDYgKzIzLDEwIEBACisgICoKKyAgKiAgUmVzZXJ2ZWQgdG8gaWRlbnRpdHkg bWFwIFhlbgorICAqCisrICogIE5vdGU6IEFzIHBhcnQgb2YgQVJNNjRfV09SS0FST1VORF9SRVBF QVRfVExCSSwgVkEgMCBpcyB1c2VkIGZvciBhbiBleHRyYQorKyAqICBUTEJJIG9wZXJhdGlvbiBn aXZlbiBpdHMgcmFyZSB1c2UgKG9ubHkgaWRlbnRpdHkgbWFwcGluZykgYW5kIHRodXMKKysgKiAg bmVnbGlnaWJsZSBwZXJmb3JtYW5jZSBpbXBhY3QuCisrICoKKyAgKiAweDAwMDAwYTAwMDAwMDAw MDAgLSAweDAwMDAwYTdmZmZmZmZmZmYgKDUxMkdCLCBMMCBzbG90IFsyMF0pCisgICogIChSZWxh dGl2ZSBvZmZzZXRzKQorICAqICAgMCAgLSAgIDJNICAgVW5tYXBwZWQKCmRpZmYgLS1naXQgYS94 c2E0OTMtNC4yMS0wMi5wYXRjaCBiL3hzYTQ5My00LjIxLTAyLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4MDExOWMKLS0tIC9kZXYvbnVsbAorKysgYi94c2E0OTMt NC4yMS0wMi5wYXRjaApAQCAtMCwwICsxLDcxIEBACitGcm9tIDdlNzBiODc1MTJjOTY2MjQ4YjFl ODQ1M2Q5YWM1NGM2NDNjMDZmNDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNaWNo YWwgT3J6ZWwgPG1pY2hhbC5vcnplbEBhbWQuY29tPgorRGF0ZTogRnJpLCAyMiBNYXkgMjAyNiAw OTozNTo1NSArMDIwMAorU3ViamVjdDogeGVuL2FybTogU3luYyBtaXNzaW5nIGRlZmluaXRpb25z IGZvciBBcm0gQ1BVcyB3aXRoIExpbnV4CisKK1N5bmNocm9uaXplIHdpdGggTGludXgga2VybmVs IDcuMCBkZWZpbml0aW9ucyBmb3IgdGhlIGZvbGxvd2luZyBDUFVzOgorIC0gQ29ydGV4LUE3NkFF LAorIC0gQ29ydGV4LUE3OEFFLAorIC0gQ29ydGV4LVgxQywKKyAtIENvcnRleC1YMywKKyAtIE5l b3ZlcnNlLVYyLAorIC0gQ29ydGV4LVg0LAorIC0gTmVvdmVyc2UtVjNBRSwKKyAtIE5lb3ZlcnNl LVYzLAorIC0gQ29ydGV4LVg5MjUuCisKK1RoZXNlIHdpbGwgYmUgdXNlZCBmb3IgZXJyYXRhIGRl dGVjdGlvbiBpbiBzdWJzZXF1ZW50IHBhdGNoZXMuCisKK1NpZ25lZC1vZmYtYnk6IE1pY2hhbCBP cnplbCA8bWljaGFsLm9yemVsQGFtZC5jb20+CitSZXZpZXdlZC1ieTogSnVsaWVuIEdyYWxsIDxq dWxpZW5AeGVuLm9yZz4KKworZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9w cm9jZXNzb3IuaCBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaAoraW5kZXgg ZWMyM2ZkMDk4YjYzLi45MDc3Nzg2ODNiMDggMTAwNjQ0CistLS0gYS94ZW4vYXJjaC9hcm0vaW5j bHVkZS9hc20vcHJvY2Vzc29yLmgKKysrKyBiL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wcm9j ZXNzb3IuaAorQEAgLTg5LDEzICs4OSwyMiBAQAorICNkZWZpbmUgQVJNX0NQVV9QQVJUX0NPUlRF WF9BNzYgICAgIDB4RDBCCisgI2RlZmluZSBBUk1fQ1BVX1BBUlRfTkVPVkVSU0VfTjEgICAgMHhE MEMKKyAjZGVmaW5lIEFSTV9DUFVfUEFSVF9DT1JURVhfQTc3ICAgICAweEQwRAorKyNkZWZpbmUg QVJNX0NQVV9QQVJUX0NPUlRFWF9BNzZBRSAgIDB4RDBFCisgI2RlZmluZSBBUk1fQ1BVX1BBUlRf TkVPVkVSU0VfVjEgICAgMHhENDAKKyAjZGVmaW5lIEFSTV9DUFVfUEFSVF9DT1JURVhfQTc4ICAg ICAweEQ0MQorKyNkZWZpbmUgQVJNX0NQVV9QQVJUX0NPUlRFWF9BNzhBRSAgIDB4RDQyCisgI2Rl ZmluZSBBUk1fQ1BVX1BBUlRfQ09SVEVYX1gxICAgICAgMHhENDQKKyAjZGVmaW5lIEFSTV9DUFVf UEFSVF9DT1JURVhfQTcxMCAgICAweEQ0NworICNkZWZpbmUgQVJNX0NQVV9QQVJUX0NPUlRFWF9Y MiAgICAgIDB4RDQ4CisgI2RlZmluZSBBUk1fQ1BVX1BBUlRfTkVPVkVSU0VfTjIgICAgMHhENDkK KyAjZGVmaW5lIEFSTV9DUFVfUEFSVF9DT1JURVhfQTc4QyAgICAweEQ0QgorKyNkZWZpbmUgQVJN X0NQVV9QQVJUX0NPUlRFWF9YMUMgICAgIDB4RDRDCisrI2RlZmluZSBBUk1fQ1BVX1BBUlRfQ09S VEVYX1gzICAgICAgMHhENEUKKysjZGVmaW5lIEFSTV9DUFVfUEFSVF9ORU9WRVJTRV9WMiAgICAw eEQ0RgorKyNkZWZpbmUgQVJNX0NQVV9QQVJUX0NPUlRFWF9YNCAgICAgIDB4RDgyCisrI2RlZmlu ZSBBUk1fQ1BVX1BBUlRfTkVPVkVSU0VfVjNBRSAgMHhEODMKKysjZGVmaW5lIEFSTV9DUFVfUEFS VF9ORU9WRVJTRV9WMyAgICAweEQ4NAorKyNkZWZpbmUgQVJNX0NQVV9QQVJUX0NPUlRFWF9YOTI1 ICAgIDB4RDg1CisgCisgI2RlZmluZSBNSURSX0NPUlRFWF9BMTIgTUlEUl9DUFVfTU9ERUwoQVJN X0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfQ09SVEVYX0ExMikKKyAjZGVmaW5lIE1JRFJfQ09S VEVYX0ExNyBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0sIEFSTV9DUFVfUEFSVF9DT1JU RVhfQTE3KQorQEAgLTExMCwxMyArMTE5LDIyIEBACisgI2RlZmluZSBNSURSX0NPUlRFWF9BNzYg TUlEUl9DUFVfTU9ERUwoQVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfQ09SVEVYX0E3NikK KyAjZGVmaW5lIE1JRFJfTkVPVkVSU0VfTjEgTUlEUl9DUFVfTU9ERUwoQVJNX0NQVV9JTVBfQVJN LCBBUk1fQ1BVX1BBUlRfTkVPVkVSU0VfTjEpCisgI2RlZmluZSBNSURSX0NPUlRFWF9BNzcgTUlE Ul9DUFVfTU9ERUwoQVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfQ09SVEVYX0E3NykKKysj ZGVmaW5lIE1JRFJfQ09SVEVYX0E3NkFFIE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwg QVJNX0NQVV9QQVJUX0NPUlRFWF9BNzZBRSkKKyAjZGVmaW5lIE1JRFJfTkVPVkVSU0VfVjEgTUlE Ul9DUFVfTU9ERUwoQVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfTkVPVkVSU0VfVjEpCisg I2RlZmluZSBNSURSX0NPUlRFWF9BNzggTUlEUl9DUFVfTU9ERUwoQVJNX0NQVV9JTVBfQVJNLCBB Uk1fQ1BVX1BBUlRfQ09SVEVYX0E3OCkKKysjZGVmaW5lIE1JRFJfQ09SVEVYX0E3OEFFIE1JRFJf Q1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX0NPUlRFWF9BNzhBRSkKKyAj ZGVmaW5lIE1JRFJfQ09SVEVYX1gxICBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0sIEFS TV9DUFVfUEFSVF9DT1JURVhfWDEpCisgI2RlZmluZSBNSURSX0NPUlRFWF9BNzEwIE1JRFJfQ1BV X01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX0NPUlRFWF9BNzEwKQorICNkZWZp bmUgTUlEUl9DT1JURVhfWDIgIE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQ VV9QQVJUX0NPUlRFWF9YMikKKyAjZGVmaW5lIE1JRFJfTkVPVkVSU0VfTjIgTUlEUl9DUFVfTU9E RUwoQVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfTkVPVkVSU0VfTjIpCisgI2RlZmluZSBN SURSX0NPUlRFWF9BNzhDIE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9Q QVJUX0NPUlRFWF9BNzhDKQorKyNkZWZpbmUgTUlEUl9DT1JURVhfWDFDIE1JRFJfQ1BVX01PREVM KEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX0NPUlRFWF9YMUMpCisrI2RlZmluZSBNSURS X0NPUlRFWF9YMyBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0sIEFSTV9DUFVfUEFSVF9D T1JURVhfWDMpCisrI2RlZmluZSBNSURSX05FT1ZFUlNFX1YyIE1JRFJfQ1BVX01PREVMKEFSTV9D UFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX05FT1ZFUlNFX1YyKQorKyNkZWZpbmUgTUlEUl9DT1JU RVhfWDQgTUlEUl9DUFVfTU9ERUwoQVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfQ09SVEVY X1g0KQorKyNkZWZpbmUgTUlEUl9ORU9WRVJTRV9WM0FFIE1JRFJfQ1BVX01PREVMKEFSTV9DUFVf SU1QX0FSTSwgQVJNX0NQVV9QQVJUX05FT1ZFUlNFX1YzQUUpCisrI2RlZmluZSBNSURSX05FT1ZF UlNFX1YzIE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX05FT1ZF UlNFX1YzKQorKyNkZWZpbmUgTUlEUl9DT1JURVhfWDkyNSBNSURSX0NQVV9NT0RFTChBUk1fQ1BV X0lNUF9BUk0sIEFSTV9DUFVfUEFSVF9DT1JURVhfWDkyNSkKKyAKKyAvKiBNUElEUiBNdWx0aXBy b2Nlc3NvciBBZmZpbml0eSBSZWdpc3RlciAqLworICNkZWZpbmUgX01QSURSX1VQICAgICAgICAg ICAoMzApCgpkaWZmIC0tZ2l0IGEveHNhNDkzLTQuMjEtMDMucGF0Y2ggYi94c2E0OTMtNC4yMS0w My5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NmJhZTY4Ci0tLSAv ZGV2L251bGwKKysrIGIveHNhNDkzLTQuMjEtMDMucGF0Y2gKQEAgLTAsMCArMSwzNyBAQAorRnJv bSBjMGY3YjQwZmRiYjk4NmIzY2Y0NzBlZDUxZjM4NzgyNjFlMzNmOWNiIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogTWljaGFsIE9yemVsIDxtaWNoYWwub3J6ZWxAYW1kLmNvbT4KK0Rh dGU6IEZyaSwgMjIgTWF5IDIwMjYgMDk6MzU6NTYgKzAyMDAKK1N1YmplY3Q6IHhlbi9hcm06IEFk ZCBDMS1VbHRyYSBkZWZpbml0aW9ucworCitBZGQgcHJvY2Vzc29yIGRlZmluaXRpb25zIGZvciBD MS1VbHRyYS4gVGhlc2Ugd2lsbCBiZSB1c2VkIGZvciBlcnJhdGEKK2RldGVjdGlvbiBpbiBzdWJz ZXF1ZW50IHBhdGNoZXMuCisKK1RoZXNlIHZhbHVlcyBjYW4gYmUgZm91bmQgaW4gdGhlIEMxLVVs dHJhIFRSTToKKworICBodHRwczovL2RldmVsb3Blci5hcm0uY29tL2RvY3VtZW50YXRpb24vMTA4 MDE0LzAxMDAvCisKKy4uLiBpbiBzZWN0aW9uIEEuNS4xICgiTUlEUl9FTDEsIE1haW4gSUQgUmVn aXN0ZXIiKS4KKworU2lnbmVkLW9mZi1ieTogTWljaGFsIE9yemVsIDxtaWNoYWwub3J6ZWxAYW1k LmNvbT4KK1Jldmlld2VkLWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGllbkB4ZW4ub3JnPgorCitkaWZm IC0tZ2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIGIveGVuL2FyY2gv YXJtL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCitpbmRleCA5MDc3Nzg2ODNiMDguLjcyNzQ1Y2Nh NjJiYyAxMDA2NDQKKy0tLSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaAor KysrIGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCitAQCAtMTA1LDYgKzEw NSw3IEBACisgI2RlZmluZSBBUk1fQ1BVX1BBUlRfTkVPVkVSU0VfVjNBRSAgMHhEODMKKyAjZGVm aW5lIEFSTV9DUFVfUEFSVF9ORU9WRVJTRV9WMyAgICAweEQ4NAorICNkZWZpbmUgQVJNX0NQVV9Q QVJUX0NPUlRFWF9YOTI1ICAgIDB4RDg1CisrI2RlZmluZSBBUk1fQ1BVX1BBUlRfQzFfVUxUUkEg ICAgICAgMHhEOEMKKyAKKyAjZGVmaW5lIE1JRFJfQ09SVEVYX0ExMiBNSURSX0NQVV9NT0RFTChB Uk1fQ1BVX0lNUF9BUk0sIEFSTV9DUFVfUEFSVF9DT1JURVhfQTEyKQorICNkZWZpbmUgTUlEUl9D T1JURVhfQTE3IE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX0NP UlRFWF9BMTcpCitAQCAtMTM1LDYgKzEzNiw3IEBACisgI2RlZmluZSBNSURSX05FT1ZFUlNFX1Yz QUUgTUlEUl9DUFVfTU9ERUwoQVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfTkVPVkVSU0Vf VjNBRSkKKyAjZGVmaW5lIE1JRFJfTkVPVkVSU0VfVjMgTUlEUl9DUFVfTU9ERUwoQVJNX0NQVV9J TVBfQVJNLCBBUk1fQ1BVX1BBUlRfTkVPVkVSU0VfVjMpCisgI2RlZmluZSBNSURSX0NPUlRFWF9Y OTI1IE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX0NPUlRFWF9Y OTI1KQorKyNkZWZpbmUgTUlEUl9DMV9VTFRSQSBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9B Uk0sIEFSTV9DUFVfUEFSVF9DMV9VTFRSQSkKKyAKKyAvKiBNUElEUiBNdWx0aXByb2Nlc3NvciBB ZmZpbml0eSBSZWdpc3RlciAqLworICNkZWZpbmUgX01QSURSX1VQICAgICAgICAgICAoMzApCgpk aWZmIC0tZ2l0IGEveHNhNDkzLTQuMjEtMDQucGF0Y2ggYi94c2E0OTMtNC4yMS0wNC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTllZTc0Ci0tLSAvZGV2L251bGwK KysrIGIveHNhNDkzLTQuMjEtMDQucGF0Y2gKQEAgLTAsMCArMSwzNyBAQAorRnJvbSA2YWY2N2Fl Y2E0MThiZmZiODA3NDI0ZWIzNDE1ZmFiNTllNTgxNzMzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogTWljaGFsIE9yemVsIDxtaWNoYWwub3J6ZWxAYW1kLmNvbT4KK0RhdGU6IEZyaSwg MjIgTWF5IDIwMjYgMDk6MzU6NTcgKzAyMDAKK1N1YmplY3Q6IHhlbi9hcm06IEFkZCBDMS1QcmVt aXVtIGRlZmluaXRpb25zCisKK0FkZCBwcm9jZXNzb3IgZGVmaW5pdGlvbnMgZm9yIEMxLVByZW1p dW0uIFRoZXNlIHdpbGwgYmUgdXNlZCBmb3IgZXJyYXRhCitkZXRlY3Rpb24gaW4gc3Vic2VxdWVu dCBwYXRjaGVzLgorCitUaGVzZSB2YWx1ZXMgY2FuIGJlIGZvdW5kIGluIHRoZSBDMS1QcmVtaXVt IFRSTToKKworICBodHRwczovL2RldmVsb3Blci5hcm0uY29tL2RvY3VtZW50YXRpb24vMTA5NDE2 LzAxMDAvCisKKy4uLiBpbiBzZWN0aW9uIEEuNS4xICgiTUlEUl9FTDEsIE1haW4gSUQgUmVnaXN0 ZXIiKS4KKworU2lnbmVkLW9mZi1ieTogTWljaGFsIE9yemVsIDxtaWNoYWwub3J6ZWxAYW1kLmNv bT4KK1Jldmlld2VkLWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGllbkB4ZW4ub3JnPgorCitkaWZmIC0t Z2l0IGEveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIGIveGVuL2FyY2gvYXJt L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCitpbmRleCA3Mjc0NWNjYTYyYmMuLjI1YzU3NjJjNjcw NiAxMDA2NDQKKy0tLSBhL3hlbi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaAorKysr IGIveGVuL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCitAQCAtMTA2LDYgKzEwNiw3 IEBACisgI2RlZmluZSBBUk1fQ1BVX1BBUlRfTkVPVkVSU0VfVjMgICAgMHhEODQKKyAjZGVmaW5l IEFSTV9DUFVfUEFSVF9DT1JURVhfWDkyNSAgICAweEQ4NQorICNkZWZpbmUgQVJNX0NQVV9QQVJU X0MxX1VMVFJBICAgICAgIDB4RDhDCisrI2RlZmluZSBBUk1fQ1BVX1BBUlRfQzFfUFJFTUlVTSAg ICAgMHhEOTAKKyAKKyAjZGVmaW5lIE1JRFJfQ09SVEVYX0ExMiBNSURSX0NQVV9NT0RFTChBUk1f Q1BVX0lNUF9BUk0sIEFSTV9DUFVfUEFSVF9DT1JURVhfQTEyKQorICNkZWZpbmUgTUlEUl9DT1JU RVhfQTE3IE1JRFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX0NPUlRF WF9BMTcpCitAQCAtMTM3LDYgKzEzOCw3IEBACisgI2RlZmluZSBNSURSX05FT1ZFUlNFX1YzIE1J RFJfQ1BVX01PREVMKEFSTV9DUFVfSU1QX0FSTSwgQVJNX0NQVV9QQVJUX05FT1ZFUlNFX1YzKQor ICNkZWZpbmUgTUlEUl9DT1JURVhfWDkyNSBNSURSX0NQVV9NT0RFTChBUk1fQ1BVX0lNUF9BUk0s IEFSTV9DUFVfUEFSVF9DT1JURVhfWDkyNSkKKyAjZGVmaW5lIE1JRFJfQzFfVUxUUkEgTUlEUl9D UFVfTU9ERUwoQVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BVX1BBUlRfQzFfVUxUUkEpCisrI2RlZmlu ZSBNSURSX0MxX1BSRU1JVU0gTUlEUl9DUFVfTU9ERUwoQVJNX0NQVV9JTVBfQVJNLCBBUk1fQ1BV X1BBUlRfQzFfUFJFTUlVTSkKKyAKKyAvKiBNUElEUiBNdWx0aXByb2Nlc3NvciBBZmZpbml0eSBS ZWdpc3RlciAqLworICNkZWZpbmUgX01QSURSX1VQICAgICAgICAgICAoMzApCgpkaWZmIC0tZ2l0 IGEveHNhNDk0LTQuMjEucGF0Y2ggYi94c2E0OTQtNC4yMS5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5kNTJhMGYxCi0tLSAvZGV2L251bGwKKysrIGIveHNhNDk0LTQu MjEucGF0Y2gKQEAgLTAsMCArMSw0MDQgQEAKK0Zyb20gNTc5MDE2YTM1OTc0MTA0NGM5MDc2YmYw ODg0ZTFkYmFiMDBhYjA4MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJvZ2VyIFBh dSBNb25uZSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CitEYXRlOiBNb24sIDE2IE1hciAyMDI2IDEx OjAzOjIyICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIHg4Ni9tbTogYWNjdXJhdGVseSB0cmFjayB3 aGljaCB2Q1BVIHBhZ2UtdGFibGVzIGFyZSBsb2FkZWQKK01JTUUtVmVyc2lvbjogMS4wCitDb250 ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKK0NvbnRlbnQtVHJhbnNmZXItRW5j b2Rpbmc6IDhiaXQKKworTmVpdGhlciBjdXJyZW50IG5vciBjdXJyX3ZjcHUgcGVyLUNQVSBmaWVs ZHMgYWNjdXJhdGVseSB0cmFjayB3aGljaAorcGFnZS10YWJsZXMgYXJlIGxvYWRlZC4gIFRoZXJl IGFyZSBjb3JuZXIgY2FzZXMgd2hlbiBkZWFsaW5nIHdpdGggc2hhZG93CitwYWdpbmcgZmFpbHVy ZXMgdGhhdCBzd2l0Y2ggdG8gdGhlIGlkbGUgdkNQVSBwYWdlLXRhYmxlcyB3aXRob3V0IGNoYW5n aW5nCitjdXJyZW50IG9yIGN1cnJfdmNwdSBwZXItQ1BVIGZpZWxkcy4KKworSW50cm9kdWNlIGEg bmV3IHBlci1DUFUgZmllbGQgdGhhdCBhdHRlbXB0cyB0byB0cmFjayB3aGljaCB2Q1BVIHBhZ2Ut dGFibGVzCithcmUgbG9hZGVkLiAgVXBkYXRlIHN1Y2ggdHJhY2tpbmcgd2hlbiBjcjMgaXMgY2hh bmdlZCwgYW5kIGRvIHNvIGluIGEKK3JlZ2lvbiB3aXRoIGludGVycnVwdHMgZGlzYWJsZWQsIGFz IHRvIGF2b2lkIGhhbmRsaW5nIGludGVycnVwdHMgd2l0aCBhCittaXNtYXRjaCBiZXR3ZWVuIHRo ZSB2Q1BVIHRyYWNraW5nIGZpZWxkIGFuZCB0aGUgbG9hZGVkIHBhZ2UtdGFibGVzLgorCitBcyBh IHJlc3VsdCBvZiB0aGlzIG5ld2x5IG1vcmUgYWNjdXJhdGUgdHJhY2tpbmcgdGhlIG1hcGNhY2hl IG92ZXJyaWRlCitmdW5jdGlvbmFsaXR5IGNhbiBiZSByZW1vdmVkOiB0aGUgZG9tMCBQViBidWls ZGVyIHdhcyB0aGUgb25seSB1c2VyIG9mIGl0LAorYW5kIGl0J3MgdXBkYXRlZCBoZXJlIHRvIHBy b3Blcmx5IHNpZ25hbCB3aGljaCB2Q1BVIHBhZ2UtdGFibGVzIGFyZSBsb2FkZWQKK2luIHRoZSBj YWxscyB0byBzd2l0Y2hfY3IzX2NyNCgpLgorCitOb3RlIHRoZSBFRkkgcGFnZS10YWJsZXMgaGF2 ZSB0aGUgWGVuIG93bmVkIEw0IHNsb3RzIGNvcGllZCBmcm9tIHRoZSBpZGxlCitwYWdlLXRhYmxl cywgc28gZm9yIHRoZSBlZmZlY3RzIG9mIHRoZSBtYXBjYWNoZSB0aGUgRUZJIHBhZ2UtdGFibGVz IGNvdWxkCit1c2UgdGhlIGlkbGUgbWFwY2FjaGUgaWYgaXQgaGFkIG9uZS4gIFBhc3MgdGhlIGlk bGUgdkNQVSBpbiB0aGUKK3N3aXRjaF9jcjNfY3I0KCkgY2FsbCB0aGF0IHN3aXRjaGVzIHRvIHRo ZSBydW50aW1lIEVGSSBwYWdlLXRhYmxlcy4KKworVGhlcmUgYXJlIGtub3duIGlzc3VlcyB3aXRo IHRoZSB1c2Ugb2YgbWFwY2FjaGUgaW4gTk1JIGNvbnRleHQuwqAgVGhpcyBwYXRjaAorZG9lcyBu b3QgYWx0ZXIgdGhlIGJlaGF2aW91ci4KKworVGhpcyBpcyBDVkUtMjAyNi00MjQ4OCAvIFhTQS00 OTQuCisKK0ZpeGVzOiBmYjBmZjQ5ZmU5ZjcgKCJ4ODYvc2hhZG93OiBkZWZlciByZWxlYXNpbmcg b2YgUFYncyB0b3AtbGV2ZWwgc2hhZG93IHJlZmVyZW5jZSIpCitTaWduZWQtb2ZmLWJ5OiBSb2dl ciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KK0Fja2VkLWJ5OiBBbmRyZXcgQ29v cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgorLS0tCisgeGVuL2FyY2gveDg2L2RvbWFp bl9wYWdlLmMgICAgICAgICAgIHwgNDggKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQorIHhl bi9hcmNoL3g4Ni9mbHVzaHRsYi5jICAgICAgICAgICAgICB8ICA1ICsrLQorIHhlbi9hcmNoL3g4 Ni9pbmNsdWRlL2FzbS9kb21haW4uaCAgICB8ICAxIC0KKyB4ZW4vYXJjaC94ODYvaW5jbHVkZS9h c20vZmx1c2h0bGIuaCAgfCAgMiArLQorIHhlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNz b3IuaCB8ICAzICsrCisgeGVuL2FyY2gveDg2L21tLmMgICAgICAgICAgICAgICAgICAgIHwgIDQg Ky0tCisgeGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYyAgICAgICAgIHwgMTIgKysrLS0tLQor IHhlbi9hcmNoL3g4Ni9wdi9kb21haW4uYyAgICAgICAgICAgICB8IDEzICsrKysrKy0tCisgeGVu L2FyY2gveDg2L3NtcGJvb3QuYyAgICAgICAgICAgICAgIHwgIDEgKworIHhlbi9jb21tb24vZWZp L2NvbW1vbi1zdHViLmMgICAgICAgICB8ICA1IC0tLQorIHhlbi9jb21tb24vZWZpL3J1bnRpbWUu YyAgICAgICAgICAgICB8IDIxICsrKysrLS0tLS0tLQorIHhlbi9pbmNsdWRlL3hlbi9lZmkuaCAg ICAgICAgICAgICAgICB8ICAxIC0KKyAxMiBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCsp LCA2MiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFn ZS5jIGIveGVuL2FyY2gveDg2L2RvbWFpbl9wYWdlLmMKK2luZGV4IGVhYzVlMzMwNGZiOC4uNzJj MDAxOTRmMzE1IDEwMDY0NAorLS0tIGEveGVuL2FyY2gveDg2L2RvbWFpbl9wYWdlLmMKKysrKyBi L3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCitAQCAtMTgsNDggKzE4LDQwIEBACisgI2luY2x1 ZGUgPGFzbS9oYXJkaXJxLmg+CisgI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorIAorLXN0YXRpYyBE RUZJTkVfUEVSX0NQVShzdHJ1Y3QgdmNwdSAqLCBvdmVycmlkZSk7CistCisgc3RhdGljIGlubGlu ZSBzdHJ1Y3QgdmNwdSAqbWFwY2FjaGVfY3VycmVudF92Y3B1KHZvaWQpCisgeworLSAgICAvKiBJ biB0aGUgY29tbW9uIGNhc2Ugd2UgdXNlIHRoZSBtYXBjYWNoZSBvZiB0aGUgcnVubmluZyBWQ1BV LiAqLworLSAgICBzdHJ1Y3QgdmNwdSAqdiA9IHRoaXNfY3B1KG92ZXJyaWRlKSA/OiBjdXJyZW50 OworLQorLSAgICAvKgorLSAgICAgKiBXaGVuIGN1cnJlbnQgaXNuJ3QgcHJvcGVybHkgc2V0IHVw IHlldCwgdGhpcyBpcyBlcXVpdmFsZW50IHRvCistICAgICAqIHJ1bm5pbmcgaW4gYW4gaWRsZSB2 Q1BVIChjYWxsZXJzIG11c3QgY2hlY2sgZm9yIE5VTEwpLgorLSAgICAgKi8KKy0gICAgaWYgKCAh diApCistICAgICAgICByZXR1cm4gTlVMTDsKKysgICAgc3RydWN0IHZjcHUgKnYgPSB0aGlzX2Nw dShwZ3RhYmxlX3ZjcHUpOworKyAgICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7CisgCisg ICAgIC8qCistICAgICAqIFdoZW4gdXNpbmcgZWZpIHJ1bnRpbWUgcGFnZSB0YWJsZXMsIHdlIGhh dmUgdGhlIGVxdWl2YWxlbnQgb2YgdGhlIGlkbGUKKy0gICAgICogZG9tYWluJ3MgcGFnZSB0YWJs ZXMgYnV0IGN1cnJlbnQgbWF5IHBvaW50IGF0IGFub3RoZXIgZG9tYWluJ3MgVkNQVS4KKy0gICAg ICogUmV0dXJuIE5VTEwgYXMgdGhvdWdoIGN1cnJlbnQgaXMgbm90IHByb3Blcmx5IHNldCB1cCB5 ZXQuCisrICAgICAqIER1cmluZyBlYXJseSBib290IHBndGFibGVfdmNwdSBpcyBub3Qgc2V0LCBj YWxsZXJzIG11c3QgaGFuZGxlIE5VTEwuCisrICAgICAqIE5vbi1QViBkb21haW5zIGRvbid0IGhh dmUgYSBtYXBjYWNoZSwgdGhlIGRpcmVjdG1hcCBjb3ZlcnMgYWxsIHBoeXNpY2FsCisrICAgICAq IGFkZHJlc3Mgc3BhY2UuCisgICAgICAqLworLSAgICBpZiAoIGVmaV9yc191c2luZ19wZ3RhYmxl cygpICkKKysgICAgaWYgKCAhdiB8fCAhaXNfcHZfdmNwdSh2KSApCisgICAgICAgICByZXR1cm4g TlVMTDsKKyAKKyAgICAgLyoKKy0gICAgICogSWYgZ3Vlc3RfdGFibGUgaXMgTlVMTCwgYW5kIHdl IGFyZSBydW5uaW5nIGEgcGFyYXZpcnR1YWxpc2VkIGd1ZXN0LAorLSAgICAgKiB0aGVuIGl0IG1l YW5zIHdlIGFyZSBydW5uaW5nIG9uIHRoZSBpZGxlIGRvbWFpbidzIHBhZ2UgdGFibGUgYW5kIG11 c3QKKy0gICAgICogdGhlcmVmb3JlIHVzZSBpdHMgbWFwY2FjaGUuCisrICAgICAqIElmIHdlIGFy ZSBpbiBhIGxhenkgY29udGV4dC1zd2l0Y2ggc3RhdGUgZnJvbSBhIFBWIHZDUFUgZG8gYSBmdWxs IHN3aXRjaAorKyAgICAgKiB0byB0aGUgaWRsZSB2Q1BVIG5vdywgb3RoZXJ3aXNlIGFuIGluY29t aW5nIEZMVVNIX1ZDUFVfU1RBVEUgSVBJIHdvdWxkCisrICAgICAqIGNoYW5nZSB0aGUgcGFnZSB0 YWJsZXMgdW5kZXIgb3VyIGZlZXQgYW4gaW52YWxpZGF0ZSBhbnkgaW4tdXNlIG1hcGNhY2hlCisr ICAgICAqIGVudHJpZXMuCisgICAgICAqLworLSAgICBpZiAoIHVubGlrZWx5KHBhZ2V0YWJsZV9p c19udWxsKHYtPmFyY2guZ3Vlc3RfdGFibGUpKSAmJiBpc19wdl92Y3B1KHYpICkKKysgICAgaWYg KCB1bmxpa2VseSh0aGlzX2NwdShjdXJyX3ZjcHUpICE9IGN1cnIpICkKKyAgICAgeworLSAgICAg ICAgLyogSWYgd2UgcmVhbGx5IGFyZSBpZGxpbmcsIHBlcmZvcm0gbGF6eSBjb250ZXh0IHN3aXRj aCBub3cuICovCistICAgICAgICBpZiAoICh2ID0gaWRsZV92Y3B1W3NtcF9wcm9jZXNzb3JfaWQo KV0pID09IGN1cnJlbnQgKQorLSAgICAgICAgICAgIHN5bmNfbG9jYWxfZXhlY3N0YXRlKCk7Cisr ICAgICAgICBBU1NFUlQoY3VyciA9PSBpZGxlX3ZjcHVbc21wX3Byb2Nlc3Nvcl9pZCgpXSk7Cisr ICAgICAgICBzeW5jX2xvY2FsX2V4ZWNzdGF0ZSgpOworICAgICAgICAgLyogV2UgbXVzdCBub3cg YmUgcnVubmluZyBvbiB0aGUgaWRsZSBwYWdlIHRhYmxlLiAqLworICAgICAgICAgQVNTRVJUKGNy M19wYShyZWFkX2NyMygpKSA9PSBfX3BhKGlkbGVfcGdfdGFibGUpKTsKKyAgICAgfQorIAorLSAg ICByZXR1cm4gdjsKKy19CistCistdm9pZCBfX2luaXQgbWFwY2FjaGVfb3ZlcnJpZGVfY3VycmVu dChzdHJ1Y3QgdmNwdSAqdikKKy17CistICAgIHRoaXNfY3B1KG92ZXJyaWRlKSA9IHY7CisrICAg IC8qCisrICAgICAqIEF0IHRoaXMgcG9pbnQgd2UgY2FuIGd1YXJhbnRlZSBYZW4gaXMgbm90IGlu IGxhenkgY29udGV4dCBzd2l0Y2g6IGVpdGhlcgorKyAgICAgKiB0aGUgY29kZSBhYm92ZSB3aWxs IGhhdmUgc3luY2VkIHRoZSBzdGF0ZSwgb3IgYW4gaW5jb21pbmcKKysgICAgICogRkxVU0hfVkNQ VV9TVEFURSBJUEkgaGFzIGRvbmUgc28gYmVoaW5kIG91ciBiYWNrLiAgVXNlIEFDQ0VTU19PTkNF IHRvCisrICAgICAqIGVuc3VyZSB0aGUgY29tcGlsZXIgbmV2ZXIgcmV0dXJucyB0aGUgbG9jYWxs eSBjYWNoZWQgcGd0YWJsZV92Y3B1IHZhbHVlLgorKyAgICAgKi8KKysgICAgcmV0dXJuIEFDQ0VT U19PTkNFKHRoaXNfY3B1KHBndGFibGVfdmNwdSkpOworIH0KKyAKKyAjZGVmaW5lIG1hcGNhY2hl X2wyX2VudHJ5KGUpICgoZSkgPj4gUEFHRVRBQkxFX09SREVSKQorZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9mbHVzaHRsYi5jIGIveGVuL2FyY2gveDg2L2ZsdXNodGxiLmMKK2luZGV4IDA5ZTY3 NmMxNTFmYS4uOTI4YmNhNjZiNDMzIDEwMDY0NAorLS0tIGEveGVuL2FyY2gveDg2L2ZsdXNodGxi LmMKKysrKyBiL3hlbi9hcmNoL3g4Ni9mbHVzaHRsYi5jCitAQCAtMTExLDcgKzExMSw5IEBAIHN0 YXRpYyB2b2lkIGRvX3RsYl9mbHVzaCh2b2lkKQorICAgICBsb2NhbF9pcnFfcmVzdG9yZShmbGFn cyk7CisgfQorIAorLXZvaWQgc3dpdGNoX2NyM19jcjQodW5zaWduZWQgbG9uZyBjcjMsIHVuc2ln bmVkIGxvbmcgY3I0KQorK0RFRklORV9QRVJfQ1BVKHN0cnVjdCB2Y3B1ICosIHBndGFibGVfdmNw dSk7CisrCisrdm9pZCBzd2l0Y2hfY3IzX2NyNChzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9u ZyBjcjMsIHVuc2lnbmVkIGxvbmcgY3I0KQorIHsKKyAgICAgdW5zaWduZWQgbG9uZyBmbGFncywg b2xkX2NyNDsKKyAgICAgdTMyIHQgPSAwOworQEAgLTE1NSw2ICsxNTcsNyBAQCB2b2lkIHN3aXRj aF9jcjNfY3I0KHVuc2lnbmVkIGxvbmcgY3IzLCB1bnNpZ25lZCBsb25nIGNyNCkKKyAgICAgaWYg KCAob2xkX2NyNCAmIFg4Nl9DUjRfUENJREUpID4gKGNyNCAmIFg4Nl9DUjRfUENJREUpICkKKyAg ICAgICAgIGNyMyB8PSBYODZfQ1IzX05PRkxVU0g7CisgICAgIHdyaXRlX2NyMyhjcjMpOworKyAg ICB0aGlzX2NwdShwZ3RhYmxlX3ZjcHUpID0gdjsKKyAKKyAgICAgaWYgKCBvbGRfY3I0ICE9IGNy NCApCisgICAgICAgICB3cml0ZV9jcjQoY3I0KTsKK2RpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv aW5jbHVkZS9hc20vZG9tYWluLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vZG9tYWluLmgK K2luZGV4IDgyOGY0MmMzZTQ0OC4uMTBkMmI5ZmUyNTQ2IDEwMDY0NAorLS0tIGEveGVuL2FyY2gv eDg2L2luY2x1ZGUvYXNtL2RvbWFpbi5oCisrKysgYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20v ZG9tYWluLmgKK0BAIC03NSw3ICs3NSw2IEBAIHN0cnVjdCBtYXBjYWNoZV9kb21haW4geworIAor IGludCBtYXBjYWNoZV9kb21haW5faW5pdChzdHJ1Y3QgZG9tYWluICpkKTsKKyBpbnQgbWFwY2Fj aGVfdmNwdV9pbml0KHN0cnVjdCB2Y3B1ICp2KTsKKy12b2lkIG1hcGNhY2hlX292ZXJyaWRlX2N1 cnJlbnQoc3RydWN0IHZjcHUgKnYpOworIAorIC8qIHg4Ni82NDogdG9nZ2xlIGd1ZXN0IGJldHdl ZW4ga2VybmVsIGFuZCB1c2VyIG1vZGVzLiAqLworIHZvaWQgdG9nZ2xlX2d1ZXN0X21vZGUoc3Ry dWN0IHZjcHUgKnYpOworZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9mbHVz aHRsYi5oIGIveGVuL2FyY2gveDg2L2luY2x1ZGUvYXNtL2ZsdXNodGxiLmgKK2luZGV4IDdiY2Jj YTJiN2YzMS4uMzQ1Njc3ZWI3MmFlIDEwMDY0NAorLS0tIGEveGVuL2FyY2gveDg2L2luY2x1ZGUv YXNtL2ZsdXNodGxiLmgKKysrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9mbHVzaHRsYi5o CitAQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpbnZscGcoY29uc3Qgdm9p ZCAqcCkKKyB9CisgCisgLyogV3JpdGUgcGFnZXRhYmxlIGJhc2UgYW5kIGltcGxpY2l0bHkgdGlj ayB0aGUgdGxiZmx1c2ggY2xvY2suICovCistdm9pZCBzd2l0Y2hfY3IzX2NyNCh1bnNpZ25lZCBs b25nIGNyMywgdW5zaWduZWQgbG9uZyBjcjQpOworK3ZvaWQgc3dpdGNoX2NyM19jcjQoc3RydWN0 IHZjcHUgKnYsIHVuc2lnbmVkIGxvbmcgY3IzLCB1bnNpZ25lZCBsb25nIGNyNCk7CisgCisgLyog Zmx1c2hfKiBmbGFnIGZpZWxkczogKi8KKyAgLyoKK2RpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv aW5jbHVkZS9hc20vcHJvY2Vzc29yLmggYi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vcHJvY2Vz c29yLmgKK2luZGV4IDJlMDg3YzYyNTc3MC4uZDJjYWNkZmVkYjc0IDEwMDY0NAorLS0tIGEveGVu L2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCisrKysgYi94ZW4vYXJjaC94ODYvaW5j bHVkZS9hc20vcHJvY2Vzc29yLmgKK0BAIC0zMjgsNiArMzI4LDkgQEAgREVDTEFSRV9QRVJfQ1BV KHN0cnVjdCB0c3NfcGFnZSwgdHNzX3BhZ2UpOworIAorIERFQ0xBUkVfUEVSX0NQVShyb290X3Bn ZW50cnlfdCAqLCByb290X3BndCk7CisgCisrLyogdkNQVSBvZiB0aGUgY3VycmVudGx5IGxvYWRl ZCBwYWdlLXRhYmxlcy4gKi8KKytERUNMQVJFX1BFUl9DUFUoc3RydWN0IHZjcHUgKiwgcGd0YWJs ZV92Y3B1KTsKKysKKyBleHRlcm4gdm9pZCB3cml0ZV9wdGJhc2Uoc3RydWN0IHZjcHUgKnYpOwor IAorIC8qIFBBVVNFIChlbmNvZGluZzogUkVQIE5PUCkgaXMgYSBnb29kIHRoaW5nIHRvIGluc2Vy dCBpbnRvIGJ1c3ktd2FpdCBsb29wcy4gKi8KK2RpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0u YyBiL3hlbi9hcmNoL3g4Ni9tbS5jCitpbmRleCAyYjIzYmYyZTdhNzUuLmQwMmM5ODYyZDM4NyAx MDA2NDQKKy0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jCisrKysgYi94ZW4vYXJjaC94ODYvbW0uYwor QEAgLTUzNSw3ICs1MzUsNyBAQCB2b2lkIHdyaXRlX3B0YmFzZShzdHJ1Y3QgdmNwdSAqdikKKyAg ICAgICAgIGNwdV9pbmZvLT5wdl9jcjMgPSBfX3BhKHRoaXNfY3B1KHJvb3RfcGd0KSk7CisgICAg ICAgICBpZiAoIG5ld19jcjQgJiBYODZfQ1I0X1BDSURFICkKKyAgICAgICAgICAgICBjcHVfaW5m by0+cHZfY3IzIHw9IGdldF9wY2lkX2JpdHModiwgdHJ1ZSk7CistICAgICAgICBzd2l0Y2hfY3Iz X2NyNCh2LT5hcmNoLmNyMywgbmV3X2NyNCk7CisrICAgICAgICBzd2l0Y2hfY3IzX2NyNCh2LCB2 LT5hcmNoLmNyMywgbmV3X2NyNCk7CisgICAgIH0KKyAgICAgZWxzZQorICAgICB7CitAQCAtNTQz LDcgKzU0Myw3IEBAIHZvaWQgd3JpdGVfcHRiYXNlKHN0cnVjdCB2Y3B1ICp2KQorICAgICAgICAg Y3B1X2luZm8tPnVzZV9wdl9jcjMgPSBmYWxzZTsKKyAgICAgICAgIGNwdV9pbmZvLT54ZW5fY3Iz ID0gMDsKKyAgICAgICAgIC8qIHN3aXRjaF9jcjNfY3I0KCkgc2VyaWFsaXplcy4gKi8KKy0gICAg ICAgIHN3aXRjaF9jcjNfY3I0KHYtPmFyY2guY3IzLCBuZXdfY3I0KTsKKysgICAgICAgIHN3aXRj aF9jcjNfY3I0KHYsIHYtPmFyY2guY3IzLCBuZXdfY3I0KTsKKyAgICAgICAgIGNwdV9pbmZvLT5w dl9jcjMgPSAwOworICAgICB9CisgfQorZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wdi9kb20w X2J1aWxkLmMgYi94ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5jCitpbmRleCAzNzcyOTA5MWRm YWEuLjQyYmM1MzBjMGYwZCAxMDA2NDQKKy0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9kb20wX2J1aWxk LmMKKysrKyBiL3hlbi9hcmNoL3g4Ni9wdi9kb20wX2J1aWxkLmMKK0BAIC04MjgsOCArODI4LDcg QEAgc3RhdGljIGludCBfX2luaXQgZG9tMF9jb25zdHJ1Y3QoY29uc3Qgc3RydWN0IGJvb3RfZG9t YWluICpiZCkKKyAgICAgdXBkYXRlX2NyMyh2KTsKKyAKKyAgICAgLyogV2UgcnVuIG9uIGRvbTAn cyBwYWdlIHRhYmxlcyBmb3IgdGhlIGZpbmFsIHBhcnQgb2YgdGhlIGJ1aWxkIHByb2Nlc3MuICov CistICAgIHN3aXRjaF9jcjNfY3I0KGNyM19wYSh2LT5hcmNoLmNyMyksIHJlYWRfY3I0KCkpOwor LSAgICBtYXBjYWNoZV9vdmVycmlkZV9jdXJyZW50KHYpOworKyAgICBzd2l0Y2hfY3IzX2NyNCh2 LCBjcjNfcGEodi0+YXJjaC5jcjMpLCByZWFkX2NyNCgpKTsKKyAKKyAgICAgLyogQ29weSB0aGUg T1MgaW1hZ2UgYW5kIGZyZWUgdGVtcG9yYXJ5IGJ1ZmZlci4gKi8KKyAgICAgZWxmLmRlc3RfYmFz ZSA9ICh2b2lkKil2a2Vybl9zdGFydDsKK0BAIC04MzgsOCArODM3LDcgQEAgc3RhdGljIGludCBf X2luaXQgZG9tMF9jb25zdHJ1Y3QoY29uc3Qgc3RydWN0IGJvb3RfZG9tYWluICpiZCkKKyAgICAg cmMgPSBlbGZfbG9hZF9iaW5hcnkoJmVsZik7CisgICAgIGlmICggcmMgPCAwICkKKyAgICAgewor LSAgICAgICAgbWFwY2FjaGVfb3ZlcnJpZGVfY3VycmVudChOVUxMKTsKKy0gICAgICAgIHN3aXRj aF9jcjNfY3I0KGN1cnJlbnQtPmFyY2guY3IzLCByZWFkX2NyNCgpKTsKKysgICAgICAgIHN3aXRj aF9jcjNfY3I0KGN1cnJlbnQsIGN1cnJlbnQtPmFyY2guY3IzLCByZWFkX2NyNCgpKTsKKyAgICAg ICAgIHByaW50aygiRmFpbGVkIHRvIGxvYWQgdGhlIGtlcm5lbCBiaW5hcnlcbiIpOworICAgICAg ICAgZ290byBvdXQ7CisgICAgIH0KK0BAIC04NTAsOCArODQ4LDcgQEAgc3RhdGljIGludCBfX2lu aXQgZG9tMF9jb25zdHJ1Y3QoY29uc3Qgc3RydWN0IGJvb3RfZG9tYWluICpiZCkKKyAgICAgICAg IGlmICggKHBhcm1zLnZpcnRfaHlwZXJjYWxsIDwgdl9zdGFydCkgfHwKKyAgICAgICAgICAgICAg KHBhcm1zLnZpcnRfaHlwZXJjYWxsID49IHZfZW5kKSApCisgICAgICAgICB7CistICAgICAgICAg ICAgbWFwY2FjaGVfb3ZlcnJpZGVfY3VycmVudChOVUxMKTsKKy0gICAgICAgICAgICBzd2l0Y2hf Y3IzX2NyNChjdXJyZW50LT5hcmNoLmNyMywgcmVhZF9jcjQoKSk7CisrICAgICAgICAgICAgc3dp dGNoX2NyM19jcjQoY3VycmVudCwgY3VycmVudC0+YXJjaC5jcjMsIHJlYWRfY3I0KCkpOworICAg ICAgICAgICAgIHByaW50aygiSW52YWxpZCBIWVBFUkNBTExfUEFHRSBmaWVsZCBpbiBFTEYgbm90 ZXMuXG4iKTsKKyAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICAgICAgIH0KK0BAIC05 OTIsOCArOTg5LDcgQEAgc3RhdGljIGludCBfX2luaXQgZG9tMF9jb25zdHJ1Y3QoY29uc3Qgc3Ry dWN0IGJvb3RfZG9tYWluICpiZCkKKyAjZW5kaWYKKyAKKyAgICAgLyogUmV0dXJuIHRvIGlkbGUg ZG9tYWluJ3MgcGFnZSB0YWJsZXMuICovCistICAgIG1hcGNhY2hlX292ZXJyaWRlX2N1cnJlbnQo TlVMTCk7CistICAgIHN3aXRjaF9jcjNfY3I0KGN1cnJlbnQtPmFyY2guY3IzLCByZWFkX2NyNCgp KTsKKysgICAgc3dpdGNoX2NyM19jcjQoY3VycmVudCwgY3VycmVudC0+YXJjaC5jcjMsIHJlYWRf Y3I0KCkpOworIAorICAgICB1cGRhdGVfZG9tYWluX3dhbGxjbG9ja190aW1lKGQpOworIAorZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wdi9kb21haW4uYyBiL3hlbi9hcmNoL3g4Ni9wdi9kb21h aW4uYworaW5kZXggZWY0ZjQ0MmU3MzMyLi5kOWU1MmY1Zjg4ZjMgMTAwNjQ0CistLS0gYS94ZW4v YXJjaC94ODYvcHYvZG9tYWluLmMKKysrKyBiL3hlbi9hcmNoL3g4Ni9wdi9kb21haW4uYworQEAg LTQ1MSw2ICs0NTEsOCBAQCBzdGF0aWMgdm9pZCBfdG9nZ2xlX2d1ZXN0X3B0KHN0cnVjdCB2Y3B1 ICp2KQorICAgICBwYWdldGFibGVfdCBvbGRfc2hhZG93OworICAgICB1bnNpZ25lZCBsb25nIGNy MzsKKyAKKysgICAgQVNTRVJUKGxvY2FsX2lycV9pc19lbmFibGVkKCkpOworKworICAgICB2LT5h cmNoLmZsYWdzIF49IFRGX2tlcm5lbF9tb2RlOworICAgICBndWVzdF91cGRhdGUgPSB2LT5hcmNo LmZsYWdzICYgVEZfa2VybmVsX21vZGU7CisgICAgIG9sZF9zaGFkb3cgPSB1cGRhdGVfY3IzKHYp OworQEAgLTQ3MywxNSArNDc1LDIyIEBAIHN0YXRpYyB2b2lkIF90b2dnbGVfZ3Vlc3RfcHQoc3Ry dWN0IHZjcHUgKnYpCisgICAgIHsKKyAgICAgICAgIGNyMyAmPSB+WDg2X0NSM19OT0ZMVVNIOwor IAorKyAgICAgICAgbG9jYWxfaXJxX2Rpc2FibGUoKTsKKyAgICAgICAgIGlmICggdW5saWtlbHko bWZuX2VxKHBhZ2V0YWJsZV9nZXRfbWZuKG9sZF9zaGFkb3cpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbWFkZHJfdG9fbWZuKGNyMykpKSApCisgICAgICAgICB7CistICAgICAgICAg ICAgY3IzID0gaWRsZV92Y3B1W3YtPnByb2Nlc3Nvcl0tPmFyY2guY3IzOworICAgICAgICAgICAg IC8qIEFsc28gc3VwcHJlc3MgcnVuc3RhdGUvdGltZSBhcmVhIHVwZGF0ZXMgYmVsb3cuICovCisg ICAgICAgICAgICAgZ3Vlc3RfdXBkYXRlID0gZmFsc2U7CisrCisrICAgICAgICAgICAgY3IzID0g aWRsZV92Y3B1W3YtPnByb2Nlc3Nvcl0tPmFyY2guY3IzOworKyAgICAgICAgICAgIHRoaXNfY3B1 KHBndGFibGVfdmNwdSkgPSBpZGxlX3ZjcHVbdi0+cHJvY2Vzc29yXTsKKyAgICAgICAgIH0KKysK KysgICAgICAgIHdyaXRlX2NyMyhjcjMpOworKyAgICAgICAgbG9jYWxfaXJxX2VuYWJsZSgpOwor ICAgICB9CistICAgIHdyaXRlX2NyMyhjcjMpOworKyAgICBlbHNlCisrICAgICAgICB3cml0ZV9j cjMoY3IzKTsKKyAKKyAgICAgaWYgKCAhcGFnZXRhYmxlX2lzX251bGwob2xkX3NoYWRvdykgKQor ICAgICAgICAgc2hhZG93X3B1dF90b3BfbGV2ZWwodi0+ZG9tYWluLCBvbGRfc2hhZG93KTsKK2Rp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvc21wYm9vdC5jIGIveGVuL2FyY2gveDg2L3NtcGJvb3Qu YworaW5kZXggMjc2Mjg4MDBhODIxLi5iMzdmZWFiM2JlZjQgMTAwNjQ0CistLS0gYS94ZW4vYXJj aC94ODYvc21wYm9vdC5jCisrKysgYi94ZW4vYXJjaC94ODYvc21wYm9vdC5jCitAQCAtMTA2Myw2 ICsxMDYzLDcgQEAgc3RhdGljIGludCBjcHVfc21wYm9vdF9hbGxvYyh1bnNpZ25lZCBpbnQgY3B1 KQorIAorICAgICBpbmZvLT5jdXJyZW50X3ZjcHUgPSBpZGxlX3ZjcHVbY3B1XTsgLyogc2V0X2N1 cnJlbnQoKSAqLworICAgICBwZXJfY3B1KGN1cnJfdmNwdSwgY3B1KSA9IGlkbGVfdmNwdVtjcHVd OworKyAgICBwZXJfY3B1KHBndGFibGVfdmNwdSwgY3B1KSA9IGlkbGVfdmNwdVtjcHVdOworIAor ICAgICBnZHQgPSBwZXJfY3B1KGdkdCwgY3B1KSA/OiBhbGxvY194ZW5oZWFwX3BhZ2VzKDAsIG1l bWZsYWdzKTsKKyAgICAgaWYgKCBnZHQgPT0gTlVMTCApCitkaWZmIC0tZ2l0IGEveGVuL2NvbW1v bi9lZmkvY29tbW9uLXN0dWIuYyBiL3hlbi9jb21tb24vZWZpL2NvbW1vbi1zdHViLmMKK2luZGV4 IDc3ZjEzOGE2YzU3NC4uN2IxMjAwNWJlYTNmIDEwMDY0NAorLS0tIGEveGVuL2NvbW1vbi9lZmkv Y29tbW9uLXN0dWIuYworKysrIGIveGVuL2NvbW1vbi9lZmkvY29tbW9uLXN0dWIuYworQEAgLTcs MTEgKzcsNiBAQCBib29sIGVmaV9lbmFibGVkKHVuc2lnbmVkIGludCBmZWF0dXJlKQorICAgICBy ZXR1cm4gZmFsc2U7CisgfQorIAorLWJvb2wgZWZpX3JzX3VzaW5nX3BndGFibGVzKHZvaWQpCist eworLSAgICByZXR1cm4gZmFsc2U7CistfQorLQorIHVuc2lnbmVkIGxvbmcgZWZpX2dldF90aW1l KHZvaWQpCisgeworICAgICBCVUcoKTsKK2RpZmYgLS1naXQgYS94ZW4vY29tbW9uL2VmaS9ydW50 aW1lLmMgYi94ZW4vY29tbW9uL2VmaS9ydW50aW1lLmMKK2luZGV4IDMwZDY0OWNhNWMxYi4uZmVi MDlhY2Y3NTRjIDEwMDY0NAorLS0tIGEveGVuL2NvbW1vbi9lZmkvcnVudGltZS5jCisrKysgYi94 ZW4vY29tbW9uL2VmaS9ydW50aW1lLmMKK0BAIC00OSw3ICs0OSw2IEBAIGNvbnN0IENIQVIxNiAq X19yZWFkX21vc3RseSBlZmlfZndfdmVuZG9yOworIGNvbnN0IEVGSV9SVU5USU1FX1NFUlZJQ0VT ICpfX3JlYWRfbW9zdGx5IGVmaV9yczsKKyAjaWZuZGVmIENPTkZJR19BUk0gLyogVE9ETyAtIGRp c2FibGVkIHVudGlsIGltcGxlbWVudGVkIG9uIEFSTSAqLworIHN0YXRpYyBERUZJTkVfU1BJTkxP Q0soZWZpX3JzX2xvY2spOworLXN0YXRpYyB1bnNpZ25lZCBpbnQgZWZpX3JzX29uX2NwdSA9IE5S X0NQVVM7CisgI2VuZGlmCisgCisgVUlOVE4gX19yZWFkX21vc3RseSBlZmlfbWVtbWFwX3NpemU7 CitAQCAtOTIsNiArOTEsMTEgQEAgc3RydWN0IGVmaV9yc19zdGF0ZSBlZmlfcnNfZW50ZXIodm9p ZCkKKyAgICAgaWYgKCBtZm5fZXEoZWZpX2w0X21mbiwgSU5WQUxJRF9NRk4pICkKKyAgICAgICAg IHJldHVybiBzdGF0ZTsKKyAKKysgICAgLyoKKysgICAgICogSWYgaW4gbGF6eSBpZGxlIGNvbnRl eHQgc3dpdGNoIHN0YXRlIHN5bmMgbm93IHRvIGF2b2lkIGFuIGluY29taW5nCisrICAgICAqIEZM VVNIX1ZDUFVfU1RBVEUgSVBJIGNoYW5naW5nIHRoZSBsb2FkZWQgcGFnZS10YWJsZXMuCisrICAg ICAqLworKyAgICBzeW5jX2xvY2FsX2V4ZWNzdGF0ZSgpOworICAgICBzdGF0ZS5jcjMgPSByZWFk X2NyMygpOworICAgICBzYXZlX2ZwdV9lbmFibGUoKTsKKyAgICAgYXNtIHZvbGF0aWxlICggImZu Y2xleDsgZmxkY3cgJTAiIDo6ICJtIiAoZmN3KSApOworQEAgLTk5LDggKzEwMyw2IEBAIHN0cnVj dCBlZmlfcnNfc3RhdGUgZWZpX3JzX2VudGVyKHZvaWQpCisgCisgICAgIHNwaW5fbG9jaygmZWZp X3JzX2xvY2spOworIAorLSAgICBlZmlfcnNfb25fY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwor LQorICAgICAvKiBwcmV2ZW50IGZpeHVwX3BhZ2VfZmF1bHQoKSBmcm9tIGRvaW5nIGFueXRoaW5n ICovCisgICAgIGlycV9lbnRlcigpOworIAorQEAgLTExNSw3ICsxMTcsOCBAQCBzdHJ1Y3QgZWZp X3JzX3N0YXRlIGVmaV9yc19lbnRlcih2b2lkKQorICAgICAgICAgbGdkdCgmZ2R0X2Rlc2MpOwor ICAgICB9CisgCistICAgIHN3aXRjaF9jcjNfY3I0KG1mbl90b19tYWRkcihlZmlfbDRfbWZuKSwg cmVhZF9jcjQoKSk7CisrICAgIHN3aXRjaF9jcjNfY3I0KGlkbGVfdmNwdVtzbXBfcHJvY2Vzc29y X2lkKCldLCBtZm5fdG9fbWFkZHIoZWZpX2w0X21mbiksCisrICAgICAgICAgICAgICAgICAgIHJl YWRfY3I0KCkpOworIAorICAgICAvKgorICAgICAgKiBBdCB0aGUgdGltZSBvZiB3cml0aW5nICgy MDIyKSwgbm8gVUVGSSBmaXJ3bWFyZSBpcyBDRVQtSUJUIGNvbXBhdGlibGUuCitAQCAtMTQzLDcg KzE0Niw3IEBAIHZvaWQgZWZpX3JzX2xlYXZlKHN0cnVjdCBlZmlfcnNfc3RhdGUgKnN0YXRlKQor ICAgICBpZiAoIHN0YXRlLT5tc3Jfc19jZXQgKQorICAgICAgICAgd3Jtc3JsKE1TUl9TX0NFVCwg c3RhdGUtPm1zcl9zX2NldCk7CisgCistICAgIHN3aXRjaF9jcjNfY3I0KHN0YXRlLT5jcjMsIHJl YWRfY3I0KCkpOworKyAgICBzd2l0Y2hfY3IzX2NyNChjdXJyLCBzdGF0ZS0+Y3IzLCByZWFkX2Ny NCgpKTsKKyAgICAgaWYgKCBpc19wdl92Y3B1KGN1cnIpICYmICFpc19pZGxlX3ZjcHUoY3Vycikg KQorICAgICB7CisgICAgICAgICBzdHJ1Y3QgZGVzY19wdHIgZ2R0X2Rlc2MgPSB7CitAQCAtMTU0 LDE4ICsxNTcsMTAgQEAgdm9pZCBlZmlfcnNfbGVhdmUoc3RydWN0IGVmaV9yc19zdGF0ZSAqc3Rh dGUpCisgICAgICAgICBsZ2R0KCZnZHRfZGVzYyk7CisgICAgIH0KKyAgICAgaXJxX2V4aXQoKTsK Ky0gICAgZWZpX3JzX29uX2NwdSA9IE5SX0NQVVM7CisgICAgIHNwaW5fdW5sb2NrKCZlZmlfcnNf bG9jayk7CisgICAgIHZjcHVfcmVzdG9yZV9mcHVfbm9ubGF6eShjdXJyLCB0cnVlKTsKKyB9Cisg CistYm9vbCBlZmlfcnNfdXNpbmdfcGd0YWJsZXModm9pZCkKKy17CistICAgIHJldHVybiAhbWZu X2VxKGVmaV9sNF9tZm4sIElOVkFMSURfTUZOKSAmJgorLSAgICAgICAgICAgKHNtcF9wcm9jZXNz b3JfaWQoKSA9PSBlZmlfcnNfb25fY3B1KSAmJgorLSAgICAgICAgICAgKHJlYWRfY3IzKCkgPT0g bWZuX3RvX21hZGRyKGVmaV9sNF9tZm4pKTsKKy19CistCisgdW5zaWduZWQgbG9uZyBlZmlfZ2V0 X3RpbWUodm9pZCkKKyB7CisgICAgIEVGSV9USU1FIHRpbWU7CitkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUveGVuL2VmaS5oIGIveGVuL2luY2x1ZGUveGVuL2VmaS5oCitpbmRleCA3MjNjYjgwODUy NzAuLjk5NTMxOTdlZTU1MyAxMDA2NDQKKy0tLSBhL3hlbi9pbmNsdWRlL3hlbi9lZmkuaAorKysr IGIveGVuL2luY2x1ZGUveGVuL2VmaS5oCitAQCAtNDAsNyArNDAsNiBAQCBleHRlcm4gYm9vbCBl Zmlfc2VjdXJlX2Jvb3Q7CisgCisgdm9pZCBlZmlfaW5pdF9tZW1vcnkodm9pZCk7CisgYm9vbCBl ZmlfYm9vdF9tZW1fdW51c2VkKHVuc2lnbmVkIGxvbmcgKnN0YXJ0LCB1bnNpZ25lZCBsb25nICpl bmQpOworLWJvb2wgZWZpX3JzX3VzaW5nX3BndGFibGVzKHZvaWQpOworIHVuc2lnbmVkIGxvbmcg ZWZpX2dldF90aW1lKHZvaWQpOworIHZvaWQgZWZpX2hhbHRfc3lzdGVtKHZvaWQpOworIHZvaWQg ZWZpX3Jlc2V0X3N5c3RlbShib29sIHdhcm0pOworLS0gCisyLjUzLjAKKwo=