Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752733AbYJQHoJ (ORCPT ); Fri, 17 Oct 2008 03:44:09 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751605AbYJQHny (ORCPT ); Fri, 17 Oct 2008 03:43:54 -0400 Received: from wf-out-1314.google.com ([209.85.200.171]:12151 "EHLO wf-out-1314.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750989AbYJQHnw (ORCPT ); Fri, 17 Oct 2008 03:43:52 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:mime-version:content-type; b=EqxhVoMkRiMwFYnQl+W2iW4UIDbPEN+dT7DGTsA4ZzO3mNq9b/e+ndzsADVz3Gx5hI YPyGnnVjglaPSmdGUn3EuRxU+FH4B7Riw+LMOWx2+hzCxrV0e0EJx4V8j2nkT8JSD311 CHJtGpMoVWuM4xI7RQ+MO1ngTNPVjiil37dDk= Message-ID: Date: Fri, 17 Oct 2008 09:43:51 +0200 From: "Lior Dotan" To: gregkh@suse.de, akpm@linux-foundation.org Subject: Staging: Fixes for me4000 pci data collection driver Cc: w.beiter@aon.at, g.gebhardt@meilhaus.de, linux-kernel@vger.kernel.org MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_74319_7351495.1224229431299" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 134191 Lines: 1756 ------=_Part_74319_7351495.1224229431299 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Following Andrew Morton's review for this patch I made a patch that fixes most of the remarks. I've converted the sleep_on_timeout to wait_event_timeout but I probably not in the right way. Also I don't know what's the problem with the calls for get_user() so I left them untouched. Signed-off-by: Lior Dotan ------=_Part_74319_7351495.1224229431299 Content-Type: application/octet-stream; name=me4000-code-fixes.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_fmeic3770 Content-Disposition: attachment; filename=me4000-code-fixes.patch ZGlmZiAtWCBiL0RvY3VtZW50YXRpb24vZG9udGRpZmYgLXVwIGEvZHJpdmVycy9zdGFnaW5nL21l NDAwMC9tZTQwMDAuYyBiL2RyaXZlcnMvc3RhZ2luZy9tZTQwMDAvbWU0MDAwLmMKLS0tIGEvZHJp dmVycy9zdGFnaW5nL21lNDAwMC9tZTQwMDAuYwkyMDA4LTEwLTE0IDA4OjE0OjAyLjA5MjI0Nzgy NyArMDIwMAorKysgYi9kcml2ZXJzL3N0YWdpbmcvbWU0MDAwL21lNDAwMC5jCTIwMDgtMTAtMTcg MDk6MTc6NTguOTYzMTM5MzA4ICswMjAwCkBAIC0yNSwyNCArMjUsMjEgQEAKICNpbmNsdWRlIDxs aW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxp bnV4L3BjaS5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4K LSNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5j bHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxp bnV4L21tLmg+CiAjaW5jbHVkZSA8bGludXgvdW5pc3RkLmg+CiAjaW5jbHVkZSA8bGludXgvbGlz dC5oPgogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KLQorI2luY2x1ZGUgPGxpbnV4L3R5cGVz Lmg+CiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4K KyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KICNpbmNs dWRlIDxhc20vdWFjY2Vzcy5oPgotI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0KLSNpbmNsdWRl IDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8YXNtL3N5c3Rl bS5oPgorI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAKIC8qIEluY2x1ZGUtRmlsZSBmb3IgdGhl IE1laWxoYXVzIE1FLTQwMDAgSS9PIGJvYXJkICovCiAjaW5jbHVkZSAibWU0MDAwLmgiCkBAIC01 NywxNCArNTQsMTQgQEAgTU9EVUxFX1NVUFBPUlRFRF9ERVZJQ0UoIk1laWxoYXVzIE1FLTQwMAog TU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogCiAvKiBCb2FyZCBzcGVjaWZpYyBkYXRhIGFyZSBrZXB0 IGluIGEgZ2xvYmFsIGxpc3QgKi8KLUxJU1RfSEVBRChtZTQwMDBfYm9hcmRfaW5mb19saXN0KTsK K3N0YXRpYyBMSVNUX0hFQUQobWU0MDAwX2JvYXJkX2luZm9fbGlzdCk7CiAKIC8qIE1ham9yIERl dmljZSBOdW1iZXJzLiAwIG1lYW5zIHRvIGdldCBpdCBhdXRvbWF0aWNhbGx5IGZyb20gdGhlIFN5 c3RlbSAqLwotc3RhdGljIGludCBtZTQwMDBfYW9fbWFqb3JfZHJpdmVyX25vID0gMDsKLXN0YXRp YyBpbnQgbWU0MDAwX2FpX21ham9yX2RyaXZlcl9ubyA9IDA7Ci1zdGF0aWMgaW50IG1lNDAwMF9k aW9fbWFqb3JfZHJpdmVyX25vID0gMDsKLXN0YXRpYyBpbnQgbWU0MDAwX2NudF9tYWpvcl9kcml2 ZXJfbm8gPSAwOwotc3RhdGljIGludCBtZTQwMDBfZXh0X2ludF9tYWpvcl9kcml2ZXJfbm8gPSAw Oworc3RhdGljIGludCBtZTQwMDBfYW9fbWFqb3JfZHJpdmVyX25vOworc3RhdGljIGludCBtZTQw MDBfYWlfbWFqb3JfZHJpdmVyX25vOworc3RhdGljIGludCBtZTQwMDBfZGlvX21ham9yX2RyaXZl cl9ubzsKK3N0YXRpYyBpbnQgbWU0MDAwX2NudF9tYWpvcl9kcml2ZXJfbm87CitzdGF0aWMgaW50 IG1lNDAwMF9leHRfaW50X21ham9yX2RyaXZlcl9ubzsKIAogLyogTGV0IHRoZSB1c2VyIHNwZWNp ZnkgYSBjdXN0b20gbWFqb3IgZHJpdmVyIG51bWJlciAqLwogbW9kdWxlX3BhcmFtKG1lNDAwMF9h b19tYWpvcl9kcml2ZXJfbm8sIGludCwgMCk7CkBAIC04OCwzNiArODUsMjIgQEAgTU9EVUxFX1BB Uk1fREVTQyhtZTQwMDBfZXh0X2ludF9tYWpvcl9kcgogCQkgIk1ham9yIGRyaXZlciBudW1iZXIg Zm9yIGV4dGVybmFsIGludGVycnVwdCAoZGVmYXVsdCAwKSIpOwogCiAvKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0gIE1vZHVsZSBzdHVmZgotICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotaW50IGluaXRf bW9kdWxlKHZvaWQpOwotdm9pZCBjbGVhbnVwX21vZHVsZSh2b2lkKTsKLQotLyotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogICBCb2FyZCBkZXRlY3Rpb24gYW5kIGluaXRpYWxpemF0aW9uCiAgIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSovCiBzdGF0aWMgaW50IG1lNDAwMF9wcm9iZShzdHJ1Y3QgcGNpX2RldiAq ZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpOwotc3RhdGljIGludCBtZTQwMDBf eGlsaW54X2Rvd25sb2FkKG1lNDAwMF9pbmZvX3QgKik7Ci1zdGF0aWMgaW50IG1lNDAwMF9yZXNl dF9ib2FyZChtZTQwMDBfaW5mb190ICopOworc3RhdGljIGludCBtZTQwMDBfeGlsaW54X2Rvd25s b2FkKHN0cnVjdCBtZTQwMDBfaW5mbyAqKTsKK3N0YXRpYyBpbnQgbWU0MDAwX3Jlc2V0X2JvYXJk KHN0cnVjdCBtZTQwMDBfaW5mbyAqKTsKIAogc3RhdGljIHZvaWQgY2xlYXJfYm9hcmRfaW5mb19s aXN0KHZvaWQpOwotc3RhdGljIGludCBnZXRfcmVnaXN0ZXJzKHN0cnVjdCBwY2lfZGV2ICpkZXYs IG1lNDAwMF9pbmZvX3QgKiBpbmZvKTsKLXN0YXRpYyBpbnQgaW5pdF9ib2FyZF9pbmZvKHN0cnVj dCBwY2lfZGV2ICpkZXYsIG1lNDAwMF9pbmZvX3QgKiBib2FyZF9pbmZvKTsKLXN0YXRpYyBpbnQg YWxsb2NfYW9fY29udGV4dHMobWU0MDAwX2luZm9fdCAqIGluZm8pOwotc3RhdGljIHZvaWQgcmVs ZWFzZV9hb19jb250ZXh0cyhtZTQwMDBfaW5mb190ICogYm9hcmRfaW5mbyk7Ci1zdGF0aWMgaW50 IGFsbG9jX2FpX2NvbnRleHQobWU0MDAwX2luZm9fdCAqIGluZm8pOwotc3RhdGljIGludCBhbGxv Y19kaW9fY29udGV4dChtZTQwMDBfaW5mb190ICogaW5mbyk7Ci1zdGF0aWMgaW50IGFsbG9jX2Nu dF9jb250ZXh0KG1lNDAwMF9pbmZvX3QgKiBpbmZvKTsKLXN0YXRpYyBpbnQgYWxsb2NfZXh0X2lu dF9jb250ZXh0KG1lNDAwMF9pbmZvX3QgKiBpbmZvKTsKLQorc3RhdGljIHZvaWQgcmVsZWFzZV9h b19jb250ZXh0cyhzdHJ1Y3QgbWU0MDAwX2luZm8gKmJvYXJkX2luZm8pOwogLyotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogICBTdHVmZiB1c2VkIGJ5IGFsbCBkZXZpY2UgcGFydHMKICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKi8KIHN0YXRpYyBpbnQgbWU0MDAwX29wZW4oc3RydWN0IGlub2RlICosIHN0cnVj dCBmaWxlICopOwogc3RhdGljIGludCBtZTQwMDBfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKiwgc3Ry dWN0IGZpbGUgKik7CiAKLXN0YXRpYyBpbnQgbWU0MDAwX2dldF91c2VyX2luZm8obWU0MDAwX3Vz ZXJfaW5mb190ICosCi0JCQkJbWU0MDAwX2luZm9fdCAqIGJvYXJkX2luZm8pOworc3RhdGljIGlu dCBtZTQwMDBfZ2V0X3VzZXJfaW5mbyhzdHJ1Y3QgbWU0MDAwX3VzZXJfaW5mbyAqLAorCQkJCXN0 cnVjdCBtZTQwMDBfaW5mbyAqYm9hcmRfaW5mbyk7CiBzdGF0aWMgaW50IG1lNDAwMF9yZWFkX3By b2NtZW0oY2hhciAqLCBjaGFyICoqLCBvZmZfdCwgaW50LCBpbnQgKiwgdm9pZCAqKTsKIAogLyot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTQwLDQwICsxMjMsNDIgQEAgc3RhdGljIGludCBtZTQw MDBfYW9faW9jdGxfY29udChzdHJ1Y3QgaQogc3RhdGljIHVuc2lnbmVkIGludCBtZTQwMDBfYW9f cG9sbF9jb250KHN0cnVjdCBmaWxlICosIHBvbGxfdGFibGUgKik7CiBzdGF0aWMgaW50IG1lNDAw MF9hb19mc3luY19jb250KHN0cnVjdCBmaWxlICosIHN0cnVjdCBkZW50cnkgKiwgaW50KTsKIAot c3RhdGljIGludCBtZTQwMDBfYW9fc3RhcnQodW5zaWduZWQgbG9uZyAqLCBtZTQwMDBfYW9fY29u dGV4dF90ICopOwotc3RhdGljIGludCBtZTQwMDBfYW9fc3RvcChtZTQwMDBfYW9fY29udGV4dF90 ICopOwotc3RhdGljIGludCBtZTQwMDBfYW9faW1tZWRpYXRlX3N0b3AobWU0MDAwX2FvX2NvbnRl eHRfdCAqKTsKLXN0YXRpYyBpbnQgbWU0MDAwX2FvX3RpbWVyX3NldF9kaXZpc29yKHUzMiAqLCBt ZTQwMDBfYW9fY29udGV4dF90ICopOwotc3RhdGljIGludCBtZTQwMDBfYW9fcHJlbG9hZChtZTQw MDBfYW9fY29udGV4dF90ICopOwotc3RhdGljIGludCBtZTQwMDBfYW9fcHJlbG9hZF91cGRhdGUo bWU0MDAwX2FvX2NvbnRleHRfdCAqKTsKLXN0YXRpYyBpbnQgbWU0MDAwX2FvX2V4X3RyaWdfc2V0 X2VkZ2UoaW50ICosIG1lNDAwMF9hb19jb250ZXh0X3QgKik7Ci1zdGF0aWMgaW50IG1lNDAwMF9h b19leF90cmlnX2VuYWJsZShtZTQwMDBfYW9fY29udGV4dF90ICopOwotc3RhdGljIGludCBtZTQw MDBfYW9fZXhfdHJpZ19kaXNhYmxlKG1lNDAwMF9hb19jb250ZXh0X3QgKik7Ci1zdGF0aWMgaW50 IG1lNDAwMF9hb19wcmVwYXJlKG1lNDAwMF9hb19jb250ZXh0X3QgKiBhb19pbmZvKTsKLXN0YXRp YyBpbnQgbWU0MDAwX2FvX3Jlc2V0KG1lNDAwMF9hb19jb250ZXh0X3QgKiBhb19pbmZvKTsKLXN0 YXRpYyBpbnQgbWU0MDAwX2FvX2VuYWJsZV9kbyhtZTQwMDBfYW9fY29udGV4dF90ICopOwotc3Rh dGljIGludCBtZTQwMDBfYW9fZGlzYWJsZV9kbyhtZTQwMDBfYW9fY29udGV4dF90ICopOwotc3Rh dGljIGludCBtZTQwMDBfYW9fZnNtX3N0YXRlKGludCAqLCBtZTQwMDBfYW9fY29udGV4dF90ICop OwotCi1zdGF0aWMgaW50IG1lNDAwMF9hb19zaW11bHRhbmVvdXNfZXhfdHJpZyhtZTQwMDBfYW9f Y29udGV4dF90ICogYW9fY29udGV4dCk7Ci1zdGF0aWMgaW50IG1lNDAwMF9hb19zaW11bHRhbmVv dXNfc3cobWU0MDAwX2FvX2NvbnRleHRfdCAqIGFvX2NvbnRleHQpOwotc3RhdGljIGludCBtZTQw MDBfYW9fc2ltdWx0YW5lb3VzX2Rpc2FibGUobWU0MDAwX2FvX2NvbnRleHRfdCAqIGFvX2NvbnRl eHQpOwotc3RhdGljIGludCBtZTQwMDBfYW9fc2ltdWx0YW5lb3VzX3VwZGF0ZShtZTQwMDBfYW9f Y2hhbm5lbF9saXN0X3QgKiBjaGFubmVscywKLQkJCQkJIG1lNDAwMF9hb19jb250ZXh0X3QgKiBh b19jb250ZXh0KTsKLQotc3RhdGljIGludCBtZTQwMDBfYW9fc3luY2hyb25vdXNfZXhfdHJpZyht ZTQwMDBfYW9fY29udGV4dF90ICogYW9fY29udGV4dCk7Ci1zdGF0aWMgaW50IG1lNDAwMF9hb19z eW5jaHJvbm91c19zdyhtZTQwMDBfYW9fY29udGV4dF90ICogYW9fY29udGV4dCk7Ci1zdGF0aWMg aW50IG1lNDAwMF9hb19zeW5jaHJvbm91c19kaXNhYmxlKG1lNDAwMF9hb19jb250ZXh0X3QgKiBh b19jb250ZXh0KTsKK3N0YXRpYyBpbnQgbWU0MDAwX2FvX3N0YXJ0KHVuc2lnbmVkIGxvbmcgKiwg c3RydWN0IG1lNDAwMF9hb19jb250ZXh0ICopOworc3RhdGljIGludCBtZTQwMDBfYW9fc3RvcChz dHJ1Y3QgbWU0MDAwX2FvX2NvbnRleHQgKik7CitzdGF0aWMgaW50IG1lNDAwMF9hb19pbW1lZGlh dGVfc3RvcChzdHJ1Y3QgbWU0MDAwX2FvX2NvbnRleHQgKik7CitzdGF0aWMgaW50IG1lNDAwMF9h b190aW1lcl9zZXRfZGl2aXNvcih1MzIgKiwgc3RydWN0IG1lNDAwMF9hb19jb250ZXh0ICopOwor c3RhdGljIGludCBtZTQwMDBfYW9fcHJlbG9hZChzdHJ1Y3QgbWU0MDAwX2FvX2NvbnRleHQgKik7 CitzdGF0aWMgaW50IG1lNDAwMF9hb19wcmVsb2FkX3VwZGF0ZShzdHJ1Y3QgbWU0MDAwX2FvX2Nv bnRleHQgKik7CitzdGF0aWMgaW50IG1lNDAwMF9hb19leF90cmlnX3NldF9lZGdlKGludCAqLCBz dHJ1Y3QgbWU0MDAwX2FvX2NvbnRleHQgKik7CitzdGF0aWMgaW50IG1lNDAwMF9hb19leF90cmln X2VuYWJsZShzdHJ1Y3QgbWU0MDAwX2FvX2NvbnRleHQgKik7CitzdGF0aWMgaW50IG1lNDAwMF9h b19leF90cmlnX2Rpc2FibGUoc3RydWN0IG1lNDAwMF9hb19jb250ZXh0ICopOworc3RhdGljIGlu dCBtZTQwMDBfYW9fcHJlcGFyZShzdHJ1Y3QgbWU0MDAwX2FvX2NvbnRleHQgKmFvX2luZm8pOwor c3RhdGljIGludCBtZTQwMDBfYW9fcmVzZXQoc3RydWN0IG1lNDAwMF9hb19jb250ZXh0ICphb19p bmZvKTsKK3N0YXRpYyBpbnQgbWU0MDAwX2FvX2VuYWJsZV9kbyhzdHJ1Y3QgbWU0MDAwX2FvX2Nv bnRleHQgKik7CitzdGF0aWMgaW50IG1lNDAwMF9hb19kaXNhYmxlX2RvKHN0cnVjdCBtZTQwMDBf YW9fY29udGV4dCAqKTsKK3N0YXRpYyBpbnQgbWU0MDAwX2FvX2ZzbV9zdGF0ZShpbnQgKiwgc3Ry dWN0IG1lNDAwMF9hb19jb250ZXh0ICopOworCitzdGF0aWMgaW50IG1lNDAwMF9hb19zaW11bHRh bmVvdXNfZXhfdHJpZyhzdHJ1Y3QgbWU0MDAwX2FvX2NvbnRleHQgKmFvX2NvbnRleHQpOworc3Rh dGljIGludCBtZTQwMDBfYW9fc2ltdWx0YW5lb3VzX3N3KHN0cnVjdCBtZTQwMDBfYW9fY29udGV4 dCAqYW9fY29udGV4dCk7CitzdGF0aWMgaW50IG1lNDAwMF9hb19zaW11bHRhbmVvdXNfZGlzYWJs ZShzdHJ1Y3QgbWU0MDAwX2FvX2NvbnRleHQgKmFvX2NvbnRleHQpOworc3RhdGljIGludCBtZTQw MDBfYW9fc2ltdWx0YW5lb3VzX3VwZGF0ZSgKKwkJCQkJc3RydWN0IG1lNDAwMF9hb19jaGFubmVs X2xpc3QgKmNoYW5uZWxzLAorCQkJCQlzdHJ1Y3QgbWU0MDAwX2FvX2NvbnRleHQgKmFvX2NvbnRl eHQpOworCitzdGF0aWMgaW50IG1lNDAwMF9hb19zeW5jaHJvbm91c19leF90cmlnKHN0cnVjdCBt ZTQwMDBfYW9fY29udGV4dCAqYW9fY29udGV4dCk7CitzdGF0aWMgaW50IG1lNDAwMF9hb19zeW5j aHJvbm91c19zdyhzdHJ1Y3QgbWU0MDAwX2FvX2NvbnRleHQgKmFvX2NvbnRleHQpOworc3RhdGlj IGludCBtZTQwMDBfYW9fc3luY2hyb25vdXNfZGlzYWJsZShzdHJ1Y3QgbWU0MDAwX2FvX2NvbnRl eHQgKmFvX2NvbnRleHQpOwogCiBzdGF0aWMgaW50IG1lNDAwMF9hb19leF90cmlnX3RpbWVvdXQo dW5zaWduZWQgbG9uZyAqYXJnLAotCQkJCSAgICAgbWU0MDAwX2FvX2NvbnRleHRfdCAqIGFvX2Nv bnRleHQpOworCQkJCSAgICAgc3RydWN0IG1lNDAwMF9hb19jb250ZXh0ICphb19jb250ZXh0KTsK IHN0YXRpYyBpbnQgbWU0MDAwX2FvX2dldF9mcmVlX2J1ZmZlcih1bnNpZ25lZCBsb25nICphcmcs Ci0JCQkJICAgICBtZTQwMDBfYW9fY29udGV4dF90ICogYW9fY29udGV4dCk7CisJCQkJICAgICBz dHJ1Y3QgbWU0MDAwX2FvX2NvbnRleHQgKmFvX2NvbnRleHQpOwogCiAvKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgIEFuYWxvZyBpbnB1dCBzdHVmZgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotc3Rh dGljIGludCBtZTQwMDBfYWlfc2luZ2xlKG1lNDAwMF9haV9zaW5nbGVfdCAqLCBtZTQwMDBfYWlf Y29udGV4dF90ICopOworc3RhdGljIGludCBtZTQwMDBfYWlfc2luZ2xlKHN0cnVjdCBtZTQwMDBf YWlfc2luZ2xlICosCisJCQkJc3RydWN0IG1lNDAwMF9haV9jb250ZXh0ICopOwogc3RhdGljIGlu dCBtZTQwMDBfYWlfaW9jdGxfc2luZyhzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGZpbGUgKiwgdW5z aWduZWQgaW50LAogCQkJCXVuc2lnbmVkIGxvbmcpOwogCkBAIC0xODYsNjggKzE3MSw2OSBAQCBz dGF0aWMgaW50IG1lNDAwMF9haV9mYXN5bmMoaW50IGZkLCBzdHJ1CiBzdGF0aWMgaW50IG1lNDAw MF9haV9pb2N0bF9leHQoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICosIHVuc2lnbmVkIGlu dCwKIAkJCSAgICAgICB1bnNpZ25lZCBsb25nKTsKIAotc3RhdGljIGludCBtZTQwMDBfYWlfcHJl cGFyZShtZTQwMDBfYWlfY29udGV4dF90ICogYWlfY29udGV4dCk7Ci1zdGF0aWMgaW50IG1lNDAw MF9haV9yZXNldChtZTQwMDBfYWlfY29udGV4dF90ICogYWlfY29udGV4dCk7Ci1zdGF0aWMgaW50 IG1lNDAwMF9haV9jb25maWcobWU0MDAwX2FpX2NvbmZpZ190ICosIG1lNDAwMF9haV9jb250ZXh0 X3QgKik7Ci1zdGF0aWMgaW50IG1lNDAwMF9haV9zdGFydChtZTQwMDBfYWlfY29udGV4dF90ICop Owotc3RhdGljIGludCBtZTQwMDBfYWlfc3RhcnRfZXgodW5zaWduZWQgbG9uZyAqLCBtZTQwMDBf YWlfY29udGV4dF90ICopOwotc3RhdGljIGludCBtZTQwMDBfYWlfc3RvcChtZTQwMDBfYWlfY29u dGV4dF90ICopOwotc3RhdGljIGludCBtZTQwMDBfYWlfaW1tZWRpYXRlX3N0b3AobWU0MDAwX2Fp X2NvbnRleHRfdCAqKTsKLXN0YXRpYyBpbnQgbWU0MDAwX2FpX2V4X3RyaWdfZW5hYmxlKG1lNDAw MF9haV9jb250ZXh0X3QgKik7Ci1zdGF0aWMgaW50IG1lNDAwMF9haV9leF90cmlnX2Rpc2FibGUo bWU0MDAwX2FpX2NvbnRleHRfdCAqKTsKLXN0YXRpYyBpbnQgbWU0MDAwX2FpX2V4X3RyaWdfc2V0 dXAobWU0MDAwX2FpX3RyaWdnZXJfdCAqLAotCQkJCSAgIG1lNDAwMF9haV9jb250ZXh0X3QgKik7 Ci1zdGF0aWMgaW50IG1lNDAwMF9haV9zY19zZXR1cChtZTQwMDBfYWlfc2NfdCAqIGFyZywKLQkJ CSAgICAgIG1lNDAwMF9haV9jb250ZXh0X3QgKiBhaV9jb250ZXh0KTsKLXN0YXRpYyBpbnQgbWU0 MDAwX2FpX29mZnNldF9lbmFibGUobWU0MDAwX2FpX2NvbnRleHRfdCAqIGFpX2NvbnRleHQpOwot c3RhdGljIGludCBtZTQwMDBfYWlfb2Zmc2V0X2Rpc2FibGUobWU0MDAwX2FpX2NvbnRleHRfdCAq IGFpX2NvbnRleHQpOwotc3RhdGljIGludCBtZTQwMDBfYWlfZnVsbHNjYWxlX2VuYWJsZShtZTQw MDBfYWlfY29udGV4dF90ICogYWlfY29udGV4dCk7Ci1zdGF0aWMgaW50IG1lNDAwMF9haV9mdWxs c2NhbGVfZGlzYWJsZShtZTQwMDBfYWlfY29udGV4dF90ICogYWlfY29udGV4dCk7Ci1zdGF0aWMg aW50IG1lNDAwMF9haV9mc21fc3RhdGUoaW50ICphcmcsIG1lNDAwMF9haV9jb250ZXh0X3QgKiBh aV9jb250ZXh0KTsKK3N0YXRpYyBpbnQgbWU0MDAwX2FpX3ByZXBhcmUoc3RydWN0IG1lNDAwMF9h aV9jb250ZXh0ICphaV9jb250ZXh0KTsKK3N0YXRpYyBpbnQgbWU0MDAwX2FpX3Jlc2V0KHN0cnVj dCBtZTQwMDBfYWlfY29udGV4dCAqYWlfY29udGV4dCk7CitzdGF0aWMgaW50IG1lNDAwMF9haV9j b25maWcoc3RydWN0IG1lNDAwMF9haV9jb25maWcgKiwKKwkJCQlzdHJ1Y3QgbWU0MDAwX2FpX2Nv bnRleHQgKik7CitzdGF0aWMgaW50IG1lNDAwMF9haV9zdGFydChzdHJ1Y3QgbWU0MDAwX2FpX2Nv bnRleHQgKik7CitzdGF0aWMgaW50IG1lNDAwMF9haV9zdGFydF9leCh1bnNpZ25lZCBsb25nICos IHN0cnVjdCBtZTQwMDBfYWlfY29udGV4dCAqKTsKK3N0YXRpYyBpbnQgbWU0MDAwX2FpX3N0b3Ao c3RydWN0IG1lNDAwMF9haV9jb250ZXh0ICopOworc3RhdGljIGludCBtZTQwMDBfYWlfaW1tZWRp YXRlX3N0b3Aoc3RydWN0IG1lNDAwMF9haV9jb250ZXh0ICopOworc3RhdGljIGludCBtZTQwMDBf YWlfZXhfdHJpZ19lbmFibGUoc3RydWN0IG1lNDAwMF9haV9jb250ZXh0ICopOworc3RhdGljIGlu dCBtZTQwMDBfYWlfZXhfdHJpZ19kaXNhYmxlKHN0cnVjdCBtZTQwMDBfYWlfY29udGV4dCAqKTsK K3N0YXRpYyBpbnQgbWU0MDAwX2FpX2V4X3RyaWdfc2V0dXAoc3RydWN0IG1lNDAwMF9haV90cmln Z2VyICosCisJCQkJICAgc3RydWN0IG1lNDAwMF9haV9jb250ZXh0ICopOworc3RhdGljIGludCBt ZTQwMDBfYWlfc2Nfc2V0dXAoc3RydWN0IG1lNDAwMF9haV9zYyAqYXJnLAorCQkJICAgICAgc3Ry dWN0IG1lNDAwMF9haV9jb250ZXh0ICphaV9jb250ZXh0KTsKK3N0YXRpYyBpbnQgbWU0MDAwX2Fp X29mZnNldF9lbmFibGUoc3RydWN0IG1lNDAwMF9haV9jb250ZXh0ICphaV9jb250ZXh0KTsKK3N0 YXRpYyBpbnQgbWU0MDAwX2FpX29mZnNldF9kaXNhYmxlKHN0cnVjdCBtZTQwMDBfYWlfY29udGV4 dCAqYWlfY29udGV4dCk7CitzdGF0aWMgaW50IG1lNDAwMF9haV9mdWxsc2NhbGVfZW5hYmxlKHN0 cnVjdCBtZTQwMDBfYWlfY29udGV4dCAqYWlfY29udGV4dCk7CitzdGF0aWMgaW50IG1lNDAwMF9h aV9mdWxsc2NhbGVfZGlzYWJsZShzdHJ1Y3QgbWU0MDAwX2FpX2NvbnRleHQgKmFpX2NvbnRleHQp Oworc3RhdGljIGludCBtZTQwMDBfYWlfZnNtX3N0YXRlKGludCAqYXJnLCBzdHJ1Y3QgbWU0MDAw X2FpX2NvbnRleHQgKmFpX2NvbnRleHQpOwogc3RhdGljIGludCBtZTQwMDBfYWlfZ2V0X2NvdW50 X2J1ZmZlcih1bnNpZ25lZCBsb25nICphcmcsCi0JCQkJICAgICAgbWU0MDAwX2FpX2NvbnRleHRf dCAqIGFpX2NvbnRleHQpOworCQkJCSAgICAgIHN0cnVjdCBtZTQwMDBfYWlfY29udGV4dCAqYWlf Y29udGV4dCk7CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgRUVQUk9NIHN0dWZmCiAgIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSovCi1zdGF0aWMgaW50IG1lNDAwMF9lZXByb21fcmVhZChtZTQwMDBf ZWVwcm9tX3QgKiBhcmcsCi0JCQkgICAgICBtZTQwMDBfYWlfY29udGV4dF90ICogYWlfY29udGV4 dCk7Ci1zdGF0aWMgaW50IG1lNDAwMF9lZXByb21fd3JpdGUobWU0MDAwX2VlcHJvbV90ICogYXJn LAotCQkJICAgICAgIG1lNDAwMF9haV9jb250ZXh0X3QgKiBhaV9jb250ZXh0KTsKLXN0YXRpYyB1 bnNpZ25lZCBzaG9ydCBlZXByb21fcmVhZF9jbWQobWU0MDAwX2FpX2NvbnRleHRfdCAqIGFpX2Nv bnRleHQsCi0JCQkJICAgICAgdW5zaWduZWQgbG9uZyBjbWQsIGludCBsZW5ndGgpOwotc3RhdGlj IGludCBlZXByb21fd3JpdGVfY21kKG1lNDAwMF9haV9jb250ZXh0X3QgKiBhaV9jb250ZXh0LCB1 bnNpZ25lZCBsb25nIGNtZCwKLQkJCSAgICBpbnQgbGVuZ3RoKTsKK3N0YXRpYyBpbnQgbWU0MDAw X2VlcHJvbV9yZWFkKHN0cnVjdCBtZTQwMDBfZWVwcm9tICphcmcsCisJCQkgICAgICBzdHJ1Y3Qg bWU0MDAwX2FpX2NvbnRleHQgKmFpX2NvbnRleHQpOworc3RhdGljIGludCBtZTQwMDBfZWVwcm9t X3dyaXRlKHN0cnVjdCBtZTQwMDBfZWVwcm9tICphcmcsCisJCQkgICAgICAgc3RydWN0IG1lNDAw MF9haV9jb250ZXh0ICphaV9jb250ZXh0KTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBE aWdpdGFsIEkvTyBzdHVmZgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogc3RhdGljIGludCBtZTQw MDBfZGlvX2lvY3RsKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqLCB1bnNpZ25lZCBpbnQs CiAJCQkgICAgdW5zaWduZWQgbG9uZyk7Ci1zdGF0aWMgaW50IG1lNDAwMF9kaW9fY29uZmlnKG1l NDAwMF9kaW9fY29uZmlnX3QgKiwgbWU0MDAwX2Rpb19jb250ZXh0X3QgKik7Ci1zdGF0aWMgaW50 IG1lNDAwMF9kaW9fZ2V0X2J5dGUobWU0MDAwX2Rpb19ieXRlX3QgKiwgbWU0MDAwX2Rpb19jb250 ZXh0X3QgKik7Ci1zdGF0aWMgaW50IG1lNDAwMF9kaW9fc2V0X2J5dGUobWU0MDAwX2Rpb19ieXRl X3QgKiwgbWU0MDAwX2Rpb19jb250ZXh0X3QgKik7Ci1zdGF0aWMgaW50IG1lNDAwMF9kaW9fcmVz ZXQobWU0MDAwX2Rpb19jb250ZXh0X3QgKik7CitzdGF0aWMgaW50IG1lNDAwMF9kaW9fY29uZmln KHN0cnVjdCBtZTQwMDBfZGlvX2NvbmZpZyAqLAorCQkJCXN0cnVjdCBtZTQwMDBfZGlvX2NvbnRl eHQgKik7CitzdGF0aWMgaW50IG1lNDAwMF9kaW9fZ2V0X2J5dGUoc3RydWN0IG1lNDAwMF9kaW9f Ynl0ZSAqLAorCQkJCXN0cnVjdCBtZTQwMDBfZGlvX2NvbnRleHQgKik7CitzdGF0aWMgaW50IG1l NDAwMF9kaW9fc2V0X2J5dGUoc3RydWN0IG1lNDAwMF9kaW9fYnl0ZSAqLAorCQkJCXN0cnVjdCBt ZTQwMDBfZGlvX2NvbnRleHQgKik7CitzdGF0aWMgaW50IG1lNDAwMF9kaW9fcmVzZXQoc3RydWN0 IG1lNDAwMF9kaW9fY29udGV4dCAqKTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBDb3Vu dGVyIHN0dWZmCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiBzdGF0aWMgaW50IG1lNDAwMF9jbnRf aW9jdGwoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICosIHVuc2lnbmVkIGludCwKIAkJCSAg ICB1bnNpZ25lZCBsb25nKTsKLXN0YXRpYyBpbnQgbWU0MDAwX2NudF9jb25maWcobWU0MDAwX2Nu dF9jb25maWdfdCAqLCBtZTQwMDBfY250X2NvbnRleHRfdCAqKTsKLXN0YXRpYyBpbnQgbWU0MDAw X2NudF9yZWFkKG1lNDAwMF9jbnRfdCAqLCBtZTQwMDBfY250X2NvbnRleHRfdCAqKTsKLXN0YXRp YyBpbnQgbWU0MDAwX2NudF93cml0ZShtZTQwMDBfY250X3QgKiwgbWU0MDAwX2NudF9jb250ZXh0 X3QgKik7Ci1zdGF0aWMgaW50IG1lNDAwMF9jbnRfcmVzZXQobWU0MDAwX2NudF9jb250ZXh0X3Qg Kik7CitzdGF0aWMgaW50IG1lNDAwMF9jbnRfY29uZmlnKHN0cnVjdCBtZTQwMDBfY250X2NvbmZp ZyAqLAorCQkJCXN0cnVjdCBtZTQwMDBfY250X2NvbnRleHQgKik7CitzdGF0aWMgaW50IG1lNDAw MF9jbnRfcmVhZChzdHJ1Y3QgbWU0MDAwX2NudCAqLCBzdHJ1Y3QgbWU0MDAwX2NudF9jb250ZXh0 ICopOworc3RhdGljIGludCBtZTQwMDBfY250X3dyaXRlKHN0cnVjdCBtZTQwMDBfY250ICosIHN0 cnVjdCBtZTQwMDBfY250X2NvbnRleHQgKik7CitzdGF0aWMgaW50IG1lNDAwMF9jbnRfcmVzZXQo c3RydWN0IG1lNDAwMF9jbnRfY29udGV4dCAqKTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICBFeHRlcm5hbCBpbnRlcnJ1cHQgcm91dGluZXMKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIHN0 YXRpYyBpbnQgbWU0MDAwX2V4dF9pbnRfaW9jdGwoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxl ICosIHVuc2lnbmVkIGludCwKIAkJCQl1bnNpZ25lZCBsb25nKTsKLXN0YXRpYyBpbnQgbWU0MDAw X2V4dF9pbnRfZW5hYmxlKG1lNDAwMF9leHRfaW50X2NvbnRleHRfdCAqKTsKLXN0YXRpYyBpbnQg bWU0MDAwX2V4dF9pbnRfZGlzYWJsZShtZTQwMDBfZXh0X2ludF9jb250ZXh0X3QgKik7CitzdGF0 aWMgaW50IG1lNDAwMF9leHRfaW50X2VuYWJsZShzdHJ1Y3QgbWU0MDAwX2V4dF9pbnRfY29udGV4 dCAqKTsKK3N0YXRpYyBpbnQgbWU0MDAwX2V4dF9pbnRfZGlzYWJsZShzdHJ1Y3QgbWU0MDAwX2V4 dF9pbnRfY29udGV4dCAqKTsKIHN0YXRpYyBpbnQgbWU0MDAwX2V4dF9pbnRfY291bnQodW5zaWdu ZWQgbG9uZyAqYXJnLAotCQkJCW1lNDAwMF9leHRfaW50X2NvbnRleHRfdCAqIGV4dF9pbnRfY29u dGV4dCk7CisJCQkJc3RydWN0IG1lNDAwMF9leHRfaW50X2NvbnRleHQgKmV4dF9pbnRfY29udGV4 dCk7CiBzdGF0aWMgaW50IG1lNDAwMF9leHRfaW50X2Zhc3luYyhpbnQgZmQsIHN0cnVjdCBmaWxl ICpmaWxlX3B0ciwgaW50IG1vZGUpOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNjAs MjcgKzI0NiwxOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgbWU0MDAwX2V4dF9pbnRfaXNyKGluCiAv Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIElubGluZSBmdW5jdGlvbnMKICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKi8KLXN0YXRpYyBpbnQgaW5saW5lIG1lNDAwMF9idWZfY291bnQobWU0MDAwX2NpcmNf YnVmX3QsIGludCk7Ci1zdGF0aWMgaW50IGlubGluZSBtZTQwMDBfYnVmX3NwYWNlKG1lNDAwMF9j aXJjX2J1Zl90LCBpbnQpOwotc3RhdGljIGludCBpbmxpbmUgbWU0MDAwX3NwYWNlX3RvX2VuZCht ZTQwMDBfY2lyY19idWZfdCwgaW50KTsKLXN0YXRpYyBpbnQgaW5saW5lIG1lNDAwMF92YWx1ZXNf dG9fZW5kKG1lNDAwMF9jaXJjX2J1Zl90LCBpbnQpOwotCi1zdGF0aWMgdm9pZCBpbmxpbmUgbWU0 MDAwX291dGIodW5zaWduZWQgY2hhciB2YWx1ZSwgdW5zaWduZWQgbG9uZyBwb3J0KTsKLXN0YXRp YyB2b2lkIGlubGluZSBtZTQwMDBfb3V0bCh1bnNpZ25lZCBsb25nIHZhbHVlLCB1bnNpZ25lZCBs b25nIHBvcnQpOwotc3RhdGljIHVuc2lnbmVkIGxvbmcgaW5saW5lIG1lNDAwMF9pbmwodW5zaWdu ZWQgbG9uZyBwb3J0KTsKLXN0YXRpYyB1bnNpZ25lZCBjaGFyIGlubGluZSBtZTQwMDBfaW5iKHVu c2lnbmVkIGxvbmcgcG9ydCk7CiAKLXN0YXRpYyBpbnQgbWU0MDAwX2J1Zl9jb3VudChtZTQwMDBf Y2lyY19idWZfdCBidWYsIGludCBzaXplKQorc3RhdGljIGludCBpbmxpbmUgbWU0MDAwX2J1Zl9j b3VudChzdHJ1Y3QgbWU0MDAwX2NpcmNfYnVmIGJ1ZiwgaW50IHNpemUpCiB7CiAJcmV0dXJuICgo YnVmLmhlYWQgLSBidWYudGFpbCkgJiAoc2l6ZSAtIDEpKTsKIH0KIAotc3RhdGljIGludCBtZTQw MDBfYnVmX3NwYWNlKG1lNDAwMF9jaXJjX2J1Zl90IGJ1ZiwgaW50IHNpemUpCitzdGF0aWMgaW50 IGlubGluZSBtZTQwMDBfYnVmX3NwYWNlKHN0cnVjdCBtZTQwMDBfY2lyY19idWYgYnVmLCBpbnQg c2l6ZSkKIHsKIAlyZXR1cm4gKChidWYudGFpbCAtIChidWYuaGVhZCArIDEpKSAmIChzaXplIC0g MSkpOwogfQogCi1zdGF0aWMgaW50IG1lNDAwMF92YWx1ZXNfdG9fZW5kKG1lNDAwMF9jaXJjX2J1 Zl90IGJ1ZiwgaW50IHNpemUpCitzdGF0aWMgaW50IGlubGluZSBtZTQwMDBfdmFsdWVzX3RvX2Vu ZChzdHJ1Y3QgbWU0MDAwX2NpcmNfYnVmIGJ1ZiwgaW50IHNpemUpCiB7CiAJaW50IGVuZDsKIAlp bnQgbjsKQEAgLTI4OSw3ICsyNjYsNyBAQCBzdGF0aWMgaW50IG1lNDAwMF92YWx1ZXNfdG9fZW5k KG1lNDAwMF9jCiAJcmV0dXJuIChuIDwgZW5kKSA/IG4gOiBlbmQ7CiB9CiAKLXN0YXRpYyBpbnQg bWU0MDAwX3NwYWNlX3RvX2VuZChtZTQwMDBfY2lyY19idWZfdCBidWYsIGludCBzaXplKQorc3Rh dGljIGludCBpbmxpbmUgbWU0MDAwX3NwYWNlX3RvX2VuZChzdHJ1Y3QgbWU0MDAwX2NpcmNfYnVm IGJ1ZiwgaW50IHNpemUpCiB7CiAJaW50IGVuZDsKIAlpbnQgbjsKQEAgLTI5OSwxOSArMjc2LDE5 IEBAIHN0YXRpYyBpbnQgbWU0MDAwX3NwYWNlX3RvX2VuZChtZTQwMDBfY2kKIAlyZXR1cm4gKG4g PD0gZW5kKSA/IG4gOiAoZW5kICsgMSk7CiB9CiAKLXN0YXRpYyB2b2lkIG1lNDAwMF9vdXRiKHVu c2lnbmVkIGNoYXIgdmFsdWUsIHVuc2lnbmVkIGxvbmcgcG9ydCkKK3N0YXRpYyB2b2lkIGlubGlu ZSBtZTQwMDBfb3V0Yih1bnNpZ25lZCBjaGFyIHZhbHVlLCB1bnNpZ25lZCBsb25nIHBvcnQpCiB7 CiAJUE9SVF9QREVCVUcoIi0tPiAweCUwMlggcG9ydCAweCUwNGxYXG4iLCB2YWx1ZSwgcG9ydCk7 CiAJb3V0Yih2YWx1ZSwgcG9ydCk7CiB9CiAKLXN0YXRpYyB2b2lkIG1lNDAwMF9vdXRsKHVuc2ln bmVkIGxvbmcgdmFsdWUsIHVuc2lnbmVkIGxvbmcgcG9ydCkKK3N0YXRpYyB2b2lkIGlubGluZSBt ZTQwMDBfb3V0bCh1bnNpZ25lZCBsb25nIHZhbHVlLCB1bnNpZ25lZCBsb25nIHBvcnQpCiB7CiAJ UE9SVF9QREVCVUcoIi0tPiAweCUwOGxYIHBvcnQgMHglMDRsWFxuIiwgdmFsdWUsIHBvcnQpOwog CW91dGwodmFsdWUsIHBvcnQpOwogfQogCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBtZTQwMDBfaW5s KHVuc2lnbmVkIGxvbmcgcG9ydCkKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGlubGluZSBtZTQwMDBf aW5sKHVuc2lnbmVkIGxvbmcgcG9ydCkKIHsKIAl1bnNpZ25lZCBsb25nIHZhbHVlOwogCXZhbHVl ID0gaW5sKHBvcnQpOwpAQCAtMzE5LDcgKzI5Niw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIG1l NDAwMF9pbmwodW5zaWduZWQKIAlyZXR1cm4gdmFsdWU7CiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBj aGFyIG1lNDAwMF9pbmIodW5zaWduZWQgbG9uZyBwb3J0KQorc3RhdGljIHVuc2lnbmVkIGNoYXIg aW5saW5lIG1lNDAwMF9pbmIodW5zaWduZWQgbG9uZyBwb3J0KQogewogCXVuc2lnbmVkIGNoYXIg dmFsdWU7CiAJdmFsdWUgPSBpbmIocG9ydCk7CkBAIC0zMjcsMTAyICszMDQsMTAyIEBAIHN0YXRp YyB1bnNpZ25lZCBjaGFyIG1lNDAwMF9pbmIodW5zaWduZWQKIAlyZXR1cm4gdmFsdWU7CiB9CiAK LXN0cnVjdCBwY2lfZHJpdmVyIG1lNDAwMF9kcml2ZXIgPSB7CitzdGF0aWMgc3RydWN0IHBjaV9k cml2ZXIgbWU0MDAwX2RyaXZlciA9IHsKIAkubmFtZSA9IE1FNDAwMF9OQU1FLAogCS5pZF90YWJs ZSA9IG1lNDAwMF9wY2lfdGFibGUsCiAJLnByb2JlID0gbWU0MDAwX3Byb2JlCiB9OwogCiBzdGF0 aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBtZTQwMDBfYW9fZm9wc19zaW5nID0gewotICAgICAg b3duZXI6VEhJU19NT0RVTEUsCi0gICAgICB3cml0ZTptZTQwMDBfYW9fd3JpdGVfc2luZywKLSAg ICAgIGlvY3RsOm1lNDAwMF9hb19pb2N0bF9zaW5nLAotICAgICAgb3BlbjptZTQwMDBfb3BlbiwK LSAgICAgIHJlbGVhc2U6bWU0MDAwX3JlbGVhc2UsCisgICAgICAub3duZXIgPSBUSElTX01PRFVM RSwKKyAgICAgIC53cml0ZSA9IG1lNDAwMF9hb193cml0ZV9zaW5nLAorICAgICAgLmlvY3RsID0g bWU0MDAwX2FvX2lvY3RsX3NpbmcsCisgICAgICAub3BlbiA9IG1lNDAwMF9vcGVuLAorICAgICAg LnJlbGVhc2UgPSBtZTQwMDBfcmVsZWFzZSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVy YXRpb25zIG1lNDAwMF9hb19mb3BzX3dyYXAgPSB7Ci0gICAgICBvd25lcjpUSElTX01PRFVMRSwK LSAgICAgIHdyaXRlOm1lNDAwMF9hb193cml0ZV93cmFwLAotICAgICAgaW9jdGw6bWU0MDAwX2Fv X2lvY3RsX3dyYXAsCi0gICAgICBvcGVuOm1lNDAwMF9vcGVuLAotICAgICAgcmVsZWFzZTptZTQw MDBfcmVsZWFzZSwKKyAgICAgIC5vd25lciA9IFRISVNfTU9EVUxFLAorICAgICAgLndyaXRlID0g bWU0MDAwX2FvX3dyaXRlX3dyYXAsCisgICAgICAuaW9jdGwgPSBtZTQwMDBfYW9faW9jdGxfd3Jh cCwKKyAgICAgIC5vcGVuID0gbWU0MDAwX29wZW4sCisgICAgICAucmVsZWFzZSA9IG1lNDAwMF9y ZWxlYXNlLAogfTsKIAogc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbWU0MDAwX2FvX2Zv cHNfY29udCA9IHsKLSAgICAgIG93bmVyOlRISVNfTU9EVUxFLAotICAgICAgd3JpdGU6bWU0MDAw X2FvX3dyaXRlX2NvbnQsCi0gICAgICBwb2xsOm1lNDAwMF9hb19wb2xsX2NvbnQsCi0gICAgICBp b2N0bDptZTQwMDBfYW9faW9jdGxfY29udCwKLSAgICAgIG9wZW46bWU0MDAwX29wZW4sCi0gICAg ICByZWxlYXNlOm1lNDAwMF9yZWxlYXNlLAotICAgICAgZnN5bmM6bWU0MDAwX2FvX2ZzeW5jX2Nv bnQsCisgICAgICAub3duZXIgPSBUSElTX01PRFVMRSwKKyAgICAgIC53cml0ZSA9IG1lNDAwMF9h b193cml0ZV9jb250LAorICAgICAgLnBvbGwgPSBtZTQwMDBfYW9fcG9sbF9jb250LAorICAgICAg LmlvY3RsID0gbWU0MDAwX2FvX2lvY3RsX2NvbnQsCisgICAgICAub3BlbiA9IG1lNDAwMF9vcGVu LAorICAgICAgLnJlbGVhc2UgPSBtZTQwMDBfcmVsZWFzZSwKKyAgICAgIC5mc3luYyA9IG1lNDAw MF9hb19mc3luY19jb250LAogfTsKIAogc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbWU0 MDAwX2FpX2ZvcHNfc2luZyA9IHsKLSAgICAgIG93bmVyOlRISVNfTU9EVUxFLAotICAgICAgaW9j dGw6bWU0MDAwX2FpX2lvY3RsX3NpbmcsCi0gICAgICBvcGVuOm1lNDAwMF9vcGVuLAotICAgICAg cmVsZWFzZTptZTQwMDBfcmVsZWFzZSwKKyAgICAgIC5vd25lciA9IFRISVNfTU9EVUxFLAorICAg ICAgLmlvY3RsID0gbWU0MDAwX2FpX2lvY3RsX3NpbmcsCisgICAgICAub3BlbiA9IG1lNDAwMF9v cGVuLAorICAgICAgLnJlbGVhc2UgPSBtZTQwMDBfcmVsZWFzZSwKIH07CiAKIHN0YXRpYyBzdHJ1 Y3QgZmlsZV9vcGVyYXRpb25zIG1lNDAwMF9haV9mb3BzX2NvbnRfc3cgPSB7Ci0gICAgICBvd25l cjpUSElTX01PRFVMRSwKLSAgICAgIHJlYWQ6bWU0MDAwX2FpX3JlYWQsCi0gICAgICBwb2xsOm1l NDAwMF9haV9wb2xsLAotICAgICAgaW9jdGw6bWU0MDAwX2FpX2lvY3RsX3N3LAotICAgICAgb3Bl bjptZTQwMDBfb3BlbiwKLSAgICAgIHJlbGVhc2U6bWU0MDAwX3JlbGVhc2UsCi0gICAgICBmYXN5 bmM6bWU0MDAwX2FpX2Zhc3luYywKKyAgICAgIC5vd25lciA9IFRISVNfTU9EVUxFLAorICAgICAg LnJlYWQgPSBtZTQwMDBfYWlfcmVhZCwKKyAgICAgIC5wb2xsID0gbWU0MDAwX2FpX3BvbGwsCisg ICAgICAuaW9jdGwgPSBtZTQwMDBfYWlfaW9jdGxfc3csCisgICAgICAub3BlbiA9IG1lNDAwMF9v cGVuLAorICAgICAgLnJlbGVhc2UgPSBtZTQwMDBfcmVsZWFzZSwKKyAgICAgIC5mYXN5bmMgPSBt ZTQwMDBfYWlfZmFzeW5jLAogfTsKIAogc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbWU0 MDAwX2FpX2ZvcHNfY29udF9ldCA9IHsKLSAgICAgIG93bmVyOlRISVNfTU9EVUxFLAotICAgICAg cmVhZDptZTQwMDBfYWlfcmVhZCwKLSAgICAgIHBvbGw6bWU0MDAwX2FpX3BvbGwsCi0gICAgICBp b2N0bDptZTQwMDBfYWlfaW9jdGxfZXh0LAotICAgICAgb3BlbjptZTQwMDBfb3BlbiwKLSAgICAg IHJlbGVhc2U6bWU0MDAwX3JlbGVhc2UsCisgICAgICAub3duZXIgPSBUSElTX01PRFVMRSwKKyAg ICAgIC5yZWFkID0gbWU0MDAwX2FpX3JlYWQsCisgICAgICAucG9sbCA9IG1lNDAwMF9haV9wb2xs LAorICAgICAgLmlvY3RsID0gbWU0MDAwX2FpX2lvY3RsX2V4dCwKKyAgICAgIC5vcGVuID0gbWU0 MDAwX29wZW4sCisgICAgICAucmVsZWFzZSA9IG1lNDAwMF9yZWxlYXNlLAogfTsKIAogc3RhdGlj IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbWU0MDAwX2FpX2ZvcHNfY29udF9ldF92YWx1ZSA9IHsK LSAgICAgIG93bmVyOlRISVNfTU9EVUxFLAotICAgICAgcmVhZDptZTQwMDBfYWlfcmVhZCwKLSAg ICAgIHBvbGw6bWU0MDAwX2FpX3BvbGwsCi0gICAgICBpb2N0bDptZTQwMDBfYWlfaW9jdGxfZXh0 LAotICAgICAgb3BlbjptZTQwMDBfb3BlbiwKLSAgICAgIHJlbGVhc2U6bWU0MDAwX3JlbGVhc2Us CisgICAgICAub3duZXIgPSBUSElTX01PRFVMRSwKKyAgICAgIC5yZWFkID0gbWU0MDAwX2FpX3Jl YWQsCisgICAgICAucG9sbCA9IG1lNDAwMF9haV9wb2xsLAorICAgICAgLmlvY3RsID0gbWU0MDAw X2FpX2lvY3RsX2V4dCwKKyAgICAgIC5vcGVuID0gbWU0MDAwX29wZW4sCisgICAgICAucmVsZWFz ZSA9IG1lNDAwMF9yZWxlYXNlLAogfTsKIAogc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMg bWU0MDAwX2FpX2ZvcHNfY29udF9ldF9jaGFubGlzdCA9IHsKLSAgICAgIG93bmVyOlRISVNfTU9E VUxFLAotICAgICAgcmVhZDptZTQwMDBfYWlfcmVhZCwKLSAgICAgIHBvbGw6bWU0MDAwX2FpX3Bv bGwsCi0gICAgICBpb2N0bDptZTQwMDBfYWlfaW9jdGxfZXh0LAotICAgICAgb3BlbjptZTQwMDBf b3BlbiwKLSAgICAgIHJlbGVhc2U6bWU0MDAwX3JlbGVhc2UsCisgICAgICAub3duZXIgPSBUSElT X01PRFVMRSwKKyAgICAgIC5yZWFkID0gbWU0MDAwX2FpX3JlYWQsCisgICAgICAucG9sbCA9IG1l NDAwMF9haV9wb2xsLAorICAgICAgLmlvY3RsID0gbWU0MDAwX2FpX2lvY3RsX2V4dCwKKyAgICAg IC5vcGVuID0gbWU0MDAwX29wZW4sCisgICAgICAucmVsZWFzZSA9IG1lNDAwMF9yZWxlYXNlLAog fTsKIAogc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbWU0MDAwX2Rpb19mb3BzID0gewot ICAgICAgb3duZXI6VEhJU19NT0RVTEUsCi0gICAgICBpb2N0bDptZTQwMDBfZGlvX2lvY3RsLAot ICAgICAgb3BlbjptZTQwMDBfb3BlbiwKLSAgICAgIHJlbGVhc2U6bWU0MDAwX3JlbGVhc2UsCisg ICAgICAub3duZXIgPSBUSElTX01PRFVMRSwKKyAgICAgIC5pb2N0bCA9IG1lNDAwMF9kaW9faW9j dGwsCisgICAgICAub3BlbiA9IG1lNDAwMF9vcGVuLAorICAgICAgLnJlbGVhc2UgPSBtZTQwMDBf cmVsZWFzZSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG1lNDAwMF9jbnRf Zm9wcyA9IHsKLSAgICAgIG93bmVyOlRISVNfTU9EVUxFLAotICAgICAgaW9jdGw6bWU0MDAwX2Nu dF9pb2N0bCwKLSAgICAgIG9wZW46bWU0MDAwX29wZW4sCi0gICAgICByZWxlYXNlOm1lNDAwMF9y ZWxlYXNlLAorICAgICAgLm93bmVyID0gVEhJU19NT0RVTEUsCisgICAgICAuaW9jdGwgPSBtZTQw MDBfY250X2lvY3RsLAorICAgICAgLm9wZW4gPSBtZTQwMDBfb3BlbiwKKyAgICAgIC5yZWxlYXNl ID0gbWU0MDAwX3JlbGVhc2UsCiB9OwogCiBzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBt ZTQwMDBfZXh0X2ludF9mb3BzID0gewotICAgICAgb3duZXI6VEhJU19NT0RVTEUsCi0gICAgICBp b2N0bDptZTQwMDBfZXh0X2ludF9pb2N0bCwKLSAgICAgIG9wZW46bWU0MDAwX29wZW4sCi0gICAg ICByZWxlYXNlOm1lNDAwMF9yZWxlYXNlLAotICAgICAgZmFzeW5jOm1lNDAwMF9leHRfaW50X2Zh c3luYywKKyAgICAgIC5vd25lciA9IFRISVNfTU9EVUxFLAorICAgICAgLmlvY3RsID0gbWU0MDAw X2V4dF9pbnRfaW9jdGwsCisgICAgICAub3BlbiA9IG1lNDAwMF9vcGVuLAorICAgICAgLnJlbGVh c2UgPSBtZTQwMDBfcmVsZWFzZSwKKyAgICAgIC5mYXN5bmMgPSBtZTQwMDBfZXh0X2ludF9mYXN5 bmMsCiB9OwogCiBzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqbWU0MDAwX2FvX2ZvcHNf YXJyYXlbXSA9IHsKQEAgLTQzOSw5ICs0MTYsOSBAQCBzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0 aW9ucyAqbWU0MDAwX2FpCiAJJm1lNDAwMF9haV9mb3BzX2NvbnRfZXRfY2hhbmxpc3QsCS8vIHdv cmsgdGhyb3VnaCBvbmUgY2hhbm5lbCBsaXN0IGJ5IGV4dGVybmFsIHRyaWdnZXIKIH07CiAKLWlu dCBfX2luaXQgbWU0MDAwX2luaXRfbW9kdWxlKHZvaWQpCitzdGF0aWMgaW50IF9faW5pdCBtZTQw MDBfaW5pdF9tb2R1bGUodm9pZCkKIHsKLQlpbnQgcmVzdWx0ID0gMDsKKwlpbnQgcmVzdWx0Owog CiAJQ0FMTF9QREVCVUcoImluaXRfbW9kdWxlKCkgaXMgZXhlY3V0ZWRcbiIpOwogCkBAIC01MzMs MjYgKzUxMCwyNiBAQCBpbnQgX19pbml0IG1lNDAwMF9pbml0X21vZHVsZSh2b2lkKQogCiAJcmV0 dXJuIDA7CiAKLSAgICAgIElOSVRfRVJST1JfNzoKK0lOSVRfRVJST1JfNzoKIAl1bnJlZ2lzdGVy X2NocmRldihtZTQwMDBfZXh0X2ludF9tYWpvcl9kcml2ZXJfbm8sIE1FNDAwMF9FWFRfSU5UX05B TUUpOwogCi0gICAgICBJTklUX0VSUk9SXzY6CitJTklUX0VSUk9SXzY6CiAJdW5yZWdpc3Rlcl9j aHJkZXYobWU0MDAwX2NudF9tYWpvcl9kcml2ZXJfbm8sIE1FNDAwMF9DTlRfTkFNRSk7CiAKLSAg ICAgIElOSVRfRVJST1JfNToKK0lOSVRfRVJST1JfNToKIAl1bnJlZ2lzdGVyX2NocmRldihtZTQw MDBfZGlvX21ham9yX2RyaXZlcl9ubywgTUU0MDAwX0RJT19OQU1FKTsKIAotICAgICAgSU5JVF9F UlJPUl80OgorSU5JVF9FUlJPUl80OgogCXVucmVnaXN0ZXJfY2hyZGV2KG1lNDAwMF9haV9tYWpv cl9kcml2ZXJfbm8sIE1FNDAwMF9BSV9OQU1FKTsKIAotICAgICAgSU5JVF9FUlJPUl8zOgorSU5J VF9FUlJPUl8zOgogCXVucmVnaXN0ZXJfY2hyZGV2KG1lNDAwMF9hb19tYWpvcl9kcml2ZXJfbm8s IE1FNDAwMF9BT19OQU1FKTsKIAotICAgICAgSU5JVF9FUlJPUl8yOgorSU5JVF9FUlJPUl8yOgog CXBjaV91bnJlZ2lzdGVyX2RyaXZlcigmbWU0MDAwX2RyaXZlcik7CiAJY2xlYXJfYm9hcmRfaW5m b19saXN0KCk7CiAKLSAgICAgIElOSVRfRVJST1JfMToKK0lOSVRfRVJST1JfMToKIAlyZXR1cm4g cmVzdWx0OwogfQogCkBAIC01NjIsMTggKzUzOSwxOCBAQCBzdGF0aWMgdm9pZCBjbGVhcl9ib2Fy ZF9pbmZvX2xpc3Qodm9pZCkKIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkICpib2FyZF9wOwogCXN0cnVj dCBsaXN0X2hlYWQgKmRhY19wOwotCW1lNDAwMF9pbmZvX3QgKmJvYXJkX2luZm87Ci0JbWU0MDAw X2FvX2NvbnRleHRfdCAqYW9fY29udGV4dDsKKwlzdHJ1Y3QgbWU0MDAwX2luZm8gKmJvYXJkX2lu Zm87CisJc3RydWN0IG1lNDAwMF9hb19jb250ZXh0ICphb19jb250ZXh0OwogCiAJLyogQ2xlYXIg Y29udGV4dCBsaXN0cyAqLwogCWZvciAoYm9hcmRfcCA9IG1lNDAwMF9ib2FyZF9pbmZvX2xpc3Qu bmV4dDsKIAkgICAgIGJvYXJkX3AgIT0gJm1lNDAwMF9ib2FyZF9pbmZvX2xpc3Q7IGJvYXJkX3Ag PSBib2FyZF9wLT5uZXh0KSB7Ci0JCWJvYXJkX2luZm8gPSBsaXN0X2VudHJ5KGJvYXJkX3AsIG1l NDAwMF9pbmZvX3QsIGxpc3QpOworCQlib2FyZF9pbmZvID0gbGlzdF9lbnRyeShib2FyZF9wLCBz dHJ1Y3QgbWU0MDAwX2luZm8sIGxpc3QpOwogCQkvKiBDbGVhciBhbmFsb2cgb3V0cHV0IGNvbnRl eHQgbGlzdCAqLwogCQl3aGlsZSAoIWxpc3RfZW1wdHkoJmJvYXJkX2luZm8tPmFvX2NvbnRleHRf bGlzdCkpIHsKIAkJCWRhY19wID0gYm9hcmRfaW5mby0+YW9fY29udGV4dF9saXN0Lm5leHQ7CiAJ CQlhb19jb250ZXh0ID0KLQkJCSAgICBsaXN0X2VudHJ5KGRhY19wLCBtZTQwMDBfYW9fY29udGV4 dF90LCBsaXN0KTsKKwkJCSAgICBsaXN0X2VudHJ5KGRhY19wLCBzdHJ1Y3QgbWU0MDAwX2FvX2Nv bnRleHQsIGxpc3QpOwogCQkJbWU0MDAwX2FvX3Jlc2V0KGFvX2NvbnRleHQpOwogCQkJZnJlZV9p cnEoYW9fY29udGV4dC0+aXJxLCBhb19jb250ZXh0KTsKIAkJCWlmIChhb19jb250ZXh0LT5jaXJj X2J1Zi5idWYpCkBAIC02MDAsMTQgKzU3NywxNCBAQCBzdGF0aWMgdm9pZCBjbGVhcl9ib2FyZF9p bmZvX2xpc3Qodm9pZCkKIAkvKiBDbGVhciB0aGUgYm9hcmQgaW5mbyBsaXN0ICovCiAJd2hpbGUg KCFsaXN0X2VtcHR5KCZtZTQwMDBfYm9hcmRfaW5mb19saXN0KSkgewogCQlib2FyZF9wID0gbWU0 MDAwX2JvYXJkX2luZm9fbGlzdC5uZXh0OwotCQlib2FyZF9pbmZvID0gbGlzdF9lbnRyeShib2Fy ZF9wLCBtZTQwMDBfaW5mb190LCBsaXN0KTsKKwkJYm9hcmRfaW5mbyA9IGxpc3RfZW50cnkoYm9h cmRfcCwgc3RydWN0IG1lNDAwMF9pbmZvLCBsaXN0KTsKIAkJcGNpX3JlbGVhc2VfcmVnaW9ucyhi b2FyZF9pbmZvLT5wY2lfZGV2X3ApOwogCQlsaXN0X2RlbChib2FyZF9wKTsKIAkJa2ZyZWUoYm9h cmRfaW5mbyk7CiAJfQogfQogCi1zdGF0aWMgaW50IGdldF9yZWdpc3RlcnMoc3RydWN0IHBjaV9k ZXYgKmRldiwgbWU0MDAwX2luZm9fdCAqIGJvYXJkX2luZm8pCitzdGF0aWMgaW50IGdldF9yZWdp c3RlcnMoc3RydWN0IHBjaV9kZXYgKmRldiwgc3RydWN0IG1lNDAwMF9pbmZvICpib2FyZF9pbmZv KQogewogCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gcGx4IHJlZ2Jhc2UgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KQEAgLTY2NywyMCArNjQ0LDIwIEBAIHN0YXRp YyBpbnQgZ2V0X3JlZ2lzdGVycyhzdHJ1Y3QgcGNpX2RldiAKIH0KIAogc3RhdGljIGludCBpbml0 X2JvYXJkX2luZm8oc3RydWN0IHBjaV9kZXYgKnBjaV9kZXZfcCwKLQkJCSAgIG1lNDAwMF9pbmZv X3QgKiBib2FyZF9pbmZvKQorCQkJICAgc3RydWN0IG1lNDAwMF9pbmZvICpib2FyZF9pbmZvKQog ewogCWludCBpOwogCWludCByZXN1bHQ7CiAJc3RydWN0IGxpc3RfaGVhZCAqYm9hcmRfcDsKIAli b2FyZF9pbmZvLT5wY2lfZGV2X3AgPSBwY2lfZGV2X3A7CiAKLQlmb3IgKGkgPSAwOyBpIDwgTUU0 MDAwX0JPQVJEX1ZFUlNJT05TOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSht ZTQwMDBfYm9hcmRzKTsgaSsrKSB7CiAJCWlmIChtZTQwMDBfYm9hcmRzW2ldLmRldmljZV9pZCA9 PSBwY2lfZGV2X3AtPmRldmljZSkgewogCQkJYm9hcmRfaW5mby0+Ym9hcmRfcCA9ICZtZTQwMDBf Ym9hcmRzW2ldOwogCQkJYnJlYWs7CiAJCX0KIAl9Ci0JaWYgKGkgPT0gTUU0MDAwX0JPQVJEX1ZF UlNJT05TKSB7CisJaWYgKGkgPT0gQVJSQVlfU0laRShtZTQwMDBfYm9hcmRzKSkgewogCQlwcmlu dGsoS0VSTl9FUlIKIAkJICAgICAgICJNRTQwMDA6aW5pdF9ib2FyZF9pbmZvKCk6RGV2aWNlIElE IG5vdCB2YWxpZFxuIik7CiAJCXJldHVybiAtRU5PREVWOwpAQCAtNzU1LDIxICs3MzIsMjEgQEAg c3RhdGljIGludCBpbml0X2JvYXJkX2luZm8oc3RydWN0IHBjaV9kZQogCXJldHVybiAwOwogfQog Ci1zdGF0aWMgaW50IGFsbG9jX2FvX2NvbnRleHRzKG1lNDAwMF9pbmZvX3QgKiBpbmZvKQorc3Rh dGljIGludCBhbGxvY19hb19jb250ZXh0cyhzdHJ1Y3QgbWU0MDAwX2luZm8gKmluZm8pCiB7CiAJ aW50IGk7CiAJaW50IGVycjsKLQltZTQwMDBfYW9fY29udGV4dF90ICphb19jb250ZXh0OworCXN0 cnVjdCBtZTQwMDBfYW9fY29udGV4dCAqYW9fY29udGV4dDsKIAogCWZvciAoaSA9IDA7IGkgPCBp bmZvLT5ib2FyZF9wLT5hby5jb3VudDsgaSsrKSB7Ci0JCWFvX2NvbnRleHQgPSBrbWFsbG9jKHNp emVvZihtZTQwMDBfYW9fY29udGV4dF90KSwgR0ZQX0tFUk5FTCk7CisJCWFvX2NvbnRleHQgPSBr emFsbG9jKHNpemVvZihzdHJ1Y3QgbWU0MDAwX2FvX2NvbnRleHQpLAorCQkJCQkJCQlHRlBfS0VS TkVMKTsKIAkJaWYgKCFhb19jb250ZXh0KSB7CiAJCQlwcmludGsoS0VSTl9FUlIKIAkJCSAgICAg ICAiYWxsb2NfYW9fY29udGV4dHMoKTpDYW4ndCBnZXQgbWVtb3J5IGZvciBhbyBjb250ZXh0XG4i KTsKIAkJCXJlbGVhc2VfYW9fY29udGV4dHMoaW5mbyk7CiAJCQlyZXR1cm4gLUVOT01FTTsKIAkJ fQotCQltZW1zZXQoYW9fY29udGV4dCwgMCwgc2l6ZW9mKG1lNDAwMF9hb19jb250ZXh0X3QpKTsK IAogCQlzcGluX2xvY2tfaW5pdCgmYW9fY29udGV4dC0+dXNlX2xvY2spOwogCQlzcGluX2xvY2tf aW5pdCgmYW9fY29udGV4dC0+aW50X2xvY2spOwpAQCAtNzgwLDE1ICs3NTcsMTMgQEAgc3RhdGlj IGludCBhbGxvY19hb19jb250ZXh0cyhtZTQwMDBfaW5mbwogCQlpZiAoaW5mby0+Ym9hcmRfcC0+ YW8uZmlmb19jb3VudCkgewogCQkJLyogQWxsb2NhdGUgY2lyY3VsYXIgYnVmZmVyICovCiAJCQlh b19jb250ZXh0LT5jaXJjX2J1Zi5idWYgPQotCQkJICAgIGttYWxsb2MoTUU0MDAwX0FPX0JVRkZF Ul9TSVpFLCBHRlBfS0VSTkVMKTsKKwkJCSAgICBremFsbG9jKE1FNDAwMF9BT19CVUZGRVJfU0la RSwgR0ZQX0tFUk5FTCk7CiAJCQlpZiAoIWFvX2NvbnRleHQtPmNpcmNfYnVmLmJ1ZikgewogCQkJ CXByaW50ayhLRVJOX0VSUgogCQkJCSAgICAgICAiYWxsb2NfYW9fY29udGV4dHMoKTpDYW4ndCBn ZXQgY2lyY3VsYXIgYnVmZmVyXG4iKTsKIAkJCQlyZWxlYXNlX2FvX2NvbnRleHRzKGluZm8pOwog CQkJCXJldHVybiAtRU5PTUVNOwogCQkJfQotCQkJbWVtc2V0KGFvX2NvbnRleHQtPmNpcmNfYnVm LmJ1ZiwgMCwKLQkJCSAgICAgICBNRTQwMDBfQU9fQlVGRkVSX1NJWkUpOwogCiAJCQkvKiBDbGVh ciB0aGUgY2lyY3VsYXIgYnVmZmVyICovCiAJCQlhb19jb250ZXh0LT5jaXJjX2J1Zi5oZWFkID0g MDsKQEAgLTg3Miw5ICs4NDcsOCBAQCBzdGF0aWMgaW50IGFsbG9jX2FvX2NvbnRleHRzKG1lNDAw MF9pbmZvCiAJCQkJCU1FNDAwMF9OQU1FLCBhb19jb250ZXh0KTsKIAkJCWlmIChlcnIpIHsKIAkJ CQlwcmludGsoS0VSTl9FUlIKLQkJCQkgICAgICAgImFsbG9jX2FvX2NvbnRleHRzKCk6Q2FuJ3Qg Z2V0IGludGVycnVwdCBsaW5lIik7Ci0JCQkJaWYgKGFvX2NvbnRleHQtPmNpcmNfYnVmLmJ1ZikK LQkJCQkJa2ZyZWUoYW9fY29udGV4dC0+Y2lyY19idWYuYnVmKTsKKwkJCQkgICAgICAgIiVzOkNh bid0IGdldCBpbnRlcnJ1cHQgbGluZSIsIF9fZnVuY19fKTsKKwkJCQlrZnJlZShhb19jb250ZXh0 LT5jaXJjX2J1Zi5idWYpOwogCQkJCWtmcmVlKGFvX2NvbnRleHQpOwogCQkJCXJlbGVhc2VfYW9f Y29udGV4dHMoaW5mbyk7CiAJCQkJcmV0dXJuIC1FTk9ERVY7CkBAIC04ODgsMzUgKzg2MiwzNCBA QCBzdGF0aWMgaW50IGFsbG9jX2FvX2NvbnRleHRzKG1lNDAwMF9pbmZvCiAJcmV0dXJuIDA7CiB9 CiAKLXN0YXRpYyB2b2lkIHJlbGVhc2VfYW9fY29udGV4dHMobWU0MDAwX2luZm9fdCAqIGJvYXJk X2luZm8pCitzdGF0aWMgdm9pZCByZWxlYXNlX2FvX2NvbnRleHRzKHN0cnVjdCBtZTQwMDBfaW5m byAqYm9hcmRfaW5mbykKIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkICpkYWNfcDsKLQltZTQwMDBfYW9f Y29udGV4dF90ICphb19jb250ZXh0OworCXN0cnVjdCBtZTQwMDBfYW9fY29udGV4dCAqYW9fY29u dGV4dDsKIAogCS8qIENsZWFyIGFuYWxvZyBvdXRwdXQgY29udGV4dCBsaXN0ICovCiAJd2hpbGUg KCFsaXN0X2VtcHR5KCZib2FyZF9pbmZvLT5hb19jb250ZXh0X2xpc3QpKSB7CiAJCWRhY19wID0g Ym9hcmRfaW5mby0+YW9fY29udGV4dF9saXN0Lm5leHQ7Ci0JCWFvX2NvbnRleHQgPSBsaXN0X2Vu dHJ5KGRhY19wLCBtZTQwMDBfYW9fY29udGV4dF90LCBsaXN0KTsKKwkJYW9fY29udGV4dCA9IGxp c3RfZW50cnkoZGFjX3AsIHN0cnVjdCBtZTQwMDBfYW9fY29udGV4dCwgbGlzdCk7CiAJCWZyZWVf aXJxKGFvX2NvbnRleHQtPmlycSwgYW9fY29udGV4dCk7Ci0JCWlmIChhb19jb250ZXh0LT5jaXJj X2J1Zi5idWYpCi0JCQlrZnJlZShhb19jb250ZXh0LT5jaXJjX2J1Zi5idWYpOworCQlrZnJlZShh b19jb250ZXh0LT5jaXJjX2J1Zi5idWYpOwogCQlsaXN0X2RlbChkYWNfcCk7CiAJCWtmcmVlKGFv X2NvbnRleHQpOwogCX0KIH0KIAotc3RhdGljIGludCBhbGxvY19haV9jb250ZXh0KG1lNDAwMF9p bmZvX3QgKiBpbmZvKQorc3RhdGljIGludCBhbGxvY19haV9jb250ZXh0KHN0cnVjdCBtZTQwMDBf aW5mbyAqaW5mbykKIHsKLQltZTQwMDBfYWlfY29udGV4dF90ICphaV9jb250ZXh0OworCXN0cnVj dCBtZTQwMDBfYWlfY29udGV4dCAqYWlfY29udGV4dDsKIAogCWlmIChpbmZvLT5ib2FyZF9wLT5h aS5jb3VudCkgewotCQlhaV9jb250ZXh0ID0ga21hbGxvYyhzaXplb2YobWU0MDAwX2FpX2NvbnRl eHRfdCksIEdGUF9LRVJORUwpOworCQlhaV9jb250ZXh0ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0 IG1lNDAwMF9haV9jb250ZXh0KSwKKwkJCQkJCQkJR0ZQX0tFUk5FTCk7CiAJCWlmICghYWlfY29u dGV4dCkgewogCQkJcHJpbnRrKEtFUk5fRVJSCiAJCQkgICAgICAgIk1FNDAwMDphbGxvY19haV9j b250ZXh0KCk6Q2FuJ3QgZ2V0IG1lbW9yeSBmb3IgYWkgY29udGV4dFxuIik7CiAJCQlyZXR1cm4g LUVOT01FTTsKIAkJfQotCQltZW1zZXQoYWlfY29udGV4dCwgMCwgc2l6ZW9mKG1lNDAwMF9haV9j b250ZXh0X3QpKTsKIAogCQlpbmZvLT5haV9jb250ZXh0ID0gYWlfY29udGV4dDsKIApAQCAtOTU4 LDE4ICs5MzEsMTggQEAgc3RhdGljIGludCBhbGxvY19haV9jb250ZXh0KG1lNDAwMF9pbmZvXwog CXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGFsbG9jX2Rpb19jb250ZXh0KG1lNDAwMF9pbmZv X3QgKiBpbmZvKQorc3RhdGljIGludCBhbGxvY19kaW9fY29udGV4dChzdHJ1Y3QgbWU0MDAwX2lu Zm8gKmluZm8pCiB7Ci0JbWU0MDAwX2Rpb19jb250ZXh0X3QgKmRpb19jb250ZXh0OworCXN0cnVj dCBtZTQwMDBfZGlvX2NvbnRleHQgKmRpb19jb250ZXh0OwogCiAJaWYgKGluZm8tPmJvYXJkX3At PmRpby5jb3VudCkgewotCQlkaW9fY29udGV4dCA9IGttYWxsb2Moc2l6ZW9mKG1lNDAwMF9kaW9f Y29udGV4dF90KSwgR0ZQX0tFUk5FTCk7CisJCWRpb19jb250ZXh0ID0ga3phbGxvYyhzaXplb2Yo c3RydWN0IG1lNDAwMF9kaW9fY29udGV4dCksCisJCQkJCQkJCUdGUF9LRVJORUwpOwogCQlpZiAo IWRpb19jb250ZXh0KSB7CiAJCQlwcmludGsoS0VSTl9FUlIKIAkJCSAgICAgICAiTUU0MDAwOmFs bG9jX2Rpb19jb250ZXh0KCk6Q2FuJ3QgZ2V0IG1lbW9yeSBmb3IgZGlvIGNvbnRleHRcbiIpOwog CQkJcmV0dXJuIC1FTk9NRU07CiAJCX0KLQkJbWVtc2V0KGRpb19jb250ZXh0LCAwLCBzaXplb2Yo bWU0MDAwX2Rpb19jb250ZXh0X3QpKTsKIAogCQlpbmZvLT5kaW9fY29udGV4dCA9IGRpb19jb250 ZXh0OwogCkBAIC05OTUsMTggKzk2OCwxOCBAQCBzdGF0aWMgaW50IGFsbG9jX2Rpb19jb250ZXh0 KG1lNDAwMF9pbmZvCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgYWxsb2NfY250X2NvbnRl eHQobWU0MDAwX2luZm9fdCAqIGluZm8pCitzdGF0aWMgaW50IGFsbG9jX2NudF9jb250ZXh0KHN0 cnVjdCBtZTQwMDBfaW5mbyAqaW5mbykKIHsKLQltZTQwMDBfY250X2NvbnRleHRfdCAqY250X2Nv bnRleHQ7CisJc3RydWN0IG1lNDAwMF9jbnRfY29udGV4dCAqY250X2NvbnRleHQ7CiAKIAlpZiAo aW5mby0+Ym9hcmRfcC0+Y250LmNvdW50KSB7Ci0JCWNudF9jb250ZXh0ID0ga21hbGxvYyhzaXpl b2YobWU0MDAwX2NudF9jb250ZXh0X3QpLCBHRlBfS0VSTkVMKTsKKwkJY250X2NvbnRleHQgPSBr emFsbG9jKHNpemVvZihzdHJ1Y3QgbWU0MDAwX2NudF9jb250ZXh0KSwKKwkJCQkJCQkJR0ZQX0tF Uk5FTCk7CiAJCWlmICghY250X2NvbnRleHQpIHsKIAkJCXByaW50ayhLRVJOX0VSUgogCQkJICAg ICAgICJNRTQwMDA6YWxsb2NfY250X2NvbnRleHQoKTpDYW4ndCBnZXQgbWVtb3J5IGZvciBjbnQg Y29udGV4dFxuIik7CiAJCQlyZXR1cm4gLUVOT01FTTsKIAkJfQotCQltZW1zZXQoY250X2NvbnRl eHQsIDAsIHNpemVvZihtZTQwMDBfY250X2NvbnRleHRfdCkpOwogCiAJCWluZm8tPmNudF9jb250 ZXh0ID0gY250X2NvbnRleHQ7CiAKQEAgLTEwMjYsMTkgKzk5OSwxOCBAQCBzdGF0aWMgaW50IGFs bG9jX2NudF9jb250ZXh0KG1lNDAwMF9pbmZvCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQg YWxsb2NfZXh0X2ludF9jb250ZXh0KG1lNDAwMF9pbmZvX3QgKiBpbmZvKQorc3RhdGljIGludCBh bGxvY19leHRfaW50X2NvbnRleHQoc3RydWN0IG1lNDAwMF9pbmZvICppbmZvKQogewotCW1lNDAw MF9leHRfaW50X2NvbnRleHRfdCAqZXh0X2ludF9jb250ZXh0OworCXN0cnVjdCBtZTQwMDBfZXh0 X2ludF9jb250ZXh0ICpleHRfaW50X2NvbnRleHQ7CiAKIAlpZiAoaW5mby0+Ym9hcmRfcC0+Y250 LmNvdW50KSB7CiAJCWV4dF9pbnRfY29udGV4dCA9Ci0JCSAgICBrbWFsbG9jKHNpemVvZihtZTQw MDBfZXh0X2ludF9jb250ZXh0X3QpLCBHRlBfS0VSTkVMKTsKKwkJICAgIGt6YWxsb2Moc2l6ZW9m KHN0cnVjdCBtZTQwMDBfZXh0X2ludF9jb250ZXh0KSwgR0ZQX0tFUk5FTCk7CiAJCWlmICghZXh0 X2ludF9jb250ZXh0KSB7CiAJCQlwcmludGsoS0VSTl9FUlIKIAkJCSAgICAgICAiTUU0MDAwOmFs bG9jX2V4dF9pbnRfY29udGV4dCgpOkNhbid0IGdldCBtZW1vcnkgZm9yIGNudCBjb250ZXh0XG4i KTsKIAkJCXJldHVybiAtRU5PTUVNOwogCQl9Ci0JCW1lbXNldChleHRfaW50X2NvbnRleHQsIDAs IHNpemVvZihtZTQwMDBfZXh0X2ludF9jb250ZXh0X3QpKTsKIAogCQlpbmZvLT5leHRfaW50X2Nv bnRleHQgPSBleHRfaW50X2NvbnRleHQ7CiAKQEAgLTEwNjAsMTkgKzEwMzIsMTggQEAgc3RhdGlj IGludCBhbGxvY19leHRfaW50X2NvbnRleHQobWU0MDAwXwogc3RhdGljIGludCBtZTQwMDBfcHJv YmUoc3RydWN0IHBjaV9kZXYgKmRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKQog ewogCWludCByZXN1bHQgPSAwOwotCW1lNDAwMF9pbmZvX3QgKmJvYXJkX2luZm87CisJc3RydWN0 IG1lNDAwMF9pbmZvICpib2FyZF9pbmZvOwogCiAJQ0FMTF9QREVCVUcoIm1lNDAwMF9wcm9iZSgp IGlzIGV4ZWN1dGVkXG4iKTsKIAogCS8qIEFsbG9jYXRlIHN0cnVjdHVyZSBmb3IgYm9hcmQgY29u dGV4dCAqLwotCWJvYXJkX2luZm8gPSBrbWFsbG9jKHNpemVvZihtZTQwMDBfaW5mb190KSwgR0ZQ X0tFUk5FTCk7CisJYm9hcmRfaW5mbyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBtZTQwMDBfaW5m byksIEdGUF9LRVJORUwpOwogCWlmICghYm9hcmRfaW5mbykgewogCQlwcmludGsoS0VSTl9FUlIK IAkJICAgICAgICJNRTQwMDA6Q2FuJ3QgZ2V0IG1lbW9yeSBmb3IgYm9hcmQgaW5mbyBzdHJ1Y3R1 cmVcbiIpOwogCQlyZXN1bHQgPSAtRU5PTUVNOwogCQlnb3RvIFBST0JFX0VSUk9SXzE7CiAJfQot CW1lbXNldChib2FyZF9pbmZvLCAwLCBzaXplb2YobWU0MDAwX2luZm9fdCkpOwogCiAJLyogQWRk IHRvIGdsb2JhbCBsaW5rZWQgbGlzdCAqLwogCWxpc3RfYWRkX3RhaWwoJmJvYXJkX2luZm8tPmxp c3QsICZtZTQwMDBfYm9hcmRfaW5mb19saXN0KTsKQEAgLTEwODAsNzAgKzEwNTEsNzAgQEAgc3Rh dGljIGludCBtZTQwMDBfcHJvYmUoc3RydWN0IHBjaV9kZXYgKgogCS8qIEdldCB0aGUgUENJIGJh c2UgcmVnaXN0ZXJzICovCiAJcmVzdWx0ID0gZ2V0X3JlZ2lzdGVycyhkZXYsIGJvYXJkX2luZm8p OwogCWlmIChyZXN1bHQpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJtZTQwMDBfcHJvYmUoKTpDYW5u b3QgZ2V0IHJlZ2lzdGVyc1xuIik7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6Q2Fubm90IGdldCBy ZWdpc3RlcnNcbiIsIF9fZnVuY19fKTsKIAkJZ290byBQUk9CRV9FUlJPUl8yOwogCX0KIAogCS8q IEVuYWJsZSB0aGUgZGV2aWNlICovCiAJcmVzdWx0ID0gcGNpX2VuYWJsZV9kZXZpY2UoZGV2KTsK IAlpZiAocmVzdWx0IDwgMCkgewotCQlwcmludGsoS0VSTl9FUlIgIm1lNDAwMF9wcm9iZSgpOkNh bm5vdCBlbmFibGUgUENJIGRldmljZVxuIik7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6Q2Fubm90 IGVuYWJsZSBQQ0kgZGV2aWNlXG4iLCBfX2Z1bmNfXyk7CiAJCWdvdG8gUFJPQkVfRVJST1JfMjsK IAl9CiAKIAkvKiBSZXF1ZXN0IHRoZSBQQ0kgcmVnaXN0ZXIgcmVnaW9ucyAqLwogCXJlc3VsdCA9 IHBjaV9yZXF1ZXN0X3JlZ2lvbnMoZGV2LCBNRTQwMDBfTkFNRSk7CiAJaWYgKHJlc3VsdCA8IDAp IHsKLQkJcHJpbnRrKEtFUk5fRVJSICJtZTQwMDBfcHJvYmUoKTpDYW5ub3QgcmVxdWVzdCBJL08g cmVnaW9uc1xuIik7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6Q2Fubm90IHJlcXVlc3QgSS9PIHJl Z2lvbnNcbiIsIF9fZnVuY19fKTsKIAkJZ290byBQUk9CRV9FUlJPUl8yOwogCX0KIAogCS8qIElu aXRpYWxpemUgYm9hcmQgaW5mbyAqLwogCXJlc3VsdCA9IGluaXRfYm9hcmRfaW5mbyhkZXYsIGJv YXJkX2luZm8pOwogCWlmIChyZXN1bHQpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJtZTQwMDBfcHJv YmUoKTpDYW5ub3QgaW5pdCBiYW9yZCBpbmZvXG4iKTsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczpD YW5ub3QgaW5pdCBiYW9yZCBpbmZvXG4iLCBfX2Z1bmNfXyk7CiAJCWdvdG8gUFJPQkVfRVJST1Jf MzsKIAl9CiAKIAkvKiBEb3dubG9hZCB0aGUgeGlsaW54IGZpcm13YXJlICovCiAJcmVzdWx0ID0g bWU0MDAwX3hpbGlueF9kb3dubG9hZChib2FyZF9pbmZvKTsKIAlpZiAocmVzdWx0KSB7Ci0JCXBy aW50ayhLRVJOX0VSUiAibWU0MDAwX3Byb2JlOkNhbid0IGRvd25sb2FkIGZpcm13YXJlXG4iKTsK KwkJcHJpbnRrKEtFUk5fRVJSICIlczpDYW4ndCBkb3dubG9hZCBmaXJtd2FyZVxuIiwgX19mdW5j X18pOwogCQlnb3RvIFBST0JFX0VSUk9SXzM7CiAJfQogCiAJLyogTWFrZSBhIGhhcmR3YXJlIHJl c2V0ICovCiAJcmVzdWx0ID0gbWU0MDAwX3Jlc2V0X2JvYXJkKGJvYXJkX2luZm8pOwogCWlmIChy ZXN1bHQpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJtZTQwMDBfcHJvYmU6Q2FuJ3QgcmVzZXQgYm9h cmRcbiIpOworCQlwcmludGsoS0VSTl9FUlIgIiVzIDpDYW4ndCByZXNldCBib2FyZFxuIiwgX19m dW5jX18pOwogCQlnb3RvIFBST0JFX0VSUk9SXzM7CiAJfQogCiAJLyogQWxsb2NhdGUgYW5hbG9n IG91dHB1dCBjb250ZXh0IHN0cnVjdHVyZXMgKi8KIAlyZXN1bHQgPSBhbGxvY19hb19jb250ZXh0 cyhib2FyZF9pbmZvKTsKIAlpZiAocmVzdWx0KSB7Ci0JCXByaW50ayhLRVJOX0VSUiAibWU0MDAw X3Byb2JlKCk6Q2Fubm90IGFsbG9jYXRlIGFvIGNvbnRleHRzXG4iKTsKKwkJcHJpbnRrKEtFUk5f RVJSICIlczpDYW5ub3QgYWxsb2NhdGUgYW8gY29udGV4dHNcbiIsIF9fZnVuY19fKTsKIAkJZ290 byBQUk9CRV9FUlJPUl8zOwogCX0KIAogCS8qIEFsbG9jYXRlIGFuYWxvZyBpbnB1dCBjb250ZXh0 ICovCiAJcmVzdWx0ID0gYWxsb2NfYWlfY29udGV4dChib2FyZF9pbmZvKTsKIAlpZiAocmVzdWx0 KSB7Ci0JCXByaW50ayhLRVJOX0VSUiAibWU0MDAwX3Byb2JlKCk6Q2Fubm90IGFsbG9jYXRlIGFp IGNvbnRleHRcbiIpOworCQlwcmludGsoS0VSTl9FUlIgIiVzOkNhbm5vdCBhbGxvY2F0ZSBhaSBj b250ZXh0XG4iLCBfX2Z1bmNfXyk7CiAJCWdvdG8gUFJPQkVfRVJST1JfNDsKIAl9CiAKIAkvKiBB bGxvY2F0ZSBkaWdpdGFsIEkvTyBjb250ZXh0ICovCiAJcmVzdWx0ID0gYWxsb2NfZGlvX2NvbnRl eHQoYm9hcmRfaW5mbyk7CiAJaWYgKHJlc3VsdCkgewotCQlwcmludGsoS0VSTl9FUlIgIm1lNDAw MF9wcm9iZSgpOkNhbm5vdCBhbGxvY2F0ZSBkaW8gY29udGV4dFxuIik7CisJCXByaW50ayhLRVJO X0VSUiAiJXM6Q2Fubm90IGFsbG9jYXRlIGRpbyBjb250ZXh0XG4iLCBfX2Z1bmNfXyk7CiAJCWdv dG8gUFJPQkVfRVJST1JfNTsKIAl9CiAKIAkvKiBBbGxvY2F0ZSBjb3VudGVyIGNvbnRleHQgKi8K IAlyZXN1bHQgPSBhbGxvY19jbnRfY29udGV4dChib2FyZF9pbmZvKTsKIAlpZiAocmVzdWx0KSB7 Ci0JCXByaW50ayhLRVJOX0VSUiAibWU0MDAwX3Byb2JlKCk6Q2Fubm90IGFsbG9jYXRlIGNudCBj b250ZXh0XG4iKTsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczpDYW5ub3QgYWxsb2NhdGUgY250IGNv bnRleHRcbiIsIF9fZnVuY19fKTsKIAkJZ290byBQUk9CRV9FUlJPUl82OwogCX0KIApAQCAtMTE1 MSwzNiArMTEyMiwzNiBAQCBzdGF0aWMgaW50IG1lNDAwMF9wcm9iZShzdHJ1Y3QgcGNpX2RldiAq CiAJcmVzdWx0ID0gYWxsb2NfZXh0X2ludF9jb250ZXh0KGJvYXJkX2luZm8pOwogCWlmIChyZXN1 bHQpIHsKIAkJcHJpbnRrKEtFUk5fRVJSCi0JCSAgICAgICAibWU0MDAwX3Byb2JlKCk6Q2Fubm90 IGFsbG9jYXRlIGV4dF9pbnQgY29udGV4dFxuIik7CisJCSAgICAgICAiJXM6Q2Fubm90IGFsbG9j YXRlIGV4dF9pbnQgY29udGV4dFxuIiwgX19mdW5jX18pOwogCQlnb3RvIFBST0JFX0VSUk9SXzc7 CiAJfQogCiAJcmV0dXJuIDA7CiAKLSAgICAgIFBST0JFX0VSUk9SXzc6CitQUk9CRV9FUlJPUl83 OgogCWtmcmVlKGJvYXJkX2luZm8tPmNudF9jb250ZXh0KTsKIAotICAgICAgUFJPQkVfRVJST1Jf NjoKK1BST0JFX0VSUk9SXzY6CiAJa2ZyZWUoYm9hcmRfaW5mby0+ZGlvX2NvbnRleHQpOwogCi0g ICAgICBQUk9CRV9FUlJPUl81OgorUFJPQkVfRVJST1JfNToKIAlrZnJlZShib2FyZF9pbmZvLT5h aV9jb250ZXh0KTsKIAotICAgICAgUFJPQkVfRVJST1JfNDoKK1BST0JFX0VSUk9SXzQ6CiAJcmVs ZWFzZV9hb19jb250ZXh0cyhib2FyZF9pbmZvKTsKIAotICAgICAgUFJPQkVfRVJST1JfMzoKK1BS T0JFX0VSUk9SXzM6CiAJcGNpX3JlbGVhc2VfcmVnaW9ucyhkZXYpOwogCi0gICAgICBQUk9CRV9F UlJPUl8yOgorUFJPQkVfRVJST1JfMjoKIAlsaXN0X2RlbCgmYm9hcmRfaW5mby0+bGlzdCk7CiAJ a2ZyZWUoYm9hcmRfaW5mbyk7CiAKLSAgICAgIFBST0JFX0VSUk9SXzE6CitQUk9CRV9FUlJPUl8x OgogCXJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBpbnQgbWU0MDAwX3hpbGlueF9kb3dubG9h ZChtZTQwMDBfaW5mb190ICogaW5mbykKK3N0YXRpYyBpbnQgbWU0MDAwX3hpbGlueF9kb3dubG9h ZChzdHJ1Y3QgbWU0MDAwX2luZm8gKmluZm8pCiB7CiAJaW50IHNpemUgPSAwOwogCXUzMiB2YWx1 ZSA9IDA7CkBAIC0xMjExLDcgKzExODIsNyBAQCBzdGF0aWMgaW50IG1lNDAwMF94aWxpbnhfZG93 bmxvYWQobWU0MDAwCiAJLyogV2FpdCB1bnRpbCAvSU5JVCBwaW4gaXMgc2V0ICovCiAJdWRlbGF5 KDIwKTsKIAlpZiAoIWlubChpbmZvLT5wbHhfcmVnYmFzZSArIFBMWF9JTlRDU1IpICYgMHgyMCkg ewotCQlwcmludGsoS0VSTl9FUlIgIm1lNDAwMF94aWxpbnhfZG93bmxvYWQoKTpDYW4ndCBpbml0 IFhpbGlueFxuIik7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6Q2FuJ3QgaW5pdCBYaWxpbnhcbiIs IF9fZnVuY19fKTsKIAkJcmV0dXJuIC1FSU87CiAJfQogCkBAIC0xMjMyLDcgKzEyMDMsNyBAQCBz dGF0aWMgaW50IG1lNDAwMF94aWxpbnhfZG93bmxvYWQobWU0MDAwCiAJCS8qIENoZWNrIGlmIEJV U1kgZmxhZyBpcyBsb3cgKi8KIAkJaWYgKGlubChpbmZvLT5wbHhfcmVnYmFzZSArIFBMWF9JQ1Ip ICYgMHgyMCkgewogCQkJcHJpbnRrKEtFUk5fRVJSCi0JCQkgICAgICAgIm1lNDAwMF94aWxpbnhf ZG93bmxvYWQoKTpYaWxpbnggaXMgc3RpbGwgYnVzeSAoaWR4ID0gJWQpXG4iLAorCQkJICAgICAg ICIlczpYaWxpbnggaXMgc3RpbGwgYnVzeSAoaWR4ID0gJWQpXG4iLCBfX2Z1bmNfXywKIAkJCSAg ICAgICBpZHgpOwogCQkJcmV0dXJuIC1FSU87CiAJCX0KQEAgLTEyNDYsOSArMTIxNyw5IEBAIHN0 YXRpYyBpbnQgbWU0MDAwX3hpbGlueF9kb3dubG9hZChtZTQwMDAKIAkJUERFQlVHKCJtZTQwMDBf eGlsaW54X2Rvd25sb2FkKCk6RG93bmxvYWQgd2FzIHN1Y2Nlc3NmdWxcbiIpOwogCX0gZWxzZSB7 CiAJCXByaW50ayhLRVJOX0VSUgotCQkgICAgICAgIk1FNDAwMDptZTQwMDBfeGlsaW54X2Rvd25s b2FkKCk6RE9ORSBmbGFnIGlzIG5vdCBzZXRcbiIpOworCQkgICAgICAgIk1FNDAwMDolczpET05F IGZsYWcgaXMgbm90IHNldFxuIiwgX19mdW5jX18pOwogCQlwcmludGsoS0VSTl9FUlIKLQkJICAg ICAgICJNRTQwMDA6bWU0MDAwX3hpbGlueF9kb3dubG9hZCgpOkRvd25sb2FkIG5vdCBzdWNjZXNm dWxcbiIpOworCQkgICAgICAgIk1FNDAwMDolczpEb3dubG9hZCBub3Qgc3VjY2VzZnVsXG4iLCBf X2Z1bmNfXyk7CiAJCXJldHVybiAtRUlPOwogCX0KIApAQCAtMTI2MCw3ICsxMjMxLDcgQEAgc3Rh dGljIGludCBtZTQwMDBfeGlsaW54X2Rvd25sb2FkKG1lNDAwMAogCXJldHVybiAwOwogfQogCi1z dGF0aWMgaW50IG1lNDAwMF9yZXNldF9ib2FyZChtZTQwMDBfaW5mb190ICogaW5mbykKK3N0YXRp YyBpbnQgbWU0MDAwX3Jlc2V0X2JvYXJkKHN0cnVjdCBtZTQwMDBfaW5mbyAqaW5mbykKIHsKIAl1 bnNpZ25lZCBsb25nIGljcjsKIApAQCAtMTMxNCwxMiArMTI4NSwxMiBAQCBzdGF0aWMgaW50IG1l NDAwMF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vCiAJaW50IGVyciA9IDA7CiAJaW50IGk7CiAJc3Ry dWN0IGxpc3RfaGVhZCAqcHRyOwotCW1lNDAwMF9pbmZvX3QgKmJvYXJkX2luZm8gPSBOVUxMOwot CW1lNDAwMF9hb19jb250ZXh0X3QgKmFvX2NvbnRleHQgPSBOVUxMOwotCW1lNDAwMF9haV9jb250 ZXh0X3QgKmFpX2NvbnRleHQgPSBOVUxMOwotCW1lNDAwMF9kaW9fY29udGV4dF90ICpkaW9fY29u dGV4dCA9IE5VTEw7Ci0JbWU0MDAwX2NudF9jb250ZXh0X3QgKmNudF9jb250ZXh0ID0gTlVMTDsK LQltZTQwMDBfZXh0X2ludF9jb250ZXh0X3QgKmV4dF9pbnRfY29udGV4dCA9IE5VTEw7CisJc3Ry dWN0IG1lNDAwMF9pbmZvICpib2FyZF9pbmZvID0gTlVMTDsKKwlzdHJ1Y3QgbWU0MDAwX2FvX2Nv bnRleHQgKmFvX2NvbnRleHQgPSBOVUxMOworCXN0cnVjdCBtZTQwMDBfYWlfY29udGV4dCAqYWlf Y29udGV4dCA9IE5VTEw7CisJc3RydWN0IG1lNDAwMF9kaW9fY29udGV4dCAqZGlvX2NvbnRleHQg PSBOVUxMOworCXN0cnVjdCBtZTQwMDBfY250X2NvbnRleHQgKmNudF9jb250ZXh0ID0gTlVMTDsK KwlzdHJ1Y3QgbWU0MDAwX2V4dF9pbnRfY29udGV4dCAqZXh0X2ludF9jb250ZXh0ID0gTlVMTDsK IAogCUNBTExfUERFQlVHKCJtZTQwMDBfb3BlbigpIGlzIGV4ZWN1dGVkXG4iKTsKIApAQCAtMTMz NSw3ICsxMzA2LDcgQEAgc3RhdGljIGludCBtZTQwMDBfb3BlbihzdHJ1Y3QgaW5vZGUgKmlubwog CQkvKiBTZWFyY2ggZm9yIHRoZSBib2FyZCBjb250ZXh0ICovCiAJCWZvciAocHRyID0gbWU0MDAw X2JvYXJkX2luZm9fbGlzdC5uZXh0LCBpID0gMDsKIAkJICAgICBwdHIgIT0gJm1lNDAwMF9ib2Fy ZF9pbmZvX2xpc3Q7IHB0ciA9IHB0ci0+bmV4dCwgaSsrKSB7Ci0JCQlib2FyZF9pbmZvID0gbGlz dF9lbnRyeShwdHIsIG1lNDAwMF9pbmZvX3QsIGxpc3QpOworCQkJYm9hcmRfaW5mbyA9IGxpc3Rf ZW50cnkocHRyLCBzdHJ1Y3QgbWU0MDAwX2luZm8sIGxpc3QpOwogCQkJaWYgKGkgPT0gYm9hcmQp CiAJCQkJYnJlYWs7CiAJCX0KQEAgLTEzNTEsNyArMTMyMiw4IEBAIHN0YXRpYyBpbnQgbWU0MDAw X29wZW4oc3RydWN0IGlub2RlICppbm8KIAkJZm9yIChwdHIgPSBib2FyZF9pbmZvLT5hb19jb250 ZXh0X2xpc3QubmV4dCwgaSA9IDA7CiAJCSAgICAgcHRyICE9ICZib2FyZF9pbmZvLT5hb19jb250 ZXh0X2xpc3Q7CiAJCSAgICAgcHRyID0gcHRyLT5uZXh0LCBpKyspIHsKLQkJCWFvX2NvbnRleHQg PSBsaXN0X2VudHJ5KHB0ciwgbWU0MDAwX2FvX2NvbnRleHRfdCwgbGlzdCk7CisJCQlhb19jb250 ZXh0ID0gbGlzdF9lbnRyeShwdHIsIHN0cnVjdCBtZTQwMDBfYW9fY29udGV4dCwKKwkJCQkJCQkJ CWxpc3QpOwogCQkJaWYgKGkgPT0gZGV2KQogCQkJCWJyZWFrOwogCQl9CkBAIC0xNDE1LDcgKzEz ODcsNyBAQCBzdGF0aWMgaW50IG1lNDAwMF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vCiAJCS8qIFNl YXJjaCBmb3IgdGhlIGJvYXJkIGNvbnRleHQgKi8KIAkJZm9yIChwdHIgPSBtZTQwMDBfYm9hcmRf aW5mb19saXN0Lm5leHQsIGkgPSAwOwogCQkgICAgIHB0ciAhPSAmbWU0MDAwX2JvYXJkX2luZm9f bGlzdDsgcHRyID0gcHRyLT5uZXh0LCBpKyspIHsKLQkJCWJvYXJkX2luZm8gPSBsaXN0X2VudHJ5 KHB0ciwgbWU0MDAwX2luZm9fdCwgbGlzdCk7CisJCQlib2FyZF9pbmZvID0gbGlzdF9lbnRyeShw dHIsIHN0cnVjdCBtZTQwMDBfaW5mbywgbGlzdCk7CiAJCQlpZiAoaSA9PSBib2FyZCkKIAkJCQli cmVhazsKIAkJfQpAQCAtMTQ2OSw3ICsxNDQxLDcgQEAgc3RhdGljIGludCBtZTQwMDBfb3Blbihz dHJ1Y3QgaW5vZGUgKmlubwogCQkvKiBTZWFyY2ggZm9yIHRoZSBib2FyZCBjb250ZXh0ICovCiAJ CWZvciAocHRyID0gbWU0MDAwX2JvYXJkX2luZm9fbGlzdC5uZXh0OwogCQkgICAgIHB0ciAhPSAm bWU0MDAwX2JvYXJkX2luZm9fbGlzdDsgcHRyID0gcHRyLT5uZXh0KSB7Ci0JCQlib2FyZF9pbmZv ID0gbGlzdF9lbnRyeShwdHIsIG1lNDAwMF9pbmZvX3QsIGxpc3QpOworCQkJYm9hcmRfaW5mbyA9 IGxpc3RfZW50cnkocHRyLCBzdHJ1Y3QgbWU0MDAwX2luZm8sIGxpc3QpOwogCQkJaWYgKGJvYXJk X2luZm8tPmJvYXJkX2NvdW50ID09IGJvYXJkKQogCQkJCWJyZWFrOwogCQl9CkBAIC0xNTE0LDcg KzE0ODYsNyBAQCBzdGF0aWMgaW50IG1lNDAwMF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vCiAJCS8q IFNlYXJjaCBmb3IgdGhlIGJvYXJkIGNvbnRleHQgKi8KIAkJZm9yIChwdHIgPSBtZTQwMDBfYm9h cmRfaW5mb19saXN0Lm5leHQ7CiAJCSAgICAgcHRyICE9ICZtZTQwMDBfYm9hcmRfaW5mb19saXN0 OyBwdHIgPSBwdHItPm5leHQpIHsKLQkJCWJvYXJkX2luZm8gPSBsaXN0X2VudHJ5KHB0ciwgbWU0 MDAwX2luZm9fdCwgbGlzdCk7CisJCQlib2FyZF9pbmZvID0gbGlzdF9lbnRyeShwdHIsIHN0cnVj dCBtZTQwMDBfaW5mbywgbGlzdCk7CiAJCQlpZiAoYm9hcmRfaW5mby0+Ym9hcmRfY291bnQgPT0g Ym9hcmQpCiAJCQkJYnJlYWs7CiAJCX0KQEAgLTE1NTcsNyArMTUyOSw3IEBAIHN0YXRpYyBpbnQg bWU0MDAwX29wZW4oc3RydWN0IGlub2RlICppbm8KIAkJLyogU2VhcmNoIGZvciB0aGUgYm9hcmQg Y29udGV4dCAqLwogCQlmb3IgKHB0ciA9IG1lNDAwMF9ib2FyZF9pbmZvX2xpc3QubmV4dDsKIAkJ ICAgICBwdHIgIT0gJm1lNDAwMF9ib2FyZF9pbmZvX2xpc3Q7IHB0ciA9IHB0ci0+bmV4dCkgewot CQkJYm9hcmRfaW5mbyA9IGxpc3RfZW50cnkocHRyLCBtZTQwMDBfaW5mb190LCBsaXN0KTsKKwkJ CWJvYXJkX2luZm8gPSBsaXN0X2VudHJ5KHB0ciwgc3RydWN0IG1lNDAwMF9pbmZvLCBsaXN0KTsK IAkJCWlmIChib2FyZF9pbmZvLT5ib2FyZF9jb3VudCA9PSBib2FyZCkKIAkJCQlicmVhazsKIAkJ fQpAQCAtMTYxMywxMSArMTU4NSwxMSBAQCBzdGF0aWMgaW50IG1lNDAwMF9vcGVuKHN0cnVjdCBp bm9kZSAqaW5vCiAKIHN0YXRpYyBpbnQgbWU0MDAwX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9k ZV9wLCBzdHJ1Y3QgZmlsZSAqZmlsZV9wKQogewotCW1lNDAwMF9hb19jb250ZXh0X3QgKmFvX2Nv bnRleHQ7Ci0JbWU0MDAwX2FpX2NvbnRleHRfdCAqYWlfY29udGV4dDsKLQltZTQwMDBfZGlvX2Nv bnRleHRfdCAqZGlvX2NvbnRleHQ7Ci0JbWU0MDAwX2NudF9jb250ZXh0X3QgKmNudF9jb250ZXh0 OwotCW1lNDAwMF9leHRfaW50X2NvbnRleHRfdCAqZXh0X2ludF9jb250ZXh0OworCXN0cnVjdCBt ZTQwMDBfYW9fY29udGV4dCAqYW9fY29udGV4dDsKKwlzdHJ1Y3QgbWU0MDAwX2FpX2NvbnRleHQg KmFpX2NvbnRleHQ7CisJc3RydWN0IG1lNDAwMF9kaW9fY29udGV4dCAqZGlvX2NvbnRleHQ7CisJ c3RydWN0IG1lNDAwMF9jbnRfY29udGV4dCAqY250X2NvbnRleHQ7CisJc3RydWN0IG1lNDAwMF9l eHRfaW50X2NvbnRleHQgKmV4dF9pbnRfY29udGV4dDsKIAogCUNBTExfUERFQlVHKCJtZTQwMDBf cmVsZWFzZSgpIGlzIGV4ZWN1dGVkXG4iKTsKIApAQCAtMTY3Nyw3ICsxNjQ5LDcgQEAgc3RhdGlj IGludCBtZTQwMDBfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKgogCiAvKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gQW5hbG9nIG91dHB1dCBzdHVmZiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSovCiAKLXN0YXRpYyBpbnQgbWU0MDAwX2FvX3ByZXBhcmUobWU0MDAw X2FvX2NvbnRleHRfdCAqIGFvX2NvbnRleHQpCitzdGF0aWMgaW50IG1lNDAwMF9hb19wcmVwYXJl KHN0cnVjdCBtZTQwMDBfYW9fY29udGV4dCAqYW9fY29udGV4dCkKIHsKIAl1bnNpZ25lZCBsb25n IGZsYWdzOwogCkBAIC0xNzU2LDcgKzE3MjgsNyBAQCBzdGF0aWMgaW50IG1lNDAwMF9hb19wcmVw YXJlKG1lNDAwMF9hb19jCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbWU0MDAwX2FvX3Jl c2V0KG1lNDAwMF9hb19jb250ZXh0X3QgKiBhb19jb250ZXh0KQorc3RhdGljIGludCBtZTQwMDBf YW9fcmVzZXQoc3RydWN0IG1lNDAwMF9hb19jb250ZXh0ICphb19jb250ZXh0KQogewogCXUzMiB0 bXA7CiAJd2FpdF9xdWV1ZV9oZWFkX3QgcXVldWU7CkBAIC0xNzc3LDkgKzE3NDksMTAgQEAgc3Rh dGljIGludCBtZTQwMDBfYW9fcmVzZXQobWU0MDAwX2FvX2NvbgogCQl0bXAgfD0gTUU0MDAwX0FP X0NUUkxfQklUX0lNTUVESUFURV9TVE9QOwogCQltZTQwMDBfb3V0bCh0bXAsIGFvX2NvbnRleHQt PmN0cmxfcmVnKTsKIAotCQl3aGlsZSAoaW5sKGFvX2NvbnRleHQtPnN0YXR1c19yZWcpICYgTUU0 MDAwX0FPX1NUQVRVU19CSVRfRlNNKSB7Ci0JCQlzbGVlcF9vbl90aW1lb3V0KCZxdWV1ZSwgMSk7 Ci0JCX0KKwkJd2FpdF9ldmVudF90aW1lb3V0KHF1ZXVlLAorCQkJKGlubChhb19jb250ZXh0LT5z dGF0dXNfcmVnKSAmCisJCQkJTUU0MDAwX0FPX1NUQVRVU19CSVRfRlNNKSA9PSAwLAorCQkJMSk7 CiAKIAkJLyogU2V0IHRvIHRyYW5zcGFyZW50IG1vZGUgKi8KIAkJbWU0MDAwX2FvX3NpbXVsdGFu ZW91c19kaXNhYmxlKGFvX2NvbnRleHQpOwpAQCAtMTgxMiw5ICsxNzg1LDEwIEBAIHN0YXRpYyBp bnQgbWU0MDAwX2FvX3Jlc2V0KG1lNDAwMF9hb19jb24KIAkJbWU0MDAwX291dGwodG1wLCBhb19j b250ZXh0LT5jdHJsX3JlZyk7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFvX2NvbnRleHQt PmludF9sb2NrLCBmbGFncyk7CiAKLQkJd2hpbGUgKGlubChhb19jb250ZXh0LT5zdGF0dXNfcmVn KSAmIE1FNDAwMF9BT19TVEFUVVNfQklUX0ZTTSkgewotCQkJc2xlZXBfb25fdGltZW91dCgmcXVl dWUsIDEpOwotCQl9CisJCXdhaXRfZXZlbnRfdGltZW91dChxdWV1ZSwKKwkJCShpbmwoYW9fY29u dGV4dC0+c3RhdHVzX3JlZykgJgorCQkJCU1FNDAwMF9BT19TVEFUVVNfQklUX0ZTTSkgPT0gMCwK KwkJCTEpOwogCiAJCS8qIENsZWFyIHRoZSBjaXJjdWxhciBidWZmZXIgKi8KIAkJYW9fY29udGV4 dC0+Y2lyY19idWYuaGVhZCA9IDA7CkBAIC0xODUzLDkgKzE4MjcsOSBAQCBzdGF0aWMgaW50IG1l NDAwMF9hb19yZXNldChtZTQwMDBfYW9fY29uCiB9CiAKIHN0YXRpYyBzc2l6ZV90IG1lNDAwMF9h b193cml0ZV9zaW5nKHN0cnVjdCBmaWxlICpmaWxlcCwgY29uc3QgY2hhciAqYnVmZiwKLQkJCQkg ICAgc2l6ZV90IGNudCwgbG9mZl90ICogb2ZmcCkKKwkJCQkgICAgc2l6ZV90IGNudCwgbG9mZl90 ICpvZmZwKQogewotCW1lNDAwMF9hb19jb250ZXh0X3QgKmFvX2NvbnRleHQgPSBmaWxlcC0+cHJp dmF0ZV9kYXRhOworCXN0cnVjdCBtZTQwMDBfYW9fY29udGV4dCAqYW9fY29udGV4dCA9IGZpbGVw LT5wcml2YXRlX2RhdGE7CiAJdTMyIHZhbHVlOwogCWNvbnN0IHUxNiAqYnVmZmVyID0gKGNvbnN0 IHUxNiAqKWJ1ZmY7CiAKQEAgLTE4NjMsMTMgKzE4MzcsMTMgQEAgc3RhdGljIHNzaXplX3QgbWU0 MDAwX2FvX3dyaXRlX3Npbmcoc3RydQogCiAJaWYgKGNudCAhPSAyKSB7CiAJCXByaW50ayhLRVJO X0VSUgotCQkgICAgICAgIm1lNDAwMF9hb193cml0ZV9zaW5nKCk6V3JpdGUgY291bnQgaXMgbm90 IDJcbiIpOworCQkgICAgICAgIiVzOldyaXRlIGNvdW50IGlzIG5vdCAyXG4iLCBfX2Z1bmNfXyk7 CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAogCWlmIChnZXRfdXNlcih2YWx1ZSwgYnVmZmVyKSkg ewogCQlwcmludGsoS0VSTl9FUlIKLQkJICAgICAgICJtZTQwMDBfYW9fd3JpdGVfc2luZygpOkNh bm5vdCBjb3B5IGRhdGEgZnJvbSB1c2VyXG4iKTsKKwkJICAgICAgICIlczpDYW5ub3QgY29weSBk YXRhIGZyb20gdXNlclxuIiwgX19mdW5jX18pOwogCQlyZXR1cm4gLUVGQVVMVDsKIAl9CiAKQEAg LTE4NzksOSArMTg1Myw5IEBAIHN0YXRpYyBzc2l6ZV90IG1lNDAwMF9hb193cml0ZV9zaW5nKHN0 cnUKIH0KIAogc3RhdGljIHNzaXplX3QgbWU0MDAwX2FvX3dyaXRlX3dyYXAoc3RydWN0IGZpbGUg KmZpbGVwLCBjb25zdCBjaGFyICpidWZmLAotCQkJCSAgICBzaXplX3QgY250LCBsb2ZmX3QgKiBv ZmZwKQorCQkJCSAgICBzaXplX3QgY250LCBsb2ZmX3QgKm9mZnApCiB7Ci0JbWU0MDAwX2FvX2Nv bnRleHRfdCAqYW9fY29udGV4dCA9IGZpbGVwLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IG1lNDAw MF9hb19jb250ZXh0ICphb19jb250ZXh0ID0gZmlsZXAtPnByaXZhdGVfZGF0YTsKIAlzaXplX3Qg aTsKIAl1MzIgdmFsdWU7CiAJdTMyIHRtcDsKQEAgLTE4OTMsMTMgKzE4NjcsMTMgQEAgc3RhdGlj IHNzaXplX3QgbWU0MDAwX2FvX3dyaXRlX3dyYXAoc3RydQogCS8qIENoZWNrIGlmIGEgY29udmVy c2lvbiBpcyBhbHJlYWR5IHJ1bm5pbmcgKi8KIAlpZiAoaW5sKGFvX2NvbnRleHQtPnN0YXR1c19y ZWcpICYgTUU0MDAwX0FPX1NUQVRVU19CSVRfRlNNKSB7CiAJCXByaW50ayhLRVJOX0VSUgotCQkg ICAgICAgIk1FNDAwMDptZTQwMDBfYW9fd3JpdGVfd3JhcCgpOlRoZXJlIGlzIGFscmVhZHkgYSBj b252ZXJzaW9uIHJ1bm5pbmdcbiIpOworCQkgICAgICAgIiVzOlRoZXJlIGlzIGFscmVhZHkgYSBj b252ZXJzaW9uIHJ1bm5pbmdcbiIsIF9fZnVuY19fKTsKIAkJcmV0dXJuIC1FQlVTWTsKIAl9CiAK IAlpZiAoY291bnQgPiBNRTQwMDBfQU9fRklGT19DT1VOVCkgewogCQlwcmludGsoS0VSTl9FUlIK LQkJICAgICAgICJtZTQwMDBfYW9fd3JpdGVfd3JhcCgpOkNhbid0IGxvYWQgbW9yZSB0aGFuICVk IHZhbHVlc1xuIiwKKwkJICAgICAgICIlczpDYW4ndCBsb2FkIG1vcmUgdGhhbiAlZCB2YWx1ZXNc biIsIF9fZnVuY19fLAogCQkgICAgICAgTUU0MDAwX0FPX0ZJRk9fQ09VTlQpOwogCQlyZXR1cm4g LUVOT1NQQzsKIAl9CkBAIC0xOTE0LDcgKzE4ODgsNyBAQCBzdGF0aWMgc3NpemVfdCBtZTQwMDBf YW9fd3JpdGVfd3JhcChzdHJ1CiAJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKIAkJaWYg KGdldF91c2VyKHZhbHVlLCBidWZmZXIgKyBpKSkgewogCQkJcHJpbnRrKEtFUk5fRVJSCi0JCQkg ICAgICAgIm1lNDAwMF9hb193cml0ZV9zaW5nbGUoKTpDYW5ub3QgY29weSBkYXRhIGZyb20gdXNl clxuIik7CisJCQkgICAgICAgIiVzOkNhbm5vdCBjb3B5IGRhdGEgZnJvbSB1c2VyXG4iLCBfX2Z1 bmNfXyk7CiAJCQlyZXR1cm4gLUVGQVVMVDsKIAkJfQogCQlpZiAoKChhb19jb250ZXh0LT5maWZv X3JlZyAmIDB4RkYpID09IE1FNDAwMF9BT18wMV9GSUZPX1JFRykKQEAgLTE5MjgsOSArMTkwMiw5 IEBAIHN0YXRpYyBzc2l6ZV90IG1lNDAwMF9hb193cml0ZV93cmFwKHN0cnUKIH0KIAogc3RhdGlj IHNzaXplX3QgbWU0MDAwX2FvX3dyaXRlX2NvbnQoc3RydWN0IGZpbGUgKmZpbGVwLCBjb25zdCBj aGFyICpidWZmLAotCQkJCSAgICBzaXplX3QgY250LCBsb2ZmX3QgKiBvZmZwKQorCQkJCSAgICBz aXplX3QgY250LCBsb2ZmX3QgKm9mZnApCiB7Ci0JbWU0MDAwX2FvX2NvbnRleHRfdCAqYW9fY29u dGV4dCA9IGZpbGVwLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IG1lNDAwMF9hb19jb250ZXh0ICph b19jb250ZXh0ID0gZmlsZXAtPnByaXZhdGVfZGF0YTsKIAljb25zdCB1MTYgKmJ1ZmZlciA9IChj b25zdCB1MTYgKilidWZmOwogCXNpemVfdCBjb3VudCA9IGNudCAvIDI7CiAJdW5zaWduZWQgbG9u ZyBmbGFnczsKQEAgLTIxNTQsOSArMjEyOCw5IEBAIHN0YXRpYyBzc2l6ZV90IG1lNDAwMF9hb193 cml0ZV9jb250KHN0cnUKIAlyZXR1cm4gMiAqIHJldDsKIH0KIAotc3RhdGljIHVuc2lnbmVkIGlu dCBtZTQwMDBfYW9fcG9sbF9jb250KHN0cnVjdCBmaWxlICpmaWxlX3AsIHBvbGxfdGFibGUgKiB3 YWl0KQorc3RhdGljIHVuc2lnbmVkIGludCBtZTQwMDBfYW9fcG9sbF9jb250KHN0cnVjdCBmaWxl ICpmaWxlX3AsIHBvbGxfdGFibGUgKndhaXQpCiB7Ci0JbWU0MDAwX2FvX2NvbnRleHRfdCAqYW9f Y29udGV4dDsKKwlzdHJ1Y3QgbWU0MDAwX2FvX2NvbnRleHQgKmFvX2NvbnRleHQ7CiAJdW5zaWdu ZWQgbG9uZyBtYXNrID0gMDsKIAogCUNBTExfUERFQlVHKCJtZTQwMDBfYW9fcG9sbF9jb250KCkg aXMgZXhlY3V0ZWRcbiIpOwpAQCAtMjE3Nyw3ICsyMTUxLDcgQEAgc3RhdGljIHVuc2lnbmVkIGlu dCBtZTQwMDBfYW9fcG9sbF9jb250KAogc3RhdGljIGludCBtZTQwMDBfYW9fZnN5bmNfY29udChz dHJ1Y3QgZmlsZSAqZmlsZV9wLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnlfcCwKIAkJCQlpbnQgZGF0 YXN5bmMpCiB7Ci0JbWU0MDAwX2FvX2NvbnRleHRfdCAqYW9fY29udGV4dDsKKwlzdHJ1Y3QgbWU0 MDAwX2FvX2NvbnRleHQgKmFvX2NvbnRleHQ7CiAJd2FpdF9xdWV1ZV9oZWFkX3QgcXVldWU7CiAK IAlDQUxMX1BERUJVRygibWU0MDAwX2FvX2ZzeW5jX2NvbnQoKSBpcyBleGVjdXRlZFxuIik7CkBA IC0yMTg3LDE1ICsyMTYxLDE5IEBAIHN0YXRpYyBpbnQgbWU0MDAwX2FvX2ZzeW5jX2NvbnQoc3Ry dWN0IGYKIAogCXdoaWxlIChpbmwoYW9fY29udGV4dC0+c3RhdHVzX3JlZykgJiBNRTQwMDBfQU9f U1RBVFVTX0JJVF9GU00pIHsKIAkJaW50ZXJydXB0aWJsZV9zbGVlcF9vbl90aW1lb3V0KCZxdWV1 ZSwgMSk7CisJCQl3YWl0X2V2ZW50X2ludGVycnVwdGlibGVfdGltZW91dChxdWV1ZSwKKwkJCSEo aW5sKGFvX2NvbnRleHQtPnN0YXR1c19yZWcpICYgTUU0MDAwX0FPX1NUQVRVU19CSVRfRlNNKSwK KwkJCTEpOwogCQlpZiAoYW9fY29udGV4dC0+cGlwZV9mbGFnKSB7CiAJCQlwcmludGsoS0VSTl9F UlIKLQkJCSAgICAgICAibWU0MDAwX2FvX2ZzeW5jX2NvbnQoKTpCcm9rZW4gcGlwZSBkZXRlY3Rl ZFxuIik7CisJCQkgICAgICAgIiVzOkJyb2tlbiBwaXBlIGRldGVjdGVkXG4iLCBfX2Z1bmNfXyk7 CiAJCQlyZXR1cm4gLUVQSVBFOwogCQl9CiAKIAkJaWYgKHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQp KSB7CiAJCQlwcmludGsoS0VSTl9FUlIKLQkJCSAgICAgICAibWU0MDAwX2FvX2ZzeW5jX2NvbnQo KTpXYWl0IG9uIHN0YXRlIG1hY2hpbmUgaW50ZXJydXB0ZWRcbiIpOworCQkJICAgICAgICIlczpX YWl0IG9uIHN0YXRlIG1hY2hpbmUgaW50ZXJydXB0ZWRcbiIsCisJCQkgICAgICAgX19mdW5jX18p OwogCQkJcmV0dXJuIC1FSU5UUjsKIAkJfQogCX0KQEAgLTIyMDYsNyArMjE4NCw3IEBAIHN0YXRp YyBpbnQgbWU0MDAwX2FvX2ZzeW5jX2NvbnQoc3RydWN0IGYKIHN0YXRpYyBpbnQgbWU0MDAwX2Fv X2lvY3RsX3Npbmcoc3RydWN0IGlub2RlICppbm9kZV9wLCBzdHJ1Y3QgZmlsZSAqZmlsZV9wLAog CQkJCXVuc2lnbmVkIGludCBzZXJ2aWNlLCB1bnNpZ25lZCBsb25nIGFyZykKIHsKLQltZTQwMDBf YW9fY29udGV4dF90ICphb19jb250ZXh0OworCXN0cnVjdCBtZTQwMDBfYW9fY29udGV4dCAqYW9f Y29udGV4dDsKIAogCUNBTExfUERFQlVHKCJtZTQwMDBfYW9faW9jdGxfc2luZygpIGlzIGV4ZWN1 dGVkXG4iKTsKIApAQCAtMjIyOSw3ICsyMjA3LDcgQEAgc3RhdGljIGludCBtZTQwMDBfYW9faW9j dGxfc2luZyhzdHJ1Y3QgaQogCWNhc2UgTUU0MDAwX0FPX1BSRUxPQURfVVBEQVRFOgogCQlyZXR1 cm4gbWU0MDAwX2FvX3ByZWxvYWRfdXBkYXRlKGFvX2NvbnRleHQpOwogCWNhc2UgTUU0MDAwX0dF VF9VU0VSX0lORk86Ci0JCXJldHVybiBtZTQwMDBfZ2V0X3VzZXJfaW5mbygobWU0MDAwX3VzZXJf aW5mb190ICopIGFyZywKKwkJcmV0dXJuIG1lNDAwMF9nZXRfdXNlcl9pbmZvKChzdHJ1Y3QgbWU0 MDAwX3VzZXJfaW5mbyAqKWFyZywKIAkJCQkJICAgIGFvX2NvbnRleHQtPmJvYXJkX2luZm8pOwog CWNhc2UgTUU0MDAwX0FPX1NJTVVMVEFORU9VU19FWF9UUklHOgogCQlyZXR1cm4gbWU0MDAwX2Fv X3NpbXVsdGFuZW91c19leF90cmlnKGFvX2NvbnRleHQpOwpAQCAtMjIzOSw4ICsyMjE3LDkgQEAg c3RhdGljIGludCBtZTQwMDBfYW9faW9jdGxfc2luZyhzdHJ1Y3QgaQogCQlyZXR1cm4gbWU0MDAw X2FvX3NpbXVsdGFuZW91c19kaXNhYmxlKGFvX2NvbnRleHQpOwogCWNhc2UgTUU0MDAwX0FPX1NJ TVVMVEFORU9VU19VUERBVEU6CiAJCXJldHVybgotCQkgICAgbWU0MDAwX2FvX3NpbXVsdGFuZW91 c191cGRhdGUoKG1lNDAwMF9hb19jaGFubmVsX2xpc3RfdCAqKQotCQkJCQkJICBhcmcsIGFvX2Nv bnRleHQpOworCQkgICAgbWU0MDAwX2FvX3NpbXVsdGFuZW91c191cGRhdGUoCisJCSAgICAJCShz dHJ1Y3QgbWU0MDAwX2FvX2NoYW5uZWxfbGlzdCAqKWFyZywKKwkJCQlhb19jb250ZXh0KTsKIAlj YXNlIE1FNDAwMF9BT19FWF9UUklHX1RJTUVPVVQ6CiAJCXJldHVybiBtZTQwMDBfYW9fZXhfdHJp Z190aW1lb3V0KCh1bnNpZ25lZCBsb25nICopYXJnLAogCQkJCQkJIGFvX2NvbnRleHQpOwpAQCAt MjI1OCw3ICsyMjM3LDcgQEAgc3RhdGljIGludCBtZTQwMDBfYW9faW9jdGxfc2luZyhzdHJ1Y3Qg aQogc3RhdGljIGludCBtZTQwMDBfYW9faW9jdGxfd3JhcChzdHJ1Y3QgaW5vZGUgKmlub2RlX3As IHN0cnVjdCBmaWxlICpmaWxlX3AsCiAJCQkJdW5zaWduZWQgaW50IHNlcnZpY2UsIHVuc2lnbmVk IGxvbmcgYXJnKQogewotCW1lNDAwMF9hb19jb250ZXh0X3QgKmFvX2NvbnRleHQ7CisJc3RydWN0 IG1lNDAwMF9hb19jb250ZXh0ICphb19jb250ZXh0OwogCiAJQ0FMTF9QREVCVUcoIm1lNDAwMF9h b19pb2N0bF93cmFwKCkgaXMgZXhlY3V0ZWRcbiIpOwogCkBAIC0yMjg3LDcgKzIyNjYsNyBAQCBz dGF0aWMgaW50IG1lNDAwMF9hb19pb2N0bF93cmFwKHN0cnVjdCBpCiAJY2FzZSBNRTQwMDBfQU9f RVhfVFJJR19ESVNBQkxFOgogCQlyZXR1cm4gbWU0MDAwX2FvX2V4X3RyaWdfZGlzYWJsZShhb19j b250ZXh0KTsKIAljYXNlIE1FNDAwMF9HRVRfVVNFUl9JTkZPOgotCQlyZXR1cm4gbWU0MDAwX2dl dF91c2VyX2luZm8oKG1lNDAwMF91c2VyX2luZm9fdCAqKSBhcmcsCisJCXJldHVybiBtZTQwMDBf Z2V0X3VzZXJfaW5mbygoc3RydWN0IG1lNDAwMF91c2VyX2luZm8gKilhcmcsCiAJCQkJCSAgICBh b19jb250ZXh0LT5ib2FyZF9pbmZvKTsKIAljYXNlIE1FNDAwMF9BT19GU01fU1RBVEU6CiAJCXJl dHVybiBtZTQwMDBfYW9fZnNtX3N0YXRlKChpbnQgKilhcmcsIGFvX2NvbnRleHQpOwpAQCAtMjMx MCw3ICsyMjg5LDcgQEAgc3RhdGljIGludCBtZTQwMDBfYW9faW9jdGxfd3JhcChzdHJ1Y3QgaQog c3RhdGljIGludCBtZTQwMDBfYW9faW9jdGxfY29udChzdHJ1Y3QgaW5vZGUgKmlub2RlX3AsIHN0 cnVjdCBmaWxlICpmaWxlX3AsCiAJCQkJdW5zaWduZWQgaW50IHNlcnZpY2UsIHVuc2lnbmVkIGxv bmcgYXJnKQogewotCW1lNDAwMF9hb19jb250ZXh0X3QgKmFvX2NvbnRleHQ7CisJc3RydWN0IG1l NDAwMF9hb19jb250ZXh0ICphb19jb250ZXh0OwogCiAJQ0FMTF9QREVCVUcoIm1lNDAwMF9hb19p b2N0bF9jb250KCkgaXMgZXhlY3V0ZWRcbiIpOwogCkBAIC0yMzQ1LDcgKzIzMjQsNyBAQCBzdGF0 aWMgaW50IG1lNDAwMF9hb19pb2N0bF9jb250KHN0cnVjdCBpCiAJY2FzZSBNRTQwMDBfQU9fRlNN X1NUQVRFOgogCQlyZXR1cm4gbWU0MDAwX2FvX2ZzbV9zdGF0ZSgoaW50ICopYXJnLCBhb19jb250 ZXh0KTsKIAljYXNlIE1FNDAwMF9HRVRfVVNFUl9JTkZPOgotCQlyZXR1cm4gbWU0MDAwX2dldF91 c2VyX2luZm8oKG1lNDAwMF91c2VyX2luZm9fdCAqKSBhcmcsCisJCXJldHVybiBtZTQwMDBfZ2V0 X3VzZXJfaW5mbygoc3RydWN0IG1lNDAwMF91c2VyX2luZm8gKilhcmcsCiAJCQkJCSAgICBhb19j b250ZXh0LT5ib2FyZF9pbmZvKTsKIAljYXNlIE1FNDAwMF9BT19TWU5DSFJPTk9VU19FWF9UUklH OgogCQlyZXR1cm4gbWU0MDAwX2FvX3N5bmNocm9ub3VzX2V4X3RyaWcoYW9fY29udGV4dCk7CkBA IC0yMzYyLDcgKzIzNDEsOCBAQCBzdGF0aWMgaW50IG1lNDAwMF9hb19pb2N0bF9jb250KHN0cnVj dCBpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbWU0MDAwX2FvX3N0YXJ0KHVuc2lnbmVk IGxvbmcgKmFyZywgbWU0MDAwX2FvX2NvbnRleHRfdCAqIGFvX2NvbnRleHQpCitzdGF0aWMgaW50 IG1lNDAwMF9hb19zdGFydCh1bnNpZ25lZCBsb25nICphcmcsCisJCQkgICBzdHJ1Y3QgbWU0MDAw X2FvX2NvbnRleHQgKmFvX2NvbnRleHQpCiB7CiAJdTMyIHRtcDsKIAl3YWl0X3F1ZXVlX2hlYWRf dCBxdWV1ZTsKQEAgLTI0MTIsNyArMjM5Miw3IEBAIHN0YXRpYyBpbnQgbWU0MDAwX2FvX3N0YXJ0 KHVuc2lnbmVkIGxvbmcKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBtZTQwMDBfYW9fc3Rv cChtZTQwMDBfYW9fY29udGV4dF90ICogYW9fY29udGV4dCkKK3N0YXRpYyBpbnQgbWU0MDAwX2Fv X3N0b3Aoc3RydWN0IG1lNDAwMF9hb19jb250ZXh0ICphb19jb250ZXh0KQogewogCXUzMiB0bXA7 CiAJd2FpdF9xdWV1ZV9oZWFkX3QgcXVldWU7CkBAIC0yNDQ1LDcgKzI0MjUsNyBAQCBzdGF0aWMg aW50IG1lNDAwMF9hb19zdG9wKG1lNDAwMF9hb19jb250CiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRp YyBpbnQgbWU0MDAwX2FvX2ltbWVkaWF0ZV9zdG9wKG1lNDAwMF9hb19jb250ZXh0X3QgKiBhb19j b250ZXh0KQorc3RhdGljIGludCBtZTQwMDBfYW9faW1tZWRpYXRlX3N0b3Aoc3RydWN0IG1lNDAw MF9hb19jb250ZXh0ICphb19jb250ZXh0KQogewogCXUzMiB0bXA7CiAJd2FpdF9xdWV1ZV9oZWFk X3QgcXVldWU7CkBAIC0yNDc3LDggKzI0NTcsOCBAQCBzdGF0aWMgaW50IG1lNDAwMF9hb19pbW1l ZGlhdGVfc3RvcChtZTQwCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbWU0MDAwX2FvX3Rp bWVyX3NldF9kaXZpc29yKHUzMiAqIGFyZywKLQkJCQkgICAgICAgbWU0MDAwX2FvX2NvbnRleHRf dCAqIGFvX2NvbnRleHQpCitzdGF0aWMgaW50IG1lNDAwMF9hb190aW1lcl9zZXRfZGl2aXNvcih1 MzIgKmFyZywKKwkJCQkgICAgICAgc3RydWN0IG1lNDAwMF9hb19jb250ZXh0ICphb19jb250ZXh0 KQogewogCXUzMiBkaXZpc29yOwogCXUzMiB0bXA7CkBAIC0yNTE4LDcgKzI0OTgsNyBAQCBzdGF0 aWMgaW50IG1lNDAwMF9hb190aW1lcl9zZXRfZGl2aXNvcih1CiB9CiAKIHN0YXRpYyBpbnQgbWU0 MDAwX2FvX2V4X3RyaWdfc2V0X2VkZ2UoaW50ICphcmcsCi0JCQkJICAgICAgbWU0MDAwX2FvX2Nv bnRleHRfdCAqIGFvX2NvbnRleHQpCisJCQkJICAgICAgc3RydWN0IG1lNDAwMF9hb19jb250ZXh0 ICphb19jb250ZXh0KQogewogCWludCBtb2RlOwogCXUzMiB0bXA7CkBAIC0yNTY5LDcgKzI1NDks NyBAQCBzdGF0aWMgaW50IG1lNDAwMF9hb19leF90cmlnX3NldF9lZGdlKGluCiAJcmV0dXJuIDA7 CiB9CiAKLXN0YXRpYyBpbnQgbWU0MDAwX2FvX2V4X3RyaWdfZW5hYmxlKG1lNDAwMF9hb19jb250 ZXh0X3QgKiBhb19jb250ZXh0KQorc3RhdGljIGludCBtZTQwMDBfYW9fZXhfdHJpZ19lbmFibGUo c3RydWN0IG1lNDAwMF9hb19jb250ZXh0ICphb19jb250ZXh0KQogewogCXUzMiB0bXA7CiAJdW5z aWduZWQgbG9uZyBmbGFnczsKQEAgLTI1OTMsNyArMjU3Myw3IEBAIHN0YXRpYyBpbnQgbWU0MDAw X2FvX2V4X3RyaWdfZW5hYmxlKG1lNDAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBtZTQw MDBfYW9fZXhfdHJpZ19kaXNhYmxlKG1lNDAwMF9hb19jb250ZXh0X3QgKiBhb19jb250ZXh0KQor c3RhdGljIGludCBtZTQwMDBfYW9fZXhfdHJpZ19kaXNhYmxlKHN0cnVjdCBtZTQwMDBfYW9fY29u dGV4dCAqYW9fY29udGV4dCkKIHsKIAl1MzIgdG1wOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CkBA IC0yNjE3LDcgKzI1OTcsNyBAQCBzdGF0aWMgaW50IG1lNDAwMF9hb19leF90cmlnX2Rpc2FibGUo bWU0CiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbWU0MDAwX2FvX3NpbXVsdGFuZW91c19k aXNhYmxlKG1lNDAwMF9hb19jb250ZXh0X3QgKiBhb19jb250ZXh0KQorc3RhdGljIGludCBtZTQw MDBfYW9fc2ltdWx0YW5lb3VzX2Rpc2FibGUoc3RydWN0IG1lNDAwMF9hb19jb250ZXh0ICphb19j b250ZXh0KQogewogCXUzMiB0bXA7CiAKQEAgLTI2NDMsNyArMjYyMyw3IEBAIHN0YXRpYyBpbnQg bWU0MDAwX2FvX3NpbXVsdGFuZW91c19kaXNhYmwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGlu dCBtZTQwMDBfYW9fc2ltdWx0YW5lb3VzX2V4X3RyaWcobWU0MDAwX2FvX2NvbnRleHRfdCAqIGFv X2NvbnRleHQpCitzdGF0aWMgaW50IG1lNDAwMF9hb19zaW11bHRhbmVvdXNfZXhfdHJpZyhzdHJ1 Y3QgbWU0MDAwX2FvX2NvbnRleHQgKmFvX2NvbnRleHQpCiB7CiAJdTMyIHRtcDsKIApAQCAtMjY1 OSw3ICsyNjM5LDcgQEAgc3RhdGljIGludCBtZTQwMDBfYW9fc2ltdWx0YW5lb3VzX2V4X3RyaQog CXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG1lNDAwMF9hb19zaW11bHRhbmVvdXNfc3cobWU0 MDAwX2FvX2NvbnRleHRfdCAqIGFvX2NvbnRleHQpCitzdGF0aWMgaW50IG1lNDAwMF9hb19zaW11 bHRhbmVvdXNfc3coc3RydWN0IG1lNDAwMF9hb19jb250ZXh0ICphb19jb250ZXh0KQogewogCXUz MiB0bXA7CiAKQEAgLTI2NzUsMTMgKzI2NTUsMTMgQEAgc3RhdGljIGludCBtZTQwMDBfYW9fc2lt dWx0YW5lb3VzX3N3KG1lNAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG1lNDAwMF9hb19w cmVsb2FkKG1lNDAwMF9hb19jb250ZXh0X3QgKiBhb19jb250ZXh0KQorc3RhdGljIGludCBtZTQw MDBfYW9fcHJlbG9hZChzdHJ1Y3QgbWU0MDAwX2FvX2NvbnRleHQgKmFvX2NvbnRleHQpCiB7CiAJ Q0FMTF9QREVCVUcoIm1lNDAwMF9hb19wcmVsb2FkKCkgaXMgZXhlY3V0ZWRcbiIpOwogCXJldHVy biBtZTQwMDBfYW9fc2ltdWx0YW5lb3VzX3N3KGFvX2NvbnRleHQpOwogfQogCi1zdGF0aWMgaW50 IG1lNDAwMF9hb19wcmVsb2FkX3VwZGF0ZShtZTQwMDBfYW9fY29udGV4dF90ICogYW9fY29udGV4 dCkKK3N0YXRpYyBpbnQgbWU0MDAwX2FvX3ByZWxvYWRfdXBkYXRlKHN0cnVjdCBtZTQwMDBfYW9f Y29udGV4dCAqYW9fY29udGV4dCkKIHsKIAl1MzIgdG1wOwogCXUzMiBjdHJsOwpAQCAtMjcwNSwx MCArMjY4NSwxMiBAQCBzdGF0aWMgaW50IG1lNDAwMF9hb19wcmVsb2FkX3VwZGF0ZShtZTQwCiAJ CQlpZiAoIQogCQkJICAgICh0bXAgJgogCQkJICAgICAoMHgxIDw8Ci0JCQkgICAgICAoKChtZTQw MDBfYW9fY29udGV4dF90ICopIGVudHJ5KS0+aW5kZXggKyAxNikpKSkgeworCQkJICAgICAgKCgo c3RydWN0IG1lNDAwMF9hb19jb250ZXh0ICopZW50cnkpLT5pbmRleAorCQkJICAgICAgCQkJCQkg ICAgICArIDE2KSkpKSB7CiAJCQkJdG1wICY9CiAJCQkJICAgIH4oMHgxIDw8Ci0JCQkJICAgICAg KCgobWU0MDAwX2FvX2NvbnRleHRfdCAqKSBlbnRyeSktPmluZGV4KSk7CisJCQkJICAgICAgKCgo c3RydWN0IG1lNDAwMF9hb19jb250ZXh0ICopZW50cnkpLT4KKwkJCQkgICAgICAJCQkJCWluZGV4 KSk7CiAJCQl9CiAJCX0KIAl9CkBAIC0yNzE4LDE4ICsyNzAwLDE5IEBAIHN0YXRpYyBpbnQgbWU0 MDAwX2FvX3ByZWxvYWRfdXBkYXRlKG1lNDAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBt ZTQwMDBfYW9fc2ltdWx0YW5lb3VzX3VwZGF0ZShtZTQwMDBfYW9fY2hhbm5lbF9saXN0X3QgKiBh cmcsCi0JCQkJCSBtZTQwMDBfYW9fY29udGV4dF90ICogYW9fY29udGV4dCkKK3N0YXRpYyBpbnQg bWU0MDAwX2FvX3NpbXVsdGFuZW91c191cGRhdGUoc3RydWN0IG1lNDAwMF9hb19jaGFubmVsX2xp c3QgKmFyZywKKwkJCQkJIHN0cnVjdCBtZTQwMDBfYW9fY29udGV4dCAqYW9fY29udGV4dCkKIHsK IAlpbnQgZXJyOwogCWludCBpOwogCXUzMiB0bXA7Ci0JbWU0MDAwX2FvX2NoYW5uZWxfbGlzdF90 IGNoYW5uZWxzOworCXN0cnVjdCBtZTQwMDBfYW9fY2hhbm5lbF9saXN0IGNoYW5uZWxzOwogCiAJ Q0FMTF9QREVCVUcoIm1lNDAwMF9hb19zaW11bHRhbmVvdXNfdXBkYXRlKCkgaXMgZXhlY3V0ZWRc biIpOwogCiAJLyogQ29weSBkYXRhIGZyb20gdXNlciAqLwotCWVyciA9IGNvcHlfZnJvbV91c2Vy KCZjaGFubmVscywgYXJnLCBzaXplb2YobWU0MDAwX2FvX2NoYW5uZWxfbGlzdF90KSk7CisJZXJy ID0gY29weV9mcm9tX3VzZXIoJmNoYW5uZWxzLCBhcmcsCisJCQlzaXplb2Yoc3RydWN0IG1lNDAw MF9hb19jaGFubmVsX2xpc3QpKTsKIAlpZiAoZXJyKSB7CiAJCXByaW50ayhLRVJOX0VSUgogCQkg ICAgICAgIk1FNDAwMDptZTQwMDBfYW9fc2ltdWx0YW5lb3VzX3VwZGF0ZSgpOkNhbid0IGNvcHkg Y29tbWFuZFxuIik7CkBAIC0yNzM3LDEzICsyNzIwLDEyIEBAIHN0YXRpYyBpbnQgbWU0MDAwX2Fv X3NpbXVsdGFuZW91c191cGRhdGUKIAl9CiAKIAljaGFubmVscy5saXN0ID0KLQkgICAga21hbGxv YyhzaXplb2YodW5zaWduZWQgbG9uZykgKiBjaGFubmVscy5jb3VudCwgR0ZQX0tFUk5FTCk7CisJ ICAgIGt6YWxsb2Moc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICogY2hhbm5lbHMuY291bnQsIEdGUF9L RVJORUwpOwogCWlmICghY2hhbm5lbHMubGlzdCkgewogCQlwcmludGsoS0VSTl9FUlIKIAkJICAg ICAgICJNRTQwMDA6bWU0MDAwX2FvX3NpbXVsdGFuZW91c191cGRhdGUoKTpDYW4ndCBnZXQgYnVm ZmVyXG4iKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQotCW1lbXNldChjaGFubmVscy5saXN0LCAw LCBzaXplb2YodW5zaWduZWQgbG9uZykgKiBjaGFubmVscy5jb3VudCk7CiAKIAkvKiBDb3B5IGNo YW5uZWwgbGlzdCBmcm9tIHVzZXIgKi8KIAllcnIgPQpAQCAtMjc3Nyw3ICsyNzU5LDcgQEAgc3Rh dGljIGludCBtZTQwMDBfYW9fc2ltdWx0YW5lb3VzX3VwZGF0ZQogCXJldHVybiAwOwogfQogCi1z dGF0aWMgaW50IG1lNDAwMF9hb19zeW5jaHJvbm91c19leF90cmlnKG1lNDAwMF9hb19jb250ZXh0 X3QgKiBhb19jb250ZXh0KQorc3RhdGljIGludCBtZTQwMDBfYW9fc3luY2hyb25vdXNfZXhfdHJp ZyhzdHJ1Y3QgbWU0MDAwX2FvX2NvbnRleHQgKmFvX2NvbnRleHQpCiB7CiAJdTMyIHRtcDsKIAl1 bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtMjgxMyw3ICsyNzk1LDcgQEAgc3RhdGljIGludCBtZTQw MDBfYW9fc3luY2hyb25vdXNfZXhfdHJpZwogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG1l NDAwMF9hb19zeW5jaHJvbm91c19zdyhtZTQwMDBfYW9fY29udGV4dF90ICogYW9fY29udGV4dCkK K3N0YXRpYyBpbnQgbWU0MDAwX2FvX3N5bmNocm9ub3VzX3N3KHN0cnVjdCBtZTQwMDBfYW9fY29u dGV4dCAqYW9fY29udGV4dCkKIHsKIAl1MzIgdG1wOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CkBA IC0yODQ4LDEzICsyODMwLDEzIEBAIHN0YXRpYyBpbnQgbWU0MDAwX2FvX3N5bmNocm9ub3VzX3N3 KG1lNDAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBtZTQwMDBfYW9fc3luY2hyb25vdXNf ZGlzYWJsZShtZTQwMDBfYW9fY29udGV4dF90ICogYW9fY29udGV4dCkKK3N0YXRpYyBpbnQgbWU0 MDAwX2FvX3N5bmNocm9ub3VzX2Rpc2FibGUoc3RydWN0IG1lNDAwMF9hb19jb250ZXh0ICphb19j b250ZXh0KQogewogCXJldHVybiBtZTQwMDBfYW9fc2ltdWx0YW5lb3VzX2Rpc2FibGUoYW9fY29u dGV4dCk7CiB9CiAKIHN0YXRpYyBpbnQgbWU0MDAwX2FvX2dldF9mcmVlX2J1ZmZlcih1bnNpZ25l ZCBsb25nICphcmcsCi0JCQkJICAgICBtZTQwMDBfYW9fY29udGV4dF90ICogYW9fY29udGV4dCkK KwkJCQkgICAgIHN0cnVjdCBtZTQwMDBfYW9fY29udGV4dCAqYW9fY29udGV4dCkKIHsKIAl1bnNp Z25lZCBsb25nIGM7CiAJaW50IGVycjsKQEAgLTI4NjQsNyArMjg0Niw3IEBAIHN0YXRpYyBpbnQg bWU0MDAwX2FvX2dldF9mcmVlX2J1ZmZlcih1bnMKIAllcnIgPSBjb3B5X3RvX3VzZXIoYXJnLCAm Yywgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKTsKIAlpZiAoZXJyKSB7CiAJCXByaW50ayhLRVJOX0VS UgotCQkgICAgICAgIk1FNDAwMDptZTQwMDBfYW9fZ2V0X2ZyZWVfYnVmZmVyKCk6Q2FuJ3QgY29w eSB0byB1c2VyIHNwYWNlXG4iKTsKKwkJICAgICAgICIlczpDYW4ndCBjb3B5IHRvIHVzZXIgc3Bh Y2VcbiIsIF9fZnVuY19fKTsKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJfQogCkBAIC0yODcyLDcgKzI4 NTQsNyBAQCBzdGF0aWMgaW50IG1lNDAwMF9hb19nZXRfZnJlZV9idWZmZXIodW5zCiB9CiAKIHN0 YXRpYyBpbnQgbWU0MDAwX2FvX2V4X3RyaWdfdGltZW91dCh1bnNpZ25lZCBsb25nICphcmcsCi0J CQkJICAgICBtZTQwMDBfYW9fY29udGV4dF90ICogYW9fY29udGV4dCkKKwkJCQkgICAgIHN0cnVj dCBtZTQwMDBfYW9fY29udGV4dCAqYW9fY29udGV4dCkKIHsKIAl1MzIgdG1wOwogCXdhaXRfcXVl dWVfaGVhZF90IHF1ZXVlOwpAQCAtMjkyOCw3ICsyOTEwLDcgQEAgc3RhdGljIGludCBtZTQwMDBf YW9fZXhfdHJpZ190aW1lb3V0KHVucwogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG1lNDAw MF9hb19lbmFibGVfZG8obWU0MDAwX2FvX2NvbnRleHRfdCAqIGFvX2NvbnRleHQpCitzdGF0aWMg aW50IG1lNDAwMF9hb19lbmFibGVfZG8oc3RydWN0IG1lNDAwMF9hb19jb250ZXh0ICphb19jb250 ZXh0KQogewogCXUzMiB0bXA7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTI5NTksNyArMjk0 MSw3IEBAIHN0YXRpYyBpbnQgbWU0MDAwX2FvX2VuYWJsZV9kbyhtZTQwMDBfYW8KIAlyZXR1cm4g MDsKIH0KIAotc3RhdGljIGludCBtZTQwMDBfYW9fZGlzYWJsZV9kbyhtZTQwMDBfYW9fY29udGV4 dF90ICogYW9fY29udGV4dCkKK3N0YXRpYyBpbnQgbWU0MDAwX2FvX2Rpc2FibGVfZG8oc3RydWN0 IG1lNDAwMF9hb19jb250ZXh0ICphb19jb250ZXh0KQogewogCXUzMiB0bXA7CiAJdW5zaWduZWQg bG9uZyBmbGFnczsKQEAgLTI5ODksNyArMjk3MSw3IEBAIHN0YXRpYyBpbnQgbWU0MDAwX2FvX2Rp c2FibGVfZG8obWU0MDAwX2EKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBtZTQwMDBfYW9f ZnNtX3N0YXRlKGludCAqYXJnLCBtZTQwMDBfYW9fY29udGV4dF90ICogYW9fY29udGV4dCkKK3N0 YXRpYyBpbnQgbWU0MDAwX2FvX2ZzbV9zdGF0ZShpbnQgKmFyZywgc3RydWN0IG1lNDAwMF9hb19j b250ZXh0ICphb19jb250ZXh0KQogewogCXVuc2lnbmVkIGxvbmcgdG1wOwogCkBAIC0zMDEyLDkg KzI5OTQsOSBAQCBzdGF0aWMgaW50IG1lNDAwMF9hb19mc21fc3RhdGUoaW50ICphcmcsCiAJcmV0 dXJuIDA7CiB9CiAKLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBbmFsb2cgaW5w dXQgc3R1ZmYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tIEFuYWxvZyBpbnB1dCBzdHVmZiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKi8KIAotc3RhdGljIGludCBtZTQwMDBfYWlfcHJlcGFyZShtZTQwMDBf YWlfY29udGV4dF90ICogYWlfY29udGV4dCkKK3N0YXRpYyBpbnQgbWU0MDAwX2FpX3ByZXBhcmUo c3RydWN0IG1lNDAwMF9haV9jb250ZXh0ICphaV9jb250ZXh0KQogewogCXdhaXRfcXVldWVfaGVh ZF90IHF1ZXVlOwogCWludCBlcnI7CkBAIC0zMDU3LDE0ICszMDM5LDEzIEBAIHN0YXRpYyBpbnQg bWU0MDAwX2FpX3ByZXBhcmUobWU0MDAwX2FpX2MKIAogCQkvKiBBbGxvY2F0ZSBjaXJjdWxhciBi dWZmZXIgKi8KIAkJYWlfY29udGV4dC0+Y2lyY19idWYuYnVmID0KLQkJICAgIGttYWxsb2MoTUU0 MDAwX0FJX0JVRkZFUl9TSVpFLCBHRlBfS0VSTkVMKTsKKwkJICAgIGt6YWxsb2MoTUU0MDAwX0FJ X0JVRkZFUl9TSVpFLCBHRlBfS0VSTkVMKTsKIAkJaWYgKCFhaV9jb250ZXh0LT5jaXJjX2J1Zi5i dWYpIHsKIAkJCXByaW50ayhLRVJOX0VSUgogCQkJICAgICAgICJNRTQwMDA6bWU0MDAwX2FpX3By ZXBhcmUoKTpDYW4ndCBnZXQgY2lyY3VsYXIgYnVmZmVyXG4iKTsKIAkJCWZyZWVfaXJxKGFpX2Nv bnRleHQtPmlycSwgYWlfY29udGV4dCk7CiAJCQlyZXR1cm4gLUVOT01FTTsKIAkJfQotCQltZW1z ZXQoYWlfY29udGV4dC0+Y2lyY19idWYuYnVmLCAwLCBNRTQwMDBfQUlfQlVGRkVSX1NJWkUpOwog CiAJCS8qIENsZWFyIHRoZSBjaXJjdWxhciBidWZmZXIgKi8KIAkJYWlfY29udGV4dC0+Y2lyY19i dWYuaGVhZCA9IDA7CkBAIC0zMDc0LDcgKzMwNTUsNyBAQCBzdGF0aWMgaW50IG1lNDAwMF9haV9w cmVwYXJlKG1lNDAwMF9haV9jCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbWU0MDAwX2Fp X3Jlc2V0KG1lNDAwMF9haV9jb250ZXh0X3QgKiBhaV9jb250ZXh0KQorc3RhdGljIGludCBtZTQw MDBfYWlfcmVzZXQoc3RydWN0IG1lNDAwMF9haV9jb250ZXh0ICphaV9jb250ZXh0KQogewogCXdh aXRfcXVldWVfaGVhZF90IHF1ZXVlOwogCXUzMiB0bXA7CkBAIC0zMTM5LDcgKzMxMjAsNyBAQCBz dGF0aWMgaW50IG1lNDAwMF9haV9yZXNldChtZTQwMDBfYWlfY29uCiBzdGF0aWMgaW50IG1lNDAw MF9haV9pb2N0bF9zaW5nKHN0cnVjdCBpbm9kZSAqaW5vZGVfcCwgc3RydWN0IGZpbGUgKmZpbGVf cCwKIAkJCQl1bnNpZ25lZCBpbnQgc2VydmljZSwgdW5zaWduZWQgbG9uZyBhcmcpCiB7Ci0JbWU0 MDAwX2FpX2NvbnRleHRfdCAqYWlfY29udGV4dDsKKwlzdHJ1Y3QgbWU0MDAwX2FpX2NvbnRleHQg KmFpX2NvbnRleHQ7CiAKIAlDQUxMX1BERUJVRygibWU0MDAwX2FpX2lvY3RsX3NpbmcoKSBpcyBl eGVjdXRlZFxuIik7CiAKQEAgLTMxNTcsMTYgKzMxMzgsMTcgQEAgc3RhdGljIGludCBtZTQwMDBf YWlfaW9jdGxfc2luZyhzdHJ1Y3QgaQogCiAJc3dpdGNoIChzZXJ2aWNlKSB7CiAJY2FzZSBNRTQw MDBfQUlfU0lOR0xFOgotCQlyZXR1cm4gbWU0MDAwX2FpX3NpbmdsZSgobWU0MDAwX2FpX3Npbmds ZV90ICopIGFyZywgYWlfY29udGV4dCk7CisJCXJldHVybiBtZTQwMDBfYWlfc2luZ2xlKChzdHJ1 Y3QgbWU0MDAwX2FpX3NpbmdsZSAqKWFyZywKKwkJCQkJCQkJYWlfY29udGV4dCk7CiAJY2FzZSBN RTQwMDBfQUlfRVhfVFJJR19FTkFCTEU6CiAJCXJldHVybiBtZTQwMDBfYWlfZXhfdHJpZ19lbmFi bGUoYWlfY29udGV4dCk7CiAJY2FzZSBNRTQwMDBfQUlfRVhfVFJJR19ESVNBQkxFOgogCQlyZXR1 cm4gbWU0MDAwX2FpX2V4X3RyaWdfZGlzYWJsZShhaV9jb250ZXh0KTsKIAljYXNlIE1FNDAwMF9B SV9FWF9UUklHX1NFVFVQOgotCQlyZXR1cm4gbWU0MDAwX2FpX2V4X3RyaWdfc2V0dXAoKG1lNDAw MF9haV90cmlnZ2VyX3QgKikgYXJnLAorCQlyZXR1cm4gbWU0MDAwX2FpX2V4X3RyaWdfc2V0dXAo KHN0cnVjdCBtZTQwMDBfYWlfdHJpZ2dlciAqKWFyZywKIAkJCQkJICAgICAgIGFpX2NvbnRleHQp OwogCWNhc2UgTUU0MDAwX0dFVF9VU0VSX0lORk86Ci0JCXJldHVybiBtZTQwMDBfZ2V0X3VzZXJf aW5mbygobWU0MDAwX3VzZXJfaW5mb190ICopIGFyZywKKwkJcmV0dXJuIG1lNDAwMF9nZXRfdXNl cl9pbmZvKChzdHJ1Y3QgbWU0MDAwX3VzZXJfaW5mbyAqKWFyZywKIAkJCQkJICAgIGFpX2NvbnRl eHQtPmJvYXJkX2luZm8pOwogCWNhc2UgTUU0MDAwX0FJX09GRlNFVF9FTkFCTEU6CiAJCXJldHVy biBtZTQwMDBfYWlfb2Zmc2V0X2VuYWJsZShhaV9jb250ZXh0KTsKQEAgLTMxNzcsOSArMzE1OSwx MSBAQCBzdGF0aWMgaW50IG1lNDAwMF9haV9pb2N0bF9zaW5nKHN0cnVjdCBpCiAJY2FzZSBNRTQw MDBfQUlfRlVMTFNDQUxFX0RJU0FCTEU6CiAJCXJldHVybiBtZTQwMDBfYWlfZnVsbHNjYWxlX2Rp c2FibGUoYWlfY29udGV4dCk7CiAJY2FzZSBNRTQwMDBfQUlfRUVQUk9NX1JFQUQ6Ci0JCXJldHVy biBtZTQwMDBfZWVwcm9tX3JlYWQoKG1lNDAwMF9lZXByb21fdCAqKSBhcmcsIGFpX2NvbnRleHQp OworCQlyZXR1cm4gbWU0MDAwX2VlcHJvbV9yZWFkKChzdHJ1Y3QgbWU0MDAwX2VlcHJvbSAqKWFy ZywKKwkJCQkJCQkJYWlfY29udGV4dCk7CiAJY2FzZSBNRTQwMDBfQUlfRUVQUk9NX1dSSVRFOgot CQlyZXR1cm4gbWU0MDAwX2VlcHJvbV93cml0ZSgobWU0MDAwX2VlcHJvbV90ICopIGFyZywgYWlf Y29udGV4dCk7CisJCXJldHVybiBtZTQwMDBfZWVwcm9tX3dyaXRlKChzdHJ1Y3QgbWU0MDAwX2Vl cHJvbSAqKWFyZywKKwkJCQkJCQkJYWlfY29udGV4dCk7CiAJZGVmYXVsdDoKIAkJcHJpbnRrKEtF Uk5fRVJSCiAJCSAgICAgICAibWU0MDAwX2FpX2lvY3RsX3NpbmcoKTpJbnZhbGlkIHNlcnZpY2Ug bnVtYmVyXG4iKTsKQEAgLTMxODgsMTAgKzMxNzIsMTAgQEAgc3RhdGljIGludCBtZTQwMDBfYWlf aW9jdGxfc2luZyhzdHJ1Y3QgaQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG1lNDAwMF9h aV9zaW5nbGUobWU0MDAwX2FpX3NpbmdsZV90ICogYXJnLAotCQkJICAgIG1lNDAwMF9haV9jb250 ZXh0X3QgKiBhaV9jb250ZXh0KQorc3RhdGljIGludCBtZTQwMDBfYWlfc2luZ2xlKHN0cnVjdCBt ZTQwMDBfYWlfc2luZ2xlICphcmcsCisJCQkgICAgc3RydWN0IG1lNDAwMF9haV9jb250ZXh0ICph aV9jb250ZXh0KQogewotCW1lNDAwMF9haV9zaW5nbGVfdCBjbWQ7CisJc3RydWN0IG1lNDAwMF9h aV9zaW5nbGUgY21kOwogCWludCBlcnI7CiAJdTMyIHRtcDsKIAl3YWl0X3F1ZXVlX2hlYWRfdCBx dWV1ZTsKQEAgLTMyMDIsNyArMzE4Niw3IEBAIHN0YXRpYyBpbnQgbWU0MDAwX2FpX3NpbmdsZSht ZTQwMDBfYWlfc2kKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZxdWV1ZSk7CiAKIAkvKiBDb3B5IGRh dGEgZnJvbSB1c2VyICovCi0JZXJyID0gY29weV9mcm9tX3VzZXIoJmNtZCwgYXJnLCBzaXplb2Yo bWU0MDAwX2FpX3NpbmdsZV90KSk7CisJZXJyID0gY29weV9mcm9tX3VzZXIoJmNtZCwgYXJnLCBz aXplb2Yoc3RydWN0IG1lNDAwMF9haV9zaW5nbGUpKTsKIAlpZiAoZXJyKSB7CiAJCXByaW50ayhL RVJOX0VSUgogCQkgICAgICAgIk1FNDAwMDptZTQwMDBfYWlfc2luZ2xlKCk6Q2FuJ3QgY29weSBm cm9tIHVzZXIgc3BhY2VcbiIpOwpAQCAtMzMwMSw3ICszMjg1LDcgQEAgc3RhdGljIGludCBtZTQw MDBfYWlfc2luZ2xlKG1lNDAwMF9haV9zaQogCWNtZC52YWx1ZSA9IG1lNDAwMF9pbmwoYWlfY29u dGV4dC0+ZGF0YV9yZWcpICYgMHhGRkZGOwogCiAJLyogQ29weSByZXN1bHQgYmFjayB0byB1c2Vy ICovCi0JZXJyID0gY29weV90b191c2VyKGFyZywgJmNtZCwgc2l6ZW9mKG1lNDAwMF9haV9zaW5n bGVfdCkpOworCWVyciA9IGNvcHlfdG9fdXNlcihhcmcsICZjbWQsIHNpemVvZihzdHJ1Y3QgbWU0 MDAwX2FpX3NpbmdsZSkpOwogCWlmIChlcnIpIHsKIAkJcHJpbnRrKEtFUk5fRVJSCiAJCSAgICAg ICAiTUU0MDAwOm1lNDAwMF9haV9zaW5nbGUoKTpDYW4ndCBjb3B5IHRvIHVzZXIgc3BhY2VcbiIp OwpAQCAtMzMxNCw3ICszMjk4LDcgQEAgc3RhdGljIGludCBtZTQwMDBfYWlfc2luZ2xlKG1lNDAw MF9haV9zaQogc3RhdGljIGludCBtZTQwMDBfYWlfaW9jdGxfc3coc3RydWN0IGlub2RlICppbm9k ZV9wLCBzdHJ1Y3QgZmlsZSAqZmlsZV9wLAogCQkJICAgICAgdW5zaWduZWQgaW50IHNlcnZpY2Us IHVuc2lnbmVkIGxvbmcgYXJnKQogewotCW1lNDAwMF9haV9jb250ZXh0X3QgKmFpX2NvbnRleHQ7 CisJc3RydWN0IG1lNDAwMF9haV9jb250ZXh0ICphaV9jb250ZXh0OwogCiAJQ0FMTF9QREVCVUco Im1lNDAwMF9haV9pb2N0bF9zdygpIGlzIGV4ZWN1dGVkXG4iKTsKIApAQCAtMzMzMiw5ICszMzE2 LDExIEBAIHN0YXRpYyBpbnQgbWU0MDAwX2FpX2lvY3RsX3N3KHN0cnVjdCBpbm8KIAogCXN3aXRj aCAoc2VydmljZSkgewogCWNhc2UgTUU0MDAwX0FJX1NDX1NFVFVQOgotCQlyZXR1cm4gbWU0MDAw X2FpX3NjX3NldHVwKChtZTQwMDBfYWlfc2NfdCAqKSBhcmcsIGFpX2NvbnRleHQpOworCQlyZXR1 cm4gbWU0MDAwX2FpX3NjX3NldHVwKChzdHJ1Y3QgbWU0MDAwX2FpX3NjICopYXJnLAorCQkJCQkJ CQlhaV9jb250ZXh0KTsKIAljYXNlIE1FNDAwMF9BSV9DT05GSUc6Ci0JCXJldHVybiBtZTQwMDBf YWlfY29uZmlnKChtZTQwMDBfYWlfY29uZmlnX3QgKikgYXJnLCBhaV9jb250ZXh0KTsKKwkJcmV0 dXJuIG1lNDAwMF9haV9jb25maWcoKHN0cnVjdCBtZTQwMDBfYWlfY29uZmlnICopYXJnLAorCQkJ CQkJCQlhaV9jb250ZXh0KTsKIAljYXNlIE1FNDAwMF9BSV9TVEFSVDoKIAkJcmV0dXJuIG1lNDAw MF9haV9zdGFydChhaV9jb250ZXh0KTsKIAljYXNlIE1FNDAwMF9BSV9TVE9QOgpAQCAtMzM0NCwx OSArMzMzMCwyMCBAQCBzdGF0aWMgaW50IG1lNDAwMF9haV9pb2N0bF9zdyhzdHJ1Y3QgaW5vCiAJ Y2FzZSBNRTQwMDBfQUlfRlNNX1NUQVRFOgogCQlyZXR1cm4gbWU0MDAwX2FpX2ZzbV9zdGF0ZSgo aW50ICopYXJnLCBhaV9jb250ZXh0KTsKIAljYXNlIE1FNDAwMF9HRVRfVVNFUl9JTkZPOgotCQly ZXR1cm4gbWU0MDAwX2dldF91c2VyX2luZm8oKG1lNDAwMF91c2VyX2luZm9fdCAqKSBhcmcsCisJ CXJldHVybiBtZTQwMDBfZ2V0X3VzZXJfaW5mbygoc3RydWN0IG1lNDAwMF91c2VyX2luZm8gKilh cmcsCiAJCQkJCSAgICBhaV9jb250ZXh0LT5ib2FyZF9pbmZvKTsKIAljYXNlIE1FNDAwMF9BSV9F RVBST01fUkVBRDoKLQkJcmV0dXJuIG1lNDAwMF9lZXByb21fcmVhZCgobWU0MDAwX2VlcHJvbV90 ICopIGFyZywgYWlfY29udGV4dCk7CisJCXJldHVybiBtZTQwMDBfZWVwcm9tX3JlYWQoKHN0cnVj dCBtZTQwMDBfZWVwcm9tICopYXJnLAorCQkJCQkJCQlhaV9jb250ZXh0KTsKIAljYXNlIE1FNDAw MF9BSV9FRVBST01fV1JJVEU6Ci0JCXJldHVybiBtZTQwMDBfZWVwcm9tX3dyaXRlKChtZTQwMDBf ZWVwcm9tX3QgKikgYXJnLCBhaV9jb250ZXh0KTsKKwkJcmV0dXJuIG1lNDAwMF9lZXByb21fd3Jp dGUoKHN0cnVjdCBtZTQwMDBfZWVwcm9tICopYXJnLAorCQkJCQkJCQlhaV9jb250ZXh0KTsKIAlj YXNlIE1FNDAwMF9BSV9HRVRfQ09VTlRfQlVGRkVSOgogCQlyZXR1cm4gbWU0MDAwX2FpX2dldF9j b3VudF9idWZmZXIoKHVuc2lnbmVkIGxvbmcgKilhcmcsCiAJCQkJCQkgIGFpX2NvbnRleHQpOwog CWRlZmF1bHQ6CiAJCXByaW50ayhLRVJOX0VSUgotCQkgICAgICAgIk1FNDAwMDptZTQwMDBfYWlf aW9jdGxfc3coKTpJbnZhbGlkIHNlcnZpY2UgbnVtYmVyICVkXG4iLAotCQkgICAgICAgc2Vydmlj ZSk7CisJCSAgICAgICAiJXM6SW52YWxpZCBzZXJ2aWNlIG51bWJlciAlZFxuIiwgX19mdW5jX18s IHNlcnZpY2UpOwogCQlyZXR1cm4gLUVOT1RUWTsKIAl9CiAJcmV0dXJuIDA7CkBAIC0zMzY1LDcg KzMzNTIsNyBAQCBzdGF0aWMgaW50IG1lNDAwMF9haV9pb2N0bF9zdyhzdHJ1Y3QgaW5vCiBzdGF0 aWMgaW50IG1lNDAwMF9haV9pb2N0bF9leHQoc3RydWN0IGlub2RlICppbm9kZV9wLCBzdHJ1Y3Qg ZmlsZSAqZmlsZV9wLAogCQkJICAgICAgIHVuc2lnbmVkIGludCBzZXJ2aWNlLCB1bnNpZ25lZCBs b25nIGFyZykKIHsKLQltZTQwMDBfYWlfY29udGV4dF90ICphaV9jb250ZXh0OworCXN0cnVjdCBt ZTQwMDBfYWlfY29udGV4dCAqYWlfY29udGV4dDsKIAogCUNBTExfUERFQlVHKCJtZTQwMDBfYWlf aW9jdGxfZXh0KCkgaXMgZXhlY3V0ZWRcbiIpOwogCkBAIC0zMzgzLDkgKzMzNzAsMTEgQEAgc3Rh dGljIGludCBtZTQwMDBfYWlfaW9jdGxfZXh0KHN0cnVjdCBpbgogCiAJc3dpdGNoIChzZXJ2aWNl KSB7CiAJY2FzZSBNRTQwMDBfQUlfU0NfU0VUVVA6Ci0JCXJldHVybiBtZTQwMDBfYWlfc2Nfc2V0 dXAoKG1lNDAwMF9haV9zY190ICopIGFyZywgYWlfY29udGV4dCk7CisJCXJldHVybiBtZTQwMDBf YWlfc2Nfc2V0dXAoKHN0cnVjdCBtZTQwMDBfYWlfc2MgKilhcmcsCisJCQkJCQkJCWFpX2NvbnRl eHQpOwogCWNhc2UgTUU0MDAwX0FJX0NPTkZJRzoKLQkJcmV0dXJuIG1lNDAwMF9haV9jb25maWco KG1lNDAwMF9haV9jb25maWdfdCAqKSBhcmcsIGFpX2NvbnRleHQpOworCQlyZXR1cm4gbWU0MDAw X2FpX2NvbmZpZygoc3RydWN0IG1lNDAwMF9haV9jb25maWcgKilhcmcsCisJCQkJCQkJCWFpX2Nv bnRleHQpOwogCWNhc2UgTUU0MDAwX0FJX1NUQVJUOgogCQlyZXR1cm4gbWU0MDAwX2FpX3N0YXJ0 X2V4KCh1bnNpZ25lZCBsb25nICopYXJnLCBhaV9jb250ZXh0KTsKIAljYXNlIE1FNDAwMF9BSV9T VE9QOgpAQCAtMzM5NywyMCArMzM4NiwxOSBAQCBzdGF0aWMgaW50IG1lNDAwMF9haV9pb2N0bF9l eHQoc3RydWN0IGluCiAJY2FzZSBNRTQwMDBfQUlfRVhfVFJJR19ESVNBQkxFOgogCQlyZXR1cm4g bWU0MDAwX2FpX2V4X3RyaWdfZGlzYWJsZShhaV9jb250ZXh0KTsKIAljYXNlIE1FNDAwMF9BSV9F WF9UUklHX1NFVFVQOgotCQlyZXR1cm4gbWU0MDAwX2FpX2V4X3RyaWdfc2V0dXAoKG1lNDAwMF9h aV90cmlnZ2VyX3QgKikgYXJnLAorCQlyZXR1cm4gbWU0MDAwX2FpX2V4X3RyaWdfc2V0dXAoKHN0 cnVjdCBtZTQwMDBfYWlfdHJpZ2dlciAqKWFyZywKIAkJCQkJICAgICAgIGFpX2NvbnRleHQpOwog CWNhc2UgTUU0MDAwX0FJX0ZTTV9TVEFURToKIAkJcmV0dXJuIG1lNDAwMF9haV9mc21fc3RhdGUo KGludCAqKWFyZywgYWlfY29udGV4dCk7CiAJY2FzZSBNRTQwMDBfR0VUX1VTRVJfSU5GTzoKLQkJ cmV0dXJuIG1lNDAwMF9nZXRfdXNlcl9pbmZvKChtZTQwMDBfdXNlcl9pbmZvX3QgKikgYXJnLAor CQlyZXR1cm4gbWU0MDAwX2dldF91c2VyX2luZm8oKHN0cnVjdCBtZTQwMDBfdXNlcl9pbmZvICop YXJnLAogCQkJCQkgICAgYWlfY29udGV4dC0+Ym9hcmRfaW5mbyk7CiAJY2FzZSBNRTQwMDBfQUlf R0VUX0NPVU5UX0JVRkZFUjoKIAkJcmV0dXJuIG1lNDAwMF9haV9nZXRfY291bnRfYnVmZmVyKCh1 bnNpZ25lZCBsb25nICopYXJnLAogCQkJCQkJICBhaV9jb250ZXh0KTsKIAlkZWZhdWx0OgogCQlw cmludGsoS0VSTl9FUlIKLQkJICAgICAgICJNRTQwMDA6bWU0MDAwX2FpX2lvY3RsX2V4dCgpOklu dmFsaWQgc2VydmljZSBudW1iZXIgJWRcbiIsCi0JCSAgICAgICBzZXJ2aWNlKTsKKwkJICAgICAg ICIlczpJbnZhbGlkIHNlcnZpY2UgbnVtYmVyICVkXG4iLCBfX2Z1bmNfXyAsIHNlcnZpY2UpOwog CQlyZXR1cm4gLUVOT1RUWTsKIAl9CiAJcmV0dXJuIDA7CkBAIC0zNDE4LDcgKzM0MDYsNyBAQCBz dGF0aWMgaW50IG1lNDAwMF9haV9pb2N0bF9leHQoc3RydWN0IGluCiAKIHN0YXRpYyBpbnQgbWU0 MDAwX2FpX2Zhc3luYyhpbnQgZmQsIHN0cnVjdCBmaWxlICpmaWxlX3AsIGludCBtb2RlKQogewot CW1lNDAwMF9haV9jb250ZXh0X3QgKmFpX2NvbnRleHQ7CisJc3RydWN0IG1lNDAwMF9haV9jb250 ZXh0ICphaV9jb250ZXh0OwogCiAJQ0FMTF9QREVCVUcoIm1lNDAwMF9hb19mYXN5bmNfY29udCgp IGlzIGV4ZWN1dGVkXG4iKTsKIApAQCAtMzQyNiwxMCArMzQxNCwxMCBAQCBzdGF0aWMgaW50IG1l NDAwMF9haV9mYXN5bmMoaW50IGZkLCBzdHJ1CiAJcmV0dXJuIGZhc3luY19oZWxwZXIoZmQsIGZp bGVfcCwgbW9kZSwgJmFpX2NvbnRleHQtPmZhc3luY19wKTsKIH0KIAotc3RhdGljIGludCBtZTQw MDBfYWlfY29uZmlnKG1lNDAwMF9haV9jb25maWdfdCAqIGFyZywKLQkJCSAgICBtZTQwMDBfYWlf Y29udGV4dF90ICogYWlfY29udGV4dCkKK3N0YXRpYyBpbnQgbWU0MDAwX2FpX2NvbmZpZyhzdHJ1 Y3QgbWU0MDAwX2FpX2NvbmZpZyAqYXJnLAorCQkJICAgIHN0cnVjdCBtZTQwMDBfYWlfY29udGV4 dCAqYWlfY29udGV4dCkKIHsKLQltZTQwMDBfYWlfY29uZmlnX3QgY21kOworCXN0cnVjdCBtZTQw MDBfYWlfY29uZmlnIGNtZDsKIAl1MzIgKmxpc3QgPSBOVUxMOwogCXUzMiBtb2RlOwogCWludCBp OwpAQCAtMzQ1MSw3ICszNDM5LDcgQEAgc3RhdGljIGludCBtZTQwMDBfYWlfY29uZmlnKG1lNDAw MF9haV9jbwogCX0KIAogCS8qIENvcHkgZGF0YSBmcm9tIHVzZXIgKi8KLQllcnIgPSBjb3B5X2Zy b21fdXNlcigmY21kLCBhcmcsIHNpemVvZihtZTQwMDBfYWlfY29uZmlnX3QpKTsKKwllcnIgPSBj b3B5X2Zyb21fdXNlcigmY21kLCBhcmcsIHNpemVvZihzdHJ1Y3QgbWU0MDAwX2FpX2NvbmZpZykp OwogCWlmIChlcnIpIHsKIAkJcHJpbnRrKEtFUk5fRVJSCiAJCSAgICAgICAiTUU0MDAwOm1lNDAw MF9haV9jb25maWcoKTpDYW4ndCBjb3B5IGZyb20gdXNlciBzcGFjZVxuIik7CkBAIC0zNjcxLDcg KzM2NTksNyBAQCBzdGF0aWMgaW50IG1lNDAwMF9haV9jb25maWcobWU0MDAwX2FpX2NvCiAKIAly ZXR1cm4gMDsKIAotICAgICAgQUlfQ09ORklHX0VSUjoKK0FJX0NPTkZJR19FUlI6CiAKIAkvKiBS ZXNldCB0aGUgdGltZXJzICovCiAJYWlfY29udGV4dC0+Y2hhbl90aW1lciA9IDY2OwpAQCAtMzY5 OSw3ICszNjg3LDcgQEAgc3RhdGljIGludCBtZTQwMDBfYWlfY29uZmlnKG1lNDAwMF9haV9jbwog CiB9CiAKLXN0YXRpYyBpbnQgYWlfY29tbW9uX3N0YXJ0KG1lNDAwMF9haV9jb250ZXh0X3QgKiBh aV9jb250ZXh0KQorc3RhdGljIGludCBhaV9jb21tb25fc3RhcnQoc3RydWN0IG1lNDAwMF9haV9j b250ZXh0ICphaV9jb250ZXh0KQogewogCXUzMiB0bXA7CiAJQ0FMTF9QREVCVUcoImFpX2NvbW1v bl9zdGFydCgpIGlzIGV4ZWN1dGVkXG4iKTsKQEAgLTM3NjIsNyArMzc1MCw3IEBAIHN0YXRpYyBp bnQgYWlfY29tbW9uX3N0YXJ0KG1lNDAwMF9haV9jb24KIAlyZXR1cm4gMDsKIH0KIAotc3RhdGlj IGludCBtZTQwMDBfYWlfc3RhcnQobWU0MDAwX2FpX2NvbnRleHRfdCAqIGFpX2NvbnRleHQpCitz dGF0aWMgaW50IG1lNDAwMF9haV9zdGFydChzdHJ1Y3QgbWU0MDAwX2FpX2NvbnRleHQgKmFpX2Nv bnRleHQpCiB7CiAJaW50IGVycjsKIAlDQUxMX1BERUJVRygibWU0MDAwX2FpX3N0YXJ0KCkgaXMg ZXhlY3V0ZWRcbiIpOwpAQCAtMzc3OSw3ICszNzY3LDcgQEAgc3RhdGljIGludCBtZTQwMDBfYWlf c3RhcnQobWU0MDAwX2FpX2NvbgogfQogCiBzdGF0aWMgaW50IG1lNDAwMF9haV9zdGFydF9leCh1 bnNpZ25lZCBsb25nICphcmcsCi0JCQkgICAgICBtZTQwMDBfYWlfY29udGV4dF90ICogYWlfY29u dGV4dCkKKwkJCSAgICAgIHN0cnVjdCBtZTQwMDBfYWlfY29udGV4dCAqYWlfY29udGV4dCkKIHsK IAlpbnQgZXJyOwogCXdhaXRfcXVldWVfaGVhZF90IHF1ZXVlOwpAQCAtMzgzNCw3ICszODIyLDcg QEAgc3RhdGljIGludCBtZTQwMDBfYWlfc3RhcnRfZXgodW5zaWduZWQgbAogCXJldHVybiAwOwog fQogCi1zdGF0aWMgaW50IG1lNDAwMF9haV9zdG9wKG1lNDAwMF9haV9jb250ZXh0X3QgKiBhaV9j b250ZXh0KQorc3RhdGljIGludCBtZTQwMDBfYWlfc3RvcChzdHJ1Y3QgbWU0MDAwX2FpX2NvbnRl eHQgKmFpX2NvbnRleHQpCiB7CiAJd2FpdF9xdWV1ZV9oZWFkX3QgcXVldWU7CiAJdTMyIHRtcDsK QEAgLTM4NzEsNyArMzg1OSw3IEBAIHN0YXRpYyBpbnQgbWU0MDAwX2FpX3N0b3AobWU0MDAwX2Fp X2NvbnQKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBtZTQwMDBfYWlfaW1tZWRpYXRlX3N0 b3AobWU0MDAwX2FpX2NvbnRleHRfdCAqIGFpX2NvbnRleHQpCitzdGF0aWMgaW50IG1lNDAwMF9h aV9pbW1lZGlhdGVfc3RvcChzdHJ1Y3QgbWU0MDAwX2FpX2NvbnRleHQgKmFpX2NvbnRleHQpCiB7 CiAJd2FpdF9xdWV1ZV9oZWFkX3QgcXVldWU7CiAJdTMyIHRtcDsKQEAgLTM5MDgsNyArMzg5Niw3 IEBAIHN0YXRpYyBpbnQgbWU0MDAwX2FpX2ltbWVkaWF0ZV9zdG9wKG1lNDAKIAlyZXR1cm4gMDsK IH0KIAotc3RhdGljIGludCBtZTQwMDBfYWlfZXhfdHJpZ19lbmFibGUobWU0MDAwX2FpX2NvbnRl eHRfdCAqIGFpX2NvbnRleHQpCitzdGF0aWMgaW50IG1lNDAwMF9haV9leF90cmlnX2VuYWJsZShz dHJ1Y3QgbWU0MDAwX2FpX2NvbnRleHQgKmFpX2NvbnRleHQpCiB7CiAJdTMyIHRtcDsKIAl1bnNp Z25lZCBsb25nIGZsYWdzOwpAQCAtMzkyNCw3ICszOTEyLDcgQEAgc3RhdGljIGludCBtZTQwMDBf YWlfZXhfdHJpZ19lbmFibGUobWU0MAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG1lNDAw MF9haV9leF90cmlnX2Rpc2FibGUobWU0MDAwX2FpX2NvbnRleHRfdCAqIGFpX2NvbnRleHQpCitz dGF0aWMgaW50IG1lNDAwMF9haV9leF90cmlnX2Rpc2FibGUoc3RydWN0IG1lNDAwMF9haV9jb250 ZXh0ICphaV9jb250ZXh0KQogewogCXUzMiB0bXA7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKQEAg LTM5NDAsMTAgKzM5MjgsMTAgQEAgc3RhdGljIGludCBtZTQwMDBfYWlfZXhfdHJpZ19kaXNhYmxl KG1lNAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG1lNDAwMF9haV9leF90cmlnX3NldHVw KG1lNDAwMF9haV90cmlnZ2VyX3QgKiBhcmcsCi0JCQkJICAgbWU0MDAwX2FpX2NvbnRleHRfdCAq IGFpX2NvbnRleHQpCitzdGF0aWMgaW50IG1lNDAwMF9haV9leF90cmlnX3NldHVwKHN0cnVjdCBt ZTQwMDBfYWlfdHJpZ2dlciAqYXJnLAorCQkJCSAgIHN0cnVjdCBtZTQwMDBfYWlfY29udGV4dCAq YWlfY29udGV4dCkKIHsKLQltZTQwMDBfYWlfdHJpZ2dlcl90IGNtZDsKKwlzdHJ1Y3QgbWU0MDAw X2FpX3RyaWdnZXIgY21kOwogCWludCBlcnI7CiAJdTMyIHRtcDsKIAl1bnNpZ25lZCBsb25nIGZs YWdzOwpAQCAtMzk1MSw3ICszOTM5LDcgQEAgc3RhdGljIGludCBtZTQwMDBfYWlfZXhfdHJpZ19z ZXR1cChtZTQwMAogCUNBTExfUERFQlVHKCJtZTQwMDBfYWlfZXhfdHJpZ19zZXR1cCgpIGlzIGV4 ZWN1dGVkXG4iKTsKIAogCS8qIENvcHkgZGF0YSBmcm9tIHVzZXIgKi8KLQllcnIgPSBjb3B5X2Zy b21fdXNlcigmY21kLCBhcmcsIHNpemVvZihtZTQwMDBfYWlfdHJpZ2dlcl90KSk7CisJZXJyID0g Y29weV9mcm9tX3VzZXIoJmNtZCwgYXJnLCBzaXplb2Yoc3RydWN0IG1lNDAwMF9haV90cmlnZ2Vy KSk7CiAJaWYgKGVycikgewogCQlwcmludGsoS0VSTl9FUlIKIAkJICAgICAgICJNRTQwMDA6bWU0 MDAwX2FpX2V4X3RyaWdfc2V0dXAoKTpDYW4ndCBjb3B5IGZyb20gdXNlciBzcGFjZVxuIik7CkBA IC00MDAwLDE2ICszOTg4LDE2IEBAIHN0YXRpYyBpbnQgbWU0MDAwX2FpX2V4X3RyaWdfc2V0dXAo bWU0MDAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBtZTQwMDBfYWlfc2Nfc2V0dXAobWU0 MDAwX2FpX3NjX3QgKiBhcmcsCi0JCQkgICAgICBtZTQwMDBfYWlfY29udGV4dF90ICogYWlfY29u dGV4dCkKK3N0YXRpYyBpbnQgbWU0MDAwX2FpX3NjX3NldHVwKHN0cnVjdCBtZTQwMDBfYWlfc2Mg KmFyZywKKwkJCSAgICAgIHN0cnVjdCBtZTQwMDBfYWlfY29udGV4dCAqYWlfY29udGV4dCkKIHsK LQltZTQwMDBfYWlfc2NfdCBjbWQ7CisJc3RydWN0IG1lNDAwMF9haV9zYyBjbWQ7CiAJaW50IGVy cjsKIAogCUNBTExfUERFQlVHKCJtZTQwMDBfYWlfc2Nfc2V0dXAoKSBpcyBleGVjdXRlZFxuIik7 CiAKIAkvKiBDb3B5IGRhdGEgZnJvbSB1c2VyICovCi0JZXJyID0gY29weV9mcm9tX3VzZXIoJmNt ZCwgYXJnLCBzaXplb2YobWU0MDAwX2FpX3NjX3QpKTsKKwllcnIgPSBjb3B5X2Zyb21fdXNlcigm Y21kLCBhcmcsIHNpemVvZihzdHJ1Y3QgbWU0MDAwX2FpX3NjKSk7CiAJaWYgKGVycikgewogCQlw cmludGsoS0VSTl9FUlIKIAkJICAgICAgICJNRTQwMDA6bWU0MDAwX2FpX3NjX3NldHVwKCk6Q2Fu J3QgY29weSBmcm9tIHVzZXIgc3BhY2VcbiIpOwpAQCAtNDAyMyw5ICs0MDExLDkgQEAgc3RhdGlj IGludCBtZTQwMDBfYWlfc2Nfc2V0dXAobWU0MDAwX2FpXwogfQogCiBzdGF0aWMgc3NpemVfdCBt ZTQwMDBfYWlfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZXAsIGNoYXIgKmJ1ZmYsIHNpemVfdCBjbnQs Ci0JCQkgICAgICBsb2ZmX3QgKiBvZmZwKQorCQkJICAgICAgbG9mZl90ICpvZmZwKQogewotCW1l NDAwMF9haV9jb250ZXh0X3QgKmFpX2NvbnRleHQgPSBmaWxlcC0+cHJpdmF0ZV9kYXRhOworCXN0 cnVjdCBtZTQwMDBfYWlfY29udGV4dCAqYWlfY29udGV4dCA9IGZpbGVwLT5wcml2YXRlX2RhdGE7 CiAJczE2ICpidWZmZXIgPSAoczE2ICopIGJ1ZmY7CiAJc2l6ZV90IGNvdW50ID0gY250IC8gMjsK IAl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtNDE1MCw5ICs0MTM4LDkgQEAgc3RhdGljIHNzaXpl X3QgbWU0MDAwX2FpX3JlYWQoc3RydWN0IGZpbAogCXJldHVybiByZXQgKiAyOwogfQogCi1zdGF0 aWMgdW5zaWduZWQgaW50IG1lNDAwMF9haV9wb2xsKHN0cnVjdCBmaWxlICpmaWxlX3AsIHBvbGxf dGFibGUgKiB3YWl0KQorc3RhdGljIHVuc2lnbmVkIGludCBtZTQwMDBfYWlfcG9sbChzdHJ1Y3Qg ZmlsZSAqZmlsZV9wLCBwb2xsX3RhYmxlICp3YWl0KQogewotCW1lNDAwMF9haV9jb250ZXh0X3Qg KmFpX2NvbnRleHQ7CisJc3RydWN0IG1lNDAwMF9haV9jb250ZXh0ICphaV9jb250ZXh0OwogCXVu c2lnbmVkIGxvbmcgbWFzayA9IDA7CiAKIAlDQUxMX1BERUJVRygibWU0MDAwX2FpX3BvbGwoKSBp cyBleGVjdXRlZFxuIik7CkBAIC00MTcxLDcgKzQxNTksNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50 IG1lNDAwMF9haV9wb2xsKHN0cnVjCiAJcmV0dXJuIG1hc2s7CiB9CiAKLXN0YXRpYyBpbnQgbWU0 MDAwX2FpX29mZnNldF9lbmFibGUobWU0MDAwX2FpX2NvbnRleHRfdCAqIGFpX2NvbnRleHQpCitz dGF0aWMgaW50IG1lNDAwMF9haV9vZmZzZXRfZW5hYmxlKHN0cnVjdCBtZTQwMDBfYWlfY29udGV4 dCAqYWlfY29udGV4dCkKIHsKIAl1bnNpZ25lZCBsb25nIHRtcDsKIApAQCAtNDE4NCw3ICs0MTcy LDcgQEAgc3RhdGljIGludCBtZTQwMDBfYWlfb2Zmc2V0X2VuYWJsZShtZTQwMAogCXJldHVybiAw OwogfQogCi1zdGF0aWMgaW50IG1lNDAwMF9haV9vZmZzZXRfZGlzYWJsZShtZTQwMDBfYWlfY29u dGV4dF90ICogYWlfY29udGV4dCkKK3N0YXRpYyBpbnQgbWU0MDAwX2FpX29mZnNldF9kaXNhYmxl KHN0cnVjdCBtZTQwMDBfYWlfY29udGV4dCAqYWlfY29udGV4dCkKIHsKIAl1bnNpZ25lZCBsb25n IHRtcDsKIApAQCAtNDE5Nyw3ICs0MTg1LDcgQEAgc3RhdGljIGludCBtZTQwMDBfYWlfb2Zmc2V0 X2Rpc2FibGUobWU0MAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG1lNDAwMF9haV9mdWxs c2NhbGVfZW5hYmxlKG1lNDAwMF9haV9jb250ZXh0X3QgKiBhaV9jb250ZXh0KQorc3RhdGljIGlu dCBtZTQwMDBfYWlfZnVsbHNjYWxlX2VuYWJsZShzdHJ1Y3QgbWU0MDAwX2FpX2NvbnRleHQgKmFp X2NvbnRleHQpCiB7CiAJdW5zaWduZWQgbG9uZyB0bXA7CiAKQEAgLTQyMTAsNyArNDE5OCw3IEBA IHN0YXRpYyBpbnQgbWU0MDAwX2FpX2Z1bGxzY2FsZV9lbmFibGUobWUKIAlyZXR1cm4gMDsKIH0K IAotc3RhdGljIGludCBtZTQwMDBfYWlfZnVsbHNjYWxlX2Rpc2FibGUobWU0MDAwX2FpX2NvbnRl eHRfdCAqIGFpX2NvbnRleHQpCitzdGF0aWMgaW50IG1lNDAwMF9haV9mdWxsc2NhbGVfZGlzYWJs ZShzdHJ1Y3QgbWU0MDAwX2FpX2NvbnRleHQgKmFpX2NvbnRleHQpCiB7CiAJdW5zaWduZWQgbG9u ZyB0bXA7CiAKQEAgLTQyMjMsNyArNDIxMSw3IEBAIHN0YXRpYyBpbnQgbWU0MDAwX2FpX2Z1bGxz Y2FsZV9kaXNhYmxlKG0KIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBtZTQwMDBfYWlfZnNt X3N0YXRlKGludCAqYXJnLCBtZTQwMDBfYWlfY29udGV4dF90ICogYWlfY29udGV4dCkKK3N0YXRp YyBpbnQgbWU0MDAwX2FpX2ZzbV9zdGF0ZShpbnQgKmFyZywgc3RydWN0IG1lNDAwMF9haV9jb250 ZXh0ICphaV9jb250ZXh0KQogewogCXVuc2lnbmVkIGxvbmcgdG1wOwogCkBAIC00MjQyLDcgKzQy MzAsNyBAQCBzdGF0aWMgaW50IG1lNDAwMF9haV9mc21fc3RhdGUoaW50ICphcmcsCiB9CiAKIHN0 YXRpYyBpbnQgbWU0MDAwX2FpX2dldF9jb3VudF9idWZmZXIodW5zaWduZWQgbG9uZyAqYXJnLAot CQkJCSAgICAgIG1lNDAwMF9haV9jb250ZXh0X3QgKiBhaV9jb250ZXh0KQorCQkJCSAgICAgIHN0 cnVjdCBtZTQwMDBfYWlfY29udGV4dCAqYWlfY29udGV4dCkKIHsKIAl1bnNpZ25lZCBsb25nIGM7 CiAJaW50IGVycjsKQEAgLTQyNTIsNyArNDI0MCw3IEBAIHN0YXRpYyBpbnQgbWU0MDAwX2FpX2dl dF9jb3VudF9idWZmZXIodW4KIAllcnIgPSBjb3B5X3RvX3VzZXIoYXJnLCAmYywgc2l6ZW9mKHVu c2lnbmVkIGxvbmcpKTsKIAlpZiAoZXJyKSB7CiAJCXByaW50ayhLRVJOX0VSUgotCQkgICAgICAg Ik1FNDAwMDptZTQwMDBfYWlfZ2V0X2NvdW50X2J1ZmZlcigpOkNhbid0IGNvcHkgdG8gdXNlciBz cGFjZVxuIik7CisJCSAgICAgICAiJXM6Q2FuJ3QgY29weSB0byB1c2VyIHNwYWNlXG4iLCBfX2Z1 bmNfXyk7CiAJCXJldHVybiAtRUZBVUxUOwogCX0KIApAQCAtNDI2MSw3ICs0MjQ5LDcgQEAgc3Rh dGljIGludCBtZTQwMDBfYWlfZ2V0X2NvdW50X2J1ZmZlcih1bgogCiAvKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gRUVQUk9NIHN0dWZmIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSovCiAKLXN0YXRpYyBpbnQgZWVwcm9tX3dyaXRlX2NtZChtZTQwMDBfYWlfY29udGV4dF90 ICogYWlfY29udGV4dCwgdW5zaWduZWQgbG9uZyBjbWQsCitzdGF0aWMgaW50IGVlcHJvbV93cml0 ZV9jbWQoc3RydWN0IG1lNDAwMF9haV9jb250ZXh0ICphaV9jb250ZXh0LCB1bnNpZ25lZCBsb25n IGNtZCwKIAkJCSAgICBpbnQgbGVuZ3RoKQogewogCWludCBpOwpAQCAtNDMxOCw3ICs0MzA2LDcg QEAgc3RhdGljIGludCBlZXByb21fd3JpdGVfY21kKG1lNDAwMF9haV9jbwogCXJldHVybiAwOwog fQogCi1zdGF0aWMgdW5zaWduZWQgc2hvcnQgZWVwcm9tX3JlYWRfY21kKG1lNDAwMF9haV9jb250 ZXh0X3QgKiBhaV9jb250ZXh0LAorc3RhdGljIHVuc2lnbmVkIHNob3J0IGVlcHJvbV9yZWFkX2Nt ZChzdHJ1Y3QgbWU0MDAwX2FpX2NvbnRleHQgKmFpX2NvbnRleHQsCiAJCQkJICAgICAgdW5zaWdu ZWQgbG9uZyBjbWQsIGludCBsZW5ndGgpCiB7CiAJaW50IGk7CkBAIC00Mzk3LDExICs0Mzg1LDEx IEBAIHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBlZXByb21fcmVhZF9jbWQobWUKIAlyZXR1cm4gaWQ7 CiB9CiAKLXN0YXRpYyBpbnQgbWU0MDAwX2VlcHJvbV93cml0ZShtZTQwMDBfZWVwcm9tX3QgKiBh cmcsCi0JCQkgICAgICAgbWU0MDAwX2FpX2NvbnRleHRfdCAqIGFpX2NvbnRleHQpCitzdGF0aWMg aW50IG1lNDAwMF9lZXByb21fd3JpdGUoc3RydWN0IG1lNDAwMF9lZXByb20gKmFyZywKKwkJCSAg ICAgICBzdHJ1Y3QgbWU0MDAwX2FpX2NvbnRleHQgKmFpX2NvbnRleHQpCiB7CiAJaW50IGVycjsK LQltZTQwMDBfZWVwcm9tX3Qgc2V0dXA7CisJc3RydWN0IG1lNDAwMF9lZXByb20gc2V0dXA7CiAJ dW5zaWduZWQgbG9uZyBjbWQ7CiAJdW5zaWduZWQgbG9uZyBkYXRlX2hpZ2g7CiAJdW5zaWduZWQg bG9uZyBkYXRlX2xvdzsKQEAgLTQ1OTQsMTIgKzQ1ODIsMTIgQEAgc3RhdGljIGludCBtZTQwMDBf ZWVwcm9tX3dyaXRlKG1lNDAwMF9lZQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG1lNDAw MF9lZXByb21fcmVhZChtZTQwMDBfZWVwcm9tX3QgKiBhcmcsCi0JCQkgICAgICBtZTQwMDBfYWlf Y29udGV4dF90ICogYWlfY29udGV4dCkKK3N0YXRpYyBpbnQgbWU0MDAwX2VlcHJvbV9yZWFkKHN0 cnVjdCBtZTQwMDBfZWVwcm9tICphcmcsCisJCQkgICAgICBzdHJ1Y3QgbWU0MDAwX2FpX2NvbnRl eHQgKmFpX2NvbnRleHQpCiB7CiAJaW50IGVycjsKIAl1bnNpZ25lZCBsb25nIGNtZDsKLQltZTQw MDBfZWVwcm9tX3Qgc2V0dXA7CisJc3RydWN0IG1lNDAwMF9lZXByb20gc2V0dXA7CiAKIAlDQUxM X1BERUJVRygibWU0MDAwX2VlcHJvbV9yZWFkKCkgaXMgZXhlY3V0ZWRcbiIpOwogCkBAIC00Njg3 LDcgKzQ2NzUsNyBAQCBzdGF0aWMgaW50IG1lNDAwMF9lZXByb21fcmVhZChtZTQwMDBfZWVwCiBz dGF0aWMgaW50IG1lNDAwMF9kaW9faW9jdGwoc3RydWN0IGlub2RlICppbm9kZV9wLCBzdHJ1Y3Qg ZmlsZSAqZmlsZV9wLAogCQkJICAgIHVuc2lnbmVkIGludCBzZXJ2aWNlLCB1bnNpZ25lZCBsb25n IGFyZykKIHsKLQltZTQwMDBfZGlvX2NvbnRleHRfdCAqZGlvX2NvbnRleHQ7CisJc3RydWN0IG1l NDAwMF9kaW9fY29udGV4dCAqZGlvX2NvbnRleHQ7CiAKIAlDQUxMX1BERUJVRygibWU0MDAwX2Rp b19pb2N0bCgpIGlzIGV4ZWN1dGVkXG4iKTsKIApAQCAtNDcwNCwxMyArNDY5MiwxMyBAQCBzdGF0 aWMgaW50IG1lNDAwMF9kaW9faW9jdGwoc3RydWN0IGlub2RlCiAKIAlzd2l0Y2ggKHNlcnZpY2Up IHsKIAljYXNlIE1FNDAwMF9ESU9fQ09ORklHOgotCQlyZXR1cm4gbWU0MDAwX2Rpb19jb25maWco KG1lNDAwMF9kaW9fY29uZmlnX3QgKikgYXJnLAorCQlyZXR1cm4gbWU0MDAwX2Rpb19jb25maWco KHN0cnVjdCBtZTQwMDBfZGlvX2NvbmZpZyAqKWFyZywKIAkJCQkJIGRpb19jb250ZXh0KTsKIAlj YXNlIE1FNDAwMF9ESU9fU0VUX0JZVEU6Ci0JCXJldHVybiBtZTQwMDBfZGlvX3NldF9ieXRlKCht ZTQwMDBfZGlvX2J5dGVfdCAqKSBhcmcsCisJCXJldHVybiBtZTQwMDBfZGlvX3NldF9ieXRlKChz dHJ1Y3QgbWU0MDAwX2Rpb19ieXRlICopYXJnLAogCQkJCQkgICBkaW9fY29udGV4dCk7CiAJY2Fz ZSBNRTQwMDBfRElPX0dFVF9CWVRFOgotCQlyZXR1cm4gbWU0MDAwX2Rpb19nZXRfYnl0ZSgobWU0 MDAwX2Rpb19ieXRlX3QgKikgYXJnLAorCQlyZXR1cm4gbWU0MDAwX2Rpb19nZXRfYnl0ZSgoc3Ry dWN0IG1lNDAwMF9kaW9fYnl0ZSAqKWFyZywKIAkJCQkJICAgZGlvX2NvbnRleHQpOwogCWNhc2Ug TUU0MDAwX0RJT19SRVNFVDoKIAkJcmV0dXJuIG1lNDAwMF9kaW9fcmVzZXQoZGlvX2NvbnRleHQp OwpAQCAtNDcyMywxNyArNDcxMSwxNyBAQCBzdGF0aWMgaW50IG1lNDAwMF9kaW9faW9jdGwoc3Ry dWN0IGlub2RlCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbWU0MDAwX2Rpb19jb25maWco bWU0MDAwX2Rpb19jb25maWdfdCAqIGFyZywKLQkJCSAgICAgbWU0MDAwX2Rpb19jb250ZXh0X3Qg KiBkaW9fY29udGV4dCkKK3N0YXRpYyBpbnQgbWU0MDAwX2Rpb19jb25maWcoc3RydWN0IG1lNDAw MF9kaW9fY29uZmlnICphcmcsCisJCQkgICAgIHN0cnVjdCBtZTQwMDBfZGlvX2NvbnRleHQgKmRp b19jb250ZXh0KQogewotCW1lNDAwMF9kaW9fY29uZmlnX3QgY21kOworCXN0cnVjdCBtZTQwMDBf ZGlvX2NvbmZpZyBjbWQ7CiAJdTMyIHRtcDsKIAlpbnQgZXJyOwogCiAJQ0FMTF9QREVCVUcoIm1l NDAwMF9kaW9fY29uZmlnKCkgaXMgZXhlY3V0ZWRcbiIpOwogCiAJLyogQ29weSBkYXRhIGZyb20g dXNlciAqLwotCWVyciA9IGNvcHlfZnJvbV91c2VyKCZjbWQsIGFyZywgc2l6ZW9mKG1lNDAwMF9k aW9fY29uZmlnX3QpKTsKKwllcnIgPSBjb3B5X2Zyb21fdXNlcigmY21kLCBhcmcsIHNpemVvZihz dHJ1Y3QgbWU0MDAwX2Rpb19jb25maWcpKTsKIAlpZiAoZXJyKSB7CiAJCXByaW50ayhLRVJOX0VS UgogCQkgICAgICAgIk1FNDAwMDptZTQwMDBfZGlvX2NvbmZpZygpOkNhbid0IGNvcHkgZnJvbSB1 c2VyIHNwYWNlXG4iKTsKQEAgLTQ5NjQsMTYgKzQ5NTIsMTYgQEAgc3RhdGljIGludCBtZTQwMDBf ZGlvX2NvbmZpZyhtZTQwMDBfZGlvXwogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG1lNDAw MF9kaW9fc2V0X2J5dGUobWU0MDAwX2Rpb19ieXRlX3QgKiBhcmcsCi0JCQkgICAgICAgbWU0MDAw X2Rpb19jb250ZXh0X3QgKiBkaW9fY29udGV4dCkKK3N0YXRpYyBpbnQgbWU0MDAwX2Rpb19zZXRf Ynl0ZShzdHJ1Y3QgbWU0MDAwX2Rpb19ieXRlICphcmcsCisJCQkgICAgICAgc3RydWN0IG1lNDAw MF9kaW9fY29udGV4dCAqZGlvX2NvbnRleHQpCiB7Ci0JbWU0MDAwX2Rpb19ieXRlX3QgY21kOwor CXN0cnVjdCBtZTQwMDBfZGlvX2J5dGUgY21kOwogCWludCBlcnI7CiAKIAlDQUxMX1BERUJVRygi bWU0MDAwX2Rpb19zZXRfYnl0ZSgpIGlzIGV4ZWN1dGVkXG4iKTsKIAogCS8qIENvcHkgZGF0YSBm cm9tIHVzZXIgKi8KLQllcnIgPSBjb3B5X2Zyb21fdXNlcigmY21kLCBhcmcsIHNpemVvZihtZTQw MDBfZGlvX2J5dGVfdCkpOworCWVyciA9IGNvcHlfZnJvbV91c2VyKCZjbWQsIGFyZywgc2l6ZW9m KHN0cnVjdCBtZTQwMDBfZGlvX2J5dGUpKTsKIAlpZiAoZXJyKSB7CiAJCXByaW50ayhLRVJOX0VS UgogCQkgICAgICAgIk1FNDAwMDptZTQwMDBfZGlvX3NldF9ieXRlKCk6Q2FuJ3QgY29weSBmcm9t IHVzZXIgc3BhY2VcbiIpOwpAQCAtNTAzMCwxNiArNTAxOCwxNiBAQCBzdGF0aWMgaW50IG1lNDAw MF9kaW9fc2V0X2J5dGUobWU0MDAwX2RpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbWU0 MDAwX2Rpb19nZXRfYnl0ZShtZTQwMDBfZGlvX2J5dGVfdCAqIGFyZywKLQkJCSAgICAgICBtZTQw MDBfZGlvX2NvbnRleHRfdCAqIGRpb19jb250ZXh0KQorc3RhdGljIGludCBtZTQwMDBfZGlvX2dl dF9ieXRlKHN0cnVjdCBtZTQwMDBfZGlvX2J5dGUgKmFyZywKKwkJCSAgICAgICBzdHJ1Y3QgbWU0 MDAwX2Rpb19jb250ZXh0ICpkaW9fY29udGV4dCkKIHsKLQltZTQwMDBfZGlvX2J5dGVfdCBjbWQ7 CisJc3RydWN0IG1lNDAwMF9kaW9fYnl0ZSBjbWQ7CiAJaW50IGVycjsKIAogCUNBTExfUERFQlVH KCJtZTQwMDBfZGlvX2dldF9ieXRlKCkgaXMgZXhlY3V0ZWRcbiIpOwogCiAJLyogQ29weSBkYXRh IGZyb20gdXNlciAqLwotCWVyciA9IGNvcHlfZnJvbV91c2VyKCZjbWQsIGFyZywgc2l6ZW9mKG1l NDAwMF9kaW9fYnl0ZV90KSk7CisJZXJyID0gY29weV9mcm9tX3VzZXIoJmNtZCwgYXJnLCBzaXpl b2Yoc3RydWN0IG1lNDAwMF9kaW9fYnl0ZSkpOwogCWlmIChlcnIpIHsKIAkJcHJpbnRrKEtFUk5f RVJSCiAJCSAgICAgICAiTUU0MDAwOm1lNDAwMF9kaW9fZ2V0X2J5dGUoKTpDYW4ndCBjb3B5IGZy b20gdXNlciBzcGFjZVxuIik7CkBAIC01MDcwLDcgKzUwNTgsNyBAQCBzdGF0aWMgaW50IG1lNDAw MF9kaW9fZ2V0X2J5dGUobWU0MDAwX2RpCiAJfQogCiAJLyogQ29weSByZXN1bHQgYmFjayB0byB1 c2VyICovCi0JZXJyID0gY29weV90b191c2VyKGFyZywgJmNtZCwgc2l6ZW9mKG1lNDAwMF9kaW9f Ynl0ZV90KSk7CisJZXJyID0gY29weV90b191c2VyKGFyZywgJmNtZCwgc2l6ZW9mKHN0cnVjdCBt ZTQwMDBfZGlvX2J5dGUpKTsKIAlpZiAoZXJyKSB7CiAJCXByaW50ayhLRVJOX0VSUgogCQkgICAg ICAgIk1FNDAwMDptZTQwMDBfZGlvX2dldF9ieXRlKCk6Q2FuJ3QgY29weSB0byB1c2VyIHNwYWNl XG4iKTsKQEAgLTUwODAsNyArNTA2OCw3IEBAIHN0YXRpYyBpbnQgbWU0MDAwX2Rpb19nZXRfYnl0 ZShtZTQwMDBfZGkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBtZTQwMDBfZGlvX3Jlc2V0 KG1lNDAwMF9kaW9fY29udGV4dF90ICogZGlvX2NvbnRleHQpCitzdGF0aWMgaW50IG1lNDAwMF9k aW9fcmVzZXQoc3RydWN0IG1lNDAwMF9kaW9fY29udGV4dCAqZGlvX2NvbnRleHQpCiB7CiAJQ0FM TF9QREVCVUcoIm1lNDAwMF9kaW9fcmVzZXQoKSBpcyBleGVjdXRlZFxuIik7CiAKQEAgLTUxMDEs NyArNTA4OSw3IEBAIHN0YXRpYyBpbnQgbWU0MDAwX2Rpb19yZXNldChtZTQwMDBfZGlvX2MKIHN0 YXRpYyBpbnQgbWU0MDAwX2NudF9pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlX3AsIHN0cnVjdCBm aWxlICpmaWxlX3AsCiAJCQkgICAgdW5zaWduZWQgaW50IHNlcnZpY2UsIHVuc2lnbmVkIGxvbmcg YXJnKQogewotCW1lNDAwMF9jbnRfY29udGV4dF90ICpjbnRfY29udGV4dDsKKwlzdHJ1Y3QgbWU0 MDAwX2NudF9jb250ZXh0ICpjbnRfY29udGV4dDsKIAogCUNBTExfUERFQlVHKCJtZTQwMDBfY250 X2lvY3RsKCkgaXMgZXhlY3V0ZWRcbiIpOwogCkBAIC01MTE4LDExICs1MTA2LDExIEBAIHN0YXRp YyBpbnQgbWU0MDAwX2NudF9pb2N0bChzdHJ1Y3QgaW5vZGUKIAogCXN3aXRjaCAoc2VydmljZSkg ewogCWNhc2UgTUU0MDAwX0NOVF9SRUFEOgotCQlyZXR1cm4gbWU0MDAwX2NudF9yZWFkKChtZTQw MDBfY250X3QgKikgYXJnLCBjbnRfY29udGV4dCk7CisJCXJldHVybiBtZTQwMDBfY250X3JlYWQo KHN0cnVjdCBtZTQwMDBfY250ICopYXJnLCBjbnRfY29udGV4dCk7CiAJY2FzZSBNRTQwMDBfQ05U X1dSSVRFOgotCQlyZXR1cm4gbWU0MDAwX2NudF93cml0ZSgobWU0MDAwX2NudF90ICopIGFyZywg Y250X2NvbnRleHQpOworCQlyZXR1cm4gbWU0MDAwX2NudF93cml0ZSgoc3RydWN0IG1lNDAwMF9j bnQgKilhcmcsIGNudF9jb250ZXh0KTsKIAljYXNlIE1FNDAwMF9DTlRfQ09ORklHOgotCQlyZXR1 cm4gbWU0MDAwX2NudF9jb25maWcoKG1lNDAwMF9jbnRfY29uZmlnX3QgKikgYXJnLAorCQlyZXR1 cm4gbWU0MDAwX2NudF9jb25maWcoKHN0cnVjdCBtZTQwMDBfY250X2NvbmZpZyAqKWFyZywKIAkJ CQkJIGNudF9jb250ZXh0KTsKIAljYXNlIE1FNDAwMF9DTlRfUkVTRVQ6CiAJCXJldHVybiBtZTQw MDBfY250X3Jlc2V0KGNudF9jb250ZXh0KTsKQEAgLTUxMzUsMTAgKzUxMjMsMTAgQEAgc3RhdGlj IGludCBtZTQwMDBfY250X2lvY3RsKHN0cnVjdCBpbm9kZQogCXJldHVybiAwOwogfQogCi1zdGF0 aWMgaW50IG1lNDAwMF9jbnRfY29uZmlnKG1lNDAwMF9jbnRfY29uZmlnX3QgKiBhcmcsCi0JCQkg ICAgIG1lNDAwMF9jbnRfY29udGV4dF90ICogY250X2NvbnRleHQpCitzdGF0aWMgaW50IG1lNDAw MF9jbnRfY29uZmlnKHN0cnVjdCBtZTQwMDBfY250X2NvbmZpZyAqYXJnLAorCQkJICAgICBzdHJ1 Y3QgbWU0MDAwX2NudF9jb250ZXh0ICpjbnRfY29udGV4dCkKIHsKLQltZTQwMDBfY250X2NvbmZp Z190IGNtZDsKKwlzdHJ1Y3QgbWU0MDAwX2NudF9jb25maWcgY21kOwogCXU4IGNvdW50ZXI7CiAJ dTggbW9kZTsKIAlpbnQgZXJyOwpAQCAtNTE0Niw3ICs1MTM0LDcgQEAgc3RhdGljIGludCBtZTQw MDBfY250X2NvbmZpZyhtZTQwMDBfY250XwogCUNBTExfUERFQlVHKCJtZTQwMDBfY250X2NvbmZp ZygpIGlzIGV4ZWN1dGVkXG4iKTsKIAogCS8qIENvcHkgZGF0YSBmcm9tIHVzZXIgKi8KLQllcnIg PSBjb3B5X2Zyb21fdXNlcigmY21kLCBhcmcsIHNpemVvZihtZTQwMDBfY250X2NvbmZpZ190KSk7 CisJZXJyID0gY29weV9mcm9tX3VzZXIoJmNtZCwgYXJnLCBzaXplb2Yoc3RydWN0IG1lNDAwMF9j bnRfY29uZmlnKSk7CiAJaWYgKGVycikgewogCQlwcmludGsoS0VSTl9FUlIKIAkJICAgICAgICJN RTQwMDA6bWU0MDAwX2NudF9jb25maWcoKTpDYW4ndCBjb3B5IGZyb20gdXNlciBzcGFjZVxuIik7 CkBAIC01MjA0LDE3ICs1MTkyLDE3IEBAIHN0YXRpYyBpbnQgbWU0MDAwX2NudF9jb25maWcobWU0 MDAwX2NudF8KIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBtZTQwMDBfY250X3JlYWQobWU0 MDAwX2NudF90ICogYXJnLAotCQkJICAgbWU0MDAwX2NudF9jb250ZXh0X3QgKiBjbnRfY29udGV4 dCkKK3N0YXRpYyBpbnQgbWU0MDAwX2NudF9yZWFkKHN0cnVjdCBtZTQwMDBfY250ICphcmcsCisJ CQkgICBzdHJ1Y3QgbWU0MDAwX2NudF9jb250ZXh0ICpjbnRfY29udGV4dCkKIHsKLQltZTQwMDBf Y250X3QgY21kOworCXN0cnVjdCBtZTQwMDBfY250IGNtZDsKIAl1OCB0bXA7CiAJaW50IGVycjsK IAogCUNBTExfUERFQlVHKCJtZTQwMDBfY250X3JlYWQoKSBpcyBleGVjdXRlZFxuIik7CiAKIAkv KiBDb3B5IGRhdGEgZnJvbSB1c2VyICovCi0JZXJyID0gY29weV9mcm9tX3VzZXIoJmNtZCwgYXJn LCBzaXplb2YobWU0MDAwX2NudF90KSk7CisJZXJyID0gY29weV9mcm9tX3VzZXIoJmNtZCwgYXJn LCBzaXplb2Yoc3RydWN0IG1lNDAwMF9jbnQpKTsKIAlpZiAoZXJyKSB7CiAJCXByaW50ayhLRVJO X0VSUgogCQkgICAgICAgIk1FNDAwMDptZTQwMDBfY250X3JlYWQoKTpDYW4ndCBjb3B5IGZyb20g dXNlciBzcGFjZVxuIik7CkBAIC01MjQ5LDcgKzUyMzcsNyBAQCBzdGF0aWMgaW50IG1lNDAwMF9j bnRfcmVhZChtZTQwMDBfY250X3QgCiAJfQogCiAJLyogQ29weSByZXN1bHQgYmFjayB0byB1c2Vy ICovCi0JZXJyID0gY29weV90b191c2VyKGFyZywgJmNtZCwgc2l6ZW9mKG1lNDAwMF9jbnRfdCkp OworCWVyciA9IGNvcHlfdG9fdXNlcihhcmcsICZjbWQsIHNpemVvZihzdHJ1Y3QgbWU0MDAwX2Nu dCkpOwogCWlmIChlcnIpIHsKIAkJcHJpbnRrKEtFUk5fRVJSCiAJCSAgICAgICAiTUU0MDAwOm1l NDAwMF9jbnRfcmVhZCgpOkNhbid0IGNvcHkgdG8gdXNlciBzcGFjZVxuIik7CkBAIC01MjU5LDE3 ICs1MjQ3LDE3IEBAIHN0YXRpYyBpbnQgbWU0MDAwX2NudF9yZWFkKG1lNDAwMF9jbnRfdCAKIAly ZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBtZTQwMDBfY250X3dyaXRlKG1lNDAwMF9jbnRfdCAq IGFyZywKLQkJCSAgICBtZTQwMDBfY250X2NvbnRleHRfdCAqIGNudF9jb250ZXh0KQorc3RhdGlj IGludCBtZTQwMDBfY250X3dyaXRlKHN0cnVjdCBtZTQwMDBfY250ICphcmcsCisJCQkgICAgc3Ry dWN0IG1lNDAwMF9jbnRfY29udGV4dCAqY250X2NvbnRleHQpCiB7Ci0JbWU0MDAwX2NudF90IGNt ZDsKKwlzdHJ1Y3QgbWU0MDAwX2NudCBjbWQ7CiAJdTggdG1wOwogCWludCBlcnI7CiAKIAlDQUxM X1BERUJVRygibWU0MDAwX2NudF93cml0ZSgpIGlzIGV4ZWN1dGVkXG4iKTsKIAogCS8qIENvcHkg ZGF0YSBmcm9tIHVzZXIgKi8KLQllcnIgPSBjb3B5X2Zyb21fdXNlcigmY21kLCBhcmcsIHNpemVv ZihtZTQwMDBfY250X3QpKTsKKwllcnIgPSBjb3B5X2Zyb21fdXNlcigmY21kLCBhcmcsIHNpemVv ZihzdHJ1Y3QgbWU0MDAwX2NudCkpOwogCWlmIChlcnIpIHsKIAkJcHJpbnRrKEtFUk5fRVJSCiAJ CSAgICAgICAiTUU0MDAwOm1lNDAwMF9jbnRfd3JpdGUoKTpDYW4ndCBjb3B5IGZyb20gdXNlciBz cGFjZVxuIik7CkBAIC01MzA2LDcgKzUyOTQsNyBAQCBzdGF0aWMgaW50IG1lNDAwMF9jbnRfd3Jp dGUobWU0MDAwX2NudF90CiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbWU0MDAwX2NudF9y ZXNldChtZTQwMDBfY250X2NvbnRleHRfdCAqIGNudF9jb250ZXh0KQorc3RhdGljIGludCBtZTQw MDBfY250X3Jlc2V0KHN0cnVjdCBtZTQwMDBfY250X2NvbnRleHQgKmNudF9jb250ZXh0KQogewog CUNBTExfUERFQlVHKCJtZTQwMDBfY250X3Jlc2V0KCkgaXMgZXhlY3V0ZWRcbiIpOwogCkBAIC01 MzMzLDcgKzUzMjEsNyBAQCBzdGF0aWMgaW50IG1lNDAwMF9jbnRfcmVzZXQobWU0MDAwX2NudF9j CiBzdGF0aWMgaW50IG1lNDAwMF9leHRfaW50X2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGVfcCwg c3RydWN0IGZpbGUgKmZpbGVfcCwKIAkJCQl1bnNpZ25lZCBpbnQgc2VydmljZSwgdW5zaWduZWQg bG9uZyBhcmcpCiB7Ci0JbWU0MDAwX2V4dF9pbnRfY29udGV4dF90ICpleHRfaW50X2NvbnRleHQ7 CisJc3RydWN0IG1lNDAwMF9leHRfaW50X2NvbnRleHQgKmV4dF9pbnRfY29udGV4dDsKIAogCUNB TExfUERFQlVHKCJtZTQwMDBfZXh0X2ludF9pb2N0bCgpIGlzIGV4ZWN1dGVkXG4iKTsKIApAQCAt NTM2Niw3ICs1MzU0LDcgQEAgc3RhdGljIGludCBtZTQwMDBfZXh0X2ludF9pb2N0bChzdHJ1Y3Qg aQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG1lNDAwMF9leHRfaW50X2VuYWJsZShtZTQw MDBfZXh0X2ludF9jb250ZXh0X3QgKiBleHRfaW50X2NvbnRleHQpCitzdGF0aWMgaW50IG1lNDAw MF9leHRfaW50X2VuYWJsZShzdHJ1Y3QgbWU0MDAwX2V4dF9pbnRfY29udGV4dCAqZXh0X2ludF9j b250ZXh0KQogewogCXVuc2lnbmVkIGxvbmcgdG1wOwogCkBAIC01Mzc5LDcgKzUzNjcsNyBAQCBz dGF0aWMgaW50IG1lNDAwMF9leHRfaW50X2VuYWJsZShtZTQwMDBfCiAJcmV0dXJuIDA7CiB9CiAK LXN0YXRpYyBpbnQgbWU0MDAwX2V4dF9pbnRfZGlzYWJsZShtZTQwMDBfZXh0X2ludF9jb250ZXh0 X3QgKiBleHRfaW50X2NvbnRleHQpCitzdGF0aWMgaW50IG1lNDAwMF9leHRfaW50X2Rpc2FibGUo c3RydWN0IG1lNDAwMF9leHRfaW50X2NvbnRleHQgKmV4dF9pbnRfY29udGV4dCkKIHsKIAl1bnNp Z25lZCBsb25nIHRtcDsKIApAQCAtNTM5Myw3ICs1MzgxLDcgQEAgc3RhdGljIGludCBtZTQwMDBf ZXh0X2ludF9kaXNhYmxlKG1lNDAwMAogfQogCiBzdGF0aWMgaW50IG1lNDAwMF9leHRfaW50X2Nv dW50KHVuc2lnbmVkIGxvbmcgKmFyZywKLQkJCQltZTQwMDBfZXh0X2ludF9jb250ZXh0X3QgKiBl eHRfaW50X2NvbnRleHQpCisJCQkJc3RydWN0IG1lNDAwMF9leHRfaW50X2NvbnRleHQgKmV4dF9p bnRfY29udGV4dCkKIHsKIAogCUNBTExfUERFQlVHKCJtZTQwMDBfZXh0X2ludF9jb3VudCgpIGlz IGV4ZWN1dGVkXG4iKTsKQEAgLTU0MDQsMTAgKzUzOTIsMTAgQEAgc3RhdGljIGludCBtZTQwMDBf ZXh0X2ludF9jb3VudCh1bnNpZ25lZAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSBHZW5lcmFsIHN0dWZmIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSovCiAKLXN0YXRpYyBpbnQgbWU0MDAwX2dldF91c2VyX2luZm8obWU0MDAwX3VzZXJfaW5mb190 ICogYXJnLAotCQkJCW1lNDAwMF9pbmZvX3QgKiBib2FyZF9pbmZvKQorc3RhdGljIGludCBtZTQw MDBfZ2V0X3VzZXJfaW5mbyhzdHJ1Y3QgbWU0MDAwX3VzZXJfaW5mbyAqYXJnLAorCQkJCXN0cnVj dCBtZTQwMDBfaW5mbyAqYm9hcmRfaW5mbykKIHsKLQltZTQwMDBfdXNlcl9pbmZvX3QgdXNlcl9p bmZvOworCXN0cnVjdCBtZTQwMDBfdXNlcl9pbmZvIHVzZXJfaW5mbzsKIAogCUNBTExfUERFQlVH KCJtZTQwMDBfZ2V0X3VzZXJfaW5mbygpIGlzIGV4ZWN1dGVkXG4iKTsKIApAQCAtNTQzNyw3ICs1 NDI1LDcgQEAgc3RhdGljIGludCBtZTQwMDBfZ2V0X3VzZXJfaW5mbyhtZTQwMDBfdQogCiAJdXNl cl9pbmZvLmNudF9jb3VudCA9IGJvYXJkX2luZm8tPmJvYXJkX3AtPmNudC5jb3VudDsKIAotCWlm IChjb3B5X3RvX3VzZXIoYXJnLCAmdXNlcl9pbmZvLCBzaXplb2YobWU0MDAwX3VzZXJfaW5mb190 KSkpCisJaWYgKGNvcHlfdG9fdXNlcihhcmcsICZ1c2VyX2luZm8sIHNpemVvZihzdHJ1Y3QgbWU0 MDAwX3VzZXJfaW5mbykpKQogCQlyZXR1cm4gLUVGQVVMVDsKIAogCXJldHVybiAwOwpAQCAtNTQ0 OCw3ICs1NDM2LDcgQEAgc3RhdGljIGludCBtZTQwMDBfZ2V0X3VzZXJfaW5mbyhtZTQwMDBfdQog c3RhdGljIGludCBtZTQwMDBfZXh0X2ludF9mYXN5bmMoaW50IGZkLCBzdHJ1Y3QgZmlsZSAqZmls ZV9wdHIsIGludCBtb2RlKQogewogCWludCByZXN1bHQgPSAwOwotCW1lNDAwMF9leHRfaW50X2Nv bnRleHRfdCAqZXh0X2ludF9jb250ZXh0OworCXN0cnVjdCBtZTQwMDBfZXh0X2ludF9jb250ZXh0 ICpleHRfaW50X2NvbnRleHQ7CiAKIAlDQUxMX1BERUJVRygibWU0MDAwX2V4dF9pbnRfZmFzeW5j KCkgaXMgZXhlY3V0ZWRcbiIpOwogCkBAIC01NDY1LDcgKzU0NTMsNyBAQCBzdGF0aWMgaXJxcmV0 dXJuX3QgbWU0MDAwX2FvX2lzcihpbnQgaXJxCiB7CiAJdTMyIHRtcDsKIAl1MzIgdmFsdWU7Ci0J bWU0MDAwX2FvX2NvbnRleHRfdCAqYW9fY29udGV4dDsKKwlzdHJ1Y3QgbWU0MDAwX2FvX2NvbnRl eHQgKmFvX2NvbnRleHQ7CiAJaW50IGk7CiAJaW50IGMgPSAwOwogCWludCBjMSA9IDA7CkBAIC01 NTg5LDcgKzU1NzcsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgbWU0MDAwX2FvX2lzcihpbnQgaXJx CiBzdGF0aWMgaXJxcmV0dXJuX3QgbWU0MDAwX2FpX2lzcihpbnQgaXJxLCB2b2lkICpkZXZfaWQp CiB7CiAJdTMyIHRtcDsKLQltZTQwMDBfYWlfY29udGV4dF90ICphaV9jb250ZXh0OworCXN0cnVj dCBtZTQwMDBfYWlfY29udGV4dCAqYWlfY29udGV4dDsKIAlpbnQgaTsKIAlpbnQgYyA9IDA7CiAJ aW50IGMxID0gMDsKQEAgLTU5MzMsNyArNTkyMSw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBtZTQw MDBfYWlfaXNyKGludCBpcnEKIAogc3RhdGljIGlycXJldHVybl90IG1lNDAwMF9leHRfaW50X2lz cihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiB7Ci0JbWU0MDAwX2V4dF9pbnRfY29udGV4dF90ICpl eHRfaW50X2NvbnRleHQ7CisJc3RydWN0IG1lNDAwMF9leHRfaW50X2NvbnRleHQgKmV4dF9pbnRf Y29udGV4dDsKIAl1bnNpZ25lZCBsb25nIHRtcDsKIAogCUlTUl9QREVCVUcoIm1lNDAwMF9leHRf aW50X2lzcigpIGlzIGV4ZWN1dGVkXG4iKTsKQEAgLTU5NjksMTAgKzU5NTcsMTAgQEAgc3RhdGlj IGlycXJldHVybl90IG1lNDAwMF9leHRfaW50X2lzcihpbgogCXJldHVybiBJUlFfSEFORExFRDsK IH0KIAotdm9pZCBfX2V4aXQgbWU0MDAwX21vZHVsZV9leGl0KHZvaWQpCitzdGF0aWMgdm9pZCBf X2V4aXQgbWU0MDAwX21vZHVsZV9leGl0KHZvaWQpCiB7CiAJc3RydWN0IGxpc3RfaGVhZCAqYm9h cmRfcDsKLQltZTQwMDBfaW5mb190ICpib2FyZF9pbmZvOworCXN0cnVjdCBtZTQwMDBfaW5mbyAq Ym9hcmRfaW5mbzsKIAogCUNBTExfUERFQlVHKCJjbGVhbnVwX21vZHVsZSgpIGlzIGV4ZWN1dGVk XG4iKTsKIApAQCAtNTk5Myw3ICs1OTgxLDcgQEAgdm9pZCBfX2V4aXQgbWU0MDAwX21vZHVsZV9l eGl0KHZvaWQpCiAJLyogUmVzZXQgdGhlIGJvYXJkcyAqLwogCWZvciAoYm9hcmRfcCA9IG1lNDAw MF9ib2FyZF9pbmZvX2xpc3QubmV4dDsKIAkgICAgIGJvYXJkX3AgIT0gJm1lNDAwMF9ib2FyZF9p bmZvX2xpc3Q7IGJvYXJkX3AgPSBib2FyZF9wLT5uZXh0KSB7Ci0JCWJvYXJkX2luZm8gPSBsaXN0 X2VudHJ5KGJvYXJkX3AsIG1lNDAwMF9pbmZvX3QsIGxpc3QpOworCQlib2FyZF9pbmZvID0gbGlz dF9lbnRyeShib2FyZF9wLCBzdHJ1Y3QgbWU0MDAwX2luZm8sIGxpc3QpOwogCQltZTQwMDBfcmVz ZXRfYm9hcmQoYm9hcmRfaW5mbyk7CiAJfQogCkBAIC02MDA3LDcgKzU5OTUsNyBAQCBzdGF0aWMg aW50IG1lNDAwMF9yZWFkX3Byb2NtZW0oY2hhciAqYnVmCiB7CiAJaW50IGxlbiA9IDA7CiAJaW50 IGxpbWl0ID0gY291bnQgLSAxMDAwOwotCW1lNDAwMF9pbmZvX3QgKmJvYXJkX2luZm87CisJc3Ry dWN0IG1lNDAwMF9pbmZvICpib2FyZF9pbmZvOwogCXN0cnVjdCBsaXN0X2hlYWQgKnB0cjsKIAog CWxlbiArPSBzcHJpbnRmKGJ1ZiArIGxlbiwgIlxuTUU0MDAwIERSSVZFUiBWRVJTSU9OICVYLiVY LiVYXG5cbiIsCkBAIC02MDE5LDcgKzYwMDcsNyBAQCBzdGF0aWMgaW50IG1lNDAwMF9yZWFkX3By b2NtZW0oY2hhciAqYnVmCiAJZm9yIChwdHIgPSBtZTQwMDBfYm9hcmRfaW5mb19saXN0Lm5leHQ7 CiAJICAgICAocHRyICE9ICZtZTQwMDBfYm9hcmRfaW5mb19saXN0KSAmJiAobGVuIDwgbGltaXQp OwogCSAgICAgcHRyID0gcHRyLT5uZXh0KSB7Ci0JCWJvYXJkX2luZm8gPSBsaXN0X2VudHJ5KHB0 ciwgbWU0MDAwX2luZm9fdCwgbGlzdCk7CisJCWJvYXJkX2luZm8gPSBsaXN0X2VudHJ5KHB0ciwg c3RydWN0IG1lNDAwMF9pbmZvLCBsaXN0KTsKIAogCQlsZW4gKz0KIAkJICAgIHNwcmludGYoYnVm ICsgbGVuLCAiQm9hcmQgbnVtYmVyICVkOlxuIiwKZGlmZiAtWCBiL0RvY3VtZW50YXRpb24vZG9u dGRpZmYgLXVwIGEvZHJpdmVycy9zdGFnaW5nL21lNDAwMC9tZTQwMDAuaCBiL2RyaXZlcnMvc3Rh Z2luZy9tZTQwMDAvbWU0MDAwLmgKLS0tIGEvZHJpdmVycy9zdGFnaW5nL21lNDAwMC9tZTQwMDAu aAkyMDA4LTEwLTE0IDA4OjE0OjAyLjA5MjI0NzgyNyArMDIwMAorKysgYi9kcml2ZXJzL3N0YWdp bmcvbWU0MDAwL21lNDAwMC5oCTIwMDgtMTAtMTcgMDg6NTk6MjQuNzEzMjMwMDMzICswMjAwCkBA IC0zMjksNDYgKzMyOSw0NiBAQAogICBDaXJjdWxhciBidWZmZXIgdXNlZCBmb3IgYW5hbG9nIGlu cHV0L291dHB1dCByZWFkcy93cml0ZXMuCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAKLXR5cGVk ZWYgc3RydWN0IG1lNDAwMF9jaXJjX2J1ZiB7CitzdHJ1Y3QgbWU0MDAwX2NpcmNfYnVmIHsKIAlz MTYgKmJ1ZjsKIAlpbnQgdm9sYXRpbGUgaGVhZDsKIAlpbnQgdm9sYXRpbGUgdGFpbDsKLX0gbWU0 MDAwX2NpcmNfYnVmX3Q7Cit9OwogCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEluZm9ybWF0 aW9uIGFib3V0IHRoZSBoYXJkd2FyZSBjYXBhYmlsaXRpZXMKICAgPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ki8KIAotdHlwZWRlZiBzdHJ1Y3QgbWU0MDAwX2FvX2luZm8geworc3RydWN0IG1lNDAwMF9hb19p bmZvIHsKIAlpbnQgY291bnQ7CiAJaW50IGZpZm9fY291bnQ7Ci19IG1lNDAwMF9hb19pbmZvX3Q7 Cit9OwogCi10eXBlZGVmIHN0cnVjdCBtZTQwMDBfYWlfaW5mbyB7CitzdHJ1Y3QgbWU0MDAwX2Fp X2luZm8gewogCWludCBjb3VudDsKIAlpbnQgc2hfY291bnQ7CiAJaW50IGRpZmZfY291bnQ7CiAJ aW50IGV4X3RyaWdfYW5hbG9nOwotfSBtZTQwMDBfYWlfaW5mb190OworfTsKIAotdHlwZWRlZiBz dHJ1Y3QgbWU0MDAwX2Rpb19pbmZvIHsKK3N0cnVjdCBtZTQwMDBfZGlvX2luZm8gewogCWludCBj b3VudDsKLX0gbWU0MDAwX2Rpb19pbmZvX3Q7Cit9OwogCi10eXBlZGVmIHN0cnVjdCBtZTQwMDBf Y250X2luZm8geworc3RydWN0IG1lNDAwMF9jbnRfaW5mbyB7CiAJaW50IGNvdW50OwotfSBtZTQw MDBfY250X2luZm9fdDsKK307CiAKLXR5cGVkZWYgc3RydWN0IG1lNDAwMF9ib2FyZCB7CitzdHJ1 Y3QgbWU0MDAwX2JvYXJkIHsKIAl1MTYgdmVuZG9yX2lkOwogCXUxNiBkZXZpY2VfaWQ7Ci0JbWU0 MDAwX2FvX2luZm9fdCBhbzsKLQltZTQwMDBfYWlfaW5mb190IGFpOwotCW1lNDAwMF9kaW9faW5m b190IGRpbzsKLQltZTQwMDBfY250X2luZm9fdCBjbnQ7Ci19IG1lNDAwMF9ib2FyZF90OworCXN0 cnVjdCBtZTQwMDBfYW9faW5mbyBhbzsKKwlzdHJ1Y3QgbWU0MDAwX2FpX2luZm8gYWk7CisJc3Ry dWN0IG1lNDAwMF9kaW9faW5mbyBkaW87CisJc3RydWN0IG1lNDAwMF9jbnRfaW5mbyBjbnQ7Cit9 OwogCi1zdGF0aWMgbWU0MDAwX2JvYXJkX3QgbWU0MDAwX2JvYXJkc1tdID0geworc3RhdGljIHN0 cnVjdCBtZTQwMDBfYm9hcmQgbWU0MDAwX2JvYXJkc1tdID0gewogCXtQQ0lfVkVORE9SX0lEX01F SUxIQVVTLCAweDQ2MTAsIHswLCAwfSwgezE2LCAwLCAwLCAwfSwgezR9LCB7M319LAogCiAJe1BD SV9WRU5ET1JfSURfTUVJTEhBVVMsIDB4NDY1MCwgezAsIDB9LCB7MTYsIDAsIDAsIDB9LCB7NH0s IHswfX0sCkBAIC0zOTEsOCArMzkxLDYgQEAgc3RhdGljIG1lNDAwMF9ib2FyZF90IG1lNDAwMF9i b2FyZHNbXSA9IAogCXswfSwKIH07CiAKLSNkZWZpbmUgTUU0MDAwX0JPQVJEX1ZFUlNJT05TIChz aXplb2YobWU0MDAwX2JvYXJkcykgLyBzaXplb2YobWU0MDAwX2JvYXJkX3QpIC0gMSkKLQogLyo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogICBQQ0kgZGV2aWNlIHRhYmxlLgogICBUaGlzIGlzIHVzZWQg YnkgbW9kcHJvYmUgdG8gdHJhbnNsYXRlIFBDSSBJRHMgdG8gZHJpdmVycy4KQEAgLTQyNywxOSAr NDI1LDE5IEBAIE1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBtZTQwMDBfcGNpX3RhYmwKICAgR2xv YmFsIGJvYXJkIGFuZCBzdWJkZXZpY2UgaW5mb3JtYXRpb24gc3RydWN0dXJlcwogICA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0qLwogCi10eXBlZGVmIHN0cnVjdCBtZTQwMDBfaW5mbyB7CitzdHJ1Y3QgbWU0 MDAwX2luZm8gewogCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsJLy8gTGlzdCBvZiBhbGwgZGV0ZWN0 ZWQgYm9hcmRzCiAJaW50IGJvYXJkX2NvdW50OwkvLyBJbmRleCBvZiB0aGUgYm9hcmQgYWZ0ZXIg ZGV0ZWN0aW9uCiAKIAl1bnNpZ25lZCBsb25nIHBseF9yZWdiYXNlOwkvLyBQTFggY29uZmlndXJh dGlvbiBzcGFjZSBiYXNlIGFkZHJlc3MKLQl1bnNpZ25lZCBsb25nIG1lNDAwMF9yZWdiYXNlOwkv LyBCYXNlIGFkZHJlc3Mgb2YgdGhlIE1FNDAwMAotCXVuc2lnbmVkIGxvbmcgdGltZXJfcmVnYmFz ZTsJLy8gQmFzZSBhZGRyZXNzIG9mIHRoZSB0aW1lciBjaXJjdWl0Ci0JdW5zaWduZWQgbG9uZyBw cm9ncmFtX3JlZ2Jhc2U7CS8vIEJhc2UgYWRkcmVzcyB0byBzZXQgdGhlIHByb2dyYW0gcGluIGZv ciB0aGUgeGlsaW54CisJcmVzb3VyY2Vfc2l6ZV90IG1lNDAwMF9yZWdiYXNlOwkvLyBCYXNlIGFk ZHJlc3Mgb2YgdGhlIE1FNDAwMAorCXJlc291cmNlX3NpemVfdCB0aW1lcl9yZWdiYXNlOwkvLyBC YXNlIGFkZHJlc3Mgb2YgdGhlIHRpbWVyIGNpcmN1aXQKKwlyZXNvdXJjZV9zaXplX3QgcHJvZ3Jh bV9yZWdiYXNlOwkvLyBCYXNlIGFkZHJlc3MgdG8gc2V0IHRoZSBwcm9ncmFtIHBpbiBmb3IgdGhl IHhpbGlueAogCiAJdW5zaWduZWQgbG9uZyBwbHhfcmVnYmFzZV9zaXplOwkvLyBQTFggcmVnaXN0 ZXIgc2V0IHNwYWNlCi0JdW5zaWduZWQgbG9uZyBtZTQwMDBfcmVnYmFzZV9zaXplOwkvLyBNRTQw MDAgcmVnaXN0ZXIgc2V0IHNwYWNlCi0JdW5zaWduZWQgbG9uZyB0aW1lcl9yZWdiYXNlX3NpemU7 CS8vIFRpbWVyIGNpcmN1aXQgcmVnaXN0ZXIgc2V0IHNwYWNlCi0JdW5zaWduZWQgbG9uZyBwcm9n cmFtX3JlZ2Jhc2Vfc2l6ZTsJLy8gU2l6ZSBvZiBwcm9ncmFtIGJhc2UgYWRkcmVzcyBvZiB0aGUg TUU0MDAwCisJcmVzb3VyY2Vfc2l6ZV90IG1lNDAwMF9yZWdiYXNlX3NpemU7CS8vIE1FNDAwMCBy ZWdpc3RlciBzZXQgc3BhY2UKKwlyZXNvdXJjZV9zaXplX3QgdGltZXJfcmVnYmFzZV9zaXplOwkv LyBUaW1lciBjaXJjdWl0IHJlZ2lzdGVyIHNldCBzcGFjZQorCXJlc291cmNlX3NpemVfdCBwcm9n cmFtX3JlZ2Jhc2Vfc2l6ZTsJLy8gU2l6ZSBvZiBwcm9ncmFtIGJhc2UgYWRkcmVzcyBvZiB0aGUg TUU0MDAwCiAKIAl1bnNpZ25lZCBpbnQgc2VyaWFsX25vOwkvLyBTZXJpYWwgbnVtYmVyIG9mIHRo ZSBib2FyZAogCXVuc2lnbmVkIGNoYXIgaHdfcmV2aXNpb247CS8vIEhhcmR3YXJlIHJldmlzaW9u IG9mIHRoZSBib2FyZApAQCAtNDUxLDcgKzQ0OSw3IEBAIHR5cGVkZWYgc3RydWN0IG1lNDAwMF9p bmZvIHsKIAlpbnQgcGNpX2Z1bmNfbm87CS8vIFBDSSBmdW5jdGlvbiBudW1iZXIKIAlzdHJ1Y3Qg cGNpX2RldiAqcGNpX2Rldl9wOwkvLyBHZW5lcmFsIFBDSSBpbmZvcm1hdGlvbgogCi0JbWU0MDAw X2JvYXJkX3QgKmJvYXJkX3A7CS8vIEhvbGRzIHRoZSBib2FyZCBjYXBhYmlsaXRpZXMKKwlzdHJ1 Y3QgbWU0MDAwX2JvYXJkICpib2FyZF9wOwkvLyBIb2xkcyB0aGUgYm9hcmQgY2FwYWJpbGl0aWVz CiAKIAl1bnNpZ25lZCBpbnQgaXJxOwkvLyBJUlEgYXNzaWduZWQgZnJvbSB0aGUgUENJIEJJT1MK IAl1bnNpZ25lZCBpbnQgaXJxX2NvdW50OwkvLyBDb3VudCBvZiBleHRlcm5hbCBpbnRlcnJ1cHRz CkBAIC00NjQsMTggKzQ2MiwxOCBAQCB0eXBlZGVmIHN0cnVjdCBtZTQwMDBfaW5mbyB7CiAJc3Ry dWN0IG1lNDAwMF9kaW9fY29udGV4dCAqZGlvX2NvbnRleHQ7CS8vIERpZ2l0YWwgSS9PIHNwZWNp ZmljIGNvbnRleHQKIAlzdHJ1Y3QgbWU0MDAwX2NudF9jb250ZXh0ICpjbnRfY29udGV4dDsJLy8g Q291bnRlciBzcGVjaWZpYyBjb250ZXh0CiAJc3RydWN0IG1lNDAwMF9leHRfaW50X2NvbnRleHQg KmV4dF9pbnRfY29udGV4dDsJLy8gRXh0ZXJuYWwgaW50ZXJydXB0IHNwZWNpZmljIGNvbnRleHQK LX0gbWU0MDAwX2luZm9fdDsKK307CiAKLXR5cGVkZWYgc3RydWN0IG1lNDAwMF9hb19jb250ZXh0 IHsKK3N0cnVjdCBtZTQwMDBfYW9fY29udGV4dCB7CiAJc3RydWN0IGxpc3RfaGVhZCBsaXN0Owkv LyBsaW5rZWQgbGlzdCBvZiBtZTQwMDBfYW9fY29udGV4dF90CiAJaW50IGluZGV4OwkJLy8gSW5k ZXggaW4gdGhlIGxpc3QKIAlpbnQgbW9kZTsJCS8vIEluZGljYXRlcyBtb2RlICgwID0gc2luZ2xl LCAxID0gd3JhcGFyb3VuZCwgMiA9IGNvbnRpbm91cykKIAlpbnQgZGFjX2luX3VzZTsJCS8vIElu ZGljYXRlcyBpZiBhbHJlYWR5IG9wZW5kCiAJc3BpbmxvY2tfdCB1c2VfbG9jazsJLy8gR3VhcmRz IGluX3VzZQogCXNwaW5sb2NrX3QgaW50X2xvY2s7CS8vIFVzZWQgd2hlbiBsb2NraW5nIG91dCBp bnRlcnJ1cHRzCi0JbWU0MDAwX2NpcmNfYnVmX3QgY2lyY19idWY7CS8vIENpcmN1bGFyIGJ1ZmZl cgorCXN0cnVjdCBtZTQwMDBfY2lyY19idWYgY2lyY19idWY7CS8vIENpcmN1bGFyIGJ1ZmZlcgog CXdhaXRfcXVldWVfaGVhZF90IHdhaXRfcXVldWU7CS8vIFdhaXQgcXVldWUgdG8gc2xlZXAgd2hp bGUgYmxvY2tpbmcgd3JpdGUKLQltZTQwMDBfaW5mb190ICpib2FyZF9pbmZvOworCXN0cnVjdCBt ZTQwMDBfaW5mbyAqYm9hcmRfaW5mbzsKIAl1bnNpZ25lZCBpbnQgaXJxOwkvLyBUaGUgaXJxIGFz c29jaWF0ZWQgd2l0aCB0aGlzIEFEQwogCWludCB2b2xhdGlsZSBwaXBlX2ZsYWc7CS8vIEluZGlj YXRlcyBicm9rZW4gcGlwZSBzZXQgZnJvbSBtZTQwMDBfYW9faXNyKCkKIAl1bnNpZ25lZCBsb25n IGN0cmxfcmVnOwpAQCAtNDg2LDkgKzQ4NCw5IEBAIHR5cGVkZWYgc3RydWN0IG1lNDAwMF9hb19j b250ZXh0IHsKIAl1bnNpZ25lZCBsb25nIGlycV9zdGF0dXNfcmVnOwogCXVuc2lnbmVkIGxvbmcg cHJlbG9hZF9yZWc7CiAJc3RydWN0IGZhc3luY19zdHJ1Y3QgKmZhc3luY19wOwkvLyBRdWV1ZSBm b3IgYXN5bmNocm9ub3VzIG5vdGlmaWNhdGlvbgotfSBtZTQwMDBfYW9fY29udGV4dF90OworfTsK IAotdHlwZWRlZiBzdHJ1Y3QgbWU0MDAwX2FpX2NvbnRleHQgeworc3RydWN0IG1lNDAwMF9haV9j b250ZXh0IHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CS8vIGxpbmtlZCBsaXN0IG9mIG1lNDAw MF9haV9pbmZvX3QKIAlpbnQgbW9kZTsJCS8vIEluZGljYXRlcyBtb2RlCiAJaW50IGluX3VzZTsJ CS8vIEluZGljYXRlcyBpZiBhbHJlYWR5IG9wZW5kCkBAIC00OTYsOSArNDk0LDkgQEAgdHlwZWRl ZiBzdHJ1Y3QgbWU0MDAwX2FpX2NvbnRleHQgewogCXNwaW5sb2NrX3QgaW50X2xvY2s7CS8vIFVz ZWQgd2hlbiBsb2NraW5nIG91dCBpbnRlcnJ1cHRzCiAJaW50IG51bWJlcjsJCS8vIE51bWJlciBv ZiB0aGUgREFDCiAJdW5zaWduZWQgaW50IGlycTsJLy8gVGhlIGlycSBhc3NvY2lhdGVkIHdpdGgg dGhpcyBBREMKLQltZTQwMDBfY2lyY19idWZfdCBjaXJjX2J1ZjsJLy8gQ2lyY3VsYXIgYnVmZmVy CisJc3RydWN0IG1lNDAwMF9jaXJjX2J1ZiBjaXJjX2J1ZjsJLy8gQ2lyY3VsYXIgYnVmZmVyCiAJ d2FpdF9xdWV1ZV9oZWFkX3Qgd2FpdF9xdWV1ZTsJLy8gV2FpdCBxdWV1ZSB0byBzbGVlcCB3aGls ZSBibG9ja2luZyByZWFkCi0JbWU0MDAwX2luZm9fdCAqYm9hcmRfaW5mbzsKKwlzdHJ1Y3QgbWU0 MDAwX2luZm8gKmJvYXJkX2luZm87CiAKIAlzdHJ1Y3QgZmFzeW5jX3N0cnVjdCAqZmFzeW5jX3A7 CS8vIFF1ZXVlIGZvciBhc3luY2hyb25vdXMgbm90aWZpY2F0aW9uCiAKQEAgLTUyMyw0OCArNTIx LDQ4IEBAIHR5cGVkZWYgc3RydWN0IG1lNDAwMF9haV9jb250ZXh0IHsKIAl1bnNpZ25lZCBsb25n IGNoYW5uZWxfbGlzdF9jb3VudDsKIAl1bnNpZ25lZCBsb25nIHNhbXBsZV9jb3VudGVyOwogCWlu dCBzYW1wbGVfY291bnRlcl9yZWxvYWQ7Ci19IG1lNDAwMF9haV9jb250ZXh0X3Q7Cit9OwogCi10 eXBlZGVmIHN0cnVjdCBtZTQwMDBfZGlvX2NvbnRleHQgeworc3RydWN0IG1lNDAwMF9kaW9fY29u dGV4dCB7CiAJc3RydWN0IGxpc3RfaGVhZCBsaXN0OwkvLyBsaW5rZWQgbGlzdCBvZiBtZTQwMDBf ZGlvX2NvbnRleHRfdAogCWludCBpbl91c2U7CQkvLyBJbmRpY2F0ZXMgaWYgYWxyZWFkeSBvcGVu ZAogCXNwaW5sb2NrX3QgdXNlX2xvY2s7CS8vIEd1YXJkcyBpbl91c2UKIAlpbnQgbnVtYmVyOwog CWludCBkaW9fY291bnQ7Ci0JbWU0MDAwX2luZm9fdCAqYm9hcmRfaW5mbzsKKwlzdHJ1Y3QgbWU0 MDAwX2luZm8gKmJvYXJkX2luZm87CiAJdW5zaWduZWQgbG9uZyBkaXJfcmVnOwogCXVuc2lnbmVk IGxvbmcgY3RybF9yZWc7CiAJdW5zaWduZWQgbG9uZyBwb3J0XzBfcmVnOwogCXVuc2lnbmVkIGxv bmcgcG9ydF8xX3JlZzsKIAl1bnNpZ25lZCBsb25nIHBvcnRfMl9yZWc7CiAJdW5zaWduZWQgbG9u ZyBwb3J0XzNfcmVnOwotfSBtZTQwMDBfZGlvX2NvbnRleHRfdDsKK307CiAKLXR5cGVkZWYgc3Ry dWN0IG1lNDAwMF9jbnRfY29udGV4dCB7CitzdHJ1Y3QgbWU0MDAwX2NudF9jb250ZXh0IHsKIAlz dHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CS8vIGxpbmtlZCBsaXN0IG9mIG1lNDAwMF9kaW9fY29udGV4 dF90CiAJaW50IGluX3VzZTsJCS8vIEluZGljYXRlcyBpZiBhbHJlYWR5IG9wZW5kCiAJc3Bpbmxv Y2tfdCB1c2VfbG9jazsJLy8gR3VhcmRzIGluX3VzZQogCWludCBudW1iZXI7CiAJaW50IGNudF9j b3VudDsKLQltZTQwMDBfaW5mb190ICpib2FyZF9pbmZvOworCXN0cnVjdCBtZTQwMDBfaW5mbyAq Ym9hcmRfaW5mbzsKIAl1bnNpZ25lZCBsb25nIGN0cmxfcmVnOwogCXVuc2lnbmVkIGxvbmcgY291 bnRlcl8wX3JlZzsKIAl1bnNpZ25lZCBsb25nIGNvdW50ZXJfMV9yZWc7CiAJdW5zaWduZWQgbG9u ZyBjb3VudGVyXzJfcmVnOwotfSBtZTQwMDBfY250X2NvbnRleHRfdDsKK307CiAKLXR5cGVkZWYg c3RydWN0IG1lNDAwMF9leHRfaW50X2NvbnRleHQgeworc3RydWN0IG1lNDAwMF9leHRfaW50X2Nv bnRleHQgewogCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsJLy8gbGlua2VkIGxpc3Qgb2YgbWU0MDAw X2Rpb19jb250ZXh0X3QKIAlpbnQgaW5fdXNlOwkJLy8gSW5kaWNhdGVzIGlmIGFscmVhZHkgb3Bl bmQKIAlzcGlubG9ja190IHVzZV9sb2NrOwkvLyBHdWFyZHMgaW5fdXNlCiAJaW50IG51bWJlcjsK LQltZTQwMDBfaW5mb190ICpib2FyZF9pbmZvOworCXN0cnVjdCBtZTQwMDBfaW5mbyAqYm9hcmRf aW5mbzsKIAl1bnNpZ25lZCBpbnQgaXJxOwogCXVuc2lnbmVkIGxvbmcgaW50X2NvdW50OwogCXN0 cnVjdCBmYXN5bmNfc3RydWN0ICpmYXN5bmNfcHRyOwogCXVuc2lnbmVkIGxvbmcgY3RybF9yZWc7 CiAJdW5zaWduZWQgbG9uZyBpcnFfc3RhdHVzX3JlZzsKLX0gbWU0MDAwX2V4dF9pbnRfY29udGV4 dF90OworfTsKIAogI2VuZGlmCiAKQEAgLTc0NSwxMiArNzQzLDEyIEBAIHR5cGVkZWYgc3RydWN0 IG1lNDAwMF9leHRfaW50X2NvbnRleHQgewogICBHZW5lcmFsIHR5cGUgZGVmaW5pdGlvbnMKICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLXR5cGVkZWYgc3RydWN0IG1lNDAwMF91c2VyX2luZm8g eworc3RydWN0IG1lNDAwMF91c2VyX2luZm8gewogCWludCBib2FyZF9jb3VudDsJLy8gSW5kZXgg b2YgdGhlIGJvYXJkIGFmdGVyIGRldGVjdGlvbgogCXVuc2lnbmVkIGxvbmcgcGx4X3JlZ2Jhc2U7 CS8vIFBMWCBjb25maWd1cmF0aW9uIHNwYWNlIGJhc2UgYWRkcmVzcwotCXVuc2lnbmVkIGxvbmcg bWU0MDAwX3JlZ2Jhc2U7CS8vIEJhc2UgYWRkcmVzcyBvZiB0aGUgTUU0MDAwCisJcmVzb3VyY2Vf c2l6ZV90IG1lNDAwMF9yZWdiYXNlOwkvLyBCYXNlIGFkZHJlc3Mgb2YgdGhlIE1FNDAwMAogCXVu c2lnbmVkIGxvbmcgcGx4X3JlZ2Jhc2Vfc2l6ZTsJLy8gUExYIHJlZ2lzdGVyIHNldCBzcGFjZQot CXVuc2lnbmVkIGxvbmcgbWU0MDAwX3JlZ2Jhc2Vfc2l6ZTsJLy8gTUU0MDAwIHJlZ2lzdGVyIHNl dCBzcGFjZQorCXJlc291cmNlX3NpemVfdCBtZTQwMDBfcmVnYmFzZV9zaXplOwkvLyBNRTQwMDAg cmVnaXN0ZXIgc2V0IHNwYWNlCiAJdW5zaWduZWQgbG9uZyBzZXJpYWxfbm87CS8vIFNlcmlhbCBu dW1iZXIgb2YgdGhlIGJvYXJkCiAJdW5zaWduZWQgY2hhciBod19yZXZpc2lvbjsJLy8gSGFyZHdh cmUgcmV2aXNpb24gb2YgdGhlIGJvYXJkCiAJdW5zaWduZWQgc2hvcnQgdmVuZG9yX2lkOwkvLyBN ZWlsaGF1cyB2ZW5kb3IgaWQgKDB4MTQwMikKQEAgLTc3Myw2MiArNzcxLDYyIEBAIHR5cGVkZWYg c3RydWN0IG1lNDAwMF91c2VyX2luZm8gewogCWludCBkaW9fY291bnQ7CQkvLyBDb3VudCBvZiBk aWdpdGFsIEkvTyBwb3J0cwogCiAJaW50IGNudF9jb3VudDsJCS8vIENvdW50IG9mIGNvdW50ZXJz Ci19IG1lNDAwMF91c2VyX2luZm9fdDsKK307CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg VHlwZSBkZWZpbml0aW9ucyBmb3IgYW5hbG9nIG91dHB1dAogICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ki8KIAotdHlwZWRlZiBzdHJ1Y3QgbWU0MDAwX2FvX2NoYW5uZWxfbGlzdCB7CitzdHJ1Y3QgbWU0 MDAwX2FvX2NoYW5uZWxfbGlzdCB7CiAJdW5zaWduZWQgbG9uZyBjb3VudDsKIAl1bnNpZ25lZCBs b25nICpsaXN0OwotfSBtZTQwMDBfYW9fY2hhbm5lbF9saXN0X3Q7Cit9OwogCiAvKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgIFR5cGUgZGVmaW5pdGlvbnMgZm9yIGFuYWxvZyBpbnB1dAogICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKi8KIAotdHlwZWRlZiBzdHJ1Y3QgbWU0MDAwX2FpX2NoYW5uZWxfbGlz dCB7CitzdHJ1Y3QgbWU0MDAwX2FpX2NoYW5uZWxfbGlzdCB7CiAJdW5zaWduZWQgbG9uZyBjb3Vu dDsKIAl1bnNpZ25lZCBsb25nICpsaXN0OwotfSBtZTQwMDBfYWlfY2hhbm5lbF9saXN0X3Q7Cit9 OwogCi10eXBlZGVmIHN0cnVjdCBtZTQwMDBfYWlfdGltZXIgeworc3RydWN0IG1lNDAwMF9haV90 aW1lciB7CiAJdW5zaWduZWQgbG9uZyBwcmVfY2hhbjsKIAl1bnNpZ25lZCBsb25nIGNoYW47CiAJ dW5zaWduZWQgbG9uZyBzY2FuX2xvdzsKIAl1bnNpZ25lZCBsb25nIHNjYW5faGlnaDsKLX0gbWU0 MDAwX2FpX3RpbWVyX3Q7Cit9OwogCi10eXBlZGVmIHN0cnVjdCBtZTQwMDBfYWlfY29uZmlnIHsK LQltZTQwMDBfYWlfdGltZXJfdCB0aW1lcjsKLQltZTQwMDBfYWlfY2hhbm5lbF9saXN0X3QgY2hh bm5lbF9saXN0Oworc3RydWN0IG1lNDAwMF9haV9jb25maWcgeworCXN0cnVjdCBtZTQwMDBfYWlf dGltZXIgdGltZXI7CisJc3RydWN0IG1lNDAwMF9haV9jaGFubmVsX2xpc3QgY2hhbm5lbF9saXN0 OwogCWludCBzaDsKLX0gbWU0MDAwX2FpX2NvbmZpZ190OworfTsKIAotdHlwZWRlZiBzdHJ1Y3Qg bWU0MDAwX2FpX3NpbmdsZSB7CitzdHJ1Y3QgbWU0MDAwX2FpX3NpbmdsZSB7CiAJaW50IGNoYW5u ZWw7CiAJaW50IHJhbmdlOwogCWludCBtb2RlOwogCXNob3J0IHZhbHVlOwogCXVuc2lnbmVkIGxv bmcgdGltZW91dDsKLX0gbWU0MDAwX2FpX3NpbmdsZV90OworfTsKIAotdHlwZWRlZiBzdHJ1Y3Qg bWU0MDAwX2FpX3RyaWdnZXIgeworc3RydWN0IG1lNDAwMF9haV90cmlnZ2VyIHsKIAlpbnQgbW9k ZTsKIAlpbnQgZWRnZTsKLX0gbWU0MDAwX2FpX3RyaWdnZXJfdDsKK307CiAKLXR5cGVkZWYgc3Ry dWN0IG1lNDAwMF9haV9zYyB7CitzdHJ1Y3QgbWU0MDAwX2FpX3NjIHsKIAl1bnNpZ25lZCBsb25n IHZhbHVlOwogCWludCByZWxvYWQ7Ci19IG1lNDAwMF9haV9zY190OworfTsKIAogLyotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogICBUeXBlIGRlZmluaXRpb25zIGZvciBlZXByb20KICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSovCiAKLXR5cGVkZWYgc3RydWN0IG1lNDAwMF9lZXByb20geworc3RydWN0IG1l NDAwMF9lZXByb20gewogCXVuc2lnbmVkIGxvbmcgZGF0ZTsKIAlzaG9ydCB1bmlfMTBfb2Zmc2V0 OwogCXNob3J0IHVuaV8xMF9mdWxsc2NhbGU7CkBAIC04NDIsNDUgKzg0MCw0NSBAQCB0eXBlZGVm IHN0cnVjdCBtZTQwMDBfZWVwcm9tIHsKIAlzaG9ydCBkaWZmXzEwX2Z1bGxzY2FsZTsKIAlzaG9y dCBkaWZmXzJfNV9vZmZzZXQ7CiAJc2hvcnQgZGlmZl8yXzVfZnVsbHNjYWxlOwotfSBtZTQwMDBf ZWVwcm9tX3Q7Cit9OwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFR5cGUgZGVmaW5pdGlv bnMgZm9yIGRpZ2l0YWwgSS9PCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi10eXBlZGVmIHN0 cnVjdCBtZTQwMDBfZGlvX2NvbmZpZyB7CitzdHJ1Y3QgbWU0MDAwX2Rpb19jb25maWcgewogCWlu dCBwb3J0OwogCWludCBtb2RlOwogCWludCBmdW5jdGlvbjsKLX0gbWU0MDAwX2Rpb19jb25maWdf dDsKK307CiAKLXR5cGVkZWYgc3RydWN0IG1lNDAwMF9kaW9fYnl0ZSB7CitzdHJ1Y3QgbWU0MDAw X2Rpb19ieXRlIHsKIAlpbnQgcG9ydDsKIAl1bnNpZ25lZCBjaGFyIGJ5dGU7Ci19IG1lNDAwMF9k aW9fYnl0ZV90OworfTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBUeXBlIGRlZmluaXRp b25zIGZvciBjb3VudGVycwogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotdHlwZWRlZiBzdHJ1 Y3QgbWU0MDAwX2NudCB7CitzdHJ1Y3QgbWU0MDAwX2NudCB7CiAJaW50IGNvdW50ZXI7CiAJdW5z aWduZWQgc2hvcnQgdmFsdWU7Ci19IG1lNDAwMF9jbnRfdDsKK307CiAKLXR5cGVkZWYgc3RydWN0 IG1lNDAwMF9jbnRfY29uZmlnIHsKK3N0cnVjdCBtZTQwMDBfY250X2NvbmZpZyB7CiAJaW50IGNv dW50ZXI7CiAJaW50IG1vZGU7Ci19IG1lNDAwMF9jbnRfY29uZmlnX3Q7Cit9OwogCiAvKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgIFR5cGUgZGVmaW5pdGlvbnMgZm9yIGV4dGVybmFsIGludGVycnVw dAogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAotdHlwZWRlZiBzdHJ1Y3Qgeworc3RydWN0IG1l NDAwMF9pbnQgewogCWludCBpbnQxX2NvdW50OwogCWludCBpbnQyX2NvdW50OwotfSBtZTQwMDBf aW50X3R5cGU7Cit9OwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFRoZSBpb2N0bHMgb2Yg dGhlIGJvYXJkCkBAIC04ODgsNyArODg2LDggQEAgdHlwZWRlZiBzdHJ1Y3QgewogCiAjZGVmaW5l IE1FNDAwMF9JT0NUTF9NQVhOUiA1MAogI2RlZmluZSBNRTQwMDBfTUFHSUMgJ3knCi0jZGVmaW5l IE1FNDAwMF9HRVRfVVNFUl9JTkZPICAgICAgICAgIF9JT1IgKE1FNDAwMF9NQUdJQywgMCwgbWU0 MDAwX3VzZXJfaW5mb190KQorI2RlZmluZSBNRTQwMDBfR0VUX1VTRVJfSU5GTyAgICAgICAgICBf SU9SIChNRTQwMDBfTUFHSUMsIDAsIFwKKwkJCQkJICAgIHN0cnVjdCBtZTQwMDBfdXNlcl9pbmZv KQogCiAjZGVmaW5lIE1FNDAwMF9BT19TVEFSVCAgICAgICAgICAgICAgIF9JT1cgKE1FNDAwMF9N QUdJQywgMSwgdW5zaWduZWQgbG9uZykKICNkZWZpbmUgTUU0MDAwX0FPX1NUT1AgICAgICAgICAg ICAgICAgX0lPICAoTUU0MDAwX01BR0lDLCAyKQpAQCAtOTA0LDI1ICs5MDMsMzUgQEAgdHlwZWRl ZiBzdHJ1Y3QgewogI2RlZmluZSBNRTQwMDBfQU9fRElTQUJMRV9ETyAgICAgICAgICBfSU8gIChN RTQwMDBfTUFHSUMsIDEyKQogI2RlZmluZSBNRTQwMDBfQU9fRlNNX1NUQVRFICAgICAgICAgICBf SU9SIChNRTQwMDBfTUFHSUMsIDEzLCBpbnQpCiAKLSNkZWZpbmUgTUU0MDAwX0FJX1NJTkdMRSAg ICAgICAgICAgICAgX0lPUiAoTUU0MDAwX01BR0lDLCAxNCwgbWU0MDAwX2FpX3NpbmdsZV90KQor I2RlZmluZSBNRTQwMDBfQUlfU0lOR0xFICAgICAgICAgICAgICBfSU9SIChNRTQwMDBfTUFHSUMs IDE0LCBcCisJCQkJCSAgICBzdHJ1Y3QgbWU0MDAwX2FpX3NpbmdsZSkKICNkZWZpbmUgTUU0MDAw X0FJX1NUQVJUICAgICAgICAgICAgICAgX0lPVyAoTUU0MDAwX01BR0lDLCAxNSwgdW5zaWduZWQg bG9uZykKICNkZWZpbmUgTUU0MDAwX0FJX1NUT1AgICAgICAgICAgICAgICAgX0lPICAoTUU0MDAw X01BR0lDLCAxNikKICNkZWZpbmUgTUU0MDAwX0FJX0lNTUVESUFURV9TVE9QICAgICAgX0lPICAo TUU0MDAwX01BR0lDLCAxNykKICNkZWZpbmUgTUU0MDAwX0FJX0VYX1RSSUdfRU5BQkxFICAgICAg X0lPICAoTUU0MDAwX01BR0lDLCAxOCkKICNkZWZpbmUgTUU0MDAwX0FJX0VYX1RSSUdfRElTQUJM RSAgICAgX0lPICAoTUU0MDAwX01BR0lDLCAxOSkKLSNkZWZpbmUgTUU0MDAwX0FJX0VYX1RSSUdf U0VUVVAgICAgICAgX0lPVyAoTUU0MDAwX01BR0lDLCAyMCwgbWU0MDAwX2FpX3RyaWdnZXJfdCkK LSNkZWZpbmUgTUU0MDAwX0FJX0NPTkZJRyAgICAgICAgICAgICAgX0lPVyAoTUU0MDAwX01BR0lD LCAyMSwgbWU0MDAwX2FpX2NvbmZpZ190KQotI2RlZmluZSBNRTQwMDBfQUlfU0NfU0VUVVAgICAg ICAgICAgICBfSU9XIChNRTQwMDBfTUFHSUMsIDIyLCBtZTQwMDBfYWlfc2NfdCkKKyNkZWZpbmUg TUU0MDAwX0FJX0VYX1RSSUdfU0VUVVAgICAgICAgX0lPVyAoTUU0MDAwX01BR0lDLCAyMCwgXAor CQkJCQkgICAgc3RydWN0IG1lNDAwMF9haV90cmlnZ2VyKQorI2RlZmluZSBNRTQwMDBfQUlfQ09O RklHICAgICAgICAgICAgICBfSU9XIChNRTQwMDBfTUFHSUMsIDIxLCBcCisJCQkJCSAgICBzdHJ1 Y3QgbWU0MDAwX2FpX2NvbmZpZykKKyNkZWZpbmUgTUU0MDAwX0FJX1NDX1NFVFVQICAgICAgICAg ICAgX0lPVyAoTUU0MDAwX01BR0lDLCAyMiwgXAorCQkJCQkgICAgc3RydWN0IG1lNDAwMF9haV9z YykKICNkZWZpbmUgTUU0MDAwX0FJX0ZTTV9TVEFURSAgICAgICAgICAgX0lPUiAoTUU0MDAwX01B R0lDLCAyMywgaW50KQogCi0jZGVmaW5lIE1FNDAwMF9ESU9fQ09ORklHICAgICAgICAgICAgIF9J T1cgKE1FNDAwMF9NQUdJQywgMjQsIG1lNDAwMF9kaW9fY29uZmlnX3QpCi0jZGVmaW5lIE1FNDAw MF9ESU9fR0VUX0JZVEUgICAgICAgICAgIF9JT1IgKE1FNDAwMF9NQUdJQywgMjUsIG1lNDAwMF9k aW9fYnl0ZV90KQotI2RlZmluZSBNRTQwMDBfRElPX1NFVF9CWVRFICAgICAgICAgICBfSU9XIChN RTQwMDBfTUFHSUMsIDI2LCBtZTQwMDBfZGlvX2J5dGVfdCkKKyNkZWZpbmUgTUU0MDAwX0RJT19D T05GSUcgICAgICAgICAgICAgX0lPVyAoTUU0MDAwX01BR0lDLCAyNCwgXAorCQkJCQkgICAgc3Ry dWN0IG1lNDAwMF9kaW9fY29uZmlnKQorI2RlZmluZSBNRTQwMDBfRElPX0dFVF9CWVRFICAgICAg ICAgICBfSU9SIChNRTQwMDBfTUFHSUMsIDI1LCBcCisJCQkJCSAgICBzdHJ1Y3QgbWU0MDAwX2Rp b19ieXRlKQorI2RlZmluZSBNRTQwMDBfRElPX1NFVF9CWVRFICAgICAgICAgICBfSU9XIChNRTQw MDBfTUFHSUMsIDI2LCBcCisJCQkJCSAgICBzdHJ1Y3QgbWU0MDAwX2Rpb19ieXRlKQogI2RlZmlu ZSBNRTQwMDBfRElPX1JFU0VUICAgICAgICAgICAgICBfSU8gIChNRTQwMDBfTUFHSUMsIDI3KQog Ci0jZGVmaW5lIE1FNDAwMF9DTlRfUkVBRCAgICAgICAgICAgICAgIF9JT1IgKE1FNDAwMF9NQUdJ QywgMjgsIG1lNDAwMF9jbnRfdCkKLSNkZWZpbmUgTUU0MDAwX0NOVF9XUklURSAgICAgICAgICAg ICAgX0lPVyAoTUU0MDAwX01BR0lDLCAyOSwgbWU0MDAwX2NudF90KQotI2RlZmluZSBNRTQwMDBf Q05UX0NPTkZJRyAgICAgICAgICAgICBfSU9XIChNRTQwMDBfTUFHSUMsIDMwLCBtZTQwMDBfY250 X2NvbmZpZ190KQorI2RlZmluZSBNRTQwMDBfQ05UX1JFQUQgICAgICAgICAgICAgICBfSU9SIChN RTQwMDBfTUFHSUMsIDI4LCBcCisJCQkJCSAgICBzdHJ1Y3QgbWU0MDAwX2NudCkKKyNkZWZpbmUg TUU0MDAwX0NOVF9XUklURSAgICAgICAgICAgICAgX0lPVyAoTUU0MDAwX01BR0lDLCAyOSwgXAor CQkJCQkgICAgc3RydWN0IG1lNDAwMF9jbnQpCisjZGVmaW5lIE1FNDAwMF9DTlRfQ09ORklHICAg ICAgICAgICAgIF9JT1cgKE1FNDAwMF9NQUdJQywgMzAsIFwKKwkJCQkJICAgIHN0cnVjdCBtZTQw MDBfY250X2NvbmZpZykKICNkZWZpbmUgTUU0MDAwX0NOVF9SRVNFVCAgICAgICAgICAgICAgX0lP ICAoTUU0MDAwX01BR0lDLCAzMSkKIAogI2RlZmluZSBNRTQwMDBfRVhUX0lOVF9ESVNBQkxFICAg ICAgICBfSU8gIChNRTQwMDBfTUFHSUMsIDMyKQpAQCAtOTM0LDEzICs5NDMsMTYgQEAgdHlwZWRl ZiBzdHJ1Y3QgewogI2RlZmluZSBNRTQwMDBfQUlfRlVMTFNDQUxFX0VOQUJMRSAgICBfSU8gIChN RTQwMDBfTUFHSUMsIDM3KQogI2RlZmluZSBNRTQwMDBfQUlfRlVMTFNDQUxFX0RJU0FCTEUgICBf SU8gIChNRTQwMDBfTUFHSUMsIDM4KQogCi0jZGVmaW5lIE1FNDAwMF9BSV9FRVBST01fUkVBRCAg ICAgICAgIF9JT1IgKE1FNDAwMF9NQUdJQywgMzksIG1lNDAwMF9lZXByb21fdCkKLSNkZWZpbmUg TUU0MDAwX0FJX0VFUFJPTV9XUklURSAgICAgICAgX0lPVyAoTUU0MDAwX01BR0lDLCA0MCwgbWU0 MDAwX2VlcHJvbV90KQorI2RlZmluZSBNRTQwMDBfQUlfRUVQUk9NX1JFQUQgICAgICAgICBfSU9S IChNRTQwMDBfTUFHSUMsIDM5LCBcCisJCQkJCSAgICBzdHJ1Y3QgbWU0MDAwX2VlcHJvbSkKKyNk ZWZpbmUgTUU0MDAwX0FJX0VFUFJPTV9XUklURSAgICAgICAgX0lPVyAoTUU0MDAwX01BR0lDLCA0 MCwgXAorCQkJCQkgICAgc3RydWN0IG1lNDAwMF9lZXByb20pCiAKICNkZWZpbmUgTUU0MDAwX0FP X1NJTVVMVEFORU9VU19FWF9UUklHIF9JTyAgKE1FNDAwMF9NQUdJQywgNDEpCiAjZGVmaW5lIE1F NDAwMF9BT19TSU1VTFRBTkVPVVNfU1cgICAgICBfSU8gIChNRTQwMDBfTUFHSUMsIDQyKQogI2Rl ZmluZSBNRTQwMDBfQU9fU0lNVUxUQU5FT1VTX0RJU0FCTEUgX0lPICAoTUU0MDAwX01BR0lDLCA0 MykKLSNkZWZpbmUgTUU0MDAwX0FPX1NJTVVMVEFORU9VU19VUERBVEUgIF9JT1cgKE1FNDAwMF9N QUdJQywgNDQsIG1lNDAwMF9hb19jaGFubmVsX2xpc3RfdCkKKyNkZWZpbmUgTUU0MDAwX0FPX1NJ TVVMVEFORU9VU19VUERBVEUgIF9JT1cgKE1FNDAwMF9NQUdJQywgNDQsIFwKKwkJCQkJICAgICBz dHJ1Y3QgbWU0MDAwX2FvX2NoYW5uZWxfbGlzdCkKIAogI2RlZmluZSBNRTQwMDBfQU9fU1lOQ0hS T05PVVNfRVhfVFJJRyAgX0lPICAoTUU0MDAwX01BR0lDLCA0NSkKICNkZWZpbmUgTUU0MDAwX0FP X1NZTkNIUk9OT1VTX1NXICAgICAgIF9JTyAgKE1FNDAwMF9NQUdJQywgNDYpCk9ubHkgaW4gYi9k cml2ZXJzL3N0YWdpbmcvbWU0MDAwLzogTW9kdWxlLm1hcmtlcnMK ------=_Part_74319_7351495.1224229431299-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/