From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 14136 invoked from network); 27 Dec 2021 01:06:49 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 27 Dec 2021 01:06:49 -0000 Content-Type: multipart/mixed; boundary="===============2969442585930642176==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_firefox-esr=3A_update_to_91=2E4=2E0=2C_add_ppc64le_JIT_patch?= To: ml@inbox.vuxu.org From: Skirmisher Reply-to: ml@inbox.vuxu.org Message-ID: Date: Mon, 27 Dec 2021 02:06:49 +0100 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============2969442585930642176== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IFNraXJtaXNoZXIgYWdhaW5zdCBtYXN0ZXIg b24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL1NraXJt aXNoZXIvdm9pZC1wYWNrYWdlcyB1cHN0cmVhbS1tYXN0ZXIKaHR0cHM6Ly9naXRodWIuY29tL3Zv aWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM0NzEyCgpmaXJlZm94LWVzcjogdXBkYXRlIHRv IDkxLjQuMCwgYWRkIHBwYzY0bGUgSklUIHBhdGNoClRoaXMgUFIgaW5jbHVkZXMgYSBtb25vbGl0 aGljIHBhdGNoIGZvciBjb21wbGV0ZWQgc2Vjb25kLXN0YWdlIEpJVCBmdW5jdGlvbmFsaXR5IGZv ciBGaXJlZm94IG9uIFBPV0VSOSBsaXR0bGUtZW5kaWFuLCBkZXNjcmliZWQgW2hlcmVdKGh0dHBz Oi8vd3d3LnRhbG9zcGFjZS5jb20vMjAyMS8xMi85MWVzci13aXRoLWJhc2VsaW5lLWNvbXBpbGVy YmFzZWxpbmUuaHRtbCkgKFtwYXRjaCBzb3VyY2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9jaG1lZWVk YWxmL2dlY2tvLWRldi9pc3N1ZXMvMikpLiBUaGUgY29kZSBpcyBzZWxmLWNvbnRhaW5lZCwgYW5k IG90aGVyIHBsYXRmb3JtcyBzaG91bGQgYmUgY29tcGxldGVseSB1bmFmZmVjdGVkLiBUaGUgYmFz ZWxpbmUgZm9yIFZvaWQgb24gcHBjNjRsZSBpcyBQT1dFUjgsIHdoaWNoIGlzIG5vdCAoeWV0KSBz dXBwb3J0ZWQgYnkgdGhpcyBKSVQsIGJ1dCBGaXJlZm94IHdpbGwgZGV0ZWN0IHRoaXMgYXQgcnVu dGltZSBhbmQgZGlzYWJsZSB0aGUgSklUIGlmIG5vdCBydW5uaW5nIG9uIFBPV0VSOS4gKEhvd2V2 ZXIsIHRoaXMgYXBwZWFycyB0byBiZSB1bnRlc3RlZC4pDQoNClRoaXMgaXMgbWFya2VkIGFzIGEg ZHJhZnQgYmVjYXVzZSBJIGhhdmVuJ3QgYnVpbHQgaXQgeWV0OyBJIHNob3VsZCBiZSBhYmxlIHRv IHRyeSBpdCBvdXQgc29vbiwgYnV0IEkgd2FudGVkIHRvIGdldCB0aGUgUFIgb3V0IHRoZXJlIHNv IGZvbGtzIGNvdWxkIHRlc3QgaXQgaWYgdGhleSdyZSBzbyBpbmNsaW5lZC4NCg0KVGhpcyBQUiBz dXBlcnNlZGVzICMzNDQ0Ny4NCg0KW2NpIHNraXBdCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczov L2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzQ3MTIucGF0Y2ggaXMg YXR0YWNoZWQ= --===============2969442585930642176== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-upstream-master-34712.patch" RnJvbSA4Zjg3ZmNhYmJlNWU3NDYxYzM0ZThiN2Y0NGFhMTY3MWM4OGEyMDY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBXaWxsIFNwcmluZ2VyIDxza2lybWlzaGVyQHByb3Rvbm1haWwu Y29tPgpEYXRlOiBTdW4sIDI2IERlYyAyMDIxIDE2OjA0OjA4IC0wODAwClN1YmplY3Q6IFtQQVRD SCAxLzJdIGZpcmVmb3gtZXNyOiB1cGRhdGUgdG8gOTEuNC4wLCBhZGQgcHBjNjRsZSBKSVQgcGF0 Y2gKCk1vcmUgaW5mbyBvbiB0aGUgYmFzZWxpbmUgSlMvV0FTTSBjb21waWxlciBmb3IgUE9XRVI5 IExFIGF0OgpodHRwczovL3d3dy50YWxvc3BhY2UuY29tLzIwMjEvMTIvOTFlc3Itd2l0aC1iYXNl bGluZS1jb21waWxlcmJhc2VsaW5lLmh0bWwKLS0tCiAuLi4vcGF0Y2hlcy9wcGM2NGxlLWJhc2Vs aW5lLWppdC5wYXRjaCAgICAgICAgfCAzNDQxICsrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2Zp cmVmb3gtZXNyL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgfCAgIDExICstCiAyIGZpbGVzIGNo YW5nZWQsIDM0NTAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvcHBjNjRsZS1iYXNlbGluZS1qaXQucGF0 Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvcHBjNjRsZS1iYXNl bGluZS1qaXQucGF0Y2ggYi9zcmNwa2dzL2ZpcmVmb3gtZXNyL3BhdGNoZXMvcHBjNjRsZS1iYXNl bGluZS1qaXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5j Y2VkMDA1OGU4ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2ZpcmVmb3gtZXNyL3BhdGNo ZXMvcHBjNjRsZS1iYXNlbGluZS1qaXQucGF0Y2gKQEAgLTAsMCArMSwzNDQxIEBACitkaWZmIC0t Z2l0IGEvY29uZmlnL2NoZWNrX21hY3JvYXNzZW1ibGVyX3N0eWxlLnB5IGIvY29uZmlnL2NoZWNr X21hY3JvYXNzZW1ibGVyX3N0eWxlLnB5CitpbmRleCAwZDA0MGE5MzliLi5iODNlMzY5MWRkIDEw MDY0NAorLS0tIGEvY29uZmlnL2NoZWNrX21hY3JvYXNzZW1ibGVyX3N0eWxlLnB5CisrKysgYi9j b25maWcvY2hlY2tfbWFjcm9hc3NlbWJsZXJfc3R5bGUucHkKK0BAIC0yNCwxNyArMjQsMTcgQEAg ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKKyBmcm9tIF9fZnV0dXJlX18g aW1wb3J0IHByaW50X2Z1bmN0aW9uCisgCisgaW1wb3J0IGRpZmZsaWIKKyBpbXBvcnQgb3MKKyBp bXBvcnQgcmUKKyBpbXBvcnQgc3lzCisgCisgYXJjaGl0ZWN0dXJlX2luZGVwZW5kZW50ID0gc2V0 KFsiZ2VuZXJpYyJdKQorLWFsbF91bnN1cHBvcnRlZF9hcmNoaXRlY3R1cmVzX25hbWVzID0gc2V0 KFsibWlwczMyIiwgIm1pcHM2NCIsICJtaXBzX3NoYXJlZCJdKQorK2FsbF91bnN1cHBvcnRlZF9h cmNoaXRlY3R1cmVzX25hbWVzID0gc2V0KFsibWlwczMyIiwgIm1pcHM2NCIsICJtaXBzX3NoYXJl ZCIsICJwcGM2NCJdKQorIGFsbF9hcmNoaXRlY3R1cmVfbmFtZXMgPSBzZXQoWyJ4ODYiLCAieDY0 IiwgImFybSIsICJhcm02NCJdKQorIGFsbF9zaGFyZWRfYXJjaGl0ZWN0dXJlX25hbWVzID0gc2V0 KFsieDg2X3NoYXJlZCIsICJhcm0iLCAiYXJtNjQiXSkKKyAKKyByZUJlZm9yZUFyZyA9ICIoPzw9 WygsXHNdKSIKKyByZUFyZ1R5cGUgPSAiKD9QPHR5cGU+W1x3XHM6KiZdKykiCisgcmVBcmdOYW1l ID0gIig/UDxuYW1lPlxzXHcrKSIKKyByZUFyZ0RlZmF1bHQgPSAiKD9QPGRlZmF1bHQ+KD86XHM9 W14sKV0rKT8pIgorIHJlQWZ0ZXJBcmcgPSAiKD89WywpXSkiCitkaWZmIC0tZ2l0IGEvanMvbW96 LmNvbmZpZ3VyZSBiL2pzL21vei5jb25maWd1cmUKK2luZGV4IDNjM2QwZDQzNTkuLmIyMTdkMGUx NWMgMTAwNjQ0CistLS0gYS9qcy9tb3ouY29uZmlndXJlCisrKysgYi9qcy9tb3ouY29uZmlndXJl CitAQCAtMjE0LDIzICsyMTQsMjUgQEAgZGVmIGppdF9jb2RlZ2VuKGppdF9lbmFibGVkLCBzaW11 bGF0b3IsIHRhcmdldCk6CisgICAgIHJldHVybiBuYW1lc3BhY2UoKip7c3RyKHRhcmdldC5jcHUp OiBUcnVlfSkKKyAKKyAKKyBzZXRfY29uZmlnKCJKU19DT0RFR0VOX05PTkUiLCBqaXRfY29kZWdl bi5ub25lKQorIHNldF9jb25maWcoIkpTX0NPREVHRU5fQVJNIiwgaml0X2NvZGVnZW4uYXJtKQor IHNldF9jb25maWcoIkpTX0NPREVHRU5fQVJNNjQiLCBqaXRfY29kZWdlbi5hcm02NCkKKyBzZXRf Y29uZmlnKCJKU19DT0RFR0VOX01JUFMzMiIsIGppdF9jb2RlZ2VuLm1pcHMzMikKKyBzZXRfY29u ZmlnKCJKU19DT0RFR0VOX01JUFM2NCIsIGppdF9jb2RlZ2VuLm1pcHM2NCkKKytzZXRfY29uZmln KCJKU19DT0RFR0VOX1BQQzY0Iiwgaml0X2NvZGVnZW4ucHBjNjQpCisgc2V0X2NvbmZpZygiSlNf Q09ERUdFTl9YODYiLCBqaXRfY29kZWdlbi54ODYpCisgc2V0X2NvbmZpZygiSlNfQ09ERUdFTl9Y NjQiLCBqaXRfY29kZWdlbi54NjQpCisgc2V0X2RlZmluZSgiSlNfQ09ERUdFTl9OT05FIiwgaml0 X2NvZGVnZW4ubm9uZSkKKyBzZXRfZGVmaW5lKCJKU19DT0RFR0VOX0FSTSIsIGppdF9jb2RlZ2Vu LmFybSkKKyBzZXRfZGVmaW5lKCJKU19DT0RFR0VOX0FSTTY0Iiwgaml0X2NvZGVnZW4uYXJtNjQp Cisgc2V0X2RlZmluZSgiSlNfQ09ERUdFTl9NSVBTMzIiLCBqaXRfY29kZWdlbi5taXBzMzIpCisg c2V0X2RlZmluZSgiSlNfQ09ERUdFTl9NSVBTNjQiLCBqaXRfY29kZWdlbi5taXBzNjQpCisrc2V0 X2RlZmluZSgiSlNfQ09ERUdFTl9QUEM2NCIsIGppdF9jb2RlZ2VuLnBwYzY0KQorIHNldF9kZWZp bmUoIkpTX0NPREVHRU5fWDg2Iiwgaml0X2NvZGVnZW4ueDg2KQorIHNldF9kZWZpbmUoIkpTX0NP REVHRU5fWDY0Iiwgaml0X2NvZGVnZW4ueDY0KQorIAorICMgUHJvZmlsaW5nCisgIyA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cisgb3B0aW9u KAorICAgICAiLS1lbmFibGUtaW5zdHJ1bWVudHMiLAorICAgICBlbnY9Ik1PWl9JTlNUUlVNRU5U UyIsCitkaWZmIC0tZ2l0IGEvanMvc3JjL2lycmVnZXhwL1JlZ0V4cE5hdGl2ZU1hY3JvQXNzZW1i bGVyLmNwcCBiL2pzL3NyYy9pcnJlZ2V4cC9SZWdFeHBOYXRpdmVNYWNyb0Fzc2VtYmxlci5jcHAK K2luZGV4IGUwZWY3ZTY0ZjUuLjgxZDhlMmExOTggMTAwNjQ0CistLS0gYS9qcy9zcmMvaXJyZWdl eHAvUmVnRXhwTmF0aXZlTWFjcm9Bc3NlbWJsZXIuY3BwCisrKysgYi9qcy9zcmMvaXJyZWdleHAv UmVnRXhwTmF0aXZlTWFjcm9Bc3NlbWJsZXIuY3BwCitAQCAtODEzLDE4ICs4MTMsMzMgQEAgdm9p ZCBTTVJlZ0V4cE1hY3JvQXNzZW1ibGVyOjpKdW1wT3JCYWNrdHJhY2soTGFiZWwqIHRvKSB7Cisg Ly8gSWYgdGhlIHRlc3QgZmFpbHMsIGNhbGwgYW4gT09MIGhhbmRsZXIgdG8gdHJ5IGdyb3dpbmcg dGhlIHN0YWNrLgorIHZvaWQgU01SZWdFeHBNYWNyb0Fzc2VtYmxlcjo6Q2hlY2tCYWNrdHJhY2tT dGFja0xpbWl0KCkgeworICAganM6OmppdDo6TGFiZWwgbm9fc3RhY2tfb3ZlcmZsb3c7CisgICBt YXNtXy5icmFuY2hQdHIoCisgICAgICAgQXNzZW1ibGVyOjpCZWxvd09yRXF1YWwsCisgICAgICAg QWJzb2x1dGVBZGRyZXNzKGlzb2xhdGUoKS0+cmVnZXhwX3N0YWNrKCktPmxpbWl0X2FkZHJlc3Nf YWRkcmVzcygpKSwKKyAgICAgICBiYWNrdHJhY2tfc3RhY2tfcG9pbnRlcl8sICZub19zdGFja19v dmVyZmxvdyk7CisgCisrI2lmZGVmIEpTX0NPREVHRU5fUFBDNjQKKysgIC8vIExSIG9uIFBvd2Vy UEMgaXNuJ3QgYSBHUFIsIHNvIHdlIGhhdmUgdG8gZXhwbGljaXRseSBzYXZlIGl0IGhlcmUgYmVm b3JlCisrICAvLyB3ZSBjYWxsIG9yIHdlIHdpbGwgZW5kIHVwIGVycm9uZW91c2x5IHJldHVybmlu ZyBhZnRlciB0aGUgY2FsbCB0byB0aGUKKysgIC8vIHN0YWNrIG92ZXJmbG93IGhhbmRsZXIgd2hl biB3ZSB8YmxyfCBvdXQgYW5kIGluZXZpdGFibHkgdW5kZXJmbG93IHRoZQorKyAgLy8gaXJyZWdl eHAgc3RhY2sgb24gdGhlIG5leHQgYmFja3RyYWNrLgorKyAgbWFzbV8ueHNfbWZscih0ZW1wMV8p OworKyAgbWFzbV8uYXNfc3RkdSh0ZW1wMV8sIG1hc21fLmdldFN0YWNrUG9pbnRlcigpLCAtOCk7 CisrI2VuZGlmCisrCisgICBtYXNtXy5jYWxsKCZzdGFja19vdmVyZmxvd19sYWJlbF8pOworIAor KyNpZmRlZiBKU19DT0RFR0VOX1BQQzY0CisrICBtYXNtXy5hc19sZCh0ZW1wMV8sIG1hc21fLmdl dFN0YWNrUG9pbnRlcigpLCAwKTsKKysgIG1hc21fLnhzX210bHIodGVtcDFfKTsKKysgIG1hc21f LmFzX2FkZGkobWFzbV8uZ2V0U3RhY2tQb2ludGVyKCksIG1hc21fLmdldFN0YWNrUG9pbnRlcigp LCA4KTsKKysjZW5kaWYKKysKKyAgIC8vIEV4aXQgd2l0aCBhbiBleGNlcHRpb24gaWYgdGhlIGNh bGwgZmFpbGVkCisgICBtYXNtXy5icmFuY2hUZXN0MzIoQXNzZW1ibGVyOjpaZXJvLCB0ZW1wMF8s IHRlbXAwXywKKyAgICAgICAgICAgICAgICAgICAgICAmZXhpdF93aXRoX2V4Y2VwdGlvbl9sYWJl bF8pOworIAorICAgbWFzbV8uYmluZCgmbm9fc3RhY2tfb3ZlcmZsb3cpOworIH0KKyAKKyAvLyBU aGlzIGlzIHVzZWQgdG8gc25lYWsgYW4gT09NIHRocm91Z2ggdGhlIFY4IGxheWVyLgorQEAgLTEx MjcsMTYgKzExNDIsMjAgQEAgdm9pZCBTTVJlZ0V4cE1hY3JvQXNzZW1ibGVyOjpzdGFja092ZXJm bG93SGFuZGxlcigpIHsKKyAgIExpdmVHZW5lcmFsUmVnaXN0ZXJTZXQgdm9sYXRpbGVSZWdzKEdl bmVyYWxSZWdpc3RlclNldDo6Vm9sYXRpbGUoKSk7CisgCisgI2lmZGVmIEpTX1VTRV9MSU5LX1JF R0lTVEVSCisgICBtYXNtXy5wdXNoUmV0dXJuQWRkcmVzcygpOworICNlbmRpZgorIAorICAgLy8g QWRqdXN0IGZvciB0aGUgcmV0dXJuIGFkZHJlc3Mgb24gdGhlIHN0YWNrLgorICAgc2l6ZV90IGZy YW1lT2Zmc2V0ID0gc2l6ZW9mKHZvaWQqKTsKKysjaWZkZWYgSlNfQ09ERUdFTl9QUEM2NAorKyAg Ly8gV2UgaGF2ZSBhIGRvdWJsZSByZXR1cm4gYWRkcmVzcy4KKysgIGZyYW1lT2Zmc2V0ICs9IHNp emVvZih2b2lkKik7CisrI2VuZGlmCisgCisgICB2b2xhdGlsZVJlZ3MudGFrZVVuY2hlY2tlZCh0 ZW1wMF8pOworICAgdm9sYXRpbGVSZWdzLnRha2VVbmNoZWNrZWQodGVtcDFfKTsKKyAgIG1hc21f LlB1c2hSZWdzSW5NYXNrKHZvbGF0aWxlUmVncyk7CisgCisgICB1c2luZyBGbiA9IGJvb2wgKCop KFJlZ0V4cFN0YWNrICogcmVnZXhwX3N0YWNrKTsKKyAgIG1hc21fLnNldHVwVW5hbGlnbmVkQUJJ Q2FsbCh0ZW1wMF8pOworICAgbWFzbV8ucGFzc0FCSUFyZyh0ZW1wMV8pOworZGlmZiAtLWdpdCBh L2pzL3NyYy9qaXQvQXRvbWljT3BlcmF0aW9ucy5oIGIvanMvc3JjL2ppdC9BdG9taWNPcGVyYXRp b25zLmgKK2luZGV4IGY0YTU3MjdkMDUuLjEzODYxMmQ1M2IgMTAwNjQ0CistLS0gYS9qcy9zcmMv aml0L0F0b21pY09wZXJhdGlvbnMuaAorKysrIGIvanMvc3JjL2ppdC9BdG9taWNPcGVyYXRpb25z LmgKK0BAIC0zNzMsMTkgKzM3MywyNiBAQCBjb25zdGV4cHIgaW5saW5lIGJvb2wgQXRvbWljT3Bl cmF0aW9uczo6aXNMb2NrZnJlZUpTKGludDMyX3Qgc2l6ZSkgeworICMgICAgaW5jbHVkZSAiaml0 L3NoYXJlZC9BdG9taWNPcGVyYXRpb25zLWZlZWxpbmctbHVja3kuaCIKKyAjICBlbmRpZgorICNl bGlmIGRlZmluZWQoX19taXBzX18pCisgIyAgaWYgZGVmaW5lZChfX2NsYW5nX18pIHx8IGRlZmlu ZWQoX19HTlVDX18pCisgIyAgICBpbmNsdWRlICJqaXQvbWlwcy1zaGFyZWQvQXRvbWljT3BlcmF0 aW9ucy1taXBzLXNoYXJlZC5oIgorICMgIGVsc2UKKyAjICAgIGVycm9yICJBdG9taWNPcGVyYXRp b25zIG9uIE1JUFMgZm9yIGFuIHVua25vd24gY29tcGlsZXIiCisgIyAgZW5kaWYKKysjZWxpZiBk ZWZpbmVkKF9fcHBjNjRfXykgfHwgZGVmaW5lZChfX1BQQzY0X18pIHx8IGRlZmluZWQoX19wcGM2 NGxlX18pIHx8IFwKKysgICAgICBkZWZpbmVkKF9fUFBDNjRMRV9fKQorKyMgIGlmIGRlZmluZWQo SlNfQ09ERUdFTl9QUEM2NCkKKysvKiBYWFg6IHNob3VsZCBiZSAjICAgIGluY2x1ZGUgImppdC9z aGFyZWQvQXRvbWljT3BlcmF0aW9ucy1zaGFyZWQtaml0LmgiICovCisrIyAgICBpbmNsdWRlICJq aXQvc2hhcmVkL0F0b21pY09wZXJhdGlvbnMtZmVlbGluZy1sdWNreS5oIgorKyMgIGVsc2UKKysj ICAgIGluY2x1ZGUgImppdC9zaGFyZWQvQXRvbWljT3BlcmF0aW9ucy1mZWVsaW5nLWx1Y2t5Lmgi CisrIyAgZW5kaWYKKyAjZWxpZiBkZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19QUENfXykg fHwgZGVmaW5lZChfX3NwYXJjX18pIHx8ICAgICBcCistICAgIGRlZmluZWQoX19wcGM2NF9fKSB8 fCBkZWZpbmVkKF9fUFBDNjRfXykgfHwgZGVmaW5lZChfX3BwYzY0bGVfXykgfHwgXAorLSAgICBk ZWZpbmVkKF9fUFBDNjRMRV9fKSB8fCBkZWZpbmVkKF9fYWxwaGFfXykgfHwgZGVmaW5lZChfX2hw cGFfXykgfHwgIFwKKysgICAgZGVmaW5lZChfX2FscGhhX18pIHx8IGRlZmluZWQoX19ocHBhX18p IHx8ICBcCisgICAgIGRlZmluZWQoX19zaF9fKSB8fCBkZWZpbmVkKF9fczM5MF9fKSB8fCBkZWZp bmVkKF9fczM5MHhfXykgfHwgICAgICAgXAorICAgICBkZWZpbmVkKF9fbTY4a19fKSB8fCBkZWZp bmVkKF9fcmlzY3YpIHx8IGRlZmluZWQoX193YXNpX18pCisgIyAgaW5jbHVkZSAiaml0L3NoYXJl ZC9BdG9taWNPcGVyYXRpb25zLWZlZWxpbmctbHVja3kuaCIKKyAjZWxzZQorICMgIGVycm9yICJO byBBdG9taWNPcGVyYXRpb25zIHN1cHBvcnQgcHJvdmlkZWQgZm9yIHRoaXMgcGxhdGZvcm0iCisg I2VuZGlmCisgCisgI2VuZGlmICAvLyBqaXRfQXRvbWljT3BlcmF0aW9uc19oCitkaWZmIC0tZ2l0 IGEvanMvc3JjL2ppdC9CYXNlbGluZUJhaWxvdXRzLmNwcCBiL2pzL3NyYy9qaXQvQmFzZWxpbmVC YWlsb3V0cy5jcHAKK2luZGV4IGJjYTE0MjdmOTMuLmViNDk5YjM0Y2YgMTAwNjQ0CistLS0gYS9q cy9zcmMvaml0L0Jhc2VsaW5lQmFpbG91dHMuY3BwCisrKysgYi9qcy9zcmMvaml0L0Jhc2VsaW5l QmFpbG91dHMuY3BwCitAQCAtNDgxLDE2ICs0ODEsMjEgQEAgY2xhc3MgTU9aX1NUQUNLX0NMQVNT IEJhc2VsaW5lU3RhY2tCdWlsZGVyIHsKKyAgICAgLy8gIGxldCBYID0gU1RBQ0tfU1RBUlRfQURE UiArIEppdEZyYW1lTGF5b3V0OjpTaXplKCkgKyBQUkVWX0ZSQU1FX1NJWkUKKyAgICAgLy8gICAg ICBYICsgUmVjdGlmaWVyRnJhbWVMYXlvdXQ6OlNpemUoKQorICAgICAvLyAgICAgICAgKyAoKFJl Y3RpZmllckZyYW1lTGF5b3V0KikgWCktPnByZXZGcmFtZUxvY2FsU2l6ZSgpCisgICAgIC8vICAg ICAgICAtIEJhc2VsaW5lU3R1YkZyYW1lTGF5b3V0OjpyZXZlcnNlT2Zmc2V0T2ZTYXZlZEZyYW1l UHRyKCkKKyAgICAgc2l6ZV90IGV4dHJhT2Zmc2V0ID0KKyAgICAgICAgIFJlY3RpZmllckZyYW1l TGF5b3V0OjpTaXplKCkgKyBwcmlvckZyYW1lLT5wcmV2RnJhbWVMb2NhbFNpemUoKSArCisgICAg ICAgICBCYXNlbGluZVN0dWJGcmFtZUxheW91dDo6cmV2ZXJzZU9mZnNldE9mU2F2ZWRGcmFtZVB0 cigpOworICAgICByZXR1cm4gdmlydHVhbFBvaW50ZXJBdFN0YWNrT2Zmc2V0KHByaW9yT2Zmc2V0 ICsgZXh0cmFPZmZzZXQpOworKyNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKKysgICAg KHZvaWQpcHJpb3JPZmZzZXQ7CisrLy8gWFhYLiBUaGUgYWJvdmUgY29kZSBtaWdodCB3b3JrIHRo b3VnaAorKyN3YXJuaW5nICJUT0RPISBCYXNlbGluZVN0YWNrQnVpbGRlcjo6Y2FsY3VsYXRlUHJl dkZyYW1lUHRyKCkiCisrICAgIE1PWl9DUkFTSCgpOworICNlbGlmIGRlZmluZWQoSlNfQ09ERUdF Tl9OT05FKQorICAgICAodm9pZClwcmlvck9mZnNldDsKKyAgICAgTU9aX0NSQVNIKCk7CisgI2Vs c2UKKyAjICBlcnJvciAiQmFkIGFyY2hpdGVjdHVyZSEiCisgI2VuZGlmCisgICB9CisgfTsKK2Rp ZmYgLS1naXQgYS9qcy9zcmMvaml0L0Jhc2VsaW5lQ29kZUdlbi5jcHAgYi9qcy9zcmMvaml0L0Jh c2VsaW5lQ29kZUdlbi5jcHAKK2luZGV4IDcwODlmNWUzMDAuLmQ2NzIzNmQyYzUgMTAwNjQ0Cist LS0gYS9qcy9zcmMvaml0L0Jhc2VsaW5lQ29kZUdlbi5jcHAKKysrKyBiL2pzL3NyYy9qaXQvQmFz ZWxpbmVDb2RlR2VuLmNwcAorQEAgLTUyMCwxNiArNTIwLDE5IEBAIGJvb2wgQmFzZWxpbmVDb2Rl R2VuPEhhbmRsZXI+OjplbWl0T3V0T2ZMaW5lUG9zdEJhcnJpZXJTbG90KCkgeworICAgcmVncy50 YWtlKEJhc2VsaW5lRnJhbWVSZWcpOworICAgUmVnaXN0ZXIgc2NyYXRjaCA9IHJlZ3MudGFrZUFu eSgpOworICNpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5f QVJNNjQpCisgICAvLyBPbiBBUk0sIHNhdmUgdGhlIGxpbmsgcmVnaXN0ZXIgYmVmb3JlIGNhbGxp bmcuICBJdCBjb250YWlucyB0aGUgcmV0dXJuCisgICAvLyBhZGRyZXNzLiAgVGhlIHxtYXNtLnJl dCgpfCBsYXRlciB3aWxsIHBvcCB0aGlzIGludG8gfHBjfCB0byByZXR1cm4uCisgICBtYXNtLnB1 c2gobHIpOworICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNf Q09ERUdFTl9NSVBTNjQpCisgICBtYXNtLnB1c2gocmEpOworKyNlbGlmIGRlZmluZWQoSlNfQ09E RUdFTl9QUEM2NCkKKysgIG1hc20ueHNfbWZscihTY3JhdGNoUmVnaXN0ZXIpOworKyAgbWFzbS5w dXNoKFNjcmF0Y2hSZWdpc3Rlcik7CisgI2VuZGlmCisgICBtYXNtLnB1c2hWYWx1ZShSMCk7Cisg CisgICB1c2luZyBGbiA9IHZvaWQgKCopKEpTUnVudGltZSAqIHJ0LCBqczo6Z2M6OkNlbGwgKiBj ZWxsKTsKKyAgIG1hc20uc2V0dXBVbmFsaWduZWRBQklDYWxsKHNjcmF0Y2gpOworICAgbWFzbS5t b3ZlUHRyKEltbVB0cihjeC0+cnVudGltZSgpKSwgc2NyYXRjaCk7CisgICBtYXNtLnBhc3NBQklB cmcoc2NyYXRjaCk7CisgICBtYXNtLnBhc3NBQklBcmcob2JqUmVnKTsKK2RpZmYgLS1naXQgYS9q cy9zcmMvaml0L0Jhc2VsaW5lSUMuY3BwIGIvanMvc3JjL2ppdC9CYXNlbGluZUlDLmNwcAoraW5k ZXggOTU3MjM5NGU3Ni4uZGZlNzYyZTVjOCAxMDA2NDQKKy0tLSBhL2pzL3NyYy9qaXQvQmFzZWxp bmVJQy5jcHAKKysrKyBiL2pzL3NyYy9qaXQvQmFzZWxpbmVJQy5jcHAKK0BAIC0xMjcsMTcgKzEy NywxOCBAQCBjbGFzcyBNT1pfUkFJSSBGYWxsYmFja0lDQ29kZUNvbXBpbGVyIGZpbmFsIHsKKyB9 OworIAorIEFsbG9jYXRhYmxlR2VuZXJhbFJlZ2lzdGVyU2V0IEJhc2VsaW5lSUNBdmFpbGFibGVH ZW5lcmFsUmVncyhzaXplX3QgbnVtSW5wdXRzKSB7CisgICBBbGxvY2F0YWJsZUdlbmVyYWxSZWdp c3RlclNldCByZWdzKEdlbmVyYWxSZWdpc3RlclNldDo6QWxsKCkpOworICNpZiBkZWZpbmVkKEpT X0NPREVHRU5fQVJNKQorICAgTU9aX0FTU0VSVCghcmVncy5oYXMoQmFzZWxpbmVTdGFja1JlZykp OworICAgTU9aX0FTU0VSVCghcmVncy5oYXMoSUNUYWlsQ2FsbFJlZykpOworICAgcmVncy50YWtl KEJhc2VsaW5lU2Vjb25kU2NyYXRjaFJlZyk7CistI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX01J UFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkKKysjZWxpZiBkZWZpbmVkKEpTX0NP REVHRU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KSB8fCBcCisrICAgICAg ZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQorICAgTU9aX0FTU0VSVCghcmVncy5oYXMoQmFzZWxp bmVTdGFja1JlZykpOworICAgTU9aX0FTU0VSVCghcmVncy5oYXMoSUNUYWlsQ2FsbFJlZykpOwor ICAgTU9aX0FTU0VSVCghcmVncy5oYXMoQmFzZWxpbmVTZWNvbmRTY3JhdGNoUmVnKSk7CisgI2Vs aWYgZGVmaW5lZChKU19DT0RFR0VOX0FSTTY0KQorICAgTU9aX0FTU0VSVCghcmVncy5oYXMoUHNl dWRvU3RhY2tQb2ludGVyKSk7CisgICBNT1pfQVNTRVJUKCFyZWdzLmhhcyhSZWFsU3RhY2tQb2lu dGVyKSk7CisgICBNT1pfQVNTRVJUKCFyZWdzLmhhcyhJQ1RhaWxDYWxsUmVnKSk7CisgI2Vsc2UK K2RpZmYgLS1naXQgYS9qcy9zcmMvaml0L0NvZGVHZW5lcmF0b3IuaCBiL2pzL3NyYy9qaXQvQ29k ZUdlbmVyYXRvci5oCitpbmRleCA1MzIxOTc4ZmMyLi5iMmQ5YThmNWE1IDEwMDY0NAorLS0tIGEv anMvc3JjL2ppdC9Db2RlR2VuZXJhdG9yLmgKKysrKyBiL2pzL3NyYy9qaXQvQ29kZUdlbmVyYXRv ci5oCitAQCAtMjAsMTYgKzIwLDE4IEBACisgI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX0FSTSkK KyAjICBpbmNsdWRlICJqaXQvYXJtL0NvZGVHZW5lcmF0b3ItYXJtLmgiCisgI2VsaWYgZGVmaW5l ZChKU19DT0RFR0VOX0FSTTY0KQorICMgIGluY2x1ZGUgImppdC9hcm02NC9Db2RlR2VuZXJhdG9y LWFybTY0LmgiCisgI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikKKyAjICBpbmNsdWRl ICJqaXQvbWlwczMyL0NvZGVHZW5lcmF0b3ItbWlwczMyLmgiCisgI2VsaWYgZGVmaW5lZChKU19D T0RFR0VOX01JUFM2NCkKKyAjICBpbmNsdWRlICJqaXQvbWlwczY0L0NvZGVHZW5lcmF0b3ItbWlw czY0LmgiCisrI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQorKyMgIGluY2x1ZGUgImpp dC9wcGM2NC9Db2RlR2VuZXJhdG9yLXBwYzY0LmgiCisgI2VsaWYgZGVmaW5lZChKU19DT0RFR0VO X05PTkUpCisgIyAgaW5jbHVkZSAiaml0L25vbmUvQ29kZUdlbmVyYXRvci1ub25lLmgiCisgI2Vs c2UKKyAjICBlcnJvciAiVW5rbm93biBhcmNoaXRlY3R1cmUhIgorICNlbmRpZgorIAorICNpbmNs dWRlICJ3YXNtL1dhc21HQy5oIgorIAorZGlmZiAtLWdpdCBhL2pzL3NyYy9qaXQvRmx1c2hJQ2Fj aGUuaCBiL2pzL3NyYy9qaXQvRmx1c2hJQ2FjaGUuaAoraW5kZXggZmU2NjA4MGRmNS4uMjA3MTU2 M2MxZSAxMDA2NDQKKy0tLSBhL2pzL3NyYy9qaXQvRmx1c2hJQ2FjaGUuaAorKysrIGIvanMvc3Jj L2ppdC9GbHVzaElDYWNoZS5oCitAQCAtMTksMTcgKzE5LDE4IEBAIG5hbWVzcGFjZSBqaXQgewor ICNpZiBkZWZpbmVkKEpTX0NPREVHRU5fWDg2KSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fWDY0KQor IAorIGlubGluZSB2b2lkIEZsdXNoSUNhY2hlKHZvaWQqIGNvZGUsIHNpemVfdCBzaXplLAorICAg ICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY29kZUlzVGhyZWFkTG9jYWwgPSB0cnVlKSB7Cisg ICAvLyBOby1vcC4gQ29kZSBhbmQgZGF0YSBjYWNoZXMgYXJlIGNvaGVyZW50IG9uIHg4NiBhbmQg eDY0LgorIH0KKyAKKyAjZWxpZiAoZGVmaW5lZChKU19DT0RFR0VOX0FSTSkgfHwgZGVmaW5lZChK U19DT0RFR0VOX0FSTTY0KSkgfHwgXAorLSAgICAoZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikg fHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkpCisrICAgIChkZWZpbmVkKEpTX0NPREVHRU5f TUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KSkgfHwgXAorKyAgICBkZWZpbmVk KEpTX0NPREVHRU5fUFBDNjQpCisgCisgZXh0ZXJuIHZvaWQgRmx1c2hJQ2FjaGUodm9pZCogY29k ZSwgc2l6ZV90IHNpemUsIGJvb2wgY29kZUlzVGhyZWFkTG9jYWwgPSB0cnVlKTsKKyAKKyAjZWxp ZiBkZWZpbmVkKEpTX0NPREVHRU5fTk9ORSkKKyAKKyBpbmxpbmUgdm9pZCBGbHVzaElDYWNoZSh2 b2lkKiBjb2RlLCBzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNv ZGVJc1RocmVhZExvY2FsID0gdHJ1ZSkgeworICAgTU9aX0NSQVNIKCk7CitkaWZmIC0tZ2l0IGEv anMvc3JjL2ppdC9KaXRGcmFtZXMuY3BwIGIvanMvc3JjL2ppdC9KaXRGcmFtZXMuY3BwCitpbmRl eCA3N2NmZTZhOWNkLi41MDdmMTU1MWU2IDEwMDY0NAorLS0tIGEvanMvc3JjL2ppdC9KaXRGcmFt ZXMuY3BwCisrKysgYi9qcy9zcmMvaml0L0ppdEZyYW1lcy5jcHAKK0BAIC0yMjIwLDE2ICsyMjIw LDI0IEBAIE1hY2hpbmVTdGF0ZSBNYWNoaW5lU3RhdGU6OkZyb21CYWlsb3V0KFJlZ2lzdGVyRHVt cDo6R1BSQXJyYXkmIHJlZ3MsCisgICAgIG1hY2hpbmUuc2V0UmVnaXN0ZXJMb2NhdGlvbigKKyAg ICAgICAgIEZsb2F0UmVnaXN0ZXIoRmxvYXRSZWdpc3RlcnM6OkVuY29kaW5nKGkpLCBGbG9hdFJl Z2lzdGVyczo6U2luZ2xlKSwKKyAgICAgICAgICZmcHJlZ3NbaV0pOworICAgICBtYWNoaW5lLnNl dFJlZ2lzdGVyTG9jYXRpb24oCisgICAgICAgICBGbG9hdFJlZ2lzdGVyKEZsb2F0UmVnaXN0ZXJz OjpFbmNvZGluZyhpKSwgRmxvYXRSZWdpc3RlcnM6OkRvdWJsZSksCisgICAgICAgICAmZnByZWdz W2ldKTsKKyAgICAgLy8gTm8gU0lNRCBzdXBwb3J0IGluIGJhaWxvdXRzLCBTSU1EIGlzIGludGVy bmFsIHRvIHdhc20KKyAgIH0KKysjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisrICBm b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgRmxvYXRSZWdpc3RlcnM6OlRvdGFsUGh5czsgaSsrKSB7 CisrICAgIG1hY2hpbmUuc2V0UmVnaXN0ZXJMb2NhdGlvbihGbG9hdFJlZ2lzdGVyKGkpLCAmZnBy ZWdzW2ldKTsKKysjICBpZmRlZiBFTkFCTEVfV0FTTV9TSU1ECisrICAgICAvLyBOZWVkcyBhZGRp dGlvbmFsIGhhbmRsaW5nIGlmIFZNWCBvciBub24tRlBSIFZTWCByZWdzIGFyZSBpbiBwbGF5Lgor KyMgICAgZXJyb3IgIlNJTUQgZm9yIFBQQyBOWUkiCisrIyAgZW5kaWYKKysgIH0KKyAKKyAjZWxp ZiBkZWZpbmVkKEpTX0NPREVHRU5fTk9ORSkKKyAgIE1PWl9DUkFTSCgpOworICNlbHNlCisgIyAg ZXJyb3IgIlVua25vd24gYXJjaGl0ZWN0dXJlISIKKyAjZW5kaWYKKyAgIHJldHVybiBtYWNoaW5l OworIH0KK2RpZmYgLS1naXQgYS9qcy9zcmMvaml0L0ppdEZyYW1lcy5oIGIvanMvc3JjL2ppdC9K aXRGcmFtZXMuaAoraW5kZXggNDBjNjYxZDE0Ni4uN2I0ZWEzMTU3ZCAxMDA2NDQKKy0tLSBhL2pz L3NyYy9qaXQvSml0RnJhbWVzLmgKKysrKyBiL2pzL3NyYy9qaXQvSml0RnJhbWVzLmgKK0BAIC0x NTIsMTYgKzE1MiwyNiBAQCBzdHJ1Y3QgUmVzdW1lRnJvbUV4Y2VwdGlvbiB7CisgICBzdGF0aWMg Y29uc3QgdWludDMyX3QgUkVTVU1FX0VOVFJZX0ZSQU1FID0gMDsKKyAgIHN0YXRpYyBjb25zdCB1 aW50MzJfdCBSRVNVTUVfQ0FUQ0ggPSAxOworICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IFJFU1VN RV9GSU5BTExZID0gMjsKKyAgIHN0YXRpYyBjb25zdCB1aW50MzJfdCBSRVNVTUVfRk9SQ0VEX1JF VFVSTiA9IDM7CisgICBzdGF0aWMgY29uc3QgdWludDMyX3QgUkVTVU1FX0JBSUxPVVQgPSA0Owor ICAgc3RhdGljIGNvbnN0IHVpbnQzMl90IFJFU1VNRV9XQVNNID0gNTsKKyAgIHN0YXRpYyBjb25z dCB1aW50MzJfdCBSRVNVTUVfV0FTTV9DQVRDSCA9IDY7CisgCisrI2lmIGRlZmluZWQoSlNfQ09E RUdFTl9QUEM2NCkKKysgIC8vIFRoaXMgZ2V0cyBidWlsdCBvbiB0aGUgc3RhY2sgYXMgcGFydCBv ZiBleGNlcHRpb24gcmV0dXJucy4gQmVjYXVzZQorKyAgLy8gaXQgZ29lcyByaWdodCBvbiB0b3Ag b2YgdGhlIHN0YWNrLCBhbiBBQkktY29tcGxpYW50IHJvdXRpbmUgY2FuIHdyZWNrCisrICAvLyBp dCwgc28gd2UgaW1wbGVtZW50IGEgbWluaW11bSBQb3dlciBJU0EgbGlua2FnZSBhcmVhIChmb3Vy IGRvdWJsZXdvcmRzKS4KKysgIHZvaWQgKl9wcGNfc3BfOworKyAgdm9pZCAqX3BwY19jcl87Cisr ICB2b2lkICpfcHBjX2xyXzsKKysgIHZvaWQgKl9wcGNfdG9jXzsKKysjZW5kaWYKKysKKyAgIHVp bnQ4X3QqIGZyYW1lUG9pbnRlcjsKKyAgIHVpbnQ4X3QqIHN0YWNrUG9pbnRlcjsKKyAgIHVpbnQ4 X3QqIHRhcmdldDsKKyAgIHVpbnQzMl90IGtpbmQ7CisgCisgICAvLyBWYWx1ZSB0byBwdXNoIHdo ZW4gcmVzdW1pbmcgaW50byBhIHxmaW5hbGx5fCBibG9jay4KKyAgIC8vIEFsc28gdXNlZCBieSBX YXNtIHRvIHNlbmQgdGhlIGV4Y2VwdGlvbiBvYmplY3QgdG8gdGhlIHRocm93IHN0dWIuCisgICBK Uzo6VmFsdWUgZXhjZXB0aW9uOworZGlmZiAtLWdpdCBhL2pzL3NyYy9qaXQvSml0T3B0aW9ucy5j cHAgYi9qcy9zcmMvaml0L0ppdE9wdGlvbnMuY3BwCitpbmRleCBkZTEzNzc3ZmMzLi43OTVlNDFi ZjIxIDEwMDY0NAorLS0tIGEvanMvc3JjL2ppdC9KaXRPcHRpb25zLmNwcAorKysrIGIvanMvc3Jj L2ppdC9KaXRPcHRpb25zLmNwcAorQEAgLTEzMiwxNyArMTMyLDIyIEBAIERlZmF1bHRKaXRPcHRp b25zOjpEZWZhdWx0Sml0T3B0aW9ucygpIHsKKyAgIC8vIFdhcnAgY29tcGlsZSBHZW5lcmF0b3Ig ZnVuY3Rpb25zCisgICBTRVRfREVGQVVMVCh3YXJwR2VuZXJhdG9yLCB0cnVlKTsKKyAKKyAgIC8v IFdoZXRoZXIgdGhlIElvbk1vbmtleSBhbmQgQmFzZWxpbmUgSklUcyBhcmUgZW5hYmxlZCBmb3Ig VHJ1c3RlZCBQcmluY2lwYWxzLgorICAgLy8gKElnbm9yZWQgaWYgaW9uIG9yIGJhc2VsaW5lSml0 IGlzIHNldCB0byB0cnVlLikKKyAgIFNFVF9ERUZBVUxUKGppdEZvclRydXN0ZWRQcmluY2lwYWxz LCBmYWxzZSk7CisgCisgICAvLyBXaGV0aGVyIHRoZSBSZWdFeHAgSklUIGlzIGVuYWJsZWQuCisr I2lmIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKKysgIC8vIFRoaXMgbWF5IGdlbmVyYXRlIElT QSAzIGluc3RydWN0aW9ucy4gVGhlIG90aGVyIEpJVCB0aWVycyBnYXRlIG9uIGl0IHRvby4KKysg IFNFVF9ERUZBVUxUKG5hdGl2ZVJlZ0V4cCwgTWFjcm9Bc3NlbWJsZXI6OlN1cHBvcnRzRmxvYXRp bmdQb2ludCgpKTsKKysjZWxzZQorICAgU0VUX0RFRkFVTFQobmF0aXZlUmVnRXhwLCB0cnVlKTsK KysjZW5kaWYKKyAKKyAgIC8vIFdoZXRoZXIgV2FycCBzaG91bGQgdXNlIElDcyBpbnN0ZWFkIG9m IHRyYW5zcGlsaW5nIEJhc2VsaW5lIENhY2hlSVIuCisgICBTRVRfREVGQVVMVChmb3JjZUlubGlu ZUNhY2hlcywgZmFsc2UpOworIAorICAgLy8gV2hldGhlciBhbGwgSUNzIHNob3VsZCBiZSBpbml0 aWFsaXplZCBhcyBtZWdhbW9ycGhpYyBJQ3MuCisgICBTRVRfREVGQVVMVChmb3JjZU1lZ2Ftb3Jw aGljSUNzLCBmYWxzZSk7CisgCisgICAvLyBUb2dnbGVzIHdoZXRoZXIgbGFyZ2Ugc2NyaXB0cyBh cmUgcmVqZWN0ZWQuCitkaWZmIC0tZ2l0IGEvanMvc3JjL2ppdC9MSVIuaCBiL2pzL3NyYy9qaXQv TElSLmgKK2luZGV4IDAyNGJkNzk4Y2EuLjBjZDQzYzEyYWIgMTAwNjQ0CistLS0gYS9qcy9zcmMv aml0L0xJUi5oCisrKysgYi9qcy9zcmMvaml0L0xJUi5oCitAQCAtMTkzOSwxNiArMTkzOSwxOCBA QCBBbnlSZWdpc3RlciBMQWxsb2NhdGlvbjo6dG9SZWdpc3RlcigpIGNvbnN0IHsKKyAjICBpbmNs dWRlICJqaXQvYXJtNjQvTElSLWFybTY0LmgiCisgI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX01J UFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkKKyAjICBpZiBkZWZpbmVkKEpTX0NP REVHRU5fTUlQUzMyKQorICMgICAgaW5jbHVkZSAiaml0L21pcHMzMi9MSVItbWlwczMyLmgiCisg IyAgZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KQorICMgICAgaW5jbHVkZSAiaml0L21p cHM2NC9MSVItbWlwczY0LmgiCisgIyAgZW5kaWYKKyAjICBpbmNsdWRlICJqaXQvbWlwcy1zaGFy ZWQvTElSLW1pcHMtc2hhcmVkLmgiCisrI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQor KyMgIGluY2x1ZGUgImppdC9wcGM2NC9MSVItcHBjNjQuaCIKKyAjZWxpZiBkZWZpbmVkKEpTX0NP REVHRU5fTk9ORSkKKyAjICBpbmNsdWRlICJqaXQvbm9uZS9MSVItbm9uZS5oIgorICNlbHNlCisg IyAgZXJyb3IgIlVua25vd24gYXJjaGl0ZWN0dXJlISIKKyAjZW5kaWYKKyAKKyAjdW5kZWYgTElS X0hFQURFUgorIAorZGlmZiAtLWdpdCBhL2pzL3NyYy9qaXQvTGFiZWwuaCBiL2pzL3NyYy9qaXQv TGFiZWwuaAoraW5kZXggYThmOTNkZTM3OC4uNDgwYjE4YjI1MSAxMDA2NDQKKy0tLSBhL2pzL3Ny Yy9qaXQvTGFiZWwuaAorKysrIGIvanMvc3JjL2ppdC9MYWJlbC5oCitAQCAtMjEsMTcgKzIxLDE4 IEBAIHN0cnVjdCBMYWJlbEJhc2UgeworICAgdWludDMyX3QgYm91bmRfIDogMTsKKyAKKyAgIC8v IG9mZnNldF8gPCBJTlZBTElEX09GRlNFVCBtZWFucyB0aGF0IHRoZSBsYWJlbCBpcyBlaXRoZXIg Ym91bmQgb3IgaGFzCisgICAvLyBpbmNvbWluZyB1c2VzIGFuZCBuZWVkcyB0byBiZSBib3VuZC4K KyAgIHVpbnQzMl90IG9mZnNldF8gOiAzMTsKKyAKKyAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IExh YmVsQmFzZSYgbGFiZWwpID0gZGVsZXRlOworIAorLSNpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQ UzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KQorKyNpZiBkZWZpbmVkKEpTX0NPREVH RU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KSB8fCBcCisrICAgIGRlZmlu ZWQoSlNfQ09ERUdFTl9QUEM2NCkKKyAgcHVibGljOgorICNlbmRpZgorICAgc3RhdGljIGNvbnN0 IHVpbnQzMl90IElOVkFMSURfT0ZGU0VUID0gMHg3ZmZmZmZmZjsgIC8vIFVJTlQzMV9NQVguCisg CisgIHB1YmxpYzoKKyAgIExhYmVsQmFzZSgpIDogYm91bmRfKGZhbHNlKSwgb2Zmc2V0XyhJTlZB TElEX09GRlNFVCkge30KKyAKKyAgIC8vIElmIHRoZSBsYWJlbCBpcyBib3VuZCwgYWxsIGluY29t aW5nIGVkZ2VzIGhhdmUgYmVlbiBwYXRjaGVkIGFuZCBhbnkKK2RpZmYgLS1naXQgYS9qcy9zcmMv aml0L0xvd2VyaW5nLmggYi9qcy9zcmMvaml0L0xvd2VyaW5nLmgKK2luZGV4IDk3OTY4N2RhODUu LmMwNjRlNWQ5MTQgMTAwNjQ0CistLS0gYS9qcy9zcmMvaml0L0xvd2VyaW5nLmgKKysrKyBiL2pz L3NyYy9qaXQvTG93ZXJpbmcuaAorQEAgLTE4LDE2ICsxOCwxOCBAQAorICNlbGlmIGRlZmluZWQo SlNfQ09ERUdFTl9BUk0pCisgIyAgaW5jbHVkZSAiaml0L2FybS9Mb3dlcmluZy1hcm0uaCIKKyAj ZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNNjQpCisgIyAgaW5jbHVkZSAiaml0L2FybTY0L0xv d2VyaW5nLWFybTY0LmgiCisgI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikKKyAjICBp bmNsdWRlICJqaXQvbWlwczMyL0xvd2VyaW5nLW1pcHMzMi5oIgorICNlbGlmIGRlZmluZWQoSlNf Q09ERUdFTl9NSVBTNjQpCisgIyAgaW5jbHVkZSAiaml0L21pcHM2NC9Mb3dlcmluZy1taXBzNjQu aCIKKysjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisrIyAgaW5jbHVkZSAiaml0L3Bw YzY0L0xvd2VyaW5nLXBwYzY0LmgiCisgI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX05PTkUpCisg IyAgaW5jbHVkZSAiaml0L25vbmUvTG93ZXJpbmctbm9uZS5oIgorICNlbHNlCisgIyAgZXJyb3Ig IlVua25vd24gYXJjaGl0ZWN0dXJlISIKKyAjZW5kaWYKKyAKKyBuYW1lc3BhY2UganMgeworIG5h bWVzcGFjZSBqaXQgeworZGlmZiAtLWdpdCBhL2pzL3NyYy9qaXQvTWFjcm9Bc3NlbWJsZXItaW5s LmggYi9qcy9zcmMvaml0L01hY3JvQXNzZW1ibGVyLWlubC5oCitpbmRleCBjZjE2Y2RmMGE3Li5m YTM5YzVmNGQyIDEwMDY0NAorLS0tIGEvanMvc3JjL2ppdC9NYWNyb0Fzc2VtYmxlci1pbmwuaAor KysrIGIvanMvc3JjL2ppdC9NYWNyb0Fzc2VtYmxlci1pbmwuaAorQEAgLTMwLDE2ICszMCwxOCBA QAorICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9BUk0pCisgIyAgaW5jbHVkZSAiaml0L2FybS9N YWNyb0Fzc2VtYmxlci1hcm0taW5sLmgiCisgI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX0FSTTY0 KQorICMgIGluY2x1ZGUgImppdC9hcm02NC9NYWNyb0Fzc2VtYmxlci1hcm02NC1pbmwuaCIKKyAj ZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKQorICMgIGluY2x1ZGUgImppdC9taXBzMzIv TWFjcm9Bc3NlbWJsZXItbWlwczMyLWlubC5oIgorICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9N SVBTNjQpCisgIyAgaW5jbHVkZSAiaml0L21pcHM2NC9NYWNyb0Fzc2VtYmxlci1taXBzNjQtaW5s LmgiCisrI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQorKyMgIGluY2x1ZGUgImppdC9w cGM2NC9NYWNyb0Fzc2VtYmxlci1wcGM2NC1pbmwuaCIKKyAjZWxpZiAhZGVmaW5lZChKU19DT0RF R0VOX05PTkUpCisgIyAgZXJyb3IgIlVua25vd24gYXJjaGl0ZWN0dXJlISIKKyAjZW5kaWYKKyAK KyAjaW5jbHVkZSAid2FzbS9XYXNtQnVpbHRpbnMuaCIKKyAKKyBuYW1lc3BhY2UganMgeworIG5h bWVzcGFjZSBqaXQgeworZGlmZiAtLWdpdCBhL2pzL3NyYy9qaXQvTWFjcm9Bc3NlbWJsZXIuY3Bw IGIvanMvc3JjL2ppdC9NYWNyb0Fzc2VtYmxlci5jcHAKK2luZGV4IDJhM2FlZWM2MDcuLmNiZTlk MTRmNDYgMTAwNjQ0CistLS0gYS9qcy9zcmMvaml0L01hY3JvQXNzZW1ibGVyLmNwcAorKysrIGIv anMvc3JjL2ppdC9NYWNyb0Fzc2VtYmxlci5jcHAKK0BAIC00MDQ0LDE2ICs0MDQ0LDE4IEBAIHZv aWQgTWFjcm9Bc3NlbWJsZXI6OmVtaXRQcmVCYXJyaWVyRmFzdFBhdGgoSlNSdW50aW1lKiBydCwg TUlSVHlwZSB0eXBlLAorICNlbGlmIEpTX0NPREVHRU5fQVJNCisgICBtYV9sc2wodGVtcDMsIHRl bXAxLCB0ZW1wMSk7CisgI2VsaWYgSlNfQ09ERUdFTl9BUk02NAorICAgTHNsKEFSTVJlZ2lzdGVy KHRlbXAxLCA2NCksIEFSTVJlZ2lzdGVyKHRlbXAxLCA2NCksIEFSTVJlZ2lzdGVyKHRlbXAzLCA2 NCkpOworICNlbGlmIEpTX0NPREVHRU5fTUlQUzMyCisgICBtYV9zbGwodGVtcDEsIHRlbXAxLCB0 ZW1wMyk7CisgI2VsaWYgSlNfQ09ERUdFTl9NSVBTNjQKKyAgIG1hX2RzbGwodGVtcDEsIHRlbXAx LCB0ZW1wMyk7CisrI2VsaWYgSlNfQ09ERUdFTl9QUEM2NAorKyAgYXNfc2xkKHRlbXAxLCB0ZW1w MSwgdGVtcDMpOworICNlbGlmIEpTX0NPREVHRU5fTk9ORQorICAgTU9aX0NSQVNIKCk7CisgI2Vs c2UKKyAjICBlcnJvciAiVW5rbm93biBhcmNoaXRlY3R1cmUiCisgI2VuZGlmCisgCisgICAvLyBO byBiYXJyaWVyIGlzIG5lZWRlZCBpZiB0aGUgYml0IGlzIHNldCwgfHdvcmQgJiBtYXNrICE9IDB8 LgorICAgYnJhbmNoVGVzdFB0cihBc3NlbWJsZXI6Ok5vblplcm8sIHRlbXAyLCB0ZW1wMSwgbm9C YXJyaWVyKTsKK2RpZmYgLS1naXQgYS9qcy9zcmMvaml0L01hY3JvQXNzZW1ibGVyLmggYi9qcy9z cmMvaml0L01hY3JvQXNzZW1ibGVyLmgKK2luZGV4IGUyZDUzZDVjZWYuLmNiMDE0OGI5NGUgMTAw NjQ0CistLS0gYS9qcy9zcmMvaml0L01hY3JvQXNzZW1ibGVyLmgKKysrKyBiL2pzL3NyYy9qaXQv TWFjcm9Bc3NlbWJsZXIuaAorQEAgLTIwLDE2ICsyMCwxOCBAQAorICNlbGlmIGRlZmluZWQoSlNf Q09ERUdFTl9BUk0pCisgIyAgaW5jbHVkZSAiaml0L2FybS9NYWNyb0Fzc2VtYmxlci1hcm0uaCIK KyAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNNjQpCisgIyAgaW5jbHVkZSAiaml0L2FybTY0 L01hY3JvQXNzZW1ibGVyLWFybTY0LmgiCisgI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFMz MikKKyAjICBpbmNsdWRlICJqaXQvbWlwczMyL01hY3JvQXNzZW1ibGVyLW1pcHMzMi5oIgorICNl bGlmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpCisgIyAgaW5jbHVkZSAiaml0L21pcHM2NC9N YWNyb0Fzc2VtYmxlci1taXBzNjQuaCIKKysjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQp CisrIyAgaW5jbHVkZSAiaml0L3BwYzY0L01hY3JvQXNzZW1ibGVyLXBwYzY0LmgiCisgI2VsaWYg ZGVmaW5lZChKU19DT0RFR0VOX05PTkUpCisgIyAgaW5jbHVkZSAiaml0L25vbmUvTWFjcm9Bc3Nl bWJsZXItbm9uZS5oIgorICNlbHNlCisgIyAgZXJyb3IgIlVua25vd24gYXJjaGl0ZWN0dXJlISIK KyAjZW5kaWYKKyAjaW5jbHVkZSAiaml0L0FCSUZ1bmN0aW9ucy5oIgorICNpbmNsdWRlICJqaXQv QXRvbWljT3AuaCIKKyAjaW5jbHVkZSAiaml0L0F1dG9KaXRDb250ZXh0QWxsb2MuaCIKK0BAIC04 NywxOCArODksMTggQEAKKyAvLyAgIC8ve3t7IGNoZWNrX21hY3JvYXNzZW1ibGVyX3N0eWxlCisg Ly8gICBpbmxpbmUgdWludDMyX3QKKyAvLyAgIE1hY3JvQXNzZW1ibGVyOjpmcmFtZVB1c2hlZCgp IGNvbnN0CisgLy8gICB7CisgLy8gICAgICAgcmV0dXJuIGZyYW1lUHVzaGVkXzsKKyAvLyAgIH0K KyAvLyAgIC8vLy99fX0gY2hlY2tfbWFjcm9hc3NlbWJsZXJfc3R5bGUKKyAKKy0jZGVmaW5lIEFM TF9BUkNIIG1pcHMzMiwgbWlwczY0LCBhcm0sIGFybTY0LCB4ODYsIHg2NAorLSNkZWZpbmUgQUxM X1NIQVJFRF9BUkNIIGFybSwgYXJtNjQsIHg4Nl9zaGFyZWQsIG1pcHNfc2hhcmVkCisrI2RlZmlu ZSBBTExfQVJDSCBtaXBzMzIsIG1pcHM2NCwgYXJtLCBhcm02NCwgeDg2LCB4NjQsIHBwYzY0Cisr I2RlZmluZSBBTExfU0hBUkVEX0FSQ0ggYXJtLCBhcm02NCwgeDg2X3NoYXJlZCwgbWlwc19zaGFy ZWQsIHBwYzY0CisgCisgLy8gKiBIb3cgdGhpcyBtYWNybyB3b3JrczoKKyAvLworIC8vIERFRklO RURfT04gaXMgYSBtYWNybyB3aGljaCBjaGVjayBpZiwgZm9yIHRoZSBjdXJyZW50IGFyY2hpdGVj dHVyZSwgdGhlCisgLy8gbWV0aG9kIGlzIGRlZmluZWQgb24gdGhlIG1hY3JvIGFzc2VtYmxlciBv ciBub3QuCisgLy8KKyAvLyBGb3IgZWFjaCBhcmNoaXRlY3R1cmUsIHdlIGhhdmUgYSBtYWNybyBu YW1lZCBERUZJTkVEX09OX2FyY2guICBUaGlzIG1hY3JvIGlzCisgLy8gZW1wdHkgaWYgdGhpcyBp cyBub3QgdGhlIGN1cnJlbnQgYXJjaGl0ZWN0dXJlLiAgT3RoZXJ3aXNlIGl0IG11c3QgYmUgZWl0 aGVyCitAQCAtMTM0LDE2ICsxMzYsMTcgQEAKKyAjZGVmaW5lIERFRklORURfT05feDg2CisgI2Rl ZmluZSBERUZJTkVEX09OX3g2NAorICNkZWZpbmUgREVGSU5FRF9PTl94ODZfc2hhcmVkCisgI2Rl ZmluZSBERUZJTkVEX09OX2FybQorICNkZWZpbmUgREVGSU5FRF9PTl9hcm02NAorICNkZWZpbmUg REVGSU5FRF9PTl9taXBzMzIKKyAjZGVmaW5lIERFRklORURfT05fbWlwczY0CisgI2RlZmluZSBE RUZJTkVEX09OX21pcHNfc2hhcmVkCisrI2RlZmluZSBERUZJTkVEX09OX3BwYzY0CisgI2RlZmlu ZSBERUZJTkVEX09OX25vbmUKKyAKKyAvLyBTcGVjaWFsaXplIGZvciBlYWNoIGFyY2hpdGVjdHVy ZS4KKyAjaWYgZGVmaW5lZChKU19DT0RFR0VOX1g4NikKKyAjICB1bmRlZiBERUZJTkVEX09OX3g4 NgorICMgIGRlZmluZSBERUZJTkVEX09OX3g4NiBkZWZpbmUKKyAjICB1bmRlZiBERUZJTkVEX09O X3g4Nl9zaGFyZWQKKyAjICBkZWZpbmUgREVGSU5FRF9PTl94ODZfc2hhcmVkIGRlZmluZQorQEAg LTE2MywxNiArMTY2LDE5IEBACisgIyAgZGVmaW5lIERFRklORURfT05fbWlwczMyIGRlZmluZQor ICMgIHVuZGVmIERFRklORURfT05fbWlwc19zaGFyZWQKKyAjICBkZWZpbmUgREVGSU5FRF9PTl9t aXBzX3NoYXJlZCBkZWZpbmUKKyAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KQorICMg IHVuZGVmIERFRklORURfT05fbWlwczY0CisgIyAgZGVmaW5lIERFRklORURfT05fbWlwczY0IGRl ZmluZQorICMgIHVuZGVmIERFRklORURfT05fbWlwc19zaGFyZWQKKyAjICBkZWZpbmUgREVGSU5F RF9PTl9taXBzX3NoYXJlZCBkZWZpbmUKKysjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQp CisrIyAgdW5kZWYgREVGSU5FRF9PTl9wcGM2NAorKyMgIGRlZmluZSBERUZJTkVEX09OX3BwYzY0 IGRlZmluZQorICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9OT05FKQorICMgIHVuZGVmIERFRklO RURfT05fbm9uZQorICMgIGRlZmluZSBERUZJTkVEX09OX25vbmUgY3Jhc2gKKyAjZWxzZQorICMg IGVycm9yICJVbmtub3duIGFyY2hpdGVjdHVyZSEiCisgI2VuZGlmCisgCisgI2RlZmluZSBERUZJ TkVEX09OX1JFU1VMVF9jcmFzaCBcCitAQCAtNDc5LDM2ICs0ODUsMzYgQEAgY2xhc3MgTWFjcm9B c3NlbWJsZXIgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXJTcGVjaWZpYyB7CisgICAvLyB0YXJnZXRz IHJvbGwgdGhlaXIgb3duIHNhdmUtY29kZSBpbnN0ZWFkLgorICAgLy8KKyAgIC8vIE5ldmVydGhl bGVzcywgYmVjYXVzZSBzb21lIHRhcmdldHMgKmRvKiBjYWxsIFB1c2hSZWdzSW5NYXNrIGZyb20K KyAgIC8vIEppdFJ1bnRpbWU6OmdlbmVyYXRlSW52YWxpZGF0b3IsIHlvdSBzaG91bGQgY2hlY2sg Y2FyZWZ1bGx5IGFsbCBvZiB0aGUKKyAgIC8vIDo6Z2VuZXJhdGVJbnZhbGlkYXRvciBtZXRob2Rz IGlmIHlvdSBjaGFuZ2UgdGhlIFB1c2hSZWdzSW5NYXNrIGZvcm1hdC4KKyAKKyAgIC8vIFRoZSBz aXplIG9mIHRoZSBhcmVhIHVzZWQgYnkgUHVzaFJlZ3NJbk1hc2suCisgICBzaXplX3QgUHVzaFJl Z3NJbk1hc2tTaXplSW5CeXRlcyhMaXZlUmVnaXN0ZXJTZXQgc2V0KQorLSAgICAgIERFRklORURf T04oYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9zaGFyZWQpOworKyAgICAgIERFRklO RURfT04oYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9zaGFyZWQsIHBwYzY0KTsKKyAK KyAgIHZvaWQgUHVzaFJlZ3NJbk1hc2soTGl2ZVJlZ2lzdGVyU2V0IHNldCkKKy0gICAgICBERUZJ TkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0LCB4ODZfc2hhcmVkKTsKKysgICAgICBE RUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0LCB4ODZfc2hhcmVkLCBwcGM2NCk7 CisgICB2b2lkIFB1c2hSZWdzSW5NYXNrKExpdmVHZW5lcmFsUmVnaXN0ZXJTZXQgc2V0KTsKKyAK KyAgIC8vIExpa2UgUHVzaFJlZ3NJbk1hc2ssIGJ1dCBpbnN0ZWFkIG9mIHB1c2hpbmcgdGhlIHJl Z2lzdGVycywgc3RvcmUgdGhlbSB0bworICAgLy8gfGRlc3R8LiB8ZGVzdHwgc2hvdWxkIHBvaW50 IHRvIHRoZSBlbmQgb2YgdGhlIHJlc2VydmVkIHNwYWNlLCBzbyB0aGUKKyAgIC8vIGZpcnN0IHJl Z2lzdGVyIHdpbGwgYmUgc3RvcmVkIGF0IHxkZXN0Lm9mZnNldCAtIHNpemVvZihyZWdpc3Rlcil8 LiAgSXQgaXMKKyAgIC8vIHJlcXVpcmVkIHRoYXQgfGRlc3Qub2Zmc2V0fCBpcyBhdCBsZWFzdCBh cyBsYXJnZSBhcyB0aGUgdmFsdWUgY29tcHV0ZWQgYnkKKyAgIC8vIFB1c2hSZWdzSW5NYXNrU2l6 ZUluQnl0ZXMgZm9yIHRoaXMgfHNldHwuICBJbiBvdGhlciB3b3JkcywgfGRlc3QuYmFzZXwKKyAg IC8vIG11c3QgcG9pbnQgdG8gZWl0aGVyIHRoZSBsb3dlc3QgYWRkcmVzcyBpbiB0aGUgc2F2ZSBh cmVhLCBvciBzb21lIGFkZHJlc3MKKyAgIC8vIGJlbG93IHRoYXQuCisgICB2b2lkIHN0b3JlUmVn c0luTWFzayhMaXZlUmVnaXN0ZXJTZXQgc2V0LCBBZGRyZXNzIGRlc3QsIFJlZ2lzdGVyIHNjcmF0 Y2gpCistICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3No YXJlZCk7CisrICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2 X3NoYXJlZCwgcHBjNjQpOworIAorICAgdm9pZCBQb3BSZWdzSW5NYXNrKExpdmVSZWdpc3RlclNl dCBzZXQpOworICAgdm9pZCBQb3BSZWdzSW5NYXNrKExpdmVHZW5lcmFsUmVnaXN0ZXJTZXQgc2V0 KTsKKyAgIHZvaWQgUG9wUmVnc0luTWFza0lnbm9yZShMaXZlUmVnaXN0ZXJTZXQgc2V0LCBMaXZl UmVnaXN0ZXJTZXQgaWdub3JlKQorLSAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwczMy LCBtaXBzNjQsIHg4Nl9zaGFyZWQpOworKyAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlw czMyLCBtaXBzNjQsIHg4Nl9zaGFyZWQsIHBwYzY0KTsKKyAKKyAgIC8vID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgLy8g U3RhY2sgbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucyAtLSBzaW5nbGUgcmVnaXN0ZXJzL3ZhbHVlcy4K KyAKKyAgIHZvaWQgUHVzaChjb25zdCBPcGVyYW5kIG9wKSBERUZJTkVEX09OKHg4Nl9zaGFyZWQp OworICAgdm9pZCBQdXNoKFJlZ2lzdGVyIHJlZykgUEVSX1NIQVJFRF9BUkNIOworICAgdm9pZCBQ dXNoKFJlZ2lzdGVyIHJlZzEsIFJlZ2lzdGVyIHJlZzIsIFJlZ2lzdGVyIHJlZzMsIFJlZ2lzdGVy IHJlZzQpCisgICAgICAgREVGSU5FRF9PTihhcm02NCk7CitAQCAtNTMxLDE3ICs1MzcsMTcgQEAg Y2xhc3MgTWFjcm9Bc3NlbWJsZXIgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXJTcGVjaWZpYyB7Cisg ICBpbmxpbmUgQ29kZU9mZnNldCBQdXNoV2l0aFBhdGNoKEltbVdvcmQgd29yZCk7CisgICBpbmxp bmUgQ29kZU9mZnNldCBQdXNoV2l0aFBhdGNoKEltbVB0ciBpbW0pOworIAorICAgdm9pZCBQb3Ao Y29uc3QgT3BlcmFuZCBvcCkgREVGSU5FRF9PTih4ODZfc2hhcmVkKTsKKyAgIHZvaWQgUG9wKFJl Z2lzdGVyIHJlZykgUEVSX1NIQVJFRF9BUkNIOworICAgdm9pZCBQb3AoRmxvYXRSZWdpc3RlciB0 KSBQRVJfU0hBUkVEX0FSQ0g7CisgICB2b2lkIFBvcChjb25zdCBWYWx1ZU9wZXJhbmQmIHZhbCkg UEVSX1NIQVJFRF9BUkNIOworICAgdm9pZCBQb3BGbGFncygpIERFRklORURfT04oeDg2X3NoYXJl ZCk7CistICB2b2lkIFBvcFN0YWNrUHRyKCkgREVGSU5FRF9PTihhcm0sIG1pcHNfc2hhcmVkLCB4 ODZfc2hhcmVkKTsKKysgIHZvaWQgUG9wU3RhY2tQdHIoKSBERUZJTkVEX09OKGFybSwgbWlwc19z aGFyZWQsIHg4Nl9zaGFyZWQsIHBwYzY0KTsKKyAgIHZvaWQgcG9wUm9vdGVkKFZNRnVuY3Rpb25E YXRhOjpSb290VHlwZSByb290VHlwZSwgUmVnaXN0ZXIgY2VsbFJlZywKKyAgICAgICAgICAgICAg ICAgIGNvbnN0IFZhbHVlT3BlcmFuZCYgdmFsdWVSZWcpOworIAorICAgLy8gTW92ZSB0aGUgc3Rh Y2sgcG9pbnRlciBiYXNlZCBvbiB0aGUgcmVxdWVzdGVkIGFtb3VudC4KKyAgIHZvaWQgYWRqdXN0 U3RhY2soaW50IGFtb3VudCk7CisgICB2b2lkIGZyZWVTdGFjayh1aW50MzJfdCBhbW91bnQpOwor IAorICAgLy8gV2FybmluZzogVGhpcyBtZXRob2QgZG9lcyBub3QgdXBkYXRlIHRoZSBmcmFtZVB1 c2hlZCgpIGNvdW50ZXIuCitAQCAtNTg5LDE4ICs1OTUsMTggQEAgY2xhc3MgTWFjcm9Bc3NlbWJs ZXIgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXJTcGVjaWZpYyB7CisgCisgICAvLyBQdXNoIHRoZSBy ZXR1cm4gYWRkcmVzcyBhbmQgbWFrZSBhIGNhbGwuIE9uIHBsYXRmb3JtcyB3aGVyZSB0aGlzIGZ1 bmN0aW9uCisgICAvLyBpcyBub3QgZGVmaW5lZCwgcHVzaCB0aGUgbGluayByZWdpc3RlciAocHVz aFJldHVybkFkZHJlc3MpIGF0IHRoZSBlbnRyeQorICAgLy8gcG9pbnQgb2YgdGhlIGNhbGxlZS4K KyAgIHZvaWQgY2FsbEFuZFB1c2hSZXR1cm5BZGRyZXNzKFJlZ2lzdGVyIHJlZykgREVGSU5FRF9P Tih4ODZfc2hhcmVkKTsKKyAgIHZvaWQgY2FsbEFuZFB1c2hSZXR1cm5BZGRyZXNzKExhYmVsKiBs YWJlbCkgREVGSU5FRF9PTih4ODZfc2hhcmVkKTsKKyAKKyAgIC8vIFRoZXNlIGRvIG5vdCBhZGp1 c3QgZnJhbWVQdXNoZWQoKS4KKy0gIHZvaWQgcHVzaFJldHVybkFkZHJlc3MoKSBERUZJTkVEX09O KG1pcHNfc2hhcmVkLCBhcm0sIGFybTY0KTsKKy0gIHZvaWQgcG9wUmV0dXJuQWRkcmVzcygpIERF RklORURfT04obWlwc19zaGFyZWQsIGFybSwgYXJtNjQpOworKyAgdm9pZCBwdXNoUmV0dXJuQWRk cmVzcygpIERFRklORURfT04obWlwc19zaGFyZWQsIGFybSwgYXJtNjQsIHBwYzY0KTsKKysgIHZv aWQgcG9wUmV0dXJuQWRkcmVzcygpIERFRklORURfT04obWlwc19zaGFyZWQsIGFybSwgYXJtNjQs IHBwYzY0KTsKKyAKKyAgIC8vIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoIHR3by12YWx1ZWQgcmV0 dXJucy4KKyAgIHZvaWQgbW92ZVJlZ1BhaXIoUmVnaXN0ZXIgc3JjMCwgUmVnaXN0ZXIgc3JjMSwg UmVnaXN0ZXIgZHN0MCwgUmVnaXN0ZXIgZHN0MSwKKyAgICAgICAgICAgICAgICAgICAgTW92ZU9w OjpUeXBlIHR5cGUgPSBNb3ZlT3A6OkdFTkVSQUwpOworIAorICBwdWJsaWM6CisgICAvLyA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKyAgIC8vIFBhdGNoYWJsZSBuZWFyL2ZhciBqdW1wcy4KK0BAIC02MjEsMjAgKzYyNywyMCBA QCBjbGFzcyBNYWNyb0Fzc2VtYmxlciA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlclNwZWNpZmljIHsK KyAKKyAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIGxpa2UgbW92V2l0aFBhdGNoL1BhdGNoRGF0YVdp dGhWYWx1ZUNoZWNrIGJ1dCBhbGxvdworICAgLy8gdXNpbmcgcGMtcmVsYXRpdmUgYWRkcmVzc2lu ZyBvbiBjZXJ0YWluIHBsYXRmb3JtcyAoUklQLXJlbGF0aXZlIExFQSBvbiB4NjQsCisgICAvLyBB RFIgaW5zdHJ1Y3Rpb24gb24gYXJtNjQpLgorICAgLy8KKyAgIC8vIE5vdGU6ICJOZWFyIiBhcHBs aWVzIHRvIEFSTTY0IHdoZXJlIHRoZSB0YXJnZXQgbXVzdCBiZSB3aXRoaW4gMSBNQiAodGhpcyBp cworICAgLy8gcmVsZWFzZS1hc3NlcnRlZCkuCisgICBDb2RlT2Zmc2V0IG1vdmVOZWFyQWRkcmVz c1dpdGhQYXRjaChSZWdpc3RlciBkZXN0KQorLSAgICAgIERFRklORURfT04oeDg2LCB4NjQsIGFy bSwgYXJtNjQsIG1pcHNfc2hhcmVkKTsKKysgICAgICBERUZJTkVEX09OKHg4NiwgeDY0LCBhcm0s IGFybTY0LCBtaXBzX3NoYXJlZCwgcHBjNjQpOworICAgc3RhdGljIHZvaWQgcGF0Y2hOZWFyQWRk cmVzc01vdmUoQ29kZUxvY2F0aW9uTGFiZWwgbG9jLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWwgdGFyZ2V0KQorLSAgICAgIERFRklORURfT04o eDg2LCB4NjQsIGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkKTsKKysgICAgICBERUZJTkVEX09OKHg4 NiwgeDY0LCBhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgcHBjNjQpOworIAorICBwdWJsaWM6Cisg ICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKyAgIC8vIFtTTURPQ10gSklULXRvLUMrKyBGdW5jdGlvbiBDYWxscyAoY2Fs bFdpdGhBQkkpCisgICAvLworICAgLy8gY2FsbFdpdGhBQkkgaXMgdXNlZCB0byBtYWtlIGEgY2Fs bCB1c2luZyB0aGUgc3RhbmRhcmQgQy9DKysgc3lzdGVtIEFCSS4KKyAgIC8vCisgICAvLyBjYWxs V2l0aEFCSSBpcyBhIGxvdyBsZXZlbCBpbnRlcmZhY2UgZm9yIG1ha2luZyBjYWxscywgYXMgc3Vj aCBldmVyeSBjYWxsCitAQCAtOTgzLDIwICs5ODksMjEgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXIg OiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXJTcGVjaWZpYyB7CisgICBpbmxpbmUgdm9pZCB4b3IzMihJ bW0zMiBpbW0sIFJlZ2lzdGVyIGRlc3QpIFBFUl9TSEFSRURfQVJDSDsKKyAgIGlubGluZSB2b2lk IHhvcjMyKEltbTMyIGltbSwgY29uc3QgQWRkcmVzcyYgZGVzdCkgUEVSX1NIQVJFRF9BUkNIOwor ICAgaW5saW5lIHZvaWQgeG9yMzIoY29uc3QgQWRkcmVzcyYgc3JjLCBSZWdpc3RlciBkZXN0KSBQ RVJfU0hBUkVEX0FSQ0g7CisgCisgICBpbmxpbmUgdm9pZCB4b3JQdHIoUmVnaXN0ZXIgc3JjLCBS ZWdpc3RlciBkZXN0KSBQRVJfQVJDSDsKKyAgIGlubGluZSB2b2lkIHhvclB0cihJbW0zMiBpbW0s IFJlZ2lzdGVyIGRlc3QpIFBFUl9BUkNIOworIAorICAgaW5saW5lIHZvaWQgYW5kNjQoY29uc3Qg T3BlcmFuZCYgc3JjLCBSZWdpc3RlcjY0IGRlc3QpCistICAgICAgREVGSU5FRF9PTih4NjQsIG1p cHM2NCk7CistICBpbmxpbmUgdm9pZCBvcjY0KGNvbnN0IE9wZXJhbmQmIHNyYywgUmVnaXN0ZXI2 NCBkZXN0KSBERUZJTkVEX09OKHg2NCwgbWlwczY0KTsKKysgICAgICBERUZJTkVEX09OKHg2NCwg bWlwczY0LCBwcGM2NCk7CisrICBpbmxpbmUgdm9pZCBvcjY0KGNvbnN0IE9wZXJhbmQmIHNyYywg UmVnaXN0ZXI2NCBkZXN0KQorKyAgICAgIERFRklORURfT04oeDY0LCBtaXBzNjQsIHBwYzY0KTsK KyAgIGlubGluZSB2b2lkIHhvcjY0KGNvbnN0IE9wZXJhbmQmIHNyYywgUmVnaXN0ZXI2NCBkZXN0 KQorLSAgICAgIERFRklORURfT04oeDY0LCBtaXBzNjQpOworKyAgICAgIERFRklORURfT04oeDY0 LCBtaXBzNjQsIHBwYzY0KTsKKyAKKyAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgLy8gU3dhcCBpbnN0cnVjdGlv bnMKKyAKKyAgIC8vIFN3YXAgdGhlIHR3byBsb3dlciBieXRlcyBhbmQgc2lnbiBleHRlbmQgdGhl IHJlc3VsdCB0byAzMi1iaXQuCisgICBpbmxpbmUgdm9pZCBieXRlU3dhcDE2U2lnbkV4dGVuZChS ZWdpc3RlciByZWcpIFBFUl9TSEFSRURfQVJDSDsKKyAKKyAgIC8vIFN3YXAgdGhlIHR3byBsb3dl ciBieXRlcyBhbmQgemVybyBleHRlbmQgdGhlIHJlc3VsdCB0byAzMi1iaXQuCitAQCAtMTAyMCwy NyArMTAyNywyNyBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlciA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxl clNwZWNpZmljIHsKKyAgIGlubGluZSB2b2lkIGFkZFB0cihSZWdpc3RlciBzcmMsIFJlZ2lzdGVy IGRlc3QpIFBFUl9BUkNIOworICAgaW5saW5lIHZvaWQgYWRkUHRyKFJlZ2lzdGVyIHNyYzEsIFJl Z2lzdGVyIHNyYzIsIFJlZ2lzdGVyIGRlc3QpCisgICAgICAgREVGSU5FRF9PTihhcm02NCk7Cisg ICBpbmxpbmUgdm9pZCBhZGRQdHIoSW1tMzIgaW1tLCBSZWdpc3RlciBkZXN0KSBQRVJfQVJDSDsK KyAgIGlubGluZSB2b2lkIGFkZFB0cihJbW0zMiBpbW0sIFJlZ2lzdGVyIHNyYywgUmVnaXN0ZXIg ZGVzdCkgREVGSU5FRF9PTihhcm02NCk7CisgICBpbmxpbmUgdm9pZCBhZGRQdHIoSW1tV29yZCBp bW0sIFJlZ2lzdGVyIGRlc3QpIFBFUl9BUkNIOworICAgaW5saW5lIHZvaWQgYWRkUHRyKEltbVB0 ciBpbW0sIFJlZ2lzdGVyIGRlc3QpOworICAgaW5saW5lIHZvaWQgYWRkUHRyKEltbTMyIGltbSwg Y29uc3QgQWRkcmVzcyYgZGVzdCkKKy0gICAgICBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBhcm0s IGFybTY0LCB4ODYsIHg2NCk7CisrICAgICAgREVGSU5FRF9PTihtaXBzX3NoYXJlZCwgYXJtLCBh cm02NCwgeDg2LCB4NjQsIHBwYzY0KTsKKyAgIGlubGluZSB2b2lkIGFkZFB0cihJbW0zMiBpbW0s IGNvbnN0IEFic29sdXRlQWRkcmVzcyYgZGVzdCkKKyAgICAgICBERUZJTkVEX09OKHg4NiwgeDY0 KTsKKyAgIGlubGluZSB2b2lkIGFkZFB0cihjb25zdCBBZGRyZXNzJiBzcmMsIFJlZ2lzdGVyIGRl c3QpCistICAgICAgREVGSU5FRF9PTihtaXBzX3NoYXJlZCwgYXJtLCBhcm02NCwgeDg2LCB4NjQp OworKyAgICAgIERFRklORURfT04obWlwc19zaGFyZWQsIGFybSwgYXJtNjQsIHg4NiwgeDY0LCBw cGM2NCk7CisgCisgICBpbmxpbmUgdm9pZCBhZGQ2NChSZWdpc3RlcjY0IHNyYywgUmVnaXN0ZXI2 NCBkZXN0KSBQRVJfQVJDSDsKKyAgIGlubGluZSB2b2lkIGFkZDY0KEltbTMyIGltbSwgUmVnaXN0 ZXI2NCBkZXN0KSBQRVJfQVJDSDsKKyAgIGlubGluZSB2b2lkIGFkZDY0KEltbTY0IGltbSwgUmVn aXN0ZXI2NCBkZXN0KSBQRVJfQVJDSDsKKyAgIGlubGluZSB2b2lkIGFkZDY0KGNvbnN0IE9wZXJh bmQmIHNyYywgUmVnaXN0ZXI2NCBkZXN0KQorLSAgICAgIERFRklORURfT04oeDY0LCBtaXBzNjQp OworKyAgICAgIERFRklORURfT04oeDY0LCBtaXBzNjQsIHBwYzY0KTsKKyAKKyAgIGlubGluZSB2 b2lkIGFkZEZsb2F0MzIoRmxvYXRSZWdpc3RlciBzcmMsIEZsb2F0UmVnaXN0ZXIgZGVzdCkgUEVS X1NIQVJFRF9BUkNIOworIAorICAgLy8gQ29tcHV0ZSBkZXN0PVNQLWltbSB3aGVyZSBkZXN0IGlz IGEgcG9pbnRlciByZWdpc3RlcnMgYW5kIG5vdCBTUC4gIFRoZQorICAgLy8gb2Zmc2V0IHJldHVy bmVkIGZyb20gc3ViMzJGcm9tU3RhY2tQdHJXaXRoUGF0Y2goKSBtdXN0IGJlIHBhc3NlZCB0bwor ICAgLy8gcGF0Y2hTdWIzMkZyb21TdGFja1B0cigpLgorICAgaW5saW5lIENvZGVPZmZzZXQgc3Vi MzJGcm9tU3RhY2tQdHJXaXRoUGF0Y2goUmVnaXN0ZXIgZGVzdCkgUEVSX0FSQ0g7CisgICBpbmxp bmUgdm9pZCBwYXRjaFN1YjMyRnJvbVN0YWNrUHRyKENvZGVPZmZzZXQgb2Zmc2V0LCBJbW0zMiBp bW0pIFBFUl9BUkNIOworQEAgLTEwNDksNTggKzEwNTYsNTggQEAgY2xhc3MgTWFjcm9Bc3NlbWJs ZXIgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXJTcGVjaWZpYyB7CisgICBpbmxpbmUgdm9pZCBhZGRD b25zdGFudERvdWJsZShkb3VibGUgZCwgRmxvYXRSZWdpc3RlciBkZXN0KSBERUZJTkVEX09OKHg4 Nik7CisgCisgICBpbmxpbmUgdm9pZCBzdWIzMihjb25zdCBBZGRyZXNzJiBzcmMsIFJlZ2lzdGVy IGRlc3QpIFBFUl9TSEFSRURfQVJDSDsKKyAgIGlubGluZSB2b2lkIHN1YjMyKFJlZ2lzdGVyIHNy YywgUmVnaXN0ZXIgZGVzdCkgUEVSX1NIQVJFRF9BUkNIOworICAgaW5saW5lIHZvaWQgc3ViMzIo SW1tMzIgaW1tLCBSZWdpc3RlciBkZXN0KSBQRVJfU0hBUkVEX0FSQ0g7CisgCisgICBpbmxpbmUg dm9pZCBzdWJQdHIoUmVnaXN0ZXIgc3JjLCBSZWdpc3RlciBkZXN0KSBQRVJfQVJDSDsKKyAgIGlu bGluZSB2b2lkIHN1YlB0cihSZWdpc3RlciBzcmMsIGNvbnN0IEFkZHJlc3MmIGRlc3QpCistICAg ICAgREVGSU5FRF9PTihtaXBzX3NoYXJlZCwgYXJtLCBhcm02NCwgeDg2LCB4NjQpOworKyAgICAg IERFRklORURfT04obWlwc19zaGFyZWQsIGFybSwgYXJtNjQsIHg4NiwgeDY0LCBwcGM2NCk7Cisg ICBpbmxpbmUgdm9pZCBzdWJQdHIoSW1tMzIgaW1tLCBSZWdpc3RlciBkZXN0KSBQRVJfQVJDSDsK KyAgIGlubGluZSB2b2lkIHN1YlB0cihJbW1Xb3JkIGltbSwgUmVnaXN0ZXIgZGVzdCkgREVGSU5F RF9PTih4NjQpOworICAgaW5saW5lIHZvaWQgc3ViUHRyKGNvbnN0IEFkZHJlc3MmIGFkZHIsIFJl Z2lzdGVyIGRlc3QpCistICAgICAgREVGSU5FRF9PTihtaXBzX3NoYXJlZCwgYXJtLCBhcm02NCwg eDg2LCB4NjQpOworKyAgICAgIERFRklORURfT04obWlwc19zaGFyZWQsIGFybSwgYXJtNjQsIHg4 NiwgeDY0LCBwcGM2NCk7CisgCisgICBpbmxpbmUgdm9pZCBzdWI2NChSZWdpc3RlcjY0IHNyYywg UmVnaXN0ZXI2NCBkZXN0KSBQRVJfQVJDSDsKKyAgIGlubGluZSB2b2lkIHN1YjY0KEltbTY0IGlt bSwgUmVnaXN0ZXI2NCBkZXN0KSBQRVJfQVJDSDsKKyAgIGlubGluZSB2b2lkIHN1YjY0KGNvbnN0 IE9wZXJhbmQmIHNyYywgUmVnaXN0ZXI2NCBkZXN0KQorLSAgICAgIERFRklORURfT04oeDY0LCBt aXBzNjQpOworKyAgICAgIERFRklORURfT04oeDY0LCBtaXBzNjQsIHBwYzY0KTsKKyAKKyAgIGlu bGluZSB2b2lkIHN1YkZsb2F0MzIoRmxvYXRSZWdpc3RlciBzcmMsIEZsb2F0UmVnaXN0ZXIgZGVz dCkgUEVSX1NIQVJFRF9BUkNIOworIAorICAgaW5saW5lIHZvaWQgc3ViRG91YmxlKEZsb2F0UmVn aXN0ZXIgc3JjLCBGbG9hdFJlZ2lzdGVyIGRlc3QpIFBFUl9TSEFSRURfQVJDSDsKKyAKKyAgIGlu bGluZSB2b2lkIG11bDMyKFJlZ2lzdGVyIHJocywgUmVnaXN0ZXIgc3JjRGVzdCkgUEVSX1NIQVJF RF9BUkNIOworIAorICAgaW5saW5lIHZvaWQgbXVsMzIoUmVnaXN0ZXIgc3JjMSwgUmVnaXN0ZXIg c3JjMiwgUmVnaXN0ZXIgZGVzdCwgTGFiZWwqIG9uT3ZlcikKKyAgICAgICBERUZJTkVEX09OKGFy bTY0KTsKKyAKKyAgIGlubGluZSB2b2lkIG11bFB0cihSZWdpc3RlciByaHMsIFJlZ2lzdGVyIHNy Y0Rlc3QpIFBFUl9BUkNIOworIAorICAgaW5saW5lIHZvaWQgbXVsNjQoY29uc3QgT3BlcmFuZCYg c3JjLCBjb25zdCBSZWdpc3RlcjY0JiBkZXN0KSBERUZJTkVEX09OKHg2NCk7CisgICBpbmxpbmUg dm9pZCBtdWw2NChjb25zdCBPcGVyYW5kJiBzcmMsIGNvbnN0IFJlZ2lzdGVyNjQmIGRlc3QsCist ICAgICAgICAgICAgICAgICAgICBjb25zdCBSZWdpc3RlciB0ZW1wKSBERUZJTkVEX09OKHg2NCwg bWlwczY0KTsKKysgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlZ2lzdGVyIHRlbXApIERFRklO RURfT04oeDY0LCBtaXBzNjQsIHBwYzY0KTsKKyAgIGlubGluZSB2b2lkIG11bDY0KEltbTY0IGlt bSwgY29uc3QgUmVnaXN0ZXI2NCYgZGVzdCkgUEVSX0FSQ0g7CisgICBpbmxpbmUgdm9pZCBtdWw2 NChJbW02NCBpbW0sIGNvbnN0IFJlZ2lzdGVyNjQmIGRlc3QsIGNvbnN0IFJlZ2lzdGVyIHRlbXAp CistICAgICAgREVGSU5FRF9PTih4ODYsIHg2NCwgYXJtLCBtaXBzMzIsIG1pcHM2NCk7CisrICAg ICAgREVGSU5FRF9PTih4ODYsIHg2NCwgYXJtLCBtaXBzMzIsIG1pcHM2NCwgcHBjNjQpOworICAg aW5saW5lIHZvaWQgbXVsNjQoY29uc3QgUmVnaXN0ZXI2NCYgc3JjLCBjb25zdCBSZWdpc3RlcjY0 JiBkZXN0LAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVnaXN0ZXIgdGVtcCkgUEVSX0FS Q0g7CisgICBpbmxpbmUgdm9pZCBtdWw2NChjb25zdCBSZWdpc3RlcjY0JiBzcmMxLCBjb25zdCBS ZWdpc3RlcjY0JiBzcmMyLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVnaXN0ZXI2NCYg ZGVzdCkgREVGSU5FRF9PTihhcm02NCk7CisgICBpbmxpbmUgdm9pZCBtdWw2NChJbW02NCBzcmMx LCBjb25zdCBSZWdpc3RlcjY0JiBzcmMyLCBjb25zdCBSZWdpc3RlcjY0JiBkZXN0KQorICAgICAg IERFRklORURfT04oYXJtNjQpOworIAorICAgaW5saW5lIHZvaWQgbXVsQnkzKFJlZ2lzdGVyIHNy YywgUmVnaXN0ZXIgZGVzdCkgUEVSX0FSQ0g7CisgCisgICBpbmxpbmUgdm9pZCBtdWxGbG9hdDMy KEZsb2F0UmVnaXN0ZXIgc3JjLCBGbG9hdFJlZ2lzdGVyIGRlc3QpIFBFUl9TSEFSRURfQVJDSDsK KyAgIGlubGluZSB2b2lkIG11bERvdWJsZShGbG9hdFJlZ2lzdGVyIHNyYywgRmxvYXRSZWdpc3Rl ciBkZXN0KSBQRVJfU0hBUkVEX0FSQ0g7CisgCisgICBpbmxpbmUgdm9pZCBtdWxEb3VibGVQdHIo SW1tUHRyIGltbSwgUmVnaXN0ZXIgdGVtcCwgRmxvYXRSZWdpc3RlciBkZXN0KQorLSAgICAgIERF RklORURfT04obWlwc19zaGFyZWQsIGFybSwgYXJtNjQsIHg4NiwgeDY0KTsKKysgICAgICBERUZJ TkVEX09OKG1pcHNfc2hhcmVkLCBhcm0sIGFybTY0LCB4ODYsIHg2NCwgcHBjNjQpOworIAorICAg Ly8gUGVyZm9ybSBhbiBpbnRlZ2VyIGRpdmlzaW9uLCByZXR1cm5pbmcgdGhlIGludGVnZXIgcGFy dCByb3VuZGVkIHRvd2FyZAorICAgLy8gemVyby4gcmhzIG11c3Qgbm90IGJlIHplcm8sIGFuZCB0 aGUgZGl2aXNpb24gbXVzdCBub3Qgb3ZlcmZsb3cuCisgICAvLworICAgLy8gT24geDg2X3NoYXJl ZCwgc3JjRGVzdCBtdXN0IGJlIGVheCBhbmQgZWR4IHdpbGwgYmUgY2xvYmJlcmVkLgorICAgLy8g T24gQVJNLCB0aGUgY2hpcCBtdXN0IGhhdmUgaGFyZHdhcmUgZGl2aXNpb24gaW5zdHJ1Y3Rpb25z LgorICAgaW5saW5lIHZvaWQgcXVvdGllbnQzMihSZWdpc3RlciByaHMsIFJlZ2lzdGVyIHNyY0Rl c3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNVbnNpZ25lZCkgUEVSX1NIQVJF RF9BUkNIOworQEAgLTExMTcsNDEgKzExMjQsNDEgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXIgOiBw dWJsaWMgTWFjcm9Bc3NlbWJsZXJTcGVjaWZpYyB7CisgICAvLyB6ZXJvLiByaHMgbXVzdCBub3Qg YmUgemVybywgYW5kIHRoZSBkaXZpc2lvbiBtdXN0IG5vdCBvdmVyZmxvdy4KKyAgIC8vCisgICAv LyBUaGlzIHZhcmlhbnQgcHJlc2VydmVzIHJlZ2lzdGVycywgYW5kIGRvZXNuJ3QgcmVxdWlyZSBo YXJkd2FyZSBkaXZpc2lvbgorICAgLy8gaW5zdHJ1Y3Rpb25zIG9uIEFSTSAod2lsbCBjYWxsIG91 dCB0byBhIHJ1bnRpbWUgcm91dGluZSkuCisgICAvLworICAgLy8gcmhzIGlzIHByZXNlcnZlZCwg c3JkRGVzdCBpcyBjbG9iYmVyZWQuCisgICB2b2lkIGZsZXhpYmxlUmVtYWluZGVyMzIoUmVnaXN0 ZXIgcmhzLCBSZWdpc3RlciBzcmNEZXN0LCBib29sIGlzVW5zaWduZWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgTGl2ZVJlZ2lzdGVyU2V0JiB2b2xhdGlsZUxpdmVSZWdzKQor LSAgICAgIERFRklORURfT04obWlwc19zaGFyZWQsIGFybSwgYXJtNjQsIHg4Nl9zaGFyZWQpOwor KyAgICAgIERFRklORURfT04obWlwc19zaGFyZWQsIGFybSwgYXJtNjQsIHg4Nl9zaGFyZWQsIHBw YzY0KTsKKyAKKyAgIC8vIFBlcmZvcm0gYW4gaW50ZWdlciBkaXZpc2lvbiwgcmV0dXJuaW5nIHRo ZSBpbnRlZ2VyIHBhcnQgcm91bmRlZCB0b3dhcmQKKyAgIC8vIHplcm8uIHJocyBtdXN0IG5vdCBi ZSB6ZXJvLCBhbmQgdGhlIGRpdmlzaW9uIG11c3Qgbm90IG92ZXJmbG93LgorICAgLy8KKyAgIC8v IFRoaXMgdmFyaWFudCBwcmVzZXJ2ZXMgcmVnaXN0ZXJzLCBhbmQgZG9lc24ndCByZXF1aXJlIGhh cmR3YXJlIGRpdmlzaW9uCisgICAvLyBpbnN0cnVjdGlvbnMgb24gQVJNICh3aWxsIGNhbGwgb3V0 IHRvIGEgcnVudGltZSByb3V0aW5lKS4KKyAgIC8vCisgICAvLyByaHMgaXMgcHJlc2VydmVkLCBz cmREZXN0IGlzIGNsb2JiZXJlZC4KKyAgIHZvaWQgZmxleGlibGVRdW90aWVudDMyKFJlZ2lzdGVy IHJocywgUmVnaXN0ZXIgc3JjRGVzdCwgYm9vbCBpc1Vuc2lnbmVkLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgTGl2ZVJlZ2lzdGVyU2V0JiB2b2xhdGlsZUxpdmVSZWdzKQorLSAg ICAgIERFRklORURfT04obWlwc19zaGFyZWQsIGFybSwgYXJtNjQsIHg4Nl9zaGFyZWQpOworKyAg ICAgIERFRklORURfT04obWlwc19zaGFyZWQsIGFybSwgYXJtNjQsIHg4Nl9zaGFyZWQsIHBwYzY0 KTsKKyAKKyAgIC8vIFBlcmZvcm0gYW4gaW50ZWdlciBkaXZpc2lvbiwgcmV0dXJuaW5nIHRoZSBp bnRlZ2VyIHBhcnQgcm91bmRlZCB0b3dhcmQKKyAgIC8vIHplcm8uIHJocyBtdXN0IG5vdCBiZSB6 ZXJvLCBhbmQgdGhlIGRpdmlzaW9uIG11c3Qgbm90IG92ZXJmbG93LiBUaGUKKyAgIC8vIHJlbWFp bmRlciBpcyBzdG9yZWQgaW50byB0aGUgdGhpcmQgYXJndW1lbnQgcmVnaXN0ZXIgaGVyZS4KKyAg IC8vCisgICAvLyBUaGlzIHZhcmlhbnQgcHJlc2VydmVzIHJlZ2lzdGVycywgYW5kIGRvZXNuJ3Qg cmVxdWlyZSBoYXJkd2FyZSBkaXZpc2lvbgorICAgLy8gaW5zdHJ1Y3Rpb25zIG9uIEFSTSAod2ls bCBjYWxsIG91dCB0byBhIHJ1bnRpbWUgcm91dGluZSkuCisgICAvLworICAgLy8gcmhzIGlzIHBy ZXNlcnZlZCwgc3JkRGVzdCBhbmQgcmVtT3V0cHV0IGFyZSBjbG9iYmVyZWQuCisgICB2b2lkIGZs ZXhpYmxlRGl2TW9kMzIoUmVnaXN0ZXIgcmhzLCBSZWdpc3RlciBzcmNEZXN0LCBSZWdpc3RlciBy ZW1PdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1Vuc2lnbmVkLAorICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IExpdmVSZWdpc3RlclNldCYgdm9sYXRpbGVMaXZl UmVncykKKy0gICAgICBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBhcm0sIGFybTY0LCB4ODZfc2hh cmVkKTsKKysgICAgICBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBhcm0sIGFybTY0LCB4ODZfc2hh cmVkLCBwcGM2NCk7CisgCisgICBpbmxpbmUgdm9pZCBkaXZGbG9hdDMyKEZsb2F0UmVnaXN0ZXIg c3JjLCBGbG9hdFJlZ2lzdGVyIGRlc3QpIFBFUl9TSEFSRURfQVJDSDsKKyAgIGlubGluZSB2b2lk IGRpdkRvdWJsZShGbG9hdFJlZ2lzdGVyIHNyYywgRmxvYXRSZWdpc3RlciBkZXN0KSBQRVJfU0hB UkVEX0FSQ0g7CisgCisgICBpbmxpbmUgdm9pZCBpbmM2NChBYnNvbHV0ZUFkZHJlc3MgZGVzdCkg UEVSX0FSQ0g7CisgCisgICBpbmxpbmUgdm9pZCBuZWczMihSZWdpc3RlciByZWcpIFBFUl9TSEFS RURfQVJDSDsKKyAgIGlubGluZSB2b2lkIG5lZzY0KFJlZ2lzdGVyNjQgcmVnKSBQRVJfQVJDSDsK K0BAIC0xMzQyLDE3ICsxMzQ5LDE3IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyIDogcHVibGljIE1h Y3JvQXNzZW1ibGVyU3BlY2lmaWMgeworICAgLy8gdGVtcCBtYXkgYmUgaW52YWxpZCBvbmx5IGlm IHRoZSBjaGlwIGhhcyB0aGUgUE9QQ05UIGluc3RydWN0aW9uLgorICAgaW5saW5lIHZvaWQgcG9w Y250NjQoUmVnaXN0ZXI2NCBzcmMsIFJlZ2lzdGVyNjQgZGVzdCwgUmVnaXN0ZXIgdGVtcCkgUEVS X0FSQ0g7CisgCisgICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKyAgIC8vIENvbmRpdGlvbiBmdW5jdGlvbnMKKyAKKyAg IHRlbXBsYXRlIDx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+CisgICBpbmxpbmUgdm9pZCBjbXAz MlNldChDb25kaXRpb24gY29uZCwgVDEgbGhzLCBUMiByaHMsIFJlZ2lzdGVyIGRlc3QpCistICAg ICAgREVGSU5FRF9PTih4ODZfc2hhcmVkLCBhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCk7Cisr ICAgICAgREVGSU5FRF9PTih4ODZfc2hhcmVkLCBhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwg cHBjNjQpOworIAorICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4KKyAgIGlu bGluZSB2b2lkIGNtcFB0clNldChDb25kaXRpb24gY29uZCwgVDEgbGhzLCBUMiByaHMsIFJlZ2lz dGVyIGRlc3QpIFBFUl9BUkNIOworIAorICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAvLyBCcmFuY2ggZnVuY3Rp b25zCisgCisgICB0ZW1wbGF0ZSA8Y2xhc3MgTD4KK0BAIC0xMzY3LDM0ICsxMzc0LDM0IEBAIGNs YXNzIE1hY3JvQXNzZW1ibGVyIDogcHVibGljIE1hY3JvQXNzZW1ibGVyU3BlY2lmaWMgeworIAor ICAgaW5saW5lIHZvaWQgYnJhbmNoMzIoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IEFkZHJlc3MmIGxo cywgUmVnaXN0ZXIgcmhzLAorICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVsKSBQ RVJfU0hBUkVEX0FSQ0g7CisgICBpbmxpbmUgdm9pZCBicmFuY2gzMihDb25kaXRpb24gY29uZCwg Y29uc3QgQWRkcmVzcyYgbGhzLCBJbW0zMiByaHMsCisgICAgICAgICAgICAgICAgICAgICAgICBM YWJlbCogbGFiZWwpIFBFUl9TSEFSRURfQVJDSDsKKyAKKyAgIGlubGluZSB2b2lkIGJyYW5jaDMy KENvbmRpdGlvbiBjb25kLCBjb25zdCBBYnNvbHV0ZUFkZHJlc3MmIGxocywgUmVnaXN0ZXIgcmhz LAorICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVsKQorLSAgICAgIERFRklORURf T04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0KTsKKysgICAgICBERUZJTkVEX09O KGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODYsIHg2NCwgcHBjNjQpOworICAgaW5saW5lIHZv aWQgYnJhbmNoMzIoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IEFic29sdXRlQWRkcmVzcyYgbGhzLCBJ bW0zMiByaHMsCisgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpCistICAgICAg REVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2LCB4NjQpOworKyAgICAgIERF RklORURfT04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0LCBwcGM2NCk7CisgCisg ICBpbmxpbmUgdm9pZCBicmFuY2gzMihDb25kaXRpb24gY29uZCwgY29uc3QgQmFzZUluZGV4JiBs aHMsIFJlZ2lzdGVyIHJocywKKyAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkg REVGSU5FRF9PTihhcm0sIHg4Nl9zaGFyZWQpOworICAgaW5saW5lIHZvaWQgYnJhbmNoMzIoQ29u ZGl0aW9uIGNvbmQsIGNvbnN0IEJhc2VJbmRleCYgbGhzLCBJbW0zMiByaHMsCisgICAgICAgICAg ICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpIFBFUl9TSEFSRURfQVJDSDsKKyAKKyAgIGlubGlu ZSB2b2lkIGJyYW5jaDMyKENvbmRpdGlvbiBjb25kLCBjb25zdCBPcGVyYW5kJiBsaHMsIFJlZ2lz dGVyIHJocywKKyAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkgREVGSU5FRF9P Tih4ODZfc2hhcmVkKTsKKyAgIGlubGluZSB2b2lkIGJyYW5jaDMyKENvbmRpdGlvbiBjb25kLCBj b25zdCBPcGVyYW5kJiBsaHMsIEltbTMyIHJocywKKyAgICAgICAgICAgICAgICAgICAgICAgIExh YmVsKiBsYWJlbCkgREVGSU5FRF9PTih4ODZfc2hhcmVkKTsKKyAKKyAgIGlubGluZSB2b2lkIGJy YW5jaDMyKENvbmRpdGlvbiBjb25kLCB3YXNtOjpTeW1ib2xpY0FkZHJlc3MgbGhzLCBJbW0zMiBy aHMsCisgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpCistICAgICAgREVGSU5F RF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2LCB4NjQpOworKyAgICAgIERFRklORURf T04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0LCBwcGM2NCk7CisgCisgICAvLyBU aGUgc3VwcG9ydGVkIGNvbmRpdGlvbiBhcmUgRXF1YWwsIE5vdEVxdWFsLCBMZXNzVGhhbihvckVx dWFsKSwKKyAgIC8vIEdyZWF0ZXJUaGFuKG9yRXF1YWwpLCBCZWxvdyhvckVxdWFsKSBhbmQgQWJv dmUob3JFcXVhbCkuIFdoZW4gYSBmYWlsIGxhYmVsCisgICAvLyBpcyBub3QgZGVmaW5lZCBpdCB3 aWxsIGZhbGwgdGhyb3VnaCB0byBuZXh0IGluc3RydWN0aW9uLCBlbHNlIGp1bXAgdG8gdGhlCisg ICAvLyBmYWlsIGxhYmVsLgorICAgaW5saW5lIHZvaWQgYnJhbmNoNjQoQ29uZGl0aW9uIGNvbmQs IFJlZ2lzdGVyNjQgbGhzLCBJbW02NCB2YWwsCisgICAgICAgICAgICAgICAgICAgICAgICBMYWJl bCogc3VjY2VzcywgTGFiZWwqIGZhaWwgPSBudWxscHRyKSBQRVJfQVJDSDsKKyAgIGlubGluZSB2 b2lkIGJyYW5jaDY0KENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcjY0IGxocywgUmVnaXN0ZXI2NCBy aHMsCitAQCAtMTQzMywzMiArMTQ0MCwzMiBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlciA6IHB1Ymxp YyBNYWNyb0Fzc2VtYmxlclNwZWNpZmljIHsKKyAKKyAgIGlubGluZSB2b2lkIGJyYW5jaFB0cihD b25kaXRpb24gY29uZCwgY29uc3QgQmFzZUluZGV4JiBsaHMsIEltbVdvcmQgcmhzLAorICAgICAg ICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNIOworICAgaW5s aW5lIHZvaWQgYnJhbmNoUHRyKENvbmRpdGlvbiBjb25kLCBjb25zdCBCYXNlSW5kZXgmIGxocywg UmVnaXN0ZXIgcmhzLAorICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkgUEVS X1NIQVJFRF9BUkNIOworIAorICAgaW5saW5lIHZvaWQgYnJhbmNoUHRyKENvbmRpdGlvbiBjb25k LCBjb25zdCBBYnNvbHV0ZUFkZHJlc3MmIGxocywKKyAgICAgICAgICAgICAgICAgICAgICAgICBS ZWdpc3RlciByaHMsIExhYmVsKiBsYWJlbCkKKy0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQs IG1pcHNfc2hhcmVkLCB4ODYsIHg2NCk7CisrICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBt aXBzX3NoYXJlZCwgeDg2LCB4NjQsIHBwYzY0KTsKKyAgIGlubGluZSB2b2lkIGJyYW5jaFB0cihD b25kaXRpb24gY29uZCwgY29uc3QgQWJzb2x1dGVBZGRyZXNzJiBsaHMsIEltbVdvcmQgcmhzLAor ICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkKKy0gICAgICBERUZJTkVEX09O KGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODYsIHg2NCk7CisrICAgICAgREVGSU5FRF9PTihh cm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2LCB4NjQsIHBwYzY0KTsKKyAKKyAgIGlubGluZSB2 b2lkIGJyYW5jaFB0cihDb25kaXRpb24gY29uZCwgd2FzbTo6U3ltYm9saWNBZGRyZXNzIGxocywg UmVnaXN0ZXIgcmhzLAorICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkKKy0g ICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODYsIHg2NCk7CisrICAg ICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2LCB4NjQsIHBwYzY0KTsK KyAKKyAgIC8vIEdpdmVuIGEgcG9pbnRlciB0byBhIEdDIENlbGwsIHJldHJpZXZlIHRoZSBTdG9y ZUJ1ZmZlciBwb2ludGVyIGZyb20gaXRzCisgICAvLyBjaHVuayBoZWFkZXIsIG9yIG51bGxwdHIg aWYgaXQgaXMgaW4gdGhlIHRlbnVyZWQgaGVhcC4KKyAgIHZvaWQgbG9hZFN0b3JlQnVmZmVyKFJl Z2lzdGVyIHB0ciwgUmVnaXN0ZXIgYnVmZmVyKSBQRVJfQVJDSDsKKyAKKyAgIHZvaWQgYnJhbmNo UHRySW5OdXJzZXJ5Q2h1bmsoQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVyIHB0ciwgUmVnaXN0ZXIg dGVtcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVsKQorLSAg ICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0KTsKKysgICAg ICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODYsIHg2NCwgcHBjNjQpOwor ICAgdm9pZCBicmFuY2hQdHJJbk51cnNlcnlDaHVuayhDb25kaXRpb24gY29uZCwgY29uc3QgQWRk cmVzcyYgYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIg dGVtcCwgTGFiZWwqIGxhYmVsKSBERUZJTkVEX09OKHg4Nik7CisgICB2b2lkIGJyYW5jaFZhbHVl SXNOdXJzZXJ5Q2VsbChDb25kaXRpb24gY29uZCwgY29uc3QgQWRkcmVzcyYgYWRkcmVzcywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHRlbXAsIExhYmVsKiBsYWJl bCkgUEVSX0FSQ0g7CisgICB2b2lkIGJyYW5jaFZhbHVlSXNOdXJzZXJ5Q2VsbChDb25kaXRpb24g Y29uZCwgVmFsdWVPcGVyYW5kIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmVnaXN0ZXIgdGVtcCwgTGFiZWwqIGxhYmVsKSBQRVJfQVJDSDsKKyAKKyAgIC8vIFRoaXMg ZnVuY3Rpb24gY29tcGFyZXMgYSBWYWx1ZSAobGhzKSB3aGljaCBpcyBoYXZpbmcgYSBwcml2YXRl IHBvaW50ZXIKK0BAIC0xNDcwLDM2ICsxNDc3LDM2IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyIDog cHVibGljIE1hY3JvQXNzZW1ibGVyU3BlY2lmaWMgeworICAgICAgICAgICAgICAgICAgICAgICAg ICAgRmxvYXRSZWdpc3RlciByaHMsIExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNIOworIAor ICAgLy8gVHJ1bmNhdGUgYSBkb3VibGUvZmxvYXQzMiB0byBpbnQzMiBhbmQgd2hlbiBpdCBkb2Vz bid0IGZpdCBhbiBpbnQzMiBpdCB3aWxsCisgICAvLyBqdW1wIHRvIHRoZSBmYWlsdXJlIGxhYmVs LiBUaGlzIHBhcnRpY3VsYXIgdmFyaWFudCBpcyBhbGxvd2VkIHRvIHJldHVybiB0aGUKKyAgIC8v IHZhbHVlIG1vZHVsZSAyKiozMiwgd2hpY2ggaXNuJ3QgaW1wbGVtZW50ZWQgb24gYWxsIGFyY2hp dGVjdHVyZXMuIEUuZy4gdGhlCisgICAvLyB4NjQgdmFyaWFudHMgd2lsbCBkbyB0aGlzIG9ubHkg aW4gdGhlIGludDY0X3QgcmFuZ2UuCisgICBpbmxpbmUgdm9pZCBicmFuY2hUcnVuY2F0ZUZsb2F0 MzJNYXliZU1vZFVpbnQzMihGbG9hdFJlZ2lzdGVyIHNyYywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIGRlc3QsIExhYmVsKiBmYWls KQorLSAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0KTsK KysgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODYsIHg2NCwgcHBj NjQpOworICAgaW5saW5lIHZvaWQgYnJhbmNoVHJ1bmNhdGVEb3VibGVNYXliZU1vZFVpbnQzMihG bG9hdFJlZ2lzdGVyIHNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmVnaXN0ZXIgZGVzdCwgTGFiZWwqIGZhaWwpCistICAgICAgREVGSU5FRF9P Tihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2LCB4NjQpOworKyAgICAgIERFRklORURfT04o YXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0LCBwcGM2NCk7CisgCisgICAvLyBUcnVu Y2F0ZSBhIGRvdWJsZS9mbG9hdDMyIHRvIGludHB0ciBhbmQgd2hlbiBpdCBkb2Vzbid0IGZpdCBq dW1wIHRvIHRoZQorICAgLy8gZmFpbHVyZSBsYWJlbC4KKyAgIGlubGluZSB2b2lkIGJyYW5jaFRy dW5jYXRlRmxvYXQzMlRvUHRyKEZsb2F0UmVnaXN0ZXIgc3JjLCBSZWdpc3RlciBkZXN0LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGZhaWwpIERFRklO RURfT04oeDg2LCB4NjQpOworICAgaW5saW5lIHZvaWQgYnJhbmNoVHJ1bmNhdGVEb3VibGVUb1B0 cihGbG9hdFJlZ2lzdGVyIHNyYywgUmVnaXN0ZXIgZGVzdCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGZhaWwpIERFRklORURfT04oeDg2LCB4NjQpOwor IAorICAgLy8gVHJ1bmNhdGUgYSBkb3VibGUvZmxvYXQzMiB0byBpbnQzMiBhbmQgd2hlbiBpdCBk b2Vzbid0IGZpdCBqdW1wIHRvIHRoZQorICAgLy8gZmFpbHVyZSBsYWJlbC4KKyAgIGlubGluZSB2 b2lkIGJyYW5jaFRydW5jYXRlRmxvYXQzMlRvSW50MzIoRmxvYXRSZWdpc3RlciBzcmMsIFJlZ2lz dGVyIGRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExh YmVsKiBmYWlsKQorLSAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4 NiwgeDY0KTsKKysgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODYs IHg2NCwgcHBjNjQpOworICAgaW5saW5lIHZvaWQgYnJhbmNoVHJ1bmNhdGVEb3VibGVUb0ludDMy KEZsb2F0UmVnaXN0ZXIgc3JjLCBSZWdpc3RlciBkZXN0LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBmYWlsKQorLSAgICAgIERFRklORURfT04oYXJt LCBhcm02NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0KTsKKysgICAgICBERUZJTkVEX09OKGFybSwg YXJtNjQsIG1pcHNfc2hhcmVkLCB4ODYsIHg2NCwgcHBjNjQpOworIAorICAgaW5saW5lIHZvaWQg YnJhbmNoRG91YmxlKERvdWJsZUNvbmRpdGlvbiBjb25kLCBGbG9hdFJlZ2lzdGVyIGxocywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBGbG9hdFJlZ2lzdGVyIHJocywgTGFiZWwqIGxhYmVs KSBQRVJfU0hBUkVEX0FSQ0g7CisgCisgICBpbmxpbmUgdm9pZCBicmFuY2hEb3VibGVOb3RJbklu dDY0UmFuZ2UoQWRkcmVzcyBzcmMsIFJlZ2lzdGVyIHRlbXAsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGZhaWwpOworICAgaW5saW5lIHZvaWQgYnJh bmNoRG91YmxlTm90SW5VSW50NjRSYW5nZShBZGRyZXNzIHNyYywgUmVnaXN0ZXIgdGVtcCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGZhaWwpOwor QEAgLTE1NDMsMTcgKzE1NTAsMTcgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXIgOiBwdWJsaWMgTWFj cm9Bc3NlbWJsZXJTcGVjaWZpYyB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTCBsYWJl bCkgUEVSX1NIQVJFRF9BUkNIOworICAgdGVtcGxhdGUgPGNsYXNzIEw+CisgICBpbmxpbmUgdm9p ZCBicmFuY2hUZXN0MzIoQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVyIGxocywgSW1tMzIgcmhzLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwgbGFiZWwpIFBFUl9TSEFSRURfQVJDSDsKKyAg IGlubGluZSB2b2lkIGJyYW5jaFRlc3QzMihDb25kaXRpb24gY29uZCwgY29uc3QgQWRkcmVzcyYg bGhzLCBJbW0zMiByaGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVs KSBQRVJfU0hBUkVEX0FSQ0g7CisgICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0MzIoQ29uZGl0aW9u IGNvbmQsIGNvbnN0IEFic29sdXRlQWRkcmVzcyYgbGhzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEltbTMyIHJocywgTGFiZWwqIGxhYmVsKQorLSAgICAgIERFRklORURfT04oYXJtLCBh cm02NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0KTsKKysgICAgICBERUZJTkVEX09OKGFybSwgYXJt NjQsIG1pcHNfc2hhcmVkLCB4ODYsIHg2NCwgcHBjNjQpOworIAorICAgdGVtcGxhdGUgPGNsYXNz IEw+CisgICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0UHRyKENvbmRpdGlvbiBjb25kLCBSZWdpc3Rl ciBsaHMsIFJlZ2lzdGVyIHJocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTCBsYWJl bCkgUEVSX1NIQVJFRF9BUkNIOworICAgaW5saW5lIHZvaWQgYnJhbmNoVGVzdFB0cihDb25kaXRp b24gY29uZCwgUmVnaXN0ZXIgbGhzLCBJbW0zMiByaHMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNIOworICAgaW5saW5lIHZvaWQgYnJh bmNoVGVzdFB0cihDb25kaXRpb24gY29uZCwgY29uc3QgQWRkcmVzcyYgbGhzLCBJbW0zMiByaHMs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9B UkNIOworQEAgLTE2ODksMTcgKzE2OTYsMTcgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXIgOiBwdWJs aWMgTWFjcm9Bc3NlbWJsZXJTcGVjaWZpYyB7CisgCisgICAvLyBQZXJmb3JtIGEgdHlwZS10ZXN0 IG9uIGEgdGFnIG9mIGEgVmFsdWUgKDMyYml0cyBib3hpbmcpLCBvciB0aGUgdGFnZ2VkCisgICAv LyB2YWx1ZSAoNjRiaXRzIGJveGluZykuCisgICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0VW5kZWZp bmVkKENvbmRpdGlvbiBjb25kLCBSZWdpc3RlciB0YWcsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNIOworICAgaW5saW5lIHZv aWQgYnJhbmNoVGVzdEludDMyKENvbmRpdGlvbiBjb25kLCBSZWdpc3RlciB0YWcsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVsKSBQRVJfU0hBUkVEX0FSQ0g7Cisg ICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0RG91YmxlKENvbmRpdGlvbiBjb25kLCBSZWdpc3RlciB0 YWcsIExhYmVsKiBsYWJlbCkKKy0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwg bWlwczY0LCB4ODZfc2hhcmVkKTsKKysgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMz MiwgbWlwczY0LCB4ODZfc2hhcmVkLCBwcGM2NCk7CisgICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0 TnVtYmVyKENvbmRpdGlvbiBjb25kLCBSZWdpc3RlciB0YWcsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNIOworICAgaW5saW5lIHZv aWQgYnJhbmNoVGVzdEJvb2xlYW4oQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVyIHRhZywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNI OworICAgaW5saW5lIHZvaWQgYnJhbmNoVGVzdFN0cmluZyhDb25kaXRpb24gY29uZCwgUmVnaXN0 ZXIgdGFnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpIFBF Ul9TSEFSRURfQVJDSDsKKyAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RTeW1ib2woQ29uZGl0aW9u IGNvbmQsIFJlZ2lzdGVyIHRhZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFi ZWwqIGxhYmVsKSBQRVJfU0hBUkVEX0FSQ0g7CitAQCAtMTcyMSwxMDYgKzE3MjgsMTA2IEBAIGNs YXNzIE1hY3JvQXNzZW1ibGVyIDogcHVibGljIE1hY3JvQXNzZW1ibGVyU3BlY2lmaWMgeworICAg Ly8gQmFzZUluZGV4IGFuZCBWYWx1ZU9wZXJhbmQgdmFyaWFudHMgY2xvYmJlciB0aGUgU2NyYXRj aFJlZyBvbiB4NjQuCisgICAvLyBBbGwgVmFyaWFudHMgY2xvYmJlciB0aGUgU2NyYXRjaFJlZyBv biBhcm02NC4KKyAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RVbmRlZmluZWQoQ29uZGl0aW9uIGNv bmQsIGNvbnN0IEFkZHJlc3MmIGFkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNIOworICAgaW5saW5lIHZvaWQgYnJh bmNoVGVzdFVuZGVmaW5lZChDb25kaXRpb24gY29uZCwgY29uc3QgQmFzZUluZGV4JiBhZGRyZXNz LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpIFBFUl9T SEFSRURfQVJDSDsKKyAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RVbmRlZmluZWQoQ29uZGl0aW9u IGNvbmQsIGNvbnN0IFZhbHVlT3BlcmFuZCYgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkKKy0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQs IG1pcHMzMiwgbWlwczY0LCB4ODZfc2hhcmVkKTsKKysgICAgICBERUZJTkVEX09OKGFybSwgYXJt NjQsIG1pcHMzMiwgbWlwczY0LCB4ODZfc2hhcmVkLCBwcGM2NCk7CisgCisgICBpbmxpbmUgdm9p ZCBicmFuY2hUZXN0SW50MzIoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IEFkZHJlc3MmIGFkZHJlc3Ms CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVsKSBQRVJfU0hBUkVE X0FSQ0g7CisgICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0SW50MzIoQ29uZGl0aW9uIGNvbmQsIGNv bnN0IEJhc2VJbmRleCYgYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM YWJlbCogbGFiZWwpIFBFUl9TSEFSRURfQVJDSDsKKyAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RJ bnQzMihDb25kaXRpb24gY29uZCwgY29uc3QgVmFsdWVPcGVyYW5kJiB2YWx1ZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpCistICAgICAgREVGSU5FRF9PTihh cm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCk7CisrICAgICAgREVGSU5FRF9P Tihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCwgcHBjNjQpOworIAorICAg aW5saW5lIHZvaWQgYnJhbmNoVGVzdERvdWJsZShDb25kaXRpb24gY29uZCwgY29uc3QgQWRkcmVz cyYgYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVs KSBQRVJfU0hBUkVEX0FSQ0g7CisgICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0RG91YmxlKENvbmRp dGlvbiBjb25kLCBjb25zdCBCYXNlSW5kZXgmIGFkZHJlc3MsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNIOworICAgaW5saW5lIHZv aWQgYnJhbmNoVGVzdERvdWJsZShDb25kaXRpb24gY29uZCwgY29uc3QgVmFsdWVPcGVyYW5kJiB2 YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVsKQorLSAg ICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9zaGFyZWQpOwor KyAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9zaGFyZWQs IHBwYzY0KTsKKyAKKyAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3ROdW1iZXIoQ29uZGl0aW9uIGNv bmQsIGNvbnN0IFZhbHVlT3BlcmFuZCYgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExhYmVsKiBsYWJlbCkKKy0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMz MiwgbWlwczY0LCB4ODZfc2hhcmVkKTsKKysgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1p cHMzMiwgbWlwczY0LCB4ODZfc2hhcmVkLCBwcGM2NCk7CisgCisgICBpbmxpbmUgdm9pZCBicmFu Y2hUZXN0Qm9vbGVhbihDb25kaXRpb24gY29uZCwgY29uc3QgQWRkcmVzcyYgYWRkcmVzcywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9B UkNIOworICAgaW5saW5lIHZvaWQgYnJhbmNoVGVzdEJvb2xlYW4oQ29uZGl0aW9uIGNvbmQsIGNv bnN0IEJhc2VJbmRleCYgYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNIOworICAgaW5saW5lIHZvaWQgYnJhbmNoVGVz dEJvb2xlYW4oQ29uZGl0aW9uIGNvbmQsIGNvbnN0IFZhbHVlT3BlcmFuZCYgdmFsdWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpCistICAgICAgREVGSU5F RF9PTihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCk7CisrICAgICAgREVG SU5FRF9PTihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCwgcHBjNjQpOwor IAorICAgaW5saW5lIHZvaWQgYnJhbmNoVGVzdFN0cmluZyhDb25kaXRpb24gY29uZCwgY29uc3Qg QWRkcmVzcyYgYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwq IGxhYmVsKSBQRVJfU0hBUkVEX0FSQ0g7CisgICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0U3RyaW5n KENvbmRpdGlvbiBjb25kLCBjb25zdCBCYXNlSW5kZXgmIGFkZHJlc3MsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNIOworICAgaW5s aW5lIHZvaWQgYnJhbmNoVGVzdFN0cmluZyhDb25kaXRpb24gY29uZCwgY29uc3QgVmFsdWVPcGVy YW5kJiB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVs KQorLSAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9zaGFy ZWQpOworKyAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9z aGFyZWQsIHBwYzY0KTsKKyAKKyAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RTeW1ib2woQ29uZGl0 aW9uIGNvbmQsIGNvbnN0IEFkZHJlc3MmIGFkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNIOworICAgaW5saW5lIHZvaWQg YnJhbmNoVGVzdFN5bWJvbChDb25kaXRpb24gY29uZCwgY29uc3QgQmFzZUluZGV4JiBhZGRyZXNz LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpIFBFUl9TSEFS RURfQVJDSDsKKyAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RTeW1ib2woQ29uZGl0aW9uIGNvbmQs IGNvbnN0IFZhbHVlT3BlcmFuZCYgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExhYmVsKiBsYWJlbCkKKy0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwg bWlwczY0LCB4ODZfc2hhcmVkKTsKKysgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMz MiwgbWlwczY0LCB4ODZfc2hhcmVkLCBwcGM2NCk7CisgCisgICBpbmxpbmUgdm9pZCBicmFuY2hU ZXN0QmlnSW50KENvbmRpdGlvbiBjb25kLCBjb25zdCBBZGRyZXNzJiBhZGRyZXNzLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpIFBFUl9TSEFSRURfQVJDSDsK KyAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RCaWdJbnQoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IEJh c2VJbmRleCYgYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwq IGxhYmVsKSBQRVJfU0hBUkVEX0FSQ0g7CisgICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0QmlnSW50 KENvbmRpdGlvbiBjb25kLCBjb25zdCBWYWx1ZU9wZXJhbmQmIHZhbHVlLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpCistICAgICAgREVGSU5FRF9PTihhcm0s IGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCk7CisrICAgICAgREVGSU5FRF9PTihh cm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCwgcHBjNjQpOworIAorICAgaW5s aW5lIHZvaWQgYnJhbmNoVGVzdE51bGwoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IEFkZHJlc3MmIGFk ZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpIFBFUl9T SEFSRURfQVJDSDsKKyAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3ROdWxsKENvbmRpdGlvbiBjb25k LCBjb25zdCBCYXNlSW5kZXgmIGFkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMYWJlbCogbGFiZWwpIFBFUl9TSEFSRURfQVJDSDsKKyAgIGlubGluZSB2b2lkIGJyYW5jaFRl c3ROdWxsKENvbmRpdGlvbiBjb25kLCBjb25zdCBWYWx1ZU9wZXJhbmQmIHZhbHVlLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVsKQorLSAgICAgIERFRklORURfT04o YXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9zaGFyZWQpOworKyAgICAgIERFRklORURf T04oYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9zaGFyZWQsIHBwYzY0KTsKKyAKKyAg IC8vIENsb2JiZXJzIHRoZSBTY3JhdGNoUmVnIG9uIHg2NC4KKyAgIGlubGluZSB2b2lkIGJyYW5j aFRlc3RPYmplY3QoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IEFkZHJlc3MmIGFkZHJlc3MsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNI OworICAgaW5saW5lIHZvaWQgYnJhbmNoVGVzdE9iamVjdChDb25kaXRpb24gY29uZCwgY29uc3Qg QmFzZUluZGV4JiBhZGRyZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJl bCogbGFiZWwpIFBFUl9TSEFSRURfQVJDSDsKKyAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RPYmpl Y3QoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IFZhbHVlT3BlcmFuZCYgdmFsdWUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkKKy0gICAgICBERUZJTkVEX09OKGFy bSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0LCB4ODZfc2hhcmVkKTsKKysgICAgICBERUZJTkVEX09O KGFybSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0LCB4ODZfc2hhcmVkLCBwcGM2NCk7CisgCisgICBp bmxpbmUgdm9pZCBicmFuY2hUZXN0R0NUaGluZyhDb25kaXRpb24gY29uZCwgY29uc3QgQWRkcmVz cyYgYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJl bCkgUEVSX1NIQVJFRF9BUkNIOworICAgaW5saW5lIHZvaWQgYnJhbmNoVGVzdEdDVGhpbmcoQ29u ZGl0aW9uIGNvbmQsIGNvbnN0IEJhc2VJbmRleCYgYWRkcmVzcywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkgUEVSX1NIQVJFRF9BUkNIOworICAgaW5saW5l IHZvaWQgYnJhbmNoVGVzdEdDVGhpbmcoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IFZhbHVlT3BlcmFu ZCYgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwp IFBFUl9TSEFSRURfQVJDSDsKKyAKKyAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RQcmltaXRpdmUo Q29uZGl0aW9uIGNvbmQsIGNvbnN0IFZhbHVlT3BlcmFuZCYgdmFsdWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBsYWJlbCkKKy0gICAgICBERUZJTkVEX09OKGFy bSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0LCB4ODZfc2hhcmVkKTsKKysgICAgICBERUZJTkVEX09O KGFybSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0LCB4ODZfc2hhcmVkLCBwcGM2NCk7CisgCisgICBp bmxpbmUgdm9pZCBicmFuY2hUZXN0TWFnaWMoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IEFkZHJlc3Mm IGFkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVsKSBQ RVJfU0hBUkVEX0FSQ0g7CisgICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0TWFnaWMoQ29uZGl0aW9u IGNvbmQsIGNvbnN0IEJhc2VJbmRleCYgYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMYWJlbCogbGFiZWwpIFBFUl9TSEFSRURfQVJDSDsKKyAgIHRlbXBsYXRlIDxjbGFz cyBMPgorICAgaW5saW5lIHZvaWQgYnJhbmNoVGVzdE1hZ2ljKENvbmRpdGlvbiBjb25kLCBjb25z dCBWYWx1ZU9wZXJhbmQmIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwg bGFiZWwpCistICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2 X3NoYXJlZCk7CisrICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwg eDg2X3NoYXJlZCwgcHBjNjQpOworIAorICAgaW5saW5lIHZvaWQgYnJhbmNoVGVzdE1hZ2ljKENv bmRpdGlvbiBjb25kLCBjb25zdCBBZGRyZXNzJiB2YWxhZGRyLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEpTV2h5TWFnaWMgd2h5LCBMYWJlbCogbGFiZWwpIFBFUl9BUkNIOworIAor ICAgaW5saW5lIHZvaWQgYnJhbmNoVGVzdE1hZ2ljVmFsdWUoQ29uZGl0aW9uIGNvbmQsIGNvbnN0 IFZhbHVlT3BlcmFuZCYgdmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SlNXaHlNYWdpYyB3aHksIExhYmVsKiBsYWJlbCk7CisgCisgICB2b2lkIGJyYW5jaFRlc3RWYWx1 ZShDb25kaXRpb24gY29uZCwgY29uc3QgVmFsdWVPcGVyYW5kJiBsaHMsCitAQCAtMTgyOCw0MiAr MTgzNSw0MiBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlciA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlclNw ZWNpZmljIHsKKyAKKyAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RWYWx1ZShDb25kaXRpb24gY29u ZCwgY29uc3QgQmFzZUluZGV4JiBsaHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgVmFsdWVPcGVyYW5kJiByaHMsIExhYmVsKiBsYWJlbCkgUEVSX0FSQ0g7CisgCisgICAv LyBDaGVja3MgaWYgZ2l2ZW4gVmFsdWUgaXMgZXZhbHVhdGVkIHRvIHRydWUgb3IgZmFsc2UgaW4g YSBjb25kaXRpb24uCisgICAvLyBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgc2hvdWxkIG1hdGNoIHRo ZSB0eXBlIG9mIHRoZSBtZXRob2QuCisgICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0SW50MzJUcnV0 aHkoYm9vbCB0cnV0aHksIGNvbnN0IFZhbHVlT3BlcmFuZCYgdmFsdWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVsKQorLSAgICAgIERFRklORURfT04o YXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9zaGFyZWQpOworKyAgICAgIERFRklORURf T04oYXJtLCBhcm02NCwgbWlwczMyLCBtaXBzNjQsIHg4Nl9zaGFyZWQsIHBwYzY0KTsKKyAgIGlu bGluZSB2b2lkIGJyYW5jaFRlc3REb3VibGVUcnV0aHkoYm9vbCB0cnV0aHksIEZsb2F0UmVnaXN0 ZXIgcmVnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFi ZWwpIFBFUl9TSEFSRURfQVJDSDsKKyAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RCb29sZWFuVHJ1 dGh5KGJvb2wgdHJ1dGh5LCBjb25zdCBWYWx1ZU9wZXJhbmQmIHZhbHVlLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIGxhYmVsKSBQRVJfQVJDSDsKKyAgIGlu bGluZSB2b2lkIGJyYW5jaFRlc3RTdHJpbmdUcnV0aHkoYm9vbCB0cnV0aHksIGNvbnN0IFZhbHVl T3BlcmFuZCYgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExh YmVsKiBsYWJlbCkKKy0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0 LCB4ODZfc2hhcmVkKTsKKysgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwgbWlw czY0LCB4ODZfc2hhcmVkLCBwcGM2NCk7CisgICBpbmxpbmUgdm9pZCBicmFuY2hUZXN0QmlnSW50 VHJ1dGh5KGJvb2wgdHJ1dGh5LCBjb25zdCBWYWx1ZU9wZXJhbmQmIHZhbHVlLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYWJlbCogbGFiZWwpCistICAgICAgREVGSU5F RF9PTihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCk7CisrICAgICAgREVG SU5FRF9PTihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCwgcHBjNjQpOwor IAorICAgLy8gQ3JlYXRlIGFuIHVuY29uZGl0aW9uYWwgYnJhbmNoIHRvIHRoZSBhZGRyZXNzIGdp dmVuIGFzIGFyZ3VtZW50LgorICAgaW5saW5lIHZvaWQgYnJhbmNoVG9Db21wdXRlZEFkZHJlc3Mo Y29uc3QgQmFzZUluZGV4JiBhZGRyZXNzKSBQRVJfQVJDSDsKKyAKKyAgcHJpdmF0ZToKKyAgIHRl bXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBTLCB0eXBlbmFtZSBMPgorICAgaW5saW5lIHZv aWQgYnJhbmNoUHRySW1wbChDb25kaXRpb24gY29uZCwgY29uc3QgVCYgbGhzLCBjb25zdCBTJiBy aHMsIEwgbGFiZWwpCisgICAgICAgREVGSU5FRF9PTih4ODZfc2hhcmVkKTsKKyAKKyAgIHZvaWQg YnJhbmNoUHRySW5OdXJzZXJ5Q2h1bmtJbXBsKENvbmRpdGlvbiBjb25kLCBSZWdpc3RlciBwdHIs IExhYmVsKiBsYWJlbCkKKyAgICAgICBERUZJTkVEX09OKHg4Nik7CisgICB0ZW1wbGF0ZSA8dHlw ZW5hbWUgVD4KKyAgIHZvaWQgYnJhbmNoVmFsdWVJc051cnNlcnlDZWxsSW1wbChDb25kaXRpb24g Y29uZCwgY29uc3QgVCYgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmVnaXN0ZXIgdGVtcCwgTGFiZWwqIGxhYmVsKQorLSAgICAgIERFRklORURfT04oYXJtNjQs IHg2NCwgbWlwczY0KTsKKysgICAgICBERUZJTkVEX09OKGFybTY0LCB4NjQsIG1pcHM2NCwgcHBj NjQpOworIAorICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CisgICBpbmxpbmUgdm9pZCBicmFuY2hU ZXN0VW5kZWZpbmVkSW1wbChDb25kaXRpb24gY29uZCwgY29uc3QgVCYgdCwgTGFiZWwqIGxhYmVs KQorICAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgeDg2X3NoYXJlZCk7CisgICB0ZW1wbGF0 ZSA8dHlwZW5hbWUgVD4KKyAgIGlubGluZSB2b2lkIGJyYW5jaFRlc3RJbnQzMkltcGwoQ29uZGl0 aW9uIGNvbmQsIGNvbnN0IFQmIHQsIExhYmVsKiBsYWJlbCkKKyAgICAgICBERUZJTkVEX09OKGFy bSwgYXJtNjQsIHg4Nl9zaGFyZWQpOworICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitAQCAtMTky MywxMTYgKzE5MzAsMTE2IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyIDogcHVibGljIE1hY3JvQXNz ZW1ibGVyU3BlY2lmaWMgeworICAgaW5saW5lIHZvaWQgZmFsbGlibGVVbmJveFN0cmluZyhjb25z dCBUJiBzcmMsIFJlZ2lzdGVyIGRlc3QsIExhYmVsKiBmYWlsKTsKKyAgIHRlbXBsYXRlIDx0eXBl bmFtZSBUPgorICAgaW5saW5lIHZvaWQgZmFsbGlibGVVbmJveFN5bWJvbChjb25zdCBUJiBzcmMs IFJlZ2lzdGVyIGRlc3QsIExhYmVsKiBmYWlsKTsKKyAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgor ICAgaW5saW5lIHZvaWQgZmFsbGlibGVVbmJveEJpZ0ludChjb25zdCBUJiBzcmMsIFJlZ2lzdGVy IGRlc3QsIExhYmVsKiBmYWlsKTsKKyAKKyAgIGlubGluZSB2b2lkIGNtcDMyTW92ZTMyKENvbmRp dGlvbiBjb25kLCBSZWdpc3RlciBsaHMsIFJlZ2lzdGVyIHJocywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJlZ2lzdGVyIHNyYywgUmVnaXN0ZXIgZGVzdCkKKy0gICAgICBERUZJTkVEX09O KGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODZfc2hhcmVkKTsKKysgICAgICBERUZJTkVEX09O KGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODZfc2hhcmVkLCBwcGM2NCk7CisgCisgICBpbmxp bmUgdm9pZCBjbXAzMk1vdmUzMihDb25kaXRpb24gY29uZCwgUmVnaXN0ZXIgbGhzLCBjb25zdCBB ZGRyZXNzJiByaHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBzcmMsIFJl Z2lzdGVyIGRlc3QpCistICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwg eDg2X3NoYXJlZCk7CisrICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwg eDg2X3NoYXJlZCwgcHBjNjQpOworIAorICAgaW5saW5lIHZvaWQgY21wUHRyTW92ZVB0cihDb25k aXRpb24gY29uZCwgUmVnaXN0ZXIgbGhzLCBSZWdpc3RlciByaHMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJlZ2lzdGVyIHNyYywgUmVnaXN0ZXIgZGVzdCkgUEVSX0FSQ0g7CisgCisg ICBpbmxpbmUgdm9pZCBjbXBQdHJNb3ZlUHRyKENvbmRpdGlvbiBjb25kLCBSZWdpc3RlciBsaHMs IGNvbnN0IEFkZHJlc3MmIHJocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0 ZXIgc3JjLCBSZWdpc3RlciBkZXN0KSBQRVJfQVJDSDsKKyAKKyAgIGlubGluZSB2b2lkIGNtcDMy TG9hZDMyKENvbmRpdGlvbiBjb25kLCBSZWdpc3RlciBsaHMsIGNvbnN0IEFkZHJlc3MmIHJocywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEFkZHJlc3MmIHNyYywgUmVnaXN0ZXIg ZGVzdCkKKy0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODZfc2hh cmVkKTsKKysgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODZfc2hh cmVkLCBwcGM2NCk7CisgCisgICBpbmxpbmUgdm9pZCBjbXAzMkxvYWQzMihDb25kaXRpb24gY29u ZCwgUmVnaXN0ZXIgbGhzLCBSZWdpc3RlciByaHMsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBBZGRyZXNzJiBzcmMsIFJlZ2lzdGVyIGRlc3QpCistICAgICAgREVGSU5FRF9PTihh cm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2X3NoYXJlZCk7CisrICAgICAgREVGSU5FRF9PTihh cm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2X3NoYXJlZCwgcHBjNjQpOworIAorICAgaW5saW5l IHZvaWQgY21wMzJMb2FkUHRyKENvbmRpdGlvbiBjb25kLCBjb25zdCBBZGRyZXNzJiBsaHMsIElt bTMyIHJocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBZGRyZXNzJiBzcmMs IFJlZ2lzdGVyIGRlc3QpCistICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJl ZCwgeDg2LCB4NjQpOworKyAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQs IHg4NiwgeDY0LCBwcGM2NCk7CisgCisgICBpbmxpbmUgdm9pZCBjbXAzMk1vdmVQdHIoQ29uZGl0 aW9uIGNvbmQsIFJlZ2lzdGVyIGxocywgSW1tMzIgcmhzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJlZ2lzdGVyIHNyYywgUmVnaXN0ZXIgZGVzdCkKKy0gICAgICBERUZJTkVEX09OKGFy bSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODYsIHg2NCk7CisrICAgICAgREVGSU5FRF9PTihhcm0s IGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2LCB4NjQsIHBwYzY0KTsKKyAKKyAgIGlubGluZSB2b2lk IHRlc3QzMkxvYWRQdHIoQ29uZGl0aW9uIGNvbmQsIGNvbnN0IEFkZHJlc3MmIGFkZHIsIEltbTMy IG1hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEFkZHJlc3MmIHNyYywg UmVnaXN0ZXIgZGVzdCkKKy0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVk LCB4ODYsIHg2NCk7CisrICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwg eDg2LCB4NjQsIHBwYzY0KTsKKyAKKyAgIGlubGluZSB2b2lkIHRlc3QzMk1vdmVQdHIoQ29uZGl0 aW9uIGNvbmQsIGNvbnN0IEFkZHJlc3MmIGFkZHIsIEltbTMyIG1hc2ssCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHNyYywgUmVnaXN0ZXIgZGVzdCkKKy0gICAgICBERUZJ TkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODYsIHg2NCk7CisrICAgICAgREVGSU5F RF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2LCB4NjQsIHBwYzY0KTsKKyAKKyAgIC8v IENvbmRpdGlvbmFsIG1vdmUgZm9yIFNwZWN0cmUgbWl0aWdhdGlvbnMuCisgICBpbmxpbmUgdm9p ZCBzcGVjdHJlTW92ZVB0cihDb25kaXRpb24gY29uZCwgUmVnaXN0ZXIgc3JjLCBSZWdpc3RlciBk ZXN0KQorLSAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0 KTsKKysgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODYsIHg2NCwg cHBjNjQpOworIAorICAgLy8gWmVyb2VzIGRlc3QgaWYgdGhlIGNvbmRpdGlvbiBpcyB0cnVlLgor ICAgaW5saW5lIHZvaWQgc3BlY3RyZVplcm9SZWdpc3RlcihDb25kaXRpb24gY29uZCwgUmVnaXN0 ZXIgc2NyYXRjaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIg ZGVzdCkKKy0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODZfc2hh cmVkKTsKKysgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODZfc2hh cmVkLCBwcGM2NCk7CisgCisgICAvLyBQZXJmb3JtcyBhIGJvdW5kcyBjaGVjayBhbmQgemVyb2Vz IHRoZSBpbmRleCByZWdpc3RlciBpZiBvdXQtb2YtYm91bmRzCisgICAvLyAodG8gbWl0aWdhdGUg U3BlY3RyZSkuCisgIHByaXZhdGU6CisgICBpbmxpbmUgdm9pZCBzcGVjdHJlQm91bmRzQ2hlY2sz MihSZWdpc3RlciBpbmRleCwgY29uc3QgT3BlcmFuZCYgbGVuZ3RoLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgbWF5YmVTY3JhdGNoLCBMYWJlbCogZmFpbHVy ZSkKKyAgICAgICBERUZJTkVEX09OKHg4Nik7CisgCisgIHB1YmxpYzoKKyAgIGlubGluZSB2b2lk IHNwZWN0cmVCb3VuZHNDaGVjazMyKFJlZ2lzdGVyIGluZGV4LCBSZWdpc3RlciBsZW5ndGgsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBtYXliZVNjcmF0Y2gs IExhYmVsKiBmYWlsdXJlKQorLSAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwc19zaGFy ZWQsIHg4NiwgeDY0KTsKKysgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHNfc2hhcmVk LCB4ODYsIHg2NCwgcHBjNjQpOworICAgaW5saW5lIHZvaWQgc3BlY3RyZUJvdW5kc0NoZWNrMzIo UmVnaXN0ZXIgaW5kZXgsIGNvbnN0IEFkZHJlc3MmIGxlbmd0aCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIG1heWJlU2NyYXRjaCwgTGFiZWwqIGZhaWx1cmUp CistICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzX3NoYXJlZCwgeDg2LCB4NjQpOwor KyAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0LCBwcGM2 NCk7CisgCisgICBpbmxpbmUgdm9pZCBzcGVjdHJlQm91bmRzQ2hlY2tQdHIoUmVnaXN0ZXIgaW5k ZXgsIFJlZ2lzdGVyIGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZWdpc3RlciBtYXliZVNjcmF0Y2gsIExhYmVsKiBmYWlsdXJlKQorLSAgICAgIERFRklORURf T04oYXJtLCBhcm02NCwgbWlwc19zaGFyZWQsIHg4NiwgeDY0KTsKKysgICAgICBERUZJTkVEX09O KGFybSwgYXJtNjQsIG1pcHNfc2hhcmVkLCB4ODYsIHg2NCwgcHBjNjQpOworICAgaW5saW5lIHZv aWQgc3BlY3RyZUJvdW5kc0NoZWNrUHRyKFJlZ2lzdGVyIGluZGV4LCBjb25zdCBBZGRyZXNzJiBs ZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgbWF5 YmVTY3JhdGNoLCBMYWJlbCogZmFpbHVyZSkKKy0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQs IG1pcHNfc2hhcmVkLCB4ODYsIHg2NCk7CisrICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBt aXBzX3NoYXJlZCwgeDg2LCB4NjQsIHBwYzY0KTsKKyAKKyAgIC8vID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor ICAgLy8gQ2Fub25pY2FsaXphdGlvbiBwcmltaXRpdmVzLgorICAgaW5saW5lIHZvaWQgY2Fub25p Y2FsaXplRG91YmxlKEZsb2F0UmVnaXN0ZXIgcmVnKTsKKyAgIGlubGluZSB2b2lkIGNhbm9uaWNh bGl6ZURvdWJsZUlmRGV0ZXJtaW5pc3RpYyhGbG9hdFJlZ2lzdGVyIHJlZyk7CisgCisgICBpbmxp bmUgdm9pZCBjYW5vbmljYWxpemVGbG9hdChGbG9hdFJlZ2lzdGVyIHJlZyk7CisgICBpbmxpbmUg dm9pZCBjYW5vbmljYWxpemVGbG9hdElmRGV0ZXJtaW5pc3RpYyhGbG9hdFJlZ2lzdGVyIHJlZyk7 CisgCisgIHB1YmxpYzoKKyAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgLy8gTWVtb3J5IGFjY2Vz cyBwcmltaXRpdmVzLgorICAgaW5saW5lIHZvaWQgc3RvcmVVbmNhbm9uaWNhbGl6ZWREb3VibGUo RmxvYXRSZWdpc3RlciBzcmMsIGNvbnN0IEFkZHJlc3MmIGRlc3QpCistICAgICAgREVGSU5FRF9P Tih4ODZfc2hhcmVkLCBhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCk7CisrICAgICAgREVGSU5F RF9PTih4ODZfc2hhcmVkLCBhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgcHBjNjQpOworICAg aW5saW5lIHZvaWQgc3RvcmVVbmNhbm9uaWNhbGl6ZWREb3VibGUoRmxvYXRSZWdpc3RlciBzcmMs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBCYXNlSW5k ZXgmIGRlc3QpCistICAgICAgREVGSU5FRF9PTih4ODZfc2hhcmVkLCBhcm0sIGFybTY0LCBtaXBz MzIsIG1pcHM2NCk7CisrICAgICAgREVGSU5FRF9PTih4ODZfc2hhcmVkLCBhcm0sIGFybTY0LCBt aXBzMzIsIG1pcHM2NCwgcHBjNjQpOworICAgaW5saW5lIHZvaWQgc3RvcmVVbmNhbm9uaWNhbGl6 ZWREb3VibGUoRmxvYXRSZWdpc3RlciBzcmMsIGNvbnN0IE9wZXJhbmQmIGRlc3QpCisgICAgICAg REVGSU5FRF9PTih4ODZfc2hhcmVkKTsKKyAKKyAgIHRlbXBsYXRlIDxjbGFzcyBUPgorICAgaW5s aW5lIHZvaWQgc3RvcmVEb3VibGUoRmxvYXRSZWdpc3RlciBzcmMsIGNvbnN0IFQmIGRlc3QpOwor IAorICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICBpbmxpbmUgdm9pZCBib3hEb3VibGUoRmxvYXRS ZWdpc3RlciBzcmMsIGNvbnN0IFQmIGRlc3QpOworIAorICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJT cGVjaWZpYzo6Ym94RG91YmxlOworIAorICAgaW5saW5lIHZvaWQgc3RvcmVVbmNhbm9uaWNhbGl6 ZWRGbG9hdDMyKEZsb2F0UmVnaXN0ZXIgc3JjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IEFkZHJlc3MmIGRlc3QpCistICAgICAgREVGSU5FRF9PTih4 ODZfc2hhcmVkLCBhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCk7CisrICAgICAgREVGSU5FRF9P Tih4ODZfc2hhcmVkLCBhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgcHBjNjQpOworICAgaW5s aW5lIHZvaWQgc3RvcmVVbmNhbm9uaWNhbGl6ZWRGbG9hdDMyKEZsb2F0UmVnaXN0ZXIgc3JjLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJhc2VJbmRl eCYgZGVzdCkKKy0gICAgICBERUZJTkVEX09OKHg4Nl9zaGFyZWQsIGFybSwgYXJtNjQsIG1pcHMz MiwgbWlwczY0KTsKKysgICAgICBERUZJTkVEX09OKHg4Nl9zaGFyZWQsIGFybSwgYXJtNjQsIG1p cHMzMiwgbWlwczY0LCBwcGM2NCk7CisgICBpbmxpbmUgdm9pZCBzdG9yZVVuY2Fub25pY2FsaXpl ZEZsb2F0MzIoRmxvYXRSZWdpc3RlciBzcmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgT3BlcmFuZCYgZGVzdCkKKyAgICAgICBERUZJTkVEX09OKHg4 Nl9zaGFyZWQpOworIAorICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICBpbmxpbmUgdm9pZCBzdG9y ZUZsb2F0MzIoRmxvYXRSZWdpc3RlciBzcmMsIGNvbnN0IFQmIGRlc3QpOworIAorICAgdGVtcGxh dGUgPHR5cGVuYW1lIFQ+CitAQCAtMzQ3MCwyMCArMzQ3NywyMCBAQCBjbGFzcyBNYWNyb0Fzc2Vt YmxlciA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlclNwZWNpZmljIHsKKyAgICAgICBERUZJTkVEX09O KHg4NiwgeDY0KTsKKyAKKyAgcHVibGljOgorICAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAvLyBD b252ZXJ0IGZsb2F0aW5nIHBvaW50LgorIAorICAgLy8gdGVtcCByZXF1aXJlZCBvbiB4ODYgYW5k IHg2NDsgbXVzdCBiZSB1bmRlZmluZWQgb24gbWlwczY0LgorICAgdm9pZCBjb252ZXJ0VUludDY0 VG9GbG9hdDMyKFJlZ2lzdGVyNjQgc3JjLCBGbG9hdFJlZ2lzdGVyIGRlc3QsIFJlZ2lzdGVyIHRl bXApCistICAgICAgREVGSU5FRF9PTihhcm02NCwgbWlwczY0LCB4NjQsIHg4Nik7CisrICAgICAg REVGSU5FRF9PTihhcm02NCwgbWlwczY0LCB4NjQsIHg4NiwgcHBjNjQpOworIAorICAgdm9pZCBj b252ZXJ0SW50NjRUb0Zsb2F0MzIoUmVnaXN0ZXI2NCBzcmMsIEZsb2F0UmVnaXN0ZXIgZGVzdCkK Ky0gICAgICBERUZJTkVEX09OKGFybTY0LCBtaXBzNjQsIHg2NCwgeDg2KTsKKysgICAgICBERUZJ TkVEX09OKGFybTY0LCBtaXBzNjQsIHg2NCwgeDg2LCBwcGM2NCk7CisgCisgICBib29sIGNvbnZl cnRVSW50NjRUb0RvdWJsZU5lZWRzVGVtcCgpIFBFUl9BUkNIOworIAorICAgLy8gdGVtcCByZXF1 aXJlZCB3aGVuIGNvbnZlcnRVSW50NjRUb0RvdWJsZU5lZWRzVGVtcCgpIHJldHVybnMgdHJ1ZS4K KyAgIHZvaWQgY29udmVydFVJbnQ2NFRvRG91YmxlKFJlZ2lzdGVyNjQgc3JjLCBGbG9hdFJlZ2lz dGVyIGRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciB0ZW1wKSBQ RVJfQVJDSDsKKyAKKyAgIHZvaWQgY29udmVydEludDY0VG9Eb3VibGUoUmVnaXN0ZXI2NCBzcmMs IEZsb2F0UmVnaXN0ZXIgZGVzdCkgUEVSX0FSQ0g7CitAQCAtMzUxNCwyOSArMzUyMSwyOSBAQCBj bGFzcyBNYWNyb0Fzc2VtYmxlciA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlclNwZWNpZmljIHsKKyAg IC8vCisgICAvLyBPbiAzMi1iaXQgc3lzdGVtcyBmb3IgYm90aCB3YXNtIGFuZCBhc20uanMsIGFu ZCBvbiA2NC1iaXQgc3lzdGVtcyBmb3IKKyAgIC8vIGFzbS5qcywgaGVhcCBsZW5ndGhzIGFyZSBs aW1pdGVkIHRvIDJHQi4gIE9uIDY0LWJpdCBzeXN0ZW1zIGZvciB3YXNtLAorICAgLy8gMzItYml0 IGhlYXAgbGVuZ3RocyBhcmUgbGltaXRlZCB0byA0R0IsIGFuZCA2NC1iaXQgaGVhcCBsZW5ndGhz IHdpbGwgYmUKKyAgIC8vIGxpbWl0ZWQgdG8gc29tZXRoaW5nIG11Y2ggbGFyZ2VyLgorIAorICAg dm9pZCB3YXNtQm91bmRzQ2hlY2szMihDb25kaXRpb24gY29uZCwgUmVnaXN0ZXIgaW5kZXgsCisg ICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIGJvdW5kc0NoZWNrTGltaXQsIExhYmVs KiBsYWJlbCkKKy0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0LCB4 ODZfc2hhcmVkKTsKKysgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0 LCB4ODZfc2hhcmVkLCBwcGM2NCk7CisgCisgICB2b2lkIHdhc21Cb3VuZHNDaGVjazMyKENvbmRp dGlvbiBjb25kLCBSZWdpc3RlciBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQWRk cmVzcyBib3VuZHNDaGVja0xpbWl0LCBMYWJlbCogbGFiZWwpCistICAgICAgREVGSU5FRF9PTihh cm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCk7CisrICAgICAgREVGSU5FRF9P Tihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDg2X3NoYXJlZCwgcHBjNjQpOworIAorICAg dm9pZCB3YXNtQm91bmRzQ2hlY2s2NChDb25kaXRpb24gY29uZCwgUmVnaXN0ZXI2NCBpbmRleCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXI2NCBib3VuZHNDaGVja0xpbWl0LCBM YWJlbCogbGFiZWwpCistICAgICAgREVGSU5FRF9PTihhcm02NCwgbWlwczY0LCB4NjQpOworKyAg ICAgIERFRklORURfT04oYXJtNjQsIG1pcHM2NCwgeDY0LCBwcGM2NCk7CisgCisgICB2b2lkIHdh c21Cb3VuZHNDaGVjazY0KENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcjY0IGluZGV4LAorICAgICAg ICAgICAgICAgICAgICAgICAgICBBZGRyZXNzIGJvdW5kc0NoZWNrTGltaXQsIExhYmVsKiBsYWJl bCkKKy0gICAgICBERUZJTkVEX09OKGFybTY0LCBtaXBzNjQsIHg2NCk7CisrICAgICAgREVGSU5F RF9PTihhcm02NCwgbWlwczY0LCB4NjQsIHBwYzY0KTsKKyAKKyAgIC8vIEVhY2ggd2FzbSBsb2Fk L3N0b3JlIGluc3RydWN0aW9uIGFwcGVuZHMgaXRzIG93biB3YXNtOjpUcmFwOjpPdXRPZkJvdW5k cy4KKyAgIHZvaWQgd2FzbUxvYWQoY29uc3Qgd2FzbTo6TWVtb3J5QWNjZXNzRGVzYyYgYWNjZXNz LCBPcGVyYW5kIHNyY0FkZHIsCisgICAgICAgICAgICAgICAgIEFueVJlZ2lzdGVyIG91dCkgREVG SU5FRF9PTih4ODYsIHg2NCk7CisgICB2b2lkIHdhc21Mb2FkSTY0KGNvbnN0IHdhc206Ok1lbW9y eUFjY2Vzc0Rlc2MmIGFjY2VzcywgT3BlcmFuZCBzcmNBZGRyLAorICAgICAgICAgICAgICAgICAg ICBSZWdpc3RlcjY0IG91dCkgREVGSU5FRF9PTih4ODYsIHg2NCk7CisgICB2b2lkIHdhc21TdG9y ZShjb25zdCB3YXNtOjpNZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3MsIEFueVJlZ2lzdGVyIHZhbHVl LAorICAgICAgICAgICAgICAgICAgT3BlcmFuZCBkc3RBZGRyKSBERUZJTkVEX09OKHg4NiwgeDY0 KTsKK0BAIC0zNTQ2LDI2ICszNTUzLDI2IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyIDogcHVibGlj IE1hY3JvQXNzZW1ibGVyU3BlY2lmaWMgeworICAgLy8gRm9yIGFsbCB0aGUgQVJNL01JUFMgd2Fz bUxvYWQgYW5kIHdhc21TdG9yZSBmdW5jdGlvbnMgYmVsb3csIGBwdHJgCisgICAvLyBNVVNUIGVx dWFsIGBwdHJTY3JhdGNoYCwgYW5kIHRoYXQgcmVnaXN0ZXIgd2lsbCBiZSB1cGRhdGVkIGJhc2Vk IG9uCisgICAvLyBjb25kaXRpb25zIGxpc3RlZCBiZWxvdyAod2hlcmUgaXQgaXMgb25seSBtZW50 aW9uZWQgYXMgYHB0cmApLgorIAorICAgLy8gYHB0cmAgd2lsbCBiZSB1cGRhdGVkIGlmIGFjY2Vz cy5vZmZzZXQoKSAhPSAwIG9yIGFjY2Vzcy50eXBlKCkgPT0KKyAgIC8vIFNjYWxhcjo6SW50NjQu CisgICB2b2lkIHdhc21Mb2FkKGNvbnN0IHdhc206Ok1lbW9yeUFjY2Vzc0Rlc2MmIGFjY2Vzcywg UmVnaXN0ZXIgbWVtb3J5QmFzZSwKKyAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcHRyLCBSZWdp c3RlciBwdHJTY3JhdGNoLCBBbnlSZWdpc3RlciBvdXRwdXQpCistICAgICAgREVGSU5FRF9PTihh cm0sIG1pcHNfc2hhcmVkKTsKKysgICAgICBERUZJTkVEX09OKGFybSwgbWlwc19zaGFyZWQsIHBw YzY0KTsKKyAgIHZvaWQgd2FzbUxvYWRJNjQoY29uc3Qgd2FzbTo6TWVtb3J5QWNjZXNzRGVzYyYg YWNjZXNzLCBSZWdpc3RlciBtZW1vcnlCYXNlLAorICAgICAgICAgICAgICAgICAgICBSZWdpc3Rl ciBwdHIsIFJlZ2lzdGVyIHB0clNjcmF0Y2gsIFJlZ2lzdGVyNjQgb3V0cHV0KQorLSAgICAgIERF RklORURfT04oYXJtLCBtaXBzMzIsIG1pcHM2NCk7CisrICAgICAgREVGSU5FRF9PTihhcm0sIG1p cHMzMiwgbWlwczY0LCBwcGM2NCk7CisgICB2b2lkIHdhc21TdG9yZShjb25zdCB3YXNtOjpNZW1v cnlBY2Nlc3NEZXNjJiBhY2Nlc3MsIEFueVJlZ2lzdGVyIHZhbHVlLAorICAgICAgICAgICAgICAg ICAgUmVnaXN0ZXIgbWVtb3J5QmFzZSwgUmVnaXN0ZXIgcHRyLCBSZWdpc3RlciBwdHJTY3JhdGNo KQorLSAgICAgIERFRklORURfT04oYXJtLCBtaXBzX3NoYXJlZCk7CisrICAgICAgREVGSU5FRF9P Tihhcm0sIG1pcHNfc2hhcmVkLCBwcGM2NCk7CisgICB2b2lkIHdhc21TdG9yZUk2NChjb25zdCB3 YXNtOjpNZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3MsIFJlZ2lzdGVyNjQgdmFsdWUsCisgICAgICAg ICAgICAgICAgICAgICBSZWdpc3RlciBtZW1vcnlCYXNlLCBSZWdpc3RlciBwdHIsIFJlZ2lzdGVy IHB0clNjcmF0Y2gpCistICAgICAgREVGSU5FRF9PTihhcm0sIG1pcHMzMiwgbWlwczY0KTsKKysg ICAgICBERUZJTkVEX09OKGFybSwgbWlwczMyLCBtaXBzNjQsIHBwYzY0KTsKKyAKKyAgIC8vIFRo ZXNlIGFjY2VwdCBnZW5lcmFsIG1lbW9yeUJhc2UgKyBwdHIgKyBvZmZzZXQgKGluIGBhY2Nlc3Ng KTsgdGhlIG9mZnNldCBpcworICAgLy8gYWx3YXlzIHNtYWxsZXIgdGhhbiB0aGUgZ3VhcmQgcmVn aW9uLiAgVGhleSB3aWxsIGluc2VydCBhbiBhZGRpdGlvbmFsIGFkZAorICAgLy8gaWYgdGhlIG9m ZnNldCBpcyBub256ZXJvLCBhbmQgb2YgY291cnNlIHRoYXQgYWRkIG1heSByZXF1aXJlIGEgdGVt cG9yYXJ5CisgICAvLyByZWdpc3RlciBmb3IgdGhlIG9mZnNldCBpZiB0aGUgb2Zmc2V0IGlzIGxh cmdlLCBhbmQgaW5zdHJ1Y3Rpb25zIHRvIHNldCBpdAorICAgLy8gdXAuCisgICB2b2lkIHdhc21M b2FkKGNvbnN0IHdhc206Ok1lbW9yeUFjY2Vzc0Rlc2MmIGFjY2VzcywgUmVnaXN0ZXIgbWVtb3J5 QmFzZSwKKyAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcHRyLCBBbnlSZWdpc3RlciBvdXRwdXQp IERFRklORURfT04oYXJtNjQpOworQEAgLTM1NzUsMTAwICszNTgyLDEwMCBAQCBjbGFzcyBNYWNy b0Fzc2VtYmxlciA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlclNwZWNpZmljIHsKKyAgICAgICAgICAg ICAgICAgIFJlZ2lzdGVyIG1lbW9yeUJhc2UsIFJlZ2lzdGVyIHB0cikgREVGSU5FRF9PTihhcm02 NCk7CisgICB2b2lkIHdhc21TdG9yZUk2NChjb25zdCB3YXNtOjpNZW1vcnlBY2Nlc3NEZXNjJiBh Y2Nlc3MsIFJlZ2lzdGVyNjQgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBt ZW1vcnlCYXNlLCBSZWdpc3RlciBwdHIpIERFRklORURfT04oYXJtNjQpOworIAorICAgLy8gYHB0 cmAgd2lsbCBhbHdheXMgYmUgdXBkYXRlZC4KKyAgIHZvaWQgd2FzbVVuYWxpZ25lZExvYWQoY29u c3Qgd2FzbTo6TWVtb3J5QWNjZXNzRGVzYyYgYWNjZXNzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICBSZWdpc3RlciBtZW1vcnlCYXNlLCBSZWdpc3RlciBwdHIsIFJlZ2lzdGVyIHB0clNjcmF0 Y2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIG91dHB1dCwgUmVnaXN0ZXIg dG1wKQorLSAgICAgIERFRklORURfT04obWlwczMyLCBtaXBzNjQpOworKyAgICAgIERFRklORURf T04obWlwczMyLCBtaXBzNjQsIHBwYzY0KTsKKyAKKyAgIC8vIE1JUFM6IGBwdHJgIHdpbGwgYWx3 YXlzIGJlIHVwZGF0ZWQuCisgICB2b2lkIHdhc21VbmFsaWduZWRMb2FkRlAoY29uc3Qgd2FzbTo6 TWVtb3J5QWNjZXNzRGVzYyYgYWNjZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl Z2lzdGVyIG1lbW9yeUJhc2UsIFJlZ2lzdGVyIHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZWdpc3RlciBwdHJTY3JhdGNoLCBGbG9hdFJlZ2lzdGVyIG91dHB1dCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciB0bXAxLCBSZWdpc3RlciB0bXAyLCBSZWdpc3Rl ciB0bXAzKQorLSAgICAgIERFRklORURfT04obWlwczMyLCBtaXBzNjQpOworKyAgICAgIERFRklO RURfT04obWlwczMyLCBtaXBzNjQsIHBwYzY0KTsKKyAKKyAgIC8vIGBwdHJgIHdpbGwgYWx3YXlz IGJlIHVwZGF0ZWQuCisgICB2b2lkIHdhc21VbmFsaWduZWRMb2FkSTY0KGNvbnN0IHdhc206Ok1l bW9yeUFjY2Vzc0Rlc2MmIGFjY2VzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVn aXN0ZXIgbWVtb3J5QmFzZSwgUmVnaXN0ZXIgcHRyLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZWdpc3RlciBwdHJTY3JhdGNoLCBSZWdpc3RlcjY0IG91dHB1dCwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgdG1wKSBERUZJTkVEX09OKG1pcHMzMiwgbWlwczY0 KTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgdG1wKSBERUZJTkVEX09O KG1pcHMzMiwgbWlwczY0LCBwcGM2NCk7CisgCisgICAvLyBNSVBTOiBgcHRyYCB3aWxsIGFsd2F5 cyBiZSB1cGRhdGVkLgorICAgdm9pZCB3YXNtVW5hbGlnbmVkU3RvcmUoY29uc3Qgd2FzbTo6TWVt b3J5QWNjZXNzRGVzYyYgYWNjZXNzLCBSZWdpc3RlciB2YWx1ZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJlZ2lzdGVyIG1lbW9yeUJhc2UsIFJlZ2lzdGVyIHB0ciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHB0clNjcmF0Y2gsIFJlZ2lzdGVyIHRtcCkKKy0gICAg ICBERUZJTkVEX09OKG1pcHMzMiwgbWlwczY0KTsKKysgICAgICBERUZJTkVEX09OKG1pcHMzMiwg bWlwczY0LCBwcGM2NCk7CisgCisgICAvLyBgcHRyYCB3aWxsIGFsd2F5cyBiZSB1cGRhdGVkLgor ICAgdm9pZCB3YXNtVW5hbGlnbmVkU3RvcmVGUChjb25zdCB3YXNtOjpNZW1vcnlBY2Nlc3NEZXNj JiBhY2Nlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZsb2F0UmVnaXN0ZXIgZmxv YXRWYWx1ZSwgUmVnaXN0ZXIgbWVtb3J5QmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmVnaXN0ZXIgcHRyLCBSZWdpc3RlciBwdHJTY3JhdGNoLCBSZWdpc3RlciB0bXApCistICAg ICAgREVGSU5FRF9PTihtaXBzMzIsIG1pcHM2NCk7CisrICAgICAgREVGSU5FRF9PTihtaXBzMzIs IG1pcHM2NCwgcHBjNjQpOworIAorICAgLy8gYHB0cmAgd2lsbCBhbHdheXMgYmUgdXBkYXRlZC4K KyAgIHZvaWQgd2FzbVVuYWxpZ25lZFN0b3JlSTY0KGNvbnN0IHdhc206Ok1lbW9yeUFjY2Vzc0Rl c2MmIGFjY2VzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyNjQgdmFs dWUsIFJlZ2lzdGVyIG1lbW9yeUJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZWdpc3RlciBwdHIsIFJlZ2lzdGVyIHB0clNjcmF0Y2gsIFJlZ2lzdGVyIHRtcCkKKy0gICAgICBE RUZJTkVEX09OKG1pcHMzMiwgbWlwczY0KTsKKysgICAgICBERUZJTkVEX09OKG1pcHMzMiwgbWlw czY0LCBwcGM2NCk7CisgCisgICAvLyB3YXNtIHNwZWNpZmljIG1ldGhvZHMsIHVzZWQgaW4gYm90 aCB0aGUgd2FzbSBiYXNlbGluZSBjb21waWxlciBhbmQgaW9uLgorIAorICAgLy8gVGhlIHRydW5j YXRlLXRvLWludDMyIG1ldGhvZHMgZG8gbm90IGJpbmQgdGhlIHJlam9pbiBsYWJlbDsgY2xpZW50 cyBtdXN0CisgICAvLyBkbyBzbyBpZiBvb2xXYXNtVHJ1bmNhdGVDaGVja0Y2NFRvSTMyKCkgY2Fu IGp1bXAgdG8gaXQuCisgICB2b2lkIHdhc21UcnVuY2F0ZURvdWJsZVRvVUludDMyKEZsb2F0UmVn aXN0ZXIgaW5wdXQsIFJlZ2lzdGVyIG91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYm9vbCBpc1NhdHVyYXRpbmcsIExhYmVsKiBvb2xFbnRyeSkgUEVSX0FSQ0g7Cisg ICB2b2lkIHdhc21UcnVuY2F0ZURvdWJsZVRvSW50MzIoRmxvYXRSZWdpc3RlciBpbnB1dCwgUmVn aXN0ZXIgb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNT YXR1cmF0aW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBvb2xF bnRyeSkgUEVSX1NIQVJFRF9BUkNIOworICAgdm9pZCBvb2xXYXNtVHJ1bmNhdGVDaGVja0Y2NFRv STMyKEZsb2F0UmVnaXN0ZXIgaW5wdXQsIFJlZ2lzdGVyIG91dHB1dCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBUcnVuY0ZsYWdzIGZsYWdzLCB3YXNtOjpCeXRlY29kZU9m ZnNldCBvZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIHJl am9pbikKKy0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIHg4Nl9zaGFyZWQsIG1pcHNfc2hh cmVkKTsKKysgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIHg4Nl9zaGFyZWQsIG1pcHNfc2hh cmVkLCBwcGM2NCk7CisgCisgICB2b2lkIHdhc21UcnVuY2F0ZUZsb2F0MzJUb1VJbnQzMihGbG9h dFJlZ2lzdGVyIGlucHV0LCBSZWdpc3RlciBvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBib29sIGlzU2F0dXJhdGluZywgTGFiZWwqIG9vbEVudHJ5KSBQRVJfQVJD SDsKKyAgIHZvaWQgd2FzbVRydW5jYXRlRmxvYXQzMlRvSW50MzIoRmxvYXRSZWdpc3RlciBpbnB1 dCwgUmVnaXN0ZXIgb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi b29sIGlzU2F0dXJhdGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFi ZWwqIG9vbEVudHJ5KSBQRVJfU0hBUkVEX0FSQ0g7CisgICB2b2lkIG9vbFdhc21UcnVuY2F0ZUNo ZWNrRjMyVG9JMzIoRmxvYXRSZWdpc3RlciBpbnB1dCwgUmVnaXN0ZXIgb3V0cHV0LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRydW5jRmxhZ3MgZmxhZ3MsIHdhc206OkJ5 dGVjb2RlT2Zmc2V0IG9mZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM YWJlbCogcmVqb2luKQorLSAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgeDg2X3NoYXJlZCwg bWlwc19zaGFyZWQpOworKyAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgeDg2X3NoYXJlZCwg bWlwc19zaGFyZWQsIHBwYzY0KTsKKyAKKyAgIC8vIFRoZSB0cnVuY2F0ZS10by1pbnQ2NCBtZXRo b2RzIHdpbGwgYWx3YXlzIGJpbmQgdGhlIGBvb2xSZWpvaW5gIGxhYmVsCisgICAvLyBhZnRlciB0 aGUgbGFzdCBlbWl0dGVkIGluc3RydWN0aW9uLgorICAgdm9pZCB3YXNtVHJ1bmNhdGVEb3VibGVU b0ludDY0KEZsb2F0UmVnaXN0ZXIgaW5wdXQsIFJlZ2lzdGVyNjQgb3V0cHV0LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNTYXR1cmF0aW5nLCBMYWJlbCogb29sRW50 cnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGFiZWwqIG9vbFJlam9pbiwg RmxvYXRSZWdpc3RlciB0ZW1wRG91YmxlKQorLSAgICAgIERFRklORURfT04oYXJtNjQsIHg4Niwg eDY0LCBtaXBzNjQpOworKyAgICAgIERFRklORURfT04oYXJtNjQsIHg4NiwgeDY0LCBtaXBzNjQs IHBwYzY0KTsKKyAgIHZvaWQgd2FzbVRydW5jYXRlRG91YmxlVG9VSW50NjQoRmxvYXRSZWdpc3Rl ciBpbnB1dCwgUmVnaXN0ZXI2NCBvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJvb2wgaXNTYXR1cmF0aW5nLCBMYWJlbCogb29sRW50cnksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBvb2xSZWpvaW4sIEZsb2F0UmVnaXN0ZXIgdGVt cERvdWJsZSkKKy0gICAgICBERUZJTkVEX09OKGFybTY0LCB4ODYsIHg2NCwgbWlwczY0KTsKKysg ICAgICBERUZJTkVEX09OKGFybTY0LCB4ODYsIHg2NCwgbWlwczY0LCBwcGM2NCk7CisgICB2b2lk IG9vbFdhc21UcnVuY2F0ZUNoZWNrRjY0VG9JNjQoRmxvYXRSZWdpc3RlciBpbnB1dCwgUmVnaXN0 ZXI2NCBvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJ1bmNG bGFncyBmbGFncywgd2FzbTo6Qnl0ZWNvZGVPZmZzZXQgb2ZmLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExhYmVsKiByZWpvaW4pCistICAgICAgREVGSU5FRF9PTihhcm0s IGFybTY0LCB4ODZfc2hhcmVkLCBtaXBzX3NoYXJlZCk7CisrICAgICAgREVGSU5FRF9PTihhcm0s IGFybTY0LCB4ODZfc2hhcmVkLCBtaXBzX3NoYXJlZCwgcHBjNjQpOworIAorICAgdm9pZCB3YXNt VHJ1bmNhdGVGbG9hdDMyVG9JbnQ2NChGbG9hdFJlZ2lzdGVyIGlucHV0LCBSZWdpc3RlcjY0IG91 dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1NhdHVyYXRp bmcsIExhYmVsKiBvb2xFbnRyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGFiZWwqIG9vbFJlam9pbiwgRmxvYXRSZWdpc3RlciB0ZW1wRG91YmxlKQorLSAgICAgIERFRklO RURfT04oYXJtNjQsIHg4NiwgeDY0LCBtaXBzNjQpOworKyAgICAgIERFRklORURfT04oYXJtNjQs IHg4NiwgeDY0LCBtaXBzNjQsIHBwYzY0KTsKKyAgIHZvaWQgd2FzbVRydW5jYXRlRmxvYXQzMlRv VUludDY0KEZsb2F0UmVnaXN0ZXIgaW5wdXQsIFJlZ2lzdGVyNjQgb3V0cHV0LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1NhdHVyYXRpbmcsIExhYmVsKiBvb2xF bnRyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiBvb2xSZWpv aW4sIEZsb2F0UmVnaXN0ZXIgdGVtcERvdWJsZSkKKy0gICAgICBERUZJTkVEX09OKGFybTY0LCB4 ODYsIHg2NCwgbWlwczY0KTsKKysgICAgICBERUZJTkVEX09OKGFybTY0LCB4ODYsIHg2NCwgbWlw czY0LCBwcGM2NCk7CisgICB2b2lkIG9vbFdhc21UcnVuY2F0ZUNoZWNrRjMyVG9JNjQoRmxvYXRS ZWdpc3RlciBpbnB1dCwgUmVnaXN0ZXI2NCBvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVHJ1bmNGbGFncyBmbGFncywgd2FzbTo6Qnl0ZWNvZGVPZmZzZXQgb2Zm LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsKiByZWpvaW4pCist ICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCB4ODZfc2hhcmVkLCBtaXBzX3NoYXJlZCk7Cisr ICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCB4ODZfc2hhcmVkLCBtaXBzX3NoYXJlZCwgcHBj NjQpOworIAorICAgLy8gVGhpcyBmdW5jdGlvbiB0YWtlcyBjYXJlIG9mIGxvYWRpbmcgdGhlIGNh bGxlZSdzIFRMUyBhbmQgcGlubmVkIHJlZ3MgYnV0CisgICAvLyBpdCBpcyB0aGUgY2FsbGVyJ3Mg cmVzcG9uc2liaWxpdHkgdG8gc2F2ZS9yZXN0b3JlIFRMUyBvciBwaW5uZWQgcmVncy4KKyAgIENv ZGVPZmZzZXQgd2FzbUNhbGxJbXBvcnQoY29uc3Qgd2FzbTo6Q2FsbFNpdGVEZXNjJiBkZXNjLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3YXNtOjpDYWxsZWVEZXNjJiBjYWxs ZWUpOworIAorICAgLy8gV2FzbVRhYmxlQ2FsbEluZGV4UmVnIG11c3QgY29udGFpbiB0aGUgaW5k ZXggb2YgdGhlIGluZGlyZWN0IGNhbGwuCisgICBDb2RlT2Zmc2V0IHdhc21DYWxsSW5kaXJlY3Qo Y29uc3Qgd2FzbTo6Q2FsbFNpdGVEZXNjJiBkZXNjLAorQEAgLTM3MzUsNzIgKzM3NDIsNzIgQEAg Y2xhc3MgTWFjcm9Bc3NlbWJsZXIgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXJTcGVjaWZpYyB7Cisg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBCYXNlSW5kZXgmIG1lbSwgUmVnaXN0ZXIgZXhw ZWN0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciByZXBsYWNlbWVudCwgUmVn aXN0ZXIgb3V0cHV0KQorICAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgeDg2X3NoYXJlZCk7 CisgCisgICB2b2lkIGNvbXBhcmVFeGNoYW5nZShTY2FsYXI6OlR5cGUgdHlwZSwgY29uc3QgU3lu Y2hyb25pemF0aW9uJiBzeW5jLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQWRkcmVz cyYgbWVtLCBSZWdpc3RlciBleHBlY3RlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lz dGVyIHJlcGxhY2VtZW50LCBSZWdpc3RlciB2YWx1ZVRlbXAsCisgICAgICAgICAgICAgICAgICAg ICAgICBSZWdpc3RlciBvZmZzZXRUZW1wLCBSZWdpc3RlciBtYXNrVGVtcCwgUmVnaXN0ZXIgb3V0 cHV0KQorLSAgICAgIERFRklORURfT04obWlwc19zaGFyZWQpOworKyAgICAgIERFRklORURfT04o bWlwc19zaGFyZWQsIHBwYzY0KTsKKyAKKyAgIHZvaWQgY29tcGFyZUV4Y2hhbmdlKFNjYWxhcjo6 VHlwZSB0eXBlLCBjb25zdCBTeW5jaHJvbml6YXRpb24mIHN5bmMsCisgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBCYXNlSW5kZXgmIG1lbSwgUmVnaXN0ZXIgZXhwZWN0ZWQsCisgICAgICAg ICAgICAgICAgICAgICAgICBSZWdpc3RlciByZXBsYWNlbWVudCwgUmVnaXN0ZXIgdmFsdWVUZW1w LAorICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgb2Zmc2V0VGVtcCwgUmVnaXN0ZXIg bWFza1RlbXAsIFJlZ2lzdGVyIG91dHB1dCkKKy0gICAgICBERUZJTkVEX09OKG1pcHNfc2hhcmVk KTsKKysgICAgICBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBwcGM2NCk7CisgCisgICAvLyB4ODY6 IGBleHBlY3RlZGAgYW5kIGBvdXRwdXRgIG11c3QgYmUgZWR4OmVheDsgYHJlcGxhY2VtZW50YCBp cyBlY3g6ZWJ4LgorICAgLy8geDY0OiBgb3V0cHV0YCBtdXN0IGJlIHJheC4KKyAgIC8vIEFSTTog UmVnaXN0ZXJzIG11c3QgYmUgZGlzdGluY3Q7IGByZXBsYWNlbWVudGAgYW5kIGBvdXRwdXRgIG11 c3QgYmUKKyAgIC8vIChldmVuLG9kZCkgcGFpcnMuCisgCisgICB2b2lkIGNvbXBhcmVFeGNoYW5n ZTY0KGNvbnN0IFN5bmNocm9uaXphdGlvbiYgc3luYywgY29uc3QgQWRkcmVzcyYgbWVtLAorICAg ICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcjY0IGV4cGVjdGVkLCBSZWdpc3RlcjY0IHJl cGxhY2VtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcjY0IG91dHB1dCkK Ky0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIHg2NCwgeDg2LCBtaXBzNjQpOworKyAgICAg IERFRklORURfT04oYXJtLCBhcm02NCwgeDY0LCB4ODYsIG1pcHM2NCwgcHBjNjQpOworIAorICAg dm9pZCBjb21wYXJlRXhjaGFuZ2U2NChjb25zdCBTeW5jaHJvbml6YXRpb24mIHN5bmMsIGNvbnN0 IEJhc2VJbmRleCYgbWVtLAorICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcjY0IGV4 cGVjdGVkLCBSZWdpc3RlcjY0IHJlcGxhY2VtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAg ICBSZWdpc3RlcjY0IG91dHB1dCkKKy0gICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIHg2NCwg eDg2LCBtaXBzNjQpOworKyAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgeDY0LCB4ODYsIG1p cHM2NCwgcHBjNjQpOworIAorICAgLy8gRXhjaGFuZ2Ugd2l0aCBtZW1vcnkuICBSZXR1cm4gdGhl IHZhbHVlIGluaXRpYWxseSBpbiBtZW1vcnkuCisgICAvLyBNSVBTOiBgdmFsdWVUZW1wYCwgYG9m ZnNldFRlbXBgIGFuZCBgbWFza1RlbXBgIG11c3QgYmUgZGVmaW5lZCBmb3IgOC1iaXQKKyAgIC8v IGFuZCAxNi1iaXQgd2lkZSBvcGVyYXRpb25zLgorIAorICAgdm9pZCBhdG9taWNFeGNoYW5nZShT Y2FsYXI6OlR5cGUgdHlwZSwgY29uc3QgU3luY2hyb25pemF0aW9uJiBzeW5jLAorICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBBZGRyZXNzJiBtZW0sIFJlZ2lzdGVyIHZhbHVlLCBSZWdpc3Rl ciBvdXRwdXQpCisgICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCB4ODZfc2hhcmVkKTsKKyAK KyAgIHZvaWQgYXRvbWljRXhjaGFuZ2UoU2NhbGFyOjpUeXBlIHR5cGUsIGNvbnN0IFN5bmNocm9u aXphdGlvbiYgc3luYywKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQmFzZUluZGV4JiBt ZW0sIFJlZ2lzdGVyIHZhbHVlLCBSZWdpc3RlciBvdXRwdXQpCisgICAgICAgREVGSU5FRF9PTihh cm0sIGFybTY0LCB4ODZfc2hhcmVkKTsKKyAKKyAgIHZvaWQgYXRvbWljRXhjaGFuZ2UoU2NhbGFy OjpUeXBlIHR5cGUsIGNvbnN0IFN5bmNocm9uaXphdGlvbiYgc3luYywKKyAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgQWRkcmVzcyYgbWVtLCBSZWdpc3RlciB2YWx1ZSwgUmVnaXN0ZXIgdmFs dWVUZW1wLAorICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBvZmZzZXRUZW1wLCBSZWdp c3RlciBtYXNrVGVtcCwgUmVnaXN0ZXIgb3V0cHV0KQorLSAgICAgIERFRklORURfT04obWlwc19z aGFyZWQpOworKyAgICAgIERFRklORURfT04obWlwc19zaGFyZWQsIHBwYzY0KTsKKyAKKyAgIHZv aWQgYXRvbWljRXhjaGFuZ2UoU2NhbGFyOjpUeXBlIHR5cGUsIGNvbnN0IFN5bmNocm9uaXphdGlv biYgc3luYywKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQmFzZUluZGV4JiBtZW0sIFJl Z2lzdGVyIHZhbHVlLCBSZWdpc3RlciB2YWx1ZVRlbXAsCisgICAgICAgICAgICAgICAgICAgICAg IFJlZ2lzdGVyIG9mZnNldFRlbXAsIFJlZ2lzdGVyIG1hc2tUZW1wLCBSZWdpc3RlciBvdXRwdXQp CistICAgICAgREVGSU5FRF9PTihtaXBzX3NoYXJlZCk7CisrICAgICAgREVGSU5FRF9PTihtaXBz X3NoYXJlZCwgcHBjNjQpOworIAorICAgLy8geDg2OiBgdmFsdWVgIG11c3QgYmUgZWN4OmVieDsg YG91dHB1dGAgbXVzdCBiZSBlZHg6ZWF4LgorICAgLy8gQVJNOiBgdmFsdWVgIGFuZCBgb3V0cHV0 YCBtdXN0IGJlIGRpc3RpbmN0IGFuZCAoZXZlbixvZGQpIHBhaXJzLgorICAgLy8gQVJNNjQ6IGB2 YWx1ZWAgYW5kIGBvdXRwdXRgIG11c3QgYmUgZGlzdGluY3QuCisgCisgICB2b2lkIGF0b21pY0V4 Y2hhbmdlNjQoY29uc3QgU3luY2hyb25pemF0aW9uJiBzeW5jLCBjb25zdCBBZGRyZXNzJiBtZW0s CisgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXI2NCB2YWx1ZSwgUmVnaXN0ZXI2NCBv dXRwdXQpCistICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCB4NjQsIHg4NiwgbWlwczY0KTsK KysgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIHg2NCwgeDg2LCBtaXBzNjQsIHBwYzY0KTsK KyAKKyAgIHZvaWQgYXRvbWljRXhjaGFuZ2U2NChjb25zdCBTeW5jaHJvbml6YXRpb24mIHN5bmMs IGNvbnN0IEJhc2VJbmRleCYgbWVtLAorICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVy NjQgdmFsdWUsIFJlZ2lzdGVyNjQgb3V0cHV0KQorLSAgICAgIERFRklORURfT04oYXJtLCBhcm02 NCwgeDY0LCB4ODYsIG1pcHM2NCk7CisrICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCB4NjQs IHg4NiwgbWlwczY0LCBwcGM2NCk7CisgCisgICAvLyBSZWFkLW1vZGlmeS13cml0ZSB3aXRoIG1l bW9yeS4gIFJldHVybiB0aGUgdmFsdWUgaW4gbWVtb3J5IGJlZm9yZSB0aGUKKyAgIC8vIG9wZXJh dGlvbi4KKyAgIC8vCisgICAvLyB4ODYtc2hhcmVkOgorICAgLy8gICBGb3IgOC1iaXQgb3BlcmF0 aW9ucywgYHZhbHVlYCBhbmQgYG91dHB1dGAgbXVzdCBoYXZlIGEgYnl0ZSBzdWJyZWdpc3Rlci4K KyAgIC8vICAgRm9yIEFkZCBhbmQgU3ViLCBgdGVtcGAgbXVzdCBiZSBpbnZhbGlkLgorICAgLy8g ICBGb3IgQW5kLCBPciwgYW5kIFhvciwgYG91dHB1dGAgbXVzdCBiZSBlYXggYW5kIGB0ZW1wYCBt dXN0IGhhdmUgYSBieXRlCitAQCAtMzgyNiw0NCArMzgzMyw0NCBAQCBjbGFzcyBNYWNyb0Fzc2Vt YmxlciA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlclNwZWNpZmljIHsKKyAKKyAgIHZvaWQgYXRvbWlj RmV0Y2hPcChTY2FsYXI6OlR5cGUgdHlwZSwgY29uc3QgU3luY2hyb25pemF0aW9uJiBzeW5jLAor ICAgICAgICAgICAgICAgICAgICAgIEF0b21pY09wIG9wLCBJbW0zMiB2YWx1ZSwgY29uc3QgQmFz ZUluZGV4JiBtZW0sCisgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgdGVtcCwgUmVnaXN0 ZXIgb3V0cHV0KSBERUZJTkVEX09OKHg4Nl9zaGFyZWQpOworIAorICAgdm9pZCBhdG9taWNGZXRj aE9wKFNjYWxhcjo6VHlwZSB0eXBlLCBjb25zdCBTeW5jaHJvbml6YXRpb24mIHN5bmMsCisgICAg ICAgICAgICAgICAgICAgICAgQXRvbWljT3Agb3AsIFJlZ2lzdGVyIHZhbHVlLCBjb25zdCBBZGRy ZXNzJiBtZW0sCisgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgdmFsdWVUZW1wLCBSZWdp c3RlciBvZmZzZXRUZW1wLCBSZWdpc3RlciBtYXNrVGVtcCwKKy0gICAgICAgICAgICAgICAgICAg ICBSZWdpc3RlciBvdXRwdXQpIERFRklORURfT04obWlwc19zaGFyZWQpOworKyAgICAgICAgICAg ICAgICAgICAgIFJlZ2lzdGVyIG91dHB1dCkgREVGSU5FRF9PTihtaXBzX3NoYXJlZCwgcHBjNjQp OworIAorICAgdm9pZCBhdG9taWNGZXRjaE9wKFNjYWxhcjo6VHlwZSB0eXBlLCBjb25zdCBTeW5j aHJvbml6YXRpb24mIHN5bmMsCisgICAgICAgICAgICAgICAgICAgICAgQXRvbWljT3Agb3AsIFJl Z2lzdGVyIHZhbHVlLCBjb25zdCBCYXNlSW5kZXgmIG1lbSwKKyAgICAgICAgICAgICAgICAgICAg ICBSZWdpc3RlciB2YWx1ZVRlbXAsIFJlZ2lzdGVyIG9mZnNldFRlbXAsIFJlZ2lzdGVyIG1hc2tU ZW1wLAorLSAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIG91dHB1dCkgREVGSU5FRF9PTiht aXBzX3NoYXJlZCk7CisrICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgb3V0cHV0KSBERUZJ TkVEX09OKG1pcHNfc2hhcmVkLCBwcGM2NCk7CisgCisgICAvLyB4ODY6CisgICAvLyAgIGB0ZW1w YCBtdXN0IGJlIGVjeDplYng7IGBvdXRwdXRgIG11c3QgYmUgZWR4OmVheC4KKyAgIC8vIHg2NDoK KyAgIC8vICAgRm9yIEFkZCBhbmQgU3ViLCBgdGVtcGAgaXMgaWdub3JlZC4KKyAgIC8vICAgRm9y IEFuZCwgT3IsIGFuZCBYb3IsIGBvdXRwdXRgIG11c3QgYmUgcmF4LgorICAgLy8gQVJNOgorICAg Ly8gICBgdGVtcGAgYW5kIGBvdXRwdXRgIG11c3QgYmUgKGV2ZW4sb2RkKSBwYWlycyBhbmQgZGlz dGluY3QgZnJvbSBgdmFsdWVgLgorICAgLy8gQVJNNjQ6CisgICAvLyAgIFJlZ2lzdGVycyBgdmFs dWVgLCBgdGVtcGAsIGFuZCBgb3V0cHV0YCBtdXN0IGFsbCBkaWZmZXIuCisgCisgICB2b2lkIGF0 b21pY0ZldGNoT3A2NChjb25zdCBTeW5jaHJvbml6YXRpb24mIHN5bmMsIEF0b21pY09wIG9wLAor ICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXI2NCB2YWx1ZSwgY29uc3QgQWRkcmVzcyYg bWVtLCBSZWdpc3RlcjY0IHRlbXAsCistICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcjY0 IG91dHB1dCkgREVGSU5FRF9PTihhcm0sIGFybTY0LCB4NjQsIG1pcHM2NCk7CisrICAgICAgICAg ICAgICAgICAgICAgICBSZWdpc3RlcjY0IG91dHB1dCkgREVGSU5FRF9PTihhcm0sIGFybTY0LCB4 NjQsIG1pcHM2NCwgcHBjNjQpOworIAorICAgdm9pZCBhdG9taWNGZXRjaE9wNjQoY29uc3QgU3lu Y2hyb25pemF0aW9uJiBzeW5jLCBBdG9taWNPcCBvcCwKKyAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IEFkZHJlc3MmIHZhbHVlLCBjb25zdCBBZGRyZXNzJiBtZW0sCisgICAgICAgICAgICAg ICAgICAgICAgICBSZWdpc3RlcjY0IHRlbXAsIFJlZ2lzdGVyNjQgb3V0cHV0KSBERUZJTkVEX09O KHg4Nik7CisgCisgICB2b2lkIGF0b21pY0ZldGNoT3A2NChjb25zdCBTeW5jaHJvbml6YXRpb24m IHN5bmMsIEF0b21pY09wIG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXI2NCB2 YWx1ZSwgY29uc3QgQmFzZUluZGV4JiBtZW0sIFJlZ2lzdGVyNjQgdGVtcCwKKy0gICAgICAgICAg ICAgICAgICAgICAgIFJlZ2lzdGVyNjQgb3V0cHV0KSBERUZJTkVEX09OKGFybSwgYXJtNjQsIHg2 NCwgbWlwczY0KTsKKysgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyNjQgb3V0cHV0KSBE RUZJTkVEX09OKGFybSwgYXJtNjQsIHg2NCwgbWlwczY0LCBwcGM2NCk7CisgCisgICB2b2lkIGF0 b21pY0ZldGNoT3A2NChjb25zdCBTeW5jaHJvbml6YXRpb24mIHN5bmMsIEF0b21pY09wIG9wLAor ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQWRkcmVzcyYgdmFsdWUsIGNvbnN0IEJhc2VJ bmRleCYgbWVtLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXI2NCB0ZW1wLCBSZWdp c3RlcjY0IG91dHB1dCkgREVGSU5FRF9PTih4ODYpOworIAorICAgLy8geDY0OgorICAgLy8gICBg dmFsdWVgIGNhbiBiZSBhbnkgcmVnaXN0ZXIuCisgICAvLyBBUk06CitAQCAtMzg3MSwyNCArMzg3 OCwyNCBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlciA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlclNwZWNp ZmljIHsKKyAgIC8vIEFSTTY0OgorICAgLy8gICBSZWdpc3RlcnMgYHZhbHVlYCBhbmQgYHRlbXBg IG11c3QgZGlmZmVyLgorIAorICAgdm9pZCBhdG9taWNFZmZlY3RPcDY0KGNvbnN0IFN5bmNocm9u aXphdGlvbiYgc3luYywgQXRvbWljT3Agb3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgUmVn aXN0ZXI2NCB2YWx1ZSwgY29uc3QgQWRkcmVzcyYgbWVtKSBERUZJTkVEX09OKHg2NCk7CisgCisg ICB2b2lkIGF0b21pY0VmZmVjdE9wNjQoY29uc3QgU3luY2hyb25pemF0aW9uJiBzeW5jLCBBdG9t aWNPcCBvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcjY0IHZhbHVlLCBjb25z dCBBZGRyZXNzJiBtZW0sIFJlZ2lzdGVyNjQgdGVtcCkKKy0gICAgICBERUZJTkVEX09OKGFybSwg YXJtNjQsIG1pcHM2NCk7CisrICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzNjQsIHBw YzY0KTsKKyAKKyAgIHZvaWQgYXRvbWljRWZmZWN0T3A2NChjb25zdCBTeW5jaHJvbml6YXRpb24m IHN5bmMsIEF0b21pY09wIG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyNjQg dmFsdWUsIGNvbnN0IEJhc2VJbmRleCYgbWVtKSBERUZJTkVEX09OKHg2NCk7CisgCisgICB2b2lk IGF0b21pY0VmZmVjdE9wNjQoY29uc3QgU3luY2hyb25pemF0aW9uJiBzeW5jLCBBdG9taWNPcCBv cCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlcjY0IHZhbHVlLCBjb25zdCBCYXNl SW5kZXgmIG1lbSwgUmVnaXN0ZXI2NCB0ZW1wKQorLSAgICAgIERFRklORURfT04oYXJtLCBhcm02 NCwgbWlwczY0KTsKKysgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHM2NCwgcHBjNjQp OworIAorICAgLy8gNjQtYml0IGF0b21pYyBsb2FkLiBPbiA2NC1iaXQgc3lzdGVtcywgdXNlIHJl Z3VsYXIgbG9hZCB3aXRoCisgICAvLyBTeW5jaHJvbml6YXRpb246OkxvYWQsIG5vdCB0aGlzIG1l dGhvZC4KKyAgIC8vCisgICAvLyB4ODY6IGB0ZW1wYCBtdXN0IGJlIGVjeDplYng7IGBvdXRwdXRg IG11c3QgYmUgZWR4OmVheC4KKyAgIC8vIEFSTTogYG91dHB1dGAgbXVzdCBiZSAoZXZlbixvZGQp IHBhaXIuCisgCisgICB2b2lkIGF0b21pY0xvYWQ2NChjb25zdCBTeW5jaHJvbml6YXRpb24mIHN5 bmMsIGNvbnN0IEFkZHJlc3MmIG1lbSwKK0BAIC0zOTMwLDQzICszOTM3LDQzIEBAIGNsYXNzIE1h Y3JvQXNzZW1ibGVyIDogcHVibGljIE1hY3JvQXNzZW1ibGVyU3BlY2lmaWMgeworICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IEJhc2VJbmRleCYgbWVtLCBSZWdpc3RlciBleHBlY3Rl ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciByZXBsYWNlbWVudCwgUmVn aXN0ZXIgb3V0cHV0KQorICAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgeDg2X3NoYXJlZCk7 CisgCisgICB2b2lkIHdhc21Db21wYXJlRXhjaGFuZ2UoY29uc3Qgd2FzbTo6TWVtb3J5QWNjZXNz RGVzYyYgYWNjZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEFkZHJlc3Mm IG1lbSwgUmVnaXN0ZXIgZXhwZWN0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVn aXN0ZXIgcmVwbGFjZW1lbnQsIFJlZ2lzdGVyIHZhbHVlVGVtcCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZWdpc3RlciBvZmZzZXRUZW1wLCBSZWdpc3RlciBtYXNrVGVtcCwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBvdXRwdXQpIERFRklORURfT04obWlwc19z aGFyZWQpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIG91dHB1dCkgREVG SU5FRF9PTihtaXBzX3NoYXJlZCwgcHBjNjQpOworIAorICAgdm9pZCB3YXNtQ29tcGFyZUV4Y2hh bmdlKGNvbnN0IHdhc206Ok1lbW9yeUFjY2Vzc0Rlc2MmIGFjY2VzcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBCYXNlSW5kZXgmIG1lbSwgUmVnaXN0ZXIgZXhwZWN0ZWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcmVwbGFjZW1lbnQsIFJlZ2lzdGVy IHZhbHVlVGVtcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBvZmZzZXRU ZW1wLCBSZWdpc3RlciBtYXNrVGVtcCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdp c3RlciBvdXRwdXQpIERFRklORURfT04obWlwc19zaGFyZWQpOworKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJlZ2lzdGVyIG91dHB1dCkgREVGSU5FRF9PTihtaXBzX3NoYXJlZCwgcHBjNjQp OworIAorICAgdm9pZCB3YXNtQXRvbWljRXhjaGFuZ2UoY29uc3Qgd2FzbTo6TWVtb3J5QWNjZXNz RGVzYyYgYWNjZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQWRkcmVzcyYg bWVtLCBSZWdpc3RlciB2YWx1ZSwgUmVnaXN0ZXIgb3V0cHV0KQorICAgICAgIERFRklORURfT04o YXJtLCBhcm02NCwgeDg2X3NoYXJlZCk7CisgCisgICB2b2lkIHdhc21BdG9taWNFeGNoYW5nZShj b25zdCB3YXNtOjpNZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3MsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBCYXNlSW5kZXgmIG1lbSwgUmVnaXN0ZXIgdmFsdWUsIFJlZ2lzdGVyIG91 dHB1dCkKKyAgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIHg4Nl9zaGFyZWQpOworIAorICAg dm9pZCB3YXNtQXRvbWljRXhjaGFuZ2UoY29uc3Qgd2FzbTo6TWVtb3J5QWNjZXNzRGVzYyYgYWNj ZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQWRkcmVzcyYgbWVtLCBSZWdp c3RlciB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHZhbHVlVGVt cCwgUmVnaXN0ZXIgb2Zmc2V0VGVtcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lz dGVyIG1hc2tUZW1wLCBSZWdpc3RlciBvdXRwdXQpCistICAgICAgREVGSU5FRF9PTihtaXBzX3No YXJlZCk7CisrICAgICAgREVGSU5FRF9PTihtaXBzX3NoYXJlZCwgcHBjNjQpOworIAorICAgdm9p ZCB3YXNtQXRvbWljRXhjaGFuZ2UoY29uc3Qgd2FzbTo6TWVtb3J5QWNjZXNzRGVzYyYgYWNjZXNz LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQmFzZUluZGV4JiBtZW0sIFJlZ2lz dGVyIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgdmFsdWVUZW1w LCBSZWdpc3RlciBvZmZzZXRUZW1wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0 ZXIgbWFza1RlbXAsIFJlZ2lzdGVyIG91dHB1dCkKKy0gICAgICBERUZJTkVEX09OKG1pcHNfc2hh cmVkKTsKKysgICAgICBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBwcGM2NCk7CisgCisgICB2b2lk IHdhc21BdG9taWNGZXRjaE9wKGNvbnN0IHdhc206Ok1lbW9yeUFjY2Vzc0Rlc2MmIGFjY2Vzcywg QXRvbWljT3Agb3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHZhbHVlLCBj b25zdCBBZGRyZXNzJiBtZW0sIFJlZ2lzdGVyIHRlbXAsCisgICAgICAgICAgICAgICAgICAgICAg ICAgIFJlZ2lzdGVyIG91dHB1dCkgREVGSU5FRF9PTihhcm0sIGFybTY0LCB4ODZfc2hhcmVkKTsK KyAKKyAgIHZvaWQgd2FzbUF0b21pY0ZldGNoT3AoY29uc3Qgd2FzbTo6TWVtb3J5QWNjZXNzRGVz YyYgYWNjZXNzLCBBdG9taWNPcCBvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgSW1tMzIg dmFsdWUsIGNvbnN0IEFkZHJlc3MmIG1lbSwgUmVnaXN0ZXIgdGVtcCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgUmVnaXN0ZXIgb3V0cHV0KSBERUZJTkVEX09OKHg4Nl9zaGFyZWQpOworQEAg LTM5NzcsMjMgKzM5ODQsMjMgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXIgOiBwdWJsaWMgTWFjcm9B c3NlbWJsZXJTcGVjaWZpYyB7CisgCisgICB2b2lkIHdhc21BdG9taWNGZXRjaE9wKGNvbnN0IHdh c206Ok1lbW9yeUFjY2Vzc0Rlc2MmIGFjY2VzcywgQXRvbWljT3Agb3AsCisgICAgICAgICAgICAg ICAgICAgICAgICAgIEltbTMyIHZhbHVlLCBjb25zdCBCYXNlSW5kZXgmIG1lbSwgUmVnaXN0ZXIg dGVtcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgb3V0cHV0KSBERUZJTkVE X09OKHg4Nl9zaGFyZWQpOworIAorICAgdm9pZCB3YXNtQXRvbWljRmV0Y2hPcChjb25zdCB3YXNt OjpNZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3MsIEF0b21pY09wIG9wLAorICAgICAgICAgICAgICAg ICAgICAgICAgICBSZWdpc3RlciB2YWx1ZSwgY29uc3QgQWRkcmVzcyYgbWVtLCBSZWdpc3RlciB2 YWx1ZVRlbXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIG9mZnNldFRlbXAs IFJlZ2lzdGVyIG1hc2tUZW1wLAorLSAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBv dXRwdXQpIERFRklORURfT04obWlwc19zaGFyZWQpOworKyAgICAgICAgICAgICAgICAgICAgICAg ICBSZWdpc3RlciBvdXRwdXQpIERFRklORURfT04obWlwc19zaGFyZWQsIHBwYzY0KTsKKyAKKyAg IHZvaWQgd2FzbUF0b21pY0ZldGNoT3AoY29uc3Qgd2FzbTo6TWVtb3J5QWNjZXNzRGVzYyYgYWNj ZXNzLCBBdG9taWNPcCBvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgdmFs dWUsIGNvbnN0IEJhc2VJbmRleCYgbWVtLAorICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdp c3RlciB2YWx1ZVRlbXAsIFJlZ2lzdGVyIG9mZnNldFRlbXAsCisgICAgICAgICAgICAgICAgICAg ICAgICAgIFJlZ2lzdGVyIG1hc2tUZW1wLCBSZWdpc3RlciBvdXRwdXQpCistICAgICAgREVGSU5F RF9PTihtaXBzX3NoYXJlZCk7CisrICAgICAgREVGSU5FRF9PTihtaXBzX3NoYXJlZCwgcHBjNjQp OworIAorICAgLy8gUmVhZC1tb2RpZnktd3JpdGUgd2l0aCBtZW1vcnkuICBSZXR1cm4gbm8gdmFs dWUuCisgICAvLworICAgLy8gTUlQUzogYHZhbHVlVGVtcGAsIGBvZmZzZXRUZW1wYCBhbmQgYG1h c2tUZW1wYCBtdXN0IGJlIGRlZmluZWQgZm9yIDgtYml0CisgICAvLyBhbmQgMTYtYml0IHdpZGUg b3BlcmF0aW9ucy4KKyAKKyAgIHZvaWQgd2FzbUF0b21pY0VmZmVjdE9wKGNvbnN0IHdhc206Ok1l bW9yeUFjY2Vzc0Rlc2MmIGFjY2VzcywgQXRvbWljT3Agb3AsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZWdpc3RlciB2YWx1ZSwgY29uc3QgQWRkcmVzcyYgbWVtLCBSZWdpc3RlciB0ZW1w KQorQEAgLTQwMDksMjIgKzQwMTYsMjIgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXIgOiBwdWJsaWMg TWFjcm9Bc3NlbWJsZXJTcGVjaWZpYyB7CisgCisgICB2b2lkIHdhc21BdG9taWNFZmZlY3RPcChj b25zdCB3YXNtOjpNZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3MsIEF0b21pY09wIG9wLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgSW1tMzIgdmFsdWUsIGNvbnN0IEJhc2VJbmRleCYgbWVtLCBS ZWdpc3RlciB0ZW1wKQorICAgICAgIERFRklORURfT04oeDg2X3NoYXJlZCk7CisgCisgICB2b2lk IHdhc21BdG9taWNFZmZlY3RPcChjb25zdCB3YXNtOjpNZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3Ms IEF0b21pY09wIG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgdmFsdWUs IGNvbnN0IEFkZHJlc3MmIG1lbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVy IHZhbHVlVGVtcCwgUmVnaXN0ZXIgb2Zmc2V0VGVtcCwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgIFJlZ2lzdGVyIG1hc2tUZW1wKSBERUZJTkVEX09OKG1pcHNfc2hhcmVkKTsKKysgICAgICAg ICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIG1hc2tUZW1wKSBERUZJTkVEX09OKG1pcHNfc2hh cmVkLCBwcGM2NCk7CisgCisgICB2b2lkIHdhc21BdG9taWNFZmZlY3RPcChjb25zdCB3YXNtOjpN ZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3MsIEF0b21pY09wIG9wLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmVnaXN0ZXIgdmFsdWUsIGNvbnN0IEJhc2VJbmRleCYgbWVtLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgdmFsdWVUZW1wLCBSZWdpc3RlciBvZmZzZXRUZW1w LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgbWFza1RlbXApIERFRklORURf T04obWlwc19zaGFyZWQpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgbWFz a1RlbXApIERFRklORURfT04obWlwc19zaGFyZWQsIHBwYzY0KTsKKyAKKyAgIC8vIDY0LWJpdCB3 aWRlIG9wZXJhdGlvbnMuCisgCisgICAvLyA2NC1iaXQgYXRvbWljIGxvYWQuICBPbiA2NC1iaXQg c3lzdGVtcywgdXNlIHJlZ3VsYXIgd2FzbSBsb2FkIHdpdGgKKyAgIC8vIFN5bmNocm9uaXphdGlv bjo6TG9hZCwgbm90IHRoaXMgbWV0aG9kLgorICAgLy8KKyAgIC8vIHg4NjogYHRlbXBgIG11c3Qg YmUgZWN4OmVieDsgYG91dHB1dGAgbXVzdCBiZSBlZHg6ZWF4LgorICAgLy8gQVJNOiBgdGVtcGAg c2hvdWxkIGJlIGludmFsaWQ7IGBvdXRwdXRgIG11c3QgYmUgKGV2ZW4sb2RkKSBwYWlyLgorQEAg LTQwNzQsMjIgKzQwODEsMjIgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXIgOiBwdWJsaWMgTWFjcm9B c3NlbWJsZXJTcGVjaWZpYyB7CisgICAvLyBBUk06IFJlZ2lzdGVycyBtdXN0IGJlIGRpc3RpbmN0 OyBgdGVtcGAgYW5kIGBvdXRwdXRgIG11c3QgYmUgKGV2ZW4sb2RkKQorICAgLy8gcGFpcnMuCisg ICAvLyBNSVBTOiBSZWdpc3RlcnMgbXVzdCBiZSBkaXN0aW5jdC4KKyAgIC8vIE1JUFMzMjogYHRl bXBgIHNob3VsZCBiZSBpbnZhbGlkLgorIAorICAgdm9pZCB3YXNtQXRvbWljRmV0Y2hPcDY0KGNv bnN0IHdhc206Ok1lbW9yeUFjY2Vzc0Rlc2MmIGFjY2VzcywgQXRvbWljT3Agb3AsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXI2NCB2YWx1ZSwgY29uc3QgQWRkcmVzcyYgbWVt LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyNjQgdGVtcCwgUmVnaXN0ZXI2 NCBvdXRwdXQpCistICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwg eDY0KTsKKysgICAgICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0LCB4NjQs IHBwYzY0KTsKKyAKKyAgIHZvaWQgd2FzbUF0b21pY0ZldGNoT3A2NChjb25zdCB3YXNtOjpNZW1v cnlBY2Nlc3NEZXNjJiBhY2Nlc3MsIEF0b21pY09wIG9wLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJlZ2lzdGVyNjQgdmFsdWUsIGNvbnN0IEJhc2VJbmRleCYgbWVtLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyNjQgdGVtcCwgUmVnaXN0ZXI2NCBvdXRwdXQpCist ICAgICAgREVGSU5FRF9PTihhcm0sIGFybTY0LCBtaXBzMzIsIG1pcHM2NCwgeDY0KTsKKysgICAg ICBERUZJTkVEX09OKGFybSwgYXJtNjQsIG1pcHMzMiwgbWlwczY0LCB4NjQsIHBwYzY0KTsKKyAK KyAgIHZvaWQgd2FzbUF0b21pY0ZldGNoT3A2NChjb25zdCB3YXNtOjpNZW1vcnlBY2Nlc3NEZXNj JiBhY2Nlc3MsIEF0b21pY09wIG9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IEFkZHJlc3MmIHZhbHVlLCBjb25zdCBBZGRyZXNzJiBtZW0sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmVnaXN0ZXI2NCB0ZW1wLCBSZWdpc3RlcjY0IG91dHB1dCkgREVGSU5FRF9PTih4 ODYpOworIAorICAgdm9pZCB3YXNtQXRvbWljRmV0Y2hPcDY0KGNvbnN0IHdhc206Ok1lbW9yeUFj Y2Vzc0Rlc2MmIGFjY2VzcywgQXRvbWljT3Agb3AsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgQWRkcmVzcyYgdmFsdWUsIGNvbnN0IEJhc2VJbmRleCYgbWVtLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyNjQgdGVtcCwgUmVnaXN0ZXI2NCBvdXRwdXQpIERF RklORURfT04oeDg2KTsKK0BAIC00MTMxLDQyICs0MTM4LDQyIEBAIGNsYXNzIE1hY3JvQXNzZW1i bGVyIDogcHVibGljIE1hY3JvQXNzZW1ibGVyU3BlY2lmaWMgeworICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBCYXNlSW5kZXgmIG1lbSwgUmVnaXN0ZXIgZXhwZWN0ZWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHJlcGxhY2VtZW50LCBSZWdpc3RlciB0ZW1wLAor ICAgICAgICAgICAgICAgICAgICAgICAgICBBbnlSZWdpc3RlciBvdXRwdXQpIERFRklORURfT04o YXJtLCBhcm02NCwgeDg2X3NoYXJlZCk7CisgCisgICB2b2lkIGNvbXBhcmVFeGNoYW5nZUpTKFNj YWxhcjo6VHlwZSBhcnJheVR5cGUsIGNvbnN0IFN5bmNocm9uaXphdGlvbiYgc3luYywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgQWRkcmVzcyYgbWVtLCBSZWdpc3RlciBleHBlY3Rl ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcmVwbGFjZW1lbnQsIFJlZ2lz dGVyIHZhbHVlVGVtcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgb2Zmc2V0 VGVtcCwgUmVnaXN0ZXIgbWFza1RlbXAsIFJlZ2lzdGVyIHRlbXAsCistICAgICAgICAgICAgICAg ICAgICAgICAgIEFueVJlZ2lzdGVyIG91dHB1dCkgREVGSU5FRF9PTihtaXBzX3NoYXJlZCk7Cisr ICAgICAgICAgICAgICAgICAgICAgICAgIEFueVJlZ2lzdGVyIG91dHB1dCkgREVGSU5FRF9PTiht aXBzX3NoYXJlZCwgcHBjNjQpOworIAorICAgdm9pZCBjb21wYXJlRXhjaGFuZ2VKUyhTY2FsYXI6 OlR5cGUgYXJyYXlUeXBlLCBjb25zdCBTeW5jaHJvbml6YXRpb24mIHN5bmMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IEJhc2VJbmRleCYgbWVtLCBSZWdpc3RlciBleHBlY3RlZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgcmVwbGFjZW1lbnQsIFJlZ2lzdGVy IHZhbHVlVGVtcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgb2Zmc2V0VGVt cCwgUmVnaXN0ZXIgbWFza1RlbXAsIFJlZ2lzdGVyIHRlbXAsCistICAgICAgICAgICAgICAgICAg ICAgICAgIEFueVJlZ2lzdGVyIG91dHB1dCkgREVGSU5FRF9PTihtaXBzX3NoYXJlZCk7CisrICAg ICAgICAgICAgICAgICAgICAgICAgIEFueVJlZ2lzdGVyIG91dHB1dCkgREVGSU5FRF9PTihtaXBz X3NoYXJlZCwgcHBjNjQpOworIAorICAgdm9pZCBhdG9taWNFeGNoYW5nZUpTKFNjYWxhcjo6VHlw ZSBhcnJheVR5cGUsIGNvbnN0IFN5bmNocm9uaXphdGlvbiYgc3luYywKKyAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBBZGRyZXNzJiBtZW0sIFJlZ2lzdGVyIHZhbHVlLCBSZWdpc3RlciB0 ZW1wLAorICAgICAgICAgICAgICAgICAgICAgICAgIEFueVJlZ2lzdGVyIG91dHB1dCkgREVGSU5F RF9PTihhcm0sIGFybTY0LCB4ODZfc2hhcmVkKTsKKyAKKyAgIHZvaWQgYXRvbWljRXhjaGFuZ2VK UyhTY2FsYXI6OlR5cGUgYXJyYXlUeXBlLCBjb25zdCBTeW5jaHJvbml6YXRpb24mIHN5bmMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQmFzZUluZGV4JiBtZW0sIFJlZ2lzdGVyIHZh bHVlLCBSZWdpc3RlciB0ZW1wLAorICAgICAgICAgICAgICAgICAgICAgICAgIEFueVJlZ2lzdGVy IG91dHB1dCkgREVGSU5FRF9PTihhcm0sIGFybTY0LCB4ODZfc2hhcmVkKTsKKyAKKyAgIHZvaWQg YXRvbWljRXhjaGFuZ2VKUyhTY2FsYXI6OlR5cGUgYXJyYXlUeXBlLCBjb25zdCBTeW5jaHJvbml6 YXRpb24mIHN5bmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQWRkcmVzcyYgbWVt LCBSZWdpc3RlciB2YWx1ZSwgUmVnaXN0ZXIgdmFsdWVUZW1wLAorICAgICAgICAgICAgICAgICAg ICAgICAgIFJlZ2lzdGVyIG9mZnNldFRlbXAsIFJlZ2lzdGVyIG1hc2tUZW1wLCBSZWdpc3RlciB0 ZW1wLAorLSAgICAgICAgICAgICAgICAgICAgICAgIEFueVJlZ2lzdGVyIG91dHB1dCkgREVGSU5F RF9PTihtaXBzX3NoYXJlZCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgQW55UmVnaXN0ZXIg b3V0cHV0KSBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBwcGM2NCk7CisgCisgICB2b2lkIGF0b21p Y0V4Y2hhbmdlSlMoU2NhbGFyOjpUeXBlIGFycmF5VHlwZSwgY29uc3QgU3luY2hyb25pemF0aW9u JiBzeW5jLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEJhc2VJbmRleCYgbWVtLCBS ZWdpc3RlciB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciB2YWx1ZVRl bXAsIFJlZ2lzdGVyIG9mZnNldFRlbXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0 ZXIgbWFza1RlbXAsIFJlZ2lzdGVyIHRlbXAsIEFueVJlZ2lzdGVyIG91dHB1dCkKKy0gICAgICBE RUZJTkVEX09OKG1pcHNfc2hhcmVkKTsKKysgICAgICBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBw cGM2NCk7CisgCisgICB2b2lkIGF0b21pY0ZldGNoT3BKUyhTY2FsYXI6OlR5cGUgYXJyYXlUeXBl LCBjb25zdCBTeW5jaHJvbml6YXRpb24mIHN5bmMsCisgICAgICAgICAgICAgICAgICAgICAgICBB dG9taWNPcCBvcCwgUmVnaXN0ZXIgdmFsdWUsIGNvbnN0IEFkZHJlc3MmIG1lbSwKKyAgICAgICAg ICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHRlbXAxLCBSZWdpc3RlciB0ZW1wMiwgQW55UmVnaXN0 ZXIgb3V0cHV0KQorICAgICAgIERFRklORURfT04oYXJtLCBhcm02NCwgeDg2X3NoYXJlZCk7Cisg CisgICB2b2lkIGF0b21pY0ZldGNoT3BKUyhTY2FsYXI6OlR5cGUgYXJyYXlUeXBlLCBjb25zdCBT eW5jaHJvbml6YXRpb24mIHN5bmMsCisgICAgICAgICAgICAgICAgICAgICAgICBBdG9taWNPcCBv cCwgUmVnaXN0ZXIgdmFsdWUsIGNvbnN0IEJhc2VJbmRleCYgbWVtLAorQEAgLTQxODIsMjMgKzQx ODksMjMgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXIgOiBwdWJsaWMgTWFjcm9Bc3NlbWJsZXJTcGVj aWZpYyB7CisgICAgICAgICAgICAgICAgICAgICAgICBBdG9taWNPcCBvcCwgSW1tMzIgdmFsdWUs IGNvbnN0IEJhc2VJbmRleCYgbWVtLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIg dGVtcDEsIFJlZ2lzdGVyIHRlbXAyLCBBbnlSZWdpc3RlciBvdXRwdXQpCisgICAgICAgREVGSU5F RF9PTih4ODZfc2hhcmVkKTsKKyAKKyAgIHZvaWQgYXRvbWljRmV0Y2hPcEpTKFNjYWxhcjo6VHlw ZSBhcnJheVR5cGUsIGNvbnN0IFN5bmNocm9uaXphdGlvbiYgc3luYywKKyAgICAgICAgICAgICAg ICAgICAgICAgIEF0b21pY09wIG9wLCBSZWdpc3RlciB2YWx1ZSwgY29uc3QgQWRkcmVzcyYgbWVt LAorICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgdmFsdWVUZW1wLCBSZWdpc3RlciBv ZmZzZXRUZW1wLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgbWFza1RlbXAsIFJl Z2lzdGVyIHRlbXAsIEFueVJlZ2lzdGVyIG91dHB1dCkKKy0gICAgICBERUZJTkVEX09OKG1pcHNf c2hhcmVkKTsKKysgICAgICBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBwcGM2NCk7CisgCisgICB2 b2lkIGF0b21pY0ZldGNoT3BKUyhTY2FsYXI6OlR5cGUgYXJyYXlUeXBlLCBjb25zdCBTeW5jaHJv bml6YXRpb24mIHN5bmMsCisgICAgICAgICAgICAgICAgICAgICAgICBBdG9taWNPcCBvcCwgUmVn aXN0ZXIgdmFsdWUsIGNvbnN0IEJhc2VJbmRleCYgbWVtLAorICAgICAgICAgICAgICAgICAgICAg ICAgUmVnaXN0ZXIgdmFsdWVUZW1wLCBSZWdpc3RlciBvZmZzZXRUZW1wLAorICAgICAgICAgICAg ICAgICAgICAgICAgUmVnaXN0ZXIgbWFza1RlbXAsIFJlZ2lzdGVyIHRlbXAsIEFueVJlZ2lzdGVy IG91dHB1dCkKKy0gICAgICBERUZJTkVEX09OKG1pcHNfc2hhcmVkKTsKKysgICAgICBERUZJTkVE X09OKG1pcHNfc2hhcmVkLCBwcGM2NCk7CisgCisgICB2b2lkIGF0b21pY0VmZmVjdE9wSlMoU2Nh bGFyOjpUeXBlIGFycmF5VHlwZSwgY29uc3QgU3luY2hyb25pemF0aW9uJiBzeW5jLAorICAgICAg ICAgICAgICAgICAgICAgICAgIEF0b21pY09wIG9wLCBSZWdpc3RlciB2YWx1ZSwgY29uc3QgQWRk cmVzcyYgbWVtLAorICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHRlbXApIERFRklO RURfT04oYXJtLCBhcm02NCwgeDg2X3NoYXJlZCk7CisgCisgICB2b2lkIGF0b21pY0VmZmVjdE9w SlMoU2NhbGFyOjpUeXBlIGFycmF5VHlwZSwgY29uc3QgU3luY2hyb25pemF0aW9uJiBzeW5jLAor ICAgICAgICAgICAgICAgICAgICAgICAgIEF0b21pY09wIG9wLCBSZWdpc3RlciB2YWx1ZSwgY29u c3QgQmFzZUluZGV4JiBtZW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgdGVt cCkgREVGSU5FRF9PTihhcm0sIGFybTY0LCB4ODZfc2hhcmVkKTsKK0BAIC00MjA5LDIyICs0MjE2 LDIyIEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyIDogcHVibGljIE1hY3JvQXNzZW1ibGVyU3BlY2lm aWMgeworIAorICAgdm9pZCBhdG9taWNFZmZlY3RPcEpTKFNjYWxhcjo6VHlwZSBhcnJheVR5cGUs IGNvbnN0IFN5bmNocm9uaXphdGlvbiYgc3luYywKKyAgICAgICAgICAgICAgICAgICAgICAgICBB dG9taWNPcCBvcCwgSW1tMzIgdmFsdWUsIGNvbnN0IEJhc2VJbmRleCYgbWVtLAorICAgICAgICAg ICAgICAgICAgICAgICAgIFJlZ2lzdGVyIHRlbXApIERFRklORURfT04oeDg2X3NoYXJlZCk7Cisg CisgICB2b2lkIGF0b21pY0VmZmVjdE9wSlMoU2NhbGFyOjpUeXBlIGFycmF5VHlwZSwgY29uc3Qg U3luY2hyb25pemF0aW9uJiBzeW5jLAorICAgICAgICAgICAgICAgICAgICAgICAgIEF0b21pY09w IG9wLCBSZWdpc3RlciB2YWx1ZSwgY29uc3QgQWRkcmVzcyYgbWVtLAorICAgICAgICAgICAgICAg ICAgICAgICAgIFJlZ2lzdGVyIHZhbHVlVGVtcCwgUmVnaXN0ZXIgb2Zmc2V0VGVtcCwKKy0gICAg ICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciBtYXNrVGVtcCkgREVGSU5FRF9PTihtaXBzX3No YXJlZCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIgbWFza1RlbXApIERFRklO RURfT04obWlwc19zaGFyZWQsIHBwYzY0KTsKKyAKKyAgIHZvaWQgYXRvbWljRWZmZWN0T3BKUyhT Y2FsYXI6OlR5cGUgYXJyYXlUeXBlLCBjb25zdCBTeW5jaHJvbml6YXRpb24mIHN5bmMsCisgICAg ICAgICAgICAgICAgICAgICAgICAgQXRvbWljT3Agb3AsIFJlZ2lzdGVyIHZhbHVlLCBjb25zdCBC YXNlSW5kZXgmIG1lbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciB2YWx1ZVRl bXAsIFJlZ2lzdGVyIG9mZnNldFRlbXAsCistICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0 ZXIgbWFza1RlbXApIERFRklORURfT04obWlwc19zaGFyZWQpOworKyAgICAgICAgICAgICAgICAg ICAgICAgIFJlZ2lzdGVyIG1hc2tUZW1wKSBERUZJTkVEX09OKG1pcHNfc2hhcmVkLCBwcGM2NCk7 CisgCisgICB2b2lkIGF0b21pY0lzTG9ja0ZyZWVKUyhSZWdpc3RlciB2YWx1ZSwgUmVnaXN0ZXIg b3V0cHV0KTsKKyAKKyAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgLy8gU3BlY3RyZSBNaXRpZ2F0 aW9ucy4KKyAgIC8vCisgICAvLyBTcGVjdHJlIGF0dGFja3MgYXJlIHNpZGUtY2hhbm5lbCBhdHRh Y2tzIGJhc2VkIG9uIGNhY2hlIHBvbGx1dGlvbiBvcgorICAgLy8gc2xvdy1leGVjdXRpb24gb2Yg c29tZSBpbnN0cnVjdGlvbnMuIFdlIGhhdmUgbXVsdGlwbGUgc3BlY3RyZSBtaXRpZ2F0aW9ucwor QEAgLTQ4MDMsMTcgKzQ4MTAsMTcgQEAgY2xhc3MgTWFjcm9Bc3NlbWJsZXIgOiBwdWJsaWMgTWFj cm9Bc3NlbWJsZXJTcGVjaWZpYyB7CisgICAvLyBTdGFja1BvaW50ZXIgbWFuaXB1bGF0aW9uIGZ1 bmN0aW9ucy4KKyAgIC8vIE9uIEFSTTY0LCB0aGUgU3RhY2tQb2ludGVyIGlzIGltcGxlbWVudGVk IGFzIHR3byBzeW5jaHJvbml6ZWQgcmVnaXN0ZXJzLgorICAgLy8gQ29kZSBzaGFyZWQgYWNyb3Nz IHBsYXRmb3JtcyBtdXN0IHVzZSB0aGVzZSBmdW5jdGlvbnMgdG8gYmUgdmFsaWQuCisgICB0ZW1w bGF0ZSA8dHlwZW5hbWUgVD4KKyAgIGlubGluZSB2b2lkIGFkZFRvU3RhY2tQdHIoVCB0KTsKKyAg IHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgaW5saW5lIHZvaWQgYWRkU3RhY2tQdHJUbyhUIHQp OworIAorLSAgdm9pZCBzdWJGcm9tU3RhY2tQdHIoSW1tMzIgaW1tMzIpIERFRklORURfT04obWlw czMyLCBtaXBzNjQsIGFybSwgeDg2LCB4NjQpOworKyAgdm9pZCBzdWJGcm9tU3RhY2tQdHIoSW1t MzIgaW1tMzIpIERFRklORURfT04obWlwczMyLCBtaXBzNjQsIGFybSwgeDg2LCB4NjQsIHBwYzY0 KTsKKyAgIHZvaWQgc3ViRnJvbVN0YWNrUHRyKFJlZ2lzdGVyIHJlZyk7CisgCisgICB0ZW1wbGF0 ZSA8dHlwZW5hbWUgVD4KKyAgIHZvaWQgc3ViU3RhY2tQdHJGcm9tKFQgdCkgeworICAgICBzdWJQ dHIoZ2V0U3RhY2tQb2ludGVyKCksIHQpOworICAgfQorIAorICAgdGVtcGxhdGUgPHR5cGVuYW1l IFQ+CitkaWZmIC0tZ2l0IGEvanMvc3JjL2ppdC9Nb3ZlRW1pdHRlci5oIGIvanMvc3JjL2ppdC9N b3ZlRW1pdHRlci5oCitpbmRleCA2YzYyYzA1NjFhLi4zMGVlNGI2MWE1IDEwMDY0NAorLS0tIGEv anMvc3JjL2ppdC9Nb3ZlRW1pdHRlci5oCisrKysgYi9qcy9zcmMvaml0L01vdmVFbWl0dGVyLmgK K0BAIC0xMiwxNSArMTIsMTcgQEAKKyAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNKQorICMg IGluY2x1ZGUgImppdC9hcm0vTW92ZUVtaXR0ZXItYXJtLmgiCisgI2VsaWYgZGVmaW5lZChKU19D T0RFR0VOX0FSTTY0KQorICMgIGluY2x1ZGUgImppdC9hcm02NC9Nb3ZlRW1pdHRlci1hcm02NC5o IgorICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpCisgIyAgaW5jbHVkZSAiaml0L21p cHMzMi9Nb3ZlRW1pdHRlci1taXBzMzIuaCIKKyAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQ UzY0KQorICMgIGluY2x1ZGUgImppdC9taXBzNjQvTW92ZUVtaXR0ZXItbWlwczY0LmgiCisrI2Vs aWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQorKyMgIGluY2x1ZGUgImppdC9wcGM2NC9Nb3Zl RW1pdHRlci1wcGM2NC5oIgorICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9OT05FKQorICMgIGlu Y2x1ZGUgImppdC9ub25lL01vdmVFbWl0dGVyLW5vbmUuaCIKKyAjZWxzZQorICMgIGVycm9yICJV bmtub3duIGFyY2hpdGVjdHVyZSEiCisgI2VuZGlmCisgCisgI2VuZGlmIC8qIGppdF9Nb3ZlRW1p dHRlcl9oICovCitkaWZmIC0tZ2l0IGEvanMvc3JjL2ppdC9SZWdpc3RlcnMuaCBiL2pzL3NyYy9q aXQvUmVnaXN0ZXJzLmgKK2luZGV4IDY3Yzg2NjEwMDQuLmVmNDlkZjgzZTUgMTAwNjQ0CistLS0g YS9qcy9zcmMvaml0L1JlZ2lzdGVycy5oCisrKysgYi9qcy9zcmMvaml0L1JlZ2lzdGVycy5oCitA QCAtMTUsMTYgKzE1LDE4IEBACisgI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX0FSTSkKKyAjICBp bmNsdWRlICJqaXQvYXJtL0FyY2hpdGVjdHVyZS1hcm0uaCIKKyAjZWxpZiBkZWZpbmVkKEpTX0NP REVHRU5fQVJNNjQpCisgIyAgaW5jbHVkZSAiaml0L2FybTY0L0FyY2hpdGVjdHVyZS1hcm02NC5o IgorICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpCisgIyAgaW5jbHVkZSAiaml0L21p cHMzMi9BcmNoaXRlY3R1cmUtbWlwczMyLmgiCisgI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX01J UFM2NCkKKyAjICBpbmNsdWRlICJqaXQvbWlwczY0L0FyY2hpdGVjdHVyZS1taXBzNjQuaCIKKysj ZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisrIyAgaW5jbHVkZSAiaml0L3BwYzY0L0Fy Y2hpdGVjdHVyZS1wcGM2NC5oIgorICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9OT05FKQorICMg IGluY2x1ZGUgImppdC9ub25lL0FyY2hpdGVjdHVyZS1ub25lLmgiCisgI2Vsc2UKKyAjICBlcnJv ciAiVW5rbm93biBhcmNoaXRlY3R1cmUhIgorICNlbmRpZgorIAorIG5hbWVzcGFjZSBqcyB7Cisg bmFtZXNwYWNlIGppdCB7CitkaWZmIC0tZ2l0IGEvanMvc3JjL2ppdC9TaGFyZWRJQ0hlbHBlcnMt aW5sLmggYi9qcy9zcmMvaml0L1NoYXJlZElDSGVscGVycy1pbmwuaAoraW5kZXggOTAxYzgwY2Rk OC4uZmQ0YTI3ZDhiYiAxMDA2NDQKKy0tLSBhL2pzL3NyYy9qaXQvU2hhcmVkSUNIZWxwZXJzLWlu bC5oCisrKysgYi9qcy9zcmMvaml0L1NoYXJlZElDSGVscGVycy1pbmwuaAorQEAgLTEyLDE2ICsx MiwxOCBAQAorICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9YNjQpCisgIyAgaW5jbHVkZSAiaml0 L3g2NC9TaGFyZWRJQ0hlbHBlcnMteDY0LWlubC5oIgorICNlbGlmIGRlZmluZWQoSlNfQ09ERUdF Tl9BUk0pCisgIyAgaW5jbHVkZSAiaml0L2FybS9TaGFyZWRJQ0hlbHBlcnMtYXJtLWlubC5oIgor ICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9BUk02NCkKKyAjICBpbmNsdWRlICJqaXQvYXJtNjQv U2hhcmVkSUNIZWxwZXJzLWFybTY0LWlubC5oIgorICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9N SVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpCisgIyAgaW5jbHVkZSAiaml0L21p cHMtc2hhcmVkL1NoYXJlZElDSGVscGVycy1taXBzLXNoYXJlZC1pbmwuaCIKKysjZWxpZiBkZWZp bmVkKEpTX0NPREVHRU5fUFBDNjQpCisrIyAgaW5jbHVkZSAiaml0L3BwYzY0L1NoYXJlZElDSGVs cGVycy1wcGM2NC1pbmwuaCIKKyAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTk9ORSkKKyAjICBp bmNsdWRlICJqaXQvbm9uZS9TaGFyZWRJQ0hlbHBlcnMtbm9uZS1pbmwuaCIKKyAjZWxzZQorICMg IGVycm9yICJVbmtub3duIGFyY2hpdGVjdHVyZSEiCisgI2VuZGlmCisgCisgbmFtZXNwYWNlIGpz IHsKKyBuYW1lc3BhY2Ugaml0IHt9ICAvLyBuYW1lc3BhY2Ugaml0CitkaWZmIC0tZ2l0IGEvanMv c3JjL2ppdC9TaGFyZWRJQ0hlbHBlcnMuaCBiL2pzL3NyYy9qaXQvU2hhcmVkSUNIZWxwZXJzLmgK K2luZGV4IDU2M2NhZTNjY2YuLjczN2NhMWQ1YTUgMTAwNjQ0CistLS0gYS9qcy9zcmMvaml0L1No YXJlZElDSGVscGVycy5oCisrKysgYi9qcy9zcmMvaml0L1NoYXJlZElDSGVscGVycy5oCitAQCAt MTIsMTYgKzEyLDE4IEBACisgI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX1g2NCkKKyAjICBpbmNs dWRlICJqaXQveDY0L1NoYXJlZElDSGVscGVycy14NjQuaCIKKyAjZWxpZiBkZWZpbmVkKEpTX0NP REVHRU5fQVJNKQorICMgIGluY2x1ZGUgImppdC9hcm0vU2hhcmVkSUNIZWxwZXJzLWFybS5oIgor ICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9BUk02NCkKKyAjICBpbmNsdWRlICJqaXQvYXJtNjQv U2hhcmVkSUNIZWxwZXJzLWFybTY0LmgiCisgI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFMz MikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkKKyAjICBpbmNsdWRlICJqaXQvbWlwcy1z aGFyZWQvU2hhcmVkSUNIZWxwZXJzLW1pcHMtc2hhcmVkLmgiCisrI2VsaWYgZGVmaW5lZChKU19D T0RFR0VOX1BQQzY0KQorKyMgIGluY2x1ZGUgImppdC9wcGM2NC9TaGFyZWRJQ0hlbHBlcnMtcHBj NjQuaCIKKyAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTk9ORSkKKyAjICBpbmNsdWRlICJqaXQv bm9uZS9TaGFyZWRJQ0hlbHBlcnMtbm9uZS5oIgorICNlbHNlCisgIyAgZXJyb3IgIlVua25vd24g YXJjaGl0ZWN0dXJlISIKKyAjZW5kaWYKKyAKKyBuYW1lc3BhY2UganMgeworIG5hbWVzcGFjZSBq aXQge30gIC8vIG5hbWVzcGFjZSBqaXQKK2RpZmYgLS1naXQgYS9qcy9zcmMvaml0L1NoYXJlZElD UmVnaXN0ZXJzLmggYi9qcy9zcmMvaml0L1NoYXJlZElDUmVnaXN0ZXJzLmgKK2luZGV4IGM4N2U1 Zjg0MDguLjc2MjM5ZDVkZGUgMTAwNjQ0CistLS0gYS9qcy9zcmMvaml0L1NoYXJlZElDUmVnaXN0 ZXJzLmgKKysrKyBiL2pzL3NyYy9qaXQvU2hhcmVkSUNSZWdpc3RlcnMuaAorQEAgLTE0LDE2ICsx NCwxOCBAQAorICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9BUk0pCisgIyAgaW5jbHVkZSAiaml0 L2FybS9TaGFyZWRJQ1JlZ2lzdGVycy1hcm0uaCIKKyAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5f QVJNNjQpCisgIyAgaW5jbHVkZSAiaml0L2FybTY0L1NoYXJlZElDUmVnaXN0ZXJzLWFybTY0Lmgi CisgI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikKKyAjICBpbmNsdWRlICJqaXQvbWlw czMyL1NoYXJlZElDUmVnaXN0ZXJzLW1pcHMzMi5oIgorICNlbGlmIGRlZmluZWQoSlNfQ09ERUdF Tl9NSVBTNjQpCisgIyAgaW5jbHVkZSAiaml0L21pcHM2NC9TaGFyZWRJQ1JlZ2lzdGVycy1taXBz NjQuaCIKKysjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisrIyAgaW5jbHVkZSAiaml0 L3BwYzY0L1NoYXJlZElDUmVnaXN0ZXJzLXBwYzY0LmgiCisgI2VsaWYgZGVmaW5lZChKU19DT0RF R0VOX05PTkUpCisgIyAgaW5jbHVkZSAiaml0L25vbmUvU2hhcmVkSUNSZWdpc3RlcnMtbm9uZS5o IgorICNlbHNlCisgIyAgZXJyb3IgIlVua25vd24gYXJjaGl0ZWN0dXJlISIKKyAjZW5kaWYKKyAK KyBuYW1lc3BhY2UganMgeworIG5hbWVzcGFjZSBqaXQge30gIC8vIG5hbWVzcGFjZSBqaXQKK2Rp ZmYgLS1naXQgYS9qcy9zcmMvaml0L21vei5idWlsZCBiL2pzL3NyYy9qaXQvbW96LmJ1aWxkCitp bmRleCBmNTBkODZmYzQ0Li44MmNkZGQwN2FmIDEwMDY0NAorLS0tIGEvanMvc3JjL2ppdC9tb3ou YnVpbGQKKysrKyBiL2pzL3NyYy9qaXQvbW96LmJ1aWxkCitAQCAtMjI3LDE3ICsyMjcsMjkgQEAg ZWxpZiBDT05GSUdbIkpTX0NPREVHRU5fTUlQUzMyIl0gb3IgQ09ORklHWyJKU19DT0RFR0VOX01J UFM2NCJdOgorICAgICAgICAgICAgICJtaXBzNjQvQ29kZUdlbmVyYXRvci1taXBzNjQuY3BwIiwK KyAgICAgICAgICAgICAibWlwczY0L0xvd2VyaW5nLW1pcHM2NC5jcHAiLAorICAgICAgICAgICAg ICJtaXBzNjQvTWFjcm9Bc3NlbWJsZXItbWlwczY0LmNwcCIsCisgICAgICAgICAgICAgIm1pcHM2 NC9Nb3ZlRW1pdHRlci1taXBzNjQuY3BwIiwKKyAgICAgICAgICAgICAibWlwczY0L1RyYW1wb2xp bmUtbWlwczY0LmNwcCIsCisgICAgICAgICBdCisgICAgICAgICBpZiBDT05GSUdbIkpTX1NJTVVM QVRPUl9NSVBTNjQiXToKKyAgICAgICAgICAgICBVTklGSUVEX1NPVVJDRVMgKz0gWyJtaXBzNjQv U2ltdWxhdG9yLW1pcHM2NC5jcHAiXQorLQorK2VsaWYgQ09ORklHWyJKU19DT0RFR0VOX1BQQzY0 Il06CisrICAgIGxpcl9pbnB1dHMgKz0gWyJwcGM2NC9MSVItcHBjNjQuaCJdCisrICAgIFVOSUZJ RURfU09VUkNFUyArPSBbCisrICAgICAgICAicHBjNjQvQXJjaGl0ZWN0dXJlLXBwYzY0LmNwcCIs CisrICAgICAgICAicHBjNjQvQXNzZW1ibGVyLXBwYzY0LmNwcCIsCisrICAgICAgICAicHBjNjQv QmFpbG91dHMtcHBjNjQuY3BwIiwKKysgICAgICAgICJwcGM2NC9Db2RlR2VuZXJhdG9yLXBwYzY0 LmNwcCIsCisrICAgICAgICAicHBjNjQvTG93ZXJpbmctcHBjNjQuY3BwIiwKKysgICAgICAgICJw cGM2NC9NYWNyb0Fzc2VtYmxlci1wcGM2NC5jcHAiLAorKyAgICAgICAgInBwYzY0L01vdmVFbWl0 dGVyLXBwYzY0LmNwcCIsCisrICAgICAgICAicHBjNjQvVHJhbXBvbGluZS1wcGM2NC5jcHAiLAor KyAgICAgICAgInNoYXJlZC9BdG9taWNPcGVyYXRpb25zLXNoYXJlZC1qaXQuY3BwIiwKKysgICAg XQorIAorICMgR2VuZXJhdGUgaml0L01JUk9wc0dlbmVyYXRlZC5oIGZyb20gaml0L01JUk9wcy55 YW1sCisgR2VuZXJhdGVkRmlsZSgKKyAgICAgIk1JUk9wc0dlbmVyYXRlZC5oIiwKKyAgICAgc2Ny aXB0PSJHZW5lcmF0ZU1JUkZpbGVzLnB5IiwKKyAgICAgZW50cnlfcG9pbnQ9ImdlbmVyYXRlX21p cl9oZWFkZXIiLAorICAgICBpbnB1dHM9WyJNSVJPcHMueWFtbCJdLAorICkKK2RpZmYgLS1naXQg YS9qcy9zcmMvaml0L3NoYXJlZC9Bc3NlbWJsZXItc2hhcmVkLmggYi9qcy9zcmMvaml0L3NoYXJl ZC9Bc3NlbWJsZXItc2hhcmVkLmgKK2luZGV4IGRmYjJiY2I2YjguLjY5YmE3NTlkNDIgMTAwNjQ0 CistLS0gYS9qcy9zcmMvaml0L3NoYXJlZC9Bc3NlbWJsZXItc2hhcmVkLmgKKysrKyBiL2pzL3Ny Yy9qaXQvc2hhcmVkL0Fzc2VtYmxlci1zaGFyZWQuaAorQEAgLTIwLDIzICsyMCwyNCBAQAorICNp bmNsdWRlICJqaXQvUmVnaXN0ZXJzLmgiCisgI2luY2x1ZGUgImppdC9SZWdpc3RlclNldHMuaCIK KyAjaW5jbHVkZSAianMvU2NhbGFyVHlwZS5oIiAgLy8ganM6OlNjYWxhcjo6VHlwZQorICNpbmNs dWRlICJ2bS9IZWxwZXJUaHJlYWRzLmgiCisgI2luY2x1ZGUgInZtL05hdGl2ZU9iamVjdC5oIgor ICNpbmNsdWRlICJ3YXNtL1dhc21UeXBlcy5oIgorIAorICNpZiBkZWZpbmVkKEpTX0NPREVHRU5f QVJNKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fQVJNNjQpIHx8IFwKKy0gICAgZGVmaW5lZChKU19D T0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkKKysgICAgZGVmaW5l ZChKU19DT0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkgfHwgXAor KyAgICBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisgLy8gUHVzaCByZXR1cm4gYWRkcmVzc2Vz IGNhbGxlZS1zaWRlLgorICMgIGRlZmluZSBKU19VU0VfTElOS19SRUdJU1RFUgorICNlbmRpZgor IAorICNpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5f TUlQUzY0KSB8fCBcCistICAgIGRlZmluZWQoSlNfQ09ERUdFTl9BUk02NCkKKysgICAgZGVmaW5l ZChKU19DT0RFR0VOX0FSTTY0KSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisgLy8gSlNf Q09ERUxBQkVMX0xJTktNT0RFIGdpdmVzIGxhYmVscyBhZGRpdGlvbmFsIG1ldGFkYXRhCisgLy8g ZGVzY3JpYmluZyBob3cgQmluZCgpIHNob3VsZCBwYXRjaCB0aGVtLgorICMgIGRlZmluZSBKU19D T0RFTEFCRUxfTElOS01PREUKKyAjZW5kaWYKKyAKKyBuYW1lc3BhY2UganMgeworIG5hbWVzcGFj ZSBqaXQgeworIAorZGlmZiAtLWdpdCBhL2pzL3NyYy9qaXQvc2hhcmVkL0F0b21pY09wZXJhdGlv bnMtc2hhcmVkLWppdC5jcHAgYi9qcy9zcmMvaml0L3NoYXJlZC9BdG9taWNPcGVyYXRpb25zLXNo YXJlZC1qaXQuY3BwCitpbmRleCA3OTQ2M2YxMThiLi43YzhlZWFmODllIDEwMDY0NAorLS0tIGEv anMvc3JjL2ppdC9zaGFyZWQvQXRvbWljT3BlcmF0aW9ucy1zaGFyZWQtaml0LmNwcAorKysrIGIv anMvc3JjL2ppdC9zaGFyZWQvQXRvbWljT3BlcmF0aW9ucy1zaGFyZWQtaml0LmNwcAorQEAgLTEz MywxNiArMTMzLDM4IEBAIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXIgQXRvbWljVGVtcCA9IGVk eDsKKyAvLyA2NC1iaXQgcmVnaXN0ZXJzIGZvciBjbXB4Y2hnOGIuICBWYWxSZWcvVmFsMlJlZy9U ZW1wIGFyZSBub3QgdXNlZCBpbiB0aGlzCisgLy8gY2FzZS4KKyAKKyBzdGF0aWMgY29uc3RleHBy IFJlZ2lzdGVyNjQgQXRvbWljVmFsUmVnNjQoZWR4LCBlYXgpOworIHN0YXRpYyBjb25zdGV4cHIg UmVnaXN0ZXI2NCBBdG9taWNWYWwyUmVnNjQoZWN4LCBlYngpOworIAorIC8vIEF0b21pY1JldHVy blJlZzY0IGlzIHVudXNlZCBvbiB4ODYuCisgCisrI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQ QzY0KQorKworKy8vIFNlbGVjdGVkIHJlZ2lzdGVycyBtYXRjaCB0aGUgYXJndW1lbnQgcmVnaXN0 ZXJzLCBleGNlcHQgdGhhdCB0aGUgUHRyIGlzIG5vdAorKy8vIGluIEludEFyZ1JlZzAgc28gYXMg bm90IHRvIGNvbmZsaWN0IHdpdGggdGhlIHJlc3VsdCByZWdpc3Rlci4KKysKKytzdGF0aWMgY29u c3QgTGl2ZVJlZ2lzdGVyU2V0IEF0b21pY05vblZvbGF0aWxlUmVnczsKKysKKytzdGF0aWMgY29u c3RleHByIFJlZ2lzdGVyIEF0b21pY1B0clJlZyA9IEludEFyZ1JlZzQ7Cisrc3RhdGljIGNvbnN0 ZXhwciBSZWdpc3RlciBBdG9taWNQdHIyUmVnID0gSW50QXJnUmVnMTsKKytzdGF0aWMgY29uc3Rl eHByIFJlZ2lzdGVyIEF0b21pY1ZhbFJlZyA9IEludEFyZ1JlZzE7Cisrc3RhdGljIGNvbnN0ZXhw ciBSZWdpc3RlcjY0IEF0b21pY1ZhbFJlZzY0KEludEFyZ1JlZzEpOworK3N0YXRpYyBjb25zdGV4 cHIgUmVnaXN0ZXIgQXRvbWljVmFsMlJlZyA9IEludEFyZ1JlZzI7Cisrc3RhdGljIGNvbnN0ZXhw ciBSZWdpc3RlcjY0IEF0b21pY1ZhbDJSZWc2NChJbnRBcmdSZWcyKTsKKytzdGF0aWMgY29uc3Rl eHByIFJlZ2lzdGVyIEF0b21pY1RlbXAgPSBJbnRBcmdSZWczOworK3N0YXRpYyBjb25zdGV4cHIg UmVnaXN0ZXIgQXRvbWljVGVtcDIgPSBJbnRBcmdSZWc1OworK3N0YXRpYyBjb25zdGV4cHIgUmVn aXN0ZXIgQXRvbWljVGVtcDMgPSBJbnRBcmdSZWc2OworK3N0YXRpYyBjb25zdGV4cHIgUmVnaXN0 ZXI2NCBBdG9taWNUZW1wNjQoSW50QXJnUmVnMyk7Cisrc3RhdGljIGNvbnN0ZXhwciBSZWdpc3Rl cjY0IEF0b21pY1RlbXA2NF8yKEludEFyZ1JlZzUpOworK3N0YXRpYyBjb25zdGV4cHIgUmVnaXN0 ZXI2NCBBdG9taWNUZW1wNjRfMyhJbnRBcmdSZWc2KTsKKysKKytzdGF0aWMgY29uc3RleHByIFJl Z2lzdGVyNjQgQXRvbWljUmV0dXJuUmVnNjQgPSBSZXR1cm5SZWc2NDsKKysKKyAjZWxzZQorICMg IGVycm9yICJVbnN1cHBvcnRlZCBwbGF0Zm9ybSIKKyAjZW5kaWYKKyAKKyAvLyBUaGVzZSBhcmUg dXNlZnVsIHNob3J0aGFuZHMgYW5kIGhpZGUgdGhlIG1lYW5pbmdsZXNzIHVpbnQvaW50IGRpc3Rp bmN0aW9uLgorIAorIHN0YXRpYyBjb25zdGV4cHIgU2NhbGFyOjpUeXBlIFNJWkU4ID0gU2NhbGFy OjpVaW50ODsKKyBzdGF0aWMgY29uc3RleHByIFNjYWxhcjo6VHlwZSBTSVpFMTYgPSBTY2FsYXI6 OlVpbnQxNjsKK0BAIC0yNDgsMzEgKzI3MCwzNyBAQCBzdGF0aWMgdWludDMyX3QgR2VuUHJvbG9n dWUoTWFjcm9Bc3NlbWJsZXImIG1hc20sIEFyZ0l0ZXJhdG9yKiBpdGVyKSB7CisgICB1aW50MzJf dCBzdGFydCA9IG1hc20uY3VycmVudE9mZnNldCgpOworICAgbWFzbS5QdXNoUmVnc0luTWFzayhB dG9taWNOb25Wb2xhdGlsZVJlZ3MpOworICNpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNKSB8fCBk ZWZpbmVkKEpTX0NPREVHRU5fQVJNNjQpCisgICAvLyBUaGUgcmV0dXJuIGFkZHJlc3MgaXMgYW1v bmcgdGhlIG5vbnZvbGF0aWxlIHJlZ2lzdGVycywgaWYgcHVzaGVkIGF0IGFsbC4KKyAgIGl0ZXIt PmFyZ0Jhc2UgPSBtYXNtLmZyYW1lUHVzaGVkKCk7CisgI2VsaWYgZGVmaW5lZChKU19DT0RFR0VO X1g4NikgfHwgZGVmaW5lZChKU19DT0RFR0VOX1g2NCkKKyAgIC8vIFRoZSByZXR1cm4gYWRkcmVz cyBpcyBwdXNoZWQgc2VwYXJhdGVseS4KKyAgIGl0ZXItPmFyZ0Jhc2UgPSBzaXplb2Yodm9pZCop ICsgbWFzbS5mcmFtZVB1c2hlZCgpOworKyNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkK KysvLyBYWFgKKysgIC8vIFRoZSByZXR1cm4gYWRkcmVzcyBpcyBpbiBMUiAoYW4gU1BSKTsgaXQn cyBub3QgKHByb2JhYmx5KSBvbiB0aGUgc3RhY2suCisrICBpdGVyLT5hcmdCYXNlID0gbWFzbS5m cmFtZVB1c2hlZCgpOworICNlbHNlCisgIyAgZXJyb3IgIlVuc3VwcG9ydGVkIHBsYXRmb3JtIgor ICNlbmRpZgorICAgcmV0dXJuIHN0YXJ0OworIH0KKyAKKyBzdGF0aWMgdm9pZCBHZW5FcGlsb2d1 ZShNYWNyb0Fzc2VtYmxlciYgbWFzbSkgeworICAgbWFzbS5Qb3BSZWdzSW5NYXNrKEF0b21pY05v blZvbGF0aWxlUmVncyk7CisgICBNT1pfQVNTRVJUKG1hc20uZnJhbWVQdXNoZWQoKSA9PSAwKTsK KyAjaWYgZGVmaW5lZChKU19DT0RFR0VOX0FSTTY0KQorICAgbWFzbS5SZXQoKTsKKyAjZWxpZiBk ZWZpbmVkKEpTX0NPREVHRU5fQVJNKQorICAgbWFzbS5tb3YobHIsIHBjKTsKKyAjZWxpZiBkZWZp bmVkKEpTX0NPREVHRU5fWDg2KSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fWDY0KQorICAgbWFzbS5y ZXQoKTsKKysjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisrICBtYXNtLmFzX2Jscigp OworICNlbmRpZgorIH0KKyAKKyAjaWZuZGVmIEpTXzY0QklUCisgc3RhdGljIHVpbnQzMl90IEdl bk5vcChNYWNyb0Fzc2VtYmxlciYgbWFzbSkgeworICAgQXJnSXRlcmF0b3IgaXRlcjsKKyAgIHVp bnQzMl90IHN0YXJ0ID0gR2VuUHJvbG9ndWUobWFzbSwgJml0ZXIpOworICAgR2VuRXBpbG9ndWUo bWFzbSk7CitAQCAtNDE0LDIxICs0NDIsMzEgQEAgc3RhdGljIHVpbnQzMl90IEdlbkNtcHhjaGco TWFjcm9Bc3NlbWJsZXImIG1hc20sIFNjYWxhcjo6VHlwZSBzaXplLAorICAgQXJnSXRlcmF0b3Ig aXRlcjsKKyAgIHVpbnQzMl90IHN0YXJ0ID0gR2VuUHJvbG9ndWUobWFzbSwgJml0ZXIpOworICAg R2VuR3ByQXJnKG1hc20sIE1JUlR5cGU6OlBvaW50ZXIsICZpdGVyLCBBdG9taWNQdHJSZWcpOwor IAorICAgQWRkcmVzcyBhZGRyKEF0b21pY1B0clJlZywgMCk7CisgICBzd2l0Y2ggKHNpemUpIHsK KyAgICAgY2FzZSBTSVpFODoKKyAgICAgY2FzZSBTSVpFMTY6CisrI2lmIGRlZmluZWQoSlNfQ09E RUdFTl9QUEM2NCkKKysgICAgICBtYXNtLmNvbXBhcmVFeGNoYW5nZShzaXplLCBzeW5jLCBhZGRy LCBBdG9taWNWYWxSZWcsIEF0b21pY1ZhbDJSZWcsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgQXRvbWljVGVtcCwgQXRvbWljVGVtcDIsIEF0b21pY1RlbXAzLCBSZXR1cm5SZWcpOworKyAg ICAgIGJyZWFrOworKyNlbmRpZgorICAgICBjYXNlIFNJWkUzMjoKKyAgICAgICBHZW5HcHJBcmco bWFzbSwgTUlSVHlwZTo6SW50MzIsICZpdGVyLCBBdG9taWNWYWxSZWcpOworICAgICAgIEdlbkdw ckFyZyhtYXNtLCBNSVJUeXBlOjpJbnQzMiwgJml0ZXIsIEF0b21pY1ZhbDJSZWcpOworKyNpZiBk ZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisrICAgICAgbWFzbS5jb21wYXJlRXhjaGFuZ2Uoc2l6 ZSwgc3luYywgYWRkciwgQXRvbWljVmFsUmVnLCBBdG9taWNWYWwyUmVnLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIEludmFsaWRSZWcsIEludmFsaWRSZWcsIEludmFsaWRSZWcsIFJldHVy blJlZyk7CisrI2Vsc2UKKyAgICAgICBtYXNtLmNvbXBhcmVFeGNoYW5nZShzaXplLCBzeW5jLCBh ZGRyLCBBdG9taWNWYWxSZWcsIEF0b21pY1ZhbDJSZWcsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuUmVnKTsKKysjZW5kaWYKKyAgICAgICBicmVhazsKKyAgICAgY2FzZSBTSVpF NjQ6CisgICAgICAgR2VuR3ByNjRBcmcobWFzbSwgJml0ZXIsIEF0b21pY1ZhbFJlZzY0KTsKKyAg ICAgICBHZW5HcHI2NEFyZyhtYXNtLCAmaXRlciwgQXRvbWljVmFsMlJlZzY0KTsKKyAjaWYgZGVm aW5lZChKU19DT0RFR0VOX1g4NikKKyAgICAgICBzdGF0aWNfYXNzZXJ0KEF0b21pY1ZhbFJlZzY0 ID09IFJlZ2lzdGVyNjQoZWR4LCBlYXgpKTsKKyAgICAgICBzdGF0aWNfYXNzZXJ0KEF0b21pY1Zh bDJSZWc2NCA9PSBSZWdpc3RlcjY0KGVjeCwgZWJ4KSk7CisgCitAQCAtNDUzLDE5ICs0OTEsMjkg QEAgc3RhdGljIHVpbnQzMl90IEdlbkV4Y2hhbmdlKE1hY3JvQXNzZW1ibGVyJiBtYXNtLCBTY2Fs YXI6OlR5cGUgc2l6ZSwKKyAgIEFyZ0l0ZXJhdG9yIGl0ZXI7CisgICB1aW50MzJfdCBzdGFydCA9 IEdlblByb2xvZ3VlKG1hc20sICZpdGVyKTsKKyAgIEdlbkdwckFyZyhtYXNtLCBNSVJUeXBlOjpQ b2ludGVyLCAmaXRlciwgQXRvbWljUHRyUmVnKTsKKyAKKyAgIEFkZHJlc3MgYWRkcihBdG9taWNQ dHJSZWcsIDApOworICAgc3dpdGNoIChzaXplKSB7CisgICAgIGNhc2UgU0laRTg6CisgICAgIGNh c2UgU0laRTE2OgorKyNpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisrICAgICAgbWFzbS5h dG9taWNFeGNoYW5nZShzaXplLCBzeW5jLCBhZGRyLCBBdG9taWNWYWxSZWcsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICBBdG9taWNUZW1wLCBBdG9taWNUZW1wMiwgQXRvbWljVGVtcDMsIFJl dHVyblJlZyk7CisrICAgICAgYnJlYWs7CisrI2VuZGlmCisgICAgIGNhc2UgU0laRTMyOgorICAg ICAgIEdlbkdwckFyZyhtYXNtLCBNSVJUeXBlOjpJbnQzMiwgJml0ZXIsIEF0b21pY1ZhbFJlZyk7 CisrI2lmIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKKysgICAgICBtYXNtLmF0b21pY0V4Y2hh bmdlKHNpemUsIHN5bmMsIGFkZHIsIEF0b21pY1ZhbFJlZywKKysgICAgICAgICAgICAgICAgICAg ICAgICAgIEludmFsaWRSZWcsIEludmFsaWRSZWcsIEludmFsaWRSZWcsIFJldHVyblJlZyk7Cisr I2Vsc2UKKyAgICAgICBtYXNtLmF0b21pY0V4Y2hhbmdlKHNpemUsIHN5bmMsIGFkZHIsIEF0b21p Y1ZhbFJlZywgUmV0dXJuUmVnKTsKKysjZW5kaWYKKyAgICAgICBicmVhazsKKyAgICAgY2FzZSBT SVpFNjQ6CisgI2lmIGRlZmluZWQoSlNfNjRCSVQpCisgICAgICAgR2VuR3ByNjRBcmcobWFzbSwg Jml0ZXIsIEF0b21pY1ZhbFJlZzY0KTsKKyAgICAgICBtYXNtLmF0b21pY0V4Y2hhbmdlNjQoc3lu YywgYWRkciwgQXRvbWljVmFsUmVnNjQsIEF0b21pY1JldHVyblJlZzY0KTsKKyAgICAgICBicmVh azsKKyAjZWxzZQorICAgICAgIE1PWl9DUkFTSCgiNjQtYml0IGF0b21pYyBleGNoYW5nZSBub3Qg YXZhaWxhYmxlIG9uIHRoaXMgcGxhdGZvcm0iKTsKK0BAIC00OTIsMTcgKzU0MCwyMiBAQCBzdGF0 aWMgdWludDMyX3QgR2VuRmV0Y2hPcChNYWNyb0Fzc2VtYmxlciYgbWFzbSwgU2NhbGFyOjpUeXBl IHNpemUsIEF0b21pY09wIG9wLAorICNpZiBkZWZpbmVkKEpTX0NPREVHRU5fWDg2KSB8fCBkZWZp bmVkKEpTX0NPREVHRU5fWDY0KQorICAgICAgIFJlZ2lzdGVyIHRtcCA9IG9wID09IEF0b21pY0Zl dGNoQWRkT3AgfHwgb3AgPT0gQXRvbWljRmV0Y2hTdWJPcAorICAgICAgICAgICAgICAgICAgICAg ICAgICA/IFJlZ2lzdGVyOjpJbnZhbGlkKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOiBB dG9taWNUZW1wOworICNlbHNlCisgICAgICAgUmVnaXN0ZXIgdG1wID0gQXRvbWljVGVtcDsKKyAj ZW5kaWYKKyAgICAgICBHZW5HcHJBcmcobWFzbSwgTUlSVHlwZTo6SW50MzIsICZpdGVyLCBBdG9t aWNWYWxSZWcpOworKyNpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisrICAgICAgbWFzbS5h dG9taWNGZXRjaE9wKHNpemUsIHN5bmMsIG9wLCBBdG9taWNWYWxSZWcsIGFkZHIsIHRtcCwgQXRv bWljVGVtcDIsCisrICAgICAgICAgICAgICAgICAgICAgICAgIEF0b21pY1RlbXAzLCBSZXR1cm5S ZWcpOworKyNlbHNlCisgICAgICAgbWFzbS5hdG9taWNGZXRjaE9wKHNpemUsIHN5bmMsIG9wLCBB dG9taWNWYWxSZWcsIGFkZHIsIHRtcCwgUmV0dXJuUmVnKTsKKysjZW5kaWYKKyAgICAgICBicmVh azsKKyAgICAgfQorICAgICBjYXNlIFNJWkU2NDogeworICNpZiBkZWZpbmVkKEpTXzY0QklUKQor ICMgIGlmIGRlZmluZWQoSlNfQ09ERUdFTl9YNjQpCisgICAgICAgUmVnaXN0ZXI2NCB0bXAgPSBv cCA9PSBBdG9taWNGZXRjaEFkZE9wIHx8IG9wID09IEF0b21pY0ZldGNoU3ViT3AKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICA/IFJlZ2lzdGVyNjQ6OkludmFsaWQoKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDogQXRvbWljVGVtcDY0OworQEAgLTYzNiwxNiArNjg5LDE5IEBAIHN0 YXRpYyBib29sIFVuYWxpZ25lZEFjY2Vzc2VzQXJlT0soKSB7CisgI2VuZGlmCisgI2lmIGRlZmlu ZWQoSlNfQ09ERUdFTl9YODYpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9YNjQpCisgICByZXR1cm4g dHJ1ZTsKKyAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNKQorICAgcmV0dXJuICFIYXNBbGln bm1lbnRGYXVsdCgpOworICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9BUk02NCkKKyAgIC8vIFRo aXMgaXMgbm90IG5lY2Vzc2FyaWx5IHRydWUgYnV0IGl0J3MgdGhlIGJlc3QgZ3Vlc3MgcmlnaHQg bm93LgorICAgcmV0dXJuIHRydWU7CisrI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQor KyAgLy8gV2UnZCBzdXJlIGxpa2UgdG8gYXZvaWQgaXQsIGV2ZW4gdGhvdWdoIGl0IHdvcmtzLgor KyAgcmV0dXJuIGZhbHNlOworICNlbHNlCisgIyAgZXJyb3IgIlVuc3VwcG9ydGVkIHBsYXRmb3Jt IgorICNlbmRpZgorIH0KKyAKKyB2b2lkIEF0b21pY01lbWNweURvd25VbnN5bmNocm9uaXplZCh1 aW50OF90KiBkZXN0LCBjb25zdCB1aW50OF90KiBzcmMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZV90IG5ieXRlcykgeworICAgY29uc3QgdWludDhfdCogbGltID0g c3JjICsgbmJ5dGVzOworZGlmZiAtLWdpdCBhL2pzL3NyYy9qc2FwaS10ZXN0cy90ZXN0Sml0QUJJ Y2FsbHMuY3BwIGIvanMvc3JjL2pzYXBpLXRlc3RzL3Rlc3RKaXRBQkljYWxscy5jcHAKK2luZGV4 IDAyYjY3ZGEzY2EuLmJkNDUzODliMjEgMTAwNjQ0CistLS0gYS9qcy9zcmMvanNhcGktdGVzdHMv dGVzdEppdEFCSWNhbGxzLmNwcAorKysrIGIvanMvc3JjL2pzYXBpLXRlc3RzL3Rlc3RKaXRBQklj YWxscy5jcHAKK0BAIC02NTMsMTYgKzY1MywxOSBAQCBjbGFzcyBKaXRBQklDYWxsIGZpbmFsIDog cHVibGljIEpTQVBJVGVzdCwgcHVibGljIERlZmluZUNoZWNrQXJnczxTaWc+IHsKKyAgICAgUmVn aXN0ZXIgYmFzZSA9IHI4OworICAgICByZWdzLnRha2UoYmFzZSk7CisgI2VsaWYgZGVmaW5lZChK U19DT0RFR0VOX01JUFMzMikKKyAgICAgUmVnaXN0ZXIgYmFzZSA9IHQxOworICAgICByZWdzLnRh a2UoYmFzZSk7CisgI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkKKyAgICAgUmVnaXN0 ZXIgYmFzZSA9IHQxOworICAgICByZWdzLnRha2UoYmFzZSk7CisrI2VsaWYgZGVmaW5lZChKU19D T0RFR0VOX1BQQzY0KQorKyAgICBSZWdpc3RlciBiYXNlID0gcjA7CisrICAgIHJlZ3MudGFrZShi YXNlKTsKKyAjZWxzZQorICMgIGVycm9yICJVbmtub3duIGFyY2hpdGVjdHVyZSEiCisgI2VuZGlm CisgCisgICAgIFJlZ2lzdGVyIHNldHVwID0gcmVncy50YWtlQW55KCk7CisgCisgICAgIHRoaXMt PmdlbmVyYXRlQ2FsbHMobWFzbSwgYmFzZSwgc2V0dXApOworIAorZGlmZiAtLWdpdCBhL2pzL3Ny Yy9qc2FwaS10ZXN0cy90ZXN0c0ppdC5jcHAgYi9qcy9zcmMvanNhcGktdGVzdHMvdGVzdHNKaXQu Y3BwCitpbmRleCAwNjllZWY0M2ZlLi43MDU2MDlkZjJjIDEwMDY0NAorLS0tIGEvanMvc3JjL2pz YXBpLXRlc3RzL3Rlc3RzSml0LmNwcAorKysrIGIvanMvc3JjL2pzYXBpLXRlc3RzL3Rlc3RzSml0 LmNwcAorQEAgLTIwLDE2ICsyMCwyMSBAQCB2b2lkIFByZXBhcmVKaXQoanM6OmppdDo6TWFjcm9B c3NlbWJsZXImIG1hc20pIHsKKyAjZW5kaWYKKyAgIEFsbG9jYXRhYmxlUmVnaXN0ZXJTZXQgcmVn cyhSZWdpc3RlclNldDo6QWxsKCkpOworICAgTGl2ZVJlZ2lzdGVyU2V0IHNhdmUocmVncy5hc0xp dmVTZXQoKSk7CisgI2lmIGRlZmluZWQoSlNfQ09ERUdFTl9BUk0pCisgICBzYXZlLmFkZChqczo6 aml0OjpkMTUpOworICNlbmRpZgorICNpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKSB8fCBk ZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KQorICAgc2F2ZS5hZGQoanM6OmppdDo6cmEpOworKyNl bGlmIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKKysgIC8vIFhYWAorKyAgLy8gUHVzaCB0aGUg bGluayByZWdpc3RlciBzZXBhcmF0ZWx5LCBzaW5jZSBpdCdzIG5vdCBhIEdQUi4KKysgIG1hc20u eHNfbWZscihTY3JhdGNoUmVnaXN0ZXIpOworKyAgbWFzbS5hc19zdGR1KFNjcmF0Y2hSZWdpc3Rl ciwgU3RhY2tQb2ludGVyLCAtOCk7CisgI2VsaWYgZGVmaW5lZChKU19VU0VfTElOS19SRUdJU1RF UikKKyAgIHNhdmUuYWRkKGpzOjpqaXQ6OmxyKTsKKyAjZW5kaWYKKyAgIG1hc20uUHVzaFJlZ3NJ bk1hc2soc2F2ZSk7CisgfQorIAorIC8vIEdlbmVyYXRlIHRoZSBleGl0IHBhdGggb2YgdGhlIEpJ VCBjb2RlLCB3aGljaCByZXN0b3JlcyBldmVyeSByZWdpc3Rlci4gVGhlbiwKKyAvLyBtYWtlIGl0 IGV4ZWN1dGFibGUgYW5kIHJ1biBpdC4KK0BAIC0zNywyNiArNDIsMzUgQEAgYm9vbCBFeGVjdXRl Sml0KEpTQ29udGV4dCogY3gsIGpzOjpqaXQ6Ok1hY3JvQXNzZW1ibGVyJiBtYXNtKSB7CisgICB1 c2luZyBuYW1lc3BhY2UganM6OmppdDsKKyAgIEFsbG9jYXRhYmxlUmVnaXN0ZXJTZXQgcmVncyhS ZWdpc3RlclNldDo6QWxsKCkpOworICAgTGl2ZVJlZ2lzdGVyU2V0IHNhdmUocmVncy5hc0xpdmVT ZXQoKSk7CisgI2lmIGRlZmluZWQoSlNfQ09ERUdFTl9BUk0pCisgICBzYXZlLmFkZChqczo6aml0 OjpkMTUpOworICNlbmRpZgorICNpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKSB8fCBkZWZp bmVkKEpTX0NPREVHRU5fTUlQUzY0KQorICAgc2F2ZS5hZGQoanM6OmppdDo6cmEpOworKyNlbGlm IGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKKysgIC8vIFdlIHBvcCBhZnRlciBsb2FkaW5nIHRo ZSByZWdzLgorICNlbGlmIGRlZmluZWQoSlNfVVNFX0xJTktfUkVHSVNURVIpCisgICBzYXZlLmFk ZChqczo6aml0Ojpscik7CisgI2VuZGlmCisgICBtYXNtLlBvcFJlZ3NJbk1hc2soc2F2ZSk7Cisg I2lmIGRlZmluZWQoSlNfQ09ERUdFTl9BUk02NCkKKyAgIC8vIFJldHVybiB1c2luZyB0aGUgdmFs dWUgcG9wcGVkIGludG8geDMwLgorICAgbWFzbS5hYmlyZXQoKTsKKyAKKyAgIC8vIFJlc2V0IHN0 YWNrIHBvaW50ZXIuCisgICBtYXNtLlNldFN0YWNrUG9pbnRlcjY0KFBzZXVkb1N0YWNrUG9pbnRl cjY0KTsKKysjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisrICAvLyBYWFgKKysgIC8v IFBvcCBMUiBhbmQgZXhpdC4KKysgIG1hc20uYXNfbGQoU2NyYXRjaFJlZ2lzdGVyLCBTdGFja1Bv aW50ZXIsIDApOworKyAgbWFzbS54c19tdGxyKFNjcmF0Y2hSZWdpc3Rlcik7CisrICBtYXNtLmFz X2FkZGkoU3RhY2tQb2ludGVyLCBTdGFja1BvaW50ZXIsIDgpOworKyAgbWFzbS5hc19ibHIoKTsK KyAjZWxzZQorICAgLy8gRXhpdCB0aGUgSklULWVkIGNvZGUgdXNpbmcgdGhlIEFCSSByZXR1cm4g c3R5bGUuCisgICBtYXNtLmFiaXJldCgpOworICNlbmRpZgorIAorICAgaWYgKG1hc20ub29tKCkp IHsKKyAgICAgcmV0dXJuIGZhbHNlOworICAgfQorZGlmZiAtLWdpdCBhL2pzL3NyYy91dGlsL1Bv aXNvbi5oIGIvanMvc3JjL3V0aWwvUG9pc29uLmgKK2luZGV4IDgzNTZjYTFmMDAuLjVlZWIxMTFj ZjggMTAwNjQ0CistLS0gYS9qcy9zcmMvdXRpbC9Qb2lzb24uaAorKysrIGIvanMvc3JjL3V0aWwv UG9pc29uLmgKK0BAIC04OCwxNiArODgsMTggQEAgY29uc3QgdWludDhfdCBKU19TQ09QRV9EQVRB X1RSQUlMSU5HX05BTUVTX1BBVFRFUk4gPSAweENDOworICAqLworICNpZiBkZWZpbmVkKEpTX0NP REVHRU5fWDg2KSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fWDY0KSB8fCBcCisgICAgIGRlZmluZWQo SlNfQ09ERUdFTl9OT05FKQorICMgIGRlZmluZSBKU19TV0VQVF9DT0RFX1BBVFRFUk4gMHhFRCAg Ly8gSU4gaW5zdHJ1Y3Rpb24sIGNyYXNoZXMgaW4gdXNlciBtb2RlLgorICNlbGlmIGRlZmluZWQo SlNfQ09ERUdFTl9BUk0pIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9BUk02NCkKKyAjICBkZWZpbmUg SlNfU1dFUFRfQ09ERV9QQVRURVJOIDB4QTMgIC8vIHVuZGVmaW5lZCBpbnN0cnVjdGlvbgorICNl bGlmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBT NjQpCisgIyAgZGVmaW5lIEpTX1NXRVBUX0NPREVfUEFUVEVSTiAweDAxICAvLyB1bmRlZmluZWQg aW5zdHJ1Y3Rpb24KKysjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpIHx8IGRlZmluZWQo SlNfQ09ERUdFTl9QUEMpCisrIyAgZGVmaW5lIEpTX1NXRVBUX0NPREVfUEFUVEVSTiAweDAwICAv LyBhcmNoaXRlY3R1cmFsbHkgZGVmaW5lZCBhcyBpbGxlZ2FsCisgI2Vsc2UKKyAjICBlcnJvciAi SlNfU1dFUFRfQ09ERV9QQVRURVJOIG5vdCBkZWZpbmVkIGZvciB0aGlzIHBsYXRmb3JtIgorICNl bmRpZgorIAorIGVudW0gY2xhc3MgTWVtQ2hlY2tLaW5kIDogdWludDhfdCB7CisgICAvLyBNYXJr cyBhIHJlZ2lvbiBhcyBwb2lzb25lZC4gTWVtb3J5IHNhbml0aXplcnMgbGlrZSBBU2FuIHdpbGwg Y3Jhc2ggd2hlbgorICAgLy8gYWNjZXNzaW5nIGl0IChib3RoIHJlYWRzIGFuZCB3cml0ZXMpLgor ICAgTWFrZU5vQWNjZXNzLAorZGlmZiAtLWdpdCBhL2pzL3NyYy93YXNtL1dhc21CYXNlbGluZUNv bXBpbGUuY3BwIGIvanMvc3JjL3dhc20vV2FzbUJhc2VsaW5lQ29tcGlsZS5jcHAKK2luZGV4IDE1 NmYzY2JiYmEuLmFiMjlmNDQ3MTMgMTAwNjQ0CistLS0gYS9qcy9zcmMvd2FzbS9XYXNtQmFzZWxp bmVDb21waWxlLmNwcAorKysrIGIvanMvc3JjL3dhc20vV2FzbUJhc2VsaW5lQ29tcGlsZS5jcHAK K0BAIC0xMzgsMTYgKzEzOCwxOSBAQAorICNpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKQor ICMgIGluY2x1ZGUgImppdC9taXBzLXNoYXJlZC9Bc3NlbWJsZXItbWlwcy1zaGFyZWQuaCIKKyAj ICBpbmNsdWRlICJqaXQvbWlwczMyL0Fzc2VtYmxlci1taXBzMzIuaCIKKyAjZW5kaWYKKyAjaWYg ZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkKKyAjICBpbmNsdWRlICJqaXQvbWlwcy1zaGFyZWQv QXNzZW1ibGVyLW1pcHMtc2hhcmVkLmgiCisgIyAgaW5jbHVkZSAiaml0L21pcHM2NC9Bc3NlbWJs ZXItbWlwczY0LmgiCisgI2VuZGlmCisrI2lmIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKKysj ICBpbmNsdWRlICJqaXQvcHBjNjQvQXNzZW1ibGVyLXBwYzY0LmgiCisrI2VuZGlmCisgI2luY2x1 ZGUgImpzL1NjYWxhclR5cGUuaCIgIC8vIGpzOjpTY2FsYXI6OlR5cGUKKyAjaW5jbHVkZSAidXRp bC9NZW1vcnkuaCIKKyAjaW5jbHVkZSAid2FzbS9UeXBlZE9iamVjdC5oIgorICNpbmNsdWRlICJ3 YXNtL1dhc21HQy5oIgorICNpbmNsdWRlICJ3YXNtL1dhc21HZW5lcmF0b3IuaCIKKyAjaW5jbHVk ZSAid2FzbS9XYXNtSW5zdGFuY2UuaCIKKyAjaW5jbHVkZSAid2FzbS9XYXNtT3BJdGVyLmgiCisg I2luY2x1ZGUgIndhc20vV2FzbVNpZ25hbEhhbmRsZXJzLmgiCitAQCAtMjg4LDE2ICsyOTEsMjMg QEAgc3RhdGljIGNvbnN0ZXhwciBSZWdpc3RlciBSYWJhbGRyU2NyYXRjaEkzMiA9IENhbGxUZW1w UmVnMjsKKyAjZW5kaWYKKyAKKyAjaWZkZWYgUkFCQUxEUl9TQ1JBVENIX0YzMl9BTElBU0VTX0Y2 NAorICMgIGlmICFkZWZpbmVkKFJBQkFMRFJfU0NSQVRDSF9GMzIpIHx8ICFkZWZpbmVkKFJBQkFM RFJfU0NSQVRDSF9GNjQpCisgIyAgICBlcnJvciAiQmFkIGNvbmZpZ3VyYXRpb24iCisgIyAgZW5k aWYKKyAjZW5kaWYKKyAKKysjaWZkZWYgSlNfQ09ERUdFTl9QUEM2NAorKyMgIGRlZmluZSBSQUJB TERSX1NDUkFUQ0hfSTMyCisrLy8gV2UgY2FuIHVzZSBhbGwgdGhlIGFyZ3JlZ3MgdXAsIGFuZCB3 ZSBkb24ndCB3YW50IHRoZSBKSVQgdXNpbmcgb3VyIG93bgorKy8vIHByaXZhdGUgc2NyYXRjaCBy ZWdpc3RlcnMsIHNvIHRoaXMgaXMgdGhlIGJlc3Qgb3B0aW9uIG9mIHdoYXQncyBsZWZ0LgorK3N0 YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXIgUmFiYWxkclNjcmF0Y2hJMzIgPSByMTk7CisrI2VuZGlm CisrCisgdGVtcGxhdGUgPE1JUlR5cGUgdD4KKyBzdHJ1Y3QgUmVnVHlwZU9mIHsKKyAjaWZkZWYg RU5BQkxFX1dBU01fU0lNRAorICAgc3RhdGljX2Fzc2VydCh0ID09IE1JUlR5cGU6OkZsb2F0MzIg fHwgdCA9PSBNSVJUeXBlOjpEb3VibGUgfHwKKyAgICAgICAgICAgICAgICAgICAgIHQgPT0gTUlS VHlwZTo6U2ltZDEyOCwKKyAgICAgICAgICAgICAgICAgIkZsb2F0IG1hc2sgdHlwZSIpOworICNl bHNlCisgICBzdGF0aWNfYXNzZXJ0KHQgPT0gTUlSVHlwZTo6RmxvYXQzMiB8fCB0ID09IE1JUlR5 cGU6OkRvdWJsZSwKK0BAIC01NTAsMTYgKzU2MCwxOCBAQCBzdHJ1Y3QgU3BlY2lmaWNSZWdzIHt9 OworICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpCisgc3RydWN0IFNwZWNpZmljUmVn cyB7CisgICBSZWdJNjQgYWJpUmV0dXJuUmVnSTY0OworIAorICAgU3BlY2lmaWNSZWdzKCkgOiBh YmlSZXR1cm5SZWdJNjQoUmV0dXJuUmVnNjQpIHt9CisgfTsKKyAjZWxpZiBkZWZpbmVkKEpTX0NP REVHRU5fTUlQUzY0KQorIHN0cnVjdCBTcGVjaWZpY1JlZ3Mge307CisrI2VsaWYgZGVmaW5lZChK U19DT0RFR0VOX1BQQzY0KQorK3N0cnVjdCBTcGVjaWZpY1JlZ3Mge307CisgI2Vsc2UKKyBzdHJ1 Y3QgU3BlY2lmaWNSZWdzIHsKKyAjICBpZm5kZWYgSlNfNjRCSVQKKyAgIFJlZ0k2NCBhYmlSZXR1 cm5SZWdJNjQ7CisgIyAgZW5kaWYKKyAKKyAgIFNwZWNpZmljUmVncygpIHsgTU9aX0NSQVNIKCJC YXNlQ29tcGlsZXIgcG9ydGluZyBpbnRlcmZhY2U6IFNwZWNpZmljUmVncyIpOyB9CisgfTsKK0BA IC02MDM4LDE2ICs2MDUwLDI1IEBAIGNsYXNzIEJhc2VDb21waWxlciBmaW5hbCA6IHB1YmxpYyBC YXNlQ29tcGlsZXJJbnRlcmZhY2UgeworICAgICAgICAgQUJJQXJnIGFyZ0xvYyA9IGNhbGwtPmFi aS5uZXh0KE1JUlR5cGU6OkludDMyKTsKKyAgICAgICAgIGlmIChhcmdMb2Mua2luZCgpID09IEFC SUFyZzo6U3RhY2spIHsKKyAgICAgICAgICAgU2NyYXRjaEkzMiBzY3JhdGNoKCp0aGlzKTsKKyAg ICAgICAgICAgbG9hZEkzMihhcmcsIHNjcmF0Y2gpOworICAgICAgICAgICBtYXNtLnN0b3JlMzIo c2NyYXRjaCwgQWRkcmVzcyhtYXNtLmdldFN0YWNrUG9pbnRlcigpLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdMb2Mub2Zmc2V0RnJvbUFyZ0Jhc2UoKSkpOwor ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgbG9hZEkzMihhcmcsIFJlZ0kzMihhcmdMb2Mu Z3ByKCkpKTsKKysjaWYgSlNfQ09ERUdFTl9QUEM2NAorKyAgICAgICAgICAvLyBJZiB0aGlzIGlz IGEgY2FsbCB0byBjb21waWxlZCBDKyssIHdlIG11c3QgZW5zdXJlIHRoYXQgdGhlCisrICAgICAg ICAgIC8vIHVwcGVyIDMyIGJpdHMgYXJlIGNsZWFyOiBhZGRpIGNhbiBzaWduLWV4dGVuZCwgd2hp Y2ggeWllbGRzCisrICAgICAgICAgIC8vIGRpZmZpY3VsdC10by1kaWFnbm9zZSBidWdzIHdoZW4g dGhlIGZ1bmN0aW9uIGV4cGVjdHMgYSB1aW50MzJfdAorKyAgICAgICAgICAvLyBidXQgdGhlIHJl Z2lzdGVyIGl0IGdldHMgaGFzIGEgcmVzaWR1YWwgNjQtYml0IHZhbHVlLgorKyAgICAgICAgICBp ZiAoY2FsbC0+dXNlc1N5c3RlbUFiaSkgeworKyAgICAgICAgICAgIG1hc20uYXNfcmxkaWNsKGFy Z0xvYy5ncHIoKSwgYXJnTG9jLmdwcigpLCAwLCAzMik7CisrICAgICAgICAgIH0KKysjZW5kaWYK KyAgICAgICAgIH0KKyAgICAgICAgIGJyZWFrOworICAgICAgIH0KKyAgICAgICBjYXNlIFZhbFR5 cGU6Okk2NDogeworICAgICAgICAgQUJJQXJnIGFyZ0xvYyA9IGNhbGwtPmFiaS5uZXh0KE1JUlR5 cGU6OkludDY0KTsKKyAgICAgICAgIGlmIChhcmdMb2Mua2luZCgpID09IEFCSUFyZzo6U3RhY2sp IHsKKyAgICAgICAgICAgU2NyYXRjaEkzMiBzY3JhdGNoKCp0aGlzKTsKKyAjaWZkZWYgSlNfUFVO Qk9YNjQKK0BAIC02MzI0LDE3ICs2MzQ1LDE4IEBAIGNsYXNzIEJhc2VDb21waWxlciBmaW5hbCA6 IHB1YmxpYyBCYXNlQ29tcGlsZXJJbnRlcmZhY2UgeworIAorICAgICAvLyBDb21wdXRlIHRoZSBh YnNvbHV0ZSB0YWJsZSBiYXNlIHBvaW50ZXIgaW50byBgc2NyYXRjaGAsIG9mZnNldCBieSA4Cisg ICAgIC8vIHRvIGFjY291bnQgZm9yIHRoZSBmYWN0IHRoYXQgbWFfbW92IHJlYWQgUEMrOC4KKyAg ICAgbWFzbS5tYV9zdWIoSW1tMzIob2Zmc2V0ICsgOCksIHNjcmF0Y2gsIGFybV9zY3JhdGNoKTsK KyAKKyAgICAgLy8gSnVtcCBpbmRpcmVjdCB2aWEgdGFibGUgZWxlbWVudC4KKyAgICAgbWFzbS5t YV9sZHIoRFRSQWRkcihzY3JhdGNoLCBEdHJSZWdJbW1TaGlmdChzd2l0Y2hWYWx1ZSwgTFNMLCAy KSksIHBjLAorICAgICAgICAgICAgICAgICBPZmZzZXQsIEFzc2VtYmxlcjo6QWx3YXlzKTsKKy0j ZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQ UzY0KQorKyNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09E RUdFTl9NSVBTNjQpIHx8IFwKKysgICAgICBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisgICAg IFNjcmF0Y2hJMzIgc2NyYXRjaCgqdGhpcyk7CisgICAgIENvZGVMYWJlbCB0YWJsZUNsOworIAor ICAgICBtYXNtLm1hX2xpKHNjcmF0Y2gsICZ0YWJsZUNsKTsKKyAKKyAgICAgdGFibGVDbC50YXJn ZXQoKS0+YmluZCh0aGVUYWJsZS0+b2Zmc2V0KCkpOworICAgICBtYXNtLmFkZENvZGVMYWJlbCh0 YWJsZUNsKTsKKyAKK0BAIC02NDkzLDE2ICs2NTE1LDIyIEBAIGNsYXNzIEJhc2VDb21waWxlciBm aW5hbCA6IHB1YmxpYyBCYXNlQ29tcGlsZXJJbnRlcmZhY2UgeworICMgIGVsaWYgZGVmaW5lZChK U19DT0RFR0VOX0FSTTY0KQorICAgICBBUk1SZWdpc3RlciBzZChzcmNEZXN0LnJlZywgNjQpOwor ICAgICBBUk1SZWdpc3RlciByKHJocy5yZWcsIDY0KTsKKyAgICAgaWYgKGlzVW5zaWduZWQpIHsK KyAgICAgICBtYXNtLlVkaXYoc2QsIHNkLCByKTsKKyAgICAgfSBlbHNlIHsKKyAgICAgICBtYXNt LlNkaXYoc2QsIHNkLCByKTsKKyAgICAgfQorKyMgIGVsaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQ QzY0KQorKyAgIGlmIChpc1Vuc2lnbmVkKSB7CisrICAgICBtYXNtLmFzX2RpdmR1KHNyY0Rlc3Qu cmVnLCBzcmNEZXN0LnJlZywgcmhzLnJlZyk7CisrICAgfSBlbHNlIHsKKysgICAgIG1hc20uYXNf ZGl2ZChzcmNEZXN0LnJlZywgc3JjRGVzdC5yZWcsIHJocy5yZWcpOworKyAgIH0KKyAjICBlbHNl CisgICAgIE1PWl9DUkFTSCgiQmFzZUNvbXBpbGVyIHBsYXRmb3JtIGhvb2s6IHF1b3RpZW50STY0 Iik7CisgIyAgZW5kaWYKKyAgICAgbWFzbS5iaW5kKCZkb25lKTsKKyAgIH0KKyAKKyAgIHZvaWQg cmVtYWluZGVySTY0KFJlZ0k2NCByaHMsIFJlZ0k2NCBzcmNEZXN0LCBSZWdJNjQgcmVzZXJ2ZWQs CisgICAgICAgICAgICAgICAgICAgICBJc1Vuc2lnbmVkIGlzVW5zaWduZWQsIGJvb2wgaXNDb25z dCwgaW50NjRfdCBjKSB7CitAQCAtNjU0NCwyOSArNjU3Miw0NiBAQCBjbGFzcyBCYXNlQ29tcGls ZXIgZmluYWwgOiBwdWJsaWMgQmFzZUNvbXBpbGVySW50ZXJmYWNlIHsKKyAgICAgQVJNUmVnaXN0 ZXIgdCh0ZW1wLCA2NCk7CisgICAgIGlmIChpc1Vuc2lnbmVkKSB7CisgICAgICAgbWFzbS5VZGl2 KHQsIHNkLCByKTsKKyAgICAgfSBlbHNlIHsKKyAgICAgICBtYXNtLlNkaXYodCwgc2QsIHIpOwor ICAgICB9CisgICAgIG1hc20uTXVsKHQsIHQsIHIpOworICAgICBtYXNtLlN1YihzZCwgc2QsIHQp OworKyMgIGVsaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQorKyAgICBpZiAoanM6OmppdDo6 SGFzUFBDSVNBMygpKSB7CisrICAgICAgaWYgKGlzVW5zaWduZWQpIHsKKysgICAgICAgIG1hc20u YXNfbW9kdWQoc3JjRGVzdC5yZWcsIHNyY0Rlc3QucmVnLCByaHMucmVnKTsKKysgICAgICB9IGVs c2UgeworKyAgICAgICAgbWFzbS5hc19tb2RzZChzcmNEZXN0LnJlZywgc3JjRGVzdC5yZWcsIHJo cy5yZWcpOworKyAgICAgIH0KKysgICAgfSBlbHNlIHsKKysgICAgICBTY3JhdGNoSTMyIHRlbXAo KnRoaXMpOworKyAgICAgIGlmIChpc1Vuc2lnbmVkKSB7CisrICAgICAgICBtYXNtLmFzX2RpdmR1 KHRlbXAsIHNyY0Rlc3QucmVnLCByaHMucmVnKTsKKysgICAgICB9IGVsc2UgeworKyAgICAgICAg bWFzbS5hc19kaXZkKHRlbXAsIHNyY0Rlc3QucmVnLCByaHMucmVnKTsKKysgICAgICB9CisrICAg ICAgbWFzbS5hc19tdWxsZCh0ZW1wLCB0ZW1wLCByaHMucmVnKTsKKysgICAgICBtYXNtLmFzX3N1 YmYoc3JjRGVzdC5yZWcsIHRlbXAsIHNyY0Rlc3QucmVnKTsgLy8gVCA9IEIgLSBBCisrICAgIH0K KyAjICBlbHNlCisgICAgIE1PWl9DUkFTSCgiQmFzZUNvbXBpbGVyIHBsYXRmb3JtIGhvb2s6IHJl bWFpbmRlckk2NCIpOworICMgIGVuZGlmCisgICAgIG1hc20uYmluZCgmZG9uZSk7CisgICB9Cisg I2VuZGlmICAvLyBSQUJBTERSX0lOVF9ESVZfSTY0X0NBTExPVVQKKyAKKyAgIFJlZ0kzMiBuZWVk Um90YXRlNjRUZW1wKCkgeworICNpZiBkZWZpbmVkKEpTX0NPREVHRU5fWDg2KQorICAgICByZXR1 cm4gbmVlZEkzMigpOworICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9YNjQpIHx8IGRlZmluZWQo SlNfQ09ERUdFTl9BUk0pIHx8ICAgIFwKKyAgICAgZGVmaW5lZChKU19DT0RFR0VOX0FSTTY0KSB8 fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKSB8fCBcCistICAgIGRlZmluZWQoSlNfQ09ERUdF Tl9NSVBTNjQpCisrICAgIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpIHx8IGRlZmluZWQoSlNf Q09ERUdFTl9QUEM2NCkKKyAgICAgcmV0dXJuIFJlZ0kzMjo6SW52YWxpZCgpOworICNlbHNlCisg ICAgIE1PWl9DUkFTSCgiQmFzZUNvbXBpbGVyIHBsYXRmb3JtIGhvb2s6IG5lZWRSb3RhdGU2NFRl bXAiKTsKKyAjZW5kaWYKKyAgIH0KKyAKKyAgIGNsYXNzIE91dE9mTGluZVRydW5jYXRlQ2hlY2tG MzJPckY2NFRvSTMyIDogcHVibGljIE91dE9mTGluZUNvZGUgeworICAgICBBbnlSZWcgc3JjOwor QEAgLTY4NjksMzAgKzY5MTQsMzUgQEAgY2xhc3MgQmFzZUNvbXBpbGVyIGZpbmFsIDogcHVibGlj IEJhc2VDb21waWxlckludGVyZmFjZSB7CisgICAgICAgICBSZWdJNjQgcHRyNjQgPSBmcm9tSTMy KHB0cik7CisgCisgICAgICAgICAvLyBJbiBwcmluY2lwbGUgdGhlcmUgbWF5IGJlIG5vbi16ZXJv IGJpdHMgaW4gdGhlIHVwcGVyIGJpdHMgb2YgdGhlCisgICAgICAgICAvLyByZWdpc3RlcjsgY2xl YXIgdGhlbS4KKyAjICBpZiBkZWZpbmVkKEpTX0NPREVHRU5fWDY0KSB8fCBkZWZpbmVkKEpTX0NP REVHRU5fQVJNNjQpCisgICAgICAgICAvLyBUaGUgY2Fub25pY2FsIHZhbHVlIGlzIHplcm8tZXh0 ZW5kZWQgKHNlZSBjb21tZW50IGJsb2NrICI2NC1iaXQgR1BScworICAgICAgICAgLy8gY2Fycnlp bmcgMzItYml0IHZhbHVlcyIgaW4gTWFjcm9Bc3NlbWJsZXIuaCk7IHdlIGFscmVhZHkgaGF2ZSB0 aGF0LgorICAgICAgICAgbWFzbS5hc3NlcnRDYW5vbmljYWxJbnQzMihwdHIpOworKyMgIGVsaWYg ZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQorKyAgICAgICAgLy8gVGhlIGNhbm9uaWNhbCB2YWx1 ZSBpcyBzaWduLWV4dGVuZGVkLgorKyAgICAgICAgbWFzbS5hc19ybGRpY2wocHRyLCBwdHIsIDAs IDMyKTsgLy8gImNscmxkaSIKKyAjICBlbHNlCisgICAgICAgICBNT1pfQ1JBU0goIlBsYXRmb3Jt IGNvZGUgbmVlZGVkIGhlcmUiKTsKKyAjICBlbmRpZgorIAorICAgICAgICAgLy8gQW55IFNwZWN0 cmUgbWl0aWdhdGlvbiB3aWxsIGFwcGVhciB0byB1cGRhdGUgdGhlIHB0cjY0IHJlZ2lzdGVyLgor ICAgICAgICAgbWFzbS53YXNtQm91bmRzQ2hlY2s2NCgKKyAgICAgICAgICAgICBBc3NlbWJsZXI6 OkJlbG93LCBwdHI2NCwKKyAgICAgICAgICAgICBBZGRyZXNzKHRscywgb2Zmc2V0b2YoVGxzRGF0 YSwgYm91bmRzQ2hlY2tMaW1pdCkpLCAmb2spOworIAorICAgICAgICAgLy8gUmVzdG9yZSB0aGUg dmFsdWUgdG8gdGhlIGNhbm9uaWNhbCBmb3JtIGZvciBhIDMyLWJpdCB2YWx1ZSBpbiBhCisgICAg ICAgICAvLyA2NC1iaXQgcmVnaXN0ZXIgYW5kL29yIHRoZSBhcHByb3ByaWF0ZSBmb3JtIGZvciBm dXJ0aGVyIHVzZSBpbiB0aGUKKyAgICAgICAgIC8vIGluZGV4aW5nIGluc3RydWN0aW9uLgorICMg IGlmIGRlZmluZWQoSlNfQ09ERUdFTl9YNjQpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9BUk02NCkK KyAgICAgICAgIC8vIFRoZSBjYW5vbmljYWwgdmFsdWUgaXMgemVyby1leHRlbmRlZDsgd2UgYWxy ZWFkeSBoYXZlIHRoYXQuCisrIyAgZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisrICAg ICAgICAvLyBMZWF2ZSBpdCB6ZXJvLWV4dGVuZGVkLgorICMgIGVsc2UKKyAgICAgICAgIE1PWl9D UkFTSCgiUGxhdGZvcm0gY29kZSBuZWVkZWQgaGVyZSIpOworICMgIGVuZGlmCisgICAgICAgfSBl bHNlIHsKKyAgICAgICAgIG1hc20ud2FzbUJvdW5kc0NoZWNrMzIoCisgICAgICAgICAgICAgQXNz ZW1ibGVyOjpCZWxvdywgcHRyLAorICAgICAgICAgICAgIEFkZHJlc3ModGxzLCBvZmZzZXRvZihU bHNEYXRhLCBib3VuZHNDaGVja0xpbWl0KSksICZvayk7CisgICAgICAgfQorQEAgLTY5MDMsMTcg KzY5NTMsMTcgQEAgY2xhc3MgQmFzZUNvbXBpbGVyIGZpbmFsIDogcHVibGljIEJhc2VDb21waWxl ckludGVyZmFjZSB7CisgI2VuZGlmCisgICAgICAgbWFzbS53YXNtVHJhcChUcmFwOjpPdXRPZkJv dW5kcywgYnl0ZWNvZGVPZmZzZXQoKSk7CisgICAgICAgbWFzbS5iaW5kKCZvayk7CisgICAgIH0K KyAgIH0KKyAKKyAjaWYgZGVmaW5lZChKU19DT0RFR0VOX1g2NCkgfHwgZGVmaW5lZChKU19DT0RF R0VOX0FSTSkgfHwgICAgICBcCisgICAgIGRlZmluZWQoSlNfQ09ERUdFTl9BUk02NCkgfHwgZGVm aW5lZChKU19DT0RFR0VOX01JUFMzMikgfHwgXAorLSAgICBkZWZpbmVkKEpTX0NPREVHRU5fTUlQ UzY0KQorKyAgICBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KSB8fCBkZWZpbmVkKEpTX0NPREVH RU5fUFBDNjQpCisgICBCYXNlSW5kZXggcHJlcGFyZUF0b21pY01lbW9yeUFjY2VzcyhNZW1vcnlB Y2Nlc3NEZXNjKiBhY2Nlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBY2Nlc3NDaGVjayogY2hlY2ssIFJlZ0kzMiB0bHMsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSZWdJMzIgcHRyKSB7CisgICAgIE1PWl9BU1NFUlQobmVlZFRsc0Zv ckFjY2VzcygqY2hlY2spID09IHRscy5pc1ZhbGlkKCkpOworICAgICBwcmVwYXJlTWVtb3J5QWNj ZXNzKGFjY2VzcywgY2hlY2ssIHRscywgcHRyKTsKKyAgICAgcmV0dXJuIEJhc2VJbmRleChIZWFw UmVnLCBwdHIsIFRpbWVzT25lLCBhY2Nlc3MtPm9mZnNldCgpKTsKKyAgIH0KKyAjZWxpZiBkZWZp bmVkKEpTX0NPREVHRU5fWDg2KQorQEAgLTcwMDEsMTcgKzcwNTEsMTkgQEAgY2xhc3MgQmFzZUNv bXBpbGVyIGZpbmFsIDogcHVibGljIEJhc2VDb21waWxlckludGVyZmFjZSB7CisgICAgIGlmIChk ZXN0LnRhZyA9PSBBbnlSZWc6Okk2NCkgeworICAgICAgIE1PWl9BU1NFUlQoZGVzdC5pNjQoKSA9 PSBzcGVjaWZpY18uYWJpUmV0dXJuUmVnSTY0KTsKKyAgICAgICBtYXNtLndhc21Mb2FkSTY0KCph Y2Nlc3MsIHNyY0FkZHIsIGRlc3QuaTY0KCkpOworICAgICB9IGVsc2UgeworICAgICAgIC8vIEZv ciA4IGJpdCBsb2FkcywgdGhpcyB3aWxsIGdlbmVyYXRlIG1vdnNibCBvciBtb3Z6YmwsIHNvCisg ICAgICAgLy8gdGhlcmUncyBubyBjb25zdHJhaW50IG9uIHdoYXQgdGhlIG91dHB1dCByZWdpc3Rl ciBtYXkgYmUuCisgICAgICAgbWFzbS53YXNtTG9hZCgqYWNjZXNzLCBzcmNBZGRyLCBkZXN0LmFu eSgpKTsKKyAgICAgfQorLSNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRlZmlu ZWQoSlNfQ09ERUdFTl9NSVBTNjQpCisrI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikg fHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkgfHwgXAorKyAgICAgIGRlZmluZWQoSlNfQ09E RUdFTl9QUEM2NCkKKysvLyBYWFg6IFdlIGRvbid0IHJlYWxseSBuZWVkIHRoaXMgYW55bW9yZQor ICAgICBpZiAoSXNVbmFsaWduZWQoKmFjY2VzcykpIHsKKyAgICAgICBzd2l0Y2ggKGRlc3QudGFn KSB7CisgICAgICAgICBjYXNlIEFueVJlZzo6STY0OgorICAgICAgICAgICBtYXNtLndhc21VbmFs aWduZWRMb2FkSTY0KCphY2Nlc3MsIEhlYXBSZWcsIHB0ciwgcHRyLCBkZXN0Lmk2NCgpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAxKTsKKyAgICAgICAgICAgYnJl YWs7CisgICAgICAgICBjYXNlIEFueVJlZzo6RjMyOgorICAgICAgICAgICBtYXNtLndhc21VbmFs aWduZWRMb2FkRlAoKmFjY2VzcywgSGVhcFJlZywgcHRyLCBwdHIsIGRlc3QuZjMyKCksCitAQCAt NzEwMiwxNyArNzE1NCwxOSBAQCBjbGFzcyBCYXNlQ29tcGlsZXIgZmluYWwgOiBwdWJsaWMgQmFz ZUNvbXBpbGVySW50ZXJmYWNlIHsKKyAgICAgTU9aX0FTU0VSVCh0ZW1wLmlzSW52YWxpZCgpKTsK KyAgICAgaWYgKGFjY2Vzcy0+dHlwZSgpID09IFNjYWxhcjo6SW50NjQpIHsKKyAgICAgICBtYXNt Lndhc21TdG9yZUk2NCgqYWNjZXNzLCBzcmMuaTY0KCksIEhlYXBSZWcsIHB0ciwgcHRyKTsKKyAg ICAgfSBlbHNlIGlmIChzcmMudGFnID09IEFueVJlZzo6STY0KSB7CisgICAgICAgbWFzbS53YXNt U3RvcmUoKmFjY2VzcywgQW55UmVnaXN0ZXIoc3JjLmk2NCgpLmxvdyksIEhlYXBSZWcsIHB0ciwg cHRyKTsKKyAgICAgfSBlbHNlIHsKKyAgICAgICBtYXNtLndhc21TdG9yZSgqYWNjZXNzLCBzcmMu YW55KCksIEhlYXBSZWcsIHB0ciwgcHRyKTsKKyAgICAgfQorLSNlbGlmIGRlZmluZWQoSlNfQ09E RUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpCisrI2VsaWYgZGVmaW5l ZChKU19DT0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkgfHwgXAor KyAgICAgIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKKysvLyBYWFg6IFdlIGRvbid0IHJlYWxs eSBuZWVkIHRoaXMgYW55bW9yZQorICAgICBpZiAoSXNVbmFsaWduZWQoKmFjY2VzcykpIHsKKyAg ICAgICBzd2l0Y2ggKHNyYy50YWcpIHsKKyAgICAgICAgIGNhc2UgQW55UmVnOjpJNjQ6CisgICAg ICAgICAgIG1hc20ud2FzbVVuYWxpZ25lZFN0b3JlSTY0KCphY2Nlc3MsIHNyYy5pNjQoKSwgSGVh cFJlZywgcHRyLCBwdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl bXApOworICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgQW55UmVnOjpGMzI6CisgICAg ICAgICAgIG1hc20ud2FzbVVuYWxpZ25lZFN0b3JlRlAoKmFjY2Vzcywgc3JjLmYzMigpLCBIZWFw UmVnLCBwdHIsIHB0ciwKK0BAIC03MTYwLDE3ICs3MjE0LDE4IEBAIGNsYXNzIEJhc2VDb21waWxl ciBmaW5hbCA6IHB1YmxpYyBCYXNlQ29tcGlsZXJJbnRlcmZhY2UgeworICAgICB9CisgICAgIHZv aWQgbWF5YmVGcmVlKEJhc2VDb21waWxlciogYmMpIHsKKyAgICAgICBmb3IgKHNpemVfdCBpID0g MDsgaSA8IENvdW50OyArK2kpIHsKKyAgICAgICAgIGJjLT5tYXliZUZyZWUodGhpcy0+b3BlcmF0 b3JbXShpKSk7CisgICAgICAgfQorICAgICB9CisgICB9OworIAorLSNpZiBkZWZpbmVkKEpTX0NP REVHRU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KQorKyNpZiBkZWZpbmVk KEpTX0NPREVHRU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KSB8fCBcCisr ICAgIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKKyAgIHVzaW5nIEF0b21pY1JNVzMyVGVtcHMg PSBBdG9taWMzMlRlbXBzPDM+OworICNlbHNlCisgICB1c2luZyBBdG9taWNSTVczMlRlbXBzID0g QXRvbWljMzJUZW1wczwxPjsKKyAjZW5kaWYKKyAKKyAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgor ICAgdm9pZCBhdG9taWNSTVczMihjb25zdCBNZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3MsIFQgc3Jj QWRkciwgQXRvbWljT3Agb3AsCisgICAgICAgICAgICAgICAgICAgIFJlZ0kzMiBydiwgUmVnSTMy IHJkLCBjb25zdCBBdG9taWNSTVczMlRlbXBzJiB0ZW1wcykgeworQEAgLTcxODcsMTcgKzcyNDIs MTggQEAgY2xhc3MgQmFzZUNvbXBpbGVyIGZpbmFsIDogcHVibGljIEJhc2VDb21waWxlckludGVy ZmFjZSB7CisgICAgICAgICB9CisgICAgICAgICBtYXNtLndhc21BdG9taWNGZXRjaE9wKGFjY2Vz cywgb3AsIHJ2LCBzcmNBZGRyLCB0ZW1wLCByZCk7CisgICAgICAgICBicmVhazsKKyAgICAgICB9 CisgI2VuZGlmCisgICAgICAgY2FzZSBTY2FsYXI6OlVpbnQxNjoKKyAgICAgICBjYXNlIFNjYWxh cjo6SW50MzI6CisgICAgICAgY2FzZSBTY2FsYXI6OlVpbnQzMjoKKy0jaWYgZGVmaW5lZChKU19D T0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkKKysjaWYgZGVmaW5l ZChKU19DT0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkgfHwgXAor KyAgICBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisgICAgICAgICBtYXNtLndhc21BdG9taWNG ZXRjaE9wKGFjY2Vzcywgb3AsIHJ2LCBzcmNBZGRyLCB0ZW1wc1swXSwgdGVtcHNbMV0sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBzWzJdLCByZCk7CisgI2Vsc2UKKyAgICAg ICAgIG1hc20ud2FzbUF0b21pY0ZldGNoT3AoYWNjZXNzLCBvcCwgcnYsIHNyY0FkZHIsIHRlbXBz WzBdLCByZCk7CisgI2VuZGlmCisgICAgICAgICBicmVhazsKKyAgICAgICBkZWZhdWx0OiB7Cisg ICAgICAgICBNT1pfQ1JBU0goIkJhZCB0eXBlIGZvciBhdG9taWMgb3BlcmF0aW9uIik7CitAQCAt NzIwOCwxNyArNzI2NCwxOCBAQCBjbGFzcyBCYXNlQ29tcGlsZXIgZmluYWwgOiBwdWJsaWMgQmFz ZUNvbXBpbGVySW50ZXJmYWNlIHsKKyAgIC8vIE9uIHg4NiwgViBpcyBBZGRyZXNzLiAgT24gb3Ro ZXIgcGxhdGZvcm1zLCBpdCBpcyBSZWdpc3RlcjY0LgorICAgLy8gVCBpcyBCYXNlSW5kZXggb3Ig QWRkcmVzcy4KKyAgIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBWPgorICAgdm9pZCBh dG9taWNSTVc2NChjb25zdCBNZW1vcnlBY2Nlc3NEZXNjJiBhY2Nlc3MsIGNvbnN0IFQmIHNyY0Fk ZHIsCisgICAgICAgICAgICAgICAgICAgIEF0b21pY09wIG9wLCBWIHZhbHVlLCBSZWdpc3RlcjY0 IHRlbXAsIFJlZ2lzdGVyNjQgcmQpIHsKKyAgICAgbWFzbS53YXNtQXRvbWljRmV0Y2hPcDY0KGFj Y2Vzcywgb3AsIHZhbHVlLCBzcmNBZGRyLCB0ZW1wLCByZCk7CisgICB9CisgCistI2lmIGRlZmlu ZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpCisrI2lm IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQp IHx8IFwKKysgICAgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQorICAgdXNpbmcgQXRvbWljQ21w WGNoZzMyVGVtcHMgPSBBdG9taWMzMlRlbXBzPDM+OworICNlbHNlCisgICB1c2luZyBBdG9taWND bXBYY2hnMzJUZW1wcyA9IEF0b21pYzMyVGVtcHM8MD47CisgI2VuZGlmCisgCisgICB0ZW1wbGF0 ZSA8dHlwZW5hbWUgVD4KKyAgIHZvaWQgYXRvbWljQ21wWGNoZzMyKGNvbnN0IE1lbW9yeUFjY2Vz c0Rlc2MmIGFjY2VzcywgVCBzcmNBZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgUmVnSTMy IHJleHBlY3QsIFJlZ0kzMiBybmV3LCBSZWdJMzIgcmQsCitAQCAtNzIzNiwyOSArNzI5MywzMSBA QCBjbGFzcyBCYXNlQ29tcGlsZXIgZmluYWwgOiBwdWJsaWMgQmFzZUNvbXBpbGVySW50ZXJmYWNl IHsKKyAgICAgICAgIH0KKyAgICAgICAgIG1hc20ud2FzbUNvbXBhcmVFeGNoYW5nZShhY2Nlc3Ms IHNyY0FkZHIsIHJleHBlY3QsIHJuZXcsIHJkKTsKKyAgICAgICAgIGJyZWFrOworICAgICAgIH0K KyAjZW5kaWYKKyAgICAgICBjYXNlIFNjYWxhcjo6VWludDE2OgorICAgICAgIGNhc2UgU2NhbGFy OjpJbnQzMjoKKyAgICAgICBjYXNlIFNjYWxhcjo6VWludDMyOgorLSNpZiBkZWZpbmVkKEpTX0NP REVHRU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KQorKyNpZiBkZWZpbmVk KEpTX0NPREVHRU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KSB8fCBcCisr ICAgIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKKyAgICAgICAgIG1hc20ud2FzbUNvbXBhcmVF eGNoYW5nZShhY2Nlc3MsIHNyY0FkZHIsIHJleHBlY3QsIHJuZXcsIHRlbXBzWzBdLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBzWzFdLCB0ZW1wc1syXSwgcmQpOworICNl bHNlCisgICAgICAgICBtYXNtLndhc21Db21wYXJlRXhjaGFuZ2UoYWNjZXNzLCBzcmNBZGRyLCBy ZXhwZWN0LCBybmV3LCByZCk7CisgI2VuZGlmCisgICAgICAgICBicmVhazsKKyAgICAgICBkZWZh dWx0OgorICAgICAgICAgTU9aX0NSQVNIKCJCYWQgdHlwZSBmb3IgYXRvbWljIG9wZXJhdGlvbiIp OworICAgICB9CisgICB9CisgCistI2lmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRl ZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpCisrI2lmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIp IHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpIHx8IFwKKysgICAgZGVmaW5lZChKU19DT0RF R0VOX1BQQzY0KQorICAgdXNpbmcgQXRvbWljWGNoZzMyVGVtcHMgPSBBdG9taWMzMlRlbXBzPDM+ OworICNlbHNlCisgICB1c2luZyBBdG9taWNYY2hnMzJUZW1wcyA9IEF0b21pYzMyVGVtcHM8MD47 CisgI2VuZGlmCisgCisgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgIHZvaWQgYXRvbWljWGNo ZzMyKGNvbnN0IE1lbW9yeUFjY2Vzc0Rlc2MmIGFjY2VzcywgVCBzcmNBZGRyLCBSZWdJMzIgcnYs CisgICAgICAgICAgICAgICAgICAgICBSZWdJMzIgcmQsIGNvbnN0IEF0b21pY1hjaGczMlRlbXBz JiB0ZW1wcykgeworQEAgLTcyNzUsMTcgKzczMzQsMTggQEAgY2xhc3MgQmFzZUNvbXBpbGVyIGZp bmFsIDogcHVibGljIEJhc2VDb21waWxlckludGVyZmFjZSB7CisgICAgICAgICAgIG1hc20ud2Fz bUF0b21pY0V4Y2hhbmdlKGFjY2Vzcywgc3JjQWRkciwgcnYsIHJkKTsKKyAgICAgICAgIH0KKyAg ICAgICAgIGJyZWFrOworICAgICAgIH0KKyAjZW5kaWYKKyAgICAgICBjYXNlIFNjYWxhcjo6VWlu dDE2OgorICAgICAgIGNhc2UgU2NhbGFyOjpJbnQzMjoKKyAgICAgICBjYXNlIFNjYWxhcjo6VWlu dDMyOgorLSNpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVH RU5fTUlQUzY0KQorKyNpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpT X0NPREVHRU5fTUlQUzY0KSB8fCBcCisrICAgIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKKyAg ICAgICAgIG1hc20ud2FzbUF0b21pY0V4Y2hhbmdlKGFjY2Vzcywgc3JjQWRkciwgcnYsIHRlbXBz WzBdLCB0ZW1wc1sxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBzWzJd LCByZCk7CisgI2Vsc2UKKyAgICAgICAgIG1hc20ud2FzbUF0b21pY0V4Y2hhbmdlKGFjY2Vzcywg c3JjQWRkciwgcnYsIHJkKTsKKyAjZW5kaWYKKyAgICAgICAgIGJyZWFrOworICAgICAgIGRlZmF1 bHQ6CisgICAgICAgICBNT1pfQ1JBU0goIkJhZCB0eXBlIGZvciBhdG9taWMgb3BlcmF0aW9uIik7 CitAQCAtNzM0MiwxNiArNzQwMiwxOCBAQCBjbGFzcyBCYXNlQ29tcGlsZXIgZmluYWwgOiBwdWJs aWMgQmFzZUNvbXBpbGVySW50ZXJmYWNlIHsKKyAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQ UzMyKQorICAgICBwb3AyeEk2NChyMCwgcjEpOworICAgICAqdGVtcCA9IG5lZWRJMzIoKTsKKyAj ZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNKQorICAgICBwb3AyeEk2NChyMCwgcjEpOworICAg ICAqdGVtcCA9IG5lZWRJMzIoKTsKKyAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNNjQpCisg ICAgIHBvcDJ4STY0KHIwLCByMSk7CisrI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQor KyAgICBwb3AyeEk2NChyMCwgcjEpOworICNlbHNlCisgICAgIE1PWl9DUkFTSCgiQmFzZUNvbXBp bGVyIHBvcnRpbmcgaW50ZXJmYWNlOiBwb3AyeEk2NEZvck11bEk2NCIpOworICNlbmRpZgorICAg fQorIAorICAgdm9pZCBwb3AyeEk2NEZvckRpdkk2NChSZWdJNjQqIHIwLCBSZWdJNjQqIHIxLCBS ZWdJNjQqIHJlc2VydmVkKSB7CisgI2lmIGRlZmluZWQoSlNfQ09ERUdFTl9YNjQpCisgICAgIC8v IHIwIG11c3QgYmUgcmF4LCBhbmQgcmR4IHdpbGwgYmUgY2xvYmJlcmVkLgorQEAgLTc1MjksMTcg Kzc1OTEsMTggQEAgY2xhc3MgQmFzZUNvbXBpbGVyIGZpbmFsIDogcHVibGljIEJhc2VDb21waWxl ckludGVyZmFjZSB7CisgICAgICAgICByZXhwZWN0ID0gYmMtPnBvcEkzMigpOworICAgICAgIH0K KyAgICAgICBzZXRSZChiYy0+bmVlZEkzMigpKTsKKyAgICAgfQorICAgICB+UG9wQXRvbWljQ21w WGNoZzMyUmVncygpIHsKKyAgICAgICBiYy0+ZnJlZUkzMihybmV3KTsKKyAgICAgICBiYy0+ZnJl ZUkzMihyZXhwZWN0KTsKKyAgICAgfQorLSNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIp IHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpCisrI2VsaWYgZGVmaW5lZChKU19DT0RFR0VO X01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkgfHwgXAorKyAgICAgIGRlZmlu ZWQoSlNfQ09ERUdFTl9QUEM2NCkKKyAgICAgZXhwbGljaXQgUG9wQXRvbWljQ21wWGNoZzMyUmVn cyhCYXNlQ29tcGlsZXIqIGJjLCBWYWxUeXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgU2NhbGFyOjpUeXBlIHZpZXdUeXBlKQorICAgICAgICAgOiBCYXNlKGJj KSB7CisgICAgICAgaWYgKHR5cGUgPT0gVmFsVHlwZTo6STY0KSB7CisgICAgICAgICBybmV3ID0g YmMtPnBvcEk2NFRvSTMyKCk7CisgICAgICAgICByZXhwZWN0ID0gYmMtPnBvcEk2NFRvSTMyKCk7 CisgICAgICAgfSBlbHNlIHsKKyAgICAgICAgIHJuZXcgPSBiYy0+cG9wSTMyKCk7CitAQCAtNzYw NiwxNyArNzY2OSwxNyBAQCBjbGFzcyBCYXNlQ29tcGlsZXIgZmluYWwgOiBwdWJsaWMgQmFzZUNv bXBpbGVySW50ZXJmYWNlIHsKKyAgICAgICByZXhwZWN0ID0gYmMtPnBvcEk2NCgpOworICAgICAg IHNldFJkKGJjLT5uZWVkSTY0UGFpcigpKTsKKyAgICAgfQorICAgICB+UG9wQXRvbWljQ21wWGNo ZzY0UmVncygpIHsKKyAgICAgICBiYy0+ZnJlZUk2NChyZXhwZWN0KTsKKyAgICAgICBiYy0+ZnJl ZUk2NChybmV3KTsKKyAgICAgfQorICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9BUk02NCkgfHwg ZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikgfHwgXAorLSAgICBkZWZpbmVkKEpTX0NPREVHRU5f TUlQUzY0KQorKyAgICBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KSB8fCBkZWZpbmVkKEpTX0NP REVHRU5fUFBDNjQpCisgICAgIGV4cGxpY2l0IFBvcEF0b21pY0NtcFhjaGc2NFJlZ3MoQmFzZUNv bXBpbGVyKiBiYykgOiBCYXNlKGJjKSB7CisgICAgICAgcm5ldyA9IGJjLT5wb3BJNjQoKTsKKyAg ICAgICByZXhwZWN0ID0gYmMtPnBvcEk2NCgpOworICAgICAgIHNldFJkKGJjLT5uZWVkSTY0KCkp OworICAgICB9CisgICAgIH5Qb3BBdG9taWNDbXBYY2hnNjRSZWdzKCkgeworICAgICAgIGJjLT5m cmVlSTY0KHJleHBlY3QpOworICAgICAgIGJjLT5mcmVlSTY0KHJuZXcpOworQEAgLTc2NTgsMTcg Kzc3MjEsMTggQEAgY2xhc3MgQmFzZUNvbXBpbGVyIGZpbmFsIDogcHVibGljIEJhc2VDb21waWxl ckludGVyZmFjZSB7CisgICAgICAgYmMtPm5lZWRJNjQoYmMtPnNwZWNpZmljXy5lZHhfZWF4KTsK KyAgICAgICBzZXRSZChiYy0+c3BlY2lmaWNfLmVkeF9lYXgpOworICAgICB9CisgICAgIH5Qb3BB dG9taWNMb2FkNjRSZWdzKCkgeyBiYy0+ZnJlZUkzMihiYy0+c3BlY2lmaWNfLmVjeCk7IH0KKyAj ICBlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9BUk0pCisgICAgIGV4cGxpY2l0IFBvcEF0b21pY0xv YWQ2NFJlZ3MoQmFzZUNvbXBpbGVyKiBiYykgOiBCYXNlKGJjKSB7CisgICAgICAgc2V0UmQoYmMt Pm5lZWRJNjRQYWlyKCkpOworICAgICB9CistIyAgZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQ UzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KQorKyMgIGVsaWYgZGVmaW5lZChKU19D T0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkgfHwgXAorKyAgICAg ICAgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQorICAgICBleHBsaWNpdCBQb3BBdG9taWNMb2Fk NjRSZWdzKEJhc2VDb21waWxlciogYmMpIDogQmFzZShiYykgeworICAgICAgIHNldFJkKGJjLT5u ZWVkSTY0KCkpOworICAgICB9CisgIyAgZWxzZQorICAgICBleHBsaWNpdCBQb3BBdG9taWNMb2Fk NjRSZWdzKEJhc2VDb21waWxlciogYmMpIDogQmFzZShiYykgeworICAgICAgIE1PWl9DUkFTSCgi QmFzZUNvbXBpbGVyIHBvcnRpbmcgaW50ZXJmYWNlOiBQb3BBdG9taWNMb2FkNjRSZWdzIik7Cisg ICAgIH0KKyAjICBlbmRpZgorQEAgLTc3NDUsMTcgKzc4MDksMTggQEAgY2xhc3MgQmFzZUNvbXBp bGVyIGZpbmFsIDogcHVibGljIEJhc2VDb21waWxlckludGVyZmFjZSB7CisgICAgICAgcnYgPSB0 eXBlID09IFZhbFR5cGU6Okk2NCA/IGJjLT5wb3BJNjRUb0kzMigpIDogYmMtPnBvcEkzMigpOwor ICAgICAgIHRlbXBzLmFsbG9jYXRlKGJjKTsKKyAgICAgICBzZXRSZChiYy0+bmVlZEkzMigpKTsK KyAgICAgfQorICAgICB+UG9wQXRvbWljUk1XMzJSZWdzKCkgeworICAgICAgIGJjLT5mcmVlSTMy KHJ2KTsKKyAgICAgICB0ZW1wcy5tYXliZUZyZWUoYmMpOworICAgICB9CistI2VsaWYgZGVmaW5l ZChKU19DT0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkKKysjZWxp ZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0 KSB8fCBcCisrICAgICAgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQorICAgICBleHBsaWNpdCBQ b3BBdG9taWNSTVczMlJlZ3MoQmFzZUNvbXBpbGVyKiBiYywgVmFsVHlwZSB0eXBlLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgU2NhbGFyOjpUeXBlIHZpZXdUeXBlLCBBdG9taWNP cCBvcCkKKyAgICAgICAgIDogQmFzZShiYykgeworICAgICAgIHJ2ID0gdHlwZSA9PSBWYWxUeXBl OjpJNjQgPyBiYy0+cG9wSTY0VG9JMzIoKSA6IGJjLT5wb3BJMzIoKTsKKyAgICAgICBpZiAoU2Nh bGFyOjpieXRlU2l6ZSh2aWV3VHlwZSkgPCA0KSB7CisgICAgICAgICB0ZW1wcy5hbGxvY2F0ZShi Yyk7CisgICAgICAgfQorIAorQEAgLTc4MzMsMTcgKzc4OTgsMTcgQEAgY2xhc3MgQmFzZUNvbXBp bGVyIGZpbmFsIDogcHVibGljIEJhc2VDb21waWxlckludGVyZmFjZSB7CisgICAgICAgdGVtcCA9 IGJjLT5uZWVkSTY0UGFpcigpOworICAgICAgIHNldFJkKGJjLT5uZWVkSTY0UGFpcigpKTsKKyAg ICAgfQorICAgICB+UG9wQXRvbWljUk1XNjRSZWdzKCkgeworICAgICAgIGJjLT5mcmVlSTY0KHJ2 KTsKKyAgICAgICBiYy0+ZnJlZUk2NCh0ZW1wKTsKKyAgICAgfQorICNlbGlmIGRlZmluZWQoSlNf Q09ERUdFTl9BUk02NCkgfHwgZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikgfHwgXAorLSAgICBk ZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KQorKyAgICBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0 KSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisgICAgIGV4cGxpY2l0IFBvcEF0b21pY1JN VzY0UmVncyhCYXNlQ29tcGlsZXIqIGJjLCBBdG9taWNPcCkgOiBCYXNlKGJjKSB7CisgICAgICAg cnYgPSBiYy0+cG9wSTY0KCk7CisgICAgICAgdGVtcCA9IGJjLT5uZWVkSTY0KCk7CisgICAgICAg c2V0UmQoYmMtPm5lZWRJNjQoKSk7CisgICAgIH0KKyAgICAgflBvcEF0b21pY1JNVzY0UmVncygp IHsKKyAgICAgICBiYy0+ZnJlZUk2NChydik7CisgICAgICAgYmMtPmZyZWVJNjQodGVtcCk7CitA QCAtNzg4OCwxNyArNzk1MywxOCBAQCBjbGFzcyBCYXNlQ29tcGlsZXIgZmluYWwgOiBwdWJsaWMg QmFzZUNvbXBpbGVySW50ZXJmYWNlIHsKKyAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNKSB8 fCBkZWZpbmVkKEpTX0NPREVHRU5fQVJNNjQpCisgICAgIGV4cGxpY2l0IFBvcEF0b21pY1hjaGcz MlJlZ3MoQmFzZUNvbXBpbGVyKiBiYywgVmFsVHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNjYWxhcjo6VHlwZSB2aWV3VHlwZSkKKyAgICAgICAgIDogQmFzZShi YykgeworICAgICAgIHJ2ID0gKHR5cGUgPT0gVmFsVHlwZTo6STY0KSA/IGJjLT5wb3BJNjRUb0kz MigpIDogYmMtPnBvcEkzMigpOworICAgICAgIHNldFJkKGJjLT5uZWVkSTMyKCkpOworICAgICB9 CisgICAgIH5Qb3BBdG9taWNYY2hnMzJSZWdzKCkgeyBiYy0+ZnJlZUkzMihydik7IH0KKy0jZWxp ZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0 KQorKyNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdF Tl9NSVBTNjQpIHx8IFwKKysgICAgICBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisgICAgIGV4 cGxpY2l0IFBvcEF0b21pY1hjaGczMlJlZ3MoQmFzZUNvbXBpbGVyKiBiYywgVmFsVHlwZSB0eXBl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNjYWxhcjo6VHlwZSB2aWV3VHlw ZSkKKyAgICAgICAgIDogQmFzZShiYykgeworICAgICAgIHJ2ID0gKHR5cGUgPT0gVmFsVHlwZTo6 STY0KSA/IGJjLT5wb3BJNjRUb0kzMigpIDogYmMtPnBvcEkzMigpOworICAgICAgIGlmIChTY2Fs YXI6OmJ5dGVTaXplKHZpZXdUeXBlKSA8IDQpIHsKKyAgICAgICAgIHRlbXBzLmFsbG9jYXRlKGJj KTsKKyAgICAgICB9CisgICAgICAgc2V0UmQoYmMtPm5lZWRJMzIoKSk7CitAQCAtNzk1NCwxNyAr ODAyMCwxOCBAQCBjbGFzcyBCYXNlQ29tcGlsZXIgZmluYWwgOiBwdWJsaWMgQmFzZUNvbXBpbGVy SW50ZXJmYWNlIHsKKyAgICAgflBvcEF0b21pY1hjaGc2NFJlZ3MoKSB7IGJjLT5mcmVlSTY0KHJ2 KTsgfQorICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9BUk0pCisgICAgIC8vIEJvdGggcnYgYW5k IHJkIG11c3QgYmUgb2RkL2V2ZW4gcGFpcnMuCisgICAgIGV4cGxpY2l0IFBvcEF0b21pY1hjaGc2 NFJlZ3MoQmFzZUNvbXBpbGVyKiBiYykgOiBCYXNlKGJjKSB7CisgICAgICAgcnYgPSBiYy0+cG9w STY0VG9TcGVjaWZpYyhiYy0+bmVlZEk2NFBhaXIoKSk7CisgICAgICAgc2V0UmQoYmMtPm5lZWRJ NjRQYWlyKCkpOworICAgICB9CisgICAgIH5Qb3BBdG9taWNYY2hnNjRSZWdzKCkgeyBiYy0+ZnJl ZUk2NChydik7IH0KKy0jZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKSB8fCBkZWZpbmVk KEpTX0NPREVHRU5fTUlQUzY0KQorKyNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8 IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpIHx8IFwKKysgICAgICBkZWZpbmVkKEpTX0NPREVH RU5fUFBDNjQpCisgICAgIGV4cGxpY2l0IFBvcEF0b21pY1hjaGc2NFJlZ3MoQmFzZUNvbXBpbGVy KiBiYykgOiBCYXNlKGJjKSB7CisgICAgICAgcnYgPSBiYy0+cG9wSTY0VG9TcGVjaWZpYyhiYy0+ bmVlZEk2NCgpKTsKKyAgICAgICBzZXRSZChiYy0+bmVlZEk2NCgpKTsKKyAgICAgfQorICAgICB+ UG9wQXRvbWljWGNoZzY0UmVncygpIHsgYmMtPmZyZWVJNjQocnYpOyB9CisgI2Vsc2UKKyAgICAg ZXhwbGljaXQgUG9wQXRvbWljWGNoZzY0UmVncyhCYXNlQ29tcGlsZXIqIGJjKSA6IEJhc2UoYmMp IHsKKyAgICAgICBNT1pfQ1JBU0goIkJhc2VDb21waWxlciBwb3J0aW5nIGludGVyZmFjZTogeGNo ZzY0Iik7CitAQCAtODk2OCwxNiArOTAzNSwxOCBAQCBzdGF0aWMgdm9pZCBDdHpJMzIoTWFjcm9B c3NlbWJsZXImIG1hc20sIFJlZ0kzMiByc2QpIHsKKyAKKyAvLyBDdXJyZW50bHkgY29tbW9uIHRv IFBvcGNudEkzMiBhbmQgUG9wY250STY0Cisgc3RhdGljIFJlZ0kzMiBQb3BjbnRUZW1wKEJhc2VD b21waWxlciYgYmMpIHsKKyAjaWYgZGVmaW5lZChKU19DT0RFR0VOX1g4NikgfHwgZGVmaW5lZChK U19DT0RFR0VOX1g2NCkKKyAgIHJldHVybiBBc3NlbWJsZXJYODZTaGFyZWQ6Okhhc1BPUENOVCgp ID8gUmVnSTMyOjpJbnZhbGlkKCkgOiBiYy5uZWVkSTMyKCk7CisgI2VsaWYgZGVmaW5lZChKU19D T0RFR0VOX0FSTSkgfHwgZGVmaW5lZChKU19DT0RFR0VOX0FSTTY0KSB8fCBcCisgICAgIGRlZmlu ZWQoSlNfQ09ERUdFTl9NSVBTMzIpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpCisgICBy ZXR1cm4gYmMubmVlZEkzMigpOworKyNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKKysg IHJldHVybiBSZWdJMzI6OkludmFsaWQoKTsgLy8gV2Ugcm9jay4KKyAjZWxzZQorICAgTU9aX0NS QVNIKCJCYXNlQ29tcGlsZXIgcGxhdGZvcm0gaG9vazogUG9wY250VGVtcCIpOworICNlbmRpZgor IH0KKyAKKyBzdGF0aWMgdm9pZCBQb3BjbnRJMzIoQmFzZUNvbXBpbGVyJiBiYywgUmVnSTMyIHJz ZCwgUmVnSTMyIHRlbXApIHsKKyAgIGJjLm1hc20ucG9wY250MzIocnNkLCByc2QsIHRlbXApOwor IH0KK0BAIC0xMTk4MiwxNyArMTIwNTEsMTcgQEAgUmVnSTMyIEJhc2VDb21waWxlcjo6cG9wTWVt b3J5MzJBY2Nlc3MoTWVtb3J5QWNjZXNzRGVzYyogYWNjZXNzLAorICAgICBiY2VDaGVja0xvY2Fs KGFjY2VzcywgY2hlY2ssIGxvY2FsKTsKKyAgIH0KKyAKKyAgIHJldHVybiBwb3BJMzIoKTsKKyB9 CisgCisgdm9pZCBCYXNlQ29tcGlsZXI6OnB1c2hIZWFwQmFzZSgpIHsKKyAjaWYgZGVmaW5lZChK U19DT0RFR0VOX1g2NCkgfHwgZGVmaW5lZChKU19DT0RFR0VOX0FSTTY0KSB8fCBcCistICAgIGRl ZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpCisrICAgIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQp IHx8IGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKKyAgIFJlZ0k2NCBoZWFwQmFzZSA9IG5lZWRJ NjQoKTsKKyAgIG1vdmVJNjQoUmVnSTY0KFJlZ2lzdGVyNjQoSGVhcFJlZykpLCBoZWFwQmFzZSk7 CisgICBwdXNoSTY0KGhlYXBCYXNlKTsKKyAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNKSB8 fCBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKQorICAgUmVnSTMyIGhlYXBCYXNlID0gbmVlZEkz MigpOworICAgbW92ZUkzMihSZWdJMzIoSGVhcFJlZyksIGhlYXBCYXNlKTsKKyAgIHB1c2hJMzIo aGVhcEJhc2UpOworICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9YODYpCitAQCAtMTcyNDQsMTcg KzE3MzEzLDE5IEBAIGJvb2wganM6Ondhc206OkJhc2VsaW5lUGxhdGZvcm1TdXBwb3J0KCkgewor ICAgLy8gdGhleSBhcmUgZGVmaW5pdGVseSBpbXBsZW1lbnRlZCBvbiB0aGUgQ29ydGV4LUE3IGFu ZCBDb3J0ZXgtQTE1CisgICAvLyBhbmQgb24gYWxsIEFSTXY4IHN5c3RlbXMuCisgICBpZiAoIUhh c0lESVYoKSkgeworICAgICByZXR1cm4gZmFsc2U7CisgICB9CisgI2VuZGlmCisgI2lmIGRlZmlu ZWQoSlNfQ09ERUdFTl9YNjQpIHx8IGRlZmluZWQoSlNfQ09ERUdFTl9YODYpIHx8ICAgXAorICAg ICBkZWZpbmVkKEpTX0NPREVHRU5fQVJNKSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fQVJNNjQpIHx8 IFwKKy0gICAgZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19DT0RFR0VO X01JUFM2NCkKKysgICAgZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikgfHwgZGVmaW5lZChKU19D T0RFR0VOX01JUFM2NCkgfHwgXAorKyAgICBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisrICAv LyBQUEM2NCBnYXRlcyBvbiBvdGhlciBwcmVyZXF1aXNpdGVzIG5vdCBzcGVjaWZpZWQgaGVyZS4K KyAgIHJldHVybiB0cnVlOworICNlbHNlCisgICByZXR1cm4gZmFsc2U7CisgI2VuZGlmCisgfQor IAorIGJvb2wganM6Ondhc206OkJhc2VsaW5lQ29tcGlsZUZ1bmN0aW9ucyhjb25zdCBNb2R1bGVF bnZpcm9ubWVudCYgbW9kdWxlRW52LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBDb21waWxlckVudmlyb25tZW50JiBjb21waWxlckVudiwKK2RpZmYgLS1n aXQgYS9qcy9zcmMvd2FzbS9XYXNtQ29tcGlsZS5jcHAgYi9qcy9zcmMvd2FzbS9XYXNtQ29tcGls ZS5jcHAKK2luZGV4IDBmNDU2YWFhYTUuLmYwNjk0ZjFiOWUgMTAwNjQ0CistLS0gYS9qcy9zcmMv d2FzbS9XYXNtQ29tcGlsZS5jcHAKKysrKyBiL2pzL3NyYy93YXNtL1dhc21Db21waWxlLmNwcAor QEAgLTQ1LDE2ICs0NSwxNyBAQCB1c2luZyBuYW1lc3BhY2UganM6Ondhc207CisgdWludDMyX3Qg d2FzbTo6T2JzZXJ2ZWRDUFVGZWF0dXJlcygpIHsKKyAgIGVudW0gQXJjaCB7CisgICAgIFg4NiA9 IDB4MSwKKyAgICAgWDY0ID0gMHgyLAorICAgICBBUk0gPSAweDMsCisgICAgIE1JUFMgPSAweDQs CisgICAgIE1JUFM2NCA9IDB4NSwKKyAgICAgQVJNNjQgPSAweDYsCisrICAgIFBQQzY0ID0gMHg3 LAorICAgICBBUkNIX0JJVFMgPSAzCisgICB9OworIAorICNpZiBkZWZpbmVkKEpTX0NPREVHRU5f WDg2KQorICAgTU9aX0FTU0VSVCh1aW50MzJfdChqaXQ6OkNQVUluZm86OkdldFNTRVZlcnNpb24o KSkgPD0KKyAgICAgICAgICAgICAgKFVJTlQzMl9NQVggPj4gQVJDSF9CSVRTKSk7CisgICByZXR1 cm4gWDg2IHwgKHVpbnQzMl90KGppdDo6Q1BVSW5mbzo6R2V0U1NFVmVyc2lvbigpKSA8PCBBUkNI X0JJVFMpOworICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9YNjQpCitAQCAtNjgsMTYgKzY5LDE5 IEBAIHVpbnQzMl90IHdhc206Ok9ic2VydmVkQ1BVRmVhdHVyZXMoKSB7CisgICBNT1pfQVNTRVJU KGppdDo6R2V0QVJNNjRGbGFncygpIDw9IChVSU5UMzJfTUFYID4+IEFSQ0hfQklUUykpOworICAg cmV0dXJuIEFSTTY0IHwgKGppdDo6R2V0QVJNNjRGbGFncygpIDw8IEFSQ0hfQklUUyk7CisgI2Vs aWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFMzMikKKyAgIE1PWl9BU1NFUlQoaml0OjpHZXRNSVBT RmxhZ3MoKSA8PSAoVUlOVDMyX01BWCA+PiBBUkNIX0JJVFMpKTsKKyAgIHJldHVybiBNSVBTIHwg KGppdDo6R2V0TUlQU0ZsYWdzKCkgPDwgQVJDSF9CSVRTKTsKKyAjZWxpZiBkZWZpbmVkKEpTX0NP REVHRU5fTUlQUzY0KQorICAgTU9aX0FTU0VSVChqaXQ6OkdldE1JUFNGbGFncygpIDw9IChVSU5U MzJfTUFYID4+IEFSQ0hfQklUUykpOworICAgcmV0dXJuIE1JUFM2NCB8IChqaXQ6OkdldE1JUFNG bGFncygpIDw8IEFSQ0hfQklUUyk7CisrI2VsaWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQor KyAgTU9aX0FTU0VSVChqaXQ6OkdldFBQQzY0RmxhZ3MoKSA8PSAoVUlOVDMyX01BWCA+PiBBUkNI X0JJVFMpKTsKKysgIHJldHVybiBQUEM2NCB8IChqaXQ6OkdldFBQQzY0RmxhZ3MoKSA8PCBBUkNI X0JJVFMpOworICNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9OT05FKQorICAgcmV0dXJuIDA7Cisg I2Vsc2UKKyAjICBlcnJvciAidW5rbm93biBhcmNoaXRlY3R1cmUiCisgI2VuZGlmCisgfQorIAor IEZlYXR1cmVBcmdzIEZlYXR1cmVBcmdzOjpidWlsZChKU0NvbnRleHQqIGN4LCBjb25zdCBGZWF0 dXJlT3B0aW9ucyYgb3B0aW9ucykgeworZGlmZiAtLWdpdCBhL2pzL3NyYy93YXNtL1dhc21GcmFt ZS5oIGIvanMvc3JjL3dhc20vV2FzbUZyYW1lLmgKK2luZGV4IDg1ZjI2MTJkMTQuLjk5MTkyMDU3 MzkgMTAwNjQ0CistLS0gYS9qcy9zcmMvd2FzbS9XYXNtRnJhbWUuaAorKysrIGIvanMvc3JjL3dh c20vV2FzbUZyYW1lLmgKK0BAIC01MywxNiArNTMsMjUgQEAgY29uc3RleHByIHVpbnRwdHJfdCBF eGl0T3JKaXRFbnRyeUZQVGFnID0gMHgxOworIC8vIGJlZm9yZSB0aGUgZnVuY3Rpb24gaGFzIG1h ZGUgaXRzIHN0YWNrIHJlc2VydmF0aW9uLCB0aGUgc3RhY2sgYWxpZ25tZW50IGlzCisgLy8gc2l6 ZW9mKEZyYW1lKSAlIFdhc21TdGFja0FsaWdubWVudC4KKyAvLworIC8vIER1cmluZyBNYWNyb0Fz c2VtYmxlciBjb2RlIGdlbmVyYXRpb24sIHRoZSBieXRlcyBwdXNoZWQgYWZ0ZXIgdGhlIHdhc206 OkZyYW1lCisgLy8gYXJlIGNvdW50ZWQgYnkgbWFzbS5mcmFtZVB1c2hlZC4gVGh1cywgdGhlIHN0 YWNrIGFsaWdubWVudCBhdCBhbnkgcG9pbnQgaW4KKyAvLyB0aW1lIGlzIChzaXplb2Yod2FzbTo6 RnJhbWUpICsgbWFzbS5mcmFtZVB1c2hlZCkgJSBXYXNtU3RhY2tBbGlnbm1lbnQuCisgCisgY2xh c3MgRnJhbWUgeworKyNpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisrICAvLyBTaW5jZSBX YXNtIGNhbiBjYWxsIGRpcmVjdGx5IHRvIEFCSS1jb21wbGlhbnQgcm91dGluZXMsIHRoZSBGcmFt ZSBtdXN0CisrICAvLyBoYXZlIGFuIEFCSS1jb21wbGlhbnQgbGlua2FnZSBhcmVhLiBXZSBhbGxv Y2F0ZSBmb3VyIGRvdWJsZXdvcmRzLCB0aGUKKysgIC8vIG1pbmltdW0gc2l6ZS4KKysgIHZvaWQg Kl9wcGNfc3BfOworKyAgdm9pZCAqX3BwY19jcl87CisrICB2b2lkICpfcHBjX2xyXzsKKysgIHZv aWQgKl9wcGNfdG9jXzsKKysjZW5kaWYKKyAgIC8vIFNlZSBHZW5lcmF0ZUNhbGxhYmxlRXBpbG9n dWUgZm9yIHdoeSB0aGlzIG11c3QgYmUKKyAgIC8vIHRoZSBmaXJzdCBmaWVsZCBvZiB3YXNtOjpG cmFtZSAoaW4gYSBkb3dud2FyZC1ncm93aW5nIHN0YWNrKS4KKyAgIC8vIEl0J3MgZWl0aGVyIHRo ZSBjYWxsZXIncyBGcmFtZSosIGZvciB3YXNtIGNhbGxlcnMsIG9yIHRoZSBKSVQgY2FsbGVyIGZy YW1lCisgICAvLyBwbHVzIGEgdGFnIG90aGVyd2lzZS4KKyAgIHVpbnQ4X3QqIGNhbGxlckZQXzsK KyAKKyAgIC8vIFRoZSByZXR1cm4gYWRkcmVzcyBwdXNoZWQgYnkgdGhlIGNhbGwgKGluIHRoZSBj YXNlIG9mIEFSTS9NSVBTIHRoZSByZXR1cm4KKyAgIC8vIGFkZHJlc3MgaXMgcHVzaGVkIGJ5IHRo ZSBmaXJzdCBpbnN0cnVjdGlvbiBvZiB0aGUgcHJvbG9ndWUpLgorQEAgLTExNSwxOCArMTI0LDIx IEBAIGNsYXNzIEZyYW1lIHsKKyAgIHN0YXRpYyB1aW50OF90KiBhZGRFeGl0T3JKaXRFbnRyeUZQ VGFnKGNvbnN0IEZyYW1lKiBmcCkgeworICAgICBNT1pfQVNTRVJUKCFpc0V4aXRPckppdEVudHJ5 RlAoZnApKTsKKyAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KHJlaW50ZXJw cmV0X2Nhc3Q8dWludHB0cl90PihmcCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgRXhpdE9ySml0RW50cnlGUFRhZyk7CisgICB9CisgfTsKKyAKKyBzdGF0aWNfYXNz ZXJ0KCFzdGQ6OmlzX3BvbHltb3JwaGljX3Y8RnJhbWU+LCAiRnJhbWUgZG9lc24ndCBuZWVkIGEg dnRhYmxlLiIpOworKyNpZiAhZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQorKy8vIE5vdCBvbiBQ b3dlclBDLCBpdCdzIG5vdC4KKyBzdGF0aWNfYXNzZXJ0KHNpemVvZihGcmFtZSkgPT0gMiAqIHNp emVvZih2b2lkKiksCisgICAgICAgICAgICAgICAiRnJhbWUgaXMgYSB0d28gcG9pbnRlciBzdHJ1 Y3R1cmUiKTsKKysjZW5kaWYKKyAKKyBjbGFzcyBGcmFtZVdpdGhUbHMgOiBwdWJsaWMgRnJhbWUg eworICAgVGxzRGF0YSogY2FsbGVlVGxzXzsKKyAgIFRsc0RhdGEqIGNhbGxlclRsc187CisgCisg IHB1YmxpYzoKKyAgIFRsc0RhdGEqIGNhbGxlZVRscygpIHsgcmV0dXJuIGNhbGxlZVRsc187IH0K KyAgIFRsc0RhdGEqIGNhbGxlclRscygpIHsgcmV0dXJuIGNhbGxlclRsc187IH0KK2RpZmYgLS1n aXQgYS9qcy9zcmMvd2FzbS9XYXNtRnJhbWVJdGVyLmNwcCBiL2pzL3NyYy93YXNtL1dhc21GcmFt ZUl0ZXIuY3BwCitpbmRleCBkZmZhYjUzOTQwLi41ZGE4ZDZjNzMwIDEwMDY0NAorLS0tIGEvanMv c3JjL3dhc20vV2FzbUZyYW1lSXRlci5jcHAKKysrKyBiL2pzL3NyYy93YXNtL1dhc21GcmFtZUl0 ZXIuY3BwCitAQCAtMzU4LDE2ICszNTgsMjEgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFNldEZQ ID0gMTY7Cisgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFBvcHBlZEZQID0gNDsKKyBzdGF0aWNfYXNz ZXJ0KEJlZm9yZVB1c2hSZXRBZGRyID09IDAsICJSZXF1aXJlZCBieSBTdGFydFVud2luZGluZyIp OworIHN0YXRpY19hc3NlcnQoUHVzaGVkRlAgPiBQdXNoZWRSZXRBZGRyLCAiUmVxdWlyZWQgYnkg U3RhcnRVbndpbmRpbmciKTsKKyAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fTUlQUzMyKSB8fCBk ZWZpbmVkKEpTX0NPREVHRU5fTUlQUzY0KQorIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBQdXNoZWRS ZXRBZGRyID0gODsKKyBzdGF0aWMgY29uc3QgdW5zaWduZWQgUHVzaGVkRlAgPSAxMjsKKyBzdGF0 aWMgY29uc3QgdW5zaWduZWQgU2V0RlAgPSAxNjsKKyBzdGF0aWMgY29uc3QgdW5zaWduZWQgUG9w cGVkRlAgPSA0OworKyNlbGlmIGRlZmluZWQoSlNfQ09ERUdFTl9QUEM2NCkKKytzdGF0aWMgY29u c3QgdW5zaWduZWQgUHVzaGVkUmV0QWRkciA9IDEyOworK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBQ dXNoZWRGUCA9IDE2OworK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBTZXRGUCA9IDIwOworK3N0YXRp YyBjb25zdCB1bnNpZ25lZCBQb3BwZWRGUCA9IDg7CisgI2VsaWYgZGVmaW5lZChKU19DT0RFR0VO X05PTkUpCisgLy8gU3ludGhldGljIHZhbHVlcyB0byBzYXRpc2Z5IGFzc2VydHMgYW5kIGF2b2lk IGNvbXBpbGVyIHdhcm5pbmdzLgorIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBQdXNoZWRSZXRBZGRy ID0gMDsKKyBzdGF0aWMgY29uc3QgdW5zaWduZWQgUHVzaGVkRlAgPSAxOworIHN0YXRpYyBjb25z dCB1bnNpZ25lZCBTZXRGUCA9IDI7Cisgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFBvcHBlZEZQID0g MzsKKyAjZWxzZQorICMgIGVycm9yICJVbmtub3duIGFyY2hpdGVjdHVyZSEiCitAQCAtNDUzLDE2 ICs0NTgsMzggQEAgc3RhdGljIHZvaWQgR2VuZXJhdGVDYWxsYWJsZVByb2xvZ3VlKE1hY3JvQXNz ZW1ibGVyJiBtYXNtLCB1aW50MzJfdCogZW50cnkpIHsKKyAgICAgICAgICAgICAgTWVtT3BlcmFu ZChzcCwgRnJhbWU6OmNhbGxlckZQT2Zmc2V0KCkpKTsKKyAgICAgTU9aX0FTU0VSVF9JRighbWFz bS5vb20oKSwgUHVzaGVkRlAgPT0gbWFzbS5jdXJyZW50T2Zmc2V0KCkgLSAqZW50cnkpOworICAg ICBtYXNtLk1vdihBUk1SZWdpc3RlcihGcmFtZVBvaW50ZXIsIDY0KSwgc3ApOworICAgICBNT1pf QVNTRVJUX0lGKCFtYXNtLm9vbSgpLCBTZXRGUCA9PSBtYXNtLmN1cnJlbnRPZmZzZXQoKSAtICpl bnRyeSk7CisgCisgICAgIC8vIEFuZCByZXN0b3JlIHRoZSBTUC1yZWcgc2V0dGluZywgcGVyIGNv bW1lbnQgYWJvdmUuCisgICAgIG1hc20uU2V0U3RhY2tQb2ludGVyNjQoc3Rhc2hlZFNQcmVnKTsK KyAgIH0KKysjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisrICB7CisrICAgICplbnRy eSA9IG1hc20uY3VycmVudE9mZnNldCgpOworKworKyAgICAvLyBUaGVzZSBtdXN0IGJlIGluIHRo aXMgcHJlY2lzZSBvcmRlci4gRm9ydHVuYXRlbHkgd2UgY2FuIHN1YnN1bWUgdGhlCisrICAgIC8v IFNQUiBsb2FkIGludG8gdGhlIGluaXRpYWwgInZlcnNlIiBzaW5jZSBpdCBpcyB0cmVhdGVkIGF0 b21pY2FsbHkuCisrICAgIC8vIFRoZSBsaW5rYWdlIGFyZWEgcmVxdWlyZWQgZm9yIEFCSSBjb21w bGlhbmNlIGlzIGJha2VkIGludG8gdGhlIEZyYW1lLgorKyAgICBtYXNtLnhzX21mbHIoU2NyYXRj aFJlZ2lzdGVyKTsKKysgICAgbWFzbS5hc19hZGRpKFN0YWNrUG9pbnRlciwgU3RhY2tQb2ludGVy LCAtKHNpemVvZihGcmFtZSkpKTsKKysgICAgbWFzbS5hc19zdGQoU2NyYXRjaFJlZ2lzdGVyLCBT dGFja1BvaW50ZXIsIEZyYW1lOjpyZXR1cm5BZGRyZXNzT2Zmc2V0KCkpOworKyAgICBNT1pfQVNT RVJUX0lGKCFtYXNtLm9vbSgpLCBQdXNoZWRSZXRBZGRyID09IG1hc20uY3VycmVudE9mZnNldCgp IC0gKmVudHJ5KTsKKysgICAgbWFzbS5hc19zdGQoRnJhbWVQb2ludGVyLCBTdGFja1BvaW50ZXIs IEZyYW1lOjpjYWxsZXJGUE9mZnNldCgpKTsKKysgICAgTU9aX0FTU0VSVF9JRighbWFzbS5vb20o KSwgUHVzaGVkRlAgPT0gbWFzbS5jdXJyZW50T2Zmc2V0KCkgLSAqZW50cnkpOworKyAgICBtYXNt LnhzX21yKEZyYW1lUG9pbnRlciwgU3RhY2tQb2ludGVyKTsKKysgICAgTU9aX0FTU0VSVF9JRigh bWFzbS5vb20oKSwgU2V0RlAgPT0gbWFzbS5jdXJyZW50T2Zmc2V0KCkgLSAqZW50cnkpOworKwor KyAgICAvLyBCdXJuIG5vcHMgYmVjYXVzZSB3ZSBoYXZlIHRvIG1ha2UgdGhpcyBhIG11bHRpcGxl IG9mIDE2IGFuZCB0aGUgbWZzcHIKKysgICAgLy8ganVzdCBzY3Jld2VkIHVzLgorKyAgICBtYXNt LmFzX25vcCgpOyAvLyAyNAorKyAgICBtYXNtLmFzX25vcCgpOyAvLyAyOAorKyAgICBtYXNtLmFz X25vcCgpOyAvLyAzMiAvLyB0cmFwIHBvaW50CisrICB9CisgI2Vsc2UKKyAgIHsKKyAjICBpZiBk ZWZpbmVkKEpTX0NPREVHRU5fQVJNKQorICAgICBBdXRvRm9yYmlkUG9vbHNBbmROb3BzIGFmcCgm bWFzbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbnVtYmVyIG9mIGluc3Ry dWN0aW9ucyBpbiBzY29wZSA9ICovIDMpOworIAorICAgICAqZW50cnkgPSBtYXNtLmN1cnJlbnRP ZmZzZXQoKTsKKyAKK0BAIC01MjcsMTYgKzU1NCwyOCBAQCBzdGF0aWMgdm9pZCBHZW5lcmF0ZUNh bGxhYmxlRXBpbG9ndWUoTWFjcm9Bc3NlbWJsZXImIG1hc20sIHVuc2lnbmVkIGZyYW1lUHVzaGVk LAorICAgLy8gdXNlIGl0LiAgSGVuY2Ugd2UgaGF2ZSB0byBkbyBpdCAiYnkgaGFuZCIuCisgICBt YXNtLk1vdihQc2V1ZG9TdGFja1BvaW50ZXI2NCwgdml4bDo6c3ApOworIAorICAgbWFzbS5SZXQo QVJNUmVnaXN0ZXIobHIsIDY0KSk7CisgCisgICAvLyBTZWUgY29tbWVudCBhdCBlcXVpdmFsZW50 IHBsYWNlIGluIHxHZW5lcmF0ZUNhbGxhYmxlUHJvbG9ndWV8IGFib3ZlLgorICAgbWFzbS5TZXRT dGFja1BvaW50ZXI2NChzdGFzaGVkU1ByZWcpOworIAorKyNlbGlmIGRlZmluZWQoSlNfQ09ERUdF Tl9QUEM2NCkKKysKKysgIG1hc20uYXNfbGQoRnJhbWVQb2ludGVyLCBTdGFja1BvaW50ZXIsIEZy YW1lOjpjYWxsZXJGUE9mZnNldCgpKTsKKysgIHBvcHBlZEZQID0gbWFzbS5jdXJyZW50T2Zmc2V0 KCk7CisrICAvLyBUaGlzIGlzIHN1Ym9wdGltYWwgc2luY2Ugd2UgZ2V0IHNlcmlhbGl6ZWQsIGJ1 dCBoYXMgdG8gYmUgaW4gdGhpcyBvcmRlci4KKysgIG1hc20uYXNfbGQoU2NyYXRjaFJlZ2lzdGVy LCBTdGFja1BvaW50ZXIsIEZyYW1lOjpyZXR1cm5BZGRyZXNzT2Zmc2V0KCkpOworKyAgbWFzbS54 c19tdGxyKFNjcmF0Y2hSZWdpc3Rlcik7CisrICAqcmV0ID0gbWFzbS5jdXJyZW50T2Zmc2V0KCk7 CisrCisrICBtYXNtLmFzX2FkZGkoU3RhY2tQb2ludGVyLCBTdGFja1BvaW50ZXIsIHNpemVvZihG cmFtZSkpOworKyAgbWFzbS5hc19ibHIoKTsKKysKKyAjZWxzZQorICAgLy8gRm9yYmlkIHBvb2xz IGZvciB0aGUgc2FtZSByZWFzb24gYXMgZGVzY3JpYmVkIGluIEdlbmVyYXRlQ2FsbGFibGVQcm9s b2d1ZS4KKyAjICBpZiBkZWZpbmVkKEpTX0NPREVHRU5fQVJNKQorICAgQXV0b0ZvcmJpZFBvb2xz QW5kTm9wcyBhZnAoJm1hc20sIC8qIG51bWJlciBvZiBpbnN0cnVjdGlvbnMgaW4gc2NvcGUgPSAq LyA2KTsKKyAjICBlbmRpZgorIAorICAgLy8gVGhlcmUgaXMgYW4gaW1wb3J0YW50IG9yZGVyaW5n IGNvbnN0cmFpbnQgaGVyZTogZnAgbXVzdCBiZSByZXBvaW50ZWQgdG8KKyAgIC8vIHRoZSBjYWxs ZXIncyBmcmFtZSBiZWZvcmUgYW55IGZpZWxkIG9mIHRoZSBmcmFtZSBjdXJyZW50bHkgcG9pbnRl ZCB0byBieQorQEAgLTc3MywxNiArODEyLDIzIEBAIHZvaWQgd2FzbTo6R2VuZXJhdGVKaXRFbnRy eVByb2xvZ3VlKE1hY3JvQXNzZW1ibGVyJiBtYXNtLCBPZmZzZXRzKiBvZmZzZXRzKSB7CisgICAg IEF1dG9Gb3JiaWRQb29sc0FuZE5vcHMgYWZwKCZtYXNtLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiBudW1iZXIgb2YgaW5zdHJ1Y3Rpb25zIGluIHNjb3BlID0gKi8gMyk7Cisg ICAgIG9mZnNldHMtPmJlZ2luID0gbWFzbS5jdXJyZW50T2Zmc2V0KCk7CisgICAgIHN0YXRpY19h c3NlcnQoQmVmb3JlUHVzaFJldEFkZHIgPT0gMCk7CisgICAgIC8vIFN1YnRyYWN0IGZyb20gU1Ag Zmlyc3QgYXMgU1AgbXVzdCBiZSBhbGlnbmVkIGJlZm9yZSBvZmZzZXR0aW5nLgorICAgICBtYXNt LlN1YihzcCwgc3AsIDgpOworICAgICBtYXNtLnN0b3JlUHRyKGxyLCBBZGRyZXNzKG1hc20uZ2V0 U3RhY2tQb2ludGVyKCksIDApKTsKKyAgICAgbWFzbS5hZGp1c3RGcmFtZSg4KTsKKysjZWxpZiBk ZWZpbmVkKEpTX0NPREVHRU5fUFBDNjQpCisrICAgIG9mZnNldHMtPmJlZ2luID0gbWFzbS5jdXJy ZW50T2Zmc2V0KCk7CisrCisrICAgIC8vIFdlIGhhdmUgdG8gYnVybiBhIG5vcCBoZXJlIHRvIG1h dGNoIHRoZSBvdGhlciBwcm9sb2d1ZSBsZW5ndGguCisrICAgIG1hc20ueHNfbWZscihTY3JhdGNo UmVnaXN0ZXIpOworKyAgICBtYXNtLmFzX25vcCgpOyAvLyBtaWdodCBhcyB3ZWxsIGV4cGxpY2l0 bHkgd2FpdCBmb3IgdGhlIG1mc3ByIHRvIGNvbXBsZXRlCisrICAgIG1hc20uYXNfc3RkdShTY3Jh dGNoUmVnaXN0ZXIsIFN0YWNrUG9pbnRlciwgLTgpOworICNlbHNlCisgICAgIC8vIFRoZSB4ODYv eDY0IGNhbGwgaW5zdHJ1Y3Rpb24gcHVzaGVzIHRoZSByZXR1cm4gYWRkcmVzcy4KKyAgICAgb2Zm c2V0cy0+YmVnaW4gPSBtYXNtLmN1cnJlbnRPZmZzZXQoKTsKKyAjZW5kaWYKKyAgICAgTU9aX0FT U0VSVF9JRighbWFzbS5vb20oKSwKKyAgICAgICAgICAgICAgICAgICBQdXNoZWRSZXRBZGRyID09 IG1hc20uY3VycmVudE9mZnNldCgpIC0gb2Zmc2V0cy0+YmVnaW4pOworIAorICAgICAvLyBTYXZl IGppdCBmcmFtZSBwb2ludGVyLCBzbyB1bndpbmRpbmcgZnJvbSB3YXNtIHRvIGppdCBmcmFtZXMg aXMgdHJpdmlhbC4KK2RpZmYgLS1naXQgYS9qcy9zcmMvd2FzbS9XYXNtR0MuY3BwIGIvanMvc3Jj L3dhc20vV2FzbUdDLmNwcAoraW5kZXggNGViNzdhODFhMi4uM2YwMGNiYjYzMiAxMDA2NDQKKy0t LSBhL2pzL3NyYy93YXNtL1dhc21HQy5jcHAKKysrKyBiL2pzL3NyYy93YXNtL1dhc21HQy5jcHAK K0BAIC0yODQsMTYgKzI4NCwzMyBAQCBib29sIElzVmFsaWRTdGFja01hcEtleShib29sIGRlYnVn RW5hYmxlZCwgY29uc3QgdWludDhfdCogbmV4dFBDKSB7CisgICAgICAgICAgIChpbnNuWy0xXSAm IDB4ZmZmZmZjMWYpID09IDB4ZDYzZjAwMDAgfHwgICAgLy8gYmxyIHJlZworICAgICAgICAgICAo aW5zblstMV0gJiAweGZjMDAwMDAwKSA9PSAweDk0MDAwMDAwIHx8ICAgIC8vIGJsIHNpbW0yNgor ICAgICAgICAgICAoZGVidWdFbmFibGVkICYmIGluc25bLTFdID09IDB4ZDUwMzIwMWYpKTsgIC8v IG5vcAorIAorICMgIGVsaWYgZGVmaW5lZChKU19DT0RFR0VOX01JUFM2NCkKKyAgIC8vIFRPRE8g KGJ1ZyAxNjk5Njk2KTogSW1wbGVtZW50IHRoaXMuICBBcyBmb3IgdGhlIHBsYXRmb3JtcyBhYm92 ZSwgd2UgbmVlZCB0bworICAgLy8gZW51bWVyYXRlIGFsbCBjb2RlIHNlcXVlbmNlcyB0aGF0IGNh biBwcmVjZWRlIHRoZSBzdGFja21hcCBsb2NhdGlvbi4KKyAgIHJldHVybiB0cnVlOworKyMgIGVs aWYgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQorKy8vIFhYWDogd2Ugc2hvdWxkIGp1c3QgYmUg YWJsZSB0byB1c2UgaW5zdFswXQorKyAgY29uc3QgdWludDMyX3QqIGluc24gPSAoY29uc3QgdWlu dDMyX3QqKW5leHRQQzsKKysgIGpzOjpqaXQ6Okluc3RydWN0aW9uKiBpbnN0ID0gKGpzOjpqaXQ6 Okluc3RydWN0aW9uKiluZXh0UEM7CisrICAvL2ZwcmludGYoc3RkZXJyLCAiSXNWYWxpZFN0YWNr TWFwS2V5OiAweCVseCAweCUwOHhcbiIsICh1aW50NjRfdCluZXh0UEMsIGluc25bMF0pOworKyAg cmV0dXJuICgoKHVpbnRwdHJfdChpbnNuKSAmIDMpID09IDApICYmCisrICAgICAgICAgIChpbnN0 WzBdLmV4dHJhY3RPcGNvZGUoKSA9PSBqczo6aml0OjpQUENfYWRkaSB8fCAgLy8gc3RhY2sgYWxs b2NhdGUKKysgICAgICAgICAgIGluc3RbMF0uZXh0cmFjdE9wY29kZSgpID09IGpzOjpqaXQ6OlBQ Q19hZGRpcyB8fCAvLyBsb2FkIGltbWVkaWF0ZQorKyAgICAgICAgICAgaW5zdFswXS5leHRyYWN0 T3Bjb2RlKCkgPT0ganM6OmppdDo6UFBDX2NtcHdpIHx8IC8vIHRlc3QgYWZ0ZXIgYmwKKysgICAg ICAgICAgIGluc3RbMF0uZXh0cmFjdE9wY29kZSgpID09IGpzOjpqaXQ6OlBQQ19jbXB3IHx8ICAv LyAoZXh0c3csIHNhbWUpCisrICAgICAgICAgICBpbnN0WzBdLmV4dHJhY3RPcGNvZGUoKSA9PSBq czo6aml0OjpQUENfbGZkIHx8ICAgLy8gbG9hZCBGUFIKKysgICAgICAgICAgIGluc3RbMF0uZXh0 cmFjdE9wY29kZSgpID09IGpzOjpqaXQ6OlBQQ19sZnMgfHwgICAvLyBsb2FkIEZQUgorKyAgICAg ICAgICAgaW5zdFswXS5leHRyYWN0T3Bjb2RlKCkgPT0ganM6OmppdDo6UFBDX2x3eiB8fCAgIC8v IGxvYWQgR1BSCisrICAgICAgICAgICBpbnN0WzBdLmV4dHJhY3RPcGNvZGUoKSA9PSBqczo6aml0 OjpQUENfbGQgfHwgICAgLy8gbG9hZCBHUFIKKysgICAgICAgICAgIGluc3RbMF0uZXh0cmFjdE9w Y29kZSgpID09IGpzOjpqaXQ6OlBQQ19iIHx8ICAgICAvLyBicmFuY2gKKysgICAgICAgICAgIGlu c3RbMF0uZW5jb2RlKCkgPT0ganM6OmppdDo6UFBDX25vcCB8fCAgICAgICAgICAvLyBHRVQgQkFD SyBUTyBXT1JLCisrICAgICAgICAgICBpbnN0WzBdLmVuY29kZSgpID09IGpzOjpqaXQ6OlBQQ19z dG9wKSk7ICAgICAgICAgLy8gZGVzaWduYXRlZCB0aHJvdworICMgIGVsc2UKKyAgIE1PWl9DUkFT SCgiSXNWYWxpZFN0YWNrTWFwS2V5OiByZXF1aXJlcyBpbXBsZW1lbnRhdGlvbiBvbiB0aGlzIHBs YXRmb3JtIik7CisgIyAgZW5kaWYKKyB9CisgI2VuZGlmCisgCisgfSAgLy8gbmFtZXNwYWNlIHdh c20KKyB9ICAvLyBuYW1lc3BhY2UganMKK2RpZmYgLS1naXQgYS9qcy9zcmMvd2FzbS9XYXNtU2ln bmFsSGFuZGxlcnMuY3BwIGIvanMvc3JjL3dhc20vV2FzbVNpZ25hbEhhbmRsZXJzLmNwcAoraW5k ZXggNGFiMmE0NDE5Mi4uMWE1MTA2MWExMiAxMDA2NDQKKy0tLSBhL2pzL3NyYy93YXNtL1dhc21T aWduYWxIYW5kbGVycy5jcHAKKysrKyBiL2pzL3NyYy93YXNtL1dhc21TaWduYWxIYW5kbGVycy5j cHAKK0BAIC0xMDEsMTYgKzEwMSwxNyBAQCB1c2luZyBtb3ppbGxhOjpEZWJ1Z09ubHk7CisgIyAg ZW5kaWYKKyAjICBpZiBkZWZpbmVkKF9fbWlwc19fKQorICMgICAgZGVmaW5lIEVQQ19zaWcocCkg KChwKS0+c2NfcGMpCisgIyAgICBkZWZpbmUgUkZQX3NpZyhwKSAoKHApLT5zY19yZWdzWzMwXSkK KyAjICBlbmRpZgorICMgIGlmIGRlZmluZWQoX19wcGM2NF9fKSB8fCBkZWZpbmVkKF9fUFBDNjRf XykgfHwgZGVmaW5lZChfX3BwYzY0bGVfXykgfHwgXAorICAgICAgIGRlZmluZWQoX19QUEM2NExF X18pCisgIyAgICBkZWZpbmUgUjAxX3NpZyhwKSAoKHApLT5zY19mcmFtZS5maXhyZWdbMV0pCisr IyAgICBkZWZpbmUgUjMxX3NpZyhwKSAoKHApLT5zY19mcmFtZS5maXhyZWdbMzFdKQorICMgICAg ZGVmaW5lIFIzMl9zaWcocCkgKChwKS0+c2NfZnJhbWUuc3JyMCkKKyAjICBlbmRpZgorICNlbGlm IGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fc3VuKQorICMgIGlmIGRlZmluZWQoX19s aW51eF9fKQorICMgICAgZGVmaW5lIEVJUF9zaWcocCkgKChwKS0+dWNfbWNvbnRleHQuZ3JlZ3Nb UkVHX0VJUF0pCisgIyAgICBkZWZpbmUgRUJQX3NpZyhwKSAoKHApLT51Y19tY29udGV4dC5ncmVn c1tSRUdfRUJQXSkKKyAjICAgIGRlZmluZSBFU1Bfc2lnKHApICgocCktPnVjX21jb250ZXh0Lmdy ZWdzW1JFR19FU1BdKQorICMgIGVsc2UKK0BAIC0xNDcsMTYgKzE0OCwxNyBAQCB1c2luZyBtb3pp bGxhOjpEZWJ1Z09ubHk7CisgIyAgaWYgZGVmaW5lZChfX2xpbnV4X18pICYmIChkZWZpbmVkKF9f c3BhcmNfXykgJiYgZGVmaW5lZChfX2FyY2g2NF9fKSkKKyAjICAgIGRlZmluZSBQQ19zaWcocCkg KChwKS0+dWNfbWNvbnRleHQubWNfZ3JlZ3NbTUNfUENdKQorICMgICAgZGVmaW5lIEZQX3NpZyhw KSAoKHApLT51Y19tY29udGV4dC5tY19mcCkKKyAjICAgIGRlZmluZSBTUF9zaWcocCkgKChwKS0+ dWNfbWNvbnRleHQubWNfaTcpCisgIyAgZW5kaWYKKyAjICBpZiBkZWZpbmVkKF9fbGludXhfXykg JiYgKGRlZmluZWQoX19wcGM2NF9fKSB8fCBkZWZpbmVkKF9fUFBDNjRfXykgfHwgXAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lZChfX3BwYzY0bGVfXykgfHwgZGVmaW5lZChf X1BQQzY0TEVfXykpCisgIyAgICBkZWZpbmUgUjAxX3NpZyhwKSAoKHApLT51Y19tY29udGV4dC5n cF9yZWdzWzFdKQorKyMgICAgZGVmaW5lIFIzMV9zaWcocCkgKChwKS0+dWNfbWNvbnRleHQuZ3Bf cmVnc1szMV0pCisgIyAgICBkZWZpbmUgUjMyX3NpZyhwKSAoKHApLT51Y19tY29udGV4dC5ncF9y ZWdzWzMyXSkKKyAjICBlbmRpZgorICNlbGlmIGRlZmluZWQoX19OZXRCU0RfXykKKyAjICBkZWZp bmUgRUlQX3NpZyhwKSAoKHApLT51Y19tY29udGV4dC5fX2dyZWdzW19SRUdfRUlQXSkKKyAjICBk ZWZpbmUgRUJQX3NpZyhwKSAoKHApLT51Y19tY29udGV4dC5fX2dyZWdzW19SRUdfRUJQXSkKKyAj ICBkZWZpbmUgRVNQX3NpZyhwKSAoKHApLT51Y19tY29udGV4dC5fX2dyZWdzW19SRUdfRVNQXSkK KyAjICBkZWZpbmUgUklQX3NpZyhwKSAoKHApLT51Y19tY29udGV4dC5fX2dyZWdzW19SRUdfUklQ XSkKKyAjICBkZWZpbmUgUlNQX3NpZyhwKSAoKHApLT51Y19tY29udGV4dC5fX2dyZWdzW19SRUdf UlNQXSkKK0BAIC0xNzMsMTYgKzE3NSwxNyBAQCB1c2luZyBtb3ppbGxhOjpEZWJ1Z09ubHk7Cisg IyAgZW5kaWYKKyAjICBpZiBkZWZpbmVkKF9fbWlwc19fKQorICMgICAgZGVmaW5lIEVQQ19zaWco cCkgKChwKS0+dWNfbWNvbnRleHQuX19ncmVnc1tfUkVHX0VQQ10pCisgIyAgICBkZWZpbmUgUkZQ X3NpZyhwKSAoKHApLT51Y19tY29udGV4dC5fX2dyZWdzW19SRUdfUzhdKQorICMgIGVuZGlmCisg IyAgaWYgZGVmaW5lZChfX3BwYzY0X18pIHx8IGRlZmluZWQoX19QUEM2NF9fKSB8fCBkZWZpbmVk KF9fcHBjNjRsZV9fKSB8fCBcCisgICAgICAgZGVmaW5lZChfX1BQQzY0TEVfXykKKyAjICAgIGRl ZmluZSBSMDFfc2lnKHApICgocCktPnVjX21jb250ZXh0Ll9fZ3JlZ3NbX1JFR19SMV0pCisrIyAg ICBkZWZpbmUgUjMxX3NpZyhwKSAoKHApLT51Y19tY29udGV4dC5fX2dyZWdzW19SRUdfUjMxXSkK KyAjICAgIGRlZmluZSBSMzJfc2lnKHApICgocCktPnVjX21jb250ZXh0Ll9fZ3JlZ3NbX1JFR19Q Q10pCisgIyAgZW5kaWYKKyAjZWxpZiBkZWZpbmVkKF9fRHJhZ29uRmx5X18pIHx8IGRlZmluZWQo X19GcmVlQlNEX18pIHx8IFwKKyAgICAgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCisgIyAg ZGVmaW5lIEVJUF9zaWcocCkgKChwKS0+dWNfbWNvbnRleHQubWNfZWlwKQorICMgIGRlZmluZSBF QlBfc2lnKHApICgocCktPnVjX21jb250ZXh0Lm1jX2VicCkKKyAjICBkZWZpbmUgRVNQX3NpZyhw KSAoKHApLT51Y19tY29udGV4dC5tY19lc3ApCisgIyAgZGVmaW5lIFJJUF9zaWcocCkgKChwKS0+ dWNfbWNvbnRleHQubWNfcmlwKQorQEAgLTIwNywxNiArMjEwLDE3IEBAIHVzaW5nIG1vemlsbGE6 OkRlYnVnT25seTsKKyAjICBlbmRpZgorICMgIGlmIGRlZmluZWQoX19GcmVlQlNEX18pICYmIGRl ZmluZWQoX19taXBzX18pCisgIyAgICBkZWZpbmUgRVBDX3NpZyhwKSAoKHApLT51Y19tY29udGV4 dC5tY19wYykKKyAjICAgIGRlZmluZSBSRlBfc2lnKHApICgocCktPnVjX21jb250ZXh0Lm1jX3Jl Z3NbMzBdKQorICMgIGVuZGlmCisgIyAgaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgKGRlZmlu ZWQoX19wcGM2NF9fKSB8fCBkZWZpbmVkKF9fUFBDNjRfXykgfHwgXAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkZWZpbmVkKF9fcHBjNjRsZV9fKSB8fCBkZWZpbmVkKF9fUFBDNjRM RV9fKSkKKyAjICAgIGRlZmluZSBSMDFfc2lnKHApICgocCktPnVjX21jb250ZXh0Lm1jX2dwclsx XSkKKysjICAgIGRlZmluZSBSMzFfc2lnKHApICgocCktPnVjX21jb250ZXh0Lm1jX2dwclszMV0p CisgIyAgICBkZWZpbmUgUjMyX3NpZyhwKSAoKHApLT51Y19tY29udGV4dC5tY19zcnIwKQorICMg IGVuZGlmCisgI2VsaWYgZGVmaW5lZChYUF9EQVJXSU4pCisgIyAgZGVmaW5lIEVJUF9zaWcocCkg KChwKS0+dGhyZWFkLnV0cy50czMyLl9fZWlwKQorICMgIGRlZmluZSBFQlBfc2lnKHApICgocCkt PnRocmVhZC51dHMudHMzMi5fX2VicCkKKyAjICBkZWZpbmUgRVNQX3NpZyhwKSAoKHApLT50aHJl YWQudXRzLnRzMzIuX19lc3ApCisgIyAgZGVmaW5lIFJJUF9zaWcocCkgKChwKS0+dGhyZWFkLl9f cmlwKQorICMgIGRlZmluZSBSQlBfc2lnKHApICgocCktPnRocmVhZC5fX3JicCkKK0BAIC0zNjcs MTcgKzM3MSwxNyBAQCBzdHJ1Y3QgbWFjb3NfYWFyY2g2NF9jb250ZXh0IHsKKyAjICBkZWZpbmUg UENfc2lnKHApIEVQQ19zaWcocCkKKyAjICBkZWZpbmUgRlBfc2lnKHApIFJGUF9zaWcocCkKKyAj ICBkZWZpbmUgU1Bfc2lnKHApIFJTUF9zaWcocCkKKyAjICBkZWZpbmUgTFJfc2lnKHApIFIzMV9z aWcocCkKKyAjZWxpZiBkZWZpbmVkKF9fcHBjNjRfXykgfHwgZGVmaW5lZChfX1BQQzY0X18pIHx8 IGRlZmluZWQoX19wcGM2NGxlX18pIHx8IFwKKyAgICAgZGVmaW5lZChfX1BQQzY0TEVfXykKKyAj ICBkZWZpbmUgUENfc2lnKHApIFIzMl9zaWcocCkKKyAjICBkZWZpbmUgU1Bfc2lnKHApIFIwMV9z aWcocCkKKy0jICBkZWZpbmUgRlBfc2lnKHApIFIwMV9zaWcocCkKKysjICBkZWZpbmUgRlBfc2ln KHApIFIzMV9zaWcocCkKKyAjZW5kaWYKKyAKKyBzdGF0aWMgdm9pZCBTZXRDb250ZXh0UEMoQ09O VEVYVCogY29udGV4dCwgdWludDhfdCogcGMpIHsKKyAjaWZkZWYgUENfc2lnCisgICAqcmVpbnRl cnByZXRfY2FzdDx1aW50OF90Kio+KCZQQ19zaWcoY29udGV4dCkpID0gcGM7CisgI2Vsc2UKKyAg IE1PWl9DUkFTSCgpOworICNlbmRpZgorZGlmZiAtLWdpdCBhL2pzL3NyYy93YXNtL1dhc21TdHVi cy5jcHAgYi9qcy9zcmMvd2FzbS9XYXNtU3R1YnMuY3BwCitpbmRleCA1OWE1Y2YxOGJmLi5kYmMx MGM2ZTJjIDEwMDY0NAorLS0tIGEvanMvc3JjL3dhc20vV2FzbVN0dWJzLmNwcAorKysrIGIvanMv c3JjL3dhc20vV2FzbVN0dWJzLmNwcAorQEAgLTcxOSwxNyArNzE5LDE3IEBAIHN0YXRpYyBib29s IEdlbmVyYXRlSW50ZXJwRW50cnkoTWFjcm9Bc3NlbWJsZXImIG1hc20sIGNvbnN0IEZ1bmNFeHBv cnQmIGZlLAorICAgQXNzZXJ0RXhwZWN0ZWRTUChtYXNtKTsKKyAgIG1hc20uaGFsdGluZ0FsaWdu KENvZGVBbGlnbm1lbnQpOworIAorICAgb2Zmc2V0cy0+YmVnaW4gPSBtYXNtLmN1cnJlbnRPZmZz ZXQoKTsKKyAKKyAgIC8vIFNhdmUgdGhlIHJldHVybiBhZGRyZXNzIGlmIGl0IHdhc24ndCBhbHJl YWR5IHNhdmVkIGJ5IHRoZSBjYWxsIGluc24uCisgI2lmZGVmIEpTX1VTRV9MSU5LX1JFR0lTVEVS CisgIyAgaWYgZGVmaW5lZChKU19DT0RFR0VOX0FSTSkgfHwgZGVmaW5lZChKU19DT0RFR0VOX01J UFMzMikgfHwgXAorLSAgICAgIGRlZmluZWQoSlNfQ09ERUdFTl9NSVBTNjQpCisrICAgICAgZGVm aW5lZChKU19DT0RFR0VOX01JUFM2NCkgfHwgZGVmaW5lZChKU19DT0RFR0VOX1BQQzY0KQorICAg bWFzbS5wdXNoUmV0dXJuQWRkcmVzcygpOworICMgIGVsaWYgZGVmaW5lZChKU19DT0RFR0VOX0FS TTY0KQorICAgLy8gV2FzbVB1c2ggdXBkYXRlcyBmcmFtZVB1c2hlZCgpIHVubGlrZSBwdXNoUmV0 dXJuQWRkcmVzcygpLCBidXQgdGhhdCdzCisgICAvLyBjYW5jZWxsZWQgYnkgdGhlIHNldEZyYW1l UHVzaGVkKCkgYmVsb3cuCisgICBXYXNtUHVzaChtYXNtLCBscik7CisgIyAgZWxzZQorICAgTU9a X0NSQVNIKCJJbXBsZW1lbnQgdGhpcyIpOworICMgIGVuZGlmCitAQCAtMjExMSwxNyArMjExMSwy NiBAQCBzdGF0aWMgYm9vbCBHZW5lcmF0ZUltcG9ydEludGVycEV4aXQoTWFjcm9Bc3NlbWJsZXIm IG1hc20sIGNvbnN0IEZ1bmNJbXBvcnQmIGZpLAorICAgICBtYXNtLnN0b3JlUHRyKHNjcmF0Y2gs CisgICAgICAgICAgICAgICAgICAgQWRkcmVzcyhtYXNtLmdldFN0YWNrUG9pbnRlcigpLCBpLT5v ZmZzZXRGcm9tQXJnQmFzZSgpKSk7CisgICB9CisgICBpKys7CisgICBNT1pfQVNTRVJUKGkuZG9u ZSgpKTsKKyAKKyAgIC8vIE1ha2UgdGhlIGNhbGwsIHRlc3Qgd2hldGhlciBpdCBzdWNjZWVkZWQs IGFuZCBleHRyYWN0IHRoZSByZXR1cm4gdmFsdWUuCisgICBBc3NlcnRTdGFja0FsaWdubWVudCht YXNtLCBBQklTdGFja0FsaWdubWVudCk7CisrI2lmZGVmIEpTX0NPREVHRU5fUFBDNjQKKysgIC8v IEJlY2F1c2UgdGhpcyBpcyBjYWxsaW5nIGFuIEFCSS1jb21wbGlhbnQgZnVuY3Rpb24sIHdlIGhh dmUgdG8gcHVsbCBkb3duCisrICAvLyBhIGR1bW15IGxpbmthZ2UgYXJlYSBvciB0aGUgdmFsdWVz IG9uIHRoZSBzdGFjayB3aWxsIGJlIHN0b21wZWQgb24uIFRoZQorKyAgLy8gbWluaW11bSBzaXpl IGlzIHN1ZmZpY2llbnQuCisrICBtYXNtLmFzX2FkZGkobWFzbS5nZXRTdGFja1BvaW50ZXIoKSwg bWFzbS5nZXRTdGFja1BvaW50ZXIoKSwgLTMyKTsKKysjZW5kaWYKKyAgIG1hc20uY2FsbChTeW1i b2xpY0FkZHJlc3M6OkNhbGxJbXBvcnRfR2VuZXJhbCk7CisrI2lmZGVmIEpTX0NPREVHRU5fUFBD NjQKKysgIG1hc20uYXNfYWRkaShtYXNtLmdldFN0YWNrUG9pbnRlcigpLCBtYXNtLmdldFN0YWNr UG9pbnRlcigpLCAzMik7CisrI2VuZGlmCisgICBtYXNtLmJyYW5jaFRlc3QzMihBc3NlbWJsZXI6 Olplcm8sIFJldHVyblJlZywgUmV0dXJuUmVnLCB0aHJvd0xhYmVsKTsKKyAKKyAgIFJlc3VsdFR5 cGUgcmVzdWx0VHlwZSA9IFJlc3VsdFR5cGU6OlZlY3RvcihmaS5mdW5jVHlwZSgpLnJlc3VsdHMo KSk7CisgICBWYWxUeXBlIHJlZ2lzdGVyUmVzdWx0VHlwZTsKKyAgIGZvciAoQUJJUmVzdWx0SXRl ciBpdGVyKHJlc3VsdFR5cGUpOyAhaXRlci5kb25lKCk7IGl0ZXIubmV4dCgpKSB7CisgICAgIGlm IChpdGVyLmN1cigpLmluUmVnaXN0ZXIoKSkgeworICAgICAgIE1PWl9BU1NFUlQoIXJlZ2lzdGVy UmVzdWx0VHlwZS5pc1ZhbGlkKCkpOworICAgICAgIHJlZ2lzdGVyUmVzdWx0VHlwZSA9IGl0ZXIu Y3VyKCkudHlwZSgpOworQEAgLTI2NzMsMTYgKzI2ODIsMjEgQEAgc3RhdGljIGNvbnN0IExpdmVS ZWdpc3RlclNldCBSZWdzVG9QcmVzZXJ2ZSgKKyAjZWxpZiBkZWZpbmVkKEpTX0NPREVHRU5fWDg2 KSB8fCBkZWZpbmVkKEpTX0NPREVHRU5fWDY0KQorIC8vIEl0J3MgY29ycmVjdCB0byB1c2UgRmxv YXRSZWdpc3RlcnM6OkFsbE1hc2sgZXZlbiB3aGVuIFNJTUQgaXMgbm90IGVuYWJsZWQ7CisgLy8g UHVzaFJlZ3NJbk1hc2sgc3RyaXBzIG91dCB0aGUgaGlnaCBsYW5lcyBvZiB0aGUgWE1NIHJlZ2lz dGVycyBpbiB0aGlzIGNhc2UsCisgLy8gd2hpbGUgdGhlIHNpbmdsZXMgd2lsbCBiZSBzdHJpcHBl ZCBhcyB0aGV5IGFyZSBhbGlhc2VkIGJ5IHRoZSBsYXJnZXIgZG91Ymxlcy4KKyBzdGF0aWMgY29u c3QgTGl2ZVJlZ2lzdGVyU2V0IFJlZ3NUb1ByZXNlcnZlKAorICAgICBHZW5lcmFsUmVnaXN0ZXJT ZXQoUmVnaXN0ZXJzOjpBbGxNYXNrICYKKyAgICAgICAgICAgICAgICAgICAgICAgIH4oUmVnaXN0 ZXJzOjpTZXRUeXBlKDEpIDw8IFJlZ2lzdGVyczo6U3RhY2tQb2ludGVyKSksCisgICAgIEZsb2F0 UmVnaXN0ZXJTZXQoRmxvYXRSZWdpc3RlcnM6OkFsbE1hc2spKTsKKysjZWxpZiBkZWZpbmVkKEpT X0NPREVHRU5fUFBDNjQpCisrLy8gTm90ZSB0aGF0IHRoaXMgaW5jbHVkZXMgbm8gU1BScywgc2lu Y2UgdGhlIEpJVCBpcyB1bmF3YXJlIG9mIHRoZW0uCisrc3RhdGljIGNvbnN0IExpdmVSZWdpc3Rl clNldCBSZWdzVG9QcmVzZXJ2ZSgKKysgICAgR2VuZXJhbFJlZ2lzdGVyU2V0KFJlZ2lzdGVyczo6 QWxsTWFzayksCisrICAgIEZsb2F0UmVnaXN0ZXJTZXQoRmxvYXRSZWdpc3RlcnM6OkFsbE1hc2sp KTsKKyAjZWxzZQorIHN0YXRpYyBjb25zdCBMaXZlUmVnaXN0ZXJTZXQgUmVnc1RvUHJlc2VydmUo CisgICAgIEdlbmVyYWxSZWdpc3RlclNldCgwKSwgRmxvYXRSZWdpc3RlclNldChGbG9hdFJlZ2lz dGVyczo6QWxsRG91YmxlTWFzaykpOworICMgIGlmZGVmIEVOQUJMRV9XQVNNX1NJTUQKKyAjICAg IGVycm9yICJubyBTSU1EIHN1cHBvcnQiCisgIyAgZW5kaWYKKyAjZW5kaWYKKyAKK2RpZmYgLS1n aXQgYS9tb2R1bGVzL2xpYnByZWYvaW5pdC9TdGF0aWNQcmVmTGlzdC55YW1sIGIvbW9kdWxlcy9s aWJwcmVmL2luaXQvU3RhdGljUHJlZkxpc3QueWFtbAoraW5kZXggZDgxMDI1YjI4Mi4uNDNiNzVj NmFlMCAxMDA2NDQKKy0tLSBhL21vZHVsZXMvbGlicHJlZi9pbml0L1N0YXRpY1ByZWZMaXN0Lnlh bWwKKysrKyBiL21vZHVsZXMvbGlicHJlZi9pbml0L1N0YXRpY1ByZWZMaXN0LnlhbWwKK0BAIC01 NzI5LDE3ICs1NzI5LDE3IEBACisgLSBuYW1lOiBqYXZhc2NyaXB0Lm9wdGlvbnMuYmFzZWxpbmVq aXQKKyAgIHR5cGU6IGJvb2wKKyAgIHZhbHVlOiB0cnVlCisgICBtaXJyb3I6IGFsd2F5cyAgIyBM b2FkU3RhcnR1cEpTUHJlZnMKKyAgIGRvX25vdF91c2VfZGlyZWN0bHk6IHRydWUKKyAKKyAtIG5h bWU6IGphdmFzY3JpcHQub3B0aW9ucy5pb24KKyAgIHR5cGU6IGJvb2wKKy0gIHZhbHVlOiB0cnVl CisrICB2YWx1ZTogZmFsc2UKKyAgIG1pcnJvcjogYWx3YXlzICAjIExvYWRTdGFydHVwSlNQcmVm cworICAgZG9fbm90X3VzZV9kaXJlY3RseTogdHJ1ZQorIAorICMgVGhlIGlycmVnZXhwIEpJVCBm b3IgcmVnZXggZXZhbHVhdGlvbi4KKyAtIG5hbWU6IGphdmFzY3JpcHQub3B0aW9ucy5uYXRpdmVf cmVnZXhwCisgICB0eXBlOiBib29sCisgICB2YWx1ZTogdHJ1ZQorICAgbWlycm9yOiBhbHdheXMg ICMgTG9hZFN0YXJ0dXBKU1ByZWZzCitAQCAtNTk2OCwxNyArNTk2OCwxNyBAQAorICAgdmFsdWU6 IDYgKiAxMDI0ICogMTAyNAorICNlbHNlCisgICB2YWx1ZTogMiAqIDEwMjQgKiAxMDI0CisgI2Vu ZGlmCisgICBtaXJyb3I6IGFsd2F5cworIAorIC0gbmFtZTogamF2YXNjcmlwdC5vcHRpb25zLndh c21fb3B0aW1pemluZ2ppdAorICAgdHlwZTogYm9vbAorLSAgdmFsdWU6IHRydWUKKysgIHZhbHVl OiBmYWxzZQorICAgbWlycm9yOiBhbHdheXMKKyAKKyAjaWYgZGVmaW5lZChFTkFCTEVfV0FTTV9T SU1EKQorIC0gICBuYW1lOiBqYXZhc2NyaXB0Lm9wdGlvbnMud2FzbV9zaW1kCisgICAgIHR5cGU6 IGJvb2wKKyAgICAgdmFsdWU6IHRydWUKKyAgICAgbWlycm9yOiBhbHdheXMKKyAjZW5kaWYgIC8v IGRlZmluZWQoRU5BQkxFX1dBU01fU0lNRCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmlyZWZveC1l c3IvdGVtcGxhdGUgYi9zcmNwa2dzL2ZpcmVmb3gtZXNyL3RlbXBsYXRlCmluZGV4IDM1ZTdiMGJl OTNjOC4uM2I3MmUzM2Y5NzY0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZpcmVmb3gtZXNyL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvZmlyZWZveC1lc3IvdGVtcGxhdGUKQEAgLTMsNyArMyw3IEBACiAj IFRISVMgUEtHIE1VU1QgQkUgU1lOQ0hST05JWkVEIFdJVEggInNyY3BrZ3MvZmlyZWZveC1lc3It aTE4biIuCiAjCiBwa2duYW1lPWZpcmVmb3gtZXNyCi12ZXJzaW9uPTkxLjMuMAordmVyc2lvbj05 MS40LjAKIHJldmlzaW9uPTEKIHdya3NyYz0iZmlyZWZveC0ke3ZlcnNpb259IgogYnVpbGRfaGVs cGVyPSJydXN0IgpAQCAtMTIsNyArMTIsNyBAQCBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFu QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTVBMLTIuMCwgR1BMLTIuMC1vci1sYXRlciwgTEdQ TC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cubW96aWxsYS5vcmcvZmlyZWZv eC8iCiBkaXN0ZmlsZXM9IiR7TU9aSUxMQV9TSVRFfS9maXJlZm94L3JlbGVhc2VzLyR7dmVyc2lv bn1lc3Ivc291cmNlL2ZpcmVmb3gtJHt2ZXJzaW9ufWVzci5zb3VyY2UudGFyLnh6IgotY2hlY2tz dW09MTI4YjUzNDlmMTEyZDhhMGZkODY5OGYzNjQ1ZWQ0M2VhMjlkNGI5NTA0N2I3YzRmZDc3MGI5 NWQwNjYxZTk2YworY2hlY2tzdW09ZTcyMjgyOWRiNDkwZjkzMzI3MTJhODFjMzU5OTY1NDE3Mzdi YmZiMDUyMzJkNDcxOTBmZWU3NzljNGZjYjMyNwogCiBsaWIzMmRpc2FibGVkPXllcwogCkBAIC0x NDUsNiArMTQ1LDEzIEBAIGRvX2J1aWxkKCkgewogCQllY2hvICJhY19hZGRfb3B0aW9ucyAtLWVu YWJsZS1ydXN0LXNpbWQiID4+Lm1vemNvbmZpZyA7OwogCWVzYWMKIAorCSMgZW5hYmxlIG91dC1v Zi10cmVlIGJhc2VsaW5lIEpTL1dBU00gY29tcGlsZXIgZm9yIHBwYzY0bGUKKwkjIG1vcmUgaW5m bzogaHR0cHM6Ly93d3cudGFsb3NwYWNlLmNvbS8yMDIxLzEyLzkxZXNyLXdpdGgtYmFzZWxpbmUt Y29tcGlsZXJiYXNlbGluZS5odG1sCisJIyBQT1dFUjkgb25seSBmb3Igbm93OyBydW50aW1lIGRl dGVjdGlvbiBkaXNhYmxlcyBKSVQgb24gUE9XRVI4CisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJ TkUiIGluCisJcHBjNjRsZSopIGVjaG8gImFjX2FkZF9vcHRpb25zIC0tZW5hYmxlLWppdCIgPj4u bW96Y29uZmlnIDs7CisJZXNhYworCiAJZXhwb3J0IExERkxBR1MrPSIgLVdsLC1ycGF0aD0vdXNy L2xpYi9maXJlZm94IgogCiAJaWYgWyAiJFNPVVJDRV9EQVRFX0VQT0NIIiBdOyB0aGVuCgpGcm9t IDA3ODI0ZTg0ODk5MzI4ODA3M2IzNjQ2MzUxMjhlYjI3ZGU0YTc3MjIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFdpbGwgU3ByaW5nZXIgPHNraXJtaXNoZXJAcHJvdG9ubWFpbC5jb20+ CkRhdGU6IFN1biwgMjYgRGVjIDIwMjEgMTY6Mjk6NDggLTA4MDAKU3ViamVjdDogW1BBVENIIDIv Ml0gZmlyZWZveC1lc3ItaTE4bjogdXBkYXRlIHRvIDkxLjQuMAoKLS0tCiBzcmNwa2dzL2ZpcmVm b3gtZXNyLWkxOG4vdGVtcGxhdGUgfCAxODggKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgOTQgaW5zZXJ0aW9ucygrKSwgOTQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9maXJlZm94LWVzci1pMThuL3RlbXBsYXRlIGIvc3JjcGtncy9maXJl Zm94LWVzci1pMThuL3RlbXBsYXRlCmluZGV4IDUxNTgzZmI4MGU5Yi4uZDcxNjhhMmZkMzE4IDEw MDY0NAotLS0gYS9zcmNwa2dzL2ZpcmVmb3gtZXNyLWkxOG4vdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9maXJlZm94LWVzci1pMThuL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZmlyZWZveC1lc3ItaTE4bicKIHBrZ25hbWU9ZmlyZWZveC1lc3ItaTE4bgotdmVy c2lvbj05MS4zLjAKK3ZlcnNpb249OTEuNC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXRh CiBzaG9ydF9kZXNjPSJGaXJlZm94IEVTUiBsYW5ndWFnZSBwYWNrcyIKQEAgLTEzNSw5NiArMTM1 LDk2IEBAIF9wa2d0bXBsKCkgewogCX0KIH0KIAotY2hlY2tzdW09IjBlZWUxYjE3YjFmNWFlZDY3 NmEyYTQ5NGNmMjliNWU1ZDNkMjY5ODcyOGEzNWViYTA4ZTY2NTcxZDhjODRjMTQKLSBiZmYwOTJm NWUxYmM4ZTAxZTNkODhmYWQ0ZjYxMjFmNzFjNmRmOWYzZjY4YTA0MzdlZjBhMTQwNTBjN2UzYjQy Ci0gNzE0OThmYWVmNDZmZjY0NWJiYmFjNTI2YmI2NmIxY2JjYTM0YzJiNzAyMmFjNTcwYTQ3OTZj NmEzOWE4OTc1ZgotIGJkOTlmOWFkYTJjODI0OGVlMTIzOWFhOTVmNDQ4ODA0ZWM5Njg2YTczYTI4 MDQ1YmYwNTY4OWQ2OTE5ZmJmY2QKLSA0NjdlMDRiZDZlZWNmMTRmMWI1NjVlZTliODkxNjE4NzNk MjA1ZjU0MDc2ZDk0ZDQxYThiZmM2ZmEyYTU4OTk2Ci0gOTg4MTg3NDY1OGU2MDY2YjM2NmEwYTBm NjE0MDE0MWNhYTE2NWMxODMwZjc0OTQ3MjcwYzUyYzA2Y2IzOGZhOAotIGE5YzFjOTU1ZmIxMWM3 ZjQ3M2VhNjE1YzkxNzgwNGNiYmExY2MxYzg3YjAyN2I1ODFmNWM4YTczOGYxYTM0ZmIKLSBjNjFm NTc4MTM2Yzk5OGQ3ZmNmZTE1N2RkODU2MzdkNTM2ZGE0NTkzYTRmOGZhOTBmZmM1ZmU5NGJiYTlh ODAzCi0gNDdjZTg0YTBkNzQ0YzMzMDQ5YTZlMDgxYmQ4ZDY1ZGFjNTE1MjM3ZTUyOThmZjlmYzQy NGExYmM0NzAwY2M5MgotIDA4ZjZlYjU3NzlmNDM5OWZkZjBhODEzMmRjOTI0MzhlOTc0Y2QzZGNi NGM1NDM4ZmI1ODdkYjg3NmVlODg5ZWMKLSBlMTZlZDE5MDZjNDllZGZhYWEyMzMzMzhiZmQ2ZWFm OWU0ZjIxMTMyNjBhNTY4MmQ0ZmRkOWU5Y2U3MWIwMTdlCi0gZGRiMjVkZTNhOWU0Y2MzZTI4MmZm ZTI3MGU2MmMxMzI4N2EwMTZlM2MwZDY3NmNmODI0MmI2ZDkzYWZjY2FmNQotIDlhZDUxYzYzNDZl N2Q3MGE5NDI3N2VhZjcxNDZmYTExMTk5YjJhYjQwZDkxNjUzZDZhYmYwZDM3NGY3MTM0ZmQKLSA2 NGFkMDI2NzQ1NzY3OGE3YjZmMmIzZTQ1MmYzNjc4YTNhYWYxNGJmYjkwNWY0Zjc4Y2U0ZDk5ZTA2 MzEyYzM3Ci0gOTFkZjQ4YzliNmFlMjNlOWU5NDY0MWI5OGEwYmE5NzhmMzA4Y2ZkNzIyMzZmMGEw YjlmYTcxMmUwMjZjYzcxZAotIDUyZTg3MDQ4MTIwMjQzMDkyZDc3Zjc5YWEzMzg1MmI1N2Y2YWVj ODc1YjQ0Y2M3ZjMyMWFiZDUwZjg4YWZlN2QKLSBhOThhMjZkMGE1MGFmN2ZlYzdhOTVmMTM4ZDcy NGVmNjdmMzA5MzAzYTBkZjgwNjdjMDc1NWMxMzliMjU0YWVlCi0gMTI2ODk0MDE1ZjE3ZDkwODA2 MmYxNjAwYzdkOGZhNDAxMGI4ZWQ3MGQyMDZiZmZjNGE0MDhiNDMzNTZlYTNkNAotIDIyMTgwZjY2 MDEzNzZiMTMyZjJmNDZlYjA4YTRlY2IzYzQ4NGU3NmJiOTA1ODc3NjRhZGRkNWQwNjQ3MDI5ZWEK LSBjYmIzMjNiMmIxMTMzZDgyOTBiOTkxYjc5MDA4ZWU4NDcxYTkxNmM1YmE1NDJjYThlMzU5Nzcw YzE5ZDQ3NTlhCi0gYjMwMTVhN2RiZjY5M2NlOWVmNDRjNmYzYjhmN2MwZjA0M2JiMTM0NzRlNDE0 NDE1OWNjMjZhNjVjYmIyMzUyMQotIDJhYjg1MTk3NGJkYmI1YjkxNGFjZDQ0ZWRmZDZlZjJhZGY0 ZDBkODNiODcyYThhZGI4YjJiNjRkNjIwYjI3ZmMKLSAyMzRlY2M1N2U5OWJlMzlhYTUxYWI1ZTVl NWIyMzhhOWM1ODU3ZmQzNjZmNjljZGYxNjBlZmQyNTIzN2QwNDk2Ci0gZTYyN2FhOWVlODVlNDQ5 Y2VkMmU2NTVmNDVhYjYwZTEzNzJhMzZmNGI5ZmY4NTQzODM5YTg2NDc2NjcxODU2OQotIGRlOWIx YTY0YjAxZmQxNWZmNmI4OWQ2Y2NjOTM0NTFlMWYxMTIxNmIwN2RjNWU2ZmEwNTI2OGMzZTkyNmNh ZTEKLSAyY2E4ODkxODAxOTFkODE4M2UwNTJjOWRmM2MzNzc2MDBmY2FlNjIyZjc2NDlhYjQ4OGEz YzFhNWExY2Q4ZDViCi0gM2I5NWFhY2UzNTc5YjUzNWE1NTEyOGI5OTU5OTc5YTYxZGJhMjJiY2Ri MTk1ZTM2MmNlZWI3NTI2NDA3Yzc3YQotIDQ5MTU0Mzg4NTQ5YTljNWRiMzIxZWJiN2QzMjc3MDhh N2JmNGIzNmRlMzljZGYwZDkzZDNiODhjZWUwNzdmYjMKLSA5ZjJiMzViYzk0MmNhNjljYjQ5OGMy NzUyYTIzNGY1OGExYTc2NWNlMzA1NjM1ODljNzIwYTc1NWJmMjllNjU1Ci0gZTEwYThlNzJmMGI2 YWEyNjdhNGEzZTUxNzA4Yzg2YzIxZDliOTJkZGZhYzI4ZDFmMmQ2OGE4YjIxNzI5Y2E4YwotIDA5 YTFlNTFiYTY2ODk1OTMzMWFjNDYwNDFhNzZjYzE1ZjM0NWI4NjM0YTY0MjkxODU0NGMwMTU4Nzc3 ZGQ5ODkKLSA3NzkyYmJjYzlhMWRkY2ZjYTg5NjhjZWE1YmNhYWUyNTAwOTViNWE0NmZkZTVkNTFh NDhkNDQyNmI0YzZmNWQyCi0gNjM4YzY2NTU1N2VmNjU1NmE1YmJiMmM5Zjc5ZmNhNzgwYTA4MTIy NmRiZDVhNDY1ZTc2MTVmMDU1YTExNzc0OAotIDljM2I0NTkwMGEyOGFiM2VmYjViM2JiNTJkYWVi YWNjMWRkM2EyNDY5MzZiNzQ1ZmZmNjc2ZTZjM2ZkMjUxZmQKLSA3YmNiYmEzZTM1M2NjN2EwMzQ0 MzAyZGI4YTk4ODhmNjA2ZTI4ZThjMmYxMWY0Zjg4ZGRlNTJmYmE2OWI0M2M0Ci0gNjIzODNiYTk4 YTE2OTY0Y2U2ZWYyYmRlODc4NTE1NTA1OTY1Y2ZkZWQxN2I2OWU0NzdkMzY3MWUxYTk0MmZlZgot IGRjYzIyMTI1MjliZWE0ZThiMjFiZWRmM2NlZWZlZWMxYTc5ODgxODAwNWQ1MjZkNmQxOGNhYmVj ZGZmMjMwZTEKLSA1ZDBjNjRjZWM2YWFmY2Y0NzhiNTdjMjY2NDBlMThjZmFlNjkyOGQ1YWU3MDVi OWE4MjMzNzU1OTM4OWE1N2ZlCi0gZGFiNzMwZWFiMjE2YzJjYjBhMTY3MmEyMWU3OGZiZjkzYzY3 MjQ5OGQ1ZTM2NzgxYjFjNjgwNTBhZTg0MzFkOQotIGU5Mjk2ZmRhZGI4NGQzNDYyZjYzYTA2ZTll NzJlM2Q3YzFlNmRmOTU4NzBhNmYzMDNiNDk4ZmIxMTVlOGFjNmIKLSA1MTlmMWFmZTJiMWE2NzQ3 ZTI2NzE4ZjI4YjM5ZDI3ZjVkMDE4OGJjODVlZDkwNmI1NGQxOGNiY2E2YTY3ZWM3Ci0gZTkwZmRk MzRkMWQ0NjEyYmQxYTdhODFjYTMyNzViZTJkYWRhMjY4NjI5NDRiNGNhZWIzNTY0ODI1OTZmNTkx YQotIDgzMTQyYWZhODJhOWRiMzI3NDc1YWZjYzMzMTg4ODJmZDhhMjZkODFiYzk0Njc0OWQ1N2Vi MzkyM2M1ZjQ4OWIKLSAwMjc2MDQzMjg4NjBkNWJjOTM4YWM5NTY0YWFlODk1NzMwOGRhNWI5ZWMw NWNkMzk4NDg1NmRhMWMyYWYzZWEwCi0gYTcwMjgzOTg4MTZhZTIzMzRiZjk0YzY2ZWZlNDI5ZDk4 MWE0OGI3OTAyODZkMjdmZGMyNWYzMzg4NzIwZTYyYwotIDkyMjRhN2UwZjFjZWVjZGY0YzdmNzdm ZGViNTEwMTAwNDE5ZjllODA1ZTBiMjA0ZjBjNTlkMzYyNzVmNmQ5MjUKLSA4YWY5OTBhNmZiODA1 ZjU1MjY0M2I2ZWUzOGQxNzhkMmY3NWJkMTY5ODAyY2VjMTc4MTc1YzgwMDViYzc3YjM3Ci0gYjYy OTg4NmE0N2ZhY2FmN2ZhZDEwNWI3ZWU5ZGM5OGI0NzA2NzBiMjViNTc1ZTUxNzEwZDg3NjIzNTIw OTY3NAotIDMxZmM3Zjg4MmI3OWM0ZDkxZDI3MGJjYzhlNWIyZmE3MDY2ZjIxZDZjOGE1ZDRkNDkx ZDc4OTZlNDkyMDJmMDYKLSBmZDdlNWRjNTEwNzcwY2M2MDFmOWVkNGUxNzRiODU4NWVmMjgzMTZm NjYwMzc5MjM1MjQ1ZjEwY2MwYzZiYzNlCi0gZTBhYzZkMTYyNmMxZGZhMDViY2Y2Mjk4OTE5YWVl ZTRmYTY5MDRkNGEzNDc2MDhkNzI5ZTM4ZWFkNGJhZjEyMAotIGZlMDVlMDA0MTNhMjkwNWYzZjI1 ZDY1ZDYzNTY1NWNmOWUzN2Q2MmZlYzVkMGQyMzVlYTVjYzdmYTA4ZWUxZmQKLSAyMGZmMmM5MzBi NzMyMDgyYTQ0MDIwZmRlYmM1ODhhYzA2OTI2NGVhZDQ4ZmEwZjlhY2U1YWVhNDIxMGIwNDZmCi0g NDM0NmU0NzQwMDljYmI2MzAzOTJlZDA1ODNjNjU0NDhlZTU3N2E3MTQwM2NiMTY0ZTkwNGE5OWJm NmU4MTljMgotIGY0OGFjMmUyNzI1YzgzYzgyYWYwMzc0YjVhYTdhMWRhMjcwYmYyNWVhNjk2YzUz M2M5ODFkMzQ1MTg3NDZmYmQKLSBlNTIwYTc5ZWJkZWM4Mjk4ODlhMjIyNTA3OWVhNzA4MWJmYTE1 M2NjZjcxMDI0YTk2MTc2MjViODg5MjNkMDExCi0gZmViNDcxNjgyZThhYTc5Y2RjNDEwYzA1M2Jk Mjc2Mzg3ODI3NWYxYWJmZjE3YmNiMTc4Mzc5OGVlMjY0YjZiZQotIGY5OGEwN2NjYjQ4MDZkZGZl ZjgxNTcxMjc1NmYwNmI4MjU0M2RkMTM0ODNhYmU5ODY1NDM0ZDRjMjQ3ZmEyYjAKLSAxN2Y2Mzg4 ODA3ZWM0OGE4NDE5ZGNjNjczODFmOGQ4YTVhYWRkNDY3ZWQ3ZDZjMzg2ZmY1NjE3M2U2NDU2MzNj Ci0gZjdhYWIyYzUxYTc4Y2FjNDcyNzBiZDM3YzliNTQ1ZmUwN2IwODQyOTI5OWQ4ZmRjMjdiMDg3 Y2NiYjQxMDhmMQotIDBkZDU5ZTlhNjY5ODk0ZDlhZTgyYzUwZjJlZTA0NDk1OTIyYWE2ZjQ1Nzgw YjUxZGYwODk3MDZjN2JhOWNiY2MKLSA3NTc5Y2U4M2YwODg2OTM5ODkzMjZiNzE2NmY2NmEzODA4 Mzk4YmU4MWI5MjIzNjE1NTZjM2VmYmM4YThjMDhhCi0gZjA3ZTk1ZWVhMTFjOGY2ZTUxNmMwZmRi MzMwMzhjMzIxYWU4YWEyN2FjODFmNWM2NzczY2YzMTA0ZTk2N2ExOQotIDVlMjQ3Zjg2YzE1YTI2 N2FjMDE3ZGZjZjczMzk1ZWQzMTA0ZjQwN2M5NmJiNjA2ZTM0MDcwMzMyZTJiMjYwNTAKLSA4YjYx YTM2N2ExODZmZWNhNzM1NDg3ZDlmNjJmMGRlNzg2NWQxYTY3OGU3ZTlmOTkwYWQzMTk0NWJhYjEw ZWI3Ci0gMDgwZjE1MGUwNjY1MDg5NDY0ODJlNzhkY2M3MTRjOWZiM2I2M2E3OTc1ZjY2Y2ViYTAx OGZmYzViYzY1YTgzMwotIGU5ZjViNzRhMjg1NmZjMDA5YzMxMzkxNjQ4NzJjY2JlMjg0NjE4ZDdm YzFmYTU5YzE2NTc1YzgyY2RhODQ5MWUKLSA4MGM1MGIyNTJiNGJjMGMwMGEzMzZhOWJkYmZiMDVl N2M1MTBmNGFkMWFlNmM2NGY5MmY2ZjZhMDM3ZjlkNzYyCi0gODU1OTZhNzNhOTU3ZmY4MGQ0MDNk NjkxY2JjOTY3MjRiYWU3MTg2ZTEzNThmODVjM2VmMjFjNTAxYjAzM2FkMQotIDgxMjc3YTNlOGI4 OTZlNzYwZWY3NWFkOTBjMTk3ODE4YWEzMzk1YWJmMDE3Yjc1NjBkYjViMTg5MzAyZDhlMWQKLSA3 MzNkZTJkZjQ5NzYyZTdjNmUxNmEwMmFjYmZlNDA5ODY5ZWM2MWYwNzEzNjRkMGJiZThjYmVlNDNm MzUwYzA3Ci0gYjhkNjM0YzZjZTdiMDNiYzc4YzAyNDgwZDgyYTRlZmZiZWM0NjExOWNkOGE2Yzdh MGZiZmJkYmQ3ZjhiZWU5MwotIGY2OGM4YzhkZTIzZWM0ZWFlNDA3ZTQ0MTc2ZGY3N2I0ODE0NmEy YmQ2ZGU0ZWRiY2Y2ZWNhMzNmM2NmOTNjYjIKLSBkYTViOGQxMGJmYWU5ODcwNTFmOTc4ZjVmNTcw N2M5NTMyYzEyNDIzMzkyOTQwMjI0OWFjOTlmZTAyN2M0YzU2Ci0gNWEwMDIyMWMyNjRlMDZiMDQ0 NzZhY2Y0MDk4ZWI5YTU4MTNlYWViZDM4ZDM1NTI3NjUyYWU3NTdiZDdhYzgxOQotIDg0OTg3MmYx ZWRmNjc0YjUyMDBjMzViMDUzNzVhMjNhZTU2NDM3ZThlYzFmNWNiYmQ4Y2Q0NDcwMTI3ODk2ZDEK LSBjMzcwNzUxOTE0ODFhOTNmZDgyYzNlYzEyY2I1ZWQ4MTY4MmVmZjQ3MjJlMWQ1MTkyODc1MzVl OTU5YTQ2Mzc5Ci0gMjg2ZmQyOTkxNTcwYmU3ODEzYTczNzJiMDY1MWVlODRkZTNlOTRlMTJiNDFl OTA2ZGUzODA1NzNjMDViNzVhOQotIDhmMzY3ZmVlYmQ2MzRiMWNkZDAwNGMwYzQ0OGZlZDg0NzNm NzgwNTExZjUyNWViYTdhOTAyNzUzZDg3M2I2M2EKLSBmNThiM2ViOGRiZjRiMjE0Y2Q2ZGU0NGZm YzIzZGRkZGQyYTJlNjFiYTRmMmIyMWViMWFlMTM0NjY5ZTNlMTlhCi0gYzUyN2NhMjc2ZDdjMmI2 NzZlODkwMzBhMzZiMWIwZDJlYjMwZWI5ODY4NDlkMWVjYzNjN2ZjOTBlZDFiNWIyMgotIDg5MzQ4 NGZiZmEyOTdmYzg3NzMzOTE4NjIwZjk0NjI5ZjJiYWVlNWQ3NDdiOGNiY2VmNGZmNTI2OGQwYjhk M2UKLSAxMWE0NmRkZTJmNGUzMmM3YmE1NDk4MTk1OTczZTI2ZGQ3NTdlNmViNmY4MTcxNzI1OTA2 MmE5MmMwYmM2Y2MwCi0gMGJjYTk5ZmY1MGNiNzEwNWJiYWJhMTliMzQ1YzkzM2I5ZTQ5MDJhOTJl NDM5YmMxYmRkYzhkYjIxMGEwNDE2ZQotIDA3NTM2YTg3ODEzYmU1ZGUzZjJkN2I5ODI4YjlkODQ2 ZGFhNDY1NmVkOTgzZWY4MzIxNDk2ZDYzZDc0ZWQ1NWYKLSBiZjU3ZTk4NjU5YzM1N2ZiNDIyM2Qx MzIwZDQ0NWFkNThjYjc1YTUzMjdlY2VlY2M5ZGVlZjRmODFiNzEzMzg4Ci0gNzk1MzIyMjIwZWM4 OTE2ZTE1OTM4NjM3ZDNkMGVlMGZlZGM4NzZlNjAyMGE1ZThkMjZkODI4MTgyOWI3YTYwOQotIDBi NDMyN2MxMDRmMTU5MjAyZjRkMGVjMmM0YWYzZjc0MjU1MTMyMmVhNzg4MDE5NGNiNGQ1ZWIyZTcy ZWZiMzkKLSA5Y2MzYWM2YzU5MmY3Y2MwOGY1YmQwYzcyODVjNWRlNjUzMGE2MzM5NzIxMjg3OGQ2 OWY0MzZmMDcxMTAwNDliCi0gYzYzYzE3MGM2NmIzOWFkOWRlM2Y4ZjZhZGM1OTgwYzc5OTRlYTVl ZTg3MzE0MDY1NGJkY2YxMmMzYmMzMTVkMQotIGNmOTRhYzZmODcyODM2N2Q0ODUxNzNhZmM2YjE3 ZDE2ODdlYmIyM2NiN2JjM2NmMzYwNzNjZWIwNzg2ZTYyODMKLSBhYmNlYjJmN2Y5ZWExNDJjOTAy OTM0NGU1MDJjZmFkODIxZDMyOTYwNDYyYjljMTc0N2MyODlkYjE5YTY1MmJjCi0gZTBlYjA2YmY2 ODE4ZGYxMDM0NWUwOGFkMTQzMWQzMDBiYmUyNmM1MmYxYzE3OTVlOTVmZDE1NzI5NmQzNzk0ZCIK K2NoZWNrc3VtPSJhM2ZlMzI1ZTExMGMyOGVmZWI1MTNjODIzZDlhNDU2ODU2ZjZkZDJhNjM5MmM2 MGY2MTJhNDg3MzUwNzViOGM3CisgYTUwOGZkZTYwNWRkMjEwNGU3MjlhMDVhM2RjZWU0MWEwMjVm NTBmYmEyNDI4NWM0MWU3Y2M2NjhhNTJmZDQ2ZAorIDRlYTUyNmY5YWI4N2NjYmIzY2FlZjMxMjBk NDJhMWExOThjMDg3MjZmNDhjYjg3ZGE1YjlmMDQ4ZmI4MjRhMzkKKyA4NmEyOWQ0YTc2MGQzM2Fi ZmJiNDQ2NjUwZjViMjA4OTgzNGNkZTc1MGEwZWQ2OGQ5NzlmYzE0NjM1ODlkZTQxCisgZDJiY2Yz NmIzZmJkNThkODI4NzU4OTVmMDgyZjAzMDVhNmNhYzQ3ZWI5YzFkMTM4MjRkYzYzMDFhNWFhYjEy NgorIGNhOTA2OTUyNThmNTZlMDFlZTUzOTU4NDk3YzkzYWIzMWMwYTY1MDkzZTIzZjlmYTJiN2Rk NmYyYzVjZTVlYTEKKyAwNDgzMTg4MzliN2Y5MmQ3YTY1MjFiZjc0MDdkOTEyYTI3MmI2ODliNDJk MzRjY2EwYzc1OTBjMDlhNTI3NjllCisgOTc2ZTY1M2NjMmFlM2EwYmI3ZWMwMzc4NjQ2MmMxNGFh MGRhYWNjN2RkMzNkZGZmMjM3Y2JmOTlkYmU1ZGJhNgorIGEzZmYxNDExZGY5NzY4MjY3ZDMyZDkw OWUwODgxMzZiNThjNjU1YmYwYTg2YTMzODYxNmI2YTdjYzkyZjk2YTcKKyBiODhmY2ZlM2ZjZWEz ZTE2ZmJhN2ZiZGE0NTkzZDQ4OGU0MzFlMjU5MTMwYjliN2UyYjJjNjRlMTI5YmUzOGRjCisgMDY4 OWZmZDgyNTMyYzU0NDZmNjcyMmMwNTcxMTI2MmE2YjJmM2FlODRhZjNkZjk2YmQxZmZjNjg3ZWFh MGMzNworIDVmZWZiNzA4ZGFiNjA0OWRkYTY1ZGU4NjcxY2UxYzE2ZTUyNzRlNWJhYzU5OGU5MzVk YmM5NTNlNWJhNDc5ZWUKKyA4N2QwNzhmYjAxMTAyMGFlMDc5N2RlZGE5ZjBkZGQ5OWM5MjBlMjFk YTQyMzQ0NmFkMGYzMmZhZDNiNTQ3YzRiCisgZDQyMGFjMjUwYTBhYmIzN2MxNjhhNTM0ZjQ0MzFh NmE4NGZiYTQwYjNmNTFmYjc1OTRiNWNmZmUzZmVlMmZhZAorIDgzZTg1NWI1OTM4YjFjYjY4ZDU0 ZmZhNjEwZTZlMmEyYTg2NTEyMjhiNTQzZGRlMDc4NGU4YzFjNzlhN2IzYjAKKyBhZGRiOGU5NDFj MmUxY2EyYjNlOWNjMGJkMjhhNDFjN2Y4MzE2NjYxNDU3MWIxNzhmZDNiY2RhZmY2ZjFlMmZlCisg YTdhMjQ5MjMyZmMzMTA5NWI3MTAyZTFkZDRlN2M1ZDA0NGI5MGMzYjA1ZjdmYTI0YmRmZmZiY2Jm Mzg1YTliZQorIDU0MDkwMGNmOTQ1ZTkxOTYwMjExOWQzMDkzZTdiZjA4YzlkNmM3ZmNhMzJjYzI0 MzViYWUzNDcxOTViYmM3OWUKKyA3MWYyMzRjNDBkYmY4ZDFlZGE5YjE5ZDczYmFjNjE5OWJmNjdj OTE5MDgwZmNjYjUwZmYzYTExMjVjNGRkOGI0CisgNTEzMmM0ODIzMDdmZThlODc4MGNkNDQ2YTAy YTEwMjNmNGI1ZTFmOTYxMWY4OTA5Y2I1ODk3Zjk3MDgxYzdkNQorIDdmZWY0OGRkMjdhZDAxYWU4 NDljNmUxMDA5MTlmMzA2MTYwNTE1MjExMDAzNmZjZmZjN2U4NDYzY2JjMzVjMzIKKyAyODBkODUw YzI5M2MwZjM4N2UyOTk1NTUzOTE2NzhlMGI4YzlkMGJlNmJiN2ZiMjgyYTAyOTUxMjllMTI4ZWIz CisgZDExNzk1YzUzN2YzNjUwZGYxMDUxYjIxMDUwYzQ5MGQ5OWU4Yjk2ZTUzYjI3Y2IxZWNlOTg5 YjRhNjNiNjkzOQorIDcxODIzYzkyYzNmMWRiZDY3NzlhMzJjODc4OTQyYzIzNDBhYTM5MzMxZWU5 OGM1NGZiY2JhOTIxMjQxZGEyYzgKKyAwZTY1NWJmYzk4ODU5MDFiNjhlOWMwZGE3MmIyMGIwZDZh MzZlODIyOWIxZTRmNjViMjM5M2RlMmVhZjhlNTY4CisgZjg5OTdkMDc1MDk2YWNiYjU1OTU3NzI3 Y2E1OTk4ZTZkYTg5YTQwNzkzN2U2MzkwMGFiOGY0ZjliNTQxMjk0MgorIDFhNTg5MjllNjkzOGJi OWJiNjU1ZGFkYjRkODczODI3YTMwNzVlN2ZjZGVhNDkyMTkwZWI2ZjM3ZTEwZmE0NDUKKyA0YWFl ZmNjMzU4NzMxNWY3ODk3YWEyY2VkZDc5YjQ2MDU3OTI4MjA5ZTg1M2I5MDUwYTc3ZDJjNTAzNmUx N2QxCisgNTM4OTU2N2NiNDNjNjJhNTVkMWE4OTNlMGRmYmQ1MGY5NWE5YzJjNWIxN2I0OWQyMjFl MmQzYTdmMTFkNjBiMworIDY5N2FjZjE0NzQ5NjMyMDBmMGY4MzMyZDc5N2Y5N2YzNjBiYTFhMTY1 NzcwNDBhOWZmYzA0MDZhMGM2OTRmNjIKKyAzNGIxMmJkNDgxNzVkMDFhMTk0YjVhNTY1NjgwODk1 ODJkYjI5YzIyOGI2ZGYwMjA5ZmI5NzdmNDEyYTdjYjQxCisgOWM0ZWQzZGQ0Y2JhMzg5MzY4YWJl ZDM5NGZiYzBhNzNiOGY1YTE4ODEyODBlYjJmMzEyZDkzNDczYzUwNTA2NgorIDFhMzMxYTAzMmM0 ZDE0MDdkYTFiZTFmZTI1NjU2MjViMGY2ZWY0MTUwY2UyZTJmYTk1OWM0ZjA2ZWY5NTY4MGMKKyA5 MDQ2NGZmZjgyOWQxODk3NmI4ZmY0ODg1NzdjZDQxYjYzNTIxM2RjMTE0MzU2MjkwMGIyZjg0Y2Ri MDlmZDc1CisgNjU5MmM3NWI1MWRhNmIwODZjNTc1Yzg3MGU3MGM2YTJhMmQxZWY2YjdjODdhNWFi ODgwMzNiNjY3ZGMwYWIwOAorIGU5ZTYzYjY0YjY3ZDc2ZjNkOWMzMTMxYmJlYzRjNDkxZDFhYjY2 MGY4MTQwMzllMzU4MmMxNjlkYTUwOWM4ZjAKKyBlZTA1ZTFlYWRkNWUzNGQyNTk1ZWM1OTA4OWMx YTQ1YTJmMmRjYmRjYzRmZGU0NTYxOTVlMjc3YzYxYzEyNjU5CisgOTQ3NDAzOTk5MDlmN2UwNDNj YjJkNTVlMmUzNWRlZDMxMDA3YTlkODAwMTgwZDI5MjE4ZjVkNzk1ODYwMjViOQorIDkzOWRmZjM3 YzVjODBmOGE2OWQzNjZhMGIxY2NlNGFjZGI1MWUyYzFmYTFjYWM0M2Q4OWVkM2NjODQ2YWFjMzMK KyBiZTk2ODI2MmMzMjk1NzQ5MjU0OWY3YjEzNDcyMWNjZWMwY2IwNWQwMzA3NjQ2YzZlOWE5NTE3 NmI3YmJjMzdmCisgYmQzMzU0ZjhiYjQxOTMwY2E0ZjI3OTQ2MzYyYmNlNGZhYmRmNDFhZmZiNDQz YWFiYjlkNTJlMDQ1ZDEzYWYwYQorIDBlNWY4MTJiMmI1N2NiZjAxYTY2OWRhZWFlM2NkZTU2MTQy NDJlMmFkOTQ3MDM5YmE0ZGJjNTE4NjQ3NmZiOTEKKyAwNmQ1ODRmNTYwN2ZkOWVmZDEzOTFkNTZl YWRkNGZmNjRkYWVkYmU5M2UyMDgwYmEwMjI3NWNiNDdmOWIyNTlmCisgYTlmMDI4ODIwMDkwMDk1 YzVkZjcwMjVmNDc5MzdlZmI0ZDk1MzRjM2VjZTZmYTY4YzM5MjExYjgwMTM2ZmIxMAorIDljNjM3 ODIwYzBhNzNiNjU0YmFmZTllYTk1MjVhM2Q5ZjE0ZDRmYWRlMWYyMzUwNzg2ODcxYWEzMzlhNDU5 OWQKKyBlZTg2MDg1NDlhMzU3Yzk0N2I5ZjFjZWQ0ODM2MTUyMTkwYjA5ZTkxNmM5ZWE1YWU3Y2E1 MGI2MDQ2YmIyZTc5CisgNzkwZGYyOGI2Zjk1ZjI1YzBkZDkyNzdhYWM2NmQ1MjJjZjI0ZTFhOTk0 ODcxNWYzM2VjZDlhMzY1ZTFjNTcyZQorIDk2YzhhYmE0Y2JhYmFhOGJhZDhjNGU0OGY4OTVkZThi NmNkNzVkZDE2Y2NlZjUyY2U2NTk4NzVhZWNlODczYzYKKyA2ZWExOTJhYWZiYjYxZTUyNGU1NmEw NDUyNjg5OGFjOGZkYmFiMmQ0MTJlODYxMWI1MmFlNTg3NWZjYWMzZmEwCisgNmQyNjE2MWYxODhl ODYwYzUxOWZhNjI4YjY2MjExYzM5MGE0ZGQxYTY5ZWFkZjYxNDE0NzM4ZGNmYjBmMzU1ZAorIGE3 MmZkZmRjZGE1MmViNmFlNjVkNmNjODgyNjRmYjBlYWQyNjE2ZjkzZWJmNGNmZjkwZGRjNzFjODZj ZTQxZmEKKyAyYjM2MjU4YWYwMTQ4OGE0ZWRlOWRiNDcxYTcwMTViYzAzZWU5OTU4YmU4ZmYxZTM1 MGMwYTA1MjRlYzQ0NzVhCisgMjk1OGRhNDAzMWJjZDMwYjZiN2I0NTZlMmIxOTFlMzA5MzE2NTc0 ZDE3ODUzODgzZGNmNjlkZDNlODE3NTA4ZAorIGRhZTIzMjA2ZjA5ZDc5MDczODcwY2E0ZDRmYmE3 ZDQwNTNmMGFjNGI5NTEwNWFhZThhYzZhNDA5ODc1ODhkOWMKKyBjZWQ2MjIzNGY1ODdkYTQ5MTY2 ODYzMjU0NjQ4OTE2M2ViMDE1YTY1OWUzM2U0MDQ0ZWU2NGM5YWFmOTQ5OTBhCisgNTIxYmQ1ZjE5 ZDU1NTFjNWU3NGZkOTcxMTkzMDg2Y2Q2NjA5MWQxMWIyNTBkYmM3ZmQxMGM2MDkyYTA3ZGY3Mgor IGI4ZWJlYmVlYWJkM2JiODYwNTc1MzI0ZTYyZDcyMTAyMmI2NWUyZTIyNmIyNjk3NjBhMGM5M2Fi ODFkNjE5YzUKKyA0OGE1NjE2NDM2ZTA1ZjhiZTliNzkzZDYwYzA0ZGExOTZlODRjYzg4OThhMTlk YTZiOTFlOTMwZDQ5NmE1MThhCisgYjU4NDg3ZWNjMDdlYWNlYTI2OWY1MmQ5YTkzMmRjYThmZjFh NGYwNzAwNDJhOTFhZWUwYTU2M2U4ZjdhY2E1OQorIGJhYTUzMjMyZmUzMzc0ODU3ZjJkZjNkNTY2 MDlhYWZlNjNmZjNiMWE2Y2Y4YzI5ZTA0MTU3YTVjYTU0ZTJhNzAKKyA1ZDE3YjVmMzQ0OTMxMmNm ZmI3NjhmNzA4MTQxNWQyMDk3ODdlMjljYjUxNDI5NmQyNDJiYmExNDM3ZmM1N2IwCisgYzExYWVi Y2FhOTM3ZTE4YTNjNjVjY2Y3MzU2NjYzNDkzYmVhMTNiYjg3OTk1OTY4Y2RhYjBlZDIxNzg0YjA0 OQorIDhkYjk0MDk3MTkyNGIyZTNhOGRhZGNkZTMzYjUxZDg5ZTYxMTYzYzlhYmEwOTNmMjI4YzMx MzUyODViZTkwM2EKKyBjOTJhNjg2ZjRlY2NjZjkyZjAzNmFhOTIzZDVjNWM2MzAxMmYzZWJjN2Q1 ZDM5ZTBkODVjNzAxMjIwMjY1N2RjCisgYjRhNDAyY2JhODJiYjU5ZDExZTAzZWI1MzcyNjhhNDNj NGIyNGRhZGZkYjVlYTc2ZDA3N2ZlY2EzNmRlNDY3YworIDcyMWQ2ODBjNzFjYTVlZGJiYzRjZTg5 NDJkYmQzYTNhZGU4OTZhMzMwM2E5NTg3NzU1MDI2ZTc4YjZjNmU1YzkKKyAzMTk1NWIzNjZkYjdm MzA1ODE3OGZlM2VkMGQ1MjNlNDIwYTM4Y2JkMzU2MzU4YWFhN2RhYjI5NGU3OWU1MjUwCisgMGNh NGIwZTk2NmU2OGY3OTM1OTM1Y2Y4YTI2MDE5YTFiZGM5YzBkMWUwNDc3ZjcyYTg2NjdiOWFjZTAx ZTc2OQorIDU0NzhmYWRkZjExN2YwM2MwNjM1Y2M0NGFkNzI2YWYyZjRjM2Q1NGEyMTlhMmI4YjQw MmU0MWZjMDUzMjIwZDUKKyBmMWE0ZTMxNTI2ZDMyOTI0Y2NmOWNkNzJjMzZmYWJiYThiNmM2MGE3 NDI1NmY3ODZjOWM3YjgyZDVkYWJmMzliCisgNmVlODFiZWRhMTlhMTRlNDg1Njk2Y2RhNWUwMDk1 MjNjYmVhZmQxMGM0M2U3OWZkNWJhMjA3ZjViNjQzZTI4YgorIGNhMDI2N2FjMDVjMmQ1MTE1ZTg3 ZmUzMTQyNTAyMmY4MGJjOWMxYTg2MmJlY2IzZDgzYjhiOTIxODdmYzMzMDQKKyBiOWU1MmZlMmI2 YmE5MTkxMDY0ODllMjY5ZTMwNjNlYWZhMGViZDI1ZWUzMWFlOWY2Yjg4NWJjZWM4MTFhMjJlCisg ZDVlOGI3MzAxZTExNDhmNjc1YTAyNTFhNzcyYzgxMzYzY2RhZDRhNDMyN2M4YmU2NTE0ZjI3Yzgw ODQyZjVlYQorIDc3ZGY3MzZlMTRiYzU5NGQ1Njc5NjIyYmVkOGQ1ODY2M2ZlOGRmNDQxNTk2YTYx MGIxM2VmOTk3YThhMDkxNTAKKyBjN2Y3MzUwNGY5ZmNhZjMxMmQ4MDdhYTA3OGU0MjllMzY5NDc3 YzQ5MzgwZjAxYTgyZDY2MjJlNTcwNDgxMDIyCisgNzhlZjk4ZWMwOGZjYTNiYzk2ZjhjNmM4NmJk M2E0ZmRhNTMyYTRhMmUzMDYxOGZmOTE1NmJjZTNmMzFlNDZmNgorIDUzNjlkOTBiZmIwMTg5YmVl NTA2OWU2Njc0Y2Q3NGM5NmQyZmY4NGZhY2EyMTVhYmMyYWY2NzIwN2U4ZGMwYzgKKyA4NWRkNGRh MzRiMDliMzgxZWE0OTAyZGEwMzkxZTgzNzliZDJhNThjYzZlYmE3NGQ2NjRhMmQ5MTEzOTVhOTkw CisgNGJiYTNhYzlkYjMyMjVlY2NjNTYwODY4MTg5NWViNDM4ZTIzZjA4ZGQ0MzNkMzNmM2M3NWIx NDZiOWIzOWUzMAorIDc0YzNlNmVhNWJjMjk5MmRiZjJkZmEyZWU0YTQ5NDJkYTcxNGQ2ZDQyNDA3 MzU0MmEwZjY2MDVlY2VjNzVhOGUKKyA3ODYyYTkzYmY5ZDkzYzBhOWI5MTI5N2EyZDg2ZTY3Y2U0 ODhiMTMxY2I0OTQ2MGMyNjFkOGU3MjBmYzUyNjliCisgYWMxMDRjN2MwZGYzM2I2NWFhNTA4M2Ey NzI3NjQzZTE0ZWY5OTk1YjRhMjZlNTM5MmJmNWU3N2ViZjA4NGIxNQorIDRkMWI2Y2MyYjk3MjVm ZTEzZGE2YzUzYjg4NjhjOTJiMDU0MDRjOTVjN2UxMjVjOThhZmZmY2RhYWQzMjEwYWEKKyAwNDdl NjU1ZGI0OTlkY2IwOWU1OTFiMDNmYTM3YWI1YWI2MjM1NjAzN2FiNDEzMTQ4YzMyMThiOTBjODMz MzBjCisgZDgwNjNlMjU5NGZjODk1YWQ4ZmRhMTk5N2I1YTBmNTNkYzFhYWQ3MzNjYjIwMGJlNDZi YjI0NTA0M2U2OWIyYgorIDgyM2I1YzA3NmNlYmVlMDZjNGE1NWI1NWE4OGE2MmJhZWZlZGIwNTBh Nzg2NjMxZWQxNDNjYzE0MmRmYzYzZGMKKyBmMGI0N2U0YTIxZWIzODE0MDc1NzZlYjQyN2RlNjA0 MzE5M2ZjNjMyMmMwYWI3ZjExMzQ3ZmI3YzEwNWM4OWFkCisgM2RlYzk5MjlhOTA5ODIzYzczYzUx NWM5MDhhYjFiMjI4NjlmNTZiNjMzZmJlODhjYzM4YjM2ZGMxNzk4NDk3NQorIGM3NzYzYWZlZGZk MDhkODk1YWM3ZGU4ODM3YzgyOGUwN2NhYzU5ODRkZjU2MWYyYTM0YWFlYmNiOWI3NjMyMzQKKyA2 NWZhMGJiODkyMDcwYTI0NDk1OWYwMWNiM2ZkN2QwZmI0ZTM1ZGVmZWVkMzQxYmY3MTFlZmVmYjgw MWUwOTI4CisgYzcxOGM3NDJhYTYzZjc1NjBjODliZDhmZTk2YjE1MTRjYzIxNTA0ZDAwNjE3NjFi Y2I3MTc1ODJjM2E5MWQ2YgorIDY4N2YxMmNlZmQ4Y2U3NTM3MWEyYTg2NWMxYmFkYmFlODFjMTMx ZGQxMzY1Y2RhMjYzYjExNDBlMmIwMWQzZDEiCg== --===============2969442585930642176==--