From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: Re: [PATCH 2/2] xen/input: add multi-touch support Date: Wed, 31 May 2017 12:06:56 +0300 Message-ID: References: <1492083484-31786-1-git-send-email-andr2000@gmail.com> <1492083484-31786-3-git-send-email-andr2000@gmail.com> <20170421021018.GB23279@dtor-ws> <20170530055150.GA38163@dtor-ws> <8092dd49-20e0-3e8d-977d-2f570142a37d@gmail.com> <20170530163708.GA12922@dtor-ws> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dFzam-0003Fx-Go for xen-devel@lists.xenproject.org; Wed, 31 May 2017 09:07:00 +0000 Received: by mail-wr0-f195.google.com with SMTP id n104so963047wrb.3 for ; Wed, 31 May 2017 02:06:58 -0700 (PDT) In-Reply-To: <20170530163708.GA12922@dtor-ws> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Dmitry Torokhov Cc: jgross@suse.com, Oleksandr Andrushchenko , vlad.babchuk@gmail.com, linux-kernel@vger.kernel.org, andrii.anisov@gmail.com, olekstysh@gmail.com, al1img@gmail.com, linux-input@vger.kernel.org, xen-devel@lists.xenproject.org, boris.ostrovsky@oracle.com, joculator@gmail.com List-Id: xen-devel@lists.xenproject.org SGksIERtaXRyeSEKCk9uIDA1LzMwLzIwMTcgMDc6MzcgUE0sIERtaXRyeSBUb3Jva2hvdiB3cm90 ZToKPiBPbiBUdWUsIE1heSAzMCwgMjAxNyBhdCAwMzo1MDoyMFBNICswMzAwLCBPbGVrc2FuZHIg QW5kcnVzaGNoZW5rbyB3cm90ZToKPj4gSGksIERtaXRyeSEKPj4KPj4gT24gMDUvMzAvMjAxNyAw ODo1MSBBTSwgRG1pdHJ5IFRvcm9raG92IHdyb3RlOgo+Pj4gT24gRnJpLCBBcHIgMjEsIDIwMTcg YXQgMDk6NDA6MzZBTSArMDMwMCwgT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gd3JvdGU6Cj4+Pj4g SGksIERtaXRyeSEKPj4+Pgo+Pj4+IE9uIDA0LzIxLzIwMTcgMDU6MTAgQU0sIERtaXRyeSBUb3Jv a2hvdiB3cm90ZToKPj4+Pj4gSGkgT2xla3NhbmRyLAo+Pj4+Pgo+Pj4+PiBPbiBUaHUsIEFwciAx MywgMjAxNyBhdCAwMjozODowNFBNICswMzAwLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyB3cm90 ZToKPj4+Pj4+IEZyb206IE9sZWtzYW5kciBBbmRydXNoY2hlbmtvIDxvbGVrc2FuZHJfYW5kcnVz aGNoZW5rb0BlcGFtLmNvbT4KPj4+Pj4+Cj4+Pj4+PiBFeHRlbmQgeGVuX2tiZGZyb250IHRvIHBy b3ZpZGUgbXVsdGktdG91Y2ggc3VwcG9ydAo+Pj4+Pj4gdG8gdW5wcml2aWxlZ2VkIGRvbWFpbnMu Cj4+Pj4+Pgo+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9s ZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgo+Pj4+Pj4gLS0tCj4+Pj4+PiAgIGRyaXZl cnMvaW5wdXQvbWlzYy94ZW4ta2JkZnJvbnQuYyB8IDE0MiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLQo+Pj4+Pj4gICAxIGZpbGUgY2hhbmdlZCwgMTQwIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCj4+Pj4+Pgo+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5w dXQvbWlzYy94ZW4ta2JkZnJvbnQuYyBiL2RyaXZlcnMvaW5wdXQvbWlzYy94ZW4ta2JkZnJvbnQu Ywo+Pj4+Pj4gaW5kZXggMDFjMjdiNGMzMjg4Li5lNWQwNjRhYWEyMzcgMTAwNjQ0Cj4+Pj4+PiAt LS0gYS9kcml2ZXJzL2lucHV0L21pc2MveGVuLWtiZGZyb250LmMKPj4+Pj4+ICsrKyBiL2RyaXZl cnMvaW5wdXQvbWlzYy94ZW4ta2JkZnJvbnQuYwo+Pj4+Pj4gQEAgLTE3LDYgKzE3LDcgQEAKPj4+ Pj4+ICAgI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Cj4+Pj4+PiAgICNpbmNsdWRlIDxsaW51eC9t b2R1bGUuaD4KPj4+Pj4+ICAgI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+Cj4+Pj4+PiArI2luY2x1 ZGUgPGxpbnV4L2lucHV0L210Lmg+Cj4+Pj4+PiAgICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4+ Pj4+PiAgICNpbmNsdWRlIDxhc20veGVuL2h5cGVydmlzb3IuaD4KPj4+Pj4+IEBAIC0zNCwxMSAr MzUsMTQgQEAKPj4+Pj4+ICAgc3RydWN0IHhlbmtiZF9pbmZvIHsKPj4+Pj4+ICAgCXN0cnVjdCBp bnB1dF9kZXYgKmtiZDsKPj4+Pj4+ICAgCXN0cnVjdCBpbnB1dF9kZXYgKnB0cjsKPj4+Pj4+ICsJ c3RydWN0IGlucHV0X2RldiAqbXRvdWNoOwo+Pj4+Pj4gICAJc3RydWN0IHhlbmtiZF9wYWdlICpw YWdlOwo+Pj4+Pj4gICAJaW50IGdyZWY7Cj4+Pj4+PiAgIAlpbnQgaXJxOwo+Pj4+Pj4gICAJc3Ry dWN0IHhlbmJ1c19kZXZpY2UgKnhiZGV2Owo+Pj4+Pj4gICAJY2hhciBwaHlzWzMyXTsKPj4+Pj4+ ICsJLyogY3VycmVudCBNVCBzbG90L2NvbnRhY3QgSUQgd2UgYXJlIGluamVjdGluZyBldmVudHMg aW4gKi8KPj4+Pj4+ICsJaW50IG10b3VjaF9jdXJfY29udGFjdF9pZDsKPj4+Pj4+ICAgfTsKPj4+ Pj4+ICAgZW51bSB7IEtQQVJBTV9YLCBLUEFSQU1fWSwgS1BBUkFNX0NOVCB9Owo+Pj4+Pj4gQEAg LTQ3LDYgKzUxLDEyIEBAIG1vZHVsZV9wYXJhbV9hcnJheShwdHJfc2l6ZSwgaW50LCBOVUxMLCAw NDQ0KTsKPj4+Pj4+ICAgTU9EVUxFX1BBUk1fREVTQyhwdHJfc2l6ZSwKPj4+Pj4+ICAgCSJQb2lu dGluZyBkZXZpY2Ugd2lkdGgsIGhlaWdodCBpbiBwaXhlbHMgKGRlZmF1bHQgODAwLDYwMCkiKTsK Pj4+Pj4+ICtlbnVtIHsgS1BBUkFNX01UX1gsIEtQQVJBTV9NVF9ZLCBLUEFSQU1fTVRfQ05UIH07 Cj4+Pj4+PiArc3RhdGljIGludCBtdG91Y2hfc2l6ZVtLUEFSQU1fTVRfQ05UXSA9IHsgWEVORkJf V0lEVEgsIFhFTkZCX0hFSUdIVCB9Owo+Pj4+Pj4gK21vZHVsZV9wYXJhbV9hcnJheShtdG91Y2hf c2l6ZSwgaW50LCBOVUxMLCAwNDQ0KTsKPj4+Pj4+ICtNT0RVTEVfUEFSTV9ERVNDKHB0cl9zaXpl LAo+Pj4+Pj4gKwkiTXVsdGktdG91Y2ggZGV2aWNlIHdpZHRoLCBoZWlnaHQgaW4gcGl4ZWxzIChk ZWZhdWx0IDgwMCw2MDApIik7Cj4+Pj4+PiArCj4+Pj4+IFdoeSBkbyB5b3UgbmVlZCBzZXBhcmF0 ZSBtb2R1bGUgcGFyYW1ldGVycyBmb3IgbXVsdGktdG91Y2ggZGV2aWNlPwo+Pj4+IHBsZWFzZSBz ZWUgYmVsb3cKPj4+Pj4+ICAgc3RhdGljIGludCB4ZW5rYmRfcmVtb3ZlKHN0cnVjdCB4ZW5idXNf ZGV2aWNlICopOwo+Pj4+Pj4gICBzdGF0aWMgaW50IHhlbmtiZF9jb25uZWN0X2JhY2tlbmQoc3Ry dWN0IHhlbmJ1c19kZXZpY2UgKiwgc3RydWN0IHhlbmtiZF9pbmZvICopOwo+Pj4+Pj4gICBzdGF0 aWMgdm9pZCB4ZW5rYmRfZGlzY29ubmVjdF9iYWNrZW5kKHN0cnVjdCB4ZW5rYmRfaW5mbyAqKTsK Pj4+Pj4+IEBAIC0xMDAsNiArMTEwLDYwIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBpbnB1dF9oYW5k bGVyKGludCBycSwgdm9pZCAqZGV2X2lkKQo+Pj4+Pj4gICAJCQkJaW5wdXRfcmVwb3J0X3JlbChk ZXYsIFJFTF9XSEVFTCwKPj4+Pj4+ICAgCQkJCQkJIC1ldmVudC0+cG9zLnJlbF96KTsKPj4+Pj4+ ICAgCQkJYnJlYWs7Cj4+Pj4+PiArCQljYXNlIFhFTktCRF9UWVBFX01UT1VDSDoKPj4+Pj4+ICsJ CQlkZXYgPSBpbmZvLT5tdG91Y2g7Cj4+Pj4+PiArCQkJaWYgKHVubGlrZWx5KCFkZXYpKQo+Pj4+ Pj4gKwkJCQlicmVhazsKPj4+Pj4+ICsJCQlpZiAodW5saWtlbHkoZXZlbnQtPm10b3VjaC5jb250 YWN0X2lkICE9Cj4+Pj4+PiArCQkJCQlpbmZvLT5tdG91Y2hfY3VyX2NvbnRhY3RfaWQpKSB7Cj4+ Pj4+IFdoeSBpcyB0aGlzIHVubGlrZWx5PyBEb2VzIGNvbnRhY3QgSUQgY2hhbmdlcyBvbmNlIGlu IDEwMDAgcGFja2V0cyBvcgo+Pj4+PiBldmVuIGxlc3M/Cj4+Pj4gTXUgYXNzdW1wdGlvbiB3YXMg dGhhdCByZWdhcmRsZXNzIG9mIHRoZSBmYWN0IHRoYXQgd2UgYXJlIG11bHRpLXRvdWNoCj4+Pj4g ZGV2aWNlIHN0aWxsIHNpbmdsZSB0b3VjaGVzIHdpbGwgY29tZSBpbiBtb3JlIGZyZXF1ZW50bHkK Pj4+PiBCdXQgSSBjYW4gcmVtb3ZlICp1bmxpa2VseSogaWYgbXkgYXNzdW1wdGlvbiBpcyBub3Qg Y29ycmVjdAo+Pj4gSSB0aGluayB0aGUgbm9ybWFsIGV4cGVjdGF0aW9uIGlzIHRoYXQgInVubGlr ZWx5IiBpcyBzdXBwb3NlZCBmb3IKPj4+IHNvbWV0aGluZyB0aGF0IGhhcHBlbnMgb25jZSBpbiBh IGJsdWUgbW9vbiwgc28gSSdkIHJhdGhlciByZW1vdmUgaXQuCj4+Pgo+PiBhZ3JlZSwgcmVtb3Zl ZCAidW5saWtlbHkiCj4+Pj4+PiArCQkJCWluZm8tPm10b3VjaF9jdXJfY29udGFjdF9pZCA9Cj4+ Pj4+PiArCQkJCQlldmVudC0+bXRvdWNoLmNvbnRhY3RfaWQ7Cj4+Pj4+PiArCQkJCWlucHV0X210 X3Nsb3QoZGV2LCBldmVudC0+bXRvdWNoLmNvbnRhY3RfaWQpOwo+Pj4+Pj4gKwkJCX0KPj4+Pj4+ ICsJCQlzd2l0Y2ggKGV2ZW50LT5tdG91Y2guZXZlbnRfdHlwZSkgewo+Pj4+Pj4gKwkJCWNhc2Ug WEVOS0JEX01UX0VWX0RPV046Cj4+Pj4+PiArCQkJCWlucHV0X210X3JlcG9ydF9zbG90X3N0YXRl KGRldiwgTVRfVE9PTF9GSU5HRVIsCj4+Pj4+PiArCQkJCQkJCSAgIHRydWUpOwo+Pj4gU2hvdWxk IHdlIGVzdGFibGlzaCB0b29sIGV2ZW50PyBXZSBoYXZlIE1UX1RPT0xfUEVOLCBldGMuCj4+IEkg dGhpbmsgdGhhdCBmb3IgbXVsdGktdG91Y2ggTVRfVE9PTF9GSU5HRVIgaXMgZW5vdWdoCj4+IGFu eSByZWFzb24gd2Ugd291bGQgYWxzbyB3YW50IE1UX1RPT0xfUEVOIGhlcmU/Cj4gV2h5IHdvdWxk IG5vdCB5b3U/IExldCdzIHNheSB5b3UgaGF2ZSBhIGRyYXdpbmcgYXBwbGljYXRpb24gcnVubmlu ZyBpbgo+IGd1ZXN0IHRoYXQgY2FuIG1ha2UgdXNlIG9mIHRvb2wgdHlwZXMuIFdoeSB3b3VsZCBu b3QgeW91IHdhbnQgdG8gdGVsbCBpdAo+IHRoYXQgdGhlIHRvb2wgdXNlciBpcyBjdXJyZW50bHkg dXNpbmcgaXMgaW4gZmFjdCBhIHBlbiBhbmQgbm90IGZpbmdlcj8KQnV0IGl0IGlzIGEgZmluZ2Vy IDopIHdlIGFyZSBtdWx0aS10b3VjaCwgbm90IG11bHRpIHBlbgoKQmVzaWRlcywgdGhhdCwgaWYg SSBhbSBhYm91dCB0byBpbXBsZW1lbnQgcGVuIHN1cHBvcnQKKHdoaWNoIEkgc3RpbGwgbm90IGNv bnZpbmNlZCB3ZSByZWFsbHkgbmVlZCksIGhvdyB3aWxsIEkKZG8gdGhhdD8KTXkgdW5kZXJzdGFu ZGluZyBpcyB0aGF0IEkgbmVlZCAyIGRpZmZlcmVudCBzbG90cyB0byByZXBvcnQKdGhlIHNhbWUg Y29vcmRpbmF0ZXMgZm9yIGZpbmdlciBhbmQgcGVuLiBUaGlzIGlzIGJlY2F1c2UKaW5wdXRfbXRf cmVwb3J0X3Nsb3Rfc3RhdGUgaGFzIGEgY2hlY2sgdGhhdCBpZiB0b29sIGhhcwpjaGFuZ2VkIGZv ciB0aGUgY3VycmVudCBzbG90IHRoZW4gYSBuZXcgdHJhY2tpbmcgSUQgaXMgc2V0LgpEbyBJIGFs c28gbmVlZCB0byBhbGxvY2F0ZSB0d2ljZSBtb3JlIHNsb3RzLCBzbyBJIGNhbgpyZXBvcnQgMiAq IG51bV9jb250YWN0cyBldmVudHMgc2ltdWx0YW5lb3VzbHkgKG9uZSBmb3IgZmluZ2VyCmFuZCBh bm90aGVyIGZvciBwZW4pPwpUaGF0IHNhaWQsIEkgYmVsaWV2ZSB3ZSBjYW4gc3RhcnQgd2l0aCBt dWx0aS10b3VjaCBzdXBwb3J0CmFuZCBpZiBuZWVkIGJlIHRoZW4gYWRkIHBlbiBzdXBwb3J0IGFz IGEgc2VwYXJhdGUgY2hhbmdlLApkb2VzIHRoYXQgbWFrZSBzZW5zZSBmb3IgeW91Pwo+Cj4+IChJ IGd1ZXNzIE1UX1RPT0xfUEFMTSBpcyBub3QgYXBwcm9wcmlhdGUgYW55d2F5cykKPiBEZXBlbmRz IG9uIGlmIHlvdSBkbyBzdHJhaWdodCBwYXNzLXRocm91Z2ggZnJvbSB0aGUgaG9zdCBzaWRlIG9y IG5vdC4gSWYKPiB5b3Ugc3RhY2sgZG9lcyBwYWxtIHJlamVjdGlvbiBiZWZvcmUgcGFzc2luZyB0 aGUgZGF0YSB0aHJvdWdoIHRoZW4geW91Cj4gd291bGQgbm90IHNlZSBNVF9UT09MX1BBTE0gaW4g Z3Vlc3QuCnRoZSBwcm90b2NvbCB1c2VkIGJldHdlZW4gZ3Vlc3QgYW5kIGhvc3QgaXMgYSBnZW5l cmljIG9uZSwKbm90IHVzaW5nIExpbnV4IHR5cGVzL2NvbnN0YW50cy9ldmVudHMuClNvLCBubyBQ QUxNL1RPT0wgc3VwcG9ydCBpcyBpbiBwbGFjZQo+Pj4+Pj4gKwkJCQlpbnB1dF9ldmVudChkZXYs IEVWX0FCUywgQUJTX01UX1BPU0lUSU9OX1gsCj4+Pj4+PiArCQkJCQkgICAgZXZlbnQtPm10b3Vj aC51LnBvcy5hYnNfeCk7Cj4+Pj4+PiArCQkJCWlucHV0X2V2ZW50KGRldiwgRVZfQUJTLCBBQlNf TVRfUE9TSVRJT05fWSwKPj4+Pj4+ICsJCQkJCSAgICBldmVudC0+bXRvdWNoLnUucG9zLmFic195 KTsKPj4+Pj4+ICsJCQkJaW5wdXRfZXZlbnQoZGV2LCBFVl9BQlMsIEFCU19YLAo+Pj4+Pj4gKwkJ CQkJICAgIGV2ZW50LT5tdG91Y2gudS5wb3MuYWJzX3gpOwo+Pj4+Pj4gKwkJCQlpbnB1dF9ldmVu dChkZXYsIEVWX0FCUywgQUJTX1ksCj4+Pj4+PiArCQkJCQkgICAgZXZlbnQtPm10b3VjaC51LnBv cy5hYnNfeSk7Cj4+Pj4+PiArCQkJCWJyZWFrOwo+Pj4+Pj4gKwkJCWNhc2UgWEVOS0JEX01UX0VW X1VQOgo+Pj4+Pj4gKwkJCQlpbnB1dF9tdF9yZXBvcnRfc2xvdF9zdGF0ZShkZXYsIE1UX1RPT0xf RklOR0VSLAo+Pj4+Pj4gKwkJCQkJCQkgICBmYWxzZSk7Cj4+Pj4+PiArCQkJCWJyZWFrOwo+Pj4+ Pj4gKwkJCWNhc2UgWEVOS0JEX01UX0VWX01PVElPTjoKPj4+Pj4+ICsJCQkJaW5wdXRfZXZlbnQo ZGV2LCBFVl9BQlMsIEFCU19NVF9QT1NJVElPTl9YLAo+Pj4+Pj4gKwkJCQkJICAgIGV2ZW50LT5t dG91Y2gudS5wb3MuYWJzX3gpOwo+Pj4+Pj4gKwkJCQlpbnB1dF9ldmVudChkZXYsIEVWX0FCUywg QUJTX01UX1BPU0lUSU9OX1ksCj4+Pj4+PiArCQkJCQkgICAgZXZlbnQtPm10b3VjaC51LnBvcy5h YnNfeSk7Cj4+Pj4+PiArCQkJCWlucHV0X2V2ZW50KGRldiwgRVZfQUJTLCBBQlNfWCwKPj4+Pj4+ ICsJCQkJCSAgICBldmVudC0+bXRvdWNoLnUucG9zLmFic194KTsKPj4+Pj4+ICsJCQkJaW5wdXRf ZXZlbnQoZGV2LCBFVl9BQlMsIEFCU19ZLAo+Pj4+Pj4gKwkJCQkJICAgIGV2ZW50LT5tdG91Y2gu dS5wb3MuYWJzX3kpOwo+Pj4+Pj4gKwkJCQlicmVhazsKPj4+Pj4+ICsJCQljYXNlIFhFTktCRF9N VF9FVl9TWU46Cj4+Pj4+PiArCQkJCWlucHV0X210X3N5bmNfZnJhbWUoZGV2KTsKPj4+Pj4+ICsJ CQkJYnJlYWs7Cj4+Pj4+PiArCQkJY2FzZSBYRU5LQkRfTVRfRVZfU0hBUEU6Cj4+Pj4+PiArCQkJ CWlucHV0X2V2ZW50KGRldiwgRVZfQUJTLCBBQlNfTVRfVE9VQ0hfTUFKT1IsCj4+Pj4+PiArCQkJ CQkgICAgZXZlbnQtPm10b3VjaC51LnNoYXBlLm1ham9yKTsKPj4+Pj4+ICsJCQkJaW5wdXRfZXZl bnQoZGV2LCBFVl9BQlMsIEFCU19NVF9UT1VDSF9NSU5PUiwKPj4+Pj4+ICsJCQkJCSAgICBldmVu dC0+bXRvdWNoLnUuc2hhcGUubWlub3IpOwo+Pj4+Pj4gKwkJCQlicmVhazsKPj4+Pj4+ICsJCQlj YXNlIFhFTktCRF9NVF9FVl9PUklFTlQ6Cj4+Pj4+PiArCQkJCWlucHV0X2V2ZW50KGRldiwgRVZf QUJTLCBBQlNfTVRfT1JJRU5UQVRJT04sCj4+Pj4+PiArCQkJCQkgICAgZXZlbnQtPm10b3VjaC51 Lm9yaWVudGF0aW9uKTsKPj4+Pj4+ICsJCQkJYnJlYWs7Cj4+Pj4+PiArCQkJfQo+Pj4+Pj4gKwkJ CS8qIG9ubHkgcmVwb3J0IHN5biB3aGVuIHJlcXVlc3RlZCAqLwo+Pj4+Pj4gKwkJCWlmIChldmVu dC0+bXRvdWNoLmV2ZW50X3R5cGUgIT0gWEVOS0JEX01UX0VWX1NZTikKPj4+Pj4+ICsJCQkJZGV2 ID0gTlVMTDsKPj4+Pj4+ICAgCQl9Cj4+Pj4+PiAgIAkJaWYgKGRldikKPj4+Pj4+ICAgCQkJaW5w dXRfc3luYyhkZXYpOwo+Pj4+Pj4gQEAgLTExNSw5ICsxNzksOSBAQCBzdGF0aWMgaW50IHhlbmti ZF9wcm9iZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LAo+Pj4+Pj4gICAJCQkJICBjb25zdCBz dHJ1Y3QgeGVuYnVzX2RldmljZV9pZCAqaWQpCj4+Pj4+PiAgIHsKPj4+Pj4+ICAgCWludCByZXQs IGk7Cj4+Pj4+PiAtCXVuc2lnbmVkIGludCBhYnM7Cj4+Pj4+PiArCXVuc2lnbmVkIGludCBhYnMs IHRvdWNoOwo+Pj4+Pj4gICAJc3RydWN0IHhlbmtiZF9pbmZvICppbmZvOwo+Pj4+Pj4gLQlzdHJ1 Y3QgaW5wdXRfZGV2ICprYmQsICpwdHI7Cj4+Pj4+PiArCXN0cnVjdCBpbnB1dF9kZXYgKmtiZCwg KnB0ciwgKm10b3VjaDsKPj4+Pj4+ICAgCWluZm8gPSBremFsbG9jKHNpemVvZigqaW5mbyksIEdG UF9LRVJORUwpOwo+Pj4+Pj4gICAJaWYgKCFpbmZvKSB7Cj4+Pj4+PiBAQCAtMTUyLDYgKzIxNiwx NyBAQCBzdGF0aWMgaW50IHhlbmtiZF9wcm9iZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LAo+ Pj4+Pj4gICAJCX0KPj4+Pj4+ICAgCX0KPj4+Pj4+ICsJdG91Y2ggPSB4ZW5idXNfcmVhZF91bnNp Z25lZChkZXYtPm5vZGVuYW1lLAo+Pj4+Pj4gKwkJCQkgICAgIFhFTktCRF9GSUVMRF9GRUFUX01U T1VDSCwgMCk7Cj4+Pj4+PiArCWlmICh0b3VjaCkgewo+Pj4+Pj4gKwkJcmV0ID0geGVuYnVzX3dy aXRlKFhCVF9OSUwsIGRldi0+bm9kZW5hbWUsCj4+Pj4+PiArCQkJCSAgIFhFTktCRF9GSUVMRF9S RVFfTVRPVUNILCAiMSIpOwo+Pj4+Pj4gKwkJaWYgKHJldCkgewo+Pj4+Pj4gKwkJCXByX3dhcm5p bmcoInhlbmtiZDogY2FuJ3QgcmVxdWVzdCBtdWx0aS10b3VjaCIpOwo+Pj4+Pj4gKwkJCXRvdWNo ID0gMDsKPj4+Pj4+ICsJCX0KPj4+Pj4+ICsJfQo+Pj4+Pj4gKwo+Pj4+Pj4gICAJLyoga2V5Ym9h cmQgKi8KPj4+Pj4+ICAgCWtiZCA9IGlucHV0X2FsbG9jYXRlX2RldmljZSgpOwo+Pj4+Pj4gICAJ aWYgKCFrYmQpCj4+Pj4+PiBAQCAtMjA4LDYgKzI4Myw2NyBAQCBzdGF0aWMgaW50IHhlbmtiZF9w cm9iZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2LAo+Pj4+Pj4gICAJfQo+Pj4+Pj4gICAJaW5m by0+cHRyID0gcHRyOwo+Pj4+Pj4gKwkvKiBtdWx0aS10b3VjaCBkZXZpY2UgKi8KPj4+Pj4+ICsJ aWYgKHRvdWNoKSB7Cj4+Pj4+PiArCQlpbnQgbnVtX2NvbnQsIHdpZHRoLCBoZWlnaHQ7Cj4+Pj4+ PiArCj4+Pj4+PiArCQltdG91Y2ggPSBpbnB1dF9hbGxvY2F0ZV9kZXZpY2UoKTsKPj4+Pj4+ICsJ CWlmICghbXRvdWNoKQo+Pj4+Pj4gKwkJCWdvdG8gZXJyb3Jfbm9tZW07Cj4+Pj4+PiArCj4+Pj4+ PiArCQludW1fY29udCA9IHhlbmJ1c19yZWFkX3Vuc2lnbmVkKGluZm8tPnhiZGV2LT5ub2RlbmFt ZSwKPj4+Pj4+ICsJCQkJCQlYRU5LQkRfRklFTERfTVRfTlVNX0NPTlRBQ1RTLAo+Pj4+Pj4gKwkJ CQkJCTEpOwo+Pj4gU2hvdWxkIHdlIHJlZnVzZSBNVCBkZXZpY2VzIHdpdGggbnVtYmVyIG9mIGNv bnRhY3RzIGxlc3MgdGhhbiAyPwo+PiB3ZSBjYW4sIGJ1dCBJIHNlZSBubyBoYXJtIGluIDEuIHdo YXQgaXMgbW9yZSwgdGhpcyBtYXkKPj4gYWxsb3cgZ3Vlc3RzIHRvIGVtdWxhdGUgbW9yZSBwb2lu dGluZyBkZXZpY2VzCj4+IGJ1dCwgaWYgeW91IGluc2lzdCwgdGhlbiBJIHdpbGwgYWRkIGFwcHJv cHJpYXRlIGNvZGUgdG8KPj4gcmVqZWN0IGlmIG51bWJlciBvZiBjb250YWN0cyBpcyBsZXNzIHRo ZW4gMgo+Pj4+Pj4gKwkJd2lkdGggPSB4ZW5idXNfcmVhZF91bnNpZ25lZChpbmZvLT54YmRldi0+ bm9kZW5hbWUsCj4+Pj4+PiArCQkJCQkgICAgIFhFTktCRF9GSUVMRF9NVF9XSURUSCwKPj4+Pj4+ ICsJCQkJCSAgICAgWEVORkJfV0lEVEgpOwo+Pj4+Pj4gKwkJaGVpZ2h0ID0geGVuYnVzX3JlYWRf dW5zaWduZWQoaW5mby0+eGJkZXYtPm5vZGVuYW1lLAo+Pj4+Pj4gKwkJCQkJICAgICAgWEVOS0JE X0ZJRUxEX01UX0hFSUdIVCwKPj4+Pj4+ICsJCQkJCSAgICAgIFhFTkZCX0hFSUdIVCk7Cj4+Pj4+ IEN1cmlvdXMgd2h5IHlvdSBuZWVkIHNlcGFyYXRlIHBhcmFtZXRlcnMgaGVyZSB0b28uLi4KPj4+ PiBUaGlzIGlzIGJlY2F1c2UgbXQgcGFyYW1ldGVycyBhcmUgZGlmZmVyZW50IGZyb20gcHRyCj4+ Pj4gaW4gYSB3YXkgdGhhdCB0aGV5IGFyZSBjb25maWd1cmFibGUgcGVyIGZyb250IGRyaXZlcidz Cj4+Pj4gaW5zdGFuY2UgcmF0aGVyIHRoYW4gcGVyIGJhY2tlbmQsIGUuZy4gaW4gWGVuU3RvcmU6 Cj4+Pj4KPj4+PiAvbG9jYWwvZG9tYWluLzAvYmFja2VuZC92a2JkLzEvMC93aWR0aCA9ICIxOTIw Igo+Pj4+IC9sb2NhbC9kb21haW4vMC9iYWNrZW5kL3ZrYmQvMS8wL2hlaWdodCA9ICIxMDgwIgo+ Pj4+Cj4+Pj4gL2xvY2FsL2RvbWFpbi8xL2RldmljZS92a2JkLzAvbXVsdGktdG91Y2gtd2lkdGgg PSAiMTkyMCIKPj4+PiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZrYmQvMC9tdWx0aS10b3VjaC1o ZWlnaHQgPSAiMTA4MCIKPj4+PiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZrYmQvMC9tdWx0aS10 b3VjaC1udW0tY29udGFjdHMgPSAiMTAiCj4+Pj4KPj4+PiAvbG9jYWwvZG9tYWluLzEvZGV2aWNl L3ZrYmQvMS9tdWx0aS10b3VjaC13aWR0aCA9ICI4MDAiCj4+Pj4gL2xvY2FsL2RvbWFpbi8xL2Rl dmljZS92a2JkLzEvbXVsdGktdG91Y2gtaGVpZ2h0ID0gIjYwMCIKPj4+PiAvbG9jYWwvZG9tYWlu LzEvZGV2aWNlL3ZrYmQvMS9tdWx0aS10b3VjaC1udW0tY29udGFjdHMgPSAiMyIKPj4+Pgo+Pj4+ IFRoZSBtYWluIHJlYXNvbiBmb3Igc3VjaCBjb25maWd1cmF0aW9uIGlzIHRoYXQgeW91IGNhbgo+ Pj4+IGNvbmZpZ3VyZSBtdWx0aXBsZSBtdCBpbnB1dCBkZXZpY2VzIGV2ZW4gZm9yIHRoZSBzYW1l IGd1ZXN0Cj4+Pj4gd2l0aCBkaWZmZXJlbnQgcmVzb2x1dGlvbnMgd2hpY2ggbWF5IG5vdCBtYXRj aCB0aG9zZQo+Pj4+IGNvbmZpZ3VyZWQgZm9yIHB0ci4KPj4+PiAoSW4gbXkgdXNlLWNhc2UgSSB1 c2UgbmV3IGRpc3BsaWYgcHJvdG9jb2wgWzFdIGluIGNvbmp1bmN0aW9uCj4+Pj4gd2l0aCBtdCBp bnB1dCBkZXZpY2VzIGFuZCB0aGUgY29ycmVzcG9uZGluZyBiYWNrZW5kIGlzIG5vdAo+Pj4+IFFF TVUncyB4ZW5mYikKPj4+IEkgc2VlLgo+Pj4KPj4+PiBBcyB0byBtb2R1bGUgcGFyYW1ldGVycywg SSBhZGRlZCB0aG9zZSB0byBiZSBjb25zaXN0ZW50IHdpdGgKPj4+PiBwdHIgZGV2aWNlLiBEbyB5 b3UgdGhpbmsgd2UgY2FuIGxpdmUgd2l0aG91dCB0aGVtIGFuZAo+Pj4+IGRvIHlvdSB3YW50IG1l IHRvIHJlbW92ZSB0aGVtPwo+Pj4gWWVzLCBJIHRoaW5rIHdlIGJldHRlci4gSSBhbSBhbHNvIGNv bmZ1c2VkIGJ5IHRoZSB3YXkgeW91IGFyZSBoYW5kbGluZwo+Pj4gdGhlIG1vZHVsZSBwYXJhbWV0 ZXJzLiBJdCBsb29rcyB0byBtZSB5b3UgdXBkYXRlIHRoZW0gd2l0aCBkYXRhIHBhc3NlZAo+PiA+ ZnJvbSB0aGUgYmFja2VuZCwgYnV0IG5ldmVyIHVzZSB0aGUgZGF0YS4uLgo+PiBJIGhhdmUgcmVt b3ZlZCBtb2R1bGUgcGFyYW1ldGVycyAodGhlIG9ubHkgdXNlIG9mIHRob3NlCj4+IHdhcyB0byBi ZSBhYmxlIHRvIHNlZSBjb25maWd1cmVkIHdpZHRoIGFuZCBoZWlnaHQgb24KPj4gZ3Vlc3Qgc2lk ZSwgYnV0IHRoaXMgaXMgbWlub3IpCj4gZXZ0ZXN0IHdvdWxkIHNob3cgaXQgdG8geW91LiBPciB5 b3UgY2FuIHF1ZXJ5IGlucHV0IGRldmljZSB5b3Vyc2VsZgo+IChFVklPQ0dBQlMgaW90Y2wpLgp5 ZXMsIGlmIGVtYmVkZGVkIHN5c3RlbSAod2hpY2ggaXMgbXkgdGFyZ2V0KSBoYXMgZXZ0ZXN0CmJ1 dCBpdCBkZWZpbml0ZWx5IGRvZXMgaGF2ZSBpb2N0bCB0aG91Z2gKPj4+Pj4+ICsKPj4+Pj4+ICsJ CW10b3VjaC0+bmFtZSA9ICJYZW4gVmlydHVhbCBNdWx0aS10b3VjaCI7Cj4+Pj4+PiArCQltdG91 Y2gtPnBoeXMgPSBpbmZvLT5waHlzOwo+Pj4+Pj4gKwkJbXRvdWNoLT5pZC5idXN0eXBlID0gQlVT X1BDSTsKPj4+Pj4+ICsJCW10b3VjaC0+aWQudmVuZG9yID0gMHg1ODUzOwo+Pj4+Pj4gKwkJbXRv dWNoLT5pZC5wcm9kdWN0ID0gMHhmZmZkOwo+Pj4+Pj4gKwo+Pj4+Pj4gKwkJX19zZXRfYml0KEVW X0FCUywgbXRvdWNoLT5ldmJpdCk7Cj4+Pj4+PiArCQlfX3NldF9iaXQoRVZfS0VZLCBtdG91Y2gt PmV2Yml0KTsKPj4+Pj4+ICsJCV9fc2V0X2JpdChCVE5fVE9VQ0gsIG10b3VjaC0+a2V5Yml0KTsK PiBQbGVhc2UgbWFrZSBpdAo+IAkJaW5wdXRfc2V0X2NhcGFiaWxpdHkobXRvdWNoLCBFVl9LRVks IEJUTl9UT1VDSCk7Cj4KPiBhbmQgZHJvcCBhbGwgX19zZXRfYml0KClzLgpkb25lLCB0aGFuayB5 b3UKPj4+Pj4+ICsKPj4+Pj4+ICsJCWlucHV0X3NldF9hYnNfcGFyYW1zKG10b3VjaCwgQUJTX1gs Cj4+Pj4+PiArCQkJCSAgICAgMCwgd2lkdGgsIDAsIDApOwo+Pj4+Pj4gKwkJaW5wdXRfc2V0X2Fi c19wYXJhbXMobXRvdWNoLCBBQlNfWSwKPj4+Pj4+ICsJCQkJICAgICAwLCBoZWlnaHQsIDAsIDAp Owo+Pj4+Pj4gKwkJaW5wdXRfc2V0X2Fic19wYXJhbXMobXRvdWNoLCBBQlNfUFJFU1NVUkUsCj4+ Pj4+PiArCQkJCSAgICAgMCwgMjU1LCAwLCAwKTsKPj4+Pj4+ICsKPj4+Pj4+ICsJCWlucHV0X3Nl dF9hYnNfcGFyYW1zKG10b3VjaCwgQUJTX01UX1RPVUNIX01BSk9SLAo+Pj4+Pj4gKwkJCQkgICAg IDAsIDI1NSwgMCwgMCk7Cj4+Pj4+PiArCQlpbnB1dF9zZXRfYWJzX3BhcmFtcyhtdG91Y2gsIEFC U19NVF9QT1NJVElPTl9YLAo+Pj4+Pj4gKwkJCQkgICAgIDAsIHdpZHRoLCAwLCAwKTsKPj4+Pj4+ ICsJCWlucHV0X3NldF9hYnNfcGFyYW1zKG10b3VjaCwgQUJTX01UX1BPU0lUSU9OX1ksCj4+Pj4+ PiArCQkJCSAgICAgMCwgaGVpZ2h0LCAwLCAwKTsKPj4+Pj4+ICsJCWlucHV0X3NldF9hYnNfcGFy YW1zKG10b3VjaCwgQUJTX01UX1BSRVNTVVJFLAo+Pj4+Pj4gKwkJCQkgICAgIDAsIDI1NSwgMCwg MCk7Cj4+Pj4+PiArCj4+Pj4+PiArCQlpbnB1dF9tdF9pbml0X3Nsb3RzKG10b3VjaCwgbnVtX2Nv bnQsIDApOwo+Pj4gV2UgbmVlZCBlcnJvciBoYW5kbGluZyBoZXJlLgo+PiBkb25lCj4+PiAgIEFs c28sIGl0IHdvdWxkIGJlIG5pY2UgaWYgd2Ugc2V0IElOUFVUX01UXyoKPj4+IGZsYWdzIGhlcmUs IHNvIHRoYXQgdXNlcnNwYWNlIGhhZCBiZXR0ZXIgY2hhbmNlIG9mIGZpZ3VyaW5nIGhvdyB0bwo+ Pj4gaGFuZGxlIHRoZSBkZXZpY2UuCj4+IGRvbmUsIEkgd2lsbCB1c2UgSU5QVVRfTVRfRElSRUNU IHwgSU5QVVRfTVRfRFJPUF9VTlVTRUQKPiBEb2VzIHRoYXQgbWVhbiB0aGF0IHlvdXIgYmFja2Vu ZCBkb2VzIG5vdCByZWxpYWJseSByZXBvcnQgcmVsZWFzZSBvZgo+IGNvbnRhY3RzPwp0aGVyZSBp cyBhIHJpbmcgYnVmZmVyIGJldHdlZW4gaG9zdCBhbmQgZ3Vlc3QsCnNvIHRoZXJlIGlzIGFsd2F5 cyBhIHBvc3NpYmlsaXR5IChyYXRoZXIgc21hbGwgSSBiZWxpZXZlKQp0aGF0IHRoZSBidWZmZXIg b3ZlcnJ1bnMuIERvIHlvdSB0aGluayBJIG5lZWQgSU5QVVRfTVRfRFJPUF9VTlVTRUQgb3IKd2Ug Y2FuIGxpdmUgd2l0aG91dCBpdD8KPgo+IFRoYW5rcy4KPgo+Pj4+Pj4gKwo+Pj4+Pj4gKwkJbXRv dWNoX3NpemVbS1BBUkFNX01UX1hdID0gd2lkdGg7Cj4+Pj4+PiArCQltdG91Y2hfc2l6ZVtLUEFS QU1fTVRfWV0gPSBoZWlnaHQ7Cj4+Pj4+PiArCQlpbmZvLT5tdG91Y2hfY3VyX2NvbnRhY3RfaWQg PSAtMTsKPj4+Pj4+ICsKPj4+Pj4+ICsJCXJldCA9IGlucHV0X3JlZ2lzdGVyX2RldmljZShtdG91 Y2gpOwo+Pj4+Pj4gKwkJaWYgKHJldCkgewo+Pj4+Pj4gKwkJCWlucHV0X2ZyZWVfZGV2aWNlKG10 b3VjaCk7Cj4+Pj4+PiArCQkJeGVuYnVzX2Rldl9mYXRhbChpbmZvLT54YmRldiwgcmV0LAo+Pj4+ Pj4gKwkJCQkJICJpbnB1dF9yZWdpc3Rlcl9kZXZpY2UobXRvdWNoKSIpOwo+Pj4+Pj4gKwkJCWdv dG8gZXJyb3I7Cj4+Pj4+PiArCQl9Cj4+Pj4+PiArCQlpbmZvLT5tdG91Y2hfY3VyX2NvbnRhY3Rf aWQgPSAtMTsKPj4+Pj4+ICsJCWluZm8tPm10b3VjaCA9IG10b3VjaDsKPj4+Pj4+ICsJfQo+Pj4+ Pj4gKwo+Pj4+Pj4gICAJcmV0ID0geGVua2JkX2Nvbm5lY3RfYmFja2VuZChkZXYsIGluZm8pOwo+ Pj4+Pj4gICAJaWYgKHJldCA8IDApCj4+Pj4+PiAgIAkJZ290byBlcnJvcjsKPj4+Pj4+IEBAIC0y NDAsNiArMzc2LDggQEAgc3RhdGljIGludCB4ZW5rYmRfcmVtb3ZlKHN0cnVjdCB4ZW5idXNfZGV2 aWNlICpkZXYpCj4+Pj4+PiAgIAkJaW5wdXRfdW5yZWdpc3Rlcl9kZXZpY2UoaW5mby0+a2JkKTsK Pj4+Pj4+ICAgCWlmIChpbmZvLT5wdHIpCj4+Pj4+PiAgIAkJaW5wdXRfdW5yZWdpc3Rlcl9kZXZp Y2UoaW5mby0+cHRyKTsKPj4+Pj4+ICsJaWYgKGluZm8tPm10b3VjaCkKPj4+Pj4+ICsJCWlucHV0 X3VucmVnaXN0ZXJfZGV2aWNlKGluZm8tPm10b3VjaCk7Cj4+Pj4+PiAgIAlmcmVlX3BhZ2UoKHVu c2lnbmVkIGxvbmcpaW5mby0+cGFnZSk7Cj4+Pj4+PiAgIAlrZnJlZShpbmZvKTsKPj4+Pj4+ICAg CXJldHVybiAwOwo+Pj4+Pj4gLS0gCj4+Pj4+PiAyLjcuNAo+Pj4+Pj4KPj4+IFRoYW5rcy4KPj4+ Cj4+IEZvciB5b3VyIGNvbnZlbmllbmNlIEkgYW0gYXR0YWNoaW5nIHRoZSBjaGFuZ2VzIEkgYW0g YWJvdXQKPj4gdG8gcHV0IGludG8gdjEgb2YgdGhlIHNlcmllczoKPj4gICAtIHJlbW92ZSB1bmxp a2VseQo+PiAgIC0gcmVtb3ZlIG1vZHVsZSBwYXJhbWV0ZXJzCj4+ICAgLSBlcnJvciBoYW5kbGlu ZyBmb3IgaW5wdXRfbXRfaW5pdF9zbG90cwo+PiAgIC0gbGV0IHVzZXJzcGFjZSBiZXR0ZXIgY2hh bmNlIG9mIGZpZ3VyaW5nIGhvdyB0byBoYW5kbGUgdGhlIGRldmljZQo+Pgo+PiBUaGFuayB5b3Us Cj4+IE9sZWtzYW5kcgo+PiAgRnJvbSBlNzY1MDZjNTU4NDZlMmJiNGNjYmFmYTQzMDY0MmUzNjg2 NDNlNTFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQo+PiBGcm9tOiBPbGVrc2FuZHIgQW5kcnVz aGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hjaGVua29AZXBhbS5jb20+Cj4+IERhdGU6IFR1ZSwg MzAgTWF5IDIwMTcgMTQ6NDk6NTggKzAzMDAKPj4gU3ViamVjdDogW1BBVENIXSBGaXg6IHJlbW92 ZSB1bmxpa2VseSBGaXg6IHJlbW92ZSBtb2R1bGUgcGFyYW10ZXJzIEZpeDogZXJyb3IKPj4gICBo YW5kbGluZyBmb3IgaW5wdXRfbXRfaW5pdF9zbG90cyBGaXg6IGxldCB1c2Vyc3BhY2UgYmV0dGVy IGNoYW5jZSBvZiBmaWd1cmluZwo+PiAgIGhvdyB0byBoYW5kbGUgdGhlIGRldmljZQo+Pgo+PiBT aWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgQW5kcnVzaGNoZW5rbyA8b2xla3NhbmRyX2FuZHJ1c2hj aGVua29AZXBhbS5jb20+Cj4+IC0tLQo+PiAgIGRyaXZlcnMvaW5wdXQvbWlzYy94ZW4ta2JkZnJv bnQuYyB8IDIxICsrKysrKysrKystLS0tLS0tLS0tLQo+PiAgIDEgZmlsZSBjaGFuZ2VkLCAxMCBp bnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv aW5wdXQvbWlzYy94ZW4ta2JkZnJvbnQuYyBiL2RyaXZlcnMvaW5wdXQvbWlzYy94ZW4ta2JkZnJv bnQuYwo+PiBpbmRleCA4MjY2ZWY5NDhhMDYuLjI3M2Q3ODZhMTljZCAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9pbnB1dC9taXNjL3hlbi1rYmRmcm9udC5jCj4+ICsrKyBiL2RyaXZlcnMvaW5wdXQv bWlzYy94ZW4ta2JkZnJvbnQuYwo+PiBAQCAtNTEsMTIgKzUxLDYgQEAgbW9kdWxlX3BhcmFtX2Fy cmF5KHB0cl9zaXplLCBpbnQsIE5VTEwsIDA0NDQpOwo+PiAgIE1PRFVMRV9QQVJNX0RFU0MocHRy X3NpemUsCj4+ICAgCSJQb2ludGluZyBkZXZpY2Ugd2lkdGgsIGhlaWdodCBpbiBwaXhlbHMgKGRl ZmF1bHQgODAwLDYwMCkiKTsKPj4gICAKPj4gLWVudW0geyBLUEFSQU1fTVRfWCwgS1BBUkFNX01U X1ksIEtQQVJBTV9NVF9DTlQgfTsKPj4gLXN0YXRpYyBpbnQgbXRvdWNoX3NpemVbS1BBUkFNX01U X0NOVF0gPSB7IFhFTkZCX1dJRFRILCBYRU5GQl9IRUlHSFQgfTsKPj4gLW1vZHVsZV9wYXJhbV9h cnJheShtdG91Y2hfc2l6ZSwgaW50LCBOVUxMLCAwNDQ0KTsKPj4gLU1PRFVMRV9QQVJNX0RFU0Mo cHRyX3NpemUsCj4+IC0JIk11bHRpLXRvdWNoIGRldmljZSB3aWR0aCwgaGVpZ2h0IGluIHBpeGVs cyAoZGVmYXVsdCA4MDAsNjAwKSIpOwo+PiAtCj4+ICAgc3RhdGljIGludCB4ZW5rYmRfcmVtb3Zl KHN0cnVjdCB4ZW5idXNfZGV2aWNlICopOwo+PiAgIHN0YXRpYyBpbnQgeGVua2JkX2Nvbm5lY3Rf YmFja2VuZChzdHJ1Y3QgeGVuYnVzX2RldmljZSAqLCBzdHJ1Y3QgeGVua2JkX2luZm8gKik7Cj4+ ICAgc3RhdGljIHZvaWQgeGVua2JkX2Rpc2Nvbm5lY3RfYmFja2VuZChzdHJ1Y3QgeGVua2JkX2lu Zm8gKik7Cj4+IEBAIC0xMTQsOCArMTA4LDggQEAgc3RhdGljIGlycXJldHVybl90IGlucHV0X2hh bmRsZXIoaW50IHJxLCB2b2lkICpkZXZfaWQpCj4+ICAgCQkJZGV2ID0gaW5mby0+bXRvdWNoOwo+ PiAgIAkJCWlmICh1bmxpa2VseSghZGV2KSkKPj4gICAJCQkJYnJlYWs7Cj4+IC0JCQlpZiAodW5s aWtlbHkoZXZlbnQtPm10b3VjaC5jb250YWN0X2lkICE9Cj4+IC0JCQkJCWluZm8tPm10b3VjaF9j dXJfY29udGFjdF9pZCkpIHsKPj4gKwkJCWlmIChldmVudC0+bXRvdWNoLmNvbnRhY3RfaWQgIT0K Pj4gKwkJCQkJaW5mby0+bXRvdWNoX2N1cl9jb250YWN0X2lkKSB7Cj4+ICAgCQkJCWluZm8tPm10 b3VjaF9jdXJfY29udGFjdF9pZCA9Cj4+ICAgCQkJCQlldmVudC0+bXRvdWNoLmNvbnRhY3RfaWQ7 Cj4+ICAgCQkJCWlucHV0X210X3Nsb3QoZGV2LCBldmVudC0+bXRvdWNoLmNvbnRhY3RfaWQpOwo+ PiBAQCAtMzI3LDEwICszMjEsMTUgQEAgc3RhdGljIGludCB4ZW5rYmRfcHJvYmUoc3RydWN0IHhl bmJ1c19kZXZpY2UgKmRldiwKPj4gICAJCWlucHV0X3NldF9hYnNfcGFyYW1zKG10b3VjaCwgQUJT X01UX1BSRVNTVVJFLAo+PiAgIAkJCQkgICAgIDAsIDI1NSwgMCwgMCk7Cj4+ICAgCj4+IC0JCWlu cHV0X210X2luaXRfc2xvdHMobXRvdWNoLCBudW1fY29udCwgMCk7Cj4+ICsJCXJldCA9IGlucHV0 X210X2luaXRfc2xvdHMobXRvdWNoLCBudW1fY29udCwKPj4gKwkJCQlJTlBVVF9NVF9ESVJFQ1Qg fCBJTlBVVF9NVF9EUk9QX1VOVVNFRCk7Cj4+ICsJCWlmIChyZXQpIHsKPj4gKwkJCWlucHV0X2Zy ZWVfZGV2aWNlKG10b3VjaCk7Cj4+ICsJCQl4ZW5idXNfZGV2X2ZhdGFsKGluZm8tPnhiZGV2LCBy ZXQsCj4+ICsJCQkJCSAiaW5wdXRfbXRfaW5pdF9zbG90cyIpOwo+PiArCQkJZ290byBlcnJvcjsK Pj4gKwkJfQo+PiAgIAo+PiAtCQltdG91Y2hfc2l6ZVtLUEFSQU1fTVRfWF0gPSB3aWR0aDsKPj4g LQkJbXRvdWNoX3NpemVbS1BBUkFNX01UX1ldID0gaGVpZ2h0Owo+PiAgIAkJaW5mby0+bXRvdWNo X2N1cl9jb250YWN0X2lkID0gLTE7Cj4+ICAgCj4+ICAgCQlyZXQgPSBpbnB1dF9yZWdpc3Rlcl9k ZXZpY2UobXRvdWNoKTsKPj4gLS0gCj4+IDIuNy40Cj4+Cj4KVGhhbmsgeW91LApPbGVrc2FuZHIK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=