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=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 25216 invoked from network); 10 Jul 2020 16:54:05 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 10 Jul 2020 16:54:05 -0000 Content-Type: multipart/mixed; boundary="===============3096205040461383296==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_chromium=3A_update_to_83=2E0=2E4103=2E116=2E?= To: ml@inbox.vuxu.org From: pbui Reply-to: ml@inbox.vuxu.org Message-ID: Date: Fri, 10 Jul 2020 18:54:01 +0200 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============3096205040461383296== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IHBidWkgYWdhaW5zdCBtYXN0ZXIgb24gdGhl IHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL3BidWkvdm9pZC1w YWNrYWdlcyBjaHJvbWl1bQpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2th Z2VzL3B1bGwvMjM1MTEKCmNocm9taXVtOiB1cGRhdGUgdG8gODMuMC40MTAzLjExNi4KLSBCdWls dCBmb3IgeDg2XzY0IGFuZCB4ODZfNjQtbXVzbC4NCi0gVGVzdGVkIG9uIHg4Nl82NC4NCg0KLSBB ZGQgc25kaW8gYnVpbGQgb3B0aW9uIGZyb20gIzIyODg4IA0KDQotIFR1cm4gb24gdmFhcGkgYnVp bGQgb3B0aW9uIGJ5IGRlZmF1bHQuICBXaXRoIHRoaXMgYnVpbGQgb3B0aW9uLCB0aGUNCiAgY2hy b21pdW0gcGFja2FnZSBub3cgc3VwcG9ydHMgVkEtQVBJIGZvciBJbnRlbCBhbmQgQU1EIEdQVXMu DQoNCiAgSG93ZXZlciwgdXNlcnMgbXVzdCBvcHQtaW4gdG8gZW5hYmxpbmcgdGhpcyBmZWF0dXJl IGF0IHJ1bi10aW1lIGJ5DQogIGVuYWJsaW5nICJPdmVycmlkZSBzb2Z0d2FyZSByZW5kZXJpbmcg bGlzdCIgaW4gY2hyb21lOi8vZmxhZ3Mgb3IgYnkNCiAgcGFzc2luZyB0aGUgLS1pZ25vcmUtZ3B1 LWJsYWNrbGlzdCB0byBjaHJvbWl1bS4gIE90aGVyd2lzZSB0aGlzDQogIGZlYXR1cmUgaXMgZGlz YWJsZWQgYW5kIG5vdCB1c2VkLg0KDQogIFRoaXMgaGFzIGJlZW4gdGVzdGVkIHdpdGggWW91VHVi ZSBvbiBtdWx0aXBsZSBtYWNoaW5lcyB3aXRoIEludGVsIEdQVXMuDQoNCi0gQWxzbyB1cGRhdGUg Y2hyb21pdW0td2lkZXZpbmUuCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMjM1MTEucGF0Y2ggaXMgYXR0YWNoZWQ= --===============3096205040461383296== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-chromium-23511.patch" RnJvbSA0ZDc5MzlmNGNlMDFjN2ZkNjA0MWQzOWNkOWU1OGZhOWNhNzM4YTBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYWkgQ2hpIE1pbmggUmFscGggRWFzdHdvb2QgPHRjbXJlYXN0 d29vZEBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMTMgSnVuIDIwMjAgMTg6NDg6MjkgKzAyMDAKU3Vi amVjdDogW1BBVENIIDEvM10gY2hyb21pdW06IGFkZCBzbmRpbyBwYXRjaAoKW2NpIHNraXBdCi0t LQogc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3NuZGlvLnBhdGNoIHwgODg3ICsrKysrKysrKysr KysrKysrKysrKysrKysrKwogc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZSAgICAgICAgICAgIHwg IDIxICstCiAyIGZpbGVzIGNoYW5nZWQsIDkwMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygt KQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9zbmRpby5wYXRj aAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9zbmRpby5wYXRjaCBiL3Ny Y3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9zbmRpby5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uNGZlYTkyNmMyMzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2Nocm9taXVtL3BhdGNoZXMvc25kaW8ucGF0Y2gKQEAgLTAsMCArMSw4ODcgQEAKK2RpZmYgLU5h dXIgY2hyb21pdW0tODMuMC40MTAzLjk3Lm9yaWcvbWVkaWEvQlVJTEQuZ24gY2hyb21pdW0tODMu MC40MTAzLjk3L21lZGlhL0JVSUxELmduCistLS0gbWVkaWEvQlVJTEQuZ24ub3JpZwkyMDIwLTA2 LTAzIDIwOjQwOjI2LjAwMDAwMDAwMCArMDIwMAorKysrIG1lZGlhL0JVSUxELmduCTIwMjAtMDYt MTMgMTc6MzI6MjguNTEwMzk1OTc1ICswMjAwCitAQCAtNjUsNiArNjUsOSBAQAorICAgICAgIGRl ZmluZXMgKz0gWyAiRExPUEVOX1BVTFNFQVVESU8iIF0KKyAgICAgfQorICAgfQorKyAgaWYgKHVz ZV9zbmRpbykgeworKyAgICBkZWZpbmVzICs9IFsgIlVTRV9TTkRJTyIgXQorKyAgfQorICAgaWYg KHVzZV9jcmFzKSB7CisgICAgIGRlZmluZXMgKz0gWyAiVVNFX0NSQVMiIF0KKyAgIH0KK2RpZmYg LU5hdXIgY2hyb21pdW0tODMuMC40MTAzLjk3Lm9yaWcvbWVkaWEvYXVkaW8vQlVJTEQuZ24gY2hy b21pdW0tODMuMC40MTAzLjk3L21lZGlhL2F1ZGlvL0JVSUxELmduCistLS0gbWVkaWEvYXVkaW8v QlVJTEQuZ24ub3JpZwkyMDIwLTA2LTAzIDIwOjM5OjM3LjAwMDAwMDAwMCArMDIwMAorKysrIG1l ZGlhL2F1ZGlvL0JVSUxELmduCTIwMjAtMDYtMTMgMTc6MzI6MjguNTExMzk1OTY5ICswMjAwCitA QCAtMjM2LDYgKzIzNiwxNyBAQAorICAgICBzb3VyY2VzICs9IFsgImxpbnV4L2F1ZGlvX21hbmFn ZXJfbGludXguY2MiIF0KKyAgIH0KKyAKKysgIGlmICh1c2Vfc25kaW8pIHsKKysgICAgbGlicyAr PSBbICJzbmRpbyIgXQorKyAgICBzb3VyY2VzICs9IFsKKysgICAgICAic25kaW8vYXVkaW9fbWFu YWdlcl9zbmRpby5jYyIsCisrICAgICAgInNuZGlvL3NuZGlvX2lucHV0LmNjIiwKKysgICAgICAi c25kaW8vc25kaW9faW5wdXQuaCIsCisrICAgICAgInNuZGlvL3NuZGlvX291dHB1dC5jYyIsCisr ICAgICAgInNuZGlvL3NuZGlvX291dHB1dC5oIgorKyAgICBdCisrICB9CisrCisgICBpZiAodXNl X2Fsc2EpIHsKKyAgICAgbGlicyArPSBbICJhc291bmQiIF0KKyAgICAgc291cmNlcyArPSBbCitk aWZmIC1OYXVyIGNocm9taXVtLTgzLjAuNDEwMy45Ny5vcmlnL21lZGlhL2F1ZGlvL2xpbnV4L2F1 ZGlvX21hbmFnZXJfbGludXguY2MgY2hyb21pdW0tODMuMC40MTAzLjk3L21lZGlhL2F1ZGlvL2xp bnV4L2F1ZGlvX21hbmFnZXJfbGludXguY2MKKy0tLSBtZWRpYS9hdWRpby9saW51eC9hdWRpb19t YW5hZ2VyX2xpbnV4LmNjLm9yaWcJMjAyMC0wNi0wMyAyMDozOTozNy4wMDAwMDAwMDAgKzAyMDAK KysrKyBtZWRpYS9hdWRpby9saW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjCTIwMjAtMDYtMTMg MTg6MDk6NDMuNjIzMzMzMTY3ICswMjAwCitAQCAtMTksNiArMTksMTEgQEAKKyAjaW5jbHVkZSAi bWVkaWEvYXVkaW8vcHVsc2UvYXVkaW9fbWFuYWdlcl9wdWxzZS5oIgorICNpbmNsdWRlICJtZWRp YS9hdWRpby9wdWxzZS9wdWxzZV91dGlsLmgiCisgI2VuZGlmCisrI2lmIGRlZmluZWQoVVNFX1NO RElPKQorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgi CisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmgiCisrI2luY2x1ZGUg Im1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oIgorKyNlbmRpZgorIAorIG5hbWVzcGFj ZSBtZWRpYSB7CisgCitAQCAtMjYsNyArMzEsOCBAQAorICAga1B1bHNlLAorICAga0Fsc2EsCisg ICBrQ3JhcywKKy0gIGtBdWRpb0lPTWF4ID0ga0NyYXMgIC8vIE11c3QgYWx3YXlzIGJlIGVxdWFs IHRvIGxhcmdlc3QgbG9nZ2VkIGVudHJ5LgorKyAga1NuZGlvLAorKyAga0F1ZGlvSU9NYXggPSBr U25kaW8gLy8gTXVzdCBhbHdheXMgYmUgZXF1YWwgdG8gbGFyZ2VzdCBsb2dnZWQgZW50cnkuCisg fTsKKyAKKyBzdGQ6OnVuaXF1ZV9wdHI8bWVkaWE6OkF1ZGlvTWFuYWdlcj4gQ3JlYXRlQXVkaW9N YW5hZ2VyKAorQEAgLTM5LDYgKzQ1LDE2IEBACisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGF1ZGlvX2xvZ19mYWN0b3J5KTsKKyAgIH0KKyAKKysjaWYgZGVm aW5lZChVU0VfU05ESU8pCisrICBzdHJ1Y3Qgc2lvX2hkbCAqaGRsID0gc2lvX29wZW4oU0lPX0RF VkFOWSwgU0lPX1BMQVksIDApOworKyAgaWYgKGhkbCAhPSBOVUxMKSB7CisrICAgIHNpb19jbG9z ZShoZGwpOworKyAgICBVTUFfSElTVE9HUkFNX0VOVU1FUkFUSU9OKCJNZWRpYS5MaW51eEF1ZGlv SU8iLCBrU25kaW8sIGtBdWRpb0lPTWF4ICsgMSk7CisrICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p cXVlPEF1ZGlvTWFuYWdlclNuZGlvPihzdGQ6Om1vdmUoYXVkaW9fdGhyZWFkKSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX2xvZ19mYWN0 b3J5KTsKKysgIH0KKysjZW5kaWYKKysKKyAjaWYgZGVmaW5lZChVU0VfQ1JBUykKKyAgIGlmIChi YXNlOjpDb21tYW5kTGluZTo6Rm9yQ3VycmVudFByb2Nlc3MoKS0+SGFzU3dpdGNoKHN3aXRjaGVz OjprVXNlQ3JhcykpIHsKKyAgICAgVU1BX0hJU1RPR1JBTV9FTlVNRVJBVElPTigiTWVkaWEuTGlu dXhBdWRpb0lPIiwga0NyYXMsIGtBdWRpb0lPTWF4ICsgMSk7CitkaWZmIC1OYXVyIGNocm9taXVt LTgzLjAuNDEwMy45Ny5vcmlnL21lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8u Y2MgY2hyb21pdW0tODMuMC40MTAzLjk3L21lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJf c25kaW8uY2MKKy0tLSBtZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmNjLm9y aWcJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBtZWRpYS9hdWRpby9z bmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmNjCTIwMjAtMDYtMTMgMTc6MzI6MjguNTExMzk1OTY5 ICswMjAwCitAQCAtMCwwICsxLDE0OCBAQAorKy8vIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hy b21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3Vy Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisr Ly8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8v c25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5oIgorKworKyNpbmNsdWRlICJiYXNlL21ldHJpY3Mv aGlzdG9ncmFtX21hY3Jvcy5oIgorKyNpbmNsdWRlICJiYXNlL21lbW9yeS9wdHJfdXRpbC5oIgor KyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19kZXZpY2VfZGVzY3JpcHRpb24uaCIKKysjaW5j bHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fb3V0cHV0X2Rpc3BhdGNoZXIuaCIKKysjaW5jbHVkZSAi bWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8v c25kaW8vc25kaW9fb3V0cHV0LmgiCisrI2luY2x1ZGUgIm1lZGlhL2Jhc2UvbGltaXRzLmgiCisr I2luY2x1ZGUgIm1lZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuaCIKKysKKytuYW1lc3BhY2UgbWVk aWEgeworKworKworKy8vIE1heGltdW0gbnVtYmVyIG9mIG91dHB1dCBzdHJlYW1zIHRoYXQgY2Fu IGJlIG9wZW4gc2ltdWx0YW5lb3VzbHkuCisrc3RhdGljIGNvbnN0IGludCBrTWF4T3V0cHV0U3Ry ZWFtcyA9IDQ7CisrCisrLy8gRGVmYXVsdCBzYW1wbGUgcmF0ZSBmb3IgaW5wdXQgYW5kIG91dHB1 dCBzdHJlYW1zLgorK3N0YXRpYyBjb25zdCBpbnQga0RlZmF1bHRTYW1wbGVSYXRlID0gNDgwMDA7 CisrCisrdm9pZCBBZGREZWZhdWx0RGV2aWNlKEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1l cykgeworKyAgRENIRUNLKGRldmljZV9uYW1lcy0+ZW1wdHkoKSk7CisrICBkZXZpY2VfbmFtZXMt PnB1c2hfZnJvbnQoQXVkaW9EZXZpY2VOYW1lOjpDcmVhdGVEZWZhdWx0KCkpOworK30KKysKKyti b29sIEF1ZGlvTWFuYWdlclNuZGlvOjpIYXNBdWRpb091dHB1dERldmljZXMoKSB7CisrICByZXR1 cm4gdHJ1ZTsKKyt9CisrCisrYm9vbCBBdWRpb01hbmFnZXJTbmRpbzo6SGFzQXVkaW9JbnB1dERl dmljZXMoKSB7CisrICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrdm9pZCBBdWRpb01hbmFnZXJTbmRp bzo6R2V0QXVkaW9JbnB1dERldmljZU5hbWVzKAorKyAgICBBdWRpb0RldmljZU5hbWVzKiBkZXZp Y2VfbmFtZXMpIHsKKysgIERDSEVDSyhkZXZpY2VfbmFtZXMtPmVtcHR5KCkpOworKyAgQWRkRGVm YXVsdERldmljZShkZXZpY2VfbmFtZXMpOworK30KKysKKyt2b2lkIEF1ZGlvTWFuYWdlclNuZGlv OjpHZXRBdWRpb091dHB1dERldmljZU5hbWVzKAorKyAgICBBdWRpb0RldmljZU5hbWVzKiBkZXZp Y2VfbmFtZXMpIHsKKysgIEFkZERlZmF1bHREZXZpY2UoZGV2aWNlX25hbWVzKTsKKyt9CisrCisr Y29uc3QgY2hhciogQXVkaW9NYW5hZ2VyU25kaW86OkdldE5hbWUoKSB7CisrICByZXR1cm4gIlNO RElPIjsKKyt9CisrCisrQXVkaW9QYXJhbWV0ZXJzIEF1ZGlvTWFuYWdlclNuZGlvOjpHZXRJbnB1 dFN0cmVhbVBhcmFtZXRlcnMoCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQpIHsK KysgIHN0YXRpYyBjb25zdCBpbnQga0RlZmF1bHRJbnB1dEJ1ZmZlclNpemUgPSAxMDI0OworKwor KyAgaW50IHVzZXJfYnVmZmVyX3NpemUgPSBHZXRVc2VyQnVmZmVyU2l6ZSgpOworKyAgaW50IGJ1 ZmZlcl9zaXplID0gdXNlcl9idWZmZXJfc2l6ZSA/CisrICAgICAgdXNlcl9idWZmZXJfc2l6ZSA6 IGtEZWZhdWx0SW5wdXRCdWZmZXJTaXplOworKworKyAgcmV0dXJuIEF1ZGlvUGFyYW1ldGVycygK KysgICAgICBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSwgQ0hBTk5FTF9M QVlPVVRfU1RFUkVPLAorKyAgICAgIGtEZWZhdWx0U2FtcGxlUmF0ZSwgYnVmZmVyX3NpemUpOwor K30KKysKKytBdWRpb01hbmFnZXJTbmRpbzo6QXVkaW9NYW5hZ2VyU25kaW8oc3RkOjp1bmlxdWVf cHRyPEF1ZGlvVGhyZWFkPiBhdWRpb190aHJlYWQsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBdWRpb0xvZ0ZhY3RvcnkqIGF1ZGlvX2xvZ19mYWN0b3J5KQorKyAg ICA6IEF1ZGlvTWFuYWdlckJhc2Uoc3RkOjptb3ZlKGF1ZGlvX3RocmVhZCksCisrICAgICAgICAg ICAgICAgICAgICAgICBhdWRpb19sb2dfZmFjdG9yeSkgeworKyAgRExPRyhXQVJOSU5HKSA8PCAi QXVkaW9NYW5hZ2VyU25kaW8iOworKyAgU2V0TWF4T3V0cHV0U3RyZWFtc0FsbG93ZWQoa01heE91 dHB1dFN0cmVhbXMpOworK30KKysKKytBdWRpb01hbmFnZXJTbmRpbzo6fkF1ZGlvTWFuYWdlclNu ZGlvKCkgeworKyAgU2h1dGRvd24oKTsKKyt9CisrCisrQXVkaW9PdXRwdXRTdHJlYW0qIEF1ZGlv TWFuYWdlclNuZGlvOjpNYWtlTGluZWFyT3V0cHV0U3RyZWFtKAorKyAgICBjb25zdCBBdWRpb1Bh cmFtZXRlcnMmIHBhcmFtcywKKysgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykg eworKyAgRENIRUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiwgcGFyYW1z LmZvcm1hdCgpKTsKKysgIHJldHVybiBNYWtlT3V0cHV0U3RyZWFtKHBhcmFtcyk7CisrfQorKwor K0F1ZGlvT3V0cHV0U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6TWFrZUxvd0xhdGVuY3lPdXRw dXRTdHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICBjb25z dCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorKyAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2Nh bGxiYWNrKSB7CisrICBETE9HX0lGKEVSUk9SLCAhZGV2aWNlX2lkLmVtcHR5KCkpIDw8ICJOb3Qg aW1wbGVtZW50ZWQhIjsKKysgIERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9M T1dfTEFURU5DWSwgcGFyYW1zLmZvcm1hdCgpKTsKKysgIHJldHVybiBNYWtlT3V0cHV0U3RyZWFt KHBhcmFtcyk7CisrfQorKworK0F1ZGlvSW5wdXRTdHJlYW0qIEF1ZGlvTWFuYWdlclNuZGlvOjpN YWtlTGluZWFySW5wdXRTdHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1z LAorKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorKyAgICBjb25zdCBMb2dDYWxs YmFjayYgbG9nX2NhbGxiYWNrKSB7CisrICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpBVURJ T19QQ01fTElORUFSLCBwYXJhbXMuZm9ybWF0KCkpOworKyAgcmV0dXJuIE1ha2VJbnB1dFN0cmVh bShwYXJhbXMpOworK30KKysKKytBdWRpb0lucHV0U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6 TWFrZUxvd0xhdGVuY3lJbnB1dFN0cmVhbSgKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBw YXJhbXMsCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisrICAgIGNvbnN0IExv Z0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIHsKKysgIERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6 OkFVRElPX1BDTV9MT1dfTEFURU5DWSwgcGFyYW1zLmZvcm1hdCgpKTsKKysgIHJldHVybiBNYWtl SW5wdXRTdHJlYW0ocGFyYW1zKTsKKyt9CisrCisrQXVkaW9QYXJhbWV0ZXJzIEF1ZGlvTWFuYWdl clNuZGlvOjpHZXRQcmVmZXJyZWRPdXRwdXRTdHJlYW1QYXJhbWV0ZXJzKAorKyAgICBjb25zdCBz dGQ6OnN0cmluZyYgb3V0cHV0X2RldmljZV9pZCwKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJz JiBpbnB1dF9wYXJhbXMpIHsKKysgIC8vIFRPRE8odG9tbWkpOiBTdXBwb3J0IHxvdXRwdXRfZGV2 aWNlX2lkfC4KKysgIERMT0dfSUYoRVJST1IsICFvdXRwdXRfZGV2aWNlX2lkLmVtcHR5KCkpIDw8 ICJOb3QgaW1wbGVtZW50ZWQhIjsKKysgIHN0YXRpYyBjb25zdCBpbnQga0RlZmF1bHRPdXRwdXRC dWZmZXJTaXplID0gMjA0ODsKKysKKysgIENoYW5uZWxMYXlvdXQgY2hhbm5lbF9sYXlvdXQgPSBD SEFOTkVMX0xBWU9VVF9TVEVSRU87CisrICBpbnQgc2FtcGxlX3JhdGUgPSBrRGVmYXVsdFNhbXBs ZVJhdGU7CisrICBpbnQgYnVmZmVyX3NpemUgPSBrRGVmYXVsdE91dHB1dEJ1ZmZlclNpemU7Cisr ICBpZiAoaW5wdXRfcGFyYW1zLklzVmFsaWQoKSkgeworKyAgICBzYW1wbGVfcmF0ZSA9IGlucHV0 X3BhcmFtcy5zYW1wbGVfcmF0ZSgpOworKyAgICBjaGFubmVsX2xheW91dCA9IGlucHV0X3BhcmFt cy5jaGFubmVsX2xheW91dCgpOworKyAgICBidWZmZXJfc2l6ZSA9IHN0ZDo6bWluKGJ1ZmZlcl9z aXplLCBpbnB1dF9wYXJhbXMuZnJhbWVzX3Blcl9idWZmZXIoKSk7CisrICB9CisrCisrICBpbnQg dXNlcl9idWZmZXJfc2l6ZSA9IEdldFVzZXJCdWZmZXJTaXplKCk7CisrICBpZiAodXNlcl9idWZm ZXJfc2l6ZSkKKysgICAgYnVmZmVyX3NpemUgPSB1c2VyX2J1ZmZlcl9zaXplOworKworKyAgcmV0 dXJuIEF1ZGlvUGFyYW1ldGVycygKKysgICAgICBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9M T1dfTEFURU5DWSwgY2hhbm5lbF9sYXlvdXQsCisrICAgICAgc2FtcGxlX3JhdGUsIGJ1ZmZlcl9z aXplKTsKKyt9CisrCisrQXVkaW9JbnB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VJ bnB1dFN0cmVhbSgKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpIHsKKysgIERM T0coV0FSTklORykgPDwgIk1ha2VJbnB1dFN0cmVhbSI7CisrICByZXR1cm4gbmV3IFNuZGlvQXVk aW9JbnB1dFN0cmVhbSh0aGlzLAorKyAgICAgICAgICAgICBBdWRpb0RldmljZURlc2NyaXB0aW9u OjprRGVmYXVsdERldmljZUlkLCBwYXJhbXMpOworK30KKysKKytBdWRpb091dHB1dFN0cmVhbSog QXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VPdXRwdXRTdHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFy YW1ldGVycyYgcGFyYW1zKSB7CisrICBETE9HKFdBUk5JTkcpIDw8ICJNYWtlT3V0cHV0U3RyZWFt IjsKKysgIHJldHVybiBuZXcgU25kaW9BdWRpb091dHB1dFN0cmVhbShwYXJhbXMsIHRoaXMpOwor K30KKysKKyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEKK2RpZmYgLU5hdXIgY2hyb21pdW0tODMuMC40 MTAzLjk3Lm9yaWcvbWVkaWEvYXVkaW8vc25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5oIGNocm9t aXVtLTgzLjAuNDEwMy45Ny9tZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgK Ky0tLSBtZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgub3JpZwkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIG1lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlv X21hbmFnZXJfc25kaW8uaAkyMDIwLTA2LTEzIDE3OjMyOjI4LjUxMTM5NTk2OSArMDIwMAorQEAg LTAsMCArMSw2NSBAQAorKy8vIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9y cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn b3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4g dGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaWZuZGVmIE1FRElBX0FVRElPX1NORElPX0FVRElPX01B TkFHRVJfU05ESU9fSF8KKysjZGVmaW5lIE1FRElBX0FVRElPX1NORElPX0FVRElPX01BTkFHRVJf U05ESU9fSF8KKysKKysjaW5jbHVkZSA8c2V0PgorKworKyNpbmNsdWRlICJiYXNlL2NvbXBpbGVy X3NwZWNpZmljLmgiCisrI2luY2x1ZGUgImJhc2UvbWFjcm9zLmgiCisrI2luY2x1ZGUgImJhc2Uv bWVtb3J5L3JlZl9jb3VudGVkLmgiCisrI2luY2x1ZGUgImJhc2UvdGhyZWFkaW5nL3RocmVhZC5o IgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19tYW5hZ2VyX2Jhc2UuaCIKKysKKytuYW1l c3BhY2UgbWVkaWEgeworKworK2NsYXNzIE1FRElBX0VYUE9SVCBBdWRpb01hbmFnZXJTbmRpbyA6 IHB1YmxpYyBBdWRpb01hbmFnZXJCYXNlIHsKKysgcHVibGljOgorKyAgQXVkaW9NYW5hZ2VyU25k aW8oc3RkOjp1bmlxdWVfcHRyPEF1ZGlvVGhyZWFkPiBhdWRpb190aHJlYWQsCisrICAgICAgICAg ICAgICAgICAgIEF1ZGlvTG9nRmFjdG9yeSogYXVkaW9fbG9nX2ZhY3RvcnkpOworKyAgfkF1ZGlv TWFuYWdlclNuZGlvKCkgb3ZlcnJpZGU7CisrCisrICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRp b01hbmFnZXIuCisrICBib29sIEhhc0F1ZGlvT3V0cHV0RGV2aWNlcygpIG92ZXJyaWRlOworKyAg Ym9vbCBIYXNBdWRpb0lucHV0RGV2aWNlcygpIG92ZXJyaWRlOworKyAgdm9pZCBHZXRBdWRpb0lu cHV0RGV2aWNlTmFtZXMoQXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVzKSBvdmVycmlkZTsK KysgIHZvaWQgR2V0QXVkaW9PdXRwdXREZXZpY2VOYW1lcyhBdWRpb0RldmljZU5hbWVzKiBkZXZp Y2VfbmFtZXMpIG92ZXJyaWRlOworKyAgQXVkaW9QYXJhbWV0ZXJzIEdldElucHV0U3RyZWFtUGFy YW1ldGVycygKKysgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkKSBvdmVycmlkZTsK KysgIGNvbnN0IGNoYXIqIEdldE5hbWUoKSBvdmVycmlkZTsKKysKKysgIC8vIEltcGxlbWVudGF0 aW9uIG9mIEF1ZGlvTWFuYWdlckJhc2UuCisrICBBdWRpb091dHB1dFN0cmVhbSogTWFrZUxpbmVh ck91dHB1dFN0cmVhbSgKKysgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysg ICAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSBvdmVycmlkZTsKKysgIEF1ZGlv T3V0cHV0U3RyZWFtKiBNYWtlTG93TGF0ZW5jeU91dHB1dFN0cmVhbSgKKysgICAgICBjb25zdCBB dWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNl X2lkLAorKyAgICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJyaWRlOwor KyAgQXVkaW9JbnB1dFN0cmVhbSogTWFrZUxpbmVhcklucHV0U3RyZWFtKAorKyAgICAgIGNvbnN0 IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZp Y2VfaWQsCisrICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3ZlcnJpZGU7 CisrICBBdWRpb0lucHV0U3RyZWFtKiBNYWtlTG93TGF0ZW5jeUlucHV0U3RyZWFtKAorKyAgICAg IGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5n JiBkZXZpY2VfaWQsCisrICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3Zl cnJpZGU7CisrCisrIHByb3RlY3RlZDoKKysgIEF1ZGlvUGFyYW1ldGVycyBHZXRQcmVmZXJyZWRP dXRwdXRTdHJlYW1QYXJhbWV0ZXJzKAorKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRf ZGV2aWNlX2lkLAorKyAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgaW5wdXRfcGFyYW1zKSBv dmVycmlkZTsKKysKKysgcHJpdmF0ZToKKysgIC8vIENhbGxlZCBieSBNYWtlTGluZWFyT3V0cHV0 U3RyZWFtIGFuZCBNYWtlTG93TGF0ZW5jeU91dHB1dFN0cmVhbS4KKysgIEF1ZGlvT3V0cHV0U3Ry ZWFtKiBNYWtlT3V0cHV0U3RyZWFtKGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKTsKKysg IEF1ZGlvSW5wdXRTdHJlYW0qIE1ha2VJbnB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMm IHBhcmFtcyk7CisrCisrICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oQXVkaW9NYW5hZ2VyU25k aW8pOworK307CisrCisrfSAgLy8gbmFtZXNwYWNlIG1lZGlhCisrCisrI2VuZGlmICAvLyBNRURJ QV9BVURJT19TTkRJT19BVURJT19NQU5BR0VSX1NORElPX0hfCitkaWZmIC1OYXVyIGNocm9taXVt LTgzLjAuNDEwMy45Ny5vcmlnL21lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmNjIGNocm9t aXVtLTgzLjAuNDEwMy45Ny9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19pbnB1dC5jYworLS0tIG1l ZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmNjLm9yaWcJMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKKysrKyBtZWRpYS9hdWRpby9zbmRpby9zbmRpb19pbnB1dC5jYwkyMDIw LTA2LTEzIDE3OjMyOjI4LjUxMTM5NTk2OSArMDIwMAorQEAgLTAsMCArMSwyMDEgQEAKKysvLyBD b3B5cmlnaHQgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K KysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBs aWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysj aW5jbHVkZSAiYmFzZS9iaW5kLmgiCisrI2luY2x1ZGUgImJhc2UvbG9nZ2luZy5oIgorKyNpbmNs dWRlICJiYXNlL21hY3Jvcy5oIgorKyNpbmNsdWRlICJiYXNlL21lc3NhZ2VfbG9vcC9tZXNzYWdl X2xvb3AuaCIKKysjaW5jbHVkZSAibWVkaWEvYmFzZS9hdWRpb190aW1lc3RhbXBfaGVscGVyLmgi CisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uaCIKKysj aW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fbWFuYWdlci5oIgorKyNpbmNsdWRlICJtZWRpYS9h dWRpby9zbmRpby9zbmRpb19pbnB1dC5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7CisrCisrc3Rh dGljIGNvbnN0IFNhbXBsZUZvcm1hdCBrU2FtcGxlRm9ybWF0ID0ga1NhbXBsZUZvcm1hdFMxNjsK KysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6T25Nb3ZlQ2FsbGJhY2sodm9pZCAqYXJn LCBpbnQgZGVsdGEpCisreworKyAgU25kaW9BdWRpb0lucHV0U3RyZWFtKiBzZWxmID0gc3RhdGlj X2Nhc3Q8U25kaW9BdWRpb0lucHV0U3RyZWFtKj4oYXJnKTsKKysKKysgIHNlbGYtPmh3X2RlbGF5 ICs9IGRlbHRhOworK30KKysKKyt2b2lkICpTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlRocmVhZEVu dHJ5KHZvaWQgKmFyZykgeworKyAgU25kaW9BdWRpb0lucHV0U3RyZWFtKiBzZWxmID0gc3RhdGlj X2Nhc3Q8U25kaW9BdWRpb0lucHV0U3RyZWFtKj4oYXJnKTsKKysKKysgIHNlbGYtPlRocmVhZExv b3AoKTsKKysgIHJldHVybiBOVUxMOworK30KKysKKytTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlNu ZGlvQXVkaW9JbnB1dFN0cmVhbShBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBk ZXZpY2VfbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcykKKysgICAgOiBtYW5hZ2VyKG1hbmFnZXIp LAorKyAgICAgIHBhcmFtcyhwYXJhbXMpLAorKyAgICAgIGF1ZGlvX2J1cyhBdWRpb0J1czo6Q3Jl YXRlKHBhcmFtcykpLAorKyAgICAgIHN0YXRlKGtDbG9zZWQpIHsKKyt9CisrCisrU25kaW9BdWRp b0lucHV0U3RyZWFtOjp+U25kaW9BdWRpb0lucHV0U3RyZWFtKCkgeworKyAgaWYgKHN0YXRlICE9 IGtDbG9zZWQpCisrICAgIENsb3NlKCk7CisrfQorKworK2Jvb2wgU25kaW9BdWRpb0lucHV0U3Ry ZWFtOjpPcGVuKCkgeworKyAgc3RydWN0IHNpb19wYXIgcGFyOworKyAgaW50IHNpZzsKKysKKysg IGlmIChzdGF0ZSAhPSBrQ2xvc2VkKQorKyAgICByZXR1cm4gZmFsc2U7CisrCisrICBpZiAocGFy YW1zLmZvcm1hdCgpICE9IEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiAmJgorKyAg ICAgIHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFU RU5DWSkgeworKyAgICBMT0coV0FSTklORykgPDwgIlVuc3VwcG9ydGVkIGF1ZGlvIGZvcm1hdC4i OworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrCisrICBzaW9faW5pdHBhcigmcGFyKTsKKysg IHBhci5yYXRlID0gcGFyYW1zLnNhbXBsZV9yYXRlKCk7CisrICBwYXIucmNoYW4gPSBwYXJhbXMu Y2hhbm5lbHMoKTsKKysgIHBhci5iaXRzID0gU2FtcGxlRm9ybWF0VG9CaXRzUGVyQ2hhbm5lbChr U2FtcGxlRm9ybWF0KTsKKysgIHBhci5icHMgPSBwYXIuYml0cyAvIDg7CisrICBwYXIuc2lnID0g c2lnID0gcGFyLmJpdHMgIT0gOCA/IDEgOiAwOworKyAgcGFyLmxlID0gU0lPX0xFX05BVElWRTsK KysgIHBhci5hcHBidWZzeiA9IHBhcmFtcy5mcmFtZXNfcGVyX2J1ZmZlcigpOworKworKyAgaGRs ID0gc2lvX29wZW4oU0lPX0RFVkFOWSwgU0lPX1JFQywgMCk7CisrCisrICBpZiAoaGRsID09IE5V TEwpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3Qgb3BlbiBhdWRpbyBkZXZpY2UuIjsK KysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKworKyAgaWYgKCFzaW9fc2V0cGFyKGhkbCwgJnBh cikgfHwgIXNpb19nZXRwYXIoaGRsLCAmcGFyKSkgeworKyAgICBMT0coRVJST1IpIDw8ICJDb3Vs ZG4ndCBzZXQgYXVkaW8gcGFyYW1ldGVycy4iOworKyAgICBnb3RvIGJhZF9jbG9zZTsKKysgIH0K KysKKysgIGlmIChwYXIucmF0ZSAgIT0gKHVuc2lnbmVkIGludClwYXJhbXMuc2FtcGxlX3JhdGUo KSB8fAorKyAgICAgIHBhci5yY2hhbiAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5jaGFubmVscygp IHx8CisrICAgICAgcGFyLmJpdHMgICE9ICh1bnNpZ25lZCBpbnQpU2FtcGxlRm9ybWF0VG9CaXRz UGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KSB8fAorKyAgICAgIHBhci5zaWcgICAhPSAodW5zaWdu ZWQgaW50KXNpZyB8fAorKyAgICAgIChwYXIuYnBzID4gMSAmJiBwYXIubGUgIT0gU0lPX0xFX05B VElWRSkgfHwKKysgICAgICAocGFyLmJpdHMgIT0gcGFyLmJwcyAqIDgpKSB7CisrICAgIExPRyhF UlJPUikgPDwgIlVuc3VwcG9ydGVkIGF1ZGlvIHBhcmFtZXRlcnMuIjsKKysgICAgZ290byBiYWRf Y2xvc2U7CisrICB9CisrICBzdGF0ZSA9IGtTdG9wcGVkOworKyAgYnVmZmVyID0gbmV3IGNoYXJb YXVkaW9fYnVzLT5mcmFtZXMoKSAqIHBhcmFtcy5HZXRCeXRlc1BlckZyYW1lKGtTYW1wbGVGb3Jt YXQpXTsKKysgIHNpb19vbm1vdmUoaGRsLCAmT25Nb3ZlQ2FsbGJhY2ssIHRoaXMpOworKyAgcmV0 dXJuIHRydWU7CisrYmFkX2Nsb3NlOgorKyAgc2lvX2Nsb3NlKGhkbCk7CisrICByZXR1cm4gZmFs c2U7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpTdGFydChBdWRpb0lucHV0 Q2FsbGJhY2sqIGNiKSB7CisrCisrICBTdGFydEFnYygpOworKworKyAgc3RhdGUgPSBrUnVubmlu ZzsKKysgIGh3X2RlbGF5ID0gMDsKKysgIGNhbGxiYWNrID0gY2I7CisrICBzaW9fc3RhcnQoaGRs KTsKKysgIGlmIChwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkLCBOVUxMLCAmVGhyZWFkRW50cnksIHRo aXMpICE9IDApIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSByZWFsLXRp bWUgdGhyZWFkIGZvciByZWNvcmRpbmcuIjsKKysgICAgc2lvX3N0b3AoaGRsKTsKKysgICAgc3Rh dGUgPSBrU3RvcHBlZDsKKysgIH0KKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06 OlN0b3AoKSB7CisrCisrICBpZiAoc3RhdGUgPT0ga1N0b3BwZWQpCisrICAgIHJldHVybjsKKysK KysgIHN0YXRlID0ga1N0b3BXYWl0OworKyAgcHRocmVhZF9qb2luKHRocmVhZCwgTlVMTCk7Cisr ICBzaW9fc3RvcChoZGwpOworKyAgc3RhdGUgPSBrU3RvcHBlZDsKKysKKysgIFN0b3BBZ2MoKTsK Kyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OkNsb3NlKCkgeworKworKyAgaWYg KHN0YXRlID09IGtDbG9zZWQpCisrICAgIHJldHVybjsKKysKKysgIGlmIChzdGF0ZSA9PSBrUnVu bmluZykKKysgICAgU3RvcCgpOworKworKyAgc3RhdGUgPSBrQ2xvc2VkOworKyAgZGVsZXRlIFtd IGJ1ZmZlcjsKKysgIHNpb19jbG9zZShoZGwpOworKworKyAgbWFuYWdlci0+UmVsZWFzZUlucHV0 U3RyZWFtKHRoaXMpOworK30KKysKKytkb3VibGUgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpHZXRN YXhWb2x1bWUoKSB7CisrICAvLyBOb3Qgc3VwcG9ydGVkCisrICByZXR1cm4gMC4wOworK30KKysK Kyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U2V0Vm9sdW1lKGRvdWJsZSB2b2x1bWUpIHsK KysgIC8vIE5vdCBzdXBwb3J0ZWQuIERvIG5vdGhpbmcuCisrfQorKworK2RvdWJsZSBTbmRpb0F1 ZGlvSW5wdXRTdHJlYW06OkdldFZvbHVtZSgpIHsKKysgIC8vIE5vdCBzdXBwb3J0ZWQuCisrICBy ZXR1cm4gMC4wOworK30KKysKKytib29sIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6SXNNdXRlZCgp IHsKKysgIC8vIE5vdCBzdXBwb3J0ZWQuCisrICByZXR1cm4gZmFsc2U7CisrfQorKworK3ZvaWQg U25kaW9BdWRpb0lucHV0U3RyZWFtOjpTZXRPdXRwdXREZXZpY2VGb3JBZWMoCisrICAgIGNvbnN0 IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZGV2aWNlX2lkKSB7CisrICAvLyBOb3Qgc3VwcG9ydGVkLgor K30KKysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6VGhyZWFkTG9vcCh2b2lkKSB7Cisr ICBzaXplX3QgdG9kbywgbjsKKysgIGNoYXIgKmRhdGE7CisrICB1bnNpZ25lZCBpbnQgbmZyYW1l czsKKysgIGRvdWJsZSBub3JtYWxpemVkX3ZvbHVtZSA9IDAuMDsKKysKKysgIG5mcmFtZXMgPSBh dWRpb19idXMtPmZyYW1lcygpOworKworKyAgd2hpbGUgKHN0YXRlID09IGtSdW5uaW5nICYmICFz aW9fZW9mKGhkbCkpIHsKKysKKysgICAgR2V0QWdjVm9sdW1lKCZub3JtYWxpemVkX3ZvbHVtZSk7 CisrCisrICAgIC8vIHJlYWQgb25lIGJsb2NrCisrICAgIHRvZG8gPSBuZnJhbWVzICogcGFyYW1z LkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCk7CisrICAgIGRhdGEgPSBidWZmZXI7Cisr ICAgIHdoaWxlICh0b2RvID4gMCkgeworKyAgICAgIG4gPSBzaW9fcmVhZChoZGwsIGRhdGEsIHRv ZG8pOworKyAgICAgIGlmIChuID09IDApCisrICAgICAgICByZXR1cm47CS8vIHVucmVjb3ZlcmFi bGUgSS9PIGVycm9yCisrICAgICAgdG9kbyAtPSBuOworKyAgICAgIGRhdGEgKz0gbjsKKysgICAg fQorKyAgICBod19kZWxheSAtPSBuZnJhbWVzOworKworKyAgICAvLyBjb252ZXJ0IGZyYW1lcyBj b3VudCB0byBUaW1lRGVsdGEKKysgICAgY29uc3QgYmFzZTo6VGltZURlbHRhIGRlbGF5ID0gQXVk aW9UaW1lc3RhbXBIZWxwZXI6OkZyYW1lc1RvVGltZShod19kZWxheSwKKysgICAgICBwYXJhbXMu c2FtcGxlX3JhdGUoKSk7CisrCisrICAgIC8vIHB1c2ggaW50byBidXMKKysgICAgYXVkaW9fYnVz LT5Gcm9tSW50ZXJsZWF2ZWQoYnVmZmVyLCBuZnJhbWVzLCBTYW1wbGVGb3JtYXRUb0J5dGVzUGVy Q2hhbm5lbChrU2FtcGxlRm9ybWF0KSk7CisrCisrICAgIC8vIGludm9rZSBjYWxsYmFjaworKyAg ICBjYWxsYmFjay0+T25EYXRhKGF1ZGlvX2J1cy5nZXQoKSwgYmFzZTo6VGltZVRpY2tzOjpOb3co KSAtIGRlbGF5LCAxLik7CisrICB9CisrfQorKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorZGlm ZiAtTmF1ciBjaHJvbWl1bS04My4wLjQxMDMuOTcub3JpZy9tZWRpYS9hdWRpby9zbmRpby9zbmRp b19pbnB1dC5oIGNocm9taXVtLTgzLjAuNDEwMy45Ny9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19p bnB1dC5oCistLS0gbWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaC5vcmlnCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgbWVkaWEvYXVkaW8vc25kaW8vc25kaW9f aW5wdXQuaAkyMDIwLTA2LTEzIDE3OjMyOjI4LjUxMTM5NTk2OSArMDIwMAorQEAgLTAsMCArMSw5 MSBAQAorKy8vIENvcHlyaWdodCAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRz IHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEg QlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBm aWxlLgorKworKyNpZm5kZWYgTUVESUFfQVVESU9fU05ESU9fU05ESU9fSU5QVVRfSF8KKysjZGVm aW5lIE1FRElBX0FVRElPX1NORElPX1NORElPX0lOUFVUX0hfCisrCisrI2luY2x1ZGUgPHN0ZGlu dC5oPgorKyNpbmNsdWRlIDxzdHJpbmc+CisrI2luY2x1ZGUgPHNuZGlvLmg+CisrCisrI2luY2x1 ZGUgImJhc2UvY29tcGlsZXJfc3BlY2lmaWMuaCIKKysjaW5jbHVkZSAiYmFzZS9tYWNyb3MuaCIK KysjaW5jbHVkZSAiYmFzZS9tZW1vcnkvd2Vha19wdHIuaCIKKysjaW5jbHVkZSAiYmFzZS90aW1l L3RpbWUuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYWdjX2F1ZGlvX3N0cmVhbS5oIgorKyNp bmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19pby5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9h dWRpb19kZXZpY2VfZGVzY3JpcHRpb24uaCIKKysjaW5jbHVkZSAibWVkaWEvYmFzZS9hdWRpb19w YXJhbWV0ZXJzLmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysKKytjbGFzcyBBdWRpb01hbmFn ZXJCYXNlOworKworKy8vIEltcGxlbWVudGF0aW9uIG9mIEF1ZGlvT3V0cHV0U3RyZWFtIHVzaW5n IHNuZGlvKDcpCisrY2xhc3MgU25kaW9BdWRpb0lucHV0U3RyZWFtIDogcHVibGljIEFnY0F1ZGlv U3RyZWFtPEF1ZGlvSW5wdXRTdHJlYW0+IHsKKysgcHVibGljOgorKyAgLy8gUGFzcyB0aGlzIHRv IHRoZSBjb25zdHJ1Y3RvciBpZiB5b3Ugd2FudCB0byBhdHRlbXB0IGF1dG8tc2VsZWN0aW9uCisr ICAvLyBvZiB0aGUgYXVkaW8gcmVjb3JkaW5nIGRldmljZS4KKysgIHN0YXRpYyBjb25zdCBjaGFy IGtBdXRvU2VsZWN0RGV2aWNlW107CisrCisrICAvLyBDcmVhdGUgYSBQQ00gT3V0cHV0IHN0cmVh bSBmb3IgdGhlIFNORElPIGRldmljZSBpZGVudGlmaWVkIGJ5CisrICAvLyB8ZGV2aWNlX25hbWV8 LiBJZiB1bnN1cmUgb2Ygd2hhdCB0byB1c2UgZm9yIHxkZXZpY2VfbmFtZXwsIHVzZQorKyAgLy8g fGtBdXRvU2VsZWN0RGV2aWNlfC4KKysgIFNuZGlvQXVkaW9JbnB1dFN0cmVhbShBdWRpb01hbmFn ZXJCYXNlKiBhdWRpb19tYW5hZ2VyLAorKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6 c3RyaW5nJiBkZXZpY2VfbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdWRpb1Bh cmFtZXRlcnMmIHBhcmFtcyk7CisrCisrICB+U25kaW9BdWRpb0lucHV0U3RyZWFtKCkgb3ZlcnJp ZGU7CisrCisrICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb0lucHV0U3RyZWFtLgorKyAgYm9v bCBPcGVuKCkgb3ZlcnJpZGU7CisrICB2b2lkIFN0YXJ0KEF1ZGlvSW5wdXRDYWxsYmFjayogY2Fs bGJhY2spIG92ZXJyaWRlOworKyAgdm9pZCBTdG9wKCkgb3ZlcnJpZGU7CisrICB2b2lkIENsb3Nl KCkgb3ZlcnJpZGU7CisrICBkb3VibGUgR2V0TWF4Vm9sdW1lKCkgb3ZlcnJpZGU7CisrICB2b2lk IFNldFZvbHVtZShkb3VibGUgdm9sdW1lKSBvdmVycmlkZTsKKysgIGRvdWJsZSBHZXRWb2x1bWUo KSBvdmVycmlkZTsKKysgIGJvb2wgSXNNdXRlZCgpIG92ZXJyaWRlOworKyAgdm9pZCBTZXRPdXRw dXREZXZpY2VGb3JBZWMoY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9kZXZpY2VfaWQpIG92ZXJy aWRlOworKworKyBwcml2YXRlOgorKworKyAgZW51bSBTdHJlYW1TdGF0ZSB7CisrICAgIGtDbG9z ZWQsICAgICAgICAgICAgLy8gTm90IG9wZW5lZCB5ZXQKKysgICAga1N0b3BwZWQsICAgICAgICAg ICAvLyBEZXZpY2Ugb3BlbmVkLCBidXQgbm90IHN0YXJ0ZWQgeWV0CisrICAgIGtSdW5uaW5nLCAg ICAgICAgICAgLy8gU3RhcnRlZCwgZGV2aWNlIHBsYXlpbmcKKysgICAga1N0b3BXYWl0ICAgICAg ICAgICAvLyBTdG9wcGluZywgd2FpdGluZyBmb3IgdGhlIHJlYWwtdGltZSB0aHJlYWQgdG8gZXhp dAorKyAgfTsKKysKKysgIC8vIEMtc3R5bGUgY2FsbC1iYWNrcworKyAgc3RhdGljIHZvaWQgT25N b3ZlQ2FsbGJhY2sodm9pZCAqYXJnLCBpbnQgZGVsdGEpOworKyAgc3RhdGljIHZvaWQqIFRocmVh ZEVudHJ5KHZvaWQgKmFyZyk7CisrCisrICAvLyBDb250aW51b3VzbHkgbW92ZXMgZGF0YSBmcm9t IHRoZSBkZXZpY2UgdG8gdGhlIGNvbnN1bWVyCisrICB2b2lkIFRocmVhZExvb3AoKTsKKysgIC8v IE91ciBjcmVhdG9yLCB0aGUgYXVkaW8gbWFuYWdlciBuZWVkcyB0byBiZSBub3RpZmllZCB3aGVu IHdlIGNsb3NlLgorKyAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcjsKKysgIC8vIFBhcmFtZXRl cnMgb2YgdGhlIHNvdXJjZQorKyAgQXVkaW9QYXJhbWV0ZXJzIHBhcmFtczsKKysgIC8vIFdlIHN0 b3JlIGRhdGEgaGVyZSBmb3IgY29uc3VtZXIKKysgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0J1cz4g YXVkaW9fYnVzOworKyAgLy8gQ2FsbC1iYWNrIHRoYXQgY29uc3VtZXMgcmVjb3JkZWQgZGF0YQor KyAgQXVkaW9JbnB1dENhbGxiYWNrKiBjYWxsYmFjazsgIC8vIFZhbGlkIGR1cmluZyBhIHJlY29y ZGluZyBzZXNzaW9uLgorKyAgLy8gSGFuZGxlIG9mIHRoZSBhdWRpbyBkZXZpY2UKKysgIHN0cnVj dCBzaW9faGRsKiBoZGw7CisrICAvLyBDdXJyZW50IHN0YXRlIG9mIHRoZSBzdHJlYW0KKysgIGVu dW0gU3RyZWFtU3RhdGUgc3RhdGU7CisrICAvLyBIaWdoIHByaW9yaXR5IHRocmVhZCBydW5uaW5n IFRocmVhZExvb3AoKQorKyAgcHRocmVhZF90IHRocmVhZDsKKysgIC8vIE51bWJlciBvZiBmcmFt ZXMgYnVmZmVyZWQgaW4gdGhlIGhhcmR3YXJlCisrICBpbnQgaHdfZGVsYXk7CisrICAvLyBUZW1w b3JhcnkgYnVmZmVyIHdoZXJlIGRhdGEgaXMgc3RvcmVkIHNuZGlvLWNvbXBhdGlibGUgZm9ybWF0 CisrICBjaGFyKiBidWZmZXI7CisrCisrICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oU25kaW9B dWRpb0lucHV0U3RyZWFtKTsKKyt9OworKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorKworKyNl bmRpZiAgLy8gTUVESUFfQVVESU9fU05ESU9fU05ESU9fSU5QVVRfSF8KK2RpZmYgLU5hdXIgY2hy b21pdW0tODMuMC40MTAzLjk3Lm9yaWcvbWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmNj IGNocm9taXVtLTgzLjAuNDEwMy45Ny9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQuY2MK Ky0tLSBtZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQuY2Mub3JpZwkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIG1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1 dC5jYwkyMDIwLTA2LTEzIDE3OjMyOjI4LjUxMTM5NTk2OSArMDIwMAorQEAgLTAsMCArMSwxODMg QEAKKysvLyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg YSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNF IGZpbGUuCisrCisrI2luY2x1ZGUgImJhc2UvbG9nZ2luZy5oIgorKyNpbmNsdWRlICJiYXNlL3Rp bWUvdGltZS5oIgorKyNpbmNsdWRlICJiYXNlL3RpbWUvZGVmYXVsdF90aWNrX2Nsb2NrLmgiCisr I2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX21hbmFnZXJfYmFzZS5oIgorKyNpbmNsdWRlICJt ZWRpYS9iYXNlL2F1ZGlvX3RpbWVzdGFtcF9oZWxwZXIuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVk aW8vc25kaW8vc25kaW9fb3V0cHV0LmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysKKytzdGF0 aWMgY29uc3QgU2FtcGxlRm9ybWF0IGtTYW1wbGVGb3JtYXQgPSBrU2FtcGxlRm9ybWF0UzE2Owor KworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6T25Nb3ZlQ2FsbGJhY2sodm9pZCAqYXJn LCBpbnQgZGVsdGEpIHsKKysgIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNf Y2FzdDxTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKj4oYXJnKTsKKysKKysgIHNlbGYtPmh3X2RlbGF5 IC09IGRlbHRhOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06Ok9uVm9sQ2Fs bGJhY2sodm9pZCAqYXJnLCB1bnNpZ25lZCBpbnQgdm9sKSB7CisrICBTbmRpb0F1ZGlvT3V0cHV0 U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRpb091dHB1dFN0cmVhbSo+KGFyZyk7 CisrCisrICBzZWxmLT52b2wgPSB2b2w7CisrfQorKworK3ZvaWQgKlNuZGlvQXVkaW9PdXRwdXRT dHJlYW06OlRocmVhZEVudHJ5KHZvaWQgKmFyZykgeworKyAgU25kaW9BdWRpb091dHB1dFN0cmVh bSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qPihhcmcpOworKwor KyAgc2VsZi0+VGhyZWFkTG9vcCgpOworKyAgcmV0dXJuIE5VTEw7CisrfQorKworK1NuZGlvQXVk aW9PdXRwdXRTdHJlYW06OlNuZGlvQXVkaW9PdXRwdXRTdHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0 ZXJzJiBwYXJhbXMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyKQorKyAgICA6IG1hbmFnZXIobWFuYWdlciks CisrICAgICAgcGFyYW1zKHBhcmFtcyksCisrICAgICAgYXVkaW9fYnVzKEF1ZGlvQnVzOjpDcmVh dGUocGFyYW1zKSksCisrICAgICAgc3RhdGUoa0Nsb3NlZCksCisrICAgICAgbXV0ZXgoUFRIUkVB RF9NVVRFWF9JTklUSUFMSVpFUikgeworK30KKysKKytTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjp+ U25kaW9BdWRpb091dHB1dFN0cmVhbSgpIHsKKysgIGlmIChzdGF0ZSAhPSBrQ2xvc2VkKQorKyAg ICBDbG9zZSgpOworK30KKysKKytib29sIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06Ok9wZW4oKSB7 CisrICBzdHJ1Y3Qgc2lvX3BhciBwYXI7CisrICBpbnQgc2lnOworKworKyAgaWYgKHBhcmFtcy5m b3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MSU5FQVIgJiYKKysgICAgICBw YXJhbXMuZm9ybWF0KCkgIT0gQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVOQ1kp IHsKKysgICAgTE9HKFdBUk5JTkcpIDw8ICJVbnN1cHBvcnRlZCBhdWRpbyBmb3JtYXQuIjsKKysg ICAgcmV0dXJuIGZhbHNlOworKyAgfQorKyAgc2lvX2luaXRwYXIoJnBhcik7CisrICBwYXIucmF0 ZSA9IHBhcmFtcy5zYW1wbGVfcmF0ZSgpOworKyAgcGFyLnBjaGFuID0gcGFyYW1zLmNoYW5uZWxz KCk7CisrICBwYXIuYml0cyA9IFNhbXBsZUZvcm1hdFRvQml0c1BlckNoYW5uZWwoa1NhbXBsZUZv cm1hdCk7CisrICBwYXIuYnBzID0gcGFyLmJpdHMgLyA4OworKyAgcGFyLnNpZyA9IHNpZyA9IHBh ci5iaXRzICE9IDggPyAxIDogMDsKKysgIHBhci5sZSA9IFNJT19MRV9OQVRJVkU7CisrICBwYXIu YXBwYnVmc3ogPSBwYXJhbXMuZnJhbWVzX3Blcl9idWZmZXIoKTsKKysKKysgIGhkbCA9IHNpb19v cGVuKFNJT19ERVZBTlksIFNJT19QTEFZLCAwKTsKKysgIGlmIChoZGwgPT0gTlVMTCkgeworKyAg ICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCBvcGVuIGF1ZGlvIGRldmljZS4iOworKyAgICByZXR1 cm4gZmFsc2U7CisrICB9CisrICBpZiAoIXNpb19zZXRwYXIoaGRsLCAmcGFyKSB8fCAhc2lvX2dl dHBhcihoZGwsICZwYXIpKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHNldCBhdWRp byBwYXJhbWV0ZXJzLiI7CisrICAgIGdvdG8gYmFkX2Nsb3NlOworKyAgfQorKyAgaWYgKHBhci5y YXRlICAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5zYW1wbGVfcmF0ZSgpIHx8CisrICAgICAgcGFy LnBjaGFuICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1zLmNoYW5uZWxzKCkgfHwKKysgICAgICBwYXIu Yml0cyAgIT0gKHVuc2lnbmVkIGludClTYW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVsKGtTYW1w bGVGb3JtYXQpIHx8CisrICAgICAgcGFyLnNpZyAgICE9ICh1bnNpZ25lZCBpbnQpc2lnIHx8Cisr ICAgICAgKHBhci5icHMgPiAxICYmIHBhci5sZSAhPSBTSU9fTEVfTkFUSVZFKSB8fAorKyAgICAg IChwYXIuYml0cyAhPSBwYXIuYnBzICogOCkpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiVW5zdXBw b3J0ZWQgYXVkaW8gcGFyYW1ldGVycy4iOworKyAgICBnb3RvIGJhZF9jbG9zZTsKKysgIH0KKysg IHN0YXRlID0ga1N0b3BwZWQ7CisrICB2b2xwZW5kaW5nID0gMDsKKysgIHZvbCA9IDA7CisrICBi dWZmZXIgPSBuZXcgY2hhclthdWRpb19idXMtPmZyYW1lcygpICogcGFyYW1zLkdldEJ5dGVzUGVy RnJhbWUoa1NhbXBsZUZvcm1hdCldOworKyAgc2lvX29ubW92ZShoZGwsICZPbk1vdmVDYWxsYmFj aywgdGhpcyk7CisrICBzaW9fb252b2woaGRsLCAmT25Wb2xDYWxsYmFjaywgdGhpcyk7CisrICBy ZXR1cm4gdHJ1ZTsKKysgYmFkX2Nsb3NlOgorKyAgc2lvX2Nsb3NlKGhkbCk7CisrICByZXR1cm4g ZmFsc2U7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6Q2xvc2UoKSB7Cisr ICBpZiAoc3RhdGUgPT0ga0Nsb3NlZCkKKysgICAgcmV0dXJuOworKyAgaWYgKHN0YXRlID09IGtS dW5uaW5nKQorKyAgICBTdG9wKCk7CisrICBzdGF0ZSA9IGtDbG9zZWQ7CisrICBkZWxldGUgW10g YnVmZmVyOworKyAgc2lvX2Nsb3NlKGhkbCk7CisrICBtYW5hZ2VyLT5SZWxlYXNlT3V0cHV0U3Ry ZWFtKHRoaXMpOyAgLy8gQ2FsbHMgdGhlIGRlc3RydWN0b3IKKyt9CisrCisrdm9pZCBTbmRpb0F1 ZGlvT3V0cHV0U3RyZWFtOjpTdGFydChBdWRpb1NvdXJjZUNhbGxiYWNrKiBjYWxsYmFjaykgewor KyAgc3RhdGUgPSBrUnVubmluZzsKKysgIGh3X2RlbGF5ID0gMDsKKysgIHNvdXJjZSA9IGNhbGxi YWNrOworKyAgc2lvX3N0YXJ0KGhkbCk7CisrICBpZiAocHRocmVhZF9jcmVhdGUoJnRocmVhZCwg TlVMTCwgJlRocmVhZEVudHJ5LCB0aGlzKSAhPSAwKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkZh aWxlZCB0byBjcmVhdGUgcmVhbC10aW1lIHRocmVhZC4iOworKyAgICBzaW9fc3RvcChoZGwpOwor KyAgICBzdGF0ZSA9IGtTdG9wcGVkOworKyAgfQorK30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRw dXRTdHJlYW06OlN0b3AoKSB7CisrICBpZiAoc3RhdGUgPT0ga1N0b3BwZWQpCisrICAgIHJldHVy bjsKKysgIHN0YXRlID0ga1N0b3BXYWl0OworKyAgcHRocmVhZF9qb2luKHRocmVhZCwgTlVMTCk7 CisrICBzaW9fc3RvcChoZGwpOworKyAgc3RhdGUgPSBrU3RvcHBlZDsKKyt9CisrCisrdm9pZCBT bmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpTZXRWb2x1bWUoZG91YmxlIHYpIHsKKysgIHB0aHJlYWRf bXV0ZXhfbG9jaygmbXV0ZXgpOworKyAgdm9sID0gdiAqIFNJT19NQVhWT0w7CisrICB2b2xwZW5k aW5nID0gMTsKKysgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtdXRleCk7CisrfQorKworK3ZvaWQg U25kaW9BdWRpb091dHB1dFN0cmVhbTo6R2V0Vm9sdW1lKGRvdWJsZSogdikgeworKyAgcHRocmVh ZF9tdXRleF9sb2NrKCZtdXRleCk7CisrICAqdiA9IHZvbCAqICgxLiAvIFNJT19NQVhWT0wpOwor KyAgcHRocmVhZF9tdXRleF91bmxvY2soJm11dGV4KTsKKyt9CisrCisrLy8gVGhpcyBzdHJlYW0g aXMgYWx3YXlzIHVzZWQgd2l0aCBzdWIgc2Vjb25kIGJ1ZmZlciBzaXplcywgd2hlcmUgaXQncwor Ky8vIHN1ZmZpY2llbnQgdG8gc2ltcGx5IGFsd2F5cyBmbHVzaCB1cG9uIFN0YXJ0KCkuCisrdm9p ZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpGbHVzaCgpIHt9CisrCisrdm9pZCBTbmRpb0F1ZGlv T3V0cHV0U3RyZWFtOjpUaHJlYWRMb29wKHZvaWQpIHsKKysgIGludCBhdmFpbCwgY291bnQsIHJl c3VsdDsKKysKKysgIHdoaWxlIChzdGF0ZSA9PSBrUnVubmluZykgeworKyAgICAvLyBVcGRhdGUg dm9sdW1lIGlmIG5lZWRlZAorKyAgICBwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsKKysgICAg aWYgKHZvbHBlbmRpbmcpIHsKKysgICAgICB2b2xwZW5kaW5nID0gMDsKKysgICAgICBzaW9fc2V0 dm9sKGhkbCwgdm9sKTsKKysgICAgfQorKyAgICBwdGhyZWFkX211dGV4X3VubG9jaygmbXV0ZXgp OworKworKyAgICAvLyBHZXQgZGF0YSB0byBwbGF5CisrICAgIGNvbnN0IGJhc2U6OlRpbWVEZWx0 YSBkZWxheSA9IEF1ZGlvVGltZXN0YW1wSGVscGVyOjpGcmFtZXNUb1RpbWUoaHdfZGVsYXksCisr CXBhcmFtcy5zYW1wbGVfcmF0ZSgpKTsKKysgICAgY291bnQgPSBzb3VyY2UtPk9uTW9yZURhdGEo ZGVsYXksIGJhc2U6OlRpbWVUaWNrczo6Tm93KCksIDAsIGF1ZGlvX2J1cy5nZXQoKSk7CisrICAg IGF1ZGlvX2J1cy0+VG9JbnRlcmxlYXZlZChjb3VudCwgU2FtcGxlRm9ybWF0VG9CeXRlc1BlckNo YW5uZWwoa1NhbXBsZUZvcm1hdCksIGJ1ZmZlcik7CisrICAgIGlmIChjb3VudCA9PSAwKSB7Cisr ICAgICAgLy8gV2UgaGF2ZSB0byBzdWJtaXQgc29tZXRoaW5nIHRvIHRoZSBkZXZpY2UKKysgICAg ICBjb3VudCA9IGF1ZGlvX2J1cy0+ZnJhbWVzKCk7CisrICAgICAgbWVtc2V0KGJ1ZmZlciwgMCwg Y291bnQgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KSk7CisrICAgICAg TE9HKFdBUk5JTkcpIDw8ICJObyBkYXRhIHRvIHBsYXksIHJ1bm5pbmcgZW1wdHkgY3ljbGUuIjsK KysgICAgfQorKworKyAgICAvLyBTdWJtaXQgZGF0YSB0byB0aGUgZGV2aWNlCisrICAgIGF2YWls ID0gY291bnQgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KTsKKysgICAg cmVzdWx0ID0gc2lvX3dyaXRlKGhkbCwgYnVmZmVyLCBhdmFpbCk7CisrICAgIGlmIChyZXN1bHQg PT0gMCkgeworKyAgICAgIExPRyhXQVJOSU5HKSA8PCAiQXVkaW8gZGV2aWNlIGRpc2Nvbm5lY3Rl ZC4iOworKyAgICAgIGJyZWFrOworKyAgICB9CisrCisrICAgIC8vIFVwZGF0ZSBoYXJkd2FyZSBw b2ludGVyCisrICAgIGh3X2RlbGF5ICs9IGNvdW50OworKyAgfQorK30KKysKKyt9ICAvLyBuYW1l c3BhY2UgbWVkaWEKK2RpZmYgLU5hdXIgY2hyb21pdW0tODMuMC40MTAzLjk3Lm9yaWcvbWVkaWEv YXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmggY2hyb21pdW0tODMuMC40MTAzLjk3L21lZGlhL2F1 ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oCistLS0gbWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0 cHV0Lmgub3JpZwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIG1lZGlh L2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oCTIwMjAtMDYtMTMgMTc6MzI6MjguNTExMzk1OTY5 ICswMjAwCitAQCAtMCwwICsxLDg2IEBACisrLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJv bWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJj ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysv LyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpZm5kZWYgTUVESUFfQVVESU9fU05E SU9fU05ESU9fT1VUUFVUX0hfCisrI2RlZmluZSBNRURJQV9BVURJT19TTkRJT19TTkRJT19PVVRQ VVRfSF8KKysKKysjaW5jbHVkZSA8cHRocmVhZC5oPgorKyNpbmNsdWRlIDxzbmRpby5oPgorKwor KyNpbmNsdWRlICJiYXNlL3RpbWUvdGlja19jbG9jay5oIgorKyNpbmNsdWRlICJiYXNlL3RpbWUv dGltZS5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19pby5oIgorKworK25hbWVzcGFj ZSBtZWRpYSB7CisrCisrY2xhc3MgQXVkaW9NYW5hZ2VyQmFzZTsKKysKKysvLyBJbXBsZW1lbnRh dGlvbiBvZiBBdWRpb091dHB1dFN0cmVhbSB1c2luZyBzbmRpbyg3KQorK2NsYXNzIFNuZGlvQXVk aW9PdXRwdXRTdHJlYW0gOiBwdWJsaWMgQXVkaW9PdXRwdXRTdHJlYW0geworKyBwdWJsaWM6Cisr ICAvLyBUaGUgbWFuYWdlciBpcyBjcmVhdGluZyB0aGlzIG9iamVjdAorKyAgU25kaW9BdWRpb091 dHB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICAgICAgICAg ICAgICAgICAgICAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcik7CisrICB2aXJ0dWFsIH5TbmRp b0F1ZGlvT3V0cHV0U3RyZWFtKCk7CisrCisrICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb091 dHB1dFN0cmVhbS4KKysgIGJvb2wgT3BlbigpIG92ZXJyaWRlOworKyAgdm9pZCBDbG9zZSgpIG92 ZXJyaWRlOworKyAgdm9pZCBTdGFydChBdWRpb1NvdXJjZUNhbGxiYWNrKiBjYWxsYmFjaykgb3Zl cnJpZGU7CisrICB2b2lkIFN0b3AoKSBvdmVycmlkZTsKKysgIHZvaWQgU2V0Vm9sdW1lKGRvdWJs ZSB2b2x1bWUpIG92ZXJyaWRlOworKyAgdm9pZCBHZXRWb2x1bWUoZG91YmxlKiB2b2x1bWUpIG92 ZXJyaWRlOworKyAgdm9pZCBGbHVzaCgpIG92ZXJyaWRlOworKworKyAgZnJpZW5kIHZvaWQgc25k aW9fb25tb3ZlKHZvaWQgKmFyZywgaW50IGRlbHRhKTsKKysgIGZyaWVuZCB2b2lkIHNuZGlvX29u dm9sKHZvaWQgKmFyZywgdW5zaWduZWQgaW50IHZvbCk7CisrICBmcmllbmQgdm9pZCAqc25kaW9f dGhyZWFkc3RhcnQodm9pZCAqYXJnKTsKKysKKysgcHJpdmF0ZToKKysgIGVudW0gU3RyZWFtU3Rh dGUgeworKyAgICBrQ2xvc2VkLCAgICAgICAgICAgIC8vIE5vdCBvcGVuZWQgeWV0CisrICAgIGtT dG9wcGVkLCAgICAgICAgICAgLy8gRGV2aWNlIG9wZW5lZCwgYnV0IG5vdCBzdGFydGVkIHlldAor KyAgICBrUnVubmluZywgICAgICAgICAgIC8vIFN0YXJ0ZWQsIGRldmljZSBwbGF5aW5nCisrICAg IGtTdG9wV2FpdCAgICAgICAgICAgLy8gU3RvcHBpbmcsIHdhaXRpbmcgZm9yIHRoZSByZWFsLXRp bWUgdGhyZWFkIHRvIGV4aXQKKysgIH07CisrCisrICAvLyBDLXN0eWxlIGNhbGwtYmFja3MKKysg IHN0YXRpYyB2b2lkIE9uTW92ZUNhbGxiYWNrKHZvaWQgKmFyZywgaW50IGRlbHRhKTsKKysgIHN0 YXRpYyB2b2lkIE9uVm9sQ2FsbGJhY2sodm9pZCAqYXJnLCB1bnNpZ25lZCBpbnQgdm9sKTsKKysg IHN0YXRpYyB2b2lkKiBUaHJlYWRFbnRyeSh2b2lkICphcmcpOworKworKyAgLy8gQ29udGludW91 c2x5IG1vdmVzIGRhdGEgZnJvbSB0aGUgcHJvZHVjZXIgdG8gdGhlIGRldmljZQorKyAgdm9pZCBU aHJlYWRMb29wKHZvaWQpOworKworKyAgLy8gT3VyIGNyZWF0b3IsIHRoZSBhdWRpbyBtYW5hZ2Vy IG5lZWRzIHRvIGJlIG5vdGlmaWVkIHdoZW4gd2UgY2xvc2UuCisrICBBdWRpb01hbmFnZXJCYXNl KiBtYW5hZ2VyOworKyAgLy8gUGFyYW1ldGVycyBvZiB0aGUgc291cmNlCisrICBBdWRpb1BhcmFt ZXRlcnMgcGFyYW1zOworKyAgLy8gU291cmNlIHN0b3JlcyBkYXRhIGhlcmUKKysgIHN0ZDo6dW5p cXVlX3B0cjxBdWRpb0J1cz4gYXVkaW9fYnVzOworKyAgLy8gQ2FsbC1iYWNrIHRoYXQgcHJvZHVj ZXMgZGF0YSB0byBwbGF5CisrICBBdWRpb1NvdXJjZUNhbGxiYWNrKiBzb3VyY2U7CisrICAvLyBI YW5kbGUgb2YgdGhlIGF1ZGlvIGRldmljZQorKyAgc3RydWN0IHNpb19oZGwqIGhkbDsKKysgIC8v IEN1cnJlbnQgc3RhdGUgb2YgdGhlIHN0cmVhbQorKyAgZW51bSBTdHJlYW1TdGF0ZSBzdGF0ZTsK KysgIC8vIEhpZ2ggcHJpb3JpdHkgdGhyZWFkIHJ1bm5pbmcgVGhyZWFkTG9vcCgpCisrICBwdGhy ZWFkX3QgdGhyZWFkOworKyAgLy8gUHJvdGVjdHMgdm9sLCB2b2xwZW5kaW5nIGFuZCBod19kZWxh eQorKyAgcHRocmVhZF9tdXRleF90IG11dGV4OworKyAgLy8gQ3VycmVudCB2b2x1bWUgaW4gdGhl IDAuLlNJT19NQVhWT0wgcmFuZ2UKKysgIGludCB2b2w7CisrICAvLyBTZXQgdG8gMSBpZiB2b2x1 bWVzIG11c3QgYmUgcmVmcmVzaGVkIGluIHRoZSByZWFsdGltZSB0aHJlYWQKKysgIGludCB2b2xw ZW5kaW5nOworKyAgLy8gTnVtYmVyIG9mIGZyYW1lcyBidWZmZXJlZCBpbiB0aGUgaGFyZHdhcmUK KysgIGludCBod19kZWxheTsKKysgIC8vIFRlbXBvcmFyeSBidWZmZXIgd2hlcmUgZGF0YSBpcyBz dG9yZWQgc25kaW8tY29tcGF0aWJsZSBmb3JtYXQKKysgIGNoYXIqIGJ1ZmZlcjsKKysKKysgIERJ U0FMTE9XX0NPUFlfQU5EX0FTU0lHTihTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKTsKKyt9OworKwor K30gIC8vIG5hbWVzcGFjZSBtZWRpYQorKworKyNlbmRpZiAgLy8gTUVESUFfQVVESU9fU05ESU9f U05ESU9fT1VUUFVUX0hfCitkaWZmIC1OYXVyIGNocm9taXVtLTgzLjAuNDEwMy45Ny5vcmlnL21l ZGlhL21lZGlhX29wdGlvbnMuZ25pIGNocm9taXVtLTgzLjAuNDEwMy45Ny9tZWRpYS9tZWRpYV9v cHRpb25zLmduaQorLS0tIG1lZGlhL21lZGlhX29wdGlvbnMuZ25pLm9yaWcJMjAyMC0wNi0wMyAy MDo0MDoyNi4wMDAwMDAwMDAgKzAyMDAKKysrKyBtZWRpYS9tZWRpYV9vcHRpb25zLmduaQkyMDIw LTA2LTEzIDE3OjMyOjI4LjUxMjM5NTk2MyArMDIwMAorQEAgLTExOSw2ICsxMTksOSBAQAorICAg IyBFbmFibGVzIHJ1bnRpbWUgc2VsZWN0aW9uIG9mIEFMU0EgbGlicmFyeSBmb3IgYXVkaW8uCisg ICB1c2VfYWxzYSA9IGZhbHNlCisgCisrICAjIEVuYWJsZSBydW50aW1lIHNlbGVjdGlvbiBvZiBz bmRpbyg3KQorKyAgdXNlX3NuZGlvID0gZmFsc2UKKysKKyAgICMgQWxzYSBzaG91bGQgYmUgdXNl ZCBvbiBub24tQW5kcm9pZCwgbm9uLU1hYyBQT1NJWCBzeXN0ZW1zLgorICAgIyBBbHNhIHNob3Vs ZCBiZSB1c2VkIG9uIGRlc2t0b3AgQ2hyb21lY2FzdCBhbmQgYXVkaW8tb25seSBDaHJvbWVjYXN0 IGJ1aWxkcy4KKyAgIGlmIChpc19wb3NpeCAmJiAhaXNfYW5kcm9pZCAmJiAhaXNfbWFjICYmCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlIGIvc3JjcGtncy9jaHJvbWl1bS90 ZW1wbGF0ZQppbmRleCBhYzgwZjZiNzhmYS4uYTdmZWQ5NDFlZTEgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvY2hyb21pdW0vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQpAQCAt MTUsMTAgKzE1LDEyIEBAIGxpYjMyZGlzYWJsZWQ9eWVzCiBub2RlYnVnPXllcwogbm9waWU9eWVz ICAjIGNvbnRhaW5zIHRvb2xzIHRoYXQgYXJlIG5vdCBQSUUsIGVuYWJsZXMgUElFIGl0c2VsZgog Ci1idWlsZF9vcHRpb25zPSJjbGFuZyBqc19vcHRpbWl6ZSB2YWFwaSIKK2J1aWxkX29wdGlvbnM9 ImNsYW5nIGpzX29wdGltaXplIHZhYXBpIHB1bHNlYXVkaW8gc25kaW8iCiBkZXNjX29wdGlvbl9j bGFuZz0iVXNlIGNsYW5nIHRvIGJ1aWxkIgogZGVzY19vcHRpb25fanNfb3B0aW1pemU9Ik9wdGlt aXplIHRoZSBKUyB1c2VkIGZvciBDaHJvbWl1bSdzIFVJIgogZGVzY19vcHRpb25fdmFhcGk9IkVu YWJsZSBzdXBwb3J0IGZvciBWQS1BUEkiCitkZXNjX29wdGlvbl9wdWxzZWF1ZGlvPSJFbmFibGUg c3VwcG9ydCBmb3IgUHVsc2VBdWRpbyIKK2Rlc2Nfb3B0aW9uX3NuZGlvPSJFbmFibGUgc3VwcG9y dCBmb3Igc25kaW8iCiAKIGhvc3RtYWtlZGVwZW5kcz0iJCh2b3B0X2lmIGNsYW5nIGNsYW5nKSB5 YXNtIHB5dGhvbiBwa2djb25mIHBlcmwgZ3BlcmYgYmlzb24gbmluamEgbm9kZWpzIGh3aWRzCiAg bGliYXRvbWljLWRldmVsIGxpYmV2ZW50LWRldmVsIGxpYmdsaWItZGV2ZWwgJCh2b3B0X2lmIGpz X29wdGltaXplIG9wZW5qZGspIgpAQCAtMjYsMTUgKzI4LDE1IEBAIG1ha2VkZXBlbmRzPSJsaWJw bmctZGV2ZWwgZ3RrKy1kZXZlbCBndGsrMy1kZXZlbCBuc3MtZGV2ZWwgcGNpdXRpbHMtZGV2ZWwK ICBsaWJYaS1kZXZlbCBsaWJnY3J5cHQtZGV2ZWwgbGliZ25vbWUta2V5cmluZy1kZXZlbCBjdXBz LWRldmVsIGVsZnV0aWxzLWRldmVsCiAgbGliWGNvbXBvc2l0ZS1kZXZlbCBzcGVlY2gtZGlzcGF0 Y2hlci1kZXZlbCBsaWJYcmFuZHItZGV2ZWwgbWl0LWtyYjUtZGV2ZWwKICBsaWJYU2NyblNhdmVy LWRldmVsIGFsc2EtbGliLWRldmVsIHNuYXBweS1kZXZlbCBsaWJkcm0tZGV2ZWwKLSBsaWJ4bWwy LWRldmVsIGxpYnhzbHQtZGV2ZWwgcHVsc2VhdWRpby1kZXZlbCBsaWJleGlmLWRldmVsCisgbGli eG1sMi1kZXZlbCBsaWJ4c2x0LWRldmVsICQodm9wdF9pZiBwdWxzZWF1ZGlvIHB1bHNlYXVkaW8t ZGV2ZWwpIGxpYmV4aWYtZGV2ZWwKICBsaWJYY3Vyc29yLWRldmVsIGxpYmZsYWMtZGV2ZWwgc3Bl ZXgtZGV2ZWwgbGlibXRwLWRldmVsIGxpYndlYnAtZGV2ZWwKICBsaWJqcGVnLXR1cmJvLWRldmVs IGxpYmV2ZW50LWRldmVsIGpzb24tYy1kZXZlbCBoYXJmYnV6ei1kZXZlbAogIG1pbml6aXAtZGV2 ZWwganNvbmNwcC1kZXZlbCB6bGliLWRldmVsIGxpYmNhcC1kZXZlbCBsaWJYZGFtYWdlLWRldmVs CiAgcmUyLWRldmVsIGZvbnRjb25maWctZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgb3B1cy1kZXZlbAot IGZmbXBlZy1kZXZlbCBsaWJ2YS1kZXZlbCBweXRob24tc2V0dXB0b29scyIKKyBmZm1wZWctZGV2 ZWwgbGlidmEtZGV2ZWwgcHl0aG9uLXNldHVwdG9vbHMgJCh2b3B0X2lmIHNuZGlvIHNuZGlvLWRl dmVsKSIKIGRlcGVuZHM9ImxpYmV4aWYgaHdpZHMgZGVza3RvcC1maWxlLXV0aWxzIGhpY29sb3It aWNvbi10aGVtZSB4ZGctdXRpbHMiCiAKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iY2xhbmciCiti dWlsZF9vcHRpb25zX2RlZmF1bHQ9ImNsYW5nIHB1bHNlYXVkaW8iCiAKIGNhc2UgIiR7WEJQU19U QVJHRVRfTUFDSElORX0iIGluCiAJeDg2XzY0fGk2ODYpIGJ1aWxkX29wdGlvbnNfZGVmYXVsdCs9 IiBqc19vcHRpbWl6ZSIgOzsKQEAgLTE1NCw3ICsxNTYsNiBAQCBkb19jb25maWd1cmUoKSB7CiAJ CSd1c2VfYWxsb2NhdG9yPSJub25lIicKIAkJJ3VzZV9hbGxvY2F0b3Jfc2hpbT1mYWxzZScKIAkJ J3VzZV9jdXBzPXRydWUnCi0JCSd1c2VfcHVsc2VhdWRpbz10cnVlJwogCQkndXNlX3N5c3Jvb3Q9 ZmFsc2UnCiAJCSd1c2Vfc3lzdGVtX2hhcmZidXp6PXRydWUnCiAJCSdlbmFibGVfd2lkZXZpbmU9 dHJ1ZScKQEAgLTE3MCw2ICsxNzEsMTAgQEAgZG9fY29uZmlndXJlKCkgewogCQkiY2xvc3VyZV9j b21waWxlPSQodm9wdF9pZiBqc19vcHRpbWl6ZSB0cnVlIGZhbHNlKSIKIAkpCiAKKwljb25mKz0o CisJCSJ1c2VfcHVsc2VhdWRpbz0kKHZvcHRfaWYgcHVsc2VhdWRpbyB0cnVlIGZhbHNlKSIKKwkp CisKIAkjIFVzZSBleHBsaWNpdCBsaWJyYXJ5IGRlcGVuZGVuY2llcyBpbnN0ZWFkIG9mIGRsb3Bl bi4KIAkjIEdOIG9ubHkgaGFzICJsaW5rX3B1bHNlYXVkaW8iLCB0aGUgb3RoZXIgb3B0aW9ucyB1 c2VkIGJlZm9yZSBhcmUgbm90IGF2YWlsYWJsZSBhdG0KIAkjIGxpbnV4X2xpbmtfY3Vwcz10cnVl CkBAIC0xNzcsNyArMTgyLDExIEBAIGRvX2NvbmZpZ3VyZSgpIHsKIAkjIGxpbnV4X2xpbmtfbGli cGNpPXRydWUKIAkjIGxpbnV4X2xpbmtfbGlic3BlZWNoZD10cnVlCiAJIyBsaWJzcGVlY2hkX2hf cHJlZml4PVwic3BlZWNoLWRpc3BhdGNoZXIvXCIiCi0JY29uZis9KCAnbGlua19wdWxzZWF1ZGlv PXRydWUnICkKKwljb25mKz0oICJsaW5rX3B1bHNlYXVkaW89JCh2b3B0X2lmIHB1bHNlYXVkaW8g dHJ1ZSBmYWxzZSkiICkKKworCWNvbmYrPSgKKwkJInVzZV9zbmRpbz0kKHZvcHRfaWYgc25kaW8g dHJ1ZSBmYWxzZSkiCisJKQogCiAJIyBOZXZlciB1c2UgYnVuZGxlZCBiaW51dGlscy9nb2xkIGJp bmFyeS4KIAljb25mKz0oCgpGcm9tIDc1MmQ5ODRjZmY2YmMxNzkzM2ZjZjhjOGIwZDliNDMwNmM2 OTBkZjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBldGVyIEJ1aSA8cGJ1aUBnaXRo dWIuYng2MTIuc3BhY2U+CkRhdGU6IEZyaSwgMTAgSnVsIDIwMjAgMTE6MzQ6MzAgLTA0MDAKU3Vi amVjdDogW1BBVENIIDIvM10gY2hyb21pdW06IHVwZGF0ZSB0byA4My4wLjQxMDMuMTE2LgoKW2Np IHNraXBdCgotIEJ1aWx0IGZvciB4ODZfNjQgYW5kIHg4Nl82NC1tdXNsLgotIFRlc3RlZCBvbiB4 ODZfNjQuCgotIFR1cm4gb24gdmFhcGkgYnVpbGQgb3B0aW9uIGJ5IGRlZmF1bHQuICBXaXRoIHRo aXMgYnVpbGQgb3B0aW9uLCB0aGUKICBjaHJvbWl1bSBwYWNrYWdlIG5vdyBzdXBwb3J0cyBWQS1B UEkgZm9yIEludGVsIGFuZCBBTUQgR1BVcy4KCiAgSG93ZXZlciwgdXNlcnMgbXVzdCBvcHQtaW4g dG8gZW5hYmxpbmcgdGhpcyBmZWF0dXJlIGF0IHJ1bi10aW1lIGJ5CiAgZW5hYmxpbmcgIk92ZXJy aWRlIHNvZnR3YXJlIHJlbmRlcmluZyBsaXN0IiBpbiBjaHJvbWU6Ly9mbGFncyBvciBieQogIHBh c3NpbmcgdGhlIC0taWdub3JlLWdwdS1ibGFja2xpc3QgdG8gY2hyb21pdW0uICBPdGhlcndpc2Ug dGhpcwogIGZlYXR1cmUgaXMgZGlzYWJsZWQgYW5kIG5vdCB1c2VkLgoKICBUaGlzIGhhcyBiZWVu IHRlc3RlZCB3aXRoIFlvdVR1YmUgd2l0aCBtdWx0aXBsZSBJbnRlbCBHUFVzLgotLS0KIC4uLi9w YXRjaGVzL2Nocm9taXVtLWZpeC12YWFwaS1vbi1pbnRlbC5wYXRjaCB8IDQwICsrKysrKysrKysr KysrKysrKysKIC4uLjMtZmlsZXMtdG8taGF2ZS1hLXN0YXJ0LXRpbWUtb2YtemVyby5wYXRjaCB8 IDM4ICsrKysrKysrKysrKysrKysrKwogc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZSAgICAgICAg ICAgICAgICAgICAgIHwgIDggKystLQogMyBmaWxlcyBjaGFuZ2VkLCA4MiBpbnNlcnRpb25zKCsp LCA0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0 Y2hlcy9jaHJvbWl1bS1maXgtdmFhcGktb24taW50ZWwucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvdXBzdHJlYW0tZm9yY2UtbXAzLWZpbGVzLXRvLWhh dmUtYS1zdGFydC10aW1lLW9mLXplcm8ucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9t aXVtL3BhdGNoZXMvY2hyb21pdW0tZml4LXZhYXBpLW9uLWludGVsLnBhdGNoIGIvc3JjcGtncy9j aHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLWZpeC12YWFwaS1vbi1pbnRlbC5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTAxYTZhOTdlZjAKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tZml4LXZhYXBpLW9uLWlu dGVsLnBhdGNoCkBAIC0wLDAgKzEsNDAgQEAKK0Zyb20gOWZmMDY1MzZjYWY3ZWE1MWFhZDlmZDJi YjY0OWM4NThlYWY3ZWU4NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFrYXJzaGFu IEJpc3dhcyA8YWthcnNoYW5iaXN3YXNAZmVkb3JhcHJvamVjdC5vcmc+CitEYXRlOiBTYXQsIDI2 IE9jdCAyMDE5IDEwOjA2OjMwICswNTMwCitTdWJqZWN0OiBbUEFUQ0hdIE1vdmUgb2ZmZW5kaW5n IGZ1bmN0aW9uIHRvIGNocm9tZW9zIG9ubHkKKworLS0tIG1lZGlhL2dwdS92YWFwaS92YWFwaV92 aWRlb19kZWNvZGVfYWNjZWxlcmF0b3IuY2MKKysrKyBtZWRpYS9ncHUvdmFhcGkvdmFhcGlfdmlk ZW9fZGVjb2RlX2FjY2VsZXJhdG9yLmNjCitAQCAtNjYsNiArNjYsNyBAQCB2b2lkIFJlcG9ydFRv VU1BKFZBVkRBRGVjb2RlckZhaWx1cmUgZmFpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFZBVkRBX0RFQ09ERVJfRkFJTFVSRVNfTUFYICsgMSk7CisgfQorIAorKyNpZiBkZWZpbmVkKE9T X0FORFJPSUQpIHx8IGRlZmluZWQoT1NfQ0hST01FT1MpCisgLy8gUmV0dXJucyB0cnVlIGlmIHRo ZSBDUFUgaXMgYW4gSW50ZWwgR2VtaW5pIExha2Ugb3IgbGF0ZXIgKGluY2x1ZGluZyBLYWJ5Cisg Ly8gTGFrZSkgQ3B1IHBsYXRmb3JtIGlkJ3MgYXJlIHJlZmVyZW5jZWQgZnJvbSB0aGUgZm9sbG93 aW5nIGZpbGUgaW4ga2VybmVsCisgLy8gc291cmNlIGFyY2gveDg2L2luY2x1ZGUvYXNtL2ludGVs LWZhbWlseS5oCitAQCAtNzgsNiArNzksNyBAQCBib29sIElzR2VtaW5pTGFrZU9yTGF0ZXIoKSB7 CisgICAgICAgY3B1aWQubW9kZWwoKSA+PSBrR2VtaW5pTGFrZU1vZGVsSWQ7CisgICByZXR1cm4g aXNfZ2VtaW5pbGFrZV9vcl9sYXRlcjsKKyB9CisrI2VuZGlmIAorIAorIH0gIC8vIG5hbWVzcGFj ZQorIAorQEAgLTExNTUsNiArMTE1Nyw4IEBAIFZhYXBpVmlkZW9EZWNvZGVBY2NlbGVyYXRvcjo6 RGVjaWRlQnVmZmUKKyAgIGlmIChvdXRwdXRfbW9kZV8gPT0gVmlkZW9EZWNvZGVBY2NlbGVyYXRv cjo6Q29uZmlnOjpPdXRwdXRNb2RlOjpJTVBPUlQpCisgICAgIHJldHVybiBCdWZmZXJBbGxvY2F0 aW9uTW9kZTo6a05vcm1hbDsKKyAKKysjaWYgZGVmaW5lZChPU19BTkRST0lEKSB8fCBkZWZpbmVk KE9TX0NIUk9NRU9TKQorKyAgLy8gTW92ZSB0aGlzIHRvIGNocm9tZU9zIG9ubHkgYXMgaXQgaXMg Y2F1c2luZyBwcm9ibGVtIGluIHNvbWUgaW50ZWwgbGludXggZHJpdmVycworICAgLy8gT24gR2Vt aW5pIExha2UsIEthYnkgTGFrZSBhbmQgbGF0ZXIgd2UgY2FuIHBhc3MgdG8gbGlidmEgdGhlIGNs aWVudCdzCisgICAvLyBQaWN0dXJlQnVmZmVycyB0byBkZWNvZGUgb250bywgd2hpY2ggc2tpcHMg dGhlIHVzZSBvZiB0aGUgVnBwIHVuaXQgYW5kIGl0cworICAgLy8gYXNzb2NpYXRlZCBmb3JtYXQg cmVjb25jaWxpYXRpb24gY29weSwgYXZvaWRpbmcgYWxsIGludGVybmFsIGJ1ZmZlcgorQEAgLTEx NzEsNiArMTE3NSw3IEBAIFZhYXBpVmlkZW9EZWNvZGVBY2NlbGVyYXRvcjo6RGVjaWRlQnVmZmUK KyAgICAgICBudW1fZXh0cmFfcGljc18gPSAzOworICAgICByZXR1cm4gQnVmZmVyQWxsb2NhdGlv bk1vZGU6OmtOb25lOworICAgfQorKyNlbmRpZiAKKyAKKyAgIC8vIElmIHdlJ3JlIGhlcmUsIHdl IGhhdmUgdG8gdXNlIHRoZSBWcHAgdW5pdCBhbmQgYWxsb2NhdGUgYnVmZmVycyBmb3IKKyAgIC8v IHxkZWNvZGVyX3w7IHVzdWFsbHkgd2UnZCBoYXZlIHRvIGFsbG9jYXRlIHRoZSB8ZGVjb2Rlcl98 cwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3Vwc3RyZWFtLWZvcmNlLW1w My1maWxlcy10by1oYXZlLWEtc3RhcnQtdGltZS1vZi16ZXJvLnBhdGNoIGIvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL3Vwc3RyZWFtLWZvcmNlLW1wMy1maWxlcy10by1oYXZlLWEtc3RhcnQtdGlt ZS1vZi16ZXJvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43 ZmM0MzNmYWI4ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy91 cHN0cmVhbS1mb3JjZS1tcDMtZmlsZXMtdG8taGF2ZS1hLXN0YXJ0LXRpbWUtb2YtemVyby5wYXRj aApAQCAtMCwwICsxLDM4IEBACitGcm9tIDE5MmZjMzg5OWY3NmU5NDg3ZDc3ODk1ZjMxZGY4ZDJk MTNiZjk2MTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYWxlIEN1cnRpcyA8ZGFs ZWN1cnRpc0BjaHJvbWl1bS5vcmc+CitEYXRlOiBGcmksIDI2IEp1biAyMDIwIDAxOjEwOjU1ICsw MDAwCitTdWJqZWN0OiBbUEFUQ0hdIEZvcmNlIG1wMyBmaWxlcyB0byBoYXZlIGEgc3RhcnQgdGlt ZSBvZiB6ZXJvLgorCitUaGlzIHdpbGwgYWxsb3cgdXMgdG8gcmVtb3ZlIG91ciBjdXN0b20gcGF0 Y2ggd2hpY2ggYnJlYWtzIHVwc3RyZWFtCitmZm1wZWcgZnVuY3Rpb25hbGl0eSBmb3IgdW5rbm93 biByZWFzb25zLgorCitSPXNhbmRlcnNkCisKK0ZpeGVkOiAxMDYyMDM3CitDaGFuZ2UtSWQ6IEky NTMwMTE4NDNkZWU0ZGQ2YThjOTU4YjE0OTkwYWQ4MzZhOWYxZGNhCitSZXZpZXdlZC1vbjogaHR0 cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzIy NjgyMjEKK0F1dG8tU3VibWl0OiBEYWxlIEN1cnRpcyA8ZGFsZWN1cnRpc0BjaHJvbWl1bS5vcmc+ CitSZXZpZXdlZC1ieTogRGFuIFNhbmRlcnMgPHNhbmRlcnNkQGNocm9taXVtLm9yZz4KK0NvbW1p dC1RdWV1ZTogRGFsZSBDdXJ0aXMgPGRhbGVjdXJ0aXNAY2hyb21pdW0ub3JnPgorQ3ItQ29tbWl0 LVBvc2l0aW9uOiByZWZzL2hlYWRzL21hc3RlckB7Izc4Mjc5Mn0KKy0tLQorIG1lZGlhL2ZpbHRl cnMvZmZtcGVnX2RlbXV4ZXIuY2MgfCA2ICsrKysrKworIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2Vy dGlvbnMoKykKKworZGlmZiAtLWdpdCBhL21lZGlhL2ZpbHRlcnMvZmZtcGVnX2RlbXV4ZXIuY2Mg Yi9tZWRpYS9maWx0ZXJzL2ZmbXBlZ19kZW11eGVyLmNjCitpbmRleCAwMTI2NmUxYTA3Mi4uYTdl ZDU0MmI1ZmMgMTAwNjQ0CistLS0gbWVkaWEvZmlsdGVycy9mZm1wZWdfZGVtdXhlci5jYworKysr IG1lZGlhL2ZpbHRlcnMvZmZtcGVnX2RlbXV4ZXIuY2MKK0BAIC0xNTIyLDYgKzE1MjIsMTIgQEAg dm9pZCBGRm1wZWdEZW11eGVyOjpPbkZpbmRTdHJlYW1JbmZvRG9uZShpbnQgcmVzdWx0KSB7Cisg ICBpZiAoZ2x1ZV8tPmNvbnRhaW5lcigpID09IGNvbnRhaW5lcl9uYW1lczo6Q09OVEFJTkVSX0FW SSkKKyAgICAgZm9ybWF0X2NvbnRleHQtPmZsYWdzIHw9IEFWRk1UX0ZMQUdfR0VOUFRTOworIAor KyAgLy8gRkZtcGVnIHdpbGwgaW5jb3JyZWN0bHkgYWRqdXN0IHRoZSBzdGFydCB0aW1lIG9mIE1Q MyBmaWxlcyBpbnRvIHRoZSBmdXR1cmUKKysgIC8vIGJhc2VkIG9uIGRpc2NhcmQgc2FtcGxlcy4g V2Ugd2VyZSB1bmFibGUgdG8gZml4IHRoaXMgdXBzdHJlYW0gd2l0aG91dAorKyAgLy8gYnJlYWtp bmcgZmZtcGVnIGZ1bmN0aW9uYWxpdHkuIGh0dHBzOi8vY3JidWcuY29tLzEwNjIwMzcKKysgIGlm IChnbHVlXy0+Y29udGFpbmVyKCkgPT0gY29udGFpbmVyX25hbWVzOjpDT05UQUlORVJfTVAzKQor KyAgICBzdGFydF90aW1lXyA9IGJhc2U6OlRpbWVEZWx0YSgpOworKworICAgLy8gRm9yIHRlc3Rp bmcgcHVycG9zZXMsIGRvbid0IG92ZXJ3cml0ZSB0aGUgdGltZWxpbmUgb2Zmc2V0IGlmIHNldCBh bHJlYWR5LgorICAgaWYgKHRpbWVsaW5lX29mZnNldF8uaXNfbnVsbCgpKSB7CisgICAgIHRpbWVs aW5lX29mZnNldF8gPQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKaW5kZXggYTdmZWQ5NDFlZTEuLjUyOTUyMjRkYTgzIDEw MDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2hyb21p dW0vdGVtcGxhdGUKQEAgLTEsMTUgKzEsMTUgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Nocm9t aXVtJwogcGtnbmFtZT1jaHJvbWl1bQogIyBTZWUgaHR0cDovL3d3dy5jaHJvbWl1bS5vcmcvZGV2 ZWxvcGVycy9jYWxlbmRhciBmb3IgdGhlIGxhdGVzdCB2ZXJzaW9uCi12ZXJzaW9uPTgzLjAuNDEw My4xMDYKLXJldmlzaW9uPTIKK3ZlcnNpb249ODMuMC40MTAzLjExNgorcmV2aXNpb249MQogYXJj aHM9Imk2ODYgeDg2XzY0KiIKIHNob3J0X2Rlc2M9Ikdvb2dsZSdzIGF0dGVtcHQgYXQgY3JlYXRp bmcgYSBzYWZlciwgZmFzdGVyLCBhbmQgbW9yZSBzdGFibGUgYnJvd3NlciIKIG1haW50YWluZXI9 IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJCU0QtMy1DbGF1 c2UiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cuY2hyb21pdW0ub3JnLyIKIGRpc3RmaWxlcz0iaHR0 cHM6Ly9jb21tb25kYXRhc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9jaHJvbWl1bS1icm93c2VyLW9m ZmljaWFsLyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1jZmQxNTNhMmUx MGIwYmIwZmIzYjdlNmJlNTQzYWVmMDkxNTE4MWY1ZmJkYmVhODkzZDA4NDY1YWZkMDk3ZTJmCitj aGVja3N1bT1iYjBjN2U4ZGZlZTlmM2E1ZTMwZWNhN2YzNGZjOWYyMWNhZWZhODJhODZjMDU4YzU1 MmY1MmIxYWUyZGEyYWMzCiAKIGxpYjMyZGlzYWJsZWQ9eWVzCiBub2RlYnVnPXllcwpAQCAtMzYs NyArMzYsNyBAQCBtYWtlZGVwZW5kcz0ibGlicG5nLWRldmVsIGd0aystZGV2ZWwgZ3RrKzMtZGV2 ZWwgbnNzLWRldmVsIHBjaXV0aWxzLWRldmVsCiAgZmZtcGVnLWRldmVsIGxpYnZhLWRldmVsIHB5 dGhvbi1zZXR1cHRvb2xzICQodm9wdF9pZiBzbmRpbyBzbmRpby1kZXZlbCkiCiBkZXBlbmRzPSJs aWJleGlmIGh3aWRzIGRlc2t0b3AtZmlsZS11dGlscyBoaWNvbG9yLWljb24tdGhlbWUgeGRnLXV0 aWxzIgogCi1idWlsZF9vcHRpb25zX2RlZmF1bHQ9ImNsYW5nIHB1bHNlYXVkaW8iCitidWlsZF9v cHRpb25zX2RlZmF1bHQ9ImNsYW5nIHB1bHNlYXVkaW8gdmFhcGkiCiAKIGNhc2UgIiR7WEJQU19U QVJHRVRfTUFDSElORX0iIGluCiAJeDg2XzY0fGk2ODYpIGJ1aWxkX29wdGlvbnNfZGVmYXVsdCs9 IiBqc19vcHRpbWl6ZSIgOzsKCkZyb20gMTcxNjlmZTk4NmNlMDU5MTkyYjBmNWZmNmM4NjA3ZDcz ODQ0MDE0YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGV0ZXIgQnVpIDxwYnVpQGdp dGh1Yi5ieDYxMi5zcGFjZT4KRGF0ZTogRnJpLCAxMCBKdWwgMjAyMCAxMjo0NDoyMyAtMDQwMApT dWJqZWN0OiBbUEFUQ0ggMy8zXSBjaHJvbWl1bS13aWRldmluZTogdXBkYXRlIHRvIDgzLjAuNDEw My4xMTYuCgpbY2kgc2tpcF0KLS0tCiBzcmNwa2dzL2Nocm9taXVtLXdpZGV2aW5lL3RlbXBsYXRl IHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0td2lkZXZpbmUvdGVtcGxhdGUgYi9zcmNw a2dzL2Nocm9taXVtLXdpZGV2aW5lL3RlbXBsYXRlCmluZGV4IDliMTE5ZDkwNTQ4Li44YTBlNWI3 MGVjNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS13aWRldmluZS90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2Nocm9taXVtLXdpZGV2aW5lL3RlbXBsYXRlCkBAIC02LDcgKzYsNyBAQCBfY2hy b21lVmVyc2lvbj0iY3VycmVudCIKIF9jaGFubmVsPSJzdGFibGUiCiAKIHBrZ25hbWU9Y2hyb21p dW0td2lkZXZpbmUKLXZlcnNpb249ODMuMC40MTAzLjEwNgordmVyc2lvbj04My4wLjQxMDMuMTE2 CiByZXZpc2lvbj0xCiBhcmNocz0ieDg2XzY0IgogY3JlYXRlX3dya3NyYz15ZXMKQEAgLTE3LDcg KzE3LDcgQEAgZGVwZW5kcz0iY2hyb21pdW0gYmludXRpbHMgeHoiCiBob21lcGFnZT0iaHR0cHM6 Ly93d3cuZ29vZ2xlLmNvbS9jaHJvbWUiCiByZXBvc2l0b3J5PW5vbmZyZWUKIGRpc3RmaWxlcz0i aHR0cHM6Ly9kbC5nb29nbGUuY29tL2xpbnV4L2RpcmVjdC9nb29nbGUtY2hyb21lLSR7X2NoYW5u ZWx9XyR7X2Nocm9tZVZlcnNpb259X2FtZDY0LmRlYiIKLWNoZWNrc3VtPWM2ZGUzZTRiZDZiZWY0 OTNlYmMxNjI2YzQ0OTIyOTg0ODgxZDY1YmQyZmU2N2UwNTM0ZmEzMzA2N2NjOTEyMDIKK2NoZWNr c3VtPTg2MWNjOWMwY2E4NDcxZjg3NWUzNDEzYTgyNTVjMjc3YzA3NGQxYTI4MDY0MDAyZmI2OTQ2 OTUwOTZkOGZlYmQKIAogZG9fZXh0cmFjdCgpIHsKIAk6Cg== --===============3096205040461383296==--