From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhenyu Wang Subject: [RFC PATCH v2 2/2] drm/i915: Move GVT device model into separate module Date: Mon, 26 Nov 2018 14:05:54 +0800 Message-ID: <20181126060554.16481-3-zhenyuw@linux.intel.com> References: <20181126060554.16481-1-zhenyuw@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181126060554.16481-1-zhenyuw@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: joonas.lahtinen@linux.intel.com Cc: intel-gfx@lists.freedesktop.org, intel-gvt-dev@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhpcyBtYWtlcyBHVlQgZGV2aWNlIG1vZGVsIGludG8gYSBzdGFuZCBhbG9uZSBtb2R1bGUgbmFt ZWQgYXMKImk5MTVfZ3Z0Iiwgd2hpY2ggZGVwZW5kcyBvbiBpOTE1IGJ1dCBsb2FkIGFmdGVyIGk5 MTUgdGhhdCBkbwphbGwgbGVmdCBHVlQgaG9zdCBpbml0aWFsaXphdGlvbiBzZXR1cC4KCkN1cnJl bnRseSBpOTE1X2d2dCBtb2R1bGUgd291bGQgc3RpbGwgbG9hZCAia3ZtZ3QiIG1vZHVsZSB0bwpp bml0aWFsaXplIGZvciBWRklPL21kZXYgZGV2aWNlLCBidXQgdGhpcyBtaWdodCBiZSBjaGFuZ2Vk IGluIGZ1dHVyZS4KQXMgd2lsbCBtYWtlIGh5cGVydmlzb3IgbW9kdWxlIGxvYWQgdG8gaW5pdGlh bGl6ZSBHVlQgaG9zdCBpbnN0ZWFkLgoKT25lIHByb2JsZW0gYnkgdGhpcyBzcGxpdCBpcyB0aGF0 IEdWVCByZXF1aXJlcyBIVyBpbml0aWFsIE1NSU8gc3RhdGUKYXMgYmFzZSBpbml0aWFsIHN0YXRl IGZvciBlYWNoIHZHUFUgYWZ0ZXIgY3JlYXRlLCB3aGljaCBzaG91bGQgYmUKdGFrZW4gaW4gdmVy eSBlYXJseSBzdGFnZSBvZiBpOTE1IGxvYWQgdG8gcmVmbGVjdCBIVyBzdGF0ZS4gSnVzdApyZWFk aW5nIGFsbCBNTUlPIHdvbid0IHdvcmssIGFzIGl0IGNvdWxkIGNhdXNlIHVua25vd24gc2lkZSBl ZmZlY3QgZS5nCkhXIGhhbmcuIFNvIGN1cnJlbnQgY2hvaWNlIGlzIHRvIHJlYWQgYmFjayBNTUlP IHRoYXQgR1ZUIGFjdHVhbGx5CnRyYWNrLiBCdXQgaW5zdGVhZCBvZiByZWZlcmVuY2UgYW55IEdW VCBmaWxlcywgdGhpcyBvbmUganVzdCBjb3BpZWQKcmVnaXN0ZXIgbGlzdC4gU28gR1ZUIHdpbGwg dXNlIGluaXRpYWwgZHVtcCBpbnN0ZWFkIHdoZW4gbG9hZC4KCkNjOiBKb29uYXMgTGFodGluZW4g PGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFpoZW55dSBX YW5nIDx6aGVueXV3QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9L Y29uZmlnICAgICAgICB8ICAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAg ICAgIHwgICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L01ha2VmaWxlICAgfCAgICA4 ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZmlybXdhcmUuYyB8ICAgIDIgKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuYyAgICAgIHwgICA1MiArLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3Z0L2d2dC5oICAgICAgfCAgICAzICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMgICAgIHwgICA0MyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAg fCAgIDEwICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jICB8ICAgIDUgLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuaCAgfCAgICAzICstCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ndnQuYyAgICB8IDE1MTkgKysrKysrKysrKysrKysrKysrKysrKysr Ky0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndnQuaCAgICB8ICAgMjkgKy0KIDEyIGZp bGVzIGNoYW5nZWQsIDE1NDcgaW5zZXJ0aW9ucygrKSwgMTMzIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9LY29uZmlnCmluZGV4IDMzYTQ1OGI3ZjFmYy4uYTA1MjYxY2FiZjUzIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9LY29uZmlnCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tj b25maWcKQEAgLTk2LDcgKzk2LDcgQEAgY29uZmlnIERSTV9JOTE1X1VTRVJQVFIKIAkgIElmIGlu IGRvdWJ0LCBzYXkgIlkiLgogCiBjb25maWcgRFJNX0k5MTVfR1ZUCi0gICAgICAgIGJvb2wgIkVu YWJsZSBJbnRlbCBHVlQtZyBncmFwaGljcyB2aXJ0dWFsaXphdGlvbiBob3N0IHN1cHBvcnQiCisg ICAgICAgIHRyaXN0YXRlICJFbmFibGUgSW50ZWwgR1ZULWcgZ3JhcGhpY3MgdmlydHVhbGl6YXRp b24gaG9zdCBzdXBwb3J0IgogICAgICAgICBkZXBlbmRzIG9uIERSTV9JOTE1CiAgICAgICAgIGRl cGVuZHMgb24gNjRCSVQKICAgICAgICAgZGVmYXVsdCBuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCmluZGV4 IDBmZjg3OGM5OTRlMi4uM2MyM2QwYTU1NTJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtMTg2 LDEyICsxODYsMTIgQEAgaTkxNS15ICs9IGk5MTVfcGVyZi5vIFwKIAkgIGk5MTVfb2FfY25sLm8g XAogCSAgaTkxNV9vYV9pY2wubwogCi1pZmVxICgkKENPTkZJR19EUk1fSTkxNV9HVlQpLHkpCitp Zm5lcSAoJChDT05GSUdfRFJNX0k5MTVfR1ZUKSxuKQogaTkxNS15ICs9IGludGVsX2d2dC5vCi1p bmNsdWRlICQoc3JjKS9ndnQvTWFrZWZpbGUKIGVuZGlmCiAKICMgTFBFIEF1ZGlvIGZvciBWTFYg YW5kIENIVAogaTkxNS15ICs9IGludGVsX2xwZV9hdWRpby5vCiAKIG9iai0kKENPTkZJR19EUk1f STkxNSkgKz0gaTkxNS5vCitvYmotJChDT05GSUdfRFJNX0k5MTVfR1ZUKSArPSBndnQvCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndnQvTWFrZWZpbGUKaW5kZXggYjAxNmRjNzUzZGI5Li5mNDFjZmM3NjI1YjQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9NYWtlZmlsZQorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9ndnQvTWFrZWZpbGUKQEAgLTEsMTAgKzEsMTAgQEAKICMgU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKLUdWVF9ESVIgOj0gZ3Z0CiBHVlRfU09VUkNFIDo9IGd2 dC5vIGFwZXJ0dXJlX2dtLm8gaGFuZGxlcnMubyB2Z3B1Lm8gdHJhY2VfcG9pbnRzLm8gZmlybXdh cmUubyBcCiAJaW50ZXJydXB0Lm8gZ3R0Lm8gY2ZnX3NwYWNlLm8gb3ByZWdpb24ubyBtbWlvLm8g ZGlzcGxheS5vIGVkaWQubyBcCiAJZXhlY2xpc3QubyBzY2hlZHVsZXIubyBzY2hlZF9wb2xpY3ku byBtbWlvX2NvbnRleHQubyBjbWRfcGFyc2VyLm8gZGVidWdmcy5vIFwKIAlmYl9kZWNvZGVyLm8g ZG1hYnVmLm8gcGFnZV90cmFjay5vCiAKLWNjZmxhZ3MteQkJCQkrPSAtSSQoc3JjKSAtSSQoc3Jj KS8kKEdWVF9ESVIpCi1pOTE1LXkJCQkJCSs9ICQoYWRkcHJlZml4ICQoR1ZUX0RJUikvLCAkKEdW VF9TT1VSQ0UpKQotb2JqLSQoQ09ORklHX0RSTV9JOTE1X0dWVF9LVk1HVCkJKz0gJChHVlRfRElS KS9rdm1ndC5vCitjY2ZsYWdzLXkJCQkJKz0gLUkkKHNyYykgLUkkKHNyYykvLi4vCitpOTE1X2d2 dC15CQkJCTo9ICQoR1ZUX1NPVVJDRSkKK29iai0kKENPTkZJR19EUk1fSTkxNV9HVlRfS1ZNR1Qp CSs9IGt2bWd0Lm8KK29iai0kKENPTkZJR19EUk1fSTkxNV9HVlQpICAgICAgICAgICAgICArPSBp OTE1X2d2dC5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZmlybXdhcmUu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9maXJtd2FyZS5jCmluZGV4IDRhYzE4YjQ0NzI0 Ny4uN2EzNDQxZmI5ZjcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZmly bXdhcmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZmlybXdhcmUuYwpAQCAtNzAs NyArNzAsNyBAQCBzdGF0aWMgaW50IG1taW9fc25hcHNob3RfaGFuZGxlcihzdHJ1Y3QgaW50ZWxf Z3Z0ICpndnQsIHUzMiBvZmZzZXQsIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZ3Z0LT5kZXZfcHJpdjsKIAotCSoodTMyICopKGRhdGEgKyBvZmZz ZXQpID0gSTkxNV9SRUFEX05PVFJBQ0UoX01NSU8ob2Zmc2V0KSk7CisJKih1MzIgKikoZGF0YSAr IG9mZnNldCkgPSBkZXZfcHJpdi0+aHdfaW5pdF9tbWlvW29mZnNldCA+PiAyXTsKIAlyZXR1cm4g MDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5jCmluZGV4IDczM2EyYTBkMGMzMC4uYmRlMjBkODZh Y2Y1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5jCkBAIC0zMCwxMCArMzAsMTEgQEAKICAqCiAgKi8K IAorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2lu Y2x1ZGUgPHhlbi94ZW4uaD4KICNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+Ci0KKyNpbmNsdWRl IDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImd2dC5o IgogI2luY2x1ZGUgPGxpbnV4L3ZmaW8uaD4KQEAgLTIxNiw4ICsyMTcsOCBAQCBpbnQgaW50ZWxf Z3Z0X2luaXRfaG9zdCh2b2lkKQogCX0gZWxzZSB7CiAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJN X0k5MTVfR1ZUX0tWTUdUKQogCQkvKiBub3QgaW4gWGVuLiBUcnkgS1ZNR1QgKi8KLQkJaW50ZWxf Z3Z0X2hvc3QubXB0ID0gdHJ5X3RoZW5fcmVxdWVzdF9tb2R1bGUoCi0JCQkJc3ltYm9sX2dldChr dm1ndF9tcHQpLCAia3ZtZ3QiKTsKKwkJcmVxdWVzdF9tb2R1bGUoImt2bWd0Iik7CisJCWludGVs X2d2dF9ob3N0Lm1wdCA9ICZrdm1ndF9tcHQ7CiAJCWludGVsX2d2dF9ob3N0Lmh5cGVydmlzb3Jf dHlwZSA9IElOVEVMX0dWVF9IWVBFUlZJU09SX0tWTTsKICNlbmRpZgogCX0KQEAgLTQ2Nyw2ICs0 NjgsNTEgQEAgaW50IGludGVsX2d2dF9pbml0X2RldmljZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1X3ByaXY7CisKK3N0YXRpYyBpbnQgX19pbml0IGk5MTVfZ3Z0X2luaXQodm9p ZCkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqcHJpdjsKKworCWlmIChpbnRlbF9ndnRf aW5pdF9ob3N0KCkpIHsKKwkJZ3Z0X2VycigiaW5pdCBob3N0IGZhaWxcbiIpOworCQlnb3RvIGVy cjE7CisJfQorCisJcHJpdiA9IGk5MTVfcHJpdmF0ZV9nZXQoKTsKKwlpZiAoIXByaXYpIHsKKwkJ Z3Z0X2VycigiZ2V0IGk5MTUgcHJpdmF0ZSBpbnN0YW5jZSBmYWlsXG4iKTsKKwkJZ290byBlcnIx OworCX0KKwkJCisJaWYgKGludGVsX2d2dF9pbml0X2RldmljZShwcml2KSkgeworCQlndnRfZXJy KCJpbml0IGRldmljZSBmYWlsXG4iKTsKKwkJZ290byBlcnIyOworCX0KKwlpOTE1X3ByaXYgPSBw cml2OworCQorCXByaW50aygiaTkxNV9ndnRfaW5pdCBzdWNjZXNzXG4iKTsKKwlyZXR1cm4gMDsK K2VycjI6CisJaTkxNV9wcml2YXRlX3B1dChwcml2KTsKK2VycjE6CisJcmV0dXJuIC0xOworfQor CitzdGF0aWMgdm9pZCBfX2V4aXQgaTkxNV9ndnRfZXhpdCh2b2lkKQoreworCWlmICghaW50ZWxf Z3Z0X2FjdGl2ZShpOTE1X3ByaXYpKQorCQlyZXR1cm47CisJaW50ZWxfZ3Z0X2NsZWFuX2Rldmlj ZShpOTE1X3ByaXYpOworCWk5MTVfcHJpdmF0ZV9wdXQoaTkxNV9wcml2KTsKK30KKworbW9kdWxl X2luaXQoaTkxNV9ndnRfaW5pdCk7Cittb2R1bGVfZXhpdChpOTE1X2d2dF9leGl0KTsKKwogI2lm IElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0dWVF9LVk1HVCkKIE1PRFVMRV9TT0ZUREVQKCJw cmU6IGt2bWd0Iik7CiAjZW5kaWYKKworTU9EVUxFX0xJQ0VOU0UoIkdQTCBhbmQgYWRkaXRpb25h bCByaWdodHMiKTsKK01PRFVMRV9BVVRIT1IoIkludGVsIENvcnBvcmF0aW9uIik7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndnQvZ3Z0LmgKaW5kZXggMzFmNmNkYmU1YzQyLi5mNWU5ODY5YWU5MWEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndnQvZ3Z0LmgKQEAgLTQ4MCw2ICs0ODAsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxf dmdwdV93cml0ZV9wY2lfYmFyKHN0cnVjdCBpbnRlbF92Z3B1ICp2Z3B1LAogCiBpbnQgaW50ZWxf Z3Z0X2luaXRfdmdwdV90eXBlcyhzdHJ1Y3QgaW50ZWxfZ3Z0ICpndnQpOwogdm9pZCBpbnRlbF9n dnRfY2xlYW5fdmdwdV90eXBlcyhzdHJ1Y3QgaW50ZWxfZ3Z0ICpndnQpOworZXh0ZXJuIGludCBp bnRlbF9ndnRfaW5pdF9kZXZpY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsK K2V4dGVybiB2b2lkIGludGVsX2d2dF9jbGVhbl9kZXZpY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKK2V4dGVybiBpbnQgaW50ZWxfZ3Z0X2luaXRfaG9zdCh2b2lkKTsKIAog c3RydWN0IGludGVsX3ZncHUgKmludGVsX2d2dF9jcmVhdGVfaWRsZV92Z3B1KHN0cnVjdCBpbnRl bF9ndnQgKmd2dCk7CiB2b2lkIGludGVsX2d2dF9kZXN0cm95X2lkbGVfdmdwdShzdHJ1Y3QgaW50 ZWxfdmdwdSAqdmdwdSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCBiMWQyM2M3M2MxNDcu LmM5Mzg3MzQ1MTgwZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC01Myw2ICs1Myw3IEBA CiAjaW5jbHVkZSAiaTkxNV92Z3B1LmgiCiAjaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCiAjaW5jbHVk ZSAiaW50ZWxfdWMuaCIKKyNpbmNsdWRlICJpbnRlbF9ndnQuaCIKIAogc3RhdGljIHN0cnVjdCBk cm1fZHJpdmVyIGRyaXZlcjsKIApAQCAtMTAyMyw2ICsxMDI0LDggQEAgc3RhdGljIGludCBpOTE1 X2RyaXZlcl9pbml0X21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJ aW50ZWxfdW5jb3JlX2luaXQoZGV2X3ByaXYpOwogCisJaW50ZWxfZ3Z0X2luaXRfbW1pbyhkZXZf cHJpdik7CisKIAlpbnRlbF9kZXZpY2VfaW5mb19pbml0X21taW8oZGV2X3ByaXYpOwogCiAJaW50 ZWxfdW5jb3JlX3BydW5lKGRldl9wcml2KTsKQEAgLTEwNTcsMTEgKzEwNjAsNiBAQCBzdGF0aWMg dm9pZCBpOTE1X2RyaXZlcl9jbGVhbnVwX21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCXBjaV9kZXZfcHV0KGRldl9wcml2LT5icmlkZ2VfZGV2KTsKIH0KIAotc3RhdGlj IHZvaWQgaW50ZWxfc2FuaXRpemVfb3B0aW9ucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCi17Ci0JaW50ZWxfZ3Z0X3Nhbml0aXplX29wdGlvbnMoZGV2X3ByaXYpOwotfQotCiBz dGF0aWMgZW51bSBkcmFtX3Jhbmsgc2tsX2dldF9kaW1tX3JhbmsodTggc2l6ZSwgdTMyIHJhbmsp CiB7CiAJaWYgKHNpemUgPT0gMCkKQEAgLTEzODMsOCArMTM4MSw2IEBAIHN0YXRpYyBpbnQgaTkx NV9kcml2ZXJfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCX0K IAl9CiAKLQlpbnRlbF9zYW5pdGl6ZV9vcHRpb25zKGRldl9wcml2KTsKLQogCWk5MTVfcGVyZl9p bml0KGRldl9wcml2KTsKIAogCXJldCA9IGk5MTVfZ2d0dF9wcm9iZV9odyhkZXZfcHJpdik7CkBA IC0xNDc4LDEwICsxNDc0LDYgQEAgc3RhdGljIGludCBpOTE1X2RyaXZlcl9pbml0X2h3KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJCURSTV9ERUJVR19EUklWRVIoImNhbid0 IGVuYWJsZSBNU0kiKTsKIAl9CiAKLQlyZXQgPSBpbnRlbF9ndnRfaW5pdChkZXZfcHJpdik7Ci0J aWYgKHJldCkKLQkJZ290byBlcnJfbXNpOwotCiAJaW50ZWxfb3ByZWdpb25fc2V0dXAoZGV2X3By aXYpOwogCS8qCiAJICogRmlsbCB0aGUgZHJhbSBzdHJ1Y3R1cmUgdG8gZ2V0IHRoZSBzeXN0ZW0g cmF3IGJhbmR3aWR0aCBhbmQKQEAgLTE0OTIsMTAgKzE0ODQsNiBAQCBzdGF0aWMgaW50IGk5MTVf ZHJpdmVyX2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJcmV0 dXJuIDA7CiAKLWVycl9tc2k6Ci0JaWYgKHBkZXYtPm1zaV9lbmFibGVkKQotCQlwY2lfZGlzYWJs ZV9tc2kocGRldik7Ci0JcG1fcW9zX3JlbW92ZV9yZXF1ZXN0KCZkZXZfcHJpdi0+cG1fcW9zKTsK IGVycl9nZ3R0OgogCWk5MTVfZ2d0dF9jbGVhbnVwX2h3KGRldl9wcml2KTsKIGVycl9wZXJmOgpA QCAtMTY3Nyw2ICsxNjY1LDI1IEBAIHN0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX2Rlc3Ryb3koc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJcGNpX3NldF9kcnZkYXRhKHBkZXYsIE5VTEwp OwogfQogCitzdGF0aWMgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTVfcHJpdl9wcmltZTsK Kworc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTVfcHJpdmF0ZV9nZXQodm9pZCkKK3sKKwlp ZiAoIWk5MTVfcHJpdl9wcmltZSkKKwkJcmV0dXJuIE5VTEw7CisKKwl0cnlfbW9kdWxlX2dldChp OTE1X3ByaXZfcHJpbWUtPmRybS5kZXYtPmRyaXZlci0+b3duZXIpOworCXJldHVybiBpOTE1X3By aXZfcHJpbWU7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChpOTE1X3ByaXZhdGVfZ2V0KTsKKwordm9p ZCBpOTE1X3ByaXZhdGVfcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpwcml2KQoreworCWlm IChwcml2KQorCQltb2R1bGVfcHV0KHByaXYtPmRybS5kZXYtPmRyaXZlci0+b3duZXIpOworfQor RVhQT1JUX1NZTUJPTF9HUEwoaTkxNV9wcml2YXRlX3B1dCk7CisKIC8qKgogICogaTkxNV9kcml2 ZXJfbG9hZCAtIHNldHVwIGNoaXAgYW5kIGNyZWF0ZSBhbiBpbml0aWFsIGNvbmZpZwogICogQHBk ZXY6IFBDSSBkZXZpY2UKQEAgLTE3MzEsNiArMTczOCw4IEBAIGludCBpOTE1X2RyaXZlcl9sb2Fk KHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KQog CiAJaTkxNV93ZWxjb21lX21lc3NhZ2VzKGRldl9wcml2KTsKIAorCWk5MTVfcHJpdl9wcmltZSA9 IGRldl9wcml2OworCQogCXJldHVybiAwOwogCiBvdXRfY2xlYW51cF9odzoKQEAgLTE3NTUsNiAr MTc2NCw4IEBAIHZvaWQgaTkxNV9kcml2ZXJfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAKIAlkaXNhYmxlX3JwbV93YWtlcmVmX2Fzc2VydHMoZGV2X3ByaXYpOwogCisJaW50ZWxfZ3Z0 X2NsZWFuX21taW8oZGV2X3ByaXYpOworCQogCWk5MTVfZHJpdmVyX3VucmVnaXN0ZXIoZGV2X3By aXYpOwogCiAJaWYgKGk5MTVfZ2VtX3N1c3BlbmQoZGV2X3ByaXYpKQpAQCAtMTc2Miw4ICsxNzcz LDYgQEAgdm9pZCBpOTE1X2RyaXZlcl91bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAog CWRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKGRldik7CiAKLQlpbnRlbF9ndnRfY2xlYW51cChk ZXZfcHJpdik7Ci0KIAlpbnRlbF9tb2Rlc2V0X2NsZWFudXAoZGV2KTsKIAogCWludGVsX2Jpb3Nf Y2xlYW51cChkZXZfcHJpdik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAyMWU0NDA1ZTIx NjguLjI4NDk1YjU1OGIwNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC04MSw4ICs4MSw2 IEBACiAjaW5jbHVkZSAiaTkxNV90aW1lbGluZS5oIgogI2luY2x1ZGUgImk5MTVfdm1hLmgiCiAK LSNpbmNsdWRlICJpbnRlbF9ndnQuaCIKLQogLyogR2VuZXJhbCBjdXN0b21pemF0aW9uOgogICov CiAKQEAgLTE0MzIsNiArMTQzMCw4IEBAIHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSB7CiAJdTgg dm9sdGFnZV9sZXZlbDsKIH07CiAKK3N0cnVjdCBpbnRlbF9ndnQ7CisKIHN0cnVjdCBkcm1faTkx NV9wcml2YXRlIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSBkcm07CiAKQEAgLTIwMTMsNiArMjAxMyw5 IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAogCXN0cnVjdCBpOTE1X3BtdSBwbXU7CiAK KyNpZiBkZWZpbmVkKENPTkZJR19EUk1fSTkxNV9HVlQpIHx8IGRlZmluZWQoQ09ORklHX0RSTV9J OTE1X0dWVF9NT0RVTEUpCisJdTMyICpod19pbml0X21taW87CisjZW5kaWYKIAkvKgogCSAqIE5P VEU6IFRoaXMgaXMgdGhlIGRyaTEvdW1zIGR1bmdlb24sIGRvbid0IGFkZCBzdHVmZiBoZXJlLiBZ b3VyIHBhdGNoCiAJICogd2lsbCBiZSByZWplY3RlZC4gSW5zdGVhZCBsb29rIGZvciBhIGJldHRl ciBwbGFjZS4KQEAgLTM3MjAsNCArMzcyMyw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGludGVsX2h3 c19jc2Jfd3JpdGVfaW5kZXgoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJCXJldHVy biBJOTE1X0hXU19DU0JfV1JJVEVfSU5ERVg7CiB9CiAKK3N0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1X3ByaXZhdGVfZ2V0KHZvaWQpOwordm9pZCBpOTE1X3ByaXZhdGVfcHV0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICopOworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcGFyYW1zLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5j CmluZGV4IDJlMDM1NjU2MTgzOS4uMzkyODk1OWFhNjVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cGFyYW1zLmMKQEAgLTE2NywxMSArMTY3LDYgQEAgaTkxNV9wYXJhbV9uYW1lZF91bnNhZmUoaW5q ZWN0X2xvYWRfZmFpbHVyZSwgdWludCwgMDQwMCwKIGk5MTVfcGFyYW1fbmFtZWQoZW5hYmxlX2Rw Y2RfYmFja2xpZ2h0LCBib29sLCAwNjAwLAogCSJFbmFibGUgc3VwcG9ydCBmb3IgRFBDRCBiYWNr bGlnaHQgY29udHJvbCAoZGVmYXVsdDpmYWxzZSkiKTsKIAotI2lmIElTX0VOQUJMRUQoQ09ORklH X0RSTV9JOTE1X0dWVCkKLWk5MTVfcGFyYW1fbmFtZWQoZW5hYmxlX2d2dCwgYm9vbCwgMDQwMCwK LQkiRW5hYmxlIHN1cHBvcnQgZm9yIEludGVsIEdWVC1nIGdyYXBoaWNzIHZpcnR1YWxpemF0aW9u IGhvc3Qgc3VwcG9ydChkZWZhdWx0OmZhbHNlKSIpOwotI2VuZGlmCi0KIHN0YXRpYyBfX2Fsd2F5 c19pbmxpbmUgdm9pZCBfcHJpbnRfcGFyYW0oc3RydWN0IGRybV9wcmludGVyICpwLAogCQkJCQkg Y29uc3QgY2hhciAqbmFtZSwKIAkJCQkJIGNvbnN0IGNoYXIgKnR5cGUsCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9wYXJhbXMuaAppbmRleCA3ZTU2YzUxNmM4MTUuLmYyNzA3ODU1NmM1MCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3BhcmFtcy5oCkBAIC02Niw4ICs2Niw3IEBAIHN0cnVjdCBkcm1fcHJpbnRl cjsKIAlwYXJhbShib29sLCB2ZXJib3NlX3N0YXRlX2NoZWNrcywgdHJ1ZSkgXAogCXBhcmFtKGJv b2wsIG51Y2xlYXJfcGFnZWZsaXAsIGZhbHNlKSBcCiAJcGFyYW0oYm9vbCwgZW5hYmxlX2RwX21z dCwgdHJ1ZSkgXAotCXBhcmFtKGJvb2wsIGVuYWJsZV9kcGNkX2JhY2tsaWdodCwgZmFsc2UpIFwK LQlwYXJhbShib29sLCBlbmFibGVfZ3Z0LCBmYWxzZSkKKwlwYXJhbShib29sLCBlbmFibGVfZHBj ZF9iYWNrbGlnaHQsIGZhbHNlKQogCiAjZGVmaW5lIE1FTUJFUihULCBtZW1iZXIsIC4uLikgVCBt ZW1iZXI7CiBzdHJ1Y3QgaTkxNV9wYXJhbXMgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZ3Z0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndnQuYwppbmRl eCBjMjJiM2UxOGEwZjUuLjIwZDI3NjQ1OGM0NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZ3Z0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Z0LmMK QEAgLTE5LDcgKzE5LDcgQEAKICAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0Yg Q09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiAgKiBPVVQgT0YgT1Ig SU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJ TkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKi8KKyovCiAKICNpbmNsdWRlICJpOTE1X2Rydi5o IgogI2luY2x1ZGUgImludGVsX2d2dC5oIgpAQCAtMzksNiArMzksMTQyNSBAQAogICogZG9jIGlz IGF2YWlsYWJsZSBvbiBodHRwczovLzAxLm9yZy9ncm91cC8yMjMwL2RvY3VtZW50YXRpb24tbGlz dC4KICAqLwogCisvKiAKKyAqIEdWVC1nIG5lZWRzIGluaXRpYWwgTU1JTy9jZmcgc3RhdGUgZm9y IGVhY2ggdkdQVSwgd2hpY2ggc2hvdWxkIGJlIGdvdAorICogdmVyeSBlYXJseSB0byByZWZsZWN0 IGluaXRpYWwgSFcgc3RhdGUuIFNvIHRoaXMgdHJ5cyB0byByZWFkIGVhcmx5IGR1cmluZworICog aTkxNSBsb2FkLCBhbmQgcHJvdmlkZSBmb3IgR1ZUIGxhdGVyIHdoZW4gdkdQVSBpbml0LiBCdXQg d2UgY2FuJ3QganVzdAorICogYmxpbmRseSByZWFkIGFsbCBNTUlPIHdoaWNoIG1pZ2h0IHNpbXBs eSBjYXVzZSBzaWRlIGVmZmVjdCBlLmcgaGFuZy4gU28KKyAqIHRoaXMgdHJ5cyB0byBvbmx5IHJl YWQgR1ZULWcgdHJhY2tlZCBNTUlPLgorICogCisgKiBUaGlzIGZpbGUgaXMgYWxpZ25lZCB3aXRo IGd2dC9oYW5kbGVyLmMncyBkZWZpbml0aW9uIGZvciBhbGwgdHJhY2tlZCBNTUlPLgorICogQW55 IGNoYW5nZSBpbiBndnQgc2hvdWxkIGFsc28gYWRkIGhlcmUuCisgKi8KKworI2RlZmluZSBNTUlP X1IocmVnLCBzaXplKSBkbyB7CQkJXAorCWludCBpOwkJCQkJXAorCWZvciAoaSA9IDA7IGkgPCBz aXplOyBpKz00KSB7XAorCQl1bnNpZ25lZCBpbnQgb2ZmID0gaTkxNV9tbWlvX3JlZ19vZmZzZXQo KHJlZykpOwkJXAorCQlkZXZfcHJpdi0+aHdfaW5pdF9tbWlvWyhvZmYgKyBpKSA+PiAyXSA9IEk5 MTVfUkVBRF9GVyhfTU1JTyhvZmYgKyBpKSk7IFwKKwl9XAorfSB3aGlsZSAoMCkKKworI2RlZmlu ZSBNTUlPX0YocmVnKSAgICBkbyB7XAorCXVuc2lnbmVkIGludCBvZmYgPSBpOTE1X21taW9fcmVn X29mZnNldCgocmVnKSk7XAorCWRldl9wcml2LT5od19pbml0X21taW9bb2ZmPj4yXSA9IEk5MTVf UkVBRF9GVygocmVnKSk7CVwKKwl9IHdoaWxlKDApCisjZGVmaW5lIE1NSU9fRChyZWcpICAgIE1N SU9fRihyZWcpCisjZGVmaW5lIE1NSU9fREgocmVnKSAgIE1NSU9fRihyZWcpCisjZGVmaW5lIE1N SU9fREZIKHJlZykgIE1NSU9fRihyZWcpCisjZGVmaW5lIE1NSU9fR00ocmVnKSAgIE1NSU9fRihy ZWcpCisjZGVmaW5lIE1NSU9fR01fUkRSKHJlZykgTU1JT19GKHJlZykKKyNkZWZpbmUgTU1JT19S TyhyZWcpICAgTU1JT19GKHJlZykKKworI2RlZmluZSBNTUlPX1JJTkdfRihwcmVmaXgpICBcCisJ TU1JT19GKHByZWZpeChSRU5ERVJfUklOR19CQVNFKSk7CQkgICBcCisJTU1JT19GKHByZWZpeChC TFRfUklOR19CQVNFKSk7CQkJICAgXAorCU1NSU9fRihwcmVmaXgoR0VONl9CU0RfUklOR19CQVNF KSk7CQkgICBcCisJTU1JT19GKHByZWZpeChWRUJPWF9SSU5HX0JBU0UpKTsJCSAgIFwKKwlNTUlP X0YocHJlZml4KEdFTjhfQlNEMl9SSU5HX0JBU0UpKQorCisjZGVmaW5lIE1NSU9fUklOR19EKHBy ZWZpeCkgTU1JT19SSU5HX0YocHJlZml4KQorI2RlZmluZSBNTUlPX1JJTkdfREZIKHByZWZpeCkg TU1JT19SSU5HX0YocHJlZml4KQorI2RlZmluZSBNTUlPX1JJTkdfR00ocHJlZml4KSAgTU1JT19S SU5HX0YocHJlZml4KQorI2RlZmluZSBNTUlPX1JJTkdfR01fUkRSKHByZWZpeCkgTU1JT19SSU5H X0YocHJlZml4KQorI2RlZmluZSBNTUlPX1JJTkdfUk8ocHJlZml4KSBNTUlPX1JJTkdfRihwcmVm aXgpCisKKy8qIEdWVCBhZGQtb24gcmVncyAqLworI2RlZmluZSBQQ0hfR1BJT19CQVNFCV9NTUlP KDB4YzUwMTApCisKKyNkZWZpbmUgUENIX0dNQlVTMAlfTU1JTygweGM1MTAwKQorI2RlZmluZSBQ Q0hfR01CVVMxCV9NTUlPKDB4YzUxMDQpCisjZGVmaW5lIFBDSF9HTUJVUzIJX01NSU8oMHhjNTEw OCkKKyNkZWZpbmUgUENIX0dNQlVTMwlfTU1JTygweGM1MTBjKQorI2RlZmluZSBQQ0hfR01CVVM0 CV9NTUlPKDB4YzUxMTApCisjZGVmaW5lIFBDSF9HTUJVUzUJX01NSU8oMHhjNTEyMCkKKyNkZWZp bmUgVFJWQVRUTDNQVFJEVyhpKQlfTU1JTygweDRkZTAgKyAoaSkgKiA0KQorI2RlZmluZSBUUk5V TExERVRDVAkJX01NSU8oMHg0ZGU4KQorI2RlZmluZSBUUklOVlRJTEVERVRDVAkJX01NSU8oMHg0 ZGVjKQorI2RlZmluZSBUUlZBRFIJCQlfTU1JTygweDRkZjApCisjZGVmaW5lIFRSVFRFCQkJX01N SU8oMHg0ZGY0KQorI2RlZmluZSBSSU5HX0VYQ0MoYmFzZSkJCV9NTUlPKChiYXNlKSArIDB4Mjgp CisjZGVmaW5lIFJJTkdfR0ZYX01PREUoYmFzZSkJX01NSU8oKGJhc2UpICsgMHgyOWMpCisjZGVm aW5lIFZGX0dVQVJEQkFORAkJX01NSU8oMHg4M2E0KQorCisjZGVmaW5lIFBDSF9QUF9TVEFUVVMg IF9NTUlPKDB4YzcyMDApCisjZGVmaW5lIFBDSF9QUF9DT05UUk9MIF9NTUlPKDB4YzcyMDQpCisj ZGVmaW5lIFBDSF9QUF9PTl9ERUxBWVMgX01NSU8oMHhjNzIwOCkKKyNkZWZpbmUgUENIX1BQX09G Rl9ERUxBWVMgX01NSU8oMHhjNzIwYykKKyNkZWZpbmUgUENIX1BQX0RJVklTT1IgX01NSU8oMHhj NzIxMCkgICAgIAorCisjZGVmaW5lIF9SRUdfNzAxQzAocGlwZSwgcGxhbmUpICgweDcwMWMwICsg cGlwZSAqIDB4MTAwMCArIChwbGFuZSAtIDEpICogMHgxMDApCisjZGVmaW5lIF9SRUdfNzAxQzQo cGlwZSwgcGxhbmUpICgweDcwMWM0ICsgcGlwZSAqIDB4MTAwMCArIChwbGFuZSAtIDEpICogMHgx MDApCisKK3N0YXRpYyB2b2lkCitpbml0X2dlbmVyYWxfcmFuZ2Uoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQoreworCU1NSU9fUihfTU1JTyhNQ0hCQVJfTUlSUk9SX0JBU0VfU05C KSwgMHg0MDAwMCk7CisJTU1JT19SKExHQ19QQUxFVFRFKFBJUEVfQSwgMCksIDEwMjQpOworCU1N SU9fUihMR0NfUEFMRVRURShQSVBFX0IsIDApLCAxMDI0KTsKKwlNTUlPX1IoTEdDX1BBTEVUVEUo UElQRV9DLCAwKSwgMTAyNCk7CisKKwlNTUlPX1IoX01NSU8oMHg2MDIyMCksIDB4MjApOworCU1N SU9fUihQQ0hfR01CVVMwLCAxNik7CisJTU1JT19SKFBDSF9HUElPX0JBU0UsIDI0KTsKKwlNTUlP X1IoX01NSU8oMHhlNGYwMCksIDB4MjgpOworCU1NSU9fUihfTU1JTyhfUENIX0RQQl9BVVhfQ0hf Q1RMKSwgNiAqIDQpOworCU1NSU9fUihfTU1JTyhfUENIX0RQQ19BVVhfQ0hfQ1RMKSwgNiAqIDQp OworCU1NSU9fUihfTU1JTyhfUENIX0RQRF9BVVhfQ0hfQ1RMKSwgNiAqIDQpOworCU1NSU9fUihQ UkVDX1BBTF9HQ19NQVgoUElQRV9BLCAwKSwgNCAqIDMpOworCU1NSU9fUihQUkVDX1BBTF9HQ19N QVgoUElQRV9CLCAwKSwgNCAqIDMpOworCU1NSU9fUihQUkVDX1BBTF9HQ19NQVgoUElQRV9DLCAw KSwgNCAqIDMpOworCU1NSU9fUihfTU1JTygweDcwNDAwKSwgMHg0MCk7CisJTU1JT19SKF9NTUlP KDB4NzE0MDApLCAweDQwKTsKKwlNTUlPX1IoX01NSU8oMHg3MjQwMCksIDB4NDApOworCU1NSU9f UihfTU1JTygweDcwNDQwKSwgMHhjKTsKKwlNTUlPX1IoX01NSU8oMHg3MTQ0MCksIDB4Yyk7CisJ TU1JT19SKF9NTUlPKDB4NzI0NDApLCAweGMpOworCU1NSU9fUihfTU1JTygweDcwNDRjKSwgMHhj KTsKKwlNTUlPX1IoX01NSU8oMHg3MTQ0YyksIDB4Yyk7CisJTU1JT19SKF9NTUlPKDB4NzI0NGMp LCAweGMpOworCisJTU1JT19SKF9NTUlPKDB4NDkwOTApLCAweDE0KTsKKwlNTUlPX1IoX01NSU8o MHg0OTE5MCksIDB4MTQpOworCU1NSU9fUihfTU1JTygweDQ5MjkwKSwgMHgxNCk7CisKKwlNTUlP X1IoX01NSU8oX0RQQV9BVVhfQ0hfQ1RMKSwgNiAqIDQpOworCisJTU1JT19SKF9NTUlPKF9ERElf QlVGX1RSQU5TX0EpLCAweDUwKTsKKwlNTUlPX1IoX01NSU8oMHg2NGU2MCksIDB4NTApOworCU1N SU9fUihfTU1JTygweDY0ZUMwKSwgMHg1MCk7CisJTU1JT19SKF9NTUlPKDB4NjRmMjApLCAweDUw KTsKKwlNTUlPX1IoX01NSU8oMHg2NGY4MCksIDB4NTApOworCisJTU1JT19SKEZFTkNFX1JFR19H RU42X0xPKDApLCAweDgwKTsKKwlNTUlPX1IoX01NSU8oMHg0ZjAwMCksIDB4OTApOworCU1NSU9f UihfTU1JTygweDIyOTApLCA4KTsKKwlNTUlPX1IoX01NSU8oMHg1MjAwKSwgMzIpOworCU1NSU9f UihfTU1JTygweDUyNDApLCAzMik7CisJTU1JT19SKF9NTUlPKDB4NTI4MCksIDE2KTsKKwlNTUlP X1IoSFNfSU5WT0NBVElPTl9DT1VOVCwgOCk7CisJTU1JT19SKERTX0lOVk9DQVRJT05fQ09VTlQs IDgpOworCU1NSU9fUihJQV9WRVJUSUNFU19DT1VOVCwgOCk7CisJTU1JT19SKElBX1BSSU1JVElW RVNfQ09VTlQsIDgpOworCU1NSU9fUihWU19JTlZPQ0FUSU9OX0NPVU5ULCA4KTsKKwlNTUlPX1Io R1NfSU5WT0NBVElPTl9DT1VOVCwgOCk7CisJTU1JT19SKEdTX1BSSU1JVElWRVNfQ09VTlQsIDgp OworCU1NSU9fUihDTF9JTlZPQ0FUSU9OX0NPVU5ULCA4KTsKKwlNTUlPX1IoQ0xfUFJJTUlUSVZF U19DT1VOVCwgOCk7CisJTU1JT19SKFBTX0lOVk9DQVRJT05fQ09VTlQsIDgpOworCU1NSU9fUihQ U19ERVBUSF9DT1VOVCwgOCk7Cit9CisKK3N0YXRpYyB2b2lkIGluaXRfYmR3X3JhbmdlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlNTUlPX1IoX01NSU8oUkVOREVSX1JJ TkdfQkFTRSArIDB4MjM0KSwgOCk7CisJTU1JT19SKF9NTUlPKEJMVF9SSU5HX0JBU0UgKyAweDIz NCksIDgpOworCU1NSU9fUihfTU1JTyhHRU42X0JTRF9SSU5HX0JBU0UgKyAweDIzNCksIDgpOwor CU1NSU9fUihfTU1JTyhWRUJPWF9SSU5HX0JBU0UgKyAweDIzNCksIDgpOworCU1NSU9fUihfTU1J TyhHRU44X0JTRDJfUklOR19CQVNFICsgMHgyMzQpLCA4KTsKKworCU1NSU9fUiggX01NSU8oUkVO REVSX1JJTkdfQkFTRSArIDB4MzcwKSwgNDgpOworCU1NSU9fUihfTU1JTyhCTFRfUklOR19CQVNF ICsgMHgzNzApLCA0OCk7CisJTU1JT19SKF9NTUlPKEdFTjZfQlNEX1JJTkdfQkFTRSArIDB4Mzcw KSwgNDgpOworCU1NSU9fUihfTU1JTyhWRUJPWF9SSU5HX0JBU0UgKyAweDM3MCksIDQ4KTsKKwlN TUlPX1IoX01NSU8oR0VOOF9CU0QyX1JJTkdfQkFTRSArIDB4MzcwKSwgNDgpOworCisJTU1JT19S KF9NTUlPKFJFTkRFUl9SSU5HX0JBU0UgKyAweDI3MCksIDMyKTsKKwlNTUlPX1IoX01NSU8oQkxU X1JJTkdfQkFTRSArIDB4MjcwKSwgMzIpOworCU1NSU9fUihfTU1JTyhHRU42X0JTRF9SSU5HX0JB U0UgKyAweDI3MCksIDMyKTsKKwlNTUlPX1IoX01NSU8oVkVCT1hfUklOR19CQVNFICsgMHgyNzAp LCAzMik7CisJTU1JT19SKF9NTUlPKEdFTjhfQlNEMl9SSU5HX0JBU0UgKyAweDI3MCksIDMyKTsK KworCU1NSU9fUihfTU1JTygweDI0ZDApLCA0OCk7Cit9CisKK3N0YXRpYyB2b2lkIGluaXRfc2ts X3JhbmdlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlNTUlPX1IoX01N SU8oQ1NSX01NSU9fU1RBUlRfUkFOR0UpLCAweDMwMDApOworCisJTU1JT19SKF9NTUlPKF9EUEJf QVVYX0NIX0NUTCksIDYgKiA0KTsKKwlNTUlPX1IoX01NSU8oX0RQQ19BVVhfQ0hfQ1RMKSwgNiAq IDQpOworCU1NSU9fUihfTU1JTyhfRFBEX0FVWF9DSF9DVEwpLCA2ICogNCk7CisKKwlNTUlPX1Io UExBTkVfV00oUElQRV9BLCAwLCAwKSwgNCAqIDgpOworCU1NSU9fUihQTEFORV9XTShQSVBFX0Es IDEsIDApLCA0ICogOCk7CisJTU1JT19SKFBMQU5FX1dNKFBJUEVfQSwgMiwgMCksIDQgKiA4KTsK KworCU1NSU9fUihQTEFORV9XTShQSVBFX0IsIDAsIDApLCA0ICogOCk7CisJTU1JT19SKFBMQU5F X1dNKFBJUEVfQiwgMSwgMCksIDQgKiA4KTsKKwlNTUlPX1IoUExBTkVfV00oUElQRV9CLCAyLCAw KSwgNCAqIDgpOworCisJTU1JT19SKFBMQU5FX1dNKFBJUEVfQywgMCwgMCksIDQgKiA4KTsKKwlN TUlPX1IoUExBTkVfV00oUElQRV9DLCAxLCAwKSwgNCAqIDgpOworCU1NSU9fUihQTEFORV9XTShQ SVBFX0MsIDIsIDApLCA0ICogOCk7CisKKwlNTUlPX1IoQ1VSX1dNKFBJUEVfQSwgMCksIDQgKiA4 KTsKKwlNTUlPX1IoQ1VSX1dNKFBJUEVfQiwgMCksIDQgKiA4KTsKKwlNTUlPX1IoQ1VSX1dNKFBJ UEVfQywgMCksIDQgKiA4KTsKKworCU1NSU9fUihfTU1JTygweGM4MDApLCAweDdmOCk7CisJTU1J T19SKF9NTUlPKDB4YjAyMCksIDB4ODApOworfQorCitzdGF0aWMgdm9pZCBpbml0X2J4dF9yYW5n ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJTU1JT19SKF9NTUlPKDB4 ODAwMDApLCAweDMwMDApOworCU1NSU9fUihTT0ZUX1NDUkFUQ0goMCksIDE2ICogNCk7Cit9CisK K3N0YXRpYyB2b2lkIGluaXRfZ2VuZXJhbF9tbWlvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKK3sKKwlNTUlPX1JJTkdfREZIKFJJTkdfSU1SKTsKKworCU1NSU9fREZIKFNERUlN Uik7CisJTU1JT19ERkgoU0RFSUVSKTsKKwlNTUlPX0RGSChTREVJSVIpOworCU1NSU9fRChTREVJ U1IpOworCisJTU1JT19SSU5HX0RGSChSSU5HX0hXU1RBTSk7CisKKwlNTUlPX0RIKEdFTjhfR0FN V19FQ09fREVWX1JXX0lBKTsKKwlNTUlPX0dNX1JEUihCU0RfSFdTX1BHQV9HRU43KTsKKwlNTUlP X0dNX1JEUihCTFRfSFdTX1BHQV9HRU43KTsKKwlNTUlPX0dNX1JEUihWRUJPWF9IV1NfUEdBX0dF TjcpOworCisjZGVmaW5lIFJJTkdfUkVHKGJhc2UpIF9NTUlPKChiYXNlKSArIDB4MjgpCisJTU1J T19SSU5HX0RGSChSSU5HX1JFRyk7CisjdW5kZWYgUklOR19SRUcKKworI2RlZmluZSBSSU5HX1JF RyhiYXNlKSBfTU1JTygoYmFzZSkgKyAweDEzNCkKKwlNTUlPX1JJTkdfREZIKFJJTkdfUkVHKTsK KyN1bmRlZiBSSU5HX1JFRworCisjZGVmaW5lIFJJTkdfUkVHKGJhc2UpIF9NTUlPKChiYXNlKSAr IDB4NmMpCisJTU1JT19SSU5HX0RGSChSSU5HX1JFRyk7CisjdW5kZWYgUklOR19SRUcKKwlNTUlP X0RIKEdFTjdfU0NfSU5TVERPTkUpOworCisJTU1JT19HTV9SRFIoX01NSU8oMHgyMTQ4KSk7CisJ TU1JT19HTV9SRFIoQ0NJRCk7CisJTU1JT19HTV9SRFIoX01NSU8oMHgxMjE5OCkpOworCU1NSU9f RChHRU43X0NYVF9TSVpFKTsKKworCU1NSU9fUklOR19ERkgoUklOR19UQUlMKTsKKwlNTUlPX1JJ TkdfREZIKFJJTkdfSEVBRCk7CisJTU1JT19SSU5HX0RGSChSSU5HX0NUTCk7CisJTU1JT19SSU5H X0RGSChSSU5HX0FDVEhEKTsKKwlNTUlPX1JJTkdfR01fUkRSKFJJTkdfU1RBUlQpOworCisJLyog UklORyBNT0RFICovCisjZGVmaW5lIFJJTkdfUkVHKGJhc2UpIF9NTUlPKChiYXNlKSArIDB4Mjlj KQorCU1NSU9fUklOR19ERkgoUklOR19SRUcpOworI3VuZGVmIFJJTkdfUkVHCisKKwlNTUlPX1JJ TkdfREZIKFJJTkdfTUlfTU9ERSk7CisJTU1JT19SSU5HX0RGSChSSU5HX0lOU1RQTSk7CisJTU1J T19SSU5HX0RGSChSSU5HX1RJTUVTVEFNUCk7CisJTU1JT19SSU5HX0RGSChSSU5HX1RJTUVTVEFN UF9VRFcpOworCU1NSU9fREZIKEdFTjdfR1RfTU9ERSk7CisJTU1JT19ERkgoQ0FDSEVfTU9ERV8w X0dFTjcpOworCU1NSU9fREZIKENBQ0hFX01PREVfMSk7CisJTU1JT19ERkgoQ0FDSEVfTU9ERV8w KTsKKwlNTUlPX0RGSChfTU1JTygweDIxMjQpKTsKKworCU1NSU9fREZIKF9NTUlPKDB4MjBkYykp OworCU1NSU9fREZIKF8zRF9DSElDS0VOMyk7CisJTU1JT19ERkgoX01NSU8oMHgyMDg4KSk7CisJ TU1JT19ERkgoX01NSU8oMHgyMGU0KSk7CisJTU1JT19ERkgoX01NSU8oMHgyNDcwKSk7CisJTU1J T19ERkgoR0FNX0VDT0NISyk7CisJTU1JT19ERkgoR0VON19DT01NT05fU0xJQ0VfQ0hJQ0tFTjEp OworCU1NSU9fREZIKENPTU1PTl9TTElDRV9DSElDS0VOMik7CisJTU1JT19ERkgoX01NSU8oMHg5 MDMwKSk7CisJTU1JT19ERkgoX01NSU8oMHgyMGEwKSk7CisJTU1JT19ERkgoX01NSU8oMHgyNDIw KSk7CisJTU1JT19ERkgoX01NSU8oMHgyNDMwKSk7CisJTU1JT19ERkgoX01NSU8oMHgyNDM0KSk7 CisJTU1JT19ERkgoX01NSU8oMHgyNDM4KSk7CisJTU1JT19ERkgoX01NSU8oMHgyNDNjKSk7CisJ TU1JT19ERkgoX01NSU8oMHg3MDE4KSk7CisJTU1JT19ERkgoSEFMRl9TTElDRV9DSElDS0VOMyk7 CisJTU1JT19ERkgoR0VON19IQUxGX1NMSUNFX0NISUNLRU4xKTsKKworCS8qIGRpc3BsYXkgKi8K KwlNTUlPX0QoX01NSU8oMHg2MDJhMCkpOworCisJTU1JT19EKF9NTUlPKDB4NjUwNTApKTsKKwlN TUlPX0QoX01NSU8oMHg2NTBiNCkpOworCisJTU1JT19EKF9NTUlPKDB4YzQwNDApKTsKKwlNTUlP X0QoREVSUk1SKTsKKworCU1NSU9fRChQSVBFRFNMKFBJUEVfQSkpOworCU1NSU9fRChQSVBFRFNM KFBJUEVfQikpOworCU1NSU9fRChQSVBFRFNMKFBJUEVfQykpOworCU1NSU9fRChQSVBFRFNMKF9Q SVBFX0VEUCkpOworCisJTU1JT19ESChQSVBFQ09ORihQSVBFX0EpKTsKKwlNTUlPX0RIKFBJUEVD T05GKFBJUEVfQikpOworCU1NSU9fREgoUElQRUNPTkYoUElQRV9DKSk7CisJTU1JT19ESChQSVBF Q09ORihfUElQRV9FRFApKTsKKworCU1NSU9fRChQSVBFU1RBVChQSVBFX0EpKTsKKwlNTUlPX0Qo UElQRVNUQVQoUElQRV9CKSk7CisJTU1JT19EKFBJUEVTVEFUKFBJUEVfQykpOworCU1NSU9fRChQ SVBFU1RBVChfUElQRV9FRFApKTsKKworCU1NSU9fRChQSVBFX0ZMSVBDT1VOVF9HNFgoUElQRV9B KSk7CisJTU1JT19EKFBJUEVfRkxJUENPVU5UX0c0WChQSVBFX0IpKTsKKwlNTUlPX0QoUElQRV9G TElQQ09VTlRfRzRYKFBJUEVfQykpOworCU1NSU9fRChQSVBFX0ZMSVBDT1VOVF9HNFgoX1BJUEVf RURQKSk7CisKKwlNTUlPX0QoUElQRV9GUk1DT1VOVF9HNFgoUElQRV9BKSk7CisJTU1JT19EKFBJ UEVfRlJNQ09VTlRfRzRYKFBJUEVfQikpOworCU1NSU9fRChQSVBFX0ZSTUNPVU5UX0c0WChQSVBF X0MpKTsKKwlNTUlPX0QoUElQRV9GUk1DT1VOVF9HNFgoX1BJUEVfRURQKSk7CisKKwlNTUlPX0Qo Q1VSQ05UUihQSVBFX0EpKTsKKwlNTUlPX0QoQ1VSQ05UUihQSVBFX0IpKTsKKwlNTUlPX0QoQ1VS Q05UUihQSVBFX0MpKTsKKworCU1NSU9fRChDVVJQT1MoUElQRV9BKSk7CisJTU1JT19EKENVUlBP UyhQSVBFX0IpKTsKKwlNTUlPX0QoQ1VSUE9TKFBJUEVfQykpOworCisJTU1JT19EKENVUkJBU0Uo UElQRV9BKSk7CisJTU1JT19EKENVUkJBU0UoUElQRV9CKSk7CisJTU1JT19EKENVUkJBU0UoUElQ RV9DKSk7CisKKwlNTUlPX0QoQ1VSX0ZCQ19DVEwoUElQRV9BKSk7CisJTU1JT19EKENVUl9GQkNf Q1RMKFBJUEVfQikpOworCU1NSU9fRChDVVJfRkJDX0NUTChQSVBFX0MpKTsKKworCU1NSU9fRChf TU1JTygweDcwMGFjKSk7CisJTU1JT19EKF9NTUlPKDB4NzEwYWMpKTsKKwlNTUlPX0QoX01NSU8o MHg3MjBhYykpOworCisJTU1JT19EKF9NTUlPKDB4NzAwOTApKTsKKwlNTUlPX0QoX01NSU8oMHg3 MDA5NCkpOworCU1NSU9fRChfTU1JTygweDcwMDk4KSk7CisJTU1JT19EKF9NTUlPKDB4NzAwOWMp KTsKKworCU1NSU9fRChEU1BDTlRSKFBJUEVfQSkpOworCU1NSU9fRChEU1BBRERSKFBJUEVfQSkp OworCU1NSU9fRChEU1BTVFJJREUoUElQRV9BKSk7CisJTU1JT19EKERTUFBPUyhQSVBFX0EpKTsK KwlNTUlPX0QoRFNQU0laRShQSVBFX0EpKTsKKwlNTUlPX0RIKERTUFNVUkYoUElQRV9BKSk7CisJ TU1JT19EKERTUE9GRlNFVChQSVBFX0EpKTsKKwlNTUlPX0QoRFNQU1VSRkxJVkUoUElQRV9BKSk7 CisKKwlNTUlPX0QoRFNQQ05UUihQSVBFX0IpKTsKKwlNTUlPX0QoRFNQQUREUihQSVBFX0IpKTsK KwlNTUlPX0QoRFNQU1RSSURFKFBJUEVfQikpOworCU1NSU9fRChEU1BQT1MoUElQRV9CKSk7CisJ TU1JT19EKERTUFNJWkUoUElQRV9CKSk7CisJTU1JT19ESChEU1BTVVJGKFBJUEVfQikpOworCU1N SU9fRChEU1BPRkZTRVQoUElQRV9CKSk7CisJTU1JT19EKERTUFNVUkZMSVZFKFBJUEVfQikpOwor CisJTU1JT19EKERTUENOVFIoUElQRV9DKSk7CisJTU1JT19EKERTUEFERFIoUElQRV9DKSk7CisJ TU1JT19EKERTUFNUUklERShQSVBFX0MpKTsKKwlNTUlPX0QoRFNQUE9TKFBJUEVfQykpOworCU1N SU9fRChEU1BTSVpFKFBJUEVfQykpOworCU1NSU9fREgoRFNQU1VSRihQSVBFX0MpKTsKKwlNTUlP X0QoRFNQT0ZGU0VUKFBJUEVfQykpOworCU1NSU9fRChEU1BTVVJGTElWRShQSVBFX0MpKTsKKwor CU1NSU9fRChTUFJDVEwoUElQRV9BKSk7CisJTU1JT19EKFNQUkxJTk9GRihQSVBFX0EpKTsKKwlN TUlPX0QoU1BSU1RSSURFKFBJUEVfQSkpOworCU1NSU9fRChTUFJQT1MoUElQRV9BKSk7CisJTU1J T19EKFNQUlNJWkUoUElQRV9BKSk7CisJTU1JT19EKFNQUktFWVZBTChQSVBFX0EpKTsKKwlNTUlP X0QoU1BSS0VZTVNLKFBJUEVfQSkpOworCU1NSU9fREgoU1BSU1VSRihQSVBFX0EpKTsKKwlNTUlP X0QoU1BSS0VZTUFYKFBJUEVfQSkpOworCU1NSU9fRChTUFJPRkZTRVQoUElQRV9BKSk7CisJTU1J T19EKFNQUlNDQUxFKFBJUEVfQSkpOworCU1NSU9fRChTUFJTVVJGTElWRShQSVBFX0EpKTsKKwor CU1NSU9fRChTUFJDVEwoUElQRV9CKSk7CisJTU1JT19EKFNQUkxJTk9GRihQSVBFX0IpKTsKKwlN TUlPX0QoU1BSU1RSSURFKFBJUEVfQikpOworCU1NSU9fRChTUFJQT1MoUElQRV9CKSk7CisJTU1J T19EKFNQUlNJWkUoUElQRV9CKSk7CisJTU1JT19EKFNQUktFWVZBTChQSVBFX0IpKTsKKwlNTUlP X0QoU1BSS0VZTVNLKFBJUEVfQikpOworCU1NSU9fREgoU1BSU1VSRihQSVBFX0IpKTsKKwlNTUlP X0QoU1BSS0VZTUFYKFBJUEVfQikpOworCU1NSU9fRChTUFJPRkZTRVQoUElQRV9CKSk7CisJTU1J T19EKFNQUlNDQUxFKFBJUEVfQikpOworCU1NSU9fRChTUFJTVVJGTElWRShQSVBFX0IpKTsKKwor CU1NSU9fRChTUFJDVEwoUElQRV9DKSk7CisJTU1JT19EKFNQUkxJTk9GRihQSVBFX0MpKTsKKwlN TUlPX0QoU1BSU1RSSURFKFBJUEVfQykpOworCU1NSU9fRChTUFJQT1MoUElQRV9DKSk7CisJTU1J T19EKFNQUlNJWkUoUElQRV9DKSk7CisJTU1JT19EKFNQUktFWVZBTChQSVBFX0MpKTsKKwlNTUlP X0QoU1BSS0VZTVNLKFBJUEVfQykpOworCU1NSU9fREgoU1BSU1VSRihQSVBFX0MpKTsKKwlNTUlP X0QoU1BSS0VZTUFYKFBJUEVfQykpOworCU1NSU9fRChTUFJPRkZTRVQoUElQRV9DKSk7CisJTU1J T19EKFNQUlNDQUxFKFBJUEVfQykpOworCU1NSU9fRChTUFJTVVJGTElWRShQSVBFX0MpKTsKKwor CU1NSU9fRChIVE9UQUwoVFJBTlNDT0RFUl9BKSk7CisJTU1JT19EKEhCTEFOSyhUUkFOU0NPREVS X0EpKTsKKwlNTUlPX0QoSFNZTkMoVFJBTlNDT0RFUl9BKSk7CisJTU1JT19EKFZUT1RBTChUUkFO U0NPREVSX0EpKTsKKwlNTUlPX0QoVkJMQU5LKFRSQU5TQ09ERVJfQSkpOworCU1NSU9fRChWU1lO QyhUUkFOU0NPREVSX0EpKTsKKwlNTUlPX0QoQkNMUlBBVChUUkFOU0NPREVSX0EpKTsKKwlNTUlP X0QoVlNZTkNTSElGVChUUkFOU0NPREVSX0EpKTsKKwlNTUlPX0QoUElQRVNSQyhUUkFOU0NPREVS X0EpKTsKKworCU1NSU9fRChIVE9UQUwoVFJBTlNDT0RFUl9CKSk7CisJTU1JT19EKEhCTEFOSyhU UkFOU0NPREVSX0IpKTsKKwlNTUlPX0QoSFNZTkMoVFJBTlNDT0RFUl9CKSk7CisJTU1JT19EKFZU T1RBTChUUkFOU0NPREVSX0IpKTsKKwlNTUlPX0QoVkJMQU5LKFRSQU5TQ09ERVJfQikpOworCU1N SU9fRChWU1lOQyhUUkFOU0NPREVSX0IpKTsKKwlNTUlPX0QoQkNMUlBBVChUUkFOU0NPREVSX0Ip KTsKKwlNTUlPX0QoVlNZTkNTSElGVChUUkFOU0NPREVSX0IpKTsKKwlNTUlPX0QoUElQRVNSQyhU UkFOU0NPREVSX0IpKTsKKworCU1NSU9fRChIVE9UQUwoVFJBTlNDT0RFUl9DKSk7CisJTU1JT19E KEhCTEFOSyhUUkFOU0NPREVSX0MpKTsKKwlNTUlPX0QoSFNZTkMoVFJBTlNDT0RFUl9DKSk7CisJ TU1JT19EKFZUT1RBTChUUkFOU0NPREVSX0MpKTsKKwlNTUlPX0QoVkJMQU5LKFRSQU5TQ09ERVJf QykpOworCU1NSU9fRChWU1lOQyhUUkFOU0NPREVSX0MpKTsKKwlNTUlPX0QoQkNMUlBBVChUUkFO U0NPREVSX0MpKTsKKwlNTUlPX0QoVlNZTkNTSElGVChUUkFOU0NPREVSX0MpKTsKKwlNTUlPX0Qo UElQRVNSQyhUUkFOU0NPREVSX0MpKTsKKworCU1NSU9fRChIVE9UQUwoVFJBTlNDT0RFUl9FRFAp KTsKKwlNTUlPX0QoSEJMQU5LKFRSQU5TQ09ERVJfRURQKSk7CisJTU1JT19EKEhTWU5DKFRSQU5T Q09ERVJfRURQKSk7CisJTU1JT19EKFZUT1RBTChUUkFOU0NPREVSX0VEUCkpOworCU1NSU9fRChW QkxBTksoVFJBTlNDT0RFUl9FRFApKTsKKwlNTUlPX0QoVlNZTkMoVFJBTlNDT0RFUl9FRFApKTsK KwlNTUlPX0QoQkNMUlBBVChUUkFOU0NPREVSX0VEUCkpOworCU1NSU9fRChWU1lOQ1NISUZUKFRS QU5TQ09ERVJfRURQKSk7CisKKwlNTUlPX0QoUElQRV9EQVRBX00xKFRSQU5TQ09ERVJfQSkpOwor CU1NSU9fRChQSVBFX0RBVEFfTjEoVFJBTlNDT0RFUl9BKSk7CisJTU1JT19EKFBJUEVfREFUQV9N MihUUkFOU0NPREVSX0EpKTsKKwlNTUlPX0QoUElQRV9EQVRBX04yKFRSQU5TQ09ERVJfQSkpOwor CU1NSU9fRChQSVBFX0xJTktfTTEoVFJBTlNDT0RFUl9BKSk7CisJTU1JT19EKFBJUEVfTElOS19O MShUUkFOU0NPREVSX0EpKTsKKwlNTUlPX0QoUElQRV9MSU5LX00yKFRSQU5TQ09ERVJfQSkpOwor CU1NSU9fRChQSVBFX0xJTktfTjIoVFJBTlNDT0RFUl9BKSk7CisKKwlNTUlPX0QoUElQRV9EQVRB X00xKFRSQU5TQ09ERVJfQikpOworCU1NSU9fRChQSVBFX0RBVEFfTjEoVFJBTlNDT0RFUl9CKSk7 CisJTU1JT19EKFBJUEVfREFUQV9NMihUUkFOU0NPREVSX0IpKTsKKwlNTUlPX0QoUElQRV9EQVRB X04yKFRSQU5TQ09ERVJfQikpOworCU1NSU9fRChQSVBFX0xJTktfTTEoVFJBTlNDT0RFUl9CKSk7 CisJTU1JT19EKFBJUEVfTElOS19OMShUUkFOU0NPREVSX0IpKTsKKwlNTUlPX0QoUElQRV9MSU5L X00yKFRSQU5TQ09ERVJfQikpOworCU1NSU9fRChQSVBFX0xJTktfTjIoVFJBTlNDT0RFUl9CKSk7 CisKKwlNTUlPX0QoUElQRV9EQVRBX00xKFRSQU5TQ09ERVJfQykpOworCU1NSU9fRChQSVBFX0RB VEFfTjEoVFJBTlNDT0RFUl9DKSk7CisJTU1JT19EKFBJUEVfREFUQV9NMihUUkFOU0NPREVSX0Mp KTsKKwlNTUlPX0QoUElQRV9EQVRBX04yKFRSQU5TQ09ERVJfQykpOworCU1NSU9fRChQSVBFX0xJ TktfTTEoVFJBTlNDT0RFUl9DKSk7CisJTU1JT19EKFBJUEVfTElOS19OMShUUkFOU0NPREVSX0Mp KTsKKwlNTUlPX0QoUElQRV9MSU5LX00yKFRSQU5TQ09ERVJfQykpOworCU1NSU9fRChQSVBFX0xJ TktfTjIoVFJBTlNDT0RFUl9DKSk7CisKKwlNTUlPX0QoUElQRV9EQVRBX00xKFRSQU5TQ09ERVJf RURQKSk7CisJTU1JT19EKFBJUEVfREFUQV9OMShUUkFOU0NPREVSX0VEUCkpOworCU1NSU9fRChQ SVBFX0RBVEFfTTIoVFJBTlNDT0RFUl9FRFApKTsKKwlNTUlPX0QoUElQRV9EQVRBX04yKFRSQU5T Q09ERVJfRURQKSk7CisJTU1JT19EKFBJUEVfTElOS19NMShUUkFOU0NPREVSX0VEUCkpOworCU1N SU9fRChQSVBFX0xJTktfTjEoVFJBTlNDT0RFUl9FRFApKTsKKwlNTUlPX0QoUElQRV9MSU5LX00y KFRSQU5TQ09ERVJfRURQKSk7CisJTU1JT19EKFBJUEVfTElOS19OMihUUkFOU0NPREVSX0VEUCkp OworCisJTU1JT19EKFBGX0NUTChQSVBFX0EpKTsKKwlNTUlPX0QoUEZfV0lOX1NaKFBJUEVfQSkp OworCU1NSU9fRChQRl9XSU5fUE9TKFBJUEVfQSkpOworCU1NSU9fRChQRl9WU0NBTEUoUElQRV9B KSk7CisJTU1JT19EKFBGX0hTQ0FMRShQSVBFX0EpKTsKKworCU1NSU9fRChQRl9DVEwoUElQRV9C KSk7CisJTU1JT19EKFBGX1dJTl9TWihQSVBFX0IpKTsKKwlNTUlPX0QoUEZfV0lOX1BPUyhQSVBF X0IpKTsKKwlNTUlPX0QoUEZfVlNDQUxFKFBJUEVfQikpOworCU1NSU9fRChQRl9IU0NBTEUoUElQ RV9CKSk7CisKKwlNTUlPX0QoUEZfQ1RMKFBJUEVfQykpOworCU1NSU9fRChQRl9XSU5fU1ooUElQ RV9DKSk7CisJTU1JT19EKFBGX1dJTl9QT1MoUElQRV9DKSk7CisJTU1JT19EKFBGX1ZTQ0FMRShQ SVBFX0MpKTsKKwlNTUlPX0QoUEZfSFNDQUxFKFBJUEVfQykpOworCisJTU1JT19EKFdNMF9QSVBF QV9JTEspOworCU1NSU9fRChXTTBfUElQRUJfSUxLKTsKKwlNTUlPX0QoV00wX1BJUEVDX0lWQik7 CisJTU1JT19EKFdNMV9MUF9JTEspOworCU1NSU9fRChXTTJfTFBfSUxLKTsKKwlNTUlPX0QoV00z X0xQX0lMSyk7CisJTU1JT19EKFdNMVNfTFBfSUxLKTsKKwlNTUlPX0QoV00yU19MUF9JVkIpOwor CU1NSU9fRChXTTNTX0xQX0lWQik7CisKKwlNTUlPX0QoQkxDX1BXTV9DUFVfQ1RMMik7CisJTU1J T19EKEJMQ19QV01fQ1BVX0NUTCk7CisJTU1JT19EKEJMQ19QV01fUENIX0NUTDEpOworCU1NSU9f RChCTENfUFdNX1BDSF9DVEwyKTsKKworCU1NSU9fRChfTU1JTygweDQ4MjY4KSk7CisKKwlNTUlP X0RIKFBDSF9BRFBBKTsKKworCU1NSU9fREgoX01NSU8oX1BDSF9UUkFOU0FDT05GKSk7CisJTU1J T19ESChfTU1JTyhfUENIX1RSQU5TQkNPTkYpKTsKKworCU1NSU9fREgoRkRJX1JYX0lJUihQSVBF X0EpKTsKKwlNTUlPX0RIKEZESV9SWF9JSVIoUElQRV9CKSk7CisJTU1JT19ESChGRElfUlhfSUlS KFBJUEVfQykpOworCU1NSU9fREgoRkRJX1JYX0lNUihQSVBFX0EpKTsKKwlNTUlPX0RIKEZESV9S WF9JTVIoUElQRV9CKSk7CisJTU1JT19ESChGRElfUlhfSU1SKFBJUEVfQykpOworCU1NSU9fREgo RkRJX1JYX0NUTChQSVBFX0EpKTsKKwlNTUlPX0RIKEZESV9SWF9DVEwoUElQRV9CKSk7CisJTU1J T19ESChGRElfUlhfQ1RMKFBJUEVfQykpOworCisJTU1JT19EKF9NTUlPKF9QQ0hfVFJBTlNfSFRP VEFMX0EpKTsKKwlNTUlPX0QoX01NSU8oX1BDSF9UUkFOU19IQkxBTktfQSkpOworCU1NSU9fRChf TU1JTyhfUENIX1RSQU5TX0hTWU5DX0EpKTsKKwlNTUlPX0QoX01NSU8oX1BDSF9UUkFOU19WVE9U QUxfQSkpOworCU1NSU9fRChfTU1JTyhfUENIX1RSQU5TX1ZCTEFOS19BKSk7CisJTU1JT19EKF9N TUlPKF9QQ0hfVFJBTlNfVlNZTkNfQSkpOworCU1NSU9fRChfTU1JTyhfUENIX1RSQU5TX1ZTWU5D U0hJRlRfQSkpOworCisJTU1JT19EKF9NTUlPKF9QQ0hfVFJBTlNfSFRPVEFMX0IpKTsKKwlNTUlP X0QoX01NSU8oX1BDSF9UUkFOU19IQkxBTktfQikpOworCU1NSU9fRChfTU1JTyhfUENIX1RSQU5T X0hTWU5DX0IpKTsKKwlNTUlPX0QoX01NSU8oX1BDSF9UUkFOU19WVE9UQUxfQikpOworCU1NSU9f RChfTU1JTyhfUENIX1RSQU5TX1ZCTEFOS19CKSk7CisJTU1JT19EKF9NTUlPKF9QQ0hfVFJBTlNf VlNZTkNfQikpOworCU1NSU9fRChfTU1JTyhfUENIX1RSQU5TX1ZTWU5DU0hJRlRfQikpOworCisJ TU1JT19EKF9NTUlPKF9QQ0hfVFJBTlNBX0RBVEFfTTEpKTsKKwlNTUlPX0QoX01NSU8oX1BDSF9U UkFOU0FfREFUQV9OMSkpOworCU1NSU9fRChfTU1JTyhfUENIX1RSQU5TQV9EQVRBX00yKSk7CisJ TU1JT19EKF9NTUlPKF9QQ0hfVFJBTlNBX0RBVEFfTjIpKTsKKwlNTUlPX0QoX01NSU8oX1BDSF9U UkFOU0FfTElOS19NMSkpOworCU1NSU9fRChfTU1JTyhfUENIX1RSQU5TQV9MSU5LX04xKSk7CisJ TU1JT19EKF9NTUlPKF9QQ0hfVFJBTlNBX0xJTktfTTIpKTsKKwlNTUlPX0QoX01NSU8oX1BDSF9U UkFOU0FfTElOS19OMikpOworCisJTU1JT19EKFRSQU5TX0RQX0NUTChQSVBFX0EpKTsKKwlNTUlP X0QoVFJBTlNfRFBfQ1RMKFBJUEVfQikpOworCU1NSU9fRChUUkFOU19EUF9DVEwoUElQRV9DKSk7 CisKKwlNTUlPX0QoVFZJREVPX0RJUF9DVEwoUElQRV9BKSk7CisJTU1JT19EKFRWSURFT19ESVBf REFUQShQSVBFX0EpKTsKKwlNTUlPX0QoVFZJREVPX0RJUF9HQ1AoUElQRV9BKSk7CisKKwlNTUlP X0QoVFZJREVPX0RJUF9DVEwoUElQRV9CKSk7CisJTU1JT19EKFRWSURFT19ESVBfREFUQShQSVBF X0IpKTsKKwlNTUlPX0QoVFZJREVPX0RJUF9HQ1AoUElQRV9CKSk7CisKKwlNTUlPX0QoVFZJREVP X0RJUF9DVEwoUElQRV9DKSk7CisJTU1JT19EKFRWSURFT19ESVBfREFUQShQSVBFX0MpKTsKKwlN TUlPX0QoVFZJREVPX0RJUF9HQ1AoUElQRV9DKSk7CisKKwlNTUlPX0QoX01NSU8oX0ZESV9SWEFf TUlTQykpOworCU1NSU9fRChfTU1JTyhfRkRJX1JYQl9NSVNDKSk7CisJTU1JT19EKF9NTUlPKF9G RElfUlhBX1RVU0laRTEpKTsKKwlNTUlPX0QoX01NSU8oX0ZESV9SWEFfVFVTSVpFMikpOworCU1N SU9fRChfTU1JTyhfRkRJX1JYQl9UVVNJWkUxKSk7CisJTU1JT19EKF9NTUlPKF9GRElfUlhCX1RV U0laRTIpKTsKKworCU1NSU9fREgoUENIX1BQX0NPTlRST0wpOworCU1NSU9fRChQQ0hfUFBfRElW SVNPUik7CisJTU1JT19EKFBDSF9QUF9TVEFUVVMpOworCU1NSU9fRChQQ0hfTFZEUyk7CisJTU1J T19EKF9NTUlPKF9QQ0hfRFBMTF9BKSk7CisJTU1JT19EKF9NTUlPKF9QQ0hfRFBMTF9CKSk7CisJ TU1JT19EKF9NTUlPKF9QQ0hfRlBBMCkpOworCU1NSU9fRChfTU1JTyhfUENIX0ZQQTEpKTsKKwlN TUlPX0QoX01NSU8oX1BDSF9GUEIwKSk7CisJTU1JT19EKF9NTUlPKF9QQ0hfRlBCMSkpOworCU1N SU9fRChQQ0hfRFJFRl9DT05UUk9MKTsKKwlNTUlPX0QoUENIX1JBV0NMS19GUkVRKTsKKwlNTUlP X0QoUENIX0RQTExfU0VMKTsKKworCU1NSU9fRChfTU1JTygweDYxMjA4KSk7CisJTU1JT19EKF9N TUlPKDB4NjEyMGMpKTsKKwlNTUlPX0QoUENIX1BQX09OX0RFTEFZUyk7CisJTU1JT19EKFBDSF9Q UF9PRkZfREVMQVlTKTsKKworCU1NSU9fREgoX01NSU8oMHhlNjUxYykpOworCU1NSU9fREgoX01N SU8oMHhlNjYxYykpOworCU1NSU9fREgoX01NSU8oMHhlNjcxYykpOworCU1NSU9fREgoX01NSU8o MHhlNjgxYykpOworCU1NSU9fREgoX01NSU8oMHhlNmMwNCkpOworCU1NSU9fREgoX01NSU8oMHhl NmUxYykpOworCisJTU1JT19STyhQQ0hfUE9SVF9IT1RQTFVHKTsKKwlNTUlPX0RIKExDUExMX0NU TCk7CisJTU1JT19EKEZVU0VfU1RSQVApOworCU1NSU9fRChESUdJVEFMX1BPUlRfSE9UUExVR19D TlRSTCk7CisKKwlNTUlPX0QoRElTUF9BUkJfQ1RMKTsKKwlNTUlPX0QoRElTUF9BUkJfQ1RMMik7 CisKKwlNTUlPX0QoSUxLX0RJU1BMQVlfQ0hJQ0tFTjEpOworCU1NSU9fRChJTEtfRElTUExBWV9D SElDS0VOMik7CisJTU1JT19EKElMS19EU1BDTEtfR0FURV9EKTsKKworCU1NSU9fRChTT1VUSF9D SElDS0VOMSk7CisJTU1JT19ESChTT1VUSF9DSElDS0VOMik7CisJTU1JT19EKF9NTUlPKF9UUkFO U0FfQ0hJQ0tFTjEpKTsKKwlNTUlPX0QoX01NSU8oX1RSQU5TQl9DSElDS0VOMSkpOworCU1NSU9f RChTT1VUSF9EU1BDTEtfR0FURV9EKTsKKwlNTUlPX0QoX01NSU8oX1RSQU5TQV9DSElDS0VOMikp OworCU1NSU9fRChfTU1JTyhfVFJBTlNCX0NISUNLRU4yKSk7CisKKwlNTUlPX0QoSUxLX0RQRkNf Q0JfQkFTRSk7CisJTU1JT19EKElMS19EUEZDX0NPTlRST0wpOworCU1NSU9fRChJTEtfRFBGQ19S RUNPTVBfQ1RMKTsKKwlNTUlPX0QoSUxLX0RQRkNfU1RBVFVTKTsKKwlNTUlPX0QoSUxLX0RQRkNf RkVOQ0VfWU9GRik7CisJTU1JT19EKElMS19EUEZDX0NISUNLRU4pOworCU1NSU9fRChJTEtfRkJD X1JUX0JBU0UpOworCisJTU1JT19EKElQU19DVEwpOworCisJTU1JT19EKFBJUEVfQ1NDX0NPRUZG X1JZX0dZKFBJUEVfQSkpOworCU1NSU9fRChQSVBFX0NTQ19DT0VGRl9CWShQSVBFX0EpKTsKKwlN TUlPX0QoUElQRV9DU0NfQ09FRkZfUlVfR1UoUElQRV9BKSk7CisJTU1JT19EKFBJUEVfQ1NDX0NP RUZGX0JVKFBJUEVfQSkpOworCU1NSU9fRChQSVBFX0NTQ19DT0VGRl9SVl9HVihQSVBFX0EpKTsK KwlNTUlPX0QoUElQRV9DU0NfQ09FRkZfQlYoUElQRV9BKSk7CisJTU1JT19EKFBJUEVfQ1NDX01P REUoUElQRV9BKSk7CisJTU1JT19EKFBJUEVfQ1NDX1BSRU9GRl9ISShQSVBFX0EpKTsKKwlNTUlP X0QoUElQRV9DU0NfUFJFT0ZGX01FKFBJUEVfQSkpOworCU1NSU9fRChQSVBFX0NTQ19QUkVPRkZf TE8oUElQRV9BKSk7CisJTU1JT19EKFBJUEVfQ1NDX1BPU1RPRkZfSEkoUElQRV9BKSk7CisJTU1J T19EKFBJUEVfQ1NDX1BPU1RPRkZfTUUoUElQRV9BKSk7CisJTU1JT19EKFBJUEVfQ1NDX1BPU1RP RkZfTE8oUElQRV9BKSk7CisKKwlNTUlPX0QoUElQRV9DU0NfQ09FRkZfUllfR1koUElQRV9CKSk7 CisJTU1JT19EKFBJUEVfQ1NDX0NPRUZGX0JZKFBJUEVfQikpOworCU1NSU9fRChQSVBFX0NTQ19D T0VGRl9SVV9HVShQSVBFX0IpKTsKKwlNTUlPX0QoUElQRV9DU0NfQ09FRkZfQlUoUElQRV9CKSk7 CisJTU1JT19EKFBJUEVfQ1NDX0NPRUZGX1JWX0dWKFBJUEVfQikpOworCU1NSU9fRChQSVBFX0NT Q19DT0VGRl9CVihQSVBFX0IpKTsKKwlNTUlPX0QoUElQRV9DU0NfTU9ERShQSVBFX0IpKTsKKwlN TUlPX0QoUElQRV9DU0NfUFJFT0ZGX0hJKFBJUEVfQikpOworCU1NSU9fRChQSVBFX0NTQ19QUkVP RkZfTUUoUElQRV9CKSk7CisJTU1JT19EKFBJUEVfQ1NDX1BSRU9GRl9MTyhQSVBFX0IpKTsKKwlN TUlPX0QoUElQRV9DU0NfUE9TVE9GRl9ISShQSVBFX0IpKTsKKwlNTUlPX0QoUElQRV9DU0NfUE9T VE9GRl9NRShQSVBFX0IpKTsKKwlNTUlPX0QoUElQRV9DU0NfUE9TVE9GRl9MTyhQSVBFX0IpKTsK KworCU1NSU9fRChQSVBFX0NTQ19DT0VGRl9SWV9HWShQSVBFX0MpKTsKKwlNTUlPX0QoUElQRV9D U0NfQ09FRkZfQlkoUElQRV9DKSk7CisJTU1JT19EKFBJUEVfQ1NDX0NPRUZGX1JVX0dVKFBJUEVf QykpOworCU1NSU9fRChQSVBFX0NTQ19DT0VGRl9CVShQSVBFX0MpKTsKKwlNTUlPX0QoUElQRV9D U0NfQ09FRkZfUlZfR1YoUElQRV9DKSk7CisJTU1JT19EKFBJUEVfQ1NDX0NPRUZGX0JWKFBJUEVf QykpOworCU1NSU9fRChQSVBFX0NTQ19NT0RFKFBJUEVfQykpOworCU1NSU9fRChQSVBFX0NTQ19Q UkVPRkZfSEkoUElQRV9DKSk7CisJTU1JT19EKFBJUEVfQ1NDX1BSRU9GRl9NRShQSVBFX0MpKTsK KwlNTUlPX0QoUElQRV9DU0NfUFJFT0ZGX0xPKFBJUEVfQykpOworCU1NSU9fRChQSVBFX0NTQ19Q T1NUT0ZGX0hJKFBJUEVfQykpOworCU1NSU9fRChQSVBFX0NTQ19QT1NUT0ZGX01FKFBJUEVfQykp OworCU1NSU9fRChQSVBFX0NTQ19QT1NUT0ZGX0xPKFBJUEVfQykpOworCisJTU1JT19EKFBSRUNf UEFMX0lOREVYKFBJUEVfQSkpOworCU1NSU9fRChQUkVDX1BBTF9EQVRBKFBJUEVfQSkpOworCisJ TU1JT19EKFBSRUNfUEFMX0lOREVYKFBJUEVfQikpOworCU1NSU9fRChQUkVDX1BBTF9EQVRBKFBJ UEVfQikpOworCisJTU1JT19EKFBSRUNfUEFMX0lOREVYKFBJUEVfQykpOworCU1NSU9fRChQUkVD X1BBTF9EQVRBKFBJUEVfQykpOworCisJTU1JT19EKF9NTUlPKDB4NjAxMTApKTsKKwlNTUlPX0Qo X01NSU8oMHg2MTExMCkpOworCisJTU1JT19EKFBJUEVfV01fTElORVRJTUUoUElQRV9BKSk7CisJ TU1JT19EKFBJUEVfV01fTElORVRJTUUoUElQRV9CKSk7CisJTU1JT19EKFBJUEVfV01fTElORVRJ TUUoUElQRV9DKSk7CisJTU1JT19EKFNQTExfQ1RMKTsKKwlNTUlPX0QoX01NSU8oX1dSUExMX0NU TDEpKTsKKwlNTUlPX0QoX01NSU8oX1dSUExMX0NUTDIpKTsKKwlNTUlPX0QoUE9SVF9DTEtfU0VM KFBPUlRfQSkpOworCU1NSU9fRChQT1JUX0NMS19TRUwoUE9SVF9CKSk7CisJTU1JT19EKFBPUlRf Q0xLX1NFTChQT1JUX0MpKTsKKwlNTUlPX0QoUE9SVF9DTEtfU0VMKFBPUlRfRCkpOworCU1NSU9f RChQT1JUX0NMS19TRUwoUE9SVF9FKSk7CisJTU1JT19EKFRSQU5TX0NMS19TRUwoVFJBTlNDT0RF Ul9BKSk7CisJTU1JT19EKFRSQU5TX0NMS19TRUwoVFJBTlNDT0RFUl9CKSk7CisJTU1JT19EKFRS QU5TX0NMS19TRUwoVFJBTlNDT0RFUl9DKSk7CisKKwlNTUlPX0QoSFNXX05ERV9SU1RXUk5fT1BU KTsKKwlNTUlPX0QoX01NSU8oMHg0NjUwOCkpOworCisJTU1JT19EKF9NTUlPKDB4NDkwODApKTsK KwlNTUlPX0QoX01NSU8oMHg0OTE4MCkpOworCU1NSU9fRChfTU1JTygweDQ5MjgwKSk7CisKKwlN TUlPX0QoR0FNTUFfTU9ERShQSVBFX0EpKTsKKwlNTUlPX0QoR0FNTUFfTU9ERShQSVBFX0IpKTsK KwlNTUlPX0QoR0FNTUFfTU9ERShQSVBFX0MpKTsKKworCU1NSU9fRChQSVBFX01VTFQoUElQRV9B KSk7CisJTU1JT19EKFBJUEVfTVVMVChQSVBFX0IpKTsKKwlNTUlPX0QoUElQRV9NVUxUKFBJUEVf QykpOworCisJTU1JT19EKEhTV19UVklERU9fRElQX0NUTChUUkFOU0NPREVSX0EpKTsKKwlNTUlP X0QoSFNXX1RWSURFT19ESVBfQ1RMKFRSQU5TQ09ERVJfQikpOworCU1NSU9fRChIU1dfVFZJREVP X0RJUF9DVEwoVFJBTlNDT0RFUl9DKSk7CisKKwlNTUlPX0RIKFNGVVNFX1NUUkFQKTsKKwlNTUlP X0QoU0JJX0FERFIpOworCU1NSU9fREgoU0JJX0RBVEEpOworCU1NSU9fREgoU0JJX0NUTF9TVEFU KTsKKwlNTUlPX0QoUElYQ0xLX0dBVEUpOworCisJTU1JT19ESChERElfQlVGX0NUTChQT1JUX0Ep KTsKKwlNTUlPX0RIKERESV9CVUZfQ1RMKFBPUlRfQikpOworCU1NSU9fREgoRERJX0JVRl9DVEwo UE9SVF9DKSk7CisJTU1JT19ESChERElfQlVGX0NUTChQT1JUX0QpKTsKKwlNTUlPX0RIKERESV9C VUZfQ1RMKFBPUlRfRSkpOworCisJTU1JT19ESChEUF9UUF9DVEwoUE9SVF9BKSk7CisJTU1JT19E SChEUF9UUF9DVEwoUE9SVF9CKSk7CisJTU1JT19ESChEUF9UUF9DVEwoUE9SVF9DKSk7CisJTU1J T19ESChEUF9UUF9DVEwoUE9SVF9EKSk7CisJTU1JT19ESChEUF9UUF9DVEwoUE9SVF9FKSk7CisK KwlNTUlPX0RIKERQX1RQX1NUQVRVUyhQT1JUX0EpKTsKKwlNTUlPX0RIKERQX1RQX1NUQVRVUyhQ T1JUX0IpKTsKKwlNTUlPX0RIKERQX1RQX1NUQVRVUyhQT1JUX0MpKTsKKwlNTUlPX0RIKERQX1RQ X1NUQVRVUyhQT1JUX0QpKTsKKwlNTUlPX0RIKERQX1RQX1NUQVRVUyhQT1JUX0UpKTsKKworCU1N SU9fRChIU1dfQVVEX0NGRyhQSVBFX0EpKTsKKwlNTUlPX0QoSFNXX0FVRF9QSU5fRUxEX0NQX1ZM RCk7CisJTU1JT19EKEhTV19BVURfTUlTQ19DVFJMKFBJUEVfQSkpOworCisJTU1JT19ESChfTU1J TyhfVFJBTlNfRERJX0ZVTkNfQ1RMX0EpKTsKKwlNTUlPX0RIKF9NTUlPKF9UUkFOU19ERElfRlVO Q19DVExfQikpOworCU1NSU9fREgoX01NSU8oX1RSQU5TX0RESV9GVU5DX0NUTF9DKSk7CisJTU1J T19ESChfTU1JTyhfVFJBTlNfRERJX0ZVTkNfQ1RMX0VEUCkpOworCisJTU1JT19EKF9NTUlPKF9U UkFOU0FfTVNBX01JU0MpKTsKKwlNTUlPX0QoX01NSU8oX1RSQU5TQl9NU0FfTUlTQykpOworCU1N SU9fRChfTU1JTyhfVFJBTlNDX01TQV9NSVNDKSk7CisJTU1JT19EKF9NTUlPKF9UUkFOU19FRFBf TVNBX01JU0MpKTsKKworCU1NSU9fREgoRk9SQ0VXQUtFKTsKKwlNTUlPX0QoRk9SQ0VXQUtFX0FD Syk7CisJTU1JT19EKEdFTjZfR1RfQ09SRV9TVEFUVVMpOworCU1NSU9fRChHRU42X0dUX1RIUkVB RF9TVEFUVVNfUkVHKTsKKwlNTUlPX0RGSChHVEZJRk9EQkcpOworCU1NSU9fREZIKEdURklGT0NU TCk7CisJTU1JT19ESChGT1JDRVdBS0VfTVQpOworCU1NSU9fREgoRk9SQ0VXQUtFX0FDS19IU1cp OworCU1NSU9fRChFQ09CVVMpOworCU1NSU9fREgoR0VONl9SQ19DT05UUk9MKTsKKwlNTUlPX0RI KEdFTjZfUkNfU1RBVEUpOworCU1NSU9fRChHRU42X1JQTlNXUkVRKTsKKwlNTUlPX0QoR0VONl9S Q19WSURFT19GUkVRKTsKKwlNTUlPX0QoR0VONl9SUF9ET1dOX1RJTUVPVVQpOworCU1NSU9fRChH RU42X1JQX0lOVEVSUlVQVF9MSU1JVFMpOworCU1NSU9fRChHRU42X1JQU1RBVDEpOworCU1NSU9f RChHRU42X1JQX0NPTlRST0wpOworCU1NSU9fRChHRU42X1JQX1VQX1RIUkVTSE9MRCk7CisJTU1J T19EKEdFTjZfUlBfRE9XTl9USFJFU0hPTEQpOworCU1NSU9fRChHRU42X1JQX0NVUl9VUF9FSSk7 CisJTU1JT19EKEdFTjZfUlBfQ1VSX1VQKTsKKwlNTUlPX0QoR0VONl9SUF9QUkVWX1VQKTsKKwlN TUlPX0QoR0VONl9SUF9DVVJfRE9XTl9FSSk7CisJTU1JT19EKEdFTjZfUlBfQ1VSX0RPV04pOwor CU1NSU9fRChHRU42X1JQX1BSRVZfRE9XTik7CisJTU1JT19EKEdFTjZfUlBfVVBfRUkpOworCU1N SU9fRChHRU42X1JQX0RPV05fRUkpOworCU1NSU9fRChHRU42X1JQX0lETEVfSFlTVEVSU0lTKTsK KwlNTUlPX0QoR0VONl9SQzFfV0FLRV9SQVRFX0xJTUlUKTsKKwlNTUlPX0QoR0VONl9SQzZfV0FL RV9SQVRFX0xJTUlUKTsKKwlNTUlPX0QoR0VONl9SQzZwcF9XQUtFX1JBVEVfTElNSVQpOworCU1N SU9fRChHRU42X1JDX0VWQUxVQVRJT05fSU5URVJWQUwpOworCU1NSU9fRChHRU42X1JDX0lETEVf SFlTVEVSU0lTKTsKKwlNTUlPX0QoR0VONl9SQ19TTEVFUCk7CisJTU1JT19EKEdFTjZfUkMxZV9U SFJFU0hPTEQpOworCU1NSU9fRChHRU42X1JDNl9USFJFU0hPTEQpOworCU1NSU9fRChHRU42X1JD NnBfVEhSRVNIT0xEKTsKKwlNTUlPX0QoR0VONl9SQzZwcF9USFJFU0hPTEQpOworCU1NSU9fRChH RU42X1BNSU5UUk1TSyk7CisJTU1JT19ESChIU1dfUFdSX1dFTExfQ1RMMSk7CisJTU1JT19ESChI U1dfUFdSX1dFTExfQ1RMMik7CisJTU1JT19ESChIU1dfUFdSX1dFTExfQ1RMMyk7CisJTU1JT19E SChIU1dfUFdSX1dFTExfQ1RMNCk7CisJTU1JT19ESChIU1dfUFdSX1dFTExfQ1RMNSk7CisJTU1J T19ESChIU1dfUFdSX1dFTExfQ1RMNik7CisKKwlNTUlPX0QoUlNUREJZQ1RMKTsKKworCU1NSU9f REgoR0VONl9HRFJTVCk7CisJTU1JT19ESChDUFVfVkdBQ05UUkwpOworCisJTU1JT19EKFRJTEVD VEwpOworCisJTU1JT19EKEdFTjZfVUNHQ1RMMSk7CisJTU1JT19EKEdFTjZfVUNHQ1RMMik7CisK KwlNTUlPX0QoR0VONl9QQ09ERV9EQVRBKTsKKwlNTUlPX0QoX01NSU8oMHgxMzgxMmMpKTsKKwlN TUlPX0RIKEdFTjdfRVJSX0lOVCk7CisJTU1JT19EKEhTV19FRFJBTV9DQVApOworCU1NSU9fRChI U1dfSURJQ1IpOworCU1NSU9fREgoR0ZYX0ZMU0hfQ05UTF9HRU42KTsKKworCU1NSU9fRChfTU1J TygweDNjKSk7CisJTU1JT19EKF9NTUlPKDB4ODYwKSk7CisJTU1JT19EKEVDT1NLUEQpOworCU1N SU9fRChfTU1JTygweDEyMWQwKSk7CisJTU1JT19EKEdFTjZfQkxJVFRFUl9FQ09TS1BEKTsKKwlN TUlPX0QoX01NSU8oMHg0MWQwKSk7CisJTU1JT19EKEdBQ19FQ09fQklUUyk7CisJTU1JT19EKF9N TUlPKDB4NjIwMCkpOworCU1NSU9fRChfTU1JTygweDYyMDQpKTsKKwlNTUlPX0QoX01NSU8oMHg2 MjA4KSk7CisJTU1JT19EKF9NTUlPKDB4NzExOCkpOworCU1NSU9fRChfTU1JTygweDcxODApKTsK KwlNTUlPX0QoX01NSU8oMHg3NDA4KSk7CisJTU1JT19EKF9NTUlPKDB4N2MwMCkpOworCU1NSU9f REgoR0VONl9NQkNUTCk7CisJTU1JT19EKF9NTUlPKDB4OTExYykpOworCU1NSU9fRChfTU1JTygw eDkxMjApKTsKKwlNTUlPX0RGSChHRU43X1VDR0NUTDQpOworCisJTU1JT19EKEdBQl9DVEwpOwor CU1NSU9fRChfTU1JTygweDQ4ODAwKSk7CisJTU1JT19EKF9NTUlPKDB4Y2UwNDQpKTsKKwlNTUlP X0QoX01NSU8oMHhlNjUwMCkpOworCU1NSU9fRChfTU1JTygweGU2NTA0KSk7CisJTU1JT19EKF9N TUlPKDB4ZTY2MDApKTsKKwlNTUlPX0QoX01NSU8oMHhlNjYwNCkpOworCU1NSU9fRChfTU1JTygw eGU2NzAwKSk7CisJTU1JT19EKF9NTUlPKDB4ZTY3MDQpKTsKKwlNTUlPX0QoX01NSU8oMHhlNjgw MCkpOworCU1NSU9fRChfTU1JTygweGU2ODA0KSk7CisJTU1JT19EKFBDSF9HTUJVUzQpOworCU1N SU9fRChQQ0hfR01CVVM1KTsKKworCU1NSU9fRChfTU1JTygweDkwMmMpKTsKKwlNTUlPX0QoX01N SU8oMHhlYzAwOCkpOworCU1NSU9fRChfTU1JTygweGVjMDBjKSk7CisJTU1JT19EKF9NTUlPKDB4 ZWMwMDggKyAweDE4KSk7CisJTU1JT19EKF9NTUlPKDB4ZWMwMGMgKyAweDE4KSk7CisJTU1JT19E KF9NTUlPKDB4ZWMwMDggKyAweDE4ICogMikpOworCU1NSU9fRChfTU1JTygweGVjMDBjICsgMHgx OCAqIDIpKTsKKwlNTUlPX0QoX01NSU8oMHhlYzAwOCArIDB4MTggKiAzKSk7CisJTU1JT19EKF9N TUlPKDB4ZWMwMGMgKyAweDE4ICogMykpOworCU1NSU9fRChfTU1JTygweGVjNDA4KSk7CisJTU1J T19EKF9NTUlPKDB4ZWM0MGMpKTsKKwlNTUlPX0QoX01NSU8oMHhlYzQwOCArIDB4MTgpKTsKKwlN TUlPX0QoX01NSU8oMHhlYzQwYyArIDB4MTgpKTsKKwlNTUlPX0QoX01NSU8oMHhlYzQwOCArIDB4 MTggKiAyKSk7CisJTU1JT19EKF9NTUlPKDB4ZWM0MGMgKyAweDE4ICogMikpOworCU1NSU9fRChf TU1JTygweGVjNDA4ICsgMHgxOCAqIDMpKTsKKwlNTUlPX0QoX01NSU8oMHhlYzQwYyArIDB4MTgg KiAzKSk7CisJTU1JT19EKF9NTUlPKDB4ZmM4MTApKTsKKwlNTUlPX0QoX01NSU8oMHhmYzgxYykp OworCU1NSU9fRChfTU1JTygweGZjODI4KSk7CisJTU1JT19EKF9NTUlPKDB4ZmM4MzQpKTsKKwlN TUlPX0QoX01NSU8oMHhmY2MwMCkpOworCU1NSU9fRChfTU1JTygweGZjYzBjKSk7CisJTU1JT19E KF9NTUlPKDB4ZmNjMTgpKTsKKwlNTUlPX0QoX01NSU8oMHhmY2MyNCkpOworCU1NSU9fRChfTU1J TygweGZkMDAwKSk7CisJTU1JT19EKF9NTUlPKDB4ZmQwMGMpKTsKKwlNTUlPX0QoX01NSU8oMHhm ZDAxOCkpOworCU1NSU9fRChfTU1JTygweGZkMDI0KSk7CisJTU1JT19EKF9NTUlPKDB4ZmQwMzQp KTsKKworCU1NSU9fREgoRlBHQV9EQkcpOworCU1NSU9fRChfTU1JTygweDIwNTQpKTsKKwlNTUlP X0QoX01NSU8oMHgxMjA1NCkpOworCU1NSU9fRChfTU1JTygweDIyMDU0KSk7CisJTU1JT19EKF9N TUlPKDB4MWEwNTQpKTsKKworCU1NSU9fRChfTU1JTygweDQ0MDcwKSk7CisJTU1JT19ERkgoX01N SU8oMHgyMTVjKSk7CisJTU1JT19ERkgoX01NSU8oMHgyMTc4KSk7CisJTU1JT19ERkgoX01NSU8o MHgyMTdjKSk7CisJTU1JT19ERkgoX01NSU8oMHgxMjE3OCkpOworCU1NSU9fREZIKF9NTUlPKDB4 MTIxN2MpKTsKKworCU1NSU9fRChfTU1JTygweDJiMDApKTsKKwlNTUlPX0QoX01NSU8oMHgyMzYw KSk7CisKKwlNTUlPX0RGSChfTU1JTygweDFjMTdjKSk7CisJTU1JT19ERkgoX01NSU8oMHgxYzE3 OCkpOworCU1NSU9fREZIKEJDU19TV0NUUkwpOworCisJTU1JT19ESChfTU1JTygweDQyNjApKTsK KwlNTUlPX0RIKF9NTUlPKDB4NDI2NCkpOworCU1NSU9fREgoX01NSU8oMHg0MjY4KSk7CisJTU1J T19ESChfTU1JTygweDQyNmMpKTsKKwlNTUlPX0RIKF9NTUlPKDB4NDI3MCkpOworCU1NSU9fREZI KF9NTUlPKDB4NDA5NCkpOworCisJTU1JT19ERkgoQVJCX01PREUpOworCU1NSU9fUklOR19HTV9S RFIoUklOR19CQkFERFIpOworCU1NSU9fREZIKF9NTUlPKDB4MjIyMCkpOworCU1NSU9fREZIKF9N TUlPKDB4MTIyMjApKTsKKwlNTUlPX0RGSChfTU1JTygweDIyMjIwKSk7CisJTU1JT19SSU5HX0RG SChSSU5HX1NZTkNfMSk7CisJTU1JT19SSU5HX0RGSChSSU5HX1NZTkNfMCk7CisJTU1JT19ERkgo X01NSU8oMHgyMjE3OCkpOworCU1NSU9fREZIKF9NTUlPKDB4MWExNzgpKTsKKwlNTUlPX0RGSChf TU1JTygweDFhMTdjKSk7CisJTU1JT19ERkgoX01NSU8oMHgyMjE3YykpOworCisJTU1JT19ESChF RFBfUFNSX0lNUik7CisJTU1JT19ESChFRFBfUFNSX0lJUik7Cit9CisKK3N0YXRpYyB2b2lkIGlu aXRfYmR3X21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCU1NSU9f REgoR0VOOF9HVF9JTVIoMCkpOworCU1NSU9fREgoR0VOOF9HVF9JRVIoMCkpOworCU1NSU9fREgo R0VOOF9HVF9JSVIoMCkpOworCU1NSU9fRChHRU44X0dUX0lTUigwKSk7CisKKwlNTUlPX0RIKEdF TjhfR1RfSU1SKDEpKTsKKwlNTUlPX0RIKEdFTjhfR1RfSUVSKDEpKTsKKwlNTUlPX0RIKEdFTjhf R1RfSUlSKDEpKTsKKwlNTUlPX0QoR0VOOF9HVF9JU1IoMSkpOworCisJTU1JT19ESChHRU44X0dU X0lNUigyKSk7CisJTU1JT19ESChHRU44X0dUX0lFUigyKSk7CisJTU1JT19ESChHRU44X0dUX0lJ UigyKSk7CisJTU1JT19EKEdFTjhfR1RfSVNSKDIpKTsKKworCU1NSU9fREgoR0VOOF9HVF9JTVIo MykpOworCU1NSU9fREgoR0VOOF9HVF9JRVIoMykpOworCU1NSU9fREgoR0VOOF9HVF9JSVIoMykp OworCU1NSU9fRChHRU44X0dUX0lTUigzKSk7CisKKwlNTUlPX0RIKEdFTjhfREVfUElQRV9JTVIo UElQRV9BKSk7CisJTU1JT19ESChHRU44X0RFX1BJUEVfSUVSKFBJUEVfQSkpOworCU1NSU9fREgo R0VOOF9ERV9QSVBFX0lJUihQSVBFX0EpKTsKKwlNTUlPX0QoR0VOOF9ERV9QSVBFX0lTUihQSVBF X0EpKTsKKworCU1NSU9fREgoR0VOOF9ERV9QSVBFX0lNUihQSVBFX0IpKTsKKwlNTUlPX0RIKEdF TjhfREVfUElQRV9JRVIoUElQRV9CKSk7CisJTU1JT19ESChHRU44X0RFX1BJUEVfSUlSKFBJUEVf QikpOworCU1NSU9fRChHRU44X0RFX1BJUEVfSVNSKFBJUEVfQikpOworCisJTU1JT19ESChHRU44 X0RFX1BJUEVfSU1SKFBJUEVfQykpOworCU1NSU9fREgoR0VOOF9ERV9QSVBFX0lFUihQSVBFX0Mp KTsKKwlNTUlPX0RIKEdFTjhfREVfUElQRV9JSVIoUElQRV9DKSk7CisJTU1JT19EKEdFTjhfREVf UElQRV9JU1IoUElQRV9DKSk7CisKKwlNTUlPX0RIKEdFTjhfREVfUE9SVF9JTVIpOworCU1NSU9f REgoR0VOOF9ERV9QT1JUX0lFUik7CisJTU1JT19ESChHRU44X0RFX1BPUlRfSUlSKTsKKwlNTUlP X0QoR0VOOF9ERV9QT1JUX0lTUik7CisKKwlNTUlPX0RIKEdFTjhfREVfTUlTQ19JTVIpOworCU1N SU9fREgoR0VOOF9ERV9NSVNDX0lFUik7CisJTU1JT19ESChHRU44X0RFX01JU0NfSUlSKTsKKwlN TUlPX0QoR0VOOF9ERV9NSVNDX0lTUik7CisKKwlNTUlPX0RIKEdFTjhfUENVX0lNUik7CisJTU1J T19ESChHRU44X1BDVV9JRVIpOworCU1NSU9fREgoR0VOOF9QQ1VfSUlSKTsKKwlNTUlPX0QoR0VO OF9QQ1VfSVNSKTsKKwlNTUlPX0RIKEdFTjhfTUFTVEVSX0lSUSk7CisKKwlNTUlPX1JJTkdfREZI KFJJTkdfQUNUSERfVURXKTsKKworI2RlZmluZSBSSU5HX1JFRyhiYXNlKSBfTU1JTygoYmFzZSkg KyAweGQwKQorCU1NSU9fUklOR19GKFJJTkdfUkVHKTsKKyN1bmRlZiBSSU5HX1JFRworCisjZGVm aW5lIFJJTkdfUkVHKGJhc2UpIF9NTUlPKChiYXNlKSArIDB4MjMwKQorCU1NSU9fUklOR19ERkgo UklOR19SRUcpOworI3VuZGVmIFJJTkdfUkVHCisKKyNkZWZpbmUgUklOR19SRUcoYmFzZSkgX01N SU8oKGJhc2UpICsgMHgyNDQpCisJTU1JT19SSU5HX0RGSChSSU5HX1JFRyk7CisjdW5kZWYgUklO R19SRUcKKworI2RlZmluZSBSSU5HX1JFRyhiYXNlKSBfTU1JTygoYmFzZSkgKyAweDNhMCkKKwlN TUlPX1JJTkdfREZIKFJJTkdfUkVHKTsKKyN1bmRlZiBSSU5HX1JFRworCisJTU1JT19EKFBJUEVN SVNDKFBJUEVfQSkpOworCU1NSU9fRChQSVBFTUlTQyhQSVBFX0IpKTsKKwlNTUlPX0QoUElQRU1J U0MoUElQRV9DKSk7CisJTU1JT19EKF9NTUlPKDB4MWMxZDApKTsKKwlNTUlPX0QoR0VONl9NQkNV TklUX1NOUENSKTsKKwlNTUlPX0QoR0VON19NSVNDQ1BDVEwpOworCU1NSU9fRChfTU1JTygweDFj MDU0KSk7CisKKwlNTUlPX0RIKEdFTjZfUENPREVfTUFJTEJPWCk7CisKKwlNTUlPX0QoR0VOOF9Q UklWQVRFX1BBVF9MTyk7CisJTU1JT19EKEdFTjhfUFJJVkFURV9QQVRfSEkpOworCisJTU1JT19E KEdBTVRBUkJNT0RFKTsKKworCU1NSU9fUklOR19HTV9SRFIoUklOR19IV1NfUEdBKTsKKworCU1N SU9fREZIKEhEQ19DSElDS0VOMCk7CisKKwlNTUlPX0QoQ0hJQ0tFTl9QSVBFU0xfMShQSVBFX0Ep KTsKKwlNTUlPX0QoQ0hJQ0tFTl9QSVBFU0xfMShQSVBFX0IpKTsKKwlNTUlPX0QoQ0hJQ0tFTl9Q SVBFU0xfMShQSVBFX0MpKTsKKworCU1NSU9fRChXTV9NSVNDKTsKKwlNTUlPX0QoX01NSU8oQkRX X0VEUF9QU1JfQkFTRSkpOworCisJTU1JT19EKF9NTUlPKDB4NjY3MWMpKTsKKwlNTUlPX0QoX01N SU8oMHg2NmMwMCkpOworCU1NSU9fRChfTU1JTygweDY2YzA0KSk7CisKKwlNTUlPX0QoSFNXX0dU VF9DQUNIRV9FTik7CisKKwlNTUlPX0QoR0VOOF9FVV9ESVNBQkxFMCk7CisJTU1JT19EKEdFTjhf RVVfRElTQUJMRTEpOworCU1NSU9fRChHRU44X0VVX0RJU0FCTEUyKTsKKworCU1NSU9fRChfTU1J TygweGZkYykpOworCU1NSU9fREZIKEdFTjhfUk9XX0NISUNLRU4pOworCU1NSU9fREZIKEdFTjdf Uk9XX0NISUNLRU4yKTsKKwlNTUlPX0RGSChHRU44X1VDR0NUTDYpOworCisJTU1JT19ERkgoX01N SU8oMHhiMWYwKSk7CisJTU1JT19ERkgoX01NSU8oMHhiMWMwKSk7CisJTU1JT19ERkgoR0VOOF9M M1NRQ1JFRzQpOworCU1NSU9fREZIKF9NTUlPKDB4YjEwMCkpOworCU1NSU9fREZIKF9NTUlPKDB4 YjEwYykpOworCU1NSU9fRChfTU1JTygweGIxMTApKTsKKwlNTUlPX0QoX01NSU8oMHg0NDQ4NCkp OworCU1NSU9fRChfTU1JTygweDQ0NDhjKSk7CisKKwlNTUlPX0RGSChfTU1JTygweDgzYTQpKTsK KwlNTUlPX0QoR0VOOF9MM19MUkFfMV9HUEdQVSk7CisKKwlNTUlPX0RGSChfTU1JTygweDg0MzAp KTsKKworCU1NSU9fRChfTU1JTygweDExMDAwMCkpOworCisJTU1JT19EKF9NTUlPKDB4NDg0MDAp KTsKKwlNTUlPX0QoX01NSU8oMHg2ZTU3MCkpOworCU1NSU9fRChfTU1JTygweDY1ZjEwKSk7CisK KwlNTUlPX0RGSChfTU1JTygweGUxOTQpKTsKKwlNTUlPX0RGSChfTU1JTygweGUxODgpKTsKKwlN TUlPX0RGSChIQUxGX1NMSUNFX0NISUNLRU4yKTsKKwlNTUlPX0RGSChfTU1JTygweDI1ODApKTsK KworCU1NSU9fREZIKF9NTUlPKDB4MjI0OCkpOworCisJTU1JT19ERkgoX01NSU8oMHhlMjIwKSk7 CisJTU1JT19ERkgoX01NSU8oMHhlMjMwKSk7CisJTU1JT19ERkgoX01NSU8oMHhlMjQwKSk7CisJ TU1JT19ERkgoX01NSU8oMHhlMjYwKSk7CisJTU1JT19ERkgoX01NSU8oMHhlMjcwKSk7CisJTU1J T19ERkgoX01NSU8oMHhlMjgwKSk7CisJTU1JT19ERkgoX01NSU8oMHhlMmEwKSk7CisJTU1JT19E RkgoX01NSU8oMHhlMmIwKSk7CisJTU1JT19ERkgoX01NSU8oMHhlMmMwKSk7Cit9CisKK3N0YXRp YyB2b2lkIGluaXRfc2tsX21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQor eworCU1NSU9fREgoRk9SQ0VXQUtFX1JFTkRFUl9HRU45KTsKKwlNTUlPX0RIKEZPUkNFV0FLRV9B Q0tfUkVOREVSX0dFTjkpOworCU1NSU9fREgoRk9SQ0VXQUtFX0JMSVRURVJfR0VOOSk7CisJTU1J T19ESChGT1JDRVdBS0VfQUNLX0JMSVRURVJfR0VOOSk7CisJTU1JT19ESChGT1JDRVdBS0VfTUVE SUFfR0VOOSk7CisJTU1JT19ESChGT1JDRVdBS0VfQUNLX01FRElBX0dFTjkpOworCisJTU1JT19E KEhTV19QV1JfV0VMTF9DVEwxKTsKKwlNTUlPX0RIKEhTV19QV1JfV0VMTF9DVEwyKTsKKworCU1N SU9fREgoREJVRl9DVEwpOworCisJTU1JT19EKF9NTUlPKDB4YTIxMCkpOworCU1NSU9fRChHRU45 X01FRElBX1BHX0lETEVfSFlTVEVSRVNJUyk7CisJTU1JT19EKEdFTjlfUkVOREVSX1BHX0lETEVf SFlTVEVSRVNJUyk7CisJTU1JT19ERkgoR0VOOV9HQU1UX0VDT19SRUdfUldfSUEpOworCU1NSU9f REgoX01NSU8oMHg0ZGRjKSk7CisJTU1JT19ESChfTU1JTygweDQyMDgwKSk7CisJTU1JT19EKF9N TUlPKDB4NDU1MDQpKTsKKwlNTUlPX0QoX01NSU8oMHg0NTUyMCkpOworCU1NSU9fRChfTU1JTygw eDQ2MDAwKSk7CisJTU1JT19ESChfTU1JTygweDQ2MDEwKSk7CisJTU1JT19ESChfTU1JTygweDQ2 MDE0KSk7CisJTU1JT19EKF9NTUlPKDB4NkMwNDApKTsKKwlNTUlPX0QoX01NSU8oMHg2QzA0OCkp OworCU1NSU9fRChfTU1JTygweDZDMDUwKSk7CisJTU1JT19EKF9NTUlPKDB4NkMwNDQpKTsKKwlN TUlPX0QoX01NSU8oMHg2QzA0QykpOworCU1NSU9fRChfTU1JTygweDZDMDU0KSk7CisJTU1JT19E KF9NTUlPKDB4NmMwNTgpKTsKKwlNTUlPX0QoX01NSU8oMHg2YzA1YykpOworCU1NSU9fREgoX01N SU8oMHg2YzA2MCkpOworCisJTU1JT19ESChTS0xfUFNfV0lOX1BPUyhQSVBFX0EsIDApKTsKKwlN TUlPX0RIKFNLTF9QU19XSU5fUE9TKFBJUEVfQSwgMSkpOworCU1NSU9fREgoU0tMX1BTX1dJTl9Q T1MoUElQRV9CLCAwKSk7CisJTU1JT19ESChTS0xfUFNfV0lOX1BPUyhQSVBFX0IsIDEpKTsKKwlN TUlPX0RIKFNLTF9QU19XSU5fUE9TKFBJUEVfQywgMCkpOworCU1NSU9fREgoU0tMX1BTX1dJTl9Q T1MoUElQRV9DLCAxKSk7CisKKwlNTUlPX0RIKFNLTF9QU19XSU5fU1ooUElQRV9BLCAwKSk7CisJ TU1JT19ESChTS0xfUFNfV0lOX1NaKFBJUEVfQSwgMSkpOworCU1NSU9fREgoU0tMX1BTX1dJTl9T WihQSVBFX0IsIDApKTsKKwlNTUlPX0RIKFNLTF9QU19XSU5fU1ooUElQRV9CLCAxKSk7CisJTU1J T19ESChTS0xfUFNfV0lOX1NaKFBJUEVfQywgMCkpOworCU1NSU9fREgoU0tMX1BTX1dJTl9TWihQ SVBFX0MsIDEpKTsKKworCU1NSU9fREgoU0tMX1BTX0NUUkwoUElQRV9BLCAwKSk7CisJTU1JT19E SChTS0xfUFNfQ1RSTChQSVBFX0EsIDEpKTsKKwlNTUlPX0RIKFNLTF9QU19DVFJMKFBJUEVfQiwg MCkpOworCU1NSU9fREgoU0tMX1BTX0NUUkwoUElQRV9CLCAxKSk7CisJTU1JT19ESChTS0xfUFNf Q1RSTChQSVBFX0MsIDApKTsKKwlNTUlPX0RIKFNLTF9QU19DVFJMKFBJUEVfQywgMSkpOworCisJ TU1JT19ESChQTEFORV9CVUZfQ0ZHKFBJUEVfQSwgMCkpOworCU1NSU9fREgoUExBTkVfQlVGX0NG RyhQSVBFX0EsIDEpKTsKKwlNTUlPX0RIKFBMQU5FX0JVRl9DRkcoUElQRV9BLCAyKSk7CisJTU1J T19ESChQTEFORV9CVUZfQ0ZHKFBJUEVfQSwgMykpOworCisJTU1JT19ESChQTEFORV9CVUZfQ0ZH KFBJUEVfQiwgMCkpOworCU1NSU9fREgoUExBTkVfQlVGX0NGRyhQSVBFX0IsIDEpKTsKKwlNTUlP X0RIKFBMQU5FX0JVRl9DRkcoUElQRV9CLCAyKSk7CisJTU1JT19ESChQTEFORV9CVUZfQ0ZHKFBJ UEVfQiwgMykpOworCisJTU1JT19ESChQTEFORV9CVUZfQ0ZHKFBJUEVfQywgMCkpOworCU1NSU9f REgoUExBTkVfQlVGX0NGRyhQSVBFX0MsIDEpKTsKKwlNTUlPX0RIKFBMQU5FX0JVRl9DRkcoUElQ RV9DLCAyKSk7CisJTU1JT19ESChQTEFORV9CVUZfQ0ZHKFBJUEVfQywgMykpOworCisJTU1JT19E SChDVVJfQlVGX0NGRyhQSVBFX0EpKTsKKwlNTUlPX0RIKENVUl9CVUZfQ0ZHKFBJUEVfQikpOwor CU1NSU9fREgoQ1VSX0JVRl9DRkcoUElQRV9DKSk7CisKKwlNTUlPX0RIKFBMQU5FX1dNX1RSQU5T KFBJUEVfQSwgMCkpOworCU1NSU9fREgoUExBTkVfV01fVFJBTlMoUElQRV9BLCAxKSk7CisJTU1J T19ESChQTEFORV9XTV9UUkFOUyhQSVBFX0EsIDIpKTsKKworCU1NSU9fREgoUExBTkVfV01fVFJB TlMoUElQRV9CLCAwKSk7CisJTU1JT19ESChQTEFORV9XTV9UUkFOUyhQSVBFX0IsIDEpKTsKKwlN TUlPX0RIKFBMQU5FX1dNX1RSQU5TKFBJUEVfQiwgMikpOworCisJTU1JT19ESChQTEFORV9XTV9U UkFOUyhQSVBFX0MsIDApKTsKKwlNTUlPX0RIKFBMQU5FX1dNX1RSQU5TKFBJUEVfQywgMSkpOwor CU1NSU9fREgoUExBTkVfV01fVFJBTlMoUElQRV9DLCAyKSk7CisKKwlNTUlPX0RIKENVUl9XTV9U UkFOUyhQSVBFX0EpKTsKKwlNTUlPX0RIKENVUl9XTV9UUkFOUyhQSVBFX0IpKTsKKwlNTUlPX0RI KENVUl9XTV9UUkFOUyhQSVBFX0MpKTsKKworCU1NSU9fREgoUExBTkVfTlYxMl9CVUZfQ0ZHKFBJ UEVfQSwgMCkpOworCU1NSU9fREgoUExBTkVfTlYxMl9CVUZfQ0ZHKFBJUEVfQSwgMSkpOworCU1N SU9fREgoUExBTkVfTlYxMl9CVUZfQ0ZHKFBJUEVfQSwgMikpOworCU1NSU9fREgoUExBTkVfTlYx Ml9CVUZfQ0ZHKFBJUEVfQSwgMykpOworCisJTU1JT19ESChQTEFORV9OVjEyX0JVRl9DRkcoUElQ RV9CLCAwKSk7CisJTU1JT19ESChQTEFORV9OVjEyX0JVRl9DRkcoUElQRV9CLCAxKSk7CisJTU1J T19ESChQTEFORV9OVjEyX0JVRl9DRkcoUElQRV9CLCAyKSk7CisJTU1JT19ESChQTEFORV9OVjEy X0JVRl9DRkcoUElQRV9CLCAzKSk7CisKKwlNTUlPX0RIKFBMQU5FX05WMTJfQlVGX0NGRyhQSVBF X0MsIDApKTsKKwlNTUlPX0RIKFBMQU5FX05WMTJfQlVGX0NGRyhQSVBFX0MsIDEpKTsKKwlNTUlP X0RIKFBMQU5FX05WMTJfQlVGX0NGRyhQSVBFX0MsIDIpKTsKKwlNTUlPX0RIKFBMQU5FX05WMTJf QlVGX0NGRyhQSVBFX0MsIDMpKTsKKworCU1NSU9fREgoX01NSU8oX1JFR183MDFDMChQSVBFX0Es IDEpKSk7CisJTU1JT19ESChfTU1JTyhfUkVHXzcwMUMwKFBJUEVfQSwgMikpKTsKKwlNTUlPX0RI KF9NTUlPKF9SRUdfNzAxQzAoUElQRV9BLCAzKSkpOworCU1NSU9fREgoX01NSU8oX1JFR183MDFD MChQSVBFX0EsIDQpKSk7CisKKwlNTUlPX0RIKF9NTUlPKF9SRUdfNzAxQzAoUElQRV9CLCAxKSkp OworCU1NSU9fREgoX01NSU8oX1JFR183MDFDMChQSVBFX0IsIDIpKSk7CisJTU1JT19ESChfTU1J TyhfUkVHXzcwMUMwKFBJUEVfQiwgMykpKTsKKwlNTUlPX0RIKF9NTUlPKF9SRUdfNzAxQzAoUElQ RV9CLCA0KSkpOworCisJTU1JT19ESChfTU1JTyhfUkVHXzcwMUMwKFBJUEVfQywgMSkpKTsKKwlN TUlPX0RIKF9NTUlPKF9SRUdfNzAxQzAoUElQRV9DLCAyKSkpOworCU1NSU9fREgoX01NSU8oX1JF R183MDFDMChQSVBFX0MsIDMpKSk7CisJTU1JT19ESChfTU1JTyhfUkVHXzcwMUMwKFBJUEVfQywg NCkpKTsKKworCU1NSU9fREgoX01NSU8oX1JFR183MDFDNChQSVBFX0EsIDEpKSk7CisJTU1JT19E SChfTU1JTyhfUkVHXzcwMUM0KFBJUEVfQSwgMikpKTsKKwlNTUlPX0RIKF9NTUlPKF9SRUdfNzAx QzQoUElQRV9BLCAzKSkpOworCU1NSU9fREgoX01NSU8oX1JFR183MDFDNChQSVBFX0EsIDQpKSk7 CisKKwlNTUlPX0RIKF9NTUlPKF9SRUdfNzAxQzQoUElQRV9CLCAxKSkpOworCU1NSU9fREgoX01N SU8oX1JFR183MDFDNChQSVBFX0IsIDIpKSk7CisJTU1JT19ESChfTU1JTyhfUkVHXzcwMUM0KFBJ UEVfQiwgMykpKTsKKwlNTUlPX0RIKF9NTUlPKF9SRUdfNzAxQzQoUElQRV9CLCA0KSkpOworCisJ TU1JT19ESChfTU1JTyhfUkVHXzcwMUM0KFBJUEVfQywgMSkpKTsKKwlNTUlPX0RIKF9NTUlPKF9S RUdfNzAxQzQoUElQRV9DLCAyKSkpOworCU1NSU9fREgoX01NSU8oX1JFR183MDFDNChQSVBFX0Ms IDMpKSk7CisJTU1JT19ESChfTU1JTyhfUkVHXzcwMUM0KFBJUEVfQywgNCkpKTsKKworCU1NSU9f RChfTU1JTygweDcwMzgwKSk7CisJTU1JT19EKF9NTUlPKDB4NzEzODApKTsKKwlNTUlPX0QoX01N SU8oMHg3MjM4MCkpOworCU1NSU9fRChfTU1JTygweDcyMzljKSk7CisJTU1JT19EKF9NTUlPKDB4 NzAzOWMpKTsKKworCU1NSU9fRChfTU1JTygweDhmMDc0KSk7CisJTU1JT19EKF9NTUlPKDB4OGYw MDQpKTsKKwlNTUlPX0QoX01NSU8oMHg4ZjAzNCkpOworCisJTU1JT19EKF9NTUlPKDB4YjExYykp OworCisJTU1JT19EKF9NTUlPKDB4NTEwMDApKTsKKwlNTUlPX0QoX01NSU8oMHg2YzAwYykpOwor CisJTU1JT19EKFJQTV9DT05GSUcwKTsKKwlNTUlPX0QoX01NSU8oMHhkMDgpKTsKKwlNTUlPX0Qo UkM2X0xPQ0FUSU9OKTsKKwlNTUlPX0RGSChfTU1JTygweDIwZTApKTsKKwlNTUlPX0RGSChfTU1J TygweDIwZWMpKTsKKworCU1NSU9fREZIKF9NTUlPKDB4NGRlMCkpOworCU1NSU9fREZIKF9NTUlP KDB4NGRlNCkpOworCU1NSU9fREZIKF9NTUlPKDB4NGRlOCkpOworCU1NSU9fREZIKF9NTUlPKDB4 NGRlYykpOworCU1NSU9fREZIKF9NTUlPKDB4NGRmMCkpOworCU1NSU9fREZIKF9NTUlPKDB4NGRm NCkpOworCU1NSU9fREgoX01NSU8oMHg0ZGZjKSk7CisJTU1JT19EKF9NTUlPKDB4NDY0MzApKTsK KwlNTUlPX0QoX01NSU8oMHg0NjUyMCkpOworCU1NSU9fRChfTU1JTygweGM0MDNjKSk7CisJTU1J T19EKF9NTUlPKDB4YjAwNCkpOworCU1NSU9fREgoRE1BX0NUUkwpOworCisJTU1JT19EKF9NTUlP KDB4NjU5MDApKTsKKwlNTUlPX0QoX01NSU8oMHgxMDgyYzApKTsKKwlNTUlPX0QoX01NSU8oMHg0 MDY4KSk7CisJTU1JT19EKF9NTUlPKDB4NjcwNTQpKTsKKwlNTUlPX0QoX01NSU8oMHg2ZTU2MCkp OworCU1NSU9fRChfTU1JTygweDZlNTU0KSk7CisJTU1JT19EKF9NTUlPKDB4MmIyMCkpOworCU1N SU9fRChfTU1JTygweDY1ZjAwKSk7CisJTU1JT19EKF9NTUlPKDB4NjVmMDgpKTsKKwlNTUlPX0Qo X01NSU8oMHgzMjBmMCkpOworCisJTU1JT19EKF9NTUlPKDB4NzAwMzQpKTsKKwlNTUlPX0QoX01N SU8oMHg3MTAzNCkpOworCU1NSU9fRChfTU1JTygweDcyMDM0KSk7CisKKwlNTUlPX0QoX01NSU8o X1BMQU5FX0tFWVZBTF8xKFBJUEVfQSkpKTsKKwlNTUlPX0QoX01NSU8oX1BMQU5FX0tFWVZBTF8x KFBJUEVfQikpKTsKKwlNTUlPX0QoX01NSU8oX1BMQU5FX0tFWVZBTF8xKFBJUEVfQykpKTsKKwlN TUlPX0QoX01NSU8oX1BMQU5FX0tFWU1BWF8xKFBJUEVfQSkpKTsKKwlNTUlPX0QoX01NSU8oX1BM QU5FX0tFWU1BWF8xKFBJUEVfQikpKTsKKwlNTUlPX0QoX01NSU8oX1BMQU5FX0tFWU1BWF8xKFBJ UEVfQykpKTsKKwlNTUlPX0QoX01NSU8oX1BMQU5FX0tFWU1TS18xKFBJUEVfQSkpKTsKKwlNTUlP X0QoX01NSU8oX1BMQU5FX0tFWU1TS18xKFBJUEVfQikpKTsKKwlNTUlPX0QoX01NSU8oX1BMQU5F X0tFWU1TS18xKFBJUEVfQykpKTsKKworCU1NSU9fRChfTU1JTygweDQ0NTAwKSk7CisJTU1JT19E RkgoR0VOOV9DU0ZFX0NISUNLRU4xX1JDUyk7CisJTU1JT19ERkgoR0VOOF9IRENfQ0hJQ0tFTjEp OworCU1NSU9fREZIKEdFTjlfV01fQ0hJQ0tFTjMpOworCisJTU1JT19EKF9NTUlPKDB4NGFiOCkp OworCU1NSU9fRChfTU1JTygweDIyNDgpKTsKK30KKworc3RhdGljIHZvaWQgaW5pdF9ieHRfbW1p byhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJTU1JT19EKEdFTjdfU0FN UExFUl9JTlNURE9ORSk7CisJTU1JT19EKEdFTjdfUk9XX0lOU1RET05FKTsKKwlNTUlPX0QoR0VO OF9GQVVMVF9UTEJfREFUQTApOworCU1NSU9fRChHRU44X0ZBVUxUX1RMQl9EQVRBMSk7CisJTU1J T19EKEVSUk9SX0dFTjYpOworCU1NSU9fRChET05FX1JFRyk7CisJTU1JT19EKEVJUik7CisJTU1J T19EKFBHVEJMX0VSKTsKKwlNTUlPX0QoX01NSU8oMHg0MTk0KSk7CisJTU1JT19EKF9NTUlPKDB4 NDI5NCkpOworCU1NSU9fRChfTU1JTygweDQ0OTQpKTsKKworCU1NSU9fUklOR19EKFJJTkdfUFNN SV9DVEwpOworCU1NSU9fUklOR19EKFJJTkdfRE1BX0ZBREQpOworCU1NSU9fUklOR19EKFJJTkdf RE1BX0ZBRERfVURXKTsKKwlNTUlPX1JJTkdfRChSSU5HX0lQRUhSKTsKKwlNTUlPX1JJTkdfRChS SU5HX0lOU1RQUyk7CisJTU1JT19SSU5HX0QoUklOR19CQkFERFJfVURXKTsKKwlNTUlPX1JJTkdf RChSSU5HX0JCU1RBVEUpOworCU1NSU9fUklOR19EKFJJTkdfSVBFSVIpOworCisJTU1JT19ESChC WFRfUF9DUl9HVF9ESVNQX1BXUk9OKTsKKwlNTUlPX0QoQlhUX1JQX1NUQVRFX0NBUCk7CisJTU1J T19ESChCWFRfUEhZX0NUTF9GQU1JTFkoRFBJT19QSFkwKSk7CisJTU1JT19ESChCWFRfUEhZX0NU TF9GQU1JTFkoRFBJT19QSFkxKSk7CisJTU1JT19EKEJYVF9QSFlfQ1RMKFBPUlRfQSkpOworCU1N SU9fRChCWFRfUEhZX0NUTChQT1JUX0IpKTsKKwlNTUlPX0QoQlhUX1BIWV9DVEwoUE9SVF9DKSk7 CisJTU1JT19ESChCWFRfUE9SVF9QTExfRU5BQkxFKFBPUlRfQSkpOworCU1NSU9fREgoQlhUX1BP UlRfUExMX0VOQUJMRShQT1JUX0IpKTsKKwlNTUlPX0RIKEJYVF9QT1JUX1BMTF9FTkFCTEUoUE9S VF9DKSk7CisKKwlNTUlPX0QoQlhUX1BPUlRfQ0wxQ01fRFcwKERQSU9fUEhZMCkpOworCU1NSU9f RChCWFRfUE9SVF9DTDFDTV9EVzkoRFBJT19QSFkwKSk7CisJTU1JT19EKEJYVF9QT1JUX0NMMUNN X0RXMTAoRFBJT19QSFkwKSk7CisJTU1JT19EKEJYVF9QT1JUX0NMMUNNX0RXMjgoRFBJT19QSFkw KSk7CisJTU1JT19EKEJYVF9QT1JUX0NMMUNNX0RXMzAoRFBJT19QSFkwKSk7CisJTU1JT19EKEJY VF9QT1JUX0NMMkNNX0RXNihEUElPX1BIWTApKTsKKwlNTUlPX0QoQlhUX1BPUlRfUkVGX0RXMyhE UElPX1BIWTApKTsKKwlNTUlPX0QoQlhUX1BPUlRfUkVGX0RXNihEUElPX1BIWTApKTsKKwlNTUlP X0QoQlhUX1BPUlRfUkVGX0RXOChEUElPX1BIWTApKTsKKworCU1NSU9fRChCWFRfUE9SVF9DTDFD TV9EVzAoRFBJT19QSFkxKSk7CisJTU1JT19EKEJYVF9QT1JUX0NMMUNNX0RXOShEUElPX1BIWTEp KTsKKwlNTUlPX0QoQlhUX1BPUlRfQ0wxQ01fRFcxMChEUElPX1BIWTEpKTsKKwlNTUlPX0QoQlhU X1BPUlRfQ0wxQ01fRFcyOChEUElPX1BIWTEpKTsKKwlNTUlPX0QoQlhUX1BPUlRfQ0wxQ01fRFcz MChEUElPX1BIWTEpKTsKKwlNTUlPX0QoQlhUX1BPUlRfQ0wyQ01fRFc2KERQSU9fUEhZMSkpOwor CU1NSU9fRChCWFRfUE9SVF9SRUZfRFczKERQSU9fUEhZMSkpOworCU1NSU9fRChCWFRfUE9SVF9S RUZfRFc2KERQSU9fUEhZMSkpOworCU1NSU9fRChCWFRfUE9SVF9SRUZfRFc4KERQSU9fUEhZMSkp OworCisJTU1JT19EKEJYVF9QT1JUX1BMTF9FQkJfMChEUElPX1BIWTAsIERQSU9fQ0gwKSk7CisJ TU1JT19EKEJYVF9QT1JUX1BMTF9FQkJfNChEUElPX1BIWTAsIERQSU9fQ0gwKSk7CisJTU1JT19E KEJYVF9QT1JUX1BDU19EVzEwX0xOMDEoRFBJT19QSFkwLCBEUElPX0NIMCkpOworCU1NSU9fRChC WFRfUE9SVF9QQ1NfRFcxMF9HUlAoRFBJT19QSFkwLCBEUElPX0NIMCkpOworCU1NSU9fRChCWFRf UE9SVF9QQ1NfRFcxMl9MTjAxKERQSU9fUEhZMCwgRFBJT19DSDApKTsKKwlNTUlPX0QoQlhUX1BP UlRfUENTX0RXMTJfTE4yMyhEUElPX1BIWTAsIERQSU9fQ0gwKSk7CisJTU1JT19ESChCWFRfUE9S VF9QQ1NfRFcxMl9HUlAoRFBJT19QSFkwLCBEUElPX0NIMCkpOworCU1NSU9fRChCWFRfUE9SVF9U WF9EVzJfTE4wKERQSU9fUEhZMCwgRFBJT19DSDApKTsKKwlNTUlPX0QoQlhUX1BPUlRfVFhfRFcy X0dSUChEUElPX1BIWTAsIERQSU9fQ0gwKSk7CisJTU1JT19ESChCWFRfUE9SVF9UWF9EVzNfTE4w KERQSU9fUEhZMCwgRFBJT19DSDApKTsKKwlNTUlPX0QoQlhUX1BPUlRfVFhfRFczX0dSUChEUElP X1BIWTAsIERQSU9fQ0gwKSk7CisJTU1JT19EKEJYVF9QT1JUX1RYX0RXNF9MTjAoRFBJT19QSFkw LCBEUElPX0NIMCkpOworCU1NSU9fRChCWFRfUE9SVF9UWF9EVzRfR1JQKERQSU9fUEhZMCwgRFBJ T19DSDApKTsKKwlNTUlPX0QoQlhUX1BPUlRfVFhfRFcxNF9MTihEUElPX1BIWTAsIERQSU9fQ0gw LCAwKSk7CisJTU1JT19EKEJYVF9QT1JUX1RYX0RXMTRfTE4oRFBJT19QSFkwLCBEUElPX0NIMCwg MSkpOworCU1NSU9fRChCWFRfUE9SVF9UWF9EVzE0X0xOKERQSU9fUEhZMCwgRFBJT19DSDAsIDIp KTsKKwlNTUlPX0QoQlhUX1BPUlRfVFhfRFcxNF9MTihEUElPX1BIWTAsIERQSU9fQ0gwLCAzKSk7 CisJTU1JT19EKEJYVF9QT1JUX1BMTChEUElPX1BIWTAsIERQSU9fQ0gwLCAwKSk7CisJTU1JT19E KEJYVF9QT1JUX1BMTChEUElPX1BIWTAsIERQSU9fQ0gwLCAxKSk7CisJTU1JT19EKEJYVF9QT1JU X1BMTChEUElPX1BIWTAsIERQSU9fQ0gwLCAyKSk7CisJTU1JT19EKEJYVF9QT1JUX1BMTChEUElP X1BIWTAsIERQSU9fQ0gwLCAzKSk7CisJTU1JT19EKEJYVF9QT1JUX1BMTChEUElPX1BIWTAsIERQ SU9fQ0gwLCA2KSk7CisJTU1JT19EKEJYVF9QT1JUX1BMTChEUElPX1BIWTAsIERQSU9fQ0gwLCA4 KSk7CisJTU1JT19EKEJYVF9QT1JUX1BMTChEUElPX1BIWTAsIERQSU9fQ0gwLCA5KSk7CisJTU1J T19EKEJYVF9QT1JUX1BMTChEUElPX1BIWTAsIERQSU9fQ0gwLCAxMCkpOworCisJTU1JT19EKEJY VF9QT1JUX1BMTF9FQkJfMChEUElPX1BIWTAsIERQSU9fQ0gxKSk7CisJTU1JT19EKEJYVF9QT1JU X1BMTF9FQkJfNChEUElPX1BIWTAsIERQSU9fQ0gxKSk7CisJTU1JT19EKEJYVF9QT1JUX1BDU19E VzEwX0xOMDEoRFBJT19QSFkwLCBEUElPX0NIMSkpOworCU1NSU9fRChCWFRfUE9SVF9QQ1NfRFcx MF9HUlAoRFBJT19QSFkwLCBEUElPX0NIMSkpOworCU1NSU9fRChCWFRfUE9SVF9QQ1NfRFcxMl9M TjAxKERQSU9fUEhZMCwgRFBJT19DSDEpKTsKKwlNTUlPX0QoQlhUX1BPUlRfUENTX0RXMTJfTE4y MyhEUElPX1BIWTAsIERQSU9fQ0gxKSk7CisJTU1JT19ESChCWFRfUE9SVF9QQ1NfRFcxMl9HUlAo RFBJT19QSFkwLCBEUElPX0NIMSkpOworCU1NSU9fRChCWFRfUE9SVF9UWF9EVzJfTE4wKERQSU9f UEhZMCwgRFBJT19DSDEpKTsKKwlNTUlPX0QoQlhUX1BPUlRfVFhfRFcyX0dSUChEUElPX1BIWTAs IERQSU9fQ0gxKSk7CisJTU1JT19ESChCWFRfUE9SVF9UWF9EVzNfTE4wKERQSU9fUEhZMCwgRFBJ T19DSDEpKTsKKwlNTUlPX0QoQlhUX1BPUlRfVFhfRFczX0dSUChEUElPX1BIWTAsIERQSU9fQ0gx KSk7CisJTU1JT19EKEJYVF9QT1JUX1RYX0RXNF9MTjAoRFBJT19QSFkwLCBEUElPX0NIMSkpOwor CU1NSU9fRChCWFRfUE9SVF9UWF9EVzRfR1JQKERQSU9fUEhZMCwgRFBJT19DSDEpKTsKKwlNTUlP X0QoQlhUX1BPUlRfVFhfRFcxNF9MTihEUElPX1BIWTAsIERQSU9fQ0gxLCAwKSk7CisJTU1JT19E KEJYVF9QT1JUX1RYX0RXMTRfTE4oRFBJT19QSFkwLCBEUElPX0NIMSwgMSkpOworCU1NSU9fRChC WFRfUE9SVF9UWF9EVzE0X0xOKERQSU9fUEhZMCwgRFBJT19DSDEsIDIpKTsKKwlNTUlPX0QoQlhU X1BPUlRfVFhfRFcxNF9MTihEUElPX1BIWTAsIERQSU9fQ0gxLCAzKSk7CisJTU1JT19EKEJYVF9Q T1JUX1BMTChEUElPX1BIWTAsIERQSU9fQ0gxLCAwKSk7CisJTU1JT19EKEJYVF9QT1JUX1BMTChE UElPX1BIWTAsIERQSU9fQ0gxLCAxKSk7CisJTU1JT19EKEJYVF9QT1JUX1BMTChEUElPX1BIWTAs IERQSU9fQ0gxLCAyKSk7CisJTU1JT19EKEJYVF9QT1JUX1BMTChEUElPX1BIWTAsIERQSU9fQ0gx LCAzKSk7CisJTU1JT19EKEJYVF9QT1JUX1BMTChEUElPX1BIWTAsIERQSU9fQ0gxLCA2KSk7CisJ TU1JT19EKEJYVF9QT1JUX1BMTChEUElPX1BIWTAsIERQSU9fQ0gxLCA4KSk7CisJTU1JT19EKEJY VF9QT1JUX1BMTChEUElPX1BIWTAsIERQSU9fQ0gxLCA5KSk7CisJTU1JT19EKEJYVF9QT1JUX1BM TChEUElPX1BIWTAsIERQSU9fQ0gxLCAxMCkpOworCisJTU1JT19EKEJYVF9QT1JUX1BMTF9FQkJf MChEUElPX1BIWTEsIERQSU9fQ0gwKSk7CisJTU1JT19EKEJYVF9QT1JUX1BMTF9FQkJfNChEUElP X1BIWTEsIERQSU9fQ0gwKSk7CisJTU1JT19EKEJYVF9QT1JUX1BDU19EVzEwX0xOMDEoRFBJT19Q SFkxLCBEUElPX0NIMCkpOworCU1NSU9fRChCWFRfUE9SVF9QQ1NfRFcxMF9HUlAoRFBJT19QSFkx LCBEUElPX0NIMCkpOworCU1NSU9fRChCWFRfUE9SVF9QQ1NfRFcxMl9MTjAxKERQSU9fUEhZMSwg RFBJT19DSDApKTsKKwlNTUlPX0QoQlhUX1BPUlRfUENTX0RXMTJfTE4yMyhEUElPX1BIWTEsIERQ SU9fQ0gwKSk7CisJTU1JT19ESChCWFRfUE9SVF9QQ1NfRFcxMl9HUlAoRFBJT19QSFkxLCBEUElP X0NIMCkpOworCU1NSU9fRChCWFRfUE9SVF9UWF9EVzJfTE4wKERQSU9fUEhZMSwgRFBJT19DSDAp KTsKKwlNTUlPX0QoQlhUX1BPUlRfVFhfRFcyX0dSUChEUElPX1BIWTEsIERQSU9fQ0gwKSk7CisJ TU1JT19ESChCWFRfUE9SVF9UWF9EVzNfTE4wKERQSU9fUEhZMSwgRFBJT19DSDApKTsKKwlNTUlP X0QoQlhUX1BPUlRfVFhfRFczX0dSUChEUElPX1BIWTEsIERQSU9fQ0gwKSk7CisJTU1JT19EKEJY VF9QT1JUX1RYX0RXNF9MTjAoRFBJT19QSFkxLCBEUElPX0NIMCkpOworCU1NSU9fRChCWFRfUE9S VF9UWF9EVzRfR1JQKERQSU9fUEhZMSwgRFBJT19DSDApKTsKKwlNTUlPX0QoQlhUX1BPUlRfVFhf RFcxNF9MTihEUElPX1BIWTEsIERQSU9fQ0gwLCAwKSk7CisJTU1JT19EKEJYVF9QT1JUX1RYX0RX MTRfTE4oRFBJT19QSFkxLCBEUElPX0NIMCwgMSkpOworCU1NSU9fRChCWFRfUE9SVF9UWF9EVzE0 X0xOKERQSU9fUEhZMSwgRFBJT19DSDAsIDIpKTsKKwlNTUlPX0QoQlhUX1BPUlRfVFhfRFcxNF9M TihEUElPX1BIWTEsIERQSU9fQ0gwLCAzKSk7CisJTU1JT19EKEJYVF9QT1JUX1BMTChEUElPX1BI WTEsIERQSU9fQ0gwLCAwKSk7CisJTU1JT19EKEJYVF9QT1JUX1BMTChEUElPX1BIWTEsIERQSU9f Q0gwLCAxKSk7CisJTU1JT19EKEJYVF9QT1JUX1BMTChEUElPX1BIWTEsIERQSU9fQ0gwLCAyKSk7 CisJTU1JT19EKEJYVF9QT1JUX1BMTChEUElPX1BIWTEsIERQSU9fQ0gwLCAzKSk7CisJTU1JT19E KEJYVF9QT1JUX1BMTChEUElPX1BIWTEsIERQSU9fQ0gwLCA2KSk7CisJTU1JT19EKEJYVF9QT1JU X1BMTChEUElPX1BIWTEsIERQSU9fQ0gwLCA4KSk7CisJTU1JT19EKEJYVF9QT1JUX1BMTChEUElP X1BIWTEsIERQSU9fQ0gwLCA5KSk7CisJTU1JT19EKEJYVF9QT1JUX1BMTChEUElPX1BIWTEsIERQ SU9fQ0gwLCAxMCkpOworCisJTU1JT19EKEJYVF9ERV9QTExfQ1RMKTsKKwlNTUlPX0RIKEJYVF9E RV9QTExfRU5BQkxFKTsKKwlNTUlPX0QoQlhUX0RTSV9QTExfQ1RMKTsKKwlNTUlPX0QoQlhUX0RT SV9QTExfRU5BQkxFKTsKKworCU1NSU9fRChHRU45X0NMS0dBVEVfRElTXzApOworCU1NSU9fRChH RU45X0NMS0dBVEVfRElTXzQpOworCisJTU1JT19EKEhTV19UVklERU9fRElQX0dDUChUUkFOU0NP REVSX0EpKTsKKwlNTUlPX0QoSFNXX1RWSURFT19ESVBfR0NQKFRSQU5TQ09ERVJfQikpOworCU1N SU9fRChIU1dfVFZJREVPX0RJUF9HQ1AoVFJBTlNDT0RFUl9DKSk7CisKKwlNTUlPX0QoUkM2X0NU WF9CQVNFKTsKKworCU1NSU9fRChHRU44X1BVU0hCVVNfQ09OVFJPTCk7CisJTU1JT19EKEdFTjhf UFVTSEJVU19FTkFCTEUpOworCU1NSU9fRChHRU44X1BVU0hCVVNfU0hJRlQpOworCU1NSU9fRChH RU42X0dGWFBBVVNFKTsKKwlNTUlPX0QoR0VOOF9MM1NRQ1JFRzEpOworCisJTU1JT19ERkgoR0VO OV9DVFhfUFJFRU1QVF9SRUcpOworfQorCiBzdGF0aWMgYm9vbCBpc19zdXBwb3J0ZWRfZGV2aWNl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlpZiAoSVNfQlJPQURXRUxM KGRldl9wcml2KSkKQEAgLTUyLDkyICsxNDcxLDQ0IEBAIHN0YXRpYyBib29sIGlzX3N1cHBvcnRl ZF9kZXZpY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXJldHVybiBmYWxz ZTsKIH0KIAotLyoqCi0gKiBpbnRlbF9ndnRfc2FuaXRpemVfb3B0aW9ucyAtIHNhbml0aXplIEdW VCByZWxhdGVkIG9wdGlvbnMKLSAqIEBkZXZfcHJpdjogZHJtIGk5MTUgcHJpdmF0ZSBkYXRhCi0g KgotICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYXQgdGhlIGk5MTUgb3B0aW9ucyBzYW5pdGl6 ZSBzdGFnZS4KLSAqLwotdm9pZCBpbnRlbF9ndnRfc2FuaXRpemVfb3B0aW9ucyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCisvKiBWZXJ5IGVhcmx5IEhXIHNuYXBzaG90IGZvciB2 R1BVJ3MgaW5pdGlhbCBzdGF0ZSAqLwordm9pZCBpbnRlbF9ndnRfaW5pdF9tbWlvKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlpZiAoIWk5MTVfbW9kcGFyYW1zLmVuYWJs ZV9ndnQpCi0JCXJldHVybjsKLQogCWlmIChpbnRlbF92Z3B1X2FjdGl2ZShkZXZfcHJpdikpIHsK IAkJRFJNX0lORk8oIkdWVC1nIGlzIGRpc2FibGVkIGZvciBndWVzdFxuIik7Ci0JCWdvdG8gYmFp bDsKKwkJcmV0dXJuOwogCX0KIAogCWlmICghaXNfc3VwcG9ydGVkX2RldmljZShkZXZfcHJpdikp IHsKIAkJRFJNX0lORk8oIlVuc3VwcG9ydGVkIGRldmljZS4gR1ZULWcgaXMgZGlzYWJsZWRcbiIp OwotCQlnb3RvIGJhaWw7Ci0JfQotCi0JcmV0dXJuOwotYmFpbDoKLQlpOTE1X21vZHBhcmFtcy5l bmFibGVfZ3Z0ID0gMDsKLX0KLQotLyoqCi0gKiBpbnRlbF9ndnRfaW5pdCAtIGluaXRpYWxpemUg R1ZUIGNvbXBvbmVudHMKLSAqIEBkZXZfcHJpdjogZHJtIGk5MTUgcHJpdmF0ZSBkYXRhCi0gKgot ICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYXQgdGhlIGluaXRpYWxpemF0aW9uIHN0YWdlIHRv IGNyZWF0ZSBhIEdWVCBkZXZpY2UuCi0gKgotICogUmV0dXJuczoKLSAqIFplcm8gb24gc3VjY2Vz cywgbmVnYXRpdmUgZXJyb3IgY29kZSBpZiBmYWlsZWQuCi0gKgotICovCi1pbnQgaW50ZWxfZ3Z0 X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCWludCByZXQ7Ci0K LQlpZiAoaTkxNV9pbmplY3RfbG9hZF9mYWlsdXJlKCkpCi0JCXJldHVybiAtRU5PREVWOwotCi0J aWYgKCFpOTE1X21vZHBhcmFtcy5lbmFibGVfZ3Z0KSB7Ci0JCURSTV9ERUJVR19EUklWRVIoIkdW VC1nIGlzIGRpc2FibGVkIGJ5IGtlcm5lbCBwYXJhbXNcbiIpOwotCQlyZXR1cm4gMDsKKwkJcmV0 dXJuOwogCX0KKwkKKwlkZXZfcHJpdi0+aHdfaW5pdF9tbWlvID0ga3Z6YWxsb2MoMiAqIDEwMjQg KiAxMDI0LAorCQkJCQkgIEdGUF9LRVJORUwpOworCWlmICghZGV2X3ByaXYtPmh3X2luaXRfbW1p bykKKwkJcmV0dXJuOwogCi0JaWYgKFVTRVNfR1VDX1NVQk1JU1NJT04oZGV2X3ByaXYpKSB7Ci0J CURSTV9FUlJPUigiaTkxNSBHVlQtZyBsb2FkaW5nIGZhaWxlZCBkdWUgdG8gR3JhcGhpY3Mgdmly dHVhbGl6YXRpb24gaXMgbm90IHlldCBzdXBwb3J0ZWQgd2l0aCBHdUMgc3VibWlzc2lvblxuIik7 Ci0JCXJldHVybiAtRUlPOwotCX0KKwlpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2dldChkZXZfcHJp diwgRk9SQ0VXQUtFX0FMTCk7CiAKLQkvKgotCSAqIFdlJ3JlIG5vdCBpbiBob3N0IG9yIGZhaWwg dG8gZmluZCBhIE1QVCBtb2R1bGUsIGRpc2FibGUgR1ZULWcKLQkgKi8KLQlyZXQgPSBpbnRlbF9n dnRfaW5pdF9ob3N0KCk7Ci0JaWYgKHJldCkgewotCQlEUk1fREVCVUdfRFJJVkVSKCJOb3QgaW4g aG9zdCBvciBNUFQgbW9kdWxlcyBub3QgZm91bmRcbiIpOwotCQlnb3RvIGJhaWw7CisJaW5pdF9n ZW5lcmFsX3JhbmdlKGRldl9wcml2KTsKKwlpbml0X2Jkd19yYW5nZShkZXZfcHJpdik7CisJaW5p dF9nZW5lcmFsX21taW8oZGV2X3ByaXYpOworCWluaXRfYmR3X21taW8oZGV2X3ByaXYpOworCWlm IChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikgfHwKKwkgICAg SVNfQlJPWFRPTihkZXZfcHJpdikpIHsKKwkJaW5pdF9za2xfcmFuZ2UoZGV2X3ByaXYpOworCQlp bml0X3NrbF9tbWlvKGRldl9wcml2KTsKIAl9Ci0KLQlyZXQgPSBpbnRlbF9ndnRfaW5pdF9kZXZp Y2UoZGV2X3ByaXYpOwotCWlmIChyZXQpIHsKLQkJRFJNX0RFQlVHX0RSSVZFUigiRmFpbCB0byBp bml0IEdWVCBkZXZpY2VcbiIpOwotCQlnb3RvIGJhaWw7CisJaWYgKElTX0JST1hUT04oZGV2X3By aXYpKSB7CisJCWluaXRfYnh0X3JhbmdlKGRldl9wcml2KTsKKwkJaW5pdF9ieHRfbW1pbyhkZXZf cHJpdik7CiAJfQotCi0JcmV0dXJuIDA7Ci0KLWJhaWw6Ci0JaTkxNV9tb2RwYXJhbXMuZW5hYmxl X2d2dCA9IDA7Ci0JcmV0dXJuIDA7CisJCisJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoZGV2 X3ByaXYsIEZPUkNFV0FLRV9BTEwpOwogfQogCi0vKioKLSAqIGludGVsX2d2dF9jbGVhbnVwIC0g Y2xlYW51cCBHVlQgY29tcG9uZW50cyB3aGVuIGk5MTUgZHJpdmVyIGlzIHVubG9hZGluZwotICog QGRldl9wcml2OiBkcm0gaTkxNSBwcml2YXRlICoKLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIGlzIGNh bGxlZCBhdCB0aGUgaTkxNSBkcml2ZXIgdW5sb2FkaW5nIHN0YWdlLCB0byBzaHV0ZG93bgotICog R1ZUIGNvbXBvbmVudHMgYW5kIHJlbGVhc2UgdGhlIHJlbGF0ZWQgcmVzb3VyY2VzLgotICovCi12 b2lkIGludGVsX2d2dF9jbGVhbnVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK K3ZvaWQgaW50ZWxfZ3Z0X2NsZWFuX21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQogewotCWlmICghaW50ZWxfZ3Z0X2FjdGl2ZShkZXZfcHJpdikpCi0JCXJldHVybjsKLQot CWludGVsX2d2dF9jbGVhbl9kZXZpY2UoZGV2X3ByaXYpOworCWt2ZnJlZShkZXZfcHJpdi0+aHdf aW5pdF9tbWlvKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2 dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Z0LmgKaW5kZXggNjFiMjQ2NDcwMjgy Li41MDNjYTQ4ZWNiY2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2 dC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d2dC5oCkBAIC0xOSwzMiArMTks MTcgQEAKICAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRP UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiAgKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElP TiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQog ICogU09GVFdBUkUuCi0gKi8KKyovCiAKICNpZm5kZWYgX0lOVEVMX0dWVF9IXwogI2RlZmluZSBf SU5URUxfR1ZUX0hfCiAKLXN0cnVjdCBpbnRlbF9ndnQ7Ci0KLSNpZmRlZiBDT05GSUdfRFJNX0k5 MTVfR1ZUCi1pbnQgaW50ZWxfZ3Z0X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKLXZvaWQgaW50ZWxfZ3Z0X2NsZWFudXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KTsKLWludCBpbnRlbF9ndnRfaW5pdF9kZXZpY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKLXZvaWQgaW50ZWxfZ3Z0X2NsZWFuX2RldmljZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotaW50IGludGVsX2d2dF9pbml0X2hvc3Qodm9pZCk7Ci12 b2lkIGludGVsX2d2dF9zYW5pdGl6ZV9vcHRpb25zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7CisjaWYgZGVmaW5lZChDT05GSUdfRFJNX0k5MTVfR1ZUKSB8fCBkZWZpbmVkKENP TkZJR19EUk1fSTkxNV9HVlRfTU9EVUxFKQordm9pZCBpbnRlbF9ndnRfaW5pdF9tbWlvKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cit2b2lkIGludGVsX2d2dF9jbGVhbl9tbWlv KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiAjZWxzZQotc3RhdGljIGlubGlu ZSBpbnQgaW50ZWxfZ3Z0X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQot ewotCXJldHVybiAwOwotfQotc3RhdGljIGlubGluZSB2b2lkIGludGVsX2d2dF9jbGVhbnVwKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLX0KLQotc3RhdGljIGlubGluZSB2 b2lkIGludGVsX2d2dF9zYW5pdGl6ZV9vcHRpb25zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKLXsKLX0KK3N0YXRpYyB2b2lkIGludGVsX2d2dF9pbml0X21taW8oc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KSB7fQorc3RhdGljIHZvaWQgaW50ZWxfZ3Z0X2NsZWFu X21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KSB7fQogI2VuZGlmCiAKLSNl bmRpZiAvKiBfSU5URUxfR1ZUX0hfICovCisjZW5kaWYKLS0gCjIuMTkuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==