From mboxrd@z Thu Jan 1 00:00:00 1970 From: daeinki@gmail.com Subject: Re: [PATCH v2] libdrm: add exynos drm support Date: Sun, 13 May 2012 01:33:18 +0900 Message-ID: <6FB435AC-7E02-4DEC-8B62-E517221AE727@gmail.com> References: <1333368519-22957-1-git-send-email-inki.dae@samsung.com> <1336126394-7492-1-git-send-email-inki.dae@samsung.com> Mime-Version: 1.0 (1.0) Content-Type: text/plain; charset="euc-kr" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pz0-f49.google.com (mail-pz0-f49.google.com [209.85.210.49]) by gabe.freedesktop.org (Postfix) with ESMTP id B17C39E77A for ; Sat, 12 May 2012 09:33:29 -0700 (PDT) Received: by dadm1 with SMTP id m1so4892600dad.36 for ; Sat, 12 May 2012 09:33:29 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: Rob Clark Cc: Inki Dae , "kyungmin.park@samsung.com" , "sw0312.kim@samsung.com" , "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org CgoKMjAxMi4gNS4gMTMuIL/AwPwgMTI6MDUgUm9iIENsYXJrIDxyb2IuY2xhcmtAbGluYXJvLm9y Zz4gwNu8ujoKCj4gT2ssIEkndmUgcHVzaGVkIHRoaXMgd2l0aCBhIGNvdXBsZSBtaW5vciBjbGVh bnVwczoKPiAKPiAxKSByZW1vdmUgLnBjIGZpbGUgKHdoaWNoIGlzIGdlbmVyYXRlZCBmcm9tIC5w Yy5pbiBmaWxlKQo+IDIpIGJlbG93IHBhdGNoIHRvIGZpeCBhIGNvbXBpbGUgZXJyb3IgKG1heWJl IG5vdCBzZWVuIHcvIG9sZGVyIGdjYz8pCj4gMykgcmVtb3ZlIERSTV9JT0NUTF9FWFlOT1NfR0VN X1VTRVJQVFIgYmVjYXVzZSBJIHRoaW5rIHRoYXQgcGFydCBpcwo+IHN0aWxsIGJlaW5nIGRlYmF0 ZWQgb24ga2VybmVsIHNpZGUuLiBpdCBjYW4gYmUgYWRkZWQgYmFjayBpbiBhbm90aGVyCj4gcGF0 Y2ggb25jZSB0aGVyZSBpcyBhIGNvbmNsdXNpb24gb24gdGhlIGtlcm5lbCBzaWRlCgp5ZXMsIHJp Z2h0LiBJIHNob3VsZCBoYXZlIHJlbW92ZWQgVVNFUlBUUiBpb2N0bCBidXQgSSBtaXNzZWQgaXQg YW5kIGFsc28gdGhhbmsgeW91IGZvciBjbGVhbnVwLgoKVGhhbmtzLApJbmtpIERhZQoKCj4gCj4g LS0tLS0tLS0tCj4gZGlmZiAtLWdpdCBhL2V4eW5vcy9leHlub3NfZHJtaWYuaCBiL2V4eW5vcy9l eHlub3NfZHJtaWYuaAo+IGluZGV4IDdlODM0N2EuLjkyZjYxM2UgMTAwNjQ0Cj4gLS0tIGEvZXh5 bm9zL2V4eW5vc19kcm1pZi5oCj4gKysrIGIvZXh5bm9zL2V4eW5vc19kcm1pZi5oCj4gQEAgLTY2 LDcgKzY2LDcgQEAgdm9pZCBleHlub3NfZGV2aWNlX2Rlc3Ryb3koc3RydWN0IGV4eW5vc19kZXZp Y2UgKmRldik7Cj4gICogYnVmZmVyLW9iamVjdCByZWxhdGVkIGZ1bmN0aW9uczoKPiAgKi8KPiBz dHJ1Y3QgZXh5bm9zX2JvICogZXh5bm9zX2JvX2NyZWF0ZShzdHJ1Y3QgZXh5bm9zX2RldmljZSAq ZGV2LAo+IC0gICAgICAgIHVpbnQzMl90IHNpemUsIHVpbnQzMl90IGZsYWdzKTsKPiArICAgICAg ICBzaXplX3Qgc2l6ZSwgdWludDMyX3QgZmxhZ3MpOwo+IGludCBleHlub3NfYm9fZ2V0X2luZm8o c3RydWN0IGV4eW5vc19kZXZpY2UgKmRldiwgdWludDMyX3QgaGFuZGxlLAo+ICAgICAgICAgICAg c2l6ZV90ICpzaXplLCB1aW50MzJfdCAqZmxhZ3MpOwo+IHZvaWQgZXh5bm9zX2JvX2Rlc3Ryb3ko c3RydWN0IGV4eW5vc19ibyAqYm8pOwo+IC0tLS0tLS0tLQo+IAo+IEJSLAo+IC1SCj4gCj4gT24g RnJpLCBNYXkgNCwgMjAxMiBhdCA1OjEzIEFNLCBJbmtpIERhZSA8aW5raS5kYWVAc2Ftc3VuZy5j b20+IHdyb3RlOgo+PiB0aGlzIHBhdGNoIGFkZHMgbGliZHJtX2V4eW5vcyBoZWxwZXIgbGF5ZXIg dGhhdCBpbmNsdWVzIHNvbWUgaW50ZWZhY2VzCj4+IGZvciBleHlub3Mgc3BlY2lmaWMgZ2VtIGFu ZCB2aXJ0dWFsIGRpc3BsYXkgZHJpdmVyIGFuZCBhbHNvIGFkZHMgZXh5bm9zCj4+IG1vZHVsZSBu YW1lIHRvIG1vZHRlc3QgYW5kIHZibHRlc3QuCj4+IAo+PiBDaGFuZ2Vsb2cgdjI6Cj4+IC0gZml4 ZWQgZXh5bm9zIGJyb2tlbiBpb2N0bC4KPj4gIHRoZSBwb2ludGVyIG9mIHVpbnQ2NF90ICplZGlk IHNob3VsZCBiZSByZW1vdmVkLgo+PiAtIHJlbW92ZWQgdW5uZWNlc3NhcnkgZGVmaW5pdGlvbnMu Cj4+IC0gYWRkZWQgZHJtIHByaW1lIGludGVyZmFjZXMuCj4+ICB0aGlzIGZlYXR1cmUgaXMgdXNl ZCB0byBzaGFyZSBhIGJ1ZmZlciBiZXR3ZWVuIGRyaXZlcnMgb3IgbWVtb3J5IG1hbmFnZXJzCj4+ ICBhbmQgZm9yIHRoaXMsIHBsZWFzZSwgcmVmZXIgdG8gYmVsb3cgbGlua3M6Cj4+ICAgICAgICBo dHRwOi8vd3d3Lm1qbXdpcmVkLm5ldC9rZXJuZWwvRG9jdW1lbnRhdGlvbi9kbWEtYnVmLXNoYXJp bmcudHh0Cj4+ICAgICAgICBodHRwOi8vbHduLm5ldC9BcnRpY2xlcy80ODg2NjQvCj4+IAo+PiB0 aGlzIHBhdGNoIGlzIGJhc2VkIG9uIGEgbGluayBiZWxvdzoKPj4gICAgICAgIGdpdDovL2Fub25n aXQuZnJlZWRlc2t0b3Aub3JnL21lc2EvZHJtCj4+ICAgICAgICBjb21taXQgaWQ6IGQ3MmE0NGM3 YzRmNWVlYTljMWU1YmIwYzM2Y2I5ZTAyMjRiOWNhMjIKPj4gCj4+IFJldmlld2VkLWJ5OiBSb2Ig Q2xhcmsgPHJvYkB0aS5jb20+Cj4+IFJldmlld2VkLWJ5OiBBbGV4IERldWNoZXIgPGFsZXhhbmRl ci5kZXVjaGVyQGFtZC5jb20+Cj4+IFNpZ25lZC1vZmYtYnk6IElua2kgRGFlIDxpbmtpLmRhZUBz YW1zdW5nLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFy a0BzYW1zdW5nLmNvbT4KPj4gLS0tCj4+ICBNYWtlZmlsZS5hbSAgICAgICAgICAgICAgICB8ICAg IDYgKy0KPj4gIGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgIHwgICAxMyArKwo+PiAgZXh5bm9z L01ha2VmaWxlLmFtICAgICAgICAgfCAgIDIyICsrKwo+PiAgZXh5bm9zL2V4eW5vc19kcm0uYyAg ICAgICAgfCAgMzk2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Cj4+ICBleHlub3MvZXh5bm9zX2RybS5oICAgICAgICB8ICAxNDkgKysrKysrKysrKysrKysrKysK Pj4gIGV4eW5vcy9leHlub3NfZHJtaWYuaCAgICAgIHwgICA4OCArKysrKysrKysrCj4+ICBleHlu b3MvbGliZHJtX2V4eW5vcy5wYyAgICB8ICAgMTEgKysKPj4gIGV4eW5vcy9saWJkcm1fZXh5bm9z LnBjLmluIHwgICAxMSArKwo+PiAgdGVzdHMvbW9kZXRlc3QvbW9kZXRlc3QuYyAgfCAgICAyICst Cj4+ICB0ZXN0cy92Ymx0ZXN0L3ZibHRlc3QuYyAgICB8ICAgIDIgKy0KPj4gIDEwIGZpbGVzIGNo YW5nZWQsIDY5NyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+PiAgY3JlYXRlIG1vZGUg MTAwNjQ0IGV4eW5vcy9NYWtlZmlsZS5hbQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGV4eW5vcy9l eHlub3NfZHJtLmMKPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBleHlub3MvZXh5bm9zX2RybS5oCj4+ ICBjcmVhdGUgbW9kZSAxMDA2NDQgZXh5bm9zL2V4eW5vc19kcm1pZi5oCj4+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgZXh5bm9zL2xpYmRybV9leHlub3MucGMKPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBl eHlub3MvbGliZHJtX2V4eW5vcy5wYy5pbgo+PiAKPj4gZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFt IGIvTWFrZWZpbGUuYW0KPj4gaW5kZXggNGY2MjVhMS4uMjU2YThjYyAxMDA2NDQKPj4gLS0tIGEv TWFrZWZpbGUuYW0KPj4gKysrIGIvTWFrZWZpbGUuYW0KPj4gQEAgLTQ1LDcgKzQ1LDExIEBAIGlm IEhBVkVfT01BUAo+PiAgT01BUF9TVUJESVIgPSBvbWFwCj4+ICBlbmRpZgo+PiAKPj4gLVNVQkRJ UlMgPSAuICQoTElCS01TX1NVQkRJUikgJChJTlRFTF9TVUJESVIpICQoTk9VVkVBVV9TVUJESVIp ICQoUkFERU9OX1NVQkRJUikgJChPTUFQX1NVQkRJUikgdGVzdHMgaW5jbHVkZQo+PiAraWYgSEFW RV9FWFlOT1MKPj4gK0VYWU5PU19TVUJESVIgPSBleHlub3MKPj4gK2VuZGlmCj4+ICsKPj4gK1NV QkRJUlMgPSAuICQoTElCS01TX1NVQkRJUikgJChJTlRFTF9TVUJESVIpICQoTk9VVkVBVV9TVUJE SVIpICQoUkFERU9OX1NVQkRJUikgJChPTUFQX1NVQkRJUikgJChFWFlOT1NfU1VCRElSKSB0ZXN0 cyBpbmNsdWRlCj4+IAo+PiAgbGliZHJtX2xhX0xUTElCUkFSSUVTID0gbGliZHJtLmxhCj4+ICBs aWJkcm1fbGFkaXIgPSAkKGxpYmRpcikKPj4gZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2Nv bmZpZ3VyZS5hYwo+PiBpbmRleCA2YTFkOThlLi5mODMyMjAxIDEwMDY0NAo+PiAtLS0gYS9jb25m aWd1cmUuYWMKPj4gKysrIGIvY29uZmlndXJlLmFjCj4+IEBAIC04OCw2ICs4OCwxMSBAQCBBQ19B UkdfRU5BQkxFKG9tYXAtZXhwZXJpbWVudGFsLWFwaSwKPj4gICAgICAgICAgICAgIFtFbmFibGUg c3VwcG9ydCBmb3IgT01BUCdzIGV4cGVyaW1lbnRhbCBBUEkgKGRlZmF1bHQ6IGRpc2FibGVkKV0p LAo+PiAgICAgICAgICAgICAgW09NQVA9JGVuYWJsZXZhbF0sIFtPTUFQPW5vXSkKPj4gCj4+ICtB Q19BUkdfRU5BQkxFKGV4eW5vcy1leHBlcmltZW50YWwtYXBpLAo+PiArICAgICAgICAgICAgIEFT X0hFTFBfU1RSSU5HKFstLWVuYWJsZS1leHlub3MtZXhwZXJpbWVudGFsLWFwaV0sCj4+ICsgICAg ICAgICAgICAgW0VuYWJsZSBzdXBwb3J0IGZvciBFWFlOT1MncyBleHBlcmltZW50YWwgQVBJIChk ZWZhdWx0OiBkaXNhYmxlZCldKSwKPj4gKyAgICAgICAgICAgICBbRVhZTk9TPSRlbmFibGV2YWxd LCBbRVhZTk9TPW5vXSkKPj4gKwo+PiAgZG5sID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+PiAgZG5sIGNo ZWNrIGNvbXBpbGVyIGZsYWdzCj4+ICBBQ19ERUZVTihbTElCRFJNX0NDX1RSWV9GTEFHXSwgWwo+ PiBAQCAtMTkxLDYgKzE5NiwxMSBAQCBpZiB0ZXN0ICJ4JE9NQVAiID0geHllczsgdGhlbgo+PiAg ICAgICAgQUNfREVGSU5FKEhBVkVfT01BUCwgMSwgW0hhdmUgT01BUCBzdXBwb3J0XSkKPj4gIGZp Cj4+IAo+PiArQU1fQ09ORElUSU9OQUwoSEFWRV9FWFlOT1MsIFt0ZXN0ICJ4JEVYWU5PUyIgPSB4 eWVzXSkKPj4gK2lmIHRlc3QgIngkRVhZTk9TIiA9IHh5ZXM7IHRoZW4KPj4gKyAgICAgICBBQ19E RUZJTkUoSEFWRV9FWFlOT1MsIDEsIFtIYXZlIEVYWU5PUyBzdXBwb3J0XSkKPj4gK2ZpCj4+ICsK Pj4gIFBLR19DSEVDS19NT0RVTEVTKENBSVJPLCBjYWlybywgW0hBVkVfQ0FJUk89eWVzXSwgW0hB VkVfQ0FJUk89bm9dKQo+PiAgaWYgdGVzdCAieCRIQVZFX0NBSVJPIiA9IHh5ZXM7IHRoZW4KPj4g ICAgICAgIEFDX0RFRklORShIQVZFX0NBSVJPLCAxLCBbSGF2ZSBjYWlybyBzdXBwb3J0XSkKPj4g QEAgLTMxMyw2ICszMjMsOCBAQCBBQ19DT05GSUdfRklMRVMoWwo+PiAgICAgICAgbm91dmVhdS9s aWJkcm1fbm91dmVhdS5wYwo+PiAgICAgICAgb21hcC9NYWtlZmlsZQo+PiAgICAgICAgb21hcC9s aWJkcm1fb21hcC5wYwo+PiArICAgICAgIGV4eW5vcy9NYWtlZmlsZQo+PiArICAgICAgIGV4eW5v cy9saWJkcm1fZXh5bm9zLnBjCj4+ICAgICAgICB0ZXN0cy9NYWtlZmlsZQo+PiAgICAgICAgdGVz dHMvbW9kZXByaW50L01ha2VmaWxlCj4+ICAgICAgICB0ZXN0cy9tb2RldGVzdC9NYWtlZmlsZQo+ PiBAQCAtMzMzLDQgKzM0NSw1IEBAIGVjaG8gIiAgdm13Z2Z4IEFQSSAgICAgJFZNV0dGWCIKPj4g IGVjaG8gIiAgUmFkZW9uIEFQSSAgICAgJFJBREVPTiIKPj4gIGVjaG8gIiAgTm91dmVhdSBBUEkg ICAgJE5PVVZFQVUiCj4+ICBlY2hvICIgIE9NQVAgQVBJICAgICAgICRPTUFQIgo+PiArZWNobyAi ICBFWFlOT1MgQVBJICAgICAkRVhZTk9TIgo+PiAgZWNobyAiIgo+PiBkaWZmIC0tZ2l0IGEvZXh5 bm9zL01ha2VmaWxlLmFtIGIvZXh5bm9zL01ha2VmaWxlLmFtCj4+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0Cj4+IGluZGV4IDAwMDAwMDAuLmU3ODJkMzQKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9l eHlub3MvTWFrZWZpbGUuYW0KPj4gQEAgLTAsMCArMSwyMiBAQAo+PiArQU1fQ0ZMQUdTID0gXAo+ PiArICAgICAgICQoV0FSTl9DRkxBR1MpIFwKPj4gKyAgICAgICAtSSQodG9wX3NyY2RpcikgXAo+ PiArICAgICAgIC1JJCh0b3Bfc3JjZGlyKS9leHlub3MgXAo+PiArICAgICAgICQoUFRIUkVBRFNU VUJTX0NGTEFHUykgXAo+PiArICAgICAgIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlL2RybQo+PiAr Cj4+ICtsaWJkcm1fZXh5bm9zX2xhX0xUTElCUkFSSUVTID0gbGliZHJtX2V4eW5vcy5sYQo+PiAr bGliZHJtX2V4eW5vc19sYWRpciA9ICQobGliZGlyKQo+PiArbGliZHJtX2V4eW5vc19sYV9MREZM QUdTID0gLXZlcnNpb24tbnVtYmVyIDE6MDowIC1uby11bmRlZmluZWQKPj4gK2xpYmRybV9leHlu b3NfbGFfTElCQUREID0gLi4vbGliZHJtLmxhIEBQVEhSRUFEU1RVQlNfTElCU0AKPj4gKwo+PiAr bGliZHJtX2V4eW5vc19sYV9TT1VSQ0VTID0gZXh5bm9zX2RybS5jCj4+ICsKPj4gK2xpYmRybV9l eHlub3Njb21tb25pbmNsdWRlZGlyID0gJHtpbmNsdWRlZGlyfS9leHlub3MKPj4gK2xpYmRybV9l eHlub3Njb21tb25pbmNsdWRlX0hFQURFUlMgPSBleHlub3NfZHJtLmgKPj4gKwo+PiArbGliZHJt X2V4eW5vc2luY2x1ZGVkaXIgPSAke2luY2x1ZGVkaXJ9L2xpYmRybQo+PiArbGliZHJtX2V4eW5v c2luY2x1ZGVfSEVBREVSUyA9IGV4eW5vc19kcm1pZi5oCj4+ICsKPj4gK3BrZ2NvbmZpZ2RpciA9 IEBwa2djb25maWdkaXJACj4+ICtwa2djb25maWdfREFUQSA9IGxpYmRybV9leHlub3MucGMKPj4g ZGlmZiAtLWdpdCBhL2V4eW5vcy9leHlub3NfZHJtLmMgYi9leHlub3MvZXh5bm9zX2RybS5jCj4+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAuLjRkYjc1NWUKPj4gLS0tIC9k ZXYvbnVsbAo+PiArKysgYi9leHlub3MvZXh5bm9zX2RybS5jCj4+IEBAIC0wLDAgKzEsMzk2IEBA Cj4+ICsvKgo+PiArICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MgQ28u LCBMdGQuCj4+ICsgKgo+PiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKPj4gKyAqIGNvcHkgb2YgdGhpcyBz b2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJl IiksCj4+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBp bmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29w eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPj4gKyAq IGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u cyB0byB3aG9tIHRoZQo+PiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPj4gKyAqCj4+ICsgKiBUaGUgYWJvdmUg Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRo ZSBuZXh0Cj4+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMg b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4+ICsgKiBTb2Z0d2FyZS4KPj4gKyAqCj4+ ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+PiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4+ICsgKiBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8g RVZFTlQgU0hBTEwKPj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJ QUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4+ICsgKiBMSUFCSUxJVFksIFdI RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO RyBGUk9NLAo+PiArICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUg T1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKPj4gKyAqIFNPRlRXQVJFLgo+PiAr ICoKPj4gKyAqIEF1dGhvcnM6Cj4+ICsgKiAgICBJbmtpIERhZSA8aW5raS5kYWVAc2Ftc3VuZy5j b20+Cj4+ICsgKi8KPj4gKwo+PiArI2lmZGVmIEhBVkVfQ09ORklHX0gKPj4gKyNpbmNsdWRlICJj b25maWcuaCIKPj4gKyNlbmRpZgo+PiArCj4+ICsjaW5jbHVkZSA8c3RkbGliLmg+Cj4+ICsjaW5j bHVkZSA8c3RkaW8uaD4KPj4gKyNpbmNsdWRlIDxzdHJpbmcuaD4KPj4gKyNpbmNsdWRlIDxlcnJu by5oPgo+PiArCj4+ICsjaW5jbHVkZSA8c3lzL21tYW4uaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9z dGRkZWYuaD4KPj4gKwo+PiArI2luY2x1ZGUgPHhmODZkcm0uaD4KPj4gKwo+PiArI2luY2x1ZGUg ImV4eW5vc19kcm0uaCIKPj4gKyNpbmNsdWRlICJleHlub3NfZHJtaWYuaCIKPj4gKwo+PiArLyoK Pj4gKyAqIENyZWF0ZSBleHlub3MgZHJtIGRldmljZSBvYmplY3QuCj4+ICsgKgo+PiArICogQGZk OiBmaWxlIGRlc2NyaXB0b3IgdG8gZXh5bm9zIGRybSBkcml2ZXIgb3BlbmVkLgo+PiArICoKPj4g KyAqIGlmIHRydWUsIHJldHVybiB0aGUgZGV2aWNlIG9iamVjdCBlbHNlIE5VTEwuCj4+ICsgKi8K Pj4gK3N0cnVjdCBleHlub3NfZGV2aWNlICogZXh5bm9zX2RldmljZV9jcmVhdGUoaW50IGZkKQo+ PiArewo+PiArICAgICAgIHN0cnVjdCBleHlub3NfZGV2aWNlICpkZXY7Cj4+ICsKPj4gKyAgICAg ICBkZXYgPSBjYWxsb2Moc2l6ZW9mKCpkZXYpLCAxKTsKPj4gKyAgICAgICBpZiAoIWRldikgewo+ PiArICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJmYWlsZWQgdG8gY3JlYXRlIGRldmlj ZVslc10uXG4iLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVycm9yKGVy cm5vKSk7Cj4+ICsgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKPj4gKyAgICAgICB9Cj4+ICsK Pj4gKyAgICAgICBkZXYtPmZkID0gZmQ7Cj4+ICsKPj4gKyAgICAgICByZXR1cm4gZGV2Owo+PiAr fQo+PiArCj4+ICsvKgo+PiArICogRGVzdHJveSBleHlub3MgZHJtIGRldmljZSBvYmplY3QKPj4g KyAqCj4+ICsgKiBAZGV2OiBleHlub3MgZHJtIGRldmljZSBvYmplY3QuCj4+ICsgKi8KPj4gK3Zv aWQgZXh5bm9zX2RldmljZV9kZXN0cm95KHN0cnVjdCBleHlub3NfZGV2aWNlICpkZXYpCj4+ICt7 Cj4+ICsgICAgICAgZnJlZShkZXYpOwo+PiArfQo+PiArCj4+ICsvKgo+PiArICogQ3JlYXRlIGEg ZXh5bm9zIGJ1ZmZlciBvYmplY3QgdG8gZXh5bm9zIGRybSBkZXZpY2UuCj4+ICsgKgo+PiArICog QGRldjogZXh5bm9zIGRybSBkZXZpY2Ugb2JqZWN0Lgo+PiArICogQHNpemU6IHVzZXItZGVzaXJl ZCBzaXplLgo+PiArICogZmxhZ3M6IHVzZXItZGVzaXJlZCBtZW1vcnkgdHlwZS4KPj4gKyAqICAg ICB1c2VyIGNhbiBzZXQgb25lIG9yIG1vcmUgdHlwZXMgYW1vbmcgc2V2ZXJhbCB0eXBlcyB0byBt ZW1vcnkKPj4gKyAqICAgICBhbGxvY2F0aW9uIGFuZCBjYWNoZSBhdHRyaWJ1dGUgdHlwZXMuIGFu ZCBhcyBkZWZhdWx0LAo+PiArICogICAgIEVYWU5PU19CT19OT05DT05USUcgYW5kIEVYWU5PUy1C T19OT05DQUNIQUJMRSB0eXBlcyB3b3VsZAo+PiArICogICAgIGJlIHVzZWQuCj4+ICsgKgo+PiAr ICogaWYgdHJ1ZSwgcmV0dXJuIGEgZXh5bm9zIGJ1ZmZlciBvYmplY3QgZWxzZSBOVUxMLgo+PiAr ICovCj4+ICtzdHJ1Y3QgZXh5bm9zX2JvICogZXh5bm9zX2JvX2NyZWF0ZShzdHJ1Y3QgZXh5bm9z X2RldmljZSAqZGV2LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzaXplX3Qgc2l6ZSwgdWludDMyX3QgZmxhZ3MpCj4+ICt7Cj4+ICsgICAgICAgc3Ry dWN0IGV4eW5vc19ibyAqYm87Cj4+ICsgICAgICAgc3RydWN0IGRybV9leHlub3NfZ2VtX2NyZWF0 ZSByZXEgPSB7Cj4+ICsgICAgICAgICAgICAgICAuc2l6ZSA9IHNpemUsCj4+ICsgICAgICAgICAg ICAgICAuZmxhZ3MgPSBmbGFncywKPj4gKyAgICAgICB9Owo+PiArCj4+ICsgICAgICAgaWYgKHNp emUgPT0gMCkgewo+PiArICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJpbnZhbGlkIHNp emUuXG4iKTsKPj4gKyAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKPj4gKyAgICAgICB9Cj4+ICsK Pj4gKyAgICAgICBibyA9IGNhbGxvYyhzaXplb2YoKmJvKSwgMSk7Cj4+ICsgICAgICAgaWYgKCFi bykgewo+PiArICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJmYWlsZWQgdG8gY3JlYXRl IGJvWyVzXS5cbiIsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZXJyb3Io ZXJybm8pKTsKPj4gKyAgICAgICAgICAgICAgIGdvdG8gZXJyX2ZyZWVfYm87Cj4+ICsgICAgICAg fQo+PiArCj4+ICsgICAgICAgYm8tPmRldiA9IGRldjsKPj4gKwo+PiArICAgICAgIGlmIChkcm1J b2N0bChkZXYtPmZkLCBEUk1fSU9DVExfRVhZTk9TX0dFTV9DUkVBVEUsICZyZXEpKXsKPj4gKyAg ICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRvIGNyZWF0ZSBnZW0gb2JqZWN0 WyVzXS5cbiIsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZXJyb3IoZXJy bm8pKTsKPj4gKyAgICAgICAgICAgICAgIGdvdG8gZXJyX2ZyZWVfYm87Cj4+ICsgICAgICAgfQo+ PiArCj4+ICsgICAgICAgYm8tPmhhbmRsZSA9IHJlcS5oYW5kbGU7Cj4+ICsgICAgICAgYm8tPnNp emUgPSBzaXplOwo+PiArICAgICAgIGJvLT5mbGFncyA9IGZsYWdzOwo+PiArCj4+ICsgICAgICAg cmV0dXJuIGJvOwo+PiArCj4+ICtlcnJfZnJlZV9ibzoKPj4gKyAgICAgICBmcmVlKGJvKTsKPj4g K2ZhaWw6Cj4+ICsgICAgICAgcmV0dXJuIE5VTEw7Cj4+ICt9Cj4+ICsKPj4gKy8qCj4+ICsgKiBH ZXQgaW5mb3JtYXRpb24gdG8gZ2VtIHJlZ2lvbiBhbGxvY2F0ZWQuCj4+ICsgKgo+PiArICogQGRl djogZXh5bm9zIGRybSBkZXZpY2Ugb2JqZWN0Lgo+PiArICogQGhhbmRsZTogZ2VtIGhhbmRsZSB0 byByZXF1ZXN0IGdlbSBpbmZvLgo+PiArICogQHNpemU6IHNpemUgdG8gZ2VtIG9iamVjdCBhbmQg cmV0dXJuZWQgYnkga2VybmVsIHNpZGUuCj4+ICsgKiBAZmxhZ3M6IGdlbSBmbGFncyB0byBnZW0g b2JqZWN0IGFuZCByZXR1cm5lZCBieSBrZXJuZWwgc2lkZS4KPj4gKyAqCj4+ICsgKiB3aXRoIHRo aXMgZnVuY3Rpb24gY2FsbCwgeW91IGNhbiBnZXQgZmxhZ3MgYW5kIHNpemUgdG8gZ2VtIGhhbmRs ZQo+PiArICogdGhyb3VnaCBibyBvYmplY3QuCj4+ICsgKgo+PiArICogaWYgdHJ1ZSwgcmV0dXJu IDAgZWxzZSBuZWdhdGl2ZS4KPj4gKyAqLwo+PiAraW50IGV4eW5vc19ib19nZXRfaW5mbyhzdHJ1 Y3QgZXh5bm9zX2RldmljZSAqZGV2LCB1aW50MzJfdCBoYW5kbGUsCj4+ICsgICAgICAgICAgICAg ICAgICAgICAgIHNpemVfdCAqc2l6ZSwgdWludDMyX3QgKmZsYWdzKQo+PiArewo+PiArICAgICAg IGludCByZXQ7Cj4+ICsgICAgICAgc3RydWN0IGRybV9leHlub3NfZ2VtX2luZm8gcmVxID0gewo+ PiArICAgICAgICAgICAgICAgLmhhbmRsZSA9IGhhbmRsZSwKPj4gKyAgICAgICB9Owo+PiArCj4+ ICsgICAgICAgcmV0ID0gZHJtSW9jdGwoZGV2LT5mZCwgRFJNX0lPQ1RMX0VYWU5PU19HRU1fR0VU LCAmcmVxKTsKPj4gKyAgICAgICBpZiAocmV0IDwgMCkgewo+PiArICAgICAgICAgICAgICAgZnBy aW50ZihzdGRlcnIsICJmYWlsZWQgdG8gZ2V0IGdlbSBvYmplY3QgaW5mb3JtYXRpb25bJXNdLlxu IiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlcnJvcihlcnJubykpOwo+ PiArICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4gKyAgICAgICB9Cj4+ICsKPj4gKyAgICAg ICAqc2l6ZSA9IHJlcS5zaXplOwo+PiArICAgICAgICpmbGFncyA9IHJlcS5mbGFnczsKPj4gKwo+ PiArICAgICAgIHJldHVybiAwOwo+PiArfQo+PiArCj4+ICsvKgo+PiArICogRGVzdHJveSBhIGV4 eW5vcyBidWZmZXIgb2JqZWN0Lgo+PiArICoKPj4gKyAqIEBibzogYSBleHlub3MgYnVmZmVyIG9i amVjdCB0byBiZSBkZXN0cm95ZWQuCj4+ICsgKi8KPj4gK3ZvaWQgZXh5bm9zX2JvX2Rlc3Ryb3ko c3RydWN0IGV4eW5vc19ibyAqYm8pCj4+ICt7Cj4+ICsgICAgICAgaWYgKCFibykKPj4gKyAgICAg ICAgICAgICAgIHJldHVybjsKPj4gKwo+PiArICAgICAgIGlmIChiby0+dmFkZHIpCj4+ICsgICAg ICAgICAgICAgICBtdW5tYXAoYm8tPnZhZGRyLCBiby0+c2l6ZSk7Cj4+ICsKPj4gKyAgICAgICBp ZiAoYm8tPmhhbmRsZSkgewo+PiArICAgICAgICAgICAgICAgc3RydWN0IGRybV9nZW1fY2xvc2Ug cmVxID0gewo+PiArICAgICAgICAgICAgICAgICAgICAgICAuaGFuZGxlID0gYm8tPmhhbmRsZSwK Pj4gKyAgICAgICAgICAgICAgIH07Cj4+ICsKPj4gKyAgICAgICAgICAgICAgIGRybUlvY3RsKGJv LT5kZXYtPmZkLCBEUk1fSU9DVExfR0VNX0NMT1NFLCAmcmVxKTsKPj4gKyAgICAgICB9Cj4+ICsK Pj4gKyAgICAgICBmcmVlKGJvKTsKPj4gK30KPj4gKwo+PiArCj4+ICsvKgo+PiArICogR2V0IGEg ZXh5bm9zIGJ1ZmZlciBvYmplY3QgZnJvbSBhIGdlbSBnbG9iYWwgb2JqZWN0IG5hbWUuCj4+ICsg Kgo+PiArICogQGRldjogYSBleHlub3MgZGV2aWNlIG9iamVjdC4KPj4gKyAqIEBuYW1lOiBhIGdl bSBnbG9iYWwgb2JqZWN0IG5hbWUgZXhwb3J0ZWQgYnkgYW5vdGhlciBwcm9jZXNzLgo+PiArICoK Pj4gKyAqIHRoaXMgaW50ZXJmYWNlIGlzIHVzZWQgdG8gZ2V0IGEgZXh5bm9zIGJ1ZmZlciBvYmpl Y3QgZnJvbSBhIGdlbQo+PiArICogZ2xvYmFsIG9iamVjdCBuYW1lIHNlbnQgYnkgYW5vdGhlciBw cm9jZXNzIGZvciBidWZmZXIgc2hhcmluZy4KPj4gKyAqCj4+ICsgKiBpZiB0cnVlLCByZXR1cm4g YSBleHlub3MgYnVmZmVyIG9iamVjdCBlbHNlIE5VTEwuCj4+ICsgKgo+PiArICovCj4+ICtzdHJ1 Y3QgZXh5bm9zX2JvICogZXh5bm9zX2JvX2Zyb21fbmFtZShzdHJ1Y3QgZXh5bm9zX2RldmljZSAq ZGV2LCB1aW50MzJfdCBuYW1lKQo+PiArewo+PiArICAgICAgIHN0cnVjdCBleHlub3NfYm8gKmJv Owo+PiArICAgICAgIHN0cnVjdCBkcm1fZ2VtX29wZW4gcmVxID0gewo+PiArICAgICAgICAgICAg ICAgLm5hbWUgPSBuYW1lLAo+PiArICAgICAgIH07Cj4+ICsKPj4gKyAgICAgICBibyA9IGNhbGxv YyhzaXplb2YoKmJvKSwgMSk7Cj4+ICsgICAgICAgaWYgKCFibykgewo+PiArICAgICAgICAgICAg ICAgZnByaW50ZihzdGRlcnIsICJmYWlsZWQgdG8gYWxsb2NhdGUgYm9bJXNdLlxuIiwKPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlcnJvcihlcnJubykpOwo+PiArICAgICAg ICAgICAgICAgcmV0dXJuIE5VTEw7Cj4+ICsgICAgICAgfQo+PiArCj4+ICsgICAgICAgaWYgKGRy bUlvY3RsKGRldi0+ZmQsIERSTV9JT0NUTF9HRU1fT1BFTiwgJnJlcSkpIHsKPj4gKyAgICAgICAg ICAgICAgIGZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRvIG9wZW4gZ2VtIG9iamVjdFslc10uXG4i LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVycm9yKGVycm5vKSk7Cj4+ ICsgICAgICAgICAgICAgICBnb3RvIGVycl9mcmVlX2JvOwo+PiArICAgICAgIH0KPj4gKwo+PiAr ICAgICAgIGJvLT5kZXYgPSBkZXY7Cj4+ICsgICAgICAgYm8tPm5hbWUgPSBuYW1lOwo+PiArICAg ICAgIGJvLT5oYW5kbGUgPSByZXEuaGFuZGxlOwo+PiArCj4+ICsgICAgICAgcmV0dXJuIGJvOwo+ PiArCj4+ICtlcnJfZnJlZV9ibzoKPj4gKyAgICAgICBmcmVlKGJvKTsKPj4gKyAgICAgICByZXR1 cm4gTlVMTDsKPj4gK30KPj4gKwo+PiArLyoKPj4gKyAqIEdldCBhIGdlbSBnbG9iYWwgb2JqZWN0 IG5hbWUgZnJvbSBhIGdlbSBvYmplY3QgaGFuZGxlLgo+PiArICoKPj4gKyAqIEBibzogYSBleHlu b3MgYnVmZmVyIG9iamVjdCBpbmNsdWRpbmcgZ2VtIGhhbmRsZS4KPj4gKyAqIEBuYW1lOiBhIGdl bSBnbG9iYWwgb2JqZWN0IG5hbWUgdG8gYmUgZ290IGJ5IGtlcm5lbCBkcml2ZXIuCj4+ICsgKgo+ PiArICogdGhpcyBpbnRlcmZhY2UgaXMgdXNlZCB0byBnZXQgYSBnZW0gZ2xvYmFsIG9iamVjdCBu YW1lIGZyb20gYSBnZW0gb2JqZWN0Cj4+ICsgKiBoYW5kbGUgdG8gYSBidWZmZXIgdGhhdCB3YW50 cyB0byBzaGFyZSBpdCB3aXRoIGFub3RoZXIgcHJvY2Vzcy4KPj4gKyAqCj4+ICsgKiBpZiB0cnVl LCByZXR1cm4gMCBlbHNlIG5lZ2F0aXZlLgo+PiArICovCj4+ICtpbnQgZXh5bm9zX2JvX2dldF9u YW1lKHN0cnVjdCBleHlub3NfYm8gKmJvLCB1aW50MzJfdCAqbmFtZSkKPj4gK3sKPj4gKyAgICAg ICBpZiAoIWJvLT5uYW1lKSB7Cj4+ICsgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2dlbV9mbGlu ayByZXEgPSB7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIC5oYW5kbGUgPSBiby0+aGFuZGxl LAo+PiArICAgICAgICAgICAgICAgfTsKPj4gKyAgICAgICAgICAgICAgIGludCByZXQ7Cj4+ICsK Pj4gKyAgICAgICAgICAgICAgIHJldCA9IGRybUlvY3RsKGJvLT5kZXYtPmZkLCBEUk1fSU9DVExf R0VNX0ZMSU5LLCAmcmVxKTsKPj4gKyAgICAgICAgICAgICAgIGlmIChyZXQpIHsKPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJmYWlsZWQgdG8gZ2V0IGdlbSBnbG9i YWwgbmFtZVslc10uXG4iLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RyZXJyb3IoZXJybm8pKTsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJl dDsKPj4gKyAgICAgICAgICAgICAgIH0KPj4gKwo+PiArICAgICAgICAgICAgICAgYm8tPm5hbWUg PSByZXEubmFtZTsKPj4gKyAgICAgICB9Cj4+ICsKPj4gKyAgICAgICAqbmFtZSA9IGJvLT5uYW1l Owo+PiArCj4+ICsgICAgICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3VpbnQzMl90IGV4eW5v c19ib19oYW5kbGUoc3RydWN0IGV4eW5vc19ibyAqYm8pCj4+ICt7Cj4+ICsgICAgICAgcmV0dXJu IGJvLT5oYW5kbGU7Cj4+ICt9Cj4+ICsKPj4gKy8qCj4+ICsgKiBNbWFwIGEgYnVmZmVyIHRvIHVz ZXIgc3BhY2UuCj4+ICsgKgo+PiArICogQGJvOiBhIGV4eW5vcyBidWZmZXIgb2JqZWN0IGluY2x1 ZGluZyBhIGdlbSBvYmplY3QgaGFuZGxlIHRvIGJlIG1tYXBwZWQKPj4gKyAqICAgICB0byB1c2Vy IHNwYWNlLgo+PiArICoKPj4gKyAqIGlmIHRydWUsIHVzZXIgcG9pbnRlciBtbWFwZWQgZWxzZSBO VUxMLgo+PiArICovCj4+ICt2b2lkICpleHlub3NfYm9fbWFwKHN0cnVjdCBleHlub3NfYm8gKmJv KQo+PiArewo+PiArICAgICAgIGlmICghYm8tPnZhZGRyKSB7Cj4+ICsgICAgICAgICAgICAgICBz dHJ1Y3QgZXh5bm9zX2RldmljZSAqZGV2ID0gYm8tPmRldjsKPj4gKyAgICAgICAgICAgICAgIHN0 cnVjdCBkcm1fZXh5bm9zX2dlbV9tbWFwIHJlcSA9IHsKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgLmhhbmRsZSA9IGJvLT5oYW5kbGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIC5zaXpl ICAgPSBiby0+c2l6ZSwKPj4gKyAgICAgICAgICAgICAgIH07Cj4+ICsgICAgICAgICAgICAgICBp bnQgcmV0Owo+PiArCj4+ICsgICAgICAgICAgICAgICByZXQgPSBkcm1Jb2N0bChkZXYtPmZkLCBE Uk1fSU9DVExfRVhZTk9TX0dFTV9NTUFQLCAmcmVxKTsKPj4gKyAgICAgICAgICAgICAgIGlmIChy ZXQpIHsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJmYWlsZWQg dG8gbW1hcFslc10uXG4iLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVy cm9yKGVycm5vKSk7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwo+PiAr ICAgICAgICAgICAgICAgfQo+PiArCj4+ICsgICAgICAgICAgICAgICBiby0+dmFkZHIgPSByZXEu bWFwcGVkOwo+PiArICAgICAgIH0KPj4gKwo+PiArICAgICAgIHJldHVybiBiby0+dmFkZHI7Cj4+ ICt9Cj4+ICsKPj4gKy8qCj4+ICsgKiBFeHBvcnQgZ2VtIG9iamVjdCB0byBkbWFidWYgYXMgZmls ZSBkZXNjcmlwdG9yLgo+PiArICoKPj4gKyAqIEBkZXY6IGEgZXh5bm9zIGRldmljZSBvYmplY3Qu Cj4+ICsgKiBAaGFuZGxlOiBnZW0gaGFuZGxlIHRvIGJlIGV4cG9ydGVkIGludG8gZG1hYnVmIGFz IGZpbGUgZGVzY3JpcHRvci4KPj4gKyAqIEBmZDogZmlsZSBkZXNjcmlwdG9yIHRvIGRtYWJ1ZiBl eHBvcnRlZCBmcm9tIGdlbSBoYW5kbGUgYW5kCj4+ICsgKiAgICAgcmV0dXJuZWQgYnkga2VybmVs IHNpZGUuCj4+ICsgKgo+PiArICogaWYgdHJ1ZSwgcmV0dXJuIDAgZWxzZSBuZWdhdGl2ZS4KPj4g KyAqLwo+PiAraW50IGV4eW5vc19wcmltZV9oYW5kbGVfdG9fZmQoc3RydWN0IGV4eW5vc19kZXZp Y2UgKmRldiwgdWludDMyX3QgaGFuZGxlLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW50ICpmZCkKPj4gK3sKPj4gKyAgICAgICBpbnQgcmV0Owo+PiArICAgICAg IHN0cnVjdCBkcm1fcHJpbWVfaGFuZGxlIHJlcSA9IHsKPj4gKyAgICAgICAgICAgICAgIC5oYW5k bGUgPSBoYW5kbGUsCj4+ICsgICAgICAgfTsKPj4gKwo+PiArICAgICAgIHJldCA9IGRybUlvY3Rs KGRldi0+ZmQsIERSTV9JT0NUTF9QUklNRV9IQU5ETEVfVE9fRkQsICZyZXEpOwo+PiArICAgICAg IGlmIChyZXQpIHsKPj4gKyAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZmFpbGVkIHRv IG1tYXBbJXNdLlxuIiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgc3RyZXJyb3IoZXJybm8p KTsKPj4gKyAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+ICsgICAgICAgfQo+PiArCj4+ICsg ICAgICAgKmZkID0gcmVxLmZkOwo+PiArICAgICAgIHJldHVybiAwOwo+PiArfQo+PiArCj4+ICsv Kgo+PiArICogSW1wb3J0IGZpbGUgZGVzY3JpcHRvciBpbnRvIGdlbSBoYW5kbGUuCj4+ICsgKgo+ PiArICogQGRldjogYSBleHlub3MgZGV2aWNlIG9iamVjdC4KPj4gKyAqIEBmZDogZmlsZSBkZXNj cmlwdG9yIGV4cG9ydGVkIGludG8gZG1hYnVmLgo+PiArICogQGhhbmRsZTogZ2VtIGhhbmRsZSB0 byBnZW0gb2JqZWN0IGltcG9ydGVkIGZyb20gZmlsZSBkZXNjcmlwdG9yCj4+ICsgKiAgICAgYW5k IHJldHVybmVkIGJ5IGtlcm5lbCBzaWRlLgo+PiArICoKPj4gKyAqIGlmIHRydWUsIHJldHVybiAw IGVsc2UgbmVnYXRpdmUuCj4+ICsgKi8KPj4gK2ludCBleHlub3NfcHJpbWVfZmRfdG9faGFuZGxl KHN0cnVjdCBleHlub3NfZGV2aWNlICpkZXYsIGludCBmZCwKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpoYW5kbGUpCj4+ICt7Cj4+ICsgICAgICAg aW50IHJldDsKPj4gKyAgICAgICBzdHJ1Y3QgZHJtX3ByaW1lX2hhbmRsZSByZXEgPSB7Cj4+ICsg ICAgICAgICAgICAgICAuZmQgICAgID0gZmQsCj4+ICsgICAgICAgfTsKPj4gKwo+PiArICAgICAg IHJldCA9IGRybUlvY3RsKGRldi0+ZmQsIERSTV9JT0NUTF9QUklNRV9GRF9UT19IQU5ETEUsICZy ZXEpOwo+PiArICAgICAgIGlmIChyZXQpIHsKPj4gKyAgICAgICAgICAgICAgIGZwcmludGYoc3Rk ZXJyLCAiZmFpbGVkIHRvIG1tYXBbJXNdLlxuIiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAg c3RyZXJyb3IoZXJybm8pKTsKPj4gKyAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+ICsgICAg ICAgfQo+PiArCj4+ICsgICAgICAgKmhhbmRsZSA9IHJlcS5oYW5kbGU7Cj4+ICsgICAgICAgcmV0 dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gKwo+PiArCj4+ICsvKgo+PiArICogUmVxdWVzdCBXaXJlbGVz cyBEaXNwbGF5IGNvbm5lY3Rpb24gb3IgZGlzY29ubmVjdGlvbi4KPj4gKyAqCj4+ICsgKiBAZGV2 OiBhIGV4eW5vcyBkZXZpY2Ugb2JqZWN0Lgo+PiArICogQGNvbm5lY3Q6IGluZGljYXRlIHdoZXRo ZXIgY29ubmVjdG9pbiBvciBkaXNjb25uZWN0aW9uIHJlcXVlc3QuCj4+ICsgKiBAZXh0OiBpbmRp Y2F0ZSB3aGV0aGVyIGVkaWQgZGF0YSBpbmNsdWRlcyBleHRlbnRpb25zIGRhdGEgb3Igbm90Lgo+ PiArICogQGVkaWQ6IGEgcG9pbnRlciB0byBlZGlkIGRhdGEgZnJvbSBXaXJlbGVzcyBEaXNwbGF5 IGRldmljZS4KPj4gKyAqCj4+ICsgKiB0aGlzIGludGVyZmFjZSBpcyB1c2VkIHRvIHJlcXVlc3Qg VmlydHVhbCBEaXNwbGF5IGRyaXZlciBjb25uZWN0aW9uIG9yCj4+ICsgKiBkaXNjb25uZWN0aW9u LiBmb3IgdGhpcywgdXNlciBzaG91bGQgZ2V0IGEgZWRpZCBkYXRhIGZyb20gdGhlIFdpcmVsZXNz Cj4+ICsgKiBEaXNwbGF5IGRldmljZSBhbmQgdGhlbiBzZW5kIHRoYXQgZGF0YSB0byBrZXJuZWwg ZHJpdmVyIHdpdGggY29ubmVjdGlvbgo+PiArICogcmVxdWVzdAo+PiArICoKPj4gKyAqIGlmIHRy dWUsIHJldHVybiAwIGVsc2UgbmVnYXRpdmUuCj4+ICsgKi8KPj4gK2ludCBleHlub3NfdmlkaV9j b25uZWN0aW9uKHN0cnVjdCBleHlub3NfZGV2aWNlICpkZXYsIHVpbnQzMl90IGNvbm5lY3QsCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZXh0LCB2b2lkICplZGlk KQo+PiArewo+PiArICAgICAgIHN0cnVjdCBkcm1fZXh5bm9zX3ZpZGlfY29ubmVjdGlvbiByZXEg PSB7Cj4+ICsgICAgICAgICAgICAgICAuY29ubmVjdGlvbiAgICAgPSBjb25uZWN0LAo+PiArICAg ICAgICAgICAgICAgLmV4dGVuc2lvbnMgICAgID0gZXh0LAo+PiArICAgICAgICAgICAgICAgLmVk aWQgICAgICAgICAgID0gZWRpZCwKPj4gKyAgICAgICB9Owo+PiArICAgICAgIGludCByZXQ7Cj4+ ICsKPj4gKyAgICAgICByZXQgPSBkcm1Jb2N0bChkZXYtPmZkLCBEUk1fSU9DVExfRVhZTk9TX1ZJ RElfQ09OTkVDVElPTiwgJnJlcSk7Cj4+ICsgICAgICAgaWYgKHJldCkgewo+PiArICAgICAgICAg ICAgICAgZnByaW50ZihzdGRlcnIsICJmYWlsZWQgdG8gcmVxdWVzdCB2aWRpIGNvbm5lY3Rpb25b JXNdLlxuIiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlcnJvcihlcnJu bykpOwo+PiArICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4gKyAgICAgICB9Cj4+ICsKPj4g KyAgICAgICByZXR1cm4gMDsKPj4gK30KPj4gZGlmZiAtLWdpdCBhL2V4eW5vcy9leHlub3NfZHJt LmggYi9leHlub3MvZXh5bm9zX2RybS5oCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4 IDAwMDAwMDAuLjg3ODZiOTIKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9leHlub3MvZXh5bm9z X2RybS5oCj4+IEBAIC0wLDAgKzEsMTQ5IEBACj4+ICsvKiBleHlub3NfZHJtLmgKPj4gKyAqCj4+ ICsgKiBDb3B5cmlnaHQgKGMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KPj4g KyAqIEF1dGhvcnM6Cj4+ICsgKiAgICAgSW5raSBEYWUgPGlua2kuZGFlQHNhbXN1bmcuY29tPgo+ PiArICogICAgIEpvb255b3VuZyBTaGltIDxqeTA5MjIuc2hpbUBzYW1zdW5nLmNvbT4KPj4gKyAq ICAgICBTZXVuZy1Xb28gS2ltIDxzdzAzMTIua2ltQHNhbXN1bmcuY29tPgo+PiArICoKPj4gKyAq IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy c29uIG9idGFpbmluZyBhCj4+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0 ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+PiArICogdG8gZGVhbCBp biB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGlt aXRhdGlvbgo+PiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1 Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMg b2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPj4gKyAq IFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5n IGNvbmRpdGlvbnM6Cj4+ICsgKgo+PiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAo+PiArICogcGFyYWdy YXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRp b25zIG9mIHRoZQo+PiArICogU29mdHdhcmUuCj4+ICsgKgo+PiArICogVEhFIFNPRlRXQVJFIElT IFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Mg T1IKPj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+PiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4+ICsgKiBW QSBMSU5VWCBTWVNURU1TIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENM QUlNLCBEQU1BR0VTIE9SCj4+ICsgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNU SU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKPj4gKyAqIEFSSVNJTkcgRlJPTSwg T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgo+ PiArICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+PiArICovCj4+ICsKPj4gKyNp Zm5kZWYgX0VYWU5PU19EUk1fSF8KPj4gKyNkZWZpbmUgX0VYWU5PU19EUk1fSF8KPj4gKwo+PiAr I2luY2x1ZGUgImRybS5oIgo+PiArCj4+ICsvKioKPj4gKyAqIFVzZXItZGVzaXJlZCBidWZmZXIg Y3JlYXRpb24gaW5mb3JtYXRpb24gc3RydWN0dXJlLgo+PiArICoKPj4gKyAqIEBzaXplOiB1c2Vy LWRlc2lyZWQgbWVtb3J5IGFsbG9jYXRpb24gc2l6ZS4KPj4gKyAqICAgICAtIHRoaXMgc2l6ZSB2 YWx1ZSB3b3VsZCBiZSBwYWdlLWFsaWduZWQgaW50ZXJuYWxseS4KPj4gKyAqIEBmbGFnczogdXNl ciByZXF1ZXN0IGZvciBzZXR0aW5nIG1lbW9yeSB0eXBlIG9yIGNhY2hlIGF0dHJpYnV0ZXMuCj4+ ICsgKiBAaGFuZGxlOiByZXR1cm5lZCBhIGhhbmRsZSB0byBjcmVhdGVkIGdlbSBvYmplY3QuCj4+ ICsgKiAgICAgLSB0aGlzIGhhbmRsZSB3aWxsIGJlIHNldCBieSBnZW0gbW9kdWxlIG9mIGtlcm5l bCBzaWRlLgo+PiArICovCj4+ICtzdHJ1Y3QgZHJtX2V4eW5vc19nZW1fY3JlYXRlIHsKPj4gKyAg ICAgICB1aW50NjRfdCBzaXplOwo+PiArICAgICAgIHVuc2lnbmVkIGludCBmbGFnczsKPj4gKyAg ICAgICB1bnNpZ25lZCBpbnQgaGFuZGxlOwo+PiArfTsKPj4gKwo+PiArLyoqCj4+ICsgKiBBIHN0 cnVjdHVyZSBmb3IgZ2V0dGluZyBidWZmZXIgb2Zmc2V0Lgo+PiArICoKPj4gKyAqIEBoYW5kbGU6 IGEgcG9pbnRlciB0byBnZW0gb2JqZWN0IGNyZWF0ZWQuCj4+ICsgKiBAcGFkOiBqdXN0IHBhZGRp bmcgdG8gYmUgNjQtYml0IGFsaWduZWQuCj4+ICsgKiBAb2Zmc2V0OiByZWxhdGl2ZWQgb2Zmc2V0 IHZhbHVlIG9mIHRoZSBtZW1vcnkgcmVnaW9uIGFsbG9jYXRlZC4KPj4gKyAqICAgICAtIHRoaXMg dmFsdWUgc2hvdWxkIGJlIHNldCBieSB1c2VyLgo+PiArICovCj4+ICtzdHJ1Y3QgZHJtX2V4eW5v c19nZW1fbWFwX29mZiB7Cj4+ICsgICAgICAgdW5zaWduZWQgaW50IGhhbmRsZTsKPj4gKyAgICAg ICB1bnNpZ25lZCBpbnQgcGFkOwo+PiArICAgICAgIHVpbnQ2NF90IG9mZnNldDsKPj4gK307Cj4+ ICsKPj4gKy8qKgo+PiArICogQSBzdHJ1Y3R1cmUgZm9yIG1hcHBpbmcgYnVmZmVyLgo+PiArICoK Pj4gKyAqIEBoYW5kbGU6IGEgaGFuZGxlIHRvIGdlbSBvYmplY3QgY3JlYXRlZC4KPj4gKyAqIEBz aXplOiBtZW1vcnkgc2l6ZSB0byBiZSBtYXBwZWQuCj4+ICsgKiBAbWFwcGVkOiBoYXZpbmcgdXNl ciB2aXJ0dWFsIGFkZHJlc3MgbW1hcGVkLgo+PiArICogICAgIC0gdGhpcyB2YXJpYWJsZSB3b3Vs ZCBiZSBmaWxsZWQgYnkgZXh5bm9zIGdlbSBtb2R1bGUKPj4gKyAqICAgICBvZiBrZXJuZWwgc2lk ZSB3aXRoIHVzZXIgdmlydHVhbCBhZGRyZXNzIHdoaWNoIGlzIGFsbG9jYXRlZAo+PiArICogICAg IGJ5IGRvX21tYXAoKS4KPj4gKyAqLwo+PiArc3RydWN0IGRybV9leHlub3NfZ2VtX21tYXAgewo+ PiArICAgICAgIHVuc2lnbmVkIGludCBoYW5kbGU7Cj4+ICsgICAgICAgdW5zaWduZWQgaW50IHNp emU7Cj4+ICsgICAgICAgdWludDY0X3QgbWFwcGVkOwo+PiArfTsKPj4gKwo+PiArLyoqCj4+ICsg KiBBIHN0cnVjdHVyZSB0byBnZW0gaW5mb3JtYXRpb24uCj4+ICsgKgo+PiArICogQGhhbmRsZTog YSBoYW5kbGUgdG8gZ2VtIG9iamVjdCBjcmVhdGVkLgo+PiArICogQGZsYWdzOiBmbGFnIHZhbHVl IGluY2x1ZGluZyBtZW1vcnkgdHlwZSBhbmQgY2FjaGUgYXR0cmlidXRlIGFuZAo+PiArICogICAg IHRoaXMgdmFsdWUgd291bGQgYmUgc2V0IGJ5IGRyaXZlci4KPj4gKyAqIEBzaXplOiBzaXplIHRv IG1lbW9yeSByZWdpb24gYWxsb2NhdGVkIGJ5IGdlbSBhbmQgdGhpcyBzaXplIHdvdWxkCj4+ICsg KiAgICAgYmUgc2V0IGJ5IGRyaXZlci4KPj4gKyAqLwo+PiArc3RydWN0IGRybV9leHlub3NfZ2Vt X2luZm8gewo+PiArICAgICAgIHVuc2lnbmVkIGludCBoYW5kbGU7Cj4+ICsgICAgICAgdW5zaWdu ZWQgaW50IGZsYWdzOwo+PiArICAgICAgIHVpbnQ2NF90IHNpemU7Cj4+ICt9Owo+PiArCj4+ICsv KioKPj4gKyAqIEEgc3RydWN0dXJlIGZvciB1c2VyIGNvbm5lY3Rpb24gcmVxdWVzdCBvZiB2aXJ0 dWFsIGRpc3BsYXkuCj4+ICsgKgo+PiArICogQGNvbm5lY3Rpb246IGluZGljYXRlIHdoZXRoZXIg ZG9pbmcgY29ubmV0aW9uIG9yIG5vdCBieSB1c2VyLgo+PiArICogQGV4dGVuc2lvbnM6IGlmIHRo aXMgdmFsdWUgaXMgMSB0aGVuIHRoZSB2aWRpIGRyaXZlciB3b3VsZCBuZWVkIGFkZGl0aW9uYWwK Pj4gKyAqICAgICAxMjhieXRlcyBlZGlkIGRhdGEuCj4+ICsgKiBAZWRpZDogdGhlIGVkaWQgZGF0 YSBwb2ludGVyIGZyb20gdXNlciBzaWRlLgo+PiArICovCj4+ICtzdHJ1Y3QgZHJtX2V4eW5vc192 aWRpX2Nvbm5lY3Rpb24gewo+PiArICAgICAgIHVuc2lnbmVkIGludCBjb25uZWN0aW9uOwo+PiAr ICAgICAgIHVuc2lnbmVkIGludCBleHRlbnNpb25zOwo+PiArICAgICAgIHVpbnQ2NF90IGVkaWQ7 Cj4+ICt9Owo+PiArCj4+ICsvKiBtZW1vcnkgdHlwZSBkZWZpbml0aW9ucy4gKi8KPj4gK2VudW0g ZV9kcm1fZXh5bm9zX2dlbV9tZW1fdHlwZSB7Cj4+ICsgICAgICAgLyogUGh5c2ljYWxseSBDb250 aW51b3VzIG1lbW9yeSBhbmQgdXNlZCBhcyBkZWZhdWx0LiAqLwo+PiArICAgICAgIEVYWU5PU19C T19DT05USUcgICAgICAgID0gMCA8PCAwLAo+PiArICAgICAgIC8qIFBoeXNpY2FsbHkgTm9uLUNv bnRpbnVvdXMgbWVtb3J5LiAqLwo+PiArICAgICAgIEVYWU5PU19CT19OT05DT05USUcgICAgID0g MSA8PCAwLAo+PiArICAgICAgIC8qIG5vbi1jYWNoYWJsZSBtYXBwaW5nIGFuZCB1c2VkIGFzIGRl ZmF1bHQuICovCj4+ICsgICAgICAgRVhZTk9TX0JPX05PTkNBQ0hBQkxFICAgPSAwIDw8IDEsCj4+ ICsgICAgICAgLyogY2FjaGFibGUgbWFwcGluZy4gKi8KPj4gKyAgICAgICBFWFlOT1NfQk9fQ0FD SEFCTEUgICAgICA9IDEgPDwgMSwKPj4gKyAgICAgICAvKiB3cml0ZS1jb21iaW5lIG1hcHBpbmcu ICovCj4+ICsgICAgICAgRVhZTk9TX0JPX1dDICAgICAgICAgICAgPSAxIDw8IDIsCj4+ICsgICAg ICAgRVhZTk9TX0JPX01BU0sgICAgICAgICAgPSBFWFlOT1NfQk9fTk9OQ09OVElHIHwgRVhZTk9T X0JPX0NBQ0hBQkxFIHwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEVYWU5PU19CT19XQwo+PiArfTsKPj4gKwo+PiArI2RlZmluZSBEUk1fRVhZTk9TX0dFTV9DUkVB VEUgICAgICAgICAgMHgwMAo+PiArI2RlZmluZSBEUk1fRVhZTk9TX0dFTV9NQVBfT0ZGU0VUICAg ICAgMHgwMQo+PiArI2RlZmluZSBEUk1fRVhZTk9TX0dFTV9NTUFQICAgICAgICAgICAgMHgwMgo+ PiArLyogUmVzZXJ2ZWQgMHgwNCB+IDB4MDUgZm9yIGV4eW5vcyBzcGVjaWZpYyBnZW0gaW9jdGwg Ki8KPj4gKyNkZWZpbmUgRFJNX0VYWU5PU19HRU1fR0VUICAgICAgICAgICAgIDB4MDQKPj4gKyNk ZWZpbmUgRFJNX0VYWU5PU19WSURJX0NPTk5FQ1RJT04gICAgIDB4MDcKPj4gKwo+PiArI2RlZmlu ZSBEUk1fSU9DVExfRVhZTk9TX0dFTV9DUkVBVEUgICAgICAgICAgICBEUk1fSU9XUihEUk1fQ09N TUFORF9CQVNFICsgXAo+PiArICAgICAgICAgICAgICAgRFJNX0VYWU5PU19HRU1fQ1JFQVRFLCBz dHJ1Y3QgZHJtX2V4eW5vc19nZW1fY3JlYXRlKQo+PiArCj4+ICsjZGVmaW5lIERSTV9JT0NUTF9F WFlOT1NfR0VNX01BUF9PRkZTRVQgICAgICAgIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBc Cj4+ICsgICAgICAgICAgICAgICBEUk1fRVhZTk9TX0dFTV9NQVBfT0ZGU0VULCBzdHJ1Y3QgZHJt X2V4eW5vc19nZW1fbWFwX29mZikKPj4gKwo+PiArI2RlZmluZSBEUk1fSU9DVExfRVhZTk9TX0dF TV9NTUFQICAgICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIFwKPj4gKyAgICAgICAgICAg ICAgIERSTV9FWFlOT1NfR0VNX01NQVAsIHN0cnVjdCBkcm1fZXh5bm9zX2dlbV9tbWFwKQo+PiAr Cj4+ICsjZGVmaW5lIERSTV9JT0NUTF9FWFlOT1NfR0VNX1VTRVJQVFIgICBEUk1fSU9XUihEUk1f Q09NTUFORF9CQVNFICsgXAo+PiArICAgICAgICAgICAgICAgRFJNX0VYWU5PU19HRU1fVVNFUlBU Uiwgc3RydWN0IGRybV9leHlub3NfZ2VtX3VzZXJwdHIpCj4+ICsKPj4gKyNkZWZpbmUgRFJNX0lP Q1RMX0VYWU5PU19HRU1fR0VUICAgICAgIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBcCj4+ ICsgICAgICAgICAgICAgICBEUk1fRVhZTk9TX0dFTV9HRVQsICAgICBzdHJ1Y3QgZHJtX2V4eW5v c19nZW1faW5mbykKPj4gKwo+PiArI2RlZmluZSBEUk1fSU9DVExfRVhZTk9TX1ZJRElfQ09OTkVD VElPTiAgICAgICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgXAo+PiArICAgICAgICAgICAg ICAgRFJNX0VYWU5PU19WSURJX0NPTk5FQ1RJT04sIHN0cnVjdCBkcm1fZXh5bm9zX3ZpZGlfY29u bmVjdGlvbikKPj4gKwo+PiArI2VuZGlmCj4+IGRpZmYgLS1naXQgYS9leHlub3MvZXh5bm9zX2Ry bWlmLmggYi9leHlub3MvZXh5bm9zX2RybWlmLmgKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4g aW5kZXggMDAwMDAwMC4uN2U4MzQ3YQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2V4eW5vcy9l eHlub3NfZHJtaWYuaAo+PiBAQCAtMCwwICsxLDg4IEBACj4+ICsvKgo+PiArICogQ29weXJpZ2h0 IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCj4+ICsgKgo+PiArICogUGVy bWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24g b2J0YWluaW5nIGEKPj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBk b2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4+ICsgKiB0byBkZWFsIGluIHRo ZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0 aW9uCj4+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz aCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0 aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQo+PiArICogU29m dHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29u ZGl0aW9uczoKPj4gKyAqCj4+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp cyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cj4+ICsgKiBwYXJhZ3JhcGgp IHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg b2YgdGhlCj4+ICsgKiBTb2Z0d2FyZS4KPj4gKyAqCj4+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJP VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ PiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF UyBPRiBNRVJDSEFOVEFCSUxJVFksCj4+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKPj4gKyAqIFRIRSBB VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B R0VTIE9SIE9USEVSCj4+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP TlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAo+PiArICogT1VUIE9GIE9S IElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM SU5HUyBJTiBUSEUKPj4gKyAqIFNPRlRXQVJFLgo+PiArICoKPj4gKyAqIEF1dGhvcnM6Cj4+ICsg KiAgICBJbmtpIERhZSA8aW5raS5kYWVAc2Ftc3VuZy5jb20+Cj4+ICsgKi8KPj4gKwo+PiArI2lm bmRlZiBFWFlOT1NfRFJNSUZfSF8KPj4gKyNkZWZpbmUgRVhZTk9TX0RSTUlGX0hfCj4+ICsKPj4g KyNpbmNsdWRlIDx4Zjg2ZHJtLmg+Cj4+ICsjaW5jbHVkZSA8c3RkaW50Lmg+Cj4+ICsjaW5jbHVk ZSAiZXh5bm9zX2RybS5oIgo+PiArCj4+ICtzdHJ1Y3QgZXh5bm9zX2RldmljZSB7Cj4+ICsgICAg ICAgaW50IGZkOwo+PiArfTsKPj4gKwo+PiArLyoKPj4gKyAqIEV4eW5vcyBCdWZmZXIgT2JqZWN0 IHN0cnVjdHVyZS4KPj4gKyAqCj4+ICsgKiBAZGV2OiBleHlub3MgZGV2aWNlIG9iamVjdCBhbGxv Y2F0ZWQuCj4+ICsgKiBAaGFuZGxlOiBhIGdlbSBoYW5kbGUgdG8gZ2VtIG9iamVjdCBjcmVhdGVk Lgo+PiArICogQGZsYWdzOiBpbmRpY2F0ZSBtZW1vcnkgYWxsb2NhdGlvbiBhbmQgY2FjaGUgYXR0 cmlidXRlIHR5cGVzLgo+PiArICogQGZkOiBmaWxlIGRlc2NyaXB0b3IgZXhwb3J0ZWQgaW50byBk bWFidWYuCj4+ICsgKiBAc2l6ZTogc2l6ZSB0byB0aGUgYnVmZmVyIGNyZWF0ZWQuCj4+ICsgKiBA dmFkZHI6IHVzZXIgc3BhY2UgYWRkcmVzcyB0byBhIGdlbSBidWZmZXIgbW1hcGVkLgo+PiArICog QG5hbWU6IGEgZ2VtIGdsb2JhbCBoYW5kbGUgZnJvbSBmbGluayByZXF1ZXN0Lgo+PiArICovCj4+ ICtzdHJ1Y3QgZXh5bm9zX2JvIHsKPj4gKyAgICAgICBzdHJ1Y3QgZXh5bm9zX2RldmljZSAgICAq ZGV2Owo+PiArICAgICAgIHVpbnQzMl90ICAgICAgICAgICAgICAgIGhhbmRsZTsKPj4gKyAgICAg ICB1aW50MzJfdCAgICAgICAgICAgICAgICBmbGFnczsKPj4gKyAgICAgICBpbnQgICAgICAgICAg ICAgICAgICAgICBmZDsKPj4gKyAgICAgICBzaXplX3QgICAgICAgICAgICAgICAgICBzaXplOwo+ PiArICAgICAgIHZvaWQgICAgICAgICAgICAgICAgICAgICp2YWRkcjsKPj4gKyAgICAgICB1aW50 MzJfdCAgICAgICAgICAgICAgICBuYW1lOwo+PiArfTsKPj4gKwo+PiArLyoKPj4gKyAqIGRldmlj ZSByZWxhdGVkIGZ1bmN0aW9uczoKPj4gKyAqLwo+PiArc3RydWN0IGV4eW5vc19kZXZpY2UgKiBl eHlub3NfZGV2aWNlX2NyZWF0ZShpbnQgZmQpOwo+PiArdm9pZCBleHlub3NfZGV2aWNlX2Rlc3Ry b3koc3RydWN0IGV4eW5vc19kZXZpY2UgKmRldik7Cj4+ICsKPj4gKy8qCj4+ICsgKiBidWZmZXIt b2JqZWN0IHJlbGF0ZWQgZnVuY3Rpb25zOgo+PiArICovCj4+ICtzdHJ1Y3QgZXh5bm9zX2JvICog ZXh5bm9zX2JvX2NyZWF0ZShzdHJ1Y3QgZXh5bm9zX2RldmljZSAqZGV2LAo+PiArICAgICAgICAg ICAgICAgdWludDMyX3Qgc2l6ZSwgdWludDMyX3QgZmxhZ3MpOwo+PiAraW50IGV4eW5vc19ib19n ZXRfaW5mbyhzdHJ1Y3QgZXh5bm9zX2RldmljZSAqZGV2LCB1aW50MzJfdCBoYW5kbGUsCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqc2l6ZSwgdWludDMyX3QgKmZsYWdzKTsKPj4g K3ZvaWQgZXh5bm9zX2JvX2Rlc3Ryb3koc3RydWN0IGV4eW5vc19ibyAqYm8pOwo+PiArc3RydWN0 IGV4eW5vc19ibyAqIGV4eW5vc19ib19mcm9tX25hbWUoc3RydWN0IGV4eW5vc19kZXZpY2UgKmRl diwgdWludDMyX3QgbmFtZSk7Cj4+ICtpbnQgZXh5bm9zX2JvX2dldF9uYW1lKHN0cnVjdCBleHlu b3NfYm8gKmJvLCB1aW50MzJfdCAqbmFtZSk7Cj4+ICt1aW50MzJfdCBleHlub3NfYm9faGFuZGxl KHN0cnVjdCBleHlub3NfYm8gKmJvKTsKPj4gK3ZvaWQgKiBleHlub3NfYm9fbWFwKHN0cnVjdCBl eHlub3NfYm8gKmJvKTsKPj4gK2ludCBleHlub3NfcHJpbWVfaGFuZGxlX3RvX2ZkKHN0cnVjdCBl eHlub3NfZGV2aWNlICpkZXYsIHVpbnQzMl90IGhhbmRsZSwKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCAqZmQpOwo+PiAraW50IGV4eW5vc19wcmltZV9mZF90 b19oYW5kbGUoc3RydWN0IGV4eW5vc19kZXZpY2UgKmRldiwgaW50IGZkLAo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKmhhbmRsZSk7Cj4+ICsKPj4g Ky8qCj4+ICsgKiBWaXJ0dWFsIERpc3BsYXkgcmVsYXRlZCBmdW5jdGlvbnM6Cj4+ICsgKi8KPj4g K2ludCBleHlub3NfdmlkaV9jb25uZWN0aW9uKHN0cnVjdCBleHlub3NfZGV2aWNlICpkZXYsIHVp bnQzMl90IGNvbm5lY3QsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMy X3QgZXh0LCB2b2lkICplZGlkKTsKPj4gKwo+PiArI2VuZGlmIC8qIEVYWU5PU19EUk1JRl9IXyAq Lwo+PiBkaWZmIC0tZ2l0IGEvZXh5bm9zL2xpYmRybV9leHlub3MucGMgYi9leHlub3MvbGliZHJt X2V4eW5vcy5wYwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwLi40MzRk YzNmCj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvZXh5bm9zL2xpYmRybV9leHlub3MucGMKPj4g QEAgLTAsMCArMSwxMSBAQAo+PiArcHJlZml4PS9ob21lL2RhZWlua2kvcHJvamVjdC9zaGFyZQo+ PiArZXhlY19wcmVmaXg9JHtwcmVmaXh9Cj4+ICtsaWJkaXI9JHtleGVjX3ByZWZpeH0vbGliCj4+ ICtpbmNsdWRlZGlyPSR7cHJlZml4fS9pbmNsdWRlCj4+ICsKPj4gK05hbWU6IGxpYmRybV9leHlu b3MKPj4gK0Rlc2NyaXB0aW9uOiBVc2Vyc3BhY2UgaW50ZXJmYWNlIHRvIGV4eW5vcyBrZXJuZWwg RFJNIHNlcnZpY2VzCj4+ICtWZXJzaW9uOiAwLjYKPj4gK0xpYnM6IC1MJHtsaWJkaXJ9IC1sZHJt X2V4eW5vcwo+PiArQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0gLUkke2luY2x1ZGVkaXJ9L2xpYmRy bSAtSSR7aW5jbHVkZWRpcn0vZXh5bm9zCj4+ICtSZXF1aXJlcy5wcml2YXRlOiBsaWJkcm0KPj4g ZGlmZiAtLWdpdCBhL2V4eW5vcy9saWJkcm1fZXh5bm9zLnBjLmluIGIvZXh5bm9zL2xpYmRybV9l eHlub3MucGMuaW4KPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMC4uNWNl OTExOAo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2V4eW5vcy9saWJkcm1fZXh5bm9zLnBjLmlu Cj4+IEBAIC0wLDAgKzEsMTEgQEAKPj4gK3ByZWZpeD1AcHJlZml4QAo+PiArZXhlY19wcmVmaXg9 QGV4ZWNfcHJlZml4QAo+PiArbGliZGlyPUBsaWJkaXJACj4+ICtpbmNsdWRlZGlyPUBpbmNsdWRl ZGlyQAo+PiArCj4+ICtOYW1lOiBsaWJkcm1fZXh5bm9zCj4+ICtEZXNjcmlwdGlvbjogVXNlcnNw YWNlIGludGVyZmFjZSB0byBleHlub3Mga2VybmVsIERSTSBzZXJ2aWNlcwo+PiArVmVyc2lvbjog MC42Cj4+ICtMaWJzOiAtTCR7bGliZGlyfSAtbGRybV9leHlub3MKPj4gK0NmbGFnczogLUkke2lu Y2x1ZGVkaXJ9IC1JJHtpbmNsdWRlZGlyfS9saWJkcm0gLUkke2luY2x1ZGVkaXJ9L2V4eW5vcwo+ PiArUmVxdWlyZXMucHJpdmF0ZTogbGliZHJtCj4+IGRpZmYgLS1naXQgYS90ZXN0cy9tb2RldGVz dC9tb2RldGVzdC5jIGIvdGVzdHMvbW9kZXRlc3QvbW9kZXRlc3QuYwo+PiBpbmRleCA1Nzg0NjIy Li44MDEyZWNjIDEwMDY0NAo+PiAtLS0gYS90ZXN0cy9tb2RldGVzdC9tb2RldGVzdC5jCj4+ICsr KyBiL3Rlc3RzL21vZGV0ZXN0L21vZGV0ZXN0LmMKPj4gQEAgLTEwOTksNyArMTA5OSw3IEBAIGlu dCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKPj4gICAgICAgIGludCBjOwo+PiAgICAgICAg aW50IGVuY29kZXJzID0gMCwgY29ubmVjdG9ycyA9IDAsIGNydGNzID0gMCwgcGxhbmVzID0gMCwg ZnJhbWVidWZmZXJzID0gMDsKPj4gICAgICAgIGludCB0ZXN0X3ZzeW5jID0gMDsKPj4gLSAgICAg ICBjaGFyICptb2R1bGVzW10gPSB7ICJpOTE1IiwgInJhZGVvbiIsICJub3V2ZWF1IiwgInZtd2dm eCIsICJvbWFwZHJtIiB9Owo+PiArICAgICAgIGNoYXIgKm1vZHVsZXNbXSA9IHsgImk5MTUiLCAi cmFkZW9uIiwgIm5vdXZlYXUiLCAidm13Z2Z4IiwgIm9tYXBkcm0iLCAiZXh5bm9zIiB9Owo+PiAg ICAgICAgdW5zaWduZWQgaW50IGk7Cj4+ICAgICAgICBpbnQgY291bnQgPSAwLCBwbGFuZV9jb3Vu dCA9IDA7Cj4+ICAgICAgICBzdHJ1Y3QgY29ubmVjdG9yIGNvbl9hcmdzWzJdOwo+PiBkaWZmIC0t Z2l0IGEvdGVzdHMvdmJsdGVzdC92Ymx0ZXN0LmMgYi90ZXN0cy92Ymx0ZXN0L3ZibHRlc3QuYwo+ PiBpbmRleCA5MDNjYTBmLi40ZmNjZDU5IDEwMDY0NAo+PiAtLS0gYS90ZXN0cy92Ymx0ZXN0L3Zi bHRlc3QuYwo+PiArKysgYi90ZXN0cy92Ymx0ZXN0L3ZibHRlc3QuYwo+PiBAQCAtMTAzLDcgKzEw Myw3IEBAIHN0YXRpYyB2b2lkIHVzYWdlKGNoYXIgKm5hbWUpCj4+ICBpbnQgbWFpbihpbnQgYXJn YywgY2hhciAqKmFyZ3YpCj4+ICB7Cj4+ICAgICAgICBpbnQgaSwgYywgZmQsIHJldDsKPj4gLSAg ICAgICBjaGFyICptb2R1bGVzW10gPSB7ICJpOTE1IiwgInJhZGVvbiIsICJub3V2ZWF1IiwgInZt d2dmeCIgfTsKPj4gKyAgICAgICBjaGFyICptb2R1bGVzW10gPSB7ICJpOTE1IiwgInJhZGVvbiIs ICJub3V2ZWF1IiwgInZtd2dmeCIsICJleHlub3MiIH07Cj4+ICAgICAgICBkcm1WQmxhbmsgdmJs Owo+PiAgICAgICAgZHJtRXZlbnRDb250ZXh0IGV2Y3R4Owo+PiAgICAgICAgc3RydWN0IHZibF9p bmZvIGhhbmRsZXJfaW5mbzsKPj4gLS0KPj4gMS43LjQuMQo+PiAKPj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gZHJpLWRldmVsIG1haWxpbmcgbGlz dAo+PiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+IGh0dHA6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK PiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=