From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dietmar Hahn Subject: Re: [PATCH v19 05/14] x86/VPMU: Interface for setting PMU mode and flags Date: Thu, 19 Mar 2015 14:12:24 +0100 Message-ID: <7674631.leAsXfU0rB@amur> References: <1426604051-2980-1-git-send-email-boris.ostrovsky@oracle.com> <1426604051-2980-6-git-send-email-boris.ostrovsky@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1426604051-2980-6-git-send-email-boris.ostrovsky@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: kevin.tian@intel.com, JBeulich@suse.com, jun.nakajima@intel.com, andrew.cooper3@citrix.com, tim@xen.org, Aravind.Gopalakrishnan@amd.com, suravee.suthikulpanit@amd.com, dgdegra@tycho.nsa.gov, Boris Ostrovsky List-Id: xen-devel@lists.xenproject.org QW0gRGllbnN0YWcgMTcgTcOkcnogMjAxNSwgMTA6NTQ6MDIgc2NocmllYiBCb3JpcyBPc3Ryb3Zz a3k6Cj4gQWRkIHJ1bnRpbWUgaW50ZXJmYWNlIGZvciBzZXR0aW5nIFBNVSBtb2RlIGFuZCBmbGFn cy4gVGhyZWUgbWFpbiBtb2RlcyBhcmUKPiBwcm92aWRlZDoKPiAqIFhFTlBNVV9NT0RFX09GRjog IFBNVSBpcyBub3QgdmlydHVhbGl6ZWQKPiAqIFhFTlBNVV9NT0RFX1NFTEY6IEd1ZXN0cyBjYW4g YWNjZXNzIFBNVSBNU1JzIGFuZCByZWNlaXZlIFBNVSBpbnRlcnJ1cHRzLgo+ICogWEVOUE1VX01P REVfSFY6IFNhbWUgYXMgWEVOUE1VX01PREVfU0VMRiBmb3Igbm9uLXByb3ZpbGVkZ2VkIGd1ZXN0 cywgZG9tMAo+ICAgY2FuIHByb2ZpbGUgaXRzZWxmIGFuZCB0aGUgaHlwZXJ2aXNvci4KPiAKPiBO b3RlIHRoYXQgUE1VIG1vZGVzIGFyZSBkaWZmZXJlbnQgZnJvbSB3aGF0IGNhbiBiZSBwcm92aWRl ZCBhdCBYZW4ncyBib290IGxpbmUKPiB3aXRoICd2cG11JyBhcmd1bWVudC4gQW4gJ29mZicgKG9y ICcwJykgdmFsdWUgaXMgZXF1aXZhbGVudCB0byBYRU5QTVVfTU9ERV9PRkYuCj4gQW55IG90aGVy IHZhbHVlLCBvbiB0aGUgb3RoZXIgaGFuZCwgd2lsbCBjYXVzZSBWUE1VIG1vZGUgdG8gYmUgc2V0 IHRvCj4gWEVOUE1VX01PREVfU0VMRiBkdXJpbmcgYm9vdC4KPiAKPiBGb3IgZmVhdHVyZSBmbGFn cyBvbmx5IEludGVsJ3MgQlRTIGlzIGN1cnJlbnRseSBzdXBwb3J0ZWQuCj4gCj4gTW9kZSBhbmQg ZmxhZ3MgYXJlIHNldCB2aWEgSFlQRVJWSVNPUl94ZW5wbXVfb3AgaHlwZXJjYWxsLgo+IAo+IFNp Z25lZC1vZmYtYnk6IEJvcmlzIE9zdHJvdnNreSA8Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20+ Cj4gQWNrZWQtYnk6IERhbmllbCBEZSBHcmFhZiA8ZGdkZWdyYUB0eWNoby5uc2EuZ292PgoKUmV2 aWV3ZWQtYnk6IERpZXRtYXIgSGFobiA8ZGlldG1hci5oYWhuQHRzLmZ1aml0c3UuY29tPgoKT25s eSB0d28gbWlub3IgY29tbWVudHMgYmVsb3cuCgo+IC0tLQo+IAo+IENoYW5nZXMgaW4gdjE5Ogo+ ICogS2VlcCB0cmFjayBvZiBhY3RpdmUgdnBtdSBjb3VudCBhbmQgYWxsb3cgY2VydGFpbiBtb2Rl IGNoYW5nZXMgb25seSB3aGVuIHRoZSBjb3VudAo+ICAgaXMgemVybwo+ICogRHJvcCB2cG11X3Vu bG9hZCByb3V0aW5lcwo+ICogUmV2ZXJ0IHRvIHRvIHVzaW5nIG9wdF92cG11X2VuYWJsZWQKPiAq IENoYW5nZXMgdG8gb3Byb2ZpbGUgY29kZSBhcmUgbm8gbG9uZ2VyIG5lZWRlZAo+ICogQ2hhbmdl cyB0byB2bWNzLmMgYXJlIG5vIGxvbmdlciBuZWVkZWQKPiAqIFNpbXBsaWZpZWQgdnBtdV9zd2l0 Y2hfZnJvbS90byBpbmxpbmVzCj4gCj4gIHRvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxl cy94ZW4veGVuLnRlIHwgICAzICsKPiAgeGVuL2FyY2gveDg2L2RvbWFpbi5jICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDQgKy0KPiAgeGVuL2FyY2gveDg2L2h2bS9zdm0vdnBtdS5jICAgICAg ICAgICAgICAgICAgfCAgIDQgKy0KPiAgeGVuL2FyY2gveDg2L2h2bS92bXgvdnBtdV9jb3JlMi5j ICAgICAgICAgICAgfCAgMTAgKy0KPiAgeGVuL2FyY2gveDg2L2h2bS92cG11LmMgICAgICAgICAg ICAgICAgICAgICAgfCAxNTUgKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4gIHhlbi9hcmNo L3g4Ni94ODZfNjQvY29tcGF0L2VudHJ5LlMgICAgICAgICAgIHwgICA0ICsKPiAgeGVuL2FyY2gv eDg2L3g4Nl82NC9lbnRyeS5TICAgICAgICAgICAgICAgICAgfCAgIDQgKwo+ICB4ZW4vaW5jbHVk ZS9hc20teDg2L2h2bS92cG11LmggICAgICAgICAgICAgICB8ICAyNyArKystLQo+ICB4ZW4vaW5j bHVkZS9wdWJsaWMvcG11LmggICAgICAgICAgICAgICAgICAgICB8ICA0NSArKysrKysrKwo+ICB4 ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmggICAgICAgICAgICAgICAgICAgICB8ICAgMSArCj4gIHhl bi9pbmNsdWRlL3hlbi9oeXBlcmNhbGwuaCAgICAgICAgICAgICAgICAgIHwgICA0ICsKPiAgeGVu L2luY2x1ZGUveGxhdC5sc3QgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwo+ICB4ZW4v aW5jbHVkZS94c20vZHVtbXkuaCAgICAgICAgICAgICAgICAgICAgICB8ICAxNSArKysKPiAgeGVu L2luY2x1ZGUveHNtL3hzbS5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKysKPiAgeGVu L3hzbS9kdW1teS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwo+ICB4ZW4v eHNtL2ZsYXNrL2hvb2tzLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAxOCArKysrCj4gIHhl bi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzICAgICAgICAgIHwgICAyICsKPiAgMTcg ZmlsZXMgY2hhbmdlZCwgMjc5IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQo+IAo+IGRp ZmYgLS1naXQgYS90b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVsZXMveGVuL3hlbi50ZSBi L3Rvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy94ZW4veGVuLnRlCj4gaW5kZXggYzAx MjhhYS4uODcwZmY4MSAxMDA2NDQKPiAtLS0gYS90b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21v ZHVsZXMveGVuL3hlbi50ZQo+ICsrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxl cy94ZW4veGVuLnRlCj4gQEAgLTY4LDYgKzY4LDkgQEAgYWxsb3cgZG9tMF90IHhlbl90OnhlbjIg ewo+ICAgICAgcmVzb3VyY2Vfb3AKPiAgICAgIHBzcl9jbXRfb3AKPiAgfTsKPiArYWxsb3cgZG9t MF90IHhlbl90OnhlbjIgewo+ICsgICAgcG11X2N0cmwKPiArfTsKPiAgYWxsb3cgZG9tMF90IHhl bl90Om1tdSBtZW1vcnltYXA7Cj4gIAo+ICAjIEFsbG93IGRvbTAgdG8gdXNlIHRoZXNlIGRvbWN0 bHMgb24gaXRzZWxmLiBGb3IgZG9tY3RscyBhY3Rpbmcgb24gb3RoZXIKPiBkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2RvbWFpbi5jIGIveGVuL2FyY2gveDg2L2RvbWFpbi5jCj4gaW5kZXggMjFm MDc2Ni4uNjBkOWE4MCAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94ODYvZG9tYWluLmMKPiArKysg Yi94ZW4vYXJjaC94ODYvZG9tYWluLmMKPiBAQCAtMTUzNiw3ICsxNTM2LDcgQEAgdm9pZCBjb250 ZXh0X3N3aXRjaChzdHJ1Y3QgdmNwdSAqcHJldiwgc3RydWN0IHZjcHUgKm5leHQpCj4gICAgICBp ZiAoIGlzX2h2bV92Y3B1KHByZXYpICkKPiAgICAgIHsKPiAgICAgICAgICBpZiAocHJldiAhPSBu ZXh0KQo+IC0gICAgICAgICAgICB2cG11X3NhdmUocHJldik7Cj4gKyAgICAgICAgICAgIHZwbXVf c3dpdGNoX2Zyb20ocHJldik7Cj4gIAo+ICAgICAgICAgIGlmICggIWxpc3RfZW1wdHkoJnByZXYt PmFyY2guaHZtX3ZjcHUudG1fbGlzdCkgKQo+ICAgICAgICAgICAgICBwdF9zYXZlX3RpbWVyKHBy ZXYpOwo+IEBAIC0xNTgxLDcgKzE1ODEsNyBAQCB2b2lkIGNvbnRleHRfc3dpdGNoKHN0cnVjdCB2 Y3B1ICpwcmV2LCBzdHJ1Y3QgdmNwdSAqbmV4dCkKPiAgCj4gICAgICBpZiAoaXNfaHZtX3ZjcHUo bmV4dCkgJiYgKHByZXYgIT0gbmV4dCkgKQo+ICAgICAgICAgIC8qIE11c3QgYmUgZG9uZSB3aXRo IGludGVycnVwdHMgZW5hYmxlZCAqLwo+IC0gICAgICAgIHZwbXVfbG9hZChuZXh0KTsKPiArICAg ICAgICB2cG11X3N3aXRjaF90byhuZXh0KTsKPiAgCj4gICAgICBjb250ZXh0X3NhdmVkKHByZXYp Owo+ICAKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vdnBtdS5jIGIveGVuL2Fy Y2gveDg2L2h2bS9zdm0vdnBtdS5jCj4gaW5kZXggYThiNzlkZi4uNDgxZWE3YiAxMDA2NDQKPiAt LS0gYS94ZW4vYXJjaC94ODYvaHZtL3N2bS92cG11LmMKPiArKysgYi94ZW4vYXJjaC94ODYvaHZt L3N2bS92cG11LmMKPiBAQCAtNDcyLDE0ICs0NzIsMTQgQEAgc3RydWN0IGFyY2hfdnBtdV9vcHMg YW1kX3ZwbXVfb3BzID0gewo+ICAgICAgLmFyY2hfdnBtdV9kdW1wID0gYW1kX3ZwbXVfZHVtcAo+ ICB9Owo+ICAKPiAtaW50IHN2bV92cG11X2luaXRpYWxpc2Uoc3RydWN0IHZjcHUgKnYsIHVuc2ln bmVkIGludCB2cG11X2ZsYWdzKQo+ICtpbnQgc3ZtX3ZwbXVfaW5pdGlhbGlzZShzdHJ1Y3QgdmNw dSAqdikKPiAgewo+ICAgICAgc3RydWN0IHZwbXVfc3RydWN0ICp2cG11ID0gdmNwdV92cG11KHYp Owo+ICAgICAgdWludDhfdCBmYW1pbHkgPSBjdXJyZW50X2NwdV9kYXRhLng4NjsKPiAgICAgIGlu dCByZXQgPSAwOwo+ICAKPiAgICAgIC8qIHZwbXUgZW5hYmxlZD8gKi8KPiAtICAgIGlmICggIXZw bXVfZmxhZ3MgKQo+ICsgICAgaWYgKCB2cG11X21vZGUgPT0gWEVOUE1VX01PREVfT0ZGICkKPiAg ICAgICAgICByZXR1cm4gMDsKPiAgCj4gICAgICBzd2l0Y2ggKCBmYW1pbHkgKQo+IGRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92cG11X2NvcmUyLmMgYi94ZW4vYXJjaC94ODYvaHZt L3ZteC92cG11X2NvcmUyLmMKPiBpbmRleCBjMjQwNWJmLi42MjgwNjQ0IDEwMDY0NAo+IC0tLSBh L3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZwbXVfY29yZTIuYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9o dm0vdm14L3ZwbXVfY29yZTIuYwo+IEBAIC03MDgsMTMgKzcwOCwxMyBAQCBzdGF0aWMgaW50IGNv cmUyX3ZwbXVfZG9faW50ZXJydXB0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQo+ICAgICAg cmV0dXJuIDE7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgY29yZTJfdnBtdV9pbml0aWFsaXNlKHN0 cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgdnBtdV9mbGFncykKPiArc3RhdGljIGludCBjb3Jl Ml92cG11X2luaXRpYWxpc2Uoc3RydWN0IHZjcHUgKnYpCj4gIHsKPiAgICAgIHN0cnVjdCB2cG11 X3N0cnVjdCAqdnBtdSA9IHZjcHVfdnBtdSh2KTsKPiAgICAgIHU2NCBtc3JfY29udGVudDsKPiAg ICAgIHN0YXRpYyBib29sX3QgZHNfd2FybmVkOwo+ICAKPiAtICAgIGlmICggISh2cG11X2ZsYWdz ICYgVlBNVV9CT09UX0JUUykgKQo+ICsgICAgaWYgKCAhKHZwbXVfZmVhdHVyZXMgJiBYRU5QTVVf RkVBVFVSRV9JTlRFTF9CVFMpICkKPiAgICAgICAgICBnb3RvIGZ1bmNfb3V0Owo+ICAgICAgLyog Q2hlY2sgdGhlICdEZWJ1ZyBTdG9yZScgZmVhdHVyZSBpbiB0aGUgQ1BVSUQuRUFYWzFdOkVEWFsy MV0gKi8KPiAgICAgIHdoaWxlICggYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0RTKSApCj4gQEAg LTgyNiw3ICs4MjYsNyBAQCBzdHJ1Y3QgYXJjaF92cG11X29wcyBjb3JlMl9ub192cG11X29wcyA9 IHsKPiAgICAgIC5kb19jcHVpZCA9IGNvcmUyX25vX3ZwbXVfZG9fY3B1aWQsCj4gIH07Cj4gIAo+ IC1pbnQgdm14X3ZwbXVfaW5pdGlhbGlzZShzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IHZw bXVfZmxhZ3MpCj4gK2ludCB2bXhfdnBtdV9pbml0aWFsaXNlKHN0cnVjdCB2Y3B1ICp2KQo+ICB7 Cj4gICAgICBzdHJ1Y3QgdnBtdV9zdHJ1Y3QgKnZwbXUgPSB2Y3B1X3ZwbXUodik7Cj4gICAgICB1 aW50OF90IGZhbWlseSA9IGN1cnJlbnRfY3B1X2RhdGEueDg2Owo+IEBAIC04MzQsNyArODM0LDcg QEAgaW50IHZteF92cG11X2luaXRpYWxpc2Uoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCB2 cG11X2ZsYWdzKQo+ICAgICAgaW50IHJldCA9IDA7Cj4gIAo+ICAgICAgdnBtdS0+YXJjaF92cG11 X29wcyA9ICZjb3JlMl9ub192cG11X29wczsKPiAtICAgIGlmICggIXZwbXVfZmxhZ3MgKQo+ICsg ICAgaWYgKCB2cG11X21vZGUgPT0gWEVOUE1VX01PREVfT0ZGICkKPiAgICAgICAgICByZXR1cm4g MDsKPiAgCj4gICAgICBpZiAoIGZhbWlseSA9PSA2ICkKPiBAQCAtODc3LDcgKzg3Nyw3IEBAIGlu dCB2bXhfdnBtdV9pbml0aWFsaXNlKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgdnBtdV9m bGFncykKPiAgICAgICAgICAvKiBmdXR1cmU6ICovCj4gICAgICAgICAgY2FzZSAweDNkOgo+ICAg ICAgICAgIGNhc2UgMHg0ZToKPiAtICAgICAgICAgICAgcmV0ID0gY29yZTJfdnBtdV9pbml0aWFs aXNlKHYsIHZwbXVfZmxhZ3MpOwo+ICsgICAgICAgICAgICByZXQgPSBjb3JlMl92cG11X2luaXRp YWxpc2Uodik7Cj4gICAgICAgICAgICAgIGlmICggIXJldCApCj4gICAgICAgICAgICAgICAgICB2 cG11LT5hcmNoX3ZwbXVfb3BzID0gJmNvcmUyX3ZwbXVfb3BzOwo+ICAgICAgICAgICAgICByZXR1 cm4gcmV0Owo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZwbXUuYyBiL3hlbi9hcmNo L3g4Ni9odm0vdnBtdS5jCj4gaW5kZXggZWY4ODUyOC4uMTY0YWNjZiAxMDA2NDQKPiAtLS0gYS94 ZW4vYXJjaC94ODYvaHZtL3ZwbXUuYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdnBtdS5jCj4g QEAgLTIxLDYgKzIxLDggQEAKPiAgI2luY2x1ZGUgPHhlbi9jb25maWcuaD4KPiAgI2luY2x1ZGUg PHhlbi9zY2hlZC5oPgo+ICAjaW5jbHVkZSA8eGVuL3hlbm9wcm9mLmg+Cj4gKyNpbmNsdWRlIDx4 ZW4vZXZlbnQuaD4KPiArI2luY2x1ZGUgPHhlbi9ndWVzdF9hY2Nlc3MuaD4KPiAgI2luY2x1ZGUg PGFzbS9yZWdzLmg+Cj4gICNpbmNsdWRlIDxhc20vdHlwZXMuaD4KPiAgI2luY2x1ZGUgPGFzbS9t c3IuaD4KPiBAQCAtMzMsOCArMzUsMTAgQEAKPiAgI2luY2x1ZGUgPGFzbS9odm0vc3ZtL3ZtY2Iu aD4KPiAgI2luY2x1ZGUgPGFzbS9hcGljLmg+Cj4gICNpbmNsdWRlIDxwdWJsaWMvcG11Lmg+Cj4g KyNpbmNsdWRlIDx4c20veHNtLmg+Cj4gIAo+ICAjaW5jbHVkZSA8Y29tcGF0L3BtdS5oPgo+ICtD SEVDS19wbXVfcGFyYW1zOwo+ICBDSEVDS19wbXVfaW50ZWxfY3R4dDsKPiAgQ0hFQ0tfcG11X2Ft ZF9jdHh0Owo+ICBDSEVDS19wbXVfY250cl9wYWlyOwo+IEBAIC00Niw5ICs1MCwxNCBAQCBDSEVD S19wbXVfcmVnczsKPiAgICogInZwbXU9YnRzIiA6IHZwbXUgZW5hYmxlZCBhbmQgSW50ZWwgQlRT IGZlYXR1cmUgc3dpdGNoZWQgb24uCj4gICAqLwo+ICBzdGF0aWMgdW5zaWduZWQgaW50IF9fcmVh ZF9tb3N0bHkgb3B0X3ZwbXVfZW5hYmxlZDsKPiArdW5zaWduZWQgaW50IF9fcmVhZF9tb3N0bHkg dnBtdV9tb2RlID0gWEVOUE1VX01PREVfT0ZGOwo+ICt1bnNpZ25lZCBpbnQgX19yZWFkX21vc3Rs eSB2cG11X2ZlYXR1cmVzID0gMDsKPiAgc3RhdGljIHZvaWQgcGFyc2VfdnBtdV9wYXJhbShjaGFy ICpzKTsKPiAgY3VzdG9tX3BhcmFtKCJ2cG11IiwgcGFyc2VfdnBtdV9wYXJhbSk7Cj4gIAo+ICtz dGF0aWMgREVGSU5FX1NQSU5MT0NLKHZwbXVfbG9jayk7Cj4gK3N0YXRpYyB1bnNpZ25lZCB2cG11 X2NvdW50Owo+ICsKPiAgc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCB2Y3B1ICosIGxhc3Rf dmNwdSk7Cj4gIAo+ICBzdGF0aWMgdm9pZCBfX2luaXQgcGFyc2VfdnBtdV9wYXJhbShjaGFyICpz KQo+IEBAIC01OSw3ICs2OCw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBwYXJzZV92cG11X3BhcmFt KGNoYXIgKnMpCj4gICAgICAgICAgYnJlYWs7Cj4gICAgICBkZWZhdWx0Ogo+ICAgICAgICAgIGlm ICggIXN0cmNtcChzLCAiYnRzIikgKQo+IC0gICAgICAgICAgICBvcHRfdnBtdV9lbmFibGVkIHw9 IFZQTVVfQk9PVF9CVFM7Cj4gKyAgICAgICAgICAgIHZwbXVfZmVhdHVyZXMgfD0gWEVOUE1VX0ZF QVRVUkVfSU5URUxfQlRTOwo+ICAgICAgICAgIGVsc2UgaWYgKCAqcyApCj4gICAgICAgICAgewo+ ICAgICAgICAgICAgICBwcmludGsoIlZQTVU6IHVua25vd24gZmxhZzogJXMgLSB2cG11IGRpc2Fi bGVkIVxuIiwgcyk7Cj4gQEAgLTY3LDcgKzc2LDkgQEAgc3RhdGljIHZvaWQgX19pbml0IHBhcnNl X3ZwbXVfcGFyYW0oY2hhciAqcykKPiAgICAgICAgICB9Cj4gICAgICAgICAgLyogZmFsbCB0aHJv dWdoICovCj4gICAgICBjYXNlIDE6Cj4gLSAgICAgICAgb3B0X3ZwbXVfZW5hYmxlZCB8PSBWUE1V X0JPT1RfRU5BQkxFRDsKPiArICAgICAgICAvKiBEZWZhdWx0IFZQTVUgbW9kZSAqLwo+ICsgICAg ICAgIHZwbXVfbW9kZSA9IFhFTlBNVV9NT0RFX1NFTEY7Cj4gKyAgICAgICAgb3B0X3ZwbXVfZW5h YmxlZCA9IDE7Cj4gICAgICAgICAgYnJlYWs7Cj4gICAgICB9Cj4gIH0KPiBAQCAtNzYsNyArODcs NyBAQCB2b2lkIHZwbXVfbHZ0cGNfdXBkYXRlKHVpbnQzMl90IHZhbCkKPiAgewo+ICAgICAgc3Ry dWN0IHZwbXVfc3RydWN0ICp2cG11Owo+ICAKPiAtICAgIGlmICggIW9wdF92cG11X2VuYWJsZWQg KQo+ICsgICAgaWYgKCB2cG11X21vZGUgPT0gWEVOUE1VX01PREVfT0ZGICkKPiAgICAgICAgICBy ZXR1cm47Cj4gIAo+ICAgICAgdnBtdSA9IHZjcHVfdnBtdShjdXJyZW50KTsKPiBAQCAtODksNiAr MTAwLDkgQEAgaW50IHZwbXVfZG9fd3Jtc3IodW5zaWduZWQgaW50IG1zciwgdWludDY0X3QgbXNy X2NvbnRlbnQsIHVpbnQ2NF90IHN1cHBvcnRlZCkKPiAgewo+ICAgICAgc3RydWN0IHZwbXVfc3Ry dWN0ICp2cG11ID0gdmNwdV92cG11KGN1cnJlbnQpOwo+ICAKPiArICAgIGlmICggdnBtdV9tb2Rl ID09IFhFTlBNVV9NT0RFX09GRiApCj4gKyAgICAgICAgcmV0dXJuIDA7Cj4gKwo+ICAgICAgaWYg KCB2cG11LT5hcmNoX3ZwbXVfb3BzICYmIHZwbXUtPmFyY2hfdnBtdV9vcHMtPmRvX3dybXNyICkK PiAgICAgICAgICByZXR1cm4gdnBtdS0+YXJjaF92cG11X29wcy0+ZG9fd3Jtc3IobXNyLCBtc3Jf Y29udGVudCwgc3VwcG9ydGVkKTsKPiAgICAgIHJldHVybiAwOwo+IEBAIC05OCw2ICsxMTIsMTIg QEAgaW50IHZwbXVfZG9fcmRtc3IodW5zaWduZWQgaW50IG1zciwgdWludDY0X3QgKm1zcl9jb250 ZW50KQo+ICB7Cj4gICAgICBzdHJ1Y3QgdnBtdV9zdHJ1Y3QgKnZwbXUgPSB2Y3B1X3ZwbXUoY3Vy cmVudCk7Cj4gIAo+ICsgICAgaWYgKCB2cG11X21vZGUgPT0gWEVOUE1VX01PREVfT0ZGICkKPiAr ICAgIHsKPiArICAgICAgICAqbXNyX2NvbnRlbnQgPSAwOwo+ICsgICAgICAgIHJldHVybiAwOwo+ ICsgICAgfQo+ICsKPiAgICAgIGlmICggdnBtdS0+YXJjaF92cG11X29wcyAmJiB2cG11LT5hcmNo X3ZwbXVfb3BzLT5kb19yZG1zciApCj4gICAgICAgICAgcmV0dXJuIHZwbXUtPmFyY2hfdnBtdV9v cHMtPmRvX3JkbXNyKG1zciwgbXNyX2NvbnRlbnQpOwo+ICAgICAgcmV0dXJuIDA7Cj4gQEAgLTI0 OCwyOCArMjY4LDQxIEBAIHZvaWQgdnBtdV9pbml0aWFsaXNlKHN0cnVjdCB2Y3B1ICp2KQo+ICAK PiAgICAgIEFTU0VSVCghdnBtdS0+ZmxhZ3MgJiYgIXZwbXUtPmNvbnRleHQpOwo+ICAKPiArICAg IHNwaW5fbG9jaygmdnBtdV9sb2NrKTsKPiArICAgIHZwbXVfY291bnQrKzsgLyogUHJldmVudCB2 cG11X21vZGUgZnJvbSBjaGFuZ2luZyB1bnRpbCB3ZSBhcmUgZG9uZSAqLwo+ICsgICAgc3Bpbl91 bmxvY2soJnZwbXVfbG9jayk7Cj4gKwo+ICAgICAgc3dpdGNoICggdmVuZG9yICkKPiAgICAgIHsK PiAgICAgIGNhc2UgWDg2X1ZFTkRPUl9BTUQ6Cj4gLSAgICAgICAgcmV0ID0gc3ZtX3ZwbXVfaW5p dGlhbGlzZSh2LCBvcHRfdnBtdV9lbmFibGVkKTsKPiArICAgICAgICByZXQgPSBzdm1fdnBtdV9p bml0aWFsaXNlKHYpOwo+ICAgICAgICAgIGJyZWFrOwo+ICAKPiAgICAgIGNhc2UgWDg2X1ZFTkRP Ul9JTlRFTDoKPiAtICAgICAgICByZXQgPSB2bXhfdnBtdV9pbml0aWFsaXNlKHYsIG9wdF92cG11 X2VuYWJsZWQpOwo+ICsgICAgICAgIHJldCA9IHZteF92cG11X2luaXRpYWxpc2Uodik7Cj4gICAg ICAgICAgYnJlYWs7Cj4gIAo+ICAgICAgZGVmYXVsdDoKPiAtICAgICAgICBpZiAoIG9wdF92cG11 X2VuYWJsZWQgKQo+ICsgICAgICAgIGlmICggdnBtdV9tb2RlICE9IFhFTlBNVV9NT0RFX09GRiAp Cj4gICAgICAgICAgewo+ICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfV0FSTklORyAiVlBN VTogVW5rbm93biBDUFUgdmVuZG9yICVkLiAiCj4gICAgICAgICAgICAgICAgICAgICAiRGlzYWJs aW5nIFZQTVVcbiIsIHZlbmRvcik7Cj4gICAgICAgICAgICAgIG9wdF92cG11X2VuYWJsZWQgPSAw Owo+ICsgICAgICAgICAgICB2cG11X21vZGUgPSBYRU5QTVVfTU9ERV9PRkY7Cj4gICAgICAgICAg fQo+IC0gICAgICAgIHJldHVybjsKPiArICAgICAgICByZXR1cm47IC8qIERvbid0IGJvdGhlciBy ZXN0b3JpbmcgdnBtdV9jb3VudCwgVlBNVSBpcyBvZmYgZm9yZXZlciAqLwo+ICAgICAgfQo+ICAK PiAgICAgIGlmICggcmV0ICkKPiAgICAgICAgICBwcmludGsoWEVOTE9HX0dfV0FSTklORyAiVlBN VTogSW5pdGlhbGl6YXRpb24gZmFpbGVkIGZvciAlcHZcbiIsIHYpOwo+ICsKPiArICAgIC8qIElu dGVsIG5lZWRzIHRvIGluaXRpYWxpemUgVlBNVSBvcHMgZXZlbiBpZiBWUE1VIGlzIG5vdCBpbiB1 c2UgKi8KPiArICAgIGlmICggcmV0IHx8ICh2cG11X21vZGUgPT0gWEVOUE1VX01PREVfT0ZGKSAp Cj4gKyAgICB7Cj4gKyAgICAgICAgc3Bpbl9sb2NrKCZ2cG11X2xvY2spOwo+ICsgICAgICAgIHZw bXVfY291bnQtLTsKPiArICAgICAgICBzcGluX3VubG9jaygmdnBtdV9sb2NrKTsKPiArICAgIH0K PiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgdnBtdV9jbGVhcl9sYXN0KHZvaWQgKmFyZykKPiBAQCAt Mjk4LDYgKzMzMSwxMCBAQCB2b2lkIHZwbXVfZGVzdHJveShzdHJ1Y3QgdmNwdSAqdikKPiAgCj4g ICAgICBpZiAoIHZwbXUtPmFyY2hfdnBtdV9vcHMgJiYgdnBtdS0+YXJjaF92cG11X29wcy0+YXJj aF92cG11X2Rlc3Ryb3kgKQo+ICAgICAgICAgIHZwbXUtPmFyY2hfdnBtdV9vcHMtPmFyY2hfdnBt dV9kZXN0cm95KHYpOwo+ICsKPiArICAgIHNwaW5fbG9jaygmdnBtdV9sb2NrKTsKPiArICAgIHZw bXVfY291bnQtLTsKPiArICAgIHNwaW5fdW5sb2NrKCZ2cG11X2xvY2spOwo+ICB9Cj4gIAo+ICAv KiBEdW1wIHNvbWUgdnBtdSBpbmZvcm1hdGlvbnMgb24gY29uc29sZS4gVXNlZCBpbiBrZXloYW5k bGVyIGR1bXBfZG9tYWlucygpLiAqLwo+IEBAIC0zMDksNiArMzQ2LDEwOSBAQCB2b2lkIHZwbXVf ZHVtcChzdHJ1Y3QgdmNwdSAqdikKPiAgICAgICAgICB2cG11LT5hcmNoX3ZwbXVfb3BzLT5hcmNo X3ZwbXVfZHVtcCh2KTsKPiAgfQo+ICAKPiArbG9uZyBkb194ZW5wbXVfb3AodW5zaWduZWQgaW50 IG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9wbXVfcGFyYW1zX3QpIGFyZykKPiArewo+ ICsgICAgaW50IHJldDsKPiArICAgIHN0cnVjdCB4ZW5fcG11X3BhcmFtcyBwbXVfcGFyYW1zID0g ey52YWwgPSAwfTsKPiArCj4gKyAgICBpZiAoICFvcHRfdnBtdV9lbmFibGVkICkKPiArICAgICAg ICByZXR1cm4gLUVPUE5PVFNVUFA7Cj4gKwo+ICsgICAgcmV0ID0geHNtX3BtdV9vcChYU01fT1RI RVIsIGN1cnJlbnQtPmRvbWFpbiwgb3ApOwo+ICsgICAgaWYgKCByZXQgKQo+ICsgICAgICAgIHJl dHVybiByZXQ7Cj4gKwo+ICsgICAgLyogQ2hlY2sgbWFqb3IgdmVyc2lvbiB3aGVuIHBhcmFtZXRl cnMgYXJlIHNwZWNpZmllZCAqLwo+ICsgICAgc3dpdGNoICggb3AgKQo+ICsgICAgewo+ICsgICAg Y2FzZSBYRU5QTVVfbW9kZV9zZXQ6Cj4gKyAgICBjYXNlIFhFTlBNVV9mZWF0dXJlX3NldDoKPiAr ICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmcG11X3BhcmFtcywgYXJnLCAxKSApCj4gKyAg ICAgICAgICAgIHJldHVybiAtRUZBVUxUOwo+ICsKPiArICAgICAgICBpZiAoIHBtdV9wYXJhbXMu dmVyc2lvbi5tYWogIT0gWEVOUE1VX1ZFUl9NQUogKQo+ICsgICAgICAgICAgICByZXR1cm4gLUVJ TlZBTDsKPiArICAgIH0KPiArCj4gKyAgICBzd2l0Y2ggKCBvcCApCj4gKyAgICB7Cj4gKyAgICBj YXNlIFhFTlBNVV9tb2RlX3NldDoKPiArICAgIHsKPiArICAgICAgICBpZiAoIChwbXVfcGFyYW1z LnZhbCAmIH4oWEVOUE1VX01PREVfU0VMRiB8IFhFTlBNVV9NT0RFX0hWKSkgfHwKPiArICAgICAg ICAgICAgIChod2VpZ2h0NjQocG11X3BhcmFtcy52YWwpID4gMSkgKQo+ICsgICAgICAgICAgICBy ZXR1cm4gLUVJTlZBTDsKPiArCj4gKyAgICAgICAgLyogMzItYml0IGRvbTAgY2FuIG9ubHkgc2Ft cGxlIGl0c2VsZi4gKi8KPiArICAgICAgICBpZiAoIGlzX3B2XzMyYml0X3ZjcHUoY3VycmVudCkg JiYgKHBtdV9wYXJhbXMudmFsICYgWEVOUE1VX01PREVfSFYpICkKPiArICAgICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7Cj4gKwo+ICsgICAgICAgIHNwaW5fbG9jaygmdnBtdV9sb2NrKTsKPiArCj4g KyAgICAgICAgLyoKPiArICAgICAgICAgKiBXZSBjYW4gYWx3YXlzIHNhZmVseSBzd2l0Y2ggYmV0 d2VlbiBYRU5QTVVfTU9ERV9TRUxGIGFuZAo+ICsgICAgICAgICAqIFhFTlBNVV9NT0RFX0hWIHdo aWxlIG90aGVyIFZQTVVzIGFyZSBhY3RpdmUuCj4gKyAgICAgICAgICovCj4gKyAgICAgICAgaWYg KCAodnBtdV9jb3VudCA9PSAwKSB8fCAodnBtdV9tb2RlID09IHBtdV9wYXJhbXMudmFsKSB8fAo+ ICsgICAgICAgICAgICAgKCh2cG11X21vZGUgXiBwbXVfcGFyYW1zLnZhbCkgPT0KPiArICAgICAg ICAgICAgICAoWEVOUE1VX01PREVfU0VMRiB8IFhFTlBNVV9NT0RFX0hWKSkgKQo+ICsgICAgICAg ICAgICB2cG11X21vZGUgPSBwbXVfcGFyYW1zLnZhbDsKPiArICAgICAgICBlbHNlCj4gKyAgICAg ICAgewo+ICsgICAgICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgIlZQTVU6IENhbm5vdCBj aGFuZ2UgbW9kZSB3aGlsZSIKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIg YWN0aXZlIFZQTVVzIGV4aXN0XG4iKTsKPiArICAgICAgICAgICAgcmV0ID0gLUVCVVNZOwo+ICsg ICAgICAgIH0KPiArCj4gKyAgICAgICAgc3Bpbl91bmxvY2soJnZwbXVfbG9jayk7Cj4gKwo+ICsg ICAgICAgIGJyZWFrOwo+ICsgICAgfQo+ICsKPiArICAgIGNhc2UgWEVOUE1VX21vZGVfZ2V0Ogo+ ICsgICAgICAgIG1lbXNldCgmcG11X3BhcmFtcywgMCwgc2l6ZW9mKHBtdV9wYXJhbXMpKTsKPiAr ICAgICAgICBwbXVfcGFyYW1zLnZhbCA9IHZwbXVfbW9kZTsKPiArCj4gKyAgICAgICAgcG11X3Bh cmFtcy52ZXJzaW9uLm1haiA9IFhFTlBNVV9WRVJfTUFKOwo+ICsgICAgICAgIHBtdV9wYXJhbXMu dmVyc2lvbi5taW4gPSBYRU5QTVVfVkVSX01JTjsKPiArCj4gKyAgICAgICAgaWYgKCBjb3B5X3Rv X2d1ZXN0KGFyZywgJnBtdV9wYXJhbXMsIDEpICkKPiArICAgICAgICAgICAgcmV0dXJuIC1FRkFV TFQ7Cj4gKwo+ICsgICAgICAgIGJyZWFrOwo+ICsKPiArICAgIGNhc2UgWEVOUE1VX2ZlYXR1cmVf c2V0Ogo+ICsgICAgICAgIGlmICggcG11X3BhcmFtcy52YWwgJiB+WEVOUE1VX0ZFQVRVUkVfSU5U RUxfQlRTICkKPiArICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsgICAgICAgIHNw aW5fbG9jaygmdnBtdV9sb2NrKTsKPiArCj4gKyAgICAgICAgaWYgKCB2cG11X2NvdW50ID09IDAg KQo+ICsgICAgICAgICAgICB2cG11X2ZlYXR1cmVzID0gcG11X3BhcmFtcy52YWw7Cj4gKyAgICAg ICAgZWxzZQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5H ICJWUE1VOiBDYW5ub3QgY2hhbmdlIGZlYXR1cmVzIHdoaWxlIgo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIiBhY3RpdmUgVlBNVXMgZXhpc3RcbiIpOwo+ICsgICAgICAgICAg ICByZXQgPSAtRUJVU1k7Cj4gKyAgICAgICAgfQo+ICsKPiArICAgICAgICBzcGluX3VubG9jaygm dnBtdV9sb2NrKTsKPiArCj4gKyAgICAgICAgYnJlYWs7Cj4gKwo+ICsgICAgY2FzZSBYRU5QTVVf ZmVhdHVyZV9nZXQ6CgptZW1zZXQoJnBtdV9wYXJhbXMsIDAsIHNpemVvZihwbXVfcGFyYW1zKSk7 ICA/Cgo+ICsgICAgICAgIHBtdV9wYXJhbXMudmFsID0gdnBtdV9mZWF0dXJlczsKPiArICAgICAg ICBpZiAoIGNvcHlfZmllbGRfdG9fZ3Vlc3QoYXJnLCAmcG11X3BhcmFtcywgdmFsKSApCj4gKyAg ICAgICAgICAgIHJldHVybiAtRUZBVUxUOwo+ICsKPiArICAgICAgICBicmVhazsKPiArCj4gKyAg ICBkZWZhdWx0Ogo+ICsgICAgICAgIHJldCA9IC1FSU5WQUw7Cj4gKyAgICB9Cj4gKwo+ICsgICAg cmV0dXJuIHJldDsKPiArfQo+ICsKPiAgc3RhdGljIGludCBfX2luaXQgdnBtdV9pbml0KHZvaWQp Cj4gIHsKPiAgICAgIC8qIE5NSSB3YXRjaGRvZyB1c2VzIExWVFBDIGFuZCBIVyBjb3VudGVyICov Cj4gQEAgLTMxNiw2ICs0NTYsNyBAQCBzdGF0aWMgaW50IF9faW5pdCB2cG11X2luaXQodm9pZCkK PiAgICAgIHsKPiAgICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgIk5NSSB3YXRjaGRvZyBp cyBlbmFibGVkLiBUdXJuaW5nIFZQTVUgb2ZmLlxuIik7Cj4gICAgICAgICAgb3B0X3ZwbXVfZW5h YmxlZCA9IDA7Cj4gKyAgICAgICAgdnBtdV9tb2RlID0gWEVOUE1VX01PREVfT0ZGOwoKTWF5YmUg bm90IG5lZWRlZCBiZWNhdXNlIG9mIHRoZSBzdGF0aWMgaW5pdGlhbGl6aW5nPwoKRGlldG1hci4K Cj4gICAgICB9Cj4gIAo+ICAgICAgcmV0dXJuIDA7Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni94ODZfNjQvY29tcGF0L2VudHJ5LlMgYi94ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBhdC9lbnRy eS5TCj4gaW5kZXggNWIwYWY2MS4uNzY5MWE3OSAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94ODYv eDg2XzY0L2NvbXBhdC9lbnRyeS5TCj4gKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9jb21wYXQv ZW50cnkuUwo+IEBAIC00MTcsNiArNDE3LDggQEAgRU5UUlkoY29tcGF0X2h5cGVyY2FsbF90YWJs ZSkKPiAgICAgICAgICAucXVhZCBkb19kb21jdGwKPiAgICAgICAgICAucXVhZCBjb21wYXRfa2V4 ZWNfb3AKPiAgICAgICAgICAucXVhZCBkb190bWVtX29wCj4gKyAgICAgICAgLnF1YWQgZG9fbmlf aHlwZXJjYWxsICAgICAgICAgICAvKiByZXNlcnZlZCBmb3IgWGVuQ2xpZW50ICovCj4gKyAgICAg ICAgLnF1YWQgZG9feGVucG11X29wICAgICAgICAgICAgICAvKiA0MCAqLwo+ICAgICAgICAgIC5y ZXB0IF9fSFlQRVJWSVNPUl9hcmNoXzAtKCguLWNvbXBhdF9oeXBlcmNhbGxfdGFibGUpLzgpCj4g ICAgICAgICAgLnF1YWQgY29tcGF0X25pX2h5cGVyY2FsbAo+ICAgICAgICAgIC5lbmRyCj4gQEAg LTQ2Niw2ICs0NjgsOCBAQCBFTlRSWShjb21wYXRfaHlwZXJjYWxsX2FyZ3NfdGFibGUpCj4gICAg ICAgICAgLmJ5dGUgMSAvKiBkb19kb21jdGwgICAgICAgICAgICAgICAgKi8KPiAgICAgICAgICAu Ynl0ZSAyIC8qIGNvbXBhdF9rZXhlY19vcCAgICAgICAgICAqLwo+ICAgICAgICAgIC5ieXRlIDEg LyogZG9fdG1lbV9vcCAgICAgICAgICAgICAgICovCj4gKyAgICAgICAgLmJ5dGUgMCAvKiByZXNl cnZlZCBmb3IgWGVuQ2xpZW50ICAgKi8KPiArICAgICAgICAuYnl0ZSAyIC8qIGRvX3hlbnBtdV9v cCAgICAgICAgICAgICAqLyAgLyogNDAgKi8KPiAgICAgICAgICAucmVwdCBfX0hZUEVSVklTT1Jf YXJjaF8wLSguLWNvbXBhdF9oeXBlcmNhbGxfYXJnc190YWJsZSkKPiAgICAgICAgICAuYnl0ZSAw IC8qIGNvbXBhdF9uaV9oeXBlcmNhbGwgICAgICAqLwo+ICAgICAgICAgIC5lbmRyCj4gZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvZW50cnkuUyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQv ZW50cnkuUwo+IGluZGV4IDJkMjVkNTcuLjQwM2U5N2MgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gv eDg2L3g4Nl82NC9lbnRyeS5TCj4gKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TCj4g QEAgLTc2NCw2ICs3NjQsOCBAQCBFTlRSWShoeXBlcmNhbGxfdGFibGUpCj4gICAgICAgICAgLnF1 YWQgZG9fZG9tY3RsCj4gICAgICAgICAgLnF1YWQgZG9fa2V4ZWNfb3AKPiAgICAgICAgICAucXVh ZCBkb190bWVtX29wCj4gKyAgICAgICAgLnF1YWQgZG9fbmlfaHlwZXJjYWxsICAgICAgIC8qIHJl c2VydmVkIGZvciBYZW5DbGllbnQgKi8KPiArICAgICAgICAucXVhZCBkb194ZW5wbXVfb3AgICAg ICAgICAgLyogNDAgKi8KPiAgICAgICAgICAucmVwdCBfX0hZUEVSVklTT1JfYXJjaF8wLSgoLi1o eXBlcmNhbGxfdGFibGUpLzgpCj4gICAgICAgICAgLnF1YWQgZG9fbmlfaHlwZXJjYWxsCj4gICAg ICAgICAgLmVuZHIKPiBAQCAtODEzLDYgKzgxNSw4IEBAIEVOVFJZKGh5cGVyY2FsbF9hcmdzX3Rh YmxlKQo+ICAgICAgICAgIC5ieXRlIDEgLyogZG9fZG9tY3RsICAgICAgICAgICAgKi8KPiAgICAg ICAgICAuYnl0ZSAyIC8qIGRvX2tleGVjICAgICAgICAgICAgICovCj4gICAgICAgICAgLmJ5dGUg MSAvKiBkb190bWVtX29wICAgICAgICAgICAqLwo+ICsgICAgICAgIC5ieXRlIDAgLyogcmVzZXJ2 ZWQgZm9yIFhlbkNsaWVudCAqLwo+ICsgICAgICAgIC5ieXRlIDIgLyogZG9feGVucG11X29wICAg ICAgICAgKi8gIC8qIDQwICovCj4gICAgICAgICAgLnJlcHQgX19IWVBFUlZJU09SX2FyY2hfMC0o Li1oeXBlcmNhbGxfYXJnc190YWJsZSkKPiAgICAgICAgICAuYnl0ZSAwIC8qIGRvX25pX2h5cGVy Y2FsbCAgICAgICovCj4gICAgICAgICAgLmVuZHIKPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv YXNtLXg4Ni9odm0vdnBtdS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdnBtdS5oCj4gaW5k ZXggODJiZmEwZS4uODhmZmMxOSAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2 bS92cG11LmgKPiArKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92cG11LmgKPiBAQCAtMjQs MTMgKzI0LDYgQEAKPiAgCj4gICNpbmNsdWRlIDxwdWJsaWMvcG11Lmg+Cj4gIAo+IC0vKgo+IC0g KiBGbGFnIGJpdHMgZ2l2ZW4gYXMgYSBzdHJpbmcgb24gdGhlIGh5cGVydmlzb3IgYm9vdCBwYXJh bWV0ZXIgJ3ZwbXUnLgo+IC0gKiBTZWUgYXJjaC94ODYvaHZtL3ZwbXUuYy4KPiAtICovCj4gLSNk ZWZpbmUgVlBNVV9CT09UX0VOQUJMRUQgMHgxICAgIC8qIHZwbXUgZ2VuZXJhbGx5IGVuYWJsZWQu ICovCj4gLSNkZWZpbmUgVlBNVV9CT09UX0JUUyAgICAgMHgyICAgIC8qIEludGVsIEJUUyBmZWF0 dXJlIHdhbnRlZC4gKi8KPiAtCj4gICNkZWZpbmUgdmNwdV92cG11KHZjcHUpICAgKCYodmNwdSkt PmFyY2gudnBtdSkKPiAgI2RlZmluZSB2cG11X3ZjcHUodnBtdSkgICBjb250YWluZXJfb2YoKHZw bXUpLCBzdHJ1Y3QgdmNwdSwgYXJjaC52cG11KQo+ICAKPiBAQCAtNTksOCArNTIsOCBAQCBzdHJ1 Y3QgYXJjaF92cG11X29wcyB7Cj4gICAgICB2b2lkICgqYXJjaF92cG11X2R1bXApKGNvbnN0IHN0 cnVjdCB2Y3B1ICopOwo+ICB9Owo+ICAKPiAtaW50IHZteF92cG11X2luaXRpYWxpc2Uoc3RydWN0 IHZjcHUgKiwgdW5zaWduZWQgaW50IGZsYWdzKTsKPiAtaW50IHN2bV92cG11X2luaXRpYWxpc2Uo c3RydWN0IHZjcHUgKiwgdW5zaWduZWQgaW50IGZsYWdzKTsKPiAraW50IHZteF92cG11X2luaXRp YWxpc2Uoc3RydWN0IHZjcHUgKik7Cj4gK2ludCBzdm1fdnBtdV9pbml0aWFsaXNlKHN0cnVjdCB2 Y3B1ICopOwo+ICAKPiAgc3RydWN0IHZwbXVfc3RydWN0IHsKPiAgICAgIHUzMiBmbGFnczsKPiBA QCAtMTE2LDUgKzEwOSwyMSBAQCB2b2lkIHZwbXVfZHVtcChzdHJ1Y3QgdmNwdSAqdik7Cj4gIGV4 dGVybiBpbnQgYWNxdWlyZV9wbXVfb3duZXJzaGlwKGludCBwbXVfb3duZXJzaGlwKTsKPiAgZXh0 ZXJuIHZvaWQgcmVsZWFzZV9wbXVfb3duZXJzaGlwKGludCBwbXVfb3duZXJzaGlwKTsKPiAgCj4g K2V4dGVybiB1bnNpZ25lZCBpbnQgdnBtdV9tb2RlOwo+ICtleHRlcm4gdW5zaWduZWQgaW50IHZw bXVfZmVhdHVyZXM7Cj4gKwo+ICsvKiBDb250ZXh0IHN3aXRjaCAqLwo+ICtzdGF0aWMgaW5saW5l IHZvaWQgdnBtdV9zd2l0Y2hfZnJvbShzdHJ1Y3QgdmNwdSAqcHJldikKPiArewo+ICsgICAgaWYg KCB2cG11X21vZGUgJiAoWEVOUE1VX01PREVfU0VMRiB8IFhFTlBNVV9NT0RFX0hWKSApCj4gKyAg ICAgICAgdnBtdV9zYXZlKHByZXYpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHZvaWQgdnBt dV9zd2l0Y2hfdG8oc3RydWN0IHZjcHUgKm5leHQpCj4gK3sKPiArICAgIGlmICggdnBtdV9tb2Rl ICYgKFhFTlBNVV9NT0RFX1NFTEYgfCBYRU5QTVVfTU9ERV9IVikgKQo+ICsgICAgICAgIHZwbXVf bG9hZChuZXh0KTsKPiArfQo+ICsKPiAgI2VuZGlmIC8qIF9fQVNNX1g4Nl9IVk1fVlBNVV9IXyov Cj4gIAo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvcG11LmggYi94ZW4vaW5jbHVk ZS9wdWJsaWMvcG11LmgKPiBpbmRleCBmOTcxMDZkLi42NmNjNDk0IDEwMDY0NAo+IC0tLSBhL3hl bi9pbmNsdWRlL3B1YmxpYy9wbXUuaAo+ICsrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9wbXUuaAo+ IEBAIC0xMyw2ICsxMyw1MSBAQAo+ICAjZGVmaW5lIFhFTlBNVV9WRVJfTUFKICAgIDAKPiAgI2Rl ZmluZSBYRU5QTVVfVkVSX01JTiAgICAxCj4gIAo+ICsvKgo+ICsgKiBgIGVudW0gbmVnX2Vycm5v dmFsCj4gKyAqIGAgSFlQRVJWSVNPUl94ZW5wbXVfb3AoZW51bSB4ZW5wbXVfb3AgY21kLCBzdHJ1 Y3QgeGVucG11X3BhcmFtcyAqYXJncyk7Cj4gKyAqCj4gKyAqIEBjbWQgID09IFhFTlBNVV8qIChQ TVUgb3BlcmF0aW9uKQo+ICsgKiBAYXJncyA9PSBzdHJ1Y3QgeGVucG11X3BhcmFtcwo+ICsgKi8K PiArLyogYCBlbnVtIHhlbnBtdV9vcCB7ICovCj4gKyNkZWZpbmUgWEVOUE1VX21vZGVfZ2V0ICAg ICAgICAwIC8qIEFsc28gdXNlZCBmb3IgZ2V0dGluZyBQTVUgdmVyc2lvbiAqLwo+ICsjZGVmaW5l IFhFTlBNVV9tb2RlX3NldCAgICAgICAgMQo+ICsjZGVmaW5lIFhFTlBNVV9mZWF0dXJlX2dldCAg ICAgMgo+ICsjZGVmaW5lIFhFTlBNVV9mZWF0dXJlX3NldCAgICAgMwo+ICsvKiBgIH0gKi8KPiAr Cj4gKy8qIFBhcmFtZXRlcnMgc3RydWN0dXJlIGZvciBIWVBFUlZJU09SX3hlbnBtdV9vcCBjYWxs ICovCj4gK3N0cnVjdCB4ZW5fcG11X3BhcmFtcyB7Cj4gKyAgICAvKiBJTi9PVVQgcGFyYW1ldGVy cyAqLwo+ICsgICAgc3RydWN0IHsKPiArICAgICAgICB1aW50MzJfdCBtYWo7Cj4gKyAgICAgICAg dWludDMyX3QgbWluOwo+ICsgICAgfSB2ZXJzaW9uOwo+ICsgICAgdWludDY0X3QgdmFsOwo+ICsK PiArICAgIC8qIElOIHBhcmFtZXRlcnMgKi8KPiArICAgIHVpbnQzMl90IHZjcHU7Cj4gKyAgICB1 aW50MzJfdCBwYWQ7Cj4gK307Cj4gK3R5cGVkZWYgc3RydWN0IHhlbl9wbXVfcGFyYW1zIHhlbl9w bXVfcGFyYW1zX3Q7Cj4gK0RFRklORV9YRU5fR1VFU1RfSEFORExFKHhlbl9wbXVfcGFyYW1zX3Qp Owo+ICsKPiArLyogUE1VIG1vZGVzOgo+ICsgKiAtIFhFTlBNVV9NT0RFX09GRjogICBObyBQTVUg dmlydHVhbGl6YXRpb24KPiArICogLSBYRU5QTVVfTU9ERV9TRUxGOiAgR3Vlc3RzIGNhbiBwcm9m aWxlIHRoZW1zZWx2ZXMKPiArICogLSBYRU5QTVVfTU9ERV9IVjogICAgR3Vlc3RzIGNhbiBwcm9m aWxlIHRoZW1zZWx2ZXMsIGRvbTAgcHJvZmlsZXMKPiArICogICAgICAgICAgICAgICAgICAgICAg aXRzZWxmIGFuZCBYZW4KPiArICovCj4gKyNkZWZpbmUgWEVOUE1VX01PREVfT0ZGICAgICAgICAg ICAwCj4gKyNkZWZpbmUgWEVOUE1VX01PREVfU0VMRiAgICAgICAgICAoMTw8MCkKPiArI2RlZmlu ZSBYRU5QTVVfTU9ERV9IViAgICAgICAgICAgICgxPDwxKQo+ICsKPiArLyoKPiArICogUE1VIGZl YXR1cmVzOgo+ICsgKiAtIFhFTlBNVV9GRUFUVVJFX0lOVEVMX0JUUzogSW50ZWwgQlRTIHN1cHBv cnQgKGlnbm9yZWQgb24gQU1EKQo+ICsgKi8KPiArI2RlZmluZSBYRU5QTVVfRkVBVFVSRV9JTlRF TF9CVFMgIDEKPiAgCj4gIC8qIFNoYXJlZCBiZXR3ZWVuIGh5cGVydmlzb3IgYW5kIFBWIGRvbWFp biAqLwo+ICBzdHJ1Y3QgeGVuX3BtdV9kYXRhIHsKPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv cHVibGljL3hlbi5oIGIveGVuL2luY2x1ZGUvcHVibGljL3hlbi5oCj4gaW5kZXggMzcwM2MzOS4u MGRkM2M5NyAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmgKPiArKysgYi94 ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmgKPiBAQCAtMTAxLDYgKzEwMSw3IEBAIERFRklORV9YRU5f R1VFU1RfSEFORExFKHhlbl91bG9uZ190KTsKPiAgI2RlZmluZSBfX0hZUEVSVklTT1Jfa2V4ZWNf b3AgICAgICAgICAgICAgMzcKPiAgI2RlZmluZSBfX0hZUEVSVklTT1JfdG1lbV9vcCAgICAgICAg ICAgICAgMzgKPiAgI2RlZmluZSBfX0hZUEVSVklTT1JfeGNfcmVzZXJ2ZWRfb3AgICAgICAgMzkg LyogcmVzZXJ2ZWQgZm9yIFhlbkNsaWVudCAqLwo+ICsjZGVmaW5lIF9fSFlQRVJWSVNPUl94ZW5w bXVfb3AgICAgICAgICAgICA0MAo+ICAKPiAgLyogQXJjaGl0ZWN0dXJlLXNwZWNpZmljIGh5cGVy Y2FsbCBkZWZpbml0aW9ucy4gKi8KPiAgI2RlZmluZSBfX0hZUEVSVklTT1JfYXJjaF8wICAgICAg ICAgICAgICAgNDgKPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2h5cGVyY2FsbC5oIGIv eGVuL2luY2x1ZGUveGVuL2h5cGVyY2FsbC5oCj4gaW5kZXggZWRhOGEzNi4uZWY2NjVkYiAxMDA2 NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS94ZW4vaHlwZXJjYWxsLmgKPiArKysgYi94ZW4vaW5jbHVk ZS94ZW4vaHlwZXJjYWxsLmgKPiBAQCAtMTQsNiArMTQsNyBAQAo+ICAjaW5jbHVkZSA8cHVibGlj L2V2ZW50X2NoYW5uZWwuaD4KPiAgI2luY2x1ZGUgPHB1YmxpYy90bWVtLmg+Cj4gICNpbmNsdWRl IDxwdWJsaWMvdmVyc2lvbi5oPgo+ICsjaW5jbHVkZSA8cHVibGljL3BtdS5oPgo+ICAjaW5jbHVk ZSA8YXNtL2h5cGVyY2FsbC5oPgo+ICAjaW5jbHVkZSA8eHNtL3hzbS5oPgo+ICAKPiBAQCAtMTQ0 LDYgKzE0NSw5IEBAIGRvX3RtZW1fb3AoCj4gIGV4dGVybiBsb25nCj4gIGRvX3hlbm9wcm9mX29w KGludCBvcCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpOwo+ICAKPiArZXh0ZXJu IGxvbmcKPiArZG9feGVucG11X29wKHVuc2lnbmVkIGludCBvcCwgWEVOX0dVRVNUX0hBTkRMRV9Q QVJBTSh4ZW5fcG11X3BhcmFtc190KSBhcmcpOwo+ICsKPiAgI2lmZGVmIENPTkZJR19DT01QQVQK PiAgCj4gIGV4dGVybiBpbnQKPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGxhdC5sc3QgYi94 ZW4vaW5jbHVkZS94bGF0LmxzdAo+IGluZGV4IDk0ZWVkYWQuLjE5YWI1ZjcgMTAwNjQ0Cj4gLS0t IGEveGVuL2luY2x1ZGUveGxhdC5sc3QKPiArKysgYi94ZW4vaW5jbHVkZS94bGF0LmxzdAo+IEBA IC05Nyw2ICs5Nyw3IEBACj4gID8JeGVucGZfcGNwdWluZm8JCQlwbGF0Zm9ybS5oCj4gID8JeGVu cGZfcGNwdV92ZXJzaW9uCQlwbGF0Zm9ybS5oCj4gID8JeGVucGZfcmVzb3VyY2VfZW50cnkJCXBs YXRmb3JtLmgKPiArPwlwbXVfcGFyYW1zCQkJcG11LmgKPiAgIQlzY2hlZF9wb2xsCQkJc2NoZWQu aAo+ICA/CXNjaGVkX3JlbW90ZV9zaHV0ZG93bgkJc2NoZWQuaAo+ICA/CXNjaGVkX3NodXRkb3du CQkJc2NoZWQuaAo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaCBiL3hlbi9p bmNsdWRlL3hzbS9kdW1teS5oCj4gaW5kZXggZjIwZTg5Yy4uYzYzNzQ1NCAxMDA2NDQKPiAtLS0g YS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaAo+ICsrKyBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5o Cj4gQEAgLTY1NSw0ICs2NTUsMTkgQEAgc3RhdGljIFhTTV9JTkxJTkUgaW50IHhzbV9pb3BvcnRf bWFwcGluZyhYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgdWludDMKPiAgICAgIHJl dHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOwo+ICB9 Cj4gIAo+ICtzdGF0aWMgWFNNX0lOTElORSBpbnQgeHNtX3BtdV9vcCAoWFNNX0RFRkFVTFRfQVJH IHN0cnVjdCBkb21haW4gKmQsIGludCBvcCkKPiArewo+ICsgICAgWFNNX0FTU0VSVF9BQ1RJT04o WFNNX09USEVSKTsKPiArICAgIHN3aXRjaCAoIG9wICkKPiArICAgIHsKPiArICAgIGNhc2UgWEVO UE1VX21vZGVfc2V0Ogo+ICsgICAgY2FzZSBYRU5QTVVfbW9kZV9nZXQ6Cj4gKyAgICBjYXNlIFhF TlBNVV9mZWF0dXJlX3NldDoKPiArICAgIGNhc2UgWEVOUE1VX2ZlYXR1cmVfZ2V0Ogo+ICsgICAg ICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oWFNNX1BSSVYsIGQsIGN1cnJlbnQtPmRvbWFp bik7Cj4gKyAgICBkZWZhdWx0Ogo+ICsgICAgICAgIHJldHVybiAtRVBFUk07Cj4gKyAgICB9Cj4g K30KPiArCj4gICNlbmRpZiAvKiBDT05GSUdfWDg2ICovCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL3hzbS94c20uaCBiL3hlbi9pbmNsdWRlL3hzbS94c20uaAo+IGluZGV4IDRjZTA4OWYuLjkw ZWRiYjEgMTAwNjQ0Cj4gLS0tIGEveGVuL2luY2x1ZGUveHNtL3hzbS5oCj4gKysrIGIveGVuL2lu Y2x1ZGUveHNtL3hzbS5oCj4gQEAgLTE3Myw2ICsxNzMsNyBAQCBzdHJ1Y3QgeHNtX29wZXJhdGlv bnMgewo+ICAgICAgaW50ICgqdW5iaW5kX3B0X2lycSkgKHN0cnVjdCBkb21haW4gKmQsIHN0cnVj dCB4ZW5fZG9tY3RsX2JpbmRfcHRfaXJxICpiaW5kKTsKPiAgICAgIGludCAoKmlvcG9ydF9wZXJt aXNzaW9uKSAoc3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3QgcywgdWludDMyX3QgZSwgdWludDhf dCBhbGxvdyk7Cj4gICAgICBpbnQgKCppb3BvcnRfbWFwcGluZykgKHN0cnVjdCBkb21haW4gKmQs IHVpbnQzMl90IHMsIHVpbnQzMl90IGUsIHVpbnQ4X3QgYWxsb3cpOwo+ICsgICAgaW50ICgqcG11 X29wKSAoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IG9wKTsKPiAgI2VuZGlmCj4gIH07 Cj4gIAo+IEBAIC02NjUsNiArNjY2LDExIEBAIHN0YXRpYyBpbmxpbmUgaW50IHhzbV9pb3BvcnRf bWFwcGluZyAoeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQsIHVpbnQzCj4gICAg ICByZXR1cm4geHNtX29wcy0+aW9wb3J0X21hcHBpbmcoZCwgcywgZSwgYWxsb3cpOwo+ICB9Cj4g IAo+ICtzdGF0aWMgaW5saW5lIGludCB4c21fcG11X29wICh4c21fZGVmYXVsdF90IGRlZiwgc3Ry dWN0IGRvbWFpbiAqZCwgaW50IG9wKQo+ICt7Cj4gKyAgICByZXR1cm4geHNtX29wcy0+cG11X29w KGQsIG9wKTsKPiArfQo+ICsKPiAgI2VuZGlmIC8qIENPTkZJR19YODYgKi8KPiAgCj4gICNlbmRp ZiAvKiBYU01fTk9fV1JBUFBFUlMgKi8KPiBkaWZmIC0tZ2l0IGEveGVuL3hzbS9kdW1teS5jIGIv eGVuL3hzbS9kdW1teS5jCj4gaW5kZXggOGViMzA1MC4uOTRmMWNmMCAxMDA2NDQKPiAtLS0gYS94 ZW4veHNtL2R1bW15LmMKPiArKysgYi94ZW4veHNtL2R1bW15LmMKPiBAQCAtMTQ0LDUgKzE0NCw2 IEBAIHZvaWQgeHNtX2ZpeHVwX29wcyAoc3RydWN0IHhzbV9vcGVyYXRpb25zICpvcHMpCj4gICAg ICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHVuYmluZF9wdF9pcnEpOwo+ICAgICAgc2V0X3Rv X2R1bW15X2lmX251bGwob3BzLCBpb3BvcnRfcGVybWlzc2lvbik7Cj4gICAgICBzZXRfdG9fZHVt bXlfaWZfbnVsbChvcHMsIGlvcG9ydF9tYXBwaW5nKTsKPiArICAgIHNldF90b19kdW1teV9pZl9u dWxsKG9wcywgcG11X29wKTsKPiAgI2VuZGlmCj4gIH0KPiBkaWZmIC0tZ2l0IGEveGVuL3hzbS9m bGFzay9ob29rcy5jIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCj4gaW5kZXggYzY0MzFiNS4uOTgy ZTg3OSAxMDA2NDQKPiAtLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKPiArKysgYi94ZW4veHNt L2ZsYXNrL2hvb2tzLmMKPiBAQCAtMTUwNSw2ICsxNTA1LDIzIEBAIHN0YXRpYyBpbnQgZmxhc2tf dW5iaW5kX3B0X2lycSAoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHhlbl9kb21jdGxfYmluZF9w dF9pcnEKPiAgewo+ICAgICAgcmV0dXJuIGN1cnJlbnRfaGFzX3Blcm0oZCwgU0VDQ0xBU1NfUkVT T1VSQ0UsIFJFU09VUkNFX19SRU1PVkUpOwo+ICB9Cj4gKwo+ICtzdGF0aWMgaW50IGZsYXNrX3Bt dV9vcCAoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IG9wKQo+ICt7Cj4gKyAgICB1MzIg ZHNpZCA9IGRvbWFpbl9zaWQoZCk7Cj4gKwo+ICsgICAgc3dpdGNoICggb3AgKQo+ICsgICAgewo+ ICsgICAgY2FzZSBYRU5QTVVfbW9kZV9zZXQ6Cj4gKyAgICBjYXNlIFhFTlBNVV9tb2RlX2dldDoK PiArICAgIGNhc2UgWEVOUE1VX2ZlYXR1cmVfc2V0Ogo+ICsgICAgY2FzZSBYRU5QTVVfZmVhdHVy ZV9nZXQ6Cj4gKyAgICAgICAgcmV0dXJuIGF2Y19oYXNfcGVybShkc2lkLCBTRUNJTklUU0lEX1hF TiwgU0VDQ0xBU1NfWEVOMiwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhFTjJfX1BN VV9DVFJMLCBOVUxMKTsKPiArICAgIGRlZmF1bHQ6Cj4gKyAgICAgICAgcmV0dXJuIC1FUEVSTTsK PiArICAgIH0KPiArfQo+ICAjZW5kaWYgLyogQ09ORklHX1g4NiAqLwo+ICAKPiAgbG9uZyBkb19m bGFza19vcChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhzbV9vcF90KSB1X2ZsYXNrX29wKTsKPiBA QCAtMTYyNyw2ICsxNjQ0LDcgQEAgc3RhdGljIHN0cnVjdCB4c21fb3BlcmF0aW9ucyBmbGFza19v cHMgPSB7Cj4gICAgICAudW5iaW5kX3B0X2lycSA9IGZsYXNrX3VuYmluZF9wdF9pcnEsCj4gICAg ICAuaW9wb3J0X3Blcm1pc3Npb24gPSBmbGFza19pb3BvcnRfcGVybWlzc2lvbiwKPiAgICAgIC5p b3BvcnRfbWFwcGluZyA9IGZsYXNrX2lvcG9ydF9tYXBwaW5nLAo+ICsgICAgLnBtdV9vcCA9IGZs YXNrX3BtdV9vcCwKPiAgI2VuZGlmCj4gIH07Cj4gIAo+IGRpZmYgLS1naXQgYS94ZW4veHNtL2Zs YXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyBiL3hlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192 ZWN0b3JzCj4gaW5kZXggM2E5NzU3Ny4uNjI2ODUwZCAxMDA2NDQKPiAtLS0gYS94ZW4veHNtL2Zs YXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycwo+ICsrKyBiL3hlbi94c20vZmxhc2svcG9saWN5L2Fj Y2Vzc192ZWN0b3JzCj4gQEAgLTg2LDYgKzg2LDggQEAgY2xhc3MgeGVuMgo+ICAgICAgcHNyX2Nt dF9vcAo+ICAjIFhFTlBGX2dldF9zeW1ib2wKPiAgICAgIGdldF9zeW1ib2wKPiArIyBQTVUgY29u dHJvbAo+ICsgICAgcG11X2N0cmwKPiAgfQo+ICAKPiAgIyBDbGFzc2VzIGRvbWFpbiBhbmQgZG9t YWluMiBjb25zaXN0IG9mIG9wZXJhdGlvbnMgdGhhdCBhIGRvbWFpbiBwZXJmb3JtcyBvbgo+IAoK LS0gCkNvbXBhbnkgZGV0YWlsczogaHR0cDovL3RzLmZ1aml0c3UuY29tL2ltcHJpbnQuaHRtbAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9y Zy94ZW4tZGV2ZWwK