From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhang, Jerry (Junwei)" Subject: Re: [PATCH 1/1] amdgpu: move asic id table to a separate file Date: Thu, 11 May 2017 10:24:01 +0800 Message-ID: <5913CB41.2000609@amd.com> References: <1494449815-10162-1-git-send-email-Samuel.Li@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "Li, Samuel" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Yuan, Xiaojie" VGhhdCdzIGZpbmUgdG8gbWUsIHBsZWFzZSBmZWVsIGZyZWUgdG8gYWRkIG15IFJCLgoKUmV2aWV3 ZWQtYnk6IEp1bndlaSBaaGFuZyA8SmVycnkuWmhhbmdAYW1kLmNvbT4KCkJUVywgd2UgYWxzbyBo YXZlIHNvbWUgcGF0Y2hlcyB0byBpbXByb3ZlIGl0LgpQbGVhc2UgdGFrZSBhIGxvb2sgaWYgbmVl ZC4KCkplcnJ5CgpPbiAwNS8xMS8yMDE3IDA1OjEwIEFNLCBMaSwgU2FtdWVsIHdyb3RlOgo+IEFs c28gYXR0YWNoIGEgc2FtcGxlIGlkcyBmaWxlIGZvciByZWZlcmVuY2UuIFRoZSBuYW1lcyBhcmUg ZnJvbSBtYXJrZXRpbmcsIG5vdCByZWxhdGVkIHRvIHNvdXJjZSBjb2RlIGFuZCBubyByZXZpZXdz IG5lY2Vzc2FyeSBoZXJlOikgIEl0IGNhbiBiZSBwdXQgaW4gZGlyZWN0b3J5IC91c3Ivc2hhcmUv bGliZHJtLgo+Cj4gU2FtCj4KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IExp LCBTYW11ZWwKPiBTZW50OiBXZWRuZXNkYXksIE1heSAxMCwgMjAxNyA0OjU3IFBNCj4gVG86IGFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gQ2M6IFl1YW4sIFhpYW9qaWUgPFhpYW9qaWUu WXVhbkBhbWQuY29tPjsgTGksIFNhbXVlbCA8U2FtdWVsLkxpQGFtZC5jb20+Cj4gU3ViamVjdDog W1BBVENIIDEvMV0gYW1kZ3B1OiBtb3ZlIGFzaWMgaWQgdGFibGUgdG8gYSBzZXBhcmF0ZSBmaWxl Cj4KPiBGcm9tOiBYaWFvamllIFl1YW4gPFhpYW9qaWUuWXVhbkBhbWQuY29tPgo+Cj4gQ2hhbmdl LUlkOiBJMTIyMTZkYTE0OTEwZjVlMmIwOTcwYmMxZmFmYzJhMjBiMGVmMWJhOQo+IFNpZ25lZC1v ZmYtYnk6IFNhbXVlbCBMaSA8U2FtdWVsLkxpQGFtZC5jb20+Cj4gLS0tCj4gICBhbWRncHUvTWFr ZWZpbGUuYW0gICAgICAgfCAgIDIgKwo+ICAgYW1kZ3B1L01ha2VmaWxlLnNvdXJjZXMgIHwgICAy ICstCj4gICBhbWRncHUvYW1kZ3B1X2FzaWNfaWQuYyAgfCAxOTggKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIGFtZGdwdS9hbWRncHVfYXNpY19pZC5o ICB8IDE2NSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgIGFtZGdw dS9hbWRncHVfZGV2aWNlLmMgICB8ICAyOCArKysrKy0tCj4gICBhbWRncHUvYW1kZ3B1X2ludGVy bmFsLmggfCAgMTAgKysrCj4gICA2IGZpbGVzIGNoYW5nZWQsIDIzMiBpbnNlcnRpb25zKCspLCAx NzMgZGVsZXRpb25zKC0pCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgYW1kZ3B1L2FtZGdwdV9hc2lj X2lkLmMKPiAgIGRlbGV0ZSBtb2RlIDEwMDY0NCBhbWRncHUvYW1kZ3B1X2FzaWNfaWQuaAo+Cj4g ZGlmZiAtLWdpdCBhL2FtZGdwdS9NYWtlZmlsZS5hbSBiL2FtZGdwdS9NYWtlZmlsZS5hbQo+IGlu ZGV4IGNmN2JjMWIuLmVjZjllODIgMTAwNjQ0Cj4gLS0tIGEvYW1kZ3B1L01ha2VmaWxlLmFtCj4g KysrIGIvYW1kZ3B1L01ha2VmaWxlLmFtCj4gQEAgLTMwLDYgKzMwLDggQEAgQU1fQ0ZMQUdTID0g XAo+ICAgCSQoUFRIUkVBRFNUVUJTX0NGTEFHUykgXAo+ICAgCS1JJCh0b3Bfc3JjZGlyKS9pbmNs dWRlL2RybQo+Cj4gK0FNX0NQUEZMQUdTID0gLURBTURHUFVfQVNJQ19JRF9UQUJMRT1cIiR7ZGF0 YWRpcn0vbGliZHJtL2FtZGdwdS5pZHNcIgo+ICsKPiAgIGxpYmRybV9hbWRncHVfbGFfTFRMSUJS QVJJRVMgPSBsaWJkcm1fYW1kZ3B1LmxhCj4gICBsaWJkcm1fYW1kZ3B1X2xhZGlyID0gJChsaWJk aXIpCj4gICBsaWJkcm1fYW1kZ3B1X2xhX0xERkxBR1MgPSAtdmVyc2lvbi1udW1iZXIgMTowOjAg LW5vLXVuZGVmaW5lZAo+IGRpZmYgLS1naXQgYS9hbWRncHUvTWFrZWZpbGUuc291cmNlcyBiL2Ft ZGdwdS9NYWtlZmlsZS5zb3VyY2VzCj4gaW5kZXggNDg3YjllMC4uYmMzYWJhYSAxMDA2NDQKPiAt LS0gYS9hbWRncHUvTWFrZWZpbGUuc291cmNlcwo+ICsrKyBiL2FtZGdwdS9NYWtlZmlsZS5zb3Vy Y2VzCj4gQEAgLTEsNSArMSw1IEBACj4gICBMSUJEUk1fQU1ER1BVX0ZJTEVTIDo9IFwKPiAtCWFt ZGdwdV9hc2ljX2lkLmggXAo+ICsJYW1kZ3B1X2FzaWNfaWQuYyBcCj4gICAJYW1kZ3B1X2JvLmMg XAo+ICAgCWFtZGdwdV9jcy5jIFwKPiAgIAlhbWRncHVfZGV2aWNlLmMgXAo+IGRpZmYgLS1naXQg YS9hbWRncHUvYW1kZ3B1X2FzaWNfaWQuYyBiL2FtZGdwdS9hbWRncHVfYXNpY19pZC5jCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5kNTBlMjFhCj4gLS0tIC9kZXYvbnVs bAo+ICsrKyBiL2FtZGdwdS9hbWRncHVfYXNpY19pZC5jCj4gQEAgLTAsMCArMSwxOTggQEAKPiAr LyoKPiArICogQ29weXJpZ2h0IMKpIDIwMTcgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgo+ ICsgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVi eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ICsg KiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl cyAodGhlICJTb2Z0d2FyZSIpLAo+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0 IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4gKyAqIHRoZSByaWdo dHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJs aWNlbnNlLAo+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8g cGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRv IGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiArICoKPiArICog VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh bGwgYmUgaW5jbHVkZWQgaW4KPiArICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9u cyBvZiB0aGUgU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gKyAqIElN UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVS Q0hBTlRBQklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg Tk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKPiArICogVEhFIENPUFlSSUdIVCBI T0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S Cj4gKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs IFRPUlQgT1IgT1RIRVJXSVNFLAo+ICsgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05O RUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKPiArICogT1RIRVIgREVBTElO R1MgSU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKi8KPiArCj4gKyNpZmRlZiBIQVZFX0NPTkZJ R19ICj4gKyNpbmNsdWRlICJjb25maWcuaCIKPiArI2VuZGlmCj4gKwo+ICsjaW5jbHVkZSA8c3Rk aW8uaD4KPiArI2luY2x1ZGUgPHN0ZGxpYi5oPgo+ICsjaW5jbHVkZSA8c3RkaW50Lmg+Cj4gKyNp bmNsdWRlIDxzdHJpbmcuaD4KPiArI2luY2x1ZGUgPHVuaXN0ZC5oPgo+ICsjaW5jbHVkZSA8ZXJy bm8uaD4KPiArCj4gKyNpbmNsdWRlICJhbWRncHVfZHJtLmgiCj4gKyNpbmNsdWRlICJhbWRncHVf aW50ZXJuYWwuaCIKPiArCj4gK3N0YXRpYyBpbnQgcGFyc2Vfb25lX2xpbmUoY29uc3QgY2hhciAq bGluZSwgc3RydWN0IGFtZGdwdV9hc2ljX2lkICppZCkKPiArewo+ICsJY2hhciAqYnVmOwo+ICsJ Y2hhciAqc19kaWQ7Cj4gKwljaGFyICpzX3JpZDsKPiArCWNoYXIgKnNfbmFtZTsKPiArCWNoYXIg KmVuZHB0cjsKPiArCWludCByID0gMDsKPiArCj4gKwlidWYgPSBzdHJkdXAobGluZSk7Cj4gKwlp ZiAoIWJ1ZikKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwkvKiBpZ25vcmUgZW1wdHkgbGlu ZSBhbmQgY29tbWVudGVkIGxpbmUgKi8KPiArCWlmIChzdHJsZW4obGluZSkgPT0gMCB8fCBsaW5l WzBdID09ICcjJykgewo+ICsJCXIgPSAtRUFHQUlOOwo+ICsJCWdvdG8gb3V0Owo+ICsJfQo+ICsK PiArCS8qIGRldmljZSBpZCAqLwo+ICsJc19kaWQgPSBzdHJ0b2soYnVmLCAiLCIpOwo+ICsJaWYg KCFzX2RpZCkgewo+ICsJCXIgPSAtRUlOVkFMOwo+ICsJCWdvdG8gb3V0Owo+ICsJfQo+ICsKPiAr CWlkLT5kaWQgPSBzdHJ0b2woc19kaWQsICZlbmRwdHIsIDE2KTsKPiArCWlmICgqZW5kcHRyKSB7 Cj4gKwkJciA9IC1FSU5WQUw7Cj4gKwkJZ290byBvdXQ7Cj4gKwl9Cj4gKwo+ICsJLyogcmV2aXNp b24gaWQgKi8KPiArCXNfcmlkID0gc3RydG9rKE5VTEwsICIsIik7Cj4gKwlpZiAoIXNfcmlkKSB7 Cj4gKwkJciA9IC1FSU5WQUw7Cj4gKwkJZ290byBvdXQ7Cj4gKwl9Cj4gKwo+ICsJaWQtPnJpZCA9 IHN0cnRvbChzX3JpZCwgJmVuZHB0ciwgMTYpOwo+ICsJaWYgKCplbmRwdHIpIHsKPiArCQlyID0g LUVJTlZBTDsKPiArCQlnb3RvIG91dDsKPiArCX0KPiArCj4gKwkvKiBtYXJrZXRpbmcgbmFtZSAq Lwo+ICsJc19uYW1lID0gc3RydG9rKE5VTEwsICIsIik7Cj4gKwlpZiAoIXNfbmFtZSkgewo+ICsJ CXIgPSAtRUlOVkFMOwo+ICsJCWdvdG8gb3V0Owo+ICsJfQo+ICsKPiArCWlkLT5tYXJrZXRpbmdf bmFtZSA9IHN0cmR1cChzX25hbWUpOwo+ICsJaWYgKGlkLT5tYXJrZXRpbmdfbmFtZSA9PSBOVUxM KSB7Cj4gKwkJciA9IC1FSU5WQUw7Cj4gKwkJZ290byBvdXQ7Cj4gKwl9Cj4gKwo+ICtvdXQ6Cj4g KwlmcmVlKGJ1Zik7Cj4gKwo+ICsJcmV0dXJuIHI7Cj4gK30KPiArCj4gK2ludCBhbWRncHVfcGFy c2VfYXNpY19pZHMoc3RydWN0IGFtZGdwdV9hc2ljX2lkICoqcF9hc2ljX2lkX3RhYmxlKQo+ICt7 Cj4gKwlzdHJ1Y3QgYW1kZ3B1X2FzaWNfaWQgKmFzaWNfaWRfdGFibGU7Cj4gKwlzdHJ1Y3QgYW1k Z3B1X2FzaWNfaWQgKmlkOwo+ICsJRklMRSAqZnA7Cj4gKwljaGFyICpsaW5lID0gTlVMTDsKPiAr CXNpemVfdCBsZW47Cj4gKwlzc2l6ZV90IG47Cj4gKwlpbnQgbGluZV9udW0gPSAxOwo+ICsJc2l6 ZV90IHRhYmxlX3NpemUgPSAwOwo+ICsJc2l6ZV90IHRhYmxlX21heF9zaXplID0gMjU2Owo+ICsJ aW50IHIgPSAwOwo+ICsKPiArCWZwID0gZm9wZW4oQU1ER1BVX0FTSUNfSURfVEFCTEUsICJyIik7 Cj4gKwlpZiAoIWZwKSB7Cj4gKwkJZnByaW50ZihzdGRlcnIsICIlczogJXNcbiIsIEFNREdQVV9B U0lDX0lEX1RBQkxFLAo+ICsJCQkJc3RyZXJyb3IoZXJybm8pKTsKPiArCQlyZXR1cm4gLUVJTlZB TDsKPiArCX0KPiArCj4gKwlhc2ljX2lkX3RhYmxlID0gY2FsbG9jKHRhYmxlX21heF9zaXplLCBz aXplb2Yoc3RydWN0IGFtZGdwdV9hc2ljX2lkKSk7Cj4gKwlpZiAoIWFzaWNfaWRfdGFibGUpIHsK PiArCQlyID0gLUVOT01FTTsKPiArCQlnb3RvIGNsb3NlOwo+ICsJfQo+ICsKPiArCS8qIDFzdCBs aW5lIGlzIGZpbGUgdmVyc2lvbiAqLwo+ICsJaWYgKChuID0gZ2V0bGluZSgmbGluZSwgJmxlbiwg ZnApKSAhPSAtMSkgewo+ICsJCS8qIHRyaW0gdHJhaWxpbmcgbmV3bGluZSAqLwo+ICsJCWlmIChs aW5lW24gLSAxXSA9PSAnXG4nKQo+ICsJCQlsaW5lW24gLSAxXSA9ICdcMCc7Cj4gKwkJcHJpbnRm KCIlcyB2ZXJzaW9uOiAlc1xuIiwgQU1ER1BVX0FTSUNfSURfVEFCTEUsIGxpbmUpOwo+ICsJfSBl bHNlIHsKPiArCQlnb3RvIGZyZWU7Cj4gKwl9Cj4gKwo+ICsJd2hpbGUgKChuID0gZ2V0bGluZSgm bGluZSwgJmxlbiwgZnApKSAhPSAtMSkgewo+ICsJCWlkID0gYXNpY19pZF90YWJsZSArIHRhYmxl X3NpemU7Cj4gKwo+ICsJCS8qIHRyaW0gdHJhaWxpbmcgbmV3bGluZSAqLwo+ICsJCWlmIChsaW5l W24gLSAxXSA9PSAnXG4nKQo+ICsJCQlsaW5lW24gLSAxXSA9ICdcMCc7Cj4gKwo+ICsJCS8qCj4g KwkJICogcGFyc2Ugb25lIGxpbmUsIGl0cyBmb3JtYXQgbG9va3MgbGlrZToKPiArCQkgKiA2NjE3 LEM3LEFNRCBSYWRlb24gUjcgMjQwIFNlcmllcwo+ICsJCSAqLwo+ICsJCXIgPSBwYXJzZV9vbmVf bGluZShsaW5lLCBpZCk7Cj4gKwkJaWYgKHIpIHsKPiArCQkJaWYgKHIgPT0gLUVBR0FJTikgewo+ ICsJCQkJbGluZV9udW0rKzsKPiArCQkJCWNvbnRpbnVlOwo+ICsJCQl9Cj4gKwkJCWZwcmludGYo c3RkZXJyLCAiSW52YWxpZCBmb3JtYXQ6ICVzOiBsaW5lICVkOiAlc1xuIiwKPiArCQkJCQlBTURH UFVfQVNJQ19JRF9UQUJMRSwgbGluZV9udW0sIGxpbmUpOwo+ICsJCQlnb3RvIGZyZWU7Cj4gKwkJ fQo+ICsKPiArCQlsaW5lX251bSsrOwo+ICsJCXRhYmxlX3NpemUrKzsKPiArCj4gKwkJaWYgKHRh YmxlX3NpemUgPj0gdGFibGVfbWF4X3NpemUpIHsKPiArCQkJLyogZG91YmxlIHRhYmxlIHNpemUg Ki8KPiArCQkJdGFibGVfbWF4X3NpemUgKj0gMjsKPiArCQkJYXNpY19pZF90YWJsZSA9IHJlYWxs b2MoYXNpY19pZF90YWJsZSwgdGFibGVfbWF4X3NpemUgKgo+ICsJCQkJCXNpemVvZihzdHJ1Y3Qg YW1kZ3B1X2FzaWNfaWQpKTsKPiArCQkJaWYgKCFhc2ljX2lkX3RhYmxlKSB7Cj4gKwkJCQlyID0g LUVOT01FTTsKPiArCQkJCWdvdG8gZnJlZTsKPiArCQkJfQo+ICsJCX0KPiArCX0KPiArCj4gKwkv KiBlbmQgb2YgdGFibGUgKi8KPiArCWlkID0gYXNpY19pZF90YWJsZSArIHRhYmxlX3NpemU7Cj4g KwltZW1zZXQoaWQsIDAsIHNpemVvZihzdHJ1Y3QgYW1kZ3B1X2FzaWNfaWQpKTsKPiArCj4gK2Zy ZWU6Cj4gKwlmcmVlKGxpbmUpOwo+ICsKPiArCWlmIChyICYmIGFzaWNfaWRfdGFibGUpIHsKPiAr CQl3aGlsZSAodGFibGVfc2l6ZS0tKSB7Cj4gKwkJCWlkID0gYXNpY19pZF90YWJsZSArIHRhYmxl X3NpemUgLTE7Cj4gKwkJCWlmIChpZC0+bWFya2V0aW5nX25hbWUgIT0gIE5VTEwpCj4gKwkJCQlm cmVlKGlkLT5tYXJrZXRpbmdfbmFtZSk7Cj4gKwkJfQo+ICsJCWZyZWUoYXNpY19pZF90YWJsZSk7 Cj4gKwkJYXNpY19pZF90YWJsZSA9IE5VTEw7Cj4gKwl9Cj4gK2Nsb3NlOgo+ICsJZmNsb3NlKGZw KTsKPiArCj4gKwkqcF9hc2ljX2lkX3RhYmxlID0gYXNpY19pZF90YWJsZTsKPiArCj4gKwlyZXR1 cm4gcjsKPiArfQo+IGRpZmYgLS1naXQgYS9hbWRncHUvYW1kZ3B1X2FzaWNfaWQuaCBiL2FtZGdw dS9hbWRncHVfYXNpY19pZC5oCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggM2U3 ZDczNi4uMDAwMDAwMAo+IC0tLSBhL2FtZGdwdS9hbWRncHVfYXNpY19pZC5oCj4gKysrIC9kZXYv bnVsbAo+IEBAIC0xLDE2NSArMCwwIEBACj4gLS8qCj4gLSAqIENvcHlyaWdodCDCqSAyMDE2IEFk dmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KPiAtICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KPiAt ICoKPiAtICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv IGFueSBwZXJzb24gb2J0YWluaW5nIGEKPiAtICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiAtICogdG8g ZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhv dXQgbGltaXRhdGlvbgo+IC0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn ZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPiAtICogYW5kL29yIHNlbGwgY29w aWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4g LSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93 aW5nIGNvbmRpdGlvbnM6Cj4gLSAqCj4gLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCj4gLSAqIGFsbCBj b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+IC0gKgo+IC0g KiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB TlkgS0lORCwgRVhQUkVTUyBPUgo+IC0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1J VEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiAtICogRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5U IFNIQUxMCj4gLSAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFC TEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgo+IC0gKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRI RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKPiAtICogQVJJ U0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU SEUgVVNFIE9SCj4gLSAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPiAtICoKPiAt ICovCj4gLQo+IC0jaWZuZGVmIF9fQU1ER1BVX0FTSUNfSURfSF9fCj4gLSNkZWZpbmUgX19BTURH UFVfQVNJQ19JRF9IX18KPiAtCj4gLXN0YXRpYyBzdHJ1Y3QgYW1kZ3B1X2FzaWNfaWRfdGFibGVf dCB7Cj4gLQl1aW50MzJfdCBkaWQ7Cj4gLQl1aW50MzJfdCByaWQ7Cj4gLQljb25zdCBjaGFyICpt YXJrZXRpbmdfbmFtZTsKPiAtfSBjb25zdCBhbWRncHVfYXNpY19pZF90YWJsZSBbXSA9IHsKPiAt CXsweDY2MDAsCTB4MCwJIkFNRCBSYWRlb24gSEQgODYwMC84NzAwTSJ9LAo+IC0JezB4NjYwMCwJ MHg4MSwJIkFNRCBSYWRlb24gUjcgTTM3MCJ9LAo+IC0JezB4NjYwMSwJMHgwLAkiQU1EIFJhZGVv biBIRCA4NTAwTS84NzAwTSJ9LAo+IC0JezB4NjYwNCwJMHgwLAkiQU1EIFJhZGVvbiBSNyBNMjY1 IFNlcmllcyJ9LAo+IC0JezB4NjYwNCwJMHg4MSwJIkFNRCBSYWRlb24gUjcgTTM1MCJ9LAo+IC0J ezB4NjYwNSwJMHgwLAkiQU1EIFJhZGVvbiBSNyBNMjYwIFNlcmllcyJ9LAo+IC0JezB4NjYwNSwJ MHg4MSwJIkFNRCBSYWRlb24gUjcgTTM0MCJ9LAo+IC0JezB4NjYwNiwJMHgwLAkiQU1EIFJhZGVv biBIRCA4NzkwTSJ9LAo+IC0JezB4NjYwNywJMHgwLAkiQU1EIFJhZGVvbiBIRDg1MzBNIn0sCj4g LQl7MHg2NjA4LAkweDAsCSJBTUQgRmlyZVBybyBXMjEwMCJ9LAo+IC0JezB4NjYxMCwJMHgwLAki QU1EIFJhZGVvbiBIRCA4NjAwIFNlcmllcyJ9LAo+IC0JezB4NjYxMCwJMHg4MSwJIkFNRCBSYWRl b24gUjcgMzUwIn0sCj4gLQl7MHg2NjEwLAkweDgzLAkiQU1EIFJhZGVvbiBSNSAzNDAifSwKPiAt CXsweDY2MTEsCTB4MCwJIkFNRCBSYWRlb24gSEQgODUwMCBTZXJpZXMifSwKPiAtCXsweDY2MTMs CTB4MCwJIkFNRCBSYWRlb24gSEQgODUwMCBzZXJpZXMifSwKPiAtCXsweDY2MTcsCTB4QzcsCSJB TUQgUmFkZW9uIFI3IDI0MCBTZXJpZXMifSwKPiAtCXsweDY2NDAsCTB4MCwJIkFNRCBSYWRlb24g SEQgODk1MCJ9LAo+IC0JezB4NjY0MCwJMHg4MCwJIkFNRCBSYWRlb24gUjkgTTM4MCJ9LAo+IC0J ezB4NjY0NiwJMHgwLAkiQU1EIFJhZGVvbiBSOSBNMjgwWCJ9LAo+IC0JezB4NjY0NiwJMHg4MCwJ IkFNRCBSYWRlb24gUjkgTTQ3MFgifSwKPiAtCXsweDY2NDcsCTB4MCwJIkFNRCBSYWRlb24gUjkg TTI3MFgifSwKPiAtCXsweDY2NDcsCTB4ODAsCSJBTUQgUmFkZW9uIFI5IE0zODAifSwKPiAtCXsw eDY2NDksCTB4MCwJIkFNRCBGaXJlUHJvIFc1MTAwIn0sCj4gLQl7MHg2NjU4LAkweDAsCSJBTUQg UmFkZW9uIFI3IDIwMCBTZXJpZXMifSwKPiAtCXsweDY2NUMsCTB4MCwJIkFNRCBSYWRlb24gSEQg NzcwMCBTZXJpZXMifSwKPiAtCXsweDY2NUQsCTB4MCwJIkFNRCBSYWRlb24gUjcgMjAwIFNlcmll cyJ9LAo+IC0JezB4NjY1RiwJMHg4MSwJIkFNRCBSYWRlb24gUjcgMzAwIFNlcmllcyJ9LAo+IC0J ezB4NjY2MCwJMHgwLAkiQU1EIFJhZGVvbiBIRCA4NjAwTSBTZXJpZXMifSwKPiAtCXsweDY2NjAs CTB4ODEsCSJBTUQgUmFkZW9uIFI1IE0zMzUifSwKPiAtCXsweDY2NjAsCTB4ODMsCSJBTUQgUmFk ZW9uIFI1IE0zMzAifSwKPiAtCXsweDY2NjMsCTB4MCwJIkFNRCBSYWRlb24gSEQgODUwME0gU2Vy aWVzIn0sCj4gLQl7MHg2NjYzLAkweDgzLAkiQU1EIFJhZGVvbiBSNSBNMzIwIn0sCj4gLQl7MHg2 NjY0LAkweDAsCSJBTUQgUmFkZW9uIFI1IE0yMDAgU2VyaWVzIn0sCj4gLQl7MHg2NjY1LAkweDAs CSJBTUQgUmFkZW9uIFI1IE0yMDAgU2VyaWVzIn0sCj4gLQl7MHg2NjY1LAkweDgzLAkiQU1EIFJh ZGVvbiBSNSBNMzIwIn0sCj4gLQl7MHg2NjY3LAkweDAsCSJBTUQgUmFkZW9uIFI1IE0yMDAgU2Vy aWVzIn0sCj4gLQl7MHg2NjZGLAkweDAsCSJBTUQgUmFkZW9uIEhEIDg1MDBNIn0sCj4gLQl7MHg2 NzgwLAkweDAsCSJBVEkgRmlyZVBybyBWIChGaXJlR0wgVikgR3JhcGhpY3MgQWRhcHRlciJ9LAo+ IC0JezB4Njc4QSwJMHgwLAkiQVRJIEZpcmVQcm8gViAoRmlyZUdMIFYpIEdyYXBoaWNzIEFkYXB0 ZXIifSwKPiAtCXsweDY3OTgsCTB4MCwJIkFNRCBSYWRlb24gSEQgNzkwMCBTZXJpZXMifSwKPiAt CXsweDY3OUEsCTB4MCwJIkFNRCBSYWRlb24gSEQgNzkwMCBTZXJpZXMifSwKPiAtCXsweDY3OUIs CTB4MCwJIkFNRCBSYWRlb24gSEQgNzkwMCBTZXJpZXMifSwKPiAtCXsweDY3OUUsCTB4MCwJIkFN RCBSYWRlb24gSEQgNzgwMCBTZXJpZXMifSwKPiAtCXsweDY3QTAsCTB4MCwJIkhBV0FJSSBYVEdM ICg2N0EwKSJ9LAo+IC0JezB4NjdBMSwJMHgwLAkiSEFXQUlJIEdMNDAgKDY3QTEpIn0sCj4gLQl7 MHg2N0IwLAkweDAsCSJBTUQgUmFkZW9uIFI5IDIwMCBTZXJpZXMifSwKPiAtCXsweDY3QjAsCTB4 ODAsCSJBTUQgUmFkZW9uIFI5IDM5MCBTZXJpZXMifSwKPiAtCXsweDY3QjEsCTB4MCwJIkFNRCBS YWRlb24gUjkgMjAwIFNlcmllcyJ9LAo+IC0JezB4NjdCMSwJMHg4MCwJIkFNRCBSYWRlb24gUjkg MzkwIFNlcmllcyJ9LAo+IC0JezB4NjdCOSwJMHgwLAkiQU1EIFJhZGVvbiBSOSAyMDAgU2VyaWVz In0sCj4gLQl7MHg2N0RGLAkweEM0LAkiQU1EIFJhZGVvbiBSWCA0ODAgR3JhcGhpY3MifSwKPiAt CXsweDY3REYsCTB4QzUsCSJBTUQgUmFkZW9uIFJYIDQ3MCBHcmFwaGljcyJ9LAo+IC0JezB4NjdE RiwJMHhDNywJIkFNRCBSYWRlb24gUlggNDgwIEdyYXBoaWNzIn0sCj4gLQl7MHg2N0RGLAkweENG LAkiQU1EIFJhZGVvbiBSWCA0NzAgR3JhcGhpY3MifSwKPiAtCXsweDY3QzQsCTB4MDAsCSJBTUQg UmFkZW9uIFBybyBXWCA3MTAwIEdyYXBoaWNzIn0sCj4gLQl7MHg2N0M3LAkweDAwLAkiQU1EIFJh ZGVvbiBQcm8gV1ggNTEwMCBHcmFwaGljcyJ9LAo+IC0JezB4NjdDMCwJMHgwMCwJIkFNRCBSYWRl b24gUHJvIFdYIDcxMDAgR3JhcGhpY3MifSwKPiAtCXsweDY3RTAsCTB4MDAsCSJBTUQgUmFkZW9u IFBybyBXWCBTZXJpZXMgR3JhcGhpY3MifSwKPiAtCXsweDY3RTMsCTB4MDAsCSJBTUQgUmFkZW9u IFBybyBXWCA0MTAwIEdyYXBoaWNzIn0sCj4gLQl7MHg2N0U4LAkweDAwLAkiQU1EIFJhZGVvbiBQ cm8gV1ggU2VyaWVzIEdyYXBoaWNzIn0sCj4gLQl7MHg2N0U4LAkweDAxLAkiQU1EIFJhZGVvbiBQ cm8gV1ggU2VyaWVzIEdyYXBoaWNzIn0sCj4gLQl7MHg2N0U4LAkweDgwLAkiQU1EIFJhZGVvbiBF OTI2MCBHcmFwaGljcyJ9LAo+IC0JezB4NjdFQiwJMHgwMCwJIkFNRCBSYWRlb24gUHJvIFdYIFNl cmllcyBHcmFwaGljcyJ9LAo+IC0JezB4NjdFRiwJMHhDMCwJIkFNRCBSYWRlb24gUlggR3JhcGhp Y3MifSwKPiAtCXsweDY3RUYsCTB4QzEsCSJBTUQgUmFkZW9uIFJYIDQ2MCBHcmFwaGljcyJ9LAo+ IC0JezB4NjdFRiwJMHhDNSwJIkFNRCBSYWRlb24gUlggNDYwIEdyYXBoaWNzIn0sCj4gLQl7MHg2 N0VGLAkweEM3LAkiQU1EIFJhZGVvbiBSWCBHcmFwaGljcyJ9LAo+IC0JezB4NjdFRiwJMHhDRiwJ IkFNRCBSYWRlb24gUlggNDYwIEdyYXBoaWNzIn0sCj4gLQl7MHg2N0VGLAkweEVGLAkiQU1EIFJh ZGVvbiBSWCBHcmFwaGljcyJ9LAo+IC0JezB4NjdGRiwJMHhDMCwJIkFNRCBSYWRlb24gUlggR3Jh cGhpY3MifSwKPiAtCXsweDY3RkYsCTB4QzEsCSJBTUQgUmFkZW9uIFJYIEdyYXBoaWNzIn0sCj4g LQl7MHg2ODAwLAkweDAsCSJBTUQgUmFkZW9uIEhEIDc5NzBNIn0sCj4gLQl7MHg2ODAxLAkweDAs CSJBTUQgUmFkZW9uKFRNKSBIRDg5NzBNIn0sCj4gLQl7MHg2ODA4LAkweDAsCSJBVEkgRmlyZVBy byBWKEZpcmVHTCBWKSBHcmFwaGljcyBBZGFwdGVyIn0sCj4gLQl7MHg2ODA5LAkweDAsCSJBVEkg RmlyZVBybyBWKEZpcmVHTCBWKSBHcmFwaGljcyBBZGFwdGVyIn0sCj4gLQl7MHg2ODEwLAkweDAs CSJBTUQgUmFkZW9uKFRNKSBIRCA4ODAwIFNlcmllcyJ9LAo+IC0JezB4NjgxMCwJMHg4MSwJIkFN RCBSYWRlb24gUjcgMzcwIFNlcmllcyJ9LAo+IC0JezB4NjgxMSwJMHgwLAkiQU1EIFJhZGVvbihU TSkgSEQ4ODAwIFNlcmllcyJ9LAo+IC0JezB4NjgxMSwJMHg4MSwJIkFNRCBSYWRlb24gUjcgMzAw IFNlcmllcyJ9LAo+IC0JezB4NjgxOCwJMHgwLAkiQU1EIFJhZGVvbiBIRCA3ODAwIFNlcmllcyJ9 LAo+IC0JezB4NjgxOSwJMHgwLAkiQU1EIFJhZGVvbiBIRCA3ODAwIFNlcmllcyJ9LAo+IC0JezB4 NjgyMCwJMHgwLAkiQU1EIFJhZGVvbiBIRCA4ODAwTSBTZXJpZXMifSwKPiAtCXsweDY4MjAsCTB4 ODEsCSJBTUQgUmFkZW9uIFI5IE0zNzUifSwKPiAtCXsweDY4MjAsCTB4ODMsCSJBTUQgUmFkZW9u IFI5IE0zNzVYIn0sCj4gLQl7MHg2ODIxLAkweDAsCSJBTUQgUmFkZW9uIEhEIDg4MDBNIFNlcmll cyJ9LAo+IC0JezB4NjgyMSwJMHg4NywJIkFNRCBSYWRlb24gUjcgTTM4MCJ9LAo+IC0JezB4Njgy MSwJMHg4MywJIkFNRCBSYWRlb24gUjkgTTM3MFgifSwKPiAtCXsweDY4MjIsCTB4MCwJIkFNRCBS YWRlb24gRTg4NjAifSwKPiAtCXsweDY4MjMsCTB4MCwJIkFNRCBSYWRlb24gSEQgODgwME0gU2Vy aWVzIn0sCj4gLQl7MHg2ODI1LAkweDAsCSJBTUQgUmFkZW9uIEhEIDc4MDBNIFNlcmllcyJ9LAo+ IC0JezB4NjgyNywJMHgwLAkiQU1EIFJhZGVvbiBIRCA3ODAwTSBTZXJpZXMifSwKPiAtCXsweDY4 MjgsCTB4MCwJIkFUSSBGaXJlUHJvIFYoRmlyZUdMIFYpIEdyYXBoaWNzIEFkYXB0ZXIifSwKPiAt CXsweDY4MkIsCTB4MCwJIkFNRCBSYWRlb24gSEQgODgwME0gU2VyaWVzIn0sCj4gLQl7MHg2ODJC LAkweDg3LAkiQU1EIFJhZGVvbiBSOSBNMzYwIn0sCj4gLQl7MHg2ODJDLAkweDAsCSJBTUQgRmly ZVBybyBXNDEwMCJ9LAo+IC0JezB4NjgyRCwJMHgwLAkiQU1EIFJhZGVvbiBIRCA3NzAwTSBTZXJp ZXMifSwKPiAtCXsweDY4MkYsCTB4MCwJIkFNRCBSYWRlb24gSEQgNzcwME0gU2VyaWVzIn0sCj4g LQl7MHg2ODM1LAkweDAsCSJBTUQgUmFkZW9uIFI3IFNlcmllcyAvIEhEIDkwMDAgU2VyaWVzIn0s Cj4gLQl7MHg2ODM3LAkweDAsCSJBTUQgUmFkZW9uIEhENzcwMCBTZXJpZXMifSwKPiAtCXsweDY4 M0QsCTB4MCwJIkFNRCBSYWRlb24gSEQgNzcwMCBTZXJpZXMifSwKPiAtCXsweDY4M0YsCTB4MCwJ IkFNRCBSYWRlb24gSEQgNzcwMCBTZXJpZXMifSwKPiAtCXsweDY5MDAsCTB4MCwJIkFNRCBSYWRl b24gUjcgTTI2MCJ9LAo+IC0JezB4NjkwMCwJMHg4MSwJIkFNRCBSYWRlb24gUjcgTTM2MCJ9LAo+ IC0JezB4NjkwMCwJMHg4MywJIkFNRCBSYWRlb24gUjcgTTM0MCJ9LAo+IC0JezB4NjkwMSwJMHgw LAkiQU1EIFJhZGVvbiBSNSBNMjU1In0sCj4gLQl7MHg2OTA3LAkweDAsCSJBTUQgUmFkZW9uIFI1 IE0yNTUifSwKPiAtCXsweDY5MDcsCTB4ODcsCSJBTUQgUmFkZW9uIFI1IE0zMTUifSwKPiAtCXsw eDY5MjAsCTB4MCwJIkFNRCBSYWRlb24gUjkgTTM5NVgifSwKPiAtCXsweDY5MjAsCTB4MSwJIkFN RCBSYWRlb24gUjkgTTM5MFgifSwKPiAtCXsweDY5MjEsCTB4MCwJIkFNRCBSYWRlb24gUjkgTTI5 NVgifSwKPiAtCXsweDY5MjksCTB4MCwJIkFNRCBGaXJlUHJvIFM3MTUwIn0sCj4gLQl7MHg2OTJC LAkweDAsCSJBTUQgRmlyZVBybyBXNzEwMCJ9LAo+IC0JezB4NjkzOCwJMHgwLAkiQU1EIFJhZGVv biBSOSAyMDAgU2VyaWVzIn0sCj4gLQl7MHg2OTM4LAkweEYwLAkiQU1EIFJhZGVvbiBSOSAyMDAg U2VyaWVzIn0sCj4gLQl7MHg2OTM4LAkweEYxLAkiQU1EIFJhZGVvbiBSOSAzODAgU2VyaWVzIn0s Cj4gLQl7MHg2OTM5LAkweEYwLAkiQU1EIFJhZGVvbiBSOSAyMDAgU2VyaWVzIn0sCj4gLQl7MHg2 OTM5LAkweDAsCSJBTUQgUmFkZW9uIFI5IDIwMCBTZXJpZXMifSwKPiAtCXsweDY5MzksCTB4RjEs CSJBTUQgUmFkZW9uIFI5IDM4MCBTZXJpZXMifSwKPiAtCXsweDczMDAsCTB4QzgsCSJBTUQgUmFk ZW9uIFI5IEZ1cnkgU2VyaWVzIn0sCj4gLQl7MHg3MzAwLAkweENCLAkiQU1EIFJhZGVvbiBSOSBG dXJ5IFNlcmllcyJ9LAo+IC0JezB4NzMwMCwJMHhDQSwJIkFNRCBSYWRlb24gUjkgRnVyeSBTZXJp ZXMifSwKPiAtCXsweDk4NzQsCTB4QzQsCSJBTUQgUmFkZW9uIFI3IEdyYXBoaWNzIn0sCj4gLQl7 MHg5ODc0LAkweEM1LAkiQU1EIFJhZGVvbiBSNiBHcmFwaGljcyJ9LAo+IC0JezB4OTg3NCwJMHhD NiwJIkFNRCBSYWRlb24gUjYgR3JhcGhpY3MifSwKPiAtCXsweDk4NzQsCTB4QzcsCSJBTUQgUmFk ZW9uIFI1IEdyYXBoaWNzIn0sCj4gLQl7MHg5ODc0LAkweDgxLAkiQU1EIFJhZGVvbiBSNiBHcmFw aGljcyJ9LAo+IC0JezB4OTg3NCwJMHg4NywJIkFNRCBSYWRlb24gUjUgR3JhcGhpY3MifSwKPiAt CXsweDk4NzQsCTB4ODUsCSJBTUQgUmFkZW9uIFI2IEdyYXBoaWNzIn0sCj4gLQl7MHg5ODc0LAkw eDg0LAkiQU1EIFJhZGVvbiBSNyBHcmFwaGljcyJ9LAo+IC0KPiAtCXsweDAwMDAsCTB4MCwJIlww In0sCj4gLX07Cj4gLSNlbmRpZgo+IGRpZmYgLS1naXQgYS9hbWRncHUvYW1kZ3B1X2RldmljZS5j IGIvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwo+IGluZGV4IGY0NzNkMmQuLjlkMDg3NDQgMTAwNjQ0 Cj4gLS0tIGEvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwo+ICsrKyBiL2FtZGdwdS9hbWRncHVfZGV2 aWNlLmMKPiBAQCAtNDQsNyArNDQsNiBAQAo+ICAgI2luY2x1ZGUgImFtZGdwdV9pbnRlcm5hbC5o Igo+ICAgI2luY2x1ZGUgInV0aWxfaGFzaF90YWJsZS5oIgo+ICAgI2luY2x1ZGUgInV0aWxfbWF0 aC5oIgo+IC0jaW5jbHVkZSAiYW1kZ3B1X2FzaWNfaWQuaCIKPgo+ICAgI2RlZmluZSBQVFJfVE9f VUlOVCh4KSAoKHVuc2lnbmVkKSgoaW50cHRyX3QpKHgpKSkKPiAgICNkZWZpbmUgVUlOVF9UT19Q VFIoeCkgKCh2b2lkICopKChpbnRwdHJfdCkoeCkpKQo+IEBAIC0xMzEsNiArMTMwLDcgQEAgc3Rh dGljIGludCBhbWRncHVfZ2V0X2F1dGgoaW50IGZkLCBpbnQgKmF1dGgpCj4KPiAgIHN0YXRpYyB2 b2lkIGFtZGdwdV9kZXZpY2VfZnJlZV9pbnRlcm5hbChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYp Cj4gICB7Cj4gKwljb25zdCBzdHJ1Y3QgYW1kZ3B1X2FzaWNfaWQgKmlkOwo+ICAgCWFtZGdwdV92 YW1ncl9kZWluaXQoJmRldi0+dmFtZ3JfMzIpOwo+ICAgCWFtZGdwdV92YW1ncl9kZWluaXQoJmRl di0+dmFtZ3IpOwo+ICAgCXV0aWxfaGFzaF90YWJsZV9kZXN0cm95KGRldi0+Ym9fZmxpbmtfbmFt ZXMpOwo+IEBAIC0xNDAsNiArMTQwLDEzIEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kZXZpY2VfZnJl ZV9pbnRlcm5hbChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYpCj4gICAJY2xvc2UoZGV2LT5mZCk7 Cj4gICAJaWYgKChkZXYtPmZsaW5rX2ZkID49IDApICYmIChkZXYtPmZkICE9IGRldi0+Zmxpbmtf ZmQpKQo+ICAgCQljbG9zZShkZXYtPmZsaW5rX2ZkKTsKPiArCWlmIChkZXYtPmFzaWNfaWRzKSB7 Cj4gKwkJZm9yIChpZCA9IGRldi0+YXNpY19pZHM7IGlkLT5kaWQ7IGlkKyspIHsKPiArCQkJaWYg KGlkLT5tYXJrZXRpbmdfbmFtZSAhPSAgTlVMTCkKPiArCQkJCWZyZWUoaWQtPm1hcmtldGluZ19u YW1lKTsKPiArCQl9Cj4gKwkJZnJlZShkZXYtPmFzaWNfaWRzKTsKPiArCX0KPiAgIAlmcmVlKGRl dik7Cj4gICB9Cj4KPiBAQCAtMjY3LDYgKzI3NCwxMSBAQCBpbnQgYW1kZ3B1X2RldmljZV9pbml0 aWFsaXplKGludCBmZCwKPiAgIAlhbWRncHVfdmFtZ3JfaW5pdCgmZGV2LT52YW1ncl8zMiwgc3Rh cnQsIG1heCwKPiAgIAkJCSAgZGV2LT5kZXZfaW5mby52aXJ0dWFsX2FkZHJlc3NfYWxpZ25tZW50 KTsKPgo+ICsJciA9IGFtZGdwdV9wYXJzZV9hc2ljX2lkcygmZGV2LT5hc2ljX2lkcyk7Cj4gKwlp ZiAocikKPiArCQlmcHJpbnRmKHN0ZGVyciwgIiVzOiBDYW4gbm90IHBhcnNlIGFzaWMgaWRzLCAw eCV4LiIsCj4gKwkJCV9fZnVuY19fLCByKTsKPiArCj4gICAJKm1ham9yX3ZlcnNpb24gPSBkZXYt Pm1ham9yX3ZlcnNpb247Cj4gICAJKm1pbm9yX3ZlcnNpb24gPSBkZXYtPm1pbm9yX3ZlcnNpb247 Cj4gICAJKmRldmljZV9oYW5kbGUgPSBkZXY7Cj4gQEAgLTI5NywxMyArMzA5LDE1IEBAIGludCBh bWRncHVfZGV2aWNlX2RlaW5pdGlhbGl6ZShhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYpCj4KPiAg IGNvbnN0IGNoYXIgKmFtZGdwdV9nZXRfbWFya2V0aW5nX25hbWUoYW1kZ3B1X2RldmljZV9oYW5k bGUgZGV2KQo+ICAgewo+IC0JY29uc3Qgc3RydWN0IGFtZGdwdV9hc2ljX2lkX3RhYmxlX3QgKnQg PSBhbWRncHVfYXNpY19pZF90YWJsZTsKPiArCWNvbnN0IHN0cnVjdCBhbWRncHVfYXNpY19pZCAq aWQ7Cj4gKwo+ICsJaWYgKCFkZXYtPmFzaWNfaWRzKQo+ICsJCXJldHVybiBOVUxMOwo+Cj4gLQl3 aGlsZSAodC0+ZGlkKSB7Cj4gLQkJaWYgKCh0LT5kaWQgPT0gZGV2LT5pbmZvLmFzaWNfaWQpICYm Cj4gLQkJICAgICh0LT5yaWQgPT0gZGV2LT5pbmZvLnBjaV9yZXZfaWQpKQo+IC0JCQlyZXR1cm4g dC0+bWFya2V0aW5nX25hbWU7Cj4gLQkJdCsrOwo+ICsJZm9yIChpZCA9IGRldi0+YXNpY19pZHM7 IGlkLT5kaWQ7IGlkKyspIHsKPiArCQlpZiAoKGlkLT5kaWQgPT0gZGV2LT5pbmZvLmFzaWNfaWQp ICYmCj4gKwkJCQkoaWQtPnJpZCA9PSBkZXYtPmluZm8ucGNpX3Jldl9pZCkpCj4gKwkJCXJldHVy biBpZC0+bWFya2V0aW5nX25hbWU7Cj4gICAJfQo+Cj4gICAJcmV0dXJuIE5VTEw7Cj4gZGlmZiAt LWdpdCBhL2FtZGdwdS9hbWRncHVfaW50ZXJuYWwuaCBiL2FtZGdwdS9hbWRncHVfaW50ZXJuYWwu aAo+IGluZGV4IGNmMTE5YTUuLjlkMTFiZWEgMTAwNjQ0Cj4gLS0tIGEvYW1kZ3B1L2FtZGdwdV9p bnRlcm5hbC5oCj4gKysrIGIvYW1kZ3B1L2FtZGdwdV9pbnRlcm5hbC5oCj4gQEAgLTY5LDYgKzY5 LDEyIEBAIHN0cnVjdCBhbWRncHVfdmEgewo+ICAgCXN0cnVjdCBhbWRncHVfYm9fdmFfbWdyICp2 YW1ncjsKPiAgIH07Cj4KPiArc3RydWN0IGFtZGdwdV9hc2ljX2lkIHsKPiArICAgIHVpbnQzMl90 IGRpZDsKPiArICAgIHVpbnQzMl90IHJpZDsKPiArCWNoYXIgKm1hcmtldGluZ19uYW1lOwo+ICt9 Owo+ICsKPiAgIHN0cnVjdCBhbWRncHVfZGV2aWNlIHsKPiAgIAlhdG9taWNfdCByZWZjb3VudDsK PiAgIAlpbnQgZmQ7Cj4gQEAgLTc2LDYgKzgyLDggQEAgc3RydWN0IGFtZGdwdV9kZXZpY2Ugewo+ ICAgCXVuc2lnbmVkIG1ham9yX3ZlcnNpb247Cj4gICAJdW5zaWduZWQgbWlub3JfdmVyc2lvbjsK Pgo+ICsJLyoqIExvb2t1cCB0YWJsZSBvZiBhc2ljIGRldmljZSBpZCwgcmV2aXNpb24gaWQgYW5k IG1hcmtldGluZyBuYW1lICovCj4gKwlzdHJ1Y3QgYW1kZ3B1X2FzaWNfaWQgKmFzaWNfaWRzOwo+ ICAgCS8qKiBMaXN0IG9mIGJ1ZmZlciBoYW5kbGVzLiBQcm90ZWN0ZWQgYnkgYm9fdGFibGVfbXV0 ZXguICovCj4gICAJc3RydWN0IHV0aWxfaGFzaF90YWJsZSAqYm9faGFuZGxlczsKPiAgIAkvKiog TGlzdCBvZiBidWZmZXIgR0VNIGZsaW5rIG5hbWVzLiBQcm90ZWN0ZWQgYnkgYm9fdGFibGVfbXV0 ZXguICovCj4gQEAgLTE0OSw2ICsxNTcsOCBAQCBhbWRncHVfdmFtZ3JfZmluZF92YShzdHJ1Y3Qg YW1kZ3B1X2JvX3ZhX21nciAqbWdyLCB1aW50NjRfdCBzaXplLAo+ICAgZHJtX3ByaXZhdGUgdm9p ZAo+ICAgYW1kZ3B1X3ZhbWdyX2ZyZWVfdmEoc3RydWN0IGFtZGdwdV9ib192YV9tZ3IgKm1nciwg dWludDY0X3QgdmEsIHVpbnQ2NF90IHNpemUpOwo+Cj4gK2RybV9wcml2YXRlIGludCBhbWRncHVf cGFyc2VfYXNpY19pZHMoc3RydWN0IGFtZGdwdV9hc2ljX2lkICoqYXNpY19pZHMpOwo+ICsKPiAg IGRybV9wcml2YXRlIGludCBhbWRncHVfcXVlcnlfZ3B1X2luZm9faW5pdChhbWRncHVfZGV2aWNl X2hhbmRsZSBkZXYpOwo+Cj4gICBkcm1fcHJpdmF0ZSB1aW50NjRfdCBhbWRncHVfY3NfY2FsY3Vs YXRlX3RpbWVvdXQodWludDY0X3QgdGltZW91dCk7Cj4KPgo+Cj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBhbWQtZ2Z4IG1haWxpbmcgbGlzdAo+IGFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cj4KX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9hbWQtZ2Z4Cg==