From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from 13.mo5.mail-out.ovh.net ([87.98.182.191] helo=mo5.mail-out.ovh.net) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1TTX3q-0002kS-T8 for barebox@lists.infradead.org; Wed, 31 Oct 2012 12:06:22 +0000 Received: from mail193.ha.ovh.net (b7.ovh.net [213.186.33.57]) by mo5.mail-out.ovh.net (Postfix) with SMTP id 36EC8FFA81B for ; Wed, 31 Oct 2012 13:13:27 +0100 (CET) From: Jean-Christophe PLAGNIOL-VILLARD Date: Wed, 31 Oct 2012 13:04:02 +0100 Message-Id: <1351685043-29058-1-git-send-email-plagnioj@jcrosoft.com> In-Reply-To: <20121031120122.GF29599@game.jcrosoft.org> References: <20121031120122.GF29599@game.jcrosoft.org> 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: =?UTF-8?q?=5BPATCH=201/2=5D=20m25p80=3A=20re-import=20it=20againt=20mtd=5Fadd=5Fhost?= To: barebox@lists.infradead.org c28gd2Ugbm93IGNyZWF0ZSB0aGUgY2RldiB2aWEgbXRkCgpUaGlzIHdpbGwgYWxzbyBzaW1wbGlm eSBzeW5jIHdpdGggbGludXgKCnRvIGF2b2lkIHRoZSBtMjVwODAwMCBvciBtMjVwMDAgdGhlIGNk ZXYgaXMgc3RpbGwgbmFtZWQgbmFtZSBtMjVwIGFuZCB0aGUKZHJpdmVycyBtMjVwODAKClNpZ25l ZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jv c29mdC5jb20+Ci0tLQogYXJjaC9hcm0vYm9hcmRzL2ZyZWVzY2FsZS1teDYtc2FicmVsaXRlL2Jv YXJkLmMgfCAgICAyICstCiBkcml2ZXJzL210ZC9kZXZpY2VzL0tjb25maWcgICAgICAgICAgICAg ICAgICAgICB8ICAgMjcgKysKIGRyaXZlcnMvbXRkL2RldmljZXMvTWFrZWZpbGUgICAgICAgICAg ICAgICAgICAgIHwgICAgMSArCiBkcml2ZXJzL3tub3IgPT4gbXRkL2RldmljZXN9L20yNXA4MC5j ICAgICAgICAgICB8ICA0NzAgKysrKysrKysrKysrLS0tLS0tLS0tLS0KIGRyaXZlcnMvbm9yL0tj b25maWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNyAtLQogZHJpdmVycy9ub3Iv TWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxIC0KIGRyaXZlcnMvbm9y L20yNXA4MC5oICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4NCAtLS0tCiBpbmNsdWRl L2xpbnV4L210ZC9jZmkuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNjUgKysrKwogOCBm aWxlcyBjaGFuZ2VkLCAzMzggaW5zZXJ0aW9ucygrKSwgMzM5IGRlbGV0aW9ucygtKQogcmVuYW1l IGRyaXZlcnMve25vciA9PiBtdGQvZGV2aWNlc30vbTI1cDgwLmMgKDY5JSkKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL25vci9tMjVwODAuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUv bGludXgvbXRkL2NmaS5oCgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL2ZyZWVzY2FsZS1t eDYtc2FicmVsaXRlL2JvYXJkLmMgYi9hcmNoL2FybS9ib2FyZHMvZnJlZXNjYWxlLW14Ni1zYWJy ZWxpdGUvYm9hcmQuYwppbmRleCAyNTQwMmQ3Li4xYzFhZTU2IDEwMDY0NAotLS0gYS9hcmNoL2Fy bS9ib2FyZHMvZnJlZXNjYWxlLW14Ni1zYWJyZWxpdGUvYm9hcmQuYworKysgYi9hcmNoL2FybS9i b2FyZHMvZnJlZXNjYWxlLW14Ni1zYWJyZWxpdGUvYm9hcmQuYwpAQCAtMjA5LDcgKzIwOSw3IEBA IHN0YXRpYyBzdHJ1Y3Qgc3BpX2lteF9tYXN0ZXIgc2FicmVsaXRlX3NwaV8wX2RhdGEgPSB7CiAK IHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX2JvYXJkX2luZm8gc2FicmVsaXRlX3NwaV9ib2FyZF9p bmZvW10gPSB7CiAJewotCQkubmFtZSA9ICJtMjVwIiwKKwkJLm5hbWUgPSAibTI1cDgwIiwKIAkJ Lm1heF9zcGVlZF9oeiA9IDQwMDAwMDAwLAogCQkuYnVzX251bSA9IDAsCiAJCS5jaGlwX3NlbGVj dCA9IDAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9kZXZpY2VzL0tjb25maWcgYi9kcml2ZXJz L210ZC9kZXZpY2VzL0tjb25maWcKaW5kZXggZTk1NjkyMS4uNjc5ZWE4MCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9tdGQvZGV2aWNlcy9LY29uZmlnCisrKyBiL2RyaXZlcnMvbXRkL2RldmljZXMvS2Nv bmZpZwpAQCAtMTksNiArMTksMzMgQEAgY29uZmlnIE1URF9EQVRBRkxBU0hfV1JJVEVfVkVSSUZZ CiAJICBkZXZpY2UgdGhpbmtzIHRoZSB3cml0ZSB3YXMgc3VjY2Vzc2Z1bCwgYSBiaXQgY291bGQg aGF2ZSBiZWVuCiAJICBmbGlwcGVkIGFjY2lkZW50YWxseSBkdWUgdG8gZGV2aWNlIHdlYXIgb3Ig c29tZXRoaW5nIGVsc2UuCiAKK2NvbmZpZyBNVERfTTI1UDgwCisJdHJpc3RhdGUgIlN1cHBvcnQg bW9zdCBTUEkgRmxhc2ggY2hpcHMgKEFUMjZERiwgTTI1UCwgVzI1WCwgLi4uKSIKKwlkZXBlbmRz IG9uIFNQSQorCWhlbHAKKwkgIFRoaXMgZW5hYmxlcyBhY2Nlc3MgdG8gbW9zdCBtb2Rlcm4gU1BJ IGZsYXNoIGNoaXBzLCB1c2VkIGZvcgorCSAgcHJvZ3JhbSBhbmQgZGF0YSBzdG9yYWdlLiAgIFNl cmllcyBzdXBwb3J0ZWQgaW5jbHVkZSBBdG1lbCBBVDI2REYsCisJICBTcGFuc2lvbiBTMjVTTCwg U1NUIDI1VkYsIFNUIE0yNVAsIGFuZCBXaW5ib25kIFcyNVguICBPdGhlciBjaGlwcworCSAgYXJl IHN1cHBvcnRlZCBhcyB3ZWxsLiAgU2VlIHRoZSBkcml2ZXIgc291cmNlIGZvciB0aGUgY3VycmVu dCBsaXN0LAorCSAgb3IgdG8gYWRkIG90aGVyIGNoaXBzLgorCisJICBOb3RlIHRoYXQgdGhlIG9y aWdpbmFsIERhdGFGbGFzaCBjaGlwcyAoQVQ0NSBzZXJpZXMsIG5vdCBBVDI2REYpLAorCSAgbmVl ZCBhbiBlbnRpcmVseSBkaWZmZXJlbnQgZHJpdmVyLgorCisJICBTZXQgdXAgeW91ciBzcGkgZGV2 aWNlcyB3aXRoIHRoZSByaWdodCBib2FyZC1zcGVjaWZpYyBwbGF0Zm9ybSBkYXRhLAorCSAgaWYg eW91IHdhbnQgdG8gc3BlY2lmeSBkZXZpY2UgcGFydGl0aW9uaW5nIG9yIHRvIHVzZSBhIGRldmlj ZSB3aGljaAorCSAgZG9lc24ndCBzdXBwb3J0IHRoZSBKRURFQyBJRCBpbnN0cnVjdGlvbi4KKwor Y29uZmlnIE1URF9TU1QyNUwKKwl0cmlzdGF0ZSAiU3VwcG9ydCBTU1QyNUwgKG5vbiBKRURFQykg U1BJIEZsYXNoIGNoaXBzIgorCWRlcGVuZHMgb24gTVREX00yNVA4MAorCWhlbHAKKwkgIFRoaXMg ZW5hYmxlcyBhY2Nlc3MgdG8gdGhlIG5vbiBKRURFQyBTU1QyNUwgU1BJIGZsYXNoIGNoaXBzLCB1 c2VkCisJICBmb3IgcHJvZ3JhbSBhbmQgZGF0YSBzdG9yYWdlLgorCisJICBTZXQgdXAgeW91ciBz cGkgZGV2aWNlcyB3aXRoIHRoZSByaWdodCBib2FyZC1zcGVjaWZpYyBwbGF0Zm9ybSBkYXRhLAor CSAgaWYgeW91IHdhbnQgdG8gc3BlY2lmeSBkZXZpY2UgcGFydGl0aW9uaW5nLgorCiBjb25maWcg TVREX0RPQ0czCiAJYm9vbCAiTS1TeXN0ZW1zIERpc2stT24tQ2hpcCBHMyIKIAlzZWxlY3QgQkNI CmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9kZXZpY2VzL01ha2VmaWxlIGIvZHJpdmVycy9tdGQv ZGV2aWNlcy9NYWtlZmlsZQppbmRleCBkN2UyN2QxLi5iZjFmOGE5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL210ZC9kZXZpY2VzL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvbXRkL2RldmljZXMvTWFrZWZp bGUKQEAgLTQsMyArNCw0IEBACiAKIG9iai0kKENPTkZJR19NVERfREFUQUZMQVNIKQkrPSBtdGRf ZGF0YWZsYXNoLm8KIG9iai0kKENPTkZJR19NVERfRE9DRzMpCQkrPSBkb2NnMy5vCitvYmotJChD T05GSUdfTVREX00yNVA4MCkJKz0gbTI1cDgwLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbm9yL20y NXA4MC5jIGIvZHJpdmVycy9tdGQvZGV2aWNlcy9tMjVwODAuYwpzaW1pbGFyaXR5IGluZGV4IDY5 JQpyZW5hbWUgZnJvbSBkcml2ZXJzL25vci9tMjVwODAuYwpyZW5hbWUgdG8gZHJpdmVycy9tdGQv ZGV2aWNlcy9tMjVwODAuYwppbmRleCBlM2I1Yjk1Li5iNGFjMDQ1IDEwMDY0NAotLS0gYS9kcml2 ZXJzL25vci9tMjVwODAuYworKysgYi9kcml2ZXJzL210ZC9kZXZpY2VzL20yNXA4MC5jCkBAIC00 LDkgKzQsNiBAQAogICogQXV0aG9yOiBNaWtlIExhdmVuZGVyLCBtaWtlQHN0ZXJvaWRtaWNyb3Mu Y29tCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDUsIEludGVjIEF1dG9tYXRpb24gSW5jLgogICoKLSAq IEFkYXB0ZWQgdG8gYmFyZWJveCA6ICBGcmFuY2sgSlVMTElFTiA8ZWxlYzRmdW5AZ21haWwuY29t PgotICogQ29weXJpZ2h0IChjKSAyMDExCi0gKgogICogU29tZSBwYXJ0cyBhcmUgYmFzZWQgb24g bGFydC5jIGJ5IEFicmFoYW0gVmFuIERlciBNZXJ3ZQogICoKICAqIENsZWFuZWQgdXAgYW5kIGdl bmVyYWxpemVkIGJhc2VkIG9uIG10ZF9kYXRhZmxhc2guYwpAQCAtMjcsOCArMjQsNzQgQEAKICNp bmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGNsb2Nr Lmg+CisjaW5jbHVkZSA8bGludXgvbWF0aDY0Lmg+CisjaW5jbHVkZSA8bGludXgvbXRkL2NmaS5o PgogI2luY2x1ZGUgPGxpbnV4L210ZC9tdGQuaD4KLSNpbmNsdWRlICJtMjVwODAuaCIKKworLyog Rmxhc2ggb3Bjb2Rlcy4gKi8KKyNkZWZpbmUJT1BDT0RFX1dSRU4JCTB4MDYJLyogV3JpdGUgZW5h YmxlICovCisjZGVmaW5lCU9QQ09ERV9SRFNSCQkweDA1CS8qIFJlYWQgc3RhdHVzIHJlZ2lzdGVy ICovCisjZGVmaW5lCU9QQ09ERV9XUlNSCQkweDAxCS8qIFdyaXRlIHN0YXR1cyByZWdpc3RlciAx IGJ5dGUgKi8KKyNkZWZpbmUJT1BDT0RFX05PUk1fUkVBRAkweDAzCS8qIFJlYWQgZGF0YSBieXRl cyAobG93IGZyZXF1ZW5jeSkgKi8KKyNkZWZpbmUJT1BDT0RFX0ZBU1RfUkVBRAkweDBiCS8qIFJl YWQgZGF0YSBieXRlcyAoaGlnaCBmcmVxdWVuY3kpICovCisjZGVmaW5lCU9QQ09ERV9QUAkJMHgw MgkvKiBQYWdlIHByb2dyYW0gKHVwIHRvIDI1NiBieXRlcykgKi8KKyNkZWZpbmUJT1BDT0RFX0JF XzRLCQkweDIwCS8qIEVyYXNlIDRLaUIgYmxvY2sgKi8KKyNkZWZpbmUJT1BDT0RFX0JFXzMySwkJ MHg1MgkvKiBFcmFzZSAzMktpQiBibG9jayAqLworI2RlZmluZQlPUENPREVfQ0hJUF9FUkFTRQkw eGM3CS8qIEVyYXNlIHdob2xlIGZsYXNoIGNoaXAgKi8KKyNkZWZpbmUJT1BDT0RFX1NFCQkweGQ4 CS8qIFNlY3RvciBlcmFzZSAodXN1YWxseSA2NEtpQikgKi8KKyNkZWZpbmUJT1BDT0RFX1JESUQJ CTB4OWYJLyogUmVhZCBKRURFQyBJRCAqLworCisvKiBVc2VkIGZvciBTU1QgZmxhc2hlcyBvbmx5 LiAqLworI2RlZmluZQlPUENPREVfQlAJCTB4MDIJLyogQnl0ZSBwcm9ncmFtICovCisjZGVmaW5l CU9QQ09ERV9XUkRJCQkweDA0CS8qIFdyaXRlIGRpc2FibGUgKi8KKyNkZWZpbmUJT1BDT0RFX0FB SV9XUAkJMHhhZAkvKiBBdXRvIGFkZHJlc3MgaW5jcmVtZW50IHdvcmQgcHJvZ3JhbSAqLworCisv KiBVc2VkIGZvciBNYWNyb25peCBmbGFzaGVzIG9ubHkuICovCisjZGVmaW5lCU9QQ09ERV9FTjRC CQkweGI3CS8qIEVudGVyIDQtYnl0ZSBtb2RlICovCisjZGVmaW5lCU9QQ09ERV9FWDRCCQkweGU5 CS8qIEV4aXQgNC1ieXRlIG1vZGUgKi8KKworLyogVXNlZCBmb3IgU3BhbnNpb24gZmxhc2hlcyBv bmx5LiAqLworI2RlZmluZQlPUENPREVfQlJXUgkJMHgxNwkvKiBCYW5rIHJlZ2lzdGVyIHdyaXRl ICovCisKKy8qIFN0YXR1cyBSZWdpc3RlciBiaXRzLiAqLworI2RlZmluZQlTUl9XSVAJCQkxCS8q IFdyaXRlIGluIHByb2dyZXNzICovCisjZGVmaW5lCVNSX1dFTAkJCTIJLyogV3JpdGUgZW5hYmxl IGxhdGNoICovCisvKiBtZWFuaW5nIG9mIG90aGVyIFNSXyogYml0cyBtYXkgZGlmZmVyIGJldHdl ZW4gdmVuZG9ycyAqLworI2RlZmluZQlTUl9CUDAJCQk0CS8qIEJsb2NrIHByb3RlY3QgMCAqLwor I2RlZmluZQlTUl9CUDEJCQk4CS8qIEJsb2NrIHByb3RlY3QgMSAqLworI2RlZmluZQlTUl9CUDIJ CQkweDEwCS8qIEJsb2NrIHByb3RlY3QgMiAqLworI2RlZmluZQlTUl9TUldECQkJMHg4MAkvKiBT UiB3cml0ZSBwcm90ZWN0ICovCisKKy8qIERlZmluZSBtYXggdGltZXMgdG8gY2hlY2sgc3RhdHVz IHJlZ2lzdGVyIGJlZm9yZSB3ZSBnaXZlIHVwLiAqLworI2RlZmluZQlNQVhfUkVBRFlfV0FJVAkJ NDAJLyogTTI1UDE2IHNwZWNzIDQwcyBtYXggY2hpcCBlcmFzZSAqLworI2RlZmluZSBNQVhfQ01E X1NJWkUJCTYKKworI2RlZmluZSBKRURFQ19NRlIoX2plZGVjX2lkKQkoKF9qZWRlY19pZCkgPj4g MTYpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFNQSV9OQU1FX1NJWkUgICAz MgorCitzdHJ1Y3Qgc3BpX2RldmljZV9pZCB7CisJY2hhciBuYW1lW1NQSV9OQU1FX1NJWkVdOwor CXVuc2lnbmVkIGxvbmcgZHJpdmVyX2RhdGE7Cit9OworCitzdHJ1Y3QgbTI1cCB7CisJc3RydWN0 IHNwaV9kZXZpY2UJKnNwaTsKKwlzdHJ1Y3QgbXRkX2luZm8JCW10ZDsKKwl1MTYJCQlwYWdlX3Np emU7CisJdW5zaWduZWQJCXNlY3Rvcl9zaXplOworCXUxNgkJCWFkZHJfd2lkdGg7CisJdTgJCQll cmFzZV9vcGNvZGU7CisJdTgJCQllcmFzZV9vcGNvZGVfNGs7CisJdTgJCQkqY29tbWFuZDsKK307 CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IG0yNXAgKm10ZF90b19tMjVwKHN0cnVjdCBtdGRfaW5m byAqbXRkKQoreworCXJldHVybiBjb250YWluZXJfb2YobXRkLCBzdHJ1Y3QgbTI1cCwgbXRkKTsK K30KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKQEAgLTk0LDExICsxNTcsMTggQEAgc3RhdGlj IGlubGluZSBpbnQgd3JpdGVfZGlzYWJsZShzdHJ1Y3QgbTI1cCAqZmxhc2gpCiAvKgogICogRW5h YmxlL2Rpc2FibGUgNC1ieXRlIGFkZHJlc3NpbmcgbW9kZS4KICAqLwotc3RhdGljIGlubGluZSBp bnQgc2V0XzRieXRlKHN0cnVjdCBtMjVwICpmbGFzaCwgaW50IGVuYWJsZSkKK3N0YXRpYyBpbmxp bmUgaW50IHNldF80Ynl0ZShzdHJ1Y3QgbTI1cCAqZmxhc2gsIHUzMiBqZWRlY19pZCwgaW50IGVu YWJsZSkKIHsKLQl1OAljb2RlID0gZW5hYmxlID8gT1BDT0RFX0VONEIgOiBPUENPREVfRVg0QjsK LQotCXJldHVybiBzcGlfd3JpdGVfdGhlbl9yZWFkKGZsYXNoLT5zcGksICZjb2RlLCAxLCBOVUxM LCAwKTsKKwlzd2l0Y2ggKEpFREVDX01GUihqZWRlY19pZCkpIHsKKwljYXNlIENGSV9NRlJfTUFD Uk9OSVg6CisJCWZsYXNoLT5jb21tYW5kWzBdID0gZW5hYmxlID8gT1BDT0RFX0VONEIgOiBPUENP REVfRVg0QjsKKwkJcmV0dXJuIHNwaV93cml0ZShmbGFzaC0+c3BpLCBmbGFzaC0+Y29tbWFuZCwg MSk7CisJZGVmYXVsdDoKKwkJLyogU3BhbnNpb24gc3R5bGUgKi8KKwkJZmxhc2gtPmNvbW1hbmRb MF0gPSBPUENPREVfQlJXUjsKKwkJZmxhc2gtPmNvbW1hbmRbMV0gPSBlbmFibGUgPDwgNzsKKwkJ cmV0dXJuIHNwaV93cml0ZShmbGFzaC0+c3BpLCBmbGFzaC0+Y29tbWFuZCwgMik7CisJfQogfQog CiAvKgpAQCAtMTMxLDcgKzIwMSw3IEBAIHN0YXRpYyBpbnQgd2FpdF90aWxsX3JlYWR5KHN0cnVj dCBtMjVwICpmbGFzaCkKIHN0YXRpYyBpbnQgZXJhc2VfY2hpcChzdHJ1Y3QgbTI1cCAqZmxhc2gp CiB7CiAJZGV2X2RiZygmZmxhc2gtPnNwaS0+ZGV2LCAiJXMgJWxsZEtpQlxuIiwKLQkJX19mdW5j X18sIChsb25nIGxvbmcpKGZsYXNoLT5zaXplID4+IDEwKSk7CisJCV9fZnVuY19fLCAobG9uZyBs b25nKShmbGFzaC0+bXRkLnNpemUgPj4gMTApKTsKIAogCS8qIFdhaXQgdW50aWwgZmluaXNoZWQg cHJldmlvdXMgd3JpdGUgY29tbWFuZC4gKi8KIAlpZiAod2FpdF90aWxsX3JlYWR5KGZsYXNoKSkK QEAgLTE3MSw3ICsyNDEsNyBAQCBzdGF0aWMgaW50IG0yNXBfY21kc3ooc3RydWN0IG0yNXAgKmZs YXNoKQogc3RhdGljIGludCBlcmFzZV9zZWN0b3Ioc3RydWN0IG0yNXAgKmZsYXNoLCB1MzIgb2Zm c2V0LCB1MzIgY29tbWFuZCkKIHsKIAlkZXZfZGJnKCZmbGFzaC0+c3BpLT5kZXYsICIlcyAlZEtp QiBhdCAweCUwOHhcbiIsCi0JCV9fZnVuY19fLCBmbGFzaC0+ZXJhc2VzaXplIC8gMTAyNCwgb2Zm c2V0KTsKKwkJX19mdW5jX18sIGZsYXNoLT5tdGQuZXJhc2VzaXplIC8gMTAyNCwgb2Zmc2V0KTsK IAogCS8qIFdhaXQgdW50aWwgZmluaXNoZWQgcHJldmlvdXMgd3JpdGUgY29tbWFuZC4gKi8KIAlp ZiAod2FpdF90aWxsX3JlYWR5KGZsYXNoKSkKQEAgLTE4OSwzMCArMjU5LDM5IEBAIHN0YXRpYyBp bnQgZXJhc2Vfc2VjdG9yKHN0cnVjdCBtMjVwICpmbGFzaCwgdTMyIG9mZnNldCwgdTMyIGNvbW1h bmQpCiAJcmV0dXJuIDA7CiB9CiAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogTVRE IGltcGxlbWVudGF0aW9uCisgKi8KKwogLyoKICAqIEVyYXNlIGFuIGFkZHJlc3MgcmFuZ2Ugb24g dGhlIGZsYXNoIGNoaXAuICBUaGUgYWRkcmVzcyByYW5nZSBtYXkgZXh0ZW5kCiAgKiBvbmUgb3Ig bW9yZSBlcmFzZSBzZWN0b3JzLiAgUmV0dXJuIGFuIGVycm9yIGlzIHRoZXJlIGlzIGEgcHJvYmxl bSBlcmFzaW5nLgogICovCi1zdGF0aWMgc3NpemVfdCBtMjVwODBfZXJhc2Uoc3RydWN0IGNkZXYg KmNkZXYsIHNpemVfdCBjb3VudCwgbG9mZl90IG9mZnNldCkKK3N0YXRpYyBpbnQgbTI1cDgwX2Vy YXNlKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBzdHJ1Y3QgZXJhc2VfaW5mbyAqaW5zdHIpCiB7Ci0J c3RydWN0IG0yNXAgKmZsYXNoID0gY2Rldi0+cHJpdjsKKwlzdHJ1Y3QgbTI1cCAqZmxhc2ggPSBt dGRfdG9fbTI1cChtdGQpOwogCXUzMiBhZGRyLCBsZW47CisJdWludDMyX3QgcmVtOwogCi0JZGV2 X2RiZygmZmxhc2gtPnNwaS0+ZGV2LCAiJXMgJXMgMHglbGx4LCBsZW4gJWxsZFxuIiwKLQkJX19m dW5jX18sICJhdCIsIChsb25nIGxvbmcpb2Zmc2V0LCAobG9uZyBsb25nKWNvdW50KTsKKwlkZXZf ZGJnKCZmbGFzaC0+c3BpLT5kZXYsICIlcyBhdCAweCVsbHgsIGxlbiAlbGxkXG4iLAorCQkJX19m dW5jX18sIChsb25nIGxvbmcpaW5zdHItPmFkZHIsCisJCQkobG9uZyBsb25nKWluc3RyLT5sZW4p OwogCi0JLyogc2FuaXR5IGNoZWNrcyAqLwotCWlmIChvZmZzZXQgKyBjb3VudCA+IGZsYXNoLT5z aXplKQorCWRpdl91NjRfcmVtKGluc3RyLT5sZW4sIG10ZC0+ZXJhc2VzaXplLCAmcmVtKTsKKwlp ZiAocmVtKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCS8qIEFsaWduIHN0YXJ0IGFuZCBsZW4gdG8g ZXJhc2UgYmxvY2tzICovCi0JYWRkciA9IG9mZnNldCAmIH4oZmxhc2gtPmVyYXNlc2l6ZSAtIDEp OwotCWxlbiA9IEFMSUdOKG9mZnNldCArIGNvdW50LCBmbGFzaC0+ZXJhc2VzaXplKSAtIGFkZHI7 CisJYWRkciA9IGluc3RyLT5hZGRyOworCWxlbiA9IGluc3RyLT5sZW47CiAKIAkvKiB3aG9sZS1j aGlwIGVyYXNlPyAqLwotCWlmIChsZW4gPT0gZmxhc2gtPnNpemUpIHsKLQkJaWYgKGVyYXNlX2No aXAoZmxhc2gpKQorCWlmIChsZW4gPT0gZmxhc2gtPm10ZC5zaXplKSB7CisJCWlmIChlcmFzZV9j aGlwKGZsYXNoKSkgeworCQkJaW5zdHItPnN0YXRlID0gTVREX0VSQVNFX0ZBSUxFRDsKIAkJCXJl dHVybiAtRUlPOworCQl9CiAJCXJldHVybiAwOwogCX0KIApAQCAtMjIyLDggKzMwMSw4IEBAIHN0 YXRpYyBzc2l6ZV90IG0yNXA4MF9lcmFzZShzdHJ1Y3QgY2RldiAqY2Rldiwgc2l6ZV90IGNvdW50 LCBsb2ZmX3Qgb2Zmc2V0KQogCQkJCXJldHVybiAtRUlOVFI7CiAJCQlpZiAoZXJhc2Vfc2VjdG9y KGZsYXNoLCBhZGRyLCBmbGFzaC0+ZXJhc2Vfb3Bjb2RlXzRrKSkKIAkJCQlyZXR1cm4gLUVJTzsK LQkJCWFkZHIgKz0gZmxhc2gtPmVyYXNlc2l6ZTsKLQkJCWxlbiAtPSBmbGFzaC0+ZXJhc2VzaXpl OworCQkJYWRkciArPSBtdGQtPmVyYXNlc2l6ZTsKKwkJCWxlbiAtPSBtdGQtPmVyYXNlc2l6ZTsK IAkJfQogCiAJCXdoaWxlIChsZW4gPj0gZmxhc2gtPnNlY3Rvcl9zaXplKSB7CkBAIC0yNDAsOCAr MzE5LDggQEAgc3RhdGljIHNzaXplX3QgbTI1cDgwX2VyYXNlKHN0cnVjdCBjZGV2ICpjZGV2LCBz aXplX3QgY291bnQsIGxvZmZfdCBvZmZzZXQpCiAJCQkJcmV0dXJuIC1FSU5UUjsKIAkJCWlmIChl cmFzZV9zZWN0b3IoZmxhc2gsIGFkZHIsIGZsYXNoLT5lcmFzZV9vcGNvZGVfNGspKQogCQkJCXJl dHVybiAtRUlPOwotCQkJYWRkciArPSBmbGFzaC0+ZXJhc2VzaXplOwotCQkJbGVuIC09IGZsYXNo LT5lcmFzZXNpemU7CisJCQlhZGRyICs9IG10ZC0+ZXJhc2VzaXplOworCQkJbGVuIC09IG10ZC0+ ZXJhc2VzaXplOwogCQl9CiAJfSBlbHNlIHsKIAkJd2hpbGUgKGxlbikgewpAQCAtMjUwLDM1ICsz MjksMzQgQEAgc3RhdGljIHNzaXplX3QgbTI1cDgwX2VyYXNlKHN0cnVjdCBjZGV2ICpjZGV2LCBz aXplX3QgY291bnQsIGxvZmZfdCBvZmZzZXQpCiAJCQlpZiAoZXJhc2Vfc2VjdG9yKGZsYXNoLCBh ZGRyLCBmbGFzaC0+ZXJhc2Vfb3Bjb2RlKSkKIAkJCQlyZXR1cm4gLUVJTzsKIAotCQkJaWYgKGxl biA8PSBmbGFzaC0+ZXJhc2VzaXplKQorCQkJaWYgKGxlbiA8PSBtdGQtPmVyYXNlc2l6ZSkKIAkJ CQlicmVhazsKLQkJCWFkZHIgKz0gZmxhc2gtPmVyYXNlc2l6ZTsKLQkJCWxlbiAtPSBmbGFzaC0+ ZXJhc2VzaXplOworCQkJYWRkciArPSBtdGQtPmVyYXNlc2l6ZTsKKwkJCWxlbiAtPSBtdGQtPmVy YXNlc2l6ZTsKIAkJfQogCX0KIAogCWlmICh3YWl0X3RpbGxfcmVhZHkoZmxhc2gpKQogCQlyZXR1 cm4gLUVUSU1FRE9VVDsKIAorCWluc3RyLT5zdGF0ZSA9IE1URF9FUkFTRV9ET05FOworCW10ZF9l cmFzZV9jYWxsYmFjayhpbnN0cik7CisKIAlyZXR1cm4gMDsKIH0KIAotc3NpemVfdCBtMjVwODBf cmVhZChzdHJ1Y3QgY2RldiAqY2Rldiwgdm9pZCAqYnVmLCBzaXplX3QgY291bnQsIGxvZmZfdCBv ZmZzZXQsCi0JCXVsb25nIGZsYWdzKQorLyoKKyAqIFJlYWQgYW4gYWRkcmVzcyByYW5nZSBmcm9t IHRoZSBmbGFzaCBjaGlwLiAgVGhlIGFkZHJlc3MgcmFuZ2UKKyAqIG1heSBiZSBhbnkgc2l6ZSBw cm92aWRlZCBpdCBpcyB3aXRoaW4gdGhlIHBoeXNpY2FsIGJvdW5kYXJpZXMuCisgKi8KK3N0YXRp YyBpbnQgbTI1cDgwX3JlYWQoc3RydWN0IG10ZF9pbmZvICptdGQsIGxvZmZfdCBmcm9tLCBzaXpl X3QgbGVuLAorCXNpemVfdCAqcmV0bGVuLCB1X2NoYXIgKmJ1ZikKIHsKLQlzdHJ1Y3QgbTI1cCAq Zmxhc2ggPSBjZGV2LT5wcml2OworCXN0cnVjdCBtMjVwICpmbGFzaCA9IG10ZF90b19tMjVwKG10 ZCk7CiAJc3RydWN0IHNwaV90cmFuc2ZlciB0WzJdOwogCXN0cnVjdCBzcGlfbWVzc2FnZSBtOwot CXNzaXplX3QgcmV0bGVuOwogCWludCBmYXN0X3JlYWQgPSAwOwogCi0JLyogc2FuaXR5IGNoZWNr cyAqLwotCWlmICghY291bnQpCi0JCXJldHVybiAwOwotCi0JaWYgKG9mZnNldCArIGNvdW50ID4g Zmxhc2gtPnNpemUpCi0JCXJldHVybiAtRUlOVkFMOwotCiAJaWYgKGZsYXNoLT5zcGktPm1heF9z cGVlZF9oeiA+PSAyNTAwMDAwMCkKIAkJZmFzdF9yZWFkID0gMTsKIApAQCAtMjk0LDEyICszNzIs OSBAQCBzc2l6ZV90IG0yNXA4MF9yZWFkKHN0cnVjdCBjZGV2ICpjZGV2LCB2b2lkICpidWYsIHNp emVfdCBjb3VudCwgbG9mZl90IG9mZnNldCwKIAlzcGlfbWVzc2FnZV9hZGRfdGFpbCgmdFswXSwg Jm0pOwogCiAJdFsxXS5yeF9idWYgPSBidWY7Ci0JdFsxXS5sZW4gPSBjb3VudDsKKwl0WzFdLmxl biA9IGxlbjsKIAlzcGlfbWVzc2FnZV9hZGRfdGFpbCgmdFsxXSwgJm0pOwogCi0JLyogQnl0ZSBj b3VudCBzdGFydHMgYXQgemVyby4gKi8KLQlyZXRsZW4gPSAwOwotCiAJLyogV2FpdCB0aWxsIHBy ZXZpb3VzIHdyaXRlL2VyYXNlIGlzIGRvbmUuICovCiAJaWYgKHdhaXRfdGlsbF9yZWFkeShmbGFz aCkpCiAJCXJldHVybiAtRVRJTUVET1VUOwpAQCAtMzExLDI5ICszODYsMzAgQEAgc3NpemVfdCBt MjVwODBfcmVhZChzdHJ1Y3QgY2RldiAqY2Rldiwgdm9pZCAqYnVmLCBzaXplX3QgY291bnQsIGxv ZmZfdCBvZmZzZXQsCiAKIAkvKiBTZXQgdXAgdGhlIHdyaXRlIGRhdGEgYnVmZmVyLiAqLwogCWZs YXNoLT5jb21tYW5kWzBdID0gZmFzdF9yZWFkID8gT1BDT0RFX0ZBU1RfUkVBRCA6IE9QQ09ERV9O T1JNX1JFQUQ7Ci0JbTI1cF9hZGRyMmNtZChmbGFzaCwgb2Zmc2V0LCBmbGFzaC0+Y29tbWFuZCk7 CisJbTI1cF9hZGRyMmNtZChmbGFzaCwgZnJvbSwgZmxhc2gtPmNvbW1hbmQpOwogCiAJc3BpX3N5 bmMoZmxhc2gtPnNwaSwgJm0pOwogCi0JcmV0bGVuID0gbS5hY3R1YWxfbGVuZ3RoIC0gbTI1cF9j bWRzeihmbGFzaCkgLSBmYXN0X3JlYWQ7CisJKnJldGxlbiA9IG0uYWN0dWFsX2xlbmd0aCAtIG0y NXBfY21kc3ooZmxhc2gpIC0gZmFzdF9yZWFkOwogCi0JcmV0dXJuIHJldGxlbjsKKwlyZXR1cm4g MDsKIH0KIAotc3NpemVfdCBtMjVwODBfd3JpdGUoc3RydWN0IGNkZXYgKmNkZXYsIGNvbnN0IHZv aWQgKmJ1Ziwgc2l6ZV90IGNvdW50LAotCQlsb2ZmX3Qgb2Zmc2V0LCB1bG9uZyBmbGFncykKKy8q CisgKiBXcml0ZSBhbiBhZGRyZXNzIHJhbmdlIHRvIHRoZSBmbGFzaCBjaGlwLiAgRGF0YSBtdXN0 IGJlIHdyaXR0ZW4gaW4KKyAqIEZMQVNIX1BBR0VTSVpFIGNodW5rcy4gIFRoZSBhZGRyZXNzIHJh bmdlIG1heSBiZSBhbnkgc2l6ZSBwcm92aWRlZAorICogaXQgaXMgd2l0aGluIHRoZSBwaHlzaWNh bCBib3VuZGFyaWVzLgorICovCitzdGF0aWMgaW50IG0yNXA4MF93cml0ZShzdHJ1Y3QgbXRkX2lu Zm8gKm10ZCwgbG9mZl90IHRvLCBzaXplX3QgbGVuLAorCXNpemVfdCAqcmV0bGVuLCBjb25zdCB1 X2NoYXIgKmJ1ZikKIHsKLQlzdHJ1Y3QgbTI1cCAqZmxhc2ggPSBjZGV2LT5wcml2OworCXN0cnVj dCBtMjVwICpmbGFzaCA9IG10ZF90b19tMjVwKG10ZCk7CisJdTMyIHBhZ2Vfb2Zmc2V0LCBwYWdl X3NpemU7CiAJc3RydWN0IHNwaV90cmFuc2ZlciB0WzJdOwogCXN0cnVjdCBzcGlfbWVzc2FnZSBt OwotCXNzaXplX3QgcmV0bGVuID0gMDsKLQl1MzIgcGFnZV9vZmZzZXQsIHBhZ2Vfc2l6ZTsKIAog CWRlYnVnKCJtMjVwODBfd3JpdGUgJWxkIGJ5dGVzIGF0IDB4JTA4bFhcbiIsICh1bnNpZ25lZCBs b25nKWNvdW50LCBvZmZzZXQpOwogCi0JaWYgKG9mZnNldCArIGNvdW50ID4gZmxhc2gtPnNpemUp Ci0JCXJldHVybiAtRUlOVkFMOwotCiAJc3BpX21lc3NhZ2VfaW5pdCgmbSk7CiAJbWVtc2V0KHQs IDAsIChzaXplb2YgdCkpOwogCkBAIC0zNTIsMTcgKzQyOCwxNyBAQCBzc2l6ZV90IG0yNXA4MF93 cml0ZShzdHJ1Y3QgY2RldiAqY2RldiwgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgY291bnQsCiAK IAkvKiBTZXQgdXAgdGhlIG9wY29kZSBpbiB0aGUgd3JpdGUgYnVmZmVyLiAqLwogCWZsYXNoLT5j b21tYW5kWzBdID0gT1BDT0RFX1BQOwotCW0yNXBfYWRkcjJjbWQoZmxhc2gsIG9mZnNldCwgZmxh c2gtPmNvbW1hbmQpOworCW0yNXBfYWRkcjJjbWQoZmxhc2gsIHRvLCBmbGFzaC0+Y29tbWFuZCk7 CiAKLQlwYWdlX29mZnNldCA9IG9mZnNldCAmIChmbGFzaC0+cGFnZV9zaXplIC0gMSk7CisJcGFn ZV9vZmZzZXQgPSB0byAmIChmbGFzaC0+cGFnZV9zaXplIC0gMSk7CiAKIAkvKiBkbyBhbGwgdGhl IGJ5dGVzIGZpdCBvbnRvIG9uZSBwYWdlPyAqLwotCWlmIChwYWdlX29mZnNldCArIGNvdW50IDw9 IGZsYXNoLT5wYWdlX3NpemUpIHsKLQkJdFsxXS5sZW4gPSBjb3VudDsKKwlpZiAocGFnZV9vZmZz ZXQgKyBsZW4gPD0gZmxhc2gtPnBhZ2Vfc2l6ZSkgeworCQl0WzFdLmxlbiA9IGxlbjsKIAogCQlz cGlfc3luYyhmbGFzaC0+c3BpLCAmbSk7CiAKLQkJcmV0bGVuID0gbS5hY3R1YWxfbGVuZ3RoIC0g bTI1cF9jbWRzeihmbGFzaCk7CisJCSpyZXRsZW4gPSBtLmFjdHVhbF9sZW5ndGggLSBtMjVwX2Nt ZHN6KGZsYXNoKTsKIAl9IGVsc2UgewogCQl1MzIgaTsKIApAQCAtMzcyLDE2ICs0NDgsMTYgQEAg c3NpemVfdCBtMjVwODBfd3JpdGUoc3RydWN0IGNkZXYgKmNkZXYsIGNvbnN0IHZvaWQgKmJ1Ziwg c2l6ZV90IGNvdW50LAogCQl0WzFdLmxlbiA9IHBhZ2Vfc2l6ZTsKIAkJc3BpX3N5bmMoZmxhc2gt PnNwaSwgJm0pOwogCi0JCXJldGxlbiA9IG0uYWN0dWFsX2xlbmd0aCAtIG0yNXBfY21kc3ooZmxh c2gpOworCQkqcmV0bGVuID0gbS5hY3R1YWxfbGVuZ3RoIC0gbTI1cF9jbWRzeihmbGFzaCk7CiAK IAkJLyogd3JpdGUgZXZlcnl0aGluZyBpbiBmbGFzaC0+cGFnZV9zaXplIGNodW5rcyAqLwotCQlm b3IgKGkgPSBwYWdlX3NpemU7IGkgPCBjb3VudDsgaSArPSBwYWdlX3NpemUpIHsKLQkJCXBhZ2Vf c2l6ZSA9IGNvdW50IC0gaTsKKwkJZm9yIChpID0gcGFnZV9zaXplOyBpIDwgbGVuOyBpICs9IHBh Z2Vfc2l6ZSkgeworCQkJcGFnZV9zaXplID0gbGVuIC0gaTsKIAkJCWlmIChwYWdlX3NpemUgPiBm bGFzaC0+cGFnZV9zaXplKQogCQkJCXBhZ2Vfc2l6ZSA9IGZsYXNoLT5wYWdlX3NpemU7CiAKIAkJ CS8qIHdyaXRlIHRoZSBuZXh0IHBhZ2UgdG8gZmxhc2ggKi8KLQkJCW0yNXBfYWRkcjJjbWQoZmxh c2gsIG9mZnNldCArIGksIGZsYXNoLT5jb21tYW5kKTsKKwkJCW0yNXBfYWRkcjJjbWQoZmxhc2gs IHRvICsgaSwgZmxhc2gtPmNvbW1hbmQpOwogCiAJCQl0WzFdLnR4X2J1ZiA9IGJ1ZiArIGk7CiAJ CQl0WzFdLmxlbiA9IHBhZ2Vfc2l6ZTsKQEAgLTM5MiwzNCArNDY4LDI0IEBAIHNzaXplX3QgbTI1 cDgwX3dyaXRlKHN0cnVjdCBjZGV2ICpjZGV2LCBjb25zdCB2b2lkICpidWYsIHNpemVfdCBjb3Vu dCwKIAogCQkJc3BpX3N5bmMoZmxhc2gtPnNwaSwgJm0pOwogCi0JCQlyZXRsZW4gKz0gbS5hY3R1 YWxfbGVuZ3RoIC0gbTI1cF9jbWRzeihmbGFzaCk7Ci0KKwkJCSpyZXRsZW4gKz0gbS5hY3R1YWxf bGVuZ3RoIC0gbTI1cF9jbWRzeihmbGFzaCk7CiAJCX0KIAl9CiAKLQlyZXR1cm4gcmV0bGVuOwor CXJldHVybiAwOwogfQotI2lmZGVmIENPTkZJR19NVERfU1NUMjVMCi1zc2l6ZV90IHNzdF93cml0 ZShzdHJ1Y3QgY2RldiAqY2RldiwgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgY291bnQsIGxvZmZf dCBvZmZzZXQsCi0JCXVsb25nIGZsYWdzKQorCitzdGF0aWMgaW50IHNzdF93cml0ZShzdHJ1Y3Qg bXRkX2luZm8gKm10ZCwgbG9mZl90IHRvLCBzaXplX3QgbGVuLAorCQlzaXplX3QgKnJldGxlbiwg Y29uc3QgdV9jaGFyICpidWYpCiB7Ci0Jc3RydWN0IG0yNXAgKmZsYXNoID0gY2Rldi0+cHJpdjsK KwlzdHJ1Y3QgbTI1cCAqZmxhc2ggPSBtdGRfdG9fbTI1cChtdGQpOwogCXN0cnVjdCBzcGlfdHJh bnNmZXIgdFsyXTsKIAlzdHJ1Y3Qgc3BpX21lc3NhZ2UgbTsKIAlzaXplX3QgYWN0dWFsOwotCXNz aXplX3QgcmV0bGVuOwogCWludCBjbWRfc3osIHJldDsKIAotCWRlYnVnKCJzc3Rfd3JpdGUgJWxk IGJ5dGVzIGF0IDB4JTA4bFhcbiIsICh1bnNpZ25lZCBsb25nKWNvdW50LCBvZmZzZXQpOwotCi0J cmV0bGVuID0gMDsKLQotCS8qIHNhbml0eSBjaGVja3MgKi8KLQlpZiAoIWNvdW50KQotCQlyZXR1 cm4gMDsKLQotCWlmIChvZmZzZXQgKyBjb3VudCA+IGZsYXNoLT5zaXplKQotCQlyZXR1cm4gLUVJ TlZBTDsKKwlwcl9kZWJ1ZygiJXM6ICVzIHRvIDB4JTA4eCwgbGVuICV6ZFxuIiwgZGV2X25hbWUo JmZsYXNoLT5zcGktPmRldiksCisJCQlfX2Z1bmNfXywgKHUzMil0bywgbGVuKTsKIAogCXNwaV9t ZXNzYWdlX2luaXQoJm0pOwogCW1lbXNldCh0LCAwLCAoc2l6ZW9mIHQpKTsKQEAgLTQzOCwxMSAr NTA0LDExIEBAIHNzaXplX3Qgc3N0X3dyaXRlKHN0cnVjdCBjZGV2ICpjZGV2LCBjb25zdCB2b2lk ICpidWYsIHNpemVfdCBjb3VudCwgbG9mZl90IG9mZnNlCiAKIAl3cml0ZV9lbmFibGUoZmxhc2gp OwogCi0JYWN0dWFsID0gb2Zmc2V0ICUgMjsKKwlhY3R1YWwgPSB0byAlIDI7CiAJLyogU3RhcnQg d3JpdGUgZnJvbSBvZGQgYWRkcmVzcy4gKi8KIAlpZiAoYWN0dWFsKSB7CiAJCWZsYXNoLT5jb21t YW5kWzBdID0gT1BDT0RFX0JQOwotCQltMjVwX2FkZHIyY21kKGZsYXNoLCBvZmZzZXQsIGZsYXNo LT5jb21tYW5kKTsKKwkJbTI1cF9hZGRyMmNtZChmbGFzaCwgdG8sIGZsYXNoLT5jb21tYW5kKTsK IAogCQkvKiB3cml0ZSBvbmUgYnl0ZS4gKi8KIAkJdFsxXS5sZW4gPSAxOwpAQCAtNDUwLDE2ICs1 MTYsMTYgQEAgc3NpemVfdCBzc3Rfd3JpdGUoc3RydWN0IGNkZXYgKmNkZXYsIGNvbnN0IHZvaWQg KmJ1Ziwgc2l6ZV90IGNvdW50LCBsb2ZmX3Qgb2Zmc2UKIAkJcmV0ID0gd2FpdF90aWxsX3JlYWR5 KGZsYXNoKTsKIAkJaWYgKHJldCkKIAkJCWdvdG8gdGltZV9vdXQ7Ci0JCXJldGxlbiArPSBtLmFj dHVhbF9sZW5ndGggLSBtMjVwX2NtZHN6KGZsYXNoKTsKKwkJKnJldGxlbiArPSBtLmFjdHVhbF9s ZW5ndGggLSBtMjVwX2NtZHN6KGZsYXNoKTsKIAl9Ci0Jb2Zmc2V0ICs9IGFjdHVhbDsKKwl0byAr PSBhY3R1YWw7CiAKIAlmbGFzaC0+Y29tbWFuZFswXSA9IE9QQ09ERV9BQUlfV1A7Ci0JbTI1cF9h ZGRyMmNtZChmbGFzaCwgb2Zmc2V0LCBmbGFzaC0+Y29tbWFuZCk7CisJbTI1cF9hZGRyMmNtZChm bGFzaCwgdG8sIGZsYXNoLT5jb21tYW5kKTsKIAogCS8qIFdyaXRlIG91dCBtb3N0IG9mIHRoZSBk YXRhIGhlcmUuICovCiAJY21kX3N6ID0gbTI1cF9jbWRzeihmbGFzaCk7Ci0JZm9yICg7IGFjdHVh bCA8IGNvdW50IC0gMTsgYWN0dWFsICs9IDIpIHsKKwlmb3IgKDsgYWN0dWFsIDwgbGVuIC0gMTsg YWN0dWFsICs9IDIpIHsKIAkJdFswXS5sZW4gPSBjbWRfc3o7CiAJCS8qIHdyaXRlIHR3byBieXRl cy4gKi8KIAkJdFsxXS5sZW4gPSAyOwpAQCAtNDY5LDkgKzUzNSw5IEBAIHNzaXplX3Qgc3N0X3dy aXRlKHN0cnVjdCBjZGV2ICpjZGV2LCBjb25zdCB2b2lkICpidWYsIHNpemVfdCBjb3VudCwgbG9m Zl90IG9mZnNlCiAJCXJldCA9IHdhaXRfdGlsbF9yZWFkeShmbGFzaCk7CiAJCWlmIChyZXQpCiAJ CQlnb3RvIHRpbWVfb3V0OwotCQlyZXRsZW4gKz0gbS5hY3R1YWxfbGVuZ3RoIC0gY21kX3N6Owor CQkqcmV0bGVuICs9IG0uYWN0dWFsX2xlbmd0aCAtIGNtZF9zejsKIAkJY21kX3N6ID0gMTsKLQkJ b2Zmc2V0ICs9IDI7CisJCXRvICs9IDI7CiAJfQogCXdyaXRlX2Rpc2FibGUoZmxhc2gpOwogCXJl dCA9IHdhaXRfdGlsbF9yZWFkeShmbGFzaCk7CkBAIC00NzksMTAgKzU0NSwxMCBAQCBzc2l6ZV90 IHNzdF93cml0ZShzdHJ1Y3QgY2RldiAqY2RldiwgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgY291 bnQsIGxvZmZfdCBvZmZzZQogCQlnb3RvIHRpbWVfb3V0OwogCiAJLyogV3JpdGUgb3V0IHRyYWls aW5nIGJ5dGUgaWYgaXQgZXhpc3RzLiAqLwotCWlmIChhY3R1YWwgIT0gY291bnQpIHsKKwlpZiAo YWN0dWFsICE9IGxlbikgewogCQl3cml0ZV9lbmFibGUoZmxhc2gpOwogCQlmbGFzaC0+Y29tbWFu ZFswXSA9IE9QQ09ERV9CUDsKLQkJbTI1cF9hZGRyMmNtZChmbGFzaCwgb2Zmc2V0LCBmbGFzaC0+ Y29tbWFuZCk7CisJCW0yNXBfYWRkcjJjbWQoZmxhc2gsIHRvLCBmbGFzaC0+Y29tbWFuZCk7CiAJ CXRbMF0ubGVuID0gbTI1cF9jbWRzeihmbGFzaCk7CiAJCXRbMV0ubGVuID0gMTsKIAkJdFsxXS50 eF9idWYgPSBidWYgKyBhY3R1YWw7CkBAIC00OTEsMzQgKzU1Nyw0MiBAQCBzc2l6ZV90IHNzdF93 cml0ZShzdHJ1Y3QgY2RldiAqY2RldiwgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgY291bnQsIGxv ZmZfdCBvZmZzZQogCQlyZXQgPSB3YWl0X3RpbGxfcmVhZHkoZmxhc2gpOwogCQlpZiAocmV0KQog CQkJZ290byB0aW1lX291dDsKLQkJcmV0bGVuICs9IG0uYWN0dWFsX2xlbmd0aCAtIG0yNXBfY21k c3ooZmxhc2gpOworCQkqcmV0bGVuICs9IG0uYWN0dWFsX2xlbmd0aCAtIG0yNXBfY21kc3ooZmxh c2gpOwogCQl3cml0ZV9kaXNhYmxlKGZsYXNoKTsKIAl9CiAKIHRpbWVfb3V0OgotCXJldHVybiBy ZXRsZW47Ci19Ci0jZW5kaWYKLQotc3RhdGljIHZvaWQgbTI1cDgwX2luZm8oc3RydWN0IGRldmlj ZV9kICpkZXYpCi17Ci0Jc3RydWN0IG0yNXAJCSpmbGFzaCA9IGRldi0+cHJpdjsKLQlzdHJ1Y3Qg Zmxhc2hfaW5mbwkqaW5mbyA9IGZsYXNoLT5pbmZvOwotCi0JcHJpbnRmKCJGbGFzaCB0eXBlICAg ICAgICA6ICVzXG4iLCBmbGFzaC0+bmFtZSk7Ci0JcHJpbnRmKCJTaXplICAgICAgICAgICAgICA6 ICVsbGRLaUJcbiIsIChsb25nIGxvbmcpZmxhc2gtPnNpemUgLyAxMDI0KTsKLQlwcmludGYoIk51 bWJlciBvZiBzZWN0b3JzIDogJWRcbiIsIGluZm8tPm5fc2VjdG9ycyk7Ci0JcHJpbnRmKCJTZWN0 b3Igc2l6ZSAgICAgICA6ICVkS2lCXG4iLCBpbmZvLT5zZWN0b3Jfc2l6ZSAvIDEwMjQpOwotCXBy aW50ZigiXG4iKTsKKwlyZXR1cm4gcmV0OwogfQogCi0KIC8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwog CiAvKgogICogU1BJIGRldmljZSBkcml2ZXIgc2V0dXAgYW5kIHRlYXJkb3duCiAgKi8KIAorc3Ry dWN0IGZsYXNoX2luZm8geworCS8qIEpFREVDIGlkIHplcm8gbWVhbnMgIm5vIElEIiAobW9zdCBv bGRlciBjaGlwcyk7IG90aGVyd2lzZSBpdCBoYXMKKwkgKiBhIGhpZ2ggYnl0ZSBvZiB6ZXJvIHBs dXMgdGhyZWUgZGF0YSBieXRlczogdGhlIG1hbnVmYWN0dXJlciBpZCwKKwkgKiB0aGVuIGEgdHdv IGJ5dGUgZGV2aWNlIGlkLgorCSAqLworCXUzMgkJamVkZWNfaWQ7CisJdTE2ICAgICAgICAgICAg IGV4dF9pZDsKKworCS8qIFRoZSBzaXplIGxpc3RlZCBoZXJlIGlzIHdoYXQgd29ya3Mgd2l0aCBP UENPREVfU0UsIHdoaWNoIGlzbid0CisJICogbmVjZXNzYXJpbHkgY2FsbGVkIGEgInNlY3RvciIg YnkgdGhlIHZlbmRvci4KKwkgKi8KKwl1bnNpZ25lZAlzZWN0b3Jfc2l6ZTsKKwl1MTYJCW5fc2Vj dG9yczsKKworCXUxNgkJcGFnZV9zaXplOworCXUxNgkJYWRkcl93aWR0aDsKKworCXUxNgkJZmxh Z3M7CisjZGVmaW5lCVNFQ1RfNEsJCTB4MDEJCS8qIE9QQ09ERV9CRV80SyB3b3JrcyB1bmlmb3Jt bHkgKi8KKyNkZWZpbmUJTTI1UF9OT19FUkFTRQkweDAyCQkvKiBObyBlcmFzZSBjb21tYW5kIG5l ZWRlZCAqLworfTsKKwogI2RlZmluZSBJTkZPKF9qZWRlY19pZCwgX2V4dF9pZCwgX3NlY3Rvcl9z aXplLCBfbl9zZWN0b3JzLCBfZmxhZ3MpCVwKIAkoKHVuc2lnbmVkIGxvbmcpJihzdHJ1Y3QgZmxh c2hfaW5mbykgewkJCQlcCiAJCS5qZWRlY19pZCA9IChfamVkZWNfaWQpLAkJCQlcCkBAIC02Njcs OCArNzQxLDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3BpX2RldmljZV9pZCAqamVkZWNfcHJv YmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIAkgKiBzdHJpbmcgZm9yIGFmdGVyIHZlbmRvci1z cGVjaWZpYyBkYXRhLCBhZnRlciB0aGUgdGhyZWUgYnl0ZXMKIAkgKiB3ZSB1c2UgaGVyZS4gIFN1 cHBvcnRpbmcgc29tZSBjaGlwcyBtaWdodCByZXF1aXJlIHVzaW5nIGl0LgogCSAqLwotCXNwaV93 cml0ZV90aGVuX3JlYWQoc3BpLCAmY29kZSwgMSwgaWQsIDUpOwotCisJdG1wID0gc3BpX3dyaXRl X3RoZW5fcmVhZChzcGksICZjb2RlLCAxLCBpZCwgNSk7CisJaWYgKHRtcCA8IDApIHsKKwkJcHJf ZGVidWcoIiVzOiBlcnJvciAlZCByZWFkaW5nIEpFREVDIElEXG4iLAorCQkJCWRldl9uYW1lKCZz cGktPmRldiksIHRtcCk7CisJCXJldHVybiBFUlJfUFRSKHRtcCk7CisJfQogCWplZGVjID0gaWRb MF07CiAJamVkZWMgPSBqZWRlYyA8PCA4OwogCWplZGVjIHw9IGlkWzFdOwpAQCAtNjg2LDg0ICs3 NjQsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNwaV9kZXZpY2VfaWQgKmplZGVjX3Byb2JlKHN0 cnVjdCBzcGlfZGV2aWNlICpzcGkpCiAJCX0KIAl9CiAJZGV2X2Vycigmc3BpLT5kZXYsICJ1bnJl Y29nbml6ZWQgSkVERUMgaWQgJTA2eFxuIiwgamVkZWMpOwotCi0JcmV0dXJuIE5VTEw7CisJcmV0 dXJuIEVSUl9QVFIoLUVOT0RFVik7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25z IG0yNXA4MF9vcHMgPSB7Ci0JLnJlYWQgICA9IG0yNXA4MF9yZWFkLAotCS53cml0ZSAgPSBtMjVw ODBfd3JpdGUsCi0JLmVyYXNlICA9IG0yNXA4MF9lcmFzZSwKLQkubHNlZWsgID0gZGV2X2xzZWVr X2RlZmF1bHQsCi19OwotCi1zdGF0aWMgaW50IG0yNXBfbXRkX3JlYWQoc3RydWN0IG10ZF9pbmZv ICptdGQsIGxvZmZfdCBmcm9tLCBzaXplX3QgbGVuLAotCQlzaXplX3QgKnJldGxlbiwgdV9jaGFy ICpidWYpCi17Ci0Jc3RydWN0IG0yNXAgKmZsYXNoID0gY29udGFpbmVyX29mKG10ZCwgc3RydWN0 IG0yNXAsIG10ZCk7Ci0Jc3NpemVfdCByZXQ7Ci0KLQlyZXQgPSBmbGFzaC0+Y2Rldi5vcHMtPnJl YWQoJmZsYXNoLT5jZGV2LCBidWYsIGxlbiwgZnJvbSwgMCk7Ci0JaWYgKHJldCA8IDApIHsKLQkJ KnJldGxlbiA9IDA7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0JKnJldGxlbiA9IHJldDsKLQlyZXR1 cm4gMDsKLX0KLQotc3RhdGljIGludCBtMjVwX210ZF93cml0ZShzdHJ1Y3QgbXRkX2luZm8gKm10 ZCwgbG9mZl90IHRvLCBzaXplX3QgbGVuLAotCQlzaXplX3QgKnJldGxlbiwgY29uc3QgdV9jaGFy ICpidWYpCi17Ci0Jc3RydWN0IG0yNXAgKmZsYXNoID0gY29udGFpbmVyX29mKG10ZCwgc3RydWN0 IG0yNXAsIG10ZCk7Ci0Jc3NpemVfdCByZXQ7Ci0KLQlyZXQgPSBmbGFzaC0+Y2Rldi5vcHMtPndy aXRlKCZmbGFzaC0+Y2RldiwgYnVmLCBsZW4sIHRvLCAwKTsKLQlpZiAocmV0IDwgMCkgewotCQkq cmV0bGVuID0gMDsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQkqcmV0bGVuID0gcmV0OwotCXJldHVy biAwOwotfQotCi1zdGF0aWMgaW50IG0yNXBfbXRkX2VyYXNlKHN0cnVjdCBtdGRfaW5mbyAqbXRk LCBzdHJ1Y3QgZXJhc2VfaW5mbyAqaW5zdHIpCi17Ci0Jc3RydWN0IG0yNXAgKmZsYXNoID0gY29u dGFpbmVyX29mKG10ZCwgc3RydWN0IG0yNXAsIG10ZCk7Ci0Jc3NpemVfdCByZXQ7Ci0KLQlyZXQg PSBmbGFzaC0+Y2Rldi5vcHMtPmVyYXNlKCZmbGFzaC0+Y2RldiwgaW5zdHItPmxlbiwgaW5zdHIt PmFkZHIpOwotCi0JaWYgKHJldCkgewotCQlpbnN0ci0+c3RhdGUgPSBNVERfRVJBU0VfRkFJTEVE OwotCQlyZXR1cm4gLUVJTzsKLQl9Ci0KLQlpbnN0ci0+c3RhdGUgPSBNVERfRVJBU0VfRE9ORTsK LQltdGRfZXJhc2VfY2FsbGJhY2soaW5zdHIpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2 b2lkIG0yNXBfaW5pdF9tdGQoc3RydWN0IG0yNXAgKmZsYXNoKQotewotCXN0cnVjdCBtdGRfaW5m byAqbXRkID0gJmZsYXNoLT5tdGQ7Ci0KLQltdGQtPnJlYWQgPSBtMjVwX210ZF9yZWFkOwotCW10 ZC0+d3JpdGUgPSBtMjVwX210ZF93cml0ZTsKLQltdGQtPmVyYXNlID0gbTI1cF9tdGRfZXJhc2U7 Ci0JbXRkLT5zaXplID0gZmxhc2gtPnNpemU7Ci0JbXRkLT5uYW1lID0gZmxhc2gtPmNkZXYubmFt ZTsKLQltdGQtPmVyYXNlc2l6ZSA9IGZsYXNoLT5lcmFzZXNpemU7Ci0JbXRkLT53cml0ZXNpemUg PSAxOwotCW10ZC0+c3VicGFnZV9zZnQgPSAwOwotCW10ZC0+ZXJhc2VyZWdpb25zID0gTlVMTDsK LQltdGQtPm51bWVyYXNlcmVnaW9ucyA9IDA7Ci0JbXRkLT5mbGFncyA9IE1URF9DQVBfTk9SRkxB U0g7Ci0JZmxhc2gtPmNkZXYubXRkID0gbXRkOwotfQogCiAvKgogICogYm9hcmQgc3BlY2lmaWMg c2V0dXAgc2hvdWxkIGhhdmUgZW5zdXJlZCB0aGUgU1BJIGNsb2NrIHVzZWQgaGVyZQpAQCAtNzc0 LDkgKzc3Nyw5IEBAIHN0YXRpYyBpbnQgbTI1cF9wcm9iZShzdHJ1Y3QgZGV2aWNlX2QgKmRldikK IHsKIAlzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpID0gKHN0cnVjdCBzcGlfZGV2aWNlICopZGV2LT50 eXBlX2RhdGE7CiAJY29uc3Qgc3RydWN0IHNwaV9kZXZpY2VfaWQJKmlkID0gTlVMTDsKLQlzdHJ1 Y3QgZmxhc2hfaW5mbwkJKmluZm8gPSBOVUxMOwogCXN0cnVjdCBmbGFzaF9wbGF0Zm9ybV9kYXRh CSpkYXRhOwogCXN0cnVjdCBtMjVwCQkJKmZsYXNoOworCXN0cnVjdCBmbGFzaF9pbmZvCQkqaW5m byA9IE5VTEw7CiAJdW5zaWduZWQJCQlpOwogCXVuc2lnbmVkCQkJZG9famRlY19wcm9iZSA9IDE7 CiAKQEAgLTc4Niw3ICs3ODksNiBAQCBzdGF0aWMgaW50IG0yNXBfcHJvYmUoc3RydWN0IGRldmlj ZV9kICpkZXYpCiAJICogbmV3ZXIgY2hpcHMsIGV2ZW4gaWYgd2UgZG9uJ3QgcmVjb2duaXplIHRo ZSBwYXJ0aWN1bGFyIGNoaXAuCiAJICovCiAJZGF0YSA9IGRldi0+cGxhdGZvcm1fZGF0YTsKLQog CWlmIChkYXRhICYmIGRhdGEtPnR5cGUpIHsKIAkJY29uc3Qgc3RydWN0IHNwaV9kZXZpY2VfaWQg KnBsYXRfaWQ7CiAKQEAgLTgxMiwxMCArODE0LDkgQEAgc3RhdGljIGludCBtMjVwX3Byb2JlKHN0 cnVjdCBkZXZpY2VfZCAqZGV2KQogCQljb25zdCBzdHJ1Y3Qgc3BpX2RldmljZV9pZCAqamlkOwog CiAJCWppZCA9IGplZGVjX3Byb2JlKHNwaSk7Ci0JCWlmICghamlkKSB7Ci0JCQlyZXR1cm4gLUVO T0RFVjsKKwkJaWYgKElTX0VSUihqaWQpKSB7CisJCQlyZXR1cm4gUFRSX0VSUihqaWQpOwogCQl9 IGVsc2UgaWYgKGppZCAhPSBpZCkgewotCiAJCQkvKgogCQkJICogSkVERUMga25vd3MgYmV0dGVy LCBzbyBvdmVyd3JpdGUgcGxhdGZvcm0gSUQuIFdlCiAJCQkgKiBjYW4ndCB0cnVzdCBwYXJ0aXRp b25zIGFueSBsb25nZXIsIGJ1dCB3ZSdsbCBsZXQKQEAgLTg0Miw3OCArODQzLDk1IEBAIHN0YXRp YyBpbnQgbTI1cF9wcm9iZShzdHJ1Y3QgZGV2aWNlX2QgKmRldikKIAkgKiB1cCB3aXRoIHRoZSBz b2Z0d2FyZSBwcm90ZWN0aW9uIGJpdHMgc2V0CiAJICovCiAKLQlpZiAoaW5mby0+amVkZWNfaWQg Pj4gMTYgPT0gMHgxZiB8fAotCSAgICBpbmZvLT5qZWRlY19pZCA+PiAxNiA9PSAweDg5IHx8Ci0J ICAgIGluZm8tPmplZGVjX2lkID4+IDE2ID09IDB4YmYpIHsKKwlpZiAoSkVERUNfTUZSKGluZm8t PmplZGVjX2lkKSA9PSBDRklfTUZSX0FUTUVMIHx8CisJICAgIEpFREVDX01GUihpbmZvLT5qZWRl Y19pZCkgPT0gQ0ZJX01GUl9JTlRFTCB8fAorCSAgICBKRURFQ19NRlIoaW5mby0+amVkZWNfaWQp ID09IENGSV9NRlJfU1NUKSB7CiAJCXdyaXRlX2VuYWJsZShmbGFzaCk7CiAJCXdyaXRlX3NyKGZs YXNoLCAwKTsKIAl9CiAKLQlmbGFzaC0+bmFtZSA9IChjaGFyICopaWQtPm5hbWU7Ci0JZmxhc2gt PmluZm8gPSBpbmZvOwotCWZsYXNoLT5zaXplID0gaW5mby0+c2VjdG9yX3NpemUgKiBpbmZvLT5u X3NlY3RvcnM7Ci0JZmxhc2gtPmVyYXNlc2l6ZSA9IGluZm8tPnNlY3Rvcl9zaXplOwotCWZsYXNo LT5zZWN0b3Jfc2l6ZSA9IGluZm8tPnNlY3Rvcl9zaXplOwotCWZsYXNoLT5jZGV2LnNpemUgPSBp bmZvLT5zZWN0b3Jfc2l6ZSAqIGluZm8tPm5fc2VjdG9yczsKLQlmbGFzaC0+Y2Rldi5kZXYgPSBk ZXY7Ci0JZmxhc2gtPmNkZXYub3BzID0gJm0yNXA4MF9vcHM7Ci0JZmxhc2gtPmNkZXYucHJpdiA9 IGZsYXNoOwotCiAJaWYgKGRhdGEgJiYgZGF0YS0+bmFtZSkKLQkJZmxhc2gtPmNkZXYubmFtZSA9 IGFzcHJpbnRmKCIlcyVkIiwgZGF0YS0+bmFtZSwgZGV2LT5pZCk7CisJCWZsYXNoLT5tdGQubmFt ZSA9IGRhdGEtPm5hbWU7CiAJZWxzZQotCQlmbGFzaC0+Y2Rldi5uYW1lID0gYXNwcmludGYoIiVz IiwgKGNoYXIgKilkZXZfbmFtZSgmc3BpLT5kZXYpKTsKKwkJZmxhc2gtPm10ZC5uYW1lID0gIm0y NXAiOworCisJZmxhc2gtPm10ZC50eXBlID0gTVREX05PUkZMQVNIOworCWZsYXNoLT5tdGQud3Jp dGVzaXplID0gMTsKKwlmbGFzaC0+bXRkLmZsYWdzID0gTVREX0NBUF9OT1JGTEFTSDsKKwlmbGFz aC0+bXRkLnNpemUgPSBpbmZvLT5zZWN0b3Jfc2l6ZSAqIGluZm8tPm5fc2VjdG9yczsKKwlmbGFz aC0+bXRkLmVyYXNlID0gbTI1cDgwX2VyYXNlOworCWZsYXNoLT5tdGQucmVhZCA9IG0yNXA4MF9y ZWFkOwogCi0jaWZkZWYgQ09ORklHX01URF9TU1QyNUwKIAkvKiBzc3QgZmxhc2ggY2hpcHMgdXNl IEFBSSB3b3JkIHByb2dyYW0gKi8KLQlpZiAoaW5mby0+amVkZWNfaWQgPj4gMTYgPT0gMHhiZikK LQkJbTI1cDgwX29wcy53cml0ZSA9IHNzdF93cml0ZTsKKwlpZiAoSVNfRU5BQkxFRChDT05GSUdf TVREX1NTVDI1TCkgJiYgSkVERUNfTUZSKGluZm8tPmplZGVjX2lkKSA9PSBDRklfTUZSX1NTVCkK KwkJZmxhc2gtPm10ZC53cml0ZSA9IHNzdF93cml0ZTsKIAllbHNlCi0jZW5kaWYKLQkJbTI1cDgw X29wcy53cml0ZSA9IG0yNXA4MF93cml0ZTsKKwkJZmxhc2gtPm10ZC53cml0ZSA9IG0yNXA4MF93 cml0ZTsKIAogCS8qIHByZWZlciAic21hbGwgc2VjdG9yIiBlcmFzZSBpZiBwb3NzaWJsZSAqLwog CWlmIChpbmZvLT5mbGFncyAmIFNFQ1RfNEspIHsKIAkJZmxhc2gtPmVyYXNlX29wY29kZV80ayA9 IE9QQ09ERV9CRV80SzsKIAkJZmxhc2gtPmVyYXNlX29wY29kZSA9IE9QQ09ERV9TRTsKLQkJZmxh c2gtPmVyYXNlc2l6ZSA9IDQwOTY7CisJCWZsYXNoLT5tdGQuZXJhc2VzaXplID0gNDA5NjsKIAl9 IGVsc2UgewogCQlmbGFzaC0+ZXJhc2Vfb3Bjb2RlID0gT1BDT0RFX1NFOworCQlmbGFzaC0+bXRk LmVyYXNlc2l6ZSA9IGluZm8tPnNlY3Rvcl9zaXplOwogCX0KIAorCWlmIChpbmZvLT5mbGFncyAm IE0yNVBfTk9fRVJBU0UpCisJCWZsYXNoLT5tdGQuZmxhZ3MgfD0gTVREX05PX0VSQVNFOworCisJ Zmxhc2gtPm10ZC5wYXJlbnQgPSAmc3BpLT5kZXY7CiAJZmxhc2gtPnBhZ2Vfc2l6ZSA9IGluZm8t PnBhZ2Vfc2l6ZTsKKwlmbGFzaC0+c2VjdG9yX3NpemUgPSBpbmZvLT5zZWN0b3Jfc2l6ZTsKIAog CWlmIChpbmZvLT5hZGRyX3dpZHRoKQogCQlmbGFzaC0+YWRkcl93aWR0aCA9IGluZm8tPmFkZHJf d2lkdGg7CiAJZWxzZSB7CiAJCS8qIGVuYWJsZSA0LWJ5dGUgYWRkcmVzc2luZyBpZiB0aGUgZGV2 aWNlIGV4Y2VlZHMgMTZNaUIgKi8KLQkJaWYgKGZsYXNoLT5zaXplID4gMHgxMDAwMDAwKSB7CisJ CWlmIChmbGFzaC0+bXRkLnNpemUgPiAweDEwMDAwMDApIHsKIAkJCWZsYXNoLT5hZGRyX3dpZHRo ID0gNDsKLQkJCXNldF80Ynl0ZShmbGFzaCwgMSk7CisJCQlzZXRfNGJ5dGUoZmxhc2gsIGluZm8t PmplZGVjX2lkLCAxKTsKIAkJfSBlbHNlCiAJCQlmbGFzaC0+YWRkcl93aWR0aCA9IDM7CiAJfQog Ci0JZGV2X2luZm8oZGV2LCAiJXMgKCVsbGQgS2J5dGVzKVxuIiwgaWQtPm5hbWUsIChsb25nIGxv bmcpZmxhc2gtPnNpemUgPj4gMTApOworCWRldl9pbmZvKGRldiwgIiVzICglbGxkIEtieXRlcylc biIsIGlkLT5uYW1lLAorCQkJKGxvbmcgbG9uZylmbGFzaC0+bXRkLnNpemUgPj4gMTApOwogCi0J aWYgKElTX0VOQUJMRUQoQ09ORklHX1BBUlRJVElPTl9ORUVEX01URCkpCi0JCW0yNXBfaW5pdF9t dGQoZmxhc2gpOworCXByX2RlYnVnKCJtdGQgLm5hbWUgPSAlcywgLnNpemUgPSAweCVsbHggKCVs bGRNaUIpICIKKwkJCSIuZXJhc2VzaXplID0gMHglLjh4ICgldUtpQikgLm51bWVyYXNlcmVnaW9u cyA9ICVkXG4iLAorCQlmbGFzaC0+bXRkLm5hbWUsCisJCShsb25nIGxvbmcpZmxhc2gtPm10ZC5z aXplLCAobG9uZyBsb25nKShmbGFzaC0+bXRkLnNpemUgPj4gMjApLAorCQlmbGFzaC0+bXRkLmVy YXNlc2l6ZSwgZmxhc2gtPm10ZC5lcmFzZXNpemUgLyAxMDI0LAorCQlmbGFzaC0+bXRkLm51bWVy YXNlcmVnaW9ucyk7CiAKLQlkZXZmc19jcmVhdGUoJmZsYXNoLT5jZGV2KTsKKwlpZiAoZmxhc2gt Pm10ZC5udW1lcmFzZXJlZ2lvbnMpCisJCWZvciAoaSA9IDA7IGkgPCBmbGFzaC0+bXRkLm51bWVy YXNlcmVnaW9uczsgaSsrKQorCQkJcHJfZGVidWcoIm10ZC5lcmFzZXJlZ2lvbnNbJWRdID0geyAu b2Zmc2V0ID0gMHglbGx4LCAiCisJCQkJIi5lcmFzZXNpemUgPSAweCUuOHggKCV1S2lCKSwgIgor CQkJCSIubnVtYmxvY2tzID0gJWQgfVxuIiwKKwkJCQlpLCAobG9uZyBsb25nKWZsYXNoLT5tdGQu ZXJhc2VyZWdpb25zW2ldLm9mZnNldCwKKwkJCQlmbGFzaC0+bXRkLmVyYXNlcmVnaW9uc1tpXS5l cmFzZXNpemUsCisJCQkJZmxhc2gtPm10ZC5lcmFzZXJlZ2lvbnNbaV0uZXJhc2VzaXplIC8gMTAy NCwKKwkJCQlmbGFzaC0+bXRkLmVyYXNlcmVnaW9uc1tpXS5udW1ibG9ja3MpOwogCi0JcmV0dXJu IDA7CisKKworCXJldHVybiBhZGRfbXRkX2RldmljZSgmZmxhc2gtPm10ZCwgZmxhc2gtPm10ZC5u YW1lKTsKIH0KIAotc3RhdGljIHN0cnVjdCBkcml2ZXJfZCBlcGNzX2ZsYXNoX2RyaXZlciA9IHsK LQkubmFtZSAgPSAibTI1cCIsCi0JLnByb2JlID0gbTI1cF9wcm9iZSwKLQkuaW5mbyA9IG0yNXA4 MF9pbmZvLAorc3RhdGljIHN0cnVjdCBkcml2ZXJfZCBtMjVwODBfZHJpdmVyID0geworCS5uYW1l CT0gIm0yNXA4MCIsCisJLnByb2JlCT0gbTI1cF9wcm9iZSwKIH07CiAKLXN0YXRpYyBpbnQgZXBj c19pbml0KHZvaWQpCitzdGF0aWMgaW50IG0yNXA4MF9pbml0KHZvaWQpCiB7Ci0Jc3BpX3JlZ2lz dGVyX2RyaXZlcigmZXBjc19mbGFzaF9kcml2ZXIpOwotCXJldHVybiAwOworCXJldHVybiBzcGlf cmVnaXN0ZXJfZHJpdmVyKCZtMjVwODBfZHJpdmVyKTsKIH0KK2RldmljZV9pbml0Y2FsbChtMjVw ODBfaW5pdCk7CiAKLWRldmljZV9pbml0Y2FsbChlcGNzX2luaXQpOworTU9EVUxFX0xJQ0VOU0Uo IkdQTCIpOworTU9EVUxFX0FVVEhPUigiTWlrZSBMYXZlbmRlciIpOworTU9EVUxFX0RFU0NSSVBU SU9OKCJNVEQgU1BJIGRyaXZlciBmb3IgU1QgTTI1UHh4IGZsYXNoIGNoaXBzIik7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL25vci9LY29uZmlnIGIvZHJpdmVycy9ub3IvS2NvbmZpZwppbmRleCA4NjUy ZDI3Li5hM2MwMjIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25vci9LY29uZmlnCisrKyBiL2RyaXZl cnMvbm9yL0tjb25maWcKQEAgLTU2LDMxICs1Niw0IEBAIGNvbmZpZyBDRklfQlVGRkVSX1dSSVRF CiAKIGVuZGlmCiAKLWNvbmZpZyBNVERfTTI1UDgwCi0JdHJpc3RhdGUgIlNQSSBGbGFzaCBjaGlw cyAoQVQyNkRGLCBNMjVQLCBXMjVYLCAuLi4pIgotCWRlcGVuZHMgb24gU1BJCi0JaGVscAotCSAg VGhpcyBlbmFibGVzIGFjY2VzcyB0byBtb3N0IG1vZGVybiBTUEkgZmxhc2ggY2hpcHMsIHVzZWQg Zm9yCi0JICBwcm9ncmFtIGFuZCBkYXRhIHN0b3JhZ2UuICAgU2VyaWVzIHN1cHBvcnRlZCBpbmNs dWRlIEF0bWVsIEFUMjZERiwKLQkgIFNwYW5zaW9uIFMyNVNMLCBTU1QgMjVWRiwgU1QgTTI1UCwg YW5kIFdpbmJvbmQgVzI1WC4gIE90aGVyIGNoaXBzCi0JICBhcmUgc3VwcG9ydGVkIGFzIHdlbGwu ICBTZWUgdGhlIGRyaXZlciBzb3VyY2UgZm9yIHRoZSBjdXJyZW50IGxpc3QsCi0JICBvciB0byBh ZGQgb3RoZXIgY2hpcHMuCi0KLQkgIE5vdGUgdGhhdCB0aGUgb3JpZ2luYWwgRGF0YUZsYXNoIGNo aXBzIChBVDQ1IHNlcmllcywgbm90IEFUMjZERiksCi0JICBuZWVkIGFuIGVudGlyZWx5IGRpZmZl cmVudCBkcml2ZXIuCi0KLQkgIFNldCB1cCB5b3VyIHNwaSBkZXZpY2VzIHdpdGggdGhlIHJpZ2h0 IGJvYXJkLXNwZWNpZmljIHBsYXRmb3JtIGRhdGEsCi0JICBpZiB5b3Ugd2FudCB0byBzcGVjaWZ5 IGRldmljZSBwYXJ0aXRpb25pbmcgb3IgdG8gdXNlIGEgZGV2aWNlIHdoaWNoCi0JICBkb2Vzbid0 IHN1cHBvcnQgdGhlIEpFREVDIElEIGluc3RydWN0aW9uLgotCi1jb25maWcgTVREX1NTVDI1TAot CXRyaXN0YXRlICJTdXBwb3J0IFNTVDI1TCAobm9uIEpFREVDKSBTUEkgRmxhc2ggY2hpcHMiCi0J ZGVwZW5kcyBvbiBNVERfTTI1UDgwCi0JaGVscAotCSAgVGhpcyBlbmFibGVzIGFjY2VzcyB0byB0 aGUgbm9uIEpFREVDIFNTVDI1TCBTUEkgZmxhc2ggY2hpcHMsIHVzZWQKLQkgIGZvciBwcm9ncmFt IGFuZCBkYXRhIHN0b3JhZ2UuCi0KLQkgIFNldCB1cCB5b3VyIHNwaSBkZXZpY2VzIHdpdGggdGhl IHJpZ2h0IGJvYXJkLXNwZWNpZmljIHBsYXRmb3JtIGRhdGEsCi0JICBpZiB5b3Ugd2FudCB0byBz cGVjaWZ5IGRldmljZSBwYXJ0aXRpb25pbmcuCi0KIGVuZG1lbnUKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbm9yL01ha2VmaWxlIGIvZHJpdmVycy9ub3IvTWFrZWZpbGUKaW5kZXggZDY3NmM1NS4uZDI1 NTA0MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ub3IvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ub3Iv TWFrZWZpbGUKQEAgLTEsNSArMSw0IEBACiBvYmotJChDT05GSUdfRFJJVkVSX0NGSSkgKz0gY2Zp X2ZsYXNoLm8KIG9iai0kKENPTkZJR19EUklWRVJfQ0ZJX0lOVEVMKSArPSBjZmlfZmxhc2hfaW50 ZWwubwogb2JqLSQoQ09ORklHX0RSSVZFUl9DRklfQU1EKSArPSBjZmlfZmxhc2hfYW1kLm8KLW9i ai0kKENPTkZJR19NVERfTTI1UDgwKSArPSBtMjVwODAubwogCmRpZmYgLS1naXQgYS9kcml2ZXJz L25vci9tMjVwODAuaCBiL2RyaXZlcnMvbm9yL20yNXA4MC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA5NTc5MDBlLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvbm9yL20yNXA4MC5oCisr KyAvZGV2L251bGwKQEAgLTEsODQgKzAsMCBAQAotI2lmbmRlZiBfTTI1UDgwX0hfCi0jZGVmaW5l IF9NMjVQODBfSF8KLQotLyogRmxhc2ggb3Bjb2Rlcy4gKi8KLSNkZWZpbmUJT1BDT0RFX1dSRU4J CTB4MDYJLyogV3JpdGUgZW5hYmxlICovCi0jZGVmaW5lCU9QQ09ERV9SRFNSCQkweDA1CS8qIFJl YWQgc3RhdHVzIHJlZ2lzdGVyICovCi0jZGVmaW5lCU9QQ09ERV9XUlNSCQkweDAxCS8qIFdyaXRl IHN0YXR1cyByZWdpc3RlciAxIGJ5dGUgKi8KLSNkZWZpbmUJT1BDT0RFX05PUk1fUkVBRAkweDAz CS8qIFJlYWQgZGF0YSBieXRlcyAobG93IGZyZXF1ZW5jeSkgKi8KLSNkZWZpbmUJT1BDT0RFX0ZB U1RfUkVBRAkweDBiCS8qIFJlYWQgZGF0YSBieXRlcyAoaGlnaCBmcmVxdWVuY3kpICovCi0jZGVm aW5lCU9QQ09ERV9QUAkJMHgwMgkvKiBQYWdlIHByb2dyYW0gKHVwIHRvIDI1NiBieXRlcykgKi8K LSNkZWZpbmUJT1BDT0RFX0JFXzRLCQkweDIwCS8qIEVyYXNlIDRLaUIgYmxvY2sgKi8KLSNkZWZp bmUJT1BDT0RFX0JFXzMySwkJMHg1MgkvKiBFcmFzZSAzMktpQiBibG9jayAqLwotI2RlZmluZQlP UENPREVfQ0hJUF9FUkFTRQkweGM3CS8qIEVyYXNlIHdob2xlIGZsYXNoIGNoaXAgKi8KLSNkZWZp bmUJT1BDT0RFX1NFCQkweGQ4CS8qIFNlY3RvciBlcmFzZSAodXN1YWxseSA2NEtpQikgKi8KLSNk ZWZpbmUJT1BDT0RFX1JESUQJCTB4OWYJLyogUmVhZCBKRURFQyBJRCAqLwotCi0vKiBVc2VkIGZv ciBTU1QgZmxhc2hlcyBvbmx5LiAqLwotI2RlZmluZQlPUENPREVfQlAJCTB4MDIJLyogQnl0ZSBw cm9ncmFtICovCi0jZGVmaW5lCU9QQ09ERV9XUkRJCQkweDA0CS8qIFdyaXRlIGRpc2FibGUgKi8K LSNkZWZpbmUJT1BDT0RFX0FBSV9XUAkJMHhhZAkvKiBBdXRvIGFkZHJlc3MgaW5jcmVtZW50IHdv cmQgcHJvZ3JhbSAqLwotCi0vKiBVc2VkIGZvciBNYWNyb25peCBmbGFzaGVzIG9ubHkuICovCi0j ZGVmaW5lCU9QQ09ERV9FTjRCCQkweGI3CS8qIEVudGVyIDQtYnl0ZSBtb2RlICovCi0jZGVmaW5l CU9QQ09ERV9FWDRCCQkweGU5CS8qIEV4aXQgNC1ieXRlIG1vZGUgKi8KLQotLyogU3RhdHVzIFJl Z2lzdGVyIGJpdHMuICovCi0jZGVmaW5lCVNSX1dJUAkJCTEJLyogV3JpdGUgaW4gcHJvZ3Jlc3Mg Ki8KLSNkZWZpbmUJU1JfV0VMCQkJMgkvKiBXcml0ZSBlbmFibGUgbGF0Y2ggKi8KLS8qIG1lYW5p bmcgb2Ygb3RoZXIgU1JfKiBiaXRzIG1heSBkaWZmZXIgYmV0d2VlbiB2ZW5kb3JzICovCi0jZGVm aW5lCVNSX0JQMAkJCTQJLyogQmxvY2sgcHJvdGVjdCAwICovCi0jZGVmaW5lCVNSX0JQMQkJCTgJ LyogQmxvY2sgcHJvdGVjdCAxICovCi0jZGVmaW5lCVNSX0JQMgkJCTB4MTAJLyogQmxvY2sgcHJv dGVjdCAyICovCi0jZGVmaW5lCVNSX1NSV0QJCQkweDgwCS8qIFNSIHdyaXRlIHByb3RlY3QgKi8K LQotLyogRGVmaW5lIG1heCB0aW1lcyB0byBjaGVjayBzdGF0dXMgcmVnaXN0ZXIgYmVmb3JlIHdl IGdpdmUgdXAuICovCi0jZGVmaW5lCU1BWF9SRUFEWV9XQUlUCQk0MAkvKiBNMjVQMTYgc3BlY3Mg NDBzIG1heCBjaGlwIGVyYXNlICovCi0jZGVmaW5lIE1BWF9DTURfU0laRQkJNgotCi0jZGVmaW5l IFNQSV9OQU1FX1NJWkUgICAzMgotCi1zdHJ1Y3Qgc3BpX2RldmljZV9pZCB7Ci0JY2hhciBuYW1l W1NQSV9OQU1FX1NJWkVdOwotCXVuc2lnbmVkIGxvbmcgZHJpdmVyX2RhdGE7Ci19OwotCi1zdHJ1 Y3QgbTI1cCB7Ci0Jc3RydWN0IHNwaV9kZXZpY2UJKnNwaTsKLQlzdHJ1Y3QgZmxhc2hfaW5mbwkq aW5mbzsKLQlzdHJ1Y3QgbXRkX2luZm8JCW10ZDsKLQlzdHJ1Y3QgY2RldgkJY2RldjsKLQljaGFy CQkJKm5hbWU7Ci0JdTMyCQkJZXJhc2VzaXplOwotCXUzMgkJCXNlY3Rvcl9zaXplOwotCXUxNgkJ CXBhZ2Vfc2l6ZTsKLQl1MTYJCQlhZGRyX3dpZHRoOwotCXU4CQkJZXJhc2Vfb3Bjb2RlOwotCXU4 CQkJZXJhc2Vfb3Bjb2RlXzRrOwotCXU4CQkJKmNvbW1hbmQ7Ci0JdTMyCQkJc2l6ZTsKLX07Ci0K LXN0cnVjdCBmbGFzaF9pbmZvIHsKLQkvKiBKRURFQyBpZCB6ZXJvIG1lYW5zICJubyBJRCIgKG1v c3Qgb2xkZXIgY2hpcHMpOyBvdGhlcndpc2UgaXQgaGFzCi0JICogYSBoaWdoIGJ5dGUgb2YgemVy byBwbHVzIHRocmVlIGRhdGEgYnl0ZXM6IHRoZSBtYW51ZmFjdHVyZXIgaWQsCi0JICogdGhlbiBh IHR3byBieXRlIGRldmljZSBpZC4KLQkgKi8KLQl1MzIJCWplZGVjX2lkOwotCXUxNgkJZXh0X2lk OwotCi0JLyogVGhlIHNpemUgbGlzdGVkIGhlcmUgaXMgd2hhdCB3b3JrcyB3aXRoIE9QQ09ERV9T RSwgd2hpY2ggaXNuJ3QKLQkgKiBuZWNlc3NhcmlseSBjYWxsZWQgYSAic2VjdG9yIiBieSB0aGUg dmVuZG9yLgotCSAqLwotCXVuc2lnbmVkCXNlY3Rvcl9zaXplOwotCXUxNgkJbl9zZWN0b3JzOwot Ci0JdTE2CQlwYWdlX3NpemU7Ci0JdTE2CQlhZGRyX3dpZHRoOwotCi0JdTE2CQlmbGFnczsKLSNk ZWZpbmUJU0VDVF80SwkJMHgwMQkJLyogT1BDT0RFX0JFXzRLIHdvcmtzIHVuaWZvcm1seSAqLwot I2RlZmluZQlNMjVQX05PX0VSQVNFCTB4MDIJCS8qIE5vIGVyYXNlIGNvbW1hbmQgbmVlZGVkICov Ci19OwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbXRkL2NmaS5oIGIvaW5j bHVkZS9saW51eC9tdGQvY2ZpLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NzkzZjM2MwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbGludXgvbXRkL2NmaS5oCkBAIC0w LDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAwMC0yMDEwIERhdmlkIFdvb2Rob3Vz ZSA8ZHdtdzJAaW5mcmFkZWFkLm9yZz4gZXQgYWwuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQor ICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24s IE1BICAwMjExMC0xMzAxICBVU0EKKyAqCisgKi8KKworI2lmbmRlZiBfX01URF9DRklfSF9fCisj ZGVmaW5lIF9fTVREX0NGSV9IX18KKworLyogTkI6IHRoZXNlIHZhbHVlcyBtdXN0IHJlcHJlc2Vu dHMgdGhlIG51bWJlciBvZiBieXRlcyBuZWVkZWQgdG8gbWVldCB0aGUKKyAqICAgICBkZXZpY2Ug dHlwZSAoeDgsIHgxNiwgeDMyKS4gIEVnLiBhIDMyIGJpdCBkZXZpY2UgaXMgNCB4IDggYnl0ZXMu CisgKiAgICAgVGhlc2UgbnVtYmVycyBhcmUgdXNlZCBpbiBjYWxjdWxhdGlvbnMuCisgKi8KKyNk ZWZpbmUgQ0ZJX0RFVklDRVRZUEVfWDggICg4IC8gOCkKKyNkZWZpbmUgQ0ZJX0RFVklDRVRZUEVf WDE2ICgxNiAvIDgpCisjZGVmaW5lIENGSV9ERVZJQ0VUWVBFX1gzMiAoMzIgLyA4KQorI2RlZmlu ZSBDRklfREVWSUNFVFlQRV9YNjQgKDY0IC8gOCkKKworCisvKiBEZXZpY2UgSW50ZXJmYWNlIENv ZGUgQXNzaWdubWVudHMgZnJvbSB0aGUgIkNvbW1vbiBGbGFzaCBNZW1vcnkgSW50ZXJmYWNlCisg KiBQdWJsaWNhdGlvbiAxMDAiIGRhdGVkIERlY2VtYmVyIDEsIDIwMDEuCisgKi8KKyNkZWZpbmUg Q0ZJX0lOVEVSRkFDRV9YOF9BU1lOQwkJMHgwMDAwCisjZGVmaW5lIENGSV9JTlRFUkZBQ0VfWDE2 X0FTWU5DCQkweDAwMDEKKyNkZWZpbmUgQ0ZJX0lOVEVSRkFDRV9YOF9CWV9YMTZfQVNZTkMJMHgw MDAyCisjZGVmaW5lIENGSV9JTlRFUkZBQ0VfWDMyX0FTWU5DCQkweDAwMDMKKyNkZWZpbmUgQ0ZJ X0lOVEVSRkFDRV9YMTZfQllfWDMyX0FTWU5DCTB4MDAwNQorI2RlZmluZSBDRklfSU5URVJGQUNF X05PVF9BTExPV0VECTB4ZmZmZgorCisKKyNkZWZpbmUgQ0ZJX01GUl9BTlkJCTB4RkZGRgorI2Rl ZmluZSBDRklfSURfQU5ZCQkweEZGRkYKKyNkZWZpbmUgQ0ZJX01GUl9DT05USU5VQVRJT04JMHgw MDdGCisKKyNkZWZpbmUgQ0ZJX01GUl9BTUQJCTB4MDAwMQorI2RlZmluZSBDRklfTUZSX0FNSUMJ CTB4MDAzNworI2RlZmluZSBDRklfTUZSX0FUTUVMCQkweDAwMUYKKyNkZWZpbmUgQ0ZJX01GUl9F T04JCTB4MDAxQworI2RlZmluZSBDRklfTUZSX0ZVSklUU1UJCTB4MDAwNAorI2RlZmluZSBDRklf TUZSX0hZVU5EQUkJCTB4MDBBRAorI2RlZmluZSBDRklfTUZSX0lOVEVMCQkweDAwODkKKyNkZWZp bmUgQ0ZJX01GUl9NQUNST05JWAkweDAwQzIKKyNkZWZpbmUgQ0ZJX01GUl9ORUMJCTB4MDAxMAor I2RlZmluZSBDRklfTUZSX1BNQwkJMHgwMDlECisjZGVmaW5lIENGSV9NRlJfU0FNU1VORwkJMHgw MEVDCisjZGVmaW5lIENGSV9NRlJfU0hBUlAJCTB4MDBCMAorI2RlZmluZSBDRklfTUZSX1NTVAkJ MHgwMEJGCisjZGVmaW5lIENGSV9NRlJfU1QJCTB4MDAyMCAvKiBTVE1pY3JvZWxlY3Ryb25pY3Mg Ki8KKyNkZWZpbmUgQ0ZJX01GUl9UT1NISUJBCQkweDAwOTgKKyNkZWZpbmUgQ0ZJX01GUl9XSU5C T05ECQkweDAwREEKKworI2VuZGlmIC8qIF9fTVREX0NGSV9IX18gKi8KLS0gCjEuNy4xMC40CgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYmFyZWJveCBt YWlsaW5nIGxpc3QKYmFyZWJveEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZy YWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vYmFyZWJveAo=