From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [path v2 1/7] drm/hisilicon/hibmc: Add hisilicon hibmc drm master driver Date: Mon, 30 May 2016 11:03:31 +0200 Message-ID: <20160530090331.GD27098@phenom.ffwll.local> References: <1464514855-108050-1-git-send-email-zourongrong@gmail.com> <1464514855-108050-2-git-send-email-zourongrong@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9A6656E700 for ; Mon, 30 May 2016 09:03:36 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id n129so20477786wmn.1 for ; Mon, 30 May 2016 02:03:36 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1464514855-108050-2-git-send-email-zourongrong@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Rongrong Zou Cc: linux-fbdev@vger.kernel.org, emil.l.velikov@gmail.com, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linuxarm@huawei.com, linux-arm-kernel@lists.infradead.org, guohanjun@huawei.com, zourongrong@huawei.com, majun258@huawei.com List-Id: dri-devel@lists.freedesktop.org T24gU3VuLCBNYXkgMjksIDIwMTYgYXQgMDU6NDA6NDlQTSArMDgwMCwgUm9uZ3JvbmcgWm91IHdy b3RlOgo+IEFkZCBEUk0gbWFzdGVyIGRyaXZlciBmb3IgSGlzaWxpY29uIEhpYm1jIFNvQyB3aGlj aCB1c2VkIGZvcgo+IE91dC1vZi1iYW5kIG1hbmFnZW1lbnQuIEJsb3cgaXMgdGhlIGdlbmVyYWwg aGFyZHdhcmUgY29ubmVjdGlvbiwKPiBib3RoIHRoZSBIaWJtYyBhbmQgdGhlIGhvc3QgQ1BVIGFy ZSBvbiB0aGUgc2FtZSBtb3RoZXIgYm9hcmQuCj4gCj4gKy0tLS0tLS0tLS0rICAgICAgICstLS0t LS0tLS0tKwo+IHwgICAgICAgICAgfCBQQ0llICB8ICBIaWJtYyAgIHwKPiB8aG9zdCBDUFUoIHw8 LS0tLS0+fCBkaXNwbGF5ICB8Cj4gfGFybTY0LHg4Nil8ICAgICAgIHxzdWJzeXN0ZW0gfAo+ICst LS0tLS0tLS0tKyAgICAgICArLS0tLS0tLS0tLSsKPiAKPiBTaWduZWQtb2ZmLWJ5OiBSb25ncm9u ZyBab3UgPHpvdXJvbmdyb25nQGdtYWlsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBKaWFuaHVhIExp IDxsaWppYW5odWFAaHVhd2VpLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNv bi9LY29uZmlnICAgICAgICAgICAgICAgICB8ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9oaXNp bGljb24vTWFrZWZpbGUgICAgICAgICAgICAgICAgfCAgIDMgKy0KPiAgZHJpdmVycy9ncHUvZHJt L2hpc2lsaWNvbi9oaWJtYy9LY29uZmlnICAgICAgICAgICB8ICAxMyArCj4gIGRyaXZlcnMvZ3B1 L2RybS9oaXNpbGljb24vaGlibWMvTWFrZWZpbGUgICAgICAgICAgfCAgIDQgKwo+ICBkcml2ZXJz L2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9kcnYuYyAgIHwgMzA3ICsrKysrKysr KysrKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19k cm1fZHJ2LmggICB8ICAzOSArKysKPiAgZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9o aWJtY19kcm1fcG93ZXIuYyB8ICA5MSArKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9oaXNpbGlj b24vaGlibWMvaGlibWNfZHJtX3Bvd2VyLmggfCAgMjggKysKPiAgZHJpdmVycy9ncHUvZHJtL2hp c2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fcmVncy5oICB8IDIxNCArKysrKysrKysrKysrKysKPiAg OSBmaWxlcyBjaGFuZ2VkLCA2OTkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ICBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9LY29uZmlnCj4g IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL01ha2Vm aWxlCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1j L2hpYm1jX2RybV9kcnYuYwo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2hp c2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2LmgKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX3Bvd2VyLmMKPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX3Bvd2Vy LmgKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMv aGlibWNfZHJtX3JlZ3MuaAo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxp Y29uL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL0tjb25maWcKPiBpbmRleCA1 NThjNjFiLi4yZmQyNzI0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24v S2NvbmZpZwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vS2NvbmZpZwo+IEBAIC0y LDQgKzIsNSBAQAo+ICAjIGhpc2lsaWNvbiBkcm0gZGV2aWNlIGNvbmZpZ3VyYXRpb24uCj4gICMg UGxlYXNlIGtlZXAgdGhpcyBsaXN0IHNvcnRlZCBhbHBoYWJldGljYWxseQo+ICAKPiArc291cmNl ICJkcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL0tjb25maWciCj4gIHNvdXJjZSAiZHJp dmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9LY29uZmlnIgo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaGlzaWxpY29uL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNv bi9NYWtlZmlsZQo+IGluZGV4IGUzZjZkNDkuLjRkNzE4NWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2hpc2lsaWNvbi9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNp bGljb24vTWFrZWZpbGUKPiBAQCAtMiw0ICsyLDUgQEAKPiAgIyBNYWtlZmlsZSBmb3IgaGlzaWxp Y29uIGRybSBkcml2ZXJzLgo+ICAjIFBsZWFzZSBrZWVwIHRoaXMgbGlzdCBzb3J0ZWQgYWxwaGFi ZXRpY2FsbHkKPiAgCj4gLW9iai0kKENPTkZJR19EUk1fSElTSV9LSVJJTikgKz0ga2lyaW4vCj4g K29iai0kKENPTkZJR19EUk1fSElTSV9ISUJNQykgKz0gaGlibWMvCj4gK29iai0kKENPTkZJR19E Uk1fSElTSV9LSVJJTikgKz0ga2lyaW4vCj4gXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvS2NvbmZpZyBiL2Ry aXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvS2NvbmZpZwo+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0Cj4gaW5kZXggMDAwMDAwMC4uMWU3ODEwZAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL0tjb25maWcKPiBAQCAtMCwwICsxLDEzIEBACj4g K2NvbmZpZyBEUk1fSElTSV9ISUJNQwo+ICsJdHJpc3RhdGUgIkRSTSBTdXBwb3J0IGZvciBIaXNp bGljb24gSGlibWMiCj4gKwlkZXBlbmRzIG9uIERSTSAmJiBQQ0kKPiArCXNlbGVjdCBEUk1fS01T X0hFTFBFUgo+ICsJc2VsZWN0IERSTV9LTVNfRkJfSEVMUEVSCj4gKwlzZWxlY3QgRFJNX0dFTV9D TUFfSEVMUEVSCj4gKwlzZWxlY3QgRFJNX0tNU19DTUFfSEVMUEVSCj4gKwlzZWxlY3QgRkJfU1lT X0ZJTExSRUNUCj4gKwlzZWxlY3QgRkJfU1lTX0NPUFlBUkVBCj4gKwlzZWxlY3QgRkJfU1lTX0lN QUdFQkxJVAo+ICsJaGVscAo+ICsJICBDaG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IGhhdmUgYSBI aXNpbGljb24gSGlibWMgc29jIGNoaXBzZXQuCj4gKwkgIElmIE0gaXMgc2VsZWN0ZWQgdGhlIG1v ZHVsZSB3aWxsIGJlIGNhbGxlZCBoaWJtYy1kcm0uCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9oaXNpbGljb24vaGlibWMvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29u L2hpYm1jL01ha2VmaWxlCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi41 MzNmOWVkCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24v aGlibWMvTWFrZWZpbGUKPiBAQCAtMCwwICsxLDQgQEAKPiAraGlibWMtZHJtLXkgOj0gaGlibWNf ZHJtX2Rydi5vIGhpYm1jX2RybV9wb3dlci5vCj4gKwo+ICtvYmotJChDT05GSUdfRFJNX0hJU0lf SElCTUMpCSs9aGlibWMtZHJtLm8KPiArI29iai15CSs9IGhpYm1jLWRybS5vCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX2Rydi5jIGIvZHJp dmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2LmMKPiBuZXcgZmlsZSBt b2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjdlYWFjZDgKPiAtLS0gL2Rldi9udWxsCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fZHJ2LmMKPiBAQCAt MCwwICsxLDMwNyBAQAo+ICsvKiBIaXNpbGljb24gSGlibWMgU29DIGRybSBkcml2ZXIKPiArICoK PiArICogQmFzZWQgb24gdGhlIGJvY2hzIGRybSBkcml2ZXIuCj4gKyAqCj4gKyAqIENvcHlyaWdo dCAoYykgMjAxNiBIdWF3ZWkgTGltaXRlZC4KPiArICoKPiArICogQXV0aG9yOgo+ICsgKglSb25n cm9uZyBab3UgPHpvdXJvbmdyb25nQGh1YXdlaT4KPiArICoJUm9uZ3JvbmcgWm91IDx6b3Vyb25n cm9uZ0BnbWFpbC5jb20+Cj4gKyAqCUppYW5odWEgTGkgPGxpamlhbmh1YUBodWF3ZWkuY29tPgo+ ICsgKgo+ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo+ICsgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQo+ICsgKiB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgo+ ICsgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgo+ICsgKgo+ICsgKi8KPiAr Cj4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2NvbnNvbGUu aD4KPiArI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+ICsjaW5jbHVkZSA8ZHJt L2RybV9jcnRjX2hlbHBlci5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KPiAr I2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9oZWxwZXIuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1Q Lmg+Cj4gKwo+ICsjaW5jbHVkZSAiaGlibWNfZHJtX2Rydi5oIgo+ICsjaW5jbHVkZSAiaGlibWNf ZHJtX3JlZ3MuaCIKPiArI2luY2x1ZGUgImhpYm1jX2RybV9wb3dlci5oIgo+ICsKPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaGlibWNfZm9wcyA9IHsKPiArCS5vd25lcgkJ PSBUSElTX01PRFVMRSwKPiArCS5vcGVuCQk9IGRybV9vcGVuLAo+ICsJLnJlbGVhc2UJPSBkcm1f cmVsZWFzZSwKPiArCS51bmxvY2tlZF9pb2N0bAk9IGRybV9pb2N0bCwKPiArI2lmZGVmIENPTkZJ R19DT01QQVQKPiArCS5jb21wYXRfaW9jdGwJPSBkcm1fY29tcGF0X2lvY3RsLAo+ICsjZW5kaWYK PiArCS5wb2xsCQk9IGRybV9wb2xsLAo+ICsJLnJlYWQJCT0gZHJtX3JlYWQsCj4gKwkubGxzZWVr CQk9IG5vX2xsc2VlaywKPiArfTsKPiArCj4gK3N0YXRpYyBpbnQgaGlibWNfZW5hYmxlX3ZibGFu ayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKPiArewo+ICsJcmV0 dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGhpYm1jX2Rpc2FibGVfdmJsYW5rKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICt7Cj4gK30KPiArCj4gK3N0 YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBoaWJtY19kcml2ZXIgPSB7Cj4gKwkuZHJpdmVyX2ZlYXR1 cmVzCT0gRFJJVkVSX0dFTSB8IERSSVZFUl9NT0RFU0VULAo+ICsJLmZvcHMJCQk9ICZoaWJtY19m b3BzLAo+ICsJLm5hbWUJCQk9ICJoaWJtYyIsCj4gKwkuZGVzYwkJCT0gImhpYm1jIGRybSBkcml2 ZXIiLAo+ICsJLm1ham9yCQkJPSAxLAo+ICsJLm1pbm9yCQkJPSAwLAo+ICsJLmdldF92Ymxhbmtf Y291bnRlciA9IGRybV92Ymxhbmtfbm9faHdfY291bnRlciwKPiArCS5lbmFibGVfdmJsYW5rCQk9 IGhpYm1jX2VuYWJsZV92YmxhbmssCj4gKwkuZGlzYWJsZV92YmxhbmsJPSBoaWJtY19kaXNhYmxl X3ZibGFuaywKPiArCS5nZW1fZnJlZV9vYmplY3QgICAgICAgID0gZHJtX2dlbV9jbWFfZnJlZV9v YmplY3QsCgpnZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQgcGxzLgoKPiArCS5nZW1fdm1fb3BzCQk9 ICZkcm1fZ2VtX2NtYV92bV9vcHMsCj4gKwkuZHVtYl9jcmVhdGUgICAgICAgICAgICA9IGRybV9n ZW1fY21hX2R1bWJfY3JlYXRlLAo+ICsJLmR1bWJfbWFwX29mZnNldCAgICAgICAgPSBkcm1fZ2Vt X2NtYV9kdW1iX21hcF9vZmZzZXQsCj4gKwkuZHVtYl9kZXN0cm95ICAgICAgICAgICA9IGRybV9n ZW1fZHVtYl9kZXN0cm95LAo+ICt9Owo+ICsKPiArc3RhdGljIGludCBoaWJtY19wbV9zdXNwZW5k KHN0cnVjdCBkZXZpY2UgKmRldikKPiArewo+ICsJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19w Y2lfZGV2KGRldik7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IHBjaV9nZXRfZHJ2 ZGF0YShwZGV2KTsKPiArCj4gKwlkcm1fa21zX2hlbHBlcl9wb2xsX2Rpc2FibGUoZHJtX2Rldik7 Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgaGlibWNfcG1fcmVzdW1l KHN0cnVjdCBkZXZpY2UgKmRldikKPiArewo+ICsJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19w Y2lfZGV2KGRldik7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IHBjaV9nZXRfZHJ2 ZGF0YShwZGV2KTsKPiArCj4gKwlkcm1faGVscGVyX3Jlc3VtZV9mb3JjZV9tb2RlKGRybV9kZXYp Owo+ICsJZHJtX2ttc19oZWxwZXJfcG9sbF9lbmFibGUoZHJtX2Rldik7Cj4gKwo+ICsJcmV0dXJu IDA7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBoaWJtY19wbV9v cHMgPSB7Cj4gKwlTRVRfU1lTVEVNX1NMRUVQX1BNX09QUyhoaWJtY19wbV9zdXNwZW5kLAo+ICsJ CQkJaGlibWNfcG1fcmVzdW1lKQo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1f bW9kZV9jb25maWdfZnVuY3MgbW9kZV9jb25maWdfZnVuY3MgPSB7Cj4gKwkuYXRvbWljX2NoZWNr ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2ssCj4gKwkuYXRvbWljX2NvbW1pdCA9IGRybV9hdG9t aWNfaGVscGVyX2NvbW1pdCwKClNvIGhvdyBleGFjdGx5IGRvZXMgbm9uYmxvY2tpbmcgY29tbWl0 IHdvcmsgZm9yIHlvdT8gUGxlYXNlIHJ1biB0aGUgaWd0CnZhbGlkYXRpb24gc3VpdCBvbiB5b3Vy IG5ldyBkcml2ZXIsIGEgYnVuY2ggb2YgY29sbGFib3JhIGVuZ2luZWVycyBhcmUKd29ya2luZyBo YXJkIHRvIG1ha2UgaXQgcnVuIG9uIG5vbi1pbnRlbCBkcml2ZXJzIHRvby4gUGluZyBUb21ldSBh bmQKUm9iZXJ0IEZvc3MgZm9yIG1vcmUgaW5mbyBvbiB0aGlzIHBsZWFzZS4KCkx1Y2t5IGZvciB5 b3UgSSdtIHdvcmtpbmcgb24gZ2VuZXJpYyBub25ibG9ja2luZyBzdXBwb3J0IGluIHRoZSBhdG9t aWMKaGVscGVycywgcGF0Y2hlcyBhcmUgb24gdGhlIG1haWxpbmcgbGlzdC4KCj4gK307Cj4gKwo+ ICsKPiArc3RhdGljIGludCBoaWJtY19od19jb25maWcoc3RydWN0IGhpYm1jX2RybV9kZXZpY2Ug KmhpZGV2KQo+ICt7Cj4gKwl1bnNpZ25lZCBpbnQgcmVnOwo+ICsKPiArCS8qIE9uIGhhcmR3YXJl IHJlc2V0LCBwb3dlciBtb2RlIDAgaXMgZGVmYXVsdC4gKi8KPiArCWhpYm1jX3NldF9wb3dlcl9t b2RlKGhpZGV2LCBISUJNQ19QV19NT0RFX0NUTF9NT0RFX01PREUwKTsKPiArCj4gKwkvKiBFbmFi bGUgZGlzcGxheSBwb3dlciBnYXRlICYgTE9DQUxNRU0gcG93ZXIgZ2F0ZSovCj4gKwlyZWcgPSBy ZWFkbChoaWRldi0+bW1pbyArIEhJQk1DX0NVUlJFTlRfR0FURSk7Cj4gKwlyZWcgJj0gfkhJQk1D X0NVUlJfR0FURV9ESVNQTEFZX01BU0s7Cj4gKwlyZWcgJj0gfkhJQk1DX0NVUlJfR0FURV9MT0NB TE1FTV9NQVNLOwo+ICsJcmVnIHw9IEhJQk1DX0NVUlJfR0FURV9ESVNQTEFZKE9OKTsKPiArCXJl ZyB8PSBISUJNQ19DVVJSX0dBVEVfTE9DQUxNRU0oT04pOwo+ICsKPiArCWhpYm1jX3NldF9jdXJy ZW50X2dhdGUoaGlkZXYsIHJlZyk7Cj4gKwo+ICsJLyogUmVzZXQgdGhlIG1lbW9yeSBjb250cm9s bGVyLiBJZiB0aGUgbWVtb3J5IGNvbnRyb2xsZXIKPiArCSAqIGlzIG5vdCByZXNldCBpbiBjaGlw LHRoZSBzeXN0ZW0gbWlnaHQgaGFuZyB3aGVuIHN3IGFjY2Vzc2VzCj4gKwkgKiB0aGUgbWVtb3J5 LlRoZSBtZW1vcnkgc2hvdWxkIGJlIHJlc2V0dGVkIGFmdGVyCj4gKwkgKiBjaGFuZ2luZyB0aGUg TVhDTEsuCj4gKwkgKi8KPiArCXJlZyA9IHJlYWRsKGhpZGV2LT5tbWlvICsgSElCTUNfTUlTQ19D VFJMKTsKPiArCXJlZyAmPSB+SElCTUNfTVNDQ1RMX0xPQ0FMTUVNX1JFU0VUX01BU0s7Cj4gKwly ZWcgfD0gSElCTUNfTVNDQ1RMX0xPQ0FMTUVNX1JFU0VUKFJFU0VUKTsKPiArCXdyaXRlbChyZWcs IGhpZGV2LT5tbWlvICsgSElCTUNfTUlTQ19DVFJMKTsKPiArCj4gKwlyZWcgJj0gfkhJQk1DX01T Q0NUTF9MT0NBTE1FTV9SRVNFVF9NQVNLOwo+ICsJcmVnIHw9IEhJQk1DX01TQ0NUTF9MT0NBTE1F TV9SRVNFVChOT1JNQUwpOwo+ICsKPiArCXdyaXRlbChyZWcsIGhpZGV2LT5tbWlvICsgSElCTUNf TUlTQ19DVFJMKTsKPiArCj4gKwkvKiBXZSBjYW4gYWRkIG1vcmUgaW5pdGlhbGl6YXRpb24gYXMg bmVlZGVkLiAqLwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGhpYm1j X2h3X21hcChzdHJ1Y3QgaGlibWNfZHJtX2RldmljZSAqaGlkZXYpCj4gK3sKPiArCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBoaWRldi0+ZGV2Owo+ICsJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBk ZXYtPnBkZXY7Cj4gKwlyZXNvdXJjZV9zaXplX3QgYWRkciwgc2l6ZSwgaW9hZGRyLCBpb3NpemU7 Cj4gKwo+ICsJaW9hZGRyID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBkZXYsIDEpOwo+ICsJaW9zaXpl ID0gTUIoMik7Cj4gKwo+ICsJaGlkZXYtPm1taW8gPSBpb3JlbWFwX25vY2FjaGUoaW9hZGRyLCBp b3NpemUpOwo+ICsKPiArCWlmICghaGlkZXYtPm1taW8pIHsKPiArCQlEUk1fRVJST1IoIkNhbm5v dCBtYXAgbW1pbyByZWdpb25cbiIpOwo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsJfQo+ICsKPiAr CWFkZHIgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGRldiwgMCk7Cj4gKwlzaXplID0gTUIoMTYpOwo+ ICsKPiArCWhpZGV2LT5mYl9tYXAgPSBpb3JlbWFwKGFkZHIsIHNpemUpOwo+ICsJaWYgKCFoaWRl di0+ZmJfbWFwKSB7Cj4gKwkJRFJNX0VSUk9SKCJDYW5ub3QgbWFwIGZyYW1lYnVmZmVyXG4iKTsK PiArCQlyZXR1cm4gLUVOT01FTTsKPiArCX0KPiArCWhpZGV2LT5mYl9iYXNlID0gYWRkcjsKPiAr CWhpZGV2LT5mYl9zaXplID0gc2l6ZTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3Rh dGljIHZvaWQgaGlibWNfaHdfZmluaShzdHJ1Y3QgaGlibWNfZHJtX2RldmljZSAqaGlkZXYpCj4g K3sKPiArCWlmIChoaWRldi0+bW1pbykKPiArCQlpb3VubWFwKGhpZGV2LT5tbWlvKTsKPiArCWlm IChoaWRldi0+ZmJfbWFwKQo+ICsJCWlvdW5tYXAoaGlkZXYtPmZiX21hcCk7Cj4gK30KPiArCj4g K3N0YXRpYyBpbnQgaGlibWNfaHdfaW5pdChzdHJ1Y3QgaGlibWNfZHJtX2RldmljZSAqaGlkZXYp Cj4gK3sKPiArCWludCByZXQ7Cj4gKwo+ICsJcmV0ID0gaGlibWNfaHdfbWFwKGhpZGV2KTsKPiAr CWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwloaWJtY19od19jb25maWcoaGlkZXYp Owo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGhpYm1jX3VubG9hZChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICt7Cj4gKwlzdHJ1Y3QgaGlibWNfZHJtX2RldmljZSAq aGlkZXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsKPiArCWhpYm1jX2h3X2ZpbmkoaGlkZXYpOwo+ ICsJZGV2LT5kZXZfcHJpdmF0ZSA9IE5VTEw7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3Rh dGljIGludCBoaWJtY19sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcg ZmxhZ3MpCj4gK3sKPiArCXN0cnVjdCBoaWJtY19kcm1fZGV2aWNlICpoaWRldjsKPiArCWludCBy ZXQ7Cj4gKwo+ICsJaGlkZXYgPSBkZXZtX2t6YWxsb2MoZGV2LT5kZXYsIHNpemVvZigqaGlkZXYp LCBHRlBfS0VSTkVMKTsKPiArCWlmICghaGlkZXYpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwlk ZXYtPmRldl9wcml2YXRlID0gaGlkZXY7Cj4gKwloaWRldi0+ZGV2ID0gZGV2Owo+ICsKPiArCXJl dCA9IGhpYm1jX2h3X2luaXQoaGlkZXYpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGVycjsKPiAr Cj4gKwo+ICsJcmV0ID0gZHJtX3ZibGFua19pbml0KGRldiwgZGV2LT5tb2RlX2NvbmZpZy5udW1f Y3J0Yyk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gaW5pdGlhbGl6 ZSB2YmxhbmsuXG4iKTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsJLyogcmVzZXQgYWxsIHRo ZSBzdGF0ZXMgb2YgY3J0Yy9wbGFuZS9lbmNvZGVyL2Nvbm5lY3RvciAqLwo+ICsJZHJtX21vZGVf Y29uZmlnX3Jlc2V0KGRldik7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gKwo+ICtlcnI6Cj4gKwloaWJt Y191bmxvYWQoZGV2KTsKPiArCURSTV9FUlJPUigiZmFpbGVkIHRvIGluaXRpYWxpemUgZHJtIGRy aXZlci5cbiIpOwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiArCj4gK3N0YXRpYyBpbnQgaGli bWNfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LAo+ICsJCQkgICBjb25zdCBzdHJ1Y3Qg cGNpX2RldmljZV9pZCAqZW50KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2Owo+ICsJ aW50IHJldDsKPiArCj4gKwlkZXYgPSBkcm1fZGV2X2FsbG9jKCZoaWJtY19kcml2ZXIsICZwZGV2 LT5kZXYpOwo+ICsJaWYgKCFkZXYpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsJZGV2LT5w ZGV2ID0gcGRldjsKPiArCXBjaV9zZXRfZHJ2ZGF0YShwZGV2LCBkZXYpOwo+ICsKPiArCXJldCA9 IHBjaV9lbmFibGVfZGV2aWNlKHBkZXYpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGVycl9mcmVl Owo+ICsKPiArCXJldCA9IGhpYm1jX2xvYWQoZGV2LCAwKTsKPiArCWlmIChyZXQpCj4gKwkJZ290 byBlcnJfZGlzYWJsZTsKPiArCj4gKwlyZXQgPSBkcm1fZGV2X3JlZ2lzdGVyKGRldiwgMCk7Cj4g KwlpZiAocmV0KQo+ICsJCWdvdG8gZXJyX3VubG9hZDsKPiArCj4gKwlyZXR1cm4gMDsKPiArCj4g K2Vycl91bmxvYWQ6Cj4gKwloaWJtY191bmxvYWQoZGV2KTsKPiArZXJyX2Rpc2FibGU6Cj4gKwlw Y2lfZGlzYWJsZV9kZXZpY2UocGRldik7Cj4gK2Vycl9mcmVlOgo+ICsJZHJtX2Rldl91bnJlZihk ZXYpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGhpYm1jX3Bj aV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7Cj4gKwo+ICsJZHJtX2Rldl91bnJlZ2lzdGVy KGRldik7Cj4gKwloaWJtY191bmxvYWQoZGV2KTsKPiArCWRybV9kZXZfdW5yZWYoZGV2KTsKPiAr fQo+ICsKPiArc3RhdGljIHN0cnVjdCBwY2lfZGV2aWNlX2lkIGhpYm1jX3BjaV90YWJsZVtdID0g ewo+ICsJezB4MTllNSwgMHgxNzExLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwK PiArCXswLH0KPiArfTsKPiArCj4gK3N0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBoaWJtY19wY2lf ZHJpdmVyID0gewo+ICsJLm5hbWUgPQkJImhpYm1jLWRybSIsCj4gKwkuaWRfdGFibGUgPQloaWJt Y19wY2lfdGFibGUsCj4gKwkucHJvYmUgPQloaWJtY19wY2lfcHJvYmUsCj4gKwkucmVtb3ZlID0J aGlibWNfcGNpX3JlbW92ZSwKPiArCS5kcml2ZXIucG0gPSAgICAmaGlibWNfcG1fb3BzLAo+ICt9 Owo+ICsKPiArc3RhdGljIGludCBfX2luaXQgaGlibWNfaW5pdCh2b2lkKQo+ICt7Cj4gKwlyZXR1 cm4gcGNpX3JlZ2lzdGVyX2RyaXZlcigmaGlibWNfcGNpX2RyaXZlcik7Cj4gK30KPiArCj4gK3N0 YXRpYyB2b2lkIF9fZXhpdCBoaWJtY19leGl0KHZvaWQpCj4gK3sKPiArCXJldHVybiBwY2lfdW5y ZWdpc3Rlcl9kcml2ZXIoJmhpYm1jX3BjaV9kcml2ZXIpOwo+ICt9Cj4gKwo+ICttb2R1bGVfaW5p dChoaWJtY19pbml0KTsKPiArbW9kdWxlX2V4aXQoaGlibWNfZXhpdCk7Cj4gKwo+ICtNT0RVTEVf REVWSUNFX1RBQkxFKHBjaSwgaGlibWNfcGNpX3RhYmxlKTsKPiArTU9EVUxFX0FVVEhPUigiUm9u Z3Jvbmdab3UgPHpvdXJvbmdyb25nQGh1YXdlaS5jb20+Iik7Cj4gK01PRFVMRV9ERVNDUklQVElP TigiRFJNIERyaXZlciBmb3IgSGlzaWxpY29uIEhpYm1jIik7Cj4gK01PRFVMRV9MSUNFTlNFKCJH UEwgdjIiKTsKPiArCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGli bWMvaGlibWNfZHJtX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJt Y19kcm1fZHJ2LmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLmEwNzJl YTkKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJt Yy9oaWJtY19kcm1fZHJ2LmgKPiBAQCAtMCwwICsxLDM5IEBACj4gKy8qIEhpc2lsaWNvbiBIaWJt YyBTb0MgZHJtIGRyaXZlcgo+ICsgKgo+ICsgKiBCYXNlZCBvbiB0aGUgYm9jaHMgZHJtIGRyaXZl ci4KPiArICoKPiArICogQ29weXJpZ2h0IChjKSAyMDE2IEh1YXdlaSBMaW1pdGVkLgo+ICsgKgo+ ICsgKiBBdXRob3I6Cj4gKyAqCVJvbmdyb25nIFpvdSA8em91cm9uZ3JvbmdAaHVhd2VpPgo+ICsg KglSb25ncm9uZyBab3UgPHpvdXJvbmdyb25nQGdtYWlsLmNvbT4KPiArICoJSmlhbmh1YSBMaSA8 bGlqaWFuaHVhQGh1YXdlaS5jb20+Cj4gKyAqCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gKyAqIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5Cj4gKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDIgb2YgdGhlIExpY2Vuc2UsIG9yCj4gKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCj4gKyAqCj4gKyAqLwo+ICsKPiArI2lmbmRlZiBISUJNQ19EUk1fRFJWX0gKPiArI2Rl ZmluZSBISUJNQ19EUk1fRFJWX0gKPiArCj4gKyNpbmNsdWRlIDxkcm0vZHJtUC5oPgo+ICsjaW5j bHVkZSA8ZHJtL2RybV9mYl9oZWxwZXIuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fZ2VtX2NtYV9o ZWxwZXIuaD4KPiArCj4gK3N0cnVjdCBoaWJtY19kcm1fZGV2aWNlIHsKPiArCS8qIGh3ICovCj4g Kwl2b2lkIF9faW9tZW0gICAqbW1pbzsKPiArCXZvaWQgX19pb21lbSAgICpmYl9tYXA7Cj4gKwl1 bnNpZ25lZCBsb25nICBmYl9iYXNlOwo+ICsJdW5zaWduZWQgbG9uZyAgZmJfc2l6ZTsKPiArCj4g KwkvKiBkcm0gKi8KPiArCXN0cnVjdCBkcm1fZGV2aWNlICAqZGV2Owo+ICsJYm9vbCBtb2RlX2Nv bmZpZ19pbml0aWFsaXplZDsKPiArfTsKPiArCj4gKwo+ICsjZW5kaWYKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fcG93ZXIuYyBiL2RyaXZl cnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX3Bvd2VyLmMKPiBuZXcgZmlsZSBt b2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjY3M2JlMTAKPiAtLS0gL2Rldi9udWxsCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fcG93ZXIuYwo+IEBA IC0wLDAgKzEsOTEgQEAKPiArLyogSGlzaWxpY29uIEhpYm1jIFNvQyBkcm0gZHJpdmVyCj4gKyAq Cj4gKyAqIEJhc2VkIG9uIHRoZSBib2NocyBkcm0gZHJpdmVyLgo+ICsgKgo+ICsgKiBDb3B5cmln aHQgKGMpIDIwMTYgSHVhd2VpIExpbWl0ZWQuCj4gKyAqCj4gKyAqIEF1dGhvcjoKPiArICoJUm9u Z3JvbmcgWm91IDx6b3Vyb25ncm9uZ0BodWF3ZWk+Cj4gKyAqCVJvbmdyb25nIFpvdSA8em91cm9u Z3JvbmdAZ21haWwuY29tPgo+ICsgKglKaWFuaHVhIExpIDxsaWppYW5odWFAaHVhd2VpLmNvbT4K PiArICoKPiArICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKPiArICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKPiArICogdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IK PiArICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArICoKPiArICovCj4g Kwo+ICsjaW5jbHVkZSA8bGludXgvaW8uaD4KPiArI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4gKyNp bmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgo+ICsjaW5jbHVkZSAiaGlibWNfZHJtX2Rydi5o Igo+ICsjaW5jbHVkZSAiaGlibWNfZHJtX3JlZ3MuaCIKPiArCj4gKy8qCj4gKyAqIEl0IGNhbiBv cGVyYXRlIGluIG9uZSBvZiB0aHJlZSBtb2RlczogMCwgMSBvciBTbGVlcC4KPiArICovCj4gK3Zv aWQgaGlibWNfc2V0X3Bvd2VyX21vZGUoc3RydWN0IGhpYm1jX2RybV9kZXZpY2UgKmhpZGV2LAo+ ICsJCQkJIHVuc2lnbmVkIGludCBwb3dlcl9tb2RlKQo+ICt7Cj4gKwl1bnNpZ25lZCBpbnQgY29u dHJvbF92YWx1ZSA9IDA7Cj4gKwl2b2lkIF9faW9tZW0gICAqbW1pbyA9IGhpZGV2LT5tbWlvOwo+ ICsKPiArCWlmIChwb3dlcl9tb2RlID4gSElCTUNfUFdfTU9ERV9DVExfTU9ERV9TTEVFUCkKPiAr CQlyZXR1cm47Cj4gKwo+ICsJY29udHJvbF92YWx1ZSA9IHJlYWRsKG1taW8gKyBISUJNQ19QT1dF Ul9NT0RFX0NUUkwpOwo+ICsJY29udHJvbF92YWx1ZSAmPSB+SElCTUNfUFdfTU9ERV9DVExfTU9E RV9NQVNLOwo+ICsKPiArCWNvbnRyb2xfdmFsdWUgfD0gSElCTUNfUFdfTU9ERV9DVExfTU9ERShw b3dlcl9tb2RlKSAmCj4gKwkJCSBISUJNQ19QV19NT0RFX0NUTF9NT0RFX01BU0s7Cj4gKwo+ICsK PiArICAgIC8qIFNldCB1cCBvdGhlciBmaWVsZHMgaW4gUG93ZXIgQ29udHJvbCBSZWdpc3RlciAq Lwo+ICsJaWYgKHBvd2VyX21vZGUgPT0gSElCTUNfUFdfTU9ERV9DVExfTU9ERV9TTEVFUCkgewo+ ICsJCWNvbnRyb2xfdmFsdWUgJj0gfkhJQk1DX1BXX01PREVfQ1RMX09TQ19JTlBVVF9NQVNLOwo+ ICsJCWNvbnRyb2xfdmFsdWUgfD0gSElCTUNfUFdfTU9ERV9DVExfT1NDX0lOUFVUKDApICYKPiAr CQkJCSBISUJNQ19QV19NT0RFX0NUTF9PU0NfSU5QVVRfTUFTSzsKPiArCX0gZWxzZSB7Cj4gKwkJ Y29udHJvbF92YWx1ZSAmPSB+SElCTUNfUFdfTU9ERV9DVExfT1NDX0lOUFVUX01BU0s7Cj4gKwkJ Y29udHJvbF92YWx1ZSB8PSBISUJNQ19QV19NT0RFX0NUTF9PU0NfSU5QVVQoMSkgJgo+ICsJCQkJ IEhJQk1DX1BXX01PREVfQ1RMX09TQ19JTlBVVF9NQVNLOwo+ICsKPiArCX0KPiArICAgIC8qIFBy b2dyYW0gbmV3IHBvd2VyIG1vZGUuICovCj4gKwl3cml0ZWwoY29udHJvbF92YWx1ZSwgbW1pbyAr IEhJQk1DX1BPV0VSX01PREVfQ1RSTCk7Cj4gK30KPiArCj4gK3N0YXRpYyB1bnNpZ25lZCBpbnQg aGlibWNfZ2V0X3Bvd2VyX21vZGUoc3RydWN0IGhpYm1jX2RybV9kZXZpY2UgKmhpZGV2KQo+ICt7 Cj4gKwl2b2lkIF9faW9tZW0gICAqbW1pbyA9IGhpZGV2LT5tbWlvOwo+ICsKPiArCXJldHVybiAo cmVhZGwobW1pbyArIEhJQk1DX1BPV0VSX01PREVfQ1RSTCkmCj4gKwkJSElCTUNfUFdfTU9ERV9D VExfTU9ERV9NQVNLKSA+PiBISUJNQ19QV19NT0RFX0NUTF9NT0RFX1NISUZUOwo+ICt9Cj4gKwo+ ICt2b2lkIGhpYm1jX3NldF9jdXJyZW50X2dhdGUoc3RydWN0IGhpYm1jX2RybV9kZXZpY2UgKmhp ZGV2LCB1bnNpZ25lZCBpbnQgZ2F0ZSkKPiArewo+ICsJdW5zaWduZWQgaW50IGdhdGVfcmVnOwo+ ICsJdW5zaWduZWQgaW50IG1vZGU7Cj4gKwl2b2lkIF9faW9tZW0gICAqbW1pbyA9IGhpZGV2LT5t bWlvOwo+ICsKPiArCS8qIEdldCBjdXJyZW50IHBvd2VyIG1vZGUuICovCj4gKwltb2RlID0gaGli bWNfZ2V0X3Bvd2VyX21vZGUoaGlkZXYpOwo+ICsKPiArCXN3aXRjaCAobW9kZSkgewo+ICsJY2Fz ZSBISUJNQ19QV19NT0RFX0NUTF9NT0RFX01PREUwOgo+ICsJCWdhdGVfcmVnID0gSElCTUNfTU9E RTBfR0FURTsKPiArCQlicmVhazsKPiArCj4gKwljYXNlIEhJQk1DX1BXX01PREVfQ1RMX01PREVf TU9ERTE6Cj4gKwkJZ2F0ZV9yZWcgPSBISUJNQ19NT0RFMV9HQVRFOwo+ICsJCWJyZWFrOwo+ICsK PiArCWRlZmF1bHQ6Cj4gKwkJZ2F0ZV9yZWcgPSBISUJNQ19NT0RFMF9HQVRFOwo+ICsJCWJyZWFr Owo+ICsJfQo+ICsJd3JpdGVsKGdhdGUsIG1taW8gKyBnYXRlX3JlZyk7Cj4gK30KPiArCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX3Bvd2Vy LmggYi9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9wb3dlci5oCj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi4zOWY3YTE3Cj4gLS0tIC9kZXYv bnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNfZHJtX3Bv d2VyLmgKPiBAQCAtMCwwICsxLDI4IEBACj4gKy8qIEhpc2lsaWNvbiBIaWJtYyBTb0MgZHJtIGRy aXZlcgo+ICsgKgo+ICsgKiBCYXNlZCBvbiB0aGUgYm9jaHMgZHJtIGRyaXZlci4KPiArICoKPiAr ICogQ29weXJpZ2h0IChjKSAyMDE2IEh1YXdlaSBMaW1pdGVkLgo+ICsgKgo+ICsgKiBBdXRob3I6 Cj4gKyAqCVJvbmdyb25nIFpvdSA8em91cm9uZ3JvbmdAaHVhd2VpPgo+ICsgKglSb25ncm9uZyBa b3UgPHpvdXJvbmdyb25nQGdtYWlsLmNvbT4KPiArICoJSmlhbmh1YSBMaSA8bGlqaWFuaHVhQGh1 YXdlaS5jb20+Cj4gKyAqCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cj4gKyAq IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExp Y2Vuc2UsIG9yCj4gKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4gKyAq Cj4gKyAqLwo+ICsKPiArI2lmbmRlZiBISUJNQ19EUk1fUE9XRVJfSAo+ICsjZGVmaW5lIEhJQk1D X0RSTV9QT1dFUl9ICj4gKwo+ICsjaW5jbHVkZSAiaGlibWNfZHJtX2Rydi5oIgo+ICsKPiArZXh0 ZXJuIHZvaWQgaGlibWNfc2V0X3Bvd2VyX21vZGUoc3RydWN0IGhpYm1jX2RybV9kZXZpY2UgKmhp ZGV2LAo+ICsJCQkJIHVuc2lnbmVkIGludCBwb3dlcl9tb2RlKTsKPiArZXh0ZXJuIHZvaWQgaGli bWNfc2V0X2N1cnJlbnRfZ2F0ZShzdHJ1Y3QgaGlibWNfZHJtX2RldmljZSAqaGlkZXYsCj4gKwkJ CQkgICB1bnNpZ25lZCBpbnQgZ2F0ZSk7Cj4gKyNlbmRpZgo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9yZWdzLmggYi9kcml2ZXJzL2dwdS9k cm0vaGlzaWxpY29uL2hpYm1jL2hpYm1jX2RybV9yZWdzLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NAo+IGluZGV4IDAwMDAwMDAuLjQ5NjZjNDIKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJtY19kcm1fcmVncy5oCj4gQEAgLTAsMCArMSwy MTQgQEAKPiArLyogSGlzaWxpY29uIEhpYm1jIFNvQyBkcm0gZHJpdmVyCj4gKyAqCj4gKyAqIEJh c2VkIG9uIHRoZSBib2NocyBkcm0gZHJpdmVyLgo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgKGMpIDIw MTYgSHVhd2VpIExpbWl0ZWQuCj4gKyAqCj4gKyAqIEF1dGhvcjoKPiArICoJUm9uZ3JvbmcgWm91 IDx6b3Vyb25ncm9uZ0BodWF3ZWk+Cj4gKyAqCVJvbmdyb25nIFpvdSA8em91cm9uZ3JvbmdAZ21h aWwuY29tPgo+ICsgKglKaWFuaHVhIExpIDxsaWppYW5odWFAaHVhd2VpLmNvbT4KPiArICoKPiAr ICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKPiArICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKPiArICogdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKPiArICogKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiArICoKPiArICovCj4gKwo+ICsjaWZu ZGVmIEhJQk1DX0RSTV9IV19ICj4gKyNkZWZpbmUgSElCTUNfRFJNX0hXX0gKPiArCj4gKyNkZWZp bmUgT0ZGIDAKPiArI2RlZmluZSBPTiAgMQo+ICsjZGVmaW5lIERJU0FCTEUgICAgICAgICAgICAg ICAwCj4gKyNkZWZpbmUgRU5BQkxFICAgICAgICAgICAgICAgIDEKPiArCj4gKwo+ICsKPiArLyog cmVnaXN0ZXIgZGVmaW5pdGlvbiAqLwo+ICsjZGVmaW5lIEhJQk1DX01JU0NfQ1RSTAkJCQkweDQK PiArCj4gKyNkZWZpbmUgSElCTUNfTVNDQ1RMX0xPQ0FMTUVNX1JFU0VUKHgpCQkoKHgpIDw8IDYp Cj4gKyNkZWZpbmUgSElCTUNfTVNDQ1RMX0xPQ0FMTUVNX1JFU0VUX01BU0sJMHg0MAo+ICsKPiAr I2RlZmluZSBSRVNFVCAgICAgICAgICAgICAgICAwCj4gKyNkZWZpbmUgTk9STUFMICAgICAgICAg ICAgICAgMQo+ICsKPiArI2RlZmluZSBISUJNQ19DVVJSRU5UX0dBVEUJCQkweDAwMDA0MAo+ICsj ZGVmaW5lIEhJQk1DX0NVUlJfR0FURV9ESVNQTEFZKHgpCQkoKHgpIDw8IDIpCj4gKyNkZWZpbmUg SElCTUNfQ1VSUl9HQVRFX0RJU1BMQVlfTUFTSwkJMHg0Cj4gKwo+ICsjZGVmaW5lIEhJQk1DX0NV UlJfR0FURV9MT0NBTE1FTSh4KQkJKCh4KSA8PCAxKQo+ICsjZGVmaW5lIEhJQk1DX0NVUlJfR0FU RV9MT0NBTE1FTV9NQVNLCQkweDIKPiArCj4gKyNkZWZpbmUgSElCTUNfTU9ERTBfR0FURQkJCTB4 MDAwMDQ0Cj4gKyNkZWZpbmUgSElCTUNfTU9ERTFfR0FURQkJCTB4MDAwMDQ4Cj4gKyNkZWZpbmUg SElCTUNfUE9XRVJfTU9ERV9DVFJMCQkJMHgwMDAwNEMKPiArCj4gKyNkZWZpbmUgSElCTUNfUFdf TU9ERV9DVExfT1NDX0lOUFVUKHgpCQkoKHgpIDw8IDMpCj4gKyNkZWZpbmUgSElCTUNfUFdfTU9E RV9DVExfT1NDX0lOUFVUX01BU0sJMHg4Cj4gKwo+ICsjZGVmaW5lIEhJQk1DX1BXX01PREVfQ1RM X01PREUoeCkJCSgoeCkgPDwgMCkKPiArI2RlZmluZSBISUJNQ19QV19NT0RFX0NUTF9NT0RFX01B U0sJCTB4MDMKPiArI2RlZmluZSBISUJNQ19QV19NT0RFX0NUTF9NT0RFX1NISUZUCQkwCj4gKwo+ ICsKPiArI2RlZmluZSBISUJNQ19QV19NT0RFX0NUTF9NT0RFX01PREUwCQkwCj4gKyNkZWZpbmUg SElCTUNfUFdfTU9ERV9DVExfTU9ERV9NT0RFMQkJMQo+ICsjZGVmaW5lIEhJQk1DX1BXX01PREVf Q1RMX01PREVfU0xFRVAJCTIKPiArCj4gKyNkZWZpbmUgSElCTUNfUEFORUxfUExMX0NUUkwJCQkw eDAwMDA1Qwo+ICsjZGVmaW5lIEhJQk1DX0NSVF9QTExfQ1RSTAkJCTB4MDAwMDYwCj4gKwo+ICsj ZGVmaW5lIEhJQk1DX1BMTF9DVFJMX0JZUEFTUyh4KQkJKCh4KSA8PCAxOCkKPiArI2RlZmluZSBI SUJNQ19QTExfQ1RSTF9CWVBBU1NfTUFTSwkJMHg0MDAwMAo+ICsKPiArI2RlZmluZSBISUJNQ19Q TExfQ1RSTF9QT1dFUih4KQkJCSgoeCkgPDwgMTcpCj4gKyNkZWZpbmUgSElCTUNfUExMX0NUUkxf UE9XRVJfTUFTSwkJMHgyMDAwMAo+ICsKPiArI2RlZmluZSBISUJNQ19QTExfQ1RSTF9JTlBVVCh4 KQkJCSgoeCkgPDwgMTYpCj4gKyNkZWZpbmUgSElCTUNfUExMX0NUUkxfSU5QVVRfTUFTSwkJMHgx MDAwMAo+ICsKPiArI2RlZmluZSBPU0MJCQkJCTAKPiArI2RlZmluZSBURVNUQ0xLCQkJCQkxCj4g Kwo+ICsjZGVmaW5lIEhJQk1DX1BMTF9DVFJMX1BPRCh4KQkJCSgoeCkgPDwgMTQpCj4gKyNkZWZp bmUgSElCTUNfUExMX0NUUkxfUE9EX01BU0sJCQkweEMwMDAKPiArCj4gKyNkZWZpbmUgSElCTUNf UExMX0NUUkxfT0QoeCkJCQkoKHgpIDw8IDEyKQo+ICsjZGVmaW5lIEhJQk1DX1BMTF9DVFJMX09E X01BU0sJCQkweDMwMDAKPiArCj4gKyNkZWZpbmUgSElCTUNfUExMX0NUUkxfTih4KQkJCSgoeCkg PDwgOCkKPiArI2RlZmluZSBISUJNQ19QTExfQ1RSTF9OX01BU0sJCQkweEYwMAo+ICsKPiArI2Rl ZmluZSBISUJNQ19QTExfQ1RSTF9NKHgpCQkJKCh4KSA8PCAwKQo+ICsjZGVmaW5lIEhJQk1DX1BM TF9DVFJMX01fTUFTSwkJCTB4RkYKPiArCj4gKwo+ICsjZGVmaW5lIEhJQk1DX0NSVF9ESVNQX0NU TAkJCTB4ODAyMDAKPiArCj4gKyNkZWZpbmUgSElCTUNfQ1JUX0RJU1BfQ1RMX0NSVFNFTEVDVCh4 KQkJKCh4KSA8PCAyNSkKPiArI2RlZmluZSBISUJNQ19DUlRfRElTUF9DVExfQ1JUU0VMRUNUX01B U0sJMHgyMDAwMDAwCj4gKwo+ICsjZGVmaW5lIENSVFNFTEVDVF9WR0EgICAgICAgICAgICAgICAg MAo+ICsjZGVmaW5lIENSVFNFTEVDVF9DUlQgICAgICAgICAgICAgICAgMQo+ICsKPiArI2RlZmlu ZSBISUJNQ19DUlRfRElTUF9DVExfQ0xPQ0tfUEhBU0UoeCkJKCh4KSA8PCAxNCkKPiArI2RlZmlu ZSBISUJNQ19DUlRfRElTUF9DVExfQ0xPQ0tfUEhBU0VfTUFTSwkweDQwMDAKPiArCj4gKyNkZWZp bmUgUEhBU0VfQUNUSVZFX0hJR0ggICAgICAwCj4gKyNkZWZpbmUgUEhBU0VfQUNUSVZFX0xPVyAg ICAgICAxCj4gKwo+ICsjZGVmaW5lIEhJQk1DX0NSVF9ESVNQX0NUTF9WU1lOQ19QSEFTRSh4KQko KHgpIDw8IDEzKQo+ICsjZGVmaW5lIEhJQk1DX0NSVF9ESVNQX0NUTF9WU1lOQ19QSEFTRV9NQVNL CTB4MjAwMAo+ICsKPiArI2RlZmluZSBISUJNQ19DUlRfRElTUF9DVExfSFNZTkNfUEhBU0UoeCkJ KCh4KSA8PCAxMikKPiArI2RlZmluZSBISUJNQ19DUlRfRElTUF9DVExfSFNZTkNfUEhBU0VfTUFT SwkweDEwMDAKPiArCj4gKyNkZWZpbmUgSElCTUNfQ1JUX0RJU1BfQ1RMX1RJTUlORyh4KQkJKCh4 KSA8PCA4KQo+ICsjZGVmaW5lIEhJQk1DX0NSVF9ESVNQX0NUTF9USU1JTkdfTUFTSwkJMHgxMDAK PiArCj4gKwo+ICsjZGVmaW5lIEhJQk1DX0NSVF9ESVNQX0NUTF9QTEFORSh4KQkJKCh4KSA8PCAy KQo+ICsjZGVmaW5lIEhJQk1DX0NSVF9ESVNQX0NUTF9QTEFORV9NQVNLCQk0Cj4gKwo+ICsjZGVm aW5lIEhJQk1DX0NSVF9ESVNQX0NUTF9GT1JNQVQoeCkJCSgoeCkgPDwgMCkKPiArI2RlZmluZSBI SUJNQ19DUlRfRElTUF9DVExfRk9STUFUX01BU0sJCTB4MDMKPiArCj4gKwo+ICsKPiArI2RlZmlu ZSBISUJNQ19DUlRfRkJfQUREUkVTUwkJCTB4MDgwMjA0Cj4gKwo+ICsjZGVmaW5lIEhJQk1DX0NS VF9GQl9XSURUSAkJCTB4MDgwMjA4Cj4gKyNkZWZpbmUgSElCTUNfQ1JUX0ZCX1dJRFRIX1dJRFRI KHgpCQkoKHgpIDw8IDE2KQo+ICsjZGVmaW5lIEhJQk1DX0NSVF9GQl9XSURUSF9XSURUSF9NQVNL CQkweDNGRkYwMDAwCj4gKyNkZWZpbmUgSElCTUNfQ1JUX0ZCX1dJRFRIX09GRlMoeCkJCSgoeCkg PDwgMCkKPiArI2RlZmluZSBISUJNQ19DUlRfRkJfV0lEVEhfT0ZGU19NQVNLCQkweDNGRkYKPiAr Cj4gKwo+ICsjZGVmaW5lIEhJQk1DX0NSVF9IT1JaX1RPVEFMCQkJMHgwODAyMEMKPiArI2RlZmlu ZSBISUJNQ19DUlRfSE9SWl9UT1RBTF9UT1RBTCh4KQkJKCh4KSA8PCAxNikKPiArI2RlZmluZSBI SUJNQ19DUlRfSE9SWl9UT1RBTF9UT1RBTF9NQVNLCQkweEZGRjAwMDAKPiArCj4gKwo+ICsjZGVm aW5lIEhJQk1DX0NSVF9IT1JaX1RPVEFMX0RJU1BMQVlfRU5EKHgpCSgoeCkgPDwgMCkKPiArI2Rl ZmluZSBISUJNQ19DUlRfSE9SWl9UT1RBTF9ESVNQTEFZX0VORF9NQVNLCTB4RkZGCj4gKwo+ICsj ZGVmaW5lIEhJQk1DX0NSVF9IT1JaX1NZTkMJCQkweDA4MDIxMAo+ICsjZGVmaW5lIEhJQk1DX0NS VF9IT1JaX1NZTkNfV0lEVEgoeCkJCSgoeCkgPDwgMTYpCj4gKyNkZWZpbmUgSElCTUNfQ1JUX0hP UlpfU1lOQ19XSURUSF9NQVNLCQkweEZGMDAwMAo+ICsKPiArI2RlZmluZSBISUJNQ19DUlRfSE9S Wl9TWU5DX1NUQVJUKHgpCQkoKHgpIDw8IDApCj4gKyNkZWZpbmUgSElCTUNfQ1JUX0hPUlpfU1lO Q19TVEFSVF9NQVNLCQkweEZGRgo+ICsKPiArI2RlZmluZSBISUJNQ19DUlRfVkVSVF9UT1RBTAkJ CTB4MDgwMjE0Cj4gKyNkZWZpbmUgSElCTUNfQ1JUX1ZFUlRfVE9UQUxfVE9UQUwoeCkJCSgoeCkg PDwgMTYpCj4gKyNkZWZpbmUgSElCTUNfQ1JUX1ZFUlRfVE9UQUxfVE9UQUxfTUFTSwkJMHg3RkZG MDAwMAo+ICsKPiArI2RlZmluZSBISUJNQ19DUlRfVkVSVF9UT1RBTF9ESVNQTEFZX0VORCh4KQko KHgpIDw8IDApCj4gKyNkZWZpbmUgSElCTUNfQ1JUX1ZFUlRfVE9UQUxfRElTUExBWV9FTkRfTUFT SwkweDdGRgo+ICsKPiArI2RlZmluZSBISUJNQ19DUlRfVkVSVF9TWU5DCQkJMHgwODAyMTgKPiAr I2RlZmluZSBISUJNQ19DUlRfVkVSVF9TWU5DX0hFSUdIVCh4KQkJKCh4KSA8PCAxNikKPiArI2Rl ZmluZSBISUJNQ19DUlRfVkVSVF9TWU5DX0hFSUdIVF9NQVNLCQkweDNGMDAwMAo+ICsKPiArCj4g KyNkZWZpbmUgSElCTUNfQ1JUX1ZFUlRfU1lOQ19TVEFSVCh4KQkJKCh4KSA8PCAwKQo+ICsjZGVm aW5lIEhJQk1DX0NSVF9WRVJUX1NZTkNfU1RBUlRfTUFTSwkJMHg3RkYKPiArCj4gKy8qIEF1dG8g Q2VudGVyaW5nICovCj4gKyNkZWZpbmUgSElCTUNfQ1JUX0FVVE9fQ0VOVEVSSU5HX1RMCQkweDA4 MDI4MAo+ICsjZGVmaW5lIEhJQk1DX0NSVF9BVVRPX0NFTlRFUklOR19UTF9UT1AoeCkJKCh4KSA8 PCAxNikKPiArI2RlZmluZSBISUJNQ19DUlRfQVVUT19DRU5URVJJTkdfVExfVE9QX01TSwkweDdG RjAwMDAKPiArCj4gKyNkZWZpbmUgSElCTUNfQ1JUX0FVVE9fQ0VOVEVSSU5HX1RMX0xFRlQoeCkJ KCh4KSA8PCAwKQo+ICsjZGVmaW5lIEhJQk1DX0NSVF9BVVRPX0NFTlRFUklOR19UTF9MRUZUX01T SwkweDdGRgo+ICsKPiArI2RlZmluZSBISUJNQ19DUlRfQVVUT19DRU5URVJJTkdfQlIJCTB4MDgw Mjg0Cj4gKyNkZWZpbmUgSElCTUNfQ1JUX0FVVE9fQ0VOVEVSSU5HX0JSX0JPVFRPTSh4KQkoKHgp IDw8IDE2KQo+ICsjZGVmaW5lIEhJQk1DX0NSVF9BVVRPX0NFTlRFUklOR19CUl9CT1RUT01fTUFT SwkweDdGRjAwMDAKPiArCj4gKyNkZWZpbmUgSElCTUNfQ1JUX0FVVE9fQ0VOVEVSSU5HX0JSX1JJ R0hUKHgpCSgoeCkgPDwgMCkKPiArI2RlZmluZSBISUJNQ19DUlRfQVVUT19DRU5URVJJTkdfQlJf UklHSFRfTUFTSwkweDdGRgo+ICsKPiArLyogcmVnaXN0ZXIgdG8gY29udHJvbCBwYW5lbCBvdXRw dXQgKi8KPiArI2RlZmluZSBESVNQTEFZX0NPTlRST0xfSElTSUxFCQkJMHg4MDI4OAo+ICsKPiAr LyogcmVnaXN0ZXIgYW5kIHZhbHVlcyBmb3IgUExMIGNvbnRyb2wgKi8KPiArI2RlZmluZSBDUlRf UExMMV9IUwkJCQkweDgwMmE4Cj4gKyNkZWZpbmUgQ1JUX1BMTDFfSFNfMjVNSFoJCQkweDIzZDQw ZjAyCj4gKyNkZWZpbmUgQ1JUX1BMTDFfSFNfNDBNSFoJCQkweDIzOTQwODAxCj4gKyNkZWZpbmUg Q1JUX1BMTDFfSFNfNjVNSFoJCQkweDIzOTQwZDAxCj4gKyNkZWZpbmUgQ1JUX1BMTDFfSFNfNzhN SFoJCQkweDIzNTQwRjgyCj4gKyNkZWZpbmUgQ1JUX1BMTDFfSFNfNzRNSFoJCQkweDIzOTQxZGMy Cj4gKyNkZWZpbmUgQ1JUX1BMTDFfSFNfODBNSFoJCQkweDIzOTQxMDAxCj4gKyNkZWZpbmUgQ1JU X1BMTDFfSFNfODBNSFpfMTE1MgkJCTB4MjM1NDBmYzIKPiArI2RlZmluZSBDUlRfUExMMV9IU18x MDhNSFoJCQkweDIzYjQxYjAxCj4gKyNkZWZpbmUgQ1JUX1BMTDFfSFNfMTYyTUhaCQkJMHgyMzQ4 MDY4MQo+ICsjZGVmaW5lIENSVF9QTEwxX0hTXzE0OE1IWgkJCTB4MjM1NDFkYzIKPiArI2RlZmlu ZSBDUlRfUExMMV9IU18xOTNNSFoJCQkweDIzNDgwN2MxCj4gKwo+ICsjZGVmaW5lIENSVF9QTEwy X0hTCQkJCTB4ODAyYWMKPiArI2RlZmluZSBDUlRfUExMMl9IU18yNU1IWgkJCTB4MjA2Qjg1MUUK PiArI2RlZmluZSBDUlRfUExMMl9IU180ME1IWgkJCTB4MzAwMDAwMDAKPiArI2RlZmluZSBDUlRf UExMMl9IU182NU1IWgkJCTB4NDAwMDAwMDAKPiArI2RlZmluZSBDUlRfUExMMl9IU183OE1IWgkJ CTB4NTBFMTQ3QUUKPiArI2RlZmluZSBDUlRfUExMMl9IU183NE1IWgkJCTB4NjAyQjZBRTcKPiAr I2RlZmluZSBDUlRfUExMMl9IU184ME1IWgkJCTB4NzAwMDAwMDAKPiArI2RlZmluZSBDUlRfUExM Ml9IU18xMDhNSFoJCQkweDgwMDAwMDAwCj4gKyNkZWZpbmUgQ1JUX1BMTDJfSFNfMTYyTUhaCQkJ MHhBMDAwMDAwMAo+ICsjZGVmaW5lIENSVF9QTEwyX0hTXzE0OE1IWgkJCTB4QjBDQ0NDQ0QKPiAr I2RlZmluZSBDUlRfUExMMl9IU18xOTNNSFoJCQkweEMwODcyQjAyCj4gKwo+ICsvKiBHbG9iYWwg bWFjcm9zICovCj4gKyNkZWZpbmUgUkdCKHIsIGcsIGIpIFwKPiArKCBcCj4gKwkodW5zaWduZWQg bG9uZykoKChyKSA8PCAxNikgfCAoKGcpIDw8IDgpIHwgKGIpKSBcCj4gKykKPiArCj4gKyNkZWZp bmUgUEFERElORyhhbGlnbiwgZGF0YSkgKCgoZGF0YSkgKyAoYWxpZ24pIC0gMSkgJiAofigoYWxp Z24pIC0gMSkpKQo+ICsKPiArI2RlZmluZSBNQih4KSAoKHgpIDw8IDIwKQo+ICsKPiArI2VuZGlm Cj4gLS0gCj4gMS45LjEKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiBkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRl bCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK