From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lee Jones Subject: Re: [PATCH 08/11] ASoC: twl4030: Remove local reg cache Date: Wed, 8 Jan 2014 08:05:35 +0000 Message-ID: <20140108080535.GA19974@lee--X1> References: <1388755676-16036-1-git-send-email-peter.ujfalusi@ti.com> <1388755676-16036-9-git-send-email-peter.ujfalusi@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f173.google.com (mail-wi0-f173.google.com [209.85.212.173]) by alsa0.perex.cz (Postfix) with ESMTP id 475B82608B7 for ; Wed, 8 Jan 2014 09:05:39 +0100 (CET) Received: by mail-wi0-f173.google.com with SMTP id hn9so5159748wib.6 for ; Wed, 08 Jan 2014 00:05:39 -0800 (PST) Content-Disposition: inline In-Reply-To: <1388755676-16036-9-git-send-email-peter.ujfalusi@ti.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: Peter Ujfalusi Cc: linux-kernel@vger.kernel.org, alsa-devel@alsa-project.org, Mark Brown , Liam Girdwood , Samuel Ortiz List-Id: alsa-devel@alsa-project.org PiBEZXBlbmQgb24gdGhlIHJlZ21hcCByZWcgY2FjaGUgaW1wbGVtZW50YXRpb24gZm9yIHJlZ2lz dGVyIGNhY2hpbmcgZG9uZSBpbgo+IHRoZSB0d2wtY29yZSBkcml2ZXIuCj4gVGhlIGxvY2FsIHJl Z2lzdGVyIGNhY2hlIGNhbiBiZSByZW1vdmVkIGFuZCB3ZSBjYW4ga2VlcCBvbmx5IHNoYWRvdyBj b3BpZXMKPiBvZiBjZXJ0YWluIGN0bCByZWdpc3RlcnMgZm9yIHBvcCBub2lzZSByZWR1Y3Rpb24u Cj4gCj4gU2lnbmVkLW9mZi1ieTogUGV0ZXIgVWpmYWx1c2kgPHBldGVyLnVqZmFsdXNpQHRpLmNv bT4KPiAtLS0KPiAgc291bmQvc29jL2NvZGVjcy90d2w0MDMwLmMgfCAyMDcgKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCA2MyBp bnNlcnRpb25zKCspLCAxNDQgZGVsZXRpb25zKC0pCgpXaGljaCBjb21taXQgaXMgdGhlIHBhdGNo LXNldCBiYXNlZCBvbj8gVGhpcyBwYXRjaCBkb2Vzbid0IGFwcGx5LgoKQXQgYSBndWVzcyBJJ2Qg c2F5IGl0J3MgYmVjdWFzZSB0aGlzIGNvbW1pdCBpcyBhcHBsaWVkIG9uIG15IHRyZWU6CgogIG1m ZDogdHdsNjA0MDogcmVnX2RlZmF1bHRzIHN1cHBvcnQgZm9yIHJlZ21hcAoKV291bGQgeW91IG1p bmQgcmViYXNpbmcgb24gbXkgQVNvQyBicmFuY2ggcGxlYXNlPwoKICBnaXQ6Ly9naXQubGluYXJv Lm9yZy9wZW9wbGUvbGVlLmpvbmVzL21mZC5naXQgIGliLWFzb2MKCk5COiBNYXJrIGFsc28gaGFz IHRoaXMgY29tbWl0IG9uIGhpcyB0cmVlLCBzbyBpdCB3b3VsZCBsaWtlbHkgYWlkIHVzIGJvdGgu Cgo+IGRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3R3bDQwMzAuYyBiL3NvdW5kL3NvYy9j b2RlY3MvdHdsNDAzMC5jCj4gaW5kZXggZjg4MjA3NzEyZDNkLi5kZGE1M2U4YzUxZTUgMTAwNjQ0 Cj4gLS0tIGEvc291bmQvc29jL2NvZGVjcy90d2w0MDMwLmMKPiArKysgYi9zb3VuZC9zb2MvY29k ZWNzL3R3bDQwMzAuYwo+IEBAIC00OCw4NiArNDgsNiBAQAo+ICAKPiAgI2RlZmluZSBUV0w0MDMw X0NBQ0hFUkVHTlVNCShUV0w0MDMwX1JFR19NSVNDX1NFVF8yICsgMSkKPiAgCj4gLS8qCj4gLSAq IHR3bDQwMzAgcmVnaXN0ZXIgY2FjaGUgJiBkZWZhdWx0IHJlZ2lzdGVyIHNldHRpbmdzCj4gLSAq Lwo+IC1zdGF0aWMgY29uc3QgdTggdHdsNDAzMF9yZWdbVFdMNDAzMF9DQUNIRVJFR05VTV0gPSB7 Cj4gLQkweDAwLCAvKiB0aGlzIHJlZ2lzdGVyIG5vdCB1c2VkCQkqLwo+IC0JMHgwMCwgLyogUkVH X0NPREVDX01PREUJCSgweDEpCSovCj4gLQkweDAwLCAvKiBSRUdfT1BUSU9OCQkoMHgyKQkqLwo+ IC0JMHgwMCwgLyogUkVHX1VOS05PV04JCSgweDMpCSovCj4gLQkweDAwLCAvKiBSRUdfTUlDQklB U19DVEwJKDB4NCkJKi8KPiAtCTB4MDAsIC8qIFJFR19BTkFNSUNMCQkoMHg1KQkqLwo+IC0JMHgw MCwgLyogUkVHX0FOQU1JQ1IJCSgweDYpCSovCj4gLQkweDAwLCAvKiBSRUdfQVZBRENfQ1RMCQko MHg3KQkqLwo+IC0JMHgwMCwgLyogUkVHX0FEQ01JQ1NFTAkJKDB4OCkJKi8KPiAtCTB4MDAsIC8q IFJFR19ESUdNSVhJTkcJCSgweDkpCSovCj4gLQkweDBmLCAvKiBSRUdfQVRYTDFQR0EJCSgweEEp CSovCj4gLQkweDBmLCAvKiBSRUdfQVRYUjFQR0EJCSgweEIpCSovCj4gLQkweDBmLCAvKiBSRUdf QVZUWEwyUEdBCQkoMHhDKQkqLwo+IC0JMHgwZiwgLyogUkVHX0FWVFhSMlBHQQkJKDB4RCkJKi8K PiAtCTB4MDAsIC8qIFJFR19BVURJT19JRgkJKDB4RSkJKi8KPiAtCTB4MDAsIC8qIFJFR19WT0lD RV9JRgkJKDB4RikJKi8KPiAtCTB4M2YsIC8qIFJFR19BUlhSMVBHQQkJKDB4MTApCSovCj4gLQkw eDNmLCAvKiBSRUdfQVJYTDFQR0EJCSgweDExKQkqLwo+IC0JMHgzZiwgLyogUkVHX0FSWFIyUEdB CQkoMHgxMikJKi8KPiAtCTB4M2YsIC8qIFJFR19BUlhMMlBHQQkJKDB4MTMpCSovCj4gLQkweDI1 LCAvKiBSRUdfVlJYUEdBCQkoMHgxNCkJKi8KPiAtCTB4MDAsIC8qIFJFR19WU1RQR0EJCSgweDE1 KQkqLwo+IC0JMHgwMCwgLyogUkVHX1ZSWDJBUlhQR0EJCSgweDE2KQkqLwo+IC0JMHgwMCwgLyog UkVHX0FWREFDX0NUTAkJKDB4MTcpCSovCj4gLQkweDAwLCAvKiBSRUdfQVJYMlZUWFBHQQkJKDB4 MTgpCSovCj4gLQkweDMyLCAvKiBSRUdfQVJYTDFfQVBHQV9DVEwJKDB4MTkpCSovCj4gLQkweDMy LCAvKiBSRUdfQVJYUjFfQVBHQV9DVEwJKDB4MUEpCSovCj4gLQkweDMyLCAvKiBSRUdfQVJYTDJf QVBHQV9DVEwJKDB4MUIpCSovCj4gLQkweDMyLCAvKiBSRUdfQVJYUjJfQVBHQV9DVEwJKDB4MUMp CSovCj4gLQkweDAwLCAvKiBSRUdfQVRYMkFSWFBHQQkJKDB4MUQpCSovCj4gLQkweDAwLCAvKiBS RUdfQlRfSUYJCSgweDFFKQkqLwo+IC0JMHg1NSwgLyogUkVHX0JUUEdBCQkoMHgxRikJKi8KPiAt CTB4MDAsIC8qIFJFR19CVFNUUEdBCQkoMHgyMCkJKi8KPiAtCTB4MDAsIC8qIFJFR19FQVJfQ1RM CQkoMHgyMSkJKi8KPiAtCTB4MDAsIC8qIFJFR19IU19TRUwJCSgweDIyKQkqLwo+IC0JMHgwMCwg LyogUkVHX0hTX0dBSU5fU0VUCSgweDIzKQkqLwo+IC0JMHgwMCwgLyogUkVHX0hTX1BPUE5fU0VU CSgweDI0KQkqLwo+IC0JMHgwMCwgLyogUkVHX1BSRURMX0NUTAkJKDB4MjUpCSovCj4gLQkweDAw LCAvKiBSRUdfUFJFRFJfQ1RMCQkoMHgyNikJKi8KPiAtCTB4MDAsIC8qIFJFR19QUkVDS0xfQ1RM CQkoMHgyNykJKi8KPiAtCTB4MDAsIC8qIFJFR19QUkVDS1JfQ1RMCQkoMHgyOCkJKi8KPiAtCTB4 MDAsIC8qIFJFR19IRkxfQ1RMCQkoMHgyOSkJKi8KPiAtCTB4MDAsIC8qIFJFR19IRlJfQ1RMCQko MHgyQSkJKi8KPiAtCTB4MDUsIC8qIFJFR19BTENfQ1RMCQkoMHgyQikJKi8KPiAtCTB4MDAsIC8q IFJFR19BTENfU0VUMQkJKDB4MkMpCSovCj4gLQkweDAwLCAvKiBSRUdfQUxDX1NFVDIJCSgweDJE KQkqLwo+IC0JMHgwMCwgLyogUkVHX0JPT1NUX0NUTAkJKDB4MkUpCSovCj4gLQkweDAwLCAvKiBS RUdfU09GVFZPTF9DVEwJKDB4MkYpCSovCj4gLQkweDEzLCAvKiBSRUdfRFRNRl9GUkVRU0VMCSgw eDMwKQkqLwo+IC0JMHgwMCwgLyogUkVHX0RUTUZfVE9ORVhUMUgJKDB4MzEpCSovCj4gLQkweDAw LCAvKiBSRUdfRFRNRl9UT05FWFQxTAkoMHgzMikJKi8KPiAtCTB4MDAsIC8qIFJFR19EVE1GX1RP TkVYVDJICSgweDMzKQkqLwo+IC0JMHgwMCwgLyogUkVHX0RUTUZfVE9ORVhUMkwJKDB4MzQpCSov Cj4gLQkweDc5LCAvKiBSRUdfRFRNRl9UT05PRkYJKDB4MzUpCSovCj4gLQkweDExLCAvKiBSRUdf RFRNRl9XQU5PTk9GRgkoMHgzNikJKi8KPiAtCTB4MDAsIC8qIFJFR19JMlNfUlhfU0NSQU1CTEVf SAkoMHgzNykJKi8KPiAtCTB4MDAsIC8qIFJFR19JMlNfUlhfU0NSQU1CTEVfTQkoMHgzOCkJKi8K PiAtCTB4MDAsIC8qIFJFR19JMlNfUlhfU0NSQU1CTEVfTAkoMHgzOSkJKi8KPiAtCTB4MDYsIC8q IFJFR19BUExMX0NUTAkJKDB4M0EpCSovCj4gLQkweDAwLCAvKiBSRUdfRFRNRl9DVEwJCSgweDNC KQkqLwo+IC0JMHg0NCwgLyogUkVHX0RUTUZfUEdBX0NUTDIJKDB4M0MpCSovCj4gLQkweDY5LCAv KiBSRUdfRFRNRl9QR0FfQ1RMMQkoMHgzRCkJKi8KPiAtCTB4MDAsIC8qIFJFR19NSVNDX1NFVF8x CQkoMHgzRSkJKi8KPiAtCTB4MDAsIC8qIFJFR19QQ01CVE1VWAkJKDB4M0YpCSovCj4gLQkweDAw LCAvKiBub3QgdXNlZAkJKDB4NDApCSovCj4gLQkweDAwLCAvKiBub3QgdXNlZAkJKDB4NDEpCSov Cj4gLQkweDAwLCAvKiBub3QgdXNlZAkJKDB4NDIpCSovCj4gLQkweDAwLCAvKiBSRUdfUlhfUEFU SF9TRUwJKDB4NDMpCSovCj4gLQkweDMyLCAvKiBSRUdfVkRMX0FQR0FfQ1RMCSgweDQ0KQkqLwo+ IC0JMHgwMCwgLyogUkVHX1ZJQlJBX0NUTAkJKDB4NDUpCSovCj4gLQkweDAwLCAvKiBSRUdfVklC UkFfU0VUCQkoMHg0NikJKi8KPiAtCTB4MDAsIC8qIFJFR19WSUJSQV9QV01fU0VUCSgweDQ3KQkq Lwo+IC0JMHgwMCwgLyogUkVHX0FOQU1JQ19HQUlOCSgweDQ4KQkqLwo+IC0JMHgwMCwgLyogUkVH X01JU0NfU0VUXzIJCSgweDQ5KQkqLwo+IC19Owo+IC0KPiAgLyogY29kZWMgcHJpdmF0ZSBkYXRh ICovCj4gIHN0cnVjdCB0d2w0MDMwX3ByaXYgewo+ICAJdW5zaWduZWQgaW50IGNvZGVjX3Bvd2Vy ZWQ7Cj4gQEAgLTE2NiwzMSArODYsNDggQEAgc3RhdGljIHZvaWQgdHc0MDMwX2luaXRfY3RsX2Nh Y2hlKHN0cnVjdCB0d2w0MDMwX3ByaXYgKnR3bDQwMzApCj4gIAl9Cj4gIH0KPiAgCj4gLS8qCj4g LSAqIHJlYWQgdHdsNDAzMCByZWdpc3RlciBjYWNoZQo+IC0gKi8KPiAtc3RhdGljIGlubGluZSB1 bnNpZ25lZCBpbnQgdHdsNDAzMF9yZWFkX3JlZ19jYWNoZShzdHJ1Y3Qgc25kX3NvY19jb2RlYyAq Y29kZWMsCj4gLQl1bnNpZ25lZCBpbnQgcmVnKQo+ICtzdGF0aWMgdm9pZCB0d2w0MDMwX3VwZGF0 ZV9jdGxfY2FjaGUoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAo+ICsJCQkJICAgICB1bnNp Z25lZCBpbnQgcmVnLCB1bnNpZ25lZCBpbnQgdmFsdWUpCj4gIHsKPiAtCXU4ICpjYWNoZSA9IGNv ZGVjLT5yZWdfY2FjaGU7Cj4gLQo+IC0JaWYgKHJlZyA+PSBUV0w0MDMwX0NBQ0hFUkVHTlVNKQo+ IC0JCXJldHVybiAtRUlPOwo+ICsJc3RydWN0IHR3bDQwMzBfcHJpdiAqdHdsNDAzMCA9IHNuZF9z b2NfY29kZWNfZ2V0X2RydmRhdGEoY29kZWMpOwo+ICAKPiAtCXJldHVybiBjYWNoZVtyZWddOwo+ ICsJc3dpdGNoIChyZWcpIHsKPiArCWNhc2UgVFdMNDAzMF9SRUdfRUFSX0NUTDoKPiArCWNhc2Ug VFdMNDAzMF9SRUdfUFJFRExfQ1RMOgo+ICsJY2FzZSBUV0w0MDMwX1JFR19QUkVEUl9DVEw6Cj4g KwljYXNlIFRXTDQwMzBfUkVHX1BSRUNLTF9DVEw6Cj4gKwljYXNlIFRXTDQwMzBfUkVHX1BSRUNL Ul9DVEw6Cj4gKwljYXNlIFRXTDQwMzBfUkVHX0hTX0dBSU5fU0VUOgo+ICsJCXR3bDQwMzAtPmN0 bF9jYWNoZVtyZWcgLSBUV0w0MDMwX1JFR19FQVJfQ1RMXSA9IHZhbHVlOwo+ICsJCWJyZWFrOwo+ ICsJZGVmYXVsdDoKPiArCQlicmVhazsKPiArCX0KPiAgfQo+ICAKPiAtLyoKPiAtICogd3JpdGUg dHdsNDAzMCByZWdpc3RlciBjYWNoZQo+IC0gKi8KPiAtc3RhdGljIGlubGluZSB2b2lkIHR3bDQw MzBfd3JpdGVfcmVnX2NhY2hlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKPiAtCQkJCQkJ dTggcmVnLCB1OCB2YWx1ZSkKPiArc3RhdGljIHVuc2lnbmVkIGludCB0d2w0MDMwX3JlYWQoc3Ry dWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCB1bnNpZ25lZCBpbnQgcmVnKQo+ICB7Cj4gLQl1OCAq Y2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOwo+ICsJc3RydWN0IHR3bDQwMzBfcHJpdiAqdHdsNDAz MCA9IHNuZF9zb2NfY29kZWNfZ2V0X2RydmRhdGEoY29kZWMpOwo+ICsJdTggdmFsdWUgPSAwOwo+ ICAKPiAgCWlmIChyZWcgPj0gVFdMNDAzMF9DQUNIRVJFR05VTSkKPiAtCQlyZXR1cm47Cj4gLQlj YWNoZVtyZWddID0gdmFsdWU7Cj4gKwkJcmV0dXJuIC1FSU87Cj4gKwo+ICsJc3dpdGNoIChyZWcp IHsKPiArCWNhc2UgVFdMNDAzMF9SRUdfRUFSX0NUTDoKPiArCWNhc2UgVFdMNDAzMF9SRUdfUFJF RExfQ1RMOgo+ICsJY2FzZSBUV0w0MDMwX1JFR19QUkVEUl9DVEw6Cj4gKwljYXNlIFRXTDQwMzBf UkVHX1BSRUNLTF9DVEw6Cj4gKwljYXNlIFRXTDQwMzBfUkVHX1BSRUNLUl9DVEw6Cj4gKwljYXNl IFRXTDQwMzBfUkVHX0hTX0dBSU5fU0VUOgo+ICsJCXZhbHVlID0gdHdsNDAzMC0+Y3RsX2NhY2hl W3JlZyAtIFRXTDQwMzBfUkVHX0VBUl9DVExdOwo+ICsJCWJyZWFrOwo+ICsJZGVmYXVsdDoKPiAr CQl0d2xfaTJjX3JlYWRfdTgoVFdMNDAzMF9NT0RVTEVfQVVESU9fVk9JQ0UsICZ2YWx1ZSwgcmVn KTsKPiArCQlicmVhazsKPiArCX0KPiArCj4gKwlyZXR1cm4gdmFsdWU7Cj4gIH0KPiAgCj4gIHN0 YXRpYyBib29sIHR3bDQwMzBfY2FuX3dyaXRlX3RvX2NoaXAoc3RydWN0IHNuZF9zb2NfY29kZWMg KmNvZGVjLAo+IEBAIC0yMzQsMTMgKzE3MSwxMCBAQCBzdGF0aWMgYm9vbCB0d2w0MDMwX2Nhbl93 cml0ZV90b19jaGlwKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKPiAgCXJldHVybiB3cml0 ZV90b19yZWc7Cj4gIH0KPiAgCj4gLS8qCj4gLSAqIHdyaXRlIHRvIHRoZSB0d2w0MDMwIHJlZ2lz dGVyIHNwYWNlCj4gLSAqLwo+ICBzdGF0aWMgaW50IHR3bDQwMzBfd3JpdGUoc3RydWN0IHNuZF9z b2NfY29kZWMgKmNvZGVjLAo+ICAJCQkgdW5zaWduZWQgaW50IHJlZywgdW5zaWduZWQgaW50IHZh bHVlKQo+ICB7Cj4gLQl0d2w0MDMwX3dyaXRlX3JlZ19jYWNoZShjb2RlYywgcmVnLCB2YWx1ZSk7 Cj4gKwl0d2w0MDMwX3VwZGF0ZV9jdGxfY2FjaGUoY29kZWMsIHJlZywgdmFsdWUpOwo+ICAJaWYg KHR3bDQwMzBfY2FuX3dyaXRlX3RvX2NoaXAoY29kZWMsIHJlZykpCj4gIAkJcmV0dXJuIHR3bF9p MmNfd3JpdGVfdTgoVFdMNDAzMF9NT0RVTEVfQVVESU9fVk9JQ0UsIHZhbHVlLCByZWcpOwo+ICAK PiBAQCAtMjcwLDEwICsyMDQsOCBAQCBzdGF0aWMgdm9pZCB0d2w0MDMwX2NvZGVjX2VuYWJsZShz dHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGludCBlbmFibGUpCj4gIAllbHNlCj4gIAkJbW9k ZSA9IHR3bDQwMzBfYXVkaW9fZGlzYWJsZV9yZXNvdXJjZShUV0w0MDMwX0FVRElPX1JFU19QT1dF Uik7Cj4gIAo+IC0JaWYgKG1vZGUgPj0gMCkgewo+IC0JCXR3bDQwMzBfd3JpdGVfcmVnX2NhY2hl KGNvZGVjLCBUV0w0MDMwX1JFR19DT0RFQ19NT0RFLCBtb2RlKTsKPiArCWlmIChtb2RlID49IDAp Cj4gIAkJdHdsNDAzMC0+Y29kZWNfcG93ZXJlZCA9IGVuYWJsZTsKPiAtCX0KPiAgCj4gIAkvKiBS RVZJU0lUOiB0aGlzIGRlbGF5IGlzIHByZXNlbnQgaW4gVEkgc2FtcGxlIGRyaXZlcnMgKi8KPiAg CS8qIGJ1dCB0aGVyZSBzZWVtcyB0byBiZSBubyBUUk0gcmVxdWlyZW1lbnQgZm9yIGl0ICAgICAq Lwo+IEBAIC0zNjMsMTMgKzI5NSw4IEBAIHN0YXRpYyB2b2lkIHR3bDQwMzBfaW5pdF9jaGlwKHN0 cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKPiAgCS8qIEluaXRpYWxpemUgdGhlIGxvY2FsIGN0 bCByZWdpc3RlciBjYWNoZSAqLwo+ICAJdHc0MDMwX2luaXRfY3RsX2NhY2hlKHR3bDQwMzApOwo+ ICAKPiAtCS8qIFJlZnJlc2ggQVBMTF9DVEwgcmVnaXN0ZXIgZnJvbSBIVyAqLwo+IC0JdHdsX2ky Y19yZWFkX3U4KFRXTDQwMzBfTU9EVUxFX0FVRElPX1ZPSUNFLCAmYnl0ZSwKPiAtCQkJICAgIFRX TDQwMzBfUkVHX0FQTExfQ1RMKTsKPiAtCXR3bDQwMzBfd3JpdGVfcmVnX2NhY2hlKGNvZGVjLCBU V0w0MDMwX1JFR19BUExMX0NUTCwgYnl0ZSk7Cj4gLQo+ICAJLyogYW50aS1wb3Agd2hlbiBjaGFu Z2luZyBhbmFsb2cgZ2FpbiAqLwo+IC0JcmVnID0gdHdsNDAzMF9yZWFkX3JlZ19jYWNoZShjb2Rl YywgVFdMNDAzMF9SRUdfTUlTQ19TRVRfMSk7Cj4gKwlyZWcgPSB0d2w0MDMwX3JlYWQoY29kZWMs IFRXTDQwMzBfUkVHX01JU0NfU0VUXzEpOwo+ICAJdHdsNDAzMF93cml0ZShjb2RlYywgVFdMNDAz MF9SRUdfTUlTQ19TRVRfMSwKPiAgCQlyZWcgfCBUV0w0MDMwX1NNT09USF9BTkFWT0xfRU4pOwo+ ICAKPiBAQCAtMzg2LDE1ICszMTMsMTUgQEAgc3RhdGljIHZvaWQgdHdsNDAzMF9pbml0X2NoaXAo c3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQo+ICAKPiAgCXR3bDQwMzAtPnBkYXRhID0gcGRh dGE7Cj4gIAo+IC0JcmVnID0gdHdsNDAzMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgVFdMNDAzMF9S RUdfSFNfUE9QTl9TRVQpOwo+ICsJcmVnID0gdHdsNDAzMF9yZWFkKGNvZGVjLCBUV0w0MDMwX1JF R19IU19QT1BOX1NFVCk7Cj4gIAlyZWcgJj0gflRXTDQwMzBfUkFNUF9ERUxBWTsKPiAgCXJlZyB8 PSAocGRhdGEtPnJhbXBfZGVsYXlfdmFsdWUgPDwgMik7Cj4gLQl0d2w0MDMwX3dyaXRlX3JlZ19j YWNoZShjb2RlYywgVFdMNDAzMF9SRUdfSFNfUE9QTl9TRVQsIHJlZyk7Cj4gKwl0d2w0MDMwX3dy aXRlKGNvZGVjLCBUV0w0MDMwX1JFR19IU19QT1BOX1NFVCwgcmVnKTsKPiAgCj4gIAkvKiBpbml0 aWF0ZSBvZmZzZXQgY2FuY2VsbGF0aW9uICovCj4gIAl0d2w0MDMwX2NvZGVjX2VuYWJsZShjb2Rl YywgMSk7Cj4gIAo+IC0JcmVnID0gdHdsNDAzMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgVFdMNDAz MF9SRUdfQU5BTUlDTCk7Cj4gKwlyZWcgPSB0d2w0MDMwX3JlYWQoY29kZWMsIFRXTDQwMzBfUkVH X0FOQU1JQ0wpOwo+ICAJcmVnICY9IH5UV0w0MDMwX09GRlNFVF9DTkNMX1NFTDsKPiAgCXJlZyB8 PSBwZGF0YS0+b2Zmc2V0X2NuY2xfcGF0aDsKPiAgCXR3bDQwMzBfd3JpdGUoY29kZWMsIFRXTDQw MzBfUkVHX0FOQU1JQ0wsCj4gQEAgLTQwOCwxNSArMzM1LDE0IEBAIHN0YXRpYyB2b2lkIHR3bDQw MzBfaW5pdF9jaGlwKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKPiAgCW1zbGVlcCgyMCk7 Cj4gIAlkbyB7Cj4gIAkJdXNsZWVwX3JhbmdlKDEwMDAsIDIwMDApOwo+ICsJCXR3bF9zZXRfcmVn Y2FjaGVfYnlwYXNzKFRXTDQwMzBfTU9EVUxFX0FVRElPX1ZPSUNFLCB0cnVlKTsKPiAgCQl0d2xf aTJjX3JlYWRfdTgoVFdMNDAzMF9NT0RVTEVfQVVESU9fVk9JQ0UsICZieXRlLAo+ICAJCQkJICAg IFRXTDQwMzBfUkVHX0FOQU1JQ0wpOwo+ICsJCXR3bF9zZXRfcmVnY2FjaGVfYnlwYXNzKFRXTDQw MzBfTU9EVUxFX0FVRElPX1ZPSUNFLCBmYWxzZSk7Cj4gIAl9IHdoaWxlICgoaSsrIDwgMTAwKSAm Jgo+ICAJCSAoKGJ5dGUgJiBUV0w0MDMwX0NOQ0xfT0ZGU0VUX1NUQVJUKSA9PQo+ICAJCSAgVFdM NDAzMF9DTkNMX09GRlNFVF9TVEFSVCkpOwo+ICAKPiAtCS8qIE1ha2Ugc3VyZSB0aGF0IHRoZSBy ZWdfY2FjaGUgaGFzIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSBIVyAqLwo+IC0JdHdsNDAzMF93cml0 ZV9yZWdfY2FjaGUoY29kZWMsIFRXTDQwMzBfUkVHX0FOQU1JQ0wsIGJ5dGUpOwo+IC0KPiAgCXR3 bDQwMzBfY29kZWNfZW5hYmxlKGNvZGVjLCAwKTsKPiAgfQo+ICAKPiBAQCAtNDM2LDkgKzM2Miw2 IEBAIHN0YXRpYyB2b2lkIHR3bDQwMzBfYXBsbF9lbmFibGUoc3RydWN0IHNuZF9zb2NfY29kZWMg KmNvZGVjLCBpbnQgZW5hYmxlKQo+ICAJCQlzdGF0dXMgPSB0d2w0MDMwX2F1ZGlvX2Rpc2FibGVf cmVzb3VyY2UoCj4gIAkJCQkJCQlUV0w0MDMwX0FVRElPX1JFU19BUExMKTsKPiAgCX0KPiAtCj4g LQlpZiAoc3RhdHVzID49IDApCj4gLQkJdHdsNDAzMF93cml0ZV9yZWdfY2FjaGUoY29kZWMsIFRX TDQwMzBfUkVHX0FQTExfQ1RMLCBzdGF0dXMpOwo+ICB9Cj4gIAo+ICAvKiBFYXJwaWVjZSAqLwo+ IEBAIC02NjEsOCArNTg0LDcgQEAgc3RhdGljIGludCBwaW5fbmFtZSMjcGdhX2V2ZW50KHN0cnVj dCBzbmRfc29jX2RhcG1fd2lkZ2V0ICp3LAkJXAo+ICAJc3dpdGNoIChldmVudCkgewkJCQkJCVwK PiAgCWNhc2UgU05EX1NPQ19EQVBNX1BPU1RfUE1VOgkJCQkJXAo+ICAJCXR3bDQwMzAtPnBpbl9u YW1lIyNfZW5hYmxlZCA9IDE7CQkJXAo+IC0JCXR3bDQwMzBfd3JpdGUody0+Y29kZWMsIHJlZywJ CQkJXAo+IC0JCQl0d2w0MDMwX3JlYWRfcmVnX2NhY2hlKHctPmNvZGVjLCByZWcpKTsJCVwKPiAr CQl0d2w0MDMwX3dyaXRlKHctPmNvZGVjLCByZWcsIHR3bDQwMzBfcmVhZCh3LT5jb2RlYywgcmVn KSk7IFwKPiAgCQlicmVhazsJCQkJCQkJXAo+ICAJY2FzZSBTTkRfU09DX0RBUE1fUE9TVF9QTUQ6 CQkJCQlcCj4gIAkJdHdsNDAzMC0+cGluX25hbWUjI19lbmFibGVkID0gMDsJCQlcCj4gQEAgLTY4 Myw3ICs2MDUsNyBAQCBzdGF0aWMgdm9pZCBoYW5kc2ZyZWVfcmFtcChzdHJ1Y3Qgc25kX3NvY19j b2RlYyAqY29kZWMsIGludCByZWcsIGludCByYW1wKQo+ICB7Cj4gIAl1bnNpZ25lZCBjaGFyIGhz X2N0bDsKPiAgCj4gLQloc19jdGwgPSB0d2w0MDMwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCByZWcp Owo+ICsJaHNfY3RsID0gdHdsNDAzMF9yZWFkKGNvZGVjLCByZWcpOwo+ICAKPiAgCWlmIChyYW1w KSB7Cj4gIAkJLyogSEYgcmFtcC11cCAqLwo+IEBAIC03NjMsNyArNjg1LDcgQEAgc3RhdGljIGlu dCBhaWZfZXZlbnQoc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKncsCj4gIHsKPiAgCXU4IGF1 ZGlvX2lmOwo+ICAKPiAtCWF1ZGlvX2lmID0gdHdsNDAzMF9yZWFkX3JlZ19jYWNoZSh3LT5jb2Rl YywgVFdMNDAzMF9SRUdfQVVESU9fSUYpOwo+ICsJYXVkaW9faWYgPSB0d2w0MDMwX3JlYWQody0+ Y29kZWMsIFRXTDQwMzBfUkVHX0FVRElPX0lGKTsKPiAgCXN3aXRjaCAoZXZlbnQpIHsKPiAgCWNh c2UgU05EX1NPQ19EQVBNX1BSRV9QTVU6Cj4gIAkJLyogRW5hYmxlIEFJRiAqLwo+IEBAIC03OTMs OCArNzE1LDggQEAgc3RhdGljIHZvaWQgaGVhZHNldF9yYW1wKHN0cnVjdCBzbmRfc29jX2NvZGVj ICpjb2RlYywgaW50IHJhbXApCj4gIAkJCQkgICAgODM4ODYwOCwgMTY3NzcyMTYsIDMzNTU0NDMy LCA2NzEwODg2NH07Cj4gIAl1bnNpZ25lZCBpbnQgZGVsYXk7Cj4gIAo+IC0JaHNfZ2FpbiA9IHR3 bDQwMzBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFRXTDQwMzBfUkVHX0hTX0dBSU5fU0VUKTsKPiAt CWhzX3BvcCA9IHR3bDQwMzBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFRXTDQwMzBfUkVHX0hTX1BP UE5fU0VUKTsKPiArCWhzX2dhaW4gPSB0d2w0MDMwX3JlYWQoY29kZWMsIFRXTDQwMzBfUkVHX0hT X0dBSU5fU0VUKTsKPiArCWhzX3BvcCA9IHR3bDQwMzBfcmVhZChjb2RlYywgVFdMNDAzMF9SRUdf SFNfUE9QTl9TRVQpOwo+ICAJZGVsYXkgPSAocmFtcF9iYXNlWyhoc19wb3AgJiBUV0w0MDMwX1JB TVBfREVMQVkpID4+IDJdIC8KPiAgCQl0d2w0MDMwLT5zeXNjbGspICsgMTsKPiAgCj4gQEAgLTE3 MzgsNyArMTY2MCw3IEBAIHN0YXRpYyB2b2lkIHR3bDQwMzBfdGRtX2VuYWJsZShzdHJ1Y3Qgc25k X3NvY19jb2RlYyAqY29kZWMsIGludCBkaXJlY3Rpb24sCj4gIHsKPiAgCXU4IHJlZywgbWFzazsK PiAgCj4gLQlyZWcgPSB0d2w0MDMwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBUV0w0MDMwX1JFR19P UFRJT04pOwo+ICsJcmVnID0gdHdsNDAzMF9yZWFkKGNvZGVjLCBUV0w0MDMwX1JFR19PUFRJT04p Owo+ICAKPiAgCWlmIChkaXJlY3Rpb24gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykKPiAg CQltYXNrID0gVFdMNDAzMF9BUlhMMV9WUlhfRU4gfCBUV0w0MDMwX0FSWFIxX0VOOwo+IEBAIC0x NzY3LDcgKzE2ODksNyBAQCBzdGF0aWMgaW50IHR3bDQwMzBfc3RhcnR1cChzdHJ1Y3Qgc25kX3Bj bV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKPiAgCQlpZiAodHdsNDAzMC0+Y29uZmlndXJlZCkKPiAg CQkJdHdsNDAzMF9jb25zdHJhaW50cyh0d2w0MDMwLCB0d2w0MDMwLT5tYXN0ZXJfc3Vic3RyZWFt KTsKPiAgCX0gZWxzZSB7Cj4gLQkJaWYgKCEodHdsNDAzMF9yZWFkX3JlZ19jYWNoZShjb2RlYywg VFdMNDAzMF9SRUdfQ09ERUNfTU9ERSkgJgo+ICsJCWlmICghKHR3bDQwMzBfcmVhZChjb2RlYywg VFdMNDAzMF9SRUdfQ09ERUNfTU9ERSkgJgo+ICAJCQlUV0w0MDMwX09QVElPTl8xKSkgewo+ICAJ CQkvKiBJbiBvcHRpb24yIDQgY2hhbm5lbCBpcyBub3Qgc3VwcG9ydGVkLCBzZXQgdGhlCj4gIAkJ CSAqIGNvbnN0cmFpbnQgZm9yIHRoZSBmaXJzdCBzdHJlYW0gZm9yIGNoYW5uZWxzLCB0aGUKPiBA QCAtMTgxNSw4ICsxNzM3LDggQEAgc3RhdGljIGludCB0d2w0MDMwX2h3X3BhcmFtcyhzdHJ1Y3Qg c25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKPiAgCj4gIAkgLyogSWYgdGhlIHN1YnN0cmVh bSBoYXMgNCBjaGFubmVsLCBkbyB0aGUgbmVjZXNzYXJ5IHNldHVwICovCj4gIAlpZiAocGFyYW1z X2NoYW5uZWxzKHBhcmFtcykgPT0gNCkgewo+IC0JCWZvcm1hdCA9IHR3bDQwMzBfcmVhZF9yZWdf Y2FjaGUoY29kZWMsIFRXTDQwMzBfUkVHX0FVRElPX0lGKTsKPiAtCQltb2RlID0gdHdsNDAzMF9y ZWFkX3JlZ19jYWNoZShjb2RlYywgVFdMNDAzMF9SRUdfQ09ERUNfTU9ERSk7Cj4gKwkJZm9ybWF0 ID0gdHdsNDAzMF9yZWFkKGNvZGVjLCBUV0w0MDMwX1JFR19BVURJT19JRik7Cj4gKwkJbW9kZSA9 IHR3bDQwMzBfcmVhZChjb2RlYywgVFdMNDAzMF9SRUdfQ09ERUNfTU9ERSk7Cj4gIAo+ICAJCS8q IFNhZmV0eSBjaGVjazogYXJlIHdlIGluIHRoZSBjb3JyZWN0IG9wZXJhdGluZyBtb2RlIGFuZAo+ ICAJCSAqIHRoZSBpbnRlcmZhY2UgaXMgaW4gVERNIG1vZGU/ICovCj4gQEAgLTE4MzIsOCArMTc1 NCw4IEBAIHN0YXRpYyBpbnQgdHdsNDAzMF9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3Ry ZWFtICpzdWJzdHJlYW0sCj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICAJLyogYml0IHJhdGUgKi8KPiAt CW9sZF9tb2RlID0gdHdsNDAzMF9yZWFkX3JlZ19jYWNoZShjb2RlYywKPiAtCQkJVFdMNDAzMF9S RUdfQ09ERUNfTU9ERSkgJiB+VFdMNDAzMF9DT0RFQ1BEWjsKPiArCW9sZF9tb2RlID0gdHdsNDAz MF9yZWFkKGNvZGVjLAo+ICsJCQkJVFdMNDAzMF9SRUdfQ09ERUNfTU9ERSkgJiB+VFdMNDAzMF9D T0RFQ1BEWjsKPiAgCW1vZGUgPSBvbGRfbW9kZSAmIH5UV0w0MDMwX0FQTExfUkFURTsKPiAgCj4g IAlzd2l0Y2ggKHBhcmFtc19yYXRlKHBhcmFtcykpIHsKPiBAQCAtMTg3NCw3ICsxNzk2LDcgQEAg c3RhdGljIGludCB0d2w0MDMwX2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1 YnN0cmVhbSwKPiAgCX0KPiAgCj4gIAkvKiBzYW1wbGUgc2l6ZSAqLwo+IC0Jb2xkX2Zvcm1hdCA9 IHR3bDQwMzBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFRXTDQwMzBfUkVHX0FVRElPX0lGKTsKPiAr CW9sZF9mb3JtYXQgPSB0d2w0MDMwX3JlYWQoY29kZWMsIFRXTDQwMzBfUkVHX0FVRElPX0lGKTsK PiAgCWZvcm1hdCA9IG9sZF9mb3JtYXQ7Cj4gIAlmb3JtYXQgJj0gflRXTDQwMzBfREFUQV9XSURU SDsKPiAgCXN3aXRjaCAocGFyYW1zX2Zvcm1hdChwYXJhbXMpKSB7Cj4gQEAgLTE5NTcsNyArMTg3 OSw3IEBAIHN0YXRpYyBpbnQgdHdsNDAzMF9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkg KmNvZGVjX2RhaSwKPiAgCXU4IG9sZF9mb3JtYXQsIGZvcm1hdDsKPiAgCj4gIAkvKiBnZXQgZm9y bWF0ICovCj4gLQlvbGRfZm9ybWF0ID0gdHdsNDAzMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgVFdM NDAzMF9SRUdfQVVESU9fSUYpOwo+ICsJb2xkX2Zvcm1hdCA9IHR3bDQwMzBfcmVhZChjb2RlYywg VFdMNDAzMF9SRUdfQVVESU9fSUYpOwo+ICAJZm9ybWF0ID0gb2xkX2Zvcm1hdDsKPiAgCj4gIAkv KiBzZXQgbWFzdGVyL3NsYXZlIGF1ZGlvIGludGVyZmFjZSAqLwo+IEBAIC0yMDA3LDcgKzE5Mjks NyBAQCBzdGF0aWMgaW50IHR3bDQwMzBfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpj b2RlY19kYWksCj4gIHN0YXRpYyBpbnQgdHdsNDAzMF9zZXRfdHJpc3RhdGUoc3RydWN0IHNuZF9z b2NfZGFpICpkYWksIGludCB0cmlzdGF0ZSkKPiAgewo+ICAJc3RydWN0IHNuZF9zb2NfY29kZWMg KmNvZGVjID0gZGFpLT5jb2RlYzsKPiAtCXU4IHJlZyA9IHR3bDQwMzBfcmVhZF9yZWdfY2FjaGUo Y29kZWMsIFRXTDQwMzBfUkVHX0FVRElPX0lGKTsKPiArCXU4IHJlZyA9IHR3bDQwMzBfcmVhZChj b2RlYywgVFdMNDAzMF9SRUdfQVVESU9fSUYpOwo+ICAKPiAgCWlmICh0cmlzdGF0ZSkKPiAgCQly ZWcgfD0gVFdMNDAzMF9BSUZfVFJJX0VOOwo+IEBAIC0yMDI0LDcgKzE5NDYsNyBAQCBzdGF0aWMg dm9pZCB0d2w0MDMwX3ZvaWNlX2VuYWJsZShzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGlu dCBkaXJlY3Rpb24sCj4gIHsKPiAgCXU4IHJlZywgbWFzazsKPiAgCj4gLQlyZWcgPSB0d2w0MDMw X3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBUV0w0MDMwX1JFR19PUFRJT04pOwo+ICsJcmVnID0gdHds NDAzMF9yZWFkKGNvZGVjLCBUV0w0MDMwX1JFR19PUFRJT04pOwo+ICAKPiAgCWlmIChkaXJlY3Rp b24gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykKPiAgCQltYXNrID0gVFdMNDAzMF9BUlhM MV9WUlhfRU47Cj4gQEAgLTIwNTksNyArMTk4MSw3IEBAIHN0YXRpYyBpbnQgdHdsNDAzMF92b2lj ZV9zdGFydHVwKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAo+ICAJLyogSWYg dGhlIGNvZGVjIG1vZGUgaXMgbm90IG9wdGlvbjIsIHRoZSB2b2ljZSBQQ00gaW50ZXJmYWNlIGlz IG5vdAo+ICAJICogYXZhaWxhYmxlLgo+ICAJICovCj4gLQltb2RlID0gdHdsNDAzMF9yZWFkX3Jl Z19jYWNoZShjb2RlYywgVFdMNDAzMF9SRUdfQ09ERUNfTU9ERSkKPiArCW1vZGUgPSB0d2w0MDMw X3JlYWQoY29kZWMsIFRXTDQwMzBfUkVHX0NPREVDX01PREUpCj4gIAkJJiBUV0w0MDMwX09QVF9N T0RFOwo+ICAKPiAgCWlmIChtb2RlICE9IFRXTDQwMzBfT1BUSU9OXzIpIHsKPiBAQCAtMjA5MSw3 ICsyMDEzLDcgQEAgc3RhdGljIGludCB0d2w0MDMwX3ZvaWNlX2h3X3BhcmFtcyhzdHJ1Y3Qgc25k X3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKPiAgCXR3bDQwMzBfdm9pY2VfZW5hYmxlKGNvZGVj LCBzdWJzdHJlYW0tPnN0cmVhbSwgMSk7Cj4gIAo+ICAJLyogYml0IHJhdGUgKi8KPiAtCW9sZF9t b2RlID0gdHdsNDAzMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgVFdMNDAzMF9SRUdfQ09ERUNfTU9E RSkKPiArCW9sZF9tb2RlID0gdHdsNDAzMF9yZWFkKGNvZGVjLCBUV0w0MDMwX1JFR19DT0RFQ19N T0RFKQo+ICAJCSYgfihUV0w0MDMwX0NPREVDUERaKTsKPiAgCW1vZGUgPSBvbGRfbW9kZTsKPiAg Cj4gQEAgLTIxNTQsNyArMjA3Niw3IEBAIHN0YXRpYyBpbnQgdHdsNDAzMF92b2ljZV9zZXRfZGFp X2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKPiAgCXU4IG9sZF9mb3JtYXQsIGZv cm1hdDsKPiAgCj4gIAkvKiBnZXQgZm9ybWF0ICovCj4gLQlvbGRfZm9ybWF0ID0gdHdsNDAzMF9y ZWFkX3JlZ19jYWNoZShjb2RlYywgVFdMNDAzMF9SRUdfVk9JQ0VfSUYpOwo+ICsJb2xkX2Zvcm1h dCA9IHR3bDQwMzBfcmVhZChjb2RlYywgVFdMNDAzMF9SRUdfVk9JQ0VfSUYpOwo+ICAJZm9ybWF0 ID0gb2xkX2Zvcm1hdDsKPiAgCj4gIAkvKiBzZXQgbWFzdGVyL3NsYXZlIGF1ZGlvIGludGVyZmFj ZSAqLwo+IEBAIC0yMjAxLDcgKzIxMjMsNyBAQCBzdGF0aWMgaW50IHR3bDQwMzBfdm9pY2Vfc2V0 X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCj4gIHN0YXRpYyBpbnQgdHds NDAzMF92b2ljZV9zZXRfdHJpc3RhdGUoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCB0cmlz dGF0ZSkKPiAgewo+ICAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gZGFpLT5jb2RlYzsK PiAtCXU4IHJlZyA9IHR3bDQwMzBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFRXTDQwMzBfUkVHX1ZP SUNFX0lGKTsKPiArCXU4IHJlZyA9IHR3bDQwMzBfcmVhZChjb2RlYywgVFdMNDAzMF9SRUdfVk9J Q0VfSUYpOwo+ICAKPiAgCWlmICh0cmlzdGF0ZSkKPiAgCQlyZWcgfD0gVFdMNDAzMF9WSUZfVFJJ X0VOOwo+IEBAIC0yMzA0LDEzICsyMjI2LDEwIEBAIHN0YXRpYyBpbnQgdHdsNDAzMF9zb2NfcmVt b3ZlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKPiAgc3RhdGljIHN0cnVjdCBzbmRfc29j X2NvZGVjX2RyaXZlciBzb2NfY29kZWNfZGV2X3R3bDQwMzAgPSB7Cj4gIAkucHJvYmUgPSB0d2w0 MDMwX3NvY19wcm9iZSwKPiAgCS5yZW1vdmUgPSB0d2w0MDMwX3NvY19yZW1vdmUsCj4gLQkucmVh ZCA9IHR3bDQwMzBfcmVhZF9yZWdfY2FjaGUsCj4gKwkucmVhZCA9IHR3bDQwMzBfcmVhZCwKPiAg CS53cml0ZSA9IHR3bDQwMzBfd3JpdGUsCj4gIAkuc2V0X2JpYXNfbGV2ZWwgPSB0d2w0MDMwX3Nl dF9iaWFzX2xldmVsLAo+ICAJLmlkbGVfYmlhc19vZmYgPSB0cnVlLAo+IC0JLnJlZ19jYWNoZV9z aXplID0gc2l6ZW9mKHR3bDQwMzBfcmVnKSwKPiAtCS5yZWdfd29yZF9zaXplID0gc2l6ZW9mKHU4 KSwKPiAtCS5yZWdfY2FjaGVfZGVmYXVsdCA9IHR3bDQwMzBfcmVnLAo+ICAKPiAgCS5jb250cm9s cyA9IHR3bDQwMzBfc25kX2NvbnRyb2xzLAo+ICAJLm51bV9jb250cm9scyA9IEFSUkFZX1NJWkUo dHdsNDAzMF9zbmRfY29udHJvbHMpLAoKLS0gCkxlZSBKb25lcwpMaW5hcm8gU1RNaWNyb2VsZWN0 cm9uaWNzIExhbmRpbmcgVGVhbSBMZWFkCkxpbmFyby5vcmcg4pSCIE9wZW4gc291cmNlIHNvZnR3 YXJlIGZvciBBUk0gU29DcwpGb2xsb3cgTGluYXJvOiBGYWNlYm9vayB8IFR3aXR0ZXIgfCBCbG9n Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFsc2EtZGV2 ZWwgbWFpbGluZyBsaXN0CkFsc2EtZGV2ZWxAYWxzYS1wcm9qZWN0Lm9yZwpodHRwOi8vbWFpbG1h bi5hbHNhLXByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vYWxzYS1kZXZlbAo=