From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom St Denis Subject: [PATCH 1/2] drm/amd/amdgpu: port of DCE v6 to new headers (v2) Date: Mon, 14 Nov 2016 13:57:45 -0500 Message-ID: <20161114185746.18225-1-tom.stdenis@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Tom St Denis UG9ydCBvZiBTSSBEQ0UgdjYgb3ZlciB0byBuZXcgQU1ER1BVIGhlYWRlcnMuICBUZXN0ZWQgb24g YQpUYWhpdGkgd2l0aCBHTk9NRSB0aHJvdWdoIHZhcmlvdXMgaG90IHBsdWdzL3JvdGF0aW9ucy9z aXplcy9mdWxsc2NyZWVuL3dpbmRvd2VkIGFuZApzdGFnaW5nIGRybS94Zjg2LXZpZGVvLWFtZGdw dS4KCih2MikgUmUtZmFjdG9yZWQgdG8gcmVtb3ZlIGZvcm1hdHRpbmcgY2hhbmdlcyB0byBzaV9l bnVtcy5oCiAgICAgYXMgd2VsbCByZW5hbWUgdmFyaW91cyBkZWZpbmVzLgoKU2lnbmVkLW9mZi1i eTogVG9tIFN0IERlbmlzIDx0b20uc3RkZW5pc0BhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2RjZV92Nl8wLmMgICAgICAgICAgICAgIHwgNTA3ICsrKysrKysrKysrLS0t LS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2lfZW51bXMuaCAgICAgICAgICAg ICAgfCAgNzggKysrKwogLi4uL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19yZWcvZGNlL2RjZV82 XzBfZC5oICAgfCAgMTIgKwogMyBmaWxlcyBjaGFuZ2VkLCAzNTAgaW5zZXJ0aW9ucygrKSwgMjQ3 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Rj ZV92Nl8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjZfMC5jCmluZGV4IGIw ZmRjMjkxYmY0My4uNTRlMzA5YzFlYWY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9kY2VfdjZfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92 Nl8wLmMKQEAgLTMwLDggKzMwLDE5IEBACiAjaW5jbHVkZSAiYXRvbWJpb3NfZW5jb2RlcnMuaCIK ICNpbmNsdWRlICJhbWRncHVfcGxsLmgiCiAjaW5jbHVkZSAiYW1kZ3B1X2Nvbm5lY3RvcnMuaCIK LSNpbmNsdWRlICJzaS9zaV9yZWcuaCIKLSNpbmNsdWRlICJzaS9zaWQuaCIKKworI2luY2x1ZGUg ImJpZi9iaWZfM18wX2QuaCIKKyNpbmNsdWRlICJiaWYvYmlmXzNfMF9zaF9tYXNrLmgiCisjaW5j bHVkZSAib3NzL29zc18xXzBfZC5oIgorI2luY2x1ZGUgIm9zcy9vc3NfMV8wX3NoX21hc2suaCIK KyNpbmNsdWRlICJnY2EvZ2Z4XzZfMF9kLmgiCisjaW5jbHVkZSAiZ2NhL2dmeF82XzBfc2hfbWFz ay5oIgorI2luY2x1ZGUgImdtYy9nbWNfNl8wX2QuaCIKKyNpbmNsdWRlICJnbWMvZ21jXzZfMF9z aF9tYXNrLmgiCisjaW5jbHVkZSAiZGNlL2RjZV82XzBfZC5oIgorI2luY2x1ZGUgImRjZS9kY2Vf Nl8wX3NoX21hc2suaCIKKyNpbmNsdWRlICJnY2EvZ2Z4XzdfMl9lbnVtLmgiCisjaW5jbHVkZSAi c2lfZW51bXMuaCIKIAogc3RhdGljIHZvaWQgZGNlX3Y2XzBfc2V0X2Rpc3BsYXlfZnVuY3Moc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogc3RhdGljIHZvaWQgZGNlX3Y2XzBfc2V0X2lycV9m dW5jcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CkBAIC00OCwxMiArNTksMTIgQEAgc3Rh dGljIGNvbnN0IHUzMiBjcnRjX29mZnNldHNbNl0gPQogCiBzdGF0aWMgY29uc3QgdTMyIGhwZF9v ZmZzZXRzW10gPQogewotCURDX0hQRDFfSU5UX1NUQVRVUyAtIERDX0hQRDFfSU5UX1NUQVRVUywK LQlEQ19IUEQyX0lOVF9TVEFUVVMgLSBEQ19IUEQxX0lOVF9TVEFUVVMsCi0JRENfSFBEM19JTlRf U1RBVFVTIC0gRENfSFBEMV9JTlRfU1RBVFVTLAotCURDX0hQRDRfSU5UX1NUQVRVUyAtIERDX0hQ RDFfSU5UX1NUQVRVUywKLQlEQ19IUEQ1X0lOVF9TVEFUVVMgLSBEQ19IUEQxX0lOVF9TVEFUVVMs Ci0JRENfSFBENl9JTlRfU1RBVFVTIC0gRENfSFBEMV9JTlRfU1RBVFVTLAorCW1tRENfSFBEMV9J TlRfU1RBVFVTIC0gbW1EQ19IUEQxX0lOVF9TVEFUVVMsCisJbW1EQ19IUEQyX0lOVF9TVEFUVVMg LSBtbURDX0hQRDFfSU5UX1NUQVRVUywKKwltbURDX0hQRDNfSU5UX1NUQVRVUyAtIG1tRENfSFBE MV9JTlRfU1RBVFVTLAorCW1tRENfSFBENF9JTlRfU1RBVFVTIC0gbW1EQ19IUEQxX0lOVF9TVEFU VVMsCisJbW1EQ19IUEQ1X0lOVF9TVEFUVVMgLSBtbURDX0hQRDFfSU5UX1NUQVRVUywKKwltbURD X0hQRDZfSU5UX1NUQVRVUyAtIG1tRENfSFBEMV9JTlRfU1RBVFVTLAogfTsKIAogc3RhdGljIGNv bnN0IHVpbnQzMl90IGRpZ19vZmZzZXRzW10gPSB7CkBAIC03MywzMiArODQsMzIgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCB7CiAJdWludDMyX3QJaHBkOwogCiB9IGludGVycnVwdF9zdGF0dXNfb2Zm c2V0c1s2XSA9IHsgewotCS5yZWcgPSBESVNQX0lOVEVSUlVQVF9TVEFUVVMsCisJLnJlZyA9IG1t RElTUF9JTlRFUlJVUFRfU1RBVFVTLAogCS52YmxhbmsgPSBESVNQX0lOVEVSUlVQVF9TVEFUVVNf X0xCX0QxX1ZCTEFOS19JTlRFUlJVUFRfTUFTSywKIAkudmxpbmUgPSBESVNQX0lOVEVSUlVQVF9T VEFUVVNfX0xCX0QxX1ZMSU5FX0lOVEVSUlVQVF9NQVNLLAogCS5ocGQgPSBESVNQX0lOVEVSUlVQ VF9TVEFUVVNfX0RDX0hQRDFfSU5URVJSVVBUX01BU0sKIH0sIHsKLQkucmVnID0gRElTUF9JTlRF UlJVUFRfU1RBVFVTX0NPTlRJTlVFLAorCS5yZWcgPSBtbURJU1BfSU5URVJSVVBUX1NUQVRVU19D T05USU5VRSwKIAkudmJsYW5rID0gRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFX19MQl9E Ml9WQkxBTktfSU5URVJSVVBUX01BU0ssCiAJLnZsaW5lID0gRElTUF9JTlRFUlJVUFRfU1RBVFVT X0NPTlRJTlVFX19MQl9EMl9WTElORV9JTlRFUlJVUFRfTUFTSywKIAkuaHBkID0gRElTUF9JTlRF UlJVUFRfU1RBVFVTX0NPTlRJTlVFX19EQ19IUEQyX0lOVEVSUlVQVF9NQVNLCiB9LCB7Ci0JLnJl ZyA9IERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTIsCisJLnJlZyA9IG1tRElTUF9JTlRF UlJVUFRfU1RBVFVTX0NPTlRJTlVFMiwKIAkudmJsYW5rID0gRElTUF9JTlRFUlJVUFRfU1RBVFVT X0NPTlRJTlVFMl9fTEJfRDNfVkJMQU5LX0lOVEVSUlVQVF9NQVNLLAogCS52bGluZSA9IERJU1Bf SU5URVJSVVBUX1NUQVRVU19DT05USU5VRTJfX0xCX0QzX1ZMSU5FX0lOVEVSUlVQVF9NQVNLLAog CS5ocGQgPSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUyX19EQ19IUEQzX0lOVEVSUlVQ VF9NQVNLCiB9LCB7Ci0JLnJlZyA9IERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTMsCisJ LnJlZyA9IG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFMywKIAkudmJsYW5rID0gRElT UF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFM19fTEJfRDRfVkJMQU5LX0lOVEVSUlVQVF9NQVNL LAogCS52bGluZSA9IERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTNfX0xCX0Q0X1ZMSU5F X0lOVEVSUlVQVF9NQVNLLAogCS5ocGQgPSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUUz X19EQ19IUEQ0X0lOVEVSUlVQVF9NQVNLCiB9LCB7Ci0JLnJlZyA9IERJU1BfSU5URVJSVVBUX1NU QVRVU19DT05USU5VRTQsCisJLnJlZyA9IG1tRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVF NCwKIAkudmJsYW5rID0gRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NPTlRJTlVFNF9fTEJfRDVfVkJM QU5LX0lOVEVSUlVQVF9NQVNLLAogCS52bGluZSA9IERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05U SU5VRTRfX0xCX0Q1X1ZMSU5FX0lOVEVSUlVQVF9NQVNLLAogCS5ocGQgPSBESVNQX0lOVEVSUlVQ VF9TVEFUVVNfQ09OVElOVUU0X19EQ19IUEQ1X0lOVEVSUlVQVF9NQVNLCiB9LCB7Ci0JLnJlZyA9 IERJU1BfSU5URVJSVVBUX1NUQVRVU19DT05USU5VRTUsCisJLnJlZyA9IG1tRElTUF9JTlRFUlJV UFRfU1RBVFVTX0NPTlRJTlVFNSwKIAkudmJsYW5rID0gRElTUF9JTlRFUlJVUFRfU1RBVFVTX0NP TlRJTlVFNV9fTEJfRDZfVkJMQU5LX0lOVEVSUlVQVF9NQVNLLAogCS52bGluZSA9IERJU1BfSU5U RVJSVVBUX1NUQVRVU19DT05USU5VRTVfX0xCX0Q2X1ZMSU5FX0lOVEVSUlVQVF9NQVNLLAogCS5o cGQgPSBESVNQX0lOVEVSUlVQVF9TVEFUVVNfQ09OVElOVUU1X19EQ19IUEQ2X0lOVEVSUlVQVF9N QVNLCkBAIC0xMTksNyArMTMwLDcgQEAgc3RhdGljIHZvaWQgZGNlX3Y2XzBfYXVkaW9fZW5kcHRf d3JlZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAogc3RhdGljIGJvb2wgZGNlX3Y2XzBf aXNfaW5fdmJsYW5rKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBpbnQgY3J0YykKIHsKLQlp ZiAoUlJFRzMyKEVWRVJHUkVFTl9DUlRDX1NUQVRVUyArIGNydGNfb2Zmc2V0c1tjcnRjXSkgJiBF VkVSR1JFRU5fQ1JUQ19WX0JMQU5LKQorCWlmIChSUkVHMzIobW1DUlRDX1NUQVRVUyArIGNydGNf b2Zmc2V0c1tjcnRjXSkgJiBDUlRDX1NUQVRVU19fQ1JUQ19WX0JMQU5LX01BU0spCiAJCXJldHVy biB0cnVlOwogCWVsc2UKIAkJcmV0dXJuIGZhbHNlOwpAQCAtMTI5LDggKzE0MCw4IEBAIHN0YXRp YyBib29sIGRjZV92Nl8wX2lzX2NvdW50ZXJfbW92aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2LCBpbnQgY3J0YykKIHsKIAl1MzIgcG9zMSwgcG9zMjsKIAotCXBvczEgPSBSUkVHMzIoRVZF UkdSRUVOX0NSVENfU1RBVFVTX1BPU0lUSU9OICsgY3J0Y19vZmZzZXRzW2NydGNdKTsKLQlwb3My ID0gUlJFRzMyKEVWRVJHUkVFTl9DUlRDX1NUQVRVU19QT1NJVElPTiArIGNydGNfb2Zmc2V0c1tj cnRjXSk7CisJcG9zMSA9IFJSRUczMihtbUNSVENfU1RBVFVTX1BPU0lUSU9OICsgY3J0Y19vZmZz ZXRzW2NydGNdKTsKKwlwb3MyID0gUlJFRzMyKG1tQ1JUQ19TVEFUVVNfUE9TSVRJT04gKyBjcnRj X29mZnNldHNbY3J0Y10pOwogCiAJaWYgKHBvczEgIT0gcG9zMikKIAkJcmV0dXJuIHRydWU7CkBA IC0xNTIsNyArMTYzLDcgQEAgc3RhdGljIHZvaWQgZGNlX3Y2XzBfdmJsYW5rX3dhaXQoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGludCBjcnRjKQogCWlmIChjcnRjID49IGFkZXYtPm1vZGVf aW5mby5udW1fY3J0YykKIAkJcmV0dXJuOwogCi0JaWYgKCEoUlJFRzMyKEVWRVJHUkVFTl9DUlRD X0NPTlRST0wgKyBjcnRjX29mZnNldHNbY3J0Y10pICYgRVZFUkdSRUVOX0NSVENfTUFTVEVSX0VO KSkKKwlpZiAoIShSUkVHMzIobW1DUlRDX0NPTlRST0wgKyBjcnRjX29mZnNldHNbY3J0Y10pICYg Q1JUQ19DT05UUk9MX19DUlRDX01BU1RFUl9FTl9NQVNLKSkKIAkJcmV0dXJuOwogCiAJLyogZGVw ZW5kaW5nIG9uIHdoZW4gd2UgaGl0IHZibGFuaywgd2UgbWF5IGJlIGNsb3NlIHRvIGFjdGl2ZTsg aWYgc28sCkBAIC0xODAsNyArMTkxLDcgQEAgc3RhdGljIHUzMiBkY2VfdjZfMF92YmxhbmtfZ2V0 X2NvdW50ZXIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGludCBjcnRjKQogCWlmIChjcnRj ID49IGFkZXYtPm1vZGVfaW5mby5udW1fY3J0YykKIAkJcmV0dXJuIDA7CiAJZWxzZQotCQlyZXR1 cm4gUlJFRzMyKENSVENfU1RBVFVTX0ZSQU1FX0NPVU5UICsgY3J0Y19vZmZzZXRzW2NydGNdKTsK KwkJcmV0dXJuIFJSRUczMihtbUNSVENfU1RBVFVTX0ZSQU1FX0NPVU5UICsgY3J0Y19vZmZzZXRz W2NydGNdKTsKIH0KIAogc3RhdGljIHZvaWQgZGNlX3Y2XzBfcGFnZWZsaXBfaW50ZXJydXB0X2lu aXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCkBAIC0yMjAsMTYgKzIzMSwxNiBAQCBzdGF0 aWMgdm9pZCBkY2VfdjZfMF9wYWdlX2ZsaXAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJ c3RydWN0IGFtZGdwdV9jcnRjICphbWRncHVfY3J0YyA9IGFkZXYtPm1vZGVfaW5mby5jcnRjc1tj cnRjX2lkXTsKIAogCS8qIGZsaXAgYXQgaHN5bmMgZm9yIGFzeW5jLCBkZWZhdWx0IGlzIHZzeW5j ICovCi0JV1JFRzMyKEVWRVJHUkVFTl9HUlBIX0ZMSVBfQ09OVFJPTCArIGFtZGdwdV9jcnRjLT5j cnRjX29mZnNldCwgYXN5bmMgPwotCSAgICAgICBFVkVSR1JFRU5fR1JQSF9TVVJGQUNFX1VQREFU RV9IX1JFVFJBQ0VfRU4gOiAwKTsKKwlXUkVHMzIobW1HUlBIX0ZMSVBfQ09OVFJPTCArIGFtZGdw dV9jcnRjLT5jcnRjX29mZnNldCwgYXN5bmMgPworCSAgICAgICBHUlBIX0ZMSVBfQ09OVFJPTF9f R1JQSF9TVVJGQUNFX1VQREFURV9IX1JFVFJBQ0VfRU5fTUFTSyA6IDApOwogCS8qIHVwZGF0ZSB0 aGUgc2Nhbm91dCBhZGRyZXNzZXMgKi8KLQlXUkVHMzIoRVZFUkdSRUVOX0dSUEhfUFJJTUFSWV9T VVJGQUNFX0FERFJFU1NfSElHSCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwKKwlXUkVHMzIo bW1HUlBIX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTX0hJR0ggKyBhbWRncHVfY3J0Yy0+Y3J0Y19v ZmZzZXQsCiAJICAgICAgIHVwcGVyXzMyX2JpdHMoY3J0Y19iYXNlKSk7Ci0JV1JFRzMyKEVWRVJH UkVFTl9HUlBIX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zm c2V0LAorCVdSRUczMihtbUdSUEhfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1MgKyBhbWRncHVfY3J0 Yy0+Y3J0Y19vZmZzZXQsCiAJICAgICAgICh1MzIpY3J0Y19iYXNlKTsKIAogCS8qIHBvc3QgdGhl IHdyaXRlICovCi0JUlJFRzMyKEVWRVJHUkVFTl9HUlBIX1BSSU1BUllfU1VSRkFDRV9BRERSRVNT ICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0KTsKKwlSUkVHMzIobW1HUlBIX1BSSU1BUllfU1VS RkFDRV9BRERSRVNTICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0KTsKIH0KIAogc3RhdGljIGlu dCBkY2VfdjZfMF9jcnRjX2dldF9zY2Fub3V0cG9zKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LCBpbnQgY3J0YywKQEAgLTIzNyw4ICsyNDgsOCBAQCBzdGF0aWMgaW50IGRjZV92Nl8wX2NydGNf Z2V0X3NjYW5vdXRwb3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGludCBjcnRjLAogewog CWlmICgoY3J0YyA8IDApIHx8IChjcnRjID49IGFkZXYtPm1vZGVfaW5mby5udW1fY3J0YykpCiAJ CXJldHVybiAtRUlOVkFMOwotCSp2YmwgPSBSUkVHMzIoRVZFUkdSRUVOX0NSVENfVl9CTEFOS19T VEFSVF9FTkQgKyBjcnRjX29mZnNldHNbY3J0Y10pOwotCSpwb3NpdGlvbiA9IFJSRUczMihFVkVS R1JFRU5fQ1JUQ19TVEFUVVNfUE9TSVRJT04gKyBjcnRjX29mZnNldHNbY3J0Y10pOworCSp2Ymwg PSBSUkVHMzIobW1DUlRDX1ZfQkxBTktfU1RBUlRfRU5EICsgY3J0Y19vZmZzZXRzW2NydGNdKTsK KwkqcG9zaXRpb24gPSBSUkVHMzIobW1DUlRDX1NUQVRVU19QT1NJVElPTiArIGNydGNfb2Zmc2V0 c1tjcnRjXSk7CiAKIAlyZXR1cm4gMDsKIApAQCAtMjYxLDcgKzI3Miw3IEBAIHN0YXRpYyBib29s IGRjZV92Nl8wX2hwZF9zZW5zZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAlpZiAoaHBk ID49IGFkZXYtPm1vZGVfaW5mby5udW1faHBkKQogCQlyZXR1cm4gY29ubmVjdGVkOwogCi0JaWYg KFJSRUczMihEQ19IUEQxX0lOVF9TVEFUVVMgKyBocGRfb2Zmc2V0c1tocGRdKSAmIERDX0hQRHhf U0VOU0UpCisJaWYgKFJSRUczMihtbURDX0hQRDFfSU5UX1NUQVRVUyArIGhwZF9vZmZzZXRzW2hw ZF0pICYgRENfSFBEMV9JTlRfU1RBVFVTX19EQ19IUEQxX1NFTlNFX01BU0spCiAJCWNvbm5lY3Rl ZCA9IHRydWU7CiAKIAlyZXR1cm4gY29ubmVjdGVkOwpAQCAtMjg0LDEyICsyOTUsMTIgQEAgc3Rh dGljIHZvaWQgZGNlX3Y2XzBfaHBkX3NldF9wb2xhcml0eShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiwKIAlpZiAoaHBkID49IGFkZXYtPm1vZGVfaW5mby5udW1faHBkKQogCQlyZXR1cm47CiAK LQl0bXAgPSBSUkVHMzIoRENfSFBEMV9JTlRfQ09OVFJPTCArIGhwZF9vZmZzZXRzW2hwZF0pOwor CXRtcCA9IFJSRUczMihtbURDX0hQRDFfSU5UX0NPTlRST0wgKyBocGRfb2Zmc2V0c1tocGRdKTsK IAlpZiAoY29ubmVjdGVkKQotCQl0bXAgJj0gfkRDX0hQRHhfSU5UX1BPTEFSSVRZOworCQl0bXAg Jj0gfkRDX0hQRDFfSU5UX0NPTlRST0xfX0RDX0hQRDFfSU5UX1BPTEFSSVRZX01BU0s7CiAJZWxz ZQotCQl0bXAgfD0gRENfSFBEeF9JTlRfUE9MQVJJVFk7Ci0JV1JFRzMyKERDX0hQRDFfSU5UX0NP TlRST0wgKyBocGRfb2Zmc2V0c1tocGRdLCB0bXApOworCQl0bXAgfD0gRENfSFBEMV9JTlRfQ09O VFJPTF9fRENfSFBEMV9JTlRfUE9MQVJJVFlfTUFTSzsKKwlXUkVHMzIobW1EQ19IUEQxX0lOVF9D T05UUk9MICsgaHBkX29mZnNldHNbaHBkXSwgdG1wKTsKIH0KIAogLyoqCkBAIC0zMTIsOSArMzIz LDkgQEAgc3RhdGljIHZvaWQgZGNlX3Y2XzBfaHBkX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYpCiAJCWlmIChhbWRncHVfY29ubmVjdG9yLT5ocGQuaHBkID49IGFkZXYtPm1vZGVfaW5m by5udW1faHBkKQogCQkJY29udGludWU7CiAKLQkJdG1wID0gUlJFRzMyKERDX0hQRDFfQ09OVFJP TCArIGhwZF9vZmZzZXRzW2FtZGdwdV9jb25uZWN0b3ItPmhwZC5ocGRdKTsKLQkJdG1wIHw9IERD X0hQRHhfRU47Ci0JCVdSRUczMihEQ19IUEQxX0NPTlRST0wgKyBocGRfb2Zmc2V0c1thbWRncHVf Y29ubmVjdG9yLT5ocGQuaHBkXSwgdG1wKTsKKwkJdG1wID0gUlJFRzMyKG1tRENfSFBEMV9DT05U Uk9MICsgaHBkX29mZnNldHNbYW1kZ3B1X2Nvbm5lY3Rvci0+aHBkLmhwZF0pOworCQl0bXAgfD0g RENfSFBEMV9DT05UUk9MX19EQ19IUEQxX0VOX01BU0s7CisJCVdSRUczMihtbURDX0hQRDFfQ09O VFJPTCArIGhwZF9vZmZzZXRzW2FtZGdwdV9jb25uZWN0b3ItPmhwZC5ocGRdLCB0bXApOwogCiAJ CWlmIChjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9lRFAg fHwKIAkJICAgIGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9S X0xWRFMpIHsKQEAgLTMyMyw5ICszMzQsOSBAQCBzdGF0aWMgdm9pZCBkY2VfdjZfMF9ocGRfaW5p dChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJCSAqIGh0dHBzOi8vYnVnemlsbGEucmVk aGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NzI2MTQzCiAJCQkgKiBhbHNvIGF2b2lkIGludGVycnVw dCBzdG9ybXMgZHVyaW5nIGRwbXMuCiAJCQkgKi8KLQkJCXRtcCA9IFJSRUczMihEQ19IUEQxX0lO VF9DT05UUk9MICsgaHBkX29mZnNldHNbYW1kZ3B1X2Nvbm5lY3Rvci0+aHBkLmhwZF0pOwotCQkJ dG1wICY9IH5EQ19IUER4X0lOVF9FTjsKLQkJCVdSRUczMihEQ19IUEQxX0lOVF9DT05UUk9MICsg aHBkX29mZnNldHNbYW1kZ3B1X2Nvbm5lY3Rvci0+aHBkLmhwZF0sIHRtcCk7CisJCQl0bXAgPSBS UkVHMzIobW1EQ19IUEQxX0lOVF9DT05UUk9MICsgaHBkX29mZnNldHNbYW1kZ3B1X2Nvbm5lY3Rv ci0+aHBkLmhwZF0pOworCQkJdG1wICY9IH5EQ19IUEQxX0lOVF9DT05UUk9MX19EQ19IUEQxX0lO VF9FTl9NQVNLOworCQkJV1JFRzMyKG1tRENfSFBEMV9JTlRfQ09OVFJPTCArIGhwZF9vZmZzZXRz W2FtZGdwdV9jb25uZWN0b3ItPmhwZC5ocGRdLCB0bXApOwogCQkJY29udGludWU7CiAJCX0KIApA QCAtMzU1LDkgKzM2Niw5IEBAIHN0YXRpYyB2b2lkIGRjZV92Nl8wX2hwZF9maW5pKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2KQogCQlpZiAoYW1kZ3B1X2Nvbm5lY3Rvci0+aHBkLmhwZCA+PSBh ZGV2LT5tb2RlX2luZm8ubnVtX2hwZCkKIAkJCWNvbnRpbnVlOwogCi0JCXRtcCA9IFJSRUczMihE Q19IUEQxX0NPTlRST0wgKyBocGRfb2Zmc2V0c1thbWRncHVfY29ubmVjdG9yLT5ocGQuaHBkXSk7 Ci0JCXRtcCAmPSB+RENfSFBEeF9FTjsKLQkJV1JFRzMyKERDX0hQRDFfQ09OVFJPTCArIGhwZF9v ZmZzZXRzW2FtZGdwdV9jb25uZWN0b3ItPmhwZC5ocGRdLCAwKTsKKwkJdG1wID0gUlJFRzMyKG1t RENfSFBEMV9DT05UUk9MICsgaHBkX29mZnNldHNbYW1kZ3B1X2Nvbm5lY3Rvci0+aHBkLmhwZF0p OworCQl0bXAgJj0gfkRDX0hQRDFfQ09OVFJPTF9fRENfSFBEMV9FTl9NQVNLOworCQlXUkVHMzIo bW1EQ19IUEQxX0NPTlRST0wgKyBocGRfb2Zmc2V0c1thbWRncHVfY29ubmVjdG9yLT5ocGQuaHBk XSwgMCk7CiAKIAkJYW1kZ3B1X2lycV9wdXQoYWRldiwgJmFkZXYtPmhwZF9pcnEsIGFtZGdwdV9j b25uZWN0b3ItPmhwZC5ocGQpOwogCX0KQEAgLTM2NSw3ICszNzYsNyBAQCBzdGF0aWMgdm9pZCBk Y2VfdjZfMF9ocGRfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogc3RhdGljIHUz MiBkY2VfdjZfMF9ocGRfZ2V0X2dwaW9fcmVnKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQog ewotCXJldHVybiBTSV9EQ19HUElPX0hQRF9BOworCXJldHVybiBtbURDX0dQSU9fSFBEX0E7CiB9 CiAKIHN0YXRpYyBib29sIGRjZV92Nl8wX2lzX2Rpc3BsYXlfaHVuZyhzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldikKQEAgLTM4MCw3ICszOTEsNyBAQCBzdGF0aWMgdTMyIGV2ZXJncmVlbl9nZXRf dmJsYW5rX2NvdW50ZXIoc3RydWN0IGFtZGdwdV9kZXZpY2UqIGFkZXYsIGludCBjcnRjKQogCWlm IChjcnRjID49IGFkZXYtPm1vZGVfaW5mby5udW1fY3J0YykKIAkJcmV0dXJuIDA7CiAJZWxzZQot CQlyZXR1cm4gUlJFRzMyKENSVENfU1RBVFVTX0ZSQU1FX0NPVU5UICsgY3J0Y19vZmZzZXRzW2Ny dGNdKTsKKwkJcmV0dXJuIFJSRUczMihtbUNSVENfU1RBVFVTX0ZSQU1FX0NPVU5UICsgY3J0Y19v ZmZzZXRzW2NydGNdKTsKIH0KIAogc3RhdGljIHZvaWQgZGNlX3Y2XzBfc3RvcF9tY19hY2Nlc3Mo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCkBAIC0zODksMjUgKzQwMCwyNSBAQCBzdGF0aWMg dm9pZCBkY2VfdjZfMF9zdG9wX21jX2FjY2VzcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwK IAl1MzIgY3J0Y19lbmFibGVkLCB0bXAsIGZyYW1lX2NvdW50OwogCWludCBpLCBqOwogCi0Jc2F2 ZS0+dmdhX3JlbmRlcl9jb250cm9sID0gUlJFRzMyKFZHQV9SRU5ERVJfQ09OVFJPTCk7Ci0Jc2F2 ZS0+dmdhX2hkcF9jb250cm9sID0gUlJFRzMyKFZHQV9IRFBfQ09OVFJPTCk7CisJc2F2ZS0+dmdh X3JlbmRlcl9jb250cm9sID0gUlJFRzMyKG1tVkdBX1JFTkRFUl9DT05UUk9MKTsKKwlzYXZlLT52 Z2FfaGRwX2NvbnRyb2wgPSBSUkVHMzIobW1WR0FfSERQX0NPTlRST0wpOwogCiAJLyogZGlzYWJs ZSBWR0EgcmVuZGVyICovCi0JV1JFRzMyKFZHQV9SRU5ERVJfQ09OVFJPTCwgMCk7CisJV1JFRzMy KG1tVkdBX1JFTkRFUl9DT05UUk9MLCAwKTsKIAogCS8qIGJsYW5rIHRoZSBkaXNwbGF5IGNvbnRy b2xsZXJzICovCiAJZm9yIChpID0gMDsgaSA8IGFkZXYtPm1vZGVfaW5mby5udW1fY3J0YzsgaSsr KSB7Ci0JCWNydGNfZW5hYmxlZCA9IFJSRUczMihFVkVSR1JFRU5fQ1JUQ19DT05UUk9MICsgY3J0 Y19vZmZzZXRzW2ldKSAmIEVWRVJHUkVFTl9DUlRDX01BU1RFUl9FTjsKKwkJY3J0Y19lbmFibGVk ID0gUlJFRzMyKG1tQ1JUQ19DT05UUk9MICsgY3J0Y19vZmZzZXRzW2ldKSAmIENSVENfQ09OVFJP TF9fQ1JUQ19NQVNURVJfRU5fTUFTSzsKIAkJaWYgKGNydGNfZW5hYmxlZCkgewogCQkJc2F2ZS0+ Y3J0Y19lbmFibGVkW2ldID0gdHJ1ZTsKLQkJCXRtcCA9IFJSRUczMihFVkVSR1JFRU5fQ1JUQ19C TEFOS19DT05UUk9MICsgY3J0Y19vZmZzZXRzW2ldKTsKKwkJCXRtcCA9IFJSRUczMihtbUNSVENf QkxBTktfQ09OVFJPTCArIGNydGNfb2Zmc2V0c1tpXSk7CiAKLQkJCWlmICghKHRtcCAmIEVWRVJH UkVFTl9DUlRDX0JMQU5LX0RBVEFfRU4pKSB7CisJCQlpZiAoISh0bXAgJiBDUlRDX0JMQU5LX0NP TlRST0xfX0NSVENfQkxBTktfREFUQV9FTl9NQVNLKSkgewogCQkJCWRjZV92Nl8wX3ZibGFua193 YWl0KGFkZXYsIGkpOwotCQkJCVdSRUczMihFVkVSR1JFRU5fQ1JUQ19VUERBVEVfTE9DSyArIGNy dGNfb2Zmc2V0c1tpXSwgMSk7Ci0JCQkJdG1wIHw9IEVWRVJHUkVFTl9DUlRDX0JMQU5LX0RBVEFf RU47Ci0JCQkJV1JFRzMyKEVWRVJHUkVFTl9DUlRDX0JMQU5LX0NPTlRST0wgKyBjcnRjX29mZnNl dHNbaV0sIHRtcCk7Ci0JCQkJV1JFRzMyKEVWRVJHUkVFTl9DUlRDX1VQREFURV9MT0NLICsgY3J0 Y19vZmZzZXRzW2ldLCAwKTsKKwkJCQlXUkVHMzIobW1DUlRDX1VQREFURV9MT0NLICsgY3J0Y19v ZmZzZXRzW2ldLCAxKTsKKwkJCQl0bXAgfD0gQ1JUQ19CTEFOS19DT05UUk9MX19DUlRDX0JMQU5L X0RBVEFfRU5fTUFTSzsKKwkJCQlXUkVHMzIobW1DUlRDX0JMQU5LX0NPTlRST0wgKyBjcnRjX29m ZnNldHNbaV0sIHRtcCk7CisJCQkJV1JFRzMyKG1tQ1JUQ19VUERBVEVfTE9DSyArIGNydGNfb2Zm c2V0c1tpXSwgMCk7CiAJCQl9CiAJCQkvKiB3YWl0IGZvciB0aGUgbmV4dCBmcmFtZSAqLwogCQkJ ZnJhbWVfY291bnQgPSBldmVyZ3JlZW5fZ2V0X3ZibGFua19jb3VudGVyKGFkZXYsIGkpOwpAQCAt NDE4LDExICs0MjksMTEgQEAgc3RhdGljIHZvaWQgZGNlX3Y2XzBfc3RvcF9tY19hY2Nlc3Moc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQl9CiAKIAkJCS8qIFhYWCB0aGlzIGlzIGEgaGFj ayB0byBhdm9pZCBzdHJhbmdlIGJlaGF2aW9yIHdpdGggRUZJIG9uIGNlcnRhaW4gc3lzdGVtcyAq LwotCQkJV1JFRzMyKEVWRVJHUkVFTl9DUlRDX1VQREFURV9MT0NLICsgY3J0Y19vZmZzZXRzW2ld LCAxKTsKLQkJCXRtcCA9IFJSRUczMihFVkVSR1JFRU5fQ1JUQ19DT05UUk9MICsgY3J0Y19vZmZz ZXRzW2ldKTsKLQkJCXRtcCAmPSB+RVZFUkdSRUVOX0NSVENfTUFTVEVSX0VOOwotCQkJV1JFRzMy KEVWRVJHUkVFTl9DUlRDX0NPTlRST0wgKyBjcnRjX29mZnNldHNbaV0sIHRtcCk7Ci0JCQlXUkVH MzIoRVZFUkdSRUVOX0NSVENfVVBEQVRFX0xPQ0sgKyBjcnRjX29mZnNldHNbaV0sIDApOworCQkJ V1JFRzMyKG1tQ1JUQ19VUERBVEVfTE9DSyArIGNydGNfb2Zmc2V0c1tpXSwgMSk7CisJCQl0bXAg PSBSUkVHMzIobW1DUlRDX0NPTlRST0wgKyBjcnRjX29mZnNldHNbaV0pOworCQkJdG1wICY9IH5D UlRDX0NPTlRST0xfX0NSVENfTUFTVEVSX0VOX01BU0s7CisJCQlXUkVHMzIobW1DUlRDX0NPTlRS T0wgKyBjcnRjX29mZnNldHNbaV0sIHRtcCk7CisJCQlXUkVHMzIobW1DUlRDX1VQREFURV9MT0NL ICsgY3J0Y19vZmZzZXRzW2ldLCAwKTsKIAkJCXNhdmUtPmNydGNfZW5hYmxlZFtpXSA9IGZhbHNl OwogCQkJLyogKioqKiogKi8KIAkJfSBlbHNlIHsKQEAgLTQzOSw0MSArNDUwLDQxIEBAIHN0YXRp YyB2b2lkIGRjZV92Nl8wX3Jlc3VtZV9tY19hY2Nlc3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsCiAKIAkvKiB1cGRhdGUgY3J0YyBiYXNlIGFkZHJlc3NlcyAqLwogCWZvciAoaSA9IDA7IGkg PCBhZGV2LT5tb2RlX2luZm8ubnVtX2NydGM7IGkrKykgewotCQlXUkVHMzIoRVZFUkdSRUVOX0dS UEhfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSCArIGNydGNfb2Zmc2V0c1tpXSwKKwkJV1JF RzMyKG1tR1JQSF9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIICsgY3J0Y19vZmZzZXRzW2ld LAogCQkgICAgICAgdXBwZXJfMzJfYml0cyhhZGV2LT5tYy52cmFtX3N0YXJ0KSk7Ci0JCVdSRUcz MihFVkVSR1JFRU5fR1JQSF9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTX0hJR0ggKyBjcnRjX29m ZnNldHNbaV0sCisJCVdSRUczMihtbUdSUEhfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdI ICsgY3J0Y19vZmZzZXRzW2ldLAogCQkgICAgICAgdXBwZXJfMzJfYml0cyhhZGV2LT5tYy52cmFt X3N0YXJ0KSk7Ci0JCVdSRUczMihFVkVSR1JFRU5fR1JQSF9QUklNQVJZX1NVUkZBQ0VfQUREUkVT UyArIGNydGNfb2Zmc2V0c1tpXSwKKwkJV1JFRzMyKG1tR1JQSF9QUklNQVJZX1NVUkZBQ0VfQURE UkVTUyArIGNydGNfb2Zmc2V0c1tpXSwKIAkJICAgICAgICh1MzIpYWRldi0+bWMudnJhbV9zdGFy dCk7Ci0JCVdSRUczMihFVkVSR1JFRU5fR1JQSF9TRUNPTkRBUllfU1VSRkFDRV9BRERSRVNTICsg Y3J0Y19vZmZzZXRzW2ldLAorCQlXUkVHMzIobW1HUlBIX1NFQ09OREFSWV9TVVJGQUNFX0FERFJF U1MgKyBjcnRjX29mZnNldHNbaV0sCiAJCSAgICAgICAodTMyKWFkZXYtPm1jLnZyYW1fc3RhcnQp OwogCX0KIAotCVdSRUczMihFVkVSR1JFRU5fVkdBX01FTU9SWV9CQVNFX0FERFJFU1NfSElHSCwg dXBwZXJfMzJfYml0cyhhZGV2LT5tYy52cmFtX3N0YXJ0KSk7Ci0JV1JFRzMyKEVWRVJHUkVFTl9W R0FfTUVNT1JZX0JBU0VfQUREUkVTUywgKHUzMilhZGV2LT5tYy52cmFtX3N0YXJ0KTsKKwlXUkVH MzIobW1WR0FfTUVNT1JZX0JBU0VfQUREUkVTU19ISUdILCB1cHBlcl8zMl9iaXRzKGFkZXYtPm1j LnZyYW1fc3RhcnQpKTsKKwlXUkVHMzIobW1WR0FfTUVNT1JZX0JBU0VfQUREUkVTUywgKHUzMilh ZGV2LT5tYy52cmFtX3N0YXJ0KTsKIAogCS8qIHVubG9jayByZWdzIGFuZCB3YWl0IGZvciB1cGRh dGUgKi8KIAlmb3IgKGkgPSAwOyBpIDwgYWRldi0+bW9kZV9pbmZvLm51bV9jcnRjOyBpKyspIHsK IAkJaWYgKHNhdmUtPmNydGNfZW5hYmxlZFtpXSkgewotCQkJdG1wID0gUlJFRzMyKEVWRVJHUkVF Tl9NQVNURVJfVVBEQVRFX01PREUgKyBjcnRjX29mZnNldHNbaV0pOworCQkJdG1wID0gUlJFRzMy KG1tTUFTVEVSX1VQREFURV9NT0RFICsgY3J0Y19vZmZzZXRzW2ldKTsKIAkJCWlmICgodG1wICYg MHg3KSAhPSAzKSB7CiAJCQkJdG1wICY9IH4weDc7CiAJCQkJdG1wIHw9IDB4MzsKLQkJCQlXUkVH MzIoRVZFUkdSRUVOX01BU1RFUl9VUERBVEVfTU9ERSArIGNydGNfb2Zmc2V0c1tpXSwgdG1wKTsK KwkJCQlXUkVHMzIobW1NQVNURVJfVVBEQVRFX01PREUgKyBjcnRjX29mZnNldHNbaV0sIHRtcCk7 CiAJCQl9Ci0JCQl0bXAgPSBSUkVHMzIoRVZFUkdSRUVOX0dSUEhfVVBEQVRFICsgY3J0Y19vZmZz ZXRzW2ldKTsKLQkJCWlmICh0bXAgJiBFVkVSR1JFRU5fR1JQSF9VUERBVEVfTE9DSykgewotCQkJ CXRtcCAmPSB+RVZFUkdSRUVOX0dSUEhfVVBEQVRFX0xPQ0s7Ci0JCQkJV1JFRzMyKEVWRVJHUkVF Tl9HUlBIX1VQREFURSArIGNydGNfb2Zmc2V0c1tpXSwgdG1wKTsKKwkJCXRtcCA9IFJSRUczMiht bUdSUEhfVVBEQVRFICsgY3J0Y19vZmZzZXRzW2ldKTsKKwkJCWlmICh0bXAgJiBHUlBIX1VQREFU RV9fR1JQSF9VUERBVEVfTE9DS19NQVNLKSB7CisJCQkJdG1wICY9IH5HUlBIX1VQREFURV9fR1JQ SF9VUERBVEVfTE9DS19NQVNLOworCQkJCVdSRUczMihtbUdSUEhfVVBEQVRFICsgY3J0Y19vZmZz ZXRzW2ldLCB0bXApOwogCQkJfQotCQkJdG1wID0gUlJFRzMyKEVWRVJHUkVFTl9NQVNURVJfVVBE QVRFX0xPQ0sgKyBjcnRjX29mZnNldHNbaV0pOworCQkJdG1wID0gUlJFRzMyKG1tTUFTVEVSX1VQ REFURV9MT0NLICsgY3J0Y19vZmZzZXRzW2ldKTsKIAkJCWlmICh0bXAgJiAxKSB7CiAJCQkJdG1w ICY9IH4xOwotCQkJCVdSRUczMihFVkVSR1JFRU5fTUFTVEVSX1VQREFURV9MT0NLICsgY3J0Y19v ZmZzZXRzW2ldLCB0bXApOworCQkJCVdSRUczMihtbU1BU1RFUl9VUERBVEVfTE9DSyArIGNydGNf b2Zmc2V0c1tpXSwgdG1wKTsKIAkJCX0KIAkJCWZvciAoaiA9IDA7IGogPCBhZGV2LT51c2VjX3Rp bWVvdXQ7IGorKykgewotCQkJCXRtcCA9IFJSRUczMihFVkVSR1JFRU5fR1JQSF9VUERBVEUgKyBj cnRjX29mZnNldHNbaV0pOwotCQkJCWlmICgodG1wICYgRVZFUkdSRUVOX0dSUEhfU1VSRkFDRV9V UERBVEVfUEVORElORykgPT0gMCkKKwkJCQl0bXAgPSBSUkVHMzIobW1HUlBIX1VQREFURSArIGNy dGNfb2Zmc2V0c1tpXSk7CisJCQkJaWYgKCh0bXAgJiBHUlBIX1VQREFURV9fR1JQSF9TVVJGQUNF X1VQREFURV9QRU5ESU5HX01BU0spID09IDApCiAJCQkJCWJyZWFrOwogCQkJCXVkZWxheSgxKTsK IAkJCX0KQEAgLTQ4MSw5ICs0OTIsOSBAQCBzdGF0aWMgdm9pZCBkY2VfdjZfMF9yZXN1bWVfbWNf YWNjZXNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCX0KIAogCS8qIFVubG9jayB2Z2Eg YWNjZXNzICovCi0JV1JFRzMyKFZHQV9IRFBfQ09OVFJPTCwgc2F2ZS0+dmdhX2hkcF9jb250cm9s KTsKKwlXUkVHMzIobW1WR0FfSERQX0NPTlRST0wsIHNhdmUtPnZnYV9oZHBfY29udHJvbCk7CiAJ bWRlbGF5KDEpOwotCVdSRUczMihWR0FfUkVOREVSX0NPTlRST0wsIHNhdmUtPnZnYV9yZW5kZXJf Y29udHJvbCk7CisJV1JFRzMyKG1tVkdBX1JFTkRFUl9DT05UUk9MLCBzYXZlLT52Z2FfcmVuZGVy X2NvbnRyb2wpOwogCiB9CiAKQEAgLTQ5MSw4ICs1MDIsOCBAQCBzdGF0aWMgdm9pZCBkY2VfdjZf MF9zZXRfdmdhX3JlbmRlcl9zdGF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJCQkJ ICBib29sIHJlbmRlcikKIHsKIAlpZiAoIXJlbmRlcikKLQkJV1JFRzMyKFJfMDAwMzAwX1ZHQV9S RU5ERVJfQ09OVFJPTCwKLQkJCVJSRUczMihSXzAwMDMwMF9WR0FfUkVOREVSX0NPTlRST0wpICYg Q18wMDAzMDBfVkdBX1ZTVEFUVVNfQ05UTCk7CisJCVdSRUczMihtbVZHQV9SRU5ERVJfQ09OVFJP TCwKKwkJCVJSRUczMihtbVZHQV9SRU5ERVJfQ09OVFJPTCkgJiBWR0FfVlNUQVRVU19DTlRMKTsK IAogfQogCkBAIC01MjYsMTQgKzUzNywxNCBAQCB2b2lkIGRjZV92Nl8wX2Rpc2FibGVfZGNlKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCiAJCS8qRGlzYWJsZSBjcnRjKi8KIAkJZm9yIChp ID0gMDsgaSA8IGRjZV92Nl8wX2dldF9udW1fY3J0YyhhZGV2KTsgaSsrKSB7Ci0JCQljcnRjX2Vu YWJsZWQgPSBSUkVHMzIoRVZFUkdSRUVOX0NSVENfQ09OVFJPTCArIGNydGNfb2Zmc2V0c1tpXSkg JgotCQkJCUVWRVJHUkVFTl9DUlRDX01BU1RFUl9FTjsKKwkJCWNydGNfZW5hYmxlZCA9IFJSRUcz MihtbUNSVENfQ09OVFJPTCArIGNydGNfb2Zmc2V0c1tpXSkgJgorCQkJCUNSVENfQ09OVFJPTF9f Q1JUQ19NQVNURVJfRU5fTUFTSzsKIAkJCWlmIChjcnRjX2VuYWJsZWQpIHsKLQkJCQlXUkVHMzIo RVZFUkdSRUVOX0NSVENfVVBEQVRFX0xPQ0sgKyBjcnRjX29mZnNldHNbaV0sIDEpOwotCQkJCXRt cCA9IFJSRUczMihFVkVSR1JFRU5fQ1JUQ19DT05UUk9MICsgY3J0Y19vZmZzZXRzW2ldKTsKLQkJ CQl0bXAgJj0gfkVWRVJHUkVFTl9DUlRDX01BU1RFUl9FTjsKLQkJCQlXUkVHMzIoRVZFUkdSRUVO X0NSVENfQ09OVFJPTCArIGNydGNfb2Zmc2V0c1tpXSwgdG1wKTsKLQkJCQlXUkVHMzIoRVZFUkdS RUVOX0NSVENfVVBEQVRFX0xPQ0sgKyBjcnRjX29mZnNldHNbaV0sIDApOworCQkJCVdSRUczMiht bUNSVENfVVBEQVRFX0xPQ0sgKyBjcnRjX29mZnNldHNbaV0sIDEpOworCQkJCXRtcCA9IFJSRUcz MihtbUNSVENfQ09OVFJPTCArIGNydGNfb2Zmc2V0c1tpXSk7CisJCQkJdG1wICY9IH5DUlRDX0NP TlRST0xfX0NSVENfTUFTVEVSX0VOX01BU0s7CisJCQkJV1JFRzMyKG1tQ1JUQ19DT05UUk9MICsg Y3J0Y19vZmZzZXRzW2ldLCB0bXApOworCQkJCVdSRUczMihtbUNSVENfVVBEQVRFX0xPQ0sgKyBj cnRjX29mZnNldHNbaV0sIDApOwogCQkJfQogCQl9CiAJfQpAQCAtNTY5LDE5ICs1ODAsMjMgQEAg c3RhdGljIHZvaWQgZGNlX3Y2XzBfcHJvZ3JhbV9mbXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyKQogCWNhc2UgNjoKIAkJaWYgKGRpdGhlciA9PSBBTURHUFVfRk1UX0RJVEhFUl9FTkFCTEUp CiAJCQkvKiBYWFggc29ydCBvdXQgb3B0aW1hbCBkaXRoZXIgc2V0dGluZ3MgKi8KLQkJCXRtcCB8 PSAoRk1UX0ZSQU1FX1JBTkRPTV9FTkFCTEUgfCBGTVRfSElHSFBBU1NfUkFORE9NX0VOQUJMRSB8 Ci0JCQkJRk1UX1NQQVRJQUxfRElUSEVSX0VOKTsKKwkJCXRtcCB8PSAoRk1UX0JJVF9ERVBUSF9D T05UUk9MX19GTVRfRlJBTUVfUkFORE9NX0VOQUJMRV9NQVNLIHwKKwkJCQlGTVRfQklUX0RFUFRI X0NPTlRST0xfX0ZNVF9ISUdIUEFTU19SQU5ET01fRU5BQkxFX01BU0sgfAorCQkJCUZNVF9CSVRf REVQVEhfQ09OVFJPTF9fRk1UX1NQQVRJQUxfRElUSEVSX0VOX01BU0spOwogCQllbHNlCi0JCQl0 bXAgfD0gRk1UX1RSVU5DQVRFX0VOOworCQkJdG1wIHw9IEZNVF9CSVRfREVQVEhfQ09OVFJPTF9f Rk1UX1RSVU5DQVRFX0VOX01BU0s7CiAJCWJyZWFrOwogCWNhc2UgODoKIAkJaWYgKGRpdGhlciA9 PSBBTURHUFVfRk1UX0RJVEhFUl9FTkFCTEUpCiAJCQkvKiBYWFggc29ydCBvdXQgb3B0aW1hbCBk aXRoZXIgc2V0dGluZ3MgKi8KLQkJCXRtcCB8PSAoRk1UX0ZSQU1FX1JBTkRPTV9FTkFCTEUgfCBG TVRfSElHSFBBU1NfUkFORE9NX0VOQUJMRSB8Ci0JCQkJRk1UX1JHQl9SQU5ET01fRU5BQkxFIHwK LQkJCQlGTVRfU1BBVElBTF9ESVRIRVJfRU4gfCBGTVRfU1BBVElBTF9ESVRIRVJfREVQVEgpOwor CQkJdG1wIHw9IChGTVRfQklUX0RFUFRIX0NPTlRST0xfX0ZNVF9GUkFNRV9SQU5ET01fRU5BQkxF X01BU0sgfAorCQkJCUZNVF9CSVRfREVQVEhfQ09OVFJPTF9fRk1UX0hJR0hQQVNTX1JBTkRPTV9F TkFCTEVfTUFTSyB8CisJCQkJRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfUkdCX1JBTkRPTV9F TkFCTEVfTUFTSyB8CisJCQkJRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRI RVJfRU5fTUFTSyB8CisJCQkJRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfU1BBVElBTF9ESVRI RVJfREVQVEhfTUFTSyk7CiAJCWVsc2UKLQkJCXRtcCB8PSAoRk1UX1RSVU5DQVRFX0VOIHwgRk1U X1RSVU5DQVRFX0RFUFRIKTsKKwkJCXRtcCB8PSAoRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRf VFJVTkNBVEVfRU5fTUFTSyB8CisJCQkJRk1UX0JJVF9ERVBUSF9DT05UUk9MX19GTVRfVFJVTkNB VEVfREVQVEhfTUFTSyk7CiAJCWJyZWFrOwogCWNhc2UgMTA6CiAJZGVmYXVsdDoKQEAgLTU4OSw3 ICs2MDQsNyBAQCBzdGF0aWMgdm9pZCBkY2VfdjZfMF9wcm9ncmFtX2ZtdChzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIpCiAJCWJyZWFrOwogCX0KIAotCVdSRUczMihGTVRfQklUX0RFUFRIX0NP TlRST0wgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsIHRtcCk7CisJV1JFRzMyKG1tRk1UX0JJ VF9ERVBUSF9DT05UUk9MICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LCB0bXApOwogfQogCiAv KioKQEAgLTYwMyw3ICs2MTgsNyBAQCBzdGF0aWMgdm9pZCBkY2VfdjZfMF9wcm9ncmFtX2ZtdChz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAgKi8KIHN0YXRpYyB1MzIgc2lfZ2V0X251bWJl cl9vZl9kcmFtX2NoYW5uZWxzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogewotCXUzMiB0 bXAgPSBSUkVHMzIoTUNfU0hBUkVEX0NITUFQKTsKKwl1MzIgdG1wID0gUlJFRzMyKG1tTUNfU0hB UkVEX0NITUFQKTsKIAogCXN3aXRjaCAoKHRtcCAmIE1DX1NIQVJFRF9DSE1BUF9fTk9PRkNIQU5f TUFTSykgPj4gTUNfU0hBUkVEX0NITUFQX19OT09GQ0hBTl9fU0hJRlQpIHsKIAljYXNlIDA6CkBA IC0xMTAwLDI4ICsxMTE1LDI4IEBAIHN0YXRpYyB2b2lkIGRjZV92Nl8wX3Byb2dyYW1fd2F0ZXJt YXJrcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAl9CiAKIAkvKiBzZWxlY3Qgd20gQSAq LwotCWFyYl9jb250cm9sMyA9IFJSRUczMihEUEdfUElQRV9BUkJJVFJBVElPTl9DT05UUk9MMyAr IGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCk7CisJYXJiX2NvbnRyb2wzID0gUlJFRzMyKG1tRFBH X1BJUEVfQVJCSVRSQVRJT05fQ09OVFJPTDMgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQpOwog CXRtcCA9IGFyYl9jb250cm9sMzsKIAl0bXAgJj0gfkxBVEVOQ1lfV0FURVJNQVJLX01BU0soMyk7 CiAJdG1wIHw9IExBVEVOQ1lfV0FURVJNQVJLX01BU0soMSk7Ci0JV1JFRzMyKERQR19QSVBFX0FS QklUUkFUSU9OX0NPTlRST0wzICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LCB0bXApOwotCVdS RUczMihEUEdfUElQRV9MQVRFTkNZX0NPTlRST0wgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQs Ci0JICAgICAgIChMQVRFTkNZX0xPV19XQVRFUk1BUksobGF0ZW5jeV93YXRlcm1hcmtfYSkgfAot CQlMQVRFTkNZX0hJR0hfV0FURVJNQVJLKGxpbmVfdGltZSkpKTsKKwlXUkVHMzIobW1EUEdfUElQ RV9BUkJJVFJBVElPTl9DT05UUk9MMyArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwgdG1wKTsK KwlXUkVHMzIobW1EUEdfUElQRV9VUkdFTkNZX0NPTlRST0wgKyBhbWRncHVfY3J0Yy0+Y3J0Y19v ZmZzZXQsCisJICAgICAgICgobGF0ZW5jeV93YXRlcm1hcmtfYSA8PCBEUEdfUElQRV9VUkdFTkNZ X0NPTlRST0xfX1VSR0VOQ1lfTE9XX1dBVEVSTUFSS19fU0hJRlQpICB8CisJCShsaW5lX3RpbWUg PDwgRFBHX1BJUEVfVVJHRU5DWV9DT05UUk9MX19VUkdFTkNZX0hJR0hfV0FURVJNQVJLX19TSElG VCkpKTsKIAkvKiBzZWxlY3Qgd20gQiAqLwotCXRtcCA9IFJSRUczMihEUEdfUElQRV9BUkJJVFJB VElPTl9DT05UUk9MMyArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCk7CisJdG1wID0gUlJFRzMy KG1tRFBHX1BJUEVfQVJCSVRSQVRJT05fQ09OVFJPTDMgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZz ZXQpOwogCXRtcCAmPSB+TEFURU5DWV9XQVRFUk1BUktfTUFTSygzKTsKIAl0bXAgfD0gTEFURU5D WV9XQVRFUk1BUktfTUFTSygyKTsKLQlXUkVHMzIoRFBHX1BJUEVfQVJCSVRSQVRJT05fQ09OVFJP TDMgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsIHRtcCk7Ci0JV1JFRzMyKERQR19QSVBFX0xB VEVOQ1lfQ09OVFJPTCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwKLQkgICAgICAgKExBVEVO Q1lfTE9XX1dBVEVSTUFSSyhsYXRlbmN5X3dhdGVybWFya19iKSB8Ci0JCUxBVEVOQ1lfSElHSF9X QVRFUk1BUksobGluZV90aW1lKSkpOworCVdSRUczMihtbURQR19QSVBFX0FSQklUUkFUSU9OX0NP TlRST0wzICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LCB0bXApOworCVdSRUczMihtbURQR19Q SVBFX1VSR0VOQ1lfQ09OVFJPTCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwKKwkgICAgICAg KChsYXRlbmN5X3dhdGVybWFya19iIDw8IERQR19QSVBFX1VSR0VOQ1lfQ09OVFJPTF9fVVJHRU5D WV9MT1dfV0FURVJNQVJLX19TSElGVCkgfAorCQkobGluZV90aW1lIDw8IERQR19QSVBFX1VSR0VO Q1lfQ09OVFJPTF9fVVJHRU5DWV9ISUdIX1dBVEVSTUFSS19fU0hJRlQpKSk7CiAJLyogcmVzdG9y ZSBvcmlnaW5hbCBzZWxlY3Rpb24gKi8KLQlXUkVHMzIoRFBHX1BJUEVfQVJCSVRSQVRJT05fQ09O VFJPTDMgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsIGFyYl9jb250cm9sMyk7CisJV1JFRzMy KG1tRFBHX1BJUEVfQVJCSVRSQVRJT05fQ09OVFJPTDMgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZz ZXQsIGFyYl9jb250cm9sMyk7CiAKIAkvKiB3cml0ZSB0aGUgcHJpb3JpdHkgbWFya3MgKi8KLQlX UkVHMzIoUFJJT1JJVFlfQV9DTlQgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsIHByaW9yaXR5 X2FfY250KTsKLQlXUkVHMzIoUFJJT1JJVFlfQl9DTlQgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZz ZXQsIHByaW9yaXR5X2JfY250KTsKKwlXUkVHMzIobW1QUklPUklUWV9BX0NOVCArIGFtZGdwdV9j cnRjLT5jcnRjX29mZnNldCwgcHJpb3JpdHlfYV9jbnQpOworCVdSRUczMihtbVBSSU9SSVRZX0Jf Q05UICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LCBwcmlvcml0eV9iX2NudCk7CiAKIAkvKiBz YXZlIHZhbHVlcyBmb3IgRFBNICovCiAJYW1kZ3B1X2NydGMtPmxpbmVfdGltZSA9IGxpbmVfdGlt ZTsKQEAgLTExMzksNyArMTE1NCw3IEBAIHN0YXRpYyB1MzIgZGNlX3Y2XzBfbGluZV9idWZmZXJf YWRqdXN0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCS8qCiAJICogTGluZSBCdWZmZXIg U2V0dXAKIAkgKiBUaGVyZSBhcmUgMyBsaW5lIGJ1ZmZlcnMsIGVhY2ggb25lIHNoYXJlZCBieSAy IGRpc3BsYXkgY29udHJvbGxlcnMuCi0JICogRENfTEJfTUVNT1JZX1NQTElUIGNvbnRyb2xzIGhv dyB0aGF0IGxpbmUgYnVmZmVyIGlzIHNoYXJlZCBiZXR3ZWVuCisJICogbW1EQ19MQl9NRU1PUllf U1BMSVQgY29udHJvbHMgaG93IHRoYXQgbGluZSBidWZmZXIgaXMgc2hhcmVkIGJldHdlZW4KIAkg KiB0aGUgZGlzcGxheSBjb250cm9sbGVycy4gIFRoZSBwYXJpdGlvbmluZyBpcyBkb25lIHZpYSBv bmUgb2YgZm91cgogCSAqIHByZXNldCBhbGxvY2F0aW9ucyBzcGVjaWZpZWQgaW4gYml0cyAyMToy MDoKIAkgKiAgMCAtIGhhbGYgbGIKQEAgLTExNjIsMTQgKzExNzcsMTQgQEAgc3RhdGljIHUzMiBk Y2VfdjZfMF9saW5lX2J1ZmZlcl9hZGp1c3Qoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJ CWJ1ZmZlcl9hbGxvYyA9IDA7CiAJfQogCi0JV1JFRzMyKERDX0xCX01FTU9SWV9TUExJVCArIGFt ZGdwdV9jcnRjLT5jcnRjX29mZnNldCwKKwlXUkVHMzIobW1EQ19MQl9NRU1PUllfU1BMSVQgKyBh bWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsCiAJICAgICAgIERDX0xCX01FTU9SWV9DT05GSUcodG1w KSk7CiAKLQlXUkVHMzIoUElQRTBfRE1JRl9CVUZGRVJfQ09OVFJPTCArIHBpcGVfb2Zmc2V0LAot CSAgICAgICBETUlGX0JVRkZFUlNfQUxMT0NBVEVEKGJ1ZmZlcl9hbGxvYykpOworCVdSRUczMiht bVBJUEUwX0RNSUZfQlVGRkVSX0NPTlRST0wgKyBwaXBlX29mZnNldCwKKwkgICAgICAgKGJ1ZmZl cl9hbGxvYyA8PCBQSVBFMF9ETUlGX0JVRkZFUl9DT05UUk9MX19ETUlGX0JVRkZFUlNfQUxMT0NB VEVEX19TSElGVCkpOwogCWZvciAoaSA9IDA7IGkgPCBhZGV2LT51c2VjX3RpbWVvdXQ7IGkrKykg ewotCQlpZiAoUlJFRzMyKFBJUEUwX0RNSUZfQlVGRkVSX0NPTlRST0wgKyBwaXBlX29mZnNldCkg JgotCQkgICAgRE1JRl9CVUZGRVJTX0FMTE9DQVRFRF9DT01QTEVURUQpCisJCWlmIChSUkVHMzIo bW1QSVBFMF9ETUlGX0JVRkZFUl9DT05UUk9MICsgcGlwZV9vZmZzZXQpICYKKwkJICAgIFBJUEUw X0RNSUZfQlVGRkVSX0NPTlRST0xfX0RNSUZfQlVGRkVSU19BTExPQ0FUSU9OX0NPTVBMRVRFRF9N QVNLKQogCQkJYnJlYWs7CiAJCXVkZWxheSgxKTsKIAl9CkBAIC0xNDExLDEyICsxNDI2LDEyIEBA IHN0YXRpYyB2b2lkIGRjZV92Nl8wX2FmbXRfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKIAogc3RhdGljIGNvbnN0IHUzMiB2Z2FfY29udHJvbF9yZWdzWzZdID0KIHsKLQlBVklWT19E MVZHQV9DT05UUk9MLAotCUFWSVZPX0QyVkdBX0NPTlRST0wsCi0JRVZFUkdSRUVOX0QzVkdBX0NP TlRST0wsCi0JRVZFUkdSRUVOX0Q0VkdBX0NPTlRST0wsCi0JRVZFUkdSRUVOX0Q1VkdBX0NPTlRS T0wsCi0JRVZFUkdSRUVOX0Q2VkdBX0NPTlRST0wsCisJbW1EMVZHQV9DT05UUk9MLAorCW1tRDJW R0FfQ09OVFJPTCwKKwltbUQzVkdBX0NPTlRST0wsCisJbW1ENFZHQV9DT05UUk9MLAorCW1tRDVW R0FfQ09OVFJPTCwKKwltbUQ2VkdBX0NPTlRST0wsCiB9OwogCiBzdGF0aWMgdm9pZCBkY2VfdjZf MF92Z2FfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbCBlbmFibGUpCkBAIC0xNDM2 LDcgKzE0NTEsNyBAQCBzdGF0aWMgdm9pZCBkY2VfdjZfMF9ncnBoX2VuYWJsZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMsIGJvb2wgZW5hYmxlKQogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRj LT5kZXY7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZXYtPmRldl9wcml2YXRlOwog Ci0JV1JFRzMyKEVWRVJHUkVFTl9HUlBIX0VOQUJMRSArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNl dCwgZW5hYmxlID8gMSA6IDApOworCVdSRUczMihtbUdSUEhfRU5BQkxFICsgYW1kZ3B1X2NydGMt PmNydGNfb2Zmc2V0LCBlbmFibGUgPyAxIDogMCk7CiB9CiAKIHN0YXRpYyBpbnQgZGNlX3Y2XzBf Y3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCkBAIC0xNDUyLDcgKzE0Njcs NyBAQCBzdGF0aWMgaW50IGRjZV92Nl8wX2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRj ICpjcnRjLAogCXN0cnVjdCBhbWRncHVfYm8gKmFibzsKIAl1aW50NjRfdCBmYl9sb2NhdGlvbiwg dGlsaW5nX2ZsYWdzOwogCXVpbnQzMl90IGZiX2Zvcm1hdCwgZmJfcGl0Y2hfcGl4ZWxzLCBwaXBl X2NvbmZpZzsKLQl1MzIgZmJfc3dhcCA9IEVWRVJHUkVFTl9HUlBIX0VORElBTl9TV0FQKEVWRVJH UkVFTl9HUlBIX0VORElBTl9OT05FKTsKKwl1MzIgZmJfc3dhcCA9IEdSUEhfRU5ESUFOX1NXQVAo R1JQSF9FTkRJQU5fTk9ORSk7CiAJdTMyIHZpZXdwb3J0X3csIHZpZXdwb3J0X2g7CiAJaW50IHI7 CiAJYm9vbCBieXBhc3NfbHV0ID0gZmFsc2U7CkBAIC0xNDk1LDY0ICsxNTEwLDY0IEBAIHN0YXRp YyBpbnQgZGNlX3Y2XzBfY3J0Y19kb19zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAK IAlzd2l0Y2ggKHRhcmdldF9mYi0+cGl4ZWxfZm9ybWF0KSB7CiAJY2FzZSBEUk1fRk9STUFUX0M4 OgotCQlmYl9mb3JtYXQgPSAoRVZFUkdSRUVOX0dSUEhfREVQVEgoRVZFUkdSRUVOX0dSUEhfREVQ VEhfOEJQUCkgfAotCQkJICAgICBFVkVSR1JFRU5fR1JQSF9GT1JNQVQoRVZFUkdSRUVOX0dSUEhf Rk9STUFUX0lOREVYRUQpKTsKKwkJZmJfZm9ybWF0ID0gKEdSUEhfREVQVEgoR1JQSF9ERVBUSF84 QlBQKSB8CisJCQkgICAgIEdSUEhfRk9STUFUKEdSUEhfRk9STUFUX0lOREVYRUQpKTsKIAkJYnJl YWs7CiAJY2FzZSBEUk1fRk9STUFUX1hSR0I0NDQ0OgogCWNhc2UgRFJNX0ZPUk1BVF9BUkdCNDQ0 NDoKLQkJZmJfZm9ybWF0ID0gKEVWRVJHUkVFTl9HUlBIX0RFUFRIKEVWRVJHUkVFTl9HUlBIX0RF UFRIXzE2QlBQKSB8Ci0JCQkgICAgIEVWRVJHUkVFTl9HUlBIX0ZPUk1BVChFVkVSR1JFRU5fR1JQ SF9GT1JNQVRfQVJHQjQ0NDQpKTsKKwkJZmJfZm9ybWF0ID0gKEdSUEhfREVQVEgoR1JQSF9ERVBU SF8xNkJQUCkgfAorCQkJICAgICBHUlBIX0ZPUk1BVChHUlBIX0ZPUk1BVF9BUkdCNDQ0NCkpOwog I2lmZGVmIF9fQklHX0VORElBTgotCQlmYl9zd2FwID0gRVZFUkdSRUVOX0dSUEhfRU5ESUFOX1NX QVAoRVZFUkdSRUVOX0dSUEhfRU5ESUFOXzhJTjE2KTsKKwkJZmJfc3dhcCA9IEdSUEhfRU5ESUFO X1NXQVAoR1JQSF9FTkRJQU5fOElOMTYpOwogI2VuZGlmCiAJCWJyZWFrOwogCWNhc2UgRFJNX0ZP Uk1BVF9YUkdCMTU1NToKIAljYXNlIERSTV9GT1JNQVRfQVJHQjE1NTU6Ci0JCWZiX2Zvcm1hdCA9 IChFVkVSR1JFRU5fR1JQSF9ERVBUSChFVkVSR1JFRU5fR1JQSF9ERVBUSF8xNkJQUCkgfAotCQkJ ICAgICBFVkVSR1JFRU5fR1JQSF9GT1JNQVQoRVZFUkdSRUVOX0dSUEhfRk9STUFUX0FSR0IxNTU1 KSk7CisJCWZiX2Zvcm1hdCA9IChHUlBIX0RFUFRIKEdSUEhfREVQVEhfMTZCUFApIHwKKwkJCSAg ICAgR1JQSF9GT1JNQVQoR1JQSF9GT1JNQVRfQVJHQjE1NTUpKTsKICNpZmRlZiBfX0JJR19FTkRJ QU4KLQkJZmJfc3dhcCA9IEVWRVJHUkVFTl9HUlBIX0VORElBTl9TV0FQKEVWRVJHUkVFTl9HUlBI X0VORElBTl84SU4xNik7CisJCWZiX3N3YXAgPSBHUlBIX0VORElBTl9TV0FQKEdSUEhfRU5ESUFO XzhJTjE2KTsKICNlbmRpZgogCQlicmVhazsKIAljYXNlIERSTV9GT1JNQVRfQkdSWDU1NTE6CiAJ Y2FzZSBEUk1fRk9STUFUX0JHUkE1NTUxOgotCQlmYl9mb3JtYXQgPSAoRVZFUkdSRUVOX0dSUEhf REVQVEgoRVZFUkdSRUVOX0dSUEhfREVQVEhfMTZCUFApIHwKLQkJCSAgICAgRVZFUkdSRUVOX0dS UEhfRk9STUFUKEVWRVJHUkVFTl9HUlBIX0ZPUk1BVF9CR1JBNTU1MSkpOworCQlmYl9mb3JtYXQg PSAoR1JQSF9ERVBUSChHUlBIX0RFUFRIXzE2QlBQKSB8CisJCQkgICAgIEdSUEhfRk9STUFUKEdS UEhfRk9STUFUX0JHUkE1NTUxKSk7CiAjaWZkZWYgX19CSUdfRU5ESUFOCi0JCWZiX3N3YXAgPSBF VkVSR1JFRU5fR1JQSF9FTkRJQU5fU1dBUChFVkVSR1JFRU5fR1JQSF9FTkRJQU5fOElOMTYpOwor CQlmYl9zd2FwID0gR1JQSF9FTkRJQU5fU1dBUChHUlBIX0VORElBTl84SU4xNik7CiAjZW5kaWYK IAkJYnJlYWs7CiAJY2FzZSBEUk1fRk9STUFUX1JHQjU2NToKLQkJZmJfZm9ybWF0ID0gKEVWRVJH UkVFTl9HUlBIX0RFUFRIKEVWRVJHUkVFTl9HUlBIX0RFUFRIXzE2QlBQKSB8Ci0JCQkgICAgIEVW RVJHUkVFTl9HUlBIX0ZPUk1BVChFVkVSR1JFRU5fR1JQSF9GT1JNQVRfQVJHQjU2NSkpOworCQlm Yl9mb3JtYXQgPSAoR1JQSF9ERVBUSChHUlBIX0RFUFRIXzE2QlBQKSB8CisJCQkgICAgIEdSUEhf Rk9STUFUKEdSUEhfRk9STUFUX0FSR0I1NjUpKTsKICNpZmRlZiBfX0JJR19FTkRJQU4KLQkJZmJf c3dhcCA9IEVWRVJHUkVFTl9HUlBIX0VORElBTl9TV0FQKEVWRVJHUkVFTl9HUlBIX0VORElBTl84 SU4xNik7CisJCWZiX3N3YXAgPSBHUlBIX0VORElBTl9TV0FQKEdSUEhfRU5ESUFOXzhJTjE2KTsK ICNlbmRpZgogCQlicmVhazsKIAljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6CiAJY2FzZSBEUk1f Rk9STUFUX0FSR0I4ODg4OgotCQlmYl9mb3JtYXQgPSAoRVZFUkdSRUVOX0dSUEhfREVQVEgoRVZF UkdSRUVOX0dSUEhfREVQVEhfMzJCUFApIHwKLQkJCSAgICAgRVZFUkdSRUVOX0dSUEhfRk9STUFU KEVWRVJHUkVFTl9HUlBIX0ZPUk1BVF9BUkdCODg4OCkpOworCQlmYl9mb3JtYXQgPSAoR1JQSF9E RVBUSChHUlBIX0RFUFRIXzMyQlBQKSB8CisJCQkgICAgIEdSUEhfRk9STUFUKEdSUEhfRk9STUFU X0FSR0I4ODg4KSk7CiAjaWZkZWYgX19CSUdfRU5ESUFOCi0JCWZiX3N3YXAgPSBFVkVSR1JFRU5f R1JQSF9FTkRJQU5fU1dBUChFVkVSR1JFRU5fR1JQSF9FTkRJQU5fOElOMzIpOworCQlmYl9zd2Fw ID0gR1JQSF9FTkRJQU5fU1dBUChHUlBIX0VORElBTl84SU4zMik7CiAjZW5kaWYKIAkJYnJlYWs7 CiAJY2FzZSBEUk1fRk9STUFUX1hSR0IyMTAxMDEwOgogCWNhc2UgRFJNX0ZPUk1BVF9BUkdCMjEw MTAxMDoKLQkJZmJfZm9ybWF0ID0gKEVWRVJHUkVFTl9HUlBIX0RFUFRIKEVWRVJHUkVFTl9HUlBI X0RFUFRIXzMyQlBQKSB8Ci0JCQkgICAgIEVWRVJHUkVFTl9HUlBIX0ZPUk1BVChFVkVSR1JFRU5f R1JQSF9GT1JNQVRfQVJHQjIxMDEwMTApKTsKKwkJZmJfZm9ybWF0ID0gKEdSUEhfREVQVEgoR1JQ SF9ERVBUSF8zMkJQUCkgfAorCQkJICAgICBHUlBIX0ZPUk1BVChHUlBIX0ZPUk1BVF9BUkdCMjEw MTAxMCkpOwogI2lmZGVmIF9fQklHX0VORElBTgotCQlmYl9zd2FwID0gRVZFUkdSRUVOX0dSUEhf RU5ESUFOX1NXQVAoRVZFUkdSRUVOX0dSUEhfRU5ESUFOXzhJTjMyKTsKKwkJZmJfc3dhcCA9IEdS UEhfRU5ESUFOX1NXQVAoR1JQSF9FTkRJQU5fOElOMzIpOwogI2VuZGlmCiAJCS8qIEdyZWF0ZXIg OCBicGMgZmIgbmVlZHMgdG8gYnlwYXNzIGh3LWx1dCB0byByZXRhaW4gcHJlY2lzaW9uICovCiAJ CWJ5cGFzc19sdXQgPSB0cnVlOwogCQlicmVhazsKIAljYXNlIERSTV9GT1JNQVRfQkdSWDEwMTAx MDI6CiAJY2FzZSBEUk1fRk9STUFUX0JHUkExMDEwMTAyOgotCQlmYl9mb3JtYXQgPSAoRVZFUkdS RUVOX0dSUEhfREVQVEgoRVZFUkdSRUVOX0dSUEhfREVQVEhfMzJCUFApIHwKLQkJCSAgICAgRVZF UkdSRUVOX0dSUEhfRk9STUFUKEVWRVJHUkVFTl9HUlBIX0ZPUk1BVF9CR1JBMTAxMDEwMikpOwor CQlmYl9mb3JtYXQgPSAoR1JQSF9ERVBUSChHUlBIX0RFUFRIXzMyQlBQKSB8CisJCQkgICAgIEdS UEhfRk9STUFUKEdSUEhfRk9STUFUX0JHUkExMDEwMTAyKSk7CiAjaWZkZWYgX19CSUdfRU5ESUFO Ci0JCWZiX3N3YXAgPSBFVkVSR1JFRU5fR1JQSF9FTkRJQU5fU1dBUChFVkVSR1JFRU5fR1JQSF9F TkRJQU5fOElOMzIpOworCQlmYl9zd2FwID0gR1JQSF9FTkRJQU5fU1dBUChHUlBIX0VORElBTl84 SU4zMik7CiAjZW5kaWYKIAkJLyogR3JlYXRlciA4IGJwYyBmYiBuZWVkcyB0byBieXBhc3MgaHct bHV0IHRvIHJldGFpbiBwcmVjaXNpb24gKi8KIAkJYnlwYXNzX2x1dCA9IHRydWU7CkBAIC0xNTcy LDc1ICsxNTg3LDc1IEBAIHN0YXRpYyBpbnQgZGNlX3Y2XzBfY3J0Y19kb19zZXRfYmFzZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAJCXRpbGVfc3BsaXQgPSBBTURHUFVfVElMSU5HX0dFVCh0aWxp bmdfZmxhZ3MsIFRJTEVfU1BMSVQpOwogCQludW1fYmFua3MgPSBBTURHUFVfVElMSU5HX0dFVCh0 aWxpbmdfZmxhZ3MsIE5VTV9CQU5LUyk7CiAKLQkJZmJfZm9ybWF0IHw9IEVWRVJHUkVFTl9HUlBI X05VTV9CQU5LUyhudW1fYmFua3MpOwotCQlmYl9mb3JtYXQgfD0gRVZFUkdSRUVOX0dSUEhfQVJS QVlfTU9ERShFVkVSR1JFRU5fR1JQSF9BUlJBWV8yRF9USUxFRF9USElOMSk7Ci0JCWZiX2Zvcm1h dCB8PSBFVkVSR1JFRU5fR1JQSF9USUxFX1NQTElUKHRpbGVfc3BsaXQpOwotCQlmYl9mb3JtYXQg fD0gRVZFUkdSRUVOX0dSUEhfQkFOS19XSURUSChiYW5rdyk7Ci0JCWZiX2Zvcm1hdCB8PSBFVkVS R1JFRU5fR1JQSF9CQU5LX0hFSUdIVChiYW5raCk7Ci0JCWZiX2Zvcm1hdCB8PSBFVkVSR1JFRU5f R1JQSF9NQUNST19USUxFX0FTUEVDVChtdGFzcGVjdCk7CisJCWZiX2Zvcm1hdCB8PSBHUlBIX05V TV9CQU5LUyhudW1fYmFua3MpOworCQlmYl9mb3JtYXQgfD0gR1JQSF9BUlJBWV9NT0RFKEdSUEhf QVJSQVlfMkRfVElMRURfVEhJTjEpOworCQlmYl9mb3JtYXQgfD0gR1JQSF9USUxFX1NQTElUKHRp bGVfc3BsaXQpOworCQlmYl9mb3JtYXQgfD0gR1JQSF9CQU5LX1dJRFRIKGJhbmt3KTsKKwkJZmJf Zm9ybWF0IHw9IEdSUEhfQkFOS19IRUlHSFQoYmFua2gpOworCQlmYl9mb3JtYXQgfD0gR1JQSF9N QUNST19USUxFX0FTUEVDVChtdGFzcGVjdCk7CiAJfSBlbHNlIGlmIChBTURHUFVfVElMSU5HX0dF VCh0aWxpbmdfZmxhZ3MsIEFSUkFZX01PREUpID09IEFSUkFZXzFEX1RJTEVEX1RISU4xKSB7Ci0J CWZiX2Zvcm1hdCB8PSBFVkVSR1JFRU5fR1JQSF9BUlJBWV9NT0RFKEVWRVJHUkVFTl9HUlBIX0FS UkFZXzFEX1RJTEVEX1RISU4xKTsKKwkJZmJfZm9ybWF0IHw9IEdSUEhfQVJSQVlfTU9ERShHUlBI X0FSUkFZXzFEX1RJTEVEX1RISU4xKTsKIAl9CiAKIAlwaXBlX2NvbmZpZyA9IEFNREdQVV9USUxJ TkdfR0VUKHRpbGluZ19mbGFncywgUElQRV9DT05GSUcpOwotCWZiX2Zvcm1hdCB8PSBTSV9HUlBI X1BJUEVfQ09ORklHKHBpcGVfY29uZmlnKTsKKwlmYl9mb3JtYXQgfD0gR1JQSF9QSVBFX0NPTkZJ RyhwaXBlX2NvbmZpZyk7CiAKIAlkY2VfdjZfMF92Z2FfZW5hYmxlKGNydGMsIGZhbHNlKTsKIAog CS8qIE1ha2Ugc3VyZSBzdXJmYWNlIGFkZHJlc3MgaXMgdXBkYXRlZCBhdCB2ZXJ0aWNhbCBibGFu ayByYXRoZXIgdGhhbgogCSAqIGhvcml6b250YWwgYmxhbmsKIAkgKi8KLQlXUkVHMzIoRVZFUkdS RUVOX0dSUEhfRkxJUF9DT05UUk9MICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LCAwKTsKKwlX UkVHMzIobW1HUlBIX0ZMSVBfQ09OVFJPTCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwgMCk7 CiAKLQlXUkVHMzIoRVZFUkdSRUVOX0dSUEhfUFJJTUFSWV9TVVJGQUNFX0FERFJFU1NfSElHSCAr IGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwKKwlXUkVHMzIobW1HUlBIX1BSSU1BUllfU1VSRkFD RV9BRERSRVNTX0hJR0ggKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsCiAJICAgICAgIHVwcGVy XzMyX2JpdHMoZmJfbG9jYXRpb24pKTsKLQlXUkVHMzIoRVZFUkdSRUVOX0dSUEhfU0VDT05EQVJZ X1NVUkZBQ0VfQUREUkVTU19ISUdIICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LAorCVdSRUcz MihtbUdSUEhfU0VDT05EQVJZX1NVUkZBQ0VfQUREUkVTU19ISUdIICsgYW1kZ3B1X2NydGMtPmNy dGNfb2Zmc2V0LAogCSAgICAgICB1cHBlcl8zMl9iaXRzKGZiX2xvY2F0aW9uKSk7Ci0JV1JFRzMy KEVWRVJHUkVFTl9HUlBIX1BSSU1BUllfU1VSRkFDRV9BRERSRVNTICsgYW1kZ3B1X2NydGMtPmNy dGNfb2Zmc2V0LAotCSAgICAgICAodTMyKWZiX2xvY2F0aW9uICYgRVZFUkdSRUVOX0dSUEhfU1VS RkFDRV9BRERSRVNTX01BU0spOwotCVdSRUczMihFVkVSR1JFRU5fR1JQSF9TRUNPTkRBUllfU1VS RkFDRV9BRERSRVNTICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LAotCSAgICAgICAodTMyKSBm Yl9sb2NhdGlvbiAmIEVWRVJHUkVFTl9HUlBIX1NVUkZBQ0VfQUREUkVTU19NQVNLKTsKLQlXUkVH MzIoRVZFUkdSRUVOX0dSUEhfQ09OVFJPTCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwgZmJf Zm9ybWF0KTsKLQlXUkVHMzIoRVZFUkdSRUVOX0dSUEhfU1dBUF9DT05UUk9MICsgYW1kZ3B1X2Ny dGMtPmNydGNfb2Zmc2V0LCBmYl9zd2FwKTsKKwlXUkVHMzIobW1HUlBIX1BSSU1BUllfU1VSRkFD RV9BRERSRVNTICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LAorCSAgICAgICAodTMyKWZiX2xv Y2F0aW9uICYgR1JQSF9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19fR1JQSF9QUklNQVJZX1NVUkZB Q0VfQUREUkVTU19NQVNLKTsKKwlXUkVHMzIobW1HUlBIX1NFQ09OREFSWV9TVVJGQUNFX0FERFJF U1MgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsCisJICAgICAgICh1MzIpIGZiX2xvY2F0aW9u ICYgR1JQSF9QUklNQVJZX1NVUkZBQ0VfQUREUkVTU19fR1JQSF9QUklNQVJZX1NVUkZBQ0VfQURE UkVTU19NQVNLKTsKKwlXUkVHMzIobW1HUlBIX0NPTlRST0wgKyBhbWRncHVfY3J0Yy0+Y3J0Y19v ZmZzZXQsIGZiX2Zvcm1hdCk7CisJV1JFRzMyKG1tR1JQSF9TV0FQX0NOVEwgKyBhbWRncHVfY3J0 Yy0+Y3J0Y19vZmZzZXQsIGZiX3N3YXApOwogCiAJLyoKIAkgKiBUaGUgTFVUIG9ubHkgaGFzIDI1 NiBzbG90cyBmb3IgaW5kZXhpbmcgYnkgYSA4IGJwYyBmYi4gQnlwYXNzIHRoZSBMVVQKIAkgKiBm b3IgPiA4IGJwYyBzY2Fub3V0IHRvIGF2b2lkIHRydW5jYXRpb24gb2YgZmIgaW5kaWNlcyB0byA4 IG1zYidzLCB0bwogCSAqIHJldGFpbiB0aGUgZnVsbCBwcmVjaXNpb24gdGhyb3VnaG91dCB0aGUg cGlwZWxpbmUuCiAJICovCi0JV1JFRzMyX1AoRVZFUkdSRUVOX0dSUEhfTFVUXzEwQklUX0JZUEFT U19DT05UUk9MICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LAotCQkgKGJ5cGFzc19sdXQgPyBF VkVSR1JFRU5fTFVUXzEwQklUX0JZUEFTU19FTiA6IDApLAotCQkgfkVWRVJHUkVFTl9MVVRfMTBC SVRfQllQQVNTX0VOKTsKKwlXUkVHMzJfUChtbUdSUEhfTFVUXzEwQklUX0JZUEFTUyArIGFtZGdw dV9jcnRjLT5jcnRjX29mZnNldCwKKwkJIChieXBhc3NfbHV0ID8gR1JQSF9MVVRfMTBCSVRfQllQ QVNTX19HUlBIX0xVVF8xMEJJVF9CWVBBU1NfRU5fTUFTSyA6IDApLAorCQkgfkdSUEhfTFVUXzEw QklUX0JZUEFTU19fR1JQSF9MVVRfMTBCSVRfQllQQVNTX0VOX01BU0spOwogCiAJaWYgKGJ5cGFz c19sdXQpCiAJCURSTV9ERUJVR19LTVMoIkJ5cGFzc2luZyBoYXJkd2FyZSBMVVQgZHVlIHRvIDEw IGJpdCBmYiBzY2Fub3V0LlxuIik7CiAKLQlXUkVHMzIoRVZFUkdSRUVOX0dSUEhfU1VSRkFDRV9P RkZTRVRfWCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwgMCk7Ci0JV1JFRzMyKEVWRVJHUkVF Tl9HUlBIX1NVUkZBQ0VfT0ZGU0VUX1kgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsIDApOwot CVdSRUczMihFVkVSR1JFRU5fR1JQSF9YX1NUQVJUICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0 LCAwKTsKLQlXUkVHMzIoRVZFUkdSRUVOX0dSUEhfWV9TVEFSVCArIGFtZGdwdV9jcnRjLT5jcnRj X29mZnNldCwgMCk7Ci0JV1JFRzMyKEVWRVJHUkVFTl9HUlBIX1hfRU5EICsgYW1kZ3B1X2NydGMt PmNydGNfb2Zmc2V0LCB0YXJnZXRfZmItPndpZHRoKTsKLQlXUkVHMzIoRVZFUkdSRUVOX0dSUEhf WV9FTkQgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsIHRhcmdldF9mYi0+aGVpZ2h0KTsKKwlX UkVHMzIobW1HUlBIX1NVUkZBQ0VfT0ZGU0VUX1ggKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQs IDApOworCVdSRUczMihtbUdSUEhfU1VSRkFDRV9PRkZTRVRfWSArIGFtZGdwdV9jcnRjLT5jcnRj X29mZnNldCwgMCk7CisJV1JFRzMyKG1tR1JQSF9YX1NUQVJUICsgYW1kZ3B1X2NydGMtPmNydGNf b2Zmc2V0LCAwKTsKKwlXUkVHMzIobW1HUlBIX1lfU1RBUlQgKyBhbWRncHVfY3J0Yy0+Y3J0Y19v ZmZzZXQsIDApOworCVdSRUczMihtbUdSUEhfWF9FTkQgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZz ZXQsIHRhcmdldF9mYi0+d2lkdGgpOworCVdSRUczMihtbUdSUEhfWV9FTkQgKyBhbWRncHVfY3J0 Yy0+Y3J0Y19vZmZzZXQsIHRhcmdldF9mYi0+aGVpZ2h0KTsKIAogCWZiX3BpdGNoX3BpeGVscyA9 IHRhcmdldF9mYi0+cGl0Y2hlc1swXSAvICh0YXJnZXRfZmItPmJpdHNfcGVyX3BpeGVsIC8gOCk7 Ci0JV1JFRzMyKEVWRVJHUkVFTl9HUlBIX1BJVENIICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0 LCBmYl9waXRjaF9waXhlbHMpOworCVdSRUczMihtbUdSUEhfUElUQ0ggKyBhbWRncHVfY3J0Yy0+ Y3J0Y19vZmZzZXQsIGZiX3BpdGNoX3BpeGVscyk7CiAKIAlkY2VfdjZfMF9ncnBoX2VuYWJsZShj cnRjLCB0cnVlKTsKIAotCVdSRUczMihFVkVSR1JFRU5fREVTS1RPUF9IRUlHSFQgKyBhbWRncHVf Y3J0Yy0+Y3J0Y19vZmZzZXQsCisJV1JFRzMyKG1tREVTS1RPUF9IRUlHSFQgKyBhbWRncHVfY3J0 Yy0+Y3J0Y19vZmZzZXQsCiAJCSAgICAgICB0YXJnZXRfZmItPmhlaWdodCk7CiAJeCAmPSB+MzsK IAl5ICY9IH4xOwotCVdSRUczMihFVkVSR1JFRU5fVklFV1BPUlRfU1RBUlQgKyBhbWRncHVfY3J0 Yy0+Y3J0Y19vZmZzZXQsCisJV1JFRzMyKG1tVklFV1BPUlRfU1RBUlQgKyBhbWRncHVfY3J0Yy0+ Y3J0Y19vZmZzZXQsCiAJICAgICAgICh4IDw8IDE2KSB8IHkpOwogCXZpZXdwb3J0X3cgPSBjcnRj LT5tb2RlLmhkaXNwbGF5OwogCXZpZXdwb3J0X2ggPSAoY3J0Yy0+bW9kZS52ZGlzcGxheSArIDEp ICYgfjE7CiAKLQlXUkVHMzIoRVZFUkdSRUVOX1ZJRVdQT1JUX1NJWkUgKyBhbWRncHVfY3J0Yy0+ Y3J0Y19vZmZzZXQsCisJV1JFRzMyKG1tVklFV1BPUlRfU0laRSArIGFtZGdwdV9jcnRjLT5jcnRj X29mZnNldCwKIAkgICAgICAgKHZpZXdwb3J0X3cgPDwgMTYpIHwgdmlld3BvcnRfaCk7CiAKIAkv KiBzZXQgcGFnZWZsaXAgdG8gaGFwcGVuIG9ubHkgYXQgc3RhcnQgb2YgdmJsYW5rIGludGVydmFs IChmcm9udCBwb3JjaCkgKi8KLQlXUkVHMzIoRVZFUkdSRUVOX01BU1RFUl9VUERBVEVfTU9ERSAr IGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwgMyk7CisJV1JFRzMyKG1tTUFTVEVSX1VQREFURV9N T0RFICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LCAzKTsKIAogCWlmICghYXRvbWljICYmIGZi ICYmIGZiICE9IGNydGMtPnByaW1hcnktPmZiKSB7CiAJCWFtZGdwdV9mYiA9IHRvX2FtZGdwdV9m cmFtZWJ1ZmZlcihmYik7CkBAIC0xNjY3LDEwICsxNjgyLDEwIEBAIHN0YXRpYyB2b2lkIGRjZV92 Nl8wX3NldF9pbnRlcmxlYXZlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlzdHJ1Y3QgYW1kZ3B1 X2NydGMgKmFtZGdwdV9jcnRjID0gdG9fYW1kZ3B1X2NydGMoY3J0Yyk7CiAKIAlpZiAobW9kZS0+ ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKLQkJV1JFRzMyKEVWRVJHUkVFTl9EQVRB X0ZPUk1BVCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwKLQkJICAgICAgIEVWRVJHUkVFTl9J TlRFUkxFQVZFX0VOKTsKKwkJV1JFRzMyKG1tREFUQV9GT1JNQVQgKyBhbWRncHVfY3J0Yy0+Y3J0 Y19vZmZzZXQsCisJCSAgICAgICBJTlRFUkxFQVZFX0VOKTsKIAllbHNlCi0JCVdSRUczMihFVkVS R1JFRU5fREFUQV9GT1JNQVQgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsIDApOworCQlXUkVH MzIobW1EQVRBX0ZPUk1BVCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwgMCk7CiB9CiAKIHN0 YXRpYyB2b2lkIGRjZV92Nl8wX2NydGNfbG9hZF9sdXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQpA QCAtMTY4Myw1NCArMTY5OCw1MiBAQCBzdGF0aWMgdm9pZCBkY2VfdjZfMF9jcnRjX2xvYWRfbHV0 KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAogCURSTV9ERUJVR19LTVMoIiVkXG4iLCBhbWRncHVf Y3J0Yy0+Y3J0Y19pZCk7CiAKLQlXUkVHMzIoTklfSU5QVVRfQ1NDX0NPTlRST0wgKyBhbWRncHVf Y3J0Yy0+Y3J0Y19vZmZzZXQsCi0JICAgICAgIChOSV9JTlBVVF9DU0NfR1JQSF9NT0RFKE5JX0lO UFVUX0NTQ19CWVBBU1MpIHwKLQkJTklfSU5QVVRfQ1NDX09WTF9NT0RFKE5JX0lOUFVUX0NTQ19C WVBBU1MpKSk7Ci0JV1JFRzMyKE5JX1BSRVNDQUxFX0dSUEhfQ09OVFJPTCArIGFtZGdwdV9jcnRj LT5jcnRjX29mZnNldCwKLQkgICAgICAgTklfR1JQSF9QUkVTQ0FMRV9CWVBBU1MpOwotCVdSRUcz MihOSV9QUkVTQ0FMRV9PVkxfQ09OVFJPTCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwKLQkg ICAgICAgTklfT1ZMX1BSRVNDQUxFX0JZUEFTUyk7Ci0JV1JFRzMyKE5JX0lOUFVUX0dBTU1BX0NP TlRST0wgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsCi0JICAgICAgIChOSV9HUlBIX0lOUFVU X0dBTU1BX01PREUoTklfSU5QVVRfR0FNTUFfVVNFX0xVVCkgfAotCQlOSV9PVkxfSU5QVVRfR0FN TUFfTU9ERShOSV9JTlBVVF9HQU1NQV9VU0VfTFVUKSkpOwotCi0KKwlXUkVHMzIobW1JTlBVVF9D U0NfQ09OVFJPTCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwKKwkgICAgICAgKCgwIDw8IElO UFVUX0NTQ19DT05UUk9MX19JTlBVVF9DU0NfR1JQSF9NT0RFX19TSElGVCkgfAorCQkoMCA8PCBJ TlBVVF9DU0NfQ09OVFJPTF9fSU5QVVRfQ1NDX09WTF9NT0RFX19TSElGVCkpKTsKKwlXUkVHMzIo bW1QUkVTQ0FMRV9HUlBIX0NPTlRST0wgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsCisJICAg ICAgIFBSRVNDQUxFX0dSUEhfQ09OVFJPTF9fR1JQSF9QUkVTQ0FMRV9CWVBBU1NfTUFTSyk7CisJ V1JFRzMyKG1tUFJFU0NBTEVfT1ZMX0NPTlRST0wgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQs CisJICAgICAgIFBSRVNDQUxFX09WTF9DT05UUk9MX19PVkxfUFJFU0NBTEVfQllQQVNTX01BU0sp OworCVdSRUczMihtbUlOUFVUX0dBTU1BX0NPTlRST0wgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZz ZXQsCisJICAgICAgICgoMCA8PCBJTlBVVF9HQU1NQV9DT05UUk9MX19HUlBIX0lOUFVUX0dBTU1B X01PREVfX1NISUZUKSB8CisJCSgwIDw8IElOUFVUX0dBTU1BX0NPTlRST0xfX09WTF9JTlBVVF9H QU1NQV9NT0RFX19TSElGVCkpKTsKIAotCVdSRUczMihFVkVSR1JFRU5fRENfTFVUX0NPTlRST0wg KyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsIDApOworCVdSRUczMihtbURDX0xVVF9DT05UUk9M ICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LCAwKTsKIAotCVdSRUczMihFVkVSR1JFRU5fRENf TFVUX0JMQUNLX09GRlNFVF9CTFVFICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LCAwKTsKLQlX UkVHMzIoRVZFUkdSRUVOX0RDX0xVVF9CTEFDS19PRkZTRVRfR1JFRU4gKyBhbWRncHVfY3J0Yy0+ Y3J0Y19vZmZzZXQsIDApOwotCVdSRUczMihFVkVSR1JFRU5fRENfTFVUX0JMQUNLX09GRlNFVF9S RUQgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsIDApOworCVdSRUczMihtbURDX0xVVF9CTEFD S19PRkZTRVRfQkxVRSArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwgMCk7CisJV1JFRzMyKG1t RENfTFVUX0JMQUNLX09GRlNFVF9HUkVFTiArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwgMCk7 CisJV1JFRzMyKG1tRENfTFVUX0JMQUNLX09GRlNFVF9SRUQgKyBhbWRncHVfY3J0Yy0+Y3J0Y19v ZmZzZXQsIDApOwogCi0JV1JFRzMyKEVWRVJHUkVFTl9EQ19MVVRfV0hJVEVfT0ZGU0VUX0JMVUUg KyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsIDB4ZmZmZik7Ci0JV1JFRzMyKEVWRVJHUkVFTl9E Q19MVVRfV0hJVEVfT0ZGU0VUX0dSRUVOICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LCAweGZm ZmYpOwotCVdSRUczMihFVkVSR1JFRU5fRENfTFVUX1dISVRFX09GRlNFVF9SRUQgKyBhbWRncHVf Y3J0Yy0+Y3J0Y19vZmZzZXQsIDB4ZmZmZik7CisJV1JFRzMyKG1tRENfTFVUX1dISVRFX09GRlNF VF9CTFVFICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LCAweGZmZmYpOworCVdSRUczMihtbURD X0xVVF9XSElURV9PRkZTRVRfR1JFRU4gKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsIDB4ZmZm Zik7CisJV1JFRzMyKG1tRENfTFVUX1dISVRFX09GRlNFVF9SRUQgKyBhbWRncHVfY3J0Yy0+Y3J0 Y19vZmZzZXQsIDB4ZmZmZik7CiAKLQlXUkVHMzIoRVZFUkdSRUVOX0RDX0xVVF9SV19NT0RFICsg YW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LCAwKTsKLQlXUkVHMzIoRVZFUkdSRUVOX0RDX0xVVF9X UklURV9FTl9NQVNLICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LCAweDAwMDAwMDA3KTsKKwlX UkVHMzIobW1EQ19MVVRfUldfTU9ERSArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwgMCk7CisJ V1JFRzMyKG1tRENfTFVUX1dSSVRFX0VOX01BU0sgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQs IDB4MDAwMDAwMDcpOwogCi0JV1JFRzMyKEVWRVJHUkVFTl9EQ19MVVRfUldfSU5ERVggKyBhbWRn cHVfY3J0Yy0+Y3J0Y19vZmZzZXQsIDApOworCVdSRUczMihtbURDX0xVVF9SV19JTkRFWCArIGFt ZGdwdV9jcnRjLT5jcnRjX29mZnNldCwgMCk7CiAJZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7 Ci0JCVdSRUczMihFVkVSR1JFRU5fRENfTFVUXzMwX0NPTE9SICsgYW1kZ3B1X2NydGMtPmNydGNf b2Zmc2V0LAorCQlXUkVHMzIobW1EQ19MVVRfMzBfQ09MT1IgKyBhbWRncHVfY3J0Yy0+Y3J0Y19v ZmZzZXQsCiAJCSAgICAgICAoYW1kZ3B1X2NydGMtPmx1dF9yW2ldIDw8IDIwKSB8CiAJCSAgICAg ICAoYW1kZ3B1X2NydGMtPmx1dF9nW2ldIDw8IDEwKSB8CiAJCSAgICAgICAoYW1kZ3B1X2NydGMt Pmx1dF9iW2ldIDw8IDApKTsKIAl9CiAKLQlXUkVHMzIoTklfREVHQU1NQV9DT05UUk9MICsgYW1k Z3B1X2NydGMtPmNydGNfb2Zmc2V0LAotCSAgICAgICAoTklfR1JQSF9ERUdBTU1BX01PREUoTklf REVHQU1NQV9CWVBBU1MpIHwKLQkJTklfT1ZMX0RFR0FNTUFfTU9ERShOSV9ERUdBTU1BX0JZUEFT UykgfAotCQlOSV9JQ09OX0RFR0FNTUFfTU9ERShOSV9ERUdBTU1BX0JZUEFTUykgfAotCQlOSV9D VVJTT1JfREVHQU1NQV9NT0RFKE5JX0RFR0FNTUFfQllQQVNTKSkpOwotCVdSRUczMihOSV9HQU1V VF9SRU1BUF9DT05UUk9MICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LAotCSAgICAgICAoTklf R1JQSF9HQU1VVF9SRU1BUF9NT0RFKE5JX0dBTVVUX1JFTUFQX0JZUEFTUykgfAotCQlOSV9PVkxf R0FNVVRfUkVNQVBfTU9ERShOSV9HQU1VVF9SRU1BUF9CWVBBU1MpKSk7Ci0JV1JFRzMyKE5JX1JF R0FNTUFfQ09OVFJPTCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwKLQkgICAgICAgKE5JX0dS UEhfUkVHQU1NQV9NT0RFKE5JX1JFR0FNTUFfQllQQVNTKSB8Ci0JCU5JX09WTF9SRUdBTU1BX01P REUoTklfUkVHQU1NQV9CWVBBU1MpKSk7Ci0JV1JFRzMyKE5JX09VVFBVVF9DU0NfQ09OVFJPTCAr IGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwKLQkgICAgICAgKE5JX09VVFBVVF9DU0NfR1JQSF9N T0RFKDApIHwKLQkJTklfT1VUUFVUX0NTQ19PVkxfTU9ERShOSV9PVVRQVVRfQ1NDX0JZUEFTUykp KTsKKwlXUkVHMzIobW1ERUdBTU1BX0NPTlRST0wgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQs CisJICAgICAgICgoMCA8PCBERUdBTU1BX0NPTlRST0xfX0dSUEhfREVHQU1NQV9NT0RFX19TSElG VCkgfAorCQkoMCA8PCBERUdBTU1BX0NPTlRST0xfX09WTF9ERUdBTU1BX01PREVfX1NISUZUKSB8 CisJCUlDT05fREVHQU1NQV9NT0RFKDApIHwKKwkJKDAgPDwgREVHQU1NQV9DT05UUk9MX19DVVJT T1JfREVHQU1NQV9NT0RFX19TSElGVCkpKTsKKwlXUkVHMzIobW1HQU1VVF9SRU1BUF9DT05UUk9M ICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LAorCSAgICAgICAoKDAgPDwgR0FNVVRfUkVNQVBf Q09OVFJPTF9fR1JQSF9HQU1VVF9SRU1BUF9NT0RFX19TSElGVCkgfAorCQkoMCA8PCBHQU1VVF9S RU1BUF9DT05UUk9MX19PVkxfR0FNVVRfUkVNQVBfTU9ERV9fU0hJRlQpKSk7CisJV1JFRzMyKG1t UkVHQU1NQV9DT05UUk9MICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LAorCSAgICAgICAoKDAg PDwgUkVHQU1NQV9DT05UUk9MX19HUlBIX1JFR0FNTUFfTU9ERV9fU0hJRlQpIHwKKwkJKDAgPDwg UkVHQU1NQV9DT05UUk9MX19PVkxfUkVHQU1NQV9NT0RFX19TSElGVCkpKTsKKwlXUkVHMzIobW1P VVRQVVRfQ1NDX0NPTlRST0wgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsCisJICAgICAgICgo MCA8PCBPVVRQVVRfQ1NDX0NPTlRST0xfX09VVFBVVF9DU0NfR1JQSF9NT0RFX19TSElGVCkgfAor CQkoMCA8PCBPVVRQVVRfQ1NDX0NPTlRST0xfX09VVFBVVF9DU0NfT1ZMX01PREVfX1NISUZUKSkp OwogCS8qIFhYWCBtYXRjaCB0aGlzIHRvIHRoZSBkZXB0aCBvZiB0aGUgY3J0YyBmbXQgYmxvY2ss IG1vdmUgdG8gbW9kZXNldD8gKi8KIAlXUkVHMzIoMHgxYTUwICsgYW1kZ3B1X2NydGMtPmNydGNf b2Zmc2V0LCAwKTsKIApAQCAtMTgwOSwxMiArMTgyMiwxMiBAQCBzdGF0aWMgdm9pZCBkY2VfdjZf MF9sb2NrX2N1cnNvcihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGJvb2wgbG9jaykKIAlzdHJ1Y3Qg YW1kZ3B1X2NydGMgKmFtZGdwdV9jcnRjID0gdG9fYW1kZ3B1X2NydGMoY3J0Yyk7CiAJdWludDMy X3QgY3VyX2xvY2s7CiAKLQljdXJfbG9jayA9IFJSRUczMihFVkVSR1JFRU5fQ1VSX1VQREFURSAr IGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCk7CisJY3VyX2xvY2sgPSBSUkVHMzIobW1DVVJfVVBE QVRFICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0KTsKIAlpZiAobG9jaykKLQkJY3VyX2xvY2sg fD0gRVZFUkdSRUVOX0NVUlNPUl9VUERBVEVfTE9DSzsKKwkJY3VyX2xvY2sgfD0gQ1VSX1VQREFU RV9fQ1VSU09SX1VQREFURV9MT0NLX01BU0s7CiAJZWxzZQotCQljdXJfbG9jayAmPSB+RVZFUkdS RUVOX0NVUlNPUl9VUERBVEVfTE9DSzsKLQlXUkVHMzIoRVZFUkdSRUVOX0NVUl9VUERBVEUgKyBh bWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsIGN1cl9sb2NrKTsKKwkJY3VyX2xvY2sgJj0gfkNVUl9V UERBVEVfX0NVUlNPUl9VUERBVEVfTE9DS19NQVNLOworCVdSRUczMihtbUNVUl9VUERBVEUgKyBh bWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsIGN1cl9sb2NrKTsKIH0KIAogc3RhdGljIHZvaWQgZGNl X3Y2XzBfaGlkZV9jdXJzb3Ioc3RydWN0IGRybV9jcnRjICpjcnRjKQpAQCAtMTgyMiw5ICsxODM1 LDkgQEAgc3RhdGljIHZvaWQgZGNlX3Y2XzBfaGlkZV9jdXJzb3Ioc3RydWN0IGRybV9jcnRjICpj cnRjKQogCXN0cnVjdCBhbWRncHVfY3J0YyAqYW1kZ3B1X2NydGMgPSB0b19hbWRncHVfY3J0Yyhj cnRjKTsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGNydGMtPmRldi0+ZGV2X3ByaXZh dGU7CiAKLQlXUkVHMzJfSURYKEVWRVJHUkVFTl9DVVJfQ09OVFJPTCArIGFtZGdwdV9jcnRjLT5j cnRjX29mZnNldCwKLQkJICAgRVZFUkdSRUVOX0NVUlNPUl9NT0RFKEVWRVJHUkVFTl9DVVJTT1Jf MjRfOF9QUkVfTVVMVCkgfAotCQkgICBFVkVSR1JFRU5fQ1VSU09SX1VSR0VOVF9DT05UUk9MKEVW RVJHUkVFTl9DVVJTT1JfVVJHRU5UXzFfMikpOworCVdSRUczMl9JRFgobW1DVVJfQ09OVFJPTCAr IGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwKKwkJICAgKENVUlNPUl8yNF84X1BSRV9NVUxUIDw8 IENVUl9DT05UUk9MX19DVVJTT1JfTU9ERV9fU0hJRlQpIHwKKwkJICAgKENVUlNPUl9VUkdFTlRf MV8yIDw8IENVUl9DT05UUk9MX19DVVJTT1JfVVJHRU5UX0NPTlRST0xfX1NISUZUKSk7CiAKIAog fQpAQCAtMTgzNCwxNSArMTg0NywxNSBAQCBzdGF0aWMgdm9pZCBkY2VfdjZfMF9zaG93X2N1cnNv cihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJc3RydWN0IGFtZGdwdV9jcnRjICphbWRncHVfY3J0 YyA9IHRvX2FtZGdwdV9jcnRjKGNydGMpOwogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0g Y3J0Yy0+ZGV2LT5kZXZfcHJpdmF0ZTsKIAotCVdSRUczMihFVkVSR1JFRU5fQ1VSX1NVUkZBQ0Vf QUREUkVTU19ISUdIICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LAorCVdSRUczMihtbUNVUl9T VVJGQUNFX0FERFJFU1NfSElHSCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwKIAkgICAgICAg dXBwZXJfMzJfYml0cyhhbWRncHVfY3J0Yy0+Y3Vyc29yX2FkZHIpKTsKLQlXUkVHMzIoRVZFUkdS RUVOX0NVUl9TVVJGQUNFX0FERFJFU1MgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsCisJV1JF RzMyKG1tQ1VSX1NVUkZBQ0VfQUREUkVTUyArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwKIAkg ICAgICAgbG93ZXJfMzJfYml0cyhhbWRncHVfY3J0Yy0+Y3Vyc29yX2FkZHIpKTsKIAotCVdSRUcz Ml9JRFgoRVZFUkdSRUVOX0NVUl9DT05UUk9MICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LAot CQkgICBFVkVSR1JFRU5fQ1VSU09SX0VOIHwKLQkJICAgRVZFUkdSRUVOX0NVUlNPUl9NT0RFKEVW RVJHUkVFTl9DVVJTT1JfMjRfOF9QUkVfTVVMVCkgfAotCQkgICBFVkVSR1JFRU5fQ1VSU09SX1VS R0VOVF9DT05UUk9MKEVWRVJHUkVFTl9DVVJTT1JfVVJHRU5UXzFfMikpOworCVdSRUczMl9JRFgo bW1DVVJfQ09OVFJPTCArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwKKwkJICAgQ1VSX0NPTlRS T0xfX0NVUlNPUl9FTl9NQVNLIHwKKwkJICAgKENVUlNPUl8yNF84X1BSRV9NVUxUIDw8IENVUl9D T05UUk9MX19DVVJTT1JfTU9ERV9fU0hJRlQpIHwKKwkJICAgKENVUlNPUl9VUkdFTlRfMV8yIDw8 IENVUl9DT05UUk9MX19DVVJTT1JfVVJHRU5UX0NPTlRST0xfX1NISUZUKSk7CiAKIH0KIApAQCAt MTg2OSw5ICsxODgyLDkgQEAgc3RhdGljIGludCBkY2VfdjZfMF9jdXJzb3JfbW92ZV9sb2NrZWQo c3RydWN0IGRybV9jcnRjICpjcnRjLAogCQl5ID0gMDsKIAl9CiAKLQlXUkVHMzIoRVZFUkdSRUVO X0NVUl9QT1NJVElPTiArIGFtZGdwdV9jcnRjLT5jcnRjX29mZnNldCwgKHggPDwgMTYpIHwgeSk7 Ci0JV1JFRzMyKEVWRVJHUkVFTl9DVVJfSE9UX1NQT1QgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZz ZXQsICh4b3JpZ2luIDw8IDE2KSB8IHlvcmlnaW4pOwotCVdSRUczMihFVkVSR1JFRU5fQ1VSX1NJ WkUgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsCisJV1JFRzMyKG1tQ1VSX1BPU0lUSU9OICsg YW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LCAoeCA8PCAxNikgfCB5KTsKKwlXUkVHMzIobW1DVVJf SE9UX1NQT1QgKyBhbWRncHVfY3J0Yy0+Y3J0Y19vZmZzZXQsICh4b3JpZ2luIDw8IDE2KSB8IHlv cmlnaW4pOworCVdSRUczMihtbUNVUl9TSVpFICsgYW1kZ3B1X2NydGMtPmNydGNfb2Zmc2V0LAog CSAgICAgICAoKHcgLSAxKSA8PCAxNikgfCAoYW1kZ3B1X2NydGMtPmN1cnNvcl9oZWlnaHQgLSAx KSk7CiAKIAlhbWRncHVfY3J0Yy0+Y3Vyc29yX3ggPSB4OwpAQCAtMjQ3NSwxNCArMjQ4OCwxNCBA QCBzdGF0aWMgdm9pZCBkY2VfdjZfMF9zZXRfY3J0Y192YmxhbmtfaW50ZXJydXB0X3N0YXRlKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCiAJc3dpdGNoIChzdGF0ZSkgewogCWNhc2UgQU1E R1BVX0lSUV9TVEFURV9ESVNBQkxFOgotCQlpbnRlcnJ1cHRfbWFzayA9IFJSRUczMihJTlRfTUFT SyArIHJlZ19ibG9jayk7CisJCWludGVycnVwdF9tYXNrID0gUlJFRzMyKG1tSU5UX01BU0sgKyBy ZWdfYmxvY2spOwogCQlpbnRlcnJ1cHRfbWFzayAmPSB+VkJMQU5LX0lOVF9NQVNLOwotCQlXUkVH MzIoSU5UX01BU0sgKyByZWdfYmxvY2ssIGludGVycnVwdF9tYXNrKTsKKwkJV1JFRzMyKG1tSU5U X01BU0sgKyByZWdfYmxvY2ssIGludGVycnVwdF9tYXNrKTsKIAkJYnJlYWs7CiAJY2FzZSBBTURH UFVfSVJRX1NUQVRFX0VOQUJMRToKLQkJaW50ZXJydXB0X21hc2sgPSBSUkVHMzIoSU5UX01BU0sg KyByZWdfYmxvY2spOworCQlpbnRlcnJ1cHRfbWFzayA9IFJSRUczMihtbUlOVF9NQVNLICsgcmVn X2Jsb2NrKTsKIAkJaW50ZXJydXB0X21hc2sgfD0gVkJMQU5LX0lOVF9NQVNLOwotCQlXUkVHMzIo SU5UX01BU0sgKyByZWdfYmxvY2ssIGludGVycnVwdF9tYXNrKTsKKwkJV1JFRzMyKG1tSU5UX01B U0sgKyByZWdfYmxvY2ssIGludGVycnVwdF9tYXNrKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJ YnJlYWs7CkBAIC0yNTEwLDE0ICsyNTIzLDE0IEBAIHN0YXRpYyBpbnQgZGNlX3Y2XzBfc2V0X2hw ZF9pbnRlcnJ1cHRfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAKIAlzd2l0Y2gg KHN0YXRlKSB7CiAJY2FzZSBBTURHUFVfSVJRX1NUQVRFX0RJU0FCTEU6Ci0JCWRjX2hwZF9pbnRf Y250bCA9IFJSRUczMihEQ19IUEQxX0lOVF9DT05UUk9MICsgaHBkX29mZnNldHNbdHlwZV0pOwor CQlkY19ocGRfaW50X2NudGwgPSBSUkVHMzIobW1EQ19IUEQxX0lOVF9DT05UUk9MICsgaHBkX29m ZnNldHNbdHlwZV0pOwogCQlkY19ocGRfaW50X2NudGwgJj0gfkRDX0hQRHhfSU5UX0VOOwotCQlX UkVHMzIoRENfSFBEMV9JTlRfQ09OVFJPTCArIGhwZF9vZmZzZXRzW3R5cGVdLCBkY19ocGRfaW50 X2NudGwpOworCQlXUkVHMzIobW1EQ19IUEQxX0lOVF9DT05UUk9MICsgaHBkX29mZnNldHNbdHlw ZV0sIGRjX2hwZF9pbnRfY250bCk7CiAJCWJyZWFrOwogCWNhc2UgQU1ER1BVX0lSUV9TVEFURV9F TkFCTEU6Ci0JCWRjX2hwZF9pbnRfY250bCA9IFJSRUczMihEQ19IUEQxX0lOVF9DT05UUk9MICsg aHBkX29mZnNldHNbdHlwZV0pOworCQlkY19ocGRfaW50X2NudGwgPSBSUkVHMzIobW1EQ19IUEQx X0lOVF9DT05UUk9MICsgaHBkX29mZnNldHNbdHlwZV0pOwogCQlkY19ocGRfaW50X2NudGwgfD0g RENfSFBEeF9JTlRfRU47Ci0JCVdSRUczMihEQ19IUEQxX0lOVF9DT05UUk9MICsgaHBkX29mZnNl dHNbdHlwZV0sIGRjX2hwZF9pbnRfY250bCk7CisJCVdSRUczMihtbURDX0hQRDFfSU5UX0NPTlRS T0wgKyBocGRfb2Zmc2V0c1t0eXBlXSwgZGNfaHBkX2ludF9jbnRsKTsKIAkJYnJlYWs7CiAJZGVm YXVsdDoKIAkJYnJlYWs7CkBAIC0yNTg1LDcgKzI1OTgsNyBAQCBzdGF0aWMgaW50IGRjZV92Nl8w X2NydGNfaXJxKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCXN3aXRjaCAoZW50cnktPnNy Y19kYXRhKSB7CiAJY2FzZSAwOiAvKiB2YmxhbmsgKi8KIAkJaWYgKGRpc3BfaW50ICYgaW50ZXJy dXB0X3N0YXR1c19vZmZzZXRzW2NydGNdLnZibGFuaykKLQkJCVdSRUczMihWQkxBTktfU1RBVFVT ICsgY3J0Y19vZmZzZXRzW2NydGNdLCBWQkxBTktfQUNLKTsKKwkJCVdSRUczMihtbVZCTEFOS19T VEFUVVMgKyBjcnRjX29mZnNldHNbY3J0Y10sIFZCTEFOS19BQ0spOwogCQllbHNlCiAJCQlEUk1f REVCVUcoIklIOiBJSCBldmVudCB3L28gYXNzZXJ0ZWQgaXJxIGJpdD9cbiIpOwogCkBAIC0yNTk2 LDcgKzI2MDksNyBAQCBzdGF0aWMgaW50IGRjZV92Nl8wX2NydGNfaXJxKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2LAogCQlicmVhazsKIAljYXNlIDE6IC8qIHZsaW5lICovCiAJCWlmIChkaXNw X2ludCAmIGludGVycnVwdF9zdGF0dXNfb2Zmc2V0c1tjcnRjXS52bGluZSkKLQkJCVdSRUczMihW TElORV9TVEFUVVMgKyBjcnRjX29mZnNldHNbY3J0Y10sIFZMSU5FX0FDSyk7CisJCQlXUkVHMzIo bW1WTElORV9TVEFUVVMgKyBjcnRjX29mZnNldHNbY3J0Y10sIFZMSU5FX0FDSyk7CiAJCWVsc2UK IAkJCURSTV9ERUJVRygiSUg6IElIIGV2ZW50IHcvbyBhc3NlcnRlZCBpcnEgYml0P1xuIik7CiAK QEAgLTI2MjIsMTIgKzI2MzUsMTIgQEAgc3RhdGljIGludCBkY2VfdjZfMF9zZXRfcGFnZWZsaXBf aW50ZXJydXB0X3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQlyZXR1cm4gLUVJ TlZBTDsKIAl9CiAKLQlyZWcgPSBSUkVHMzIoR1JQSF9JTlRfQ09OVFJPTCArIGNydGNfb2Zmc2V0 c1t0eXBlXSk7CisJcmVnID0gUlJFRzMyKG1tR1JQSF9JTlRFUlJVUFRfQ09OVFJPTCArIGNydGNf b2Zmc2V0c1t0eXBlXSk7CiAJaWYgKHN0YXRlID09IEFNREdQVV9JUlFfU1RBVEVfRElTQUJMRSkK LQkJV1JFRzMyKEdSUEhfSU5UX0NPTlRST0wgKyBjcnRjX29mZnNldHNbdHlwZV0sCisJCVdSRUcz MihtbUdSUEhfSU5URVJSVVBUX0NPTlRST0wgKyBjcnRjX29mZnNldHNbdHlwZV0sCiAJCSAgICAg ICByZWcgJiB+R1JQSF9JTlRFUlJVUFRfQ09OVFJPTF9fR1JQSF9QRkxJUF9JTlRfTUFTS19NQVNL KTsKIAllbHNlCi0JCVdSRUczMihHUlBIX0lOVF9DT05UUk9MICsgY3J0Y19vZmZzZXRzW3R5cGVd LAorCQlXUkVHMzIobW1HUlBIX0lOVEVSUlVQVF9DT05UUk9MICsgY3J0Y19vZmZzZXRzW3R5cGVd LAogCQkgICAgICAgcmVnIHwgR1JQSF9JTlRFUlJVUFRfQ09OVFJPTF9fR1JQSF9QRkxJUF9JTlRf TUFTS19NQVNLKTsKIAogCXJldHVybiAwOwpAQCAtMjY1MCw5ICsyNjYzLDkgQEAgc3RhdGljIGlu dCBkY2VfdjZfMF9wYWdlZmxpcF9pcnEoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCXJl dHVybiAtRUlOVkFMOwogCX0KIAotCWlmIChSUkVHMzIoR1JQSF9JTlRfU1RBVFVTICsgY3J0Y19v ZmZzZXRzW2NydGNfaWRdKSAmCisJaWYgKFJSRUczMihtbUdSUEhfSU5URVJSVVBUX1NUQVRVUyAr IGNydGNfb2Zmc2V0c1tjcnRjX2lkXSkgJgogCSAgICBHUlBIX0lOVEVSUlVQVF9TVEFUVVNfX0dS UEhfUEZMSVBfSU5UX09DQ1VSUkVEX01BU0spCi0JCVdSRUczMihHUlBIX0lOVF9TVEFUVVMgKyBj cnRjX29mZnNldHNbY3J0Y19pZF0sCisJCVdSRUczMihtbUdSUEhfSU5URVJSVVBUX1NUQVRVUyAr IGNydGNfb2Zmc2V0c1tjcnRjX2lkXSwKIAkJICAgICAgIEdSUEhfSU5URVJSVVBUX1NUQVRVU19f R1JQSF9QRkxJUF9JTlRfQ0xFQVJfTUFTSyk7CiAKIAkvKiBJUlEgY291bGQgb2NjdXIgd2hlbiBp biBpbml0aWFsIHN0YWdlICovCkBAIC0yNzAzLDkgKzI3MTYsOSBAQCBzdGF0aWMgaW50IGRjZV92 Nl8wX2hwZF9pcnEoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJbWFzayA9IGludGVycnVw dF9zdGF0dXNfb2Zmc2V0c1tocGRdLmhwZDsKIAogCWlmIChkaXNwX2ludCAmIG1hc2spIHsKLQkJ dG1wID0gUlJFRzMyKERDX0hQRDFfSU5UX0NPTlRST0wgKyBocGRfb2Zmc2V0c1tocGRdKTsKKwkJ dG1wID0gUlJFRzMyKG1tRENfSFBEMV9JTlRfQ09OVFJPTCArIGhwZF9vZmZzZXRzW2hwZF0pOwog CQl0bXAgfD0gRENfSFBEMV9JTlRfQ09OVFJPTF9fRENfSFBEMV9JTlRfQUNLX01BU0s7Ci0JCVdS RUczMihEQ19IUEQxX0lOVF9DT05UUk9MICsgaHBkX29mZnNldHNbaHBkXSwgdG1wKTsKKwkJV1JF RzMyKG1tRENfSFBEMV9JTlRfQ09OVFJPTCArIGhwZF9vZmZzZXRzW2hwZF0sIHRtcCk7CiAJCXNj aGVkdWxlX3dvcmsoJmFkZXYtPmhvdHBsdWdfd29yayk7CiAJCURSTV9JTkZPKCJJSDogSFBEJWRc biIsIGhwZCArIDEpOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L3NpX2VudW1zLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zaV9lbnVtcy5oCmluZGV4 IDNlY2QzNmYzMGUyYS4uZmRlMjA4NjI0NmZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9zaV9lbnVtcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Np X2VudW1zLmgKQEAgLTIzLDYgKzIzLDg0IEBACiAjaWZuZGVmIFNJX0VOVU1TX0gKICNkZWZpbmUg U0lfRU5VTVNfSAogCisjZGVmaW5lIFZCTEFOS19JTlRfTUFTSyAgICAgICAgICAgICAgICAoMSA8 PCAwKQorI2RlZmluZSBEQ19IUER4X0lOVF9FTiAgICAgICAgICAgICAgICAgKDEgPDwgMTYpCisj ZGVmaW5lIFZCTEFOS19BQ0sgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQorI2RlZmluZSBW TElORV9BQ0sgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNCkKKworI2RlZmluZSBDVVJTT1Jf V0lEVEggNjQKKyNkZWZpbmUgQ1VSU09SX0hFSUdIVCA2NAorCisjZGVmaW5lIFZHQV9WU1RBVFVT X0NOVEwgICAgICAgICAgICAgICAweEZGRkNGRkZGCisjZGVmaW5lIFBSSU9SSVRZX01BUktfTUFT SyAgICAgICAgICAgICAweDdmZmYKKyNkZWZpbmUgUFJJT1JJVFlfT0ZGICAgICAgICAgICAgICAg ICAgICgxIDw8IDE2KQorI2RlZmluZSBQUklPUklUWV9BTFdBWVNfT04gICAgICAgICAgICAgKDEg PDwgMjApCisjZGVmaW5lIElOVEVSTEVBVkVfRU4gICAgICAgICAgICAgICAgICAoMSA8PCAwKQor CisjZGVmaW5lIExBVEVOQ1lfV0FURVJNQVJLX01BU0soeCkgICAgICAoKHgpIDw8IDE2KQorI2Rl ZmluZSBEQ19MQl9NRU1PUllfQ09ORklHKHgpICAgICAgICAgKCh4KSA8PCAyMCkKKyNkZWZpbmUg SUNPTl9ERUdBTU1BX01PREUoeCkgICAgICAgICAgICgoKHgpICYgMHgzKSA8PCA4KQorCisjZGVm aW5lIEdSUEhfRU5ESUFOX1NXQVAoeCkgICAgICAgICAgICAoKCh4KSAmIDB4MykgPDwgMCkKKyNk ZWZpbmUgR1JQSF9FTkRJQU5fTk9ORSAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgR1JQSF9FTkRJ QU5fOElOMTYgICAgICAgICAgICAgIDEKKyNkZWZpbmUgR1JQSF9FTkRJQU5fOElOMzIgICAgICAg ICAgICAgIDIKKyNkZWZpbmUgR1JQSF9FTkRJQU5fOElONjQgICAgICAgICAgICAgIDMKKworI2Rl ZmluZSBHUlBIX0RFUFRIKHgpICAgICAgICAgICAgICAgICAgKCgoeCkgJiAweDMpIDw8IDApCisj ZGVmaW5lIEdSUEhfREVQVEhfOEJQUCAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEdSUEhfREVQ VEhfMTZCUFAgICAgICAgICAgICAgICAxCisjZGVmaW5lIEdSUEhfREVQVEhfMzJCUFAgICAgICAg ICAgICAgICAyCisKKyNkZWZpbmUgR1JQSF9GT1JNQVQoeCkgICAgICAgICAgICAgICAgICgoKHgp ICYgMHg3KSA8PCA4KQorI2RlZmluZSBHUlBIX0ZPUk1BVF9JTkRFWEVEICAgICAgICAgICAgMAor I2RlZmluZSBHUlBIX0ZPUk1BVF9BUkdCMTU1NSAgICAgICAgICAgMAorI2RlZmluZSBHUlBIX0ZP Uk1BVF9BUkdCNTY1ICAgICAgICAgICAgMQorI2RlZmluZSBHUlBIX0ZPUk1BVF9BUkdCNDQ0NCAg ICAgICAgICAgMgorI2RlZmluZSBHUlBIX0ZPUk1BVF9BSTg4ICAgICAgICAgICAgICAgMworI2Rl ZmluZSBHUlBIX0ZPUk1BVF9NT05PMTYgICAgICAgICAgICAgNAorI2RlZmluZSBHUlBIX0ZPUk1B VF9CR1JBNTU1MSAgICAgICAgICAgNQorI2RlZmluZSBHUlBIX0ZPUk1BVF9BUkdCODg4OCAgICAg ICAgICAgMAorI2RlZmluZSBHUlBIX0ZPUk1BVF9BUkdCMjEwMTAxMCAgICAgICAgMQorI2RlZmlu ZSBHUlBIX0ZPUk1BVF8zMkJQUF9ESUcgICAgICAgICAgMgorI2RlZmluZSBHUlBIX0ZPUk1BVF84 Ql9BUkdCMjEwMTAxMCAgICAgMworI2RlZmluZSBHUlBIX0ZPUk1BVF9CR1JBMTAxMDEwMiAgICAg ICAgNAorI2RlZmluZSBHUlBIX0ZPUk1BVF84Ql9CR1JBMTAxMDEwMiAgICAgNQorI2RlZmluZSBH UlBIX0ZPUk1BVF9SR0IxMTExMTAgICAgICAgICAgNgorI2RlZmluZSBHUlBIX0ZPUk1BVF9CR1Ix MDExMTEgICAgICAgICAgNworCisjZGVmaW5lIEdSUEhfTlVNX0JBTktTKHgpICAgICAgICAgICAg ICAoKCh4KSAmIDB4MykgPDwgMikKKyNkZWZpbmUgR1JQSF9BUlJBWV9NT0RFKHgpICAgICAgICAg ICAgICgoKHgpICYgMHg3KSA8PCAyMCkKKyNkZWZpbmUgR1JQSF9BUlJBWV9MSU5FQVJfR0VORVJB TCAgICAgIDAKKyNkZWZpbmUgR1JQSF9BUlJBWV9MSU5FQVJfQUxJR05FRCAgICAgIDEKKyNkZWZp bmUgR1JQSF9BUlJBWV8xRF9USUxFRF9USElOMSAgICAgIDIKKyNkZWZpbmUgR1JQSF9BUlJBWV8y RF9USUxFRF9USElOMSAgICAgIDQKKyNkZWZpbmUgR1JQSF9USUxFX1NQTElUKHgpICAgICAgICAg ICAgICgoKHgpICYgMHg3KSA8PCAxMykKKyNkZWZpbmUgR1JQSF9CQU5LX1dJRFRIKHgpICAgICAg ICAgICAgICgoKHgpICYgMHgzKSA8PCA2KQorI2RlZmluZSBHUlBIX0JBTktfSEVJR0hUKHgpICAg ICAgICAgICAgKCgoeCkgJiAweDMpIDw8IDExKQorI2RlZmluZSBHUlBIX01BQ1JPX1RJTEVfQVNQ RUNUKHgpICAgICAgKCgoeCkgJiAweDMpIDw8IDE4KQorI2RlZmluZSBHUlBIX0FSUkFZX01PREUo eCkgICAgICAgICAgICAgKCgoeCkgJiAweDcpIDw8IDIwKQorI2RlZmluZSBHUlBIX1BJUEVfQ09O RklHKHgpICAgICAgICAgICAgICAgICAgICgoKHgpICYgMHgxZikgPDwgMjQpCisKKyNkZWZpbmUg Q1VSU09SX0VOICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCisjZGVmaW5lIENVUlNPUl9N T0RFKHgpICAgICAgICAgICAgICAgICAoKCh4KSAmIDB4MykgPDwgOCkKKyNkZWZpbmUgQ1VSU09S X01PTk8gICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQ1VSU09SXzI0XzEgICAgICAgICAg ICAgICAgICAgIDEKKyNkZWZpbmUgQ1VSU09SXzI0XzhfUFJFX01VTFQgICAgICAgICAgIDIKKyNk ZWZpbmUgQ1VSU09SXzI0XzhfVU5QUkVfTVVMVCAgICAgICAgIDMKKyNkZWZpbmUgQ1VSU09SXzJY X01BR05JRlkgICAgICAgICAgICAgICgxIDw8IDE2KQorI2RlZmluZSBDVVJTT1JfRk9SQ0VfTUNf T04gICAgICAgICAgICAgKDEgPDwgMjApCisjZGVmaW5lIENVUlNPUl9VUkdFTlRfQ09OVFJPTCh4 KSAgICAgICAoKCh4KSAmIDB4NykgPDwgMjQpCisjZGVmaW5lIENVUlNPUl9VUkdFTlRfQUxXQVlT ICAgICAgICAgICAwCisjZGVmaW5lIENVUlNPUl9VUkdFTlRfMV84ICAgICAgICAgICAgICAxCisj ZGVmaW5lIENVUlNPUl9VUkdFTlRfMV80ICAgICAgICAgICAgICAyCisjZGVmaW5lIENVUlNPUl9V UkdFTlRfM184ICAgICAgICAgICAgICAzCisjZGVmaW5lIENVUlNPUl9VUkdFTlRfMV8yICAgICAg ICAgICAgICA0CisjZGVmaW5lIENVUlNPUl9VUERBVEVfUEVORElORyAgICAgICAgICAoMSA8PCAw KQorI2RlZmluZSBDVVJTT1JfVVBEQVRFX1RBS0VOICAgICAgICAgICAgKDEgPDwgMSkKKyNkZWZp bmUgQ1VSU09SX1VQREFURV9MT0NLICAgICAgICAgICAgICgxIDw8IDE2KQorI2RlZmluZSBDVVJT T1JfRElTQUJMRV9NVUxUSVBMRV9VUERBVEUgKDEgPDwgMjQpCisKICNkZWZpbmUgQU1ER1BVX05V TV9PRl9WTUlEUyAgICAgICAgICAgICAgICAgICAgIDgKICNkZWZpbmUgU0lfQ1JUQzBfUkVHSVNU RVJfT0ZGU0VUICAgICAgICAgICAgICAgIDAKICNkZWZpbmUgU0lfQ1JUQzFfUkVHSVNURVJfT0ZG U0VUICAgICAgICAgICAgICAgIDB4MzAwCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2luY2x1ZGUvYXNpY19yZWcvZGNlL2RjZV82XzBfZC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9p bmNsdWRlL2FzaWNfcmVnL2RjZS9kY2VfNl8wX2QuaAppbmRleCBhMTc5NzNiYjYzYTYuLmFlNzk4 Zjc2ODg1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL2FzaWNfcmVn L2RjZS9kY2VfNl8wX2QuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvYXNpY19y ZWcvZGNlL2RjZV82XzBfZC5oCkBAIC00NDQyLDQgKzQ0NDIsMTYgQEAKICNkZWZpbmUgbW1YRE1B X1RFU1RfREVCVUdfREFUQSAweDA0MUQKICNkZWZpbmUgbW1YRE1BX1RFU1RfREVCVUdfSU5ERVgg MHgwNDFDCiAKKy8qIFJlZ2lzdGVycyB0aGF0IHNwaWxsZWQgb3V0IG9mIHNpZC5oICovCisjZGVm aW5lIG1tREFUQV9GT1JNQVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFBQzAKKyNk ZWZpbmUgbW1ERVNLVE9QX0hFSUdIVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUFDMQor I2RlZmluZSBtbURDX0xCX01FTU9SWV9TUExJVCAgICAgICAgICAgICAgICAgICAgICAgMHgxQUMz CisjZGVmaW5lIG1tUFJJT1JJVFlfQV9DTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFB QzYKKyNkZWZpbmUgbW1QUklPUklUWV9CX0NOVCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MUFDNworI2RlZmluZSBtbURQR19QSVBFX0FSQklUUkFUSU9OX0NPTlRST0wzICAgICAgICAgICAg MHgxQjMyCisjZGVmaW5lIG1tSU5UX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDFBRDAKKyNkZWZpbmUgbW1WTElORV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MUFFRQorI2RlZmluZSBtbVZCTEFOS19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgxQUVGCisKKwogI2VuZGlmCi0tIAoyLjEwLjAKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vYW1kLWdmeAo=