From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from smtp3-g21.free.fr ([212.27.42.3]) by bombadil.infradead.org with esmtp (Exim 4.69 #1 (Red Hat Linux)) id 1OGV2k-0001mr-PA for barebox@lists.infradead.org; Mon, 24 May 2010 10:38:02 +0000 From: =?utf-8?q?Eric=20B=C3=A9nard?= Date: Mon, 24 May 2010 12:37:51 +0200 Message-Id: <1274697472-8669-1-git-send-email-eric@eukrea.com> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: barebox-bounces@lists.infradead.org Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: [PATCH 1/2] Add support for Eukrea's CPUIMX25 To: s.hauer@pengutronix.de Cc: barebox@lists.infradead.org RnJvbTogRXJpYyBCZW5hcmQgPGVyaWNAZXVrcmVhLmNvbT4KClRoaXMgYm9hcmRzIGludGVncmF0 ZXMgNjRtQiBvZiBERFIsIGEgMjU2TUIgTkFORCBmbGFzaCwgYSBSTUlJIEV0aGVybmV0IFBIWQph bmQgYSBpLk1YMjU3IENQVS4KClNpZ25lZC1vZmYtYnk6IEVyaWMgQsOpbmFyZCA8ZXJpY0BldWty ZWEuY29tPgotLS0KIGFyY2gvYXJtL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAxICsKIGFyY2gvYXJtL2NvbmZpZ3MvZXVrcmVhX2NwdWlteDI1X2RlZmNvbmZpZyAgfCAg MjQ3ICsrKysrKysrKysrKysrKysrKysrKysrKwogYXJjaC9hcm0vbWFjaC1pbXgvS2NvbmZpZyAg ICAgICAgICAgICAgICAgICB8ICAgMTAgKwogYm9hcmQvZXVrcmVhX2NwdWlteDI1L01ha2VmaWxl ICAgICAgICAgICAgICB8ICAgMjQgKysrCiBib2FyZC9ldWtyZWFfY3B1aW14MjUvY29uZmlnLmgg ICAgICAgICAgICAgIHwgICAyNyArKysKIGJvYXJkL2V1a3JlYV9jcHVpbXgyNS9lbnYvYmluL191 cGRhdGUgICAgICAgfCAgIDM2ICsrKysKIGJvYXJkL2V1a3JlYV9jcHVpbXgyNS9lbnYvYmluL2Jv b3QgICAgICAgICAgfCAgIDUzICsrKysrCiBib2FyZC9ldWtyZWFfY3B1aW14MjUvZW52L2Jpbi9o dXNoX2hhY2sgICAgIHwgICAgMSArCiBib2FyZC9ldWtyZWFfY3B1aW14MjUvZW52L2Jpbi9pbml0 ICAgICAgICAgIHwgICAzOCArKysrCiBib2FyZC9ldWtyZWFfY3B1aW14MjUvZW52L2Jpbi91cGRh dGVfa2VybmVsIHwgICAgOCArCiBib2FyZC9ldWtyZWFfY3B1aW14MjUvZW52L2Jpbi91cGRhdGVf cm9vdCAgIHwgICAgOCArCiBib2FyZC9ldWtyZWFfY3B1aW14MjUvZW52L2NvbmZpZyAgICAgICAg ICAgIHwgICAyNiArKysKIGJvYXJkL2V1a3JlYV9jcHVpbXgyNS9ldWtyZWFfY3B1aW14MjUuYyAg ICAgfCAgMjc1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogYm9hcmQvZXVrcmVhX2NwdWlt eDI1L2xvd2xldmVsLmMgICAgICAgICAgICB8ICAxMzAgKysrKysrKysrKysrKwogMTQgZmlsZXMg Y2hhbmdlZCwgODg0IGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgYXJjaC9hcm0vY29uZmlncy9ldWtyZWFfY3B1aW14MjVfZGVmY29uZmlnCiBjcmVhdGUg bW9kZSAxMDA2NDQgYm9hcmQvZXVrcmVhX2NwdWlteDI1L01ha2VmaWxlCiBjcmVhdGUgbW9kZSAx MDA2NDQgYm9hcmQvZXVrcmVhX2NwdWlteDI1L2NvbmZpZy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQg Ym9hcmQvZXVrcmVhX2NwdWlteDI1L2Vudi9iaW4vX3VwZGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0 IGJvYXJkL2V1a3JlYV9jcHVpbXgyNS9lbnYvYmluL2Jvb3QKIGNyZWF0ZSBtb2RlIDEwMDY0NCBi b2FyZC9ldWtyZWFfY3B1aW14MjUvZW52L2Jpbi9odXNoX2hhY2sKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBib2FyZC9ldWtyZWFfY3B1aW14MjUvZW52L2Jpbi9pbml0CiBjcmVhdGUgbW9kZSAxMDA2NDQg Ym9hcmQvZXVrcmVhX2NwdWlteDI1L2Vudi9iaW4vdXBkYXRlX2tlcm5lbAogY3JlYXRlIG1vZGUg MTAwNjQ0IGJvYXJkL2V1a3JlYV9jcHVpbXgyNS9lbnYvYmluL3VwZGF0ZV9yb290CiBjcmVhdGUg bW9kZSAxMDA2NDQgYm9hcmQvZXVrcmVhX2NwdWlteDI1L2Vudi9jb25maWcKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBib2FyZC9ldWtyZWFfY3B1aW14MjUvZXVrcmVhX2NwdWlteDI1LmMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBib2FyZC9ldWtyZWFfY3B1aW14MjUvbG93bGV2ZWwuYwoKZGlmZiAtLWdpdCBh L2FyY2gvYXJtL01ha2VmaWxlIGIvYXJjaC9hcm0vTWFrZWZpbGUKaW5kZXggYjE5OTFjMy4uMGJk Y2UyMSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vTWFrZWZp bGUKQEAgLTYxLDYgKzYxLDcgQEAgYm9hcmQtJChDT05GSUdfTUFDSF9FREI5MzA3QSkJCQk6PSBl ZGI5M3h4CiBib2FyZC0kKENPTkZJR19NQUNIX0VEQjkzMDEyKQkJCTo9IGVkYjkzeHgKIGJvYXJk LSQoQ09ORklHX01BQ0hfRURCOTMxNSkJCQk6PSBlZGI5M3h4CiBib2FyZC0kKENPTkZJR19NQUNI X0VEQjkzMTVBKQkJCTo9IGVkYjkzeHgKK2JvYXJkLSQoQ09ORklHX01BQ0hfRVVLUkVBX0NQVUlN WDI1KQkJOj0gZXVrcmVhX2NwdWlteDI1CiBib2FyZC0kKENPTkZJR19NQUNIX0VVS1JFQV9DUFVJ TVgyNykJCTo9IGV1a3JlYV9jcHVpbXgyNwogYm9hcmQtJChDT05GSUdfTUFDSF9GUkVFU0NBTEVf TVgyNV8zU1RBQ0spCTo9IGZyZWVzY2FsZS1teDI1LTMtc3RhY2sKIGJvYXJkLSQoQ09ORklHX01B Q0hfRlJFRVNDQUxFX01YMzVfM1NUQUNLKQk6PSBmcmVlc2NhbGUtbXgzNS0zLXN0YWNrCmRpZmYg LS1naXQgYS9hcmNoL2FybS9jb25maWdzL2V1a3JlYV9jcHVpbXgyNV9kZWZjb25maWcgYi9hcmNo L2FybS9jb25maWdzL2V1a3JlYV9jcHVpbXgyNV9kZWZjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uODFmOWM4MAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2Nv bmZpZ3MvZXVrcmVhX2NwdWlteDI1X2RlZmNvbmZpZwpAQCAtMCwwICsxLDI0NyBAQAorIworIyBB dXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAorIyBiYXJlYm94 IHZlcnNpb246IDIwMTAuMDMuMAorIyBGcmkgTWFyIDE5IDExOjEyOjExIDIwMTAKKyMKKyMgQ09O RklHX0JPQVJEX0xJTktFUl9TQ1JJUFQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfTElOS0VS X1NDUklQVD15CitDT05GSUdfQVJNPXkKKworIworIyBTeXN0ZW0gVHlwZQorIworIyBDT05GSUdf QVJDSF9BVDkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MVJNOTIwMCBpcyBub3Qgc2V0 CisjIENPTkZJR19BUkNIX0VQOTNYWCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9JTVg9eQorIyBD T05GSUdfQVJDSF9ORVRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT01BUCBpcyBub3Qgc2V0 CisjIENPTkZJR19BUkNIX1MzQzI0eHggaXMgbm90IHNldAorCisjCisjIFByb2Nlc3NvciBUeXBl CisjCitDT05GSUdfQ1BVXzMyPXkKK0NPTkZJR19DUFVfQVJNOTI2VD15CitDT05GSUdfQ1BVXzMy djU9eQorCisjCisjIHByb2Nlc3NvciBmZWF0dXJlcworIworQ09ORklHX0FSQ0hfVEVYVF9CQVNF PTB4ODNmMDAwMDAKK0NPTkZJR19CT0FSRElORk89IkV1a3JlYSBDUFVJTVgyNSIKK0NPTkZJR19B UkNIX0hBU19GRUNfSU1YPXkKK0NPTkZJR19BUkNIX0lNWF9JTlRFUk5BTF9CT09UPXkKKworIwor IyBGcmVlc2NhbGUgaS5NWCBTeXN0ZW0tb24tQ2hpcAorIworIyBDT05GSUdfQVJDSF9JTVgxIGlz IG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU1YMjEgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfSU1Y MjU9eQorIyBDT05GSUdfQVJDSF9JTVgyNyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lNWDMx IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU1YMzUgaXMgbm90IHNldAorQ09ORklHX01BQ0hf RVVLUkVBX0NQVUlNWDI1PXkKKyMgQ09ORklHX01BQ0hfRlJFRVNDQUxFX01YMjVfM1NUQUNLIGlz IG5vdCBzZXQKKworIworIyBCb2FyZCBzcGVjaWZpYyBzZXR0aW5ncyAgICAgICAKKyMKKworIwor IyBpLk1YIHNwZWNpZmljIHNldHRpbmdzICAgICAgICAKKyMKKyMgQ09ORklHX0lNWF9DTEtPIGlz IG5vdCBzZXQKKyMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKKworIworIyBBcm0gc3BlY2lmaWMg c2V0dGluZ3MgICAgICAgICAKKyMKK0NPTkZJR19DTURfQVJNX0NQVUlORk89eQorQ09ORklHX0FS TV9PUFRJTVpFRF9TVFJJTkdfRlVOQ1RJT05TPXkKK0NPTkZJR19HUkVHT1JJQU5fQ0FMRU5ERVI9 eQorQ09ORklHX0hBU19LQUxMU1lNUz15CitDT05GSUdfSEFTX01PRFVMRVM9eQorQ09ORklHX0NN RF9NRU1PUlk9eQorQ09ORklHX0VOVl9IQU5ETElORz15CitDT05GSUdfR0VORVJJQ19HUElPPXkK KworIworIyBHZW5lcmFsIFNldHRpbmdzICAgICAgICAgICAgICAKKyMKK0NPTkZJR19MT0NBTFZF UlNJT05fQVVUTz15CisKKyMKKyMgbWVtb3J5IGxheW91dCAgICAgICAgICAgICAgICAgCisjCitD T05GSUdfSEFWRV9NTVU9eQorQ09ORklHX01NVT15CitDT05GSUdfSEFWRV9DT05GSUdVUkFCTEVf VEVYVF9CQVNFPXkKK0NPTkZJR19URVhUX0JBU0U9MHg4M2YwMDAwMAorQ09ORklHX0hBVkVfQ09O RklHVVJBQkxFX01FTU9SWV9MQVlPVVQ9eQorQ09ORklHX01FTU9SWV9MQVlPVVRfREVGQVVMVD15 CisjIENPTkZJR19NRU1PUllfTEFZT1VUX0ZJWEVEIGlzIG5vdCBzZXQKK0NPTkZJR19TVEFDS19T SVpFPTB4ODAwMAorQ09ORklHX01BTExPQ19TSVpFPTB4MTAwMDAwMAorIyBDT05GSUdfQlJPS0VO IGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYUEVSSU1FTlRBTCBpcyBub3Qgc2V0CitDT05GSUdfTUFD SF9IQVNfTE9XTEVWRUxfSU5JVD15CitDT05GSUdfTUFDSF9ET19MT1dMRVZFTF9JTklUPXkKK0NP TkZJR19QUk9NUFQ9ImJhcmVib3g6IgorQ09ORklHX0JBVURSQVRFPTExNTIwMAorIyBDT05GSUdf TE9OR0hFTFAgaXMgbm90IHNldAorQ09ORklHX0NCU0laRT0xMDI0CitDT05GSUdfTUFYQVJHUz0x NgorQ09ORklHX1NIRUxMX0hVU0g9eQorIyBDT05GSUdfU0hFTExfU0lNUExFIGlzIG5vdCBzZXQK K0NPTkZJR19HTE9CPXkKK0NPTkZJR19QUk9NUFRfSFVTSF9QUzI9ImNwdWlteDI1PiIKK0NPTkZJ R19DTURMSU5FX0VESVRJTkc9eQorQ09ORklHX0FVVE9fQ09NUExFVEU9eQorQ09ORklHX0RZTkFN SUNfQ1JDX1RBQkxFPXkKKyMgQ09ORklHX0VSUk5PX01FU1NBR0VTIGlzIG5vdCBzZXQKK0NPTkZJ R19USU1FU1RBTVA9eQorQ09ORklHX0NPTlNPTEVfRlVMTD15CitDT05GSUdfQ09OU09MRV9BQ1RJ VkFURV9GSVJTVD15CisjIENPTkZJR19PRl9GTEFUX1RSRUUgaXMgbm90IHNldAorQ09ORklHX1BB UlRJVElPTj15CitDT05GSUdfREVGQVVMVF9FTlZJUk9OTUVOVD15CitDT05GSUdfREVGQVVMVF9F TlZJUk9OTUVOVF9QQVRIPSJib2FyZC9ldWtyZWFfY3B1aW14MjUvZW52IgorCisjCisjIERlYnVn Z2luZyAgICAgICAgICAgICAgICAgICAgIAorIworIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qg c2V0CisjIENPTkZJR19FTkFCTEVfRkxBU0hfTk9JU0UgaXMgbm90IHNldAorIyBDT05GSUdfRU5B QkxFX1BBUlRJVElPTl9OT0lTRSBpcyBub3Qgc2V0CisjIENPTkZJR19FTkFCTEVfREVWSUNFX05P SVNFIGlzIG5vdCBzZXQKKworIworIyBDb21tYW5kcyAgICAgICAgICAgICAgICAgICAgICAKKyMK KworIworIyBzY3JpcHRpbmcgICAgICAgICAgICAgICAgICAgICAKKyMKK0NPTkZJR19DTURfRURJ VD15CitDT05GSUdfQ01EX1NMRUVQPXkKK0NPTkZJR19DTURfU0FWRUVOVj15CitDT05GSUdfQ01E X0xPQURFTlY9eQorQ09ORklHX0NNRF9FWFBPUlQ9eQorQ09ORklHX0NNRF9QUklOVEVOVj15CitD T05GSUdfQ01EX1JFQURMSU5FPXkKK0NPTkZJR19DTURfVFJVRT15CitDT05GSUdfQ01EX0ZBTFNF PXkKKworIworIyBmaWxlIGNvbW1hbmRzICAgICAgICAgICAgICAgICAKKyMKK0NPTkZJR19DTURf TFM9eQorQ09ORklHX0NNRF9STT15CitDT05GSUdfQ01EX0NBVD15CitDT05GSUdfQ01EX01LRElS PXkKK0NPTkZJR19DTURfUk1ESVI9eQorQ09ORklHX0NNRF9DUD15CitDT05GSUdfQ01EX1BXRD15 CitDT05GSUdfQ01EX0NEPXkKK0NPTkZJR19DTURfTU9VTlQ9eQorQ09ORklHX0NNRF9VTU9VTlQ9 eQorCisjCisjIGNvbnNvbGUgICAgICAgICAgICAgICAgICAgICAgIAorIworQ09ORklHX0NNRF9D TEVBUj15CitDT05GSUdfQ01EX0VDSE89eQorCisjCisjIG1lbW9yeSAgICAgICAgICAgICAgICAg ICAgICAgIAorIworIyBDT05GSUdfQ01EX0xPQURCIGlzIG5vdCBzZXQKK0NPTkZJR19DTURfTUVN SU5GTz15CitDT05GSUdfQ01EX0NSQz15CitDT05GSUdfQ01EX01URVNUPXkKKyMgQ09ORklHX0NN RF9NVEVTVF9BTFRFUk5BVElWRSBpcyBub3Qgc2V0CisKKyMKKyMgZmxhc2ggICAgICAgICAgICAg ICAgICAgICAgICAgCisjCitDT05GSUdfQ01EX0ZMQVNIPXkKKworIworIyBib290aW5nICAgICAg ICAgICAgICAgICAgICAgICAKKyMKK0NPTkZJR19DTURfQk9PVE09eQorIyBDT05GSUdfQ01EX0JP T1RNX1pMSUIgaXMgbm90IHNldAorIyBDT05GSUdfQ01EX0JPT1RNX0JaTElCIGlzIG5vdCBzZXQK KyMgQ09ORklHX0NNRF9CT09UTV9TSE9XX1RZUEUgaXMgbm90IHNldAorQ09ORklHX0NNRF9CT09U Wj15CitDT05GSUdfQ01EX0JPT1RVPXkKKyMgQ09ORklHX0NNRF9MSU5VWDE2IGlzIG5vdCBzZXQK K0NPTkZJR19DTURfUkVTRVQ9eQorQ09ORklHX0NNRF9HTz15CitDT05GSUdfQ01EX1RJTUVPVVQ9 eQorQ09ORklHX0NNRF9QQVJUSVRJT049eQorQ09ORklHX0NNRF9URVNUPXkKK0NPTkZJR19DTURf VkVSU0lPTj15CitDT05GSUdfQ01EX0hFTFA9eQorQ09ORklHX0NNRF9ERVZJTkZPPXkKK0NPTkZJ R19DTURfQk1QPXkKK0NPTkZJR19DTURfR1BJTz15CitDT05GSUdfTkVUPXkKK0NPTkZJR19ORVRf REhDUD15CisjIENPTkZJR19ORVRfUkFSUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfTkZTIGlz IG5vdCBzZXQKK0NPTkZJR19ORVRfUElORz15CitDT05GSUdfTkVUX1RGVFA9eQorCisjCisjIERy aXZlcnMgICAgICAgICAgICAgICAgICAgICAgIAorIworCisjCisjIHNlcmlhbCBkcml2ZXJzICAg ICAgICAgICAgICAgIAorIworIyBDT05GSUdfRFJJVkVSX1NFUklBTF9BUk1fRENDIGlzIG5vdCBz ZXQKK0NPTkZJR19EUklWRVJfU0VSSUFMX0lNWD15CisjIENPTkZJR19EUklWRVJfU0VSSUFMX05T MTY1NTAgaXMgbm90IHNldAorQ09ORklHX01JSVBIWT15CisKKyMKKyMgTmV0d29yayBkcml2ZXJz ICAgICAgICAgICAgICAgCisjCisjIENPTkZJR19EUklWRVJfTkVUX1NNQzkxMVggaXMgbm90IHNl dAorIyBDT05GSUdfRFJJVkVSX05FVF9TTUM5MTExMSBpcyBub3Qgc2V0CitDT05GSUdfRFJJVkVS X05FVF9GRUNfSU1YPXkKKworIworIyBTUEkgZHJpdmVycyAgICAgICAgICAgICAgICAgICAKKyMK KyMgQ09ORklHX1NQSSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkMgaXMgbm90IHNldAorCisjCisj IGZsYXNoIGRyaXZlcnMgICAgICAgICAgICAgICAgIAorIworIyBDT05GSUdfRFJJVkVSX0NGSSBp cyBub3Qgc2V0CitDT05GSUdfTkFORD15CitDT05GSUdfTkFORF9JTVg9eQorQ09ORklHX05BTkRf SU1YX0JPT1Q9eQorIyBDT05GSUdfTVREX05BTkRfVkVSSUZZX1dSSVRFIGlzIG5vdCBzZXQKKyMg Q09ORklHX01URF9OQU5EX0VDQ19TTUMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX0lEUz15 CisjIENPTkZJR19BVEEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCIGlzIG5vdCBzZXQKKyMgQ09O RklHX1VTQl9HQURHRVQgaXMgbm90IHNldAorQ09ORklHX1ZJREVPPXkKK0NPTkZJR19EUklWRVJf VklERU9fSU1YPXkKKyMgQ09ORklHX0lNWEZCX0RSSVZFUl9WSURFT19JTVhfT1ZFUkxBWSBpcyBu b3Qgc2V0CisKKyMKKyMgRmlsZXN5c3RlbSBzdXBwb3J0ICAgICAgICAgICAgCisjCisjIENPTkZJ R19GU19DUkFNRlMgaXMgbm90IHNldAorQ09ORklHX0ZTX1JBTUZTPXkKK0NPTkZJR19GU19ERVZG Uz15CitDT05GSUdfQ1JDMzI9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUIGlzIG5v dCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW14L0tjb25maWcgYi9hcmNoL2FybS9t YWNoLWlteC9LY29uZmlnCmluZGV4IDAyZDVkYjkuLjQxOWRhYWIgMTAwNjQ0Ci0tLSBhL2FyY2gv YXJtL21hY2gtaW14L0tjb25maWcKKysrIGIvYXJjaC9hcm0vbWFjaC1pbXgvS2NvbmZpZwpAQCAt Miw2ICsyLDcgQEAgaWYgQVJDSF9JTVgKIAogY29uZmlnIEFSQ0hfVEVYVF9CQVNFCiAJaGV4CisJ ZGVmYXVsdCAweDgzZjAwMDAwIGlmIE1BQ0hfRVVLUkVBX0NQVUlNWDI1CiAJZGVmYXVsdCAweGEw MDAwMDAwIGlmIE1BQ0hfRVVLUkVBX0NQVUlNWDI3CiAJZGVmYXVsdCAweDA4ZjAwMDAwIGlmIE1B Q0hfTVgxQURTCiAJZGVmYXVsdCAweGMwMDAwMDAwIGlmIE1BQ0hfSU1YMjFBRFMKQEAgLTE2LDYg KzE3LDcgQEAgY29uZmlnIEFSQ0hfVEVYVF9CQVNFCiAJZGVmYXVsdCAweDA4ZjgwMDAwIGlmIE1B Q0hfU0NCOTMyOAogCiBjb25maWcgQk9BUkRJTkZPCisJZGVmYXVsdCAiRXVrcmVhIENQVUlNWDI1 IiBpZiBNQUNIX0VVS1JFQV9DUFVJTVgyNQogCWRlZmF1bHQgIkV1a3JlYSBDUFVJTVgyNyIgaWYg TUFDSF9FVUtSRUFfQ1BVSU1YMjcKIAlkZWZhdWx0ICJGcmVlc2NhbGUgaS5NWDIxIEFEUyIgaWYg TUFDSF9JTVgyMUFEUwogCWRlZmF1bHQgIkZyZWVzY2FsZSBpLk1YMjcgQURTIiBpZiBNQUNIX0lN WDI3QURTCkBAIC0xMjQsNiArMTI2LDE0IEBAIGNob2ljZQogCiAJcHJvbXB0ICJpLk1YMjUgQm9h cmQgVHlwZSIKIAorY29uZmlnIE1BQ0hfRVVLUkVBX0NQVUlNWDI1CisJYm9vbCAiRXVrcmVhIENQ VUlNWDI1IgorCXNlbGVjdCBNQUNIX0hBU19MT1dMRVZFTF9JTklUCisJc2VsZWN0IEhBVkVfTU1V CisJaGVscAorCSAgU2F5IFkgaGVyZSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBFdWtyZWEgRWxlY3Ry b21hdGlxdWUncyBDUFVJTVgyNQorCSAgZXF1aXBwZWQgd2l0aCBhIEZyZWVzY2FsZSBpLk1YMjUg UHJvY2Vzc29yCisKIGNvbmZpZyBNQUNIX0ZSRUVTQ0FMRV9NWDI1XzNTVEFDSwogCWJvb2wgIkZy ZWVzY2FsZSBNWDI1IDNzdGFjayIKIAlzZWxlY3QgSEFTX0NGSQpkaWZmIC0tZ2l0IGEvYm9hcmQv ZXVrcmVhX2NwdWlteDI1L01ha2VmaWxlIGIvYm9hcmQvZXVrcmVhX2NwdWlteDI1L01ha2VmaWxl Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwNmM2ZjMKLS0tIC9kZXYvbnVs bAorKysgYi9ib2FyZC9ldWtyZWFfY3B1aW14MjUvTWFrZWZpbGUKQEAgLTAsMCArMSwyNCBAQAor IworIyAoQykgMjAxMCBFdWtyZWEgRWxlY3Ryb21hdGlxdWUsIEVyaWMgQsOpbmFyZCA8ZXJpY0Bl dWtyZWEuY29tPgorIworIyBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8g Y29udHJpYnV0ZWQgdG8gdGhpcworIyBwcm9qZWN0LgorIworIyBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisjIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAy IG9mCisjIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9u LCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAorIyBNQSAwMjExMS0x MzA3IFVTQQorIworCitvYmoteSArPSBsb3dsZXZlbC5vCitvYmoteSArPSBldWtyZWFfY3B1aW14 MjUubwpkaWZmIC0tZ2l0IGEvYm9hcmQvZXVrcmVhX2NwdWlteDI1L2NvbmZpZy5oIGIvYm9hcmQv ZXVrcmVhX2NwdWlteDI1L2NvbmZpZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmVmZmY5MDkKLS0tIC9kZXYvbnVsbAorKysgYi9ib2FyZC9ldWtyZWFfY3B1aW14MjUvY29u ZmlnLmgKQEAgLTAsMCArMSwyNyBAQAorLyoKKyAqIChjKSAyMDEwIEV1a3JlYSBFbGVjdHJvbWF0 aXF1ZSwgRXJpYyBCw6luYXJkIDxlcmljQGV1a3JlYS5jb20+CisgKgorICogVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg KiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0 d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJv c3RvbiwKKyAqIE1BIDAyMTExLTEzMDcgVVNBCisgKi8KKworI2lmbmRlZiBfX0NPTkZJR19ICisj ZGVmaW5lIF9fQ09ORklHX0gKKworI2RlZmluZSBDT05GSUdfTVgyNV9IQ0xLX0ZSRVEJMjQwMDAw MDAKKworI2VuZGlmCisKKy8qIG5vdGhpbmcgdG8gZG8gaGVyZSB5ZXQgKi8KZGlmZiAtLWdpdCBh L2JvYXJkL2V1a3JlYV9jcHVpbXgyNS9lbnYvYmluL191cGRhdGUgYi9ib2FyZC9ldWtyZWFfY3B1 aW14MjUvZW52L2Jpbi9fdXBkYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjAxNGJjZTMKLS0tIC9kZXYvbnVsbAorKysgYi9ib2FyZC9ldWtyZWFfY3B1aW14MjUvZW52L2Jp bi9fdXBkYXRlCkBAIC0wLDAgKzEsMzYgQEAKKyMhL2Jpbi9zaAorCitpZiBbIC16ICIkcGFydCIg LW8gLXogIiRpbWFnZSIgXTsgdGhlbgorCWVjaG8gImRlZmluZSBcJHBhcnQgYW5kIFwkaW1hZ2Ui CisJZXhpdCAxCitmaQorCitpZiBbICEgLWUgIiRwYXJ0IiBdOyB0aGVuCisJZWNobyAiUGFydGl0 aW9uICRwYXJ0IGRvZXMgbm90IGV4aXN0IgorCWV4aXQgMQorZmkKKworaWYgWyAkIyA9IDEgXTsg dGhlbgorCWltYWdlPSQxCitmaQorCitpZiBbIHgkaXAgPSB4ZGhjcCBdOyB0aGVuCisJZGhjcAor ZmkKKworcGluZyAkZXRoMC5zZXJ2ZXJpcAoraWYgWyAkPyAtbmUgMCBdIDsgdGhlbgorCWVjaG8g InVwZGF0ZSBhYm9ydGVkIgorCWV4aXQgMQorZmkKKwordW5wcm90ZWN0ICRwYXJ0CisKK2VjaG8K K2VjaG8gImVyYXNpbmcgcGFydGl0aW9uICRwYXJ0IgorZXJhc2UgJHBhcnQKKworZWNobworZWNo byAiZmxhc2hpbmcgJGltYWdlIHRvICRwYXJ0IgorZWNobwordGZ0cCAkaW1hZ2UgJHBhcnQKZGlm ZiAtLWdpdCBhL2JvYXJkL2V1a3JlYV9jcHVpbXgyNS9lbnYvYmluL2Jvb3QgYi9ib2FyZC9ldWty ZWFfY3B1aW14MjUvZW52L2Jpbi9ib290Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjMzMTExMTQKLS0tIC9kZXYvbnVsbAorKysgYi9ib2FyZC9ldWtyZWFfY3B1aW14MjUvZW52 L2Jpbi9ib290CkBAIC0wLDAgKzEsNTMgQEAKKyMhL2Jpbi9zaAorCisuIC9lbnYvY29uZmlnCisK K2lmIFsgeCQxID0geGpmZlMyIF07IHRoZW4KKwlyb290PWpmZnMyCisJa2VybmVsPW5hbmQKK2Zp CisKK2lmIFsgeCQxID0geHViaWZzIF07IHRoZW4KKwlyb290PXViaWZzCisJa2VybmVsPW5hbmQK K2ZpCisKK2lmIFsgeCQxID0geG5ldCBdOyB0aGVuCisJcm9vdD1uZXQKKwlrZXJuZWw9bmV0Citm aQorCitpZiBbIHgkaXAgPSB4ZGhjcCBdOyB0aGVuCisJYm9vdGFyZ3M9IiRib290YXJncyBpcD1k aGNwIgorZWxzZQorCWlmIFsgeCRpcCA9IHhvZmYgXTsgdGhlbgorCQlib290YXJncz0iJGJvb3Rh cmdzIGlwPW9mZiIKKwllbHNlCisJCWJvb3RhcmdzPSIkYm9vdGFyZ3MgaXA9JGV0aDAuaXBhZGRy OiRldGgwLnNlcnZlcmlwOiRldGgwLmdhdGV3YXk6JGV0aDAubmV0bWFzazo6OiIKKwlmaQorZmkK KworaWYgWyB4JHJvb3QgPSB4amZmczIgXTsgdGhlbgorCWJvb3RhcmdzPSIkYm9vdGFyZ3Mgcm9v dD0vZGV2L210ZGJsb2NrJHJvb3RwYXJ0bnVtX25hbmQgcm9vdGZzdHlwZT1qZmZzMiIKK2ZpCisK K2lmIFsgeCRyb290ID0geHViaWZzIF07IHRoZW4KKwlib290YXJncz0iJGJvb3RhcmdzIHJvb3Q9 dWJpMDpyb290IHViaS5tdGQ9JHJvb3RwYXJ0bnVtX25hbmQgcm9vdGZzdHlwZT11YmlmcyIKK2Zp CisKK2lmIFsgeCRyb290ID0geG5ldCBdOyB0aGVuCisJYm9vdGFyZ3M9IiRib290YXJncyByb290 PS9kZXYvbmZzIG5mc3Jvb3Q9JGV0aDAuc2VydmVyaXA6JG5mc3Jvb3QsdjMsdGNwIgorZmkKKwor Ym9vdGFyZ3M9IiRib290YXJncyBtdGRwYXJ0cz1teGNfbmFuZDokbmFuZF9wYXJ0cyIKKworaWYg WyAka2VybmVsID0gbmV0IF07IHRoZW4KKwlpZiBbIHgkaXAgPSB4ZGhjcCBdOyB0aGVuCisJCWRo Y3AKKwlmaQorCXRmdHAgJHVpbWFnZSB1SW1hZ2UgfHwgZXhpdCAxCisJYm9vdG0gdUltYWdlCitl bHNlCisJYm9vdG0gL2Rldi9uYW5kMC5rZXJuZWwuYmIKK2ZpCisKZGlmZiAtLWdpdCBhL2JvYXJk L2V1a3JlYV9jcHVpbXgyNS9lbnYvYmluL2h1c2hfaGFjayBiL2JvYXJkL2V1a3JlYV9jcHVpbXgy NS9lbnYvYmluL2h1c2hfaGFjawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41 ZmZmYTkyCi0tLSAvZGV2L251bGwKKysrIGIvYm9hcmQvZXVrcmVhX2NwdWlteDI1L2Vudi9iaW4v aHVzaF9oYWNrCkBAIC0wLDAgKzEgQEAKK25hbmQgLWEgL2Rldi9uYW5kMC4qCmRpZmYgLS1naXQg YS9ib2FyZC9ldWtyZWFfY3B1aW14MjUvZW52L2Jpbi9pbml0IGIvYm9hcmQvZXVrcmVhX2NwdWlt eDI1L2Vudi9iaW4vaW5pdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YmNj NzMyCi0tLSAvZGV2L251bGwKKysrIGIvYm9hcmQvZXVrcmVhX2NwdWlteDI1L2Vudi9iaW4vaW5p dApAQCAtMCwwICsxLDM4IEBACisjIS9iaW4vc2gKKworUEFUSD0vZW52L2JpbgorZXhwb3J0IFBB VEgKKworLiAvZW52L2NvbmZpZworaWYgWyAtZSAvZGV2L25hbmQwIF07IHRoZW4KKwlhZGRwYXJ0 IC9kZXYvbmFuZDAgJG5hbmRfcGFydHMKKworCSMgVWgsIG9oLCBodXNoIGZpcnN0IGV4cGFuZHMg d2lsZGNhcmRzIGFuZCB0aGVuIHN0YXJ0cyBleGVjdXRpbmcKKwkjIGNvbW1hbmRzLiBXaGF0IGEg YnVnIQorCXNvdXJjZSAvZW52L2Jpbi9odXNoX2hhY2sKK2ZpCisKK2lmIFsgLWYgL2Vudi9sb2dv LmJtcCBdOyB0aGVuCisJYm1wIC9lbnYvbG9nby5ibXAKK2ZpCisKK2lmIFsgLXogJGV0aDAuZXRo YWRkciBdOyB0aGVuCisJd2hpbGUgWyAteiAkZXRoMC5ldGhhZGRyIF07IGRvCisJCXJlYWRsaW5l ICJubyBNQUMgYWRkcmVzcyBzZXQgZm9yIGV0aDAuIHBsZWFzZSBlbnRlciB0aGUgb25lIGZvdW5k IG9uIHlvdXIgYm9hcmQ6ICIgZXRoMC5ldGhhZGRyCisJZG9uZQorCWVjaG8gLWEgL2Vudi9jb25m aWcgImV0aDAuZXRoYWRkcj0kZXRoMC5ldGhhZGRyIgorCXNhdmVlbnYKK2ZpCisKK2VjaG8KK2Vj aG8gLW4gIkhpdCBhbnkga2V5IHRvIHN0b3AgYXV0b2Jvb3Q6ICIKK3RpbWVvdXQgLWEgJGF1dG9i b290X3RpbWVvdXQKK2lmIFsgJD8gIT0gMCBdOyB0aGVuCisJZWNobworCWVjaG8gInR5cGUgdXBk YXRlX2tlcm5lbCBbPGltYWdlbmFtZT5dIHRvIHVwZGF0ZSBrZXJuZWwgaW50byBmbGFzaCIKKwll Y2hvICJ0eXBlIHVwZGF0ZV9yb290IFs8aW1hZ2VuYW1lPl0gdG8gdXBkYXRlIHJvb3RmcyBpbnRv IGZsYXNoIgorCWVjaG8KKwlleGl0CitmaQorCitib290CmRpZmYgLS1naXQgYS9ib2FyZC9ldWty ZWFfY3B1aW14MjUvZW52L2Jpbi91cGRhdGVfa2VybmVsIGIvYm9hcmQvZXVrcmVhX2NwdWlteDI1 L2Vudi9iaW4vdXBkYXRlX2tlcm5lbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5jMmQyY2MzCi0tLSAvZGV2L251bGwKKysrIGIvYm9hcmQvZXVrcmVhX2NwdWlteDI1L2Vudi9i aW4vdXBkYXRlX2tlcm5lbApAQCAtMCwwICsxLDggQEAKKyMhL2Jpbi9zaAorCisuIC9lbnYvY29u ZmlnCisKK2ltYWdlPSR1aW1hZ2UKK3BhcnQ9L2Rldi9uYW5kMC5rZXJuZWwuYmIKKworLiAvZW52 L2Jpbi9fdXBkYXRlICQxCmRpZmYgLS1naXQgYS9ib2FyZC9ldWtyZWFfY3B1aW14MjUvZW52L2Jp bi91cGRhdGVfcm9vdCBiL2JvYXJkL2V1a3JlYV9jcHVpbXgyNS9lbnYvYmluL3VwZGF0ZV9yb290 Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkODlhNWEKLS0tIC9kZXYvbnVs bAorKysgYi9ib2FyZC9ldWtyZWFfY3B1aW14MjUvZW52L2Jpbi91cGRhdGVfcm9vdApAQCAtMCww ICsxLDggQEAKKyMhL2Jpbi9zaAorCisuIC9lbnYvY29uZmlnCisKK2ltYWdlPSRyb290ZnMKK3Bh cnQ9L2Rldi9uYW5kMC5yb290LmJiCisKKy4gL2Vudi9iaW4vX3VwZGF0ZSAkMQpkaWZmIC0tZ2l0 IGEvYm9hcmQvZXVrcmVhX2NwdWlteDI1L2Vudi9jb25maWcgYi9ib2FyZC9ldWtyZWFfY3B1aW14 MjUvZW52L2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjVmY2Vk Ci0tLSAvZGV2L251bGwKKysrIGIvYm9hcmQvZXVrcmVhX2NwdWlteDI1L2Vudi9jb25maWcKQEAg LTAsMCArMSwyNiBAQAorIyEvYmluL3NoCisKKyMgY2FuIGJlIGVpdGhlciAnbmV0JyBvciAnamZm czInIG9yICd1YmlmcycKK2tlcm5lbD1uYW5kCityb290PWpmZnMyCisKK2Jhc2VkaXI9Y3B1aW14 MjUKK3VpbWFnZT0kYmFzZWRpci91SW1hZ2UKK3Jvb3Rmcz0kYmFzZWRpci9yb290ZnMKKworYXV0 b2Jvb3RfdGltZW91dD0xCisKK25mc3Jvb3Q9IiIKK2Jvb3RhcmdzPSJjb25zb2xlPXR0eW14YzAs MTE1MjAwIgorCituYW5kX3BhcnRzPSIyNTZrKGJhcmVib3gpcm8sMTI4ayhiYXJlYm94ZW52KSwy MTc2ayhrZXJuZWwpLC0ocm9vdCkiCityb290cGFydG51bV9uYW5kPTMKKworIyB1c2UgJ2RoY3An IHRvIGRvIGRoY3AgaW4gYmFyZWJveCBhbmQgaW4ga2VybmVsCitpcD1kaGNwCisKKyMgb3Igc2V0 IHlvdXIgbmV0d29ya2luZyBwYXJhbWV0ZXJzIGhlcmUKKyNldGgwLmlwYWRkcj1hLmIuYy5kCisj ZXRoMC5uZXRtYXNrPWEuYi5jLmQKKyNldGgwLmdhdGV3YXk9YS5iLmMuZAorZXRoMC5zZXJ2ZXJp cD0xOTIuMTY4LjEuMTUKZGlmZiAtLWdpdCBhL2JvYXJkL2V1a3JlYV9jcHVpbXgyNS9ldWtyZWFf Y3B1aW14MjUuYyBiL2JvYXJkL2V1a3JlYV9jcHVpbXgyNS9ldWtyZWFfY3B1aW14MjUuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzhmMmQ0Ci0tLSAvZGV2L251bGwKKysr IGIvYm9hcmQvZXVrcmVhX2NwdWlteDI1L2V1a3JlYV9jcHVpbXgyNS5jCkBAIC0wLDAgKzEsMjc1 IEBACisvKgorICogKEMpIDIwMDkgUGVuZ3V0cm9uaXgsIFNhc2NoYSBIYXVlciA8cy5oYXVlckBw ZW5ndXRyb25peC5kZT4KKyAqIChjKSAyMDEwIEV1a3JlYSBFbGVjdHJvbWF0aXF1ZSwgRXJpYyBC w6luYXJkIDxlcmljQGV1a3JlYS5jb20+CisgKgorICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlz dCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKyAqIHByb2plY3QuCisgKgorICog VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0 aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBT dWl0ZSAzMzAsIEJvc3RvbiwKKyAqIE1BIDAyMTExLTEzMDcgVVNBCisgKgorICovCisKKyNpbmNs dWRlIDxjb21tb24uaD4KKyNpbmNsdWRlIDxpbml0Lmg+CisjaW5jbHVkZSA8ZHJpdmVyLmg+Cisj aW5jbHVkZSA8ZW52aXJvbm1lbnQuaD4KKyNpbmNsdWRlIDxtYWNoL2lteC1yZWdzLmg+CisjaW5j bHVkZSA8YXNtL2FybWxpbnV4Lmg+CisjaW5jbHVkZSA8bWFjaC9ncGlvLmg+CisjaW5jbHVkZSA8 YXNtL2lvLmg+CisjaW5jbHVkZSA8YXNtL21tdS5oPgorCisjaW5jbHVkZSA8cGFydGl0aW9uLmg+ CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxtYWNoL2lteC1uYW5kLmg+ CisjaW5jbHVkZSA8bWFjaC9pbXhmYi5oPgorI2luY2x1ZGUgPGZlYy5oPgorI2luY2x1ZGUgPG5h bmQuaD4KKyNpbmNsdWRlIDxtYWNoL2lteC1mbGFzaC1oZWFkZXIuaD4KKyNpbmNsdWRlIDxtYWNo L2lvbXV4LW14MjUuaD4KKworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX3N0ZXh0OworCit2b2lkIF9f bmFrZWQgX19mbGFzaF9oZWFkZXJfc3RhcnQgZ28odm9pZCkKK3sKKwlfX2FzbV9fIF9fdm9sYXRp bGVfXygiYiBleGNlcHRpb25fdmVjdG9yc1xuIik7Cit9CisKK3N0cnVjdCBpbXhfZGNkX2VudHJ5 IF9fZGNkX2VudHJ5XzB4NDAwIGRjZF9lbnRyeVtdID0geworCXsgLnB0cl90eXBlID0gNCwgLmFk ZHIgPSAweGI4MDAxMDEwLCAudmFsID0gMHgwMDAwMDAwNCwgfSwKKwl7IC5wdHJfdHlwZSA9IDQs IC5hZGRyID0gMHhiODAwMTAwMCwgLnZhbCA9IDB4OTIxMDAwMDAsIH0sCisJeyAucHRyX3R5cGUg PSAxLCAuYWRkciA9IDB4ODAwMDA0MDAsIC52YWwgPSAweDEyMzQ0MzIxLCB9LAorCXsgLnB0cl90 eXBlID0gNCwgLmFkZHIgPSAweGI4MDAxMDAwLCAudmFsID0gMHhhMjEwMDAwMCwgfSwKKwl7IC5w dHJfdHlwZSA9IDQsIC5hZGRyID0gMHg4MDAwMDAwMCwgLnZhbCA9IDB4MTIzNDQzMjEsIH0sCisJ eyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4ODAwMDAwMDAsIC52YWwgPSAweDEyMzQ0MzIxLCB9 LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweGI4MDAxMDAwLCAudmFsID0gMHhiMjEwMDAw MCwgfSwKKwl7IC5wdHJfdHlwZSA9IDEsIC5hZGRyID0gMHg4MDAwMDAzMywgLnZhbCA9IDB4ZGEs IH0sCisJeyAucHRyX3R5cGUgPSAxLCAuYWRkciA9IDB4ODEwMDAwMDAsIC52YWwgPSAweGZmLCB9 LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweGI4MDAxMDAwLCAudmFsID0gMHg4MjIxNjA4 MCwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHhiODAwMTAwNCwgLnZhbCA9IDB4MDAy OTU3MjksIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4NTNmODAwMDgsIC52YWwgPSAw eDIwMDM0MDAwLCB9LAorfTsKKworI2RlZmluZSBBUFBfREVTVAkweDgwMDAwMDAwCisKK3N0cnVj dCBpbXhfZmxhc2hfaGVhZGVyIF9fZmxhc2hfaGVhZGVyXzB4NDAwIGV1a3JlYV9jcHVpbXgyNV9o ZWFkZXIgPSB7CisJLmFwcF9jb2RlX2p1bXBfdmVjdG9yCT0gVEVYVF9CQVNFICsgMHgyMDAwLAor CS5hcHBfY29kZV9iYXJrZXIJPSBBUFBfQ09ERV9CQVJLRVIsCisJLmFwcF9jb2RlX2NzZgkJPSAw LAorCS5kY2RfcHRyX3B0cgkJPSBURVhUX0JBU0UgKyAweDQwMCArIG9mZnNldG9mKHN0cnVjdCBp bXhfZmxhc2hfaGVhZGVyLCBkY2QpLAorCS5zdXBlcl9yb290X2tleQkJPSAwLAorCS5kY2QJCQk9 IFRFWFRfQkFTRSArIDB4NDAwICsgb2Zmc2V0b2Yoc3RydWN0IGlteF9mbGFzaF9oZWFkZXIsIGRj ZF9iYXJrZXIpLAorCS5hcHBfZGVzdAkJPSBURVhUX0JBU0UsCisJLmRjZF9iYXJrZXIJCT0gRENE X0JBUktFUiwKKwkuZGNkX2Jsb2NrX2xlbgkJPSBzaXplb2YoZGNkX2VudHJ5KSwKK307CisKK2V4 dGVybiB1bnNpZ25lZCBsb25nIF9fYnNzX3N0YXJ0OworCit1bnNpZ25lZCBsb25nIF9faW1hZ2Vf bGVuXzB4NDAwIGJhcmVib3hfbGVuID0gMHg0MDAwMDsKKworc3RhdGljIHN0cnVjdCBmZWNfcGxh dGZvcm1fZGF0YSBmZWNfaW5mbyA9IHsKKwkueGN2X3R5cGUJPSBSTUlJLAorCS5waHlfYWRkcgk9 IDEsCit9OworCitzdGF0aWMgc3RydWN0IGRldmljZV9kIGZlY19kZXYgPSB7CisJLm5hbWUgICAg ID0gImZlY19pbXgiLAorCS5tYXBfYmFzZSA9IElNWF9GRUNfQkFTRSwKKwkucGxhdGZvcm1fZGF0 YQk9ICZmZWNfaW5mbywKK307CisKK3N0YXRpYyBzdHJ1Y3QgbWVtb3J5X3BsYXRmb3JtX2RhdGEg c2RyYW1fcGRhdGEgPSB7CisJLm5hbWUJPSAicmFtMCIsCisJLmZsYWdzCT0gREVWRlNfUkRXUiwK K307CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2Qgc2RyYW0wX2RldiA9IHsKKwkubmFtZSAgICAg PSAibWVtIiwKKwkubWFwX2Jhc2UgPSBJTVhfU0RSQU1fQ1MwLAorCS5zaXplICAgICA9IDY0ICog MTAyNCAqIDEwMjQsCisJLnBsYXRmb3JtX2RhdGEgPSAmc2RyYW1fcGRhdGEsCit9OworCitzdHJ1 Y3QgaW14X25hbmRfcGxhdGZvcm1fZGF0YSBuYW5kX2luZm8gPSB7CisJLndpZHRoCT0gMSwKKwku aHdfZWNjCT0gMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2QgbmFuZF9kZXYgPSB7CisJ Lm5hbWUgICAgID0gImlteF9uYW5kIiwKKwkubWFwX2Jhc2UgPSBJTVhfTkZDX0JBU0UsCisJLnBs YXRmb3JtX2RhdGEJPSAmbmFuZF9pbmZvLAorfTsKKworc3RhdGljIHN0cnVjdCBpbXhfZmJfdmlk ZW9tb2RlIGlteGZiX21vZGUgPSB7CisJLm1vZGUgPSB7CisJCS5uYW1lCQk9ICJDTU8tUVZHQSIs CisJCS5yZWZyZXNoCT0gNjAsCisJCS54cmVzCQk9IDMyMCwKKwkJLnlyZXMJCT0gMjQwLAorCQku cGl4Y2xvY2sJPSBLSFoyUElDT1MoNjUwMCksCisJCS5oc3luY19sZW4JPSAzMCwKKwkJLmxlZnRf bWFyZ2luCT0gMzgsCisJCS5yaWdodF9tYXJnaW4JPSAyMCwKKwkJLnZzeW5jX2xlbgk9IDMsCisJ CS51cHBlcl9tYXJnaW4JPSAxNSwKKwkJLmxvd2VyX21hcmdpbgk9IDQsCisJfSwKKwkucGNyCQk9 IDB4Q0FEMDhCODAsCisJLmJwcAkJPSAxNiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgaW14X2ZiX3Bs YXRmb3JtX2RhdGEgZXVrcmVhX2NwdWlteDI1X2ZiX2RhdGEgPSB7CisJLm1vZGUJCT0gJmlteGZi X21vZGUsCisJLnB3bXIJCT0gMHgwMEE5MDNGRiwKKwkubHNjcjEJCT0gMHgwMDEyMDMwMCwKKwku ZG1hY3IJCT0gMHg4MDA0MDA2MCwKK307CisKKworc3RhdGljIHN0cnVjdCBkZXZpY2VfZCBpbXhm Yl9kZXYgPSB7CisJLm5hbWUJCT0gImlteGZiIiwKKwkubWFwX2Jhc2UJPSAweDUzZmJjMDAwLAor CS5zaXplCQk9IDB4MTAwMCwKKwkucGxhdGZvcm1fZGF0YQk9ICZldWtyZWFfY3B1aW14MjVfZmJf ZGF0YSwKK307CisKKyNpZmRlZiBDT05GSUdfTU1VCitzdGF0aWMgdm9pZCBldWtyZWFfY3B1aW14 MjVfbW11X2luaXQodm9pZCkKK3sKKwltbXVfaW5pdCgpOworCisJYXJtX2NyZWF0ZV9zZWN0aW9u KDB4ODAwMDAwMDAsIDB4ODAwMDAwMDAsIDEyOCwgUE1EX1NFQ1RfREVGX0NBQ0hFRCk7CisJYXJt X2NyZWF0ZV9zZWN0aW9uKDB4OTAwMDAwMDAsIDB4ODAwMDAwMDAsIDEyOCwgUE1EX1NFQ1RfREVG X1VOQ0FDSEVEKTsKKworCXNldHVwX2RtYV9jb2hlcmVudCgweDEwMDAwMDAwKTsKKworCW1tdV9l bmFibGUoKTsKK30KKyNlbHNlCitzdGF0aWMgdm9pZCBldWtyZWFfY3B1aW14MjVfbW11X2luaXQo dm9pZCkKK3sKK30KKyNlbmRpZgorCitzdGF0aWMgc3RydWN0IHBhZF9kZXNjIGV1a3JlYV9jcHVp bXgyNV9wYWRzW10gPSB7CisJTVgyNV9QQURfRkVDX01EQ19fTURDLAorCU1YMjVfUEFEX0ZFQ19N RElPX19NRElPLAorCU1YMjVfUEFEX0ZFQ19SREFUQTBfX1JEQVRBMCwKKwlNWDI1X1BBRF9GRUNf UkRBVEExX19SREFUQTEsCisJTVgyNV9QQURfRkVDX1JYX0RWX19SWF9EViwKKwlNWDI1X1BBRF9G RUNfVERBVEEwX19UREFUQTAsCisJTVgyNV9QQURfRkVDX1REQVRBMV9fVERBVEExLAorCU1YMjVf UEFEX0ZFQ19UWF9DTEtfX1RYX0NMSywKKwlNWDI1X1BBRF9GRUNfVFhfRU5fX1RYX0VOLAorCS8q IFVBUlQxICovCisJTVgyNV9QQURfVUFSVDFfUlhEX19SWERfTVVYLAorCU1YMjVfUEFEX1VBUlQx X1RYRF9fVFhEX01VWCwKKwlNWDI1X1BBRF9VQVJUMV9SVFNfX1JUUywKKwlNWDI1X1BBRF9VQVJU MV9DVFNfX0NUUywKKwkvKiBMQ0RDICovCisJTVgyNV9QQURfTEQwX19MQ0RDX0xEMCwKKwlNWDI1 X1BBRF9MRDFfX0xDRENfTEQxLAorCU1YMjVfUEFEX0xEMl9fTENEQ19MRDIsCisJTVgyNV9QQURf TEQzX19MQ0RDX0xEMywKKwlNWDI1X1BBRF9MRDRfX0xDRENfTEQ0LAorCU1YMjVfUEFEX0xENV9f TENEQ19MRDUsCisJTVgyNV9QQURfTEQ2X19MQ0RDX0xENiwKKwlNWDI1X1BBRF9MRDdfX0xDRENf TEQ3LAorCU1YMjVfUEFEX0xEOF9fTENEQ19MRDgsCisJTVgyNV9QQURfTEQ5X19MQ0RDX0xEOSwK KwlNWDI1X1BBRF9MRDEwX19MQ0RDX0xEMTAsCisJTVgyNV9QQURfTEQxMV9fTENEQ19MRDExLAor CU1YMjVfUEFEX0xEMTJfX0xDRENfTEQxMiwKKwlNWDI1X1BBRF9MRDEzX19MQ0RDX0xEMTMsCisJ TVgyNV9QQURfTEQxNF9fTENEQ19MRDE0LAorCU1YMjVfUEFEX0xEMTVfX0xDRENfTEQxNSwKKwlN WDI1X1BBRF9HUElPX0VfX0xDRENfTEQxNiwKKwlNWDI1X1BBRF9HUElPX0ZfX0xDRENfTEQxNywK KwlNWDI1X1BBRF9MU0NMS19fTENEQ19MU0NMSywKKwlNWDI1X1BBRF9PRV9BQ0RfX0xDRENfT0Vf QUNELAorCU1YMjVfUEFEX1ZTWU5DX19MQ0RDX1ZTWU4sCisJTVgyNV9QQURfSFNZTkNfX0xDRENf SFNZTiwKKwkvKiBCQUNLTElHSFQgQ09OVFJPTCAqLworCU1YMjVfUEFEX1BXTV9fR1BJTzI2LAor fTsKKworc3RhdGljIGludCBldWtyZWFfY3B1aW14MjVfZGV2aWNlc19pbml0KHZvaWQpCit7CisJ ZXVrcmVhX2NwdWlteDI1X21tdV9pbml0KCk7CisKKwlteGNfaW9tdXhfdjNfc2V0dXBfbXVsdGlw bGVfcGFkcyhldWtyZWFfY3B1aW14MjVfcGFkcywKKwkJQVJSQVlfU0laRShldWtyZWFfY3B1aW14 MjVfcGFkcykpOworCXJlZ2lzdGVyX2RldmljZSgmZmVjX2Rldik7CisKKwluYW5kX2luZm8ud2lk dGggPSAxOworCXJlZ2lzdGVyX2RldmljZSgmbmFuZF9kZXYpOworCisJZGV2ZnNfYWRkX3BhcnRp dGlvbigibmFuZDAiLCAweDAwMDAwLCAweDQwMDAwLAorCQlQQVJUSVRJT05fRklYRUQsICJzZWxm X3JhdyIpOworCWRldl9hZGRfYmJfZGV2KCJzZWxmX3JhdyIsICJzZWxmMCIpOworCisJZGV2ZnNf YWRkX3BhcnRpdGlvbigibmFuZDAiLCAweDQwMDAwLCAweDQwMDAwLAorCQlQQVJUSVRJT05fRklY RUQsICJlbnZfcmF3Iik7CisJZGV2X2FkZF9iYl9kZXYoImVudl9yYXciLCAiZW52MCIpOworCisJ cmVnaXN0ZXJfZGV2aWNlKCZzZHJhbTBfZGV2KTsKKworCS8qIGVuYWJsZSBMQ0QgKi8KKwlncGlv X2RpcmVjdGlvbl9vdXRwdXQoMjYsIDEpOworCWdwaW9fc2V0X3ZhbHVlKDI2LCAxKTsKKworCXJl Z2lzdGVyX2RldmljZSgmaW14ZmJfZGV2KTsKKworCWFybWxpbnV4X2FkZF9kcmFtKCZzZHJhbTBf ZGV2KTsKKwlhcm1saW51eF9zZXRfYm9vdHBhcmFtcygodm9pZCAqKTB4ODAwMDAxMDApOworCWFy bWxpbnV4X3NldF9hcmNoaXRlY3R1cmUoTUFDSF9UWVBFX01YMjVfM0RTKTsKKworCXJldHVybiAw OworfQorCitkZXZpY2VfaW5pdGNhbGwoZXVrcmVhX2NwdWlteDI1X2RldmljZXNfaW5pdCk7CisK K3N0YXRpYyBzdHJ1Y3QgZGV2aWNlX2QgZXVrcmVhX2NwdWlteDI1X3NlcmlhbF9kZXZpY2UgPSB7 CisJLm5hbWUgICAgID0gImlteF9zZXJpYWwiLAorCS5tYXBfYmFzZSA9IElNWF9VQVJUMV9CQVNF LAorCS5zaXplICAgICA9IDE2ICogMTAyNCwKK307CisKK3N0YXRpYyBpbnQgZXVrcmVhX2NwdWlt eDI1X2NvbnNvbGVfaW5pdCh2b2lkKQoreworCXdyaXRlbCgweDAzMDEwMTAxLCBJTVhfQ0NNX0JB U0UgKyBDQ01fUENEUjMpOworCXJlZ2lzdGVyX2RldmljZSgmZXVrcmVhX2NwdWlteDI1X3Nlcmlh bF9kZXZpY2UpOworCXJldHVybiAwOworfQorCitjb25zb2xlX2luaXRjYWxsKGV1a3JlYV9jcHVp bXgyNV9jb25zb2xlX2luaXQpOworCisjaWZkZWYgQ09ORklHX05BTkRfSU1YX0JPT1QKK3ZvaWQg X19iYXJlX2luaXQgbmFuZF9ib290KHZvaWQpCit7CisJaW14X25hbmRfbG9hZF9pbWFnZSgodm9p ZCAqKVRFWFRfQkFTRSwgMjU2ICogMTAyNCk7Cit9CisjZW5kaWYKKworc3RhdGljIGludCBldWty ZWFfY3B1aW14MjVfY29yZV9zZXR1cCh2b2lkKQoreworCXdyaXRlbCgweDAxMDEwMTAzLCBJTVhf Q0NNX0JBU0UgKyBDQ01fUENEUjIpOworCXJldHVybiAwOworCit9Citjb3JlX2luaXRjYWxsKGV1 a3JlYV9jcHVpbXgyNV9jb3JlX3NldHVwKTsKZGlmZiAtLWdpdCBhL2JvYXJkL2V1a3JlYV9jcHVp bXgyNS9sb3dsZXZlbC5jIGIvYm9hcmQvZXVrcmVhX2NwdWlteDI1L2xvd2xldmVsLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjlkM2NlNQotLS0gL2Rldi9udWxsCisrKyBi L2JvYXJkL2V1a3JlYV9jcHVpbXgyNS9sb3dsZXZlbC5jCkBAIC0wLDAgKzEsMTMwIEBACisvKgor ICoKKyAqIChjKSAyMDA3IFBlbmd1dHJvbml4LCBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0 cm9uaXguZGU+CisgKiAoYykgMjAxMCBFdWtyZWEgRWxlY3Ryb21hdGlxdWUsIEVyaWMgQsOpbmFy ZCA8ZXJpY0BldWtyZWEuY29tPgorICoKKyAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2Yg cGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisgKiBwcm9qZWN0LgorICoKKyAqIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICog R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy ZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUg MzMwLCBCb3N0b24sCisgKiBNQSAwMjExMS0xMzA3IFVTQQorICovCisjaW5jbHVkZSA8Y29tbW9u Lmg+CisjaW5jbHVkZSA8aW5pdC5oPgorI2luY2x1ZGUgPG1hY2gvaW14LXJlZ3MuaD4KKyNpbmNs dWRlIDxtYWNoL2lteC1wbGwuaD4KKyNpbmNsdWRlIDxtYWNoL2VzZGN0bC5oPgorI2luY2x1ZGUg PGFzbS9jYWNoZS1sMngwLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8bWFjaC9p bXgtbmFuZC5oPgorI2luY2x1ZGUgPGFzbS9iYXJlYm94LWFybS5oPgorI2luY2x1ZGUgPGFzbS1n ZW5lcmljL21lbW9yeV9sYXlvdXQuaD4KKyNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CisKK3N0YXRp YyB2b2lkIF9fYmFyZV9pbml0IF9fbmFrZWQgaW5zZHJhbSh2b2lkKQoreworCXVpbnQzMl90IHI7 CisKKwkvKiBzZXR1cCBhIHN0YWNrIHRvIGJlIGFibGUgdG8gY2FsbCBpbXhfbmFuZF9sb2FkX2lt YWdlKCkgKi8KKwlyID0gU1RBQ0tfQkFTRSArIFNUQUNLX1NJWkUgLSAxMjsKKwlfX2FzbV9fIF9f dm9sYXRpbGVfXygibW92IHNwLCAlMCIgOiA6ICJyIihyKSk7CisKKwlpbXhfbmFuZF9sb2FkX2lt YWdlKCh2b2lkICopVEVYVF9CQVNFLCAyNTYgKiAxMDI0KTsKKworCWJvYXJkX2luaXRfbG93bGV2 ZWxfcmV0dXJuKCk7Cit9CisKKyNkZWZpbmUgTVgyNV9DQ01fTUNSCTB4NjQKKyNkZWZpbmUgTVgy NV9DQ01fQ0dSMAkweDBjCisjZGVmaW5lIE1YMjVfQ0NNX0NHUjEJMHgxMAorI2RlZmluZSBNWDI1 X0NDTV9DR1IyCTB4MTQKKwordm9pZCBfX2JhcmVfaW5pdCBfX25ha2VkIGJvYXJkX2luaXRfbG93 bGV2ZWwodm9pZCkKK3sKKwl1aW50MzJfdCByOworCXVuc2lnbmVkIGludCAqdHJnLCAqc3JjOwor CWludCBpOworCisJLyogQUlQUyBzZXR1cCAtIE9ubHkgc2V0dXAgTVBST1R4IHJlZ2lzdGVycy4g VGhlIFBBQ1IgZGVmYXVsdCB2YWx1ZXMgYXJlIGdvb2QuCisJICogU2V0IGFsbCBNUFJPVHggdG8g YmUgbm9uLWJ1ZmZlcmFibGUsIHRydXN0ZWQgZm9yIFIvVywKKwkgKiBub3QgZm9yY2VkIHRvIHVz ZXItbW9kZS4KKwkgKi8KKwl3cml0ZWwoMHg3Nzc3Nzc3NywgMHg0M2YwMDAwMCk7CisJd3JpdGVs KDB4Nzc3Nzc3NzcsIDB4NDNmMDAwMDQpOworCXdyaXRlbCgweDc3Nzc3Nzc3LCAweDUzZjAwMDAw KTsKKwl3cml0ZWwoMHg3Nzc3Nzc3NywgMHg1M2YwMDAwNCk7CisKKwkvKiBNQVggKE11bHRpLUxh eWVyIEFIQiBDcm9zc2JhciBTd2l0Y2gpIHNldHVwCisJICogTVBSIC0gcHJpb3JpdHkgZm9yIE1Y MjUgaXMgKFNESEMyL1NETUEpPlVTQk9URz5SVElDPklBSEI+REFIQgorCSAqLworCXdyaXRlbCgw eDAwMDAyMTQzLCAweDQzZjA0MDAwKTsKKwl3cml0ZWwoMHgwMDAwMjE0MywgMHg0M2YwNDEwMCk7 CisJd3JpdGVsKDB4MDAwMDIxNDMsIDB4NDNmMDQyMDApOworCXdyaXRlbCgweDAwMDAyMTQzLCAw eDQzZjA0MzAwKTsKKwl3cml0ZWwoMHgwMDAwMjE0MywgMHg0M2YwNDQwMCk7CisJLyogU0dQQ1Ig LSBhbHdheXMgcGFyayBvbiBsYXN0IG1hc3RlciAqLworCXdyaXRlbCgweDEwLCAweDQzZjA0MDEw KTsKKwl3cml0ZWwoMHgxMCwgMHg0M2YwNDExMCk7CisJd3JpdGVsKDB4MTAsIDB4NDNmMDQyMTAp OworCXdyaXRlbCgweDEwLCAweDQzZjA0MzEwKTsKKwl3cml0ZWwoMHgxMCwgMHg0M2YwNDQxMCk7 CisJLyogTUdQQ1IgLSByZXN0b3JlIGRlZmF1bHQgdmFsdWVzICovCisJd3JpdGVsKDB4MCwgMHg0 M2YwNDgwMCk7CisJd3JpdGVsKDB4MCwgMHg0M2YwNDkwMCk7CisJd3JpdGVsKDB4MCwgMHg0M2Yw NGEwMCk7CisJd3JpdGVsKDB4MCwgMHg0M2YwNGIwMCk7CisJd3JpdGVsKDB4MCwgMHg0M2YwNGMw MCk7CisKKwkvKiBDb25maWd1cmUgTTNJRiByZWdpc3RlcnMKKwkgKiBNM0lGIENvbnRyb2wgUmVn aXN0ZXIgKE0zSUZDVEwpIGZvciBNWDI1CisJICogTVJSUFswXSA9IExDREMgICAgICAgICAgIG9u IHByaW9yaXR5IGxpc3QgKDEgPDwgMCkgID0gMHgwMDAwMDAwMQorCSAqIE1SUlBbMV0gPSBNQVgx ICAgICAgIG5vdCBvbiBwcmlvcml0eSBsaXN0ICgwIDw8IDEpICA9IDB4MDAwMDAwMDAKKwkgKiBN UlJQWzJdID0gTUFYMCAgICAgICBub3Qgb24gcHJpb3JpdHkgbGlzdCAoMCA8PCAyKSAgPSAweDAw MDAwMDAwCisJICogTVJSUFszXSA9IFVTQiBIT1NUICAgbm90IG9uIHByaW9yaXR5IGxpc3QgKDAg PDwgMykgID0gMHgwMDAwMDAwMAorCSAqIE1SUlBbNF0gPSBTRE1BICAgICAgIG5vdCBvbiBwcmlv cml0eSBsaXN0ICgwIDw8IDQpICA9IDB4MDAwMDAwMDAKKwkgKiBNUlJQWzVdID0gU0QvQVRBL0ZF QyBub3Qgb24gcHJpb3JpdHkgbGlzdCAoMCA8PCA1KSAgPSAweDAwMDAwMDAwCisJICogTVJSUFs2 XSA9IFNDTUZCQyAgICAgbm90IG9uIHByaW9yaXR5IGxpc3QgKDAgPDwgNikgID0gMHgwMDAwMDAw MAorCSAqIE1SUlBbN10gPSBDU0kgICAgICAgIG5vdCBvbiBwcmlvcml0eSBsaXN0ICgwIDw8IDcp ICA9IDB4MDAwMDAwMDAKKwkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tCisJICogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQorCSAqLworCXdyaXRlbCgw eDEsIDB4YjgwMDMwMDApOworCisJLyogZW5hYmxlIGFsbCB0aGUgY2xvY2tzICovCisJd3JpdGVs KDB4MDM4QTgxQTIsIElNWF9DQ01fQkFTRSArIE1YMjVfQ0NNX0NHUjApOworCXdyaXRlbCgweDI0 Nzg4RjAwLCBJTVhfQ0NNX0JBU0UgKyBNWDI1X0NDTV9DR1IxKTsKKwl3cml0ZWwoMHgwMDAwNDQz OCwgSU1YX0NDTV9CQVNFICsgTVgyNV9DQ01fQ0dSMik7CisJd3JpdGVsKDB4MDAsIElNWF9DQ01f QkFTRSArIE1YMjVfQ0NNX01DUik7CisKKyNpZmRlZiBDT05GSUdfTkFORF9JTVhfQk9PVAorCS8q IHNraXAgTkFORCBib290IGlmIG5vdCBydW5uaW5nIGZyb20gTkZDIHNwYWNlICovCisJciA9IGdl dF9wYygpOworCWlmIChyIDwgSU1YX05GQ19CQVNFIHx8IHIgPiBJTVhfTkZDX0JBU0UgKyAweDEw MDApCisJCWJvYXJkX2luaXRfbG93bGV2ZWxfcmV0dXJuKCk7CisKKwlzcmMgPSAodW5zaWduZWQg aW50ICopSU1YX05GQ19CQVNFOworCXRyZyA9ICh1bnNpZ25lZCBpbnQgKilURVhUX0JBU0U7CisK KwkvKiBNb3ZlIG91cnNlbHZlcyBvdXQgb2YgTkZDIFNSQU0gKi8KKwlmb3IgKGkgPSAwOyBpIDwg MHgxMDAwIC8gc2l6ZW9mKGludCk7IGkrKykKKwkJKnRyZysrID0gKnNyYysrOworCisJLyogSnVt cCB0byBTRFJBTSAqLworCXIgPSAodW5zaWduZWQgaW50KSZpbnNkcmFtOworCV9fYXNtX18gX192 b2xhdGlsZV9fKCJtb3YgcGMsICUwIiA6IDogInIiKHIpKTsKKyNlbHNlCisJYm9hcmRfaW5pdF9s b3dsZXZlbF9yZXR1cm4oKTsKKyNlbmRpZgorfQotLSAKMS42LjMuMwoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmJhcmVib3ggbWFpbGluZyBsaXN0CmJh cmVib3hAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2JhcmVib3gK