From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH] drm/i915: Use i915_global_register() Date: Tue, 5 Mar 2019 21:06:57 +0000 Message-ID: <20190305210657.28474-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4BD596E013 for ; Tue, 5 Mar 2019 21:07:19 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org UmF0aGVyIHRoYW4gbWFudWFsbHkgYWRkIGV2ZXJ5IG5ldyBnbG9iYWwgaW50byBlYWNoIGhvb2ss IHVzZQppOTE1X2dsb2JhbF9yZWdpc3RlcigpIGZ1bmN0aW9uIGFuZCBrZWVwIGEgbGlzdCBvZiBy ZWdpc3RlcmVkIGdsb2JhbHMgdG8KaW52b2tlIGluc3RlYWQuCgpIb3dldmVyLCBJIGhhdmVuJ3Qg Zm91bmQgYSB3YXkgZm9yIHJhbmRvbSBkcml2ZXJzIHRvIGFkZCBhbiAuaW5pdCB0YWJsZQp0byBh dm9pZCBoYXZpbmcgdG8gbWFudWFsbHkgYWRkIG91cnNlbHZlcyB0byBpOTE1X2dsb2JhbHNfaW5p dCgpIGVhY2gKdGltZS4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMt d2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmMgICAg ICB8IDI4ICsrKysrKystLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmUuaCAg ICAgIHwgIDIgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIHwgMjgg KysrKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmggfCAg MiAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9vYmplY3QuYyAgfCAyOCArKysrKysr LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVjdC5oICB8ICAyIC0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2xvYmFscy5jICAgICB8IDU5ICsrKysrKysrKysrKyst LS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2xvYmFscy5oICAgICB8IDEx ICsrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyAgICAgfCAzNiArKysr KysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oICAgICB8ICAy IC0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMgICB8IDMyICsrKysrKysr Ky0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5oICAgfCAgMiAtCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jICAgICAgICAgfCAyOCArKysrKysrLS0tLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmggICAgICAgICB8ICAyIC0KIDE0IGZpbGVz IGNoYW5nZWQsIDE1NiBpbnNlcnRpb25zKCspLCAxMDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfYWN0aXZlLmMKaW5kZXggZDlmNjQ3MWFjMTZjLi44NjNhZTEyNzA3YmEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9hY3RpdmUuYwpAQCAtNiw2ICs2LDcgQEAKIAogI2luY2x1ZGUgImk5 MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaTkxNV9hY3RpdmUuaCIKKyNpbmNsdWRlICJpOTE1X2dsb2Jh bHMuaCIKIAogI2RlZmluZSBCS0wocmVmKSAoJihyZWYpLT5pOTE1LT5kcm0uc3RydWN0X211dGV4 KQogCkBAIC0xNyw2ICsxOCw3IEBACiAgKiBub2RlcyBmcm9tIGEgbG9jYWwgc2xhYiBjYWNoZSB0 byBob3BlZnVsbHkgcmVkdWNlIHRoZSBmcmFnbWVudGF0aW9uLgogICovCiBzdGF0aWMgc3RydWN0 IGk5MTVfZ2xvYmFsX2FjdGl2ZSB7CisJc3RydWN0IGk5MTVfZ2xvYmFsIGJhc2U7CiAJc3RydWN0 IGttZW1fY2FjaGUgKnNsYWJfY2FjaGU7CiB9IGdsb2JhbDsKIApAQCAtMjg1LDIxICsyODcsMjcg QEAgdm9pZCBpOTE1X2FjdGl2ZV9yZXRpcmVfbm9vcChzdHJ1Y3QgaTkxNV9hY3RpdmVfcmVxdWVz dCAqYWN0aXZlLAogI2luY2x1ZGUgInNlbGZ0ZXN0cy9pOTE1X2FjdGl2ZS5jIgogI2VuZGlmCiAK LWludCBfX2luaXQgaTkxNV9nbG9iYWxfYWN0aXZlX2luaXQodm9pZCkKK3N0YXRpYyB2b2lkIGk5 MTVfZ2xvYmFsX2FjdGl2ZV9zaHJpbmsodm9pZCkKIHsKLQlnbG9iYWwuc2xhYl9jYWNoZSA9IEtN RU1fQ0FDSEUoYWN0aXZlX25vZGUsIFNMQUJfSFdDQUNIRV9BTElHTik7Ci0JaWYgKCFnbG9iYWwu c2xhYl9jYWNoZSkKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlyZXR1cm4gMDsKKwlrbWVtX2NhY2hl X3NocmluayhnbG9iYWwuc2xhYl9jYWNoZSk7CiB9CiAKLXZvaWQgaTkxNV9nbG9iYWxfYWN0aXZl X3Nocmluayh2b2lkKQorc3RhdGljIHZvaWQgaTkxNV9nbG9iYWxfYWN0aXZlX2V4aXQodm9pZCkK IHsKLQlrbWVtX2NhY2hlX3NocmluayhnbG9iYWwuc2xhYl9jYWNoZSk7CisJa21lbV9jYWNoZV9k ZXN0cm95KGdsb2JhbC5zbGFiX2NhY2hlKTsKIH0KIAotdm9pZCBpOTE1X2dsb2JhbF9hY3RpdmVf ZXhpdCh2b2lkKQorc3RhdGljIHN0cnVjdCBpOTE1X2dsb2JhbF9hY3RpdmUgZ2xvYmFsID0geyB7 CisJLnNocmluayA9IGk5MTVfZ2xvYmFsX2FjdGl2ZV9zaHJpbmssCisJLmV4aXQgPSBpOTE1X2ds b2JhbF9hY3RpdmVfZXhpdCwKK30gfTsKKworaW50IF9faW5pdCBpOTE1X2dsb2JhbF9hY3RpdmVf aW5pdCh2b2lkKQogewotCWttZW1fY2FjaGVfZGVzdHJveShnbG9iYWwuc2xhYl9jYWNoZSk7CisJ Z2xvYmFsLnNsYWJfY2FjaGUgPSBLTUVNX0NBQ0hFKGFjdGl2ZV9ub2RlLCBTTEFCX0hXQ0FDSEVf QUxJR04pOworCWlmICghZ2xvYmFsLnNsYWJfY2FjaGUpCisJCXJldHVybiAtRU5PTUVNOworCisJ aTkxNV9nbG9iYWxfcmVnaXN0ZXIoJmdsb2JhbC5iYXNlKTsKKwlyZXR1cm4gMDsKIH0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2FjdGl2ZS5oCmluZGV4IDVmYmQ5MTAyMzg0Yi4uNTc1YzAxODQ2ODc1IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2FjdGl2ZS5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmgKQEAgLTQyMCw3ICs0MjAsNSBAQCBzdGF0aWMg aW5saW5lIHZvaWQgaTkxNV9hY3RpdmVfZmluaShzdHJ1Y3QgaTkxNV9hY3RpdmUgKnJlZikgeyB9 CiAjZW5kaWYKIAogaW50IGk5MTVfZ2xvYmFsX2FjdGl2ZV9pbml0KHZvaWQpOwotdm9pZCBpOTE1 X2dsb2JhbF9hY3RpdmVfc2hyaW5rKHZvaWQpOwotdm9pZCBpOTE1X2dsb2JhbF9hY3RpdmVfZXhp dCh2b2lkKTsKIAogI2VuZGlmIC8qIF9JOTE1X0FDVElWRV9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fY29udGV4dC5jCmluZGV4IDFlMzIxMWU5MDlmMS4uYjlmMzIxOTQ3OTgyIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCkBAIC04OCw2ICs4OCw3IEBA CiAjaW5jbHVkZSA8bGludXgvbG9nMi5oPgogI2luY2x1ZGUgPGRybS9pOTE1X2RybS5oPgogI2lu Y2x1ZGUgImk5MTVfZHJ2LmgiCisjaW5jbHVkZSAiaTkxNV9nbG9iYWxzLmgiCiAjaW5jbHVkZSAi aTkxNV90cmFjZS5oIgogI2luY2x1ZGUgImludGVsX2xyY19yZWcuaCIKICNpbmNsdWRlICJpbnRl bF93b3JrYXJvdW5kcy5oIgpAQCAtOTUsNiArOTYsNyBAQAogI2RlZmluZSBBTExfTDNfU0xJQ0VT KGRldikgKDEgPDwgTlVNX0wzX1NMSUNFUyhkZXYpKSAtIDEKIAogc3RhdGljIHN0cnVjdCBpOTE1 X2dsb2JhbF9jb250ZXh0IHsKKwlzdHJ1Y3QgaTkxNV9nbG9iYWwgYmFzZTsKIAlzdHJ1Y3Qga21l bV9jYWNoZSAqc2xhYl9sdXRzOwogfSBnbG9iYWw7CiAKQEAgLTE0MjMsMjEgKzE0MjUsMjcgQEAg aW50IF9faTkxNV9nZW1fY29udGV4dF9waW5faHdfaWQoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQg KmN0eCkKICNpbmNsdWRlICJzZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jIgogI2VuZGlmCiAK LWludCBfX2luaXQgaTkxNV9nbG9iYWxfY29udGV4dF9pbml0KHZvaWQpCitzdGF0aWMgdm9pZCBp OTE1X2dsb2JhbF9jb250ZXh0X3Nocmluayh2b2lkKQogewotCWdsb2JhbC5zbGFiX2x1dHMgPSBL TUVNX0NBQ0hFKGk5MTVfbHV0X2hhbmRsZSwgMCk7Ci0JaWYgKCFnbG9iYWwuc2xhYl9sdXRzKQot CQlyZXR1cm4gLUVOT01FTTsKLQotCXJldHVybiAwOworCWttZW1fY2FjaGVfc2hyaW5rKGdsb2Jh bC5zbGFiX2x1dHMpOwogfQogCi12b2lkIGk5MTVfZ2xvYmFsX2NvbnRleHRfc2hyaW5rKHZvaWQp CitzdGF0aWMgdm9pZCBpOTE1X2dsb2JhbF9jb250ZXh0X2V4aXQodm9pZCkKIHsKLQlrbWVtX2Nh Y2hlX3NocmluayhnbG9iYWwuc2xhYl9sdXRzKTsKKwlrbWVtX2NhY2hlX2Rlc3Ryb3koZ2xvYmFs LnNsYWJfbHV0cyk7CiB9CiAKLXZvaWQgaTkxNV9nbG9iYWxfY29udGV4dF9leGl0KHZvaWQpCitz dGF0aWMgc3RydWN0IGk5MTVfZ2xvYmFsX2NvbnRleHQgZ2xvYmFsID0geyB7CisJLnNocmluayA9 IGk5MTVfZ2xvYmFsX2NvbnRleHRfc2hyaW5rLAorCS5leGl0ID0gaTkxNV9nbG9iYWxfY29udGV4 dF9leGl0LAorfSB9OworCitpbnQgX19pbml0IGk5MTVfZ2xvYmFsX2NvbnRleHRfaW5pdCh2b2lk KQogewotCWttZW1fY2FjaGVfZGVzdHJveShnbG9iYWwuc2xhYl9sdXRzKTsKKwlnbG9iYWwuc2xh Yl9sdXRzID0gS01FTV9DQUNIRShpOTE1X2x1dF9oYW5kbGUsIDApOworCWlmICghZ2xvYmFsLnNs YWJfbHV0cykKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlpOTE1X2dsb2JhbF9yZWdpc3RlcigmZ2xv YmFsLmJhc2UpOworCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fY29udGV4dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29u dGV4dC5oCmluZGV4IGJlNjM2NjZmZmFhYy4uYjU5MTA3MjQ4YjU0IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fY29udGV4dC5oCkBAIC00MTIsNyArNDEyLDUgQEAgc3RydWN0IGk5MTVf bHV0X2hhbmRsZSAqaTkxNV9sdXRfaGFuZGxlX2FsbG9jKHZvaWQpOwogdm9pZCBpOTE1X2x1dF9o YW5kbGVfZnJlZShzdHJ1Y3QgaTkxNV9sdXRfaGFuZGxlICpsdXQpOwogCiBpbnQgaTkxNV9nbG9i YWxfY29udGV4dF9pbml0KHZvaWQpOwotdm9pZCBpOTE1X2dsb2JhbF9jb250ZXh0X3Nocmluayh2 b2lkKTsKLXZvaWQgaTkxNV9nbG9iYWxfY29udGV4dF9leGl0KHZvaWQpOwogCiAjZW5kaWYgLyog IV9fSTkxNV9HRU1fQ09OVEVYVF9IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fb2Jq ZWN0LmMKaW5kZXggNGFlYjhjM2I4N2U0Li5hYzZhNWFiODQ1ODYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVjdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX29iamVjdC5jCkBAIC0yNCw4ICsyNCwxMCBAQAogCiAjaW5jbHVkZSAiaTkx NV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X2dlbV9vYmplY3QuaCIKKyNpbmNsdWRlICJpOTE1X2ds b2JhbHMuaCIKIAogc3RhdGljIHN0cnVjdCBpOTE1X2dsb2JhbF9vYmplY3QgeworCXN0cnVjdCBp OTE1X2dsb2JhbCBiYXNlOwogCXN0cnVjdCBrbWVtX2NhY2hlICpzbGFiX29iamVjdHM7CiB9IGds b2JhbDsKIApAQCAtNjEsNiArNjMsMjEgQEAgdm9pZCBpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hl X2NvaGVyZW5jeShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkhKG9iai0+Y2Fj aGVfY29oZXJlbnQgJiBJOTE1X0JPX0NBQ0hFX0NPSEVSRU5UX0ZPUl9XUklURSk7CiB9CiAKK3N0 YXRpYyB2b2lkIGk5MTVfZ2xvYmFsX29iamVjdHNfc2hyaW5rKHZvaWQpCit7CisJa21lbV9jYWNo ZV9zaHJpbmsoZ2xvYmFsLnNsYWJfb2JqZWN0cyk7Cit9CisKK3N0YXRpYyB2b2lkIGk5MTVfZ2xv YmFsX29iamVjdHNfZXhpdCh2b2lkKQoreworCWttZW1fY2FjaGVfZGVzdHJveShnbG9iYWwuc2xh Yl9vYmplY3RzKTsKK30KKworc3RhdGljIHN0cnVjdCBpOTE1X2dsb2JhbF9vYmplY3QgZ2xvYmFs ID0geyB7CisJLnNocmluayA9IGk5MTVfZ2xvYmFsX29iamVjdHNfc2hyaW5rLAorCS5leGl0ID0g aTkxNV9nbG9iYWxfb2JqZWN0c19leGl0LAorfSB9OworCiBpbnQgX19pbml0IGk5MTVfZ2xvYmFs X29iamVjdHNfaW5pdCh2b2lkKQogewogCWdsb2JhbC5zbGFiX29iamVjdHMgPQpAQCAtNjgsMTUg Kzg1LDYgQEAgaW50IF9faW5pdCBpOTE1X2dsb2JhbF9vYmplY3RzX2luaXQodm9pZCkKIAlpZiAo IWdsb2JhbC5zbGFiX29iamVjdHMpCiAJCXJldHVybiAtRU5PTUVNOwogCisJaTkxNV9nbG9iYWxf cmVnaXN0ZXIoJmdsb2JhbC5iYXNlKTsKIAlyZXR1cm4gMDsKIH0KLQotdm9pZCBpOTE1X2dsb2Jh bF9vYmplY3RzX3Nocmluayh2b2lkKQotewotCWttZW1fY2FjaGVfc2hyaW5rKGdsb2JhbC5zbGFi X29iamVjdHMpOwotfQotCi12b2lkIGk5MTVfZ2xvYmFsX29iamVjdHNfZXhpdCh2b2lkKQotewot CWttZW1fY2FjaGVfZGVzdHJveShnbG9iYWwuc2xhYl9vYmplY3RzKTsKLX0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVjdC5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fb2JqZWN0LmgKaW5kZXggMGVhYTJiM2FlYjYyLi43NWQ0OWZlMTJkMTgg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVjdC5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29iamVjdC5oCkBAIC01MDMsNyArNTAzLDUg QEAgdm9pZCBpOTE1X2dlbV9vYmplY3Rfc2V0X2NhY2hlX2NvaGVyZW5jeShzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLAogdm9pZCBpOTE1X2dlbV9vYmplY3RfZmx1c2hfaWZfZGlzcGxh eShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKIAogaW50IGk5MTVfZ2xvYmFsX29i amVjdHNfaW5pdCh2b2lkKTsKLXZvaWQgaTkxNV9nbG9iYWxfb2JqZWN0c19zaHJpbmsodm9pZCk7 Ci12b2lkIGk5MTVfZ2xvYmFsX29iamVjdHNfZXhpdCh2b2lkKTsKIAogI2VuZGlmCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dsb2JhbHMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2xvYmFscy5jCmluZGV4IGNmZDBiYzQ2MmY1OC4uMzgzYjQzZDg2ZTcxIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dsb2JhbHMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dsb2JhbHMuYwpAQCAtMTUsNjIgKzE1LDcwIEBACiAjaW5j bHVkZSAiaTkxNV9zY2hlZHVsZXIuaCIKICNpbmNsdWRlICJpOTE1X3ZtYS5oIgogCitzdGF0aWMg TElTVF9IRUFEKGdsb2JhbHMpOworCit2b2lkIF9faW5pdCBpOTE1X2dsb2JhbF9yZWdpc3Rlcihz dHJ1Y3QgaTkxNV9nbG9iYWwgKmdsb2JhbCkKK3sKKwlHRU1fQlVHX09OKCFnbG9iYWwtPnNocmlu ayk7CisJR0VNX0JVR19PTighZ2xvYmFsLT5leGl0KTsKKworCWxpc3RfYWRkX3RhaWwoJmdsb2Jh bC0+bGluaywgJmdsb2JhbHMpOworfQorCitzdGF0aWMgdm9pZCBfX2k5MTVfZ2xvYmFsc19jbGVh bnVwKHZvaWQpCit7CisJc3RydWN0IGk5MTVfZ2xvYmFsICpnbG9iYWwsICpuZXh0OworCisJbGlz dF9mb3JfZWFjaF9lbnRyeV9zYWZlX3JldmVyc2UoZ2xvYmFsLCBuZXh0LCAmZ2xvYmFscywgbGlu aykKKwkJZ2xvYmFsLT5leGl0KCk7Cit9CisKIGludCBfX2luaXQgaTkxNV9nbG9iYWxzX2luaXQo dm9pZCkKIHsKIAlpbnQgZXJyOwogCiAJZXJyID0gaTkxNV9nbG9iYWxfYWN0aXZlX2luaXQoKTsK IAlpZiAoZXJyKQotCQlyZXR1cm4gZXJyOworCQlnb3RvIGVycjsKIAogCWVyciA9IGk5MTVfZ2xv YmFsX2NvbnRleHRfaW5pdCgpOwogCWlmIChlcnIpCi0JCWdvdG8gZXJyX2FjdGl2ZTsKKwkJZ290 byBlcnI7CiAKIAllcnIgPSBpOTE1X2dsb2JhbF9vYmplY3RzX2luaXQoKTsKIAlpZiAoZXJyKQot CQlnb3RvIGVycl9jb250ZXh0OworCQlnb3RvIGVycjsKIAogCWVyciA9IGk5MTVfZ2xvYmFsX3Jl cXVlc3RfaW5pdCgpOwogCWlmIChlcnIpCi0JCWdvdG8gZXJyX29iamVjdHM7CisJCWdvdG8gZXJy OwogCiAJZXJyID0gaTkxNV9nbG9iYWxfc2NoZWR1bGVyX2luaXQoKTsKIAlpZiAoZXJyKQotCQln b3RvIGVycl9yZXF1ZXN0OworCQlnb3RvIGVycjsKIAogCWVyciA9IGk5MTVfZ2xvYmFsX3ZtYV9p bml0KCk7CiAJaWYgKGVycikKLQkJZ290byBlcnJfc2NoZWR1bGVyOworCQlnb3RvIGVycjsKIAog CXJldHVybiAwOwogCi1lcnJfc2NoZWR1bGVyOgotCWk5MTVfZ2xvYmFsX3NjaGVkdWxlcl9leGl0 KCk7Ci1lcnJfcmVxdWVzdDoKLQlpOTE1X2dsb2JhbF9yZXF1ZXN0X2V4aXQoKTsKLWVycl9vYmpl Y3RzOgotCWk5MTVfZ2xvYmFsX29iamVjdHNfZXhpdCgpOwotZXJyX2NvbnRleHQ6Ci0JaTkxNV9n bG9iYWxfY29udGV4dF9leGl0KCk7Ci1lcnJfYWN0aXZlOgotCWk5MTVfZ2xvYmFsX2FjdGl2ZV9l eGl0KCk7CitlcnI6CisJX19pOTE1X2dsb2JhbHNfY2xlYW51cCgpOwogCXJldHVybiBlcnI7CiB9 CiAKIHN0YXRpYyB2b2lkIGk5MTVfZ2xvYmFsc19zaHJpbmsodm9pZCkKIHsKKwlzdHJ1Y3QgaTkx NV9nbG9iYWwgKmdsb2JhbDsKKwogCS8qCiAJICoga21lbV9jYWNoZV9zaHJpbmsoKSBkaXNjYXJk cyBlbXB0eSBzbGFicyBhbmQgcmVvcmRlcnMgcGFydGlhbGx5CiAJICogZmlsbGVkIHNsYWJzIHRv IHByaW9yaXRpc2UgYWxsb2NhdGluZyBmcm9tIHRoZSBtb3N0bHkgZnVsbCBzbGFicywKIAkgKiB3 aXRoIHRoZSBhaW0gb2YgcmVkdWNpbmcgZnJhZ21lbnRhdGlvbi4KIAkgKi8KLQlpOTE1X2dsb2Jh bF9hY3RpdmVfc2hyaW5rKCk7Ci0JaTkxNV9nbG9iYWxfY29udGV4dF9zaHJpbmsoKTsKLQlpOTE1 X2dsb2JhbF9vYmplY3RzX3NocmluaygpOwotCWk5MTVfZ2xvYmFsX3JlcXVlc3Rfc2hyaW5rKCk7 Ci0JaTkxNV9nbG9iYWxfc2NoZWR1bGVyX3NocmluaygpOwotCWk5MTVfZ2xvYmFsX3ZtYV9zaHJp bmsoKTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGdsb2JhbCwgJmdsb2JhbHMsIGxpbmspCisJCWds b2JhbC0+c2hyaW5rKCk7CiB9CiAKIHN0YXRpYyBhdG9taWNfdCBhY3RpdmU7CkBAIC0xMjgsMTIg KzEzNiw3IEBAIHZvaWQgX19leGl0IGk5MTVfZ2xvYmFsc19leGl0KHZvaWQpCiAJcmN1X2JhcnJp ZXIoKTsKIAlmbHVzaF9zY2hlZHVsZWRfd29yaygpOwogCi0JaTkxNV9nbG9iYWxfdm1hX2V4aXQo KTsKLQlpOTE1X2dsb2JhbF9zY2hlZHVsZXJfZXhpdCgpOwotCWk5MTVfZ2xvYmFsX3JlcXVlc3Rf ZXhpdCgpOwotCWk5MTVfZ2xvYmFsX29iamVjdHNfZXhpdCgpOwotCWk5MTVfZ2xvYmFsX2NvbnRl eHRfZXhpdCgpOwotCWk5MTVfZ2xvYmFsX2FjdGl2ZV9leGl0KCk7CisJX19pOTE1X2dsb2JhbHNf Y2xlYW51cCgpOwogCiAJLyogQW5kIGVuc3VyZSB0aGF0IG91ciBERVNUUk9ZX0JZX1JDVSBzbGFi cyBhcmUgdHJ1bHkgZGVzdHJveWVkICovCiAJcmN1X2JhcnJpZXIoKTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2xvYmFscy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nbG9iYWxzLmgKaW5kZXggZTQ2OGYwNDEzYTczLi5iOTI0ZWM4ZDExNTYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2xvYmFscy5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2xvYmFscy5oCkBAIC03LDYgKzcsMTcgQEAKICNpZm5kZWYgX0k5MTVf R0xPQkFMU19IXwogI2RlZmluZSBfSTkxNV9HTE9CQUxTX0hfCiAKK3R5cGVkZWYgdm9pZCAoKmk5 MTVfZ2xvYmFsX2Z1bmNfdCkodm9pZCk7CisKK3N0cnVjdCBpOTE1X2dsb2JhbCB7CisJc3RydWN0 IGxpc3RfaGVhZCBsaW5rOworCisJaTkxNV9nbG9iYWxfZnVuY190IHNocmluazsKKwlpOTE1X2ds b2JhbF9mdW5jX3QgZXhpdDsKK307CisKK3ZvaWQgaTkxNV9nbG9iYWxfcmVnaXN0ZXIoc3RydWN0 IGk5MTVfZ2xvYmFsICpnbG9iYWwpOworCiBpbnQgaTkxNV9nbG9iYWxzX2luaXQodm9pZCk7CiB2 b2lkIGk5MTVfZ2xvYmFsc19wYXJrKHZvaWQpOwogdm9pZCBpOTE1X2dsb2JhbHNfdW5wYXJrKHZv aWQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwppbmRleCBiY2YzYzFhMTU1ZTIuLmY4 YTYzNDk1MTE0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMKQEAgLTMxLDYgKzMx LDcgQEAKIAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaTkxNV9hY3RpdmUuaCIK KyNpbmNsdWRlICJpOTE1X2dsb2JhbHMuaCIKICNpbmNsdWRlICJpOTE1X3Jlc2V0LmgiCiAKIHN0 cnVjdCBleGVjdXRlX2NiIHsKQEAgLTQwLDYgKzQxLDcgQEAgc3RydWN0IGV4ZWN1dGVfY2Igewog fTsKIAogc3RhdGljIHN0cnVjdCBpOTE1X2dsb2JhbF9yZXF1ZXN0IHsKKwlzdHJ1Y3QgaTkxNV9n bG9iYWwgYmFzZTsKIAlzdHJ1Y3Qga21lbV9jYWNoZSAqc2xhYl9yZXF1ZXN0czsKIAlzdHJ1Y3Qg a21lbV9jYWNoZSAqc2xhYl9kZXBlbmRlbmNpZXM7CiAJc3RydWN0IGttZW1fY2FjaGUgKnNsYWJf ZXhlY3V0ZV9jYnM7CkBAIC0xMzM4LDYgKzEzNDAsMjUgQEAgdm9pZCBpOTE1X3JldGlyZV9yZXF1 ZXN0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKICNpbmNsdWRlICJzZWxmdGVzdHMv aTkxNV9yZXF1ZXN0LmMiCiAjZW5kaWYKIAorc3RhdGljIHZvaWQgaTkxNV9nbG9iYWxfcmVxdWVz dF9zaHJpbmsodm9pZCkKK3sKKwlrbWVtX2NhY2hlX3NocmluayhnbG9iYWwuc2xhYl9kZXBlbmRl bmNpZXMpOworCWttZW1fY2FjaGVfc2hyaW5rKGdsb2JhbC5zbGFiX2V4ZWN1dGVfY2JzKTsKKwlr bWVtX2NhY2hlX3NocmluayhnbG9iYWwuc2xhYl9yZXF1ZXN0cyk7Cit9CisKK3N0YXRpYyB2b2lk IGk5MTVfZ2xvYmFsX3JlcXVlc3RfZXhpdCh2b2lkKQoreworCWttZW1fY2FjaGVfZGVzdHJveShn bG9iYWwuc2xhYl9kZXBlbmRlbmNpZXMpOworCWttZW1fY2FjaGVfZGVzdHJveShnbG9iYWwuc2xh Yl9leGVjdXRlX2Nicyk7CisJa21lbV9jYWNoZV9kZXN0cm95KGdsb2JhbC5zbGFiX3JlcXVlc3Rz KTsKK30KKworc3RhdGljIHN0cnVjdCBpOTE1X2dsb2JhbF9yZXF1ZXN0IGdsb2JhbCA9IHsgewor CS5zaHJpbmsgPSBpOTE1X2dsb2JhbF9yZXF1ZXN0X3NocmluaywKKwkuZXhpdCA9IGk5MTVfZ2xv YmFsX3JlcXVlc3RfZXhpdCwKK30gfTsKKwogaW50IF9faW5pdCBpOTE1X2dsb2JhbF9yZXF1ZXN0 X2luaXQodm9pZCkKIHsKIAlnbG9iYWwuc2xhYl9yZXF1ZXN0cyA9IEtNRU1fQ0FDSEUoaTkxNV9y ZXF1ZXN0LApAQCAtMTM2MCw2ICsxMzgxLDcgQEAgaW50IF9faW5pdCBpOTE1X2dsb2JhbF9yZXF1 ZXN0X2luaXQodm9pZCkKIAlpZiAoIWdsb2JhbC5zbGFiX2RlcGVuZGVuY2llcykKIAkJZ290byBl cnJfZXhlY3V0ZV9jYnM7CiAKKwlpOTE1X2dsb2JhbF9yZWdpc3RlcigmZ2xvYmFsLmJhc2UpOwog CXJldHVybiAwOwogCiBlcnJfZXhlY3V0ZV9jYnM6CkBAIC0xMzY4LDE3ICsxMzkwLDMgQEAgaW50 IF9faW5pdCBpOTE1X2dsb2JhbF9yZXF1ZXN0X2luaXQodm9pZCkKIAlrbWVtX2NhY2hlX2Rlc3Ry b3koZ2xvYmFsLnNsYWJfcmVxdWVzdHMpOwogCXJldHVybiAtRU5PTUVNOwogfQotCi12b2lkIGk5 MTVfZ2xvYmFsX3JlcXVlc3Rfc2hyaW5rKHZvaWQpCi17Ci0Ja21lbV9jYWNoZV9zaHJpbmsoZ2xv YmFsLnNsYWJfZGVwZW5kZW5jaWVzKTsKLQlrbWVtX2NhY2hlX3NocmluayhnbG9iYWwuc2xhYl9l eGVjdXRlX2Nicyk7Ci0Ja21lbV9jYWNoZV9zaHJpbmsoZ2xvYmFsLnNsYWJfcmVxdWVzdHMpOwot fQotCi12b2lkIGk5MTVfZ2xvYmFsX3JlcXVlc3RfZXhpdCh2b2lkKQotewotCWttZW1fY2FjaGVf ZGVzdHJveShnbG9iYWwuc2xhYl9kZXBlbmRlbmNpZXMpOwotCWttZW1fY2FjaGVfZGVzdHJveShn bG9iYWwuc2xhYl9leGVjdXRlX2Nicyk7Ci0Ja21lbV9jYWNoZV9kZXN0cm95KGdsb2JhbC5zbGFi X3JlcXVlc3RzKTsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVx dWVzdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmgKaW5kZXggNGRkMWRl YTFkMWFmLi4xNWE0NmI2Y2Q1ZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVxdWVzdC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oCkBA IC00MDcsNyArNDA3LDUgQEAgc3RhdGljIGlubGluZSB2b2lkIGk5MTVfcmVxdWVzdF9tYXJrX2Nv bXBsZXRlKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQogdm9pZCBpOTE1X3JldGlyZV9yZXF1ZXN0 cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7CiAKIGludCBpOTE1X2dsb2JhbF9yZXF1 ZXN0X2luaXQodm9pZCk7Ci12b2lkIGk5MTVfZ2xvYmFsX3JlcXVlc3Rfc2hyaW5rKHZvaWQpOwot dm9pZCBpOTE1X2dsb2JhbF9yZXF1ZXN0X2V4aXQodm9pZCk7CiAKICNlbmRpZiAvKiBJOTE1X1JF UVVFU1RfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVs ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmMKaW5kZXggM2YwYTRk NTZiZDM3Li5lMGY2MDlkMDE1NjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfc2NoZWR1bGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIu YwpAQCAtNywxMCArNywxMiBAQAogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAKICNpbmNsdWRl ICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImk5MTVfZ2xvYmFscy5oIgogI2luY2x1ZGUgImk5MTVf cmVxdWVzdC5oIgogI2luY2x1ZGUgImk5MTVfc2NoZWR1bGVyLmgiCiAKIHN0YXRpYyBzdHJ1Y3Qg aTkxNV9nbG9iYWxfc2NoZWR1bGVyIHsKKwlzdHJ1Y3QgaTkxNV9nbG9iYWwgYmFzZTsKIAlzdHJ1 Y3Qga21lbV9jYWNoZSAqc2xhYl9kZXBlbmRlbmNpZXM7CiAJc3RydWN0IGttZW1fY2FjaGUgKnNs YWJfcHJpb3JpdGllczsKIH0gZ2xvYmFsOwpAQCAtNDM3LDYgKzQzOSwyMyBAQCB2b2lkIF9faTkx NV9wcmlvbGlzdF9mcmVlKHN0cnVjdCBpOTE1X3ByaW9saXN0ICpwKQogCWttZW1fY2FjaGVfZnJl ZShnbG9iYWwuc2xhYl9wcmlvcml0aWVzLCBwKTsKIH0KIAorc3RhdGljIHZvaWQgaTkxNV9nbG9i YWxfc2NoZWR1bGVyX3Nocmluayh2b2lkKQoreworCWttZW1fY2FjaGVfc2hyaW5rKGdsb2JhbC5z bGFiX2RlcGVuZGVuY2llcyk7CisJa21lbV9jYWNoZV9zaHJpbmsoZ2xvYmFsLnNsYWJfcHJpb3Jp dGllcyk7Cit9CisKK3N0YXRpYyB2b2lkIGk5MTVfZ2xvYmFsX3NjaGVkdWxlcl9leGl0KHZvaWQp Cit7CisJa21lbV9jYWNoZV9kZXN0cm95KGdsb2JhbC5zbGFiX2RlcGVuZGVuY2llcyk7CisJa21l bV9jYWNoZV9kZXN0cm95KGdsb2JhbC5zbGFiX3ByaW9yaXRpZXMpOworfQorCitzdGF0aWMgc3Ry dWN0IGk5MTVfZ2xvYmFsX3NjaGVkdWxlciBnbG9iYWwgPSB7IHsKKwkuc2hyaW5rID0gaTkxNV9n bG9iYWxfc2NoZWR1bGVyX3NocmluaywKKwkuZXhpdCA9IGk5MTVfZ2xvYmFsX3NjaGVkdWxlcl9l eGl0LAorfSB9OworCiBpbnQgX19pbml0IGk5MTVfZ2xvYmFsX3NjaGVkdWxlcl9pbml0KHZvaWQp CiB7CiAJZ2xvYmFsLnNsYWJfZGVwZW5kZW5jaWVzID0gS01FTV9DQUNIRShpOTE1X2RlcGVuZGVu Y3ksCkBAIC00NDksMjEgKzQ2OCwxMCBAQCBpbnQgX19pbml0IGk5MTVfZ2xvYmFsX3NjaGVkdWxl cl9pbml0KHZvaWQpCiAJaWYgKCFnbG9iYWwuc2xhYl9wcmlvcml0aWVzKQogCQlnb3RvIGVycl9w cmlvcml0aWVzOwogCisJaTkxNV9nbG9iYWxfcmVnaXN0ZXIoJmdsb2JhbC5iYXNlKTsKIAlyZXR1 cm4gMDsKIAogZXJyX3ByaW9yaXRpZXM6CiAJa21lbV9jYWNoZV9kZXN0cm95KGdsb2JhbC5zbGFi X3ByaW9yaXRpZXMpOwogCXJldHVybiAtRU5PTUVNOwogfQotCi12b2lkIGk5MTVfZ2xvYmFsX3Nj aGVkdWxlcl9zaHJpbmsodm9pZCkKLXsKLQlrbWVtX2NhY2hlX3NocmluayhnbG9iYWwuc2xhYl9k ZXBlbmRlbmNpZXMpOwotCWttZW1fY2FjaGVfc2hyaW5rKGdsb2JhbC5zbGFiX3ByaW9yaXRpZXMp OwotfQotCi12b2lkIGk5MTVfZ2xvYmFsX3NjaGVkdWxlcl9leGl0KHZvaWQpCi17Ci0Ja21lbV9j YWNoZV9kZXN0cm95KGdsb2JhbC5zbGFiX2RlcGVuZGVuY2llcyk7Ci0Ja21lbV9jYWNoZV9kZXN0 cm95KGdsb2JhbC5zbGFiX3ByaW9yaXRpZXMpOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9zY2hlZHVsZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2No ZWR1bGVyLmgKaW5kZXggNmNlNDUwY2Y2M2ZhLi41NDQ3MDkwMTlkNDggMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1bGVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9zY2hlZHVsZXIuaApAQCAtMTM1LDcgKzEzNSw1IEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBpOTE1X3ByaW9saXN0X2ZyZWUoc3RydWN0IGk5MTVfcHJpb2xpc3QgKnApCiB9CiAKIGlu dCBpOTE1X2dsb2JhbF9zY2hlZHVsZXJfaW5pdCh2b2lkKTsKLXZvaWQgaTkxNV9nbG9iYWxfc2No ZWR1bGVyX3Nocmluayh2b2lkKTsKLXZvaWQgaTkxNV9nbG9iYWxfc2NoZWR1bGVyX2V4aXQodm9p ZCk7CiAKICNlbmRpZiAvKiBfSTkxNV9TQ0hFRFVMRVJfSF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Zt YS5jCmluZGV4IDc1N2EzMzk5OGJiZi4uMzY3MjYzOTJlNzM3IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf dm1hLmMKQEAgLTI1LDEyICsyNSwxNCBAQAogI2luY2x1ZGUgImk5MTVfdm1hLmgiCiAKICNpbmNs dWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImk5MTVfZ2xvYmFscy5oIgogI2luY2x1ZGUgImlu dGVsX3JpbmdidWZmZXIuaCIKICNpbmNsdWRlICJpbnRlbF9mcm9udGJ1ZmZlci5oIgogCiAjaW5j bHVkZSA8ZHJtL2RybV9nZW0uaD4KIAogc3RhdGljIHN0cnVjdCBpOTE1X2dsb2JhbF92bWEgewor CXN0cnVjdCBpOTE1X2dsb2JhbCBiYXNlOwogCXN0cnVjdCBrbWVtX2NhY2hlICpzbGFiX3ZtYXM7 CiB9IGdsb2JhbDsKIApAQCAtMTA1NCwyMSArMTA1NiwyNyBAQCBpbnQgaTkxNV92bWFfdW5iaW5k KHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogI2luY2x1ZGUgInNlbGZ0ZXN0cy9pOTE1X3ZtYS5jIgog I2VuZGlmCiAKLWludCBfX2luaXQgaTkxNV9nbG9iYWxfdm1hX2luaXQodm9pZCkKK3N0YXRpYyB2 b2lkIGk5MTVfZ2xvYmFsX3ZtYV9zaHJpbmsodm9pZCkKIHsKLQlnbG9iYWwuc2xhYl92bWFzID0g S01FTV9DQUNIRShpOTE1X3ZtYSwgU0xBQl9IV0NBQ0hFX0FMSUdOKTsKLQlpZiAoIWdsb2JhbC5z bGFiX3ZtYXMpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JcmV0dXJuIDA7CisJa21lbV9jYWNoZV9z aHJpbmsoZ2xvYmFsLnNsYWJfdm1hcyk7CiB9CiAKLXZvaWQgaTkxNV9nbG9iYWxfdm1hX3Nocmlu ayh2b2lkKQorc3RhdGljIHZvaWQgaTkxNV9nbG9iYWxfdm1hX2V4aXQodm9pZCkKIHsKLQlrbWVt X2NhY2hlX3NocmluayhnbG9iYWwuc2xhYl92bWFzKTsKKwlrbWVtX2NhY2hlX2Rlc3Ryb3koZ2xv YmFsLnNsYWJfdm1hcyk7CiB9CiAKLXZvaWQgaTkxNV9nbG9iYWxfdm1hX2V4aXQodm9pZCkKK3N0 YXRpYyBzdHJ1Y3QgaTkxNV9nbG9iYWxfdm1hIGdsb2JhbCA9IHsgeworCS5zaHJpbmsgPSBpOTE1 X2dsb2JhbF92bWFfc2hyaW5rLAorCS5leGl0ID0gaTkxNV9nbG9iYWxfdm1hX2V4aXQsCit9IH07 CisKK2ludCBfX2luaXQgaTkxNV9nbG9iYWxfdm1hX2luaXQodm9pZCkKIHsKLQlrbWVtX2NhY2hl X2Rlc3Ryb3koZ2xvYmFsLnNsYWJfdm1hcyk7CisJZ2xvYmFsLnNsYWJfdm1hcyA9IEtNRU1fQ0FD SEUoaTkxNV92bWEsIFNMQUJfSFdDQUNIRV9BTElHTik7CisJaWYgKCFnbG9iYWwuc2xhYl92bWFz KQorCQlyZXR1cm4gLUVOT01FTTsKKworCWk5MTVfZ2xvYmFsX3JlZ2lzdGVyKCZnbG9iYWwuYmFz ZSk7CisJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3ZtYS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92bWEuaAppbmRleCAzN2Y5MzM1OGFh M2MuLjNjM2RlNTJjYzBkNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92 bWEuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oCkBAIC00NDQsNyArNDQ0 LDUgQEAgc3RydWN0IGk5MTVfdm1hICppOTE1X3ZtYV9hbGxvYyh2b2lkKTsKIHZvaWQgaTkxNV92 bWFfZnJlZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSk7CiAKIGludCBpOTE1X2dsb2JhbF92bWFfaW5p dCh2b2lkKTsKLXZvaWQgaTkxNV9nbG9iYWxfdm1hX3Nocmluayh2b2lkKTsKLXZvaWQgaTkxNV9n bG9iYWxfdm1hX2V4aXQodm9pZCk7CiAKICNlbmRpZgotLSAKMi4yMC4xCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=