From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from slb-mail5.epfl.ch ([2001:620:618:1e0:1:80b2:e034:1] helo=smtp5.epfl.ch) by merlin.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1WJQIi-0002vf-Ir for barebox@lists.infradead.org; Fri, 28 Feb 2014 16:28:43 +0000 From: =?UTF-8?q?Philippe=20R=C3=A9tornaz?= Date: Fri, 28 Feb 2014 17:27:59 +0100 Message-Id: <1393604879-29317-2-git-send-email-philippe.retornaz@epfl.ch> In-Reply-To: <1393604879-29317-1-git-send-email-philippe.retornaz@epfl.ch> References: <1393604879-29317-1-git-send-email-philippe.retornaz@epfl.ch> 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" Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: [PATCH 1/1 v2] ARM: i.MX31: Add support for mx31moboard board To: s.hauer@pengutronix.de Cc: barebox@lists.infradead.org, =?UTF-8?q?Philippe=20R=C3=A9tornaz?= VGhlIG14MzFtb2JvYXJkIGlzIHVzZWQgb24gdGhlIG1hclhib3QsIEV5ZWJvdCBhbmQgRm9vdGJv dCByb2JvdC4KClNpZ25lZC1vZmYtYnk6IFBoaWxpcHBlIFLDqXRvcm5heiA8cGhpbGlwcGUucmV0 b3JuYXpAZXBmbC5jaD4KLS0tCiBhcmNoL2FybS9ib2FyZHMvTWFrZWZpbGUgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgMSArCiBhcmNoL2FybS9ib2FyZHMvbXgzMW1vYm9hcmQvTWFrZWZp bGUgICAgICAgICAgICAgIHwgICAyMCArKwogYXJjaC9hcm0vYm9hcmRzL214MzFtb2JvYXJkL2Vu di9ib290L25vciAgICAgICAgICB8ICAgIDkgKwogYXJjaC9hcm0vYm9hcmRzL214MzFtb2JvYXJk L2Vudi9ib290L3NkICAgICAgICAgICB8ICAgIDggKwogYXJjaC9hcm0vYm9hcmRzL214MzFtb2Jv YXJkL2Vudi9ib290L3VzYm1zZCAgICAgICB8ICAgIDggKwogYXJjaC9hcm0vYm9hcmRzL214MzFt b2JvYXJkL2Vudi9jb25maWctYm9hcmQgICAgICB8ICAgIDcgKwogYXJjaC9hcm0vYm9hcmRzL214 MzFtb2JvYXJkL2Vudi9pbml0L210ZHBhcnRzLW5vciB8ICAgMTEgKwogYXJjaC9hcm0vYm9hcmRz L214MzFtb2JvYXJkL2xvd2xldmVsLmMgICAgICAgICAgICB8ICAxMTQgKysrKysrKysrCiBhcmNo L2FybS9ib2FyZHMvbXgzMW1vYm9hcmQvbXgzMW1vYm9hcmQuYyAgICAgICAgIHwgIDI1OSArKysr KysrKysrKysrKysrKysrKysKIGFyY2gvYXJtL2JvYXJkcy9teDMxbW9ib2FyZC9teDMxbW9ib2Fy ZC5kb3ggICAgICAgfCAgIDEwICsKIGFyY2gvYXJtL21hY2gtaW14L0tjb25maWcgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDExICsKIDExIGZpbGVzIGNoYW5nZWQsIDQ1OCBpbnNlcnRpb25z KCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9hcmRzL214MzFtb2JvYXJkL01ha2Vm aWxlCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9hcmRzL214MzFtb2JvYXJkL2Vudi9i b290L25vcgogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2JvYXJkcy9teDMxbW9ib2FyZC9l bnYvYm9vdC9zZAogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2JvYXJkcy9teDMxbW9ib2Fy ZC9lbnYvYm9vdC91c2Jtc2QKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9ib2FyZHMvbXgz MW1vYm9hcmQvZW52L2NvbmZpZy1ib2FyZAogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2Jv YXJkcy9teDMxbW9ib2FyZC9lbnYvaW5pdC9tdGRwYXJ0cy1ub3IKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBhcmNoL2FybS9ib2FyZHMvbXgzMW1vYm9hcmQvbG93bGV2ZWwuYwogY3JlYXRlIG1vZGUgMTAw NjQ0IGFyY2gvYXJtL2JvYXJkcy9teDMxbW9ib2FyZC9teDMxbW9ib2FyZC5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgYXJjaC9hcm0vYm9hcmRzL214MzFtb2JvYXJkL214MzFtb2JvYXJkLmRveAoKZGlm ZiAtLWdpdCBhL2FyY2gvYXJtL2JvYXJkcy9NYWtlZmlsZSBiL2FyY2gvYXJtL2JvYXJkcy9NYWtl ZmlsZQppbmRleCBmZmQ2YmIzLi4wZDhjOWNmIDEwMDY0NAotLS0gYS9hcmNoL2FybS9ib2FyZHMv TWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vYm9hcmRzL01ha2VmaWxlCkBAIC01MSw2ICs1MSw3IEBA IG9iai0kKENPTkZJR19NQUNIX01JT0E3MDEpCQkJKz0gbWlvYTcwMS8KIG9iai0kKENPTkZJR19N QUNIX01NQ0NQVSkJCQkrPSBtbWNjcHUvCiBvYmotJChDT05GSUdfTUFDSF9NWDIzRVZLKQkJCSs9 IGZyZWVzY2FsZS1teDIzLWV2ay8KIG9iai0kKENPTkZJR19NQUNIX01YMjhFVkspCQkJKz0gZnJl ZXNjYWxlLW14MjgtZXZrLworb2JqLSQoQ09ORklHX01BQ0hfTVgzMU1PQk9BUkQpCQkJKz0gbXgz MW1vYm9hcmQvCiBvYmotJChDT05GSUdfTUFDSF9NWDZRX0FSTTIpCQkJKz0gZnJlZXNjYWxlLW14 Ni1hcm0yLwogb2JqLSQoQ09ORklHX01BQ0hfTkVTTykJCQkJKz0gZ3VmLW5lc28vCiBvYmotJChD T05GSUdfTUFDSF9OT01BRElLXzg4MTVOSEspCQkrPSBuaGs4ODE1LwpkaWZmIC0tZ2l0IGEvYXJj aC9hcm0vYm9hcmRzL214MzFtb2JvYXJkL01ha2VmaWxlIGIvYXJjaC9hcm0vYm9hcmRzL214MzFt b2JvYXJkL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzYTYw MTYKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9ib2FyZHMvbXgzMW1vYm9hcmQvTWFrZWZp bGUKQEAgLTAsMCArMSwyMCBAQAorIworIyAoQykgQ29weXJpZ2h0IDIwMDcgSnVlcmdlbiBCZWlz ZXJ0IDxqYmVAcGVuZ3V0cm9uaXguZGU+CisjCisjIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qg b2YgcGVvcGxlIHdobyBjb250cmlidXRlZCB0byB0aGlzCisjIHByb2plY3QuCisjCisjIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK KyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMKKyMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDIgb2YKKyMgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjCisKK2x3bC15ICs9IGxv d2xldmVsLm8KK29iai15ICs9IG14MzFtb2JvYXJkLm8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jv YXJkcy9teDMxbW9ib2FyZC9lbnYvYm9vdC9ub3IgYi9hcmNoL2FybS9ib2FyZHMvbXgzMW1vYm9h cmQvZW52L2Jvb3Qvbm9yCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzNjY1 NWMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9ib2FyZHMvbXgzMW1vYm9hcmQvZW52L2Jv b3Qvbm9yCkBAIC0wLDAgKzEsOSBAQAorIyEvYmluL3NoCisKK2lmIFsgIiQxIiA9IG1lbnUgXTsg dGhlbgorICAgICAgICBib290LW1lbnUtYWRkLWVudHJ5ICIkMCIgIk5PUiBGbGFzaCIKKyAgICAg ICAgZXhpdAorZmkKKworZ2xvYmFsLmJvb3RtLmltYWdlPSIvZGV2L25vcjAua2VybmVsIgorZ2xv YmFsLmxpbnV4LmJvb3RhcmdzLmR5bi5yb290PSJyb290PS9kZXYvbXRkYmxvY2szIHJvIgpkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL214MzFtb2JvYXJkL2Vudi9ib290L3NkIGIvYXJjaC9h cm0vYm9hcmRzL214MzFtb2JvYXJkL2Vudi9ib290L3NkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjE2ZTczNGQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9ib2FyZHMv bXgzMW1vYm9hcmQvZW52L2Jvb3Qvc2QKQEAgLTAsMCArMSw4IEBACisjIS9iaW4vc2gKKworaWYg WyAiJDEiID0gbWVudSBdOyB0aGVuCisgICAgICAgIGJvb3QtbWVudS1hZGQtZW50cnkgIiQwIiAi U0QgQm9vdCIKKyAgICAgICAgZXhpdAorZmkKKworYm9vdCBtY2kwCmRpZmYgLS1naXQgYS9hcmNo L2FybS9ib2FyZHMvbXgzMW1vYm9hcmQvZW52L2Jvb3QvdXNibXNkIGIvYXJjaC9hcm0vYm9hcmRz L214MzFtb2JvYXJkL2Vudi9ib290L3VzYm1zZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi42YTE2ZDNlCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vYm9hcmRzL214MzFt b2JvYXJkL2Vudi9ib290L3VzYm1zZApAQCAtMCwwICsxLDggQEAKKyMhL2Jpbi9zaAorCitpZiBb ICIkMSIgPSBtZW51IF07IHRoZW4KKyAgICAgICAgYm9vdC1tZW51LWFkZC1lbnRyeSAiJDAiICJV U0IgQm9vdCIKKyAgICAgICAgZXhpdAorZmkKKworYm9vdCBlaGNpMApkaWZmIC0tZ2l0IGEvYXJj aC9hcm0vYm9hcmRzL214MzFtb2JvYXJkL2Vudi9jb25maWctYm9hcmQgYi9hcmNoL2FybS9ib2Fy ZHMvbXgzMW1vYm9hcmQvZW52L2NvbmZpZy1ib2FyZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5mNjdiMzMzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vYm9hcmRzL214 MzFtb2JvYXJkL2Vudi9jb25maWctYm9hcmQKQEAgLTAsMCArMSw3IEBACisjIS9iaW4vc2gKKwor IyBib2FyZCBkZWZhdWx0cywgZG8gbm90IGNoYW5nZSBpbiBydW5uaW5nIHN5c3RlbS4gQ2hhbmdl IC9lbnYvY29uZmlnCisjIGluc3RlYWQKKworZ2xvYmFsLmJvb3QuZGVmYXVsdD0idXNibXNkIHNk IG5vciIKK2dsb2JhbC5saW51eC5ib290YXJncy5iYXNlPSJjb25zb2xlPXR0eW14YzAsOTIxNjAw IgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL214MzFtb2JvYXJkL2Vudi9pbml0L210ZHBh cnRzLW5vciBiL2FyY2gvYXJtL2JvYXJkcy9teDMxbW9ib2FyZC9lbnYvaW5pdC9tdGRwYXJ0cy1u b3IKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA5YTljYwotLS0gL2Rldi9u dWxsCisrKyBiL2FyY2gvYXJtL2JvYXJkcy9teDMxbW9ib2FyZC9lbnYvaW5pdC9tdGRwYXJ0cy1u b3IKQEAgLTAsMCArMSwxMSBAQAorIyEvYmluL3NoCisKK2lmIFsgIiQxIiA9IG1lbnUgXTsgdGhl bgorCWluaXQtbWVudS1hZGQtZW50cnkgIiQwIiAiTk9SIHBhcnRpdGlvbnMiCisJZXhpdAorZmkK KworbXRkcGFydHM9IjUxMmsobm9yMC5iYXJlYm94KXJvLDI1Nmsobm9yMC5iYXJlYm94ZW52KSw0 TShub3IwLmtlcm5lbCksLShub3IwLnJvb3QpIgora2VybmVsbmFtZT0icGh5c21hcC1mbGFzaC4w IgorCittdGRwYXJ0cy1hZGQgLWQgbm9yMCAtayAke2tlcm5lbG5hbWV9IC1wICR7bXRkcGFydHN9 CmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvbXgzMW1vYm9hcmQvbG93bGV2ZWwuYyBiL2Fy Y2gvYXJtL2JvYXJkcy9teDMxbW9ib2FyZC9sb3dsZXZlbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmU5ZmZiNzQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9ib2Fy ZHMvbXgzMW1vYm9hcmQvbG93bGV2ZWwuYwpAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqCisgKiAo YykgMjAwNyBQZW5ndXRyb25peCwgU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRl PgorICogKGMpIDIwMTQgRVBGTCwgUGhpbGlwcGUgUsOpdG9ybmF6IDxwaGlsaXBwZS5yZXRvcm5h ekBlcGZsLmNoPgorICoKKyAqIFNlZSBmaWxlIENSRURJVFMgZm9yIGxpc3Qgb2YgcGVvcGxlIHdo byBjb250cmlidXRlZCB0byB0aGlzCisgKiBwcm9qZWN0LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz CisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMiBvZgorICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKi8KKyNpbmNsdWRlIDxj b21tb24uaD4KKyNpbmNsdWRlIDxpbml0Lmg+CisjaW5jbHVkZSA8aW8uaD4KKyNpbmNsdWRlIDxh c20vYmFyZWJveC1hcm0uaD4KKyNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CisjaW5jbHVkZSA8YXNt LWdlbmVyaWMvbWVtb3J5X2xheW91dC5oPgorI2luY2x1ZGUgPGFzbS1nZW5lcmljL3NlY3Rpb25z Lmg+CisjaW5jbHVkZSA8YXNtL2JhcmVib3gtYXJtLWhlYWQuaD4KKyNpbmNsdWRlIDxtYWNoL2lt eDMxLXJlZ3MuaD4KKyNpbmNsdWRlIDxtYWNoL2lteC1wbGwuaD4KKyNpbmNsdWRlIDxhc20vYmFy ZWJveC1hcm0taGVhZC5oPgorI2luY2x1ZGUgPG1hY2gvZXNkY3RsLmg+CisKK3N0YXRpYyBub2lu bGluZSBfX25vcmV0dXJuIHZvaWQgbXgzMW1vYm9hcmRfc3RhcnR1cCh2b2lkKQoreworCXVpbnQz Ml90IHI7CisJdm9sYXRpbGUgaW50IGM7CisKKwkvKiBFbmFibGUgSVBVIERpc3BsYXkgaW50ZXJm YWNlICovCisJd3JpdGVsKDEgPDwgNiwgTVgzMV9JUFVfQ1RSTF9CQVNFX0FERFIpOworCisJd3Jp dGVsKDB4MDc0QjBCRjUsIE1YMzFfQ0NNX0JBU0VfQUREUiArIE1YMzFfQ0NNX0NDTVIpOworCisJ Zm9yIChjID0gMDsgYyA8IDB4NDAwMDsgYysrKSA7CisKKwl3cml0ZWwoMHgwNzRCMEJGNSB8IE1Y MzFfQ0NNUl9NUEUsIE1YMzFfQ0NNX0JBU0VfQUREUiArCisJCQlNWDMxX0NDTV9DQ01SKTsKKwl3 cml0ZWwoKDB4MDc0QjBCRjUgfCBNWDMxX0NDTVJfTVBFKSAmIH5NWDMxX0NDTVJfTURTLAorCQkJ TVgzMV9DQ01fQkFTRV9BRERSICsgTVgzMV9DQ01fQ0NNUik7CisKKwl3cml0ZWwoTVgzMV9QRFIw X0NTSV9QT0RGKDB4MWZmKSB8IFwKKwkJTVgzMV9QRFIwX1BFUl9QT0RGKDcpIHwgXAorCQlNWDMx X1BEUjBfSFNQX1BPREYoMykgfCBcCisJCU1YMzFfUERSMF9ORkNfUE9ERig1KSB8IFwKKwkJTVgz MV9QRFIwX0lQR19QT0RGKDEpIHwgXAorCQlNWDMxX1BEUjBfTUFYX1BPREYoMykgfCBcCisJCU1Y MzFfUERSMF9NQ1VfUE9ERigwKSwgXAorCQlNWDMxX0NDTV9CQVNFX0FERFIgKyBNWDMxX0NDTV9Q RFIwKTsKKworCXdyaXRlbChJTVhfUExMX1BEKDApIHwgSU1YX1BMTF9NRkQoMHgzMykgfAorCQkJ SU1YX1BMTF9NRkkoMHhhKSB8IElNWF9QTExfTUZOKDB4MEMpLAorCQkJTVgzMV9DQ01fQkFTRV9B RERSICsgTVgzMV9DQ01fTVBDVEwpOworCXdyaXRlbChJTVhfUExMX1BEKDEpIHwgSU1YX1BMTF9N RkQoMHg0MykgfCBJTVhfUExMX01GSSgxMikgfAorCQkJSU1YX1BMTF9NRk4oMSksIE1YMzFfQ0NN X0JBU0VfQUREUiArCisJCQlNWDMxX0NDTV9TUENUTCk7CisKKwkvKgorCSAqIENvbmZpZ3VyZSBJ T01VWEMKKwkgKiBDbGVhcnMgMHg0M2ZhX2MyNmMgLSAweDQzZmFfYzJkYyB3aXRoIDAsCisJICog ZXhjZXB0IDB4NDNmYV9jMjc4ICh1bnRvdWNoZWQpLCAweDQzZmFfYzI3YyAoc2V0IHRvIDB4MTAw MCkKKwkgKiBhbmQgMHg0M2ZhX2MyODAgKHVudG91Y2hlZCkKKwkgKiAoYmVoYXZpb3VyIGNvcGll ZCBieSBzaGEsIHNvdXJjZSB1bmtub3duKQorCSAqLworCXdyaXRlbCgwLCAweDQzZmFjMjZjKTsg LyogU0RDTEsgKi8KKwl3cml0ZWwoMCwgMHg0M2ZhYzI3MCk7IC8qIENBUyAqLworCXdyaXRlbCgw LCAweDQzZmFjMjc0KTsgLyogUkFTICovCisKKwl3cml0ZWwoMHgxMDAwLCAweDQzZmFjMjdjKTsg LyogQ1NEMCAqLworCisJLyogRFFNMywgRFFNMiwgRFFNMSwgRFFNMCwgU0QzMS1TRDAsIEEyNS1B MCwgTUExMCAqLworCWZvciAociA9IDB4NDNmYWMyODQ7IHIgPD0gMHg0M2ZhYzJkYzsgciArPSA0 KQorCQl3cml0ZWwoMCwgcik7CisKKwkvKiBTa2lwIFNEUkFNIGluaXRpYWxpemF0aW9uIGlmIHdl IHJ1biBmcm9tIFJBTSAqLworCXIgPSBnZXRfcGMoKTsKKwlpZiAociA+IDB4ODAwMDAwMDAgJiYg ciA8IDB4YTAwMDAwMDApCisJCWlteDMxX2JhcmVib3hfZW50cnkoMCk7CisKKwl3cml0ZWwoMHgw MDAwMDAwNCwgTVgzMV9FU0RDVExfQkFTRV9BRERSICsgSU1YX0VTRE1JU0MpOworCXdyaXRlbCgw eDAwNjk1NzI3LCBNWDMxX0VTRENUTF9CQVNFX0FERFIgKyBJTVhfRVNEQ0ZHMCk7CisJd3JpdGVs KDB4OTIxMDAwMDAsIE1YMzFfRVNEQ1RMX0JBU0VfQUREUiArIElNWF9FU0RDVEwwKTsKKwl3cml0 ZWwoMHgxMjM0NDMyMSwgTVgzMV9DU0QwX0JBU0VfQUREUiArIDB4ZjAwKTsKKwl3cml0ZWwoMHhh MjEwMDAwMCwgTVgzMV9FU0RDVExfQkFTRV9BRERSICsgSU1YX0VTRENUTDApOworCXdyaXRlbCgw eDEyMzQ0MzIxLCBNWDMxX0NTRDBfQkFTRV9BRERSKTsKKwl3cml0ZWwoMHgxMjM0NDMyMSwgTVgz MV9DU0QwX0JBU0VfQUREUik7CisJd3JpdGVsKDB4YjIxMDAwMDAsIE1YMzFfRVNEQ1RMX0JBU0Vf QUREUiArIElNWF9FU0RDVEwwKTsKKwl3cml0ZWIoMHhkYSwgTVgzMV9DU0QwX0JBU0VfQUREUiAr IDB4MzMpOworCXdyaXRlYigweGZmLCBNWDMxX0NTRDBfQkFTRV9BRERSICsgMHgwMTAwMDAwMCk7 CisJd3JpdGVsKDB4ODIyMjYwODAsIE1YMzFfRVNEQ1RMX0JBU0VfQUREUiArIElNWF9FU0RDVEww KTsKKwl3cml0ZWwoMHhERUFEQkVFRiwgTVgzMV9DU0QwX0JBU0VfQUREUik7CisJd3JpdGVsKDB4 MDAwMDAwMGMsIE1YMzFfRVNEQ1RMX0JBU0VfQUREUiArIElNWF9FU0RNSVNDKTsKKworCWlteDMx X2JhcmVib3hfZW50cnkoMCk7CisKK30KKwordm9pZCBfX2JhcmVfaW5pdCBfX25ha2VkIGJhcmVi b3hfYXJtX3Jlc2V0X3ZlY3Rvcih2b2lkKQoreworCWFybV9jcHVfbG93bGV2ZWxfaW5pdCgpOwor CisJLyogVGVtcG9yYXJ5IHN0YWNrIGxvY2F0aW9uIGluIGludGVybmFsIFNSQU0gKi8KKwlhcm1f c2V0dXBfc3RhY2soTVgzMV9JUkFNX0JBU0VfQUREUiArIE1YMzFfSVJBTV9TSVpFIC0gOCk7CisK KwlteDMxbW9ib2FyZF9zdGFydHVwKCk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMv bXgzMW1vYm9hcmQvbXgzMW1vYm9hcmQuYyBiL2FyY2gvYXJtL2JvYXJkcy9teDMxbW9ib2FyZC9t eDMxbW9ib2FyZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlYzFmNGYK LS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9ib2FyZHMvbXgzMW1vYm9hcmQvbXgzMW1vYm9h cmQuYwpAQCAtMCwwICsxLDI1OSBAQAorLyoKKyAqIChDKSAyMDA3IFBlbmd1dHJvbml4LCBTYXNj aGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CisgKiAoQykgMjAxNCBFUEZMLCBQaGls aXBwZSBSw6l0b3JuYXogPHBoaWxpcHBlLnJldG9ybmF6QGVwZmwuY2g+CisgKgorICogU2VlIGZp bGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKKyAq IHByb2plY3QuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCisgKiB0aGUgTGljZW5z ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorICoKKyAqCisgKiBCb2FyZCBzdXBwb3J0IGZvciBFUEZMJ3MsIGkuTVgzMSBi YXNlZCBDUFUgY2FyZAorICoKKyAqIEJhc2VkIG9uOgorICogQm9hcmQgc3VwcG9ydCBmb3IgUGh5 dGVjJ3MsIGkuTVgzMSBiYXNlZCBDUFUgY2FyZCwgY2FsbGVkOiBQQ00wMzcKKyAqLworCisjaW5j bHVkZSA8Y29tbW9uLmg+CisjaW5jbHVkZSA8aW5pdC5oPgorI2luY2x1ZGUgPGRyaXZlci5oPgor I2luY2x1ZGUgPGZzLmg+CisjaW5jbHVkZSA8Z3Bpby5oPgorI2luY2x1ZGUgPGxlZC5oPgorI2lu Y2x1ZGUgPGVudmlyb25tZW50Lmg+CisjaW5jbHVkZSA8dXNiL3VscGkuaD4KKyNpbmNsdWRlIDxt YWNoL2lteDMxLXJlZ3MuaD4KKyNpbmNsdWRlIDxtYWNoL2lvbXV4LW14MzEuaD4KKyNpbmNsdWRl IDxhc20vYXJtbGludXguaD4KKyNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KKyNpbmNsdWRlIDxt YWNoL3dlaW0uaD4KKyNpbmNsdWRlIDxpby5oPgorI2luY2x1ZGUgPGFzbS9tbXUuaD4KKyNpbmNs dWRlIDxwYXJ0aXRpb24uaD4KKyNpbmNsdWRlIDxnZW5lcmF0ZWQvbWFjaC10eXBlcy5oPgorI2lu Y2x1ZGUgPGFzbS9iYXJlYm94LWFybS5oPgorI2luY2x1ZGUgPG1hY2gvZGV2aWNlcy1pbXgzMS5o PgorCisjZGVmaW5lIFVTQkgyX0VOX0IJSU9NVVhfVE9fR1BJTyhNWDMxX1BJTl9TQ0s2KQorI2Rl ZmluZSBVU0JfUkVTRVRfQglJT01VWF9UT19HUElPKE1YMzFfUElOX0dQSU8xXzApCisKK3N0YXRp YyB2b2lkIG14MzFtb2JvYXJkX3VzYl9pbml0KHZvaWQpCit7CisJdTMyIHRtcDsKKworCWlmICgh SVNfRU5BQkxFRChDT05GSUdfVVNCKSkKKwkJcmV0dXJuOworCisJLyogZW5hYmxlIGNsb2NrICov CisJdG1wID0gcmVhZGwoMHg1M2Y4MDAwMCk7CisJdG1wIHw9ICgxIDw8IDkpOworCXdyaXRlbCh0 bXAsIDB4NTNmODAwMDApOworCisJLyogSG9zdCAyICovCisJdG1wID0gcmVhZGwoTVgzMV9JT01V WENfR1BSKTsKKwl0bXAgfD0gMSA8PCAxMTsJLyogSU9NVVggR1BSOiBlbmFibGUgVVNCSDIgc2ln bmFscyAqLworCXdyaXRlbCh0bXAsIE1YMzFfSU9NVVhDX0dQUik7CisKKwlpbXhfaW9tdXhfbW9k ZShJT01VWF9NT0RFKE1YMzFfUElOX1NDSzYsIElPTVVYX0NPTkZJR19HUElPKSk7CisJaW14X2lv bXV4X21vZGUoSU9NVVhfTU9ERShNWDMxX1BJTl9HUElPMV8wLCBJT01VWF9DT05GSUdfR1BJTykp OworCWlteF9pb211eF9tb2RlKElPTVVYX01PREUoTVgzMV9QSU5fVVNCSDJfQ0xLLCBJT01VWF9D T05GSUdfRlVOQykpOworCWlteF9pb211eF9tb2RlKElPTVVYX01PREUoTVgzMV9QSU5fVVNCSDJf RElSLCBJT01VWF9DT05GSUdfRlVOQykpOworCWlteF9pb211eF9tb2RlKElPTVVYX01PREUoTVgz MV9QSU5fVVNCSDJfTlhULCBJT01VWF9DT05GSUdfRlVOQykpOworCWlteF9pb211eF9tb2RlKElP TVVYX01PREUoTVgzMV9QSU5fVVNCSDJfU1RQLCBJT01VWF9DT05GSUdfRlVOQykpOworCWlteF9p b211eF9tb2RlKElPTVVYX01PREUoTVgzMV9QSU5fVVNCSDJfREFUQTAsIElPTVVYX0NPTkZJR19G VU5DKSk7CisJaW14X2lvbXV4X21vZGUoSU9NVVhfTU9ERShNWDMxX1BJTl9VU0JIMl9EQVRBMSwg SU9NVVhfQ09ORklHX0ZVTkMpKTsKKwlpbXhfaW9tdXhfbW9kZShJT01VWF9NT0RFKE1YMzFfUElO X1NUWEQzLCBJT01VWF9DT05GSUdfRlVOQykpOworCWlteF9pb211eF9tb2RlKElPTVVYX01PREUo TVgzMV9QSU5fU1JYRDMsIElPTVVYX0NPTkZJR19GVU5DKSk7CisJaW14X2lvbXV4X21vZGUoSU9N VVhfTU9ERShNWDMxX1BJTl9TQ0szLCBJT01VWF9DT05GSUdfRlVOQykpOworCWlteF9pb211eF9t b2RlKElPTVVYX01PREUoTVgzMV9QSU5fU0ZTMywgSU9NVVhfQ09ORklHX0ZVTkMpKTsKKwlpbXhf aW9tdXhfbW9kZShJT01VWF9NT0RFKE1YMzFfUElOX1NUWEQ2LCBJT01VWF9DT05GSUdfRlVOQykp OworCWlteF9pb211eF9tb2RlKElPTVVYX01PREUoTVgzMV9QSU5fU1JYRDYsIElPTVVYX0NPTkZJ R19GVU5DKSk7CisKKyNkZWZpbmUgSDJfUEFEX0NGRyAoUEFEX0NUTF9EUlZfTUFYIHwgUEFEX0NU TF9TUkVfRkFTVCB8IFBBRF9DVExfSFlTX0NNT1MgXAorCQkJfCBQQURfQ1RMX09ERV9DTU9TKQor CWlteF9pb211eF9zZXRfcGFkKE1YMzFfUElOX1VTQkgyX0NMSywgSDJfUEFEX0NGRyB8IFBBRF9D VExfMTAwS19QVSk7CisJaW14X2lvbXV4X3NldF9wYWQoTVgzMV9QSU5fVVNCSDJfRElSLCBIMl9Q QURfQ0ZHIHwgUEFEX0NUTF8xMDBLX1BVKTsKKwlpbXhfaW9tdXhfc2V0X3BhZChNWDMxX1BJTl9V U0JIMl9OWFQsIEgyX1BBRF9DRkcgfCBQQURfQ1RMXzEwMEtfUFUpOworCWlteF9pb211eF9zZXRf cGFkKE1YMzFfUElOX1VTQkgyX1NUUCwgSDJfUEFEX0NGRyB8IFBBRF9DVExfMTAwS19QVSk7CisJ aW14X2lvbXV4X3NldF9wYWQoTVgzMV9QSU5fVVNCSDJfREFUQTAsIEgyX1BBRF9DRkcpOyAvKiBV U0JIMl9EQVRBMCAqLworCWlteF9pb211eF9zZXRfcGFkKE1YMzFfUElOX1VTQkgyX0RBVEExLCBI Ml9QQURfQ0ZHKTsgLyogVVNCSDJfREFUQTEgKi8KKwlpbXhfaW9tdXhfc2V0X3BhZChNWDMxX1BJ Tl9TUlhENiwgSDJfUEFEX0NGRyk7CS8qIFVTQkgyX0RBVEEyICovCisJaW14X2lvbXV4X3NldF9w YWQoTVgzMV9QSU5fU1RYRDYsIEgyX1BBRF9DRkcpOwkvKiBVU0JIMl9EQVRBMyAqLworCWlteF9p b211eF9zZXRfcGFkKE1YMzFfUElOX1NGUzMsIEgyX1BBRF9DRkcpOwkvKiBVU0JIMl9EQVRBNCAq LworCWlteF9pb211eF9zZXRfcGFkKE1YMzFfUElOX1NDSzMsIEgyX1BBRF9DRkcpOwkvKiBVU0JI Ml9EQVRBNSAqLworCWlteF9pb211eF9zZXRfcGFkKE1YMzFfUElOX1NSWEQzLCBIMl9QQURfQ0ZH KTsJLyogVVNCSDJfREFUQTYgKi8KKwlpbXhfaW9tdXhfc2V0X3BhZChNWDMxX1BJTl9TVFhEMywg SDJfUEFEX0NGRyk7CS8qIFVTQkgyX0RBVEE3ICovCisKKworCWdwaW9fcmVxdWVzdChVU0JfUkVT RVRfQiwgInVzYi1yZXNldCIpOworCWdwaW9fZGlyZWN0aW9uX291dHB1dChVU0JfUkVTRVRfQiwg MCk7CisJbWRlbGF5KDUpOworCWdwaW9fc2V0X3ZhbHVlKFVTQl9SRVNFVF9CLCAxKTsKKwltZGVs YXkoMTApOworCisJZ3Bpb19yZXF1ZXN0KFVTQkgyX0VOX0IsICJ1c2JoMi1lbiIpOworCWdwaW9f ZGlyZWN0aW9uX291dHB1dChVU0JIMl9FTl9CLCAwKTsKKwl1ZGVsYXkoOTAwKTsKKwlncGlvX3Nl dF92YWx1ZShVU0JIMl9FTl9CLCAxKTsKKwl1ZGVsYXkoMjAwKTsKKworCXRtcCA9IHJlYWRsKE1Y MzFfVVNCX09UR19CQVNFX0FERFIgKyAweDYwMCk7CisJdG1wICY9IH4oKDMgPDwgMjEpIHwgMSk7 CisJdG1wIHw9ICgxIDw8IDUpIHwgKDEgPDwgMTYpIHwgKDEgPDwgMTkpIHwgKDEgPDwgMjApOwor CXdyaXRlbCh0bXAsIE1YMzFfVVNCX09UR19CQVNFX0FERFIgKyAweDYwMCk7CisKKwl0bXAgPSBy ZWFkbChNWDMxX1VTQl9PVEdfQkFTRV9BRERSICsgMHg1ODQpOworCXRtcCAmPSB+KDMgPDwgMzAp OworCXRtcCB8PSAyIDw8IDMwOworCXdyaXRlbCh0bXAsIE1YMzFfVVNCX09UR19CQVNFX0FERFIg KyAweDU4NCk7CisKKwlncGlvX3NldF92YWx1ZShVU0JIMl9FTl9CLCAwKTsKKworCW1kZWxheSg1 MCk7CisKKwl1bHBpX3NldHVwKCh2b2lkICopKE1YMzFfVVNCX09UR19CQVNFX0FERFIgKyAweDU3 MCksIDEpOworCisJLyogU2V0IHRvIEhvc3QgbW9kZSAqLworCXRtcCA9IHJlYWRsKE1YMzFfVVNC X09UR19CQVNFX0FERFIgKyAweDFhOCk7CisJd3JpdGVsKHRtcCB8IDB4MywgTVgzMV9VU0JfT1RH X0JBU0VfQUREUiArIDB4MWE4KTsKKworfQorCitzdGF0aWMgc3RydWN0IGdwaW9fbGVkIG14MzFt b2JvYXJkX2xlZHNbXSA9IHsKKwl7CisJCS5sZWQgPSB7CisJCQkubmFtZSA9ICJjb3JlYm9hcmQt bGVkLTA6cmVkOnJ1bm5pbmciCisJCX0sCisJCS5ncGlvID0gSU9NVVhfVE9fR1BJTyhNWDMxX1BJ Tl9TVkVOMCksCisJfSwgeworCQkubGVkID0geworCQkJLm5hbWUgICA9ICJjb3JlYm9hcmQtbGVk LTE6cmVkIiwKKwkJfSwKKwkJLmdwaW8gPSBJT01VWF9UT19HUElPKE1YMzFfUElOX1NUWDApLAor CX0sIHsKKwkJLmxlZCA9IHsKKwkJCS5uYW1lICAgPSAiY29yZWJvYXJkLWxlZC0yOnJlZCIsCisJ CX0sCisJCS5ncGlvICAgPSBJT01VWF9UT19HUElPKE1YMzFfUElOX1NSWDApLAorCX0sIHsKKwkJ LmxlZCA9IHsKKwkJCS5uYW1lICAgPSAiY29yZWJvYXJkLWxlZC0zOnJlZCIsCisJCX0sCisJCS5n cGlvID0gSU9NVVhfVE9fR1BJTyhNWDMxX1BJTl9TSU1QRDApLAorCX0sCit9OworCitzdGF0aWMg dm9pZCBteDMxbW9ib2FyZF9hZGRfbGVkcyh2b2lkKQoreworCWludCBpOworCisJaWYgKCFJU19F TkFCTEVEKENPTkZJR19MRURfR1BJTykpCisJCXJldHVybjsKKworCWZvciAoaSA9IDA7IGkgPCBB UlJBWV9TSVpFKG14MzFtb2JvYXJkX2xlZHMpOyBpKyspIHsKKwkJbGVkX2dwaW9fcmVnaXN0ZXIo Jm14MzFtb2JvYXJkX2xlZHNbaV0pOworCQlsZWRfc2V0KCZteDMxbW9ib2FyZF9sZWRzW2ldLmxl ZCwgMCk7CisJfQorCisJbGVkX3NldF90cmlnZ2VyKExFRF9UUklHR0VSX0hFQVJUQkVBVCwgJm14 MzFtb2JvYXJkX2xlZHNbMF0ubGVkKTsKK30KKworc3RhdGljIGludCBteDMxbW9ib2FyZF9tbXVf aW5pdCh2b2lkKQoreworCWwyeDBfaW5pdCgodm9pZCBfX2lvbWVtICopMHgzMDAwMDAwMCwgMHgw MDAzMDAyNCwgMHgwMDAwMDAwMCk7CisKKwlyZXR1cm4gMDsKK30KK3Bvc3RtbXVfaW5pdGNhbGwo bXgzMW1vYm9hcmRfbW11X2luaXQpOworCitzdGF0aWMgY29uc3Qgc3RydWN0IGRldmZzX3BhcnRp dGlvbiBteDMxbW9ib2FyZF9ub3IwX3BhcnRpdGlvbnNbXSA9IHsKKwl7CisJCS5vZmZzZXQgPSAw LAorCQkuc2l6ZSA9IFNaXzUxMkssCisJCS5mbGFncyA9IERFVkZTX1BBUlRJVElPTl9GSVhFRCwK KwkJLm5hbWUgPSAic2VsZjAiLAorCX0sIHsKKwkJLm9mZnNldCA9IERFVkZTX1BBUlRJVElPTl9B UFBFTkQsCisJCS5zaXplID0gU1pfMjU2SywKKwkJLm5hbWUgPSAiZW52MCIsCisJfSwgeworCQkv KiBTZW50aW5lbCAqLworCX0KK307CisKK3N0YXRpYyBpbnQgbXgzMW1vYm9hcmRfZGV2aWNlc19p bml0KHZvaWQpCit7CisJLyogQ1MwOiBOb3IgRmxhc2ggKi8KKwlpbXgzMV9zZXR1cF93ZWltY3Mo MCwgMHgwMDAwQ0MwMywgMHhhMDMzMEQwMSwgMHgwMDIyMDgwMCk7CisKKwkvKgorCSAqIFVwIHRv IDMyTWlCIE5PUiB0eXBlIGZsYXNoLCBjb25uZWN0ZWQgdG8KKwkgKiBDUyBsaW5lIDAsIGRhdGEg d2lkdGggaXMgMTYgYml0CisJICovCisJYWRkX2NmaV9mbGFzaF9kZXZpY2UoREVWSUNFX0lEX0RZ TkFNSUMsIE1YMzFfQ1MwX0JBU0VfQUREUiwgU1pfMzJNLCAwKTsKKworCWlteDMxX2FkZF9tbWMw KE5VTEwpOworCisJLyoKKwkgKiBDcmVhdGUgcGFydGl0aW9ucyB0aGF0IHNob3VsZCBiZQorCSAq IG5vdCB0b3VjaGVkIGJ5IGFueSByZWd1bGFyIHVzZXIKKwkgKi8KKwlkZXZmc19jcmVhdGVfcGFy dGl0aW9ucygibm9yMCIsIG14MzFtb2JvYXJkX25vcjBfcGFydGl0aW9ucyk7CisJcHJvdGVjdF9m aWxlKCIvZGV2L2VudjAiLCAxKTsKKworCW14MzFtb2JvYXJkX3VzYl9pbml0KCk7CisJYWRkX2dl bmVyaWNfdXNiX2VoY2lfZGV2aWNlKERFVklDRV9JRF9EWU5BTUlDLAorCQkJCQlNWDMxX1VTQl9I UzJfQkFTRV9BRERSLCBOVUxMKTsKKworCW14MzFtb2JvYXJkX2FkZF9sZWRzKCk7CisKKwlhcm1s aW51eF9zZXRfYXJjaGl0ZWN0dXJlKE1BQ0hfVFlQRV9NWDMxTU9CT0FSRCk7CisKKwlyZXR1cm4g MDsKK30KKworZGV2aWNlX2luaXRjYWxsKG14MzFtb2JvYXJkX2RldmljZXNfaW5pdCk7CisKK3N0 YXRpYyB1bnNpZ25lZCBpbnQgbXgzMW1vYm9hcmRfaW9tdXhbXSA9IHsKKwkvKiBVQVJUMSAqLwor CU1YMzFfUElOX1JYRDFfX1JYRDEsCisJTVgzMV9QSU5fVFhEMV9fVFhEMSwKKwlNWDMxX1BJTl9D VFMxX19HUElPMl83LAorCS8qIFNESEMxICovCisJTVgzMV9QSU5fU0QxX0RBVEEzX19TRDFfREFU QTMsCisJTVgzMV9QSU5fU0QxX0RBVEEyX19TRDFfREFUQTIsCisJTVgzMV9QSU5fU0QxX0RBVEEx X19TRDFfREFUQTEsCisJTVgzMV9QSU5fU0QxX0RBVEEwX19TRDFfREFUQTAsCisJTVgzMV9QSU5f U0QxX0NMS19fU0QxX0NMSywKKwlNWDMxX1BJTl9TRDFfQ01EX19TRDFfQ01ELAorCU1YMzFfUElO X0FUQV9DUzBfX0dQSU8zXzI2LCBNWDMxX1BJTl9BVEFfQ1MxX19HUElPM18yNywKKwkvKiBMRURT ICovCisJTVgzMV9QSU5fU1ZFTjBfX0dQSU8yXzAsIE1YMzFfUElOX1NUWDBfX0dQSU8yXzEsCisJ TVgzMV9QSU5fU1JYMF9fR1BJTzJfMiwgTVgzMV9QSU5fU0lNUEQwX19HUElPMl8zLAorfTsKKwor c3RhdGljIGludCBpbXgzMV9jb25zb2xlX2luaXQodm9pZCkKK3sKKwlpbXhfaW9tdXhfc2V0dXBf bXVsdGlwbGVfcGlucyhteDMxbW9ib2FyZF9pb211eCwKKwkJCQkJQVJSQVlfU0laRShteDMxbW9i b2FyZF9pb211eCkpOworCisJZ3Bpb19yZXF1ZXN0KElPTVVYX1RPX0dQSU8oTVgzMV9QSU5fQ1RT MSksICJ1YXJ0MC1jdHMtaGFjayIpOworCWdwaW9fZGlyZWN0aW9uX291dHB1dChJT01VWF9UT19H UElPKE1YMzFfUElOX0NUUzEpLCAwKTsKKworCWJhcmVib3hfc2V0X21vZGVsKCJFUEZMIG14MzFt b2JvYXJkIik7CisJYmFyZWJveF9zZXRfaG9zdG5hbWUoIm14MzFtb2JvYXJkIik7CisKKwlpbXgz MV9hZGRfdWFydDAoKTsKKworCXJldHVybiAwOworfQorCitjb25zb2xlX2luaXRjYWxsKGlteDMx X2NvbnNvbGVfaW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvbXgzMW1vYm9hcmQv bXgzMW1vYm9hcmQuZG94IGIvYXJjaC9hcm0vYm9hcmRzL214MzFtb2JvYXJkL214MzFtb2JvYXJk LmRveApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MWM4YmJiCi0tLSAvZGV2 L251bGwKKysrIGIvYXJjaC9hcm0vYm9hcmRzL214MzFtb2JvYXJkL214MzFtb2JvYXJkLmRveApA QCAtMCwwICsxLDEwIEBACisvKiogQHBhZ2UgbXgzMW1vYm9hcmQgRVBGTCBteDMxbW9ib2FyZAor CitUaGlzIENQVSBjYXJkIGlzIGJhc2VkIG9uIGEgRnJlZXNjYWxlIGkuTVgzMSBDUFUuIFRoZSBj YXJkIGlzIHNoaXBwZWQgd2l0aDoKKworLSAzMk1pQiBOT1IgdHlwZSBGbGFzaCBNZW1vcnkKKy0g MTI4TWlCIExQRERSCistIEEgbGVhc3Qgb25lIFNEIHNsb3QKKy0gQSBsZWFzdCBvbmUgVVNCIGhv c3QgKEgyKQorCisqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbXgvS2NvbmZpZyBiL2Fy Y2gvYXJtL21hY2gtaW14L0tjb25maWcKaW5kZXggNzllYTY5NC4uYjdlNzUzMyAxMDA2NDQKLS0t IGEvYXJjaC9hcm0vbWFjaC1pbXgvS2NvbmZpZworKysgYi9hcmNoL2FybS9tYWNoLWlteC9LY29u ZmlnCkBAIC0xNCw2ICsxNCw3IEBAIGNvbmZpZyBBUkNIX1RFWFRfQkFTRQogCWRlZmF1bHQgMHhh N2YwMDAwMCBpZiBNQUNIX1BDQTEwMAogCWRlZmF1bHQgMHhhMDAwMDAwMCBpZiBNQUNIX1BDTTAz OAogCWRlZmF1bHQgMHg4N2YwMDAwMCBpZiBNQUNIX1BDTTAzNworCWRlZmF1bHQgMHg4N2YwMDAw MCBpZiBNQUNIX01YMzFNT0JPQVJECiAJZGVmYXVsdCAweDg3ZjAwMDAwIGlmIE1BQ0hfUENNMDQz CiAJZGVmYXVsdCAweDA4ZjgwMDAwIGlmIE1BQ0hfU0NCOTMyOAogCWRlZmF1bHQgMHhhN2UwMDAw MCBpZiBNQUNIX05FU08KQEAgLTM2Myw2ICszNjQsMTYgQEAgY29uZmlnIE1BQ0hfUENNMDM3CiAJ ICBTYXkgWSBoZXJlIGlmIHlvdSBhcmUgdXNpbmcgUGh5dGVjJ3MgcGh5Q09SRS1pLk1YMzEgKHBj bTAzNykgZXF1aXBwZWQKIAkgIHdpdGggYSBGcmVlc2NhbGUgaS5NWDMxIFByb2Nlc3NvcgogCitj b25maWcgTUFDSF9NWDMxTU9CT0FSRAorCWJvb2wgIm14MzFtb2JvYXJkLWkuTVgzMSIKKwlzZWxl Y3QgQVJDSF9JTVgzMQorCXNlbGVjdCBVU0JfVUxQSSBpZiBVU0IKKwlzZWxlY3QgSEFWRV9ERUZB VUxUX0VOVklST05NRU5UX05FVworCXNlbGVjdCBBUkNIX0hBU19MMlgwCisJaGVscAorCSAgU2F5 IFkgaGVyZSBpZiB5b3UgYXJlIHVzaW5nIEVQRkwgbXgzMW1vYm9hcmQgYm9hcmQgZXF1aXBwZWQK KwkgIHdpdGggYSBGcmVlc2NhbGUgaS5NWDMxIFByb2Nlc3NvcgorCiAjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogY29tbWVudCAi aS5NWDM1IEJvYXJkcyIKLS0gCjEuNy45LjUKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpiYXJlYm94IG1haWxpbmcgbGlzdApiYXJlYm94QGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9i YXJlYm94Cg==