From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: Re: [PATCH] drm/i915/perf: Refactor oa object to better manage resources Date: Thu, 2 May 2019 11:26:57 +0100 Message-ID: References: <20190501165046.30375-1-umesh.nerlige.ramappa@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5E461892B9 for ; Thu, 2 May 2019 10:27:01 +0000 (UTC) In-Reply-To: <20190501165046.30375-1-umesh.nerlige.ramappa@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Umesh Nerlige Ramappa , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMDEvMDUvMjAxOSAxNzo1MCwgVW1lc2ggTmVybGlnZSBSYW1hcHBhIHdyb3RlOgo+IFRoZSBv YSBvYmplY3QgbWFuYWdlcyB0aGUgb2EgYnVmZmVyIGFuZCBtdXN0IGJlIGFsbG9jYXRlZCB3aGVu IHRoZSB1c2VyCj4gaW50ZW5kcyB0byByZWFkIHBlcmZvcm1hbmNlIGNvdW50ZXIgc25hcHNob3Rz LiBUaGlzIGNhbiBiZSBhY2hpZXZlZCBieQo+IG1ha2luZyB0aGUgb2Egb2JqZWN0IHBhcnQgb2Yg dGhlIHN0cmVhbSBvYmplY3Qgd2hpY2ggaXMgYWxsb2NhdGVkIHdoZW4gYQo+IHN0cmVhbSBpcyBv cGVuZWQgYnkgdGhlIHVzZXIuCj4KPiBBdHRyaWJ1dGVzIGluIHRoZSBvYSBvYmplY3QgdGhhdCBh cmUgZ2VuLXNwZWNpZmljIGFyZSBtb3ZlZCB0byB0aGUgcGVyZgo+IG9iamVjdCBzbyB0aGF0IHRo ZXkgY2FuIGJlIGluaXRpYWxpemVkIG9uIGRyaXZlciBsb2FkLgo+Cj4gVGhlIHNwbGl0IHByb3Zp ZGVzIGEgYmV0dGVyIHNlcGFyYXRpb24gb2YgdGhlIG9iamVjdHMgdXNlZCBpbiBwZXJmCj4gaW1w bGVtZW50YXRpb24gb2YgaTkxNSBkcml2ZXIgc28gdGhhdCByZXNvdXJjZXMgYXJlIGFsbG9jYXRl ZCBhbmQKPiBpbml0aWFsaXplZCBvbmx5IHdoZW4gbmVlZGVkLgo+Cj4gU2lnbmVkLW9mZi1ieTog VW1lc2ggTmVybGlnZSBSYW1hcHBhIDx1bWVzaC5uZXJsaWdlLnJhbWFwcGFAaW50ZWwuY29tPgoK ClRoaXMgcmVmYWN0b3JpbmcgbWFrZXMgc2Vuc2UuCgpJJ3ZlIG9wZW5lZCBhIFBSIG9uIGdwdXRv cCB0byBtYXRjaCB0aGUgY2hhbmdlcyBpbiB0aGUgZ2VuZXJhdGVkIGZpbGVzIDogCmh0dHBzOi8v Z2l0aHViLmNvbS9yaWIvZ3B1dG9wL3B1bGwvMjAxCgoKUmV2aWV3ZWQtYnk6IExpb25lbCBMYW5k d2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4KCgo+IC0tLQo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfc3NldS5jICB8ICAgMiArLQo+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3Z0L3NjaGVkdWxlci5jICB8ICAgNCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCAgICAgICB8IDIxOSArKysrKy0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X29hX2Jkdy5jICAgIHwgIDMwICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X29hX2J4dC5jICAgIHwgIDMwICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29h X2NmbGd0Mi5jIHwgIDMwICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2NmbGd0 My5jIHwgIDMwICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2Nodi5jICAgIHwg IDMwICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2NubC5jICAgIHwgIDMwICst Cj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2dsay5jICAgIHwgIDMwICstCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2hzdy5jICAgIHwgIDMwICstCj4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X29hX2ljbC5jICAgIHwgIDMwICstCj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X29hX2tibGd0Mi5jIHwgIDMwICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X29hX2tibGd0My5jIHwgIDMwICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X29hX3NrbGd0Mi5jIHwgIDMwICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3Nr bGd0My5jIHwgIDMwICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0NC5j IHwgIDMwICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYyAgICAgIHwgNTgw ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCj4gICAxOCBmaWxlcyBjaGFuZ2VkLCA2MjcgaW5z ZXJ0aW9ucygrKSwgNTk4IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX3NzZXUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X3NzZXUuYwo+IGluZGV4IDdmNDQ4ZjNiZWEwYi4uZmE3OGRmMzk1MjFhIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3NzZXUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX3NzZXUuYwo+IEBAIC0zMiw3ICszMiw3IEBAIHUzMiBpbnRlbF9z c2V1X21ha2VfcnBjcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAgIAkgKiBjYXNl cyB3aGljaCBkaXNhYmxlIHNsaWNlcyBmb3IgZnVuY3Rpb25hbCwgYXBhcnQgZm9yIHBlcmZvcm1h bmNlCj4gICAJICogcmVhc29ucy4gU28gaW4gdGhpcyBjYXNlIHdlIHNlbGVjdCBhIGtub3duIHN0 YWJsZSBzdWJzZXQuCj4gICAJICovCj4gLQlpZiAoIWk5MTUtPnBlcmYub2EuZXhjbHVzaXZlX3N0 cmVhbSkgewo+ICsJaWYgKCFpOTE1LT5wZXJmLmV4Y2x1c2l2ZV9zdHJlYW0pIHsKPiAgIAkJY3R4 X3NzZXUgPSAqcmVxX3NzZXU7Cj4gICAJfSBlbHNlIHsKPiAgIAkJY3R4X3NzZXUgPSBpbnRlbF9z c2V1X2Zyb21fZGV2aWNlX2luZm8oc3NldSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d2dC9zY2hlZHVsZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9zY2hlZHVs ZXIuYwo+IGluZGV4IDdhZTQyZjJlYmZlOC4uODc4ZTcxYTkyN2RlIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9zY2hlZHVsZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d2dC9zY2hlZHVsZXIuYwo+IEBAIC04MSw4ICs4MSw4IEBAIHN0YXRpYyB2b2lkIHNy X29hX3JlZ3Moc3RydWN0IGludGVsX3ZncHVfd29ya2xvYWQgKndvcmtsb2FkLAo+ICAgCQl1MzIg KnJlZ19zdGF0ZSwgYm9vbCBzYXZlKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHdvcmtsb2FkLT52Z3B1LT5ndnQtPmRldl9wcml2Owo+IC0JdTMyIGN0eF9v YWN0eGN0cmwgPSBkZXZfcHJpdi0+cGVyZi5vYS5jdHhfb2FjdHhjdHJsX29mZnNldDsKPiAtCXUz MiBjdHhfZmxleGV1MCA9IGRldl9wcml2LT5wZXJmLm9hLmN0eF9mbGV4ZXUwX29mZnNldDsKPiAr CXUzMiBjdHhfb2FjdHhjdHJsID0gZGV2X3ByaXYtPnBlcmYuY3R4X29hY3R4Y3RybF9vZmZzZXQ7 Cj4gKwl1MzIgY3R4X2ZsZXhldTAgPSBkZXZfcHJpdi0+cGVyZi5jdHhfZmxleGV1MF9vZmZzZXQ7 Cj4gICAJaW50IGkgPSAwOwo+ICAgCXUzMiBmbGV4X21taW9bXSA9IHsKPiAgIAkJaTkxNV9tbWlv X3JlZ19vZmZzZXQoRVVfUEVSRl9DTlRMMCksCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5k ZXggMWNlYTk4ZjhiODVjLi45NTM2NTUwZjExY2MgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiBAQCAtMTM5OSw2ICsxMzk5LDg2IEBAIHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtIHsKPiAg IAkgKiBAb2FfY29uZmlnOiBUaGUgT0EgY29uZmlndXJhdGlvbiB1c2VkIGJ5IHRoZSBzdHJlYW0u Cj4gICAJICovCj4gICAJc3RydWN0IGk5MTVfb2FfY29uZmlnICpvYV9jb25maWc7Cj4gKwo+ICsJ LyoqCj4gKwkgKiBUaGUgT0EgY29udGV4dCBzcGVjaWZpYyBpbmZvcm1hdGlvbi4KPiArCSAqLwo+ ICsJc3RydWN0IGludGVsX2NvbnRleHQgKnBpbm5lZF9jdHg7Cj4gKwl1MzIgc3BlY2lmaWNfY3R4 X2lkOwo+ICsJdTMyIHNwZWNpZmljX2N0eF9pZF9tYXNrOwo+ICsKPiArCXN0cnVjdCBocnRpbWVy IHBvbGxfY2hlY2tfdGltZXI7Cj4gKwl3YWl0X3F1ZXVlX2hlYWRfdCBwb2xsX3dxOwo+ICsJYm9v bCBwb2xsaW47Cj4gKwo+ICsJYm9vbCBwZXJpb2RpYzsKPiArCWludCBwZXJpb2RfZXhwb25lbnQ7 Cj4gKwo+ICsJLyoqCj4gKwkgKiBTdGF0ZSBvZiB0aGUgT0EgYnVmZmVyLgo+ICsJICovCj4gKwlz dHJ1Y3Qgewo+ICsJCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwo+ICsJCXU4ICp2YWRkcjsKPiArCQl1 MzIgbGFzdF9jdHhfaWQ7Cj4gKwkJaW50IGZvcm1hdDsKPiArCQlpbnQgZm9ybWF0X3NpemU7Cj4g KwkJaW50IHNpemVfZXhwb25lbnQ7Cj4gKwo+ICsJCS8qKgo+ICsJCSAqIExvY2tzIHJlYWRzIGFu ZCB3cml0ZXMgdG8gYWxsIGhlYWQvdGFpbCBzdGF0ZQo+ICsJCSAqCj4gKwkJICogQ29uc2lkZXI6 IHRoZSBoZWFkIGFuZCB0YWlsIHBvaW50ZXIgc3RhdGUgbmVlZHMgdG8gYmUgcmVhZAo+ICsJCSAq IGNvbnNpc3RlbnRseSBmcm9tIGEgaHJ0aW1lciBjYWxsYmFjayAoYXRvbWljIGNvbnRleHQpIGFu ZAo+ICsJCSAqIHJlYWQoKSBmb3AgKHVzZXIgY29udGV4dCkgd2l0aCB0YWlsIHBvaW50ZXIgdXBk YXRlcyBoYXBwZW5pbmcKPiArCQkgKiBpbiBhdG9taWMgY29udGV4dCBhbmQgaGVhZCB1cGRhdGVz IGluIHVzZXIgY29udGV4dCBhbmQgdGhlCj4gKwkJICogKHVubGlrZWx5KSBwb3NzaWJpbGl0eSBv ZiByZWFkKCkgZXJyb3JzIG5lZWRpbmcgdG8gcmVzZXQgYWxsCj4gKwkJICogaGVhZC90YWlsIHN0 YXRlLgo+ICsJCSAqCj4gKwkJICogTm90ZTogQ29udGVudGlvbi9wZXJmb3JtYW5jZSBhcmVuJ3Qg Y3VycmVudGx5IGEgc2lnbmlmaWNhbnQKPiArCQkgKiBjb25jZXJuIGhlcmUgY29uc2lkZXJpbmcg dGhlIHJlbGF0aXZlbHkgbG93IGZyZXF1ZW5jeSBvZgo+ICsJCSAqIGhydGltZXIgY2FsbGJhY2tz ICg1bXMgcGVyaW9kKSBhbmQgdGhhdCByZWFkcyB0eXBpY2FsbHkgb25seQo+ICsJCSAqIGhhcHBl biBpbiByZXNwb25zZSB0byBhIGhydGltZXIgZXZlbnQgYW5kIGxpa2VseSBjb21wbGV0ZQo+ICsJ CSAqIGJlZm9yZSB0aGUgbmV4dCBjYWxsYmFjay4KPiArCQkgKgo+ICsJCSAqIE5vdGU6IFRoaXMg bG9jayBpcyBub3QgaGVsZCAqd2hpbGUqIHJlYWRpbmcgYW5kIGNvcHlpbmcgZGF0YQo+ICsJCSAq IHRvIHVzZXJzcGFjZSBzbyB0aGUgdmFsdWUgb2YgaGVhZCBvYnNlcnZlZCBpbiBodHJpbWVyCj4g KwkJICogY2FsbGJhY2tzIHdvbid0IHJlcHJlc2VudCBhbnkgcGFydGlhbCBjb25zdW1wdGlvbiBv ZiBkYXRhLgo+ICsJCSAqLwo+ICsJCXNwaW5sb2NrX3QgcHRyX2xvY2s7Cj4gKwo+ICsJCS8qKgo+ ICsJCSAqIE9uZSAnYWdpbmcnIHRhaWwgcG9pbnRlciBhbmQgb25lICdhZ2VkJyB0YWlsIHBvaW50 ZXIgcmVhZHkgdG8KPiArCQkgKiB1c2VkIGZvciByZWFkaW5nLgo+ICsJCSAqCj4gKwkJICogSW5p dGlhbCB2YWx1ZXMgb2YgMHhmZmZmZmZmZiBhcmUgaW52YWxpZCBhbmQgaW1wbHkgdGhhdCBhbgo+ ICsJCSAqIHVwZGF0ZSBpcyByZXF1aXJlZCAoYW5kIHNob3VsZCBiZSBpZ25vcmVkIGJ5IGFuIGF0 dGVtcHRlZAo+ICsJCSAqIHJlYWQpCj4gKwkJICovCj4gKwkJc3RydWN0IHsKPiArCQkJdTMyIG9m ZnNldDsKPiArCQl9IHRhaWxzWzJdOwo+ICsKPiArCQkvKioKPiArCQkgKiBJbmRleCBmb3IgdGhl IGFnZWQgdGFpbCByZWFkeSB0byByZWFkKCkgZGF0YSB1cCB0by4KPiArCQkgKi8KPiArCQl1bnNp Z25lZCBpbnQgYWdlZF90YWlsX2lkeDsKPiArCj4gKwkJLyoqCj4gKwkJICogQSBtb25vdG9uaWMg dGltZXN0YW1wIGZvciB3aGVuIHRoZSBjdXJyZW50IGFnaW5nIHRhaWwgcG9pbnRlcgo+ICsJCSAq IHdhcyByZWFkOyB1c2VkIHRvIGRldGVybWluZSB3aGVuIGl0IGlzIG9sZCBlbm91Z2ggdG8gdHJ1 c3QuCj4gKwkJICovCj4gKwkJdTY0IGFnaW5nX3RpbWVzdGFtcDsKPiArCj4gKwkJLyoqCj4gKwkJ ICogQWx0aG91Z2ggd2UgY2FuIGFsd2F5cyByZWFkIGJhY2sgdGhlIGhlYWQgcG9pbnRlciByZWdp c3RlciwKPiArCQkgKiB3ZSBwcmVmZXIgdG8gYXZvaWQgdHJ1c3RpbmcgdGhlIEhXIHN0YXRlLCBq dXN0IHRvIGF2b2lkIGFueQo+ICsJCSAqIHJpc2sgdGhhdCBzb21lIGhhcmR3YXJlIGNvbmRpdGlv biBjb3VsZCAqIHNvbWVob3cgYnVtcCB0aGUKPiArCQkgKiBoZWFkIHBvaW50ZXIgdW5wcmVkaWN0 YWJseSBhbmQgY2F1c2UgdXMgdG8gZm9yd2FyZCB0aGUgd3JvbmcKPiArCQkgKiBPQSBidWZmZXIg ZGF0YSB0byB1c2Vyc3BhY2UuCj4gKwkJICovCj4gKwkJdTMyIGhlYWQ7Cj4gKwl9IG9hX2J1ZmZl cjsKPiAgIH07Cj4gICAKPiAgIC8qKgo+IEBAIC0xNDM2LDcgKzE1MTYsNyBAQCBzdHJ1Y3QgaTkx NV9vYV9vcHMgewo+ICAgCSAqIEBkaXNhYmxlX21ldHJpY19zZXQ6IFJlbW92ZSBzeXN0ZW0gY29u c3RyYWludHMgYXNzb2NpYXRlZCB3aXRoIHVzaW5nCj4gICAJICogdGhlIE9BIHVuaXQuCj4gICAJ ICovCj4gLQl2b2lkICgqZGlzYWJsZV9tZXRyaWNfc2V0KShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpOwo+ICsJdm9pZCAoKmRpc2FibGVfbWV0cmljX3NldCkoc3RydWN0IGk5MTVf cGVyZl9zdHJlYW0gKnN0cmVhbSk7Cj4gICAKPiAgIAkvKioKPiAgIAkgKiBAb2FfZW5hYmxlOiBF bmFibGUgcGVyaW9kaWMgc2FtcGxpbmcKPiBAQCAtMTQ2NCw3ICsxNTQ0LDcgQEAgc3RydWN0IGk5 MTVfb2Ffb3BzIHsKPiAgIAkgKiBoYW5kbGluZyB0aGUgT0EgdW5pdCB0YWlsIHBvaW50ZXIgcmFj ZSB0aGF0IGFmZmVjdHMgbXVsdGlwbGUKPiAgIAkgKiBnZW5lcmF0aW9ucy4KPiAgIAkgKi8KPiAt CXUzMiAoKm9hX2h3X3RhaWxfcmVhZCkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KTsKPiArCXUzMiAoKm9hX2h3X3RhaWxfcmVhZCkoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0 cmVhbSk7Cj4gICB9Owo+ICAgCj4gICBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgewo+IEBAIC0x ODY3LDEyMCArMTk0NywzNSBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gICAJCXN0cnVj dCBtdXRleCBsb2NrOwo+ICAgCQlzdHJ1Y3QgbGlzdF9oZWFkIHN0cmVhbXM7Cj4gICAKPiAtCQlz dHJ1Y3Qgewo+IC0JCQkvKgo+IC0JCQkgKiBUaGUgc3RyZWFtIGN1cnJlbnRseSB1c2luZyB0aGUg T0EgdW5pdC4gSWYgYWNjZXNzZWQKPiAtCQkJICogb3V0c2lkZSBhIHN5c2NhbGwgYXNzb2NpYXRl ZCB0byBpdHMgZmlsZQo+IC0JCQkgKiBkZXNjcmlwdG9yLCB5b3UgbmVlZCB0byBob2xkCj4gLQkJ CSAqIGRldl9wcml2LT5kcm0uc3RydWN0X211dGV4Lgo+IC0JCQkgKi8KPiAtCQkJc3RydWN0IGk5 MTVfcGVyZl9zdHJlYW0gKmV4Y2x1c2l2ZV9zdHJlYW07Cj4gKwkJLyoKPiArCQkgKiBUaGUgc3Ry ZWFtIGN1cnJlbnRseSB1c2luZyB0aGUgT0EgdW5pdC4gSWYgYWNjZXNzZWQKPiArCQkgKiBvdXRz aWRlIGEgc3lzY2FsbCBhc3NvY2lhdGVkIHRvIGl0cyBmaWxlCj4gKwkJICogZGVzY3JpcHRvciwg eW91IG5lZWQgdG8gaG9sZAo+ICsJCSAqIGRldl9wcml2LT5kcm0uc3RydWN0X211dGV4Lgo+ICsJ CSAqLwo+ICsJCXN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpleGNsdXNpdmVfc3RyZWFtOwo+ICsK PiArCQkvKioKPiArCQkgKiBGb3IgcmF0ZSBsaW1pdGluZyBhbnkgbm90aWZpY2F0aW9ucyBvZiBz cHVyaW91cwo+ICsJCSAqIGludmFsaWQgT0EgcmVwb3J0cwo+ICsJCSAqLwo+ICsJCXN0cnVjdCBy YXRlbGltaXRfc3RhdGUgc3B1cmlvdXNfcmVwb3J0X3JzOwo+ICAgCj4gLQkJCXN0cnVjdCBpbnRl bF9jb250ZXh0ICpwaW5uZWRfY3R4Owo+IC0JCQl1MzIgc3BlY2lmaWNfY3R4X2lkOwo+IC0JCQl1 MzIgc3BlY2lmaWNfY3R4X2lkX21hc2s7Cj4gKwkJc3RydWN0IGk5MTVfb2FfY29uZmlnIHRlc3Rf Y29uZmlnOwo+ICAgCj4gLQkJCXN0cnVjdCBocnRpbWVyIHBvbGxfY2hlY2tfdGltZXI7Cj4gLQkJ CXdhaXRfcXVldWVfaGVhZF90IHBvbGxfd3E7Cj4gLQkJCWJvb2wgcG9sbGluOwo+ICsJCXUzMiBn ZW43X2xhdGNoZWRfb2FzdGF0dXMxOwo+ICsJCXUzMiBjdHhfb2FjdHhjdHJsX29mZnNldDsKPiAr CQl1MzIgY3R4X2ZsZXhldTBfb2Zmc2V0Owo+ICAgCj4gLQkJCS8qKgo+IC0JCQkgKiBGb3IgcmF0 ZSBsaW1pdGluZyBhbnkgbm90aWZpY2F0aW9ucyBvZiBzcHVyaW91cwo+IC0JCQkgKiBpbnZhbGlk IE9BIHJlcG9ydHMKPiAtCQkJICovCj4gLQkJCXN0cnVjdCByYXRlbGltaXRfc3RhdGUgc3B1cmlv dXNfcmVwb3J0X3JzOwo+IC0KPiAtCQkJYm9vbCBwZXJpb2RpYzsKPiAtCQkJaW50IHBlcmlvZF9l eHBvbmVudDsKPiAtCj4gLQkJCXN0cnVjdCBpOTE1X29hX2NvbmZpZyB0ZXN0X2NvbmZpZzsKPiAt Cj4gLQkJCXN0cnVjdCB7Cj4gLQkJCQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKPiAtCQkJCXU4ICp2 YWRkcjsKPiAtCQkJCXUzMiBsYXN0X2N0eF9pZDsKPiAtCQkJCWludCBmb3JtYXQ7Cj4gLQkJCQlp bnQgZm9ybWF0X3NpemU7Cj4gLQo+IC0JCQkJLyoqCj4gLQkJCQkgKiBMb2NrcyByZWFkcyBhbmQg d3JpdGVzIHRvIGFsbCBoZWFkL3RhaWwgc3RhdGUKPiAtCQkJCSAqCj4gLQkJCQkgKiBDb25zaWRl cjogdGhlIGhlYWQgYW5kIHRhaWwgcG9pbnRlciBzdGF0ZQo+IC0JCQkJICogbmVlZHMgdG8gYmUg cmVhZCBjb25zaXN0ZW50bHkgZnJvbSBhIGhydGltZXIKPiAtCQkJCSAqIGNhbGxiYWNrIChhdG9t aWMgY29udGV4dCkgYW5kIHJlYWQoKSBmb3AKPiAtCQkJCSAqICh1c2VyIGNvbnRleHQpIHdpdGgg dGFpbCBwb2ludGVyIHVwZGF0ZXMKPiAtCQkJCSAqIGhhcHBlbmluZyBpbiBhdG9taWMgY29udGV4 dCBhbmQgaGVhZCB1cGRhdGVzCj4gLQkJCQkgKiBpbiB1c2VyIGNvbnRleHQgYW5kIHRoZSAodW5s aWtlbHkpCj4gLQkJCQkgKiBwb3NzaWJpbGl0eSBvZiByZWFkKCkgZXJyb3JzIG5lZWRpbmcgdG8K PiAtCQkJCSAqIHJlc2V0IGFsbCBoZWFkL3RhaWwgc3RhdGUuCj4gLQkJCQkgKgo+IC0JCQkJICog Tm90ZTogQ29udGVudGlvbiBvciBwZXJmb3JtYW5jZSBhcmVuJ3QKPiAtCQkJCSAqIGN1cnJlbnRs eSBhIHNpZ25pZmljYW50IGNvbmNlcm4gaGVyZQo+IC0JCQkJICogY29uc2lkZXJpbmcgdGhlIHJl bGF0aXZlbHkgbG93IGZyZXF1ZW5jeSBvZgo+IC0JCQkJICogaHJ0aW1lciBjYWxsYmFja3MgKDVt cyBwZXJpb2QpIGFuZCB0aGF0Cj4gLQkJCQkgKiByZWFkcyB0eXBpY2FsbHkgb25seSBoYXBwZW4g aW4gcmVzcG9uc2UgdG8gYQo+IC0JCQkJICogaHJ0aW1lciBldmVudCBhbmQgbGlrZWx5IGNvbXBs ZXRlIGJlZm9yZSB0aGUKPiAtCQkJCSAqIG5leHQgY2FsbGJhY2suCj4gLQkJCQkgKgo+IC0JCQkJ ICogTm90ZTogVGhpcyBsb2NrIGlzIG5vdCBoZWxkICp3aGlsZSogcmVhZGluZwo+IC0JCQkJICog YW5kIGNvcHlpbmcgZGF0YSB0byB1c2Vyc3BhY2Ugc28gdGhlIHZhbHVlCj4gLQkJCQkgKiBvZiBo ZWFkIG9ic2VydmVkIGluIGh0cmltZXIgY2FsbGJhY2tzIHdvbid0Cj4gLQkJCQkgKiByZXByZXNl bnQgYW55IHBhcnRpYWwgY29uc3VtcHRpb24gb2YgZGF0YS4KPiAtCQkJCSAqLwo+IC0JCQkJc3Bp bmxvY2tfdCBwdHJfbG9jazsKPiAtCj4gLQkJCQkvKioKPiAtCQkJCSAqIE9uZSAnYWdpbmcnIHRh aWwgcG9pbnRlciBhbmQgb25lICdhZ2VkJwo+IC0JCQkJICogdGFpbCBwb2ludGVyIHJlYWR5IHRv IHVzZWQgZm9yIHJlYWRpbmcuCj4gLQkJCQkgKgo+IC0JCQkJICogSW5pdGlhbCB2YWx1ZXMgb2Yg MHhmZmZmZmZmZiBhcmUgaW52YWxpZAo+IC0JCQkJICogYW5kIGltcGx5IHRoYXQgYW4gdXBkYXRl IGlzIHJlcXVpcmVkCj4gLQkJCQkgKiAoYW5kIHNob3VsZCBiZSBpZ25vcmVkIGJ5IGFuIGF0dGVt cHRlZAo+IC0JCQkJICogcmVhZCkKPiAtCQkJCSAqLwo+IC0JCQkJc3RydWN0IHsKPiAtCQkJCQl1 MzIgb2Zmc2V0Owo+IC0JCQkJfSB0YWlsc1syXTsKPiAtCj4gLQkJCQkvKioKPiAtCQkJCSAqIElu ZGV4IGZvciB0aGUgYWdlZCB0YWlsIHJlYWR5IHRvIHJlYWQoKQo+IC0JCQkJICogZGF0YSB1cCB0 by4KPiAtCQkJCSAqLwo+IC0JCQkJdW5zaWduZWQgaW50IGFnZWRfdGFpbF9pZHg7Cj4gLQo+IC0J CQkJLyoqCj4gLQkJCQkgKiBBIG1vbm90b25pYyB0aW1lc3RhbXAgZm9yIHdoZW4gdGhlIGN1cnJl bnQKPiAtCQkJCSAqIGFnaW5nIHRhaWwgcG9pbnRlciB3YXMgcmVhZDsgdXNlZCB0bwo+IC0JCQkJ ICogZGV0ZXJtaW5lIHdoZW4gaXQgaXMgb2xkIGVub3VnaCB0byB0cnVzdC4KPiAtCQkJCSAqLwo+ IC0JCQkJdTY0IGFnaW5nX3RpbWVzdGFtcDsKPiAtCj4gLQkJCQkvKioKPiAtCQkJCSAqIEFsdGhv dWdoIHdlIGNhbiBhbHdheXMgcmVhZCBiYWNrIHRoZSBoZWFkCj4gLQkJCQkgKiBwb2ludGVyIHJl Z2lzdGVyLCB3ZSBwcmVmZXIgdG8gYXZvaWQKPiAtCQkJCSAqIHRydXN0aW5nIHRoZSBIVyBzdGF0 ZSwganVzdCB0byBhdm9pZCBhbnkKPiAtCQkJCSAqIHJpc2sgdGhhdCBzb21lIGhhcmR3YXJlIGNv bmRpdGlvbiBjb3VsZAo+IC0JCQkJICogc29tZWhvdyBidW1wIHRoZSBoZWFkIHBvaW50ZXIgdW5w cmVkaWN0YWJseQo+IC0JCQkJICogYW5kIGNhdXNlIHVzIHRvIGZvcndhcmQgdGhlIHdyb25nIE9B IGJ1ZmZlcgo+IC0JCQkJICogZGF0YSB0byB1c2Vyc3BhY2UuCj4gLQkJCQkgKi8KPiAtCQkJCXUz MiBoZWFkOwo+IC0JCQl9IG9hX2J1ZmZlcjsKPiAtCj4gLQkJCXUzMiBnZW43X2xhdGNoZWRfb2Fz dGF0dXMxOwo+IC0JCQl1MzIgY3R4X29hY3R4Y3RybF9vZmZzZXQ7Cj4gLQkJCXUzMiBjdHhfZmxl eGV1MF9vZmZzZXQ7Cj4gLQo+IC0JCQkvKioKPiAtCQkJICogVGhlIFJQVF9JRC9yZWFzb24gZmll bGQgZm9yIEdlbjgrIGluY2x1ZGVzIGEgYml0Cj4gLQkJCSAqIHRvIGRldGVybWluZSBpZiB0aGUg Q1RYIElEIGluIHRoZSByZXBvcnQgaXMgdmFsaWQKPiAtCQkJICogYnV0IHRoZSBzcGVjaWZpYyBi aXQgZGlmZmVycyBiZXR3ZWVuIEdlbiA4IGFuZCA5Cj4gLQkJCSAqLwo+IC0JCQl1MzIgZ2VuOF92 YWxpZF9jdHhfYml0Owo+ICsJCS8qKgo+ICsJCSAqIFRoZSBSUFRfSUQvcmVhc29uIGZpZWxkIGZv ciBHZW44KyBpbmNsdWRlcyBhIGJpdAo+ICsJCSAqIHRvIGRldGVybWluZSBpZiB0aGUgQ1RYIElE IGluIHRoZSByZXBvcnQgaXMgdmFsaWQKPiArCQkgKiBidXQgdGhlIHNwZWNpZmljIGJpdCBkaWZm ZXJzIGJldHdlZW4gR2VuIDggYW5kIDkKPiArCQkgKi8KPiArCQl1MzIgZ2VuOF92YWxpZF9jdHhf Yml0Owo+ICAgCj4gLQkJCXN0cnVjdCBpOTE1X29hX29wcyBvcHM7Cj4gLQkJCWNvbnN0IHN0cnVj dCBpOTE1X29hX2Zvcm1hdCAqb2FfZm9ybWF0czsKPiAtCQl9IG9hOwo+ICsJCXN0cnVjdCBpOTE1 X29hX29wcyBvcHM7Cj4gKwkJY29uc3Qgc3RydWN0IGk5MTVfb2FfZm9ybWF0ICpvYV9mb3JtYXRz Owo+ICAgCX0gcGVyZjsKPiAgIAo+ICAgCS8qIEFic3RyYWN0IHRoZSBzdWJtaXNzaW9uIG1lY2hh bmlzbSAobGVnYWN5IHJpbmdidWZmZXIgb3IgZXhlY2xpc3RzKSBhd2F5ICovCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfYmR3LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X29hX2Jkdy5jCj4gaW5kZXggNGFjZGI5NDU1NWI3Li43ZDYzMmQ1MDM1MTAgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9iZHcuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfYmR3LmMKPiBAQCAtNjYsMjYgKzY2LDI2IEBAIHNo b3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0 ZSAqYXR0ciwgY2hhciAqYnVmKQo+ICAgdm9pZAo+ICAgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25m aWdfYmR3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIHsKPiAtCXN0cmxj cHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCwKPiArCXN0cmxjcHkoZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwKPiAgIAkJImQ2ZGU2ZjU1LWU1MjYtNGY3OS1hNmE2 LWQ3MzE1YzA5MDQ0ZSIsCj4gLQkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmln LnV1aWQpKTsKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmlkID0gMTsKPiArCQlz aXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCkpOwo+ICsJZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcuaWQgPSAxOwo+ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2Nv bmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKPiAtCWRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29h KTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190 ZXN0X29hOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJS QVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwo+ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50 ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKPiAt CWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZ X1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwo+ICsJZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShi X2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwo+ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwo+IC0JZGV2X3ByaXYt PnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9j b25maWdfdGVzdF9vYSk7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3Mg PSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu ZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7Cj4gICAK PiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImQ2 ZGU2ZjU1LWU1MjYtNGY3OS1hNmE2LWQ3MzE1YzA5MDQ0ZSI7Cj4gLQlkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5hdHRyczsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJp Yy5uYW1lID0gImQ2ZGU2ZjU1LWU1MjYtNGY3OS1hNmE2LWQ3MzE1YzA5MDQ0ZSI7Cj4gKwlkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5hdHRyczsKPiAgIAo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25m aWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj X2lkLmF0dHI7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKPiAgIAo+IC0JZGV2 X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJp ZCI7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0 ci5tb2RlID0gMDQ0NDsKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21l dHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Cj4gKwlkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKPiArCWRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29h X2lkOwo+ICAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2J4 dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9ieHQuYwo+IGluZGV4IGE0NDE5NWMz OTkyMy4uYTRjYzU4NGZiNWM5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfb2FfYnh0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2J4dC5jCj4g QEAgLTY0LDI2ICs2NCwyNiBAQCBzaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwg c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKPiAgIHZvaWQKPiAgIGk5 MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2J4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gICB7Cj4gLQlzdHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1 aWQsCj4gKwlzdHJsY3B5KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQsCj4gICAJCSI1 ZWU3MmY1Yy0wOTJmLTQyMWUtOGI3MC0yMjVmN2MzZTk2MTIiLAo+IC0JCXNpemVvZihkZXZfcHJp di0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkKSk7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5pZCA9IDE7Cj4gKwkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1 aWQpKTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKPiAgIAo+IC0JZGV2 X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7 Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9T SVpFKG11eF9jb25maWdfdGVzdF9vYSk7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5t dXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKPiAgIAo+ IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50 ZXJfY29uZmlnX3Rlc3Rfb2E7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2Nv dW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7Cj4g KwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9j b25maWdfdGVzdF9vYTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9y ZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKPiAgIAo+IC0J ZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdf dGVzdF9vYTsKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4g PSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOwo+ICsJZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKPiArCWRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVf Y29uZmlnX3Rlc3Rfb2EpOwo+ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5z eXNmc19tZXRyaWMubmFtZSA9ICI1ZWU3MmY1Yy0wOTJmLTQyMWUtOGI3MC0yMjVmN2MzZTk2MTIi Owo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0g ZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnM7Cj4gKwlkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICI1ZWU3MmY1Yy0wOTJmLTQyMWUtOGI3MC0y MjVmN2MzZTk2MTIiOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj LmF0dHJzID0gZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7Cj4gICAKPiAtCWRldl9w cml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLm9hLnRl c3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj X2lkLmF0dHI7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21l dHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25m aWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7Cj4gLQlkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKPiAr CWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAi aWQiOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIu bW9kZSA9IDA0NDQ7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNf aWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKPiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9vYV9jZmxndDIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf b2FfY2ZsZ3QyLmMKPiBpbmRleCA3ZjYwZDUxYjg3NjEuLjUxOTMwYzcxYmY3YyAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2NmbGd0Mi5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9jZmxndDIuYwo+IEBAIC02NSwyNiArNjUsMjYgQEAgc2hv d190ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRl ICphdHRyLCBjaGFyICpidWYpCj4gICB2b2lkCj4gICBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZp Z19jZmxndDIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+IC0Jc3Ry bGNweShkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkLAo+ICsJc3RybGNweShkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAo+ICAgCQkiNzRmYjQ5MDItZDNkMy00MjM3LTll OTAtY2JkYzY4ZDBhNDQ2IiwKPiAtCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25m aWcudXVpZCkpOwo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuaWQgPSAxOwo+ICsJ CXNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkKSk7Cj4gKwlkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy5pZCA9IDE7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOwo+IC0JZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rf b2EpOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmln X3Rlc3Rfb2E7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBB UlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwo+ IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJS QVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Cj4gKwlk ZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpF KGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRl c3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Cj4gLQlkZXZfcHJp di0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1 X2NvbmZpZ190ZXN0X29hKTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVn cyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKPiAg IAo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAi NzRmYjQ5MDItZDNkMy00MjM3LTllOTAtY2JkYzY4ZDBhNDQ2IjsKPiAtCWRldl9wcml2LT5wZXJm Lm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLm9hLnRl c3RfY29uZmlnLmF0dHJzOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0 cmljLm5hbWUgPSAiNzRmYjQ5MDItZDNkMy00MjM3LTllOTAtY2JkYzY4ZDBhNDQ2IjsKPiArCWRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLmF0dHJzOwo+ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2Nv bmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRy aWNfaWQuYXR0cjsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOwo+ICAgCj4gLQlk ZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0g ImlkIjsKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5h dHRyLm1vZGUgPSAwNDQ0Owo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNf bWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKPiArCWRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0Owo+ICsJZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rf b2FfaWQ7Cj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ff Y2ZsZ3QzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2NmbGd0My5jCj4gaW5kZXgg YTkyYzM4ZTNhMGNlLi5kZTYzMGI1M2QzNjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9vYV9jZmxndDMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf b2FfY2ZsZ3QzLmMKPiBAQCAtNjUsMjYgKzY1LDI2IEBAIHNob3dfdGVzdF9vYV9pZChzdHJ1Y3Qg ZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQo+ ICAgdm9pZAo+ICAgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfY2ZsZ3QzKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIHsKPiAtCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcudXVpZCwKPiArCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25m aWcudXVpZCwKPiAgIAkJIjU3N2U4ZTJjLTNmYTAtNDg3NS04NzQzLTM1MzhkNTg1ZTNiMCIsCj4g LQkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQpKTsKPiAtCWRldl9w cml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmlkID0gMTsKPiArCQlzaXplb2YoZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcudXVpZCkpOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQg PSAxOwo+ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11 eF9jb25maWdfdGVzdF9vYTsKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9y ZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKPiArCWRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOwo+ICsJZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmln X3Rlc3Rfb2EpOwo+ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50 ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKPiAtCWRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2Nv bmZpZ190ZXN0X29hKTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9y ZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rl c3Rfb2EpOwo+ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3Mg PSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25m aWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7Cj4g KwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190 ZXN0X29hOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFS UkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJm Lm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjU3N2U4ZTJjLTNmYTAtNDg3NS04 NzQzLTM1MzhkNTg1ZTNiMCI7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNm c19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyczsKPiAr CWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjU3N2U4ZTJj LTNmYTAtNDg3NS04NzQzLTM1MzhkNTg1ZTNiMCI7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRy czsKPiAgIAo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2 X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7Cj4gKwlkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKPiAgIAo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVz dF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Cj4gLQlkZXZfcHJpdi0+ cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKPiAt CWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hv d190ZXN0X29hX2lkOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj X2lkLmF0dHIubmFtZSA9ICJpZCI7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNm c19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOwo+ICAgfQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2Nodi5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9vYV9jaHYuYwo+IGluZGV4IDcxZWM4ODlhMDExNC4uN2Q3ZjMzYzQ0Njhm IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfY2h2LmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2Nodi5jCj4gQEAgLTY1LDI2ICs2NSwyNiBA QCBzaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRy aWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKPiAgIHZvaWQKPiAgIGk5MTVfcGVyZl9sb2FkX3Rlc3Rf Y29uZmlnX2NodihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICB7Cj4gLQlz dHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQsCj4gKwlzdHJsY3B5KGRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQsCj4gICAJCSI0YTUzNGIwNy1jYmEzLTQxNGQt OGQ2MC04NzQ4MzBlODgzYWEiLAo+IC0JCXNpemVvZihkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2Nv bmZpZy51dWlkKSk7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5pZCA9IDE7Cj4g KwkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKPiArCWRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKPiAgIAo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVz dF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Cj4gLQlkZXZfcHJpdi0+cGVy Zi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVz dF9vYSk7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25m aWdfdGVzdF9vYTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9 IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKPiAgIAo+IC0JZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7 Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBB UlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7Cj4gKwlkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKPiAr CWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJ WkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKPiAgIAo+IC0JZGV2X3ByaXYtPnBlcmYub2Eu dGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKPiAtCWRldl9w cml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhf ZXVfY29uZmlnX3Rlc3Rfb2EpOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9y ZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOwo+ ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9 ICI0YTUzNGIwNy1jYmEzLTQxNGQtOGQ2MC04NzQ4MzBlODgzYWEiOwo+IC0JZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYub2Eu dGVzdF9jb25maWcuYXR0cnM7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19t ZXRyaWMubmFtZSA9ICI0YTUzNGIwNy1jYmEzLTQxNGQtOGQ2MC04NzQ4MzBlODgzYWEiOwo+ICsJ ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcuYXR0cnM7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21l dHJpY19pZC5hdHRyOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0gPSAm ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7Cj4gICAKPiAt CWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUg PSAiaWQiOwo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lk LmF0dHIubW9kZSA9IDA0NDQ7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNm c19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKPiArCWRldl9wcml2LT5wZXJmLnRl c3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwo+ICsJZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7Cj4gKwlk ZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVz dF9vYV9pZDsKPiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9v YV9jbmwuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfY25sLmMKPiBpbmRleCA1YzIz ZDg4M2Q2YzkuLjRhZTg2YTg5ODNjMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X29hX2NubC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9jbmwu Ywo+IEBAIC03NywyNiArNzcsMjYgQEAgc2hvd190ZXN0X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtk ZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCj4gICB2b2lkCj4g ICBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19jbmwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+ICAgewo+IC0Jc3RybGNweShkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZp Zy51dWlkLAo+ICsJc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAo+ICAg CQkiZGI0MWVkZDQtZDhlNy00NzMwLWFkMTEtYjlhMmQ2ODMzNTAzIiwKPiAtCQlzaXplb2YoZGV2 X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCkpOwo+IC0JZGV2X3ByaXYtPnBlcmYub2Eu dGVzdF9jb25maWcuaWQgPSAxOwo+ICsJCXNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy51dWlkKSk7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5pZCA9IDE7Cj4gICAKPiAt CWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0 X29hOwo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJS QVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25m aWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7Cj4g ICAKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9j b3VudGVyX2NvbmZpZ190ZXN0X29hOwo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcu Yl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2Ep Owo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50 ZXJfY29uZmlnX3Rlc3Rfb2E7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50 ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7Cj4gICAK PiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29u ZmlnX3Rlc3Rfb2E7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3Nf bGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKPiArCWRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Cj4gKwlk ZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4 X2V1X2NvbmZpZ190ZXN0X29hKTsKPiAgIAo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25m aWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiZGI0MWVkZDQtZDhlNy00NzMwLWFkMTEtYjlhMmQ2ODMz NTAzIjsKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRy cyA9IGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzOwo+ICsJZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiZGI0MWVkZDQtZDhlNy00NzMwLWFk MTEtYjlhMmQ2ODMzNTAzIjsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21l dHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzOwo+ICAgCj4gLQlk ZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKPiArCWRldl9wcml2LT5wZXJmLnRl c3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21l dHJpY19pZC5hdHRyOwo+ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNm c19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0Owo+IC0JZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7 Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1l ID0gImlkIjsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5h dHRyLm1vZGUgPSAwNDQ0Owo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0 cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7Cj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfZ2xrLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X29hX2dsay5jCj4gaW5kZXggNGJkZGE2NmRmN2QyLi5kOGQ2MzRkY2ExNTggMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9nbGsuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfb2FfZ2xrLmMKPiBAQCAtNjQsMjYgKzY0LDI2IEBAIHNob3dfdGVzdF9v YV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwg Y2hhciAqYnVmKQo+ICAgdm9pZAo+ICAgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfZ2xrKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIHsKPiAtCXN0cmxjcHkoZGV2X3By aXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCwKPiArCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcudXVpZCwKPiAgIAkJImRkM2ZkNzg5LWU3ODMtNDIwNC04Y2QwLWI2NzFiYmNj YjBjZiIsCj4gLQkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQpKTsK PiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmlkID0gMTsKPiArCQlzaXplb2YoZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCkpOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcuaWQgPSAxOwo+ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhf cmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKPiArCWRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOwo+ ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRSht dXhfY29uZmlnX3Rlc3Rfb2EpOwo+ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZp Zy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKPiAtCWRldl9wcml2 LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9j b3VudGVyX2NvbmZpZ190ZXN0X29hKTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJf Y291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwo+ICsJZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJf Y29uZmlnX3Rlc3Rfb2EpOwo+ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5m bGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwo+IC0JZGV2X3ByaXYtPnBlcmYub2Eu dGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVz dF9vYSk7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1 X2NvbmZpZ190ZXN0X29hOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdz X2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7Cj4gICAKPiAtCWRldl9w cml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImRkM2ZkNzg5LWU3 ODMtNDIwNC04Y2QwLWI2NzFiYmNjYjBjZiI7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2Nv bmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5h dHRyczsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0g ImRkM2ZkNzg5LWU3ODMtNDIwNC04Y2QwLWI2NzFiYmNjYjBjZiI7Cj4gKwlkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5hdHRyczsKPiAgIAo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnNb MF0gPSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7 Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKPiAgIAo+IC0JZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Cj4gLQlk ZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0g MDQ0NDsKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5z aG93ID0gc2hvd190ZXN0X29hX2lkOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lz ZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKPiArCWRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOwo+ICAg fQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2hzdy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9oc3cuYwo+IGluZGV4IGNjNjUyNmZkZDJiZC4uNzAz MjI3Nzg3NmRiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfaHN3 LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2hzdy5jCj4gQEAgLTk0LDI2 ICs5NCwyNiBAQCBzaG93X3JlbmRlcl9iYXNpY19pZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1 Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYgo+ICAgdm9pZAo+ICAgaTkxNV9wZXJm X2xvYWRfdGVzdF9jb25maWdfaHN3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiAgIHsKPiAtCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCwKPiAr CXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwKPiAgIAkJIjQwM2Q4ODMy LTFhMjctNGFhNi1hNjRlLWY1Mzg5Y2U3YjIxMiIsCj4gLQkJc2l6ZW9mKGRldl9wcml2LT5wZXJm Lm9hLnRlc3RfY29uZmlnLnV1aWQpKTsKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmln LmlkID0gMTsKPiArCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCkpOwo+ ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOwo+ICAgCj4gLQlkZXZfcHJpdi0+ cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfcmVuZGVyX2Jhc2ljOwo+ IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0la RShtdXhfY29uZmlnX3JlbmRlcl9iYXNpYyk7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy5tdXhfcmVncyA9IG11eF9jb25maWdfcmVuZGVyX2Jhc2ljOwo+ICsJZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3JlbmRlcl9i YXNpYyk7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmJfY291bnRlcl9y ZWdzID0gYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJfYmFzaWM7Cj4gLQlkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9j b25maWdfcmVuZGVyX2Jhc2ljKTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291 bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJfYmFzaWM7Cj4gKwlkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRl cl9jb25maWdfcmVuZGVyX2Jhc2ljKTsKPiAgIAo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9j b25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfcmVuZGVyX2Jhc2ljOwo+IC0JZGV2X3By aXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9l dV9jb25maWdfcmVuZGVyX2Jhc2ljKTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZs ZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3JlbmRlcl9iYXNpYzsKPiArCWRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Jl bmRlcl9iYXNpYyk7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2Zz X21ldHJpYy5uYW1lID0gIjQwM2Q4ODMyLTFhMjctNGFhNi1hNjRlLWY1Mzg5Y2U3YjIxMiI7Cj4g LQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZf cHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyczsKPiArCWRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjQwM2Q4ODMyLTFhMjctNGFhNi1hNjRlLWY1Mzg5 Y2U3YjIxMiI7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0 cnMgPSBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyczsKPiAgIAo+IC0JZGV2X3ByaXYt PnBlcmYub2EudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9j b25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQu YXR0cjsKPiAgIAo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj X2lkLmF0dHIubmFtZSA9ICJpZCI7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5z eXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRl c3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd19yZW5kZXJfYmFzaWNfaWQ7Cj4g KwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0g ImlkIjsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRy Lm1vZGUgPSAwNDQ0Owo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj X2lkLnNob3cgPSBzaG93X3JlbmRlcl9iYXNpY19pZDsKPiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9vYV9pY2wuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfb2FfaWNsLmMKPiBpbmRleCBiYWE1MTQyN2E1NDMuLmJjYTIzZjE1MDYyNiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2ljbC5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9vYV9pY2wuYwo+IEBAIC03NCwyNiArNzQsMjYgQEAgc2hvd190ZXN0 X29hX2lkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRy LCBjaGFyICpidWYpCj4gICB2b2lkCj4gICBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19pY2wo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+IC0Jc3RybGNweShkZXZf cHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkLAo+ICsJc3RybGNweShkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy51dWlkLAo+ICAgCQkiYTI5MTY2NWUtMjQ0Yi00Yjc2LTliOWEtMDFkZTlk M2M4MDY4IiwKPiAtCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCkp Owo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuaWQgPSAxOwo+ICsJCXNpemVvZihk ZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkKSk7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5pZCA9IDE7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11 eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOwo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9j b25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwo+ICsJ ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7 Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpF KG11eF9jb25maWdfdGVzdF9vYSk7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwo+IC0JZGV2X3By aXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShi X2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu Yl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Cj4gKwlkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRl cl9jb25maWdfdGVzdF9vYSk7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmln LmZsZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Cj4gLQlkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190 ZXN0X29hKTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhf ZXVfY29uZmlnX3Rlc3Rfb2E7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3Jl Z3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKPiAgIAo+IC0JZGV2 X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiYTI5MTY2NWUt MjQ0Yi00Yjc2LTliOWEtMDFkZTlkM2M4MDY4IjsKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmln LmF0dHJzOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUg PSAiYTI5MTY2NWUtMjQ0Yi00Yjc2LTliOWEtMDFkZTlkM2M4MDY4IjsKPiArCWRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLmF0dHJzOwo+ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRy c1swXSA9ICZkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0 cjsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOwo+ICAgCj4gLQlkZXZfcHJpdi0+ cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKPiAt CWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUg PSAwNDQ0Owo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lk LnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5z eXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKPiArCWRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0Owo+ICsJZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7Cj4g ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffa2JsZ3QyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2tibGd0Mi5jCj4gaW5kZXggMTY4ZTQ5YWIw ZDRkLi4yZTFkMTJmNzhjOWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9vYV9rYmxndDIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffa2JsZ3Qy LmMKPiBAQCAtNjUsMjYgKzY1LDI2IEBAIHNob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICpr ZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQo+ICAgdm9pZAo+ ICAgaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfa2JsZ3QyKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiAgIHsKPiAtCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9j b25maWcudXVpZCwKPiArCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwK PiAgIAkJImJhYTNjN2U0LTUyYjYtNGI4NS04MDFlLTQ2NWE5NGI3NDZkZCIsCj4gLQkJc2l6ZW9m KGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQpKTsKPiAtCWRldl9wcml2LT5wZXJm Lm9hLnRlc3RfY29uZmlnLmlkID0gMTsKPiArCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcudXVpZCkpOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOwo+ICAg Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdf dGVzdF9vYTsKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9 IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOwo+ICsJZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2Ep Owo+ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9 IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0 X29hKTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9j b3VudGVyX2NvbmZpZ190ZXN0X29hOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9j b3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwo+ ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1 X2NvbmZpZ190ZXN0X29hOwo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9y ZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7Cj4gKwlkZXZfcHJp di0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwo+ ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUo ZmxleF9ldV9jb25maWdfdGVzdF9vYSk7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImJhYTNjN2U0LTUyYjYtNGI4NS04MDFlLTQ2NWE5 NGI3NDZkZCI7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMu YXR0cnMgPSBkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyczsKPiArCWRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gImJhYTNjN2U0LTUyYjYtNGI4 NS04MDFlLTQ2NWE5NGI3NDZkZCI7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNm c19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyczsKPiAgIAo+ IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7Cj4gKwlkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNm c19tZXRyaWNfaWQuYXR0cjsKPiAgIAo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcu c3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50 ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKPiAtCWRldl9wcml2 LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29h X2lkOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIu bmFtZSA9ICJpZCI7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNf aWQuYXR0ci5tb2RlID0gMDQ0NDsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2Zz X21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOwo+ICAgfQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2tibGd0My5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9vYV9rYmxndDMuYwo+IGluZGV4IDZmZmE1NTNjMzg4ZS4uMDdhODU2N2JkNWJlIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffa2JsZ3QzLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2tibGd0My5jCj4gQEAgLTY1LDI2ICs2NSwy NiBAQCBzaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9h dHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKPiAgIHZvaWQKPiAgIGk5MTVfcGVyZl9sb2FkX3Rl c3RfY29uZmlnX2tibGd0MyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICB7 Cj4gLQlzdHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQsCj4gKwlzdHJs Y3B5KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQsCj4gICAJCSJmMTc5MmYzMi02ZGIy LTRiNTAtYjRiMi01NTcxMjhmMTY4OGQiLAo+IC0JCXNpemVvZihkZXZfcHJpdi0+cGVyZi5vYS50 ZXN0X2NvbmZpZy51dWlkKSk7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5pZCA9 IDE7Cj4gKwkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKPiArCWRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKPiAgIAo+IC0JZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Cj4gLQlkZXZfcHJp di0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25m aWdfdGVzdF9vYSk7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11 eF9jb25maWdfdGVzdF9vYTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdz X2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKPiAgIAo+IC0JZGV2X3ByaXYt PnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rl c3Rfb2E7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19s ZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7Cj4gKwlkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9v YTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFS UkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKPiAgIAo+IC0JZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKPiAt CWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpF KGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu ZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKPiArCWRldl9wcml2LT5wZXJmLnRl c3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rf b2EpOwo+ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMu bmFtZSA9ICJmMTc5MmYzMi02ZGIyLTRiNTAtYjRiMi01NTcxMjhmMTY4OGQiOwo+IC0JZGV2X3By aXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuYXR0cnM7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5z eXNmc19tZXRyaWMubmFtZSA9ICJmMTc5MmYzMi02ZGIyLTRiNTAtYjRiMi01NTcxMjhmMTY4OGQi Owo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5 c2ZzX21ldHJpY19pZC5hdHRyOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnNb MF0gPSAmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7Cj4g ICAKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRy Lm5hbWUgPSAiaWQiOwo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0 cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZp Zy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKPiArCWRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwo+ICsJZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7 Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNo b3dfdGVzdF9vYV9pZDsKPiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9vYV9za2xndDIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffc2tsZ3QyLmMK PiBpbmRleCA3Y2U2ZWU4NTFkNDMuLmZhNDYzYTkyZjViYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0Mi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9vYV9za2xndDIuYwo+IEBAIC02NCwyNiArNjQsMjYgQEAgc2hvd190ZXN0X29hX2lk KHN0cnVjdCBkZXZpY2UgKmtkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFy ICpidWYpCj4gICB2b2lkCj4gICBpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19za2xndDIoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+IC0Jc3RybGNweShkZXZfcHJp di0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkLAo+ICsJc3RybGNweShkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy51dWlkLAo+ICAgCQkiMTY1MTk0OWYtMGFjMC00Y2IxLWEwNmYtZGFmZDc0YTQw N2QxIiwKPiAtCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcudXVpZCkpOwo+ IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuaWQgPSAxOwo+ICsJCXNpemVvZihkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkKSk7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5pZCA9IDE7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9y ZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOwo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25m aWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwo+ICsJZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Cj4g KwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11 eF9jb25maWdfdGVzdF9vYSk7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmln LmJfY291bnRlcl9yZWdzID0gYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hOwo+IC0JZGV2X3ByaXYt PnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2Nv dW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9j b3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7Cj4gKwlkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9j b25maWdfdGVzdF9vYSk7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZs ZXhfcmVncyA9IGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2E7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50 ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0 X29hKTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVncyA9IGZsZXhfZXVf Y29uZmlnX3Rlc3Rfb2E7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3Nf bGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKPiAgIAo+IC0JZGV2X3By aXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiMTY1MTk0OWYtMGFj MC00Y2IxLWEwNmYtZGFmZDc0YTQwN2QxIjsKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0 dHJzOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAi MTY1MTk0OWYtMGFjMC00Y2IxLWEwNmYtZGFmZDc0YTQwN2QxIjsKPiArCWRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLmF0dHJzOwo+ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyc1sw XSA9ICZkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsK PiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyOwo+ICAgCj4gLQlkZXZfcHJpdi0+cGVy Zi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKPiAtCWRl dl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAw NDQ0Owo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNo b3cgPSBzaG93X3Rlc3Rfb2FfaWQ7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNm c19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0Owo+ICsJZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNob3cgPSBzaG93X3Rlc3Rfb2FfaWQ7Cj4gICB9 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffc2tsZ3QzLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0My5jCj4gaW5kZXggMDg2Y2EyNjMxZTFj Li45Yzk0OTdkN2E5ZDUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9v YV9za2xndDMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffc2tsZ3QzLmMK PiBAQCAtNjUsMjYgKzY1LDI2IEBAIHNob3dfdGVzdF9vYV9pZChzdHJ1Y3QgZGV2aWNlICprZGV2 LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQo+ICAgdm9pZAo+ICAg aTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfc2tsZ3QzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPiAgIHsKPiAtCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25m aWcudXVpZCwKPiArCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwKPiAg IAkJIjJiOTg1ODAzLWQzYzktNDYyOS04YTRmLTYzNGJmZWNiYTBlOCIsCj4gLQkJc2l6ZW9mKGRl dl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQpKTsKPiAtCWRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLmlkID0gMTsKPiArCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25m aWcudXVpZCkpOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOwo+ICAgCj4g LQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVz dF9vYTsKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFS UkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcubXV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShtdXhfY29uZmlnX3Rlc3Rfb2EpOwo+ ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJf Y291bnRlcl9jb25maWdfdGVzdF9vYTsKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmln LmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29h KTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzID0gYl9jb3Vu dGVyX2NvbmZpZ190ZXN0X29hOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3Vu dGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwo+ICAg Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2Nv bmZpZ190ZXN0X29hOwo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdz X2xlbiA9IEFSUkFZX1NJWkUoZmxleF9ldV9jb25maWdfdGVzdF9vYSk7Cj4gKwlkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOwo+ICsJ ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoZmxl eF9ldV9jb25maWdfdGVzdF9vYSk7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjJiOTg1ODAzLWQzYzktNDYyOS04YTRmLTYzNGJmZWNi YTBlOCI7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0 cnMgPSBkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyczsKPiArCWRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjJiOTg1ODAzLWQzYzktNDYyOS04 YTRmLTYzNGJmZWNiYTBlOCI7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19t ZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5hdHRyczsKPiAgIAo+IC0J ZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7Cj4gKwlkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19t ZXRyaWNfaWQuYXR0cjsKPiAgIAo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lz ZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJpZCI7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKPiAtCWRldl9wcml2LT5w ZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lk Owo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFt ZSA9ICJpZCI7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQu YXR0ci5tb2RlID0gMDQ0NDsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21l dHJpY19pZC5zaG93ID0gc2hvd190ZXN0X29hX2lkOwo+ICAgfQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0NC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9vYV9za2xndDQuYwo+IGluZGV4IGIyOTFhNmViOGE4Ny4uNjVlYmM2YjhkZDcwIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffc2tsZ3Q0LmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0NC5jCj4gQEAgLTY1LDI2ICs2NSwyNiBA QCBzaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRy aWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKPiAgIHZvaWQKPiAgIGk5MTVfcGVyZl9sb2FkX3Rlc3Rf Y29uZmlnX3NrbGd0NChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICB7Cj4g LQlzdHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQsCj4gKwlzdHJsY3B5 KGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQsCj4gICAJCSI4ODJmYTQzMy0xZjRhLTRh NjctYTk2Mi1jNzQxODg4ZmU1ZjUiLAo+IC0JCXNpemVvZihkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy51dWlkKSk7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5pZCA9IDE7 Cj4gKwkJc2l6ZW9mKGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnV1aWQpKTsKPiArCWRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKPiAgIAo+IC0JZGV2X3ByaXYtPnBlcmYub2Eu dGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3Rlc3Rfb2E7Cj4gLQlkZXZfcHJpdi0+ cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdf dGVzdF9vYSk7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9j b25maWdfdGVzdF9vYTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLm11eF9yZWdzX2xl biA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKPiAgIAo+IC0JZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rf b2E7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4g PSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7Cj4gKwlkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsK PiArCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJfY291bnRlcl9yZWdzX2xlbiA9IEFSUkFZ X1NJWkUoYl9jb3VudGVyX2NvbmZpZ190ZXN0X29hKTsKPiAgIAo+IC0JZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKPiAtCWRl dl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZs ZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxl eF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKPiArCWRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2Ep Owo+ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFt ZSA9ICI4ODJmYTQzMy0xZjRhLTRhNjctYTk2Mi1jNzQxODg4ZmU1ZjUiOwo+IC0JZGV2X3ByaXYt PnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcuYXR0cnM7Cj4gKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNm c19tZXRyaWMubmFtZSA9ICI4ODJmYTQzMy0xZjRhLTRhNjctYTk2Mi1jNzQxODg4ZmU1ZjUiOwo+ ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJmLm9hLnRl c3RfY29uZmlnLmF0dHJzWzBdID0gJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2Zz X21ldHJpY19pZC5hdHRyOwo+ICsJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0g PSAmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7Cj4gICAK PiAtCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5h bWUgPSAiaWQiOwo+IC0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj X2lkLmF0dHIubW9kZSA9IDA0NDQ7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5z eXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKPiArCWRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwo+ICsJZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9kZSA9IDA0NDQ7Cj4g KwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3df dGVzdF9vYV9pZDsKPiAgIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9wZXJmLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYwo+IGluZGV4IGM0OTk1 ZDVhMTZkMi4uYmUzZjY4NDYxYzUwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcGVyZi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMKPiBA QCAtMzY0LDYgKzM2NCw4IEBAIHN0cnVjdCBwZXJmX29wZW5fcHJvcGVydGllcyB7Cj4gICAJaW50 IG9hX3BlcmlvZF9leHBvbmVudDsKPiAgIH07Cj4gICAKPiArc3RhdGljIGVudW0gaHJ0aW1lcl9y ZXN0YXJ0IG9hX3BvbGxfY2hlY2tfdGltZXJfY2Ioc3RydWN0IGhydGltZXIgKmhydGltZXIpOwo+ ICsKPiAgIHN0YXRpYyB2b2lkIGZyZWVfb2FfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiAgIAkJCSAgIHN0cnVjdCBpOTE1X29hX2NvbmZpZyAqb2FfY29uZmlnKQo+ ICAgewo+IEBAIC0zOTIsOCArMzk0LDggQEAgc3RhdGljIGludCBnZXRfb2FfY29uZmlnKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIAlpbnQgcmV0Owo+ICAgCj4gICAJaWYg KG1ldHJpY3Nfc2V0ID09IDEpIHsKPiAtCQkqb3V0X2NvbmZpZyA9ICZkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZzsKPiAtCQlhdG9taWNfaW5jKCZkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2Nv bmZpZy5yZWZfY291bnQpOwo+ICsJCSpvdXRfY29uZmlnID0gJmRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnOwo+ICsJCWF0b21pY19pbmMoJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnJlZl9j b3VudCk7Cj4gICAJCXJldHVybiAwOwo+ICAgCX0KPiAgIAo+IEBAIC00MTIsMTMgKzQxNCwxNiBA QCBzdGF0aWMgaW50IGdldF9vYV9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+ICAgCXJldHVybiByZXQ7Cj4gICB9Cj4gICAKPiAtc3RhdGljIHUzMiBnZW44X29hX2h3 X3RhaWxfcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3N0YXRpYyB1 MzIgZ2VuOF9vYV9od190YWlsX3JlYWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkK PiAgIHsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2 X3ByaXY7Cj4gKwo+ICAgCXJldHVybiBJOTE1X1JFQUQoR0VOOF9PQVRBSUxQVFIpICYgR0VOOF9P QVRBSUxQVFJfTUFTSzsKPiAgIH0KPiAgIAo+IC1zdGF0aWMgdTMyIGdlbjdfb2FfaHdfdGFpbF9y ZWFkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiArc3RhdGljIHUzMiBnZW43 X29hX2h3X3RhaWxfcmVhZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQo+ICAgewo+ ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsK PiAgIAl1MzIgb2FzdGF0dXMxID0gSTkxNV9SRUFEKEdFTjdfT0FTVEFUVVMxKTsKPiAgIAo+ICAg CXJldHVybiBvYXN0YXR1czEgJiBHRU43X09BU1RBVFVTMV9UQUlMX01BU0s7Cj4gQEAgLTQyNiw3 ICs0MzEsNyBAQCBzdGF0aWMgdTMyIGdlbjdfb2FfaHdfdGFpbF9yZWFkKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAo+ICAgLyoqCj4gICAgKiBvYV9idWZmZXJfY2hlY2tf dW5sb2NrZWQgLSBjaGVjayBmb3IgZGF0YSBhbmQgdXBkYXRlIHRhaWwgcHRyIHN0YXRlCj4gLSAq IEBkZXZfcHJpdjogaTkxNSBkZXZpY2UgaW5zdGFuY2UKPiArICogQHN0cmVhbTogaTkxNSBzdHJl YW0gaW5zdGFuY2UKPiAgICAqCj4gICAgKiBUaGlzIGlzIGVpdGhlciBjYWxsZWQgdmlhIGZvcHMg KGZvciBibG9ja2luZyByZWFkcyBpbiB1c2VyIGN0eCkgb3IgdGhlIHBvbGwKPiAgICAqIGNoZWNr IGhydGltZXIgKGF0b21pYyBjdHgpIHRvIGNoZWNrIHRoZSBPQSBidWZmZXIgdGFpbCBwb2ludGVy IGFuZCBjaGVjawo+IEBAIC00NDgsOSArNDUzLDEwIEBAIHN0YXRpYyB1MzIgZ2VuN19vYV9od190 YWlsX3JlYWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgICoKPiAgICAq IFJldHVybnM6ICV0cnVlIGlmIHRoZSBPQSBidWZmZXIgY29udGFpbnMgZGF0YSwgZWxzZSAlZmFs c2UKPiAgICAqLwo+IC1zdGF0aWMgYm9vbCBvYV9idWZmZXJfY2hlY2tfdW5sb2NrZWQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICtzdGF0aWMgYm9vbCBvYV9idWZmZXJfY2hl Y2tfdW5sb2NrZWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKPiAgIHsKPiAtCWlu dCByZXBvcnRfc2l6ZSA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5mb3JtYXRfc2l6ZTsK PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3ByaXY7 Cj4gKwlpbnQgcmVwb3J0X3NpemUgPSBzdHJlYW0tPm9hX2J1ZmZlci5mb3JtYXRfc2l6ZTsKPiAg IAl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICAgCXVuc2lnbmVkIGludCBhZ2VkX2lkeDsKPiAgIAl1 MzIgaGVhZCwgaHdfdGFpbCwgYWdlZF90YWlsLCBhZ2luZ190YWlsOwo+IEBAIC00NjAsMTkgKzQ2 NiwxOSBAQCBzdGF0aWMgYm9vbCBvYV9idWZmZXJfY2hlY2tfdW5sb2NrZWQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCSAqIGNvdWxkIHJlc3VsdCBpbiBhbiBPQSBidWZm ZXIgcmVzZXQgd2hpY2ggbWlnaHQgcmVzZXQgdGhlIGhlYWQsCj4gICAJICogdGFpbHNbXSBhbmQg YWdlZF90YWlsIHN0YXRlLgo+ICAgCSAqLwo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2 LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOwo+ICsJc3Bpbl9sb2NrX2lycXNh dmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7Cj4gICAKPiAgIAkvKiBOQjog VGhlIGhlYWQgd2Ugb2JzZXJ2ZSBoZXJlIG1pZ2h0IGVmZmVjdGl2ZWx5IGJlIGEgbGl0dGxlIG91 dCBvZgo+ICAgCSAqIGRhdGUgKGJldHdlZW4gaGVhZCBhbmQgdGFpbHNbYWdlZF9pZHhdLm9mZnNl dCBpZiB0aGVyZSBpcyBjdXJyZW50bHkKPiAgIAkgKiBhIHJlYWQoKSBpbiBwcm9ncmVzcy4KPiAg IAkgKi8KPiAtCWhlYWQgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuaGVhZDsKPiArCWhl YWQgPSBzdHJlYW0tPm9hX2J1ZmZlci5oZWFkOwo+ICAgCj4gLQlhZ2VkX2lkeCA9IGRldl9wcml2 LT5wZXJmLm9hLm9hX2J1ZmZlci5hZ2VkX3RhaWxfaWR4Owo+IC0JYWdlZF90YWlsID0gZGV2X3By aXYtPnBlcmYub2Eub2FfYnVmZmVyLnRhaWxzW2FnZWRfaWR4XS5vZmZzZXQ7Cj4gLQlhZ2luZ190 YWlsID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnRhaWxzWyFhZ2VkX2lkeF0ub2Zmc2V0 Owo+ICsJYWdlZF9pZHggPSBzdHJlYW0tPm9hX2J1ZmZlci5hZ2VkX3RhaWxfaWR4Owo+ICsJYWdl ZF90YWlsID0gc3RyZWFtLT5vYV9idWZmZXIudGFpbHNbYWdlZF9pZHhdLm9mZnNldDsKPiArCWFn aW5nX3RhaWwgPSBzdHJlYW0tPm9hX2J1ZmZlci50YWlsc1shYWdlZF9pZHhdLm9mZnNldDsKPiAg IAo+IC0JaHdfdGFpbCA9IGRldl9wcml2LT5wZXJmLm9hLm9wcy5vYV9od190YWlsX3JlYWQoZGV2 X3ByaXYpOwo+ICsJaHdfdGFpbCA9IGRldl9wcml2LT5wZXJmLm9wcy5vYV9od190YWlsX3JlYWQo c3RyZWFtKTsKPiAgIAo+ICAgCS8qIFRoZSB0YWlsIHBvaW50ZXIgaW5jcmVhc2VzIGluIDY0IGJ5 dGUgaW5jcmVtZW50cywKPiAgIAkgKiBub3QgaW4gcmVwb3J0X3NpemUgc3RlcHMuLi4KPiBAQCAt NDkyLDE2ICs0OTgsMTYgQEAgc3RhdGljIGJvb2wgb2FfYnVmZmVyX2NoZWNrX3VubG9ja2VkKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAkgKiBhdmFpbGFibGUpIHdpdGhv dXQgbmVlZGluZyB0byB3YWl0IGZvciBhIGxhdGVyIGhydGltZXIgY2FsbGJhY2suCj4gICAJICov Cj4gICAJaWYgKGFnaW5nX3RhaWwgIT0gSU5WQUxJRF9UQUlMX1BUUiAmJgo+IC0JICAgICgobm93 IC0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmFnaW5nX3RpbWVzdGFtcCkgPgo+ICsJICAg ICgobm93IC0gc3RyZWFtLT5vYV9idWZmZXIuYWdpbmdfdGltZXN0YW1wKSA+Cj4gICAJICAgICBP QV9UQUlMX01BUkdJTl9OU0VDKSkgewo+ICAgCj4gICAJCWFnZWRfaWR4IF49IDE7Cj4gLQkJZGV2 X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmFnZWRfdGFpbF9pZHggPSBhZ2VkX2lkeDsKPiArCQlz dHJlYW0tPm9hX2J1ZmZlci5hZ2VkX3RhaWxfaWR4ID0gYWdlZF9pZHg7Cj4gICAKPiAgIAkJYWdl ZF90YWlsID0gYWdpbmdfdGFpbDsKPiAgIAo+ICAgCQkvKiBNYXJrIHRoYXQgd2UgbmVlZCBhIG5l dyBwb2ludGVyIHRvIHN0YXJ0IGFnaW5nLi4uICovCj4gLQkJZGV2X3ByaXYtPnBlcmYub2Eub2Ff YnVmZmVyLnRhaWxzWyFhZ2VkX2lkeF0ub2Zmc2V0ID0gSU5WQUxJRF9UQUlMX1BUUjsKPiArCQlz dHJlYW0tPm9hX2J1ZmZlci50YWlsc1shYWdlZF9pZHhdLm9mZnNldCA9IElOVkFMSURfVEFJTF9Q VFI7Cj4gICAJCWFnaW5nX3RhaWwgPSBJTlZBTElEX1RBSUxfUFRSOwo+ICAgCX0KPiAgIAo+IEBA IC01MTYsNyArNTIyLDcgQEAgc3RhdGljIGJvb2wgb2FfYnVmZmVyX2NoZWNrX3VubG9ja2VkKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAlpZiAoYWdpbmdfdGFpbCA9PSBJ TlZBTElEX1RBSUxfUFRSICYmCj4gICAJICAgIChhZ2VkX3RhaWwgPT0gSU5WQUxJRF9UQUlMX1BU UiB8fAo+ICAgCSAgICAgT0FfVEFLRU4oaHdfdGFpbCwgYWdlZF90YWlsKSA+PSByZXBvcnRfc2l6 ZSkpIHsKPiAtCQlzdHJ1Y3QgaTkxNV92bWEgKnZtYSA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1 ZmZlci52bWE7Cj4gKwkJc3RydWN0IGk5MTVfdm1hICp2bWEgPSBzdHJlYW0tPm9hX2J1ZmZlci52 bWE7Cj4gICAJCXUzMiBndHRfb2Zmc2V0ID0gaTkxNV9nZ3R0X29mZnNldCh2bWEpOwo+ICAgCj4g ICAJCS8qIEJlIHBhcmFub2lkIGFuZCBkbyBhIGJvdW5kcyBjaGVjayBvbiB0aGUgcG9pbnRlciBy ZWFkIGJhY2sKPiBAQCAtNTI1LDE2ICs1MzEsMTYgQEAgc3RhdGljIGJvb2wgb2FfYnVmZmVyX2No ZWNrX3VubG9ja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAkJICov Cj4gICAJCWlmIChod190YWlsID49IGd0dF9vZmZzZXQgJiYKPiAgIAkJICAgIGh3X3RhaWwgPCAo Z3R0X29mZnNldCArIE9BX0JVRkZFUl9TSVpFKSkgewo+IC0JCQlkZXZfcHJpdi0+cGVyZi5vYS5v YV9idWZmZXIudGFpbHNbIWFnZWRfaWR4XS5vZmZzZXQgPQo+ICsJCQlzdHJlYW0tPm9hX2J1ZmZl ci50YWlsc1shYWdlZF9pZHhdLm9mZnNldCA9Cj4gICAJCQkJYWdpbmdfdGFpbCA9IGh3X3RhaWw7 Cj4gLQkJCWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5hZ2luZ190aW1lc3RhbXAgPSBub3c7 Cj4gKwkJCXN0cmVhbS0+b2FfYnVmZmVyLmFnaW5nX3RpbWVzdGFtcCA9IG5vdzsKPiAgIAkJfSBl bHNlIHsKPiAgIAkJCURSTV9FUlJPUigiSWdub3Jpbmcgc3B1cmlvdXMgb3V0IG9mIHJhbmdlIE9B IGJ1ZmZlciB0YWlsIHBvaW50ZXIgPSAldVxuIiwKPiAgIAkJCQkgIGh3X3RhaWwpOwo+ICAgCQl9 Cj4gICAJfQo+ICAgCj4gLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+cGVyZi5v YS5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKPiArCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7Cj4gICAKPiAgIAlyZXR1cm4gYWdl ZF90YWlsID09IElOVkFMSURfVEFJTF9QVFIgPwo+ICAgCQlmYWxzZSA6IE9BX1RBS0VOKGFnZWRf dGFpbCwgaGVhZCkgPj0gcmVwb3J0X3NpemU7Cj4gQEAgLTU5Nyw4ICs2MDMsNyBAQCBzdGF0aWMg aW50IGFwcGVuZF9vYV9zYW1wbGUoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKPiAg IAkJCSAgICBzaXplX3QgKm9mZnNldCwKPiAgIAkJCSAgICBjb25zdCB1OCAqcmVwb3J0KQo+ICAg ewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJp djsKPiAtCWludCByZXBvcnRfc2l6ZSA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5mb3Jt YXRfc2l6ZTsKPiArCWludCByZXBvcnRfc2l6ZSA9IHN0cmVhbS0+b2FfYnVmZmVyLmZvcm1hdF9z aXplOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9wZXJmX3JlY29yZF9oZWFkZXIgaGVhZGVyOwo+ICAg CXUzMiBzYW1wbGVfZmxhZ3MgPSBzdHJlYW0tPnNhbXBsZV9mbGFnczsKPiAgIAo+IEBAIC02NTAs OSArNjU1LDkgQEAgc3RhdGljIGludCBnZW44X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1 X3BlcmZfc3RyZWFtICpzdHJlYW0sCj4gICAJCQkJICBzaXplX3QgKm9mZnNldCkKPiAgIHsKPiAg IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2Owo+ IC0JaW50IHJlcG9ydF9zaXplID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmZvcm1hdF9z aXplOwo+IC0JdTggKm9hX2J1Zl9iYXNlID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZh ZGRyOwo+IC0JdTMyIGd0dF9vZmZzZXQgPSBpOTE1X2dndHRfb2Zmc2V0KGRldl9wcml2LT5wZXJm Lm9hLm9hX2J1ZmZlci52bWEpOwo+ICsJaW50IHJlcG9ydF9zaXplID0gc3RyZWFtLT5vYV9idWZm ZXIuZm9ybWF0X3NpemU7Cj4gKwl1OCAqb2FfYnVmX2Jhc2UgPSBzdHJlYW0tPm9hX2J1ZmZlci52 YWRkcjsKPiArCXUzMiBndHRfb2Zmc2V0ID0gaTkxNV9nZ3R0X29mZnNldChzdHJlYW0tPm9hX2J1 ZmZlci52bWEpOwo+ICAgCXUzMiBtYXNrID0gKE9BX0JVRkZFUl9TSVpFIC0gMSk7Cj4gICAJc2l6 ZV90IHN0YXJ0X29mZnNldCA9ICpvZmZzZXQ7Cj4gICAJdW5zaWduZWQgbG9uZyBmbGFnczsKPiBA QCAtNjY0LDEzICs2NjksMTMgQEAgc3RhdGljIGludCBnZW44X2FwcGVuZF9vYV9yZXBvcnRzKHN0 cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCj4gICAJaWYgKFdBUk5fT04oIXN0cmVhbS0+ ZW5hYmxlZCkpCj4gICAJCXJldHVybiAtRUlPOwo+ICAgCj4gLQlzcGluX2xvY2tfaXJxc2F2ZSgm ZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7Cj4gKwlzcGluX2xv Y2tfaXJxc2F2ZSgmc3RyZWFtLT5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKPiAgIAo+IC0J aGVhZCA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5oZWFkOwo+IC0JYWdlZF90YWlsX2lk eCA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5hZ2VkX3RhaWxfaWR4Owo+IC0JdGFpbCA9 IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci50YWlsc1thZ2VkX3RhaWxfaWR4XS5vZmZzZXQ7 Cj4gKwloZWFkID0gc3RyZWFtLT5vYV9idWZmZXIuaGVhZDsKPiArCWFnZWRfdGFpbF9pZHggPSBz dHJlYW0tPm9hX2J1ZmZlci5hZ2VkX3RhaWxfaWR4Owo+ICsJdGFpbCA9IHN0cmVhbS0+b2FfYnVm ZmVyLnRhaWxzW2FnZWRfdGFpbF9pZHhdLm9mZnNldDsKPiAgIAo+IC0Jc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7Cj4g KwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzdHJlYW0tPm9hX2J1ZmZlci5wdHJfbG9jaywgZmxh Z3MpOwo+ICAgCj4gICAJLyoKPiAgIAkgKiBBbiBpbnZhbGlkIHRhaWwgcG9pbnRlciBoZXJlIG1l YW5zIHdlJ3JlIHN0aWxsIHdhaXRpbmcgZm9yIHRoZSBwb2xsCj4gQEAgLTczNCwxMiArNzM5LDEy IEBAIHN0YXRpYyBpbnQgZ2VuOF9hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0 cmVhbSAqc3RyZWFtLAo+ICAgCQlyZWFzb24gPSAoKHJlcG9ydDMyWzBdID4+IE9BUkVQT1JUX1JF QVNPTl9TSElGVCkgJgo+ICAgCQkJICBPQVJFUE9SVF9SRUFTT05fTUFTSyk7Cj4gICAJCWlmIChy ZWFzb24gPT0gMCkgewo+IC0JCQlpZiAoX19yYXRlbGltaXQoJmRldl9wcml2LT5wZXJmLm9hLnNw dXJpb3VzX3JlcG9ydF9ycykpCj4gKwkJCWlmIChfX3JhdGVsaW1pdCgmZGV2X3ByaXYtPnBlcmYu c3B1cmlvdXNfcmVwb3J0X3JzKSkKPiAgIAkJCQlEUk1fTk9URSgiU2tpcHBpbmcgc3B1cmlvdXMs IGludmFsaWQgT0EgcmVwb3J0XG4iKTsKPiAgIAkJCWNvbnRpbnVlOwo+ICAgCQl9Cj4gICAKPiAt CQljdHhfaWQgPSByZXBvcnQzMlsyXSAmIGRldl9wcml2LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9p ZF9tYXNrOwo+ICsJCWN0eF9pZCA9IHJlcG9ydDMyWzJdICYgc3RyZWFtLT5zcGVjaWZpY19jdHhf aWRfbWFzazsKPiAgIAo+ICAgCQkvKgo+ICAgCQkgKiBTcXVhc2ggd2hhdGV2ZXIgaXMgaW4gdGhl IENUWF9JRCBmaWVsZCBpZiBpdCdzIG1hcmtlZCBhcwo+IEBAIC03NDksNyArNzU0LDcgQEAgc3Rh dGljIGludCBnZW44X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpz dHJlYW0sCj4gICAJCSAqIE5vdGU6IHRoYXQgd2UgZG9uJ3QgY2xlYXIgdGhlIHZhbGlkX2N0eF9i aXQgc28gdXNlcnNwYWNlIGNhbgo+ICAgCQkgKiB1bmRlcnN0YW5kIHRoYXQgdGhlIElEIGhhcyBi ZWVuIHNxdWFzaGVkIGJ5IHRoZSBrZXJuZWwuCj4gICAJCSAqLwo+IC0JCWlmICghKHJlcG9ydDMy WzBdICYgZGV2X3ByaXYtPnBlcmYub2EuZ2VuOF92YWxpZF9jdHhfYml0KSkKPiArCQlpZiAoIShy ZXBvcnQzMlswXSAmIGRldl9wcml2LT5wZXJmLmdlbjhfdmFsaWRfY3R4X2JpdCkpCj4gICAJCQlj dHhfaWQgPSByZXBvcnQzMlsyXSA9IElOVkFMSURfQ1RYX0lEOwo+ICAgCj4gICAJCS8qCj4gQEAg LTc4MywxOCArNzg4LDE4IEBAIHN0YXRpYyBpbnQgZ2VuOF9hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1 Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAo+ICAgCQkgKiBzd2l0Y2hlcyBzaW5jZSBpdCdz IG5vdC11bmNvbW1vbiBmb3IgcGVyaW9kaWMgc2FtcGxlcyB0bwo+ICAgCQkgKiBpZGVudGlmeSBh IHN3aXRjaCBiZWZvcmUgYW55ICdjb250ZXh0IHN3aXRjaCcgcmVwb3J0Lgo+ICAgCQkgKi8KPiAt CQlpZiAoIWRldl9wcml2LT5wZXJmLm9hLmV4Y2x1c2l2ZV9zdHJlYW0tPmN0eCB8fAo+IC0JCSAg ICBkZXZfcHJpdi0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWQgPT0gY3R4X2lkIHx8Cj4gLQkJICAg IChkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIubGFzdF9jdHhfaWQgPT0KPiAtCQkgICAgIGRl dl9wcml2LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZCkgfHwKPiArCQlpZiAoIWRldl9wcml2LT5w ZXJmLmV4Y2x1c2l2ZV9zdHJlYW0tPmN0eCB8fAo+ICsJCSAgICBzdHJlYW0tPnNwZWNpZmljX2N0 eF9pZCA9PSBjdHhfaWQgfHwKPiArCQkgICAgKHN0cmVhbS0+b2FfYnVmZmVyLmxhc3RfY3R4X2lk ID09Cj4gKwkJICAgICBzdHJlYW0tPnNwZWNpZmljX2N0eF9pZCkgfHwKPiAgIAkJICAgIHJlYXNv biAmIE9BUkVQT1JUX1JFQVNPTl9DVFhfU1dJVENIKSB7Cj4gICAKPiAgIAkJCS8qCj4gICAJCQkg KiBXaGlsZSBmaWx0ZXJpbmcgZm9yIGEgc2luZ2xlIGNvbnRleHQgd2UgYXZvaWQKPiAgIAkJCSAq IGxlYWtpbmcgdGhlIElEcyBvZiBvdGhlciBjb250ZXh0cy4KPiAgIAkJCSAqLwo+IC0JCQlpZiAo ZGV2X3ByaXYtPnBlcmYub2EuZXhjbHVzaXZlX3N0cmVhbS0+Y3R4ICYmCj4gLQkJCSAgICBkZXZf cHJpdi0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWQgIT0gY3R4X2lkKSB7Cj4gKwkJCWlmIChkZXZf cHJpdi0+cGVyZi5leGNsdXNpdmVfc3RyZWFtLT5jdHggJiYKPiArCQkJICAgIHN0cmVhbS0+c3Bl Y2lmaWNfY3R4X2lkICE9IGN0eF9pZCkgewo+ICAgCQkJCXJlcG9ydDMyWzJdID0gSU5WQUxJRF9D VFhfSUQ7Cj4gICAJCQl9Cj4gICAKPiBAQCAtODAzLDcgKzgwOCw3IEBAIHN0YXRpYyBpbnQgZ2Vu OF9hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAo+ICAg CQkJaWYgKHJldCkKPiAgIAkJCQlicmVhazsKPiAgIAo+IC0JCQlkZXZfcHJpdi0+cGVyZi5vYS5v YV9idWZmZXIubGFzdF9jdHhfaWQgPSBjdHhfaWQ7Cj4gKwkJCXN0cmVhbS0+b2FfYnVmZmVyLmxh c3RfY3R4X2lkID0gY3R4X2lkOwo+ICAgCQl9Cj4gICAKPiAgIAkJLyoKPiBAQCAtODE3LDcgKzgy Miw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJm X3N0cmVhbSAqc3RyZWFtLAo+ICAgCX0KPiAgIAo+ICAgCWlmIChzdGFydF9vZmZzZXQgIT0gKm9m ZnNldCkgewo+IC0JCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZm ZXIucHRyX2xvY2ssIGZsYWdzKTsKPiArCQlzcGluX2xvY2tfaXJxc2F2ZSgmc3RyZWFtLT5vYV9i dWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKPiAgIAo+ICAgCQkvKgo+ICAgCQkgKiBXZSByZW1vdmVk IHRoZSBndHRfb2Zmc2V0IGZvciB0aGUgY29weSBsb29wIGFib3ZlLCBpbmRleGluZwo+IEBAIC04 MjYsOSArODMxLDkgQEAgc3RhdGljIGludCBnZW44X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBp OTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCj4gICAJCWhlYWQgKz0gZ3R0X29mZnNldDsKPiAgIAo+ ICAgCQlJOTE1X1dSSVRFKEdFTjhfT0FIRUFEUFRSLCBoZWFkICYgR0VOOF9PQUhFQURQVFJfTUFT Syk7Cj4gLQkJZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmhlYWQgPSBoZWFkOwo+ICsJCXN0 cmVhbS0+b2FfYnVmZmVyLmhlYWQgPSBoZWFkOwo+ICAgCj4gLQkJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7Cj4gKwkJ c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc3RyZWFtLT5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdz KTsKPiAgIAl9Cj4gICAKPiAgIAlyZXR1cm4gcmV0Owo+IEBAIC04NjMsNyArODY4LDcgQEAgc3Rh dGljIGludCBnZW44X29hX3JlYWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKPiAg IAl1MzIgb2FzdGF0dXM7Cj4gICAJaW50IHJldDsKPiAgIAo+IC0JaWYgKFdBUk5fT04oIWRldl9w cml2LT5wZXJmLm9hLm9hX2J1ZmZlci52YWRkcikpCj4gKwlpZiAoV0FSTl9PTighc3RyZWFtLT5v YV9idWZmZXIudmFkZHIpKQo+ICAgCQlyZXR1cm4gLUVJTzsKPiAgIAo+ICAgCW9hc3RhdHVzID0g STkxNV9SRUFEKEdFTjhfT0FTVEFUVVMpOwo+IEBAIC04ODksMTAgKzg5NCwxMCBAQCBzdGF0aWMg aW50IGdlbjhfb2FfcmVhZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAo+ICAgCQkJ cmV0dXJuIHJldDsKPiAgIAo+ICAgCQlEUk1fREVCVUcoIk9BIGJ1ZmZlciBvdmVyZmxvdyAoZXhw b25lbnQgPSAlZCk6IGZvcmNlIHJlc3RhcnRcbiIsCj4gLQkJCSAgZGV2X3ByaXYtPnBlcmYub2Eu cGVyaW9kX2V4cG9uZW50KTsKPiArCQkJICBzdHJlYW0tPnBlcmlvZF9leHBvbmVudCk7Cj4gICAK PiAtCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMub2FfZGlzYWJsZShzdHJlYW0pOwo+IC0JCWRldl9w cml2LT5wZXJmLm9hLm9wcy5vYV9lbmFibGUoc3RyZWFtKTsKPiArCQlkZXZfcHJpdi0+cGVyZi5v cHMub2FfZGlzYWJsZShzdHJlYW0pOwo+ICsJCWRldl9wcml2LT5wZXJmLm9wcy5vYV9lbmFibGUo c3RyZWFtKTsKPiAgIAo+ICAgCQkvKgo+ICAgCQkgKiBOb3RlOiAub2FfZW5hYmxlKCkgaXMgZXhw ZWN0ZWQgdG8gcmUtaW5pdCB0aGUgb2FidWZmZXIgYW5kCj4gQEAgLTkzOSw5ICs5NDQsOSBAQCBz dGF0aWMgaW50IGdlbjdfYXBwZW5kX29hX3JlcG9ydHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0g KnN0cmVhbSwKPiAgIAkJCQkgIHNpemVfdCAqb2Zmc2V0KQo+ICAgewo+ICAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3ByaXY7Cj4gLQlpbnQgcmVwb3J0 X3NpemUgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuZm9ybWF0X3NpemU7Cj4gLQl1OCAq b2FfYnVmX2Jhc2UgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudmFkZHI7Cj4gLQl1MzIg Z3R0X29mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQoZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVy LnZtYSk7Cj4gKwlpbnQgcmVwb3J0X3NpemUgPSBzdHJlYW0tPm9hX2J1ZmZlci5mb3JtYXRfc2l6 ZTsKPiArCXU4ICpvYV9idWZfYmFzZSA9IHN0cmVhbS0+b2FfYnVmZmVyLnZhZGRyOwo+ICsJdTMy IGd0dF9vZmZzZXQgPSBpOTE1X2dndHRfb2Zmc2V0KHN0cmVhbS0+b2FfYnVmZmVyLnZtYSk7Cj4g ICAJdTMyIG1hc2sgPSAoT0FfQlVGRkVSX1NJWkUgLSAxKTsKPiAgIAlzaXplX3Qgc3RhcnRfb2Zm c2V0ID0gKm9mZnNldDsKPiAgIAl1bnNpZ25lZCBsb25nIGZsYWdzOwo+IEBAIC05NTMsMTMgKzk1 OCwxMyBAQCBzdGF0aWMgaW50IGdlbjdfYXBwZW5kX29hX3JlcG9ydHMoc3RydWN0IGk5MTVfcGVy Zl9zdHJlYW0gKnN0cmVhbSwKPiAgIAlpZiAoV0FSTl9PTighc3RyZWFtLT5lbmFibGVkKSkKPiAg IAkJcmV0dXJuIC1FSU87Cj4gICAKPiAtCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+cGVy Zi5vYS5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKPiArCXNwaW5fbG9ja19pcnFzYXZlKCZz dHJlYW0tPm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOwo+ICAgCj4gLQloZWFkID0gZGV2X3By aXYtPnBlcmYub2Eub2FfYnVmZmVyLmhlYWQ7Cj4gLQlhZ2VkX3RhaWxfaWR4ID0gZGV2X3ByaXYt PnBlcmYub2Eub2FfYnVmZmVyLmFnZWRfdGFpbF9pZHg7Cj4gLQl0YWlsID0gZGV2X3ByaXYtPnBl cmYub2Eub2FfYnVmZmVyLnRhaWxzW2FnZWRfdGFpbF9pZHhdLm9mZnNldDsKPiArCWhlYWQgPSBz dHJlYW0tPm9hX2J1ZmZlci5oZWFkOwo+ICsJYWdlZF90YWlsX2lkeCA9IHN0cmVhbS0+b2FfYnVm ZmVyLmFnZWRfdGFpbF9pZHg7Cj4gKwl0YWlsID0gc3RyZWFtLT5vYV9idWZmZXIudGFpbHNbYWdl ZF90YWlsX2lkeF0ub2Zmc2V0Owo+ICAgCj4gLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZf cHJpdi0+cGVyZi5vYS5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKPiArCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7Cj4gICAKPiAg IAkvKiBBbiBpbnZhbGlkIHRhaWwgcG9pbnRlciBoZXJlIG1lYW5zIHdlJ3JlIHN0aWxsIHdhaXRp bmcgZm9yIHRoZSBwb2xsCj4gICAJICogaHJ0aW1lciBjYWxsYmFjayB0byBnaXZlIHVzIGEgcG9p bnRlcgo+IEBAIC0xMDEyLDcgKzEwMTcsNyBAQCBzdGF0aWMgaW50IGdlbjdfYXBwZW5kX29hX3Jl cG9ydHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKPiAgIAkJICogY29weWluZyBp dCB0byB1c2Vyc3BhY2UuLi4KPiAgIAkJICovCj4gICAJCWlmIChyZXBvcnQzMlswXSA9PSAwKSB7 Cj4gLQkJCWlmIChfX3JhdGVsaW1pdCgmZGV2X3ByaXYtPnBlcmYub2Euc3B1cmlvdXNfcmVwb3J0 X3JzKSkKPiArCQkJaWYgKF9fcmF0ZWxpbWl0KCZkZXZfcHJpdi0+cGVyZi5zcHVyaW91c19yZXBv cnRfcnMpKQo+ICAgCQkJCURSTV9OT1RFKCJTa2lwcGluZyBzcHVyaW91cywgaW52YWxpZCBPQSBy ZXBvcnRcbiIpOwo+ICAgCQkJY29udGludWU7Cj4gICAJCX0KPiBAQCAtMTAzMSw3ICsxMDM2LDcg QEAgc3RhdGljIGludCBnZW43X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1X3BlcmZfc3Ry ZWFtICpzdHJlYW0sCj4gICAJfQo+ICAgCj4gICAJaWYgKHN0YXJ0X29mZnNldCAhPSAqb2Zmc2V0 KSB7Cj4gLQkJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5w dHJfbG9jaywgZmxhZ3MpOwo+ICsJCXNwaW5fbG9ja19pcnFzYXZlKCZzdHJlYW0tPm9hX2J1ZmZl ci5wdHJfbG9jaywgZmxhZ3MpOwo+ICAgCj4gICAJCS8qIFdlIHJlbW92ZWQgdGhlIGd0dF9vZmZz ZXQgZm9yIHRoZSBjb3B5IGxvb3AgYWJvdmUsIGluZGV4aW5nCj4gICAJCSAqIHJlbGF0aXZlIHRv IG9hX2J1Zl9iYXNlIHNvIHB1dCBiYWNrIGhlcmUuLi4KPiBAQCAtMTA0MSw5ICsxMDQ2LDkgQEAg c3RhdGljIGludCBnZW43X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFt ICpzdHJlYW0sCj4gICAJCUk5MTVfV1JJVEUoR0VON19PQVNUQVRVUzIsCj4gICAJCQkgICAoKGhl YWQgJiBHRU43X09BU1RBVFVTMl9IRUFEX01BU0spIHwKPiAgIAkJCSAgICBHRU43X09BU1RBVFVT Ml9NRU1fU0VMRUNUX0dHVFQpKTsKPiAtCQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuaGVh ZCA9IGhlYWQ7Cj4gKwkJc3RyZWFtLT5vYV9idWZmZXIuaGVhZCA9IGhlYWQ7Cj4gICAKPiAtCQlz cGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIucHRyX2xv Y2ssIGZsYWdzKTsKPiArCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzdHJlYW0tPm9hX2J1ZmZl ci5wdHJfbG9jaywgZmxhZ3MpOwo+ICAgCX0KPiAgIAo+ICAgCXJldHVybiByZXQ7Cj4gQEAgLTEw NzQsNyArMTA3OSw3IEBAIHN0YXRpYyBpbnQgZ2VuN19vYV9yZWFkKHN0cnVjdCBpOTE1X3BlcmZf c3RyZWFtICpzdHJlYW0sCj4gICAJdTMyIG9hc3RhdHVzMTsKPiAgIAlpbnQgcmV0Owo+ICAgCj4g LQlpZiAoV0FSTl9PTighZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZhZGRyKSkKPiArCWlm IChXQVJOX09OKCFzdHJlYW0tPm9hX2J1ZmZlci52YWRkcikpCj4gICAJCXJldHVybiAtRUlPOwo+ ICAgCj4gICAJb2FzdGF0dXMxID0gSTkxNV9SRUFEKEdFTjdfT0FTVEFUVVMxKTsKPiBAQCAtMTA4 NCw3ICsxMDg5LDcgQEAgc3RhdGljIGludCBnZW43X29hX3JlYWQoc3RydWN0IGk5MTVfcGVyZl9z dHJlYW0gKnN0cmVhbSwKPiAgIAkgKiBtYXkgYmUgdXBkYXRlZCBhc3luY2hyb25vdXNseSkgc28g d2UgaWdub3JlIHN0YXR1cyBiaXRzCj4gICAJICogdGhhdCBoYXZlIGFscmVhZHkgYmVlbiByZXBv cnRlZCB0byB1c2Vyc3BhY2UuCj4gICAJICovCj4gLQlvYXN0YXR1czEgJj0gfmRldl9wcml2LT5w ZXJmLm9hLmdlbjdfbGF0Y2hlZF9vYXN0YXR1czE7Cj4gKwlvYXN0YXR1czEgJj0gfmRldl9wcml2 LT5wZXJmLmdlbjdfbGF0Y2hlZF9vYXN0YXR1czE7Cj4gICAKPiAgIAkvKiBXZSB0cmVhdCBPQUJV RkZFUl9PVkVSRkxPVyBhcyBhIHNpZ25pZmljYW50IGVycm9yOgo+ICAgCSAqCj4gQEAgLTExMTMs MTAgKzExMTgsMTAgQEAgc3RhdGljIGludCBnZW43X29hX3JlYWQoc3RydWN0IGk5MTVfcGVyZl9z dHJlYW0gKnN0cmVhbSwKPiAgIAkJCXJldHVybiByZXQ7Cj4gICAKPiAgIAkJRFJNX0RFQlVHKCJP QSBidWZmZXIgb3ZlcmZsb3cgKGV4cG9uZW50ID0gJWQpOiBmb3JjZSByZXN0YXJ0XG4iLAo+IC0J CQkgIGRldl9wcml2LT5wZXJmLm9hLnBlcmlvZF9leHBvbmVudCk7Cj4gKwkJCSAgc3RyZWFtLT5w ZXJpb2RfZXhwb25lbnQpOwo+ICAgCj4gLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9hX2Rpc2Fi bGUoc3RyZWFtKTsKPiAtCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMub2FfZW5hYmxlKHN0cmVhbSk7 Cj4gKwkJZGV2X3ByaXYtPnBlcmYub3BzLm9hX2Rpc2FibGUoc3RyZWFtKTsKPiArCQlkZXZfcHJp di0+cGVyZi5vcHMub2FfZW5hYmxlKHN0cmVhbSk7Cj4gICAKPiAgIAkJb2FzdGF0dXMxID0gSTkx NV9SRUFEKEdFTjdfT0FTVEFUVVMxKTsKPiAgIAl9Cj4gQEAgLTExMjYsNyArMTEzMSw3IEBAIHN0 YXRpYyBpbnQgZ2VuN19vYV9yZWFkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCj4g ICAJCQkJICAgICAgIERSTV9JOTE1X1BFUkZfUkVDT1JEX09BX1JFUE9SVF9MT1NUKTsKPiAgIAkJ aWYgKHJldCkKPiAgIAkJCXJldHVybiByZXQ7Cj4gLQkJZGV2X3ByaXYtPnBlcmYub2EuZ2VuN19s YXRjaGVkX29hc3RhdHVzMSB8PQo+ICsJCWRldl9wcml2LT5wZXJmLmdlbjdfbGF0Y2hlZF9vYXN0 YXR1czEgfD0KPiAgIAkJCUdFTjdfT0FTVEFUVVMxX1JFUE9SVF9MT1NUOwo+ICAgCX0KPiAgIAo+ IEBAIC0xMTQ5LDE0ICsxMTU0LDEyIEBAIHN0YXRpYyBpbnQgZ2VuN19vYV9yZWFkKHN0cnVjdCBp OTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCj4gICAgKi8KPiAgIHN0YXRpYyBpbnQgaTkxNV9vYV93 YWl0X3VubG9ja2VkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCj4gICB7Cj4gLQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2Owo+IC0K PiAgIAkvKiBXZSB3b3VsZCB3YWl0IGluZGVmaW5pdGVseSBpZiBwZXJpb2RpYyBzYW1wbGluZyBp cyBub3QgZW5hYmxlZCAqLwo+IC0JaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5wZXJpb2RpYykKPiAr CWlmICghc3RyZWFtLT5wZXJpb2RpYykKPiAgIAkJcmV0dXJuIC1FSU87Cj4gICAKPiAtCXJldHVy biB3YWl0X2V2ZW50X2ludGVycnVwdGlibGUoZGV2X3ByaXYtPnBlcmYub2EucG9sbF93cSwKPiAt CQkJCQlvYV9idWZmZXJfY2hlY2tfdW5sb2NrZWQoZGV2X3ByaXYpKTsKPiArCXJldHVybiB3YWl0 X2V2ZW50X2ludGVycnVwdGlibGUoc3RyZWFtLT5wb2xsX3dxLAo+ICsJCQkJCW9hX2J1ZmZlcl9j aGVja191bmxvY2tlZChzdHJlYW0pKTsKPiAgIH0KPiAgIAo+ICAgLyoqCj4gQEAgLTExNzMsOSAr MTE3Niw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfb2FfcG9sbF93YWl0KHN0cnVjdCBpOTE1X3BlcmZf c3RyZWFtICpzdHJlYW0sCj4gICAJCQkgICAgICBzdHJ1Y3QgZmlsZSAqZmlsZSwKPiAgIAkJCSAg ICAgIHBvbGxfdGFibGUgKndhaXQpCj4gICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2Owo+IC0KPiAtCXBvbGxfd2FpdChmaWxlLCAmZGV2 X3ByaXYtPnBlcmYub2EucG9sbF93cSwgd2FpdCk7Cj4gKwlwb2xsX3dhaXQoZmlsZSwgJnN0cmVh bS0+cG9sbF93cSwgd2FpdCk7Cj4gICB9Cj4gICAKPiAgIC8qKgo+IEBAIC0xMTk3LDEzICsxMTk4 LDE0IEBAIHN0YXRpYyBpbnQgaTkxNV9vYV9yZWFkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpz dHJlYW0sCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3Ry ZWFtLT5kZXZfcHJpdjsKPiAgIAo+IC0JcmV0dXJuIGRldl9wcml2LT5wZXJmLm9hLm9wcy5yZWFk KHN0cmVhbSwgYnVmLCBjb3VudCwgb2Zmc2V0KTsKPiArCXJldHVybiBkZXZfcHJpdi0+cGVyZi5v cHMucmVhZChzdHJlYW0sIGJ1ZiwgY291bnQsIG9mZnNldCk7Cj4gICB9Cj4gICAKPiAtc3RhdGlj IHN0cnVjdCBpbnRlbF9jb250ZXh0ICpvYV9waW5fY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSwKPiAtCQkJCQkgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKPiAr c3RhdGljIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpvYV9waW5fY29udGV4dChzdHJ1Y3QgaTkxNV9w ZXJmX3N0cmVhbSAqc3RyZWFtKQo+ICAgewo+ICAgCXN0cnVjdCBpOTE1X2dlbV9lbmdpbmVzX2l0 ZXIgaXQ7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHN0cmVhbS0+ZGV2X3By aXY7Cj4gKwlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4ID0gc3RyZWFtLT5jdHg7Cj4gICAJ c3RydWN0IGludGVsX2NvbnRleHQgKmNlOwo+ICAgCWludCBlcnI7Cj4gICAKPiBAQCAtMTIyMSw3 ICsxMjIzLDcgQEAgc3RhdGljIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpvYV9waW5fY29udGV4dChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAgIAkJICovCj4gICAJCWVyciA9IGludGVs X2NvbnRleHRfcGluKGNlKTsKPiAgIAkJaWYgKGVyciA9PSAwKSB7Cj4gLQkJCWk5MTUtPnBlcmYu b2EucGlubmVkX2N0eCA9IGNlOwo+ICsJCQlzdHJlYW0tPnBpbm5lZF9jdHggPSBjZTsKPiAgIAkJ CWJyZWFrOwo+ICAgCQl9Cj4gICAJfQo+IEBAIC0xMjMxLDcgKzEyMzMsNyBAQCBzdGF0aWMgc3Ry dWN0IGludGVsX2NvbnRleHQgKm9hX3Bpbl9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1LAo+ICAgCWlmIChlcnIpCj4gICAJCXJldHVybiBFUlJfUFRSKGVycik7Cj4gICAKPiAt CXJldHVybiBpOTE1LT5wZXJmLm9hLnBpbm5lZF9jdHg7Cj4gKwlyZXR1cm4gc3RyZWFtLT5waW5u ZWRfY3R4Owo+ICAgfQo+ICAgCj4gICAvKioKPiBAQCAtMTI0OSw3ICsxMjUxLDcgQEAgc3RhdGlj IGludCBvYV9nZXRfcmVuZGVyX2N0eF9pZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFt KQo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gc3RyZWFtLT5kZXZfcHJpdjsK PiAgIAlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2U7Cj4gICAKPiAtCWNlID0gb2FfcGluX2NvbnRl eHQoaTkxNSwgc3RyZWFtLT5jdHgpOwo+ICsJY2UgPSBvYV9waW5fY29udGV4dChzdHJlYW0pOwo+ ICAgCWlmIChJU19FUlIoY2UpKQo+ICAgCQlyZXR1cm4gUFRSX0VSUihjZSk7Cj4gICAKPiBAQCAt MTI1OSw4ICsxMjYxLDggQEAgc3RhdGljIGludCBvYV9nZXRfcmVuZGVyX2N0eF9pZChzdHJ1Y3Qg aTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQo+ICAgCQkgKiBPbiBIYXN3ZWxsIHdlIGRvbid0IGRv IGFueSBwb3N0IHByb2Nlc3Npbmcgb2YgdGhlIHJlcG9ydHMKPiAgIAkJICogYW5kIGRvbid0IG5l ZWQgdG8gdXNlIHRoZSBtYXNrLgo+ICAgCQkgKi8KPiAtCQlpOTE1LT5wZXJmLm9hLnNwZWNpZmlj X2N0eF9pZCA9IGk5MTVfZ2d0dF9vZmZzZXQoY2UtPnN0YXRlKTsKPiAtCQlpOTE1LT5wZXJmLm9h LnNwZWNpZmljX2N0eF9pZF9tYXNrID0gMDsKPiArCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZCA9 IGk5MTVfZ2d0dF9vZmZzZXQoY2UtPnN0YXRlKTsKPiArCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9p ZF9tYXNrID0gMDsKPiAgIAkJYnJlYWs7Cj4gICAJfQo+ICAgCj4gQEAgLTEyNzgsMzMgKzEyODAs MzYgQEAgc3RhdGljIGludCBvYV9nZXRfcmVuZGVyX2N0eF9pZChzdHJ1Y3QgaTkxNV9wZXJmX3N0 cmVhbSAqc3RyZWFtKQo+ICAgCQkJICogZHJvcHBlZCBieSBHdUMuIFRoZXkgd29uJ3QgYmUgcGFy dCBvZiB0aGUgY29udGV4dAo+ICAgCQkJICogSUQgaW4gdGhlIE9BIHJlcG9ydHMsIHNvIHNxdWFz aCB0aG9zZSBsb3dlciBiaXRzLgo+ICAgCQkJICovCj4gLQkJCWk5MTUtPnBlcmYub2Euc3BlY2lm aWNfY3R4X2lkID0KPiArCQkJc3RyZWFtLT5zcGVjaWZpY19jdHhfaWQgPQo+ICAgCQkJCWxvd2Vy XzMyX2JpdHMoY2UtPmxyY19kZXNjKSA+PiAxMjsKPiAgIAo+ICAgCQkJLyoKPiAgIAkJCSAqIEd1 QyB1c2VzIHRoZSB0b3AgYml0IHRvIHNpZ25hbCBwcm94eSBzdWJtaXNzaW9uLCBzbwo+ICAgCQkJ ICogaWdub3JlIHRoYXQgYml0Lgo+ICAgCQkJICovCj4gLQkJCWk5MTUtPnBlcmYub2Euc3BlY2lm aWNfY3R4X2lkX21hc2sgPQo+ICsJCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZF9tYXNrID0KPiAg IAkJCQkoMVUgPDwgKEdFTjhfQ1RYX0lEX1dJRFRIIC0gMSkpIC0gMTsKPiAgIAkJfSBlbHNlIHsK PiAtCQkJaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWRfbWFzayA9Cj4gKwkJCXN0cmVhbS0+ c3BlY2lmaWNfY3R4X2lkX21hc2sgPQo+ICAgCQkJCSgxVSA8PCBHRU44X0NUWF9JRF9XSURUSCkg LSAxOwo+IC0JCQlpOTE1LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZCA9Cj4gKwkJCXN0cmVhbS0+ c3BlY2lmaWNfY3R4X2lkID0KPiAgIAkJCQl1cHBlcl8zMl9iaXRzKGNlLT5scmNfZGVzYyk7Cj4g LQkJCWk5MTUtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkICY9Cj4gLQkJCQlpOTE1LT5wZXJmLm9h LnNwZWNpZmljX2N0eF9pZF9tYXNrOwo+ICsJCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZCAmPQo+ ICsJCQkJc3RyZWFtLT5zcGVjaWZpY19jdHhfaWRfbWFzazsKPiAgIAkJfQo+ICAgCQlicmVhazsK PiAgIAo+ICAgCWNhc2UgMTE6IHsKPiAtCQlpOTE1LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZF9t YXNrID0KPiAtCQkJKCgxVSA8PCBHRU4xMV9TV19DVFhfSURfV0lEVEgpIC0gMSkgPDwgKEdFTjEx X1NXX0NUWF9JRF9TSElGVCAtIDMyKSB8Cj4gLQkJCSgoMVUgPDwgR0VOMTFfRU5HSU5FX0lOU1RB TkNFX1dJRFRIKSAtIDEpIDw8IChHRU4xMV9FTkdJTkVfSU5TVEFOQ0VfU0hJRlQgLSAzMikgfAo+ IC0JCQkoKDEgPDwgR0VOMTFfRU5HSU5FX0NMQVNTX1dJRFRIKSAtIDEpIDw8IChHRU4xMV9FTkdJ TkVfQ0xBU1NfU0hJRlQgLSAzMik7Cj4gLQkJaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWQg PSB1cHBlcl8zMl9iaXRzKGNlLT5scmNfZGVzYyk7Cj4gLQkJaTkxNS0+cGVyZi5vYS5zcGVjaWZp Y19jdHhfaWQgJj0KPiAtCQkJaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWRfbWFzazsKPiAr CQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZF9tYXNrID0KPiArCQkJKCgxVSA8PCBHRU4xMV9TV19D VFhfSURfV0lEVEgpIC0gMSkKPiArCQkJCTw8IChHRU4xMV9TV19DVFhfSURfU0hJRlQgLSAzMikg fAo+ICsJCQkoKDFVIDw8IEdFTjExX0VOR0lORV9JTlNUQU5DRV9XSURUSCkgLSAxKQo+ICsJCQkJ PDwgKEdFTjExX0VOR0lORV9JTlNUQU5DRV9TSElGVCAtIDMyKSB8Cj4gKwkJCSgoMSA8PCBHRU4x MV9FTkdJTkVfQ0xBU1NfV0lEVEgpIC0gMSkKPiArCQkJCTw8IChHRU4xMV9FTkdJTkVfQ0xBU1Nf U0hJRlQgLSAzMik7Cj4gKwkJc3RyZWFtLT5zcGVjaWZpY19jdHhfaWQgPSB1cHBlcl8zMl9iaXRz KGNlLT5scmNfZGVzYyk7Cj4gKwkJc3RyZWFtLT5zcGVjaWZpY19jdHhfaWQgJj0KPiArCQkJc3Ry ZWFtLT5zcGVjaWZpY19jdHhfaWRfbWFzazsKPiAgIAkJYnJlYWs7Cj4gICAJfQo+ICAgCj4gQEAg LTEzMTMsOCArMTMxOCw4IEBAIHN0YXRpYyBpbnQgb2FfZ2V0X3JlbmRlcl9jdHhfaWQoc3RydWN0 IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKPiAgIAl9Cj4gICAKPiAgIAlEUk1fREVCVUdfRFJJ VkVSKCJmaWx0ZXJpbmcgb24gY3R4X2lkPTB4JXggY3R4X2lkX21hc2s9MHgleFxuIiwKPiAtCQkJ IGk5MTUtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkLAo+IC0JCQkgaTkxNS0+cGVyZi5vYS5zcGVj aWZpY19jdHhfaWRfbWFzayk7Cj4gKwkJCSBzdHJlYW0tPnNwZWNpZmljX2N0eF9pZCwKPiArCQkJ IHN0cmVhbS0+c3BlY2lmaWNfY3R4X2lkX21hc2spOwo+ICAgCj4gICAJcmV0dXJuIDA7Cj4gICB9 Cj4gQEAgLTEzMzEsMTAgKzEzMzYsMTAgQEAgc3RhdGljIHZvaWQgb2FfcHV0X3JlbmRlcl9jdHhf aWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2Owo+ICAgCXN0cnVjdCBpbnRlbF9j b250ZXh0ICpjZTsKPiAgIAo+IC0JZGV2X3ByaXYtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkID0g SU5WQUxJRF9DVFhfSUQ7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWRfbWFz ayA9IDA7Cj4gKwlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZCA9IElOVkFMSURfQ1RYX0lEOwo+ICsJ c3RyZWFtLT5zcGVjaWZpY19jdHhfaWRfbWFzayA9IDA7Cj4gICAKPiAtCWNlID0gZmV0Y2hfYW5k X3plcm8oJmRldl9wcml2LT5wZXJmLm9hLnBpbm5lZF9jdHgpOwo+ICsJY2UgPSBmZXRjaF9hbmRf emVybygmc3RyZWFtLT5waW5uZWRfY3R4KTsKPiAgIAlpZiAoY2UpIHsKPiAgIAkJbXV0ZXhfbG9j aygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ICAgCQlpbnRlbF9jb250ZXh0X3VucGlu KGNlKTsKPiBAQCAtMTM0MywzNCArMTM0OCwzNCBAQCBzdGF0aWMgdm9pZCBvYV9wdXRfcmVuZGVy X2N0eF9pZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQo+ICAgfQo+ICAgCj4gICBz dGF0aWMgdm9pZAo+IC1mcmVlX29hX2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSkKPiArZnJlZV9vYV9idWZmZXIoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKPiAg IHsKPiAtCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBzdHJlYW0tPmRldl9wcml2Owo+ICAgCj4gLQlpOTE1X3Zt YV91bnBpbl9hbmRfcmVsZWFzZSgmaTkxNS0+cGVyZi5vYS5vYV9idWZmZXIudm1hLAo+ICsJbXV0 ZXhfbG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gKwlpOTE1X3ZtYV91bnBpbl9hbmRf cmVsZWFzZSgmc3RyZWFtLT5vYV9idWZmZXIudm1hLAo+ICAgCQkJCSAgIEk5MTVfVk1BX1JFTEVB U0VfTUFQKTsKPiAtCj4gICAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsK PiAgIAo+IC0JaTkxNS0+cGVyZi5vYS5vYV9idWZmZXIudmFkZHIgPSBOVUxMOwo+ICsJc3RyZWFt LT5vYV9idWZmZXIudmFkZHIgPSBOVUxMOwo+ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9pZCBpOTE1 X29hX3N0cmVhbV9kZXN0cm95KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCj4gICB7 Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJp djsKPiAgIAo+IC0JQlVHX09OKHN0cmVhbSAhPSBkZXZfcHJpdi0+cGVyZi5vYS5leGNsdXNpdmVf c3RyZWFtKTsKPiArCUJVR19PTihzdHJlYW0gIT0gZGV2X3ByaXYtPnBlcmYuZXhjbHVzaXZlX3N0 cmVhbSk7Cj4gICAKPiAgIAkvKgo+ICAgCSAqIFVuc2V0IGV4Y2x1c2l2ZV9zdHJlYW0gZmlyc3Qs IGl0IHdpbGwgYmUgY2hlY2tlZCB3aGlsZSBkaXNhYmxpbmcKPiAgIAkgKiB0aGUgbWV0cmljIHNl dCBvbiBnZW44Ky4KPiAgIAkgKi8KPiAgIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVj dF9tdXRleCk7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS5leGNsdXNpdmVfc3RyZWFtID0gTlVMTDsK PiAtCWRldl9wcml2LT5wZXJmLm9hLm9wcy5kaXNhYmxlX21ldHJpY19zZXQoZGV2X3ByaXYpOwo+ ICsJZGV2X3ByaXYtPnBlcmYuZXhjbHVzaXZlX3N0cmVhbSA9IE5VTEw7Cj4gKwlkZXZfcHJpdi0+ cGVyZi5vcHMuZGlzYWJsZV9tZXRyaWNfc2V0KHN0cmVhbSk7Cj4gICAJbXV0ZXhfdW5sb2NrKCZk ZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gICAKPiAtCWZyZWVfb2FfYnVmZmVyKGRldl9w cml2KTsKPiArCWZyZWVfb2FfYnVmZmVyKHN0cmVhbSk7Cj4gICAKPiAgIAlpbnRlbF91bmNvcmVf Zm9yY2V3YWtlX3B1dCgmZGV2X3ByaXYtPnVuY29yZSwgRk9SQ0VXQUtFX0FMTCk7Cj4gICAJaW50 ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYsIHN0cmVhbS0+d2FrZXJlZik7Cj4gQEAgLTEzODAs NDEgKzEzODUsNDIgQEAgc3RhdGljIHZvaWQgaTkxNV9vYV9zdHJlYW1fZGVzdHJveShzdHJ1Y3Qg aTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQo+ICAgCj4gICAJcHV0X29hX2NvbmZpZyhkZXZfcHJp diwgc3RyZWFtLT5vYV9jb25maWcpOwo+ICAgCj4gLQlpZiAoZGV2X3ByaXYtPnBlcmYub2Euc3B1 cmlvdXNfcmVwb3J0X3JzLm1pc3NlZCkgewo+ICsJaWYgKGRldl9wcml2LT5wZXJmLnNwdXJpb3Vz X3JlcG9ydF9ycy5taXNzZWQpIHsKPiAgIAkJRFJNX05PVEUoIiVkIHNwdXJpb3VzIE9BIHJlcG9y dCBub3RpY2VzIHN1cHByZXNzZWQgZHVlIHRvIHJhdGVsaW1pdGluZ1xuIiwKPiAtCQkJIGRldl9w cml2LT5wZXJmLm9hLnNwdXJpb3VzX3JlcG9ydF9ycy5taXNzZWQpOwo+ICsJCQkgZGV2X3ByaXYt PnBlcmYuc3B1cmlvdXNfcmVwb3J0X3JzLm1pc3NlZCk7Cj4gICAJfQo+ICAgfQo+ICAgCj4gLXN0 YXRpYyB2b2lkIGdlbjdfaW5pdF9vYV9idWZmZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ICtzdGF0aWMgdm9pZCBnZW43X2luaXRfb2FfYnVmZmVyKHN0cnVjdCBpOTE1X3Bl cmZfc3RyZWFtICpzdHJlYW0pCj4gICB7Cj4gLQl1MzIgZ3R0X29mZnNldCA9IGk5MTVfZ2d0dF9v ZmZzZXQoZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZtYSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2Owo+ICsJdTMyIGd0dF9vZmZz ZXQgPSBpOTE1X2dndHRfb2Zmc2V0KHN0cmVhbS0+b2FfYnVmZmVyLnZtYSk7Cj4gICAJdW5zaWdu ZWQgbG9uZyBmbGFnczsKPiAgIAo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5wZXJm Lm9hLm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOwo+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJnN0 cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7Cj4gICAKPiAgIAkvKiBQcmUtRGV2QkRX OiBPQUJVRkZFUiBtdXN0IGJlIHNldCB3aXRoIGNvdW50ZXJzIG9mZiwKPiAgIAkgKiBiZWZvcmUg T0FTVEFUVVMxLCBidXQgYWZ0ZXIgT0FTVEFUVVMyCj4gICAJICovCj4gICAJSTkxNV9XUklURShH RU43X09BU1RBVFVTMiwKPiAgIAkJICAgZ3R0X29mZnNldCB8IEdFTjdfT0FTVEFUVVMyX01FTV9T RUxFQ1RfR0dUVCk7IC8qIGhlYWQgKi8KPiAtCWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5o ZWFkID0gZ3R0X29mZnNldDsKPiArCXN0cmVhbS0+b2FfYnVmZmVyLmhlYWQgPSBndHRfb2Zmc2V0 Owo+ICAgCj4gICAJSTkxNV9XUklURShHRU43X09BQlVGRkVSLCBndHRfb2Zmc2V0KTsKPiAgIAo+ ICAgCUk5MTVfV1JJVEUoR0VON19PQVNUQVRVUzEsIGd0dF9vZmZzZXQgfCBPQUJVRkZFUl9TSVpF XzE2TSk7IC8qIHRhaWwgKi8KPiAgIAo+ICAgCS8qIE1hcmsgdGhhdCB3ZSBuZWVkIHVwZGF0ZWQg dGFpbCBwb2ludGVycyB0byByZWFkIGZyb20uLi4gKi8KPiAtCWRldl9wcml2LT5wZXJmLm9hLm9h X2J1ZmZlci50YWlsc1swXS5vZmZzZXQgPSBJTlZBTElEX1RBSUxfUFRSOwo+IC0JZGV2X3ByaXYt PnBlcmYub2Eub2FfYnVmZmVyLnRhaWxzWzFdLm9mZnNldCA9IElOVkFMSURfVEFJTF9QVFI7Cj4g KwlzdHJlYW0tPm9hX2J1ZmZlci50YWlsc1swXS5vZmZzZXQgPSBJTlZBTElEX1RBSUxfUFRSOwo+ ICsJc3RyZWFtLT5vYV9idWZmZXIudGFpbHNbMV0ub2Zmc2V0ID0gSU5WQUxJRF9UQUlMX1BUUjsK PiAgIAo+IC0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVm ZmVyLnB0cl9sb2NrLCBmbGFncyk7Cj4gKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzdHJlYW0t Pm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOwo+ICAgCj4gICAJLyogT24gSGFzd2VsbCB3ZSBo YXZlIHRvIHRyYWNrIHdoaWNoIE9BU1RBVFVTMSBmbGFncyB3ZSd2ZQo+ICAgCSAqIGFscmVhZHkg c2VlbiBzaW5jZSB0aGV5IGNhbid0IGJlIGNsZWFyZWQgd2hpbGUgcGVyaW9kaWMKPiAgIAkgKiBz YW1wbGluZyBpcyBlbmFibGVkLgo+ICAgCSAqLwo+IC0JZGV2X3ByaXYtPnBlcmYub2EuZ2VuN19s YXRjaGVkX29hc3RhdHVzMSA9IDA7Cj4gKwlkZXZfcHJpdi0+cGVyZi5nZW43X2xhdGNoZWRfb2Fz dGF0dXMxID0gMDsKPiAgIAo+ICAgCS8qIE5COiBhbHRob3VnaCB0aGUgT0EgYnVmZmVyIHdpbGwg aW5pdGlhbGx5IGJlIGFsbG9jYXRlZAo+ICAgCSAqIHplcm9lZCB2aWEgc2htZnMgKGFuZCBzbyB0 aGlzIG1lbXNldCBpcyByZWR1bmRhbnQgd2hlbgo+IEBAIC0xNDI3LDI0ICsxNDMzLDI1IEBAIHN0 YXRpYyB2b2lkIGdlbjdfaW5pdF9vYV9idWZmZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ICAgCSAqIHRoZSBhc3N1bXB0aW9uIHRoYXQgbmV3IHJlcG9ydHMgYXJlIGJlaW5n IHdyaXR0ZW4gdG8gemVyb2VkCj4gICAJICogbWVtb3J5Li4uCj4gICAJICovCj4gLQltZW1zZXQo ZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZhZGRyLCAwLCBPQV9CVUZGRVJfU0laRSk7Cj4g KwltZW1zZXQoc3RyZWFtLT5vYV9idWZmZXIudmFkZHIsIDAsIE9BX0JVRkZFUl9TSVpFKTsKPiAg IAo+ICAgCS8qIE1heWJlIG1ha2UgLT5wb2xsaW4gcGVyLXN0cmVhbSBzdGF0ZSBpZiB3ZSBzdXBw b3J0IG11bHRpcGxlCj4gICAJICogY29uY3VycmVudCBzdHJlYW1zIGluIHRoZSBmdXR1cmUuCj4g ICAJICovCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS5wb2xsaW4gPSBmYWxzZTsKPiArCXN0cmVhbS0+ cG9sbGluID0gZmFsc2U7Cj4gICB9Cj4gICAKPiAtc3RhdGljIHZvaWQgZ2VuOF9pbml0X29hX2J1 ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3N0YXRpYyB2b2lkIGdl bjhfaW5pdF9vYV9idWZmZXIoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKPiAgIHsK PiAtCXUzMiBndHRfb2Zmc2V0ID0gaTkxNV9nZ3R0X29mZnNldChkZXZfcHJpdi0+cGVyZi5vYS5v YV9idWZmZXIudm1hKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0 cmVhbS0+ZGV2X3ByaXY7Cj4gKwl1MzIgZ3R0X29mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQoc3Ry ZWFtLT5vYV9idWZmZXIudm1hKTsKPiAgIAl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICAgCj4gLQlz cGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnB0cl9sb2NrLCBm bGFncyk7Cj4gKwlzcGluX2xvY2tfaXJxc2F2ZSgmc3RyZWFtLT5vYV9idWZmZXIucHRyX2xvY2ss IGZsYWdzKTsKPiAgIAo+ICAgCUk5MTVfV1JJVEUoR0VOOF9PQVNUQVRVUywgMCk7Cj4gICAJSTkx NV9XUklURShHRU44X09BSEVBRFBUUiwgZ3R0X29mZnNldCk7Cj4gLQlkZXZfcHJpdi0+cGVyZi5v YS5vYV9idWZmZXIuaGVhZCA9IGd0dF9vZmZzZXQ7Cj4gKwlzdHJlYW0tPm9hX2J1ZmZlci5oZWFk ID0gZ3R0X29mZnNldDsKPiAgIAo+ICAgCUk5MTVfV1JJVEUoR0VOOF9PQUJVRkZFUl9VRFcsIDAp Owo+ICAgCj4gQEAgLTE0NjEsMTcgKzE0NjgsMTcgQEAgc3RhdGljIHZvaWQgZ2VuOF9pbml0X29h X2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAJSTkxNV9XUklU RShHRU44X09BVEFJTFBUUiwgZ3R0X29mZnNldCAmIEdFTjhfT0FUQUlMUFRSX01BU0spOwo+ICAg Cj4gICAJLyogTWFyayB0aGF0IHdlIG5lZWQgdXBkYXRlZCB0YWlsIHBvaW50ZXJzIHRvIHJlYWQg ZnJvbS4uLiAqLwo+IC0JZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnRhaWxzWzBdLm9mZnNl dCA9IElOVkFMSURfVEFJTF9QVFI7Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudGFp bHNbMV0ub2Zmc2V0ID0gSU5WQUxJRF9UQUlMX1BUUjsKPiArCXN0cmVhbS0+b2FfYnVmZmVyLnRh aWxzWzBdLm9mZnNldCA9IElOVkFMSURfVEFJTF9QVFI7Cj4gKwlzdHJlYW0tPm9hX2J1ZmZlci50 YWlsc1sxXS5vZmZzZXQgPSBJTlZBTElEX1RBSUxfUFRSOwo+ICAgCj4gICAJLyoKPiAgIAkgKiBS ZXNldCBzdGF0ZSB1c2VkIHRvIHJlY29nbmlzZSBjb250ZXh0IHN3aXRjaGVzLCBhZmZlY3Rpbmcg d2hpY2gKPiAgIAkgKiByZXBvcnRzIHdlIHdpbGwgZm9yd2FyZCB0byB1c2Vyc3BhY2Ugd2hpbGUg ZmlsdGVyaW5nIGZvciBhIHNpbmdsZQo+ICAgCSAqIGNvbnRleHQuCj4gICAJICovCj4gLQlkZXZf cHJpdi0+cGVyZi5vYS5vYV9idWZmZXIubGFzdF9jdHhfaWQgPSBJTlZBTElEX0NUWF9JRDsKPiAr CXN0cmVhbS0+b2FfYnVmZmVyLmxhc3RfY3R4X2lkID0gSU5WQUxJRF9DVFhfSUQ7Cj4gICAKPiAt CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJf bG9jaywgZmxhZ3MpOwo+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc3RyZWFtLT5vYV9idWZm ZXIucHRyX2xvY2ssIGZsYWdzKTsKPiAgIAo+ICAgCS8qCj4gICAJICogTkI6IGFsdGhvdWdoIHRo ZSBPQSBidWZmZXIgd2lsbCBpbml0aWFsbHkgYmUgYWxsb2NhdGVkCj4gQEAgLTE0ODUsMjIgKzE0 OTIsMjMgQEAgc3RhdGljIHZvaWQgZ2VuOF9pbml0X29hX2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAJICogdGhlIGFzc3VtcHRpb24gdGhhdCBuZXcgcmVwb3J0 cyBhcmUgYmVpbmcgd3JpdHRlbiB0byB6ZXJvZWQKPiAgIAkgKiBtZW1vcnkuLi4KPiAgIAkgKi8K PiAtCW1lbXNldChkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudmFkZHIsIDAsIE9BX0JVRkZF Ul9TSVpFKTsKPiArCW1lbXNldChzdHJlYW0tPm9hX2J1ZmZlci52YWRkciwgMCwgT0FfQlVGRkVS X1NJWkUpOwo+ICAgCj4gICAJLyoKPiAgIAkgKiBNYXliZSBtYWtlIC0+cG9sbGluIHBlci1zdHJl YW0gc3RhdGUgaWYgd2Ugc3VwcG9ydCBtdWx0aXBsZQo+ICAgCSAqIGNvbmN1cnJlbnQgc3RyZWFt cyBpbiB0aGUgZnV0dXJlLgo+ICAgCSAqLwo+IC0JZGV2X3ByaXYtPnBlcmYub2EucG9sbGluID0g ZmFsc2U7Cj4gKwlzdHJlYW0tPnBvbGxpbiA9IGZhbHNlOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyBp bnQgYWxsb2Nfb2FfYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAr c3RhdGljIGludCBhbGxvY19vYV9idWZmZXIoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVh bSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqYm87Cj4gKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2Owo+ICAgCXN0cnVj dCBpOTE1X3ZtYSAqdm1hOwo+ICAgCWludCByZXQ7Cj4gICAKPiAtCWlmIChXQVJOX09OKGRldl9w cml2LT5wZXJmLm9hLm9hX2J1ZmZlci52bWEpKQo+ICsJaWYgKFdBUk5fT04oc3RyZWFtLT5vYV9i dWZmZXIudm1hKSkKPiAgIAkJcmV0dXJuIC1FTk9ERVY7Cj4gICAKPiAgIAlyZXQgPSBpOTE1X211 dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmZGV2X3ByaXYtPmRybSk7Cj4gQEAgLTE1MjUsMTggKzE1 MzMsMTggQEAgc3RhdGljIGludCBhbGxvY19vYV9idWZmZXIoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+ICAgCQlyZXQgPSBQVFJfRVJSKHZtYSk7Cj4gICAJCWdvdG8gZXJyX3Vu cmVmOwo+ICAgCX0KPiAtCWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci52bWEgPSB2bWE7Cj4g KwlzdHJlYW0tPm9hX2J1ZmZlci52bWEgPSB2bWE7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJmLm9h Lm9hX2J1ZmZlci52YWRkciA9Cj4gKwlzdHJlYW0tPm9hX2J1ZmZlci52YWRkciA9Cj4gICAJCWk5 MTVfZ2VtX29iamVjdF9waW5fbWFwKGJvLCBJOTE1X01BUF9XQik7Cj4gLQlpZiAoSVNfRVJSKGRl dl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci52YWRkcikpIHsKPiAtCQlyZXQgPSBQVFJfRVJSKGRl dl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci52YWRkcik7Cj4gKwlpZiAoSVNfRVJSKHN0cmVhbS0+ b2FfYnVmZmVyLnZhZGRyKSkgewo+ICsJCXJldCA9IFBUUl9FUlIoc3RyZWFtLT5vYV9idWZmZXIu dmFkZHIpOwo+ICAgCQlnb3RvIGVycl91bnBpbjsKPiAgIAl9Cj4gICAKPiAgIAlEUk1fREVCVUdf RFJJVkVSKCJPQSBCdWZmZXIgaW5pdGlhbGl6ZWQsIGd0dCBvZmZzZXQgPSAweCV4LCB2YWRkciA9 ICVwXG4iLAo+IC0JCQkgaTkxNV9nZ3R0X29mZnNldChkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZm ZXIudm1hKSwKPiAtCQkJIGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci52YWRkcik7Cj4gKwkJ CSBpOTE1X2dndHRfb2Zmc2V0KHN0cmVhbS0+b2FfYnVmZmVyLnZtYSksCj4gKwkJCSBzdHJlYW0t Pm9hX2J1ZmZlci52YWRkcik7Cj4gICAKPiAgIAlnb3RvIHVubG9jazsKPiAgIAo+IEBAIC0xNTQ2 LDggKzE1NTQsOCBAQCBzdGF0aWMgaW50IGFsbG9jX29hX2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gICBlcnJfdW5yZWY6Cj4gICAJaTkxNV9nZW1fb2JqZWN0X3B1 dChibyk7Cj4gICAKPiAtCWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci52YWRkciA9IE5VTEw7 Cj4gLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudm1hID0gTlVMTDsKPiArCXN0cmVhbS0+ b2FfYnVmZmVyLnZhZGRyID0gTlVMTDsKPiArCXN0cmVhbS0+b2FfYnVmZmVyLnZtYSA9IE5VTEw7 Cj4gICAKPiAgIHVubG9jazoKPiAgIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0 X211dGV4KTsKPiBAQCAtMTYxNyw4ICsxNjI1LDEwIEBAIHN0YXRpYyBpbnQgaHN3X2VuYWJsZV9t ZXRyaWNfc2V0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCj4gICAJcmV0dXJuIDA7 Cj4gICB9Cj4gICAKPiAtc3RhdGljIHZvaWQgaHN3X2Rpc2FibGVfbWV0cmljX3NldChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3N0YXRpYyB2b2lkIGhzd19kaXNhYmxlX21l dHJpY19zZXQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKPiAgIHsKPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3ByaXY7Cj4gKwo+ICAg CUk5MTVfV1JJVEUoR0VONl9VQ0dDVEwxLCAoSTkxNV9SRUFEKEdFTjZfVUNHQ1RMMSkgJgo+ICAg CQkJCSAgfkdFTjZfQ1NVTklUX0NMT0NLX0dBVEVfRElTQUJMRSkpOwo+ICAgCUk5MTVfV1JJVEUo R0VON19NSVNDQ1BDVEwsIChJOTE1X1JFQUQoR0VON19NSVNDQ1BDVEwpIHwKPiBAQCAtMTYzNiwx MyArMTY0NiwxNCBAQCBzdGF0aWMgdm9pZCBoc3dfZGlzYWJsZV9tZXRyaWNfc2V0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgICAqIGluIHRoZSBjYXNlIHRoYXQgdGhlIE9B IHVuaXQgaGFzIGJlZW4gZGlzYWJsZWQuCj4gICAgKi8KPiAgIHN0YXRpYyB2b2lkCj4gLWdlbjhf dXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCj4gK2dl bjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3Ry ZWFtLAo+ICsJCQkgICAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAo+ICAgCQkJICAgICAg IHUzMiAqcmVnX3N0YXRlLAo+ICAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpOTE1X29hX2NvbmZp ZyAqb2FfY29uZmlnKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0g Y2UtPmdlbV9jb250ZXh0LT5pOTE1Owo+IC0JdTMyIGN0eF9vYWN0eGN0cmwgPSBpOTE1LT5wZXJm Lm9hLmN0eF9vYWN0eGN0cmxfb2Zmc2V0Owo+IC0JdTMyIGN0eF9mbGV4ZXUwID0gaTkxNS0+cGVy Zi5vYS5jdHhfZmxleGV1MF9vZmZzZXQ7Cj4gKwl1MzIgY3R4X29hY3R4Y3RybCA9IGk5MTUtPnBl cmYuY3R4X29hY3R4Y3RybF9vZmZzZXQ7Cj4gKwl1MzIgY3R4X2ZsZXhldTAgPSBpOTE1LT5wZXJm LmN0eF9mbGV4ZXUwX29mZnNldDsKPiAgIAkvKiBUaGUgTU1JTyBvZmZzZXRzIGZvciBGbGV4IEVV IHJlZ2lzdGVycyBhcmVuJ3QgY29udGlndW91cyAqLwo+ICAgCWk5MTVfcmVnX3QgZmxleF9yZWdz W10gPSB7Cj4gICAJCUVVX1BFUkZfQ05UTDAsCj4gQEAgLTE2NTYsOCArMTY2Nyw4IEBAIGdlbjhf dXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCj4gICAJ aW50IGk7Cj4gICAKPiAgIAlDVFhfUkVHKHJlZ19zdGF0ZSwgY3R4X29hY3R4Y3RybCwgR0VOOF9P QUNUWENPTlRST0wsCj4gLQkJKGk5MTUtPnBlcmYub2EucGVyaW9kX2V4cG9uZW50IDw8IEdFTjhf T0FfVElNRVJfUEVSSU9EX1NISUZUKSB8Cj4gLQkJKGk5MTUtPnBlcmYub2EucGVyaW9kaWMgPyBH RU44X09BX1RJTUVSX0VOQUJMRSA6IDApIHwKPiArCQkoc3RyZWFtLT5wZXJpb2RfZXhwb25lbnQg PDwgR0VOOF9PQV9USU1FUl9QRVJJT0RfU0hJRlQpIHwKPiArCQkoc3RyZWFtLT5wZXJpb2RpYyA/ IEdFTjhfT0FfVElNRVJfRU5BQkxFIDogMCkgfAo+ICAgCQlHRU44X09BX0NPVU5URVJfUkVTVU1F KTsKPiAgIAo+ICAgCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGZsZXhfcmVncyk7IGkrKykg ewo+IEBAIC0xNjczLDEwICsxNjg0LDEyIEBAIGdlbjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tl ZChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCj4gICAKPiAgIAkJaWYgKG9hX2NvbmZpZykgewo+ ICAgCQkJdTMyIGo7Cj4gKwkJCXN0cnVjdCBpOTE1X29hX3JlZyByZWc7Cj4gICAKPiAgIAkJCWZv ciAoaiA9IDA7IGogPCBvYV9jb25maWctPmZsZXhfcmVnc19sZW47IGorKykgewo+IC0JCQkJaWYg KGk5MTVfbW1pb19yZWdfb2Zmc2V0KG9hX2NvbmZpZy0+ZmxleF9yZWdzW2pdLmFkZHIpID09IG1t aW8pIHsKPiAtCQkJCQl2YWx1ZSA9IG9hX2NvbmZpZy0+ZmxleF9yZWdzW2pdLnZhbHVlOwo+ICsJ CQkJcmVnID0gb2FfY29uZmlnLT5mbGV4X3JlZ3Nbal07Cj4gKwkJCQlpZiAoaTkxNV9tbWlvX3Jl Z19vZmZzZXQocmVnLmFkZHIpID09IG1taW8pIHsKPiArCQkJCQl2YWx1ZSA9IHJlZy52YWx1ZTsK PiAgIAkJCQkJYnJlYWs7Cj4gICAJCQkJfQo+ICAgCQkJfQo+IEBAIC0xNzE0LDkgKzE3MjcsMTAg QEAgZ2VuOF91cGRhdGVfcmVnX3N0YXRlX3VubG9ja2VkKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpj ZSwKPiAgICAqCj4gICAgKiBOb3RlOiBpdCdzIG9ubHkgdGhlIFJDUy9SZW5kZXIgY29udGV4dCB0 aGF0IGhhcyBhbnkgT0Egc3RhdGUuCj4gICAgKi8KPiAtc3RhdGljIGludCBnZW44X2NvbmZpZ3Vy ZV9hbGxfY29udGV4dHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICtzdGF0 aWMgaW50IGdlbjhfY29uZmlndXJlX2FsbF9jb250ZXh0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVh bSAqc3RyZWFtLAo+ICAgCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9jb25maWcgKm9h X2NvbmZpZykKPiAgIHsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0 cmVhbS0+ZGV2X3ByaXY7Cj4gICAJdW5zaWduZWQgaW50IG1hcF90eXBlID0gaTkxNV9jb2hlcmVu dF9tYXBfdHlwZShkZXZfcHJpdik7Cj4gICAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsK PiAgIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKPiBAQCAtMTc3MCw3ICsxNzg0LDcgQEAgc3Rh dGljIGludCBnZW44X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ICAgCQkJY2UtPnN0YXRlLT5vYmotPm1tLmRpcnR5ID0gdHJ1ZTsKPiAg IAkJCXJlZ3MgKz0gTFJDX1NUQVRFX1BOICogUEFHRV9TSVpFIC8gc2l6ZW9mKCpyZWdzKTsKPiAg IAo+IC0JCQlnZW44X3VwZGF0ZV9yZWdfc3RhdGVfdW5sb2NrZWQoY2UsIHJlZ3MsIG9hX2NvbmZp Zyk7Cj4gKwkJCWdlbjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChzdHJlYW0sIGNlLCByZWdz LCBvYV9jb25maWcpOwo+ICAgCj4gICAJCQlpOTE1X2dlbV9vYmplY3RfdW5waW5fbWFwKGNlLT5z dGF0ZS0+b2JqKTsKPiAgIAkJfQo+IEBAIC0xODIxLDggKzE4MzUsOSBAQCBzdGF0aWMgaW50IGdl bjhfZW5hYmxlX21ldHJpY19zZXQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKPiAg IAkgKi8KPiAgIAlpZiAoSVNfR0VOX1JBTkdFKGRldl9wcml2LCA5LCAxMSkpIHsKPiAgIAkJSTkx NV9XUklURShHRU44X09BX0RFQlVHLAo+IC0JCQkgICBfTUFTS0VEX0JJVF9FTkFCTEUoR0VOOV9P QV9ERUJVR19ESVNBQkxFX0NMS19SQVRJT19SRVBPUlRTIHwKPiAtCQkJCQkgICAgICBHRU45X09B X0RFQlVHX0lOQ0xVREVfQ0xLX1JBVElPKSk7Cj4gKwkJCSAgIF9NQVNLRURfQklUX0VOQUJMRSgK PiArCQkJCSAgIEdFTjlfT0FfREVCVUdfRElTQUJMRV9DTEtfUkFUSU9fUkVQT1JUUyB8Cj4gKwkJ CQkgICBHRU45X09BX0RFQlVHX0lOQ0xVREVfQ0xLX1JBVElPKSk7Cj4gICAJfQo+ICAgCj4gICAJ LyoKPiBAQCAtMTgzMCw3ICsxODQ1LDcgQEAgc3RhdGljIGludCBnZW44X2VuYWJsZV9tZXRyaWNf c2V0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCj4gICAJICogdG8gbWFrZSBzdXJl IGFsbCBzbGljZXMvc3Vic2xpY2VzIGFyZSBPTiBiZWZvcmUgd3JpdGluZyB0byBOT0EKPiAgIAkg KiByZWdpc3RlcnMuCj4gICAJICovCj4gLQlyZXQgPSBnZW44X2NvbmZpZ3VyZV9hbGxfY29udGV4 dHMoZGV2X3ByaXYsIG9hX2NvbmZpZyk7Cj4gKwlyZXQgPSBnZW44X2NvbmZpZ3VyZV9hbGxfY29u dGV4dHMoc3RyZWFtLCBvYV9jb25maWcpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7 Cj4gICAKPiBAQCAtMTg0MiwxOSArMTg1NywyMyBAQCBzdGF0aWMgaW50IGdlbjhfZW5hYmxlX21l dHJpY19zZXQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKPiAgIAlyZXR1cm4gMDsK PiAgIH0KPiAgIAo+IC1zdGF0aWMgdm9pZCBnZW44X2Rpc2FibGVfbWV0cmljX3NldChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3N0YXRpYyB2b2lkIGdlbjhfZGlzYWJsZV9t ZXRyaWNfc2V0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCj4gICB7Cj4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2Owo+ICsKPiAg IAkvKiBSZXNldCBhbGwgY29udGV4dHMnIHNsaWNlcy9zdWJzbGljZXMgY29uZmlndXJhdGlvbnMu ICovCj4gLQlnZW44X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoZGV2X3ByaXYsIE5VTEwpOwo+ICsJ Z2VuOF9jb25maWd1cmVfYWxsX2NvbnRleHRzKHN0cmVhbSwgTlVMTCk7Cj4gICAKPiAgIAlJOTE1 X1dSSVRFKEdEVF9DSElDS0VOX0JJVFMsIChJOTE1X1JFQUQoR0RUX0NISUNLRU5fQklUUykgJgo+ ICAgCQkJCSAgICAgIH5HVF9OT0FfRU5BQkxFKSk7Cj4gICB9Cj4gICAKPiAtc3RhdGljIHZvaWQg Z2VuMTBfZGlzYWJsZV9tZXRyaWNfc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiArc3RhdGljIHZvaWQgZ2VuMTBfZGlzYWJsZV9tZXRyaWNfc2V0KHN0cnVjdCBpOTE1X3Bl cmZfc3RyZWFtICpzdHJlYW0pCj4gICB7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2Owo+ICsKPiAgIAkvKiBSZXNldCBhbGwgY29udGV4dHMn IHNsaWNlcy9zdWJzbGljZXMgY29uZmlndXJhdGlvbnMuICovCj4gLQlnZW44X2NvbmZpZ3VyZV9h bGxfY29udGV4dHMoZGV2X3ByaXYsIE5VTEwpOwo+ICsJZ2VuOF9jb25maWd1cmVfYWxsX2NvbnRl eHRzKHN0cmVhbSwgTlVMTCk7Cj4gICAKPiAgIAkvKiBNYWtlIHN1cmUgd2UgZGlzYWJsZSBub2Eg dG8gc2F2ZSBwb3dlci4gKi8KPiAgIAlJOTE1X1dSSVRFKFJQTV9DT05GSUcxLAo+IEBAIC0xODY1 LDEwICsxODg0LDEwIEBAIHN0YXRpYyB2b2lkIGdlbjdfb2FfZW5hYmxlKHN0cnVjdCBpOTE1X3Bl cmZfc3RyZWFtICpzdHJlYW0pCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKPiAgIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAq Y3R4ID0gc3RyZWFtLT5jdHg7Cj4gLQl1MzIgY3R4X2lkID0gZGV2X3ByaXYtPnBlcmYub2Euc3Bl Y2lmaWNfY3R4X2lkOwo+IC0JYm9vbCBwZXJpb2RpYyA9IGRldl9wcml2LT5wZXJmLm9hLnBlcmlv ZGljOwo+IC0JdTMyIHBlcmlvZF9leHBvbmVudCA9IGRldl9wcml2LT5wZXJmLm9hLnBlcmlvZF9l eHBvbmVudDsKPiAtCXUzMiByZXBvcnRfZm9ybWF0ID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVm ZmVyLmZvcm1hdDsKPiArCXUzMiBjdHhfaWQgPSBzdHJlYW0tPnNwZWNpZmljX2N0eF9pZDsKPiAr CWJvb2wgcGVyaW9kaWMgPSBzdHJlYW0tPnBlcmlvZGljOwo+ICsJdTMyIHBlcmlvZF9leHBvbmVu dCA9IHN0cmVhbS0+cGVyaW9kX2V4cG9uZW50Owo+ICsJdTMyIHJlcG9ydF9mb3JtYXQgPSBzdHJl YW0tPm9hX2J1ZmZlci5mb3JtYXQ7Cj4gICAKPiAgIAkvKgo+ICAgCSAqIFJlc2V0IGJ1ZiBwb2lu dGVycyBzbyB3ZSBkb24ndCBmb3J3YXJkIHJlcG9ydHMgZnJvbSBiZWZvcmUgbm93Lgo+IEBAIC0x ODc5LDcgKzE4OTgsNyBAQCBzdGF0aWMgdm9pZCBnZW43X29hX2VuYWJsZShzdHJ1Y3QgaTkxNV9w ZXJmX3N0cmVhbSAqc3RyZWFtKQo+ICAgCSAqIG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgY2VydGFp biBmaWVsZHMgYXJlIHdyaXR0ZW4gdG8gemVyb2VkCj4gICAJICogbWVtb3J5IHdoaWNoIHRoaXMg aGVscHMgbWFpbnRhaW5zLgo+ICAgCSAqLwo+IC0JZ2VuN19pbml0X29hX2J1ZmZlcihkZXZfcHJp dik7Cj4gKwlnZW43X2luaXRfb2FfYnVmZmVyKHN0cmVhbSk7Cj4gICAKPiAgIAlJOTE1X1dSSVRF KEdFTjdfT0FDT05UUk9MLAo+ICAgCQkgICAoY3R4X2lkICYgR0VON19PQUNPTlRST0xfQ1RYX01B U0spIHwKPiBAQCAtMTg5NCw3ICsxOTEzLDcgQEAgc3RhdGljIHZvaWQgZ2VuN19vYV9lbmFibGUo c3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKPiAgIHN0YXRpYyB2b2lkIGdlbjhfb2Ff ZW5hYmxlKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCj4gICB7Cj4gICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKPiAtCXUzMiBy ZXBvcnRfZm9ybWF0ID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmZvcm1hdDsKPiArCXUz MiByZXBvcnRfZm9ybWF0ID0gc3RyZWFtLT5vYV9idWZmZXIuZm9ybWF0Owo+ICAgCj4gICAJLyoK PiAgIAkgKiBSZXNldCBidWYgcG9pbnRlcnMgc28gd2UgZG9uJ3QgZm9yd2FyZCByZXBvcnRzIGZy b20gYmVmb3JlIG5vdy4KPiBAQCAtMTkwNSw3ICsxOTI0LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9v YV9lbmFibGUoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKPiAgIAkgKiBvbiB0aGUg YXNzdW1wdGlvbiB0aGF0IGNlcnRhaW4gZmllbGRzIGFyZSB3cml0dGVuIHRvIHplcm9lZAo+ICAg CSAqIG1lbW9yeSB3aGljaCB0aGlzIGhlbHBzIG1haW50YWlucy4KPiAgIAkgKi8KPiAtCWdlbjhf aW5pdF9vYV9idWZmZXIoZGV2X3ByaXYpOwo+ICsJZ2VuOF9pbml0X29hX2J1ZmZlcihzdHJlYW0p Owo+ICAgCj4gICAJLyoKPiAgIAkgKiBOb3RlOiB3ZSBkb24ndCByZWx5IG9uIHRoZSBoYXJkd2Fy ZSB0byBwZXJmb3JtIHNpbmdsZSBjb250ZXh0Cj4gQEAgLTE5MzAsMTAgKzE5NDksMTAgQEAgc3Rh dGljIHZvaWQgaTkxNV9vYV9zdHJlYW1fZW5hYmxlKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpz dHJlYW0pCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3Ry ZWFtLT5kZXZfcHJpdjsKPiAgIAo+IC0JZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9hX2VuYWJsZShz dHJlYW0pOwo+ICsJZGV2X3ByaXYtPnBlcmYub3BzLm9hX2VuYWJsZShzdHJlYW0pOwo+ICAgCj4g LQlpZiAoZGV2X3ByaXYtPnBlcmYub2EucGVyaW9kaWMpCj4gLQkJaHJ0aW1lcl9zdGFydCgmZGV2 X3ByaXYtPnBlcmYub2EucG9sbF9jaGVja190aW1lciwKPiArCWlmIChzdHJlYW0tPnBlcmlvZGlj KQo+ICsJCWhydGltZXJfc3RhcnQoJnN0cmVhbS0+cG9sbF9jaGVja190aW1lciwKPiAgIAkJCSAg ICAgIG5zX3RvX2t0aW1lKFBPTExfUEVSSU9EKSwKPiAgIAkJCSAgICAgIEhSVElNRVJfTU9ERV9S RUxfUElOTkVEKTsKPiAgIH0KPiBAQCAtMTk3MiwxMCArMTk5MSwxMCBAQCBzdGF0aWMgdm9pZCBp OTE1X29hX3N0cmVhbV9kaXNhYmxlKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCj4g ICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZf cHJpdjsKPiAgIAo+IC0JZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9hX2Rpc2FibGUoc3RyZWFtKTsK PiArCWRldl9wcml2LT5wZXJmLm9wcy5vYV9kaXNhYmxlKHN0cmVhbSk7Cj4gICAKPiAtCWlmIChk ZXZfcHJpdi0+cGVyZi5vYS5wZXJpb2RpYykKPiAtCQlocnRpbWVyX2NhbmNlbCgmZGV2X3ByaXYt PnBlcmYub2EucG9sbF9jaGVja190aW1lcik7Cj4gKwlpZiAoc3RyZWFtLT5wZXJpb2RpYykKPiAr CQlocnRpbWVyX2NhbmNlbCgmc3RyZWFtLT5wb2xsX2NoZWNrX3RpbWVyKTsKPiAgIH0KPiAgIAo+ ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtX29wcyBpOTE1X29hX3N0cmVh bV9vcHMgPSB7Cj4gQEAgLTIwMjcsNyArMjA0Niw3IEBAIHN0YXRpYyBpbnQgaTkxNV9vYV9zdHJl YW1faW5pdChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAo+ICAgCQlyZXR1cm4gLUVJ TlZBTDsKPiAgIAl9Cj4gICAKPiAtCWlmICghZGV2X3ByaXYtPnBlcmYub2Eub3BzLmVuYWJsZV9t ZXRyaWNfc2V0KSB7Cj4gKwlpZiAoIWRldl9wcml2LT5wZXJmLm9wcy5lbmFibGVfbWV0cmljX3Nl dCkgewo+ICAgCQlEUk1fREVCVUcoIk9BIHVuaXQgbm90IHN1cHBvcnRlZFxuIik7Cj4gICAJCXJl dHVybiAtRU5PREVWOwo+ICAgCX0KPiBAQCAtMjAzNiw3ICsyMDU1LDcgQEAgc3RhdGljIGludCBp OTE1X29hX3N0cmVhbV9pbml0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCj4gICAJ ICogY291bnRlciByZXBvcnRzIGFuZCBtYXJzaGFsIHRvIHRoZSBhcHByb3ByaWF0ZSBjbGllbnQK PiAgIAkgKiB3ZSBjdXJyZW50bHkgb25seSBhbGxvdyBleGNsdXNpdmUgYWNjZXNzCj4gICAJICov Cj4gLQlpZiAoZGV2X3ByaXYtPnBlcmYub2EuZXhjbHVzaXZlX3N0cmVhbSkgewo+ICsJaWYgKGRl dl9wcml2LT5wZXJmLmV4Y2x1c2l2ZV9zdHJlYW0pIHsKPiAgIAkJRFJNX0RFQlVHKCJPQSB1bml0 IGFscmVhZHkgaW4gdXNlXG4iKTsKPiAgIAkJcmV0dXJuIC1FQlVTWTsKPiAgIAl9Cj4gQEAgLTIw NDYsNDMgKzIwNjUsMjMgQEAgc3RhdGljIGludCBpOTE1X29hX3N0cmVhbV9pbml0KHN0cnVjdCBp OTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCj4gICAJCXJldHVybiAtRUlOVkFMOwo+ICAgCX0KPiAg IAo+IC0JLyogV2Ugc2V0IHVwIHNvbWUgcmF0ZWxpbWl0IHN0YXRlIHRvIHBvdGVudGlhbGx5IHRo cm90dGxlIGFueSBfTk9URVMKPiAtCSAqIGFib3V0IHNwdXJpb3VzLCBpbnZhbGlkIE9BIHJlcG9y dHMgd2hpY2ggd2UgZG9uJ3QgZm9yd2FyZCB0bwo+IC0JICogdXNlcnNwYWNlLgo+IC0JICoKPiAt CSAqIFRoZSBpbml0aWFsaXphdGlvbiBpcyBhc3NvY2lhdGVkIHdpdGggb3BlbmluZyB0aGUgc3Ry ZWFtIChub3QgZHJpdmVyCj4gLQkgKiBpbml0KSBjb25zaWRlcmluZyB3ZSBwcmludCBhIF9OT1RF IGFib3V0IGFueSB0aHJvdHRsaW5nIHdoZW4gY2xvc2luZwo+IC0JICogdGhlIHN0cmVhbSBpbnN0 ZWFkIG9mIHdhaXRpbmcgdW50aWwgZHJpdmVyIF9maW5pIHdoaWNoIG5vIG9uZSB3b3VsZAo+IC0J ICogZXZlciBzZWUuCj4gLQkgKgo+IC0JICogVXNpbmcgdGhlIHNhbWUgbGltaXRpbmcgZmFjdG9y cyBhcyBwcmludGtfcmF0ZWxpbWl0KCkKPiAtCSAqLwo+IC0JcmF0ZWxpbWl0X3N0YXRlX2luaXQo JmRldl9wcml2LT5wZXJmLm9hLnNwdXJpb3VzX3JlcG9ydF9ycywKPiAtCQkJICAgICA1ICogSFos IDEwKTsKPiAtCS8qIFNpbmNlIHdlIHVzZSBhIERSTV9OT1RFIGZvciBzcHVyaW91cyByZXBvcnRz IGl0IHdvdWxkIGJlCj4gLQkgKiBpbmNvbnNpc3RlbnQgdG8gbGV0IF9fcmF0ZWxpbWl0KCkgYXV0 b21hdGljYWxseSBwcmludCBhIHdhcm5pbmcgZm9yCj4gLQkgKiB0aHJvdHRsaW5nLgo+IC0JICov Cj4gLQlyYXRlbGltaXRfc2V0X2ZsYWdzKCZkZXZfcHJpdi0+cGVyZi5vYS5zcHVyaW91c19yZXBv cnRfcnMsCj4gLQkJCSAgICBSQVRFTElNSVRfTVNHX09OX1JFTEVBU0UpOwo+IC0KPiAgIAlzdHJl YW0tPnNhbXBsZV9zaXplID0gc2l6ZW9mKHN0cnVjdCBkcm1faTkxNV9wZXJmX3JlY29yZF9oZWFk ZXIpOwo+ICAgCj4gLQlmb3JtYXRfc2l6ZSA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2Zvcm1hdHNb cHJvcHMtPm9hX2Zvcm1hdF0uc2l6ZTsKPiArCWZvcm1hdF9zaXplID0gZGV2X3ByaXYtPnBlcmYu b2FfZm9ybWF0c1twcm9wcy0+b2FfZm9ybWF0XS5zaXplOwo+ICAgCj4gICAJc3RyZWFtLT5zYW1w bGVfZmxhZ3MgfD0gU0FNUExFX09BX1JFUE9SVDsKPiAgIAlzdHJlYW0tPnNhbXBsZV9zaXplICs9 IGZvcm1hdF9zaXplOwo+ICAgCj4gLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuZm9ybWF0 X3NpemUgPSBmb3JtYXRfc2l6ZTsKPiAtCWlmIChXQVJOX09OKGRldl9wcml2LT5wZXJmLm9hLm9h X2J1ZmZlci5mb3JtYXRfc2l6ZSA9PSAwKSkKPiArCXN0cmVhbS0+b2FfYnVmZmVyLmZvcm1hdF9z aXplID0gZm9ybWF0X3NpemU7Cj4gKwlpZiAoV0FSTl9PTihzdHJlYW0tPm9hX2J1ZmZlci5mb3Jt YXRfc2l6ZSA9PSAwKSkKPiAgIAkJcmV0dXJuIC1FSU5WQUw7Cj4gICAKPiAtCWRldl9wcml2LT5w ZXJmLm9hLm9hX2J1ZmZlci5mb3JtYXQgPQo+IC0JCWRldl9wcml2LT5wZXJmLm9hLm9hX2Zvcm1h dHNbcHJvcHMtPm9hX2Zvcm1hdF0uZm9ybWF0Owo+ICsJc3RyZWFtLT5vYV9idWZmZXIuZm9ybWF0 ID0KPiArCQlkZXZfcHJpdi0+cGVyZi5vYV9mb3JtYXRzW3Byb3BzLT5vYV9mb3JtYXRdLmZvcm1h dDsKPiAgIAo+IC0JZGV2X3ByaXYtPnBlcmYub2EucGVyaW9kaWMgPSBwcm9wcy0+b2FfcGVyaW9k aWM7Cj4gLQlpZiAoZGV2X3ByaXYtPnBlcmYub2EucGVyaW9kaWMpCj4gLQkJZGV2X3ByaXYtPnBl cmYub2EucGVyaW9kX2V4cG9uZW50ID0gcHJvcHMtPm9hX3BlcmlvZF9leHBvbmVudDsKPiArCXN0 cmVhbS0+cGVyaW9kaWMgPSBwcm9wcy0+b2FfcGVyaW9kaWM7Cj4gKwlpZiAoc3RyZWFtLT5wZXJp b2RpYykKPiArCQlzdHJlYW0tPnBlcmlvZF9leHBvbmVudCA9IHByb3BzLT5vYV9wZXJpb2RfZXhw b25lbnQ7Cj4gICAKPiAgIAlpZiAoc3RyZWFtLT5jdHgpIHsKPiAgIAkJcmV0ID0gb2FfZ2V0X3Jl bmRlcl9jdHhfaWQoc3RyZWFtKTsKPiBAQCAtMjExMyw3ICsyMTEyLDcgQEAgc3RhdGljIGludCBp OTE1X29hX3N0cmVhbV9pbml0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCj4gICAJ c3RyZWFtLT53YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwo+ICAgCWlu dGVsX3VuY29yZV9mb3JjZXdha2VfZ2V0KCZkZXZfcHJpdi0+dW5jb3JlLCBGT1JDRVdBS0VfQUxM KTsKPiAgIAo+IC0JcmV0ID0gYWxsb2Nfb2FfYnVmZmVyKGRldl9wcml2KTsKPiArCXJldCA9IGFs bG9jX29hX2J1ZmZlcihzdHJlYW0pOwo+ICAgCWlmIChyZXQpCj4gICAJCWdvdG8gZXJyX29hX2J1 Zl9hbGxvYzsKPiAgIAo+IEBAIC0yMTIyLDkgKzIxMjEsOSBAQCBzdGF0aWMgaW50IGk5MTVfb2Ff c3RyZWFtX2luaXQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKPiAgIAkJZ290byBl cnJfbG9jazsKPiAgIAo+ICAgCXN0cmVhbS0+b3BzID0gJmk5MTVfb2Ffc3RyZWFtX29wczsKPiAt CWRldl9wcml2LT5wZXJmLm9hLmV4Y2x1c2l2ZV9zdHJlYW0gPSBzdHJlYW07Cj4gKwlkZXZfcHJp di0+cGVyZi5leGNsdXNpdmVfc3RyZWFtID0gc3RyZWFtOwo+ICAgCj4gLQlyZXQgPSBkZXZfcHJp di0+cGVyZi5vYS5vcHMuZW5hYmxlX21ldHJpY19zZXQoc3RyZWFtKTsKPiArCXJldCA9IGRldl9w cml2LT5wZXJmLm9wcy5lbmFibGVfbWV0cmljX3NldChzdHJlYW0pOwo+ICAgCWlmIChyZXQpIHsK PiAgIAkJRFJNX0RFQlVHKCJVbmFibGUgdG8gZW5hYmxlIG1ldHJpYyBzZXRcbiIpOwo+ICAgCQln b3RvIGVycl9lbmFibGU7Cj4gQEAgLTIxMzIsMTUgKzIxMzEsMjEgQEAgc3RhdGljIGludCBpOTE1 X29hX3N0cmVhbV9pbml0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCj4gICAKPiAg IAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKPiAgIAo+ICsJaHJ0 aW1lcl9pbml0KCZzdHJlYW0tPnBvbGxfY2hlY2tfdGltZXIsCj4gKwkJICAgICBDTE9DS19NT05P VE9OSUMsIEhSVElNRVJfTU9ERV9SRUwpOwo+ICsJc3RyZWFtLT5wb2xsX2NoZWNrX3RpbWVyLmZ1 bmN0aW9uID0gb2FfcG9sbF9jaGVja190aW1lcl9jYjsKPiArCWluaXRfd2FpdHF1ZXVlX2hlYWQo JnN0cmVhbS0+cG9sbF93cSk7Cj4gKwlzcGluX2xvY2tfaW5pdCgmc3RyZWFtLT5vYV9idWZmZXIu cHRyX2xvY2spOwo+ICsKPiAgIAlyZXR1cm4gMDsKPiAgIAo+ICAgZXJyX2VuYWJsZToKPiAtCWRl dl9wcml2LT5wZXJmLm9hLmV4Y2x1c2l2ZV9zdHJlYW0gPSBOVUxMOwo+IC0JZGV2X3ByaXYtPnBl cmYub2Eub3BzLmRpc2FibGVfbWV0cmljX3NldChkZXZfcHJpdik7Cj4gKwlkZXZfcHJpdi0+cGVy Zi5leGNsdXNpdmVfc3RyZWFtID0gTlVMTDsKPiArCWRldl9wcml2LT5wZXJmLm9wcy5kaXNhYmxl X21ldHJpY19zZXQoc3RyZWFtKTsKPiAgIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3Ry dWN0X211dGV4KTsKPiAgIAo+ICAgZXJyX2xvY2s6Cj4gLQlmcmVlX29hX2J1ZmZlcihkZXZfcHJp dik7Cj4gKwlmcmVlX29hX2J1ZmZlcihzdHJlYW0pOwo+ICAgCj4gICBlcnJfb2FfYnVmX2FsbG9j Ogo+ICAgCXB1dF9vYV9jb25maWcoZGV2X3ByaXYsIHN0cmVhbS0+b2FfY29uZmlnKTsKPiBAQCAt MjE2NCw5ICsyMTY5LDEyIEBAIHZvaWQgaTkxNV9vYV9pbml0X3JlZ19zdGF0ZShzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gICAJaWYgKGVuZ2luZS0+Y2xhc3MgIT0gUkVOREVSX0NM QVNTKQo+ICAgCQlyZXR1cm47Cj4gICAKPiAtCXN0cmVhbSA9IGVuZ2luZS0+aTkxNS0+cGVyZi5v YS5leGNsdXNpdmVfc3RyZWFtOwo+ICsJc3RyZWFtID0gZW5naW5lLT5pOTE1LT5wZXJmLmV4Y2x1 c2l2ZV9zdHJlYW07Cj4gICAJaWYgKHN0cmVhbSkKPiAtCQlnZW44X3VwZGF0ZV9yZWdfc3RhdGVf dW5sb2NrZWQoY2UsIHJlZ3MsIHN0cmVhbS0+b2FfY29uZmlnKTsKPiArCQlnZW44X3VwZGF0ZV9y ZWdfc3RhdGVfdW5sb2NrZWQoc3RyZWFtLAo+ICsJCQkJCSAgICAgICBjZSwKPiArCQkJCQkgICAg ICAgcmVncywKPiArCQkJCQkgICAgICAgc3RyZWFtLT5vYV9jb25maWcpOwo+ICAgfQo+ICAgCj4g ICAvKioKPiBAQCAtMjI4Miw3ICsyMjkwLDcgQEAgc3RhdGljIHNzaXplX3QgaTkxNV9wZXJmX3Jl YWQoc3RydWN0IGZpbGUgKmZpbGUsCj4gICAJCS8qIE1heWJlIG1ha2UgLT5wb2xsaW4gcGVyLXN0 cmVhbSBzdGF0ZSBpZiB3ZSBzdXBwb3J0IG11bHRpcGxlCj4gICAJCSAqIGNvbmN1cnJlbnQgc3Ry ZWFtcyBpbiB0aGUgZnV0dXJlLgo+ICAgCQkgKi8KPiAtCQlkZXZfcHJpdi0+cGVyZi5vYS5wb2xs aW4gPSBmYWxzZTsKPiArCQlzdHJlYW0tPnBvbGxpbiA9IGZhbHNlOwo+ICAgCX0KPiAgIAo+ICAg CXJldHVybiByZXQ7Cj4gQEAgLTIyOTAsMTMgKzIyOTgsMTMgQEAgc3RhdGljIHNzaXplX3QgaTkx NV9wZXJmX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsCj4gICAKPiAgIHN0YXRpYyBlbnVtIGhydGlt ZXJfcmVzdGFydCBvYV9wb2xsX2NoZWNrX3RpbWVyX2NiKHN0cnVjdCBocnRpbWVyICpocnRpbWVy KQo+ICAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPiAtCQljb250 YWluZXJfb2YoaHJ0aW1lciwgdHlwZW9mKCpkZXZfcHJpdiksCj4gLQkJCSAgICAgcGVyZi5vYS5w b2xsX2NoZWNrX3RpbWVyKTsKPiArCXN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0gPSBj b250YWluZXJfb2YoaHJ0aW1lciwKPiArCQkJCQkJICAgICAgIHR5cGVvZigqc3RyZWFtKSwKPiAr CQkJCQkJICAgICAgIHBvbGxfY2hlY2tfdGltZXIpOwo+ICAgCj4gLQlpZiAob2FfYnVmZmVyX2No ZWNrX3VubG9ja2VkKGRldl9wcml2KSkgewo+IC0JCWRldl9wcml2LT5wZXJmLm9hLnBvbGxpbiA9 IHRydWU7Cj4gLQkJd2FrZV91cCgmZGV2X3ByaXYtPnBlcmYub2EucG9sbF93cSk7Cj4gKwlpZiAo b2FfYnVmZmVyX2NoZWNrX3VubG9ja2VkKHN0cmVhbSkpIHsKPiArCQlzdHJlYW0tPnBvbGxpbiA9 IHRydWU7Cj4gKwkJd2FrZV91cCgmc3RyZWFtLT5wb2xsX3dxKTsKPiAgIAl9Cj4gICAKPiAgIAlo cnRpbWVyX2ZvcndhcmRfbm93KGhydGltZXIsIG5zX3RvX2t0aW1lKFBPTExfUEVSSU9EKSk7Cj4g QEAgLTIzMzUsNyArMjM0Myw3IEBAIHN0YXRpYyBfX3BvbGxfdCBpOTE1X3BlcmZfcG9sbF9sb2Nr ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgCSAqIHRoZSBocnRpbWVy L29hX3BvbGxfY2hlY2tfdGltZXJfY2IgdG8gbm90aWZ5IHVzIHdoZW4gdGhlcmUgYXJlCj4gICAJ ICogc2FtcGxlcyB0byByZWFkLgo+ICAgCSAqLwo+IC0JaWYgKGRldl9wcml2LT5wZXJmLm9hLnBv bGxpbikKPiArCWlmIChzdHJlYW0tPnBvbGxpbikKPiAgIAkJZXZlbnRzIHw9IEVQT0xMSU47Cj4g ICAKPiAgIAlyZXR1cm4gZXZlbnRzOwo+IEBAIC0yNjY4LDggKzI2NzYsMTAgQEAgaTkxNV9wZXJm X29wZW5faW9jdGxfbG9ja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAg IAo+ICAgc3RhdGljIHU2NCBvYV9leHBvbmVudF90b19ucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsIGludCBleHBvbmVudCkKPiAgIHsKPiArCXN0cnVjdCBpbnRlbF9ydW50aW1l X2luZm8gKnJpID0gUlVOVElNRV9JTkZPKGRldl9wcml2KTsKPiArCj4gICAJcmV0dXJuIGRpdjY0 X3U2NCgxMDAwMDAwMDAwVUxMICogKDJVTEwgPDwgZXhwb25lbnQpLAo+IC0JCQkgMTAwMFVMTCAq IFJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPmNzX3RpbWVzdGFtcF9mcmVxdWVuY3lfa2h6KTsKPiAr CQkJIDEwMDBVTEwgKiByaS0+Y3NfdGltZXN0YW1wX2ZyZXF1ZW5jeV9raHopOwo+ICAgfQo+ICAg Cj4gICAvKioKPiBAQCAtMjc1Myw3ICsyNzYzLDcgQEAgc3RhdGljIGludCByZWFkX3Byb3BlcnRp ZXNfdW5sb2NrZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgCQkJCQkg IHZhbHVlKTsKPiAgIAkJCQlyZXR1cm4gLUVJTlZBTDsKPiAgIAkJCX0KPiAtCQkJaWYgKCFkZXZf cHJpdi0+cGVyZi5vYS5vYV9mb3JtYXRzW3ZhbHVlXS5zaXplKSB7Cj4gKwkJCWlmICghZGV2X3By aXYtPnBlcmYub2FfZm9ybWF0c1t2YWx1ZV0uc2l6ZSkgewo+ICAgCQkJCURSTV9ERUJVRygiVW5z dXBwb3J0ZWQgT0EgcmVwb3J0IGZvcm1hdCAlbGx1XG4iLAo+ICAgCQkJCQkgIHZhbHVlKTsKPiAg IAkJCQlyZXR1cm4gLUVJTlZBTDsKPiBAQCAtMjg5Nyw3ICsyOTA3LDcgQEAgdm9pZCBpOTE1X3Bl cmZfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCWlmICgh ZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqKQo+ICAgCQlnb3RvIGV4aXQ7Cj4gICAKPiAtCXN5 c2ZzX2F0dHJfaW5pdCgmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj X2lkLmF0dHIpOwo+ICsJc3lzZnNfYXR0cl9pbml0KCZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy5zeXNmc19tZXRyaWNfaWQuYXR0cik7Cj4gICAKPiAgIAlpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA+PSAxMSkgewo+ICAgCQlpOTE1X3BlcmZfbG9hZF90ZXN0X2NvbmZpZ19pY2woZGV2X3ByaXYp Owo+IEBAIC0yOTMyLDE1ICsyOTQyLDE1IEBAIHZvaWQgaTkxNV9wZXJmX3JlZ2lzdGVyKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAkJaTkxNV9wZXJmX2xvYWRfdGVzdF9j b25maWdfaHN3KGRldl9wcml2KTsKPiAgIH0KPiAgIAo+IC0JaWYgKGRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLmlkID09IDApCj4gKwlpZiAoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu aWQgPT0gMCkKPiAgIAkJZ290byBzeXNmc19lcnJvcjsKPiAgIAo+ICAgCXJldCA9IHN5c2ZzX2Ny ZWF0ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosCj4gLQkJCQkgJmRldl9wcml2 LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYyk7Cj4gKwkJCQkgJmRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYyk7Cj4gICAJaWYgKHJldCkKPiAgIAkJZ290byBz eXNmc19lcnJvcjsKPiAgIAo+IC0JYXRvbWljX3NldCgmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9j b25maWcucmVmX2NvdW50LCAxKTsKPiArCWF0b21pY19zZXQoJmRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLnJlZl9jb3VudCwgMSk7Cj4gICAKPiAgIAlnb3RvIGV4aXQ7Cj4gICAKPiBAQCAtMjk2 Nyw3ICsyOTc3LDcgQEAgdm9pZCBpOTE1X3BlcmZfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAJCXJldHVybjsKPiAgIAo+ICAgCXN5c2ZzX3JlbW92ZV9n cm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosCj4gLQkJCSAgICZkZXZfcHJpdi0+cGVy Zi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMpOwo+ICsJCQkgICAmZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcuc3lzZnNfbWV0cmljKTsKPiAgIAo+ICAgCWtvYmplY3RfcHV0KGRldl9wcml2 LT5wZXJmLm1ldHJpY3Nfa29iaik7Cj4gICAJZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqID0g TlVMTDsKPiBAQCAtMjk5Myw3ICszMDAzLDggQEAgc3RhdGljIGJvb2wgZ2VuOF9pc192YWxpZF9m bGV4X2FkZHIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgYWRkcikKPiAg IAlyZXR1cm4gZmFsc2U7Cj4gICB9Cj4gICAKPiAtc3RhdGljIGJvb2wgZ2VuN19pc192YWxpZF9i X2NvdW50ZXJfYWRkcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBhZGRy KQo+ICtzdGF0aWMgYm9vbCBnZW43X2lzX3ZhbGlkX2JfY291bnRlcl9hZGRyKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJCQkgdTMyIGFkZHIpCj4gICB7Cj4gICAJcmV0 dXJuIChhZGRyID49IGk5MTVfbW1pb19yZWdfb2Zmc2V0KE9BU1RBUlRUUklHMSkgJiYKPiAgIAkJ YWRkciA8PSBpOTE1X21taW9fcmVnX29mZnNldChPQVNUQVJUVFJJRzgpKSB8fAo+IEBAIC0zMDc4 LDcgKzMwODksOSBAQCBzdGF0aWMgc3RydWN0IGk5MTVfb2FfcmVnICphbGxvY19vYV9yZWdzKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIAlpZiAoIWFjY2Vzc19vayhyZWdz LCBuX3JlZ3MgKiBzaXplb2YodTMyKSAqIDIpKQo+ICAgCQlyZXR1cm4gRVJSX1BUUigtRUZBVUxU KTsKPiAgIAo+IC0JLyogTm8gaXNfdmFsaWQgZnVuY3Rpb24gbWVhbnMgd2UncmUgbm90IGFsbG93 aW5nIGFueSByZWdpc3RlciB0byBiZSBwcm9ncmFtbWVkLiAqLwo+ICsJLyogTm8gaXNfdmFsaWQg ZnVuY3Rpb24gbWVhbnMgd2UncmUgbm90IGFsbG93aW5nIGFueSByZWdpc3RlciB0byBiZQo+ICsJ ICogcHJvZ3JhbW1lZC4KPiArCSAqLwo+ICAgCUdFTV9CVUdfT04oIWlzX3ZhbGlkKTsKPiAgIAlp ZiAoIWlzX3ZhbGlkKQo+ICAgCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKPiBAQCAtMzIxMSw3 ICszMjI0LDcgQEAgaW50IGk5MTVfcGVyZl9hZGRfY29uZmlnX2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJb2FfY29uZmlnLT5tdXhfcmVnc19sZW4gPSBhcmdz LT5uX211eF9yZWdzOwo+ICAgCW9hX2NvbmZpZy0+bXV4X3JlZ3MgPQo+ICAgCQlhbGxvY19vYV9y ZWdzKGRldl9wcml2LAo+IC0JCQkgICAgICBkZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRf bXV4X3JlZywKPiArCQkJICAgICAgZGV2X3ByaXYtPnBlcmYub3BzLmlzX3ZhbGlkX211eF9yZWcs Cj4gICAJCQkgICAgICB1NjRfdG9fdXNlcl9wdHIoYXJncy0+bXV4X3JlZ3NfcHRyKSwKPiAgIAkJ CSAgICAgIGFyZ3MtPm5fbXV4X3JlZ3MpOwo+ICAgCj4gQEAgLTMyMjQsNyArMzIzNyw3IEBAIGlu dCBpOTE1X3BlcmZfYWRkX2NvbmZpZ19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lk ICpkYXRhLAo+ICAgCW9hX2NvbmZpZy0+Yl9jb3VudGVyX3JlZ3NfbGVuID0gYXJncy0+bl9ib29s ZWFuX3JlZ3M7Cj4gICAJb2FfY29uZmlnLT5iX2NvdW50ZXJfcmVncyA9Cj4gICAJCWFsbG9jX29h X3JlZ3MoZGV2X3ByaXYsCj4gLQkJCSAgICAgIGRldl9wcml2LT5wZXJmLm9hLm9wcy5pc192YWxp ZF9iX2NvdW50ZXJfcmVnLAo+ICsJCQkgICAgICBkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRf Yl9jb3VudGVyX3JlZywKPiAgIAkJCSAgICAgIHU2NF90b191c2VyX3B0cihhcmdzLT5ib29sZWFu X3JlZ3NfcHRyKSwKPiAgIAkJCSAgICAgIGFyZ3MtPm5fYm9vbGVhbl9yZWdzKTsKPiAgIAo+IEBA IC0zMjQzLDcgKzMyNTYsNyBAQCBpbnQgaTkxNV9wZXJmX2FkZF9jb25maWdfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIAkJb2FfY29uZmlnLT5mbGV4X3JlZ3Nf bGVuID0gYXJncy0+bl9mbGV4X3JlZ3M7Cj4gICAJCW9hX2NvbmZpZy0+ZmxleF9yZWdzID0KPiAg IAkJCWFsbG9jX29hX3JlZ3MoZGV2X3ByaXYsCj4gLQkJCQkgICAgICBkZXZfcHJpdi0+cGVyZi5v YS5vcHMuaXNfdmFsaWRfZmxleF9yZWcsCj4gKwkJCQkgICAgICBkZXZfcHJpdi0+cGVyZi5vcHMu aXNfdmFsaWRfZmxleF9yZWcsCj4gICAJCQkJICAgICAgdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPmZs ZXhfcmVnc19wdHIpLAo+ICAgCQkJCSAgICAgIGFyZ3MtPm5fZmxleF9yZWdzKTsKPiAgIAo+IEBA IC0zMzAwLDcgKzMzMTMsOCBAQCBpbnQgaTkxNV9wZXJmX2FkZF9jb25maWdfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIH0KPiAgIAo+ICAgLyoqCj4gLSAqIGk5 MTVfcGVyZl9yZW1vdmVfY29uZmlnX2lvY3RsIC0gRFJNIGlvY3RsKCkgZm9yIHVzZXJzcGFjZSB0 byByZW1vdmUgYW4gT0EgY29uZmlnCj4gKyAqIGk5MTVfcGVyZl9yZW1vdmVfY29uZmlnX2lvY3Rs IC0gRFJNIGlvY3RsKCkgZm9yIHVzZXJzcGFjZSB0byByZW1vdmUgYW4gT0EKPiArICogY29uZmln Cj4gICAgKiBAZGV2OiBkcm0gZGV2aWNlCj4gICAgKiBAZGF0YTogaW9jdGwgZGF0YSAocG9pbnRl ciB0byB1NjQgaW50ZWdlcikgY29waWVkIGZyb20gdXNlcnNwYWNlCj4gICAgKiBAZmlsZTogZHJt IGZpbGUKPiBAQCAtMzQwOSwyMSArMzQyMywyMyBAQCBzdGF0aWMgc3RydWN0IGN0bF90YWJsZSBk ZXZfcm9vdFtdID0gewo+ICAgICovCj4gICB2b2lkIGk5MTVfcGVyZl9pbml0KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIHsKPiArCXN0cnVjdCBpbnRlbF9ydW50aW1lX2lu Zm8gKnJpOwo+ICsKPiAgIAlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpIHsKPiAtCQlkZXZfcHJp di0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfYl9jb3VudGVyX3JlZyA9Cj4gKwkJZGV2X3ByaXYtPnBl cmYub3BzLmlzX3ZhbGlkX2JfY291bnRlcl9yZWcgPQo+ICAgCQkJZ2VuN19pc192YWxpZF9iX2Nv dW50ZXJfYWRkcjsKPiAtCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9 Cj4gKwkJZGV2X3ByaXYtPnBlcmYub3BzLmlzX3ZhbGlkX211eF9yZWcgPQo+ICAgCQkJaHN3X2lz X3ZhbGlkX211eF9hZGRyOwo+IC0JCWRldl9wcml2LT5wZXJmLm9hLm9wcy5pc192YWxpZF9mbGV4 X3JlZyA9IE5VTEw7Cj4gLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmVuYWJsZV9tZXRyaWNfc2V0 ID0gaHN3X2VuYWJsZV9tZXRyaWNfc2V0Owo+IC0JCWRldl9wcml2LT5wZXJmLm9hLm9wcy5kaXNh YmxlX21ldHJpY19zZXQgPSBoc3dfZGlzYWJsZV9tZXRyaWNfc2V0Owo+IC0JCWRldl9wcml2LT5w ZXJmLm9hLm9wcy5vYV9lbmFibGUgPSBnZW43X29hX2VuYWJsZTsKPiAtCQlkZXZfcHJpdi0+cGVy Zi5vYS5vcHMub2FfZGlzYWJsZSA9IGdlbjdfb2FfZGlzYWJsZTsKPiAtCQlkZXZfcHJpdi0+cGVy Zi5vYS5vcHMucmVhZCA9IGdlbjdfb2FfcmVhZDsKPiAtCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMu b2FfaHdfdGFpbF9yZWFkID0KPiArCQlkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfZmxleF9y ZWcgPSBOVUxMOwo+ICsJCWRldl9wcml2LT5wZXJmLm9wcy5lbmFibGVfbWV0cmljX3NldCA9IGhz d19lbmFibGVfbWV0cmljX3NldDsKPiArCQlkZXZfcHJpdi0+cGVyZi5vcHMuZGlzYWJsZV9tZXRy aWNfc2V0ID0gaHN3X2Rpc2FibGVfbWV0cmljX3NldDsKPiArCQlkZXZfcHJpdi0+cGVyZi5vcHMu b2FfZW5hYmxlID0gZ2VuN19vYV9lbmFibGU7Cj4gKwkJZGV2X3ByaXYtPnBlcmYub3BzLm9hX2Rp c2FibGUgPSBnZW43X29hX2Rpc2FibGU7Cj4gKwkJZGV2X3ByaXYtPnBlcmYub3BzLnJlYWQgPSBn ZW43X29hX3JlYWQ7Cj4gKwkJZGV2X3ByaXYtPnBlcmYub3BzLm9hX2h3X3RhaWxfcmVhZCA9Cj4g ICAJCQlnZW43X29hX2h3X3RhaWxfcmVhZDsKPiAgIAo+IC0JCWRldl9wcml2LT5wZXJmLm9hLm9h X2Zvcm1hdHMgPSBoc3dfb2FfZm9ybWF0czsKPiArCQlkZXZfcHJpdi0+cGVyZi5vYV9mb3JtYXRz ID0gaHN3X29hX2Zvcm1hdHM7Cj4gICAJfSBlbHNlIGlmIChIQVNfTE9HSUNBTF9SSU5HX0NPTlRF WFRTKGRldl9wcml2KSkgewo+ICAgCQkvKiBOb3RlOiB0aGF0IGFsdGhvdWdoIHdlIGNvdWxkIHRo ZW9yZXRpY2FsbHkgYWxzbyBzdXBwb3J0IHRoZQo+ICAgCQkgKiBsZWdhY3kgcmluZ2J1ZmZlciBt b2RlIG9uIEJEVyAoYW5kIGVhcmxpZXIgaXRlcmF0aW9ucyBvZgo+IEBAIC0zNDMxLDc1ICszNDQ3 LDkzIEBAIHZvaWQgaTkxNV9wZXJmX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQo+ICAgCQkgKiB3b3J0aCB0aGUgY29tcGxleGl0eSB0byBtYWludGFpbiBub3cgdGhhdCBC RFcrIGVuYWJsZQo+ICAgCQkgKiBleGVjbGlzdCBtb2RlIGJ5IGRlZmF1bHQuCj4gICAJCSAqLwo+ IC0JCWRldl9wcml2LT5wZXJmLm9hLm9hX2Zvcm1hdHMgPSBnZW44X3BsdXNfb2FfZm9ybWF0czsK PiArCQlkZXZfcHJpdi0+cGVyZi5vYV9mb3JtYXRzID0gZ2VuOF9wbHVzX29hX2Zvcm1hdHM7Cj4g ICAKPiAtCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMub2FfZW5hYmxlID0gZ2VuOF9vYV9lbmFibGU7 Cj4gLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9hX2Rpc2FibGUgPSBnZW44X29hX2Rpc2FibGU7 Cj4gLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLnJlYWQgPSBnZW44X29hX3JlYWQ7Cj4gLQkJZGV2 X3ByaXYtPnBlcmYub2Eub3BzLm9hX2h3X3RhaWxfcmVhZCA9IGdlbjhfb2FfaHdfdGFpbF9yZWFk Owo+ICsJCWRldl9wcml2LT5wZXJmLm9wcy5vYV9lbmFibGUgPSBnZW44X29hX2VuYWJsZTsKPiAr CQlkZXZfcHJpdi0+cGVyZi5vcHMub2FfZGlzYWJsZSA9IGdlbjhfb2FfZGlzYWJsZTsKPiArCQlk ZXZfcHJpdi0+cGVyZi5vcHMucmVhZCA9IGdlbjhfb2FfcmVhZDsKPiArCQlkZXZfcHJpdi0+cGVy Zi5vcHMub2FfaHdfdGFpbF9yZWFkID0gZ2VuOF9vYV9od190YWlsX3JlYWQ7Cj4gICAKPiAgIAkJ aWYgKElTX0dFTl9SQU5HRShkZXZfcHJpdiwgOCwgOSkpIHsKPiAtCQkJZGV2X3ByaXYtPnBlcmYu b2Eub3BzLmlzX3ZhbGlkX2JfY291bnRlcl9yZWcgPQo+ICsJCQlkZXZfcHJpdi0+cGVyZi5vcHMu aXNfdmFsaWRfYl9jb3VudGVyX3JlZyA9Cj4gICAJCQkJZ2VuN19pc192YWxpZF9iX2NvdW50ZXJf YWRkcjsKPiAtCQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX211eF9yZWcgPQo+ICsJ CQlkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9Cj4gICAJCQkJZ2VuOF9pc192 YWxpZF9tdXhfYWRkcjsKPiAtCQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX2ZsZXhf cmVnID0KPiArCQkJZGV2X3ByaXYtPnBlcmYub3BzLmlzX3ZhbGlkX2ZsZXhfcmVnID0KPiAgIAkJ CQlnZW44X2lzX3ZhbGlkX2ZsZXhfYWRkcjsKPiAgIAo+ICAgCQkJaWYgKElTX0NIRVJSWVZJRVco ZGV2X3ByaXYpKSB7Cj4gLQkJCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfbXV4X3Jl ZyA9Cj4gKwkJCQlkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9Cj4gICAJCQkJ CWNodl9pc192YWxpZF9tdXhfYWRkcjsKPiAgIAkJCX0KPiAgIAo+IC0JCQlkZXZfcHJpdi0+cGVy Zi5vYS5vcHMuZW5hYmxlX21ldHJpY19zZXQgPSBnZW44X2VuYWJsZV9tZXRyaWNfc2V0Owo+IC0J CQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuZGlzYWJsZV9tZXRyaWNfc2V0ID0gZ2VuOF9kaXNhYmxl X21ldHJpY19zZXQ7Cj4gKwkJCWRldl9wcml2LT5wZXJmLm9wcy5lbmFibGVfbWV0cmljX3NldCA9 Cj4gKwkJCQlnZW44X2VuYWJsZV9tZXRyaWNfc2V0Owo+ICsJCQlkZXZfcHJpdi0+cGVyZi5vcHMu ZGlzYWJsZV9tZXRyaWNfc2V0ID0KPiArCQkJCWdlbjhfZGlzYWJsZV9tZXRyaWNfc2V0Owo+ICAg Cj4gICAJCQlpZiAoSVNfR0VOKGRldl9wcml2LCA4KSkgewo+IC0JCQkJZGV2X3ByaXYtPnBlcmYu b2EuY3R4X29hY3R4Y3RybF9vZmZzZXQgPSAweDEyMDsKPiAtCQkJCWRldl9wcml2LT5wZXJmLm9h LmN0eF9mbGV4ZXUwX29mZnNldCA9IDB4MmNlOwo+ICsJCQkJZGV2X3ByaXYtPnBlcmYuY3R4X29h Y3R4Y3RybF9vZmZzZXQgPSAweDEyMDsKPiArCQkJCWRldl9wcml2LT5wZXJmLmN0eF9mbGV4ZXUw X29mZnNldCA9IDB4MmNlOwo+ICAgCj4gLQkJCQlkZXZfcHJpdi0+cGVyZi5vYS5nZW44X3ZhbGlk X2N0eF9iaXQgPSAoMTw8MjUpOwo+ICsJCQkJZGV2X3ByaXYtPnBlcmYuZ2VuOF92YWxpZF9jdHhf Yml0ID0gKDE8PDI1KTsKPiAgIAkJCX0gZWxzZSB7Cj4gLQkJCQlkZXZfcHJpdi0+cGVyZi5vYS5j dHhfb2FjdHhjdHJsX29mZnNldCA9IDB4MTI4Owo+IC0JCQkJZGV2X3ByaXYtPnBlcmYub2EuY3R4 X2ZsZXhldTBfb2Zmc2V0ID0gMHgzZGU7Cj4gKwkJCQlkZXZfcHJpdi0+cGVyZi5jdHhfb2FjdHhj dHJsX29mZnNldCA9IDB4MTI4Owo+ICsJCQkJZGV2X3ByaXYtPnBlcmYuY3R4X2ZsZXhldTBfb2Zm c2V0ID0gMHgzZGU7Cj4gICAKPiAtCQkJCWRldl9wcml2LT5wZXJmLm9hLmdlbjhfdmFsaWRfY3R4 X2JpdCA9ICgxPDwxNik7Cj4gKwkJCQlkZXZfcHJpdi0+cGVyZi5nZW44X3ZhbGlkX2N0eF9iaXQg PSAoMTw8MTYpOwo+ICAgCQkJfQo+ICAgCQl9IGVsc2UgaWYgKElTX0dFTl9SQU5HRShkZXZfcHJp diwgMTAsIDExKSkgewo+IC0JCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfYl9jb3Vu dGVyX3JlZyA9Cj4gKwkJCWRldl9wcml2LT5wZXJmLm9wcy5pc192YWxpZF9iX2NvdW50ZXJfcmVn ID0KPiAgIAkJCQlnZW43X2lzX3ZhbGlkX2JfY291bnRlcl9hZGRyOwo+IC0JCQlkZXZfcHJpdi0+ cGVyZi5vYS5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9Cj4gKwkJCWRldl9wcml2LT5wZXJmLm9wcy5p c192YWxpZF9tdXhfcmVnID0KPiAgIAkJCQlnZW4xMF9pc192YWxpZF9tdXhfYWRkcjsKPiAtCQkJ ZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX2ZsZXhfcmVnID0KPiArCQkJZGV2X3ByaXYt PnBlcmYub3BzLmlzX3ZhbGlkX2ZsZXhfcmVnID0KPiAgIAkJCQlnZW44X2lzX3ZhbGlkX2ZsZXhf YWRkcjsKPiAgIAo+IC0JCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuZW5hYmxlX21ldHJpY19zZXQg PSBnZW44X2VuYWJsZV9tZXRyaWNfc2V0Owo+IC0JCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuZGlz YWJsZV9tZXRyaWNfc2V0ID0gZ2VuMTBfZGlzYWJsZV9tZXRyaWNfc2V0Owo+ICsJCQlkZXZfcHJp di0+cGVyZi5vcHMuZW5hYmxlX21ldHJpY19zZXQgPQo+ICsJCQkJZ2VuOF9lbmFibGVfbWV0cmlj X3NldDsKPiArCQkJZGV2X3ByaXYtPnBlcmYub3BzLmRpc2FibGVfbWV0cmljX3NldCA9Cj4gKwkJ CQlnZW4xMF9kaXNhYmxlX21ldHJpY19zZXQ7Cj4gICAKPiAtCQkJZGV2X3ByaXYtPnBlcmYub2Eu Y3R4X29hY3R4Y3RybF9vZmZzZXQgPSAweDEyODsKPiAtCQkJZGV2X3ByaXYtPnBlcmYub2EuY3R4 X2ZsZXhldTBfb2Zmc2V0ID0gMHgzZGU7Cj4gKwkJCWRldl9wcml2LT5wZXJmLmN0eF9vYWN0eGN0 cmxfb2Zmc2V0ID0gMHgxMjg7Cj4gKwkJCWRldl9wcml2LT5wZXJmLmN0eF9mbGV4ZXUwX29mZnNl dCA9IDB4M2RlOwo+ICAgCj4gLQkJCWRldl9wcml2LT5wZXJmLm9hLmdlbjhfdmFsaWRfY3R4X2Jp dCA9ICgxPDwxNik7Cj4gKwkJCWRldl9wcml2LT5wZXJmLmdlbjhfdmFsaWRfY3R4X2JpdCA9ICgx PDwxNik7Cj4gICAJCX0KPiAgIAl9Cj4gICAKPiAtCWlmIChkZXZfcHJpdi0+cGVyZi5vYS5vcHMu ZW5hYmxlX21ldHJpY19zZXQpIHsKPiAtCQlocnRpbWVyX2luaXQoJmRldl9wcml2LT5wZXJmLm9h LnBvbGxfY2hlY2tfdGltZXIsCj4gLQkJCQlDTE9DS19NT05PVE9OSUMsIEhSVElNRVJfTU9ERV9S RUwpOwo+IC0JCWRldl9wcml2LT5wZXJmLm9hLnBvbGxfY2hlY2tfdGltZXIuZnVuY3Rpb24gPSBv YV9wb2xsX2NoZWNrX3RpbWVyX2NiOwo+IC0JCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmRldl9wcml2 LT5wZXJmLm9hLnBvbGxfd3EpOwo+IC0KPiArCWlmIChkZXZfcHJpdi0+cGVyZi5vcHMuZW5hYmxl X21ldHJpY19zZXQpIHsKPiAgIAkJSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT5wZXJmLnN0cmVh bXMpOwo+ICAgCQltdXRleF9pbml0KCZkZXZfcHJpdi0+cGVyZi5sb2NrKTsKPiAtCQlzcGluX2xv Y2tfaW5pdCgmZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnB0cl9sb2NrKTsKPiAgIAo+ICsJ CXJpID0gUlVOVElNRV9JTkZPKGRldl9wcml2KTsKPiAgIAkJb2Ffc2FtcGxlX3JhdGVfaGFyZF9s aW1pdCA9IDEwMDAgKgo+IC0JCQkoUlVOVElNRV9JTkZPKGRldl9wcml2KS0+Y3NfdGltZXN0YW1w X2ZyZXF1ZW5jeV9raHogLyAyKTsKPiArCQkJKHJpLT5jc190aW1lc3RhbXBfZnJlcXVlbmN5X2to eiAvIDIpOwo+ICAgCQlkZXZfcHJpdi0+cGVyZi5zeXNjdGxfaGVhZGVyID0gcmVnaXN0ZXJfc3lz Y3RsX3RhYmxlKGRldl9yb290KTsKPiAgIAo+ICAgCQltdXRleF9pbml0KCZkZXZfcHJpdi0+cGVy Zi5tZXRyaWNzX2xvY2spOwo+ICAgCQlpZHJfaW5pdCgmZGV2X3ByaXYtPnBlcmYubWV0cmljc19p ZHIpOwo+ICAgCj4gKwkJLyogV2Ugc2V0IHVwIHNvbWUgcmF0ZWxpbWl0IHN0YXRlIHRvIHBvdGVu dGlhbGx5IHRocm90dGxlIGFueQo+ICsJCSAqIF9OT1RFUyBhYm91dCBzcHVyaW91cywgaW52YWxp ZCBPQSByZXBvcnRzIHdoaWNoIHdlIGRvbid0Cj4gKwkJICogZm9yd2FyZCB0byB1c2Vyc3BhY2Uu Cj4gKwkJICoKPiArCQkgKiBXZSBwcmludCBhIF9OT1RFIGFib3V0IGFueSB0aHJvdHRsaW5nIHdo ZW4gY2xvc2luZyB0aGUKPiArCQkgKiBzdHJlYW0gaW5zdGVhZCBvZiB3YWl0aW5nIHVudGlsIGRy aXZlciBfZmluaSB3aGljaCBubyBvbmUKPiArCQkgKiB3b3VsZCBldmVyIHNlZS4KPiArCQkgKgo+ ICsJCSAqIFVzaW5nIHRoZSBzYW1lIGxpbWl0aW5nIGZhY3RvcnMgYXMgcHJpbnRrX3JhdGVsaW1p dCgpCj4gKwkJICovCj4gKwkJcmF0ZWxpbWl0X3N0YXRlX2luaXQoJmRldl9wcml2LT5wZXJmLnNw dXJpb3VzX3JlcG9ydF9ycywKPiArCQkJCSAgICAgNSAqIEhaLCAxMCk7Cj4gKwkJLyogU2luY2Ug d2UgdXNlIGEgRFJNX05PVEUgZm9yIHNwdXJpb3VzIHJlcG9ydHMgaXQgd291bGQgYmUKPiArCQkg KiBpbmNvbnNpc3RlbnQgdG8gbGV0IF9fcmF0ZWxpbWl0KCkgYXV0b21hdGljYWxseSBwcmludCBh Cj4gKwkJICogd2FybmluZyBmb3IgdGhyb3R0bGluZy4KPiArCQkgKi8KPiArCQlyYXRlbGltaXRf c2V0X2ZsYWdzKCZkZXZfcHJpdi0+cGVyZi5zcHVyaW91c19yZXBvcnRfcnMsCj4gKwkJCQkgICAg UkFURUxJTUlUX01TR19PTl9SRUxFQVNFKTsKPiArCj4gICAJCWRldl9wcml2LT5wZXJmLmluaXRp YWxpemVkID0gdHJ1ZTsKPiAgIAl9Cj4gICB9Cj4gQEAgLTM1MjgsNyArMzU2Miw3IEBAIHZvaWQg aTkxNV9wZXJmX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCj4g ICAJdW5yZWdpc3Rlcl9zeXNjdGxfdGFibGUoZGV2X3ByaXYtPnBlcmYuc3lzY3RsX2hlYWRlcik7 Cj4gICAKPiAtCW1lbXNldCgmZGV2X3ByaXYtPnBlcmYub2Eub3BzLCAwLCBzaXplb2YoZGV2X3By aXYtPnBlcmYub2Eub3BzKSk7Cj4gKwltZW1zZXQoJmRldl9wcml2LT5wZXJmLm9wcywgMCwgc2l6 ZW9mKGRldl9wcml2LT5wZXJmLm9wcykpOwo+ICAgCj4gICAJZGV2X3ByaXYtPnBlcmYuaW5pdGlh bGl6ZWQgPSBmYWxzZTsKPiAgIH0KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZng=