From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm: Pass crtc to .best_encoder() Date: Tue, 26 Jun 2018 17:23:25 +0200 Message-ID: <20180626152325.GC13978@phenom.ffwll.local> References: <20180615195221.18119-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180615195221.18119-1-ville.syrjala-VuQAYsv1563Yd54FQh9/CA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Ville Syrjala Cc: Alex Deucher , intel-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Christian =?iso-8859-1?Q?K=F6nig?= List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBKdW4gMTUsIDIwMTggYXQgMTA6NTI6MjFQTSArMDMwMCwgVmlsbGUgU3lyamFsYSB3 cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IAo+IFRvIHBpY2sgdGhlIGNvcnJlY3QgTVNUIGVuY29kZXIgaTkxNSB3YW50cyB0byBr bm93IHdoaWNoIGNydGMgaXMgZ29pbmcKPiB0byBiZSBmZWVkaW5nIHVzLiBUbyB0aGF0IGVuZCBs ZXQncyBwYXNzIHRoZSBjcnRjIHRvIHRoZSAuYmVzdF9lbmNvZGVyKCkKPiBob29rLiBUaGUgYXRv bWljIHZhcmlhbnQgYWxyZWFkeSBrbm93cyB0aGUgY3J0YyB2aWEgdGhlIGNvbm5lY3RvciBzdGF0 ZSwKPiBidXQgdGhlIG5vbi1hdG9taWMgaG9va3MgaXMgc3RpbGwgYmVpbmcgdXNlZCBieSB0aGUg ZmJfaGVscGVyIGV2ZW4gb24KPiBhdG9taWMgZHJpdmVycy4KCkNhbid0IHdlIGluc3RlYWQgZml4 IHRoZSBmYiBoZWxwZXJzIHRvIHVzZSBhdG9taWNfYmVzdF9lbmNvZGVyPyBPciBqdXN0CmRyb3Ag dGhhdCBjb2RlLCB1c2Vyc3BhY2UgZG9lc24ndCByZWFsbHkga25vdyBhbnkgYmV0dGVyIGVpdGhl ciBhbmQganVzdApuZWVkcyB0byBmaWd1cmUgdGhpcyBvdXQgd2l0aG91dCB0aGUgaGVscCBvZiAt PmJlc3RfZW5jb2Rlciwgc28gaXQgc2hvdWxkCmJlIHBvc3NpYmxlLgotRGFuaWVsCgo+IAo+IFRo aXMgYWxsb3dzIHVzIHRvIGZpeCB1cCB0aGUgcG9zc2libGVfY3J0Y3MgYml0bWFzayBmb3IgdGhl IGk5MTUgTVNUCj4gZW5jb2RlcnMuIFdlIGhhdmUgb25lIGVuY29kZXIgZm9yIGVhY2ggY3J0Yytw b3J0IGNvbWJpbmF0aW9uLCBhbmQgdGh1cwo+IHdlIGhhdmUgdG8ga25vdyBib3RoIHRoZSBjb25u ZWN0b3IgYW5kIHRoZSBjcnRjIHRvIHBpY2sgdGhlIHJpZ2h0IG9uZS4KPiBUaGlzIGhhcyBvbmx5 IHdvcmtlZCBzbyBmYXIgYmVjYXVzZSBldmVyeSBNU1QgZW5jb2RlciBsaWVkIGluIGl0cwo+IHBv c3NpYmxlX2NydGNzIGJpdG1hc2sgdGhhdCB0aGV5IGNhbiBiZSBkcml2ZW4gYnkgYW55IGNydGMu Cj4gCj4gSSB0b29rIHRoZSBlYXN5IHdheSBvdXQgYW5kIHBhc3NlZCBOVUxMIGFzIHRoZSBjcnRj IGZvciBhbGwgdGhlIGRyaXZlcgo+IGludGVybmFsIHVzZXMgb2YgLmJlc3RfZW5jb2RlcigpIGlu IHRoZSBhbWRncHUvcmFkZW9uIGRyaXZlcnMuIE5vbmUgb2YKPiB0aGUgb3RoZXIgZHJpdmVycyBo YXZlIHN1Y2ggaW50ZXJuYWwgdXNlcy4gVGhlIG90aGVyIGNhbGxlcnMKPiAoY3J0Y19oZWxwZXIs IGF0b21pY19oZWxwZXIsIGZiX2hlbHBlcikgd2lsbCBwYXNzIGluIHRoZSBwcm9wZXIgY3J0Yy4K PiBidXQgbm8gb25lIGJlc2lkZXMgaTkxNSB3aWxsIGN1cnJlbnRseSBsb29rIGF0IGl0Lgo+IAo+ IENjOiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+Cj4gQ2M6ICJDaHJp c3RpYW4gS8O2bmlnIiA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+IENjOiAiRGF2aWQgKENo dW5NaW5nKSBaaG91IiA8RGF2aWQxLlpob3VAYW1kLmNvbT4KPiBDYzogSGFycnkgV2VudGxhbmQg PGhhcnJ5LndlbnRsYW5kQGFtZC5jb20+Cj4gQ2M6IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nv bm5lY3RvcnMuYyAgICAgfCAzMyArKysrKysrKystLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9kY2VfdmlydHVhbC5jICAgICAgICAgICB8ICAzICstCj4gIGRyaXZlcnMvZ3B1 L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMgIHwgIDcgKystLQo+ICAuLi4v YW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV9tc3RfdHlwZXMuYyAgICB8ICA1ICstLQo+ ICBkcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9tb2RlLmMgICAgICAgICAgICAgICAgICAgICB8ICAz ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19rbXMuYyAgICAgICAgICAgICAgICAg IHwgIDMgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9j b3JlLmMgfCAgMyArLQo+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RjMzU4NzY3LmMgICAgICAg ICAgICAgICAgICB8ICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX21vZGUu YyAgICAgICAgICAgICAgIHwgIDUgKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hl bHBlci5jICAgICAgICAgICAgICAgIHwgMTYgKysrKysrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9k cm1fY3J0Y19oZWxwZXIuYyAgICAgICAgICAgICAgICAgIHwgIDMgKy0KPiAgZHJpdmVycy9ncHUv ZHJtL2RybV9mYl9oZWxwZXIuYyAgICAgICAgICAgICAgICAgICAgfCA0MSArKysrKysrKysrKyst LS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9nbWE1MDAvZ21hX2Rpc3BsYXkuYyAgICAgICAg ICAgICAgIHwgIDMgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9tZGZsZF9kc2lfb3V0cHV0 LmMgICAgICAgICAgfCAgNSArLS0KPiAgZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9wc2JfaW50ZWxf ZHJ2LmggICAgICAgICAgICAgfCAgMyArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hp Ym1jL2hpYm1jX2RybV92ZGFjLmMgICB8ICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pMmMvdGRh OTk4eF9kcnYuYyAgICAgICAgICAgICAgICAgIHwgIDMgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHBfbXN0LmMgICAgICAgICAgICAgICAgfCAgOSArKystLQo+ICBkcml2ZXJzL2dw dS9kcm0vaW14L2lteC1sZGIuYyAgICAgICAgICAgICAgICAgICAgICB8ICA1ICstLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaW14L2lteC10dmUuYyAgICAgICAgICAgICAgICAgICAgICB8ICA1ICstLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVsLWRpc3BsYXkuYyAgICAgICAgICAgICB8ICA1 ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWkuYyAgICAgICAgICAgICAg ICB8ICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfbW9kZS5jICAgICAg ICAgICAgIHwgIDUgKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9tYW5hZ2VyLmMg ICAgICAgICAgICAgIHwgIDMgKy0KPiAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAv ZGlzcC5jICAgICAgICAgICAgfCAgMyArLQo+ICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2 ZWF1X2Nvbm5lY3Rvci5jICAgICAgICB8ICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhs X2Rpc3BsYXkuYyAgICAgICAgICAgICAgICAgIHwgIDMgKy0KPiAgZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fY29ubmVjdG9ycy5jICAgICAgICAgfCA0MCArKysrKysrKysrKy0tLS0tLS0t LS0KPiAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZHBfbXN0LmMgICAgICAgICAgICAg fCAgNSArLS0KPiAgZHJpdmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2RybV9jcnRjLmMgICAg ICAgICAgfCAgMyArLQo+ICBkcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19wYW5lbC5jICAg ICAgICAgICAgICB8ICA1ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY190ZnA0 MTAuYyAgICAgICAgICAgICB8ICA1ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9jb25u ZWN0b3IuYyAgICAgICAgICAgICAgICB8ICAzICstCj4gIGRyaXZlcnMvc3RhZ2luZy92Ym94dmlk ZW8vdmJveF9tb2RlLmMgICAgICAgICAgICAgIHwgIDUgKy0tCj4gIGluY2x1ZGUvZHJtL2RybV9h dG9taWNfaGVscGVyLmggICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KPiAgaW5jbHVkZS9kcm0v ZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaCAgICAgICAgICAgfCAgNiArKy0tCj4gIDM2IGZp bGVzIGNoYW5nZWQsIDE1NSBpbnNlcnRpb25zKCspLCAxMDYgZGVsZXRpb25zKC0pCj4gCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jb25uZWN0b3JzLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY29ubmVjdG9ycy5jCj4gaW5kZXgg OGU2Njg1MWViNDI3Li4zZGZhNTBlYzI1ODkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2Nvbm5lY3RvcnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9jb25uZWN0b3JzLmMKPiBAQCAtMTM1LDcgKzEzNSw4IEBAIGludCBh bWRncHVfY29ubmVjdG9yX2dldF9tb25pdG9yX2JwYyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yKQo+ICAJCWVsc2Ugewo+ICAJCQljb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxw ZXJfZnVuY3MgKmNvbm5lY3Rvcl9mdW5jcyA9Cj4gIAkJCQljb25uZWN0b3ItPmhlbHBlcl9wcml2 YXRlOwo+IC0JCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSBjb25uZWN0b3JfZnVuY3Mt PmJlc3RfZW5jb2Rlcihjb25uZWN0b3IpOwo+ICsJCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIgPSBjb25uZWN0b3JfZnVuY3MtPmJlc3RfZW5jb2Rlcihjb25uZWN0b3IsCj4gKwkJCQkJCQkJ CQkgICAgTlVMTCk7Cj4gIAkJCXN0cnVjdCBhbWRncHVfZW5jb2RlciAqYW1kZ3B1X2VuY29kZXIg PSB0b19hbWRncHVfZW5jb2RlcihlbmNvZGVyKTsKPiAgCQkJc3RydWN0IGFtZGdwdV9lbmNvZGVy X2F0b21fZGlnICpkaWcgPSBhbWRncHVfZW5jb2Rlci0+ZW5jX3ByaXY7Cj4gIAo+IEBAIC0yMTgs NyArMjE5LDcgQEAgYW1kZ3B1X2Nvbm5lY3Rvcl91cGRhdGVfc2NyYXRjaF9yZWdzKHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAlib29sIGNvbm5lY3RlZDsKPiAgCWludCBpOwo+ ICAKPiAtCWJlc3RfZW5jb2RlciA9IGNvbm5lY3Rvcl9mdW5jcy0+YmVzdF9lbmNvZGVyKGNvbm5l Y3Rvcik7Cj4gKwliZXN0X2VuY29kZXIgPSBjb25uZWN0b3JfZnVuY3MtPmJlc3RfZW5jb2Rlcihj b25uZWN0b3IsIE5VTEwpOwo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCBEUk1fQ09OTkVDVE9SX01B WF9FTkNPREVSOyBpKyspIHsKPiAgCQlpZiAoY29ubmVjdG9yLT5lbmNvZGVyX2lkc1tpXSA9PSAw KQo+IEBAIC0zNTgsNyArMzU5LDggQEAgc3RhdGljIGludCBhbWRncHVfY29ubmVjdG9yX2RkY19n ZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgfQo+ICAKPiAgc3Rh dGljIHN0cnVjdCBkcm1fZW5jb2RlciAqCj4gLWFtZGdwdV9jb25uZWN0b3JfYmVzdF9zaW5nbGVf ZW5jb2RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICthbWRncHVfY29ubmVj dG9yX2Jlc3Rfc2luZ2xlX2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwK PiArCQkJCSAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICB7Cj4gIAlpbnQgZW5jX2lkID0g Y29ubmVjdG9yLT5lbmNvZGVyX2lkc1swXTsKPiAgCj4gQEAgLTM3MCw3ICszNzIsNyBAQCBhbWRn cHVfY29ubmVjdG9yX2Jlc3Rfc2luZ2xlX2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvcikKPiAgCj4gIHN0YXRpYyB2b2lkIGFtZGdwdV9nZXRfbmF0aXZlX21vZGUoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgewo+IC0Jc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyID0gYW1kZ3B1X2Nvbm5lY3Rvcl9iZXN0X3NpbmdsZV9lbmNvZGVyKGNvbm5lY3Rvcik7 Cj4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSBhbWRncHVfY29ubmVjdG9yX2Jlc3Rf c2luZ2xlX2VuY29kZXIoY29ubmVjdG9yLCBOVUxMKTsKPiAgCXN0cnVjdCBhbWRncHVfZW5jb2Rl ciAqYW1kZ3B1X2VuY29kZXI7Cj4gIAo+ICAJaWYgKGVuY29kZXIgPT0gTlVMTCkKPiBAQCAtNTkz LDcgKzU5NSw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHkoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCQkJYW1kZ3B1X2VuY29kZXIgPSB0b19h bWRncHVfZW5jb2Rlcihjb25uZWN0b3ItPmVuY29kZXIpOwo+ICAJCX0gZWxzZSB7Cj4gIAkJCWNv bnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyAqY29ubmVjdG9yX2Z1bmNzID0g Y29ubmVjdG9yLT5oZWxwZXJfcHJpdmF0ZTsKPiAtCQkJYW1kZ3B1X2VuY29kZXIgPSB0b19hbWRn cHVfZW5jb2Rlcihjb25uZWN0b3JfZnVuY3MtPmJlc3RfZW5jb2Rlcihjb25uZWN0b3IpKTsKPiAr CQkJYW1kZ3B1X2VuY29kZXIgPSB0b19hbWRncHVfZW5jb2Rlcihjb25uZWN0b3JfZnVuY3MtPmJl c3RfZW5jb2Rlcihjb25uZWN0b3IsIE5VTEwpKTsKPiAgCQl9Cj4gIAo+ICAJCXN3aXRjaCAodmFs KSB7Cj4gQEAgLTY2Myw3ICs2NjUsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9jb25uZWN0b3JfbHZk c19nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgCWFtZGdwdV9j b25uZWN0b3JfZ2V0X2VkaWQoY29ubmVjdG9yKTsKPiAgCXJldCA9IGFtZGdwdV9jb25uZWN0b3Jf ZGRjX2dldF9tb2Rlcyhjb25uZWN0b3IpOwo+ICAJaWYgKHJldCA+IDApIHsKPiAtCQllbmNvZGVy ID0gYW1kZ3B1X2Nvbm5lY3Rvcl9iZXN0X3NpbmdsZV9lbmNvZGVyKGNvbm5lY3Rvcik7Cj4gKwkJ ZW5jb2RlciA9IGFtZGdwdV9jb25uZWN0b3JfYmVzdF9zaW5nbGVfZW5jb2Rlcihjb25uZWN0b3Is IE5VTEwpOwo+ICAJCWlmIChlbmNvZGVyKSB7Cj4gIAkJCWFtZGdwdV9jb25uZWN0b3JfZml4dXBf bGNkX25hdGl2ZV9tb2RlKGVuY29kZXIsIGNvbm5lY3Rvcik7Cj4gIAkJCS8qIGFkZCBzY2FsZWQg bW9kZXMgKi8KPiBAQCAtNjcyLDcgKzY3NCw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2Nvbm5lY3Rv cl9sdmRzX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAJCXJl dHVybiByZXQ7Cj4gIAl9Cj4gIAo+IC0JZW5jb2RlciA9IGFtZGdwdV9jb25uZWN0b3JfYmVzdF9z aW5nbGVfZW5jb2Rlcihjb25uZWN0b3IpOwo+ICsJZW5jb2RlciA9IGFtZGdwdV9jb25uZWN0b3Jf YmVzdF9zaW5nbGVfZW5jb2Rlcihjb25uZWN0b3IsIE5VTEwpOwo+ICAJaWYgKCFlbmNvZGVyKQo+ ICAJCXJldHVybiAwOwo+ICAKPiBAQCAtNjk0LDcgKzY5Niw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1 X2Nvbm5lY3Rvcl9sdmRzX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y KQo+ICBzdGF0aWMgZW51bSBkcm1fbW9kZV9zdGF0dXMgYW1kZ3B1X2Nvbm5lY3Rvcl9sdmRzX21v ZGVfdmFsaWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCQkJCQkgICAgIHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIgPSBhbWRncHVfY29ubmVjdG9yX2Jlc3Rfc2luZ2xlX2VuY29kZXIoY29ubmVjdG9y KTsKPiArCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9IGFtZGdwdV9jb25uZWN0b3JfYmVz dF9zaW5nbGVfZW5jb2Rlcihjb25uZWN0b3IsIE5VTEwpOwo+ICAKPiAgCWlmICgobW9kZS0+aGRp c3BsYXkgPCAzMjApIHx8IChtb2RlLT52ZGlzcGxheSA8IDI0MCkpCj4gIAkJcmV0dXJuIE1PREVf UEFORUw7Cj4gQEAgLTcyNSw3ICs3MjcsNyBAQCBzdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0 YXR1cwo+ICBhbWRncHVfY29ubmVjdG9yX2x2ZHNfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCj4gIHsKPiAgCXN0cnVjdCBhbWRncHVfY29ubmVjdG9y ICphbWRncHVfY29ubmVjdG9yID0gdG9fYW1kZ3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+IC0J c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gYW1kZ3B1X2Nvbm5lY3Rvcl9iZXN0X3Npbmds ZV9lbmNvZGVyKGNvbm5lY3Rvcik7Cj4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSBh bWRncHVfY29ubmVjdG9yX2Jlc3Rfc2luZ2xlX2VuY29kZXIoY29ubmVjdG9yLCBOVUxMKTsKPiAg CWVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgcmV0ID0gY29ubmVjdG9yX3N0YXR1c19kaXNjb25u ZWN0ZWQ7Cj4gIAlpbnQgcjsKPiAgCj4gQEAgLTc5OCw3ICs4MDAsNyBAQCBzdGF0aWMgaW50IGFt ZGdwdV9jb25uZWN0b3Jfc2V0X2xjZF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yLAo+ICAJCWFtZGdwdV9lbmNvZGVyID0gdG9fYW1kZ3B1X2VuY29kZXIoY29ubmVjdG9y LT5lbmNvZGVyKTsKPiAgCWVsc2Ugewo+ICAJCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hl bHBlcl9mdW5jcyAqY29ubmVjdG9yX2Z1bmNzID0gY29ubmVjdG9yLT5oZWxwZXJfcHJpdmF0ZTsK PiAtCQlhbWRncHVfZW5jb2RlciA9IHRvX2FtZGdwdV9lbmNvZGVyKGNvbm5lY3Rvcl9mdW5jcy0+ YmVzdF9lbmNvZGVyKGNvbm5lY3RvcikpOwo+ICsJCWFtZGdwdV9lbmNvZGVyID0gdG9fYW1kZ3B1 X2VuY29kZXIoY29ubmVjdG9yX2Z1bmNzLT5iZXN0X2VuY29kZXIoY29ubmVjdG9yLCBOVUxMKSk7 Cj4gIAl9Cj4gIAo+ICAJc3dpdGNoICh2YWx1ZSkgewo+IEBAIC04NzMsNyArODc1LDcgQEAgYW1k Z3B1X2Nvbm5lY3Rvcl92Z2FfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is IGJvb2wgZm9yY2UpCj4gIAkJCXJldHVybiBjb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZDsK PiAgCX0KPiAgCj4gLQllbmNvZGVyID0gYW1kZ3B1X2Nvbm5lY3Rvcl9iZXN0X3NpbmdsZV9lbmNv ZGVyKGNvbm5lY3Rvcik7Cj4gKwllbmNvZGVyID0gYW1kZ3B1X2Nvbm5lY3Rvcl9iZXN0X3Npbmds ZV9lbmNvZGVyKGNvbm5lY3RvciwgTlVMTCk7Cj4gIAlpZiAoIWVuY29kZXIpCj4gIAkJcmV0ID0g Y29ubmVjdG9yX3N0YXR1c19kaXNjb25uZWN0ZWQ7Cj4gIAo+IEBAIC0xMTMwLDcgKzExMzIsOCBA QCBhbWRncHVfY29ubmVjdG9yX2R2aV9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvciwgYm9vbCBmb3JjZSkKPiAgCj4gIC8qIG9rYXkgbmVlZCB0byBiZSBzbWFydCBpbiBoZXJl IGFib3V0IHdoaWNoIGVuY29kZXIgdG8gcGljayAqLwo+ICBzdGF0aWMgc3RydWN0IGRybV9lbmNv ZGVyICoKPiAtYW1kZ3B1X2Nvbm5lY3Rvcl9kdmlfZW5jb2RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQo+ICthbWRncHVfY29ubmVjdG9yX2R2aV9lbmNvZGVyKHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCSAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ ICB7Cj4gIAlpbnQgZW5jX2lkID0gY29ubmVjdG9yLT5lbmNvZGVyX2lkc1swXTsKPiAgCXN0cnVj dCBhbWRncHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yID0gdG9fYW1kZ3B1X2Nvbm5lY3Rv cihjb25uZWN0b3IpOwo+IEBAIC0xMjI0LDcgKzEyMjcsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9j b25uZWN0b3JfZHBfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4g IHsKPiAgCXN0cnVjdCBhbWRncHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yID0gdG9fYW1k Z3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+ICAJc3RydWN0IGFtZGdwdV9jb25uZWN0b3JfYXRv bV9kaWcgKmFtZGdwdV9kaWdfY29ubmVjdG9yID0gYW1kZ3B1X2Nvbm5lY3Rvci0+Y29uX3ByaXY7 Cj4gLQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSBhbWRncHVfY29ubmVjdG9yX2Jlc3Rf c2luZ2xlX2VuY29kZXIoY29ubmVjdG9yKTsKPiArCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl ciA9IGFtZGdwdV9jb25uZWN0b3JfYmVzdF9zaW5nbGVfZW5jb2Rlcihjb25uZWN0b3IsIE5VTEwp Owo+ICAJaW50IHJldDsKPiAgCj4gIAlpZiAoKGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0g RFJNX01PREVfQ09OTkVDVE9SX2VEUCkgfHwKPiBAQCAtMTM2Myw3ICsxMzY2LDcgQEAgYW1kZ3B1 X2Nvbm5lY3Rvcl9kcF9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9v bCBmb3JjZSkKPiAgCXN0cnVjdCBhbWRncHVfY29ubmVjdG9yICphbWRncHVfY29ubmVjdG9yID0g dG9fYW1kZ3B1X2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+ICAJZW51bSBkcm1fY29ubmVjdG9yX3N0 YXR1cyByZXQgPSBjb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZDsKPiAgCXN0cnVjdCBhbWRn cHVfY29ubmVjdG9yX2F0b21fZGlnICphbWRncHVfZGlnX2Nvbm5lY3RvciA9IGFtZGdwdV9jb25u ZWN0b3ItPmNvbl9wcml2Owo+IC0Jc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gYW1kZ3B1 X2Nvbm5lY3Rvcl9iZXN0X3NpbmdsZV9lbmNvZGVyKGNvbm5lY3Rvcik7Cj4gKwlzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIgPSBhbWRncHVfY29ubmVjdG9yX2Jlc3Rfc2luZ2xlX2VuY29kZXIo Y29ubmVjdG9yLCBOVUxMKTsKPiAgCWludCByOwo+ICAKPiAgCWlmICghZHJtX2ttc19oZWxwZXJf aXNfcG9sbF93b3JrZXIoKSkgewo+IEBAIC0xNDU4LDcgKzE0NjEsNyBAQCBzdGF0aWMgZW51bSBk cm1fbW9kZV9zdGF0dXMgYW1kZ3B1X2Nvbm5lY3Rvcl9kcF9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1f Y29ubmVjdG9yCj4gIAo+ICAJaWYgKChjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlID09IERSTV9N T0RFX0NPTk5FQ1RPUl9lRFApIHx8Cj4gIAkgICAgKGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUg PT0gRFJNX01PREVfQ09OTkVDVE9SX0xWRFMpKSB7Cj4gLQkJc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyID0gYW1kZ3B1X2Nvbm5lY3Rvcl9iZXN0X3NpbmdsZV9lbmNvZGVyKGNvbm5lY3Rvcik7 Cj4gKwkJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gYW1kZ3B1X2Nvbm5lY3Rvcl9iZXN0 X3NpbmdsZV9lbmNvZGVyKGNvbm5lY3RvciwgTlVMTCk7Cj4gIAo+ICAJCWlmICgobW9kZS0+aGRp c3BsYXkgPCAzMjApIHx8IChtb2RlLT52ZGlzcGxheSA8IDI0MCkpCj4gIAkJCXJldHVybiBNT0RF X1BBTkVMOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2Vfdmly dHVhbC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3ZpcnR1YWwuYwo+IGluZGV4 IGRiZjJjY2QwYzc0NC4uYjAyY2UzOWU2NWI3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2RjZV92aXJ0dWFsLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9kY2VfdmlydHVhbC5jCj4gQEAgLTI2Nyw3ICsyNjcsOCBAQCBzdGF0aWMgaW50IGRjZV92 aXJ0dWFsX2Vhcmx5X2luaXQodm9pZCAqaGFuZGxlKQo+ICB9Cj4gIAo+ICBzdGF0aWMgc3RydWN0 IGRybV9lbmNvZGVyICoKPiAtZGNlX3ZpcnR1YWxfZW5jb2RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQo+ICtkY2VfdmlydHVhbF9lbmNvZGVyKHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IsCj4gKwkJICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgewo+ICAJaW50 IGVuY19pZCA9IGNvbm5lY3Rvci0+ZW5jb2Rlcl9pZHNbMF07Cj4gIAlzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXI7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9h bWRncHVfZG0vYW1kZ3B1X2RtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1 X2RtL2FtZGdwdV9kbS5jCj4gaW5kZXggM2UxYzJhMDRkNjY5Li5lNTZlZDRlNTgxOGYgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0u Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2Rt LmMKPiBAQCAtMjc1OCw3ICsyNzU4LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX2Z1bmNzIGFtZGdwdV9kbV9jb25uZWN0b3JfZnVuY3MgPSB7Cj4gIAkuYXRvbWljX2dldF9w cm9wZXJ0eSA9IGFtZGdwdV9kbV9jb25uZWN0b3JfYXRvbWljX2dldF9wcm9wZXJ0eQo+ICB9Owo+ ICAKPiAtc3RhdGljIHN0cnVjdCBkcm1fZW5jb2RlciAqYmVzdF9lbmNvZGVyKHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3N0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXIgKmJlc3Rf ZW5jb2RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICsJCQkJCXN0cnVjdCBk cm1fY3J0YyAqY3J0YykKPiAgewo+ICAJaW50IGVuY19pZCA9IGNvbm5lY3Rvci0+ZW5jb2Rlcl9p ZHNbMF07Cj4gIAlzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmo7Cj4gQEAgLTMzMDQsNyArMzMw NSw3IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kbV9nZXRfbmF0aXZlX21vZGUoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvcikKPiAgCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKPiAg CXN0cnVjdCBhbWRncHVfZW5jb2RlciAqYW1kZ3B1X2VuY29kZXI7Cj4gIAo+IC0JZW5jb2RlciA9 IGhlbHBlci0+YmVzdF9lbmNvZGVyKGNvbm5lY3Rvcik7Cj4gKwllbmNvZGVyID0gaGVscGVyLT5i ZXN0X2VuY29kZXIoY29ubmVjdG9yLCBOVUxMKTsKPiAgCj4gIAlpZiAoZW5jb2RlciA9PSBOVUxM KQo+ICAJCXJldHVybjsKPiBAQCAtMzQzOCw3ICszNDM5LDcgQEAgc3RhdGljIGludCBhbWRncHVf ZG1fY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ ICAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwo+ICAJc3RydWN0IGVkaWQgKmVkaWQgPSBh bWRncHVfZG1fY29ubmVjdG9yLT5lZGlkOwo+ICAKPiAtCWVuY29kZXIgPSBoZWxwZXItPmJlc3Rf ZW5jb2Rlcihjb25uZWN0b3IpOwo+ICsJZW5jb2RlciA9IGhlbHBlci0+YmVzdF9lbmNvZGVyKGNv bm5lY3RvciwgTlVMTCk7Cj4gIAlhbWRncHVfZG1fY29ubmVjdG9yX2RkY19nZXRfbW9kZXMoY29u bmVjdG9yLCBlZGlkKTsKPiAgCWFtZGdwdV9kbV9jb25uZWN0b3JfYWRkX2NvbW1vbl9tb2Rlcyhl bmNvZGVyLCBjb25uZWN0b3IpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fbXN0X3R5cGVzLmMgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbV9tc3RfdHlwZXMuYwo+IGluZGV4IDQz MDRkOWU0MDhiOC4uNDU0NGExNDAxY2FmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtX21zdF90eXBlcy5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fbXN0X3R5cGVzLmMKPiBA QCAtMjY5LDcgKzI2OSw4IEBAIHN0YXRpYyBpbnQgZG1fZHBfbXN0X2dldF9tb2RlcyhzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAJcmV0dXJuIHJldDsKPiAgfQo+ICAKPiAtc3Rh dGljIHN0cnVjdCBkcm1fZW5jb2RlciAqZG1fbXN0X2Jlc3RfZW5jb2RlcihzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yKQo+ICtzdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyICpkbV9tc3Rf YmVzdF9lbmNvZGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCQkJICAg ICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgewo+ICAJc3RydWN0IGFtZGdwdV9kbV9jb25u ZWN0b3IgKmFtZGdwdV9kbV9jb25uZWN0b3IgPSB0b19hbWRncHVfZG1fY29ubmVjdG9yKGNvbm5l Y3Rvcik7Cj4gIAo+IEBAIC0zMDIsNyArMzAzLDcgQEAgZG1fZHBfY3JlYXRlX2Zha2VfbXN0X2Vu Y29kZXIoc3RydWN0IGFtZGdwdV9kbV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgCWNvbnN0IHN0 cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyAqY29ubmVjdG9yX2Z1bmNzID0KPiAgCQlj b25uZWN0b3ItPmJhc2UuaGVscGVyX3ByaXZhdGU7Cj4gIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y19tYXN0ZXIgPQo+IC0JCWNvbm5lY3Rvcl9mdW5jcy0+YmVzdF9lbmNvZGVyKCZjb25uZWN0b3It PmJhc2UpOwo+ICsJCWNvbm5lY3Rvcl9mdW5jcy0+YmVzdF9lbmNvZGVyKCZjb25uZWN0b3ItPmJh c2UsIE5VTEwpOwo+ICAKPiAgCURSTV9ERUJVR19LTVMoImVuYyBtYXN0ZXIgaXMgJXBcbiIsIGVu Y19tYXN0ZXIpOwo+ICAJYW1kZ3B1X2VuY29kZXIgPSBremFsbG9jKHNpemVvZigqYW1kZ3B1X2Vu Y29kZXIpLCBHRlBfS0VSTkVMKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FzdC9h c3RfbW9kZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbW9kZS5jCj4gaW5kZXggMDM2ZGZm OGExZjMzLi5kNTg5OWFhNDFkMzcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FzdC9h c3RfbW9kZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfbW9kZS5jCj4gQEAgLTcw OSw3ICs3MDksOCBAQCBzdGF0aWMgdm9pZCBhc3RfZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlcikKPiAgfQo+ICAKPiAgCj4gLXN0YXRpYyBzdHJ1Y3QgZHJtX2VuY29k ZXIgKmFzdF9iZXN0X3NpbmdsZV9lbmNvZGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IpCj4gK3N0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXIgKmFzdF9iZXN0X3NpbmdsZV9lbmNvZGVy KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCQkJCSAgIHN0cnVjdCBkcm1f Y3J0YyAqY3J0YykKPiAgewo+ICAJaW50IGVuY19pZCA9IGNvbm5lY3Rvci0+ZW5jb2Rlcl9pZHNb MF07Cj4gIAkvKiBwaWNrIHRoZSBlbmNvZGVyIGlkcyAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYm9jaHMvYm9jaHNfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHNf a21zLmMKPiBpbmRleCAyMzM5ODBhNzg1OTEuLmRjODBhMjM4ZmVlZiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vYm9jaHMvYm9jaHNfa21zLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v Ym9jaHMvYm9jaHNfa21zLmMKPiBAQCAtMjA4LDcgKzIwOCw4IEBAIHN0YXRpYyBlbnVtIGRybV9t b2RlX3N0YXR1cyBib2Noc19jb25uZWN0b3JfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29uCj4gIH0KPiAgCj4gIHN0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXIgKgo+IC1ib2Noc19j b25uZWN0b3JfYmVzdF9lbmNvZGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4g K2JvY2hzX2Nvbm5lY3Rvcl9iZXN0X2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvciwKPiArCQkJICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIHsKPiAgCWludCBlbmNf aWQgPSBjb25uZWN0b3ItPmVuY29kZXJfaWRzWzBdOwo+ICAJLyogcGljayB0aGUgZW5jb2RlciBp ZHMgKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFs b2dpeF9kcF9jb3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4 X2RwX2NvcmUuYwo+IGluZGV4IDJiY2JmYWRiNmFjNS4uMDcwNjQ3MWM4YzYzIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9jb3JlLmMK PiBAQCAtMTEzNyw3ICsxMTM3LDggQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9nZXRfbW9kZXMo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgfQo+ICAKPiAgc3RhdGljIHN0cnVj dCBkcm1fZW5jb2RlciAqCj4gLWFuYWxvZ2l4X2RwX2Jlc3RfZW5jb2RlcihzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yKQo+ICthbmFsb2dpeF9kcF9iZXN0X2VuY29kZXIoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAg ewo+ICAJc3RydWN0IGFuYWxvZ2l4X2RwX2RldmljZSAqZHAgPSB0b19kcChjb25uZWN0b3IpOwo+ ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90YzM1ODc2Ny5jIGIvZHJp dmVycy9ncHUvZHJtL2JyaWRnZS90YzM1ODc2Ny5jCj4gaW5kZXggMGZkOWNmMjc1NDJjLi43Y2Q5 NTQyMjZmZTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90YzM1ODc2Ny5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90YzM1ODc2Ny5jCj4gQEAgLTExNTUsNyAr MTE1NSw4IEBAIHN0YXRpYyB2b2lkIHRjX2Nvbm5lY3Rvcl9zZXRfcG9sbGluZyhzdHJ1Y3QgdGNf ZGF0YSAqdGMsCj4gIH0KPiAgCj4gIHN0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXIgKgo+IC10Y19j b25uZWN0b3JfYmVzdF9lbmNvZGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4g K3RjX2Nvbm5lY3Rvcl9iZXN0X2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciwKPiArCQkJICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIHsKPiAgCXN0cnVjdCB0Y19kYXRh ICp0YyA9IGNvbm5lY3Rvcl90b190Yyhjb25uZWN0b3IpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfbW9kZS5jIGIvZHJpdmVycy9ncHUvZHJtL2NpcnJ1 cy9jaXJydXNfbW9kZS5jCj4gaW5kZXggYjUyOWY4YzhlMmE2Li4zNzhlYmMzZjI1ZTggMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfbW9kZS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfbW9kZS5jCj4gQEAgLTQ1MSw4ICs0NTEsOSBAQCBz dGF0aWMgaW50IGNpcnJ1c192Z2FfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IpCj4gIAlyZXR1cm4gY291bnQ7Cj4gIH0KPiAgCj4gLXN0YXRpYyBzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmNpcnJ1c19jb25uZWN0b3JfYmVzdF9lbmNvZGVyKHN0cnVjdCBkcm1fY29ubmVjdG9y Cj4gLQkJCQkJCSAgKmNvbm5lY3RvcikKPiArc3RhdGljIHN0cnVjdCBkcm1fZW5jb2RlciAqCj4g K2NpcnJ1c19jb25uZWN0b3JfYmVzdF9lbmNvZGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IsCj4gKwkJCSAgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgewo+ICAJaW50IGVu Y19pZCA9IGNvbm5lY3Rvci0+ZW5jb2Rlcl9pZHNbMF07Cj4gIAkvKiBwaWNrIHRoZSBlbmNvZGVy IGlkcyAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIu YyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gaW5kZXggMjMyZmExMWE1 ZTMxLi5iZDNhZWJiZmQ1YjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWNfaGVscGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ IEBAIC0xMTUsOSArMTE1LDExIEBAIHN0YXRpYyBpbnQgaGFuZGxlX2NvbmZsaWN0aW5nX2VuY29k ZXJzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiAgCQlpZiAoZnVuY3MtPmF0b21p Y19iZXN0X2VuY29kZXIpCj4gIAkJCW5ld19lbmNvZGVyID0gZnVuY3MtPmF0b21pY19iZXN0X2Vu Y29kZXIoY29ubmVjdG9yLCBuZXdfY29ubl9zdGF0ZSk7Cj4gIAkJZWxzZSBpZiAoZnVuY3MtPmJl c3RfZW5jb2RlcikKPiAtCQkJbmV3X2VuY29kZXIgPSBmdW5jcy0+YmVzdF9lbmNvZGVyKGNvbm5l Y3Rvcik7Cj4gKwkJCW5ld19lbmNvZGVyID0gZnVuY3MtPmJlc3RfZW5jb2Rlcihjb25uZWN0b3Is Cj4gKwkJCQkJCQkgIG5ld19jb25uX3N0YXRlLT5jcnRjKTsKPiAgCQllbHNlCj4gLQkJCW5ld19l bmNvZGVyID0gZHJtX2F0b21pY19oZWxwZXJfYmVzdF9lbmNvZGVyKGNvbm5lY3Rvcik7Cj4gKwkJ CW5ld19lbmNvZGVyID0gZHJtX2F0b21pY19oZWxwZXJfYmVzdF9lbmNvZGVyKGNvbm5lY3RvciwK PiArCQkJCQkJCQkgICAgIG5ld19jb25uX3N0YXRlLT5jcnRjKTsKPiAgCj4gIAkJaWYgKG5ld19l bmNvZGVyKSB7Cj4gIAkJCWlmIChlbmNvZGVyX21hc2sgJiAoMSA8PCBkcm1fZW5jb2Rlcl9pbmRl eChuZXdfZW5jb2RlcikpKSB7Cj4gQEAgLTMxMiw5ICszMTQsMTEgQEAgdXBkYXRlX2Nvbm5lY3Rv cl9yb3V0aW5nKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiAgCQluZXdfZW5jb2Rl ciA9IGZ1bmNzLT5hdG9taWNfYmVzdF9lbmNvZGVyKGNvbm5lY3RvciwKPiAgCQkJCQkJCSBuZXdf Y29ubmVjdG9yX3N0YXRlKTsKPiAgCWVsc2UgaWYgKGZ1bmNzLT5iZXN0X2VuY29kZXIpCj4gLQkJ bmV3X2VuY29kZXIgPSBmdW5jcy0+YmVzdF9lbmNvZGVyKGNvbm5lY3Rvcik7Cj4gKwkJbmV3X2Vu Y29kZXIgPSBmdW5jcy0+YmVzdF9lbmNvZGVyKGNvbm5lY3RvciwKPiArCQkJCQkJICBuZXdfY29u bmVjdG9yX3N0YXRlLT5jcnRjKTsKPiAgCWVsc2UKPiAtCQluZXdfZW5jb2RlciA9IGRybV9hdG9t aWNfaGVscGVyX2Jlc3RfZW5jb2Rlcihjb25uZWN0b3IpOwo+ICsJCW5ld19lbmNvZGVyID0gZHJt X2F0b21pY19oZWxwZXJfYmVzdF9lbmNvZGVyKGNvbm5lY3RvciwKPiArCQkJCQkJCSAgICAgbmV3 X2Nvbm5lY3Rvcl9zdGF0ZS0+Y3J0Yyk7Cj4gIAo+ICAJaWYgKCFuZXdfZW5jb2Rlcikgewo+ICAJ CURSTV9ERUJVR19BVE9NSUMoIk5vIHN1aXRhYmxlIGVuY29kZXIgZm91bmQgZm9yIFtDT05ORUNU T1I6JWQ6JXNdXG4iLAo+IEBAIC0zMzE4LDEzICszMzIyLDE1IEBAIEVYUE9SVF9TWU1CT0woZHJt X2F0b21pY19oZWxwZXJfcGFnZV9mbGlwX3RhcmdldCk7Cj4gICAqIGRybV9hdG9taWNfaGVscGVy X2Jlc3RfZW5jb2RlciAtIEhlbHBlciBmb3IKPiAgICogCSZkcm1fY29ubmVjdG9yX2hlbHBlcl9m dW5jcy5iZXN0X2VuY29kZXIgY2FsbGJhY2sKPiAgICogQGNvbm5lY3RvcjogQ29ubmVjdG9yIGNv bnRyb2wgc3RydWN0dXJlCj4gKyAqIEBjcnRjOiBEUk0gY3J0Ywo+ICAgKgo+ICAgKiBUaGlzIGlz IGEgJmRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzLmJlc3RfZW5jb2RlciBjYWxsYmFjayBoZWxw ZXIgZm9yCj4gICAqIGNvbm5lY3RvcnMgdGhhdCBzdXBwb3J0IGV4YWN0bHkgMSBlbmNvZGVyLCBz dGF0aWNhbGx5IGRldGVybWluZWQgYXQgZHJpdmVyCj4gICAqIGluaXQgdGltZS4KPiAgICovCj4g IHN0cnVjdCBkcm1fZW5jb2RlciAqCj4gLWRybV9hdG9taWNfaGVscGVyX2Jlc3RfZW5jb2Rlcihz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICtkcm1fYXRvbWljX2hlbHBlcl9iZXN0 X2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJICAgICAgIHN0 cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgewo+ICAJV0FSTl9PTihjb25uZWN0b3ItPmVuY29kZXJf aWRzWzFdKTsKPiAgCXJldHVybiBkcm1fZW5jb2Rlcl9maW5kKGNvbm5lY3Rvci0+ZGV2LCBOVUxM LCBjb25uZWN0b3ItPmVuY29kZXJfaWRzWzBdKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9jcnRjX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5j Cj4gaW5kZXggNWE4NGMzYmM5MTVkLi5mOTMxOGZjMTFmYjEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9j cnRjX2hlbHBlci5jCj4gQEAgLTYzNyw3ICs2MzcsOCBAQCBpbnQgZHJtX2NydGNfaGVscGVyX3Nl dF9jb25maWcoc3RydWN0IGRybV9tb2RlX3NldCAqc2V0LAo+ICAJCW5ld19lbmNvZGVyID0gY29u bmVjdG9yLT5lbmNvZGVyOwo+ICAJCWZvciAocm8gPSAwOyBybyA8IHNldC0+bnVtX2Nvbm5lY3Rv cnM7IHJvKyspIHsKPiAgCQkJaWYgKHNldC0+Y29ubmVjdG9yc1tyb10gPT0gY29ubmVjdG9yKSB7 Cj4gLQkJCQluZXdfZW5jb2RlciA9IGNvbm5lY3Rvcl9mdW5jcy0+YmVzdF9lbmNvZGVyKGNvbm5l Y3Rvcik7Cj4gKwkJCQluZXdfZW5jb2RlciA9IGNvbm5lY3Rvcl9mdW5jcy0+YmVzdF9lbmNvZGVy KGNvbm5lY3RvciwKPiArCQkJCQkJCQkJICAgIHNldC0+Y3J0Yyk7Cj4gIAkJCQkvKiBpZiB3ZSBj YW4ndCBnZXQgYW4gZW5jb2RlciBmb3IgYSBjb25uZWN0b3IKPiAgCQkJCSAgIHdlIGFyZSBzZXR0 aW5nIG5vdyAtIHRoZW4gZmFpbCAqLwo+ICAJCQkJaWYgKG5ld19lbmNvZGVyID09IE5VTEwpCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2ZiX2hlbHBlci5jCj4gaW5kZXggY2FiMTRmMjUzMzg0Li5jZTkxYWUxMmNjY2Ig MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPiBAQCAtMjMzMSw5ICsyMzMxLDggQEAgc3Rh dGljIGludCBkcm1fcGlja19jcnRjcyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLAo+ ICAJaW50IGMsIG87Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ICAJY29u c3Qgc3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzICpjb25uZWN0b3JfZnVuY3M7Cj4g LQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7Cj4gIAlpbnQgbXlfc2NvcmUsIGJlc3Rfc2Nv cmUsIHNjb3JlOwo+IC0Jc3RydWN0IGRybV9mYl9oZWxwZXJfY3J0YyAqKmNydGNzLCAqY3J0YzsK PiArCXN0cnVjdCBkcm1fZmJfaGVscGVyX2NydGMgKipjcnRjczsKPiAgCXN0cnVjdCBkcm1fZmJf aGVscGVyX2Nvbm5lY3RvciAqZmJfaGVscGVyX2Nvbm47Cj4gIAo+ICAJaWYgKG4gPT0gZmJfaGVs cGVyLT5jb25uZWN0b3JfY291bnQpCj4gQEAgLTIzNjIsMjggKzIzNjEsMzIgQEAgc3RhdGljIGlu dCBkcm1fcGlja19jcnRjcyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLAo+ICAKPiAg CWNvbm5lY3Rvcl9mdW5jcyA9IGNvbm5lY3Rvci0+aGVscGVyX3ByaXZhdGU7Cj4gIAo+IC0JLyoK PiAtCSAqIElmIHRoZSBEUk0gZGV2aWNlIGltcGxlbWVudHMgYXRvbWljIGhvb2tzIGFuZCAtPmJl c3RfZW5jb2RlcigpIGlzCj4gLQkgKiBOVUxMIHdlIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IGRy bV9hdG9taWNfaGVscGVyX2Jlc3RfZW5jb2RlcigpCj4gLQkgKiBoZWxwZXIuCj4gLQkgKi8KPiAt CWlmIChkcm1fZHJ2X3VzZXNfYXRvbWljX21vZGVzZXQoZmJfaGVscGVyLT5kZXYpICYmCj4gLQkg ICAgIWNvbm5lY3Rvcl9mdW5jcy0+YmVzdF9lbmNvZGVyKQo+IC0JCWVuY29kZXIgPSBkcm1fYXRv bWljX2hlbHBlcl9iZXN0X2VuY29kZXIoY29ubmVjdG9yKTsKPiAtCWVsc2UKPiAtCQllbmNvZGVy ID0gY29ubmVjdG9yX2Z1bmNzLT5iZXN0X2VuY29kZXIoY29ubmVjdG9yKTsKPiAtCj4gLQlpZiAo IWVuY29kZXIpCj4gLQkJZ290byBvdXQ7Cj4gLQo+ICAJLyoKPiAgCSAqIHNlbGVjdCBhIGNydGMg Zm9yIHRoaXMgY29ubmVjdG9yIGFuZCB0aGVuIGF0dGVtcHQgdG8gY29uZmlndXJlCj4gIAkgKiBy ZW1haW5pbmcgY29ubmVjdG9ycwo+ICAJICovCj4gIAlmb3IgKGMgPSAwOyBjIDwgZmJfaGVscGVy LT5jcnRjX2NvdW50OyBjKyspIHsKPiAtCQljcnRjID0gJmZiX2hlbHBlci0+Y3J0Y19pbmZvW2Nd Owo+ICsJCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKPiArCQlzdHJ1Y3QgZHJtX2ZiX2hl bHBlcl9jcnRjICpjcnRjID0gJmZiX2hlbHBlci0+Y3J0Y19pbmZvW2NdOwo+ICAKPiAtCQlpZiAo KGVuY29kZXItPnBvc3NpYmxlX2NydGNzICYgKDEgPDwgYykpID09IDApCj4gKwkJLyoKPiArCQkg KiBJZiB0aGUgRFJNIGRldmljZSBpbXBsZW1lbnRzIGF0b21pYyBob29rcyBhbmQgLT5iZXN0X2Vu Y29kZXIoKSBpcwo+ICsJCSAqIE5VTEwgd2UgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQgZHJtX2F0 b21pY19oZWxwZXJfYmVzdF9lbmNvZGVyKCkKPiArCQkgKiBoZWxwZXIuCj4gKwkJICovCj4gKwkJ aWYgKGRybV9kcnZfdXNlc19hdG9taWNfbW9kZXNldChmYl9oZWxwZXItPmRldikgJiYKPiArCQkg ICAgIWNvbm5lY3Rvcl9mdW5jcy0+YmVzdF9lbmNvZGVyKQo+ICsJCQllbmNvZGVyID0gZHJtX2F0 b21pY19oZWxwZXJfYmVzdF9lbmNvZGVyKGNvbm5lY3RvciwKPiArCQkJCQkJCQkgY3J0Yy0+bW9k ZV9zZXQuY3J0Yyk7Cj4gKwkJZWxzZQo+ICsJCQllbmNvZGVyID0gY29ubmVjdG9yX2Z1bmNzLT5i ZXN0X2VuY29kZXIoY29ubmVjdG9yLAo+ICsJCQkJCQkJCWNydGMtPm1vZGVfc2V0LmNydGMpOwo+ ICsKPiArCQlpZiAoIWVuY29kZXIpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQlpZiAoKGVuY29k ZXItPnBvc3NpYmxlX2NydGNzICYKPiArCQkgICAgIGRybV9jcnRjX21hc2soY3J0Yy0+bW9kZV9z ZXQuY3J0YykpID09IDApCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAgCQlmb3IgKG8gPSAwOyBvIDwg bjsgbysrKQo+IEBAIC0yNDEwLDcgKzI0MTMsNyBAQCBzdGF0aWMgaW50IGRybV9waWNrX2NydGNz KHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsCj4gIAkJCSAgICAgICBzaXplb2Yoc3Ry dWN0IGRybV9mYl9oZWxwZXJfY3J0YyAqKSk7Cj4gIAkJfQo+ICAJfQo+IC1vdXQ6Cj4gKwo+ICAJ a2ZyZWUoY3J0Y3MpOwo+ICAJcmV0dXJuIGJlc3Rfc2NvcmU7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9nbWFfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2dt YTUwMC9nbWFfZGlzcGxheS5jCj4gaW5kZXggYzhmMDcxYzQ3ZGFmLi4yNTFiNjQ2NTNkYzggMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9nbWFfZGlzcGxheS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9nbWFfZGlzcGxheS5jCj4gQEAgLTY1Miw3ICs2NTIsOCBA QCB2b2lkIGdtYV9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ ICB9Cj4gIAo+ICAvKiBDdXJyZW50bHkgdGhlcmUgaXMgb25seSBhIDE6MSBtYXBwaW5nIG9mIGVu Y29kZXJzIGFuZCBjb25uZWN0b3JzICovCj4gLXN0cnVjdCBkcm1fZW5jb2RlciAqZ21hX2Jlc3Rf ZW5jb2RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICtzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmdtYV9iZXN0X2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwK PiArCQkJCSAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICB7Cj4gIAlzdHJ1Y3QgZ21hX2Vu Y29kZXIgKmdtYV9lbmNvZGVyID0gZ21hX2F0dGFjaGVkX2VuY29kZXIoY29ubmVjdG9yKTsKPiAg Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvbWRmbGRfZHNpX291dHB1dC5j IGIvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9tZGZsZF9kc2lfb3V0cHV0LmMKPiBpbmRleCBmZTAy MDkyNmVhNGYuLjllNWIwNTlhOWU1YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZ21h NTAwL21kZmxkX2RzaV9vdXRwdXQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvbWRm bGRfZHNpX291dHB1dC5jCj4gQEAgLTM3Nyw4ICszNzcsOSBAQCBzdGF0aWMgZW51bSBkcm1fbW9k ZV9zdGF0dXMgbWRmbGRfZHNpX2Nvbm5lY3Rvcl9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29ubmVj dG9yCj4gIAlyZXR1cm4gTU9ERV9PSzsKPiAgfQo+ICAKPiAtc3RhdGljIHN0cnVjdCBkcm1fZW5j b2RlciAqbWRmbGRfZHNpX2Nvbm5lY3Rvcl9iZXN0X2VuY29kZXIoCj4gLQkJCQlzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICtzdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyICoKPiAr bWRmbGRfZHNpX2Nvbm5lY3Rvcl9iZXN0X2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciwKPiArCQkJCSBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIHsKPiAgCXN0cnVjdCBt ZGZsZF9kc2lfY29ubmVjdG9yICpkc2lfY29ubmVjdG9yID0KPiAgCQkJCW1kZmxkX2RzaV9jb25u ZWN0b3IoY29ubmVjdG9yKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9w c2JfaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL3BzYl9pbnRlbF9kcnYuaAo+ IGluZGV4IGUwNWU1Mzk5YWYyZC4uZTkwMzUyNWI5ZDMwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9nbWE1MDAvcHNiX2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2dt YTUwMC9wc2JfaW50ZWxfZHJ2LmgKPiBAQCAtMjMwLDcgKzIzMCw4IEBAIGV4dGVybiB2b2lkIG9h a3RyYWlsX2x2ZHNfaTJjX2luaXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKPiAgZXh0 ZXJuIHZvaWQgbWlkX2RzaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJICAgIHN0 cnVjdCBwc2JfaW50ZWxfbW9kZV9kZXZpY2UgKm1vZGVfZGV2LCBpbnQgZHNpX251bSk7Cj4gIAo+ IC1leHRlcm4gc3RydWN0IGRybV9lbmNvZGVyICpnbWFfYmVzdF9lbmNvZGVyKHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IpOwo+ICtleHRlcm4gc3RydWN0IGRybV9lbmNvZGVyICpnbWFf YmVzdF9lbmNvZGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCQkJICAg IHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4gIGV4dGVybiB2b2lkIGdtYV9jb25uZWN0b3JfYXR0 YWNoX2VuY29kZXIoc3RydWN0IGdtYV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCQkJCQkgc3Ry dWN0IGdtYV9lbmNvZGVyICplbmNvZGVyKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX3ZkYWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9o aXNpbGljb24vaGlibWMvaGlibWNfZHJtX3ZkYWMuYwo+IGluZGV4IGQyZjQ3NDllYmY4ZC4uODlh MDEwNGY5ODU1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMv aGlibWNfZHJtX3ZkYWMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMv aGlibWNfZHJtX3ZkYWMuYwo+IEBAIC0zNCw3ICszNCw4IEBAIHN0YXRpYyBlbnVtIGRybV9tb2Rl X3N0YXR1cyBoaWJtY19jb25uZWN0b3JfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29uCj4gIH0KPiAgCj4gIHN0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXIgKgo+IC1oaWJtY19jb25u ZWN0b3JfYmVzdF9lbmNvZGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK2hp Ym1jX2Nvbm5lY3Rvcl9iZXN0X2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciwKPiArCQkJICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIHsKPiAgCXJldHVybiBkcm1f ZW5jb2Rlcl9maW5kKGNvbm5lY3Rvci0+ZGV2LCBOVUxMLCBjb25uZWN0b3ItPmVuY29kZXJfaWRz WzBdKTsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTJjL3RkYTk5OHhfZHJ2 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTJjL3RkYTk5OHhfZHJ2LmMKPiBpbmRleCAwMDM4Yzk3NjUz NmEuLjQyMjM0N2Q5NzdiNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTJjL3RkYTk5 OHhfZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTJjL3RkYTk5OHhfZHJ2LmMKPiBAQCAt MTI2Nyw3ICsxMjY3LDggQEAgc3RhdGljIGVudW0gZHJtX21vZGVfc3RhdHVzIHRkYTk5OHhfY29u bmVjdG9yX21vZGVfdmFsaWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmMKPiAgfQo+ICAKPiAgc3Rh dGljIHN0cnVjdCBkcm1fZW5jb2RlciAqCj4gLXRkYTk5OHhfY29ubmVjdG9yX2Jlc3RfZW5jb2Rl cihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICt0ZGE5OTh4X2Nvbm5lY3Rvcl9i ZXN0X2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJICAgICAg IHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgewo+ICAJc3RydWN0IHRkYTk5OHhfcHJpdiAqcHJp diA9IGNvbm5fdG9fdGRhOTk4eF9wcml2KGNvbm5lY3Rvcik7Cj4gIAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwX21zdC5jCj4gaW5kZXggNTg5MDUwMGEzYThiLi5kOTExOWQ1MTY1NzkgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+IEBAIC00MDMsMjAgKzQwMywyMyBAQCBz dGF0aWMgc3RydWN0IGRybV9lbmNvZGVyICppbnRlbF9tc3RfYXRvbWljX2Jlc3RfZW5jb2Rlcihz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqYwo+ICAJcmV0dXJuICZpbnRlbF9kcC0+bXN0X2VuY29kZXJz W2NydGMtPnBpcGVdLT5iYXNlLmJhc2U7Cj4gIH0KPiAgCj4gLXN0YXRpYyBzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmludGVsX21zdF9iZXN0X2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikKPiArc3RhdGljIHN0cnVjdCBkcm1fZW5jb2RlciAqaW50ZWxfbXN0X2Jlc3RfZW5jb2Rl cihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICsJCQkJCQkgIHN0cnVjdCBkcm1f Y3J0YyAqX2NydGMpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5l Y3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+ICAJc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCA9IGludGVsX2Nvbm5lY3Rvci0+bXN0X3BvcnQ7Cj4gKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoX2NydGMpOwo+ICsKPiAgCWlmICghaW50ZWxfZHAp Cj4gIAkJcmV0dXJuIE5VTEw7Cj4gLQlyZXR1cm4gJmludGVsX2RwLT5tc3RfZW5jb2RlcnNbMF0t PmJhc2UuYmFzZTsKPiArCXJldHVybiAmaW50ZWxfZHAtPm1zdF9lbmNvZGVyc1tjcnRjLT5waXBl XS0+YmFzZS5iYXNlOwo+ICB9Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0 b3JfaGVscGVyX2Z1bmNzIGludGVsX2RwX21zdF9jb25uZWN0b3JfaGVscGVyX2Z1bmNzID0gewo+ ICAJLmdldF9tb2RlcyA9IGludGVsX2RwX21zdF9nZXRfbW9kZXMsCj4gIAkubW9kZV92YWxpZCA9 IGludGVsX2RwX21zdF9tb2RlX3ZhbGlkLAo+ICAJLmF0b21pY19iZXN0X2VuY29kZXIgPSBpbnRl bF9tc3RfYXRvbWljX2Jlc3RfZW5jb2RlciwKPiAtCS5iZXN0X2VuY29kZXIgPSBpbnRlbF9tc3Rf YmVzdF9lbmNvZGVyLAo+ICsJLmJlc3RfZW5jb2RlciA9IGludGVsX21zdF9iZXN0X2VuY29kZXIs IC8qIG9ubHkgZm9yIGZiX2hlbHBlciAqLwo+ICAJLmF0b21pY19jaGVjayA9IGludGVsX2RwX21z dF9hdG9taWNfY2hlY2ssCj4gIH07Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aW14L2lteC1sZGIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWxkYi5jCj4gaW5kZXggNTZk ZDdhOWE4ZTI1Li5mMTUyM2NjY2MwOTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lt eC9pbXgtbGRiLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lteC1sZGIuYwo+IEBAIC0x NjMsOCArMTYzLDkgQEAgc3RhdGljIGludCBpbXhfbGRiX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgCXJldHVybiBudW1fbW9kZXM7Cj4gIH0K PiAgCj4gLXN0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXIgKmlteF9sZGJfY29ubmVjdG9yX2Jlc3Rf ZW5jb2RlcigKPiAtCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICtzdGF0aWMg c3RydWN0IGRybV9lbmNvZGVyICoKPiAraW14X2xkYl9jb25uZWN0b3JfYmVzdF9lbmNvZGVyKHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMpCj4gIHsKPiAgCXN0cnVjdCBpbXhfbGRiX2NoYW5uZWwgKmlteF9sZGJfY2ggPSBj b25fdG9faW14X2xkYl9jaChjb25uZWN0b3IpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2lteC9pbXgtdHZlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lteC10dmUuYwo+IGlu ZGV4IGJjMjdjMjY5OTQ2NC4uNzFmNDlhYzgzNWVjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pbXgvaW14LXR2ZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtdHZlLmMK PiBAQCAtMjY1LDggKzI2NSw5IEBAIHN0YXRpYyBpbnQgaW14X3R2ZV9jb25uZWN0b3JfbW9kZV92 YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJcmV0dXJuIE1PREVfQkFE Owo+ICB9Cj4gIAo+IC1zdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyICppbXhfdHZlX2Nvbm5lY3Rv cl9iZXN0X2VuY29kZXIoCj4gLQkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAr c3RhdGljIHN0cnVjdCBkcm1fZW5jb2RlciAqCj4gK2lteF90dmVfY29ubmVjdG9yX2Jlc3RfZW5j b2RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICsJCQkgICAgICAgc3RydWN0 IGRybV9jcnRjICpjcnRjKQo+ICB7Cj4gIAlzdHJ1Y3QgaW14X3R2ZSAqdHZlID0gY29uX3RvX3R2 ZShjb25uZWN0b3IpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2lteC9wYXJh bGxlbC1kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVsLWRpc3BsYXkuYwo+ IGluZGV4IGFlZGVjZGE5NzI4YS4uNDM4Zjk1ZGVlNzNlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pbXgvcGFyYWxsZWwtZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2lt eC9wYXJhbGxlbC1kaXNwbGF5LmMKPiBAQCAtODksOCArODksOSBAQCBzdGF0aWMgaW50IGlteF9w ZF9jb25uZWN0b3JfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4g IAlyZXR1cm4gbnVtX21vZGVzOwo+ICB9Cj4gIAo+IC1zdGF0aWMgc3RydWN0IGRybV9lbmNvZGVy ICppbXhfcGRfY29ubmVjdG9yX2Jlc3RfZW5jb2RlcigKPiAtCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQo+ICtzdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyICoKPiAraW14X3BkX2Nv bm5lY3Rvcl9iZXN0X2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAr CQkJICAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICB7Cj4gIAlzdHJ1Y3QgaW14X3BhcmFs bGVsX2Rpc3BsYXkgKmlteHBkID0gY29uX3RvX2lteHBkKGNvbm5lY3Rvcik7Cj4gIAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9tZWRpYXRlay9tdGtfaGRtaS5jCj4gaW5kZXggNTlhMTEwMjZkY2ViLi5jMDU3ODc3OWZi MTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19oZG1pLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWkuYwo+IEBAIC0xMjUzLDcgKzEy NTMsOCBAQCBzdGF0aWMgaW50IG10a19oZG1pX2Nvbm5fbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubiwKPiAgCXJldHVybiBkcm1fbW9kZV92YWxpZGF0ZV9zaXplKG1vZGUsIDB4 MWZmZiwgMHgxZmZmKTsKPiAgfQo+ICAKPiAtc3RhdGljIHN0cnVjdCBkcm1fZW5jb2RlciAqbXRr X2hkbWlfY29ubl9iZXN0X2VuYyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubikKPiArc3RhdGlj IHN0cnVjdCBkcm1fZW5jb2RlciAqbXRrX2hkbWlfY29ubl9iZXN0X2VuYyhzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubiwKPiArCQkJCQkJICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIHsKPiAg CXN0cnVjdCBtdGtfaGRtaSAqaGRtaSA9IGhkbWlfY3R4X2Zyb21fY29ubihjb25uKTsKPiAgCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfbW9kZS5jIGIvZHJp dmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9tb2RlLmMKPiBpbmRleCA4OTE4NTM5YTE5YWEu LjQwNTlmMDQwMzBlZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2Fn MjAwX21vZGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfbW9kZS5j Cj4gQEAgLTE2NjQsOCArMTY2NCw5IEBAIHN0YXRpYyBlbnVtIGRybV9tb2RlX3N0YXR1cyBtZ2Ff dmdhX21vZGVfdmFsaWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCXJldHVy biBNT0RFX09LOwo+ICB9Cj4gIAo+IC1zdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyICptZ2FfY29u bmVjdG9yX2Jlc3RfZW5jb2RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcgo+IC0JCQkJCQkgICpjb25u ZWN0b3IpCj4gK3N0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXIgKgo+ICttZ2FfY29ubmVjdG9yX2Jl c3RfZW5jb2RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICsJCQkgICBzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpCj4gIHsKPiAgCWludCBlbmNfaWQgPSBjb25uZWN0b3ItPmVuY29k ZXJfaWRzWzBdOwo+ICAJLyogcGljayB0aGUgZW5jb2RlciBpZHMgKi8KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvZHNpX21hbmFnZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9t c20vZHNpL2RzaV9tYW5hZ2VyLmMKPiBpbmRleCA0Y2IxY2I2ODg3OGIuLjhjYmVkZTY0ODE5ZSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfbWFuYWdlci5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvZHNpX21hbmFnZXIuYwo+IEBAIC00MjYsNyArNDI2 LDggQEAgc3RhdGljIGludCBkc2lfbWdyX2Nvbm5lY3Rvcl9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsCj4gIH0KPiAgCj4gIHN0YXRpYyBzdHJ1Y3QgZHJtX2VuY29k ZXIgKgo+IC1kc2lfbWdyX2Nvbm5lY3Rvcl9iZXN0X2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvcikKPiArZHNpX21ncl9jb25uZWN0b3JfYmVzdF9lbmNvZGVyKHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNy dGMpCj4gIHsKPiAgCWludCBpZCA9IGRzaV9tZ3JfY29ubmVjdG9yX2dldF9pZChjb25uZWN0b3Ip Owo+ICAJc3RydWN0IG1zbV9kc2kgKm1zbV9kc2kgPSBkc2lfbWdyX2dldF9kc2koaWQpOwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9kaXNwLmMgYi9kcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9kaXNwLmMKPiBpbmRleCBiODM0NjVhZTdjMWIu LmE5YmFjYjBhMWUxNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNw bnY1MC9kaXNwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9kaXNw LmMKPiBAQCAtODI2LDcgKzgyNiw4IEBAIG52NTBfbXN0Y19hdG9taWNfYmVzdF9lbmNvZGVyKHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIH0KPiAgCj4gIHN0YXRpYyBzdHJ1Y3Qg ZHJtX2VuY29kZXIgKgo+IC1udjUwX21zdGNfYmVzdF9lbmNvZGVyKHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IpCj4gK252NTBfbXN0Y19iZXN0X2VuY29kZXIoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvciwKPiArCQkgICAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICB7 Cj4gIAlzdHJ1Y3QgbnY1MF9tc3RjICptc3RjID0gbnY1MF9tc3RjKGNvbm5lY3Rvcik7Cj4gIAlp ZiAobXN0Yy0+cG9ydCkgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9u b3V2ZWF1X2Nvbm5lY3Rvci5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9jb25u ZWN0b3IuYwo+IGluZGV4IDdiNTU3YzM1NDMwNy4uZWU0YmY1MzJiOTMyIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfY29ubmVjdG9yLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Nvbm5lY3Rvci5jCj4gQEAgLTEwNjMsNyArMTA2 Myw4IEBAIG5vdXZlYXVfY29ubmVjdG9yX21vZGVfdmFsaWQoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwKPiAgfQo+ICAKPiAgc3RhdGljIHN0cnVjdCBkcm1fZW5jb2RlciAqCj4gLW5v dXZlYXVfY29ubmVjdG9yX2Jlc3RfZW5jb2RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yKQo+ICtub3V2ZWF1X2Nvbm5lY3Rvcl9iZXN0X2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwKPiArCQkJICAgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgewo+ ICAJc3RydWN0IG5vdXZlYXVfY29ubmVjdG9yICpudl9jb25uZWN0b3IgPSBub3V2ZWF1X2Nvbm5l Y3Rvcihjb25uZWN0b3IpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9x eGxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZGlzcGxheS5jCj4gaW5kZXgg NzY4MjA3ZmJiYWUzLi5mYTVjODRmMzU1MzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3F4bC9xeGxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZGlzcGxh eS5jCj4gQEAgLTk3OCw3ICs5NzgsOCBAQCBzdGF0aWMgZW51bSBkcm1fbW9kZV9zdGF0dXMgcXhs X2Nvbm5fbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJcmV0 dXJuIE1PREVfQkFEOwo+ICB9Cj4gIAo+IC1zdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyICpxeGxf YmVzdF9lbmNvZGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3N0YXRpYyBz dHJ1Y3QgZHJtX2VuY29kZXIgKnF4bF9iZXN0X2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwKPiArCQkJCQkgICAgc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICB7Cj4gIAlz dHJ1Y3QgcXhsX291dHB1dCAqcXhsX291dHB1dCA9Cj4gIAkJZHJtX2Nvbm5lY3Rvcl90b19xeGxf b3V0cHV0KGNvbm5lY3Rvcik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX2Nvbm5lY3RvcnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Nvbm5l Y3RvcnMuYwo+IGluZGV4IDJhZWEyYmRmZjk5Yi4uOGJmNzI5OGRjY2IzIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Nvbm5lY3RvcnMuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Nvbm5lY3RvcnMuYwo+IEBAIC0xNTgsNyArMTU4LDcg QEAgaW50IHJhZGVvbl9nZXRfbW9uaXRvcl9icGMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikKPiAgCQllbHNlIGlmIChBU0lDX0lTX0RDRTQxKHJkZXYpIHx8IEFTSUNfSVNfRENFNShy ZGV2KSkgewo+ICAJCQljb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgKmNv bm5lY3Rvcl9mdW5jcyA9Cj4gIAkJCQljb25uZWN0b3ItPmhlbHBlcl9wcml2YXRlOwo+IC0JCQlz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSBjb25uZWN0b3JfZnVuY3MtPmJlc3RfZW5jb2Rl cihjb25uZWN0b3IpOwo+ICsJCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSBjb25uZWN0 b3JfZnVuY3MtPmJlc3RfZW5jb2Rlcihjb25uZWN0b3IsIE5VTEwpOwo+ICAJCQlzdHJ1Y3QgcmFk ZW9uX2VuY29kZXIgKnJhZGVvbl9lbmNvZGVyID0gdG9fcmFkZW9uX2VuY29kZXIoZW5jb2Rlcik7 Cj4gIAkJCXN0cnVjdCByYWRlb25fZW5jb2Rlcl9hdG9tX2RpZyAqZGlnID0gcmFkZW9uX2VuY29k ZXItPmVuY19wcml2Owo+ICAKPiBAQCAtMjUwLDcgKzI1MCw3IEBAIHJhZGVvbl9jb25uZWN0b3Jf dXBkYXRlX3NjcmF0Y2hfcmVncyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBlbnVt IGRybV9jCj4gIAlib29sIGNvbm5lY3RlZDsKPiAgCWludCBpOwo+ICAKPiAtCWJlc3RfZW5jb2Rl ciA9IGNvbm5lY3Rvcl9mdW5jcy0+YmVzdF9lbmNvZGVyKGNvbm5lY3Rvcik7Cj4gKwliZXN0X2Vu Y29kZXIgPSBjb25uZWN0b3JfZnVuY3MtPmJlc3RfZW5jb2Rlcihjb25uZWN0b3IsIE5VTEwpOwo+ ICAKPiAgCWZvciAoaSA9IDA7IGkgPCBEUk1fQ09OTkVDVE9SX01BWF9FTkNPREVSOyBpKyspIHsK PiAgCQlpZiAoY29ubmVjdG9yLT5lbmNvZGVyX2lkc1tpXSA9PSAwKQo+IEBAIC0zOTEsNyArMzkx LDggQEAgc3RhdGljIGludCByYWRlb25fZGRjX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBzdHJ1Y3QgZHJt X2VuY29kZXIgKnJhZGVvbl9iZXN0X3NpbmdsZV9lbmNvZGVyKHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IpCj4gK3N0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXIgKnJhZGVvbl9iZXN0X3Np bmdsZV9lbmNvZGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCQkJCSAg ICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgewo+ICAJaW50IGVuY19pZCA9IGNvbm5lY3Rv ci0+ZW5jb2Rlcl9pZHNbMF07Cj4gIAkvKiBwaWNrIHRoZSBlbmNvZGVyIGlkcyAqLwo+IEBAIC00 MDIsNyArNDAzLDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fZW5jb2RlciAqcmFkZW9uX2Jlc3Rfc2lu Z2xlX2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm4KPiAgCj4gIHN0YXRpYyB2b2lk IHJhZGVvbl9nZXRfbmF0aXZlX21vZGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikK PiAgewo+IC0Jc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gcmFkZW9uX2Jlc3Rfc2luZ2xl X2VuY29kZXIoY29ubmVjdG9yKTsKPiArCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9IHJh ZGVvbl9iZXN0X3NpbmdsZV9lbmNvZGVyKGNvbm5lY3RvciwgTlVMTCk7Cj4gIAlzdHJ1Y3QgcmFk ZW9uX2VuY29kZXIgKnJhZGVvbl9lbmNvZGVyOwo+ICAKPiAgCWlmIChlbmNvZGVyID09IE5VTEwp Cj4gQEAgLTcyOCw3ICs3MjksNyBAQCBzdGF0aWMgaW50IHJhZGVvbl9jb25uZWN0b3Jfc2V0X3By b3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIHN0cnVjdAo+ICAJCQlyYWRl b25fZW5jb2RlciA9IHRvX3JhZGVvbl9lbmNvZGVyKGNvbm5lY3Rvci0+ZW5jb2Rlcik7Cj4gIAkJ ZWxzZSB7Cj4gIAkJCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyAqY29u bmVjdG9yX2Z1bmNzID0gY29ubmVjdG9yLT5oZWxwZXJfcHJpdmF0ZTsKPiAtCQkJcmFkZW9uX2Vu Y29kZXIgPSB0b19yYWRlb25fZW5jb2Rlcihjb25uZWN0b3JfZnVuY3MtPmJlc3RfZW5jb2Rlcihj b25uZWN0b3IpKTsKPiArCQkJcmFkZW9uX2VuY29kZXIgPSB0b19yYWRlb25fZW5jb2Rlcihjb25u ZWN0b3JfZnVuY3MtPmJlc3RfZW5jb2Rlcihjb25uZWN0b3IsIE5VTEwpKTsKPiAgCQl9Cj4gIAo+ ICAJCXN3aXRjaCAodmFsKSB7Cj4gQEAgLTc1NSw3ICs3NTYsNyBAQCBzdGF0aWMgaW50IHJhZGVv bl9jb25uZWN0b3Jfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is IHN0cnVjdAo+ICAJCQlyYWRlb25fZW5jb2RlciA9IHRvX3JhZGVvbl9lbmNvZGVyKGNvbm5lY3Rv ci0+ZW5jb2Rlcik7Cj4gIAkJZWxzZSB7Cj4gIAkJCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9y X2hlbHBlcl9mdW5jcyAqY29ubmVjdG9yX2Z1bmNzID0gY29ubmVjdG9yLT5oZWxwZXJfcHJpdmF0 ZTsKPiAtCQkJcmFkZW9uX2VuY29kZXIgPSB0b19yYWRlb25fZW5jb2Rlcihjb25uZWN0b3JfZnVu Y3MtPmJlc3RfZW5jb2Rlcihjb25uZWN0b3IpKTsKPiArCQkJcmFkZW9uX2VuY29kZXIgPSB0b19y YWRlb25fZW5jb2Rlcihjb25uZWN0b3JfZnVuY3MtPmJlc3RfZW5jb2Rlcihjb25uZWN0b3IsIE5V TEwpKTsKPiAgCQl9Cj4gIAo+ICAJCWlmIChyYWRlb25fZW5jb2Rlci0+b3V0cHV0X2NzYyA9PSB2 YWwpCj4gQEAgLTgyNCw3ICs4MjUsNyBAQCBzdGF0aWMgaW50IHJhZGVvbl9sdmRzX2dldF9tb2Rl cyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAJcmFkZW9uX2Nvbm5lY3Rvcl9n ZXRfZWRpZChjb25uZWN0b3IpOwo+ICAJcmV0ID0gcmFkZW9uX2RkY19nZXRfbW9kZXMoY29ubmVj dG9yKTsKPiAgCWlmIChyZXQgPiAwKSB7Cj4gLQkJZW5jb2RlciA9IHJhZGVvbl9iZXN0X3Npbmds ZV9lbmNvZGVyKGNvbm5lY3Rvcik7Cj4gKwkJZW5jb2RlciA9IHJhZGVvbl9iZXN0X3NpbmdsZV9l bmNvZGVyKGNvbm5lY3RvciwgTlVMTCk7Cj4gIAkJaWYgKGVuY29kZXIpIHsKPiAgCQkJcmFkZW9u X2ZpeHVwX2x2ZHNfbmF0aXZlX21vZGUoZW5jb2RlciwgY29ubmVjdG9yKTsKPiAgCQkJLyogYWRk IHNjYWxlZCBtb2RlcyAqLwo+IEBAIC04MzMsNyArODM0LDcgQEAgc3RhdGljIGludCByYWRlb25f bHZkc19nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgCQlyZXR1 cm4gcmV0Owo+ICAJfQo+ICAKPiAtCWVuY29kZXIgPSByYWRlb25fYmVzdF9zaW5nbGVfZW5jb2Rl cihjb25uZWN0b3IpOwo+ICsJZW5jb2RlciA9IHJhZGVvbl9iZXN0X3NpbmdsZV9lbmNvZGVyKGNv bm5lY3RvciwgTlVMTCk7Cj4gIAlpZiAoIWVuY29kZXIpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+IEBA IC04NTUsNyArODU2LDcgQEAgc3RhdGljIGludCByYWRlb25fbHZkc19nZXRfbW9kZXMoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgc3RhdGljIGVudW0gZHJtX21vZGVfc3RhdHVz IHJhZGVvbl9sdmRzX21vZGVfdmFsaWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwK PiAgCQkJCSAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCj4gIHsKPiAtCXN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlciA9IHJhZGVvbl9iZXN0X3NpbmdsZV9lbmNvZGVyKGNvbm5lY3Rv cik7Cj4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSByYWRlb25fYmVzdF9zaW5nbGVf ZW5jb2Rlcihjb25uZWN0b3IsIE5VTEwpOwo+ICAKPiAgCWlmICgobW9kZS0+aGRpc3BsYXkgPCAz MjApIHx8IChtb2RlLT52ZGlzcGxheSA8IDI0MCkpCj4gIAkJcmV0dXJuIE1PREVfUEFORUw7Cj4g QEAgLTg4OCw3ICs4ODksNyBAQCByYWRlb25fbHZkc19kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj b25uZWN0b3ItPmRldjsKPiAgCXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPiAgCXN0cnVjdCByYWRlb25fY29ubmVjdG9yICpyYWRlb25fY29ubmVjdG9yID0g dG9fcmFkZW9uX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+IC0Jc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyID0gcmFkZW9uX2Jlc3Rfc2luZ2xlX2VuY29kZXIoY29ubmVjdG9yKTsKPiArCXN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2RlciA9IHJhZGVvbl9iZXN0X3NpbmdsZV9lbmNvZGVyKGNvbm5l Y3RvciwgTlVMTCk7Cj4gIAllbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIHJldCA9IGNvbm5lY3Rv cl9zdGF0dXNfZGlzY29ubmVjdGVkOwo+ICAJaW50IHI7Cj4gIAo+IEBAIC05NjUsNyArOTY2LDcg QEAgc3RhdGljIGludCByYWRlb25fbHZkc19zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwKPiAgCQlyYWRlb25fZW5jb2RlciA9IHRvX3JhZGVvbl9lbmNvZGVyKGNv bm5lY3Rvci0+ZW5jb2Rlcik7Cj4gIAllbHNlIHsKPiAgCQljb25zdCBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9oZWxwZXJfZnVuY3MgKmNvbm5lY3Rvcl9mdW5jcyA9IGNvbm5lY3Rvci0+aGVscGVyX3By aXZhdGU7Cj4gLQkJcmFkZW9uX2VuY29kZXIgPSB0b19yYWRlb25fZW5jb2Rlcihjb25uZWN0b3Jf ZnVuY3MtPmJlc3RfZW5jb2Rlcihjb25uZWN0b3IpKTsKPiArCQlyYWRlb25fZW5jb2RlciA9IHRv X3JhZGVvbl9lbmNvZGVyKGNvbm5lY3Rvcl9mdW5jcy0+YmVzdF9lbmNvZGVyKGNvbm5lY3Rvciwg TlVMTCkpOwo+ICAJfQo+ICAKPiAgCXN3aXRjaCAodmFsdWUpIHsKPiBAQCAtMTA0NCw3ICsxMDQ1 LDcgQEAgcmFkZW9uX3ZnYV9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvciwg Ym9vbCBmb3JjZSkKPiAgCQkJcmV0dXJuIGNvbm5lY3Rvcl9zdGF0dXNfZGlzY29ubmVjdGVkOwo+ ICAJfQo+ICAKPiAtCWVuY29kZXIgPSByYWRlb25fYmVzdF9zaW5nbGVfZW5jb2Rlcihjb25uZWN0 b3IpOwo+ICsJZW5jb2RlciA9IHJhZGVvbl9iZXN0X3NpbmdsZV9lbmNvZGVyKGNvbm5lY3Rvciwg TlVMTCk7Cj4gIAlpZiAoIWVuY29kZXIpCj4gIAkJcmV0ID0gY29ubmVjdG9yX3N0YXR1c19kaXNj b25uZWN0ZWQ7Cj4gIAo+IEBAIC0xMTM5LDcgKzExNDAsNyBAQCBzdGF0aWMgaW50IHJhZGVvbl90 dl9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgCXN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICp0dl9tb2RlOwo+ICAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy Owo+ICAKPiAtCWVuY29kZXIgPSByYWRlb25fYmVzdF9zaW5nbGVfZW5jb2Rlcihjb25uZWN0b3Ip Owo+ICsJZW5jb2RlciA9IHJhZGVvbl9iZXN0X3NpbmdsZV9lbmNvZGVyKGNvbm5lY3RvciwgTlVM TCk7Cj4gIAlpZiAoIWVuY29kZXIpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+IEBAIC0xMTgyLDcgKzEx ODMsNyBAQCByYWRlb25fdHZfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is IGJvb2wgZm9yY2UpCj4gIAkJCXJldHVybiBjb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZDsK PiAgCX0KPiAgCj4gLQllbmNvZGVyID0gcmFkZW9uX2Jlc3Rfc2luZ2xlX2VuY29kZXIoY29ubmVj dG9yKTsKPiArCWVuY29kZXIgPSByYWRlb25fYmVzdF9zaW5nbGVfZW5jb2Rlcihjb25uZWN0b3Is IE5VTEwpOwo+ICAJaWYgKCFlbmNvZGVyKQo+ICAJCXJldCA9IGNvbm5lY3Rvcl9zdGF0dXNfZGlz Y29ubmVjdGVkOwo+ICAJZWxzZSB7Cj4gQEAgLTE0MzksNyArMTQ0MCw3IEBAIHJhZGVvbl9kdmlf ZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCj4gIAkJ Y29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzICpjb25uZWN0b3JfZnVuY3Mg PQo+ICAJCQljb25uZWN0b3ItPmhlbHBlcl9wcml2YXRlOwo+ICAKPiAtCQllbmNvZGVyID0gY29u bmVjdG9yX2Z1bmNzLT5iZXN0X2VuY29kZXIoY29ubmVjdG9yKTsKPiArCQllbmNvZGVyID0gY29u bmVjdG9yX2Z1bmNzLT5iZXN0X2VuY29kZXIoY29ubmVjdG9yLCBOVUxMKTsKPiAgCQlpZiAoZW5j b2RlciAmJiAoZW5jb2Rlci0+ZW5jb2Rlcl90eXBlID09IERSTV9NT0RFX0VOQ09ERVJfVE1EUykp IHsKPiAgCQkJcmFkZW9uX2Nvbm5lY3Rvcl9nZXRfZWRpZChjb25uZWN0b3IpOwo+ICAJCQlyYWRl b25fYXVkaW9fZGV0ZWN0KGNvbm5lY3RvciwgZW5jb2RlciwgcmV0KTsKPiBAQCAtMTQ1Niw3ICsx NDU3LDggQEAgcmFkZW9uX2R2aV9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciwgYm9vbCBmb3JjZSkKPiAgfQo+ICAKPiAgLyogb2theSBuZWVkIHRvIGJlIHNtYXJ0IGluIGhl cmUgYWJvdXQgd2hpY2ggZW5jb2RlciB0byBwaWNrICovCj4gLXN0YXRpYyBzdHJ1Y3QgZHJtX2Vu Y29kZXIgKnJhZGVvbl9kdmlfZW5jb2RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y KQo+ICtzdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyICpyYWRlb25fZHZpX2VuY29kZXIoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJCQkgICAgICBzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCj4gIHsKPiAgCWludCBlbmNfaWQgPSBjb25uZWN0b3ItPmVuY29kZXJfaWRzWzBdOwo+ ICAJc3RydWN0IHJhZGVvbl9jb25uZWN0b3IgKnJhZGVvbl9jb25uZWN0b3IgPSB0b19yYWRlb25f Y29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gQEAgLTE1NTYsNyArMTU1OCw3IEBAIHN0YXRpYyBpbnQg cmFkZW9uX2RwX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICB7 Cj4gIAlzdHJ1Y3QgcmFkZW9uX2Nvbm5lY3RvciAqcmFkZW9uX2Nvbm5lY3RvciA9IHRvX3JhZGVv bl9jb25uZWN0b3IoY29ubmVjdG9yKTsKPiAgCXN0cnVjdCByYWRlb25fY29ubmVjdG9yX2F0b21f ZGlnICpyYWRlb25fZGlnX2Nvbm5lY3RvciA9IHJhZGVvbl9jb25uZWN0b3ItPmNvbl9wcml2Owo+ IC0Jc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gcmFkZW9uX2Jlc3Rfc2luZ2xlX2VuY29k ZXIoY29ubmVjdG9yKTsKPiArCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9IHJhZGVvbl9i ZXN0X3NpbmdsZV9lbmNvZGVyKGNvbm5lY3RvciwgTlVMTCk7Cj4gIAlpbnQgcmV0Owo+ICAKPiAg CWlmICgoY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfZURQ KSB8fAo+IEBAIC0xNjk1LDcgKzE2OTcsNyBAQCByYWRlb25fZHBfZGV0ZWN0KHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCj4gIAlzdHJ1Y3QgcmFkZW9uX2Nvbm5l Y3RvciAqcmFkZW9uX2Nvbm5lY3RvciA9IHRvX3JhZGVvbl9jb25uZWN0b3IoY29ubmVjdG9yKTsK PiAgCWVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgcmV0ID0gY29ubmVjdG9yX3N0YXR1c19kaXNj b25uZWN0ZWQ7Cj4gIAlzdHJ1Y3QgcmFkZW9uX2Nvbm5lY3Rvcl9hdG9tX2RpZyAqcmFkZW9uX2Rp Z19jb25uZWN0b3IgPSByYWRlb25fY29ubmVjdG9yLT5jb25fcHJpdjsKPiAtCXN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlciA9IHJhZGVvbl9iZXN0X3NpbmdsZV9lbmNvZGVyKGNvbm5lY3Rvcik7 Cj4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSByYWRlb25fYmVzdF9zaW5nbGVfZW5j b2Rlcihjb25uZWN0b3IsIE5VTEwpOwo+ICAJaW50IHI7Cj4gIAo+ICAJaWYgKHJhZGVvbl9kaWdf Y29ubmVjdG9yLT5pc19tc3QpCj4gQEAgLTE4MTIsNyArMTgxNCw3IEBAIHN0YXRpYyBlbnVtIGRy bV9tb2RlX3N0YXR1cyByYWRlb25fZHBfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yCj4gIAo+ICAJaWYgKChjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlID09IERSTV9N T0RFX0NPTk5FQ1RPUl9lRFApIHx8Cj4gIAkgICAgKGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUg PT0gRFJNX01PREVfQ09OTkVDVE9SX0xWRFMpKSB7Cj4gLQkJc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyID0gcmFkZW9uX2Jlc3Rfc2luZ2xlX2VuY29kZXIoY29ubmVjdG9yKTsKPiArCQlzdHJ1 Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSByYWRlb25fYmVzdF9zaW5nbGVfZW5jb2Rlcihjb25u ZWN0b3IsIE5VTEwpOwo+ICAKPiAgCQlpZiAoKG1vZGUtPmhkaXNwbGF5IDwgMzIwKSB8fCAobW9k ZS0+dmRpc3BsYXkgPCAyNDApKQo+ICAJCQlyZXR1cm4gTU9ERV9QQU5FTDsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZHBfbXN0LmMgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9kcF9tc3QuYwo+IGluZGV4IGNkOGEzZWUxNjY0OS4uZmQ1YTBkYWUw ZTFmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2RwX21zdC5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZHBfbXN0LmMKPiBAQCAtMjI0 LDcgKzIyNCw4IEBAIHJhZGVvbl9kcF9tc3RfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLAo+ICB9Cj4gIAo+ICBzdGF0aWMgc3RydWN0Cj4gLWRybV9lbmNvZGVyICpy YWRlb25fbXN0X2Jlc3RfZW5jb2RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ ICtkcm1fZW5jb2RlciAqcmFkZW9uX21zdF9iZXN0X2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwKPiArCQkJCSAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICB7Cj4g IAlzdHJ1Y3QgcmFkZW9uX2Nvbm5lY3RvciAqcmFkZW9uX2Nvbm5lY3RvciA9IHRvX3JhZGVvbl9j b25uZWN0b3IoY29ubmVjdG9yKTsKPiAgCj4gQEAgLTYxMyw3ICs2MTQsNyBAQCByYWRlb25fZHBf Y3JlYXRlX2Zha2VfbXN0X2VuY29kZXIoc3RydWN0IHJhZGVvbl9jb25uZWN0b3IgKmNvbm5lY3Rv cikKPiAgCXN0cnVjdCByYWRlb25fZW5jb2Rlcl9tc3QgKm1zdF9lbmM7Cj4gIAlzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXI7Cj4gIAljb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJf ZnVuY3MgKmNvbm5lY3Rvcl9mdW5jcyA9IGNvbm5lY3Rvci0+YmFzZS5oZWxwZXJfcHJpdmF0ZTsK PiAtCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jX21hc3RlciA9IGNvbm5lY3Rvcl9mdW5jcy0+YmVz dF9lbmNvZGVyKCZjb25uZWN0b3ItPmJhc2UpOwo+ICsJc3RydWN0IGRybV9lbmNvZGVyICplbmNf bWFzdGVyID0gY29ubmVjdG9yX2Z1bmNzLT5iZXN0X2VuY29kZXIoJmNvbm5lY3Rvci0+YmFzZSwg TlVMTCk7Cj4gIAo+ICAJRFJNX0RFQlVHX0tNUygiZW5jIG1hc3RlciBpcyAlcFxuIiwgZW5jX21h c3Rlcik7Cj4gIAlyYWRlb25fZW5jb2RlciA9IGt6YWxsb2Moc2l6ZW9mKCpyYWRlb25fZW5jb2Rl ciksIEdGUF9LRVJORUwpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc2htb2JpbGUv c2htb2JfZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9zaG1vYmlsZS9zaG1vYl9kcm1fY3J0 Yy5jCj4gaW5kZXggZTc3Mzg5MzlhODZkLi5jZGM5OTFkNWMyOGUgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2RybV9jcnRjLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vc2htb2JpbGUvc2htb2JfZHJtX2NydGMuYwo+IEBAIC02NjgsNyArNjY4LDggQEAgc3Rh dGljIGludCBzaG1vYl9kcm1fY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQo+ICB9Cj4gIAo+ICBzdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyICoKPiAt c2htb2JfZHJtX2Nvbm5lY3Rvcl9iZXN0X2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvcikKPiArc2htb2JfZHJtX2Nvbm5lY3Rvcl9iZXN0X2VuY29kZXIoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJCSBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIHsK PiAgCXN0cnVjdCBzaG1vYl9kcm1fY29ubmVjdG9yICpzY29uID0gdG9fc2htb2JfY29ubmVjdG9y KGNvbm5lY3Rvcik7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3Rp bGNkY19wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfcGFuZWwuYwo+IGlu ZGV4IGQ2MTZkNjRhNjcyNS4uMTk3OTYyZWNhMWFmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS90aWxjZGMvdGlsY2RjX3BhbmVsLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlsY2Rj L3RpbGNkY19wYW5lbC5jCj4gQEAgLTE3OCw4ICsxNzgsOSBAQCBzdGF0aWMgaW50IHBhbmVsX2Nv bm5lY3Rvcl9tb2RlX3ZhbGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAly ZXR1cm4gdGlsY2RjX2NydGNfbW9kZV92YWxpZChwcml2LT5jcnRjLCBtb2RlKTsKPiAgfQo+ICAK PiAtc3RhdGljIHN0cnVjdCBkcm1fZW5jb2RlciAqcGFuZWxfY29ubmVjdG9yX2Jlc3RfZW5jb2Rl cigKPiAtCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICtzdGF0aWMgc3RydWN0 IGRybV9lbmNvZGVyICoKPiArcGFuZWxfY29ubmVjdG9yX2Jlc3RfZW5jb2RlcihzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICsJCQkgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykK PiAgewo+ICAJc3RydWN0IHBhbmVsX2Nvbm5lY3RvciAqcGFuZWxfY29ubmVjdG9yID0gdG9fcGFu ZWxfY29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gIAlyZXR1cm4gcGFuZWxfY29ubmVjdG9yLT5lbmNv ZGVyOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY190ZnA0MTAu YyBiL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX3RmcDQxMC5jCj4gaW5kZXggYzQ1Y2Fi YjM4ZGIwLi4wZWY4MjIxYzUzMzQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RpbGNk Yy90aWxjZGNfdGZwNDEwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY190 ZnA0MTAuYwo+IEBAIC0xOTEsOCArMTkxLDkgQEAgc3RhdGljIGludCB0ZnA0MTBfY29ubmVjdG9y X21vZGVfdmFsaWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCXJldHVybiB0 aWxjZGNfY3J0Y19tb2RlX3ZhbGlkKHByaXYtPmNydGMsIG1vZGUpOwo+ICB9Cj4gIAo+IC1zdGF0 aWMgc3RydWN0IGRybV9lbmNvZGVyICp0ZnA0MTBfY29ubmVjdG9yX2Jlc3RfZW5jb2RlcigKPiAt CQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICtzdGF0aWMgc3RydWN0IGRybV9l bmNvZGVyICoKPiArdGZwNDEwX2Nvbm5lY3Rvcl9iZXN0X2VuY29kZXIoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJICAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICB7 Cj4gIAlzdHJ1Y3QgdGZwNDEwX2Nvbm5lY3RvciAqdGZwNDEwX2Nvbm5lY3RvciA9IHRvX3RmcDQx MF9jb25uZWN0b3IoY29ubmVjdG9yKTsKPiAgCXJldHVybiB0ZnA0MTBfY29ubmVjdG9yLT5lbmNv ZGVyOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9jb25uZWN0b3IuYyBi L2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2Nvbm5lY3Rvci5jCj4gaW5kZXggMDlkYzU4NWFhNDZm Li44MDNhZTY1MTU4OTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfY29u bmVjdG9yLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9jb25uZWN0b3IuYwo+IEBA IC0xNDUsNyArMTQ1LDggQEAgdWRsX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLCBib29sIGZvcmNlKQo+ICB9Cj4gIAo+ICBzdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyKgo+ IC11ZGxfYmVzdF9zaW5nbGVfZW5jb2RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y KQo+ICt1ZGxfYmVzdF9zaW5nbGVfZW5jb2RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAo+ICsJCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIHsKPiAgCWludCBlbmNfaWQgPSBj b25uZWN0b3ItPmVuY29kZXJfaWRzWzBdOwo+ICAJcmV0dXJuIGRybV9lbmNvZGVyX2ZpbmQoY29u bmVjdG9yLT5kZXYsIE5VTEwsIGVuY19pZCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2lu Zy92Ym94dmlkZW8vdmJveF9tb2RlLmMgYi9kcml2ZXJzL3N0YWdpbmcvdmJveHZpZGVvL3Zib3hf bW9kZS5jCj4gaW5kZXggYjI2NWZlOTI0NTU2Li5iZjBlOTM3MDVlMWMgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9zdGFnaW5nL3Zib3h2aWRlby92Ym94X21vZGUuYwo+ICsrKyBiL2RyaXZlcnMvc3Rh Z2luZy92Ym94dmlkZW8vdmJveF9tb2RlLmMKPiBAQCAtMzcwLDggKzM3MCw5IEBAIHN0YXRpYyB2 b2lkIHZib3hfZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiAg CWtmcmVlKGVuY29kZXIpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyICp2 Ym94X2Jlc3Rfc2luZ2xlX2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IKPiAtCQkJCQkJICAg ICpjb25uZWN0b3IpCj4gK3N0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXIgKgo+ICt2Ym94X2Jlc3Rf c2luZ2xlX2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJIHN0 cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgewo+ICAJaW50IGVuY19pZCA9IGNvbm5lY3Rvci0+ZW5j b2Rlcl9pZHNbMF07Cj4gIAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hl bHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAo+IGluZGV4IDI2YWFiYTU4 ZDZjZS4uZTBmMDBkNDNlZDYzIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWNf aGVscGVyLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCj4gQEAgLTE0 Myw3ICsxNDMsOCBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfcGFnZV9mbGlwX3RhcmdldCgKPiAg CQkJCXVpbnQzMl90IHRhcmdldCwKPiAgCQkJCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0 eCAqY3R4KTsKPiAgc3RydWN0IGRybV9lbmNvZGVyICoKPiAtZHJtX2F0b21pY19oZWxwZXJfYmVz dF9lbmNvZGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ICtkcm1fYXRvbWlj X2hlbHBlcl9iZXN0X2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAr CQkJICAgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4gIAo+ICAvKiBkZWZhdWx0IGltcGxl bWVudGF0aW9ucyBmb3Igc3RhdGUgaGFuZGxpbmcgKi8KPiAgdm9pZCBkcm1fYXRvbWljX2hlbHBl cl9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4gZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmggYi9pbmNsdWRlL2RybS9kcm1fbW9k ZXNldF9oZWxwZXJfdnRhYmxlcy5oCj4gaW5kZXggMzVlMmEzYTc5ZmM1Li5hOWIzYTJjNTA4Nzcg MTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaAo+ ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmgKPiBAQCAtODg1 LDcgKzg4NSw4IEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyB7Cj4gIAkvKioK PiAgCSAqIEBiZXN0X2VuY29kZXI6Cj4gIAkgKgo+IC0JICogVGhpcyBmdW5jdGlvbiBzaG91bGQg c2VsZWN0IHRoZSBiZXN0IGVuY29kZXIgZm9yIHRoZSBnaXZlbiBjb25uZWN0b3IuCj4gKwkgKiBU aGlzIGZ1bmN0aW9uIHNob3VsZCBzZWxlY3QgdGhlIGJlc3QgZW5jb2RlciBmb3IgdGhlIGdpdmVu IGNvbm5lY3Rvcgo+ICsJICogYW5kIGNydGMuIEZvciBzb21lIGRyaXZlciBpbnRlcm5hbCB1c2Ug Y3J0YyBtYXkgYmUgTlVMTC4KPiAgCSAqCj4gIAkgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgYnkg Ym90aCB0aGUgYXRvbWljIGhlbHBlcnMgKGluIHRoZQo+ICAJICogZHJtX2F0b21pY19oZWxwZXJf Y2hlY2tfbW9kZXNldCgpIGZ1bmN0aW9uKSBhbmQgaW4gdGhlIGxlZ2FjeSBDUlRDCj4gQEAgLTkx MSw3ICs5MTIsOCBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3Mgewo+ICAJICog d2lsbCBlbnN1cmUgdGhhdCBlbmNvZGVycyBhcmVuJ3QgdXNlZCB0d2ljZSwgZHJpdmVycyBzaG91 bGQgbm90IGNoZWNrCj4gIAkgKiBmb3IgdGhpcy4KPiAgCSAqLwo+IC0Jc3RydWN0IGRybV9lbmNv ZGVyICooKmJlc3RfZW5jb2Rlcikoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4g KwlzdHJ1Y3QgZHJtX2VuY29kZXIgKigqYmVzdF9lbmNvZGVyKShzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLAo+ICsJCQkJCSAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwo+ICAKPiAg CS8qKgo+ICAJICogQGF0b21pY19iZXN0X2VuY29kZXI6Cj4gLS0gCj4gMi4xNi40Cj4gCj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwg bWFpbGluZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgotLSAKRGFu aWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Js b2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==