From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: Re: [PATCH v2 05/50] drm/bridge: Extend bridge API to disable connector creation Date: Thu, 22 Aug 2019 17:34:16 +0200 Message-ID: <20190822173416.2aa90441@collabora.com> References: <20190820011721.30136-1-laurent.pinchart@ideasonboard.com> <20190820011721.30136-6-laurent.pinchart@ideasonboard.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [46.235.227.227]) by gabe.freedesktop.org (Postfix) with ESMTPS id 94CF06EB39 for ; Thu, 22 Aug 2019 15:34:20 +0000 (UTC) In-Reply-To: <20190820011721.30136-6-laurent.pinchart@ideasonboard.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Laurent Pinchart Cc: Maxime Ripard , Tomi Valkeinen , Sean Paul , Sebastian Reichel , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCAyMCBBdWcgMjAxOSAwNDoxNjozNiArMDMwMApMYXVyZW50IFBpbmNoYXJ0IDxsYXVy ZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+IHdyb3RlOgoKPiBNb3N0IGJyaWRnZSBkcml2 ZXJzIGNyZWF0ZSBhIERSTSBjb25uZWN0b3IgdG8gbW9kZWwgdGhlIGNvbm5lY3RvciBhdCB0aGUK PiBvdXRwdXQgb2YgdGhlIGJyaWRnZS4gVGhpcyBtb2RlbCBpcyBoaXN0b3JpY2FsIGFuZCBoYXMg d29ya2VkIHByZXR0eQo+IHdlbGwgc28gZmFyLCBidXQgY2F1c2VzIHNldmVyYWwgaXNzdWVzOgo+ IAo+IC0gSXQgcHJldmVudHMgc3VwcG9ydGluZyBtb3JlIGNvbXBsZXggZGlzcGxheSBwaXBlbGlu ZXMgd2hlcmUgRFJNCj4gY29ubmVjdG9yIG9wZXJhdGlvbnMgYXJlIHNwbGl0IG92ZXIgbXVsdGlw bGUgY29tcG9uZW50cy4gRm9yIGluc3RhbmNlIGEKPiBwaXBlbGluZSB3aXRoIGEgYnJpZGdlIGNv bm5lY3RlZCB0byB0aGUgRERDIHNpZ25hbHMgdG8gcmVhZCBFRElEIGRhdGEsCj4gYW5kIGFub3Ro ZXIgb25lIGNvbm5lY3RlZCB0byB0aGUgSFBEIHNpZ25hbCB0byBkZXRlY3QgY29ubmVjdGlvbiBh bmQKPiBkaXNjb25uZWN0aW9uLCB3aWxsIG5vdCBiZSBwb3NzaWJsZSB0byBzdXBwb3J0IHRocm91 Z2ggdGhpcyBtb2RlbC4KPiAKPiAtIEl0IHJlcXVpcmVzIGV2ZXJ5IGJyaWRnZSBkcml2ZXIgdG8g aW1wbGVtZW50IHNpbWlsYXIgY29ubmVjdG9yCj4gaGFuZGxpbmcgY29kZSwgcmVzdWx0aW5nIGlu IGNvZGUgZHVwbGljYXRpb24uCj4gCj4gLSBJdCBhc3N1bWVzIHRoYXQgYSBicmlkZ2Ugd2lsbCBl aXRoZXIgYmUgd2lyZWQgdG8gYSBjb25uZWN0b3Igb3IgdG8KPiBhbm90aGVyIGJyaWRnZSwgYnV0 IGRvZXNuJ3Qgc3VwcG9ydCBicmlkZ2VzIHRoYXQgY2FuIGJlIHVzZWQgaW4gYm90aAo+IHBvc2l0 aW9ucyB2ZXJ5IHdlbGwgKGFsdGhvdWdoIHRoZXJlIGlzIHNvbWUgYWQtaG9jIHN1cHBvcnQgZm9y IHRoaXMgaW4KPiB0aGUgYW5hbG9naXhfZHAgYnJpZGdlIGRyaXZlcikuCj4gCj4gSW4gb3JkZXIg dG8gc29sdmUgdGhlc2UgaXNzdWVzLCBvd25lcnNoaXAgb2YgdGhlIGNvbm5lY3RvciBzaG91bGQg YmUKPiBtb3ZlZCB0byB0aGUgZGlzcGxheSBjb250cm9sbGVyIGRyaXZlciAod2hlcmUgaXQgY2Fu IGJlIGltcGxlbWVudGVkCj4gdXNpbmcgaGVscGVycyBwcm92aWRlZCBieSB0aGUgY29yZSkuCj4g Cj4gRXh0ZW5kIHRoZSBicmlkZ2UgQVBJIHRvIGFsbG93IGRpc2FibGluZyBjb25uZWN0b3IgY3Jl YXRpb24gaW4gYnJpZGdlCj4gZHJpdmVycyBhcyBhIGZpcnN0IHN0ZXAgdG93YXJkcyB0aGUgbmV3 IG1vZGVsLiBUaGUgbmV3IGNyZWF0ZV9jb25uZWN0b3IKPiBhcmd1bWVudCB0byB0aGUgYnJpZGdl IC5hdHRhY2goKSBvcGVyYXRpb24gdGVsbHMgdGhlIGJyaWRnZSBkcml2ZXIKPiB3aGV0aGVyIHRv IGNyZWF0ZSBhIGNvbm5lY3Rvci4gU2V0IHRoZSBhcmd1bWVudCB0byB0cnVlIHVuY29uZGl0aW9u YWxseSwKCllvdSdyZSB0YWxraW5nIGFib3V0IHRoZSBleHRyYSBhcmcgcGFzc2VkIHRvIGRybV9i cmlkZ2VfYXR0YWNoKCksIHJpZ2h0PwpJIGd1ZXNzIHRoaXMgY29tbWl0IG1lc3NhZ2UgcmVmbGVj dHMgdGhlIG9sZCBpbXBsZW1lbnRhdGlvbiB3aGVyZQp0aGUgZXh0cmEgYXJnIHdhcyBhIGJvb2xl YW4uCgo+IGFuZCBtb2RpZnkgYWxsIGV4aXN0aW5nIGJyaWRnZSBkcml2ZXJzIHRvIHJldHVybiBh biBlcnJvciB3aGVuIGNvbm5lY3Rvcgo+IGNyZWF0aW9uIGlzIG5vdCByZXF1ZXN0ZWQgYXMgdGhl eSBkb24ndCBzdXBwb3J0IHRoaXMgZmVhdHVyZSB5ZXQuCj4gCj4gVGhlIGNoYW5nZSBpcyBiYXNl ZCBvbiB0aGUgZm9sbG93aW5nIHNlbWFudGljIHBhdGNoLCB3aXRoIG1hbnVhbCByZXZpZXcKPiBh bmQgZWRpdHMuCj4gCj4gQCBydWxlMSBACj4gaWRlbnRpZmllciBmdW5jczsKPiBpZGVudGlmaWVy IGZuOwo+IEBACj4gIHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzIGZ1bmNzID0gewo+ICAJLi4uLAo+ ICAJLmF0dGFjaCA9IGZuCj4gIH07Cj4gCj4gQCBkZXBlbmRzIG9uIHJ1bGUxIEAKPiBpZGVudGlm aWVyIHJ1bGUxLmZuOwo+IGlkZW50aWZpZXIgYnJpZGdlOwo+IHN0YXRlbWVudCBTLCBTMTsKPiBA QAo+ICBpbnQgZm4oCj4gIAlzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlCj4gKwksIGVudW0gZHJt X2JyaWRnZV9hdHRhY2hfZmxhZ3MgZmxhZ3MKPiAgKQo+ICB7Cj4gIAkuLi4gd2hlbiAhPSBTCj4g KwlpZiAoZmxhZ3MgJiBEUk1fQlJJREdFX0FUVEFDSF9OT19DT05ORUNUT1IpCj4gKwkJcmV0dXJu IC1FSU5WQUw7Cj4gKwo+ICAJUzEKPiAgCS4uLgo+ICB9Cj4gCj4gQEAKPiBleHByZXNzaW9uIEUx LCBFMiwgRTM7Cj4gQEAKPiAgZHJtX2JyaWRnZV9hdHRhY2goRTEsIEUyLCBFMwo+ICsJLCAwCj4g ICkKPiAKPiBTaWduZWQtb2ZmLWJ5OiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0 QGlkZWFzb25ib2FyZC5jb20+CgpIYXZlbid0IGdvbmUgdGhyb3VnaCB0aGUgZGlmZiBidXQgdGhl IHNlbWFudGljIHBhdGNoIGxvb2tzIGdvb2QsIGFuZApJJ20gcHJldHR5IHN1cmUgeW91IGNvbXBp bGVkIGFsbCBkcml2ZXJzIGltcGxlbWVudGluZyB0aGUgYXR0YWNoIGhvb2sKYW5kL29yIGNhbGxp bmcgZHJtX2JyaWRnZV9hdHRhY2goKS4KClJldmlld2VkLWJ5OiBCb3JpcyBCcmV6aWxsb24gPGJv cmlzLmJyZXppbGxvbkBjb2xsYWJvcmEuY29tPgoKPiAtLS0KPiBDaGFuZ2VzIHNpbmNlIHYxOgo+ IAo+IC0gUmVwbGFjZSB0aGUgY3JlYXRlX2Nvbm5lY3RvciBib29sZWFuIHdpdGggYSBmbGFncyBi aXRtYXNrCj4gLSBVcGRhdGUgaW5nZW5pYyBkcml2ZXIKPiAtIEFkZCBzZW1hbnRpYyBwYXRjaCB0 byBjb21taXQgbWVzc2FnZQo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vYXJjL2FyY3BndV9oZG1p LmMgICAgICAgICAgICAgfCAgMiArLQo+ICAuLi4vZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9o bGNkY19vdXRwdXQuYyAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEv YWR2NzUxMV9kcnYuYyAgfCAgNiArKysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFs b2dpeC1hbng3OHh4LmMgICAgIHwgIDYgKysrKystCj4gIC4uLi9kcm0vYnJpZGdlL2FuYWxvZ2l4 L2FuYWxvZ2l4X2RwX2NvcmUuYyAgICB8ICA4ICsrKysrKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9i cmlkZ2UvY2Rucy1kc2kuYyAgICAgICAgICAgICB8ICA2ICsrKystLQo+ICBkcml2ZXJzL2dwdS9k cm0vYnJpZGdlL2R1bWItdmdhLWRhYy5jICAgICAgICAgfCAgNiArKysrKy0KPiAgZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9sdmRzLWVuY29kZXIuYyAgICAgICAgIHwgIDUgKysrLS0KPiAgLi4uL2Jy aWRnZS9tZWdhY2hpcHMtc3RkcHh4eHgtZ2UtYjg1MHYzLWZ3LmMgIHwgIDYgKysrKystCj4gIGRy aXZlcnMvZ3B1L2RybS9icmlkZ2UvbnhwLXB0bjM0NjAuYyAgICAgICAgICB8ICA2ICsrKysrLQo+ ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3BhbmVsLmMgICAgICAgICAgICAgICAgfCAgNiArKysr Ky0KPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9wYXJhZGUtcHM4NjIyLmMgICAgICAgIHwgIDYg KysrKystCj4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lpOTAyeC5jICAgICAgICAgICAgICB8 ICA2ICsrKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4NjIwLmMgICAgICAg ICAgfCAgMyArKy0KPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMg ICAgIHwgIDggKysrKysrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1t aXBpLWRzaS5jIHwgIDggKysrKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90YzM1ODc2 NC5jICAgICAgICAgICAgIHwgIDYgKysrKystCj4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMz NTg3NjcuYyAgICAgICAgICAgICB8ICA2ICsrKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdl L3RoYzYzbHZkMTAyNC5jICAgICAgICAgfCAgNSArKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL3RpLXNuNjVkc2k4Ni5jICAgICAgICAgfCAgNiArKysrKy0KPiAgZHJpdmVycy9ncHUvZHJt L2JyaWRnZS90aS10ZnA0MTAuYyAgICAgICAgICAgIHwgIDYgKysrKystCj4gIGRyaXZlcnMvZ3B1 L2RybS9kcm1fYnJpZGdlLmMgICAgICAgICAgICAgICAgICB8ICA2ICsrKystLQo+ICBkcml2ZXJz L2dwdS9kcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmMgICAgICAgfCAgMiArLQo+ICBkcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcC5jICAgICAgICAgICAgfCAgMyArKy0KPiAgZHJpdmVy cy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2RzaS5jICAgICAgIHwgIDQgKystLQo+ICBkcml2 ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19oZG1pLmMgICAgICAgICAgfCAgMiArLQo+ICBkcml2 ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9yZ2IuYyAgICAgfCAgMiArLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL2R3X2RybV9kc2kuYyAgfCAgMiArLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTJjL3RkYTk5OHhfZHJ2LmMgICAgICAgICAgICAgfCAgOCArKysrKystLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaW14L2lteC1sZGIuYyAgICAgICAgICAgICAgICAgfCAgMiArLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVsLWRpc3BsYXkuYyAgICAgICAgfCAgMiArLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaW5nZW5pYy9pbmdlbmljLWRybS5jICAgICAgICAgfCAgMiArLQo+ ICBkcml2ZXJzL2dwdS9kcm0vbWNkZS9tY2RlX2RzaS5jICAgICAgICAgICAgICAgfCAgOCArKysr KystLQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RwaS5jICAgICAgICAgICAgfCAg MiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jICAgICAgICAgICAgfCAg MiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWkuYyAgICAgICAgICAgfCAg OCArKysrKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfbWFuYWdlci5jICAgICAg ICAgfCAgNCArKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZWRwL2VkcF9icmlkZ2UuYyAgICAg ICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pX2JyaWRnZS5jICAg ICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZHJ2LmMgICAgICAg ICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZW5jb2Rlci5j ICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfbHZkcy5jICAgICAg ICAgICB8ICA4ICsrKysrKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9s dmRzLmMgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9y Z2IuYyAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2R2by5jICAgICAg ICAgICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hkYS5jICAgICAg ICAgICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hkbWkuYyAgICAg ICAgICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9zdG0vbHRkYy5jICAgICAgICAg ICAgICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9sdmRzLmMg ICAgICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9yZ2IuYyAg ICAgICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2V4dGVy bmFsLmMgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RwaS5jICAgICAg ICAgICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RzaS5jICAgICAg ICAgICAgICAgICB8ICAyICstCj4gIGluY2x1ZGUvZHJtL2RybV9icmlkZ2UuaCAgICAgICAgICAg ICAgICAgICAgICB8IDIwICsrKysrKysrKysrKysrKystLS0KPiAgNTQgZmlsZXMgY2hhbmdlZCwg MTY2IGluc2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYXJjL2FyY3BndV9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJjL2FyY3Bn dV9oZG1pLmMKPiBpbmRleCA5OGFhYzc0M2NjMjYuLmFiMDIzZTA3MDUyOSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vYXJjL2FyY3BndV9oZG1pLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vYXJjL2FyY3BndV9oZG1pLmMKPiBAQCAtMzksNyArMzksNyBAQCBpbnQgYXJjcGd1X2RybV9o ZG1pX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgc3RydWN0IGRldmljZV9ub2RlICpucCkK PiAgCQlyZXR1cm4gcmV0Owo+ICAKPiAgCS8qIExpbmsgZHJtX2JyaWRnZSB0byBlbmNvZGVyICov Cj4gLQlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBicmlkZ2UsIE5VTEwpOwo+ICsJ cmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgYnJpZGdlLCBOVUxMLCAwKTsKPiAgCWlm IChyZXQpCj4gIAkJZHJtX2VuY29kZXJfY2xlYW51cChlbmNvZGVyKTsKPiAgCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19vdXRwdXQuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19vdXRwdXQuYwo+IGluZGV4IDM3 NWZhODRjNTQ4Yi4uYzM4ODQ5NzM2NmNhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h dG1lbC1obGNkYy9hdG1lbF9obGNkY19vdXRwdXQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9h dG1lbC1obGNkYy9hdG1lbF9obGNkY19vdXRwdXQuYwo+IEBAIC0xMTMsNyArMTEzLDcgQEAgc3Rh dGljIGludCBhdG1lbF9obGNkY19hdHRhY2hfZW5kcG9pbnQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgaW50IGVuZHBvaW50KQo+ICAJfQo+ICAKPiAgCWlmIChicmlkZ2UpIHsKPiAtCQlyZXQgPSBk cm1fYnJpZGdlX2F0dGFjaCgmb3V0cHV0LT5lbmNvZGVyLCBicmlkZ2UsIE5VTEwpOwo+ICsJCXJl dCA9IGRybV9icmlkZ2VfYXR0YWNoKCZvdXRwdXQtPmVuY29kZXIsIGJyaWRnZSwgTlVMTCwgMCk7 Cj4gIAkJaWYgKCFyZXQpCj4gIAkJCXJldHVybiAwOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MTFfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL2Fkdjc1MTEvYWR2NzUxMV9kcnYuYwo+IGluZGV4IDk4YmNjYWNlOGMxYy4uNmU0MmQ1 ZTA1ZDA3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9hZHY3 NTExX2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MTFf ZHJ2LmMKPiBAQCAtODQ3LDExICs4NDcsMTUgQEAgc3RhdGljIHZvaWQgYWR2NzUxMV9icmlkZ2Vf bW9kZV9zZXQoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiAgCWFkdjc1MTFfbW9kZV9zZXQo YWR2LCBtb2RlLCBhZGpfbW9kZSk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgYWR2NzUxMV9icmlk Z2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gK3N0YXRpYyBpbnQgYWR2NzUx MV9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gKwkJCQkgZW51bSBk cm1fYnJpZGdlX2F0dGFjaF9mbGFncyBmbGFncykKPiAgewo+ICAJc3RydWN0IGFkdjc1MTEgKmFk diA9IGJyaWRnZV90b19hZHY3NTExKGJyaWRnZSk7Cj4gIAlpbnQgcmV0Owo+ICAKPiArCWlmIChm bGFncyAmIERSTV9CUklER0VfQVRUQUNIX05PX0NPTk5FQ1RPUikKPiArCQlyZXR1cm4gLUVJTlZB TDsKPiArCj4gIAlpZiAoIWJyaWRnZS0+ZW5jb2Rlcikgewo+ICAJCURSTV9FUlJPUigiUGFyZW50 IGVuY29kZXIgb2JqZWN0IG5vdCBmb3VuZCIpOwo+ICAJCXJldHVybiAtRU5PREVWOwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4LWFueDc4eHguYyBiL2RyaXZl cnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgtYW54Nzh4eC5jCj4gaW5kZXggM2M3Y2M1YWY3MzVj Li45OTVhNTQ1NDdmYmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFs b2dpeC1hbng3OHh4LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4LWFu eDc4eHguYwo+IEBAIC05OTgsMTEgKzk5OCwxNSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9j b25uZWN0b3JfZnVuY3MgYW54Nzh4eF9jb25uZWN0b3JfZnVuY3MgPSB7Cj4gIAkuYXRvbWljX2Rl c3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSwK PiAgfTsKPiAgCj4gLXN0YXRpYyBpbnQgYW54Nzh4eF9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1f YnJpZGdlICpicmlkZ2UpCj4gK3N0YXRpYyBpbnQgYW54Nzh4eF9icmlkZ2VfYXR0YWNoKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gKwkJCQkgZW51bSBkcm1fYnJpZGdlX2F0dGFjaF9mbGFn cyBmbGFncykKPiAgewo+ICAJc3RydWN0IGFueDc4eHggKmFueDc4eHggPSBicmlkZ2VfdG9fYW54 Nzh4eChicmlkZ2UpOwo+ICAJaW50IGVycjsKPiAgCj4gKwlpZiAoZmxhZ3MgJiBEUk1fQlJJREdF X0FUVEFDSF9OT19DT05ORUNUT1IpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICAJaWYgKCFi cmlkZ2UtPmVuY29kZXIpIHsKPiAgCQlEUk1fRVJST1IoIlBhcmVudCBlbmNvZGVyIG9iamVjdCBu b3QgZm91bmQiKTsKPiAgCQlyZXR1cm4gLUVOT0RFVjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9jb3JlLmMgYi9kcml2ZXJzL2dwdS9k cm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuYwo+IGluZGV4IDIyODg1ZGNlYWEx Ny4uZDkwM2VlZDM2OGUzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5h bG9naXgvYW5hbG9naXhfZHBfY29yZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9h bmFsb2dpeC9hbmFsb2dpeF9kcF9jb3JlLmMKPiBAQCAtMTIxNSwxMyArMTIxNSwxNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgYW5hbG9naXhfZHBfY29ubmVjdG9y X2Z1bmNzID0gewo+ICAJLmF0b21pY19kZXN0cm95X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJf Y29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUsCj4gIH07Cj4gIAo+IC1zdGF0aWMgaW50IGFuYWxvZ2l4 X2RwX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiArc3RhdGljIGlu dCBhbmFsb2dpeF9kcF9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4g KwkJCQkgICAgIGVudW0gZHJtX2JyaWRnZV9hdHRhY2hfZmxhZ3MgZmxhZ3MpCj4gIHsKPiAgCXN0 cnVjdCBhbmFsb2dpeF9kcF9kZXZpY2UgKmRwID0gYnJpZGdlLT5kcml2ZXJfcHJpdmF0ZTsKPiAg CXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9IGRwLT5lbmNvZGVyOwo+ICAJc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IE5VTEw7Cj4gIAlpbnQgcmV0ID0gMDsKPiAgCj4gKwlp ZiAoZmxhZ3MgJiBEUk1fQlJJREdFX0FUVEFDSF9OT19DT05ORUNUT1IpCj4gKwkJcmV0dXJuIC1F SU5WQUw7Cj4gKwo+ICAJaWYgKCFicmlkZ2UtPmVuY29kZXIpIHsKPiAgCQlEUk1fRVJST1IoIlBh cmVudCBlbmNvZGVyIG9iamVjdCBub3QgZm91bmQiKTsKPiAgCQlyZXR1cm4gLUVOT0RFVjsKPiBA QCAtMTU4Nyw3ICsxNTkxLDcgQEAgc3RhdGljIGludCBhbmFsb2dpeF9kcF9jcmVhdGVfYnJpZGdl KHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LAo+ICAJYnJpZGdlLT5kcml2ZXJfcHJpdmF0ZSA9 IGRwOwo+ICAJYnJpZGdlLT5mdW5jcyA9ICZhbmFsb2dpeF9kcF9icmlkZ2VfZnVuY3M7Cj4gIAo+ IC0JcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZHAtPmVuY29kZXIsIGJyaWRnZSwgTlVMTCk7Cj4g KwlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChkcC0+ZW5jb2RlciwgYnJpZGdlLCBOVUxMLCAwKTsK PiAgCWlmIChyZXQpIHsKPiAgCQlEUk1fRVJST1IoImZhaWxlZCB0byBhdHRhY2ggZHJtIGJyaWRn ZVxuIik7Cj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9icmlkZ2UvY2Rucy1kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvY2Rucy1kc2kuYwo+ IGluZGV4IDYxNjZkY2E2YmU4MS4uMmFmN2YyNWM3NDEzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9icmlkZ2UvY2Rucy1kc2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uv Y2Rucy1kc2kuYwo+IEBAIC02NDUsNyArNjQ1LDggQEAgc3RhdGljIGludCBjZG5zX2RzaV9jaGVj a19jb25mKHN0cnVjdCBjZG5zX2RzaSAqZHNpLAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0 YXRpYyBpbnQgY2Ruc19kc2lfYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdl KQo+ICtzdGF0aWMgaW50IGNkbnNfZHNpX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2Ug KmJyaWRnZSwKPiArCQkJCSAgZW51bSBkcm1fYnJpZGdlX2F0dGFjaF9mbGFncyBmbGFncykKPiAg ewo+ICAJc3RydWN0IGNkbnNfZHNpX2lucHV0ICppbnB1dCA9IGJyaWRnZV90b19jZG5zX2RzaV9p bnB1dChicmlkZ2UpOwo+ICAJc3RydWN0IGNkbnNfZHNpICpkc2kgPSBpbnB1dF90b19kc2koaW5w dXQpOwo+IEBAIC02NTcsNyArNjU4LDggQEAgc3RhdGljIGludCBjZG5zX2RzaV9icmlkZ2VfYXR0 YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gIAkJcmV0dXJuIC1FTk9UU1VQUDsKPiAg CX0KPiAgCj4gLQlyZXR1cm4gZHJtX2JyaWRnZV9hdHRhY2goYnJpZGdlLT5lbmNvZGVyLCBvdXRw dXQtPmJyaWRnZSwgYnJpZGdlKTsKPiArCXJldHVybiBkcm1fYnJpZGdlX2F0dGFjaChicmlkZ2Ut PmVuY29kZXIsIG91dHB1dC0+YnJpZGdlLCBicmlkZ2UsCj4gKwkJCQkgZmxhZ3MpOwo+ICB9Cj4g IAo+ICBzdGF0aWMgZW51bSBkcm1fbW9kZV9zdGF0dXMKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9kdW1iLXZnYS1kYWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvZHVt Yi12Z2EtZGFjLmMKPiBpbmRleCA3YWE3ODljMzU4ODIuLjc0ZWJjYTU4ZWIxZiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2R1bWItdmdhLWRhYy5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9kdW1iLXZnYS1kYWMuYwo+IEBAIC05OSwxMSArOTksMTUgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIGR1bWJfdmdhX2Nvbl9mdW5jcyA9 IHsKPiAgCS5hdG9taWNfZGVzdHJveV9zdGF0ZQk9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rv cl9kZXN0cm95X3N0YXRlLAo+ICB9Owo+ICAKPiAtc3RhdGljIGludCBkdW1iX3ZnYV9hdHRhY2go c3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiArc3RhdGljIGludCBkdW1iX3ZnYV9hdHRhY2go c3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArCQkJICAgZW51bSBkcm1fYnJpZGdlX2F0dGFj aF9mbGFncyBmbGFncykKPiAgewo+ICAJc3RydWN0IGR1bWJfdmdhICp2Z2EgPSBkcm1fYnJpZGdl X3RvX2R1bWJfdmdhKGJyaWRnZSk7Cj4gIAlpbnQgcmV0Owo+ICAKPiArCWlmIChmbGFncyAmIERS TV9CUklER0VfQVRUQUNIX05PX0NPTk5FQ1RPUikKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4g IAlpZiAoIWJyaWRnZS0+ZW5jb2Rlcikgewo+ICAJCURSTV9FUlJPUigiTWlzc2luZyBlbmNvZGVy XG4iKTsKPiAgCQlyZXR1cm4gLUVOT0RFVjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9sdmRzLWVuY29kZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvbHZkcy1lbmNv ZGVyLmMKPiBpbmRleCAyYWIyYzIzNGYyNmMuLjllYmM3NTA0NDljZiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vYnJpZGdlL2x2ZHMtZW5jb2Rlci5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9sdmRzLWVuY29kZXIuYwo+IEBAIC0xOCwxNCArMTgsMTUgQEAgc3RydWN0IGx2 ZHNfZW5jb2RlciB7Cj4gIAlzdHJ1Y3QgZ3Bpb19kZXNjICpwb3dlcmRvd25fZ3BpbzsKPiAgfTsK PiAgCj4gLXN0YXRpYyBpbnQgbHZkc19lbmNvZGVyX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAq YnJpZGdlKQo+ICtzdGF0aWMgaW50IGx2ZHNfZW5jb2Rlcl9hdHRhY2goc3RydWN0IGRybV9icmlk Z2UgKmJyaWRnZSwKPiArCQkJICAgICAgIGVudW0gZHJtX2JyaWRnZV9hdHRhY2hfZmxhZ3MgZmxh Z3MpCj4gIHsKPiAgCXN0cnVjdCBsdmRzX2VuY29kZXIgKmx2ZHNfZW5jb2RlciA9IGNvbnRhaW5l cl9vZihicmlkZ2UsCj4gIAkJCQkJCQkgc3RydWN0IGx2ZHNfZW5jb2RlciwKPiAgCQkJCQkJCSBi cmlkZ2UpOwo+ICAKPiAgCXJldHVybiBkcm1fYnJpZGdlX2F0dGFjaChicmlkZ2UtPmVuY29kZXIs IGx2ZHNfZW5jb2Rlci0+cGFuZWxfYnJpZGdlLAo+IC0JCQkJIGJyaWRnZSk7Cj4gKwkJCQkgYnJp ZGdlLCBmbGFncyk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGx2ZHNfZW5jb2Rlcl9lbmFibGUo c3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9tZWdhY2hpcHMtc3RkcHh4eHgtZ2UtYjg1MHYzLWZ3LmMgYi9kcml2ZXJzL2dwdS9k cm0vYnJpZGdlL21lZ2FjaGlwcy1zdGRweHh4eC1nZS1iODUwdjMtZncuYwo+IGluZGV4IDZlODFl NWRiNTdmMi4uMTM4MDI5MWY2NjcyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlk Z2UvbWVnYWNoaXBzLXN0ZHB4eHh4LWdlLWI4NTB2My1mdy5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9tZWdhY2hpcHMtc3RkcHh4eHgtZ2UtYjg1MHYzLWZ3LmMKPiBAQCAtMjA1LDEz ICsyMDUsMTcgQEAgc3RhdGljIGlycXJldHVybl90IGdlX2I4NTB2M19sdmRzX2lycV9oYW5kbGVy KGludCBpcnEsIHZvaWQgKmRldl9pZCkKPiAgCXJldHVybiBJUlFfSEFORExFRDsKPiAgfQo+ICAK PiAtc3RhdGljIGludCBnZV9iODUwdjNfbHZkc19hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJy aWRnZSkKPiArc3RhdGljIGludCBnZV9iODUwdjNfbHZkc19hdHRhY2goc3RydWN0IGRybV9icmlk Z2UgKmJyaWRnZSwKPiArCQkJCSBlbnVtIGRybV9icmlkZ2VfYXR0YWNoX2ZsYWdzIGZsYWdzKQo+ ICB7Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmdlX2I4NTB2M19sdmRz X3B0ci0+Y29ubmVjdG9yOwo+ICAJc3RydWN0IGkyY19jbGllbnQgKnN0ZHA0MDI4X2kyYwo+ICAJ CQk9IGdlX2I4NTB2M19sdmRzX3B0ci0+c3RkcDQwMjhfaTJjOwo+ICAJaW50IHJldDsKPiAgCj4g KwlpZiAoZmxhZ3MgJiBEUk1fQlJJREdFX0FUVEFDSF9OT19DT05ORUNUT1IpCj4gKwkJcmV0dXJu IC1FSU5WQUw7Cj4gKwo+ICAJaWYgKCFicmlkZ2UtPmVuY29kZXIpIHsKPiAgCQlEUk1fRVJST1Io IlBhcmVudCBlbmNvZGVyIG9iamVjdCBub3QgZm91bmQiKTsKPiAgCQlyZXR1cm4gLUVOT0RFVjsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9ueHAtcHRuMzQ2MC5jIGIvZHJp dmVycy9ncHUvZHJtL2JyaWRnZS9ueHAtcHRuMzQ2MC5jCj4gaW5kZXggZDRhMWNjNTA1MmMzLi40 MmM2OWU5ZDBkNzAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9ueHAtcHRu MzQ2MC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9ueHAtcHRuMzQ2MC5jCj4gQEAg LTIzNSwxMSArMjM1LDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5j cyBwdG4zNDYwX2Nvbm5lY3Rvcl9mdW5jcyA9IHsKPiAgCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9 IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlLAo+ICB9Owo+ICAKPiAt c3RhdGljIGludCBwdG4zNDYwX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRn ZSkKPiArc3RhdGljIGludCBwdG4zNDYwX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2Ug KmJyaWRnZSwKPiArCQkJCSBlbnVtIGRybV9icmlkZ2VfYXR0YWNoX2ZsYWdzIGZsYWdzKQo+ICB7 Cj4gIAlzdHJ1Y3QgcHRuMzQ2MF9icmlkZ2UgKnB0bl9icmlkZ2UgPSBicmlkZ2VfdG9fcHRuMzQ2 MChicmlkZ2UpOwo+ICAJaW50IHJldDsKPiAgCj4gKwlpZiAoZmxhZ3MgJiBEUk1fQlJJREdFX0FU VEFDSF9OT19DT05ORUNUT1IpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICAJaWYgKCFicmlk Z2UtPmVuY29kZXIpIHsKPiAgCQlEUk1fRVJST1IoIlBhcmVudCBlbmNvZGVyIG9iamVjdCBub3Qg Zm91bmQiKTsKPiAgCQlyZXR1cm4gLUVOT0RFVjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9wYW5lbC5jCj4gaW5k ZXggYjEyYWUzYTRjNWYxLi5mNWI4ZTU1MzAxYWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9wYW5lbC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9wYW5lbC5j Cj4gQEAgLTUyLDEyICs1MiwxNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jf ZnVuY3MgcGFuZWxfYnJpZGdlX2Nvbm5lY3Rvcl9mdW5jcyA9IHsKPiAgCS5hdG9taWNfZGVzdHJv eV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlLAo+ICB9 Owo+ICAKPiAtc3RhdGljIGludCBwYW5lbF9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdl ICpicmlkZ2UpCj4gK3N0YXRpYyBpbnQgcGFuZWxfYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2Jy aWRnZSAqYnJpZGdlLAo+ICsJCQkgICAgICAgZW51bSBkcm1fYnJpZGdlX2F0dGFjaF9mbGFncyBm bGFncykKPiAgewo+ICAJc3RydWN0IHBhbmVsX2JyaWRnZSAqcGFuZWxfYnJpZGdlID0gZHJtX2Jy aWRnZV90b19wYW5lbF9icmlkZ2UoYnJpZGdlKTsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IgPSAmcGFuZWxfYnJpZGdlLT5jb25uZWN0b3I7Cj4gIAlpbnQgcmV0Owo+ICAKPiAr CWlmIChmbGFncyAmIERSTV9CUklER0VfQVRUQUNIX05PX0NPTk5FQ1RPUikKPiArCQlyZXR1cm4g LUVJTlZBTDsKPiArCj4gIAlpZiAoIWJyaWRnZS0+ZW5jb2Rlcikgewo+ICAJCURSTV9FUlJPUigi TWlzc2luZyBlbmNvZGVyXG4iKTsKPiAgCQlyZXR1cm4gLUVOT0RFVjsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9wYXJhZGUtcHM4NjIyLmMgYi9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL3BhcmFkZS1wczg2MjIuYwo+IGluZGV4IDkzYzY4ZTJlOTQ4NC4uODE2NDgyZGYyN2E4 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvcGFyYWRlLXBzODYyMi5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9wYXJhZGUtcHM4NjIyLmMKPiBAQCAtNDc1LDEx ICs0NzUsMTUgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIHBzODYy Ml9jb25uZWN0b3JfZnVuY3MgPSB7Cj4gIAkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRv bWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSwKPiAgfTsKPiAgCj4gLXN0YXRpYyBp bnQgcHM4NjIyX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICtzdGF0aWMgaW50 IHBzODYyMl9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArCQkJIGVudW0gZHJt X2JyaWRnZV9hdHRhY2hfZmxhZ3MgZmxhZ3MpCj4gIHsKPiAgCXN0cnVjdCBwczg2MjJfYnJpZGdl ICpwczg2MjIgPSBicmlkZ2VfdG9fcHM4NjIyKGJyaWRnZSk7Cj4gIAlpbnQgcmV0Owo+ICAKPiAr CWlmIChmbGFncyAmIERSTV9CUklER0VfQVRUQUNIX05PX0NPTk5FQ1RPUikKPiArCQlyZXR1cm4g LUVJTlZBTDsKPiArCj4gIAlpZiAoIWJyaWRnZS0+ZW5jb2Rlcikgewo+ICAJCURSTV9FUlJPUigi UGFyZW50IGVuY29kZXIgb2JqZWN0IG5vdCBmb3VuZCIpOwo+ICAJCXJldHVybiAtRU5PREVWOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpaTkwMnguYyBiL2RyaXZlcnMv Z3B1L2RybS9icmlkZ2Uvc2lpOTAyeC5jCj4gaW5kZXggMzhmNzVhYzU4MGRmLi41MWY1ZDdlOGUz NjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWk5MDJ4LmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpaTkwMnguYwo+IEBAIC0zOTgsMTIgKzM5OCwxNiBA QCBzdGF0aWMgdm9pZCBzaWk5MDJ4X2JyaWRnZV9tb2RlX3NldChzdHJ1Y3QgZHJtX2JyaWRnZSAq YnJpZGdlLAo+ICAJbXV0ZXhfdW5sb2NrKCZzaWk5MDJ4LT5tdXRleCk7Cj4gIH0KPiAgCj4gLXN0 YXRpYyBpbnQgc2lpOTAyeF9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2Up Cj4gK3N0YXRpYyBpbnQgc2lpOTAyeF9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpi cmlkZ2UsCj4gKwkJCQkgZW51bSBkcm1fYnJpZGdlX2F0dGFjaF9mbGFncyBmbGFncykKPiAgewo+ ICAJc3RydWN0IHNpaTkwMnggKnNpaTkwMnggPSBicmlkZ2VfdG9fc2lpOTAyeChicmlkZ2UpOwo+ ICAJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IGJyaWRnZS0+ZGV2Owo+ICAJaW50IHJldDsKPiAg Cj4gKwlpZiAoZmxhZ3MgJiBEUk1fQlJJREdFX0FUVEFDSF9OT19DT05ORUNUT1IpCj4gKwkJcmV0 dXJuIC1FSU5WQUw7Cj4gKwo+ICAJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZzaWk5MDJ4LT5j b25uZWN0b3IsCj4gIAkJCQkgJnNpaTkwMnhfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7Cj4gIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4NjIwLmMgYi9kcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4NjIwLmMKPiBpbmRleCBiZDMxNjVlZTUzNTQuLjQ2 MWJkZWIzMjU2OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4 NjIwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4NjIwLmMKPiBAQCAt MjIwMCw3ICsyMjAwLDggQEAgc3RhdGljIGlubGluZSBzdHJ1Y3Qgc2lpODYyMCAqYnJpZGdlX3Rv X3NpaTg2MjAoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiAgCXJldHVybiBjb250YWluZXJf b2YoYnJpZGdlLCBzdHJ1Y3Qgc2lpODYyMCwgYnJpZGdlKTsKPiAgfQo+ICAKPiAtc3RhdGljIGlu dCBzaWk4NjIwX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICtzdGF0aWMgaW50 IHNpaTg2MjBfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gKwkJCSAgZW51bSBk cm1fYnJpZGdlX2F0dGFjaF9mbGFncyBmbGFncykKPiAgewo+ICAJc3RydWN0IHNpaTg2MjAgKmN0 eCA9IGJyaWRnZV90b19zaWk4NjIwKGJyaWRnZSk7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlk Z2Uvc3lub3BzeXMvZHctaGRtaS5jCj4gaW5kZXggNDA0NDA3MTA5MGM0Li5jYjg2YzQ3MDVjZTgg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYwo+IEBAIC0y MjI1LDEyICsyMjI1LDE2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxw ZXJfZnVuY3MgZHdfaGRtaV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzID0KPiAgCS5nZXRfbW9kZXMg PSBkd19oZG1pX2Nvbm5lY3Rvcl9nZXRfbW9kZXMsCj4gIH07Cj4gIAo+IC1zdGF0aWMgaW50IGR3 X2hkbWlfYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICtzdGF0aWMg aW50IGR3X2hkbWlfYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICsJ CQkJIGVudW0gZHJtX2JyaWRnZV9hdHRhY2hfZmxhZ3MgZmxhZ3MpCj4gIHsKPiAgCXN0cnVjdCBk d19oZG1pICpoZG1pID0gYnJpZGdlLT5kcml2ZXJfcHJpdmF0ZTsKPiAgCXN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2RlciA9IGJyaWRnZS0+ZW5jb2RlcjsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IgPSAmaGRtaS0+Y29ubmVjdG9yOwo+ICAKPiArCWlmIChmbGFncyAmIERSTV9C UklER0VfQVRUQUNIX05PX0NPTk5FQ1RPUikKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gIAlj b25uZWN0b3ItPmludGVybGFjZV9hbGxvd2VkID0gMTsKPiAgCWNvbm5lY3Rvci0+cG9sbGVkID0g RFJNX0NPTk5FQ1RPUl9QT0xMX0hQRDsKPiAgCj4gQEAgLTI5MTEsNyArMjkxNSw3IEBAIHN0cnVj dCBkd19oZG1pICpkd19oZG1pX2JpbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKPiAg CWlmIChJU19FUlIoaGRtaSkpCj4gIAkJcmV0dXJuIGhkbWk7Cj4gIAo+IC0JcmV0ID0gZHJtX2Jy aWRnZV9hdHRhY2goZW5jb2RlciwgJmhkbWktPmJyaWRnZSwgTlVMTCk7Cj4gKwlyZXQgPSBkcm1f YnJpZGdlX2F0dGFjaChlbmNvZGVyLCAmaGRtaS0+YnJpZGdlLCBOVUxMLCAwKTsKPiAgCWlmIChy ZXQpIHsKPiAgCQlkd19oZG1pX3JlbW92ZShoZG1pKTsKPiAgCQlEUk1fRVJST1IoIkZhaWxlZCB0 byBpbml0aWFsaXplIGJyaWRnZSB3aXRoIGRybVxuIik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctbWlwaS1kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9i cmlkZ2Uvc3lub3BzeXMvZHctbWlwaS1kc2kuYwo+IGluZGV4IDY3NTQ0MmJmYzFiZC4uOTI0NWRk ZTMxNGE4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHct bWlwaS1kc2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctbWlw aS1kc2kuYwo+IEBAIC05MjMsNyArOTIzLDggQEAgZHdfbWlwaV9kc2lfYnJpZGdlX21vZGVfdmFs aWQoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiAgCXJldHVybiBtb2RlX3N0YXR1czsKPiAg fQo+ICAKPiAtc3RhdGljIGludCBkd19taXBpX2RzaV9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1f YnJpZGdlICpicmlkZ2UpCj4gK3N0YXRpYyBpbnQgZHdfbWlwaV9kc2lfYnJpZGdlX2F0dGFjaChz dHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICsJCQkJICAgICBlbnVtIGRybV9icmlkZ2VfYXR0 YWNoX2ZsYWdzIGZsYWdzKQo+ICB7Cj4gIAlzdHJ1Y3QgZHdfbWlwaV9kc2kgKmRzaSA9IGJyaWRn ZV90b19kc2koYnJpZGdlKTsKPiAgCj4gQEAgLTkzNiw3ICs5MzcsOCBAQCBzdGF0aWMgaW50IGR3 X21pcGlfZHNpX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiAgCWJy aWRnZS0+ZW5jb2Rlci0+ZW5jb2Rlcl90eXBlID0gRFJNX01PREVfRU5DT0RFUl9EU0k7Cj4gIAo+ ICAJLyogQXR0YWNoIHRoZSBwYW5lbC1icmlkZ2UgdG8gdGhlIGRzaSBicmlkZ2UgKi8KPiAtCXJl dHVybiBkcm1fYnJpZGdlX2F0dGFjaChicmlkZ2UtPmVuY29kZXIsIGRzaS0+cGFuZWxfYnJpZGdl LCBicmlkZ2UpOwo+ICsJcmV0dXJuIGRybV9icmlkZ2VfYXR0YWNoKGJyaWRnZS0+ZW5jb2Rlciwg ZHNpLT5wYW5lbF9icmlkZ2UsIGJyaWRnZSwKPiArCQkJCSBmbGFncyk7Cj4gIH0KPiAgCj4gIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2JyaWRnZV9mdW5jcyBkd19taXBpX2RzaV9icmlkZ2VfZnVu Y3MgPSB7Cj4gQEAgLTExMTEsNyArMTExMyw3IEBAIGludCBkd19taXBpX2RzaV9iaW5kKHN0cnVj dCBkd19taXBpX2RzaSAqZHNpLCBzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gIHsKPiAg CWludCByZXQ7Cj4gIAo+IC0JcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgJmRzaS0+ YnJpZGdlLCBOVUxMKTsKPiArCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsICZkc2kt PmJyaWRnZSwgTlVMTCwgdHJ1ZSk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJRFJNX0VSUk9SKCJGYWls ZWQgdG8gaW5pdGlhbGl6ZSBicmlkZ2Ugd2l0aCBkcm1cbiIpOwo+ICAJCXJldHVybiByZXQ7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3NjQuYyBiL2RyaXZlcnMv Z3B1L2RybS9icmlkZ2UvdGMzNTg3NjQuYwo+IGluZGV4IDE3MGYxNjJmZmE1NS4uZWE3NjhkMmI4 MGJiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3NjQuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3NjQuYwo+IEBAIC0zNDgsMTIgKzM0OCwx NiBAQCBzdGF0aWMgdm9pZCB0YzM1ODc2NF9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRn ZSkKPiAgCQlkZXZfZXJyKGN0eC0+ZGV2LCAiZXJyb3IgZW5hYmxpbmcgcGFuZWwgKCVkKVxuIiwg cmV0KTsKPiAgfQo+ICAKPiAtc3RhdGljIGludCB0YzM1ODc2NF9hdHRhY2goc3RydWN0IGRybV9i cmlkZ2UgKmJyaWRnZSkKPiArc3RhdGljIGludCB0YzM1ODc2NF9hdHRhY2goc3RydWN0IGRybV9i cmlkZ2UgKmJyaWRnZSwKPiArCQkJICAgZW51bSBkcm1fYnJpZGdlX2F0dGFjaF9mbGFncyBmbGFn cykKPiAgewo+ICAJc3RydWN0IHRjMzU4NzY0ICpjdHggPSBicmlkZ2VfdG9fdGMzNTg3NjQoYnJp ZGdlKTsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBicmlkZ2UtPmRldjsKPiAgCWludCBy ZXQ7Cj4gIAo+ICsJaWYgKGZsYWdzICYgRFJNX0JSSURHRV9BVFRBQ0hfTk9fQ09OTkVDVE9SKQo+ ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiAgCWN0eC0+Y29ubmVjdG9yLnBvbGxlZCA9IERSTV9D T05ORUNUT1JfUE9MTF9IUEQ7Cj4gIAlyZXQgPSBkcm1fY29ubmVjdG9yX2luaXQoZHJtLCAmY3R4 LT5jb25uZWN0b3IsCj4gIAkJCQkgJnRjMzU4NzY0X2Nvbm5lY3Rvcl9mdW5jcywKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90YzM1ODc2Ny5jIGIvZHJpdmVycy9ncHUvZHJt L2JyaWRnZS90YzM1ODc2Ny5jCj4gaW5kZXggY2ViYzhlNjIwODIwLi5mOTBkNzJhODUxNjQgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90YzM1ODc2Ny5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2JyaWRnZS90YzM1ODc2Ny5jCj4gQEAgLTEzNzgsMTMgKzEzNzgsMTcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIHRjX2Nvbm5lY3Rvcl9mdW5j cyA9IHsKPiAgCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5l Y3Rvcl9kZXN0cm95X3N0YXRlLAo+ICB9Owo+ICAKPiAtc3RhdGljIGludCB0Y19icmlkZ2VfYXR0 YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gK3N0YXRpYyBpbnQgdGNfYnJpZGdlX2F0 dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICsJCQkgICAgZW51bSBkcm1fYnJpZGdl X2F0dGFjaF9mbGFncyBmbGFncykKPiAgewo+ICAJdTMyIGJ1c19mb3JtYXQgPSBNRURJQV9CVVNf Rk1UX1JHQjg4OF8xWDI0Owo+ICAJc3RydWN0IHRjX2RhdGEgKnRjID0gYnJpZGdlX3RvX3RjKGJy aWRnZSk7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gYnJpZGdlLT5kZXY7Cj4gIAlpbnQg cmV0Owo+ICAKPiArCWlmIChmbGFncyAmIERSTV9CUklER0VfQVRUQUNIX05PX0NPTk5FQ1RPUikK PiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gIAkvKiBDcmVhdGUgRFAvZURQIGNvbm5lY3RvciAq Lwo+ICAJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZ0Yy0+Y29ubmVjdG9yLCAmdGNfY29ubmVj dG9yX2hlbHBlcl9mdW5jcyk7Cj4gIAlyZXQgPSBkcm1fY29ubmVjdG9yX2luaXQoZHJtLCAmdGMt PmNvbm5lY3RvciwgJnRjX2Nvbm5lY3Rvcl9mdW5jcywKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2JyaWRnZS90aGM2M2x2ZDEwMjQuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGhj NjNsdmQxMDI0LmMKPiBpbmRleCAzZDc0MTI5YjI5OTUuLjk3ZDgxMjk3NjBlOSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RoYzYzbHZkMTAyNC5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS90aGM2M2x2ZDEwMjQuYwo+IEBAIC00MiwxMSArNDIsMTIgQEAgc3Rh dGljIGlubGluZSBzdHJ1Y3QgdGhjNjNfZGV2ICp0b190aGM2MyhzdHJ1Y3QgZHJtX2JyaWRnZSAq YnJpZGdlKQo+ICAJcmV0dXJuIGNvbnRhaW5lcl9vZihicmlkZ2UsIHN0cnVjdCB0aGM2M19kZXYs IGJyaWRnZSk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgdGhjNjNfYXR0YWNoKHN0cnVjdCBkcm1f YnJpZGdlICpicmlkZ2UpCj4gK3N0YXRpYyBpbnQgdGhjNjNfYXR0YWNoKHN0cnVjdCBkcm1fYnJp ZGdlICpicmlkZ2UsCj4gKwkJCWVudW0gZHJtX2JyaWRnZV9hdHRhY2hfZmxhZ3MgZmxhZ3MpCj4g IHsKPiAgCXN0cnVjdCB0aGM2M19kZXYgKnRoYzYzID0gdG9fdGhjNjMoYnJpZGdlKTsKPiAgCj4g LQlyZXR1cm4gZHJtX2JyaWRnZV9hdHRhY2goYnJpZGdlLT5lbmNvZGVyLCB0aGM2My0+bmV4dCwg YnJpZGdlKTsKPiArCXJldHVybiBkcm1fYnJpZGdlX2F0dGFjaChicmlkZ2UtPmVuY29kZXIsIHRo YzYzLT5uZXh0LCBicmlkZ2UsIGZsYWdzKTsKPiAgfQo+ICAKPiAgc3RhdGljIGVudW0gZHJtX21v ZGVfc3RhdHVzIHRoYzYzX21vZGVfdmFsaWQoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90aS1zbjY1ZHNpODYuYyBiL2RyaXZl cnMvZ3B1L2RybS9icmlkZ2UvdGktc242NWRzaTg2LmMKPiBpbmRleCAwYTU4MDk1N2M4Y2YuLmU5 NzBkM2ZiYzIwYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RpLXNuNjVk c2k4Ni5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90aS1zbjY1ZHNpODYuYwo+IEBA IC0yNjMsNyArMjYzLDggQEAgc3RhdGljIGludCB0aV9zbl9icmlkZ2VfcGFyc2VfcmVndWxhdG9y cyhzdHJ1Y3QgdGlfc25fYnJpZGdlICpwZGF0YSkKPiAgCQkJCSAgICAgICBwZGF0YS0+c3VwcGxp ZXMpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IHRpX3NuX2JyaWRnZV9hdHRhY2goc3RydWN0IGRy bV9icmlkZ2UgKmJyaWRnZSkKPiArc3RhdGljIGludCB0aV9zbl9icmlkZ2VfYXR0YWNoKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gKwkJCSAgICAgICBlbnVtIGRybV9icmlkZ2VfYXR0YWNo X2ZsYWdzIGZsYWdzKQo+ICB7Cj4gIAlpbnQgcmV0LCB2YWw7Cj4gIAlzdHJ1Y3QgdGlfc25fYnJp ZGdlICpwZGF0YSA9IGJyaWRnZV90b190aV9zbl9icmlkZ2UoYnJpZGdlKTsKPiBAQCAtMjc0LDYg KzI3NSw5IEBAIHN0YXRpYyBpbnQgdGlfc25fYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRn ZSAqYnJpZGdlKQo+ICAJCQkJCQkgICAubm9kZSA9IE5VTEwsCj4gIAkJCQkJCSB9Owo+ICAKPiAr CWlmIChmbGFncyAmIERSTV9CUklER0VfQVRUQUNIX05PX0NPTk5FQ1RPUikKPiArCQlyZXR1cm4g LUVJTlZBTDsKPiArCj4gIAlyZXQgPSBkcm1fY29ubmVjdG9yX2luaXQoYnJpZGdlLT5kZXYsICZw ZGF0YS0+Y29ubmVjdG9yLAo+ICAJCQkJICZ0aV9zbl9icmlkZ2VfY29ubmVjdG9yX2Z1bmNzLAo+ ICAJCQkJIERSTV9NT0RFX0NPTk5FQ1RPUl9lRFApOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYnJpZGdlL3RpLXRmcDQxMC5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90aS10ZnA0 MTAuYwo+IGluZGV4IDYxY2MyMzU0ZWYxYi4uYTkzNTkwMzhmN2RjIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9icmlkZ2UvdGktdGZwNDEwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL3RpLXRmcDQxMC5jCj4gQEAgLTExNywxMSArMTE3LDE1IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyB0ZnA0MTBfY29uX2Z1bmNzID0gewo+ICAJLmF0b21p Y19kZXN0cm95X3N0YXRlCT0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3Rh dGUsCj4gIH07Cj4gIAo+IC1zdGF0aWMgaW50IHRmcDQxMF9hdHRhY2goc3RydWN0IGRybV9icmlk Z2UgKmJyaWRnZSkKPiArc3RhdGljIGludCB0ZnA0MTBfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdl ICpicmlkZ2UsCj4gKwkJCSBlbnVtIGRybV9icmlkZ2VfYXR0YWNoX2ZsYWdzIGZsYWdzKQo+ICB7 Cj4gIAlzdHJ1Y3QgdGZwNDEwICpkdmkgPSBkcm1fYnJpZGdlX3RvX3RmcDQxMChicmlkZ2UpOwo+ ICAJaW50IHJldDsKPiAgCj4gKwlpZiAoZmxhZ3MgJiBEUk1fQlJJREdFX0FUVEFDSF9OT19DT05O RUNUT1IpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICAJaWYgKCFicmlkZ2UtPmVuY29kZXIp IHsKPiAgCQlkZXZfZXJyKGR2aS0+ZGV2LCAiTWlzc2luZyBlbmNvZGVyXG4iKTsKPiAgCQlyZXR1 cm4gLUVOT0RFVjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fYnJpZGdlLmMKPiBpbmRleCBjZjFmYmVkODg0MTAuLjgxNDAy N2E5OGZjYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2JyaWRnZS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYwo+IEBAIC05OSw2ICs5OSw3IEBAIEVYUE9S VF9TWU1CT0woZHJtX2JyaWRnZV9yZW1vdmUpOwo+ICAgKiBAZW5jb2RlcjogRFJNIGVuY29kZXIK PiAgICogQGJyaWRnZTogYnJpZGdlIHRvIGF0dGFjaAo+ICAgKiBAcHJldmlvdXM6IHByZXZpb3Vz IGJyaWRnZSBpbiB0aGUgY2hhaW4gKG9wdGlvbmFsKQo+ICsgKiBAZmxhZ3M6IERSTV9CUklER0Vf QVRUQUNIXyogZmxhZ3MKPiAgICoKPiAgICogQ2FsbGVkIGJ5IGEga21zIGRyaXZlciB0byBsaW5r IHRoZSBicmlkZ2UgdG8gYW4gZW5jb2RlcidzIGNoYWluLiBUaGUgcHJldmlvdXMKPiAgICogYXJn dW1lbnQgc3BlY2lmaWVzIHRoZSBwcmV2aW91cyBicmlkZ2UgaW4gdGhlIGNoYWluLiBJZiBOVUxM LCB0aGUgYnJpZGdlIGlzCj4gQEAgLTExNiw3ICsxMTcsOCBAQCBFWFBPUlRfU1lNQk9MKGRybV9i cmlkZ2VfcmVtb3ZlKTsKPiAgICogWmVybyBvbiBzdWNjZXNzLCBlcnJvciBjb2RlIG9uIGZhaWx1 cmUKPiAgICovCj4gIGludCBkcm1fYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIsIHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gLQkJICAgICAgc3RydWN0IGRybV9i cmlkZ2UgKnByZXZpb3VzKQo+ICsJCSAgICAgIHN0cnVjdCBkcm1fYnJpZGdlICpwcmV2aW91cywK PiArCQkgICAgICBlbnVtIGRybV9icmlkZ2VfYXR0YWNoX2ZsYWdzIGZsYWdzKQo+ICB7Cj4gIAlp bnQgcmV0Owo+ICAKPiBAQCAtMTMzLDcgKzEzNSw3IEBAIGludCBkcm1fYnJpZGdlX2F0dGFjaChz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4g IAlicmlkZ2UtPmVuY29kZXIgPSBlbmNvZGVyOwo+ICAKPiAgCWlmIChicmlkZ2UtPmZ1bmNzLT5h dHRhY2gpIHsKPiAtCQlyZXQgPSBicmlkZ2UtPmZ1bmNzLT5hdHRhY2goYnJpZGdlKTsKPiArCQly ZXQgPSBicmlkZ2UtPmZ1bmNzLT5hdHRhY2goYnJpZGdlLCBmbGFncyk7Cj4gIAkJaWYgKHJldCA8 IDApIHsKPiAgCQkJYnJpZGdlLT5kZXYgPSBOVUxMOwo+ICAJCQlicmlkZ2UtPmVuY29kZXIgPSBO VUxMOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVy LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3NpbXBsZV9rbXNfaGVscGVyLmMKPiBpbmRleCBiMTE5 MTBmMTRjNDYuLmVhMTA1ZDEzNzA2NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJt X3NpbXBsZV9rbXNfaGVscGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3NpbXBsZV9r bXNfaGVscGVyLmMKPiBAQCAtMjI4LDcgKzIyOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJt X3BsYW5lX2Z1bmNzIGRybV9zaW1wbGVfa21zX3BsYW5lX2Z1bmNzID0gewo+ICBpbnQgZHJtX3Np bXBsZV9kaXNwbGF5X3BpcGVfYXR0YWNoX2JyaWRnZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5 X3BpcGUgKnBpcGUsCj4gIAkJCQkJICBzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICB7Cj4g LQlyZXR1cm4gZHJtX2JyaWRnZV9hdHRhY2goJnBpcGUtPmVuY29kZXIsIGJyaWRnZSwgTlVMTCk7 Cj4gKwlyZXR1cm4gZHJtX2JyaWRnZV9hdHRhY2goJnBpcGUtPmVuY29kZXIsIGJyaWRnZSwgTlVM TCwgMCk7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTChkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9hdHRh Y2hfYnJpZGdlKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5 bm9zX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcC5jCj4gaW5kZXggM2Ew ZjBiYThjNjNhLi4zZjc5YzgxNTFhYWQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4 eW5vcy9leHlub3NfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2Rw LmMKPiBAQCAtMTA1LDcgKzEwNSw4IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2RwX2JyaWRnZV9hdHRh Y2goc3RydWN0IGFuYWxvZ2l4X2RwX3BsYXRfZGF0YSAqcGxhdF9kYXRhLAo+ICAKPiAgCS8qIFBy ZS1lbXB0IERQIGNvbm5lY3RvciBjcmVhdGlvbiBpZiB0aGVyZSdzIGEgYnJpZGdlICovCj4gIAlp ZiAoZHAtPnB0bl9icmlkZ2UpIHsKPiAtCQlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaCgmZHAtPmVu Y29kZXIsIGRwLT5wdG5fYnJpZGdlLCBicmlkZ2UpOwo+ICsJCXJldCA9IGRybV9icmlkZ2VfYXR0 YWNoKCZkcC0+ZW5jb2RlciwgZHAtPnB0bl9icmlkZ2UsIGJyaWRnZSwKPiArCQkJCQkwKTsKPiAg CQlpZiAocmV0KSB7Cj4gIAkJCURSTV9ERVZfRVJST1IoZHAtPmRldiwKPiAgCQkJCSAgICAgICJG YWlsZWQgdG8gYXR0YWNoIGJyaWRnZSB0byBkcm1cbiIpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9z L2V4eW5vc19kcm1fZHNpLmMKPiBpbmRleCA2OTI2Y2VlOTFiMzYuLmE4NGExOTc5ZTMyNyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHNpLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHNpLmMKPiBAQCAtMTUxOSw3ICsx NTE5LDcgQEAgc3RhdGljIGludCBleHlub3NfZHNpX2hvc3RfYXR0YWNoKHN0cnVjdCBtaXBpX2Rz aV9ob3N0ICpob3N0LAo+ICAKPiAgCW91dF9icmlkZ2UgID0gb2ZfZHJtX2ZpbmRfYnJpZGdlKGRl dmljZS0+ZGV2Lm9mX25vZGUpOwo+ICAJaWYgKG91dF9icmlkZ2UpIHsKPiAtCQlkcm1fYnJpZGdl X2F0dGFjaChlbmNvZGVyLCBvdXRfYnJpZGdlLCBOVUxMKTsKPiArCQlkcm1fYnJpZGdlX2F0dGFj aChlbmNvZGVyLCBvdXRfYnJpZGdlLCBOVUxMLCAwKTsKPiAgCQlkc2ktPm91dF9icmlkZ2UgPSBv dXRfYnJpZGdlOwo+ICAJCWVuY29kZXItPmJyaWRnZSA9IE5VTEw7Cj4gIAl9IGVsc2Ugewo+IEBA IC0xNjk1LDcgKzE2OTUsNyBAQCBzdGF0aWMgaW50IGV4eW5vc19kc2lfYmluZChzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3RlciwKPiAgCWlmIChkc2ktPmluX2JyaWRnZV9u b2RlKSB7Cj4gIAkJaW5fYnJpZGdlID0gb2ZfZHJtX2ZpbmRfYnJpZGdlKGRzaS0+aW5fYnJpZGdl X25vZGUpOwo+ICAJCWlmIChpbl9icmlkZ2UpCj4gLQkJCWRybV9icmlkZ2VfYXR0YWNoKGVuY29k ZXIsIGluX2JyaWRnZSwgTlVMTCk7Cj4gKwkJCWRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGlu X2JyaWRnZSwgTlVMTCwgMCk7Cj4gIAl9Cj4gIAo+ICAJcmV0dXJuIG1pcGlfZHNpX2hvc3RfcmVn aXN0ZXIoJmRzaS0+ZHNpX2hvc3QpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5 bm9zL2V4eW5vc19oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19oZG1pLmMK PiBpbmRleCBiYzE1NjVmMTgyMmEuLjk5Nzg3NDNlZTA1OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19oZG1pLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5 bm9zL2V4eW5vc19oZG1pLmMKPiBAQCAtOTUyLDcgKzk1Miw3IEBAIHN0YXRpYyBpbnQgaGRtaV9j cmVhdGVfY29ubmVjdG9yKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiAgCWRybV9jb25u ZWN0b3JfYXR0YWNoX2VuY29kZXIoY29ubmVjdG9yLCBlbmNvZGVyKTsKPiAgCj4gIAlpZiAoaGRh dGEtPmJyaWRnZSkgewo+IC0JCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGhkYXRh LT5icmlkZ2UsIE5VTEwpOwo+ICsJCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGhk YXRhLT5icmlkZ2UsIE5VTEwsIDApOwo+ICAJCWlmIChyZXQpCj4gIAkJCURSTV9ERVZfRVJST1Io aGRhdGEtPmRldiwgIkZhaWxlZCB0byBhdHRhY2ggYnJpZGdlXG4iKTsKPiAgCX0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1fcmdiLmMgYi9kcml2ZXJz L2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9yZ2IuYwo+IGluZGV4IGE5MmZkNmM3MGIwOS4u OTAwYTMzZTFkMmZiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9k Y3VfZHJtX3JnYi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2ZzbC1kY3UvZnNsX2RjdV9kcm1f cmdiLmMKPiBAQCAtMTUwLDUgKzE1MCw1IEBAIGludCBmc2xfZGN1X2NyZWF0ZV9vdXRwdXRzKHN0 cnVjdCBmc2xfZGN1X2RybV9kZXZpY2UgKmZzbF9kZXYpCj4gIAkJcmV0dXJuIGZzbF9kY3VfYXR0 YWNoX3BhbmVsKGZzbF9kZXYsIHBhbmVsKTsKPiAgCX0KPiAgCj4gLQlyZXR1cm4gZHJtX2JyaWRn ZV9hdHRhY2goJmZzbF9kZXYtPmVuY29kZXIsIGJyaWRnZSwgTlVMTCk7Cj4gKwlyZXR1cm4gZHJt X2JyaWRnZV9hdHRhY2goJmZzbF9kZXYtPmVuY29kZXIsIGJyaWRnZSwgTlVMTCwgMCk7Cj4gIH0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9kd19kcm1fZHNp LmMgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL2R3X2RybV9kc2kuYwo+IGluZGV4 IDViZjgxMzg5NDFkZS4uNDM1NDNhMDg3N2E5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9oaXNpbGljb24va2lyaW4vZHdfZHJtX2RzaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2hp c2lsaWNvbi9raXJpbi9kd19kcm1fZHNpLmMKPiBAQCAtNzc2LDcgKzc3Niw3IEBAIHN0YXRpYyBp bnQgZHNpX2JyaWRnZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkd19kc2kg KmRzaSkKPiAgCWludCByZXQ7Cj4gIAo+ICAJLyogYXNzb2NpYXRlIHRoZSBicmlkZ2UgdG8gZHNp IGVuY29kZXIgKi8KPiAtCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGJyaWRnZSwg TlVMTCk7Cj4gKwlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBicmlkZ2UsIE5VTEws IDApOwo+ICAJaWYgKHJldCkgewo+ICAJCURSTV9FUlJPUigiZmFpbGVkIHRvIGF0dGFjaCBleHRl cm5hbCBicmlkZ2VcbiIpOwo+ICAJCXJldHVybiByZXQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pMmMvdGRhOTk4eF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pMmMvdGRhOTk4eF9k cnYuYwo+IGluZGV4IDg0YzZkNGM5MWM2NS4uM2Y5YTNkNWRiZGViIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pMmMvdGRhOTk4eF9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p MmMvdGRhOTk4eF9kcnYuYwo+IEBAIC0xMzU1LDEwICsxMzU1LDE0IEBAIHN0YXRpYyBpbnQgdGRh OTk4eF9jb25uZWN0b3JfaW5pdChzdHJ1Y3QgdGRhOTk4eF9wcml2ICpwcml2LAo+ICAKPiAgLyog RFJNIGJyaWRnZSBmdW5jdGlvbnMgKi8KPiAgCj4gLXN0YXRpYyBpbnQgdGRhOTk4eF9icmlkZ2Vf YXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gK3N0YXRpYyBpbnQgdGRhOTk4eF9i cmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gKwkJCQkgZW51bSBkcm1f YnJpZGdlX2F0dGFjaF9mbGFncyBmbGFncykKPiAgewo+ICAJc3RydWN0IHRkYTk5OHhfcHJpdiAq cHJpdiA9IGJyaWRnZV90b190ZGE5OTh4X3ByaXYoYnJpZGdlKTsKPiAgCj4gKwlpZiAoZmxhZ3Mg JiBEUk1fQlJJREdFX0FUVEFDSF9OT19DT05ORUNUT1IpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4g Kwo+ICAJcmV0dXJuIHRkYTk5OHhfY29ubmVjdG9yX2luaXQocHJpdiwgYnJpZGdlLT5kZXYpOwo+ ICB9Cj4gIAo+IEBAIC0yMDIyLDcgKzIwMjYsNyBAQCBzdGF0aWMgaW50IHRkYTk5OHhfZW5jb2Rl cl9pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRybV9kZXZpY2UgKmRybSkKPiAgCWlm IChyZXQpCj4gIAkJZ290byBlcnJfZW5jb2RlcjsKPiAgCj4gLQlyZXQgPSBkcm1fYnJpZGdlX2F0 dGFjaCgmcHJpdi0+ZW5jb2RlciwgJnByaXYtPmJyaWRnZSwgTlVMTCk7Cj4gKwlyZXQgPSBkcm1f YnJpZGdlX2F0dGFjaCgmcHJpdi0+ZW5jb2RlciwgJnByaXYtPmJyaWRnZSwgTlVMTCwgMCk7Cj4g IAlpZiAocmV0KQo+ICAJCWdvdG8gZXJyX2JyaWRnZTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pbXgvaW14LWxkYi5jIGIvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtbGRiLmMK PiBpbmRleCA2OTVmMzA3ZjM2YjIuLjYzNThlOTczMzM5OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaW14L2lteC1sZGIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWxk Yi5jCj4gQEAgLTQ0NSw3ICs0NDUsNyBAQCBzdGF0aWMgaW50IGlteF9sZGJfcmVnaXN0ZXIoc3Ry dWN0IGRybV9kZXZpY2UgKmRybSwKPiAgCj4gIAlpZiAoaW14X2xkYl9jaC0+YnJpZGdlKSB7Cj4g IAkJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goJmlteF9sZGJfY2gtPmVuY29kZXIsCj4gLQkJCQkJ aW14X2xkYl9jaC0+YnJpZGdlLCBOVUxMKTsKPiArCQkJCQlpbXhfbGRiX2NoLT5icmlkZ2UsIE5V TEwsIDApOwo+ICAJCWlmIChyZXQpIHsKPiAgCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gaW5pdGlh bGl6ZSBicmlkZ2Ugd2l0aCBkcm1cbiIpOwo+ICAJCQlyZXR1cm4gcmV0Owo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVsLWRpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pbXgvcGFyYWxsZWwtZGlzcGxheS5jCj4gaW5kZXggZTdjZTE3NTAzYWUxLi5lMzg1Y2U1ZGVi OTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lteC9wYXJhbGxlbC1kaXNwbGF5LmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVsLWRpc3BsYXkuYwo+IEBAIC0xODEs NyArMTgxLDcgQEAgc3RhdGljIGludCBpbXhfcGRfcmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2Ug KmRybSwKPiAgCQlkcm1fcGFuZWxfYXR0YWNoKGlteHBkLT5wYW5lbCwgJmlteHBkLT5jb25uZWN0 b3IpOwo+ICAKPiAgCWlmIChpbXhwZC0+YnJpZGdlKSB7Cj4gLQkJcmV0ID0gZHJtX2JyaWRnZV9h dHRhY2goZW5jb2RlciwgaW14cGQtPmJyaWRnZSwgTlVMTCk7Cj4gKwkJcmV0ID0gZHJtX2JyaWRn ZV9hdHRhY2goZW5jb2RlciwgaW14cGQtPmJyaWRnZSwgTlVMTCwgMCk7Cj4gIAkJaWYgKHJldCA8 IDApIHsKPiAgCQkJZGV2X2VycihpbXhwZC0+ZGV2LCAiZmFpbGVkIHRvIGF0dGFjaCBicmlkZ2U6 ICVkXG4iLAo+ICAJCQkJcmV0KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2luZ2Vu aWMvaW5nZW5pYy1kcm0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pbmdlbmljL2luZ2VuaWMtZHJtLmMK PiBpbmRleCBjZTFmYWUzYTc4YTkuLjY1ZWIxMDE3OWVhOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaW5nZW5pYy9pbmdlbmljLWRybS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2lu Z2VuaWMvaW5nZW5pYy1kcm0uYwo+IEBAIC03MjYsNyArNzI2LDcgQEAgc3RhdGljIGludCBpbmdl bmljX2RybV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJCXJldHVybiBy ZXQ7Cj4gIAl9Cj4gIAo+IC0JcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goJnByaXYtPmVuY29kZXIs IGJyaWRnZSwgTlVMTCk7Cj4gKwlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaCgmcHJpdi0+ZW5jb2Rl ciwgYnJpZGdlLCBOVUxMLCAwKTsKPiAgCWlmIChyZXQpIHsKPiAgCQlkZXZfZXJyKGRldiwgIlVu YWJsZSB0byBhdHRhY2ggYnJpZGdlIik7Cj4gIAkJcmV0dXJuIHJldDsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21jZGUvbWNkZV9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9tY2RlL21j ZGVfZHNpLmMKPiBpbmRleCAwN2Y3MDkwZDA4YjMuLjhmZWFhMWI4MTQ3MyAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vbWNkZS9tY2RlX2RzaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L21jZGUvbWNkZV9kc2kuYwo+IEBAIC04MTcsMTIgKzgxNywxNiBAQCBtY2RlX2RzaV9jb25uZWN0 b3JfaGVscGVyX2Z1bmNzID0gewo+ICAJLmdldF9tb2RlcyA9IG1jZGVfZHNpX2dldF9tb2RlcywK PiAgfTsKPiAgCj4gLXN0YXRpYyBpbnQgbWNkZV9kc2lfYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJt X2JyaWRnZSAqYnJpZGdlKQo+ICtzdGF0aWMgaW50IG1jZGVfZHNpX2JyaWRnZV9hdHRhY2goc3Ry dWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArCQkJCSAgZW51bSBkcm1fYnJpZGdlX2F0dGFjaF9m bGFncyBmbGFncykKPiAgewo+ICAJc3RydWN0IG1jZGVfZHNpICpkID0gYnJpZGdlX3RvX21jZGVf ZHNpKGJyaWRnZSk7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gYnJpZGdlLT5kZXY7Cj4g IAlpbnQgcmV0Owo+ICAKPiArCWlmIChmbGFncyAmIERSTV9CUklER0VfQVRUQUNIX05PX0NPTk5F Q1RPUikKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gIAlkcm1fY29ubmVjdG9yX2hlbHBlcl9h ZGQoJmQtPmNvbm5lY3RvciwKPiAgCQkJCSAmbWNkZV9kc2lfY29ubmVjdG9yX2hlbHBlcl9mdW5j cyk7Cj4gIAo+IEBAIC04NDIsNyArODQ2LDcgQEAgc3RhdGljIGludCBtY2RlX2RzaV9icmlkZ2Vf YXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gIAkvKiBUaGUgZW5jb2RlciBpbiB0 aGUgYnJpZGdlIGF0dGFjaGVkIHRvIHRoZSBEU0kgYnJpZGdlICovCj4gIAlkcm1fY29ubmVjdG9y X2F0dGFjaF9lbmNvZGVyKCZkLT5jb25uZWN0b3IsIGJyaWRnZS0+ZW5jb2Rlcik7Cj4gIAkvKiBU aGVuIHdlIGF0dGFjaCB0aGUgRFNJIGJyaWRnZSB0byB0aGUgb3V0cHV0IChwYW5lbCBldGMpIGJy aWRnZSAqLwo+IC0JcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goYnJpZGdlLT5lbmNvZGVyLCBkLT5i cmlkZ2Vfb3V0LCBicmlkZ2UpOwo+ICsJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goYnJpZGdlLT5l bmNvZGVyLCBkLT5icmlkZ2Vfb3V0LCBicmlkZ2UsIGZsYWdzKTsKPiAgCWlmIChyZXQpIHsKPiAg CQlkZXZfZXJyKGQtPmRldiwgImZhaWxlZCB0byBhdHRhY2ggdGhlIERTSSBicmlkZ2VcbiIpOwo+ ICAJCXJldHVybiByZXQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9t dGtfZHBpLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RwaS5jCj4gaW5kZXggYmU2 ZDk1YzVmZjI1Li5jZmI0N2IwNTRkMjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19kcGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHBp LmMKPiBAQCAtNjA2LDcgKzYwNiw3IEBAIHN0YXRpYyBpbnQgbXRrX2RwaV9iaW5kKHN0cnVjdCBk ZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQo+ICAJLyogQ3Vy cmVudGx5IERQSTAgaXMgZml4ZWQgdG8gYmUgZHJpdmVuIGJ5IE9WTDEgKi8KPiAgCWRwaS0+ZW5j b2Rlci5wb3NzaWJsZV9jcnRjcyA9IEJJVCgxKTsKPiAgCj4gLQlyZXQgPSBkcm1fYnJpZGdlX2F0 dGFjaCgmZHBpLT5lbmNvZGVyLCBkcGktPmJyaWRnZSwgTlVMTCk7Cj4gKwlyZXQgPSBkcm1fYnJp ZGdlX2F0dGFjaCgmZHBpLT5lbmNvZGVyLCBkcGktPmJyaWRnZSwgTlVMTCwgMCk7Cj4gIAlpZiAo cmV0KSB7Cj4gIAkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gYXR0YWNoIGJyaWRnZTogJWRcbiIs IHJldCk7Cj4gIAkJZ290byBlcnJfY2xlYW51cDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNp LmMKPiBpbmRleCAyMjRhZmI2NjY4ODEuLmQxMTI5ZDQwNzdhOSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19kc2kuYwo+IEBAIC04MjEsNyArODIxLDcgQEAgc3RhdGljIGludCBtdGtfZHNp X2NyZWF0ZV9jb25uX2VuYyhzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBzdHJ1Y3QgbXRrX2RzaSAq ZHNpKQo+ICAKPiAgCS8qIElmIHRoZXJlJ3MgYSBicmlkZ2UsIGF0dGFjaCB0byBpdCBhbmQgbGV0 IGl0IGNyZWF0ZSB0aGUgY29ubmVjdG9yICovCj4gIAlpZiAoZHNpLT5icmlkZ2UpIHsKPiAtCQly ZXQgPSBkcm1fYnJpZGdlX2F0dGFjaCgmZHNpLT5lbmNvZGVyLCBkc2ktPmJyaWRnZSwgTlVMTCk7 Cj4gKwkJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goJmRzaS0+ZW5jb2RlciwgZHNpLT5icmlkZ2Us IE5VTEwsIDApOwo+ICAJCWlmIChyZXQpIHsKPiAgCQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYXR0 YWNoIGJyaWRnZSB0byBkcm1cbiIpOwo+ICAJCQlnb3RvIGVycl9lbmNvZGVyX2NsZWFudXA7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfaGRtaS5jIGIvZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19oZG1pLmMKPiBpbmRleCBjZTkxYjYxMzY0ZWIuLmYwZTU1 ZjIxOTc3MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWku Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfaGRtaS5jCj4gQEAgLTEyOTQs MTEgKzEyOTQsMTUgQEAgc3RhdGljIHZvaWQgbXRrX2hkbWlfaHBkX2V2ZW50KGJvb2wgaHBkLCBz dHJ1Y3QgZGV2aWNlICpkZXYpCj4gICAqIEJyaWRnZSBjYWxsYmFja3MKPiAgICovCj4gIAo+IC1z dGF0aWMgaW50IG10a19oZG1pX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRn ZSkKPiArc3RhdGljIGludCBtdGtfaGRtaV9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdl ICpicmlkZ2UsCj4gKwkJCQkgIGVudW0gZHJtX2JyaWRnZV9hdHRhY2hfZmxhZ3MgZmxhZ3MpCj4g IHsKPiAgCXN0cnVjdCBtdGtfaGRtaSAqaGRtaSA9IGhkbWlfY3R4X2Zyb21fYnJpZGdlKGJyaWRn ZSk7Cj4gIAlpbnQgcmV0Owo+ICAKPiArCWlmIChmbGFncyAmIERSTV9CUklER0VfQVRUQUNIX05P X0NPTk5FQ1RPUikKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gIAlyZXQgPSBkcm1fY29ubmVj dG9yX2luaXQoYnJpZGdlLT5lbmNvZGVyLT5kZXYsICZoZG1pLT5jb25uLAo+ICAJCQkJICZtdGtf aGRtaV9jb25uZWN0b3JfZnVuY3MsCj4gIAkJCQkgRFJNX01PREVfQ09OTkVDVE9SX0hETUlBKTsK PiBAQCAtMTMyMiw3ICsxMzI2LDcgQEAgc3RhdGljIGludCBtdGtfaGRtaV9icmlkZ2VfYXR0YWNo KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gIAo+ICAJaWYgKGhkbWktPm5leHRfYnJpZGdl KSB7Cj4gIAkJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goYnJpZGdlLT5lbmNvZGVyLCBoZG1pLT5u ZXh0X2JyaWRnZSwKPiAtCQkJCQlicmlkZ2UpOwo+ICsJCQkJCWJyaWRnZSwgZmxhZ3MpOwo+ICAJ CWlmIChyZXQpIHsKPiAgCQkJZGV2X2VycihoZG1pLT5kZXYsCj4gIAkJCQkiRmFpbGVkIHRvIGF0 dGFjaCBleHRlcm5hbCBicmlkZ2U6ICVkXG4iLCByZXQpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbXNtL2RzaS9kc2lfbWFuYWdlci5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kv ZHNpX21hbmFnZXIuYwo+IGluZGV4IDI3MWFhN2JiY2E5Mi4uNTBiOWJkZGY5MmIzIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9tYW5hZ2VyLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfbWFuYWdlci5jCj4gQEAgLTY2NCw3ICs2NjQsNyBAQCBz dHJ1Y3QgZHJtX2JyaWRnZSAqbXNtX2RzaV9tYW5hZ2VyX2JyaWRnZV9pbml0KHU4IGlkKQo+ICAJ YnJpZGdlID0gJmRzaV9icmlkZ2UtPmJhc2U7Cj4gIAlicmlkZ2UtPmZ1bmNzID0gJmRzaV9tZ3Jf YnJpZGdlX2Z1bmNzOwo+ICAKPiAtCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGJy aWRnZSwgTlVMTCk7Cj4gKwlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBicmlkZ2Us IE5VTEwsIDApOwo+ICAJaWYgKHJldCkKPiAgCQlnb3RvIGZhaWw7Cj4gIAo+IEBAIC02OTMsNyAr NjkzLDcgQEAgc3RydWN0IGRybV9jb25uZWN0b3IgKm1zbV9kc2lfbWFuYWdlcl9leHRfYnJpZGdl X2luaXQodTggaWQpCj4gIAllbmNvZGVyID0gbXNtX2RzaS0+ZW5jb2RlcjsKPiAgCj4gIAkvKiBs aW5rIHRoZSBpbnRlcm5hbCBkc2kgYnJpZGdlIHRvIHRoZSBleHRlcm5hbCBicmlkZ2UgKi8KPiAt CWRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGV4dF9icmlkZ2UsIGludF9icmlkZ2UpOwo+ICsJ ZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgZXh0X2JyaWRnZSwgaW50X2JyaWRnZSwgMCk7Cj4g IAo+ICAJLyoKPiAgCSAqIHdlIG5lZWQgdGhlIGRybV9jb25uZWN0b3IgY3JlYXRlZCBieSB0aGUg ZXh0ZXJuYWwgYnJpZGdlCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZWRwL2Vk cF9icmlkZ2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZWRwL2VkcF9icmlkZ2UuYwo+IGluZGV4 IDI5NTBiYmE0YWNhOS4uYjU5NDUxZDk3MTJjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZWRwL2VkcF9icmlkZ2UuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZWRwL2Vk cF9icmlkZ2UuYwo+IEBAIC05MSw3ICs5MSw3IEBAIHN0cnVjdCBkcm1fYnJpZGdlICptc21fZWRw X2JyaWRnZV9pbml0KHN0cnVjdCBtc21fZWRwICplZHApCj4gIAlicmlkZ2UgPSAmZWRwX2JyaWRn ZS0+YmFzZTsKPiAgCWJyaWRnZS0+ZnVuY3MgPSAmZWRwX2JyaWRnZV9mdW5jczsKPiAgCj4gLQly ZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlZHAtPmVuY29kZXIsIGJyaWRnZSwgTlVMTCk7Cj4gKwly ZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlZHAtPmVuY29kZXIsIGJyaWRnZSwgTlVMTCwgMCk7Cj4g IAlpZiAocmV0KQo+ICAJCWdvdG8gZmFpbDsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vaGRtaS9oZG1pX2JyaWRnZS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9oZG1pL2hk bWlfYnJpZGdlLmMKPiBpbmRleCBjOGRiZDgyODU0YzIuLjdhNjg1ZjBlZGQ4OCAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaV9icmlkZ2UuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pX2JyaWRnZS5jCj4gQEAgLTI4NSw3ICsyODUsNyBAQCBz dHJ1Y3QgZHJtX2JyaWRnZSAqbXNtX2hkbWlfYnJpZGdlX2luaXQoc3RydWN0IGhkbWkgKmhkbWkp Cj4gIAlicmlkZ2UgPSAmaGRtaV9icmlkZ2UtPmJhc2U7Cj4gIAlicmlkZ2UtPmZ1bmNzID0gJm1z bV9oZG1pX2JyaWRnZV9mdW5jczsKPiAgCj4gLQlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChoZG1p LT5lbmNvZGVyLCBicmlkZ2UsIE5VTEwpOwo+ICsJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goaGRt aS0+ZW5jb2RlciwgYnJpZGdlLCBOVUxMLCAwKTsKPiAgCWlmIChyZXQpCj4gIAkJZ290byBmYWls Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9kcnYuYyBi L2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZHJ2LmMKPiBpbmRleCA5ZjY1MmQyZTdhZjEu LjI5ODhhZjlhZTc0MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFw X2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9kcnYuYwo+IEBAIC0y OTYsNyArMjk2LDcgQEAgc3RhdGljIGludCBvbWFwX21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+ICAKPiAgCQlpZiAocGlwZS0+b3V0cHV0LT5icmlkZ2UpIHsKPiAgCQkJcmV0 ID0gZHJtX2JyaWRnZV9hdHRhY2gocGlwZS0+ZW5jb2RlciwKPiAtCQkJCQkJcGlwZS0+b3V0cHV0 LT5icmlkZ2UsIE5VTEwpOwo+ICsJCQkJCQlwaXBlLT5vdXRwdXQtPmJyaWRnZSwgTlVMTCwgMCk7 Cj4gIAkJCWlmIChyZXQgPCAwKQo+ICAJCQkJcmV0dXJuIHJldDsKPiAgCQl9Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZW5jb2Rlci5jIGIvZHJpdmVycy9n cHUvZHJtL3JjYXItZHUvcmNhcl9kdV9lbmNvZGVyLmMKPiBpbmRleCAwZjAwYmRmZTIzNjYuLjI2 NjAzODQzYzMxOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1 X2VuY29kZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZW5jb2Rl ci5jCj4gQEAgLTEyMCw3ICsxMjAsNyBAQCBpbnQgcmNhcl9kdV9lbmNvZGVyX2luaXQoc3RydWN0 IHJjYXJfZHVfZGV2aWNlICpyY2R1LAo+ICAJICogQXR0YWNoIHRoZSBicmlkZ2UgdG8gdGhlIGVu Y29kZXIuIFRoZSBicmlkZ2Ugd2lsbCBjcmVhdGUgdGhlCj4gIAkgKiBjb25uZWN0b3IuCj4gIAkg Ki8KPiAtCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGJyaWRnZSwgTlVMTCk7Cj4g KwlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBicmlkZ2UsIE5VTEwsIDApOwo+ICAJ aWYgKHJldCkgewo+ICAJCWRybV9lbmNvZGVyX2NsZWFudXAoZW5jb2Rlcik7Cj4gIAkJcmV0dXJu IHJldDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9sdmRzLmMg Yi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2x2ZHMuYwo+IGluZGV4IDFjNjI1Nzg1OTBm NC4uN2U5NzY3MjNjOWIxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3Jj YXJfbHZkcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9sdmRzLmMKPiBA QCAtNjA1LDcgKzYwNSw4IEBAIHN0YXRpYyB2b2lkIHJjYXJfbHZkc19tb2RlX3NldChzdHJ1Y3Qg ZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICAJcmNhcl9sdmRzX2dldF9sdmRzX21vZGUobHZkcyk7Cj4g IH0KPiAgCj4gLXN0YXRpYyBpbnQgcmNhcl9sdmRzX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAq YnJpZGdlKQo+ICtzdGF0aWMgaW50IHJjYXJfbHZkc19hdHRhY2goc3RydWN0IGRybV9icmlkZ2Ug KmJyaWRnZSwKPiArCQkJICAgIGVudW0gZHJtX2JyaWRnZV9hdHRhY2hfZmxhZ3MgZmxhZ3MpCj4g IHsKPiAgCXN0cnVjdCByY2FyX2x2ZHMgKmx2ZHMgPSBicmlkZ2VfdG9fcmNhcl9sdmRzKGJyaWRn ZSk7Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmx2ZHMtPmNvbm5lY3Rv cjsKPiBAQCAtNjE1LDcgKzYxNiwxMCBAQCBzdGF0aWMgaW50IHJjYXJfbHZkc19hdHRhY2goc3Ry dWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiAgCS8qIElmIHdlIGhhdmUgYSBuZXh0IGJyaWRnZSBq dXN0IGF0dGFjaCBpdC4gKi8KPiAgCWlmIChsdmRzLT5uZXh0X2JyaWRnZSkKPiAgCQlyZXR1cm4g ZHJtX2JyaWRnZV9hdHRhY2goYnJpZGdlLT5lbmNvZGVyLCBsdmRzLT5uZXh0X2JyaWRnZSwKPiAt CQkJCQkgYnJpZGdlKTsKPiArCQkJCQkgYnJpZGdlLCBmbGFncyk7Cj4gKwo+ICsJaWYgKGZsYWdz ICYgRFJNX0JSSURHRV9BVFRBQ0hfTk9fQ09OTkVDVE9SKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ ICAKPiAgCS8qIE90aGVyd2lzZSBpZiB3ZSBoYXZlIGEgcGFuZWwsIGNyZWF0ZSBhIGNvbm5lY3Rv ci4gKi8KPiAgCWlmICghbHZkcy0+cGFuZWwpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9yb2NrY2hpcC9yb2NrY2hpcF9sdmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9j a2NoaXBfbHZkcy5jCj4gaW5kZXggNjRhZWZhODU2ODk2Li5hZGRmNTYyMDlmNDYgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2x2ZHMuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9sdmRzLmMKPiBAQCAtNDQwLDcgKzQ0MCw3 IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfbHZkc19iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3Ry dWN0IGRldmljZSAqbWFzdGVyLAo+ICAJCQlnb3RvIGVycl9mcmVlX2Nvbm5lY3RvcjsKPiAgCQl9 Cj4gIAl9IGVsc2Ugewo+IC0JCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGx2ZHMt PmJyaWRnZSwgTlVMTCk7Cj4gKwkJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgbHZk cy0+YnJpZGdlLCBOVUxMLCAwKTsKPiAgCQlpZiAocmV0KSB7Cj4gIAkJCURSTV9ERVZfRVJST1Io ZHJtX2Rldi0+ZGV2LAo+ICAJCQkJICAgICAgImZhaWxlZCB0byBhdHRhY2ggYnJpZGdlOiAlZFxu IiwgcmV0KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlw X3JnYi5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3JnYi5jCj4gaW5kZXgg ODllMGJiMGZlMGFiLi5mNTg2ZTA2ZjNkZjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3JvY2tjaGlwL3JvY2tjaGlwX3JnYi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L3JvY2tjaGlwX3JnYi5jCj4gQEAgLTE0Miw3ICsxNDIsNyBAQCBzdHJ1Y3Qgcm9ja2NoaXBfcmdi ICpyb2NrY2hpcF9yZ2JfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gIAo+ICAJcmdiLT5icmlk Z2UgPSBicmlkZ2U7Cj4gIAo+IC0JcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5jb2Rlciwgcmdi LT5icmlkZ2UsIE5VTEwpOwo+ICsJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5jb2Rlciwgcmdi LT5icmlkZ2UsIE5VTEwsIDApOwo+ICAJaWYgKHJldCkgewo+ICAJCURSTV9ERVZfRVJST1IoZHJt X2Rldi0+ZGV2LAo+ICAJCQkgICAgICAiZmFpbGVkIHRvIGF0dGFjaCBicmlkZ2U6ICVkXG4iLCBy ZXQpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9kdm8uYyBiL2RyaXZl cnMvZ3B1L2RybS9zdGkvc3RpX2R2by5jCj4gaW5kZXggZTU1ODcwMTkwYmY1Li4wYmFjYTYzNjhj MzYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZHZvLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9kdm8uYwo+IEBAIC00NjYsNyArNDY2LDcgQEAgc3RhdGlj IGludCBzdGlfZHZvX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0 ZXIsIHZvaWQgKmRhdGEpCj4gIAlicmlkZ2UtPm9mX25vZGUgPSBkdm8tPmRldi5vZl9ub2RlOwo+ ICAJZHJtX2JyaWRnZV9hZGQoYnJpZGdlKTsKPiAgCj4gLQllcnIgPSBkcm1fYnJpZGdlX2F0dGFj aChlbmNvZGVyLCBicmlkZ2UsIE5VTEwpOwo+ICsJZXJyID0gZHJtX2JyaWRnZV9hdHRhY2goZW5j b2RlciwgYnJpZGdlLCBOVUxMLCAwKTsKPiAgCWlmIChlcnIpIHsKPiAgCQlEUk1fRVJST1IoIkZh aWxlZCB0byBhdHRhY2ggYnJpZGdlXG4iKTsKPiAgCQlyZXR1cm4gZXJyOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9oZGEuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3Rp X2hkYS5jCj4gaW5kZXggOTRlNDA0ZjEzMjM0Li42YTNkOGI4MDA5NTAgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfaGRhLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vc3Rp L3N0aV9oZGEuYwo+IEBAIC03MDAsNyArNzAwLDcgQEAgc3RhdGljIGludCBzdGlfaGRhX2JpbmQo c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpCj4g IAo+ICAJYnJpZGdlLT5kcml2ZXJfcHJpdmF0ZSA9IGhkYTsKPiAgCWJyaWRnZS0+ZnVuY3MgPSAm c3RpX2hkYV9icmlkZ2VfZnVuY3M7Cj4gLQlkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBicmlk Z2UsIE5VTEwpOwo+ICsJZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgYnJpZGdlLCBOVUxMLCAw KTsKPiAgCj4gIAljb25uZWN0b3ItPmVuY29kZXIgPSBlbmNvZGVyOwo+ICAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL3N0aS9z dGlfaGRtaS5jCj4gaW5kZXggOTg2MmMzMjJmMGM0Li4yZDA4MGE2MDQwZDkgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfaGRtaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3N0aS9zdGlfaGRtaS5jCj4gQEAgLTEyNzksNyArMTI3OSw3IEBAIHN0YXRpYyBpbnQgc3RpX2hk bWlfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAq ZGF0YSkKPiAgCj4gIAlicmlkZ2UtPmRyaXZlcl9wcml2YXRlID0gaGRtaTsKPiAgCWJyaWRnZS0+ ZnVuY3MgPSAmc3RpX2hkbWlfYnJpZGdlX2Z1bmNzOwo+IC0JZHJtX2JyaWRnZV9hdHRhY2goZW5j b2RlciwgYnJpZGdlLCBOVUxMKTsKPiArCWRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGJyaWRn ZSwgTlVMTCwgMCk7Cj4gIAo+ICAJY29ubmVjdG9yLT5lbmNvZGVyID0gZW5jb2RlcjsKPiAgCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zdG0vbHRkYy5jIGIvZHJpdmVycy9ncHUvZHJt L3N0bS9sdGRjLmMKPiBpbmRleCAzYWI0ZmJmOGViMGQuLjE4NTYxZDk3N2Q4NCAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RtL2x0ZGMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9z dG0vbHRkYy5jCj4gQEAgLTEwNTUsNyArMTA1NSw3IEBAIHN0YXRpYyBpbnQgbHRkY19lbmNvZGVy X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRkZXYsIHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2Up Cj4gIAlkcm1fZW5jb2Rlcl9pbml0KGRkZXYsIGVuY29kZXIsICZsdGRjX2VuY29kZXJfZnVuY3Ms Cj4gIAkJCSBEUk1fTU9ERV9FTkNPREVSX0RQSSwgTlVMTCk7Cj4gIAo+IC0JcmV0ID0gZHJtX2Jy aWRnZV9hdHRhY2goZW5jb2RlciwgYnJpZGdlLCBOVUxMKTsKPiArCXJldCA9IGRybV9icmlkZ2Vf YXR0YWNoKGVuY29kZXIsIGJyaWRnZSwgTlVMTCwgMCk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJZHJt X2VuY29kZXJfY2xlYW51cChlbmNvZGVyKTsKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2x2ZHMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9zdW40aS9zdW40aV9sdmRzLmMKPiBpbmRleCA3ZmJmNDI1YWNiNTUuLjY5MzE2M2M3MGVlZSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfbHZkcy5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2x2ZHMuYwo+IEBAIC0xNTUsNyArMTU1LDcgQEAg aW50IHN1bjRpX2x2ZHNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBzdHJ1Y3Qgc3VuNGlf dGNvbiAqdGNvbikKPiAgCX0KPiAgCj4gIAlpZiAoYnJpZGdlKSB7Cj4gLQkJcmV0ID0gZHJtX2Jy aWRnZV9hdHRhY2goZW5jb2RlciwgYnJpZGdlLCBOVUxMKTsKPiArCQlyZXQgPSBkcm1fYnJpZGdl X2F0dGFjaChlbmNvZGVyLCBicmlkZ2UsIE5VTEwsIDApOwo+ICAJCWlmIChyZXQpIHsKPiAgCQkJ ZGV2X2Vycihkcm0tPmRldiwgIkNvdWxkbid0IGF0dGFjaCBvdXIgYnJpZGdlXG4iKTsKPiAgCQkJ Z290byBlcnJfY2xlYW51cF9jb25uZWN0b3I7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9zdW40aS9zdW40aV9yZ2IuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9yZ2IuYwo+ IGluZGV4IGFhYzU2OTgzZjIwOC4uMjI0NjNmNTMwMmM0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9zdW40aS9zdW40aV9yZ2IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9z dW40aV9yZ2IuYwo+IEBAIC0yNTIsNyArMjUyLDcgQEAgaW50IHN1bjRpX3JnYl9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkcm0sIHN0cnVjdCBzdW40aV90Y29uICp0Y29uKQo+ICAJfQo+ICAKPiAg CWlmIChyZ2ItPmJyaWRnZSkgewo+IC0JCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIs IHJnYi0+YnJpZGdlLCBOVUxMKTsKPiArCQlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVy LCByZ2ItPmJyaWRnZSwgTlVMTCwgMCk7Cj4gIAkJaWYgKHJldCkgewo+ICAJCQlkZXZfZXJyKGRy bS0+ZGV2LCAiQ291bGRuJ3QgYXR0YWNoIG91ciBicmlkZ2VcbiIpOwo+ICAJCQlnb3RvIGVycl9j bGVhbnVwX2Nvbm5lY3RvcjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90 aWxjZGNfZXh0ZXJuYWwuYyBiL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2V4dGVybmFs LmMKPiBpbmRleCA0M2Q3NTZiNzgxMGUuLjFlZDc2NWNlOTM0OSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19leHRlcm5hbC5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL3RpbGNkYy90aWxjZGNfZXh0ZXJuYWwuYwo+IEBAIC05NCw3ICs5NCw3IEBAIGludCB0aWxj ZGNfYXR0YWNoX2JyaWRnZShzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiwgc3RydWN0IGRybV9icmlk Z2UgKmJyaWRnZSkKPiAgCj4gIAlwcml2LT5leHRlcm5hbF9lbmNvZGVyLT5wb3NzaWJsZV9jcnRj cyA9IEJJVCgwKTsKPiAgCj4gLQlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChwcml2LT5leHRlcm5h bF9lbmNvZGVyLCBicmlkZ2UsIE5VTEwpOwo+ICsJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2gocHJp di0+ZXh0ZXJuYWxfZW5jb2RlciwgYnJpZGdlLCBOVUxMLCAwKTsKPiAgCWlmIChyZXQpIHsKPiAg CQlkZXZfZXJyKGRkZXYtPmRldiwgImRybV9icmlkZ2VfYXR0YWNoKCkgZmFpbGVkICVkXG4iLCBy ZXQpOwo+ICAJCXJldHVybiByZXQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQv dmM0X2RwaS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHBpLmMKPiBpbmRleCA4YTI3YTZh Y2VlNjEuLjU5NjYyZDczNTQzMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3Zj NF9kcGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RwaS5jCj4gQEAgLTI1MSw3 ICsyNTEsNyBAQCBzdGF0aWMgaW50IHZjNF9kcGlfaW5pdF9icmlkZ2Uoc3RydWN0IHZjNF9kcGkg KmRwaSkKPiAgCWlmIChwYW5lbCkKPiAgCQlicmlkZ2UgPSBkcm1fcGFuZWxfYnJpZGdlX2FkZChw YW5lbCwgRFJNX01PREVfQ09OTkVDVE9SX0RQSSk7Cj4gIAo+IC0JcmV0dXJuIGRybV9icmlkZ2Vf YXR0YWNoKGRwaS0+ZW5jb2RlciwgYnJpZGdlLCBOVUxMKTsKPiArCXJldHVybiBkcm1fYnJpZGdl X2F0dGFjaChkcGktPmVuY29kZXIsIGJyaWRnZSwgTlVMTCwgMCk7Cj4gIH0KPiAgCj4gIHN0YXRp YyBpbnQgdmM0X2RwaV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFz dGVyLCB2b2lkICpkYXRhKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9k c2kuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RzaS5jCj4gaW5kZXggYzc4ZmE4MTQ0Nzc2 Li5mNWQ1YjY4Mzc4MzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHNp LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kc2kuYwo+IEBAIC0xNTk5LDcgKzE1 OTksNyBAQCBzdGF0aWMgaW50IHZjNF9kc2lfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVj dCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKPiAgCQkJIERSTV9NT0RFX0VOQ09ERVJfRFNJ LCBOVUxMKTsKPiAgCWRybV9lbmNvZGVyX2hlbHBlcl9hZGQoZHNpLT5lbmNvZGVyLCAmdmM0X2Rz aV9lbmNvZGVyX2hlbHBlcl9mdW5jcyk7Cj4gIAo+IC0JcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2go ZHNpLT5lbmNvZGVyLCBkc2ktPmJyaWRnZSwgTlVMTCk7Cj4gKwlyZXQgPSBkcm1fYnJpZGdlX2F0 dGFjaChkc2ktPmVuY29kZXIsIGRzaS0+YnJpZGdlLCBOVUxMLCAwKTsKPiAgCWlmIChyZXQpIHsK PiAgCQlkZXZfZXJyKGRldiwgImJyaWRnZSBhdHRhY2ggZmFpbGVkOiAlZFxuIiwgcmV0KTsKPiAg CQlyZXR1cm4gcmV0Owo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fYnJpZGdlLmggYi9p bmNsdWRlL2RybS9kcm1fYnJpZGdlLmgKPiBpbmRleCA3ZGI2Y2EwZmQ3NWQuLjkyOGQwNDZhZDk5 ZCAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fYnJpZGdlLmgKPiArKysgYi9pbmNsdWRl L2RybS9kcm1fYnJpZGdlLmgKPiBAQCAtMzQsNiArMzQsMTcgQEAgc3RydWN0IGRybV9icmlkZ2Vf dGltaW5nczsKPiAgc3RydWN0IGRybV9wYW5lbDsKPiAgc3RydWN0IGkyY19hZGFwdGVyOwo+ICAK PiArLyoqCj4gKyAqIGVudW0gZHJtX2JyaWRnZV9hdHRhY2hfZmxhZ3MgLSBGbGFncyBmb3IgJmRy bV9icmlkZ2VfZnVuY3MuYXR0YWNoCj4gKyAqLwo+ICtlbnVtIGRybV9icmlkZ2VfYXR0YWNoX2Zs YWdzIHsKPiArCS8qKgo+ICsJICogQERSTV9CUklER0VfQVRUQUNIX05PX0NPTk5FQ1RPUjogV2hl biB0aGlzIGZsYWcgaXMgc2V0IHRoZSBicmlkZ2UKPiArCSAqIHNoYWxsIG5vdCBjcmVhdGUgYSBk cm1fY29ubmVjdG9yLgo+ICsJICovCj4gKwlEUk1fQlJJREdFX0FUVEFDSF9OT19DT05ORUNUT1Ig PSBCSVQoMCksCj4gK307Cj4gKwo+ICAvKioKPiAgICogc3RydWN0IGRybV9icmlkZ2VfZnVuY3Mg LSBkcm1fYnJpZGdlIGNvbnRyb2wgZnVuY3Rpb25zCj4gICAqLwo+IEBAIC00Miw3ICs1Myw4IEBA IHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzIHsKPiAgCSAqIEBhdHRhY2g6Cj4gIAkgKgo+ICAJICog VGhpcyBjYWxsYmFjayBpcyBpbnZva2VkIHdoZW5ldmVyIG91ciBicmlkZ2UgaXMgYmVpbmcgYXR0 YWNoZWQgdG8gYQo+IC0JICogJmRybV9lbmNvZGVyLgo+ICsJICogJmRybV9lbmNvZGVyLiBUaGUg ZmxhZ3MgYXJndW1lbnQgdHVuZXMgdGhlIGJlaGF2aW91ciBvZiB0aGUgYXR0YWNoCj4gKwkgKiBv cGVyYXRpb24gKHNlZSBEUk1fQlJJREdFX0FUVEFDSF8qKS4KPiAgCSAqCj4gIAkgKiBUaGUgYXR0 YWNoIGNhbGxiYWNrIGlzIG9wdGlvbmFsLgo+ICAJICoKPiBAQCAtNTAsNyArNjIsOCBAQCBzdHJ1 Y3QgZHJtX2JyaWRnZV9mdW5jcyB7Cj4gIAkgKgo+ICAJICogWmVybyBvbiBzdWNjZXNzLCBlcnJv ciBjb2RlIG9uIGZhaWx1cmUuCj4gIAkgKi8KPiAtCWludCAoKmF0dGFjaCkoc3RydWN0IGRybV9i cmlkZ2UgKmJyaWRnZSk7Cj4gKwlpbnQgKCphdHRhY2gpKHN0cnVjdCBkcm1fYnJpZGdlICpicmlk Z2UsCj4gKwkJICAgICAgZW51bSBkcm1fYnJpZGdlX2F0dGFjaF9mbGFncyBmbGFncyk7Cj4gIAo+ ICAJLyoqCj4gIAkgKiBAZGV0YWNoOgo+IEBAIC01NzEsNyArNTg0LDggQEAgdm9pZCBkcm1fYnJp ZGdlX2FkZChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPiAgdm9pZCBkcm1fYnJpZGdlX3Jl bW92ZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPiAgc3RydWN0IGRybV9icmlkZ2UgKm9m X2RybV9maW5kX2JyaWRnZShzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKTsKPiAgaW50IGRybV9icmlk Z2VfYXR0YWNoKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlciwgc3RydWN0IGRybV9icmlkZ2Ug KmJyaWRnZSwKPiAtCQkgICAgICBzdHJ1Y3QgZHJtX2JyaWRnZSAqcHJldmlvdXMpOwo+ICsJCSAg ICAgIHN0cnVjdCBkcm1fYnJpZGdlICpwcmV2aW91cywKPiArCQkgICAgICBlbnVtIGRybV9icmlk Z2VfYXR0YWNoX2ZsYWdzIGZsYWdzKTsKPiAgCj4gIGJvb2wgZHJtX2JyaWRnZV9tb2RlX2ZpeHVw KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gIAkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlLAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVs