From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 05/15] drm: drop _mode_ from update_edit_property() Date: Fri, 13 Jul 2018 18:05:55 +0200 Message-ID: <20180713160555.GD3008@phenom.ffwll.local> References: <20180709084016.23750-1-daniel.vetter@ffwll.ch> <20180709084016.23750-6-daniel.vetter@ffwll.ch> <20180713145906.GD20303@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x544.google.com (mail-ed1-x544.google.com [IPv6:2a00:1450:4864:20::544]) by gabe.freedesktop.org (Postfix) with ESMTPS id 80D8E6F2E3 for ; Fri, 13 Jul 2018 16:06:00 +0000 (UTC) Received: by mail-ed1-x544.google.com with SMTP id u11-v6so24970349eds.10 for ; Fri, 13 Jul 2018 09:06:00 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180713145906.GD20303@art_vandelay> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Sean Paul Cc: Daniel Vetter , DRI Development , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBKdWwgMTMsIDIwMTggYXQgMTA6NTk6MDZBTSAtMDQwMCwgU2VhbiBQYXVsIHdyb3Rl Ogo+IE9uIE1vbiwgSnVsIDA5LCAyMDE4IGF0IDEwOjQwOjA2QU0gKzAyMDAsIERhbmllbCBWZXR0 ZXIgd3JvdGU6Cj4gPiBKdXN0IG1ha2VzIGl0IGxvbmdlciwgYW5kIGZvciBtb3N0IHRoaW5ncyBp biBkcm1fY29ubmVjdG9yLltoY10gd2UKPiA+IGp1c3QgdXNlIHRoZSBkcm1fY29ubmVjdG9yXyBw cmVmaXguIERvbmUgd2l0aCBzZWQgKyBhIGJpdCBvZiBtYW51YWwKPiA+IGZpeHVwIGZvciB0aGUg aW5kZW50aW5nLgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwu dmV0dGVyQGludGVsLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9jb25uZWN0b3JzLmMgICAgICAgICAgICB8IDQgKystLQo+ID4gIGRyaXZlcnMvZ3B1 L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMgICAgICAgICB8IDQgKystLQo+ ID4gIC4uLi9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fbXN0X3R5cGVz LmMgICB8IDQgKystLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuYyAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDQgKystLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2Uv YWR2NzUxMS9hZHY3NTExX2Rydi5jICAgICAgICAgICAgICB8IDIgKy0KPiA+ICBkcml2ZXJzL2dw dS9kcm0vYnJpZGdlL2FuYWxvZ2l4LWFueDc4eHguYyAgICAgICAgICAgICAgICAgfCA0ICsrLS0K PiA+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuYyAg ICAgICAgfCA0ICsrLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2R1bWItdmdhLWRhYy5j ICAgICAgICAgICAgICAgICAgICAgfCAyICstCj4gPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9t ZWdhY2hpcHMtc3RkcHh4eHgtZ2UtYjg1MHYzLWZ3LmMgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1 L2RybS9icmlkZ2UvbnhwLXB0bjM0NjAuYyAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KPiA+ ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpaTkwMnguYyAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAyICstCj4gPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMg ICAgICAgICAgICAgICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3 NjcuYyAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0v YnJpZGdlL3RpLXRmcDQxMC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCj4gPiAgZHJp dmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg OCArKysrLS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZGVidWdmcy5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IDQgKystLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVf aGVscGVyLmMgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KPiA+ICBkcml2ZXJzL2dwdS9k cm0vZXh5bm9zL2V4eW5vc19kcm1fdmlkaS5jICAgICAgICAgICAgICAgICAgfCAyICstCj4gPiAg ZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfaGRtaS5jICAgICAgICAgICAgICAgICAgICAg IHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9nbWE1MDAvY2R2X2ludGVsX2RwLmMgICAgICAg ICAgICAgICAgICAgICB8IDIgKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2Nkdl9pbnRl bF9oZG1pLmMgICAgICAgICAgICAgICAgICAgfCAyICstCj4gPiAgZHJpdmVycy9ncHUvZHJtL2dt YTUwMC9vYWt0cmFpbF9oZG1pLmMgICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4gIGRyaXZl cnMvZ3B1L2RybS9nbWE1MDAvb2FrdHJhaWxfbHZkcy5jICAgICAgICAgICAgICAgICAgICB8IDIg Ky0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vZ21hNTAwL3BzYl9pbnRlbF9tb2Rlcy5jICAgICAgICAg ICAgICAgICAgfCAyICstCj4gPiAgZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9wc2JfaW50ZWxfc2R2 by5jICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pMmMvdGRh OTk4eF9kcnYuYyAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KPiA+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCj4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21vZGVzLmMgICAgICAg ICAgICAgICAgICAgICAgICB8IDIgKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9z ZHZvLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCj4gPiAgZHJpdmVycy9ncHUvZHJt L2lteC9pbXgtbGRiLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4gIGRy aXZlcnMvZ3B1L2RybS9pbXgvaW14LXR2ZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDIgKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVsLWRpc3BsYXkuYyAgICAgICAg ICAgICAgICAgICAgfCAyICstCj4gPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19oZG1p LmMgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tZ2Fn MjAwL21nYWcyMDBfbW9kZS5jICAgICAgICAgICAgICAgICAgICB8IDIgKy0KPiA+ICBkcml2ZXJz L2dwdS9kcm0vbXNtL2VkcC9lZHBfY29ubmVjdG9yLmMgICAgICAgICAgICAgICAgICAgfCAyICst Cj4gPiAgZHJpdmVycy9ncHUvZHJtL21zbS9oZG1pL2hkbWlfY29ubmVjdG9yLmMgICAgICAgICAg ICAgICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2Rpc3Au YyAgICAgICAgICAgICAgICAgICB8IDIgKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9u b3V2ZWF1X2Nvbm5lY3Rvci5jICAgICAgICAgICAgICAgfCA4ICsrKystLS0tCj4gPiAgZHJpdmVy cy9ncHUvZHJtL29tYXBkcm0vb21hcF9jb25uZWN0b3IuYyAgICAgICAgICAgICAgICAgIHwgNCAr Ky0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpbXBsZS5jICAgICAgICAgICAg ICAgICAgICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Nvbm5l Y3RvcnMuYyAgICAgICAgICAgICAgICB8IDQgKystLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX2RwX21zdC5jICAgICAgICAgICAgICAgICAgICB8IDQgKystLQo+ID4gIGRyaXZl cnMvZ3B1L2RybS9yb2NrY2hpcC9jZG4tZHAtY29yZS5jICAgICAgICAgICAgICAgICAgICB8IDIg Ky0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvaW5ub19oZG1pLmMgICAgICAgICAgICAg ICAgICAgICAgfCAyICstCj4gPiAgZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfaGRtaS5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9zdW40aS9z dW40aV9oZG1pX2VuYy5jICAgICAgICAgICAgICAgICAgICB8IDIgKy0KPiA+ICBkcml2ZXJzL2dw dS9kcm0vdGVncmEvb3V0cHV0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCj4g PiAgZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfdGZwNDEwLmMgICAgICAgICAgICAgICAg ICAgIHwgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2Nvbm5lY3Rvci5jICAgICAg ICAgICAgICAgICAgICAgICB8IDIgKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9oZG1p LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCj4gPiAgZHJpdmVycy9ncHUvZHJt L3p0ZS96eF9oZG1pLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4gIGRy aXZlcnMvZ3B1L2RybS96dGUvenhfdmdhLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDIgKy0KPiA+ICBkcml2ZXJzL3N0YWdpbmcvdmJveHZpZGVvL3Zib3hfbW9kZS5jICAgICAgICAg ICAgICAgICAgICAgfCAyICstCj4gCj4gSXMgdGhpcyBhbnkgY2xvc2VyIHRvIGdyYWR1YXRpbmcg ZnJvbSBzdGFnaW5nPyBGcm9tIGEgZ2xhbmNlIGF0IHRoZSBoaXN0b3J5LCBpdAo+IGRvZXNuJ3Qg c2VlbSBsaWtlIGl0J3MgbW92ZWQgY2xvc2VyIGluIGEgdmVyeSBsb25nIHRpbWUuCgpJIGZlYXIg LXN0YWdpbmcncyBpZGVhIG9mICJsb25nIHRpbWUiIGFuZCBvdXIgaWRlYSBvZiAibG9uZyB0aW1l IiBkbyBub3QKbWF0Y2ggOi0pCgpCdXQgeWVhaCBJJ20gYWxzbyBub3Qgc2VlaW5nIGhvdyBwdXR0 aW5nIGEgZHJtIGRyaXZlciBpbnRvIHN0YWdpbmcgaXMKaGVscGluZyBpdCBnZXR0aW5nIG1lcmdl ZCBwcm9wZXJseS4gVGhlIGRyaXZlcnMgZmxvYXRpbmcgb24gZHJpLWRldmVsIGltbwpnZXQgYSBs b3QgbW9yZSBhdHRlbnRpb24gdGhhbiBhbnl0aGluZyBzdHVjayBpbiBzdGFnaW5nIGdoZXR0by4K LURhbmllbAoKPiAKPiBBbnl3YXlzLCAKPiAKPiBSZXZpZXdlZC1ieTogU2VhbiBQYXVsIDxzZWFu cGF1bEBjaHJvbWl1bS5vcmc+Cj4gCj4gCj4gPiAgaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5o ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNiArKystLS0KPiA+ICBpbmNsdWRlL2Ry bS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxlcy5oICAgICAgICAgICAgICAgICAgfCAyICstCj4g PiAgNTYgZmlsZXMgY2hhbmdlZCwgNzQgaW5zZXJ0aW9ucygrKSwgNzQgZGVsZXRpb25zKC0pCj4g PiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY29u bmVjdG9ycy5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Nvbm5lY3RvcnMu Ywo+ID4gaW5kZXggODgxZjdjYjdhZTZlLi5jNzcwZDczMzUyYTcgMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY29ubmVjdG9ycy5jCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY29ubmVjdG9ycy5jCj4gPiBAQCAtMzM0 LDExICszMzQsMTEgQEAgc3RhdGljIGludCBhbWRncHVfY29ubmVjdG9yX2RkY19nZXRfbW9kZXMo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+ICAJaW50IHJldDsKPiA+ICAKPiA+ ICAJaWYgKGFtZGdwdV9jb25uZWN0b3ItPmVkaWQpIHsKPiA+IC0JCWRybV9tb2RlX2Nvbm5lY3Rv cl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGFtZGdwdV9jb25uZWN0b3ItPmVkaWQp Owo+ID4gKwkJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGFt ZGdwdV9jb25uZWN0b3ItPmVkaWQpOwo+ID4gIAkJcmV0ID0gZHJtX2FkZF9lZGlkX21vZGVzKGNv bm5lY3RvciwgYW1kZ3B1X2Nvbm5lY3Rvci0+ZWRpZCk7Cj4gPiAgCQlyZXR1cm4gcmV0Owo+ID4g IAl9Cj4gPiAtCWRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0 b3IsIE5VTEwpOwo+ID4gKwlkcm1fY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5l Y3RvciwgTlVMTCk7Cj4gPiAgCXJldHVybiAwOwo+ID4gIH0KPiA+ICAKPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYwo+ID4gaW5kZXgg ZjBmYzMwNjdhYjVkLi5iOTNmYTRiMzg0MWYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jCj4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jCj4gPiBAQCAtOTAwLDE0ICs5 MDAsMTQgQEAgYW1kZ3B1X2RtX3VwZGF0ZV9jb25uZWN0b3JfYWZ0ZXJfZGV0ZWN0KHN0cnVjdCBh bWRncHVfZG1fY29ubmVjdG9yICphY29ubmVjdG9yKQo+ID4gIAkJCQkoc3RydWN0IGVkaWQgKikg c2luay0+ZGNfZWRpZC5yYXdfZWRpZDsKPiA+ICAKPiA+ICAKPiA+IC0JCQlkcm1fbW9kZV9jb25u ZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLAo+ID4gKwkJCWRybV9jb25uZWN0 b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLAo+ID4gIAkJCQkJYWNvbm5lY3Rvci0+ ZWRpZCk7Cj4gPiAgCQl9Cj4gPiAgCQlhbWRncHVfZG1fYWRkX3NpbmtfdG9fZnJlZXN5bmNfbW9k dWxlKGNvbm5lY3RvciwgYWNvbm5lY3Rvci0+ZWRpZCk7Cj4gPiAgCj4gPiAgCX0gZWxzZSB7Cj4g PiAgCQlhbWRncHVfZG1fcmVtb3ZlX3NpbmtfZnJvbV9mcmVlc3luY19tb2R1bGUoY29ubmVjdG9y KTsKPiA+IC0JCWRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0 b3IsIE5VTEwpOwo+ID4gKwkJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25u ZWN0b3IsIE5VTEwpOwo+ID4gIAkJYWNvbm5lY3Rvci0+bnVtX21vZGVzID0gMDsKPiA+ICAJCWFj b25uZWN0b3ItPmRjX3NpbmsgPSBOVUxMOwo+ID4gIAkJYWNvbm5lY3Rvci0+ZWRpZCA9IE5VTEw7 Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9h bWRncHVfZG1fbXN0X3R5cGVzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1 X2RtL2FtZGdwdV9kbV9tc3RfdHlwZXMuYwo+ID4gaW5kZXggNDMwNGQ5ZTQwOGI4Li41ODFiYjc1 ZDA4ZWIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1 X2RtL2FtZGdwdV9kbV9tc3RfdHlwZXMuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG1fbXN0X3R5cGVzLmMKPiA+IEBAIC0yMzMsNyArMjMz LDcgQEAgc3RhdGljIGludCBkbV9kcF9tc3RfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IpCj4gPiAgCQllZGlkID0gZHJtX2RwX21zdF9nZXRfZWRpZChjb25uZWN0b3Is ICZhY29ubmVjdG9yLT5tc3RfcG9ydC0+bXN0X21nciwgYWNvbm5lY3Rvci0+cG9ydCk7Cj4gPiAg Cj4gPiAgCQlpZiAoIWVkaWQpIHsKPiA+IC0JCQlkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2Vk aWRfcHJvcGVydHkoCj4gPiArCQkJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eSgK PiA+ICAJCQkJJmFjb25uZWN0b3ItPmJhc2UsCj4gPiAgCQkJCU5VTEwpOwo+ID4gIAkJCXJldHVy biByZXQ7Cj4gPiBAQCAtMjYxLDcgKzI2MSw3IEBAIHN0YXRpYyBpbnQgZG1fZHBfbXN0X2dldF9t b2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gIAkJCQkJY29ubmVjdG9y LCBhY29ubmVjdG9yLT5lZGlkKTsKPiA+ICAJfQo+ID4gIAo+ID4gLQlkcm1fbW9kZV9jb25uZWN0 b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoCj4gPiArCWRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRf cHJvcGVydHkoCj4gPiAgCQkJCQkmYWNvbm5lY3Rvci0+YmFzZSwgYWNvbm5lY3Rvci0+ZWRpZCk7 Cj4gPiAgCj4gPiAgCXJldCA9IGRybV9hZGRfZWRpZF9tb2Rlcyhjb25uZWN0b3IsIGFjb25uZWN0 b3ItPmVkaWQpOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUu YyBiL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuYwo+ID4gaW5kZXggMDM2ZGZmOGExZjMz Li4xYmI4MTc0YWQxNTUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF9t b2RlLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuYwo+ID4gQEAgLTc5 MCwxMiArNzkwLDEyIEBAIHN0YXRpYyBpbnQgYXN0X2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQo+ID4gIAlpZiAoIWZsYWdzKQo+ID4gIAkJZWRpZCA9IGRybV9nZXRf ZWRpZChjb25uZWN0b3IsICZhc3RfY29ubmVjdG9yLT5pMmMtPmFkYXB0ZXIpOwo+ID4gIAlpZiAo ZWRpZCkgewo+ID4gLQkJZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KCZh c3RfY29ubmVjdG9yLT5iYXNlLCBlZGlkKTsKPiA+ICsJCWRybV9jb25uZWN0b3JfdXBkYXRlX2Vk aWRfcHJvcGVydHkoJmFzdF9jb25uZWN0b3ItPmJhc2UsIGVkaWQpOwo+ID4gIAkJcmV0ID0gZHJt X2FkZF9lZGlkX21vZGVzKGNvbm5lY3RvciwgZWRpZCk7Cj4gPiAgCQlrZnJlZShlZGlkKTsKPiA+ ICAJCXJldHVybiByZXQ7Cj4gPiAgCX0gZWxzZQo+ID4gLQkJZHJtX21vZGVfY29ubmVjdG9yX3Vw ZGF0ZV9lZGlkX3Byb3BlcnR5KCZhc3RfY29ubmVjdG9yLT5iYXNlLCBOVUxMKTsKPiA+ICsJCWRy bV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoJmFzdF9jb25uZWN0b3ItPmJhc2UsIE5V TEwpOwo+ID4gIAlyZXR1cm4gMDsKPiA+ICB9Cj4gPiAgCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MTFfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL2Fkdjc1MTEvYWR2NzUxMV9kcnYuYwo+ID4gaW5kZXggNzMwMjFiMzg4ZTEyLi4xZjQ3 NDU5NTNhY2EgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEv YWR2NzUxMV9kcnYuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fk djc1MTFfZHJ2LmMKPiA+IEBAIC02MDEsNyArNjAxLDcgQEAgc3RhdGljIGludCBhZHY3NTExX2dl dF9tb2RlcyhzdHJ1Y3QgYWR2NzUxMSAqYWR2NzUxMSwKPiA+ICAJCV9fYWR2NzUxMV9wb3dlcl9v ZmYoYWR2NzUxMSk7Cj4gPiAgCj4gPiAgCj4gPiAtCWRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVf ZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGVkaWQpOwo+ID4gKwlkcm1fY29ubmVjdG9yX3VwZGF0 ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwgZWRpZCk7Cj4gPiAgCWNvdW50ID0gZHJtX2FkZF9l ZGlkX21vZGVzKGNvbm5lY3RvciwgZWRpZCk7Cj4gPiAgCj4gPiAgCWFkdjc1MTFfc2V0X2NvbmZp Z19jc2MoYWR2NzUxMSwgY29ubmVjdG9yLCBhZHY3NTExLT5yZ2IsCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC1hbng3OHh4LmMgYi9kcml2ZXJzL2dwdS9k cm0vYnJpZGdlL2FuYWxvZ2l4LWFueDc4eHguYwo+ID4gaW5kZXggYjQ5MDQzODY2YmU2Li4zN2Y5 NDdkY2FkZWMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4 LWFueDc4eHguYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC1hbng3 OHh4LmMKPiA+IEBAIC05NjksOCArOTY5LDggQEAgc3RhdGljIGludCBhbng3OHh4X2dldF9tb2Rl cyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gIAkJZ290byB1bmxvY2s7Cj4g PiAgCX0KPiA+ICAKPiA+IC0JZXJyID0gZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3By b3BlcnR5KGNvbm5lY3RvciwKPiA+IC0JCQkJCQkgICAgICBhbng3OHh4LT5lZGlkKTsKPiA+ICsJ ZXJyID0gZHJtX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsCj4gPiAr CQkJCQkJIGFueDc4eHgtPmVkaWQpOwo+ID4gIAlpZiAoZXJyKSB7Cj4gPiAgCQlEUk1fRVJST1Io IkZhaWxlZCB0byB1cGRhdGUgRURJRCBwcm9wZXJ0eTogJWRcbiIsIGVycik7Cj4gPiAgCQlnb3Rv IHVubG9jazsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4 L2FuYWxvZ2l4X2RwX2NvcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5h bG9naXhfZHBfY29yZS5jCj4gPiBpbmRleCAyYmNiZmFkYjZhYzUuLjI4OGMwMTVmNzQ2MCAxMDA2 NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBf Y29yZS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4 X2RwX2NvcmUuYwo+ID4gQEAgLTExMTksOCArMTExOSw4IEBAIHN0YXRpYyBpbnQgYW5hbG9naXhf ZHBfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiAgCQllZGlk ID0gZHJtX2dldF9lZGlkKGNvbm5lY3RvciwgJmRwLT5hdXguZGRjKTsKPiA+ICAJCXBtX3J1bnRp bWVfcHV0KGRwLT5kZXYpOwo+ID4gIAkJaWYgKGVkaWQpIHsKPiA+IC0JCQlkcm1fbW9kZV9jb25u ZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoJmRwLT5jb25uZWN0b3IsCj4gPiAtCQkJCQkJCQll ZGlkKTsKPiA+ICsJCQlkcm1fY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KCZkcC0+Y29u bmVjdG9yLAo+ID4gKwkJCQkJCQkgICBlZGlkKTsKPiA+ICAJCQludW1fbW9kZXMgKz0gZHJtX2Fk ZF9lZGlkX21vZGVzKCZkcC0+Y29ubmVjdG9yLCBlZGlkKTsKPiA+ICAJCQlrZnJlZShlZGlkKTsK PiA+ICAJCX0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2R1bWItdmdh LWRhYy5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9kdW1iLXZnYS1kYWMuYwo+ID4gaW5kZXgg OTgzN2M4ZDY5ZTY5Li5kYTk5YjhiYTRlZTEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vYnJpZGdlL2R1bWItdmdhLWRhYy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdl L2R1bWItdmdhLWRhYy5jCj4gPiBAQCAtNTUsNyArNTUsNyBAQCBzdGF0aWMgaW50IGR1bWJfdmdh X2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gIAkJZ290byBm YWxsYmFjazsKPiA+ICAJfQo+ID4gIAo+ID4gLQlkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2Vk aWRfcHJvcGVydHkoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICsJZHJtX2Nvbm5lY3Rvcl91cGRhdGVf ZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGVkaWQpOwo+ID4gIAlyZXQgPSBkcm1fYWRkX2VkaWRf bW9kZXMoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICAJa2ZyZWUoZWRpZCk7Cj4gPiAgCXJldHVybiBy ZXQ7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9tZWdhY2hpcHMtc3Rk cHh4eHgtZ2UtYjg1MHYzLWZ3LmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL21lZ2FjaGlwcy1z dGRweHh4eC1nZS1iODUwdjMtZncuYwo+ID4gaW5kZXggN2NjYWRiYTdjOThjLi5iNDliNTQzYmQx ZjYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL21lZ2FjaGlwcy1zdGRw eHh4eC1nZS1iODUwdjMtZncuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9tZWdh Y2hpcHMtc3RkcHh4eHgtZ2UtYjg1MHYzLWZ3LmMKPiA+IEBAIC0xNTIsNyArMTUyLDcgQEAgc3Rh dGljIGludCBnZV9iODUwdjNfbHZkc19nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvcikKPiA+ICAJZ2VfYjg1MHYzX2x2ZHNfcHRyLT5lZGlkID0gKHN0cnVjdCBlZGlkICop c3RkcDI2OTBfZ2V0X2VkaWQoY2xpZW50KTsKPiA+ICAKPiA+ICAJaWYgKGdlX2I4NTB2M19sdmRz X3B0ci0+ZWRpZCkgewo+ID4gLQkJZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3Bl cnR5KGNvbm5lY3RvciwKPiA+ICsJCWRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHko Y29ubmVjdG9yLAo+ID4gIAkJCQkJCSAgICAgIGdlX2I4NTB2M19sdmRzX3B0ci0+ZWRpZCk7Cj4g PiAgCQludW1fbW9kZXMgPSBkcm1fYWRkX2VkaWRfbW9kZXMoY29ubmVjdG9yLAo+ID4gIAkJCQkJ ICAgICAgIGdlX2I4NTB2M19sdmRzX3B0ci0+ZWRpZCk7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9ueHAtcHRuMzQ2MC5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9u eHAtcHRuMzQ2MC5jCj4gPiBpbmRleCBkNjRhMzI4MzgyMmEuLmJkNWMxOTE4NThjYiAxMDA2NDQK PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvbnhwLXB0bjM0NjAuYwo+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9ueHAtcHRuMzQ2MC5jCj4gPiBAQCAtMjIyLDcgKzIyMiw3 IEBAIHN0YXRpYyBpbnQgcHRuMzQ2MF9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvcikKPiA+ICAJfQo+ID4gIAo+ID4gIAlwdG5fYnJpZGdlLT5lZGlkID0gKHN0cnVjdCBl ZGlkICopZWRpZDsKPiA+IC0JZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5 KGNvbm5lY3RvciwgcHRuX2JyaWRnZS0+ZWRpZCk7Cj4gPiArCWRybV9jb25uZWN0b3JfdXBkYXRl X2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLCBwdG5fYnJpZGdlLT5lZGlkKTsKPiA+ICAKPiA+ICAJ bnVtX21vZGVzID0gZHJtX2FkZF9lZGlkX21vZGVzKGNvbm5lY3RvciwgcHRuX2JyaWRnZS0+ZWRp ZCk7Cj4gPiAgCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWk5MDJ4 LmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpaTkwMnguYwo+ID4gaW5kZXggNjAzNzNkN2Vi MjIwLi5jZDMzMTkzM2MyMzAgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdl L3NpaTkwMnguYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWk5MDJ4LmMKPiA+ IEBAIC0xNzAsNyArMTcwLDcgQEAgc3RhdGljIGludCBzaWk5MDJ4X2dldF9tb2RlcyhzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gIAkJcmV0dXJuIHJldDsKPiA+ICAKPiA+ICAJ ZWRpZCA9IGRybV9nZXRfZWRpZChjb25uZWN0b3IsIHNpaTkwMngtPmkyYy0+YWRhcHRlcik7Cj4g PiAtCWRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGVk aWQpOwo+ID4gKwlkcm1fY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3Rvciwg ZWRpZCk7Cj4gPiAgCWlmIChlZGlkKSB7Cj4gPiAgCQludW0gPSBkcm1fYWRkX2VkaWRfbW9kZXMo Y29ubmVjdG9yLCBlZGlkKTsKPiA+ICAJCWtmcmVlKGVkaWQpOwo+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMKPiA+IGluZGV4IDNjMTM2ZjJiOTU0Zi4uYWIzMmFj ZWI2ZjI0IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9k dy1oZG1pLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRt aS5jCj4gPiBAQCAtMTkyMiw3ICsxOTIyLDcgQEAgc3RhdGljIGludCBkd19oZG1pX2Nvbm5lY3Rv cl9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+ICAKPiA+ICAJ CWhkbWktPnNpbmtfaXNfaGRtaSA9IGRybV9kZXRlY3RfaGRtaV9tb25pdG9yKGVkaWQpOwo+ID4g IAkJaGRtaS0+c2lua19oYXNfYXVkaW8gPSBkcm1fZGV0ZWN0X21vbml0b3JfYXVkaW8oZWRpZCk7 Cj4gPiAtCQlkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9y LCBlZGlkKTsKPiA+ICsJCWRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubmVj dG9yLCBlZGlkKTsKPiA+ICAJCWNlY19ub3RpZmllcl9zZXRfcGh5c19hZGRyX2Zyb21fZWRpZCho ZG1pLT5jZWNfbm90aWZpZXIsIGVkaWQpOwo+ID4gIAkJcmV0ID0gZHJtX2FkZF9lZGlkX21vZGVz KGNvbm5lY3RvciwgZWRpZCk7Cj4gPiAgCQlrZnJlZShlZGlkKTsKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RjMzU4NzY3LmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdl L3RjMzU4NzY3LmMKPiA+IGluZGV4IDBmZDljZjI3NTQyYy4uZWUyZmQwYTM0OWIzIDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90YzM1ODc2Ny5jCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL3RjMzU4NzY3LmMKPiA+IEBAIC0xMTQwLDcgKzExNDAsNyBAQCBz dGF0aWMgaW50IHRjX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvcikKPiA+ICAJaWYgKCFlZGlkKQo+ID4gIAkJcmV0dXJuIDA7Cj4gPiAgCj4gPiAtCWRy bV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGVkaWQpOwo+ ID4gKwlkcm1fY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwgZWRpZCk7 Cj4gPiAgCWNvdW50ID0gZHJtX2FkZF9lZGlkX21vZGVzKGNvbm5lY3RvciwgZWRpZCk7Cj4gPiAg Cj4gPiAgCXJldHVybiBjb3VudDsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL3RpLXRmcDQxMC5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90aS10ZnA0MTAuYwo+ID4g aW5kZXggYWNiODU3MDMwOTUxLi5jODFiZjc5MTBiYmUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYnJpZGdlL3RpLXRmcDQxMC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL3RpLXRmcDQxMC5jCj4gPiBAQCAtNjIsNyArNjIsNyBAQCBzdGF0aWMgaW50IHRmcDQxMF9n ZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+ICAJCWdvdG8gZmFs bGJhY2s7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlk X3Byb3BlcnR5KGNvbm5lY3RvciwgZWRpZCk7Cj4gPiArCWRybV9jb25uZWN0b3JfdXBkYXRlX2Vk aWRfcHJvcGVydHkoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICAKPiA+ICAJcmV0dXJuIGRybV9hZGRf ZWRpZF9tb2Rlcyhjb25uZWN0b3IsIGVkaWQpOwo+ID4gIGZhbGxiYWNrOgo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2Nvbm5lY3Rvci5jCj4gPiBpbmRleCBkYzVhNDgwMjAwZDguLmNjYjcwYTQ0OTBkMyAxMDA2NDQK PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiA+IEBAIC04MTgsNyArODE4LDcgQEAgRFJNX0VO VU1fTkFNRV9GTihkcm1fZ2V0X2NvbnRlbnRfcHJvdGVjdGlvbl9uYW1lLCBkcm1fY3BfZW51bV9s aXN0KQo+ID4gICAqIAlCbG9iIHByb3BlcnR5IHdoaWNoIGNvbnRhaW5zIHRoZSBjdXJyZW50IEVE SUQgcmVhZCBmcm9tIHRoZSBzaW5rLiBUaGlzCj4gPiAgICogCWlzIHVzZWZ1bCB0byBwYXJzZSBz aW5rIGlkZW50aWZpY2F0aW9uIGluZm9ybWF0aW9uIGxpa2UgdmVuZG9yLCBtb2RlbAo+ID4gICAq IAlhbmQgc2VyaWFsLiBEcml2ZXJzIHNob3VsZCB1cGRhdGUgdGhpcyBwcm9wZXJ0eSBieSBjYWxs aW5nCj4gPiAtICogCWRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eSgpLCB1 c3VhbGx5IGFmdGVyIGhhdmluZyBwYXJzZWQKPiA+ICsgKiAJZHJtX2Nvbm5lY3Rvcl91cGRhdGVf ZWRpZF9wcm9wZXJ0eSgpLCB1c3VhbGx5IGFmdGVyIGhhdmluZyBwYXJzZWQKPiA+ICAgKiAJdGhl IEVESUQgdXNpbmcgZHJtX2FkZF9lZGlkX21vZGVzKCkuIFVzZXJzcGFjZSBjYW5ub3QgY2hhbmdl IHRoaXMKPiA+ICAgKiAJcHJvcGVydHkuCj4gPiAgICogRFBNUzoKPiA+IEBAIC0xNTAxLDcgKzE1 MDEsNyBAQCBpbnQgZHJtX21vZGVfY29ubmVjdG9yX3NldF90aWxlX3Byb3BlcnR5KHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiAgRVhQT1JUX1NZTUJPTChkcm1fbW9kZV9jb25u ZWN0b3Jfc2V0X3RpbGVfcHJvcGVydHkpOwo+ID4gIAo+ID4gIC8qKgo+ID4gLSAqIGRybV9tb2Rl X2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eSAtIHVwZGF0ZSB0aGUgZWRpZCBwcm9wZXJ0 eSBvZiBhIGNvbm5lY3Rvcgo+ID4gKyAqIGRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVy dHkgLSB1cGRhdGUgdGhlIGVkaWQgcHJvcGVydHkgb2YgYSBjb25uZWN0b3IKPiA+ICAgKiBAY29u bmVjdG9yOiBkcm0gY29ubmVjdG9yCj4gPiAgICogQGVkaWQ6IG5ldyB2YWx1ZSBvZiB0aGUgZWRp ZCBwcm9wZXJ0eQo+ID4gICAqCj4gPiBAQCAtMTUxMSw3ICsxNTExLDcgQEAgRVhQT1JUX1NZTUJP TChkcm1fbW9kZV9jb25uZWN0b3Jfc2V0X3RpbGVfcHJvcGVydHkpOwo+ID4gICAqIFJldHVybnM6 Cj4gPiAgICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJubyBvbiBmYWlsdXJlLgo+ID4g ICAqLwo+ID4gLWludCBkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ICtpbnQgZHJtX2Nvbm5lY3Rvcl91cGRh dGVfZWRpZF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gIAkJ CQkJICAgIGNvbnN0IHN0cnVjdCBlZGlkICplZGlkKQo+ID4gIHsKPiA+ICAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+ZGV2Owo+ID4gQEAgLTE1NTAsNyArMTU1MCw3IEBAIGlu dCBkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvciwKPiA+ICAJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGV2LT5tb2RlX2NvbmZpZy5lZGlkX3Byb3BlcnR5KTsKPiA+ICAJcmV0dXJuIHJldDsK PiA+ICB9Cj4gPiAtRVhQT1JUX1NZTUJPTChkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRf cHJvcGVydHkpOwo+ID4gK0VYUE9SVF9TWU1CT0woZHJtX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9w cm9wZXJ0eSk7Cj4gPiAgCj4gPiAgLyoqCj4gPiAgICogZHJtX21vZGVfY29ubmVjdG9yX3NldF9s aW5rX3N0YXR1c19wcm9wZXJ0eSAtIFNldCBsaW5rIHN0YXR1cyBwcm9wZXJ0eSBvZiBhIGNvbm5l Y3Rvcgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZGVidWdmcy5jIGIvZHJp dmVycy9ncHUvZHJtL2RybV9kZWJ1Z2ZzLmMKPiA+IGluZGV4IGIyNDgyODE4ZmVlOC4uZGY4Y2E0 NTQ4ZjlmIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9kZWJ1Z2ZzLmMKPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZGVidWdmcy5jCj4gPiBAQCAtMzA3LDEzICszMDcs MTMgQEAgc3RhdGljIHNzaXplX3QgZWRpZF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3Qg Y2hhciBfX3VzZXIgKnVidWYsCj4gPiAgCj4gPiAgCWlmIChsZW4gPT0gNSAmJiAhc3RybmNtcChi dWYsICJyZXNldCIsIDUpKSB7Cj4gPiAgCQljb25uZWN0b3ItPm92ZXJyaWRlX2VkaWQgPSBmYWxz ZTsKPiA+IC0JCXJldCA9IGRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShj b25uZWN0b3IsIE5VTEwpOwo+ID4gKwkJcmV0ID0gZHJtX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9w cm9wZXJ0eShjb25uZWN0b3IsIE5VTEwpOwo+ID4gIAl9IGVsc2UgaWYgKGxlbiA8IEVESURfTEVO R1RIIHx8Cj4gPiAgCQkgICBFRElEX0xFTkdUSCAqICgxICsgZWRpZC0+ZXh0ZW5zaW9ucykgPiBs ZW4pCj4gPiAgCQlyZXQgPSAtRUlOVkFMOwo+ID4gIAllbHNlIHsKPiA+ICAJCWNvbm5lY3Rvci0+ b3ZlcnJpZGVfZWRpZCA9IGZhbHNlOwo+ID4gLQkJcmV0ID0gZHJtX21vZGVfY29ubmVjdG9yX3Vw ZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwgZWRpZCk7Cj4gPiArCQlyZXQgPSBkcm1fY29u bmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwgZWRpZCk7Cj4gPiAgCQlpZiAo IXJldCkKPiA+ICAJCQljb25uZWN0b3ItPm92ZXJyaWRlX2VkaWQgPSB0cnVlOwo+ID4gIAl9Cj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMKPiA+IGluZGV4IDFhOTAxZmU5ZTIzZS4uMzQ3 MGNhNTA3ZGYzIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxw ZXIuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9iZV9oZWxwZXIuYwo+ID4gQEAg LTQ3MSw3ICs0NzEsNyBAQCBpbnQgZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21v ZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiAgCWlmIChjb25uZWN0b3It PnN0YXR1cyA9PSBjb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZCkgewo+ID4gIAkJRFJNX0RF QlVHX0tNUygiW0NPTk5FQ1RPUjolZDolc10gZGlzY29ubmVjdGVkXG4iLAo+ID4gIAkJCWNvbm5l Y3Rvci0+YmFzZS5pZCwgY29ubmVjdG9yLT5uYW1lKTsKPiA+IC0JCWRybV9tb2RlX2Nvbm5lY3Rv cl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIE5VTEwpOwo+ID4gKwkJZHJtX2Nvbm5l Y3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIE5VTEwpOwo+ID4gIAkJdmVyYm9z ZV9wcnVuZSA9IGZhbHNlOwo+ID4gIAkJZ290byBwcnVuZTsKPiA+ICAJfQo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV92aWRpLmMgYi9kcml2ZXJzL2dw dS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fdmlkaS5jCj4gPiBpbmRleCBlNmIwOTQwYjFhYzIuLmRm ZWE2MWVkYmE0YSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9z X2RybV92aWRpLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV92 aWRpLmMKPiA+IEBAIC0zMTksNyArMzE5LDcgQEAgc3RhdGljIGludCB2aWRpX2dldF9tb2Rlcyhz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gIAkJcmV0dXJuIC1FTk9NRU07Cj4g PiAgCX0KPiA+ICAKPiA+IC0JZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5 KGNvbm5lY3RvciwgZWRpZCk7Cj4gPiArCWRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVy dHkoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICAKPiA+ICAJcmV0dXJuIGRybV9hZGRfZWRpZF9tb2Rl cyhjb25uZWN0b3IsIGVkaWQpOwo+ID4gIH0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZXh5bm9zL2V4eW5vc19oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19o ZG1pLmMKPiA+IGluZGV4IGRiOTE5MzI1NTBjZi4uNjY3MmQwZmYwNDIzIDEwMDY0NAo+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfaGRtaS5jCj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19oZG1pLmMKPiA+IEBAIC04ODgsNyArODg4LDcgQEAgc3Rh dGljIGludCBoZG1pX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ ID4gIAkJKGhkYXRhLT5kdmlfbW9kZSA/ICJkdmkgbW9uaXRvciIgOiAiaGRtaSBtb25pdG9yIiks Cj4gPiAgCQllZGlkLT53aWR0aF9jbSwgZWRpZC0+aGVpZ2h0X2NtKTsKPiA+ICAKPiA+IC0JZHJt X21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwgZWRpZCk7Cj4g PiArCWRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLCBlZGlkKTsK PiA+ICAJY2VjX25vdGlmaWVyX3NldF9waHlzX2FkZHJfZnJvbV9lZGlkKGhkYXRhLT5ub3RpZmll ciwgZWRpZCk7Cj4gPiAgCj4gPiAgCXJldCA9IGRybV9hZGRfZWRpZF9tb2Rlcyhjb25uZWN0b3Is IGVkaWQpOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvY2R2X2ludGVs X2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2Nkdl9pbnRlbF9kcC5jCj4gPiBpbmRleCA1 ZWE3ODVmMDdiYTguLjkwZWQyMDA4MzAwOSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9nbWE1MDAvY2R2X2ludGVsX2RwLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAv Y2R2X2ludGVsX2RwLmMKPiA+IEBAIC0xNzcwLDcgKzE3NzAsNyBAQCBzdGF0aWMgaW50IGNkdl9p bnRlbF9kcF9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+ICAK PiA+ICAJZWRpZCA9IGRybV9nZXRfZWRpZChjb25uZWN0b3IsICZpbnRlbF9kcC0+YWRhcHRlcik7 Cj4gPiAgCWlmIChlZGlkKSB7Cj4gPiAtCQlkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRf cHJvcGVydHkoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICsJCWRybV9jb25uZWN0b3JfdXBkYXRlX2Vk aWRfcHJvcGVydHkoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICAJCXJldCA9IGRybV9hZGRfZWRpZF9t b2Rlcyhjb25uZWN0b3IsIGVkaWQpOwo+ID4gIAkJa2ZyZWUoZWRpZCk7Cj4gPiAgCX0KPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2Nkdl9pbnRlbF9oZG1pLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZ21hNTAwL2Nkdl9pbnRlbF9oZG1pLmMKPiA+IGluZGV4IGYwODc4OTk4NTI2 YS4uNGU0ZTRhNjZlYWVlIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9j ZHZfaW50ZWxfaGRtaS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2Nkdl9pbnRl bF9oZG1pLmMKPiA+IEBAIC0yMTYsNyArMjE2LDcgQEAgc3RhdGljIGludCBjZHZfaGRtaV9nZXRf bW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+ICAKPiA+ICAJZWRpZCA9 IGRybV9nZXRfZWRpZChjb25uZWN0b3IsICZnbWFfZW5jb2Rlci0+aTJjX2J1cy0+YWRhcHRlcik7 Cj4gPiAgCWlmIChlZGlkKSB7Cj4gPiAtCQlkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRf cHJvcGVydHkoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICsJCWRybV9jb25uZWN0b3JfdXBkYXRlX2Vk aWRfcHJvcGVydHkoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICAJCXJldCA9IGRybV9hZGRfZWRpZF9t b2Rlcyhjb25uZWN0b3IsIGVkaWQpOwo+ID4gIAkJa2ZyZWUoZWRpZCk7Cj4gPiAgCX0KPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL29ha3RyYWlsX2hkbWkuYyBiL2RyaXZl cnMvZ3B1L2RybS9nbWE1MDAvb2FrdHJhaWxfaGRtaS5jCj4gPiBpbmRleCA3ODU2NmE4MGFkMjUu LmM2ZDcyZGUxYzA1NCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvb2Fr dHJhaWxfaGRtaS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL29ha3RyYWlsX2hk bWkuYwo+ID4gQEAgLTU3OCw3ICs1NzgsNyBAQCBzdGF0aWMgaW50IG9ha3RyYWlsX2hkbWlfZ2V0 X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiAgCX0KPiA+ICAKPiA+ ICAJaWYgKGVkaWQpIHsKPiA+IC0JCWRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9w ZXJ0eShjb25uZWN0b3IsIGVkaWQpOwo+ID4gKwkJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9w cm9wZXJ0eShjb25uZWN0b3IsIGVkaWQpOwo+ID4gIAkJcmV0ID0gZHJtX2FkZF9lZGlkX21vZGVz KGNvbm5lY3RvciwgZWRpZCk7Cj4gPiAgCX0KPiA+ICAJcmV0dXJuIHJldDsKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL29ha3RyYWlsX2x2ZHMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9nbWE1MDAvb2FrdHJhaWxfbHZkcy5jCj4gPiBpbmRleCBlNjk0M2ZlZjA2MTEuLjgzYmFi YjgxNWE1ZCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvb2FrdHJhaWxf bHZkcy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL29ha3RyYWlsX2x2ZHMuYwo+ ID4gQEAgLTM3Niw3ICszNzYsNyBAQCB2b2lkIG9ha3RyYWlsX2x2ZHNfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ID4gIAkgKiBwcmVmZXJyZWQgbW9kZSBpcyB0aGUgcmlnaHQgb25lLgo+ ID4gIAkgKi8KPiA+ICAJaWYgKGVkaWQpIHsKPiA+IC0JCWRybV9tb2RlX2Nvbm5lY3Rvcl91cGRh dGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGVkaWQpOwo+ID4gKwkJZHJtX2Nvbm5lY3Rvcl91 cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGVkaWQpOwo+ID4gIAkJZHJtX2FkZF9lZGlk X21vZGVzKGNvbm5lY3RvciwgZWRpZCk7Cj4gPiAgCQlrZnJlZShlZGlkKTsKPiA+ICAKPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL3BzYl9pbnRlbF9tb2Rlcy5jIGIvZHJp dmVycy9ncHUvZHJtL2dtYTUwMC9wc2JfaW50ZWxfbW9kZXMuYwo+ID4gaW5kZXggZTUzNjA3MjZk ODBiLi5mYjRkYTNjZDY2ODEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAw L3BzYl9pbnRlbF9tb2Rlcy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL3BzYl9p bnRlbF9tb2Rlcy5jCj4gPiBAQCAtNjYsNyArNjYsNyBAQCBpbnQgcHNiX2ludGVsX2RkY19nZXRf bW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ICAKPiA+ICAJZWRpZCA9 IGRybV9nZXRfZWRpZChjb25uZWN0b3IsIGFkYXB0ZXIpOwo+ID4gIAlpZiAoZWRpZCkgewo+ID4g LQkJZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwgZWRp ZCk7Cj4gPiArCQlkcm1fY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3Rvciwg ZWRpZCk7Cj4gPiAgCQlyZXQgPSBkcm1fYWRkX2VkaWRfbW9kZXMoY29ubmVjdG9yLCBlZGlkKTsK PiA+ICAJCWtmcmVlKGVkaWQpOwo+ID4gIAl9Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2dtYTUwMC9wc2JfaW50ZWxfc2R2by5jIGIvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9wc2Jf aW50ZWxfc2R2by5jCj4gPiBpbmRleCAxZDQwNzQ2YWI2MjUuLmRkM2NlYzBlMzE5MCAxMDA2NDQK PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9nbWE1MDAvcHNiX2ludGVsX3Nkdm8uYwo+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2dtYTUwMC9wc2JfaW50ZWxfc2R2by5jCj4gPiBAQCAtMTQ3Miw3 ICsxNDcyLDcgQEAgc3RhdGljIHZvaWQgcHNiX2ludGVsX3Nkdm9fZ2V0X2RkY19tb2RlcyhzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gIAkJYm9vbCBjb25uZWN0b3JfaXNfZGln aXRhbCA9ICEhSVNfVE1EUyhwc2JfaW50ZWxfc2R2b19jb25uZWN0b3IpOwo+ID4gIAo+ID4gIAkJ aWYgKGNvbm5lY3Rvcl9pc19kaWdpdGFsID09IG1vbml0b3JfaXNfZGlnaXRhbCkgewo+ID4gLQkJ CWRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGVkaWQp Owo+ID4gKwkJCWRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLCBl ZGlkKTsKPiA+ICAJCQlkcm1fYWRkX2VkaWRfbW9kZXMoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICAJ CX0KPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTJjL3RkYTk5OHhfZHJ2 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTJjL3RkYTk5OHhfZHJ2LmMKPiA+IGluZGV4IDAwMzhjOTc2 NTM2YS4uZDQzNGY1NzZlNmIyIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2kyYy90 ZGE5OTh4X2Rydi5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTJjL3RkYTk5OHhfZHJ2LmMK PiA+IEBAIC0xMjQzLDcgKzEyNDMsNyBAQCBzdGF0aWMgaW50IHRkYTk5OHhfY29ubmVjdG9yX2dl dF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gIAkJcmV0dXJuIDA7 Cj4gPiAgCX0KPiA+ICAKPiA+IC0JZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3Bl cnR5KGNvbm5lY3RvciwgZWRpZCk7Cj4gPiArCWRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJv cGVydHkoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICAJbiA9IGRybV9hZGRfZWRpZF9tb2Rlcyhjb25u ZWN0b3IsIGVkaWQpOwo+ID4gIAo+ID4gIAlrZnJlZShlZGlkKTsKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYwo+ID4gaW5kZXggNWJlMDdlMWQ4MTZkLi4yZjNlOTIxNjdjNWYgMTAwNjQ0Cj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBAQCAtNjIxMiw3ICs2MjEyLDcgQEAgc3RhdGljIGJv b2wgaW50ZWxfZWRwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4g PiAgCWVkaWQgPSBkcm1fZ2V0X2VkaWQoY29ubmVjdG9yLCAmaW50ZWxfZHAtPmF1eC5kZGMpOwo+ ID4gIAlpZiAoZWRpZCkgewo+ID4gIAkJaWYgKGRybV9hZGRfZWRpZF9tb2Rlcyhjb25uZWN0b3Is IGVkaWQpKSB7Cj4gPiAtCQkJZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5 KGNvbm5lY3RvciwKPiA+ICsJCQlkcm1fY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNv bm5lY3RvciwKPiA+ICAJCQkJCQkJCWVkaWQpOwo+ID4gIAkJfSBlbHNlIHsKPiA+ICAJCQlrZnJl ZShlZGlkKTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRz LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMKPiA+IGluZGV4IGJiMDY3NDRk MjhhNC4uY2E1NWIwYTgyYmE2IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHZkcy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMK PiA+IEBAIC0xMTMxLDcgKzExMzEsNyBAQCB2b2lkIGludGVsX2x2ZHNfaW5pdChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgCQkJCSAgICBpbnRlbF9nbWJ1c19nZXRfYWRh cHRlcihkZXZfcHJpdiwgcGluKSk7Cj4gPiAgCWlmIChlZGlkKSB7Cj4gPiAgCQlpZiAoZHJtX2Fk ZF9lZGlkX21vZGVzKGNvbm5lY3RvciwgZWRpZCkpIHsKPiA+IC0JCQlkcm1fbW9kZV9jb25uZWN0 b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLAo+ID4gKwkJCWRybV9jb25uZWN0b3Jf dXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLAo+ID4gIAkJCQkJCQkJZWRpZCk7Cj4gPiAg CQl9IGVsc2Ugewo+ID4gIAkJCWtmcmVlKGVkaWQpOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX21vZGVzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9t b2Rlcy5jCj4gPiBpbmRleCBiMzk4NDY2MTNlM2MuLmNhNDRiZjM2OGUyNCAxMDA2NDQKPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21vZGVzLmMKPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX21vZGVzLmMKPiA+IEBAIC00MCw3ICs0MCw3IEBAIGludCBpbnRl bF9jb25uZWN0b3JfdXBkYXRlX21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is Cj4gPiAgewo+ID4gIAlpbnQgcmV0Owo+ID4gIAo+ID4gLQlkcm1fbW9kZV9jb25uZWN0b3JfdXBk YXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICsJZHJtX2Nvbm5lY3Rvcl91 cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGVkaWQpOwo+ID4gIAlyZXQgPSBkcm1fYWRk X2VkaWRfbW9kZXMoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICAKPiA+ICAJcmV0dXJuIHJldDsKPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMKPiA+IGluZGV4IDM5NmNiNTljYTRiOC4uODEyZmU3 YjA2Zjg3IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5j Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMKPiA+IEBAIC0xOTEx LDcgKzE5MTEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZHZvX2dldF9kZGNfbW9kZXMoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+ICAJaWYgKGVkaWQgIT0gTlVMTCkgewo+ID4g IAkJaWYgKGludGVsX3Nkdm9fY29ubmVjdG9yX21hdGNoZXNfZWRpZCh0b19pbnRlbF9zZHZvX2Nv bm5lY3Rvcihjb25uZWN0b3IpLAo+ID4gIAkJCQkJCSAgICAgIGVkaWQpKSB7Cj4gPiAtCQkJZHJt X21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwgZWRpZCk7Cj4g PiArCQkJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGVkaWQp Owo+ID4gIAkJCWRybV9hZGRfZWRpZF9tb2Rlcyhjb25uZWN0b3IsIGVkaWQpOwo+ID4gIAkJfQo+ ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWxkYi5jIGIvZHJp dmVycy9ncHUvZHJtL2lteC9pbXgtbGRiLmMKPiA+IGluZGV4IDU2ZGQ3YTlhOGUyNS4uYWU4MWNi Yjc1ZjUxIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtbGRiLmMKPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWxkYi5jCj4gPiBAQCAtMTQzLDcgKzE0Myw3 IEBAIHN0YXRpYyBpbnQgaW14X2xkYl9jb25uZWN0b3JfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IpCj4gPiAgCQlpbXhfbGRiX2NoLT5lZGlkID0gZHJtX2dldF9lZGlk KGNvbm5lY3RvciwgaW14X2xkYl9jaC0+ZGRjKTsKPiA+ICAKPiA+ICAJaWYgKGlteF9sZGJfY2gt PmVkaWQpIHsKPiA+IC0JCWRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShj b25uZWN0b3IsCj4gPiArCQlkcm1fY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5l Y3RvciwKPiA+ICAJCQkJCQkJaW14X2xkYl9jaC0+ZWRpZCk7Cj4gPiAgCQludW1fbW9kZXMgPSBk cm1fYWRkX2VkaWRfbW9kZXMoY29ubmVjdG9yLCBpbXhfbGRiX2NoLT5lZGlkKTsKPiA+ICAJfQo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LXR2ZS5jIGIvZHJpdmVycy9n cHUvZHJtL2lteC9pbXgtdHZlLmMKPiA+IGluZGV4IGJjMjdjMjY5OTQ2NC4uMWE0Y2VkNWMwOWI1 IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgtdHZlLmMKPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LXR2ZS5jCj4gPiBAQCAtMjM1LDcgKzIzNSw3IEBAIHN0 YXRpYyBpbnQgaW14X3R2ZV9jb25uZWN0b3JfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IpCj4gPiAgCj4gPiAgCWVkaWQgPSBkcm1fZ2V0X2VkaWQoY29ubmVjdG9yLCB0 dmUtPmRkYyk7Cj4gPiAgCWlmIChlZGlkKSB7Cj4gPiAtCQlkcm1fbW9kZV9jb25uZWN0b3JfdXBk YXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICsJCWRybV9jb25uZWN0b3Jf dXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICAJCXJldCA9IGRybV9h ZGRfZWRpZF9tb2Rlcyhjb25uZWN0b3IsIGVkaWQpOwo+ID4gIAkJa2ZyZWUoZWRpZCk7Cj4gPiAg CX0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVsLWRpc3BsYXku YyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvcGFyYWxsZWwtZGlzcGxheS5jCj4gPiBpbmRleCBhZWRl Y2RhOTcyOGEuLjRmYzFjZjU4MzQzNSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p bXgvcGFyYWxsZWwtZGlzcGxheS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFs bGVsLWRpc3BsYXkuYwo+ID4gQEAgLTYzLDcgKzYzLDcgQEAgc3RhdGljIGludCBpbXhfcGRfY29u bmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gIAl9 Cj4gPiAgCj4gPiAgCWlmIChpbXhwZC0+ZWRpZCkgewo+ID4gLQkJZHJtX21vZGVfY29ubmVjdG9y X3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwgaW14cGQtPmVkaWQpOwo+ID4gKwkJZHJt X2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGlteHBkLT5lZGlkKTsK PiA+ICAJCW51bV9tb2RlcyA9IGRybV9hZGRfZWRpZF9tb2Rlcyhjb25uZWN0b3IsIGlteHBkLT5l ZGlkKTsKPiA+ICAJfQo+ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19oZG1pLmMKPiA+ IGluZGV4IDU5YTExMDI2ZGNlYi4uODM1MzEzOTQwMzk1IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19oZG1pLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfaGRtaS5jCj4gPiBAQCAtMTIyMCw3ICsxMjIwLDcgQEAgc3RhdGljIGludCBt dGtfaGRtaV9jb25uX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubikKPiA+ICAK PiA+ICAJaGRtaS0+ZHZpX21vZGUgPSAhZHJtX2RldGVjdF9tb25pdG9yX2F1ZGlvKGVkaWQpOwo+ ID4gIAo+ID4gLQlkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubiwg ZWRpZCk7Cj4gPiArCWRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubiwgZWRp ZCk7Cj4gPiAgCj4gPiAgCXJldCA9IGRybV9hZGRfZWRpZF9tb2Rlcyhjb25uLCBlZGlkKTsKPiA+ ICAJa2ZyZWUoZWRpZCk7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAv bWdhZzIwMF9tb2RlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX21vZGUuYwo+ ID4gaW5kZXggODkxODUzOWExOWFhLi41ZjEwNGYxMzkxOTcgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX21vZGUuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL21nYWcyMDAvbWdhZzIwMF9tb2RlLmMKPiA+IEBAIC0xNTUzLDcgKzE1NTMsNyBAQCBzdGF0 aWMgaW50IG1nYV92Z2FfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Ip Cj4gPiAgCj4gPiAgCWVkaWQgPSBkcm1fZ2V0X2VkaWQoY29ubmVjdG9yLCAmbWdhX2Nvbm5lY3Rv ci0+aTJjLT5hZGFwdGVyKTsKPiA+ICAJaWYgKGVkaWQpIHsKPiA+IC0JCWRybV9tb2RlX2Nvbm5l Y3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGVkaWQpOwo+ID4gKwkJZHJtX2Nv bm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGVkaWQpOwo+ID4gIAkJcmV0 ID0gZHJtX2FkZF9lZGlkX21vZGVzKGNvbm5lY3RvciwgZWRpZCk7Cj4gPiAgCQlrZnJlZShlZGlk KTsKPiA+ICAJfQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZWRwL2VkcF9j b25uZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZWRwL2VkcF9jb25uZWN0b3IuYwo+ID4g aW5kZXggNmYzZmM2YjBmMGEzLi4wYjVlYWMwNTQxOTUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vbXNtL2VkcC9lZHBfY29ubmVjdG9yLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZWRwL2VkcF9jb25uZWN0b3IuYwo+ID4gQEAgLTU2LDcgKzU2LDcgQEAgc3RhdGljIGlu dCBlZHBfY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y KQo+ID4gIAlpZiAocmV0KQo+ID4gIAkJcmV0dXJuIHJldDsKPiA+ICAKPiA+IC0JZHJtX21vZGVf Y29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwgZHJtX2VkaWQpOwo+ID4g Kwlkcm1fY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwgZHJtX2VkaWQp Owo+ID4gIAlpZiAoZHJtX2VkaWQpCj4gPiAgCQlyZXQgPSBkcm1fYWRkX2VkaWRfbW9kZXMoY29u bmVjdG9yLCBkcm1fZWRpZCk7Cj4gPiAgCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L21zbS9oZG1pL2hkbWlfY29ubmVjdG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRt aV9jb25uZWN0b3IuYwo+ID4gaW5kZXggYzA4NDhkZmVkZDUwLi4wN2ZlYWNjNWE0NDEgMTAwNjQ0 Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaV9jb25uZWN0b3IuYwo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9oZG1pL2hkbWlfY29ubmVjdG9yLmMKPiA+IEBAIC0z OTIsNyArMzkyLDcgQEAgc3RhdGljIGludCBtc21faGRtaV9jb25uZWN0b3JfZ2V0X21vZGVzKHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiAgCWhkbWlfd3JpdGUoaGRtaSwgUkVH X0hETUlfQ1RSTCwgaGRtaV9jdHJsKTsKPiA+ICAKPiA+ICAJaGRtaS0+aGRtaV9tb2RlID0gZHJt X2RldGVjdF9oZG1pX21vbml0b3IoZWRpZCk7Cj4gPiAtCWRybV9tb2RlX2Nvbm5lY3Rvcl91cGRh dGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGVkaWQpOwo+ID4gKwlkcm1fY29ubmVjdG9yX3Vw ZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwgZWRpZCk7Cj4gPiAgCj4gPiAgCWlmIChlZGlk KSB7Cj4gPiAgCQlyZXQgPSBkcm1fYWRkX2VkaWRfbW9kZXMoY29ubmVjdG9yLCBlZGlkKTsKPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9kaXNwLmMgYi9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9kaXNwLmMKPiA+IGluZGV4IGI4MzQ2NWFl N2MxYi4uMmZhYmI2OWU0NTJiIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvZGlzcG52NTAvZGlzcC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNw bnY1MC9kaXNwLmMKPiA+IEBAIC04NTAsNyArODUwLDcgQEAgbnY1MF9tc3RjX2dldF9tb2Rlcyhz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gIAlpbnQgcmV0ID0gMDsKPiA+ICAK PiA+ICAJbXN0Yy0+ZWRpZCA9IGRybV9kcF9tc3RfZ2V0X2VkaWQoJm1zdGMtPmNvbm5lY3Rvciwg bXN0Yy0+cG9ydC0+bWdyLCBtc3RjLT5wb3J0KTsKPiA+IC0JZHJtX21vZGVfY29ubmVjdG9yX3Vw ZGF0ZV9lZGlkX3Byb3BlcnR5KCZtc3RjLT5jb25uZWN0b3IsIG1zdGMtPmVkaWQpOwo+ID4gKwlk cm1fY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KCZtc3RjLT5jb25uZWN0b3IsIG1zdGMt PmVkaWQpOwo+ID4gIAlpZiAobXN0Yy0+ZWRpZCkKPiA+ICAJCXJldCA9IGRybV9hZGRfZWRpZF9t b2RlcygmbXN0Yy0+Y29ubmVjdG9yLCBtc3RjLT5lZGlkKTsKPiA+ICAKPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Nvbm5lY3Rvci5jIGIvZHJpdmVycy9n cHUvZHJtL25vdXZlYXUvbm91dmVhdV9jb25uZWN0b3IuYwo+ID4gaW5kZXggYmI0NmMxZDQ4OWNm Li4yMmExNTQ3OGQyM2QgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9u b3V2ZWF1X2Nvbm5lY3Rvci5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2 ZWF1X2Nvbm5lY3Rvci5jCj4gPiBAQCAtNTUwLDcgKzU1MCw3IEBAIG5vdXZlYXVfY29ubmVjdG9y X2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQo+ID4g IAo+ID4gIAkvKiBDbGVhbnVwIHRoZSBwcmV2aW91cyBFRElEIGJsb2NrLiAqLwo+ID4gIAlpZiAo bnZfY29ubmVjdG9yLT5lZGlkKSB7Cj4gPiAtCQlkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2Vk aWRfcHJvcGVydHkoY29ubmVjdG9yLCBOVUxMKTsKPiA+ICsJCWRybV9jb25uZWN0b3JfdXBkYXRl X2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLCBOVUxMKTsKPiA+ICAJCWtmcmVlKG52X2Nvbm5lY3Rv ci0+ZWRpZCk7Cj4gPiAgCQludl9jb25uZWN0b3ItPmVkaWQgPSBOVUxMOwo+ID4gIAl9Cj4gPiBA QCAtNTc1LDcgKzU3NSw3IEBAIG5vdXZlYXVfY29ubmVjdG9yX2RldGVjdChzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQo+ID4gIAkJZWxzZQo+ID4gIAkJCW52X2Nv bm5lY3Rvci0+ZWRpZCA9IGRybV9nZXRfZWRpZChjb25uZWN0b3IsIGkyYyk7Cj4gPiAgCj4gPiAt CQlkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLAo+ID4g KwkJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsCj4gPiAgCQkJ CQkJCW52X2Nvbm5lY3Rvci0+ZWRpZCk7Cj4gPiAgCQlpZiAoIW52X2Nvbm5lY3Rvci0+ZWRpZCkg ewo+ID4gIAkJCU5WX0VSUk9SKGRybSwgIkREQyByZXNwb25kZWQsIGJ1dCBubyBFRElEIGZvciAl c1xuIiwKPiA+IEBAIC02NTcsNyArNjU3LDcgQEAgbm91dmVhdV9jb25uZWN0b3JfZGV0ZWN0X2x2 ZHMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiA+ICAKPiA+ ICAJLyogQ2xlYW51cCB0aGUgcHJldmlvdXMgRURJRCBibG9jay4gKi8KPiA+ICAJaWYgKG52X2Nv bm5lY3Rvci0+ZWRpZCkgewo+ID4gLQkJZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3By b3BlcnR5KGNvbm5lY3RvciwgTlVMTCk7Cj4gPiArCQlkcm1fY29ubmVjdG9yX3VwZGF0ZV9lZGlk X3Byb3BlcnR5KGNvbm5lY3RvciwgTlVMTCk7Cj4gPiAgCQlrZnJlZShudl9jb25uZWN0b3ItPmVk aWQpOwo+ID4gIAkJbnZfY29ubmVjdG9yLT5lZGlkID0gTlVMTDsKPiA+ICAJfQo+ID4gQEAgLTcy MSw3ICs3MjEsNyBAQCBub3V2ZWF1X2Nvbm5lY3Rvcl9kZXRlY3RfbHZkcyhzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQo+ID4gIAkJc3RhdHVzID0gY29ubmVjdG9y X3N0YXR1c191bmtub3duOwo+ID4gICNlbmRpZgo+ID4gIAo+ID4gLQlkcm1fbW9kZV9jb25uZWN0 b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLCBudl9jb25uZWN0b3ItPmVkaWQpOwo+ ID4gKwlkcm1fY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwgbnZfY29u bmVjdG9yLT5lZGlkKTsKPiA+ICAJbm91dmVhdV9jb25uZWN0b3Jfc2V0X2VuY29kZXIoY29ubmVj dG9yLCBudl9lbmNvZGVyKTsKPiA+ICAJcmV0dXJuIHN0YXR1czsKPiA+ICB9Cj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9jb25uZWN0b3IuYyBiL2RyaXZlcnMv Z3B1L2RybS9vbWFwZHJtL29tYXBfY29ubmVjdG9yLmMKPiA+IGluZGV4IDVjZGUyNmFjOTM3Yi4u MmRkYjg1NjY2NmM0IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21h cF9jb25uZWN0b3IuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9jb25u ZWN0b3IuYwo+ID4gQEAgLTEyNiwxNCArMTI2LDE0IEBAIHN0YXRpYyBpbnQgb21hcF9jb25uZWN0 b3JfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiAgCj4gPiAg CQlpZiAoKGRzc2Rydi0+cmVhZF9lZGlkKGRzc2RldiwgZWRpZCwgTUFYX0VESUQpID4gMCkgJiYK PiA+ICAJCQkJZHJtX2VkaWRfaXNfdmFsaWQoZWRpZCkpIHsKPiA+IC0JCQlkcm1fbW9kZV9jb25u ZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoCj4gPiArCQkJZHJtX2Nvbm5lY3Rvcl91cGRhdGVf ZWRpZF9wcm9wZXJ0eSgKPiA+ICAJCQkJCWNvbm5lY3RvciwgZWRpZCk7Cj4gPiAgCQkJbiA9IGRy bV9hZGRfZWRpZF9tb2Rlcyhjb25uZWN0b3IsIGVkaWQpOwo+ID4gIAo+ID4gIAkJCW9tYXBfY29u bmVjdG9yLT5oZG1pX21vZGUgPQo+ID4gIAkJCQlkcm1fZGV0ZWN0X2hkbWlfbW9uaXRvcihlZGlk KTsKPiA+ICAJCX0gZWxzZSB7Cj4gPiAtCQkJZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlk X3Byb3BlcnR5KAo+ID4gKwkJCWRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoCj4g PiAgCQkJCQljb25uZWN0b3IsIE5VTEwpOwo+ID4gIAkJfQo+ID4gIAo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9w YW5lbC9wYW5lbC1zaW1wbGUuYwo+ID4gaW5kZXggYWM2YWFhMTc0YzBiLi4zYzIyOWQxMzQzNTkg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2ltcGxlLmMKPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaW1wbGUuYwo+ID4gQEAgLTI1Miw3 ICsyNTIsNyBAQCBzdGF0aWMgaW50IHBhbmVsX3NpbXBsZV9nZXRfbW9kZXMoc3RydWN0IGRybV9w YW5lbCAqcGFuZWwpCj4gPiAgCS8qIHByb2JlIEVESUQgaWYgYSBEREMgYnVzIGlzIGF2YWlsYWJs ZSAqLwo+ID4gIAlpZiAocC0+ZGRjKSB7Cj4gPiAgCQlzdHJ1Y3QgZWRpZCAqZWRpZCA9IGRybV9n ZXRfZWRpZChwYW5lbC0+Y29ubmVjdG9yLCBwLT5kZGMpOwo+ID4gLQkJZHJtX21vZGVfY29ubmVj dG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KHBhbmVsLT5jb25uZWN0b3IsIGVkaWQpOwo+ID4gKwkJ ZHJtX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShwYW5lbC0+Y29ubmVjdG9yLCBlZGlk KTsKPiA+ICAJCWlmIChlZGlkKSB7Cj4gPiAgCQkJbnVtICs9IGRybV9hZGRfZWRpZF9tb2Rlcyhw YW5lbC0+Y29ubmVjdG9yLCBlZGlkKTsKPiA+ICAJCQlrZnJlZShlZGlkKTsKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jb25uZWN0b3JzLmMgYi9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jb25uZWN0b3JzLmMKPiA+IGluZGV4IDA2NTU2OThmMjk1 Ni4uNDE0NjQyZTViN2EzIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb25fY29ubmVjdG9ycy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9jb25uZWN0b3JzLmMKPiA+IEBAIC0zNjgsMTEgKzM2OCwxMSBAQCBzdGF0aWMgaW50IHJhZGVv bl9kZGNfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiAgCWlu dCByZXQ7Cj4gPiAgCj4gPiAgCWlmIChyYWRlb25fY29ubmVjdG9yLT5lZGlkKSB7Cj4gPiAtCQlk cm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLCByYWRlb25f Y29ubmVjdG9yLT5lZGlkKTsKPiA+ICsJCWRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVy dHkoY29ubmVjdG9yLCByYWRlb25fY29ubmVjdG9yLT5lZGlkKTsKPiA+ICAJCXJldCA9IGRybV9h ZGRfZWRpZF9tb2Rlcyhjb25uZWN0b3IsIHJhZGVvbl9jb25uZWN0b3ItPmVkaWQpOwo+ID4gIAkJ cmV0dXJuIHJldDsKPiA+ICAJfQo+ID4gLQlkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRf cHJvcGVydHkoY29ubmVjdG9yLCBOVUxMKTsKPiA+ICsJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfZWRp ZF9wcm9wZXJ0eShjb25uZWN0b3IsIE5VTEwpOwo+ID4gIAlyZXR1cm4gMDsKPiA+ICB9Cj4gPiAg Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZHBfbXN0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcF9tc3QuYwo+ID4gaW5kZXggY2Q4YTNl ZTE2NjQ5Li4zNzk1NmNmYzBiNmQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9kcF9tc3QuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fZHBfbXN0LmMKPiA+IEBAIC0xOTUsMTEgKzE5NSwxMSBAQCBzdGF0aWMgaW50IHJhZGVvbl9k cF9tc3RfZ2V0X2RkY19tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4g IAlyYWRlb25fY29ubmVjdG9yLT5lZGlkID0gZWRpZDsKPiA+ICAJRFJNX0RFQlVHX0tNUygiZWRp ZCByZXRyaWV2ZWQgJXBcbiIsIGVkaWQpOwo+ID4gIAlpZiAocmFkZW9uX2Nvbm5lY3Rvci0+ZWRp ZCkgewo+ID4gLQkJZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KCZyYWRl b25fY29ubmVjdG9yLT5iYXNlLCByYWRlb25fY29ubmVjdG9yLT5lZGlkKTsKPiA+ICsJCWRybV9j b25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoJnJhZGVvbl9jb25uZWN0b3ItPmJhc2UsIHJh ZGVvbl9jb25uZWN0b3ItPmVkaWQpOwo+ID4gIAkJcmV0ID0gZHJtX2FkZF9lZGlkX21vZGVzKCZy YWRlb25fY29ubmVjdG9yLT5iYXNlLCByYWRlb25fY29ubmVjdG9yLT5lZGlkKTsKPiA+ICAJCXJl dHVybiByZXQ7Cj4gPiAgCX0KPiA+IC0JZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3By b3BlcnR5KCZyYWRlb25fY29ubmVjdG9yLT5iYXNlLCBOVUxMKTsKPiA+ICsJZHJtX2Nvbm5lY3Rv cl91cGRhdGVfZWRpZF9wcm9wZXJ0eSgmcmFkZW9uX2Nvbm5lY3Rvci0+YmFzZSwgTlVMTCk7Cj4g PiAgCj4gPiAgCXJldHVybiByZXQ7Cj4gPiAgfQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9jZG4tZHAtY29yZS5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2Nk bi1kcC1jb3JlLmMKPiA+IGluZGV4IGM2ZmJkY2Q4N2MxNi4uYTQwY2IyYmU1MGUxIDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2Nkbi1kcC1jb3JlLmMKPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9jZG4tZHAtY29yZS5jCj4gPiBAQCAtMjc1LDcgKzI3 NSw3IEBAIHN0YXRpYyBpbnQgY2RuX2RwX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvcikKPiA+ICAJCWRwLT5zaW5rX2hhc19hdWRpbyA9IGRybV9kZXRl Y3RfbW9uaXRvcl9hdWRpbyhlZGlkKTsKPiA+ICAJCXJldCA9IGRybV9hZGRfZWRpZF9tb2Rlcyhj b25uZWN0b3IsIGVkaWQpOwo+ID4gIAkJaWYgKHJldCkKPiA+IC0JCQlkcm1fbW9kZV9jb25uZWN0 b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLAo+ID4gKwkJCWRybV9jb25uZWN0b3Jf dXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLAo+ID4gIAkJCQkJCQkJZWRpZCk7Cj4gPiAg CX0KPiA+ICAJbXV0ZXhfdW5sb2NrKCZkcC0+bG9jayk7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL2lubm9faGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L2lubm9faGRtaS5jCj4gPiBpbmRleCA4OGQwNzc0Yzk3YmQuLjUxMGZjYjMzZTMxZCAxMDA2NDQK PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9pbm5vX2hkbWkuYwo+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2lubm9faGRtaS5jCj4gPiBAQCAtNTY1LDcgKzU2NSw3 IEBAIHN0YXRpYyBpbnQgaW5ub19oZG1pX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvcikKPiA+ICAJaWYgKGVkaWQpIHsKPiA+ICAJCWhkbWktPmhkbWlf ZGF0YS5zaW5rX2lzX2hkbWkgPSBkcm1fZGV0ZWN0X2hkbWlfbW9uaXRvcihlZGlkKTsKPiA+ICAJ CWhkbWktPmhkbWlfZGF0YS5zaW5rX2hhc19hdWRpbyA9IGRybV9kZXRlY3RfbW9uaXRvcl9hdWRp byhlZGlkKTsKPiA+IC0JCWRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShj b25uZWN0b3IsIGVkaWQpOwo+ID4gKwkJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0 eShjb25uZWN0b3IsIGVkaWQpOwo+ID4gIAkJcmV0ID0gZHJtX2FkZF9lZGlkX21vZGVzKGNvbm5l Y3RvciwgZWRpZCk7Cj4gPiAgCQlrZnJlZShlZGlkKTsKPiA+ICAJfQo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3Rp X2hkbWkuYwo+ID4gaW5kZXggNThmNDMxMTAyNTEyLi4wYzMwMDgzNTZhYjggMTAwNjQ0Cj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9oZG1pLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9zdGkvc3RpX2hkbWkuYwo+ID4gQEAgLTk3Nyw3ICs5NzcsNyBAQCBzdGF0aWMgaW50IHN0 aV9oZG1pX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv cikKPiA+ICAJY2VjX25vdGlmaWVyX3NldF9waHlzX2FkZHJfZnJvbV9lZGlkKGhkbWktPm5vdGlm aWVyLCBlZGlkKTsKPiA+ICAKPiA+ICAJY291bnQgPSBkcm1fYWRkX2VkaWRfbW9kZXMoY29ubmVj dG9yLCBlZGlkKTsKPiA+IC0JZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5 KGNvbm5lY3RvciwgZWRpZCk7Cj4gPiArCWRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVy dHkoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICAKPiA+ICAJa2ZyZWUoZWRpZCk7Cj4gPiAgCXJldHVy biBjb3VudDsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfaGRt aV9lbmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9oZG1pX2VuYy5jCj4gPiBpbmRl eCBmYTRiY2QwOTJlYWYuLjliNGIxZDAxNTQyMyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9zdW40aS9zdW40aV9oZG1pX2VuYy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vc3Vu NGkvc3VuNGlfaGRtaV9lbmMuYwo+ID4gQEAgLTIyMCw3ICsyMjAsNyBAQCBzdGF0aWMgaW50IHN1 bjRpX2hkbWlfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiAg CURSTV9ERUJVR19EUklWRVIoIk1vbml0b3IgaXMgJXMgbW9uaXRvclxuIiwKPiA+ICAJCQkgaGRt aS0+aGRtaV9tb25pdG9yID8gImFuIEhETUkiIDogImEgRFZJIik7Cj4gPiAgCj4gPiAtCWRybV9t b2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25uZWN0b3IsIGVkaWQpOwo+ID4g Kwlkcm1fY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwgZWRpZCk7Cj4g PiAgCWNlY19zX3BoeXNfYWRkcl9mcm9tX2VkaWQoaGRtaS0+Y2VjX2FkYXAsIGVkaWQpOwo+ID4g IAlyZXQgPSBkcm1fYWRkX2VkaWRfbW9kZXMoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICAJa2ZyZWUo ZWRpZCk7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL291dHB1dC5jIGIv ZHJpdmVycy9ncHUvZHJtL3RlZ3JhL291dHB1dC5jCj4gPiBpbmRleCBmZmUzNGJkMGJiOWQuLjk4 MzY1N2M0NzA2NyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9vdXRwdXQu Ywo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL291dHB1dC5jCj4gPiBAQCAtMzcsNyAr MzcsNyBAQCBpbnQgdGVncmFfb3V0cHV0X2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvcikKPiA+ICAJCWVkaWQgPSBkcm1fZ2V0X2VkaWQoY29ubmVjdG9y LCBvdXRwdXQtPmRkYyk7Cj4gPiAgCj4gPiAgCWNlY19ub3RpZmllcl9zZXRfcGh5c19hZGRyX2Zy b21fZWRpZChvdXRwdXQtPm5vdGlmaWVyLCBlZGlkKTsKPiA+IC0JZHJtX21vZGVfY29ubmVjdG9y X3VwZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwgZWRpZCk7Cj4gPiArCWRybV9jb25uZWN0 b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICAKPiA+ICAJaWYg KGVkaWQpIHsKPiA+ICAJCWVyciA9IGRybV9hZGRfZWRpZF9tb2Rlcyhjb25uZWN0b3IsIGVkaWQp Owo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX3RmcDQxMC5j IGIvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfdGZwNDEwLmMKPiA+IGluZGV4IGM0NWNh YmIzOGRiMC4uNDZkYWNjYTNjY2U4IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rp bGNkYy90aWxjZGNfdGZwNDEwLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGls Y2RjX3RmcDQxMC5jCj4gPiBAQCAtMTczLDcgKzE3Myw3IEBAIHN0YXRpYyBpbnQgdGZwNDEwX2Nv bm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+ICAK PiA+ICAJZWRpZCA9IGRybV9nZXRfZWRpZChjb25uZWN0b3IsIHRmcDQxMF9jb25uZWN0b3ItPm1v ZC0+aTJjKTsKPiA+ICAKPiA+IC0JZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3Bl cnR5KGNvbm5lY3RvciwgZWRpZCk7Cj4gPiArCWRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJv cGVydHkoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICAKPiA+ICAJaWYgKGVkaWQpIHsKPiA+ICAJCXJl dCA9IGRybV9hZGRfZWRpZF9tb2Rlcyhjb25uZWN0b3IsIGVkaWQpOwo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2Nvbm5lY3Rvci5jIGIvZHJpdmVycy9ncHUvZHJtL3Vk bC91ZGxfY29ubmVjdG9yLmMKPiA+IGluZGV4IDA5ZGM1ODVhYTQ2Zi4uOGZhYzEyZTFhMWE0IDEw MDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfY29ubmVjdG9yLmMKPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2Nvbm5lY3Rvci5jCj4gPiBAQCAtOTksNyArOTks NyBAQCBzdGF0aWMgaW50IHVkbF9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikKPiA+ICAJCQkJCXN0cnVjdCB1ZGxfZHJtX2Nvbm5lY3RvciwKPiA+ICAJCQkJCWNvbm5l Y3Rvcik7Cj4gPiAgCj4gPiAtCWRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0 eShjb25uZWN0b3IsIHVkbF9jb25uZWN0b3ItPmVkaWQpOwo+ID4gKwlkcm1fY29ubmVjdG9yX3Vw ZGF0ZV9lZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwgdWRsX2Nvbm5lY3Rvci0+ZWRpZCk7Cj4gPiAg CWlmICh1ZGxfY29ubmVjdG9yLT5lZGlkKQo+ID4gIAkJcmV0dXJuIGRybV9hZGRfZWRpZF9tb2Rl cyhjb25uZWN0b3IsIHVkbF9jb25uZWN0b3ItPmVkaWQpOwo+ID4gIAlyZXR1cm4gMDsKPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9k cm0vdmM0L3ZjNF9oZG1pLmMKPiA+IGluZGV4IGI4ZDUwNTMzZTJiYi4uOTFmMjg0ZTFiOTA4IDEw MDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfaGRtaS5jCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9oZG1pLmMKPiA+IEBAIC0yODUsNyArMjg1LDcgQEAgc3Rh dGljIGludCB2YzRfaGRtaV9jb25uZWN0b3JfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IpCj4gPiAgCQkJZHJtX3JnYl9xdWFudF9yYW5nZV9zZWxlY3RhYmxlKGVkaWQp Owo+ID4gIAl9Cj4gPiAgCj4gPiAtCWRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9w ZXJ0eShjb25uZWN0b3IsIGVkaWQpOwo+ID4gKwlkcm1fY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3By b3BlcnR5KGNvbm5lY3RvciwgZWRpZCk7Cj4gPiAgCXJldCA9IGRybV9hZGRfZWRpZF9tb2Rlcyhj b25uZWN0b3IsIGVkaWQpOwo+ID4gIAlrZnJlZShlZGlkKTsKPiA+ICAKPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0venRlL3p4X2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS96dGUvenhf aGRtaS5jCj4gPiBpbmRleCAxM2VhOTBmN2ExODUuLmQwNzNjNjczNzUwMCAxMDA2NDQKPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS96dGUvenhfaGRtaS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0venRlL3p4X2hkbWkuYwo+ID4gQEAgLTI3Miw3ICsyNzIsNyBAQCBzdGF0aWMgaW50IHp4X2hk bWlfY29ubmVjdG9yX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ ID4gIAo+ID4gIAloZG1pLT5zaW5rX2lzX2hkbWkgPSBkcm1fZGV0ZWN0X2hkbWlfbW9uaXRvcihl ZGlkKTsKPiA+ICAJaGRtaS0+c2lua19oYXNfYXVkaW8gPSBkcm1fZGV0ZWN0X21vbml0b3JfYXVk aW8oZWRpZCk7Cj4gPiAtCWRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShj b25uZWN0b3IsIGVkaWQpOwo+ID4gKwlkcm1fY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5 KGNvbm5lY3RvciwgZWRpZCk7Cj4gPiAgCXJldCA9IGRybV9hZGRfZWRpZF9tb2Rlcyhjb25uZWN0 b3IsIGVkaWQpOwo+ID4gIAlrZnJlZShlZGlkKTsKPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0venRlL3p4X3ZnYS5jIGIvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF92Z2EuYwo+ ID4gaW5kZXggM2U3ZTMzY2QzZGZhLi4zZTc4ZWUyMWI4ZDAgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0venRlL3p4X3ZnYS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0venRlL3p4 X3ZnYS5jCj4gPiBAQCAtMTA5LDcgKzEwOSw3IEBAIHN0YXRpYyBpbnQgenhfdmdhX2Nvbm5lY3Rv cl9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+ICAJICovCj4g PiAgCXp4X3dyaXRlbCh2Z2EtPm1taW8gKyBWR0FfQVVUT19ERVRFQ1RfU0VMLCBWR0FfREVURUNU X1NFTF9IQVNfREVWSUNFKTsKPiA+ICAKPiA+IC0JZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9l ZGlkX3Byb3BlcnR5KGNvbm5lY3RvciwgZWRpZCk7Cj4gPiArCWRybV9jb25uZWN0b3JfdXBkYXRl X2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLCBlZGlkKTsKPiA+ICAJcmV0ID0gZHJtX2FkZF9lZGlk X21vZGVzKGNvbm5lY3RvciwgZWRpZCk7Cj4gPiAgCWtmcmVlKGVkaWQpOwo+ID4gIAo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy92Ym94dmlkZW8vdmJveF9tb2RlLmMgYi9kcml2ZXJz L3N0YWdpbmcvdmJveHZpZGVvL3Zib3hfbW9kZS5jCj4gPiBpbmRleCA1YzdlYTIzNzg5M2UuLmE5 NDNkMmY2ODNlZCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvc3RhZ2luZy92Ym94dmlkZW8vdmJv eF9tb2RlLmMKPiA+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy92Ym94dmlkZW8vdmJveF9tb2RlLmMK PiA+IEBAIC01MDQsNyArNTA0LDcgQEAgc3RhdGljIHZvaWQgdmJveF9zZXRfZWRpZChzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBpbnQgd2lkdGgsCj4gPiAgCWZvciAoaSA9IDA7IGkg PCBFRElEX1NJWkUgLSAxOyArK2kpCj4gPiAgCQlzdW0gKz0gZWRpZFtpXTsKPiA+ICAJZWRpZFtF RElEX1NJWkUgLSAxXSA9ICgweDEwMCAtIChzdW0gJiAweEZGKSkgJiAweEZGOwo+ID4gLQlkcm1f bW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoY29ubmVjdG9yLCAoc3RydWN0IGVk aWQgKillZGlkKTsKPiA+ICsJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShjb25u ZWN0b3IsIChzdHJ1Y3QgZWRpZCAqKWVkaWQpOwo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgaW50 IHZib3hfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nv bm5lY3Rvci5oCj4gPiBpbmRleCBhMDMwMGUzNDY4Y2IuLjk4NDFkMmI2ZDNlYiAxMDA2NDQKPiA+ IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+ID4gKysrIGIvaW5jbHVkZS9kcm0v ZHJtX2Nvbm5lY3Rvci5oCj4gPiBAQCAtODkyLDcgKzg5Miw3IEBAIHN0cnVjdCBkcm1fY29ubmVj dG9yIHsKPiA+ICAJLyoqCj4gPiAgCSAqIEBlZGlkX2Jsb2JfcHRyOiBEUk0gcHJvcGVydHkgY29u dGFpbmluZyBFRElEIGlmIHByZXNlbnQuIFByb3RlY3RlZCBieQo+ID4gIAkgKiAmZHJtX21vZGVf Y29uZmlnLm11dGV4LiBUaGlzIHNob3VsZCBiZSB1cGRhdGVkIG9ubHkgYnkgY2FsbGluZwo+ID4g LQkgKiBkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoKS4KPiA+ICsJICog ZHJtX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eSgpLgo+ID4gIAkgKi8KPiA+ICAJc3Ry dWN0IGRybV9wcm9wZXJ0eV9ibG9iICplZGlkX2Jsb2JfcHRyOwo+ID4gIAo+ID4gQEAgLTExOTAs OCArMTE5MCw4IEBAIGludCBkcm1fbW9kZV9jcmVhdGVfc3VnZ2VzdGVkX29mZnNldF9wcm9wZXJ0 aWVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gIGludCBkcm1fbW9kZV9jb25uZWN0b3Jf c2V0X3BhdGhfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ICAJ CQkJCSBjb25zdCBjaGFyICpwYXRoKTsKPiA+ICBpbnQgZHJtX21vZGVfY29ubmVjdG9yX3NldF90 aWxlX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ID4gLWludCBk cm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwKPiA+IC0JCQkJCSAgICBjb25zdCBzdHJ1Y3QgZWRpZCAqZWRpZCk7Cj4g PiAraW50IGRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvciwKPiA+ICsJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBlZGlkICplZGlk KTsKPiA+ICB2b2lkIGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfbGlua19zdGF0dXNfcHJvcGVydHko c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ICAJCQkJCQkgdWludDY0X3QgbGlu a19zdGF0dXMpOwo+ID4gIGludCBkcm1fY29ubmVjdG9yX2luaXRfcGFuZWxfb3JpZW50YXRpb25f cHJvcGVydHkoCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX21vZGVzZXRfaGVscGVy X3Z0YWJsZXMuaCBiL2luY2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmgKPiA+ IGluZGV4IDNiMjg5NzczMjk3Yy4uNTg3M2QxNTgyMWNmIDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVk ZS9kcm0vZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaAo+ID4gKysrIGIvaW5jbHVkZS9kcm0v ZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaAo+ID4gQEAgLTc4NSw3ICs3ODUsNyBAQCBzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3Mgewo+ID4gIAkgKgo+ID4gIAkgKiBUaGlzIGZ1 bmN0aW9uIHNob3VsZCBmaWxsIGluIGFsbCBtb2RlcyBjdXJyZW50bHkgdmFsaWQgZm9yIHRoZSBz aW5rCj4gPiAgCSAqIGludG8gdGhlICZkcm1fY29ubmVjdG9yLnByb2JlZF9tb2RlcyBsaXN0LiBJ dCBzaG91bGQgYWxzbyB1cGRhdGUgdGhlCj4gPiAtCSAqIEVESUQgcHJvcGVydHkgYnkgY2FsbGlu ZyBkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkoKS4KPiA+ICsJICogRURJ RCBwcm9wZXJ0eSBieSBjYWxsaW5nIGRybV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHko KS4KPiA+ICAJICoKPiA+ICAJICogVGhlIHVzdWFsIHdheSB0byBpbXBsZW1lbnQgdGhpcyBpcyB0 byBjYWNoZSB0aGUgRURJRCByZXRyaWV2ZWQgaW4gdGhlCj4gPiAgCSAqIHByb2JlIGNhbGxiYWNr IHNvbWV3aGVyZSBpbiB0aGUgZHJpdmVyLXByaXZhdGUgY29ubmVjdG9yIHN0cnVjdHVyZS4KPiA+ IC0tIAo+ID4gMi4xOC4wCj4gPiAKPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4gPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPiBkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo+IAo+IC0tIAo+IFNlYW4gUGF1bCwgU29mdHdhcmUg RW5naW5lZXIsIEdvb2dsZSAvIENocm9taXVtIE9TCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2Fy ZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==