From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 1/8] drm/i915: Keep contexts pinned until after the next kernel context switch Date: Wed, 12 Jun 2019 17:09:49 +0300 Message-ID: <8736keao9e.fsf@gaia.fi.intel.com> References: <20190612093111.11684-1-chris@chris-wilson.co.uk> <20190612093111.11684-2-chris@chris-wilson.co.uk> <875zpb9bjn.fsf@gaia.fi.intel.com> <156034694995.5468.11180105549563398902@skylake-alporthouse-com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3F1A98862C for ; Wed, 12 Jun 2019 14:09:53 +0000 (UTC) In-Reply-To: <156034694995.5468.11180105549563398902@skylake-alporthouse-com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gUXVvdGlu ZyBNaWthIEt1b3BwYWxhICgyMDE5LTA2LTEyIDE0OjI5OjQ4KQo+PiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4gd3JpdGVzOgo+PiAKPj4gPiBXZSBuZWVkIHRvIGtlZXAg dGhlIGNvbnRleHQgaW1hZ2UgcGlubmVkIGluIG1lbW9yeSB1bnRpbCBhZnRlciB0aGUgR1BVCj4+ ID4gaGFzIGZpbmlzaGVkIHdyaXRpbmcgaW50byBpdC4gU2luY2UgaXQgY29udGludWVzIHRvIHdy aXRlIGFzIHdlIHNpZ25hbAo+PiA+IHRoZSBmaW5hbCBicmVhZGNydW1iLCB3ZSBuZWVkIHRvIGtl ZXAgaXQgcGlubmVkIHVudGlsIHRoZSByZXF1ZXN0IGFmdGVyCj4+ID4gaXQgaXMgY29tcGxldGUu IEN1cnJlbnRseSB3ZSBrbm93IHRoZSBvcmRlciBpbiB3aGljaCByZXF1ZXN0cyBleGVjdXRlIG9u Cj4+ID4gZWFjaCBlbmdpbmUsIGFuZCBzbyB0byByZW1vdmUgdGhhdCBwcmVzdW1wdGlvbiB3ZSBu ZWVkIHRvIGlkZW50aWZ5IGEKPj4gPiByZXF1ZXN0L2NvbnRleHQtc3dpdGNoIHdlIGtub3cgbXVz dCBvY2N1ciBhZnRlciBvdXIgY29tcGxldGlvbi4gQW55Cj4+ID4gcmVxdWVzdCBxdWV1ZWQgYWZ0 ZXIgdGhlIHNpZ25hbCBtdXN0IGltcGx5IGEgY29udGV4dCBzd2l0Y2gsIGZvcgo+PiA+IHNpbXBs aWNpdHkgd2UgdXNlIGEgZnJlc2ggcmVxdWVzdCBmcm9tIHRoZSBrZXJuZWwgY29udGV4dC4KPj4g Pgo+PiA+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgo+PiA+IC0tLQo+PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29u dGV4dC5jICAgfCAyNCArKy0tLS0KPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX2NvbnRleHQuaCAgIHwgIDEgLQo+PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkx NV9nZW1fcG0uYyAgICAgICAgfCAyMCArKysrLQo+PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9jb250ZXh0LmMgICAgICAgfCA4MCArKysrKysrKysrKysrKysrLS0tCj4+ID4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHQuaCAgICAgICB8ICAzICsKPj4gPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dF90eXBlcy5oIHwgIDYgKy0KPj4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lLmggICAgICAgIHwgIDIgLQo+ PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyAgICAgfCAyMyAr LS0tLS0KPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3BtLmMgICAg IHwgIDIgKwo+PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfdHlwZXMu aCAgfCAxMyArLS0KPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMgICAg ICAgICAgIHwgNjIgKystLS0tLS0tLS0tLS0KPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfcmluZ2J1ZmZlci5jICAgIHwgNDQgKy0tLS0tLS0tLQo+PiA+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9tb2NrX2VuZ2luZS5jICAgICAgICAgfCAxMSArLS0KPj4gPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9hY3RpdmUuYyAgICAgICAgICAgIHwgODAgKysrKysrKysrKysrKysr KysrLQo+PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5oICAgICAgICAgICAg fCAgNSArKwo+PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZV90eXBlcy5oICAg ICAgfCAgMyArCj4+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAg ICAgICB8ICA0IC0KPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMgICAg ICAgICAgIHwgMTUgLS0tLQo+PiA+ICAuLi4vZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2dl bV9kZXZpY2UuYyAgfCAgMSAtCj4+ID4gIDE5IGZpbGVzIGNoYW5nZWQsIDIxNCBpbnNlcnRpb25z KCspLCAxODUgZGVsZXRpb25zKC0pCj4+ID4KPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dl bS9pOTE1X2dlbV9jb250ZXh0LmMKPj4gPiBpbmRleCBjODZjYTlmMjE1MzIuLjYyMDAwNjBhZWYw NSAxMDA2NDQKPj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29u dGV4dC5jCj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRl eHQuYwo+PiA+IEBAIC02OTIsMTcgKzY5Miw2IEBAIGludCBpOTE1X2dlbV9jb250ZXh0c19pbml0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gPiAgICAgICByZXR1cm4gMDsK Pj4gPiAgfQo+PiA+ICAKPj4gPiAtdm9pZCBpOTE1X2dlbV9jb250ZXh0c19sb3N0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gPiAtewo+PiA+IC0gICAgIHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZTsKPj4gPiAtICAgICBlbnVtIGludGVsX2VuZ2luZV9pZCBpZDsK Pj4gPiAtCj4+ID4gLSAgICAgbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmRybS5zdHJ1 Y3RfbXV0ZXgpOwo+PiA+IC0KPj4gPiAtICAgICBmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZf cHJpdiwgaWQpCj4+ID4gLSAgICAgICAgICAgICBpbnRlbF9lbmdpbmVfbG9zdF9jb250ZXh0KGVu Z2luZSk7Cj4+ID4gLX0KPj4gPiAtCj4+ID4gIHZvaWQgaTkxNV9nZW1fY29udGV4dHNfZmluaShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPj4gPiAgewo+PiA+ICAgICAgIGxvY2tkZXBf YXNzZXJ0X2hlbGQoJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+PiA+IEBAIC0xMjAzLDEwICsx MTkyLDYgQEAgZ2VuOF9tb2RpZnlfcnBjcyhzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIHN0cnVj dCBpbnRlbF9zc2V1IHNzZXUpCj4+ID4gICAgICAgaWYgKHJldCkKPj4gPiAgICAgICAgICAgICAg IGdvdG8gb3V0X2FkZDsKPj4gPiAgCj4+ID4gLSAgICAgcmV0ID0gZ2VuOF9lbWl0X3JwY3NfY29u ZmlnKHJxLCBjZSwgc3NldSk7Cj4+ID4gLSAgICAgaWYgKHJldCkKPj4gPiAtICAgICAgICAgICAg IGdvdG8gb3V0X2FkZDsKPj4gPiAtCj4+ID4gICAgICAgLyoKPj4gPiAgICAgICAgKiBHdWFyYW50 ZWUgY29udGV4dCBpbWFnZSBhbmQgdGhlIHRpbWVsaW5lIHJlbWFpbnMgcGlubmVkIHVudGlsIHRo ZQo+PiA+ICAgICAgICAqIG1vZGlmeWluZyByZXF1ZXN0IGlzIHJldGlyZWQgYnkgc2V0dGluZyB0 aGUgY2UgYWN0aXZpdHkgdHJhY2tlci4KPj4gPiBAQCAtMTIxNCw5ICsxMTk5LDEyIEBAIGdlbjhf bW9kaWZ5X3JwY3Moc3RydWN0IGludGVsX2NvbnRleHQgKmNlLCBzdHJ1Y3QgaW50ZWxfc3NldSBz c2V1KQo+PiA+ICAgICAgICAqIEJ1dCB3ZSBvbmx5IG5lZWQgdG8gdGFrZSBvbmUgcGluIG9uIHRo ZSBhY2NvdW50IG9mIGl0LiBPciBpbiBvdGhlcgo+PiA+ICAgICAgICAqIHdvcmRzIHRyYW5zZmVy IHRoZSBwaW5uZWQgY2Ugb2JqZWN0IHRvIHRyYWNrZWQgYWN0aXZlIHJlcXVlc3QuCj4+ID4gICAg ICAgICovCj4+ID4gLSAgICAgaWYgKCFpOTE1X2FjdGl2ZV9yZXF1ZXN0X2lzc2V0KCZjZS0+YWN0 aXZlX3RyYWNrZXIpKQo+PiA+IC0gICAgICAgICAgICAgX19pbnRlbF9jb250ZXh0X3BpbihjZSk7 Cj4+ID4gLSAgICAgX19pOTE1X2FjdGl2ZV9yZXF1ZXN0X3NldCgmY2UtPmFjdGl2ZV90cmFja2Vy LCBycSk7Cj4+ID4gKyAgICAgR0VNX0JVR19PTihpOTE1X2FjdGl2ZV9pc19pZGxlKCZjZS0+YWN0 aXZlKSk7Cj4+ID4gKyAgICAgcmV0ID0gaTkxNV9hY3RpdmVfcmVmKCZjZS0+YWN0aXZlLCBycS0+ ZmVuY2UuY29udGV4dCwgcnEpOwo+PiAKPj4gCj4+IFdoeSB0aGUgcGxhY2UgdG8ga2VlcCB0aGUg Y29udGV4dCBhbGl2ZSBpcyB0aGlzIGZ1bmN0aW9uPwo+Cj4gVGhpcyBpcyBhIHNwZWNpYWwgY2Fz ZSB3aGVyZSB3ZSBoYXZlIG9uZSBjb250ZXh0ICh0aGUga2VybmVsIGNvbnRleHQpCj4gd3JpdGlu ZyBpbnRvIHRoZSBjb250ZXh0IHN0YXRlIG9iamVjdCBvZiBhbm90aGVyLiBUbyBrZWVwIHRoZSB0 YXJnZXQKPiBjb250ZXh0IHN0YXRlIHBpbm5lZCwgd2UgbWFyayB0aGUgZW50aXJlIGNvbnRleHQg YXMgYWN0aXZlLgo+ICAKPj4gSW4gb3RoZXIgd29yZHMsIGlmIHRoZSBzc2V1IHN0YXRlIGlzIG5v dCBjaGFuZ2VkLCB3ZSBiYWlsIG91dCBlYXJseQo+PiBhbmQgZG9uJ3Qgc2V0dXAgdGhlIHRyYWNr ZXIgYW5kIHRodXMgZmFpbCBpbiBwcm9taXNlIGZvciBrZWVwaW5nIGl0IGFsaXZlLgo+Cj4gQXMg d2UgZG9uJ3QgbmVlZCB0byBrZWVwIGl0IGFsaXZlIGZvciBhbiBhY2Nlc3MgdGhhdCBuZXZlciBo YXBwZW5lZC4KPgo+PiA+ICsgICAgIGlmIChyZXQpCj4+ID4gKyAgICAgICAgICAgICBnb3RvIG91 dF9hZGQ7Cj4+ID4gKwo+PiA+ICsgICAgIHJldCA9IGdlbjhfZW1pdF9ycGNzX2NvbmZpZyhycSwg Y2UsIHNzZXUpOwo+PiA+ICAKPj4gPiAgb3V0X2FkZDoKPj4gPiAgICAgICBpOTE1X3JlcXVlc3Rf YWRkKHJxKTsKPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX2NvbnRleHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9jb250ZXh0 LmgKPj4gPiBpbmRleCA2MzAzOTJjNzdlNDguLjk2OTFkZDA2MmY3MiAxMDA2NDQKPj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fY29udGV4dC5oCj4+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2NvbnRleHQuaAo+PiA+IEBAIC0xMzQs NyArMTM0LDYgQEAgc3RhdGljIGlubGluZSBib29sIGk5MTVfZ2VtX2NvbnRleHRfaXNfa2VybmVs KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCj4+ID4gIAo+PiA+ICAvKiBpOTE1X2dlbV9j b250ZXh0LmMgKi8KPj4gPiAgaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9jb250ZXh0c19pbml0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4+ID4gLXZvaWQgaTkxNV9nZW1f Y29udGV4dHNfbG9zdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+PiA+ICB2 b2lkIGk5MTVfZ2VtX2NvbnRleHRzX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKPj4gPiAgCj4+ID4gIGludCBpOTE1X2dlbV9jb250ZXh0X29wZW4oc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUsCj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9pOTE1X2dlbV9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Bt LmMKPj4gPiBpbmRleCBmNDBmMTNjMGI4YjcuLjU5YjZkNDViMTkzNiAxMDA2NDQKPj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcG0uYwo+PiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9wbS5jCj4+ID4gQEAgLTEwLDYgKzEwLDIyIEBA Cj4+ID4gICNpbmNsdWRlICJpOTE1X2Rydi5oIgo+PiA+ICAjaW5jbHVkZSAiaTkxNV9nbG9iYWxz LmgiCj4+ID4gIAo+PiA+ICtzdGF0aWMgdm9pZCBjYWxsX2lkbGVfYmFycmllcnMoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+PiA+ICt7Cj4+ID4gKyAgICAgc3RydWN0IGxsaXN0X25v ZGUgKm5vZGUsICpuZXh0Owo+PiA+ICsKPj4gPiArICAgICBsbGlzdF9mb3JfZWFjaF9zYWZlKG5v ZGUsIG5leHQsIGxsaXN0X2RlbF9hbGwoJmVuZ2luZS0+YmFycmllcl90YXNrcykpIHsKPj4gPiAr ICAgICAgICAgICAgIHN0cnVjdCBpOTE1X2FjdGl2ZV9yZXF1ZXN0ICphY3RpdmUgPQo+PiA+ICsg ICAgICAgICAgICAgICAgICAgICBjb250YWluZXJfb2YoKHN0cnVjdCBsaXN0X2hlYWQgKilub2Rl LAo+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW9mKCphY3RpdmUp LCBsaW5rKTsKPj4gPiArCj4+ID4gKyAgICAgICAgICAgICBJTklUX0xJU1RfSEVBRCgmYWN0aXZl LT5saW5rKTsKPj4gPiArICAgICAgICAgICAgIFJDVV9JTklUX1BPSU5URVIoYWN0aXZlLT5yZXF1 ZXN0LCBOVUxMKTsKPj4gPiArCj4+ID4gKyAgICAgICAgICAgICBhY3RpdmUtPnJldGlyZShhY3Rp dmUsIE5VTEwpOwo+PiA+ICsgICAgIH0KPj4gPiArfQo+PiA+ICsKPj4gPiAgc3RhdGljIHZvaWQg aTkxNV9nZW1fcGFyayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPj4gPiAgewo+PiA+ ICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKPj4gPiBAQCAtMTcsOCArMzMs MTAgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fcGFyayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSkKPj4gPiAgCj4+ID4gICAgICAgbG9ja2RlcF9hc3NlcnRfaGVsZCgmaTkxNS0+ZHJtLnN0 cnVjdF9tdXRleCk7Cj4+ID4gIAo+PiA+IC0gICAgIGZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5 MTUsIGlkKQo+PiA+ICsgICAgIGZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7Cj4+ ID4gKyAgICAgICAgICAgICBjYWxsX2lkbGVfYmFycmllcnMoZW5naW5lKTsgLyogY2xlYW51cCBh ZnRlciB3ZWRnaW5nICovCj4+ID4gICAgICAgICAgICAgICBpOTE1X2dlbV9iYXRjaF9wb29sX2Zp bmkoJmVuZ2luZS0+YmF0Y2hfcG9vbCk7Cj4+ID4gKyAgICAgfQo+PiA+ICAKPj4gPiAgICAgICBp OTE1X3RpbWVsaW5lc19wYXJrKGk5MTUpOwo+PiA+ICAgICAgIGk5MTVfdm1hX3BhcmtlZChpOTE1 KTsKPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4 dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5jCj4+ID4gaW5kZXgg Yzc4ZWMwYjU4ZTc3Li5jMTBlYjQ5MDQyNjQgMTAwNjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5jCj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3QvaW50ZWxfY29udGV4dC5jCj4+ID4gQEAgLTYxLDcgKzYxLDYgQEAgaW50IF9faW50ZWxf Y29udGV4dF9kb19waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQo+PiA+ICAKPj4gPiAgICAg ICAgICAgICAgIGk5MTVfZ2VtX2NvbnRleHRfZ2V0KGNlLT5nZW1fY29udGV4dCk7IC8qIGZvciBj dHgtPnBwZ3R0ICovCj4+ID4gIAo+PiA+IC0gICAgICAgICAgICAgaW50ZWxfY29udGV4dF9nZXQo Y2UpOwo+PiA+ICAgICAgICAgICAgICAgc21wX21iX19iZWZvcmVfYXRvbWljKCk7IC8qIGZsdXNo IHBpbiBiZWZvcmUgaXQgaXMgdmlzaWJsZSAqLwo+PiA+ICAgICAgIH0KPj4gPiAgCj4+ID4gQEAg LTg5LDIwICs4OCw0NSBAQCB2b2lkIGludGVsX2NvbnRleHRfdW5waW4oc3RydWN0IGludGVsX2Nv bnRleHQgKmNlKQo+PiA+ICAgICAgICAgICAgICAgY2UtPm9wcy0+dW5waW4oY2UpOwo+PiA+ICAK Pj4gPiAgICAgICAgICAgICAgIGk5MTVfZ2VtX2NvbnRleHRfcHV0KGNlLT5nZW1fY29udGV4dCk7 Cj4+ID4gLSAgICAgICAgICAgICBpbnRlbF9jb250ZXh0X3B1dChjZSk7Cj4+ID4gKyAgICAgICAg ICAgICBpbnRlbF9jb250ZXh0X2luYWN0aXZlKGNlKTsKPj4gPiAgICAgICB9Cj4+ID4gIAo+PiA+ ICAgICAgIG11dGV4X3VubG9jaygmY2UtPnBpbl9tdXRleCk7Cj4+ID4gICAgICAgaW50ZWxfY29u dGV4dF9wdXQoY2UpOwo+PiA+ICB9Cj4+ID4gIAo+PiA+IC1zdGF0aWMgdm9pZCBpbnRlbF9jb250 ZXh0X3JldGlyZShzdHJ1Y3QgaTkxNV9hY3RpdmVfcmVxdWVzdCAqYWN0aXZlLAo+PiA+IC0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPj4gPiAr c3RhdGljIGludCBfX2NvbnRleHRfcGluX3N0YXRlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCB1bnNp Z25lZCBsb25nIGZsYWdzKQo+PiA+ICB7Cj4+ID4gLSAgICAgc3RydWN0IGludGVsX2NvbnRleHQg KmNlID0KPj4gPiAtICAgICAgICAgICAgIGNvbnRhaW5lcl9vZihhY3RpdmUsIHR5cGVvZigqY2Up LCBhY3RpdmVfdHJhY2tlcik7Cj4+ID4gKyAgICAgaW50IGVycjsKPj4gPiAgCj4+ID4gLSAgICAg aW50ZWxfY29udGV4dF91bnBpbihjZSk7Cj4+ID4gKyAgICAgZXJyID0gaTkxNV92bWFfcGluKHZt YSwgMCwgMCwgZmxhZ3MgfCBQSU5fR0xPQkFMKTsKPj4gPiArICAgICBpZiAoZXJyKQo+PiA+ICsg ICAgICAgICAgICAgcmV0dXJuIGVycjsKPj4gPiArCj4+ID4gKyAgICAgLyoKPj4gPiArICAgICAg KiBBbmQgbWFyayBpdCBhcyBhIGdsb2JhbGx5IHBpbm5lZCBvYmplY3QgdG8gbGV0IHRoZSBzaHJp bmtlciBrbm93Cj4+ID4gKyAgICAgICogaXQgY2Fubm90IHJlY2xhaW0gdGhlIG9iamVjdCB1bnRp bCB3ZSByZWxlYXNlIGl0Lgo+PiA+ICsgICAgICAqLwo+PiA+ICsgICAgIHZtYS0+b2JqLT5waW5f Z2xvYmFsKys7Cj4+ID4gKyAgICAgdm1hLT5vYmotPm1tLmRpcnR5ID0gdHJ1ZTsKPj4gPiArCj4+ ID4gKyAgICAgcmV0dXJuIDA7Cj4+ID4gK30KPj4gPiArCj4+ID4gK3N0YXRpYyB2b2lkIF9fY29u dGV4dF91bnBpbl9zdGF0ZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKPj4gPiArewo+PiA+ICsgICAg IHZtYS0+b2JqLT5waW5fZ2xvYmFsLS07Cj4+ID4gKyAgICAgX19pOTE1X3ZtYV91bnBpbih2bWEp Owo+PiA+ICt9Cj4+ID4gKwo+PiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9jb250ZXh0X3JldGlyZShz dHJ1Y3QgaTkxNV9hY3RpdmUgKmFjdGl2ZSkKPj4gPiArewo+PiA+ICsgICAgIHN0cnVjdCBpbnRl bF9jb250ZXh0ICpjZSA9IGNvbnRhaW5lcl9vZihhY3RpdmUsIHR5cGVvZigqY2UpLCBhY3RpdmUp Owo+PiA+ICsKPj4gPiArICAgICBpZiAoY2UtPnN0YXRlKQo+PiA+ICsgICAgICAgICAgICAgX19j b250ZXh0X3VucGluX3N0YXRlKGNlLT5zdGF0ZSk7Cj4+ID4gKwo+PiA+ICsgICAgIGludGVsX2Nv bnRleHRfcHV0KGNlKTsKPj4gPiAgfQo+PiA+ICAKPj4gPiAgdm9pZAo+PiA+IEBAIC0xMjUsOCAr MTQ5LDQ2IEBAIGludGVsX2NvbnRleHRfaW5pdChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCj4+ ID4gIAo+PiA+ICAgICAgIG11dGV4X2luaXQoJmNlLT5waW5fbXV0ZXgpOwo+PiA+ICAKPj4gPiAt ICAgICBpOTE1X2FjdGl2ZV9yZXF1ZXN0X2luaXQoJmNlLT5hY3RpdmVfdHJhY2tlciwKPj4gPiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgaW50ZWxfY29udGV4dF9yZXRpcmUp Owo+PiA+ICsgICAgIGk5MTVfYWN0aXZlX2luaXQoY3R4LT5pOTE1LCAmY2UtPmFjdGl2ZSwgaW50 ZWxfY29udGV4dF9yZXRpcmUpOwo+PiA+ICt9Cj4+ID4gKwo+PiA+ICtpbnQgaW50ZWxfY29udGV4 dF9hY3RpdmUoc3RydWN0IGludGVsX2NvbnRleHQgKmNlLCB1bnNpZ25lZCBsb25nIGZsYWdzKQo+ PiAKPj4gCj4+IEkgY2FuIGRpZ2VzdCB0aGlzIGJ1dCB3YXMgbWlzc2luZyB0aGUgdmVyYiBpbiB0 aGlzIGFuZCB0aG91Z2h0Cj4+IGludGVsX2NvbnRleHRfYWN0aXZhdGV8ZGVhY3RpdmF0ZS4KPgo+ IFlvdSB3aWxsIG5ldmVyIG1ha2UgbWUgd3JpdGUgYWN0aXY4ISBPdGhlciB0aGFuIGluc2VydGlu ZyBtYXJrIG9yIG1ha2UsCj4gSSBkb24ndCBoYXZlIGEgYmV0dGVyIGlkZWEgYW5kIGhhdmUgZ3Jv d24gcXVpdGUgdXNlZCB0byBvdmVyIHRoZSBsYXN0Cj4gc2V2ZXJhbCBtb250aHMuIEkgdGhpbmsg dGhlIGludGVudCBoZXJlIGlzIHJlYXNvbmFibHkgY2xlYXIsIHRoaXMgaXMgdG8KPiBvcGVyYXRl IG9uIHRoZSBjZS0+YWN0aXZlLgo+CgptYXJrX2FjdGl2ZSB3YXMgYWxzbyBpbiBteSBtaW5kLgoK PiBNYXliZSwgaW50ZWxfY29udGV4dF9hY3RpdmVfYWNxdWlyZSgpIGFuZCBpbnRlbF9jb250ZXh0 X2FjdGl2ZV9yZWxlYXNlKCk/CgpPbiB5b3VyIG5vdGUgdGhhdCBpdCBpcyB0aGUgY2UtPmFjdGl2 ZSB3ZSBvcGVyYXRlIG9uLCBub3QgdGhlIGNvbnRleHQsCnRoZSBjdXJyZW50IG5hbWluZyBzdGFy dHMgdG8gZml0LiAKCj4KPj4gPiArewo+PiA+ICsgICAgIGludCBlcnI7Cj4+ID4gKwo+PiA+ICsg ICAgIGlmICghaTkxNV9hY3RpdmVfYWNxdWlyZSgmY2UtPmFjdGl2ZSkpCj4+ID4gKyAgICAgICAg ICAgICByZXR1cm4gMDsKPj4gPiArCj4+ID4gKyAgICAgaW50ZWxfY29udGV4dF9nZXQoY2UpOwo+ PiA+ICsKPj4gPiArICAgICBpZiAoIWNlLT5zdGF0ZSkKPj4gPiArICAgICAgICAgICAgIHJldHVy biAwOwo+PiA+ICsKPj4gPiArICAgICBlcnIgPSBfX2NvbnRleHRfcGluX3N0YXRlKGNlLT5zdGF0 ZSwgZmxhZ3MpOwo+PiA+ICsgICAgIGlmIChlcnIpIHsKPj4gPiArICAgICAgICAgICAgIGk5MTVf YWN0aXZlX2NhbmNlbCgmY2UtPmFjdGl2ZSk7Cj4+ID4gKyAgICAgICAgICAgICBpbnRlbF9jb250 ZXh0X3B1dChjZSk7Cj4+ID4gKyAgICAgICAgICAgICByZXR1cm4gZXJyOwo+PiA+ICsgICAgIH0K Pj4gPiArCj4+ID4gKyAgICAgLyogUHJlYWxsb2NhdGUgdHJhY2tpbmcgbm9kZXMgKi8KPj4gPiAr ICAgICBpZiAoIWk5MTVfZ2VtX2NvbnRleHRfaXNfa2VybmVsKGNlLT5nZW1fY29udGV4dCkpIHsK Pj4gPiArICAgICAgICAgICAgIGVyciA9IGk5MTVfYWN0aXZlX2FjcXVpcmVfcHJlYWxsb2NhdGVf YmFycmllcigmY2UtPmFjdGl2ZSwKPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZS0+ZW5naW5lKTsKPj4gPiArICAgICAgICAg ICAgIGlmIChlcnIpIHsKPj4gPiArICAgICAgICAgICAgICAgICAgICAgaTkxNV9hY3RpdmVfcmVs ZWFzZSgmY2UtPmFjdGl2ZSk7Cj4+ID4gKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBlcnI7 Cj4+ID4gKyAgICAgICAgICAgICB9Cj4+ID4gKyAgICAgfQo+PiA+ICsKPj4gPiArICAgICByZXR1 cm4gMDsKPj4gPiArfQo+PiA+ICsKPj4gPiArdm9pZCBpbnRlbF9jb250ZXh0X2luYWN0aXZlKHN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKPj4gPiArewo+PiA+ICsgICAgIC8qIE5vZGVzIHByZWFs bG9jYXRlZCBpbiBpbnRlbF9jb250ZXh0X2FjdGl2ZSgpICovCj4+ID4gKyAgICAgaTkxNV9hY3Rp dmVfYWNxdWlyZV9iYXJyaWVyKCZjZS0+YWN0aXZlKTsKPj4gPiArICAgICBpOTE1X2FjdGl2ZV9y ZWxlYXNlKCZjZS0+YWN0aXZlKTsKPj4gPiAgfQo+PiA+ICAKPj4gPiAgc3RhdGljIHZvaWQgaTkx NV9nbG9iYWxfY29udGV4dF9zaHJpbmsodm9pZCkKPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfY29udGV4dC5oCj4+ID4gaW5kZXggNmQ1NDUzYmEyYzFlLi40ZGU0YmEyZGY3ZDQgMTAw NjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5oCj4+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfY29udGV4dC5oCj4+ID4gQEAg LTEwMiw2ICsxMDIsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfY29udGV4dF9leGl0KHN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKPj4gPiAgICAgICAgICAgICAgIGNlLT5vcHMtPmV4aXQo Y2UpOwo+PiA+ICB9Cj4+ID4gIAo+PiA+ICtpbnQgaW50ZWxfY29udGV4dF9hY3RpdmUoc3RydWN0 IGludGVsX2NvbnRleHQgKmNlLCB1bnNpZ25lZCBsb25nIGZsYWdzKTsKPj4gPiArdm9pZCBpbnRl bF9jb250ZXh0X2luYWN0aXZlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSk7Cj4+ID4gKwo+PiA+ ICBzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9jb250ZXh0ICppbnRlbF9jb250ZXh0X2dldChz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCj4+ID4gIHsKPj4gPiAgICAgICBrcmVmX2dldCgmY2Ut PnJlZik7Cj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2Nv bnRleHRfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHRfdHlw ZXMuaAo+PiA+IGluZGV4IDgyNWZjZjBhYzljNC4uZTk1YmU0YmU5NjEyIDEwMDY0NAo+PiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHRfdHlwZXMuaAo+PiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2NvbnRleHRfdHlwZXMuaAo+PiA+IEBA IC01NiwxMCArNTYsMTAgQEAgc3RydWN0IGludGVsX2NvbnRleHQgewo+PiA+ICAgICAgIGludGVs X2VuZ2luZV9tYXNrX3Qgc2F0dXJhdGVkOyAvKiBzdWJtaXR0aW5nIHNlbWFwaG9yZXMgdG9vIGxh dGU/ICovCj4+ID4gIAo+PiA+ICAgICAgIC8qKgo+PiA+IC0gICAgICAqIGFjdGl2ZV90cmFja2Vy OiBBY3RpdmUgdHJhY2tlciBmb3IgdGhlIGV4dGVybmFsIHJxIGFjdGl2aXR5Cj4+ID4gLSAgICAg ICogb24gdGhpcyBpbnRlbF9jb250ZXh0IG9iamVjdC4KPj4gPiArICAgICAgKiBhY3RpdmU6IEFj dGl2ZSB0cmFja2VyIGZvciB0aGUgcnEgYWN0aXZpdHkgKGluYy4gZXh0ZXJuYWwpIG9uIHRoaXMK Pj4gPiArICAgICAgKiBpbnRlbF9jb250ZXh0IG9iamVjdC4KPj4gPiAgICAgICAgKi8KPj4gPiAt ICAgICBzdHJ1Y3QgaTkxNV9hY3RpdmVfcmVxdWVzdCBhY3RpdmVfdHJhY2tlcjsKPj4gPiArICAg ICBzdHJ1Y3QgaTkxNV9hY3RpdmUgYWN0aXZlOwo+PiA+ICAKPj4gPiAgICAgICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY29udGV4dF9vcHMgKm9wczsKPj4gPiAgCj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3QvaW50ZWxfZW5naW5lLmgKPj4gPiBpbmRleCAyMDFiYmQyYTRmYWYuLmI5ZmQ4OGYyMTYwOSAx MDA2NDQKPj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmUuaAo+ PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZS5oCj4+ID4gQEAg LTQ2Niw4ICs0NjYsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfZW5naW5lX3Jlc2V0KHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPj4gPiAgYm9vbCBpbnRlbF9lbmdpbmVfaXNf aWRsZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwo+PiA+ICBib29sIGludGVsX2Vu Z2luZXNfYXJlX2lkbGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPj4gPiAg Cj4+ID4gLXZvaWQgaW50ZWxfZW5naW5lX2xvc3RfY29udGV4dChzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpOwo+PiA+IC0KPj4gPiAgdm9pZCBpbnRlbF9lbmdpbmVzX3Jlc2V0X2RlZmF1 bHRfc3VibWlzc2lvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cj4+ID4gIHVuc2ln bmVkIGludCBpbnRlbF9lbmdpbmVzX2hhc19jb250ZXh0X2lzb2xhdGlvbihzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSk7Cj4+ID4gIAo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2lu dGVsX2VuZ2luZV9jcy5jCj4+ID4gaW5kZXggYzBkOTg2ZGI1YTc1Li41YTA4MDM2YWU3NzQgMTAw NjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2NzLmMK Pj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYwo+PiA+ IEBAIC02MTEsNiArNjExLDggQEAgc3RhdGljIGludCBpbnRlbF9lbmdpbmVfc2V0dXBfY29tbW9u KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPj4gPiAgewo+PiA+ICAgICAgIGludCBl cnI7Cj4+ID4gIAo+PiA+ICsgICAgIGluaXRfbGxpc3RfaGVhZCgmZW5naW5lLT5iYXJyaWVyX3Rh c2tzKTsKPj4gPiArCj4+ID4gICAgICAgZXJyID0gaW5pdF9zdGF0dXNfcGFnZShlbmdpbmUpOwo+ PiA+ICAgICAgIGlmIChlcnIpCj4+ID4gICAgICAgICAgICAgICByZXR1cm4gZXJyOwo+PiA+IEBA IC04NzAsNiArODcyLDcgQEAgdm9pZCBpbnRlbF9lbmdpbmVfY2xlYW51cF9jb21tb24oc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+PiA+ICAgICAgIGlmIChlbmdpbmUtPnByZWVtcHRf Y29udGV4dCkKPj4gPiAgICAgICAgICAgICAgIGludGVsX2NvbnRleHRfdW5waW4oZW5naW5lLT5w cmVlbXB0X2NvbnRleHQpOwo+PiA+ICAgICAgIGludGVsX2NvbnRleHRfdW5waW4oZW5naW5lLT5r ZXJuZWxfY29udGV4dCk7Cj4+ID4gKyAgICAgR0VNX0JVR19PTighbGxpc3RfZW1wdHkoJmVuZ2lu ZS0+YmFycmllcl90YXNrcykpOwo+PiA+ICAKPj4gPiAgICAgICBpOTE1X3RpbWVsaW5lX2Zpbmko JmVuZ2luZS0+dGltZWxpbmUpOwo+PiA+ICAKPj4gPiBAQCAtMTIwMSwyNiArMTIwNCw2IEBAIHZv aWQgaW50ZWxfZW5naW5lc19yZXNldF9kZWZhdWx0X3N1Ym1pc3Npb24oc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUpCj4+ID4gICAgICAgICAgICAgICBlbmdpbmUtPnNldF9kZWZhdWx0X3N1 Ym1pc3Npb24oZW5naW5lKTsKPj4gPiAgfQo+PiA+ICAKPj4gPiAtLyoqCj4+ID4gLSAqIGludGVs X2VuZ2luZV9sb3N0X2NvbnRleHQ6IGNhbGxlZCB3aGVuIHRoZSBHUFUgaXMgcmVzZXQgaW50byB1 bmtub3duIHN0YXRlCj4+ID4gLSAqIEBlbmdpbmU6IHRoZSBlbmdpbmUKPj4gPiAtICoKPj4gPiAt ICogV2UgaGF2ZSBlaXRoZXIgcmVzZXQgdGhlIEdQVSBvciBvdGhlcndpc2UgYWJvdXQgdG8gbG9z ZSBzdGF0ZSB0cmFja2luZyBvZgo+PiA+IC0gKiB0aGUgY3VycmVudCBHUFUgbG9naWNhbCBzdGF0 ZSAoZS5nLiBzdXNwZW5kKS4gT24gbmV4dCB1c2UsIGl0IGlzIHRoZXJlZm9yZQo+PiA+IC0gKiBp bXBlcmF0aXZlIHRoYXQgd2UgbWFrZSBubyBwcmVzdW1wdGlvbnMgYWJvdXQgdGhlIGN1cnJlbnQg c3RhdGUgYW5kIGxvYWQKPj4gPiAtICogZnJvbSBzY3JhdGNoLgo+PiA+IC0gKi8KPj4gPiAtdm9p ZCBpbnRlbF9lbmdpbmVfbG9zdF9jb250ZXh0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSkKPj4gPiAtewo+PiA+IC0gICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKPj4gPiAtCj4+ ID4gLSAgICAgbG9ja2RlcF9hc3NlcnRfaGVsZCgmZW5naW5lLT5pOTE1LT5kcm0uc3RydWN0X211 dGV4KTsKPj4gPiAtCj4+ID4gLSAgICAgY2UgPSBmZXRjaF9hbmRfemVybygmZW5naW5lLT5sYXN0 X3JldGlyZWRfY29udGV4dCk7Cj4+ID4gLSAgICAgaWYgKGNlKQo+PiA+IC0gICAgICAgICAgICAg aW50ZWxfY29udGV4dF91bnBpbihjZSk7Cj4+ID4gLX0KPj4gPiAtCj4+ID4gIGJvb2wgaW50ZWxf ZW5naW5lX2Nhbl9zdG9yZV9kd29yZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4+ ID4gIHsKPj4gPiAgICAgICBzd2l0Y2ggKElOVEVMX0dFTihlbmdpbmUtPmk5MTUpKSB7Cj4+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9wbS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3BtLmMKPj4gPiBpbmRleCBjY2Yw MzQ3NjQ3NDEuLjNjNDQ4YTA2MWFiZCAxMDA2NDQKPj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9lbmdpbmVfcG0uYwo+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L2ludGVsX2VuZ2luZV9wbS5jCj4+ID4gQEAgLTg4LDYgKzg4LDggQEAgc3RhdGljIGJvb2wg c3dpdGNoX3RvX2tlcm5lbF9jb250ZXh0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK Pj4gPiAgCj4+ID4gICAgICAgLyogQ2hlY2sgYWdhaW4gb24gdGhlIG5leHQgcmV0aXJlbWVudC4g Ki8KPj4gPiAgICAgICBlbmdpbmUtPndha2VyZWZfc2VyaWFsID0gZW5naW5lLT5zZXJpYWwgKyAx Owo+PiA+ICsKPj4gPiArICAgICBpOTE1X3JlcXVlc3RfYWRkX2JhcnJpZXJzKHJxKTsKPj4gPiAg ICAgICBfX2k5MTVfcmVxdWVzdF9jb21taXQocnEpOwo+PiA+ICAKPj4gPiAgICAgICByZXR1cm4g ZmFsc2U7Cj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2Vu Z2luZV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVz LmgKPj4gPiBpbmRleCAwMTIyMzg2NDIzN2EuLjMzYTMxYWEyZDJhZSAxMDA2NDQKPj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfdHlwZXMuaAo+PiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oCj4+ID4gQEAgLTEx LDYgKzExLDcgQEAKPj4gPiAgI2luY2x1ZGUgPGxpbnV4L2lycV93b3JrLmg+Cj4+ID4gICNpbmNs dWRlIDxsaW51eC9rcmVmLmg+Cj4+ID4gICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+Cj4+ID4gKyNp bmNsdWRlIDxsaW51eC9sbGlzdC5oPgo+PiA+ICAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KPj4g PiAgCj4+ID4gICNpbmNsdWRlICJpOTE1X2dlbS5oIgo+PiA+IEBAIC0yODgsNiArMjg5LDcgQEAg c3RydWN0IGludGVsX2VuZ2luZV9jcyB7Cj4+ID4gICAgICAgc3RydWN0IGludGVsX3JpbmcgKmJ1 ZmZlcjsKPj4gPiAgCj4+ID4gICAgICAgc3RydWN0IGk5MTVfdGltZWxpbmUgdGltZWxpbmU7Cj4+ ID4gKyAgICAgc3RydWN0IGxsaXN0X2hlYWQgYmFycmllcl90YXNrczsKPj4gPiAgCj4+ID4gICAg ICAgc3RydWN0IGludGVsX2NvbnRleHQgKmtlcm5lbF9jb250ZXh0OyAvKiBwaW5uZWQgKi8KPj4g PiAgICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqcHJlZW1wdF9jb250ZXh0OyAvKiBwaW5uZWQ7 IG9wdGlvbmFsICovCj4+ID4gQEAgLTQzNSwxNyArNDM3LDYgQEAgc3RydWN0IGludGVsX2VuZ2lu ZV9jcyB7Cj4+ID4gIAo+PiA+ICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzIGV4 ZWNsaXN0czsKPj4gPiAgCj4+ID4gLSAgICAgLyogQ29udGV4dHMgYXJlIHBpbm5lZCB3aGlsc3Qg dGhleSBhcmUgYWN0aXZlIG9uIHRoZSBHUFUuIFRoZSBsYXN0Cj4+ID4gLSAgICAgICogY29udGV4 dCBleGVjdXRlZCByZW1haW5zIGFjdGl2ZSB3aGlsc3QgdGhlIEdQVSBpcyBpZGxlIC0gdGhlCj4+ ID4gLSAgICAgICogc3dpdGNoIGF3YXkgYW5kIHdyaXRlIHRvIHRoZSBjb250ZXh0IG9iamVjdCBv bmx5IG9jY3VycyBvbiB0aGUKPj4gPiAtICAgICAgKiBuZXh0IGV4ZWN1dGlvbi4gIENvbnRleHRz IGFyZSBvbmx5IHVucGlubmVkIG9uIHJldGlyZW1lbnQgb2YgdGhlCj4+ID4gLSAgICAgICogZm9s bG93aW5nIHJlcXVlc3QgZW5zdXJpbmcgdGhhdCB3ZSBjYW4gYWx3YXlzIHdyaXRlIHRvIHRoZSBv YmplY3QKPj4gPiAtICAgICAgKiBvbiB0aGUgY29udGV4dCBzd2l0Y2ggZXZlbiBhZnRlciBpZGxp bmcuIEFjcm9zcyBzdXNwZW5kLCB3ZSBzd2l0Y2gKPj4gPiAtICAgICAgKiB0byB0aGUga2VybmVs IGNvbnRleHQgYW5kIHRyYXNoIGl0IGFzIHRoZSBzYXZlIG1heSBub3QgaGFwcGVuCj4+ID4gLSAg ICAgICogYmVmb3JlIHRoZSBoYXJkd2FyZSBpcyBwb3dlcmVkIGRvd24uCj4+ID4gLSAgICAgICov Cj4+ID4gLSAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmxhc3RfcmV0aXJlZF9jb250ZXh0Owo+ PiA+IC0KPj4gPiAgICAgICAvKiBzdGF0dXNfbm90aWZpZXI6IGxpc3Qgb2YgY2FsbGJhY2tzIGZv ciBjb250ZXh0LXN3aXRjaCBjaGFuZ2VzICovCj4+ID4gICAgICAgc3RydWN0IGF0b21pY19ub3Rp Zmllcl9oZWFkIGNvbnRleHRfc3RhdHVzX25vdGlmaWVyOwo+PiA+ICAKPj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9pbnRlbF9scmMuYwo+PiA+IGluZGV4IGI4ZjU1OTJkYTE4Zi4uMDU1MjQ0ODk2MTVj IDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2xyYy5jCj4+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMKPj4gPiBAQCAtMTQy Miw2MCArMTQyMiwxMSBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfY29udGV4dF9kZXN0cm95KHN0 cnVjdCBrcmVmICprcmVmKQo+PiA+ICAgICAgIGludGVsX2NvbnRleHRfZnJlZShjZSk7Cj4+ID4g IH0KPj4gPiAgCj4+ID4gLXN0YXRpYyBpbnQgX19jb250ZXh0X3BpbihzdHJ1Y3QgaTkxNV92bWEg KnZtYSkKPj4gPiAtewo+PiA+IC0gICAgIHVuc2lnbmVkIGludCBmbGFnczsKPj4gPiAtICAgICBp bnQgZXJyOwo+PiA+IC0KPj4gPiAtICAgICBmbGFncyA9IFBJTl9HTE9CQUwgfCBQSU5fSElHSDsK Pj4gPiAtICAgICBmbGFncyB8PSBQSU5fT0ZGU0VUX0JJQVMgfCBpOTE1X2dndHRfcGluX2JpYXMo dm1hKTsKPj4gPiAtCj4+ID4gLSAgICAgZXJyID0gaTkxNV92bWFfcGluKHZtYSwgMCwgMCwgZmxh Z3MpOwo+PiA+IC0gICAgIGlmIChlcnIpCj4+ID4gLSAgICAgICAgICAgICByZXR1cm4gZXJyOwo+ PiA+IC0KPj4gPiAtICAgICB2bWEtPm9iai0+cGluX2dsb2JhbCsrOwo+PiA+IC0gICAgIHZtYS0+ b2JqLT5tbS5kaXJ0eSA9IHRydWU7Cj4+ID4gLQo+PiA+IC0gICAgIHJldHVybiAwOwo+PiA+IC19 Cj4+ID4gLQo+PiA+IC1zdGF0aWMgdm9pZCBfX2NvbnRleHRfdW5waW4oc3RydWN0IGk5MTVfdm1h ICp2bWEpCj4+ID4gLXsKPj4gPiAtICAgICB2bWEtPm9iai0+cGluX2dsb2JhbC0tOwo+PiA+IC0g ICAgIF9faTkxNV92bWFfdW5waW4odm1hKTsKPj4gPiAtfQo+PiA+IC0KPj4gPiAgc3RhdGljIHZv aWQgZXhlY2xpc3RzX2NvbnRleHRfdW5waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQo+PiA+ ICB7Cj4+ID4gLSAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+PiA+IC0KPj4g PiAtICAgICAvKgo+PiA+IC0gICAgICAqIFRoZSB0YXNrbGV0IG1heSBzdGlsbCBiZSB1c2luZyBh IHBvaW50ZXIgdG8gb3VyIHN0YXRlLCB2aWEgYW4KPj4gPiAtICAgICAgKiBvbGQgcmVxdWVzdC4g SG93ZXZlciwgc2luY2Ugd2Uga25vdyB3ZSBvbmx5IHVucGluIHRoZSBjb250ZXh0Cj4+ID4gLSAg ICAgICogb24gcmV0aXJlbWVudCBvZiB0aGUgZm9sbG93aW5nIHJlcXVlc3QsIHdlIGtub3cgdGhh dCB0aGUgbGFzdAo+PiA+IC0gICAgICAqIHJlcXVlc3QgcmVmZXJlbmNpbmcgdXMgd2lsbCBoYXZl IGhhZCBhIGNvbXBsZXRpb24gQ1MgaW50ZXJydXB0Lgo+PiA+IC0gICAgICAqIElmIHdlIHNlZSB0 aGF0IGl0IGlzIHN0aWxsIGFjdGl2ZSwgaXQgbWVhbnMgdGhhdCB0aGUgdGFza2xldCBoYXNuJ3QK Pj4gPiAtICAgICAgKiBoYWQgdGhlIGNoYW5jZSB0byBydW4geWV0OyBsZXQgaXQgcnVuIGJlZm9y ZSB3ZSB0ZWFyZG93biB0aGUKPj4gPiAtICAgICAgKiByZWZlcmVuY2UgaXQgbWF5IHVzZS4KPj4g PiAtICAgICAgKi8KPj4gPiAtICAgICBlbmdpbmUgPSBSRUFEX09OQ0UoY2UtPmluZmxpZ2h0KTsK Pj4gPiAtICAgICBpZiAodW5saWtlbHkoZW5naW5lKSkgewo+PiA+IC0gICAgICAgICAgICAgdW5z aWduZWQgbG9uZyBmbGFnczsKPj4gPiAtCj4+ID4gLSAgICAgICAgICAgICBzcGluX2xvY2tfaXJx c2F2ZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7Cj4+ID4gLSAgICAgICAgICAgICBw cm9jZXNzX2NzYihlbmdpbmUpOwo+PiA+IC0gICAgICAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7Cj4+ID4gLQo+PiA+IC0gICAgICAg ICAgICAgR0VNX0JVR19PTihSRUFEX09OQ0UoY2UtPmluZmxpZ2h0KSk7Cj4+ID4gLSAgICAgfQo+ PiA+IC0KPj4gPiAgICAgICBpOTE1X2dlbV9jb250ZXh0X3VucGluX2h3X2lkKGNlLT5nZW1fY29u dGV4dCk7Cj4+ID4gLQo+PiA+IC0gICAgIGludGVsX3JpbmdfdW5waW4oY2UtPnJpbmcpOwo+PiA+ IC0KPj4gPiAgICAgICBpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGNlLT5zdGF0ZS0+b2JqKTsK Pj4gPiAtICAgICBfX2NvbnRleHRfdW5waW4oY2UtPnN0YXRlKTsKPj4gPiArICAgICBpbnRlbF9y aW5nX3VucGluKGNlLT5yaW5nKTsKPj4gPiAgfQo+PiA+ICAKPj4gPiAgc3RhdGljIHZvaWQKPj4g PiBAQCAtMTUxMiw3ICsxNDYzLDEwIEBAIF9fZXhlY2xpc3RzX2NvbnRleHRfcGluKHN0cnVjdCBp bnRlbF9jb250ZXh0ICpjZSwKPj4gPiAgICAgICAgICAgICAgIGdvdG8gZXJyOwo+PiA+ICAgICAg IEdFTV9CVUdfT04oIWNlLT5zdGF0ZSk7Cj4+ID4gIAo+PiA+IC0gICAgIHJldCA9IF9fY29udGV4 dF9waW4oY2UtPnN0YXRlKTsKPj4gPiArICAgICByZXQgPSBpbnRlbF9jb250ZXh0X2FjdGl2ZShj ZSwKPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmdpbmUtPmk5MTUtPmdn dHQucGluX2JpYXMgfAo+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBJTl9P RkZTRVRfQklBUyB8Cj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUElOX0hJ R0gpOwo+PiA+ICAgICAgIGlmIChyZXQpCj4+ID4gICAgICAgICAgICAgICBnb3RvIGVycjsKPj4g PiAgCj4+ID4gQEAgLTE1MjEsNyArMTQ3NSw3IEBAIF9fZXhlY2xpc3RzX2NvbnRleHRfcGluKHN0 cnVjdCBpbnRlbF9jb250ZXh0ICpjZSwKPj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEk5MTVfTUFQX09WRVJSSURFKTsKPj4gPiAgICAgICBpZiAoSVNfRVJSKHZhZGRy KSkgewo+PiA+ICAgICAgICAgICAgICAgcmV0ID0gUFRSX0VSUih2YWRkcik7Cj4+ID4gLSAgICAg ICAgICAgICBnb3RvIHVucGluX3ZtYTsKPj4gPiArICAgICAgICAgICAgIGdvdG8gdW5waW5fYWN0 aXZlOwo+PiA+ICAgICAgIH0KPj4gPiAgCj4+ID4gICAgICAgcmV0ID0gaW50ZWxfcmluZ19waW4o Y2UtPnJpbmcpOwo+PiA+IEBAIC0xNTQyLDggKzE0OTYsOCBAQCBfX2V4ZWNsaXN0c19jb250ZXh0 X3BpbihzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCj4+ID4gICAgICAgaW50ZWxfcmluZ191bnBp bihjZS0+cmluZyk7Cj4+ID4gIHVucGluX21hcDoKPj4gPiAgICAgICBpOTE1X2dlbV9vYmplY3Rf dW5waW5fbWFwKGNlLT5zdGF0ZS0+b2JqKTsKPj4gPiAtdW5waW5fdm1hOgo+PiA+IC0gICAgIF9f Y29udGV4dF91bnBpbihjZS0+c3RhdGUpOwo+PiA+ICt1bnBpbl9hY3RpdmU6Cj4+ID4gKyAgICAg aW50ZWxfY29udGV4dF9pbmFjdGl2ZShjZSk7Cj4+ID4gIGVycjoKPj4gPiAgICAgICByZXR1cm4g cmV0Owo+PiA+ICB9Cj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2lu dGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZm ZXIuYwo+PiA+IGluZGV4IGM4MzRkMDE2Yzk2NS4uN2FiMjhiNmY2MmExIDEwMDY0NAo+PiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZmZXIuYwo+PiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZmZXIuYwo+PiA+IEBAIC0xMzQ5 LDQ1ICsxMzQ5LDkgQEAgc3RhdGljIHZvaWQgX19jb250ZXh0X3VucGluX3BwZ3R0KHN0cnVjdCBp OTE1X2dlbV9jb250ZXh0ICpjdHgpCj4+ID4gICAgICAgICAgICAgICBnZW42X3BwZ3R0X3VucGlu KGk5MTVfdm1fdG9fcHBndHQodm0pKTsKPj4gPiAgfQo+PiA+ICAKPj4gPiAtc3RhdGljIGludCBf X2NvbnRleHRfcGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKPj4gPiAtewo+PiA+IC0gICAg IHN0cnVjdCBpOTE1X3ZtYSAqdm1hOwo+PiA+IC0gICAgIGludCBlcnI7Cj4+ID4gLQo+PiA+IC0g ICAgIHZtYSA9IGNlLT5zdGF0ZTsKPj4gPiAtICAgICBpZiAoIXZtYSkKPj4gPiAtICAgICAgICAg ICAgIHJldHVybiAwOwo+PiA+IC0KPj4gPiAtICAgICBlcnIgPSBpOTE1X3ZtYV9waW4odm1hLCAw LCAwLCBQSU5fR0xPQkFMIHwgUElOX0hJR0gpOwo+PiA+IC0gICAgIGlmIChlcnIpCj4+ID4gLSAg ICAgICAgICAgICByZXR1cm4gZXJyOwo+PiA+IC0KPj4gPiAtICAgICAvKgo+PiA+IC0gICAgICAq IEFuZCBtYXJrIGlzIGFzIGEgZ2xvYmFsbHkgcGlubmVkIG9iamVjdCB0byBsZXQgdGhlIHNocmlu a2VyIGtub3cKPj4gPiAtICAgICAgKiBpdCBjYW5ub3QgcmVjbGFpbSB0aGUgb2JqZWN0IHVudGls IHdlIHJlbGVhc2UgaXQuCj4+ID4gLSAgICAgICovCj4+ID4gLSAgICAgdm1hLT5vYmotPnBpbl9n bG9iYWwrKzsKPj4gPiAtICAgICB2bWEtPm9iai0+bW0uZGlydHkgPSB0cnVlOwo+PiA+IC0KPj4g PiAtICAgICByZXR1cm4gMDsKPj4gPiAtfQo+PiA+IC0KPj4gPiAtc3RhdGljIHZvaWQgX19jb250 ZXh0X3VucGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKPj4gPiAtewo+PiA+IC0gICAgIHN0 cnVjdCBpOTE1X3ZtYSAqdm1hOwo+PiA+IC0KPj4gPiAtICAgICB2bWEgPSBjZS0+c3RhdGU7Cj4+ ID4gLSAgICAgaWYgKCF2bWEpCj4+ID4gLSAgICAgICAgICAgICByZXR1cm47Cj4+ID4gLQo+PiA+ IC0gICAgIHZtYS0+b2JqLT5waW5fZ2xvYmFsLS07Cj4+ID4gLSAgICAgaTkxNV92bWFfdW5waW4o dm1hKTsKPj4gPiAtfQo+PiA+IC0KPj4gPiAgc3RhdGljIHZvaWQgcmluZ19jb250ZXh0X3VucGlu KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSkKPj4gPiAgewo+PiA+ICAgICAgIF9fY29udGV4dF91 bnBpbl9wcGd0dChjZS0+Z2VtX2NvbnRleHQpOwo+PiA+IC0gICAgIF9fY29udGV4dF91bnBpbihj ZSk7Cj4+ID4gIH0KPj4gPiAgCj4+ID4gIHN0YXRpYyBzdHJ1Y3QgaTkxNV92bWEgKgo+PiA+IEBA IC0xNDc3LDE4ICsxNDQxLDE4IEBAIHN0YXRpYyBpbnQgcmluZ19jb250ZXh0X3BpbihzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqY2UpCj4+ID4gICAgICAgICAgICAgICBjZS0+c3RhdGUgPSB2bWE7Cj4+ ID4gICAgICAgfQo+PiA+ICAKPj4gPiAtICAgICBlcnIgPSBfX2NvbnRleHRfcGluKGNlKTsKPj4g PiArICAgICBlcnIgPSBpbnRlbF9jb250ZXh0X2FjdGl2ZShjZSwgUElOX0hJR0gpOwo+PiA+ICAg ICAgIGlmIChlcnIpCj4+ID4gICAgICAgICAgICAgICByZXR1cm4gZXJyOwo+PiA+ICAKPj4gPiAg ICAgICBlcnIgPSBfX2NvbnRleHRfcGluX3BwZ3R0KGNlLT5nZW1fY29udGV4dCk7Cj4+ID4gICAg ICAgaWYgKGVycikKPj4gPiAtICAgICAgICAgICAgIGdvdG8gZXJyX3VucGluOwo+PiA+ICsgICAg ICAgICAgICAgZ290byBlcnJfYWN0aXZlOwo+PiA+ICAKPj4gPiAgICAgICByZXR1cm4gMDsKPj4g PiAgCj4+ID4gLWVycl91bnBpbjoKPj4gPiAtICAgICBfX2NvbnRleHRfdW5waW4oY2UpOwo+PiA+ ICtlcnJfYWN0aXZlOgo+PiA+ICsgICAgIGludGVsX2NvbnRleHRfaW5hY3RpdmUoY2UpOwo+PiA+ ICAgICAgIHJldHVybiBlcnI7Cj4+ID4gIH0KPj4gPiAgCj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L21vY2tfZW5naW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9tb2NrX2VuZ2luZS5jCj4+ID4gaW5kZXggNmQ3NTYyNzY5ZWIyLi5iNzY3NWVmMTg1MjMgMTAw NjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvbW9ja19lbmdpbmUuYwo+PiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L21vY2tfZW5naW5lLmMKPj4gPiBAQCAtMTQ2 LDEyICsxNDYsMTggQEAgc3RhdGljIHZvaWQgbW9ja19jb250ZXh0X2Rlc3Ryb3koc3RydWN0IGty ZWYgKnJlZikKPj4gPiAgCj4+ID4gIHN0YXRpYyBpbnQgbW9ja19jb250ZXh0X3BpbihzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqY2UpCj4+ID4gIHsKPj4gPiArICAgICBpbnQgcmV0Owo+PiA+ICsKPj4g PiAgICAgICBpZiAoIWNlLT5yaW5nKSB7Cj4+ID4gICAgICAgICAgICAgICBjZS0+cmluZyA9IG1v Y2tfcmluZyhjZS0+ZW5naW5lKTsKPj4gPiAgICAgICAgICAgICAgIGlmICghY2UtPnJpbmcpCj4+ ID4gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+PiA+ICAgICAgIH0KPj4g PiAgCj4+ID4gKyAgICAgcmV0ID0gaW50ZWxfY29udGV4dF9hY3RpdmUoY2UsIFBJTl9ISUdIKTsK Pj4gPiArICAgICBpZiAocmV0KQo+PiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4gPiAr Cj4+ID4gICAgICAgbW9ja190aW1lbGluZV9waW4oY2UtPnJpbmctPnRpbWVsaW5lKTsKPj4gPiAg ICAgICByZXR1cm4gMDsKPj4gPiAgfQo+PiA+IEBAIC0zMjgsMTQgKzMzNCw5IEBAIHZvaWQgbW9j a19lbmdpbmVfZnJlZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4+ID4gIHsKPj4g PiAgICAgICBzdHJ1Y3QgbW9ja19lbmdpbmUgKm1vY2sgPQo+PiA+ICAgICAgICAgICAgICAgY29u dGFpbmVyX29mKGVuZ2luZSwgdHlwZW9mKCptb2NrKSwgYmFzZSk7Cj4+ID4gLSAgICAgc3RydWN0 IGludGVsX2NvbnRleHQgKmNlOwo+PiA+ICAKPj4gPiAgICAgICBHRU1fQlVHX09OKHRpbWVyX3Bl bmRpbmcoJm1vY2stPmh3X2RlbGF5KSk7Cj4+ID4gIAo+PiA+IC0gICAgIGNlID0gZmV0Y2hfYW5k X3plcm8oJmVuZ2luZS0+bGFzdF9yZXRpcmVkX2NvbnRleHQpOwo+PiA+IC0gICAgIGlmIChjZSkK Pj4gPiAtICAgICAgICAgICAgIGludGVsX2NvbnRleHRfdW5waW4oY2UpOwo+PiA+IC0KPj4gPiAg ICAgICBpbnRlbF9jb250ZXh0X3VucGluKGVuZ2luZS0+a2VybmVsX2NvbnRleHQpOwo+PiA+ICAK Pj4gPiAgICAgICBpbnRlbF9lbmdpbmVfZmluaV9icmVhZGNydW1icyhlbmdpbmUpOwo+PiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9hY3RpdmUuYwo+PiA+IGluZGV4IDg2M2FlMTI3MDdiYS4uMTAwZTQw YWZjOWQ2IDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZl LmMKPj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5jCj4+ID4gQEAg LTEwMCw3ICsxMDAsNyBAQCBhY3RpdmVfaW5zdGFuY2Uoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYs IHU2NCBpZHgpCj4+ID4gICAgICAgICAgICAgICBwYXJlbnQgPSAqcDsKPj4gPiAgCj4+ID4gICAg ICAgICAgICAgICBub2RlID0gcmJfZW50cnkocGFyZW50LCBzdHJ1Y3QgYWN0aXZlX25vZGUsIG5v ZGUpOwo+PiA+IC0gICAgICAgICAgICAgaWYgKG5vZGUtPnRpbWVsaW5lID09IGlkeCkKPj4gPiAr ICAgICAgICAgICAgIGlmIChub2RlLT50aW1lbGluZSA9PSBpZHggJiYgIUlTX0VSUihub2RlLT5i YXNlLnJlcXVlc3QpKQo+PiAKPj4gSXMgdGhpcyByZWxhdGVkIGNoYW5nZT8KPgo+IEl0IG9uY2Ug d2FzIChpbiB0aGUgbmV4dCBjaHVuaykuIEkgdXNlZCB0byBpbnNlcnQgdGhlIGZyZXNobHkgcHJl YWxsb2NhdGVkCj4gbm9kZSBpbnRvIHRoZSB0cmVlIGJlZm9yZSBpdCBoYWQgYSB2YWxpZCByZXF1 ZXN0LiBJdCBhcHBlYXJzIHRoYXQgaXMgbm8KPiBsb25nZXIgdGhlIGNhc2UgYW5kIHRoZSBFUlJf UFRSIGlzIGtlcHQgc2FmZWx5IGluIGEgbGlzdCB1bnRpbCByZWFkeS4KPgo+PiAtTWlrYQo+PiAK Pj4gPiAgICAgICAgICAgICAgICAgICAgICAgZ290byByZXBsYWNlOwo+PiA+ICAKPj4gPiAgICAg ICAgICAgICAgIGlmIChub2RlLT50aW1lbGluZSA8IGlkeCkKPj4gPiBAQCAtMTU3LDYgKzE1Nyw3 IEBAIHZvaWQgaTkxNV9hY3RpdmVfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwK Pj4gPiAgICAgICByZWYtPnJldGlyZSA9IHJldGlyZTsKPj4gPiAgICAgICByZWYtPnRyZWUgPSBS Ql9ST09UOwo+PiA+ICAgICAgIGk5MTVfYWN0aXZlX3JlcXVlc3RfaW5pdCgmcmVmLT5sYXN0LCBO VUxMLCBsYXN0X3JldGlyZSk7Cj4+ID4gKyAgICAgaW5pdF9sbGlzdF9oZWFkKCZyZWYtPmJhcnJp ZXJzKTsKPj4gPiAgICAgICByZWYtPmNvdW50ID0gMDsKPj4gPiAgfQo+PiA+ICAKPj4gPiBAQCAt MjYzLDYgKzI2NCw4MyBAQCB2b2lkIGk5MTVfYWN0aXZlX2Zpbmkoc3RydWN0IGk5MTVfYWN0aXZl ICpyZWYpCj4+ID4gIH0KPj4gPiAgI2VuZGlmCj4+ID4gIAo+PiA+ICtpbnQgaTkxNV9hY3RpdmVf YWNxdWlyZV9wcmVhbGxvY2F0ZV9iYXJyaWVyKHN0cnVjdCBpOTE1X2FjdGl2ZSAqcmVmLAo+PiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKPj4gPiArewo+PiA+ICsgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1ID0gZW5naW5lLT5pOTE1Owo+PiA+ICsgICAgIHVuc2lnbmVkIGxvbmcgdG1wOwo+ PiA+ICsgICAgIGludCBlcnIgPSAwOwo+PiA+ICsKPj4gPiArICAgICBHRU1fQlVHX09OKCFlbmdp bmUtPm1hc2spOwo+PiA+ICsgICAgIGZvcl9lYWNoX2VuZ2luZV9tYXNrZWQoZW5naW5lLCBpOTE1 LCBlbmdpbmUtPm1hc2ssIHRtcCkgewo+PiA+ICsgICAgICAgICAgICAgc3RydWN0IGludGVsX2Nv bnRleHQgKmtjdHggPSBlbmdpbmUtPmtlcm5lbF9jb250ZXh0Owo+PiA+ICsgICAgICAgICAgICAg c3RydWN0IGFjdGl2ZV9ub2RlICpub2RlOwo+PiA+ICsKPj4gPiArICAgICAgICAgICAgIG5vZGUg PSBrbWVtX2NhY2hlX2FsbG9jKGdsb2JhbC5zbGFiX2NhY2hlLCBHRlBfS0VSTkVMKTsKPj4gPiAr ICAgICAgICAgICAgIGlmICh1bmxpa2VseSghbm9kZSkpIHsKPj4gPiArICAgICAgICAgICAgICAg ICAgICAgZXJyID0gLUVOT01FTTsKPj4gPiArICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+ ID4gKyAgICAgICAgICAgICB9Cj4+ID4gKwo+PiA+ICsgICAgICAgICAgICAgaTkxNV9hY3RpdmVf cmVxdWVzdF9pbml0KCZub2RlLT5iYXNlLAo+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICh2b2lkICopZW5naW5lLCBub2RlX3JldGlyZSk7CgpJbiBjb21taXQgeW91 IHByb21pc2UgdGhhdCB5b3Ugd2lsbCBxdWV1ZSBhIHJlcXVlc3QgZm9yIGtlcm5lbCBjb250ZXh0 LgpCdXQgaW4gaGVyZSwgeW91IHNlZW0gdG8gdXNlIChhYnVzZSE/KSB0aGUgYWN0aXZlIHJlcXVl c3QgdG8KbWFrZSBhIHNoYWRvdyBvZiBhIHJlcXVlc3QgYW5kIHVzZSBpdCB0byBjYWxsIHRoZSBp ZGxlIGJhcnJpZXJzLgoKU28gZWl0aGVyIHRoZSBjb21taXQgbWVzc2FnZSBuZWVkcyB0d2Vha2lu ZyBvciBJIGRvbid0IGhhdmUKYSBzbGlnaHRlc3QgaWRlYSB5ZXQgd2hlcmUgd2UgYXJlIGZseWlu ZyBpbiBoZXJlIDopCgotTWlrYQoKPj4gPiArICAgICAgICAgICAgIG5vZGUtPnRpbWVsaW5lID0g a2N0eC0+cmluZy0+dGltZWxpbmUtPmZlbmNlX2NvbnRleHQ7Cj4+ID4gKyAgICAgICAgICAgICBu b2RlLT5yZWYgPSByZWY7Cj4+ID4gKyAgICAgICAgICAgICByZWYtPmNvdW50Kys7Cj4+ID4gKwo+ PiA+ICsgICAgICAgICAgICAgbGxpc3RfYWRkKChzdHJ1Y3QgbGxpc3Rfbm9kZSAqKSZub2RlLT5i YXNlLmxpbmssCj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgJnJlZi0+YmFycmllcnMpOwo+ PiA+ICsgICAgIH0KPj4gPiArCj4+ID4gKyAgICAgcmV0dXJuIGVycjsKPj4gPiArfQo+PiA+ICsK Pj4gPiArdm9pZCBpOTE1X2FjdGl2ZV9hY3F1aXJlX2JhcnJpZXIoc3RydWN0IGk5MTVfYWN0aXZl ICpyZWYpCj4+ID4gK3sKPj4gPiArICAgICBzdHJ1Y3QgbGxpc3Rfbm9kZSAqcG9zLCAqbmV4dDsK Pj4gPiArCj4+ID4gKyAgICAgaTkxNV9hY3RpdmVfYWNxdWlyZShyZWYpOwo+PiA+ICsKPj4gPiAr ICAgICBsbGlzdF9mb3JfZWFjaF9zYWZlKHBvcywgbmV4dCwgbGxpc3RfZGVsX2FsbCgmcmVmLT5i YXJyaWVycykpIHsKPj4gPiArICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZTsKPj4gPiArICAgICAgICAgICAgIHN0cnVjdCBhY3RpdmVfbm9kZSAqbm9kZTsKPj4gPiAr ICAgICAgICAgICAgIHN0cnVjdCByYl9ub2RlICoqcCwgKnBhcmVudDsKPj4gPiArCj4+ID4gKyAg ICAgICAgICAgICBub2RlID0gY29udGFpbmVyX29mKChzdHJ1Y3QgbGlzdF9oZWFkICopcG9zLAo+ PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YoKm5vZGUpLCBiYXNl LmxpbmspOwo+PiA+ICsKPj4gPiArICAgICAgICAgICAgIGVuZ2luZSA9ICh2b2lkICopcmN1X2Fj Y2Vzc19wb2ludGVyKG5vZGUtPmJhc2UucmVxdWVzdCk7Cj4+ID4gKyAgICAgICAgICAgICBSQ1Vf SU5JVF9QT0lOVEVSKG5vZGUtPmJhc2UucmVxdWVzdCwgRVJSX1BUUigtRUFHQUlOKSk7Cj4+ID4g Kwo+PiA+ICsgICAgICAgICAgICAgcGFyZW50ID0gTlVMTDsKPj4gPiArICAgICAgICAgICAgIHAg PSAmcmVmLT50cmVlLnJiX25vZGU7Cj4+ID4gKyAgICAgICAgICAgICB3aGlsZSAoKnApIHsKPj4g PiArICAgICAgICAgICAgICAgICAgICAgcGFyZW50ID0gKnA7Cj4+ID4gKyAgICAgICAgICAgICAg ICAgICAgIGlmIChyYl9lbnRyeShwYXJlbnQsCj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgYWN0aXZlX25vZGUsCj4+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBub2RlKS0+dGltZWxpbmUgPCBub2RlLT50aW1lbGluZSkKPj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwID0gJnBhcmVudC0+cmJfcmlnaHQ7Cj4+ID4gKyAg ICAgICAgICAgICAgICAgICAgIGVsc2UKPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwID0gJnBhcmVudC0+cmJfbGVmdDsKPj4gPiArICAgICAgICAgICAgIH0KPj4gPiArICAgICAg ICAgICAgIHJiX2xpbmtfbm9kZSgmbm9kZS0+bm9kZSwgcGFyZW50LCBwKTsKPj4gPiArICAgICAg ICAgICAgIHJiX2luc2VydF9jb2xvcigmbm9kZS0+bm9kZSwgJnJlZi0+dHJlZSk7Cj4+ID4gKwo+ PiA+ICsgICAgICAgICAgICAgbGxpc3RfYWRkKChzdHJ1Y3QgbGxpc3Rfbm9kZSAqKSZub2RlLT5i YXNlLmxpbmssCj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgJmVuZ2luZS0+YmFycmllcl90 YXNrcyk7Cj4+ID4gKyAgICAgfQo+PiA+ICsgICAgIGk5MTVfYWN0aXZlX3JlbGVhc2UocmVmKTsK Pj4gPiArfQo+PiA+ICsKPj4gPiArdm9pZCBpOTE1X3JlcXVlc3RfYWRkX2JhcnJpZXJzKHN0cnVj dCBpOTE1X3JlcXVlc3QgKnJxKQo+PiA+ICt7Cj4+ID4gKyAgICAgc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lID0gcnEtPmVuZ2luZTsKPj4gPiArICAgICBzdHJ1Y3QgbGxpc3Rfbm9kZSAq bm9kZSwgKm5leHQ7Cj4+ID4gKwo+PiA+ICsgICAgIGxsaXN0X2Zvcl9lYWNoX3NhZmUobm9kZSwg bmV4dCwgbGxpc3RfZGVsX2FsbCgmZW5naW5lLT5iYXJyaWVyX3Rhc2tzKSkKPj4gPiArICAgICAg ICAgICAgIGxpc3RfYWRkX3RhaWwoKHN0cnVjdCBsaXN0X2hlYWQgKilub2RlLCAmcnEtPmFjdGl2 ZV9saXN0KTsKPj4gPiArfQo+PiA+ICsKPj4gPiAgaW50IGk5MTVfYWN0aXZlX3JlcXVlc3Rfc2V0 KHN0cnVjdCBpOTE1X2FjdGl2ZV9yZXF1ZXN0ICphY3RpdmUsCj4+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPj4gPiAgewo+PiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9hY3RpdmUuaAo+PiA+IGluZGV4IDdkNzU4NzE5Y2UzOS4uZDU1ZDM3NjczOTQ0 IDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmgKPj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5oCj4+ID4gQEAgLTQwNiw0 ICs0MDYsOSBAQCB2b2lkIGk5MTVfYWN0aXZlX2Zpbmkoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYp Owo+PiA+ICBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9hY3RpdmVfZmluaShzdHJ1Y3QgaTkxNV9h Y3RpdmUgKnJlZikgeyB9Cj4+ID4gICNlbmRpZgo+PiA+ICAKPj4gPiAraW50IGk5MTVfYWN0aXZl X2FjcXVpcmVfcHJlYWxsb2NhdGVfYmFycmllcihzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZiwKPj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpOwo+PiA+ICt2b2lkIGk5MTVfYWN0aXZlX2FjcXVpcmVfYmFycmll cihzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZik7Cj4+ID4gK3ZvaWQgaTkxNV9yZXF1ZXN0X2FkZF9i YXJyaWVycyhzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSk7Cj4+ID4gKwo+PiA+ICAjZW5kaWYgLyog X0k5MTVfQUNUSVZFX0hfICovCj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfYWN0aXZlX3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZV90 eXBlcy5oCj4+ID4gaW5kZXggYjY3OTI1M2I1M2E1Li5jMDI1OTkxYjkyMzMgMTAwNjQ0Cj4+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmVfdHlwZXMuaAo+PiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlX3R5cGVzLmgKPj4gPiBAQCAtNyw2ICs3 LDcgQEAKPj4gPiAgI2lmbmRlZiBfSTkxNV9BQ1RJVkVfVFlQRVNfSF8KPj4gPiAgI2RlZmluZSBf STkxNV9BQ1RJVkVfVFlQRVNfSF8KPj4gPiAgCj4+ID4gKyNpbmNsdWRlIDxsaW51eC9sbGlzdC5o Pgo+PiA+ICAjaW5jbHVkZSA8bGludXgvcmJ0cmVlLmg+Cj4+ID4gICNpbmNsdWRlIDxsaW51eC9y Y3VwZGF0ZS5oPgo+PiA+ICAKPj4gPiBAQCAtMzEsNiArMzIsOCBAQCBzdHJ1Y3QgaTkxNV9hY3Rp dmUgewo+PiA+ICAgICAgIHVuc2lnbmVkIGludCBjb3VudDsKPj4gPiAgCj4+ID4gICAgICAgdm9p ZCAoKnJldGlyZSkoc3RydWN0IGk5MTVfYWN0aXZlICpyZWYpOwo+PiA+ICsKPj4gPiArICAgICBz dHJ1Y3QgbGxpc3RfaGVhZCBiYXJyaWVyczsKPj4gPiAgfTsKPj4gPiAgCj4+ID4gICNlbmRpZiAv KiBfSTkxNV9BQ1RJVkVfVFlQRVNfSF8gKi8KPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPj4g PiBpbmRleCBlOTgwYzFlZTNkY2YuLjA2NjNmMmRmNjVkNiAxMDA2NDQKPj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYwo+PiA+IEBAIC0xMTk3LDEwICsxMTk3LDYgQEAgdm9pZCBpOTE1X2dlbV9z YW5pdGl6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPj4gPiAgCj4+ID4gICAgICAg aW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoJmk5MTUtPnVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7 Cj4+ID4gICAgICAgaW50ZWxfcnVudGltZV9wbV9wdXQoaTkxNSwgd2FrZXJlZik7Cj4+ID4gLQo+ PiA+IC0gICAgIG11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+PiA+IC0gICAg IGk5MTVfZ2VtX2NvbnRleHRzX2xvc3QoaTkxNSk7Cj4+ID4gLSAgICAgbXV0ZXhfdW5sb2NrKCZp OTE1LT5kcm0uc3RydWN0X211dGV4KTsKPj4gPiAgfQo+PiA+ICAKPj4gPiAgdm9pZCBpOTE1X2dl bV9pbml0X3N3aXp6bGluZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMKPj4gPiBpbmRleCBlOWI1OWVlYTRmMTAuLjll ZmY5ZGU3ZmExMCAxMDA2NDQKPj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl cXVlc3QuYwo+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCj4+ ID4gQEAgLTIxMywxOCArMjEzLDYgQEAgc3RhdGljIHZvaWQgX19yZXRpcmVfZW5naW5lX3JlcXVl c3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+PiA+ICAgICAgIHNwaW5fdW5sb2Nr KCZycS0+bG9jayk7Cj4+ID4gIAo+PiA+ICAgICAgIGxvY2FsX2lycV9lbmFibGUoKTsKPj4gPiAt Cj4+ID4gLSAgICAgLyoKPj4gPiAtICAgICAgKiBUaGUgYmFja2luZyBvYmplY3QgZm9yIHRoZSBj b250ZXh0IGlzIGRvbmUgYWZ0ZXIgc3dpdGNoaW5nIHRvIHRoZQo+PiA+IC0gICAgICAqICpuZXh0 KiBjb250ZXh0LiBUaGVyZWZvcmUgd2UgY2Fubm90IHJldGlyZSB0aGUgcHJldmlvdXMgY29udGV4 dCB1bnRpbAo+PiA+IC0gICAgICAqIHRoZSBuZXh0IGNvbnRleHQgaGFzIGFscmVhZHkgc3RhcnRl ZCBydW5uaW5nLiBIb3dldmVyLCBzaW5jZSB3ZQo+PiA+IC0gICAgICAqIGNhbm5vdCB0YWtlIHRo ZSByZXF1aXJlZCBsb2NrcyBhdCBpOTE1X3JlcXVlc3Rfc3VibWl0KCkgd2UKPj4gPiAtICAgICAg KiBkZWZlciB0aGUgdW5waW5uaW5nIG9mIHRoZSBhY3RpdmUgY29udGV4dCB0byBub3csIHJldGly ZW1lbnQgb2YKPj4gPiAtICAgICAgKiB0aGUgc3Vic2VxdWVudCByZXF1ZXN0Lgo+PiA+IC0gICAg ICAqLwo+PiA+IC0gICAgIGlmIChlbmdpbmUtPmxhc3RfcmV0aXJlZF9jb250ZXh0KQo+PiA+IC0g ICAgICAgICAgICAgaW50ZWxfY29udGV4dF91bnBpbihlbmdpbmUtPmxhc3RfcmV0aXJlZF9jb250 ZXh0KTsKPj4gPiAtICAgICBlbmdpbmUtPmxhc3RfcmV0aXJlZF9jb250ZXh0ID0gcnEtPmh3X2Nv bnRleHQ7Cj4+ID4gIH0KPj4gPiAgCj4+ID4gIHN0YXRpYyB2b2lkIF9fcmV0aXJlX2VuZ2luZV91 cHRvKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPj4gPiBAQCAtNzU5LDkgKzc0Nyw2 IEBAIF9faTkxNV9yZXF1ZXN0X2NyZWF0ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsIGdmcF90 IGdmcCkKPj4gPiAgCj4+ID4gICAgICAgcnEtPmluZml4ID0gcnEtPnJpbmctPmVtaXQ7IC8qIGVu ZCBvZiBoZWFkZXI7IHN0YXJ0IG9mIHVzZXIgcGF5bG9hZCAqLwo+PiA+ICAKPj4gPiAtICAgICAv KiBLZWVwIGEgc2Vjb25kIHBpbiBmb3IgdGhlIGR1YWwgcmV0aXJlbWVudCBhbG9uZyBlbmdpbmUg YW5kIHJpbmcgKi8KPj4gPiAtICAgICBfX2ludGVsX2NvbnRleHRfcGluKGNlKTsKPj4gPiAtCj4+ ID4gICAgICAgaW50ZWxfY29udGV4dF9tYXJrX2FjdGl2ZShjZSk7Cj4+ID4gICAgICAgcmV0dXJu IHJxOwo+PiA+ICAKPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRl c3RzL21vY2tfZ2VtX2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21v Y2tfZ2VtX2RldmljZS5jCj4+ID4gaW5kZXggYjdmM2ZiYjRhZTg5Li5hOTZkMGMwMTJkNDYgMTAw NjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2Rl dmljZS5jCj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2Vt X2RldmljZS5jCj4+ID4gQEAgLTU2LDcgKzU2LDYgQEAgc3RhdGljIHZvaWQgbW9ja19kZXZpY2Vf cmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiA+ICAKPj4gPiAgICAgICBtdXRleF9s b2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKPj4gPiAgICAgICBtb2NrX2RldmljZV9mbHVz aChpOTE1KTsKPj4gPiAtICAgICBpOTE1X2dlbV9jb250ZXh0c19sb3N0KGk5MTUpOwo+PiA+ICAg ICAgIG11dGV4X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4+ID4gIAo+PiA+ICAg ICAgIGZsdXNoX3dvcmsoJmk5MTUtPmdlbS5pZGxlX3dvcmspOwo+PiA+IC0tIAo+PiA+IDIuMjAu MQo+PiA+Cj4+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPj4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+PiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cj4+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZng=