From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= Subject: Re: [PATCH 1/2] amdgpu: cleanup public interface Date: Tue, 28 Apr 2015 15:44:42 +0200 Message-ID: <553F8ECA.4060305@vodafone.de> References: <1429804411-2626-1-git-send-email-deathsimple@vodafone.de> 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 9CB1A72072 for ; Tue, 28 Apr 2015 06:44:52 -0700 (PDT) Received: from localhost (localhost.localdomain [127.0.0.1]) by pegasos-out.vodafone.de (Rohrpostix1 Daemon) with ESMTP id 196482607F2 for ; Tue, 28 Apr 2015 15:44:51 +0200 (CEST) Received: from pegasos-out.vodafone.de ([127.0.0.1]) by localhost (rohrpostix1.prod.vfnet.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rmHlrzaefqXS for ; Tue, 28 Apr 2015 15:44:47 +0200 (CEST) In-Reply-To: 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?TWFyZWsgT2zFocOhaw==?= , Alex Deucher Cc: Maling list - DRI developers List-Id: dri-devel@lists.freedesktop.org SGF2ZW4ndCBJIENDZWQgdGhlIGxpc3QgYXMgd2VsbD8KCklmIG5vdCB0aGVuIHNvcnJ5IHRoYXQg d2FzIG15IGZhdWx0LApDaHJpc3RpYW4uCgpPbiAyOC4wNC4yMDE1IDE1OjQxLCBNYXJlayBPbMWh w6FrIHdyb3RlOgo+IEhpIEFsZXgsCj4KPiBIZSBzZW50IHRoZW0gdG8gbWUuIEkndmUgYXBwbGll ZCB0aGVtIHRvIG15IHRyZWU6Cj4KPiBodHRwOi8vY2dpdC5mcmVlZGVza3RvcC5vcmcvfm1hcmVr by9tZXNhL2xvZy8/aD1hbWRncHUKPgo+IE1hcmVrCj4KPiBPbiBGcmksIEFwciAyNCwgMjAxNSBh dCA1OjM4IFBNLCBBbGV4IERldWNoZXIgPGFsZXhkZXVjaGVyQGdtYWlsLmNvbT4gd3JvdGU6Cj4+ IE9uIFRodSwgQXByIDIzLCAyMDE1IGF0IDExOjUzIEFNLCBDaHJpc3RpYW4gS8O2bmlnCj4+IDxk ZWF0aHNpbXBsZUB2b2RhZm9uZS5kZT4gd3JvdGU6Cj4+PiBGcm9tOiBDaHJpc3RpYW4gS8O2bmln IDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4+Pgo+Pj4gUmVtb3ZlIHRoZSBtb3N0bHkgdW51 c2VkIGRldmljZSBwYXJhbWV0ZXIsIGZvciB0aGUgZmV3IGNhc2VzCj4+PiB3aGVyZSB3ZSByZWFs bHkgbmVlZCBpdCBrZWVwIGEgY29weSBpbiB0aGUgY29udGV4dCBzdHJ1Y3R1cmUuCj4+IEFyZSB5 b3UgZ29pbmcgdG8gc2VuZCBvdXQgdGhlIG1lc2EgcGF0Y2hlcyBhcyB3ZWxsPwo+Pgo+PiBBbGV4 Cj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmln QGFtZC5jb20+Cj4+PiBSZXZpZXdlZC1ieTogSmFtbXkgWmhvdSA8SmFtbXkuWmhvdUBhbWQuY29t Pgo+Pj4gUmV2aWV3ZWQtYnk6IEFsZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1kLmNv bT4KPj4+IC0tLQo+Pj4gICBhbWRncHUvYW1kZ3B1LmggICAgICAgICAgICB8ICAyNCArKystLS0t LS0tCj4+PiAgIGFtZGdwdS9hbWRncHVfY3MuYyAgICAgICAgIHwgMTE1ICsrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gICBhbWRncHUvYW1kZ3B1X2ludGVy bmFsLmggICB8ICAgMiArCj4+PiAgIHRlc3RzL2FtZGdwdS9iYXNpY190ZXN0cy5jIHwgIDMzICsr KysrKystLS0tLS0KPj4+ICAgdGVzdHMvYW1kZ3B1L2NzX3Rlc3RzLmMgICAgfCAgMTQgKysrLS0t Cj4+PiAgIDUgZmlsZXMgY2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgMTEwIGRlbGV0aW9ucygt KQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9hbWRncHUvYW1kZ3B1LmggYi9hbWRncHUvYW1kZ3B1LmgK Pj4+IGluZGV4IDkwZGMzM2MuLjdhODU5ODIgMTAwNjQ0Cj4+PiAtLS0gYS9hbWRncHUvYW1kZ3B1 LmgKPj4+ICsrKyBiL2FtZGdwdS9hbWRncHUuaAo+Pj4gQEAgLTg4Miw3ICs4ODIsNiBAQCBpbnQg YW1kZ3B1X2NzX2N0eF9jcmVhdGUoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAo+Pj4gICAgKgo+ Pj4gICAgKiBEZXN0cm95IEdQVSBleGVjdXRpb24gY29udGV4dCB3aGVuIG5vdCBuZWVkZWQgYW55 IG1vcmUKPj4+ICAgICoKPj4+IC0gKiBccGFyYW0gICBkZXYgICAgICAgICAgICAtIFxjIFtpbl0g RGV2aWNlIGhhbmRsZS4gU2VlICNhbWRncHVfZGV2aWNlX2luaXRpYWxpemUoKQo+Pj4gICAgKiBc cGFyYW0gICBjb250ZXh0IC0gXGMgW2luXSBHUFUgQ29udGV4dCBoYW5kbGUKPj4+ICAgICoKPj4+ ICAgICogXHJldHVybiAgIDAgb24gc3VjY2Vzc1xuCj4+PiBAQCAtODkyLDEzICs4OTEsMTEgQEAg aW50IGFtZGdwdV9jc19jdHhfY3JlYXRlKGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKPj4+ICAg ICogXHNhIGFtZGdwdV9jc19jdHhfY3JlYXRlKCkKPj4+ICAgICoKPj4+ICAgKi8KPj4+IC1pbnQg YW1kZ3B1X2NzX2N0eF9mcmVlKGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKPj4+IC0gICAgICAg ICAgICAgICAgICAgICAgYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHQpOwo+Pj4gK2ludCBh bWRncHVfY3NfY3R4X2ZyZWUoYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHQpOwo+Pj4KPj4+ ICAgLyoqCj4+PiAgICAqIFF1ZXJ5IHJlc2V0IHN0YXRlIGZvciB0aGUgc3BlY2lmaWMgR1BVIENv bnRleHQKPj4+ICAgICoKPj4+IC0gKiBccGFyYW0gICBkZXYgICAgICAgICAgICAtIFxjIFtpbl0g RGV2aWNlIGhhbmRsZS4gU2VlICNhbWRncHVfZGV2aWNlX2luaXRpYWxpemUoKQo+Pj4gICAgKiBc cGFyYW0gICBjb250ZXh0IC0gXGMgW2luXSAgR1BVIENvbnRleHQgaGFuZGxlCj4+PiAgICAqIFxw YXJhbSAgIHN0YXRlICAgLSBcYyBbb3V0XSBSZXNldCBzdGF0ZSBzdGF0dXMKPj4+ICAgICoKPj4+ IEBAIC05MDksOCArOTA2LDcgQEAgaW50IGFtZGdwdV9jc19jdHhfZnJlZShhbWRncHVfZGV2aWNl X2hhbmRsZSBkZXYsCj4+PiAgICAqIFxzYSBhbWRncHVfY3NfY3R4X2NyZWF0ZSgpCj4+PiAgICAq Cj4+PiAgICovCj4+PiAtaW50IGFtZGdwdV9jc19xdWVyeV9yZXNldF9zdGF0ZShhbWRncHVfZGV2 aWNlX2hhbmRsZSBkZXYsCj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtZGdw dV9jb250ZXh0X2hhbmRsZSBjb250ZXh0LAo+Pj4gK2ludCBhbWRncHVfY3NfcXVlcnlfcmVzZXRf c3RhdGUoYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHQsCj4+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBlbnVtIGFtZGdwdV9jc19jdHhfcmVzZXRfc3RhdGUgKnN0YXRlKTsK Pj4+Cj4+Pgo+Pj4gQEAgLTkyNCw3ICs5MjAsNiBAQCBpbnQgYW1kZ3B1X2NzX3F1ZXJ5X3Jlc2V0 X3N0YXRlKGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKPj4+ICAgICogQWxsb2NhdGUgbWVtb3J5 IHRvIGJlIGZpbGxlZCB3aXRoIFBNNCBwYWNrZXRzIGFuZCBiZSBzZXJ2ZWQgYXMgdGhlIGZpcnN0 Cj4+PiAgICAqIGVudHJ5IHBvaW50IG9mIGV4ZWN1dGlvbiAoYS5rLmEuIEluZGlyZWN0IEJ1ZmZl cikKPj4+ICAgICoKPj4+IC0gKiBccGFyYW0gICBkZXYgICAgICAgICAgICAtIFxjIFtpbl0gRGV2 aWNlIGhhbmRsZS4gU2VlICNhbWRncHVfZGV2aWNlX2luaXRpYWxpemUoKQo+Pj4gICAgKiBccGFy YW0gICBjb250ZXh0IC0gXGMgW2luXSAgR1BVIENvbnRleHQgd2hpY2ggd2lsbCB1c2UgSUIKPj4+ ICAgICogXHBhcmFtICAgaWJfc2l6ZSAtIFxjIFtpbl0gIFNpemUgb2YgYWxsb2NhdGlvbgo+Pj4g ICAgKiBccGFyYW0gICBvdXRwdXQgIC0gXGMgW291dF0gUG9pbnRlciB0byBzdHJ1Y3R1cmUgdG8g Z2V0IGluZm9ybWF0aW9uIGFib3V0Cj4+PiBAQCAtOTM3LDggKzkzMiw3IEBAIGludCBhbWRncHVf Y3NfcXVlcnlfcmVzZXRfc3RhdGUoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAo+Pj4gICAgKiBc c2EgYW1kZ3B1X2NzX2ZyZWVfaWIoKQo+Pj4gICAgKgo+Pj4gICAqLwo+Pj4gLWludCBhbWRncHVf Y3NfYWxsb2NfaWIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAo+Pj4gLSAgICAgICAgICAgICAg ICAgICAgICBhbWRncHVfY29udGV4dF9oYW5kbGUgY29udGV4dCwKPj4+ICtpbnQgYW1kZ3B1X2Nz X2FsbG9jX2liKGFtZGdwdV9jb250ZXh0X2hhbmRsZSBjb250ZXh0LAo+Pj4gICAgICAgICAgICAg ICAgICAgICAgICAgZW51bSBhbWRncHVfY3NfaWJfc2l6ZSBpYl9zaXplLAo+Pj4gICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IGFtZGdwdV9jc19pYl9hbGxvY19yZXN1bHQgKm91dHB1dCk7 Cj4+Pgo+Pj4gQEAgLTk0Niw4ICs5NDAsNiBAQCBpbnQgYW1kZ3B1X2NzX2FsbG9jX2liKGFtZGdw dV9kZXZpY2VfaGFuZGxlIGRldiwKPj4+ICAgICogSWYgVU1EIGhhcyBhbGxvY2F0ZXMgSUJzIHdo aWNoIGRvZXNu4oCZdCBuZWVkIGFueSBtb3JlIHRoYW4gdGhvc2UgSUJzIG11c3QKPj4+ICAgICog YmUgZXhwbGljaXRseSBmcmVlZAo+Pj4gICAgKgo+Pj4gLSAqIFxwYXJhbSAgIGRldiAgICAgICAg ICAgIC0gXGMgW2luXSBEZXZpY2UgaGFuZGxlLiBTZWUgI2FtZGdwdV9kZXZpY2VfaW5pdGlhbGl6 ZSgpCj4+PiAtICogXHBhcmFtICAgY29udGV4dCAtIFxjIFtpbl0gR1BVIENvbnRleHQgY29udGFp bmluZyBJQgo+Pj4gICAgKiBccGFyYW0gICBoYW5kbGUgIC0gXGMgW2luXSBJQiBoYW5kbGUKPj4+ ICAgICoKPj4+ICAgICogXHJldHVybiAgIDAgb24gc3VjY2Vzc1xuCj4+PiBAQCAtOTYwLDkgKzk1 Miw3IEBAIGludCBhbWRncHVfY3NfYWxsb2NfaWIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAo+ Pj4gICAgKiBcc2EgYW1kZ3B1X2NzX2FsbG9jX2liKCkKPj4+ICAgICoKPj4+ICAgKi8KPj4+IC1p bnQgYW1kZ3B1X2NzX2ZyZWVfaWIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAo+Pj4gLSAgICAg ICAgICAgICAgICAgICAgIGFtZGdwdV9jb250ZXh0X2hhbmRsZSBjb250ZXh0LAo+Pj4gLSAgICAg ICAgICAgICAgICAgICAgIGFtZGdwdV9pYl9oYW5kbGUgaGFuZGxlKTsKPj4+ICtpbnQgYW1kZ3B1 X2NzX2ZyZWVfaWIoYW1kZ3B1X2liX2hhbmRsZSBoYW5kbGUpOwo+Pj4KPj4+ICAgLyoqCj4+PiAg ICAqIFNlbmQgcmVxdWVzdCB0byBzdWJtaXQgY29tbWFuZCBidWZmZXJzIHRvIGhhcmR3YXJlLgo+ Pj4gQEAgLTEwMTEsOCArMTAwMSw3IEBAIGludCBhbWRncHVfY3NfZnJlZV9pYihhbWRncHVfZGV2 aWNlX2hhbmRsZSBkZXYsCj4+PiAgICAqICAgICBhbWRncHVfY3NfcXVlcnlfZmVuY2Vfc3RhdHVz KCkKPj4+ICAgICoKPj4+ICAgKi8KPj4+IC1pbnQgYW1kZ3B1X2NzX3N1Ym1pdChhbWRncHVfZGV2 aWNlX2hhbmRsZSAgZGV2LAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgYW1kZ3B1X2NvbnRleHRf aGFuZGxlIGNvbnRleHQsCj4+PiAraW50IGFtZGdwdV9jc19zdWJtaXQoYW1kZ3B1X2NvbnRleHRf aGFuZGxlIGNvbnRleHQsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgZmxhZ3Ms Cj4+PiAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGFtZGdwdV9jc19yZXF1ZXN0ICppYnNf cmVxdWVzdCwKPj4+ICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBudW1iZXJfb2ZfcmVx dWVzdHMsCj4+PiBAQCAtMTAzOCw4ICsxMDI3LDcgQEAgaW50IGFtZGdwdV9jc19zdWJtaXQoYW1k Z3B1X2RldmljZV9oYW5kbGUgIGRldiwKPj4+ICAgICoKPj4+ICAgICogXHNhIGFtZGdwdV9jc19z dWJtaXQoKQo+Pj4gICAqLwo+Pj4gLWludCBhbWRncHVfY3NfcXVlcnlfZmVuY2Vfc3RhdHVzKGFt ZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBhbWRncHVfY3NfcXVlcnlfZmVuY2UgKmZlbmNlLAo+Pj4gK2ludCBhbWRncHVf Y3NfcXVlcnlfZmVuY2Vfc3RhdHVzKHN0cnVjdCBhbWRncHVfY3NfcXVlcnlfZmVuY2UgKmZlbmNl LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpleHBpcmVk KTsKPj4+Cj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2FtZGdwdS9hbWRncHVfY3MuYyBiL2FtZGdwdS9h bWRncHVfY3MuYwo+Pj4gaW5kZXggNjE0OTA0ZC4uZDZiNGIyZCAxMDA2NDQKPj4+IC0tLSBhL2Ft ZGdwdS9hbWRncHVfY3MuYwo+Pj4gKysrIGIvYW1kZ3B1L2FtZGdwdV9jcy5jCj4+PiBAQCAtNDIs OCArNDIsNyBAQAo+Pj4gICAgKgo+Pj4gICAgKiBccmV0dXJuICAwIG9uIHN1Y2Nlc3Mgb3RoZXJ3 aXNlIFBPU0lYIEVycm9yIGNvZGUKPj4+ICAgKi8KPj4+IC1zdGF0aWMgaW50IGFtZGdwdV9jc19j cmVhdGVfaWIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAo+Pj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFtZGdwdV9jb250ZXh0X2hhbmRsZSBjb250ZXh0LAo+Pj4gK3N0YXRpYyBp bnQgYW1kZ3B1X2NzX2NyZWF0ZV9pYihhbWRncHVfY29udGV4dF9oYW5kbGUgY29udGV4dCwKPj4+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBhbWRncHVfY3NfaWJfc2l6ZSBp Yl9zaXplLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbWRncHVfaWJfaGFu ZGxlICppYikKPj4+ICAgewo+Pj4gQEAgLTc5LDcgKzc4LDcgQEAgc3RhdGljIGludCBhbWRncHVf Y3NfY3JlYXRlX2liKGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKPj4+Cj4+PiAgICAgICAgICBh bGxvY19idWZmZXIucHJlZmVycmVkX2hlYXAgPSBBTURHUFVfR0VNX0RPTUFJTl9HVFQ7Cj4+Pgo+ Pj4gLSAgICAgICByID0gYW1kZ3B1X2JvX2FsbG9jKGRldiwKPj4+ICsgICAgICAgciA9IGFtZGdw dV9ib19hbGxvYyhjb250ZXh0LT5kZXYsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZhbGxvY19idWZmZXIsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpbmZvKTsK Pj4+ICAgICAgICAgIGlmIChyKQo+Pj4gQEAgLTk4LDYgKzk3LDcgQEAgc3RhdGljIGludCBhbWRn cHVfY3NfY3JlYXRlX2liKGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKPj4+ICAgICAgICAgICAg ICAgICAgcmV0dXJuIC1FTk9NRU07Cj4+PiAgICAgICAgICB9Cj4+Pgo+Pj4gKyAgICAgICBuZXdf aWItPmNvbnRleHQgPSBjb250ZXh0Owo+Pj4gICAgICAgICAgbmV3X2liLT5idWZfaGFuZGxlID0g aW5mby5idWZfaGFuZGxlOwo+Pj4gICAgICAgICAgbmV3X2liLT5jcHUgPSBjcHU7Cj4+PiAgICAg ICAgICBuZXdfaWItPnZpcnR1YWxfbWNfYmFzZV9hZGRyZXNzID0gaW5mby52aXJ0dWFsX21jX2Jh c2VfYWRkcmVzczsKPj4+IEBAIC0xMTQsMTAgKzExNCwxMCBAQCBzdGF0aWMgaW50IGFtZGdwdV9j c19jcmVhdGVfaWIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAo+Pj4gICAgKgo+Pj4gICAgKiBc cmV0dXJuICAwIG9uIHN1Y2Nlc3Mgb3RoZXJ3aXNlIFBPU0lYIEVycm9yIGNvZGUKPj4+ICAgKi8K Pj4+IC1zdGF0aWMgaW50IGFtZGdwdV9jc19kZXN0cm95X2liKGFtZGdwdV9kZXZpY2VfaGFuZGxl IGRldiwKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1kZ3B1X2liX2hhbmRs ZSBpYikKPj4+ICtzdGF0aWMgaW50IGFtZGdwdV9jc19kZXN0cm95X2liKGFtZGdwdV9pYl9oYW5k bGUgaWIpCj4+PiAgIHsKPj4+ICAgICAgICAgIGludCByOwo+Pj4gKwo+Pj4gICAgICAgICAgciA9 IGFtZGdwdV9ib19jcHVfdW5tYXAoaWItPmJ1Zl9oYW5kbGUpOwo+Pj4gICAgICAgICAgaWYgKHIp Cj4+PiAgICAgICAgICAgICAgICAgIHJldHVybiByOwo+Pj4gQEAgLTE2Miw4ICsxNjIsNyBAQCBz dGF0aWMgaW50IGFtZGdwdV9jc19pbml0X2liX3Bvb2woYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNv bnRleHQpCj4+PiAgICAqCj4+PiAgICAqIFxyZXR1cm4gIDAgb24gc3VjY2VzcyBvdGhlcndpc2Ug UE9TSVggRXJyb3IgY29kZQo+Pj4gICAqLwo+Pj4gLXN0YXRpYyBpbnQgYW1kZ3B1X2NzX2FsbG9j X2Zyb21faWJfcG9vbChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCj4+PiAtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHQs Cj4+PiArc3RhdGljIGludCBhbWRncHVfY3NfYWxsb2NfZnJvbV9pYl9wb29sKGFtZGdwdV9jb250 ZXh0X2hhbmRsZSBjb250ZXh0LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBlbnVtIGFtZGdwdV9jc19pYl9zaXplIGliX3NpemUsCj4+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtZGdwdV9pYl9oYW5kbGUgKmliKQo+Pj4gICB7 Cj4+PiBAQCAtMjEwLDIxICsyMDksMTkgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2NzX2ZyZWVfdG9f aWJfcG9vbChhbWRncHVfY29udGV4dF9oYW5kbGUgY29udGV4dCwKPj4+ICAgICoKPj4+ICAgICog XHJldHVybiAgMCBvbiBzdWNjZXNzIG90aGVyd2lzZSBQT1NJWCBFcnJvciBjb2RlCj4+PiAgICov Cj4+PiAtc3RhdGljIGludCBhbWRncHVfY3NfZGVzdHJveV9pYl9wb29sKGFtZGdwdV9kZXZpY2Vf aGFuZGxlIGRldiwKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbWRn cHVfY29udGV4dF9oYW5kbGUgY29udGV4dCkKPj4+ICtzdGF0aWMgaW50IGFtZGdwdV9jc19kZXN0 cm95X2liX3Bvb2woYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHQpCj4+PiAgIHsKPj4+IC0g ICAgICAgaW50IGk7Cj4+PiAtICAgICAgIGludCByOwo+Pj4gICAgICAgICAgc3RydWN0IGxpc3Rf aGVhZCAqaGVhZDsKPj4+ICAgICAgICAgIHN0cnVjdCBhbWRncHVfaWIgKm5leHQ7Cj4+PiAgICAg ICAgICBzdHJ1Y3QgYW1kZ3B1X2liICpzdG9yYWdlOwo+Pj4gKyAgICAgICBpbnQgaSwgcjsKPj4+ Cj4+PiAgICAgICAgICByID0gMDsKPj4+ICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygmY29u dGV4dC0+cG9vbF9tdXRleCk7Cj4+PiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgQU1ER1BVX0NT X0lCX1NJWkVfTlVNOyBpKyspIHsKPj4+ICAgICAgICAgICAgICAgICAgaGVhZCA9ICZjb250ZXh0 LT5pYl9wb29sc1tpXTsKPj4+ICAgICAgICAgICAgICAgICAgTElTVF9GT1JfRUFDSF9FTlRSWV9T QUZFKG5leHQsIHN0b3JhZ2UsIGhlYWQsIGxpc3Rfbm9kZSkgewo+Pj4gLSAgICAgICAgICAgICAg ICAgICAgICAgciA9IGFtZGdwdV9jc19kZXN0cm95X2liKGRldiwgbmV4dCk7Cj4+PiArICAgICAg ICAgICAgICAgICAgICAgICByID0gYW1kZ3B1X2NzX2Rlc3Ryb3lfaWIobmV4dCk7Cj4+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKHIpCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsKPj4+ICAgICAgICAgICAgICAgICAgfQo+Pj4gQEAgLTI2OCw4ICsyNjUs NyBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19pbml0X3BlbmRpbmdzKGFtZGdwdV9jb250ZXh0X2hh bmRsZSBjb250ZXh0KQo+Pj4gICAgKgo+Pj4gICAgKiBccmV0dXJuICAwIG9uIHN1Y2Nlc3Mgb3Ro ZXJ3aXNlIFBPU0lYIEVycm9yIGNvZGUKPj4+ICAgKi8KPj4+IC1zdGF0aWMgaW50IGFtZGdwdV9j c19kZXN0cm95X3BlbmRpbmdzKGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKPj4+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRl eHQpCj4+PiArc3RhdGljIGludCBhbWRncHVfY3NfZGVzdHJveV9wZW5kaW5ncyhhbWRncHVfY29u dGV4dF9oYW5kbGUgY29udGV4dCkKPj4+ICAgewo+Pj4gICAgICAgICAgaW50IGlwLCBpbnN0Owo+ Pj4gICAgICAgICAgdWludDMyX3QgcmluZzsKPj4+IEBAIC0yODUsNyArMjgxLDcgQEAgc3RhdGlj IGludCBhbWRncHVfY3NfZGVzdHJveV9wZW5kaW5ncyhhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYs Cj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChyaW5nID0gMDsgcmluZyA8IEFNREdQ VV9DU19NQVhfUklOR1M7IHJpbmcrKykgewo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaGVhZCA9ICZjb250ZXh0LT5wZW5kaW5nc1tpcF1baW5zdF1bcmluZ107Cj4+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSVNUX0ZPUl9FQUNIX0VOVFJZX1NBRkUobmV4 dCwgcywgaGVhZCwgbGlzdF9ub2RlKSB7Cj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgciA9IGFtZGdwdV9jc19kZXN0cm95X2liKGRldiwgbmV4dCk7Cj4+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgciA9IGFtZGdwdV9jc19kZXN0cm95 X2liKG5leHQpOwo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAocikKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBicmVhazsKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KPj4+IEBAIC0y OTMsNyArMjg5LDcgQEAgc3RhdGljIGludCBhbWRncHVfY3NfZGVzdHJveV9wZW5kaW5ncyhhbWRn cHVfZGV2aWNlX2hhbmRsZSBkZXYsCj4+Pgo+Pj4gICAgICAgICAgaGVhZCA9ICZjb250ZXh0LT5m cmVlZDsKPj4+ICAgICAgICAgIExJU1RfRk9SX0VBQ0hfRU5UUllfU0FGRShuZXh0LCBzLCBoZWFk LCBsaXN0X25vZGUpIHsKPj4+IC0gICAgICAgICAgICAgICByID0gYW1kZ3B1X2NzX2Rlc3Ryb3lf aWIoZGV2LCBuZXh0KTsKPj4+ICsgICAgICAgICAgICAgICByID0gYW1kZ3B1X2NzX2Rlc3Ryb3lf aWIobmV4dCk7Cj4+PiAgICAgICAgICAgICAgICAgIGlmIChyKQo+Pj4gICAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOwo+Pj4gICAgICAgICAgfQo+Pj4gQEAgLTQ0MSwzOSArNDM3LDM1IEBA IHN0YXRpYyB2b2lkIGFtZGdwdV9jc19hbGxfcGVuZGluZ19nYyhhbWRncHVfY29udGV4dF9oYW5k bGUgY29udGV4dCkKPj4+ICAgICoKPj4+ICAgICogXHJldHVybiAgMCBvbiBzdWNjZXNzIG90aGVy d2lzZSBQT1NJWCBFcnJvciBjb2RlCj4+PiAgICovCj4+PiAtc3RhdGljIGludCBhbWRncHVfY3Nf YWxsb2NfaWJfbG9jYWwoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAo+Pj4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHQsCj4+ PiArc3RhdGljIGludCBhbWRncHVfY3NfYWxsb2NfaWJfbG9jYWwoYW1kZ3B1X2NvbnRleHRfaGFu ZGxlIGNvbnRleHQsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51 bSBhbWRncHVfY3NfaWJfc2l6ZSBpYl9zaXplLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFtZGdwdV9pYl9oYW5kbGUgKmliKQo+Pj4gICB7Cj4+PiAgICAgICAgICBp bnQgcjsKPj4+Cj4+PiAtICAgICAgIHIgPSBhbWRncHVfY3NfYWxsb2NfZnJvbV9pYl9wb29sKGRl diwgY29udGV4dCwgaWJfc2l6ZSwgaWIpOwo+Pj4gKyAgICAgICByID0gYW1kZ3B1X2NzX2FsbG9j X2Zyb21faWJfcG9vbChjb250ZXh0LCBpYl9zaXplLCBpYik7Cj4+PiAgICAgICAgICBpZiAoIXIp Cj4+PiAgICAgICAgICAgICAgICAgIHJldHVybiByOwo+Pj4KPj4+ICAgICAgICAgIGFtZGdwdV9j c19hbGxfcGVuZGluZ19nYyhjb250ZXh0KTsKPj4+Cj4+PiAgICAgICAgICAvKiBSZXRyeSB0byBh bGxvY2F0ZSBmcm9tIGZyZWUgSUIgcG9vbHMgYWZ0ZXIgZ2FyYmFnZSBjb2xsZWN0b3IuICovCj4+ PiAtICAgICAgIHIgPSBhbWRncHVfY3NfYWxsb2NfZnJvbV9pYl9wb29sKGRldiwgY29udGV4dCwg aWJfc2l6ZSwgaWIpOwo+Pj4gKyAgICAgICByID0gYW1kZ3B1X2NzX2FsbG9jX2Zyb21faWJfcG9v bChjb250ZXh0LCBpYl9zaXplLCBpYik7Cj4+PiAgICAgICAgICBpZiAoIXIpCj4+PiAgICAgICAg ICAgICAgICAgIHJldHVybiByOwo+Pj4KPj4+ICAgICAgICAgIC8qIFRoZXJlIGlzIG5vIHN1aXRh YmxlIElCIGluIGZyZWUgcG9vbHMuIENyZWF0ZSBvbmUuICovCj4+PiAtICAgICAgIHIgPSBhbWRn cHVfY3NfY3JlYXRlX2liKGRldiwgY29udGV4dCwgaWJfc2l6ZSwgaWIpOwo+Pj4gKyAgICAgICBy ID0gYW1kZ3B1X2NzX2NyZWF0ZV9pYihjb250ZXh0LCBpYl9zaXplLCBpYik7Cj4+PiAgICAgICAg ICByZXR1cm4gcjsKPj4+ICAgfQo+Pj4KPj4+IC1pbnQgYW1kZ3B1X2NzX2FsbG9jX2liKGFtZGdw dV9kZXZpY2VfaGFuZGxlIGRldiwKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgYW1kZ3B1X2Nv bnRleHRfaGFuZGxlIGNvbnRleHQsCj4+PiAraW50IGFtZGdwdV9jc19hbGxvY19pYihhbWRncHVf Y29udGV4dF9oYW5kbGUgY29udGV4dCwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0g YW1kZ3B1X2NzX2liX3NpemUgaWJfc2l6ZSwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBhbWRncHVfY3NfaWJfYWxsb2NfcmVzdWx0ICpvdXRwdXQpCj4+PiAgIHsKPj4+ICAgICAg ICAgIGludCByOwo+Pj4gICAgICAgICAgYW1kZ3B1X2liX2hhbmRsZSBpYjsKPj4+Cj4+PiAtICAg ICAgIGlmIChOVUxMID09IGRldikKPj4+IC0gICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsK Pj4+ICAgICAgICAgIGlmIChOVUxMID09IGNvbnRleHQpCj4+PiAgICAgICAgICAgICAgICAgIHJl dHVybiAtRUlOVkFMOwo+Pj4gICAgICAgICAgaWYgKE5VTEwgPT0gb3V0cHV0KQo+Pj4gQEAgLTQ4 MSw3ICs0NzMsNyBAQCBpbnQgYW1kZ3B1X2NzX2FsbG9jX2liKGFtZGdwdV9kZXZpY2VfaGFuZGxl IGRldiwKPj4+ICAgICAgICAgIGlmIChpYl9zaXplID49IEFNREdQVV9DU19JQl9TSVpFX05VTSkK Pj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+Pgo+Pj4gLSAgICAgICByID0g YW1kZ3B1X2NzX2FsbG9jX2liX2xvY2FsKGRldiwgY29udGV4dCwgaWJfc2l6ZSwgJmliKTsKPj4+ ICsgICAgICAgciA9IGFtZGdwdV9jc19hbGxvY19pYl9sb2NhbChjb250ZXh0LCBpYl9zaXplLCAm aWIpOwo+Pj4gICAgICAgICAgaWYgKCFyKSB7Cj4+PiAgICAgICAgICAgICAgICAgIG91dHB1dC0+ aGFuZGxlID0gaWI7Cj4+PiAgICAgICAgICAgICAgICAgIG91dHB1dC0+Y3B1ID0gaWItPmNwdTsK Pj4+IEBAIC00OTEsMTcgKzQ4MywxNCBAQCBpbnQgYW1kZ3B1X2NzX2FsbG9jX2liKGFtZGdwdV9k ZXZpY2VfaGFuZGxlIGRldiwKPj4+ICAgICAgICAgIHJldHVybiByOwo+Pj4gICB9Cj4+Pgo+Pj4g LWludCBhbWRncHVfY3NfZnJlZV9pYihhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCj4+PiAtICAg ICAgICAgICAgICAgICAgICAgYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHQsCj4+PiAtICAg ICAgICAgICAgICAgICAgICAgYW1kZ3B1X2liX2hhbmRsZSBoYW5kbGUpCj4+PiAraW50IGFtZGdw dV9jc19mcmVlX2liKGFtZGdwdV9pYl9oYW5kbGUgaGFuZGxlKQo+Pj4gICB7Cj4+PiAtICAgICAg IGlmIChOVUxMID09IGRldikKPj4+IC0gICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4+ IC0gICAgICAgaWYgKE5VTEwgPT0gY29udGV4dCkKPj4+IC0gICAgICAgICAgICAgICByZXR1cm4g LUVJTlZBTDsKPj4+ICsgICAgICAgYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHQ7Cj4+PiAr Cj4+PiAgICAgICAgICBpZiAoTlVMTCA9PSBoYW5kbGUpCj4+PiAgICAgICAgICAgICAgICAgIHJl dHVybiAtRUlOVkFMOwo+Pj4KPj4+ICsgICAgICAgY29udGV4dCA9IGhhbmRsZS0+Y29udGV4dDsK Pj4+ICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygmY29udGV4dC0+cGVuZGluZ3NfbXV0ZXgp Owo+Pj4gICAgICAgICAgTElTVF9BREQoJmhhbmRsZS0+bGlzdF9ub2RlLCAmY29udGV4dC0+ZnJl ZWQpOwo+Pj4gICAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2soJmNvbnRleHQtPnBlbmRpbmdz X211dGV4KTsKPj4+IEBAIC01MzIsNiArNTIxLDggQEAgaW50IGFtZGdwdV9jc19jdHhfY3JlYXRl KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKPj4+ICAgICAgICAgIGlmIChOVUxMID09IGdwdV9j b250ZXh0KQo+Pj4gICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPj4+Cj4+PiArICAg ICAgIGdwdV9jb250ZXh0LT5kZXYgPSBkZXY7Cj4+PiArCj4+PiAgICAgICAgICByID0gcHRocmVh ZF9tdXRleF9pbml0KCZncHVfY29udGV4dC0+c2VxdWVuY2VfbXV0ZXgsIE5VTEwpOwo+Pj4gICAg ICAgICAgaWYgKHIpCj4+PiAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3JfbXV0ZXg7Cj4+PiBA QCAtNTQ0LDcgKzUzNSw3IEBAIGludCBhbWRncHVfY3NfY3R4X2NyZWF0ZShhbWRncHVfZGV2aWNl X2hhbmRsZSBkZXYsCj4+PiAgICAgICAgICBpZiAocikKPj4+ICAgICAgICAgICAgICAgICAgZ290 byBlcnJvcl9wZW5kaW5nczsKPj4+Cj4+PiAtICAgICAgIHIgPSBhbWRncHVfY3NfYWxsb2NfaWJf bG9jYWwoZGV2LCBncHVfY29udGV4dCwgYW1kZ3B1X2NzX2liX3NpemVfNEssCj4+PiArICAgICAg IHIgPSBhbWRncHVfY3NfYWxsb2NfaWJfbG9jYWwoZ3B1X2NvbnRleHQsIGFtZGdwdV9jc19pYl9z aXplXzRLLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZ3B1X2Nv bnRleHQtPmZlbmNlX2liKTsKPj4+ICAgICAgICAgIGlmIChyKQo+Pj4gICAgICAgICAgICAgICAg ICBnb3RvIGVycm9yX2ZlbmNlX2liOwo+Pj4gQEAgLTU2MiwxMyArNTUzLDEzIEBAIGludCBhbWRn cHVfY3NfY3R4X2NyZWF0ZShhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCj4+PiAgICAgICAgICBy ZXR1cm4gMDsKPj4+Cj4+PiAgIGVycm9yX2tlcm5lbDoKPj4+IC0gICAgICAgYW1kZ3B1X2NzX2Zy ZWVfaWIoZGV2LCBncHVfY29udGV4dCwgZ3B1X2NvbnRleHQtPmZlbmNlX2liKTsKPj4+ICsgICAg ICAgYW1kZ3B1X2NzX2ZyZWVfaWIoZ3B1X2NvbnRleHQtPmZlbmNlX2liKTsKPj4+Cj4+PiAgIGVy cm9yX2ZlbmNlX2liOgo+Pj4gLSAgICAgICBhbWRncHVfY3NfZGVzdHJveV9wZW5kaW5ncyhkZXYs IGdwdV9jb250ZXh0KTsKPj4+ICsgICAgICAgYW1kZ3B1X2NzX2Rlc3Ryb3lfcGVuZGluZ3MoZ3B1 X2NvbnRleHQpOwo+Pj4KPj4+ICAgZXJyb3JfcGVuZGluZ3M6Cj4+PiAtICAgICAgIGFtZGdwdV9j c19kZXN0cm95X2liX3Bvb2woZGV2LCBncHVfY29udGV4dCk7Cj4+PiArICAgICAgIGFtZGdwdV9j c19kZXN0cm95X2liX3Bvb2woZ3B1X2NvbnRleHQpOwo+Pj4KPj4+ICAgZXJyb3JfcG9vbDoKPj4+ ICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfZGVzdHJveSgmZ3B1X2NvbnRleHQtPnNlcXVlbmNlX211 dGV4KTsKPj4+IEBAIC01ODYsMjYgKzU3NywyMyBAQCBlcnJvcl9tdXRleDoKPj4+ICAgICoKPj4+ ICAgICogXHJldHVybiAgMCBvbiBzdWNjZXNzIG90aGVyd2lzZSBQT1NJWCBFcnJvciBjb2RlCj4+ PiAgICovCj4+PiAtaW50IGFtZGdwdV9jc19jdHhfZnJlZShhbWRncHVfZGV2aWNlX2hhbmRsZSBk ZXYsCj4+PiAtICAgICAgICAgICAgICAgICAgICAgIGFtZGdwdV9jb250ZXh0X2hhbmRsZSBjb250 ZXh0KQo+Pj4gK2ludCBhbWRncHVfY3NfY3R4X2ZyZWUoYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNv bnRleHQpCj4+PiAgIHsKPj4+IC0gICAgICAgaW50IHI7Cj4+PiAgICAgICAgICB1bmlvbiBkcm1f YW1kZ3B1X2N0eCBhcmdzOwo+Pj4gKyAgICAgICBpbnQgcjsKPj4+Cj4+PiAtICAgICAgIGlmIChO VUxMID09IGRldikKPj4+IC0gICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4+ICAgICAg ICAgIGlmIChOVUxMID09IGNvbnRleHQpCj4+PiAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlO VkFMOwo+Pj4KPj4+IC0gICAgICAgciA9IGFtZGdwdV9jc19mcmVlX2liKGRldiwgY29udGV4dCwg Y29udGV4dC0+ZmVuY2VfaWIpOwo+Pj4gKyAgICAgICByID0gYW1kZ3B1X2NzX2ZyZWVfaWIoY29u dGV4dC0+ZmVuY2VfaWIpOwo+Pj4gICAgICAgICAgaWYgKHIpCj4+PiAgICAgICAgICAgICAgICAg IHJldHVybiByOwo+Pj4KPj4+IC0gICAgICAgciA9IGFtZGdwdV9jc19kZXN0cm95X3BlbmRpbmdz KGRldiwgY29udGV4dCk7Cj4+PiArICAgICAgIHIgPSBhbWRncHVfY3NfZGVzdHJveV9wZW5kaW5n cyhjb250ZXh0KTsKPj4+ICAgICAgICAgIGlmIChyKQo+Pj4gICAgICAgICAgICAgICAgICByZXR1 cm4gcjsKPj4+Cj4+PiAtICAgICAgIHIgPSBhbWRncHVfY3NfZGVzdHJveV9pYl9wb29sKGRldiwg Y29udGV4dCk7Cj4+PiArICAgICAgIHIgPSBhbWRncHVfY3NfZGVzdHJveV9pYl9wb29sKGNvbnRl eHQpOwo+Pj4gICAgICAgICAgaWYgKHIpCj4+PiAgICAgICAgICAgICAgICAgIHJldHVybiByOwo+ Pj4KPj4+IEBAIC02MTUsMTUgKzYwMywxNSBAQCBpbnQgYW1kZ3B1X2NzX2N0eF9mcmVlKGFtZGdw dV9kZXZpY2VfaGFuZGxlIGRldiwKPj4+ICAgICAgICAgIG1lbXNldCgmYXJncywgMCwgc2l6ZW9m KGFyZ3MpKTsKPj4+ICAgICAgICAgIGFyZ3MuaW4ub3AgPSBBTURHUFVfQ1RYX09QX0ZSRUVfQ1RY Owo+Pj4gICAgICAgICAgYXJncy5pbi5jdHhfaWQgPSBjb250ZXh0LT5pZDsKPj4+IC0gICAgICAg ciA9IGRybUNvbW1hbmRXcml0ZVJlYWQoZGV2LT5mZCwgRFJNX0FNREdQVV9DVFgsICZhcmdzLCBz aXplb2YoYXJncykpOwo+Pj4gKyAgICAgICByID0gZHJtQ29tbWFuZFdyaXRlUmVhZChjb250ZXh0 LT5kZXYtPmZkLCBEUk1fQU1ER1BVX0NUWCwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmFyZ3MsIHNpemVvZihhcmdzKSk7Cj4+Pgo+Pj4gICAgICAgICAgZnJlZShjb250ZXh0 KTsKPj4+Cj4+PiAgICAgICAgICByZXR1cm4gcjsKPj4+ICAgfQo+Pj4KPj4+IC1zdGF0aWMgaW50 IGFtZGdwdV9jc19jcmVhdGVfYm9fbGlzdChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCj4+PiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbWRncHVfY29udGV4dF9oYW5kbGUg Y29udGV4dCwKPj4+ICtzdGF0aWMgaW50IGFtZGdwdV9jc19jcmVhdGVfYm9fbGlzdChhbWRncHVf Y29udGV4dF9oYW5kbGUgY29udGV4dCwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2NzX3JlcXVlc3QgKnJlcXVlc3QsCj4+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1kZ3B1X2liX2hhbmRsZSBmZW5jZV9pYiwKPj4+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqaGFuZGxlKQo+ Pj4gQEAgLTY1Nyw3ICs2NDUsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19jcmVhdGVfYm9fbGlz dChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCj4+PiAgICAgICAgICBpZiAoZmVuY2VfaWIpCj4+ PiAgICAgICAgICAgICAgICAgIGxpc3RbaV0uYm9faGFuZGxlID0gZmVuY2VfaWItPmJ1Zl9oYW5k bGUtPmhhbmRsZTsKPj4+Cj4+PiAtICAgICAgIHIgPSBkcm1Db21tYW5kV3JpdGVSZWFkKGRldi0+ ZmQsIERSTV9BTURHUFVfQk9fTElTVCwKPj4+ICsgICAgICAgciA9IGRybUNvbW1hbmRXcml0ZVJl YWQoY29udGV4dC0+ZGV2LT5mZCwgRFJNX0FNREdQVV9CT19MSVNULAo+Pj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJmFyZ3MsIHNpemVvZihhcmdzKSk7Cj4+PiAgICAgICAgICBp ZiAocikKPj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIHI7Cj4+PiBAQCAtNjY2LDcgKzY1NCw3 IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX2NyZWF0ZV9ib19saXN0KGFtZGdwdV9kZXZpY2VfaGFu ZGxlIGRldiwKPj4+ICAgICAgICAgIHJldHVybiAwOwo+Pj4gICB9Cj4+Pgo+Pj4gLXN0YXRpYyBp bnQgYW1kZ3B1X2NzX2ZyZWVfYm9fbGlzdChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsIHVpbnQz Ml90IGhhbmRsZSkKPj4+ICtzdGF0aWMgaW50IGFtZGdwdV9jc19mcmVlX2JvX2xpc3QoYW1kZ3B1 X2NvbnRleHRfaGFuZGxlIGNvbnRleHQsIHVpbnQzMl90IGhhbmRsZSkKPj4+ICAgewo+Pj4gICAg ICAgICAgdW5pb24gZHJtX2FtZGdwdV9ib19saXN0IGFyZ3M7Cj4+PiAgICAgICAgICBpbnQgcjsK Pj4+IEBAIC02NzUsNyArNjYzLDcgQEAgc3RhdGljIGludCBhbWRncHVfY3NfZnJlZV9ib19saXN0 KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwgdWludDMyX3QgaGFuZGxlKQo+Pj4gICAgICAgICAg YXJncy5pbi5vcGVyYXRpb24gPSBBTURHUFVfQk9fTElTVF9PUF9ERVNUUk9ZOwo+Pj4gICAgICAg ICAgYXJncy5pbi5saXN0X2hhbmRsZSA9IGhhbmRsZTsKPj4+Cj4+PiAtICAgICAgIHIgPSBkcm1D b21tYW5kV3JpdGVSZWFkKGRldi0+ZmQsIERSTV9BTURHUFVfQk9fTElTVCwKPj4+ICsgICAgICAg ciA9IGRybUNvbW1hbmRXcml0ZVJlYWQoY29udGV4dC0+ZGV2LT5mZCwgRFJNX0FNREdQVV9CT19M SVNULAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFyZ3MsIHNpemVvZihh cmdzKSk7Cj4+Pgo+Pj4gICAgICAgICAgcmV0dXJuIHI7Cj4+PiBAQCAtNjk2LDggKzY4NCw3IEBA IHN0YXRpYyB1aW50MzJfdCBhbWRncHVfY3NfZmVuY2VfaW5kZXgodW5zaWduZWQgaXAsIHVuc2ln bmVkIHJpbmcpCj4+PiAgICAqIFxyZXR1cm4gIDAgb24gc3VjY2VzcyBvdGhlcndpc2UgUE9TSVgg RXJyb3IgY29kZQo+Pj4gICAgKiBcc2EgYW1kZ3B1X2NzX3N1Ym1pdCgpCj4+PiAgICovCj4+PiAt c3RhdGljIGludCBhbWRncHVfY3Nfc3VibWl0X29uZShhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYs Cj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtZGdwdV9jb250ZXh0X2hhbmRs ZSBjb250ZXh0LAo+Pj4gK3N0YXRpYyBpbnQgYW1kZ3B1X2NzX3N1Ym1pdF9vbmUoYW1kZ3B1X2Nv bnRleHRfaGFuZGxlIGNvbnRleHQsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgYW1kZ3B1X2NzX3JlcXVlc3QgKmlic19yZXF1ZXN0LAo+Pj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgKmZlbmNlKQo+Pj4gICB7Cj4+PiBAQCAtNzUz LDcgKzc0MCw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3N1Ym1pdF9vbmUoYW1kZ3B1X2Rldmlj ZV9oYW5kbGUgZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rX2RhdGFbaV0u aWJfZGF0YS5mbGFncyA9IEFNREdQVV9JQl9GTEFHX0NFOwo+Pj4gICAgICAgICAgfQo+Pj4KPj4+ IC0gICAgICAgciA9IGFtZGdwdV9jc19jcmVhdGVfYm9fbGlzdChkZXYsIGNvbnRleHQsIGlic19y ZXF1ZXN0LCBOVUxMLAo+Pj4gKyAgICAgICByID0gYW1kZ3B1X2NzX2NyZWF0ZV9ib19saXN0KGNv bnRleHQsIGlic19yZXF1ZXN0LCBOVUxMLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmY3MuaW4uYm9fbGlzdF9oYW5kbGUpOwo+Pj4gICAgICAgICAgaWYgKHIpCj4+ PiAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3JfdW5sb2NrOwo+Pj4gQEAgLTc3OCw3ICs3NjUs NyBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19zdWJtaXRfb25lKGFtZGdwdV9kZXZpY2VfaGFuZGxl IGRldiwKPj4+ICAgICAgICAgICAgICAgICAgY2h1bmtfZGF0YVtpXS5mZW5jZV9kYXRhLm9mZnNl dCAqPSBzaXplb2YodWludDY0X3QpOwo+Pj4gICAgICAgICAgfQo+Pj4KPj4+IC0gICAgICAgciA9 IGRybUNvbW1hbmRXcml0ZVJlYWQoZGV2LT5mZCwgRFJNX0FNREdQVV9DUywKPj4+ICsgICAgICAg ciA9IGRybUNvbW1hbmRXcml0ZVJlYWQoY29udGV4dC0+ZGV2LT5mZCwgRFJNX0FNREdQVV9DUywK Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjcywgc2l6ZW9mKGNzKSk7Cj4+ PiAgICAgICAgICBpZiAocikKPj4+ICAgICAgICAgICAgICAgICAgZ290byBlcnJvcl91bmxvY2s7 Cj4+PiBAQCAtODA1LDcgKzc5Miw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3N1Ym1pdF9vbmUo YW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAo+Pj4KPj4+ICAgICAgICAgIHB0aHJlYWRfbXV0ZXhf dW5sb2NrKCZjb250ZXh0LT5zZXF1ZW5jZV9tdXRleCk7Cj4+Pgo+Pj4gLSAgICAgICByID0gYW1k Z3B1X2NzX2ZyZWVfYm9fbGlzdChkZXYsIGNzLmluLmJvX2xpc3RfaGFuZGxlKTsKPj4+ICsgICAg ICAgciA9IGFtZGdwdV9jc19mcmVlX2JvX2xpc3QoY29udGV4dCwgY3MuaW4uYm9fbGlzdF9oYW5k bGUpOwo+Pj4gICAgICAgICAgaWYgKHIpCj4+PiAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3Jf ZnJlZTsKPj4+Cj4+PiBAQCAtODIwLDE4ICs4MDcsMTUgQEAgZXJyb3JfZnJlZToKPj4+ICAgICAg ICAgIHJldHVybiByOwo+Pj4gICB9Cj4+Pgo+Pj4gLWludCBhbWRncHVfY3Nfc3VibWl0KGFtZGdw dV9kZXZpY2VfaGFuZGxlICBkZXYsCj4+PiAtICAgICAgICAgICAgICAgICAgICBhbWRncHVfY29u dGV4dF9oYW5kbGUgY29udGV4dCwKPj4+ICtpbnQgYW1kZ3B1X2NzX3N1Ym1pdChhbWRncHVfY29u dGV4dF9oYW5kbGUgY29udGV4dCwKPj4+ICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBm bGFncywKPj4+ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2NzX3JlcXVlc3Qg Kmlic19yZXF1ZXN0LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG51bWJlcl9v Zl9yZXF1ZXN0cywKPj4+ICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCAqZmVuY2VzKQo+ Pj4gICB7Cj4+PiAtICAgICAgIGludCByOwo+Pj4gICAgICAgICAgdWludDMyX3QgaTsKPj4+ICsg ICAgICAgaW50IHI7Cj4+Pgo+Pj4gLSAgICAgICBpZiAoTlVMTCA9PSBkZXYpCj4+PiAtICAgICAg ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+PiAgICAgICAgICBpZiAoTlVMTCA9PSBjb250ZXh0 KQo+Pj4gICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4+ICAgICAgICAgIGlmIChO VUxMID09IGlic19yZXF1ZXN0KQo+Pj4gQEAgLTg0MSw3ICs4MjUsNyBAQCBpbnQgYW1kZ3B1X2Nz X3N1Ym1pdChhbWRncHVfZGV2aWNlX2hhbmRsZSAgZGV2LAo+Pj4KPj4+ICAgICAgICAgIHIgPSAw Owo+Pj4gICAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bWJlcl9vZl9yZXF1ZXN0czsgaSsrKSB7 Cj4+PiAtICAgICAgICAgICAgICAgciA9IGFtZGdwdV9jc19zdWJtaXRfb25lKGRldiwgY29udGV4 dCwgaWJzX3JlcXVlc3QsIGZlbmNlcyk7Cj4+PiArICAgICAgICAgICAgICAgciA9IGFtZGdwdV9j c19zdWJtaXRfb25lKGNvbnRleHQsIGlic19yZXF1ZXN0LCBmZW5jZXMpOwo+Pj4gICAgICAgICAg ICAgICAgICBpZiAocikKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKPj4+ICAg ICAgICAgICAgICAgICAgZmVuY2VzKys7Cj4+PiBAQCAtOTA0LDggKzg4OCw3IEBAIHN0YXRpYyBp bnQgYW1kZ3B1X2lvY3RsX3dhaXRfY3MoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAo+Pj4gICAg ICAgICAgcmV0dXJuIDA7Cj4+PiAgIH0KPj4+Cj4+PiAtaW50IGFtZGdwdV9jc19xdWVyeV9mZW5j ZV9zdGF0dXMoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAo+Pj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IGFtZGdwdV9jc19xdWVyeV9mZW5jZSAqZmVuY2UsCj4+PiAr aW50IGFtZGdwdV9jc19xdWVyeV9mZW5jZV9zdGF0dXMoc3RydWN0IGFtZGdwdV9jc19xdWVyeV9m ZW5jZSAqZmVuY2UsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMy X3QgKmV4cGlyZWQpCj4+PiAgIHsKPj4+ICAgICAgICAgIGFtZGdwdV9jb250ZXh0X2hhbmRsZSBj b250ZXh0Owo+Pj4gQEAgLTkxNiw4ICs4OTksNiBAQCBpbnQgYW1kZ3B1X2NzX3F1ZXJ5X2ZlbmNl X3N0YXR1cyhhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCj4+PiAgICAgICAgICBib29sIGJ1c3kg PSB0cnVlOwo+Pj4gICAgICAgICAgaW50IHI7Cj4+Pgo+Pj4gLSAgICAgICBpZiAoTlVMTCA9PSBk ZXYpCj4+PiAtICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+PiAgICAgICAgICBpZiAo TlVMTCA9PSBmZW5jZSkKPj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+PiAg ICAgICAgICBpZiAoTlVMTCA9PSBleHBpcmVkKQo+Pj4gQEAgLTk1OCw3ICs5MzksNyBAQCBpbnQg YW1kZ3B1X2NzX3F1ZXJ5X2ZlbmNlX3N0YXR1cyhhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCj4+ Pgo+Pj4gICAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2soJmNvbnRleHQtPnNlcXVlbmNlX211 dGV4KTsKPj4+Cj4+PiAtICAgICAgIHIgPSBhbWRncHVfaW9jdGxfd2FpdF9jcyhkZXYsIGlwX3R5 cGUsIGlwX2luc3RhbmNlLCByaW5nLAo+Pj4gKyAgICAgICByID0gYW1kZ3B1X2lvY3RsX3dhaXRf Y3MoY29udGV4dC0+ZGV2LCBpcF90eXBlLCBpcF9pbnN0YW5jZSwgcmluZywKPj4+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmZW5jZS0+ZmVuY2UsIGZlbmNlLT50aW1lb3V0X25z LCAmYnVzeSk7Cj4+PiAgICAgICAgICBpZiAoIXIgJiYgIWJ1c3kpIHsKPj4+ICAgICAgICAgICAg ICAgICAgKmV4cGlyZWQgPSB0cnVlOwo+Pj4gZGlmZiAtLWdpdCBhL2FtZGdwdS9hbWRncHVfaW50 ZXJuYWwuaCBiL2FtZGdwdS9hbWRncHVfaW50ZXJuYWwuaAo+Pj4gaW5kZXggYjI3NzU2ZC4uNTVk YjY0NSAxMDA2NDQKPj4+IC0tLSBhL2FtZGdwdS9hbWRncHVfaW50ZXJuYWwuaAo+Pj4gKysrIGIv YW1kZ3B1L2FtZGdwdV9pbnRlcm5hbC5oCj4+PiBAQCAtOTMsNiArOTMsNyBAQCBzdHJ1Y3QgYW1k Z3B1X2JvIHsKPj4+ICAgICogc2VxdWVuY2VfbXV0ZXggLT4gcGVuZGluZ3NfbXV0ZXggLT4gcG9v bF9tdXRleC4KPj4+ICAgKi8KPj4+ICAgc3RydWN0IGFtZGdwdV9jb250ZXh0IHsKPj4+ICsgICAg ICAgc3RydWN0IGFtZGdwdV9kZXZpY2UgKmRldjsKPj4+ICAgICAgICAgIC8qKiBNdXRleCBmb3Ig YWNjZXNzaW5nIGZlbmNlcyBhbmQgdG8gbWFpbnRhaW4gY29tbWFuZCBzdWJtaXNzaW9ucwo+Pj4g ICAgICAgICAgICAgIGFuZCBwZW5kaW5nIGxpc3RzIGluIGdvb2Qgc2VxdWVuY2UuICovCj4+PiAg ICAgICAgICBwdGhyZWFkX211dGV4X3Qgc2VxdWVuY2VfbXV0ZXg7Cj4+PiBAQCAtMTE1LDYgKzEx Niw3IEBAIHN0cnVjdCBhbWRncHVfY29udGV4dCB7Cj4+PiAgIH07Cj4+Pgo+Pj4gICBzdHJ1Y3Qg YW1kZ3B1X2liIHsKPj4+ICsgICAgICAgYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHQ7Cj4+ PiAgICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Rfbm9kZTsKPj4+ICAgICAgICAgIGFtZGdw dV9ib19oYW5kbGUgYnVmX2hhbmRsZTsKPj4+ICAgICAgICAgIHZvaWQgKmNwdTsKPj4+IGRpZmYg LS1naXQgYS90ZXN0cy9hbWRncHUvYmFzaWNfdGVzdHMuYyBiL3Rlc3RzL2FtZGdwdS9iYXNpY190 ZXN0cy5jCj4+PiBpbmRleCBjNTNmNmEwLi5jMDFhN2Y0IDEwMDY0NAo+Pj4gLS0tIGEvdGVzdHMv YW1kZ3B1L2Jhc2ljX3Rlc3RzLmMKPj4+ICsrKyBiL3Rlc3RzL2FtZGdwdS9iYXNpY190ZXN0cy5j Cj4+PiBAQCAtMTY4LDExICsxNjgsMTEgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2NvbW1hbmRfc3Vi bWlzc2lvbl9nZngodm9pZCkKPj4+ICAgICAgICAgIHIgPSBhbWRncHVfY3NfY3R4X2NyZWF0ZShk ZXZpY2VfaGFuZGxlLCAmY29udGV4dF9oYW5kbGUpOwo+Pj4gICAgICAgICAgQ1VfQVNTRVJUX0VR VUFMKHIsIDApOwo+Pj4KPj4+IC0gICAgICAgciA9IGFtZGdwdV9jc19hbGxvY19pYihkZXZpY2Vf aGFuZGxlLCBjb250ZXh0X2hhbmRsZSwKPj4+ICsgICAgICAgciA9IGFtZGdwdV9jc19hbGxvY19p Yihjb250ZXh0X2hhbmRsZSwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1k Z3B1X2NzX2liX3NpemVfNEssICZpYl9yZXN1bHQpOwo+Pj4gICAgICAgICAgQ1VfQVNTRVJUX0VR VUFMKHIsIDApOwo+Pj4KPj4+IC0gICAgICAgciA9IGFtZGdwdV9jc19hbGxvY19pYihkZXZpY2Vf aGFuZGxlLCBjb250ZXh0X2hhbmRsZSwKPj4+ICsgICAgICAgciA9IGFtZGdwdV9jc19hbGxvY19p Yihjb250ZXh0X2hhbmRsZSwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1k Z3B1X2NzX2liX3NpemVfNEssICZpYl9yZXN1bHRfY2UpOwo+Pj4gICAgICAgICAgQ1VfQVNTRVJU X0VRVUFMKHIsIDApOwo+Pj4KPj4+IEBAIC0xOTksNyArMTk5LDcgQEAgc3RhdGljIHZvaWQgYW1k Z3B1X2NvbW1hbmRfc3VibWlzc2lvbl9nZngodm9pZCkKPj4+ICAgICAgICAgIGlic19yZXF1ZXN0 Lm51bWJlcl9vZl9pYnMgPSAyOwo+Pj4gICAgICAgICAgaWJzX3JlcXVlc3QuaWJzID0gaWJfaW5m bzsKPj4+Cj4+PiAtICAgICAgIHIgPSBhbWRncHVfY3Nfc3VibWl0KGRldmljZV9oYW5kbGUsIGNv bnRleHRfaGFuZGxlLCAwLAo+Pj4gKyAgICAgICByID0gYW1kZ3B1X2NzX3N1Ym1pdChjb250ZXh0 X2hhbmRsZSwgMCwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpYnNfcmVxdWVz dCwgMSwgJmZlbmNlX3N0YXR1cy5mZW5jZSk7Cj4+PiAgICAgICAgICBDVV9BU1NFUlRfRVFVQUwo ciwgMCk7Cj4+Pgo+Pj4gQEAgLTIwNywxMCArMjA3LDEwIEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9j b21tYW5kX3N1Ym1pc3Npb25fZ2Z4KHZvaWQpCj4+PiAgICAgICAgICBmZW5jZV9zdGF0dXMudGlt ZW91dF9ucyA9IEFNREdQVV9USU1FT1VUX0lORklOSVRFOwo+Pj4gICAgICAgICAgZmVuY2Vfc3Rh dHVzLmlwX3R5cGUgPSBBTURHUFVfSFdfSVBfR0ZYOwo+Pj4KPj4+IC0gICAgICAgciA9IGFtZGdw dV9jc19xdWVyeV9mZW5jZV9zdGF0dXMoZGV2aWNlX2hhbmRsZSwgJmZlbmNlX3N0YXR1cywgJmV4 cGlyZWQpOwo+Pj4gKyAgICAgICByID0gYW1kZ3B1X2NzX3F1ZXJ5X2ZlbmNlX3N0YXR1cygmZmVu Y2Vfc3RhdHVzLCAmZXhwaXJlZCk7Cj4+PiAgICAgICAgICBDVV9BU1NFUlRfRVFVQUwociwgMCk7 Cj4+Pgo+Pj4gLSAgICAgICByID0gYW1kZ3B1X2NzX2N0eF9mcmVlKGRldmljZV9oYW5kbGUsIGNv bnRleHRfaGFuZGxlKTsKPj4+ICsgICAgICAgciA9IGFtZGdwdV9jc19jdHhfZnJlZShjb250ZXh0 X2hhbmRsZSk7Cj4+PiAgICAgICAgICBDVV9BU1NFUlRfRVFVQUwociwgMCk7Cj4+PiAgIH0KPj4+ Cj4+PiBAQCAtMjMwLDcgKzIzMCw3IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9jb21tYW5kX3N1Ym1p c3Npb25fY29tcHV0ZSh2b2lkKQo+Pj4KPj4+ICAgICAgICAgIGZvciAoaW5zdGFuY2UgPSAwOyBp bnN0YW5jZSA8IDg7IGluc3RhbmNlKyspIHsKPj4+ICAgICAgICAgICAgICAgICAgbWVtc2V0KCZp Yl9yZXN1bHQsIDAsIHNpemVvZihzdHJ1Y3QgYW1kZ3B1X2NzX2liX2FsbG9jX3Jlc3VsdCkpOwo+ Pj4gLSAgICAgICAgICAgICAgIHIgPSBhbWRncHVfY3NfYWxsb2NfaWIoZGV2aWNlX2hhbmRsZSwg Y29udGV4dF9oYW5kbGUsCj4+PiArICAgICAgICAgICAgICAgciA9IGFtZGdwdV9jc19hbGxvY19p Yihjb250ZXh0X2hhbmRsZSwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhbWRncHVfY3NfaWJfc2l6ZV80SywgJmliX3Jlc3VsdCk7Cj4+PiAgICAgICAgICAgICAg ICAgIENVX0FTU0VSVF9FUVVBTChyLCAwKTsKPj4+Cj4+PiBAQCAtMjQ5LDcgKzI0OSw3IEBAIHN0 YXRpYyB2b2lkIGFtZGdwdV9jb21tYW5kX3N1Ym1pc3Npb25fY29tcHV0ZSh2b2lkKQo+Pj4gICAg ICAgICAgICAgICAgICBpYnNfcmVxdWVzdC5pYnMgPSAmaWJfaW5mbzsKPj4+Cj4+PiAgICAgICAg ICAgICAgICAgIG1lbXNldCgmZmVuY2Vfc3RhdHVzLCAwLCBzaXplb2Yoc3RydWN0IGFtZGdwdV9j c19xdWVyeV9mZW5jZSkpOwo+Pj4gLSAgICAgICAgICAgICAgIHIgPSBhbWRncHVfY3Nfc3VibWl0 KGRldmljZV9oYW5kbGUsIGNvbnRleHRfaGFuZGxlLCAwLAo+Pj4gKyAgICAgICAgICAgICAgIHIg PSBhbWRncHVfY3Nfc3VibWl0KGNvbnRleHRfaGFuZGxlLCAwLAo+Pj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmaWJzX3JlcXVlc3QsIDEsICZmZW5jZV9zdGF0dXMuZmVu Y2UpOwo+Pj4gICAgICAgICAgICAgICAgICBDVV9BU1NFUlRfRVFVQUwociwgMCk7Cj4+Pgo+Pj4g QEAgLTI1OCwxMSArMjU4LDExIEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9jb21tYW5kX3N1Ym1pc3Np b25fY29tcHV0ZSh2b2lkKQo+Pj4gICAgICAgICAgICAgICAgICBmZW5jZV9zdGF0dXMuaXBfdHlw ZSA9IEFNREdQVV9IV19JUF9DT01QVVRFOwo+Pj4gICAgICAgICAgICAgICAgICBmZW5jZV9zdGF0 dXMucmluZyA9IGluc3RhbmNlOwo+Pj4KPj4+IC0gICAgICAgICAgICAgICByID0gYW1kZ3B1X2Nz X3F1ZXJ5X2ZlbmNlX3N0YXR1cyhkZXZpY2VfaGFuZGxlLCAmZmVuY2Vfc3RhdHVzLCAmZXhwaXJl ZCk7Cj4+PiArICAgICAgICAgICAgICAgciA9IGFtZGdwdV9jc19xdWVyeV9mZW5jZV9zdGF0dXMo JmZlbmNlX3N0YXR1cywgJmV4cGlyZWQpOwo+Pj4gICAgICAgICAgICAgICAgICBDVV9BU1NFUlRf RVFVQUwociwgMCk7Cj4+PiAgICAgICAgICB9Cj4+Pgo+Pj4gLSAgICAgICByID0gYW1kZ3B1X2Nz X2N0eF9mcmVlKGRldmljZV9oYW5kbGUsIGNvbnRleHRfaGFuZGxlKTsKPj4+ICsgICAgICAgciA9 IGFtZGdwdV9jc19jdHhfZnJlZShjb250ZXh0X2hhbmRsZSk7Cj4+PiAgICAgICAgICBDVV9BU1NF UlRfRVFVQUwociwgMCk7Cj4+PiAgIH0KPj4+Cj4+PiBAQCAtMjkxLDcgKzI5MSw3IEBAIHN0YXRp YyB2b2lkIGFtZGdwdV9zZG1hX3Rlc3RfZXhlY19jcyhhbWRncHVfY29udGV4dF9oYW5kbGUgY29u dGV4dF9oYW5kbGUsCj4+PiAgICAgICAgICBDVV9BU1NFUlRfVFJVRShwbTRfZHcgPD0gMTAyNCk7 Cj4+Pgo+Pj4gICAgICAgICAgLyogYWxsb2NhdGUgSUIgKi8KPj4+IC0gICAgICAgciA9IGFtZGdw dV9jc19hbGxvY19pYihkZXZpY2VfaGFuZGxlLCBjb250ZXh0X2hhbmRsZSwKPj4+ICsgICAgICAg ciA9IGFtZGdwdV9jc19hbGxvY19pYihjb250ZXh0X2hhbmRsZSwKPj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhbWRncHVfY3NfaWJfc2l6ZV80SywgJmliX3Jlc3VsdCk7Cj4+PiAgICAg ICAgICBDVV9BU1NFUlRfRVFVQUwociwgMCk7Cj4+Pgo+Pj4gQEAgLTMxMyw3ICszMTMsNyBAQCBz dGF0aWMgdm9pZCBhbWRncHVfc2RtYV90ZXN0X2V4ZWNfY3MoYW1kZ3B1X2NvbnRleHRfaGFuZGxl IGNvbnRleHRfaGFuZGxlLAo+Pj4gICAgICAgICAgQ1VfQVNTRVJUX05PVF9FUVVBTChpYnNfcmVx dWVzdCwgTlVMTCk7Cj4+Pgo+Pj4gICAgICAgICAgLyogc3VibWl0IENTICovCj4+PiAtICAgICAg IHIgPSBhbWRncHVfY3Nfc3VibWl0KGRldmljZV9oYW5kbGUsIGNvbnRleHRfaGFuZGxlLCAwLAo+ Pj4gKyAgICAgICByID0gYW1kZ3B1X2NzX3N1Ym1pdChjb250ZXh0X2hhbmRsZSwgMCwKPj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWJzX3JlcXVlc3QsIDEsICZmZW5jZV9zdGF0dXMuZmVu Y2UpOwo+Pj4gICAgICAgICAgQ1VfQVNTRVJUX0VRVUFMKHIsIDApOwo+Pj4KPj4+IEBAIC0zMjMs OCArMzIzLDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X3NkbWFfdGVzdF9leGVjX2NzKGFtZGdwdV9j b250ZXh0X2hhbmRsZSBjb250ZXh0X2hhbmRsZSwKPj4+ICAgICAgICAgIGZlbmNlX3N0YXR1cy50 aW1lb3V0X25zID0gQU1ER1BVX1RJTUVPVVRfSU5GSU5JVEU7Cj4+Pgo+Pj4gICAgICAgICAgLyog d2FpdCBmb3IgSUIgYWNjb21wbGlzaGVkICovCj4+PiAtICAgICAgIHIgPSBhbWRncHVfY3NfcXVl cnlfZmVuY2Vfc3RhdHVzKGRldmljZV9oYW5kbGUsICZmZW5jZV9zdGF0dXMsCj4+PiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmV4cGlyZWQpOwo+Pj4gKyAgICAgICBy ID0gYW1kZ3B1X2NzX3F1ZXJ5X2ZlbmNlX3N0YXR1cygmZmVuY2Vfc3RhdHVzLCAmZXhwaXJlZCk7 Cj4+PiAgICAgICAgICBDVV9BU1NFUlRfRVFVQUwociwgMCk7Cj4+PiAgICAgICAgICBDVV9BU1NF UlRfRVFVQUwoZXhwaXJlZCwgdHJ1ZSk7Cj4+PiAgIH0KPj4+IEBAIC00MTAsNyArNDA5LDcgQEAg c3RhdGljIHZvaWQgYW1kZ3B1X2NvbW1hbmRfc3VibWlzc2lvbl9zZG1hX3dyaXRlX2xpbmVhcih2 b2lkKQo+Pj4gICAgICAgICAgZnJlZShwbTQpOwo+Pj4KPj4+ICAgICAgICAgIC8qIGVuZCBvZiB0 ZXN0ICovCj4+PiAtICAgICAgIHIgPSBhbWRncHVfY3NfY3R4X2ZyZWUoZGV2aWNlX2hhbmRsZSwg Y29udGV4dF9oYW5kbGUpOwo+Pj4gKyAgICAgICByID0gYW1kZ3B1X2NzX2N0eF9mcmVlKGNvbnRl eHRfaGFuZGxlKTsKPj4+ICAgICAgICAgIENVX0FTU0VSVF9FUVVBTChyLCAwKTsKPj4+ICAgfQo+ Pj4KPj4+IEBAIC00OTMsNyArNDkyLDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2NvbW1hbmRfc3Vi bWlzc2lvbl9zZG1hX2NvbnN0X2ZpbGwodm9pZCkKPj4+ICAgICAgICAgIGZyZWUocG00KTsKPj4+ Cj4+PiAgICAgICAgICAvKiBlbmQgb2YgdGVzdCAqLwo+Pj4gLSAgICAgICByID0gYW1kZ3B1X2Nz X2N0eF9mcmVlKGRldmljZV9oYW5kbGUsIGNvbnRleHRfaGFuZGxlKTsKPj4+ICsgICAgICAgciA9 IGFtZGdwdV9jc19jdHhfZnJlZShjb250ZXh0X2hhbmRsZSk7Cj4+PiAgICAgICAgICBDVV9BU1NF UlRfRVFVQUwociwgMCk7Cj4+PiAgIH0KPj4+Cj4+PiBAQCAtNTk2LDcgKzU5NSw3IEBAIHN0YXRp YyB2b2lkIGFtZGdwdV9jb21tYW5kX3N1Ym1pc3Npb25fc2RtYV9jb3B5X2xpbmVhcih2b2lkKQo+ Pj4gICAgICAgICAgZnJlZShwbTQpOwo+Pj4KPj4+ICAgICAgICAgIC8qIGVuZCBvZiB0ZXN0ICov Cj4+PiAtICAgICAgIHIgPSBhbWRncHVfY3NfY3R4X2ZyZWUoZGV2aWNlX2hhbmRsZSwgY29udGV4 dF9oYW5kbGUpOwo+Pj4gKyAgICAgICByID0gYW1kZ3B1X2NzX2N0eF9mcmVlKGNvbnRleHRfaGFu ZGxlKTsKPj4+ICAgICAgICAgIENVX0FTU0VSVF9FUVVBTChyLCAwKTsKPj4+ICAgfQo+Pj4KPj4+ IEBAIC02NzEsNiArNjcwLDYgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X3VzZXJwdHJfdGVzdCh2b2lk KQo+Pj4gICAgICAgICAgQ1VfQVNTRVJUX0VRVUFMKHIsIDApOwo+Pj4gICAgICAgICAgZnJlZShw dHIpOwo+Pj4KPj4+IC0gICAgICAgciA9IGFtZGdwdV9jc19jdHhfZnJlZShkZXZpY2VfaGFuZGxl LCBjb250ZXh0X2hhbmRsZSk7Cj4+PiArICAgICAgIHIgPSBhbWRncHVfY3NfY3R4X2ZyZWUoY29u dGV4dF9oYW5kbGUpOwo+Pj4gICAgICAgICAgQ1VfQVNTRVJUX0VRVUFMKHIsIDApOwo+Pj4gICB9 Cj4+PiBkaWZmIC0tZ2l0IGEvdGVzdHMvYW1kZ3B1L2NzX3Rlc3RzLmMgYi90ZXN0cy9hbWRncHUv Y3NfdGVzdHMuYwo+Pj4gaW5kZXggZjMwZDkyMy4uYzBkMGMwZCAxMDA2NDQKPj4+IC0tLSBhL3Rl c3RzL2FtZGdwdS9jc190ZXN0cy5jCj4+PiArKysgYi90ZXN0cy9hbWRncHUvY3NfdGVzdHMuYwo+ Pj4gQEAgLTczLDggKzczLDcgQEAgaW50IHN1aXRlX2NzX3Rlc3RzX2luaXQodm9pZCkKPj4+ICAg ICAgICAgIGlmIChyKQo+Pj4gICAgICAgICAgICAgICAgICByZXR1cm4gQ1VFX1NJTklUX0ZBSUxF RDsKPj4+Cj4+PiAtICAgICAgICByID0gYW1kZ3B1X2NzX2FsbG9jX2liKGRldmljZV9oYW5kbGUs IGNvbnRleHRfaGFuZGxlLAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQl9T SVpFLCAmaWJfcmVzdWx0KTsKPj4+ICsgICAgICAgIHIgPSBhbWRncHVfY3NfYWxsb2NfaWIoY29u dGV4dF9oYW5kbGUsIElCX1NJWkUsICZpYl9yZXN1bHQpOwo+Pj4gICAgICAgICAgaWYgKHIpCj4+ PiAgICAgICAgICAgICAgICAgIHJldHVybiBDVUVfU0lOSVRfRkFJTEVEOwo+Pj4KPj4+IEBAIC04 OCwxMSArODcsMTEgQEAgaW50IHN1aXRlX2NzX3Rlc3RzX2NsZWFuKHZvaWQpCj4+PiAgIHsKPj4+ ICAgICAgICAgIGludCByOwo+Pj4KPj4+IC0gICAgICAgciA9IGFtZGdwdV9jc19mcmVlX2liKGRl dmljZV9oYW5kbGUsIGNvbnRleHRfaGFuZGxlLCBpYl9oYW5kbGUpOwo+Pj4gKyAgICAgICByID0g YW1kZ3B1X2NzX2ZyZWVfaWIoaWJfaGFuZGxlKTsKPj4+ICAgICAgICAgIGlmIChyKQo+Pj4gICAg ICAgICAgICAgICAgICByZXR1cm4gQ1VFX1NDTEVBTl9GQUlMRUQ7Cj4+Pgo+Pj4gLSAgICAgICBy ID0gYW1kZ3B1X2NzX2N0eF9mcmVlKGRldmljZV9oYW5kbGUsIGNvbnRleHRfaGFuZGxlKTsKPj4+ ICsgICAgICAgciA9IGFtZGdwdV9jc19jdHhfZnJlZShjb250ZXh0X2hhbmRsZSk7Cj4+PiAgICAg ICAgICBpZiAocikKPj4+ICAgICAgICAgICAgICAgICAgcmV0dXJuIENVRV9TQ0xFQU5fRkFJTEVE Owo+Pj4KPj4+IEBAIC0xMjEsMTMgKzEyMCwxMiBAQCBzdGF0aWMgaW50IHN1Ym1pdCh1bnNpZ25l ZCBuZHcsIHVuc2lnbmVkIGlwKQo+Pj4gICAgICAgICAgaWJzX3JlcXVlc3QubnVtYmVyX29mX2li cyA9IDE7Cj4+PiAgICAgICAgICBpYnNfcmVxdWVzdC5pYnMgPSAmaWJfaW5mbzsKPj4+Cj4+PiAt ICAgICAgIHIgPSBhbWRncHVfY3Nfc3VibWl0KGRldmljZV9oYW5kbGUsIGNvbnRleHRfaGFuZGxl LCAwLAo+Pj4gKyAgICAgICByID0gYW1kZ3B1X2NzX3N1Ym1pdChjb250ZXh0X2hhbmRsZSwgMCwK Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpYnNfcmVxdWVzdCwgMSwgJmZlbmNl X3N0YXR1cy5mZW5jZSk7Cj4+PiAgICAgICAgICBpZiAocikKPj4+ICAgICAgICAgICAgICAgICAg cmV0dXJuIHI7Cj4+Pgo+Pj4gLSAgICAgICByID0gYW1kZ3B1X2NzX2FsbG9jX2liKGRldmljZV9o YW5kbGUsIGNvbnRleHRfaGFuZGxlLAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElCX1NJWkUsICZpYl9yZXN1bHQpOwo+Pj4gKyAgICAgICByID0gYW1kZ3B1X2NzX2FsbG9jX2li KGNvbnRleHRfaGFuZGxlLCBJQl9TSVpFLCAmaWJfcmVzdWx0KTsKPj4+ICAgICAgICAgIGlmIChy KQo+Pj4gICAgICAgICAgICAgICAgICByZXR1cm4gcjsKPj4+Cj4+PiBAQCAtMTM4LDcgKzEzNiw3 IEBAIHN0YXRpYyBpbnQgc3VibWl0KHVuc2lnbmVkIG5kdywgdW5zaWduZWQgaXApCj4+PiAgICAg ICAgICBmZW5jZV9zdGF0dXMudGltZW91dF9ucyA9IEFNREdQVV9USU1FT1VUX0lORklOSVRFOwo+ Pj4gICAgICAgICAgZmVuY2Vfc3RhdHVzLmlwX3R5cGUgPSBpcDsKPj4+Cj4+PiAtICAgICAgIHIg PSBhbWRncHVfY3NfcXVlcnlfZmVuY2Vfc3RhdHVzKGRldmljZV9oYW5kbGUsICZmZW5jZV9zdGF0 dXMsICZleHBpcmVkKTsKPj4+ICsgICAgICAgciA9IGFtZGdwdV9jc19xdWVyeV9mZW5jZV9zdGF0 dXMoJmZlbmNlX3N0YXR1cywgJmV4cGlyZWQpOwo+Pj4gICAgICAgICAgaWYgKHIpCj4+PiAgICAg ICAgICAgICAgICAgIHJldHVybiByOwo+Pj4KPj4+IC0tCj4+PiAxLjkuMQo+Pj4KPj4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gZHJpLWRldmVsIG1h aWxpbmcgbGlzdAo+PiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+IGh0dHA6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==