From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sravanthi Kollukuduru Subject: [DPU PATCH 1/5] drm/msm/dpu: remove smart dma support Date: Wed, 20 Jun 2018 18:20:16 +0530 Message-ID: <1529499020-8499-2-git-send-email-skolluku@codeaurora.org> References: <1529499020-8499-1-git-send-email-skolluku@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1529499020-8499-1-git-send-email-skolluku-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, Sravanthi Kollukuduru List-Id: linux-arm-msm@vger.kernel.org UmVtb3ZpbmcgdGhlIHNtYXJ0IGRtYSBmZWF0dXJlIGltcGxlbWVudGF0aW9uIGFzIGl0IGlzCmN1 cnJlbnRseSBub3QgZW5hYmxlZCBvbiBkcHUgZHJpdmVyLgoKU2lnbmVkLW9mZi1ieTogU3JhdmFu dGhpIEtvbGx1a3VkdXJ1IDxza29sbHVrdUBjb2RlYXVyb3JhLm9yZz4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jICAgICAgIHwgIDUxICstLS0tCiBkcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfY2F0YWxvZy5jIHwgIDI1ICstLQogZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2NhdGFsb2cuaCB8ICAxOSAtLQogZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2N0bC5jICAgICB8ICA3NiArKy0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfY3RsLmggICAgIHwgICA0IC0KIGRy aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19zc3BwLmMgICAgfCAxNTkgKysrLS0t LS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfc3NwcC5oICAg IHwgIDU2ICstLS0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jICAg ICAgICB8ICAyNiArLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5j ICAgICAgfCAyNjUgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X3BsYW5lLmggICAgICB8ICAzOCArLS0tCiBkcml2ZXJzL2dwdS9kcm0v bXNtL21zbV9kcnYuaCAgICAgICAgICAgICAgICAgIHwgICAyICstCiAxMSBmaWxlcyBjaGFuZ2Vk LCA4NCBpbnNlcnRpb25zKCspLCA2MzcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9jcnRjLmMKaW5kZXggNmM3OGMxMWMzLi5mMGFhZmVjIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKQEAgLTIzMCwxMiArMjMwLDkgQEAgc3Rh dGljIHZvaWQgX2RwdV9jcnRjX2JsZW5kX3NldHVwX21peGVyKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIAkJc3RhZ2VfaWR4ID0genBvc19jbnRbcHN0YXRlLT5zdGFnZV0rKzsKIAkJc3RhZ2VfY2Zn LT5zdGFnZVtwc3RhdGUtPnN0YWdlXVtzdGFnZV9pZHhdID0KIAkJCQkJZHB1X3BsYW5lX3BpcGUo cGxhbmUpOwotCQlzdGFnZV9jZmctPm11bHRpcmVjdF9pbmRleFtwc3RhdGUtPnN0YWdlXVtzdGFn ZV9pZHhdID0KLQkJCQkJcHN0YXRlLT5tdWx0aXJlY3RfaW5kZXg7CiAKIAkJRFBVX0VWVDMyKERS TUlEKGNydGMpLCBEUk1JRChwbGFuZSksIHN0YWdlX2lkeCwKIAkJCWRwdV9wbGFuZV9waXBlKHBs YW5lKSAtIFNTUFBfVklHMCwgcHN0YXRlLT5zdGFnZSwKLQkJCXBzdGF0ZS0+bXVsdGlyZWN0X2lu ZGV4LCBwc3RhdGUtPm11bHRpcmVjdF9tb2RlLAogCQkJZm9ybWF0LT5iYXNlLnBpeGVsX2Zvcm1h dCwgZmIgPyBmYi0+bW9kaWZpZXIgOiAwKTsKIAogCQkvKiBibGVuZCBjb25maWcgdXBkYXRlICov CkBAIC0xMzM0LDE0ICsxMzMxLDEzIEBAIHN0cnVjdCBwbGFuZV9zdGF0ZSB7CiAJc3RydWN0IGRw dV9wbGFuZV9zdGF0ZSAqZHB1X3BzdGF0ZTsKIAljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICpkcm1fcHN0YXRlOwogCWludCBzdGFnZTsKLQl1MzIgcGlwZV9pZDsKIH07CiAKIHN0YXRpYyBp bnQgZHB1X2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJc3RydWN0 IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9jcnRjOwot CXN0cnVjdCBwbGFuZV9zdGF0ZSBwc3RhdGVzW0RQVV9TVEFHRV9NQVggKiA0XTsKKwlzdHJ1Y3Qg cGxhbmVfc3RhdGUgcHN0YXRlc1tEUFVfU1RBR0VfTUFYICogMl07CiAJc3RydWN0IGRwdV9jcnRj X3N0YXRlICpjc3RhdGU7CiAKIAljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwc3RhdGU7 CkBAIC0xMzUxLDEwICsxMzQ3LDYgQEAgc3RhdGljIGludCBkcHVfY3J0Y19hdG9taWNfY2hlY2so c3RydWN0IGRybV9jcnRjICpjcnRjLAogCXN0cnVjdCBkcHVfcHJpdmF0ZV9zdGF0ZSAqZHB1X3By aXZfc3RhdGU7CiAKIAlpbnQgY250ID0gMCwgcmMgPSAwLCBtaXhlcl93aWR0aCwgaSwgel9wb3M7 Ci0KLQlzdHJ1Y3QgZHB1X211bHRpcmVjdF9wbGFuZV9zdGF0ZXMgbXVsdGlyZWN0X3BsYW5lW0RQ VV9TVEFHRV9NQVggKiAyXTsKLQlpbnQgbXVsdGlyZWN0X2NvdW50ID0gMDsKLQljb25zdCBzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpwaXBlX3N0YWdlZFtTU1BQX01BWF07CiAJaW50IGxlZnRfenBv c19jbnQgPSAwLCByaWdodF96cG9zX2NudCA9IDA7CiAKIAlpZiAoIWNydGMpIHsKQEAgLTEzNzgs OCArMTM3MCw2IEBAIHN0YXRpYyBpbnQgZHB1X2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKIAlpZiAoc3RhdGUtPmFjdGl2ZV9jaGFuZ2VkKQogCQlzdGF0ZS0+bW9kZV9j aGFuZ2VkID0gdHJ1ZTsKIAotCW1lbXNldChwaXBlX3N0YWdlZCwgMCwgc2l6ZW9mKHBpcGVfc3Rh Z2VkKSk7Ci0KIAltaXhlcl93aWR0aCA9IGRwdV9jcnRjX2dldF9taXhlcl93aWR0aChkcHVfY3J0 YywgY3N0YXRlLCBtb2RlKTsKIAogCV9kcHVfY3J0Y19zZXR1cF9sbV9ib3VuZHMoY3J0Yywgc3Rh dGUpOwpAQCAtMTM5OCwxOCArMTM4OCw2IEBAIHN0YXRpYyBpbnQgZHB1X2NydGNfYXRvbWljX2No ZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJcHN0YXRlc1tjbnRdLmRwdV9wc3RhdGUgPSB0 b19kcHVfcGxhbmVfc3RhdGUocHN0YXRlKTsKIAkJcHN0YXRlc1tjbnRdLmRybV9wc3RhdGUgPSBw c3RhdGU7CiAJCXBzdGF0ZXNbY250XS5zdGFnZSA9IHBzdGF0ZS0+bm9ybWFsaXplZF96cG9zOwot CQlwc3RhdGVzW2NudF0ucGlwZV9pZCA9IGRwdV9wbGFuZV9waXBlKHBsYW5lKTsKLQotCQlpZiAo cGlwZV9zdGFnZWRbcHN0YXRlc1tjbnRdLnBpcGVfaWRdKSB7Ci0JCQltdWx0aXJlY3RfcGxhbmVb bXVsdGlyZWN0X2NvdW50XS5yMCA9Ci0JCQkJcGlwZV9zdGFnZWRbcHN0YXRlc1tjbnRdLnBpcGVf aWRdOwotCQkJbXVsdGlyZWN0X3BsYW5lW211bHRpcmVjdF9jb3VudF0ucjEgPSBwc3RhdGU7Ci0J CQltdWx0aXJlY3RfY291bnQrKzsKLQotCQkJcGlwZV9zdGFnZWRbcHN0YXRlc1tjbnRdLnBpcGVf aWRdID0gTlVMTDsKLQkJfSBlbHNlIHsKLQkJCXBpcGVfc3RhZ2VkW3BzdGF0ZXNbY250XS5waXBl X2lkXSA9IHBzdGF0ZTsKLQkJfQogCiAJCWNudCsrOwogCkBAIC0xNDI2LDIwICsxNDA0LDYgQEAg c3RhdGljIGludCBkcHVfY3J0Y19hdG9taWNfY2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRjLAog CQl9CiAJfQogCi0JZm9yIChpID0gMTsgaSA8IFNTUFBfTUFYOyBpKyspIHsKLQkJaWYgKHBpcGVf c3RhZ2VkW2ldKSB7Ci0JCQlkcHVfcGxhbmVfY2xlYXJfbXVsdGlyZWN0KHBpcGVfc3RhZ2VkW2ld KTsKLQotCQkJaWYgKGlzX2RwdV9wbGFuZV92aXJ0dWFsKHBpcGVfc3RhZ2VkW2ldLT5wbGFuZSkp IHsKLQkJCQlEUFVfRVJST1IoCi0JCQkJCSJyMSBvbmx5IHZpcnQgcGxhbmU6JWQgbm90IHN1cHBv cnRlZFxuIiwKLQkJCQkJcGlwZV9zdGFnZWRbaV0tPnBsYW5lLT5iYXNlLmlkKTsKLQkJCQlyYyAg PSAtRUlOVkFMOwotCQkJCWdvdG8gZW5kOwotCQkJfQotCQl9Ci0JfQotCiAJel9wb3MgPSAtMTsK IAlmb3IgKGkgPSAwOyBpIDwgY250OyBpKyspIHsKIAkJLyogcmVzZXQgY291bnRzIGF0IGV2ZXJ5 IG5ldyBibGVuZCBzdGFnZSAqLwpAQCAtMTQ3OCwxNyArMTQ0Miw2IEBAIHN0YXRpYyBpbnQgZHB1 X2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJRFBVX0RFQlVHKCIl czogenBvcyAlZCIsIGRwdV9jcnRjLT5uYW1lLCB6X3Bvcyk7CiAJfQogCi0JZm9yIChpID0gMDsg aSA8IG11bHRpcmVjdF9jb3VudDsgaSsrKSB7Ci0JCWlmIChkcHVfcGxhbmVfdmFsaWRhdGVfbXVs dGlyZWN0X3YyKCZtdWx0aXJlY3RfcGxhbmVbaV0pKSB7Ci0JCQlEUFVfRVJST1IoCi0JCQkibXVs dGlyZWN0IHZhbGlkYXRpb24gZmFpbGVkIGZvciBwbGFuZXMgKCVkIC0gJWQpXG4iLAotCQkJCQlt dWx0aXJlY3RfcGxhbmVbaV0ucjAtPnBsYW5lLT5iYXNlLmlkLAotCQkJCQltdWx0aXJlY3RfcGxh bmVbaV0ucjEtPnBsYW5lLT5iYXNlLmlkKTsKLQkJCXJjID0gLUVJTlZBTDsKLQkJCWdvdG8gZW5k OwotCQl9Ci0JfQotCiAJcmMgPSBkcHVfY29yZV9wZXJmX2NydGNfY2hlY2soY3J0Yywgc3RhdGUp OwogCWlmIChyYykgewogCQlEUFVfRVJST1IoImNydGMlZCBmYWlsZWQgcGVyZm9ybWFuY2UgY2hl Y2sgJWRcbiIsCkBAIC0xNzA4LDggKzE2NjEsNiBAQCBzdGF0aWMgaW50IF9kcHVfZGVidWdmc19z dGF0dXNfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpCiAJCXNlcV9wcmludGYo cywgIlx0ZHN0IHg6JTRkIGRzdF95OiU0ZCBkc3RfdzolNGQgZHN0X2g6JTRkXG4iLAogCQkJc3Rh dGUtPmNydGNfeCwgc3RhdGUtPmNydGNfeSwgc3RhdGUtPmNydGNfdywKIAkJCXN0YXRlLT5jcnRj X2gpOwotCQlzZXFfcHJpbnRmKHMsICJcdG11bHRpcmVjdDogbW9kZTogJWQgaW5kZXg6ICVkXG4i LAotCQkJcHN0YXRlLT5tdWx0aXJlY3RfbW9kZSwgcHN0YXRlLT5tdWx0aXJlY3RfaW5kZXgpOwog CiAJCXNlcV9wdXRzKHMsICJcbiIpOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9od19jYXRhbG9nLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfaHdfY2F0YWxvZy5jCmluZGV4IGFiNDZiZjYuLmYwYzI4ODEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19jYXRhbG9nLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2NhdGFsb2cuYwpAQCAtNTgsNyArNTgs NiBAQAogCS5tYXhfbWl4ZXJfd2lkdGggPSBERUZBVUxUX0RQVV9PVVRQVVRfTElORV9XSURUSCwK IAkubWF4X21peGVyX2JsZW5kc3RhZ2VzID0gMHhiLAogCS5xc2VlZF90eXBlID0gRFBVX1NTUFBf U0NBTEVSX1FTRUVEMywKLQkuc21hcnRfZG1hX3JldiA9IERQVV9TU1BQX1NNQVJUX0RNQV9WMiwK IAkudWJ3Y192ZXJzaW9uID0gRFBVX0hXX1VCV0NfVkVSXzIwLAogCS5oYXNfc3JjX3NwbGl0ID0g dHJ1ZSwKIAkuaGFzX2RpbV9sYXllciA9IHRydWUsCkBAIC0xMzQsMTIgKzEzMywxMSBAQAogCS5t YXh2ZGVjaWV4cCA9IE1BWF9WRVJUX0RFQ0lNQVRJT04sCiB9OwogCi0jZGVmaW5lIF9WSUdfU0JM SyhudW0sIHNkbWFfcHJpKSBcCisjZGVmaW5lIF9WSUdfU0JMSyhudW0pIFwKIAl7IFwKIAkuY29t bW9uID0gJnNkbTg0NV9zc3BwX2NvbW1vbiwgXAogCS5tYXhkd25zY2FsZSA9IE1BWF9ET1dOU0NB TEVfUkFUSU8sIFwKIAkubWF4dXBzY2FsZSA9IE1BWF9VUFNDQUxFX1JBVElPLCBcCi0JLnNtYXJ0 X2RtYV9wcmlvcml0eSA9IHNkbWFfcHJpLCBcCiAJLnNyY19ibGsgPSB7Lm5hbWUgPSBTVFJDQVQo InNzcHBfc3JjXyIsIG51bSksIFwKIAkJLmlkID0gRFBVX1NTUFBfU1JDLCAuYmFzZSA9IDB4MDAs IC5sZW4gPSAweDE1MCx9LCBcCiAJLnNjYWxlcl9ibGsgPSB7Lm5hbWUgPSBTVFJDQVQoInNzcHBf c2NhbGVyIiwgbnVtKSwgXApAQCAtMTQ5LDMwICsxNDcsMjcgQEAKIAkJLmlkID0gRFBVX1NTUFBf Q1NDXzEwQklULCBcCiAJCS5iYXNlID0gMHgxYTAwLCAubGVuID0gMHgxMDAsfSwgXAogCS5mb3Jt YXRfbGlzdCA9IHBsYW5lX2Zvcm1hdHNfeXV2LCBcCi0JLnZpcnRfZm9ybWF0X2xpc3QgPSBwbGFu ZV9mb3JtYXRzLCBcCiAJfQogCi0jZGVmaW5lIF9ETUFfU0JMSyhudW0sIHNkbWFfcHJpKSBcCisj ZGVmaW5lIF9ETUFfU0JMSyhudW0pIFwKIAl7IFwKIAkuY29tbW9uID0gJnNkbTg0NV9zc3BwX2Nv bW1vbiwgXAogCS5tYXhkd25zY2FsZSA9IFNTUFBfVU5JVFlfU0NBTEUsIFwKIAkubWF4dXBzY2Fs ZSA9IFNTUFBfVU5JVFlfU0NBTEUsIFwKLQkuc21hcnRfZG1hX3ByaW9yaXR5ID0gc2RtYV9wcmks IFwKIAkuc3JjX2JsayA9IHsubmFtZSA9IFNUUkNBVCgic3NwcF9zcmNfIiwgbnVtKSwgXAogCQku aWQgPSBEUFVfU1NQUF9TUkMsIC5iYXNlID0gMHgwMCwgLmxlbiA9IDB4MTUwLH0sIFwKIAkuZm9y bWF0X2xpc3QgPSBwbGFuZV9mb3JtYXRzLCBcCi0JLnZpcnRfZm9ybWF0X2xpc3QgPSBwbGFuZV9m b3JtYXRzLCBcCiAJfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRwdV9zc3BwX3N1Yl9ibGtzIHNk bTg0NV92aWdfc2Jsa18wID0gX1ZJR19TQkxLKCIwIiwgNSk7Ci1zdGF0aWMgY29uc3Qgc3RydWN0 IGRwdV9zc3BwX3N1Yl9ibGtzIHNkbTg0NV92aWdfc2Jsa18xID0gX1ZJR19TQkxLKCIxIiwgNik7 Ci1zdGF0aWMgY29uc3Qgc3RydWN0IGRwdV9zc3BwX3N1Yl9ibGtzIHNkbTg0NV92aWdfc2Jsa18y ID0gX1ZJR19TQkxLKCIyIiwgNyk7Ci1zdGF0aWMgY29uc3Qgc3RydWN0IGRwdV9zc3BwX3N1Yl9i bGtzIHNkbTg0NV92aWdfc2Jsa18zID0gX1ZJR19TQkxLKCIzIiwgOCk7CitzdGF0aWMgY29uc3Qg c3RydWN0IGRwdV9zc3BwX3N1Yl9ibGtzIHNkbTg0NV92aWdfc2Jsa18wID0gX1ZJR19TQkxLKCIw Iik7CitzdGF0aWMgY29uc3Qgc3RydWN0IGRwdV9zc3BwX3N1Yl9ibGtzIHNkbTg0NV92aWdfc2Js a18xID0gX1ZJR19TQkxLKCIxIik7CitzdGF0aWMgY29uc3Qgc3RydWN0IGRwdV9zc3BwX3N1Yl9i bGtzIHNkbTg0NV92aWdfc2Jsa18yID0gX1ZJR19TQkxLKCIyIik7CitzdGF0aWMgY29uc3Qgc3Ry dWN0IGRwdV9zc3BwX3N1Yl9ibGtzIHNkbTg0NV92aWdfc2Jsa18zID0gX1ZJR19TQkxLKCIzIik7 CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHB1X3NzcHBfc3ViX2Jsa3Mgc2RtODQ1X2RtYV9zYmxr XzAgPSBfRE1BX1NCTEsoIjgiLCAxKTsKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHB1X3NzcHBfc3Vi X2Jsa3Mgc2RtODQ1X2RtYV9zYmxrXzEgPSBfRE1BX1NCTEsoIjkiLCAyKTsKLXN0YXRpYyBjb25z dCBzdHJ1Y3QgZHB1X3NzcHBfc3ViX2Jsa3Mgc2RtODQ1X2RtYV9zYmxrXzIgPSBfRE1BX1NCTEso IjEwIiwgMyk7Ci1zdGF0aWMgY29uc3Qgc3RydWN0IGRwdV9zc3BwX3N1Yl9ibGtzIHNkbTg0NV9k bWFfc2Jsa18zID0gX0RNQV9TQkxLKCIxMSIsIDQpOworc3RhdGljIGNvbnN0IHN0cnVjdCBkcHVf c3NwcF9zdWJfYmxrcyBzZG04NDVfZG1hX3NibGtfMCA9IF9ETUFfU0JMSygiOCIpOworc3RhdGlj IGNvbnN0IHN0cnVjdCBkcHVfc3NwcF9zdWJfYmxrcyBzZG04NDVfZG1hX3NibGtfMSA9IF9ETUFf U0JMSygiOSIpOworc3RhdGljIGNvbnN0IHN0cnVjdCBkcHVfc3NwcF9zdWJfYmxrcyBzZG04NDVf ZG1hX3NibGtfMiA9IF9ETUFfU0JMSygiMTAiKTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHB1X3Nz cHBfc3ViX2Jsa3Mgc2RtODQ1X2RtYV9zYmxrXzMgPSBfRE1BX1NCTEsoIjExIik7CiAKICNkZWZp bmUgU1NQUF9WSUdfQkxLKF9uYW1lLCBfaWQsIF9iYXNlLCBfc2JsaywgX3hpbmlkLCBfY2xrY3Ry bCkgXAogCXsgXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X2h3X2NhdGFsb2cuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19jYXRh bG9nLmgKaW5kZXggZjBjYjBkNC4uMWIwNDQ0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2h3X2NhdGFsb2cuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfaHdfY2F0YWxvZy5oCkBAIC0xMDgsOCArMTA4LDYgQEAgZW51bSB7CiAg KiBARFBVX1NTUFBfUU9TLCAgICAgICAgICAgIFNTUFAgc3VwcG9ydCBRb1MgY29udHJvbCwgZGFu Z2VyL3NhZmUvY3JlcQogICogQERQVV9TU1BQX1FPU184TFZMLCAgICAgICBTU1BQIHN1cHBvcnQg OC1sZXZlbCBRb1MgY29udHJvbAogICogQERQVV9TU1BQX0VYQ0xfUkVDVCwgICAgICBTU1BQIHN1 cHBvcnRzIGV4Y2x1c2lvbiByZWN0Ci0gKiBARFBVX1NTUFBfU01BUlRfRE1BX1YxLCAgIFNtYXJ0 RE1BIDEuMCBzdXBwb3J0Ci0gKiBARFBVX1NTUFBfU01BUlRfRE1BX1YyLCAgIFNtYXJ0RE1BIDIu MCBzdXBwb3J0CiAgKiBARFBVX1NTUFBfVFNfUFJFRklMTCAgICAgIFN1cHBvcnRzIHByZWZpbGwg d2l0aCB0cmFmZmljIHNoYXBlcgogICogQERQVV9TU1BQX1RTX1BSRUZJTExfUkVDMSBTdXBwb3J0 cyBwcmVmaWxsIHdpdGggdHJhZmZpYyBzaGFwZXIgbXVsdGlyZWMKICAqIEBEUFVfU1NQUF9DRFAg ICAgICAgICAgICAgU3VwcG9ydHMgY2xpZW50IGRyaXZlbiBwcmVmZXRjaApAQCAtMTI2LDggKzEy NCw2IEBAIGVudW0gewogCURQVV9TU1BQX1FPUywKIAlEUFVfU1NQUF9RT1NfOExWTCwKIAlEUFVf U1NQUF9FWENMX1JFQ1QsCi0JRFBVX1NTUFBfU01BUlRfRE1BX1YxLAotCURQVV9TU1BQX1NNQVJU X0RNQV9WMiwKIAlEUFVfU1NQUF9UU19QUkVGSUxMLAogCURQVV9TU1BQX1RTX1BSRUZJTExfUkVD MSwKIAlEUFVfU1NQUF9DRFAsCkBAIC0yOTgsNyArMjk0LDYgQEAgc3RydWN0IGRwdV9xb3NfbHV0 X3RibCB7CiAgKiBAbWF4X21peGVyX2JsZW5kc3RhZ2VzIG1heCBsYXllciBtaXhlciBibGVuZCBz dGFnZXMgb3IKICAqICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWQgeiBvcmRlcgogICog QHFzZWVkX3R5cGUgICAgICAgICBxc2VlZDIgb3IgcXNlZWQzIHN1cHBvcnQuCi0gKiBAc21hcnRf ZG1hX3JldiAgICAgIFN1cHBvcnRlZCB2ZXJzaW9uIG9mIFNtYXJ0RE1BIGZlYXR1cmUuCiAgKiBA dWJ3Y192ZXJzaW9uICAgICAgIFVCV0MgZmVhdHVyZSB2ZXJzaW9uICgweDAgZm9yIG5vdCBzdXBw b3J0ZWQpCiAgKiBAaGFzX3NyY19zcGxpdCAgICAgIHNvdXJjZSBzcGxpdCBmZWF0dXJlIHN0YXR1 cwogICogQGhhc19kaW1fbGF5ZXIgICAgICBkaW0gbGF5ZXIgZmVhdHVyZSBzdGF0dXMKQEAgLTMw OCw3ICszMDMsNiBAQCBzdHJ1Y3QgZHB1X2NhcHMgewogCXUzMiBtYXhfbWl4ZXJfd2lkdGg7CiAJ dTMyIG1heF9taXhlcl9ibGVuZHN0YWdlczsKIAl1MzIgcXNlZWRfdHlwZTsKLQl1MzIgc21hcnRf ZG1hX3JldjsKIAl1MzIgdWJ3Y192ZXJzaW9uOwogCWJvb2wgaGFzX3NyY19zcGxpdDsKIAlib29s IGhhc19kaW1fbGF5ZXI7CkBAIC0zMzgsNyArMzMyLDYgQEAgc3RydWN0IGRwdV9zc3BwX2Jsa3Nf Y29tbW9uIHsKICAqIEBkYW5nZXJfdmJsYW5rOiBkYW5nZXIgcHJpb3JpdHkgZHVyaW5nIHZlcnRp Y2FsIGJsYW5raW5nCiAgKiBAbWF4ZHduc2NhbGU6IG1heCBkb3duc2NhbGUgcmF0aW8gc3VwcG9y dGVkKHdpdGhvdXQgREVDSU1BVElPTikKICAqIEBtYXh1cHNjYWxlOiAgbWF4dXBzY2FsZSByYXRp byBzdXBwb3J0ZWQKLSAqIEBzbWFydF9kbWFfcHJpb3JpdHk6IGh3IHByaW9yaXR5IG9mIHJlY3Qx IG9mIG11bHRpcmVjdCBwaXBlCiAgKiBAbWF4X3Blcl9waXBlX2J3OiBtYXhpbXVtIGFsbG93YWJs ZSBiYW5kd2lkdGggb2YgdGhpcyBwaXBlIGluIGtCcHMKICAqIEBzcmNfYmxrOgogICogQHNjYWxl cl9ibGs6CkBAIC0zNDgsNyArMzQxLDYgQEAgc3RydWN0IGRwdV9zc3BwX2Jsa3NfY29tbW9uIHsK ICAqIEBwY2NfYmxrOgogICogQGlnY19ibGs6CiAgKiBAZm9ybWF0X2xpc3Q6IFBvaW50ZXIgdG8g bGlzdCBvZiBzdXBwb3J0ZWQgZm9ybWF0cwotICogQHZpcnRfZm9ybWF0X2xpc3Q6IFBvaW50ZXIg dG8gbGlzdCBvZiBzdXBwb3J0ZWQgZm9ybWF0cyBmb3IgdmlydHVhbCBwbGFuZXMKICAqLwogc3Ry dWN0IGRwdV9zc3BwX3N1Yl9ibGtzIHsKIAljb25zdCBzdHJ1Y3QgZHB1X3NzcHBfYmxrc19jb21t b24gKmNvbW1vbjsKQEAgLTM1Niw3ICszNDgsNiBAQCBzdHJ1Y3QgZHB1X3NzcHBfc3ViX2Jsa3Mg ewogCXUzMiBkYW5nZXJfdmJsYW5rOwogCXUzMiBtYXhkd25zY2FsZTsKIAl1MzIgbWF4dXBzY2Fs ZTsKLQl1MzIgc21hcnRfZG1hX3ByaW9yaXR5OwogCXUzMiBtYXhfcGVyX3BpcGVfYnc7CiAJc3Ry dWN0IGRwdV9zcmNfYmxrIHNyY19ibGs7CiAJc3RydWN0IGRwdV9zY2FsZXJfYmxrIHNjYWxlcl9i bGs7CkBAIC0zNjcsNyArMzU4LDYgQEAgc3RydWN0IGRwdV9zc3BwX3N1Yl9ibGtzIHsKIAlzdHJ1 Y3QgZHB1X3BwX2JsayBpZ2NfYmxrOwogCiAJY29uc3Qgc3RydWN0IGRwdV9mb3JtYXRfZXh0ZW5k ZWQgKmZvcm1hdF9saXN0OwotCWNvbnN0IHN0cnVjdCBkcHVfZm9ybWF0X2V4dGVuZGVkICp2aXJ0 X2Zvcm1hdF9saXN0OwogfTsKIAogLyoqCkBAIC03OTIsMTMgKzc4Miw0IEBAIHN0cnVjdCBkcHVf bWRzc19od19jZmdfaGFuZGxlciB7CiAgKi8KIHZvaWQgZHB1X2h3X2NhdGFsb2dfZGVpbml0KHN0 cnVjdCBkcHVfbWRzc19jZmcgKmRwdV9jZmcpOwogCi0vKioKLSAqIGRwdV9od19zc3BwX211bHRp cmVjdF9lbmFibGVkIC0gY2hlY2sgbXVsdGlyZWN0IGVuYWJsZWQgZm9yIHRoZSBzc3BwCi0gKiBA Y2ZnOiAgICAgICAgICBwb2ludGVyIHRvIHNzcHAgY2ZnCi0gKi8KLXN0YXRpYyBpbmxpbmUgYm9v bCBkcHVfaHdfc3NwcF9tdWx0aXJlY3RfZW5hYmxlZChjb25zdCBzdHJ1Y3QgZHB1X3NzcHBfY2Zn ICpjZmcpCi17Ci0JcmV0dXJuIHRlc3RfYml0KERQVV9TU1BQX1NNQVJUX0RNQV9WMSwgJmNmZy0+ ZmVhdHVyZXMpIHx8Ci0JCQkgdGVzdF9iaXQoRFBVX1NTUFBfU01BUlRfRE1BX1YyLCAmY2ZnLT5m ZWF0dXJlcyk7Ci19CiAjZW5kaWYgLyogX0RQVV9IV19DQVRBTE9HX0ggKi8KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19jdGwuYyBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19jdGwuYwppbmRleCBhZDAyMzE2Li4xYjlmNDFmIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfY3RsLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2N0bC5jCkBAIC0yMiw4ICsy Miw3IEBACiAJKDB4NDAgKyAoKChsbSkgLSBMTV8wKSAqIDB4MDA0KSkKICNkZWZpbmUgICBDVExf TEFZRVJfRVhUMihsbSkgICAgICAgICAgICAgXAogCSgweDcwICsgKCgobG0pIC0gTE1fMCkgKiAw eDAwNCkpCi0jZGVmaW5lICAgQ1RMX0xBWUVSX0VYVDMobG0pICAgICAgICAgICAgIFwKLQkoMHhB MCArICgoKGxtKSAtIExNXzApICogMHgwMDQpKQorCiAjZGVmaW5lICAgQ1RMX1RPUCAgICAgICAg ICAgICAgICAgICAgICAgMHgwMTQKICNkZWZpbmUgICBDVExfRkxVU0ggICAgICAgICAgICAgICAg ICAgICAweDAxOAogI2RlZmluZSAgIENUTF9TVEFSVCAgICAgICAgICAgICAgICAgICAgIDB4MDFD CkBAIC0yOTksNyArMjk4LDYgQEAgc3RhdGljIHZvaWQgZHB1X2h3X2N0bF9jbGVhcl9hbGxfYmxl bmRzdGFnZXMoc3RydWN0IGRwdV9od19jdGwgKmN0eCkKIAkJRFBVX1JFR19XUklURShjLCBDVExf TEFZRVIoTE1fMCArIGkpLCAwKTsKIAkJRFBVX1JFR19XUklURShjLCBDVExfTEFZRVJfRVhUKExN XzAgKyBpKSwgMCk7CiAJCURQVV9SRUdfV1JJVEUoYywgQ1RMX0xBWUVSX0VYVDIoTE1fMCArIGkp LCAwKTsKLQkJRFBVX1JFR19XUklURShjLCBDVExfTEFZRVJfRVhUMyhMTV8wICsgaSksIDApOwog CX0KIH0KIApAQCAtMzA3LDggKzMwNSw4IEBAIHN0YXRpYyB2b2lkIGRwdV9od19jdGxfc2V0dXBf YmxlbmRzdGFnZShzdHJ1Y3QgZHB1X2h3X2N0bCAqY3R4LAogCWVudW0gZHB1X2xtIGxtLCBzdHJ1 Y3QgZHB1X2h3X3N0YWdlX2NmZyAqc3RhZ2VfY2ZnKQogewogCXN0cnVjdCBkcHVfaHdfYmxrX3Jl Z19tYXAgKmMgPSAmY3R4LT5odzsKLQl1MzIgbWl4ZXJjZmcgPSAwLCBtaXhlcmNmZ19leHQgPSAw LCBtaXgsIGV4dDsKLQl1MzIgbWl4ZXJjZmdfZXh0MiA9IDAsIG1peGVyY2ZnX2V4dDMgPSAwOwor CXUzMiBtaXhlcmNmZyA9IDAsIG1peGVyY2ZnX2V4dCA9IDAsIG1peGVyY2ZnX2V4dDIgPSAwOwor CXUzMiBtaXgsIGV4dDsKIAlpbnQgaSwgajsKIAl1OCBzdGFnZXM7CiAJaW50IHBpcGVzX3Blcl9z dGFnZTsKQEAgLTMzNCw0MSArMzMyLDIyIEBAIHN0YXRpYyB2b2lkIGRwdV9od19jdGxfc2V0dXBf YmxlbmRzdGFnZShzdHJ1Y3QgZHB1X2h3X2N0bCAqY3R4LAogCQlleHQgPSBpID49IDc7CiAKIAkJ Zm9yIChqID0gMCA7IGogPCBwaXBlc19wZXJfc3RhZ2U7IGorKykgewotCQkJZW51bSBkcHVfc3Nw cF9tdWx0aXJlY3RfaW5kZXggcmVjdF9pbmRleCA9Ci0JCQkJc3RhZ2VfY2ZnLT5tdWx0aXJlY3Rf aW5kZXhbaV1bal07Ci0KIAkJCXN3aXRjaCAoc3RhZ2VfY2ZnLT5zdGFnZVtpXVtqXSkgewogCQkJ Y2FzZSBTU1BQX1ZJRzA6Ci0JCQkJaWYgKHJlY3RfaW5kZXggPT0gRFBVX1NTUFBfUkVDVF8xKSB7 Ci0JCQkJCW1peGVyY2ZnX2V4dDMgfD0gKChpICsgMSkgJiAweEYpIDw8IDA7Ci0JCQkJfSBlbHNl IHsKLQkJCQkJbWl4ZXJjZmcgfD0gbWl4IDw8IDA7Ci0JCQkJCW1peGVyY2ZnX2V4dCB8PSBleHQg PDwgMDsKLQkJCQl9CisJCQkJbWl4ZXJjZmcgfD0gbWl4IDw8IDA7CisJCQkJbWl4ZXJjZmdfZXh0 IHw9IGV4dCA8PCAwOwogCQkJCWJyZWFrOwogCQkJY2FzZSBTU1BQX1ZJRzE6Ci0JCQkJaWYgKHJl Y3RfaW5kZXggPT0gRFBVX1NTUFBfUkVDVF8xKSB7Ci0JCQkJCW1peGVyY2ZnX2V4dDMgfD0gKChp ICsgMSkgJiAweEYpIDw8IDQ7Ci0JCQkJfSBlbHNlIHsKLQkJCQkJbWl4ZXJjZmcgfD0gbWl4IDw8 IDM7Ci0JCQkJCW1peGVyY2ZnX2V4dCB8PSBleHQgPDwgMjsKLQkJCQl9CisJCQkJbWl4ZXJjZmcg fD0gbWl4IDw8IDM7CisJCQkJbWl4ZXJjZmdfZXh0IHw9IGV4dCA8PCAyOwogCQkJCWJyZWFrOwog CQkJY2FzZSBTU1BQX1ZJRzI6Ci0JCQkJaWYgKHJlY3RfaW5kZXggPT0gRFBVX1NTUFBfUkVDVF8x KSB7Ci0JCQkJCW1peGVyY2ZnX2V4dDMgfD0gKChpICsgMSkgJiAweEYpIDw8IDg7Ci0JCQkJfSBl bHNlIHsKLQkJCQkJbWl4ZXJjZmcgfD0gbWl4IDw8IDY7Ci0JCQkJCW1peGVyY2ZnX2V4dCB8PSBl eHQgPDwgNDsKLQkJCQl9CisJCQkJbWl4ZXJjZmcgfD0gbWl4IDw8IDY7CisJCQkJbWl4ZXJjZmdf ZXh0IHw9IGV4dCA8PCA0OwogCQkJCWJyZWFrOwogCQkJY2FzZSBTU1BQX1ZJRzM6Ci0JCQkJaWYg KHJlY3RfaW5kZXggPT0gRFBVX1NTUFBfUkVDVF8xKSB7Ci0JCQkJCW1peGVyY2ZnX2V4dDMgfD0g KChpICsgMSkgJiAweEYpIDw8IDEyOwotCQkJCX0gZWxzZSB7Ci0JCQkJCW1peGVyY2ZnIHw9IG1p eCA8PCAyNjsKLQkJCQkJbWl4ZXJjZmdfZXh0IHw9IGV4dCA8PCA2OwotCQkJCX0KKwkJCQltaXhl cmNmZyB8PSBtaXggPDwgMjY7CisJCQkJbWl4ZXJjZmdfZXh0IHw9IGV4dCA8PCA2OwogCQkJCWJy ZWFrOwogCQkJY2FzZSBTU1BQX1JHQjA6CiAJCQkJbWl4ZXJjZmcgfD0gbWl4IDw8IDk7CkBAIC0z ODcsMzYgKzM2NiwyMCBAQCBzdGF0aWMgdm9pZCBkcHVfaHdfY3RsX3NldHVwX2JsZW5kc3RhZ2Uo c3RydWN0IGRwdV9od19jdGwgKmN0eCwKIAkJCQltaXhlcmNmZ19leHQgfD0gZXh0IDw8IDE0Owog CQkJCWJyZWFrOwogCQkJY2FzZSBTU1BQX0RNQTA6Ci0JCQkJaWYgKHJlY3RfaW5kZXggPT0gRFBV X1NTUFBfUkVDVF8xKSB7Ci0JCQkJCW1peGVyY2ZnX2V4dDIgfD0gKChpICsgMSkgJiAweEYpIDw8 IDg7Ci0JCQkJfSBlbHNlIHsKLQkJCQkJbWl4ZXJjZmcgfD0gbWl4IDw8IDE4OwotCQkJCQltaXhl cmNmZ19leHQgfD0gZXh0IDw8IDE2OwotCQkJCX0KKwkJCQltaXhlcmNmZyB8PSBtaXggPDwgMTg7 CisJCQkJbWl4ZXJjZmdfZXh0IHw9IGV4dCA8PCAxNjsKIAkJCQlicmVhazsKIAkJCWNhc2UgU1NQ UF9ETUExOgotCQkJCWlmIChyZWN0X2luZGV4ID09IERQVV9TU1BQX1JFQ1RfMSkgewotCQkJCQlt aXhlcmNmZ19leHQyIHw9ICgoaSArIDEpICYgMHhGKSA8PCAxMjsKLQkJCQl9IGVsc2UgewotCQkJ CQltaXhlcmNmZyB8PSBtaXggPDwgMjE7Ci0JCQkJCW1peGVyY2ZnX2V4dCB8PSBleHQgPDwgMTg7 Ci0JCQkJfQorCQkJCW1peGVyY2ZnIHw9IG1peCA8PCAyMTsKKwkJCQltaXhlcmNmZ19leHQgfD0g ZXh0IDw8IDE4OwogCQkJCWJyZWFrOwogCQkJY2FzZSBTU1BQX0RNQTI6Ci0JCQkJaWYgKHJlY3Rf aW5kZXggPT0gRFBVX1NTUFBfUkVDVF8xKSB7Ci0JCQkJCW1peGVyY2ZnX2V4dDIgfD0gKChpICsg MSkgJiAweEYpIDw8IDE2OwotCQkJCX0gZWxzZSB7Ci0JCQkJCW1peCB8PSAoaSArIDEpICYgMHhG OwotCQkJCQltaXhlcmNmZ19leHQyIHw9IG1peCA8PCAwOwotCQkJCX0KKwkJCQltaXggfD0gKGkg KyAxKSAmIDB4RjsKKwkJCQltaXhlcmNmZ19leHQyIHw9IG1peCA8PCAwOwogCQkJCWJyZWFrOwog CQkJY2FzZSBTU1BQX0RNQTM6Ci0JCQkJaWYgKHJlY3RfaW5kZXggPT0gRFBVX1NTUFBfUkVDVF8x KSB7Ci0JCQkJCW1peGVyY2ZnX2V4dDIgfD0gKChpICsgMSkgJiAweEYpIDw8IDIwOwotCQkJCX0g ZWxzZSB7Ci0JCQkJCW1peCB8PSAoaSArIDEpICYgMHhGOwotCQkJCQltaXhlcmNmZ19leHQyIHw9 IG1peCA8PCA0OwotCQkJCX0KKwkJCQltaXggfD0gKGkgKyAxKSAmIDB4RjsKKwkJCQltaXhlcmNm Z19leHQyIHw9IG1peCA8PCA0OwogCQkJCWJyZWFrOwogCQkJY2FzZSBTU1BQX0NVUlNPUjA6CiAJ CQkJbWl4ZXJjZmdfZXh0IHw9ICgoaSArIDEpICYgMHhGKSA8PCAyMDsKQEAgLTQzNCw3ICszOTcs NiBAQCBzdGF0aWMgdm9pZCBkcHVfaHdfY3RsX3NldHVwX2JsZW5kc3RhZ2Uoc3RydWN0IGRwdV9o d19jdGwgKmN0eCwKIAlEUFVfUkVHX1dSSVRFKGMsIENUTF9MQVlFUihsbSksIG1peGVyY2ZnKTsK IAlEUFVfUkVHX1dSSVRFKGMsIENUTF9MQVlFUl9FWFQobG0pLCBtaXhlcmNmZ19leHQpOwogCURQ VV9SRUdfV1JJVEUoYywgQ1RMX0xBWUVSX0VYVDIobG0pLCBtaXhlcmNmZ19leHQyKTsKLQlEUFVf UkVHX1dSSVRFKGMsIENUTF9MQVlFUl9FWFQzKGxtKSwgbWl4ZXJjZmdfZXh0Myk7CiB9CiAKIHN0 YXRpYyB2b2lkIGRwdV9od19jdGxfaW50Zl9jZmcoc3RydWN0IGRwdV9od19jdGwgKmN0eCwKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19jdGwuaCBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19jdGwuaAppbmRleCBjNjZhNzFmLi43 MjlmYzEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdf Y3RsLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2N0bC5oCkBA IC0xNiw3ICsxNiw2IEBACiAjaW5jbHVkZSAiZHB1X2h3X21kc3MuaCIKICNpbmNsdWRlICJkcHVf aHdfdXRpbC5oIgogI2luY2x1ZGUgImRwdV9od19jYXRhbG9nLmgiCi0jaW5jbHVkZSAiZHB1X2h3 X3NzcHAuaCIKICNpbmNsdWRlICJkcHVfaHdfYmxrLmgiCiAKIC8qKgpAQCAtMzMsMTIgKzMyLDkg QEAgZW51bSBkcHVfY3RsX21vZGVfc2VsIHsKIC8qKgogICogc3RydWN0IGRwdV9od19zdGFnZV9j ZmcgLSBibGVuZGluZyBzdGFnZSBjZmcKICAqIEBzdGFnZSA6IFNTUFBfSUQgYXQgZWFjaCBzdGFn ZQotICogQG11bHRpcmVjdF9pbmRleDogaW5kZXggb2YgdGhlIHJlY3RhbmdsZSBvZiBTU1BQLgog ICovCiBzdHJ1Y3QgZHB1X2h3X3N0YWdlX2NmZyB7CiAJZW51bSBkcHVfc3NwcCBzdGFnZVtEUFVf U1RBR0VfTUFYXVtQSVBFU19QRVJfU1RBR0VdOwotCWVudW0gZHB1X3NzcHBfbXVsdGlyZWN0X2lu ZGV4IG11bHRpcmVjdF9pbmRleAotCQkJCQlbRFBVX1NUQUdFX01BWF1bUElQRVNfUEVSX1NUQUdF XTsKIH07CiAKIC8qKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2h3X3NzcHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19zc3Bw LmMKaW5kZXggNjY0MDkwNi4uMTk3ZmVkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2h3X3NzcHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfaHdfc3NwcC5jCkBAIC0zNCwxOSArMzQsNiBAQAogI2RlZmluZSBTU1BQX1NSQ19V TlBBQ0tfUEFUVEVSTiAgICAgICAgICAgIDB4MzQKICNkZWZpbmUgU1NQUF9TUkNfT1BfTU9ERSAg ICAgICAgICAgICAgICAgICAweDM4CiAKLS8qIFNTUFBfTVVMVElSRUNUKi8KLSNkZWZpbmUgU1NQ UF9TUkNfU0laRV9SRUMxICAgICAgICAgICAgICAgICAweDE2QwotI2RlZmluZSBTU1BQX1NSQ19Y WV9SRUMxICAgICAgICAgICAgICAgICAgIDB4MTY4Ci0jZGVmaW5lIFNTUFBfT1VUX1NJWkVfUkVD MSAgICAgICAgICAgICAgICAgMHgxNjAKLSNkZWZpbmUgU1NQUF9PVVRfWFlfUkVDMSAgICAgICAg ICAgICAgICAgICAweDE2NAotI2RlZmluZSBTU1BQX1NSQ19GT1JNQVRfUkVDMSAgICAgICAgICAg ICAgIDB4MTc0Ci0jZGVmaW5lIFNTUFBfU1JDX1VOUEFDS19QQVRURVJOX1JFQzEgICAgICAgMHgx NzgKLSNkZWZpbmUgU1NQUF9TUkNfT1BfTU9ERV9SRUMxICAgICAgICAgICAgICAweDE3QwotI2Rl ZmluZSBTU1BQX01VTFRJUkVDVF9PUE1PREUgICAgICAgICAgICAgIDB4MTcwCi0jZGVmaW5lIFNT UFBfU1JDX0NPTlNUQU5UX0NPTE9SX1JFQzEgICAgICAgMHgxODAKLSNkZWZpbmUgU1NQUF9FWENM X1JFQ19TSVpFX1JFQzEgICAgICAgICAgICAweDE4NAotI2RlZmluZSBTU1BQX0VYQ0xfUkVDX1hZ X1JFQzEgICAgICAgICAgICAgIDB4MTg4Ci0KICNkZWZpbmUgTURTU19NRFBfT1BfREVJTlRFUkxB Q0UgICAgICAgICAgICBCSVQoMjIpCiAjZGVmaW5lIE1EU1NfTURQX09QX0RFSU5URVJMQUNFX09E RCAgICAgICAgQklUKDIzKQogI2RlZmluZSBNRFNTX01EUF9PUF9JR0NfUk9NXzEgICAgICAgICAg ICAgIEJJVCgxOCkKQEAgLTE3MSwzNSArMTU4LDYgQEAgc3RhdGljIGlubGluZSBpbnQgX3NzcHBf c3ViYmxrX29mZnNldChzdHJ1Y3QgZHB1X2h3X3BpcGUgKmN0eCwKIAlyZXR1cm4gcmM7CiB9CiAK LXN0YXRpYyB2b2lkIGRwdV9od19zc3BwX3NldHVwX211bHRpcmVjdChzdHJ1Y3QgZHB1X2h3X3Bp cGUgKmN0eCwKLQkJZW51bSBkcHVfc3NwcF9tdWx0aXJlY3RfaW5kZXggaW5kZXgsCi0JCWVudW0g ZHB1X3NzcHBfbXVsdGlyZWN0X21vZGUgbW9kZSkKLXsKLQl1MzIgbW9kZV9tYXNrOwotCXUzMiBp ZHg7Ci0KLQlpZiAoX3NzcHBfc3ViYmxrX29mZnNldChjdHgsIERQVV9TU1BQX1NSQywgJmlkeCkp Ci0JCXJldHVybjsKLQotCWlmIChpbmRleCA9PSBEUFVfU1NQUF9SRUNUX1NPTE8pIHsKLQkJLyoq Ci0JCSAqIGlmIHJlY3QgaW5kZXggaXMgUkVDVF9TT0xPLCB3ZSBjYW5ub3QgZXhwZWN0IGEKLQkJ ICogdmlydHVhbCBwbGFuZSBzaGFyaW5nIHRoZSBzYW1lIFNTUFAgaWQuIFNvIHdlIGdvCi0JCSAq IGFuZCBkaXNhYmxlIG11bHRpcmVjdAotCQkgKi8KLQkJbW9kZV9tYXNrID0gMDsKLQl9IGVsc2Ug ewotCQltb2RlX21hc2sgPSBEUFVfUkVHX1JFQUQoJmN0eC0+aHcsIFNTUFBfTVVMVElSRUNUX09Q TU9ERSArIGlkeCk7Ci0JCW1vZGVfbWFzayB8PSBpbmRleDsKLQkJaWYgKG1vZGUgPT0gRFBVX1NT UFBfTVVMVElSRUNUX1RJTUVfTVgpCi0JCQltb2RlX21hc2sgfD0gQklUKDIpOwotCQllbHNlCi0J CQltb2RlX21hc2sgJj0gfkJJVCgyKTsKLQl9Ci0KLQlEUFVfUkVHX1dSSVRFKCZjdHgtPmh3LCBT U1BQX01VTFRJUkVDVF9PUE1PREUgKyBpZHgsIG1vZGVfbWFzayk7Ci19Ci0KIHN0YXRpYyB2b2lk IF9zc3BwX3NldHVwX29wbW9kZShzdHJ1Y3QgZHB1X2h3X3BpcGUgKmN0eCwKIAkJdTMyIG1hc2ss IHU4IGVuKQogewpAQCAtMjQzLDMxICsyMDEsMTkgQEAgc3RhdGljIHZvaWQgX3NzcHBfc2V0dXBf Y3NjMTBfb3Btb2RlKHN0cnVjdCBkcHVfaHdfcGlwZSAqY3R4LAogICogU2V0dXAgc291cmNlIHBp eGVsIGZvcm1hdCwgZmxpcCwKICAqLwogc3RhdGljIHZvaWQgZHB1X2h3X3NzcHBfc2V0dXBfZm9y bWF0KHN0cnVjdCBkcHVfaHdfcGlwZSAqY3R4LAotCQljb25zdCBzdHJ1Y3QgZHB1X2Zvcm1hdCAq Zm10LCB1MzIgZmxhZ3MsCi0JCWVudW0gZHB1X3NzcHBfbXVsdGlyZWN0X2luZGV4IHJlY3RfbW9k ZSkKKwkJY29uc3Qgc3RydWN0IGRwdV9mb3JtYXQgKmZtdCwgdTMyIGZsYWdzKQogewogCXN0cnVj dCBkcHVfaHdfYmxrX3JlZ19tYXAgKmM7CiAJdTMyIGNocm9tYV9zYW1wLCB1bnBhY2ssIHNyY19m b3JtYXQ7CiAJdTMyIG9wbW9kZSA9IDA7CiAJdTMyIGZhc3RfY2xlYXIgPSAwOwotCXUzMiBvcF9t b2RlX29mZiwgdW5wYWNrX3BhdF9vZmYsIGZvcm1hdF9vZmY7CiAJdTMyIGlkeDsKIAogCWlmIChf c3NwcF9zdWJibGtfb2Zmc2V0KGN0eCwgRFBVX1NTUFBfU1JDLCAmaWR4KSB8fCAhZm10KQogCQly ZXR1cm47CiAKLQlpZiAocmVjdF9tb2RlID09IERQVV9TU1BQX1JFQ1RfU09MTyB8fCByZWN0X21v ZGUgPT0gRFBVX1NTUFBfUkVDVF8wKSB7Ci0JCW9wX21vZGVfb2ZmID0gU1NQUF9TUkNfT1BfTU9E RTsKLQkJdW5wYWNrX3BhdF9vZmYgPSBTU1BQX1NSQ19VTlBBQ0tfUEFUVEVSTjsKLQkJZm9ybWF0 X29mZiA9IFNTUFBfU1JDX0ZPUk1BVDsKLQl9IGVsc2UgewotCQlvcF9tb2RlX29mZiA9IFNTUFBf U1JDX09QX01PREVfUkVDMTsKLQkJdW5wYWNrX3BhdF9vZmYgPSBTU1BQX1NSQ19VTlBBQ0tfUEFU VEVSTl9SRUMxOwotCQlmb3JtYXRfb2ZmID0gU1NQUF9TUkNfRk9STUFUX1JFQzE7Ci0JfQotCiAJ YyA9ICZjdHgtPmh3OwotCW9wbW9kZSA9IERQVV9SRUdfUkVBRChjLCBvcF9tb2RlX29mZiArIGlk eCk7CisJb3Btb2RlID0gRFBVX1JFR19SRUFEKGMsIFNTUFBfU1JDX09QX01PREUgKyBpZHgpOwog CW9wbW9kZSAmPSB+KE1EU1NfTURQX09QX0ZMSVBfTFIgfCBNRFNTX01EUF9PUF9GTElQX1VEIHwK IAkJCU1EU1NfTURQX09QX0JXQ19FTiB8IE1EU1NfTURQX09QX1BFX09WRVJSSURFKTsKIApAQCAt MzM3LDkgKzI4Myw5IEBAIHN0YXRpYyB2b2lkIGRwdV9od19zc3BwX3NldHVwX2Zvcm1hdChzdHJ1 Y3QgZHB1X2h3X3BpcGUgKmN0eCwKIAkJCVZJR19DU0NfMTBfRU4gfCBWSUdfQ1NDXzEwX1NSQ19E QVRBRk1ULAogCQkJRFBVX0ZPUk1BVF9JU19ZVVYoZm10KSk7CiAKLQlEUFVfUkVHX1dSSVRFKGMs IGZvcm1hdF9vZmYgKyBpZHgsIHNyY19mb3JtYXQpOwotCURQVV9SRUdfV1JJVEUoYywgdW5wYWNr X3BhdF9vZmYgKyBpZHgsIHVucGFjayk7Ci0JRFBVX1JFR19XUklURShjLCBvcF9tb2RlX29mZiAr IGlkeCwgb3Btb2RlKTsKKwlEUFVfUkVHX1dSSVRFKGMsIFNTUFBfU1JDX0ZPUk1BVCArIGlkeCwg c3JjX2Zvcm1hdCk7CisJRFBVX1JFR19XUklURShjLCBTU1BQX1NSQ19VTlBBQ0tfUEFUVEVSTiAr IGlkeCwgdW5wYWNrKTsKKwlEUFVfUkVHX1dSSVRFKGMsIFNTUFBfU1JDX09QX01PREUgKyBpZHgs IG9wbW9kZSk7CiAKIAkvKiBjbGVhciBwcmV2aW91cyBVQldDIGVycm9yICovCiAJRFBVX1JFR19X UklURShjLCBTU1BQX1VCV0NfRVJST1JfU1RBVFVTICsgaWR4LCBCSVQoMzEpKTsKQEAgLTQzNSwx MiArMzgxLDEwIEBAIHN0YXRpYyB1MzIgX2RwdV9od19zc3BwX2dldF9zY2FsZXIzX3ZlcihzdHJ1 Y3QgZHB1X2h3X3BpcGUgKmN0eCkKICAqIGRwdV9od19zc3BwX3NldHVwX3JlY3RzKCkKICAqLwog c3RhdGljIHZvaWQgZHB1X2h3X3NzcHBfc2V0dXBfcmVjdHMoc3RydWN0IGRwdV9od19waXBlICpj dHgsCi0JCXN0cnVjdCBkcHVfaHdfcGlwZV9jZmcgKmNmZywKLQkJZW51bSBkcHVfc3NwcF9tdWx0 aXJlY3RfaW5kZXggcmVjdF9pbmRleCkKKwkJc3RydWN0IGRwdV9od19waXBlX2NmZyAqY2ZnKQog ewogCXN0cnVjdCBkcHVfaHdfYmxrX3JlZ19tYXAgKmM7CiAJdTMyIHNyY19zaXplLCBzcmNfeHks IGRzdF9zaXplLCBkc3RfeHksIHlzdHJpZGUwLCB5c3RyaWRlMTsKLQl1MzIgc3JjX3NpemVfb2Zm LCBzcmNfeHlfb2ZmLCBvdXRfc2l6ZV9vZmYsIG91dF94eV9vZmY7CiAJdTMyIGlkeDsKIAogCWlm IChfc3NwcF9zdWJibGtfb2Zmc2V0KGN0eCwgRFBVX1NTUFBfU1JDLCAmaWR4KSB8fCAhY2ZnKQpA QCAtNDQ4LDYyICszOTIsMjkgQEAgc3RhdGljIHZvaWQgZHB1X2h3X3NzcHBfc2V0dXBfcmVjdHMo c3RydWN0IGRwdV9od19waXBlICpjdHgsCiAKIAljID0gJmN0eC0+aHc7CiAKLQlpZiAocmVjdF9p bmRleCA9PSBEUFVfU1NQUF9SRUNUX1NPTE8gfHwgcmVjdF9pbmRleCA9PSBEUFVfU1NQUF9SRUNU XzApIHsKLQkJc3JjX3NpemVfb2ZmID0gU1NQUF9TUkNfU0laRTsKLQkJc3JjX3h5X29mZiA9IFNT UFBfU1JDX1hZOwotCQlvdXRfc2l6ZV9vZmYgPSBTU1BQX09VVF9TSVpFOwotCQlvdXRfeHlfb2Zm ID0gU1NQUF9PVVRfWFk7Ci0JfSBlbHNlIHsKLQkJc3JjX3NpemVfb2ZmID0gU1NQUF9TUkNfU0la RV9SRUMxOwotCQlzcmNfeHlfb2ZmID0gU1NQUF9TUkNfWFlfUkVDMTsKLQkJb3V0X3NpemVfb2Zm ID0gU1NQUF9PVVRfU0laRV9SRUMxOwotCQlvdXRfeHlfb2ZmID0gU1NQUF9PVVRfWFlfUkVDMTsK LQl9Ci0KLQogCS8qIHNyYyBhbmQgZGVzdCByZWN0IHByb2dyYW1taW5nICovCiAJc3JjX3h5ID0g KGNmZy0+c3JjX3JlY3QueSA8PCAxNikgfCAoY2ZnLT5zcmNfcmVjdC54KTsKIAlzcmNfc2l6ZSA9 IChjZmctPnNyY19yZWN0LmggPDwgMTYpIHwgKGNmZy0+c3JjX3JlY3Qudyk7CiAJZHN0X3h5ID0g KGNmZy0+ZHN0X3JlY3QueSA8PCAxNikgfCAoY2ZnLT5kc3RfcmVjdC54KTsKIAlkc3Rfc2l6ZSA9 IChjZmctPmRzdF9yZWN0LmggPDwgMTYpIHwgKGNmZy0+ZHN0X3JlY3Qudyk7CiAKLQlpZiAocmVj dF9pbmRleCA9PSBEUFVfU1NQUF9SRUNUX1NPTE8pIHsKLQkJeXN0cmlkZTAgPSAoY2ZnLT5sYXlv dXQucGxhbmVfcGl0Y2hbMF0pIHwKKwl5c3RyaWRlMCA9IChjZmctPmxheW91dC5wbGFuZV9waXRj aFswXSkgfAogCQkJKGNmZy0+bGF5b3V0LnBsYW5lX3BpdGNoWzFdIDw8IDE2KTsKLQkJeXN0cmlk ZTEgPSAoY2ZnLT5sYXlvdXQucGxhbmVfcGl0Y2hbMl0pIHwKKwl5c3RyaWRlMSA9IChjZmctPmxh eW91dC5wbGFuZV9waXRjaFsyXSkgfAogCQkJKGNmZy0+bGF5b3V0LnBsYW5lX3BpdGNoWzNdIDw8 IDE2KTsKLQl9IGVsc2UgewotCQl5c3RyaWRlMCA9IERQVV9SRUdfUkVBRChjLCBTU1BQX1NSQ19Z U1RSSURFMCArIGlkeCk7Ci0JCXlzdHJpZGUxID0gRFBVX1JFR19SRUFEKGMsIFNTUFBfU1JDX1lT VFJJREUxICsgaWR4KTsKLQotCQlpZiAocmVjdF9pbmRleCA9PSBEUFVfU1NQUF9SRUNUXzApIHsK LQkJCXlzdHJpZGUwID0gKHlzdHJpZGUwICYgMHhGRkZGMDAwMCkgfAotCQkJCShjZmctPmxheW91 dC5wbGFuZV9waXRjaFswXSAmIDB4MDAwMEZGRkYpOwotCQkJeXN0cmlkZTEgPSAoeXN0cmlkZTEg JiAweEZGRkYwMDAwKXwKLQkJCQkoY2ZnLT5sYXlvdXQucGxhbmVfcGl0Y2hbMl0gJiAweDAwMDBG RkZGKTsKLQkJfSBlbHNlIHsKLQkJCXlzdHJpZGUwID0gKHlzdHJpZGUwICYgMHgwMDAwRkZGRikg fAotCQkJCSgoY2ZnLT5sYXlvdXQucGxhbmVfcGl0Y2hbMF0gPDwgMTYpICYKLQkJCQkgMHhGRkZG MDAwMCk7Ci0JCQl5c3RyaWRlMSA9ICh5c3RyaWRlMSAmIDB4MDAwMEZGRkYpIHwKLQkJCQkoKGNm Zy0+bGF5b3V0LnBsYW5lX3BpdGNoWzJdIDw8IDE2KSAmCi0JCQkJIDB4RkZGRjAwMDApOwotCQl9 Ci0JfQogCiAJLyogcmVjdGFuZ2xlIHJlZ2lzdGVyIHByb2dyYW1taW5nICovCi0JRFBVX1JFR19X UklURShjLCBzcmNfc2l6ZV9vZmYgKyBpZHgsIHNyY19zaXplKTsKLQlEUFVfUkVHX1dSSVRFKGMs IHNyY194eV9vZmYgKyBpZHgsIHNyY194eSk7Ci0JRFBVX1JFR19XUklURShjLCBvdXRfc2l6ZV9v ZmYgKyBpZHgsIGRzdF9zaXplKTsKLQlEUFVfUkVHX1dSSVRFKGMsIG91dF94eV9vZmYgKyBpZHgs IGRzdF94eSk7CisJRFBVX1JFR19XUklURShjLCBTU1BQX1NSQ19TSVpFICsgaWR4LCBzcmNfc2l6 ZSk7CisJRFBVX1JFR19XUklURShjLCBTU1BQX1NSQ19YWSArIGlkeCwgc3JjX3h5KTsKKwlEUFVf UkVHX1dSSVRFKGMsIFNTUFBfT1VUX1NJWkUgKyBpZHgsIGRzdF9zaXplKTsKKwlEUFVfUkVHX1dS SVRFKGMsIFNTUFBfT1VUX1hZICsgaWR4LCBkc3RfeHkpOwogCiAJRFBVX1JFR19XUklURShjLCBT U1BQX1NSQ19ZU1RSSURFMCArIGlkeCwgeXN0cmlkZTApOwogCURQVV9SRUdfV1JJVEUoYywgU1NQ UF9TUkNfWVNUUklERTEgKyBpZHgsIHlzdHJpZGUxKTsKIH0KIAogc3RhdGljIHZvaWQgZHB1X2h3 X3NzcHBfc2V0dXBfc291cmNlYWRkcmVzcyhzdHJ1Y3QgZHB1X2h3X3BpcGUgKmN0eCwKLQkJc3Ry dWN0IGRwdV9od19waXBlX2NmZyAqY2ZnLAotCQllbnVtIGRwdV9zc3BwX211bHRpcmVjdF9pbmRl eCByZWN0X21vZGUpCisJCXN0cnVjdCBkcHVfaHdfcGlwZV9jZmcgKmNmZykKIHsKIAlpbnQgaTsK IAl1MzIgaWR4OwpAQCAtNTExLDIxICs0MjIsOSBAQCBzdGF0aWMgdm9pZCBkcHVfaHdfc3NwcF9z ZXR1cF9zb3VyY2VhZGRyZXNzKHN0cnVjdCBkcHVfaHdfcGlwZSAqY3R4LAogCWlmIChfc3NwcF9z dWJibGtfb2Zmc2V0KGN0eCwgRFBVX1NTUFBfU1JDLCAmaWR4KSkKIAkJcmV0dXJuOwogCi0JaWYg KHJlY3RfbW9kZSA9PSBEUFVfU1NQUF9SRUNUX1NPTE8pIHsKLQkJZm9yIChpID0gMDsgaSA8IEFS UkFZX1NJWkUoY2ZnLT5sYXlvdXQucGxhbmVfYWRkcik7IGkrKykKLQkJCURQVV9SRUdfV1JJVEUo JmN0eC0+aHcsIFNTUFBfU1JDMF9BRERSICsgaWR4ICsgaSAqIDB4NCwKLQkJCQkJY2ZnLT5sYXlv dXQucGxhbmVfYWRkcltpXSk7Ci0JfSBlbHNlIGlmIChyZWN0X21vZGUgPT0gRFBVX1NTUFBfUkVD VF8wKSB7Ci0JCURQVV9SRUdfV1JJVEUoJmN0eC0+aHcsIFNTUFBfU1JDMF9BRERSICsgaWR4LAot CQkJCWNmZy0+bGF5b3V0LnBsYW5lX2FkZHJbMF0pOwotCQlEUFVfUkVHX1dSSVRFKCZjdHgtPmh3 LCBTU1BQX1NSQzJfQUREUiArIGlkeCwKLQkJCQljZmctPmxheW91dC5wbGFuZV9hZGRyWzJdKTsK LQl9IGVsc2UgewotCQlEUFVfUkVHX1dSSVRFKCZjdHgtPmh3LCBTU1BQX1NSQzFfQUREUiArIGlk eCwKLQkJCQljZmctPmxheW91dC5wbGFuZV9hZGRyWzBdKTsKLQkJRFBVX1JFR19XUklURSgmY3R4 LT5odywgU1NQUF9TUkMzX0FERFIgKyBpZHgsCi0JCQkJY2ZnLT5sYXlvdXQucGxhbmVfYWRkclsy XSk7Ci0JfQorCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGNmZy0+bGF5b3V0LnBsYW5lX2Fk ZHIpOyBpKyspCisJCURQVV9SRUdfV1JJVEUoJmN0eC0+aHcsIFNTUFBfU1JDMF9BRERSICsgaWR4 ICsgaSAqIDB4NCwKKwkJCQljZmctPmxheW91dC5wbGFuZV9hZGRyW2ldKTsKIH0KIAogc3RhdGlj IHZvaWQgZHB1X2h3X3NzcHBfc2V0dXBfY3NjKHN0cnVjdCBkcHVfaHdfcGlwZSAqY3R4LApAQCAt NTQ1LDE5ICs0NDQsMTQgQEAgc3RhdGljIHZvaWQgZHB1X2h3X3NzcHBfc2V0dXBfY3NjKHN0cnVj dCBkcHVfaHdfcGlwZSAqY3R4LAogCWRwdV9od19jc2Nfc2V0dXAoJmN0eC0+aHcsIGlkeCwgZGF0 YSwgY3NjMTApOwogfQogCi1zdGF0aWMgdm9pZCBkcHVfaHdfc3NwcF9zZXR1cF9zb2xpZGZpbGwo c3RydWN0IGRwdV9od19waXBlICpjdHgsIHUzMiBjb2xvciwgZW51bQotCQlkcHVfc3NwcF9tdWx0 aXJlY3RfaW5kZXggcmVjdF9pbmRleCkKK3N0YXRpYyB2b2lkIGRwdV9od19zc3BwX3NldHVwX3Nv bGlkZmlsbChzdHJ1Y3QgZHB1X2h3X3BpcGUgKmN0eCwgdTMyIGNvbG9yKQogewogCXUzMiBpZHg7 CiAKIAlpZiAoX3NzcHBfc3ViYmxrX29mZnNldChjdHgsIERQVV9TU1BQX1NSQywgJmlkeCkpCiAJ CXJldHVybjsKIAotCWlmIChyZWN0X2luZGV4ID09IERQVV9TU1BQX1JFQ1RfU09MTyB8fCByZWN0 X2luZGV4ID09IERQVV9TU1BQX1JFQ1RfMCkKLQkJRFBVX1JFR19XUklURSgmY3R4LT5odywgU1NQ UF9TUkNfQ09OU1RBTlRfQ09MT1IgKyBpZHgsIGNvbG9yKTsKLQllbHNlCi0JCURQVV9SRUdfV1JJ VEUoJmN0eC0+aHcsIFNTUFBfU1JDX0NPTlNUQU5UX0NPTE9SX1JFQzEgKyBpZHgsCi0JCQkJY29s b3IpOworCURQVV9SRUdfV1JJVEUoJmN0eC0+aHcsIFNTUFBfU1JDX0NPTlNUQU5UX0NPTE9SICsg aWR4LCBjb2xvcik7CiB9CiAKIHN0YXRpYyB2b2lkIGRwdV9od19zc3BwX3NldHVwX2Rhbmdlcl9z YWZlX2x1dChzdHJ1Y3QgZHB1X2h3X3BpcGUgKmN0eCwKQEAgLTY2MCw5ICs1NTQsNiBAQCBzdGF0 aWMgdm9pZCBfc2V0dXBfbGF5ZXJfb3BzKHN0cnVjdCBkcHVfaHdfcGlwZSAqYywKIAkJdGVzdF9i aXQoRFBVX1NTUFBfQ1NDXzEwQklULCAmZmVhdHVyZXMpKQogCQljLT5vcHMuc2V0dXBfY3NjID0g ZHB1X2h3X3NzcHBfc2V0dXBfY3NjOwogCi0JaWYgKGRwdV9od19zc3BwX211bHRpcmVjdF9lbmFi bGVkKGMtPmNhcCkpCi0JCWMtPm9wcy5zZXR1cF9tdWx0aXJlY3QgPSBkcHVfaHdfc3NwcF9zZXR1 cF9tdWx0aXJlY3Q7Ci0KIAlpZiAodGVzdF9iaXQoRFBVX1NTUFBfU0NBTEVSX1FTRUVEMywgJmZl YXR1cmVzKSkgewogCQljLT5vcHMuc2V0dXBfc2NhbGVyID0gX2RwdV9od19zc3BwX3NldHVwX3Nj YWxlcjM7CiAJCWMtPm9wcy5nZXRfc2NhbGVyX3ZlciA9IF9kcHVfaHdfc3NwcF9nZXRfc2NhbGVy M192ZXI7CkBAIC03MDEsOCArNTkyLDcgQEAgc3RhdGljIHN0cnVjdCBkcHVfc3NwcF9jZmcgKl9z c3BwX29mZnNldChlbnVtIGRwdV9zc3BwIHNzcHAsCiB9OwogCiBzdHJ1Y3QgZHB1X2h3X3BpcGUg KmRwdV9od19zc3BwX2luaXQoZW51bSBkcHVfc3NwcCBpZHgsCi0JCXZvaWQgX19pb21lbSAqYWRk ciwgc3RydWN0IGRwdV9tZHNzX2NmZyAqY2F0YWxvZywKLQkJYm9vbCBpc192aXJ0dWFsX3BpcGUp CisJCXZvaWQgX19pb21lbSAqYWRkciwgc3RydWN0IGRwdV9tZHNzX2NmZyAqY2F0YWxvZykKIHsK IAlzdHJ1Y3QgZHB1X2h3X3BpcGUgKmh3X3BpcGU7CiAJc3RydWN0IGRwdV9zc3BwX2NmZyAqY2Zn OwpAQCAtNzM0LDEzICs2MjQsMTIgQEAgc3RydWN0IGRwdV9od19waXBlICpkcHVfaHdfc3NwcF9p bml0KGVudW0gZHB1X3NzcHAgaWR4LAogCQlnb3RvIGJsa19pbml0X2Vycm9yOwogCX0KIAotCWlm ICghaXNfdmlydHVhbF9waXBlKQotCQlkcHVfZGJnX3JlZ19yZWdpc3Rlcl9kdW1wX3JhbmdlKERQ VV9EQkdfTkFNRSwgY2ZnLT5uYW1lLAotCQkJaHdfcGlwZS0+aHcuYmxrX29mZiwKLQkJCWh3X3Bp cGUtPmh3LmJsa19vZmYgKyBod19waXBlLT5ody5sZW5ndGgsCi0JCQlod19waXBlLT5ody54aW5f aWQpOworCWRwdV9kYmdfcmVnX3JlZ2lzdGVyX2R1bXBfcmFuZ2UoRFBVX0RCR19OQU1FLCBjZmct Pm5hbWUsCisJCWh3X3BpcGUtPmh3LmJsa19vZmYsCisJCWh3X3BpcGUtPmh3LmJsa19vZmYgKyBo d19waXBlLT5ody5sZW5ndGgsCisJCWh3X3BpcGUtPmh3Lnhpbl9pZCk7CiAKLQlpZiAoY2ZnLT5z YmxrLT5zY2FsZXJfYmxrLmxlbiAmJiAhaXNfdmlydHVhbF9waXBlKQorCWlmIChjZmctPnNibGst PnNjYWxlcl9ibGsubGVuKQogCQlkcHVfZGJnX3JlZ19yZWdpc3Rlcl9kdW1wX3JhbmdlKERQVV9E QkdfTkFNRSwKIAkJCWNmZy0+c2Jsay0+c2NhbGVyX2Jsay5uYW1lLAogCQkJaHdfcGlwZS0+aHcu YmxrX29mZiArIGNmZy0+c2Jsay0+c2NhbGVyX2Jsay5iYXNlLApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X3NzcHAuaCBiL2RyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9od19zc3BwLmgKaW5kZXggMGJiNWVjYi4uYjExYTlkODYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19zc3BwLmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X3NzcHAuaApAQCAtNDksMjggKzQ5 LDYgQEAgZW51bSB7CiAJRFBVX1NTUFBfQ09NUF9NQVgKIH07CiAKLS8qKgotICogRFBVX1NTUFBf UkVDVF9TT0xPIC0gbXVsdGlyZWN0IGRpc2FibGVkCi0gKiBEUFVfU1NQUF9SRUNUXzAgLSByZWN0 MCBvZiBhIG11bHRpcmVjdCBwaXBlCi0gKiBEUFVfU1NQUF9SRUNUXzEgLSByZWN0MSBvZiBhIG11 bHRpcmVjdCBwaXBlCi0gKgotICogTm90ZTogSFcgc3VwcG9ydHMgbXVsdGlyZWN0IHdpdGggZWl0 aGVyIFJFQ1QwIG9yCi0gKiBSRUNUMS4gQ29uc2lkZXJpbmcgbm8gYmVuZWZpdCBvZiBzdWNoIGNv bmZpZ3Mgb3ZlcgotICogU09MTyBtb2RlIGFuZCB0byBrZWVwIHRoZSBwbGFuZSBtYW5hZ2VtZW50 IHNpbXBsZSwKLSAqIHdlIGRvbnQgc3VwcG9ydCBzaW5nbGUgcmVjdCBtdWx0aXJlY3QgY29uZmln cy4KLSAqLwotZW51bSBkcHVfc3NwcF9tdWx0aXJlY3RfaW5kZXggewotCURQVV9TU1BQX1JFQ1Rf U09MTyA9IDAsCi0JRFBVX1NTUFBfUkVDVF8wLAotCURQVV9TU1BQX1JFQ1RfMSwKLX07Ci0KLWVu dW0gZHB1X3NzcHBfbXVsdGlyZWN0X21vZGUgewotCURQVV9TU1BQX01VTFRJUkVDVF9OT05FID0g MCwKLQlEUFVfU1NQUF9NVUxUSVJFQ1RfUEFSQUxMRUwsCi0JRFBVX1NTUFBfTVVMVElSRUNUX1RJ TUVfTVgsCi19OwotCiBlbnVtIHsKIAlEUFVfRlJBTUVfTElORUFSLAogCURQVV9GUkFNRV9USUxF X0E0WCwKQEAgLTE1OSwxNSArMTM3LDExIEBAIHN0cnVjdCBkcHVfaHdfcGl4ZWxfZXh0IHsKICAq IEBzcmNfcmVjdDogIHNyYyBST0ksIGNhbGxlciB0YWtlcyBpbnRvIGFjY291bnQgdGhlIGRpZmZl cmVudCBvcGVyYXRpb25zCiAgKiAgICAgICAgICAgICBzdWNoIGFzIGRlY2ltYXRpb24sIGZsaXAg ZXRjIHRvIHByb2dyYW0gdGhpcyBmaWVsZAogICogQGRlc3RfcmVjdDogZGVzdGluYXRpb24gUk9J LgotICogQGluZGV4OiAgICAgaW5kZXggb2YgdGhlIHJlY3RhbmdsZSBvZiBTU1BQCi0gKiBAbW9k ZTogICAgICBwYXJhbGxlbCBvciB0aW1lIG11bHRpcGxleCBtdWx0aXJlY3QgbW9kZQogICovCiBz dHJ1Y3QgZHB1X2h3X3BpcGVfY2ZnIHsKIAlzdHJ1Y3QgZHB1X2h3X2ZtdF9sYXlvdXQgbGF5b3V0 OwogCXN0cnVjdCBkcHVfcmVjdCBzcmNfcmVjdDsKIAlzdHJ1Y3QgZHB1X3JlY3QgZHN0X3JlY3Q7 Ci0JZW51bSBkcHVfc3NwcF9tdWx0aXJlY3RfaW5kZXggaW5kZXg7Ci0JZW51bSBkcHVfc3NwcF9t dWx0aXJlY3RfbW9kZSBtb2RlOwogfTsKIAogLyoqCkBAIC0yMzUsMjEgKzIwOSwxNyBAQCBzdHJ1 Y3QgZHB1X2h3X3NzcHBfb3BzIHsKIAkgKiBAY3R4OiBQb2ludGVyIHRvIHBpcGUgY29udGV4dAog CSAqIEBjZmc6IFBvaW50ZXIgdG8gcGlwZSBjb25maWcgc3RydWN0dXJlCiAJICogQGZsYWdzOiBF eHRyYSBmbGFncyBmb3IgZm9ybWF0IGNvbmZpZwotCSAqIEBpbmRleDogcmVjdGFuZ2xlIGluZGV4 IGluIG11bHRpcmVjdAogCSAqLwogCXZvaWQgKCpzZXR1cF9mb3JtYXQpKHN0cnVjdCBkcHVfaHdf cGlwZSAqY3R4LAotCQkJY29uc3Qgc3RydWN0IGRwdV9mb3JtYXQgKmZtdCwgdTMyIGZsYWdzLAot CQkJZW51bSBkcHVfc3NwcF9tdWx0aXJlY3RfaW5kZXggaW5kZXgpOworCQkJY29uc3Qgc3RydWN0 IGRwdV9mb3JtYXQgKmZtdCwgdTMyIGZsYWdzKTsKIAogCS8qKgogCSAqIHNldHVwX3JlY3RzIC0g c2V0dXAgcGlwZSBST0kgcmVjdGFuZ2xlcwogCSAqIEBjdHg6IFBvaW50ZXIgdG8gcGlwZSBjb250 ZXh0CiAJICogQGNmZzogUG9pbnRlciB0byBwaXBlIGNvbmZpZyBzdHJ1Y3R1cmUKLQkgKiBAaW5k ZXg6IHJlY3RhbmdsZSBpbmRleCBpbiBtdWx0aXJlY3QKIAkgKi8KIAl2b2lkICgqc2V0dXBfcmVj dHMpKHN0cnVjdCBkcHVfaHdfcGlwZSAqY3R4LAotCQkJc3RydWN0IGRwdV9od19waXBlX2NmZyAq Y2ZnLAotCQkJZW51bSBkcHVfc3NwcF9tdWx0aXJlY3RfaW5kZXggaW5kZXgpOworCQkJc3RydWN0 IGRwdV9od19waXBlX2NmZyAqY2ZnKTsKIAogCS8qKgogCSAqIHNldHVwX3BlIC0gc2V0dXAgcGlw ZSBwaXhlbCBleHRlbnNpb24KQEAgLTI2MywxMSArMjMzLDkgQEAgc3RydWN0IGRwdV9od19zc3Bw X29wcyB7CiAJICogc2V0dXBfc291cmNlYWRkcmVzcyAtIHNldHVwIHBpcGUgc291cmNlIGFkZHJl c3NlcwogCSAqIEBjdHg6IFBvaW50ZXIgdG8gcGlwZSBjb250ZXh0CiAJICogQGNmZzogUG9pbnRl ciB0byBwaXBlIGNvbmZpZyBzdHJ1Y3R1cmUKLQkgKiBAaW5kZXg6IHJlY3RhbmdsZSBpbmRleCBp biBtdWx0aXJlY3QKIAkgKi8KIAl2b2lkICgqc2V0dXBfc291cmNlYWRkcmVzcykoc3RydWN0IGRw dV9od19waXBlICpjdHgsCi0JCQlzdHJ1Y3QgZHB1X2h3X3BpcGVfY2ZnICpjZmcsCi0JCQllbnVt IGRwdV9zc3BwX211bHRpcmVjdF9pbmRleCBpbmRleCk7CisJCQlzdHJ1Y3QgZHB1X2h3X3BpcGVf Y2ZnICpjZmcpOwogCiAJLyoqCiAJICogc2V0dXBfY3NjIC0gc2V0dXAgY29sb3Igc3BhY2UgY292 ZXJzaW9uCkBAIC0yODEsMjEgKzI0OSw4IEBAIHN0cnVjdCBkcHVfaHdfc3NwcF9vcHMgewogCSAq IEBjdHg6IFBvaW50ZXIgdG8gcGlwZSBjb250ZXh0CiAJICogQGNvbnN0X2NvbG9yOiBGaWxsIGNv bG9yIHZhbHVlCiAJICogQGZsYWdzOiBQaXBlIGZsYWdzCi0JICogQGluZGV4OiByZWN0YW5nbGUg aW5kZXggaW4gbXVsdGlyZWN0Ci0JICovCi0Jdm9pZCAoKnNldHVwX3NvbGlkZmlsbCkoc3RydWN0 IGRwdV9od19waXBlICpjdHgsIHUzMiBjb2xvciwKLQkJCWVudW0gZHB1X3NzcHBfbXVsdGlyZWN0 X2luZGV4IGluZGV4KTsKLQotCS8qKgotCSAqIHNldHVwX211bHRpcmVjdCAtIHNldHVwIG11bHRp cmVjdCBjb25maWd1cmF0aW9uCi0JICogQGN0eDogUG9pbnRlciB0byBwaXBlIGNvbnRleHQKLQkg KiBAaW5kZXg6IHJlY3RhbmdsZSBpbmRleCBpbiBtdWx0aXJlY3QKLQkgKiBAbW9kZTogcGFyYWxs ZWwgZmV0Y2ggLyB0aW1lIG11bHRpcGxleCBtdWx0aXJlY3QgbW9kZQogCSAqLwotCi0Jdm9pZCAo KnNldHVwX211bHRpcmVjdCkoc3RydWN0IGRwdV9od19waXBlICpjdHgsCi0JCQllbnVtIGRwdV9z c3BwX211bHRpcmVjdF9pbmRleCBpbmRleCwKLQkJCWVudW0gZHB1X3NzcHBfbXVsdGlyZWN0X21v ZGUgbW9kZSk7CisJdm9pZCAoKnNldHVwX3NvbGlkZmlsbCkoc3RydWN0IGRwdV9od19waXBlICpj dHgsIHUzMiBjb2xvcik7CiAKIAkvKioKIAkgKiBzZXR1cF9zaGFycGVuaW5nIC0gc2V0dXAgc2hh cnBlbmluZwpAQCAtNDEwLDggKzM2NSw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRwdV9od19w aXBlICp0b19kcHVfaHdfcGlwZShzdHJ1Y3QgZHB1X2h3X2JsayAqaHcpCiAgKiBAaXNfdmlydHVh bF9waXBlOiBpcyB0aGlzIHBpcGUgdmlydHVhbCBwaXBlCiAgKi8KIHN0cnVjdCBkcHVfaHdfcGlw ZSAqZHB1X2h3X3NzcHBfaW5pdChlbnVtIGRwdV9zc3BwIGlkeCwKLQkJdm9pZCBfX2lvbWVtICph ZGRyLCBzdHJ1Y3QgZHB1X21kc3NfY2ZnICpjYXRhbG9nLAotCQlib29sIGlzX3ZpcnR1YWxfcGlw ZSk7CisJCXZvaWQgX19pb21lbSAqYWRkciwgc3RydWN0IGRwdV9tZHNzX2NmZyAqY2F0YWxvZyk7 CiAKIC8qKgogICogZHB1X2h3X3NzcHBfZGVzdHJveSgpOiBEZXN0cm95cyBTU1BQIGRyaXZlciBj b250ZXh0CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21z LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMKaW5kZXggOGJkMTIy NC4uM2IxN2EwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYwpAQCAt NTk2LDEwICs1OTYsNiBAQCBzdGF0aWMgaW50IF9kcHVfa21zX2RybV9vYmpfaW5pdChzdHJ1Y3Qg ZHB1X2ttcyAqZHB1X2ttcykKIAlpbnQgcHJpbWFyeV9wbGFuZXNfaWR4ID0gMCwgaSwgcmV0Owog CWludCBtYXhfY3J0Y19jb3VudDsKIAotCXUzMiBzc3BwX2lkW01BWF9QTEFORVNdOwotCXUzMiBt YXN0ZXJfcGxhbmVfaWRbTUFYX1BMQU5FU107Ci0JdTMyIG51bV92aXJ0X3BsYW5lcyA9IDA7Ci0K IAlpZiAoIWRwdV9rbXMgfHwgIWRwdV9rbXMtPmRldiB8fCAhZHB1X2ttcy0+ZGV2LT5kZXYpIHsK IAkJRFBVX0VSUk9SKCJpbnZhbGlkIGRwdV9rbXNcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKQEAg LTYyNiw3ICs2MjIsNyBAQCBzdGF0aWMgaW50IF9kcHVfa21zX2RybV9vYmpfaW5pdChzdHJ1Y3Qg ZHB1X2ttcyAqZHB1X2ttcykKIAkJCXByaW1hcnkgPSBmYWxzZTsKIAogCQlwbGFuZSA9IGRwdV9w bGFuZV9pbml0KGRldiwgY2F0YWxvZy0+c3NwcFtpXS5pZCwgcHJpbWFyeSwKLQkJCQkoMVVMIDw8 IG1heF9jcnRjX2NvdW50KSAtIDEsIDApOworCQkJCSgxVUwgPDwgbWF4X2NydGNfY291bnQpIC0g MSk7CiAJCWlmIChJU19FUlIocGxhbmUpKSB7CiAJCQlEUFVfRVJST1IoImRwdV9wbGFuZV9pbml0 IGZhaWxlZFxuIik7CiAJCQlyZXQgPSBQVFJfRVJSKHBsYW5lKTsKQEAgLTYzNywyNiArNjMzLDYg QEAgc3RhdGljIGludCBfZHB1X2ttc19kcm1fb2JqX2luaXQoc3RydWN0IGRwdV9rbXMgKmRwdV9r bXMpCiAJCWlmIChwcmltYXJ5KQogCQkJcHJpbWFyeV9wbGFuZXNbcHJpbWFyeV9wbGFuZXNfaWR4 KytdID0gcGxhbmU7CiAKLQkJaWYgKGRwdV9od19zc3BwX211bHRpcmVjdF9lbmFibGVkKCZjYXRh bG9nLT5zc3BwW2ldKSAmJgotCQkJZHB1X2lzX2N1c3RvbV9jbGllbnQoKSkgewotCQkJaW50IHBy aW9yaXR5ID0KLQkJCQljYXRhbG9nLT5zc3BwW2ldLnNibGstPnNtYXJ0X2RtYV9wcmlvcml0eTsK LQkJCXNzcHBfaWRbcHJpb3JpdHkgLSAxXSA9IGNhdGFsb2ctPnNzcHBbaV0uaWQ7Ci0JCQltYXN0 ZXJfcGxhbmVfaWRbcHJpb3JpdHkgLSAxXSA9IHBsYW5lLT5iYXNlLmlkOwotCQkJbnVtX3ZpcnRf cGxhbmVzKys7Ci0JCX0KLQl9Ci0KLQkvKiBJbml0aWFsaXplIHNtYXJ0IERNQSB2aXJ0dWFsIHBs YW5lcyAqLwotCWZvciAoaSA9IDA7IGkgPCBudW1fdmlydF9wbGFuZXM7IGkrKykgewotCQlwbGFu ZSA9IGRwdV9wbGFuZV9pbml0KGRldiwgc3NwcF9pZFtpXSwgZmFsc2UsCi0JCQkoMVVMIDw8IG1h eF9jcnRjX2NvdW50KSAtIDEsIG1hc3Rlcl9wbGFuZV9pZFtpXSk7Ci0JCWlmIChJU19FUlIocGxh bmUpKSB7Ci0JCQlEUFVfRVJST1IoImRwdV9wbGFuZSBmb3IgdmlydHVhbCBTU1BQIGluaXQgZmFp bGVkXG4iKTsKLQkJCXJldCA9IFBUUl9FUlIocGxhbmUpOwotCQkJZ290byBmYWlsOwotCQl9Ci0J CXByaXYtPnBsYW5lc1twcml2LT5udW1fcGxhbmVzKytdID0gcGxhbmU7CiAJfQogCiAJbWF4X2Ny dGNfY291bnQgPSBtaW4obWF4X2NydGNfY291bnQsIHByaW1hcnlfcGxhbmVzX2lkeCk7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcGxhbmUuYyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5jCmluZGV4IDYwOTBhY2UuLjBmZDA1 ZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wbGFuZS5jCkBAIC02MCwx MyArNjAsNiBAQAogI2RlZmluZSBEUFVfUExBTkVfQ09MT1JfRklMTF9GTEFHCUJJVCgzMSkKICNk ZWZpbmUgRFBVX1pQT1NfTUFYIDI1NQogCi0vKiBtdWx0aXJlY3QgcmVjdCBpbmRleCAqLwotZW51 bSB7Ci0JUjAsCi0JUjEsCi0JUl9NQVgKLX07Ci0KICNkZWZpbmUgRFBVX1FTRUVEM19ERUZBVUxU X1BSRUxPQURfSCAweDQKICNkZWZpbmUgRFBVX1FTRUVEM19ERUZBVUxUX1BSRUxPQURfViAweDMK IApAQCAtOTAsNyArODMsNiBAQCBlbnVtIGRwdV9wbGFuZV9xb3MgewogICogc3RydWN0IGRwdV9w bGFuZSAtIGxvY2FsIGRwdSBwbGFuZSBzdHJ1Y3R1cmUKICAqIEBhc3BhY2U6IGFkZHJlc3Mgc3Bh Y2UgcG9pbnRlcgogICogQGNzY19wdHI6IFBvaW50cyB0byBkcHVfY3NjX2NmZyBzdHJ1Y3R1cmUg dG8gdXNlIGZvciBjdXJyZW50Ci0gKiBAbXBsYW5lX2xpc3Q6IExpc3Qgb2YgbXVsdGlyZWN0IHBs YW5lcyBvZiB0aGUgc2FtZSBwaXBlCiAgKiBAY2F0YWxvZzogUG9pbnRzIHRvIGRwdSBjYXRhbG9n IHN0cnVjdHVyZQogICogQHJldmFsaWRhdGU6IGZvcmNlIHJldmFsaWRhdGlvbiBvZiBhbGwgdGhl IHBsYW5lIHByb3BlcnRpZXMKICAqLwpAQCAtMTEwLDggKzEwMiw2IEBAIHN0cnVjdCBkcHVfcGxh bmUgewogCXVpbnQzMl90IGNvbG9yX2ZpbGw7CiAJYm9vbCBpc19lcnJvcjsKIAlib29sIGlzX3J0 X3BpcGU7Ci0JYm9vbCBpc192aXJ0dWFsOwotCXN0cnVjdCBsaXN0X2hlYWQgbXBsYW5lX2xpc3Q7 CiAJc3RydWN0IGRwdV9tZHNzX2NmZyAqY2F0YWxvZzsKIAogCXN0cnVjdCBkcHVfY3NjX2NmZyAq Y3NjX3B0cjsKQEAgLTE2MSw3ICsxNTEsNyBAQCBzdGF0aWMgYm9vbCBkcHVfcGxhbmVfc3NwcF9l bmFibGVkKHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQogc3RhdGljIGlubGluZSBpbnQg X2RwdV9wbGFuZV9jYWxjX2ZpbGxfbGV2ZWwoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCWNv bnN0IHN0cnVjdCBkcHVfZm9ybWF0ICpmbXQsIHUzMiBzcmNfd2lkdGgpCiB7Ci0Jc3RydWN0IGRw dV9wbGFuZSAqcGRwdSwgKnRtcDsKKwlzdHJ1Y3QgZHB1X3BsYW5lICpwZHB1OwogCXN0cnVjdCBk cHVfcGxhbmVfc3RhdGUgKnBzdGF0ZTsKIAl1MzIgZml4ZWRfYnVmZl9zaXplOwogCXUzMiB0b3Rh bF9mbDsKQEAgLTE3NSwxNSArMTY1LDYgQEAgc3RhdGljIGlubGluZSBpbnQgX2RwdV9wbGFuZV9j YWxjX2ZpbGxfbGV2ZWwoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJcHN0YXRlID0gdG9fZHB1 X3BsYW5lX3N0YXRlKHBsYW5lLT5zdGF0ZSk7CiAJZml4ZWRfYnVmZl9zaXplID0gcGRwdS0+cGlw ZV9zYmxrLT5jb21tb24tPnBpeGVsX3JhbV9zaXplOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeSh0 bXAsICZwZHB1LT5tcGxhbmVfbGlzdCwgbXBsYW5lX2xpc3QpIHsKLQkJaWYgKCFkcHVfcGxhbmVf ZW5hYmxlZCh0bXAtPmJhc2Uuc3RhdGUpKQotCQkJY29udGludWU7Ci0JCURQVV9ERUJVRygicGxh bmUlZC8lZCBzcmNfd2lkdGg6JWQvJWRcbiIsCi0JCQkJcGRwdS0+YmFzZS5iYXNlLmlkLCB0bXAt PmJhc2UuYmFzZS5pZCwKLQkJCQlzcmNfd2lkdGgsIHRtcC0+cGlwZV9jZmcuc3JjX3JlY3Qudyk7 Ci0JCXNyY193aWR0aCA9IG1heF90KHUzMiwgc3JjX3dpZHRoLCB0bXAtPnBpcGVfY2ZnLnNyY19y ZWN0LncpOwotCX0KLQogCWlmIChmbXQtPmZldGNoX3BsYW5lcyA9PSBEUFVfUExBTkVfUFNFVURP X1BMQU5BUikgewogCQlpZiAoZm10LT5jaHJvbWFfc2FtcGxlID09IERQVV9DSFJPTUFfNDIwKSB7 CiAJCQkvKiBOVjEyICovCkBAIC0xOTUsMTMgKzE3Niw4IEBAIHN0YXRpYyBpbmxpbmUgaW50IF9k cHVfcGxhbmVfY2FsY19maWxsX2xldmVsKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJCSgo c3JjX3dpZHRoICsgMzIpICogZm10LT5icHApOwogCQl9CiAJfSBlbHNlIHsKLQkJaWYgKHBzdGF0 ZS0+bXVsdGlyZWN0X21vZGUgPT0gRFBVX1NTUFBfTVVMVElSRUNUX1BBUkFMTEVMKSB7Ci0JCQl0 b3RhbF9mbCA9IChmaXhlZF9idWZmX3NpemUgLyAyKSAqIDIgLwotCQkJCSgoc3JjX3dpZHRoICsg MzIpICogZm10LT5icHApOwotCQl9IGVsc2UgewogCQkJdG90YWxfZmwgPSAoZml4ZWRfYnVmZl9z aXplKSAqIDIgLwogCQkJCSgoc3JjX3dpZHRoICsgMzIpICogZm10LT5icHApOwotCQl9CiAJfQog CiAJRFBVX0RFQlVHKCJwbGFuZSV1OiBwbnVtOiVkIGZtdDogJTQuNHMgdzoldSBmbDoldVxuIiwK QEAgLTYxOSwxMCArNTk1LDggQEAgc3RhdGljIGlubGluZSB2b2lkIF9kcHVfcGxhbmVfc2V0X3Nj YW5vdXQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkJcGlwZV9jZmctPmxheW91dC5wbGFu ZV9hZGRyWzJdLAogCQkJCXBpcGVfY2ZnLT5sYXlvdXQucGxhbmVfc2l6ZVsyXSwKIAkJCQlwaXBl X2NmZy0+bGF5b3V0LnBsYW5lX2FkZHJbM10sCi0JCQkJcGlwZV9jZmctPmxheW91dC5wbGFuZV9z aXplWzNdLAotCQkJCXBzdGF0ZS0+bXVsdGlyZWN0X2luZGV4KTsKLQkJcGRwdS0+cGlwZV9ody0+ b3BzLnNldHVwX3NvdXJjZWFkZHJlc3MocGRwdS0+cGlwZV9odywgcGlwZV9jZmcsCi0JCQkJCQlw c3RhdGUtPm11bHRpcmVjdF9pbmRleCk7CisJCQkJcGlwZV9jZmctPmxheW91dC5wbGFuZV9zaXpl WzNdKTsKKwkJcGRwdS0+cGlwZV9ody0+b3BzLnNldHVwX3NvdXJjZWFkZHJlc3MocGRwdS0+cGlw ZV9odywgcGlwZV9jZmcpOwogCX0KIH0KIApAQCAtODEyLDggKzc4Niw3IEBAIHN0YXRpYyBpbnQg X2RwdV9wbGFuZV9jb2xvcl9maWxsKHN0cnVjdCBkcHVfcGxhbmUgKnBkcHUsCiAJLyogdXBkYXRl IHNzcHAgKi8KIAlpZiAoZm10ICYmIHBkcHUtPnBpcGVfaHctPm9wcy5zZXR1cF9zb2xpZGZpbGwp IHsKIAkJcGRwdS0+cGlwZV9ody0+b3BzLnNldHVwX3NvbGlkZmlsbChwZHB1LT5waXBlX2h3LAot CQkJCShjb2xvciAmIDB4RkZGRkZGKSB8ICgoYWxwaGEgJiAweEZGKSA8PCAyNCksCi0JCQkJcHN0 YXRlLT5tdWx0aXJlY3RfaW5kZXgpOworCQkJCShjb2xvciAmIDB4RkZGRkZGKSB8ICgoYWxwaGEg JiAweEZGKSA8PCAyNCkpOwogCiAJCS8qIG92ZXJyaWRlIHNjYWxlci9kZWNpbWF0aW9uIGlmIHNv bGlkIGZpbGwgKi8KIAkJcGRwdS0+cGlwZV9jZmcuc3JjX3JlY3QueCA9IDA7CkBAIC04MjQsMjAg Kzc5NywxNyBAQCBzdGF0aWMgaW50IF9kcHVfcGxhbmVfY29sb3JfZmlsbChzdHJ1Y3QgZHB1X3Bs YW5lICpwZHB1LAogCiAJCWlmIChwZHB1LT5waXBlX2h3LT5vcHMuc2V0dXBfZm9ybWF0KQogCQkJ cGRwdS0+cGlwZV9ody0+b3BzLnNldHVwX2Zvcm1hdChwZHB1LT5waXBlX2h3LAotCQkJCQlmbXQs IERQVV9TU1BQX1NPTElEX0ZJTEwsCi0JCQkJCXBzdGF0ZS0+bXVsdGlyZWN0X2luZGV4KTsKKwkJ CQkJZm10LCBEUFVfU1NQUF9TT0xJRF9GSUxMKTsKIAogCQlpZiAocGRwdS0+cGlwZV9ody0+b3Bz LnNldHVwX3JlY3RzKQogCQkJcGRwdS0+cGlwZV9ody0+b3BzLnNldHVwX3JlY3RzKHBkcHUtPnBp cGVfaHcsCi0JCQkJCSZwZHB1LT5waXBlX2NmZywKLQkJCQkJcHN0YXRlLT5tdWx0aXJlY3RfaW5k ZXgpOworCQkJCQkmcGRwdS0+cGlwZV9jZmcpOwogCiAJCWlmIChwZHB1LT5waXBlX2h3LT5vcHMu c2V0dXBfcGUpCiAJCQlwZHB1LT5waXBlX2h3LT5vcHMuc2V0dXBfcGUocGRwdS0+cGlwZV9odywK IAkJCQkJJnBzdGF0ZS0+cGl4ZWxfZXh0KTsKIAotCQlpZiAocGRwdS0+cGlwZV9ody0+b3BzLnNl dHVwX3NjYWxlciAmJgotCQkJCXBzdGF0ZS0+bXVsdGlyZWN0X2luZGV4ICE9IERQVV9TU1BQX1JF Q1RfMSkKKwkJaWYgKHBkcHUtPnBpcGVfaHctPm9wcy5zZXR1cF9zY2FsZXIpCiAJCQlwZHB1LT5w aXBlX2h3LT5vcHMuc2V0dXBfc2NhbGVyKHBkcHUtPnBpcGVfaHcsCiAJCQkJCSZwZHB1LT5waXBl X2NmZywgJnBzdGF0ZS0+cGl4ZWxfZXh0LAogCQkJCQkmcHN0YXRlLT5zY2FsZXIzX2NmZyk7CkBA IC04NDYsMTMzICs4MTYsNiBAQCBzdGF0aWMgaW50IF9kcHVfcGxhbmVfY29sb3JfZmlsbChzdHJ1 Y3QgZHB1X3BsYW5lICpwZHB1LAogCXJldHVybiAwOwogfQogCi12b2lkIGRwdV9wbGFuZV9jbGVh cl9tdWx0aXJlY3QoY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqZHJtX3N0YXRlKQotewot CXN0cnVjdCBkcHVfcGxhbmVfc3RhdGUgKnBzdGF0ZTsKLQotCWlmICghZHJtX3N0YXRlKQotCQly ZXR1cm47Ci0KLQlwc3RhdGUgPSB0b19kcHVfcGxhbmVfc3RhdGUoZHJtX3N0YXRlKTsKLQotCXBz dGF0ZS0+bXVsdGlyZWN0X2luZGV4ID0gRFBVX1NTUFBfUkVDVF9TT0xPOwotCXBzdGF0ZS0+bXVs dGlyZWN0X21vZGUgPSBEUFVfU1NQUF9NVUxUSVJFQ1RfTk9ORTsKLX0KLQotaW50IGRwdV9wbGFu ZV92YWxpZGF0ZV9tdWx0aXJlY3RfdjIoc3RydWN0IGRwdV9tdWx0aXJlY3RfcGxhbmVfc3RhdGVz ICpwbGFuZSkKLXsKLQlzdHJ1Y3QgZHB1X3BsYW5lX3N0YXRlICpwc3RhdGVbUl9NQVhdOwotCWNv bnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKmRybV9zdGF0ZVtSX01BWF07Ci0Jc3RydWN0IGRw dV9yZWN0IHNyY1tSX01BWF0sIGRzdFtSX01BWF07Ci0Jc3RydWN0IGRwdV9wbGFuZSAqZHB1X3Bs YW5lW1JfTUFYXTsKLQljb25zdCBzdHJ1Y3QgZHB1X2Zvcm1hdCAqZm10W1JfTUFYXTsKLQlib29s IHExNl9kYXRhID0gdHJ1ZTsKLQlpbnQgaSwgYnVmZmVyX2xpbmVzOwotCXVuc2lnbmVkIGludCBt YXhfdGlsZV9oZWlnaHQgPSAxOwotCWJvb2wgcGFyYWxsZWxfZmV0Y2hfcXVhbGlmaWVkID0gdHJ1 ZTsKLQlib29sIGhhc190aWxlZF9yZWN0ID0gZmFsc2U7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgUl9N QVg7IGkrKykgewotCQljb25zdCBzdHJ1Y3QgbXNtX2Zvcm1hdCAqbXNtX2ZtdDsKLQotCQlkcm1f c3RhdGVbaV0gPSBpID8gcGxhbmUtPnIxIDogcGxhbmUtPnIwOwotCQltc21fZm10ID0gbXNtX2Zy YW1lYnVmZmVyX2Zvcm1hdChkcm1fc3RhdGVbaV0tPmZiKTsKLQkJZm10W2ldID0gdG9fZHB1X2Zv cm1hdChtc21fZm10KTsKLQotCQlpZiAoRFBVX0ZPUk1BVF9JU19VQldDKGZtdFtpXSkpIHsKLQkJ CWhhc190aWxlZF9yZWN0ID0gdHJ1ZTsKLQkJCWlmIChmbXRbaV0tPnRpbGVfaGVpZ2h0ID4gbWF4 X3RpbGVfaGVpZ2h0KQotCQkJCW1heF90aWxlX2hlaWdodCA9IGZtdFtpXS0+dGlsZV9oZWlnaHQ7 Ci0JCX0KLQl9Ci0KLQlmb3IgKGkgPSAwOyBpIDwgUl9NQVg7IGkrKykgewotCQlpbnQgd2lkdGhf dGhyZXNob2xkOwotCi0JCXBzdGF0ZVtpXSA9IHRvX2RwdV9wbGFuZV9zdGF0ZShkcm1fc3RhdGVb aV0pOwotCQlkcHVfcGxhbmVbaV0gPSB0b19kcHVfcGxhbmUoZHJtX3N0YXRlW2ldLT5wbGFuZSk7 Ci0KLQkJaWYgKHBzdGF0ZVtpXSA9PSBOVUxMKSB7Ci0JCQlEUFVfRVJST1IoIkRQVSBwbGFuZSBz dGF0ZSBvZiBwbGFuZSBpZCAlZCBpcyBOVUxMXG4iLAotCQkJCWRybV9zdGF0ZVtpXS0+cGxhbmUt PmJhc2UuaWQpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQotCQlQT1BVTEFURV9SRUNUKCZz cmNbaV0sIGRybV9zdGF0ZVtpXS0+c3JjX3gsIGRybV9zdGF0ZVtpXS0+c3JjX3ksCi0JCQlkcm1f c3RhdGVbaV0tPnNyY193LCBkcm1fc3RhdGVbaV0tPnNyY19oLCBxMTZfZGF0YSk7Ci0JCVBPUFVM QVRFX1JFQ1QoJmRzdFtpXSwgZHJtX3N0YXRlW2ldLT5jcnRjX3gsCi0JCQkJZHJtX3N0YXRlW2ld LT5jcnRjX3ksIGRybV9zdGF0ZVtpXS0+Y3J0Y193LAotCQkJCWRybV9zdGF0ZVtpXS0+Y3J0Y19o LCAhcTE2X2RhdGEpOwotCi0JCWlmIChzcmNbaV0udyAhPSBkc3RbaV0udyB8fCBzcmNbaV0uaCAh PSBkc3RbaV0uaCkgewotCQkJRFBVX0VSUk9SX1BMQU5FKGRwdV9wbGFuZVtpXSwKLQkJCQkic2Nh bGluZyBpcyBub3Qgc3VwcG9ydGVkIGluIG11bHRpcmVjdCBtb2RlXG4iKTsKLQkJCXJldHVybiAt RUlOVkFMOwotCQl9Ci0KLQkJaWYgKERQVV9GT1JNQVRfSVNfWVVWKGZtdFtpXSkpIHsKLQkJCURQ VV9FUlJPUl9QTEFORShkcHVfcGxhbmVbaV0sCi0JCQkJIlVuc3VwcG9ydGVkIGZvcm1hdCBmb3Ig bXVsdGlyZWN0IG1vZGVcbiIpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQotCQkvKioKLQkJ ICogU1NQUCBQRF9NRU0gaXMgc3BsaXQgaGFsZiAtIG9uZSBmb3IgZWFjaCBSRUNULgotCQkgKiBU aWxlZCBmb3JtYXRzIG5lZWQgNSBsaW5lcyBvZiBidWZmZXJpbmcgd2hpbGUgZmV0Y2hpbmcKLQkJ ICogd2hlcmVhcyBsaW5lYXIgZm9ybWF0cyBuZWVkIG9ubHkgMiBsaW5lcy4KLQkJICogU28gd2Ug Y2Fubm90IHN1cHBvcnQgbW9yZSB0aGFuIGhhbGYgb2YgdGhlIHN1cHBvcnRlZCBTU1BQCi0JCSAq IHdpZHRoIGZvciB0aWxlZCBmb3JtYXRzLgotCQkgKi8KLQkJd2lkdGhfdGhyZXNob2xkID0gZHB1 X3BsYW5lW2ldLT5waXBlX3NibGstPmNvbW1vbi0+bWF4bGluZXdpZHRoOwotCQlpZiAoaGFzX3Rp bGVkX3JlY3QpCi0JCQl3aWR0aF90aHJlc2hvbGQgLz0gMjsKLQotCQlpZiAocGFyYWxsZWxfZmV0 Y2hfcXVhbGlmaWVkICYmIHNyY1tpXS53ID4gd2lkdGhfdGhyZXNob2xkKQotCQkJcGFyYWxsZWxf ZmV0Y2hfcXVhbGlmaWVkID0gZmFsc2U7Ci0KLQl9Ci0KLQkvKiBWYWxpZGF0ZSBSRUNUJ3MgYW5k IHNldCB0aGUgbW9kZSAqLwotCi0JLyogUHJlZmVyIFBBUkFMTEVMIEZFVENIIE1vZGUgb3ZlciBU SU1FX01YIE1vZGUgKi8KLQlpZiAocGFyYWxsZWxfZmV0Y2hfcXVhbGlmaWVkKSB7Ci0JCXBzdGF0 ZVtSMF0tPm11bHRpcmVjdF9tb2RlID0gRFBVX1NTUFBfTVVMVElSRUNUX1BBUkFMTEVMOwotCQlw c3RhdGVbUjFdLT5tdWx0aXJlY3RfbW9kZSA9IERQVV9TU1BQX01VTFRJUkVDVF9QQVJBTExFTDsK LQotCQlnb3RvIGRvbmU7Ci0JfQotCi0JLyogVElNRV9NWCBNb2RlICovCi0JYnVmZmVyX2xpbmVz ID0gMiAqIG1heF90aWxlX2hlaWdodDsKLQotCWlmICgoZHN0W1IxXS55ID49IGRzdFtSMF0ueSAr IGRzdFtSMF0uaCArIGJ1ZmZlcl9saW5lcykgfHwKLQkJKGRzdFtSMF0ueSA+PSBkc3RbUjFdLnkg KyBkc3RbUjFdLmggKyBidWZmZXJfbGluZXMpKSB7Ci0JCXBzdGF0ZVtSMF0tPm11bHRpcmVjdF9t b2RlID0gRFBVX1NTUFBfTVVMVElSRUNUX1RJTUVfTVg7Ci0JCXBzdGF0ZVtSMV0tPm11bHRpcmVj dF9tb2RlID0gRFBVX1NTUFBfTVVMVElSRUNUX1RJTUVfTVg7Ci0JfSBlbHNlIHsKLQkJRFBVX0VS Uk9SKAotCQkJIk5vIG11bHRpcmVjdCBtb2RlIHBvc3NpYmxlIGZvciB0aGUgcGxhbmVzICglZCAt ICVkKVxuIiwKLQkJCWRybV9zdGF0ZVtSMF0tPnBsYW5lLT5iYXNlLmlkLAotCQkJZHJtX3N0YXRl W1IxXS0+cGxhbmUtPmJhc2UuaWQpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLWRvbmU6Ci0J aWYgKGRwdV9wbGFuZVtSMF0tPmlzX3ZpcnR1YWwpIHsKLQkJcHN0YXRlW1IwXS0+bXVsdGlyZWN0 X2luZGV4ID0gRFBVX1NTUFBfUkVDVF8xOwotCQlwc3RhdGVbUjFdLT5tdWx0aXJlY3RfaW5kZXgg PSBEUFVfU1NQUF9SRUNUXzA7Ci0JfSBlbHNlIHsKLQkJcHN0YXRlW1IwXS0+bXVsdGlyZWN0X2lu ZGV4ID0gRFBVX1NTUFBfUkVDVF8wOwotCQlwc3RhdGVbUjFdLT5tdWx0aXJlY3RfaW5kZXggPSBE UFVfU1NQUF9SRUNUXzE7Ci0JfTsKLQotCURQVV9ERUJVR19QTEFORShkcHVfcGxhbmVbUjBdLCAi UjA6ICVkIC0gJWRcbiIsCi0JCXBzdGF0ZVtSMF0tPm11bHRpcmVjdF9tb2RlLCBwc3RhdGVbUjBd LT5tdWx0aXJlY3RfaW5kZXgpOwotCURQVV9ERUJVR19QTEFORShkcHVfcGxhbmVbUjFdLCAiUjE6 ICVkIC0gJWRcbiIsCi0JCXBzdGF0ZVtSMV0tPm11bHRpcmVjdF9tb2RlLCBwc3RhdGVbUjFdLT5t dWx0aXJlY3RfaW5kZXgpOwotCXJldHVybiAwOwotfQotCiAvKioKICAqIGRwdV9wbGFuZV9nZXRf Y3RsX2ZsdXNoIC0gZ2V0IGNvbnRyb2wgZmx1c2ggZm9yIHRoZSBnaXZlbiBwbGFuZQogICogQHBs YW5lOiBQb2ludGVyIHRvIGRybSBwbGFuZSBzdHJ1Y3R1cmUKQEAgLTEzMjksMzggKzExNzIsMjMg QEAgc3RhdGljIGludCBkcHVfcGxhbmVfc3NwcF9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAogCiAJaWYgKHBkcHUtPnBpcGVfaHctPm9wcy5zZXR1cF9yZWN0cykgewogCQlw ZHB1LT5waXBlX2h3LT5vcHMuc2V0dXBfcmVjdHMocGRwdS0+cGlwZV9odywKLQkJCQkmcGRwdS0+ cGlwZV9jZmcsCi0JCQkJcHN0YXRlLT5tdWx0aXJlY3RfaW5kZXgpOworCQkJCSZwZHB1LT5waXBl X2NmZyk7CiAJfQogCi0JaWYgKHBkcHUtPnBpcGVfaHctPm9wcy5zZXR1cF9wZSAmJgotCQkJKHBz dGF0ZS0+bXVsdGlyZWN0X2luZGV4ICE9IERQVV9TU1BQX1JFQ1RfMSkpCisJaWYgKHBkcHUtPnBp cGVfaHctPm9wcy5zZXR1cF9wZSkKIAkJcGRwdS0+cGlwZV9ody0+b3BzLnNldHVwX3BlKHBkcHUt PnBpcGVfaHcsCiAJCQkJJnBzdGF0ZS0+cGl4ZWxfZXh0KTsKIAotCS8qKgotCSAqIHdoZW4gcHJv Z3JhbW1lZCBpbiBtdWx0aXJlY3QgbW9kZSwgc2NhbGFyIGJsb2NrIHdpbGwgYmUKLQkgKiBieXBh c3NlZC4gU3RpbGwgd2UgbmVlZCB0byB1cGRhdGUgYWxwaGEgYW5kIGJpdHdpZHRoCi0JICogT05M WSBmb3IgUkVDVDAKLQkgKi8KLQlpZiAocGRwdS0+cGlwZV9ody0+b3BzLnNldHVwX3NjYWxlciAm JgotCQkJcHN0YXRlLT5tdWx0aXJlY3RfaW5kZXggIT0gRFBVX1NTUFBfUkVDVF8xKQorCWlmIChw ZHB1LT5waXBlX2h3LT5vcHMuc2V0dXBfc2NhbGVyKQogCQlwZHB1LT5waXBlX2h3LT5vcHMuc2V0 dXBfc2NhbGVyKHBkcHUtPnBpcGVfaHcsCiAJCQkJJnBkcHUtPnBpcGVfY2ZnLCAmcHN0YXRlLT5w aXhlbF9leHQsCiAJCQkJJnBzdGF0ZS0+c2NhbGVyM19jZmcpOwogCi0JaWYgKHBkcHUtPnBpcGVf aHctPm9wcy5zZXR1cF9tdWx0aXJlY3QpCi0JCXBkcHUtPnBpcGVfaHctPm9wcy5zZXR1cF9tdWx0 aXJlY3QoCi0JCQkJcGRwdS0+cGlwZV9odywKLQkJCQlwc3RhdGUtPm11bHRpcmVjdF9pbmRleCwK LQkJCQlwc3RhdGUtPm11bHRpcmVjdF9tb2RlKTsKLQogCWlmIChwZHB1LT5waXBlX2h3LT5vcHMu c2V0dXBfZm9ybWF0KSB7CiAJCXNyY19mbGFncyA9IDB4MDsKIAogCQkvKiB1cGRhdGUgZm9ybWF0 ICovCi0JCXBkcHUtPnBpcGVfaHctPm9wcy5zZXR1cF9mb3JtYXQocGRwdS0+cGlwZV9odywgZm10 LCBzcmNfZmxhZ3MsCi0JCQkJcHN0YXRlLT5tdWx0aXJlY3RfaW5kZXgpOworCQlwZHB1LT5waXBl X2h3LT5vcHMuc2V0dXBfZm9ybWF0KHBkcHUtPnBpcGVfaHcsIGZtdCwgc3JjX2ZsYWdzKTsKIAog CQlpZiAocGRwdS0+cGlwZV9ody0+b3BzLnNldHVwX2NkcCkgewogCQkJc3RydWN0IGRwdV9od19w aXBlX2NkcF9jZmcgKmNkcF9jZmcgPSAmcHN0YXRlLT5jZHBfY2ZnOwpAQCAtMTM5OCw0NCArMTIy NiwxMiBAQCBzdGF0aWMgaW50IGRwdV9wbGFuZV9zc3BwX2F0b21pY191cGRhdGUoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIF9kcHVfcGxhbmVf YXRvbWljX2Rpc2FibGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCi0JCQkJc3RydWN0IGRybV9w bGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQotewotCXN0cnVjdCBkcHVfcGxhbmUgKnBkcHU7Ci0Jc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGU7Ci0Jc3RydWN0IGRwdV9wbGFuZV9zdGF0ZSAqcHN0 YXRlOwotCi0JaWYgKCFwbGFuZSkgewotCQlEUFVfRVJST1IoImludmFsaWQgcGxhbmVcbiIpOwot CQlyZXR1cm47Ci0JfSBlbHNlIGlmICghcGxhbmUtPnN0YXRlKSB7Ci0JCURQVV9FUlJPUigiaW52 YWxpZCBwbGFuZSBzdGF0ZVxuIik7Ci0JCXJldHVybjsKLQl9IGVsc2UgaWYgKCFvbGRfc3RhdGUp IHsKLQkJRFBVX0VSUk9SKCJpbnZhbGlkIG9sZCBzdGF0ZVxuIik7Ci0JCXJldHVybjsKLQl9Ci0K LQlwZHB1ID0gdG9fZHB1X3BsYW5lKHBsYW5lKTsKLQlzdGF0ZSA9IHBsYW5lLT5zdGF0ZTsKLQlw c3RhdGUgPSB0b19kcHVfcGxhbmVfc3RhdGUoc3RhdGUpOwotCi0JRFBVX0VWVDMyKERSTUlEKHBs YW5lKSwgaXNfZHB1X3BsYW5lX3ZpcnR1YWwocGxhbmUpLAotCQkJcHN0YXRlLT5tdWx0aXJlY3Rf bW9kZSk7Ci0KLQlwc3RhdGUtPnBlbmRpbmcgPSB0cnVlOwotCi0JaWYgKGlzX2RwdV9wbGFuZV92 aXJ0dWFsKHBsYW5lKSAmJgotCQkJcGRwdS0+cGlwZV9odyAmJiBwZHB1LT5waXBlX2h3LT5vcHMu c2V0dXBfbXVsdGlyZWN0KQotCQlwZHB1LT5waXBlX2h3LT5vcHMuc2V0dXBfbXVsdGlyZWN0KHBk cHUtPnBpcGVfaHcsCi0JCQkJRFBVX1NTUFBfUkVDVF9TT0xPLCBEUFVfU1NQUF9NVUxUSVJFQ1Rf Tk9ORSk7Ci19Ci0KIHN0YXRpYyB2b2lkIGRwdV9wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAogCQkJCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9zdGF0ZSkK IHsKIAlzdHJ1Y3QgZHB1X3BsYW5lICpwZHB1OwogCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0 YXRlOworCXN0cnVjdCBkcHVfcGxhbmVfc3RhdGUgKnBzdGF0ZTsKIAogCWlmICghcGxhbmUpIHsK IAkJRFBVX0VSUk9SKCJpbnZhbGlkIHBsYW5lXG4iKTsKQEAgLTE0NDgsMTEgKzEyNDQsMTIgQEAg c3RhdGljIHZvaWQgZHB1X3BsYW5lX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCiAJcGRwdSA9IHRvX2RwdV9wbGFuZShwbGFuZSk7CiAJcGRwdS0+aXNfZXJyb3IgPSBmYWxz ZTsKIAlzdGF0ZSA9IHBsYW5lLT5zdGF0ZTsKKwlwc3RhdGUgPSB0b19kcHVfcGxhbmVfc3RhdGUo c3RhdGUpOwogCiAJRFBVX0RFQlVHX1BMQU5FKHBkcHUsICJcbiIpOwogCiAJaWYgKCFkcHVfcGxh bmVfc3NwcF9lbmFibGVkKHN0YXRlKSkgewotCQlfZHB1X3BsYW5lX2F0b21pY19kaXNhYmxlKHBs YW5lLCBvbGRfc3RhdGUpOworCQlwc3RhdGUtPnBlbmRpbmcgPSB0cnVlOwogCX0gZWxzZSB7CiAJ CWludCByZXQ7CiAKQEAgLTE4MzAsMTggKzE2MjcsMTIgQEAgZW51bSBkcHVfc3NwcCBkcHVfcGxh bmVfcGlwZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKIAlyZXR1cm4gcGxhbmUgPyB0b19kcHVf cGxhbmUocGxhbmUpLT5waXBlIDogU1NQUF9OT05FOwogfQogCi1ib29sIGlzX2RwdV9wbGFuZV92 aXJ0dWFsKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQotewotCXJldHVybiBwbGFuZSA/IHRvX2Rw dV9wbGFuZShwbGFuZSktPmlzX3ZpcnR1YWwgOiBmYWxzZTsKLX0KLQogLyogaW5pdGlhbGl6ZSBw bGFuZSAqLwogc3RydWN0IGRybV9wbGFuZSAqZHB1X3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAkJdWludDMyX3QgcGlwZSwgYm9vbCBwcmltYXJ5X3BsYW5lLAotCQl1bnNpZ25l ZCBsb25nIHBvc3NpYmxlX2NydGNzLCB1MzIgbWFzdGVyX3BsYW5lX2lkKQorCQl1bnNpZ25lZCBs b25nIHBvc3NpYmxlX2NydGNzKQogewotCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0gTlVMTCwg Km1hc3Rlcl9wbGFuZSA9IE5VTEw7Ci0JY29uc3Qgc3RydWN0IGRwdV9mb3JtYXRfZXh0ZW5kZWQg KmZvcm1hdF9saXN0OworCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0gTlVMTDsKIAlzdHJ1Y3Qg ZHB1X3BsYW5lICpwZHB1OwogCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7CiAJc3RydWN0 IGRwdV9rbXMgKmttczsKQEAgLTE4ODIsMTggKzE2NzMsMTAgQEAgc3RydWN0IGRybV9wbGFuZSAq ZHB1X3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkvKiBjYWNoZSBsb2NhbCBz dHVmZiBmb3IgbGF0ZXIgKi8KIAlwbGFuZSA9ICZwZHB1LT5iYXNlOwogCXBkcHUtPnBpcGUgPSBw aXBlOwotCXBkcHUtPmlzX3ZpcnR1YWwgPSAobWFzdGVyX3BsYW5lX2lkICE9IDApOwotCUlOSVRf TElTVF9IRUFEKCZwZHB1LT5tcGxhbmVfbGlzdCk7Ci0JbWFzdGVyX3BsYW5lID0gZHJtX3BsYW5l X2ZpbmQoZGV2LCBOVUxMLCBtYXN0ZXJfcGxhbmVfaWQpOwotCWlmIChtYXN0ZXJfcGxhbmUpIHsK LQkJc3RydWN0IGRwdV9wbGFuZSAqbXBkcHUgPSB0b19kcHVfcGxhbmUobWFzdGVyX3BsYW5lKTsK LQotCQlsaXN0X2FkZF90YWlsKCZwZHB1LT5tcGxhbmVfbGlzdCwgJm1wZHB1LT5tcGxhbmVfbGlz dCk7Ci0JfQogCiAJLyogaW5pdGlhbGl6ZSB1bmRlcmx5aW5nIGgvdyBkcml2ZXIgKi8KLQlwZHB1 LT5waXBlX2h3ID0gZHB1X2h3X3NzcHBfaW5pdChwaXBlLCBrbXMtPm1taW8sIGttcy0+Y2F0YWxv ZywKLQkJCQkJCQltYXN0ZXJfcGxhbmVfaWQgIT0gMCk7CisJcGRwdS0+cGlwZV9odyA9IGRwdV9o d19zc3BwX2luaXQocGlwZSwga21zLT5tbWlvLCBrbXMtPmNhdGFsb2cpOworCiAJaWYgKElTX0VS UihwZHB1LT5waXBlX2h3KSkgewogCQlEUFVfRVJST1IoIlsldV1TU1BQIGluaXQgZmFpbGVkXG4i LCBwaXBlKTsKIAkJcmV0ID0gUFRSX0VSUihwZHB1LT5waXBlX2h3KTsKQEAgLTE5MTEsMTIgKzE2 OTQsOCBAQCBzdHJ1Y3QgZHJtX3BsYW5lICpkcHVfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCQlnb3RvIGNsZWFuX3NzcHA7CiAJfQogCi0JaWYgKCFtYXN0ZXJfcGxhbmVfaWQp Ci0JCWZvcm1hdF9saXN0ID0gcGRwdS0+cGlwZV9zYmxrLT5mb3JtYXRfbGlzdDsKLQllbHNlCi0J CWZvcm1hdF9saXN0ID0gcGRwdS0+cGlwZV9zYmxrLT52aXJ0X2Zvcm1hdF9saXN0OwotCi0JcGRw dS0+bmZvcm1hdHMgPSBkcHVfcG9wdWxhdGVfZm9ybWF0cyhmb3JtYXRfbGlzdCwKKwlwZHB1LT5u Zm9ybWF0cyA9IGRwdV9wb3B1bGF0ZV9mb3JtYXRzKAorCQkJCXBkcHUtPnBpcGVfc2Jsay0+Zm9y bWF0X2xpc3QsCiAJCQkJcGRwdS0+Zm9ybWF0cywKIAkJCQkwLAogCQkJCUFSUkFZX1NJWkUocGRw dS0+Zm9ybWF0cykpOwpAQCAtMTk1OSw4ICsxNzM4LDggQEAgc3RydWN0IGRybV9wbGFuZSAqZHB1 X3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCW11dGV4X2luaXQoJnBkcHUt PmxvY2spOwogCi0JRFBVX0RFQlVHKCIlcyBjcmVhdGVkIGZvciBwaXBlOiV1IGlkOiV1IHZpcnR1 YWw6JXVcbiIsIHBkcHUtPnBpcGVfbmFtZSwKLQkJCQkJcGlwZSwgcGxhbmUtPmJhc2UuaWQsIG1h c3Rlcl9wbGFuZV9pZCk7CisJRFBVX0RFQlVHKCIlcyBjcmVhdGVkIGZvciBwaXBlOiV1IGlkOiV1 XG4iLCBwZHB1LT5waXBlX25hbWUsCisJCQkJCXBpcGUsIHBsYW5lLT5iYXNlLmlkKTsKIAlyZXR1 cm4gcGxhbmU7CiAKIGNsZWFuX3NzcHA6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfcGxhbmUuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9wbGFuZS5oCmluZGV4IGY2ZmU2ZGQuLjM3OTVhMzM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcGxhbmUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfcGxhbmUuaApAQCAtNDYsOCArNDYsNiBAQCBzdHJ1Y3QgZHB1X3BsYW5l X3N0YXRlIHsKIAlzdHJ1Y3QgbXNtX2dlbV9hZGRyZXNzX3NwYWNlICphc3BhY2U7CiAJdm9pZCAq aW5wdXRfZmVuY2U7CiAJZW51bSBkcHVfc3RhZ2Ugc3RhZ2U7Ci0JdWludDMyX3QgbXVsdGlyZWN0 X2luZGV4OwotCXVpbnQzMl90IG11bHRpcmVjdF9tb2RlOwogCWJvb2wgcGVuZGluZzsKIAogCS8q IHNjYWxlciBjb25maWd1cmF0aW9uICovCkBAIC01NywxNiArNTUsNiBAQCBzdHJ1Y3QgZHB1X3Bs YW5lX3N0YXRlIHsKIAlzdHJ1Y3QgZHB1X2h3X3BpcGVfY2RwX2NmZyBjZHBfY2ZnOwogfTsKIAot LyoqCi0gKiBzdHJ1Y3QgZHB1X211bHRpcmVjdF9wbGFuZV9zdGF0ZXM6IERlZmluZXMgbXVsdGly ZWN0IHBhaXIgb2YgZHJtIHBsYW5lIHN0YXRlcwotICogQHIwOiBkcm0gcGxhbmUgY29uZmlndXJl ZCBvbiByZWN0IDAKLSAqIEByMTogZHJtIHBsYW5lIGNvbmZpZ3VyZWQgb24gcmVjdCAxCi0gKi8K LXN0cnVjdCBkcHVfbXVsdGlyZWN0X3BsYW5lX3N0YXRlcyB7Ci0JY29uc3Qgc3RydWN0IGRybV9w bGFuZV9zdGF0ZSAqcjA7Ci0JY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcjE7Ci19Owot CiAjZGVmaW5lIHRvX2RwdV9wbGFuZV9zdGF0ZSh4KSBcCiAJY29udGFpbmVyX29mKHgsIHN0cnVj dCBkcHVfcGxhbmVfc3RhdGUsIGJhc2UpCiAKQEAgLTc4LDE0ICs2Niw2IEBAIHN0cnVjdCBkcHVf bXVsdGlyZWN0X3BsYW5lX3N0YXRlcyB7CiBlbnVtIGRwdV9zc3BwIGRwdV9wbGFuZV9waXBlKHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lKTsKIAogLyoqCi0gKiBpc19kcHVfcGxhbmVfdmlydHVhbCAt IGNoZWNrIGZvciB2aXJ0dWFsIHBsYW5lCi0gKiBAcGxhbmU6IFBvaW50ZXIgdG8gRFJNIHBsYW5l IG9iamVjdAotICogcmV0dXJuczogdHJ1ZSAtIGlmIHRoZSBwbGFuZSBpcyB2aXJ0dWFsCi0gKiAg ICAgICAgICBmYWxzZSAtIGlmIHRoZSBwbGFuZSBpcyBwcmltYXJ5Ci0gKi8KLWJvb2wgaXNfZHB1 X3BsYW5lX3ZpcnR1YWwoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpOwotCi0vKioKICAqIGRwdV9w bGFuZV9nZXRfY3RsX2ZsdXNoIC0gZ2V0IGNvbnRyb2wgZmx1c2ggbWFzawogICogQHBsYW5lOiAg IFBvaW50ZXIgdG8gRFJNIHBsYW5lIG9iamVjdAogICogQGN0bDogUG9pbnRlciB0byBjb250cm9s IGhhcmR3YXJlCkBAIC0xMjQsMjcgKzEwNCwxMSBAQCB2b2lkIGRwdV9wbGFuZV9nZXRfY3RsX2Zs dXNoKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHB1X2h3X2N0bCAqY3RsLAogICog QHBpcGU6ICBkcHUgaGFyZHdhcmUgcGlwZSBpZGVudGlmaWVyCiAgKiBAcHJpbWFyeV9wbGFuZTog dHJ1ZSBpZiB0aGlzIHBpcGUgaXMgcHJpbWFyeSBwbGFuZSBmb3IgY3J0YwogICogQHBvc3NpYmxl X2NydGNzOiBiaXRtYXNrIG9mIGNydGMgdGhhdCBjYW4gYmUgYXR0YWNoZWQgdG8gdGhlIGdpdmVu IHBpcGUKLSAqIEBtYXN0ZXJfcGxhbmVfaWQ6IHByaW1hcnkgcGxhbmUgaWQgb2YgYSBtdWx0aXJl Y3QgcGlwZS4gMCB2YWx1ZSBwYXNzZWQgZm9yCi0gKiAgICAgICAgICAgICAgICAgICBhIHJlZ3Vs YXIgcGxhbmUgaW5pdGlhbGl6YXRpb24uIEEgbm9uLXplcm8gcHJpbWFyeSBwbGFuZQotICogICAg ICAgICAgICAgICAgICAgaWQgd2lsbCBiZSBwYXNzZWQgZm9yIGEgdmlydHVhbCBwaXBlIGluaXRp YWxpemF0aW9uLgogICoKICAqLwogc3RydWN0IGRybV9wbGFuZSAqZHB1X3BsYW5lX2luaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAkJdWludDMyX3QgcGlwZSwgYm9vbCBwcmltYXJ5X3BsYW5l LAotCQl1bnNpZ25lZCBsb25nIHBvc3NpYmxlX2NydGNzLCB1MzIgbWFzdGVyX3BsYW5lX2lkKTsK LQotLyoqCi0gKiBkcHVfcGxhbmVfdmFsaWRhdGVfbXVsdGlyZWN0aV92MiAtIHZhbGlkYXRlIHRo ZSBtdWx0aXJlY3QgcGxhbmVzCi0gKgkJCQkgICAgICBhZ2FpbnN0IGh3IGxpbWl0YXRpb25zCi0g KiBAcGxhbmU6IGRybSBwbGF0ZSBzdGF0ZXMgb2YgdGhlIG11bHRpcmVjdCBwYWlyCi0gKi8KLWlu dCBkcHVfcGxhbmVfdmFsaWRhdGVfbXVsdGlyZWN0X3YyKHN0cnVjdCBkcHVfbXVsdGlyZWN0X3Bs YW5lX3N0YXRlcyAqcGxhbmUpOwotCi0vKioKLSAqIGRwdV9wbGFuZV9jbGVhcl9tdWx0aXJlY3Qg LSBjbGVhciBtdWx0aXJlY3QgYml0cyBmb3IgdGhlIGdpdmVuIHBpcGUKLSAqIEBkcm1fc3RhdGU6 IFBvaW50ZXIgdG8gRFJNIHBsYW5lIHN0YXRlCi0gKi8KLXZvaWQgZHB1X3BsYW5lX2NsZWFyX211 bHRpcmVjdChjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpkcm1fc3RhdGUpOworCQl1bnNp Z25lZCBsb25nIHBvc3NpYmxlX2NydGNzKTsKIAogLyoqCiAgKiBkcHVfcGxhbmVfd2FpdF9pbnB1 dF9mZW5jZSAtIHdhaXQgZm9yIGlucHV0IGZlbmNlIG9iamVjdApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9tc21fZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaApp bmRleCAxYWZmYzdmLi4zOTU4OTk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaApAQCAtNjIsNyArNjIs NyBAQAogCiAjZGVmaW5lIE5VTV9ET01BSU5TICAgIDQgICAgLyogb25lIGZvciBLTVMsIHRoZW4g b25lIHBlciBncHUgY29yZSAoPykgKi8KICNkZWZpbmUgTUFYX0NSVENTICAgICAgOAotI2RlZmlu ZSBNQVhfUExBTkVTICAgICAyMAorI2RlZmluZSBNQVhfUExBTkVTICAgICAxMgogI2RlZmluZSBN QVhfRU5DT0RFUlMgICA4CiAjZGVmaW5lIE1BWF9CUklER0VTICAgIDgKICNkZWZpbmUgTUFYX0NP Tk5FQ1RPUlMgOAotLSAKVGhlIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEg bWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSBGb3J1bSwKYSBMaW51eCBGb3VuZGF0aW9uIENvbGxh Ym9yYXRpdmUgUHJvamVjdAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJl ZWRyZW5vCg==