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 3801 invoked from network); 22 Mar 2023 22:54:58 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 22 Mar 2023 22:54:58 -0000 Content-Type: multipart/mixed; boundary="===============6147276672105208542==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_draft=3A_ffmpeg5_split?= To: ml@inbox.vuxu.org From: zlice Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 22 Mar 2023 23:54:58 +0100 List-Id: Message-ID: <20230322225458.1Njshr3cTltFhFX15OpdR7eRqLBz9CBeKqBQWbn_9qk@z> GitHub notification mails are now in MIME to allow UTF8. --===============6147276672105208542== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgemxpY2UgYWdhaW5zdCBtYXN0ZXIg b24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL3psaWNl L3ZvaWQtcGFja2FnZXMgZmZtcGVnNS1zcGxpdApodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51 eC92b2lkLXBhY2thZ2VzL3B1bGwvNDI5MzYKCmRyYWZ0OiBmZm1wZWc1IHNwbGl0CltjaSBza2lw XQ0KDQojIyMjIFRlc3RpbmcgdGhlIGNoYW5nZXMNCg0KLSBJIHRlc3RlZCB0aGUgY2hhbmdlcyBp biB0aGlzIFBSOiAqKk5PKioNCg0KSSBoYXZlIGNvbmZsaWN0aW5nIGNoYW5nZXMgZnJvbSBbaW50 ZWwgcGFja2FnZXNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMv cHVsbC80MTEzMikgYW5kIGRvbid0IHdhbnQgdG8gbWVzcyB3aXRoIG15IHN5c3RlbS4gSWYgaXQg bWFrZXMgc2Vuc2UgSSdsbCBtb3ZlIHRoZXNlIGNoYW5nZXMgaGVyZSBsaWtlIEkgb3JpZ2luYWxs eSBpbnRlbmRlZC4gZmZtcGVnNSBtYWtlcyBJbnRlbCB2YWFwaSBlYXNpZXIgYW5kIG9ubHkgcmVs eSBvbiBvbmVWUEwgaWlyYy4NCg0KSSBkbyBub3QgdXNlIDgwJSsgb2YgdGhlc2UgcGFja2FnZXMu IEkgbWF5IGJlIGFibGUgdG8gcnVuIEJsZW5kZXIsIGFuZCBJIHVzZSBzaG90Y3V0Lg0KDQoNCiMj IyMgTmV3IHBhY2thZ2UNCg0KLSBUaGlzIG5ldyBwYWNrYWdlIGNvbmZvcm1zIHRvIHRoZSBbcGFj a2FnZSByZXF1aXJlbWVudHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI3BhY2thZ2UtcmVxdWlyZW1lbnRzKTog KipZRVMqKg0KDQoNCg0KIyMjIyBMb2NhbCBidWlsZCB0ZXN0aW5nDQoNCi0gSSBidWlsdCB0aGlz IFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsICoqeDg2XzY0KioNCg0KDQoj IyMjIERpc2N1c3Npb24NCg0KQ29udGludWF0aW9uIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lk LWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zNjMxNSAtIHRoeCB0aWJlcXVhZG9yaWFuIDopDQoN Ckl0IHdhcyBzdWdnZXN0ZWQgdG8gbWFrZSBgZmZtcGVnYCB2ZXJzaW9uIDUgYW5kICdjb3B5JyAo Y3JlYXRlIGEgbmV3PykgYGZmbXBlZzRgIHBhY2thZ2UsIGFuZCB0aGF0IHNlZW1zIHRvIHdvcmsg d2VsbC4NCg0KQXMgc3RhdGVkLCBJIGhhdmVuJ3QgYW5kIHByb2JhYmx5IHdvbid0IHRlc3QgbW9z dCBvZiB0aGVzZSBwYWNrYWdlcywgaG9waW5nIGZvciBvdGhlcnMgdG8gdm9pY2UgaW4gb24gd2hh dCdzIHdvcmtpbmcuIA0KDQpBIGZldyBtb250aHMgYmFjayAoYW5kIG5vdykgYWZhaWN0IGV2ZXJ5 dGhpbmcgaGFzIGJlZW4gY29tcGlsaW5nIHdpdGggZmZtcGVnNSBleGNlcHQgZm9yIHRoZSBmZXcg cHJvYmxlbSBwYWNrYWdlcyBzdGlsbCB1c2luZyBmZm1wZWc0IChiZWxvdykuIENhbiBhZGQgdG8g dGhlIGZmbXBlZzQgbGlzdCBhcyBhIGluY29tcGF0aWJsZSBwYWNrYWdlIGlzIGZvdW5kLg0KDQpg bGliYXZyZXNhbXBsZWAgaXMgZGVwcmVjYXRlZCwgYnV0IG1hcmtlZCBhcyBhIGRlcGVuZGVuY3kg d2hlbiB0cnlpbmcgdG8gYnVpbGQgb3RoZXIgcGFja2FnZXMgYW5kIGluc3RhbGwgYGZmbXBlZ2Ao NSkuIEkgdGhpbmsgdGhlIHJpZ2h0IHdheSB0byBoYW5kbGUgdGhpcyBpcyBtYWtlIGEgbWV0YSBw YWNrYWdlIGFuZCB0aGUgYWRkIHRvIHJlbW92YWxzPw0KDQojIyMjIyBDb21taXQgbmFtaW5nIC8g bWlzYw0KDQpgZmZwbWVnNGAgaXNuJ3QgIm5ldyIsIG5vdCBzdXJlIHdoYXQgdGhlIGNvbW1pdCBt ZXNzYWdlcyBzaG91bGQgYmUgcmVhbGx5IGZvciB0aGUgNCBhbmQgNSBzcGxpdC4NCg0KTm90IHN1 cmUgaG93IGNvbW1pdHMgc2hvdWxkIGJlIHNlcGFyYXRlZC4gZmZtcGVnNC81IGNvdWxkIGJlIHNw bGl0IGFuZCBhbGwgdGhlIHJldiBidW1wcyBpbmNsdWRlZCAob3RoZXJ3aXNlIGl0J3Mgb3ZlciAx MDAgY29tbWl0cykuIG9wZW5jdiB3YXMgdXBkYXRlZCB0byA0LjcuMCBmb3IgZmZtcGVnNSBzbyBJ IGZpZ3VyZWQgdGhhdCBzaG91bGQgYmUgYSBzZXBhcmF0ZSBjb21taXQ/DQoNCkkgd291bGRuJ3Qg bWluZCBtb3ZpbmcgdGhlIFtpbnRlbCBwYWNrYWdlc10oaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQt bGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQxMTMyKSBpbnRvIGhlcmUgdW5kZXIgYW5vdGhlciBj b21taXQuIFRoYXQganVzdCBnb3QgYSBwb3RlbnRpYWwgZml4IHRoYXQgbWF5IGFsbG93IG1lcmdp bmcgYnV0IEkgaW1hZ2luZSBtb3ZpbmcgdG8gZmZtcGVnNSB3aWxsIGNoYW5nZSBhbmQgZXZlbiBy ZW1vdmUgc29tZSBvZiB0aG9zZSBwYWNrYWdlcy4gKEkgd29uJ3QgcmVhbGx5IHRlc3QgdGhlc2Ug Y2hhbmdlcyB3aXRob3V0IEludGVsIHZhYXBpIGVpdGhlciB3YXkuKQ0KDQpNYWludGFpbmVyIGZv ciBwcmV2aW91cyBmZm1wZWcoNCkgd2FzIG9ycGhhbmVkLCBJIGNhbiBwdXQgbXkgbmFtZSBpbiB0 aGVyZSBpZiB0aGF0IG1hdHRlcnMsIHRob3VnaCBJIGRvbid0IGV4YWN0bHkgc2VlIG15c2VsZiBr ZWVwaW5nIHVwIG9uIGZmbXBlZy4NCg0KDQojIyMjIyBzdGlsbCBmZm1wZWc0DQoNCi0gYHZsY2Ag KHZsYzQgd2lsbCBzdXBwb3J0IGZmbXBlZzUsIHRoZXJlJ3MgYSBwYXRjaCB0byBidWlsZCAzLngg d2l0aCBmZm1wZWc1IGJ1dCBpdCB3aWxsIGxhY2sgdmFhcGkpDQotIGBvc2dgIChPcGVuU2NlbmVH cmFwaCBwbHVzIGB4aW5lLWxpYmApDQotIGB5dG1kbGAgPyBub3Qgc3VyZSBidXQgaXQgdXNlcyBg cHl0aG9uMy1mZm1wZWctcHl0aG9uYCB3aGljaCBiZWluZyA2LTh5ciBvbGQgSSBpbWFnaW5lIGlz IGZmbXBlZzQNCgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQyOTM2LnBhdGNoIGlzIGF0dGFjaGVk --===============6147276672105208542== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-ffmpeg5-split-42936.patch" RnJvbSBjNWE4YzA5NmUyNzU0ZTUxODRjODNhZmViMjU2NjA5NjNjMzE0OWI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB6bGljZSA8emxpY2U1NTVAZ21haWwuY29tPgpEYXRlOiBUdWUs IDIxIE1hciAyMDIzIDE4OjU4OjMxIC0wNDAwClN1YmplY3Q6IFtQQVRDSCAxLzRdIGZmbXBlZ19z cGxpdAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMjYgKy0KIHNyY3BrZ3MvZmZtcGVnL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICB8 IDE3NiArKysrKy0tLS0KIHNyY3BrZ3MvZmZtcGVnNC1kZXZlbCAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMSArCiBzcmNwa2dzL2ZmbXBlZzQvZmZtcGVnNCAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDEgKwogLi4uL3tmZm1wZWcgPT4gZmZtcGVnNH0vZmlsZXMvYWx0aXZlYy5wYXRjaCAg IHwgICAwCiAuLi4vcGF0Y2hlcy9hcm12NXRlbC1mbG9hdGluZy1wb2ludC5wYXRjaCAgICAgfCAg IDAKIC4uLi93b3JrYXJvdW5kLW1lc2EtcmVhZGVvbi12YWFwaS1idWcucGF0Y2ggICB8ICAgMAog c3JjcGtncy9mZm1wZWc0L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgMjU0ICsrKysr KysrKysrKysKIC4uLkZpeC1pbmZpbml0ZS1sb29wLWluLU1lbnUtY3ljbGVpdGVtcy5wYXRjaCB8 ICA2MCArKysKIC4uLjZjNGQzMGY1YjI4OWM0MjljNWNhODhkODAwMjAwZGI0ZmM0Zi5wYXRjaCB8 ICAyMiAtLQogLi4uL01pbk92ZXJsYXBQbGFjZW1lbnQuY2NfaW1wcm92ZS5wYXRjaCAgICAgIHwg IDI5ICsrCiBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9jZW50ZXIucGF0Y2ggICAgICAgICAgfCAz MDcgKysrKysrKysrKysrKysrCiBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9jb250YWluZXJfbG9j a3MucGF0Y2ggfCAzMjUgKysrKysrKysrKysrKysrKwogLi4uL3BhdGNoZXMvY29udGFpbmVyX3Jl bGF0aXZlX3JlbGF0aXZlLnBhdGNoIHwgIDE1ICsKIHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2Zs dXhfaW1wcm92ZS5wYXRjaCAgICB8IDIwNSArKysrKysrKysrCiBzcmNwa2dzL2ZsdXhib3gvcGF0 Y2hlcy9mbHV4X292ZXJzaXplLnBhdGNoICAgfCAgMjQgKysKIC4uLi9mbHV4Ym94L3BhdGNoZXMv Zm9jdXNfY2xvc2VfbWVudS5wYXRjaCAgICB8ICAxNyArCiBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hl cy9zbGl0X3JhaXNlLnBhdGNoICAgICAgfCAgMTYgKwogc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMv dG9vbGJhcl9yZWRvLnBhdGNoICAgIHwgMjI4ICsrKysrKysrKysrKwogLi4uL2ZsdXhib3gvcGF0 Y2hlcy90cmVtb3JfZ3JhYm9pZF9oZWxsLnBhdGNoIHwgMzUwICsrKysrKysrKysrKysrKysrKwog Li4uL3BhdGNoZXMvdW5jbHV0dGVyX2ZpeF93b3Jrc3BhY2VjbWQucGF0Y2ggIHwgIDY1ICsrKysK IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3pvcl9sb29wcy5wYXRjaCAgICAgICB8ICA4NyArKysr Kwogc3JjcGtncy9mbHV4Ym94L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgIDQ1ICsr LQogc3JjcGtncy9saWJhdmNvZGVjNCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsK IHNyY3BrZ3MvbGliYXZkZXZpY2U0ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBz cmNwa2dzL2xpYmF2ZmlsdGVyNCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3Jj cGtncy9saWJhdmZvcm1hdDQgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyY3Br Z3MvbGliYXZyZXNhbXBsZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtn cy9saWJhdnJlc2FtcGxlNCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyY3BrZ3Mv bGliYXZ1dGlsNCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dzL2xp YnBvc3Rwcm9jNCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjcGtncy9saWJz d3Jlc2FtcGxlNCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyY3BrZ3MvbGlic3dz Y2FsZTQgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dzL21lc2EvdGVt cGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzUgKy0KIDM0IGZpbGVzIGNoYW5nZWQs IDIxNjcgaW5zZXJ0aW9ucygrKSwgMTMyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTIwMDAw IHNyY3BrZ3MvZmZtcGVnNC1kZXZlbAogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvZmZtcGVn NC9mZm1wZWc0CiByZW5hbWUgc3JjcGtncy97ZmZtcGVnID0+IGZmbXBlZzR9L2ZpbGVzL2FsdGl2 ZWMucGF0Y2ggKDEwMCUpCiByZW5hbWUgc3JjcGtncy97ZmZtcGVnID0+IGZmbXBlZzR9L3BhdGNo ZXMvYXJtdjV0ZWwtZmxvYXRpbmctcG9pbnQucGF0Y2ggKDEwMCUpCiByZW5hbWUgc3JjcGtncy97 ZmZtcGVnID0+IGZmbXBlZzR9L3BhdGNoZXMvd29ya2Fyb3VuZC1tZXNhLXJlYWRlb24tdmFhcGkt YnVnLnBhdGNoICgxMDAlKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmZtcGVnNC90ZW1w bGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzLzAwMDEtRml4 LWluZmluaXRlLWxvb3AtaW4tTWVudS1jeWNsZWl0ZW1zLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvMjI4NjZjNGQzMGY1YjI4OWM0MjljNWNhODhkODAw MjAwZGI0ZmM0Zi5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRj aGVzL01pbk92ZXJsYXBQbGFjZW1lbnQuY2NfaW1wcm92ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2NlbnRlci5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2NvbnRhaW5lcl9sb2Nrcy5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2NvbnRhaW5lcl9yZWxhdGl2ZV9y ZWxhdGl2ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVz L2ZsdXhfaW1wcm92ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJveC9w YXRjaGVzL2ZsdXhfb3ZlcnNpemUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Zs dXhib3gvcGF0Y2hlcy9mb2N1c19jbG9zZV9tZW51LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvc2xpdF9yYWlzZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3Rvb2xiYXJfcmVkby5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3RyZW1vcl9ncmFib2lkX2hlbGwucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy91bmNsdXR0ZXJf Zml4X3dvcmtzcGFjZWNtZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJv eC9wYXRjaGVzL3pvcl9sb29wcy5wYXRjaAogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGli YXZjb2RlYzQKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2xpYmF2ZGV2aWNlNAogY3JlYXRl IG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGliYXZmaWx0ZXI0CiBjcmVhdGUgbW9kZSAxMjAwMDAgc3Jj cGtncy9saWJhdmZvcm1hdDQKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2xpYmF2cmVzYW1w bGU0CiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9saWJhdnV0aWw0CiBjcmVhdGUgbW9kZSAx MjAwMDAgc3JjcGtncy9saWJwb3N0cHJvYzQKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2xp YnN3cmVzYW1wbGU0CiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9saWJzd3NjYWxlNAoKZGlm ZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGY5NzJlZWJjNGQz YS4uYWFiNjZjODNmNGIzIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9z aGxpYnMKQEAgLTM4OSwxNSArMzg5LDIzIEBAIGxpYmlkM3RhZy5zby4wIGxpYmlkM3RhZy0wLjE1 LjFiXzEKIGxpYmdpZi5zby43IGdpZmxpYi01LjEuMF8xCiBsaWJJbWxpYjIuc28uMSBpbWxpYjIt MS40LjJfMQogbGlibXAzbGFtZS5zby4wIGxhbWUtMy45OC4yXzEKLWxpYmF2ZGV2aWNlLnNvLjU4 IGxpYmF2ZGV2aWNlLTQuMF8xCi1saWJhdmZvcm1hdC5zby41OCBsaWJhdmZvcm1hdC00LjBfMQot bGlic3dzY2FsZS5zby41IGxpYnN3c2NhbGUtNC4wXzEKLWxpYnN3cmVzYW1wbGUuc28uMyBsaWJz d3Jlc2FtcGxlLTQuMF8xCi1saWJhdnJlc2FtcGxlLnNvLjQgbGliYXZyZXNhbXBsZS00LjBfMQot bGlicG9zdHByb2Muc28uNTUgbGlicG9zdHByb2MtNC4wXzEKLWxpYmF2Y29kZWMuc28uNTggbGli YXZjb2RlYy00LjBfMQotbGliYXZ1dGlsLnNvLjU2IGxpYmF2dXRpbC00LjBfMQotbGliYXZmaWx0 ZXIuc28uNyBsaWJhdmZpbHRlci00LjBfMQorbGliYXZkZXZpY2Uuc28uNTkgbGliYXZkZXZpY2Ut NS4xLjJfMQorbGliYXZmb3JtYXQuc28uNTkgbGliYXZmb3JtYXQtNS4xLjJfMQorbGlic3dzY2Fs ZS5zby42IGxpYnN3c2NhbGUtNS4xLjJfMQorbGlic3dyZXNhbXBsZS5zby40IGxpYnN3cmVzYW1w bGUtNS4xLjJfMQorbGlicG9zdHByb2Muc28uNTYgbGlicG9zdHByb2MtNS4xLjJfMQorbGliYXZj b2RlYy5zby41OSBsaWJhdmNvZGVjLTUuMS4yXzEKK2xpYmF2dXRpbC5zby41NyBsaWJhdnV0aWwt NS4xLjJfMQorbGliYXZmaWx0ZXIuc28uOCBsaWJhdmZpbHRlci01LjEuMl8xCitsaWJhdmRldmlj ZS5zby41OCBsaWJhdmRldmljZTQtNC4wXzEKK2xpYmF2Zm9ybWF0LnNvLjU4IGxpYmF2Zm9ybWF0 NC00LjBfMQorbGlic3dzY2FsZS5zby41IGxpYnN3c2NhbGU0LTQuMF8xCitsaWJzd3Jlc2FtcGxl LnNvLjMgbGlic3dyZXNhbXBsZTQtNC4wXzEKK2xpYmF2cmVzYW1wbGUuc28uNCBsaWJhdnJlc2Ft cGxlNC00LjBfMQorbGlicG9zdHByb2Muc28uNTUgbGlicG9zdHByb2M0LTQuMF8xCitsaWJhdmNv ZGVjLnNvLjU4IGxpYmF2Y29kZWM0LTQuMF8xCitsaWJhdnV0aWwuc28uNTYgbGliYXZ1dGlsNC00 LjBfMQorbGliYXZmaWx0ZXIuc28uNyBsaWJhdmZpbHRlcjQtNC4wXzEKIGxpYlNETC0xLjIuc28u MCBTREwtMS4yLjE0XzEKIGxpYlNETF9pbWFnZS0xLjIuc28uMCBTRExfaW1hZ2UtMS4yLjEwXzEK IGxpYngyNjQuc28uMTU3IHgyNjQtMjAxOTA1MDcuMjI0NV8xCmRpZmYgLS1naXQgYS9zcmNwa2dz L2ZmbXBlZy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZmZtcGVnL3RlbXBsYXRlCmluZGV4IDIzYTNkNWM5 OTY3Yi4uMzg5NzhjNTA4NWEzIDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZmbXBlZy90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2ZmbXBlZy90ZW1wbGF0ZQpAQCAtMSw0MiArMSwzNiBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZmZtcGVnJwogIyBhdWRhY2l0eSBhbHNvIG5lZWRzIHRvIGJlIGJ1bXBlZCB3 aGVuIGEgbmV3IGZmbXBlZyB2ZXJzaW9uIGJ1bXBzIGxpYmF2Zm9ybWF0J3Mgc29uYW1lIQogcGtn bmFtZT1mZm1wZWcKLXZlcnNpb249NC40LjMKLXJldmlzaW9uPTIKK3ZlcnNpb249NS4xLjIKK3Jl dmlzaW9uPTEKIHNob3J0X2Rlc2M9IkRlY29kaW5nLCBlbmNvZGluZyBhbmQgc3RyZWFtaW5nIHNv ZnR3YXJlIgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxp Y2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cuZmZtcGVnLm9y ZyIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0ZGbXBlZy9G Rm1wZWcvbWFzdGVyL0NoYW5nZWxvZyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly93d3cuZmZtcGVnLm9y Zy9yZWxlYXNlcy9mZm1wZWctJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT02YzViNmMxOTVl NjE1MzQ3NjZhMGI1ZmUxNmFjYzkxOTE3MGM4ODMzNjI2MTI4MTZkMGExYzdmNGY5NDcwMDZlCitj aGVja3N1bT02MTllNzA2ZDY2MmM4NDIwODU5ODMyZGRjMjU5Y2Q0ZDQwOTZhNDhhMmNlMWVlZmQw NTJkYjllNDQwZWVmM2RjCiAKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBwZXJsIHlhc20i Ci1tYWtlZGVwZW5kcz0iemxpYi1kZXZlbCBiemlwMi1kZXZlbCBmcmVldHlwZS1kZXZlbCBhbHNh LWxpYi1kZXZlbCBsaWJYZml4ZXMtZGV2ZWwKLSBsaWJYZXh0LWRldmVsIGxpYlh2TUMtZGV2ZWwg bGlieGNiLWRldmVsIGxhbWUtZGV2ZWwgbGlidGhlb3JhLWRldmVsCi0gbGlidm9yYmlzLWRldmVs IHgyNjQtZGV2ZWwgeHZpZGNvcmUtZGV2ZWwgamFjay1kZXZlbCBTREwyLWRldmVsCi0gbGliY2Rp by1wYXJhbm9pYS1kZXZlbCBsaWJydG1wLWRldmVsIGxpYm1vZHBsdWctZGV2ZWwgZ251dGxzLWRl dmVsCi0gc3BlZXgtZGV2ZWwgY2VsdC1kZXZlbCBoYXJmYnV6ei1kZXZlbCBsaWJhc3MtZGV2ZWwg b3B1cy1kZXZlbCBvY2wtaWNkLWRldmVsCi0gbGliYnMyYi1kZXZlbCBsaWJ2aWRzdGFiLWRldmVs ICQodm9wdF9pZiBwdWxzZWF1ZGlvIHB1bHNlYXVkaW8tZGV2ZWwpCi0gJCh2b3B0X2lmIHZhYXBp IGxpYnZhLWRldmVsKSAkKHZvcHRfaWYgdmRwYXUgbGlidmRwYXUtZGV2ZWwpCi0gJCh2b3B0X2lm IHgyNjUgeDI2NS1kZXZlbCkgJCh2b3B0X2lmIHY0bDIgdjRsLXV0aWxzLWRldmVsKQotICQodm9w dF9pZiBmZGtfYWFjIGZkay1hYWMtZGV2ZWwpICQodm9wdF9pZiB2cHggbGlidnB4LWRldmVsKQot ICQodm9wdF9pZiBhb20gbGliYW9tLWRldmVsKSAkKHZvcHRfaWYgc25kaW8gc25kaW8tZGV2ZWwp Ci0gJCh2b3B0X2lmIGRhdjFkIGxpYmRhdjFkLWRldmVsKSAkKHZvcHRfaWYgemltZyB6aW1nLWRl dmVsKQotICQodm9wdF9pZiB3ZWJwIGxpYndlYnAtZGV2ZWwpICQodm9wdF9pZiBzb2ZhIGxpYm15 c29mYS1kZXZlbCkKLSAkKHZvcHRfaWYgZHJtIGxpYmRybS1kZXZlbCkgJCh2b3B0X2lmIHN2dGF2 MSBsaWJzdnQtYXYxLWRldmVsKQotICQodm9wdF9pZiBzcnQgc3J0LWRldmVsKSAkKHZvcHRfaWYg cmlzdCBsaWJyaXN0LWRldmVsKQotICQodm9wdF9pZiB2dWxrYW4gJ3Z1bGthbi1sb2FkZXIgVnVs a2FuLUhlYWRlcnMnKQotICQodm9wdF9pZiBudmVuYyBudi1jb2RlYy1oZWFkZXJzKSAkKHZvcHRf aWYgbnZkZWMgbnYtY29kZWMtaGVhZGVycykiCittYWtlZGVwZW5kcz0iY2hyb21hcHJpbnQtZGV2 ZWwgbGliZ2NyeXB0LWRldmVsIGxhZHNwYS1zZGsgbGNtczItZGV2ZWwgbGliYW9tLWRldmVsCisg YWxzYS1saWItZGV2ZWwgYnppcDItZGV2ZWwgbGlieGNiLWRldmVsIGxpYmx6bWEtZGV2ZWwgU0RM Mi1kZXZlbCBzbmRpby1kZXZlbCB6bGliLWRldmVsCisgZnJlaTByLXBsdWdpbnMgbGliY2Rpby1w YXJhbm9pYS1kZXZlbCBydWJiZXJiYW5kLWRldmVsIGxpYnZpZHN0YWItZGV2ZWwgeDI2NC1kZXZl bCB4MjY1LWRldmVsCisgeHZpZGNvcmUtZGV2ZWwgZmRrLWFhYy1kZXZlbCBsaWJ0bHMtZGV2ZWwg Z21wLWRldmVsIGxpYmFzcy1kZXZlbCBsaWJibHVyYXktZGV2ZWwgbGliY2FjYS1kZXZlbAorIGNl bHQtZGV2ZWwgY29kZWMyLWRldmVsIGxpYmRhdjFkLWRldmVsIGxpYmRybS1kZXZlbCBmb250Y29u ZmlnLWRldmVsIGZyZWV0eXBlLWRldmVsCisgZnJpYmlkaS1kZXZlbCBnbHNsYW5nLWRldmVsIFNQ SVJWLVRvb2xzLWRldmVsIGxpYmdtZS1kZXZlbCBsaWJnc20tZGV2ZWwgamFjay1kZXZlbAorIGxp Ym1vZHBsdWctZGV2ZWwgbGFtZS1kZXZlbCBsaWJvcGVuY3Y0LWRldmVsIGxpYm9wZW5qcGVnMi1k ZXZlbCBsaWJvcGVubXB0LWRldmVsIG9wdXMtZGV2ZWwKKyBsaWJwbGFjZWJvLWRldmVsIGxpYnB1 bHNlYXVkaW8gcmFiYml0bXEtYy1kZXZlbCBsaWJyaXN0LWRldmVsIGxpYnJzdmctZGV2ZWwgbGli cnRtcC1kZXZlbAorIHNuYXBweS1kZXZlbCBsaWJzb3hyLWRldmVsIHNwZWV4LWRldmVsIHNydC1k ZXZlbCBsaWJzc2gtZGV2ZWwgbGlidGhlb3JhLWRldmVsIHR3b2xhbWUtZGV2ZWwKKyBsaWJ2b3Ji aXMtZGV2ZWwgbGlidnB4Ni1kZXZlbCBsaWJ3ZWJwLWRldmVsIGxpYnhtbDItZGV2ZWwgemltZy1k ZXZlbCBsaWx2LWRldmVsIGx2MgorIGxpYm9wZW5hbC1kZXZlbCBtZXNhIG9wZW5zc2wtZGV2ZWwg dmFwb3Vyc3ludGgtZGV2ZWwgb2NsLWljZC1kZXZlbCBsaWJteXNvZmEtZGV2ZWwgdnVsa2FuLWxv YWRlcgorICQodm9wdF9pZiB2YWFwaSBsaWJ2YS1kZXZlbCkKKyAkKHZvcHRfaWYgdmRwYXUgbGli dmRwYXUtZGV2ZWwpCisgJCh2b3B0X2lmIG52ZW5jIG52LWNvZGVjLWhlYWRlcnMpCisgJCh2b3B0 X2lmIG52ZGVjIG52LWNvZGVjLWhlYWRlcnMpCisgJCh2b3B0X2lmIHN2dGF2MSBsaWJzdnQtYXYx LWRldmVsKQorIgogZGVwZW5kcz0iZmZwbGF5Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgotCi1i dWlsZF9vcHRpb25zPSJ4MjY1IHY0bDIgdmFhcGkgdmRwYXUgdnB4IGZka19hYWMgYW9tIG52ZW5j IHNuZGlvIHB1bHNlYXVkaW8KLSBkYXYxZCB6aW1nIHdlYnAgc29mYSB2dWxrYW4gZHJtIHN2dGF2 MSBzcnQgcmlzdCBudmRlYyIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0ieDI2NSB2NGwyIHZweCBh b20gc25kaW8gcHVsc2VhdWRpbyBkYXYxZCB3ZWJwIHZ1bGthbiBkcm0gc3J0IHJpc3QiCi1kZXNj X29wdGlvbl9zcnQ9IkVuYWJsZSBzdXBwb3J0IGZvciBTUlQgKFNlY3VyZSwgUmVsaWFibGUsIFRy YW5zcG9ydCkiCi1kZXNjX29wdGlvbl9yaXN0PSJFbmFibGUgc3VwcG9ydCBmb3IgUklTVCAoUmVs aWFibGUgSW50ZXJuZXQgU3RyZWFtIFRyYW5zcG9ydCkiCi1kZXNjX29wdGlvbl9zb2ZhPSJFbmFi bGUgc3VwcG9ydCBmb3IgQUVTIFNPRkEiCi1kZXNjX29wdGlvbl93ZWJwPSJFbmFibGUgc3VwcG9y dCBmb3IgV2ViUCIKK2J1aWxkX29wdGlvbnM9InZhYXBpIHZkcGF1IG52ZW5jIG52ZGVjIHN2dGF2 MSIKIAogY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJaTY4Nip8eDg2XzY0KikgYnVp bGRfb3B0aW9uc19kZWZhdWx0Kz0iIHZhYXBpIHZkcGF1IG52ZW5jIG52ZGVjIjs7CkBAIC01Miwy MiArNDYsNiBAQCBpZiBbICIkWEJQU19UQVJHRVRfTk9fQVRPTUlDOCIgXTsgdGhlbgogCW1ha2Vk ZXBlbmRzKz0iIGxpYmF0b21pYy1kZXZlbCIKIGZpCiAKLV9hcHBseV9wYXRjaCgpIHsKLQlsb2Nh bCBhcmdzPSIkMSIgcG5hbWU9IiQoYmFzZW5hbWUgJDIpIgotCi0JaWYgWyAhIC1mICIuJHtwbmFt ZX1fZG9uZSIgXTsgdGhlbgotCQlwYXRjaCAtTiAkYXJncyAtaSAkMgotCQl0b3VjaCAuJHtwbmFt ZX1fZG9uZQotCWZpCi19Ci0KLXBvc3RfcGF0Y2goKSB7Ci0JY2FzZSAiJFhCUFNfVEFSR0VUX01B Q0hJTkUiIGluCi0JCXBwYzY0bGUqKSA7OwotCQlwcGMqKSBfYXBwbHlfcGF0Y2ggLXAxICR7RklM RVNESVJ9L2FsdGl2ZWMucGF0Y2ggOzsKLQllc2FjCi19Ci0KIGRvX2NvbmZpZ3VyZSgpIHsKIAkj IEZpeCBnY2Mgb24geDg2XzY0LW11c2wgb25seQogCWlmIFsgIiRYQlBTX1RBUkdFVF9NQUNISU5F IiA9ICJ4ODZfNjQtbXVzbCIgXTsgdGhlbgpAQCAtOTgsMzkgKzc2LDQ3IEBAIGRvX2NvbmZpZ3Vy ZSgpIHsKIAkJX2FyZ3MrPSIgLS1leHRyYS1saWJzPS1sYXRvbWljIgogCWZpCiAKLQkuL2NvbmZp Z3VyZSAtLXByZWZpeD0vdXNyIC0tZGlzYWJsZS1kZWJ1ZyAtLWVuYWJsZS1ncGwgLS1lbmFibGUt Z251dGxzIFwKKwkuL2NvbmZpZ3VyZSBcCisJCS0tcHJlZml4PScvdXNyJyBcCisJCS0tZXh0cmEt Y2ZsYWdzPSctSS9vcHQvY3VkYS9pbmNsdWRlJyBcCisJCS0tZXh0cmEtbGRmbGFncz0nLUwvb3B0 L2N1ZGEvbGliNjQnIFwKIAkJLS1kaXNhYmxlLXN0cmlwcGluZyBcCi0JCS0tZW5hYmxlLWxpYmNk aW8gLS1lbmFibGUtdmVyc2lvbjMgLS1lbmFibGUtcnVudGltZS1jcHVkZXRlY3QgXAotCQktLWVu YWJsZS1saWJtcDNsYW1lIC0tZW5hYmxlLWxpYnZvcmJpcyAtLWVuYWJsZS1saWJ4dmlkIFwKLQkJ LS1lbmFibGUtbGlieDI2NCAkKHZvcHRfZW5hYmxlIHZweCBsaWJ2cHgpIC0tZW5hYmxlLWxpYnRo ZW9yYSBcCi0JCS0tZW5hYmxlLXNoYXJlZCAtLWVuYWJsZS1zdGF0aWMgLS1lbmFibGUtbGlieGNi IFwKLQkJJCh2b3B0X2VuYWJsZSBwdWxzZWF1ZGlvIGxpYnB1bHNlKSAtLWVuYWJsZS1saWJmcmVl dHlwZSAtLWVuYWJsZS1saWJtb2RwbHVnIFwKLQkJLS1lbmFibGUtbGlic3BlZXggLS1lbmFibGUt bGliY2VsdCAtLWVuYWJsZS1saWJhc3MgXAotCQktLWVuYWJsZS1saWJvcHVzIC0tZW5hYmxlLWxp YnJ0bXAgLS1lbmFibGUtbGliamFjayBcCi0JCSQodm9wdF9pZiBmZGtfYWFjICctLWVuYWJsZS1u b25mcmVlIC0tZW5hYmxlLWxpYmZkay1hYWMnKSBcCi0JCS0tZGlzYWJsZS1saWJvcGVuY29yZV9h bXJuYiAtLWRpc2FibGUtbGlib3BlbmNvcmVfYW1yd2IgXAotCQktLWRpc2FibGUtbGlib3Blbmpw ZWcgXAotCQktLWVuYWJsZS1wb3N0cHJvYyAtLWVuYWJsZS1vcGVuY2wgJHtfYXJnc30gXAotCQkk KHZvcHRfZW5hYmxlIHgyNjUgbGlieDI2NSkgXAotCQkkKHZvcHRfZW5hYmxlIHY0bDIgbGlidjRs MikgXAotCQkkKHZvcHRfZW5hYmxlIGFvbSBsaWJhb20pICQodm9wdF9lbmFibGUgdmFhcGkpICQo dm9wdF9lbmFibGUgdmRwYXUpIFwKLQkJLS1lbmFibGUtbGliYnMyYiAtLWVuYWJsZS1hdnJlc2Ft cGxlIC0tZW5hYmxlLWxpYnZpZHN0YWIgXAotCQkkKHZvcHRfZW5hYmxlIGRhdjFkIGxpYmRhdjFk KSBcCi0JCSQodm9wdF9lbmFibGUgemltZyBsaWJ6aW1nKSBcCi0JCSQodm9wdF9lbmFibGUgd2Vi cCBsaWJ3ZWJwKSBcCi0JCSQodm9wdF9lbmFibGUgc29mYSBsaWJteXNvZmEpIFwKLQkJJCh2b3B0 X2VuYWJsZSB2dWxrYW4pIFwKLQkJJCh2b3B0X2VuYWJsZSBkcm0gbGliZHJtKSBcCi0JCSQodm9w dF9lbmFibGUgc3Z0YXYxIGxpYnN2dGF2MSkgXAotCQkkKHZvcHRfZW5hYmxlIHNydCBsaWJzcnQp IFwKLQkJJCh2b3B0X2VuYWJsZSByaXN0IGxpYnJpc3QpIFwKKwkJLS1lbmFibGUtc2hhcmVkIC0t ZW5hYmxlLXN0YXRpYyBcCisJCS0tZW5hYmxlLW5vbmZyZWUgLS1lbmFibGUtZ3BsIFwKKwkJLS1l bmFibGUtdmVyc2lvbjMgLS1lbmFibGUtbGlieGNiIFwKKwkJLS1lbmFibGUtZnJlaTByIC0tZW5h YmxlLWxpYmNkaW8gXAorCQktLWVuYWJsZS1saWJydWJiZXJiYW5kIC0tZW5hYmxlLWxpYnZpZHN0 YWIgXAorCQktLWVuYWJsZS1saWJ4MjY0IC0tZW5hYmxlLWxpYngyNjUgLS1lbmFibGUtbGlieHZp ZCBcCisJCS0tZW5hYmxlLWxpYmZkay1hYWMgLS1lbmFibGUtbGlidGxzIC0tZW5hYmxlLWdtcCBc CisJCS0tZW5hYmxlLWNocm9tYXByaW50IC0tZW5hYmxlLWdjcnlwdCAtLWVuYWJsZS1sYWRzcGEg XAorCQktLWVuYWJsZS1sY21zMiAtLWVuYWJsZS1saWJhb20gLS1lbmFibGUtbGliYXNzIFwKKwkJ LS1lbmFibGUtbGliYmx1cmF5IC0tZW5hYmxlLWxpYmNhY2EgLS1lbmFibGUtbGliY2VsdCBcCisJ CS0tZW5hYmxlLWxpYmNvZGVjMiAtLWVuYWJsZS1saWJkYXYxZCAtLWVuYWJsZS1saWJkcm0gXAor CQktLWVuYWJsZS1saWJmb250Y29uZmlnIC0tZW5hYmxlLWxpYmZyZWV0eXBlIFwKKwkJLS1lbmFi bGUtbGliZnJpYmlkaSAtLWVuYWJsZS1saWJnbHNsYW5nIFwKKwkJLS1lbmFibGUtbGliZ21lIC0t ZW5hYmxlLWxpYmdzbSBcCisJCS0tZW5hYmxlLXZhcG91cnN5bnRoIC0tZW5hYmxlLW9wZW5zc2wg LS1lbmFibGUtb3BlbmdsIFwKKwkJLS1lbmFibGUtb3BlbmFsIC0tZW5hYmxlLWx2MiAtLWVuYWJs ZS1saWJ6aW1nIFwKKwkJLS1lbmFibGUtbGlieG1sMiAtLWVuYWJsZS1saWJ3ZWJwIC0tZW5hYmxl LWxpYnZvcmJpcyBcCisJCS0tZW5hYmxlLWxpYnR3b2xhbWUgLS1lbmFibGUtbGlidGhlb3JhIC0t ZW5hYmxlLWxpYnNzaCBcCisJCS0tZW5hYmxlLWxpYnNydCAtLWVuYWJsZS1saWJzcGVleCAtLWVu YWJsZS1saWJzb3hyIFwKKwkJLS1lbmFibGUtbGlicnRtcCAtLWVuYWJsZS1saWJyc3ZnIC0tZW5h YmxlLWxpYnJpc3QgXAorCQktLWVuYWJsZS1saWJyYWJiaXRtcSAtLWVuYWJsZS1saWJwdWxzZSAt LWVuYWJsZS1saWJwbGFjZWJvIFwKKwkJLS1lbmFibGUtbGlib3B1cyAtLWVuYWJsZS1saWJvcGVu bXB0IC0tZW5hYmxlLWxpYm9wZW5qcGVnIFwKKwkJLS1lbmFibGUtbGlibXAzbGFtZSAtLWVuYWJs ZS1saWJtb2RwbHVnIC0tZW5hYmxlLWxpYmphY2sgXAorCQktLWVuYWJsZS1vcGVuY2wgLS1lbmFi bGUtbGlidnB4IC0tZW5hYmxlLWxpYm15c29mYSBcCisJCSQodm9wdF9lbmFibGUgdmFhcGkpIFwK KwkJJCh2b3B0X2VuYWJsZSB2ZHBhdSkgXAogCQkkKHZvcHRfaWYgbnZlbmMgJy0tZW5hYmxlLW52 ZW5jJykgXAotCQkkKHZvcHRfaWYgbnZkZWMgJy0tZW5hYmxlLW52ZGVjJykKKwkJJCh2b3B0X2lm IG52ZGVjICctLWVuYWJsZS1udmRlYycpIFwKKwkJJCh2b3B0X2VuYWJsZSBzdnRhdjEgbGlic3Z0 YXYxKQogfQorCiBkb19idWlsZCgpIHsKIAltYWtlICR7bWFrZWpvYnN9CiAJbWFrZSBkb2MvZmZ7 bXBlZyxwbGF5fS4xCiB9CisKIGRvX2luc3RhbGwoKSB7CiAJbWFrZSBERVNURElSPSR7REVTVERJ Un0gaW5zdGFsbCBpbnN0YWxsLW1hbgogfQpAQCAtMTQ3LDEyICsxMzMsNiBAQCBsaWJhdmRldmlj ZV9wYWNrYWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi9saWJhdmRldmljZS5zby4qIgogCX0KIH0K LWxpYmF2cmVzYW1wbGVfcGFja2FnZSgpIHsKLQlzaG9ydF9kZXNjPSJGRm1wZWcgYXVkaW8gcmVz YW1wbGluZyBsaWJyYXJ5IgotCXBrZ19pbnN0YWxsKCkgewotCQl2bW92ZSAidXNyL2xpYi9saWJh dnJlc2FtcGxlLnNvLioiCi0JfQotfQogbGliYXZmb3JtYXRfcGFja2FnZSgpIHsKIAlzaG9ydF9k ZXNjPSJGRm1wZWcgZmlsZSBmb3JtYXQgbGlicmFyeSIKIAlwa2dfaW5zdGFsbCgpIHsKQEAgLTE5 OCw5ICsxNzgsNDkgQEAgZmZtcGVnLWRldmVsX3BhY2thZ2UoKSB7CiAJCWxpYmF2ZmlsdGVyPj0k e3ZlcnNpb259XyR7cmV2aXNpb259CiAJCWxpYnBvc3Rwcm9jPj0ke3ZlcnNpb259XyR7cmV2aXNp b259CiAJCWxpYnN3c2NhbGU+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0KLQkJbGlic3dyZXNhbXBs ZT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufQotCQlsaWJhdnJlc2FtcGxlPj0ke3ZlcnNpb259XyR7 cmV2aXNpb259IgorCQlsaWJzd3Jlc2FtcGxlPj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgogCXNo b3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlhbHRlcm5hdGl2ZXM9IgorCSBmZm1w ZWctZGV2ZWw6bGliYXZjb2RlYy4zOi91c3Ivc2hhcmUvbWFuL21hbjMvbGliYXZjb2RlYzUuMwor CSBmZm1wZWctZGV2ZWw6bGliYXZkZXZpY2UuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYmF2ZGV2 aWNlNS4zCisJIGZmbXBlZy1kZXZlbDpsaWJhdmZpbHRlci4zOi91c3Ivc2hhcmUvbWFuL21hbjMv bGliYXZmaWx0ZXI1LjMKKwkgZmZtcGVnLWRldmVsOmxpYmxpYmF2Zm9ybWF0LjM6L3Vzci9zaGFy ZS9tYW4vbWFuMy9saWJhdmZvcm1hdDUuMworCSBmZm1wZWctZGV2ZWw6bGliYXZ1dGlsLjM6L3Vz ci9zaGFyZS9tYW4vbWFuMy9saWJhdnV0aWw1LjMKKwkgZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1w bGUuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYnN3cmVzYW1wbGU1LjMKKwkgZmZtcGVnLWRldmVs OmxpYnN3c2NhbGUuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYnN3c2NhbGU1LjMKKwkgZmZtcGVn LWRldmVsOmxpYmF2Y29kZWM6L3Vzci9pbmNsdWRlL2xpYmF2Y29kZWM1CisJIGZmbXBlZy1kZXZl bDpsaWJhdmRldmljZTovdXNyL2luY2x1ZGUvbGliYXZkZXZpY2U1CisJIGZmbXBlZy1kZXZlbDps aWJhdmZvcm1hdDovdXNyL2luY2x1ZGUvbGliYXZmb3JtYXQ1CisJIGZmbXBlZy1kZXZlbDpsaWJh dnV0aWw6L3Vzci9pbmNsdWRlL2xpYmF2dXRpbDUKKwkgZmZtcGVnLWRldmVsOmxpYmF2cG9zdHBy b2M6L3Vzci9pbmNsdWRlL2xpYmF2cG9zdHByb2M1CisJIGZmbXBlZy1kZXZlbDpsaWJzd3Jlc2Ft cGxlOi91c3IvaW5jbHVkZS9saWJzd3Jlc2FtcGxlNQorCSBmZm1wZWctZGV2ZWw6bGlic3djYWFs ZTovdXNyL2luY2x1ZGUvbGlic3dzY2FsZTUKKwkgZmZtcGVnLWRldmVsOmxpYmF2Y29kZWMucGM6 L3Vzci9saWIvcGtnY29uZmlnL2xpYmF2Y29kZWM1LnBjCisJIGZmbXBlZy1kZXZlbDpsaWJhdmRl dmljZS5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZkZXZpY2U1LnBjCisJIGZmbXBlZy1kZXZl bDpsaWJhdmZpbHRlci5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZmaWx0ZXI1LnBjCisJIGZm bXBlZy1kZXZlbDpsaWJhdmZvcm1hdC5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZmb3JtYXQ1 LnBjCisJIGZmbXBlZy1kZXZlbDpsaWJhdnV0aWwucGM6L3Vzci9saWIvcGtnY29uZmlnL2xpYmF2 dXRpbDUucGMKKwkgZmZtcGVnLWRldmVsOmxpYnBvc3Rwcm9jLnBjOi91c3IvbGliL3BrZ2NvbmZp Zy9saWJwb3N0cHJvYzUucGMKKwkgZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1wbGUucGM6L3Vzci9s aWIvcGtnY29uZmlnL2xpYnN3cmVzYW1wbGU1LnBjCisJIGZmbXBlZy1kZXZlbDpsaWJzd3NjYWxl LnBjOi91c3IvbGliL3BrZ2NvbmZpZy9saWJzd3NjYWxlNS5wYworCSBmZm1wZWctZGV2ZWw6bGli YXZjb2RlYy5hOi91c3IvbGliL2xpYmF2Y29kZWM1LmEKKwkgZmZtcGVnLWRldmVsOmxpYmF2Y29k ZWMuc286L3Vzci9saWIvbGliYXZjb2RlYzUuc28KKwkgZmZtcGVnLWRldmVsOmxpYmF2ZGV2aWNl LmE6L3Vzci9saWIvbGliYXZkZXZpY2U1LmEKKwkgZmZtcGVnLWRldmVsOmxpYmF2ZGV2aWNlLnNv Oi91c3IvbGliL2xpYmF2ZGV2aWNlNS5zbworCSBmZm1wZWctZGV2ZWw6bGliYXZmaWx0ZXIuYTov dXNyL2xpYi9saWJhdmZpbHRlcjUuYQorCSBmZm1wZWctZGV2ZWw6bGliYXZmaWx0ZXIuc286L3Vz ci9saWIvbGliYXZmaWx0ZXI1LnNvCisJIGZmbXBlZy1kZXZlbDpsaWJhdmZvcm1hdC5hOi91c3Iv bGliL2xpYmF2Zm9ybWF0NS5hCisJIGZmbXBlZy1kZXZlbDpsaWJhdmZvcm1hdC5zbzovdXNyL2xp Yi9saWJhdmZvcm1hdDUuc28KKwkgZmZtcGVnLWRldmVsOmxpYmF2dXRpbC5hOi91c3IvbGliL2xp YmF2dXRpbDUuYQorCSBmZm1wZWctZGV2ZWw6bGliYXZ1dGlsLnNvOi91c3IvbGliL2xpYmF2dXRp bDUuc28KKwkgZmZtcGVnLWRldmVsOmxpYnBvc3Rwcm9jLmE6L3Vzci9saWIvbGlicG9zdHByb2M1 LmEKKwkgZmZtcGVnLWRldmVsOmxpYnBvc3Rwcm9jLnNvOi91c3IvbGliL2xpYnBvc3Rwcm9jNS5z bworCSBmZm1wZWctZGV2ZWw6bGlic3dyZXNhbXBsZS5hOi91c3IvbGliL2xpYnN3cmVzYW1wbGU1 LmEKKwkgZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1wbGUuc286L3Vzci9saWIvbGlic3dyZXNhbXBs ZTUuc28KKwkgZmZtcGVnLWRldmVsOmxpYnN3c2NhbGUuYTovdXNyL2xpYi9saWJzd3NjYWxlNS5h CisJIGZmbXBlZy1kZXZlbDpsaWJzd3NjYWxlLnNvOi91c3IvbGliL2xpYnN3c2NhbGU1LnNvCisJ IGZmbXBlZy1kZXZlbDpmZm1wZWc6L3Vzci9zaGFyZS9mZm1wZWc1CisJIgogCXBrZ19pbnN0YWxs KCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwpAQCAt MjExLDcgKzIzMSw3IEBAIGZmbXBlZy1kZXZlbF9wYWNrYWdlKCkgewogCX0KIH0KIGZmcGxheV9w YWNrYWdlKCkgewotCXNob3J0X2Rlc2M9IlNpbXBsZSB2aWRlbyBwbGF5ZXIgdXNpbmcgRkZtcGVn IGFuZCBTREwyIgorCXNob3J0X2Rlc2M9IlNpbXBsZSBtZWRpYSBwbGF5ZXIgdXNpbmcgRkZtcGVn IGFuZCBTREwyIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvYmluL2ZmcGxheQogCQl2 bW92ZSAidXNyL3NoYXJlL21hbi9tYW4xL2ZmcGxheSoiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Zm bXBlZzQtZGV2ZWwgYi9zcmNwa2dzL2ZmbXBlZzQtZGV2ZWwKbmV3IGZpbGUgbW9kZSAxMjAwMDAK aW5kZXggMDAwMDAwMDAwMDAwLi44ODdmMzU0ZTdjNmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL2ZmbXBlZzQtZGV2ZWwKQEAgLTAsMCArMSBAQAorZmZtcGVnNApcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmZtcGVnNC9mZm1wZWc0IGIvc3JjcGtn cy9mZm1wZWc0L2ZmbXBlZzQKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAw Li44ODdmMzU0ZTdjNmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2ZmbXBlZzQvZmZtcGVn NApAQCAtMCwwICsxIEBACitmZm1wZWc0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9mZm1wZWcvZmlsZXMvYWx0aXZlYy5wYXRjaCBiL3NyY3BrZ3MvZmZt cGVnNC9maWxlcy9hbHRpdmVjLnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJv bSBzcmNwa2dzL2ZmbXBlZy9maWxlcy9hbHRpdmVjLnBhdGNoCnJlbmFtZSB0byBzcmNwa2dzL2Zm bXBlZzQvZmlsZXMvYWx0aXZlYy5wYXRjaApkaWZmIC0tZ2l0IGEvc3JjcGtncy9mZm1wZWcvcGF0 Y2hlcy9hcm12NXRlbC1mbG9hdGluZy1wb2ludC5wYXRjaCBiL3NyY3BrZ3MvZmZtcGVnNC9wYXRj aGVzL2FybXY1dGVsLWZsb2F0aW5nLXBvaW50LnBhdGNoCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpy ZW5hbWUgZnJvbSBzcmNwa2dzL2ZmbXBlZy9wYXRjaGVzL2FybXY1dGVsLWZsb2F0aW5nLXBvaW50 LnBhdGNoCnJlbmFtZSB0byBzcmNwa2dzL2ZmbXBlZzQvcGF0Y2hlcy9hcm12NXRlbC1mbG9hdGlu Zy1wb2ludC5wYXRjaApkaWZmIC0tZ2l0IGEvc3JjcGtncy9mZm1wZWcvcGF0Y2hlcy93b3JrYXJv dW5kLW1lc2EtcmVhZGVvbi12YWFwaS1idWcucGF0Y2ggYi9zcmNwa2dzL2ZmbXBlZzQvcGF0Y2hl cy93b3JrYXJvdW5kLW1lc2EtcmVhZGVvbi12YWFwaS1idWcucGF0Y2gKc2ltaWxhcml0eSBpbmRl eCAxMDAlCnJlbmFtZSBmcm9tIHNyY3BrZ3MvZmZtcGVnL3BhdGNoZXMvd29ya2Fyb3VuZC1tZXNh LXJlYWRlb24tdmFhcGktYnVnLnBhdGNoCnJlbmFtZSB0byBzcmNwa2dzL2ZmbXBlZzQvcGF0Y2hl cy93b3JrYXJvdW5kLW1lc2EtcmVhZGVvbi12YWFwaS1idWcucGF0Y2gKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZmZtcGVnNC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZmZtcGVnNC90ZW1wbGF0ZQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmNkOTE1NDk3OGIzZQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvZmZtcGVnNC90ZW1wbGF0ZQpAQCAtMCwwICsxLDI1NCBAQAorIyBU ZW1wbGF0ZSBmaWxlIGZvciAnZmZtcGVnNCcKKyMgYXVkYWNpdHkgYWxzbyBuZWVkcyB0byBiZSBi dW1wZWQgd2hlbiBhIG5ldyBmZm1wZWcgdmVyc2lvbiBidW1wcyBsaWJhdmZvcm1hdCdzIHNvbmFt ZSEKK3BrZ25hbWU9ZmZtcGVnNAordmVyc2lvbj00LjQuMworcmV2aXNpb249Mworc2hvcnRfZGVz Yz0iZmZtcGVnNCBsaWJyYXJpZXMgb25seSAtIERlY29kaW5nLCBlbmNvZGluZyBhbmQgc3RyZWFt aW5nIHNvZnR3YXJlIgorbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3Jn PiIKK2xpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6Ly93d3cuZmZt cGVnLm9yZyIKK2NoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0ZG bXBlZy9GRm1wZWcvbWFzdGVyL0NoYW5nZWxvZyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly93d3cuZmZt cGVnLm9yZy9yZWxlYXNlcy9mZm1wZWctJHt2ZXJzaW9ufS50YXIueHoiCitjaGVja3N1bT02YzVi NmMxOTVlNjE1MzQ3NjZhMGI1ZmUxNmFjYzkxOTE3MGM4ODMzNjI2MTI4MTZkMGExYzdmNGY5NDcw MDZlCisKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBwZXJsIHlhc20iCittYWtlZGVwZW5k cz0iemxpYi1kZXZlbCBiemlwMi1kZXZlbCBmcmVldHlwZS1kZXZlbCBhbHNhLWxpYi1kZXZlbCBs aWJYZml4ZXMtZGV2ZWwKKyBsaWJYZXh0LWRldmVsIGxpYlh2TUMtZGV2ZWwgbGlieGNiLWRldmVs IGxhbWUtZGV2ZWwgbGlidGhlb3JhLWRldmVsCisgbGlidm9yYmlzLWRldmVsIHgyNjQtZGV2ZWwg eHZpZGNvcmUtZGV2ZWwgamFjay1kZXZlbCBTREwyLWRldmVsCisgbGliY2Rpby1wYXJhbm9pYS1k ZXZlbCBsaWJydG1wLWRldmVsIGxpYm1vZHBsdWctZGV2ZWwgZ251dGxzLWRldmVsCisgc3BlZXgt ZGV2ZWwgY2VsdC1kZXZlbCBoYXJmYnV6ei1kZXZlbCBsaWJhc3MtZGV2ZWwgb3B1cy1kZXZlbCBv Y2wtaWNkLWRldmVsCisgbGliYnMyYi1kZXZlbCBsaWJ2aWRzdGFiLWRldmVsICQodm9wdF9pZiBw dWxzZWF1ZGlvIHB1bHNlYXVkaW8tZGV2ZWwpCisgJCh2b3B0X2lmIHZhYXBpIGxpYnZhLWRldmVs KSAkKHZvcHRfaWYgdmRwYXUgbGlidmRwYXUtZGV2ZWwpCisgJCh2b3B0X2lmIHgyNjUgeDI2NS1k ZXZlbCkgJCh2b3B0X2lmIHY0bDIgdjRsLXV0aWxzLWRldmVsKQorICQodm9wdF9pZiBmZGtfYWFj IGZkay1hYWMtZGV2ZWwpICQodm9wdF9pZiB2cHggbGlidnB4LWRldmVsKQorICQodm9wdF9pZiBh b20gbGliYW9tLWRldmVsKSAkKHZvcHRfaWYgc25kaW8gc25kaW8tZGV2ZWwpCisgJCh2b3B0X2lm IGRhdjFkIGxpYmRhdjFkLWRldmVsKSAkKHZvcHRfaWYgemltZyB6aW1nLWRldmVsKQorICQodm9w dF9pZiB3ZWJwIGxpYndlYnAtZGV2ZWwpICQodm9wdF9pZiBzb2ZhIGxpYm15c29mYS1kZXZlbCkK KyAkKHZvcHRfaWYgZHJtIGxpYmRybS1kZXZlbCkgJCh2b3B0X2lmIHN2dGF2MSBsaWJzdnQtYXYx LWRldmVsKQorICQodm9wdF9pZiBzcnQgc3J0LWRldmVsKSAkKHZvcHRfaWYgcmlzdCBsaWJyaXN0 LWRldmVsKQorICQodm9wdF9pZiB2dWxrYW4gJ3Z1bGthbi1sb2FkZXIgVnVsa2FuLUhlYWRlcnMn KQorICQodm9wdF9pZiBudmVuYyBudi1jb2RlYy1oZWFkZXJzKSAkKHZvcHRfaWYgbnZkZWMgbnYt Y29kZWMtaGVhZGVycykiCisKK2J1aWxkX29wdGlvbnM9IngyNjUgdjRsMiB2YWFwaSB2ZHBhdSB2 cHggZmRrX2FhYyBhb20gbnZlbmMgc25kaW8gcHVsc2VhdWRpbworIGRhdjFkIHppbWcgd2VicCBz b2ZhIHZ1bGthbiBkcm0gc3Z0YXYxIHNydCByaXN0IG52ZGVjIgorYnVpbGRfb3B0aW9uc19kZWZh dWx0PSJ4MjY1IHY0bDIgdnB4IGFvbSBzbmRpbyBwdWxzZWF1ZGlvIGRhdjFkIHdlYnAgdnVsa2Fu IGRybSBzcnQgcmlzdCIKKworZGVzY19vcHRpb25fc3J0PSJFbmFibGUgc3VwcG9ydCBmb3IgU1JU IChTZWN1cmUsIFJlbGlhYmxlLCBUcmFuc3BvcnQpIgorZGVzY19vcHRpb25fcmlzdD0iRW5hYmxl IHN1cHBvcnQgZm9yIFJJU1QgKFJlbGlhYmxlIEludGVybmV0IFN0cmVhbSBUcmFuc3BvcnQpIgor ZGVzY19vcHRpb25fc29mYT0iRW5hYmxlIHN1cHBvcnQgZm9yIEFFUyBTT0ZBIgorZGVzY19vcHRp b25fd2VicD0iRW5hYmxlIHN1cHBvcnQgZm9yIFdlYlAiCisKK2Nhc2UgIiRYQlBTX1RBUkdFVF9N QUNISU5FIiBpbgorCWk2ODYqfHg4Nl82NCopIGJ1aWxkX29wdGlvbnNfZGVmYXVsdCs9IiB2YWFw aSB2ZHBhdSBudmVuYyBudmRlYyI7OworCXBwYzY0KikgYnVpbGRfb3B0aW9uc19kZWZhdWx0Kz0i IHZhYXBpIHZkcGF1Ijs7CisJbWlwcyopIENGTEFHUz0iLW1uYW49bGVnYWN5Ijs7Citlc2FjCisK K2lmIFsgIiRYQlBTX1RBUkdFVF9XT1JEU0laRSIgIT0gIjMyIiBdOyB0aGVuCisJYnVpbGRfb3B0 aW9uc19kZWZhdWx0Kz0iIHN2dGF2MSIKK2ZpCisKK2lmIFsgIiRYQlBTX1RBUkdFVF9OT19BVE9N SUM4IiBdOyB0aGVuCisJbWFrZWRlcGVuZHMrPSIgbGliYXRvbWljLWRldmVsIgorZmkKKworX2Fw cGx5X3BhdGNoKCkgeworCWxvY2FsIGFyZ3M9IiQxIiBwbmFtZT0iJChiYXNlbmFtZSAkMikiCisK KwlpZiBbICEgLWYgIi4ke3BuYW1lfV9kb25lIiBdOyB0aGVuCisJCXBhdGNoIC1OICRhcmdzIC1p ICQyCisJCXRvdWNoIC4ke3BuYW1lfV9kb25lCisJZmkKK30KKworcG9zdF9wYXRjaCgpIHsKKwlj YXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJcHBjNjRsZSopIDs7CisJCXBwYyopIF9h cHBseV9wYXRjaCAtcDEgJHtGSUxFU0RJUn0vYWx0aXZlYy5wYXRjaCA7OworCWVzYWMKK30KKwor ZG9fY29uZmlndXJlKCkgeworCSMgRml4IGdjYyBvbiB4ODZfNjQtbXVzbCBvbmx5CisJaWYgWyAi JFhCUFNfVEFSR0VUX01BQ0hJTkUiID0gIng4Nl82NC1tdXNsIiBdOyB0aGVuCisJCXNlZCAtaSBj b25maWd1cmUgLWUgInM7X2NmbGFnc19zcGVlZD0nLU8zJztfY2ZsYWdzX3NwZWVkPSctTzInOyIK KwlmaQorCisJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJCWNhc2UgIiRYQlBTX1RBUkdF VF9NQUNISU5FIiBpbgorCQkJYXJtKikgX2FyY2g9ImFybSI7OworCQkJYWFyY2g2NCopIF9hcmNo PSJhYXJjaDY0Ijs7CisJCQltaXBzKikgX2FyY2g9Im1pcHMiOzsKKwkJCXBwYzY0KikgX2FyY2g9 InBwYzY0Ijs7CisJCQlwcGMqKSBfYXJjaD0icHBjIjs7CisJCQkqKSBfYXJjaD0iJHtYQlBTX1RB UkdFVF9NQUNISU5FJSUtbXVzbH0iOzsKKwkJZXNhYworCisJCV9hcmdzKz0iIC0tZW5hYmxlLWNy b3NzLWNvbXBpbGUKKwkJCS0tc3lzcm9vdD0kWEJQU19DUk9TU19CQVNFCisJCQktLWNyb3NzLXBy ZWZpeD0ke1hCUFNfQ1JPU1NfVFJJUExFVH0tCisJCQktLXRhcmdldC1vcz1saW51eCAtLWFyY2g9 JHtfYXJjaH0iCisJZmkKKworCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGN8 cHBjLW11c2wpIF9hcmdzKz0iIC0tZGlzYWJsZS1hbHRpdmVjIjs7CisJZXNhYworCisJaWYgWyAi JFhCUFNfVEFSR0VUX05PX0FUT01JQzgiIF07IHRoZW4KKwkJX2FyZ3MrPSIgLS1leHRyYS1saWJz PS1sYXRvbWljIgorCWZpCisKKwkuL2NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyIC0tZGlzYWJsZS1k ZWJ1ZyAtLWVuYWJsZS1ncGwgLS1lbmFibGUtZ251dGxzIFwKKwkJLS1kaXNhYmxlLXN0cmlwcGlu ZyBcCisJCS0tZW5hYmxlLWxpYmNkaW8gLS1lbmFibGUtdmVyc2lvbjMgLS1lbmFibGUtcnVudGlt ZS1jcHVkZXRlY3QgXAorCQktLWVuYWJsZS1saWJtcDNsYW1lIC0tZW5hYmxlLWxpYnZvcmJpcyAt LWVuYWJsZS1saWJ4dmlkIFwKKwkJLS1lbmFibGUtbGlieDI2NCAkKHZvcHRfZW5hYmxlIHZweCBs aWJ2cHgpIC0tZW5hYmxlLWxpYnRoZW9yYSBcCisJCS0tZW5hYmxlLXNoYXJlZCAtLWVuYWJsZS1z dGF0aWMgLS1lbmFibGUtbGlieGNiIFwKKwkJJCh2b3B0X2VuYWJsZSBwdWxzZWF1ZGlvIGxpYnB1 bHNlKSAtLWVuYWJsZS1saWJmcmVldHlwZSAtLWVuYWJsZS1saWJtb2RwbHVnIFwKKwkJLS1lbmFi bGUtbGlic3BlZXggLS1lbmFibGUtbGliY2VsdCAtLWVuYWJsZS1saWJhc3MgXAorCQktLWVuYWJs ZS1saWJvcHVzIC0tZW5hYmxlLWxpYnJ0bXAgLS1lbmFibGUtbGliamFjayBcCisJCSQodm9wdF9p ZiBmZGtfYWFjICctLWVuYWJsZS1ub25mcmVlIC0tZW5hYmxlLWxpYmZkay1hYWMnKSBcCisJCS0t ZGlzYWJsZS1saWJvcGVuY29yZV9hbXJuYiAtLWRpc2FibGUtbGlib3BlbmNvcmVfYW1yd2IgXAor CQktLWRpc2FibGUtbGlib3BlbmpwZWcgXAorCQktLWVuYWJsZS1wb3N0cHJvYyAtLWVuYWJsZS1v cGVuY2wgJHtfYXJnc30gXAorCQkkKHZvcHRfZW5hYmxlIHgyNjUgbGlieDI2NSkgXAorCQkkKHZv cHRfZW5hYmxlIHY0bDIgbGlidjRsMikgXAorCQkkKHZvcHRfZW5hYmxlIGFvbSBsaWJhb20pICQo dm9wdF9lbmFibGUgdmFhcGkpICQodm9wdF9lbmFibGUgdmRwYXUpIFwKKwkJLS1lbmFibGUtbGli YnMyYiAtLWVuYWJsZS1hdnJlc2FtcGxlIC0tZW5hYmxlLWxpYnZpZHN0YWIgXAorCQkkKHZvcHRf ZW5hYmxlIGRhdjFkIGxpYmRhdjFkKSBcCisJCSQodm9wdF9lbmFibGUgemltZyBsaWJ6aW1nKSBc CisJCSQodm9wdF9lbmFibGUgd2VicCBsaWJ3ZWJwKSBcCisJCSQodm9wdF9lbmFibGUgc29mYSBs aWJteXNvZmEpIFwKKwkJJCh2b3B0X2VuYWJsZSB2dWxrYW4pIFwKKwkJJCh2b3B0X2VuYWJsZSBk cm0gbGliZHJtKSBcCisJCSQodm9wdF9lbmFibGUgc3Z0YXYxIGxpYnN2dGF2MSkgXAorCQkkKHZv cHRfZW5hYmxlIHNydCBsaWJzcnQpIFwKKwkJJCh2b3B0X2VuYWJsZSByaXN0IGxpYnJpc3QpIFwK KwkJJCh2b3B0X2lmIG52ZW5jICctLWVuYWJsZS1udmVuYycpIFwKKwkJJCh2b3B0X2lmIG52ZGVj ICctLWVuYWJsZS1udmRlYycpCit9Citkb19idWlsZCgpIHsKKwltYWtlICR7bWFrZWpvYnN9CisJ bWFrZSBkb2MvZmZ7bXBlZyxwbGF5fS4xCit9Citkb19pbnN0YWxsKCkgeworCW1ha2UgREVTVERJ Uj0ke0RFU1RESVJ9IGluc3RhbGwgaW5zdGFsbC1tYW4KKwlybSAtcmYgJHtERVNURElSfS91c3Iv YmluCit9CisKK2xpYmF2Y29kZWM0X3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYz0iRkZtcGVnIGNv ZGVjIGxpYnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYmF2Y29k ZWMuc28uKiIKKwl9Cit9CitsaWJhdmRldmljZTRfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjPSJG Rm1wZWcgZGV2aWNlIGhhbmRsaW5nIGxpYnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3Zl ICJ1c3IvbGliL2xpYmF2ZGV2aWNlLnNvLioiCisJfQorfQorbGliYXZyZXNhbXBsZTRfcGFja2Fn ZSgpIHsKKwlzaG9ydF9kZXNjPSJGRm1wZWcgYXVkaW8gcmVzYW1wbGluZyBsaWJyYXJ5IgorCXBr Z19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi9saWJhdnJlc2FtcGxlLnNvLioiCisJfQor fQorbGliYXZmb3JtYXQ0X3BhY2thZ2UoKSB7CisJc2hvcnRfZGVzYz0iRkZtcGVnIGZpbGUgZm9y bWF0IGxpYnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYmF2Zm9y bWF0LnNvLioiCisJfQorfQorbGliYXZ1dGlsNF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2M9IkZG bXBlZyB1dGlsaXR5IGxpYnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3IvbGli L2xpYmF2dXRpbC5zby4qIgorCX0KK30KK2xpYmF2ZmlsdGVyNF9wYWNrYWdlKCkgeworCXNob3J0 X2Rlc2M9IkZGbXBlZyBhdWRpby92aWRlbyBmaWx0ZXIgbGlicmFyeSIKKwlwa2dfaW5zdGFsbCgp IHsKKwkJdm1vdmUgInVzci9saWIvbGliYXZmaWx0ZXIuc28uKiIKKwl9Cit9CitsaWJwb3N0cHJv YzRfcGFja2FnZSgpIHsKKwlzaG9ydF9kZXNjPSJGRm1wZWcgdmlkZW8gcG9zdHByb2Nlc3Npbmcg bGlicmFyeSIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgInVzci9saWIvbGlicG9zdHByb2Mu c28uKiIKKwl9Cit9CitsaWJzd3NjYWxlNF9wYWNrYWdlKCkgeworCXNob3J0X2Rlc2M9IkZGbXBl ZyB2aWRlbyBzY2FsaW5nIGxpYnJhcnkiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlICJ1c3Iv bGliL2xpYnN3c2NhbGUuc28uKiIKKwl9Cit9CitsaWJzd3Jlc2FtcGxlNF9wYWNrYWdlKCkgewor CXNob3J0X2Rlc2M9IkZGbXBlZyB2aWRlbyByZXNhbXBsaW5nIGxpYnJhcnkiCisJcGtnX2luc3Rh bGwoKSB7CisJCXZtb3ZlICJ1c3IvbGliL2xpYnN3cmVzYW1wbGUuc28uKiIKKwl9Cit9CitmZm1w ZWc0LWRldmVsX3BhY2thZ2UoKSB7CisJZGVwZW5kcz0iCisJCWxpYmF2Y29kZWM0Pj0ke3ZlcnNp b259XyR7cmV2aXNpb259CisJCWxpYmF2ZGV2aWNlND49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufQor CQlsaWJhdmZvcm1hdDQ+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0KKwkJbGliYXZ1dGlsND49JHt2 ZXJzaW9ufV8ke3JldmlzaW9ufQorCQlsaWJhdmZpbHRlcjQ+PSR7dmVyc2lvbn1fJHtyZXZpc2lv bn0KKwkJbGlicG9zdHByb2M0Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259CisJCWxpYnN3c2NhbGU0 Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259CisJCWxpYnN3cmVzYW1wbGU0Pj0ke3ZlcnNpb259XyR7 cmV2aXNpb259CisJCWxpYmF2cmVzYW1wbGU0Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXNo b3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlhbHRlcm5hdGl2ZXM9IgorCQlmZm1w ZWctZGV2ZWw6bGliYXZjb2RlYy4zOi91c3Ivc2hhcmUvbWFuL21hbjMvbGliYXZjb2RlYzQuMwor CQlmZm1wZWctZGV2ZWw6bGliYXZkZXZpY2UuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYmF2ZGV2 aWNlNC4zCisJCWZmbXBlZy1kZXZlbDpsaWJhdmZpbHRlci4zOi91c3Ivc2hhcmUvbWFuL21hbjMv bGliYXZmaWx0ZXI0LjMKKwkJZmZtcGVnLWRldmVsOmxpYmxpYmF2Zm9ybWF0LjM6L3Vzci9zaGFy ZS9tYW4vbWFuMy9saWJhdmZvcm1hdDQuMworCQlmZm1wZWctZGV2ZWw6bGliYXZ1dGlsLjM6L3Vz ci9zaGFyZS9tYW4vbWFuMy9saWJhdnV0aWw0LjMKKwkJZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1w bGUuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYnN3cmVzYW1wbGU0LjMKKwkJZmZtcGVnLWRldmVs OmxpYnN3c2NhbGUuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYnN3c2NhbGU0LjMKKwkJZmZtcGVn LWRldmVsOmxpYmF2Y29kZWM6L3Vzci9pbmNsdWRlL2xpYmF2Y29kZWM0CisJCWZmbXBlZy1kZXZl bDpsaWJhdmRldmljZTovdXNyL2luY2x1ZGUvbGliYXZkZXZpY2U0CisJCWZmbXBlZy1kZXZlbDps aWJhdmZvcm1hdDovdXNyL2luY2x1ZGUvbGliYXZmb3JtYXQ0CisJCWZmbXBlZy1kZXZlbDpsaWJh dnV0aWw6L3Vzci9pbmNsdWRlL2xpYmF2dXRpbDQKKwkJZmZtcGVnLWRldmVsOmxpYmF2cG9zdHBy b2M6L3Vzci9pbmNsdWRlL2xpYmF2cG9zdHByb2M0CisJCWZmbXBlZy1kZXZlbDpsaWJzd3Jlc2Ft cGxlOi91c3IvaW5jbHVkZS9saWJzd3Jlc2FtcGxlNAorCQlmZm1wZWctZGV2ZWw6bGlic3djYWFs ZTovdXNyL2luY2x1ZGUvbGlic3dzY2FsZTQKKwkJZmZtcGVnLWRldmVsOmxpYmF2Y29kZWMucGM6 L3Vzci9saWIvcGtnY29uZmlnL2xpYmF2Y29kZWM0LnBjCisJCWZmbXBlZy1kZXZlbDpsaWJhdmRl dmljZS5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZkZXZpY2U0LnBjCisJCWZmbXBlZy1kZXZl bDpsaWJhdmZpbHRlci5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZmaWx0ZXI0LnBjCisJCWZm bXBlZy1kZXZlbDpsaWJhdmZvcm1hdC5wYzovdXNyL2xpYi9wa2djb25maWcvbGliYXZmb3JtYXQ0 LnBjCisJCWZmbXBlZy1kZXZlbDpsaWJhdnV0aWwucGM6L3Vzci9saWIvcGtnY29uZmlnL2xpYmF2 dXRpbDQucGMKKwkJZmZtcGVnLWRldmVsOmxpYnBvc3Rwcm9jLnBjOi91c3IvbGliL3BrZ2NvbmZp Zy9saWJwb3N0cHJvYzQucGMKKwkJZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1wbGUucGM6L3Vzci9s aWIvcGtnY29uZmlnL2xpYnN3cmVzYW1wbGU0LnBjCisJCWZmbXBlZy1kZXZlbDpsaWJzd3NjYWxl LnBjOi91c3IvbGliL3BrZ2NvbmZpZy9saWJzd3NjYWxlNC5wYworCQlmZm1wZWctZGV2ZWw6bGli YXZjb2RlYy5hOi91c3IvbGliL2xpYmF2Y29kZWM0LmEKKwkJZmZtcGVnLWRldmVsOmxpYmF2Y29k ZWMuc286L3Vzci9saWIvbGliYXZjb2RlYzQuc28KKwkJZmZtcGVnLWRldmVsOmxpYmF2ZGV2aWNl LmE6L3Vzci9saWIvbGliYXZkZXZpY2U0LmEKKwkJZmZtcGVnLWRldmVsOmxpYmF2ZGV2aWNlLnNv Oi91c3IvbGliL2xpYmF2ZGV2aWNlNC5zbworCQlmZm1wZWctZGV2ZWw6bGliYXZmaWx0ZXIuYTov dXNyL2xpYi9saWJhdmZpbHRlcjQuYQorCQlmZm1wZWctZGV2ZWw6bGliYXZmaWx0ZXIuc286L3Vz ci9saWIvbGliYXZmaWx0ZXI0LnNvCisJCWZmbXBlZy1kZXZlbDpsaWJhdmZvcm1hdC5hOi91c3Iv bGliL2xpYmF2Zm9ybWF0NC5hCisJCWZmbXBlZy1kZXZlbDpsaWJhdmZvcm1hdC5zbzovdXNyL2xp Yi9saWJhdmZvcm1hdDQuc28KKwkJZmZtcGVnLWRldmVsOmxpYmF2dXRpbC5hOi91c3IvbGliL2xp YmF2dXRpbDQuYQorCQlmZm1wZWctZGV2ZWw6bGliYXZ1dGlsLnNvOi91c3IvbGliL2xpYmF2dXRp bDQuc28KKwkJZmZtcGVnLWRldmVsOmxpYnBvc3Rwcm9jLmE6L3Vzci9saWIvbGlicG9zdHByb2M0 LmEKKwkJZmZtcGVnLWRldmVsOmxpYnBvc3Rwcm9jLnNvOi91c3IvbGliL2xpYnBvc3Rwcm9jNC5z bworCQlmZm1wZWctZGV2ZWw6bGlic3dyZXNhbXBsZS5hOi91c3IvbGliL2xpYnN3cmVzYW1wbGU0 LmEKKwkJZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1wbGUuc286L3Vzci9saWIvbGlic3dyZXNhbXBs ZTQuc28KKwkJZmZtcGVnLWRldmVsOmxpYnN3c2NhbGUuYTovdXNyL2xpYi9saWJzd3NjYWxlNC5h CisJCWZmbXBlZy1kZXZlbDpsaWJzd3NjYWxlLnNvOi91c3IvbGliL2xpYnN3c2NhbGU0LnNvCisJ CWZmbXBlZy1kZXZlbDpmZm1wZWc6L3Vzci9zaGFyZS9mZm1wZWc0CisJIgorCXBrZ19pbnN0YWxs KCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZQorCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZworCQl2 bW92ZSB1c3IvbGliLyouYQorCQl2bW92ZSB1c3IvbGliLyouc28KKwkJdm1vdmUgdXNyL3NoYXJl L2ZmbXBlZy9leGFtcGxlcworCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjMKKwl9Cit9CmRpZmYg LS1naXQgYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy8wMDAxLUZpeC1pbmZpbml0ZS1sb29wLWlu LU1lbnUtY3ljbGVpdGVtcy5wYXRjaCBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzLzAwMDEtRml4 LWluZmluaXRlLWxvb3AtaW4tTWVudS1jeWNsZWl0ZW1zLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNGM0NTBmZDQ1YmZiCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvMDAwMS1GaXgtaW5maW5pdGUtbG9vcC1pbi1NZW51LWN5 Y2xlaXRlbXMucGF0Y2gKQEAgLTAsMCArMSw2MCBAQAorRnJvbSA5ZDgyMDJmMzIzMzhhM2YwOGQz ZmEzOTA1N2RjNWVlYzVkOTdiZTRlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWF0 aGlhcyBHdW16IDxha2lyYUBmbHV4Ym94Lm9yZz4KK0RhdGU6IFNhdCwgMjggTWF5IDIwMjIgMTE6 MTM6NDMgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gRml4IGluZmluaXRlIGxvb3AgaW4gTWVudTo6 Y3ljbGVpdGVtcygpCitNSU1FLVZlcnNpb246IDEuMAorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWlu OyBjaGFyc2V0PVVURi04CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1doZW4g YSBtZW51IGNvbnRhaW5zIG5vIHNlbGVjdGFibGUgaXRlbSAoZXhhbXBsZSBnaXZlbjogYSAibGlz dCIgb2YgdXNlcgorc3R5bGVzIGFuZCB0aGUgb25seSBhdmFpbGFibGUgb25lIGlzIGFscmVhZHkg c2VsZWN0ZWQpLCBjeWNsaW5nIHRocm91Z2gKK3RoZSBtZW51IHdpbGwgbGVhZCB0byBhbiBpbmZp bml0ZSBsb29wIGFuZCB0aHVzIGEgZGlzZnVuY3Rpb25hbCBmbHV4Ym94LgorCitUaGlzIGNvbW1p dCBhZGRyZXNzZXMgdGhlIGlzc3VlIGJ5IGNoZWNraW5nIGlmIHRoZXJlIGlzIGFueSBzZWxlY3Rh YmxlCitpdGVtIGJlZm9yZSBlbnRlcmluZyB0aGUgY3ljbGluZyBzdGFnZS4KKworRGlzY292ZXJl ZCBieSBTw6liYXN0aWVuIEJhbGxldFsxXS4KKworWzFdOiBodHRwczovL3NvdXJjZWZvcmdlLm5l dC9wL2ZsdXhib3gvYnVncy8xMTg1LworLS0tCisgc3JjL0ZiVGsvTWVudS5jYyB8IDIxICsrKysr KysrKysrKysrKy0tLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCA2IGRl bGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL0ZiVGsvTWVudS5jYyBiL3NyYy9GYlRrL01l bnUuY2MKK2luZGV4IDZiMmRiM2E0Li5mZjA0MGJhZSAxMDA2NDQKKy0tLSBhL3NyYy9GYlRrL01l bnUuY2MKKysrKyBiL3NyYy9GYlRrL01lbnUuY2MKK0BAIC0zMjAsMTUgKzMyMCwyNCBAQCB2b2lk IE1lbnU6Omxvd2VyKCkgeworIAorIHZvaWQgTWVudTo6Y3ljbGVJdGVtcyhib29sIHJldmVyc2Up IHsKKyAKKy0gICAgaWYgKG1faXRlbXMuZW1wdHkoKSkKKy0gICAgICAgIHJldHVybjsKKy0KKy0g ICAgaW50IG9mZnNldCA9IHJldmVyc2UgPyAtMSA6IDE7CisgICAgIGludCBsID0gbV9pdGVtcy5z aXplKCk7CistICAgIGludCBpID0gbV9hY3RpdmVfaW5kZXg7CisrICAgIGludCBpOworKyAgICBp bnQgb2Zmc2V0ID0gcmV2ZXJzZSA/IC0xIDogMTsKKyAgICAgc2l6ZV90IGlnbm9yZTsKKyAKKy0g ICAgZm9yIChpICs9IG9mZnNldDsgaSAhPSBtX2FjdGl2ZV9pbmRleDsgaSArPSBvZmZzZXQgKSB7 CisrICAgIC8vIGNoZWNrIGlmIHRoZXJlIGlzIF9hbnlfIHNlbGVjdGFibGUgaXRlbQorKyAgICBm b3IgKGkgPSAwOyBpIDwgbDsgaSsrKSB7CisrICAgICAgICBpZiAoaXNJdGVtU2VsZWN0YWJsZShp KSkgeworKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKyAgICB9CisrCisrICAgIC8v IG5vIHNlbGVjdGFibGUgaXRlbQorKyAgICBpZiAoaSA+PSBsKSB7CisrICAgICAgICByZXR1cm47 CisrICAgIH0KKysKKysgICAgZm9yIChpID0gbV9hY3RpdmVfaW5kZXggKyBvZmZzZXQ7IGkgIT0g bV9hY3RpdmVfaW5kZXg7IGkgKz0gb2Zmc2V0ICkgeworICAgICAgICAgaWYgKGkgPCAwKSB7Cisg ICAgICAgICAgICAgaSA9IGwgLSAxOworICAgICAgICAgfSBlbHNlIGlmIChpID49IGwpIHsKKy0t IAorMi4zOS4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzLzIyODY2YzRk MzBmNWIyODljNDI5YzVjYTg4ZDgwMDIwMGRiNGZjNGYucGF0Y2ggYi9zcmNwa2dzL2ZsdXhib3gv cGF0Y2hlcy8yMjg2NmM0ZDMwZjViMjg5YzQyOWM1Y2E4OGQ4MDAyMDBkYjRmYzRmLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzE1MTY0M2NiNDUuLjAwMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy8yMjg2NmM0ZDMwZjViMjg5YzQyOWM1Y2E4OGQ4 MDAyMDBkYjRmYzRmLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotRnJvbSAy Mjg2NmM0ZDMwZjViMjg5YzQyOWM1Y2E4OGQ4MDAyMDBkYjRmYzRmIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogSm9obiBTZW5uZXNhZWwgPGpvaG5AYW1pbmtpbmcuY29tPgotRGF0ZTog TW9uLCAyIE5vdiAyMDE1IDE1OjE0OjMyIC0wNjAwCi1TdWJqZWN0OiBbUEFUQ0hdIGZpeGVzIGJ1 ZyAjMTEzOAotCi0tLS0KLSB1dGlsL2ZsdXhib3gtcmVtb3RlLmNjIHwgMiArLQotIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvdXRp bC9mbHV4Ym94LXJlbW90ZS5jYyBiL3V0aWwvZmx1eGJveC1yZW1vdGUuY2MKLWluZGV4IDU5ODUy ZTZhNy4uNTA0MDE1YjUwIDEwMDY0NAotLS0tIGEvdXRpbC9mbHV4Ym94LXJlbW90ZS5jYwotKysr IGIvdXRpbC9mbHV4Ym94LXJlbW90ZS5jYwotQEAgLTczLDcgKzczLDcgQEAgaW50IG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KSB7Ci0gICAgIGlmIChzdHJjbXAoY21kLCAicmVzdWx0IikgPT0g MCkgewotICAgICAgICAgWFRleHRQcm9wZXJ0eSB0ZXh0X3Byb3A7Ci0gICAgICAgICBpZiAoWEdl dFRleHRQcm9wZXJ0eShkaXNwLCByb290LCAmdGV4dF9wcm9wLCBhdG9tX3Jlc3VsdCkgIT0gMAot LSAgICAgICAgICAgICYmIHRleHRfcHJvcC52YWx1ZSA+IDAKLSsgICAgICAgICAgICAmJiB0ZXh0 X3Byb3AudmFsdWUgIT0gMAotICAgICAgICAgICAgICYmIHRleHRfcHJvcC5uaXRlbXMgPiAwKSB7 Ci0gCi0gICAgICAgICAgICAgcHJpbnRmKCIlcyIsIHRleHRfcHJvcC52YWx1ZSk7CmRpZmYgLS1n aXQgYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9NaW5PdmVybGFwUGxhY2VtZW50LmNjX2ltcHJv dmUucGF0Y2ggYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9NaW5PdmVybGFwUGxhY2VtZW50LmNj X2ltcHJvdmUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41 YjY0YjExYWIyYTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9N aW5PdmVybGFwUGxhY2VtZW50LmNjX2ltcHJvdmUucGF0Y2gKQEAgLTAsMCArMSwyOSBAQAorLS0t IGEvc3JjL01pbk92ZXJsYXBQbGFjZW1lbnQuY2MgIDIwMTUtMDItMDggMDU6NDQ6MzQuMDAwMDAw MDAwIC0wNTAwCisrKysgYi9zcmMvTWluT3ZlcmxhcFBsYWNlbWVudC5jYyAgMjAyMi0wNy0xOCAx NToxNDo0MS4wMTIyNzUyMDAgLTA0MDAKK0BAIC0xOTYsMTkgKzE5NiwyMSBAQAorICAgICBzdGQ6 OnNldDxBcmVhPjo6aXRlcmF0b3IgbWluX3JlZyA9IGFyZWFzLmVuZCgpOworCisgICAgIHN0ZDo6 c2V0PEFyZWE+OjppdGVyYXRvciBhcl9pdCA9IGFyZWFzLmJlZ2luKCk7CisrICAgIGludCBvdmVy bGFwID0gMCwgbWluX3JpZ2h0ID0gMCwgbWluX2JvdHRvbSA9IDAsIG1heF9sZWZ0ID0gMCwgbWF4 X3RvcCA9IDA7CisrCisgICAgIGZvciAoOyBhcl9pdCAhPSBhcmVhcy5lbmQoKTsgKythcl9pdCkg eworCistICAgICAgICBpbnQgb3ZlcmxhcCA9IDA7CisrICAgICAgICBvdmVybGFwID0gMDsKKyAg ICAgICAgIGl0ID0gY29uc3Rfd2luZG93bGlzdC5yYmVnaW4oKTsKKyAgICAgICAgIGZvciAoOyBp dCAhPSBpdF9lbmQ7ICsraXQpIHsKKworICAgICAgICAgICAgIGdldFdpbmRvd0RpbWVuc2lvbnMo KigqaXQpLCBsZWZ0LCB0b3AsIHJpZ2h0LCBib3R0b20pOworCisgICAgICAgICAgICAgLy8gZ2V0 IHRoZSBjb29yZGluYXRlcyBvZiB0aGUgb3ZlcmxhcCByZWdpb24KKy0gICAgICAgICAgICBpbnQg bWluX3JpZ2h0ID0gc3RkOjptaW4ocmlnaHQsIGFyX2l0LT54ICsgd2luX3cpOworLSAgICAgICAg ICAgIGludCBtaW5fYm90dG9tID0gc3RkOjptaW4oYm90dG9tLCBhcl9pdC0+eSArIHdpbl9oKTsK Ky0gICAgICAgICAgICBpbnQgbWF4X2xlZnQgPSBzdGQ6Om1heChsZWZ0LCBhcl9pdC0+eCk7Cist ICAgICAgICAgICAgaW50IG1heF90b3AgPSBzdGQ6Om1heCh0b3AsIGFyX2l0LT55KTsKKysgICAg ICAgICAgICBtaW5fcmlnaHQgPSBzdGQ6Om1pbihyaWdodCwgYXJfaXQtPnggKyB3aW5fdyk7Cisr ICAgICAgICAgICAgbWluX2JvdHRvbSA9IHN0ZDo6bWluKGJvdHRvbSwgYXJfaXQtPnkgKyB3aW5f aCk7CisrICAgICAgICAgICAgbWF4X2xlZnQgPSBzdGQ6Om1heChsZWZ0LCBhcl9pdC0+eCk7Cisr ICAgICAgICAgICAgbWF4X3RvcCA9IHN0ZDo6bWF4KHRvcCwgYXJfaXQtPnkpOworCisgICAgICAg ICAgICAgLy8gbm93IGNvbXB1dGUgdGhlIG92ZXJsYXAgYW5kIGFkZCB0byBydW5uaW5nIHRvdGFs CisgICAgICAgICAgICAgaWYgKG1pbl9yaWdodCA+IG1heF9sZWZ0ICYmIG1pbl9ib3R0b20gPiBt YXhfdG9wKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvY2VudGVyLnBhdGNo IGIvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvY2VudGVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzllM2U0YzdmMzdlCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvY2VudGVyLnBhdGNoCkBAIC0wLDAgKzEsMzA3IEBACitG cm9tIGVjODM5OTNjMjM2ZGU5Yzk0NDJlMmZjZDMxYzA4YWFlODUyYTVhMTYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiB6bGljZSA8emxpY2U1NTVAZ21haWwuY29tPgorRGF0ZTogRnJp LCAyMiBKdWwgMjAyMiAyMToyMTozMyAtMDQwMAorU3ViamVjdDogW1BBVENIIDEvMl0gd2hpdGVz cGFjZSBjbGVhbnVwCisKKy0tLQorIGRvYy9hc2NpaWRvYy9mbHV4Ym94LnR4dCB8ICA4ICsrKyst LS0tCisgc3JjL1NjcmVlblBsYWNlbWVudC5jYyAgIHwgMTIgKysrKysrLS0tLS0tCisgc3JjL1Nj cmVlblBsYWNlbWVudC5oaCAgIHwgMTAgKysrKystLS0tLQorIDMgZmlsZXMgY2hhbmdlZCwgMTUg aW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9kb2MvYXNjaWlk b2MvZmx1eGJveC50eHQgYi9kb2MvYXNjaWlkb2MvZmx1eGJveC50eHQKK2luZGV4IDk1NjI0ODQy Li4wZTNmMjdiOSAxMDA2NDQKKy0tLSBhL2RvYy9hc2NpaWRvYy9mbHV4Ym94LnR4dAorKysrIGIv ZG9jL2FzY2lpZG9jL2ZsdXhib3gudHh0CitAQCAtNCw3ICs0LDcgQEAgSGVucmlrIEtpbm51bmVu IDxmbHV4Z2VuQGZsdXhib3gub3JnPgorIHYxLjMuNywgMDggRmVicnVhcnkgMjAxNQorIDptYW4g c291cmNlOiAgIGZsdXhib3gudHh0CisgOm1hbiB2ZXJzaW9uOiAge3JldmlzaW9ufQorLTptYW4g bWFudWFsOiAgIEZsdXhib3ggTWFudWFsICAKKys6bWFuIG1hbnVhbDogICBGbHV4Ym94IE1hbnVh bAorIAorIE5BTUUKKyAtLS0tCitAQCAtNDc1LDcgKzQ3NSw3IEBAIEJ5IGRlZmF1bHQsIHRoaXMg bWVudSBjb250YWluczoKKyAKKyAqUmVtZW1iZXIuLi4qOjo6CisgU3BlY2lmeSB3aGljaCB3aW5k b3cgc2V0dGluZ3Mgc2hvdWxkIGJlIHN0b3JlZCBpbiB0aGUgYGFwcHMnIGZpbGUgYW5kCistcmVz dW1lZCB0aGUgbmV4dCB0aW1lIHRoaXMgd2luZG93IGlzIG9wZW5lZC4gCisrcmVzdW1lZCB0aGUg bmV4dCB0aW1lIHRoaXMgd2luZG93IGlzIG9wZW5lZC4KKyArCisgU3BlY2lmaWNhbGx5IHRoZSBz ZXR0aW5nIHlvdSBtYXkgc3RvcmUgYXJlOgorICsKK0BAIC03NDAsNyArNzQwLDcgQEAgVGhlcmUg YXJlIHRocmVlIG1vcmUgc2V0dGluZ3MgaW4gdGhlIGBgRm9jdXMgTW9kZWwnJyBtZW51OgorIAor IFRBQiBPUFRJT05TCisgLS0tLS0tLS0tLS0KKy1UaGlzIHNlY3Rpb24gb2YgZmx1eGJveCBjb25m aWd1cmF0aW9uIG1lbnUgbGV0cyB5b3UgY29uZmlndXJlIG1hbnkgZmVhdHVyZXMgb2YgCisrVGhp cyBzZWN0aW9uIG9mIGZsdXhib3ggY29uZmlndXJhdGlvbiBtZW51IGxldHMgeW91IGNvbmZpZ3Vy ZSBtYW55IGZlYXR1cmVzIG9mCisgdGFicy4gSW5zaWRlIG9mIGl0IHRoZXJlIGFyZSB0aHJlZSBt YWluIG9wdGlvbnM6CisgCisgKlBsYWNlbWVudCo6OjoKK0BAIC0xMDYwLDcgKzEwNjAsNyBAQCB3 aGVuZXZlciB0aGUgbW91c2UgbW92ZXMgb3ZlciB0aGVtLCBidXQgb25seSB3aGVuIHRoZSBtb3Vz ZSBpcyBtb3ZpbmcuIFdpdGgKKyBhcmVhLCBldmVuIGlmIHRoaXMgaXMgZHVlIHRvIGxheWVyIGNo YW5nZXMsIHdpbmRvdyBtb3ZlbWVudCwgY2hhbmdpbmcgZGVza3RvcHMsIGNsb3Npbmcgd2luZG93 cywgZXRjLgorICsKKyBEZWZhdWx0OiAqQ2xpY2tUb0ZvY3VzKgorLSAgICAgIAorKworICpzZXNz aW9uLnNjcmVlbjAuYXV0b1JhaXNlKjogJ2Jvb2xlYW4nOjoKKyBXaGVuIFRydWUsIHRoaXMgc2V0 dGluZyBhdXRvbWF0aWNhbGx5IHJhaXNlcyBhbnkgd2luZG93IHRoYXQgZ2FpbnMgZm9jdXMuCisg KworZGlmZiAtLWdpdCBhL3NyYy9TY3JlZW5QbGFjZW1lbnQuY2MgYi9zcmMvU2NyZWVuUGxhY2Vt ZW50LmNjCitpbmRleCAxOWRkZjc4YS4uY2E1OGQ4M2YgMTAwNjQ0CistLS0gYS9zcmMvU2NyZWVu UGxhY2VtZW50LmNjCisrKysgYi9zcmMvU2NyZWVuUGxhY2VtZW50LmNjCitAQCAtNDMsMTQgKzQz LDE0IEBAIHVzaW5nIHN0ZDo6Y2VycjsKKyB1c2luZyBzdGQ6OmVuZGw7CisgCisgU2NyZWVuUGxh Y2VtZW50OjpTY3JlZW5QbGFjZW1lbnQoQlNjcmVlbiAmc2NyZWVuKToKKy0gICAgbV9yb3dfZGly ZWN0aW9uKHNjcmVlbi5yZXNvdXJjZU1hbmFnZXIoKSwgTEVGVFJJR0hULCAKKy0gICAgICAgICAg ICAgICAgICAgIHNjcmVlbi5uYW1lKCkrIi5yb3dQbGFjZW1lbnREaXJlY3Rpb24iLCAKKysgICAg bV9yb3dfZGlyZWN0aW9uKHNjcmVlbi5yZXNvdXJjZU1hbmFnZXIoKSwgTEVGVFJJR0hULAorKyAg ICAgICAgICAgICAgICAgICAgc2NyZWVuLm5hbWUoKSsiLnJvd1BsYWNlbWVudERpcmVjdGlvbiIs CisgICAgICAgICAgICAgICAgICAgICBzY3JlZW4uYWx0TmFtZSgpKyIuUm93UGxhY2VtZW50RGly ZWN0aW9uIiksCistICAgIG1fY29sX2RpcmVjdGlvbihzY3JlZW4ucmVzb3VyY2VNYW5hZ2VyKCks IFRPUEJPVFRPTSwgCistICAgICAgICAgICAgICAgICAgICBzY3JlZW4ubmFtZSgpKyIuY29sUGxh Y2VtZW50RGlyZWN0aW9uIiwgCisrICAgIG1fY29sX2RpcmVjdGlvbihzY3JlZW4ucmVzb3VyY2VN YW5hZ2VyKCksIFRPUEJPVFRPTSwKKysgICAgICAgICAgICAgICAgICAgIHNjcmVlbi5uYW1lKCkr Ii5jb2xQbGFjZW1lbnREaXJlY3Rpb24iLAorICAgICAgICAgICAgICAgICAgICAgc2NyZWVuLmFs dE5hbWUoKSsiLkNvbFBsYWNlbWVudERpcmVjdGlvbiIpLAorLSAgICBtX3BsYWNlbWVudF9wb2xp Y3koc2NyZWVuLnJlc291cmNlTWFuYWdlcigpLCBST1dNSU5PVkVSTEFQUExBQ0VNRU5ULCAKKy0g ICAgICAgICAgICAgICAgICAgICAgIHNjcmVlbi5uYW1lKCkrIi53aW5kb3dQbGFjZW1lbnQiLCAK KysgICAgbV9wbGFjZW1lbnRfcG9saWN5KHNjcmVlbi5yZXNvdXJjZU1hbmFnZXIoKSwgUk9XTUlO T1ZFUkxBUFBMQUNFTUVOVCwKKysgICAgICAgICAgICAgICAgICAgICAgIHNjcmVlbi5uYW1lKCkr Ii53aW5kb3dQbGFjZW1lbnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2NyZWVuLmFsdE5h bWUoKSsiLldpbmRvd1BsYWNlbWVudCIpLAorICAgICBtX29sZF9wb2xpY3koUk9XU01BUlRQTEFD RU1FTlQpLAorICAgICBtX3NjcmVlbihzY3JlZW4pCitkaWZmIC0tZ2l0IGEvc3JjL1NjcmVlblBs YWNlbWVudC5oaCBiL3NyYy9TY3JlZW5QbGFjZW1lbnQuaGgKK2luZGV4IDBmMjEwZDk0Li5mMTIz NDk4MyAxMDA2NDQKKy0tLSBhL3NyYy9TY3JlZW5QbGFjZW1lbnQuaGgKKysrKyBiL3NyYy9TY3Jl ZW5QbGFjZW1lbnQuaGgKK0BAIC0zNCw3ICszNCw3IEBAIGNsYXNzIEJTY3JlZW47CisgCisgLyoq CisgICogTWFpbiBjbGFzcyBmb3Igc3RyYXRlZ3kgaGFuZGxpbmcKKy0gKiBUaGlzIGlzIGEgYnJp ZGdlIGJldHdlZW4gc2NyZWVuIGFuZCAKKysgKiBUaGlzIGlzIGEgYnJpZGdlIGJldHdlZW4gc2Ny ZWVuIGFuZAorICAqIHRoZSByZWFsIHBsYWNlbWVudCBzdHJhdGVneSAocm93Y29sLCB1bmRlcm1v dXNlIGV0YykKKyAgKiBUaGUgcGxhY2VXaW5kb3cgZnVuY3Rpb24gaW4gdGhpcyBjbGFzcyBpcyBn dWFyYW50ZWVkIHRvIHN1Y2NlZWQuCisgICogSXQgaG9sZHMgYSBwb2ludGVyIHRvIHRoZSByZWFs IHBsYWNlbWVudCBzdHJhdGVneSB3aGljaCBpcworQEAgLTQyLDggKzQyLDggQEAgY2xhc3MgQlNj cmVlbjsKKyAgKi8KKyBjbGFzcyBTY3JlZW5QbGFjZW1lbnQ6IHB1YmxpYyBQbGFjZW1lbnRTdHJh dGVneSB7CisgcHVibGljOgorLSAgICBlbnVtIFBsYWNlbWVudFBvbGljeSB7IAorLSAgICAgICAg Uk9XU01BUlRQTEFDRU1FTlQsIAorKyAgICBlbnVtIFBsYWNlbWVudFBvbGljeSB7CisrICAgICAg ICBST1dTTUFSVFBMQUNFTUVOVCwKKyAgICAgICAgIENPTFNNQVJUUExBQ0VNRU5ULAorICAgICAg ICAgQ09MTUlOT1ZFUkxBUFBMQUNFTUVOVCwKKyAgICAgICAgIFJPV01JTk9WRVJMQVBQTEFDRU1F TlQsCitAQCAtNTIsMTEgKzUyLDExIEBAIHB1YmxpYzoKKyAgICAgICAgIEFVVE9UQUJQTEFDRU1F TlQKKyAgICAgfTsKKyAKKy0gICAgZW51bSBSb3dEaXJlY3Rpb24geyAKKysgICAgZW51bSBSb3dE aXJlY3Rpb24geworICAgICAgICAgTEVGVFJJR0hULCAvLy88IGZyb20gbGVmdCB0byByaWdodAor ICAgICAgICAgUklHSFRMRUZUICAvLy88IGZyb20gcmlnaHQgdG8gbGVmdAorICAgICB9OworLSAg ICBlbnVtIENvbHVtbkRpcmVjdGlvbiB7IAorKyAgICBlbnVtIENvbHVtbkRpcmVjdGlvbiB7Cisg ICAgICAgICBUT1BCT1RUT00sICAvLy88IGZyb20gdG9wIHRvIGJvdHRvbQorICAgICAgICAgQk9U VE9NVE9QICAgLy8vPCBmcm9tIGJvdHRvbSB0byB0b3AKKyAgICAgfTsKKy0tIAorMi4zNy4xCisK KworRnJvbSA2ZTA1ZjQ0Yzk0ZmE0YmZjMGU0NGU4ZjQyYTlkMjQ2NjVhOTU4NDBmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogemxpY2UgPHpsaWNlNTU1QGdtYWlsLmNvbT4KK0RhdGU6 IEZyaSwgMjIgSnVsIDIwMjIgMjE6Mjc6MjUgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSCAyLzJdIG5l dyBmZWF0dXJlOiBDZW50ZXJQbGFjZW1lbnQuIFBsYWNlcyBuZXcgd2luZG93cyBpbgorIGNlbnRl ciBvZiB0aGUgY3VycmVudCB3b3Jrc3BhY2UKKworLS0tCisgZG9jL2FzY2lpZG9jL2ZsdXhib3gu dHh0IHwgIDEgKworIHNyYy9DZW50ZXJQbGFjZW1lbnQuY2MgICB8IDQzICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKKyBzcmMvQ2VudGVyUGxhY2VtZW50LmhoICAgfCAz NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgc3JjL01ha2Vtb2R1bGUuYW0g ICAgICAgIHwgIDIgKysKKyBzcmMvU2NyZWVuUGxhY2VtZW50LmNjICAgfCAgOCArKysrKysrKwor IHNyYy9TY3JlZW5QbGFjZW1lbnQuaGggICB8ICAxICsKKyA2IGZpbGVzIGNoYW5nZWQsIDkyIGlu c2VydGlvbnMoKykKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL0NlbnRlclBsYWNlbWVudC5jYwor IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvQ2VudGVyUGxhY2VtZW50LmhoCisKK2RpZmYgLS1naXQg YS9kb2MvYXNjaWlkb2MvZmx1eGJveC50eHQgYi9kb2MvYXNjaWlkb2MvZmx1eGJveC50eHQKK2lu ZGV4IDBlM2YyN2I5Li40NmNhMjg2MSAxMDA2NDQKKy0tLSBhL2RvYy9hc2NpaWRvYy9mbHV4Ym94 LnR4dAorKysrIGIvZG9jL2FzY2lpZG9jL2ZsdXhib3gudHh0CitAQCAtMTE0MSw2ICsxMTQxLDcg QEAgQXZhaWxhYmxlIHN0cmF0ZWdpZXM6OzsKKyAtIFJvd1NtYXJ0UGxhY2VtZW50OiB0cmllcyB0 byBwbGFjZSB3aW5kb3dzIGluIHJvd3Mgd2l0aG91dCBvdmVybGFwcGluZworIC0gQ29sU21hcnRQ bGFjZW1lbnQ6IHRyaWVzIHRvIHBsYWNlIHdpbmRvd3MgaW4gY29sdW1ucyB3aXRob3V0IG92ZXJs YXBwaW5nCisgLSBDYXNjYWRlUGxhY2VtZW50OiBwbGFjZXMgd2luZG93cyBiZWxvdyB0aGUgdGl0 bGViYXIgb2YgdGhlIHByZXZpb3VzIG9uZQorKy0gQ2VudGVyUGxhY2VtZW50OiBwbGFjZXMgd2lu ZG93cyBpbiB0aGUgY2VudGVyIG9mIHRoZSBjdXJyZW50IHdvcmtzcGFjZQorIC0gVW5kZXJNb3Vz ZVBsYWNlbWVudDogcGxhY2VzIG5ldyB3aW5kb3dzIHVuZGVybmVhdGggdGhlIG1vdXNlCisgLSBS b3dNaW5PdmVybGFwUGxhY2VtZW50OiBwbGFjZSB3aW5kb3dzIGluIHJvd3Mgd2l0aCBtaW5pbWFs IG92ZXJsYXBwaW5nCisgLSBDb2xNaW5PdmVybGFwUGxhY2VtZW50OiBwbGFjZSB3aW5kb3dzIGlu IGNvbHVtbnMgd2l0aCBtaW5pbWFsIG92ZXJsYXBwaW5nCitkaWZmIC0tZ2l0IGEvc3JjL0NlbnRl clBsYWNlbWVudC5jYyBiL3NyYy9DZW50ZXJQbGFjZW1lbnQuY2MKK25ldyBmaWxlIG1vZGUgMTAw NjQ0CitpbmRleCAwMDAwMDAwMC4uZWZhZjc2YjkKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy9D ZW50ZXJQbGFjZW1lbnQuY2MKK0BAIC0wLDAgKzEsNDMgQEAKKysvLyBDZW50ZXJQbGFjZW1lbnQu Y2MKKysvLyBDb3B5cmlnaHQgKGMpIDIwMDYgRmx1eGJveCBUZWFtIChmbHV4Z2VuIGF0IGZsdXhi b3ggZG90IG9yZykKKysvLworKy8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisrLy8gY29weSBvZiB0aGlzIHNv ZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUi KSwKKysvLyB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs dWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisrLy8gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1v ZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisrLy8gYW5kL29y IHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdo b20gdGhlCisrLy8gU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRo ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKysvLworKy8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90 aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisrLy8g YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisrLy8K KysvLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgorKy8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorKy8vIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVO VCBTSEFMTAorKy8vIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBG T1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisrLy8gTElBQklMSVRZLCBXSEVUSEVSIElO IEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKysvLyBG Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNF IE9SIE9USEVSCisrLy8gREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorKworKyNpbmNsdWRlICJD ZW50ZXJQbGFjZW1lbnQuaGgiCisrCisrI2luY2x1ZGUgIkZiVGsvQXBwLmhoIgorKyNpbmNsdWRl ICJTY3JlZW4uaGgiCisrI2luY2x1ZGUgIldpbmRvdy5oaCIKKysKKytib29sIENlbnRlclBsYWNl bWVudDo6cGxhY2VXaW5kb3coY29uc3QgRmx1eGJveFdpbmRvdyAmd2luLCBpbnQgaGVhZCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAmcGxhY2VfeCwgaW50ICZw bGFjZV95KSB7CisrCisrICAgIGludCBjZW50X3ggPSAoc2lnbmVkKSB3aW4uc2NyZWVuKCkubWF4 UmlnaHQoaGVhZCkgLSAoc2lnbmVkKSB3aW4uc2NyZWVuKCkubWF4TGVmdChoZWFkKTsKKysgICAg aW50IGNlbnRfeSA9IChzaWduZWQpIHdpbi5zY3JlZW4oKS5tYXhCb3R0b20oaGVhZCkgLSAoc2ln bmVkKSB3aW4uc2NyZWVuKCkubWF4VG9wKGhlYWQpOworKworKyAgICAvLyBib3JkZXIgb24gMSBz aWRlLCBkaXZpZGluZyBpbiBoYWxmCisrICAgIC8vIHdpdGggcm91bmRpbmcsIHRoaXMgd2lsbCBw cm9iYWJseSBmYXZvciB0b3AgbGVmdAorKyAgICBpbnQgd2luX2hhbGZfdyA9ICh3aW4ud2lkdGgo KSAvIDIpICsgd2luLmZiV2luZG93KCkuYm9yZGVyV2lkdGgoKSwKKysgICAgICAgIHdpbl9oYWxm X2ggPSAod2luLmhlaWdodCgpIC8gMikgKyB3aW4uZmJXaW5kb3coKS5ib3JkZXJXaWR0aCgpOwor KworKyAgICBwbGFjZV94ID0gY2VudF94IC0gd2luX2hhbGZfdzsKKysgICAgcGxhY2VfeSA9IGNl bnRfeSAtIHdpbl9oYWxmX2g7CisrCisrICAgIHJldHVybiB0cnVlOworK30KK2RpZmYgLS1naXQg YS9zcmMvQ2VudGVyUGxhY2VtZW50LmhoIGIvc3JjL0NlbnRlclBsYWNlbWVudC5oaAorbmV3IGZp bGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi45ZjcwYTZjOAorLS0tIC9kZXYvbnVsbAor KysrIGIvc3JjL0NlbnRlclBsYWNlbWVudC5oaAorQEAgLTAsMCArMSwzNyBAQAorKy8vIENlbnRl clBsYWNlbWVudC5oaAorKy8vIENvcHlyaWdodCAoYykgMjAwNyBGbHV4Ym94IFRlYW0gKGZsdXhn ZW4gYXQgZmx1eGJveCBkb3Qgb3JnKQorKy8vCisrLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKysvLyBjb3B5 IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhl ICJTb2Z0d2FyZSIpLAorKy8vIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJp Y3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKysvLyB0aGUgcmlnaHRzIHRvIHVz ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwK KysvLyBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBl cnNvbnMgdG8gd2hvbSB0aGUKKysvLyBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1 YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKy8vCisrLy8gVGhlIGFib3ZlIGNv cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVk ZWQgaW4KKysvLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0 d2FyZS4KKysvLworKy8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisrLy8gSU1QTElFRCwgSU5DTFVESU5H IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisr Ly8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4g IElOIE5PIEVWRU5UIFNIQUxMCisrLy8gVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMg QkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKysvLyBMSUFCSUxJVFks IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJ U0lORworKy8vIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRSBVU0UgT1IgT1RIRVIKKysvLyBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisrCisr I2lmbmRlZiBDRU5URVJQTEFDRU1FTlRfSEgKKysjZGVmaW5lIENFTlRFUlBMQUNFTUVOVF9ISAor KworKyNpbmNsdWRlICJTY3JlZW5QbGFjZW1lbnQuaGgiCisrCisrY2xhc3MgQ2VudGVyUGxhY2Vt ZW50OiBwdWJsaWMgUGxhY2VtZW50U3RyYXRlZ3kgeworK3B1YmxpYzoKKysgICAgQ2VudGVyUGxh Y2VtZW50KCkgeyB9OworKworKyAgICBib29sIHBsYWNlV2luZG93KGNvbnN0IEZsdXhib3hXaW5k b3cgJndpbiwgaW50IGhlYWQsCisrICAgICAgICAgICAgICAgICAgICAgaW50ICZwbGFjZV94LCBp bnQgJnBsYWNlX3kpOworKworK3ByaXZhdGU6CisrfTsKKysKKysjZW5kaWYgLy8gQ0VOVEVSUExB Q0VNRU5UX0hICitkaWZmIC0tZ2l0IGEvc3JjL01ha2Vtb2R1bGUuYW0gYi9zcmMvTWFrZW1vZHVs ZS5hbQoraW5kZXggNWJlNTY5MmMuLjUzZDM1ZThlIDEwMDY0NAorLS0tIGEvc3JjL01ha2Vtb2R1 bGUuYW0KKysrKyBiL3NyYy9NYWtlbW9kdWxlLmFtCitAQCAtMTY1LDYgKzE2NSw4IEBAIGZsdXhi b3hfU09VUkNFUyA9IFwKKyAJc3JjL0F0dGVudGlvbk5vdGljZUhhbmRsZXIuaGggXAorIAlzcmMv Q2FzY2FkZVBsYWNlbWVudC5jYyBcCisgCXNyYy9DYXNjYWRlUGxhY2VtZW50LmhoIFwKKysJc3Jj L0NlbnRlclBsYWNlbWVudC5jYyBcCisrCXNyYy9DZW50ZXJQbGFjZW1lbnQuaGggXAorIAlzcmMv Q2xpZW50TWVudS5jYyBcCisgCXNyYy9DbGllbnRNZW51LmhoIFwKKyAJc3JjL0NsaWVudFBhdHRl cm4uY2MgXAorZGlmZiAtLWdpdCBhL3NyYy9TY3JlZW5QbGFjZW1lbnQuY2MgYi9zcmMvU2NyZWVu UGxhY2VtZW50LmNjCitpbmRleCBjYTU4ZDgzZi4uY2U0N2E5MTAgMTAwNjQ0CistLS0gYS9zcmMv U2NyZWVuUGxhY2VtZW50LmNjCisrKysgYi9zcmMvU2NyZWVuUGxhY2VtZW50LmNjCitAQCAtMjQs NiArMjQsNyBAQAorICNpbmNsdWRlICJSb3dTbWFydFBsYWNlbWVudC5oaCIKKyAjaW5jbHVkZSAi TWluT3ZlcmxhcFBsYWNlbWVudC5oaCIKKyAjaW5jbHVkZSAiVW5kZXJNb3VzZVBsYWNlbWVudC5o aCIKKysjaW5jbHVkZSAiQ2VudGVyUGxhY2VtZW50LmhoIgorICNpbmNsdWRlICJDb2xTbWFydFBs YWNlbWVudC5oaCIKKyAjaW5jbHVkZSAiQ2FzY2FkZVBsYWNlbWVudC5oaCIKKyAKK0BAIC04Miw2 ICs4Myw5IEBAIGJvb2wgU2NyZWVuUGxhY2VtZW50OjpwbGFjZVdpbmRvdyhjb25zdCBGbHV4Ym94 V2luZG93ICZ3aW4sIGludCBoZWFkLAorICAgICAgICAgY2FzZSBVTkRFUk1PVVNFUExBQ0VNRU5U OgorICAgICAgICAgICAgIG1fc3RyYXRlZ3kucmVzZXQobmV3IFVuZGVyTW91c2VQbGFjZW1lbnQo KSk7CisgICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICBjYXNlIENFTlRFUlBMQUNFTUVOVDoK KysgICAgICAgICAgICBtX3N0cmF0ZWd5LnJlc2V0KG5ldyBDZW50ZXJQbGFjZW1lbnQoKSk7Cisr ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIEFVVE9UQUJQTEFDRU1FTlQ6CisgICAg ICAgICAgICAgbV9zdHJhdGVneS5yZXNldCgwKTsKKyAgICAgICAgICAgICBicmVhazsKK0BAIC0x OTcsNiArMjAxLDggQEAgc3RkOjpzdHJpbmcgRmJUazo6UmVzb3VyY2U8U2NyZWVuUGxhY2VtZW50 OjpQbGFjZW1lbnRQb2xpY3k+OjpnZXRTdHJpbmcoKSBjb25zdAorICAgICAgICAgcmV0dXJuICJD b2xNaW5PdmVybGFwUGxhY2VtZW50IjsKKyAgICAgY2FzZSBTY3JlZW5QbGFjZW1lbnQ6OlVOREVS TU9VU0VQTEFDRU1FTlQ6CisgICAgICAgICByZXR1cm4gIlVuZGVyTW91c2VQbGFjZW1lbnQiOwor KyAgICBjYXNlIFNjcmVlblBsYWNlbWVudDo6Q0VOVEVSUExBQ0VNRU5UOgorKyAgICAgICAgcmV0 dXJuICJDZW50ZXJQbGFjZW1lbnQiOworICAgICBjYXNlIFNjcmVlblBsYWNlbWVudDo6Q0FTQ0FE RVBMQUNFTUVOVDoKKyAgICAgICAgIHJldHVybiAiQ2FzY2FkZVBsYWNlbWVudCI7CisgICAgIGNh c2UgU2NyZWVuUGxhY2VtZW50OjpBVVRPVEFCUExBQ0VNRU5UOgorQEAgLTIxOCw2ICsyMjQsOCBA QCB2b2lkIEZiVGs6OlJlc291cmNlPFNjcmVlblBsYWNlbWVudDo6UGxhY2VtZW50UG9saWN5Pjo6 c2V0RnJvbVN0cmluZyhjb25zdCBjaGFyCisgICAgICAgICAqKCp0aGlzKSA9IFNjcmVlblBsYWNl bWVudDo6Q09MTUlOT1ZFUkxBUFBMQUNFTUVOVDsKKyAgICAgZWxzZSBpZiAoc3RyY2FzZWNtcCgi VW5kZXJNb3VzZVBsYWNlbWVudCIsIHN0cikgPT0gMCkKKyAgICAgICAgICooKnRoaXMpID0gU2Ny ZWVuUGxhY2VtZW50OjpVTkRFUk1PVVNFUExBQ0VNRU5UOworKyAgICBlbHNlIGlmIChzdHJjYXNl Y21wKCJDZW50ZXJQbGFjZW1lbnQiLCBzdHIpID09IDApCisrICAgICAgICAqKCp0aGlzKSA9IFNj cmVlblBsYWNlbWVudDo6Q0VOVEVSUExBQ0VNRU5UOworICAgICBlbHNlIGlmIChzdHJjYXNlY21w KCJDYXNjYWRlUGxhY2VtZW50Iiwgc3RyKSA9PSAwKQorICAgICAgICAgKigqdGhpcykgPSBTY3Jl ZW5QbGFjZW1lbnQ6OkNBU0NBREVQTEFDRU1FTlQ7CisgICAgIGVsc2UgaWYgKHN0cmNhc2VjbXAo IkF1dG90YWJQbGFjZW1lbnQiLCBzdHIpID09IDApCitkaWZmIC0tZ2l0IGEvc3JjL1NjcmVlblBs YWNlbWVudC5oaCBiL3NyYy9TY3JlZW5QbGFjZW1lbnQuaGgKK2luZGV4IGYxMjM0OTgzLi5hNWM5 Yjg4NSAxMDA2NDQKKy0tLSBhL3NyYy9TY3JlZW5QbGFjZW1lbnQuaGgKKysrKyBiL3NyYy9TY3Jl ZW5QbGFjZW1lbnQuaGgKK0BAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKKyAgICAgICAgIFJPV01J Tk9WRVJMQVBQTEFDRU1FTlQsCisgICAgICAgICBDQVNDQURFUExBQ0VNRU5ULAorICAgICAgICAg VU5ERVJNT1VTRVBMQUNFTUVOVCwKKysgICAgICAgIENFTlRFUlBMQUNFTUVOVCwKKyAgICAgICAg IEFVVE9UQUJQTEFDRU1FTlQKKyAgICAgfTsKKyAKKy0tIAorMi4zNy4xCisKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2NvbnRhaW5lcl9sb2Nrcy5wYXRjaCBiL3NyY3BrZ3Mv Zmx1eGJveC9wYXRjaGVzL2NvbnRhaW5lcl9sb2Nrcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ5OGFiNDRhMjNjNgotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvZmx1eGJveC9wYXRjaGVzL2NvbnRhaW5lcl9sb2Nrcy5wYXRjaApAQCAtMCwwICsxLDMy NSBAQAorZGlmZiAtLWdpdCBhL3NyYy9GYldpbkZyYW1lLmNjIGIvc3JjL0ZiV2luRnJhbWUuY2MK K2luZGV4IDAwYmMxMTg3Li5mOGE0YzQ3NSAxMDA2NDQKKy0tLSBhL3NyYy9GYldpbkZyYW1lLmNj CisrKysgYi9zcmMvRmJXaW5GcmFtZS5jYworQEAgLTE0OCw2ICsxNDgsMTEgQEAgRmJXaW5GcmFt ZTo6RmJXaW5GcmFtZShCU2NyZWVuICZzY3JlZW4sIHVuc2lnbmVkIGludCBjbGllbnRfZGVwdGgs CisgICAgIG1fYnV0dG9uX3NpemUoMSksCisgICAgIG1fc2hhcGUobV93aW5kb3csIHRoZW1lLT5z aGFwZVBsYWNlKCkpIHsKKyAKKysgICAgbV9sb2NrZXJfdGltZXIuc2V0VGltZW91dCh0aW1lclZh bCgpICk7IC8vIDEwbWlsbGlzZWMKKysgICAgbV9sb2NrZXJfdGltZXIuZmlyZU9uY2UodHJ1ZSk7 CisrICAgIEZiVGs6OlJlZkNvdW50PEZiVGs6OkNvbW1hbmQ8dm9pZD4gPiB1c2lnKG5ldyBGYlRr OjpTaW1wbGVDb21tYW5kPEZiV2luRnJhbWU+KCp0aGlzLCAmRmJXaW5GcmFtZTo6dW5sb2NrU2ln KSk7CisrICAgIG1fbG9ja2VyX3RpbWVyLnNldENvbW1hbmQodXNpZyk7CisrCisgICAgIGluaXQo KTsKKyB9CisgCitAQCAtMTU2LDYgKzE2MSwyNyBAQCBGYldpbkZyYW1lOjp+RmJXaW5GcmFtZSgp IHsKKyAgICAgcmVtb3ZlQWxsQnV0dG9ucygpOworIH0KKyAKKysvLyBmb3IgaW5jcmVtZW50YWwg Y2hhbmdlcywgYmFjayBvZmYgZm9yIGEgYml0CisrLy8gcHJldmVudHMgc2xvd2Rvd24gZnJvbSBz YXksIG1ha2luZyAyMDAgd2luZG93cworK3ZvaWQgRmJXaW5GcmFtZTo6cmVzZXRMb2NrKCkgewor KyAgICBtX2xvY2tfZ2Z4ID0gdHJ1ZTsKKysgICAgbV9sb2NrZXJfdGltZXIuc3RhcnQoKTsKKyt9 CisrCisrdm9pZCBGYldpbkZyYW1lOjp1bmxvY2tTaWcoKSB7CisrICAgIG1fbG9ja19nZnggPSBm YWxzZTsKKysgICAgLy8gdGhpcyBpcyB3aGF0IHdlIHdhbnRlZCB0byBkbworKyAgICBGYlRrOjpD b250YWluZXImIHRhYnMgPSB0YWJjb250YWluZXIoKTsKKysgICAgdGFicy5zZXRVcGRhdGVMb2Nr KG1fbG9ja19nZngpOworKyAgICByZW5kZXJUYWJDb250YWluZXIoKTsKKysgICAgYXBwbHlUYWJD b250YWluZXIoKTsKKysKKysgICAgdGFicy5jbGVhcigpOworKyAgICB0YWJzLnJhaXNlKCk7Cisr ICAgIHRhYnMuc2hvdygpOworK30KKysKKysKKyBib29sIEZiV2luRnJhbWU6OnNldFRhYk1vZGUo VGFiTW9kZSB0YWJtb2RlKSB7CisgICAgIGlmIChtX3RhYm1vZGUgPT0gdGFibW9kZSkKKyAgICAg ICAgIHJldHVybiBmYWxzZTsKK0BAIC0xODcsNiArMjEzLDcgQEAgYm9vbCBGYldpbkZyYW1lOjpz ZXRUYWJNb2RlKFRhYk1vZGUgdGFibW9kZSkgeworIAorICAgICB9IGVsc2UgeworICAgICAgICAg dGFicy5zZXRVcGRhdGVMb2NrKHRydWUpOworKyAgICAgICAgcmVzZXRMb2NrKCk7CisgCisgICAg ICAgICB0YWJzLnNldEFsaWdubWVudChGYlRrOjpDb250YWluZXI6OlJFTEFUSVZFKTsKKyAgICAg ICAgIHRhYnMuc2V0T3JpZW50YXRpb24oRmJUazo6Uk9UMCk7CitAQCAtMjAwLDkgKzIyNywxMiBA QCBib29sIEZiV2luRnJhbWU6OnNldFRhYk1vZGUoVGFiTW9kZSB0YWJtb2RlKSB7CisgICAgICAg ICB9CisgICAgICAgICB0YWJzLnNldEJvcmRlcldpZHRoKDApOworICAgICAgICAgdGFicy5zZXRN YXhUb3RhbFNpemUoMCk7CistICAgICAgICB0YWJzLnNldFVwZGF0ZUxvY2soZmFsc2UpOworKyAg ICAgICAgdGFicy5zZXRVcGRhdGVMb2NrKG1fbG9ja19nZngpOworICAgICAgICAgdGFicy5zZXRN YXhTaXplUGVyQ2xpZW50KDApOworIAorKyAgICAgICAgaWYgKG1fbG9ja19nZngpCisrICAgICAg ICAgICAgcmV0dXJuIGZhbHNlOworKworICAgICAgICAgcmVuZGVyVGFiQ29udGFpbmVyKCk7Cisg ICAgICAgICBhcHBseVRhYkNvbnRhaW5lcigpOworIAorZGlmZiAtLWdpdCBhL3NyYy9GYldpbkZy YW1lLmhoIGIvc3JjL0ZiV2luRnJhbWUuaGgKK2luZGV4IDYxN2I5YjkxLi43MjVjODRhMCAxMDA2 NDQKKy0tLSBhL3NyYy9GYldpbkZyYW1lLmhoCisrKysgYi9zcmMvRmJXaW5GcmFtZS5oaAorQEAg LTMzLDYgKzMzLDcgQEAKKyAjaW5jbHVkZSAiRmJUay9Db250YWluZXIuaGgiCisgI2luY2x1ZGUg IkZiVGsvU2hhcGUuaGgiCisgI2luY2x1ZGUgIkZiVGsvU2lnbmFsLmhoIgorKyNpbmNsdWRlICJG YlRrL1RpbWVyLmhoIgorIAorICNpbmNsdWRlIDx2ZWN0b3I+CisgI2luY2x1ZGUgPG1lbW9yeT4K K0BAIC0xNzYsNiArMTc3LDEyIEBAIHB1YmxpYzoKKyAgICAgdm9pZCBzZXRTaGFwaW5nQ2xpZW50 KEZiVGs6OkZiV2luZG93ICp3aW4sIGJvb2wgYWx3YXlzX3VwZGF0ZSk7CisgICAgIHZvaWQgdXBk YXRlU2hhcGUoKSB7IG1fc2hhcGUudXBkYXRlKCk7IH0KKyAKKysgICAgdm9pZCByZXNldExvY2so KTsKKysgICAgdm9pZCB1bmxvY2tTaWcoKTsKKysgICAgRmJUazo6VGltZXIgbV9sb2NrZXJfdGlt ZXI7CisrICAgIHN0YXRpYyB1bnNpZ25lZCBpbnQgdGltZXJWYWwoKSB7IHJldHVybiAxMCAqIEZi VGs6OkZiVGltZTo6SU5fTUlMTElTRUNPTkRTOyB9CisrICAgIGJvb2wgbV9sb2NrX2dmeCA9IGZh bHNlOworKworICAgICAvKioKKyAgICAgICAgQG5hbWUgYWNjZXNzb3JzCisgICAgICovCitkaWZm IC0tZ2l0IGEvc3JjL0ljb25CdXR0b24uY2MgYi9zcmMvSWNvbkJ1dHRvbi5jYworaW5kZXggMTI5 MGMyYWEuLjJlYTdhZjllIDEwMDY0NAorLS0tIGEvc3JjL0ljb25CdXR0b24uY2MKKysrKyBiL3Ny Yy9JY29uQnV0dG9uLmNjCitAQCAtNzEsOCArNzEsOCBAQCBJY29uQnV0dG9uOjpJY29uQnV0dG9u KGNvbnN0IEZiVGs6OkZiV2luZG93ICZwYXJlbnQsCisgCisgICAgIEZiVGs6OkV2ZW50TWFuYWdl cjo6aW5zdGFuY2UoKS0+YWRkKCp0aGlzLCBtX2ljb25fd2luZG93KTsKKyAKKy0gICAgcmVjb25m aWdUaGVtZSgpOworLSAgICByZWZyZXNoRXZlcnl0aGluZyhmYWxzZSk7CisrICAgIC8vcmVjb25m aWdUaGVtZSgpOworKyAgICAvL3JlZnJlc2hFdmVyeXRoaW5nKGZhbHNlKTsKKyB9CisgCisgSWNv bkJ1dHRvbjo6fkljb25CdXR0b24oKSB7CitAQCAtMTYzLDEyICsxNjMsMTIgQEAgdm9pZCBJY29u QnV0dG9uOjpyZWNvbmZpZ1RoZW1lKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdp ZHRoKCksIGhlaWdodCgpLCBtX3RoZW1lLT50ZXh0dXJlKCksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgb3JpZW50YXRpb24oKSkpOworICAgICAgICAgc2V0QmFja2dyb3VuZFBpeG1hcCht X3BtKTsKKy0gICAgfSBlbHNleworKyAgICB9IGVsc2UgeworICAgICAgICAgbV9wbS5yZXNldCgw KTsKKyAgICAgICAgIHNldEJhY2tncm91bmRDb2xvcihtX3RoZW1lLT50ZXh0dXJlKCkuY29sb3Io KSk7CisgICAgIH0KKyAKKy0gICAgdXBkYXRlQmFja2dyb3VuZChmYWxzZSk7CisrICAgIC8vdXBk YXRlQmFja2dyb3VuZChmYWxzZSk7CisgfQorIAorIHZvaWQgSWNvbkJ1dHRvbjo6cmVjb25maWdB bmRDbGVhcigpIHsKK0BAIC0xODEsNyArMTgxLDggQEAgdm9pZCBJY29uQnV0dG9uOjpyZWZyZXNo RXZlcnl0aGluZyhib29sIHNldHVwKSB7CisgICAgIERpc3BsYXkgKmRpc3BsYXkgPSBGYlRrOjpB cHA6Omluc3RhbmNlKCktPmRpc3BsYXkoKTsKKyAgICAgaW50IHNjcmVlbiA9IG1fd2luLnNjcmVl bigpLnNjcmVlbk51bWJlcigpOworIAorLSAgICBpZiAobV91c2VfcGl4bWFwICYmIG1fd2luLmlj b24oKS5waXhtYXAoKS5kcmF3YWJsZSgpICE9IE5vbmUpIHsKKysgICAgaWYgKG1fdXNlX3BpeG1h cCAmJiBtX3dpbi5pY29uKCkucGl4bWFwKCkuZHJhd2FibGUoKSAhPSBOb25lICYmCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoKCkgPiBtX2ljb25fd2luZG93Lndp ZHRoKCkgKSB7CisgICAgICAgICAvLyBzZXR1cCBpY29uIHdpbmRvdworICAgICAgICAgbV9pY29u X3dpbmRvdy5zaG93KCk7CisgICAgICAgICB1bnNpZ25lZCBpbnQgdyA9IHdpZHRoKCk7CitAQCAt MjQyLDcgKzI0Myw2IEBAIHZvaWQgSWNvbkJ1dHRvbjo6cmVmcmVzaEV2ZXJ5dGhpbmcoYm9vbCBz ZXR1cCkgeworICAgICAgICAgbV9pY29uX3dpbmRvdy5jbGVhcigpOworICAgICB9CisgCistCisg fQorIAorIHZvaWQgSWNvbkJ1dHRvbjo6Y2xpZW50VGl0bGVDaGFuZ2VkKCkgeworQEAgLTI1MSwy NCArMjUxLDMwIEBAIHZvaWQgSWNvbkJ1dHRvbjo6Y2xpZW50VGl0bGVDaGFuZ2VkKCkgeworIAor ICAgICBpZiAobV9oYXNfdG9vbHRpcCkKKyAgICAgICAgIHNob3dUb29sdGlwKCk7CisrCisgfQor IAorIHZvaWQgSWNvbkJ1dHRvbjo6c2V0dXBXaW5kb3coKSB7CisgICAgIG1faWNvbl93aW5kb3cu Y2xlYXIoKTsKKysgICAgLy9GYlRrOjpGYlN0cmluZyB0aXRsZSA9ICJ3dGYyIjsKKyAgICAgRmJU azo6RmJTdHJpbmcgdGl0bGUgPSBtX3dpbi50aXRsZSgpLmxvZ2ljYWwoKTsKKy0gICAgaWYgKG1f d2luLmZid2luZG93KCkgJiYgbV93aW4uZmJ3aW5kb3coKS0+aXNJY29uaWMoKSkKKy0gICAgICAg IHRpdGxlID0gSWNvbmJhclRvb2w6Omljb25pZmllZFByZWZpeCgpICsgdGl0bGUgKyBJY29uYmFy VG9vbDo6aWNvbmlmaWVkU3VmZml4KCk7CisrICAgIC8vI2lmIFVTRV9UT09MQkFSCisrICAgIC8v aWYgKG1fd2luLmZid2luZG93KCkgJiYgbV93aW4uZmJ3aW5kb3coKS0+aXNJY29uaWMoKSkKKysg ICAgLy8gICAgdGl0bGUgPSBJY29uYmFyVG9vbDo6aWNvbmlmaWVkUHJlZml4KCkgKyB0aXRsZSAr IEljb25iYXJUb29sOjppY29uaWZpZWRTdWZmaXgoKTsKKysgICAgLy8jZW5kaWYKKyAgICAgc2V0 VGV4dCh0aXRsZSk7CisgICAgIEZiVGs6OlRleHRCdXR0b246OmNsZWFyKCk7CisgfQorIAorIHZv aWQgSWNvbkJ1dHRvbjo6ZHJhd1RleHQoaW50IHgsIGludCB5LCBGYlRrOjpGYkRyYXdhYmxlICpk cmF3YWJsZSkgeworIAorLSAgICAvLyBvZmZzZXQgdGV4dAorLSAgICBpZiAobV9pY29uX3BpeG1h cC5kcmF3YWJsZSgpICE9IDApCistICAgICAgICBGYlRrOjpUZXh0QnV0dG9uOjpkcmF3VGV4dCht X2ljb25fd2luZG93LngoKSArIG1faWNvbl93aW5kb3cud2lkdGgoKSArIDEsIHksIGRyYXdhYmxl KTsKKy0gICAgZWxzZQorLSAgICAgICAgRmJUazo6VGV4dEJ1dHRvbjo6ZHJhd1RleHQoMSwgeSwg ZHJhd2FibGUpOworKyAgICBpZiAod2lkdGgoKSA+IG1faWNvbl93aW5kb3cud2lkdGgoKSApIHsK KysgICAgICAvLyBvZmZzZXQgdGV4dAorKyAgICAgIGlmIChtX2ljb25fcGl4bWFwLmRyYXdhYmxl KCkgIT0gMCkKKysgICAgICAgICAgRmJUazo6VGV4dEJ1dHRvbjo6ZHJhd1RleHQobV9pY29uX3dp bmRvdy54KCkgKyBtX2ljb25fd2luZG93LndpZHRoKCkgKyAxLCB5LCBkcmF3YWJsZSk7CisrICAg ICAgZWxzZQorKyAgICAgICAgICBGYlRrOjpUZXh0QnV0dG9uOjpkcmF3VGV4dCgxLCB5LCBkcmF3 YWJsZSk7CisrICAgIH0KKyB9CisgCisgYm9vbCBJY29uQnV0dG9uOjpzZXRPcmllbnRhdGlvbihG YlRrOjpPcmllbnRhdGlvbiBvcmllbnQpIHsKK2RpZmYgLS1naXQgYS9zcmMvSWNvbmJhclRvb2wu Y2MgYi9zcmMvSWNvbmJhclRvb2wuY2MKK2luZGV4IDAyN2FiMWM2Li5mNjRhNGNmNiAxMDA2NDQK Ky0tLSBhL3NyYy9JY29uYmFyVG9vbC5jYworKysrIGIvc3JjL0ljb25iYXJUb29sLmNjCitAQCAt MzAwLDYgKzMwMCwxMSBAQCBJY29uYmFyVG9vbDo6SWNvbmJhclRvb2woY29uc3QgRmJUazo6RmJX aW5kb3cgJnBhcmVudCwgSWNvbmJhclRoZW1lICZ0aGVtZSwKKyAgICAgRmJUazo6UmVmQ291bnQ8 RmJUazo6Q29tbWFuZDx2b2lkPiA+IGVycyhuZXcgRmJUazo6U2ltcGxlQ29tbWFuZDxJY29uYmFy VG9vbD4oKnRoaXMsICZJY29uYmFyVG9vbDo6ZW1pdFJlc2l6ZVNpZykpOworICAgICBtX3Jlc2l6 ZVNpZ190aW1lci5zZXRDb21tYW5kKGVycyk7CisgCisrICAgIG1fbG9ja2VyX3RpbWVyLnNldFRp bWVvdXQoSWNvbkJ1dHRvbjo6dXBkYXRlTGF6aW5lc3MoKSAvIDEwKTsgLy8gMTBtaWxsaXNlYwor KyAgICBtX2xvY2tlcl90aW1lci5maXJlT25jZSh0cnVlKTsKKysgICAgRmJUazo6UmVmQ291bnQ8 RmJUazo6Q29tbWFuZDx2b2lkPiA+IHVzaWcobmV3IEZiVGs6OlNpbXBsZUNvbW1hbmQ8SWNvbmJh clRvb2w+KCp0aGlzLCAmSWNvbmJhclRvb2w6OnVubG9ja1NpZykpOworKyAgICBtX2xvY2tlcl90 aW1lci5zZXRDb21tYW5kKHVzaWcpOworKworICAgICB0aGVtZVJlY29uZmlndXJlZCgpOworIH0K KyAKK0BAIC0zMjUsNyArMzMwLDcgQEAgdm9pZCBJY29uYmFyVG9vbDo6dXBkYXRlTWF4U2l6ZXMo dW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0KSB7CisgCisgdm9pZCBJY29u YmFyVG9vbDo6cmVzaXplKHVuc2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWdodCkg eworICAgICBtX2ljb25fY29udGFpbmVyLnJlc2l6ZSh3aWR0aCwgaGVpZ2h0KTsKKy0gICAgdXBk YXRlTWF4U2l6ZXMod2lkdGgsIGhlaWdodCk7CisrICAgIC8vdXBkYXRlTWF4U2l6ZXMod2lkdGgs IGhlaWdodCk7CisgICAgIHJlbmRlclRoZW1lKCk7CisgfQorIAorQEAgLTMzMyw3ICszMzgsNyBA QCB2b2lkIEljb25iYXJUb29sOjptb3ZlUmVzaXplKGludCB4LCBpbnQgeSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWdo dCkgeworIAorICAgICBtX2ljb25fY29udGFpbmVyLm1vdmVSZXNpemUoeCwgeSwgd2lkdGgsIGhl aWdodCk7CistICAgIHVwZGF0ZU1heFNpemVzKHdpZHRoLCBoZWlnaHQpOworKyAgICAvL3VwZGF0 ZU1heFNpemVzKHdpZHRoLCBoZWlnaHQpOworICAgICByZW5kZXJUaGVtZSgpOworIH0KKyAKK0BA IC0zOTMsNiArMzk4LDI1IEBAIHZvaWQgSWNvbmJhclRvb2w6OnNldE1vZGUoc3RyaW5nIG1vZGUp IHsKKyAgICAgbV9tZW51LnJlY29uZmlndXJlKCk7CisgfQorIAorKy8vIGZvciBpbmNyZW1lbnRh bCBjaGFuZ2VzLCBiYWNrIG9mZiBmb3IgYSBiaXQKKysvLyBwcmV2ZW50cyBzbG93ZG93biBmcm9t IHNheSwgbWFraW5nIDIwMCB3aW5kb3dzCisrdm9pZCBJY29uYmFyVG9vbDo6cmVzZXRMb2NrKCkg eworKyAgICBtX2xvY2tfZ2Z4ID0gdHJ1ZTsKKysgICAgbV9sb2NrZXJfdGltZXIuc3RhcnQoKTsK Kyt9CisrCisrdm9pZCBJY29uYmFyVG9vbDo6dW5sb2NrU2lnKCkgeworKyAgICBtX2xvY2tfZ2Z4 ID0gZmFsc2U7CisrICAgIC8vcmVzaXplU2lnKCkuZW1pdCgpOworKyAgICAvLyB0aGlzIGlzIHdo YXQgd2Ugd2FudGVkIHRvIGRvCisrICAgIG1faWNvbl9jb250YWluZXIuc2V0VXBkYXRlTG9jayhm YWxzZSk7CisrICAgIG1faWNvbl9jb250YWluZXIudXBkYXRlKCk7CisrICAgIG1faWNvbl9jb250 YWluZXIuc2hvd1N1YndpbmRvd3MoKTsKKysgICAgcmVuZGVyVGhlbWUoKTsKKysgICAgdXBkYXRl KEFMSUdOLCBOVUxMKTsKKysgICAgbV9yZXNpemVTaWdfdGltZXIuc3RhcnQoKTsKKyt9CisrCisg dm9pZCBJY29uYmFyVG9vbDo6ZW1pdFJlc2l6ZVNpZygpIHsKKyAgICAgcmVzaXplU2lnKCkuZW1p dCgpOworIH0KK0BAIC00NDEsOSArNDY1LDExIEBAIHZvaWQgSWNvbmJhclRvb2w6OnVwZGF0ZShV cGRhdGVSZWFzb24gcmVhc29uLCBGb2N1c2FibGUgKndpbikgeworICAgICBzd2l0Y2gocmVhc29u KSB7CisgICAgICAgICBjYXNlIExJU1RfQUREOiBjYXNlIExJU1RfT1JERVI6CisgICAgICAgICAg ICAgaW5zZXJ0V2luZG93KCp3aW4pOworKyAgICAgICAgICAgIHJlc2V0TG9jaygpOworICAgICAg ICAgICAgIGJyZWFrOworICAgICAgICAgY2FzZSBMSVNUX1JFTU9WRToKKyAgICAgICAgICAgICBy ZW1vdmVXaW5kb3coKndpbik7CisrICAgICAgICAgICAgcmVzZXRMb2NrKCk7CisgICAgICAgICAg ICAgYnJlYWs7CisgICAgICAgICBjYXNlIExJU1RfUkVTRVQ6CisgICAgICAgICAgICAgcmVzZXQo KTsKK0BAIC00NTUsNiArNDgxLDEwIEBAIHZvaWQgSWNvbmJhclRvb2w6OnVwZGF0ZShVcGRhdGVS ZWFzb24gcmVhc29uLCBGb2N1c2FibGUgKndpbikgeworICAgICBtX3Jlc2l6ZVNpZ190aW1lci5z dGFydCgpOworIAorICAgICB1cGRhdGVNYXhTaXplcyh3aWR0aCgpLCBoZWlnaHQoKSk7CisrCisr ICAgIGlmIChtX2xvY2tfZ2Z4KQorKyAgICAgICAgcmV0dXJuOworKworICAgICAvLyB1bmxvY2sg Y29udGFpbmVyIGFuZCB1cGRhdGUgZ3JhcGhpY3MKKyAgICAgbV9pY29uX2NvbnRhaW5lci5zZXRV cGRhdGVMb2NrKGZhbHNlKTsKKyAgICAgbV9pY29uX2NvbnRhaW5lci51cGRhdGUoKTsKK0BAIC00 OTYsMTMgKzUyNiwxMyBAQCB2b2lkIEljb25iYXJUb29sOjppbnNlcnRXaW5kb3coRm9jdXNhYmxl ICZ3aW4sIGludCBwb3MpIHsKKyAgICAgICAgIGJ1dHRvbiA9IG1ha2VCdXR0b24od2luKTsKKyAg ICAgaWYgKCFidXR0b24pIHJldHVybjsKKyAKKy0gICAgaWYgKHBvcyA9PSAtMikgeworLSAgICAg ICAgcG9zID0gMDsKKy0gICAgICAgIGxpc3Q8Rm9jdXNhYmxlICo+OjppdGVyYXRvciBpdCA9IG1f d2lubGlzdC0+Y2xpZW50TGlzdCgpLmJlZ2luKCksCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaXRfZW5kID0gbV93aW5saXN0LT5jbGllbnRMaXN0KCkuZW5kKCk7CistICAg ICAgICBmb3IgKDsgaXQgIT0gaXRfZW5kICYmICppdCAhPSAmd2luOyArK2l0KQorLSAgICAgICAg ICAgIHBvcysrOworLSAgICB9CisrICAgIC8vaWYgKHBvcyA9PSAtMikgeworKyAgICAvLyAgICBw b3MgPSAwOworKyAgICAvLyAgICBsaXN0PEZvY3VzYWJsZSAqPjo6aXRlcmF0b3IgaXQgPSBtX3dp bmxpc3QtPmNsaWVudExpc3QoKS5iZWdpbigpLAorKyAgICAvLyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaXRfZW5kID0gbV93aW5saXN0LT5jbGllbnRMaXN0KCkuZW5kKCk7CisrICAg IC8vICAgIGZvciAoOyBpdCAhPSBpdF9lbmQgJiYgKml0ICE9ICZ3aW47ICsraXQpCisrICAgIC8v ICAgICAgICBwb3MrKzsKKysgICAgLy99CisgCisgICAgIG1faWNvbl9jb250YWluZXIuaW5zZXJ0 SXRlbShidXR0b24sIHBvcyk7CisgICAgIG1fdHJhY2tlci5qb2luKGJ1dHRvbi0+dGl0bGVDaGFu Z2VkKCksIEZiVGs6Ok1lbUZ1bihtX3Jlc2l6ZVNpZ190aW1lciwgJkZiVGs6OlRpbWVyOjpzdGFy dCkpOworQEAgLTUxNyw5ICs1NDcsOSBAQCB2b2lkIEljb25iYXJUb29sOjp1cGRhdGVTaXppbmco KSB7CisgICAgIG1faWNvbl9jb250YWluZXIuc2V0Qm9yZGVyV2lkdGgobV90aGVtZS5ib3JkZXIo KS53aWR0aCgpKTsKKyAgICAgbV9pY29uX2NvbnRhaW5lci5zZXRCb3JkZXJDb2xvcihtX3RoZW1l LmJvcmRlcigpLmNvbG9yKCkpOworIAorLSAgICBGYlRrOjpTVExVdGlsOjpmb3JBbGwobV9pY29u cywgCistICAgICAgICAgICAgRmJUazo6Q29tcG9zZShzdGQ6Om1lbV9mdW4oJkljb25CdXR0b246 OnJlY29uZmlnVGhlbWUpLCAKKy0gICAgICAgICAgICAgICAgRmJUazo6U2VsZWN0Mm5kPEljb25N YXA6OnZhbHVlX3R5cGU+KCkpKTsKKysgICAgLy9GYlRrOjpTVExVdGlsOjpmb3JBbGwobV9pY29u cywgCisrICAgIC8vICAgICAgICBGYlRrOjpDb21wb3NlKHN0ZDo6bWVtX2Z1bigmSWNvbkJ1dHRv bjo6cmVjb25maWdUaGVtZSksIAorKyAgICAvLyAgICAgICAgICAgIEZiVGs6OlNlbGVjdDJuZDxJ Y29uTWFwOjp2YWx1ZV90eXBlPigpKSk7CisgCisgfQorIAorQEAgLTU2MCw3ICs1OTAsNyBAQCB2 b2lkIEljb25iYXJUb29sOjpyZW5kZXJCdXR0b24oSWNvbkJ1dHRvbiAmYnV0dG9uLCBib29sIGNs ZWFyKSB7CisgCisgICAgIGJ1dHRvbi5zZXRQaXhtYXAoKm1fcmNfdXNlX3BpeG1hcCk7CisgICAg IGJ1dHRvbi5zZXRUZXh0UGFkZGluZygqbV9yY19jbGllbnRfcGFkZGluZyk7CistICAgIGJ1dHRv bi5yZWNvbmZpZ1RoZW1lKCk7CisrICAgIC8vYnV0dG9uLnJlY29uZmlnVGhlbWUoKTsKKyAgICAg aWYgKGNsZWFyKQorICAgICAgICAgYnV0dG9uLmNsZWFyKCk7IC8vIHRoZSBjbGVhciBhbHNvIHVw ZGF0ZXMgdHJhbnNwYXJlbnQKKyB9CitkaWZmIC0tZ2l0IGEvc3JjL0ljb25iYXJUb29sLmhoIGIv c3JjL0ljb25iYXJUb29sLmhoCitpbmRleCBkZjZkOWE2NS4uMWMyMTAxYWMgMTAwNjQ0CistLS0g YS9zcmMvSWNvbmJhclRvb2wuaGgKKysrKyBiL3NyYy9JY29uYmFyVG9vbC5oaAorQEAgLTEwNiw2 ICsxMDYsOSBAQCBwcml2YXRlOgorIAorICAgICB2b2lkIHRoZW1lUmVjb25maWd1cmVkKCk7Cisg CisrICAgIHZvaWQgcmVzZXRMb2NrKCk7CisrICAgIHZvaWQgdW5sb2NrU2lnKCk7CisrICAgIEZi VGs6OlRpbWVyIG1fbG9ja2VyX3RpbWVyOworICAgICBGYlRrOjpUaW1lciBtX3Jlc2l6ZVNpZ190 aW1lcjsKKyAgICAgdm9pZCBlbWl0UmVzaXplU2lnKCk7CisgCitAQCAtMTI4LDYgKzEzMSw3IEBA IHByaXZhdGU6CisgICAgIEZiTWVudSBtX21lbnU7CisgICAgIGludCBtX2FscGhhOworICAgICBz dGF0aWMgc3RkOjpzdHJpbmcgc19pY29uaWZpZWREZWNvcmF0aW9uWzJdOworKyAgICBib29sIG1f bG9ja19nZnggPSBmYWxzZTsKKyB9OworIAorICNlbmRpZiAvLyBJQ09OQkFSVE9PTF9ISApkaWZm IC0tZ2l0IGEvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvY29udGFpbmVyX3JlbGF0aXZlX3JlbGF0 aXZlLnBhdGNoIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvY29udGFpbmVyX3JlbGF0aXZlX3Jl bGF0aXZlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZGMz ZGRiNTE4MWI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvY29u dGFpbmVyX3JlbGF0aXZlX3JlbGF0aXZlLnBhdGNoCkBAIC0wLDAgKzEsMTUgQEAKK2RpZmYgLS1n aXQgYS9zcmMvRmJUay9Db250YWluZXIuY2MgYi9zcmMvRmJUay9Db250YWluZXIuY2MKK2luZGV4 IGNlYTc2MWIzLi4wZTA1MGEwYiAxMDA2NDQKKy0tLSBhL3NyYy9GYlRrL0NvbnRhaW5lci5jYwor KysrIGIvc3JjL0ZiVGsvQ29udGFpbmVyLmNjCitAQCAtMzY1LDYgKzM2NSw5IEBAIHZvaWQgQ29u dGFpbmVyOjpyZXBvc2l0aW9uSXRlbXMoKSB7CisgICAgIGNvbnN0IEl0ZW1MaXN0OjppdGVyYXRv ciBpdF9lbmQgPSBlbmQoKTsKKworICAgICBpbnQgcm91bmRpbmdfZXJyb3IgPSAwOworKyAgICBp ZiAoYWxpZ24gPT0gUkVMQVRJVkUgfHwgdG90YWxfd2lkdGggPT0gbV9tYXhfdG90YWxfc2l6ZSkg eworKyAgICAgICAgcm91bmRpbmdfZXJyb3IgPSB0b3RhbF93aWR0aCAtICgobWF4X3dpZHRoX3Bl cl9jbGllbnQgKyBib3JkZXJXKSogbnVtX2l0ZW1zIC0gYm9yZGVyVyk7CisrICAgIH0KKworICAg ICBpbnQgbmV4dF94ID0gLWJvcmRlclc7IC8vIHplcm8gc28gdGhlIGJvcmRlciBvZiB0aGUgZmly c3Qgc2hvd3MKKyAgICAgaW50IGV4dHJhID0gMDsKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mbHV4 Ym94L3BhdGNoZXMvZmx1eF9pbXByb3ZlLnBhdGNoIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMv Zmx1eF9pbXByb3ZlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uMTNhMWFlYmE2MjFjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNo ZXMvZmx1eF9pbXByb3ZlLnBhdGNoCkBAIC0wLDAgKzEsMjA1IEBACitkaWZmIC0tZ2l0IGEvc3Jj L0V3bWguY2MgYi9zcmMvRXdtaC5jYworaW5kZXggZTEyYTc5MjMuLmRiMWRkZDQ1IDEwMDY0NAor LS0tIGEvc3JjL0V3bWguY2MKKysrKyBiL3NyYy9Fd21oLmNjCitAQCAtMTA5NiwxNSArMTA5Niwx OSBAQCBib29sIEV3bWg6OmNoZWNrQ2xpZW50TWVzc2FnZShjb25zdCBYQ2xpZW50TWVzc2FnZUV2 ZW50ICZjZSwKKyAgICAgICAgIC8vIGNlLmRhdGEubFswXSA9IHRoZSBhY3Rpb24gKHJlbW92ZSwg YWRkIG9yIHRvZ2dsZSkKKyAgICAgICAgIC8vIGNlLmRhdGEubFsxXSA9IHRoZSBmaXJzdCBwcm9w ZXJ0eSB0byBhbHRlcgorICAgICAgICAgLy8gY2UuZGF0YS5sWzJdID0gc2Vjb25kIHByb3BlcnR5 IHRvIGFsdGVyIChjYW4gYmUgemVybykKKy0gICAgICAgIGlmIChjZS5kYXRhLmxbMF0gPT0gU1RB VEVfUkVNT1ZFKSB7CistICAgICAgICAgICAgc2V0U3RhdGUod2luLCBjZS5kYXRhLmxbMV0sIGZh bHNlLCAqd2luY2xpZW50KTsKKy0gICAgICAgICAgICBzZXRTdGF0ZSh3aW4sIGNlLmRhdGEubFsy XSwgZmFsc2UsICp3aW5jbGllbnQpOworLSAgICAgICAgfSBlbHNlIGlmIChjZS5kYXRhLmxbMF0g PT0gU1RBVEVfQUREKSB7CistICAgICAgICAgICAgc2V0U3RhdGUod2luLCBjZS5kYXRhLmxbMV0s IHRydWUsICp3aW5jbGllbnQpOworLSAgICAgICAgICAgIHNldFN0YXRlKHdpbiwgY2UuZGF0YS5s WzJdLCB0cnVlLCAqd2luY2xpZW50KTsKKy0gICAgICAgIH0gZWxzZSBpZiAoY2UuZGF0YS5sWzBd ID09IFNUQVRFX1RPR0dMRSkgeworLSAgICAgICAgICAgIHRvZ2dsZVN0YXRlKHdpbiwgY2UuZGF0 YS5sWzFdKTsKKy0gICAgICAgICAgICB0b2dnbGVTdGF0ZSh3aW4sIGNlLmRhdGEubFsyXSk7Cisr ICAgICAgICBib29sIGFkZHJlbW92ZSA9IGZhbHNlOyAvLyBhZGQgdHJ1ZSwgcmVtb3ZlIGZhbHNl CisrCisrICAgICAgICBzd2l0Y2ggKGNlLmRhdGEubFswXSkgeworKyAgICAgICAgICBjYXNlIFNU QVRFX1RPR0dMRToKKysgICAgICAgICAgICAgIHRvZ2dsZVN0YXRlKHdpbiwgY2UuZGF0YS5sWzFd KTsKKysgICAgICAgICAgICAgIHRvZ2dsZVN0YXRlKHdpbiwgY2UuZGF0YS5sWzJdKTsKKysgICAg ICAgICAgICAgIGJyZWFrOworKyAgICAgICAgICBjYXNlIFNUQVRFX0FERDoKKysgICAgICAgICAg ICAgIGFkZHJlbW92ZSA9IHRydWU7CisrICAgICAgICAgIGNhc2UgU1RBVEVfUkVNT1ZFOgorKyAg ICAgICAgICAgICAgc2V0U3RhdGUod2luLCBjZS5kYXRhLmxbMV0sIGFkZHJlbW92ZSwgKndpbmNs aWVudCk7CisrICAgICAgICAgICAgICBzZXRTdGF0ZSh3aW4sIGNlLmRhdGEubFsyXSwgYWRkcmVt b3ZlLCAqd2luY2xpZW50KTsKKysgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgfQorICAg ICAgICAgcmV0dXJuIHRydWU7CisgICAgIH0gZWxzZSBpZiAoY2UubWVzc2FnZV90eXBlID09IG1f bmV0LT5udW1iZXJfb2ZfZGVza3RvcHMpIHsKK2RpZmYgLS1naXQgYS9zcmMvRmJNZW51UGFyc2Vy LmNjIGIvc3JjL0ZiTWVudVBhcnNlci5jYworaW5kZXggNzE2Y2VkMjkuLjVhNTZlNmY1IDEwMDY0 NAorLS0tIGEvc3JjL0ZiTWVudVBhcnNlci5jYworKysrIGIvc3JjL0ZiTWVudVBhcnNlci5jYwor QEAgLTMzLDkgKzMzLDkgQEAgYm9vbCBGYk1lbnVQYXJzZXI6Om9wZW4oY29uc3Qgc3RkOjpzdHJp bmcgJmZpbGVuYW1lKSB7CisgfQorIAorIEZiVGs6OlBhcnNlciAmRmJNZW51UGFyc2VyOjpvcGVy YXRvciA+PiAoRmJUazo6UGFyc2VyOjpJdGVtICZvdXQpIHsKKy0gICAgaWYgKGVvZigpKSB7ICAg ICAgICAKKysgICAgaWYgKGVvZigpKSB7CisgICAgICAgICBvdXQgPSBGYlRrOjpQYXJzZXI6OnNf ZW1wdHlfaXRlbTsKKy0gICAgICAgIHJldHVybiAqdGhpczsgCisrICAgICAgICByZXR1cm4gKnRo aXM7CisgICAgIH0KKyAKKyAgICAgaWYgKG1fY3Vycl9saW5lLmVtcHR5KCkpCitAQCAtNjksMjAg KzY5LDI2IEBAIEZiVGs6OlBhcnNlciAmRmJNZW51UGFyc2VyOjpvcGVyYXRvciA+PiAoRmJUazo6 UGFyc2VyOjpJdGVtICZvdXQpIHsKKyAgICAgICAgIHJldHVybiAoKnRoaXMpPj5vdXQ7CisgICAg ICAgICBicmVhazsKKyAgICAgfQorLSAgICAKKysKKyAgICAgc3RkOjpzdHJpbmcga2V5OworICAg ICBpbnQgZXJyID0gRmJUazo6U3RyaW5nVXRpbDo6CisgICAgICAgICBnZXRTdHJpbmdCZXR3ZWVu KGtleSwgbV9jdXJyX2xpbmUuY19zdHIoKSArIG1fY3Vycl9wb3MsCisgICAgICAgICAgICAgICAg ICAgICAgICAgIGZpcnN0LCBzZWNvbmQpOworLSAgICBpZiAoZXJyIDw9IDApIHsgICAgICAgIAor LSAgICAgICAgaWYgKG1fY3Vycl90b2tlbiA9PSBUWVBFKQorKyAgICBpZiAoZXJyIDw9IDApIHsK KysgICAgICAgIHN3aXRjaCAobV9jdXJyX3Rva2VuKSB7CisrICAgICAgICAgIGNhc2UgVFlQRToK KyAgICAgICAgICAgICBtX2N1cnJfdG9rZW4gPSBOQU1FOworLSAgICAgICAgZWxzZSBpZiAobV9j dXJyX3Rva2VuID09IE5BTUUpCisrICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgIGNhc2Ug TkFNRToKKyAgICAgICAgICAgICBtX2N1cnJfdG9rZW4gPSBBUkdVTUVOVDsKKy0gICAgICAgIGVs c2UgaWYgKG1fY3Vycl90b2tlbiA9PSBBUkdVTUVOVCkKKysgICAgICAgICAgICBicmVhazsKKysg ICAgICAgICAgY2FzZSBBUkdVTUVOVDoKKyAgICAgICAgICAgICBtX2N1cnJfdG9rZW4gPSBJQ09O OworLSAgICAgICAgZWxzZSBpZiAobV9jdXJyX3Rva2VuID09IElDT04pCisrICAgICAgICAgICAg YnJlYWs7CisrICAgICAgICAgIGNhc2UgSUNPTjoKKyAgICAgICAgICAgICBtX2N1cnJfdG9rZW4g PSBET05FOworKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorIAorICAgICAgICAgb3V0 ID0gRmJUazo6UGFyc2VyOjpzX2VtcHR5X2l0ZW07CisgICAgICAgICByZXR1cm4gKnRoaXM7Citk aWZmIC0tZ2l0IGEvc3JjL1JlbWVtYmVyLmNjIGIvc3JjL1JlbWVtYmVyLmNjCitpbmRleCA0OWU2 MTA2Mi4uNGYwYmEzZGIgMTAwNjQ0CistLS0gYS9zcmMvUmVtZW1iZXIuY2MKKysrKyBiL3NyYy9S ZW1lbWJlci5jYworQEAgLTgwMiwzOSArODAyLDQxIEBAIHZvaWQgUmVtZW1iZXI6OnJlbG9hZCgp IHsKKyAgICAgICAgICAgICBpbnQgcG9zID0gZ2V0U3RyaW5nQmV0d2VlbihrZXksIGxpbmUuY19z dHIoKSwgJ1snLCAnXScpOworICAgICAgICAgICAgIHN0cmluZyBsY19rZXkgPSB0b0xvd2VyKGtl eSk7CisgCistICAgICAgICAgICAgaWYgKHBvcyA+IDAgJiYgKGxjX2tleSA9PSAiYXBwIiB8fCBs Y19rZXkgPT0gInRyYW5zaWVudCIpKSB7CistICAgICAgICAgICAgICAgIENsaWVudFBhdHRlcm4g KnBhdCA9IG5ldyBDbGllbnRQYXR0ZXJuKGxpbmUuY19zdHIoKSArIHBvcyk7CistICAgICAgICAg ICAgICAgIGlmICghaW5fZ3JvdXApIHsKKy0gICAgICAgICAgICAgICAgICAgIGlmICgoZXJyID0g cGF0LT5lcnJvcigpKSA9PSAwKSB7CistICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCB0cmFu c2llbnQgPSAobGNfa2V5ID09ICJ0cmFuc2llbnQiKTsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBBcHBsaWNhdGlvbiAqYXBwID0gZmluZE1hdGNoaW5nUGF0dGVybnMocGF0LAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkX3BhdHMsIHRyYW5zaWVu dCwgZmFsc2UpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcHApIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXBwLT5yZXNldCgpOworLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZXVzZWRfYXBwcy5pbnNlcnQoYXBwKTsKKysgICAgICAgICAgICBpZiAocG9zID4g MCkgeworKyAgICAgICAgICAgICAgICBpZiAobGNfa2V5ID09ICJhcHAiIHx8IGxjX2tleSA9PSAi dHJhbnNpZW50IikgeworKyAgICAgICAgICAgICAgICAgICAgQ2xpZW50UGF0dGVybiAqcGF0ID0g bmV3IENsaWVudFBhdHRlcm4obGluZS5jX3N0cigpICsgcG9zKTsKKysgICAgICAgICAgICAgICAg ICAgIGlmICghaW5fZ3JvdXApIHsKKysgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGVyciA9 IHBhdC0+ZXJyb3IoKSkgPT0gMCkgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s IHRyYW5zaWVudCA9IChsY19rZXkgPT0gInRyYW5zaWVudCIpOworKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBBcHBsaWNhdGlvbiAqYXBwID0gZmluZE1hdGNoaW5nUGF0dGVybnMocGF0LAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZF9w YXRzLCB0cmFuc2llbnQsIGZhbHNlKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg KGFwcCkgeworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwLT5yZXNldCgpOwor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV1c2VkX2FwcHMuaW5zZXJ0KGFwcCk7 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhcHAgPSBuZXcgQXBwbGljYXRpb24odHJhbnNpZW50LCBmYWxzZSk7 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKysKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbV9wYXRzLT5wdXNoX2JhY2sobWFrZV9wYWlyKHBhdCwgYXBwKSk7CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJvdyArPSBwYXJzZUFwcChhcHBzX2ZpbGUsICphcHApOwor ICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFwcCA9IG5ldyBBcHBsaWNhdGlvbih0cmFuc2llbnQsIGZhbHNlKTsKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY2Vycjw8IkVycm9yIHJlYWRpbmcgYXBwcyBmaWxlIGF0IGxp bmUgIjw8cm93PDwiLCBjb2x1bW4gIjw8KGVycitwb3MpPDwiLiI8PGVuZGw7CisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXQ7IC8vIHNpbmNlIGl0IGRpZG4ndCB3b3JrCisg ICAgICAgICAgICAgICAgICAgICAgICAgfQorLQorLSAgICAgICAgICAgICAgICAgICAgICAgIG1f cGF0cy0+cHVzaF9iYWNrKG1ha2VfcGFpcihwYXQsIGFwcCkpOworLSAgICAgICAgICAgICAgICAg ICAgICAgIHJvdyArPSBwYXJzZUFwcChhcHBzX2ZpbGUsICphcHApOworICAgICAgICAgICAgICAg ICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICBjZXJyPDwiRXJyb3IgcmVh ZGluZyBhcHBzIGZpbGUgYXQgbGluZSAiPDxyb3c8PCIsIGNvbHVtbiAiPDwoZXJyK3Bvcyk8PCIu Ijw8ZW5kbDsKKy0gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgcGF0OyAvLyBzaW5jZSBp dCBkaWRuJ3Qgd29yaworKyAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwZWRfcGF0cy5wdXNo X2JhY2socGF0KTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgfSBl bHNlIHsKKy0gICAgICAgICAgICAgICAgICAgIGdyb3VwZWRfcGF0cy5wdXNoX2JhY2socGF0KTsK Ky0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIH0gZWxzZSBpZiAocG9zID4gMCAmJiBs Y19rZXkgPT0gInN0YXJ0dXAiICYmIGZiLmlzU3RhcnR1cCgpKSB7CistICAgICAgICAgICAgICAg IGlmICghaGFuZGxlU3RhcnR1cEl0ZW0obGluZSwgcG9zKSkgeworLSAgICAgICAgICAgICAgICAg ICAgY2Vycjw8IkVycm9yIHJlYWRpbmcgYXBwcyBmaWxlIGF0IGxpbmUgIjw8cm93PDwiLiI8PGVu ZGw7CisrICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGNfa2V5ID09ICJzdGFydHVwIiAmJiBm Yi5pc1N0YXJ0dXAoKSkgeworKyAgICAgICAgICAgICAgICAgICAgaWYgKCFoYW5kbGVTdGFydHVw SXRlbShsaW5lLCBwb3MpKSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgY2Vycjw8IkVycm9y IHJlYWRpbmcgYXBwcyBmaWxlIGF0IGxpbmUgIjw8cm93PDwiLiI8PGVuZGw7CisrICAgICAgICAg ICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICAgICAvLyBzYXZlIHRoZSBpdGVtIGV2ZW4g aWYgaXQgd2FzIGJhZCAoYXJlbid0IHdlIG5pY2UpCisrICAgICAgICAgICAgICAgICAgICBtX3N0 YXJ0dXBzLnB1c2hfYmFjayhsaW5lLnN1YnN0cihwb3MpKTsKKysgICAgICAgICAgICAgICAgfSBl bHNlIGlmIChsY19rZXkgPT0gImdyb3VwIikgeworKyAgICAgICAgICAgICAgICAgICAgaW5fZ3Jv dXAgPSB0cnVlOworKyAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmUuZmluZCgnKCcpICE9IHN0 cmluZzo6bnBvcykKKysgICAgICAgICAgICAgICAgICAgICAgICBwYXQgPSBuZXcgQ2xpZW50UGF0 dGVybihsaW5lLmNfc3RyKCkgKyBwb3MpOworICAgICAgICAgICAgICAgICB9CistICAgICAgICAg ICAgICAgIC8vIHNhdmUgdGhlIGl0ZW0gZXZlbiBpZiBpdCB3YXMgYmFkIChhcmVuJ3Qgd2Ugbmlj ZSkKKy0gICAgICAgICAgICAgICAgbV9zdGFydHVwcy5wdXNoX2JhY2sobGluZS5zdWJzdHIocG9z KSk7CistICAgICAgICAgICAgfSBlbHNlIGlmIChwb3MgPiAwICYmIGxjX2tleSA9PSAiZ3JvdXAi KSB7CistICAgICAgICAgICAgICAgIGluX2dyb3VwID0gdHJ1ZTsKKy0gICAgICAgICAgICAgICAg aWYgKGxpbmUuZmluZCgnKCcpICE9IHN0cmluZzo6bnBvcykKKy0gICAgICAgICAgICAgICAgICAg IHBhdCA9IG5ldyBDbGllbnRQYXR0ZXJuKGxpbmUuY19zdHIoKSArIHBvcyk7CisgICAgICAgICAg ICAgfSBlbHNlIGlmIChpbl9ncm91cCkgeworICAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2Ug YXNzdW1lIHRoYXQgaXQgaXMgdGhlIHN0YXJ0IG9mIHRoZSBhdHRyaWJ1dGVzCisgICAgICAgICAg ICAgICAgIEFwcGxpY2F0aW9uICphcHAgPSAwOworZGlmZiAtLWdpdCBhL3NyYy9TeXN0ZW1UcmF5 LmNjIGIvc3JjL1N5c3RlbVRyYXkuY2MKK2luZGV4IDhjNDI4NzdhLi4xZmMyYjBhOCAxMDA2NDQK Ky0tLSBhL3NyYy9TeXN0ZW1UcmF5LmNjCisrKysgYi9zcmMvU3lzdGVtVHJheS5jYworQEAgLTU1 MCwxMCArNTUwLDEyIEBAIHZvaWQgU3lzdGVtVHJheTo6cmVhcnJhbmdlQ2xpZW50cygpIHsKKyAg ICAgQ2xpZW50TGlzdDo6aXRlcmF0b3IgY2xpZW50X2l0ID0gbV9jbGllbnRzLmJlZ2luKCk7Cisg ICAgIENsaWVudExpc3Q6Oml0ZXJhdG9yIGNsaWVudF9pdF9lbmQgPSBtX2NsaWVudHMuZW5kKCk7 CisgICAgIGludCBuZXh0X3ggPSBidzsKKysgICAgaW50IHgsIHk7CisgICAgIGZvciAoOyBjbGll bnRfaXQgIT0gY2xpZW50X2l0X2VuZDsgKytjbGllbnRfaXQpIHsKKyAgICAgICAgIGlmICghKCpj bGllbnRfaXQpLT5pc1Zpc2libGUoKSkKKyAgICAgICAgICAgICBjb250aW51ZTsKKy0gICAgICAg IGludCB4ID0gbmV4dF94LCB5ID0gYnc7CisrICAgICAgICB4ID0gbmV4dF94OworKyAgICAgICAg eSA9IGJ3OworICAgICAgICAgbmV4dF94ICs9IGhfcm90MCtidzsKKyAgICAgICAgIHRyYW5zbGF0 ZUNvb3JkcyhvcmllbnRhdGlvbigpLCB4LCB5LCB3X3JvdDAsIGhfcm90MCk7CisgICAgICAgICB0 cmFuc2xhdGVQb3NpdGlvbihvcmllbnRhdGlvbigpLCB4LCB5LCBoX3JvdDAsIGhfcm90MCwgMCk7 CitkaWZmIC0tZ2l0IGEvc3JjL1dpbmRvdy5jYyBiL3NyYy9XaW5kb3cuY2MKK2luZGV4IDM0MmU0 ODg1Li43MTNkMTUxMCAxMDA2NDQKKy0tLSBhL3NyYy9XaW5kb3cuY2MKKysrKyBiL3NyYy9XaW5k b3cuY2MKK0BAIC0zMjY3LDE0ICszMjY3LDE4IEBAIHZvaWQgRmx1eGJveFdpbmRvdzo6ZG9TbmFw cGluZyhpbnQgJm9yaWdfbGVmdCwgaW50ICZvcmlnX3RvcCwgYm9vbCByZXNpemUpIHsKKyBGbHV4 Ym94V2luZG93OjpSZWZlcmVuY2VDb3JuZXIgRmx1eGJveFdpbmRvdzo6Z2V0UmVzaXplRGlyZWN0 aW9uKGludCB4LCBpbnQgeSwKKyAgICAgICAgIFJlc2l6ZU1vZGVsIG1vZGVsLCBpbnQgY29ybmVy X3NpemVfcHgsIGludCBjb3JuZXJfc2l6ZV9wYykgY29uc3QKKyB7CistICAgIGlmIChtb2RlbCA9 PSBUT1BMRUZUUkVTSVpFKSAgICAgcmV0dXJuIExFRlRUT1A7CistICAgIGlmIChtb2RlbCA9PSBU T1BSRVNJWkUpICAgICAgICAgcmV0dXJuIFRPUDsKKy0gICAgaWYgKG1vZGVsID09IFRPUFJJR0hU UkVTSVpFKSAgICByZXR1cm4gUklHSFRUT1A7CistICAgIGlmIChtb2RlbCA9PSBMRUZUUkVTSVpF KSAgICAgICAgcmV0dXJuIExFRlQ7CistICAgIGlmIChtb2RlbCA9PSBSSUdIVFJFU0laRSkgICAg ICAgcmV0dXJuIFJJR0hUOworLSAgICBpZiAobW9kZWwgPT0gQk9UVE9NTEVGVFJFU0laRSkgIHJl dHVybiBMRUZUQk9UVE9NOworLSAgICBpZiAobW9kZWwgPT0gQk9UVE9NUkVTSVpFKSAgICAgIHJl dHVybiBCT1RUT007CistICAgIGlmIChtb2RlbCA9PSBDRU5URVJSRVNJWkUpICAgICAgcmV0dXJu IENFTlRFUjsKKysgICAgc3dpdGNoIChtb2RlbCkgeworKyAgICBjYXNlIFRPUExFRlRSRVNJWkU6 ICAgICByZXR1cm4gTEVGVFRPUDsKKysgICAgY2FzZSBUT1BSRVNJWkU6ICAgICAgICAgcmV0dXJu IFRPUDsKKysgICAgY2FzZSBUT1BSSUdIVFJFU0laRTogICAgcmV0dXJuIFJJR0hUVE9QOworKyAg ICBjYXNlIExFRlRSRVNJWkU6ICAgICAgICByZXR1cm4gTEVGVDsKKysgICAgY2FzZSBSSUdIVFJF U0laRTogICAgICAgcmV0dXJuIFJJR0hUOworKyAgICBjYXNlIEJPVFRPTUxFRlRSRVNJWkU6ICBy ZXR1cm4gTEVGVEJPVFRPTTsKKysgICAgY2FzZSBCT1RUT01SRVNJWkU6ICAgICAgcmV0dXJuIEJP VFRPTTsKKysgICAgY2FzZSBDRU5URVJSRVNJWkU6ICAgICAgcmV0dXJuIENFTlRFUjsKKysgICAg ZGVmYXVsdDoKKysgICAgYnJlYWs7CisrICAgIH0KKyAKKyAgICAgaWYgKG1vZGVsID09IEVER0VP UkNPUk5FUlJFU0laRSkKKyAgICAgewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mbHV4Ym94L3BhdGNo ZXMvZmx1eF9vdmVyc2l6ZS5wYXRjaCBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2ZsdXhfb3Zl cnNpemUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45OGQ3 MGQzYjAzN2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9mbHV4 X292ZXJzaXplLnBhdGNoCkBAIC0wLDAgKzEsMjQgQEAKK2RpZmYgLS1naXQgYS9zcmMvV2luZG93 LmNjIGIvc3JjL1dpbmRvdy5jYworaW5kZXggMzQyZTQ4ODUuLjAyZDEwZTkwIDEwMDY0NAorLS0t IGEvc3JjL1dpbmRvdy5jYworKysrIGIvc3JjL1dpbmRvdy5jYworQEAgLTUzMiwxOSArNTMyLDE0 IEBAIHZvaWQgRmx1eGJveFdpbmRvdzo6aW5pdCgpIHsKKyAgICAgaWYgKCFtX3N0YXRlLmZ1bGxz Y3JlZW4pIHsKKyAgICAgICAgIHVuc2lnbmVkIGludCBuZXdfd2lkdGggPSAwLCBuZXdfaGVpZ2h0 ID0gMDsKKyAgICAgICAgIGlmIChtX2NsaWVudC0+d2lkdGgoKSA+PSBzY3JlZW4oKS53aWR0aCgp KSB7CistICAgICAgICAgICAgbV9zdGF0ZS5tYXhpbWl6ZWQgfD0gV2luZG93U3RhdGU6Ok1BWF9I T1JaOworICAgICAgICAgICAgIG5ld193aWR0aCA9IDIgKiBzY3JlZW4oKS53aWR0aCgpIC8gMzsK KyAgICAgICAgIH0KKyAgICAgICAgIGlmIChtX2NsaWVudC0+aGVpZ2h0KCkgPj0gc2NyZWVuKCku aGVpZ2h0KCkpIHsKKy0gICAgICAgICAgICBtX3N0YXRlLm1heGltaXplZCB8PSBXaW5kb3dTdGF0 ZTo6TUFYX1ZFUlQ7CisgICAgICAgICAgICAgbmV3X2hlaWdodCA9IDIgKiBzY3JlZW4oKS5oZWln aHQoKSAvIDM7CisgICAgICAgICB9CisgICAgICAgICBpZiAobmV3X3dpZHRoIHx8IG5ld19oZWln aHQpIHsKKy0gICAgICAgICAgICBjb25zdCBpbnQgbWF4aW1pemVkID0gbV9zdGF0ZS5tYXhpbWl6 ZWQ7CistICAgICAgICAgICAgbV9zdGF0ZS5tYXhpbWl6ZWQgPSBXaW5kb3dTdGF0ZTo6TUFYX05P TkU7CisgICAgICAgICAgICAgcmVzaXplKG5ld193aWR0aCA/IG5ld193aWR0aCA6IHdpZHRoKCks IG5ld19oZWlnaHQgPyBuZXdfaGVpZ2h0IDogaGVpZ2h0KCkpOworICAgICAgICAgICAgIG1fcGxh Y2VkID0gZmFsc2U7CistICAgICAgICAgICAgbV9zdGF0ZS5tYXhpbWl6ZWQgPSBtYXhpbWl6ZWQ7 CisgICAgICAgICB9CisgICAgIH0KKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmx1eGJveC9wYXRj aGVzL2ZvY3VzX2Nsb3NlX21lbnUucGF0Y2ggYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9mb2N1 c19jbG9zZV9tZW51LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uMDE4MzBjZjUzNDYwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNo ZXMvZm9jdXNfY2xvc2VfbWVudS5wYXRjaApAQCAtMCwwICsxLDE3IEBACitkaWZmIC0tZ2l0IGEv c3JjL0ZvY3VzQ29udHJvbC5jYyBiL3NyYy9Gb2N1c0NvbnRyb2wuY2MKK2luZGV4IDU0YzNkNDZj Li43ZTQ5ZmY1MSAxMDA2NDQKKy0tLSBhL3NyYy9Gb2N1c0NvbnRyb2wuY2MKKysrKyBiL3NyYy9G b2N1c0NvbnRyb2wuY2MKK0BAIC0yNDcsMTEgKzI0Nyw3IEBAIHZvaWQgRm9jdXNDb250cm9sOjpz dG9wQ3ljbGluZ0ZvY3VzKCkgeworIAorICAgICAvLyBwdXQgY3VycmVudGx5IGZvY3VzZWQgd2lu ZG93IHRvIHRvcAorICAgICBpZiAoc19mb2N1c2VkX3dpbmRvdykgeworLSAgICAgICAgLy8gcmUt Zm9jdXMgbGFzdCB3aW5kb3cgdG8gZ2l2ZSB0aGUgY2xpZW50IGEgY2hhbmNlIHRvIHJlZGlzdHJp YnV0ZSB0aGUKKy0gICAgICAgIC8vIGZvY3VzIGludGVybmFsbHkgKGNsaWVudC1zaWRlIG9ubHkg bW9kYWxpdHkpCistICAgICAgICBzX2ZvY3VzZWRfd2luZG93LT5mb2N1cygpOworLSAgICAgICAg aWYgKHNfZm9jdXNlZF93aW5kb3cpCistICAgICAgICAgICAgc2V0U2NyZWVuRm9jdXNlZFdpbmRv dygqc19mb2N1c2VkX3dpbmRvdyk7CisrICAgICAgICBzZXRTY3JlZW5Gb2N1c2VkV2luZG93KCpz X2ZvY3VzZWRfd2luZG93KTsKKyAgICAgICAgIGlmIChzX2ZvY3VzZWRfZmJ3aW5kb3cpCisgICAg ICAgICAgICAgc19mb2N1c2VkX2Zid2luZG93LT5yYWlzZSgpOworICAgICB9IGVsc2UKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3NsaXRfcmFpc2UucGF0Y2ggYi9zcmNwa2dz L2ZsdXhib3gvcGF0Y2hlcy9zbGl0X3JhaXNlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uYTNiYzAxYzdhYzg1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9mbHV4Ym94L3BhdGNoZXMvc2xpdF9yYWlzZS5wYXRjaApAQCAtMCwwICsxLDE2IEBACitkaWZm IC0tZ2l0IGEvc3JjL1NsaXQuY2MgYi9zcmMvU2xpdC5jYworaW5kZXggOWJhZWNmMjEuLjYzZWQ4 MjY5IDEwMDY0NAorLS0tIGEvc3JjL1NsaXQuY2MKKysrKyBiL3NyYy9TbGl0LmNjCitAQCAtOTU4 LDggKzk1OCw4IEBAIHZvaWQgU2xpdDo6YnV0dG9uUHJlc3NFdmVudChYQnV0dG9uRXZlbnQgJmJl KSB7CisgICAgICAgICByZXR1cm47CisgICAgIH0KKworLSAgICBpZiAoYmUuYnV0dG9uID09IDEp CistICAgICAgICBmcmFtZS53aW5kb3cucmFpc2UoKTsKKysgICAgLy9pZiAoYmUuYnV0dG9uID09 IDEpCisrICAgIC8vICAgIGZyYW1lLndpbmRvdy5yYWlzZSgpOworCisgICAgIGlmIChiZS5idXR0 b24gIT0gQnV0dG9uMykgeworICAgICAgICAgWEFsbG93RXZlbnRzKGRweSwgUmVwbGF5UG9pbnRl ciwgQ3VycmVudFRpbWUpOworCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy90 b29sYmFyX3JlZG8ucGF0Y2ggYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy90b29sYmFyX3JlZG8u cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5jYTk1NDg2NTgz Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy90b29sYmFyX3Jl ZG8ucGF0Y2gKQEAgLTAsMCArMSwyMjggQEAKK2RpZmYgLS1naXQgYS9zcmMvVG9vbGJhci5jYyBi L3NyYy9Ub29sYmFyLmNjCitpbmRleCBhYTliYzEyMS4uZWU4YjhiZmMgMTAwNjQ0CistLS0gYS9z cmMvVG9vbGJhci5jYworKysrIGIvc3JjL1Rvb2xiYXIuY2MKK0BAIC03NCw3ICs3NCw3IEBAIHVz aW5nIEZiVGs6OlNUTFV0aWw6OmZvckFsbDsKKyAKKyBuYW1lc3BhY2UgeworIAorLWNvbnN0IHN0 cnVjdCB7IAorK2NvbnN0IHN0cnVjdCB7CisgICAgIFRvb2xiYXI6OlBsYWNlbWVudCBwbGFjZW1l bnQ7CisgICAgIGNvbnN0IGNoYXIqIHN0cjsKKyAgICAgRmJUazo6T3JpZW50YXRpb24gb3JpZW50 OworQEAgLTM2MiwxMyArMzYyLDE2IEBAIHZvaWQgVG9vbGJhcjo6bG93ZXIoKSB7CisgfQorIAor IHZvaWQgVG9vbGJhcjo6c2NyZWVuQ2hhbmdlZChCU2NyZWVuICZzY3JlZW4pIHsKKy0gICAgcmVj b25maWd1cmUoKTsKKysgICAgLy9yZWNvbmZpZ3VyZSgpOworIH0KKyAKKyB2b2lkIFRvb2xiYXI6 OnJlbGF5b3V0KCkgeworLSAgICBmb3JBbGwobV9pdGVtX2xpc3QsIHN0ZDo6bWVtX2Z1bigmVG9v bGJhckl0ZW06OnVwZGF0ZVNpemluZykpOworLSAgICByZWFycmFuZ2VJdGVtcygpOworLSAgICBm b3JBbGwobV9pdGVtX2xpc3QsIHN0ZDo6YmluZDJuZChzdGQ6Om1lbV9mdW4oJlRvb2xiYXJJdGVt OjpyZW5kZXJUaGVtZSksIGFscGhhKCkpKTsKKysgICAgLy9mb3IgKGF1dG8gaXQgOiBtX2l0ZW1f bGlzdCkgICAgKCppdGVtX2l0KS0+dXBkYXRlU2l6aW5nKCk7CisrICAgIC8vcmVhcnJhbmdlSXRl bXMoKTsKKysgICAgLy9mb3IgKGF1dG8gaXQgOiBtX2l0ZW1fbGlzdCkgICAgKCppdGVtX2l0KS0+ cmVuZGVyVGhlbWUoYWxwaGEoKSk7CisrICAgIC8vZm9yQWxsKG1faXRlbV9saXN0LCBzdGQ6Om1l bV9mdW4oJlRvb2xiYXJJdGVtOjp1cGRhdGVTaXppbmcpKTsKKysgICAgLy9yZWFycmFuZ2VJdGVt cygpOworKyAgICAvL2ZvckFsbChtX2l0ZW1fbGlzdCwgc3RkOjpiaW5kMm5kKHN0ZDo6bWVtX2Z1 bigmVG9vbGJhckl0ZW06OnJlbmRlclRoZW1lKSwgYWxwaGEoKSkpOworIH0KKyAKKyB2b2lkIFRv b2xiYXI6OnJlY29uZmlndXJlKCkgeworQEAgLTU1NywxMiArNTYwLDE2IEBAIHZvaWQgVG9vbGJh cjo6YnV0dG9uUHJlc3NFdmVudChYQnV0dG9uRXZlbnQgJmJlKSB7CisgfQorIAorIHZvaWQgVG9v bGJhcjo6dXBkYXRlQ3Jvc3NpbmdTdGF0ZSgpIHsKKy0gICAgV2luZG93IHdyLCB3YzsKKy0gICAg aW50IHJ4LCByeSwgeCwgeTsKKysgICAgLy9XaW5kb3cgd3IsIHdjOworKyAgICAvL2ludCByeCwg cnksIHgsIHk7CisrICAgIC8vdW5zaWduZWQgaW50IG1hc2s7CisrICAgIFdpbmRvdyB3cmM7Cisr ICAgIGludCByeHksIHgsIHk7CisgICAgIHVuc2lnbmVkIGludCBtYXNrOworICAgICBjb25zdCBp bnQgYncgPSAtdGhlbWUoKS0+Ym9yZGVyKCkud2lkdGgoKTsKKyAgICAgYm9vbCBob3ZlcmVkID0g ZmFsc2U7CistICAgIGlmIChYUXVlcnlQb2ludGVyKEZsdXhib3g6Omluc3RhbmNlKCktPmRpc3Bs YXkoKSwgd2luZG93KCkud2luZG93KCksICZ3ciwgJndjLCAmcngsICZyeSwgJngsICZ5LCAmbWFz aykpCisrICAgIC8vaWYgKFhRdWVyeVBvaW50ZXIoRmx1eGJveDo6aW5zdGFuY2UoKS0+ZGlzcGxh eSgpLCB3aW5kb3coKS53aW5kb3coKSwgJndyLCAmd2MsICZyeCwgJnJ5LCAmeCwgJnksICZtYXNr KSkKKysgICAgaWYgKFhRdWVyeVBvaW50ZXIoRmx1eGJveDo6aW5zdGFuY2UoKS0+ZGlzcGxheSgp LCB3aW5kb3coKS53aW5kb3coKSwgJndyYywgJndyYywgJnJ4eSwgJnJ4eSwgJngsICZ5LCAmbWFz aykpCisgICAgICAgICBob3ZlcmVkID0geCA+PSBidyAmJiB5ID49IGJ3ICYmIHggPCBpbnQod2lk dGgoKSkgJiYgeSA8IGludChoZWlnaHQoKSk7CisgICAgIGlmIChob3ZlcmVkKSB7CisgICAgICAg ICBpZiAobV9yY19hdXRvX3JhaXNlKQorQEAgLTkxMCwyNSArOTE3LDI2IEBAIHZvaWQgVG9vbGJh cjo6cmVhcnJhbmdlSXRlbXMoKSB7CisgICAgIC8vIGxvY2sgdGhpcworICAgICBtX3Jlc2l6ZV9s b2NrID0gdHJ1ZTsKKyAgICAgLy8gY2FsY3VsYXRlIHNpemUgZm9yIGZpeGVkIGl0ZW1zCistICAg IEl0ZW1MaXN0OjppdGVyYXRvciBpdGVtX2l0ID0gbV9pdGVtX2xpc3QuYmVnaW4oKTsKKy0gICAg SXRlbUxpc3Q6Oml0ZXJhdG9yIGl0ZW1faXRfZW5kID0gbV9pdGVtX2xpc3QuZW5kKCk7CisrICAg IC8vSXRlbUxpc3Q6Oml0ZXJhdG9yIGl0ZW1faXQgPSBtX2l0ZW1fbGlzdC5iZWdpbigpOworKyAg ICAvL0l0ZW1MaXN0OjppdGVyYXRvciBpdGVtX2l0X2VuZCA9IG1faXRlbV9saXN0LmVuZCgpOwor ICAgICBpbnQgYmV2ZWxfd2lkdGggPSB0aGVtZSgpLT5iZXZlbFdpZHRoKCk7CisgICAgIGludCBm aXhlZF93aWR0aCA9IGJldmVsX3dpZHRoOyAvLyBjb21iaW5lZCBzaXplIG9mIGFsbCBmaXhlZCBp dGVtcworICAgICBpbnQgcmVsYXRpdmVfd2lkdGggPSAwOyAvLyBjb21iaW5lZCAqZGVzaXJlZCog c2l6ZSBvZiBhbGwgcmVsYXRpdmUgaXRlbXMKKy0gICAgaW50IHN0cmV0Y2hfaXRlbXMgPSAwOwor ICAgICBpbnQgcmVsYXRpdmVfaXRlbXMgPSAwOworICAgICBpbnQgbGFzdF9idyA9IDA7IC8vIHdl IHNob3cgdGhlIGxhcmdlc3QgYm9yZGVyIG9mIGFkam9pbmluZyBpdGVtcworICAgICBib29sIGZp cnN0ID0gdHJ1ZTsKKysgICAgaW50IGxlZnRvdmVyX3dpZHRoID0gMDsKKyAKKyAgICAgdW5zaWdu ZWQgaW50IHdpZHRoID0gdGhpcy0+d2lkdGgoKSwgaGVpZ2h0ID0gdGhpcy0+aGVpZ2h0KCk7Cisg ICAgIHVuc2lnbmVkIGludCB0bXB3LCB0bXBoOworICAgICBGYlRrOjp0cmFuc2xhdGVTaXplKG9y aWVudCwgd2lkdGgsIGhlaWdodCk7CisgCistICAgIGZvciAoOyBpdGVtX2l0ICE9IGl0ZW1faXRf ZW5kOyArK2l0ZW1faXQpIHsKKy0gICAgICAgIGlmICghKCppdGVtX2l0KS0+YWN0aXZlKCkpCisr ICAgIC8vZm9yICg7IGl0ZW1faXQgIT0gaXRlbV9pdF9lbmQ7ICsraXRlbV9pdCkgeworKyAgICBm b3IgKGF1dG8gaXRlbV9pdCA6IG1faXRlbV9saXN0KSB7CisrICAgICAgICBpZiAoISgqaXRlbV9p dCkuYWN0aXZlKCkpCisgICAgICAgICAgICAgY29udGludWU7CisgCistICAgICAgICBpbnQgYm9y ZGVyVyA9ICgqaXRlbV9pdCktPmJvcmRlcldpZHRoKCk7CisrICAgICAgICBpbnQgYm9yZGVyVyA9 ICgqaXRlbV9pdCkuYm9yZGVyV2lkdGgoKTsKKyAKKyAgICAgICAgIGlmIChiZXZlbF93aWR0aCA+ IDApIHsKKyAgICAgICAgICAgICAvLyB0aGUgYmV2ZWwgYW5kIGJvcmRlciBhcmUgZml4ZWQgd2hl dGhlciByZWxhdGl2ZSBvciBub3QKK0BAIC05NDMsMzUgKzk1MSwzNSBAQCB2b2lkIFRvb2xiYXI6 OnJlYXJyYW5nZUl0ZW1zKCkgeworIAorICAgICAgICAgbGFzdF9idyA9IGJvcmRlclc7CisgCist ICAgICAgICB0bXB3ID0gKCppdGVtX2l0KS0+cHJlZmVycmVkV2lkdGgoKTsKKy0gICAgICAgIHRt cGggPSAoKml0ZW1faXQpLT5oZWlnaHQoKTsKKysgICAgICAgIHRtcHcgPSAoKml0ZW1faXQpLnBy ZWZlcnJlZFdpZHRoKCk7CisrICAgICAgICB0bXBoID0gKCppdGVtX2l0KS5oZWlnaHQoKTsKKyAg ICAgICAgIEZiVGs6OnRyYW5zbGF0ZVNpemUob3JpZW50LCB0bXB3LCB0bXBoKTsKKyAKKy0gICAg ICAgIGlmICgoKml0ZW1faXQpLT50eXBlKCkgPT0gVG9vbGJhckl0ZW06OkZJWEVEKSB7CistICAg ICAgICAgICAgZml4ZWRfd2lkdGggKz0gdG1wdzsKKy0gICAgICAgIH0gZWxzZSBpZiAoKCppdGVt X2l0KS0+dHlwZSgpID09IFRvb2xiYXJJdGVtOjpTUVVBUkUpIHsKKy0gICAgICAgICAgICBmaXhl ZF93aWR0aCArPSBoZWlnaHQ7CistICAgICAgICAgICAgaWYgKGJldmVsX3dpZHRoKQorLSAgICAg ICAgICAgICAgICBmaXhlZF93aWR0aCAtPSAyKihib3JkZXJXICsgYmV2ZWxfd2lkdGgpOworLSAg ICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICArK3JlbGF0aXZlX2l0ZW1zOworLSAgICAgICAg ICAgIHJlbGF0aXZlX3dpZHRoICs9IHRtcHc7CistICAgICAgICAgICAgaWYgKCF0bXB3KQorLSAg ICAgICAgICAgICAgICArK3N0cmV0Y2hfaXRlbXM7CisrICAgICAgICBzd2l0Y2ggKCAoKml0ZW1f aXQpLnR5cGUoKSApIHsKKysgICAgICAgICAgICBjYXNlIFRvb2xiYXJJdGVtOjpGSVhFRDoKKysg ICAgICAgICAgICAgICAgZml4ZWRfd2lkdGggKz0gdG1wdzsKKysgICAgICAgICAgICAgICAgYnJl YWs7CisrICAgICAgICAgICAgY2FzZSBUb29sYmFySXRlbTo6U1FVQVJFOgorKyAgICAgICAgICAg ICAgICBmaXhlZF93aWR0aCArPSBoZWlnaHQ7CisrICAgICAgICAgICAgICAgIGlmIChiZXZlbF93 aWR0aCkKKysgICAgICAgICAgICAgICAgICAgIGZpeGVkX3dpZHRoIC09IDIqKGJvcmRlclcgKyBi ZXZlbF93aWR0aCk7CisrICAgICAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgICAgIGNhc2Ug VG9vbGJhckl0ZW06OlJFTEFUSVZFOgorKyAgICAgICAgICAgICAgICArK3JlbGF0aXZlX2l0ZW1z OworKyAgICAgICAgICAgICAgICByZWxhdGl2ZV93aWR0aCArPSB0bXB3OworKyAgICAgICAgICAg ICAgICBicmVhazsKKysgICAgICAgICAgICBkZWZhdWx0OgorKyAgICAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgIH0KKyAgICAgfQorIAorICAgICAvLyBjYWxjdWxhdGUgd2hhdCdzIGdvaW5n IHRvIGJlIGxlZnQgb3ZlciB0byB0aGUgcmVsYXRpdmUgc2l6ZWQgaXRlbXMKKy0gICAgZmxvYXQg c3RyZXRjaF9mYWN0b3IgPSAxLjBmOworICAgICBpZiAocmVsYXRpdmVfaXRlbXMpIHsKKy0gICAg ICAgIGlmIChyZWxhdGl2ZV93aWR0aCA8PSB3aWR0aCAtIGZpeGVkX3dpZHRoICYmIHN0cmV0Y2hf aXRlbXMpIHsKKy0gICAgICAgICAgICByZWxhdGl2ZV93aWR0aCA9IGludCh3aWR0aCAtIGZpeGVk X3dpZHRoIC0gcmVsYXRpdmVfd2lkdGgpL3N0cmV0Y2hfaXRlbXM7CistICAgICAgICB9IGVsc2Ug aWYgKHJlbGF0aXZlX3dpZHRoKSB7CistICAgICAgICAgICAgc3RyZXRjaF9mYWN0b3IgPSBmbG9h dCh3aWR0aCAtIGZpeGVkX3dpZHRoKS9yZWxhdGl2ZV93aWR0aDsKKy0gICAgICAgICAgICByZWxh dGl2ZV93aWR0aCA9IDA7CistICAgICAgICB9CisrICAgICAgICByZWxhdGl2ZV93aWR0aCA9ICh3 aWR0aCAtIGZpeGVkX3dpZHRoKSAvIHJlbGF0aXZlX2l0ZW1zOworKyAgICAgICAgbGVmdG92ZXJf d2lkdGggPSB3aWR0aCAtIGZpeGVkX3dpZHRoIC0gcmVsYXRpdmVfaXRlbXMgKiByZWxhdGl2ZV93 aWR0aDsKKyAgICAgfQorIAorKworICAgICAvLyBub3cgbW92ZSBhbmQgcmVzaXplIHRoZSBpdGVt cworICAgICAvLyBib3JkZXJXaWR0aCBhZGRlZCBiYWNrIG9uIHN0cmFpZ2h0IGF3YXkKKyAgICAg aW50IG5leHRfeCA9IC1tX2l0ZW1fbGlzdC5mcm9udCgpLT5ib3JkZXJXaWR0aCgpOyAvLyBsaXN0 IGlzbid0IGVtcHR5CitAQCAtOTc5LDE5ICs5ODcsMjIgQEAgdm9pZCBUb29sYmFyOjpyZWFycmFu Z2VJdGVtcygpIHsKKyAgICAgICAgIG5leHRfeCA9IDA7CisgCisgICAgIGxhc3RfYncgPSAwOwor LSAgICBmb3IgKGl0ZW1faXQgPSBtX2l0ZW1fbGlzdC5iZWdpbigpOyBpdGVtX2l0ICE9IGl0ZW1f aXRfZW5kOyArK2l0ZW1faXQpIHsKKy0gICAgICAgIGludCBib3JkZXJXID0gKCppdGVtX2l0KS0+ Ym9yZGVyV2lkdGgoKTsKKy0gICAgICAgIGlmICghKCppdGVtX2l0KS0+YWN0aXZlKCkpIHsKKy0g ICAgICAgICAgICAoKml0ZW1faXQpLT5oaWRlKCk7CisrICAgIGludCBib3JkZXJXLCBvZmZzZXQs IHNpemVfb2Zmc2V0LCB0bXB4LCB0bXB5OworKworKyAgICAvL2ZvciAoaXRlbV9pdCA9IG1faXRl bV9saXN0LmJlZ2luKCk7IGl0ZW1faXQgIT0gaXRlbV9pdF9lbmQ7ICsraXRlbV9pdCkgeworKyAg ICBmb3IgKGF1dG8gaXRlbV9pdCA6IG1faXRlbV9saXN0KSB7CisrICAgICAgICBib3JkZXJXID0g KCppdGVtX2l0KS5ib3JkZXJXaWR0aCgpOworKyAgICAgICAgaWYgKCEoKml0ZW1faXQpLmFjdGl2 ZSgpKSB7CisrICAgICAgICAgICAgKCppdGVtX2l0KS5oaWRlKCk7CisgICAgICAgICAgICAgLy8g bWFrZSBzdXJlIGl0IHN0aWxsIGdldHMgdG9sZCB0aGUgdG9vbGJhciBoZWlnaHQKKyAgICAgICAg ICAgICB0bXB3ID0gMTsgdG1waCA9IGhlaWdodCAtIDIqKGJldmVsX3dpZHRoK2JvcmRlclcpOwor ICAgICAgICAgICAgIGlmICh0bXBoID49ICgxPDwzMCkpIHRtcGggPSAxOworICAgICAgICAgICAg IEZiVGs6OnRyYW5zbGF0ZVNpemUob3JpZW50LCB0bXB3LCB0bXBoKTsKKy0gICAgICAgICAgICAo Kml0ZW1faXQpLT5yZXNpemUodG1wdywgdG1waCk7ICAvLyB3aWR0aCBvZiAwIGNoYW5nZXMgdG8g MSBhbnl3YXkKKysgICAgICAgICAgICAoKml0ZW1faXQpLnJlc2l6ZSh0bXB3LCB0bXBoKTsgIC8v IHdpZHRoIG9mIDAgY2hhbmdlcyB0byAxIGFueXdheQorICAgICAgICAgICAgIGNvbnRpbnVlOwor ICAgICAgICAgfQorLSAgICAgICAgaW50IG9mZnNldCA9IGJldmVsX3dpZHRoOworLSAgICAgICAg aW50IHNpemVfb2Zmc2V0ID0gMiooYm9yZGVyVyArIGJldmVsX3dpZHRoKTsKKysgICAgICAgIG9m ZnNldCA9IGJldmVsX3dpZHRoOworKyAgICAgICAgc2l6ZV9vZmZzZXQgPSAyKihib3JkZXJXICsg YmV2ZWxfd2lkdGgpOworIAorICAgICAgICAgaWYgKGJldmVsX3dpZHRoID09IDApIHsKKyAgICAg ICAgICAgICBvZmZzZXQgPSAtYm9yZGVyVzsKK0BAIC0xMDAwLDIyICsxMDExLDI4IEBAIHZvaWQg VG9vbGJhcjo6cmVhcnJhbmdlSXRlbXMoKSB7CisgICAgICAgICB9CisgICAgICAgICBsYXN0X2J3 ID0gYm9yZGVyVzsKKyAKKy0gICAgICAgIGludCB0bXB4ID0gbmV4dF94ICsgb2Zmc2V0LAorLSAg ICAgICAgICAgIHRtcHkgPSBvZmZzZXQ7CistCistICAgICAgICBpZiAoKCppdGVtX2l0KS0+dHlw ZSgpID09IFRvb2xiYXJJdGVtOjpSRUxBVElWRSkgeworLSAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBpdGVtdyA9ICgqaXRlbV9pdCktPnByZWZlcnJlZFdpZHRoKCksIGl0ZW1oID0gKCppdGVtX2l0 KS0+aGVpZ2h0KCk7CistICAgICAgICAgICAgRmJUazo6dHJhbnNsYXRlU2l6ZShvcmllbnQsIGl0 ZW13LCBpdGVtaCk7CistICAgICAgICAgICAgdG1wdyA9IGl0ZW13ID8gc3RkOjpmbG9vcihzdHJl dGNoX2ZhY3RvciAqIGl0ZW13KSA6IHJlbGF0aXZlX3dpZHRoOworLSAgICAgICAgICAgIHRtcGgg PSBoZWlnaHQgLSBzaXplX29mZnNldDsKKy0gICAgICAgIH0gZWxzZSBpZiAoKCppdGVtX2l0KS0+ dHlwZSgpID09IFRvb2xiYXJJdGVtOjpTUVVBUkUpIHsKKy0gICAgICAgICAgICB0bXB3ID0gdG1w aCA9IGhlaWdodCAtIHNpemVfb2Zmc2V0OworLSAgICAgICAgfSBlbHNlIHsgLy8gZml4ZWQgc2l6 ZQorLSAgICAgICAgICAgIHVuc2lnbmVkIGludCBpdGVtdyA9ICgqaXRlbV9pdCktPndpZHRoKCks IGl0ZW1oID0gKCppdGVtX2l0KS0+aGVpZ2h0KCk7CistICAgICAgICAgICAgRmJUazo6dHJhbnNs YXRlU2l6ZShvcmllbnQsIGl0ZW13LCBpdGVtaCk7CistICAgICAgICAgICAgdG1wdyA9IGl0ZW13 OworLSAgICAgICAgICAgIHRtcGggPSBoZWlnaHQgLSBzaXplX29mZnNldDsKKysgICAgICAgIHRt cHggPSBuZXh0X3ggKyBvZmZzZXQsCisrICAgICAgICB0bXB5ID0gb2Zmc2V0OworKyAgICAgICAg dG1waCA9IGhlaWdodCAtIHNpemVfb2Zmc2V0OworKworKyAgICAgICAgc3dpdGNoICggKCppdGVt X2l0KS50eXBlKCkgKSB7CisrICAgICAgICAgICAgY2FzZSBUb29sYmFySXRlbTo6U1FVQVJFOgor KyAgICAgICAgICAgICAgICB0bXB3ID0gdG1waDsKKysgICAgICAgICAgICAgICAgYnJlYWs7Cisr ICAgICAgICAgICAgY2FzZSBUb29sYmFySXRlbTo6UkVMQVRJVkU6CisrICAgICAgICAgICAgICAg IHRtcHcgPSByZWxhdGl2ZV93aWR0aDsKKysgICAgICAgICAgICAgICAgaWYgKGxlZnRvdmVyX3dp ZHRoKSB7CisrICAgICAgICAgICAgICAgICAgICAtLWxlZnRvdmVyX3dpZHRoOworKyAgICAgICAg ICAgICAgICAgICAgKyt0bXB3OworKyAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAg IGJyZWFrOworKyAgICAgICAgICAgIGNhc2UgVG9vbGJhckl0ZW06OkZJWEVEOgorKyAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgaXRlbXcgPSAoKml0ZW1faXQpLndpZHRoKCksIGl0ZW1oID0g KCppdGVtX2l0KS5oZWlnaHQoKTsKKysgICAgICAgICAgICAgICAgRmJUazo6dHJhbnNsYXRlU2l6 ZShvcmllbnQsIGl0ZW13LCBpdGVtaCk7CisrICAgICAgICAgICAgICAgIHRtcHcgPSBpdGVtdzsK KysgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICB9CisrCisgICAgICAgICBpZiAodG1w dyA+PSAoMTw8MzApKSB0bXB3ID0gMTsKKyAgICAgICAgIGlmICh0bXBoID49ICgxPDwzMCkpIHRt cGggPSAxOworICAgICAgICAgbmV4dF94ICs9IHRtcHcgKyBiZXZlbF93aWR0aDsKK0BAIC0xMDI1 LDggKzEwNDIsOCBAQCB2b2lkIFRvb2xiYXI6OnJlYXJyYW5nZUl0ZW1zKCkgeworICAgICAgICAg RmJUazo6dHJhbnNsYXRlQ29vcmRzKG9yaWVudCwgdG1weCwgdG1weSwgd2lkdGgsIGhlaWdodCk7 CisgICAgICAgICBGYlRrOjp0cmFuc2xhdGVQb3NpdGlvbihvcmllbnQsIHRtcHgsIHRtcHksIHRt cHcsIHRtcGgsIGJvcmRlclcpOworICAgICAgICAgRmJUazo6dHJhbnNsYXRlU2l6ZShvcmllbnQs IHRtcHcsIHRtcGgpOworLSAgICAgICAgKCppdGVtX2l0KS0+bW92ZVJlc2l6ZSh0bXB4LCB0bXB5 LCB0bXB3LCB0bXBoKTsKKy0gICAgICAgICgqaXRlbV9pdCktPnNob3coKTsKKysgICAgICAgICgq aXRlbV9pdCkubW92ZVJlc2l6ZSh0bXB4LCB0bXB5LCB0bXB3LCB0bXBoKTsKKysgICAgICAgIC8v KCppdGVtX2l0KS5zaG93KCk7CisgCisgICAgIH0KKyAgICAgLy8gdW5sb2NrCmRpZmYgLS1naXQg YS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy90cmVtb3JfZ3JhYm9pZF9oZWxsLnBhdGNoIGIvc3Jj cGtncy9mbHV4Ym94L3BhdGNoZXMvdHJlbW9yX2dyYWJvaWRfaGVsbC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjE4OWEzMTQ2MDdiZAotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3RyZW1vcl9ncmFib2lkX2hlbGwucGF0Y2gK QEAgLTAsMCArMSwzNTAgQEAKK2RpZmYgLS1naXQgYS9zcmMvRmJUay9FdmVudE1hbmFnZXIuY2Mg Yi9zcmMvRmJUay9FdmVudE1hbmFnZXIuY2MKK2luZGV4IDNkZjU2ZGU1Li41MDE3NjZjYyAxMDA2 NDQKKy0tLSBhL3NyYy9GYlRrL0V2ZW50TWFuYWdlci5jYworKysrIGIvc3JjL0ZiVGsvRXZlbnRN YW5hZ2VyLmNjCitAQCAtMTk0LDIzICsxOTQsMjIgQEAgdm9pZCBFdmVudE1hbmFnZXI6OmRpc3Bh dGNoKFdpbmRvdyB3aW4sIFhFdmVudCAmZXYsIGJvb2wgcGFyZW50KSB7CisgCisgICAgIC8vIGZp bmQgb3V0IHdoaWNoIHdpbmRvdyBpcyB0aGUgcGFyZW50IGFuZAorICAgICAvLyBkaXNwYXRjaCBl dmVudAorLSAgICBXaW5kb3cgcm9vdCwgcGFyZW50X3dpbiwgKmNoaWxkcmVuID0gMDsKKy0gICAg dW5zaWduZWQgaW50IG51bV9jaGlsZHJlbjsKKy0gICAgaWYgKFhRdWVyeVRyZWUoRmJUazo6QXBw OjppbnN0YW5jZSgpLT5kaXNwbGF5KCksIHdpbiwKKy0gICAgICAgICAgICAgICAgICAgJnJvb3Qs ICZwYXJlbnRfd2luLCAmY2hpbGRyZW4sICZudW1fY2hpbGRyZW4pICE9IDApIHsKKy0gICAgICAg IGlmIChjaGlsZHJlbiAhPSAwKQorLSAgICAgICAgICAgIFhGcmVlKGNoaWxkcmVuKTsKKy0KKy0g ICAgICAgIGlmIChwYXJlbnRfd2luICE9IDAgJiYKKy0gICAgICAgICAgICBwYXJlbnRfd2luICE9 IHJvb3QpIHsKKy0gICAgICAgICAgICBpZiAobV9wYXJlbnRbcGFyZW50X3dpbl0gPT0gMCkKKy0g ICAgICAgICAgICAgICAgcmV0dXJuOworLQorLSAgICAgICAgICAgIC8vIGRpc3BhdGNoIGV2ZW50 IHRvIHBhcmVudAorLSAgICAgICAgICAgIGRpc3BhdGNoKHBhcmVudF93aW4sIGV2LCB0cnVlKTsK Ky0gICAgICAgIH0KKy0gICAgfQorLQorKy8vICAgIFdpbmRvdyByb290LCBwYXJlbnRfd2luLCAq Y2hpbGRyZW4gPSAwOworKy8vICAgIHVuc2lnbmVkIGludCBudW1fY2hpbGRyZW47CisrLy8gICAg aWYgKFhRdWVyeVRyZWUoRmJUazo6QXBwOjppbnN0YW5jZSgpLT5kaXNwbGF5KCksIHdpbiwKKysv LyAgICAgICAgICAgICAgICAgICAmcm9vdCwgJnBhcmVudF93aW4sICZjaGlsZHJlbiwgJm51bV9j aGlsZHJlbikgIT0gMCkgeworKy8vICAgICAgICBpZiAoY2hpbGRyZW4gIT0gMCkKKysvLyAgICAg ICAgICAgIFhGcmVlKGNoaWxkcmVuKTsKKysvLworKy8vICAgICAgICBpZiAocGFyZW50X3dpbiAh PSAwICYmCisrLy8gICAgICAgICAgICBwYXJlbnRfd2luICE9IHJvb3QpIHsKKysvLyAgICAgICAg ICAgIGlmIChtX3BhcmVudFtwYXJlbnRfd2luXSA9PSAwKQorKy8vICAgICAgICAgICAgICAgIHJl dHVybjsKKysvLworKy8vICAgICAgICAgICAgLy8gZGlzcGF0Y2ggZXZlbnQgdG8gcGFyZW50Cisr Ly8gICAgICAgICAgICBkaXNwYXRjaChwYXJlbnRfd2luLCBldiwgdHJ1ZSk7CisrLy8gICAgICAg IH0KKysvLyAgICB9CisgfQorIAorIH0gLy8gZW5kIG5hbWVzcGFjZSBGYlRrCitkaWZmIC0tZ2l0 IGEvc3JjL0ZiVGsvS2V5VXRpbC5jYyBiL3NyYy9GYlRrL0tleVV0aWwuY2MKK2luZGV4IDczZjJl YTA2Li5jZjg2MzAyMSAxMDA2NDQKKy0tLSBhL3NyYy9GYlRrL0tleVV0aWwuY2MKKysrKyBiL3Ny Yy9GYlRrL0tleVV0aWwuY2MKK0BAIC0xNDEsMTMgKzE0MSwxNCBAQCB2b2lkIEtleVV0aWw6Omdy YWJCdXR0b24odW5zaWduZWQgaW50IGJ1dHRvbiwgdW5zaWduZWQgaW50IG1vZCwgV2luZG93IHdp biwKKyAgICAgY29uc3QgdW5zaWduZWQgaW50IHNjcm9sbG1vZCA9IGluc3RhbmNlKCkuc2Nyb2xs bG9jaygpOworIAorICAgICAvLyBHcmFiIHdpdGggbnVtbG9jaywgY2Fwc2xvY2sgYW5kIHNjcmxv Y2sKKy0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCA4OyBpKyspIHsKKy0gICAgICAgIFhHcmFiQnV0 dG9uKGRpc3BsYXksIGJ1dHRvbiwgbW9kIHwgKGkgJiAxID8gTG9ja01hc2sgOiAwKSB8CistICAg ICAgICAgICAgICAgICAgICAoaSAmIDIgPyBudW1tb2QgOiAwKSB8IChpICYgNCA/IHNjcm9sbG1v ZCA6IDApLAorLSAgICAgICAgICAgICAgICAgICAgd2luLCBGYWxzZSwgZXZlbnRfbWFzaywgR3Jh Yk1vZGVTeW5jLCBHcmFiTW9kZUFzeW5jLAorLSAgICAgICAgICAgICAgICAgICAgTm9uZSwgY3Vy c29yKTsKKy0gICAgfQorLQorKyAgICAvL2ZvciAoaW50IGkgPSAwOyBpIDwgODsgaSsrKSB7Cisr ICAgIC8vICAgIFhHcmFiQnV0dG9uKGRpc3BsYXksIGJ1dHRvbiwgbW9kIHwgKGkgJiAxID8gTG9j a01hc2sgOiAwKSB8CisrICAgIC8vICAgICAgICAgICAgICAgIChpICYgMiA/IG51bW1vZCA6IDAp IHwgKGkgJiA0ID8gc2Nyb2xsbW9kIDogMCksCisrICAgIC8vICAgICAgICAgICAgICAgIHdpbiwg VHJ1ZSwgZXZlbnRfbWFzaywgR3JhYk1vZGVTeW5jLCBHcmFiTW9kZUFzeW5jLAorKyAgICAvLyAg ICAgICAgICAgICAgICBOb25lLCBjdXJzb3IpOworKyAgICAvL30KKysgICAgWEdyYWJCdXR0b24o ZGlzcGxheSwgYnV0dG9uLCBtb2QsIHdpbiwgVHJ1ZSwgZXZlbnRfbWFzaywKKysgICAgICAgICAg ICAgICAgR3JhYk1vZGVTeW5jLCBHcmFiTW9kZUFzeW5jLCBOb25lLCBjdXJzb3IpOworIH0KKyAK KyAvKioKK2RpZmYgLS1naXQgYS9zcmMvS2V5cy5jYyBiL3NyYy9LZXlzLmNjCitpbmRleCA4NjU5 MTM3MS4uYzI3MDM3ZTIgMTAwNjQ0CistLS0gYS9zcmMvS2V5cy5jYworKysrIGIvc3JjL0tleXMu Y2MKK0BAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBLZXlzOjpncmFiV2luZG93KFdpbmRvdyB3aW4p IHsKKyAgICAgaWYgKHdpbl9pdCA9PSBtX3dpbmRvd19tYXAuZW5kKCkpCisgICAgICAgICByZXR1 cm47CisgCistICAgIG1faGFuZGxlcl9tYXBbd2luXS0+Z3JhYkJ1dHRvbnMoKTsKKysgICAgLy9t X2hhbmRsZXJfbWFwW3dpbl0tPmdyYWJCdXR0b25zKCk7CisgICAgIHRfa2V5OjprZXlsaXN0X3Q6 Oml0ZXJhdG9yIGl0ID0gbV9rZXlsaXN0LT5rZXlsaXN0LmJlZ2luKCk7CisgICAgIHRfa2V5Ojpr ZXlsaXN0X3Q6Oml0ZXJhdG9yIGl0X2VuZCA9IG1fa2V5bGlzdC0+a2V5bGlzdC5lbmQoKTsKKyAg ICAgZm9yICg7IGl0ICE9IGl0X2VuZDsgKytpdCkgeworQEAgLTU4NiwxNiArNTg2LDE2IEBAIGJv b2wgS2V5czo6ZG9BY3Rpb24oaW50IHR5cGUsIHVuc2lnbmVkIGludCBtb2RzLCB1bnNpZ25lZCBp bnQga2V5LAorICAgICAgICAgaXNkb3VibGUgPSBkb3VibGVfY2xpY2s7CisgICAgIH0KKyAKKy0g ICAgYXV0byByZXNldEtleUNoYWluID0gWyZdKCkgeworLSAgICAgICAgZmlyc3Rfa2V5X3RpbWUg PSAwOworLSAgICAgICAgbmV4dF9rZXkucmVzZXQoKTsKKy0gICAgICAgIGlmIChzYXZlZF9rZXlt b2RlKSB7CistICAgICAgICAgICAgc2V0S2V5TW9kZShzYXZlZF9rZXltb2RlKTsKKy0gICAgICAg ICAgICBzYXZlZF9rZXltb2RlLnJlc2V0KCk7CistICAgICAgICB9CistICAgIH07CistICAgIGlm ICh0eXBlID09IEtleVByZXNzICYmIGZpcnN0X2tleV90aW1lICYmIHRpbWUgLSBmaXJzdF9rZXlf dGltZSA+IDUwMDApCistICAgICAgICByZXNldEtleUNoYWluKCk7CisrLy8gICAgYXV0byByZXNl dEtleUNoYWluID0gWyZdKCkgeworKy8vICAgICAgICBmaXJzdF9rZXlfdGltZSA9IDA7CisrLy8g ICAgICAgIG5leHRfa2V5LnJlc2V0KCk7CisrLy8gICAgICAgIGlmIChzYXZlZF9rZXltb2RlKSB7 CisrLy8gICAgICAgICAgICBzZXRLZXlNb2RlKHNhdmVkX2tleW1vZGUpOworKy8vICAgICAgICAg ICAgc2F2ZWRfa2V5bW9kZS5yZXNldCgpOworKy8vICAgICAgICB9CisrLy8gICAgfTsKKysvLyAg ICBpZiAodHlwZSA9PSBLZXlQcmVzcyAmJiBmaXJzdF9rZXlfdGltZSAmJiB0aW1lIC0gZmlyc3Rf a2V5X3RpbWUgPiA1MDAwKQorKy8vICAgICAgICByZXNldEtleUNoYWluKCk7CisgCisgICAgIGlm ICghbmV4dF9rZXkpCisgICAgICAgICBuZXh0X2tleSA9IG1fa2V5bGlzdDsKK0BAIC02MTIsMjkg KzYxMiwyOSBAQCBib29sIEtleXM6OmRvQWN0aW9uKGludCB0eXBlLCB1bnNpZ25lZCBpbnQgbW9k cywgdW5zaWduZWQgaW50IGtleSwKKyAgICAgICAgIG5leHRfa2V5LT5maW5kKE1vdGlvbk5vdGlm eSwgbW9kcywga2V5LCBjb250ZXh0LCBmYWxzZSkpCisgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8g aWYgdGhlcmUncyBhIG1vdGlvbiBhY3Rpb24sIHByZXZlbnQgcmVwbGF5IHRvIHRoZSBjbGllbnQg KGJ1dCBkbyBub3RoaW5nKQorIAorLSAgICBpZiAodGVtcF9rZXkgJiYgIXRlbXBfa2V5LT5rZXls aXN0LmVtcHR5KCkpIHsgLy8gZW1hY3Mtc3R5bGUKKy0gICAgICAgIGlmICghc2F2ZWRfa2V5bW9k ZSkgeworLSAgICAgICAgICAgIGZpcnN0X2tleV90aW1lID0gdGltZTsKKy0gICAgICAgICAgICBz YXZlZF9rZXltb2RlID0gbV9rZXlsaXN0OworLSAgICAgICAgfQorLSAgICAgICAgbmV4dF9rZXkg PSB0ZW1wX2tleTsKKy0gICAgICAgIHNldEtleU1vZGUobmV4dF9rZXkpOworLSAgICAgICAgcmV0 dXJuIHRydWU7CistICAgIH0KKysvLyAgICBpZiAodGVtcF9rZXkgJiYgIXRlbXBfa2V5LT5rZXls aXN0LmVtcHR5KCkpIHsgLy8gZW1hY3Mtc3R5bGUKKysvLyAgICAgICAgaWYgKCFzYXZlZF9rZXlt b2RlKSB7CisrLy8gICAgICAgICAgICBmaXJzdF9rZXlfdGltZSA9IHRpbWU7CisrLy8gICAgICAg ICAgICBzYXZlZF9rZXltb2RlID0gbV9rZXlsaXN0OworKy8vICAgICAgICB9CisrLy8gICAgICAg IG5leHRfa2V5ID0gdGVtcF9rZXk7CisrLy8gICAgICAgIHNldEtleU1vZGUobmV4dF9rZXkpOwor Ky8vICAgICAgICByZXR1cm4gdHJ1ZTsKKysvLyAgICB9CisrCisgICAgIGlmICghdGVtcF9rZXkg fHwgdGVtcF9rZXktPm1fY29tbWFuZCA9PSAwKSB7CistICAgICAgICBpZiAodHlwZSA9PSBLZXlQ cmVzcyAmJgorLSAgICAgICAgICAgICFGYlRrOjpLZXlVdGlsOjppbnN0YW5jZSgpLmtleWNvZGVU b01vZG1hc2soa2V5KSkgeworLSAgICAgICAgICAgIC8vIGlmIHdlJ3JlIGluIHRoZSBtaWRkbGUg b2YgYW4gZW1hY3Mtc3R5bGUga2V5Y2hhaW4sIGV4aXQgaXQKKy0gICAgICAgICAgICByZXNldEtl eUNoYWluKCk7CistICAgICAgICB9CisrLy8gICAgICAgIGlmICh0eXBlID09IEtleVByZXNzICYm CisrLy8gICAgICAgICAgICAhRmJUazo6S2V5VXRpbDo6aW5zdGFuY2UoKS5rZXljb2RlVG9Nb2Rt YXNrKGtleSkpIHsKKysvLyAgICAgICAgICAgIC8vIGlmIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2Yg YW4gZW1hY3Mtc3R5bGUga2V5Y2hhaW4sIGV4aXQgaXQKKysvLyAgICAgICAgICAgIHJlc2V0S2V5 Q2hhaW4oKTsKKysvLyAgICAgICAgfQorICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICB9Cisg CisgICAgIC8vIGlmIGZvY3VzIGNoYW5nZXMsIHdpbmRvd3Mgd2lsbCBnZXQgTm90aWZ5V2hpbGVH cmFiYmVkLAorICAgICAvLyB3aGljaCB0aGV5IHRlbmQgdG8gaWdub3JlCistICAgIGlmICh0eXBl ID09IEtleVByZXNzKSB7CisrICAgIGlmICh0eXBlID09IEtleVByZXNzKQorICAgICAgICAgWFVu Z3JhYktleWJvYXJkKEZsdXhib3g6Omluc3RhbmNlKCktPmRpc3BsYXkoKSwgQ3VycmVudFRpbWUp OworLSAgICB9CisgCisgICAgIFdpbkNsaWVudCAqb2xkID0gV2luZG93Q21kPHZvaWQ+OjpjbGll bnQoKTsKKyAgICAgV2luZG93Q21kPHZvaWQ+OjpzZXRDbGllbnQoY3VycmVudCk7CitAQCAtNjUw LDEyICs2NTAsMTMgQEAgYm9vbCBLZXlzOjpkb0FjdGlvbihpbnQgdHlwZSwgdW5zaWduZWQgaW50 IG1vZHMsIHVuc2lnbmVkIGludCBrZXksCisgICAgIHRlbXBfa2V5LT5tX2NvbW1hbmQtPmV4ZWN1 dGUoKTsKKyAgICAgV2luZG93Q21kPHZvaWQ+OjpzZXRDbGllbnQob2xkKTsKKyAKKy0gICAgaWYg KHNhdmVkX2tleW1vZGUpIHsKKy0gICAgICAgIGlmIChuZXh0X2tleSA9PSBtX2tleWxpc3QpIC8v IGRvbid0IHJlc2V0IGtleW1vZGUgaWYgY29tbWFuZCBjaGFuZ2VkIGl0CistICAgICAgICAgICAg c2V0S2V5TW9kZShzYXZlZF9rZXltb2RlKTsKKy0gICAgICAgIHNhdmVkX2tleW1vZGUucmVzZXQo KTsKKy0gICAgfQorLSAgICBuZXh0X2tleS5yZXNldCgpOworKy8vICAgIGlmIChzYXZlZF9rZXlt b2RlKSB7CisrLy8gICAgICAgIGlmIChuZXh0X2tleSA9PSBtX2tleWxpc3QpIC8vIGRvbid0IHJl c2V0IGtleW1vZGUgaWYgY29tbWFuZCBjaGFuZ2VkIGl0CisrLy8gICAgICAgICAgICBzZXRLZXlN b2RlKHNhdmVkX2tleW1vZGUpOworKy8vICAgICAgICBzYXZlZF9rZXltb2RlLnJlc2V0KCk7Cisr Ly8gICAgfQorKy8vICAgIG5leHRfa2V5LnJlc2V0KCk7CisrCisgICAgIHJldHVybiB0cnVlOwor IH0KKyAKK0BAIC02ODUsMTUgKzY4NiwxNiBAQCB2b2lkIEtleXM6OnJlY29uZmlndXJlKCkgewor IH0KKyAKKyB2b2lkIEtleXM6OnJlZ3JhYigpIHsKKy0gICAgc2V0S2V5TW9kZShtX2tleWxpc3Qp OworKyAgICAvL3NldEtleU1vZGUobV9rZXlsaXN0KTsKKyB9CisgCisgdm9pZCBLZXlzOjprZXlN b2RlKGNvbnN0IHN0cmluZyYga2V5TW9kZSkgeworLSAgICBrZXlzcGFjZV90OjppdGVyYXRvciBp dCA9IG1fbWFwLmZpbmQoa2V5TW9kZSArICI6Iik7CistICAgIGlmIChpdCA9PSBtX21hcC5lbmQo KSkKKysgICAgLy9rZXlzcGFjZV90OjppdGVyYXRvciBpdCA9IG1fbWFwLmZpbmQoa2V5TW9kZSAr ICI6Iik7CisrICAgIC8vaWYgKGl0ID09IG1fbWFwLmVuZCgpKQorKyAgICAvLyAgICBzZXRLZXlN b2RlKG1fbWFwWyJkZWZhdWx0OiJdKTsKKysgICAgLy9lbHNlCisrICAgIC8vICAgIHNldEtleU1v ZGUoaXQtPnNlY29uZCk7CisgICAgICAgICBzZXRLZXlNb2RlKG1fbWFwWyJkZWZhdWx0OiJdKTsK Ky0gICAgZWxzZQorLSAgICAgICAgc2V0S2V5TW9kZShpdC0+c2Vjb25kKTsKKyB9CisgCisgdm9p ZCBLZXlzOjpzZXRLZXlNb2RlKGNvbnN0IEZiVGs6OlJlZkNvdW50PHRfa2V5PiAma2V5TW9kZSkg eworQEAgLTcwMSwxMCArNzAzLDEwIEBAIHZvaWQgS2V5czo6c2V0S2V5TW9kZShjb25zdCBGYlRr OjpSZWZDb3VudDx0X2tleT4gJmtleU1vZGUpIHsKKyAgICAgdW5ncmFiQnV0dG9ucygpOworIAor ICAgICAvLyBub3RpZnkgaGFuZGxlcnMgdGhhdCB0aGVpciBidXR0b25zIGhhdmUgYmVlbiB1bmdy YWJiZWQKKy0gICAgSGFuZGxlck1hcDo6aXRlcmF0b3IgaF9pdCA9IG1faGFuZGxlcl9tYXAuYmVn aW4oKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgaF9pdF9lbmQgID0gbV9oYW5kbGVyX21h cC5lbmQoKTsKKy0gICAgZm9yICg7IGhfaXQgIT0gaF9pdF9lbmQ7ICsraF9pdCkKKy0gICAgICAg IGhfaXQtPnNlY29uZC0+Z3JhYkJ1dHRvbnMoKTsKKysgICAgLy9IYW5kbGVyTWFwOjppdGVyYXRv ciBoX2l0ID0gbV9oYW5kbGVyX21hcC5iZWdpbigpLAorKyAgICAvLyAgICAgICAgICAgICAgICAg ICAgIGhfaXRfZW5kICA9IG1faGFuZGxlcl9tYXAuZW5kKCk7CisrICAgIC8vZm9yICg7IGhfaXQg IT0gaF9pdF9lbmQ7ICsraF9pdCkKKysgICAgLy8gICAgaF9pdC0+c2Vjb25kLT5ncmFiQnV0dG9u cygpOworIAorICAgICB0X2tleTo6a2V5bGlzdF90OjppdGVyYXRvciBpdCA9IGtleU1vZGUtPmtl eWxpc3QuYmVnaW4oKTsKKyAgICAgdF9rZXk6OmtleWxpc3RfdDo6aXRlcmF0b3IgaXRfZW5kID0g a2V5TW9kZS0+a2V5bGlzdC5lbmQoKTsKK2RpZmYgLS1naXQgYS9zcmMvV2luZG93LmNjIGIvc3Jj L1dpbmRvdy5jYworaW5kZXggMzQyZTQ4ODUuLjQ1N2MzMGM2IDEwMDY0NAorLS0tIGEvc3JjL1dp bmRvdy5jYworKysrIGIvc3JjL1dpbmRvdy5jYworQEAgLTExMzMsMTMgKzExMzMsMjUgQEAgdm9p ZCBGbHV4Ym94V2luZG93Ojp1cGRhdGVTaXplSGludHMoKSB7CisgfQorIAorIHZvaWQgRmx1eGJv eFdpbmRvdzo6Z3JhYkJ1dHRvbnMoKSB7CistCisrLy9OT0dSQUIKKysgICAgLy9pZiAobV9jbGll bnQtPndpbmRvdygpICE9IGZyYW1lKCkud2luZG93KCkud2luZG93KCkgKSByZXR1cm47CisgICAg IC8vIG5lZWRlZCBmb3IgY2xpY2sgdG8gZm9jdXMKKy0gICAgWEdyYWJCdXR0b24oZGlzcGxheSwg QnV0dG9uMSwgQW55TW9kaWZpZXIsCistICAgICAgICAgICAgICAgIGZyYW1lKCkud2luZG93KCku d2luZG93KCksIFRydWUsIEJ1dHRvblByZXNzTWFzaywKKy0gICAgICAgICAgICAgICAgR3JhYk1v ZGVTeW5jLCBHcmFiTW9kZVN5bmMsIE5vbmUsIE5vbmUpOworLSAgICBYVW5ncmFiQnV0dG9uKGRp c3BsYXksIEJ1dHRvbjEsIE1vZDFNYXNrfE1vZDJNYXNrfE1vZDNNYXNrLAorLSAgICAgICAgICAg ICAgICAgIGZyYW1lKCkud2luZG93KCkud2luZG93KCkpOworKyAgICAvLyBncmFiYmluZyBhc3lu YyBoZXJlIGJyZWFrcyBtb3VzZTEKKysgICAgLy9YR3JhYkJ1dHRvbihkaXNwbGF5LCBCdXR0b24x LCBBbnlNb2RpZmllciwKKysgICAgLy8gICAgICAgICAgICBmcmFtZSgpLndpbmRvdygpLndpbmRv dygpLCBUcnVlLCBCdXR0b25QcmVzc01hc2ssCisrICAgIC8vICAgICAgICAgICAgR3JhYk1vZGVT eW5jLCBHcmFiTW9kZVN5bmMsIE5vbmUsIE5vbmUpOworKyAgICAvLyAgICAgICAgICAgIC8vR3Jh Yk1vZGVBc3luYywgR3JhYk1vZGVBc3luYywgTm9uZSwgTm9uZSk7CisrICAgIC8vWFVuZ3JhYkJ1 dHRvbihkaXNwbGF5LCBCdXR0b24xLCBNb2QxTWFza3xNb2QyTWFza3xNb2QzTWFzaywKKysgICAg Ly8gICAgICAgICAgICAgIGZyYW1lKCkud2luZG93KCkud2luZG93KCkpOworKyAgICAvL1hHcmFi UG9pbnRlcihkaXNwbGF5LAorKyAgICAvLyAgICAgICAgICAgICBmcmFtZSgpLndpbmRvdygpLndp bmRvdygpLAorKyAgICAvLyAgICAgICAgICAgICBUcnVlLAorKyAgICAvLyAgICAgICAgICAgICBC dXR0b25QcmVzc01hc2ssCisrICAgIC8vICAgICAgICAgICAgIEdyYWJNb2RlQXN5bmMsIEdyYWJN b2RlQXN5bmMsCisrICAgIC8vICAgICAgICAgICAgIE5vbmUsCisrICAgIC8vICAgICAgICAgICAg IE5vbmUsCisrICAgIC8vICAgICAgICAgICAgIEN1cnJlbnRUaW1lKTsKKysgICAgLy9YVW5ncmFi UG9pbnRlcihkaXNwbGF5LCBDdXJyZW50VGltZSk7CisgfQorIAorIAorQEAgLTI0MjksNjMgKzI0 NDEsNDEgQEAgdm9pZCBGbHV4Ym94V2luZG93OjpidXR0b25QcmVzc0V2ZW50KFhCdXR0b25FdmVu dCAmYmUpIHsKKyAgICAgbV9sYXN0X3ByZXNzZWRfYnV0dG9uID0gYmUuYnV0dG9uOworIAorICAg ICBGYlRrOjpNZW51OjpoaWRlU2hvd25NZW51KCk7CistCisrLy9GSVggQUxMT1cKKyAgICAgS2V5 cyAqayA9IEZsdXhib3g6Omluc3RhbmNlKCktPmtleXMoKTsKKyAgICAgaW50IGNvbnRleHQgPSAw OworICAgICBjb250ZXh0ID0gZnJhbWUoKS5nZXRDb250ZXh0KGJlLnN1YndpbmRvdyA/IGJlLnN1 YndpbmRvdyA6IGJlLndpbmRvdywgYmUueF9yb290LCBiZS55X3Jvb3QpOworICAgICBpZiAoIWNv bnRleHQgJiYgYmUuc3Vid2luZG93KQorICAgICAgICAgY29udGV4dCA9IGZyYW1lKCkuZ2V0Q29u dGV4dChiZS53aW5kb3cpOworIAorLSAgICBpZiAoay0+ZG9BY3Rpb24oYmUudHlwZSwgYmUuc3Rh dGUsIGJlLmJ1dHRvbiwgY29udGV4dCwgJndpbkNsaWVudCgpLCBiZS50aW1lKSkgeworLSAgICAg ICAgWEFsbG93RXZlbnRzKGRpc3BsYXksIFN5bmNQb2ludGVyLCBDdXJyZW50VGltZSk7CistICAg ICAgICByZXR1cm47CistICAgIH0KKy0KKy0gICAgV2luQ2xpZW50ICpjbGllbnQgPSAwOworLSAg ICBpZiAoIXNjcmVlbigpLmZvY3VzQ29udHJvbCgpLmlzTW91c2VUYWJGb2N1cygpKSB7CistICAg ICAgICAvLyBkZXRlcm1pbmUgaWYgd2UncmUgaW4gYSBsYWJlbCBidXR0b24gKHRhYikKKy0gICAg ICAgIGNsaWVudCA9IHdpbkNsaWVudE9mTGFiZWxCdXR0b25XaW5kb3coYmUud2luZG93KTsKKy0g ICAgfQorLQorLQorLSAgICAvLyAtIHJlZmVlZCB0aGUgZXZlbnQgaW50byB0aGUgcXVldWUgc28g dGhlIGFwcCBvciB0aXRsZWJhciBzdWJ3aW5kb3cgZ2V0cyBpdAorLSAgICBpZiAoYmUuc3Vid2lu ZG93KQorLSAgICAgICAgWEFsbG93RXZlbnRzKGRpc3BsYXksIFJlcGxheVBvaW50ZXIsIEN1cnJl bnRUaW1lKTsKKy0gICAgZWxzZQorLSAgICAgICAgWEFsbG93RXZlbnRzKGRpc3BsYXksIFN5bmNQ b2ludGVyLCBDdXJyZW50VGltZSk7CistCistICAgIC8vIGlmIG5vdGhpbmcgd2FzIGJvdW5kIHZp YSBrZXlzLWZpbGUgdGhlbgorLSAgICAvLyAtIHJhaXNlKCkgaWYgY2xpY2tSYWlzZSBpcyBlbmFi bGVkCistICAgIC8vIC0gaGlkZSBvcGVuIG1lbnVlcworLSAgICAvLyAtIGZvY3VzIG9uIGNsaWNr Rm9jdXMKKy0gICAgaWYgKGZyYW1lKCkud2luZG93KCkud2luZG93KCkgPT0gYmUud2luZG93KSB7 CistICAgICAgICBpZiAoc2NyZWVuKCkuY2xpY2tSYWlzZXMoKSkKKy0gICAgICAgICAgICByYWlz ZSgpOworLQorLSAgICAgICAgbV9idXR0b25fZ3JhYl94ID0gYmUueF9yb290IC0gZnJhbWUoKS54 KCkgLSBmcmFtZSgpLndpbmRvdygpLmJvcmRlcldpZHRoKCk7CistICAgICAgICBtX2J1dHRvbl9n cmFiX3kgPSBiZS55X3Jvb3QgLSBmcmFtZSgpLnkoKSAtIGZyYW1lKCkud2luZG93KCkuYm9yZGVy V2lkdGgoKTsKKy0gICAgfQorLQorLSAgICBpZiAoIW1fZm9jdXNlZCAmJiBhY2NlcHRzRm9jdXMo KSAmJiBtX2NsaWNrX2ZvY3VzKQorLSAgICAgICAgZm9jdXMoKTsKKy0KKy0gICAgaWYgKCFzY3Jl ZW4oKS5mb2N1c0NvbnRyb2woKS5pc01vdXNlVGFiRm9jdXMoKSAmJgorLSAgICAgICAgY2xpZW50 ICYmIGNsaWVudCAhPSBtX2NsaWVudCAmJgorLSAgICAgICAgIXNjcmVlbigpLmZvY3VzQ29udHJv bCgpLmlzSWdub3JlZChiZS54X3Jvb3QsIGJlLnlfcm9vdCkgKSB7CistICAgICAgICBzZXRDdXJy ZW50Q2xpZW50KCpjbGllbnQsIGlzRm9jdXNlZCgpKTsKKy0gICAgfQorLQorLQorLQorK3N0ZDo6 Y291dCA8PCAiYnV0dG9uIHdpbmRvdzogIiA8PCBiZS53aW5kb3cgPDwgIlxuYnV0dG9uIHN1Yndp bmRvdzogIiA8PCBiZS5zdWJ3aW5kb3cgPDwgIlxuIjsKKytrLT5kb0FjdGlvbihiZS50eXBlLCBi ZS5zdGF0ZSwgYmUuYnV0dG9uLCBjb250ZXh0LCAmd2luQ2xpZW50KCksIEN1cnJlbnRUaW1lKTsg Ly8gdy9vIHRoaXMsIG5vIG1vdXNlIGNtZHMKKytYQWxsb3dFdmVudHMoZGlzcGxheSwgUmVwbGF5 UG9pbnRlciwgQ3VycmVudFRpbWUpOyAvLyB3L28gdGhpcywgbm8gbW91c2UKKysvLyB1bHRpbWF0 ZWx5IG5vbmUgb2YgdGhlIGJlbG93IG1hdHRlcnMKKysgICAgLy8gaW5maW5pdGUgbG9vcAorKyAg ICAvL2lmIChiZS5zdWJ3aW5kb3cpIHsKKysgICAgLy8gIC8vWEV2ZW50IG9tZmcgPSAoWEV2ZW50 ICopJmJlOworKyAgICAvLyAgLy9iZS53aW5kb3cgPSBiZS5zdWJ3aW5kb3c7CisrICAgIC8vICAv L2JlLnN1YndpbmRvdyA9IDA7CisrICAgIC8vICBpbnQgaHVoID0gWFNlbmRFdmVudChkaXNwbGF5 LCBiZS53aW5kb3csIEZhbHNlLCBCdXR0b25QcmVzc01hc2ssIChYRXZlbnQqKSZiZSk7CisrICAg IC8vICBzdGQ6OmNvdXQgPDwgInhzZW5kZXZlbnQ6ICIgPDwgaHVoIDw8ICJcbiI7CisrICAgIC8v fQorKyAgICAvL1hTeW5jKGRpc3BsYXksIDApOworKyAgICAvL2ludCB3dGYgPSBYQWxsb3dFdmVu dHMoZGlzcGxheSwgUmVwbGF5UG9pbnRlciwgQ3VycmVudFRpbWUpOyAvLyB0aW1lIG1lYW5zIHNx dWF0IC0gd29ya3MgYnV0IG5vdCBmb3IgbWVudXMKKysgICAgLy9zdGQ6OmNvdXQgPDwgInhhbGxv d2V2ZW50czogIiA8PCB3dGYgPDwgIlxuIjsKKysgICAgLy9YU3luYyhkaXNwbGF5LCAwKTsKKysg ICAgLy9YQWxsb3dFdmVudHMoZGlzcGxheSwgUmVwbGF5UG9pbnRlciwgYmUudGltZSk7IC8vIHRp bWUgbWVhbnMgc3F1YXQgLSB3b3JrcyBidXQgbm90IGZvciBtZW51cworKyAgICAvL1hBbGxvd0V2 ZW50cyhkaXNwbGF5LCBTeW5jUG9pbnRlciwgQ3VycmVudFRpbWUpOyAvLyBzeW5jIHdpbGwgbm90 IGRvdWJsZWNsaWNrIG9yIGFjdCBwcm9wZXIKKysgICAgLy9YQWxsb3dFdmVudHMoZGlzcGxheSwg QXN5bmNQb2ludGVyLCBDdXJyZW50VGltZSk7IC8vIF5eIHNhbWUKKysgICAgLy9pZiAoYmUuc3Vi d2luZG93KQorKyAgICAvLyAgWEZsdXNoKGRpc3BsYXkpOworKyAgICAvLyAgLy9YU3luYyhkaXNw bGF5LCBUcnVlKTsKKyB9CisgCisgY29uc3QgdW5zaWduZWQgaW50IERFQURaT05FID0gNDsKKyAK KyB2b2lkIEZsdXhib3hXaW5kb3c6OmJ1dHRvblJlbGVhc2VFdmVudChYQnV0dG9uRXZlbnQgJnJl KSB7CisgCistICAgIGlmIChtX2xhc3RfcHJlc3NlZF9idXR0b24gPT0gc3RhdGljX2Nhc3Q8aW50 PihyZS5idXR0b24pKSB7CistICAgICAgICBtX2xhc3RfcHJlc3NlZF9idXR0b24gPSAwOworLSAg ICB9CisgCisgICAgIGlmIChpc01vdmluZygpKQorICAgICAgICAgc3RvcE1vdmluZygpOworQEAg LTI1MDIsNiArMjQ5MiwxMyBAQCB2b2lkIEZsdXhib3hXaW5kb3c6OmJ1dHRvblJlbGVhc2VFdmVu dChYQnV0dG9uRXZlbnQgJnJlKSB7CisgCisgICAgICAgICBGbHV4Ym94OjppbnN0YW5jZSgpLT5r ZXlzKCktPmRvQWN0aW9uKHJlLnR5cGUsIHJlLnN0YXRlLCByZS5idXR0b24sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQsICZ3aW5DbGllbnQo KSwgcmUudGltZSk7CisrICAgICAgLy8gc3luY3MgZG9udCBtYWtlIGEgZGlmZmVyZW5jZT8KKysg ICAgICAvL1hTeW5jKGRpc3BsYXksIDApOworKyAgICAgIFhBbGxvd0V2ZW50cyhkaXNwbGF5LCBS ZXBsYXlQb2ludGVyLCBDdXJyZW50VGltZSk7IC8vIHRpbWUgbWVhbnMgc3F1YXQgLSB3b3JrcyBi dXQgbm90IGZvciBtZW51cworKyAgICAgIC8vWFN5bmMoZGlzcGxheSwgMCk7CisrICAgIH0KKysg ICAgaWYgKG1fbGFzdF9wcmVzc2VkX2J1dHRvbiA9PSBzdGF0aWNfY2FzdDxpbnQ+KHJlLmJ1dHRv bikpIHsKKysgICAgICAgIG1fbGFzdF9wcmVzc2VkX2J1dHRvbiA9IDA7CisgICAgIH0KKyB9Cisg CmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy91bmNsdXR0ZXJfZml4X3dvcmtz cGFjZWNtZC5wYXRjaCBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3VuY2x1dHRlcl9maXhfd29y a3NwYWNlY21kLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u MzZjNTcyY2VhNGZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMv dW5jbHV0dGVyX2ZpeF93b3Jrc3BhY2VjbWQucGF0Y2gKQEAgLTAsMCArMSw2NSBAQAorZGlmZiAt LWdpdCBhL3NyYy9Xb3Jrc3BhY2VDbWQuY2MgYi9zcmMvV29ya3NwYWNlQ21kLmNjCitpbmRleCBj MmU0OTQ4NS4uOWI0MDU4YzggMTAwNjQ0CistLS0gYS9zcmMvV29ya3NwYWNlQ21kLmNjCisrKysg Yi9zcmMvV29ya3NwYWNlQ21kLmNjCitAQCAtNTIxLDIyICs1MjEsMjQgQEAgdm9pZCBBcnJhbmdl V2luZG93c0NtZDo6ZXhlY3V0ZSgpIHsKKyAgICAgY29uc3QgdW5zaWduZWQgaW50IGNhbF93aWR0 aCA9IG1heF93aWR0aC9jb2xzOyAvLyB3aWR0aCByYXRpbyAod2lkdGggb2YgZXZlcnkgd2luZG93 KQorICAgICBjb25zdCB1bnNpZ25lZCBpbnQgY2FsX2hlaWdodCA9IG1heF9oZWlnaHQvcm93czsg Ly8gaGVpZ2h0IHJhdGlvIChoZWlnaHQgb2YgZXZlcnkgd2luZG93KQorCisrICAgIGludCBjZWxs X2NlbnRlcl94ID0gMCwgY2VsbF9jZW50ZXJfeSA9IDAsIHdpbl9jZW50ZXJfeCA9IDAsIHdpbl9j ZW50ZXJfeSA9IDAsIHggPSAwLCB5ID0gMDsKKysgICAgdW5zaWduZWQgaW50IGNsb3Nlc3RfZGlz dCA9IH4wLCBkaXN0ID0gMCwgdyA9IDAsIGggPSAwOworICAgICAvLyBSZXNpemVzIGFuZCBzZXRz IHdpbmRvd3MgcG9zaXRpb25zIGluIGNvbHVtbnMgYW5kIHJvd3MuCisgICAgIGZvciAoaSA9IDA7 IGkgPCByb3dzOyArK2kpIHsKKyAgICAgICAgIHhfb2ZmcyA9IG9yaWdfeF9vZmZzOworICAgICAg ICAgZm9yIChqID0gMDsgaiA8IGNvbHMgJiYgIW5vcm1hbF93aW5kb3dzLmVtcHR5KCk7ICsraikg eworCisKKy0gICAgICAgICAgICBpbnQgY2VsbF9jZW50ZXJfeCA9IHhfb2ZmcyArICh4X29mZnMg KyBjYWxfd2lkdGgpIC8gMjsKKy0gICAgICAgICAgICBpbnQgY2VsbF9jZW50ZXJfeSA9IHlfb2Zm cyArICh5X29mZnMgKyBjYWxfaGVpZ2h0KSAvIDI7CistICAgICAgICAgICAgdW5zaWduZWQgaW50 IGNsb3Nlc3RfZGlzdCA9IH4wOworKyAgICAgICAgICAgIGNlbGxfY2VudGVyX3ggPSB4X29mZnMg KyAoeF9vZmZzICsgY2FsX3dpZHRoKSAvIDI7CisrICAgICAgICAgICAgY2VsbF9jZW50ZXJfeSA9 IHlfb2ZmcyArICh5X29mZnMgKyBjYWxfaGVpZ2h0KSAvIDI7CisrICAgICAgICAgICAgaW50IGNs b3Nlc3RfZGlzdCA9IH4wOworCisgICAgICAgICAgICAgV29ya3NwYWNlOjpXaW5kb3dzOjppdGVy YXRvciBjbG9zZXN0ID0gbm9ybWFsX3dpbmRvd3MuZW5kKCk7CisgICAgICAgICAgICAgZm9yICh3 aW4gPSBub3JtYWxfd2luZG93cy5iZWdpbigpOyB3aW4gIT0gbm9ybWFsX3dpbmRvd3MuZW5kKCk7 ICsrd2luKSB7CisKKy0gICAgICAgICAgICAgICAgaW50IHdpbl9jZW50ZXJfeCA9ICgqd2luKS0+ ZnJhbWUoKS54KCkgKyAoKCp3aW4pLT5mcmFtZSgpLngoKSArICgqd2luKS0+ZnJhbWUoKS53aWR0 aCgpIC8gMik7CistICAgICAgICAgICAgICAgIGludCB3aW5fY2VudGVyX3kgPSAoKndpbiktPmZy YW1lKCkueSgpICsgKCgqd2luKS0+ZnJhbWUoKS55KCkgKyAoKndpbiktPmZyYW1lKCkuaGVpZ2h0 KCkgLyAyKTsKKy0gICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGRpc3QgPSAod2luX2NlbnRl cl94IC0gY2VsbF9jZW50ZXJfeCkgKiAod2luX2NlbnRlcl94IC0gY2VsbF9jZW50ZXJfeCkgKwor KyAgICAgICAgICAgICAgICB3aW5fY2VudGVyX3ggPSAoKndpbiktPmZyYW1lKCkueCgpICsgKCgq d2luKS0+ZnJhbWUoKS54KCkgKyAoKndpbiktPmZyYW1lKCkud2lkdGgoKSAvIDIpOworKyAgICAg ICAgICAgICAgICB3aW5fY2VudGVyX3kgPSAoKndpbiktPmZyYW1lKCkueSgpICsgKCgqd2luKS0+ ZnJhbWUoKS55KCkgKyAoKndpbiktPmZyYW1lKCkuaGVpZ2h0KCkgLyAyKTsKKysgICAgICAgICAg ICAgICAgZGlzdCA9ICh3aW5fY2VudGVyX3ggLSBjZWxsX2NlbnRlcl94KSAqICh3aW5fY2VudGVy X3ggLSBjZWxsX2NlbnRlcl94KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHdpbl9jZW50ZXJfeSAtIGNlbGxfY2VudGVyX3kpICogKHdpbl9jZW50ZXJfeSAtIGNlbGxf Y2VudGVyX3kpOworCisgICAgICAgICAgICAgICAgIGlmIChkaXN0IDwgY2xvc2VzdF9kaXN0KSB7 CitAQCAtNTQ1LDEwICs1NDcsMTAgQEAgdm9pZCBBcnJhbmdlV2luZG93c0NtZDo6ZXhlY3V0ZSgp IHsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKworLSAgICAgICAgICAgIGlu dCB4ID0geF9vZmZzICsgKCpjbG9zZXN0KS0+eE9mZnNldCgpOworLSAgICAgICAgICAgIGludCB5 ID0geV9vZmZzICsgKCpjbG9zZXN0KS0+eU9mZnNldCgpOworLSAgICAgICAgICAgIHVuc2lnbmVk IGludCB3ID0gY2FsX3dpZHRoIC0gKCpjbG9zZXN0KS0+d2lkdGhPZmZzZXQoKTsKKy0gICAgICAg ICAgICB1bnNpZ25lZCBpbnQgaCA9IGNhbF9oZWlnaHQgLSAoKmNsb3Nlc3QpLT5oZWlnaHRPZmZz ZXQoKTsKKysgICAgICAgICAgICB4ID0geF9vZmZzICsgKCpjbG9zZXN0KS0+eE9mZnNldCgpOwor KyAgICAgICAgICAgIHkgPSB5X29mZnMgKyAoKmNsb3Nlc3QpLT55T2Zmc2V0KCk7CisrICAgICAg ICAgICAgdyA9IGNhbF93aWR0aCAtICgqY2xvc2VzdCktPndpZHRoT2Zmc2V0KCk7CisrICAgICAg ICAgICAgaCA9IGNhbF9oZWlnaHQgLSAoKmNsb3Nlc3QpLT5oZWlnaHRPZmZzZXQoKTsKKworICAg ICAgICAgICAgIC8vIHRoZSBsYXN0IHdpbmRvdyBnZXRzIGV2ZXJ5dGhpbmcgdGhhdCBpcyBsZWZ0 LgorICAgICAgICAgICAgIGlmIChub3JtYWxfd2luZG93cy5zaXplKCkgPT0gMSkgeworQEAgLTYy MCwxMiArNjIyLDkgQEAgdm9pZCBVbmNsdXR0ZXJDbWQ6OmV4ZWN1dGUoKSB7CisgICAgICAgICBy ZXR1cm47CisKKyAgICAgLy8gcGxhY2UKKy0gICAgTWluT3ZlcmxhcFBsYWNlbWVudCBtb3BwOwor ICAgICBpbnQgeCwgeTsKKy0gICAgZm9yICh3aW4gPSBwbGFjZWRfd2luZG93cy5iZWdpbigpOyB3 aW4gIT0gcGxhY2VkX3dpbmRvd3MuZW5kKCk7ICsrd2luKSB7CistICAgICAgICBtb3BwLnBsYWNl V2luZG93KCoqd2luLCBoZWFkLCB4LCB5KTsKKy0gICAgICAgICgqd2luKS0+bW92ZSh4LCB5KTsK Ky0gICAgfQorKyAgICBmb3IgKHdpbiA9IHBsYWNlZF93aW5kb3dzLmJlZ2luKCk7IHdpbiAhPSBw bGFjZWRfd2luZG93cy5lbmQoKTsgKyt3aW4pCisrICAgICAgICAoKndpbiktPnBsYWNlV2luZG93 KCgqd2luKS0+Z2V0T25IZWFkKCkpOworIH0KKworIFJFR0lTVEVSX0NPTU1BTkQoc2hvd2Rlc2t0 b3AsIFNob3dEZXNrdG9wQ21kLCB2b2lkKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmx1eGJveC9w YXRjaGVzL3pvcl9sb29wcy5wYXRjaCBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3pvcl9sb29w cy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjk1ZDk5MmY5 MDcxZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3pvcl9sb29w cy5wYXRjaApAQCAtMCwwICsxLDg3IEBACitkaWZmIC0tZ2l0IGEvc3JjL0ZiVGsvU1RMVXRpbC5o aCBiL3NyYy9GYlRrL1NUTFV0aWwuaGgKK2luZGV4IGFiYzU0NzI5Li45YzljMjdmOSAxMDA2NDQK Ky0tLSBhL3NyYy9GYlRrL1NUTFV0aWwuaGgKKysrKyBiL3NyYy9GYlRrL1NUTFV0aWwuaGgKK0BA IC00OCw0NiArNDgsNjMgQEAgc3RydWN0IElmVGhlbkVsc2U8ZmFsc2UsIFRhLCBUYj4geworIC8v LyBjYWxscyBkZWxldGUgb24gZWFjaCBpdGVtIGluIHRoZSBjb250YWluZXIgYW5kIHRoZW4gY2xl YXJzIHRoZSBjb250YWluZXIKKyB0ZW1wbGF0ZSA8dHlwZW5hbWUgQT4KKyB2b2lkIGRlc3Ryb3lB bmRDbGVhcihBICZhKSB7CistICAgIHR5cGVkZWYgdHlwZW5hbWUgQTo6aXRlcmF0b3IgaXRlcmF0 b3I7CistICAgIGl0ZXJhdG9yIGl0ID0gYS5iZWdpbigpOworLSAgICBpdGVyYXRvciBpdF9lbmQg PSBhLmVuZCgpOworLSAgICBmb3IgKDsgaXQgIT0gaXRfZW5kOyArK2l0KQorLSAgICAgICAgZGVs ZXRlICgqaXQpOworKyAgICAvL3R5cGVkZWYgdHlwZW5hbWUgQTo6aXRlcmF0b3IgaXRlcmF0b3I7 CisrICAgIC8vaXRlcmF0b3IgaXQgPSBhLmJlZ2luKCk7CisrICAgIC8vaXRlcmF0b3IgaXRfZW5k ID0gYS5lbmQoKTsKKysgICAgLy9mb3IgKDsgaXQgIT0gaXRfZW5kOyArK2l0KQorKyAgICAvLyAg ICBkZWxldGUgKCppdCk7CisgCisrICAgIC8vYS5jbGVhcigpOworKyAgICB0eXBlZGVmIHR5cGVu YW1lIEE6Oml0ZXJhdG9yIGl0ZXJhdG9yOworKyAgICBmb3IgKGF1dG8gaXQgOiBhKQorKyAgICAg ICAgZGVsZXRlIGl0OworICAgICBhLmNsZWFyKCk7CisgfQorIAorIC8vLyBjYWxscyBkZWxldGUg b24gZWFjaCBpdGVtIHZhbHVlIGluIHRoZSBtYXAgYW5kIHRoZW4gY2xlYXJzIHRoZSBtYXAKKyB0 ZW1wbGF0ZSA8dHlwZW5hbWUgQT4KKyB2b2lkIGRlc3Ryb3lBbmRDbGVhclNlY29uZChBICZhKSB7 CisrICAgIC8vdHlwZWRlZiB0eXBlbmFtZSBBOjppdGVyYXRvciBpdGVyYXRvcjsKKysgICAgLy9p dGVyYXRvciBpdCA9IGEuYmVnaW4oKTsKKysgICAgLy9pdGVyYXRvciBpdF9lbmQgPSBhLmVuZCgp OworKyAgICAvL2ZvciAoOyBpdCAhPSBpdF9lbmQ7ICsraXQpCisrICAgIC8vICAgIGRlbGV0ZSBp dC0+c2Vjb25kOworKyAgICAvL2EuY2xlYXIoKTsKKyAgICAgdHlwZWRlZiB0eXBlbmFtZSBBOjpp dGVyYXRvciBpdGVyYXRvcjsKKy0gICAgaXRlcmF0b3IgaXQgPSBhLmJlZ2luKCk7CistICAgIGl0 ZXJhdG9yIGl0X2VuZCA9IGEuZW5kKCk7CistICAgIGZvciAoOyBpdCAhPSBpdF9lbmQ7ICsraXQp CistICAgICAgICBkZWxldGUgaXQtPnNlY29uZDsKKysgICAgZm9yIChhdXRvIGl0IDogYSkKKysg ICAgICAgIGRlbGV0ZSBpdC5zZWNvbmQ7CisgICAgIGEuY2xlYXIoKTsKKyB9CisgCisgCisgdGVt cGxhdGUgPHR5cGVuYW1lIEMsIHR5cGVuYW1lIEY+CisgRiBmb3JBbGwoQyYgYywgRiBmKSB7Cisr ICAgIC8vdHlwZWRlZiB0eXBlbmFtZSBDOjppdGVyYXRvciBpdGVyYXRvcjsKKysgICAgLy9pdGVy YXRvciBpID0gYy5iZWdpbigpOworKyAgICAvL2l0ZXJhdG9yIGUgPSBjLmVuZCgpOworKyAgICAv L2ZvciAoOyBpICE9IGU7IGkrKykgeworKyAgICAvLyAgICBmKCppKTsKKysgICAgLy99CisgICAg IHR5cGVkZWYgdHlwZW5hbWUgQzo6aXRlcmF0b3IgaXRlcmF0b3I7CistICAgIGl0ZXJhdG9yIGkg PSBjLmJlZ2luKCk7CistICAgIGl0ZXJhdG9yIGUgPSBjLmVuZCgpOworLSAgICBmb3IgKDsgaSAh PSBlOyBpKyspIHsKKy0gICAgICAgIGYoKmkpOworLSAgICB9CisrICAgIGZvciAoYXV0byBpIDog YykKKysgICAgICAgIGYoaSk7CisgICAgIHJldHVybiBmOworIH0KKyAKKyB0ZW1wbGF0ZSA8dHlw ZW5hbWUgQywgdHlwZW5hbWUgSSwgdHlwZW5hbWUgRj4KKyBGIGZvckFsbElmKEMmIGMsIEkgaSwg RiBmKSB7CisrICAgIC8vdHlwZWRlZiB0eXBlbmFtZSBDOjppdGVyYXRvciBpdGVyYXRvcjsKKysg ICAgLy9pdGVyYXRvciBpdCA9IGMuYmVnaW4oKTsKKysgICAgLy9pdGVyYXRvciBlbmQgPSBjLmVu ZCgpOworKyAgICAvL2ZvciAoOyBpdCAhPSBlbmQ7ICsraXQpIHsKKysgICAgLy8gICAgaWYgKGko Kml0KSkKKysgICAgLy8gICAgICAgIGYoKml0KTsKKysgICAgLy99CisrICAgIC8vcmV0dXJuIGY7 CisgICAgIHR5cGVkZWYgdHlwZW5hbWUgQzo6aXRlcmF0b3IgaXRlcmF0b3I7CistICAgIGl0ZXJh dG9yIGl0ID0gYy5iZWdpbigpOworLSAgICBpdGVyYXRvciBlbmQgPSBjLmVuZCgpOworLSAgICBm b3IgKDsgaXQgIT0gZW5kOyArK2l0KSB7CistICAgICAgICBpZiAoaSgqaXQpKQorLSAgICAgICAg ICAgIGYoKml0KTsKKysgICAgZm9yIChhdXRvIGl0IDogYykgeworKyAgICAgICAgaWYgKGkoaXQp KQorKyAgICAgICAgICAgIGYoaXQpOworICAgICB9CisgICAgIHJldHVybiBmOworIH0KZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZmx1eGJveC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZmx1eGJveC90ZW1wbGF0 ZQppbmRleCBlMTBiNDI2YzQ5MjQuLjZiMGU0Y2QyNjBjYiAxMDA2NDQKLS0tIGEvc3JjcGtncy9m bHV4Ym94L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZmx1eGJveC90ZW1wbGF0ZQpAQCAtMSwyOSAr MSw1NiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZmx1eGJveCcKIHBrZ25hbWU9Zmx1eGJveAot dmVyc2lvbj0xLjMuNwotcmV2aXNpb249NAordmVyc2lvbj0xLjMuOAorI25vc3RyaXA9bm9zdHJp cAorX2NvbW1pdD1lMmNiZDE3OWVjYjJlZjJkNzZlMGFkMWZkZTg0YjQ0MzI1MzA1Nzk5CityZXZp c2lvbj0wCit3cmtzcmM9Zmx1eGJveC0ke19jb21taXR9CiBidWlsZF9zdHlsZT1nbnUtY29uZmln dXJlCi1jb25maWd1cmVfYXJncz0iLS1lbmFibGUtbmxzCitjb25maWd1cmVfYXJncz0iLS1kaXNh YmxlLW5scyAtLWRpc2FibGUteGluZXJhbWEgLS1kaXNhYmxlLXNoYXBlIC0tZGlzYWJsZS14cmVu ZGVyCisgLS1kaXNhYmxlLWZyaWJpZGkgLS1kaXNhYmxlLXNsaXQKICBhY19jdl9saWJfWDExX1hP cGVuRGlzcGxheT15ZXMgYWNfY3ZfbGliX1hmdF9YZnRGb250T3Blbj15ZXMKICBhY19jdl9saWJf WHJlbmRlcl9YUmVuZGVyQ3JlYXRlUGljdHVyZT15ZXMgYWNfY3ZfbGliX1hwbV9YcG1SZWFkRmls ZVRvUGl4bWFwPXllcwotIGFjX2N2X2xpYl9YaW5lcmFtYV9YaW5lcmFtYVF1ZXJ5U2NyZWVucz15 ZXMgYWNfY3ZfbGliX1hleHRfWFNoYXBlQ29tYmluZVNoYXBlPXllcworIGFjX2N2X2xpYl9YZXh0 X1hTaGFwZUNvbWJpbmVTaGFwZT1ubwogIGFjX2N2X2xpYl9YcmFuZHJfWFJSUXVlcnlFeHRlbnNp b249eWVzIGFjX2N2X2xpYl9mcmliaWRpX2ZyaWJpZGlfdmVyc2lvbl9pbmZvPXllcyIKLWhvc3Rt YWtlZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvbWFrZSBsaWJ0b29sIGdldHRleHQgZ2V0dGV4dC1k ZXZlbCIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvbWFrZSBsaWJ0b29sIGdldHRl eHQgZ2V0dGV4dC1kZXZlbCBjbGFuZyBsbHZtIgogbWFrZWRlcGVuZHM9ImxpYlNNLWRldmVsIGxp YlhyZW5kZXItZGV2ZWwgbGliWGZ0LWRldmVsIGxpYlhwbS1kZXZlbCBpbWxpYjItZGV2ZWwKLSBs aWJYZXh0LWRldmVsIGxpYlhpbmVyYW1hLWRldmVsIGxpYlhyYW5kci1kZXZlbCBmcmliaWRpLWRl dmVsIgorIGxpYlhleHQtZGV2ZWwgbGliWHJhbmRyLWRldmVsIGZyaWJpZGktZGV2ZWwiCiBzaG9y dF9kZXNjPSJIaWdobHkgY29uZmlndXJhYmxlIGFuZCBsb3cgcmVzb3VyY2UgWDExIFdpbmRvdyBt YW5hZ2VyIgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxp Y2Vuc2U9Ik1JVCIKIGhvbWVwYWdlPSJodHRwOi8vd3d3LmZsdXhib3gub3JnIgotZGlzdGZpbGVz PSJodHRwczovL2dpdGh1Yi5jb20vZmx1eGJveC9mbHV4Ym94L2FyY2hpdmUvcmVmcy90YWdzL1Jl bGVhc2UtJHt2ZXJzaW9uLy8uL199LnRhci5neiIKLWNoZWNrc3VtPTk5MDQxNGFlMzQyYTM1YzU3 MDNlNTAyNWE4YmYwMTliMGI0ZGFkYTU1ZDU3MDcxYzUxZDNkNDk4YWJiNWNkMzYKK2Rpc3RmaWxl cz0iaHR0cHM6Ly9naXRodWIuY29tL2ZsdXhib3gvZmx1eGJveC9hcmNoaXZlLyR7X2NvbW1pdH0u dGFyLmd6IgorY2hlY2tzdW09Njc0MGQ5Y2Q0YTNlNjMxZTAxMzBjYmNiYzkxY2NhYzZhZjYzMzVk YzEyMGY5YWRjNWViYmM4ZGM5ZDMyNTlhMAorCitub3BpZT15ZXMKK1gxMV9GTEFHUz0iLU9zIC1w aXBlIgorI0ZSSUJJRElfQ0ZMQUdTPSItT3MgLXBpcGUiCitYUkFORFJfQ0ZMQUdTPSItT3MgLXBp cGUiCitBTV9DUFBGTEFHUz0iLU9zIC1waXBlIgorQ0ZMQUdTPSItT3MgLXBpcGUiCitDWFhGTEFH Uz0iLU9zIC1waXBlIC1zdGQ9YysrMTEiCitDQz0iY2xhbmciCitDWFg9ImNsYW5nKysiCitIT1NU X0NDPWNsYW5nCitIT1NUX0NYWD1jbGFuZysrCiAKIGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5F IiBpbgogCSotbXVzbCkgY29uZmlndXJlX2FyZ3M9IiR7Y29uZmlndXJlX2FyZ3MvZW5hYmxlLW5s cy9kaXNhYmxlLW5sc30iIDs7CiBlc2FjCiAKIHByZV9jb25maWd1cmUoKSB7Ci0JLi9hdXRvZ2Vu LnNoCisgIGV4cG9ydCBYMTFfRkxBR1M9Ii1PcyAtcGlwZSIKKyAgIyBleHBvcnQgRlJJQklESV9D RkxBR1M9Ii1PcyAtcGlwZSIKKyAgZXhwb3J0IFhSQU5EUl9DRkxBR1M9Ii1PcyAtcGlwZSIKKyAg ZXhwb3J0IEFNX0NQUEZMQUdTPSItT3MgLXBpcGUiCisgIGV4cG9ydCBDRkxBR1M9Ii1PcyAtcGlw ZSIKKyAgZXhwb3J0IENYWEZMQUdTPSItT3MgLXBpcGUgLXN0ZD1jKysxMSIKKyAgZXhwb3J0IEND PSJjbGFuZyIKKyAgZXhwb3J0IENYWD0iY2xhbmcrKyIKKyAgZXhwb3J0IEhPU1RfQ0M9Y2xhbmcK KyAgZXhwb3J0IEhPU1RfQ1hYPWNsYW5nKysKKyAgZXhwb3J0IFBSRUZJWD0vdXNyCisgIC4vYXV0 b2dlbi5zaAogfQogCiBwb3N0X2luc3RhbGwoKSB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmF2 Y29kZWM0IGIvc3JjcGtncy9saWJhdmNvZGVjNApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAw MDAwMDAwMDAwMDAuLjg4N2YzNTRlN2M2YgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGli YXZjb2RlYzQKQEAgLTAsMCArMSBAQAorZmZtcGVnNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliYXZkZXZpY2U0IGIvc3JjcGtncy9saWJhdmRldmlj ZTQKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi44ODdmMzU0ZTdjNmIK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYmF2ZGV2aWNlNApAQCAtMCwwICsxIEBACitm Zm1wZWc0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s aWJhdmZpbHRlcjQgYi9zcmNwa2dzL2xpYmF2ZmlsdGVyNApuZXcgZmlsZSBtb2RlIDEyMDAwMApp bmRleCAwMDAwMDAwMDAwMDAuLjg4N2YzNTRlN2M2YgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvbGliYXZmaWx0ZXI0CkBAIC0wLDAgKzEgQEAKK2ZmbXBlZzQKXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmF2Zm9ybWF0NCBiL3NyY3BrZ3MvbGli YXZmb3JtYXQ0Cm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uODg3ZjM1 NGU3YzZiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJhdmZvcm1hdDQKQEAgLTAsMCAr MSBAQAorZmZtcGVnNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvbGliYXZyZXNhbXBsZSBiL3NyY3BrZ3MvbGliYXZyZXNhbXBsZQppbmRleCBhOWYxZWVh MDkyZDUuLjg4N2YzNTRlN2M2YiAxMjAwMDAKLS0tIGEvc3JjcGtncy9saWJhdnJlc2FtcGxlCisr KyBiL3NyY3BrZ3MvbGliYXZyZXNhbXBsZQpAQCAtMSArMSBAQAotZmZtcGVnClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQorZmZtcGVnNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGliYXZyZXNhbXBsZTQgYi9zcmNwa2dzL2xpYmF2cmVzYW1wbGU0 Cm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uODg3ZjM1NGU3YzZiCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJhdnJlc2FtcGxlNApAQCAtMCwwICsxIEBACitm Zm1wZWc0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s aWJhdnV0aWw0IGIvc3JjcGtncy9saWJhdnV0aWw0Cm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4 IDAwMDAwMDAwMDAwMC4uODg3ZjM1NGU3YzZiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9s aWJhdnV0aWw0CkBAIC0wLDAgKzEgQEAKK2ZmbXBlZzQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm aWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYnBvc3Rwcm9jNCBiL3NyY3BrZ3MvbGlicG9zdHBy b2M0Cm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uODg3ZjM1NGU3YzZi Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJwb3N0cHJvYzQKQEAgLTAsMCArMSBAQAor ZmZtcGVnNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bGlic3dyZXNhbXBsZTQgYi9zcmNwa2dzL2xpYnN3cmVzYW1wbGU0Cm5ldyBmaWxlIG1vZGUgMTIw MDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uODg3ZjM1NGU3YzZiCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9saWJzd3Jlc2FtcGxlNApAQCAtMCwwICsxIEBACitmZm1wZWc0ClwgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJzd3NjYWxlNCBiL3NyY3Br Z3MvbGlic3dzY2FsZTQKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi44 ODdmMzU0ZTdjNmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYnN3c2NhbGU0CkBAIC0w LDAgKzEgQEAKK2ZmbXBlZzQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS9zcmNwa2dzL21lc2EvdGVtcGxhdGUgYi9zcmNwa2dzL21lc2EvdGVtcGxhdGUKaW5kZXggZDlm ZjBiMmZmMjNkLi5iZGViMjJiMTNhYWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbWVzYS90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL21lc2EvdGVtcGxhdGUKQEAgLTEsMTIgKzEsMTMgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ21lc2EnCiBwa2duYW1lPW1lc2EKLXZlcnNpb249MjIuMy41Cit2ZXJzaW9u PTIzLjAuMAogcmV2aXNpb249MQorI3dya3NyYz0iTWVzYS1kZzItMjAyMzAxMjUiCiBidWlsZF9z dHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EZ2x2bmQ9dHJ1ZSAtRHNoYXJlZC1nbGFwaT1l bmFibGVkIC1EZ2JtPWVuYWJsZWQgLURlZ2w9ZW5hYmxlZAogIC1Eb3NtZXNhPXRydWUgLURnbGVz MT1lbmFibGVkIC1EZ2xlczI9ZW5hYmxlZCAtRGdseD1kcmkgLURkcmkzPWVuYWJsZWQKICAtRGxt c2Vuc29ycz1lbmFibGVkIC1EcGxhdGZvcm1zPXgxMSQodm9wdF9pZiB3YXlsYW5kICx3YXlsYW5k KQotIC1EbGx2bT1lbmFibGVkIC1EYl9sdG89ZmFsc2UgLURjcHBfc3RkPWdudSsrMTQiCisgLURs bHZtPWVuYWJsZWQgLURiX2x0bz1mYWxzZSAtRGNwcF9zdGQ9Z251KysxNyIKIGhvc3RtYWtlZGVw ZW5kcz0iZ2V0dGV4dCBmbGV4IGxsdm0gcGtnLWNvbmZpZyBweXRob24zLU1ha28gZ2xzbGFuZwog ICQodm9wdF9pZiB3YXlsYW5kICd3YXlsYW5kLXByb3RvY29scyB3YXlsYW5kLWRldmVsJykiCiBt YWtlZGVwZW5kcz0iZWxmdXRpbHMtZGV2ZWwgZXhwYXQtZGV2ZWwgbGliWGRhbWFnZS1kZXZlbApA QCAtMjIsMTEgKzIzLDIzIEBAIGxpY2Vuc2U9Ik1JVCwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21l cGFnZT0iaHR0cHM6Ly93d3cubWVzYTNkLm9yZy8iCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vZG9jcy5t ZXNhM2Qub3JnL3JlbG5vdGVzLmh0bWwiCiBkaXN0ZmlsZXM9Imh0dHBzOi8vbWVzYS5mcmVlZGVz a3RvcC5vcmcvYXJjaGl2ZS9tZXNhLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09M2VlZDJl Y2FlMmJjNjc0NDk0NTY2ZmFhYjlmY2M5YmViMjFjZDgwNGM3YmEyYjU5YTE2OTRmM2Q3MjM2ZTZh OQorY2hlY2tzdW09MDFmM2NmZjM3NjNmMDllMGFkYWJjYjgwMTFlNGFlYmM2YWQ0OGY2YTRkZDRi YWU5MDRmZTkxODcwN2QyNTNlNAorIyBpbnRlbCBkZzIgamFuIDI1CisjY2hlY2tzdW09NGVjOGVj NjVkYmRiMWVlOTQ0NGRiYTcyOTcwODkwMTI4YTE5NTQzYTU4Y2YwNTkzMWJkNmY1NGYxMjRlMTE3 ZgorI2NoZWNrc3VtPTM3YTFkZGFmMDNmNDE5MTllZTNjODljOTdjZmY0MWU4N2RlOTZlMDBlOWQz MjQ3OTU5Y2M4Mjc5ZDgyOTQ1OTMKKyNkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9pbnRl bC1ncHUvTWVzYS9hcmNoaXZlL3JlZnMvdGFncy9kZzItMjAyMzAxMjUudGFyLmd6IgorI2NoZWNr c3VtPTIyMjAzMTg2Nzc5MjIyZWM1MjQ0ZWNiNzRmYmFlNzA2ZDM1NTc1ODhjODIwODliMThjN2Jm NzdhNTQ3OTlhNTkKIAogYnVpbGRfb3B0aW9ucz0id2F5bGFuZCIKIGJ1aWxkX29wdGlvbnNfZGVm YXVsdD0id2F5bGFuZCIKIAorZXhwb3J0IENDPWNsYW5nCitleHBvcnQgQ1hYPWNsYW5nKysKKwor aWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwljb25maWd1cmVfYXJn cys9IiAtRHVzZS1lbGYtdGxzPWZhbHNlIgorZmkKKwogIyBvbmx5IHVzZSBsbHZtcGlwZSBvbiB0 YXJnZXRzIHdoZXJlIGl0J3Mgc3VwcG9ydGVkIGFuZCByZWxpYWJsZQogIyBlc3BlY2lhbGx5IG9u IGJpZyBlbmRpYW4gaXQncyBhbGwga2luZHMgb2YgYnJva2VuLCBhbmQgZS5nLiBvbgogIyAzMi1i aXQgcG93ZXJwYyBpdCBkb2VzIG5vdCB3b3JrIGF0IGFsbCwgc28gZmFsbCBiYWNrIHRvIHNvZnRw aXBlCkBAIC05MSw3ICsxMDQsNyBAQCBmaQogaWYgWyAiJF9oYXZlX2ludGVsIiBdOyB0aGVuCiAJ X2hhdmVfdnVsa2FuPXllcwogCV9nYWxsaXVtX2RyaXZlcnMrPSIsY3JvY3VzLGlyaXMsaTkxNSIK LQlfdnVsa2FuX2RyaXZlcnMrPSIsaW50ZWwsaW50ZWxfaGFzdmsiCisJX3Z1bGthbl9kcml2ZXJz Kz0iLGludGVsIgogCXN1YnBhY2thZ2VzKz0iIG1lc2EtdnVsa2FuLWludGVsIgogCSMgdHJhbnNp dGlvbmFsIGR1bW15IHBhY2thZ2VzCiAJc3VicGFja2FnZXMrPSIgbWVzYS1pbnRlbC1kcmkiCkBA IC0xNDAsMTAgKzE1MywxMCBAQCBmaQogCiAjIGVuYWJsZWQgY3VycmVudGx5IGJ5IGFtZCBkcml2 ZXJzCiBpZiBbICIkX2hhdmVfb3BlbmNsIiBdOyB0aGVuCi0JaG9zdG1ha2VkZXBlbmRzKz0iIGNs YW5nIHJ1c3QgcnVzdC1iaW5kZ2VuIgotCW1ha2VkZXBlbmRzKz0iIGNsYW5nIGxpYmNsYyBydXN0 IFNQSVJWLUxMVk0tVHJhbnNsYXRvci1kZXZlbCBTUElSVi1Ub29scy1kZXZlbCIKKwlob3N0bWFr ZWRlcGVuZHMrPSIgY2xhbmciCisJbWFrZWRlcGVuZHMrPSIgY2xhbmcgbGliY2xjIgogCXN1YnBh Y2thZ2VzKz0iIG1lc2Etb3BlbmNsIgotCWNvbmZpZ3VyZV9hcmdzKz0iIC1EZ2FsbGl1bS1vcGVu Y2w9aWNkIC1EZ2FsbGl1bS1ydXN0aWNsPXRydWUgLURydXN0X3N0ZD0yMDIxIgorCWNvbmZpZ3Vy ZV9hcmdzKz0iIC1EZ2FsbGl1bS1vcGVuY2w9aWNkIgogZmkKIAogaWYgWyAiJF9oYXZlX2h3ZGVj IiBdOyB0aGVuCkBAIC0xODcsNyArMjAwLDYgQEAgZXNhYwogcG9zdF9jb25maWd1cmUoKSB7CiAJ aWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJCWZpbmQgLWluYW1lICIqLm5pbmphIiAtZXhl YyBzZWQgLWkgInt9IiBcCi0JCQktZSAiL3J1c3RjL3M7IC0tc3lzcm9vdCAke1hCUFNfQ1JPU1Nf QkFTRX0vdXNyOztnIiBcCiAJCQktZSAiczsgL3Vzci9saWIvOyAke1hCUFNfQ1JPU1NfQkFTRX0v dXNyL2xpYi87ZyIgXAogCQkJLWUgInM7LUwvdXNyL2xpYjstTCR7WEJQU19DUk9TU19CQVNFfS91 c3IvbGliO2ciIFwKIAkJCS1lICJzOy1JL3Vzci9pbmNsdWRlOy1JJHtYQlBTX0NST1NTX0JBU0V9 L3Vzci9pbmNsdWRlO2ciIFwKQEAgLTI4Niw3ICsyOTgsNiBAQCBNZXNhTGliLWRldmVsX3BhY2th Z2UoKSB7CiAJCWZpCiAJCWlmIFsgIiRfaGF2ZV9vcGVuY2wiIF07IHRoZW4KIAkJCXZtb3ZlIHVz ci9saWIvbGliTWVzYU9wZW5DTC5zbwotCQkJdm1vdmUgdXNyL2xpYi9saWJSdXN0aWNsT3BlbkNM LnNvCiAJCWZpCiAJfQogfQpAQCAtMzA1LDcgKzMxNiw2IEBAIG1lc2Etb3BlbmNsX3BhY2thZ2Uo KSB7CiAJCXZtb3ZlIGV0Yy9PcGVuQ0wKIAkJdm1vdmUgdXNyL2xpYi9nYWxsaXVtLXBpcGUKIAkJ dm1vdmUgInVzci9saWIvbGliTWVzYU9wZW5DTC5zby4qIgotCQl2bW92ZSAidXNyL2xpYi9saWJS dXN0aWNsT3BlbkNMLnNvLioiCiAJfQogfQogCkBAIC0zMzYsMTUgKzM0NiwxNCBAQCBtZXNhLXZk cGF1X3BhY2thZ2UoKSB7CiBtZXNhLXZ1bGthbi1pbnRlbF9wYWNrYWdlKCkgewogCXNob3J0X2Rl c2M9Ik1lc2EgSW50ZWwgVnVsa2FuIGRyaXZlciIKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUg InVzci9zaGFyZS92dWxrYW4vaWNkLmQvaW50ZWwqLmpzb24iCi0JCXZtb3ZlICJ1c3IvbGliL2xp YnZ1bGthbl9pbnRlbCouc28iCisJCXZtb3ZlICJ1c3Ivc2hhcmUvdnVsa2FuL2ljZC5kL2ludGVs X2ljZCouanNvbiIKKwkJdm1vdmUgInVzci9saWIvbGlidnVsa2FuX2ludGVsLnNvIgogCX0KIH0K IAogbWVzYS12dWxrYW4tcmFkZW9uX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVzYz0iTWVzYSBSYWRl b24gVnVsa2FuIGRyaXZlciIKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1vdmUgInVzci9zaGFyZS9k cmlyYy5kLzAwLXJhZHYtZGVmYXVsdHMuY29uZiIKIAkJdm1vdmUgInVzci9zaGFyZS92dWxrYW4v aWNkLmQvcmFkZW9uX2ljZCouanNvbiIKIAkJdm1vdmUgInVzci9saWIvbGlidnVsa2FuX3JhZGVv bi5zbyIKIAl9CgpGcm9tIDY3YjJhZWZlYmY0MWU2YzU1ZDIwMDk0YzZlZDEwN2FjM2U2ZjY0ZDgg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHpsaWNlIDx6bGljZTU1NUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMjIgTWFyIDIwMjMgMTc6NDE6MzggLTA0MDAKU3ViamVjdDogW1BBVENIIDIv NF0gb3BlbmN2OiB1cGRhdGUgdG8gNC43LjAuCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAxMDQgKysrKysrKysrKystLS0tLS0tLS0tLS0KIHNyY3BrZ3Mv YWN0aW9uYS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvZGlnaWth bS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvZ21pYy90ZW1wbGF0 ZSAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvZ29sZGVuZGljdC9wYXRjaGVz L2ZmbXBlZzQucGF0Y2ggfCAgMjEgLS0tLS0KIHNyY3BrZ3Mvbm9tYWNzL3RlbXBsYXRlICAgICAg ICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3Mvb3BlbmN2L3RlbXBsYXRlICAgICAgICAgICAg ICAgICAgfCAgIDggKy0KIHNyY3BrZ3MvcWltZ3YvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAg fCAgIDIgKy0KIHNyY3BrZ3MvcmV0cm9zaGFyZS90ZW1wbGF0ZSAgICAgICAgICAgICAgfCAgIDIg Ky0KIHNyY3BrZ3Mvc2lyaWwvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNy Y3BrZ3Mvd2FpZnUyeC1jb252ZXJ0ZXItY3BwL3RlbXBsYXRlICAgfCAgIDIgKy0KIDExIGZpbGVz IGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyksIDg1IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvZ29sZGVuZGljdC9wYXRjaGVzL2ZmbXBlZzQucGF0Y2gKCmRpZmYgLS1n aXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBhYWI2NmM4M2Y0YjMuLmE5 ZDFjNmExNmVjNiAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJz CkBAIC0yMTI4LDU4ICsyMTI4LDU4IEBAIGxpYmNhcHN0b25lLnNvLjQgY2Fwc3RvbmUtNC4wXzEK IGxpYmhhdmVnZS5zby4yIGxpYmhhdmVnZWQtMS45LjExXzEKIGxpYm5paC5zby4xIGxpYm5paC0x LjAuM18xCiBsaWJuaWgtZGJ1cy5zby4xIGxpYm5paC0xLjAuM18xCi1saWJvcGVuY3ZfcXVhbGl0 eS5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl9yZWcuc28uNDA2IGxpYm9wZW5j di00LjYuMF8xCi1saWJvcGVuY3Zfc3VyZmFjZV9tYXRjaGluZy5zby40MDYgbGlib3BlbmN2LTQu Ni4wXzEKLWxpYm9wZW5jdl94cGhvdG8uc28uNDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVu Y3ZfZnJlZXR5cGUuc28uNDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfZnV6enkuc28u NDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfaGZzLnNvLjQwNiBsaWJvcGVuY3YtNC42 LjBfMQotbGlib3BlbmN2X2ltZ19oYXNoLnNvLjQwNiBsaWJvcGVuY3YtNC42LjBfMQotbGlib3Bl bmN2X2xpbmVfZGVzY3JpcHRvci5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl9z YWxpZW5jeS5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl9zdHJ1Y3R1cmVkX2xp Z2h0LnNvLjQwNiBsaWJvcGVuY3YtNC42LjBfMQotbGlib3BlbmN2X2FydWNvLnNvLjQwNiBsaWJv cGVuY3YtNC42LjBfMQotbGlib3BlbmN2X2Jnc2VnbS5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEK LWxpYm9wZW5jdl9iaW9pbnNwaXJlZC5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5j dl9jY2FsaWIuc28uNDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfZmFjZS5zby40MDYg bGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl90cmFja2luZy5zby40MDYgbGlib3BlbmN2LTQu Ni4wXzEKLWxpYm9wZW5jdl94ZmVhdHVyZXMyZC5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxp Ym9wZW5jdl9vcHRmbG93LnNvLjQwNiBsaWJvcGVuY3YtNC42LjBfMQotbGlib3BlbmN2X3hpbWdw cm9jLnNvLjQwNiBsaWJvcGVuY3YtNC42LjBfMQotbGlib3BlbmN2X3Bsb3Quc28uNDA2IGxpYm9w ZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfdGV4dC5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxp Ym9wZW5jdl9tbC5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl9vYmpkZXRlY3Qu c28uNDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfZG5uLnNvLjQwNiBsaWJvcGVuY3Yt NC42LjBfMQotbGlib3BlbmN2X3NoYXBlLnNvLjQwNiBsaWJvcGVuY3YtNC42LjBfMQotbGlib3Bl bmN2X3N0aXRjaGluZy5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl9waG90by5z by40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl92aWRlby5zby40MDYgbGlib3BlbmN2 LTQuNi4wXzEKLWxpYm9wZW5jdl9jYWxpYjNkLnNvLjQwNiBsaWJvcGVuY3YtNC42LjBfMQotbGli b3BlbmN2X2ZlYXR1cmVzMmQuc28uNDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfZmxh bm4uc28uNDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfaGlnaGd1aS5zby40MDYgbGli b3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl92aWRlb2lvLnNvLjQwNiBsaWJvcGVuY3YtNC42LjBf MQotbGlib3BlbmN2X2ltZ2NvZGVjcy5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5j dl9pbWdwcm9jLnNvLjQwNiBsaWJvcGVuY3YtNC42LjBfMQotbGlib3BlbmN2X2NvcmUuc28uNDA2 IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3Zfc3VwZXJyZXMuc28uNDA2IGxpYm9wZW5jdi00 LjYuMF8xCi1saWJvcGVuY3ZfdmlkZW9zdGFiLnNvLjQwNiBsaWJvcGVuY3YtNC42LjBfMQotbGli b3BlbmN2X2dhcGkuc28uNDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfeG9iamRldGVj dC5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl9kYXRhc2V0cy5zby40MDYgbGli b3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl9kbm5fb2JqZGV0ZWN0LnNvLjQwNiBsaWJvcGVuY3Yt NC42LjBfMQotbGlib3BlbmN2X2Rubl9zdXBlcnJlcy5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEK LWxpYm9wZW5jdl9kcG0uc28uNDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfcGhhc2Vf dW53cmFwcGluZy5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9wZW5jdl9zdGVyZW8uc28u NDA2IGxpYm9wZW5jdi00LjYuMF8xCi1saWJvcGVuY3ZfcmFwaWQuc28uNDA2IGxpYm9wZW5jdi00 LjYuMF8xCi1saWJvcGVuY3ZfaW50ZW5zaXR5X3RyYW5zZm9ybS5zby40MDYgbGlib3BlbmN2LTQu Ni4wXzEKLWxpYm9wZW5jdl9hbHBoYW1hdC5zby40MDYgbGlib3BlbmN2LTQuNi4wXzEKLWxpYm9w ZW5jdl9iYXJjb2RlLnNvLjQwNiBsaWJvcGVuY3YtNC42LjBfMQotbGlib3BlbmN2X21jYy5zby40 MDYgbGlib3BlbmN2LTQuNi4wXzEKK2xpYm9wZW5jdl9xdWFsaXR5LnNvLjQwNyBsaWJvcGVuY3Yt NC43LjBfMQorbGlib3BlbmN2X3JlZy5zby40MDcgbGlib3BlbmN2LTQuNy4wXzEKK2xpYm9wZW5j dl9zdXJmYWNlX21hdGNoaW5nLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X3hw aG90by5zby40MDcgbGlib3BlbmN2LTQuNy4wXzEKK2xpYm9wZW5jdl9mcmVldHlwZS5zby40MDcg bGlib3BlbmN2LTQuNy4wXzEKK2xpYm9wZW5jdl9mdXp6eS5zby40MDcgbGlib3BlbmN2LTQuNy4w XzEKK2xpYm9wZW5jdl9oZnMuc28uNDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3ZfaW1n X2hhc2guc28uNDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3ZfbGluZV9kZXNjcmlwdG9y LnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X3NhbGllbmN5LnNvLjQwNyBsaWJv cGVuY3YtNC43LjBfMQorbGlib3BlbmN2X3N0cnVjdHVyZWRfbGlnaHQuc28uNDA3IGxpYm9wZW5j di00LjcuMF8xCitsaWJvcGVuY3ZfYXJ1Y28uc28uNDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJv cGVuY3ZfYmdzZWdtLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X2Jpb2luc3Bp cmVkLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X2NjYWxpYi5zby40MDcgbGli b3BlbmN2LTQuNy4wXzEKK2xpYm9wZW5jdl9mYWNlLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQor bGlib3BlbmN2X3RyYWNraW5nLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X3hm ZWF0dXJlczJkLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X29wdGZsb3cuc28u NDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3ZfeGltZ3Byb2Muc28uNDA3IGxpYm9wZW5j di00LjcuMF8xCitsaWJvcGVuY3ZfcGxvdC5zby40MDcgbGlib3BlbmN2LTQuNy4wXzEKK2xpYm9w ZW5jdl90ZXh0LnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X21sLnNvLjQwNyBs aWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X29iamRldGVjdC5zby40MDcgbGlib3BlbmN2LTQu Ny4wXzEKK2xpYm9wZW5jdl9kbm4uc28uNDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3Zf c2hhcGUuc28uNDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3Zfc3RpdGNoaW5nLnNvLjQw NyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X3Bob3RvLnNvLjQwNyBsaWJvcGVuY3YtNC43 LjBfMQorbGlib3BlbmN2X3ZpZGVvLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2 X2NhbGliM2Quc28uNDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3ZfZmVhdHVyZXMyZC5z by40MDcgbGlib3BlbmN2LTQuNy4wXzEKK2xpYm9wZW5jdl9mbGFubi5zby40MDcgbGlib3BlbmN2 LTQuNy4wXzEKK2xpYm9wZW5jdl9oaWdoZ3VpLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGli b3BlbmN2X3ZpZGVvaW8uc28uNDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3ZfaW1nY29k ZWNzLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X2ltZ3Byb2Muc28uNDA3IGxp Ym9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3ZfY29yZS5zby40MDcgbGlib3BlbmN2LTQuNy4wXzEK K2xpYm9wZW5jdl9zdXBlcnJlcy5zby40MDcgbGlib3BlbmN2LTQuNy4wXzEKK2xpYm9wZW5jdl92 aWRlb3N0YWIuc28uNDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3ZfZ2FwaS5zby40MDcg bGlib3BlbmN2LTQuNy4wXzEKK2xpYm9wZW5jdl94b2JqZGV0ZWN0LnNvLjQwNyBsaWJvcGVuY3Yt NC43LjBfMQorbGlib3BlbmN2X2RhdGFzZXRzLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGli b3BlbmN2X2Rubl9vYmpkZXRlY3Quc28uNDA3IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3Zf ZG5uX3N1cGVycmVzLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X2RwbS5zby40 MDcgbGlib3BlbmN2LTQuNy4wXzEKK2xpYm9wZW5jdl9waGFzZV91bndyYXBwaW5nLnNvLjQwNyBs aWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X3N0ZXJlby5zby40MDcgbGlib3BlbmN2LTQuNy4w XzEKK2xpYm9wZW5jdl9yYXBpZC5zby40MDcgbGlib3BlbmN2LTQuNy4wXzEKK2xpYm9wZW5jdl9p bnRlbnNpdHlfdHJhbnNmb3JtLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X2Fs cGhhbWF0LnNvLjQwNyBsaWJvcGVuY3YtNC43LjBfMQorbGlib3BlbmN2X2JhcmNvZGUuc28uNDA3 IGxpYm9wZW5jdi00LjcuMF8xCitsaWJvcGVuY3ZfbWNjLnNvLjQwNyBsaWJvcGVuY3YtNC43LjBf MQogbGlidW5pY29uZi5zby40LjYgd3ZzdHJlYW1zLTQuNi4xXzIwCiBsaWJ3dmJhc2Uuc28uNC42 IHd2c3RyZWFtcy00LjYuMV8yMAogbGlid3Z1dGlscy5zby40LjYgd3ZzdHJlYW1zLTQuNi4xXzIw CmRpZmYgLS1naXQgYS9zcmNwa2dzL2FjdGlvbmEvdGVtcGxhdGUgYi9zcmNwa2dzL2FjdGlvbmEv dGVtcGxhdGUKaW5kZXggY2Y1ZjBiN2EyYWU2Li4wZDg5OTMxMWU2ZGYgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvYWN0aW9uYS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2FjdGlvbmEvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdhY3Rpb25hJwogcGtnbmFtZT1hY3Rp b25hCiB2ZXJzaW9uPTMuMTAuMQotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9 cW1ha2UKIGNvbmZpZ3VyZV9hcmdzPSJQS0dDT05GSUdfT1BFTkNWPW9wZW5jdjQiCiBob3N0bWFr ZWRlcGVuZHM9InBrZy1jb25maWcgcXQ1LXBsdWdpbi1teXNxbCBxdDUtcW1ha2UgcXQ1LWhvc3Qt dG9vbHMiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2RpZ2lrYW0vdGVtcGxhdGUgYi9zcmNwa2dzL2Rp Z2lrYW0vdGVtcGxhdGUKaW5kZXggZThlYzQ5NjE0NTdiLi4wYTg5ODRkYjg1YmMgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvZGlnaWthbS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2RpZ2lrYW0vdGVtcGxh dGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdkaWdpa2FtJwogcGtnbmFt ZT1kaWdpa2FtCiB2ZXJzaW9uPTcuMTAuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRf c3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItREJVSUxEX1RFU1RJTkc9T0ZGIgogaG9zdG1h a2VkZXBlbmRzPSJleHRyYS1jbWFrZS1tb2R1bGVzIGdldHRleHQgcGtnLWNvbmZpZyBiaXNvbiBm bGV4IHF0NS1xbWFrZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbWljL3RlbXBsYXRlIGIvc3JjcGtn cy9nbWljL3RlbXBsYXRlCmluZGV4IDhlM2I4MDA0N2YyNi4uNDNjNmUwNjcyYTJiIDEwMDY0NAot LS0gYS9zcmNwa2dzL2dtaWMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbWljL3RlbXBsYXRlCkBA IC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ21pYycKIHBrZ25hbWU9Z21pYwog dmVyc2lvbj0zLjEuNgotcmV2aXNpb249MQorcmV2aXNpb249MgogX3phcnRfaGFzaD0zNGViZjZj Y2UwYmFmYjk4YWJlNTdjZWM4M2M0YTAyY2QxYWJlY2EwCiBjcmVhdGVfd3Jrc3JjPXllcwogYnVp bGRfd3Jrc3JjPSJzcmMiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9m Zm1wZWc0LnBhdGNoIGIvc3JjcGtncy9nb2xkZW5kaWN0L3BhdGNoZXMvZmZtcGVnNC5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjA0NWZhMjdmNTRiLi4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9nb2xkZW5kaWN0L3BhdGNoZXMvZmZtcGVnNC5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDIxICswLDAgQEAKLS0tLSBhL2ZmbXBlZ2F1ZGlvLmNjLm9yaWcgMjAxOC0wNS0w OSAyMjoxNjoxMy40ODA2NTk5NTggKzAyMDAKLSsrKyBiL2ZmbXBlZ2F1ZGlvLmNjICAgICAgMjAx OC0wNS0wOSAyMjoxNjo1MC43NDgzMjI3OTAgKzAyMDAKLUBAIC0xNDMsNyArMTQzLDcgQEAKLSAg ICAgcmV0dXJuIGZhbHNlOwotICAgfQotCi0tICB1bnNpZ25lZCBjaGFyICogYXZpb0J1ZmZlciA9 ICggdW5zaWduZWQgY2hhciAqIClhdl9tYWxsb2MoIGtCdWZmZXJTaXplICsgRkZfSU5QVVRfQlVG RkVSX1BBRERJTkdfU0laRSApOwotKyAgdW5zaWduZWQgY2hhciAqIGF2aW9CdWZmZXIgPSAoIHVu c2lnbmVkIGNoYXIgKiApYXZfbWFsbG9jKCBrQnVmZmVyU2l6ZSArIEFWX0lOUFVUX0JVRkZFUl9Q QURESU5HX1NJWkUgKTsKLSAgIGlmICggIWF2aW9CdWZmZXIgKQotICAgewotICAgICBlcnJvclN0 cmluZyA9IFFPYmplY3Q6OnRyKCAiYXZfbWFsbG9jKCkgZmFpbGVkLiIgKTsKLUBAIC0zODAsNyAr MzgwLDcgQEAKLSAgIH0KLQotICAgaWYgKCAhUXQ0eDU6OkF0b21pY0ludDo6bG9hZEFjcXVpcmUo IGlzQ2FuY2VsbGVkXyApICYmCi0tICAgICAgIGNvZGVjQ29udGV4dF8tPmNvZGVjLT5jYXBhYmls aXRpZXMgJiBDT0RFQ19DQVBfREVMQVkgKQotKyAgICAgICBjb2RlY0NvbnRleHRfLT5jb2RlYy0+ Y2FwYWJpbGl0aWVzICYgQVZfQ09ERUNfQ0FQX0RFTEFZICkKLSAgIHsKLSAgICAgYXZfaW5pdF9w YWNrZXQoICZwYWNrZXQgKTsKLSAgICAgaW50IGdvdEZyYW1lID0gMDsKLQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9ub21hY3MvdGVtcGxhdGUgYi9zcmNwa2dzL25vbWFjcy90ZW1wbGF0ZQppbmRleCA4 OTVlODMwNzFhOGEuLmNlNGU3ZjcwOTNkYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9ub21hY3MvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9ub21hY3MvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdub21hY3MnCiBwa2duYW1lPW5vbWFjcwogdmVyc2lvbj0zLjE2LjIy NAotcmV2aXNpb249MworcmV2aXNpb249NAogYnVpbGRfd3Jrc3JjPUltYWdlTG91bmdlCiBidWls ZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EQ01BS0VfQlVJTERfVFlQRT1Ob25lIC1E RU5BQkxFX1RSQU5TTEFUSU9OUz0xCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5jdi90ZW1wbGF0 ZSBiL3NyY3BrZ3Mvb3BlbmN2L3RlbXBsYXRlCmluZGV4IGEwOWI4ZGQwZDQ0OS4uNDFmMzE4M2Yx NTgyIDEwMDY0NAotLS0gYS9zcmNwa2dzL29wZW5jdi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29w ZW5jdi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW5j dicKIHBrZ25hbWU9b3BlbmN2Ci12ZXJzaW9uPTQuNi4wCi1yZXZpc2lvbj0zCit2ZXJzaW9uPTQu Ny4wCityZXZpc2lvbj0xCiBjcmVhdGVfd3Jrc3JjPXllcwogYnVpbGRfd3Jrc3JjPSR7cGtnbmFt ZX0tJHt2ZXJzaW9ufQogYnVpbGRfc3R5bGU9Y21ha2UKQEAgLTI0LDggKzI0LDggQEAgaG9tZXBh Z2U9Imh0dHBzOi8vb3BlbmN2Lm9yZyIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9naXRodWIuY29tL29w ZW5jdi9vcGVuY3Yvd2lraS9DaGFuZ2VMb2ciCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNv bS9vcGVuY3Yvb3BlbmN2L2FyY2hpdmUvJHt2ZXJzaW9ufS50YXIuZ3oKICBodHRwczovL2dpdGh1 Yi5jb20vb3BlbmN2L29wZW5jdl9jb250cmliL2FyY2hpdmUvJHt2ZXJzaW9ufS50YXIuZ3o+Y29u dHJpYi50YXIuZ3oiCi1jaGVja3N1bT0iMWVjMWNiYTY1ZjlmMjBmZTVhNDFmZGExNTg2ZTAxYzcw ZWEwYzlhNmQ3YjY3YzllMTNlZGYwY2ZlMjIzOTI3NwotIDE3NzdkNWZkMmI1OTAyOWNmNTM3ZTVm ZDZmOGFhNjhkNzA3MDc1ODIyZjkwYmRlNjgzZmNkZTA4NmY4NWY3YTciCitjaGVja3N1bT0iOGRm MDA3OWNkYmUxNzk3NDhhMThkNDQ3MzFhZjYyYTI0NWE0NWViZjUwODUyMjNkYzAzMTMzOTU0YzY2 Mjk3MworIDQyZGY4NDBjZjkwNTVlNTlkMGUyMmMyNDljZmIxOWYwNDc0M2UxYmRhZDExM2QzMWIx NTczZDM5MzRkNjI1ODQiCiBwYXRjaF9hcmdzPSItTnAxIC1kICR7YnVpbGRfd3Jrc3JjfSIKICMg dGVzdHMgaGFuZyBpbmRlbmZpbml0ZWx5LCBldmVuIHdpdGggdGVzdCBkYXRhIGluY2x1ZGVkCiBt YWtlX2NoZWNrPW5vCmRpZmYgLS1naXQgYS9zcmNwa2dzL3FpbWd2L3RlbXBsYXRlIGIvc3JjcGtn cy9xaW1ndi90ZW1wbGF0ZQppbmRleCA3ZWIzMGRiMzM5OTIuLmRkMzQxZGZlMWJmYyAxMDA2NDQK LS0tIGEvc3JjcGtncy9xaW1ndi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3FpbWd2L3RlbXBsYXRl CkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncWltZ3YnCiBwa2duYW1lPXFp bWd2CiB2ZXJzaW9uPTEuMC4yCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1j bWFrZQogY29uZmlndXJlX2FyZ3M9IiQodm9wdF9pZiB2aWRlbyAtRFZJREVPX1NVUFBPUlQ9T04g LURWSURFT19TVVBQT1JUPU9GRikKICAkKHZvcHRfaWYgc2NhbGUgLURPUEVOQ1ZfU1VQUE9SVD1P TiAtRE9QRU5DVl9TVVBQT1JUPU9GRikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcmV0cm9zaGFyZS90 ZW1wbGF0ZSBiL3NyY3BrZ3MvcmV0cm9zaGFyZS90ZW1wbGF0ZQppbmRleCA4YTA3ODZjMjFhMDgu LjcyMDIzZmE5OGI3NSAxMDA2NDQKLS0tIGEvc3JjcGtncy9yZXRyb3NoYXJlL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvcmV0cm9zaGFyZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ3JldHJvc2hhcmUnCiBwa2duYW1lPXJldHJvc2hhcmUKIHZlcnNpb249MC42 LjYKLXJldmlzaW9uPTIKK3JldmlzaW9uPTQKIGJ1aWxkX3N0eWxlPXFtYWtlCiAjWFhYIGJyb2Fk Y2FzdCBmZWF0dXJlIHJlcXVpcmVzIGFuIGFuY2llbnQgdWRwLWRpc2NvdmVyeS1jcHAgd2hpY2gg ZWl0aGVyIG5lZWRzCiAjIHRvIGJlIGZldGNoZWQrcGF0Y2hlZCAoRlRCRlMpIGhlcmUgb3IgcGFj a2FnZWQgOi8KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2lyaWwvdGVtcGxhdGUgYi9zcmNwa2dzL3Np cmlsL3RlbXBsYXRlCmluZGV4IGUwNmFhNWQwNTU5Yy4uODQzMzJmNzlkMDYwIDEwMDY0NAotLS0g YS9zcmNwa2dzL3NpcmlsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvc2lyaWwvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdzaXJpbCcKIHBrZ25hbWU9c2lyaWwK IHZlcnNpb249MC45LjEyCi1yZXZpc2lvbj04CityZXZpc2lvbj0xMAogYnVpbGRfc3R5bGU9Z251 LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGludGx0b29sIGF1dG9jb25m IGF1dG9tYWtlIGdldHRleHQtZGV2ZWwiCiBtYWtlZGVwZW5kcz0iZmZ0dy1kZXZlbCBsaWJjb25m aWctZGV2ZWwgbGlib3BlbmN2LWRldmVsIGxpYmZmbXMyLWRldmVsCmRpZmYgLS1naXQgYS9zcmNw a2dzL3dhaWZ1MngtY29udmVydGVyLWNwcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvd2FpZnUyeC1jb252 ZXJ0ZXItY3BwL3RlbXBsYXRlCmluZGV4IDhjMDk1ZDBkN2JhYi4uYWE1MmQ4Yzk4MWE4IDEwMDY0 NAotLS0gYS9zcmNwa2dzL3dhaWZ1MngtY29udmVydGVyLWNwcC90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL3dhaWZ1MngtY29udmVydGVyLWNwcC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ3dhaWZ1MngtY29udmVydGVyLWNwcCcKIHBrZ25hbWU9d2FpZnUyeC1j b252ZXJ0ZXItY3BwCiB2ZXJzaW9uPTUuMi40Ci1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWls ZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1ESU5TVEFMTF9NT0RFTFM9T04iCiBob3N0 bWFrZWRlcGVuZHM9InBrZy1jb25maWciCgpGcm9tIGRlYjFiNGQxZjk3ODZkNThjM2ZhZDM4MDdi OWNiN2ExYTQ2YjExOWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IHpsaWNlIDx6bGlj ZTU1NUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjIgTWFyIDIwMjMgMTg6MDc6NTggLTA0MDAKU3Vi amVjdDogW1BBVENIIDMvNF0gZmZtcGVnNCBidW1wcwoKLS0tCiBzcmNwa2dzL29zZy90ZW1wbGF0 ZSAgICAgIHwgNCArKy0tCiBzcmNwa2dzL3ZsYy90ZW1wbGF0ZSAgICAgIHwgNCArKy0tCiBzcmNw a2dzL3hpbmUtbGliL3RlbXBsYXRlIHwgNiArKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgNyBpbnNl cnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3NnL3RlbXBs YXRlIGIvc3JjcGtncy9vc2cvdGVtcGxhdGUKaW5kZXggMWEwMzE0NDhiM2NmLi43NTU3OTNmN2Ux MWIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvb3NnL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3NnL3Rl bXBsYXRlCkBAIC0xLDE0ICsxLDE0IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdvc2cnCiBwa2du YW1lPW9zZwogdmVyc2lvbj0zLjYuNQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5 bGU9Y21ha2UKIGJ1aWxkX2hlbHBlcj0icWVtdSIKICMgZG9uJ3QgdXNlIC91c3IvbGliNjQgb24g NjRiaXQgcGxhdGZvcm1zCiBjb25maWd1cmVfYXJncz0iLURMSUJfUE9TVEZJWD0iCiBob3N0bWFr ZWRlcGVuZHM9InBrZy1jb25maWcgeHJhbmRyIgogbWFrZWRlcGVuZHM9Ik1lc2FMaWItZGV2ZWwg Z3RrZ2xleHQtZGV2ZWwgbGliY3VybC1kZXZlbCBnaWZsaWItZGV2ZWwgbGlicnN2Zy1kZXZlbAot IGphc3Blci1kZXZlbCB0aWZmLWRldmVsIGxpYmdkYWwtZGV2ZWwgbGliZ3RhLWRldmVsIGZmbXBl Zy1kZXZlbCB4aW5lLWxpYi1kZXZlbAorIGphc3Blci1kZXZlbCB0aWZmLWRldmVsIGxpYmdkYWwt ZGV2ZWwgbGliZ3RhLWRldmVsIGZmbXBlZzQtZGV2ZWwgeGluZS1saWItZGV2ZWwKICBTREwyLWRl dmVsIGdzdC1wbHVnaW5zLWJhc2UxLWRldmVsCiAgJCh2b3B0X2lmIG9wZW5leHIgbGlib3BlbmV4 ci1kZXZlbCkKICAkKHZvcHRfaWYgcG9wcGxlciBwb3BwbGVyLWdsaWItZGV2ZWwpCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3ZsYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvdmxjL3RlbXBsYXRlCmluZGV4IDIx MDc2MmIwYTdlMi4uODU1Y2E1MjM4NjYyIDEwMDY0NAotLS0gYS9zcmNwa2dzL3ZsYy90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3ZsYy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ3ZsYycKIHBrZ25hbWU9dmxjCiB2ZXJzaW9uPTMuMC4xOAotcmV2aXNpb249Mwor cmV2aXNpb249NAogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0t ZGlzYWJsZS1nbWUgLS1kaXNhYmxlLWxpYnRhciAtLWVuYWJsZS1qYWNrCiAgLS1lbmFibGUtbGl2 ZTU1NSAtLWRpc2FibGUtZmx1aWRzeW50aCAtLWVuYWJsZS1kdmRyZWFkCkBAIC0yNSw3ICsyNSw3 IEBAIGxpYjMyZGlzYWJsZWQ9eWVzCiBob3N0bWFrZWRlcGVuZHM9ImF1dG9tYWtlIGxpYnRvb2wg cGtnLWNvbmZpZyBmbGV4IGdldHRleHQgbGliZ2NyeXB0LWRldmVsCiAgbGl2ZTU1NS1kZXZlbCBn ZXR0ZXh0LWRldmVsICQodm9wdF9pZiBsdWEgbHVhNTIpICQodm9wdF9pZiBjaHJvbWVjYXN0IHBy b3RvYnVmKSIKIG1ha2VkZXBlbmRzPSIKLSBhdmFoaS1saWJzLWRldmVsIGRidXMtZ2xpYi1kZXZl bCBmYWFkMi1kZXZlbCBmZm1wZWctZGV2ZWwgZnJlZWZvbnQtdHRmCisgYXZhaGktbGlicy1kZXZl bCBkYnVzLWdsaWItZGV2ZWwgZmFhZDItZGV2ZWwgZmZtcGVnNC1kZXZlbCBmcmVlZm9udC10dGYK ICBnbnV0bHMtZGV2ZWwgamFjay1kZXZlbCBsaWJhNTItZGV2ZWwgbGliYXNzLWRldmVsIGxpYmJs dXJheS1kZXZlbAogIGxpYmNkaW8tZGV2ZWwgbGliZGNhLWRldmVsIGxpYmR2YnBzaS1kZXZlbCBs aWJkdmRuYXYtZGV2ZWwgbGlibWFkLWRldmVsCiAgbGlibWF0cm9za2EtZGV2ZWwgbGlibW9kcGx1 Zy1kZXZlbCBsaWJtcGNkZWMtZGV2ZWwgbGlibXBlZzItZGV2ZWwKZGlmZiAtLWdpdCBhL3NyY3Br Z3MveGluZS1saWIvdGVtcGxhdGUgYi9zcmNwa2dzL3hpbmUtbGliL3RlbXBsYXRlCmluZGV4IGY3 MTNlZmY0OWIwNy4uZWQ2MTk0YzE3ZDExIDEwMDY0NAotLS0gYS9zcmNwa2dzL3hpbmUtbGliL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MveGluZS1saWIvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICd4aW5lLWxpYicKIHBrZ25hbWU9eGluZS1saWIKLXZlcnNpb249 MS4yLjEyCit2ZXJzaW9uPTEuMi4xMwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZp Z3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS12Y2QgLS1kaXNhYmxlLWdub21ldmZzIC0t d2l0aG91dC1lc291bmQgLS1kaXNhYmxlLWR4cjMKQEAgLTgsNyArOCw3IEBAIGNvbmZpZ3VyZV9h cmdzPSItLWRpc2FibGUtdmNkIC0tZGlzYWJsZS1nbm9tZXZmcyAtLXdpdGhvdXQtZXNvdW5kIC0t ZGlzYWJsZS1keHIzCiBob3N0bWFrZWRlcGVuZHM9ImF1dG9tYWtlIGdldHRleHQtZGV2ZWwgbGli dG9vbCBwa2ctY29uZmlnIHBlcmwiCiBtYWtlZGVwZW5kcz0iCiAgemxpYi1kZXZlbCBhbHNhLWxp Yi1kZXZlbCBsaWJ4Y2ItZGV2ZWwgbGliU00tZGV2ZWwgbGliWGV4dC1kZXZlbCBsaWJYdi1kZXZl bAotIGxpYlh2TUMtZGV2ZWwgbGliYTUyLWRldmVsIGxpYm1hZC1kZXZlbCBmZm1wZWctZGV2ZWwg cHVsc2VhdWRpby1kZXZlbAorIGxpYlh2TUMtZGV2ZWwgbGliYTUyLWRldmVsIGxpYm1hZC1kZXZl bCBmZm1wZWc0LWRldmVsIHB1bHNlYXVkaW8tZGV2ZWwKICBqYWNrLWRldmVsIHNhbWJhLWRldmVs IGxpYmZsYWMtZGV2ZWwgbGlibW9kcGx1Zy1kZXZlbCBsaWJtcGNkZWMtZGV2ZWwKICBzcGVleC1k ZXZlbCBsaWJ0aGVvcmEtZGV2ZWwgbGlidm9yYmlzLWRldmVsIGxpYmRjYS1kZXZlbCBmYWFkMi1k ZXZlbAogIGxpYmNkaW8tZGV2ZWwgbGliYmx1cmF5LWRldmVsIGFhbGliLWRldmVsIGxpYmNhY2Et ZGV2ZWwgbGliWGluZXJhbWEtZGV2ZWwKQEAgLTE5LDcgKzE5LDcgQEAgbGljZW5zZT0iR1BMLTIu MC1vci1sYXRlciwgTEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL3d3dy54aW5l LXByb2plY3Qub3JnIgogY2hhbmdlbG9nPSJodHRwczovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0 cy94aW5lL2ZpbGVzL3hpbmUtbGliLyR7dmVyc2lvbn0vUkVBRE1FLnR4dC92aWV3IgogZGlzdGZp bGVzPSIke1NPVVJDRUZPUkdFX1NJVEV9L3hpbmUvJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPWQ2MDYyNzA0NjhlMTU0MGMyYTg5YzBkN2Y1ZmRmMTFlMTdlY2MwYzI2OThj YzBiY2IxMDY1ZmYyNmFiZWUwOTgKK2NoZWNrc3VtPTVmMTBkNmQ3MThhNGE1MWMxN2VkMWIzMmIw MzFkNGY5YjgwYjA2MWU4Mjc2NTM1YjJiZTMxZTVhYzRiNzVlNmYKIAogY2FzZSAiJFhCUFNfVEFS R0VUX01BQ0hJTkUiIGluCiAJaTY4Ni1tdXNsKQoKRnJvbSA4ZDM0MjViYTkwY2U4MmRjMTAzZWI4 ZGRiYjM1NWM3YTUzZjA5NjhjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiB6bGljZSA8 emxpY2U1NTVAZ21haWwuY29tPgpEYXRlOiBXZWQsIDIyIE1hciAyMDIzIDE4OjA4OjA1IC0wNDAw ClN1YmplY3Q6IFtQQVRDSCA0LzRdIGZmbXBlZzUgYnVtcHMKCi0tLQogc3JjcGtncy9RTVBsYXky L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2Fsc2EtcGx1 Z2lucy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvYXJjYW4vdGVt cGxhdGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9hdHRyYWN0L3Rl bXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2F1YmlvL3BhdGNo ZXMvZmZtcGVnNS5wYXRjaCAgICAgICAgICAgfCAgMzcgKysKIHNyY3BrZ3MvYXViaW8vdGVtcGxh dGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogLi4uL2F1ZGFjaW91cy1wbHVnaW5z L3BhdGNoZXMvZmZtcGVnNS5wYXRjaCAgIHwgIDQzICsrCiBzcmNwa2dzL2F1ZGFjaW91cy1wbHVn aW5zL3RlbXBsYXRlICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvYXVkYWNpdHkvdGVtcGxh dGUgICAgICAgICAgICAgICAgICAgICB8ICAgMyArLQogc3JjcGtncy9hdmlkZW11eC90ZW1wbGF0 ZSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2JhcmVzaXAvdGVtcGxhdGUg ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvYmxlbmRlci90ZW1wbGF0ZSAg ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9jYW50YXRhL3RlbXBsYXRlICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2NjZXh0cmFjdG9yL3RlbXBsYXRl ICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvY2hyb21hcHJpbnQvcGF0Y2hlcy9m Zm1wZWc1LnBhdGNoICAgICB8IDU2OSArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvY2hyb21h cHJpbnQvdGVtcGxhdGUgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9jaHJvbWl1 bS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2NtdXMvdGVt cGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvY3lhbnJpcC90 ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9kZWFkYmVlZi90 ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2RvbHBoaW4tZW11 L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvZHJvaWRjYW0tb2Jz LXBsdWdpbi90ZW1wbGF0ZSAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9kcm9pZGNhbS90ZW1w bGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2VsZWN0cm9uMTkvdGVt cGxhdGUgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvZmZtcGVnL3RlbXBsYXRl ICAgICAgICAgICAgICAgICAgICAgICB8IDE2NiArKystLQogc3JjcGtncy9mZm1wZWc0L3RlbXBs YXRlICAgICAgICAgICAgICAgICAgICAgIHwgIDQ2ICstCiBzcmNwa2dzL2ZmbXBlZ3RodW1ibmFp bGVyL3RlbXBsYXRlICAgICAgICAgICAgfCAgIDYgKy0KIHNyY3BrZ3MvZmZtcGVndGh1bWJzL3Rl bXBsYXRlICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9mZm1zMi9wYXRjaGVzL2Zm bXBlZzUucGF0Y2ggICAgICAgICAgIHwgNDE5ICsrKysrKysrKysrKysKIHNyY3BrZ3MvZmZtczIv dGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogLi4uRml4LWluZmluaXRl LWxvb3AtaW4tTWVudS1jeWNsZWl0ZW1zLnBhdGNoIHwgIDYwIC0tCiAuLi42YzRkMzBmNWIyODlj NDI5YzVjYTg4ZDgwMDIwMGRiNGZjNGYucGF0Y2ggfCAgMjMgKwogLi4uL01pbk92ZXJsYXBQbGFj ZW1lbnQuY2NfaW1wcm92ZS5wYXRjaCAgICAgIHwgIDI5IC0KIHNyY3BrZ3MvZmx1eGJveC9wYXRj aGVzL2NlbnRlci5wYXRjaCAgICAgICAgICB8IDMwNyAtLS0tLS0tLS0tCiBzcmNwa2dzL2ZsdXhi b3gvcGF0Y2hlcy9jb250YWluZXJfbG9ja3MucGF0Y2ggfCAzMjUgLS0tLS0tLS0tLQogLi4uL3Bh dGNoZXMvY29udGFpbmVyX3JlbGF0aXZlX3JlbGF0aXZlLnBhdGNoIHwgIDE1IC0KIHNyY3BrZ3Mv Zmx1eGJveC9wYXRjaGVzL2ZsdXhfaW1wcm92ZS5wYXRjaCAgICB8IDIwNSAtLS0tLS0tCiBzcmNw a2dzL2ZsdXhib3gvcGF0Y2hlcy9mbHV4X292ZXJzaXplLnBhdGNoICAgfCAgMjQgLQogLi4uL2Zs dXhib3gvcGF0Y2hlcy9mb2N1c19jbG9zZV9tZW51LnBhdGNoICAgIHwgIDE3IC0KIHNyY3BrZ3Mv Zmx1eGJveC9wYXRjaGVzL3NsaXRfcmFpc2UucGF0Y2ggICAgICB8ICAxNiAtCiBzcmNwa2dzL2Zs dXhib3gvcGF0Y2hlcy90b29sYmFyX3JlZG8ucGF0Y2ggICAgfCAyMjggLS0tLS0tLQogLi4uL2Zs dXhib3gvcGF0Y2hlcy90cmVtb3JfZ3JhYm9pZF9oZWxsLnBhdGNoIHwgMzUwIC0tLS0tLS0tLS0t CiAuLi4vcGF0Y2hlcy91bmNsdXR0ZXJfZml4X3dvcmtzcGFjZWNtZC5wYXRjaCAgfCAgNjUgLS0K IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3pvcl9sb29wcy5wYXRjaCAgICAgICB8ICA4NyAtLS0K IHNyY3BrZ3MvZnJlZXJkcC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog c3JjcGtncy9nZXJiZXJhL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBz cmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1LTEucGF0Y2ggICAgfCAyMzIgKysrKysr Kwogc3JjcGtncy9nb2xkZW5kaWN0L3BhdGNoZXMvZmZtcGVnNS0yLnBhdGNoICAgIHwgIDMzICsK IHNyY3BrZ3MvZ29sZGVuZGljdC9wYXRjaGVzL2ZmbXBlZzUtMy5wYXRjaCAgICB8ICAyNSArCiBz cmNwa2dzL2dvbGRlbmRpY3QvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNy Y3BrZ3MvZ3N0LWxpYmF2L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3Jj cGtncy9nc3QtcGx1Z2lucy1iYWQxL3RlbXBsYXRlICAgICAgICAgICAgIHwgICAyICstCiBzcmNw a2dzL2dzdC1ydHNwLXNlcnZlci90ZW1wbGF0ZSAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3Br Z3MvZ3RrNC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtn cy9ndXZjdmlldy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dz L2hhbmRicmFrZS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3Mv aGVkZ2V3YXJzL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9p ZGpjL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2tm aWxlbWV0YWRhdGE1L3RlbXBsYXRlICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3Mva2lk My90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9rb2Rp L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2twaXBl d2lyZS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbGliYXZy ZXNhbXBsZSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9saWJleHRy YWN0b3IvdGVtcGxhdGUgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL2xpYm9wZW5h bC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbGlib3BlbnNo b3QvdGVtcGxhdGUgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9sb3VkZ2Fpbi90 ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL21lZGlhc3RyZWFt ZXIvdGVtcGxhdGUgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbWdiYS9wYXRjaGVz L2ZmbXBlZzUucGF0Y2ggICAgICAgICAgICB8IDExNyArKysrCiBzcmNwa2dzL21nYmEvdGVtcGxh dGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbWluaWRsbmEvdGVt cGxhdGUgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9taXh4eC90ZW1wbGF0 ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL21sdC90ZW1wbGF0ZSAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbWx0Ny90ZW1wbGF0ZSAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9tb2MvdGVtcGxhdGUgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL21vdGlvbi90ZW1wbGF0ZSAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvbXBkL3RlbXBsYXRlICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9tcHYvdGVtcGxhdGUgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL211c2lrY3ViZS90ZW1wbGF0ZSAg ICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3Mvbm90Y3Vyc2VzL3RlbXBsYXRlICAg ICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9vYnMvdGVtcGxhdGUgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL29saXZlL3RlbXBsYXRlICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3Mvb214cGxheWVyL3RlbXBsYXRlICAgICAg ICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9vcGVuaW1hZ2Vpby90ZW1wbGF0ZSAgICAg ICAgICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL29wZW5tdy90ZW1wbGF0ZSAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3Mvb3BlbnNob3QvdGVtcGxhdGUgICAgICAgICAg ICAgICAgICAgICB8ICAgMiArLQogc3JjcGtncy9vcGVudG9vbnovdGVtcGxhdGUgICAgICAgICAg ICAgICAgICAgIHwgICAyICstCiBzcmNwa2dzL3BpYW5vYmFyL3RlbXBsYXRlICAgICAgICAgICAg ICAgICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvcHBzc3BwL3RlbXBsYXRlICAgICAgICAgICAgICAg ICAgICAgICB8ICAgMiArLQogc3JjcGtncy9wcWl2L3RlbXBsYXRlICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAyICstCiBzcmNwa2dzL3FtbXAvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KIHNyY3BrZ3MvcXQ1LXdlYmVuZ2luZS90ZW1wbGF0ZSAgICAgICAgICAg ICAgICB8ICAgMiArLQogc3JjcGtncy9xdDUvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAyICstCiBzcmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3RlbXBsYXRlICAgICAgICAgICAg ICAgfCAgIDIgKy0KIHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS90ZW1wbGF0ZSAgICAgICAgICAgICAg ICB8ICAgMiArLQogc3JjcGtncy9xdGF2L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAyICstCiBzcmNwa2dzL3F0b3gvcGF0Y2hlcy9mZm1wZWc1LnBhdGNoICAgICAgICAgICAg fCAgNzkgKysrCiBzcmNwa2dzL3F0b3gvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDIgKy0KIHNyY3BrZ3MvcmV0cm9hcmNoL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICB8 ICAgMiArLQogc3JjcGtncy9zY3JjcHkvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgIHwg ICAyICstCiBzcmNwa2dzL3NwZWstYWx0ZXJuYXRpdmUvdGVtcGxhdGUgICAgICAgICAgICAgfCAg IDIgKy0KIHNyY3BrZ3Mvc3NyL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg MiArLQogc3JjcGtncy9zdW1vL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAy ICstCiBzcmNwa2dzL3N5bmZpZy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KIHNyY3BrZ3MvdGVsZWdyYW0tZGVza3RvcC90ZW1wbGF0ZSAgICAgICAgICAgICB8ICAgMiAr LQogc3JjcGtncy90Z19vd3QvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICst CiBzcmNwa2dzL3RpbWcvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IHNyY3BrZ3MvdHJhY2tlci1taW5lcnMvdGVtcGxhdGUgICAgICAgICAgICAgICB8ICAgMiArLQog c3JjcGtncy90dmhlYWRlbmQvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBz cmNwa2dzL3VucGFwZXIvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNy Y3BrZ3MvdmJhLW0vdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3Jj cGtncy92aWNlL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmNw a2dzL3dheXBpcGUvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyY3Br Z3Mvd2YtcmVjb3JkZXIvdGVtcGxhdGUgICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjcGtn cy94cHJhL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiAxMTUgZmls ZXMgY2hhbmdlZCwgMTc0NCBpbnNlcnRpb25zKCspLCAxOTU4IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYXViaW8vcGF0Y2hlcy9mZm1wZWc1LnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9hdWRhY2lvdXMtcGx1Z2lucy9wYXRjaGVzL2ZmbXBlZzUucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9tYXByaW50L3BhdGNoZXMvZmZtcGVn NS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmZtczIvcGF0Y2hlcy9mZm1wZWc1 LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvMDAwMS1G aXgtaW5maW5pdGUtbG9vcC1pbi1NZW51LWN5Y2xlaXRlbXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy8yMjg2NmM0ZDMwZjViMjg5YzQyOWM1Y2E4OGQ4 MDAyMDBkYjRmYzRmLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mbHV4Ym94L3Bh dGNoZXMvTWluT3ZlcmxhcFBsYWNlbWVudC5jY19pbXByb3ZlLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvY2VudGVyLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvY29udGFpbmVyX2xvY2tzLnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvY29udGFpbmVyX3JlbGF0aXZl X3JlbGF0aXZlLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mbHV4Ym94L3BhdGNo ZXMvZmx1eF9pbXByb3ZlLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mbHV4Ym94 L3BhdGNoZXMvZmx1eF9vdmVyc2l6ZS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv Zmx1eGJveC9wYXRjaGVzL2ZvY3VzX2Nsb3NlX21lbnUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9zbGl0X3JhaXNlLnBhdGNoCiBkZWxldGUgbW9kZSAx MDA2NDQgc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvdG9vbGJhcl9yZWRvLnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvdHJlbW9yX2dyYWJvaWRfaGVsbC5w YXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3VuY2x1dHRl cl9maXhfd29ya3NwYWNlY21kLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9mbHV4 Ym94L3BhdGNoZXMvem9yX2xvb3BzLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9n b2xkZW5kaWN0L3BhdGNoZXMvZmZtcGVnNS0xLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9nb2xkZW5kaWN0L3BhdGNoZXMvZmZtcGVnNS0yLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9nb2xkZW5kaWN0L3BhdGNoZXMvZmZtcGVnNS0zLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9tZ2JhL3BhdGNoZXMvZmZtcGVnNS5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvcXRveC9wYXRjaGVzL2ZmbXBlZzUucGF0Y2gKCmRpZmYgLS1naXQgYS9z cmNwa2dzL1FNUGxheTIvdGVtcGxhdGUgYi9zcmNwa2dzL1FNUGxheTIvdGVtcGxhdGUKaW5kZXgg YWQ3M2NiYjAxYmFlLi41NTI4NGMwNTExNjEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvUU1QbGF5Mi90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL1FNUGxheTIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdRTVBsYXkyJwogcGtnbmFtZT1RTVBsYXkyCiB2ZXJzaW9uPTIz LjAyLjA1Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogaG9zdG1h a2VkZXBlbmRzPSJwa2ctY29uZmlnIHF0NS1xbWFrZSBxdDUtaG9zdC10b29scyIKIG1ha2VkZXBl bmRzPSJhbHNhLWxpYi1kZXZlbCBmZm1wZWctZGV2ZWwgbGliYXNzLWRldmVsIGxpYmNkaW8tZGV2 ZWwgbGliZ21lLWRldmVsCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Fsc2EtcGx1Z2lucy90ZW1wbGF0 ZSBiL3NyY3BrZ3MvYWxzYS1wbHVnaW5zL3RlbXBsYXRlCmluZGV4IDBiZmE2ZDlmZDI2NC4uYTU3 MDhhN2Q4MmE4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Fsc2EtcGx1Z2lucy90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2Fsc2EtcGx1Z2lucy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2Fsc2EtcGx1Z2lucycKIHBrZ25hbWU9YWxzYS1wbHVnaW5zCiB2ZXJzaW9u PTEuMi43LjEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1 cmUKIGNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtbWFlbW8tcGx1Z2luIgogaG9zdG1ha2VkZXBl bmRzPSJwa2ctY29uZmlnIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hcmNhbi90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvYXJjYW4vdGVtcGxhdGUKaW5kZXggN2JlOTY1MmVjY2YzLi5jY2M3ZGYxMWNlYWMgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvYXJjYW4vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9hcmNhbi90ZW1w bGF0ZQpAQCAtMiw3ICsyLDcgQEAKICMgISEga2VlcCBzeW5jZWQgd2l0aDogYWNmZ2ZzIGFjbGlw IGFsb2FkaW1hZ2UKIHBrZ25hbWU9YXJjYW4KIHZlcnNpb249MC42LjIuMQotcmV2aXNpb249MQor cmV2aXNpb249MgogY3JlYXRlX3dya3NyYz15ZXMKIGJ1aWxkX3dya3NyYz1hcmNhbi9zcmMKIGJ1 aWxkX3N0eWxlPWNtYWtlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2F0dHJhY3QvdGVtcGxhdGUgYi9z cmNwa2dzL2F0dHJhY3QvdGVtcGxhdGUKaW5kZXggMjYxNDRlOTMxYTNjLi4yNDAxN2QyYmFjYzIg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYXR0cmFjdC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2F0dHJh Y3QvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdhdHRyYWN0 JwogcGtnbmFtZT1hdHRyYWN0CiB2ZXJzaW9uPTIuNi4yCi1yZXZpc2lvbj0xCityZXZpc2lvbj0y CiBidWlsZF9zdHlsZT1nbnUtbWFrZWZpbGUKIG1ha2VfYnVpbGRfYXJncz0iVkVSQk9TRT0xIgog bWFrZV91c2VfZW52PXllcwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hdWJpby9wYXRjaGVzL2ZmbXBl ZzUucGF0Y2ggYi9zcmNwa2dzL2F1YmlvL3BhdGNoZXMvZmZtcGVnNS5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmEyYzhlMTFlY2ZmMAotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvYXViaW8vcGF0Y2hlcy9mZm1wZWc1LnBhdGNoCkBAIC0wLDAgKzEsMzcg QEAKK2NvbW1pdCAzNWVlZTAwM2YwMzRhMWEyMDk3Y2Q0NTU3ZGViNzczZWFjYjE4ZjdiCitBdXRo b3I6IHRpYmVxdWFkb3JpYW4gPHRpYmVxdWFkb3JpYW5AcG9zdGVvLmRlPgorRGF0ZTogICBTYXQg TWFyIDE5IDE4OjQwOjExIDIwMjIgKzAxMDAKKworICAgIGF1YmlvOiByZWJ1aWxkIGFnYWluc3Qg ZmZtcGVnLTUuMAorCitkaWZmIC0tZ2l0IGEvc3JjcGtncy9hdWJpby9wYXRjaGVzL2ZmbXBlZy01 LjAucGF0Y2ggYi9zcmNwa2dzL2F1YmlvL3BhdGNoZXMvZmZtcGVnLTUuMC5wYXRjaAorbmV3IGZp bGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAuLmFhY2U0MWE2ZTYKKy0tLSAvZGV2L251 bGwKKysrKyBiL3NyY3BrZ3MvYXViaW8vcGF0Y2hlcy9mZm1wZWctNS4wLnBhdGNoCitAQCAtMCww ICsxLDI1IEBACisrRnJvbSA4YTA1NDIwZTVkZDhjN2I4YjI0NDdmODJkYzkxOTc2NTg3NjUxMWIz IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorK0Zyb206IFBhdWwgQnJvc3NpZXIgPHBpZW1AcGll bS5vcmc+CisrRGF0ZTogVHVlLCAyNSBKYW4gMjAyMiAxODozMDoyNyArMDEwMAorK1N1YmplY3Q6 IFtQQVRDSF0gW3NvdXJjZV9hdmNvZGVjXSBkZWZpbmUgRkZfQVBJX0xBVkZfQVZDVFggZm9yIGxp YmF2Y29kZWMgPgorKyA1OSwgdGh4IEBiZXJvbGludXggKGNsb3NlcyBnaC0zNTMpCisrCisrLS0t CisrIHNyYy9pby9zb3VyY2VfYXZjb2RlYy5jIHwgNCArKysrCisrIDEgZmlsZSBjaGFuZ2VkLCA0 IGluc2VydGlvbnMoKykKKysKKytkaWZmIC0tZ2l0IGEvc3JjL2lvL3NvdXJjZV9hdmNvZGVjLmMg Yi9zcmMvaW8vc291cmNlX2F2Y29kZWMuYworK2luZGV4IGUwYWU5M2I1Li4xNDIxYmQ5YSAxMDA2 NDQKKystLS0gYS9zcmMvaW8vc291cmNlX2F2Y29kZWMuYworKysrKyBiL3NyYy9pby9zb3VyY2Vf YXZjb2RlYy5jCisrQEAgLTY4LDYgKzY4LDEwIEBACisrICNkZWZpbmUgQVVCSU9fQVZDT0RFQ19N QVhfQlVGRkVSX1NJWkUgQVZfSU5QVVRfQlVGRkVSX01JTl9TSVpFCisrICNlbmRpZgorKyAKKysr I2lmIExJQkFWQ09ERUNfVkVSU0lPTl9NQUpPUiA+PSA1OQorKysjZGVmaW5lIEZGX0FQSV9MQVZG X0FWQ1RYIDEKKysrI2VuZGlmCisrKworKyBzdHJ1Y3QgX2F1YmlvX3NvdXJjZV9hdmNvZGVjX3Qg eworKyAgIHVpbnRfdCBob3Bfc2l6ZTsKKysgICB1aW50X3Qgc2FtcGxlcmF0ZTsKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvYXViaW8vdGVtcGxhdGUgYi9zcmNwa2dzL2F1YmlvL3RlbXBsYXRlCmluZGV4 IGFkMWM0YjI1Njk5MS4uN2Q4NzVjYzAyNTQxIDEwMDY0NAotLS0gYS9zcmNwa2dzL2F1YmlvL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvYXViaW8vdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdhdWJpbycKIHBrZ25hbWU9YXViaW8KIHZlcnNpb249MC40LjkKLXJl dmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPXdhZjMKICMgWFhYIGxhc2gsIHB1cmUg YW5kIHN3aWcgc3VwcG9ydC4KIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyB0eHQybWFuIgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9hdWRhY2lvdXMtcGx1Z2lucy9wYXRjaGVzL2ZmbXBlZzUucGF0 Y2ggYi9zcmNwa2dzL2F1ZGFjaW91cy1wbHVnaW5zL3BhdGNoZXMvZmZtcGVnNS5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjRlNWUzNDA5OWQ3MQotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvYXVkYWNpb3VzLXBsdWdpbnMvcGF0Y2hlcy9mZm1wZWc1LnBh dGNoCkBAIC0wLDAgKzEsNDMgQEAKK2NvbW1pdCAyOThhYTM3MWM1NmMyZjUyYzI1YTMzZDliZGVj NDkxOGIxMWNlYmRjCitBdXRob3I6IHRpYmVxdWFkb3JpYW4gPHRpYmVxdWFkb3JpYW5AcG9zdGVv LmRlPgorRGF0ZTogICBTYXQgTWFyIDE5IDE4OjQwOjEyIDIwMjIgKzAxMDAKKworICAgIGF1ZGFj aW91cy1wbHVnaW5zOiByZWJ1aWxkIGFnYWluc3QgZmZtcGVnLTUuMAorCitkaWZmIC0tZ2l0IGEv c3JjcGtncy9hdWRhY2lvdXMtcGx1Z2lucy9wYXRjaGVzL2ZmbXBlZy01LjAucGF0Y2ggYi9zcmNw a2dzL2F1ZGFjaW91cy1wbHVnaW5zL3BhdGNoZXMvZmZtcGVnLTUuMC5wYXRjaAorbmV3IGZpbGUg bW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMDAuLjYxN2MxMTIxNWIKKy0tLSAvZGV2L251bGwK KysrKyBiL3NyY3BrZ3MvYXVkYWNpb3VzLXBsdWdpbnMvcGF0Y2hlcy9mZm1wZWctNS4wLnBhdGNo CitAQCAtMCwwICsxLDMxIEBACisrRnJvbSBmNjBiZWI0MDBlZWIxZTQ3NzhiYmZkNzM4YmM0YTRj Y2VmM2RlNTM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorK0Zyb206IEpvaG4gTGluZGdyZW4g PGpvaG5AamxpbmRncmVuLm5ldD4KKytEYXRlOiBTYXQsIDUgTWFyIDIwMjIgMTI6MDU6MzQgLTA1 MDAKKytTdWJqZWN0OiBbUEFUQ0hdIEZpeCBidWlsZCB3aXRoIEZGbXBlZyA1LjAKKysKKystLS0K Kysgc3JjL2ZmYXVkaW8vZmZhdWRpby1jb3JlLmNjIHwgNCArKy0tCisrIDEgZmlsZSBjaGFuZ2Vk LCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCisrCisrZGlmZiAtLWdpdCBhL3NyYy9m ZmF1ZGlvL2ZmYXVkaW8tY29yZS5jYyBiL3NyYy9mZmF1ZGlvL2ZmYXVkaW8tY29yZS5jYworK2lu ZGV4IDE2ZGM2M2UzYS4uYTJiOTVmZDZjIDEwMDY0NAorKy0tLSBhL3NyYy9mZmF1ZGlvL2ZmYXVk aW8tY29yZS5jYworKysrKyBiL3NyYy9mZmF1ZGlvL2ZmYXVkaW8tY29yZS5jYworK0BAIC0yNzQs NyArMjc0LDcgQEAgc3RhdGljIEFWSW5wdXRGb3JtYXQgKiBnZXRfZm9ybWF0X2J5X2NvbnRlbnQg KGNvbnN0IGNoYXIgKiBuYW1lLCBWRlNGaWxlICYgZmlsZSkKKysgICAgICAgICBBVlByb2JlRGF0 YSBkID0ge25hbWUsIGJ1ZiwgZmlsbGVkfTsKKysgICAgICAgICBzY29yZSA9IHRhcmdldDsKKysg CisrLSAgICAgICAgZiA9IGF2X3Byb2JlX2lucHV0X2Zvcm1hdDIgKCYgZCwgdHJ1ZSwgJiBzY29y ZSk7CisrKyAgICAgICAgZiA9IChBVklucHV0Rm9ybWF0ICopIGF2X3Byb2JlX2lucHV0X2Zvcm1h dDIgKCYgZCwgdHJ1ZSwgJiBzY29yZSk7CisrICAgICAgICAgaWYgKGYpCisrICAgICAgICAgICAg IGJyZWFrOworKyAKKytAQCAtMzQ3LDcgKzM0Nyw3IEBAIHN0YXRpYyBib29sIGZpbmRfY29kZWMg KEFWRm9ybWF0Q29udGV4dCAqIGMsIENvZGVjSW5mbyAqIGNpbmZvKQorKyAjZW5kaWYKKysgICAg ICAgICBpZiAoc3RyZWFtICYmIHN0cmVhbS0+Y29kZWNwYXIgJiYgc3RyZWFtLT5jb2RlY3Bhci0+ Y29kZWNfdHlwZSA9PSBBVk1FRElBX1RZUEVfQVVESU8pCisrICAgICAgICAgeworKy0gICAgICAg ICAgICBBVkNvZGVjICogY29kZWMgPSBhdmNvZGVjX2ZpbmRfZGVjb2RlciAoc3RyZWFtLT5jb2Rl Y3Bhci0+Y29kZWNfaWQpOworKysgICAgICAgICAgICBBVkNvZGVjICogY29kZWMgPSAoQVZDb2Rl YyAqKSBhdmNvZGVjX2ZpbmRfZGVjb2RlciAoc3RyZWFtLT5jb2RlY3Bhci0+Y29kZWNfaWQpOwor KyAKKysgICAgICAgICAgICAgaWYgKGNvZGVjKQorKyAgICAgICAgICAgICB7CmRpZmYgLS1naXQg YS9zcmNwa2dzL2F1ZGFjaW91cy1wbHVnaW5zL3RlbXBsYXRlIGIvc3JjcGtncy9hdWRhY2lvdXMt cGx1Z2lucy90ZW1wbGF0ZQppbmRleCA5MTBlYzBkMTg5MWYuLmRlZjA2NzhiYzYxMSAxMDA2NDQK LS0tIGEvc3JjcGtncy9hdWRhY2lvdXMtcGx1Z2lucy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2F1 ZGFjaW91cy1wbHVnaW5zL3RlbXBsYXRlCkBAIC0yLDcgKzIsNyBAQAogI0tlZXAgaW4gc3luYyB3 aXRoIGF1ZGFjaW91cyEKIHBrZ25hbWU9YXVkYWNpb3VzLXBsdWdpbnMKIHZlcnNpb249NC4yCi1y ZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1 cmVfYXJncz0iJCh2b3B0X2VuYWJsZSBndGspICQodm9wdF9lbmFibGUgcXQpIgogaG9zdG1ha2Vk ZXBlbmRzPSJnZXR0ZXh0IHBrZy1jb25maWcgZ2xpYi1kZXZlbCIKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvYXVkYWNpdHkvdGVtcGxhdGUgYi9zcmNwa2dzL2F1ZGFjaXR5L3RlbXBsYXRlCmluZGV4IGQ1 MDljMGE4OTQwNy4uYzE4YTRlZWIwYTczIDEwMDY0NAotLS0gYS9zcmNwa2dzL2F1ZGFjaXR5L3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvYXVkYWNpdHkvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdhdWRhY2l0eScKIHBrZ25hbWU9YXVkYWNpdHkKIHZlcnNpb249 Mi40LjEKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUK IGNvbmZpZ3VyZV9hcmdzPSItLXdpdGgtZmZtcGVnPXN5c3RlbSAtLXdpdGgtbGlic25kZmlsZT1z eXN0ZW0gLS13aXRoLWV4cGF0PXN5c3RlbQogIC0td2l0aC1saWJzb3hyPXN5c3RlbSAtLXdpdGgt bGFtZT1zeXN0ZW0gLS13aXRoLWx2Mj1zeXN0ZW0gYWNfY3ZfcGF0aF9XWF9DT05GSUc9d3gtY29u ZmlnLWd0azMiCkBAIC0zMyw1ICszMyw0IEBAIHBvc3RfaW5zdGFsbCgpIHsKIAl2Y29weSBwbHVn LWlucyAvdXNyL3NoYXJlL2F1ZGFjaXR5CiAKIAlybSAke0RFU1RESVJ9L3Vzci9zaGFyZS9kb2Mv YXVkYWNpdHkvTElDRU5TRS50eHQKLQl2bGljZW5zZSBMSUNFTlNFLnR4dCBMSUNFTlNFCiB9CmRp ZmYgLS1naXQgYS9zcmNwa2dzL2F2aWRlbXV4L3RlbXBsYXRlIGIvc3JjcGtncy9hdmlkZW11eC90 ZW1wbGF0ZQppbmRleCAyNTNhMDI0M2UyMjUuLjU1NzI4NTk4MmQyYiAxMDA2NDQKLS0tIGEvc3Jj cGtncy9hdmlkZW11eC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2F2aWRlbXV4L3RlbXBsYXRlCkBA IC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYXZpZGVtdXgnCiBwa2duYW1lPWF2 aWRlbXV4CiB2ZXJzaW9uPTIuOC4wCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiAjIENhbid0IGJl IGNvbXBpbGVkIGZvciBhYXJjaDY0LCBhcm0qIG9yIG1pcHMqCiBhcmNocz0ieDg2XzY0KiBpNjg2 KiIKIGhvc3RtYWtlZGVwZW5kcz0iY21ha2UgcGtnLWNvbmZpZyBxdDUtaG9zdC10b29scyBxdDUt ZGV2ZWwgdGFyIHlhc20iCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JhcmVzaXAvdGVtcGxhdGUgYi9z cmNwa2dzL2JhcmVzaXAvdGVtcGxhdGUKaW5kZXggZjFiZDE4MTcwNDhiLi5iMjFlMjIzMzQzMTYg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYmFyZXNpcC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2JhcmVz aXAvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdiYXJlc2lw JwogcGtnbmFtZT1iYXJlc2lwCiB2ZXJzaW9uPTIuMTAuMAotcmV2aXNpb249MQorcmV2aXNpb249 MgogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBnbGliLWRl dmVsIgogbWFrZWRlcGVuZHM9ImxpYmdzbS1kZXZlbCBsaWJwbmctZGV2ZWwgb3BlbnNzbC1kZXZl bCBsaWJzbmRmaWxlLWRldmVsCmRpZmYgLS1naXQgYS9zcmNwa2dzL2JsZW5kZXIvdGVtcGxhdGUg Yi9zcmNwa2dzL2JsZW5kZXIvdGVtcGxhdGUKaW5kZXggYTMyNTVjZGRiYzk1Li40ZWM3M2UwNWFj ZjUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYmxlbmRlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Js ZW5kZXIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdibGVu ZGVyJwogcGtnbmFtZT1ibGVuZGVyCiB2ZXJzaW9uPTMuNC4xCi1yZXZpc2lvbj0xCityZXZpc2lv bj0yCiBhcmNocz0ieDg2XzY0KiBwcGM2NCoiCiBidWlsZF9zdHlsZT0iY21ha2UiCiBweWNvbXBp bGVfZGlycz0iL3Vzci9zaGFyZS9ibGVuZGVyLyR7dmVyc2lvbiUuKn0vc2NyaXB0cyIKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvY2FudGF0YS90ZW1wbGF0ZSBiL3NyY3BrZ3MvY2FudGF0YS90ZW1wbGF0 ZQppbmRleCA0YjQxN2Q4MGQ1YzIuLjhhOTBhYWE0YzA3YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9j YW50YXRhL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2FudGF0YS90ZW1wbGF0ZQpAQCAtMSw3ICsx LDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2NhbnRhdGEnCiBwa2duYW1lPWNhbnRhdGEKIHZl cnNpb249Mi41LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBo b3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgcXQ1LXFtYWtlIHF0NS1ob3N0LXRvb2xzIHF0NS10 b29scyIKIG1ha2VkZXBlbmRzPSJxdDUtZGV2ZWwgcXQ1LXRvb2xzLWRldmVsIHF0NS1zdmctZGV2 ZWwgcXQ1LXhtbHBhdHRlcm5zLWRldmVsCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NjZXh0cmFjdG9y L3RlbXBsYXRlIGIvc3JjcGtncy9jY2V4dHJhY3Rvci90ZW1wbGF0ZQppbmRleCA5YWJjZDgyODUy YjIuLjdmZTJiYTRmMjdiNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jY2V4dHJhY3Rvci90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2NjZXh0cmFjdG9yL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnY2NleHRyYWN0b3InCiBwa2duYW1lPWNjZXh0cmFjdG9yCiB2ZXJz aW9uPTAuOTMKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3dya3NyYz0ibGludXgiCiBi dWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1lbmFibGUtb2NyIC0t ZW5hYmxlLWhhcmRzdWJ4IgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWFwcmludC9wYXRjaGVz L2ZmbXBlZzUucGF0Y2ggYi9zcmNwa2dzL2Nocm9tYXByaW50L3BhdGNoZXMvZmZtcGVnNS5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmE5ZmQzMDdhMjNjOAot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2hyb21hcHJpbnQvcGF0Y2hlcy9mZm1wZWc1LnBh dGNoCkBAIC0wLDAgKzEsNTY5IEBACitGcm9tIDhjY2FkNjkzNzE3N2IxYjkyZTQwYWI4ZjQ0NDdl YTI3YmFjMDA5YTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/THVr PUMzPUExPUM1PUExPTIwTGFsaW5zaz1DMz1CRD89IDxsYWxpbnNreUBnbWFpbC5jb20+CitEYXRl OiBGcmksIDQgTm92IDIwMjIgMjE6NDc6MzggKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXNlIEZG bXBlZyA1LnggKCMxMjApCisKKyogVXNlIEZGbXBlZyA1LjEuMiBmb3IgQ0kgYnVpbGRzCisKKyog QnVpbGQgb24gVWJ1bnR1IDIwLjA0CisKKyogVXBncmFkZSBjb2RlIHRvIEZGbXBlZyA1LnggQVBJ cworCisqIE9ubHkgc2V0IEZGbXBlZyBpbmNsdWRlIGRpcnMgaWYgYnVpbGRpbmcgdG9vbHMKKwor KiBObyBsb25nZXIgbmVlZGVkCisKKyogVXNlIHVidW50dSAyMC4wNAorLS0tCisgLmdpdGh1Yi93 b3JrZmxvd3MvYnVpbGQueW1sICAgICAgICAgICAgICAgICAgIHwgICA2ICstCisgQ01ha2VMaXN0 cy50eHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE2IC0tCisgcGFja2FnZS9i dWlsZC5zaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCisgc3JjL2F1ZGlv L2ZmbXBlZ19hdWRpb19wcm9jZXNzb3IuaCAgICAgICAgICAgIHwgICAyIC0KKyBzcmMvYXVkaW8v ZmZtcGVnX2F1ZGlvX3Byb2Nlc3Nvcl9hdnJlc2FtcGxlLmggfCAgNzIgLS0tLS0tLQorIHNyYy9h dWRpby9mZm1wZWdfYXVkaW9fcHJvY2Vzc29yX3N3cmVzYW1wbGUuaCB8ICAxOCArLQorIHNyYy9h dWRpby9mZm1wZWdfYXVkaW9fcmVhZGVyLmggICAgICAgICAgICAgICB8IDE5NyArKysrKysrKyst LS0tLS0tLS0KKyB0ZXN0cy9DTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDYgKworIDggZmlsZXMgY2hhbmdlZCwgMTIyIGluc2VydGlvbnMoKyksIDE5OSBkZWxldGlv bnMoLSkKKyBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL2F1ZGlvL2ZmbXBlZ19hdWRpb19wcm9jZXNz b3JfYXZyZXNhbXBsZS5oCisKK2RpZmYgLS1naXQgYS9DTWFrZUxpc3RzLnR4dCBiL0NNYWtlTGlz dHMudHh0CitpbmRleCBmOGQ2YTMyLi40ZGEyNDA1IDEwMDY0NAorLS0tIGEvQ01ha2VMaXN0cy50 eHQKKysrKyBiL0NNYWtlTGlzdHMudHh0CitAQCAtODQsOSArODQsNiBAQCBmaW5kX3BhY2thZ2Uo RkZtcGVnKQorIGlmKEZGTVBFR19MSUJSQVJJRVMpCisgCWNtYWtlX3B1c2hfY2hlY2tfc3RhdGUo UkVTRVQpCisgCXNldChDTUFLRV9SRVFVSVJFRF9MSUJSQVJJRVMgJHtGRk1QRUdfTElCUkFSSUVT fSAke0NNQUtFX1RIUkVBRF9MSUJTX0lOSVR9IC1sbSkKKy0JY2hlY2tfZnVuY3Rpb25fZXhpc3Rz KGF2X3BhY2tldF91bnJlZiBIQVZFX0FWX1BBQ0tFVF9VTlJFRikKKy0JY2hlY2tfZnVuY3Rpb25f ZXhpc3RzKGF2X2ZyYW1lX2FsbG9jIEhBVkVfQVZfRlJBTUVfQUxMT0MpCistCWNoZWNrX2Z1bmN0 aW9uX2V4aXN0cyhhdl9mcmFtZV9mcmVlIEhBVkVfQVZfRlJBTUVfRlJFRSkKKyAJY21ha2VfcG9w X2NoZWNrX3N0YXRlKCkKKyBlbmRpZigpCisKK0BAIC0xNjMsMTQgKzE2MCwxMSBAQCBtZXNzYWdl KFNUQVRVUyAiVXNpbmcgJHtGRlRfTElCfSBmb3IgRkZUIGNhbGN1bGF0aW9ucyIpCisgaWYoTk9U IEFVRElPX1BST0NFU1NPUl9MSUIpCisgCWlmKEZGTVBFR19MSUJTV1JFU0FNUExFX0ZPVU5EKQor IAkJc2V0KEFVRElPX1BST0NFU1NPUl9MSUIgInN3cmVzYW1wbGUiKQorLQllbHNlaWYoRkZNUEVH X0xJQkFWUkVTQU1QTEVfRk9VTkQpCistCQlzZXQoQVVESU9fUFJPQ0VTU09SX0xJQiAiYXZyZXNh bXBsZSIpCisgCWVuZGlmKCkKKyBlbmRpZigpCisKKyBpZihBVURJT19QUk9DRVNTT1JfTElCIFNU UkVRVUFMICJzd3Jlc2FtcGxlIikKKyAJaWYoRkZNUEVHX0xJQlNXUkVTQU1QTEVfRk9VTkQpCist CQlzZXQoVVNFX0FWUkVTQU1QTEUgT0ZGKQorIAkJc2V0KFVTRV9TV1JFU0FNUExFIE9OKQorIAkJ c2V0KEFVRElPX1BST0NFU1NPUl9MSUJSQVJJRVMgJHtGRk1QRUdfTElCU1dSRVNBTVBMRV9MSUJS QVJJRVN9KQorIAkJc2V0KEFVRElPX1BST0NFU1NPUl9JTkNMVURFX0RJUlMgJHtGRk1QRUdfTElC U1dSRVNBTVBMRV9JTkNMVURFX0RJUlN9KQorQEAgLTE3OCwxNiArMTcyLDYgQEAgaWYoQVVESU9f UFJPQ0VTU09SX0xJQiBTVFJFUVVBTCAic3dyZXNhbXBsZSIpCisgCQltZXNzYWdlKEZBVEFMX0VS Uk9SICJTZWxlY3RlZCAke0FVRElPX1BST0NFU1NPUl9MSUJ9IGZvciBhdWRpbyBwcm9jZXNzaW5n LCBidXQgdGhlIGxpYnJhcnkgaXMgbm90IGZvdW5kIikKKyAJZW5kaWYoKQorIAltZXNzYWdlKFNU QVRVUyAiVXNpbmcgJHtBVURJT19QUk9DRVNTT1JfTElCfSBmb3IgYXVkaW8gY29udmVyc2lvbiIp CistZWxzZWlmKEFVRElPX1BST0NFU1NPUl9MSUIgU1RSRVFVQUwgImF2cmVzYW1wbGUiKQorLQlp ZihGRk1QRUdfTElCQVZSRVNBTVBMRV9GT1VORCkKKy0JCXNldChVU0VfQVZSRVNBTVBMRSBPTikK Ky0JCXNldChVU0VfU1dSRVNBTVBMRSBPRkYpCistCQlzZXQoQVVESU9fUFJPQ0VTU09SX0xJQlJB UklFUyAke0ZGTVBFR19MSUJBVlJFU0FNUExFX0xJQlJBUklFU30pCistCQlzZXQoQVVESU9fUFJP Q0VTU09SX0lOQ0xVREVfRElSUyAke0ZGTVBFR19MSUJBVlJFU0FNUExFX0lOQ0xVREVfRElSU30p CistCWVsc2UoKQorLQkJbWVzc2FnZShGQVRBTF9FUlJPUiAiU2VsZWN0ZWQgJHtBVURJT19QUk9D RVNTT1JfTElCfSBmb3IgYXVkaW8gcHJvY2Vzc2luZywgYnV0IHRoZSBsaWJyYXJ5IGlzIG5vdCBm b3VuZCIpCistCWVuZGlmKCkKKy0JbWVzc2FnZShTVEFUVVMgIlVzaW5nICR7QVVESU9fUFJPQ0VT U09SX0xJQn0gZm9yIGF1ZGlvIGNvbnZlcnNpb24iKQorIGVsc2UoKQorIAltZXNzYWdlKFNUQVRV UyAiQnVpbGRpbmcgd2l0aG91dCBhdWRpbyBjb252ZXJzaW9uIHN1cHBvcnQsIHBsZWFzZSBpbnN0 YWxsIEZGbXBlZyB3aXRoIGxpYnN3cmVzYW1wbGUiKQorIGVuZGlmKCkKK2RpZmYgLS1naXQgYS9w YWNrYWdlL2J1aWxkLnNoIGIvcGFja2FnZS9idWlsZC5zaAoraW5kZXggZGE2MzFhZS4uYjQxZDM2 ZSAxMDA3NTUKKy0tLSBhL3BhY2thZ2UvYnVpbGQuc2gKKysrKyBiL3BhY2thZ2UvYnVpbGQuc2gK K0BAIC03LDggKzcsOCBAQCBzZXQgLWV1eAorCisgQkFTRV9ESVI9JChjZCAkKGRpcm5hbWUgJDAp Ly4uICYmIHB3ZCkKKworLUZGTVBFR19WRVJTSU9OPTQuNC4xCistRkZNUEVHX0JVSUxEX1RBRz12 NC40LjEtMQorK0ZGTVBFR19WRVJTSU9OPTUuMS4yCisrRkZNUEVHX0JVSUxEX1RBRz12JHtGRk1Q RUdfVkVSU0lPTn0tMQorCisgVE1QX0JVSUxEX0RJUj0kQkFTRV9ESVIvJChta3RlbXAgLWQgYnVp bGQuWFhYWFhYWFgpCisgdHJhcCAncm0gLXJmICRUTVBfQlVJTERfRElSJyBFWElUCitkaWZmIC0t Z2l0IGEvc3JjL2F1ZGlvL2ZmbXBlZ19hdWRpb19wcm9jZXNzb3IuaCBiL3NyYy9hdWRpby9mZm1w ZWdfYXVkaW9fcHJvY2Vzc29yLmgKK2luZGV4IDc2MjhmYzcuLjM5ZjRmNmQgMTAwNjQ0CistLS0g YS9zcmMvYXVkaW8vZmZtcGVnX2F1ZGlvX3Byb2Nlc3Nvci5oCisrKysgYi9zcmMvYXVkaW8vZmZt cGVnX2F1ZGlvX3Byb2Nlc3Nvci5oCitAQCAtMTAsOCArMTAsNiBAQAorCisgI2lmIGRlZmluZWQo VVNFX1NXUkVTQU1QTEUpCisgI2luY2x1ZGUgImF1ZGlvL2ZmbXBlZ19hdWRpb19wcm9jZXNzb3Jf c3dyZXNhbXBsZS5oIgorLSNlbGlmIGRlZmluZWQoVVNFX0FWUkVTQU1QTEUpCistI2luY2x1ZGUg ImF1ZGlvL2ZmbXBlZ19hdWRpb19wcm9jZXNzb3JfYXZyZXNhbXBsZS5oIgorICNlbHNlCisgI2Vy cm9yICJubyBhdWRpbyBwcm9jZXNzaW5nIGxpYnJhcnkiCisgI2VuZGlmCitkaWZmIC0tZ2l0IGEv c3JjL2F1ZGlvL2ZmbXBlZ19hdWRpb19wcm9jZXNzb3JfYXZyZXNhbXBsZS5oIGIvc3JjL2F1ZGlv L2ZmbXBlZ19hdWRpb19wcm9jZXNzb3JfYXZyZXNhbXBsZS5oCitkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKK2luZGV4IGJkODVmOTIuLjAwMDAwMDAKKy0tLSBhL3NyYy9hdWRpby9mZm1wZWdfYXVk aW9fcHJvY2Vzc29yX2F2cmVzYW1wbGUuaAorKysrIC9kZXYvbnVsbAorQEAgLTEsNzIgKzAsMCBA QAorLS8vIENvcHlyaWdodCAoQykgMjAxNiAgTHVrYXMgTGFsaW5za3kKKy0vLyBEaXN0cmlidXRl ZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UsIHNlZSB0aGUgTElDRU5TRSBmaWxlIGZvciBkZXRhaWxz LgorLQorLSNpZm5kZWYgQ0hST01BUFJJTlRfQVVESU9fRkZNUEVHX0FVRElPX1BST0NFU1NPUl9B VlJFU0FNUExFX0hfCistI2RlZmluZSBDSFJPTUFQUklOVF9BVURJT19GRk1QRUdfQVVESU9fUFJP Q0VTU09SX0FWUkVTQU1QTEVfSF8KKy0KKy1leHRlcm4gIkMiIHsKKy0jaW5jbHVkZSA8bGliYXZy ZXNhbXBsZS9hdnJlc2FtcGxlLmg+CistfQorLQorLW5hbWVzcGFjZSBjaHJvbWFwcmludCB7Cist CistY2xhc3MgRkZtcGVnQXVkaW9Qcm9jZXNzb3IgeworLXB1YmxpYzoKKy0JRkZtcGVnQXVkaW9Q cm9jZXNzb3IoKSB7CistCQltX3Jlc2FtcGxlX2N0eCA9IGF2cmVzYW1wbGVfYWxsb2NfY29udGV4 dCgpOworLQl9CistCistCX5GRm1wZWdBdWRpb1Byb2Nlc3NvcigpIHsKKy0JCWF2cmVzYW1wbGVf ZnJlZSgmbV9yZXNhbXBsZV9jdHgpOworLQl9CistCistCXZvaWQgU2V0Q29tcGF0aWJsZU1vZGUo KSB7CistCQlhdl9vcHRfc2V0X2ludChtX3Jlc2FtcGxlX2N0eCwgImZpbHRlcl9zaXplIiwgMTYs IDApOworLQkJYXZfb3B0X3NldF9pbnQobV9yZXNhbXBsZV9jdHgsICJwaGFzZV9zaGlmdCIsIDgs IDApOworLQkJYXZfb3B0X3NldF9pbnQobV9yZXNhbXBsZV9jdHgsICJsaW5lYXJfaW50ZXJwIiwg MSwgMCk7CistCQlhdl9vcHRfc2V0X2RvdWJsZShtX3Jlc2FtcGxlX2N0eCwgImN1dG9mZiIsIDAu OCwgMCk7CistCX0KKy0KKy0Jdm9pZCBTZXRJbnB1dENoYW5uZWxMYXlvdXQoaW50NjRfdCBjaGFu bmVsX2xheW91dCkgeworLQkJYXZfb3B0X3NldF9pbnQobV9yZXNhbXBsZV9jdHgsICJpbl9jaGFu bmVsX2xheW91dCIsIGNoYW5uZWxfbGF5b3V0LCAwKTsKKy0JfQorLQorLQl2b2lkIFNldElucHV0 U2FtcGxlRm9ybWF0KEFWU2FtcGxlRm9ybWF0IHNhbXBsZV9mb3JtYXQpIHsKKy0JCWF2X29wdF9z ZXRfaW50KG1fcmVzYW1wbGVfY3R4LCAiaW5fc2FtcGxlX2ZtdCIsIHNhbXBsZV9mb3JtYXQsIDAp OworLQl9CistCistCXZvaWQgU2V0SW5wdXRTYW1wbGVSYXRlKGludCBzYW1wbGVfcmF0ZSkgewor LQkJYXZfb3B0X3NldF9pbnQobV9yZXNhbXBsZV9jdHgsICJpbl9zYW1wbGVfcmF0ZSIsIHNhbXBs ZV9yYXRlLCAwKTsKKy0JfQorLQorLQl2b2lkIFNldE91dHB1dENoYW5uZWxMYXlvdXQoaW50NjRf dCBjaGFubmVsX2xheW91dCkgeworLQkJYXZfb3B0X3NldF9pbnQobV9yZXNhbXBsZV9jdHgsICJv dXRfY2hhbm5lbF9sYXlvdXQiLCBjaGFubmVsX2xheW91dCwgMCk7CistCX0KKy0KKy0Jdm9pZCBT ZXRPdXRwdXRTYW1wbGVGb3JtYXQoQVZTYW1wbGVGb3JtYXQgc2FtcGxlX2Zvcm1hdCkgeworLQkJ YXZfb3B0X3NldF9pbnQobV9yZXNhbXBsZV9jdHgsICJvdXRfc2FtcGxlX2ZtdCIsIHNhbXBsZV9m b3JtYXQsIDApOworLQl9CistCistCXZvaWQgU2V0T3V0cHV0U2FtcGxlUmF0ZShpbnQgc2FtcGxl X3JhdGUpIHsKKy0JCWF2X29wdF9zZXRfaW50KG1fcmVzYW1wbGVfY3R4LCAib3V0X3NhbXBsZV9m bXQiLCBzYW1wbGVfcmF0ZSwgMCk7CistCX0KKy0KKy0JaW50IEluaXQoKSB7CistCQlyZXR1cm4g YXZyZXNhbXBsZV9vcGVuKG1fcmVzYW1wbGVfY3R4KTsKKy0JfQorLQorLQlpbnQgQ29udmVydCh1 aW50OF90ICoqb3V0LCBpbnQgb3V0X2NvdW50LCBjb25zdCB1aW50OF90ICoqaW4sIGludCBpbl9j b3VudCkgeworLQkJcmV0dXJuIGF2cmVzYW1wbGVfY29udmVydChtX3Jlc2FtcGxlX2N0eCwgb3V0 LCAwLCBvdXRfY291bnQsICh1aW50OF90ICoqKSBpbiwgMCwgaW5fY291bnQpOworLQl9CistCist CWludCBGbHVzaCh1aW50OF90ICoqb3V0LCBpbnQgb3V0X2NvdW50KSB7CistCQlyZXR1cm4gYXZy ZXNhbXBsZV9yZWFkKG1fcmVzYW1wbGVfY3R4LCBvdXQsIG91dF9jb3VudCk7CistCX0KKy0KKy1w cml2YXRlOgorLQlBVkF1ZGlvUmVzYW1wbGVDb250ZXh0ICptX3Jlc2FtcGxlX2N0eCA9IG51bGxw dHI7CistfTsKKy0KKy19OyAvLyBuYW1lc3BhY2UgY2hyb21hcHJpbnQKKy0KKy0jZW5kaWYKK2Rp ZmYgLS1naXQgYS9zcmMvYXVkaW8vZmZtcGVnX2F1ZGlvX3Byb2Nlc3Nvcl9zd3Jlc2FtcGxlLmgg Yi9zcmMvYXVkaW8vZmZtcGVnX2F1ZGlvX3Byb2Nlc3Nvcl9zd3Jlc2FtcGxlLmgKK2luZGV4IGI4 NjI2NmIuLmIxZDRiZWEgMTAwNjQ0CistLS0gYS9zcmMvYXVkaW8vZmZtcGVnX2F1ZGlvX3Byb2Nl c3Nvcl9zd3Jlc2FtcGxlLmgKKysrKyBiL3NyYy9hdWRpby9mZm1wZWdfYXVkaW9fcHJvY2Vzc29y X3N3cmVzYW1wbGUuaAorQEAgLTI4LDMwICsyOCwyOCBAQCBwdWJsaWM6CisgCQlhdl9vcHRfc2V0 X2RvdWJsZShtX3N3cl9jdHgsICJjdXRvZmYiLCAwLjgsIDApOworIAl9CisKKy0Jdm9pZCBTZXRJ bnB1dENoYW5uZWxMYXlvdXQoaW50NjRfdCBjaGFubmVsX2xheW91dCkgeworLQkJYXZfb3B0X3Nl dF9pbnQobV9zd3JfY3R4LCAiaWNsIiwgY2hhbm5lbF9sYXlvdXQsIDApOworLQkJYXZfb3B0X3Nl dF9pbnQobV9zd3JfY3R4LCAiaWNoIiwgYXZfZ2V0X2NoYW5uZWxfbGF5b3V0X25iX2NoYW5uZWxz KGNoYW5uZWxfbGF5b3V0KSwgMCk7CisrCXZvaWQgU2V0SW5wdXRDaGFubmVsTGF5b3V0KEFWQ2hh bm5lbExheW91dCAqY2hhbm5lbF9sYXlvdXQpIHsKKysJCWF2X29wdF9zZXRfaW50KG1fc3dyX2N0 eCwgImluX2NoYW5uZWxfbGF5b3V0IiwgY2hhbm5lbF9sYXlvdXQtPnUubWFzaywgMCk7CisgCX0K KworIAl2b2lkIFNldElucHV0U2FtcGxlRm9ybWF0KEFWU2FtcGxlRm9ybWF0IHNhbXBsZV9mb3Jt YXQpIHsKKy0JCWF2X29wdF9zZXRfaW50KG1fc3dyX2N0eCwgImlzZiIsIHNhbXBsZV9mb3JtYXQs IDApOworKwkJYXZfb3B0X3NldF9zYW1wbGVfZm10KG1fc3dyX2N0eCwgImluX3NhbXBsZV9mbXQi LCBzYW1wbGVfZm9ybWF0LCAwKTsKKyAJfQorCisgCXZvaWQgU2V0SW5wdXRTYW1wbGVSYXRlKGlu dCBzYW1wbGVfcmF0ZSkgeworLQkJYXZfb3B0X3NldF9pbnQobV9zd3JfY3R4LCAiaXNyIiwgc2Ft cGxlX3JhdGUsIDApOworKwkJYXZfb3B0X3NldF9pbnQobV9zd3JfY3R4LCAiaW5fc2FtcGxlX3Jh dGUiLCBzYW1wbGVfcmF0ZSwgMCk7CisgCX0KKworLQl2b2lkIFNldE91dHB1dENoYW5uZWxMYXlv dXQoaW50NjRfdCBjaGFubmVsX2xheW91dCkgeworLQkJYXZfb3B0X3NldF9pbnQobV9zd3JfY3R4 LCAib2NsIiwgY2hhbm5lbF9sYXlvdXQsIDApOworLQkJYXZfb3B0X3NldF9pbnQobV9zd3JfY3R4 LCAib2NoIiwgYXZfZ2V0X2NoYW5uZWxfbGF5b3V0X25iX2NoYW5uZWxzKGNoYW5uZWxfbGF5b3V0 KSwgMCk7CisrCXZvaWQgU2V0T3V0cHV0Q2hhbm5lbExheW91dChBVkNoYW5uZWxMYXlvdXQgKmNo YW5uZWxfbGF5b3V0KSB7CisrCQlhdl9vcHRfc2V0X2ludChtX3N3cl9jdHgsICJvdXRfY2hhbm5l bF9sYXlvdXQiLCBjaGFubmVsX2xheW91dC0+dS5tYXNrLCAwKTsKKyAJfQorCisgCXZvaWQgU2V0 T3V0cHV0U2FtcGxlRm9ybWF0KEFWU2FtcGxlRm9ybWF0IHNhbXBsZV9mb3JtYXQpIHsKKy0JCWF2 X29wdF9zZXRfaW50KG1fc3dyX2N0eCwgIm9zZiIsIHNhbXBsZV9mb3JtYXQsIDApOworKwkJYXZf b3B0X3NldF9zYW1wbGVfZm10KG1fc3dyX2N0eCwgIm91dF9zYW1wbGVfZm10Iiwgc2FtcGxlX2Zv cm1hdCwgMCk7CisgCX0KKworIAl2b2lkIFNldE91dHB1dFNhbXBsZVJhdGUoaW50IHNhbXBsZV9y YXRlKSB7CistCQlhdl9vcHRfc2V0X2ludChtX3N3cl9jdHgsICJvc3IiLCBzYW1wbGVfcmF0ZSwg MCk7CisrCQlhdl9vcHRfc2V0X2ludChtX3N3cl9jdHgsICJvdXRfc2FtcGxlX3JhdGUiLCBzYW1w bGVfcmF0ZSwgMCk7CisgCX0KKworIAlpbnQgSW5pdCgpIHsKK2RpZmYgLS1naXQgYS9zcmMvYXVk aW8vZmZtcGVnX2F1ZGlvX3JlYWRlci5oIGIvc3JjL2F1ZGlvL2ZmbXBlZ19hdWRpb19yZWFkZXIu aAoraW5kZXggNTU1MDE2NC4uMWM2YjM0NiAxMDA2NDQKKy0tLSBhL3NyYy9hdWRpby9mZm1wZWdf YXVkaW9fcmVhZGVyLmgKKysrKyBiL3NyYy9hdWRpby9mZm1wZWdfYXVkaW9fcmVhZGVyLmgKK0BA IC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKKyAJYm9vbCBSZWFkKGNvbnN0IGludDE2X3QgKipkYXRh LCBzaXplX3QgKnNpemUpOworCisgCWJvb2wgSXNPcGVuKCkgY29uc3QgeyByZXR1cm4gbV9vcGVu ZWQ7IH0KKy0JYm9vbCBJc0ZpbmlzaGVkKCkgY29uc3QgeyByZXR1cm4gbV9maW5pc2hlZCAmJiAh bV9nb3RfZnJhbWU7IH0KKysJYm9vbCBJc0ZpbmlzaGVkKCkgY29uc3QgeyByZXR1cm4gIW1faGFz X21vcmVfcGFja2V0cyAmJiAhbV9oYXNfbW9yZV9mcmFtZXM7IH0KKworIAlzdGQ6OnN0cmluZyBH ZXRFcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1fZXJyb3I7IH0KKyAJaW50IEdldEVycm9yQ29kZSgp IGNvbnN0IHsgcmV0dXJuIG1fZXJyb3JfY29kZTsgfQorQEAgLTc0LDIwICs3NCwxOSBAQCBwcml2 YXRlOgorIAl1aW50OF90ICptX2NvbnZlcnRfYnVmZmVyWzFdID0geyBudWxscHRyIH07CisgCWlu dCBtX2NvbnZlcnRfYnVmZmVyX25iX3NhbXBsZXMgPSAwOworCistCUFWSW5wdXRGb3JtYXQgKm1f aW5wdXRfZm10ID0gbnVsbHB0cjsKKysJY29uc3QgQVZJbnB1dEZvcm1hdCAqbV9pbnB1dF9mbXQg PSBudWxscHRyOworIAlBVkRpY3Rpb25hcnkgKm1faW5wdXRfb3B0cyA9IG51bGxwdHI7CisKKyAJ QVZGb3JtYXRDb250ZXh0ICptX2Zvcm1hdF9jdHggPSBudWxscHRyOworIAlBVkNvZGVjQ29udGV4 dCAqbV9jb2RlY19jdHggPSBudWxscHRyOworLQlBVkZyYW1lICptX2ZyYW1lID0gbnVsbHB0cjsK KyAJaW50IG1fc3RyZWFtX2luZGV4ID0gLTE7CisgCXN0ZDo6c3RyaW5nIG1fZXJyb3I7CisgCWlu dCBtX2Vycm9yX2NvZGUgPSAwOworLQlib29sIG1fZmluaXNoZWQgPSBmYWxzZTsKKyAJYm9vbCBt X29wZW5lZCA9IGZhbHNlOworLQlpbnQgbV9nb3RfZnJhbWUgPSAwOworLQlBVlBhY2tldCBtX3Bh Y2tldDsKKy0JQVZQYWNrZXQgbV9wYWNrZXQwOworKwlib29sIG1faGFzX21vcmVfcGFja2V0cyA9 IHRydWU7CisrCWJvb2wgbV9oYXNfbW9yZV9mcmFtZXMgPSB0cnVlOworKwlBVlBhY2tldCAqbV9w YWNrZXQgPSBudWxscHRyOworKwlBVkZyYW1lICptX2ZyYW1lID0gbnVsbHB0cjsKKworIAlpbnQg bV9vdXRwdXRfc2FtcGxlX3JhdGUgPSAwOworIAlpbnQgbV9vdXRwdXRfY2hhbm5lbHMgPSAwOwor QEAgLTk4LDE5ICs5NywxMiBAQCBwcml2YXRlOgorCisgaW5saW5lIEZGbXBlZ0F1ZGlvUmVhZGVy OjpGRm1wZWdBdWRpb1JlYWRlcigpIHsKKyAJYXZfbG9nX3NldF9sZXZlbChBVl9MT0dfUVVJRVQp OworLQorLQlhdl9pbml0X3BhY2tldCgmbV9wYWNrZXQpOworLQltX3BhY2tldC5kYXRhID0gbnVs bHB0cjsKKy0JbV9wYWNrZXQuc2l6ZSA9IDA7CistCistCW1fcGFja2V0MCA9IG1fcGFja2V0Owor IH0KKworIGlubGluZSBGRm1wZWdBdWRpb1JlYWRlcjo6fkZGbXBlZ0F1ZGlvUmVhZGVyKCkgewor IAlDbG9zZSgpOworIAlhdl9kaWN0X2ZyZWUoJm1faW5wdXRfb3B0cyk7CisgCWF2X2ZyZWVwKCZt X2NvbnZlcnRfYnVmZmVyWzBdKTsKKy0JYXZfcGFja2V0X3VucmVmKCZtX3BhY2tldDApOworIH0K KworIGlubGluZSBib29sIEZGbXBlZ0F1ZGlvUmVhZGVyOjpTZXRJbnB1dEZvcm1hdChjb25zdCBj aGFyICpuYW1lKSB7CitAQCAtMTM1LDExICsxMjcsMTAgQEAgaW5saW5lIGJvb2wgRkZtcGVnQXVk aW9SZWFkZXI6Ok9wZW4oY29uc3Qgc3RkOjpzdHJpbmcgJmZpbGVfbmFtZSkgeworCisgCUNsb3Nl KCk7CisKKy0gICAgYXZfaW5pdF9wYWNrZXQoJm1fcGFja2V0KTsKKy0JbV9wYWNrZXQuZGF0YSA9 IG51bGxwdHI7CistCW1fcGFja2V0LnNpemUgPSAwOworLQorLQltX3BhY2tldDAgPSBtX3BhY2tl dDsKKysJbV9wYWNrZXQgPSBhdl9wYWNrZXRfYWxsb2MoKTsKKysJaWYgKCFtX3BhY2tldCkgewor KwkJcmV0dXJuIGZhbHNlOworKwl9CisKKyAJcmV0ID0gYXZmb3JtYXRfb3Blbl9pbnB1dCgmbV9m b3JtYXRfY3R4LCBmaWxlX25hbWUuY19zdHIoKSwgbV9pbnB1dF9mbXQsICZtX2lucHV0X29wdHMp OworIAlpZiAocmV0IDwgMCkgeworQEAgLTE1MywyNiArMTQ0LDMxIEBAIGlubGluZSBib29sIEZG bXBlZ0F1ZGlvUmVhZGVyOjpPcGVuKGNvbnN0IHN0ZDo6c3RyaW5nICZmaWxlX25hbWUpIHsKKyAJ CXJldHVybiBmYWxzZTsKKyAJfQorCistCUFWQ29kZWMgKmNvZGVjOworKwljb25zdCBBVkNvZGVj ICpjb2RlYzsKKyAJcmV0ID0gYXZfZmluZF9iZXN0X3N0cmVhbShtX2Zvcm1hdF9jdHgsIEFWTUVE SUFfVFlQRV9BVURJTywgLTEsIC0xLCAmY29kZWMsIDApOworIAlpZiAocmV0IDwgMCkgeworIAkJ U2V0RXJyb3IoIkNvdWxkIG5vdCBmaW5kIGFueSBhdWRpbyBzdHJlYW0gaW4gdGhlIGZpbGUiLCBy ZXQpOworIAkJcmV0dXJuIGZhbHNlOworIAl9CisgCW1fc3RyZWFtX2luZGV4ID0gcmV0OworKwlh dXRvIHN0cmVhbSA9IG1fZm9ybWF0X2N0eC0+c3RyZWFtc1ttX3N0cmVhbV9pbmRleF07CisKKy0J bV9jb2RlY19jdHggPSBtX2Zvcm1hdF9jdHgtPnN0cmVhbXNbbV9zdHJlYW1faW5kZXhdLT5jb2Rl YzsKKysJbV9jb2RlY19jdHggPSBhdmNvZGVjX2FsbG9jX2NvbnRleHQzKGNvZGVjKTsKKyAJbV9j b2RlY19jdHgtPnJlcXVlc3Rfc2FtcGxlX2ZtdCA9IEFWX1NBTVBMRV9GTVRfUzE2OworCisrCXJl dCA9IGF2Y29kZWNfcGFyYW1ldGVyc190b19jb250ZXh0KG1fY29kZWNfY3R4LCBzdHJlYW0tPmNv ZGVjcGFyKTsKKysJaWYgKHJldCA8IDApIHsKKysJCVNldEVycm9yKCJDb3VsZCBub3QgY29weSB0 aGUgc3RyZWFtIHBhcmFtZXRlcnMiLCByZXQpOworKwkJcmV0dXJuIGZhbHNlOworKwl9CisrCisg CXJldCA9IGF2Y29kZWNfb3BlbjIobV9jb2RlY19jdHgsIGNvZGVjLCBudWxscHRyKTsKKyAJaWYg KHJldCA8IDApIHsKKyAJCVNldEVycm9yKCJDb3VsZCBub3Qgb3BlbiB0aGUgY29kZWMiLCByZXQp OworIAkJcmV0dXJuIGZhbHNlOworIAl9CisKKy0JaWYgKCFtX2NvZGVjX2N0eC0+Y2hhbm5lbF9s YXlvdXQpIHsKKy0JCW1fY29kZWNfY3R4LT5jaGFubmVsX2xheW91dCA9IGF2X2dldF9kZWZhdWx0 X2NoYW5uZWxfbGF5b3V0KG1fY29kZWNfY3R4LT5jaGFubmVscyk7CistCX0KKysJYXZfZHVtcF9m b3JtYXQobV9mb3JtYXRfY3R4LCAwLCAiZm9vIiwgMCk7CisKKyAJbV9mcmFtZSA9IGF2X2ZyYW1l X2FsbG9jKCk7CisgCWlmICghbV9mcmFtZSkgeworQEAgLTE4MywxOSArMTc5LDIzIEBAIGlubGlu ZSBib29sIEZGbXBlZ0F1ZGlvUmVhZGVyOjpPcGVuKGNvbnN0IHN0ZDo6c3RyaW5nICZmaWxlX25h bWUpIHsKKyAJCW1fb3V0cHV0X3NhbXBsZV9yYXRlID0gbV9jb2RlY19jdHgtPnNhbXBsZV9yYXRl OworIAl9CisKKy0JaWYgKCFtX291dHB1dF9jaGFubmVscykgeworLQkJbV9vdXRwdXRfY2hhbm5l bHMgPSBtX2NvZGVjX2N0eC0+Y2hhbm5lbHM7CisrCUFWQ2hhbm5lbExheW91dCBvdXRwdXRfY2hh bm5lbF9sYXlvdXQ7CisrCWlmIChtX291dHB1dF9jaGFubmVscykgeworKwkJYXZfY2hhbm5lbF9s YXlvdXRfZGVmYXVsdCgmb3V0cHV0X2NoYW5uZWxfbGF5b3V0LCBtX291dHB1dF9jaGFubmVscyk7 CisrCX0gZWxzZSB7CisrCQltX291dHB1dF9jaGFubmVscyA9IG1fY29kZWNfY3R4LT5jaF9sYXlv dXQubmJfY2hhbm5lbHM7CisrCQlhdl9jaGFubmVsX2xheW91dF9kZWZhdWx0KCZvdXRwdXRfY2hh bm5lbF9sYXlvdXQsIG1fb3V0cHV0X2NoYW5uZWxzKTsKKyAJfQorCistCWlmIChtX2NvZGVjX2N0 eC0+c2FtcGxlX2ZtdCAhPSBBVl9TQU1QTEVfRk1UX1MxNiB8fCBtX2NvZGVjX2N0eC0+Y2hhbm5l bHMgIT0gbV9vdXRwdXRfY2hhbm5lbHMgfHwgbV9jb2RlY19jdHgtPnNhbXBsZV9yYXRlICE9IG1f b3V0cHV0X3NhbXBsZV9yYXRlKSB7CisrCWlmIChtX2NvZGVjX2N0eC0+c2FtcGxlX2ZtdCAhPSBB Vl9TQU1QTEVfRk1UX1MxNiB8fCBtX2NvZGVjX2N0eC0+Y2hfbGF5b3V0Lm5iX2NoYW5uZWxzICE9 IG1fb3V0cHV0X2NoYW5uZWxzIHx8IG1fY29kZWNfY3R4LT5zYW1wbGVfcmF0ZSAhPSBtX291dHB1 dF9zYW1wbGVfcmF0ZSkgeworIAkJbV9jb252ZXJ0ZXIucmVzZXQobmV3IEZGbXBlZ0F1ZGlvUHJv Y2Vzc29yKCkpOworIAkJbV9jb252ZXJ0ZXItPlNldENvbXBhdGlibGVNb2RlKCk7CisgCQltX2Nv bnZlcnRlci0+U2V0SW5wdXRTYW1wbGVGb3JtYXQobV9jb2RlY19jdHgtPnNhbXBsZV9mbXQpOwor IAkJbV9jb252ZXJ0ZXItPlNldElucHV0U2FtcGxlUmF0ZShtX2NvZGVjX2N0eC0+c2FtcGxlX3Jh dGUpOworLQkJbV9jb252ZXJ0ZXItPlNldElucHV0Q2hhbm5lbExheW91dChtX2NvZGVjX2N0eC0+ Y2hhbm5lbF9sYXlvdXQpOworKwkJbV9jb252ZXJ0ZXItPlNldElucHV0Q2hhbm5lbExheW91dCgm KG1fY29kZWNfY3R4LT5jaF9sYXlvdXQpKTsKKyAJCW1fY29udmVydGVyLT5TZXRPdXRwdXRTYW1w bGVGb3JtYXQoQVZfU0FNUExFX0ZNVF9TMTYpOworIAkJbV9jb252ZXJ0ZXItPlNldE91dHB1dFNh bXBsZVJhdGUobV9vdXRwdXRfc2FtcGxlX3JhdGUpOworLQkJbV9jb252ZXJ0ZXItPlNldE91dHB1 dENoYW5uZWxMYXlvdXQoYXZfZ2V0X2RlZmF1bHRfY2hhbm5lbF9sYXlvdXQobV9vdXRwdXRfY2hh bm5lbHMpKTsKKysJCW1fY29udmVydGVyLT5TZXRPdXRwdXRDaGFubmVsTGF5b3V0KCZvdXRwdXRf Y2hhbm5lbF9sYXlvdXQpOworIAkJYXV0byByZXQgPSBtX2NvbnZlcnRlci0+SW5pdCgpOworIAkJ aWYgKHJldCAhPSAwKSB7CisgCQkJU2V0RXJyb3IoIkNvdWxkIG5vdCBjcmVhdGUgYW4gYXVkaW8g Y29udmVydGVyIGluc3RhbmNlIiwgcmV0KTsKK0BAIC0yMDMsMTAgKzIwMywxMSBAQCBpbmxpbmUg Ym9vbCBGRm1wZWdBdWRpb1JlYWRlcjo6T3Blbihjb25zdCBzdGQ6OnN0cmluZyAmZmlsZV9uYW1l KSB7CisgCQl9CisgCX0KKworKwlhdl9jaGFubmVsX2xheW91dF91bmluaXQoJm91dHB1dF9jaGFu bmVsX2xheW91dCk7CisrCisgCW1fb3BlbmVkID0gdHJ1ZTsKKy0JbV9maW5pc2hlZCA9IGZhbHNl OworLQltX2dvdF9mcmFtZSA9IDA7CistCW1fbmJfcGFja2V0cyA9IDA7CisrCW1faGFzX21vcmVf cGFja2V0cyA9IHRydWU7CisrCW1faGFzX21vcmVfZnJhbWVzID0gdHJ1ZTsKKyAJbV9kZWNvZGVf ZXJyb3IgPSAwOworCisgCXJldHVybiB0cnVlOworQEAgLTIxNCw2ICsyMTUsNyBAQCBpbmxpbmUg Ym9vbCBGRm1wZWdBdWRpb1JlYWRlcjo6T3Blbihjb25zdCBzdGQ6OnN0cmluZyAmZmlsZV9uYW1l KSB7CisKKyBpbmxpbmUgdm9pZCBGRm1wZWdBdWRpb1JlYWRlcjo6Q2xvc2UoKSB7CisgCWF2X2Zy YW1lX2ZyZWUoJm1fZnJhbWUpOworKwlhdl9wYWNrZXRfZnJlZSgmbV9wYWNrZXQpOworCisgCW1f c3RyZWFtX2luZGV4ID0gLTE7CisKK0BAIC0yNTIsOTEgKzI1NCw5OCBAQCBpbmxpbmUgYm9vbCBG Rm1wZWdBdWRpb1JlYWRlcjo6UmVhZChjb25zdCBpbnQxNl90ICoqZGF0YSwgc2l6ZV90ICpzaXpl KSB7CisgCQlyZXR1cm4gZmFsc2U7CisgCX0KKworKwkqZGF0YSA9IG51bGxwdHI7CisrCSpzaXpl ID0gMDsKKysKKyAJaW50IHJldDsKKysJYm9vbCBuZWVkc19wYWNrZXQgPSBmYWxzZTsKKyAJd2hp bGUgKHRydWUpIHsKKy0JCXdoaWxlIChtX3BhY2tldC5zaXplIDw9IDApIHsKKy0JCQlhdl9wYWNr ZXRfdW5yZWYoJm1fcGFja2V0MCk7CistCQkJYXZfaW5pdF9wYWNrZXQoJm1fcGFja2V0KTsKKy0J CQltX3BhY2tldC5kYXRhID0gbnVsbHB0cjsKKy0JCQltX3BhY2tldC5zaXplID0gMDsKKy0JCQly ZXQgPSBhdl9yZWFkX2ZyYW1lKG1fZm9ybWF0X2N0eCwgJm1fcGFja2V0KTsKKysJCXdoaWxlIChu ZWVkc19wYWNrZXQgJiYgbV9wYWNrZXQtPnNpemUgPT0gMCkgeworKwkJCXJldCA9IGF2X3JlYWRf ZnJhbWUobV9mb3JtYXRfY3R4LCBtX3BhY2tldCk7CisgCQkJaWYgKHJldCA8IDApIHsKKyAJCQkJ aWYgKHJldCA9PSBBVkVSUk9SX0VPRikgeworLQkJCQkJbV9maW5pc2hlZCA9IHRydWU7CisrCQkJ CQluZWVkc19wYWNrZXQgPSBmYWxzZTsKKysJCQkJCW1faGFzX21vcmVfcGFja2V0cyA9IGZhbHNl OworIAkJCQkJYnJlYWs7CistCQkJCX0gZWxzZSB7CisrCQkJCX0KKysJCQkJU2V0RXJyb3IoIkVy cm9yIHJlYWRpbmcgZnJvbSB0aGUgYXVkaW8gc291cmNlIiwgcmV0KTsKKysJCQkJcmV0dXJuIGZh bHNlOworKwkJCX0KKysJCQlpZiAobV9wYWNrZXQtPnN0cmVhbV9pbmRleCA9PSBtX3N0cmVhbV9p bmRleCkgeworKwkJCQluZWVkc19wYWNrZXQgPSBmYWxzZTsKKysJCQl9IGVsc2UgeworKwkJCQlh dl9wYWNrZXRfdW5yZWYobV9wYWNrZXQpOworKwkJCX0KKysJCX0KKysKKysJCWlmIChtX3BhY2tl dC0+c2l6ZSAhPSAwKSB7CisrCQkJcmV0ID0gYXZjb2RlY19zZW5kX3BhY2tldChtX2NvZGVjX2N0 eCwgbV9wYWNrZXQpOworKwkJCWlmIChyZXQgPCAwKSB7CisrCQkJCWlmIChyZXQgIT0gQVZFUlJP UihFQUdBSU4pKSB7CisgCQkJCQlTZXRFcnJvcigiRXJyb3IgcmVhZGluZyBmcm9tIHRoZSBhdWRp byBzb3VyY2UiLCByZXQpOworIAkJCQkJcmV0dXJuIGZhbHNlOworIAkJCQl9CistCQkJfQorLQkJ CW1fcGFja2V0MCA9IG1fcGFja2V0OworLQkJCWlmIChtX3BhY2tldC5zdHJlYW1faW5kZXggIT0g bV9zdHJlYW1faW5kZXgpIHsKKy0JCQkJbV9wYWNrZXQuZGF0YSA9IG51bGxwdHI7CistCQkJCW1f cGFja2V0LnNpemUgPSAwOworIAkJCX0gZWxzZSB7CistCQkJCW1fbmJfcGFja2V0cysrOworKwkJ CQlhdl9wYWNrZXRfdW5yZWYobV9wYWNrZXQpOworIAkJCX0KKyAJCX0KKworLQkJcmV0ID0gYXZj b2RlY19kZWNvZGVfYXVkaW80KG1fY29kZWNfY3R4LCBtX2ZyYW1lLCAmbV9nb3RfZnJhbWUsICZt X3BhY2tldCk7CisrCQlyZXQgPSBhdmNvZGVjX3JlY2VpdmVfZnJhbWUobV9jb2RlY19jdHgsIG1f ZnJhbWUpOworIAkJaWYgKHJldCA8IDApIHsKKy0JCQlpZiAobV9kZWNvZGVfZXJyb3IpIHsKKy0J CQkJU2V0RXJyb3IoIkVycm9yIGRlY29kaW5nIGF1ZGlvIGZyYW1lIiwgbV9kZWNvZGVfZXJyb3Ip OworLQkJCQlyZXR1cm4gZmFsc2U7CisrCQkJaWYgKHJldCA9PSBBVkVSUk9SX0VPRikgeworKwkJ CQltX2hhc19tb3JlX2ZyYW1lcyA9IGZhbHNlOworKwkJCX0gZWxzZSBpZiAocmV0ID09IEFWRVJS T1IoRUFHQUlOKSkgeworKwkJCQlpZiAobV9oYXNfbW9yZV9wYWNrZXRzKSB7CisrCQkJCQluZWVk c19wYWNrZXQgPSB0cnVlOworKwkJCQkJY29udGludWU7CisrCQkJCX0gZWxzZSB7CisrCQkJCQlt X2hhc19tb3JlX2ZyYW1lcyA9IGZhbHNlOworKwkJCQl9CisgCQkJfQorLQkJCW1fZGVjb2RlX2Vy cm9yID0gcmV0OworLQkJCW1fcGFja2V0LmRhdGEgPSBudWxscHRyOworLQkJCW1fcGFja2V0LnNp emUgPSAwOworLQkJCWNvbnRpbnVlOworKwkJCVNldEVycm9yKCJFcnJvciBkZWNvZGluZyB0aGUg YXVkaW8gc291cmNlIiwgcmV0KTsKKysJCQlyZXR1cm4gZmFsc2U7CisgCQl9CisKKy0JCWJyZWFr OworLQl9CistCistCW1fZGVjb2RlX2Vycm9yID0gMDsKKy0KKy0JY29uc3QgaW50IGRlY29kZWQg PSBzdGQ6Om1pbihyZXQsIG1fcGFja2V0LnNpemUpOworLQltX3BhY2tldC5kYXRhICs9IGRlY29k ZWQ7CistCW1fcGFja2V0LnNpemUgLT0gZGVjb2RlZDsKKy0KKy0JaWYgKG1fZ290X2ZyYW1lKSB7 CistCQlpZiAobV9jb252ZXJ0ZXIpIHsKKy0JCQlpZiAobV9mcmFtZS0+bmJfc2FtcGxlcyA+IG1f Y29udmVydF9idWZmZXJfbmJfc2FtcGxlcykgeworLQkJCQlpbnQgbGluc2l6ZTsKKy0JCQkJYXZf ZnJlZXAoJm1fY29udmVydF9idWZmZXJbMF0pOworLQkJCQltX2NvbnZlcnRfYnVmZmVyX25iX3Nh bXBsZXMgPSBzdGQ6Om1heCgxMDI0ICogOCwgbV9mcmFtZS0+bmJfc2FtcGxlcyk7CistCQkJCXJl dCA9IGF2X3NhbXBsZXNfYWxsb2MobV9jb252ZXJ0X2J1ZmZlciwgJmxpbnNpemUsIG1fY29kZWNf Y3R4LT5jaGFubmVscywgbV9jb252ZXJ0X2J1ZmZlcl9uYl9zYW1wbGVzLCBBVl9TQU1QTEVfRk1U X1MxNiwgMSk7CistCQkJCWlmIChyZXQgPCAwKSB7CistCQkJCQlTZXRFcnJvcigiQ291bGRuJ3Qg YWxsb2NhdGUgYXVkaW8gY29udmVydGVyIGJ1ZmZlciIsIHJldCk7CisrCQlpZiAobV9mcmFtZS0+ bmJfc2FtcGxlcyA+IDApIHsKKysJCQlpZiAobV9jb252ZXJ0ZXIpIHsKKysJCQkJaWYgKG1fZnJh bWUtPm5iX3NhbXBsZXMgPiBtX2NvbnZlcnRfYnVmZmVyX25iX3NhbXBsZXMpIHsKKysJCQkJCWlu dCBsaW5zaXplOworKwkJCQkJYXZfZnJlZXAoJm1fY29udmVydF9idWZmZXJbMF0pOworKwkJCQkJ bV9jb252ZXJ0X2J1ZmZlcl9uYl9zYW1wbGVzID0gc3RkOjptYXgoMTAyNCAqIDgsIG1fZnJhbWUt Pm5iX3NhbXBsZXMpOworKwkJCQkJcmV0ID0gYXZfc2FtcGxlc19hbGxvYyhtX2NvbnZlcnRfYnVm ZmVyLCAmbGluc2l6ZSwgbV9jb2RlY19jdHgtPmNoX2xheW91dC5uYl9jaGFubmVscywgbV9jb252 ZXJ0X2J1ZmZlcl9uYl9zYW1wbGVzLCBBVl9TQU1QTEVfRk1UX1MxNiwgMSk7CisrCQkJCQlpZiAo cmV0IDwgMCkgeworKwkJCQkJCVNldEVycm9yKCJDb3VsZG4ndCBhbGxvY2F0ZSBhdWRpbyBjb252 ZXJ0ZXIgYnVmZmVyIiwgcmV0KTsKKysJCQkJCQlyZXR1cm4gZmFsc2U7CisrCQkJCQl9CisrCQkJ CX0KKysJCQkJYXV0byBuYl9zYW1wbGVzID0gbV9jb252ZXJ0ZXItPkNvbnZlcnQobV9jb252ZXJ0 X2J1ZmZlciwgbV9jb252ZXJ0X2J1ZmZlcl9uYl9zYW1wbGVzLCAoY29uc3QgdWludDhfdCAqKikg bV9mcmFtZS0+ZGF0YSwgbV9mcmFtZS0+bmJfc2FtcGxlcyk7CisrCQkJCWlmIChuYl9zYW1wbGVz IDwgMCkgeworKwkJCQkJU2V0RXJyb3IoIkNvdWxkbid0IGNvbnZlcnQgYXVkaW8iLCByZXQpOwor IAkJCQkJcmV0dXJuIGZhbHNlOworIAkJCQl9CistCQkJfQorLQkJCWF1dG8gbmJfc2FtcGxlcyA9 IG1fY29udmVydGVyLT5Db252ZXJ0KG1fY29udmVydF9idWZmZXIsIG1fY29udmVydF9idWZmZXJf bmJfc2FtcGxlcywgKGNvbnN0IHVpbnQ4X3QgKiopIG1fZnJhbWUtPmRhdGEsIG1fZnJhbWUtPm5i X3NhbXBsZXMpOworLQkJCWlmIChuYl9zYW1wbGVzIDwgMCkgeworLQkJCQlTZXRFcnJvcigiQ291 bGRuJ3QgY29udmVydCBhdWRpbyIsIHJldCk7CistCQkJCXJldHVybiBmYWxzZTsKKy0JCQl9Cist CQkJKmRhdGEgPSAoY29uc3QgaW50MTZfdCAqKSBtX2NvbnZlcnRfYnVmZmVyWzBdOworLQkJCSpz aXplID0gbmJfc2FtcGxlczsKKy0JCX0gZWxzZSB7CistCQkJKmRhdGEgPSAoY29uc3QgaW50MTZf dCAqKSBtX2ZyYW1lLT5kYXRhWzBdOworLQkJCSpzaXplID0gbV9mcmFtZS0+bmJfc2FtcGxlczsK Ky0JCX0KKy0JfSBlbHNlIHsKKy0JCWlmIChtX2ZpbmlzaGVkICYmIG1fY29udmVydGVyKSB7Cist CQkJYXV0byBuYl9zYW1wbGVzID0gbV9jb252ZXJ0ZXItPkZsdXNoKG1fY29udmVydF9idWZmZXIs IG1fY29udmVydF9idWZmZXJfbmJfc2FtcGxlcyk7CistCQkJaWYgKG5iX3NhbXBsZXMgPCAwKSB7 CistCQkJCVNldEVycm9yKCJDb3VsZG4ndCBjb252ZXJ0IGF1ZGlvIiwgcmV0KTsKKy0JCQkJcmV0 dXJuIGZhbHNlOworLQkJCX0gZWxzZSBpZiAobmJfc2FtcGxlcyA+IDApIHsKKy0JCQkJbV9nb3Rf ZnJhbWUgPSAxOworIAkJCQkqZGF0YSA9IChjb25zdCBpbnQxNl90ICopIG1fY29udmVydF9idWZm ZXJbMF07CisgCQkJCSpzaXplID0gbmJfc2FtcGxlczsKKysJCQl9IGVsc2UgeworKwkJCQkqZGF0 YSA9IChjb25zdCBpbnQxNl90ICopIG1fZnJhbWUtPmRhdGFbMF07CisrCQkJCSpzaXplID0gbV9m cmFtZS0+bmJfc2FtcGxlczsKKysJCQl9CisrCQl9IGVsc2UgeworKwkJCWlmIChtX2NvbnZlcnRl cikgeworKwkJCQlpZiAoSXNGaW5pc2hlZCgpKSB7CisrCQkJCQlhdXRvIG5iX3NhbXBsZXMgPSBt X2NvbnZlcnRlci0+Rmx1c2gobV9jb252ZXJ0X2J1ZmZlciwgbV9jb252ZXJ0X2J1ZmZlcl9uYl9z YW1wbGVzKTsKKysJCQkJCWlmIChuYl9zYW1wbGVzIDwgMCkgeworKwkJCQkJCVNldEVycm9yKCJD b3VsZG4ndCBjb252ZXJ0IGF1ZGlvIiwgcmV0KTsKKysJCQkJCQlyZXR1cm4gZmFsc2U7CisrCQkJ CQl9IGVsc2UgaWYgKG5iX3NhbXBsZXMgPiAwKSB7CisrCQkJCQkJKmRhdGEgPSAoY29uc3QgaW50 MTZfdCAqKSBtX2NvbnZlcnRfYnVmZmVyWzBdOworKwkJCQkJCSpzaXplID0gbmJfc2FtcGxlczsK KysJCQkJCX0KKysJCQkJfQorIAkJCX0KKyAJCX0KKy0JfQorCistCXJldHVybiB0cnVlOworKwkJ cmV0dXJuIHRydWU7CisrCX0KKyB9CisKKyBpbmxpbmUgdm9pZCBGRm1wZWdBdWRpb1JlYWRlcjo6 U2V0RXJyb3IoY29uc3QgY2hhciAqbWVzc2FnZSwgaW50IGVycm51bSkgeworZGlmZiAtLWdpdCBh L3Rlc3RzL0NNYWtlTGlzdHMudHh0IGIvdGVzdHMvQ01ha2VMaXN0cy50eHQKK2luZGV4IGEyYjUx N2IuLjEyM2U2NDMgMTAwNjQ0CistLS0gYS90ZXN0cy9DTWFrZUxpc3RzLnR4dAorKysrIGIvdGVz dHMvQ01ha2VMaXN0cy50eHQKK0BAIC0zOCw2ICszOCwxMiBAQCBzZXQoU1JDUworCisgaWYoQlVJ TERfVE9PTFMpCisgCXNldChTUkNTICR7U1JDU30gLi4vc3JjL2F1ZGlvL2ZmbXBlZ19hdWRpb19y ZWFkZXJfdGVzdC5jcHApCisrICAgIGluY2x1ZGVfZGlyZWN0b3JpZXMoCisrICAgICAgICAke0ZG TVBFR19MSUJBVkZPUk1BVF9JTkNMVURFX0RJUlN9CisrICAgICAgICAke0ZGTVBFR19MSUJBVkNP REVDX0lOQ0xVREVfRElSU30KKysgICAgICAgICR7RkZNUEVHX0xJQkFWVVRJTF9JTkNMVURFX0RJ UlN9CisrICAgICAgICAke0FVRElPX1BST0NFU1NPUl9JTkNMVURFX0RJUlN9CisrICAgICkKKyAJ bGlua19saWJyYXJpZXMoZnBjYWxjX2xpYnMpCisgZW5kaWYoKQorCistLSAKKzIuMzguMQorCisK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21hcHJpbnQvdGVtcGxhdGUgYi9zcmNwa2dzL2Nocm9t YXByaW50L3RlbXBsYXRlCmluZGV4IDdlZjc4Mzg5NDlmMy4uMWY3YmJjNzBhMjJjIDEwMDY0NAot LS0gYS9zcmNwa2dzL2Nocm9tYXByaW50L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2hyb21hcHJp bnQvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjaHJvbWFw cmludCcKIHBrZ25hbWU9Y2hyb21hcHJpbnQKIHZlcnNpb249MS41LjEKLXJldmlzaW9uPTEKK3Jl dmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURCVUlMRF9UT09M Uz1PTiIKIG1ha2VfY2hlY2tfdGFyZ2V0PSJjaGVjayIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hy b21pdW0vdGVtcGxhdGUgYi9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlCmluZGV4IDNjMWMxY2Fm Mzc2NS4uMWYyOGNkZTVkM2MxIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKQEAgLTIsNyArMiw3IEBACiBwa2duYW1l PWNocm9taXVtCiAjIFNlZSBodHRwczovL2Nocm9taXVtZGFzaC5hcHBzcG90LmNvbS9yZWxlYXNl cz9wbGF0Zm9ybT1MaW51eCBmb3IgdGhlIGxhdGVzdCB2ZXJzaW9uCiB2ZXJzaW9uPTExMS4wLjU1 NjMuNjQKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGFyY2hzPSJpNjg2KiB4ODZfNjQqIGFhcmNo NjQqIGFybXY3bCoiCiBob3N0bWFrZWRlcGVuZHM9IgogICQodm9wdF9pZiBjbGFuZyAiY2xhbmcg bGxkIGxsdm0xMiIpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NtdXMvdGVtcGxhdGUgYi9zcmNwa2dz L2NtdXMvdGVtcGxhdGUKaW5kZXggMGZjYjQyNGNlMzM2Li4wNWI3N2QwZmVjYWUgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvY211cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2NtdXMvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjbXVzJwogcGtnbmFtZT1jbXVzCiB2 ZXJzaW9uPTIuMTAuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y29uZmln dXJlCiBjb25maWd1cmVfYXJncz0icHJlZml4PS91c3IgTEQ9JENDIgogaG9zdG1ha2VkZXBlbmRz PSJwa2ctY29uZmlnIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jeWFucmlwL3RlbXBsYXRlIGIvc3Jj cGtncy9jeWFucmlwL3RlbXBsYXRlCmluZGV4IDk3OTZlMzQ2MTYwMS4uNWRiMzBlMDIwZDE3IDEw MDY0NAotLS0gYS9zcmNwa2dzL2N5YW5yaXAvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jeWFucmlw L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY3lhbnJpcCcK IHBrZ25hbWU9Y3lhbnJpcAogdmVyc2lvbj0wLjkuMAotcmV2aXNpb249MQorcmV2aXNpb249Mgog YnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyIKIG1ha2VkZXBl bmRzPSJmZm1wZWctZGV2ZWwgbGliY2Rpby1kZXZlbCBsaWJjZGlvLXBhcmFub2lhLWRldmVsIGxp YmN1cmwtZGV2ZWwgbGlibXVzaWNicmFpbno1LWRldmVsIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9k ZWFkYmVlZi90ZW1wbGF0ZSBiL3NyY3BrZ3MvZGVhZGJlZWYvdGVtcGxhdGUKaW5kZXggYjY2NGJi MWI5YmQ5Li5mMGZjY2VkODY0YmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZGVhZGJlZWYvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9kZWFkYmVlZi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2RlYWRiZWVmJwogcGtnbmFtZT1kZWFkYmVlZgogdmVyc2lvbj0xLjgu OAotcmV2aXNpb249MQorcmV2aXNpb249MgogY3JlYXRlX3dya3NyYz15ZXMKIGJ1aWxkX3N0eWxl PWdudS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtb3NzIC0tZGlzYWJsZS1s Zm0gLS1kaXNhYmxlLW5vdGlmeSAtLWRpc2FibGUtZ3RrMiIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv ZG9scGhpbi1lbXUvdGVtcGxhdGUgYi9zcmNwa2dzL2RvbHBoaW4tZW11L3RlbXBsYXRlCmluZGV4 IDdlYTE5N2NlYjJhOC4uN2FlYjBhNWI2NDVlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2RvbHBoaW4t ZW11L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZG9scGhpbi1lbXUvdGVtcGxhdGUKQEAgLTEsNyAr MSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdkb2xwaGluLWVtdScKIHBrZ25hbWU9ZG9scGhp bi1lbXUKIHZlcnNpb249NS4wLjE2MTAxCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBfZG9scGhp bl9jb21taXQ9OGVjZmE1MzdhMjQyZGU3NGQyZTM3MmUzMGQ5ZDc5YjE0NTg0YjJmYgogX21nYmFf Y29tbWl0PTQwZDRjNDMwZmMzNmNhZWI3ZWEzMmZkMzk2MjQ5NDdlZDQ4N2QyZjIKICNWZXJzaW9u L2hhc2ggcGFpciBjYW4gYmUgZm91bmQgYXQgaHR0cHM6Ly9kb2xwaGluLWVtdS5vcmcvZG93bmxv YWQvCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Ryb2lkY2FtLW9icy1wbHVnaW4vdGVtcGxhdGUgYi9z cmNwa2dzL2Ryb2lkY2FtLW9icy1wbHVnaW4vdGVtcGxhdGUKaW5kZXggZmM5YzliZjZiOWQ1Li5m YjA0ODA3NTRkZjQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZHJvaWRjYW0tb2JzLXBsdWdpbi90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL2Ryb2lkY2FtLW9icy1wbHVnaW4vdGVtcGxhdGUKQEAgLTEsNyAr MSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdkcm9pZGNhbS1vYnMtcGx1Z2luJwogcGtnbmFt ZT1kcm9pZGNhbS1vYnMtcGx1Z2luCiB2ZXJzaW9uPTIuMC4xCi1yZXZpc2lvbj0xCityZXZpc2lv bj0yCiBidWlsZF9zdHlsZT1nbnUtbWFrZWZpbGUKIG1ha2VfdXNlX2Vudj15ZXMKIG1ha2VfYnVp bGRfYXJncz0iQUxMT1dfU1RBVElDPW5vIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9kcm9pZGNhbS90 ZW1wbGF0ZSBiL3NyY3BrZ3MvZHJvaWRjYW0vdGVtcGxhdGUKaW5kZXggMWMzZjFiOGIxZmM2Li4z MmE5MjIwYjc5YTQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZHJvaWRjYW0vdGVtcGxhdGUKKysrIGIv c3JjcGtncy9kcm9pZGNhbS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2Ryb2lkY2FtJwogcGtnbmFtZT1kcm9pZGNhbQogdmVyc2lvbj0xLjguMgotcmV2aXNp b249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9Z251LW1ha2VmaWxlCiBtYWtlX2J1aWxkX2Fy Z3M9IlVTQk1VWEQ9LWx1c2JtdXhkLTIuMCBKUEVHPS1sdHVyYm9qcGVnIgogaG9zdG1ha2VkZXBl bmRzPSJwa2ctY29uZmlnIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lbGVjdHJvbjE5L3RlbXBsYXRl IGIvc3JjcGtncy9lbGVjdHJvbjE5L3RlbXBsYXRlCmluZGV4IDA2ODEzNmJlNzYyMy4uMzJjZTMw MWU3MzBjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2VsZWN0cm9uMTkvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9lbGVjdHJvbjE5L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnZWxlY3Ryb24xOScKIHBrZ25hbWU9ZWxlY3Ryb24xOQogdmVyc2lvbj0xOS4wLjgKLXJl dmlzaW9uPTIKK3JldmlzaW9uPTMKIF9ub2RldmVyPTE2LjE0LjIKIF9jaHJvbWl1bXZlcj0xMDIu MC41MDA1LjEyNQogYXJjaHM9Ing4Nl82NCogYWFyY2g2NCogcHBjNjRsZSoiCmRpZmYgLS1naXQg YS9zcmNwa2dzL2ZmbXBlZy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZmZtcGVnL3RlbXBsYXRlCmluZGV4 IDM4OTc4YzUwODVhMy4uMWFjMWU0YjhkZjQ5IDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZmbXBlZy90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2ZmbXBlZy90ZW1wbGF0ZQpAQCAtMTIsMjUgKzEyLDMxIEBA IGRpc3RmaWxlcz0iaHR0cHM6Ly93d3cuZmZtcGVnLm9yZy9yZWxlYXNlcy9mZm1wZWctJHt2ZXJz aW9ufS50YXIueHoiCiBjaGVja3N1bT02MTllNzA2ZDY2MmM4NDIwODU5ODMyZGRjMjU5Y2Q0ZDQw OTZhNDhhMmNlMWVlZmQwNTJkYjllNDQwZWVmM2RjCiAKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNv bmZpZyBwZXJsIHlhc20iCi1tYWtlZGVwZW5kcz0iY2hyb21hcHJpbnQtZGV2ZWwgbGliZ2NyeXB0 LWRldmVsIGxhZHNwYS1zZGsgbGNtczItZGV2ZWwgbGliYW9tLWRldmVsCi0gYWxzYS1saWItZGV2 ZWwgYnppcDItZGV2ZWwgbGlieGNiLWRldmVsIGxpYmx6bWEtZGV2ZWwgU0RMMi1kZXZlbCBzbmRp by1kZXZlbCB6bGliLWRldmVsCi0gZnJlaTByLXBsdWdpbnMgbGliY2Rpby1wYXJhbm9pYS1kZXZl bCBydWJiZXJiYW5kLWRldmVsIGxpYnZpZHN0YWItZGV2ZWwgeDI2NC1kZXZlbCB4MjY1LWRldmVs Ci0geHZpZGNvcmUtZGV2ZWwgZmRrLWFhYy1kZXZlbCBsaWJ0bHMtZGV2ZWwgZ21wLWRldmVsIGxp YmFzcy1kZXZlbCBsaWJibHVyYXktZGV2ZWwgbGliY2FjYS1kZXZlbAotIGNlbHQtZGV2ZWwgY29k ZWMyLWRldmVsIGxpYmRhdjFkLWRldmVsIGxpYmRybS1kZXZlbCBmb250Y29uZmlnLWRldmVsIGZy ZWV0eXBlLWRldmVsCi0gZnJpYmlkaS1kZXZlbCBnbHNsYW5nLWRldmVsIFNQSVJWLVRvb2xzLWRl dmVsIGxpYmdtZS1kZXZlbCBsaWJnc20tZGV2ZWwgamFjay1kZXZlbAotIGxpYm1vZHBsdWctZGV2 ZWwgbGFtZS1kZXZlbCBsaWJvcGVuY3Y0LWRldmVsIGxpYm9wZW5qcGVnMi1kZXZlbCBsaWJvcGVu bXB0LWRldmVsIG9wdXMtZGV2ZWwKLSBsaWJwbGFjZWJvLWRldmVsIGxpYnB1bHNlYXVkaW8gcmFi Yml0bXEtYy1kZXZlbCBsaWJyaXN0LWRldmVsIGxpYnJzdmctZGV2ZWwgbGlicnRtcC1kZXZlbAot IHNuYXBweS1kZXZlbCBsaWJzb3hyLWRldmVsIHNwZWV4LWRldmVsIHNydC1kZXZlbCBsaWJzc2gt ZGV2ZWwgbGlidGhlb3JhLWRldmVsIHR3b2xhbWUtZGV2ZWwKLSBsaWJ2b3JiaXMtZGV2ZWwgbGli dnB4Ni1kZXZlbCBsaWJ3ZWJwLWRldmVsIGxpYnhtbDItZGV2ZWwgemltZy1kZXZlbCBsaWx2LWRl dmVsIGx2MgotIGxpYm9wZW5hbC1kZXZlbCBtZXNhIG9wZW5zc2wtZGV2ZWwgdmFwb3Vyc3ludGgt ZGV2ZWwgb2NsLWljZC1kZXZlbCBsaWJteXNvZmEtZGV2ZWwgdnVsa2FuLWxvYWRlcgotICQodm9w dF9pZiB2YWFwaSBsaWJ2YS1kZXZlbCkKLSAkKHZvcHRfaWYgdmRwYXUgbGlidmRwYXUtZGV2ZWwp Ci0gJCh2b3B0X2lmIG52ZW5jIG52LWNvZGVjLWhlYWRlcnMpCi0gJCh2b3B0X2lmIG52ZGVjIG52 LWNvZGVjLWhlYWRlcnMpCi0gJCh2b3B0X2lmIHN2dGF2MSBsaWJzdnQtYXYxLWRldmVsKQotIgor bWFrZWRlcGVuZHM9InpsaWItZGV2ZWwgYnppcDItZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgYWxzYS1s aWItZGV2ZWwgbGliWGZpeGVzLWRldmVsCisgbGliWGV4dC1kZXZlbCBsaWJYdk1DLWRldmVsIGxp YnhjYi1kZXZlbCBsYW1lLWRldmVsIGxpYnRoZW9yYS1kZXZlbAorIGxpYnZvcmJpcy1kZXZlbCB4 MjY0LWRldmVsIHh2aWRjb3JlLWRldmVsIGphY2stZGV2ZWwgU0RMMi1kZXZlbAorIGxpYmNkaW8t cGFyYW5vaWEtZGV2ZWwgbGlicnRtcC1kZXZlbCBsaWJtb2RwbHVnLWRldmVsIGdudXRscy1kZXZl bAorIHNwZWV4LWRldmVsIGNlbHQtZGV2ZWwgaGFyZmJ1enotZGV2ZWwgbGliYXNzLWRldmVsIG9w dXMtZGV2ZWwgb2NsLWljZC1kZXZlbAorIGxpYmJzMmItZGV2ZWwgbGlidmlkc3RhYi1kZXZlbCAk KHZvcHRfaWYgcHVsc2VhdWRpbyBwdWxzZWF1ZGlvLWRldmVsKQorICQodm9wdF9pZiB2YWFwaSBs aWJ2YS1kZXZlbCkgJCh2b3B0X2lmIHZkcGF1IGxpYnZkcGF1LWRldmVsKQorICQodm9wdF9pZiB4 MjY1IHgyNjUtZGV2ZWwpICQodm9wdF9pZiB2NGwyIHY0bC11dGlscy1kZXZlbCkKKyAkKHZvcHRf aWYgZmRrX2FhYyBmZGstYWFjLWRldmVsKSAkKHZvcHRfaWYgdnB4IGxpYnZweC1kZXZlbCkKKyAk KHZvcHRfaWYgYW9tIGxpYmFvbS1kZXZlbCkgJCh2b3B0X2lmIHNuZGlvIHNuZGlvLWRldmVsKQor ICQodm9wdF9pZiBkYXYxZCBsaWJkYXYxZC1kZXZlbCkgJCh2b3B0X2lmIHppbWcgemltZy1kZXZl bCkKKyAkKHZvcHRfaWYgd2VicCBsaWJ3ZWJwLWRldmVsKSAkKHZvcHRfaWYgc29mYSBsaWJteXNv ZmEtZGV2ZWwpCisgJCh2b3B0X2lmIGRybSBsaWJkcm0tZGV2ZWwpICQodm9wdF9pZiBzdnRhdjEg bGlic3Z0LWF2MS1kZXZlbCkKKyAkKHZvcHRfaWYgc3J0IHNydC1kZXZlbCkgJCh2b3B0X2lmIHJp c3QgbGlicmlzdC1kZXZlbCkKKyAkKHZvcHRfaWYgdnVsa2FuICd2dWxrYW4tbG9hZGVyIFZ1bGth bi1IZWFkZXJzIFZ1bGthbi1Ub29scyBWdWxrYW4tVmFsaWRhdGlvbkxheWVycycpCisgJCh2b3B0 X2lmIG52ZW5jIG52LWNvZGVjLWhlYWRlcnMpICQodm9wdF9pZiBudmRlYyBudi1jb2RlYy1oZWFk ZXJzKSIKIGRlcGVuZHM9ImZmcGxheT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLWJ1aWxkX29w dGlvbnM9InZhYXBpIHZkcGF1IG52ZW5jIG52ZGVjIHN2dGF2MSIKKworYnVpbGRfb3B0aW9ucz0i eDI2NSB2NGwyIHZhYXBpIHZkcGF1IHZweCBmZGtfYWFjIGFvbSBudmVuYyBzbmRpbyBwdWxzZWF1 ZGlvCisgZGF2MWQgemltZyB3ZWJwIHNvZmEgdnVsa2FuIGRybSBzdnRhdjEgc3J0IHJpc3QgbnZk ZWMiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9IngyNjUgdjRsMiB2cHggYW9tIHNuZGlvIHB1bHNl YXVkaW8gZGF2MWQgd2VicCB2dWxrYW4gZHJtIHNydCByaXN0IgorZGVzY19vcHRpb25fc3J0PSJF bmFibGUgc3VwcG9ydCBmb3IgU1JUIChTZWN1cmUsIFJlbGlhYmxlLCBUcmFuc3BvcnQpIgorZGVz Y19vcHRpb25fcmlzdD0iRW5hYmxlIHN1cHBvcnQgZm9yIFJJU1QgKFJlbGlhYmxlIEludGVybmV0 IFN0cmVhbSBUcmFuc3BvcnQpIgorZGVzY19vcHRpb25fc29mYT0iRW5hYmxlIHN1cHBvcnQgZm9y IEFFUyBTT0ZBIgorZGVzY19vcHRpb25fd2VicD0iRW5hYmxlIHN1cHBvcnQgZm9yIFdlYlAiCiAK IGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgogCWk2ODYqfHg4Nl82NCopIGJ1aWxkX29w dGlvbnNfZGVmYXVsdCs9IiB2YWFwaSB2ZHBhdSBudmVuYyBudmRlYyI7OwpAQCAtNDYsNiArNTIs MjIgQEAgaWYgWyAiJFhCUFNfVEFSR0VUX05PX0FUT01JQzgiIF07IHRoZW4KIAltYWtlZGVwZW5k cys9IiBsaWJhdG9taWMtZGV2ZWwiCiBmaQogCitfYXBwbHlfcGF0Y2goKSB7CisJbG9jYWwgYXJn cz0iJDEiIHBuYW1lPSIkKGJhc2VuYW1lICQyKSIKKworCWlmIFsgISAtZiAiLiR7cG5hbWV9X2Rv bmUiIF07IHRoZW4KKwkJcGF0Y2ggLU4gJGFyZ3MgLWkgJDIKKwkJdG91Y2ggLiR7cG5hbWV9X2Rv bmUKKwlmaQorfQorCitwb3N0X3BhdGNoKCkgeworCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5F IiBpbgorCQlwcGM2NGxlKikgOzsKKwkJcHBjKikgX2FwcGx5X3BhdGNoIC1wMSAke0ZJTEVTRElS fS9hbHRpdmVjLnBhdGNoIDs7CisJZXNhYworfQorCiBkb19jb25maWd1cmUoKSB7CiAJIyBGaXgg Z2NjIG9uIHg4Nl82NC1tdXNsIG9ubHkKIAlpZiBbICIkWEJQU19UQVJHRVRfTUFDSElORSIgPSAi eDg2XzY0LW11c2wiIF07IHRoZW4KQEAgLTc2LDQ3ICs5OCwzOSBAQCBkb19jb25maWd1cmUoKSB7 CiAJCV9hcmdzKz0iIC0tZXh0cmEtbGlicz0tbGF0b21pYyIKIAlmaQogCi0JLi9jb25maWd1cmUg XAotCQktLXByZWZpeD0nL3VzcicgXAotCQktLWV4dHJhLWNmbGFncz0nLUkvb3B0L2N1ZGEvaW5j bHVkZScgXAotCQktLWV4dHJhLWxkZmxhZ3M9Jy1ML29wdC9jdWRhL2xpYjY0JyBcCisJLi9jb25m aWd1cmUgLS1wcmVmaXg9L3VzciAtLWRpc2FibGUtZGVidWcgLS1lbmFibGUtZ3BsIC0tZW5hYmxl LWdudXRscyBcCiAJCS0tZGlzYWJsZS1zdHJpcHBpbmcgXAotCQktLWVuYWJsZS1zaGFyZWQgLS1l bmFibGUtc3RhdGljIFwKLQkJLS1lbmFibGUtbm9uZnJlZSAtLWVuYWJsZS1ncGwgXAotCQktLWVu YWJsZS12ZXJzaW9uMyAtLWVuYWJsZS1saWJ4Y2IgXAotCQktLWVuYWJsZS1mcmVpMHIgLS1lbmFi bGUtbGliY2RpbyBcCi0JCS0tZW5hYmxlLWxpYnJ1YmJlcmJhbmQgLS1lbmFibGUtbGlidmlkc3Rh YiBcCi0JCS0tZW5hYmxlLWxpYngyNjQgLS1lbmFibGUtbGlieDI2NSAtLWVuYWJsZS1saWJ4dmlk IFwKLQkJLS1lbmFibGUtbGliZmRrLWFhYyAtLWVuYWJsZS1saWJ0bHMgLS1lbmFibGUtZ21wIFwK LQkJLS1lbmFibGUtY2hyb21hcHJpbnQgLS1lbmFibGUtZ2NyeXB0IC0tZW5hYmxlLWxhZHNwYSBc Ci0JCS0tZW5hYmxlLWxjbXMyIC0tZW5hYmxlLWxpYmFvbSAtLWVuYWJsZS1saWJhc3MgXAotCQkt LWVuYWJsZS1saWJibHVyYXkgLS1lbmFibGUtbGliY2FjYSAtLWVuYWJsZS1saWJjZWx0IFwKLQkJ LS1lbmFibGUtbGliY29kZWMyIC0tZW5hYmxlLWxpYmRhdjFkIC0tZW5hYmxlLWxpYmRybSBcCi0J CS0tZW5hYmxlLWxpYmZvbnRjb25maWcgLS1lbmFibGUtbGliZnJlZXR5cGUgXAotCQktLWVuYWJs ZS1saWJmcmliaWRpIC0tZW5hYmxlLWxpYmdsc2xhbmcgXAotCQktLWVuYWJsZS1saWJnbWUgLS1l bmFibGUtbGliZ3NtIFwKLQkJLS1lbmFibGUtdmFwb3Vyc3ludGggLS1lbmFibGUtb3BlbnNzbCAt LWVuYWJsZS1vcGVuZ2wgXAotCQktLWVuYWJsZS1vcGVuYWwgLS1lbmFibGUtbHYyIC0tZW5hYmxl LWxpYnppbWcgXAotCQktLWVuYWJsZS1saWJ4bWwyIC0tZW5hYmxlLWxpYndlYnAgLS1lbmFibGUt bGlidm9yYmlzIFwKLQkJLS1lbmFibGUtbGlidHdvbGFtZSAtLWVuYWJsZS1saWJ0aGVvcmEgLS1l bmFibGUtbGlic3NoIFwKLQkJLS1lbmFibGUtbGlic3J0IC0tZW5hYmxlLWxpYnNwZWV4IC0tZW5h YmxlLWxpYnNveHIgXAotCQktLWVuYWJsZS1saWJydG1wIC0tZW5hYmxlLWxpYnJzdmcgLS1lbmFi bGUtbGlicmlzdCBcCi0JCS0tZW5hYmxlLWxpYnJhYmJpdG1xIC0tZW5hYmxlLWxpYnB1bHNlIC0t ZW5hYmxlLWxpYnBsYWNlYm8gXAotCQktLWVuYWJsZS1saWJvcHVzIC0tZW5hYmxlLWxpYm9wZW5t cHQgLS1lbmFibGUtbGlib3BlbmpwZWcgXAotCQktLWVuYWJsZS1saWJtcDNsYW1lIC0tZW5hYmxl LWxpYm1vZHBsdWcgLS1lbmFibGUtbGliamFjayBcCi0JCS0tZW5hYmxlLW9wZW5jbCAtLWVuYWJs ZS1saWJ2cHggLS1lbmFibGUtbGlibXlzb2ZhIFwKLQkJJCh2b3B0X2VuYWJsZSB2YWFwaSkgXAot CQkkKHZvcHRfZW5hYmxlIHZkcGF1KSBcCisJCS0tZW5hYmxlLWxpYmNkaW8gLS1lbmFibGUtdmVy c2lvbjMgLS1lbmFibGUtcnVudGltZS1jcHVkZXRlY3QgXAorCQktLWVuYWJsZS1saWJtcDNsYW1l IC0tZW5hYmxlLWxpYnZvcmJpcyAtLWVuYWJsZS1saWJ4dmlkIFwKKwkJLS1lbmFibGUtbGlieDI2 NCAkKHZvcHRfZW5hYmxlIHZweCBsaWJ2cHgpIC0tZW5hYmxlLWxpYnRoZW9yYSBcCisJCS0tZW5h YmxlLXNoYXJlZCAtLWVuYWJsZS1zdGF0aWMgLS1lbmFibGUtbGlieGNiIFwKKwkJJCh2b3B0X2Vu YWJsZSBwdWxzZWF1ZGlvIGxpYnB1bHNlKSAtLWVuYWJsZS1saWJmcmVldHlwZSAtLWVuYWJsZS1s aWJtb2RwbHVnIFwKKwkJLS1lbmFibGUtbGlic3BlZXggLS1lbmFibGUtbGliY2VsdCAtLWVuYWJs ZS1saWJhc3MgXAorCQktLWVuYWJsZS1saWJvcHVzIC0tZW5hYmxlLWxpYnJ0bXAgLS1lbmFibGUt bGliamFjayBcCisJCSQodm9wdF9pZiBmZGtfYWFjICctLWVuYWJsZS1ub25mcmVlIC0tZW5hYmxl LWxpYmZkay1hYWMnKSBcCisJCS0tZGlzYWJsZS1saWJvcGVuY29yZV9hbXJuYiAtLWRpc2FibGUt bGlib3BlbmNvcmVfYW1yd2IgXAorCQktLWRpc2FibGUtbGlib3BlbmpwZWcgXAorCQktLWVuYWJs ZS1wb3N0cHJvYyAtLWVuYWJsZS1vcGVuY2wgJHtfYXJnc30gXAorCQkkKHZvcHRfZW5hYmxlIHgy NjUgbGlieDI2NSkgXAorCQkkKHZvcHRfZW5hYmxlIHY0bDIgbGlidjRsMikgXAorCQkkKHZvcHRf ZW5hYmxlIGFvbSBsaWJhb20pICQodm9wdF9lbmFibGUgdmFhcGkpICQodm9wdF9lbmFibGUgdmRw YXUpIFwKKwkJLS1lbmFibGUtbGliYnMyYiAtLWVuYWJsZS1saWJ2aWRzdGFiIFwKKwkJJCh2b3B0 X2VuYWJsZSBkYXYxZCBsaWJkYXYxZCkgXAorCQkkKHZvcHRfZW5hYmxlIHppbWcgbGliemltZykg XAorCQkkKHZvcHRfZW5hYmxlIHdlYnAgbGlid2VicCkgXAorCQkkKHZvcHRfZW5hYmxlIHNvZmEg bGlibXlzb2ZhKSBcCisJCSQodm9wdF9lbmFibGUgdnVsa2FuKSBcCisJCSQodm9wdF9lbmFibGUg ZHJtIGxpYmRybSkgXAorCQkkKHZvcHRfZW5hYmxlIHN2dGF2MSBsaWJzdnRhdjEpIFwKKwkJJCh2 b3B0X2VuYWJsZSBzcnQgbGlic3J0KSBcCisJCSQodm9wdF9lbmFibGUgcmlzdCBsaWJyaXN0KSBc CiAJCSQodm9wdF9pZiBudmVuYyAnLS1lbmFibGUtbnZlbmMnKSBcCi0JCSQodm9wdF9pZiBudmRl YyAnLS1lbmFibGUtbnZkZWMnKSBcCi0JCSQodm9wdF9lbmFibGUgc3Z0YXYxIGxpYnN2dGF2MSkK KwkJJCh2b3B0X2lmIG52ZGVjICctLWVuYWJsZS1udmRlYycpCiB9Ci0KIGRvX2J1aWxkKCkgewog CW1ha2UgJHttYWtlam9ic30KIAltYWtlIGRvYy9mZnttcGVnLHBsYXl9LjEKIH0KLQogZG9faW5z dGFsbCgpIHsKIAltYWtlIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsIGluc3RhbGwtbWFuCiB9 CkBAIC0xMzMsNiArMTQ3LDEwIEBAIGxpYmF2ZGV2aWNlX3BhY2thZ2UoKSB7CiAJCXZtb3ZlICJ1 c3IvbGliL2xpYmF2ZGV2aWNlLnNvLioiCiAJfQogfQorbGliYXZyZXNhbXBsZV9wYWNrYWdlKCkg eworCXNob3J0X2Rlc2M9IlBhY2thZ2UgZGVwcmVjYXRlZCwgcmVtb3ZhbCBuZWVkZWQiCisJYnVp bGRfc3R5bGU9bWV0YQorfQogbGliYXZmb3JtYXRfcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjPSJG Rm1wZWcgZmlsZSBmb3JtYXQgbGlicmFyeSIKIAlwa2dfaW5zdGFsbCgpIHsKQEAgLTE4MCw0NyAr MTk4LDcgQEAgZmZtcGVnLWRldmVsX3BhY2thZ2UoKSB7CiAJCWxpYnN3c2NhbGU+PSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0KIAkJbGlic3dyZXNhbXBsZT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIK IAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCi0JYWx0ZXJuYXRpdmVzPSIKLQkg ZmZtcGVnLWRldmVsOmxpYmF2Y29kZWMuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYmF2Y29kZWM1 LjMKLQkgZmZtcGVnLWRldmVsOmxpYmF2ZGV2aWNlLjM6L3Vzci9zaGFyZS9tYW4vbWFuMy9saWJh dmRldmljZTUuMwotCSBmZm1wZWctZGV2ZWw6bGliYXZmaWx0ZXIuMzovdXNyL3NoYXJlL21hbi9t YW4zL2xpYmF2ZmlsdGVyNS4zCi0JIGZmbXBlZy1kZXZlbDpsaWJsaWJhdmZvcm1hdC4zOi91c3Iv c2hhcmUvbWFuL21hbjMvbGliYXZmb3JtYXQ1LjMKLQkgZmZtcGVnLWRldmVsOmxpYmF2dXRpbC4z Oi91c3Ivc2hhcmUvbWFuL21hbjMvbGliYXZ1dGlsNS4zCi0JIGZmbXBlZy1kZXZlbDpsaWJzd3Jl c2FtcGxlLjM6L3Vzci9zaGFyZS9tYW4vbWFuMy9saWJzd3Jlc2FtcGxlNS4zCi0JIGZmbXBlZy1k ZXZlbDpsaWJzd3NjYWxlLjM6L3Vzci9zaGFyZS9tYW4vbWFuMy9saWJzd3NjYWxlNS4zCi0JIGZm bXBlZy1kZXZlbDpsaWJhdmNvZGVjOi91c3IvaW5jbHVkZS9saWJhdmNvZGVjNQotCSBmZm1wZWct ZGV2ZWw6bGliYXZkZXZpY2U6L3Vzci9pbmNsdWRlL2xpYmF2ZGV2aWNlNQotCSBmZm1wZWctZGV2 ZWw6bGliYXZmb3JtYXQ6L3Vzci9pbmNsdWRlL2xpYmF2Zm9ybWF0NQotCSBmZm1wZWctZGV2ZWw6 bGliYXZ1dGlsOi91c3IvaW5jbHVkZS9saWJhdnV0aWw1Ci0JIGZmbXBlZy1kZXZlbDpsaWJhdnBv c3Rwcm9jOi91c3IvaW5jbHVkZS9saWJhdnBvc3Rwcm9jNQotCSBmZm1wZWctZGV2ZWw6bGlic3dy ZXNhbXBsZTovdXNyL2luY2x1ZGUvbGlic3dyZXNhbXBsZTUKLQkgZmZtcGVnLWRldmVsOmxpYnN3 Y2FhbGU6L3Vzci9pbmNsdWRlL2xpYnN3c2NhbGU1Ci0JIGZmbXBlZy1kZXZlbDpsaWJhdmNvZGVj LnBjOi91c3IvbGliL3BrZ2NvbmZpZy9saWJhdmNvZGVjNS5wYwotCSBmZm1wZWctZGV2ZWw6bGli YXZkZXZpY2UucGM6L3Vzci9saWIvcGtnY29uZmlnL2xpYmF2ZGV2aWNlNS5wYwotCSBmZm1wZWct ZGV2ZWw6bGliYXZmaWx0ZXIucGM6L3Vzci9saWIvcGtnY29uZmlnL2xpYmF2ZmlsdGVyNS5wYwot CSBmZm1wZWctZGV2ZWw6bGliYXZmb3JtYXQucGM6L3Vzci9saWIvcGtnY29uZmlnL2xpYmF2Zm9y bWF0NS5wYwotCSBmZm1wZWctZGV2ZWw6bGliYXZ1dGlsLnBjOi91c3IvbGliL3BrZ2NvbmZpZy9s aWJhdnV0aWw1LnBjCi0JIGZmbXBlZy1kZXZlbDpsaWJwb3N0cHJvYy5wYzovdXNyL2xpYi9wa2dj b25maWcvbGlicG9zdHByb2M1LnBjCi0JIGZmbXBlZy1kZXZlbDpsaWJzd3Jlc2FtcGxlLnBjOi91 c3IvbGliL3BrZ2NvbmZpZy9saWJzd3Jlc2FtcGxlNS5wYwotCSBmZm1wZWctZGV2ZWw6bGlic3dz Y2FsZS5wYzovdXNyL2xpYi9wa2djb25maWcvbGlic3dzY2FsZTUucGMKLQkgZmZtcGVnLWRldmVs OmxpYmF2Y29kZWMuYTovdXNyL2xpYi9saWJhdmNvZGVjNS5hCi0JIGZmbXBlZy1kZXZlbDpsaWJh dmNvZGVjLnNvOi91c3IvbGliL2xpYmF2Y29kZWM1LnNvCi0JIGZmbXBlZy1kZXZlbDpsaWJhdmRl dmljZS5hOi91c3IvbGliL2xpYmF2ZGV2aWNlNS5hCi0JIGZmbXBlZy1kZXZlbDpsaWJhdmRldmlj ZS5zbzovdXNyL2xpYi9saWJhdmRldmljZTUuc28KLQkgZmZtcGVnLWRldmVsOmxpYmF2ZmlsdGVy LmE6L3Vzci9saWIvbGliYXZmaWx0ZXI1LmEKLQkgZmZtcGVnLWRldmVsOmxpYmF2ZmlsdGVyLnNv Oi91c3IvbGliL2xpYmF2ZmlsdGVyNS5zbwotCSBmZm1wZWctZGV2ZWw6bGliYXZmb3JtYXQuYTov dXNyL2xpYi9saWJhdmZvcm1hdDUuYQotCSBmZm1wZWctZGV2ZWw6bGliYXZmb3JtYXQuc286L3Vz ci9saWIvbGliYXZmb3JtYXQ1LnNvCi0JIGZmbXBlZy1kZXZlbDpsaWJhdnV0aWwuYTovdXNyL2xp Yi9saWJhdnV0aWw1LmEKLQkgZmZtcGVnLWRldmVsOmxpYmF2dXRpbC5zbzovdXNyL2xpYi9saWJh dnV0aWw1LnNvCi0JIGZmbXBlZy1kZXZlbDpsaWJwb3N0cHJvYy5hOi91c3IvbGliL2xpYnBvc3Rw cm9jNS5hCi0JIGZmbXBlZy1kZXZlbDpsaWJwb3N0cHJvYy5zbzovdXNyL2xpYi9saWJwb3N0cHJv YzUuc28KLQkgZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1wbGUuYTovdXNyL2xpYi9saWJzd3Jlc2Ft cGxlNS5hCi0JIGZmbXBlZy1kZXZlbDpsaWJzd3Jlc2FtcGxlLnNvOi91c3IvbGliL2xpYnN3cmVz YW1wbGU1LnNvCi0JIGZmbXBlZy1kZXZlbDpsaWJzd3NjYWxlLmE6L3Vzci9saWIvbGlic3dzY2Fs ZTUuYQotCSBmZm1wZWctZGV2ZWw6bGlic3dzY2FsZS5zbzovdXNyL2xpYi9saWJzd3NjYWxlNS5z bwotCSBmZm1wZWctZGV2ZWw6ZmZtcGVnOi91c3Ivc2hhcmUvZmZtcGVnNQotCSIKKwljb25mbGlj dHM9ImZmbXBlZzQtZGV2ZWwiCiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRl CiAJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCkBAIC0yMzEsNyArMjA5LDcgQEAgZmZtcGVnLWRl dmVsX3BhY2thZ2UoKSB7CiAJfQogfQogZmZwbGF5X3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYz0i U2ltcGxlIG1lZGlhIHBsYXllciB1c2luZyBGRm1wZWcgYW5kIFNETDIiCisJc2hvcnRfZGVzYz0i U2ltcGxlIHZpZGVvIHBsYXllciB1c2luZyBGRm1wZWcgYW5kIFNETDIiCiAJcGtnX2luc3RhbGwo KSB7CiAJCXZtb3ZlIHVzci9iaW4vZmZwbGF5CiAJCXZtb3ZlICJ1c3Ivc2hhcmUvbWFuL21hbjEv ZmZwbGF5KiIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmZtcGVnNC90ZW1wbGF0ZSBiL3NyY3BrZ3Mv ZmZtcGVnNC90ZW1wbGF0ZQppbmRleCBjZDkxNTQ5NzhiM2UuLjdiYzY0YmIzOWY0MSAxMDA2NDQK LS0tIGEvc3JjcGtncy9mZm1wZWc0L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZmZtcGVnNC90ZW1w bGF0ZQpAQCAtMiw4ICsyLDggQEAKICMgYXVkYWNpdHkgYWxzbyBuZWVkcyB0byBiZSBidW1wZWQg d2hlbiBhIG5ldyBmZm1wZWcgdmVyc2lvbiBidW1wcyBsaWJhdmZvcm1hdCdzIHNvbmFtZSEKIHBr Z25hbWU9ZmZtcGVnNAogdmVyc2lvbj00LjQuMwotcmV2aXNpb249Mwotc2hvcnRfZGVzYz0iZmZt cGVnNCBsaWJyYXJpZXMgb25seSAtIERlY29kaW5nLCBlbmNvZGluZyBhbmQgc3RyZWFtaW5nIHNv ZnR3YXJlIgorcmV2aXNpb249MQorc2hvcnRfZGVzYz0iRGVjb2RpbmcsIGVuY29kaW5nIGFuZCBz dHJlYW1pbmcgc29mdHdhcmUgLSBmZm1wZWc0IGxpYnJhcmllcyBvbmx5IgogbWFpbnRhaW5lcj0i T3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cuZmZtcGVnLm9yZyIKQEAgLTIwMiw0NyArMjAyLDcg QEAgZmZtcGVnNC1kZXZlbF9wYWNrYWdlKCkgewogCQlsaWJzd3Jlc2FtcGxlND49JHt2ZXJzaW9u fV8ke3JldmlzaW9ufQogCQlsaWJhdnJlc2FtcGxlND49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIK IAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCi0JYWx0ZXJuYXRpdmVzPSIKLQkJ ZmZtcGVnLWRldmVsOmxpYmF2Y29kZWMuMzovdXNyL3NoYXJlL21hbi9tYW4zL2xpYmF2Y29kZWM0 LjMKLQkJZmZtcGVnLWRldmVsOmxpYmF2ZGV2aWNlLjM6L3Vzci9zaGFyZS9tYW4vbWFuMy9saWJh dmRldmljZTQuMwotCQlmZm1wZWctZGV2ZWw6bGliYXZmaWx0ZXIuMzovdXNyL3NoYXJlL21hbi9t YW4zL2xpYmF2ZmlsdGVyNC4zCi0JCWZmbXBlZy1kZXZlbDpsaWJsaWJhdmZvcm1hdC4zOi91c3Iv c2hhcmUvbWFuL21hbjMvbGliYXZmb3JtYXQ0LjMKLQkJZmZtcGVnLWRldmVsOmxpYmF2dXRpbC4z Oi91c3Ivc2hhcmUvbWFuL21hbjMvbGliYXZ1dGlsNC4zCi0JCWZmbXBlZy1kZXZlbDpsaWJzd3Jl c2FtcGxlLjM6L3Vzci9zaGFyZS9tYW4vbWFuMy9saWJzd3Jlc2FtcGxlNC4zCi0JCWZmbXBlZy1k ZXZlbDpsaWJzd3NjYWxlLjM6L3Vzci9zaGFyZS9tYW4vbWFuMy9saWJzd3NjYWxlNC4zCi0JCWZm bXBlZy1kZXZlbDpsaWJhdmNvZGVjOi91c3IvaW5jbHVkZS9saWJhdmNvZGVjNAotCQlmZm1wZWct ZGV2ZWw6bGliYXZkZXZpY2U6L3Vzci9pbmNsdWRlL2xpYmF2ZGV2aWNlNAotCQlmZm1wZWctZGV2 ZWw6bGliYXZmb3JtYXQ6L3Vzci9pbmNsdWRlL2xpYmF2Zm9ybWF0NAotCQlmZm1wZWctZGV2ZWw6 bGliYXZ1dGlsOi91c3IvaW5jbHVkZS9saWJhdnV0aWw0Ci0JCWZmbXBlZy1kZXZlbDpsaWJhdnBv c3Rwcm9jOi91c3IvaW5jbHVkZS9saWJhdnBvc3Rwcm9jNAotCQlmZm1wZWctZGV2ZWw6bGlic3dy ZXNhbXBsZTovdXNyL2luY2x1ZGUvbGlic3dyZXNhbXBsZTQKLQkJZmZtcGVnLWRldmVsOmxpYnN3 Y2FhbGU6L3Vzci9pbmNsdWRlL2xpYnN3c2NhbGU0Ci0JCWZmbXBlZy1kZXZlbDpsaWJhdmNvZGVj LnBjOi91c3IvbGliL3BrZ2NvbmZpZy9saWJhdmNvZGVjNC5wYwotCQlmZm1wZWctZGV2ZWw6bGli YXZkZXZpY2UucGM6L3Vzci9saWIvcGtnY29uZmlnL2xpYmF2ZGV2aWNlNC5wYwotCQlmZm1wZWct ZGV2ZWw6bGliYXZmaWx0ZXIucGM6L3Vzci9saWIvcGtnY29uZmlnL2xpYmF2ZmlsdGVyNC5wYwot CQlmZm1wZWctZGV2ZWw6bGliYXZmb3JtYXQucGM6L3Vzci9saWIvcGtnY29uZmlnL2xpYmF2Zm9y bWF0NC5wYwotCQlmZm1wZWctZGV2ZWw6bGliYXZ1dGlsLnBjOi91c3IvbGliL3BrZ2NvbmZpZy9s aWJhdnV0aWw0LnBjCi0JCWZmbXBlZy1kZXZlbDpsaWJwb3N0cHJvYy5wYzovdXNyL2xpYi9wa2dj b25maWcvbGlicG9zdHByb2M0LnBjCi0JCWZmbXBlZy1kZXZlbDpsaWJzd3Jlc2FtcGxlLnBjOi91 c3IvbGliL3BrZ2NvbmZpZy9saWJzd3Jlc2FtcGxlNC5wYwotCQlmZm1wZWctZGV2ZWw6bGlic3dz Y2FsZS5wYzovdXNyL2xpYi9wa2djb25maWcvbGlic3dzY2FsZTQucGMKLQkJZmZtcGVnLWRldmVs OmxpYmF2Y29kZWMuYTovdXNyL2xpYi9saWJhdmNvZGVjNC5hCi0JCWZmbXBlZy1kZXZlbDpsaWJh dmNvZGVjLnNvOi91c3IvbGliL2xpYmF2Y29kZWM0LnNvCi0JCWZmbXBlZy1kZXZlbDpsaWJhdmRl dmljZS5hOi91c3IvbGliL2xpYmF2ZGV2aWNlNC5hCi0JCWZmbXBlZy1kZXZlbDpsaWJhdmRldmlj ZS5zbzovdXNyL2xpYi9saWJhdmRldmljZTQuc28KLQkJZmZtcGVnLWRldmVsOmxpYmF2ZmlsdGVy LmE6L3Vzci9saWIvbGliYXZmaWx0ZXI0LmEKLQkJZmZtcGVnLWRldmVsOmxpYmF2ZmlsdGVyLnNv Oi91c3IvbGliL2xpYmF2ZmlsdGVyNC5zbwotCQlmZm1wZWctZGV2ZWw6bGliYXZmb3JtYXQuYTov dXNyL2xpYi9saWJhdmZvcm1hdDQuYQotCQlmZm1wZWctZGV2ZWw6bGliYXZmb3JtYXQuc286L3Vz ci9saWIvbGliYXZmb3JtYXQ0LnNvCi0JCWZmbXBlZy1kZXZlbDpsaWJhdnV0aWwuYTovdXNyL2xp Yi9saWJhdnV0aWw0LmEKLQkJZmZtcGVnLWRldmVsOmxpYmF2dXRpbC5zbzovdXNyL2xpYi9saWJh dnV0aWw0LnNvCi0JCWZmbXBlZy1kZXZlbDpsaWJwb3N0cHJvYy5hOi91c3IvbGliL2xpYnBvc3Rw cm9jNC5hCi0JCWZmbXBlZy1kZXZlbDpsaWJwb3N0cHJvYy5zbzovdXNyL2xpYi9saWJwb3N0cHJv YzQuc28KLQkJZmZtcGVnLWRldmVsOmxpYnN3cmVzYW1wbGUuYTovdXNyL2xpYi9saWJzd3Jlc2Ft cGxlNC5hCi0JCWZmbXBlZy1kZXZlbDpsaWJzd3Jlc2FtcGxlLnNvOi91c3IvbGliL2xpYnN3cmVz YW1wbGU0LnNvCi0JCWZmbXBlZy1kZXZlbDpsaWJzd3NjYWxlLmE6L3Vzci9saWIvbGlic3dzY2Fs ZTQuYQotCQlmZm1wZWctZGV2ZWw6bGlic3dzY2FsZS5zbzovdXNyL2xpYi9saWJzd3NjYWxlNC5z bwotCQlmZm1wZWctZGV2ZWw6ZmZtcGVnOi91c3Ivc2hhcmUvZmZtcGVnNAotCSIKKwljb25mbGlj dHM9ImZmbXBlZy1kZXZlbCIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUK IAkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmZtcGVndGh1 bWJuYWlsZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2ZmbXBlZ3RodW1ibmFpbGVyL3RlbXBsYXRlCmlu ZGV4IDAzOWVlYTc2MjJiMy4uMzVkNTQ2MDE4ZDEyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZmbXBl Z3RodW1ibmFpbGVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZmZtcGVndGh1bWJuYWlsZXIvdGVt cGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdmZm1wZWd0aHVtYm5h aWxlcicKIHBrZ25hbWU9ZmZtcGVndGh1bWJuYWlsZXIKIHZlcnNpb249Mi4yLjIKLXJldmlzaW9u PTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBob3N0bWFrZWRlcGVuZHM9InBrZy1j b25maWciCiBtYWtlZGVwZW5kcz0ibGlicG5nLWRldmVsIGxpYmpwZWctdHVyYm8tZGV2ZWwgZmZt cGVnLWRldmVsIgpAQCAtOSw4ICs5LDggQEAgZGVwZW5kcz0iZmZtcGVnIgogc2hvcnRfZGVzYz0i TGlnaHR3ZWlnaHQgdmlkZW8gdGh1bWJuYWlsZXIiCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3Jw aGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKLWhvbWVwYWdl PSJodHRwczovL2dpdGh1Yi5jb20vZGlya3ZkYi8ke3BrZ25hbWV9IgotZGlzdGZpbGVzPSIke2hv bWVwYWdlfS9yZWxlYXNlcy9kb3dubG9hZC8ke3ZlcnNpb259LyR7cGtnbmFtZX0tJHt2ZXJzaW9u fS50YXIuYnoyIgoraG9tZXBhZ2U9Imh0dHBzOi8vZ2l0aHViLmNvbS9kaXJrdmRiIgorZGlzdGZp bGVzPSIke2hvbWVwYWdlfS8ke3BrZ25hbWV9L3JlbGVhc2VzL2Rvd25sb2FkLyR7dmVyc2lvbn0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci5iejIiCiBjaGVja3N1bT0xY2IyNDA1OWMzODIyM2Y2 NTdiMzAwYzg0ZGQ4MDQ5MWI3MDQwZDRiNjk0NzFjNGZlYTY5YmU4NjJiYzk5YjViCiAKIHBvc3Rf aW5zdGFsbCgpIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmZtcGVndGh1bWJzL3RlbXBsYXRlIGIv c3JjcGtncy9mZm1wZWd0aHVtYnMvdGVtcGxhdGUKaW5kZXggNWYwYjk0MTRkYWRhLi4xMWI4ODE5 MzUyOGYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZmZtcGVndGh1bWJzL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvZmZtcGVndGh1bWJzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZmZtcGVndGh1bWJzJwogcGtnbmFtZT1mZm1wZWd0aHVtYnMKIHZlcnNpb249MjIu MTIuMQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtl ZGVwZW5kcz0iZXh0cmEtY21ha2UtbW9kdWxlcyBrY29yZWFkZG9ucyBrY29uZmlnLWRldmVsCiAg cGtnLWNvbmZpZyBxdDUtaG9zdC10b29scyBxdDUtcW1ha2UgZ2V0dGV4dCIKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZmZtczIvcGF0Y2hlcy9mZm1wZWc1LnBhdGNoIGIvc3JjcGtncy9mZm1zMi9wYXRj aGVzL2ZmbXBlZzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li4wNzY2ZGIxNzI0NzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2ZmbXMyL3BhdGNoZXMv ZmZtcGVnNS5wYXRjaApAQCAtMCwwICsxLDQxOSBAQAorRnJvbSAyOGZjNDkzZmRhMmZhMjA2NGFm ZWViMGE1ZDg1ZmRjNDJkYjA1ZGNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGVy ZWsgQnVpdGVuaHVpcyA8ZGVyZWsuYnVpdGVuaHVpc0BnbWFpbC5jb20+CitEYXRlOiBUdWUsIDQg TWF5IDIwMjEgMTQ6MTI6NDEgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAxLzNdIGFsbDogVXBkYXRl IEFWUGFja2V0IEFQSSB1c2FnZQorCitBVlBhY2tldHMgbXVzdCBhbGwgYmUgb24gdGhlIGhlYXAg bm93LCBzaW5jZSBpdCBpcyBubyBsb25nZXIKK3BhcnQgb2YgdGhlIGxpYmF2KiBBQkkuCisKK1Np Z25lZC1vZmYtYnk6IERlcmVrIEJ1aXRlbmh1aXMgPGRlcmVrLmJ1aXRlbmh1aXNAZ21haWwuY29t PgorLS0tCisgc3JjL2NvcmUvYXVkaW9zb3VyY2UuY3BwIHwgMTYgKysrKysrLS0tLQorIHNyYy9j b3JlL2luZGV4aW5nLmNwcCAgICB8IDYzICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0KKyBzcmMvY29yZS9pbmRleGluZy5oICAgICAgfCAgNCArLS0KKyBzcmMvY29yZS91 dGlscy5jcHAgICAgICAgfCAgNiAtLS0tCisgc3JjL2NvcmUvdXRpbHMuaCAgICAgICAgIHwgIDEg LQorIHNyYy9jb3JlL3ZpZGVvc291cmNlLmNwcCB8IDMwICsrKysrKysrKystLS0tLS0tLS0KKyA2 IGZpbGVzIGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQorCitkaWZm IC0tZ2l0IGEvc3JjL2NvcmUvYXVkaW9zb3VyY2UuY3BwIGIvc3JjL2NvcmUvYXVkaW9zb3VyY2Uu Y3BwCitpbmRleCAzN2NmOWFlZWYuLmU0Y2U5N2NkYiAxMDA2NDQKKy0tLSBhL3NyYy9jb3JlL2F1 ZGlvc291cmNlLmNwcAorKysrIGIvc3JjL2NvcmUvYXVkaW9zb3VyY2UuY3BwCitAQCAtMjg1LDEw ICsyODUsMTUgQEAgRkZNU19BdWRpb1NvdXJjZTo6QXVkaW9CbG9jayAqRkZNU19BdWRpb1NvdXJj ZTo6Q2FjaGVCbG9jayhDYWNoZUl0ZXJhdG9yICZwb3MpIHsKKyBpbnQgRkZNU19BdWRpb1NvdXJj ZTo6RGVjb2RlTmV4dEJsb2NrKENhY2hlSXRlcmF0b3IgKnBvcykgeworICAgICBDdXJyZW50RnJh bWUgPSAmRnJhbWVzW1BhY2tldE51bWJlcl07CisKKy0gICAgQVZQYWNrZXQgUGFja2V0OworLSAg ICBpZiAoIVJlYWRQYWNrZXQoJlBhY2tldCkpCisrICAgIEFWUGFja2V0ICpQYWNrZXQgPSBhdl9w YWNrZXRfYWxsb2MoKTsKKysgICAgaWYgKCFQYWNrZXQpCisrICAgICAgICB0aHJvdyBGRk1TX0V4 Y2VwdGlvbihGRk1TX0VSUk9SX1BBUlNFUiwgRkZNU19FUlJPUl9BTExPQ0FUSU9OX0ZBSUxFRCwK KysgICAgICAgICAgICAiQ291bGQgbm90IGFsbG9jYXRlIHBhY2tldC4iKTsKKysgICAgaWYgKCFS ZWFkUGFja2V0KFBhY2tldCkpIHsKKysgICAgICAgIGF2X3BhY2tldF9mcmVlKCZQYWNrZXQpOwor ICAgICAgICAgdGhyb3cgRkZNU19FeGNlcHRpb24oRkZNU19FUlJPUl9QQVJTRVIsIEZGTVNfRVJS T1JfVU5LTk9XTiwKKyAgICAgICAgICAgICAiUmVhZFBhY2tldCB1bmV4cGVjdGVkbHkgZmFpbGVk IHRvIHJlYWQgYSBwYWNrZXQiKTsKKysgICAgfQorCisgICAgIC8vIFJlYWRQYWNrZXQgbWF5IGhh dmUgY2hhbmdlZCB0aGUgcGFja2V0IG51bWJlcgorICAgICBDdXJyZW50RnJhbWUgPSAmRnJhbWVz W1BhY2tldE51bWJlcl07CitAQCAtMjk3LDggKzMwMiw5IEBAIGludCBGRk1TX0F1ZGlvU291cmNl OjpEZWNvZGVOZXh0QmxvY2soQ2FjaGVJdGVyYXRvciAqcG9zKSB7CisgICAgIGludCBOdW1iZXJP ZlNhbXBsZXMgPSAwOworICAgICBBdWRpb0Jsb2NrICpDYWNoZWRCbG9jayA9IG51bGxwdHI7CisK Ky0gICAgaW50IFJldCA9IGF2Y29kZWNfc2VuZF9wYWNrZXQoQ29kZWNDb250ZXh0LCAmUGFja2V0 KTsKKy0gICAgYXZfcGFja2V0X3VucmVmKCZQYWNrZXQpOworKyAgICBpbnQgUmV0ID0gYXZjb2Rl Y19zZW5kX3BhY2tldChDb2RlY0NvbnRleHQsIFBhY2tldCk7CisrICAgIGF2X3BhY2tldF91bnJl ZihQYWNrZXQpOworKyAgICBhdl9wYWNrZXRfZnJlZSgmUGFja2V0KTsKKworICAgICBhdl9mcmFt ZV91bnJlZihEZWNvZGVGcmFtZSk7CisgICAgIFJldCA9IGF2Y29kZWNfcmVjZWl2ZV9mcmFtZShD b2RlY0NvbnRleHQsIERlY29kZUZyYW1lKTsKK0BAIC01MTMsOCArNTE5LDYgQEAgdm9pZCBGRk1T X0F1ZGlvU291cmNlOjpTZWVrKCkgeworIH0KKworIGJvb2wgRkZNU19BdWRpb1NvdXJjZTo6UmVh ZFBhY2tldChBVlBhY2tldCAqUGFja2V0KSB7CistICAgIEluaXROdWxsUGFja2V0KCpQYWNrZXQp OworLQorICAgICB3aGlsZSAoYXZfcmVhZF9mcmFtZShGb3JtYXRDb250ZXh0LCBQYWNrZXQpID49 IDApIHsKKyAgICAgICAgIGlmIChQYWNrZXQtPnN0cmVhbV9pbmRleCA9PSBUcmFja051bWJlcikg eworICAgICAgICAgICAgIC8vIFJlcXVpcmVkIGJlY2F1c2Ugbm90IGFsbCBhdWRpbyBwYWNrZXRz LCBlc3BlY2lhbGx5IGluIG9nZywgaGF2ZSBhIHB0cy4gVXNlIHRoZSBwcmV2aW91cyB2YWxpZCBw YWNrZXQncyBwdHMgaW5zdGVhZC4KK2RpZmYgLS1naXQgYS9zcmMvY29yZS9pbmRleGluZy5jcHAg Yi9zcmMvY29yZS9pbmRleGluZy5jcHAKK2luZGV4IDIzZmI5NWIxMi4uZTU0N2M1YWJmIDEwMDY0 NAorLS0tIGEvc3JjL2NvcmUvaW5kZXhpbmcuY3BwCisrKysgYi9zcmMvY29yZS9pbmRleGluZy5j cHAKK0BAIC0zMjAsNyArMzIwLDcgQEAgdm9pZCBGRk1TX0luZGV4ZXI6OkNoZWNrQXVkaW9Qcm9w ZXJ0aWVzKGludCBUcmFjaywgQVZDb2RlY0NvbnRleHQgKkNvbnRleHQpIHsKKyAgICAgfQorIH0K KworLXZvaWQgRkZNU19JbmRleGVyOjpQYXJzZVZpZGVvUGFja2V0KFNoYXJlZEFWQ29udGV4dCAm VmlkZW9Db250ZXh0LCBBVlBhY2tldCAmcGt0LCBpbnQgKlJlcGVhdFBpY3QsCisrdm9pZCBGRk1T X0luZGV4ZXI6OlBhcnNlVmlkZW9QYWNrZXQoU2hhcmVkQVZDb250ZXh0ICZWaWRlb0NvbnRleHQs IEFWUGFja2V0ICpwa3QsIGludCAqUmVwZWF0UGljdCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQgKkZyYW1lVHlwZSwgYm9vbCAqSW52aXNpYmxlLCBlbnVtIEFWUGlj dHVyZVN0cnVjdHVyZSAqTGFzdFBpY1N0cnVjdCkgeworICAgICBpZiAoVmlkZW9Db250ZXh0LlBh cnNlcikgeworICAgICAgICAgdWludDhfdCAqT0I7CitAQCAtMzMwLDggKzMzMCw4IEBAIHZvaWQg RkZNU19JbmRleGVyOjpQYXJzZVZpZGVvUGFja2V0KFNoYXJlZEFWQ29udGV4dCAmVmlkZW9Db250 ZXh0LCBBVlBhY2tldCAmcGt0CisgICAgICAgICBhdl9wYXJzZXJfcGFyc2UyKFZpZGVvQ29udGV4 dC5QYXJzZXIsCisgICAgICAgICAgICAgVmlkZW9Db250ZXh0LkNvZGVjQ29udGV4dCwKKyAgICAg ICAgICAgICAmT0IsICZPQlNpemUsCistICAgICAgICAgICAgcGt0LmRhdGEsIHBrdC5zaXplLAor LSAgICAgICAgICAgIHBrdC5wdHMsIHBrdC5kdHMsIHBrdC5wb3MpOworKyAgICAgICAgICAgIHBr dC0+ZGF0YSwgcGt0LT5zaXplLAorKyAgICAgICAgICAgIHBrdC0+cHRzLCBwa3QtPmR0cywgcGt0 LT5wb3MpOworCisgICAgICAgICAvLyBILjI2NCAoUEFGRikgYW5kIEhFVkMgbWF5IGhhdmUgb25l IGZpZWxkIHBlciBwYWNrZXQsIHNvIHdlIG5lZWQgdG8gdHJhY2sKKyAgICAgICAgIC8vIHdoZW4g d2UgaGF2ZSBhIGZ1bGwgb3IgaGFsZiBmcmFtZSBhdmFpbGFibGUsIGFuZCBtYXJrIG9uZSBvZiB0 aGVtIGFzCitAQCAtMzUxLDE1ICszNTEsMTUgQEAgdm9pZCBGRk1TX0luZGV4ZXI6OlBhcnNlVmlk ZW9QYWNrZXQoU2hhcmVkQVZDb250ZXh0ICZWaWRlb0NvbnRleHQsIEFWUGFja2V0ICZwa3QKKwor ICAgICAgICAgKlJlcGVhdFBpY3QgPSBWaWRlb0NvbnRleHQuUGFyc2VyLT5yZXBlYXRfcGljdDsK KyAgICAgICAgICpGcmFtZVR5cGUgPSBWaWRlb0NvbnRleHQuUGFyc2VyLT5waWN0X3R5cGU7Cist ICAgICAgICAqSW52aXNpYmxlID0gKEluY29tcGxldGVGcmFtZSB8fCBWaWRlb0NvbnRleHQuUGFy c2VyLT5yZXBlYXRfcGljdCA8IDAgfHwgKHBrdC5mbGFncyAmIEFWX1BLVF9GTEFHX0RJU0NBUkQp KTsKKysgICAgICAgICpJbnZpc2libGUgPSAoSW5jb21wbGV0ZUZyYW1lIHx8IFZpZGVvQ29udGV4 dC5QYXJzZXItPnJlcGVhdF9waWN0IDwgMCB8fCAocGt0LT5mbGFncyAmIEFWX1BLVF9GTEFHX0RJ U0NBUkQpKTsKKyAgICAgfSBlbHNlIHsKKy0gICAgICAgICpJbnZpc2libGUgPSAhIShwa3QuZmxh Z3MgJiBBVl9QS1RfRkxBR19ESVNDQVJEKTsKKysgICAgICAgICpJbnZpc2libGUgPSAhIShwa3Qt PmZsYWdzICYgQVZfUEtUX0ZMQUdfRElTQ0FSRCk7CisgICAgIH0KKworICAgICBpZiAoVmlkZW9D b250ZXh0LkNvZGVjQ29udGV4dC0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfVlA4KQorLSAgICAg ICAgUGFyc2VWUDgocGt0LmRhdGFbMF0sIEludmlzaWJsZSwgRnJhbWVUeXBlKTsKKysgICAgICAg IFBhcnNlVlA4KHBrdC0+ZGF0YVswXSwgSW52aXNpYmxlLCBGcmFtZVR5cGUpOworICAgICBlbHNl IGlmIChWaWRlb0NvbnRleHQuQ29kZWNDb250ZXh0LT5jb2RlY19pZCA9PSBBVl9DT0RFQ19JRF9W UDkpCistICAgICAgICBQYXJzZVZQOShwa3QuZGF0YVswXSwgSW52aXNpYmxlLCBGcmFtZVR5cGUp OworKyAgICAgICAgUGFyc2VWUDkocGt0LT5kYXRhWzBdLCBJbnZpc2libGUsIEZyYW1lVHlwZSk7 CisgfQorCisgdm9pZCBGRk1TX0luZGV4ZXI6OkZyZWUoKSB7CitAQCAtNDU4LDMyICs0NTgsMzYg QEAgRkZNU19JbmRleCAqRkZNU19JbmRleGVyOjpEb0luZGV4aW5nKCkgeworICAgICAgICAgfQor ICAgICB9CisKKy0gICAgQVZQYWNrZXQgUGFja2V0OworLSAgICBJbml0TnVsbFBhY2tldChQYWNr ZXQpOworKyAgICBBVlBhY2tldCAqUGFja2V0ID0gYXZfcGFja2V0X2FsbG9jKCk7CisrICAgIGlm ICghUGFja2V0KQorKyAgICAgICAgdGhyb3cgRkZNU19FeGNlcHRpb24oRkZNU19FUlJPUl9DT0RF QywgRkZNU19FUlJPUl9BTExPQ0FUSU9OX0ZBSUxFRCwKKysgICAgICAgICAgICAiQ291bGQgbm90 IGFsbG9jYXRlIHBhY2tldC4iKTsKKyAgICAgc3RkOjp2ZWN0b3I8aW50NjRfdD4gTGFzdFZhbGlk VFMoRm9ybWF0Q29udGV4dC0+bmJfc3RyZWFtcywgQVZfTk9QVFNfVkFMVUUpOworCisgICAgIGlu dDY0X3QgZmlsZXNpemUgPSBhdmlvX3NpemUoRm9ybWF0Q29udGV4dC0+cGIpOworICAgICBlbnVt IEFWUGljdHVyZVN0cnVjdHVyZSBMYXN0UGljU3RydWN0ID0gQVZfUElDVFVSRV9TVFJVQ1RVUkVf VU5LTk9XTjsKKy0gICAgd2hpbGUgKGF2X3JlYWRfZnJhbWUoRm9ybWF0Q29udGV4dCwgJlBhY2tl dCkgPj0gMCkgeworKyAgICB3aGlsZSAoYXZfcmVhZF9mcmFtZShGb3JtYXRDb250ZXh0LCBQYWNr ZXQpID49IDApIHsKKyAgICAgICAgIC8vIFVwZGF0ZSBwcm9ncmVzcworICAgICAgICAgLy8gRm9y bWF0Q29udGV4dC0+cGIgY2FuIGFwcGFyZW50bHkgYmUgTlVMTCB3aGVuIG9wZW5pbmcgaW1hZ2Vz LgorICAgICAgICAgaWYgKElDICYmIEZvcm1hdENvbnRleHQtPnBiKSB7CistICAgICAgICAgICAg aWYgKCgqSUMpKEZvcm1hdENvbnRleHQtPnBiLT5wb3MsIGZpbGVzaXplLCBJQ1ByaXZhdGUpKQor KyAgICAgICAgICAgIGlmICgoKklDKShGb3JtYXRDb250ZXh0LT5wYi0+cG9zLCBmaWxlc2l6ZSwg SUNQcml2YXRlKSkgeworKyAgICAgICAgICAgICAgICBhdl9wYWNrZXRfZnJlZSgmUGFja2V0KTsK KyAgICAgICAgICAgICAgICAgdGhyb3cgRkZNU19FeGNlcHRpb24oRkZNU19FUlJPUl9DQU5DRUxM RUQsIEZGTVNfRVJST1JfVVNFUiwKKyAgICAgICAgICAgICAgICAgICAgICJDYW5jZWxsZWQgYnkg dXNlciIpOworKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKy0gICAgICAgIGlmICghSW5kZXhN YXNrLmNvdW50KFBhY2tldC5zdHJlYW1faW5kZXgpKSB7CistICAgICAgICAgICAgYXZfcGFja2V0 X3VucmVmKCZQYWNrZXQpOworKyAgICAgICAgaWYgKCFJbmRleE1hc2suY291bnQoUGFja2V0LT5z dHJlYW1faW5kZXgpKSB7CisrICAgICAgICAgICAgYXZfcGFja2V0X3VucmVmKFBhY2tldCk7Cisg ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICB9CisKKy0gICAgICAgIGludCBUcmFjayA9 IFBhY2tldC5zdHJlYW1faW5kZXg7CisrICAgICAgICBpbnQgVHJhY2sgPSBQYWNrZXQtPnN0cmVh bV9pbmRleDsKKyAgICAgICAgIEZGTVNfVHJhY2sgJlRyYWNrSW5mbyA9ICgqVHJhY2tJbmRpY2Vz KVtUcmFja107CistICAgICAgICBib29sIEtleUZyYW1lID0gISEoUGFja2V0LmZsYWdzICYgQVZf UEtUX0ZMQUdfS0VZKTsKKysgICAgICAgIGJvb2wgS2V5RnJhbWUgPSAhIShQYWNrZXQtPmZsYWdz ICYgQVZfUEtUX0ZMQUdfS0VZKTsKKyAgICAgICAgIFJlYWRUUyhQYWNrZXQsIExhc3RWYWxpZFRT W1RyYWNrXSwgKCpUcmFja0luZGljZXMpW1RyYWNrXS5Vc2VEVFMpOworCisgICAgICAgICBpZiAo Rm9ybWF0Q29udGV4dC0+c3RyZWFtc1tUcmFja10tPmNvZGVjcGFyLT5jb2RlY190eXBlID09IEFW TUVESUFfVFlQRV9WSURFTykgeworLSAgICAgICAgICAgIGludDY0X3QgUFRTID0gVHJhY2tJbmZv LlVzZURUUyA/IFBhY2tldC5kdHMgOiBQYWNrZXQucHRzOworKyAgICAgICAgICAgIGludDY0X3Qg UFRTID0gVHJhY2tJbmZvLlVzZURUUyA/IFBhY2tldC0+ZHRzIDogUGFja2V0LT5wdHM7CisgICAg ICAgICAgICAgaWYgKFBUUyA9PSBBVl9OT1BUU19WQUxVRSkgeworICAgICAgICAgICAgICAgICAv LyBWUHggYWx0LXJlZnMgYXJlIG91dHB1dCBhcyBwYWNrZXRzIHdoaWNoIGxhY2sgdGltZXN0bXBz IG9yIGR1cmF0aW9ucywgc2luY2UKKyAgICAgICAgICAgICAgICAgLy8gdGhleSBhcmUgaW52aXNp YmxlLiBDdXJyZW50bHksIHRoZSB0aW1lc3RhbXAgbWFuZ2xpbmcgY29kZSBpbiBsaWJhdmZvcm1h dAorQEAgLTQ5NSw5ICs0OTksMTEgQEAgRkZNU19JbmRleCAqRkZNU19JbmRleGVyOjpEb0luZGV4 aW5nKCkgeworICAgICAgICAgICAgICAgICAvLyBGRk1TMiBjdXJyZW50bHkgc29ydHMgcGFja2V0 cyBieSBQVFMsIHdoaWNoIHdpbGwgYnJlYWsgZGVjb2RpbmcsIG90aGVyd2lzZS4KKyAgICAgICAg ICAgICAgICAgYm9vbCBIYXNBbHRSZWZzID0gKEZvcm1hdENvbnRleHQtPnN0cmVhbXNbVHJhY2td LT5jb2RlY3Bhci0+Y29kZWNfaWQgPT0gQVZfQ09ERUNfSURfVlA4IHx8CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBGb3JtYXRDb250ZXh0LT5zdHJlYW1zW1RyYWNrXS0+Y29k ZWNwYXItPmNvZGVjX2lkID09IEFWX0NPREVDX0lEX1ZQOSk7CistICAgICAgICAgICAgICAgIGlm IChQYWNrZXQuZHVyYXRpb24gPT0gMCAmJiAhSGFzQWx0UmVmcykKKysgICAgICAgICAgICAgICAg aWYgKFBhY2tldC0+ZHVyYXRpb24gPT0gMCAmJiAhSGFzQWx0UmVmcykgeworKyAgICAgICAgICAg ICAgICAgICAgYXZfcGFja2V0X2ZyZWUoJlBhY2tldCk7CisgICAgICAgICAgICAgICAgICAgICB0 aHJvdyBGRk1TX0V4Y2VwdGlvbihGRk1TX0VSUk9SX0lOREVYSU5HLCBGRk1TX0VSUk9SX1BBUlNF UiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiSW52YWxpZCBwYWNrZXQgcHRzLCBkdHMsIGFu ZCBkdXJhdGlvbiIpOworKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgaWYg KFRyYWNrSW5mby5lbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICAgUFRTID0gMDsKK0BAIC01 MTMsNyArNTE5LDcgQEAgRkZNU19JbmRleCAqRkZNU19JbmRleGVyOjpEb0luZGV4aW5nKCkgewor ICAgICAgICAgICAgIFBhcnNlVmlkZW9QYWNrZXQoQVZDb250ZXh0c1tUcmFja10sIFBhY2tldCwg JlJlcGVhdFBpY3QsICZGcmFtZVR5cGUsICZJbnZpc2libGUsICZMYXN0UGljU3RydWN0KTsKKwor ICAgICAgICAgICAgIFRyYWNrSW5mby5BZGRWaWRlb0ZyYW1lKFBUUywgUmVwZWF0UGljdCwgS2V5 RnJhbWUsCistICAgICAgICAgICAgICAgIEZyYW1lVHlwZSwgUGFja2V0LnBvcywgSW52aXNpYmxl KTsKKysgICAgICAgICAgICAgICAgRnJhbWVUeXBlLCBQYWNrZXQtPnBvcywgSW52aXNpYmxlKTsK KyAgICAgICAgIH0gZWxzZSBpZiAoRm9ybWF0Q29udGV4dC0+c3RyZWFtc1tUcmFja10tPmNvZGVj cGFyLT5jb2RlY190eXBlID09IEFWTUVESUFfVFlQRV9BVURJTykgeworICAgICAgICAgICAgIC8v IEZvciB2aWRlbyBzZWVraW5nIHRpbWVzdGFtcHMgYXJlIHVzZWQgb25seSBpZiBhbGwgcGFja2V0 cyBoYXZlCisgICAgICAgICAgICAgLy8gdGltZXN0YW1wcywgd2hpbGUgZm9yIGF1ZGlvIHRoZXkn cmUgdXNlZCBpZiBhbnkgaGF2ZSB0aW1lc3RhbXBzLAorQEAgLTUyMiwyOCArNTI4LDI5IEBAIEZG TVNfSW5kZXggKkZGTVNfSW5kZXhlcjo6RG9JbmRleGluZygpIHsKKyAgICAgICAgICAgICAgICAg VHJhY2tJbmZvLkhhc1RTID0gdHJ1ZTsKKworICAgICAgICAgICAgIGludDY0X3QgU3RhcnRTYW1w bGUgPSBBVkNvbnRleHRzW1RyYWNrXS5DdXJyZW50U2FtcGxlOworLSAgICAgICAgICAgIHVpbnQz Ml90IFNhbXBsZUNvdW50ID0gSW5kZXhBdWRpb1BhY2tldChUcmFjaywgJlBhY2tldCwgQVZDb250 ZXh0c1tUcmFja10sICpUcmFja0luZGljZXMpOworKyAgICAgICAgICAgIHVpbnQzMl90IFNhbXBs ZUNvdW50ID0gSW5kZXhBdWRpb1BhY2tldChUcmFjaywgUGFja2V0LCBBVkNvbnRleHRzW1RyYWNr XSwgKlRyYWNrSW5kaWNlcyk7CisgICAgICAgICAgICAgVHJhY2tJbmZvLlNhbXBsZVJhdGUgPSBB VkNvbnRleHRzW1RyYWNrXS5Db2RlY0NvbnRleHQtPnNhbXBsZV9yYXRlOworCisgICAgICAgICAg ICAgVHJhY2tJbmZvLkFkZEF1ZGlvRnJhbWUoTGFzdFZhbGlkVFNbVHJhY2tdLAorLSAgICAgICAg ICAgICAgICBTdGFydFNhbXBsZSwgU2FtcGxlQ291bnQsIEtleUZyYW1lLCBQYWNrZXQucG9zLCBQ YWNrZXQuZmxhZ3MgJiBBVl9QS1RfRkxBR19ESVNDQVJEKTsKKysgICAgICAgICAgICAgICAgU3Rh cnRTYW1wbGUsIFNhbXBsZUNvdW50LCBLZXlGcmFtZSwgUGFja2V0LT5wb3MsIFBhY2tldC0+Zmxh Z3MgJiBBVl9QS1RfRkxBR19ESVNDQVJEKTsKKyAgICAgICAgIH0KKworLSAgICAgICAgaWYgKCEo UGFja2V0LmZsYWdzICYgQVZfUEtUX0ZMQUdfRElTQ0FSRCkpCistICAgICAgICAgICAgVHJhY2tJ bmZvLkxhc3REdXJhdGlvbiA9IFBhY2tldC5kdXJhdGlvbjsKKysgICAgICAgIGlmICghKFBhY2tl dC0+ZmxhZ3MgJiBBVl9QS1RfRkxBR19ESVNDQVJEKSkKKysgICAgICAgICAgICBUcmFja0luZm8u TGFzdER1cmF0aW9uID0gUGFja2V0LT5kdXJhdGlvbjsKKworLSAgICAgICAgYXZfcGFja2V0X3Vu cmVmKCZQYWNrZXQpOworKyAgICAgICAgYXZfcGFja2V0X3VucmVmKFBhY2tldCk7CisgICAgIH0K KysgICAgYXZfcGFja2V0X2ZyZWUoJlBhY2tldCk7CisKKyAgICAgVHJhY2tJbmRpY2VzLT5GaW5h bGl6ZShBVkNvbnRleHRzLCBGb3JtYXRDb250ZXh0LT5pZm9ybWF0LT5uYW1lKTsKKyAgICAgcmV0 dXJuIFRyYWNrSW5kaWNlcy5yZWxlYXNlKCk7CisgfQorCistdm9pZCBGRk1TX0luZGV4ZXI6OlJl YWRUUyhjb25zdCBBVlBhY2tldCAmUGFja2V0LCBpbnQ2NF90ICZUUywgYm9vbCAmVXNlRFRTKSB7 CistICAgIGlmICghVXNlRFRTICYmIFBhY2tldC5wdHMgIT0gQVZfTk9QVFNfVkFMVUUpCistICAg ICAgICBUUyA9IFBhY2tldC5wdHM7Cisrdm9pZCBGRk1TX0luZGV4ZXI6OlJlYWRUUyhjb25zdCBB VlBhY2tldCAqUGFja2V0LCBpbnQ2NF90ICZUUywgYm9vbCAmVXNlRFRTKSB7CisrICAgIGlmICgh VXNlRFRTICYmIFBhY2tldC0+cHRzICE9IEFWX05PUFRTX1ZBTFVFKQorKyAgICAgICAgVFMgPSBQ YWNrZXQtPnB0czsKKyAgICAgaWYgKFRTID09IEFWX05PUFRTX1ZBTFVFKQorICAgICAgICAgVXNl RFRTID0gdHJ1ZTsKKy0gICAgaWYgKFVzZURUUyAmJiBQYWNrZXQuZHRzICE9IEFWX05PUFRTX1ZB TFVFKQorLSAgICAgICAgVFMgPSBQYWNrZXQuZHRzOworKyAgICBpZiAoVXNlRFRTICYmIFBhY2tl dC0+ZHRzICE9IEFWX05PUFRTX1ZBTFVFKQorKyAgICAgICAgVFMgPSBQYWNrZXQtPmR0czsKKyB9 CitkaWZmIC0tZ2l0IGEvc3JjL2NvcmUvaW5kZXhpbmcuaCBiL3NyYy9jb3JlL2luZGV4aW5nLmgK K2luZGV4IDNjZmMzYzMwYi4uNWMwNjg2ODg5IDEwMDY0NAorLS0tIGEvc3JjL2NvcmUvaW5kZXhp bmcuaAorKysrIGIvc3JjL2NvcmUvaW5kZXhpbmcuaAorQEAgLTgwLDEwICs4MCwxMCBAQCBzdHJ1 Y3QgRkZNU19JbmRleGVyIHsKKyAgICAgaW50NjRfdCBGaWxlc2l6ZTsKKyAgICAgdWludDhfdCBE aWdlc3RbMjBdOworCistICAgIHZvaWQgUmVhZFRTKGNvbnN0IEFWUGFja2V0ICZQYWNrZXQsIGlu dDY0X3QgJlRTLCBib29sICZVc2VEVFMpOworKyAgICB2b2lkIFJlYWRUUyhjb25zdCBBVlBhY2tl dCAqUGFja2V0LCBpbnQ2NF90ICZUUywgYm9vbCAmVXNlRFRTKTsKKyAgICAgdm9pZCBDaGVja0F1 ZGlvUHJvcGVydGllcyhpbnQgVHJhY2ssIEFWQ29kZWNDb250ZXh0ICpDb250ZXh0KTsKKyAgICAg dWludDMyX3QgSW5kZXhBdWRpb1BhY2tldChpbnQgVHJhY2ssIEFWUGFja2V0ICpQYWNrZXQsIFNo YXJlZEFWQ29udGV4dCAmQ29udGV4dCwgRkZNU19JbmRleCAmVHJhY2tJbmRpY2VzKTsKKy0gICAg dm9pZCBQYXJzZVZpZGVvUGFja2V0KFNoYXJlZEFWQ29udGV4dCAmVmlkZW9Db250ZXh0LCBBVlBh Y2tldCAmcGt0LCBpbnQgKlJlcGVhdFBpY3QsIGludCAqRnJhbWVUeXBlLCBib29sICpJbnZpc2li bGUsIGVudW0gQVZQaWN0dXJlU3RydWN0dXJlICpMYXN0UGljU3RydWN0KTsKKysgICAgdm9pZCBQ YXJzZVZpZGVvUGFja2V0KFNoYXJlZEFWQ29udGV4dCAmVmlkZW9Db250ZXh0LCBBVlBhY2tldCAq cGt0LCBpbnQgKlJlcGVhdFBpY3QsIGludCAqRnJhbWVUeXBlLCBib29sICpJbnZpc2libGUsIGVu dW0gQVZQaWN0dXJlU3RydWN0dXJlICpMYXN0UGljU3RydWN0KTsKKyAgICAgdm9pZCBGcmVlKCk7 CisgcHVibGljOgorICAgICBGRk1TX0luZGV4ZXIoY29uc3QgY2hhciAqRmlsZW5hbWUpOworZGlm ZiAtLWdpdCBhL3NyYy9jb3JlL3V0aWxzLmNwcCBiL3NyYy9jb3JlL3V0aWxzLmNwcAoraW5kZXgg Y2U2NzUzM2ZkLi44YTJlOTk3MTAgMTAwNjQ0CistLS0gYS9zcmMvY29yZS91dGlscy5jcHAKKysr KyBiL3NyYy9jb3JlL3V0aWxzLmNwcAorQEAgLTYyLDEyICs2Miw2IEBAIHZvaWQgQ2xlYXJFcnJv ckluZm8oRkZNU19FcnJvckluZm8gKkVycm9ySW5mbykgeworICAgICB9CisgfQorCistdm9pZCBJ bml0TnVsbFBhY2tldChBVlBhY2tldCAmcGt0KSB7CistICAgIGF2X2luaXRfcGFja2V0KCZwa3Qp OworLSAgICBwa3QuZGF0YSA9IG51bGxwdHI7CistICAgIHBrdC5zaXplID0gMDsKKy19CistCisg dm9pZCBGaWxsQVAoRkZNU19BdWRpb1Byb3BlcnRpZXMgJkFQLCBBVkNvZGVjQ29udGV4dCAqQ1RY LCBGRk1TX1RyYWNrICZGcmFtZXMpIHsKKyAgICAgQVAuU2FtcGxlRm9ybWF0ID0gc3RhdGljX2Nh c3Q8RkZNU19TYW1wbGVGb3JtYXQ+KGF2X2dldF9wYWNrZWRfc2FtcGxlX2ZtdChDVFgtPnNhbXBs ZV9mbXQpKTsKKyAgICAgQVAuQml0c1BlclNhbXBsZSA9IGF2X2dldF9ieXRlc19wZXJfc2FtcGxl KENUWC0+c2FtcGxlX2ZtdCkgKiA4OworZGlmZiAtLWdpdCBhL3NyYy9jb3JlL3V0aWxzLmggYi9z cmMvY29yZS91dGlscy5oCitpbmRleCA5ODE5ZGM3YzkuLjAwM2FiNzk0ZSAxMDA2NDQKKy0tLSBh L3NyYy9jb3JlL3V0aWxzLmgKKysrKyBiL3NyYy9jb3JlL3V0aWxzLmgKK0BAIC01OCw3ICs1OCw2 IEBAIHN0ZDo6dW5pcXVlX3B0cjxUPiBtYWtlX3VuaXF1ZShBcmdzJiYuLi4gYXJncykgeworIH0K KworIHZvaWQgQ2xlYXJFcnJvckluZm8oRkZNU19FcnJvckluZm8gKkVycm9ySW5mbyk7Cistdm9p ZCBJbml0TnVsbFBhY2tldChBVlBhY2tldCAmcGt0KTsKKyB2b2lkIEZpbGxBUChGRk1TX0F1ZGlv UHJvcGVydGllcyAmQVAsIEFWQ29kZWNDb250ZXh0ICpDVFgsIEZGTVNfVHJhY2sgJkZyYW1lcyk7 CisKKyB2b2lkIExBVkZPcGVuRmlsZShjb25zdCBjaGFyICpTb3VyY2VGaWxlLCBBVkZvcm1hdENv bnRleHQgKiZGb3JtYXRDb250ZXh0LCBpbnQgVHJhY2spOworZGlmZiAtLWdpdCBhL3NyYy9jb3Jl L3ZpZGVvc291cmNlLmNwcCBiL3NyYy9jb3JlL3ZpZGVvc291cmNlLmNwcAoraW5kZXggMDZiZDE2 MTBlLi5iODg5OTcwZTIgMTAwNjQ0CistLS0gYS9zcmMvY29yZS92aWRlb3NvdXJjZS5jcHAKKysr KyBiL3NyYy9jb3JlL3ZpZGVvc291cmNlLmNwcAorQEAgLTY3MywzMCArNjczLDM0IEBAIHZvaWQg RkZNU19WaWRlb1NvdXJjZTo6RGVjb2RlTmV4dEZyYW1lKGludDY0X3QgJkFTdGFydFRpbWUsIGlu dDY0X3QgJlBvcykgeworICAgICBpZiAoSGFzUGVuZGluZ0RlbGF5ZWRGcmFtZXMoKSkKKyAgICAg ICAgIHJldHVybjsKKworLSAgICBBVlBhY2tldCBQYWNrZXQ7CistICAgIEluaXROdWxsUGFja2V0 KFBhY2tldCk7CistCistICAgIHdoaWxlIChSZWFkRnJhbWUoJlBhY2tldCkgPj0gMCkgeworLSAg ICAgICAgaWYgKFBhY2tldC5zdHJlYW1faW5kZXggIT0gVmlkZW9UcmFjaykgeworLSAgICAgICAg ICAgIGF2X3BhY2tldF91bnJlZigmUGFja2V0KTsKKysgICAgQVZQYWNrZXQgKlBhY2tldCA9IGF2 X3BhY2tldF9hbGxvYygpOworKyAgICBpZiAoIVBhY2tldCkKKysgICAgICAgIHRocm93IEZGTVNf RXhjZXB0aW9uKEZGTVNfRVJST1JfREVDT0RJTkcsIEZGTVNfRVJST1JfQUxMT0NBVElPTl9GQUlM RUQsCisrICAgICAgICAgICAgIkNvdWxkIG5vdCBhbGxvY2F0ZSBwYWNrZXQuIik7CisrCisrICAg IHdoaWxlIChSZWFkRnJhbWUoUGFja2V0KSA+PSAwKSB7CisrICAgICAgICBpZiAoUGFja2V0LT5z dHJlYW1faW5kZXggIT0gVmlkZW9UcmFjaykgeworKyAgICAgICAgICAgIGF2X3BhY2tldF91bnJl ZihQYWNrZXQpOworICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgfQorCisgICAgICAg ICBpZiAoQVN0YXJ0VGltZSA8IDApCistICAgICAgICAgICAgQVN0YXJ0VGltZSA9IEZyYW1lcy5V c2VEVFMgPyBQYWNrZXQuZHRzIDogUGFja2V0LnB0czsKKysgICAgICAgICAgICBBU3RhcnRUaW1l ID0gRnJhbWVzLlVzZURUUyA/IFBhY2tldC0+ZHRzIDogUGFja2V0LT5wdHM7CisKKyAgICAgICAg IGlmIChQb3MgPCAwKQorLSAgICAgICAgICAgIFBvcyA9IFBhY2tldC5wb3M7CisrICAgICAgICAg ICAgUG9zID0gUGFja2V0LT5wb3M7CisKKy0gICAgICAgIGJvb2wgRnJhbWVGaW5pc2hlZCA9IERl Y29kZVBhY2tldCgmUGFja2V0KTsKKy0gICAgICAgIGF2X3BhY2tldF91bnJlZigmUGFja2V0KTsK Ky0gICAgICAgIGlmIChGcmFtZUZpbmlzaGVkKQorKyAgICAgICAgYm9vbCBGcmFtZUZpbmlzaGVk ID0gRGVjb2RlUGFja2V0KFBhY2tldCk7CisrICAgICAgICBhdl9wYWNrZXRfdW5yZWYoUGFja2V0 KTsKKysgICAgICAgIGlmIChGcmFtZUZpbmlzaGVkKSB7CisrICAgICAgICAgICAgYXZfcGFja2V0 X2ZyZWUoJlBhY2tldCk7CisgICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgfQorICAgICB9 CisKKyAgICAgLy8gRmx1c2ggZmluYWwgZnJhbWVzCistICAgIEluaXROdWxsUGFja2V0KFBhY2tl dCk7CistICAgIERlY29kZVBhY2tldCgmUGFja2V0KTsKKysgICAgRGVjb2RlUGFja2V0KFBhY2tl dCk7CisrICAgIGF2X3BhY2tldF9mcmVlKCZQYWNrZXQpOworIH0KKworIGJvb2wgRkZNU19WaWRl b1NvdXJjZTo6U2Vla1RvKGludCBuLCBpbnQgU2Vla09mZnNldCkgeworCitGcm9tIGJmOWUwM2U5 ZTA4NTM0YzAyNGU1YTc0NGE2NDM3YzRhYWMxNjAyMDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBEZXJlayBCdWl0ZW5odWlzIDxkZXJlay5idWl0ZW5odWlzQGdtYWlsLmNvbT4KK0Rh dGU6IFR1ZSwgNCBNYXkgMjAyMSAxNDoyMDo0NyArMDEwMAorU3ViamVjdDogW1BBVENIIDIvM10g Y29uZmlndXJlOiBSZW1vdmUgZGVwcmVjYXRlZCBBUEkgdXNlCisKK1NpZ25lZC1vZmYtYnk6IERl cmVrIEJ1aXRlbmh1aXMgPGRlcmVrLmJ1aXRlbmh1aXNAZ21haWwuY29tPgorLS0tCisgY29uZmln dXJlLmFjIHwgNCArKy0tCisgMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYworaW5k ZXggYjM1ZWY4MGJjLi5kMTk3MTRkMGYgMTAwNjQ0CistLS0gYS9jb25maWd1cmUuYWMKKysrKyBi L2NvbmZpZ3VyZS5hYworQEAgLTEwMiwxMCArMTAyLDEwIEBAIENGTEFHUz0iJF9DRkxBR1MgJEZG TVBFR19DRkxBR1MiCisKKyBBQ19ERUZVTihbVEVTVF9GRk1QRUddLAorICAgICAgICAgIFtBQ19M SU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbCistICAgICAgICAgICAgI2luY2x1ZGUgPGxp YmF2Y29kZWMvYXZjb2RlYy5oPgorKyAgICAgICAgICAgICNpbmNsdWRlIDxsaWJhdmZvcm1hdC9h dmZvcm1hdC5oPgorICAgICAgICAgICAgICNpbmNsdWRlIDxsaWJzd3NjYWxlL3N3c2NhbGUuaD4K KyAgICAgICAgICAgICBdXSxbWworLSAgICAgICAgICAgICAgICBhdmNvZGVjX3JlZ2lzdGVyX2Fs bCgpOworKyAgICAgICAgICAgICAgICBhdmZvcm1hdF9uZXR3b3JrX2luaXQoKTsKKyAgICAgICAg ICAgICAgICAgc3dzY2FsZV92ZXJzaW9uKCk7CisgICAgICAgICAgICAgXV0pXSwgW2V2YWwgJDE9 eWVzXSwgW2V2YWwgJDE9bm9dKQorICAgICAgICAgXSkKKworRnJvbSBhMThjODI5NjY4N2UyNjdi MjBlYzkwZWY4MTY3MWI3N2QzOTNhMzZlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog RGVyZWsgQnVpdGVuaHVpcyA8ZGVyZWsuYnVpdGVuaHVpc0BnbWFpbC5jb20+CitEYXRlOiBUdWUs IDQgTWF5IDIwMjEgMTQ6NDE6MjEgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAzLzNdIFVzZSBhdXRv IGZvciBBVkNvZGVjCisKK1RoZSBnZW5pdXNlcyBvdmVyIGF0IEZGbXBlZyBkZWNpZGVkIHRvIGNv bnN0aWZ5IHRoaXMgQVBJLCBzbyBvbGQKK3ZlcnNpb25zIG9mIHRoZSBsaWJyYXJ5IHdpbGwgcmV0 dXJuIEFWQ29kZWMgKiwgd2hpbGUgbmV3IHZlcnNpb25zCitvZiB0aGUgbGliYXJ5IHdpbGwgcmV0 dXJuIGNvbnN0IEFWQ29kZWMgKiwgd2hpY2gsIGluIEMrKywgYXJlIG5vdAorT0sgdG8gY29udmVy dCBiZXR3ZWVuLgorCitSYXRoZXIgdGhhbiB1c2Ugc29tZSBtYWNybyBoZWxsIGluIGZmbXNjb21w YXQuaCwgd2UgY2FuIHdvcmsgYXJvdW5kCit0aGlzIGJ5IHVzaW5nIGF1dG8uCisKK0dyb3NzLgor CitTaWduZWQtb2ZmLWJ5OiBEZXJlayBCdWl0ZW5odWlzIDxkZXJlay5idWl0ZW5odWlzQGdtYWls LmNvbT4KKy0tLQorIHNyYy9jb3JlL2F1ZGlvc291cmNlLmNwcCB8IDIgKy0KKyBzcmMvY29yZS9p bmRleGluZy5jcHAgICAgfCA2ICsrKy0tLQorIHNyYy9jb3JlL3ZpZGVvc291cmNlLmNwcCB8IDIg Ky0KKyAzIGZpbGVzIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKKwor ZGlmZiAtLWdpdCBhL3NyYy9jb3JlL2F1ZGlvc291cmNlLmNwcCBiL3NyYy9jb3JlL2F1ZGlvc291 cmNlLmNwcAoraW5kZXggZTRjZTk3Y2RiLi5hYzA5NjY2MzYgMTAwNjQ0CistLS0gYS9zcmMvY29y ZS9hdWRpb3NvdXJjZS5jcHAKKysrKyBiL3NyYy9jb3JlL2F1ZGlvc291cmNlLmNwcAorQEAgLTQ2 OSw3ICs0NjksNyBAQCB2b2lkIEZGTVNfQXVkaW9Tb3VyY2U6Ok9wZW5GaWxlKCkgeworCisgICAg IExBVkZPcGVuRmlsZShTb3VyY2VGaWxlLmNfc3RyKCksIEZvcm1hdENvbnRleHQsIFRyYWNrTnVt YmVyKTsKKworLSAgICBBVkNvZGVjICpDb2RlYyA9IGF2Y29kZWNfZmluZF9kZWNvZGVyKEZvcm1h dENvbnRleHQtPnN0cmVhbXNbVHJhY2tOdW1iZXJdLT5jb2RlY3Bhci0+Y29kZWNfaWQpOworKyAg ICBhdXRvICpDb2RlYyA9IGF2Y29kZWNfZmluZF9kZWNvZGVyKEZvcm1hdENvbnRleHQtPnN0cmVh bXNbVHJhY2tOdW1iZXJdLT5jb2RlY3Bhci0+Y29kZWNfaWQpOworICAgICBpZiAoQ29kZWMgPT0g bnVsbHB0cikKKyAgICAgICAgIHRocm93IEZGTVNfRXhjZXB0aW9uKEZGTVNfRVJST1JfREVDT0RJ TkcsIEZGTVNfRVJST1JfQ09ERUMsCisgICAgICAgICAgICAgIkF1ZGlvIGNvZGVjIG5vdCBmb3Vu ZCIpOworZGlmZiAtLWdpdCBhL3NyYy9jb3JlL2luZGV4aW5nLmNwcCBiL3NyYy9jb3JlL2luZGV4 aW5nLmNwcAoraW5kZXggZTU0N2M1YWJmLi41OWZiNGU4ZWEgMTAwNjQ0CistLS0gYS9zcmMvY29y ZS9pbmRleGluZy5jcHAKKysrKyBiL3NyYy9jb3JlL2luZGV4aW5nLmNwcAorQEAgLTM4NCw3ICsz ODQsNyBAQCBGRk1TX1RyYWNrVHlwZSBGRk1TX0luZGV4ZXI6OkdldFRyYWNrVHlwZShpbnQgVHJh Y2spIHsKKyB9CisKKyBjb25zdCBjaGFyICpGRk1TX0luZGV4ZXI6OkdldFRyYWNrQ29kZWMoaW50 IFRyYWNrKSB7CistICAgIEFWQ29kZWMgKmNvZGVjID0gYXZjb2RlY19maW5kX2RlY29kZXIoRm9y bWF0Q29udGV4dC0+c3RyZWFtc1tUcmFja10tPmNvZGVjcGFyLT5jb2RlY19pZCk7CisrICAgIGF1 dG8gKmNvZGVjID0gYXZjb2RlY19maW5kX2RlY29kZXIoRm9ybWF0Q29udGV4dC0+c3RyZWFtc1tU cmFja10tPmNvZGVjcGFyLT5jb2RlY19pZCk7CisgICAgIHJldHVybiBjb2RlYyA/IGNvZGVjLT5u YW1lIDogbnVsbHB0cjsKKyB9CisKK0BAIC00MDIsNyArNDAyLDcgQEAgRkZNU19JbmRleCAqRkZN U19JbmRleGVyOjpEb0luZGV4aW5nKCkgeworICAgICAgICAgICAgIFVzZURUUyk7CisKKyAgICAg ICAgIGlmIChJbmRleE1hc2suY291bnQoaSkgJiYgRm9ybWF0Q29udGV4dC0+c3RyZWFtc1tpXS0+ Y29kZWNwYXItPmNvZGVjX3R5cGUgPT0gQVZNRURJQV9UWVBFX1ZJREVPKSB7CistICAgICAgICAg ICAgQVZDb2RlYyAqVmlkZW9Db2RlYyA9IGF2Y29kZWNfZmluZF9kZWNvZGVyKEZvcm1hdENvbnRl eHQtPnN0cmVhbXNbaV0tPmNvZGVjcGFyLT5jb2RlY19pZCk7CisrICAgICAgICAgICAgYXV0byAq VmlkZW9Db2RlYyA9IGF2Y29kZWNfZmluZF9kZWNvZGVyKEZvcm1hdENvbnRleHQtPnN0cmVhbXNb aV0tPmNvZGVjcGFyLT5jb2RlY19pZCk7CisgICAgICAgICAgICAgaWYgKCFWaWRlb0NvZGVjKSB7 CisgICAgICAgICAgICAgICAgIEZvcm1hdENvbnRleHQtPnN0cmVhbXNbaV0tPmRpc2NhcmQgPSBB VkRJU0NBUkRfQUxMOworICAgICAgICAgICAgICAgICBJbmRleE1hc2suZXJhc2UoaSk7CitAQCAt NDMzLDcgKzQzMyw3IEBAIEZGTVNfSW5kZXggKkZGTVNfSW5kZXhlcjo6RG9JbmRleGluZygpIHsK KyAgICAgICAgICAgICAgICAgSW5kZXhNYXNrLmluc2VydChpKTsKKyAgICAgICAgICAgICB9Cisg ICAgICAgICB9IGVsc2UgaWYgKEluZGV4TWFzay5jb3VudChpKSAmJiBGb3JtYXRDb250ZXh0LT5z dHJlYW1zW2ldLT5jb2RlY3Bhci0+Y29kZWNfdHlwZSA9PSBBVk1FRElBX1RZUEVfQVVESU8pIHsK Ky0gICAgICAgICAgICBBVkNvZGVjICpBdWRpb0NvZGVjID0gYXZjb2RlY19maW5kX2RlY29kZXIo Rm9ybWF0Q29udGV4dC0+c3RyZWFtc1tpXS0+Y29kZWNwYXItPmNvZGVjX2lkKTsKKysgICAgICAg ICAgICBhdXRvICpBdWRpb0NvZGVjID0gYXZjb2RlY19maW5kX2RlY29kZXIoRm9ybWF0Q29udGV4 dC0+c3RyZWFtc1tpXS0+Y29kZWNwYXItPmNvZGVjX2lkKTsKKyAgICAgICAgICAgICBpZiAoQXVk aW9Db2RlYyA9PSBudWxscHRyKQorICAgICAgICAgICAgICAgICB0aHJvdyBGRk1TX0V4Y2VwdGlv bihGRk1TX0VSUk9SX0NPREVDLCBGRk1TX0VSUk9SX1VOU1VQUE9SVEVELAorICAgICAgICAgICAg ICAgICAgICAgIkF1ZGlvIGNvZGVjIG5vdCBmb3VuZCIpOworZGlmZiAtLWdpdCBhL3NyYy9jb3Jl L3ZpZGVvc291cmNlLmNwcCBiL3NyYy9jb3JlL3ZpZGVvc291cmNlLmNwcAoraW5kZXggYjg4OTk3 MGUyLi44OTU2YzIyNTYgMTAwNjQ0CistLS0gYS9zcmMvY29yZS92aWRlb3NvdXJjZS5jcHAKKysr KyBiL3NyYy9jb3JlL3ZpZGVvc291cmNlLmNwcAorQEAgLTE3MSw3ICsxNzEsNyBAQCBGRk1TX1Zp ZGVvU291cmNlOjpGRk1TX1ZpZGVvU291cmNlKGNvbnN0IGNoYXIgKlNvdXJjZUZpbGUsIEZGTVNf SW5kZXggJkluZGV4LCBpbgorCisgICAgICAgICBMQVZGT3BlbkZpbGUoU291cmNlRmlsZSwgRm9y bWF0Q29udGV4dCwgVmlkZW9UcmFjayk7CisKKy0gICAgICAgIEFWQ29kZWMgKkNvZGVjID0gYXZj b2RlY19maW5kX2RlY29kZXIoRm9ybWF0Q29udGV4dC0+c3RyZWFtc1tWaWRlb1RyYWNrXS0+Y29k ZWNwYXItPmNvZGVjX2lkKTsKKysgICAgICAgIGF1dG8gKkNvZGVjID0gYXZjb2RlY19maW5kX2Rl Y29kZXIoRm9ybWF0Q29udGV4dC0+c3RyZWFtc1tWaWRlb1RyYWNrXS0+Y29kZWNwYXItPmNvZGVj X2lkKTsKKyAgICAgICAgIGlmIChDb2RlYyA9PSBudWxscHRyKQorICAgICAgICAgICAgIHRocm93 IEZGTVNfRXhjZXB0aW9uKEZGTVNfRVJST1JfREVDT0RJTkcsIEZGTVNfRVJST1JfQ09ERUMsCisg ICAgICAgICAgICAgICAgICJWaWRlbyBjb2RlYyBub3QgZm91bmQiKTsKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZmZtczIvdGVtcGxhdGUgYi9zcmNwa2dzL2ZmbXMyL3RlbXBsYXRlCmluZGV4IDY4ZThh MGMxNGJjZS4uMmFjZmFkYWM0NGIzIDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZmbXMyL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvZmZtczIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdmZm1zMicKIHBrZ25hbWU9ZmZtczIKIHZlcnNpb249Mi40MAotcmV2aXNpb249 MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9 Ii0tZW5hYmxlLXNoYXJlZCAtLWRpc2FibGUtc3RhdGljIgogaG9zdG1ha2VkZXBlbmRzPSJwa2ct Y29uZmlnIGF1dG9jb25mIGF1dG9tYWtlIGxpYnRvb2wiCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Zs dXhib3gvcGF0Y2hlcy8wMDAxLUZpeC1pbmZpbml0ZS1sb29wLWluLU1lbnUtY3ljbGVpdGVtcy5w YXRjaCBiL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzLzAwMDEtRml4LWluZmluaXRlLWxvb3AtaW4t TWVudS1jeWNsZWl0ZW1zLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YzQ1 MGZkNDViZmIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy8wMDAx LUZpeC1pbmZpbml0ZS1sb29wLWluLU1lbnUtY3ljbGVpdGVtcy5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDYwICswLDAgQEAKLUZyb20gOWQ4MjAyZjMyMzM4YTNmMDhkM2ZhMzkwNTdkYzVlZWM1 ZDk3YmU0ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hdGhpYXMgR3VteiA8YWtp cmFAZmx1eGJveC5vcmc+Ci1EYXRlOiBTYXQsIDI4IE1heSAyMDIyIDExOjEzOjQzICswMjAwCi1T dWJqZWN0OiBbUEFUQ0hdIEZpeCBpbmZpbml0ZSBsb29wIGluIE1lbnU6OmN5Y2xlaXRlbXMoKQot TUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYt OAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAotCi1XaGVuIGEgbWVudSBjb250YWlu cyBubyBzZWxlY3RhYmxlIGl0ZW0gKGV4YW1wbGUgZ2l2ZW46IGEgImxpc3QiIG9mIHVzZXIKLXN0 eWxlcyBhbmQgdGhlIG9ubHkgYXZhaWxhYmxlIG9uZSBpcyBhbHJlYWR5IHNlbGVjdGVkKSwgY3lj bGluZyB0aHJvdWdoCi10aGUgbWVudSB3aWxsIGxlYWQgdG8gYW4gaW5maW5pdGUgbG9vcCBhbmQg dGh1cyBhIGRpc2Z1bmN0aW9uYWwgZmx1eGJveC4KLQotVGhpcyBjb21taXQgYWRkcmVzc2VzIHRo ZSBpc3N1ZSBieSBjaGVja2luZyBpZiB0aGVyZSBpcyBhbnkgc2VsZWN0YWJsZQotaXRlbSBiZWZv cmUgZW50ZXJpbmcgdGhlIGN5Y2xpbmcgc3RhZ2UuCi0KLURpc2NvdmVyZWQgYnkgU8OpYmFzdGll biBCYWxsZXRbMV0uCi0KLVsxXTogaHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9mbHV4Ym94L2J1 Z3MvMTE4NS8KLS0tLQotIHNyYy9GYlRrL01lbnUuY2MgfCAyMSArKysrKysrKysrKysrKystLS0t LS0KLSAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKLQot ZGlmZiAtLWdpdCBhL3NyYy9GYlRrL01lbnUuY2MgYi9zcmMvRmJUay9NZW51LmNjCi1pbmRleCA2 YjJkYjNhNC4uZmYwNDBiYWUgMTAwNjQ0Ci0tLS0gYS9zcmMvRmJUay9NZW51LmNjCi0rKysgYi9z cmMvRmJUay9NZW51LmNjCi1AQCAtMzIwLDE1ICszMjAsMjQgQEAgdm9pZCBNZW51Ojpsb3dlcigp IHsKLSAKLSB2b2lkIE1lbnU6OmN5Y2xlSXRlbXMoYm9vbCByZXZlcnNlKSB7Ci0gCi0tICAgIGlm IChtX2l0ZW1zLmVtcHR5KCkpCi0tICAgICAgICByZXR1cm47Ci0tCi0tICAgIGludCBvZmZzZXQg PSByZXZlcnNlID8gLTEgOiAxOwotICAgICBpbnQgbCA9IG1faXRlbXMuc2l6ZSgpOwotLSAgICBp bnQgaSA9IG1fYWN0aXZlX2luZGV4OwotKyAgICBpbnQgaTsKLSsgICAgaW50IG9mZnNldCA9IHJl dmVyc2UgPyAtMSA6IDE7Ci0gICAgIHNpemVfdCBpZ25vcmU7Ci0gCi0tICAgIGZvciAoaSArPSBv ZmZzZXQ7IGkgIT0gbV9hY3RpdmVfaW5kZXg7IGkgKz0gb2Zmc2V0ICkgewotKyAgICAvLyBjaGVj ayBpZiB0aGVyZSBpcyBfYW55XyBzZWxlY3RhYmxlIGl0ZW0KLSsgICAgZm9yIChpID0gMDsgaSA8 IGw7IGkrKykgewotKyAgICAgICAgaWYgKGlzSXRlbVNlbGVjdGFibGUoaSkpIHsKLSsgICAgICAg ICAgICBicmVhazsKLSsgICAgICAgIH0KLSsgICAgfQotKwotKyAgICAvLyBubyBzZWxlY3RhYmxl IGl0ZW0KLSsgICAgaWYgKGkgPj0gbCkgewotKyAgICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0r ICAgIGZvciAoaSA9IG1fYWN0aXZlX2luZGV4ICsgb2Zmc2V0OyBpICE9IG1fYWN0aXZlX2luZGV4 OyBpICs9IG9mZnNldCApIHsKLSAgICAgICAgIGlmIChpIDwgMCkgewotICAgICAgICAgICAgIGkg PSBsIC0gMTsKLSAgICAgICAgIH0gZWxzZSBpZiAoaSA+PSBsKSB7Ci0tLSAKLTIuMzkuMAotCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy8yMjg2NmM0ZDMwZjViMjg5YzQyOWM1 Y2E4OGQ4MDAyMDBkYjRmYzRmLnBhdGNoIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvMjI4NjZj NGQzMGY1YjI4OWM0MjljNWNhODhkODAwMjAwZGI0ZmM0Zi5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhkZDQ0ZTUzOGNlOAotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzLzIyODY2YzRkMzBmNWIyODljNDI5YzVjYTg4ZDgwMDIw MGRiNGZjNGYucGF0Y2gKQEAgLTAsMCArMSwyMyBAQAorCitGcm9tIDIyODY2YzRkMzBmNWIyODlj NDI5YzVjYTg4ZDgwMDIwMGRiNGZjNGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBK b2huIFNlbm5lc2FlbCA8am9obkBhbWlua2luZy5jb20+CitEYXRlOiBNb24sIDIgTm92IDIwMTUg MTU6MTQ6MzIgLTA2MDAKK1N1YmplY3Q6IFtQQVRDSF0gZml4ZXMgYnVnICMxMTM4CisKKy0tLQor IHV0aWwvZmx1eGJveC1yZW1vdGUuY2MgfCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS91dGlsL2ZsdXhib3gtcmVtb3Rl LmNjIGIvdXRpbC9mbHV4Ym94LXJlbW90ZS5jYworaW5kZXggNTk4NTJlNmE3Li41MDQwMTViNTAg MTAwNjQ0CistLS0gYS91dGlsL2ZsdXhib3gtcmVtb3RlLmNjCisrKysgYi91dGlsL2ZsdXhib3gt cmVtb3RlLmNjCitAQCAtNzMsNyArNzMsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFy Z3YpIHsKKyAgICAgaWYgKHN0cmNtcChjbWQsICJyZXN1bHQiKSA9PSAwKSB7CisgICAgICAgICBY VGV4dFByb3BlcnR5IHRleHRfcHJvcDsKKyAgICAgICAgIGlmIChYR2V0VGV4dFByb3BlcnR5KGRp c3AsIHJvb3QsICZ0ZXh0X3Byb3AsIGF0b21fcmVzdWx0KSAhPSAwCistICAgICAgICAgICAgJiYg dGV4dF9wcm9wLnZhbHVlID4gMAorKyAgICAgICAgICAgICYmIHRleHRfcHJvcC52YWx1ZSAhPSAw CisgICAgICAgICAgICAgJiYgdGV4dF9wcm9wLm5pdGVtcyA+IDApIHsKKyAKKyAgICAgICAgICAg ICBwcmludGYoIiVzIiwgdGV4dF9wcm9wLnZhbHVlKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmx1 eGJveC9wYXRjaGVzL01pbk92ZXJsYXBQbGFjZW1lbnQuY2NfaW1wcm92ZS5wYXRjaCBiL3NyY3Br Z3MvZmx1eGJveC9wYXRjaGVzL01pbk92ZXJsYXBQbGFjZW1lbnQuY2NfaW1wcm92ZS5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWI2NGIxMWFiMmE4Li4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvTWluT3ZlcmxhcFBsYWNlbWVudC5jY19pbXBy b3ZlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotLS0tIGEvc3JjL01pbk92 ZXJsYXBQbGFjZW1lbnQuY2MgIDIwMTUtMDItMDggMDU6NDQ6MzQuMDAwMDAwMDAwIC0wNTAwCi0r KysgYi9zcmMvTWluT3ZlcmxhcFBsYWNlbWVudC5jYyAgMjAyMi0wNy0xOCAxNToxNDo0MS4wMTIy NzUyMDAgLTA0MDAKLUBAIC0xOTYsMTkgKzE5NiwyMSBAQAotICAgICBzdGQ6OnNldDxBcmVhPjo6 aXRlcmF0b3IgbWluX3JlZyA9IGFyZWFzLmVuZCgpOwotCi0gICAgIHN0ZDo6c2V0PEFyZWE+Ojpp dGVyYXRvciBhcl9pdCA9IGFyZWFzLmJlZ2luKCk7Ci0rICAgIGludCBvdmVybGFwID0gMCwgbWlu X3JpZ2h0ID0gMCwgbWluX2JvdHRvbSA9IDAsIG1heF9sZWZ0ID0gMCwgbWF4X3RvcCA9IDA7Ci0r Ci0gICAgIGZvciAoOyBhcl9pdCAhPSBhcmVhcy5lbmQoKTsgKythcl9pdCkgewotCi0tICAgICAg ICBpbnQgb3ZlcmxhcCA9IDA7Ci0rICAgICAgICBvdmVybGFwID0gMDsKLSAgICAgICAgIGl0ID0g Y29uc3Rfd2luZG93bGlzdC5yYmVnaW4oKTsKLSAgICAgICAgIGZvciAoOyBpdCAhPSBpdF9lbmQ7 ICsraXQpIHsKLQotICAgICAgICAgICAgIGdldFdpbmRvd0RpbWVuc2lvbnMoKigqaXQpLCBsZWZ0 LCB0b3AsIHJpZ2h0LCBib3R0b20pOwotCi0gICAgICAgICAgICAgLy8gZ2V0IHRoZSBjb29yZGlu YXRlcyBvZiB0aGUgb3ZlcmxhcCByZWdpb24KLS0gICAgICAgICAgICBpbnQgbWluX3JpZ2h0ID0g c3RkOjptaW4ocmlnaHQsIGFyX2l0LT54ICsgd2luX3cpOwotLSAgICAgICAgICAgIGludCBtaW5f Ym90dG9tID0gc3RkOjptaW4oYm90dG9tLCBhcl9pdC0+eSArIHdpbl9oKTsKLS0gICAgICAgICAg ICBpbnQgbWF4X2xlZnQgPSBzdGQ6Om1heChsZWZ0LCBhcl9pdC0+eCk7Ci0tICAgICAgICAgICAg aW50IG1heF90b3AgPSBzdGQ6Om1heCh0b3AsIGFyX2l0LT55KTsKLSsgICAgICAgICAgICBtaW5f cmlnaHQgPSBzdGQ6Om1pbihyaWdodCwgYXJfaXQtPnggKyB3aW5fdyk7Ci0rICAgICAgICAgICAg bWluX2JvdHRvbSA9IHN0ZDo6bWluKGJvdHRvbSwgYXJfaXQtPnkgKyB3aW5faCk7Ci0rICAgICAg ICAgICAgbWF4X2xlZnQgPSBzdGQ6Om1heChsZWZ0LCBhcl9pdC0+eCk7Ci0rICAgICAgICAgICAg bWF4X3RvcCA9IHN0ZDo6bWF4KHRvcCwgYXJfaXQtPnkpOwotCi0gICAgICAgICAgICAgLy8gbm93 IGNvbXB1dGUgdGhlIG92ZXJsYXAgYW5kIGFkZCB0byBydW5uaW5nIHRvdGFsCi0gICAgICAgICAg ICAgaWYgKG1pbl9yaWdodCA+IG1heF9sZWZ0ICYmIG1pbl9ib3R0b20gPiBtYXhfdG9wKQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMvY2VudGVyLnBhdGNoIGIvc3JjcGtncy9m bHV4Ym94L3BhdGNoZXMvY2VudGVyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAzOWUzZTRjN2YzN2UuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hl cy9jZW50ZXIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMDcgKzAsMCBAQAotRnJvbSBlYzgz OTkzYzIzNmRlOWM5NDQyZTJmY2QzMWMwOGFhZTg1MmE1YTE2IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQotRnJvbTogemxpY2UgPHpsaWNlNTU1QGdtYWlsLmNvbT4KLURhdGU6IEZyaSwgMjIgSnVs IDIwMjIgMjE6MjE6MzMgLTA0MDAKLVN1YmplY3Q6IFtQQVRDSCAxLzJdIHdoaXRlc3BhY2UgY2xl YW51cAotCi0tLS0KLSBkb2MvYXNjaWlkb2MvZmx1eGJveC50eHQgfCAgOCArKysrLS0tLQotIHNy Yy9TY3JlZW5QbGFjZW1lbnQuY2MgICB8IDEyICsrKysrKy0tLS0tLQotIHNyYy9TY3JlZW5QbGFj ZW1lbnQuaGggICB8IDEwICsrKysrLS0tLS0KLSAzIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlv bnMoKyksIDE1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZG9jL2FzY2lpZG9jL2ZsdXhi b3gudHh0IGIvZG9jL2FzY2lpZG9jL2ZsdXhib3gudHh0Ci1pbmRleCA5NTYyNDg0Mi4uMGUzZjI3 YjkgMTAwNjQ0Ci0tLS0gYS9kb2MvYXNjaWlkb2MvZmx1eGJveC50eHQKLSsrKyBiL2RvYy9hc2Np aWRvYy9mbHV4Ym94LnR4dAotQEAgLTQsNyArNCw3IEBAIEhlbnJpayBLaW5udW5lbiA8Zmx1eGdl bkBmbHV4Ym94Lm9yZz4KLSB2MS4zLjcsIDA4IEZlYnJ1YXJ5IDIwMTUKLSA6bWFuIHNvdXJjZTog ICBmbHV4Ym94LnR4dAotIDptYW4gdmVyc2lvbjogIHtyZXZpc2lvbn0KLS06bWFuIG1hbnVhbDog ICBGbHV4Ym94IE1hbnVhbCAgCi0rOm1hbiBtYW51YWw6ICAgRmx1eGJveCBNYW51YWwKLSAKLSBO QU1FCi0gLS0tLQotQEAgLTQ3NSw3ICs0NzUsNyBAQCBCeSBkZWZhdWx0LCB0aGlzIG1lbnUgY29u dGFpbnM6Ci0gCi0gKlJlbWVtYmVyLi4uKjo6OgotIFNwZWNpZnkgd2hpY2ggd2luZG93IHNldHRp bmdzIHNob3VsZCBiZSBzdG9yZWQgaW4gdGhlIGBhcHBzJyBmaWxlIGFuZAotLXJlc3VtZWQgdGhl IG5leHQgdGltZSB0aGlzIHdpbmRvdyBpcyBvcGVuZWQuIAotK3Jlc3VtZWQgdGhlIG5leHQgdGlt ZSB0aGlzIHdpbmRvdyBpcyBvcGVuZWQuCi0gKwotIFNwZWNpZmljYWxseSB0aGUgc2V0dGluZyB5 b3UgbWF5IHN0b3JlIGFyZToKLSArCi1AQCAtNzQwLDcgKzc0MCw3IEBAIFRoZXJlIGFyZSB0aHJl ZSBtb3JlIHNldHRpbmdzIGluIHRoZSBgYEZvY3VzIE1vZGVsJycgbWVudToKLSAKLSBUQUIgT1BU SU9OUwotIC0tLS0tLS0tLS0tCi0tVGhpcyBzZWN0aW9uIG9mIGZsdXhib3ggY29uZmlndXJhdGlv biBtZW51IGxldHMgeW91IGNvbmZpZ3VyZSBtYW55IGZlYXR1cmVzIG9mIAotK1RoaXMgc2VjdGlv biBvZiBmbHV4Ym94IGNvbmZpZ3VyYXRpb24gbWVudSBsZXRzIHlvdSBjb25maWd1cmUgbWFueSBm ZWF0dXJlcyBvZgotIHRhYnMuIEluc2lkZSBvZiBpdCB0aGVyZSBhcmUgdGhyZWUgbWFpbiBvcHRp b25zOgotIAotICpQbGFjZW1lbnQqOjo6Ci1AQCAtMTA2MCw3ICsxMDYwLDcgQEAgd2hlbmV2ZXIg dGhlIG1vdXNlIG1vdmVzIG92ZXIgdGhlbSwgYnV0IG9ubHkgd2hlbiB0aGUgbW91c2UgaXMgbW92 aW5nLiBXaXRoCi0gYXJlYSwgZXZlbiBpZiB0aGlzIGlzIGR1ZSB0byBsYXllciBjaGFuZ2VzLCB3 aW5kb3cgbW92ZW1lbnQsIGNoYW5naW5nIGRlc2t0b3BzLCBjbG9zaW5nIHdpbmRvd3MsIGV0Yy4K LSArCi0gRGVmYXVsdDogKkNsaWNrVG9Gb2N1cyoKLS0gICAgICAKLSsKLSAqc2Vzc2lvbi5zY3Jl ZW4wLmF1dG9SYWlzZSo6ICdib29sZWFuJzo6Ci0gV2hlbiBUcnVlLCB0aGlzIHNldHRpbmcgYXV0 b21hdGljYWxseSByYWlzZXMgYW55IHdpbmRvdyB0aGF0IGdhaW5zIGZvY3VzLgotICsKLWRpZmYg LS1naXQgYS9zcmMvU2NyZWVuUGxhY2VtZW50LmNjIGIvc3JjL1NjcmVlblBsYWNlbWVudC5jYwot aW5kZXggMTlkZGY3OGEuLmNhNThkODNmIDEwMDY0NAotLS0tIGEvc3JjL1NjcmVlblBsYWNlbWVu dC5jYwotKysrIGIvc3JjL1NjcmVlblBsYWNlbWVudC5jYwotQEAgLTQzLDE0ICs0MywxNCBAQCB1 c2luZyBzdGQ6OmNlcnI7Ci0gdXNpbmcgc3RkOjplbmRsOwotIAotIFNjcmVlblBsYWNlbWVudDo6 U2NyZWVuUGxhY2VtZW50KEJTY3JlZW4gJnNjcmVlbik6Ci0tICAgIG1fcm93X2RpcmVjdGlvbihz Y3JlZW4ucmVzb3VyY2VNYW5hZ2VyKCksIExFRlRSSUdIVCwgCi0tICAgICAgICAgICAgICAgICAg ICBzY3JlZW4ubmFtZSgpKyIucm93UGxhY2VtZW50RGlyZWN0aW9uIiwgCi0rICAgIG1fcm93X2Rp cmVjdGlvbihzY3JlZW4ucmVzb3VyY2VNYW5hZ2VyKCksIExFRlRSSUdIVCwKLSsgICAgICAgICAg ICAgICAgICAgIHNjcmVlbi5uYW1lKCkrIi5yb3dQbGFjZW1lbnREaXJlY3Rpb24iLAotICAgICAg ICAgICAgICAgICAgICAgc2NyZWVuLmFsdE5hbWUoKSsiLlJvd1BsYWNlbWVudERpcmVjdGlvbiIp LAotLSAgICBtX2NvbF9kaXJlY3Rpb24oc2NyZWVuLnJlc291cmNlTWFuYWdlcigpLCBUT1BCT1RU T00sIAotLSAgICAgICAgICAgICAgICAgICAgc2NyZWVuLm5hbWUoKSsiLmNvbFBsYWNlbWVudERp cmVjdGlvbiIsIAotKyAgICBtX2NvbF9kaXJlY3Rpb24oc2NyZWVuLnJlc291cmNlTWFuYWdlcigp LCBUT1BCT1RUT00sCi0rICAgICAgICAgICAgICAgICAgICBzY3JlZW4ubmFtZSgpKyIuY29sUGxh Y2VtZW50RGlyZWN0aW9uIiwKLSAgICAgICAgICAgICAgICAgICAgIHNjcmVlbi5hbHROYW1lKCkr Ii5Db2xQbGFjZW1lbnREaXJlY3Rpb24iKSwKLS0gICAgbV9wbGFjZW1lbnRfcG9saWN5KHNjcmVl bi5yZXNvdXJjZU1hbmFnZXIoKSwgUk9XTUlOT1ZFUkxBUFBMQUNFTUVOVCwgCi0tICAgICAgICAg ICAgICAgICAgICAgICBzY3JlZW4ubmFtZSgpKyIud2luZG93UGxhY2VtZW50IiwgCi0rICAgIG1f cGxhY2VtZW50X3BvbGljeShzY3JlZW4ucmVzb3VyY2VNYW5hZ2VyKCksIFJPV01JTk9WRVJMQVBQ TEFDRU1FTlQsCi0rICAgICAgICAgICAgICAgICAgICAgICBzY3JlZW4ubmFtZSgpKyIud2luZG93 UGxhY2VtZW50IiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHNjcmVlbi5hbHROYW1lKCkrIi5X aW5kb3dQbGFjZW1lbnQiKSwKLSAgICAgbV9vbGRfcG9saWN5KFJPV1NNQVJUUExBQ0VNRU5UKSwK LSAgICAgbV9zY3JlZW4oc2NyZWVuKQotZGlmZiAtLWdpdCBhL3NyYy9TY3JlZW5QbGFjZW1lbnQu aGggYi9zcmMvU2NyZWVuUGxhY2VtZW50LmhoCi1pbmRleCAwZjIxMGQ5NC4uZjEyMzQ5ODMgMTAw NjQ0Ci0tLS0gYS9zcmMvU2NyZWVuUGxhY2VtZW50LmhoCi0rKysgYi9zcmMvU2NyZWVuUGxhY2Vt ZW50LmhoCi1AQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBCU2NyZWVuOwotIAotIC8qKgotICAqIE1h aW4gY2xhc3MgZm9yIHN0cmF0ZWd5IGhhbmRsaW5nCi0tICogVGhpcyBpcyBhIGJyaWRnZSBiZXR3 ZWVuIHNjcmVlbiBhbmQgCi0rICogVGhpcyBpcyBhIGJyaWRnZSBiZXR3ZWVuIHNjcmVlbiBhbmQK LSAgKiB0aGUgcmVhbCBwbGFjZW1lbnQgc3RyYXRlZ3kgKHJvd2NvbCwgdW5kZXJtb3VzZSBldGMp Ci0gICogVGhlIHBsYWNlV2luZG93IGZ1bmN0aW9uIGluIHRoaXMgY2xhc3MgaXMgZ3VhcmFudGVl ZCB0byBzdWNjZWVkLgotICAqIEl0IGhvbGRzIGEgcG9pbnRlciB0byB0aGUgcmVhbCBwbGFjZW1l bnQgc3RyYXRlZ3kgd2hpY2ggaXMKLUBAIC00Miw4ICs0Miw4IEBAIGNsYXNzIEJTY3JlZW47Ci0g ICovCi0gY2xhc3MgU2NyZWVuUGxhY2VtZW50OiBwdWJsaWMgUGxhY2VtZW50U3RyYXRlZ3kgewot IHB1YmxpYzoKLS0gICAgZW51bSBQbGFjZW1lbnRQb2xpY3kgeyAKLS0gICAgICAgIFJPV1NNQVJU UExBQ0VNRU5ULCAKLSsgICAgZW51bSBQbGFjZW1lbnRQb2xpY3kgewotKyAgICAgICAgUk9XU01B UlRQTEFDRU1FTlQsCi0gICAgICAgICBDT0xTTUFSVFBMQUNFTUVOVCwKLSAgICAgICAgIENPTE1J Tk9WRVJMQVBQTEFDRU1FTlQsCi0gICAgICAgICBST1dNSU5PVkVSTEFQUExBQ0VNRU5ULAotQEAg LTUyLDExICs1MiwxMSBAQCBwdWJsaWM6Ci0gICAgICAgICBBVVRPVEFCUExBQ0VNRU5UCi0gICAg IH07Ci0gCi0tICAgIGVudW0gUm93RGlyZWN0aW9uIHsgCi0rICAgIGVudW0gUm93RGlyZWN0aW9u IHsKLSAgICAgICAgIExFRlRSSUdIVCwgLy8vPCBmcm9tIGxlZnQgdG8gcmlnaHQKLSAgICAgICAg IFJJR0hUTEVGVCAgLy8vPCBmcm9tIHJpZ2h0IHRvIGxlZnQKLSAgICAgfTsKLS0gICAgZW51bSBD b2x1bW5EaXJlY3Rpb24geyAKLSsgICAgZW51bSBDb2x1bW5EaXJlY3Rpb24gewotICAgICAgICAg VE9QQk9UVE9NLCAgLy8vPCBmcm9tIHRvcCB0byBib3R0b20KLSAgICAgICAgIEJPVFRPTVRPUCAg IC8vLzwgZnJvbSBib3R0b20gdG8gdG9wCi0gICAgIH07Ci0tLSAKLTIuMzcuMQotCi0KLUZyb20g NmUwNWY0NGM5NGZhNGJmYzBlNDRlOGY0MmE5ZDI0NjY1YTk1ODQwZiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IHpsaWNlIDx6bGljZTU1NUBnbWFpbC5jb20+Ci1EYXRlOiBGcmksIDIy IEp1bCAyMDIyIDIxOjI3OjI1IC0wNDAwCi1TdWJqZWN0OiBbUEFUQ0ggMi8yXSBuZXcgZmVhdHVy ZTogQ2VudGVyUGxhY2VtZW50LiBQbGFjZXMgbmV3IHdpbmRvd3MgaW4KLSBjZW50ZXIgb2YgdGhl IGN1cnJlbnQgd29ya3NwYWNlCi0KLS0tLQotIGRvYy9hc2NpaWRvYy9mbHV4Ym94LnR4dCB8ICAx ICsKLSBzcmMvQ2VudGVyUGxhY2VtZW50LmNjICAgfCA0MyArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCi0gc3JjL0NlbnRlclBsYWNlbWVudC5oaCAgIHwgMzcgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwotIHNyYy9NYWtlbW9kdWxlLmFtICAgICAgICB8 ICAyICsrCi0gc3JjL1NjcmVlblBsYWNlbWVudC5jYyAgIHwgIDggKysrKysrKysKLSBzcmMvU2Ny ZWVuUGxhY2VtZW50LmhoICAgfCAgMSArCi0gNiBmaWxlcyBjaGFuZ2VkLCA5MiBpbnNlcnRpb25z KCspCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9DZW50ZXJQbGFjZW1lbnQuY2MKLSBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL0NlbnRlclBsYWNlbWVudC5oaAotCi1kaWZmIC0tZ2l0IGEvZG9jL2Fz Y2lpZG9jL2ZsdXhib3gudHh0IGIvZG9jL2FzY2lpZG9jL2ZsdXhib3gudHh0Ci1pbmRleCAwZTNm MjdiOS4uNDZjYTI4NjEgMTAwNjQ0Ci0tLS0gYS9kb2MvYXNjaWlkb2MvZmx1eGJveC50eHQKLSsr KyBiL2RvYy9hc2NpaWRvYy9mbHV4Ym94LnR4dAotQEAgLTExNDEsNiArMTE0MSw3IEBAIEF2YWls YWJsZSBzdHJhdGVnaWVzOjs7Ci0gLSBSb3dTbWFydFBsYWNlbWVudDogdHJpZXMgdG8gcGxhY2Ug d2luZG93cyBpbiByb3dzIHdpdGhvdXQgb3ZlcmxhcHBpbmcKLSAtIENvbFNtYXJ0UGxhY2VtZW50 OiB0cmllcyB0byBwbGFjZSB3aW5kb3dzIGluIGNvbHVtbnMgd2l0aG91dCBvdmVybGFwcGluZwot IC0gQ2FzY2FkZVBsYWNlbWVudDogcGxhY2VzIHdpbmRvd3MgYmVsb3cgdGhlIHRpdGxlYmFyIG9m IHRoZSBwcmV2aW91cyBvbmUKLSstIENlbnRlclBsYWNlbWVudDogcGxhY2VzIHdpbmRvd3MgaW4g dGhlIGNlbnRlciBvZiB0aGUgY3VycmVudCB3b3Jrc3BhY2UKLSAtIFVuZGVyTW91c2VQbGFjZW1l bnQ6IHBsYWNlcyBuZXcgd2luZG93cyB1bmRlcm5lYXRoIHRoZSBtb3VzZQotIC0gUm93TWluT3Zl cmxhcFBsYWNlbWVudDogcGxhY2Ugd2luZG93cyBpbiByb3dzIHdpdGggbWluaW1hbCBvdmVybGFw cGluZwotIC0gQ29sTWluT3ZlcmxhcFBsYWNlbWVudDogcGxhY2Ugd2luZG93cyBpbiBjb2x1bW5z IHdpdGggbWluaW1hbCBvdmVybGFwcGluZwotZGlmZiAtLWdpdCBhL3NyYy9DZW50ZXJQbGFjZW1l bnQuY2MgYi9zcmMvQ2VudGVyUGxhY2VtZW50LmNjCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5k ZXggMDAwMDAwMDAuLmVmYWY3NmI5Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9zcmMvQ2VudGVyUGxh Y2VtZW50LmNjCi1AQCAtMCwwICsxLDQzIEBACi0rLy8gQ2VudGVyUGxhY2VtZW50LmNjCi0rLy8g Q29weXJpZ2h0IChjKSAyMDA2IEZsdXhib3ggVGVhbSAoZmx1eGdlbiBhdCBmbHV4Ym94IGRvdCBv cmcpCi0rLy8KLSsvLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn ZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotKy8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBh bmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi0rLy8g dG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdp dGhvdXQgbGltaXRhdGlvbgotKy8vIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1l cmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotKy8vIGFuZC9vciBzZWxsIGNv cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQot Ky8vIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93 aW5nIGNvbmRpdGlvbnM6Ci0rLy8KLSsvLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQg dGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgotKy8vIGFsbCBjb3Bp ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotKy8vCi0rLy8gVEhF IFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ TkQsIEVYUFJFU1MgT1IKLSsvLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP IFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSsvLyBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwK LSsvLyBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBD TEFJTSwgREFNQUdFUyBPUiBPVEhFUgotKy8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJ T04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCi0rLy8gRlJPTSwgT1VU IE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhF UgotKy8vIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSsKLSsjaW5jbHVkZSAiQ2VudGVyUGxh Y2VtZW50LmhoIgotKwotKyNpbmNsdWRlICJGYlRrL0FwcC5oaCIKLSsjaW5jbHVkZSAiU2NyZWVu LmhoIgotKyNpbmNsdWRlICJXaW5kb3cuaGgiCi0rCi0rYm9vbCBDZW50ZXJQbGFjZW1lbnQ6OnBs YWNlV2luZG93KGNvbnN0IEZsdXhib3hXaW5kb3cgJndpbiwgaW50IGhlYWQsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgJnBsYWNlX3gsIGludCAmcGxhY2VfeSkg ewotKwotKyAgICBpbnQgY2VudF94ID0gKHNpZ25lZCkgd2luLnNjcmVlbigpLm1heFJpZ2h0KGhl YWQpIC0gKHNpZ25lZCkgd2luLnNjcmVlbigpLm1heExlZnQoaGVhZCk7Ci0rICAgIGludCBjZW50 X3kgPSAoc2lnbmVkKSB3aW4uc2NyZWVuKCkubWF4Qm90dG9tKGhlYWQpIC0gKHNpZ25lZCkgd2lu LnNjcmVlbigpLm1heFRvcChoZWFkKTsKLSsKLSsgICAgLy8gYm9yZGVyIG9uIDEgc2lkZSwgZGl2 aWRpbmcgaW4gaGFsZgotKyAgICAvLyB3aXRoIHJvdW5kaW5nLCB0aGlzIHdpbGwgcHJvYmFibHkg ZmF2b3IgdG9wIGxlZnQKLSsgICAgaW50IHdpbl9oYWxmX3cgPSAod2luLndpZHRoKCkgLyAyKSAr IHdpbi5mYldpbmRvdygpLmJvcmRlcldpZHRoKCksCi0rICAgICAgICB3aW5faGFsZl9oID0gKHdp bi5oZWlnaHQoKSAvIDIpICsgd2luLmZiV2luZG93KCkuYm9yZGVyV2lkdGgoKTsKLSsKLSsgICAg cGxhY2VfeCA9IGNlbnRfeCAtIHdpbl9oYWxmX3c7Ci0rICAgIHBsYWNlX3kgPSBjZW50X3kgLSB3 aW5faGFsZl9oOwotKwotKyAgICByZXR1cm4gdHJ1ZTsKLSt9Ci1kaWZmIC0tZ2l0IGEvc3JjL0Nl bnRlclBsYWNlbWVudC5oaCBiL3NyYy9DZW50ZXJQbGFjZW1lbnQuaGgKLW5ldyBmaWxlIG1vZGUg MTAwNjQ0Ci1pbmRleCAwMDAwMDAwMC4uOWY3MGE2YzgKLS0tLSAvZGV2L251bGwKLSsrKyBiL3Ny Yy9DZW50ZXJQbGFjZW1lbnQuaGgKLUBAIC0wLDAgKzEsMzcgQEAKLSsvLyBDZW50ZXJQbGFjZW1l bnQuaGgKLSsvLyBDb3B5cmlnaHQgKGMpIDIwMDcgRmx1eGJveCBUZWFtIChmbHV4Z2VuIGF0IGZs dXhib3ggZG90IG9yZykKLSsvLwotKy8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0rLy8gY29weSBvZiB0aGlz IHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdh cmUiKSwKLSsvLyB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBp bmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0rLy8gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHks IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCi0rLy8gYW5k L29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRv IHdob20gdGhlCi0rLy8gU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSsvLwotKy8vIFRoZSBhYm92ZSBjb3B5cmlnaHQg bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCi0r Ly8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0r Ly8KLSsvLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5U WSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotKy8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9U IExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotKy8vIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBF VkVOVCBTSEFMTAotKy8vIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJM RSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCi0rLy8gTElBQklMSVRZLCBXSEVUSEVS IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKLSsv LyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUg VVNFIE9SIE9USEVSCi0rLy8gREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgotKwotKyNpZm5kZWYg Q0VOVEVSUExBQ0VNRU5UX0hICi0rI2RlZmluZSBDRU5URVJQTEFDRU1FTlRfSEgKLSsKLSsjaW5j bHVkZSAiU2NyZWVuUGxhY2VtZW50LmhoIgotKwotK2NsYXNzIENlbnRlclBsYWNlbWVudDogcHVi bGljIFBsYWNlbWVudFN0cmF0ZWd5IHsKLStwdWJsaWM6Ci0rICAgIENlbnRlclBsYWNlbWVudCgp IHsgfTsKLSsKLSsgICAgYm9vbCBwbGFjZVdpbmRvdyhjb25zdCBGbHV4Ym94V2luZG93ICZ3aW4s IGludCBoZWFkLAotKyAgICAgICAgICAgICAgICAgICAgIGludCAmcGxhY2VfeCwgaW50ICZwbGFj ZV95KTsKLSsKLStwcml2YXRlOgotK307Ci0rCi0rI2VuZGlmIC8vIENFTlRFUlBMQUNFTUVOVF9I SAotZGlmZiAtLWdpdCBhL3NyYy9NYWtlbW9kdWxlLmFtIGIvc3JjL01ha2Vtb2R1bGUuYW0KLWlu ZGV4IDViZTU2OTJjLi41M2QzNWU4ZSAxMDA2NDQKLS0tLSBhL3NyYy9NYWtlbW9kdWxlLmFtCi0r KysgYi9zcmMvTWFrZW1vZHVsZS5hbQotQEAgLTE2NSw2ICsxNjUsOCBAQCBmbHV4Ym94X1NPVVJD RVMgPSBcCi0gCXNyYy9BdHRlbnRpb25Ob3RpY2VIYW5kbGVyLmhoIFwKLSAJc3JjL0Nhc2NhZGVQ bGFjZW1lbnQuY2MgXAotIAlzcmMvQ2FzY2FkZVBsYWNlbWVudC5oaCBcCi0rCXNyYy9DZW50ZXJQ bGFjZW1lbnQuY2MgXAotKwlzcmMvQ2VudGVyUGxhY2VtZW50LmhoIFwKLSAJc3JjL0NsaWVudE1l bnUuY2MgXAotIAlzcmMvQ2xpZW50TWVudS5oaCBcCi0gCXNyYy9DbGllbnRQYXR0ZXJuLmNjIFwK LWRpZmYgLS1naXQgYS9zcmMvU2NyZWVuUGxhY2VtZW50LmNjIGIvc3JjL1NjcmVlblBsYWNlbWVu dC5jYwotaW5kZXggY2E1OGQ4M2YuLmNlNDdhOTEwIDEwMDY0NAotLS0tIGEvc3JjL1NjcmVlblBs YWNlbWVudC5jYwotKysrIGIvc3JjL1NjcmVlblBsYWNlbWVudC5jYwotQEAgLTI0LDYgKzI0LDcg QEAKLSAjaW5jbHVkZSAiUm93U21hcnRQbGFjZW1lbnQuaGgiCi0gI2luY2x1ZGUgIk1pbk92ZXJs YXBQbGFjZW1lbnQuaGgiCi0gI2luY2x1ZGUgIlVuZGVyTW91c2VQbGFjZW1lbnQuaGgiCi0rI2lu Y2x1ZGUgIkNlbnRlclBsYWNlbWVudC5oaCIKLSAjaW5jbHVkZSAiQ29sU21hcnRQbGFjZW1lbnQu aGgiCi0gI2luY2x1ZGUgIkNhc2NhZGVQbGFjZW1lbnQuaGgiCi0gCi1AQCAtODIsNiArODMsOSBA QCBib29sIFNjcmVlblBsYWNlbWVudDo6cGxhY2VXaW5kb3coY29uc3QgRmx1eGJveFdpbmRvdyAm d2luLCBpbnQgaGVhZCwKLSAgICAgICAgIGNhc2UgVU5ERVJNT1VTRVBMQUNFTUVOVDoKLSAgICAg ICAgICAgICBtX3N0cmF0ZWd5LnJlc2V0KG5ldyBVbmRlck1vdXNlUGxhY2VtZW50KCkpOwotICAg ICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgY2FzZSBDRU5URVJQTEFDRU1FTlQ6Ci0rICAgICAg ICAgICAgbV9zdHJhdGVneS5yZXNldChuZXcgQ2VudGVyUGxhY2VtZW50KCkpOwotKyAgICAgICAg ICAgIGJyZWFrOwotICAgICAgICAgY2FzZSBBVVRPVEFCUExBQ0VNRU5UOgotICAgICAgICAgICAg IG1fc3RyYXRlZ3kucmVzZXQoMCk7Ci0gICAgICAgICAgICAgYnJlYWs7Ci1AQCAtMTk3LDYgKzIw MSw4IEBAIHN0ZDo6c3RyaW5nIEZiVGs6OlJlc291cmNlPFNjcmVlblBsYWNlbWVudDo6UGxhY2Vt ZW50UG9saWN5Pjo6Z2V0U3RyaW5nKCkgY29uc3QKLSAgICAgICAgIHJldHVybiAiQ29sTWluT3Zl cmxhcFBsYWNlbWVudCI7Ci0gICAgIGNhc2UgU2NyZWVuUGxhY2VtZW50OjpVTkRFUk1PVVNFUExB Q0VNRU5UOgotICAgICAgICAgcmV0dXJuICJVbmRlck1vdXNlUGxhY2VtZW50IjsKLSsgICAgY2Fz ZSBTY3JlZW5QbGFjZW1lbnQ6OkNFTlRFUlBMQUNFTUVOVDoKLSsgICAgICAgIHJldHVybiAiQ2Vu dGVyUGxhY2VtZW50IjsKLSAgICAgY2FzZSBTY3JlZW5QbGFjZW1lbnQ6OkNBU0NBREVQTEFDRU1F TlQ6Ci0gICAgICAgICByZXR1cm4gIkNhc2NhZGVQbGFjZW1lbnQiOwotICAgICBjYXNlIFNjcmVl blBsYWNlbWVudDo6QVVUT1RBQlBMQUNFTUVOVDoKLUBAIC0yMTgsNiArMjI0LDggQEAgdm9pZCBG YlRrOjpSZXNvdXJjZTxTY3JlZW5QbGFjZW1lbnQ6OlBsYWNlbWVudFBvbGljeT46OnNldEZyb21T dHJpbmcoY29uc3QgY2hhcgotICAgICAgICAgKigqdGhpcykgPSBTY3JlZW5QbGFjZW1lbnQ6OkNP TE1JTk9WRVJMQVBQTEFDRU1FTlQ7Ci0gICAgIGVsc2UgaWYgKHN0cmNhc2VjbXAoIlVuZGVyTW91 c2VQbGFjZW1lbnQiLCBzdHIpID09IDApCi0gICAgICAgICAqKCp0aGlzKSA9IFNjcmVlblBsYWNl bWVudDo6VU5ERVJNT1VTRVBMQUNFTUVOVDsKLSsgICAgZWxzZSBpZiAoc3RyY2FzZWNtcCgiQ2Vu dGVyUGxhY2VtZW50Iiwgc3RyKSA9PSAwKQotKyAgICAgICAgKigqdGhpcykgPSBTY3JlZW5QbGFj ZW1lbnQ6OkNFTlRFUlBMQUNFTUVOVDsKLSAgICAgZWxzZSBpZiAoc3RyY2FzZWNtcCgiQ2FzY2Fk ZVBsYWNlbWVudCIsIHN0cikgPT0gMCkKLSAgICAgICAgICooKnRoaXMpID0gU2NyZWVuUGxhY2Vt ZW50OjpDQVNDQURFUExBQ0VNRU5UOwotICAgICBlbHNlIGlmIChzdHJjYXNlY21wKCJBdXRvdGFi UGxhY2VtZW50Iiwgc3RyKSA9PSAwKQotZGlmZiAtLWdpdCBhL3NyYy9TY3JlZW5QbGFjZW1lbnQu aGggYi9zcmMvU2NyZWVuUGxhY2VtZW50LmhoCi1pbmRleCBmMTIzNDk4My4uYTVjOWI4ODUgMTAw NjQ0Ci0tLS0gYS9zcmMvU2NyZWVuUGxhY2VtZW50LmhoCi0rKysgYi9zcmMvU2NyZWVuUGxhY2Vt ZW50LmhoCi1AQCAtNDksNiArNDksNyBAQCBwdWJsaWM6Ci0gICAgICAgICBST1dNSU5PVkVSTEFQ UExBQ0VNRU5ULAotICAgICAgICAgQ0FTQ0FERVBMQUNFTUVOVCwKLSAgICAgICAgIFVOREVSTU9V U0VQTEFDRU1FTlQsCi0rICAgICAgICBDRU5URVJQTEFDRU1FTlQsCi0gICAgICAgICBBVVRPVEFC UExBQ0VNRU5UCi0gICAgIH07Ci0gCi0tLSAKLTIuMzcuMQotCmRpZmYgLS1naXQgYS9zcmNwa2dz L2ZsdXhib3gvcGF0Y2hlcy9jb250YWluZXJfbG9ja3MucGF0Y2ggYi9zcmNwa2dzL2ZsdXhib3gv cGF0Y2hlcy9jb250YWluZXJfbG9ja3MucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDQ5OGFiNDRhMjNjNi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZmx1eGJveC9wYXRj aGVzL2NvbnRhaW5lcl9sb2Nrcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMyNSArMCwwIEBA Ci1kaWZmIC0tZ2l0IGEvc3JjL0ZiV2luRnJhbWUuY2MgYi9zcmMvRmJXaW5GcmFtZS5jYwotaW5k ZXggMDBiYzExODcuLmY4YTRjNDc1IDEwMDY0NAotLS0tIGEvc3JjL0ZiV2luRnJhbWUuY2MKLSsr KyBiL3NyYy9GYldpbkZyYW1lLmNjCi1AQCAtMTQ4LDYgKzE0OCwxMSBAQCBGYldpbkZyYW1lOjpG YldpbkZyYW1lKEJTY3JlZW4gJnNjcmVlbiwgdW5zaWduZWQgaW50IGNsaWVudF9kZXB0aCwKLSAg ICAgbV9idXR0b25fc2l6ZSgxKSwKLSAgICAgbV9zaGFwZShtX3dpbmRvdywgdGhlbWUtPnNoYXBl UGxhY2UoKSkgewotIAotKyAgICBtX2xvY2tlcl90aW1lci5zZXRUaW1lb3V0KHRpbWVyVmFsKCkg KTsgLy8gMTBtaWxsaXNlYwotKyAgICBtX2xvY2tlcl90aW1lci5maXJlT25jZSh0cnVlKTsKLSsg ICAgRmJUazo6UmVmQ291bnQ8RmJUazo6Q29tbWFuZDx2b2lkPiA+IHVzaWcobmV3IEZiVGs6OlNp bXBsZUNvbW1hbmQ8RmJXaW5GcmFtZT4oKnRoaXMsICZGYldpbkZyYW1lOjp1bmxvY2tTaWcpKTsK LSsgICAgbV9sb2NrZXJfdGltZXIuc2V0Q29tbWFuZCh1c2lnKTsKLSsKLSAgICAgaW5pdCgpOwot IH0KLSAKLUBAIC0xNTYsNiArMTYxLDI3IEBAIEZiV2luRnJhbWU6On5GYldpbkZyYW1lKCkgewot ICAgICByZW1vdmVBbGxCdXR0b25zKCk7Ci0gfQotIAotKy8vIGZvciBpbmNyZW1lbnRhbCBjaGFu Z2VzLCBiYWNrIG9mZiBmb3IgYSBiaXQKLSsvLyBwcmV2ZW50cyBzbG93ZG93biBmcm9tIHNheSwg bWFraW5nIDIwMCB3aW5kb3dzCi0rdm9pZCBGYldpbkZyYW1lOjpyZXNldExvY2soKSB7Ci0rICAg IG1fbG9ja19nZnggPSB0cnVlOwotKyAgICBtX2xvY2tlcl90aW1lci5zdGFydCgpOwotK30KLSsK LSt2b2lkIEZiV2luRnJhbWU6OnVubG9ja1NpZygpIHsKLSsgICAgbV9sb2NrX2dmeCA9IGZhbHNl OwotKyAgICAvLyB0aGlzIGlzIHdoYXQgd2Ugd2FudGVkIHRvIGRvCi0rICAgIEZiVGs6OkNvbnRh aW5lciYgdGFicyA9IHRhYmNvbnRhaW5lcigpOwotKyAgICB0YWJzLnNldFVwZGF0ZUxvY2sobV9s b2NrX2dmeCk7Ci0rICAgIHJlbmRlclRhYkNvbnRhaW5lcigpOwotKyAgICBhcHBseVRhYkNvbnRh aW5lcigpOwotKwotKyAgICB0YWJzLmNsZWFyKCk7Ci0rICAgIHRhYnMucmFpc2UoKTsKLSsgICAg dGFicy5zaG93KCk7Ci0rfQotKwotKwotIGJvb2wgRmJXaW5GcmFtZTo6c2V0VGFiTW9kZShUYWJN b2RlIHRhYm1vZGUpIHsKLSAgICAgaWYgKG1fdGFibW9kZSA9PSB0YWJtb2RlKQotICAgICAgICAg cmV0dXJuIGZhbHNlOwotQEAgLTE4Nyw2ICsyMTMsNyBAQCBib29sIEZiV2luRnJhbWU6OnNldFRh Yk1vZGUoVGFiTW9kZSB0YWJtb2RlKSB7Ci0gCi0gICAgIH0gZWxzZSB7Ci0gICAgICAgICB0YWJz LnNldFVwZGF0ZUxvY2sodHJ1ZSk7Ci0rICAgICAgICByZXNldExvY2soKTsKLSAKLSAgICAgICAg IHRhYnMuc2V0QWxpZ25tZW50KEZiVGs6OkNvbnRhaW5lcjo6UkVMQVRJVkUpOwotICAgICAgICAg dGFicy5zZXRPcmllbnRhdGlvbihGYlRrOjpST1QwKTsKLUBAIC0yMDAsOSArMjI3LDEyIEBAIGJv b2wgRmJXaW5GcmFtZTo6c2V0VGFiTW9kZShUYWJNb2RlIHRhYm1vZGUpIHsKLSAgICAgICAgIH0K LSAgICAgICAgIHRhYnMuc2V0Qm9yZGVyV2lkdGgoMCk7Ci0gICAgICAgICB0YWJzLnNldE1heFRv dGFsU2l6ZSgwKTsKLS0gICAgICAgIHRhYnMuc2V0VXBkYXRlTG9jayhmYWxzZSk7Ci0rICAgICAg ICB0YWJzLnNldFVwZGF0ZUxvY2sobV9sb2NrX2dmeCk7Ci0gICAgICAgICB0YWJzLnNldE1heFNp emVQZXJDbGllbnQoMCk7Ci0gCi0rICAgICAgICBpZiAobV9sb2NrX2dmeCkKLSsgICAgICAgICAg ICByZXR1cm4gZmFsc2U7Ci0rCi0gICAgICAgICByZW5kZXJUYWJDb250YWluZXIoKTsKLSAgICAg ICAgIGFwcGx5VGFiQ29udGFpbmVyKCk7Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL0ZiV2luRnJhbWUu aGggYi9zcmMvRmJXaW5GcmFtZS5oaAotaW5kZXggNjE3YjliOTEuLjcyNWM4NGEwIDEwMDY0NAot LS0tIGEvc3JjL0ZiV2luRnJhbWUuaGgKLSsrKyBiL3NyYy9GYldpbkZyYW1lLmhoCi1AQCAtMzMs NiArMzMsNyBAQAotICNpbmNsdWRlICJGYlRrL0NvbnRhaW5lci5oaCIKLSAjaW5jbHVkZSAiRmJU ay9TaGFwZS5oaCIKLSAjaW5jbHVkZSAiRmJUay9TaWduYWwuaGgiCi0rI2luY2x1ZGUgIkZiVGsv VGltZXIuaGgiCi0gCi0gI2luY2x1ZGUgPHZlY3Rvcj4KLSAjaW5jbHVkZSA8bWVtb3J5PgotQEAg LTE3Niw2ICsxNzcsMTIgQEAgcHVibGljOgotICAgICB2b2lkIHNldFNoYXBpbmdDbGllbnQoRmJU azo6RmJXaW5kb3cgKndpbiwgYm9vbCBhbHdheXNfdXBkYXRlKTsKLSAgICAgdm9pZCB1cGRhdGVT aGFwZSgpIHsgbV9zaGFwZS51cGRhdGUoKTsgfQotIAotKyAgICB2b2lkIHJlc2V0TG9jaygpOwot KyAgICB2b2lkIHVubG9ja1NpZygpOwotKyAgICBGYlRrOjpUaW1lciBtX2xvY2tlcl90aW1lcjsK LSsgICAgc3RhdGljIHVuc2lnbmVkIGludCB0aW1lclZhbCgpIHsgcmV0dXJuIDEwICogRmJUazo6 RmJUaW1lOjpJTl9NSUxMSVNFQ09ORFM7IH0KLSsgICAgYm9vbCBtX2xvY2tfZ2Z4ID0gZmFsc2U7 Ci0rCi0gICAgIC8qKgotICAgICAgICBAbmFtZSBhY2Nlc3NvcnMKLSAgICAgKi8KLWRpZmYgLS1n aXQgYS9zcmMvSWNvbkJ1dHRvbi5jYyBiL3NyYy9JY29uQnV0dG9uLmNjCi1pbmRleCAxMjkwYzJh YS4uMmVhN2FmOWUgMTAwNjQ0Ci0tLS0gYS9zcmMvSWNvbkJ1dHRvbi5jYwotKysrIGIvc3JjL0lj b25CdXR0b24uY2MKLUBAIC03MSw4ICs3MSw4IEBAIEljb25CdXR0b246Okljb25CdXR0b24oY29u c3QgRmJUazo6RmJXaW5kb3cgJnBhcmVudCwKLSAKLSAgICAgRmJUazo6RXZlbnRNYW5hZ2VyOjpp bnN0YW5jZSgpLT5hZGQoKnRoaXMsIG1faWNvbl93aW5kb3cpOwotIAotLSAgICByZWNvbmZpZ1Ro ZW1lKCk7Ci0tICAgIHJlZnJlc2hFdmVyeXRoaW5nKGZhbHNlKTsKLSsgICAgLy9yZWNvbmZpZ1Ro ZW1lKCk7Ci0rICAgIC8vcmVmcmVzaEV2ZXJ5dGhpbmcoZmFsc2UpOwotIH0KLSAKLSBJY29uQnV0 dG9uOjp+SWNvbkJ1dHRvbigpIHsKLUBAIC0xNjMsMTIgKzE2MywxMiBAQCB2b2lkIEljb25CdXR0 b246OnJlY29uZmlnVGhlbWUoKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgo KSwgaGVpZ2h0KCksIG1fdGhlbWUtPnRleHR1cmUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvcmllbnRhdGlvbigpKSk7Ci0gICAgICAgICBzZXRCYWNrZ3JvdW5kUGl4bWFwKG1fcG0p OwotLSAgICB9IGVsc2V7Ci0rICAgIH0gZWxzZSB7Ci0gICAgICAgICBtX3BtLnJlc2V0KDApOwot ICAgICAgICAgc2V0QmFja2dyb3VuZENvbG9yKG1fdGhlbWUtPnRleHR1cmUoKS5jb2xvcigpKTsK LSAgICAgfQotIAotLSAgICB1cGRhdGVCYWNrZ3JvdW5kKGZhbHNlKTsKLSsgICAgLy91cGRhdGVC YWNrZ3JvdW5kKGZhbHNlKTsKLSB9Ci0gCi0gdm9pZCBJY29uQnV0dG9uOjpyZWNvbmZpZ0FuZENs ZWFyKCkgewotQEAgLTE4MSw3ICsxODEsOCBAQCB2b2lkIEljb25CdXR0b246OnJlZnJlc2hFdmVy eXRoaW5nKGJvb2wgc2V0dXApIHsKLSAgICAgRGlzcGxheSAqZGlzcGxheSA9IEZiVGs6OkFwcDo6 aW5zdGFuY2UoKS0+ZGlzcGxheSgpOwotICAgICBpbnQgc2NyZWVuID0gbV93aW4uc2NyZWVuKCku c2NyZWVuTnVtYmVyKCk7Ci0gCi0tICAgIGlmIChtX3VzZV9waXhtYXAgJiYgbV93aW4uaWNvbigp LnBpeG1hcCgpLmRyYXdhYmxlKCkgIT0gTm9uZSkgewotKyAgICBpZiAobV91c2VfcGl4bWFwICYm IG1fd2luLmljb24oKS5waXhtYXAoKS5kcmF3YWJsZSgpICE9IE5vbmUgJiYKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgoKSA+IG1faWNvbl93aW5kb3cud2lkdGgo KSApIHsKLSAgICAgICAgIC8vIHNldHVwIGljb24gd2luZG93Ci0gICAgICAgICBtX2ljb25fd2lu ZG93LnNob3coKTsKLSAgICAgICAgIHVuc2lnbmVkIGludCB3ID0gd2lkdGgoKTsKLUBAIC0yNDIs NyArMjQzLDYgQEAgdm9pZCBJY29uQnV0dG9uOjpyZWZyZXNoRXZlcnl0aGluZyhib29sIHNldHVw KSB7Ci0gICAgICAgICBtX2ljb25fd2luZG93LmNsZWFyKCk7Ci0gICAgIH0KLSAKLS0KLSB9Ci0g Ci0gdm9pZCBJY29uQnV0dG9uOjpjbGllbnRUaXRsZUNoYW5nZWQoKSB7Ci1AQCAtMjUxLDI0ICsy NTEsMzAgQEAgdm9pZCBJY29uQnV0dG9uOjpjbGllbnRUaXRsZUNoYW5nZWQoKSB7Ci0gCi0gICAg IGlmIChtX2hhc190b29sdGlwKQotICAgICAgICAgc2hvd1Rvb2x0aXAoKTsKLSsKLSB9Ci0gCi0g dm9pZCBJY29uQnV0dG9uOjpzZXR1cFdpbmRvdygpIHsKLSAgICAgbV9pY29uX3dpbmRvdy5jbGVh cigpOwotKyAgICAvL0ZiVGs6OkZiU3RyaW5nIHRpdGxlID0gInd0ZjIiOwotICAgICBGYlRrOjpG YlN0cmluZyB0aXRsZSA9IG1fd2luLnRpdGxlKCkubG9naWNhbCgpOwotLSAgICBpZiAobV93aW4u ZmJ3aW5kb3coKSAmJiBtX3dpbi5mYndpbmRvdygpLT5pc0ljb25pYygpKQotLSAgICAgICAgdGl0 bGUgPSBJY29uYmFyVG9vbDo6aWNvbmlmaWVkUHJlZml4KCkgKyB0aXRsZSArIEljb25iYXJUb29s OjppY29uaWZpZWRTdWZmaXgoKTsKLSsgICAgLy8jaWYgVVNFX1RPT0xCQVIKLSsgICAgLy9pZiAo bV93aW4uZmJ3aW5kb3coKSAmJiBtX3dpbi5mYndpbmRvdygpLT5pc0ljb25pYygpKQotKyAgICAv LyAgICB0aXRsZSA9IEljb25iYXJUb29sOjppY29uaWZpZWRQcmVmaXgoKSArIHRpdGxlICsgSWNv bmJhclRvb2w6Omljb25pZmllZFN1ZmZpeCgpOwotKyAgICAvLyNlbmRpZgotICAgICBzZXRUZXh0 KHRpdGxlKTsKLSAgICAgRmJUazo6VGV4dEJ1dHRvbjo6Y2xlYXIoKTsKLSB9Ci0gCi0gdm9pZCBJ Y29uQnV0dG9uOjpkcmF3VGV4dChpbnQgeCwgaW50IHksIEZiVGs6OkZiRHJhd2FibGUgKmRyYXdh YmxlKSB7Ci0gCi0tICAgIC8vIG9mZnNldCB0ZXh0Ci0tICAgIGlmIChtX2ljb25fcGl4bWFwLmRy YXdhYmxlKCkgIT0gMCkKLS0gICAgICAgIEZiVGs6OlRleHRCdXR0b246OmRyYXdUZXh0KG1faWNv bl93aW5kb3cueCgpICsgbV9pY29uX3dpbmRvdy53aWR0aCgpICsgMSwgeSwgZHJhd2FibGUpOwot LSAgICBlbHNlCi0tICAgICAgICBGYlRrOjpUZXh0QnV0dG9uOjpkcmF3VGV4dCgxLCB5LCBkcmF3 YWJsZSk7Ci0rICAgIGlmICh3aWR0aCgpID4gbV9pY29uX3dpbmRvdy53aWR0aCgpICkgewotKyAg ICAgIC8vIG9mZnNldCB0ZXh0Ci0rICAgICAgaWYgKG1faWNvbl9waXhtYXAuZHJhd2FibGUoKSAh PSAwKQotKyAgICAgICAgICBGYlRrOjpUZXh0QnV0dG9uOjpkcmF3VGV4dChtX2ljb25fd2luZG93 LngoKSArIG1faWNvbl93aW5kb3cud2lkdGgoKSArIDEsIHksIGRyYXdhYmxlKTsKLSsgICAgICBl bHNlCi0rICAgICAgICAgIEZiVGs6OlRleHRCdXR0b246OmRyYXdUZXh0KDEsIHksIGRyYXdhYmxl KTsKLSsgICAgfQotIH0KLSAKLSBib29sIEljb25CdXR0b246OnNldE9yaWVudGF0aW9uKEZiVGs6 Ok9yaWVudGF0aW9uIG9yaWVudCkgewotZGlmZiAtLWdpdCBhL3NyYy9JY29uYmFyVG9vbC5jYyBi L3NyYy9JY29uYmFyVG9vbC5jYwotaW5kZXggMDI3YWIxYzYuLmY2NGE0Y2Y2IDEwMDY0NAotLS0t IGEvc3JjL0ljb25iYXJUb29sLmNjCi0rKysgYi9zcmMvSWNvbmJhclRvb2wuY2MKLUBAIC0zMDAs NiArMzAwLDExIEBAIEljb25iYXJUb29sOjpJY29uYmFyVG9vbChjb25zdCBGYlRrOjpGYldpbmRv dyAmcGFyZW50LCBJY29uYmFyVGhlbWUgJnRoZW1lLAotICAgICBGYlRrOjpSZWZDb3VudDxGYlRr OjpDb21tYW5kPHZvaWQ+ID4gZXJzKG5ldyBGYlRrOjpTaW1wbGVDb21tYW5kPEljb25iYXJUb29s PigqdGhpcywgJkljb25iYXJUb29sOjplbWl0UmVzaXplU2lnKSk7Ci0gICAgIG1fcmVzaXplU2ln X3RpbWVyLnNldENvbW1hbmQoZXJzKTsKLSAKLSsgICAgbV9sb2NrZXJfdGltZXIuc2V0VGltZW91 dChJY29uQnV0dG9uOjp1cGRhdGVMYXppbmVzcygpIC8gMTApOyAvLyAxMG1pbGxpc2VjCi0rICAg IG1fbG9ja2VyX3RpbWVyLmZpcmVPbmNlKHRydWUpOwotKyAgICBGYlRrOjpSZWZDb3VudDxGYlRr OjpDb21tYW5kPHZvaWQ+ID4gdXNpZyhuZXcgRmJUazo6U2ltcGxlQ29tbWFuZDxJY29uYmFyVG9v bD4oKnRoaXMsICZJY29uYmFyVG9vbDo6dW5sb2NrU2lnKSk7Ci0rICAgIG1fbG9ja2VyX3RpbWVy LnNldENvbW1hbmQodXNpZyk7Ci0rCi0gICAgIHRoZW1lUmVjb25maWd1cmVkKCk7Ci0gfQotIAot QEAgLTMyNSw3ICszMzAsNyBAQCB2b2lkIEljb25iYXJUb29sOjp1cGRhdGVNYXhTaXplcyh1bnNp Z25lZCBpbnQgd2lkdGgsIHVuc2lnbmVkIGludCBoZWlnaHQpIHsKLSAKLSB2b2lkIEljb25iYXJU b29sOjpyZXNpemUodW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0KSB7Ci0g ICAgIG1faWNvbl9jb250YWluZXIucmVzaXplKHdpZHRoLCBoZWlnaHQpOwotLSAgICB1cGRhdGVN YXhTaXplcyh3aWR0aCwgaGVpZ2h0KTsKLSsgICAgLy91cGRhdGVNYXhTaXplcyh3aWR0aCwgaGVp Z2h0KTsKLSAgICAgcmVuZGVyVGhlbWUoKTsKLSB9Ci0gCi1AQCAtMzMzLDcgKzMzOCw3IEBAIHZv aWQgSWNvbmJhclRvb2w6Om1vdmVSZXNpemUoaW50IHgsIGludCB5LAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0KSB7 Ci0gCi0gICAgIG1faWNvbl9jb250YWluZXIubW92ZVJlc2l6ZSh4LCB5LCB3aWR0aCwgaGVpZ2h0 KTsKLS0gICAgdXBkYXRlTWF4U2l6ZXMod2lkdGgsIGhlaWdodCk7Ci0rICAgIC8vdXBkYXRlTWF4 U2l6ZXMod2lkdGgsIGhlaWdodCk7Ci0gICAgIHJlbmRlclRoZW1lKCk7Ci0gfQotIAotQEAgLTM5 Myw2ICszOTgsMjUgQEAgdm9pZCBJY29uYmFyVG9vbDo6c2V0TW9kZShzdHJpbmcgbW9kZSkgewot ICAgICBtX21lbnUucmVjb25maWd1cmUoKTsKLSB9Ci0gCi0rLy8gZm9yIGluY3JlbWVudGFsIGNo YW5nZXMsIGJhY2sgb2ZmIGZvciBhIGJpdAotKy8vIHByZXZlbnRzIHNsb3dkb3duIGZyb20gc2F5 LCBtYWtpbmcgMjAwIHdpbmRvd3MKLSt2b2lkIEljb25iYXJUb29sOjpyZXNldExvY2soKSB7Ci0r ICAgIG1fbG9ja19nZnggPSB0cnVlOwotKyAgICBtX2xvY2tlcl90aW1lci5zdGFydCgpOwotK30K LSsKLSt2b2lkIEljb25iYXJUb29sOjp1bmxvY2tTaWcoKSB7Ci0rICAgIG1fbG9ja19nZnggPSBm YWxzZTsKLSsgICAgLy9yZXNpemVTaWcoKS5lbWl0KCk7Ci0rICAgIC8vIHRoaXMgaXMgd2hhdCB3 ZSB3YW50ZWQgdG8gZG8KLSsgICAgbV9pY29uX2NvbnRhaW5lci5zZXRVcGRhdGVMb2NrKGZhbHNl KTsKLSsgICAgbV9pY29uX2NvbnRhaW5lci51cGRhdGUoKTsKLSsgICAgbV9pY29uX2NvbnRhaW5l ci5zaG93U3Vid2luZG93cygpOwotKyAgICByZW5kZXJUaGVtZSgpOwotKyAgICB1cGRhdGUoQUxJ R04sIE5VTEwpOwotKyAgICBtX3Jlc2l6ZVNpZ190aW1lci5zdGFydCgpOwotK30KLSsKLSB2b2lk IEljb25iYXJUb29sOjplbWl0UmVzaXplU2lnKCkgewotICAgICByZXNpemVTaWcoKS5lbWl0KCk7 Ci0gfQotQEAgLTQ0MSw5ICs0NjUsMTEgQEAgdm9pZCBJY29uYmFyVG9vbDo6dXBkYXRlKFVwZGF0 ZVJlYXNvbiByZWFzb24sIEZvY3VzYWJsZSAqd2luKSB7Ci0gICAgIHN3aXRjaChyZWFzb24pIHsK LSAgICAgICAgIGNhc2UgTElTVF9BREQ6IGNhc2UgTElTVF9PUkRFUjoKLSAgICAgICAgICAgICBp bnNlcnRXaW5kb3coKndpbik7Ci0rICAgICAgICAgICAgcmVzZXRMb2NrKCk7Ci0gICAgICAgICAg ICAgYnJlYWs7Ci0gICAgICAgICBjYXNlIExJU1RfUkVNT1ZFOgotICAgICAgICAgICAgIHJlbW92 ZVdpbmRvdygqd2luKTsKLSsgICAgICAgICAgICByZXNldExvY2soKTsKLSAgICAgICAgICAgICBi cmVhazsKLSAgICAgICAgIGNhc2UgTElTVF9SRVNFVDoKLSAgICAgICAgICAgICByZXNldCgpOwot QEAgLTQ1NSw2ICs0ODEsMTAgQEAgdm9pZCBJY29uYmFyVG9vbDo6dXBkYXRlKFVwZGF0ZVJlYXNv biByZWFzb24sIEZvY3VzYWJsZSAqd2luKSB7Ci0gICAgIG1fcmVzaXplU2lnX3RpbWVyLnN0YXJ0 KCk7Ci0gCi0gICAgIHVwZGF0ZU1heFNpemVzKHdpZHRoKCksIGhlaWdodCgpKTsKLSsKLSsgICAg aWYgKG1fbG9ja19nZngpCi0rICAgICAgICByZXR1cm47Ci0rCi0gICAgIC8vIHVubG9jayBjb250 YWluZXIgYW5kIHVwZGF0ZSBncmFwaGljcwotICAgICBtX2ljb25fY29udGFpbmVyLnNldFVwZGF0 ZUxvY2soZmFsc2UpOwotICAgICBtX2ljb25fY29udGFpbmVyLnVwZGF0ZSgpOwotQEAgLTQ5Niwx MyArNTI2LDEzIEBAIHZvaWQgSWNvbmJhclRvb2w6Omluc2VydFdpbmRvdyhGb2N1c2FibGUgJndp biwgaW50IHBvcykgewotICAgICAgICAgYnV0dG9uID0gbWFrZUJ1dHRvbih3aW4pOwotICAgICBp ZiAoIWJ1dHRvbikgcmV0dXJuOwotIAotLSAgICBpZiAocG9zID09IC0yKSB7Ci0tICAgICAgICBw b3MgPSAwOwotLSAgICAgICAgbGlzdDxGb2N1c2FibGUgKj46Oml0ZXJhdG9yIGl0ID0gbV93aW5s aXN0LT5jbGllbnRMaXN0KCkuYmVnaW4oKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpdF9lbmQgPSBtX3dpbmxpc3QtPmNsaWVudExpc3QoKS5lbmQoKTsKLS0gICAgICAg IGZvciAoOyBpdCAhPSBpdF9lbmQgJiYgKml0ICE9ICZ3aW47ICsraXQpCi0tICAgICAgICAgICAg cG9zKys7Ci0tICAgIH0KLSsgICAgLy9pZiAocG9zID09IC0yKSB7Ci0rICAgIC8vICAgIHBvcyA9 IDA7Ci0rICAgIC8vICAgIGxpc3Q8Rm9jdXNhYmxlICo+OjppdGVyYXRvciBpdCA9IG1fd2lubGlz dC0+Y2xpZW50TGlzdCgpLmJlZ2luKCksCi0rICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpdF9lbmQgPSBtX3dpbmxpc3QtPmNsaWVudExpc3QoKS5lbmQoKTsKLSsgICAgLy8g ICAgZm9yICg7IGl0ICE9IGl0X2VuZCAmJiAqaXQgIT0gJndpbjsgKytpdCkKLSsgICAgLy8gICAg ICAgIHBvcysrOwotKyAgICAvL30KLSAKLSAgICAgbV9pY29uX2NvbnRhaW5lci5pbnNlcnRJdGVt KGJ1dHRvbiwgcG9zKTsKLSAgICAgbV90cmFja2VyLmpvaW4oYnV0dG9uLT50aXRsZUNoYW5nZWQo KSwgRmJUazo6TWVtRnVuKG1fcmVzaXplU2lnX3RpbWVyLCAmRmJUazo6VGltZXI6OnN0YXJ0KSk7 Ci1AQCAtNTE3LDkgKzU0Nyw5IEBAIHZvaWQgSWNvbmJhclRvb2w6OnVwZGF0ZVNpemluZygpIHsK LSAgICAgbV9pY29uX2NvbnRhaW5lci5zZXRCb3JkZXJXaWR0aChtX3RoZW1lLmJvcmRlcigpLndp ZHRoKCkpOwotICAgICBtX2ljb25fY29udGFpbmVyLnNldEJvcmRlckNvbG9yKG1fdGhlbWUuYm9y ZGVyKCkuY29sb3IoKSk7Ci0gCi0tICAgIEZiVGs6OlNUTFV0aWw6OmZvckFsbChtX2ljb25zLCAK LS0gICAgICAgICAgICBGYlRrOjpDb21wb3NlKHN0ZDo6bWVtX2Z1bigmSWNvbkJ1dHRvbjo6cmVj b25maWdUaGVtZSksIAotLSAgICAgICAgICAgICAgICBGYlRrOjpTZWxlY3QybmQ8SWNvbk1hcDo6 dmFsdWVfdHlwZT4oKSkpOwotKyAgICAvL0ZiVGs6OlNUTFV0aWw6OmZvckFsbChtX2ljb25zLCAK LSsgICAgLy8gICAgICAgIEZiVGs6OkNvbXBvc2Uoc3RkOjptZW1fZnVuKCZJY29uQnV0dG9uOjpy ZWNvbmZpZ1RoZW1lKSwgCi0rICAgIC8vICAgICAgICAgICAgRmJUazo6U2VsZWN0Mm5kPEljb25N YXA6OnZhbHVlX3R5cGU+KCkpKTsKLSAKLSB9Ci0gCi1AQCAtNTYwLDcgKzU5MCw3IEBAIHZvaWQg SWNvbmJhclRvb2w6OnJlbmRlckJ1dHRvbihJY29uQnV0dG9uICZidXR0b24sIGJvb2wgY2xlYXIp IHsKLSAKLSAgICAgYnV0dG9uLnNldFBpeG1hcCgqbV9yY191c2VfcGl4bWFwKTsKLSAgICAgYnV0 dG9uLnNldFRleHRQYWRkaW5nKCptX3JjX2NsaWVudF9wYWRkaW5nKTsKLS0gICAgYnV0dG9uLnJl Y29uZmlnVGhlbWUoKTsKLSsgICAgLy9idXR0b24ucmVjb25maWdUaGVtZSgpOwotICAgICBpZiAo Y2xlYXIpCi0gICAgICAgICBidXR0b24uY2xlYXIoKTsgLy8gdGhlIGNsZWFyIGFsc28gdXBkYXRl cyB0cmFuc3BhcmVudAotIH0KLWRpZmYgLS1naXQgYS9zcmMvSWNvbmJhclRvb2wuaGggYi9zcmMv SWNvbmJhclRvb2wuaGgKLWluZGV4IGRmNmQ5YTY1Li4xYzIxMDFhYyAxMDA2NDQKLS0tLSBhL3Ny Yy9JY29uYmFyVG9vbC5oaAotKysrIGIvc3JjL0ljb25iYXJUb29sLmhoCi1AQCAtMTA2LDYgKzEw Niw5IEBAIHByaXZhdGU6Ci0gCi0gICAgIHZvaWQgdGhlbWVSZWNvbmZpZ3VyZWQoKTsKLSAKLSsg ICAgdm9pZCByZXNldExvY2soKTsKLSsgICAgdm9pZCB1bmxvY2tTaWcoKTsKLSsgICAgRmJUazo6 VGltZXIgbV9sb2NrZXJfdGltZXI7Ci0gICAgIEZiVGs6OlRpbWVyIG1fcmVzaXplU2lnX3RpbWVy OwotICAgICB2b2lkIGVtaXRSZXNpemVTaWcoKTsKLSAKLUBAIC0xMjgsNiArMTMxLDcgQEAgcHJp dmF0ZToKLSAgICAgRmJNZW51IG1fbWVudTsKLSAgICAgaW50IG1fYWxwaGE7Ci0gICAgIHN0YXRp YyBzdGQ6OnN0cmluZyBzX2ljb25pZmllZERlY29yYXRpb25bMl07Ci0rICAgIGJvb2wgbV9sb2Nr X2dmeCA9IGZhbHNlOwotIH07Ci0gCi0gI2VuZGlmIC8vIElDT05CQVJUT09MX0hICmRpZmYgLS1n aXQgYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9jb250YWluZXJfcmVsYXRpdmVfcmVsYXRpdmUu cGF0Y2ggYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9jb250YWluZXJfcmVsYXRpdmVfcmVsYXRp dmUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjM2RkYjUxODFiNS4uMDAw MDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL2NvbnRhaW5lcl9yZWxhdGl2 ZV9yZWxhdGl2ZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLWRpZmYgLS1n aXQgYS9zcmMvRmJUay9Db250YWluZXIuY2MgYi9zcmMvRmJUay9Db250YWluZXIuY2MKLWluZGV4 IGNlYTc2MWIzLi4wZTA1MGEwYiAxMDA2NDQKLS0tLSBhL3NyYy9GYlRrL0NvbnRhaW5lci5jYwot KysrIGIvc3JjL0ZiVGsvQ29udGFpbmVyLmNjCi1AQCAtMzY1LDYgKzM2NSw5IEBAIHZvaWQgQ29u dGFpbmVyOjpyZXBvc2l0aW9uSXRlbXMoKSB7Ci0gICAgIGNvbnN0IEl0ZW1MaXN0OjppdGVyYXRv ciBpdF9lbmQgPSBlbmQoKTsKLQotICAgICBpbnQgcm91bmRpbmdfZXJyb3IgPSAwOwotKyAgICBp ZiAoYWxpZ24gPT0gUkVMQVRJVkUgfHwgdG90YWxfd2lkdGggPT0gbV9tYXhfdG90YWxfc2l6ZSkg ewotKyAgICAgICAgcm91bmRpbmdfZXJyb3IgPSB0b3RhbF93aWR0aCAtICgobWF4X3dpZHRoX3Bl cl9jbGllbnQgKyBib3JkZXJXKSogbnVtX2l0ZW1zIC0gYm9yZGVyVyk7Ci0rICAgIH0KLQotICAg ICBpbnQgbmV4dF94ID0gLWJvcmRlclc7IC8vIHplcm8gc28gdGhlIGJvcmRlciBvZiB0aGUgZmly c3Qgc2hvd3MKLSAgICAgaW50IGV4dHJhID0gMDsKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mbHV4 Ym94L3BhdGNoZXMvZmx1eF9pbXByb3ZlLnBhdGNoIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNoZXMv Zmx1eF9pbXByb3ZlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxM2ExYWVi YTYyMWMuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9mbHV4X2lt cHJvdmUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMDUgKzAsMCBAQAotZGlmZiAtLWdpdCBh L3NyYy9Fd21oLmNjIGIvc3JjL0V3bWguY2MKLWluZGV4IGUxMmE3OTIzLi5kYjFkZGQ0NSAxMDA2 NDQKLS0tLSBhL3NyYy9Fd21oLmNjCi0rKysgYi9zcmMvRXdtaC5jYwotQEAgLTEwOTYsMTUgKzEw OTYsMTkgQEAgYm9vbCBFd21oOjpjaGVja0NsaWVudE1lc3NhZ2UoY29uc3QgWENsaWVudE1lc3Nh Z2VFdmVudCAmY2UsCi0gICAgICAgICAvLyBjZS5kYXRhLmxbMF0gPSB0aGUgYWN0aW9uIChyZW1v dmUsIGFkZCBvciB0b2dnbGUpCi0gICAgICAgICAvLyBjZS5kYXRhLmxbMV0gPSB0aGUgZmlyc3Qg cHJvcGVydHkgdG8gYWx0ZXIKLSAgICAgICAgIC8vIGNlLmRhdGEubFsyXSA9IHNlY29uZCBwcm9w ZXJ0eSB0byBhbHRlciAoY2FuIGJlIHplcm8pCi0tICAgICAgICBpZiAoY2UuZGF0YS5sWzBdID09 IFNUQVRFX1JFTU9WRSkgewotLSAgICAgICAgICAgIHNldFN0YXRlKHdpbiwgY2UuZGF0YS5sWzFd LCBmYWxzZSwgKndpbmNsaWVudCk7Ci0tICAgICAgICAgICAgc2V0U3RhdGUod2luLCBjZS5kYXRh LmxbMl0sIGZhbHNlLCAqd2luY2xpZW50KTsKLS0gICAgICAgIH0gZWxzZSBpZiAoY2UuZGF0YS5s WzBdID09IFNUQVRFX0FERCkgewotLSAgICAgICAgICAgIHNldFN0YXRlKHdpbiwgY2UuZGF0YS5s WzFdLCB0cnVlLCAqd2luY2xpZW50KTsKLS0gICAgICAgICAgICBzZXRTdGF0ZSh3aW4sIGNlLmRh dGEubFsyXSwgdHJ1ZSwgKndpbmNsaWVudCk7Ci0tICAgICAgICB9IGVsc2UgaWYgKGNlLmRhdGEu bFswXSA9PSBTVEFURV9UT0dHTEUpIHsKLS0gICAgICAgICAgICB0b2dnbGVTdGF0ZSh3aW4sIGNl LmRhdGEubFsxXSk7Ci0tICAgICAgICAgICAgdG9nZ2xlU3RhdGUod2luLCBjZS5kYXRhLmxbMl0p OwotKyAgICAgICAgYm9vbCBhZGRyZW1vdmUgPSBmYWxzZTsgLy8gYWRkIHRydWUsIHJlbW92ZSBm YWxzZQotKwotKyAgICAgICAgc3dpdGNoIChjZS5kYXRhLmxbMF0pIHsKLSsgICAgICAgICAgY2Fz ZSBTVEFURV9UT0dHTEU6Ci0rICAgICAgICAgICAgICB0b2dnbGVTdGF0ZSh3aW4sIGNlLmRhdGEu bFsxXSk7Ci0rICAgICAgICAgICAgICB0b2dnbGVTdGF0ZSh3aW4sIGNlLmRhdGEubFsyXSk7Ci0r ICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgY2FzZSBTVEFURV9BREQ6Ci0rICAgICAg ICAgICAgICBhZGRyZW1vdmUgPSB0cnVlOwotKyAgICAgICAgICBjYXNlIFNUQVRFX1JFTU9WRToK LSsgICAgICAgICAgICAgIHNldFN0YXRlKHdpbiwgY2UuZGF0YS5sWzFdLCBhZGRyZW1vdmUsICp3 aW5jbGllbnQpOwotKyAgICAgICAgICAgICAgc2V0U3RhdGUod2luLCBjZS5kYXRhLmxbMl0sIGFk ZHJlbW92ZSwgKndpbmNsaWVudCk7Ci0rICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgIH0K LSAgICAgICAgIHJldHVybiB0cnVlOwotICAgICB9IGVsc2UgaWYgKGNlLm1lc3NhZ2VfdHlwZSA9 PSBtX25ldC0+bnVtYmVyX29mX2Rlc2t0b3BzKSB7Ci1kaWZmIC0tZ2l0IGEvc3JjL0ZiTWVudVBh cnNlci5jYyBiL3NyYy9GYk1lbnVQYXJzZXIuY2MKLWluZGV4IDcxNmNlZDI5Li41YTU2ZTZmNSAx MDA2NDQKLS0tLSBhL3NyYy9GYk1lbnVQYXJzZXIuY2MKLSsrKyBiL3NyYy9GYk1lbnVQYXJzZXIu Y2MKLUBAIC0zMyw5ICszMyw5IEBAIGJvb2wgRmJNZW51UGFyc2VyOjpvcGVuKGNvbnN0IHN0ZDo6 c3RyaW5nICZmaWxlbmFtZSkgewotIH0KLSAKLSBGYlRrOjpQYXJzZXIgJkZiTWVudVBhcnNlcjo6 b3BlcmF0b3IgPj4gKEZiVGs6OlBhcnNlcjo6SXRlbSAmb3V0KSB7Ci0tICAgIGlmIChlb2YoKSkg eyAgICAgICAgCi0rICAgIGlmIChlb2YoKSkgewotICAgICAgICAgb3V0ID0gRmJUazo6UGFyc2Vy OjpzX2VtcHR5X2l0ZW07Ci0tICAgICAgICByZXR1cm4gKnRoaXM7IAotKyAgICAgICAgcmV0dXJu ICp0aGlzOwotICAgICB9Ci0gCi0gICAgIGlmIChtX2N1cnJfbGluZS5lbXB0eSgpKQotQEAgLTY5 LDIwICs2OSwyNiBAQCBGYlRrOjpQYXJzZXIgJkZiTWVudVBhcnNlcjo6b3BlcmF0b3IgPj4gKEZi VGs6OlBhcnNlcjo6SXRlbSAmb3V0KSB7Ci0gICAgICAgICByZXR1cm4gKCp0aGlzKT4+b3V0Owot ICAgICAgICAgYnJlYWs7Ci0gICAgIH0KLS0gICAgCi0rCi0gICAgIHN0ZDo6c3RyaW5nIGtleTsK LSAgICAgaW50IGVyciA9IEZiVGs6OlN0cmluZ1V0aWw6OgotICAgICAgICAgZ2V0U3RyaW5nQmV0 d2VlbihrZXksIG1fY3Vycl9saW5lLmNfc3RyKCkgKyBtX2N1cnJfcG9zLAotICAgICAgICAgICAg ICAgICAgICAgICAgICBmaXJzdCwgc2Vjb25kKTsKLS0gICAgaWYgKGVyciA8PSAwKSB7ICAgICAg ICAKLS0gICAgICAgIGlmIChtX2N1cnJfdG9rZW4gPT0gVFlQRSkKLSsgICAgaWYgKGVyciA8PSAw KSB7Ci0rICAgICAgICBzd2l0Y2ggKG1fY3Vycl90b2tlbikgewotKyAgICAgICAgICBjYXNlIFRZ UEU6Ci0gICAgICAgICAgICAgbV9jdXJyX3Rva2VuID0gTkFNRTsKLS0gICAgICAgIGVsc2UgaWYg KG1fY3Vycl90b2tlbiA9PSBOQU1FKQotKyAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgICBj YXNlIE5BTUU6Ci0gICAgICAgICAgICAgbV9jdXJyX3Rva2VuID0gQVJHVU1FTlQ7Ci0tICAgICAg ICBlbHNlIGlmIChtX2N1cnJfdG9rZW4gPT0gQVJHVU1FTlQpCi0rICAgICAgICAgICAgYnJlYWs7 Ci0rICAgICAgICAgIGNhc2UgQVJHVU1FTlQ6Ci0gICAgICAgICAgICAgbV9jdXJyX3Rva2VuID0g SUNPTjsKLS0gICAgICAgIGVsc2UgaWYgKG1fY3Vycl90b2tlbiA9PSBJQ09OKQotKyAgICAgICAg ICAgIGJyZWFrOwotKyAgICAgICAgICBjYXNlIElDT046Ci0gICAgICAgICAgICAgbV9jdXJyX3Rv a2VuID0gRE9ORTsKLSsgICAgICAgICAgICBicmVhazsKLSsgICAgICAgIH0KLSAKLSAgICAgICAg IG91dCA9IEZiVGs6OlBhcnNlcjo6c19lbXB0eV9pdGVtOwotICAgICAgICAgcmV0dXJuICp0aGlz OwotZGlmZiAtLWdpdCBhL3NyYy9SZW1lbWJlci5jYyBiL3NyYy9SZW1lbWJlci5jYwotaW5kZXgg NDllNjEwNjIuLjRmMGJhM2RiIDEwMDY0NAotLS0tIGEvc3JjL1JlbWVtYmVyLmNjCi0rKysgYi9z cmMvUmVtZW1iZXIuY2MKLUBAIC04MDIsMzkgKzgwMiw0MSBAQCB2b2lkIFJlbWVtYmVyOjpyZWxv YWQoKSB7Ci0gICAgICAgICAgICAgaW50IHBvcyA9IGdldFN0cmluZ0JldHdlZW4oa2V5LCBsaW5l LmNfc3RyKCksICdbJywgJ10nKTsKLSAgICAgICAgICAgICBzdHJpbmcgbGNfa2V5ID0gdG9Mb3dl cihrZXkpOwotIAotLSAgICAgICAgICAgIGlmIChwb3MgPiAwICYmIChsY19rZXkgPT0gImFwcCIg fHwgbGNfa2V5ID09ICJ0cmFuc2llbnQiKSkgewotLSAgICAgICAgICAgICAgICBDbGllbnRQYXR0 ZXJuICpwYXQgPSBuZXcgQ2xpZW50UGF0dGVybihsaW5lLmNfc3RyKCkgKyBwb3MpOwotLSAgICAg ICAgICAgICAgICBpZiAoIWluX2dyb3VwKSB7Ci0tICAgICAgICAgICAgICAgICAgICBpZiAoKGVy ciA9IHBhdC0+ZXJyb3IoKSkgPT0gMCkgewotLSAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg dHJhbnNpZW50ID0gKGxjX2tleSA9PSAidHJhbnNpZW50Iik7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgQXBwbGljYXRpb24gKmFwcCA9IGZpbmRNYXRjaGluZ1BhdHRlcm5zKHBhdCwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZF9wYXRzLCB0cmFu c2llbnQsIGZhbHNlKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXBwKSB7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFwcC0+cmVzZXQoKTsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmV1c2VkX2FwcHMuaW5zZXJ0KGFwcCk7Ci0rICAgICAgICAgICAgaWYgKHBv cyA+IDApIHsKLSsgICAgICAgICAgICAgICAgaWYgKGxjX2tleSA9PSAiYXBwIiB8fCBsY19rZXkg PT0gInRyYW5zaWVudCIpIHsKLSsgICAgICAgICAgICAgICAgICAgIENsaWVudFBhdHRlcm4gKnBh dCA9IG5ldyBDbGllbnRQYXR0ZXJuKGxpbmUuY19zdHIoKSArIHBvcyk7Ci0rICAgICAgICAgICAg ICAgICAgICBpZiAoIWluX2dyb3VwKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChl cnIgPSBwYXQtPmVycm9yKCkpID09IDApIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ym9vbCB0cmFuc2llbnQgPSAobGNfa2V5ID09ICJ0cmFuc2llbnQiKTsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQXBwbGljYXRpb24gKmFwcCA9IGZpbmRNYXRjaGluZ1BhdHRlcm5zKHBh dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv bGRfcGF0cywgdHJhbnNpZW50LCBmYWxzZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIChhcHApIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcC0+cmVzZXQo KTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldXNlZF9hcHBzLmluc2VydChh cHApOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXBwID0gbmV3IEFwcGxpY2F0aW9uKHRyYW5zaWVudCwgZmFs c2UpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0rCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1fcGF0cy0+cHVzaF9iYWNrKG1ha2VfcGFpcihwYXQsIGFwcCkpOwotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICByb3cgKz0gcGFyc2VBcHAoYXBwc19maWxlLCAqYXBw KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhcHAgPSBuZXcgQXBwbGljYXRpb24odHJhbnNpZW50LCBmYWxzZSk7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnI8PCJFcnJvciByZWFkaW5nIGFwcHMgZmlsZSBh dCBsaW5lICI8PHJvdzw8IiwgY29sdW1uICI8PChlcnIrcG9zKTw8Ii4iPDxlbmRsOwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgcGF0OyAvLyBzaW5jZSBpdCBkaWRuJ3Qgd29y awotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICBtX3BhdHMtPnB1c2hfYmFjayhtYWtlX3BhaXIocGF0LCBhcHApKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICByb3cgKz0gcGFyc2VBcHAoYXBwc19maWxlLCAqYXBwKTsKLSAgICAgICAgICAg ICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgY2Vycjw8IkVycm9y IHJlYWRpbmcgYXBwcyBmaWxlIGF0IGxpbmUgIjw8cm93PDwiLCBjb2x1bW4gIjw8KGVycitwb3Mp PDwiLiI8PGVuZGw7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHBhdDsgLy8gc2lu Y2UgaXQgZGlkbid0IHdvcmsKLSsgICAgICAgICAgICAgICAgICAgICAgICBncm91cGVkX3BhdHMu cHVzaF9iYWNrKHBhdCk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAg IH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgICAgICBncm91cGVkX3BhdHMucHVzaF9iYWNrKHBh dCk7Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9IGVsc2UgaWYgKHBvcyA+IDAg JiYgbGNfa2V5ID09ICJzdGFydHVwIiAmJiBmYi5pc1N0YXJ0dXAoKSkgewotLSAgICAgICAgICAg ICAgICBpZiAoIWhhbmRsZVN0YXJ0dXBJdGVtKGxpbmUsIHBvcykpIHsKLS0gICAgICAgICAgICAg ICAgICAgIGNlcnI8PCJFcnJvciByZWFkaW5nIGFwcHMgZmlsZSBhdCBsaW5lICI8PHJvdzw8Ii4i PDxlbmRsOwotKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxjX2tleSA9PSAic3RhcnR1cCIg JiYgZmIuaXNTdGFydHVwKCkpIHsKLSsgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlU3Rh cnR1cEl0ZW0obGluZSwgcG9zKSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgIGNlcnI8PCJF cnJvciByZWFkaW5nIGFwcHMgZmlsZSBhdCBsaW5lICI8PHJvdzw8Ii4iPDxlbmRsOwotKyAgICAg ICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAgICAgLy8gc2F2ZSB0aGUgaXRlbSBl dmVuIGlmIGl0IHdhcyBiYWQgKGFyZW4ndCB3ZSBuaWNlKQotKyAgICAgICAgICAgICAgICAgICAg bV9zdGFydHVwcy5wdXNoX2JhY2sobGluZS5zdWJzdHIocG9zKSk7Ci0rICAgICAgICAgICAgICAg IH0gZWxzZSBpZiAobGNfa2V5ID09ICJncm91cCIpIHsKLSsgICAgICAgICAgICAgICAgICAgIGlu X2dyb3VwID0gdHJ1ZTsKLSsgICAgICAgICAgICAgICAgICAgIGlmIChsaW5lLmZpbmQoJygnKSAh PSBzdHJpbmc6Om5wb3MpCi0rICAgICAgICAgICAgICAgICAgICAgICAgcGF0ID0gbmV3IENsaWVu dFBhdHRlcm4obGluZS5jX3N0cigpICsgcG9zKTsKLSAgICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgICAgICAvLyBzYXZlIHRoZSBpdGVtIGV2ZW4gaWYgaXQgd2FzIGJhZCAoYXJlbid0IHdl IG5pY2UpCi0tICAgICAgICAgICAgICAgIG1fc3RhcnR1cHMucHVzaF9iYWNrKGxpbmUuc3Vic3Ry KHBvcykpOwotLSAgICAgICAgICAgIH0gZWxzZSBpZiAocG9zID4gMCAmJiBsY19rZXkgPT0gImdy b3VwIikgewotLSAgICAgICAgICAgICAgICBpbl9ncm91cCA9IHRydWU7Ci0tICAgICAgICAgICAg ICAgIGlmIChsaW5lLmZpbmQoJygnKSAhPSBzdHJpbmc6Om5wb3MpCi0tICAgICAgICAgICAgICAg ICAgICBwYXQgPSBuZXcgQ2xpZW50UGF0dGVybihsaW5lLmNfc3RyKCkgKyBwb3MpOwotICAgICAg ICAgICAgIH0gZWxzZSBpZiAoaW5fZ3JvdXApIHsKLSAgICAgICAgICAgICAgICAgLy8gb3RoZXJ3 aXNlIGFzc3VtZSB0aGF0IGl0IGlzIHRoZSBzdGFydCBvZiB0aGUgYXR0cmlidXRlcwotICAgICAg ICAgICAgICAgICBBcHBsaWNhdGlvbiAqYXBwID0gMDsKLWRpZmYgLS1naXQgYS9zcmMvU3lzdGVt VHJheS5jYyBiL3NyYy9TeXN0ZW1UcmF5LmNjCi1pbmRleCA4YzQyODc3YS4uMWZjMmIwYTggMTAw NjQ0Ci0tLS0gYS9zcmMvU3lzdGVtVHJheS5jYwotKysrIGIvc3JjL1N5c3RlbVRyYXkuY2MKLUBA IC01NTAsMTAgKzU1MCwxMiBAQCB2b2lkIFN5c3RlbVRyYXk6OnJlYXJyYW5nZUNsaWVudHMoKSB7 Ci0gICAgIENsaWVudExpc3Q6Oml0ZXJhdG9yIGNsaWVudF9pdCA9IG1fY2xpZW50cy5iZWdpbigp OwotICAgICBDbGllbnRMaXN0OjppdGVyYXRvciBjbGllbnRfaXRfZW5kID0gbV9jbGllbnRzLmVu ZCgpOwotICAgICBpbnQgbmV4dF94ID0gYnc7Ci0rICAgIGludCB4LCB5OwotICAgICBmb3IgKDsg Y2xpZW50X2l0ICE9IGNsaWVudF9pdF9lbmQ7ICsrY2xpZW50X2l0KSB7Ci0gICAgICAgICBpZiAo ISgqY2xpZW50X2l0KS0+aXNWaXNpYmxlKCkpCi0gICAgICAgICAgICAgY29udGludWU7Ci0tICAg ICAgICBpbnQgeCA9IG5leHRfeCwgeSA9IGJ3OwotKyAgICAgICAgeCA9IG5leHRfeDsKLSsgICAg ICAgIHkgPSBidzsKLSAgICAgICAgIG5leHRfeCArPSBoX3JvdDArYnc7Ci0gICAgICAgICB0cmFu c2xhdGVDb29yZHMob3JpZW50YXRpb24oKSwgeCwgeSwgd19yb3QwLCBoX3JvdDApOwotICAgICAg ICAgdHJhbnNsYXRlUG9zaXRpb24ob3JpZW50YXRpb24oKSwgeCwgeSwgaF9yb3QwLCBoX3JvdDAs IDApOwotZGlmZiAtLWdpdCBhL3NyYy9XaW5kb3cuY2MgYi9zcmMvV2luZG93LmNjCi1pbmRleCAz NDJlNDg4NS4uNzEzZDE1MTAgMTAwNjQ0Ci0tLS0gYS9zcmMvV2luZG93LmNjCi0rKysgYi9zcmMv V2luZG93LmNjCi1AQCAtMzI2NywxNCArMzI2NywxOCBAQCB2b2lkIEZsdXhib3hXaW5kb3c6OmRv U25hcHBpbmcoaW50ICZvcmlnX2xlZnQsIGludCAmb3JpZ190b3AsIGJvb2wgcmVzaXplKSB7Ci0g Rmx1eGJveFdpbmRvdzo6UmVmZXJlbmNlQ29ybmVyIEZsdXhib3hXaW5kb3c6OmdldFJlc2l6ZURp cmVjdGlvbihpbnQgeCwgaW50IHksCi0gICAgICAgICBSZXNpemVNb2RlbCBtb2RlbCwgaW50IGNv cm5lcl9zaXplX3B4LCBpbnQgY29ybmVyX3NpemVfcGMpIGNvbnN0Ci0gewotLSAgICBpZiAobW9k ZWwgPT0gVE9QTEVGVFJFU0laRSkgICAgIHJldHVybiBMRUZUVE9QOwotLSAgICBpZiAobW9kZWwg PT0gVE9QUkVTSVpFKSAgICAgICAgIHJldHVybiBUT1A7Ci0tICAgIGlmIChtb2RlbCA9PSBUT1BS SUdIVFJFU0laRSkgICAgcmV0dXJuIFJJR0hUVE9QOwotLSAgICBpZiAobW9kZWwgPT0gTEVGVFJF U0laRSkgICAgICAgIHJldHVybiBMRUZUOwotLSAgICBpZiAobW9kZWwgPT0gUklHSFRSRVNJWkUp ICAgICAgIHJldHVybiBSSUdIVDsKLS0gICAgaWYgKG1vZGVsID09IEJPVFRPTUxFRlRSRVNJWkUp ICByZXR1cm4gTEVGVEJPVFRPTTsKLS0gICAgaWYgKG1vZGVsID09IEJPVFRPTVJFU0laRSkgICAg ICByZXR1cm4gQk9UVE9NOwotLSAgICBpZiAobW9kZWwgPT0gQ0VOVEVSUkVTSVpFKSAgICAgIHJl dHVybiBDRU5URVI7Ci0rICAgIHN3aXRjaCAobW9kZWwpIHsKLSsgICAgY2FzZSBUT1BMRUZUUkVT SVpFOiAgICAgcmV0dXJuIExFRlRUT1A7Ci0rICAgIGNhc2UgVE9QUkVTSVpFOiAgICAgICAgIHJl dHVybiBUT1A7Ci0rICAgIGNhc2UgVE9QUklHSFRSRVNJWkU6ICAgIHJldHVybiBSSUdIVFRPUDsK LSsgICAgY2FzZSBMRUZUUkVTSVpFOiAgICAgICAgcmV0dXJuIExFRlQ7Ci0rICAgIGNhc2UgUklH SFRSRVNJWkU6ICAgICAgIHJldHVybiBSSUdIVDsKLSsgICAgY2FzZSBCT1RUT01MRUZUUkVTSVpF OiAgcmV0dXJuIExFRlRCT1RUT007Ci0rICAgIGNhc2UgQk9UVE9NUkVTSVpFOiAgICAgIHJldHVy biBCT1RUT007Ci0rICAgIGNhc2UgQ0VOVEVSUkVTSVpFOiAgICAgIHJldHVybiBDRU5URVI7Ci0r ICAgIGRlZmF1bHQ6Ci0rICAgIGJyZWFrOwotKyAgICB9Ci0gCi0gICAgIGlmIChtb2RlbCA9PSBF REdFT1JDT1JORVJSRVNJWkUpCi0gICAgIHsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmx1eGJveC9w YXRjaGVzL2ZsdXhfb3ZlcnNpemUucGF0Y2ggYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9mbHV4 X292ZXJzaXplLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OGQ3MGQzYjAz N2UuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9mbHV4X292ZXJz aXplLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotZGlmZiAtLWdpdCBhL3Ny Yy9XaW5kb3cuY2MgYi9zcmMvV2luZG93LmNjCi1pbmRleCAzNDJlNDg4NS4uMDJkMTBlOTAgMTAw NjQ0Ci0tLS0gYS9zcmMvV2luZG93LmNjCi0rKysgYi9zcmMvV2luZG93LmNjCi1AQCAtNTMyLDE5 ICs1MzIsMTQgQEAgdm9pZCBGbHV4Ym94V2luZG93Ojppbml0KCkgewotICAgICBpZiAoIW1fc3Rh dGUuZnVsbHNjcmVlbikgewotICAgICAgICAgdW5zaWduZWQgaW50IG5ld193aWR0aCA9IDAsIG5l d19oZWlnaHQgPSAwOwotICAgICAgICAgaWYgKG1fY2xpZW50LT53aWR0aCgpID49IHNjcmVlbigp LndpZHRoKCkpIHsKLS0gICAgICAgICAgICBtX3N0YXRlLm1heGltaXplZCB8PSBXaW5kb3dTdGF0 ZTo6TUFYX0hPUlo7Ci0gICAgICAgICAgICAgbmV3X3dpZHRoID0gMiAqIHNjcmVlbigpLndpZHRo KCkgLyAzOwotICAgICAgICAgfQotICAgICAgICAgaWYgKG1fY2xpZW50LT5oZWlnaHQoKSA+PSBz Y3JlZW4oKS5oZWlnaHQoKSkgewotLSAgICAgICAgICAgIG1fc3RhdGUubWF4aW1pemVkIHw9IFdp bmRvd1N0YXRlOjpNQVhfVkVSVDsKLSAgICAgICAgICAgICBuZXdfaGVpZ2h0ID0gMiAqIHNjcmVl bigpLmhlaWdodCgpIC8gMzsKLSAgICAgICAgIH0KLSAgICAgICAgIGlmIChuZXdfd2lkdGggfHwg bmV3X2hlaWdodCkgewotLSAgICAgICAgICAgIGNvbnN0IGludCBtYXhpbWl6ZWQgPSBtX3N0YXRl Lm1heGltaXplZDsKLS0gICAgICAgICAgICBtX3N0YXRlLm1heGltaXplZCA9IFdpbmRvd1N0YXRl OjpNQVhfTk9ORTsKLSAgICAgICAgICAgICByZXNpemUobmV3X3dpZHRoID8gbmV3X3dpZHRoIDog d2lkdGgoKSwgbmV3X2hlaWdodCA/IG5ld19oZWlnaHQgOiBoZWlnaHQoKSk7Ci0gICAgICAgICAg ICAgbV9wbGFjZWQgPSBmYWxzZTsKLS0gICAgICAgICAgICBtX3N0YXRlLm1heGltaXplZCA9IG1h eGltaXplZDsKLSAgICAgICAgIH0KLSAgICAgfQotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9mbHV4 Ym94L3BhdGNoZXMvZm9jdXNfY2xvc2VfbWVudS5wYXRjaCBiL3NyY3BrZ3MvZmx1eGJveC9wYXRj aGVzL2ZvY3VzX2Nsb3NlX21lbnUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAxODMwY2Y1MzQ2MC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVz L2ZvY3VzX2Nsb3NlX21lbnUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1k aWZmIC0tZ2l0IGEvc3JjL0ZvY3VzQ29udHJvbC5jYyBiL3NyYy9Gb2N1c0NvbnRyb2wuY2MKLWlu ZGV4IDU0YzNkNDZjLi43ZTQ5ZmY1MSAxMDA2NDQKLS0tLSBhL3NyYy9Gb2N1c0NvbnRyb2wuY2MK LSsrKyBiL3NyYy9Gb2N1c0NvbnRyb2wuY2MKLUBAIC0yNDcsMTEgKzI0Nyw3IEBAIHZvaWQgRm9j dXNDb250cm9sOjpzdG9wQ3ljbGluZ0ZvY3VzKCkgewotIAotICAgICAvLyBwdXQgY3VycmVudGx5 IGZvY3VzZWQgd2luZG93IHRvIHRvcAotICAgICBpZiAoc19mb2N1c2VkX3dpbmRvdykgewotLSAg ICAgICAgLy8gcmUtZm9jdXMgbGFzdCB3aW5kb3cgdG8gZ2l2ZSB0aGUgY2xpZW50IGEgY2hhbmNl IHRvIHJlZGlzdHJpYnV0ZSB0aGUKLS0gICAgICAgIC8vIGZvY3VzIGludGVybmFsbHkgKGNsaWVu dC1zaWRlIG9ubHkgbW9kYWxpdHkpCi0tICAgICAgICBzX2ZvY3VzZWRfd2luZG93LT5mb2N1cygp OwotLSAgICAgICAgaWYgKHNfZm9jdXNlZF93aW5kb3cpCi0tICAgICAgICAgICAgc2V0U2NyZWVu Rm9jdXNlZFdpbmRvdygqc19mb2N1c2VkX3dpbmRvdyk7Ci0rICAgICAgICBzZXRTY3JlZW5Gb2N1 c2VkV2luZG93KCpzX2ZvY3VzZWRfd2luZG93KTsKLSAgICAgICAgIGlmIChzX2ZvY3VzZWRfZmJ3 aW5kb3cpCi0gICAgICAgICAgICAgc19mb2N1c2VkX2Zid2luZG93LT5yYWlzZSgpOwotICAgICB9 IGVsc2UKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3NsaXRfcmFpc2UucGF0 Y2ggYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy9zbGl0X3JhaXNlLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCBhM2JjMDFjN2FjODUuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2ZsdXhib3gvcGF0Y2hlcy9zbGl0X3JhaXNlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MTYgKzAsMCBAQAotZGlmZiAtLWdpdCBhL3NyYy9TbGl0LmNjIGIvc3JjL1NsaXQuY2MKLWluZGV4 IDliYWVjZjIxLi42M2VkODI2OSAxMDA2NDQKLS0tLSBhL3NyYy9TbGl0LmNjCi0rKysgYi9zcmMv U2xpdC5jYwotQEAgLTk1OCw4ICs5NTgsOCBAQCB2b2lkIFNsaXQ6OmJ1dHRvblByZXNzRXZlbnQo WEJ1dHRvbkV2ZW50ICZiZSkgewotICAgICAgICAgcmV0dXJuOwotICAgICB9Ci0KLS0gICAgaWYg KGJlLmJ1dHRvbiA9PSAxKQotLSAgICAgICAgZnJhbWUud2luZG93LnJhaXNlKCk7Ci0rICAgIC8v aWYgKGJlLmJ1dHRvbiA9PSAxKQotKyAgICAvLyAgICBmcmFtZS53aW5kb3cucmFpc2UoKTsKLQot ICAgICBpZiAoYmUuYnV0dG9uICE9IEJ1dHRvbjMpIHsKLSAgICAgICAgIFhBbGxvd0V2ZW50cyhk cHksIFJlcGxheVBvaW50ZXIsIEN1cnJlbnRUaW1lKTsKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9m bHV4Ym94L3BhdGNoZXMvdG9vbGJhcl9yZWRvLnBhdGNoIGIvc3JjcGtncy9mbHV4Ym94L3BhdGNo ZXMvdG9vbGJhcl9yZWRvLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTk1 NDg2NTgzY2UuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy90b29s YmFyX3JlZG8ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMjggKzAsMCBAQAotZGlmZiAtLWdp dCBhL3NyYy9Ub29sYmFyLmNjIGIvc3JjL1Rvb2xiYXIuY2MKLWluZGV4IGFhOWJjMTIxLi5lZThi OGJmYyAxMDA2NDQKLS0tLSBhL3NyYy9Ub29sYmFyLmNjCi0rKysgYi9zcmMvVG9vbGJhci5jYwot QEAgLTc0LDcgKzc0LDcgQEAgdXNpbmcgRmJUazo6U1RMVXRpbDo6Zm9yQWxsOwotIAotIG5hbWVz cGFjZSB7Ci0gCi0tY29uc3Qgc3RydWN0IHsgCi0rY29uc3Qgc3RydWN0IHsKLSAgICAgVG9vbGJh cjo6UGxhY2VtZW50IHBsYWNlbWVudDsKLSAgICAgY29uc3QgY2hhciogc3RyOwotICAgICBGYlRr OjpPcmllbnRhdGlvbiBvcmllbnQ7Ci1AQCAtMzYyLDEzICszNjIsMTYgQEAgdm9pZCBUb29sYmFy Ojpsb3dlcigpIHsKLSB9Ci0gCi0gdm9pZCBUb29sYmFyOjpzY3JlZW5DaGFuZ2VkKEJTY3JlZW4g JnNjcmVlbikgewotLSAgICByZWNvbmZpZ3VyZSgpOwotKyAgICAvL3JlY29uZmlndXJlKCk7Ci0g fQotIAotIHZvaWQgVG9vbGJhcjo6cmVsYXlvdXQoKSB7Ci0tICAgIGZvckFsbChtX2l0ZW1fbGlz dCwgc3RkOjptZW1fZnVuKCZUb29sYmFySXRlbTo6dXBkYXRlU2l6aW5nKSk7Ci0tICAgIHJlYXJy YW5nZUl0ZW1zKCk7Ci0tICAgIGZvckFsbChtX2l0ZW1fbGlzdCwgc3RkOjpiaW5kMm5kKHN0ZDo6 bWVtX2Z1bigmVG9vbGJhckl0ZW06OnJlbmRlclRoZW1lKSwgYWxwaGEoKSkpOwotKyAgICAvL2Zv ciAoYXV0byBpdCA6IG1faXRlbV9saXN0KSAgICAoKml0ZW1faXQpLT51cGRhdGVTaXppbmcoKTsK LSsgICAgLy9yZWFycmFuZ2VJdGVtcygpOwotKyAgICAvL2ZvciAoYXV0byBpdCA6IG1faXRlbV9s aXN0KSAgICAoKml0ZW1faXQpLT5yZW5kZXJUaGVtZShhbHBoYSgpKTsKLSsgICAgLy9mb3JBbGwo bV9pdGVtX2xpc3QsIHN0ZDo6bWVtX2Z1bigmVG9vbGJhckl0ZW06OnVwZGF0ZVNpemluZykpOwot KyAgICAvL3JlYXJyYW5nZUl0ZW1zKCk7Ci0rICAgIC8vZm9yQWxsKG1faXRlbV9saXN0LCBzdGQ6 OmJpbmQybmQoc3RkOjptZW1fZnVuKCZUb29sYmFySXRlbTo6cmVuZGVyVGhlbWUpLCBhbHBoYSgp KSk7Ci0gfQotIAotIHZvaWQgVG9vbGJhcjo6cmVjb25maWd1cmUoKSB7Ci1AQCAtNTU3LDEyICs1 NjAsMTYgQEAgdm9pZCBUb29sYmFyOjpidXR0b25QcmVzc0V2ZW50KFhCdXR0b25FdmVudCAmYmUp IHsKLSB9Ci0gCi0gdm9pZCBUb29sYmFyOjp1cGRhdGVDcm9zc2luZ1N0YXRlKCkgewotLSAgICBX aW5kb3cgd3IsIHdjOwotLSAgICBpbnQgcngsIHJ5LCB4LCB5OwotKyAgICAvL1dpbmRvdyB3ciwg d2M7Ci0rICAgIC8vaW50IHJ4LCByeSwgeCwgeTsKLSsgICAgLy91bnNpZ25lZCBpbnQgbWFzazsK LSsgICAgV2luZG93IHdyYzsKLSsgICAgaW50IHJ4eSwgeCwgeTsKLSAgICAgdW5zaWduZWQgaW50 IG1hc2s7Ci0gICAgIGNvbnN0IGludCBidyA9IC10aGVtZSgpLT5ib3JkZXIoKS53aWR0aCgpOwot ICAgICBib29sIGhvdmVyZWQgPSBmYWxzZTsKLS0gICAgaWYgKFhRdWVyeVBvaW50ZXIoRmx1eGJv eDo6aW5zdGFuY2UoKS0+ZGlzcGxheSgpLCB3aW5kb3coKS53aW5kb3coKSwgJndyLCAmd2MsICZy eCwgJnJ5LCAmeCwgJnksICZtYXNrKSkKLSsgICAgLy9pZiAoWFF1ZXJ5UG9pbnRlcihGbHV4Ym94 OjppbnN0YW5jZSgpLT5kaXNwbGF5KCksIHdpbmRvdygpLndpbmRvdygpLCAmd3IsICZ3YywgJnJ4 LCAmcnksICZ4LCAmeSwgJm1hc2spKQotKyAgICBpZiAoWFF1ZXJ5UG9pbnRlcihGbHV4Ym94Ojpp bnN0YW5jZSgpLT5kaXNwbGF5KCksIHdpbmRvdygpLndpbmRvdygpLCAmd3JjLCAmd3JjLCAmcnh5 LCAmcnh5LCAmeCwgJnksICZtYXNrKSkKLSAgICAgICAgIGhvdmVyZWQgPSB4ID49IGJ3ICYmIHkg Pj0gYncgJiYgeCA8IGludCh3aWR0aCgpKSAmJiB5IDwgaW50KGhlaWdodCgpKTsKLSAgICAgaWYg KGhvdmVyZWQpIHsKLSAgICAgICAgIGlmIChtX3JjX2F1dG9fcmFpc2UpCi1AQCAtOTEwLDI1ICs5 MTcsMjYgQEAgdm9pZCBUb29sYmFyOjpyZWFycmFuZ2VJdGVtcygpIHsKLSAgICAgLy8gbG9jayB0 aGlzCi0gICAgIG1fcmVzaXplX2xvY2sgPSB0cnVlOwotICAgICAvLyBjYWxjdWxhdGUgc2l6ZSBm b3IgZml4ZWQgaXRlbXMKLS0gICAgSXRlbUxpc3Q6Oml0ZXJhdG9yIGl0ZW1faXQgPSBtX2l0ZW1f bGlzdC5iZWdpbigpOwotLSAgICBJdGVtTGlzdDo6aXRlcmF0b3IgaXRlbV9pdF9lbmQgPSBtX2l0 ZW1fbGlzdC5lbmQoKTsKLSsgICAgLy9JdGVtTGlzdDo6aXRlcmF0b3IgaXRlbV9pdCA9IG1faXRl bV9saXN0LmJlZ2luKCk7Ci0rICAgIC8vSXRlbUxpc3Q6Oml0ZXJhdG9yIGl0ZW1faXRfZW5kID0g bV9pdGVtX2xpc3QuZW5kKCk7Ci0gICAgIGludCBiZXZlbF93aWR0aCA9IHRoZW1lKCktPmJldmVs V2lkdGgoKTsKLSAgICAgaW50IGZpeGVkX3dpZHRoID0gYmV2ZWxfd2lkdGg7IC8vIGNvbWJpbmVk IHNpemUgb2YgYWxsIGZpeGVkIGl0ZW1zCi0gICAgIGludCByZWxhdGl2ZV93aWR0aCA9IDA7IC8v IGNvbWJpbmVkICpkZXNpcmVkKiBzaXplIG9mIGFsbCByZWxhdGl2ZSBpdGVtcwotLSAgICBpbnQg c3RyZXRjaF9pdGVtcyA9IDA7Ci0gICAgIGludCByZWxhdGl2ZV9pdGVtcyA9IDA7Ci0gICAgIGlu dCBsYXN0X2J3ID0gMDsgLy8gd2Ugc2hvdyB0aGUgbGFyZ2VzdCBib3JkZXIgb2YgYWRqb2luaW5n IGl0ZW1zCi0gICAgIGJvb2wgZmlyc3QgPSB0cnVlOwotKyAgICBpbnQgbGVmdG92ZXJfd2lkdGgg PSAwOwotIAotICAgICB1bnNpZ25lZCBpbnQgd2lkdGggPSB0aGlzLT53aWR0aCgpLCBoZWlnaHQg PSB0aGlzLT5oZWlnaHQoKTsKLSAgICAgdW5zaWduZWQgaW50IHRtcHcsIHRtcGg7Ci0gICAgIEZi VGs6OnRyYW5zbGF0ZVNpemUob3JpZW50LCB3aWR0aCwgaGVpZ2h0KTsKLSAKLS0gICAgZm9yICg7 IGl0ZW1faXQgIT0gaXRlbV9pdF9lbmQ7ICsraXRlbV9pdCkgewotLSAgICAgICAgaWYgKCEoKml0 ZW1faXQpLT5hY3RpdmUoKSkKLSsgICAgLy9mb3IgKDsgaXRlbV9pdCAhPSBpdGVtX2l0X2VuZDsg KytpdGVtX2l0KSB7Ci0rICAgIGZvciAoYXV0byBpdGVtX2l0IDogbV9pdGVtX2xpc3QpIHsKLSsg ICAgICAgIGlmICghKCppdGVtX2l0KS5hY3RpdmUoKSkKLSAgICAgICAgICAgICBjb250aW51ZTsK LSAKLS0gICAgICAgIGludCBib3JkZXJXID0gKCppdGVtX2l0KS0+Ym9yZGVyV2lkdGgoKTsKLSsg ICAgICAgIGludCBib3JkZXJXID0gKCppdGVtX2l0KS5ib3JkZXJXaWR0aCgpOwotIAotICAgICAg ICAgaWYgKGJldmVsX3dpZHRoID4gMCkgewotICAgICAgICAgICAgIC8vIHRoZSBiZXZlbCBhbmQg Ym9yZGVyIGFyZSBmaXhlZCB3aGV0aGVyIHJlbGF0aXZlIG9yIG5vdAotQEAgLTk0MywzNSArOTUx LDM1IEBAIHZvaWQgVG9vbGJhcjo6cmVhcnJhbmdlSXRlbXMoKSB7Ci0gCi0gICAgICAgICBsYXN0 X2J3ID0gYm9yZGVyVzsKLSAKLS0gICAgICAgIHRtcHcgPSAoKml0ZW1faXQpLT5wcmVmZXJyZWRX aWR0aCgpOwotLSAgICAgICAgdG1waCA9ICgqaXRlbV9pdCktPmhlaWdodCgpOwotKyAgICAgICAg dG1wdyA9ICgqaXRlbV9pdCkucHJlZmVycmVkV2lkdGgoKTsKLSsgICAgICAgIHRtcGggPSAoKml0 ZW1faXQpLmhlaWdodCgpOwotICAgICAgICAgRmJUazo6dHJhbnNsYXRlU2l6ZShvcmllbnQsIHRt cHcsIHRtcGgpOwotIAotLSAgICAgICAgaWYgKCgqaXRlbV9pdCktPnR5cGUoKSA9PSBUb29sYmFy SXRlbTo6RklYRUQpIHsKLS0gICAgICAgICAgICBmaXhlZF93aWR0aCArPSB0bXB3OwotLSAgICAg ICAgfSBlbHNlIGlmICgoKml0ZW1faXQpLT50eXBlKCkgPT0gVG9vbGJhckl0ZW06OlNRVUFSRSkg ewotLSAgICAgICAgICAgIGZpeGVkX3dpZHRoICs9IGhlaWdodDsKLS0gICAgICAgICAgICBpZiAo YmV2ZWxfd2lkdGgpCi0tICAgICAgICAgICAgICAgIGZpeGVkX3dpZHRoIC09IDIqKGJvcmRlclcg KyBiZXZlbF93aWR0aCk7Ci0tICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgICsrcmVsYXRp dmVfaXRlbXM7Ci0tICAgICAgICAgICAgcmVsYXRpdmVfd2lkdGggKz0gdG1wdzsKLS0gICAgICAg ICAgICBpZiAoIXRtcHcpCi0tICAgICAgICAgICAgICAgICsrc3RyZXRjaF9pdGVtczsKLSsgICAg ICAgIHN3aXRjaCAoICgqaXRlbV9pdCkudHlwZSgpICkgewotKyAgICAgICAgICAgIGNhc2UgVG9v bGJhckl0ZW06OkZJWEVEOgotKyAgICAgICAgICAgICAgICBmaXhlZF93aWR0aCArPSB0bXB3Owot KyAgICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgICBjYXNlIFRvb2xiYXJJdGVtOjpT UVVBUkU6Ci0rICAgICAgICAgICAgICAgIGZpeGVkX3dpZHRoICs9IGhlaWdodDsKLSsgICAgICAg ICAgICAgICAgaWYgKGJldmVsX3dpZHRoKQotKyAgICAgICAgICAgICAgICAgICAgZml4ZWRfd2lk dGggLT0gMiooYm9yZGVyVyArIGJldmVsX3dpZHRoKTsKLSsgICAgICAgICAgICAgICAgYnJlYWs7 Ci0rICAgICAgICAgICAgY2FzZSBUb29sYmFySXRlbTo6UkVMQVRJVkU6Ci0rICAgICAgICAgICAg ICAgICsrcmVsYXRpdmVfaXRlbXM7Ci0rICAgICAgICAgICAgICAgIHJlbGF0aXZlX3dpZHRoICs9 IHRtcHc7Ci0rICAgICAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgICAgIGRlZmF1bHQ6Ci0r ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgfQotICAgICB9Ci0gCi0gICAgIC8vIGNh bGN1bGF0ZSB3aGF0J3MgZ29pbmcgdG8gYmUgbGVmdCBvdmVyIHRvIHRoZSByZWxhdGl2ZSBzaXpl ZCBpdGVtcwotLSAgICBmbG9hdCBzdHJldGNoX2ZhY3RvciA9IDEuMGY7Ci0gICAgIGlmIChyZWxh dGl2ZV9pdGVtcykgewotLSAgICAgICAgaWYgKHJlbGF0aXZlX3dpZHRoIDw9IHdpZHRoIC0gZml4 ZWRfd2lkdGggJiYgc3RyZXRjaF9pdGVtcykgewotLSAgICAgICAgICAgIHJlbGF0aXZlX3dpZHRo ID0gaW50KHdpZHRoIC0gZml4ZWRfd2lkdGggLSByZWxhdGl2ZV93aWR0aCkvc3RyZXRjaF9pdGVt czsKLS0gICAgICAgIH0gZWxzZSBpZiAocmVsYXRpdmVfd2lkdGgpIHsKLS0gICAgICAgICAgICBz dHJldGNoX2ZhY3RvciA9IGZsb2F0KHdpZHRoIC0gZml4ZWRfd2lkdGgpL3JlbGF0aXZlX3dpZHRo OwotLSAgICAgICAgICAgIHJlbGF0aXZlX3dpZHRoID0gMDsKLS0gICAgICAgIH0KLSsgICAgICAg IHJlbGF0aXZlX3dpZHRoID0gKHdpZHRoIC0gZml4ZWRfd2lkdGgpIC8gcmVsYXRpdmVfaXRlbXM7 Ci0rICAgICAgICBsZWZ0b3Zlcl93aWR0aCA9IHdpZHRoIC0gZml4ZWRfd2lkdGggLSByZWxhdGl2 ZV9pdGVtcyAqIHJlbGF0aXZlX3dpZHRoOwotICAgICB9Ci0gCi0rCi0gICAgIC8vIG5vdyBtb3Zl IGFuZCByZXNpemUgdGhlIGl0ZW1zCi0gICAgIC8vIGJvcmRlcldpZHRoIGFkZGVkIGJhY2sgb24g c3RyYWlnaHQgYXdheQotICAgICBpbnQgbmV4dF94ID0gLW1faXRlbV9saXN0LmZyb250KCktPmJv cmRlcldpZHRoKCk7IC8vIGxpc3QgaXNuJ3QgZW1wdHkKLUBAIC05NzksMTkgKzk4NywyMiBAQCB2 b2lkIFRvb2xiYXI6OnJlYXJyYW5nZUl0ZW1zKCkgewotICAgICAgICAgbmV4dF94ID0gMDsKLSAK LSAgICAgbGFzdF9idyA9IDA7Ci0tICAgIGZvciAoaXRlbV9pdCA9IG1faXRlbV9saXN0LmJlZ2lu KCk7IGl0ZW1faXQgIT0gaXRlbV9pdF9lbmQ7ICsraXRlbV9pdCkgewotLSAgICAgICAgaW50IGJv cmRlclcgPSAoKml0ZW1faXQpLT5ib3JkZXJXaWR0aCgpOwotLSAgICAgICAgaWYgKCEoKml0ZW1f aXQpLT5hY3RpdmUoKSkgewotLSAgICAgICAgICAgICgqaXRlbV9pdCktPmhpZGUoKTsKLSsgICAg aW50IGJvcmRlclcsIG9mZnNldCwgc2l6ZV9vZmZzZXQsIHRtcHgsIHRtcHk7Ci0rCi0rICAgIC8v Zm9yIChpdGVtX2l0ID0gbV9pdGVtX2xpc3QuYmVnaW4oKTsgaXRlbV9pdCAhPSBpdGVtX2l0X2Vu ZDsgKytpdGVtX2l0KSB7Ci0rICAgIGZvciAoYXV0byBpdGVtX2l0IDogbV9pdGVtX2xpc3QpIHsK LSsgICAgICAgIGJvcmRlclcgPSAoKml0ZW1faXQpLmJvcmRlcldpZHRoKCk7Ci0rICAgICAgICBp ZiAoISgqaXRlbV9pdCkuYWN0aXZlKCkpIHsKLSsgICAgICAgICAgICAoKml0ZW1faXQpLmhpZGUo KTsKLSAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgaXQgc3RpbGwgZ2V0cyB0b2xkIHRoZSB0b29s YmFyIGhlaWdodAotICAgICAgICAgICAgIHRtcHcgPSAxOyB0bXBoID0gaGVpZ2h0IC0gMiooYmV2 ZWxfd2lkdGgrYm9yZGVyVyk7Ci0gICAgICAgICAgICAgaWYgKHRtcGggPj0gKDE8PDMwKSkgdG1w aCA9IDE7Ci0gICAgICAgICAgICAgRmJUazo6dHJhbnNsYXRlU2l6ZShvcmllbnQsIHRtcHcsIHRt cGgpOwotLSAgICAgICAgICAgICgqaXRlbV9pdCktPnJlc2l6ZSh0bXB3LCB0bXBoKTsgIC8vIHdp ZHRoIG9mIDAgY2hhbmdlcyB0byAxIGFueXdheQotKyAgICAgICAgICAgICgqaXRlbV9pdCkucmVz aXplKHRtcHcsIHRtcGgpOyAgLy8gd2lkdGggb2YgMCBjaGFuZ2VzIHRvIDEgYW55d2F5Ci0gICAg ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICB9Ci0tICAgICAgICBpbnQgb2Zmc2V0ID0gYmV2 ZWxfd2lkdGg7Ci0tICAgICAgICBpbnQgc2l6ZV9vZmZzZXQgPSAyKihib3JkZXJXICsgYmV2ZWxf d2lkdGgpOwotKyAgICAgICAgb2Zmc2V0ID0gYmV2ZWxfd2lkdGg7Ci0rICAgICAgICBzaXplX29m ZnNldCA9IDIqKGJvcmRlclcgKyBiZXZlbF93aWR0aCk7Ci0gCi0gICAgICAgICBpZiAoYmV2ZWxf d2lkdGggPT0gMCkgewotICAgICAgICAgICAgIG9mZnNldCA9IC1ib3JkZXJXOwotQEAgLTEwMDAs MjIgKzEwMTEsMjggQEAgdm9pZCBUb29sYmFyOjpyZWFycmFuZ2VJdGVtcygpIHsKLSAgICAgICAg IH0KLSAgICAgICAgIGxhc3RfYncgPSBib3JkZXJXOwotIAotLSAgICAgICAgaW50IHRtcHggPSBu ZXh0X3ggKyBvZmZzZXQsCi0tICAgICAgICAgICAgdG1weSA9IG9mZnNldDsKLS0KLS0gICAgICAg IGlmICgoKml0ZW1faXQpLT50eXBlKCkgPT0gVG9vbGJhckl0ZW06OlJFTEFUSVZFKSB7Ci0tICAg ICAgICAgICAgdW5zaWduZWQgaW50IGl0ZW13ID0gKCppdGVtX2l0KS0+cHJlZmVycmVkV2lkdGgo KSwgaXRlbWggPSAoKml0ZW1faXQpLT5oZWlnaHQoKTsKLS0gICAgICAgICAgICBGYlRrOjp0cmFu c2xhdGVTaXplKG9yaWVudCwgaXRlbXcsIGl0ZW1oKTsKLS0gICAgICAgICAgICB0bXB3ID0gaXRl bXcgPyBzdGQ6OmZsb29yKHN0cmV0Y2hfZmFjdG9yICogaXRlbXcpIDogcmVsYXRpdmVfd2lkdGg7 Ci0tICAgICAgICAgICAgdG1waCA9IGhlaWdodCAtIHNpemVfb2Zmc2V0OwotLSAgICAgICAgfSBl bHNlIGlmICgoKml0ZW1faXQpLT50eXBlKCkgPT0gVG9vbGJhckl0ZW06OlNRVUFSRSkgewotLSAg ICAgICAgICAgIHRtcHcgPSB0bXBoID0gaGVpZ2h0IC0gc2l6ZV9vZmZzZXQ7Ci0tICAgICAgICB9 IGVsc2UgeyAvLyBmaXhlZCBzaXplCi0tICAgICAgICAgICAgdW5zaWduZWQgaW50IGl0ZW13ID0g KCppdGVtX2l0KS0+d2lkdGgoKSwgaXRlbWggPSAoKml0ZW1faXQpLT5oZWlnaHQoKTsKLS0gICAg ICAgICAgICBGYlRrOjp0cmFuc2xhdGVTaXplKG9yaWVudCwgaXRlbXcsIGl0ZW1oKTsKLS0gICAg ICAgICAgICB0bXB3ID0gaXRlbXc7Ci0tICAgICAgICAgICAgdG1waCA9IGhlaWdodCAtIHNpemVf b2Zmc2V0OwotKyAgICAgICAgdG1weCA9IG5leHRfeCArIG9mZnNldCwKLSsgICAgICAgIHRtcHkg PSBvZmZzZXQ7Ci0rICAgICAgICB0bXBoID0gaGVpZ2h0IC0gc2l6ZV9vZmZzZXQ7Ci0rCi0rICAg ICAgICBzd2l0Y2ggKCAoKml0ZW1faXQpLnR5cGUoKSApIHsKLSsgICAgICAgICAgICBjYXNlIFRv b2xiYXJJdGVtOjpTUVVBUkU6Ci0rICAgICAgICAgICAgICAgIHRtcHcgPSB0bXBoOwotKyAgICAg ICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgICBjYXNlIFRvb2xiYXJJdGVtOjpSRUxBVElW RToKLSsgICAgICAgICAgICAgICAgdG1wdyA9IHJlbGF0aXZlX3dpZHRoOwotKyAgICAgICAgICAg ICAgICBpZiAobGVmdG92ZXJfd2lkdGgpIHsKLSsgICAgICAgICAgICAgICAgICAgIC0tbGVmdG92 ZXJfd2lkdGg7Ci0rICAgICAgICAgICAgICAgICAgICArK3RtcHc7Ci0rICAgICAgICAgICAgICAg IH0KLSsgICAgICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICAgICAgY2FzZSBUb29sYmFySXRl bTo6RklYRUQ6Ci0rICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBpdGVtdyA9ICgqaXRlbV9p dCkud2lkdGgoKSwgaXRlbWggPSAoKml0ZW1faXQpLmhlaWdodCgpOwotKyAgICAgICAgICAgICAg ICBGYlRrOjp0cmFuc2xhdGVTaXplKG9yaWVudCwgaXRlbXcsIGl0ZW1oKTsKLSsgICAgICAgICAg ICAgICAgdG1wdyA9IGl0ZW13OwotKyAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgIH0K LSsKLSAgICAgICAgIGlmICh0bXB3ID49ICgxPDwzMCkpIHRtcHcgPSAxOwotICAgICAgICAgaWYg KHRtcGggPj0gKDE8PDMwKSkgdG1waCA9IDE7Ci0gICAgICAgICBuZXh0X3ggKz0gdG1wdyArIGJl dmVsX3dpZHRoOwotQEAgLTEwMjUsOCArMTA0Miw4IEBAIHZvaWQgVG9vbGJhcjo6cmVhcnJhbmdl SXRlbXMoKSB7Ci0gICAgICAgICBGYlRrOjp0cmFuc2xhdGVDb29yZHMob3JpZW50LCB0bXB4LCB0 bXB5LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICAgICAgIEZiVGs6OnRyYW5zbGF0ZVBvc2l0aW9uKG9y aWVudCwgdG1weCwgdG1weSwgdG1wdywgdG1waCwgYm9yZGVyVyk7Ci0gICAgICAgICBGYlRrOjp0 cmFuc2xhdGVTaXplKG9yaWVudCwgdG1wdywgdG1waCk7Ci0tICAgICAgICAoKml0ZW1faXQpLT5t b3ZlUmVzaXplKHRtcHgsIHRtcHksIHRtcHcsIHRtcGgpOwotLSAgICAgICAgKCppdGVtX2l0KS0+ c2hvdygpOwotKyAgICAgICAgKCppdGVtX2l0KS5tb3ZlUmVzaXplKHRtcHgsIHRtcHksIHRtcHcs IHRtcGgpOwotKyAgICAgICAgLy8oKml0ZW1faXQpLnNob3coKTsKLSAKLSAgICAgfQotICAgICAv LyB1bmxvY2sKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZmx1eGJveC9wYXRjaGVzL3RyZW1vcl9ncmFi b2lkX2hlbGwucGF0Y2ggYi9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy90cmVtb3JfZ3JhYm9pZF9o ZWxsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxODlhMzE0NjA3YmQuLjAw MDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy90cmVtb3JfZ3JhYm9pZF9o ZWxsLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzUwICswLDAgQEAKLWRpZmYgLS1naXQgYS9z cmMvRmJUay9FdmVudE1hbmFnZXIuY2MgYi9zcmMvRmJUay9FdmVudE1hbmFnZXIuY2MKLWluZGV4 IDNkZjU2ZGU1Li41MDE3NjZjYyAxMDA2NDQKLS0tLSBhL3NyYy9GYlRrL0V2ZW50TWFuYWdlci5j YwotKysrIGIvc3JjL0ZiVGsvRXZlbnRNYW5hZ2VyLmNjCi1AQCAtMTk0LDIzICsxOTQsMjIgQEAg dm9pZCBFdmVudE1hbmFnZXI6OmRpc3BhdGNoKFdpbmRvdyB3aW4sIFhFdmVudCAmZXYsIGJvb2wg cGFyZW50KSB7Ci0gCi0gICAgIC8vIGZpbmQgb3V0IHdoaWNoIHdpbmRvdyBpcyB0aGUgcGFyZW50 IGFuZAotICAgICAvLyBkaXNwYXRjaCBldmVudAotLSAgICBXaW5kb3cgcm9vdCwgcGFyZW50X3dp biwgKmNoaWxkcmVuID0gMDsKLS0gICAgdW5zaWduZWQgaW50IG51bV9jaGlsZHJlbjsKLS0gICAg aWYgKFhRdWVyeVRyZWUoRmJUazo6QXBwOjppbnN0YW5jZSgpLT5kaXNwbGF5KCksIHdpbiwKLS0g ICAgICAgICAgICAgICAgICAgJnJvb3QsICZwYXJlbnRfd2luLCAmY2hpbGRyZW4sICZudW1fY2hp bGRyZW4pICE9IDApIHsKLS0gICAgICAgIGlmIChjaGlsZHJlbiAhPSAwKQotLSAgICAgICAgICAg IFhGcmVlKGNoaWxkcmVuKTsKLS0KLS0gICAgICAgIGlmIChwYXJlbnRfd2luICE9IDAgJiYKLS0g ICAgICAgICAgICBwYXJlbnRfd2luICE9IHJvb3QpIHsKLS0gICAgICAgICAgICBpZiAobV9wYXJl bnRbcGFyZW50X3dpbl0gPT0gMCkKLS0gICAgICAgICAgICAgICAgcmV0dXJuOwotLQotLSAgICAg ICAgICAgIC8vIGRpc3BhdGNoIGV2ZW50IHRvIHBhcmVudAotLSAgICAgICAgICAgIGRpc3BhdGNo KHBhcmVudF93aW4sIGV2LCB0cnVlKTsKLS0gICAgICAgIH0KLS0gICAgfQotLQotKy8vICAgIFdp bmRvdyByb290LCBwYXJlbnRfd2luLCAqY2hpbGRyZW4gPSAwOwotKy8vICAgIHVuc2lnbmVkIGlu dCBudW1fY2hpbGRyZW47Ci0rLy8gICAgaWYgKFhRdWVyeVRyZWUoRmJUazo6QXBwOjppbnN0YW5j ZSgpLT5kaXNwbGF5KCksIHdpbiwKLSsvLyAgICAgICAgICAgICAgICAgICAmcm9vdCwgJnBhcmVu dF93aW4sICZjaGlsZHJlbiwgJm51bV9jaGlsZHJlbikgIT0gMCkgewotKy8vICAgICAgICBpZiAo Y2hpbGRyZW4gIT0gMCkKLSsvLyAgICAgICAgICAgIFhGcmVlKGNoaWxkcmVuKTsKLSsvLwotKy8v ICAgICAgICBpZiAocGFyZW50X3dpbiAhPSAwICYmCi0rLy8gICAgICAgICAgICBwYXJlbnRfd2lu ICE9IHJvb3QpIHsKLSsvLyAgICAgICAgICAgIGlmIChtX3BhcmVudFtwYXJlbnRfd2luXSA9PSAw KQotKy8vICAgICAgICAgICAgICAgIHJldHVybjsKLSsvLwotKy8vICAgICAgICAgICAgLy8gZGlz cGF0Y2ggZXZlbnQgdG8gcGFyZW50Ci0rLy8gICAgICAgICAgICBkaXNwYXRjaChwYXJlbnRfd2lu LCBldiwgdHJ1ZSk7Ci0rLy8gICAgICAgIH0KLSsvLyAgICB9Ci0gfQotIAotIH0gLy8gZW5kIG5h bWVzcGFjZSBGYlRrCi1kaWZmIC0tZ2l0IGEvc3JjL0ZiVGsvS2V5VXRpbC5jYyBiL3NyYy9GYlRr L0tleVV0aWwuY2MKLWluZGV4IDczZjJlYTA2Li5jZjg2MzAyMSAxMDA2NDQKLS0tLSBhL3NyYy9G YlRrL0tleVV0aWwuY2MKLSsrKyBiL3NyYy9GYlRrL0tleVV0aWwuY2MKLUBAIC0xNDEsMTMgKzE0 MSwxNCBAQCB2b2lkIEtleVV0aWw6OmdyYWJCdXR0b24odW5zaWduZWQgaW50IGJ1dHRvbiwgdW5z aWduZWQgaW50IG1vZCwgV2luZG93IHdpbiwKLSAgICAgY29uc3QgdW5zaWduZWQgaW50IHNjcm9s bG1vZCA9IGluc3RhbmNlKCkuc2Nyb2xsbG9jaygpOwotIAotICAgICAvLyBHcmFiIHdpdGggbnVt bG9jaywgY2Fwc2xvY2sgYW5kIHNjcmxvY2sKLS0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCA4OyBp KyspIHsKLS0gICAgICAgIFhHcmFiQnV0dG9uKGRpc3BsYXksIGJ1dHRvbiwgbW9kIHwgKGkgJiAx ID8gTG9ja01hc2sgOiAwKSB8Ci0tICAgICAgICAgICAgICAgICAgICAoaSAmIDIgPyBudW1tb2Qg OiAwKSB8IChpICYgNCA/IHNjcm9sbG1vZCA6IDApLAotLSAgICAgICAgICAgICAgICAgICAgd2lu LCBGYWxzZSwgZXZlbnRfbWFzaywgR3JhYk1vZGVTeW5jLCBHcmFiTW9kZUFzeW5jLAotLSAgICAg ICAgICAgICAgICAgICAgTm9uZSwgY3Vyc29yKTsKLS0gICAgfQotLQotKyAgICAvL2ZvciAoaW50 IGkgPSAwOyBpIDwgODsgaSsrKSB7Ci0rICAgIC8vICAgIFhHcmFiQnV0dG9uKGRpc3BsYXksIGJ1 dHRvbiwgbW9kIHwgKGkgJiAxID8gTG9ja01hc2sgOiAwKSB8Ci0rICAgIC8vICAgICAgICAgICAg ICAgIChpICYgMiA/IG51bW1vZCA6IDApIHwgKGkgJiA0ID8gc2Nyb2xsbW9kIDogMCksCi0rICAg IC8vICAgICAgICAgICAgICAgIHdpbiwgVHJ1ZSwgZXZlbnRfbWFzaywgR3JhYk1vZGVTeW5jLCBH cmFiTW9kZUFzeW5jLAotKyAgICAvLyAgICAgICAgICAgICAgICBOb25lLCBjdXJzb3IpOwotKyAg ICAvL30KLSsgICAgWEdyYWJCdXR0b24oZGlzcGxheSwgYnV0dG9uLCBtb2QsIHdpbiwgVHJ1ZSwg ZXZlbnRfbWFzaywKLSsgICAgICAgICAgICAgICAgR3JhYk1vZGVTeW5jLCBHcmFiTW9kZUFzeW5j LCBOb25lLCBjdXJzb3IpOwotIH0KLSAKLSAvKioKLWRpZmYgLS1naXQgYS9zcmMvS2V5cy5jYyBi L3NyYy9LZXlzLmNjCi1pbmRleCA4NjU5MTM3MS4uYzI3MDM3ZTIgMTAwNjQ0Ci0tLS0gYS9zcmMv S2V5cy5jYwotKysrIGIvc3JjL0tleXMuY2MKLUBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBLZXlz OjpncmFiV2luZG93KFdpbmRvdyB3aW4pIHsKLSAgICAgaWYgKHdpbl9pdCA9PSBtX3dpbmRvd19t YXAuZW5kKCkpCi0gICAgICAgICByZXR1cm47Ci0gCi0tICAgIG1faGFuZGxlcl9tYXBbd2luXS0+ Z3JhYkJ1dHRvbnMoKTsKLSsgICAgLy9tX2hhbmRsZXJfbWFwW3dpbl0tPmdyYWJCdXR0b25zKCk7 Ci0gICAgIHRfa2V5OjprZXlsaXN0X3Q6Oml0ZXJhdG9yIGl0ID0gbV9rZXlsaXN0LT5rZXlsaXN0 LmJlZ2luKCk7Ci0gICAgIHRfa2V5OjprZXlsaXN0X3Q6Oml0ZXJhdG9yIGl0X2VuZCA9IG1fa2V5 bGlzdC0+a2V5bGlzdC5lbmQoKTsKLSAgICAgZm9yICg7IGl0ICE9IGl0X2VuZDsgKytpdCkgewot QEAgLTU4NiwxNiArNTg2LDE2IEBAIGJvb2wgS2V5czo6ZG9BY3Rpb24oaW50IHR5cGUsIHVuc2ln bmVkIGludCBtb2RzLCB1bnNpZ25lZCBpbnQga2V5LAotICAgICAgICAgaXNkb3VibGUgPSBkb3Vi bGVfY2xpY2s7Ci0gICAgIH0KLSAKLS0gICAgYXV0byByZXNldEtleUNoYWluID0gWyZdKCkgewot LSAgICAgICAgZmlyc3Rfa2V5X3RpbWUgPSAwOwotLSAgICAgICAgbmV4dF9rZXkucmVzZXQoKTsK LS0gICAgICAgIGlmIChzYXZlZF9rZXltb2RlKSB7Ci0tICAgICAgICAgICAgc2V0S2V5TW9kZShz YXZlZF9rZXltb2RlKTsKLS0gICAgICAgICAgICBzYXZlZF9rZXltb2RlLnJlc2V0KCk7Ci0tICAg ICAgICB9Ci0tICAgIH07Ci0tICAgIGlmICh0eXBlID09IEtleVByZXNzICYmIGZpcnN0X2tleV90 aW1lICYmIHRpbWUgLSBmaXJzdF9rZXlfdGltZSA+IDUwMDApCi0tICAgICAgICByZXNldEtleUNo YWluKCk7Ci0rLy8gICAgYXV0byByZXNldEtleUNoYWluID0gWyZdKCkgewotKy8vICAgICAgICBm aXJzdF9rZXlfdGltZSA9IDA7Ci0rLy8gICAgICAgIG5leHRfa2V5LnJlc2V0KCk7Ci0rLy8gICAg ICAgIGlmIChzYXZlZF9rZXltb2RlKSB7Ci0rLy8gICAgICAgICAgICBzZXRLZXlNb2RlKHNhdmVk X2tleW1vZGUpOwotKy8vICAgICAgICAgICAgc2F2ZWRfa2V5bW9kZS5yZXNldCgpOwotKy8vICAg ICAgICB9Ci0rLy8gICAgfTsKLSsvLyAgICBpZiAodHlwZSA9PSBLZXlQcmVzcyAmJiBmaXJzdF9r ZXlfdGltZSAmJiB0aW1lIC0gZmlyc3Rfa2V5X3RpbWUgPiA1MDAwKQotKy8vICAgICAgICByZXNl dEtleUNoYWluKCk7Ci0gCi0gICAgIGlmICghbmV4dF9rZXkpCi0gICAgICAgICBuZXh0X2tleSA9 IG1fa2V5bGlzdDsKLUBAIC02MTIsMjkgKzYxMiwyOSBAQCBib29sIEtleXM6OmRvQWN0aW9uKGlu dCB0eXBlLCB1bnNpZ25lZCBpbnQgbW9kcywgdW5zaWduZWQgaW50IGtleSwKLSAgICAgICAgIG5l eHRfa2V5LT5maW5kKE1vdGlvbk5vdGlmeSwgbW9kcywga2V5LCBjb250ZXh0LCBmYWxzZSkpCi0g ICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gaWYgdGhlcmUncyBhIG1vdGlvbiBhY3Rpb24sIHByZXZl bnQgcmVwbGF5IHRvIHRoZSBjbGllbnQgKGJ1dCBkbyBub3RoaW5nKQotIAotLSAgICBpZiAodGVt cF9rZXkgJiYgIXRlbXBfa2V5LT5rZXlsaXN0LmVtcHR5KCkpIHsgLy8gZW1hY3Mtc3R5bGUKLS0g ICAgICAgIGlmICghc2F2ZWRfa2V5bW9kZSkgewotLSAgICAgICAgICAgIGZpcnN0X2tleV90aW1l ID0gdGltZTsKLS0gICAgICAgICAgICBzYXZlZF9rZXltb2RlID0gbV9rZXlsaXN0OwotLSAgICAg ICAgfQotLSAgICAgICAgbmV4dF9rZXkgPSB0ZW1wX2tleTsKLS0gICAgICAgIHNldEtleU1vZGUo bmV4dF9rZXkpOwotLSAgICAgICAgcmV0dXJuIHRydWU7Ci0tICAgIH0KLSsvLyAgICBpZiAodGVt cF9rZXkgJiYgIXRlbXBfa2V5LT5rZXlsaXN0LmVtcHR5KCkpIHsgLy8gZW1hY3Mtc3R5bGUKLSsv LyAgICAgICAgaWYgKCFzYXZlZF9rZXltb2RlKSB7Ci0rLy8gICAgICAgICAgICBmaXJzdF9rZXlf dGltZSA9IHRpbWU7Ci0rLy8gICAgICAgICAgICBzYXZlZF9rZXltb2RlID0gbV9rZXlsaXN0Owot Ky8vICAgICAgICB9Ci0rLy8gICAgICAgIG5leHRfa2V5ID0gdGVtcF9rZXk7Ci0rLy8gICAgICAg IHNldEtleU1vZGUobmV4dF9rZXkpOwotKy8vICAgICAgICByZXR1cm4gdHJ1ZTsKLSsvLyAgICB9 Ci0rCi0gICAgIGlmICghdGVtcF9rZXkgfHwgdGVtcF9rZXktPm1fY29tbWFuZCA9PSAwKSB7Ci0t ICAgICAgICBpZiAodHlwZSA9PSBLZXlQcmVzcyAmJgotLSAgICAgICAgICAgICFGYlRrOjpLZXlV dGlsOjppbnN0YW5jZSgpLmtleWNvZGVUb01vZG1hc2soa2V5KSkgewotLSAgICAgICAgICAgIC8v IGlmIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgYW4gZW1hY3Mtc3R5bGUga2V5Y2hhaW4sIGV4aXQg aXQKLS0gICAgICAgICAgICByZXNldEtleUNoYWluKCk7Ci0tICAgICAgICB9Ci0rLy8gICAgICAg IGlmICh0eXBlID09IEtleVByZXNzICYmCi0rLy8gICAgICAgICAgICAhRmJUazo6S2V5VXRpbDo6 aW5zdGFuY2UoKS5rZXljb2RlVG9Nb2RtYXNrKGtleSkpIHsKLSsvLyAgICAgICAgICAgIC8vIGlm IHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgYW4gZW1hY3Mtc3R5bGUga2V5Y2hhaW4sIGV4aXQgaXQK LSsvLyAgICAgICAgICAgIHJlc2V0S2V5Q2hhaW4oKTsKLSsvLyAgICAgICAgfQotICAgICAgICAg cmV0dXJuIGZhbHNlOwotICAgICB9Ci0gCi0gICAgIC8vIGlmIGZvY3VzIGNoYW5nZXMsIHdpbmRv d3Mgd2lsbCBnZXQgTm90aWZ5V2hpbGVHcmFiYmVkLAotICAgICAvLyB3aGljaCB0aGV5IHRlbmQg dG8gaWdub3JlCi0tICAgIGlmICh0eXBlID09IEtleVByZXNzKSB7Ci0rICAgIGlmICh0eXBlID09 IEtleVByZXNzKQotICAgICAgICAgWFVuZ3JhYktleWJvYXJkKEZsdXhib3g6Omluc3RhbmNlKCkt PmRpc3BsYXkoKSwgQ3VycmVudFRpbWUpOwotLSAgICB9Ci0gCi0gICAgIFdpbkNsaWVudCAqb2xk ID0gV2luZG93Q21kPHZvaWQ+OjpjbGllbnQoKTsKLSAgICAgV2luZG93Q21kPHZvaWQ+OjpzZXRD bGllbnQoY3VycmVudCk7Ci1AQCAtNjUwLDEyICs2NTAsMTMgQEAgYm9vbCBLZXlzOjpkb0FjdGlv bihpbnQgdHlwZSwgdW5zaWduZWQgaW50IG1vZHMsIHVuc2lnbmVkIGludCBrZXksCi0gICAgIHRl bXBfa2V5LT5tX2NvbW1hbmQtPmV4ZWN1dGUoKTsKLSAgICAgV2luZG93Q21kPHZvaWQ+OjpzZXRD bGllbnQob2xkKTsKLSAKLS0gICAgaWYgKHNhdmVkX2tleW1vZGUpIHsKLS0gICAgICAgIGlmIChu ZXh0X2tleSA9PSBtX2tleWxpc3QpIC8vIGRvbid0IHJlc2V0IGtleW1vZGUgaWYgY29tbWFuZCBj aGFuZ2VkIGl0Ci0tICAgICAgICAgICAgc2V0S2V5TW9kZShzYXZlZF9rZXltb2RlKTsKLS0gICAg ICAgIHNhdmVkX2tleW1vZGUucmVzZXQoKTsKLS0gICAgfQotLSAgICBuZXh0X2tleS5yZXNldCgp OwotKy8vICAgIGlmIChzYXZlZF9rZXltb2RlKSB7Ci0rLy8gICAgICAgIGlmIChuZXh0X2tleSA9 PSBtX2tleWxpc3QpIC8vIGRvbid0IHJlc2V0IGtleW1vZGUgaWYgY29tbWFuZCBjaGFuZ2VkIGl0 Ci0rLy8gICAgICAgICAgICBzZXRLZXlNb2RlKHNhdmVkX2tleW1vZGUpOwotKy8vICAgICAgICBz YXZlZF9rZXltb2RlLnJlc2V0KCk7Ci0rLy8gICAgfQotKy8vICAgIG5leHRfa2V5LnJlc2V0KCk7 Ci0rCi0gICAgIHJldHVybiB0cnVlOwotIH0KLSAKLUBAIC02ODUsMTUgKzY4NiwxNiBAQCB2b2lk IEtleXM6OnJlY29uZmlndXJlKCkgewotIH0KLSAKLSB2b2lkIEtleXM6OnJlZ3JhYigpIHsKLS0g ICAgc2V0S2V5TW9kZShtX2tleWxpc3QpOwotKyAgICAvL3NldEtleU1vZGUobV9rZXlsaXN0KTsK LSB9Ci0gCi0gdm9pZCBLZXlzOjprZXlNb2RlKGNvbnN0IHN0cmluZyYga2V5TW9kZSkgewotLSAg ICBrZXlzcGFjZV90OjppdGVyYXRvciBpdCA9IG1fbWFwLmZpbmQoa2V5TW9kZSArICI6Iik7Ci0t ICAgIGlmIChpdCA9PSBtX21hcC5lbmQoKSkKLSsgICAgLy9rZXlzcGFjZV90OjppdGVyYXRvciBp dCA9IG1fbWFwLmZpbmQoa2V5TW9kZSArICI6Iik7Ci0rICAgIC8vaWYgKGl0ID09IG1fbWFwLmVu ZCgpKQotKyAgICAvLyAgICBzZXRLZXlNb2RlKG1fbWFwWyJkZWZhdWx0OiJdKTsKLSsgICAgLy9l bHNlCi0rICAgIC8vICAgIHNldEtleU1vZGUoaXQtPnNlY29uZCk7Ci0gICAgICAgICBzZXRLZXlN b2RlKG1fbWFwWyJkZWZhdWx0OiJdKTsKLS0gICAgZWxzZQotLSAgICAgICAgc2V0S2V5TW9kZShp dC0+c2Vjb25kKTsKLSB9Ci0gCi0gdm9pZCBLZXlzOjpzZXRLZXlNb2RlKGNvbnN0IEZiVGs6OlJl ZkNvdW50PHRfa2V5PiAma2V5TW9kZSkgewotQEAgLTcwMSwxMCArNzAzLDEwIEBAIHZvaWQgS2V5 czo6c2V0S2V5TW9kZShjb25zdCBGYlRrOjpSZWZDb3VudDx0X2tleT4gJmtleU1vZGUpIHsKLSAg ICAgdW5ncmFiQnV0dG9ucygpOwotIAotICAgICAvLyBub3RpZnkgaGFuZGxlcnMgdGhhdCB0aGVp ciBidXR0b25zIGhhdmUgYmVlbiB1bmdyYWJiZWQKLS0gICAgSGFuZGxlck1hcDo6aXRlcmF0b3Ig aF9pdCA9IG1faGFuZGxlcl9tYXAuYmVnaW4oKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg aF9pdF9lbmQgID0gbV9oYW5kbGVyX21hcC5lbmQoKTsKLS0gICAgZm9yICg7IGhfaXQgIT0gaF9p dF9lbmQ7ICsraF9pdCkKLS0gICAgICAgIGhfaXQtPnNlY29uZC0+Z3JhYkJ1dHRvbnMoKTsKLSsg ICAgLy9IYW5kbGVyTWFwOjppdGVyYXRvciBoX2l0ID0gbV9oYW5kbGVyX21hcC5iZWdpbigpLAot KyAgICAvLyAgICAgICAgICAgICAgICAgICAgIGhfaXRfZW5kICA9IG1faGFuZGxlcl9tYXAuZW5k KCk7Ci0rICAgIC8vZm9yICg7IGhfaXQgIT0gaF9pdF9lbmQ7ICsraF9pdCkKLSsgICAgLy8gICAg aF9pdC0+c2Vjb25kLT5ncmFiQnV0dG9ucygpOwotIAotICAgICB0X2tleTo6a2V5bGlzdF90Ojpp dGVyYXRvciBpdCA9IGtleU1vZGUtPmtleWxpc3QuYmVnaW4oKTsKLSAgICAgdF9rZXk6OmtleWxp c3RfdDo6aXRlcmF0b3IgaXRfZW5kID0ga2V5TW9kZS0+a2V5bGlzdC5lbmQoKTsKLWRpZmYgLS1n aXQgYS9zcmMvV2luZG93LmNjIGIvc3JjL1dpbmRvdy5jYwotaW5kZXggMzQyZTQ4ODUuLjQ1N2Mz MGM2IDEwMDY0NAotLS0tIGEvc3JjL1dpbmRvdy5jYwotKysrIGIvc3JjL1dpbmRvdy5jYwotQEAg LTExMzMsMTMgKzExMzMsMjUgQEAgdm9pZCBGbHV4Ym94V2luZG93Ojp1cGRhdGVTaXplSGludHMo KSB7Ci0gfQotIAotIHZvaWQgRmx1eGJveFdpbmRvdzo6Z3JhYkJ1dHRvbnMoKSB7Ci0tCi0rLy9O T0dSQUIKLSsgICAgLy9pZiAobV9jbGllbnQtPndpbmRvdygpICE9IGZyYW1lKCkud2luZG93KCku d2luZG93KCkgKSByZXR1cm47Ci0gICAgIC8vIG5lZWRlZCBmb3IgY2xpY2sgdG8gZm9jdXMKLS0g ICAgWEdyYWJCdXR0b24oZGlzcGxheSwgQnV0dG9uMSwgQW55TW9kaWZpZXIsCi0tICAgICAgICAg ICAgICAgIGZyYW1lKCkud2luZG93KCkud2luZG93KCksIFRydWUsIEJ1dHRvblByZXNzTWFzaywK LS0gICAgICAgICAgICAgICAgR3JhYk1vZGVTeW5jLCBHcmFiTW9kZVN5bmMsIE5vbmUsIE5vbmUp OwotLSAgICBYVW5ncmFiQnV0dG9uKGRpc3BsYXksIEJ1dHRvbjEsIE1vZDFNYXNrfE1vZDJNYXNr fE1vZDNNYXNrLAotLSAgICAgICAgICAgICAgICAgIGZyYW1lKCkud2luZG93KCkud2luZG93KCkp OwotKyAgICAvLyBncmFiYmluZyBhc3luYyBoZXJlIGJyZWFrcyBtb3VzZTEKLSsgICAgLy9YR3Jh YkJ1dHRvbihkaXNwbGF5LCBCdXR0b24xLCBBbnlNb2RpZmllciwKLSsgICAgLy8gICAgICAgICAg ICBmcmFtZSgpLndpbmRvdygpLndpbmRvdygpLCBUcnVlLCBCdXR0b25QcmVzc01hc2ssCi0rICAg IC8vICAgICAgICAgICAgR3JhYk1vZGVTeW5jLCBHcmFiTW9kZVN5bmMsIE5vbmUsIE5vbmUpOwot KyAgICAvLyAgICAgICAgICAgIC8vR3JhYk1vZGVBc3luYywgR3JhYk1vZGVBc3luYywgTm9uZSwg Tm9uZSk7Ci0rICAgIC8vWFVuZ3JhYkJ1dHRvbihkaXNwbGF5LCBCdXR0b24xLCBNb2QxTWFza3xN b2QyTWFza3xNb2QzTWFzaywKLSsgICAgLy8gICAgICAgICAgICAgIGZyYW1lKCkud2luZG93KCku d2luZG93KCkpOwotKyAgICAvL1hHcmFiUG9pbnRlcihkaXNwbGF5LAotKyAgICAvLyAgICAgICAg ICAgICBmcmFtZSgpLndpbmRvdygpLndpbmRvdygpLAotKyAgICAvLyAgICAgICAgICAgICBUcnVl LAotKyAgICAvLyAgICAgICAgICAgICBCdXR0b25QcmVzc01hc2ssCi0rICAgIC8vICAgICAgICAg ICAgIEdyYWJNb2RlQXN5bmMsIEdyYWJNb2RlQXN5bmMsCi0rICAgIC8vICAgICAgICAgICAgIE5v bmUsCi0rICAgIC8vICAgICAgICAgICAgIE5vbmUsCi0rICAgIC8vICAgICAgICAgICAgIEN1cnJl bnRUaW1lKTsKLSsgICAgLy9YVW5ncmFiUG9pbnRlcihkaXNwbGF5LCBDdXJyZW50VGltZSk7Ci0g fQotIAotIAotQEAgLTI0MjksNjMgKzI0NDEsNDEgQEAgdm9pZCBGbHV4Ym94V2luZG93OjpidXR0 b25QcmVzc0V2ZW50KFhCdXR0b25FdmVudCAmYmUpIHsKLSAgICAgbV9sYXN0X3ByZXNzZWRfYnV0 dG9uID0gYmUuYnV0dG9uOwotIAotICAgICBGYlRrOjpNZW51OjpoaWRlU2hvd25NZW51KCk7Ci0t Ci0rLy9GSVggQUxMT1cKLSAgICAgS2V5cyAqayA9IEZsdXhib3g6Omluc3RhbmNlKCktPmtleXMo KTsKLSAgICAgaW50IGNvbnRleHQgPSAwOwotICAgICBjb250ZXh0ID0gZnJhbWUoKS5nZXRDb250 ZXh0KGJlLnN1YndpbmRvdyA/IGJlLnN1YndpbmRvdyA6IGJlLndpbmRvdywgYmUueF9yb290LCBi ZS55X3Jvb3QpOwotICAgICBpZiAoIWNvbnRleHQgJiYgYmUuc3Vid2luZG93KQotICAgICAgICAg Y29udGV4dCA9IGZyYW1lKCkuZ2V0Q29udGV4dChiZS53aW5kb3cpOwotIAotLSAgICBpZiAoay0+ ZG9BY3Rpb24oYmUudHlwZSwgYmUuc3RhdGUsIGJlLmJ1dHRvbiwgY29udGV4dCwgJndpbkNsaWVu dCgpLCBiZS50aW1lKSkgewotLSAgICAgICAgWEFsbG93RXZlbnRzKGRpc3BsYXksIFN5bmNQb2lu dGVyLCBDdXJyZW50VGltZSk7Ci0tICAgICAgICByZXR1cm47Ci0tICAgIH0KLS0KLS0gICAgV2lu Q2xpZW50ICpjbGllbnQgPSAwOwotLSAgICBpZiAoIXNjcmVlbigpLmZvY3VzQ29udHJvbCgpLmlz TW91c2VUYWJGb2N1cygpKSB7Ci0tICAgICAgICAvLyBkZXRlcm1pbmUgaWYgd2UncmUgaW4gYSBs YWJlbCBidXR0b24gKHRhYikKLS0gICAgICAgIGNsaWVudCA9IHdpbkNsaWVudE9mTGFiZWxCdXR0 b25XaW5kb3coYmUud2luZG93KTsKLS0gICAgfQotLQotLQotLSAgICAvLyAtIHJlZmVlZCB0aGUg ZXZlbnQgaW50byB0aGUgcXVldWUgc28gdGhlIGFwcCBvciB0aXRsZWJhciBzdWJ3aW5kb3cgZ2V0 cyBpdAotLSAgICBpZiAoYmUuc3Vid2luZG93KQotLSAgICAgICAgWEFsbG93RXZlbnRzKGRpc3Bs YXksIFJlcGxheVBvaW50ZXIsIEN1cnJlbnRUaW1lKTsKLS0gICAgZWxzZQotLSAgICAgICAgWEFs bG93RXZlbnRzKGRpc3BsYXksIFN5bmNQb2ludGVyLCBDdXJyZW50VGltZSk7Ci0tCi0tICAgIC8v IGlmIG5vdGhpbmcgd2FzIGJvdW5kIHZpYSBrZXlzLWZpbGUgdGhlbgotLSAgICAvLyAtIHJhaXNl KCkgaWYgY2xpY2tSYWlzZSBpcyBlbmFibGVkCi0tICAgIC8vIC0gaGlkZSBvcGVuIG1lbnVlcwot LSAgICAvLyAtIGZvY3VzIG9uIGNsaWNrRm9jdXMKLS0gICAgaWYgKGZyYW1lKCkud2luZG93KCku d2luZG93KCkgPT0gYmUud2luZG93KSB7Ci0tICAgICAgICBpZiAoc2NyZWVuKCkuY2xpY2tSYWlz ZXMoKSkKLS0gICAgICAgICAgICByYWlzZSgpOwotLQotLSAgICAgICAgbV9idXR0b25fZ3JhYl94 ID0gYmUueF9yb290IC0gZnJhbWUoKS54KCkgLSBmcmFtZSgpLndpbmRvdygpLmJvcmRlcldpZHRo KCk7Ci0tICAgICAgICBtX2J1dHRvbl9ncmFiX3kgPSBiZS55X3Jvb3QgLSBmcmFtZSgpLnkoKSAt IGZyYW1lKCkud2luZG93KCkuYm9yZGVyV2lkdGgoKTsKLS0gICAgfQotLQotLSAgICBpZiAoIW1f Zm9jdXNlZCAmJiBhY2NlcHRzRm9jdXMoKSAmJiBtX2NsaWNrX2ZvY3VzKQotLSAgICAgICAgZm9j dXMoKTsKLS0KLS0gICAgaWYgKCFzY3JlZW4oKS5mb2N1c0NvbnRyb2woKS5pc01vdXNlVGFiRm9j dXMoKSAmJgotLSAgICAgICAgY2xpZW50ICYmIGNsaWVudCAhPSBtX2NsaWVudCAmJgotLSAgICAg ICAgIXNjcmVlbigpLmZvY3VzQ29udHJvbCgpLmlzSWdub3JlZChiZS54X3Jvb3QsIGJlLnlfcm9v dCkgKSB7Ci0tICAgICAgICBzZXRDdXJyZW50Q2xpZW50KCpjbGllbnQsIGlzRm9jdXNlZCgpKTsK LS0gICAgfQotLQotLQotLQotK3N0ZDo6Y291dCA8PCAiYnV0dG9uIHdpbmRvdzogIiA8PCBiZS53 aW5kb3cgPDwgIlxuYnV0dG9uIHN1YndpbmRvdzogIiA8PCBiZS5zdWJ3aW5kb3cgPDwgIlxuIjsK LStrLT5kb0FjdGlvbihiZS50eXBlLCBiZS5zdGF0ZSwgYmUuYnV0dG9uLCBjb250ZXh0LCAmd2lu Q2xpZW50KCksIEN1cnJlbnRUaW1lKTsgLy8gdy9vIHRoaXMsIG5vIG1vdXNlIGNtZHMKLStYQWxs b3dFdmVudHMoZGlzcGxheSwgUmVwbGF5UG9pbnRlciwgQ3VycmVudFRpbWUpOyAvLyB3L28gdGhp cywgbm8gbW91c2UKLSsvLyB1bHRpbWF0ZWx5IG5vbmUgb2YgdGhlIGJlbG93IG1hdHRlcnMKLSsg ICAgLy8gaW5maW5pdGUgbG9vcAotKyAgICAvL2lmIChiZS5zdWJ3aW5kb3cpIHsKLSsgICAgLy8g IC8vWEV2ZW50IG9tZmcgPSAoWEV2ZW50ICopJmJlOwotKyAgICAvLyAgLy9iZS53aW5kb3cgPSBi ZS5zdWJ3aW5kb3c7Ci0rICAgIC8vICAvL2JlLnN1YndpbmRvdyA9IDA7Ci0rICAgIC8vICBpbnQg aHVoID0gWFNlbmRFdmVudChkaXNwbGF5LCBiZS53aW5kb3csIEZhbHNlLCBCdXR0b25QcmVzc01h c2ssIChYRXZlbnQqKSZiZSk7Ci0rICAgIC8vICBzdGQ6OmNvdXQgPDwgInhzZW5kZXZlbnQ6ICIg PDwgaHVoIDw8ICJcbiI7Ci0rICAgIC8vfQotKyAgICAvL1hTeW5jKGRpc3BsYXksIDApOwotKyAg ICAvL2ludCB3dGYgPSBYQWxsb3dFdmVudHMoZGlzcGxheSwgUmVwbGF5UG9pbnRlciwgQ3VycmVu dFRpbWUpOyAvLyB0aW1lIG1lYW5zIHNxdWF0IC0gd29ya3MgYnV0IG5vdCBmb3IgbWVudXMKLSsg ICAgLy9zdGQ6OmNvdXQgPDwgInhhbGxvd2V2ZW50czogIiA8PCB3dGYgPDwgIlxuIjsKLSsgICAg Ly9YU3luYyhkaXNwbGF5LCAwKTsKLSsgICAgLy9YQWxsb3dFdmVudHMoZGlzcGxheSwgUmVwbGF5 UG9pbnRlciwgYmUudGltZSk7IC8vIHRpbWUgbWVhbnMgc3F1YXQgLSB3b3JrcyBidXQgbm90IGZv ciBtZW51cwotKyAgICAvL1hBbGxvd0V2ZW50cyhkaXNwbGF5LCBTeW5jUG9pbnRlciwgQ3VycmVu dFRpbWUpOyAvLyBzeW5jIHdpbGwgbm90IGRvdWJsZWNsaWNrIG9yIGFjdCBwcm9wZXIKLSsgICAg Ly9YQWxsb3dFdmVudHMoZGlzcGxheSwgQXN5bmNQb2ludGVyLCBDdXJyZW50VGltZSk7IC8vIF5e IHNhbWUKLSsgICAgLy9pZiAoYmUuc3Vid2luZG93KQotKyAgICAvLyAgWEZsdXNoKGRpc3BsYXkp OwotKyAgICAvLyAgLy9YU3luYyhkaXNwbGF5LCBUcnVlKTsKLSB9Ci0gCi0gY29uc3QgdW5zaWdu ZWQgaW50IERFQURaT05FID0gNDsKLSAKLSB2b2lkIEZsdXhib3hXaW5kb3c6OmJ1dHRvblJlbGVh c2VFdmVudChYQnV0dG9uRXZlbnQgJnJlKSB7Ci0gCi0tICAgIGlmIChtX2xhc3RfcHJlc3NlZF9i dXR0b24gPT0gc3RhdGljX2Nhc3Q8aW50PihyZS5idXR0b24pKSB7Ci0tICAgICAgICBtX2xhc3Rf cHJlc3NlZF9idXR0b24gPSAwOwotLSAgICB9Ci0gCi0gICAgIGlmIChpc01vdmluZygpKQotICAg ICAgICAgc3RvcE1vdmluZygpOwotQEAgLTI1MDIsNiArMjQ5MiwxMyBAQCB2b2lkIEZsdXhib3hX aW5kb3c6OmJ1dHRvblJlbGVhc2VFdmVudChYQnV0dG9uRXZlbnQgJnJlKSB7Ci0gCi0gICAgICAg ICBGbHV4Ym94OjppbnN0YW5jZSgpLT5rZXlzKCktPmRvQWN0aW9uKHJlLnR5cGUsIHJlLnN0YXRl LCByZS5idXR0b24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnRleHQsICZ3aW5DbGllbnQoKSwgcmUudGltZSk7Ci0rICAgICAgLy8gc3luY3MgZG9u dCBtYWtlIGEgZGlmZmVyZW5jZT8KLSsgICAgICAvL1hTeW5jKGRpc3BsYXksIDApOwotKyAgICAg IFhBbGxvd0V2ZW50cyhkaXNwbGF5LCBSZXBsYXlQb2ludGVyLCBDdXJyZW50VGltZSk7IC8vIHRp bWUgbWVhbnMgc3F1YXQgLSB3b3JrcyBidXQgbm90IGZvciBtZW51cwotKyAgICAgIC8vWFN5bmMo ZGlzcGxheSwgMCk7Ci0rICAgIH0KLSsgICAgaWYgKG1fbGFzdF9wcmVzc2VkX2J1dHRvbiA9PSBz dGF0aWNfY2FzdDxpbnQ+KHJlLmJ1dHRvbikpIHsKLSsgICAgICAgIG1fbGFzdF9wcmVzc2VkX2J1 dHRvbiA9IDA7Ci0gICAgIH0KLSB9Ci0gCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZsdXhib3gvcGF0 Y2hlcy91bmNsdXR0ZXJfZml4X3dvcmtzcGFjZWNtZC5wYXRjaCBiL3NyY3BrZ3MvZmx1eGJveC9w YXRjaGVzL3VuY2x1dHRlcl9maXhfd29ya3NwYWNlY21kLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAzNmM1NzJjZWE0ZmYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Zs dXhib3gvcGF0Y2hlcy91bmNsdXR0ZXJfZml4X3dvcmtzcGFjZWNtZC5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDY1ICswLDAgQEAKLWRpZmYgLS1naXQgYS9zcmMvV29ya3NwYWNlQ21kLmNjIGIv c3JjL1dvcmtzcGFjZUNtZC5jYwotaW5kZXggYzJlNDk0ODUuLjliNDA1OGM4IDEwMDY0NAotLS0t IGEvc3JjL1dvcmtzcGFjZUNtZC5jYwotKysrIGIvc3JjL1dvcmtzcGFjZUNtZC5jYwotQEAgLTUy MSwyMiArNTIxLDI0IEBAIHZvaWQgQXJyYW5nZVdpbmRvd3NDbWQ6OmV4ZWN1dGUoKSB7Ci0gICAg IGNvbnN0IHVuc2lnbmVkIGludCBjYWxfd2lkdGggPSBtYXhfd2lkdGgvY29sczsgLy8gd2lkdGgg cmF0aW8gKHdpZHRoIG9mIGV2ZXJ5IHdpbmRvdykKLSAgICAgY29uc3QgdW5zaWduZWQgaW50IGNh bF9oZWlnaHQgPSBtYXhfaGVpZ2h0L3Jvd3M7IC8vIGhlaWdodCByYXRpbyAoaGVpZ2h0IG9mIGV2 ZXJ5IHdpbmRvdykKLQotKyAgICBpbnQgY2VsbF9jZW50ZXJfeCA9IDAsIGNlbGxfY2VudGVyX3kg PSAwLCB3aW5fY2VudGVyX3ggPSAwLCB3aW5fY2VudGVyX3kgPSAwLCB4ID0gMCwgeSA9IDA7Ci0r ICAgIHVuc2lnbmVkIGludCBjbG9zZXN0X2Rpc3QgPSB+MCwgZGlzdCA9IDAsIHcgPSAwLCBoID0g MDsKLSAgICAgLy8gUmVzaXplcyBhbmQgc2V0cyB3aW5kb3dzIHBvc2l0aW9ucyBpbiBjb2x1bW5z IGFuZCByb3dzLgotICAgICBmb3IgKGkgPSAwOyBpIDwgcm93czsgKytpKSB7Ci0gICAgICAgICB4 X29mZnMgPSBvcmlnX3hfb2ZmczsKLSAgICAgICAgIGZvciAoaiA9IDA7IGogPCBjb2xzICYmICFu b3JtYWxfd2luZG93cy5lbXB0eSgpOyArK2opIHsKLQotCi0tICAgICAgICAgICAgaW50IGNlbGxf Y2VudGVyX3ggPSB4X29mZnMgKyAoeF9vZmZzICsgY2FsX3dpZHRoKSAvIDI7Ci0tICAgICAgICAg ICAgaW50IGNlbGxfY2VudGVyX3kgPSB5X29mZnMgKyAoeV9vZmZzICsgY2FsX2hlaWdodCkgLyAy OwotLSAgICAgICAgICAgIHVuc2lnbmVkIGludCBjbG9zZXN0X2Rpc3QgPSB+MDsKLSsgICAgICAg ICAgICBjZWxsX2NlbnRlcl94ID0geF9vZmZzICsgKHhfb2ZmcyArIGNhbF93aWR0aCkgLyAyOwot KyAgICAgICAgICAgIGNlbGxfY2VudGVyX3kgPSB5X29mZnMgKyAoeV9vZmZzICsgY2FsX2hlaWdo dCkgLyAyOwotKyAgICAgICAgICAgIGludCBjbG9zZXN0X2Rpc3QgPSB+MDsKLQotICAgICAgICAg ICAgIFdvcmtzcGFjZTo6V2luZG93czo6aXRlcmF0b3IgY2xvc2VzdCA9IG5vcm1hbF93aW5kb3dz LmVuZCgpOwotICAgICAgICAgICAgIGZvciAod2luID0gbm9ybWFsX3dpbmRvd3MuYmVnaW4oKTsg d2luICE9IG5vcm1hbF93aW5kb3dzLmVuZCgpOyArK3dpbikgewotCi0tICAgICAgICAgICAgICAg IGludCB3aW5fY2VudGVyX3ggPSAoKndpbiktPmZyYW1lKCkueCgpICsgKCgqd2luKS0+ZnJhbWUo KS54KCkgKyAoKndpbiktPmZyYW1lKCkud2lkdGgoKSAvIDIpOwotLSAgICAgICAgICAgICAgICBp bnQgd2luX2NlbnRlcl95ID0gKCp3aW4pLT5mcmFtZSgpLnkoKSArICgoKndpbiktPmZyYW1lKCku eSgpICsgKCp3aW4pLT5mcmFtZSgpLmhlaWdodCgpIC8gMik7Ci0tICAgICAgICAgICAgICAgIHVu c2lnbmVkIGludCBkaXN0ID0gKHdpbl9jZW50ZXJfeCAtIGNlbGxfY2VudGVyX3gpICogKHdpbl9j ZW50ZXJfeCAtIGNlbGxfY2VudGVyX3gpICsKLSsgICAgICAgICAgICAgICAgd2luX2NlbnRlcl94 ID0gKCp3aW4pLT5mcmFtZSgpLngoKSArICgoKndpbiktPmZyYW1lKCkueCgpICsgKCp3aW4pLT5m cmFtZSgpLndpZHRoKCkgLyAyKTsKLSsgICAgICAgICAgICAgICAgd2luX2NlbnRlcl95ID0gKCp3 aW4pLT5mcmFtZSgpLnkoKSArICgoKndpbiktPmZyYW1lKCkueSgpICsgKCp3aW4pLT5mcmFtZSgp LmhlaWdodCgpIC8gMik7Ci0rICAgICAgICAgICAgICAgIGRpc3QgPSAod2luX2NlbnRlcl94IC0g Y2VsbF9jZW50ZXJfeCkgKiAod2luX2NlbnRlcl94IC0gY2VsbF9jZW50ZXJfeCkgKwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aW5fY2VudGVyX3kgLSBjZWxsX2NlbnRl cl95KSAqICh3aW5fY2VudGVyX3kgLSBjZWxsX2NlbnRlcl95KTsKLQotICAgICAgICAgICAgICAg ICBpZiAoZGlzdCA8IGNsb3Nlc3RfZGlzdCkgewotQEAgLTU0NSwxMCArNTQ3LDEwIEBAIHZvaWQg QXJyYW5nZVdpbmRvd3NDbWQ6OmV4ZWN1dGUoKSB7Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAg ICAgICAgICB9Ci0KLS0gICAgICAgICAgICBpbnQgeCA9IHhfb2ZmcyArICgqY2xvc2VzdCktPnhP ZmZzZXQoKTsKLS0gICAgICAgICAgICBpbnQgeSA9IHlfb2ZmcyArICgqY2xvc2VzdCktPnlPZmZz ZXQoKTsKLS0gICAgICAgICAgICB1bnNpZ25lZCBpbnQgdyA9IGNhbF93aWR0aCAtICgqY2xvc2Vz dCktPndpZHRoT2Zmc2V0KCk7Ci0tICAgICAgICAgICAgdW5zaWduZWQgaW50IGggPSBjYWxfaGVp Z2h0IC0gKCpjbG9zZXN0KS0+aGVpZ2h0T2Zmc2V0KCk7Ci0rICAgICAgICAgICAgeCA9IHhfb2Zm cyArICgqY2xvc2VzdCktPnhPZmZzZXQoKTsKLSsgICAgICAgICAgICB5ID0geV9vZmZzICsgKCpj bG9zZXN0KS0+eU9mZnNldCgpOwotKyAgICAgICAgICAgIHcgPSBjYWxfd2lkdGggLSAoKmNsb3Nl c3QpLT53aWR0aE9mZnNldCgpOwotKyAgICAgICAgICAgIGggPSBjYWxfaGVpZ2h0IC0gKCpjbG9z ZXN0KS0+aGVpZ2h0T2Zmc2V0KCk7Ci0KLSAgICAgICAgICAgICAvLyB0aGUgbGFzdCB3aW5kb3cg Z2V0cyBldmVyeXRoaW5nIHRoYXQgaXMgbGVmdC4KLSAgICAgICAgICAgICBpZiAobm9ybWFsX3dp bmRvd3Muc2l6ZSgpID09IDEpIHsKLUBAIC02MjAsMTIgKzYyMiw5IEBAIHZvaWQgVW5jbHV0dGVy Q21kOjpleGVjdXRlKCkgewotICAgICAgICAgcmV0dXJuOwotCi0gICAgIC8vIHBsYWNlCi0tICAg IE1pbk92ZXJsYXBQbGFjZW1lbnQgbW9wcDsKLSAgICAgaW50IHgsIHk7Ci0tICAgIGZvciAod2lu ID0gcGxhY2VkX3dpbmRvd3MuYmVnaW4oKTsgd2luICE9IHBsYWNlZF93aW5kb3dzLmVuZCgpOyAr K3dpbikgewotLSAgICAgICAgbW9wcC5wbGFjZVdpbmRvdygqKndpbiwgaGVhZCwgeCwgeSk7Ci0t ICAgICAgICAoKndpbiktPm1vdmUoeCwgeSk7Ci0tICAgIH0KLSsgICAgZm9yICh3aW4gPSBwbGFj ZWRfd2luZG93cy5iZWdpbigpOyB3aW4gIT0gcGxhY2VkX3dpbmRvd3MuZW5kKCk7ICsrd2luKQot KyAgICAgICAgKCp3aW4pLT5wbGFjZVdpbmRvdygoKndpbiktPmdldE9uSGVhZCgpKTsKLSB9Ci0K LSBSRUdJU1RFUl9DT01NQU5EKHNob3dkZXNrdG9wLCBTaG93RGVza3RvcENtZCwgdm9pZCk7CmRp ZmYgLS1naXQgYS9zcmNwa2dzL2ZsdXhib3gvcGF0Y2hlcy96b3JfbG9vcHMucGF0Y2ggYi9zcmNw a2dzL2ZsdXhib3gvcGF0Y2hlcy96b3JfbG9vcHMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDk1ZDk5MmY5MDcxZC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZmx1eGJv eC9wYXRjaGVzL3pvcl9sb29wcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDg3ICswLDAgQEAK LWRpZmYgLS1naXQgYS9zcmMvRmJUay9TVExVdGlsLmhoIGIvc3JjL0ZiVGsvU1RMVXRpbC5oaAot aW5kZXggYWJjNTQ3MjkuLjljOWMyN2Y5IDEwMDY0NAotLS0tIGEvc3JjL0ZiVGsvU1RMVXRpbC5o aAotKysrIGIvc3JjL0ZiVGsvU1RMVXRpbC5oaAotQEAgLTQ4LDQ2ICs0OCw2MyBAQCBzdHJ1Y3Qg SWZUaGVuRWxzZTxmYWxzZSwgVGEsIFRiPiB7Ci0gLy8vIGNhbGxzIGRlbGV0ZSBvbiBlYWNoIGl0 ZW0gaW4gdGhlIGNvbnRhaW5lciBhbmQgdGhlbiBjbGVhcnMgdGhlIGNvbnRhaW5lcgotIHRlbXBs YXRlIDx0eXBlbmFtZSBBPgotIHZvaWQgZGVzdHJveUFuZENsZWFyKEEgJmEpIHsKLS0gICAgdHlw ZWRlZiB0eXBlbmFtZSBBOjppdGVyYXRvciBpdGVyYXRvcjsKLS0gICAgaXRlcmF0b3IgaXQgPSBh LmJlZ2luKCk7Ci0tICAgIGl0ZXJhdG9yIGl0X2VuZCA9IGEuZW5kKCk7Ci0tICAgIGZvciAoOyBp dCAhPSBpdF9lbmQ7ICsraXQpCi0tICAgICAgICBkZWxldGUgKCppdCk7Ci0rICAgIC8vdHlwZWRl ZiB0eXBlbmFtZSBBOjppdGVyYXRvciBpdGVyYXRvcjsKLSsgICAgLy9pdGVyYXRvciBpdCA9IGEu YmVnaW4oKTsKLSsgICAgLy9pdGVyYXRvciBpdF9lbmQgPSBhLmVuZCgpOwotKyAgICAvL2ZvciAo OyBpdCAhPSBpdF9lbmQ7ICsraXQpCi0rICAgIC8vICAgIGRlbGV0ZSAoKml0KTsKLSAKLSsgICAg Ly9hLmNsZWFyKCk7Ci0rICAgIHR5cGVkZWYgdHlwZW5hbWUgQTo6aXRlcmF0b3IgaXRlcmF0b3I7 Ci0rICAgIGZvciAoYXV0byBpdCA6IGEpCi0rICAgICAgICBkZWxldGUgaXQ7Ci0gICAgIGEuY2xl YXIoKTsKLSB9Ci0gCi0gLy8vIGNhbGxzIGRlbGV0ZSBvbiBlYWNoIGl0ZW0gdmFsdWUgaW4gdGhl IG1hcCBhbmQgdGhlbiBjbGVhcnMgdGhlIG1hcAotIHRlbXBsYXRlIDx0eXBlbmFtZSBBPgotIHZv aWQgZGVzdHJveUFuZENsZWFyU2Vjb25kKEEgJmEpIHsKLSsgICAgLy90eXBlZGVmIHR5cGVuYW1l IEE6Oml0ZXJhdG9yIGl0ZXJhdG9yOwotKyAgICAvL2l0ZXJhdG9yIGl0ID0gYS5iZWdpbigpOwot KyAgICAvL2l0ZXJhdG9yIGl0X2VuZCA9IGEuZW5kKCk7Ci0rICAgIC8vZm9yICg7IGl0ICE9IGl0 X2VuZDsgKytpdCkKLSsgICAgLy8gICAgZGVsZXRlIGl0LT5zZWNvbmQ7Ci0rICAgIC8vYS5jbGVh cigpOwotICAgICB0eXBlZGVmIHR5cGVuYW1lIEE6Oml0ZXJhdG9yIGl0ZXJhdG9yOwotLSAgICBp dGVyYXRvciBpdCA9IGEuYmVnaW4oKTsKLS0gICAgaXRlcmF0b3IgaXRfZW5kID0gYS5lbmQoKTsK LS0gICAgZm9yICg7IGl0ICE9IGl0X2VuZDsgKytpdCkKLS0gICAgICAgIGRlbGV0ZSBpdC0+c2Vj b25kOwotKyAgICBmb3IgKGF1dG8gaXQgOiBhKQotKyAgICAgICAgZGVsZXRlIGl0LnNlY29uZDsK LSAgICAgYS5jbGVhcigpOwotIH0KLSAKLSAKLSB0ZW1wbGF0ZSA8dHlwZW5hbWUgQywgdHlwZW5h bWUgRj4KLSBGIGZvckFsbChDJiBjLCBGIGYpIHsKLSsgICAgLy90eXBlZGVmIHR5cGVuYW1lIEM6 Oml0ZXJhdG9yIGl0ZXJhdG9yOwotKyAgICAvL2l0ZXJhdG9yIGkgPSBjLmJlZ2luKCk7Ci0rICAg IC8vaXRlcmF0b3IgZSA9IGMuZW5kKCk7Ci0rICAgIC8vZm9yICg7IGkgIT0gZTsgaSsrKSB7Ci0r ICAgIC8vICAgIGYoKmkpOwotKyAgICAvL30KLSAgICAgdHlwZWRlZiB0eXBlbmFtZSBDOjppdGVy YXRvciBpdGVyYXRvcjsKLS0gICAgaXRlcmF0b3IgaSA9IGMuYmVnaW4oKTsKLS0gICAgaXRlcmF0 b3IgZSA9IGMuZW5kKCk7Ci0tICAgIGZvciAoOyBpICE9IGU7IGkrKykgewotLSAgICAgICAgZigq aSk7Ci0tICAgIH0KLSsgICAgZm9yIChhdXRvIGkgOiBjKQotKyAgICAgICAgZihpKTsKLSAgICAg cmV0dXJuIGY7Ci0gfQotIAotIHRlbXBsYXRlIDx0eXBlbmFtZSBDLCB0eXBlbmFtZSBJLCB0eXBl bmFtZSBGPgotIEYgZm9yQWxsSWYoQyYgYywgSSBpLCBGIGYpIHsKLSsgICAgLy90eXBlZGVmIHR5 cGVuYW1lIEM6Oml0ZXJhdG9yIGl0ZXJhdG9yOwotKyAgICAvL2l0ZXJhdG9yIGl0ID0gYy5iZWdp bigpOwotKyAgICAvL2l0ZXJhdG9yIGVuZCA9IGMuZW5kKCk7Ci0rICAgIC8vZm9yICg7IGl0ICE9 IGVuZDsgKytpdCkgewotKyAgICAvLyAgICBpZiAoaSgqaXQpKQotKyAgICAvLyAgICAgICAgZigq aXQpOwotKyAgICAvL30KLSsgICAgLy9yZXR1cm4gZjsKLSAgICAgdHlwZWRlZiB0eXBlbmFtZSBD OjppdGVyYXRvciBpdGVyYXRvcjsKLS0gICAgaXRlcmF0b3IgaXQgPSBjLmJlZ2luKCk7Ci0tICAg IGl0ZXJhdG9yIGVuZCA9IGMuZW5kKCk7Ci0tICAgIGZvciAoOyBpdCAhPSBlbmQ7ICsraXQpIHsK LS0gICAgICAgIGlmIChpKCppdCkpCi0tICAgICAgICAgICAgZigqaXQpOwotKyAgICBmb3IgKGF1 dG8gaXQgOiBjKSB7Ci0rICAgICAgICBpZiAoaShpdCkpCi0rICAgICAgICAgICAgZihpdCk7Ci0g ICAgIH0KLSAgICAgcmV0dXJuIGY7Ci0gfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9mcmVlcmRwL3Rl bXBsYXRlIGIvc3JjcGtncy9mcmVlcmRwL3RlbXBsYXRlCmluZGV4IDUzZTY3NjkwZjg2My4uMWI1 MGU5YTg2YmIyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZyZWVyZHAvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9mcmVlcmRwL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnZnJlZXJkcCcKIHBrZ25hbWU9ZnJlZXJkcAogdmVyc2lvbj0yLjkuMAotcmV2aXNpb249MQor cmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRFdJVEhfQUxT QT1PTiAtRFdJVEhfQ1VQUz1PRkYgLURXSVRIX0ZGTVBFRz1PTgogIC1EV0lUSF9HU1RSRUFNRVJf MF8xMD1PRkYgLURXSVRIX0dTVFJFQU1FUl8xXzA9T0ZGIC1EV0lUSF9KUEVHPU9OCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2dlcmJlcmEvdGVtcGxhdGUgYi9zcmNwa2dzL2dlcmJlcmEvdGVtcGxhdGUK aW5kZXggYWUxNGYzNWM3NjdjLi4yZGMwYWMwY2UwM2IgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2Vy YmVyYS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dlcmJlcmEvdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnZXJiZXJhJwogcGtnbmFtZT1nZXJiZXJhCiB2ZXJz aW9uPTEuMTIuMQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGNv bmZpZ3VyZV9hcmdzPSItRFdJVEhfU1lTVEVNRD0wIC1EV0lUSF9BVkNPREVDPTEiCiBob3N0bWFr ZWRlcGVuZHM9InBrZy1jb25maWciCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dvbGRlbmRpY3QvcGF0 Y2hlcy9mZm1wZWc1LTEucGF0Y2ggYi9zcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1 LTEucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43Y2ZjOThh ZGEzNjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1w ZWc1LTEucGF0Y2gKQEAgLTAsMCArMSwyMzIgQEAKK0Zyb20gMDNiYmUwMWI3OWExZjA3YTY3ODBj YjYwZjIzYTA4NzEwNGM1ZDc3YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFiczYy IDxvdHRvbWFubkB5YW5kZXgucnU+CitEYXRlOiBGcmksIDMwIE1hciAyMDE4IDIyOjUzOjI0ICsw MzAwCitTdWJqZWN0OiBbUEFUQ0hdIEZpeCB3YXJuaW5ncyB3aGlsZSBjb21waWxlIHdpdGggRkZN cGVnIDMuNC4yIChpc3N1ZSAjOTc4KQorCistLS0KKyBmZm1wZWdhdWRpby5jYyB8IDY4ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCisgMSBmaWxlIGNo YW5nZWQsIDYyIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9m Zm1wZWdhdWRpby5jYyBiL2ZmbXBlZ2F1ZGlvLmNjCitpbmRleCBlZDExNzJiZGQuLjU2ZThmNzg4 ZSAxMDA2NDQKKy0tLSBhL2ZmbXBlZ2F1ZGlvLmNjCisrKysgYi9mZm1wZWdhdWRpby5jYworQEAg LTkxLDYgKzkxLDcgQEAgc3RydWN0IERlY29kZXJDb250ZXh0CisgICBRQnl0ZUFycmF5IGF1ZGlv RGF0YV87CisgICBRRGF0YVN0cmVhbSBhdWRpb0RhdGFTdHJlYW1fOworICAgQVZGb3JtYXRDb250 ZXh0ICogZm9ybWF0Q29udGV4dF87CisrICBBVkNvZGVjICogY29kZWNfOworICAgQVZDb2RlY0Nv bnRleHQgKiBjb2RlY0NvbnRleHRfOworICAgQVZJT0NvbnRleHQgKiBhdmlvQ29udGV4dF87Cisg ICBBVlN0cmVhbSAqIGF1ZGlvU3RyZWFtXzsKK0BAIC0xMTQsNiArMTE1LDcgQEAgRGVjb2RlckNv bnRleHQ6OkRlY29kZXJDb250ZXh0KCBRQnl0ZUFycmF5IGNvbnN0ICYgYXVkaW9EYXRhLCBRQXRv bWljSW50ICYgaXNDYW4KKyAgIGF1ZGlvRGF0YV8oIGF1ZGlvRGF0YSApLAorICAgYXVkaW9EYXRh U3RyZWFtXyggYXVkaW9EYXRhXyApLAorICAgZm9ybWF0Q29udGV4dF8oIE5VTEwgKSwKKysgIGNv ZGVjXyggTlVMTCApLAorICAgY29kZWNDb250ZXh0XyggTlVMTCApLAorICAgYXZpb0NvbnRleHRf KCBOVUxMICksCisgICBhdWRpb1N0cmVhbV8oIE5VTEwgKSwKK0BAIC0xNDMsNyArMTQ1LDExIEBA IGJvb2wgRGVjb2RlckNvbnRleHQ6Om9wZW5Db2RlYyggUVN0cmluZyAmIGVycm9yU3RyaW5nICkK KyAgICAgcmV0dXJuIGZhbHNlOworICAgfQorCisrI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9NQUpP UiA8IDU2IHx8ICggTElCQVZDT0RFQ19WRVJTSU9OX01BSk9SID09IDU2ICYmIExJQkFWQ09ERUNf VkVSU0lPTl9NSU5PUiA8IDU2ICkKKyAgIHVuc2lnbmVkIGNoYXIgKiBhdmlvQnVmZmVyID0gKCB1 bnNpZ25lZCBjaGFyICogKWF2X21hbGxvYygga0J1ZmZlclNpemUgKyBGRl9JTlBVVF9CVUZGRVJf UEFERElOR19TSVpFICk7CisrI2Vsc2UKKysgIHVuc2lnbmVkIGNoYXIgKiBhdmlvQnVmZmVyID0g KCB1bnNpZ25lZCBjaGFyICogKWF2X21hbGxvYygga0J1ZmZlclNpemUgKyBBVl9JTlBVVF9CVUZG RVJfUEFERElOR19TSVpFICk7CisrI2VuZGlmCisgICBpZiAoICFhdmlvQnVmZmVyICkKKyAgIHsK KyAgICAgZXJyb3JTdHJpbmcgPSBRT2JqZWN0Ojp0ciggImF2X21hbGxvYygpIGZhaWxlZC4iICk7 CitAQCAtMTg2LDcgKzE5MiwxMSBAQCBib29sIERlY29kZXJDb250ZXh0OjpvcGVuQ29kZWMoIFFT dHJpbmcgJiBlcnJvclN0cmluZyApCisgICAvLyBGaW5kIGF1ZGlvIHN0cmVhbSwgdXNlIHRoZSBm aXJzdCBhdWRpbyBzdHJlYW0gaWYgYXZhaWxhYmxlCisgICBmb3IgKCB1bnNpZ25lZCBpID0gMDsg aSA8IGZvcm1hdENvbnRleHRfLT5uYl9zdHJlYW1zOyBpKysgKQorICAgeworKyNpZiBMSUJBVkNP REVDX1ZFUlNJT05fTUFKT1IgPCA1NyB8fCAoIExJQkFWQ09ERUNfVkVSU0lPTl9NQUpPUiA9PSA1 NyAmJiBMSUJBVkNPREVDX1ZFUlNJT05fTUlOT1IgPCAzMyApCisgICAgIGlmICggZm9ybWF0Q29u dGV4dF8tPnN0cmVhbXNbaV0tPmNvZGVjLT5jb2RlY190eXBlID09IEFWTUVESUFfVFlQRV9BVURJ TyApCisrI2Vsc2UKKysgICAgICBpZiAoIGZvcm1hdENvbnRleHRfLT5zdHJlYW1zW2ldLT5jb2Rl Y3Bhci0+Y29kZWNfdHlwZSA9PSBBVk1FRElBX1RZUEVfQVVESU8gKQorKyNlbmRpZgorICAgICB7 CisgICAgICAgYXVkaW9TdHJlYW1fID0gZm9ybWF0Q29udGV4dF8tPnN0cmVhbXNbaV07CisgICAg ICAgYnJlYWs7CitAQCAtMTk4LDIyICsyMDgsMzggQEAgYm9vbCBEZWNvZGVyQ29udGV4dDo6b3Bl bkNvZGVjKCBRU3RyaW5nICYgZXJyb3JTdHJpbmcgKQorICAgICByZXR1cm4gZmFsc2U7CisgICB9 CisKKysjaWYgTElCQVZDT0RFQ19WRVJTSU9OX01BSk9SIDwgNTcgfHwgKCBMSUJBVkNPREVDX1ZF UlNJT05fTUFKT1IgPT0gNTcgJiYgTElCQVZDT0RFQ19WRVJTSU9OX01JTk9SIDwgMzMgKQorICAg Y29kZWNDb250ZXh0XyA9IGF1ZGlvU3RyZWFtXy0+Y29kZWM7CistICBBVkNvZGVjICogY29kZWMg PSBhdmNvZGVjX2ZpbmRfZGVjb2RlciggY29kZWNDb250ZXh0Xy0+Y29kZWNfaWQgKTsKKy0gIGlm ICggIWNvZGVjICkKKysgIGNvZGVjXyA9IGF2Y29kZWNfZmluZF9kZWNvZGVyKCBjb2RlY0NvbnRl eHRfLT5jb2RlY19pZCApOworKyAgaWYgKCAhY29kZWNfICkKKyAgIHsKKyAgICAgZXJyb3JTdHJp bmcgPSBRT2JqZWN0Ojp0ciggIkNvZGVjIFtpZDogJTFdIG5vdCBmb3VuZC4iICkuYXJnKCBjb2Rl Y0NvbnRleHRfLT5jb2RlY19pZCApOworICAgICByZXR1cm4gZmFsc2U7CisgICB9CisrI2Vsc2UK KysgIGNvZGVjXyA9IGF2Y29kZWNfZmluZF9kZWNvZGVyKCBhdWRpb1N0cmVhbV8tPmNvZGVjcGFy LT5jb2RlY19pZCApOworKyAgaWYgKCAhY29kZWNfICkKKysgIHsKKysgICAgZXJyb3JTdHJpbmcg PSBRT2JqZWN0Ojp0ciggIkNvZGVjIFtpZDogJTFdIG5vdCBmb3VuZC4iICkuYXJnKCBhdWRpb1N0 cmVhbV8tPmNvZGVjcGFyLT5jb2RlY19pZCApOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9Cisr ICBjb2RlY0NvbnRleHRfID0gYXZjb2RlY19hbGxvY19jb250ZXh0MyggY29kZWNfICk7CisrICBp ZiAoICFjb2RlY0NvbnRleHRfICkKKysgIHsKKysgICAgZXJyb3JTdHJpbmcgPSBRT2JqZWN0Ojp0 ciggImF2Y29kZWNfYWxsb2NfY29udGV4dDMoKSBmYWlsZWQuIiApOworKyAgICByZXR1cm4gZmFs c2U7CisrICB9CisrICBhdmNvZGVjX3BhcmFtZXRlcnNfdG9fY29udGV4dCggY29kZWNDb250ZXh0 XywgYXVkaW9TdHJlYW1fLT5jb2RlY3BhciApOworKyNlbmRpZgorCistICByZXQgPSBhdmNvZGVj X29wZW4yKCBjb2RlY0NvbnRleHRfLCBjb2RlYywgTlVMTCApOworKyAgcmV0ID0gYXZjb2RlY19v cGVuMiggY29kZWNDb250ZXh0XywgY29kZWNfLCBOVUxMICk7CisgICBpZiAoIHJldCA8IDAgKQor ICAgeworICAgICBlcnJvclN0cmluZyA9IFFPYmplY3Q6OnRyKCAiYXZjb2RlY19vcGVuMigpIGZh aWxlZDogJTEuIiApLmFyZyggYXZFcnJvclN0cmluZyggcmV0ICkgKTsKKyAgICAgcmV0dXJuIGZh bHNlOworICAgfQorCistICBhdl9sb2coIE5VTEwsIEFWX0xPR19JTkZPLCAiQ29kZWMgb3Blbjog JXM6IGNoYW5uZWxzOiAlZCwgcmF0ZTogJWQsIGZvcm1hdDogJXNcbiIsIGNvZGVjLT5sb25nX25h bWUsCisrICBhdl9sb2coIE5VTEwsIEFWX0xPR19JTkZPLCAiQ29kZWMgb3BlbjogJXM6IGNoYW5u ZWxzOiAlZCwgcmF0ZTogJWQsIGZvcm1hdDogJXNcbiIsIGNvZGVjXy0+bG9uZ19uYW1lLAorICAg ICAgICAgICBjb2RlY0NvbnRleHRfLT5jaGFubmVscywgY29kZWNDb250ZXh0Xy0+c2FtcGxlX3Jh dGUsIGF2X2dldF9zYW1wbGVfZm10X25hbWUoIGNvZGVjQ29udGV4dF8tPnNhbXBsZV9mbXQgKSAp OworICAgcmV0dXJuIHRydWU7CisgfQorQEAgLTI1MiwxMCArMjc4LDEzIEBAIHZvaWQgRGVjb2Rl ckNvbnRleHQ6OmNsb3NlQ29kZWMoKQorCisgICAvLyBDbG9zaW5nIGEgY29kZWMgY29udGV4dCB3 aXRob3V0IHByaW9yIGF2Y29kZWNfb3BlbjIoKSB3aWxsIHJlc3VsdCBpbgorICAgLy8gYSBjcmFz aCBpbiBmZm1wZWcKKy0gIGlmICggYXVkaW9TdHJlYW1fICYmIGF1ZGlvU3RyZWFtXy0+Y29kZWMg JiYgYXVkaW9TdHJlYW1fLT5jb2RlYy0+Y29kZWMgKQorKyAgaWYgKCBhdWRpb1N0cmVhbV8gJiYg Y29kZWNDb250ZXh0XyAmJiBjb2RlY18gKQorICAgeworICAgICBhdWRpb1N0cmVhbV8tPmRpc2Nh cmQgPSBBVkRJU0NBUkRfQUxMOworLSAgICBhdmNvZGVjX2Nsb3NlKCBhdWRpb1N0cmVhbV8tPmNv ZGVjICk7CisrICAgIGF2Y29kZWNfY2xvc2UoIGNvZGVjQ29udGV4dF8gKTsKKysjaWYgTElCQVZD T0RFQ19WRVJTSU9OX01BSk9SID4gNTcgfHwgKCBMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1IgPT0g NTcgJiYgTElCQVZDT0RFQ19WRVJTSU9OX01JTk9SID49IDMzICkKKysgICAgYXZjb2RlY19mcmVl X2NvbnRleHQoICZjb2RlY0NvbnRleHRfICk7CisrI2VuZGlmCisgICB9CisKKyAgIGF2Zm9ybWF0 X2Nsb3NlX2lucHV0KCAmZm9ybWF0Q29udGV4dF8gKTsKK0BAIC0zNTYsNiArMzg1LDcgQEAgYm9v bCBEZWNvZGVyQ29udGV4dDo6cGxheSggUVN0cmluZyAmIGVycm9yU3RyaW5nICkKKyAgICAgaWYg KCBwYWNrZXQuc3RyZWFtX2luZGV4ID09IGF1ZGlvU3RyZWFtXy0+aW5kZXggKQorICAgICB7Cisg ICAgICAgQVZQYWNrZXQgcGFjayA9IHBhY2tldDsKKysjaWYgTElCQVZDT0RFQ19WRVJTSU9OX01B Sk9SIDwgNTcgfHwgKCBMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1IgPT0gNTcgJiYgTElCQVZDT0RF Q19WRVJTSU9OX01JTk9SIDwgMzcgKQorICAgICAgIGludCBnb3RGcmFtZSA9IDA7CisgICAgICAg ZG8KKyAgICAgICB7CitAQCAtMzcwLDYgKzQwMCwxOSBAQCBib29sIERlY29kZXJDb250ZXh0Ojpw bGF5KCBRU3RyaW5nICYgZXJyb3JTdHJpbmcgKQorICAgICAgICAgcGFjay5kYXRhICs9IGxlbjsK KyAgICAgICB9CisgICAgICAgd2hpbGUoIHBhY2suc2l6ZSA+IDAgKTsKKysjZWxzZQorKyAgICAg IGludCByZXQgPSBhdmNvZGVjX3NlbmRfcGFja2V0KCBjb2RlY0NvbnRleHRfLCAmcGFjayApOwor KyAgICAgIC8qIHJlYWQgYWxsIHRoZSBvdXRwdXQgZnJhbWVzIChpbiBnZW5lcmFsIHRoZXJlIG1h eSBiZSBhbnkgbnVtYmVyIG9mIHRoZW0pICovCisrICAgICAgd2hpbGUoIHJldCA+PSAwICkKKysg ICAgICB7CisrICAgICAgICByZXQgPSBhdmNvZGVjX3JlY2VpdmVfZnJhbWUoIGNvZGVjQ29udGV4 dF8sIGZyYW1lKTsKKysKKysgICAgICAgIGlmICggUXQ0eDU6OkF0b21pY0ludDo6bG9hZEFjcXVp cmUoIGlzQ2FuY2VsbGVkXyApIHx8IHJldCA8IDAgKQorKyAgICAgICAgICBicmVhazsKKysKKysg ICAgICAgIHBsYXlGcmFtZSggZnJhbWUgKTsKKysgICAgICB9CisrI2VuZGlmCisgICAgIH0KKyAg ICAgLy8gYXZfZnJlZV9wYWNrZXQoKSBtdXN0IGJlIGNhbGxlZCBhZnRlciBlYWNoIGNhbGwgdG8g YXZfcmVhZF9mcmFtZSgpCisgI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9NQUpPUiA8IDU3IHx8ICgg TElCQVZDT0RFQ19WRVJTSU9OX01BSk9SID09IDU3ICYmIExJQkFWQ09ERUNfVkVSU0lPTl9NSU5P UiA8IDcgKQorQEAgLTM3OSw2ICs0MjIsNyBAQCBib29sIERlY29kZXJDb250ZXh0OjpwbGF5KCBR U3RyaW5nICYgZXJyb3JTdHJpbmcgKQorICNlbmRpZgorICAgfQorCisrI2lmIExJQkFWQ09ERUNf VkVSU0lPTl9NQUpPUiA8IDU3IHx8ICggTElCQVZDT0RFQ19WRVJTSU9OX01BSk9SID09IDU3ICYm IExJQkFWQ09ERUNfVkVSU0lPTl9NSU5PUiA8IDM3ICkKKyAgIGlmICggIVF0NHg1OjpBdG9taWNJ bnQ6OmxvYWRBY3F1aXJlKCBpc0NhbmNlbGxlZF8gKSAmJgorICAgICAgICBjb2RlY0NvbnRleHRf LT5jb2RlYy0+Y2FwYWJpbGl0aWVzICYgQ09ERUNfQ0FQX0RFTEFZICkKKyAgIHsKK0BAIC0zOTEs NiArNDM1LDE4IEBAIGJvb2wgRGVjb2RlckNvbnRleHQ6OnBsYXkoIFFTdHJpbmcgJiBlcnJvclN0 cmluZyApCisgICAgICAgcGxheUZyYW1lKCBmcmFtZSApOworICAgICB9CisgICB9CisrI2Vsc2UK KysgIC8qIGZsdXNoIHRoZSBkZWNvZGVyICovCisrICBhdl9pbml0X3BhY2tldCggJnBhY2tldCAp OworKyAgaW50IHJldCA9IGF2Y29kZWNfc2VuZF9wYWNrZXQoY29kZWNDb250ZXh0XywgJnBhY2tl dCApOworKyAgd2hpbGUoIHJldCA+PSAwICkKKysgIHsKKysgICAgcmV0ID0gYXZjb2RlY19yZWNl aXZlX2ZyYW1lKGNvZGVjQ29udGV4dF8sIGZyYW1lKTsKKysgICAgaWYgKCBRdDR4NTo6QXRvbWlj SW50Ojpsb2FkQWNxdWlyZSggaXNDYW5jZWxsZWRfICkgfHwgcmV0IDwgMCApCisrICAgICAgYnJl YWs7CisrICAgIHBsYXlGcmFtZSggZnJhbWUgKTsKKysgIH0KKysjZW5kaWYKKworICNpZiBMSUJB VkNPREVDX1ZFUlNJT05fTUFKT1IgPCA1NAorICAgYXZfZnJlZSggZnJhbWUgKTsKKzMyCitzcmNw a2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1LTIucGF0Y2gKK0NvbW1lbnQgb24gdGhpcyBm aWxlCitAQCAtMCwwICsxLDMyIEBACitGcm9tIDk2NmY0YThiNzhlNjMyNGI5MzBlNWE1MGYyYmI5 MzBiZDg3ZTU2NWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBYnM2MiA8b3R0b21h bm5AeWFuZGV4LnJ1PgorRGF0ZTogRnJpLCAyNyBTZXAgMjAxOSAxNzowMDo1MiArMDMwMAorU3Vi amVjdDogW1BBVENIXSBGRm1wZWcgcGxheWVyOiBGaXggc29tZSBjcmFzaGVzIG9uIGJyb2tlbiBm aWxlcworCistLS0KKyBmZm1wZWdhdWRpby5jYyB8IDQgKysrKworIDEgZmlsZSBjaGFuZ2VkLCA0 IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2ZmbXBlZ2F1ZGlvLmNjIGIvZmZtcGVnYXVk aW8uY2MKK2luZGV4IDU2ZThmNzg4ZS4uNDE1ZmM3OWNiIDEwMDY0NAorLS0tIGEvZmZtcGVnYXVk aW8uY2MKKysrKyBiL2ZmbXBlZ2F1ZGlvLmNjCitAQCAtNTEsNyArNTEsOSBAQCBBdWRpb1NlcnZp Y2UgJiBBdWRpb1NlcnZpY2U6Omluc3RhbmNlKCkKKworIEF1ZGlvU2VydmljZTo6QXVkaW9TZXJ2 aWNlKCkKKyB7CisrI2lmIExJQkFWRk9STUFUX1ZFUlNJT05fTUFKT1IgPCA1OCB8fCAoIExJQkFW Rk9STUFUX1ZFUlNJT05fTUFKT1IgPT0gNTggJiYgTElCQVZGT1JNQVRfVkVSU0lPTl9NSU5PUiA8 IDkgKQorICAgYXZfcmVnaXN0ZXJfYWxsKCk7CisrI2VuZGlmCisgICBhb19pbml0aWFsaXplKCk7 CisgfQorCitAQCAtNDM4LDYgKzQ0MCw4IEBAIGJvb2wgRGVjb2RlckNvbnRleHQ6OnBsYXkoIFFT dHJpbmcgJiBlcnJvclN0cmluZyApCisgI2Vsc2UKKyAgIC8qIGZsdXNoIHRoZSBkZWNvZGVyICov CisgICBhdl9pbml0X3BhY2tldCggJnBhY2tldCApOworKyAgcGFja2V0LmRhdGEgPSBOVUxMOwor KyAgcGFja2V0LnNpemUgPSAwOworICAgaW50IHJldCA9IGF2Y29kZWNfc2VuZF9wYWNrZXQoY29k ZWNDb250ZXh0XywgJnBhY2tldCApOworICAgd2hpbGUoIHJldCA+PSAwICkKKyAgIHsKKzI1Citz cmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1LTMucGF0Y2gKK0NvbW1lbnQgb24gdGhp cyBmaWxlCitAQCAtMCwwICsxLDI1IEBACitGcm9tIDhhY2IyODhjOWU5YmRiM2M2YmYyZTgwMzk1 NGRkM2I2YWMyNzNjMDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBMaWFvIEp1bnh1 YW4gPG1pa2VsanhAMTI2LmNvbT4KK0RhdGU6IFN1biwgMjAgRmViIDIwMjIgMTI6Mjg6MDUgKzA4 MDAKK1N1YmplY3Q6IFtQQVRDSF0gYWRkIHN1cHBvcnQgZm9yIGZmbXBlZyA1LjAKKworLS0tCisg ZmZtcGVnYXVkaW8uY2MgfCA0ICsrKysKKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCsp CisKK2RpZmYgLS1naXQgYS9mZm1wZWdhdWRpby5jYyBiL2ZmbXBlZ2F1ZGlvLmNjCitpbmRleCBk NTUwZjRhNzcuLjc5NDhkMjE4NyAxMDA2NDQKKy0tLSBhL2ZmbXBlZ2F1ZGlvLmNjCisrKysgYi9m Zm1wZWdhdWRpby5jYworQEAgLTk0LDcgKzk0LDExIEBAIHN0cnVjdCBEZWNvZGVyQ29udGV4dAor ICAgUUJ5dGVBcnJheSBhdWRpb0RhdGFfOworICAgUURhdGFTdHJlYW0gYXVkaW9EYXRhU3RyZWFt XzsKKyAgIEFWRm9ybWF0Q29udGV4dCAqIGZvcm1hdENvbnRleHRfOworKyNpZiBMSUJBVkNPREVD X1ZFUlNJT05fTUFKT1IgPCA1OQorICAgQVZDb2RlYyAqIGNvZGVjXzsKKysjZWxzZQorKyAgY29u c3QgQVZDb2RlYyAqIGNvZGVjXzsKKysjZW5kaWYKKyAgIEFWQ29kZWNDb250ZXh0ICogY29kZWND b250ZXh0XzsKKyAgIEFWSU9Db250ZXh0ICogYXZpb0NvbnRleHRfOworICAgQVZTdHJlYW0gKiBh dWRpb1N0cmVhbV87CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1w ZWc1LTIucGF0Y2ggYi9zcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1LTIucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45YzQ3N2IwYzEzNDcKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dvbGRlbmRpY3QvcGF0Y2hlcy9mZm1wZWc1LTIucGF0 Y2gKQEAgLTAsMCArMSwzMyBAQAorCitGcm9tIDk2NmY0YThiNzhlNjMyNGI5MzBlNWE1MGYyYmI5 MzBiZDg3ZTU2NWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBYnM2MiA8b3R0b21h bm5AeWFuZGV4LnJ1PgorRGF0ZTogRnJpLCAyNyBTZXAgMjAxOSAxNzowMDo1MiArMDMwMAorU3Vi amVjdDogW1BBVENIXSBGRm1wZWcgcGxheWVyOiBGaXggc29tZSBjcmFzaGVzIG9uIGJyb2tlbiBm aWxlcworCistLS0KKyBmZm1wZWdhdWRpby5jYyB8IDQgKysrKworIDEgZmlsZSBjaGFuZ2VkLCA0 IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBhL2ZmbXBlZ2F1ZGlvLmNjIGIvZmZtcGVnYXVk aW8uY2MKK2luZGV4IDU2ZThmNzg4ZS4uNDE1ZmM3OWNiIDEwMDY0NAorLS0tIGEvZmZtcGVnYXVk aW8uY2MKKysrKyBiL2ZmbXBlZ2F1ZGlvLmNjCitAQCAtNTEsNyArNTEsOSBAQCBBdWRpb1NlcnZp Y2UgJiBBdWRpb1NlcnZpY2U6Omluc3RhbmNlKCkKKworIEF1ZGlvU2VydmljZTo6QXVkaW9TZXJ2 aWNlKCkKKyB7CisrI2lmIExJQkFWRk9STUFUX1ZFUlNJT05fTUFKT1IgPCA1OCB8fCAoIExJQkFW Rk9STUFUX1ZFUlNJT05fTUFKT1IgPT0gNTggJiYgTElCQVZGT1JNQVRfVkVSU0lPTl9NSU5PUiA8 IDkgKQorICAgYXZfcmVnaXN0ZXJfYWxsKCk7CisrI2VuZGlmCisgICBhb19pbml0aWFsaXplKCk7 CisgfQorCitAQCAtNDM4LDYgKzQ0MCw4IEBAIGJvb2wgRGVjb2RlckNvbnRleHQ6OnBsYXkoIFFT dHJpbmcgJiBlcnJvclN0cmluZyApCisgI2Vsc2UKKyAgIC8qIGZsdXNoIHRoZSBkZWNvZGVyICov CisgICBhdl9pbml0X3BhY2tldCggJnBhY2tldCApOworKyAgcGFja2V0LmRhdGEgPSBOVUxMOwor KyAgcGFja2V0LnNpemUgPSAwOworICAgaW50IHJldCA9IGF2Y29kZWNfc2VuZF9wYWNrZXQoY29k ZWNDb250ZXh0XywgJnBhY2tldCApOworICAgd2hpbGUoIHJldCA+PSAwICkKKyAgIHsKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZ29sZGVuZGljdC9wYXRjaGVzL2ZmbXBlZzUtMy5wYXRjaCBiL3NyY3Br Z3MvZ29sZGVuZGljdC9wYXRjaGVzL2ZmbXBlZzUtMy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjcyMTAxOTAzZDFkMQotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvZ29sZGVuZGljdC9wYXRjaGVzL2ZmbXBlZzUtMy5wYXRjaApAQCAtMCwwICsxLDI1IEBA CitGcm9tIDhhY2IyODhjOWU5YmRiM2M2YmYyZTgwMzk1NGRkM2I2YWMyNzNjMDUgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBMaWFvIEp1bnh1YW4gPG1pa2VsanhAMTI2LmNvbT4KK0Rh dGU6IFN1biwgMjAgRmViIDIwMjIgMTI6Mjg6MDUgKzA4MDAKK1N1YmplY3Q6IFtQQVRDSF0gYWRk IHN1cHBvcnQgZm9yIGZmbXBlZyA1LjAKKworLS0tCisgZmZtcGVnYXVkaW8uY2MgfCA0ICsrKysK KyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9mZm1wZWdh dWRpby5jYyBiL2ZmbXBlZ2F1ZGlvLmNjCitpbmRleCBkNTUwZjRhNzcuLjc5NDhkMjE4NyAxMDA2 NDQKKy0tLSBhL2ZmbXBlZ2F1ZGlvLmNjCisrKysgYi9mZm1wZWdhdWRpby5jYworQEAgLTk0LDcg Kzk0LDExIEBAIHN0cnVjdCBEZWNvZGVyQ29udGV4dAorICAgUUJ5dGVBcnJheSBhdWRpb0RhdGFf OworICAgUURhdGFTdHJlYW0gYXVkaW9EYXRhU3RyZWFtXzsKKyAgIEFWRm9ybWF0Q29udGV4dCAq IGZvcm1hdENvbnRleHRfOworKyNpZiBMSUJBVkNPREVDX1ZFUlNJT05fTUFKT1IgPCA1OQorICAg QVZDb2RlYyAqIGNvZGVjXzsKKysjZWxzZQorKyAgY29uc3QgQVZDb2RlYyAqIGNvZGVjXzsKKysj ZW5kaWYKKyAgIEFWQ29kZWNDb250ZXh0ICogY29kZWNDb250ZXh0XzsKKyAgIEFWSU9Db250ZXh0 ICogYXZpb0NvbnRleHRfOworICAgQVZTdHJlYW0gKiBhdWRpb1N0cmVhbV87CmRpZmYgLS1naXQg YS9zcmNwa2dzL2dvbGRlbmRpY3QvdGVtcGxhdGUgYi9zcmNwa2dzL2dvbGRlbmRpY3QvdGVtcGxh dGUKaW5kZXggZjQxYjViMmM2ODk5Li40NTQ0YWU3MTBlZTYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Z29sZGVuZGljdC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dvbGRlbmRpY3QvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnb2xkZW5kaWN0JwogcGtnbmFtZT1n b2xkZW5kaWN0CiB2ZXJzaW9uPTEuNS4wUkMyCi1yZXZpc2lvbj01CityZXZpc2lvbj02CiBidWls ZF9zdHlsZT1xbWFrZQogY29uZmlndXJlX2FyZ3M9IkNPTkZJRys9emltX3N1cHBvcnQiCiBob3N0 bWFrZWRlcGVuZHM9InF0NS1xbWFrZSBwa2ctY29uZmlnIHF0NS1ob3N0LXRvb2xzIgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9nc3QtbGliYXYvdGVtcGxhdGUgYi9zcmNwa2dzL2dzdC1saWJhdi90ZW1w bGF0ZQppbmRleCBlOWE3OWRjNjUwYTUuLmYwODJiZDIxMWM2NSAxMDA2NDQKLS0tIGEvc3JjcGtn cy9nc3QtbGliYXYvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nc3QtbGliYXYvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnc3QtbGliYXYnCiBwa2duYW1lPWdz dC1saWJhdgogdmVyc2lvbj0xLjIwLjMKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0 eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgeWFzbSIKIG1ha2VkZXBlbmRz PSJvcmMtZGV2ZWwgZ3N0LXBsdWdpbnMtYmFzZTEtZGV2ZWwgZmZtcGVnLWRldmVsIgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9nc3QtcGx1Z2lucy1iYWQxL3RlbXBsYXRlIGIvc3JjcGtncy9nc3QtcGx1 Z2lucy1iYWQxL3RlbXBsYXRlCmluZGV4IGJiOWM0ZDg3ZjRjNi4uZjU1ZjgyZmQ0Yzc3IDEwMDY0 NAotLS0gYS9zcmNwa2dzL2dzdC1wbHVnaW5zLWJhZDEvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9n c3QtcGx1Z2lucy1iYWQxL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnZ3N0LXBsdWdpbnMtYmFkMScKIHBrZ25hbWU9Z3N0LXBsdWdpbnMtYmFkMQogdmVyc2lv bj0xLjIwLjMKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVp bGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRHBhY2thZ2Utb3JpZ2luPWh0dHBzOi8v dm9pZGxpbnV4Lm9yZyAtRGRvYz1kaXNhYmxlZApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nc3QtcnRz cC1zZXJ2ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dzdC1ydHNwLXNlcnZlci90ZW1wbGF0ZQppbmRl eCAzM2NkNjRjZWI5NWUuLjhjZWVhOGQzNGI0YiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nc3QtcnRz cC1zZXJ2ZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nc3QtcnRzcC1zZXJ2ZXIvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnc3QtcnRzcC1zZXJ2ZXInCiBw a2duYW1lPWdzdC1ydHNwLXNlcnZlcgogdmVyc2lvbj0xLjIwLjMKLXJldmlzaW9uPTIKK3Jldmlz aW9uPTMKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgcHl0 aG9uMyIKIG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIGdzdC1wbHVnaW5zLWJhZDEtZGV2ZWwgZ29i amVjdC1pbnRyb3NwZWN0aW9uCmRpZmYgLS1naXQgYS9zcmNwa2dzL2d0azQvdGVtcGxhdGUgYi9z cmNwa2dzL2d0azQvdGVtcGxhdGUKaW5kZXggNmE1MDU2N2Y1M2E5Li42OTc2YWVlODQ4MTcgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvZ3RrNC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2d0azQvdGVtcGxh dGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdndGs0JwogcGtnbmFtZT1n dGs0CiB2ZXJzaW9uPTQuMTAuMQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9 bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii1EbWFuLXBhZ2VzPXRy dWUgLURndGtfZG9jPXRydWUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3V2Y3ZpZXcvdGVtcGxhdGUg Yi9zcmNwa2dzL2d1dmN2aWV3L3RlbXBsYXRlCmluZGV4IDM0NWNmNjAwNmYyNC4uZDQyZmQzOGZh NGFkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2d1dmN2aWV3L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv Z3V2Y3ZpZXcvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdn dXZjdmlldycKIHBrZ25hbWU9Z3V2Y3ZpZXcKIHZlcnNpb249Mi4wLjcKLXJldmlzaW9uPTEKK3Jl dmlzaW9uPTIKIGNyZWF0ZV93cmtzcmM9eWVzCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBj b25maWd1cmVfYXJncz0iLS1kaXNhYmxlLXN0YXRpYyAtLWRpc2FibGUtZGViaWFuLW1lbnUiCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2hhbmRicmFrZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvaGFuZGJyYWtl L3RlbXBsYXRlCmluZGV4IGNhNWU0NTcxZTQ5Yy4uMTg4YTc5ZjJiZjVjIDEwMDY0NAotLS0gYS9z cmNwa2dzL2hhbmRicmFrZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2hhbmRicmFrZS90ZW1wbGF0 ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2hhbmRicmFrZScKIHBrZ25h bWU9aGFuZGJyYWtlCiB2ZXJzaW9uPTEuNS4xCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWls ZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1mb3JjZSAtLWRpc2FibGUt Z3RrLXVwZGF0ZS1jaGVja3MgLS1kaXNhYmxlLWRmLWZldGNoIC0taGFyZGVuCiAgJCh2b3B0X2Vu YWJsZSBmZGtfYWFjIGZkay1hYWMpICQodm9wdF9lbmFibGUgbnZlbmMpIgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9oZWRnZXdhcnMvdGVtcGxhdGUgYi9zcmNwa2dzL2hlZGdld2Fycy90ZW1wbGF0ZQpp bmRleCA0MTlmMjliOThiNDQuLmEzNDNiMzE3MmE3MiAxMDA2NDQKLS0tIGEvc3JjcGtncy9oZWRn ZXdhcnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9oZWRnZXdhcnMvdGVtcGxhdGUKQEAgLTEsNyAr MSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdoZWRnZXdhcnMnCiBwa2duYW1lPWhlZGdld2Fy cwogdmVyc2lvbj0xLjAuMgotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21h a2UKIGNvbmZpZ3VyZV9hcmdzPSItRE5PU0VSVkVSPTEgLUREQVRBX0lOU1RBTExfRElSPS91c3Iv c2hhcmUvJHtwa2duYW1lfQogIC1EUEhZU0ZTX1NZU1RFTT0xIC1ETUlOSU1BTF9GTEFHUz0xIgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9pZGpjL3RlbXBsYXRlIGIvc3JjcGtncy9pZGpjL3RlbXBsYXRl CmluZGV4IGRmNjAzMThiM2RiOS4uYjIwNWU3NDc0NWZlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2lk amMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9pZGpjL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnaWRqYycKIHBrZ25hbWU9aWRqYwogdmVyc2lvbj0wLjkuMQot cmV2aXNpb249MworcmV2aXNpb249NAogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1h a2VkZXBlbmRzPSJwa2ctY29uZmlnIGdpdCBweXRob24zIGF1dG9tYWtlIGdldHRleHQtZGV2ZWwg bGlidG9vbCIKIG1ha2VkZXBlbmRzPSJsaWJ2b3JiaXMtZGV2ZWwgbGlib2dnLWRldmVsIGphY2st ZGV2ZWwgbGlic2FtcGxlcmF0ZS1kZXZlbApkaWZmIC0tZ2l0IGEvc3JjcGtncy9rZmlsZW1ldGFk YXRhNS90ZW1wbGF0ZSBiL3NyY3BrZ3Mva2ZpbGVtZXRhZGF0YTUvdGVtcGxhdGUKaW5kZXggODNm NGQ1ODNiY2I3Li5iOTBlZjA1NmExOTYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mva2ZpbGVtZXRhZGF0 YTUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9rZmlsZW1ldGFkYXRhNS90ZW1wbGF0ZQpAQCAtMSw3 ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2tmaWxlbWV0YWRhdGE1JwogcGtnbmFtZT1r ZmlsZW1ldGFkYXRhNQogdmVyc2lvbj01LjEwMy4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBi dWlsZF9zdHlsZT1jbWFrZQogaG9zdG1ha2VkZXBlbmRzPSJrY29yZWFkZG9ucyBleHRyYS1jbWFr ZS1tb2R1bGVzIHBrZy1jb25maWcgcXQ1LWhvc3QtdG9vbHMgcXQ1LXFtYWtlCiAgZ2V0dGV4dCBr Y29yZWFkZG9ucyBweXRob24zIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9raWQzL3RlbXBsYXRlIGIv c3JjcGtncy9raWQzL3RlbXBsYXRlCmluZGV4IDQ1NjIwNmQ5MGUxNi4uZjMyZjlkZWNiMGU3IDEw MDY0NAotLS0gYS9zcmNwa2dzL2tpZDMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9raWQzL3RlbXBs YXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAna2lkMycKIHBrZ25hbWU9 a2lkMwogdmVyc2lvbj0zLjkuMQotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9 Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRFdJVEhfQVBQUz0nQ0xJOyQodm9wdF9pZiBLREUgS0RF IFF0KScKICAtRFdJVEhfRE9DQk9PS0RJUj0vdXNyL3NoYXJlL3hzbC9kb2Nib29rIC1EV0lUSF9G TEFDPSQodm9wdF9pZiBmbGFjIE9OIE9GRikKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mva29kaS90ZW1w bGF0ZSBiL3NyY3BrZ3Mva29kaS90ZW1wbGF0ZQppbmRleCA4MDU3OTY0ZDc4YTMuLjk5MTMyNWY2 YzQ3NyAxMDA2NDQKLS0tIGEvc3JjcGtncy9rb2RpL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mva29k aS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2tvZGknCiBw a2duYW1lPWtvZGkKIHZlcnNpb249MTkuNAotcmV2aXNpb249NgorcmV2aXNpb249NwogX2NvZGVu YW1lPSJNYXRyaXgiCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EV0lUSF9G Rk1QRUc9L3VzciAtREVOQUJMRV9MREdPTEQ9T0ZGCmRpZmYgLS1naXQgYS9zcmNwa2dzL2twaXBl d2lyZS90ZW1wbGF0ZSBiL3NyY3BrZ3Mva3BpcGV3aXJlL3RlbXBsYXRlCmluZGV4IDFkMWU5NjNm Mjk2ZC4uMDdjZGMwYzczODRhIDEwMDY0NAotLS0gYS9zcmNwa2dzL2twaXBld2lyZS90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2twaXBld2lyZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2twaXBld2lyZScKIHBrZ25hbWU9a3BpcGV3aXJlCiB2ZXJzaW9uPTUu MjcuMgotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3RtYWtl ZGVwZW5kcz0iZXh0cmEtY21ha2UtbW9kdWxlcyBwbGFzbWEtd2F5bGFuZC1wcm90b2NvbHMgZ2V0 dGV4dAogIHF0NS1xbWFrZSBxdDUtaG9zdC10b29scyBwa2ctY29uZmlnIHdheWxhbmQtZGV2ZWwg a2NvcmVhZGRvbnMKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliYXZyZXNhbXBsZSBiL3NyY3BrZ3Mv bGliYXZyZXNhbXBsZQppbmRleCA4ODdmMzU0ZTdjNmIuLmE5ZjFlZWEwOTJkNSAxMjAwMDAKLS0t IGEvc3JjcGtncy9saWJhdnJlc2FtcGxlCisrKyBiL3NyY3BrZ3MvbGliYXZyZXNhbXBsZQpAQCAt MSArMSBAQAotZmZtcGVnNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2ZmbXBlZwpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliZXh0cmFjdG9y L3RlbXBsYXRlIGIvc3JjcGtncy9saWJleHRyYWN0b3IvdGVtcGxhdGUKaW5kZXggMjlkNWI4ZGYw MWY4Li5kZGQ0NzkwZjkzZTggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGliZXh0cmFjdG9yL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvbGliZXh0cmFjdG9yL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnbGliZXh0cmFjdG9yJwogcGtnbmFtZT1saWJleHRyYWN0b3IK IHZlcnNpb249MS4xMQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Z251LWNv bmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zdGF0aWMiCiBob3N0bWFrZWRlcGVu ZHM9InBrZy1jb25maWciCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYm9wZW5hbC90ZW1wbGF0ZSBi L3NyY3BrZ3MvbGlib3BlbmFsL3RlbXBsYXRlCmluZGV4IDc3MjE4ZjllNTM5ZC4uM2Y0OWVkNzVh MWZkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpYm9wZW5hbC90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2xpYm9wZW5hbC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2xpYm9wZW5hbCcKIHBrZ25hbWU9bGlib3BlbmFsCiB2ZXJzaW9uPTEuMjIuMgotcmV2aXNpb249 MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItREFMU09G VF9FWEFNUExFUz1PRkYiCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWciCmRpZmYgLS1naXQg YS9zcmNwa2dzL2xpYm9wZW5zaG90L3RlbXBsYXRlIGIvc3JjcGtncy9saWJvcGVuc2hvdC90ZW1w bGF0ZQppbmRleCBkYjgzMWY2OWI0NzQuLjgxYWEwZDcxMzZkOSAxMDA2NDQKLS0tIGEvc3JjcGtn cy9saWJvcGVuc2hvdC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYm9wZW5zaG90L3RlbXBsYXRl CkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGlib3BlbnNob3QnCiBwa2du YW1lPWxpYm9wZW5zaG90CiB2ZXJzaW9uPTAuMy4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBi dWlsZF9zdHlsZT1jbWFrZQogIyBCdWlsZHMgZmFpbCB3aXRoIFJ1YnktMi40LjEKIGNvbmZpZ3Vy ZV9hcmdzPSItREVOQUJMRV9SVUJZPU9GRiAtRFVTRV9TWVNURU1fSlNPTkNQUD1PTiIKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvbG91ZGdhaW4vdGVtcGxhdGUgYi9zcmNwa2dzL2xvdWRnYWluL3RlbXBs YXRlCmluZGV4IGRhNGYyZDU2ZTk0Yy4uNGQ2YmYyOWVmYjRmIDEwMDY0NAotLS0gYS9zcmNwa2dz L2xvdWRnYWluL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbG91ZGdhaW4vdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsb3VkZ2FpbicKIHBrZ25hbWU9bG91ZGdh aW4KIHZlcnNpb249MC42LjgKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMKIGJ1aWxkX3N0eWxlPWNt YWtlCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0ibGliZWJ1cjEy OC1kZXZlbCB0YWdsaWItZGV2ZWwgZmZtcGVnLWRldmVsIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9t ZWRpYXN0cmVhbWVyL3RlbXBsYXRlIGIvc3JjcGtncy9tZWRpYXN0cmVhbWVyL3RlbXBsYXRlCmlu ZGV4IGQwZTk3ZTg1OGUyOS4uZDI5MjEwYzFiZjljIDEwMDY0NAotLS0gYS9zcmNwa2dzL21lZGlh c3RyZWFtZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9tZWRpYXN0cmVhbWVyL3RlbXBsYXRlCkBA IC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbWVkaWFzdHJlYW1lcicKIHBrZ25h bWU9bWVkaWFzdHJlYW1lcgogdmVyc2lvbj01LjIuNgotcmV2aXNpb249MQorcmV2aXNpb249Mgog YnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItREVOQUJMRV9TVFJJQ1Q9MCAtREVO QUJMRV9VTklUX1RFU1RTPTAiCiBob3N0bWFrZWRlcGVuZHM9InB5dGhvbjMiCmRpZmYgLS1naXQg YS9zcmNwa2dzL21nYmEvcGF0Y2hlcy9mZm1wZWc1LnBhdGNoIGIvc3JjcGtncy9tZ2JhL3BhdGNo ZXMvZmZtcGVnNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LmFkNzA0OWVmY2FjMwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbWdiYS9wYXRjaGVzL2Zm bXBlZzUucGF0Y2gKQEAgLTAsMCArMSwxMTcgQEAKK0Zyb20gY2RjNzUzNTE2Nzk4ODgyYTgwNWRi MWQyMDQyZGJjZTgzMTMzODJiZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFJ5YW4g VGFuZHkgPHJ5YW5AbmFyZGlzLmNhPgorRGF0ZTogVGh1LCAzIEZlYiAyMDIyIDE5OjAyOjUyIC0w ODAwCitTdWJqZWN0OiBbUEFUQ0hdIEZGbXBlZzogU3VwcG9ydCBGRm1wZWcgNS4wCisKKy0tLQor IHNyYy9mZWF0dXJlL2ZmbXBlZy9mZm1wZWctZGVjb2Rlci5jIHwgIDMgKystCisgc3JjL2ZlYXR1 cmUvZmZtcGVnL2ZmbXBlZy1lbmNvZGVyLmMgfCAyNSArKysrKysrKysrKysrKy0tLS0tLS0tLS0t CisgMiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKKwor ZGlmZiAtLWdpdCBhL3NyYy9mZWF0dXJlL2ZmbXBlZy9mZm1wZWctZGVjb2Rlci5jIGIvc3JjL2Zl YXR1cmUvZmZtcGVnL2ZmbXBlZy1kZWNvZGVyLmMKK2luZGV4IGMzYmI2ZDFjNWMuLmRhYTQ3ZmJm MmMgMTAwNjQ0CistLS0gYS9zcmMvZmVhdHVyZS9mZm1wZWcvZmZtcGVnLWRlY29kZXIuYworKysr IGIvc3JjL2ZlYXR1cmUvZmZtcGVnL2ZmbXBlZy1kZWNvZGVyLmMKK0BAIC01LDYgKzUsNyBAQAor ICAqIGZpbGUsIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIu MC8uICovCisgI2luY2x1ZGUgImZmbXBlZy1kZWNvZGVyLmgiCisKKysjaW5jbHVkZSA8bGliYXZj b2RlYy9hdmNvZGVjLmg+CisgI2luY2x1ZGUgPGxpYnN3c2NhbGUvc3dzY2FsZS5oPgorCisgdm9p ZCBGRm1wZWdEZWNvZGVySW5pdChzdHJ1Y3QgRkZtcGVnRGVjb2RlciogZGVjb2RlcikgeworQEAg LTM4LDcgKzM5LDcgQEAgYm9vbCBGRm1wZWdEZWNvZGVyT3BlbihzdHJ1Y3QgRkZtcGVnRGVjb2Rl ciogZGVjb2RlciwgY29uc3QgY2hhciogaW5maWxlKSB7CisgI2Vsc2UKKyAJCWVudW0gQVZNZWRp YVR5cGUgdHlwZSA9IGRlY29kZXItPmNvbnRleHQtPnN0cmVhbXNbaV0tPmNvZGVjLT5jb2RlY190 eXBlOworICNlbmRpZgorLQkJc3RydWN0IEFWQ29kZWMqIGNvZGVjOworKwkJY29uc3Qgc3RydWN0 IEFWQ29kZWMqIGNvZGVjOworIAkJc3RydWN0IEFWQ29kZWNDb250ZXh0KiBjb250ZXh0ID0gTlVM TDsKKyAJCWlmICh0eXBlID09IEFWTUVESUFfVFlQRV9WSURFTyAmJiBkZWNvZGVyLT52aWRlb1N0 cmVhbSA8IDApIHsKKyAJCQlkZWNvZGVyLT52aWRlbyA9IGF2Y29kZWNfYWxsb2NfY29udGV4dDMo TlVMTCk7CitkaWZmIC0tZ2l0IGEvc3JjL2ZlYXR1cmUvZmZtcGVnL2ZmbXBlZy1lbmNvZGVyLmMg Yi9zcmMvZmVhdHVyZS9mZm1wZWcvZmZtcGVnLWVuY29kZXIuYworaW5kZXggYWQ3NmNhNTdiMi4u YmU2YmQzYWY1ZSAxMDA2NDQKKy0tLSBhL3NyYy9mZWF0dXJlL2ZmbXBlZy9mZm1wZWctZW5jb2Rl ci5jCisrKysgYi9zcmMvZmVhdHVyZS9mZm1wZWcvZmZtcGVnLWVuY29kZXIuYworQEAgLTEyLDYg KzEyLDkgQEAKKworICNpbmNsdWRlIDxsaWJhdmNvZGVjL3ZlcnNpb24uaD4KKyAjaW5jbHVkZSA8 bGliYXZjb2RlYy9hdmNvZGVjLmg+CisrI2lmIExJQkFWQ09ERUNfVkVSU0lPTl9NQUpPUiA+PSA1 OAorKyNpbmNsdWRlIDxsaWJhdmNvZGVjL2JzZi5oPgorKyNlbmRpZgorCisgI2luY2x1ZGUgPGxp YmF2ZmlsdGVyL2J1ZmZlcnNpbmsuaD4KKyAjaW5jbHVkZSA8bGliYXZmaWx0ZXIvYnVmZmVyc3Jj Lmg+CitAQCAtMTIxLDcgKzEyNCw3IEBAIGJvb2wgRkZtcGVnRW5jb2RlclNldEF1ZGlvKHN0cnVj dCBGRm1wZWdFbmNvZGVyKiBlbmNvZGVyLCBjb25zdCBjaGFyKiBhY29kZWMsIHVuCisgCQlyZXR1 cm4gdHJ1ZTsKKyAJfQorCistCUFWQ29kZWMqIGNvZGVjID0gYXZjb2RlY19maW5kX2VuY29kZXJf YnlfbmFtZShhY29kZWMpOworKwljb25zdCBBVkNvZGVjKiBjb2RlYyA9IGF2Y29kZWNfZmluZF9l bmNvZGVyX2J5X25hbWUoYWNvZGVjKTsKKyAJaWYgKCFjb2RlYykgeworIAkJcmV0dXJuIGZhbHNl OworIAl9CitAQCAtMTkzLDcgKzE5Niw3IEBAIGJvb2wgRkZtcGVnRW5jb2RlclNldFZpZGVvKHN0 cnVjdCBGRm1wZWdFbmNvZGVyKiBlbmNvZGVyLCBjb25zdCBjaGFyKiB2Y29kZWMsIGluCisgCQly ZXR1cm4gdHJ1ZTsKKyAJfQorCistCUFWQ29kZWMqIGNvZGVjID0gYXZjb2RlY19maW5kX2VuY29k ZXJfYnlfbmFtZSh2Y29kZWMpOworKwljb25zdCBBVkNvZGVjKiBjb2RlYyA9IGF2Y29kZWNfZmlu ZF9lbmNvZGVyX2J5X25hbWUodmNvZGVjKTsKKyAJaWYgKCFjb2RlYykgeworIAkJcmV0dXJuIGZh bHNlOworIAl9CitAQCAtMjEzLDcgKzIxNiw3IEBAIGJvb2wgRkZtcGVnRW5jb2RlclNldFZpZGVv KHN0cnVjdCBGRm1wZWdFbmNvZGVyKiBlbmNvZGVyLCBjb25zdCBjaGFyKiB2Y29kZWMsIGluCisg CWlmIChlbmNvZGVyLT5waXhGb3JtYXQgPT0gQVZfUElYX0ZNVF9OT05FKSB7CisgCQlyZXR1cm4g ZmFsc2U7CisgCX0KKy0JaWYgKHZiciA8IDAgJiYgIWF2X29wdF9maW5kKCZjb2RlYy0+cHJpdl9j bGFzcywgImNyZiIsIE5VTEwsIDAsIDApKSB7CisrCWlmICh2YnIgPCAwICYmICFhdl9vcHRfZmlu ZCgodm9pZCopICZjb2RlYy0+cHJpdl9jbGFzcywgImNyZiIsIE5VTEwsIDAsIDApKSB7CisgCQly ZXR1cm4gZmFsc2U7CisgCX0KKyAJZW5jb2Rlci0+dmlkZW9Db2RlYyA9IHZjb2RlYzsKK0BAIC0y MjMsNyArMjI2LDcgQEAgYm9vbCBGRm1wZWdFbmNvZGVyU2V0VmlkZW8oc3RydWN0IEZGbXBlZ0Vu Y29kZXIqIGVuY29kZXIsIGNvbnN0IGNoYXIqIHZjb2RlYywgaW4KKyB9CisKKyBib29sIEZGbXBl Z0VuY29kZXJTZXRDb250YWluZXIoc3RydWN0IEZGbXBlZ0VuY29kZXIqIGVuY29kZXIsIGNvbnN0 IGNoYXIqIGNvbnRhaW5lcikgeworLQlBVk91dHB1dEZvcm1hdCogb2Zvcm1hdCA9IGF2X2d1ZXNz X2Zvcm1hdChjb250YWluZXIsIDAsIDApOworKwljb25zdCBBVk91dHB1dEZvcm1hdCogb2Zvcm1h dCA9IGF2X2d1ZXNzX2Zvcm1hdChjb250YWluZXIsIDAsIDApOworIAlpZiAoIW9mb3JtYXQpIHsK KyAJCXJldHVybiBmYWxzZTsKKyAJfQorQEAgLTI0MSw5ICsyNDQsOSBAQCB2b2lkIEZGbXBlZ0Vu Y29kZXJTZXRMb29waW5nKHN0cnVjdCBGRm1wZWdFbmNvZGVyKiBlbmNvZGVyLCBib29sIGxvb3Ap IHsKKyB9CisKKyBib29sIEZGbXBlZ0VuY29kZXJWZXJpZnlDb250YWluZXIoc3RydWN0IEZGbXBl Z0VuY29kZXIqIGVuY29kZXIpIHsKKy0JQVZPdXRwdXRGb3JtYXQqIG9mb3JtYXQgPSBhdl9ndWVz c19mb3JtYXQoZW5jb2Rlci0+Y29udGFpbmVyRm9ybWF0LCAwLCAwKTsKKy0JQVZDb2RlYyogYWNv ZGVjID0gYXZjb2RlY19maW5kX2VuY29kZXJfYnlfbmFtZShlbmNvZGVyLT5hdWRpb0NvZGVjKTsK Ky0JQVZDb2RlYyogdmNvZGVjID0gYXZjb2RlY19maW5kX2VuY29kZXJfYnlfbmFtZShlbmNvZGVy LT52aWRlb0NvZGVjKTsKKysJY29uc3QgQVZPdXRwdXRGb3JtYXQqIG9mb3JtYXQgPSBhdl9ndWVz c19mb3JtYXQoZW5jb2Rlci0+Y29udGFpbmVyRm9ybWF0LCAwLCAwKTsKKysJY29uc3QgQVZDb2Rl YyogYWNvZGVjID0gYXZjb2RlY19maW5kX2VuY29kZXJfYnlfbmFtZShlbmNvZGVyLT5hdWRpb0Nv ZGVjKTsKKysJY29uc3QgQVZDb2RlYyogdmNvZGVjID0gYXZjb2RlY19maW5kX2VuY29kZXJfYnlf bmFtZShlbmNvZGVyLT52aWRlb0NvZGVjKTsKKyAJaWYgKChlbmNvZGVyLT5hdWRpb0NvZGVjICYm ICFhY29kZWMpIHx8IChlbmNvZGVyLT52aWRlb0NvZGVjICYmICF2Y29kZWMpIHx8ICFvZm9ybWF0 IHx8ICghYWNvZGVjICYmICF2Y29kZWMpKSB7CisgCQlyZXR1cm4gZmFsc2U7CisgCX0KK0BAIC0y NTcsOCArMjYwLDggQEAgYm9vbCBGRm1wZWdFbmNvZGVyVmVyaWZ5Q29udGFpbmVyKHN0cnVjdCBG Rm1wZWdFbmNvZGVyKiBlbmNvZGVyKSB7CisgfQorCisgYm9vbCBGRm1wZWdFbmNvZGVyT3Blbihz dHJ1Y3QgRkZtcGVnRW5jb2RlciogZW5jb2RlciwgY29uc3QgY2hhciogb3V0ZmlsZSkgeworLQlB VkNvZGVjKiBhY29kZWMgPSBhdmNvZGVjX2ZpbmRfZW5jb2Rlcl9ieV9uYW1lKGVuY29kZXItPmF1 ZGlvQ29kZWMpOworLQlBVkNvZGVjKiB2Y29kZWMgPSBhdmNvZGVjX2ZpbmRfZW5jb2Rlcl9ieV9u YW1lKGVuY29kZXItPnZpZGVvQ29kZWMpOworKwljb25zdCBBVkNvZGVjKiBhY29kZWMgPSBhdmNv ZGVjX2ZpbmRfZW5jb2Rlcl9ieV9uYW1lKGVuY29kZXItPmF1ZGlvQ29kZWMpOworKwljb25zdCBB VkNvZGVjKiB2Y29kZWMgPSBhdmNvZGVjX2ZpbmRfZW5jb2Rlcl9ieV9uYW1lKGVuY29kZXItPnZp ZGVvQ29kZWMpOworIAlpZiAoKGVuY29kZXItPmF1ZGlvQ29kZWMgJiYgIWFjb2RlYykgfHwgKGVu Y29kZXItPnZpZGVvQ29kZWMgJiYgIXZjb2RlYykgfHwgIUZGbXBlZ0VuY29kZXJWZXJpZnlDb250 YWluZXIoZW5jb2RlcikpIHsKKyAJCXJldHVybiBmYWxzZTsKKyAJfQorQEAgLTI3Miw5ICsyNzUs OSBAQCBib29sIEZGbXBlZ0VuY29kZXJPcGVuKHN0cnVjdCBGRm1wZWdFbmNvZGVyKiBlbmNvZGVy LCBjb25zdCBjaGFyKiBvdXRmaWxlKSB7CisgCWVuY29kZXItPmN1cnJlbnRWaWRlb0ZyYW1lID0g MDsKKyAJZW5jb2Rlci0+c2tpcFJlc2lkdWUgPSAwOworCistCUFWT3V0cHV0Rm9ybWF0KiBvZm9y bWF0ID0gYXZfZ3Vlc3NfZm9ybWF0KGVuY29kZXItPmNvbnRhaW5lckZvcm1hdCwgMCwgMCk7Cisr CWNvbnN0IEFWT3V0cHV0Rm9ybWF0KiBvZm9ybWF0ID0gYXZfZ3Vlc3NfZm9ybWF0KGVuY29kZXIt PmNvbnRhaW5lckZvcm1hdCwgMCwgMCk7CisgI2lmbmRlZiBVU0VfTElCQVYKKy0JYXZmb3JtYXRf YWxsb2Nfb3V0cHV0X2NvbnRleHQyKCZlbmNvZGVyLT5jb250ZXh0LCBvZm9ybWF0LCAwLCBvdXRm aWxlKTsKKysJYXZmb3JtYXRfYWxsb2Nfb3V0cHV0X2NvbnRleHQyKCZlbmNvZGVyLT5jb250ZXh0 LCAoQVZPdXRwdXRGb3JtYXQqKSBvZm9ybWF0LCAwLCBvdXRmaWxlKTsKKyAjZWxzZQorIAllbmNv ZGVyLT5jb250ZXh0ID0gYXZmb3JtYXRfYWxsb2NfY29udGV4dCgpOworIAlzdHJuY3B5KGVuY29k ZXItPmNvbnRleHQtPmZpbGVuYW1lLCBvdXRmaWxlLCBzaXplb2YoZW5jb2Rlci0+Y29udGV4dC0+ ZmlsZW5hbWUpIC0gMSk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL21nYmEvdGVtcGxhdGUgYi9zcmNw a2dzL21nYmEvdGVtcGxhdGUKaW5kZXggMDViY2ExNWMxNzUwLi5mNWI2Yjg0NjQ0MjggMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvbWdiYS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21nYmEvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtZ2JhJwogcGtnbmFtZT1tZ2Jh CiB2ZXJzaW9uPTAuMTAuMQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y21h a2UKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBxdDUtaG9zdC10b29scyBxdDUtcW1ha2Ug ZGVza3RvcC1maWxlLXV0aWxzIgogbWFrZWRlcGVuZHM9IlNETDItZGV2ZWwgZmZtcGVnLWRldmVs IGxpYmVkaXQtZGV2ZWwgbGliZXBveHktZGV2ZWwgbGlibWFnaWNrLWRldmVsCmRpZmYgLS1naXQg YS9zcmNwa2dzL21pbmlkbG5hL3RlbXBsYXRlIGIvc3JjcGtncy9taW5pZGxuYS90ZW1wbGF0ZQpp bmRleCBlODA4MWIxY2JjNjcuLjllZTk3MTQ4NjFmZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9taW5p ZGxuYS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21pbmlkbG5hL3RlbXBsYXRlCkBAIC0xLDcgKzEs NyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbWluaWRsbmEnCiBwa2duYW1lPW1pbmlkbG5hCiB2 ZXJzaW9uPTEuMy4yCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1nbnUtY29u ZmlndXJlCiBjb25maWd1cmVfYXJncz0iCiAgLS1zYmluZGlyPS91c3IvYmluCmRpZmYgLS1naXQg YS9zcmNwa2dzL21peHh4L3RlbXBsYXRlIGIvc3JjcGtncy9taXh4eC90ZW1wbGF0ZQppbmRleCA2 MTlkZGNhMGQzMzIuLjRiOWVhMDBkM2ZiMyAxMDA2NDQKLS0tIGEvc3JjcGtncy9taXh4eC90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL21peHh4L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnbWl4eHgnCiBwa2duYW1lPW1peHh4CiB2ZXJzaW9uPTIuMy4zCi1yZXZp c2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1E Q01BS0VfQlVJTERfVFlQRT1SZWxlYXNlIgogaG9zdG1ha2VkZXBlbmRzPSJleHRyYS1jbWFrZS1t b2R1bGVzIHBrZy1jb25maWcgcHJvdG9idWYgcXQ1LWhvc3QtdG9vbHMgcXQ1LWRldmVsIgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9tbHQvdGVtcGxhdGUgYi9zcmNwa2dzL21sdC90ZW1wbGF0ZQppbmRl eCA4OTMzZWI0ZTdiYjkuLmVkNmIyNzUwM2Y5YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9tbHQvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9tbHQvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdtbHQnCiBwa2duYW1lPW1sdAogdmVyc2lvbj02LjI2LjEKLXJldmlzaW9u PTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0t cHJlZml4PS91c3IgLS1saWJkaXI9L3Vzci9saWIkWEJQU19UQVJHRVRfV09SRFNJWkUKICAtLWVu YWJsZS1ncGwgLS1lbmFibGUtZ3BsMyAtLWRpc2FibGUtc3dmZGVjIC0td2l0aG91dC1rZGUKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbWx0Ny90ZW1wbGF0ZSBiL3NyY3BrZ3MvbWx0Ny90ZW1wbGF0ZQpp bmRleCBlNTk3MmNjMDQxMWIuLmQwZTllYzAyZTU4YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9tbHQ3 L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbWx0Ny90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ21sdDcnCiBwa2duYW1lPW1sdDcKIHZlcnNpb249Ny4xMi4wCi1y ZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9 Ii1EU1dJR19QWVRIT049T04iCiBob3N0bWFrZWRlcGVuZHM9ImRveHlnZW4gcGtnLWNvbmZpZyBs YWRzcGEtc2RrIHN3aWcgcHl0aG9uMyB3aGljaApkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb2MvdGVt cGxhdGUgYi9zcmNwa2dzL21vYy90ZW1wbGF0ZQppbmRleCBjNDJiZTY1MGExZDIuLjRiOTU0MjY1 OTliZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9tb2MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9tb2Mv dGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtb2MnCiBwa2du YW1lPW1vYwogdmVyc2lvbj0yLjUuMgotcmV2aXNpb249NgorcmV2aXNpb249NwogYnVpbGRfc3R5 bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIgogbWFrZWRlcGVu ZHM9ImRiLWRldmVsIG5jdXJzZXMtZGV2ZWwgbGliY3VybC1kZXZlbCBwb3B0LWRldmVsIGZmbXBl Zy1kZXZlbApkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3Rpb24vdGVtcGxhdGUgYi9zcmNwa2dzL21v dGlvbi90ZW1wbGF0ZQppbmRleCAzY2YzYzMwMzVjNWIuLjdkY2ExMmQ4NTFlMyAxMDA2NDQKLS0t IGEvc3JjcGtncy9tb3Rpb24vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9tb3Rpb24vdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtb3Rpb24nCiBwa2duYW1lPW1v dGlvbgogdmVyc2lvbj00LjUuMQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9 Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJhdXRvbWFrZSBwa2ctY29uZmlnIGdldHRl eHQtZGV2ZWwgdGFyIgogbWFrZWRlcGVuZHM9ImZmbXBlZy1kZXZlbCBsaWJtaWNyb2h0dHBkLWRl dmVsIHY0bC11dGlscy1kZXZlbCBnZXR0ZXh0LWRldmVsIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9t cGQvdGVtcGxhdGUgYi9zcmNwa2dzL21wZC90ZW1wbGF0ZQppbmRleCA2MzcwMWI3ZDU2YjEuLmRm MzVlNzUxZWE2MCAxMDA2NDQKLS0tIGEvc3JjcGtncy9tcGQvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9tcGQvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtcGQn CiBwa2duYW1lPW1wZAogdmVyc2lvbj0wLjIzLjEyCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBi dWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1Eb3B1cz1lbmFibGVkIC1EbWlrbW9k PWVuYWJsZWQgLURuZWlnaGJvcj10cnVlCiAgLURzb3VuZGNsb3VkPWVuYWJsZWQgLURwaXBlPXRy dWUgLUR0d29sYW1lPWVuYWJsZWQgLURiemlwMj1lbmFibGVkCmRpZmYgLS1naXQgYS9zcmNwa2dz L21wdi90ZW1wbGF0ZSBiL3NyY3BrZ3MvbXB2L3RlbXBsYXRlCmluZGV4IGUxNjNjNDk2YzZlYi4u ZDRmZWZiZjVlM2M3IDEwMDY0NAotLS0gYS9zcmNwa2dzL21wdi90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL21wdi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ21w dicKIHBrZ25hbWU9bXB2CiB2ZXJzaW9uPTAuMzUuMQotcmV2aXNpb249MgorcmV2aXNpb249Mwog YnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGNkZGE9ZW5hYmxlZCAtRGR2Ymlu PWVuYWJsZWQgLURkdmRuYXY9ZW5hYmxlZAogIC1EbGlibXB2PXRydWUgLURjcGx1Z2lucz1lbmFi bGVkCmRpZmYgLS1naXQgYS9zcmNwa2dzL211c2lrY3ViZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvbXVz aWtjdWJlL3RlbXBsYXRlCmluZGV4IDRiNzkzMDA0MTEyNi4uN2NkNjVjZjc2Yjc3IDEwMDY0NAot LS0gYS9zcmNwa2dzL211c2lrY3ViZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL211c2lrY3ViZS90 ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ211c2lrY3ViZScK IHBrZ25hbWU9bXVzaWtjdWJlCiB2ZXJzaW9uPTAuOTkuNAotcmV2aXNpb249MQorcmV2aXNpb249 MgogYnVpbGRfc3R5bGU9Y21ha2UKIG1ha2VfY21kPW1ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRE5P X05DVVJTRVNXPTEiCmRpZmYgLS1naXQgYS9zcmNwa2dzL25vdGN1cnNlcy90ZW1wbGF0ZSBiL3Ny Y3BrZ3Mvbm90Y3Vyc2VzL3RlbXBsYXRlCmluZGV4IDZkZDhhMDkxMzE5Zi4uMzExMGMzMGM5YWZm IDEwMDY0NAotLS0gYS9zcmNwa2dzL25vdGN1cnNlcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL25v dGN1cnNlcy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ25v dGN1cnNlcycKIHBrZ25hbWU9bm90Y3Vyc2VzCiB2ZXJzaW9uPTMuMC45Ci1yZXZpc2lvbj0xCity ZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1EVVNFX1NUQVRJ Qz1PTiAkKHZvcHRfYm9vbCBtYW4gVVNFX1BBTkRPQykiCiBob3N0bWFrZWRlcGVuZHM9InBrZy1j b25maWcgJCh2b3B0X2lmIG1hbiBwYW5kb2MpIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vYnMvdGVt cGxhdGUgYi9zcmNwa2dzL29icy90ZW1wbGF0ZQppbmRleCAxYTcxMzJhZTgzMmYuLjA3OGZlYmE2 MmJiYiAxMDA2NDQKLS0tIGEvc3JjcGtncy9vYnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9vYnMv dGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdvYnMnCiBwa2du YW1lPW9icwogdmVyc2lvbj0yOS4wLjIKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGFyY2hzPSJp Njg2KiB4ODZfNjQqIHBwYzY0bGUqIGFhcmNoNjQqIgogYnVpbGRfc3R5bGU9Y21ha2UKIGNvbmZp Z3VyZV9hcmdzPSItRE9CU19WRVJTSU9OX09WRVJSSURFPSR7dmVyc2lvbn0gLURFTkFCTEVfSkFD Sz1PTgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vbGl2ZS90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb2xpdmUv dGVtcGxhdGUKaW5kZXggMTJhNDY5MzZjOTkwLi41MjkwZDhlNWFhY2QgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3Mvb2xpdmUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9vbGl2ZS90ZW1wbGF0ZQpAQCAtMSw3 ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ29saXZlJwogcGtnbmFtZT1vbGl2ZQogdmVy c2lvbj0wLjEuMgotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9cW1ha2UKIGhv c3RtYWtlZGVwZW5kcz0icXQ1LXFtYWtlIHF0NS1ob3N0LXRvb2xzIHBrZy1jb25maWciCiBtYWtl ZGVwZW5kcz0icXQ1LWRldmVsIHF0NS1tdWx0aW1lZGlhLWRldmVsIHF0NS1zdmctZGV2ZWwgZmZt cGVnLWRldmVsIGZyZWkwci1wbHVnaW5zIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vbXhwbGF5ZXIv dGVtcGxhdGUgYi9zcmNwa2dzL29teHBsYXllci90ZW1wbGF0ZQppbmRleCBlNzBiZjc4NzNkNGQu LjgwYWJkZWZlNzdiNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9vbXhwbGF5ZXIvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9vbXhwbGF5ZXIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdvbXhwbGF5ZXInCiBwa2duYW1lPW9teHBsYXllcgogdmVyc2lvbj0yMDE5MDEw MgotcmV2aXNpb249MQorcmV2aXNpb249Mgogc2hvcnRfZGVzYz0iQ29tbWFuZGxpbmUgT01YIHBs YXllciBmb3IgdGhlIFJhc3BiZXJyeSBQaSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5A dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMiIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Bl bmltYWdlaW8vdGVtcGxhdGUgYi9zcmNwa2dzL29wZW5pbWFnZWlvL3RlbXBsYXRlCmluZGV4IGNj OWQ3YTMzOTg0ZS4uZWU5ODhhZTJjZTA3IDEwMDY0NAotLS0gYS9zcmNwa2dzL29wZW5pbWFnZWlv L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3BlbmltYWdlaW8vdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdvcGVuaW1hZ2VpbycKIHBrZ25hbWU9b3BlbmltYWdl aW8KIHZlcnNpb249Mi4zLjE4LjAKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxl PWNtYWtlCiBidWlsZF9oZWxwZXI9cWVtdQogY29uZmlndXJlX2FyZ3M9Ii1EVVNFX09QRU5HTD0w IC1EVVNFX1FUPTAgLURVU0VfUFlUSE9OPTAgLURPSUlPX0JVSUxEX1RFU1RTPTEKZGlmZiAtLWdp dCBhL3NyY3BrZ3Mvb3Blbm13L3RlbXBsYXRlIGIvc3JjcGtncy9vcGVubXcvdGVtcGxhdGUKaW5k ZXggNTI1MWEwMjgzZGMxLi5lMzc3MWM3YWFmMWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvb3Blbm13 L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3Blbm13L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnb3Blbm13JwogcGtnbmFtZT1vcGVubXcKIHZlcnNpb249MC40 Ny4wCi1yZXZpc2lvbj00CityZXZpc2lvbj01CiBidWlsZF9zdHlsZT1jbWFrZQogX3JlY2FzdF9j b21taXQ9ZTc1YWRmODZmOTFlYjMwODIyMjAwODVlNDJkZGE2MjY3OWY5YTNlYQogX2J1bGxldF90 YWc9My4xNwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuc2hvdC90ZW1wbGF0ZSBiL3NyY3BrZ3Mv b3BlbnNob3QvdGVtcGxhdGUKaW5kZXggMzIyNzE3ZDQwYWJjLi5jMDc0ZTAzMzg3NzMgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3Mvb3BlbnNob3QvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9vcGVuc2hvdC90 ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW5zaG90Jwog cGtnbmFtZT1vcGVuc2hvdAogdmVyc2lvbj0zLjAuMAotcmV2aXNpb249MQorcmV2aXNpb249Mgog YnVpbGRfc3R5bGU9cHl0aG9uMy1tb2R1bGUKIGhvc3RtYWtlZGVwZW5kcz0icHl0aG9uMyBweXRo b24zLXNldHVwdG9vbHMiCiBtYWtlZGVwZW5kcz0iZmZtcGVnLWRldmVsIHB5dGhvbjMtUHlRdDUi CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW50b29uei90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbnRv b256L3RlbXBsYXRlCmluZGV4IGVlOWY3NjAzZjU1Zi4uM2U4MTgzNGNhMGVkIDEwMDY0NAotLS0g YS9zcmNwa2dzL29wZW50b29uei90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29wZW50b29uei90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW50b29ueicKIHBr Z25hbWU9b3BlbnRvb256CiB2ZXJzaW9uPTEuNi4wCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBi dWlsZF93cmtzcmM9InRvb256L3NvdXJjZXMiCiBidWlsZF9zdHlsZT1jbWFrZQogbWFrZV9jbWQ9 bWFrZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9waWFub2Jhci90ZW1wbGF0ZSBiL3NyY3BrZ3MvcGlh bm9iYXIvdGVtcGxhdGUKaW5kZXggYTliMjllOTE5OTNmLi44MWVmY2QxMjJjNGQgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvcGlhbm9iYXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9waWFub2Jhci90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3BpYW5vYmFyJwogcGtn bmFtZT1waWFub2JhcgogdmVyc2lvbj0yMDIyLjA0LjAxCi1yZXZpc2lvbj0xCityZXZpc2lvbj0y CiBidWlsZF9zdHlsZT1nbnUtbWFrZWZpbGUKIG1ha2VfYnVpbGRfYXJncz0iVj0xIgogaG9zdG1h a2VkZXBlbmRzPSJwa2ctY29uZmlnIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wcHNzcHAvdGVtcGxh dGUgYi9zcmNwa2dzL3Bwc3NwcC90ZW1wbGF0ZQppbmRleCA3OTg0YTczM2Q0YmUuLmRiOWM5NWQw Nzg0YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9wcHNzcHAvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9w cHNzcHAvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwcHNz cHAnCiBwa2duYW1lPXBwc3NwcAogdmVyc2lvbj0xLjE0LjQKLXJldmlzaW9uPTEKK3JldmlzaW9u PTIKIF9nbHNsYW5nX2NvbW1pdD1kYzExYWRkZTIzYzQ1NWEyNGUxM2RkNTRkZTliNGVkZThiZGQ3 ZGI4CiBfU1BJUlZfQ3Jvc3NfY29tbWl0PTlhY2I5ZWMzMWY1YThlZjgwZWE2Yjk5NGJiNzdiZTc4 N2IwOGQzZDEKIF9hcm1pcHNfY29tbWl0PTY3MTllZGViYWFlMDMzMzBlZTU0NDFkOWIyODI4MDY3 MmVkZjAwZDUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHFpdi90ZW1wbGF0ZSBiL3NyY3BrZ3MvcHFp di90ZW1wbGF0ZQppbmRleCA1NDJmYzI3YTJkMzIuLjkzMDhkOTQ5YjZhMSAxMDA2NDQKLS0tIGEv c3JjcGtncy9wcWl2L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcHFpdi90ZW1wbGF0ZQpAQCAtMSw3 ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3BxaXYnCiBwa2duYW1lPXBxaXYKIHZlcnNp b249Mi4xMgotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Z251LW1ha2VmaWxl CiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBn dGsrMy1kZXZlbCAkKHZvcHRfaWYgZmZtcGVnIGZmbXBlZy1kZXZlbCkKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcW1tcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcW1tcC90ZW1wbGF0ZQppbmRleCAyNmM2NjFl ZDE2YmUuLmExNTBkNzQ0MWM3YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9xbW1wL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvcW1tcC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ3FtbXAnCiBwa2duYW1lPXFtbXAKIHZlcnNpb249MS42LjEKLXJldmlzaW9uPTEKK3Jl dmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURVU0VfSEFMOkJP T0w9RkFMU0UgLURRTU1QX0RFRkFVTFRfVUk6U1RSSU5HPXNpbXBsZSIKIGhvc3RtYWtlZGVwZW5k cz0icGtnLWNvbmZpZyBxdDUtaG9zdC10b29scyBxdDUtcW1ha2UiCmRpZmYgLS1naXQgYS9zcmNw a2dzL3F0NS13ZWJlbmdpbmUvdGVtcGxhdGUgYi9zcmNwa2dzL3F0NS13ZWJlbmdpbmUvdGVtcGxh dGUKaW5kZXggZjlkNzhlY2VkOTI5Li4wYTcxNDg0MjA4YmMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv cXQ1LXdlYmVuZ2luZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0NS13ZWJlbmdpbmUvdGVtcGxh dGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDUtd2ViZW5naW5lJwog cGtnbmFtZT1xdDUtd2ViZW5naW5lCiB2ZXJzaW9uPTUuMTUuMTEKLXJldmlzaW9uPTEKK3Jldmlz aW9uPTIKIF92ZXJzaW9uPSIke3ZlcnNpb259LWx0cyIKIF9jaHJvbWl1bV9jb21taXQ9YmUzNDll YWY2MmU3Nzk1NTc5MWQ3YmYyOWY4OTNmMWU4YTM3ZGFmNAogYXJjaHM9Ing4Nl82NCogaTY4Niog YXJtdls2N10qIHBwYzY0KiBhYXJjaDY0KiIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ1L3RlbXBs YXRlIGIvc3JjcGtncy9xdDUvdGVtcGxhdGUKaW5kZXggZjRmOWY1YjUzNDRhLi5iNTE3YjQ5ZWFk MmQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ1L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ1L3Rl bXBsYXRlCkBAIC01LDcgKzUsNyBAQCBwa2duYW1lPXF0NQogdmVyc2lvbj01LjE1LjcrMjAyMjEx MTkKICMgY29tbWl0IGY4YzlmYjMwNGJjM2U1M2IzYWEwN2Y5NjJjZDc0ZTkxNjBkZWNjY2MKICMg YmFzZSByZXBvOiBodHRwczovL2ludmVudC5rZGUub3JnL3F0L3F0L3F0NQotcmV2aXNpb249MQor cmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWV0YQogaG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBjbGFu ZyBmbGV4IHBlcmwgZ2xpYi1kZXZlbCBwa2ctY29uZmlnCiAgcHl0aG9uIHJlMmMgcnVieSB3aGlj aCIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LW11bHRpbWVkaWEvdGVtcGxhdGUgYi9zcmNwa2dz L3F0Ni1tdWx0aW1lZGlhL3RlbXBsYXRlCmluZGV4IGQ4OWU3ZDU0ZWI1YS4uYWFlMTVlNTdjYTdi IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvcXQ2LW11bHRpbWVkaWEvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdxdDYtbXVsdGltZWRpYScKIHBrZ25hbWU9cXQ2LW11bHRpbWVkaWEKIHZlcnNpb249 Ni40LjIKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1 cmVfYXJncz0iLURRVF9GRUFUVVJFX2dzdHJlYW1lcj1PTiIKIGhvc3RtYWtlZGVwZW5kcz0icGVy bCBxdDYtZGVjbGFyYXRpdmUtaG9zdC10b29scyBwa2ctY29uZmlnIHF0Ni1zaGFkZXJ0b29scyIK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS90ZW1wbGF0ZQppbmRleCA5OTAxMjczMmI1M2EuLjk2ODQ2ZmVhZWU4MyAxMDA2 NDQKLS0tIGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J3F0Ni13ZWJlbmdpbmUnCiBwa2duYW1lPXF0Ni13ZWJlbmdpbmUKIHZlcnNpb249Ni40LjIKLXJl dmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0i CiAgLURRVF9GRUFUVVJFX3dlYmVuZ2luZV9zeXN0ZW1fZmZtcGVnPU9OCmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0YXYvdGVtcGxhdGUgYi9zcmNwa2dzL3F0YXYvdGVtcGxhdGUKaW5kZXggMzRjMzBi MmMwYzc4Li43NzVkNWExMzlhOWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXRhdi90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL3F0YXYvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdxdGF2JwogcGtnbmFtZT1xdGF2CiB2ZXJzaW9uPTEuMTMuMAotcmV2aXNpb249MQor cmV2aXNpb249MgogYnVpbGRfc3R5bGU9cW1ha2UKIGhvc3RtYWtlZGVwZW5kcz0icXQ1LXFtYWtl IHF0NS1ob3N0LXRvb2xzIgogbWFrZWRlcGVuZHM9ImZmbXBlZy1kZXZlbCBsaWJhc3MtZGV2ZWwg bGlib3BlbmFsLWRldmVsCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0b3gvcGF0Y2hlcy9mZm1wZWc1 LnBhdGNoIGIvc3JjcGtncy9xdG94L3BhdGNoZXMvZmZtcGVnNS5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNiYWJlMWM5ODQ0NwotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvcXRveC9wYXRjaGVzL2ZmbXBlZzUucGF0Y2gKQEAgLTAsMCArMSw3OSBAQAor RnJvbSAxNTY3M2E1MmI2YjQ4MDVkNDgyYjY5MjgxZTIxOTQ3ZmI3MDk2ZTA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogQW50aG9ueSBCaWxpbnNraSA8bWVAYWJpbGluc2tpLmNvbT4K K0RhdGU6IFRodSwgMTAgRmViIDIwMjIgMTc6MjQ6MzggLTA4MDAKK1N1YmplY3Q6IFtQQVRDSF0g Zml4KG1hY09TKTogVXBkYXRlIHZpZGVvIEFQSSB1c2FnZSBmb3IgbmV3ZXIgbGliYXZjb2RlYwor CitOZXdlciB2ZXJzaW9uIG9mIGF2Zm9ybWF0X29wZW5faW5wdXQsIGF2X2ZpbmRfaW5wdXRfZm9y bWF0LAorYXZjb2RlY19maW5kX2RlY29kZXIgcHJldmlvdXNseSB1c2VkIG5vbi1jb25zdCBwb2lu dGVycyB0aGF0IGFyZSBub3cKK2NvbnN0LiBTdXBwb3J0IGJvdGggdmVyc2lvbiBmb3IgY29tcGF0 aWJpbHRpeSB3aXRoIG90aGVyIHBsYXRmb3Jtcy4KKy0tLQorIHNyYy92aWRlby9jYW1lcmFkZXZp Y2UuY3BwIHwgOSArKysrKystLS0KKyBzcmMvdmlkZW8vY2FtZXJhZGV2aWNlLmggICB8IDEgLQor IHNyYy92aWRlby9jYW1lcmFzb3VyY2UuY3BwIHwgMyArLS0KKyAzIGZpbGVzIGNoYW5nZWQsIDcg aW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy92aWRlby9j YW1lcmFkZXZpY2UuY3BwIGIvc3JjL3ZpZGVvL2NhbWVyYWRldmljZS5jcHAKK2luZGV4IDNiMDc5 NjhiMzIuLmEwMTJhMGY3OGQgMTAwNjQ0CistLS0gYS9zcmMvdmlkZW8vY2FtZXJhZGV2aWNlLmNw cAorKysrIGIvc3JjL3ZpZGVvL2NhbWVyYWRldmljZS5jcHAKK0BAIC0zMSw2ICszMSw5IEBAIGV4 dGVybiAiQyIgeworICNpbmNsdWRlICJjYW1lcmFkZXZpY2UuaCIKKyAjaW5jbHVkZSAic3JjL3Bl cnNpc3RlbmNlL3NldHRpbmdzLmgiCisKKysvLyBubyBsb25nZXIgbmVlZGVkIHdoZW4gYXZmb3Jt YXQgdmVyc2lvbiA8IDU5IGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQKKyt1c2luZyBBdkZpbmRJbnB1 dEZvcm1hdFJldCA9IGRlY2x0eXBlKGF2X2ZpbmRfaW5wdXRfZm9ybWF0KCIiKSk7CisrCisgI2lm IGRlZmluZWQoUV9PU19MSU5VWCkgfHwgZGVmaW5lZChRX09TX0ZSRUVCU0QpCisgI2RlZmluZSBV U0lOR19WNEwgMQorICNlbHNlCitAQCAtNzEsOCArNzQsOCBAQCBleHRlcm4gIkMiIHsKKworIFFI YXNoPFFTdHJpbmcsIENhbWVyYURldmljZSo+IENhbWVyYURldmljZTo6b3BlbkRldmljZXM7Cisg UU11dGV4IENhbWVyYURldmljZTo6b3BlbkRldmljZUxvY2ssIENhbWVyYURldmljZTo6aWZvcm1h dExvY2s7CistQVZJbnB1dEZvcm1hdCogQ2FtZXJhRGV2aWNlOjppZm9ybWF0e251bGxwdHJ9Owor LUFWSW5wdXRGb3JtYXQqIENhbWVyYURldmljZTo6aWRlc2t0b3BGb3JtYXR7bnVsbHB0cn07Cisr c3RhdGljIEF2RmluZElucHV0Rm9ybWF0UmV0IGlkZXNrdG9wRm9ybWF0e251bGxwdHJ9OworK3N0 YXRpYyBBdkZpbmRJbnB1dEZvcm1hdFJldCBpZm9ybWF0e251bGxwdHJ9OworCisgQ2FtZXJhRGV2 aWNlOjpDYW1lcmFEZXZpY2UoY29uc3QgUVN0cmluZyYgZGV2TmFtZSwgQVZGb3JtYXRDb250ZXh0 KiBjb250ZXh0KQorICAgICA6IGRldk5hbWV7ZGV2TmFtZX0KK0BAIC05Miw3ICs5NSw3IEBAIENh bWVyYURldmljZSogQ2FtZXJhRGV2aWNlOjpvcGVuKFFTdHJpbmcgZGV2TmFtZSwgQVZEaWN0aW9u YXJ5Kiogb3B0aW9ucykKKyAgICAgICAgIGdvdG8gb3V0OworICAgICB9CisKKy0gICAgQVZJbnB1 dEZvcm1hdCogZm9ybWF0OworKyAgICBBdkZpbmRJbnB1dEZvcm1hdFJldCBmb3JtYXQ7CisgICAg IGlmIChkZXZOYW1lLnN0YXJ0c1dpdGgoIngxMWdyYWIjIikpIHsKKyAgICAgICAgIGRldk5hbWUg PSBkZXZOYW1lLm1pZCg4KTsKKyAgICAgICAgIGZvcm1hdCA9IGlkZXNrdG9wRm9ybWF0OworZGlm ZiAtLWdpdCBhL3NyYy92aWRlby9jYW1lcmFkZXZpY2UuaCBiL3NyYy92aWRlby9jYW1lcmFkZXZp Y2UuaAoraW5kZXggOTEwODczMzI1Yi4uYzA1ZjFkYmVkNCAxMDA2NDQKKy0tLSBhL3NyYy92aWRl by9jYW1lcmFkZXZpY2UuaAorKysrIGIvc3JjL3ZpZGVvL2NhbWVyYWRldmljZS5oCitAQCAtNjQs NSArNjQsNCBAQCBjbGFzcyBDYW1lcmFEZXZpY2UKKyAgICAgc3RkOjphdG9taWNfaW50IHJlZmNv dW50OworICAgICBzdGF0aWMgUUhhc2g8UVN0cmluZywgQ2FtZXJhRGV2aWNlKj4gb3BlbkRldmlj ZXM7CisgICAgIHN0YXRpYyBRTXV0ZXggb3BlbkRldmljZUxvY2ssIGlmb3JtYXRMb2NrOworLSAg ICBzdGF0aWMgQVZJbnB1dEZvcm1hdCAqaWZvcm1hdCwgKmlkZXNrdG9wRm9ybWF0OworIH07Citk aWZmIC0tZ2l0IGEvc3JjL3ZpZGVvL2NhbWVyYXNvdXJjZS5jcHAgYi9zcmMvdmlkZW8vY2FtZXJh c291cmNlLmNwcAoraW5kZXggMTM0YmM0OWFmYy4uM2E4OTlmMTFkMCAxMDA2NDQKKy0tLSBhL3Ny Yy92aWRlby9jYW1lcmFzb3VyY2UuY3BwCisrKysgYi9zcmMvdmlkZW8vY2FtZXJhc291cmNlLmNw cAorQEAgLTI3OCw3ICsyNzgsNiBAQCB2b2lkIENhbWVyYVNvdXJjZTo6b3BlbkRldmljZSgpCisg ICAgIH0KKworICAgICAvLyBXZSBuZWVkIHRvIGNyZWF0ZSBhIG5ldyBDYW1lcmFEZXZpY2UKKy0g ICAgQVZDb2RlYyogY29kZWM7CisgICAgIGRldmljZSA9IENhbWVyYURldmljZTo6b3BlbihkZXZp Y2VOYW1lLCBtb2RlKTsKKworICAgICBpZiAoIWRldmljZSkgeworQEAgLTMyMiw3ICszMjEsNyBA QCB2b2lkIENhbWVyYVNvdXJjZTo6b3BlbkRldmljZSgpCisgICAgIEFWQ29kZWNQYXJhbWV0ZXJz KiBjcGFyYW1zID0gZGV2aWNlLT5jb250ZXh0LT5zdHJlYW1zW3ZpZGVvU3RyZWFtSW5kZXhdLT5j b2RlY3BhcjsKKyAgICAgY29kZWNJZCA9IGNwYXJhbXMtPmNvZGVjX2lkOworICNlbmRpZgorLSAg ICBjb2RlYyA9IGF2Y29kZWNfZmluZF9kZWNvZGVyKGNvZGVjSWQpOworKyAgICBjb25zdCBBVkNv ZGVjKiBjb2RlYyA9IGF2Y29kZWNfZmluZF9kZWNvZGVyKGNvZGVjSWQpOworICAgICBpZiAoIWNv ZGVjKSB7CisgICAgICAgICBxV2FybmluZygpIDw8ICJDb2RlYyBub3QgZm91bmQiOworICAgICAg ICAgZW1pdCBvcGVuRmFpbGVkKCk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0b3gvdGVtcGxhdGUg Yi9zcmNwa2dzL3F0b3gvdGVtcGxhdGUKaW5kZXggMTYwMTlkN2VhZWM5Li41Y2VhMGIxMWI2OTcg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXRveC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0b3gvdGVt cGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdG94JwogcGtnbmFt ZT1xdG94CiB2ZXJzaW9uPTEuMTcuNgotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5 bGU9Y21ha2UKIGNvbmZpZ3VyZV9hcmdzPSItRFVQREFURV9DSEVDSz1PRkYKICAtREdJVF9ERVND UklCRT0ke3ZlcnNpb259CmRpZmYgLS1naXQgYS9zcmNwa2dzL3JldHJvYXJjaC90ZW1wbGF0ZSBi L3NyY3BrZ3MvcmV0cm9hcmNoL3RlbXBsYXRlCmluZGV4IDI0MGQzZGY5ZGIwMC4uNmQwYjE2YWUy NTk4IDEwMDY0NAotLS0gYS9zcmNwa2dzL3JldHJvYXJjaC90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L3JldHJvYXJjaC90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J3JldHJvYXJjaCcKIHBrZ25hbWU9cmV0cm9hcmNoCiB2ZXJzaW9uPTEuMTQuMAotcmV2aXNpb249 MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Y29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1w cmVmaXg9L3VzciAtLXN5c2NvbmZkaXI9L2V0YyAtLWVuYWJsZS1uZXR3b3JraW5nCiAgLS1lbmFi bGUtdWRldiAtLWRpc2FibGUtYnVpbHRpbmZsYWMgLS1kaXNhYmxlLWJ1aWx0aW5nbHNsYW5nCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3NjcmNweS90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc2NyY3B5L3RlbXBs YXRlCmluZGV4IGVlNmU2OThlMzg3Zi4uOGFkYTVjYTQzMjNmIDEwMDY0NAotLS0gYS9zcmNwa2dz L3NjcmNweS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3NjcmNweS90ZW1wbGF0ZQpAQCAtMSw3ICsx LDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3NjcmNweScKIHBrZ25hbWU9c2NyY3B5CiB2ZXJz aW9uPTIuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZp Z3VyZV9hcmdzPSItRGNvbXBpbGVfc2VydmVyPWZhbHNlCiAgLURwcmVidWlsdF9zZXJ2ZXI9L3Vz ci9zaGFyZS9zY3JjcHkvc2NyY3B5LXNlcnZlci12JHt2ZXJzaW9ufSIKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3Mvc3Blay1hbHRlcm5hdGl2ZS90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc3Blay1hbHRlcm5hdGl2 ZS90ZW1wbGF0ZQppbmRleCBkNjUwODZiOGYwMDguLjcyNzQ3Y2JiMGEwMiAxMDA2NDQKLS0tIGEv c3JjcGtncy9zcGVrLWFsdGVybmF0aXZlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvc3Blay1hbHRl cm5hdGl2ZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3Nw ZWstYWx0ZXJuYXRpdmUnCiBwa2duYW1lPXNwZWstYWx0ZXJuYXRpdmUKIHZlcnNpb249MC44LjIu MwotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9z dG1ha2VkZXBlbmRzPSJhdXRvbWFrZSBnZXR0ZXh0LWRldmVsIGludGx0b29sIGxpYnRvb2wgcGtn LWNvbmZpZyB3eFdpZGdldHMtY29tbW9uIgogbWFrZWRlcGVuZHM9ImZmbXBlZy1kZXZlbCB3eFdp ZGdldHMtZ3RrMy1kZXZlbCIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc3NyL3RlbXBsYXRlIGIvc3Jj cGtncy9zc3IvdGVtcGxhdGUKaW5kZXggYjA1NWI5ZWMwNzc0Li44NDJiMjQyM2FhZDEgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3Mvc3NyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvc3NyL3RlbXBsYXRlCkBA IC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnc3NyJwogcGtnbmFtZT1zc3IKIHZl cnNpb249MC40LjQKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBj b25maWd1cmVfYXJncz0iLURXSVRIX1FUNT1PTiIKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZp ZyIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc3Vtby90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc3Vtby90ZW1w bGF0ZQppbmRleCAwZjliOWVjODE1ZjUuLmEzZmUxMzRhYTVhYyAxMDA2NDQKLS0tIGEvc3JjcGtn cy9zdW1vL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvc3Vtby90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3N1bW8nCiBwa2duYW1lPXN1bW8KIHZlcnNpb249MS4x Mi4wCi1yZXZpc2lvbj01CityZXZpc2lvbj02CiBidWlsZF9zdHlsZT1jbWFrZQogaG9zdG1ha2Vk ZXBlbmRzPSJsaWJnZGFsLXRvb2xzIHBrZy1jb25maWcgc3dpZyBweXRob24zLXNldHVwdG9vbHMi CiBtYWtlZGVwZW5kcz0icHl0aG9uMy1kZXZlbCBmZm1wZWctZGV2ZWwgZm94LWRldmVsIGdsMnBz LWRldmVsIGxpYmdkYWwtZGV2ZWwKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc3luZmlnL3RlbXBsYXRl IGIvc3JjcGtncy9zeW5maWcvdGVtcGxhdGUKaW5kZXggMTgyZGMzY2QyODBmLi4yOWFmYjM1NzJl NDcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc3luZmlnL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvc3lu ZmlnL3RlbXBsYXRlCkBAIC0yLDcgKzIsNyBAQAogIyBTaG91bGQgYmUga2VwdCBpbiBzeW5jIHdp dGggJ3N5bmZpZ3N0dWRpbycgYW5kICdFVEwnCiBwa2duYW1lPXN5bmZpZwogdmVyc2lvbj0xLjQu NAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29u ZmlndXJlX2FyZ3M9Ii0td2l0aC1ib29zdC1saWJkaXI9JHtYQlBTX0NST1NTX0JBU0V9L3Vzci9s aWIiCiBob3N0bWFrZWRlcGVuZHM9ImJvb3N0LWJ1aWxkIEltYWdlTWFnaWNrIHBrZy1jb25maWcg aW50bHRvb2wiCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RlbGVncmFtLWRlc2t0b3AvdGVtcGxhdGUg Yi9zcmNwa2dzL3RlbGVncmFtLWRlc2t0b3AvdGVtcGxhdGUKaW5kZXggYWFlOWYzMTM1MTAwLi43 OTQzYjM2ZjBiOGEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdGVsZWdyYW0tZGVza3RvcC90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3RlbGVncmFtLWRlc2t0b3AvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0ZWxlZ3JhbS1kZXNrdG9wJwogcGtnbmFtZT10ZWxlZ3Jh bS1kZXNrdG9wCiB2ZXJzaW9uPTQuNi41Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9z dHlsZT1jbWFrZQogYnVpbGRfaGVscGVyPSJxZW11IgogY29uZmlndXJlX2FyZ3M9Ii1EVERFU0tU T1BfQVBJX0lEPTIwOTIzNQpkaWZmIC0tZ2l0IGEvc3JjcGtncy90Z19vd3QvdGVtcGxhdGUgYi9z cmNwa2dzL3RnX293dC90ZW1wbGF0ZQppbmRleCA5N2QxOTVkZGIzNGEuLjU1MTYxNGIyNDk1NiAx MDA2NDQKLS0tIGEvc3JjcGtncy90Z19vd3QvdGVtcGxhdGUKKysrIGIvc3JjcGtncy90Z19vd3Qv dGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0Z19vd3QnCiBw a2duYW1lPXRnX293dAogdmVyc2lvbj0wLjAuMC4yMDIzMDEwNwotcmV2aXNpb249MQorcmV2aXNp b249MgogX2NvbW1pdD01MDk4NzMwYjllYjYxNzNmMGI1MjA2OGZlMjU1NWI3YzEwMTUxMjNhCiBf bGlieXV2X2NvbW1pdD0wMDk1MDg0MGQxYzliY2JiM2ViNmViYzVhYWM1NzkzZTcxMTY2YzhiCiBf YWJzZWlsX2NvbW1pdD04YzBiOTRlNzkzYTY2NDk1ZTBiMWYzNGE1ZWIyNmJkN2RjNjcyZGIwCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3RpbWcvdGVtcGxhdGUgYi9zcmNwa2dzL3RpbWcvdGVtcGxhdGUK aW5kZXggOTFmMTUxNmIyNTk3Li4zMzQ0NDNkM2Y5YmIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdGlt Zy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3RpbWcvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICd0aW1nJwogcGtnbmFtZT10aW1nCiB2ZXJzaW9uPTEuNC40Ci1y ZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9 Ii1EV0lUSF9PUEVOU0xJREVfU1VQUE9SVD1vZmYgLVduby1kZXYiCiBob3N0bWFrZWRlcGVuZHM9 InBrZy1jb25maWcgZ2l0IgpkaWZmIC0tZ2l0IGEvc3JjcGtncy90cmFja2VyLW1pbmVycy90ZW1w bGF0ZSBiL3NyY3BrZ3MvdHJhY2tlci1taW5lcnMvdGVtcGxhdGUKaW5kZXggM2U3OTY2YzJiNGE5 Li4yODU0MjViYTE4NTEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdHJhY2tlci1taW5lcnMvdGVtcGxh dGUKKysrIGIvc3JjcGtncy90cmFja2VyLW1pbmVycy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3RyYWNrZXItbWluZXJzJwogcGtnbmFtZT10cmFja2VyLW1p bmVycwogdmVyc2lvbj0zLjQuMwotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9 bWVzb24KIGJ1aWxkX2hlbHBlcj1xZW11CiAjIG1pc3NpbmcgbGliZ3JzcyBmb3IgbWluZXJfcnNz CmRpZmYgLS1naXQgYS9zcmNwa2dzL3R2aGVhZGVuZC90ZW1wbGF0ZSBiL3NyY3BrZ3MvdHZoZWFk ZW5kL3RlbXBsYXRlCmluZGV4IGU2YjE2ZDdjY2YzYi4uYTIwMDQ0ODAzMzJiIDEwMDY0NAotLS0g YS9zcmNwa2dzL3R2aGVhZGVuZC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3R2aGVhZGVuZC90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3R2aGVhZGVuZCcKIHBr Z25hbWU9dHZoZWFkZW5kCiB2ZXJzaW9uPTQuMi44Ci1yZXZpc2lvbj02CityZXZpc2lvbj03CiBi dWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1lbmFibGUtZHZic2Nh biAtLWRpc2FibGUtZmZtcGVnX3N0YXRpYwogLS1kaXNhYmxlLWhkaG9tZXJ1bl9zdGF0aWMgLS1k aXNhYmxlLWJpbnRyYXlfY2FjaGUgLS1kaXNhYmxlLWxpYngyNjRfc3RhdGljCmRpZmYgLS1naXQg YS9zcmNwa2dzL3VucGFwZXIvdGVtcGxhdGUgYi9zcmNwa2dzL3VucGFwZXIvdGVtcGxhdGUKaW5k ZXggMzhlZDQ3YTU4NDAxLi5iMDU5MjBkMTMxMDEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdW5wYXBl ci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3VucGFwZXIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICd1bnBhcGVyJwogcGtnbmFtZT11bnBhcGVyCiB2ZXJzaW9u PTYuMQotcmV2aXNpb249MworcmV2aXNpb249NAogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQog bWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGhvc3RtYWtlZGVw ZW5kcz0icGtnLWNvbmZpZyBsaWJ4c2x0IgpkaWZmIC0tZ2l0IGEvc3JjcGtncy92YmEtbS90ZW1w bGF0ZSBiL3NyY3BrZ3MvdmJhLW0vdGVtcGxhdGUKaW5kZXggYmExNTNlMGI1OGNhLi5hYTYwOTM2 NDVlOTcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdmJhLW0vdGVtcGxhdGUKKysrIGIvc3JjcGtncy92 YmEtbS90ZW1wbGF0ZQpAQCAtMiw3ICsyLDcgQEAKIHBrZ25hbWU9dmJhLW0KIHJldmVydHM9MTI5 Ml8yCiB2ZXJzaW9uPTIuMS41Ci1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1j bWFrZQogY29uZmlndXJlX2FyZ3M9Ii1ERU5BQkxFX0dUSz1UUlVFIC1ERU5BQkxFX0ZGTVBFRz1U UlVFIC1ERU5BQkxFX0xJTks9VFJVRSAtRENNQUtFX0JVSUxEX1RZUEU9UmVsZWFzZSIKIGhvc3Rt YWtlZGVwZW5kcz0iZ2V0dGV4dCBwa2ctY29uZmlnIHVuemlwIHppcCB5YXNtIHd4V2lkZ2V0cy1n dGszLWRldmVsIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy92aWNlL3RlbXBsYXRlIGIvc3JjcGtncy92 aWNlL3RlbXBsYXRlCmluZGV4IDA5MjQ3NjdjZmNmYi4uZmZhOTUzODRmNjRhIDEwMDY0NAotLS0g YS9zcmNwa2dzL3ZpY2UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy92aWNlL3RlbXBsYXRlCkBAIC0x LDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAndmljZScKIHBrZ25hbWU9dmljZQogdmVy c2lvbj0zLjUKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1 cmUKIGNvbmZpZ3VyZV9hcmdzPSIKIAkkKHZvcHRfZW5hYmxlIHNkbDIgc2RsdWkyKQpkaWZmIC0t Z2l0IGEvc3JjcGtncy93YXlwaXBlL3RlbXBsYXRlIGIvc3JjcGtncy93YXlwaXBlL3RlbXBsYXRl CmluZGV4IDVjNDE2MTkwMDA2MC4uMWE0NmZlMjdmN2Q4IDEwMDY0NAotLS0gYS9zcmNwa2dzL3dh eXBpcGUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy93YXlwaXBlL3RlbXBsYXRlCkBAIC0xLDcgKzEs NyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnd2F5cGlwZScKIHBrZ25hbWU9d2F5cGlwZQogdmVy c2lvbj0wLjguNAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KICMg bHRvIGlzIG9mZiBiZWNhdXNlIGl0IGNhdXNlcyBsaW5raW5nIGVycm9ycyBpbiBhcm12NmwgYW5k IGFybXY3bCAoZHVlIHRvIE5FT04pCiBjb25maWd1cmVfYXJncz0iLUR3ZXJyb3I9ZmFsc2UgLUR3 aXRoX2RtYWJ1Zj1lbmFibGVkIC1Ed2l0aF9sejQ9ZW5hYmxlZApkaWZmIC0tZ2l0IGEvc3JjcGtn cy93Zi1yZWNvcmRlci90ZW1wbGF0ZSBiL3NyY3BrZ3Mvd2YtcmVjb3JkZXIvdGVtcGxhdGUKaW5k ZXggZTI3OGViMDAxNjAwLi41ZDAxNGE1ZjI4YWYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvd2YtcmVj b3JkZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy93Zi1yZWNvcmRlci90ZW1wbGF0ZQpAQCAtMSw3 ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3dmLXJlY29yZGVyJwogcGtnbmFtZT13Zi1y ZWNvcmRlcgogdmVyc2lvbj0wLjMuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5 bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBzY2RvYyB3YXlsYW5kLWRldmVs IgogbWFrZWRlcGVuZHM9IndheWxhbmQtcHJvdG9jb2xzIHdheWxhbmQtZGV2ZWwgZmZtcGVnLWRl dmVsIHgyNjQtZGV2ZWwKZGlmZiAtLWdpdCBhL3NyY3BrZ3MveHByYS90ZW1wbGF0ZSBiL3NyY3Br Z3MveHByYS90ZW1wbGF0ZQppbmRleCAzOGY4MzI4M2IxZTUuLmI2ZTAxZmYwYTgxMyAxMDA2NDQK LS0tIGEvc3JjcGtncy94cHJhL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveHByYS90ZW1wbGF0ZQpA QCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3hwcmEnCiBwa2duYW1lPXhwcmEK IHZlcnNpb249NC40LjQKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPXB5dGhv bjMtbW9kdWxlCiBtYWtlX2J1aWxkX2FyZ3M9Ii0td2l0aG91dC1jdWRhX2tlcm5lbHMgLS13aXRo b3V0LWN1ZGFfcmVidWlsZCIKIG1ha2VfaW5zdGFsbF9hcmdzPSIkKHZvcHRfd2l0aCBkb2NzKSAk e21ha2VfYnVpbGRfYXJnc30iCg== --===============6147276672105208542==--