From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from smtp16.mail.ru ([94.100.176.153]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1Sf41y-0003px-AT for barebox@lists.infradead.org; Thu, 14 Jun 2012 06:59:50 +0000 From: Alexander Shiyan Date: Thu, 14 Jun 2012 10:59:38 +0400 Message-Id: <1339657178-24652-2-git-send-email-shc_work@mail.ru> In-Reply-To: <1339657178-24652-1-git-send-email-shc_work@mail.ru> References: <1339657178-24652-1-git-send-email-shc_work@mail.ru> 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 2/2] =?UTF-8?q?ARM:=20initial=20ConnectCore=C2=AE=20i.MX51=20board=20support?= To: barebox@lists.infradead.org VGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIENvbm5lY3RDb3Jlwq4gaS5NWDUxIGJvYXJkIGZy b20gRGlnaSBJbnRlcm5hdGlvbmFsLgpBIHNlcGFyYXRlIG9wdGlvbiBpbmNsdWRlcyBzdXBwb3J0 IGZvciBkZWJ1Z2dpbmcgYm9hcmQgZm9yIHRoaXMgbW9kdWxlLgpTb21lIGNvZGUgdGFrZW4gZnJv bSB0aGUgYm9vdGxvYWRlciBVLUJvb3QgYW5kIHBhdGNoIGZyb20gRGlnaS4KRnVuY3Rpb25hbCBv ZiBFdGhlcm5ldCBub3QgdGVzdGVkIHlldC4KCmJhcmVib3ggMjAxMi4wNS4wLTAwMzE2LWc0MDI0 ZDljLWRpcnR5ICMwIFdlZCBKdW4gNiAxMzowODoyNSBNU0sgMjAxMgoKQm9hcmQ6IENvbm5lY3RD b3JlIGkuTVg1MQpNb2R1bGUgVmFyaWFudDogaS5NWDUxNUA2MDBNSHosIFBIWSwgQWNjZWxlcm9t dGVyICgweDBiKQpNb2R1bGUgSFcgUmV2IDogMDIKTW9kdWxlIFNlcmlhbCA6IEIxMTExNTY3ODkK bWMxM3h4eC1zcGlAbWMxM3h4eC1zcGkwOiBGb3VuZCBNQzEzODkyIElEOiAweDAwNDVkMCBbUmV2 OiAyLjBhXQpOQU5EIGRldmljZTogTWFudWZhY3R1cmVyIElEOiAweDJjLCBDaGlwIElEOiAweGRh IChNaWNyb24gTkFORCAyNTZNaUIgMywzViA4LWJpdCkKQmFkIGJsb2NrIHRhYmxlIGZvdW5kIGF0 IHBhZ2UgMTMxMDA4LCB2ZXJzaW9uIDB4MDEKQmFkIGJsb2NrIHRhYmxlIGZvdW5kIGF0IHBhZ2Ug MTMwOTQ0LCB2ZXJzaW9uIDB4MDEKbmFuZF9yZWFkX2JidDogQmFkIGJsb2NrIGF0IDB4MDBjZTAw MDAKbmFuZF9yZWFkX2JidDogQmFkIGJsb2NrIGF0IDB4MDViYzAwMDAKbmFuZF9yZWFkX2JidDog QmFkIGJsb2NrIGF0IDB4MGJjNDAwMDAKZWhjaUBlaGNpMDogVVNCIEVIQ0kgMS4wMApkZXRlY3Rl ZCBpLk1YNTEgcmV2IDMuMAppbXgtZXNkaGNAbWNpMDogcmVnaXN0ZXJlZCBhcyBtY2kwCmlteC1l c2RoY0BtY2kxOiByZWdpc3RlcmVkIGFzIG1jaTEKTWFsbG9jIHNwYWNlOiAweDk1ZjAwMDAwIC0+ IDB4OTdlZmZmZmYgKHNpemUgMzIgTUIpClN0YWNrIHNwYWNlIDogMHg5NWVmODAwMCAtPiAweDk1 ZjAwMDAwIChzaXplIDMyIGtCKQplbnZmczogd3JvbmcgbWFnaWMgb24gL2Rldi9lbnYwCm5vIHZh bGlkIGVudmlyb25tZW50IGZvdW5kIG9uIC9kZXYvZW52MC4gVXNpbmcgZGVmYXVsdCBlbnZpcm9u bWVudApydW5uaW5nIC9lbnYvYmluL2luaXQuLi4KCkhpdCBhbnkga2V5IHRvIHN0b3AgYXV0b2Jv b3Q6IDMKYmFyZWJveEBDb25uZWN0Q29yZSBpLk1YNTE6LwoKU2lnbmVkLW9mZi1ieTogQWxleGFu ZGVyIFNoaXlhbiA8c2hjX3dvcmtAbWFpbC5ydT4KLS0tCiBhcmNoL2FybS9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgICAgICB8ICAgIDEgKwogYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvTWFrZWZp bGUgICAgICAgfCAgICAyICsKIGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2NjeG14NTEuYyAgICAg IHwgIDQ4OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogYXJjaC9hcm0vYm9hcmRz L2NjeG14NTEvY2N4bXg1MS5kb3ggICAgfCAgICA3ICsKIGFyY2gvYXJtL2JvYXJkcy9jY3hteDUx L2NjeG14NTEuaCAgICAgIHwgICAzNSArKysKIGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2NjeG14 NTFqcy5jICAgIHwgICA5MCArKysrKysKIGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2NvbmZpZy5o ICAgICAgIHwgICAyNCArKwogYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvZW52L2NvbmZpZyAgICAg fCAgIDM3ICsrKwogYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvZmxhc2hfaGVhZGVyLmMgfCAgIDg0 ICsrKysrKwogYXJjaC9hcm0vY29uZmlncy9jY214NTFfZGVmY29uZmlnICAgICAgfCAgIDU1ICsr KysKIGFyY2gvYXJtL21hY2gtaW14L0tjb25maWcgICAgICAgICAgICAgIHwgICAxOSArKwogMTEg ZmlsZXMgY2hhbmdlZCwgODQzIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVhdGUg bW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvTWFrZWZpbGUKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBhcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxLmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBhcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxLmRveAogY3JlYXRlIG1vZGUgMTAw NjQ0IGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2NjeG14NTEuaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2NjeG14NTFqcy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQg YXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY29uZmlnLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNo L2FybS9ib2FyZHMvY2N4bXg1MS9lbnYvY29uZmlnCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9h cm0vYm9hcmRzL2NjeG14NTEvZmxhc2hfaGVhZGVyLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNo L2FybS9jb25maWdzL2NjbXg1MV9kZWZjb25maWcKCmRpZmYgLS1naXQgYS9hcmNoL2FybS9NYWtl ZmlsZSBiL2FyY2gvYXJtL01ha2VmaWxlCmluZGV4IGJkNjg0ZGMuLjEyMjVkZjcgMTAwNjQ0Ci0t LSBhL2FyY2gvYXJtL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL01ha2VmaWxlCkBAIC0xMzYsNiAr MTM2LDcgQEAgYm9hcmQtJChDT05GSUdfTUFDSF9UUU1BNTMpCQkJOj0gdHFtYTUzCiBib2FyZC0k KENPTkZJR19NQUNIX1RYNTEpCQkJOj0ga2Fyby10eDUxCiBib2FyZC0kKENPTkZJR19NQUNIX01Y NlFfQVJNMikJCQk6PSBmcmVlc2NhbGUtbXg2LWFybTIKIGJvYXJkLSQoQ09ORklHX01BQ0hfVE9T SElCQV9BQzEwMCkJCTo9IHRvc2hpYmEtYWMxMDAKK2JvYXJkLSQoQ09ORklHX01BQ0hfQ0NNWDUx KQkJCTo9IGNjeG14NTEKIAogbWFjaGRpcnMgOj0gJChwYXRzdWJzdCAlLGFyY2gvYXJtL21hY2gt JS8sJChtYWNoaW5lLXkpKQogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9N YWtlZmlsZSBiL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0OTkyN2UKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2Fy bS9ib2FyZHMvY2N4bXg1MS9NYWtlZmlsZQpAQCAtMCwwICsxLDIgQEAKK29iai15CQkJCQkrPSBm bGFzaF9oZWFkZXIubyBjY3hteDUxLm8KK29iai0kKENPTkZJR19NQUNIX0NDTVg1MV9CQVNFQk9B UkQpCSs9IGNjeG14NTFqcy5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9j Y3hteDUxLmMgYi9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ5NDE3NAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gv YXJtL2JvYXJkcy9jY3hteDUxL2NjeG14NTEuYwpAQCAtMCwwICsxLDQ4OSBAQAorLyoKKyAqIChD KSBDb3B5cmlnaHQgMjAwOS0yMDEwIERpZ2kgSW50ZXJuYXRpb25hbCwgSW5jLgorICogQ29weXJp Z2h0IChDKSAyMDA3IFNhc2NoYSBIYXVlciwgUGVuZ3V0cm9uaXgKKyAqIChjKSAyMDExIEV1a3Jl YSBFbGVjdHJvbWF0aXF1ZSwgRXJpYyBCw6luYXJkIDxlcmljQGV1a3JlYS5jb20+CisgKgorICog VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0 aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBT dWl0ZSAzMzAsIEJvc3RvbiwKKyAqIE1BIDAyMTExLTEzMDcgVVNBCisgKi8KKworI2luY2x1ZGUg PGNvbW1vbi5oPgorI2luY2x1ZGUgPG5ldC5oPgorI2luY2x1ZGUgPGluaXQuaD4KKyNpbmNsdWRl IDxlbnZpcm9ubWVudC5oPgorI2luY2x1ZGUgPG1hY2gvaW14LXJlZ3MuaD4KKyNpbmNsdWRlIDxm ZWMuaD4KKyNpbmNsdWRlIDxtYWNoL2dwaW8uaD4KKyNpbmNsdWRlIDxhc20vYXJtbGludXguaD4K KyNpbmNsdWRlIDxnZW5lcmF0ZWQvbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPHBhcnRpdGlvbi5o PgorI2luY2x1ZGUgPGZzLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzaXplcy5o PgorI2luY2x1ZGUgPG5hbmQuaD4KKyNpbmNsdWRlIDxub3RpZmllci5oPgorI2luY2x1ZGUgPHNw aS9zcGkuaD4KKyNpbmNsdWRlIDxtZmQvbWMxM3h4eC5oPgorI2luY2x1ZGUgPGFzbS9pby5oPgor I2luY2x1ZGUgPG1hY2gvaW14LW5hbmQuaD4KKyNpbmNsdWRlIDxtYWNoL3NwaS5oPgorI2luY2x1 ZGUgPG1hY2gvZ2VuZXJpYy5oPgorI2luY2x1ZGUgPG1hY2gvaW9tdXgtbXg1MS5oPgorI2luY2x1 ZGUgPG1hY2gvZGV2aWNlcy1pbXg1MS5oPgorI2luY2x1ZGUgPG1hY2gvaWltLmg+CisjaW5jbHVk ZSA8bWFjaC9jbG9jay1pbXg1MV81My5oPgorI2luY2x1ZGUgPG1hY2gvaW14NS5oPgorCisjaW5j bHVkZSAiY2N4bXg1MS5oIgorCitzdGF0aWMgc3RydWN0IGNjeG14NTFfaWRlbnQgY2N4bXg1MV9p ZHNbXSA9IHsKKy8qIDB4MDAgKi8JeyAiVW5rbm93biIsCQkJCQkJMCwgICAgICAgMCwgMCwgMCwg MCB9LAorLyogMHgwMSAqLwl7ICJOb3Qgc3VwcG9ydGVkIiwJCQkJCTAsICAgICAgIDAsIDAsIDAs IDAgfSwKKy8qIDB4MDIgKi8JeyAiaS5NWDUxNUA4MDBNSHosIFdpcmVsZXNzLCBQSFksIEV4dC4g RXRoLCBBY2NlbCIsCVNaXzUxMk0sIDAsIDEsIDEsIDEgfSwKKy8qIDB4MDMgKi8JeyAiaS5NWDUx NUA4MDBNSHosIFBIWSwgRXh0LiBFdGgsIEFjY2VsIiwJCVNaXzUxMk0sIDAsIDEsIDEsIDAgfSwK Ky8qIDB4MDQgKi8JeyAiaS5NWDUxNUA2MDBNSHosIFdpcmVsZXNzLCBQSFksIEV4dC4gRXRoLCBB Y2NlbCIsCVNaXzUxMk0sIDEsIDEsIDEsIDEgfSwKKy8qIDB4MDUgKi8JeyAiaS5NWDUxNUA2MDBN SHosIFBIWSwgRXh0LiBFdGgsIEFjY2VsIiwJCVNaXzUxMk0sIDEsIDEsIDEsIDAgfSwKKy8qIDB4 MDYgKi8JeyAiaS5NWDUxNUA4MDBNSHosIFdpcmVsZXNzLCBQSFksIEFjY2VsIiwJCVNaXzUxMk0s IDAsIDEsIDAsIDEgfSwKKy8qIDB4MDcgKi8JeyAiaS5NWDUxNUA4MDBNSHosIFBIWSwgQWNjZWwi LAkJCQlTWl81MTJNLCAwLCAxLCAwLCAwIH0sCisvKiAweDA4ICovCXsgImkuTVg1MTVAODAwTUh6 LCBXaXJlbGVzcywgUEhZLCBBY2NlbCIsCQlTWl8yNTZNLCAwLCAxLCAwLCAxIH0sCisvKiAweDA5 ICovCXsgImkuTVg1MTVAODAwTUh6LCBQSFksIEFjY2VsIiwJCQkJU1pfMjU2TSwgMCwgMSwgMCwg MCB9LAorLyogMHgwYSAqLwl7ICJpLk1YNTE1QDYwME1IeiwgV2lyZWxlc3MsIFBIWSwgQWNjZWwi LAkJU1pfMjU2TSwgMSwgMSwgMCwgMSB9LAorLyogMHgwYiAqLwl7ICJpLk1YNTE1QDYwME1Ieiwg UEhZLCBBY2NlbCIsCQkJCVNaXzI1Nk0sIDEsIDEsIDAsIDAgfSwKKy8qIDB4MGMgKi8JeyAiaS5N WDUxNUA4MDBNSHosIFdpcmVsZXNzLCBQSFksIEFjY2VsIiwJCVNaXzEyOE0sIDAsIDEsIDAsIDEg fSwKKy8qIDB4MGQgKi8JeyAiaS5NWDUxMkA4MDBNSHoiLAkJCQkJU1pfMTI4TSwgMCwgMCwgMCwg MCB9LAorLyogMHgwZSAqLwl7ICJpLk1YNTE1QDgwME1IeiwgV2lyZWxlc3MsIFBIWSwgQWNjZWwi LAkJU1pfNTEyTSwgMCwgMSwgMCwgMSB9LAorLyogMHgwZiAqLwl7ICJpLk1YNTE1QDYwME1Ieiwg UEhZLCBBY2NlbCIsCQkJCVNaXzEyOE0sIDEsIDEsIDAsIDAgfSwKKy8qIDB4MTAgKi8JeyAiaS5N WDUxNUA2MDBNSHosIFdpcmVsZXNzLCBQSFksIEFjY2VsIiwJCVNaXzEyOE0sIDEsIDEsIDAsIDEg fSwKKy8qIDB4MTEgKi8JeyAiaS5NWDUxNUA4MDBNSHosIFBIWSwgQWNjZWwiLAkJCQlTWl8xMjhN LCAwLCAxLCAwLCAwIH0sCisvKiAweDEyICovCXsgImkuTVg1MTVANjAwTUh6LCBXaXJlbGVzcywg UEhZLCBBY2NlbCIsCQlTWl81MTJNLCAxLCAxLCAwLCAxIH0sCisvKiAweDEzICovCXsgImkuTVg1 MTVAODAwTUh6LCBQSFksIEFjY2VsIiwJCQkJU1pfNTEyTSwgMCwgMSwgMCwgMCB9LAorfTsKKwor c3RydWN0IGNjeG14NTFfaWRlbnQgKmNjeG14NTFfaWQ7CisKK3N0cnVjdCBpbXhfbmFuZF9wbGF0 Zm9ybV9kYXRhIG5hbmRfaW5mbyA9IHsKKwkud2lkdGgJCT0gMSwKKwkuaHdfZWNjCQk9IDEsCisJ LmZsYXNoX2JidAk9IDEsCit9OworCisjaWZkZWYgQ09ORklHX0RSSVZFUl9ORVRfRkVDX0lNWAor c3RhdGljIHN0cnVjdCBmZWNfcGxhdGZvcm1fZGF0YSBmZWNfaW5mbyA9IHsKKwkueGN2X3R5cGUJ PSBNSUkxMDAsCisJLnBoeV9hZGRyCT0gNywKK307CisjZW5kaWYKKworc3RhdGljIGlvbXV4X3Yz X2NmZ190IGNjeG14NTFfcGFkc1tdID0geworCS8qIFVBUlQxICovCisJTVg1MV9QQURfVUFSVDFf UlhEX19VQVJUMV9SWEQsCisJTVg1MV9QQURfVUFSVDFfVFhEX19VQVJUMV9UWEQsCisJLyogVUFS VDIgKi8KKwlNWDUxX1BBRF9VQVJUMl9SWERfX1VBUlQyX1JYRCwKKwlNWDUxX1BBRF9VQVJUMl9U WERfX1VBUlQyX1RYRCwKKwkvKiBVQVJUMyAqLworCU1YNTFfUEFEX1VBUlQzX1JYRF9fVUFSVDNf UlhELAorCU1YNTFfUEFEX1VBUlQzX1RYRF9fVUFSVDNfVFhELAorCS8qIEkyQzIgKi8KKwlNWDUx X1BBRF9HUElPMV8yX19JMkMyX1NDTCwKKwlNWDUxX1BBRF9HUElPMV8zX19JMkMyX1NEQSwKKwkv KiBlQ1NQSTEgKi8KKwlNWDUxX1BBRF9DU1BJMV9NT1NJX19FQ1NQSTFfTU9TSSwKKwlNWDUxX1BB RF9DU1BJMV9NSVNPX19FQ1NQSTFfTUlTTywKKwlNWDUxX1BBRF9DU1BJMV9TQ0xLX19FQ1NQSTFf U0NMSywKKwlNWDUxX1BBRF9DU1BJMV9SRFlfX0VDU1BJMV9SRFksCisJTVg1MV9QQURfQ1NQSTFf U1MwX19FQ1NQSTFfU1MwLAorCU1YNTFfUEFEX0NTUEkxX1NTMV9fRUNTUEkxX1NTMSwKKwkvKiBG RUMgKi8KKwlNWDUxX1BBRF9ESVNQMl9EQVQxNF9fRkVDX1JEQVRBMCwKKwlNWDUxX1BBRF9ESTJf RElTUF9DTEtfX0ZFQ19SREFUQTEsCisJTVg1MV9QQURfRElfR1A0X19GRUNfUkRBVEEyLAorCU1Y NTFfUEFEX0RJU1AyX0RBVDBfX0ZFQ19SREFUQTMsCisJTVg1MV9QQURfRElTUDJfREFUMTVfX0ZF Q19UREFUQTAsCisJTVg1MV9QQURfRElTUDJfREFUNl9fRkVDX1REQVRBMSwKKwlNWDUxX1BBRF9E SVNQMl9EQVQ3X19GRUNfVERBVEEyLAorCU1YNTFfUEFEX0RJU1AyX0RBVDhfX0ZFQ19UREFUQTMs CisJTVg1MV9QQURfRElTUDJfREFUOV9fRkVDX1RYX0VOLAorCU1YNTFfUEFEX0RJU1AyX0RBVDEw X19GRUNfQ09MLAorCU1YNTFfUEFEX0RJU1AyX0RBVDExX19GRUNfUlhfQ0xLLAorCU1YNTFfUEFE X0RJU1AyX0RBVDEyX19GRUNfUlhfRFYsCisJTVg1MV9QQURfRElTUDJfREFUMTNfX0ZFQ19UWF9D TEssCisJTVg1MV9QQURfREkyX1BJTjJfX0ZFQ19NREMsCisJTVg1MV9QQURfREkyX1BJTjRfX0ZF Q19DUlMsCisJTVg1MV9QQURfREkyX1BJTjNfX0ZFQ19NRElPLAorCU1YNTFfUEFEX0RJX0dQM19f RkVDX1RYX0VSLAorCU1YNTFfUEFEX0RJU1AyX0RBVDFfX0ZFQ19SWF9FUiwKKwkvKiBXRUlNICov CisJTVg1MV9QQURfRUlNX0RBMF9fRUlNX0RBMCwKKwlNWDUxX1BBRF9FSU1fREExX19FSU1fREEx LAorCU1YNTFfUEFEX0VJTV9EQTJfX0VJTV9EQTIsCisJTVg1MV9QQURfRUlNX0RBM19fRUlNX0RB MywKKwlNWDUxX1BBRF9FSU1fREE0X19FSU1fREE0LAorCU1YNTFfUEFEX0VJTV9EQTVfX0VJTV9E QTUsCisJTVg1MV9QQURfRUlNX0RBNl9fRUlNX0RBNiwKKwlNWDUxX1BBRF9FSU1fREE3X19FSU1f REE3LAorCU1YNTFfUEFEX0VJTV9EMTZfX0VJTV9EMTYsCisJTVg1MV9QQURfRUlNX0QxN19fRUlN X0QxNywKKwlNWDUxX1BBRF9FSU1fRDE4X19FSU1fRDE4LAorCU1YNTFfUEFEX0VJTV9EMTlfX0VJ TV9EMTksCisJTVg1MV9QQURfRUlNX0QyMF9fRUlNX0QyMCwKKwlNWDUxX1BBRF9FSU1fRDIxX19F SU1fRDIxLAorCU1YNTFfUEFEX0VJTV9EMjJfX0VJTV9EMjIsCisJTVg1MV9QQURfRUlNX0QyM19f RUlNX0QyMywKKwlNWDUxX1BBRF9FSU1fRDI0X19FSU1fRDI0LAorCU1YNTFfUEFEX0VJTV9EMjVf X0VJTV9EMjUsCisJTVg1MV9QQURfRUlNX0QyNl9fRUlNX0QyNiwKKwlNWDUxX1BBRF9FSU1fRDI3 X19FSU1fRDI3LAorCU1YNTFfUEFEX0VJTV9EMjhfX0VJTV9EMjgsCisJTVg1MV9QQURfRUlNX0Qy OV9fRUlNX0QyOSwKKwlNWDUxX1BBRF9FSU1fRDMwX19FSU1fRDMwLAorCU1YNTFfUEFEX0VJTV9E MzFfX0VJTV9EMzEsCisJTVg1MV9QQURfRUlNX09FX19FSU1fT0UsCisJTVg1MV9QQURfRUlNX0NT NV9fRUlNX0NTNSwKKwkvKiBOQU5EICovCisJTVg1MV9QQURfTkFOREZfRDBfX05BTkRGX0QwLAor CU1YNTFfUEFEX05BTkRGX0QxX19OQU5ERl9EMSwKKwlNWDUxX1BBRF9OQU5ERl9EMl9fTkFOREZf RDIsCisJTVg1MV9QQURfTkFOREZfRDNfX05BTkRGX0QzLAorCU1YNTFfUEFEX05BTkRGX0Q0X19O QU5ERl9ENCwKKwlNWDUxX1BBRF9OQU5ERl9ENV9fTkFOREZfRDUsCisJTVg1MV9QQURfTkFOREZf RDZfX05BTkRGX0Q2LAorCU1YNTFfUEFEX05BTkRGX0Q3X19OQU5ERl9ENywKKwlNWDUxX1BBRF9O QU5ERl9BTEVfX05BTkRGX0FMRSwKKwlNWDUxX1BBRF9OQU5ERl9DTEVfX05BTkRGX0NMRSwKKwlN WDUxX1BBRF9OQU5ERl9SRV9CX19OQU5ERl9SRV9CLAorCU1YNTFfUEFEX05BTkRGX1dFX0JfX05B TkRGX1dFX0IsCisJTVg1MV9QQURfTkFOREZfV1BfQl9fTkFOREZfV1BfQiwKKwlNWDUxX1BBRF9O QU5ERl9DUzBfX05BTkRGX0NTMCwKKwlNWDUxX1BBRF9OQU5ERl9SQjBfX05BTkRGX1JCMCwKKwkv KiBMQU45MjIxIElSUSAoR1BJTzEuOSkgKi8KKwlNWDUxX1BBRF9HUElPMV85X19HUElPMV85LAor CS8qIE1DMTM4OTIgSVJRIChHUElPMS41KSAqLworCU1YNTFfUEFEX0dQSU8xXzVfX0dQSU8xXzUs CisJLyogTU1BNzQ1NUxSIElSUTEgKEdQSU8xLjcpICovCisJTVg1MV9QQURfR1BJTzFfN19fR1BJ TzFfNywKKwkvKiBNTUE3NDU1TFIgSVJRMiAoR1BJTzEuNikgKi8KKwlNWDUxX1BBRF9HUElPMV82 X19HUElPMV82LAorfTsKKworI2RlZmluZSBDQ1hNWDUxX0VDU1BJMV9DUzAJSU1YX0dQSU9fTlIo NCwgMjQpCisjZGVmaW5lIENDWE1YNTFfRUNTUEkxX0NTMQlJTVhfR1BJT19OUig0LCAyNSkKKwor c3RhdGljIGludCBlY3NwaV8wX2NzW10gPSB7IENDWE1YNTFfRUNTUEkxX0NTMCwgQ0NYTVg1MV9F Q1NQSTFfQ1MxLCB9OworCitzdGF0aWMgc3RydWN0IHNwaV9pbXhfbWFzdGVyIGVjc3BpXzBfZGF0 YSA9IHsKKwkuY2hpcHNlbGVjdAk9IGVjc3BpXzBfY3MsCisJLm51bV9jaGlwc2VsZWN0CT0gQVJS QVlfU0laRShlY3NwaV8wX2NzKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX2JvYXJk X2luZm8gY2N4bXg1MV9zcGlfYm9hcmRfaW5mb1tdID0geworCXsKKwkJLm5hbWUJCT0gIm1jMTN4 eHgtc3BpIiwKKwkJLm1heF9zcGVlZF9oegk9IDYwMDAwMDAsCisJCS5idXNfbnVtCT0gMCwKKwkJ LmNoaXBfc2VsZWN0CT0gMCwKKwl9LAorfTsKKworc3RhdGljIGludCBjY3hteDUxX21lbV9pbml0 KHZvaWQpCit7CisJLyogQWRkIG1pbmltYWwgU0RSQU0gZmlyc3QgKi8KKwlhcm1fYWRkX21lbV9k ZXZpY2UoInJhbTAiLCBNWDUxX0NTRDBfQkFTRV9BRERSLCBTWl8xMjhNKTsKKworCXJldHVybiAw OworfQorbWVtX2luaXRjYWxsKGNjeG14NTFfbWVtX2luaXQpOworCitzdGF0aWMgdm9pZCBjY3ht eDUxX290Z2hvc3RfaW5pdCh2b2lkKQoreworI2RlZmluZSBNWDUxX1VTQk9USEVSX1JFR1NfT0ZG U0VUCQkweDgwMAorI2RlZmluZSBNWDUxX1VTQkNUUkxfT0ZGU0VUCQkJMHgwCisjZGVmaW5lIE1Y NTFfVVNCX1BIWV9DVFJfRlVOQ19PRkZTRVQJCTB4OAorI2RlZmluZSBNWDUxX1VTQl9QSFlfQ1RS X0ZVTkMyX09GRlNFVAkJMHhjCisjZGVmaW5lIE1YNTFfVVNCX1VUTUlfUEhZQ1RSTDFfUExMRElW X01BU0sJMHgzCisjZGVmaW5lIE1YNTFfVVNCX1BMTF9ESVZfMTlfMl9NSFoJCTB4MDAKKyNkZWZp bmUgTVg1MV9VU0JfUExMX0RJVl8yNF9NSFoJCQkweDAxCisjZGVmaW5lIE1YNTFfVVNCX1BMTF9E SVZfMjZfTUhaCQkJMHgwMgorI2RlZmluZSBNWDUxX1VTQl9QTExfRElWXzI3X01IWgkJCTB4MDMK KyNkZWZpbmUgTVg1MV9PVEdfUEhZQ1RSTF9PQ19ESVNfQklUCQkoMSA8PCA4KQorI2RlZmluZSBN WDUxX09UR19VQ1RSTF9PV0lFX0JJVAkJCSgxIDw8IDI3KQorI2RlZmluZSBNWDUxX09UR19VQ1RS TF9PUE1fQklUCQkJKDEgPDwgMjQpCisKKyNkZWZpbmUgVVNCT1RIRVJfQkFTRQkJCQkoTVg1MV9P VEdfQkFTRV9BRERSICsgTVg1MV9VU0JPVEhFUl9SRUdTX09GRlNFVCkKKworCXUzMiByZWc7CisK KwkvKiBTZXQgc3lzY2xvY2sgdG8gMjQgTUh6ICovCisJcmVnID0gcmVhZGwoVVNCT1RIRVJfQkFT RSArIE1YNTFfVVNCX1BIWV9DVFJfRlVOQzJfT0ZGU0VUKTsKKwlyZWcgJj0gfk1YNTFfVVNCX1VU TUlfUEhZQ1RSTDFfUExMRElWX01BU0s7CisJcmVnIHw9IE1YNTFfVVNCX1BMTF9ESVZfMjRfTUha OworCXdyaXRlbChyZWcsIFVTQk9USEVSX0JBU0UgKyBNWDUxX1VTQl9QSFlfQ1RSX0ZVTkMyX09G RlNFVCk7CisKKwkvKiBPQyBpcyBub3QgdXNlZCAqLworCXJlZyA9IHJlYWRsKFVTQk9USEVSX0JB U0UgKyBNWDUxX1VTQl9QSFlfQ1RSX0ZVTkNfT0ZGU0VUKTsKKwlyZWcgfD0gTVg1MV9PVEdfUEhZ Q1RSTF9PQ19ESVNfQklUOworCXdyaXRlbChyZWcsIFVTQk9USEVSX0JBU0UgKyBNWDUxX1VTQl9Q SFlfQ1RSX0ZVTkNfT0ZGU0VUKTsKKworCS8qIFBvd2VyIHBpbnMgZW5hYmxlICovCisJcmVnID0g cmVhZGwoVVNCT1RIRVJfQkFTRSArIE1YNTFfVVNCQ1RSTF9PRkZTRVQpOworCXJlZyB8PSBNWDUx X09UR19VQ1RSTF9PV0lFX0JJVCB8IE1YNTFfT1RHX1VDVFJMX09QTV9CSVQ7CisJd3JpdGVsKHJl ZywgVVNCT1RIRVJfQkFTRSArIE1YNTFfVVNCQ1RSTF9PRkZTRVQpOworCisJLyogU2V0dXAgUE9S VFNDICovCisJcmVnID0gcmVhZGwoTVg1MV9PVEdfQkFTRV9BRERSICsgMHgxODQpOworCXJlZyAm PSB+KDMgPDwgMzApOworCXJlZyB8PSAxIDw8IDI4OworCXdyaXRlbChyZWcsIE1YNTFfT1RHX0JB U0VfQUREUiArIDB4MTg0KTsKKworCW1kZWxheSgxMCk7CisKKwlhZGRfZ2VuZXJpY191c2JfZWhj aV9kZXZpY2UoMCwgTVg1MV9PVEdfQkFTRV9BRERSLCBOVUxMKTsKK30KKworc3RhdGljIGludCBj Y3hteDUxX3Bvd2VyX2luaXQodm9pZCkKK3sKKwlzdHJ1Y3QgbWMxM3h4eCAqbWMxM3h4eF9kZXY7 CisJdTMyIHZhbDsKKworCW1jMTN4eHhfZGV2ID0gbWMxM3h4eF9nZXQoKTsKKwlpZiAoIW1jMTN4 eHhfZGV2KQorCQlyZXR1cm4gLUVOT0RFVjsKKworCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eF9k ZXYsIE1DMTM4OTJfUkVHX1BPV0VSX01JU0MsICZ2YWwpOworCS8qIFJlc2V0IGRldmljZXMgYnkg Y2xlYXJpbmcgR1AwMS1HUE80ICovCisJdmFsICY9IH4oKDEgPDwgMjEpIHwgKDMgPDwgMTIpIHwg KDMgPDwgMTApIHwgKDMgPDwgOCkgfCAoMyA8PCA2KSk7CisJLyogU3dpdGNoaW5nIG9mZiB0aGUg UFdHVDFTUElFTiAqLworCXZhbCB8PSAoMSA8PCAxNSk7CisJLyogU3dpdGNoaW5nIG9uIHRoZSBQ V0dUMlNQSUVOICovCisJdmFsICY9IH4oMSA8PCAxNik7CisJLyogRW5hYmxlIHNob3J0IGNpcmN1 aXQgcHJvdGVjdGlvbiAqLworCXZhbCB8PSAoMSA8PCAwKTsKKwltYzEzeHh4X3JlZ193cml0ZSht YzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfUE9XRVJfTUlTQywgdmFsKTsKKworCS8qIEFsbG93IGNo YXJnZXIgdG8gY2hhcmdlICg0LjJWIGFuZCA1NjBtQSkgKi8KKwl2YWwgPSAweDIzODAzMzsKKwlt YzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfQ0hBUkdFLCB2YWwpOwor CisJLyogU2V0IGNvcmUgdm9sdGFnZSAoU1cxKSB0byAxLjFWICovCisJbWMxM3h4eF9yZWdfcmVh ZChtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfU1dfMCwgJnZhbCk7CisJdmFsICY9IH4weDAwMDAx ZjsKKwl2YWwgfD0gIDB4MDAwMDE0OworCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhfZGV2LCBN QzEzODkyX1JFR19TV18wLCB2YWwpOworCisJaWYgKGlteF9zaWxpY29uX3JldmlzaW9uKCkgPCBJ TVhfQ0hJUF9SRVZfM18wKSB7CisJCS8qIFNldHVwIFZDQyAoU1cyKSB0byAxLjI1ICovCisJCW1j MTN4eHhfcmVnX3JlYWQobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1NXXzEsICZ2YWwpOworCQl2 YWwgJj0gfjB4MDAwMDFmOworCQl2YWwgfD0gIDB4MDAwMDFhOworCQltYzEzeHh4X3JlZ193cml0 ZShtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfU1dfMSwgdmFsKTsKKworCQkvKiBTZXR1cCAxVjJf RElHMSAoU1czKSB0byAxLjI1ICovCisJCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eF9kZXYsIE1D MTM4OTJfUkVHX1NXXzIsICZ2YWwpOworCQl2YWwgJj0gfjB4MDAwMDFmOworCQl2YWwgfD0gIDB4 MDAwMDFhOworCQltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfU1df MiwgdmFsKTsKKwl9IGVsc2UgeworCQkvKiBTZXR1cCBWQ0MgKFNXMikgdG8gMS4yMjUgKi8KKwkJ bWMxM3h4eF9yZWdfcmVhZChtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfU1dfMSwgJnZhbCk7CisJ CXZhbCAmPSB+MHgwMDAwMWY7CisJCXZhbCB8PSAgMHgwMDAwMTk7CisJCW1jMTN4eHhfcmVnX3dy aXRlKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19TV18xLCB2YWwpOworCisJCS8qIFNldHVwIDFW Ml9ESUcxIChTVzMpIHRvIDEuMiAqLworCQltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCBN QzEzODkyX1JFR19TV18yLCAmdmFsKTsKKwkJdmFsICY9IH4weDAwMDAxZjsKKwkJdmFsIHw9ICAw eDAwMDAxODsKKwkJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1NX XzIsIHZhbCk7CisJfQorCisJaWYgKG1jMTN4eHhfZGV2LT5yZXZpc2lvbiA8PSBNQzEzODkyX1JF VklTSU9OXzJfMCkgeworCQkvKiBTZXQgc3dpdGNoZXJzIGluIFBXTSBtb2RlIGZvciBBdGxhcyAy LjAgYW5kIGxvd2VyICovCisJCS8qIFNldHVwIHRoZSBzd2l0Y2hlciBtb2RlIGZvciBTVzEgJiBT VzIqLworCQltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19TV180LCAm dmFsKTsKKwkJdmFsICY9IH4weDAwM2MwZjsKKwkJdmFsIHw9ICAweDAwMTQwNTsKKwkJbWMxM3h4 eF9yZWdfd3JpdGUobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1NXXzQsIHZhbCk7CisKKwkJLyog U2V0dXAgdGhlIHN3aXRjaGVyIG1vZGUgZm9yIFNXMyAmIFNXNCAqLworCQltYzEzeHh4X3JlZ19y ZWFkKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19TV181LCAmdmFsKTsKKwkJdmFsICY9IH4weDAw MGYwZjsKKwkJdmFsIHw9ICAweDAwMDUwNTsKKwkJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eF9k ZXYsIE1DMTM4OTJfUkVHX1NXXzUsIHZhbCk7CisJfSBlbHNlIHsKKwkJLyogU2V0IHN3aXRjaGVy cyBpbiBBdXRvIGluIE5PUk1BTCBtb2RlICYgU1RBTkRCWSBtb2RlIGZvciBBdGxhcyAyLjBhICov CisJCS8qIFNldHVwIHRoZSBzd2l0Y2hlciBtb2RlIGZvciBTVzEgJiBTVzIqLworCQltYzEzeHh4 X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19TV180LCAmdmFsKTsKKwkJdmFsICY9 IH4weDAwM2MwZjsKKwkJdmFsIHw9ICAweDAwMjAwODsKKwkJbWMxM3h4eF9yZWdfd3JpdGUobWMx M3h4eF9kZXYsIE1DMTM4OTJfUkVHX1NXXzQsIHZhbCk7CisKKwkJLyogU2V0dXAgdGhlIHN3aXRj aGVyIG1vZGUgZm9yIFNXMyAmIFNXNCAqLworCQltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHhfZGV2 LCBNQzEzODkyX1JFR19TV181LCAmdmFsKTsKKwkJdmFsICY9IH4weDAwMGYwZjsKKwkJdmFsIHw9 ICAweDAwMDgwODsKKwkJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVH X1NXXzUsIHZhbCk7CisJfQorCisJLyogU2V0IFZWSURFTyB0byAyLjc3NVYsIFZBVURJTyB0byAz ViwgVlNEIHRvIDMuMTVWICovCisJbWMxM3h4eF9yZWdfcmVhZChtYzEzeHh4X2RldiwgTUMxMzg5 Ml9SRUdfU0VUVElOR18xLCAmdmFsKTsKKwl2YWwgJj0gfjB4MDAwMWZjOworCXZhbCB8PSAgMHgw MDAxZjQ7CisJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eF9kZXYsIE1DMTM4OTJfUkVHX1NFVFRJ TkdfMSwgdmFsKTsKKworCS8qIENvbmZpZ3VyZSBWR0VOMyBhbmQgVkNBTSByZWd1bGF0b3JzIHRv IHVzZSBleHRlcm5hbCBQTlAgKi8KKwl2YWwgPSAweDAwMDIwODsKKwltYzEzeHh4X3JlZ193cml0 ZShtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfTU9ERV8xLCB2YWwpOworCXVkZWxheSgyMDApOwor CisJLyogU2V0IFZHRU4zIHRvIDEuOFYgKi8KKwltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHhfZGV2 LCBNQzEzODkyX1JFR19TRVRUSU5HXzAsICZ2YWwpOworCXZhbCAmPSB+KDEgPDwgMTQpOworCW1j MTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19TRVRUSU5HXzAsIHZhbCk7 CisKKwkvKiBFbmFibGUgVkdFTjMsIFZDQU0sIFZBVURJTywgVlZJREVPLCBWU0QgcmVndWxhdG9y cyAqLworCXZhbCA9IDB4MDQ5MjQ5OworCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhfZGV2LCBN QzEzODkyX1JFR19NT0RFXzEsIHZhbCk7CisKKwkvKiBFbmFibGUgVVNCMSBjaGFyZ2VyICovCisJ dmFsID0gMHgwMDA0MDk7CisJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eF9kZXYsIE1DMTM4OTJf UkVHX1VTQjEsIHZhbCk7CisKKwkvKiBTZXQgVkNPSU4gdG8gMy4wViBhbmQgRW5hYmxlIEl0ICov CisJbWMxM3h4eF9yZWdfcmVhZChtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfUE9XRVJfQ1RMMCwg JnZhbCk7CisJdmFsICY9IH4oNyA8PCAyMCk7CisJdmFsIHw9ICg0IDw8IDIwKSB8ICgxIDw8IDIz KTsKKwltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfUE9XRVJfQ1RM MCwgdmFsKTsKKwkvKiBLZWVwcyBWU1JUQyBhbmQgQ0xLMzJLTUNVICovCisJdmFsIHw9ICgxIDw8 IDQpOworCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhfZGV2LCBNQzEzODkyX1JFR19QT1dFUl9D VEwwLCB2YWwpOworCisJLyogRGUtYXNzZXJ0IHJlc2V0IG9mIGV4dGVybmFsIGRldmljZXMgb24g R1AwMSwgR1BPMiwgR1BPMyBhbmQgR1BPNCAqLworCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eF9k ZXYsIE1DMTM4OTJfUkVHX1BPV0VSX01JU0MsICZ2YWwpOworCS8qIEdQTzEgLSBFeHRlcm5hbCAq LworCS8qIEdQMDIgLSBMQU45MjIxICAqLworCS8qIEdQMDMgLSBGRUMgICAgICAqLworCS8qIEdQ MDQgLSBXaXJlbGVzcyAqLworCWlmIChJU19FTkFCTEVEKENPTkZJR19EUklWRVJfTkVUX1NNQzkx MVgpICYmIGNjeG14NTFfaWQtPmV0aDApCisJCXZhbCB8PSAoMSA8PCA4KTsKKwlpZiAoSVNfRU5B QkxFRChDT05GSUdfRFJJVkVSX05FVF9GRUNfSU1YKSAmJiBjY3hteDUxX2lkLT5ldGgxKQorCQl2 YWwgfD0gKDEgPDwgMTApOworCWlmIChjY3hteDUxX2lkLT53bGVzcykKKwkJdmFsIHw9ICgxIDw8 IDEyKTsKKwltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2RldiwgTUMxMzg5Ml9SRUdfUE9XRVJf TUlTQywgdmFsKTsKKworCXVkZWxheSgxMDApOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBp bnQgY2N4bXg1MV9kZXZpY2VzX2luaXQodm9pZCkKK3sKKwl1OCBod2lkWzZdOworCWludCBwd3I7 CisJY2hhciBtYW5sb2M7CisKKwlpZiAoKGlteF9paW1fcmVhZCgxLCA5LCBod2lkLCBzaXplb2Yo aHdpZCkpICE9IHNpemVvZihod2lkKSkgfHwgKGh3aWRbMF0gPCAweDAyKSB8fCAoaHdpZFswXSA+ PSBBUlJBWV9TSVpFKGNjeG14NTFfaWRzKSkpCisJCW1lbXNldChod2lkLCAweDAwLCBzaXplb2Yo aHdpZCkpOworCisJY2N4bXg1MV9pZCA9ICZjY3hteDUxX2lkc1tod2lkWzBdXTsKKwlwcmludGYo Ik1vZHVsZSBWYXJpYW50OiAlcyAoMHglMDJ4KVxuIiwgY2N4bXg1MV9pZC0+aWRfc3RyaW5nLCBo d2lkWzBdKTsKKworCWlmIChod2lkWzBdKSB7CisJCXByaW50ZigiTW9kdWxlIEhXIFJldiA6ICUw MnhcbiIsIGh3aWRbMV0pOworCQlzd2l0Y2ggKGh3aWRbMl0gJiAweGMwKSB7CisJCWNhc2UgMHgw MDoKKwkJCW1hbmxvYyA9ICdCJzsKKwkJCWJyZWFrOworCQljYXNlIDB4NDA6CisJCQltYW5sb2Mg PSAnVyc7CisJCQlicmVhazsKKwkJY2FzZSAweDgwOgorCQkJbWFubG9jID0gJ1MnOworCQkJYnJl YWs7CisJCWRlZmF1bHQ6CisJCQltYW5sb2MgPSAnTic7CisJCQlicmVhazsKKwkJfQorCQlwcmlu dGYoIk1vZHVsZSBTZXJpYWwgOiAlYyVkXG4iLCBtYW5sb2MsICgoaHdpZFsyXSAmIDB4M2YpIDw8 IDI0KSB8IChod2lkWzNdIDw8IDE2KSB8IChod2lkWzRdIDw8IDgpIHwgaHdpZFs1XSk7CisJCWlm ICgoY2N4bXg1MV9pZC0+bWVtX3N6IC0gU1pfMTI4TSkgPiAwKQorCQkJYXJtX2FkZF9tZW1fZGV2 aWNlKCJyYW0xIiwgTVg1MV9DU0QwX0JBU0VfQUREUiArIFNaXzEyOE0sIGNjeG14NTFfaWQtPm1l bV9zeiAtIFNaXzEyOE0pOworCX0KKworCWlteDUxX2FkZF91YXJ0MSgpOworCWlteDUxX2FkZF91 YXJ0MigpOworCisJc3BpX3JlZ2lzdGVyX2JvYXJkX2luZm8oY2N4bXg1MV9zcGlfYm9hcmRfaW5m bywgQVJSQVlfU0laRShjY3hteDUxX3NwaV9ib2FyZF9pbmZvKSk7CisJaW14NTFfYWRkX3NwaTAo JmVjc3BpXzBfZGF0YSk7CisKKwlwd3IgPSBjY3hteDUxX3Bvd2VyX2luaXQoKTsKKwljb25zb2xl X2ZsdXNoKCk7CisJaW14NTFfaW5pdF9sb3dsZXZlbCgoY2N4bXg1MV9pZC0+aW5kdXN0cmlhbCB8 fCBwd3IpID8gNjAwIDogODAwKTsKKwljbG9ja19ub3RpZmllcl9jYWxsX2NoYWluKCk7CisJaWYg KHB3cikKKwkJcHJpbnRmKCJDb3VsZCBub3Qgc2V0dXAgUE1JQy4gQ2xvY2tzIG5vdCBhZGp1c3Rl ZC5cbiIpOworCisJaW14NTFfYWRkX2kyYzEoTlVMTCk7CisKKwlpbXg1MV9hZGRfbmFuZCgmbmFu ZF9pbmZvKTsKKwlkZXZmc19hZGRfcGFydGl0aW9uKCJuYW5kMCIsIDB4MDAwMDAsIDB4ODAwMDAs IERFVkZTX1BBUlRJVElPTl9GSVhFRCwgInNlbGZfcmF3Iik7CisJZGV2X2FkZF9iYl9kZXYoInNl bGZfcmF3IiwgInNlbGYwIik7CisJZGV2ZnNfYWRkX3BhcnRpdGlvbigibmFuZDAiLCAweDgwMDAw LCAweDQwMDAwLCBERVZGU19QQVJUSVRJT05fRklYRUQsICJlbnZfcmF3Iik7CisJZGV2X2FkZF9i Yl9kZXYoImVudl9yYXciLCAiZW52MCIpOworCisjaWZkZWYgQ09ORklHX0RSSVZFUl9ORVRfRkVD X0lNWAorCWlmIChjY3hteDUxX2lkLT5ldGgwICYmICFwd3IpIHsKKwkJaW14NTFfYWRkX2ZlYygm ZmVjX2luZm8pOworCQlldGhfcmVnaXN0ZXJfZXRoYWRkcigwLCBod2lkKTsKKwl9CisjZW5kaWYK KworI2lmZGVmIENPTkZJR19EUklWRVJfTkVUX1NNQzkxMVgKKwlpZiAoY2N4bXg1MV9pZC0+ZXRo MSAmJiAhcHdyKSB7CisJCS8qIENvbmZpZ3VyZSB0aGUgV0VJTSBDUzUgdGltbWluZywgYnVzIHdp ZHRoLCBldGMgKi8KKwkJLyogMTYgYml0IG9uIERBVEFbMzEuLjE2XSwgbm90IG11bHRpcGxleGVk LCBhc3luYyAqLworCQl3cml0ZWwoMHgwMDQyMDA4MSwgTVg1MV9XRUlNX0JBU0VfQUREUiArIFdF SU1fQ1N4R0NSMSg1KSk7CisJCS8qIEFESCBoYXMgbm90IGVmZmVjdCBvbiBub24gbXV4ZWQgYnVz ICovCisJCXdyaXRlbCgwLCBNWDUxX1dFSU1fQkFTRV9BRERSICsgV0VJTV9DU3hHQ1IyKDUpKTsK KwkJLyogUldTQz01MCwgUkFEVkE9MiwgUkFEVk49NiwgT0VBPTAsIE9FTj0wLCBSQ1NBPTAsIFJD U049MCAqLworCQl3cml0ZWwoMHgzMjI2MDAwMCwgTVg1MV9XRUlNX0JBU0VfQUREUiArIFdFSU1f Q1N4UkNSMSg1KSk7CisJCS8qIEFQUj0wICovCisJCXdyaXRlbCgwLCBNWDUxX1dFSU1fQkFTRV9B RERSICsgV0VJTV9DU3hSQ1IyKDUpKTsKKwkJLyogV0FMPTAsIFdCRUQ9MSwgV1dTQz01MCwgV0FE VkE9MiwgV0FEVk49NiwgV0VBPTAsIFdFTj0wLCBXQ1NBPTAgKi8KKwkJd3JpdGVsKDB4NzIwODBm MDAsIE1YNTFfV0VJTV9CQVNFX0FERFIgKyBXRUlNX0NTeFdDUjEoNSkpOworCisJCS8qIExBTjky MjEgbmV0d29yayBjb250cm9sbGVyICovCisJCWFkZF9nZW5lcmljX2RldmljZSgic21jOTExeCIs IDEsIE5VTEwsIE1YNTFfQ1M1X0JBU0VfQUREUiwgU1pfNEssIElPUkVTT1VSQ0VfTUVNLCBOVUxM KTsKKwl9CisjZW5kaWYKKworCWNjeG14NTFfb3RnaG9zdF9pbml0KCk7CisKKwlhcm1saW51eF9z ZXRfYm9vdHBhcmFtcygodm9pZCAqKShNWDUxX0NTRDBfQkFTRV9BRERSICsgMHgxMDApKTsKKwor CWFybWxpbnV4X3NldF9hcmNoaXRlY3R1cmUoY2N4bXg1MV9pZC0+d2xlc3MgPyBNQUNIX1RZUEVf Q0NXTVg1MSA6IE1BQ0hfVFlQRV9DQ01YNTEpOworCisJcmV0dXJuIDA7Cit9CitkZXZpY2VfaW5p dGNhbGwoY2N4bXg1MV9kZXZpY2VzX2luaXQpOworCitzdGF0aWMgaW50IGNjeG14NTFfY29uc29s ZV9pbml0KHZvaWQpCit7CisJbXhjX2lvbXV4X3YzX3NldHVwX211bHRpcGxlX3BhZHMoY2N4bXg1 MV9wYWRzLCBBUlJBWV9TSVpFKGNjeG14NTFfcGFkcykpOworCisJaW14NTFfYWRkX3VhcnQwKCk7 CisKKwlyZXR1cm4gMDsKK30KK2NvbnNvbGVfaW5pdGNhbGwoY2N4bXg1MV9jb25zb2xlX2luaXQp OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1MS5kb3ggYi9hcmNo L2FybS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxLmRveApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5jYzI4ZThkCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vYm9hcmRzL2Nj eG14NTEvY2N4bXg1MS5kb3gKQEAgLTAsMCArMSw3IEBACisvKiogQHBhZ2UgY2N4bXg1MSBEaWdp IENvbm5lY3RDb3JlIGJvYXJkCisKK1RoaXMgYm9hcmRzIGlzIGJhc2VkIG9uIGEgRnJlZXNjYWxl IGkuTVg1MSBDUFUuIFRoZSBib2FyZCBpcyBzaGlwcGVkIHdpdGg6CistIFVwIHRvIDggR0IgTkFO RCBGbGFzaC4KKy0gVXAgdG8gNTEyIE1CIEREUjIgUkFNLgorCisqLwpkaWZmIC0tZ2l0IGEvYXJj aC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1MS5oIGIvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEv Y2N4bXg1MS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmZWFjYWMKLS0t IC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxLmgKQEAgLTAs MCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEwIERpZ2kgSW50ZXJuYXRpb25hbCBJbmMu IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKi8KKworLyoKKyAqIFRoZSBjb2RlIGNvbnRhaW5lZCBo ZXJlaW4gaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z ZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQorICogVmVyc2lvbiAyIG9yIGxhdGVyIGF0IHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOgorICoK KyAqIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLWxpY2Vuc2UuaHRtbAor ICogaHR0cDovL3d3dy5nbnUub3JnL2NvcHlsZWZ0L2dwbC5odG1sCisgKi8KKworI2lmbmRlZiBf Q0NYTVg1MV9IXworI2RlZmluZSBfQ0NYTVg1MV9IXworCitzdHJ1Y3QgY2N4bXg1MV9od2lkIHsK Kwl1OAkJdmFyaWFudDsKKwl1OAkJdmVyc2lvbjsKKwl1MzIJCXNuOworCWNoYXIJCW1sb2M7Cit9 OworCitzdHJ1Y3QgY2N4bXg1MV9pZGVudCB7CisJY29uc3QgY2hhcgkqaWRfc3RyaW5nOworCWNv bnN0IGludAltZW1fc3o7CisJY29uc3QgY2hhcglpbmR1c3RyaWFsOworCWNvbnN0IGNoYXIJZXRo MDsKKwljb25zdCBjaGFyCWV0aDE7CisJY29uc3QgY2hhcgl3bGVzczsKK307CisKK2V4dGVybiBz dHJ1Y3QgY2N4bXg1MV9pZGVudCAqY2N4bXg1MV9pZDsKKworI2VuZGlmCS8qIF9DQ1hNWDUxX0hf ICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxanMuYyBiL2Fy Y2gvYXJtL2JvYXJkcy9jY3hteDUxL2NjeG14NTFqcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmYwNDYxNWQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9ib2FyZHMv Y2N4bXg1MS9jY3hteDUxanMuYwpAQCAtMCwwICsxLDkwIEBACisvKgorICogVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg KiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0 d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJv c3RvbiwKKyAqIE1BIDAyMTExLTEzMDcgVVNBCisgKi8KKworI2luY2x1ZGUgPGNvbW1vbi5oPgor I2luY2x1ZGUgPGlvLmg+CisjaW5jbHVkZSA8aW5pdC5oPgorI2luY2x1ZGUgPG1jaS5oPgorI2lu Y2x1ZGUgPGFzbS9hcm1saW51eC5oPgorI2luY2x1ZGUgPG1hY2gvaW14LXJlZ3MuaD4KKyNpbmNs dWRlIDxtYWNoL2lvbXV4LW14NTEuaD4KKyNpbmNsdWRlIDxtYWNoL2RldmljZXMtaW14NTEuaD4K KyNpbmNsdWRlIDxnZW5lcmF0ZWQvbWFjaC10eXBlcy5oPgorCisjaW5jbHVkZSAiY2N4bXg1MS5o IgorCitzdGF0aWMgaW9tdXhfdjNfY2ZnX3QgY2N4bXg1MWpzX3BhZHNbXSA9IHsKKwkvKiBTRDEg Ki8KKwlNWDUxX1BBRF9TRDFfQ0xLX19TRDFfQ0xLLAorCU1YNTFfUEFEX1NEMV9DTURfX1NEMV9D TUQsCisJTVg1MV9QQURfU0QxX0RBVEEwX19TRDFfREFUQTAsCisJTVg1MV9QQURfU0QxX0RBVEEx X19TRDFfREFUQTEsCisJTVg1MV9QQURfU0QxX0RBVEEyX19TRDFfREFUQTIsCisJTVg1MV9QQURf U0QxX0RBVEEzX19TRDFfREFUQTMsCisJLyogU0QzICovCisJTVg1MV9QQURfTkFOREZfQ1M3X19T RDNfQ0xLLAorCU1YNTFfUEFEX05BTkRGX1JEWV9JTlRfX1NEM19DTUQsCisJTVg1MV9QQURfTkFO REZfRDhfX1NEM19EQVRBMCwKKwlNWDUxX1BBRF9OQU5ERl9EOV9fU0QzX0RBVEExLAorCU1YNTFf UEFEX05BTkRGX0QxMF9fU0QzX0RBVEEyLAorCU1YNTFfUEFEX05BTkRGX0QxMV9fU0QzX0RBVEEz LAorCU1YNTFfUEFEX05BTkRGX0QxMl9fU0QzX0RBVDQsCisJTVg1MV9QQURfTkFOREZfRDEzX19T RDNfREFUNSwKKwlNWDUxX1BBRF9OQU5ERl9EMTRfX1NEM19EQVQ2LAorCU1YNTFfUEFEX05BTkRG X0QxNV9fU0QzX0RBVDcsCisJLyogVVNCIEhPU1QxICovCisJTVg1MV9QQURfVVNCSDFfQ0xLX19V U0JIMV9DTEssCisJTVg1MV9QQURfVVNCSDFfRElSX19VU0JIMV9ESVIsCisJTVg1MV9QQURfVVNC SDFfTlhUX19VU0JIMV9OWFQsCisJTVg1MV9QQURfVVNCSDFfU1RQX19VU0JIMV9TVFAsCisJTVg1 MV9QQURfVVNCSDFfREFUQTBfX1VTQkgxX0RBVEEwLAorCU1YNTFfUEFEX1VTQkgxX0RBVEExX19V U0JIMV9EQVRBMSwKKwlNWDUxX1BBRF9VU0JIMV9EQVRBMl9fVVNCSDFfREFUQTIsCisJTVg1MV9Q QURfVVNCSDFfREFUQTNfX1VTQkgxX0RBVEEzLAorCU1YNTFfUEFEX1VTQkgxX0RBVEE0X19VU0JI MV9EQVRBNCwKKwlNWDUxX1BBRF9VU0JIMV9EQVRBNV9fVVNCSDFfREFUQTUsCisJTVg1MV9QQURf VVNCSDFfREFUQTZfX1VTQkgxX0RBVEE2LAorCU1YNTFfUEFEX1VTQkgxX0RBVEE3X19VU0JIMV9E QVRBNywKK307CisKK3N0YXRpYyBzdHJ1Y3QgZXNkaGNfcGxhdGZvcm1fZGF0YSBzZGhjMV9wZGF0 YSA9IHsKKwkuY2RfdHlwZQk9IEVTREhDX0NEX05PTkUsCisJLndwX3R5cGUJPSBFU0RIQ19XUF9O T05FLAorCS5jYXBzCQk9IE1NQ19NT0RFXzRCSVQsCit9OworCitzdGF0aWMgc3RydWN0IGVzZGhj X3BsYXRmb3JtX2RhdGEgc2RoYzNfcGRhdGEgPSB7CisJLmNkX3R5cGUJPSBFU0RIQ19DRF9OT05F LAorCS53cF90eXBlCT0gRVNESENfV1BfTk9ORSwKKwkuY2FwcwkJPSBNTUNfTU9ERV80QklUIHwg TU1DX01PREVfOEJJVCwKK307CisKK3N0YXRpYyBpbnQgY2N4bXg1MWpzX2luaXQodm9pZCkKK3sK KwlteGNfaW9tdXhfdjNfc2V0dXBfbXVsdGlwbGVfcGFkcyhjY3hteDUxanNfcGFkcywgQVJSQVlf U0laRShjY3hteDUxanNfcGFkcykpOworCisJaWYgKElTX0VOQUJMRUQoQ09ORklHX01DSV9JTVhf RVNESEMpKSB7CisJCWlteDUxX2FkZF9tbWMwKCZzZGhjMV9wZGF0YSk7CisJCWlteDUxX2FkZF9t bWMyKCZzZGhjM19wZGF0YSk7CisJfQorCisJYXJtbGludXhfc2V0X2FyY2hpdGVjdHVyZShjY3ht eDUxX2lkLT53bGVzcyA/IE1BQ0hfVFlQRV9DQ1dNWDUxSlMgOiBNQUNIX1RZUEVfQ0NNWDUxSlMp OworCisJcmV0dXJuIDA7Cit9CisKK2xhdGVfaW5pdGNhbGwoY2N4bXg1MWpzX2luaXQpOwpkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY29uZmlnLmggYi9hcmNoL2FybS9ib2Fy ZHMvY2N4bXg1MS9jb25maWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m ZGYyZjgxCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY29uZmln LmgKQEAgLTAsMCArMSwyNCBAQAorLyoqCisgKiBAZmlsZQorICogQGJyaWVmIEdsb2JhbCBkZWZp bnRpb25zIGZvciB0aGUgQVJNIGkuTVg1MSBiYXNlZCBjY214NTEgYm9hcmQKKyAqCisgKiBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDIgb2YKKyAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4JIFNlZSB0aGUKKyAq IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG cmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRl IDMzMCwgQm9zdG9uLAorICogTUEgMDIxMTEtMTMwNyBVU0EKKyAqLworCisjaWZuZGVmIF9fQ09O RklHX0gKKyNkZWZpbmUgX19DT05GSUdfSAorCisjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvZW52L2NvbmZpZyBiL2FyY2gvYXJtL2Jv YXJkcy9jY3hteDUxL2Vudi9jb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uYmJkNDNlNwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2Vu di9jb25maWcKQEAgLTAsMCArMSwzNyBAQAorIyEvYmluL3NoCisKK21hY2hpbmU9Y2NteDUxCisK KyMgdXNlICdkaGNwJyB0byBkbyBkaGNwIGluIGJhcmVib3ggYW5kIGluIGtlcm5lbAorIyB1c2Ug J25vbmUnIGlmIHlvdSB3YW50IHRvIHNraXAga2VybmVsIGlwIGF1dG9jb25maWd1cmF0aW9uCitp cD1ub25lCisKKyMgb3Igc2V0IHlvdXIgbmV0d29ya2luZyBwYXJhbWV0ZXJzIGhlcmUKKyNldGgw LmlwYWRkcj1hLmIuYy5kCisjZXRoMC5uZXRtYXNrPWEuYi5jLmQKKyNldGgwLmdhdGV3YXk9YS5i LmMuZAorI2V0aDAuc2VydmVyaXA9YS5iLmMuZAorCisjIGNhbiBiZSBlaXRoZXIgJ25mcycsICd0 ZnRwJyBvciAnbmFuZCcKK2tlcm5lbF9sb2M9bmFuZAorIyBjYW4gYmUgZWl0aGVyICduZXQnLCAn bmFuZCcgb3IgJ2luaXRyZCcKK3Jvb3Rmc19sb2M9bmFuZAorCisjIHJvb3Rmcworcm9vdGZzX3R5 cGU9Y3JhbWZzCisKKyMga2VybmVsCitrZXJuZWxpbWFnZV90eXBlPXppbWFnZQora2VybmVsX2lt Zz0vZGV2L25hbmQwLmtlcm5lbAorCithdXRvYm9vdF90aW1lb3V0PTMKKworYm9vdGFyZ3M9ImNv bnNvbGU9dHR5bXhjMCwxMTUyMDAiCisKK2RldmljZV90eXBlPSJuYW5kIgorbmFuZF9kZXZpY2U9 Im14Y19uYW5kIgorbmFuZF9wYXJ0cz0iNTEyayhiYXJlYm94KXJvLDI1NmsoYmFyZWJveGVudiks MzMyOGsoa2VybmVsKSwtKHJvb3QpIgorcm9vdGZzX210ZGJsb2NrX25hbmQ9MworCisjIHNldCBh IGZhbmN5IHByb21wdCAoaWYgc3VwcG9ydCBpcyBjb21waWxlZCBpbikKK1BTMT0iXGVbMTszMm1i YXJlYm94QFxlWzE7MzFtXGg6XHdcZVswbSAiCmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMv Y2N4bXg1MS9mbGFzaF9oZWFkZXIuYyBiL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2ZsYXNoX2hl YWRlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxNDhlZWEKLS0tIC9k ZXYvbnVsbAorKysgYi9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9mbGFzaF9oZWFkZXIuYwpAQCAt MCwwICsxLDg0IEBACisjaW5jbHVkZSA8Y29tbW9uLmg+CisjaW5jbHVkZSA8bWFjaC9pbXgtZmxh c2gtaGVhZGVyLmg+CisjaW5jbHVkZSA8YXNtL2JhcmVib3gtYXJtLWhlYWQuaD4KKwordm9pZCBf X25ha2VkIF9fZmxhc2hfaGVhZGVyX3N0YXJ0IGdvKHZvaWQpCit7CisJYmFyZWJveF9hcm1faGVh ZCgpOworfQorCitzdHJ1Y3QgaW14X2RjZF9lbnRyeSBfX2RjZF9lbnRyeV9zZWN0aW9uIGRjZF9l bnRyeVtdID0geworCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDczZmE4OGEwLCAudmFsID0g MHgwMDAwMDIwMCwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg3M2ZhODUwYywgLnZh bCA9IDB4MDAwMDIwYzUsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4NzNmYTg1MTAs IC52YWwgPSAweDAwMDAyMGM1LCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDczZmE4 ODNjLCAudmFsID0gMHgwMDAwMDAwMiwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg3 M2ZhODg0OCwgLnZhbCA9IDB4MDAwMDAwMDIsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9 IDB4NzNmYTg0YjgsIC52YWwgPSAweDAwMDAwMGU3LCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFk ZHIgPSAweDczZmE4NGJjLCAudmFsID0gMHgwMDAwMDA0NSwgfSwKKwl7IC5wdHJfdHlwZSA9IDQs IC5hZGRyID0gMHg3M2ZhODRjMCwgLnZhbCA9IDB4MDAwMDAwNDUsIH0sCisJeyAucHRyX3R5cGUg PSA0LCAuYWRkciA9IDB4NzNmYTg0YzQsIC52YWwgPSAweDAwMDAwMDQ1LCB9LAorCXsgLnB0cl90 eXBlID0gNCwgLmFkZHIgPSAweDczZmE4NGM4LCAudmFsID0gMHgwMDAwMDA0NSwgfSwKKwl7IC5w dHJfdHlwZSA9IDQsIC5hZGRyID0gMHg3M2ZhODgyMCwgLnZhbCA9IDB4MDAwMDAwMDAsIH0sCisJ eyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4NzNmYTg0YTQsIC52YWwgPSAweDAwMDAwMDAzLCB9 LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDczZmE4NGE4LCAudmFsID0gMHgwMDAwMDAw MywgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg3M2ZhODRhYywgLnZhbCA9IDB4MDAw MDAwZTMsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4NzNmYTg0YjAsIC52YWwgPSAw eDAwMDAwMGUzLCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDczZmE4NGI0LCAudmFs ID0gMHgwMDAwMDBlMywgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg3M2ZhODRjYywg LnZhbCA9IDB4MDAwMDAwZTMsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4NzNmYTg0 ZDAsIC52YWwgPSAweDAwMDAwMGUyLCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDcz ZmE4ODJjLCAudmFsID0gMHgwMDAwMDAwNCwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0g MHg3M2ZhODhhNCwgLnZhbCA9IDB4MDAwMDAwMDQsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRk ciA9IDB4NzNmYTg4YWMsIC52YWwgPSAweDAwMDAwMDA0LCB9LAorCXsgLnB0cl90eXBlID0gNCwg LmFkZHIgPSAweDczZmE4OGI4LCAudmFsID0gMHgwMDAwMDAwNCwgfSwKKwl7IC5wdHJfdHlwZSA9 IDQsIC5hZGRyID0gMHg4M2ZkOTAwMCwgLnZhbCA9IDB4ODJhMjAwMDAsIH0sCisJeyAucHRyX3R5 cGUgPSA0LCAuYWRkciA9IDB4ODNmZDkwMDgsIC52YWwgPSAweDgyYTIwMDAwLCB9LAorCXsgLnB0 cl90eXBlID0gNCwgLmFkZHIgPSAweDgzZmQ5MDEwLCAudmFsID0gMHgwMDBhZDBkMCwgfSwKKwl7 IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg4M2ZkOTAwNCwgLnZhbCA9IDB4M2YzNTg0YWIsIH0s CisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4ODNmZDkwMGMsIC52YWwgPSAweDNmMzU4NGFi LCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDgzZmQ5MDE0LCAudmFsID0gMHgwNDAw ODAwOCwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg4M2ZkOTAxNCwgLnZhbCA9IDB4 MDAwMDgwMWEsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4ODNmZDkwMTQsIC52YWwg PSAweDAwMDA4MDFiLCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDgzZmQ5MDE0LCAu dmFsID0gMHgwMDQ0ODAxOSwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg4M2ZkOTAx NCwgLnZhbCA9IDB4MDczMjgwMTgsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4ODNm ZDkwMTQsIC52YWwgPSAweDA0MDA4MDA4LCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAw eDgzZmQ5MDE0LCAudmFsID0gMHgwMDAwODAxMCwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRy ID0gMHg4M2ZkOTAxNCwgLnZhbCA9IDB4MDAwMDgwMTAsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAu YWRkciA9IDB4ODNmZDkwMTQsIC52YWwgPSAweDA2MzI4MDE4LCB9LAorCXsgLnB0cl90eXBlID0g NCwgLmFkZHIgPSAweDgzZmQ5MDE0LCAudmFsID0gMHgwMzgwODAxOSwgfSwKKwl7IC5wdHJfdHlw ZSA9IDQsIC5hZGRyID0gMHg4M2ZkOTAxNCwgLnZhbCA9IDB4MDA0MDgwMTksIH0sCisJeyAucHRy X3R5cGUgPSA0LCAuYWRkciA9IDB4ODNmZDkwMTQsIC52YWwgPSAweDAwMDA4MDAwLCB9LAorCXsg LnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDgzZmQ5MDE0LCAudmFsID0gMHgwNDAwODAwYywgfSwK Kwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg4M2ZkOTAxNCwgLnZhbCA9IDB4MDAwMDgwMWUs IH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4ODNmZDkwMTQsIC52YWwgPSAweDAwMDA4 MDFmLCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDgzZmQ5MDE0LCAudmFsID0gMHgw MDAwODAxZCwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg4M2ZkOTAxNCwgLnZhbCA9 IDB4MDczMjgwMWMsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4ODNmZDkwMTQsIC52 YWwgPSAweDA0MDA4MDBjLCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDgzZmQ5MDE0 LCAudmFsID0gMHgwMDAwODAxNCwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg4M2Zk OTAxNCwgLnZhbCA9IDB4MDAwMDgwMTQsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4 ODNmZDkwMTQsIC52YWwgPSAweDA2MzI4MDFjLCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIg PSAweDgzZmQ5MDE0LCAudmFsID0gMHgwMzgwODAxZCwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5h ZGRyID0gMHg4M2ZkOTAxNCwgLnZhbCA9IDB4MDA0MDgwMWQsIH0sCisJeyAucHRyX3R5cGUgPSA0 LCAuYWRkciA9IDB4ODNmZDkwMTQsIC52YWwgPSAweDAwMDA4MDA0LCB9LAorCXsgLnB0cl90eXBl ID0gNCwgLmFkZHIgPSAweDgzZmQ5MDAwLCAudmFsID0gMHhiMmEyMDAwMCwgfSwKKwl7IC5wdHJf dHlwZSA9IDQsIC5hZGRyID0gMHg4M2ZkOTAwOCwgLnZhbCA9IDB4YjJhMjAwMDAsIH0sCisJeyAu cHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4ODNmZDkwMTAsIC52YWwgPSAweDAwMGFkNmQwLCB9LAor CXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDgzZmQ5MDM0LCAudmFsID0gMHg5MDAwMDAwMCwg fSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg4M2ZkOTAxNCwgLnZhbCA9IDB4MDAwMDAw MDAsIH0sCit9OworCisjZGVmaW5lIEFQUF9ERVNUCTB4OTAwMDAwMDAKKworc3RydWN0IGlteF9m bGFzaF9oZWFkZXIgX19mbGFzaF9oZWFkZXJfc2VjdGlvbiBmbGFzaF9oZWFkZXIgPSB7CisJLmFw cF9jb2RlX2p1bXBfdmVjdG9yCT0gQVBQX0RFU1QgKyAweDEwMDAsCisJLmFwcF9jb2RlX2Jhcmtl cgk9IEFQUF9DT0RFX0JBUktFUiwKKwkuYXBwX2NvZGVfY3NmCQk9IDAsCisJLmRjZF9wdHJfcHRy CQk9IEFQUF9ERVNUICsgMHg0MDAgKyBvZmZzZXRvZihzdHJ1Y3QgaW14X2ZsYXNoX2hlYWRlciwg ZGNkKSwKKwkuc3VwZXJfcm9vdF9rZXkJCT0gMCwKKwkuZGNkCQkJPSBBUFBfREVTVCArIDB4NDAw ICsgb2Zmc2V0b2Yoc3RydWN0IGlteF9mbGFzaF9oZWFkZXIsIGRjZF9iYXJrZXIpLAorCS5hcHBf ZGVzdAkJPSBBUFBfREVTVCwKKwkuZGNkX2JhcmtlcgkJPSBEQ0RfQkFSS0VSLAorCS5kY2RfYmxv Y2tfbGVuCQk9IHNpemVvZiAoZGNkX2VudHJ5KSwKK307CisKK3Vuc2lnbmVkIGxvbmcgX19pbWFn ZV9sZW5fc2VjdGlvbiBiYXJlYm94X2xlbiA9IERDRF9CQVJFQk9YX1NJWkU7CisKZGlmZiAtLWdp dCBhL2FyY2gvYXJtL2NvbmZpZ3MvY2NteDUxX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3Mv Y2NteDUxX2RlZmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTRk ZTU1Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vY29uZmlncy9jY214NTFfZGVmY29uZmln CkBAIC0wLDAgKzEsNTUgQEAKK0NPTkZJR19BUkNIX0lNWD15CitDT05GSUdfQVJDSF9JTVg1MT15 CitDT05GSUdfTUFDSF9DQ01YNTE9eQorQ09ORklHX0FFQUJJPXkKK0NPTkZJR19BUk1fT1BUSU1a RURfU1RSSU5HX0ZVTkNUSU9OUz15CitDT05GSUdfTUFMTE9DX1NJWkU9MHgyMDAwMDAwCitDT05G SUdfTE9OR0hFTFA9eQorQ09ORklHX0dMT0I9eQorQ09ORklHX0hVU0hfRkFOQ1lfUFJPTVBUPXkK K0NPTkZJR19DTURMSU5FX0VESVRJTkc9eQorQ09ORklHX0FVVE9fQ09NUExFVEU9eQorQ09ORklH X1BBUlRJVElPTj15CitDT05GSUdfREVGQVVMVF9FTlZJUk9OTUVOVF9HRU5FUklDPXkKK0NPTkZJ R19ERUZBVUxUX0VOVklST05NRU5UX1BBVEg9ImRlZmF1bHRlbnYgYXJjaC9hcm0vYm9hcmRzL2Nj eG14NTEvZW52IgorQ09ORklHX0NNRF9FRElUPXkKK0NPTkZJR19DTURfU0xFRVA9eQorQ09ORklH X0NNRF9TQVZFRU5WPXkKK0NPTkZJR19DTURfTE9BREVOVj15CitDT05GSUdfQ01EX0VYUE9SVD15 CitDT05GSUdfQ01EX1BSSU5URU5WPXkKK0NPTkZJR19DTURfUkVBRExJTkU9eQorQ09ORklHX0NN RF9FQ0hPX0U9eQorQ09ORklHX0NNRF9NRU1JTkZPPXkKK0NPTkZJR19DTURfTVRFU1Q9eQorQ09O RklHX0NNRF9GTEFTSD15CitDT05GSUdfQ01EX0JPT1RNX1pMSUI9eQorQ09ORklHX0NNRF9CT09U TV9CWkxJQj15CitDT05GSUdfQ01EX0JPT1RNX1NIT1dfVFlQRT15CitDT05GSUdfQ01EX1JFU0VU PXkKK0NPTkZJR19DTURfR089eQorQ09ORklHX0NNRF9USU1FT1VUPXkKK0NPTkZJR19DTURfUEFS VElUSU9OPXkKK0NPTkZJR19DTURfR1BJTz15CitDT05GSUdfQ01EX1VOTFpPPXkKK0NPTkZJR19D TURfSTJDPXkKK0NPTkZJR19ORVQ9eQorQ09ORklHX05FVF9ESENQPXkKK0NPTkZJR19ORVRfUElO Rz15CitDT05GSUdfTkVUX1RGVFA9eQorQ09ORklHX0RSSVZFUl9ORVRfU01DOTExWD15CitDT05G SUdfRFJJVkVSX05FVF9GRUNfSU1YPXkKK0NPTkZJR19EUklWRVJfU1BJX0lNWD15CitDT05GSUdf STJDPXkKK0NPTkZJR19JMkNfSU1YPXkKK0NPTkZJR19NVEQ9eQorQ09ORklHX05BTkQ9eQorQ09O RklHX05BTkRfSU1YPXkKK0NPTkZJR19VU0I9eQorQ09ORklHX1VTQl9FSENJPXkKK0NPTkZJR19N Q0k9eQorIyBDT05GSUdfTUNJX1dSSVRFIGlzIG5vdCBzZXQKK0NPTkZJR19NQ0lfSU1YX0VTREhD PXkKK0NPTkZJR19GU19DUkFNRlM9eQorQ09ORklHX0ZTX0ZBVD15CitDT05GSUdfRlNfRkFUX0xG Tj15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWlteC9LY29uZmlnIGIvYXJjaC9hcm0vbWFj aC1pbXgvS2NvbmZpZwppbmRleCA1NjRlMmZlLi4xNWI3YmZiIDEwMDY0NAotLS0gYS9hcmNoL2Fy bS9tYWNoLWlteC9LY29uZmlnCisrKyBiL2FyY2gvYXJtL21hY2gtaW14L0tjb25maWcKQEAgLTI2 LDYgKzI2LDcgQEAgY29uZmlnIEFSQ0hfVEVYVF9CQVNFCiAJZGVmYXVsdCAweDdmZjAwMDAwIGlm IE1BQ0hfVFFNQTUzCiAJZGVmYXVsdCAweDk3ZjAwMDAwIGlmIE1BQ0hfVFg1MQogCWRlZmF1bHQg MHg0ZmMwMDAwMCBpZiBNQUNIX01YNlFfQVJNMgorCWRlZmF1bHQgMHg5N2YwMDAwMCBpZiBNQUNI X0NDTVg1MQogCiBjb25maWcgQk9BUkRJTkZPCiAJZGVmYXVsdCAiRXVrcmVhIENQVUlNWDI1IiBp ZiBNQUNIX0VVS1JFQV9DUFVJTVgyNQpAQCAtNTAsNiArNTEsNyBAQCBjb25maWcgQk9BUkRJTkZP CiAJZGVmYXVsdCAiVFEgdHFtYTUzIiBpZiBNQUNIX1RRTUE1MwogCWRlZmF1bHQgIkthLVJvIHR4 NTEiIGlmIE1BQ0hfVFg1MQogCWRlZmF1bHQgIkZyZWVzY2FsZSBpLk1YNnEgYXJtYWRpbGxvMiIg aWYgTUFDSF9NWDZRX0FSTTIKKwlkZWZhdWx0ICJDb25uZWN0Q29yZSBpLk1YNTEiIGlmIE1BQ0hf Q0NNWDUxCiAKIGNob2ljZQogCXByb21wdCAiU2VsZWN0IGJvb3QgbW9kZSIKQEAgLTQwNSw2ICs0 MDcsMjMgQEAgY29uZmlnIE1BQ0hfVFg1MQogCWhlbHAKIAkgIFNheSBZIGhlcmUgaWYgeW91IGFy ZSB1c2luZyB0aGUgS2EtUm8gdHg1MSBib2FyZAogCitjb25maWcgTUFDSF9DQ01YNTEKKwlib29s ICJDb25uZWN0Q29yZSBpLk1YNTEiCisJc2VsZWN0IElNWF9JSU0KKwlzZWxlY3QgU1BJCisJc2Vs ZWN0IERSSVZFUl9TUElfSU1YCisJc2VsZWN0IE1GRF9NQzEzWFhYCisJaGVscAorCSAgU2F5IFkg aGVyZSBpZiB5b3UgYXJlIHVzaW5nIERpZ2kgQ29ubmVjdENvcmUgKFcpaS1pLk1YNTEKKwkgIGVx dWlwcGVkIHdpdGggYSBGcmVlc2NhbGUgaS5NWDUxIFByb2Nlc3NvcgorCitjb25maWcgTUFDSF9D Q01YNTFfQkFTRUJPQVJECisJYm9vbCAiRGlnaSBkZXZlbG9wbWVudCBib2FyZCBmb3IgQ0NNWDUx IG1vZHVsZSIKKwlkZXBlbmRzIG9uIE1BQ0hfQ0NNWDUxCisJZGVmYXVsdCB5CisJaGVscAorCSAg VGhpcyBhZGRzIGJvYXJkIHNwZWNpZmljIGRldmljZXMgdGhhdCBjYW4gYmUgZm91bmQgb24gRGln aQorCSAgZXZhbHVhdGlvbiBib2FyZCBmb3IgQ0NNWDUxIG1vZHVsZS4KIAogZW5kY2hvaWNlCiAK LS0gCjEuNy4zLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpiYXJlYm94IG1haWxpbmcgbGlzdApiYXJlYm94QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9iYXJlYm94Cg==