From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= Subject: Re: [PATCH v2 1/2] drm/radeon: Program page flips to execute in hblank instead of vblank Date: Wed, 02 Jul 2014 13:35:03 +0200 Message-ID: <53B3EE67.9080407@vodafone.de> References: <53B28983.8070300@vodafone.de> <1404273327-4465-1-git-send-email-michel@daenzer.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from pegasos-out.vodafone.de (pegasos-out.vodafone.de [80.84.1.38]) by gabe.freedesktop.org (Postfix) with ESMTP id B8FD56E58A for ; Wed, 2 Jul 2014 04:35:20 -0700 (PDT) In-Reply-To: <1404273327-4465-1-git-send-email-michel@daenzer.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?B?TWljaGVsIETDpG56ZXI=?= , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QW0gMDIuMDcuMjAxNCAwNTo1NSwgc2NocmllYiBNaWNoZWwgRMOkbnplcjoKPiBGcm9tOiBNaWNo ZWwgRMOkbnplciA8bWljaGVsLmRhZW56ZXJAYW1kLmNvbT4KPgo+IEJ1dCBtb3ZlIHRoZSBwcm9n cmFtbWluZyBiYWNrIHRvIHRoZSB2ZXJ0aWNhbCBibGFuayBpbnRlcnJ1cHQgaGFuZGxlci4KPiBB bmQgc2lnbmFsIHRoZSBmbGlwIGFzIGJlaW5nIGNvbXBsZXRlZCBpbW1lZGlhdGVseSBhZnRlciBw cm9ncmFtbWluZyBpdAo+IHRvIHRoZSBoYXJkd2FyZS4KPgo+IFRoaXMgd2F5IHdlIGRvbid0IGhh dmUgdG8gZ3Vlc3Mgd2hldGhlciBvciBub3QgdGhlIGhhcmR3YXJlIHdpbGwgZXhlY3V0ZQo+IHRo ZSBmbGlwIGluIGEgZ2l2ZW4gdmVydGljYWwgYmxhbmsgcGVyaW9kLCBhdm9pZGluZyBhIHdob2xl IGxvdCBvZgo+IHRyb3VibGUuCj4KPiBBbHNvLCBub3QgdXNpbmcgdGhlIHBhZ2UgZmxpcCBpbnRl cnJ1cHQgYW55bW9yZSBhdm9pZHMgcHJvYmxlbXMgZHVlIHRvCj4gY29tcGxldGluZyBwYWdlIGZs aXBzIGVhcmxpZXIgdGhhbiBleHBlY3RlZCBieSB1c2Vyc3BhY2UuCj4KPiBTaWduZWQtb2ZmLWJ5 OiBNaWNoZWwgRMOkbnplciA8bWljaGVsLmRhZW56ZXJAYW1kLmNvbT4KCkJvdGggcGF0Y2hlcyBh cmUgUmV2aWV3ZWQtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNv bT4KCj4gLS0tCj4KPiB2MjogUmVuYW1lIFJBREVPTl9GTElQX1NVQk1JVFRFRCA9PiBSQURFT05f RkxJUF9SRUFEWQo+Cj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYyAg fCAyOCArKysrLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaWsuYyAgICAgICAg ICAgIHwgNTggKysrLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9ldmVyZ3JlZW4uYyAgICAgIHwgODYgKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Cj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3IxMDAuYyAgICAgICAgICAgfCA0OCArKystLS0t LS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMC5jICAgICAgICAgICB8 IDE4ICstLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmggICAgICAgICB8 ICAzICstCj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hc2ljLmMgICAgfCAyMiAt LS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2FzaWMuaCAgICB8ICA0 IC0tCj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kaXNwbGF5LmMgfCA1OSArKyst LS0tLS0tLS0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9tb2Rl LmggICAgfCAgMyArLQo+ICAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yczYwMC5jICAgICAgICAg IHwgMjggKysrLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnY3NzAuYyAgICAg ICAgICB8IDI0ICsrLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaS5jICAgICAg ICAgICAgIHwgNTIgKysrLS0tLS0tLS0tLS0tLS0tLS0KPiAgIDEzIGZpbGVzIGNoYW5nZWQsIDY0 IGluc2VydGlvbnMoKyksIDM2OSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v YXRvbWJpb3NfY3J0Yy5jCj4gaW5kZXggZTkxMTg5OC4uNjVjZmRiYiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vYXRvbWJpb3NfY3J0Yy5jCj4gQEAgLTEyODQsNiArMTI4NCwxMCBAQCBzdGF0 aWMgaW50IGRjZTRfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gICAJ CWJyZWFrOwo+ICAgCX0KPiAgIAo+ICsJLyogTWFrZSBzdXJlIHVwZGF0ZXMgaGFwcGVuIGF0IHZl cnRpY2FsIGJsYW5rICovCj4gKwlXUkVHMzIoRVZFUkdSRUVOX0dSUEhfRkxJUF9DT05UUk9MICsg cmFkZW9uX2NydGMtPmNydGNfb2Zmc2V0LCAwKTsKPiArCVdSRUczMihFVkVSR1JFRU5fTUFTVEVS X1VQREFURV9NT0RFICsgcmFkZW9uX2NydGMtPmNydGNfb2Zmc2V0LCAwKTsKPiArCj4gICAJV1JF RzMyKEVWRVJHUkVFTl9HUlBIX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0ggKyByYWRlb25f Y3J0Yy0+Y3J0Y19vZmZzZXQsCj4gICAJICAgICAgIHVwcGVyXzMyX2JpdHMoZmJfbG9jYXRpb24p KTsKPiAgIAlXUkVHMzIoRVZFUkdSRUVOX0dSUEhfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19I SUdIICsgcmFkZW9uX2NydGMtPmNydGNfb2Zmc2V0LAo+IEBAIC0xMzIxLDE1ICsxMzI1LDYgQEAg c3RhdGljIGludCBkY2U0X2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ ICAgCVdSRUczMihFVkVSR1JFRU5fVklFV1BPUlRfU0laRSArIHJhZGVvbl9jcnRjLT5jcnRjX29m ZnNldCwKPiAgIAkgICAgICAgKHZpZXdwb3J0X3cgPDwgMTYpIHwgdmlld3BvcnRfaCk7Cj4gICAK PiAtCS8qIHBhZ2VmbGlwIHNldHVwICovCj4gLQkvKiBtYWtlIHN1cmUgZmxpcCBpcyBhdCB2YiBy YXRoZXIgdGhhbiBoYiAqLwo+IC0JdG1wID0gUlJFRzMyKEVWRVJHUkVFTl9HUlBIX0ZMSVBfQ09O VFJPTCArIHJhZGVvbl9jcnRjLT5jcnRjX29mZnNldCk7Cj4gLQl0bXAgJj0gfkVWRVJHUkVFTl9H UlBIX1NVUkZBQ0VfVVBEQVRFX0hfUkVUUkFDRV9FTjsKPiAtCVdSRUczMihFVkVSR1JFRU5fR1JQ SF9GTElQX0NPTlRST0wgKyByYWRlb25fY3J0Yy0+Y3J0Y19vZmZzZXQsIHRtcCk7Cj4gLQo+IC0J Lyogc2V0IHBhZ2VmbGlwIHRvIGhhcHBlbiBhbnl3aGVyZSBpbiB2YmxhbmsgaW50ZXJ2YWwgKi8K PiAtCVdSRUczMihFVkVSR1JFRU5fTUFTVEVSX1VQREFURV9NT0RFICsgcmFkZW9uX2NydGMtPmNy dGNfb2Zmc2V0LCAwKTsKPiAtCj4gICAJaWYgKCFhdG9taWMgJiYgZmIgJiYgZmIgIT0gY3J0Yy0+ cHJpbWFyeS0+ZmIpIHsKPiAgIAkJcmFkZW9uX2ZiID0gdG9fcmFkZW9uX2ZyYW1lYnVmZmVyKGZi KTsKPiAgIAkJcmJvID0gZ2VtX3RvX3JhZGVvbl9ibyhyYWRlb25fZmItPm9iaik7Cj4gQEAgLTEz NjAsNyArMTM1NSw3IEBAIHN0YXRpYyBpbnQgYXZpdm9fY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCj4gICAJdWludDY0X3QgZmJfbG9jYXRpb247Cj4gICAJdWludDMyX3Qg ZmJfZm9ybWF0LCBmYl9waXRjaF9waXhlbHMsIHRpbGluZ19mbGFnczsKPiAgIAl1MzIgZmJfc3dh cCA9IFI2MDBfRDFHUlBIX1NXQVBfRU5ESUFOX05PTkU7Cj4gLQl1MzIgdG1wLCB2aWV3cG9ydF93 LCB2aWV3cG9ydF9oOwo+ICsJdTMyIHZpZXdwb3J0X3csIHZpZXdwb3J0X2g7Cj4gICAJaW50IHI7 Cj4gICAKPiAgIAkvKiBubyBmYiBib3VuZCAqLwo+IEBAIC0xNDUxLDYgKzE0NDYsMTAgQEAgc3Rh dGljIGludCBhdml2b19jcnRjX2RvX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAg IAllbHNlCj4gICAJCVdSRUczMihBVklWT19EMlZHQV9DT05UUk9MLCAwKTsKPiAgIAo+ICsJLyog TWFrZSBzdXJlIHVwZGF0ZXMgaGFwcGVuIGF0IHZlcnRpY2FsIGJsYW5rICovCj4gKwlXUkVHMzIo QVZJVk9fRDFHUlBIX0ZMSVBfQ09OVFJPTCArIHJhZGVvbl9jcnRjLT5jcnRjX29mZnNldCwgMCk7 Cj4gKwlXUkVHMzIoQVZJVk9fRDFNT0RFX01BU1RFUl9VUERBVEVfTU9ERSArIHJhZGVvbl9jcnRj LT5jcnRjX29mZnNldCwgMCk7Cj4gKwo+ICAgCWlmIChyZGV2LT5mYW1pbHkgPj0gQ0hJUF9SVjc3 MCkgewo+ICAgCQlpZiAocmFkZW9uX2NydGMtPmNydGNfaWQpIHsKPiAgIAkJCVdSRUczMihSNzAw X0QyR1JQSF9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdILCB1cHBlcl8zMl9iaXRzKGZiX2xv Y2F0aW9uKSk7Cj4gQEAgLTE0OTAsMTUgKzE0ODksNiBAQCBzdGF0aWMgaW50IGF2aXZvX2NydGNf ZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAgCVdSRUczMihBVklWT19EMU1P REVfVklFV1BPUlRfU0laRSArIHJhZGVvbl9jcnRjLT5jcnRjX29mZnNldCwKPiAgIAkgICAgICAg KHZpZXdwb3J0X3cgPDwgMTYpIHwgdmlld3BvcnRfaCk7Cj4gICAKPiAtCS8qIHBhZ2VmbGlwIHNl dHVwICovCj4gLQkvKiBtYWtlIHN1cmUgZmxpcCBpcyBhdCB2YiByYXRoZXIgdGhhbiBoYiAqLwo+ IC0JdG1wID0gUlJFRzMyKEFWSVZPX0QxR1JQSF9GTElQX0NPTlRST0wgKyByYWRlb25fY3J0Yy0+ Y3J0Y19vZmZzZXQpOwo+IC0JdG1wICY9IH5BVklWT19EMUdSUEhfU1VSRkFDRV9VUERBVEVfSF9S RVRSQUNFX0VOOwo+IC0JV1JFRzMyKEFWSVZPX0QxR1JQSF9GTElQX0NPTlRST0wgKyByYWRlb25f Y3J0Yy0+Y3J0Y19vZmZzZXQsIHRtcCk7Cj4gLQo+IC0JLyogc2V0IHBhZ2VmbGlwIHRvIGhhcHBl biBhbnl3aGVyZSBpbiB2YmxhbmsgaW50ZXJ2YWwgKi8KPiAtCVdSRUczMihBVklWT19EMU1PREVf TUFTVEVSX1VQREFURV9NT0RFICsgcmFkZW9uX2NydGMtPmNydGNfb2Zmc2V0LCAwKTsKPiAtCj4g ICAJaWYgKCFhdG9taWMgJiYgZmIgJiYgZmIgIT0gY3J0Yy0+cHJpbWFyeS0+ZmIpIHsKPiAgIAkJ cmFkZW9uX2ZiID0gdG9fcmFkZW9uX2ZyYW1lYnVmZmVyKGZiKTsKPiAgIAkJcmJvID0gZ2VtX3Rv X3JhZGVvbl9ibyhyYWRlb25fZmItPm9iaik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vY2lrLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Npay5jCj4gaW5kZXggMGY0 YjM4Zi4uZDBhOTk0YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Npay5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaWsuYwo+IEBAIC03MTQzLDI1ICs3MTQz LDYgQEAgaW50IGNpa19pcnFfc2V0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAgCQlX UkVHMzIoTEJfSU5URVJSVVBUX01BU0sgKyBFVkVSR1JFRU5fQ1JUQzVfUkVHSVNURVJfT0ZGU0VU LCBjcnRjNik7Cj4gICAJfQo+ICAgCj4gLQlpZiAocmRldi0+bnVtX2NydGMgPj0gMikgewo+IC0J CVdSRUczMihHUlBIX0lOVF9DT05UUk9MICsgRVZFUkdSRUVOX0NSVEMwX1JFR0lTVEVSX09GRlNF VCwKPiAtCQkgICAgICAgR1JQSF9QRkxJUF9JTlRfTUFTSyk7Cj4gLQkJV1JFRzMyKEdSUEhfSU5U X0NPTlRST0wgKyBFVkVSR1JFRU5fQ1JUQzFfUkVHSVNURVJfT0ZGU0VULAo+IC0JCSAgICAgICBH UlBIX1BGTElQX0lOVF9NQVNLKTsKPiAtCX0KPiAtCWlmIChyZGV2LT5udW1fY3J0YyA+PSA0KSB7 Cj4gLQkJV1JFRzMyKEdSUEhfSU5UX0NPTlRST0wgKyBFVkVSR1JFRU5fQ1JUQzJfUkVHSVNURVJf T0ZGU0VULAo+IC0JCSAgICAgICBHUlBIX1BGTElQX0lOVF9NQVNLKTsKPiAtCQlXUkVHMzIoR1JQ SF9JTlRfQ09OVFJPTCArIEVWRVJHUkVFTl9DUlRDM19SRUdJU1RFUl9PRkZTRVQsCj4gLQkJICAg ICAgIEdSUEhfUEZMSVBfSU5UX01BU0spOwo+IC0JfQo+IC0JaWYgKHJkZXYtPm51bV9jcnRjID49 IDYpIHsKPiAtCQlXUkVHMzIoR1JQSF9JTlRfQ09OVFJPTCArIEVWRVJHUkVFTl9DUlRDNF9SRUdJ U1RFUl9PRkZTRVQsCj4gLQkJICAgICAgIEdSUEhfUEZMSVBfSU5UX01BU0spOwo+IC0JCVdSRUcz MihHUlBIX0lOVF9DT05UUk9MICsgRVZFUkdSRUVOX0NSVEM1X1JFR0lTVEVSX09GRlNFVCwKPiAt CQkgICAgICAgR1JQSF9QRkxJUF9JTlRfTUFTSyk7Cj4gLQl9Cj4gLQo+ICAgCVdSRUczMihEQ19I UEQxX0lOVF9DT05UUk9MLCBocGQxKTsKPiAgIAlXUkVHMzIoRENfSFBEMl9JTlRfQ09OVFJPTCwg aHBkMik7Cj4gICAJV1JFRzMyKERDX0hQRDNfSU5UX0NPTlRST0wsIGhwZDMpOwo+IEBAIC03MjE1 LDEyICs3MTk2LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGNpa19pcnFfYWNrKHN0cnVjdCByYWRl b25fZGV2aWNlICpyZGV2KQo+ICAgCQkJRVZFUkdSRUVOX0NSVEM1X1JFR0lTVEVSX09GRlNFVCk7 Cj4gICAJfQo+ICAgCj4gLQlpZiAocmRldi0+aXJxLnN0YXRfcmVncy5jaWsuZDFncnBoX2ludCAm IEdSUEhfUEZMSVBfSU5UX09DQ1VSUkVEKQo+IC0JCVdSRUczMihHUlBIX0lOVF9TVEFUVVMgKyBF VkVSR1JFRU5fQ1JUQzBfUkVHSVNURVJfT0ZGU0VULAo+IC0JCSAgICAgICBHUlBIX1BGTElQX0lO VF9DTEVBUik7Cj4gLQlpZiAocmRldi0+aXJxLnN0YXRfcmVncy5jaWsuZDJncnBoX2ludCAmIEdS UEhfUEZMSVBfSU5UX09DQ1VSUkVEKQo+IC0JCVdSRUczMihHUlBIX0lOVF9TVEFUVVMgKyBFVkVS R1JFRU5fQ1JUQzFfUkVHSVNURVJfT0ZGU0VULAo+IC0JCSAgICAgICBHUlBIX1BGTElQX0lOVF9D TEVBUik7Cj4gICAJaWYgKHJkZXYtPmlycS5zdGF0X3JlZ3MuY2lrLmRpc3BfaW50ICYgTEJfRDFf VkJMQU5LX0lOVEVSUlVQVCkKPiAgIAkJV1JFRzMyKExCX1ZCTEFOS19TVEFUVVMgKyBFVkVSR1JF RU5fQ1JUQzBfUkVHSVNURVJfT0ZGU0VULCBWQkxBTktfQUNLKTsKPiAgIAlpZiAocmRldi0+aXJx LnN0YXRfcmVncy5jaWsuZGlzcF9pbnQgJiBMQl9EMV9WTElORV9JTlRFUlJVUFQpCj4gQEAgLTcy MzEsMTIgKzcyMDYsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgY2lrX2lycV9hY2soc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYpCj4gICAJCVdSRUczMihMQl9WTElORV9TVEFUVVMgKyBFVkVSR1JF RU5fQ1JUQzFfUkVHSVNURVJfT0ZGU0VULCBWTElORV9BQ0spOwo+ICAgCj4gICAJaWYgKHJkZXYt Pm51bV9jcnRjID49IDQpIHsKPiAtCQlpZiAocmRldi0+aXJxLnN0YXRfcmVncy5jaWsuZDNncnBo X2ludCAmIEdSUEhfUEZMSVBfSU5UX09DQ1VSUkVEKQo+IC0JCQlXUkVHMzIoR1JQSF9JTlRfU1RB VFVTICsgRVZFUkdSRUVOX0NSVEMyX1JFR0lTVEVSX09GRlNFVCwKPiAtCQkJICAgICAgIEdSUEhf UEZMSVBfSU5UX0NMRUFSKTsKPiAtCQlpZiAocmRldi0+aXJxLnN0YXRfcmVncy5jaWsuZDRncnBo X2ludCAmIEdSUEhfUEZMSVBfSU5UX09DQ1VSUkVEKQo+IC0JCQlXUkVHMzIoR1JQSF9JTlRfU1RB VFVTICsgRVZFUkdSRUVOX0NSVEMzX1JFR0lTVEVSX09GRlNFVCwKPiAtCQkJICAgICAgIEdSUEhf UEZMSVBfSU5UX0NMRUFSKTsKPiAgIAkJaWYgKHJkZXYtPmlycS5zdGF0X3JlZ3MuY2lrLmRpc3Bf aW50X2NvbnQyICYgTEJfRDNfVkJMQU5LX0lOVEVSUlVQVCkKPiAgIAkJCVdSRUczMihMQl9WQkxB TktfU1RBVFVTICsgRVZFUkdSRUVOX0NSVEMyX1JFR0lTVEVSX09GRlNFVCwgVkJMQU5LX0FDSyk7 Cj4gICAJCWlmIChyZGV2LT5pcnEuc3RhdF9yZWdzLmNpay5kaXNwX2ludF9jb250MiAmIExCX0Qz X1ZMSU5FX0lOVEVSUlVQVCkKPiBAQCAtNzI0OCwxMiArNzIxNyw2IEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBjaWtfaXJxX2FjayhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKPiAgIAl9Cj4gICAK PiAgIAlpZiAocmRldi0+bnVtX2NydGMgPj0gNikgewo+IC0JCWlmIChyZGV2LT5pcnEuc3RhdF9y ZWdzLmNpay5kNWdycGhfaW50ICYgR1JQSF9QRkxJUF9JTlRfT0NDVVJSRUQpCj4gLQkJCVdSRUcz MihHUlBIX0lOVF9TVEFUVVMgKyBFVkVSR1JFRU5fQ1JUQzRfUkVHSVNURVJfT0ZGU0VULAo+IC0J CQkgICAgICAgR1JQSF9QRkxJUF9JTlRfQ0xFQVIpOwo+IC0JCWlmIChyZGV2LT5pcnEuc3RhdF9y ZWdzLmNpay5kNmdycGhfaW50ICYgR1JQSF9QRkxJUF9JTlRfT0NDVVJSRUQpCj4gLQkJCVdSRUcz MihHUlBIX0lOVF9TVEFUVVMgKyBFVkVSR1JFRU5fQ1JUQzVfUkVHSVNURVJfT0ZGU0VULAo+IC0J CQkgICAgICAgR1JQSF9QRkxJUF9JTlRfQ0xFQVIpOwo+ICAgCQlpZiAocmRldi0+aXJxLnN0YXRf cmVncy5jaWsuZGlzcF9pbnRfY29udDQgJiBMQl9ENV9WQkxBTktfSU5URVJSVVBUKQo+ICAgCQkJ V1JFRzMyKExCX1ZCTEFOS19TVEFUVVMgKyBFVkVSR1JFRU5fQ1JUQzRfUkVHSVNURVJfT0ZGU0VU LCBWQkxBTktfQUNLKTsKPiAgIAkJaWYgKHJkZXYtPmlycS5zdGF0X3JlZ3MuY2lrLmRpc3BfaW50 X2NvbnQ0ICYgTEJfRDVfVkxJTkVfSU5URVJSVVBUKQo+IEBAIC03NDU5LDcgKzc0MjIsNyBAQCBy ZXN0YXJ0X2loOgo+ICAgCQkJCQkJd2FrZV91cCgmcmRldi0+aXJxLnZibGFua19xdWV1ZSk7Cj4g ICAJCQkJCX0KPiAgIAkJCQkJaWYgKGF0b21pY19yZWFkKCZyZGV2LT5pcnEucGZsaXBbMF0pKQo+ IC0JCQkJCQlyYWRlb25fY3J0Y19oYW5kbGVfdmJsYW5rKHJkZXYsIDApOwo+ICsJCQkJCQlyYWRl b25fY3J0Y19oYW5kbGVfZmxpcChyZGV2LCAwKTsKPiAgIAkJCQkJcmRldi0+aXJxLnN0YXRfcmVn cy5jaWsuZGlzcF9pbnQgJj0gfkxCX0QxX1ZCTEFOS19JTlRFUlJVUFQ7Cj4gICAJCQkJCURSTV9E RUJVRygiSUg6IEQxIHZibGFua1xuIik7Cj4gICAJCQkJfQo+IEBAIC03NDg1LDcgKzc0NDgsNyBA QCByZXN0YXJ0X2loOgo+ICAgCQkJCQkJd2FrZV91cCgmcmRldi0+aXJxLnZibGFua19xdWV1ZSk7 Cj4gICAJCQkJCX0KPiAgIAkJCQkJaWYgKGF0b21pY19yZWFkKCZyZGV2LT5pcnEucGZsaXBbMV0p KQo+IC0JCQkJCQlyYWRlb25fY3J0Y19oYW5kbGVfdmJsYW5rKHJkZXYsIDEpOwo+ICsJCQkJCQly YWRlb25fY3J0Y19oYW5kbGVfZmxpcChyZGV2LCAxKTsKPiAgIAkJCQkJcmRldi0+aXJxLnN0YXRf cmVncy5jaWsuZGlzcF9pbnRfY29udCAmPSB+TEJfRDJfVkJMQU5LX0lOVEVSUlVQVDsKPiAgIAkJ CQkJRFJNX0RFQlVHKCJJSDogRDIgdmJsYW5rXG4iKTsKPiAgIAkJCQl9Cj4gQEAgLTc1MTEsNyAr NzQ3NCw3IEBAIHJlc3RhcnRfaWg6Cj4gICAJCQkJCQl3YWtlX3VwKCZyZGV2LT5pcnEudmJsYW5r X3F1ZXVlKTsKPiAgIAkJCQkJfQo+ICAgCQkJCQlpZiAoYXRvbWljX3JlYWQoJnJkZXYtPmlycS5w ZmxpcFsyXSkpCj4gLQkJCQkJCXJhZGVvbl9jcnRjX2hhbmRsZV92YmxhbmsocmRldiwgMik7Cj4g KwkJCQkJCXJhZGVvbl9jcnRjX2hhbmRsZV9mbGlwKHJkZXYsIDIpOwo+ICAgCQkJCQlyZGV2LT5p cnEuc3RhdF9yZWdzLmNpay5kaXNwX2ludF9jb250MiAmPSB+TEJfRDNfVkJMQU5LX0lOVEVSUlVQ VDsKPiAgIAkJCQkJRFJNX0RFQlVHKCJJSDogRDMgdmJsYW5rXG4iKTsKPiAgIAkJCQl9Cj4gQEAg LTc1MzcsNyArNzUwMCw3IEBAIHJlc3RhcnRfaWg6Cj4gICAJCQkJCQl3YWtlX3VwKCZyZGV2LT5p cnEudmJsYW5rX3F1ZXVlKTsKPiAgIAkJCQkJfQo+ICAgCQkJCQlpZiAoYXRvbWljX3JlYWQoJnJk ZXYtPmlycS5wZmxpcFszXSkpCj4gLQkJCQkJCXJhZGVvbl9jcnRjX2hhbmRsZV92YmxhbmsocmRl diwgMyk7Cj4gKwkJCQkJCXJhZGVvbl9jcnRjX2hhbmRsZV9mbGlwKHJkZXYsIDMpOwo+ICAgCQkJ CQlyZGV2LT5pcnEuc3RhdF9yZWdzLmNpay5kaXNwX2ludF9jb250MyAmPSB+TEJfRDRfVkJMQU5L X0lOVEVSUlVQVDsKPiAgIAkJCQkJRFJNX0RFQlVHKCJJSDogRDQgdmJsYW5rXG4iKTsKPiAgIAkJ CQl9Cj4gQEAgLTc1NjMsNyArNzUyNiw3IEBAIHJlc3RhcnRfaWg6Cj4gICAJCQkJCQl3YWtlX3Vw KCZyZGV2LT5pcnEudmJsYW5rX3F1ZXVlKTsKPiAgIAkJCQkJfQo+ICAgCQkJCQlpZiAoYXRvbWlj X3JlYWQoJnJkZXYtPmlycS5wZmxpcFs0XSkpCj4gLQkJCQkJCXJhZGVvbl9jcnRjX2hhbmRsZV92 YmxhbmsocmRldiwgNCk7Cj4gKwkJCQkJCXJhZGVvbl9jcnRjX2hhbmRsZV9mbGlwKHJkZXYsIDQp Owo+ICAgCQkJCQlyZGV2LT5pcnEuc3RhdF9yZWdzLmNpay5kaXNwX2ludF9jb250NCAmPSB+TEJf RDVfVkJMQU5LX0lOVEVSUlVQVDsKPiAgIAkJCQkJRFJNX0RFQlVHKCJJSDogRDUgdmJsYW5rXG4i KTsKPiAgIAkJCQl9Cj4gQEAgLTc1ODksNyArNzU1Miw3IEBAIHJlc3RhcnRfaWg6Cj4gICAJCQkJ CQl3YWtlX3VwKCZyZGV2LT5pcnEudmJsYW5rX3F1ZXVlKTsKPiAgIAkJCQkJfQo+ICAgCQkJCQlp ZiAoYXRvbWljX3JlYWQoJnJkZXYtPmlycS5wZmxpcFs1XSkpCj4gLQkJCQkJCXJhZGVvbl9jcnRj X2hhbmRsZV92YmxhbmsocmRldiwgNSk7Cj4gKwkJCQkJCXJhZGVvbl9jcnRjX2hhbmRsZV9mbGlw KHJkZXYsIDUpOwo+ICAgCQkJCQlyZGV2LT5pcnEuc3RhdF9yZWdzLmNpay5kaXNwX2ludF9jb250 NSAmPSB+TEJfRDZfVkJMQU5LX0lOVEVSUlVQVDsKPiAgIAkJCQkJRFJNX0RFQlVHKCJJSDogRDYg dmJsYW5rXG4iKTsKPiAgIAkJCQl9Cj4gQEAgLTc2MDUsMTUgKzc1NjgsNiBAQCByZXN0YXJ0X2lo Ogo+ICAgCQkJCWJyZWFrOwo+ICAgCQkJfQo+ICAgCQkJYnJlYWs7Cj4gLQkJY2FzZSA4OiAvKiBE MSBwYWdlIGZsaXAgKi8KPiAtCQljYXNlIDEwOiAvKiBEMiBwYWdlIGZsaXAgKi8KPiAtCQljYXNl IDEyOiAvKiBEMyBwYWdlIGZsaXAgKi8KPiAtCQljYXNlIDE0OiAvKiBENCBwYWdlIGZsaXAgKi8K PiAtCQljYXNlIDE2OiAvKiBENSBwYWdlIGZsaXAgKi8KPiAtCQljYXNlIDE4OiAvKiBENiBwYWdl IGZsaXAgKi8KPiAtCQkJRFJNX0RFQlVHKCJJSDogRCVkIGZsaXBcbiIsICgoc3JjX2lkIC0gOCkg Pj4gMSkgKyAxKTsKPiAtCQkJcmFkZW9uX2NydGNfaGFuZGxlX2ZsaXAocmRldiwgKHNyY19pZCAt IDgpID4+IDEpOwo+IC0JCQlicmVhazsKPiAgIAkJY2FzZSA0MjogLyogSFBEIGhvdHBsdWcgKi8K PiAgIAkJCXN3aXRjaCAoc3JjX2RhdGEpIHsKPiAgIAkJCWNhc2UgMDoKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vZXZlcmdyZWVuLmMKPiBpbmRleCAwNDQzMTgzLi5lN2Q2ODVhIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL2V2ZXJncmVlbi5jCj4gQEAgLTEzMDgsMTYgKzEzMDgsMTUgQEAgdm9pZCBkY2U0X3dh aXRfZm9yX3ZibGFuayhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IGNydGMpCj4gICAg KiBAY3J0Y19iYXNlOiBuZXcgYWRkcmVzcyBvZiB0aGUgY3J0YyAoR1BVIE1DIGFkZHJlc3MpCj4g ICAgKgo+ICAgICogRG9lcyB0aGUgYWN0dWFsIHBhZ2VmbGlwIChldmVyZ3JlZW4rKS4KPiAtICog RHVyaW5nIHZibGFuayB3ZSB0YWtlIHRoZSBjcnRjIGxvY2sgYW5kIHdhaXQgZm9yIHRoZSB1cGRh dGVfcGVuZGluZwo+IC0gKiBiaXQgdG8gZ28gaGlnaCwgd2hlbiBpdCBkb2VzLCB3ZSByZWxlYXNl IHRoZSBsb2NrLCBhbmQgYWxsb3cgdGhlCj4gLSAqIGRvdWJsZSBidWZmZXJlZCB1cGRhdGUgdG8g dGFrZSBwbGFjZS4KPiAtICogUmV0dXJucyB0aGUgY3VycmVudCB1cGRhdGUgcGVuZGluZyBzdGF0 dXMuCj4gICAgKi8KPiAgIHZvaWQgZXZlcmdyZWVuX3BhZ2VfZmxpcChzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldiwgaW50IGNydGNfaWQsIHU2NCBjcnRjX2Jhc2UpCj4gICB7Cj4gICAJc3RydWN0 IHJhZGVvbl9jcnRjICpyYWRlb25fY3J0YyA9IHJkZXYtPm1vZGVfaW5mby5jcnRjc1tjcnRjX2lk XTsKPiAgIAl1MzIgdG1wID0gUlJFRzMyKEVWRVJHUkVFTl9HUlBIX1VQREFURSArIHJhZGVvbl9j cnRjLT5jcnRjX29mZnNldCk7Cj4gLQlpbnQgaTsKPiArCj4gKwkvKiBUYWtlIHN1cmZhY2UgdXBk YXRlcyBhdCBob3Jpem9udGFsIGJsYW5rICovCj4gKwlXUkVHMzIoRVZFUkdSRUVOX0dSUEhfRkxJ UF9DT05UUk9MICsgcmFkZW9uX2NydGMtPmNydGNfb2Zmc2V0LAo+ICsJICAgICAgIEVWRVJHUkVF Tl9HUlBIX1NVUkZBQ0VfVVBEQVRFX0hfUkVUUkFDRV9FTik7Cj4gICAKPiAgIAkvKiBMb2NrIHRo ZSBncmFwaGljcyB1cGRhdGUgbG9jayAqLwo+ICAgCXRtcCB8PSBFVkVSR1JFRU5fR1JQSF9VUERB VEVfTE9DSzsKPiBAQCAtMTMzNCwzNiArMTMzMywxMSBAQCB2b2lkIGV2ZXJncmVlbl9wYWdlX2Zs aXAoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGludCBjcnRjX2lkLCB1NjQgY3J0Y19iYXNl KQo+ICAgCVdSRUczMihFVkVSR1JFRU5fR1JQSF9QUklNQVJZX1NVUkZBQ0VfQUREUkVTUyArIHJh ZGVvbl9jcnRjLT5jcnRjX29mZnNldCwKPiAgIAkgICAgICAgKHUzMiljcnRjX2Jhc2UpOwo+ICAg Cj4gLQkvKiBXYWl0IGZvciB1cGRhdGVfcGVuZGluZyB0byBnbyBoaWdoLiAqLwo+IC0JZm9yIChp ID0gMDsgaSA8IHJkZXYtPnVzZWNfdGltZW91dDsgaSsrKSB7Cj4gLQkJaWYgKFJSRUczMihFVkVS R1JFRU5fR1JQSF9VUERBVEUgKyByYWRlb25fY3J0Yy0+Y3J0Y19vZmZzZXQpICYgRVZFUkdSRUVO X0dSUEhfU1VSRkFDRV9VUERBVEVfUEVORElORykKPiAtCQkJYnJlYWs7Cj4gLQkJdWRlbGF5KDEp Owo+IC0JfQo+IC0JRFJNX0RFQlVHKCJVcGRhdGUgcGVuZGluZyBub3cgaGlnaC4gVW5sb2NraW5n IHZ1cGRhdGVfbG9jay5cbiIpOwo+IC0KPiAtCS8qIFVubG9jayB0aGUgbG9jaywgc28gZG91Ymxl LWJ1ZmZlcmluZyBjYW4gdGFrZSBwbGFjZSBpbnNpZGUgdmJsYW5rICovCj4gKwkvKiBVbmxvY2sg dGhlIGxvY2ssIHNvIGRvdWJsZS1idWZmZXJpbmcgY2FuIHRha2UgcGxhY2UgaW5zaWRlIGhibGFu ayAqLwo+ICAgCXRtcCAmPSB+RVZFUkdSRUVOX0dSUEhfVVBEQVRFX0xPQ0s7Cj4gICAJV1JFRzMy KEVWRVJHUkVFTl9HUlBIX1VQREFURSArIHJhZGVvbl9jcnRjLT5jcnRjX29mZnNldCwgdG1wKTsK PiAgIH0KPiAgIAo+IC0vKioKPiAtICogZXZlcmdyZWVuX3BhZ2VfZmxpcF9wZW5kaW5nIC0gY2hl Y2sgaWYgcGFnZSBmbGlwIGlzIHN0aWxsIHBlbmRpbmcKPiAtICoKPiAtICogQHJkZXY6IHJhZGVv bl9kZXZpY2UgcG9pbnRlcgo+IC0gKiBAY3J0Y19pZDogY3J0YyB0byBjaGVjawo+IC0gKgo+IC0g KiBSZXR1cm5zIHRoZSBjdXJyZW50IHVwZGF0ZSBwZW5kaW5nIHN0YXR1cy4KPiAtICovCj4gLWJv b2wgZXZlcmdyZWVuX3BhZ2VfZmxpcF9wZW5kaW5nKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 LCBpbnQgY3J0Y19pZCkKPiAtewo+IC0Jc3RydWN0IHJhZGVvbl9jcnRjICpyYWRlb25fY3J0YyA9 IHJkZXYtPm1vZGVfaW5mby5jcnRjc1tjcnRjX2lkXTsKPiAtCj4gLQkvKiBSZXR1cm4gY3VycmVu dCB1cGRhdGVfcGVuZGluZyBzdGF0dXM6ICovCj4gLQlyZXR1cm4gISEoUlJFRzMyKEVWRVJHUkVF Tl9HUlBIX1VQREFURSArIHJhZGVvbl9jcnRjLT5jcnRjX29mZnNldCkgJgo+IC0JCUVWRVJHUkVF Tl9HUlBIX1NVUkZBQ0VfVVBEQVRFX1BFTkRJTkcpOwo+IC19Cj4gLQo+ICAgLyogZ2V0IHRlbXBl cmF0dXJlIGluIG1pbGxpZGVncmVlcyAqLwo+ICAgaW50IGV2ZXJncmVlbl9nZXRfdGVtcChzdHJ1 Y3QgcmFkZW9uX2RldmljZSAqcmRldikKPiAgIHsKPiBAQCAtNDU0MSwyMyArNDUxNSw2IEBAIGlu dCBldmVyZ3JlZW5faXJxX3NldChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKPiAgIAkJV1JF RzMyKElOVF9NQVNLICsgRVZFUkdSRUVOX0NSVEM1X1JFR0lTVEVSX09GRlNFVCwgY3J0YzYpOwo+ ICAgCX0KPiAgIAo+IC0JV1JFRzMyKEdSUEhfSU5UX0NPTlRST0wgKyBFVkVSR1JFRU5fQ1JUQzBf UkVHSVNURVJfT0ZGU0VULAo+IC0JICAgICAgIEdSUEhfUEZMSVBfSU5UX01BU0spOwo+IC0JV1JF RzMyKEdSUEhfSU5UX0NPTlRST0wgKyBFVkVSR1JFRU5fQ1JUQzFfUkVHSVNURVJfT0ZGU0VULAo+ IC0JICAgICAgIEdSUEhfUEZMSVBfSU5UX01BU0spOwo+IC0JaWYgKHJkZXYtPm51bV9jcnRjID49 IDQpIHsKPiAtCQlXUkVHMzIoR1JQSF9JTlRfQ09OVFJPTCArIEVWRVJHUkVFTl9DUlRDMl9SRUdJ U1RFUl9PRkZTRVQsCj4gLQkJICAgICAgIEdSUEhfUEZMSVBfSU5UX01BU0spOwo+IC0JCVdSRUcz MihHUlBIX0lOVF9DT05UUk9MICsgRVZFUkdSRUVOX0NSVEMzX1JFR0lTVEVSX09GRlNFVCwKPiAt CQkgICAgICAgR1JQSF9QRkxJUF9JTlRfTUFTSyk7Cj4gLQl9Cj4gLQlpZiAocmRldi0+bnVtX2Ny dGMgPj0gNikgewo+IC0JCVdSRUczMihHUlBIX0lOVF9DT05UUk9MICsgRVZFUkdSRUVOX0NSVEM0 X1JFR0lTVEVSX09GRlNFVCwKPiAtCQkgICAgICAgR1JQSF9QRkxJUF9JTlRfTUFTSyk7Cj4gLQkJ V1JFRzMyKEdSUEhfSU5UX0NPTlRST0wgKyBFVkVSR1JFRU5fQ1JUQzVfUkVHSVNURVJfT0ZGU0VU LAo+IC0JCSAgICAgICBHUlBIX1BGTElQX0lOVF9NQVNLKTsKPiAtCX0KPiAtCj4gICAJV1JFRzMy KERDX0hQRDFfSU5UX0NPTlRST0wsIGhwZDEpOwo+ICAgCVdSRUczMihEQ19IUEQyX0lOVF9DT05U Uk9MLCBocGQyKTsKPiAgIAlXUkVHMzIoRENfSFBEM19JTlRfQ09OVFJPTCwgaHBkMyk7Cj4gQEAg LTQ2MDcsMTAgKzQ1NjQsNiBAQCBzdGF0aWMgdm9pZCBldmVyZ3JlZW5faXJxX2FjayhzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldikKPiAgIAlyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5h Zm10X3N0YXR1czUgPSBSUkVHMzIoQUZNVF9TVEFUVVMgKyBFVkVSR1JFRU5fQ1JUQzRfUkVHSVNU RVJfT0ZGU0VUKTsKPiAgIAlyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5hZm10X3N0YXR1 czYgPSBSUkVHMzIoQUZNVF9TVEFUVVMgKyBFVkVSR1JFRU5fQ1JUQzVfUkVHSVNURVJfT0ZGU0VU KTsKPiAgIAo+IC0JaWYgKHJkZXYtPmlycS5zdGF0X3JlZ3MuZXZlcmdyZWVuLmQxZ3JwaF9pbnQg JiBHUlBIX1BGTElQX0lOVF9PQ0NVUlJFRCkKPiAtCQlXUkVHMzIoR1JQSF9JTlRfU1RBVFVTICsg RVZFUkdSRUVOX0NSVEMwX1JFR0lTVEVSX09GRlNFVCwgR1JQSF9QRkxJUF9JTlRfQ0xFQVIpOwo+ IC0JaWYgKHJkZXYtPmlycS5zdGF0X3JlZ3MuZXZlcmdyZWVuLmQyZ3JwaF9pbnQgJiBHUlBIX1BG TElQX0lOVF9PQ0NVUlJFRCkKPiAtCQlXUkVHMzIoR1JQSF9JTlRfU1RBVFVTICsgRVZFUkdSRUVO X0NSVEMxX1JFR0lTVEVSX09GRlNFVCwgR1JQSF9QRkxJUF9JTlRfQ0xFQVIpOwo+ICAgCWlmIChy ZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5kaXNwX2ludCAmIExCX0QxX1ZCTEFOS19JTlRF UlJVUFQpCj4gICAJCVdSRUczMihWQkxBTktfU1RBVFVTICsgRVZFUkdSRUVOX0NSVEMwX1JFR0lT VEVSX09GRlNFVCwgVkJMQU5LX0FDSyk7Cj4gICAJaWYgKHJkZXYtPmlycS5zdGF0X3JlZ3MuZXZl cmdyZWVuLmRpc3BfaW50ICYgTEJfRDFfVkxJTkVfSU5URVJSVVBUKQo+IEBAIC00NjIxLDEwICs0 NTc0LDYgQEAgc3RhdGljIHZvaWQgZXZlcmdyZWVuX2lycV9hY2soc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYpCj4gICAJCVdSRUczMihWTElORV9TVEFUVVMgKyBFVkVSR1JFRU5fQ1JUQzFfUkVH SVNURVJfT0ZGU0VULCBWTElORV9BQ0spOwo+ICAgCj4gICAJaWYgKHJkZXYtPm51bV9jcnRjID49 IDQpIHsKPiAtCQlpZiAocmRldi0+aXJxLnN0YXRfcmVncy5ldmVyZ3JlZW4uZDNncnBoX2ludCAm IEdSUEhfUEZMSVBfSU5UX09DQ1VSUkVEKQo+IC0JCQlXUkVHMzIoR1JQSF9JTlRfU1RBVFVTICsg RVZFUkdSRUVOX0NSVEMyX1JFR0lTVEVSX09GRlNFVCwgR1JQSF9QRkxJUF9JTlRfQ0xFQVIpOwo+ IC0JCWlmIChyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5kNGdycGhfaW50ICYgR1JQSF9Q RkxJUF9JTlRfT0NDVVJSRUQpCj4gLQkJCVdSRUczMihHUlBIX0lOVF9TVEFUVVMgKyBFVkVSR1JF RU5fQ1JUQzNfUkVHSVNURVJfT0ZGU0VULCBHUlBIX1BGTElQX0lOVF9DTEVBUik7Cj4gICAJCWlm IChyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5kaXNwX2ludF9jb250MiAmIExCX0QzX1ZC TEFOS19JTlRFUlJVUFQpCj4gICAJCQlXUkVHMzIoVkJMQU5LX1NUQVRVUyArIEVWRVJHUkVFTl9D UlRDMl9SRUdJU1RFUl9PRkZTRVQsIFZCTEFOS19BQ0spOwo+ICAgCQlpZiAocmRldi0+aXJxLnN0 YXRfcmVncy5ldmVyZ3JlZW4uZGlzcF9pbnRfY29udDIgJiBMQl9EM19WTElORV9JTlRFUlJVUFQp Cj4gQEAgLTQ2MzYsMTAgKzQ1ODUsNiBAQCBzdGF0aWMgdm9pZCBldmVyZ3JlZW5faXJxX2Fjayhz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKPiAgIAl9Cj4gICAKPiAgIAlpZiAocmRldi0+bnVt X2NydGMgPj0gNikgewo+IC0JCWlmIChyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5kNWdy cGhfaW50ICYgR1JQSF9QRkxJUF9JTlRfT0NDVVJSRUQpCj4gLQkJCVdSRUczMihHUlBIX0lOVF9T VEFUVVMgKyBFVkVSR1JFRU5fQ1JUQzRfUkVHSVNURVJfT0ZGU0VULCBHUlBIX1BGTElQX0lOVF9D TEVBUik7Cj4gLQkJaWYgKHJkZXYtPmlycS5zdGF0X3JlZ3MuZXZlcmdyZWVuLmQ2Z3JwaF9pbnQg JiBHUlBIX1BGTElQX0lOVF9PQ0NVUlJFRCkKPiAtCQkJV1JFRzMyKEdSUEhfSU5UX1NUQVRVUyAr IEVWRVJHUkVFTl9DUlRDNV9SRUdJU1RFUl9PRkZTRVQsIEdSUEhfUEZMSVBfSU5UX0NMRUFSKTsK PiAgIAkJaWYgKHJkZXYtPmlycS5zdGF0X3JlZ3MuZXZlcmdyZWVuLmRpc3BfaW50X2NvbnQ0ICYg TEJfRDVfVkJMQU5LX0lOVEVSUlVQVCkKPiAgIAkJCVdSRUczMihWQkxBTktfU1RBVFVTICsgRVZF UkdSRUVOX0NSVEM0X1JFR0lTVEVSX09GRlNFVCwgVkJMQU5LX0FDSyk7Cj4gICAJCWlmIChyZGV2 LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5kaXNwX2ludF9jb250NCAmIExCX0Q1X1ZMSU5FX0lO VEVSUlVQVCkKPiBAQCAtNDc5OCw3ICs0NzQzLDcgQEAgcmVzdGFydF9paDoKPiAgIAkJCQkJCXdh a2VfdXAoJnJkZXYtPmlycS52YmxhbmtfcXVldWUpOwo+ICAgCQkJCQl9Cj4gICAJCQkJCWlmIChh dG9taWNfcmVhZCgmcmRldi0+aXJxLnBmbGlwWzBdKSkKPiAtCQkJCQkJcmFkZW9uX2NydGNfaGFu ZGxlX3ZibGFuayhyZGV2LCAwKTsKPiArCQkJCQkJcmFkZW9uX2NydGNfaGFuZGxlX2ZsaXAocmRl diwgMCk7Cj4gICAJCQkJCXJkZXYtPmlycS5zdGF0X3JlZ3MuZXZlcmdyZWVuLmRpc3BfaW50ICY9 IH5MQl9EMV9WQkxBTktfSU5URVJSVVBUOwo+ICAgCQkJCQlEUk1fREVCVUcoIklIOiBEMSB2Ymxh bmtcbiIpOwo+ICAgCQkJCX0KPiBAQCAtNDgyNCw3ICs0NzY5LDcgQEAgcmVzdGFydF9paDoKPiAg IAkJCQkJCXdha2VfdXAoJnJkZXYtPmlycS52YmxhbmtfcXVldWUpOwo+ICAgCQkJCQl9Cj4gICAJ CQkJCWlmIChhdG9taWNfcmVhZCgmcmRldi0+aXJxLnBmbGlwWzFdKSkKPiAtCQkJCQkJcmFkZW9u X2NydGNfaGFuZGxlX3ZibGFuayhyZGV2LCAxKTsKPiArCQkJCQkJcmFkZW9uX2NydGNfaGFuZGxl X2ZsaXAocmRldiwgMSk7Cj4gICAJCQkJCXJkZXYtPmlycS5zdGF0X3JlZ3MuZXZlcmdyZWVuLmRp c3BfaW50X2NvbnQgJj0gfkxCX0QyX1ZCTEFOS19JTlRFUlJVUFQ7Cj4gICAJCQkJCURSTV9ERUJV RygiSUg6IEQyIHZibGFua1xuIik7Cj4gICAJCQkJfQo+IEBAIC00ODUwLDcgKzQ3OTUsNyBAQCBy ZXN0YXJ0X2loOgo+ICAgCQkJCQkJd2FrZV91cCgmcmRldi0+aXJxLnZibGFua19xdWV1ZSk7Cj4g ICAJCQkJCX0KPiAgIAkJCQkJaWYgKGF0b21pY19yZWFkKCZyZGV2LT5pcnEucGZsaXBbMl0pKQo+ IC0JCQkJCQlyYWRlb25fY3J0Y19oYW5kbGVfdmJsYW5rKHJkZXYsIDIpOwo+ICsJCQkJCQlyYWRl b25fY3J0Y19oYW5kbGVfZmxpcChyZGV2LCAyKTsKPiAgIAkJCQkJcmRldi0+aXJxLnN0YXRfcmVn cy5ldmVyZ3JlZW4uZGlzcF9pbnRfY29udDIgJj0gfkxCX0QzX1ZCTEFOS19JTlRFUlJVUFQ7Cj4g ICAJCQkJCURSTV9ERUJVRygiSUg6IEQzIHZibGFua1xuIik7Cj4gICAJCQkJfQo+IEBAIC00ODc2 LDcgKzQ4MjEsNyBAQCByZXN0YXJ0X2loOgo+ICAgCQkJCQkJd2FrZV91cCgmcmRldi0+aXJxLnZi bGFua19xdWV1ZSk7Cj4gICAJCQkJCX0KPiAgIAkJCQkJaWYgKGF0b21pY19yZWFkKCZyZGV2LT5p cnEucGZsaXBbM10pKQo+IC0JCQkJCQlyYWRlb25fY3J0Y19oYW5kbGVfdmJsYW5rKHJkZXYsIDMp Owo+ICsJCQkJCQlyYWRlb25fY3J0Y19oYW5kbGVfZmxpcChyZGV2LCAzKTsKPiAgIAkJCQkJcmRl di0+aXJxLnN0YXRfcmVncy5ldmVyZ3JlZW4uZGlzcF9pbnRfY29udDMgJj0gfkxCX0Q0X1ZCTEFO S19JTlRFUlJVUFQ7Cj4gICAJCQkJCURSTV9ERUJVRygiSUg6IEQ0IHZibGFua1xuIik7Cj4gICAJ CQkJfQo+IEBAIC00OTAyLDcgKzQ4NDcsNyBAQCByZXN0YXJ0X2loOgo+ICAgCQkJCQkJd2FrZV91 cCgmcmRldi0+aXJxLnZibGFua19xdWV1ZSk7Cj4gICAJCQkJCX0KPiAgIAkJCQkJaWYgKGF0b21p Y19yZWFkKCZyZGV2LT5pcnEucGZsaXBbNF0pKQo+IC0JCQkJCQlyYWRlb25fY3J0Y19oYW5kbGVf dmJsYW5rKHJkZXYsIDQpOwo+ICsJCQkJCQlyYWRlb25fY3J0Y19oYW5kbGVfZmxpcChyZGV2LCA0 KTsKPiAgIAkJCQkJcmRldi0+aXJxLnN0YXRfcmVncy5ldmVyZ3JlZW4uZGlzcF9pbnRfY29udDQg Jj0gfkxCX0Q1X1ZCTEFOS19JTlRFUlJVUFQ7Cj4gICAJCQkJCURSTV9ERUJVRygiSUg6IEQ1IHZi bGFua1xuIik7Cj4gICAJCQkJfQo+IEBAIC00OTI4LDcgKzQ4NzMsNyBAQCByZXN0YXJ0X2loOgo+ ICAgCQkJCQkJd2FrZV91cCgmcmRldi0+aXJxLnZibGFua19xdWV1ZSk7Cj4gICAJCQkJCX0KPiAg IAkJCQkJaWYgKGF0b21pY19yZWFkKCZyZGV2LT5pcnEucGZsaXBbNV0pKQo+IC0JCQkJCQlyYWRl b25fY3J0Y19oYW5kbGVfdmJsYW5rKHJkZXYsIDUpOwo+ICsJCQkJCQlyYWRlb25fY3J0Y19oYW5k bGVfZmxpcChyZGV2LCA1KTsKPiAgIAkJCQkJcmRldi0+aXJxLnN0YXRfcmVncy5ldmVyZ3JlZW4u ZGlzcF9pbnRfY29udDUgJj0gfkxCX0Q2X1ZCTEFOS19JTlRFUlJVUFQ7Cj4gICAJCQkJCURSTV9E RUJVRygiSUg6IEQ2IHZibGFua1xuIik7Cj4gICAJCQkJfQo+IEBAIC00OTQ0LDE1ICs0ODg5LDYg QEAgcmVzdGFydF9paDoKPiAgIAkJCQlicmVhazsKPiAgIAkJCX0KPiAgIAkJCWJyZWFrOwo+IC0J CWNhc2UgODogLyogRDEgcGFnZSBmbGlwICovCj4gLQkJY2FzZSAxMDogLyogRDIgcGFnZSBmbGlw ICovCj4gLQkJY2FzZSAxMjogLyogRDMgcGFnZSBmbGlwICovCj4gLQkJY2FzZSAxNDogLyogRDQg cGFnZSBmbGlwICovCj4gLQkJY2FzZSAxNjogLyogRDUgcGFnZSBmbGlwICovCj4gLQkJY2FzZSAx ODogLyogRDYgcGFnZSBmbGlwICovCj4gLQkJCURSTV9ERUJVRygiSUg6IEQlZCBmbGlwXG4iLCAo KHNyY19pZCAtIDgpID4+IDEpICsgMSk7Cj4gLQkJCXJhZGVvbl9jcnRjX2hhbmRsZV9mbGlwKHJk ZXYsIChzcmNfaWQgLSA4KSA+PiAxKTsKPiAtCQkJYnJlYWs7Cj4gICAJCWNhc2UgNDI6IC8qIEhQ RCBob3RwbHVnICovCj4gICAJCQlzd2l0Y2ggKHNyY19kYXRhKSB7Cj4gICAJCQljYXNlIDA6Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjEwMC5jIGIvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yMTAwLmMKPiBpbmRleCA1NDY3NGI3Li4xZjJhOTYwIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjEwMC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yMTAwLmMKPiBAQCAtMTQ5LDUwICsxNDksMTggQEAgdm9pZCByMTAwX3dhaXRfZm9yX3Zi bGFuayhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IGNydGMpCj4gICAgKiBAY3J0Y19i YXNlOiBuZXcgYWRkcmVzcyBvZiB0aGUgY3J0YyAoR1BVIE1DIGFkZHJlc3MpCj4gICAgKgo+ICAg ICogRG9lcyB0aGUgYWN0dWFsIHBhZ2VmbGlwIChyMXh4LXI0eHgpLgo+IC0gKiBEdXJpbmcgdmJs YW5rIHdlIHRha2UgdGhlIGNydGMgbG9jayBhbmQgd2FpdCBmb3IgdGhlIHVwZGF0ZV9wZW5kaW5n Cj4gLSAqIGJpdCB0byBnbyBoaWdoLCB3aGVuIGl0IGRvZXMsIHdlIHJlbGVhc2UgdGhlIGxvY2ss IGFuZCBhbGxvdyB0aGUKPiAtICogZG91YmxlIGJ1ZmZlcmVkIHVwZGF0ZSB0byB0YWtlIHBsYWNl Lgo+ICAgICovCj4gICB2b2lkIHIxMDBfcGFnZV9mbGlwKHN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2LCBpbnQgY3J0Y19pZCwgdTY0IGNydGNfYmFzZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgcmFkZW9u X2NydGMgKnJhZGVvbl9jcnRjID0gcmRldi0+bW9kZV9pbmZvLmNydGNzW2NydGNfaWRdOwo+IC0J dTMyIHRtcCA9ICgodTMyKWNydGNfYmFzZSkgfCBSQURFT05fQ1JUQ19PRkZTRVRfX09GRlNFVF9M T0NLOwo+IC0JaW50IGk7Cj4gLQo+IC0JLyogTG9jayB0aGUgZ3JhcGhpY3MgdXBkYXRlIGxvY2sg Ki8KPiAtCS8qIHVwZGF0ZSB0aGUgc2Nhbm91dCBhZGRyZXNzZXMgKi8KPiAtCVdSRUczMihSQURF T05fQ1JUQ19PRkZTRVQgKyByYWRlb25fY3J0Yy0+Y3J0Y19vZmZzZXQsIHRtcCk7Cj4gKwl1MzIg Y3J0Y19vZmZzZXRfY250bCA9IFJSRUczMihSQURFT05fQ1JUQ19PRkZTRVRfQ05UTCk7Cj4gICAK PiAtCS8qIFdhaXQgZm9yIHVwZGF0ZV9wZW5kaW5nIHRvIGdvIGhpZ2guICovCj4gLQlmb3IgKGkg PSAwOyBpIDwgcmRldi0+dXNlY190aW1lb3V0OyBpKyspIHsKPiAtCQlpZiAoUlJFRzMyKFJBREVP Tl9DUlRDX09GRlNFVCArIHJhZGVvbl9jcnRjLT5jcnRjX29mZnNldCkgJiBSQURFT05fQ1JUQ19P RkZTRVRfX0dVSV9UUklHX09GRlNFVCkKPiAtCQkJYnJlYWs7Cj4gLQkJdWRlbGF5KDEpOwo+IC0J fQo+IC0JRFJNX0RFQlVHKCJVcGRhdGUgcGVuZGluZyBub3cgaGlnaC4gVW5sb2NraW5nIHZ1cGRh dGVfbG9jay5cbiIpOwo+IC0KPiAtCS8qIFVubG9jayB0aGUgbG9jaywgc28gZG91YmxlLWJ1ZmZl cmluZyBjYW4gdGFrZSBwbGFjZSBpbnNpZGUgdmJsYW5rICovCj4gLQl0bXAgJj0gflJBREVPTl9D UlRDX09GRlNFVF9fT0ZGU0VUX0xPQ0s7Cj4gLQlXUkVHMzIoUkFERU9OX0NSVENfT0ZGU0VUICsg cmFkZW9uX2NydGMtPmNydGNfb2Zmc2V0LCB0bXApOwo+IC0KPiAtfQo+IC0KPiAtLyoqCj4gLSAq IHIxMDBfcGFnZV9mbGlwX3BlbmRpbmcgLSBjaGVjayBpZiBwYWdlIGZsaXAgaXMgc3RpbGwgcGVu ZGluZwo+IC0gKgo+IC0gKiBAcmRldjogcmFkZW9uX2RldmljZSBwb2ludGVyCj4gLSAqIEBjcnRj X2lkOiBjcnRjIHRvIGNoZWNrCj4gLSAqCj4gLSAqIENoZWNrIGlmIHRoZSBsYXN0IHBhZ2VmaWxw IGlzIHN0aWxsIHBlbmRpbmcgKHIxeHgtcjR4eCkuCj4gLSAqIFJldHVybnMgdGhlIGN1cnJlbnQg dXBkYXRlIHBlbmRpbmcgc3RhdHVzLgo+IC0gKi8KPiAtYm9vbCByMTAwX3BhZ2VfZmxpcF9wZW5k aW5nKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgY3J0Y19pZCkKPiAtewo+IC0Jc3Ry dWN0IHJhZGVvbl9jcnRjICpyYWRlb25fY3J0YyA9IHJkZXYtPm1vZGVfaW5mby5jcnRjc1tjcnRj X2lkXTsKPiArCS8qIFRha2Ugc3VyZmFjZSB1cGRhdGVzIGF0IGhvcml6b250YWwgYmxhbmsgKi8K PiArCVdSRUczMihSQURFT05fQ1JUQ19PRkZTRVRfQ05UTCwKPiArCSAgICAgICBjcnRjX29mZnNl dF9jbnRsIHwgUkFERU9OX0NSVENfT0ZGU0VUX0ZMSVBfQ05UTCk7Cj4gICAKPiAtCS8qIFJldHVy biBjdXJyZW50IHVwZGF0ZV9wZW5kaW5nIHN0YXR1czogKi8KPiAtCXJldHVybiAhIShSUkVHMzIo UkFERU9OX0NSVENfT0ZGU0VUICsgcmFkZW9uX2NydGMtPmNydGNfb2Zmc2V0KSAmCj4gLQkJUkFE RU9OX0NSVENfT0ZGU0VUX19HVUlfVFJJR19PRkZTRVQpOwo+ICsJLyogVXBkYXRlIHRoZSBzY2Fu b3V0IGFkZHJlc3MgKi8KPiArCVdSRUczMihSQURFT05fQ1JUQ19PRkZTRVQgKyByYWRlb25fY3J0 Yy0+Y3J0Y19vZmZzZXQsIGNydGNfYmFzZSk7Cj4gICB9Cj4gICAKPiAgIC8qKgo+IEBAIC03ODYs NyArNzU0LDcgQEAgaW50IHIxMDBfaXJxX3Byb2Nlc3Moc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYpCj4gICAJCQkJd2FrZV91cCgmcmRldi0+aXJxLnZibGFua19xdWV1ZSk7Cj4gICAJCQl9Cj4g ICAJCQlpZiAoYXRvbWljX3JlYWQoJnJkZXYtPmlycS5wZmxpcFswXSkpCj4gLQkJCQlyYWRlb25f Y3J0Y19oYW5kbGVfdmJsYW5rKHJkZXYsIDApOwo+ICsJCQkJcmFkZW9uX2NydGNfaGFuZGxlX2Zs aXAocmRldiwgMCk7Cj4gICAJCX0KPiAgIAkJaWYgKHN0YXR1cyAmIFJBREVPTl9DUlRDMl9WQkxB TktfU1RBVCkgewo+ICAgCQkJaWYgKHJkZXYtPmlycS5jcnRjX3ZibGFua19pbnRbMV0pIHsKPiBA QCAtNzk1LDcgKzc2Myw3IEBAIGludCByMTAwX2lycV9wcm9jZXNzKHN0cnVjdCByYWRlb25fZGV2 aWNlICpyZGV2KQo+ICAgCQkJCXdha2VfdXAoJnJkZXYtPmlycS52YmxhbmtfcXVldWUpOwo+ICAg CQkJfQo+ICAgCQkJaWYgKGF0b21pY19yZWFkKCZyZGV2LT5pcnEucGZsaXBbMV0pKQo+IC0JCQkJ cmFkZW9uX2NydGNfaGFuZGxlX3ZibGFuayhyZGV2LCAxKTsKPiArCQkJCXJhZGVvbl9jcnRjX2hh bmRsZV9mbGlwKHJkZXYsIDEpOwo+ICAgCQl9Cj4gICAJCWlmIChzdGF0dXMgJiBSQURFT05fRlBf REVURUNUX1NUQVQpIHsKPiAgIAkJCXF1ZXVlX2hvdHBsdWcgPSB0cnVlOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDAuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cjYwMC5jCj4gaW5kZXggYWU1NGY3Ni4uOGYzMThlYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3I2MDAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMC5j Cj4gQEAgLTM2MTQsOCArMzYxNCw2IEBAIGludCByNjAwX2lycV9zZXQoc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYpCj4gICAJV1JFRzMyKENQX0lOVF9DTlRMLCBjcF9pbnRfY250bCk7Cj4gICAJ V1JFRzMyKERNQV9DTlRMLCBkbWFfY250bCk7Cj4gICAJV1JFRzMyKER4TU9ERV9JTlRfTUFTSywg bW9kZV9pbnQpOwo+IC0JV1JFRzMyKEQxR1JQSF9JTlRFUlJVUFRfQ09OVFJPTCwgRHhHUlBIX1BG TElQX0lOVF9NQVNLKTsKPiAtCVdSRUczMihEMkdSUEhfSU5URVJSVVBUX0NPTlRST0wsIER4R1JQ SF9QRkxJUF9JTlRfTUFTSyk7Cj4gICAJV1JFRzMyKEdSQk1fSU5UX0NOVEwsIGdyYm1faW50X2Nu dGwpOwo+ICAgCWlmIChBU0lDX0lTX0RDRTMocmRldikpIHsKPiAgIAkJV1JFRzMyKERDX0hQRDFf SU5UX0NPTlRST0wsIGhwZDEpOwo+IEBAIC0zNjcyLDEwICszNjcwLDYgQEAgc3RhdGljIHZvaWQg cjYwMF9pcnFfYWNrKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAgCXJkZXYtPmlycS5z dGF0X3JlZ3MucjYwMC5kMWdycGhfaW50ID0gUlJFRzMyKEQxR1JQSF9JTlRFUlJVUFRfU1RBVFVT KTsKPiAgIAlyZGV2LT5pcnEuc3RhdF9yZWdzLnI2MDAuZDJncnBoX2ludCA9IFJSRUczMihEMkdS UEhfSU5URVJSVVBUX1NUQVRVUyk7Cj4gICAKPiAtCWlmIChyZGV2LT5pcnEuc3RhdF9yZWdzLnI2 MDAuZDFncnBoX2ludCAmIER4R1JQSF9QRkxJUF9JTlRfT0NDVVJSRUQpCj4gLQkJV1JFRzMyKEQx R1JQSF9JTlRFUlJVUFRfU1RBVFVTLCBEeEdSUEhfUEZMSVBfSU5UX0NMRUFSKTsKPiAtCWlmIChy ZGV2LT5pcnEuc3RhdF9yZWdzLnI2MDAuZDJncnBoX2ludCAmIER4R1JQSF9QRkxJUF9JTlRfT0ND VVJSRUQpCj4gLQkJV1JFRzMyKEQyR1JQSF9JTlRFUlJVUFRfU1RBVFVTLCBEeEdSUEhfUEZMSVBf SU5UX0NMRUFSKTsKPiAgIAlpZiAocmRldi0+aXJxLnN0YXRfcmVncy5yNjAwLmRpc3BfaW50ICYg TEJfRDFfVkJMQU5LX0lOVEVSUlVQVCkKPiAgIAkJV1JFRzMyKEQxTU9ERV9WQkxBTktfU1RBVFVT LCBEeE1PREVfVkJMQU5LX0FDSyk7Cj4gICAJaWYgKHJkZXYtPmlycS5zdGF0X3JlZ3MucjYwMC5k aXNwX2ludCAmIExCX0QxX1ZMSU5FX0lOVEVSUlVQVCkKPiBAQCAtMzg3Niw3ICszODcwLDcgQEAg cmVzdGFydF9paDoKPiAgIAkJCQkJCXdha2VfdXAoJnJkZXYtPmlycS52YmxhbmtfcXVldWUpOwo+ ICAgCQkJCQl9Cj4gICAJCQkJCWlmIChhdG9taWNfcmVhZCgmcmRldi0+aXJxLnBmbGlwWzBdKSkK PiAtCQkJCQkJcmFkZW9uX2NydGNfaGFuZGxlX3ZibGFuayhyZGV2LCAwKTsKPiArCQkJCQkJcmFk ZW9uX2NydGNfaGFuZGxlX2ZsaXAocmRldiwgMCk7Cj4gICAJCQkJCXJkZXYtPmlycS5zdGF0X3Jl Z3MucjYwMC5kaXNwX2ludCAmPSB+TEJfRDFfVkJMQU5LX0lOVEVSUlVQVDsKPiAgIAkJCQkJRFJN X0RFQlVHKCJJSDogRDEgdmJsYW5rXG4iKTsKPiAgIAkJCQl9Cj4gQEAgLTM5MDIsNyArMzg5Niw3 IEBAIHJlc3RhcnRfaWg6Cj4gICAJCQkJCQl3YWtlX3VwKCZyZGV2LT5pcnEudmJsYW5rX3F1ZXVl KTsKPiAgIAkJCQkJfQo+ICAgCQkJCQlpZiAoYXRvbWljX3JlYWQoJnJkZXYtPmlycS5wZmxpcFsx XSkpCj4gLQkJCQkJCXJhZGVvbl9jcnRjX2hhbmRsZV92YmxhbmsocmRldiwgMSk7Cj4gKwkJCQkJ CXJhZGVvbl9jcnRjX2hhbmRsZV9mbGlwKHJkZXYsIDEpOwo+ICAgCQkJCQlyZGV2LT5pcnEuc3Rh dF9yZWdzLnI2MDAuZGlzcF9pbnQgJj0gfkxCX0QyX1ZCTEFOS19JTlRFUlJVUFQ7Cj4gICAJCQkJ CURSTV9ERUJVRygiSUg6IEQyIHZibGFua1xuIik7Cj4gICAJCQkJfQo+IEBAIC0zOTE4LDE0ICsz OTEyLDYgQEAgcmVzdGFydF9paDoKPiAgIAkJCQlicmVhazsKPiAgIAkJCX0KPiAgIAkJCWJyZWFr Owo+IC0JCWNhc2UgOTogLyogRDEgcGZsaXAgKi8KPiAtCQkJRFJNX0RFQlVHKCJJSDogRDEgZmxp cFxuIik7Cj4gLQkJCXJhZGVvbl9jcnRjX2hhbmRsZV9mbGlwKHJkZXYsIDApOwo+IC0JCQlicmVh azsKPiAtCQljYXNlIDExOiAvKiBEMiBwZmxpcCAqLwo+IC0JCQlEUk1fREVCVUcoIklIOiBEMiBm bGlwXG4iKTsKPiAtCQkJcmFkZW9uX2NydGNfaGFuZGxlX2ZsaXAocmRldiwgMSk7Cj4gLQkJCWJy ZWFrOwo+ICAgCQljYXNlIDE5OiAvKiBIUEQvREFDIGhvdHBsdWcgKi8KPiAgIAkJCXN3aXRjaCAo c3JjX2RhdGEpIHsKPiAgIAkJCWNhc2UgMDoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb24uaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKPiBpbmRl eCA4ZThlZjA4Li43YTQ1YzkzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCj4gQEAgLTY4 MSw2ICs2ODEsNyBAQCBzdHJ1Y3QgcmFkZW9uX2ZsaXBfd29yayB7Cj4gICAJc3RydWN0IHdvcmtf c3RydWN0CQl1bnBpbl93b3JrOwo+ICAgCXN0cnVjdCByYWRlb25fZGV2aWNlCQkqcmRldjsKPiAg IAlpbnQJCQkJY3J0Y19pZDsKPiArCXVpbnQ2NF90CQkJYmFzZTsKPiAgIAlzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyCQkqZmI7Cj4gICAJc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZXZl bnQ7Cj4gICAJc3RydWN0IHJhZGVvbl9ibwkJKm9sZF9yYm87Cj4gQEAgLTE4ODQsNyArMTg4NSw2 IEBAIHN0cnVjdCByYWRlb25fYXNpYyB7Cj4gICAJLyogcGFnZWZsaXBwaW5nICovCj4gICAJc3Ry dWN0IHsKPiAgIAkJdm9pZCAoKnBhZ2VfZmxpcCkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYs IGludCBjcnRjLCB1NjQgY3J0Y19iYXNlKTsKPiAtCQlib29sICgqcGFnZV9mbGlwX3BlbmRpbmcp KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgY3J0Yyk7Cj4gICAJfSBwZmxpcDsKPiAg IH07Cj4gICAKPiBAQCAtMjc0Niw3ICsyNzQ2LDYgQEAgdm9pZCByYWRlb25fcmluZ193cml0ZShz dHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcsIHVpbnQzMl90IHYpOwo+ICAgI2RlZmluZSByYWRlb25f cG1faW5pdF9wcm9maWxlKHJkZXYpIChyZGV2KS0+YXNpYy0+cG0uaW5pdF9wcm9maWxlKChyZGV2 KSkKPiAgICNkZWZpbmUgcmFkZW9uX3BtX2dldF9keW5wbV9zdGF0ZShyZGV2KSAocmRldiktPmFz aWMtPnBtLmdldF9keW5wbV9zdGF0ZSgocmRldikpCj4gICAjZGVmaW5lIHJhZGVvbl9wYWdlX2Zs aXAocmRldiwgY3J0YywgYmFzZSkgKHJkZXYpLT5hc2ljLT5wZmxpcC5wYWdlX2ZsaXAoKHJkZXYp LCAoY3J0YyksIChiYXNlKSkKPiAtI2RlZmluZSByYWRlb25fcGFnZV9mbGlwX3BlbmRpbmcocmRl diwgY3J0YykgKHJkZXYpLT5hc2ljLT5wZmxpcC5wYWdlX2ZsaXBfcGVuZGluZygocmRldiksIChj cnRjKSkKPiAgICNkZWZpbmUgcmFkZW9uX3dhaXRfZm9yX3ZibGFuayhyZGV2LCBjcnRjKSAocmRl diktPmFzaWMtPmRpc3BsYXkud2FpdF9mb3JfdmJsYW5rKChyZGV2KSwgKGNydGMpKQo+ICAgI2Rl ZmluZSByYWRlb25fbWNfd2FpdF9mb3JfaWRsZShyZGV2KSAocmRldiktPmFzaWMtPm1jX3dhaXRf Zm9yX2lkbGUoKHJkZXYpKQo+ICAgI2RlZmluZSByYWRlb25fZ2V0X3hjbGsocmRldikgKHJkZXYp LT5hc2ljLT5nZXRfeGNsaygocmRldikpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX2FzaWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2FzaWMu Ywo+IGluZGV4IGJhZWUzY2QuLjY2MmMxODEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fYXNpYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fYXNpYy5jCj4gQEAgLTI1Miw3ICsyNTIsNiBAQCBzdGF0aWMgc3RydWN0IHJhZGVvbl9hc2lj IHIxMDBfYXNpYyA9IHsKPiAgIAl9LAo+ICAgCS5wZmxpcCA9IHsKPiAgIAkJLnBhZ2VfZmxpcCA9 ICZyMTAwX3BhZ2VfZmxpcCwKPiAtCQkucGFnZV9mbGlwX3BlbmRpbmcgPSAmcjEwMF9wYWdlX2Zs aXBfcGVuZGluZywKPiAgIAl9LAo+ICAgfTsKPiAgIAo+IEBAIC0zMTksNyArMzE4LDYgQEAgc3Rh dGljIHN0cnVjdCByYWRlb25fYXNpYyByMjAwX2FzaWMgPSB7Cj4gICAJfSwKPiAgIAkucGZsaXAg PSB7Cj4gICAJCS5wYWdlX2ZsaXAgPSAmcjEwMF9wYWdlX2ZsaXAsCj4gLQkJLnBhZ2VfZmxpcF9w ZW5kaW5nID0gJnIxMDBfcGFnZV9mbGlwX3BlbmRpbmcsCj4gICAJfSwKPiAgIH07Cj4gICAKPiBA QCAtNDAwLDcgKzM5OCw2IEBAIHN0YXRpYyBzdHJ1Y3QgcmFkZW9uX2FzaWMgcjMwMF9hc2ljID0g ewo+ICAgCX0sCj4gICAJLnBmbGlwID0gewo+ICAgCQkucGFnZV9mbGlwID0gJnIxMDBfcGFnZV9m bGlwLAo+IC0JCS5wYWdlX2ZsaXBfcGVuZGluZyA9ICZyMTAwX3BhZ2VfZmxpcF9wZW5kaW5nLAo+ ICAgCX0sCj4gICB9Owo+ICAgCj4gQEAgLTQ2Nyw3ICs0NjQsNiBAQCBzdGF0aWMgc3RydWN0IHJh ZGVvbl9hc2ljIHIzMDBfYXNpY19wY2llID0gewo+ICAgCX0sCj4gICAJLnBmbGlwID0gewo+ICAg CQkucGFnZV9mbGlwID0gJnIxMDBfcGFnZV9mbGlwLAo+IC0JCS5wYWdlX2ZsaXBfcGVuZGluZyA9 ICZyMTAwX3BhZ2VfZmxpcF9wZW5kaW5nLAo+ICAgCX0sCj4gICB9Owo+ICAgCj4gQEAgLTUzNCw3 ICs1MzAsNiBAQCBzdGF0aWMgc3RydWN0IHJhZGVvbl9hc2ljIHI0MjBfYXNpYyA9IHsKPiAgIAl9 LAo+ICAgCS5wZmxpcCA9IHsKPiAgIAkJLnBhZ2VfZmxpcCA9ICZyMTAwX3BhZ2VfZmxpcCwKPiAt CQkucGFnZV9mbGlwX3BlbmRpbmcgPSAmcjEwMF9wYWdlX2ZsaXBfcGVuZGluZywKPiAgIAl9LAo+ ICAgfTsKPiAgIAo+IEBAIC02MDEsNyArNTk2LDYgQEAgc3RhdGljIHN0cnVjdCByYWRlb25fYXNp YyByczQwMF9hc2ljID0gewo+ICAgCX0sCj4gICAJLnBmbGlwID0gewo+ICAgCQkucGFnZV9mbGlw ID0gJnIxMDBfcGFnZV9mbGlwLAo+IC0JCS5wYWdlX2ZsaXBfcGVuZGluZyA9ICZyMTAwX3BhZ2Vf ZmxpcF9wZW5kaW5nLAo+ICAgCX0sCj4gICB9Owo+ICAgCj4gQEAgLTY3MCw3ICs2NjQsNiBAQCBz dGF0aWMgc3RydWN0IHJhZGVvbl9hc2ljIHJzNjAwX2FzaWMgPSB7Cj4gICAJfSwKPiAgIAkucGZs aXAgPSB7Cj4gICAJCS5wYWdlX2ZsaXAgPSAmcnM2MDBfcGFnZV9mbGlwLAo+IC0JCS5wYWdlX2Zs aXBfcGVuZGluZyA9ICZyczYwMF9wYWdlX2ZsaXBfcGVuZGluZywKPiAgIAl9LAo+ICAgfTsKPiAg IAo+IEBAIC03MzksNyArNzMyLDYgQEAgc3RhdGljIHN0cnVjdCByYWRlb25fYXNpYyByczY5MF9h c2ljID0gewo+ICAgCX0sCj4gICAJLnBmbGlwID0gewo+ICAgCQkucGFnZV9mbGlwID0gJnJzNjAw X3BhZ2VfZmxpcCwKPiAtCQkucGFnZV9mbGlwX3BlbmRpbmcgPSAmcnM2MDBfcGFnZV9mbGlwX3Bl bmRpbmcsCj4gICAJfSwKPiAgIH07Cj4gICAKPiBAQCAtODA2LDcgKzc5OCw2IEBAIHN0YXRpYyBz dHJ1Y3QgcmFkZW9uX2FzaWMgcnY1MTVfYXNpYyA9IHsKPiAgIAl9LAo+ICAgCS5wZmxpcCA9IHsK PiAgIAkJLnBhZ2VfZmxpcCA9ICZyczYwMF9wYWdlX2ZsaXAsCj4gLQkJLnBhZ2VfZmxpcF9wZW5k aW5nID0gJnJzNjAwX3BhZ2VfZmxpcF9wZW5kaW5nLAo+ICAgCX0sCj4gICB9Owo+ICAgCj4gQEAg LTg3Myw3ICs4NjQsNiBAQCBzdGF0aWMgc3RydWN0IHJhZGVvbl9hc2ljIHI1MjBfYXNpYyA9IHsK PiAgIAl9LAo+ICAgCS5wZmxpcCA9IHsKPiAgIAkJLnBhZ2VfZmxpcCA9ICZyczYwMF9wYWdlX2Zs aXAsCj4gLQkJLnBhZ2VfZmxpcF9wZW5kaW5nID0gJnJzNjAwX3BhZ2VfZmxpcF9wZW5kaW5nLAo+ ICAgCX0sCj4gICB9Owo+ICAgCj4gQEAgLTk3Miw3ICs5NjIsNiBAQCBzdGF0aWMgc3RydWN0IHJh ZGVvbl9hc2ljIHI2MDBfYXNpYyA9IHsKPiAgIAl9LAo+ICAgCS5wZmxpcCA9IHsKPiAgIAkJLnBh Z2VfZmxpcCA9ICZyczYwMF9wYWdlX2ZsaXAsCj4gLQkJLnBhZ2VfZmxpcF9wZW5kaW5nID0gJnJz NjAwX3BhZ2VfZmxpcF9wZW5kaW5nLAo+ICAgCX0sCj4gICB9Owo+ICAgCj4gQEAgLTEwNjMsNyAr MTA1Miw2IEBAIHN0YXRpYyBzdHJ1Y3QgcmFkZW9uX2FzaWMgcnY2eHhfYXNpYyA9IHsKPiAgIAl9 LAo+ICAgCS5wZmxpcCA9IHsKPiAgIAkJLnBhZ2VfZmxpcCA9ICZyczYwMF9wYWdlX2ZsaXAsCj4g LQkJLnBhZ2VfZmxpcF9wZW5kaW5nID0gJnJzNjAwX3BhZ2VfZmxpcF9wZW5kaW5nLAo+ICAgCX0s Cj4gICB9Owo+ICAgCj4gQEAgLTExNTQsNyArMTE0Miw2IEBAIHN0YXRpYyBzdHJ1Y3QgcmFkZW9u X2FzaWMgcnM3ODBfYXNpYyA9IHsKPiAgIAl9LAo+ICAgCS5wZmxpcCA9IHsKPiAgIAkJLnBhZ2Vf ZmxpcCA9ICZyczYwMF9wYWdlX2ZsaXAsCj4gLQkJLnBhZ2VfZmxpcF9wZW5kaW5nID0gJnJzNjAw X3BhZ2VfZmxpcF9wZW5kaW5nLAo+ICAgCX0sCj4gICB9Owo+ICAgCj4gQEAgLTEyNjAsNyArMTI0 Nyw2IEBAIHN0YXRpYyBzdHJ1Y3QgcmFkZW9uX2FzaWMgcnY3NzBfYXNpYyA9IHsKPiAgIAl9LAo+ ICAgCS5wZmxpcCA9IHsKPiAgIAkJLnBhZ2VfZmxpcCA9ICZydjc3MF9wYWdlX2ZsaXAsCj4gLQkJ LnBhZ2VfZmxpcF9wZW5kaW5nID0gJnJ2NzcwX3BhZ2VfZmxpcF9wZW5kaW5nLAo+ICAgCX0sCj4g ICB9Owo+ICAgCj4gQEAgLTEzNzksNyArMTM2NSw2IEBAIHN0YXRpYyBzdHJ1Y3QgcmFkZW9uX2Fz aWMgZXZlcmdyZWVuX2FzaWMgPSB7Cj4gICAJfSwKPiAgIAkucGZsaXAgPSB7Cj4gICAJCS5wYWdl X2ZsaXAgPSAmZXZlcmdyZWVuX3BhZ2VfZmxpcCwKPiAtCQkucGFnZV9mbGlwX3BlbmRpbmcgPSAm ZXZlcmdyZWVuX3BhZ2VfZmxpcF9wZW5kaW5nLAo+ICAgCX0sCj4gICB9Owo+ICAgCj4gQEAgLTE0 NzEsNyArMTQ1Niw2IEBAIHN0YXRpYyBzdHJ1Y3QgcmFkZW9uX2FzaWMgc3Vtb19hc2ljID0gewo+ ICAgCX0sCj4gICAJLnBmbGlwID0gewo+ICAgCQkucGFnZV9mbGlwID0gJmV2ZXJncmVlbl9wYWdl X2ZsaXAsCj4gLQkJLnBhZ2VfZmxpcF9wZW5kaW5nID0gJmV2ZXJncmVlbl9wYWdlX2ZsaXBfcGVu ZGluZywKPiAgIAl9LAo+ICAgfTsKPiAgIAo+IEBAIC0xNTY0LDcgKzE1NDgsNiBAQCBzdGF0aWMg c3RydWN0IHJhZGVvbl9hc2ljIGJ0Y19hc2ljID0gewo+ICAgCX0sCj4gICAJLnBmbGlwID0gewo+ ICAgCQkucGFnZV9mbGlwID0gJmV2ZXJncmVlbl9wYWdlX2ZsaXAsCj4gLQkJLnBhZ2VfZmxpcF9w ZW5kaW5nID0gJmV2ZXJncmVlbl9wYWdlX2ZsaXBfcGVuZGluZywKPiAgIAl9LAo+ICAgfTsKPiAg IAo+IEBAIC0xNzA4LDcgKzE2OTEsNiBAQCBzdGF0aWMgc3RydWN0IHJhZGVvbl9hc2ljIGNheW1h bl9hc2ljID0gewo+ICAgCX0sCj4gICAJLnBmbGlwID0gewo+ICAgCQkucGFnZV9mbGlwID0gJmV2 ZXJncmVlbl9wYWdlX2ZsaXAsCj4gLQkJLnBhZ2VfZmxpcF9wZW5kaW5nID0gJmV2ZXJncmVlbl9w YWdlX2ZsaXBfcGVuZGluZywKPiAgIAl9LAo+ICAgfTsKPiAgIAo+IEBAIC0xODA5LDcgKzE3OTEs NiBAQCBzdGF0aWMgc3RydWN0IHJhZGVvbl9hc2ljIHRyaW5pdHlfYXNpYyA9IHsKPiAgIAl9LAo+ ICAgCS5wZmxpcCA9IHsKPiAgIAkJLnBhZ2VfZmxpcCA9ICZldmVyZ3JlZW5fcGFnZV9mbGlwLAo+ IC0JCS5wYWdlX2ZsaXBfcGVuZGluZyA9ICZldmVyZ3JlZW5fcGFnZV9mbGlwX3BlbmRpbmcsCj4g ICAJfSwKPiAgIH07Cj4gICAKPiBAQCAtMTk0MCw3ICsxOTIxLDYgQEAgc3RhdGljIHN0cnVjdCBy YWRlb25fYXNpYyBzaV9hc2ljID0gewo+ICAgCX0sCj4gICAJLnBmbGlwID0gewo+ICAgCQkucGFn ZV9mbGlwID0gJmV2ZXJncmVlbl9wYWdlX2ZsaXAsCj4gLQkJLnBhZ2VfZmxpcF9wZW5kaW5nID0g JmV2ZXJncmVlbl9wYWdlX2ZsaXBfcGVuZGluZywKPiAgIAl9LAo+ICAgfTsKPiAgIAo+IEBAIC0y MTAzLDcgKzIwODMsNiBAQCBzdGF0aWMgc3RydWN0IHJhZGVvbl9hc2ljIGNpX2FzaWMgPSB7Cj4g ICAJfSwKPiAgIAkucGZsaXAgPSB7Cj4gICAJCS5wYWdlX2ZsaXAgPSAmZXZlcmdyZWVuX3BhZ2Vf ZmxpcCwKPiAtCQkucGFnZV9mbGlwX3BlbmRpbmcgPSAmZXZlcmdyZWVuX3BhZ2VfZmxpcF9wZW5k aW5nLAo+ICAgCX0sCj4gICB9Owo+ICAgCj4gQEAgLTIyMDgsNyArMjE4Nyw2IEBAIHN0YXRpYyBz dHJ1Y3QgcmFkZW9uX2FzaWMga3ZfYXNpYyA9IHsKPiAgIAl9LAo+ICAgCS5wZmxpcCA9IHsKPiAg IAkJLnBhZ2VfZmxpcCA9ICZldmVyZ3JlZW5fcGFnZV9mbGlwLAo+IC0JCS5wYWdlX2ZsaXBfcGVu ZGluZyA9ICZldmVyZ3JlZW5fcGFnZV9mbGlwX3BlbmRpbmcsCj4gICAJfSwKPiAgIH07Cj4gICAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXNpYy5oIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXNpYy5oCj4gaW5kZXggZjA1MjcwZS4uYjQ5YmZj ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hc2ljLmgKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hc2ljLmgKPiBAQCAtMTM4LDcgKzEz OCw2IEBAIGV4dGVybiB2b2lkIHIxMDBfcG1faW5pdF9wcm9maWxlKHN0cnVjdCByYWRlb25fZGV2 aWNlICpyZGV2KTsKPiAgIGV4dGVybiB2b2lkIHIxMDBfcG1fZ2V0X2R5bnBtX3N0YXRlKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2KTsKPiAgIGV4dGVybiB2b2lkIHIxMDBfcGFnZV9mbGlwKHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgY3J0YywKPiAgIAkJCSAgIHU2NCBjcnRjX2Jh c2UpOwo+IC1leHRlcm4gYm9vbCByMTAwX3BhZ2VfZmxpcF9wZW5kaW5nKHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LCBpbnQgY3J0Yyk7Cj4gICBleHRlcm4gdm9pZCByMTAwX3dhaXRfZm9yX3Zi bGFuayhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IGNydGMpOwo+ICAgZXh0ZXJuIGlu dCByMTAwX21jX3dhaXRfZm9yX2lkbGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwo+ICAg Cj4gQEAgLTI0Nyw3ICsyNDYsNiBAQCBleHRlcm4gdm9pZCByczYwMF9wbV9wcmVwYXJlKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2KTsKPiAgIGV4dGVybiB2b2lkIHJzNjAwX3BtX2ZpbmlzaChz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7Cj4gICBleHRlcm4gdm9pZCByczYwMF9wYWdlX2Zs aXAoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGludCBjcnRjLAo+ICAgCQkJICAgIHU2NCBj cnRjX2Jhc2UpOwo+IC1leHRlcm4gYm9vbCByczYwMF9wYWdlX2ZsaXBfcGVuZGluZyhzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldiwgaW50IGNydGMpOwo+ICAgdm9pZCByczYwMF9zZXRfc2FmZV9y ZWdpc3RlcnMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwo+ICAgZXh0ZXJuIHZvaWQgYXZp dm9fd2FpdF9mb3JfdmJsYW5rKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgY3J0Yyk7 Cj4gICBleHRlcm4gaW50IHJzNjAwX21jX3dhaXRfZm9yX2lkbGUoc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYpOwo+IEBAIC00NTIsNyArNDUwLDYgQEAgaW50IHJ2NzcwX3N1c3BlbmQoc3RydWN0 IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwo+ICAgaW50IHJ2NzcwX3Jlc3VtZShzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldik7Cj4gICB2b2lkIHJ2NzcwX3BtX21pc2Moc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYpOwo+ICAgdm9pZCBydjc3MF9wYWdlX2ZsaXAoc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYsIGludCBjcnRjLCB1NjQgY3J0Y19iYXNlKTsKPiAtYm9vbCBydjc3MF9wYWdlX2ZsaXBf cGVuZGluZyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IGNydGMpOwo+ICAgdm9pZCBy NzAwX3ZyYW1fZ3R0X2xvY2F0aW9uKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3Qg cmFkZW9uX21jICptYyk7Cj4gICB2b2lkIHI3MDBfY3Bfc3RvcChzdHJ1Y3QgcmFkZW9uX2Rldmlj ZSAqcmRldik7Cj4gICB2b2lkIHI3MDBfY3BfZmluaShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl dik7Cj4gQEAgLTUyMCw3ICs1MTcsNiBAQCBpbnQgc3Vtb19zZXRfdXZkX2Nsb2NrcyhzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldiwgdTMyIHZjbGssIHUzMiBkY2xrKTsKPiAgIGludCBldmVyZ3Jl ZW5fc2V0X3V2ZF9jbG9ja3Moc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHUzMiB2Y2xrLCB1 MzIgZGNsayk7Cj4gICBleHRlcm4gdm9pZCBldmVyZ3JlZW5fcGFnZV9mbGlwKHN0cnVjdCByYWRl b25fZGV2aWNlICpyZGV2LCBpbnQgY3J0YywKPiAgIAkJCQl1NjQgY3J0Y19iYXNlKTsKPiAtZXh0 ZXJuIGJvb2wgZXZlcmdyZWVuX3BhZ2VfZmxpcF9wZW5kaW5nKHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2LCBpbnQgY3J0Yyk7Cj4gICBleHRlcm4gdm9pZCBkY2U0X3dhaXRfZm9yX3ZibGFuayhz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IGNydGMpOwo+ICAgdm9pZCBldmVyZ3JlZW5f ZGlzYWJsZV9pbnRlcnJ1cHRfc3RhdGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwo+ICAg aW50IGV2ZXJncmVlbl9tY193YWl0X2Zvcl9pZGxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5j IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jCj4gaW5kZXggNjU4ODJj ZC4uMTAzZDBjNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9k aXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kaXNwbGF5LmMK PiBAQCAtMjgxLDUwICsyODEsNiBAQCBzdGF0aWMgdm9pZCByYWRlb25fdW5waW5fd29ya19mdW5j KHN0cnVjdCB3b3JrX3N0cnVjdCAqX193b3JrKQo+ICAgCWtmcmVlKHdvcmspOwo+ICAgfQo+ICAg Cj4gLXZvaWQgcmFkZW9uX2NydGNfaGFuZGxlX3ZibGFuayhzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldiwgaW50IGNydGNfaWQpCj4gLXsKPiAtCXN0cnVjdCByYWRlb25fY3J0YyAqcmFkZW9uX2Ny dGMgPSByZGV2LT5tb2RlX2luZm8uY3J0Y3NbY3J0Y19pZF07Cj4gLQl1bnNpZ25lZCBsb25nIGZs YWdzOwo+IC0JdTMyIHVwZGF0ZV9wZW5kaW5nOwo+IC0JaW50IHZwb3MsIGhwb3M7Cj4gLQo+IC0J LyogY2FuIGhhcHBlbiBkdXJpbmcgaW5pdGlhbGl6YXRpb24gKi8KPiAtCWlmIChyYWRlb25fY3J0 YyA9PSBOVUxMKQo+IC0JCXJldHVybjsKPiAtCj4gLQlzcGluX2xvY2tfaXJxc2F2ZSgmcmRldi0+ ZGRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwo+IC0JaWYgKHJhZGVvbl9jcnRjLT5mbGlwX3N0YXR1 cyAhPSBSQURFT05fRkxJUF9TVUJNSVRURUQpIHsKPiAtCQlEUk1fREVCVUdfRFJJVkVSKCJyYWRl b25fY3J0Yy0+ZmxpcF9zdGF0dXMgPSAlZCAhPSAiCj4gLQkJCQkgIlJBREVPTl9GTElQX1NVQk1J VFRFRCglZClcbiIsCj4gLQkJCQkgcmFkZW9uX2NydGMtPmZsaXBfc3RhdHVzLAo+IC0JCQkJIFJB REVPTl9GTElQX1NVQk1JVFRFRCk7Cj4gLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcmRldi0+ ZGRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwo+IC0JCXJldHVybjsKPiAtCX0KPiAtCj4gLQl1cGRh dGVfcGVuZGluZyA9IHJhZGVvbl9wYWdlX2ZsaXBfcGVuZGluZyhyZGV2LCBjcnRjX2lkKTsKPiAt Cj4gLQkvKiBIYXMgdGhlIHBhZ2VmbGlwIGFscmVhZHkgY29tcGxldGVkIGluIGNydGMsIG9yIGlz IGl0IGNlcnRhaW4KPiAtCSAqIHRvIGNvbXBsZXRlIGluIHRoaXMgdmJsYW5rPwo+IC0JICovCj4g LQlpZiAodXBkYXRlX3BlbmRpbmcgJiYKPiAtCSAgICAoRFJNX1NDQU5PVVRQT1NfVkFMSUQgJiBy YWRlb25fZ2V0X2NydGNfc2Nhbm91dHBvcyhyZGV2LT5kZGV2LCBjcnRjX2lkLCAwLAo+IC0JCQkJ CQkJICAgICAgICZ2cG9zLCAmaHBvcywgTlVMTCwgTlVMTCkpICYmCj4gLQkgICAgKCh2cG9zID49 ICg5OSAqIHJkZXYtPm1vZGVfaW5mby5jcnRjc1tjcnRjX2lkXS0+YmFzZS5od21vZGUuY3J0Y192 ZGlzcGxheSkvMTAwKSB8fAo+IC0JICAgICAodnBvcyA8IDAgJiYgIUFTSUNfSVNfQVZJVk8ocmRl dikpKSkgewo+IC0JCS8qIGNydGMgZGlkbid0IGZsaXAgaW4gdGhpcyB0YXJnZXQgdmJsYW5rIGlu dGVydmFsLAo+IC0JCSAqIGJ1dCBmbGlwIGlzIHBlbmRpbmcgaW4gY3J0Yy4gQmFzZWQgb24gdGhl IGN1cnJlbnQKPiAtCQkgKiBzY2Fub3V0IHBvc2l0aW9uIHdlIGtub3cgdGhhdCB0aGUgY3VycmVu dCBmcmFtZSBpcwo+IC0JCSAqIChuZWFybHkpIGNvbXBsZXRlIGFuZCB0aGUgZmxpcCB3aWxsIChs aWtlbHkpCj4gLQkJICogY29tcGxldGUgYmVmb3JlIHRoZSBzdGFydCBvZiB0aGUgbmV4dCBmcmFt ZS4KPiAtCQkgKi8KPiAtCQl1cGRhdGVfcGVuZGluZyA9IDA7Cj4gLQl9Cj4gLQlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZyZGV2LT5kZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7Cj4gLQlpZiAoIXVw ZGF0ZV9wZW5kaW5nKQo+IC0JCXJhZGVvbl9jcnRjX2hhbmRsZV9mbGlwKHJkZXYsIGNydGNfaWQp Owo+IC19Cj4gLQo+ICAgLyoqCj4gICAgKiByYWRlb25fY3J0Y19oYW5kbGVfZmxpcCAtIHBhZ2Ug ZmxpcCBjb21wbGV0ZWQKPiAgICAqCj4gQEAgLTM0NSwxNSArMzAxLDE4IEBAIHZvaWQgcmFkZW9u X2NydGNfaGFuZGxlX2ZsaXAoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGludCBjcnRjX2lk KQo+ICAgCj4gICAJc3Bpbl9sb2NrX2lycXNhdmUoJnJkZXYtPmRkZXYtPmV2ZW50X2xvY2ssIGZs YWdzKTsKPiAgIAl3b3JrID0gcmFkZW9uX2NydGMtPmZsaXBfd29yazsKPiAtCWlmIChyYWRlb25f Y3J0Yy0+ZmxpcF9zdGF0dXMgIT0gUkFERU9OX0ZMSVBfU1VCTUlUVEVEKSB7Cj4gKwlpZiAocmFk ZW9uX2NydGMtPmZsaXBfc3RhdHVzICE9IFJBREVPTl9GTElQX1JFQURZKSB7Cj4gICAJCURSTV9E RUJVR19EUklWRVIoInJhZGVvbl9jcnRjLT5mbGlwX3N0YXR1cyA9ICVkICE9ICIKPiAtCQkJCSAi UkFERU9OX0ZMSVBfU1VCTUlUVEVEKCVkKVxuIiwKPiArCQkJCSAiUkFERU9OX0ZMSVBfUkVBRFko JWQpXG4iLAo+ICAgCQkJCSByYWRlb25fY3J0Yy0+ZmxpcF9zdGF0dXMsCj4gLQkJCQkgUkFERU9O X0ZMSVBfU1VCTUlUVEVEKTsKPiArCQkJCSBSQURFT05fRkxJUF9SRUFEWSk7Cj4gICAJCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJnJkZXYtPmRkZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKPiAgIAkJ cmV0dXJuOwo+ICAgCX0KPiAgIAo+ICsJLyogZG8gdGhlIGZsaXAgKG1taW8pICovCj4gKwlyYWRl b25fcGFnZV9mbGlwKHJkZXYsIHJhZGVvbl9jcnRjLT5jcnRjX2lkLCB3b3JrLT5iYXNlKTsKPiAr Cj4gICAJLyogUGFnZWZsaXAgY29tcGxldGVkLiBDbGVhbiB1cC4gKi8KPiAgIAlyYWRlb25fY3J0 Yy0+ZmxpcF9zdGF0dXMgPSBSQURFT05fRkxJUF9OT05FOwo+ICAgCXJhZGVvbl9jcnRjLT5mbGlw X3dvcmsgPSBOVUxMOwo+IEBAIC00NzksMTAgKzQzOCw4IEBAIHN0YXRpYyB2b2lkIHJhZGVvbl9m bGlwX3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKl9fd29yaykKPiAgIAkvKiBzZXQgdGhl IHByb3BlciBpbnRlcnJ1cHQgKi8KPiAgIAlyYWRlb25faXJxX2ttc19wZmxpcF9pcnFfZ2V0KHJk ZXYsIHJhZGVvbl9jcnRjLT5jcnRjX2lkKTsKPiAgIAo+IC0JLyogZG8gdGhlIGZsaXAgKG1taW8p ICovCj4gLQlyYWRlb25fcGFnZV9mbGlwKHJkZXYsIHJhZGVvbl9jcnRjLT5jcnRjX2lkLCBiYXNl KTsKPiAtCj4gLQlyYWRlb25fY3J0Yy0+ZmxpcF9zdGF0dXMgPSBSQURFT05fRkxJUF9TVUJNSVRU RUQ7Cj4gKwl3b3JrLT5iYXNlID0gYmFzZTsKPiArCXJhZGVvbl9jcnRjLT5mbGlwX3N0YXR1cyA9 IFJBREVPTl9GTElQX1JFQURZOwo+ICAgCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNydGMtPmRl di0+ZXZlbnRfbG9jaywgZmxhZ3MpOwo+ICAgCXVwX3JlYWQoJnJkZXYtPmV4Y2x1c2l2ZV9sb2Nr KTsKPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9tb2Rl LmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9tb2RlLmgKPiBpbmRleCBlZDZiNmUw Li4wMDk1NWUzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21v ZGUuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21vZGUuaAo+IEBAIC0z MDQsNyArMzA0LDcgQEAgc3RydWN0IHJhZGVvbl9hdG9tX3NzIHsKPiAgIGVudW0gcmFkZW9uX2Zs aXBfc3RhdHVzIHsKPiAgIAlSQURFT05fRkxJUF9OT05FLAo+ICAgCVJBREVPTl9GTElQX1BFTkRJ TkcsCj4gLQlSQURFT05fRkxJUF9TVUJNSVRURUQKPiArCVJBREVPTl9GTElQX1JFQURZCj4gICB9 Owo+ICAgCj4gICBzdHJ1Y3QgcmFkZW9uX2NydGMgewo+IEBAIC05MTMsNyArOTEzLDYgQEAgYm9v bCByYWRlb25fZmJkZXZfcm9ial9pc19mYihzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3Ry dWN0IHJhZGVvbl9ibyAqcm9iaikKPiAgIAo+ICAgdm9pZCByYWRlb25fZmJfb3V0cHV0X3BvbGxf Y2hhbmdlZChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7Cj4gICAKPiAtdm9pZCByYWRlb25f Y3J0Y19oYW5kbGVfdmJsYW5rKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgY3J0Y19p ZCk7Cj4gICB2b2lkIHJhZGVvbl9jcnRjX2hhbmRsZV9mbGlwKHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2LCBpbnQgY3J0Y19pZCk7Cj4gICAKPiAgIGludCByYWRlb25fYWxpZ25fcGl0Y2goc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGludCB3aWR0aCwgaW50IGJwcCwgYm9vbCB0aWxlZCk7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnM2MDAuYyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcnM2MDAuYwo+IGluZGV4IDgxOGY0ZWIuLmI1ZTYzYTcgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yczYwMC5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yczYwMC5jCj4gQEAgLTExMyw3ICsxMTMsMTAgQEAgdm9pZCByczYwMF9wYWdl X2ZsaXAoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGludCBjcnRjX2lkLCB1NjQgY3J0Y19i YXNlKQo+ICAgewo+ICAgCXN0cnVjdCByYWRlb25fY3J0YyAqcmFkZW9uX2NydGMgPSByZGV2LT5t b2RlX2luZm8uY3J0Y3NbY3J0Y19pZF07Cj4gICAJdTMyIHRtcCA9IFJSRUczMihBVklWT19EMUdS UEhfVVBEQVRFICsgcmFkZW9uX2NydGMtPmNydGNfb2Zmc2V0KTsKPiAtCWludCBpOwo+ICsKPiAr CS8qIFRha2Ugc3VyZmFjZSB1cGRhdGVzIGF0IGhvcml6b250YWwgYmxhbmsgKi8KPiArCVdSRUcz MihBVklWT19EMUdSUEhfRkxJUF9DT05UUk9MICsgcmFkZW9uX2NydGMtPmNydGNfb2Zmc2V0LAo+ ICsJICAgICAgIEFWSVZPX0QxR1JQSF9TVVJGQUNFX1VQREFURV9IX1JFVFJBQ0VfRU4pOwo+ICAg Cj4gICAJLyogTG9jayB0aGUgZ3JhcGhpY3MgdXBkYXRlIGxvY2sgKi8KPiAgIAl0bXAgfD0gQVZJ Vk9fRDFHUlBIX1VQREFURV9MT0NLOwo+IEBAIC0xMjUsMjggKzEyOCwxMSBAQCB2b2lkIHJzNjAw X3BhZ2VfZmxpcChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IGNydGNfaWQsIHU2NCBj cnRjX2Jhc2UpCj4gICAJV1JFRzMyKEFWSVZPX0QxR1JQSF9QUklNQVJZX1NVUkZBQ0VfQUREUkVT UyArIHJhZGVvbl9jcnRjLT5jcnRjX29mZnNldCwKPiAgIAkgICAgICAgKHUzMiljcnRjX2Jhc2Up Owo+ICAgCj4gLQkvKiBXYWl0IGZvciB1cGRhdGVfcGVuZGluZyB0byBnbyBoaWdoLiAqLwo+IC0J Zm9yIChpID0gMDsgaSA8IHJkZXYtPnVzZWNfdGltZW91dDsgaSsrKSB7Cj4gLQkJaWYgKFJSRUcz MihBVklWT19EMUdSUEhfVVBEQVRFICsgcmFkZW9uX2NydGMtPmNydGNfb2Zmc2V0KSAmIEFWSVZP X0QxR1JQSF9TVVJGQUNFX1VQREFURV9QRU5ESU5HKQo+IC0JCQlicmVhazsKPiAtCQl1ZGVsYXko MSk7Cj4gLQl9Cj4gLQlEUk1fREVCVUcoIlVwZGF0ZSBwZW5kaW5nIG5vdyBoaWdoLiBVbmxvY2tp bmcgdnVwZGF0ZV9sb2NrLlxuIik7Cj4gLQo+IC0JLyogVW5sb2NrIHRoZSBsb2NrLCBzbyBkb3Vi bGUtYnVmZmVyaW5nIGNhbiB0YWtlIHBsYWNlIGluc2lkZSB2YmxhbmsgKi8KPiArCS8qIFVubG9j ayB0aGUgbG9jaywgc28gZG91YmxlLWJ1ZmZlcmluZyBjYW4gdGFrZSBwbGFjZSBpbnNpZGUgaGJs YW5rICovCj4gICAJdG1wICY9IH5BVklWT19EMUdSUEhfVVBEQVRFX0xPQ0s7Cj4gICAJV1JFRzMy KEFWSVZPX0QxR1JQSF9VUERBVEUgKyByYWRlb25fY3J0Yy0+Y3J0Y19vZmZzZXQsIHRtcCk7Cj4g ICB9Cj4gICAKPiAtYm9vbCByczYwMF9wYWdlX2ZsaXBfcGVuZGluZyhzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldiwgaW50IGNydGNfaWQpCj4gLXsKPiAtCXN0cnVjdCByYWRlb25fY3J0YyAqcmFk ZW9uX2NydGMgPSByZGV2LT5tb2RlX2luZm8uY3J0Y3NbY3J0Y19pZF07Cj4gLQo+IC0JLyogUmV0 dXJuIGN1cnJlbnQgdXBkYXRlX3BlbmRpbmcgc3RhdHVzOiAqLwo+IC0JcmV0dXJuICEhKFJSRUcz MihBVklWT19EMUdSUEhfVVBEQVRFICsgcmFkZW9uX2NydGMtPmNydGNfb2Zmc2V0KSAmCj4gLQkJ QVZJVk9fRDFHUlBIX1NVUkZBQ0VfVVBEQVRFX1BFTkRJTkcpOwo+IC19Cj4gLQo+ICAgdm9pZCBh dml2b19wcm9ncmFtX2ZtdChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gICB7Cj4gICAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKPiBAQCAtNzkwLDcgKzc3Niw3 IEBAIGludCByczYwMF9pcnFfcHJvY2VzcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKPiAg IAkJCQl3YWtlX3VwKCZyZGV2LT5pcnEudmJsYW5rX3F1ZXVlKTsKPiAgIAkJCX0KPiAgIAkJCWlm IChhdG9taWNfcmVhZCgmcmRldi0+aXJxLnBmbGlwWzBdKSkKPiAtCQkJCXJhZGVvbl9jcnRjX2hh bmRsZV92YmxhbmsocmRldiwgMCk7Cj4gKwkJCQlyYWRlb25fY3J0Y19oYW5kbGVfZmxpcChyZGV2 LCAwKTsKPiAgIAkJfQo+ICAgCQlpZiAoR18wMDdFRENfTEJfRDJfVkJMQU5LX0lOVEVSUlVQVChy ZGV2LT5pcnEuc3RhdF9yZWdzLnI1MDAuZGlzcF9pbnQpKSB7Cj4gICAJCQlpZiAocmRldi0+aXJx LmNydGNfdmJsYW5rX2ludFsxXSkgewo+IEBAIC03OTksNyArNzg1LDcgQEAgaW50IHJzNjAwX2ly cV9wcm9jZXNzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAgCQkJCXdha2VfdXAoJnJk ZXYtPmlycS52YmxhbmtfcXVldWUpOwo+ICAgCQkJfQo+ICAgCQkJaWYgKGF0b21pY19yZWFkKCZy ZGV2LT5pcnEucGZsaXBbMV0pKQo+IC0JCQkJcmFkZW9uX2NydGNfaGFuZGxlX3ZibGFuayhyZGV2 LCAxKTsKPiArCQkJCXJhZGVvbl9jcnRjX2hhbmRsZV9mbGlwKHJkZXYsIDEpOwo+ICAgCQl9Cj4g ICAJCWlmIChHXzAwN0VEQ19EQ19IT1RfUExVR19ERVRFQ1QxX0lOVEVSUlVQVChyZGV2LT5pcnEu c3RhdF9yZWdzLnI1MDAuZGlzcF9pbnQpKSB7Cj4gICAJCQlxdWV1ZV9ob3RwbHVnID0gdHJ1ZTsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ydjc3MC5jIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9ydjc3MC5jCj4gaW5kZXggOTdiNzc2Ni4uZWY2NmJlNCAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3J2NzcwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3J2NzcwLmMKPiBAQCAtODA1LDcgKzgwNSwxMCBAQCB2b2lkIHJ2NzcwX3BhZ2Vf ZmxpcChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgaW50IGNydGNfaWQsIHU2NCBjcnRjX2Jh c2UpCj4gICB7Cj4gICAJc3RydWN0IHJhZGVvbl9jcnRjICpyYWRlb25fY3J0YyA9IHJkZXYtPm1v ZGVfaW5mby5jcnRjc1tjcnRjX2lkXTsKPiAgIAl1MzIgdG1wID0gUlJFRzMyKEFWSVZPX0QxR1JQ SF9VUERBVEUgKyByYWRlb25fY3J0Yy0+Y3J0Y19vZmZzZXQpOwo+IC0JaW50IGk7Cj4gKwo+ICsJ LyogVGFrZSBzdXJmYWNlIHVwZGF0ZXMgYXQgaG9yaXpvbnRhbCBibGFuayAqLwo+ICsJV1JFRzMy KEFWSVZPX0QxR1JQSF9GTElQX0NPTlRST0wgKyByYWRlb25fY3J0Yy0+Y3J0Y19vZmZzZXQsCj4g KwkgICAgICAgQVZJVk9fRDFHUlBIX1NVUkZBQ0VfVVBEQVRFX0hfUkVUUkFDRV9FTik7Cj4gICAK PiAgIAkvKiBMb2NrIHRoZSBncmFwaGljcyB1cGRhdGUgbG9jayAqLwo+ICAgCXRtcCB8PSBBVklW T19EMUdSUEhfVVBEQVRFX0xPQ0s7Cj4gQEAgLTgyNCwyOCArODI3LDExIEBAIHZvaWQgcnY3NzBf cGFnZV9mbGlwKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgY3J0Y19pZCwgdTY0IGNy dGNfYmFzZSkKPiAgIAlXUkVHMzIoRDFHUlBIX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTICsgcmFk ZW9uX2NydGMtPmNydGNfb2Zmc2V0LAo+ICAgCSAgICAgICAodTMyKWNydGNfYmFzZSk7Cj4gICAK PiAtCS8qIFdhaXQgZm9yIHVwZGF0ZV9wZW5kaW5nIHRvIGdvIGhpZ2guICovCj4gLQlmb3IgKGkg PSAwOyBpIDwgcmRldi0+dXNlY190aW1lb3V0OyBpKyspIHsKPiAtCQlpZiAoUlJFRzMyKEFWSVZP X0QxR1JQSF9VUERBVEUgKyByYWRlb25fY3J0Yy0+Y3J0Y19vZmZzZXQpICYgQVZJVk9fRDFHUlBI X1NVUkZBQ0VfVVBEQVRFX1BFTkRJTkcpCj4gLQkJCWJyZWFrOwo+IC0JCXVkZWxheSgxKTsKPiAt CX0KPiAtCURSTV9ERUJVRygiVXBkYXRlIHBlbmRpbmcgbm93IGhpZ2guIFVubG9ja2luZyB2dXBk YXRlX2xvY2suXG4iKTsKPiAtCj4gLQkvKiBVbmxvY2sgdGhlIGxvY2ssIHNvIGRvdWJsZS1idWZm ZXJpbmcgY2FuIHRha2UgcGxhY2UgaW5zaWRlIHZibGFuayAqLwo+ICsJLyogVW5sb2NrIHRoZSBs b2NrLCBzbyBkb3VibGUtYnVmZmVyaW5nIGNhbiB0YWtlIHBsYWNlIGluc2lkZSBoYmxhbmsgKi8K PiAgIAl0bXAgJj0gfkFWSVZPX0QxR1JQSF9VUERBVEVfTE9DSzsKPiAgIAlXUkVHMzIoQVZJVk9f RDFHUlBIX1VQREFURSArIHJhZGVvbl9jcnRjLT5jcnRjX29mZnNldCwgdG1wKTsKPiAgIH0KPiAg IAo+IC1ib29sIHJ2NzcwX3BhZ2VfZmxpcF9wZW5kaW5nKHN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2LCBpbnQgY3J0Y19pZCkKPiAtewo+IC0Jc3RydWN0IHJhZGVvbl9jcnRjICpyYWRlb25fY3J0 YyA9IHJkZXYtPm1vZGVfaW5mby5jcnRjc1tjcnRjX2lkXTsKPiAtCj4gLQkvKiBSZXR1cm4gY3Vy cmVudCB1cGRhdGVfcGVuZGluZyBzdGF0dXM6ICovCj4gLQlyZXR1cm4gISEoUlJFRzMyKEFWSVZP X0QxR1JQSF9VUERBVEUgKyByYWRlb25fY3J0Yy0+Y3J0Y19vZmZzZXQpICYKPiAtCQlBVklWT19E MUdSUEhfU1VSRkFDRV9VUERBVEVfUEVORElORyk7Cj4gLX0KPiAtCj4gICAvKiBnZXQgdGVtcGVy YXR1cmUgaW4gbWlsbGlkZWdyZWVzICovCj4gICBpbnQgcnY3NzBfZ2V0X3RlbXAoc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYpCj4gICB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vc2kuYwo+IGluZGV4IGMxMjhiZGUu LmZlZTc5N2YgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaS5jCj4gQEAgLTU5MTcsMjUgKzU5MTcsNiBAQCBp bnQgc2lfaXJxX3NldChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKPiAgIAkJV1JFRzMyKElO VF9NQVNLICsgRVZFUkdSRUVOX0NSVEM1X1JFR0lTVEVSX09GRlNFVCwgY3J0YzYpOwo+ICAgCX0K PiAgIAo+IC0JaWYgKHJkZXYtPm51bV9jcnRjID49IDIpIHsKPiAtCQlXUkVHMzIoR1JQSF9JTlRf Q09OVFJPTCArIEVWRVJHUkVFTl9DUlRDMF9SRUdJU1RFUl9PRkZTRVQsCj4gLQkJICAgICAgIEdS UEhfUEZMSVBfSU5UX01BU0spOwo+IC0JCVdSRUczMihHUlBIX0lOVF9DT05UUk9MICsgRVZFUkdS RUVOX0NSVEMxX1JFR0lTVEVSX09GRlNFVCwKPiAtCQkgICAgICAgR1JQSF9QRkxJUF9JTlRfTUFT Syk7Cj4gLQl9Cj4gLQlpZiAocmRldi0+bnVtX2NydGMgPj0gNCkgewo+IC0JCVdSRUczMihHUlBI X0lOVF9DT05UUk9MICsgRVZFUkdSRUVOX0NSVEMyX1JFR0lTVEVSX09GRlNFVCwKPiAtCQkgICAg ICAgR1JQSF9QRkxJUF9JTlRfTUFTSyk7Cj4gLQkJV1JFRzMyKEdSUEhfSU5UX0NPTlRST0wgKyBF VkVSR1JFRU5fQ1JUQzNfUkVHSVNURVJfT0ZGU0VULAo+IC0JCSAgICAgICBHUlBIX1BGTElQX0lO VF9NQVNLKTsKPiAtCX0KPiAtCWlmIChyZGV2LT5udW1fY3J0YyA+PSA2KSB7Cj4gLQkJV1JFRzMy KEdSUEhfSU5UX0NPTlRST0wgKyBFVkVSR1JFRU5fQ1JUQzRfUkVHSVNURVJfT0ZGU0VULAo+IC0J CSAgICAgICBHUlBIX1BGTElQX0lOVF9NQVNLKTsKPiAtCQlXUkVHMzIoR1JQSF9JTlRfQ09OVFJP TCArIEVWRVJHUkVFTl9DUlRDNV9SRUdJU1RFUl9PRkZTRVQsCj4gLQkJICAgICAgIEdSUEhfUEZM SVBfSU5UX01BU0spOwo+IC0JfQo+IC0KPiAgIAlpZiAoIUFTSUNfSVNfTk9EQ0UocmRldikpIHsK PiAgIAkJV1JFRzMyKERDX0hQRDFfSU5UX0NPTlRST0wsIGhwZDEpOwo+ICAgCQlXUkVHMzIoRENf SFBEMl9JTlRfQ09OVFJPTCwgaHBkMik7Cj4gQEAgLTU5NzQsMTAgKzU5NTUsNiBAQCBzdGF0aWMg aW5saW5lIHZvaWQgc2lfaXJxX2FjayhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKPiAgIAkJ cmRldi0+aXJxLnN0YXRfcmVncy5ldmVyZ3JlZW4uZDZncnBoX2ludCA9IFJSRUczMihHUlBIX0lO VF9TVEFUVVMgKyBFVkVSR1JFRU5fQ1JUQzVfUkVHSVNURVJfT0ZGU0VUKTsKPiAgIAl9Cj4gICAK PiAtCWlmIChyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5kMWdycGhfaW50ICYgR1JQSF9Q RkxJUF9JTlRfT0NDVVJSRUQpCj4gLQkJV1JFRzMyKEdSUEhfSU5UX1NUQVRVUyArIEVWRVJHUkVF Tl9DUlRDMF9SRUdJU1RFUl9PRkZTRVQsIEdSUEhfUEZMSVBfSU5UX0NMRUFSKTsKPiAtCWlmIChy ZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5kMmdycGhfaW50ICYgR1JQSF9QRkxJUF9JTlRf T0NDVVJSRUQpCj4gLQkJV1JFRzMyKEdSUEhfSU5UX1NUQVRVUyArIEVWRVJHUkVFTl9DUlRDMV9S RUdJU1RFUl9PRkZTRVQsIEdSUEhfUEZMSVBfSU5UX0NMRUFSKTsKPiAgIAlpZiAocmRldi0+aXJx LnN0YXRfcmVncy5ldmVyZ3JlZW4uZGlzcF9pbnQgJiBMQl9EMV9WQkxBTktfSU5URVJSVVBUKQo+ ICAgCQlXUkVHMzIoVkJMQU5LX1NUQVRVUyArIEVWRVJHUkVFTl9DUlRDMF9SRUdJU1RFUl9PRkZT RVQsIFZCTEFOS19BQ0spOwo+ICAgCWlmIChyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5k aXNwX2ludCAmIExCX0QxX1ZMSU5FX0lOVEVSUlVQVCkKPiBAQCAtNTk4OCwxMCArNTk2NSw2IEBA IHN0YXRpYyBpbmxpbmUgdm9pZCBzaV9pcnFfYWNrKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 KQo+ICAgCQlXUkVHMzIoVkxJTkVfU1RBVFVTICsgRVZFUkdSRUVOX0NSVEMxX1JFR0lTVEVSX09G RlNFVCwgVkxJTkVfQUNLKTsKPiAgIAo+ICAgCWlmIChyZGV2LT5udW1fY3J0YyA+PSA0KSB7Cj4g LQkJaWYgKHJkZXYtPmlycS5zdGF0X3JlZ3MuZXZlcmdyZWVuLmQzZ3JwaF9pbnQgJiBHUlBIX1BG TElQX0lOVF9PQ0NVUlJFRCkKPiAtCQkJV1JFRzMyKEdSUEhfSU5UX1NUQVRVUyArIEVWRVJHUkVF Tl9DUlRDMl9SRUdJU1RFUl9PRkZTRVQsIEdSUEhfUEZMSVBfSU5UX0NMRUFSKTsKPiAtCQlpZiAo cmRldi0+aXJxLnN0YXRfcmVncy5ldmVyZ3JlZW4uZDRncnBoX2ludCAmIEdSUEhfUEZMSVBfSU5U X09DQ1VSUkVEKQo+IC0JCQlXUkVHMzIoR1JQSF9JTlRfU1RBVFVTICsgRVZFUkdSRUVOX0NSVEMz X1JFR0lTVEVSX09GRlNFVCwgR1JQSF9QRkxJUF9JTlRfQ0xFQVIpOwo+ICAgCQlpZiAocmRldi0+ aXJxLnN0YXRfcmVncy5ldmVyZ3JlZW4uZGlzcF9pbnRfY29udDIgJiBMQl9EM19WQkxBTktfSU5U RVJSVVBUKQo+ICAgCQkJV1JFRzMyKFZCTEFOS19TVEFUVVMgKyBFVkVSR1JFRU5fQ1JUQzJfUkVH SVNURVJfT0ZGU0VULCBWQkxBTktfQUNLKTsKPiAgIAkJaWYgKHJkZXYtPmlycS5zdGF0X3JlZ3Mu ZXZlcmdyZWVuLmRpc3BfaW50X2NvbnQyICYgTEJfRDNfVkxJTkVfSU5URVJSVVBUKQo+IEBAIC02 MDAzLDEwICs1OTc2LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIHNpX2lycV9hY2soc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYpCj4gICAJfQo+ICAgCj4gICAJaWYgKHJkZXYtPm51bV9jcnRjID49 IDYpIHsKPiAtCQlpZiAocmRldi0+aXJxLnN0YXRfcmVncy5ldmVyZ3JlZW4uZDVncnBoX2ludCAm IEdSUEhfUEZMSVBfSU5UX09DQ1VSUkVEKQo+IC0JCQlXUkVHMzIoR1JQSF9JTlRfU1RBVFVTICsg RVZFUkdSRUVOX0NSVEM0X1JFR0lTVEVSX09GRlNFVCwgR1JQSF9QRkxJUF9JTlRfQ0xFQVIpOwo+ IC0JCWlmIChyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5kNmdycGhfaW50ICYgR1JQSF9Q RkxJUF9JTlRfT0NDVVJSRUQpCj4gLQkJCVdSRUczMihHUlBIX0lOVF9TVEFUVVMgKyBFVkVSR1JF RU5fQ1JUQzVfUkVHSVNURVJfT0ZGU0VULCBHUlBIX1BGTElQX0lOVF9DTEVBUik7Cj4gICAJCWlm IChyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5kaXNwX2ludF9jb250NCAmIExCX0Q1X1ZC TEFOS19JTlRFUlJVUFQpCj4gICAJCQlXUkVHMzIoVkJMQU5LX1NUQVRVUyArIEVWRVJHUkVFTl9D UlRDNF9SRUdJU1RFUl9PRkZTRVQsIFZCTEFOS19BQ0spOwo+ICAgCQlpZiAocmRldi0+aXJxLnN0 YXRfcmVncy5ldmVyZ3JlZW4uZGlzcF9pbnRfY29udDQgJiBMQl9ENV9WTElORV9JTlRFUlJVUFQp Cj4gQEAgLTYxNTEsNyArNjEyMCw3IEBAIHJlc3RhcnRfaWg6Cj4gICAJCQkJCQl3YWtlX3VwKCZy ZGV2LT5pcnEudmJsYW5rX3F1ZXVlKTsKPiAgIAkJCQkJfQo+ICAgCQkJCQlpZiAoYXRvbWljX3Jl YWQoJnJkZXYtPmlycS5wZmxpcFswXSkpCj4gLQkJCQkJCXJhZGVvbl9jcnRjX2hhbmRsZV92Ymxh bmsocmRldiwgMCk7Cj4gKwkJCQkJCXJhZGVvbl9jcnRjX2hhbmRsZV9mbGlwKHJkZXYsIDApOwo+ ICAgCQkJCQlyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5kaXNwX2ludCAmPSB+TEJfRDFf VkJMQU5LX0lOVEVSUlVQVDsKPiAgIAkJCQkJRFJNX0RFQlVHKCJJSDogRDEgdmJsYW5rXG4iKTsK PiAgIAkJCQl9Cj4gQEAgLTYxNzcsNyArNjE0Niw3IEBAIHJlc3RhcnRfaWg6Cj4gICAJCQkJCQl3 YWtlX3VwKCZyZGV2LT5pcnEudmJsYW5rX3F1ZXVlKTsKPiAgIAkJCQkJfQo+ICAgCQkJCQlpZiAo YXRvbWljX3JlYWQoJnJkZXYtPmlycS5wZmxpcFsxXSkpCj4gLQkJCQkJCXJhZGVvbl9jcnRjX2hh bmRsZV92YmxhbmsocmRldiwgMSk7Cj4gKwkJCQkJCXJhZGVvbl9jcnRjX2hhbmRsZV9mbGlwKHJk ZXYsIDEpOwo+ICAgCQkJCQlyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5kaXNwX2ludF9j b250ICY9IH5MQl9EMl9WQkxBTktfSU5URVJSVVBUOwo+ICAgCQkJCQlEUk1fREVCVUcoIklIOiBE MiB2YmxhbmtcbiIpOwo+ICAgCQkJCX0KPiBAQCAtNjIwMyw3ICs2MTcyLDcgQEAgcmVzdGFydF9p aDoKPiAgIAkJCQkJCXdha2VfdXAoJnJkZXYtPmlycS52YmxhbmtfcXVldWUpOwo+ICAgCQkJCQl9 Cj4gICAJCQkJCWlmIChhdG9taWNfcmVhZCgmcmRldi0+aXJxLnBmbGlwWzJdKSkKPiAtCQkJCQkJ cmFkZW9uX2NydGNfaGFuZGxlX3ZibGFuayhyZGV2LCAyKTsKPiArCQkJCQkJcmFkZW9uX2NydGNf aGFuZGxlX2ZsaXAocmRldiwgMik7Cj4gICAJCQkJCXJkZXYtPmlycS5zdGF0X3JlZ3MuZXZlcmdy ZWVuLmRpc3BfaW50X2NvbnQyICY9IH5MQl9EM19WQkxBTktfSU5URVJSVVBUOwo+ICAgCQkJCQlE Uk1fREVCVUcoIklIOiBEMyB2YmxhbmtcbiIpOwo+ICAgCQkJCX0KPiBAQCAtNjIyOSw3ICs2MTk4 LDcgQEAgcmVzdGFydF9paDoKPiAgIAkJCQkJCXdha2VfdXAoJnJkZXYtPmlycS52YmxhbmtfcXVl dWUpOwo+ICAgCQkJCQl9Cj4gICAJCQkJCWlmIChhdG9taWNfcmVhZCgmcmRldi0+aXJxLnBmbGlw WzNdKSkKPiAtCQkJCQkJcmFkZW9uX2NydGNfaGFuZGxlX3ZibGFuayhyZGV2LCAzKTsKPiArCQkJ CQkJcmFkZW9uX2NydGNfaGFuZGxlX2ZsaXAocmRldiwgMyk7Cj4gICAJCQkJCXJkZXYtPmlycS5z dGF0X3JlZ3MuZXZlcmdyZWVuLmRpc3BfaW50X2NvbnQzICY9IH5MQl9ENF9WQkxBTktfSU5URVJS VVBUOwo+ICAgCQkJCQlEUk1fREVCVUcoIklIOiBENCB2YmxhbmtcbiIpOwo+ICAgCQkJCX0KPiBA QCAtNjI1NSw3ICs2MjI0LDcgQEAgcmVzdGFydF9paDoKPiAgIAkJCQkJCXdha2VfdXAoJnJkZXYt PmlycS52YmxhbmtfcXVldWUpOwo+ICAgCQkJCQl9Cj4gICAJCQkJCWlmIChhdG9taWNfcmVhZCgm cmRldi0+aXJxLnBmbGlwWzRdKSkKPiAtCQkJCQkJcmFkZW9uX2NydGNfaGFuZGxlX3ZibGFuayhy ZGV2LCA0KTsKPiArCQkJCQkJcmFkZW9uX2NydGNfaGFuZGxlX2ZsaXAocmRldiwgNCk7Cj4gICAJ CQkJCXJkZXYtPmlycS5zdGF0X3JlZ3MuZXZlcmdyZWVuLmRpc3BfaW50X2NvbnQ0ICY9IH5MQl9E NV9WQkxBTktfSU5URVJSVVBUOwo+ICAgCQkJCQlEUk1fREVCVUcoIklIOiBENSB2YmxhbmtcbiIp Owo+ICAgCQkJCX0KPiBAQCAtNjI4MSw3ICs2MjUwLDcgQEAgcmVzdGFydF9paDoKPiAgIAkJCQkJ CXdha2VfdXAoJnJkZXYtPmlycS52YmxhbmtfcXVldWUpOwo+ICAgCQkJCQl9Cj4gICAJCQkJCWlm IChhdG9taWNfcmVhZCgmcmRldi0+aXJxLnBmbGlwWzVdKSkKPiAtCQkJCQkJcmFkZW9uX2NydGNf aGFuZGxlX3ZibGFuayhyZGV2LCA1KTsKPiArCQkJCQkJcmFkZW9uX2NydGNfaGFuZGxlX2ZsaXAo cmRldiwgNSk7Cj4gICAJCQkJCXJkZXYtPmlycS5zdGF0X3JlZ3MuZXZlcmdyZWVuLmRpc3BfaW50 X2NvbnQ1ICY9IH5MQl9ENl9WQkxBTktfSU5URVJSVVBUOwo+ICAgCQkJCQlEUk1fREVCVUcoIklI OiBENiB2YmxhbmtcbiIpOwo+ICAgCQkJCX0KPiBAQCAtNjI5NywxNSArNjI2Niw2IEBAIHJlc3Rh cnRfaWg6Cj4gICAJCQkJYnJlYWs7Cj4gICAJCQl9Cj4gICAJCQlicmVhazsKPiAtCQljYXNlIDg6 IC8qIEQxIHBhZ2UgZmxpcCAqLwo+IC0JCWNhc2UgMTA6IC8qIEQyIHBhZ2UgZmxpcCAqLwo+IC0J CWNhc2UgMTI6IC8qIEQzIHBhZ2UgZmxpcCAqLwo+IC0JCWNhc2UgMTQ6IC8qIEQ0IHBhZ2UgZmxp cCAqLwo+IC0JCWNhc2UgMTY6IC8qIEQ1IHBhZ2UgZmxpcCAqLwo+IC0JCWNhc2UgMTg6IC8qIEQ2 IHBhZ2UgZmxpcCAqLwo+IC0JCQlEUk1fREVCVUcoIklIOiBEJWQgZmxpcFxuIiwgKChzcmNfaWQg LSA4KSA+PiAxKSArIDEpOwo+IC0JCQlyYWRlb25fY3J0Y19oYW5kbGVfZmxpcChyZGV2LCAoc3Jj X2lkIC0gOCkgPj4gMSk7Cj4gLQkJCWJyZWFrOwo+ICAgCQljYXNlIDQyOiAvKiBIUEQgaG90cGx1 ZyAqLwo+ICAgCQkJc3dpdGNoIChzcmNfZGF0YSkgewo+ICAgCQkJY2FzZSAwOgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK