Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759674Ab3IHDx5 (ORCPT ); Sat, 7 Sep 2013 23:53:57 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:56774 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758959Ab3IHDxv (ORCPT ); Sat, 7 Sep 2013 23:53:51 -0400 Message-ID: <1378612413.21183.13.camel@deadeye.wl.decadent.org.uk> Subject: Re: [000/121] 3.2.51-rc1 review From: Ben Hutchings To: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, torvalds@linux-foundation.org, akpm@linux-foundation.org Date: Sun, 08 Sep 2013 04:53:33 +0100 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-kxFCAiISnnsdrcOAYHRe" X-Mailer: Evolution 3.4.4-3 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 192.168.4.101 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 180982 Lines: 2381 --=-kxFCAiISnnsdrcOAYHRe Content-Type: multipart/mixed; boundary="=-gvKlMCWreGUlmooMFaEH" --=-gvKlMCWreGUlmooMFaEH Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.51-rc1 relative to 3.2.50. Ben. --=20 Ben Hutchings I haven't lost my mind; it's backed up on tape somewhere. --=-gvKlMCWreGUlmooMFaEH Content-Disposition: attachment; filename="linux-3.2.51-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.51-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUNCmluZGV4IDA3OTllOGUuLjJhMGU3OWYg MTAwNjQ0DQotLS0gYS9NYWtlZmlsZQ0KKysrIGIvTWFrZWZpbGUNCkBAIC0xLDcgKzEsNyBAQA0K IFZFUlNJT04gPSAzDQogUEFUQ0hMRVZFTCA9IDINCi1TVUJMRVZFTCA9IDUwDQotRVhUUkFWRVJT SU9OID0NCitTVUJMRVZFTCA9IDUxDQorRVhUUkFWRVJTSU9OID0gLXJjMQ0KIE5BTUUgPSBTYWJl ci10b290aGVkIFNxdWlycmVsDQogDQogIyAqRE9DVU1FTlRBVElPTioNCmRpZmYgLS1naXQgYS9h cmNoL2FscGhhL01ha2VmaWxlIGIvYXJjaC9hbHBoYS9NYWtlZmlsZQ0KaW5kZXggNDc1OWZlNy4u MmNjM2NjNSAxMDA2NDQNCi0tLSBhL2FyY2gvYWxwaGEvTWFrZWZpbGUNCisrKyBiL2FyY2gvYWxw aGEvTWFrZWZpbGUNCkBAIC0xMiw3ICsxMiw3IEBAIE5NIDo9ICQoTk0pIC1CDQogDQogTERGTEFH U192bWxpbnV4CTo9IC1zdGF0aWMgLU4gIy1yZWxheA0KIENIRUNLRkxBR1MJKz0gLURfX2FscGhh X18gLW02NA0KLWNmbGFncy15CTo9IC1waXBlIC1tbm8tZnAtcmVncyAtZmZpeGVkLTggLW1zbWFs bC1kYXRhDQorY2ZsYWdzLXkJOj0gLXBpcGUgLW1uby1mcC1yZWdzIC1mZml4ZWQtOA0KIGNmbGFn cy15CSs9ICQoY2FsbCBjYy1vcHRpb24sIC1mbm8tanVtcC10YWJsZXMpDQogDQogY3B1ZmxhZ3Mt JChDT05GSUdfQUxQSEFfRVY0KQkJOj0gLW1jcHU9ZXY0DQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0v S2NvbmZpZyBiL2FyY2gvYXJtL0tjb25maWcNCmluZGV4IDI3YmNkMTIuLjc5MGVhNjggMTAwNjQ0 DQotLS0gYS9hcmNoL2FybS9LY29uZmlnDQorKysgYi9hcmNoL2FybS9LY29uZmlnDQpAQCAtMSw3 ICsxLDYgQEANCiBjb25maWcgQVJNDQogCWJvb2wNCiAJZGVmYXVsdCB5DQotCXNlbGVjdCBIQVZF X0FPVVQNCiAJc2VsZWN0IEhBVkVfRE1BX0FQSV9ERUJVRw0KIAlzZWxlY3QgSEFWRV9JREUgaWYg UENJIHx8IElTQSB8fCBQQ01DSUENCiAJc2VsZWN0IEhBVkVfTUVNQkxPQ0sNCmRpZmYgLS1naXQg YS9hcmNoL2FybS9pbmNsdWRlL2FzbS9hLm91dC1jb3JlLmggYi9hcmNoL2FybS9pbmNsdWRlL2Fz bS9hLm91dC1jb3JlLmgNCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggOTJmMTBjYi4u MDAwMDAwMA0KLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vYS5vdXQtY29yZS5oDQorKysgL2Rl di9udWxsDQpAQCAtMSw0NSArMCwwIEBADQotLyogYS5vdXQgY29yZWR1bXAgcmVnaXN0ZXIgZHVt cGVyDQotICoNCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgUmVkIEhhdCwgSW5jLiBBbGwgUmlnaHRz IFJlc2VydmVkLg0KLSAqIFdyaXR0ZW4gYnkgRGF2aWQgSG93ZWxscyAoZGhvd2VsbHNAcmVkaGF0 LmNvbSkNCi0gKg0KLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3INCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5jZQ0KLSAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbg0KLSAqIDIgb2YgdGhlIExpY2Vu Y2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQotICovDQotDQotI2lm bmRlZiBfQVNNX0FfT1VUX0NPUkVfSA0KLSNkZWZpbmUgX0FTTV9BX09VVF9DT1JFX0gNCi0NCi0j aWZkZWYgX19LRVJORUxfXw0KLQ0KLSNpbmNsdWRlIDxsaW51eC91c2VyLmg+DQotI2luY2x1ZGUg PGxpbnV4L2VsZmNvcmUuaD4NCi0NCi0vKg0KLSAqIGZpbGwgaW4gdGhlIHVzZXIgc3RydWN0dXJl IGZvciBhbiBhLm91dCBjb3JlIGR1bXANCi0gKi8NCi1zdGF0aWMgaW5saW5lIHZvaWQgYW91dF9k dW1wX3RocmVhZChzdHJ1Y3QgcHRfcmVncyAqcmVncywgc3RydWN0IHVzZXIgKmR1bXApDQotew0K LQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayA9IGN1cnJlbnQ7DQotDQotCWR1bXAtPm1hZ2ljID0g Q01BR0lDOw0KLQlkdW1wLT5zdGFydF9jb2RlID0gdHNrLT5tbS0+c3RhcnRfY29kZTsNCi0JZHVt cC0+c3RhcnRfc3RhY2sgPSByZWdzLT5BUk1fc3AgJiB+KFBBR0VfU0laRSAtIDEpOw0KLQ0KLQlk dW1wLT51X3RzaXplID0gKHRzay0+bW0tPmVuZF9jb2RlIC0gdHNrLT5tbS0+c3RhcnRfY29kZSkg Pj4gUEFHRV9TSElGVDsNCi0JZHVtcC0+dV9kc2l6ZSA9ICh0c2stPm1tLT5icmsgLSB0c2stPm1t LT5zdGFydF9kYXRhICsgUEFHRV9TSVpFIC0gMSkgPj4gUEFHRV9TSElGVDsNCi0JZHVtcC0+dV9z c2l6ZSA9IDA7DQotDQotCW1lbXNldChkdW1wLT51X2RlYnVncmVnLCAwLCBzaXplb2YoZHVtcC0+ dV9kZWJ1Z3JlZykpOw0KLQ0KLQlpZiAoZHVtcC0+c3RhcnRfc3RhY2sgPCAweDA0MDAwMDAwKQ0K LQkJZHVtcC0+dV9zc2l6ZSA9ICgweDA0MDAwMDAwIC0gZHVtcC0+c3RhcnRfc3RhY2spID4+IFBB R0VfU0hJRlQ7DQotDQotCWR1bXAtPnJlZ3MgPSAqcmVnczsNCi0JZHVtcC0+dV9mcHZhbGlkID0g ZHVtcF9mcHUgKHJlZ3MsICZkdW1wLT51X2ZwKTsNCi19DQotDQotI2VuZGlmIC8qIF9fS0VSTkVM X18gKi8NCi0jZW5kaWYgLyogX0FTTV9BX09VVF9DT1JFX0ggKi8NCmRpZmYgLS1naXQgYS9hcmNo L2FybS9pbmNsdWRlL2FzbS9hLm91dC5oIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vYS5vdXQuaA0K ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwODM4OTRiLi4wMDAwMDAwDQotLS0gYS9h cmNoL2FybS9pbmNsdWRlL2FzbS9hLm91dC5oDQorKysgL2Rldi9udWxsDQpAQCAtMSwzNCArMCww IEBADQotI2lmbmRlZiBfX0FSTV9BX09VVF9IX18NCi0jZGVmaW5lIF9fQVJNX0FfT1VUX0hfXw0K LQ0KLSNpbmNsdWRlIDxsaW51eC9wZXJzb25hbGl0eS5oPg0KLSNpbmNsdWRlIDxsaW51eC90eXBl cy5oPg0KLQ0KLXN0cnVjdCBleGVjDQotew0KLSAgX191MzIgYV9pbmZvOwkJLyogVXNlIG1hY3Jv cyBOX01BR0lDLCBldGMgZm9yIGFjY2VzcyAqLw0KLSAgX191MzIgYV90ZXh0OwkJLyogbGVuZ3Ro IG9mIHRleHQsIGluIGJ5dGVzICovDQotICBfX3UzMiBhX2RhdGE7CQkvKiBsZW5ndGggb2YgZGF0 YSwgaW4gYnl0ZXMgKi8NCi0gIF9fdTMyIGFfYnNzOwkJLyogbGVuZ3RoIG9mIHVuaW5pdGlhbGl6 ZWQgZGF0YSBhcmVhIGZvciBmaWxlLCBpbiBieXRlcyAqLw0KLSAgX191MzIgYV9zeW1zOwkJLyog bGVuZ3RoIG9mIHN5bWJvbCB0YWJsZSBkYXRhIGluIGZpbGUsIGluIGJ5dGVzICovDQotICBfX3Uz MiBhX2VudHJ5OwkvKiBzdGFydCBhZGRyZXNzICovDQotICBfX3UzMiBhX3Ryc2l6ZTsJLyogbGVu Z3RoIG9mIHJlbG9jYXRpb24gaW5mbyBmb3IgdGV4dCwgaW4gYnl0ZXMgKi8NCi0gIF9fdTMyIGFf ZHJzaXplOwkvKiBsZW5ndGggb2YgcmVsb2NhdGlvbiBpbmZvIGZvciBkYXRhLCBpbiBieXRlcyAq Lw0KLX07DQotDQotLyoNCi0gKiBUaGlzIGlzIGFsd2F5cyB0aGUgc2FtZQ0KLSAqLw0KLSNkZWZp bmUgTl9UWFRBRERSKGEpCSgweDAwMDA4MDAwKQ0KLQ0KLSNkZWZpbmUgTl9UUlNJWkUoYSkJKChh KS5hX3Ryc2l6ZSkNCi0jZGVmaW5lIE5fRFJTSVpFKGEpCSgoYSkuYV9kcnNpemUpDQotI2RlZmlu ZSBOX1NZTVNJWkUoYSkJKChhKS5hX3N5bXMpDQotDQotI2RlZmluZSBNX0FSTSAxMDMNCi0NCi0j aWZuZGVmIExJQlJBUllfU1RBUlRfVEVYVA0KLSNkZWZpbmUgTElCUkFSWV9TVEFSVF9URVhUCSgw eDAwYzAwMDAwKQ0KLSNlbmRpZg0KLQ0KLSNlbmRpZiAvKiBfX0FfT1VUX0dOVV9IX18gKi8NCmRp ZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCBiL2FyY2gvYXJtL2lu Y2x1ZGUvYXNtL3Byb2Nlc3Nvci5oDQppbmRleCBiMmQ5ZGY1Li4zMzUyNDUxIDEwMDY0NA0KLS0t IGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgNCisrKyBiL2FyY2gvYXJtL2luY2x1 ZGUvYXNtL3Byb2Nlc3Nvci5oDQpAQCAtNTQsNyArNTQsNiBAQCBzdHJ1Y3QgdGhyZWFkX3N0cnVj dCB7DQogDQogI2RlZmluZSBzdGFydF90aHJlYWQocmVncyxwYyxzcCkJCQkJCVwNCiAoewkJCQkJ CQkJCVwNCi0JdW5zaWduZWQgbG9uZyAqc3RhY2sgPSAodW5zaWduZWQgbG9uZyAqKXNwOwkJCVwN CiAJc2V0X2ZzKFVTRVJfRFMpOwkJCQkJCVwNCiAJbWVtc2V0KHJlZ3MtPnVyZWdzLCAwLCBzaXpl b2YocmVncy0+dXJlZ3MpKTsJCQlcDQogCWlmIChjdXJyZW50LT5wZXJzb25hbGl0eSAmIEFERFJf TElNSVRfMzJCSVQpCQkJXA0KQEAgLTY2LDkgKzY1LDYgQEAgc3RydWN0IHRocmVhZF9zdHJ1Y3Qg ew0KIAlyZWdzLT5BUk1fY3BzciB8PSBQU1JfRU5EU1RBVEU7CQkJCQlcDQogCXJlZ3MtPkFSTV9w YyA9IHBjICYgfjE7CQkvKiBwYyAqLwkJCVwNCiAJcmVncy0+QVJNX3NwID0gc3A7CQkvKiBzcCAq LwkJCVwNCi0JcmVncy0+QVJNX3IyID0gc3RhY2tbMl07CS8qIHIyIChlbnZwKSAqLwkJCVwNCi0J cmVncy0+QVJNX3IxID0gc3RhY2tbMV07CS8qIHIxIChhcmd2KSAqLwkJCVwNCi0JcmVncy0+QVJN X3IwID0gc3RhY2tbMF07CS8qIHIwIChhcmdjKSAqLwkJCVwNCiAJbm9tbXVfc3RhcnRfdGhyZWFk KHJlZ3MpOwkJCQkJXA0KIH0pDQogDQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0va2VybmVsL3BlcmZf ZXZlbnQuYyBiL2FyY2gvYXJtL2tlcm5lbC9wZXJmX2V2ZW50LmMNCmluZGV4IDc3OGQyNDguLjRh MmRiNDggMTAwNjQ0DQotLS0gYS9hcmNoL2FybS9rZXJuZWwvcGVyZl9ldmVudC5jDQorKysgYi9h cmNoL2FybS9rZXJuZWwvcGVyZl9ldmVudC5jDQpAQCAtMTE2LDcgKzExNiwxMiBAQCBhcm1wbXVf bWFwX2NhY2hlX2V2ZW50KGNvbnN0IHVuc2lnbmVkICgqY2FjaGVfbWFwKQ0KIHN0YXRpYyBpbnQN CiBhcm1wbXVfbWFwX2V2ZW50KGNvbnN0IHVuc2lnbmVkICgqZXZlbnRfbWFwKVtQRVJGX0NPVU5U X0hXX01BWF0sIHU2NCBjb25maWcpDQogew0KLQlpbnQgbWFwcGluZyA9ICgqZXZlbnRfbWFwKVtj b25maWddOw0KKwlpbnQgbWFwcGluZzsNCisNCisJaWYgKGNvbmZpZyA+PSBQRVJGX0NPVU5UX0hX X01BWCkNCisJCXJldHVybiAtRU5PRU5UOw0KKw0KKwltYXBwaW5nID0gKCpldmVudF9tYXApW2Nv bmZpZ107DQogCXJldHVybiBtYXBwaW5nID09IEhXX09QX1VOU1VQUE9SVEVEID8gLUVOT0VOVCA6 IG1hcHBpbmc7DQogfQ0KIA0KQEAgLTMyNiw2ICszMzEsOSBAQCB2YWxpZGF0ZV9ldmVudChzdHJ1 Y3QgcG11X2h3X2V2ZW50cyAqaHdfZXZlbnRzLA0KIAlzdHJ1Y3QgaHdfcGVyZl9ldmVudCBmYWtl X2V2ZW50ID0gZXZlbnQtPmh3Ow0KIAlzdHJ1Y3QgcG11ICpsZWFkZXJfcG11ID0gZXZlbnQtPmdy b3VwX2xlYWRlci0+cG11Ow0KIA0KKwlpZiAoaXNfc29mdHdhcmVfZXZlbnQoZXZlbnQpKQ0KKwkJ cmV0dXJuIDE7DQorDQogCWlmIChldmVudC0+cG11ICE9IGxlYWRlcl9wbXUgfHwgZXZlbnQtPnN0 YXRlIDwgUEVSRl9FVkVOVF9TVEFURV9PRkYpDQogCQlyZXR1cm4gMTsNCiANCmRpZmYgLS1naXQg YS9hcmNoL2NyaXMva2VybmVsL3ZtbGludXgubGRzLlMgYi9hcmNoL2NyaXMva2VybmVsL3ZtbGlu dXgubGRzLlMNCmluZGV4IGE2OTkwY2IuLmE2OGI5ODMgMTAwNjQ0DQotLS0gYS9hcmNoL2NyaXMv a2VybmVsL3ZtbGludXgubGRzLlMNCisrKyBiL2FyY2gvY3Jpcy9rZXJuZWwvdm1saW51eC5sZHMu Uw0KQEAgLTUyLDYgKzUyLDcgQEAgU0VDVElPTlMNCiANCiAJRVhDRVBUSU9OX1RBQkxFKDQpDQog DQorCV9zZGF0YSA9IC47DQogCVJPREFUQQ0KIA0KIAkuID0gQUxJR04gKDQpOw0KZGlmZiAtLWdp dCBhL2FyY2gvaGV4YWdvbi9rZXJuZWwvZG1hLmMgYi9hcmNoL2hleGFnb24va2VybmVsL2RtYS5j DQppbmRleCBlNzExYWNlLi41NDg5MWUxIDEwMDY0NA0KLS0tIGEvYXJjaC9oZXhhZ29uL2tlcm5l bC9kbWEuYw0KKysrIGIvYXJjaC9oZXhhZ29uL2tlcm5lbC9kbWEuYw0KQEAgLTIyLDYgKzIyLDcg QEANCiAjaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPg0KICNpbmNsdWRlIDxsaW51eC9nZW5hbGxv Yy5oPg0KICNpbmNsdWRlIDxhc20vZG1hLW1hcHBpbmcuaD4NCisjaW5jbHVkZSA8bGludXgvbW9k dWxlLmg+DQogDQogc3RydWN0IGRtYV9tYXBfb3BzICpkbWFfb3BzOw0KIEVYUE9SVF9TWU1CT0wo ZG1hX29wcyk7DQpkaWZmIC0tZ2l0IGEvYXJjaC9oZXhhZ29uL2tlcm5lbC9wdHJhY2UuYyBiL2Fy Y2gvaGV4YWdvbi9rZXJuZWwvcHRyYWNlLmMNCmluZGV4IGJlYTNmMDguLjhmZTAzNDkgMTAwNjQ0 DQotLS0gYS9hcmNoL2hleGFnb24va2VybmVsL3B0cmFjZS5jDQorKysgYi9hcmNoL2hleGFnb24v a2VybmVsL3B0cmFjZS5jDQpAQCAtMjgsNiArMjgsNyBAQA0KICNpbmNsdWRlIDxsaW51eC9wdHJh Y2UuaD4NCiAjaW5jbHVkZSA8bGludXgvcmVnc2V0Lmg+DQogI2luY2x1ZGUgPGxpbnV4L3VzZXIu aD4NCisjaW5jbHVkZSA8bGludXgvZWxmLmg+DQogDQogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4N CiAjaW5jbHVkZSA8YXNtL3VzZXIuaD4NCmRpZmYgLS1naXQgYS9hcmNoL2hleGFnb24va2VybmVs L3RpbWUuYyBiL2FyY2gvaGV4YWdvbi9rZXJuZWwvdGltZS5jDQppbmRleCA2YmVlMTVjLi41ZDli MzNiIDEwMDY0NA0KLS0tIGEvYXJjaC9oZXhhZ29uL2tlcm5lbC90aW1lLmMNCisrKyBiL2FyY2gv aGV4YWdvbi9rZXJuZWwvdGltZS5jDQpAQCAtMjgsNiArMjgsNyBAQA0KICNpbmNsdWRlIDxsaW51 eC9vZi5oPg0KICNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+DQogI2luY2x1ZGUgPGxpbnV4 L29mX2lycS5oPg0KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCiANCiAjaW5jbHVkZSA8YXNt L3RpbWVyLXJlZ3MuaD4NCiAjaW5jbHVkZSA8YXNtL2hleGFnb25fdm0uaD4NCmRpZmYgLS1naXQg YS9hcmNoL2hleGFnb24va2VybmVsL3Zkc28uYyBiL2FyY2gvaGV4YWdvbi9rZXJuZWwvdmRzby5j DQppbmRleCAxNjI3N2MzLi5lNGNlZWRiIDEwMDY0NA0KLS0tIGEvYXJjaC9oZXhhZ29uL2tlcm5l bC92ZHNvLmMNCisrKyBiL2FyY2gvaGV4YWdvbi9rZXJuZWwvdmRzby5jDQpAQCAtMjEsNiArMjEs NyBAQA0KICNpbmNsdWRlIDxsaW51eC9lcnIuaD4NCiAjaW5jbHVkZSA8bGludXgvbW0uaD4NCiAj aW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPg0KKyNpbmNsdWRlIDxsaW51eC9iaW5mbXRzLmg+DQog DQogI2luY2x1ZGUgPGFzbS92ZHNvLmg+DQogDQpkaWZmIC0tZ2l0IGEvYXJjaC9tMzJyL2Jvb3Qv Y29tcHJlc3NlZC9NYWtlZmlsZSBiL2FyY2gvbTMyci9ib290L2NvbXByZXNzZWQvTWFrZWZpbGUN CmluZGV4IDE3NzcxNmIuLjAxNzI5YzIgMTAwNjQ0DQotLS0gYS9hcmNoL20zMnIvYm9vdC9jb21w cmVzc2VkL01ha2VmaWxlDQorKysgYi9hcmNoL20zMnIvYm9vdC9jb21wcmVzc2VkL01ha2VmaWxl DQpAQCAtNDMsOSArNDMsOSBAQCBlbmRpZg0KIA0KIE9CSkNPUFlGTEFHUyArPSAtUiAuZW1wdHlf emVyb19wYWdlDQogDQotc3VmZml4XyQoQ09ORklHX0tFUk5FTF9HWklQKQk9IGd6DQotc3VmZml4 XyQoQ09ORklHX0tFUk5FTF9CWklQMikJPSBiejINCi1zdWZmaXhfJChDT05GSUdfS0VSTkVMX0xa TUEpCT0gbHptYQ0KK3N1ZmZpeC0kKENPTkZJR19LRVJORUxfR1pJUCkJPSBneg0KK3N1ZmZpeC0k KENPTkZJR19LRVJORUxfQlpJUDIpCT0gYnoyDQorc3VmZml4LSQoQ09ORklHX0tFUk5FTF9MWk1B KQk9IGx6bWENCiANCiAkKG9iaikvcGlnZ3kubzogJChvYmopL3ZtbGludXguc2NyICQob2JqKS92 bWxpbnV4LmJpbi4kKHN1ZmZpeC15KSBGT1JDRQ0KIAkkKGNhbGwgaWZfY2hhbmdlZCxsZCkNCmRp ZmYgLS1naXQgYS9hcmNoL20zMnIvYm9vdC9jb21wcmVzc2VkL21pc2MuYyBiL2FyY2gvbTMyci9i b290L2NvbXByZXNzZWQvbWlzYy5jDQppbmRleCAzNzBkNjA4Li4yOGEwOTUyIDEwMDY0NA0KLS0t IGEvYXJjaC9tMzJyL2Jvb3QvY29tcHJlc3NlZC9taXNjLmMNCisrKyBiL2FyY2gvbTMyci9ib290 L2NvbXByZXNzZWQvbWlzYy5jDQpAQCAtMjgsNyArMjgsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9u ZyBmcmVlX21lbV9wdHI7DQogc3RhdGljIHVuc2lnbmVkIGxvbmcgZnJlZV9tZW1fZW5kX3B0cjsN CiANCiAjaWZkZWYgQ09ORklHX0tFUk5FTF9CWklQMg0KLXN0YXRpYyB2b2lkICptZW1zZXQodm9p ZCAqcywgaW50IGMsIHNpemVfdCBuKQ0KK3ZvaWQgKm1lbXNldCh2b2lkICpzLCBpbnQgYywgc2l6 ZV90IG4pDQogew0KIAljaGFyICpzcyA9IHM7DQogDQpAQCAtMzksNiArMzksMTYgQEAgc3RhdGlj IHZvaWQgKm1lbXNldCh2b2lkICpzLCBpbnQgYywgc2l6ZV90IG4pDQogI2VuZGlmDQogDQogI2lm ZGVmIENPTkZJR19LRVJORUxfR1pJUA0KK3ZvaWQgKm1lbWNweSh2b2lkICpkZXN0LCBjb25zdCB2 b2lkICpzcmMsIHNpemVfdCBuKQ0KK3sNCisJY2hhciAqZCA9IGRlc3Q7DQorCWNvbnN0IGNoYXIg KnMgPSBzcmM7DQorCXdoaWxlIChuLS0pDQorCQkqZCsrID0gKnMrKzsNCisNCisJcmV0dXJuIGRl c3Q7DQorfQ0KKw0KICNkZWZpbmUgQk9PVF9IRUFQX1NJWkUgICAgICAgICAgICAgMHgxMDAwMA0K ICNpbmNsdWRlICIuLi8uLi8uLi8uLi9saWIvZGVjb21wcmVzc19pbmZsYXRlLmMiDQogI2VuZGlm DQpkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL2VtdS9uYXRmZWF0LmMgYi9hcmNoL202OGsvZW11L25h dGZlYXQuYw0KaW5kZXggMjI5MWE3ZC4uZmEyNzdhZSAxMDA2NDQNCi0tLSBhL2FyY2gvbTY4ay9l bXUvbmF0ZmVhdC5jDQorKysgYi9hcmNoL202OGsvZW11L25hdGZlYXQuYw0KQEAgLTE4LDkgKzE4 LDExIEBADQogI2luY2x1ZGUgPGFzbS9tYWNoZGVwLmg+DQogI2luY2x1ZGUgPGFzbS9uYXRmZWF0 Lmg+DQogDQorZXh0ZXJuIGxvbmcgbmZfZ2V0X2lkMihjb25zdCBjaGFyICpmZWF0dXJlX25hbWUp Ow0KKw0KIGFzbSgiXG4iDQotIgkuZ2xvYmFsIG5mX2dldF9pZCxuZl9jYWxsXG4iDQotIm5mX2dl dF9pZDpcbiINCisiCS5nbG9iYWwgbmZfZ2V0X2lkMixuZl9jYWxsXG4iDQorIm5mX2dldF9pZDI6 XG4iDQogIgkuc2hvcnQJMHg3MzAwXG4iDQogIglydHNcbiINCiAibmZfY2FsbDpcbiINCkBAIC0y OSwxMiArMzEsMjUgQEAgYXNtKCJcbiINCiAiMToJbW92ZXEubAkjMCwlZDBcbiINCiAiCXJ0c1xu Ig0KICIJLnNlY3Rpb24gX19leF90YWJsZSxcImFcIlxuIg0KLSIJLmxvbmcJbmZfZ2V0X2lkLDFi XG4iDQorIgkubG9uZwluZl9nZXRfaWQyLDFiXG4iDQogIgkubG9uZwluZl9jYWxsLDFiXG4iDQog IgkucHJldmlvdXMiKTsNCi1FWFBPUlRfU1lNQk9MX0dQTChuZl9nZXRfaWQpOw0KIEVYUE9SVF9T WU1CT0xfR1BMKG5mX2NhbGwpOw0KIA0KK2xvbmcgbmZfZ2V0X2lkKGNvbnN0IGNoYXIgKmZlYXR1 cmVfbmFtZSkNCit7DQorCS8qIGZlYXR1cmVfbmFtZSBtYXkgYmUgaW4gdm1hbGxvYygpZWQgbWVt b3J5LCBzbyBtYWtlIGEgY29weSAqLw0KKwljaGFyIG5hbWVfY29weVszMl07DQorCXNpemVfdCBu Ow0KKw0KKwluID0gc3RybGNweShuYW1lX2NvcHksIGZlYXR1cmVfbmFtZSwgc2l6ZW9mKG5hbWVf Y29weSkpOw0KKwlpZiAobiA+PSBzaXplb2YobmFtZV9jb3B5KSkNCisJCXJldHVybiAwOw0KKw0K KwlyZXR1cm4gbmZfZ2V0X2lkMihuYW1lX2NvcHkpOw0KK30NCitFWFBPUlRfU1lNQk9MX0dQTChu Zl9nZXRfaWQpOw0KKw0KIHZvaWQgbmZwcmludChjb25zdCBjaGFyICpmbXQsIC4uLikNCiB7DQog CXN0YXRpYyBjaGFyIGJ1ZlsyNTZdOw0KZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9pbmNsdWRlL2Fz bS9kaXY2NC5oIGIvYXJjaC9tNjhrL2luY2x1ZGUvYXNtL2RpdjY0LmgNCmluZGV4IGVkYjY2MTQu Ljc1NTgwMzIgMTAwNjQ0DQotLS0gYS9hcmNoL202OGsvaW5jbHVkZS9hc20vZGl2NjQuaA0KKysr IGIvYXJjaC9tNjhrL2luY2x1ZGUvYXNtL2RpdjY0LmgNCkBAIC0xMywxNiArMTMsMTcgQEANCiAJ CXVuc2lnbmVkIGxvbmcgbG9uZyBuNjQ7CQkJCVwNCiAJfSBfX247CQkJCQkJCVwNCiAJdW5zaWdu ZWQgbG9uZyBfX3JlbSwgX191cHBlcjsJCQkJXA0KKwl1bnNpZ25lZCBsb25nIF9fYmFzZSA9IChi YXNlKTsJCQkJXA0KIAkJCQkJCQkJXA0KIAlfX24ubjY0ID0gKG4pOwkJCQkJCVwNCiAJaWYgKChf X3VwcGVyID0gX19uLm4zMlswXSkpIHsJCQkJXA0KIAkJYXNtICgiZGl2dWwubCAlMiwlMTolMCIJ CQkJXA0KLQkJCTogIj1kIiAoX19uLm4zMlswXSksICI9ZCIgKF9fdXBwZXIpCVwNCi0JCQk6ICJk IiAoYmFzZSksICIwIiAoX19uLm4zMlswXSkpOwlcDQorCQkgICAgIDogIj1kIiAoX19uLm4zMlsw XSksICI9ZCIgKF9fdXBwZXIpCVwNCisJCSAgICAgOiAiZCIgKF9fYmFzZSksICIwIiAoX19uLm4z MlswXSkpOwkJXA0KIAl9CQkJCQkJCVwNCiAJYXNtICgiZGl2dS5sICUyLCUxOiUwIgkJCQkJXA0K LQkJOiAiPWQiIChfX24ubjMyWzFdKSwgIj1kIiAoX19yZW0pCQlcDQotCQk6ICJkIiAoYmFzZSks ICIxIiAoX191cHBlciksICIwIiAoX19uLm4zMlsxXSkpOwlcDQorCSAgICAgOiAiPWQiIChfX24u bjMyWzFdKSwgIj1kIiAoX19yZW0pCQkJXA0KKwkgICAgIDogImQiIChfX2Jhc2UpLCAiMSIgKF9f dXBwZXIpLCAiMCIgKF9fbi5uMzJbMV0pKTsJXA0KIAkobikgPSBfX24ubjY0OwkJCQkJCVwNCiAJ X19yZW07CQkJCQkJCVwNCiB9KQ0KZGlmZiAtLWdpdCBhL2FyY2gvbWljcm9ibGF6ZS9jb25maWdz L21tdV9kZWZjb25maWcgYi9hcmNoL21pY3JvYmxhemUvY29uZmlncy9tbXVfZGVmY29uZmlnDQpp bmRleCBiM2Y1ZWVjLi5hNDcwZjU3IDEwMDY0NA0KLS0tIGEvYXJjaC9taWNyb2JsYXplL2NvbmZp Z3MvbW11X2RlZmNvbmZpZw0KKysrIGIvYXJjaC9taWNyb2JsYXplL2NvbmZpZ3MvbW11X2RlZmNv bmZpZw0KQEAgLTEsMjUgKzEsMjIgQEANCiBDT05GSUdfRVhQRVJJTUVOVEFMPXkNCiBDT05GSUdf U1lTVklQQz15DQorQ09ORklHX1BPU0lYX01RVUVVRT15DQorQ09ORklHX0ZIQU5ETEU9eQ0KK0NP TkZJR19BVURJVD15DQorQ09ORklHX0FVRElUX0xPR0lOVUlEX0lNTVVUQUJMRT15DQogQ09ORklH X0lLQ09ORklHPXkNCiBDT05GSUdfSUtDT05GSUdfUFJPQz15DQorQ09ORklHX1NZU0ZTX0RFUFJF Q0FURUQ9eQ0KIENPTkZJR19TWVNGU19ERVBSRUNBVEVEX1YyPXkNCi1DT05GSUdfQkxLX0RFVl9J TklUUkQ9eQ0KLUNPTkZJR19JTklUUkFNRlNfU09VUkNFPSJyb290ZnMuY3BpbyINCi1DT05GSUdf SU5JVFJBTUZTX0NPTVBSRVNTSU9OX0daSVA9eQ0KLSMgQ09ORklHX0NDX09QVElNSVpFX0ZPUl9T SVpFIGlzIG5vdCBzZXQNCi1DT05GSUdfRVhQRVJUPXkNCiBDT05GSUdfS0FMTFNZTVNfQUxMPXkN Ci1DT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUz15DQotIyBDT05GSUdfSE9UUExVRyBpcyBub3Qg c2V0DQogIyBDT05GSUdfQkFTRV9GVUxMIGlzIG5vdCBzZXQNCi0jIENPTkZJR19GVVRFWCBpcyBu b3Qgc2V0DQotIyBDT05GSUdfRVBPTEwgaXMgbm90IHNldA0KLSMgQ09ORklHX1NJR05BTEZEIGlz IG5vdCBzZXQNCi0jIENPTkZJR19TSE1FTSBpcyBub3Qgc2V0DQorQ09ORklHX0VNQkVEREVEPXkN CiBDT05GSUdfU0xBQj15DQogQ09ORklHX01PRFVMRVM9eQ0KIENPTkZJR19NT0RVTEVfVU5MT0FE PXkNCiAjIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0DQorQ09ORklHX1BBUlRJVElPTl9B RFZBTkNFRD15DQorIyBDT05GSUdfRUZJX1BBUlRJVElPTiBpcyBub3Qgc2V0DQogQ09ORklHX09Q VF9MSUJfQVNNPXkNCiBDT05GSUdfWElMSU5YX01JQ1JPQkxBWkUwX1VTRV9NU1JfSU5TVFI9MQ0K IENPTkZJR19YSUxJTlhfTUlDUk9CTEFaRTBfVVNFX1BDTVBfSU5TVFI9MQ0KQEAgLTM3LDMzICsz NCw1MyBAQCBDT05GSUdfVU5JWD15DQogQ09ORklHX0lORVQ9eQ0KICMgQ09ORklHX0lORVRfTFJP IGlzIG5vdCBzZXQNCiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQNCitDT05GSUdfTVREPXkNCiBD T05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkNCiBDT05GSUdfQkxLX0RFVl9SQU09eQ0KIENPTkZJR19C TEtfREVWX1JBTV9TSVpFPTgxOTINCiBDT05GSUdfTkVUREVWSUNFUz15DQotQ09ORklHX05FVF9F VEhFUk5FVD15DQogQ09ORklHX1hJTElOWF9FTUFDTElURT15DQorQ09ORklHX1hJTElOWF9MTF9U RU1BQz15DQogIyBDT05GSUdfSU5QVVQgaXMgbm90IHNldA0KICMgQ09ORklHX1NFUklPIGlzIG5v dCBzZXQNCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0DQorQ09ORklHX1NFUklBTF84MjUwPXkNCitD T05GSUdfU0VSSUFMXzgyNTBfQ09OU09MRT15DQogQ09ORklHX1NFUklBTF9VQVJUTElURT15DQog Q09ORklHX1NFUklBTF9VQVJUTElURV9DT05TT0xFPXkNCiAjIENPTkZJR19IV19SQU5ET00gaXMg bm90IHNldA0KK0NPTkZJR19YSUxJTlhfSFdJQ0FQPXkNCitDT05GSUdfSTJDPXkNCitDT05GSUdf STJDX1hJTElOWD15DQorQ09ORklHX1NQST15DQorQ09ORklHX1NQSV9YSUxJTlg9eQ0KK0NPTkZJ R19HUElPTElCPXkNCitDT05GSUdfR1BJT19TWVNGUz15DQorQ09ORklHX0dQSU9fWElMSU5YPXkN CiAjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0DQorQ09ORklHX1dBVENIRE9HPXkNCitDT05GSUdf WElMSU5YX1dBVENIRE9HPXkNCitDT05GSUdfRkI9eQ0KK0NPTkZJR19GQl9YSUxJTlg9eQ0KICMg Q09ORklHX1VTQl9TVVBQT1JUIGlzIG5vdCBzZXQNCitDT05GSUdfVUlPPXkNCitDT05GSUdfVUlP X1BEUlY9eQ0KK0NPTkZJR19VSU9fUERSVl9HRU5JUlE9eQ0KK0NPTkZJR19VSU9fRE1FTV9HRU5J UlE9eQ0KIENPTkZJR19FWFQyX0ZTPXkNCiAjIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXQNCitD T05GSUdfQ1JBTUZTPXkNCitDT05GSUdfUk9NRlNfRlM9eQ0KIENPTkZJR19ORlNfRlM9eQ0KLUNP TkZJR19ORlNfVjM9eQ0KIENPTkZJR19DSUZTPXkNCiBDT05GSUdfQ0lGU19TVEFUUz15DQogQ09O RklHX0NJRlNfU1RBVFMyPXkNCi1DT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEPXkNCi1DT05GSUdf REVCVUdfS0VSTkVMPXkNCiBDT05GSUdfREVURUNUX0hVTkdfVEFTSz15DQogQ09ORklHX0RFQlVH X1NMQUI9eQ0KIENPTkZJR19ERUJVR19TUElOTE9DSz15DQogQ09ORklHX0RFQlVHX0lORk89eQ0K LSMgQ09ORklHX1JDVV9DUFVfU1RBTExfREVURUNUT1IgaXMgbm90IHNldA0KIENPTkZJR19FQVJM WV9QUklOVEs9eQ0KK0NPTkZJR19LRVlTPXkNCitDT05GSUdfRU5DUllQVEVEX0tFWVM9eQ0KK0NP TkZJR19LRVlTX0RFQlVHX1BST0NfS0VZUz15DQogIyBDT05GSUdfQ1JZUFRPX0FOU0lfQ1BSTkcg aXMgbm90IHNldA0KZGlmZiAtLWdpdCBhL2FyY2gvbWljcm9ibGF6ZS9jb25maWdzL25vbW11X2Rl ZmNvbmZpZyBiL2FyY2gvbWljcm9ibGF6ZS9jb25maWdzL25vbW11X2RlZmNvbmZpZw0KaW5kZXgg MDI0OWU0Yi4uNTQ1NGE2ZCAxMDA2NDQNCi0tLSBhL2FyY2gvbWljcm9ibGF6ZS9jb25maWdzL25v bW11X2RlZmNvbmZpZw0KKysrIGIvYXJjaC9taWNyb2JsYXplL2NvbmZpZ3Mvbm9tbXVfZGVmY29u ZmlnDQpAQCAtMSw0MSArMSw0MCBAQA0KIENPTkZJR19FWFBFUklNRU5UQUw9eQ0KIENPTkZJR19T WVNWSVBDPXkNCiBDT05GSUdfUE9TSVhfTVFVRVVFPXkNCitDT05GSUdfRkhBTkRMRT15DQorQ09O RklHX0FVRElUPXkNCitDT05GSUdfQVVESVRfTE9HSU5VSURfSU1NVVRBQkxFPXkNCiBDT05GSUdf QlNEX1BST0NFU1NfQUNDVD15DQogQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1RfVjM9eQ0KIENPTkZJ R19JS0NPTkZJRz15DQogQ09ORklHX0lLQ09ORklHX1BST0M9eQ0KK0NPTkZJR19TWVNGU19ERVBS RUNBVEVEPXkNCiBDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMj15DQotQ09ORklHX0VYUEVSVD15 DQogQ09ORklHX0tBTExTWU1TX0FMTD15DQotQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1M9eQ0K LSMgQ09ORklHX0hPVFBMVUcgaXMgbm90IHNldA0KICMgQ09ORklHX0JBU0VfRlVMTCBpcyBub3Qg c2V0DQorQ09ORklHX0VNQkVEREVEPXkNCiBDT05GSUdfU0xBQj15DQogQ09ORklHX01PRFVMRVM9 eQ0KIENPTkZJR19NT0RVTEVfVU5MT0FEPXkNCiAjIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qg c2V0DQotIyBDT05GSUdfT1BUX0xJQl9GVU5DVElPTiBpcyBub3Qgc2V0DQorQ09ORklHX1BBUlRJ VElPTl9BRFZBTkNFRD15DQorIyBDT05GSUdfRUZJX1BBUlRJVElPTiBpcyBub3Qgc2V0DQogQ09O RklHX1hJTElOWF9NSUNST0JMQVpFMF9VU0VfTVNSX0lOU1RSPTENCiBDT05GSUdfWElMSU5YX01J Q1JPQkxBWkUwX1VTRV9QQ01QX0lOU1RSPTENCiBDT05GSUdfWElMSU5YX01JQ1JPQkxBWkUwX1VT RV9CQVJSRUw9MQ0KIENPTkZJR19YSUxJTlhfTUlDUk9CTEFaRTBfVVNFX0RJVj0xDQogQ09ORklH X1hJTElOWF9NSUNST0JMQVpFMF9VU0VfSFdfTVVMPTINCiBDT05GSUdfWElMSU5YX01JQ1JPQkxB WkUwX1VTRV9GUFU9Mg0KLUNPTkZJR19ISUdIX1JFU19USU1FUlM9eQ0KIENPTkZJR19IWl8xMDA9 eQ0KIENPTkZJR19DTURMSU5FX0JPT0w9eQ0KLUNPTkZJR19CSU5GTVRfRkxBVD15DQorQ09ORklH X0NNRExJTkVfRk9SQ0U9eQ0KIENPTkZJR19ORVQ9eQ0KIENPTkZJR19QQUNLRVQ9eQ0KIENPTkZJ R19VTklYPXkNCiBDT05GSUdfSU5FVD15DQogIyBDT05GSUdfSU5FVF9MUk8gaXMgbm90IHNldA0K ICMgQ09ORklHX0lQVjYgaXMgbm90IHNldA0KLSMgQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJ TEQgaXMgbm90IHNldA0KIENPTkZJR19NVEQ9eQ0KLUNPTkZJR19NVERfQ09OQ0FUPXkNCi1DT05G SUdfTVREX1BBUlRJVElPTlM9eQ0KIENPTkZJR19NVERfQ01ETElORV9QQVJUUz15DQogQ09ORklH X01URF9DSEFSPXkNCiBDT05GSUdfTVREX0JMT0NLPXkNCkBAIC00NSw0MSArNDQsNTUgQEAgQ09O RklHX01URF9DRklfQU1EU1REPXkNCiBDT05GSUdfTVREX1JBTT15DQogQ09ORklHX01URF9VQ0xJ TlVYPXkNCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkNCi1DT05GSUdfQkxLX0RFVl9OQkQ9eQ0K IENPTkZJR19CTEtfREVWX1JBTT15DQorQ09ORklHX0JMS19ERVZfUkFNX1NJWkU9ODE5Mg0KIENP TkZJR19ORVRERVZJQ0VTPXkNCi1DT05GSUdfTkVUX0VUSEVSTkVUPXkNCitDT05GSUdfWElMSU5Y X0VNQUNMSVRFPXkNCitDT05GSUdfWElMSU5YX0xMX1RFTUFDPXkNCiAjIENPTkZJR19JTlBVVCBp cyBub3Qgc2V0DQogIyBDT05GSUdfU0VSSU8gaXMgbm90IHNldA0KICMgQ09ORklHX1ZUIGlzIG5v dCBzZXQNCitDT05GSUdfU0VSSUFMXzgyNTA9eQ0KK0NPTkZJR19TRVJJQUxfODI1MF9DT05TT0xF PXkNCiBDT05GSUdfU0VSSUFMX1VBUlRMSVRFPXkNCiBDT05GSUdfU0VSSUFMX1VBUlRMSVRFX0NP TlNPTEU9eQ0KLUNPTkZJR19IV19SQU5ET009eQ0KKyMgQ09ORklHX0hXX1JBTkRPTSBpcyBub3Qg c2V0DQorQ09ORklHX1hJTElOWF9IV0lDQVA9eQ0KK0NPTkZJR19JMkM9eQ0KK0NPTkZJR19JMkNf WElMSU5YPXkNCitDT05GSUdfU1BJPXkNCitDT05GSUdfU1BJX1hJTElOWD15DQorQ09ORklHX0dQ SU9MSUI9eQ0KK0NPTkZJR19HUElPX1NZU0ZTPXkNCitDT05GSUdfR1BJT19YSUxJTlg9eQ0KICMg Q09ORklHX0hXTU9OIGlzIG5vdCBzZXQNCi1DT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0w9eQ0K K0NPTkZJR19XQVRDSERPRz15DQorQ09ORklHX1hJTElOWF9XQVRDSERPRz15DQorQ09ORklHX0ZC PXkNCitDT05GSUdfRkJfWElMSU5YPXkNCisjIENPTkZJR19VU0JfU1VQUE9SVCBpcyBub3Qgc2V0 DQorQ09ORklHX1VJTz15DQorQ09ORklHX1VJT19QRFJWPXkNCitDT05GSUdfVUlPX1BEUlZfR0VO SVJRPXkNCitDT05GSUdfVUlPX0RNRU1fR0VOSVJRPXkNCiBDT05GSUdfRVhUMl9GUz15DQogIyBD T05GSUdfRE5PVElGWSBpcyBub3Qgc2V0DQogQ09ORklHX0NSQU1GUz15DQogQ09ORklHX1JPTUZT X0ZTPXkNCiBDT05GSUdfTkZTX0ZTPXkNCi1DT05GSUdfTkZTX1YzPXkNCiBDT05GSUdfTkZTX1Yz X0FDTD15DQotQ09ORklHX1VOVVNFRF9TWU1CT0xTPXkNCi1DT05GSUdfREVCVUdfRlM9eQ0KLUNP TkZJR19ERUJVR19LRVJORUw9eQ0KLUNPTkZJR19ERUJVR19TSElSUT15DQorQ09ORklHX05MUz15 DQogQ09ORklHX0RFVEVDVF9IVU5HX1RBU0s9eQ0KLUNPTkZJR19TQ0hFRFNUQVRTPXkNCi1DT05G SUdfVElNRVJfU1RBVFM9eQ0KLUNPTkZJR19ERUJVR19PQkpFQ1RTPXkNCi1DT05GSUdfREVCVUdf T0JKRUNUU19TRUxGVEVTVD15DQotQ09ORklHX0RFQlVHX09CSkVDVFNfRlJFRT15DQotQ09ORklH X0RFQlVHX09CSkVDVFNfVElNRVJTPXkNCitDT05GSUdfREVCVUdfU0xBQj15DQorQ09ORklHX0RF QlVHX1NQSU5MT0NLPXkNCiBDT05GSUdfREVCVUdfSU5GTz15DQotQ09ORklHX0RFQlVHX0xJU1Q9 eQ0KLUNPTkZJR19ERUJVR19TRz15DQotIyBDT05GSUdfUkNVX0NQVV9TVEFMTF9ERVRFQ1RPUiBp cyBub3Qgc2V0DQotQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkNCiBDT05GSUdfRUFSTFlf UFJJTlRLPXkNCitDT05GSUdfS0VZUz15DQorQ09ORklHX0VOQ1JZUFRFRF9LRVlTPXkNCitDT05G SUdfS0VZU19ERUJVR19QUk9DX0tFWVM9eQ0KK0NPTkZJR19DUllQVE9fRUNCPXkNCitDT05GSUdf Q1JZUFRPX01END15DQorQ09ORklHX0NSWVBUT19NRDU9eQ0KK0NPTkZJR19DUllQVE9fQVJDND15 DQorQ09ORklHX0NSWVBUT19ERVM9eQ0KICMgQ09ORklHX0NSWVBUT19BTlNJX0NQUk5HIGlzIG5v dCBzZXQNCi0jIENPTkZJR19DUkMzMiBpcyBub3Qgc2V0DQpkaWZmIC0tZ2l0IGEvYXJjaC9taWNy b2JsYXplL2luY2x1ZGUvYXNtL2Z1dGV4LmggYi9hcmNoL21pY3JvYmxhemUvaW5jbHVkZS9hc20v ZnV0ZXguaA0KaW5kZXggYjA1MjZkMi4uZmY4Y2RlMSAxMDA2NDQNCi0tLSBhL2FyY2gvbWljcm9i bGF6ZS9pbmNsdWRlL2FzbS9mdXRleC5oDQorKysgYi9hcmNoL21pY3JvYmxhemUvaW5jbHVkZS9h c20vZnV0ZXguaA0KQEAgLTI0LDcgKzI0LDcgQEANCiAJCQkud29yZAkxYiw0YiwyYiw0YjsJCQkJ XA0KIAkJCS5wcmV2aW91czsiCQkJCQlcDQogCTogIj0mciIgKG9sZHZhbCksICI9JnIiIChyZXQp CQkJCQlcDQotCTogImIiICh1YWRkciksICJpIiAoLUVGQVVMVCksICJyIiAob3BhcmcpCQkJXA0K Kwk6ICJyIiAodWFkZHIpLCAiaSIgKC1FRkFVTFQpLCAiciIgKG9wYXJnKQkJCVwNCiAJKTsJCQkJ CQkJCVwNCiB9KQ0KIA0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9LY29uZmlnIGIvYXJjaC9w b3dlcnBjL0tjb25maWcNCmluZGV4IDk1MWUxOGYuLjE2ZWY4MzggMTAwNjQ0DQotLS0gYS9hcmNo L3Bvd2VycGMvS2NvbmZpZw0KKysrIGIvYXJjaC9wb3dlcnBjL0tjb25maWcNCkBAIC05MzcsNiAr OTM3LDcgQEAgY29uZmlnIFJFTE9DQVRBQkxFDQogCSAgbXVzdCBsaXZlIGF0IGEgZGlmZmVyZW50 IHBoeXNpY2FsIGFkZHJlc3MgdGhhbiB0aGUgcHJpbWFyeQ0KIAkgIGtlcm5lbC4NCiANCisjIFRo aXMgdmFsdWUgbXVzdCBoYXZlIHplcm9lcyBpbiB0aGUgYm90dG9tIDYwIGJpdHMgb3RoZXJ3aXNl IGxvdHMgd2lsbCBicmVhaw0KIGNvbmZpZyBQQUdFX09GRlNFVA0KIAloZXgNCiAJZGVmYXVsdCAi MHhjMDAwMDAwMDAwMDAwMDAwIg0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2Fz bS9wYWdlLmggYi9hcmNoL3Bvd2VycGMvaW5jbHVkZS9hc20vcGFnZS5oDQppbmRleCBkZDljNGZk Li41YjBiZGUyIDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BhZ2UuaA0K KysrIGIvYXJjaC9wb3dlcnBjL2luY2x1ZGUvYXNtL3BhZ2UuaA0KQEAgLTEzMiw5ICsxMzIsMTkg QEAgZXh0ZXJuIHBoeXNfYWRkcl90IGtlcm5zdGFydF9hZGRyOw0KICNkZWZpbmUgX192YSh4KSAo KHZvaWQgKikodW5zaWduZWQgbG9uZykoKHBoeXNfYWRkcl90KSh4KSAtIFBIWVNJQ0FMX1NUQVJU ICsgS0VSTkVMQkFTRSkpDQogI2RlZmluZSBfX3BhKHgpICgodW5zaWduZWQgbG9uZykoeCkgKyBQ SFlTSUNBTF9TVEFSVCAtIEtFUk5FTEJBU0UpDQogI2Vsc2UNCisjaWZkZWYgQ09ORklHX1BQQzY0 DQorLyoNCisgKiBnY2MgbWlzY29tcGlsZXMgKHVuc2lnbmVkIGxvbmcpKCZzdGF0aWNfdmFyKSAt IFBBR0VfT0ZGU0VUDQorICogd2l0aCAtbWNtb2RlbD1tZWRpdW0sIHNvIHdlIHVzZSAmIGFuZCB8 IGluc3RlYWQgb2YgLSBhbmQgKyBvbiA2NC1iaXQuDQorICovDQorI2RlZmluZSBfX3ZhKHgpICgo dm9pZCAqKSh1bnNpZ25lZCBsb25nKSgocGh5c19hZGRyX3QpKHgpIHwgUEFHRV9PRkZTRVQpKQ0K KyNkZWZpbmUgX19wYSh4KSAoKHVuc2lnbmVkIGxvbmcpKHgpICYgMHgwZmZmZmZmZmZmZmZmZmZm VUwpDQorDQorI2Vsc2UgLyogMzItYml0LCBub24gYm9vayBFICovDQogI2RlZmluZSBfX3ZhKHgp ICgodm9pZCAqKSh1bnNpZ25lZCBsb25nKSgocGh5c19hZGRyX3QpKHgpICsgUEFHRV9PRkZTRVQg LSBNRU1PUllfU1RBUlQpKQ0KICNkZWZpbmUgX19wYSh4KSAoKHVuc2lnbmVkIGxvbmcpKHgpIC0g UEFHRV9PRkZTRVQgKyBNRU1PUllfU1RBUlQpDQogI2VuZGlmDQorI2VuZGlmDQogDQogLyoNCiAg KiBVbmZvcnR1bmF0ZWx5IHRoZSBQTFQgaXMgaW4gdGhlIEJTUyBpbiB0aGUgUFBDMzIgRUxGIEFC SSwNCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL2xwYXJjZmcuYyBiL2FyY2gvcG93 ZXJwYy9rZXJuZWwvbHBhcmNmZy5jDQppbmRleCA4NGRhYWJlLi44MjY2ODFkIDEwMDY0NA0KLS0t IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9scGFyY2ZnLmMNCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJu ZWwvbHBhcmNmZy5jDQpAQCAtMzcsNyArMzcsMTMgQEANCiAjaW5jbHVkZSA8YXNtL3Zkc29fZGF0 YXBhZ2UuaD4NCiAjaW5jbHVkZSA8YXNtL3Zpby5oPg0KICNpbmNsdWRlIDxhc20vbW11Lmg+DQor I2luY2x1ZGUgPGFzbS9tYWNoZGVwLmg+DQogDQorDQorLyoNCisgKiBUaGlzIGlzbid0IGEgbW9k dWxlIGJ1dCB3ZSBleHBvc2UgdGhhdCB0byB1c2Vyc3BhY2UNCisgKiB2aWEgL3Byb2Mgc28gbGVh dmUgdGhlIGRlZmluaXRpb25zIGhlcmUNCisgKi8NCiAjZGVmaW5lIE1PRFVMRV9WRVJTICIxLjki DQogI2RlZmluZSBNT0RVTEVfTkFNRSAibHBhcmNmZyINCiANCkBAIC00ODcsNyArNDkzLDggQEAg c3RhdGljIHZvaWQgcGFyc2VfZW1fZGF0YShzdHJ1Y3Qgc2VxX2ZpbGUgKm0pDQogew0KIAl1bnNp Z25lZCBsb25nIHJldGJ1ZltQTFBBUl9IQ0FMTF9CVUZTSVpFXTsNCiANCi0JaWYgKHBscGFyX2hj YWxsKEhfR0VUX0VNX1BBUk1TLCByZXRidWYpID09IEhfU1VDQ0VTUykNCisJaWYgKGZpcm13YXJl X2hhc19mZWF0dXJlKEZXX0ZFQVRVUkVfTFBBUikgJiYNCisJICAgIHBscGFyX2hjYWxsKEhfR0VU X0VNX1BBUk1TLCByZXRidWYpID09IEhfU1VDQ0VTUykNCiAJCXNlcV9wcmludGYobSwgInBvd2Vy X21vZGVfZGF0YT0lMDE2bHhcbiIsIHJldGJ1ZlswXSk7DQogfQ0KIA0KQEAgLTc3Miw3ICs3Nzks NiBAQCBzdGF0aWMgaW50IGxwYXJjZmdfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3Qg ZmlsZSAqZmlsZSkNCiB9DQogDQogc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMg bHBhcmNmZ19mb3BzID0gew0KLQkub3duZXIJCT0gVEhJU19NT0RVTEUsDQogCS5yZWFkCQk9IHNl cV9yZWFkLA0KIAkud3JpdGUJCT0gbHBhcmNmZ193cml0ZSwNCiAJLm9wZW4JCT0gbHBhcmNmZ19v cGVuLA0KQEAgLTc5OSwxNSArODA1LDQgQEAgc3RhdGljIGludCBfX2luaXQgbHBhcmNmZ19pbml0 KHZvaWQpDQogCXByb2NfcHBjNjRfbHBhcmNmZyA9IGVudDsNCiAJcmV0dXJuIDA7DQogfQ0KLQ0K LXN0YXRpYyB2b2lkIF9fZXhpdCBscGFyY2ZnX2NsZWFudXAodm9pZCkNCi17DQotCWlmIChwcm9j X3BwYzY0X2xwYXJjZmcpDQotCQlyZW1vdmVfcHJvY19lbnRyeSgibHBhcmNmZyIsIHByb2NfcHBj NjRfbHBhcmNmZy0+cGFyZW50KTsNCi19DQotDQotbW9kdWxlX2luaXQobHBhcmNmZ19pbml0KTsN Ci1tb2R1bGVfZXhpdChscGFyY2ZnX2NsZWFudXApOw0KLU1PRFVMRV9ERVNDUklQVElPTigiSW50 ZXJmYWNlIGZvciBMUEFSIGNvbmZpZ3VyYXRpb24gZGF0YSIpOw0KLU1PRFVMRV9BVVRIT1IoIkRh dmUgRW5nZWJyZXRzZW4iKTsNCi1NT0RVTEVfTElDRU5TRSgiR1BMIik7DQorbWFjaGluZV9kZXZp Y2VfaW5pdGNhbGwocHNlcmllcywgbHBhcmNmZ19pbml0KTsNCmRpZmYgLS1naXQgYS9hcmNoL3Mz OTAva3ZtL2t2bS1zMzkwLmMgYi9hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmMNCmluZGV4IDRkYjli MWUuLmRkMDcyYjEgMTAwNjQ0DQotLS0gYS9hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmMNCisrKyBi L2FyY2gvczM5MC9rdm0va3ZtLXMzOTAuYw0KQEAgLTQ2OSw2ICs0NjksOCBAQCBpbnQga3ZtX2Fy Y2hfdmNwdV9pb2N0bF9zZXRfbXBzdGF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsDQogDQogc3Rh dGljIHZvaWQgX192Y3B1X3J1bihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpDQogew0KKwlpbnQgcmM7 DQorDQogCW1lbWNweSgmdmNwdS0+YXJjaC5zaWVfYmxvY2stPmdnMTQsICZ2Y3B1LT5hcmNoLmd1 ZXN0X2dwcnNbMTRdLCAxNik7DQogDQogCWlmIChuZWVkX3Jlc2NoZWQoKSkNCkBAIC00NzksMjEg KzQ4MSwyNCBAQCBzdGF0aWMgdm9pZCBfX3ZjcHVfcnVuKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkN CiANCiAJa3ZtX3MzOTBfZGVsaXZlcl9wZW5kaW5nX2ludGVycnVwdHModmNwdSk7DQogDQorCVZD UFVfRVZFTlQodmNwdSwgNiwgImVudGVyaW5nIHNpZSBmbGFncyAleCIsDQorCQkgICBhdG9taWNf cmVhZCgmdmNwdS0+YXJjaC5zaWVfYmxvY2stPmNwdWZsYWdzKSk7DQorDQogCXZjcHUtPmFyY2gu c2llX2Jsb2NrLT5pY3B0Y29kZSA9IDA7DQogCWxvY2FsX2lycV9kaXNhYmxlKCk7DQogCWt2bV9n dWVzdF9lbnRlcigpOw0KIAlsb2NhbF9pcnFfZW5hYmxlKCk7DQotCVZDUFVfRVZFTlQodmNwdSwg NiwgImVudGVyaW5nIHNpZSBmbGFncyAleCIsDQotCQkgICBhdG9taWNfcmVhZCgmdmNwdS0+YXJj aC5zaWVfYmxvY2stPmNwdWZsYWdzKSk7DQotCWlmIChzaWU2NGEodmNwdS0+YXJjaC5zaWVfYmxv Y2ssIHZjcHUtPmFyY2guZ3Vlc3RfZ3BycykpIHsNCisJcmMgPSBzaWU2NGEodmNwdS0+YXJjaC5z aWVfYmxvY2ssIHZjcHUtPmFyY2guZ3Vlc3RfZ3Bycyk7DQorCWxvY2FsX2lycV9kaXNhYmxlKCk7 DQorCWt2bV9ndWVzdF9leGl0KCk7DQorCWxvY2FsX2lycV9lbmFibGUoKTsNCisNCisJaWYgKHJj KSB7DQogCQlWQ1BVX0VWRU5UKHZjcHUsIDMsICIlcyIsICJmYXVsdCBpbiBzaWUgaW5zdHJ1Y3Rp b24iKTsNCiAJCWt2bV9zMzkwX2luamVjdF9wcm9ncmFtX2ludCh2Y3B1LCBQR01fQUREUkVTU0lO Ryk7DQogCX0NCiAJVkNQVV9FVkVOVCh2Y3B1LCA2LCAiZXhpdCBzaWUgaWNwdGNvZGUgJWQiLA0K IAkJICAgdmNwdS0+YXJjaC5zaWVfYmxvY2stPmljcHRjb2RlKTsNCi0JbG9jYWxfaXJxX2Rpc2Fi bGUoKTsNCi0Ja3ZtX2d1ZXN0X2V4aXQoKTsNCi0JbG9jYWxfaXJxX2VuYWJsZSgpOw0KIA0KIAlt ZW1jcHkoJnZjcHUtPmFyY2guZ3Vlc3RfZ3Byc1sxNF0sICZ2Y3B1LT5hcmNoLnNpZV9ibG9jay0+ Z2cxNCwgMTYpOw0KIH0NCmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL0tjb25maWcgYi9hcmNoL3Nw YXJjL0tjb25maWcNCmluZGV4IGYyMTBkNTEuLjg3NTM3ZTIgMTAwNjQ0DQotLS0gYS9hcmNoL3Nw YXJjL0tjb25maWcNCisrKyBiL2FyY2gvc3BhcmMvS2NvbmZpZw0KQEAgLTMxLDYgKzMxLDcgQEAg Y29uZmlnIFNQQVJDDQogDQogY29uZmlnIFNQQVJDMzINCiAJZGVmX2Jvb2wgITY0QklUDQorCXNl bGVjdCBHRU5FUklDX0FUT01JQzY0DQogDQogY29uZmlnIFNQQVJDNjQNCiAJZGVmX2Jvb2wgNjRC SVQNCmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL2F0b21pY18zMi5oIGIvYXJj aC9zcGFyYy9pbmNsdWRlL2FzbS9hdG9taWNfMzIuaA0KaW5kZXggNWMzYzhiNi4uMDdkZDM1ZSAx MDA2NDQNCi0tLSBhL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vYXRvbWljXzMyLmgNCisrKyBiL2Fy Y2gvc3BhcmMvaW5jbHVkZS9hc20vYXRvbWljXzMyLmgNCkBAIC0xNSw2ICsxNSw4IEBADQogDQog I2lmZGVmIF9fS0VSTkVMX18NCiANCisjaW5jbHVkZSA8YXNtLWdlbmVyaWMvYXRvbWljNjQuaD4N CisNCiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPg0KIA0KICNkZWZpbmUgQVRPTUlDX0lOSVQoaSkg IHsgKGkpIH0NCmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2xpYi9NYWtlZmlsZSBiL2FyY2gvc3Bh cmMvbGliL01ha2VmaWxlDQppbmRleCBhM2ZjNDM3Li40OTYxNTE2IDEwMDY0NA0KLS0tIGEvYXJj aC9zcGFyYy9saWIvTWFrZWZpbGUNCisrKyBiL2FyY2gvc3BhcmMvbGliL01ha2VmaWxlDQpAQCAt NDAsNyArNDAsNyBAQCBsaWItJChDT05GSUdfU1BBUkM2NCkgKz0gY29weV9pbl91c2VyLm8gdXNl cl9maXh1cC5vIG1lbW1vdmUubw0KIGxpYi0kKENPTkZJR19TUEFSQzY0KSArPSBtY291bnQubyBp cGNzdW0ubyB4b3IubyBod2VpZ2h0Lm8gZmZzLm8NCiANCiBvYmoteSAgICAgICAgICAgICAgICAg Kz0gaW9tYXAubw0KLW9iai0kKENPTkZJR19TUEFSQzMyKSArPSBhdG9taWMzMi5vDQorb2JqLSQo Q09ORklHX1NQQVJDMzIpICs9IGF0b21pYzMyLm8gdWNtcGRpMi5vDQogb2JqLXkgICAgICAgICAg ICAgICAgICs9IGtzeW1zLm8NCiBvYmotJChDT05GSUdfU1BBUkM2NCkgKz0gUGVlQ2VlSS5vDQog b2JqLXkgICAgICAgICAgICAgICAgICs9IHVzZXJjb3B5Lm8NCmRpZmYgLS1naXQgYS9hcmNoL3Nw YXJjL2xpYi91Y21wZGkyLmMgYi9hcmNoL3NwYXJjL2xpYi91Y21wZGkyLmMNCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi4xZTA2ZWQ1DQotLS0gL2Rldi9udWxsDQorKysgYi9h cmNoL3NwYXJjL2xpYi91Y21wZGkyLmMNCkBAIC0wLDAgKzEsMTkgQEANCisjaW5jbHVkZSA8bGlu dXgvbW9kdWxlLmg+DQorI2luY2x1ZGUgImxpYmdjYy5oIg0KKw0KK3dvcmRfdHlwZSBfX3VjbXBk aTIodW5zaWduZWQgbG9uZyBsb25nIGEsIHVuc2lnbmVkIGxvbmcgbG9uZyBiKQ0KK3sNCisJY29u c3QgRFd1bmlvbiBhdSA9IHsubGwgPSBhfTsNCisJY29uc3QgRFd1bmlvbiBidSA9IHsubGwgPSBi fTsNCisNCisJaWYgKCh1bnNpZ25lZCBpbnQpIGF1LnMuaGlnaCA8ICh1bnNpZ25lZCBpbnQpIGJ1 LnMuaGlnaCkNCisJCXJldHVybiAwOw0KKwllbHNlIGlmICgodW5zaWduZWQgaW50KSBhdS5zLmhp Z2ggPiAodW5zaWduZWQgaW50KSBidS5zLmhpZ2gpDQorCQlyZXR1cm4gMjsNCisJaWYgKCh1bnNp Z25lZCBpbnQpIGF1LnMubG93IDwgKHVuc2lnbmVkIGludCkgYnUucy5sb3cpDQorCQlyZXR1cm4g MDsNCisJZWxzZSBpZiAoKHVuc2lnbmVkIGludCkgYXUucy5sb3cgPiAodW5zaWduZWQgaW50KSBi dS5zLmxvdykNCisJCXJldHVybiAyOw0KKwlyZXR1cm4gMTsNCit9DQorRVhQT1JUX1NZTUJPTChf X3VjbXBkaTIpOw0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9pMzg3LmMgYi9hcmNoL3g4 Ni9rZXJuZWwvaTM4Ny5jDQppbmRleCA3MzlkODU5Li5mYTRlYTA5IDEwMDY0NA0KLS0tIGEvYXJj aC94ODYva2VybmVsL2kzODcuYw0KKysrIGIvYXJjaC94ODYva2VybmVsL2kzODcuYw0KQEAgLTUx LDcgKzUxLDcgQEAgdm9pZCBfX2NwdWluaXQgbXhjc3JfZmVhdHVyZV9tYXNrX2luaXQodm9pZCkN CiAJY2x0cygpOw0KIAlpZiAoY3B1X2hhc19meHNyKSB7DQogCQltZW1zZXQoJmZ4X3NjcmF0Y2gs IDAsIHNpemVvZihzdHJ1Y3QgaTM4N19meHNhdmVfc3RydWN0KSk7DQotCQlhc20gdm9sYXRpbGUo ImZ4c2F2ZSAlMCIgOiA6ICJtIiAoZnhfc2NyYXRjaCkpOw0KKwkJYXNtIHZvbGF0aWxlKCJmeHNh dmUgJTAiIDogIittIiAoZnhfc2NyYXRjaCkpOw0KIAkJbWFzayA9IGZ4X3NjcmF0Y2gubXhjc3Jf bWFzazsNCiAJCWlmIChtYXNrID09IDApDQogCQkJbWFzayA9IDB4MDAwMGZmYmY7DQpkaWZmIC0t Z2l0IGEvYXJjaC94ODYva2VybmVsL3N5c194ODZfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9zeXNf eDg2XzY0LmMNCmluZGV4IDA1MTQ4OTAuLmNkYjJmYzkgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9r ZXJuZWwvc3lzX3g4Nl82NC5jDQorKysgYi9hcmNoL3g4Ni9rZXJuZWwvc3lzX3g4Nl82NC5jDQpA QCAtMTE1LDcgKzExNSw3IEBAIHN0YXRpYyB2b2lkIGZpbmRfc3RhcnRfZW5kKHVuc2lnbmVkIGxv bmcgZmxhZ3MsIHVuc2lnbmVkIGxvbmcgKmJlZ2luLA0KIAkJCQkqYmVnaW4gPSBuZXdfYmVnaW47 DQogCQl9DQogCX0gZWxzZSB7DQotCQkqYmVnaW4gPSBUQVNLX1VOTUFQUEVEX0JBU0U7DQorCQkq YmVnaW4gPSBjdXJyZW50LT5tbS0+bW1hcF9sZWdhY3lfYmFzZTsNCiAJCSplbmQgPSBUQVNLX1NJ WkU7DQogCX0NCiB9DQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vbW1hcC5jIGIvYXJjaC94ODYv bW0vbW1hcC5jDQppbmRleCA4NDVkZjY4Li41YzFhZTI4IDEwMDY0NA0KLS0tIGEvYXJjaC94ODYv bW0vbW1hcC5jDQorKysgYi9hcmNoL3g4Ni9tbS9tbWFwLmMNCkBAIC0xMTIsMTIgKzExMiwxNCBA QCBzdGF0aWMgdW5zaWduZWQgbG9uZyBtbWFwX2xlZ2FjeV9iYXNlKHZvaWQpDQogICovDQogdm9p ZCBhcmNoX3BpY2tfbW1hcF9sYXlvdXQoc3RydWN0IG1tX3N0cnVjdCAqbW0pDQogew0KKwltbS0+ bW1hcF9sZWdhY3lfYmFzZSA9IG1tYXBfbGVnYWN5X2Jhc2UoKTsNCisJbW0tPm1tYXBfYmFzZSA9 IG1tYXBfYmFzZSgpOw0KKw0KIAlpZiAobW1hcF9pc19sZWdhY3koKSkgew0KLQkJbW0tPm1tYXBf YmFzZSA9IG1tYXBfbGVnYWN5X2Jhc2UoKTsNCisJCW1tLT5tbWFwX2Jhc2UgPSBtbS0+bW1hcF9s ZWdhY3lfYmFzZTsNCiAJCW1tLT5nZXRfdW5tYXBwZWRfYXJlYSA9IGFyY2hfZ2V0X3VubWFwcGVk X2FyZWE7DQogCQltbS0+dW5tYXBfYXJlYSA9IGFyY2hfdW5tYXBfYXJlYTsNCiAJfSBlbHNlIHsN Ci0JCW1tLT5tbWFwX2Jhc2UgPSBtbWFwX2Jhc2UoKTsNCiAJCW1tLT5nZXRfdW5tYXBwZWRfYXJl YSA9IGFyY2hfZ2V0X3VubWFwcGVkX2FyZWFfdG9wZG93bjsNCiAJCW1tLT51bm1hcF9hcmVhID0g YXJjaF91bm1hcF9hcmVhX3RvcGRvd247DQogCX0NCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4v c2V0dXAuYyBiL2FyY2gveDg2L3hlbi9zZXR1cC5jDQppbmRleCA2ZTVhN2YxLi40ZDU0YjM4IDEw MDY0NA0KLS0tIGEvYXJjaC94ODYveGVuL3NldHVwLmMNCisrKyBiL2FyY2gveDg2L3hlbi9zZXR1 cC5jDQpAQCAtMjEyLDYgKzIxMiwxNyBAQCBzdGF0aWMgdm9pZCB4ZW5fYWxpZ25fYW5kX2FkZF9l ODIwX3JlZ2lvbih1NjQgc3RhcnQsIHU2NCBzaXplLCBpbnQgdHlwZSkNCiAJZTgyMF9hZGRfcmVn aW9uKHN0YXJ0LCBlbmQgLSBzdGFydCwgdHlwZSk7DQogfQ0KIA0KK3ZvaWQgeGVuX2lnbm9yZV91 bnVzYWJsZShzdHJ1Y3QgZTgyMGVudHJ5ICpsaXN0LCBzaXplX3QgbWFwX3NpemUpDQorew0KKwlz dHJ1Y3QgZTgyMGVudHJ5ICplbnRyeTsNCisJdW5zaWduZWQgaW50IGk7DQorDQorCWZvciAoaSA9 IDAsIGVudHJ5ID0gbGlzdDsgaSA8IG1hcF9zaXplOyBpKyssIGVudHJ5KyspIHsNCisJCWlmIChl bnRyeS0+dHlwZSA9PSBFODIwX1VOVVNBQkxFKQ0KKwkJCWVudHJ5LT50eXBlID0gRTgyMF9SQU07 DQorCX0NCit9DQorDQogLyoqDQogICogbWFjaGluZV9zcGVjaWZpY19tZW1vcnlfc2V0dXAgLSBI b29rIGZvciBtYWNoaW5lIHNwZWNpZmljIG1lbW9yeSBzZXR1cC4NCiAgKiovDQpAQCAtMjUwLDYg KzI2MSwxNyBAQCBjaGFyICogX19pbml0IHhlbl9tZW1vcnlfc2V0dXAodm9pZCkNCiAJfQ0KIAlC VUdfT04ocmMpOw0KIA0KKwkvKg0KKwkgKiBYZW4gd29uJ3QgYWxsb3cgYSAxOjEgbWFwcGluZyB0 byBiZSBjcmVhdGVkIHRvIFVOVVNBQkxFDQorCSAqIHJlZ2lvbnMsIHNvIGlmIHdlJ3JlIHVzaW5n IHRoZSBtYWNoaW5lIG1lbW9yeSBtYXAgbGVhdmUgdGhlDQorCSAqIHJlZ2lvbiBhcyBSQU0gYXMg aXQgaXMgaW4gdGhlIHBzZXVkby1waHlzaWNhbCBtYXAuDQorCSAqDQorCSAqIFVOVVNBQkxFIHJl Z2lvbnMgaW4gZG9tVXMgYXJlIG5vdCBoYW5kbGVkIGFuZCB3aWxsIG5lZWQNCisJICogYSBwYXRj aCBpbiB0aGUgZnV0dXJlLg0KKwkgKi8NCisJaWYgKHhlbl9pbml0aWFsX2RvbWFpbigpKQ0KKwkJ eGVuX2lnbm9yZV91bnVzYWJsZShtYXAsIG1lbW1hcC5ucl9lbnRyaWVzKTsNCisNCiAJLyogTWFr ZSBzdXJlIHRoZSBYZW4tc3VwcGxpZWQgbWVtb3J5IG1hcCBpcyB3ZWxsLW9yZGVyZWQuICovDQog CXNhbml0aXplX2U4MjBfbWFwKG1hcCwgbWVtbWFwLm5yX2VudHJpZXMsICZtZW1tYXAubnJfZW50 cmllcyk7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2JhdHRlcnkuYyBiL2RyaXZlcnMv YWNwaS9iYXR0ZXJ5LmMNCmluZGV4IGExYTRiOGUuLmM3NDliOTMgMTAwNjQ0DQotLS0gYS9kcml2 ZXJzL2FjcGkvYmF0dGVyeS5jDQorKysgYi9kcml2ZXJzL2FjcGkvYmF0dGVyeS5jDQpAQCAtMTE3 LDYgKzExNyw3IEBAIHN0cnVjdCBhY3BpX2JhdHRlcnkgew0KIAlzdHJ1Y3QgYWNwaV9kZXZpY2Ug KmRldmljZTsNCiAJc3RydWN0IG5vdGlmaWVyX2Jsb2NrIHBtX25iOw0KIAl1bnNpZ25lZCBsb25n IHVwZGF0ZV90aW1lOw0KKwlpbnQgcmV2aXNpb247DQogCWludCByYXRlX25vdzsNCiAJaW50IGNh cGFjaXR5X25vdzsNCiAJaW50IHZvbHRhZ2Vfbm93Ow0KQEAgLTM1MCw2ICszNTEsNyBAQCBzdGF0 aWMgc3RydWN0IGFjcGlfb2Zmc2V0cyBpbmZvX29mZnNldHNbXSA9IHsNCiB9Ow0KIA0KIHN0YXRp YyBzdHJ1Y3QgYWNwaV9vZmZzZXRzIGV4dGVuZGVkX2luZm9fb2Zmc2V0c1tdID0gew0KKwl7b2Zm c2V0b2Yoc3RydWN0IGFjcGlfYmF0dGVyeSwgcmV2aXNpb24pLCAwfSwNCiAJe29mZnNldG9mKHN0 cnVjdCBhY3BpX2JhdHRlcnksIHBvd2VyX3VuaXQpLCAwfSwNCiAJe29mZnNldG9mKHN0cnVjdCBh Y3BpX2JhdHRlcnksIGRlc2lnbl9jYXBhY2l0eSksIDB9LA0KIAl7b2Zmc2V0b2Yoc3RydWN0IGFj cGlfYmF0dGVyeSwgZnVsbF9jaGFyZ2VfY2FwYWNpdHkpLCAwfSwNCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2F0YS9LY29uZmlnIGIvZHJpdmVycy9hdGEvS2NvbmZpZw0KaW5kZXggY2YwNDdjNC4uZTdi M2E5ZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYXRhL0tjb25maWcNCisrKyBiL2RyaXZlcnMvYXRh L0tjb25maWcNCkBAIC05Myw3ICs5Myw3IEBAIGNvbmZpZyBTQVRBX0ZTTA0KIAkgIElmIHVuc3Vy ZSwgc2F5IE4uDQogDQogY29uZmlnIFNBVEFfSU5JQzE2MlgNCi0JdHJpc3RhdGUgIkluaXRpbyAx NjJ4IFNBVEEgc3VwcG9ydCINCisJdHJpc3RhdGUgIkluaXRpbyAxNjJ4IFNBVEEgc3VwcG9ydCAo VmVyeSBFeHBlcmltZW50YWwpIg0KIAlkZXBlbmRzIG9uIFBDSQ0KIAloZWxwDQogCSAgVGhpcyBv cHRpb24gZW5hYmxlcyBzdXBwb3J0IGZvciBJbml0aW8gMTYyeCBTZXJpYWwgQVRBLg0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvYXRhL2xpYmF0YS1wbXAuYyBiL2RyaXZlcnMvYXRhL2xpYmF0YS1wbXAu Yw0KaW5kZXggZjYzYTU4OC4uZjVjMzViZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYXRhL2xpYmF0 YS1wbXAuYw0KKysrIGIvZHJpdmVycy9hdGEvbGliYXRhLXBtcC5jDQpAQCAtMjg5LDI0ICsyODks MjQgQEAgc3RhdGljIGludCBzYXRhX3BtcF9jb25maWd1cmUoc3RydWN0IGF0YV9kZXZpY2UgKmRl diwgaW50IHByaW50X2luZm8pDQogDQogCS8qIERpc2FibGUgc2VuZGluZyBFYXJseSBSX09LLg0K IAkgKiBXaXRoICJjYWNoZWQgcmVhZCIgSEREIHRlc3RpbmcgYW5kIG11bHRpcGxlIHBvcnRzIGJ1 c3kgb24gYSBTQVRBDQotCSAqIGhvc3QgY29udHJvbGxlciwgMzcyNiBQTVAgd2lsbCB2ZXJ5IHJh cmVseSBkcm9wIGEgZGVmZXJyZWQNCisJICogaG9zdCBjb250cm9sbGVyLCAzeDI2IFBNUCB3aWxs IHZlcnkgcmFyZWx5IGRyb3AgYSBkZWZlcnJlZA0KIAkgKiBSX09LIHRoYXQgd2FzIGludGVuZGVk IGZvciB0aGUgaG9zdC4gU3ltcHRvbSB3aWxsIGJlIGFsbA0KIAkgKiA1IGRyaXZlcyB1bmRlciB0 ZXN0IHdpbGwgdGltZW91dCwgZ2V0IHJlc2V0LCBhbmQgcmVjb3Zlci4NCiAJICovDQotCWlmICh2 ZW5kb3IgPT0gMHgxMDk1ICYmIGRldmlkID09IDB4MzcyNikgew0KKwlpZiAodmVuZG9yID09IDB4 MTA5NSAmJiAoZGV2aWQgPT0gMHgzNzI2IHx8IGRldmlkID09IDB4MzgyNikpIHsNCiAJCXUzMiBy ZWc7DQogDQogCQllcnJfbWFzayA9IHNhdGFfcG1wX3JlYWQoJmFwLT5saW5rLCBQTVBfR1NDUl9T SUlfUE9MLCAmcmVnKTsNCiAJCWlmIChlcnJfbWFzaykgew0KIAkJCXJjID0gLUVJTzsNCi0JCQly ZWFzb24gPSAiZmFpbGVkIHRvIHJlYWQgU2lsMzcyNiBQcml2YXRlIFJlZ2lzdGVyIjsNCisJCQly ZWFzb24gPSAiZmFpbGVkIHRvIHJlYWQgU2lsM3gyNiBQcml2YXRlIFJlZ2lzdGVyIjsNCiAJCQln b3RvIGZhaWw7DQogCQl9DQogCQlyZWcgJj0gfjB4MTsNCiAJCWVycl9tYXNrID0gc2F0YV9wbXBf d3JpdGUoJmFwLT5saW5rLCBQTVBfR1NDUl9TSUlfUE9MLCByZWcpOw0KIAkJaWYgKGVycl9tYXNr KSB7DQogCQkJcmMgPSAtRUlPOw0KLQkJCXJlYXNvbiA9ICJmYWlsZWQgdG8gd3JpdGUgU2lsMzcy NiBQcml2YXRlIFJlZ2lzdGVyIjsNCisJCQlyZWFzb24gPSAiZmFpbGVkIHRvIHdyaXRlIFNpbDN4 MjYgUHJpdmF0ZSBSZWdpc3RlciI7DQogCQkJZ290byBmYWlsOw0KIAkJfQ0KIAl9DQpAQCAtMzgz LDggKzM4Myw4IEBAIHN0YXRpYyB2b2lkIHNhdGFfcG1wX3F1aXJrcyhzdHJ1Y3QgYXRhX3BvcnQg KmFwKQ0KIAl1MTYgZGV2aWQgPSBzYXRhX3BtcF9nc2NyX2RldmlkKGdzY3IpOw0KIAlzdHJ1Y3Qg YXRhX2xpbmsgKmxpbms7DQogDQotCWlmICh2ZW5kb3IgPT0gMHgxMDk1ICYmIGRldmlkID09IDB4 MzcyNikgew0KLQkJLyogc2lsMzcyNiBxdWlya3MgKi8NCisJaWYgKHZlbmRvciA9PSAweDEwOTUg JiYgKGRldmlkID09IDB4MzcyNiB8fCBkZXZpZCA9PSAweDM4MjYpKSB7DQorCQkvKiBzaWwzeDI2 IHF1aXJrcyAqLw0KIAkJYXRhX2Zvcl9lYWNoX2xpbmsobGluaywgYXAsIEVER0UpIHsNCiAJCQkv KiBsaW5rIHJlcG9ydHMgb2ZmbGluZSBhZnRlciBMUE0gKi8NCiAJCQlsaW5rLT5mbGFncyB8PSBB VEFfTEZMQUdfTk9fTFBNOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL3NhdGFfaW5pYzE2Mngu YyBiL2RyaXZlcnMvYXRhL3NhdGFfaW5pYzE2MnguYw0KaW5kZXggNWM3ZDcwYy4uM2E4YjU1ZSAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvYXRhL3NhdGFfaW5pYzE2MnguYw0KKysrIGIvZHJpdmVycy9h dGEvc2F0YV9pbmljMTYyeC5jDQpAQCAtNiw2ICs2LDE4IEBADQogICoNCiAgKiBUaGlzIGZpbGUg aXMgcmVsZWFzZWQgdW5kZXIgR1BMIHYyLg0KICAqDQorICogKioqKiBXQVJOSU5HICoqKioNCisg Kg0KKyAqIFRoaXMgZHJpdmVyIG5ldmVyIHdvcmtlZCBwcm9wZXJseSBhbmQgdW5mb3J0dW5hdGVs eSBkYXRhIGNvcnJ1cHRpb24gaXMNCisgKiByZWxhdGl2ZWx5IGNvbW1vbi4gIFRoZXJlIGlzbid0 IGFueW9uZSB3b3JraW5nIG9uIHRoZSBkcml2ZXIgYW5kIHRoZXJlJ3MNCisgKiBubyBzdXBwb3J0 IGZyb20gdGhlIHZlbmRvci4gIERvIG5vdCB1c2UgdGhpcyBkcml2ZXIgaW4gYW55IHByb2R1Y3Rp b24NCisgKiBlbnZpcm9ubWVudC4NCisgKg0KKyAqIGh0dHA6Ly90aHJlYWQuZ21hbmUub3JnL2dt YW5lLmxpbnV4LmRlYmlhbi5kZXZlbC5idWdzLnJjLzM3ODUyNS9mb2N1cz01NDQ5MQ0KKyAqIGh0 dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA1NjUNCisgKg0KKyAq ICoqKioqKioqKioqKioqKioqDQorICoNCiAgKiBUaGlzIGNvbnRyb2xsZXIgaXMgZWNjZW50cmlj IGFuZCBlYXNpbHkgbG9ja3MgdXAgaWYgc29tZXRoaW5nIGlzbid0DQogICogcmlnaHQuICBEb2N1 bWVudGF0aW9uIGlzIGF2YWlsYWJsZSBhdCBpbml0aW8ncyB3ZWJzaXRlIGJ1dCBpdCBvbmx5DQog ICogZG9jdW1lbnRzIHJlZ2lzdGVycyAobm90IHByb2dyYW1taW5nIG1vZGVsKS4NCkBAIC04MDks NiArODIxLDggQEAgc3RhdGljIGludCBpbmljX2luaXRfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2 LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50KQ0KIA0KIAlhdGFfcHJpbnRfdmVyc2lv bl9vbmNlKCZwZGV2LT5kZXYsIERSVl9WRVJTSU9OKTsNCiANCisJZGV2X2FsZXJ0KCZwZGV2LT5k ZXYsICJpbmljMTYyeCBzdXBwb3J0IGlzIGJyb2tlbiB3aXRoIGNvbW1vbiBkYXRhIGNvcnJ1cHRp b24gaXNzdWVzIGFuZCB3aWxsIGJlIGRpc2FibGVkIGJ5IGRlZmF1bHQsIGNvbnRhY3QgbGludXgt aWRlQHZnZXIua2VybmVsLm9yZyBpZiBpbiBwcm9kdWN0aW9uIHVzZVxuIik7DQorDQogCS8qIGFs bG9jIGhvc3QgKi8NCiAJaG9zdCA9IGF0YV9ob3N0X2FsbG9jX3BpbmZvKCZwZGV2LT5kZXYsIHBw aSwgTlJfUE9SVFMpOw0KIAlocHJpdiA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2Yo Kmhwcml2KSwgR0ZQX0tFUk5FTCk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlL21lbW9yeS5j IGIvZHJpdmVycy9iYXNlL21lbW9yeS5jDQppbmRleCA4MjcyZDkyLi43MzJhZDBkIDEwMDY0NA0K LS0tIGEvZHJpdmVycy9iYXNlL21lbW9yeS5jDQorKysgYi9kcml2ZXJzL2Jhc2UvbWVtb3J5LmMN CkBAIC0xNzIsNiArMTcyLDggQEAgc3RhdGljIHNzaXplX3Qgc2hvd19tZW1fcmVtb3ZhYmxlKHN0 cnVjdCBzeXNfZGV2aWNlICpkZXYsDQogCQljb250YWluZXJfb2YoZGV2LCBzdHJ1Y3QgbWVtb3J5 X2Jsb2NrLCBzeXNkZXYpOw0KIA0KIAlmb3IgKGkgPSAwOyBpIDwgc2VjdGlvbnNfcGVyX2Jsb2Nr OyBpKyspIHsNCisJCWlmICghcHJlc2VudF9zZWN0aW9uX25yKG1lbS0+c3RhcnRfc2VjdGlvbl9u ciArIGkpKQ0KKwkJCWNvbnRpbnVlOw0KIAkJcGZuID0gc2VjdGlvbl9ucl90b19wZm4obWVtLT5z dGFydF9zZWN0aW9uX25yICsgaSk7DQogCQlyZXQgJj0gaXNfbWVtX3NlY3Rpb25fcmVtb3ZhYmxl KHBmbiwgUEFHRVNfUEVSX1NFQ1RJT04pOw0KIAl9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNl L3Bvd2VyL2RvbWFpbi5jIGIvZHJpdmVycy9iYXNlL3Bvd2VyL2RvbWFpbi5jDQppbmRleCA3OTAz OGU1Li42NzkwY2Y3IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9iYXNlL3Bvd2VyL2RvbWFpbi5jDQor KysgYi9kcml2ZXJzL2Jhc2UvcG93ZXIvZG9tYWluLmMNCkBAIC03NTEsOCArNzUxLDcgQEAgc3Rh dGljIGludCBwbV9nZW5wZF9yZXN1bWVfbm9pcnEoc3RydWN0IGRldmljZSAqZGV2KQ0KIAlpZiAo SVNfRVJSKGdlbnBkKSkNCiAJCXJldHVybiAtRUlOVkFMOw0KIA0KLQlpZiAoZ2VucGQtPnN1c3Bl bmRfcG93ZXJfb2ZmDQotCSAgICB8fCAoZGV2LT5wb3dlci53YWtldXBfcGF0aCAmJiBnZW5wZF9k ZXZfYWN0aXZlX3dha2V1cChnZW5wZCwgZGV2KSkpDQorCWlmIChnZW5wZC0+c3VzcGVuZF9wb3dl cl9vZmYpDQogCQlyZXR1cm4gMDsNCiANCiAJLyoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2JsdWV0 b290aC9hdGgzay5jIGIvZHJpdmVycy9ibHVldG9vdGgvYXRoM2suYw0KaW5kZXggODUzZmRmOC4u YmRlNzJmNyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYmx1ZXRvb3RoL2F0aDNrLmMNCisrKyBiL2Ry aXZlcnMvYmx1ZXRvb3RoL2F0aDNrLmMNCkBAIC04OSw2ICs4OSwxMSBAQCBzdGF0aWMgc3RydWN0 IHVzYl9kZXZpY2VfaWQgYXRoM2tfdGFibGVbXSA9IHsNCiAJeyBVU0JfREVWSUNFKDB4MTNkMywg MHgzMzkzKSB9LA0KIAl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweGUwNGUpIH0sDQogCXsgVVNCX0RF VklDRSgweDA0ODksIDB4ZTA1NikgfSwNCisJeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhlMDRkKSB9 LA0KKwl7IFVTQl9ERVZJQ0UoMHgwNGM1LCAweDEzMzApIH0sDQorCXsgVVNCX0RFVklDRSgweDEz ZDMsIDB4MzQwMikgfSwNCisJeyBVU0JfREVWSUNFKDB4MGNmMywgMHgzMTIxKSB9LA0KKwl7IFVT Ql9ERVZJQ0UoMHgwY2YzLCAweGUwMDMpIH0sDQogDQogCS8qIEF0aGVyb3MgQVI1QkJVMTIgd2l0 aCBzZmxhc2ggZmlybXdhcmUgKi8NCiAJeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhFMDJDKSB9LA0K QEAgLTEyNSw2ICsxMzAsMTEgQEAgc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGF0aDNrX2Js aXN0X3RibFtdID0gew0KIAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDMzOTMpLCAuZHJpdmVyX2lu Zm8gPSBCVFVTQl9BVEgzMDEyIH0sDQogCXsgVVNCX0RFVklDRSgweDA0ODksIDB4ZTA0ZSksIC5k cml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwNCiAJeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhl MDU2KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LA0KKwl7IFVTQl9ERVZJQ0UoMHgw NDg5LCAweGUwNGQpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sDQorCXsgVVNCX0RF VklDRSgweDA0YzUsIDB4MTMzMCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwNCisJ eyBVU0JfREVWSUNFKDB4MTNkMywgMHgzNDAyKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAx MiB9LA0KKwl7IFVTQl9ERVZJQ0UoMHgwY2YzLCAweDMxMjEpLCAuZHJpdmVyX2luZm8gPSBCVFVT Ql9BVEgzMDEyIH0sDQorCXsgVVNCX0RFVklDRSgweDBjZjMsIDB4ZTAwMyksIC5kcml2ZXJfaW5m byA9IEJUVVNCX0FUSDMwMTIgfSwNCiANCiAJLyogQXRoZXJvcyBBUjVCQlUyMiB3aXRoIHNmbGFz aCBmaXJtd2FyZSAqLw0KIAl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweEUwM0MpLCAuZHJpdmVyX2lu Zm8gPSBCVFVTQl9BVEgzMDEyIH0sDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibHVldG9vdGgvYnR1 c2IuYyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2J0dXNiLmMNCmluZGV4IDZiNzg0YjcuLjFiZDM5MjQg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL2JsdWV0b290aC9idHVzYi5jDQorKysgYi9kcml2ZXJzL2Js dWV0b290aC9idHVzYi5jDQpAQCAtNjMsNiArNjMsOSBAQCBzdGF0aWMgc3RydWN0IHVzYl9kZXZp Y2VfaWQgYnR1c2JfdGFibGVbXSA9IHsNCiAJLyogQXBwbGUtc3BlY2lmaWMgKEJyb2FkY29tKSBk ZXZpY2VzICovDQogCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oMHgwNWFjLCAweGZm LCAweDAxLCAweDAxKSB9LA0KIA0KKwkvKiBNZWRpYVRlayBNVDc2eDBFICovDQorCXsgVVNCX0RF VklDRSgweDBlOGQsIDB4NzYzZikgfSwNCisNCiAJLyogQnJvYWRjb20gU29mdFNhaWxpbmcgcmVw b3J0aW5nIHZlbmRvciBzcGVjaWZpYyAqLw0KIAl7IFVTQl9ERVZJQ0UoMHgwYTVjLCAweDIxZTEp IH0sDQogDQpAQCAtMTU2LDYgKzE1OSwxMSBAQCBzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQg YmxhY2tsaXN0X3RhYmxlW10gPSB7DQogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzM5MyksIC5k cml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwNCiAJeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhl MDRlKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LA0KIAl7IFVTQl9ERVZJQ0UoMHgw NDg5LCAweGUwNTYpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sDQorCXsgVVNCX0RF VklDRSgweDA0ODksIDB4ZTA0ZCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwNCisJ eyBVU0JfREVWSUNFKDB4MDRjNSwgMHgxMzMwKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAx MiB9LA0KKwl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDM0MDIpLCAuZHJpdmVyX2luZm8gPSBCVFVT Ql9BVEgzMDEyIH0sDQorCXsgVVNCX0RFVklDRSgweDBjZjMsIDB4MzEyMSksIC5kcml2ZXJfaW5m byA9IEJUVVNCX0FUSDMwMTIgfSwNCisJeyBVU0JfREVWSUNFKDB4MGNmMywgMHhlMDAzKSwgLmRy aXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LA0KIA0KIAkvKiBBdGhlcm9zIEFSNUJCVTEyIHdp dGggc2ZsYXNoIGZpcm13YXJlICovDQogCXsgVVNCX0RFVklDRSgweDA0ODksIDB4ZTAyYyksIC5k cml2ZXJfaW5mbyA9IEJUVVNCX0lHTk9SRSB9LA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci92 aXJ0aW9fY29uc29sZS5jIGIvZHJpdmVycy9jaGFyL3ZpcnRpb19jb25zb2xlLmMNCmluZGV4IGQ1 YWU3MzYuLmM2OGI4YWQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2NoYXIvdmlydGlvX2NvbnNvbGUu Yw0KKysrIGIvZHJpdmVycy9jaGFyL3ZpcnRpb19jb25zb2xlLmMNCkBAIC0yNTcsOSArMjU3LDEy IEBAIHN0YXRpYyBzdHJ1Y3QgcG9ydCAqZmluZF9wb3J0X2J5X2RldnRfaW5fcG9ydGRldihzdHJ1 Y3QgcG9ydHNfZGV2aWNlICpwb3J0ZGV2LA0KIAl1bnNpZ25lZCBsb25nIGZsYWdzOw0KIA0KIAlz cGluX2xvY2tfaXJxc2F2ZSgmcG9ydGRldi0+cG9ydHNfbG9jaywgZmxhZ3MpOw0KLQlsaXN0X2Zv cl9lYWNoX2VudHJ5KHBvcnQsICZwb3J0ZGV2LT5wb3J0cywgbGlzdCkNCi0JCWlmIChwb3J0LT5j ZGV2LT5kZXYgPT0gZGV2KQ0KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBvcnQsICZwb3J0ZGV2LT5w b3J0cywgbGlzdCkgew0KKwkJaWYgKHBvcnQtPmNkZXYtPmRldiA9PSBkZXYpIHsNCisJCQlrcmVm X2dldCgmcG9ydC0+a3JlZik7DQogCQkJZ290byBvdXQ7DQorCQl9DQorCX0NCiAJcG9ydCA9IE5V TEw7DQogb3V0Og0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwb3J0ZGV2LT5wb3J0c19sb2Nr LCBmbGFncyk7DQpAQCAtNjM0LDYgKzYzNywxMCBAQCBzdGF0aWMgc3NpemVfdCBwb3J0X2ZvcHNf cmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKnVidWYsDQogDQogCXBvcnQgPSBm aWxwLT5wcml2YXRlX2RhdGE7DQogDQorCS8qIFBvcnQgaXMgaG90LXVucGx1Z2dlZC4gKi8NCisJ aWYgKCFwb3J0LT5ndWVzdF9jb25uZWN0ZWQpDQorCQlyZXR1cm4gLUVOT0RFVjsNCisNCiAJaWYg KCFwb3J0X2hhc19kYXRhKHBvcnQpKSB7DQogCQkvKg0KIAkJICogSWYgbm90aGluZydzIGNvbm5l Y3RlZCBvbiB0aGUgaG9zdCBqdXN0IHJldHVybiAwIGluDQpAQCAtNjUwLDcgKzY1Nyw3IEBAIHN0 YXRpYyBzc2l6ZV90IHBvcnRfZm9wc19yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNl ciAqdWJ1ZiwNCiAJCWlmIChyZXQgPCAwKQ0KIAkJCXJldHVybiByZXQ7DQogCX0NCi0JLyogUG9y dCBnb3QgaG90LXVucGx1Z2dlZC4gKi8NCisJLyogUG9ydCBnb3QgaG90LXVucGx1Z2dlZCB3aGls ZSB3ZSB3ZXJlIHdhaXRpbmcgYWJvdmUuICovDQogCWlmICghcG9ydC0+Z3Vlc3RfY29ubmVjdGVk KQ0KIAkJcmV0dXJuIC1FTk9ERVY7DQogCS8qDQpAQCAtNzkzLDE0ICs4MDAsMTQgQEAgc3RhdGlj IGludCBwb3J0X2ZvcHNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmls cCkNCiAJc3RydWN0IHBvcnQgKnBvcnQ7DQogCWludCByZXQ7DQogDQorCS8qIFdlIGdldCB0aGUg cG9ydCB3aXRoIGEga3JlZiBoZXJlICovDQogCXBvcnQgPSBmaW5kX3BvcnRfYnlfZGV2dChjZGV2 LT5kZXYpOw0KKwlpZiAoIXBvcnQpIHsNCisJCS8qIFBvcnQgd2FzIHVucGx1Z2dlZCBiZWZvcmUg d2UgY291bGQgcHJvY2VlZCAqLw0KKwkJcmV0dXJuIC1FTlhJTzsNCisJfQ0KIAlmaWxwLT5wcml2 YXRlX2RhdGEgPSBwb3J0Ow0KIA0KLQkvKiBQcmV2ZW50IGFnYWluc3QgYSBwb3J0IGdldHRpbmcg aG90LXVucGx1Z2dlZCBhdCB0aGUgc2FtZSB0aW1lICovDQotCXNwaW5fbG9ja19pcnEoJnBvcnQt PnBvcnRkZXYtPnBvcnRzX2xvY2spOw0KLQlrcmVmX2dldCgmcG9ydC0+a3JlZik7DQotCXNwaW5f dW5sb2NrX2lycSgmcG9ydC0+cG9ydGRldi0+cG9ydHNfbG9jayk7DQotDQogCS8qDQogCSAqIERv bid0IGFsbG93IG9wZW5pbmcgb2YgY29uc29sZSBwb3J0IGRldmljZXMgLS0gdGhhdCdzIGRvbmUN CiAJICogdmlhIC9kZXYvaHZjDQpAQCAtMTI2NCwxNCArMTI3MSw2IEBAIHN0YXRpYyB2b2lkIHJl bW92ZV9wb3J0KHN0cnVjdCBrcmVmICprcmVmKQ0KIA0KIAlwb3J0ID0gY29udGFpbmVyX29mKGty ZWYsIHN0cnVjdCBwb3J0LCBrcmVmKTsNCiANCi0Jc3lzZnNfcmVtb3ZlX2dyb3VwKCZwb3J0LT5k ZXYtPmtvYmosICZwb3J0X2F0dHJpYnV0ZV9ncm91cCk7DQotCWRldmljZV9kZXN0cm95KHBkcnZk YXRhLmNsYXNzLCBwb3J0LT5kZXYtPmRldnQpOw0KLQljZGV2X2RlbChwb3J0LT5jZGV2KTsNCi0N Ci0Ja2ZyZWUocG9ydC0+bmFtZSk7DQotDQotCWRlYnVnZnNfcmVtb3ZlKHBvcnQtPmRlYnVnZnNf ZmlsZSk7DQotDQogCWtmcmVlKHBvcnQpOw0KIH0NCiANCkBAIC0xMjg5LDEyICsxMjg4LDE0IEBA IHN0YXRpYyB2b2lkIHVucGx1Z19wb3J0KHN0cnVjdCBwb3J0ICpwb3J0KQ0KIAlzcGluX3VubG9j a19pcnEoJnBvcnQtPnBvcnRkZXYtPnBvcnRzX2xvY2spOw0KIA0KIAlpZiAocG9ydC0+Z3Vlc3Rf Y29ubmVjdGVkKSB7DQorCQkvKiBMZXQgdGhlIGFwcCBrbm93IHRoZSBwb3J0IGlzIGdvaW5nIGRv d24uICovDQorCQlzZW5kX3NpZ2lvX3RvX3BvcnQocG9ydCk7DQorDQorCQkvKiBEbyB0aGlzIGFm dGVyIHNpZ2lvIGlzIGFjdHVhbGx5IHNlbnQgKi8NCiAJCXBvcnQtPmd1ZXN0X2Nvbm5lY3RlZCA9 IGZhbHNlOw0KIAkJcG9ydC0+aG9zdF9jb25uZWN0ZWQgPSBmYWxzZTsNCi0JCXdha2VfdXBfaW50 ZXJydXB0aWJsZSgmcG9ydC0+d2FpdHF1ZXVlKTsNCiANCi0JCS8qIExldCB0aGUgYXBwIGtub3cg dGhlIHBvcnQgaXMgZ29pbmcgZG93bi4gKi8NCi0JCXNlbmRfc2lnaW9fdG9fcG9ydChwb3J0KTsN CisJCXdha2VfdXBfaW50ZXJydXB0aWJsZSgmcG9ydC0+d2FpdHF1ZXVlKTsNCiAJfQ0KIA0KIAlp ZiAoaXNfY29uc29sZV9wb3J0KHBvcnQpKSB7DQpAQCAtMTMyMCw2ICsxMzIxLDE0IEBAIHN0YXRp YyB2b2lkIHVucGx1Z19wb3J0KHN0cnVjdCBwb3J0ICpwb3J0KQ0KIAkgKi8NCiAJcG9ydC0+cG9y dGRldiA9IE5VTEw7DQogDQorCXN5c2ZzX3JlbW92ZV9ncm91cCgmcG9ydC0+ZGV2LT5rb2JqLCAm cG9ydF9hdHRyaWJ1dGVfZ3JvdXApOw0KKwlkZXZpY2VfZGVzdHJveShwZHJ2ZGF0YS5jbGFzcywg cG9ydC0+ZGV2LT5kZXZ0KTsNCisJY2Rldl9kZWwocG9ydC0+Y2Rldik7DQorDQorCWtmcmVlKHBv cnQtPm5hbWUpOw0KKw0KKwlkZWJ1Z2ZzX3JlbW92ZShwb3J0LT5kZWJ1Z2ZzX2ZpbGUpOw0KKw0K IAkvKg0KIAkgKiBMb2NrcyBhcm91bmQgaGVyZSBhcmUgbm90IG5lY2Vzc2FyeSAtIGEgcG9ydCBj YW4ndCBiZQ0KIAkgKiBvcGVuZWQgYWZ0ZXIgd2UgcmVtb3ZlZCB0aGUgcG9ydCBzdHJ1Y3QgZnJv bSBwb3J0c19saXN0DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgNCmluZGV4IDE0NGQzN2MuLjYxMjc0 YmYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQpAQCAtMjc1LDYgKzI3NSw3IEBAIGVudW0g aW50ZWxfcGNoIHsNCiAjZGVmaW5lIFFVSVJLX1BJUEVBX0ZPUkNFICgxPDwwKQ0KICNkZWZpbmUg UVVJUktfTFZEU19TU0NfRElTQUJMRSAoMTw8MSkNCiAjZGVmaW5lIFFVSVJLX0lOVkVSVF9CUklH SFRORVNTICgxPDwyKQ0KKyNkZWZpbmUgUVVJUktfTk9fUENIX1BXTV9FTkFCTEUgKDE8PDMpDQog DQogc3RydWN0IGludGVsX2ZiZGV2Ow0KIHN0cnVjdCBpbnRlbF9mYmNfd29yazsNCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaA0KaW5kZXggMTI0ZGQ4Ny4uOTdhMDUwZiAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmgNCkBAIC0zNjIsNiArMzYyLDcgQEANCiAjZGVmaW5lIElQRUlSX0k5NjUJMHgwMjA2 NA0KICNkZWZpbmUgSVBFSFJfSTk2NQkweDAyMDY4DQogI2RlZmluZSBJTlNURE9ORV9JOTY1CTB4 MDIwNmMNCisjZGVmaW5lIFJJTkdfSU5TVFBNKGJhc2UpICAgICAgKChiYXNlKSsweGMwKQ0KICNk ZWZpbmUgSU5TVFBTCQkweDAyMDcwIC8qIDk2NSsgb25seSAqLw0KICNkZWZpbmUgSU5TVERPTkUx CTB4MDIwN2MgLyogOTY1KyBvbmx5ICovDQogI2RlZmluZSBBQ1RIRF9JOTY1CTB4MDIwNzQNCkBA IC00NTgsNiArNDU5LDggQEANCiAJCQkJCXdpbGwgbm90IGFzc2VydCBBR1BCVVNZIyBhbmQgd2ls bCBvbmx5DQogCQkJCQliZSBkZWxpdmVyZWQgd2hlbiBvdXQgb2YgQzMuICovDQogI2RlZmluZSAg IElOU1RQTV9GT1JDRV9PUkRFUklORwkJCQkoMTw8NykgLyogR0VONisgKi8NCisjZGVmaW5lICAg SU5TVFBNX1RMQl9JTlZBTElEQVRFCSgxPDw5KQ0KKyNkZWZpbmUgICBJTlNUUE1fU1lOQ19GTFVT SAkoMTw8NSkNCiAjZGVmaW5lIEFDVEhECSAgICAgICAgMHgwMjBjOA0KICNkZWZpbmUgRldfQkxD CQkweDAyMGQ4DQogI2RlZmluZSBGV19CTEMyCQkweDAyMGRjDQpAQCAtMzUxMyw3ICszNTE2LDcg QEANCiAjZGVmaW5lIEVEUF9MSU5LX1RSQUlOXzYwME1WXzBEQl9JVkIJCSgweDMwIDw8MjIpDQog I2RlZmluZSBFRFBfTElOS19UUkFJTl82MDBNVl8zXzVEQl9JVkIJCSgweDM2IDw8MjIpDQogI2Rl ZmluZSBFRFBfTElOS19UUkFJTl84MDBNVl8wREJfSVZCCQkoMHgzOCA8PDIyKQ0KLSNkZWZpbmUg RURQX0xJTktfVFJBSU5fODAwTVZfM181REJfSVZCCQkoMHgzMyA8PDIyKQ0KKyNkZWZpbmUgRURQ X0xJTktfVFJBSU5fODAwTVZfM181REJfSVZCCQkoMHgzZSA8PDIyKQ0KIA0KIC8qIGxlZ2FjeSB2 YWx1ZXMgKi8NCiAjZGVmaW5lIEVEUF9MSU5LX1RSQUlOXzUwME1WXzBEQl9JVkIJCSgweDAwIDw8 MjIpDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jDQppbmRleCBjZmJiODkzLi5lZTI5 YzFmIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jDQor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMNCkBAIC04ODQyLDYgKzg4 NDIsMTcgQEAgc3RhdGljIHZvaWQgcXVpcmtfaW52ZXJ0X2JyaWdodG5lc3Moc3RydWN0IGRybV9k ZXZpY2UgKmRldikNCiAJZGV2X3ByaXYtPnF1aXJrcyB8PSBRVUlSS19JTlZFUlRfQlJJR0hUTkVT UzsNCiB9DQogDQorLyoNCisgKiBTb21lIG1hY2hpbmVzIChEZWxsIFhQUzEzKSBzdWZmZXIgYnJv a2VuIGJhY2tsaWdodCBjb250cm9scyBpZg0KKyAqIEJMTV9QQ0hfUFdNX0VOQUJMRSBpcyBzZXQu DQorICovDQorc3RhdGljIHZvaWQgcXVpcmtfbm9fcGNtX3B3bV9lbmFibGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldikNCit7DQorCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7DQorCWRldl9wcml2LT5xdWlya3MgfD0gUVVJUktfTk9fUENIX1BXTV9F TkFCTEU7DQorCURSTV9JTkZPKCJhcHBseWluZyBuby1QQ0hfUFdNX0VOQUJMRSBxdWlya1xuIik7 DQorfQ0KKw0KIHN0cnVjdCBpbnRlbF9xdWlyayB7DQogCWludCBkZXZpY2U7DQogCWludCBzdWJz eXN0ZW1fdmVuZG9yOw0KQEAgLTg5MTYsNiArODkyNywxMSBAQCBzdHJ1Y3QgaW50ZWxfcXVpcmsg aW50ZWxfcXVpcmtzW10gPSB7DQogDQogCS8qIEFjZXIvUGFja2FyZCBCZWxsIE5DTDIwICovDQog CXsgMHgyYTQyLCAweDEwMjUsIDB4MDM0YiwgcXVpcmtfaW52ZXJ0X2JyaWdodG5lc3MgfSwNCisN CisJLyogRGVsbCBYUFMxMyBIRCBTYW5keSBCcmlkZ2UgKi8NCisJeyAweDAxMTYsIDB4MTAyOCwg MHgwNTJlLCBxdWlya19ub19wY21fcHdtX2VuYWJsZSB9LA0KKwkvKiBEZWxsIFhQUzEzIEhEIGFu ZCBYUFMxMyBGSEQgSXZ5IEJyaWRnZSAqLw0KKwl7IDB4MDE2NiwgMHgxMDI4LCAweDA1OGIsIHF1 aXJrX25vX3BjbV9wd21fZW5hYmxlIH0sDQogfTsNCiANCiBzdGF0aWMgdm9pZCBpbnRlbF9pbml0 X3F1aXJrcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2x2ZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMu Yw0KaW5kZXggMmZmYTc0MC4uNzRkMzEyZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2x2ZHMuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5j DQpAQCAtNDAyLDEzICs0MDIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9sdmRzX3ByZXBhcmUoc3Ry dWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQ0KIHsNCiAJc3RydWN0IGludGVsX2x2ZHMgKmludGVs X2x2ZHMgPSB0b19pbnRlbF9sdmRzKGVuY29kZXIpOw0KIA0KLQkvKg0KLQkgKiBQcmlvciB0byBJ cm9ubGFrZSwgd2UgbXVzdCBkaXNhYmxlIHRoZSBwaXBlIGlmIHdlIHdhbnQgdG8gYWRqdXN0DQot CSAqIHRoZSBwYW5lbCBmaXR0ZXIuIEhvd2V2ZXIgYXQgYWxsIG90aGVyIHRpbWVzIHdlIGNhbiBq dXN0IHJlc2V0DQotCSAqIHRoZSByZWdpc3RlcnMgcmVnYXJkbGVzcy4NCi0JICovDQotCWlmICgh SEFTX1BDSF9TUExJVChlbmNvZGVyLT5kZXYpICYmIGludGVsX2x2ZHMtPnBmaXRfZGlydHkpDQot CQlpbnRlbF9sdmRzX2Rpc2FibGUoaW50ZWxfbHZkcyk7DQorCWludGVsX2x2ZHNfZGlzYWJsZShp bnRlbF9sdmRzKTsNCiB9DQogDQogc3RhdGljIHZvaWQgaW50ZWxfbHZkc19jb21taXQoc3RydWN0 IGRybV9lbmNvZGVyICplbmNvZGVyKQ0KQEAgLTEwNzUsNyArMTA2OSw4IEBAIGJvb2wgaW50ZWxf bHZkc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpDQogCQlnb3RvIGZhaWxlZDsNCiANCiBv dXQ6DQotCWlmIChIQVNfUENIX1NQTElUKGRldikpIHsNCisJaWYgKEhBU19QQ0hfU1BMSVQoZGV2 KSAmJg0KKwkgICAgIShkZXZfcHJpdi0+cXVpcmtzICYgUVVJUktfTk9fUENIX1BXTV9FTkFCTEUp KSB7DQogCQl1MzIgcHdtOw0KIA0KIAkJcGlwZSA9IChJOTE1X1JFQUQoUENIX0xWRFMpICYgTFZE U19QSVBFQl9TRUxFQ1QpID8gMSA6IDA7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5jDQppbmRleCAzOGE3NzkzLi4zYzU1Y2Y2IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmMNCkBAIC03NzYsNiArNzc2LDE4IEBAIHZvaWQgaW50ZWxfcmluZ19z ZXR1cF9zdGF0dXNfcGFnZShzdHJ1Y3QgaW50ZWxfcmluZ19idWZmZXIgKnJpbmcpDQogDQogCUk5 MTVfV1JJVEUobW1pbywgKHUzMilyaW5nLT5zdGF0dXNfcGFnZS5nZnhfYWRkcik7DQogCVBPU1RJ TkdfUkVBRChtbWlvKTsNCisNCisJLyogRmx1c2ggdGhlIFRMQiBmb3IgdGhpcyBwYWdlICovDQor CWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA2KSB7DQorCQl1MzIgcmVnID0gUklOR19JTlNU UE0ocmluZy0+bW1pb19iYXNlKTsNCisJCUk5MTVfV1JJVEUocmVnLA0KKwkJCSAgIF9NQVNLRURf QklUX0VOQUJMRShJTlNUUE1fVExCX0lOVkFMSURBVEUgfA0KKwkJCQkJICAgICAgSU5TVFBNX1NZ TkNfRkxVU0gpKTsNCisJCWlmICh3YWl0X2ZvcigoSTkxNV9SRUFEKHJlZykgJiBJTlNUUE1fU1lO Q19GTFVTSCkgPT0gMCwNCisJCQkgICAgIDEwMDApKQ0KKwkJCURSTV9FUlJPUigiJXM6IHdhaXQg Zm9yIFN5bmNGbHVzaCB0byBjb21wbGV0ZSBmb3IgVExCIGludmFsaWRhdGlvbiB0aW1lZCBvdXRc biIsDQorCQkJCSAgcmluZy0+bmFtZSk7DQorCX0NCiB9DQogDQogc3RhdGljIGludA0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vYXRvbS5jIGIvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9hdG9tLmMNCmluZGV4IGQ5NjlmM2MuLmFmYjM1MWEgMTAwNjQ0DQotLS0gYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL2F0b20uYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9t LmMNCkBAIC0xMjIwLDEyICsxMjIwLDE3IEBAIGludCBhdG9tX2V4ZWN1dGVfdGFibGUoc3RydWN0 IGF0b21fY29udGV4dCAqY3R4LCBpbnQgaW5kZXgsIHVpbnQzMl90ICogcGFyYW1zKQ0KIAlpbnQg cjsNCiANCiAJbXV0ZXhfbG9jaygmY3R4LT5tdXRleCk7DQorCS8qIHJlc2V0IGRhdGEgYmxvY2sg Ki8NCisJY3R4LT5kYXRhX2Jsb2NrID0gMDsNCiAJLyogcmVzZXQgcmVnIGJsb2NrICovDQogCWN0 eC0+cmVnX2Jsb2NrID0gMDsNCiAJLyogcmVzZXQgZmIgd2luZG93ICovDQogCWN0eC0+ZmJfYmFz ZSA9IDA7DQogCS8qIHJlc2V0IGlvIG1vZGUgKi8NCiAJY3R4LT5pb19tb2RlID0gQVRPTV9JT19N TTsNCisJLyogcmVzZXQgZGl2bXVsICovDQorCWN0eC0+ZGl2bXVsWzBdID0gMDsNCisJY3R4LT5k aXZtdWxbMV0gPSAwOw0KIAlyID0gYXRvbV9leGVjdXRlX3RhYmxlX2xvY2tlZChjdHgsIGluZGV4 LCBwYXJhbXMpOw0KIAltdXRleF91bmxvY2soJmN0eC0+bXV0ZXgpOw0KIAlyZXR1cm4gcjsNCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbi5jIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4uYw0KaW5kZXggOWJlYTRhNi4uZjU5NjJhMCAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuLmMNCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vZXZlcmdyZWVuLmMNCkBAIC0zMDM2LDYgKzMwMzYsOCBAQCBzdGF0aWMg aW50IGV2ZXJncmVlbl9zdGFydHVwKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQ0KIAkvKiBl bmFibGUgcGNpZSBnZW4yIGxpbmsgKi8NCiAJZXZlcmdyZWVuX3BjaWVfZ2VuMl9lbmFibGUocmRl dik7DQogDQorCWV2ZXJncmVlbl9tY19wcm9ncmFtKHJkZXYpOw0KKw0KIAlpZiAoQVNJQ19JU19E Q0U1KHJkZXYpKSB7DQogCQlpZiAoIXJkZXYtPm1lX2Z3IHx8ICFyZGV2LT5wZnBfZncgfHwgIXJk ZXYtPnJsY19mdyB8fCAhcmRldi0+bWNfZncpIHsNCiAJCQlyID0gbmlfaW5pdF9taWNyb2NvZGUo cmRldik7DQpAQCAtMzA2Myw3ICszMDY1LDYgQEAgc3RhdGljIGludCBldmVyZ3JlZW5fc3RhcnR1 cChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikNCiAJaWYgKHIpDQogCQlyZXR1cm4gcjsNCiAN Ci0JZXZlcmdyZWVuX21jX3Byb2dyYW0ocmRldik7DQogCWlmIChyZGV2LT5mbGFncyAmIFJBREVP Tl9JU19BR1ApIHsNCiAJCWV2ZXJncmVlbl9hZ3BfZW5hYmxlKHJkZXYpOw0KIAl9IGVsc2Ugew0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vbmkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vbmkuYw0KaW5kZXggM2Y5NzA1Yi4uNzdlNmZiMSAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vbmkuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9uaS5j DQpAQCAtMTM1Myw2ICsxMzUzLDggQEAgc3RhdGljIGludCBjYXltYW5fc3RhcnR1cChzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldikNCiAJLyogZW5hYmxlIHBjaWUgZ2VuMiBsaW5rICovDQogCWV2 ZXJncmVlbl9wY2llX2dlbjJfZW5hYmxlKHJkZXYpOw0KIA0KKwlldmVyZ3JlZW5fbWNfcHJvZ3Jh bShyZGV2KTsNCisNCiAJaWYgKCFyZGV2LT5tZV9mdyB8fCAhcmRldi0+cGZwX2Z3IHx8ICFyZGV2 LT5ybGNfZncgfHwgIXJkZXYtPm1jX2Z3KSB7DQogCQlyID0gbmlfaW5pdF9taWNyb2NvZGUocmRl dik7DQogCQlpZiAocikgew0KQEAgLTEzNzAsNyArMTM3Miw2IEBAIHN0YXRpYyBpbnQgY2F5bWFu X3N0YXJ0dXAoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpDQogCWlmIChyKQ0KIAkJcmV0dXJu IHI7DQogDQotCWV2ZXJncmVlbl9tY19wcm9ncmFtKHJkZXYpOw0KIAlyID0gY2F5bWFuX3BjaWVf Z2FydF9lbmFibGUocmRldik7DQogCWlmIChyKQ0KIAkJcmV0dXJuIHI7DQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2 MDAuYw0KaW5kZXggM2Q0NmQ3ZDQuLjU3ZTQ1YzYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3I2MDAuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwLmMNCkBA IC0yNDE1LDYgKzI0MTUsOCBAQCBpbnQgcjYwMF9zdGFydHVwKHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2KQ0KIAkvKiBlbmFibGUgcGNpZSBnZW4yIGxpbmsgKi8NCiAJcjYwMF9wY2llX2dlbjJf ZW5hYmxlKHJkZXYpOw0KIA0KKwlyNjAwX21jX3Byb2dyYW0ocmRldik7DQorDQogCWlmICghcmRl di0+bWVfZncgfHwgIXJkZXYtPnBmcF9mdyB8fCAhcmRldi0+cmxjX2Z3KSB7DQogCQlyID0gcjYw MF9pbml0X21pY3JvY29kZShyZGV2KTsNCiAJCWlmIChyKSB7DQpAQCAtMjQyNyw3ICsyNDI5LDYg QEAgaW50IHI2MDBfc3RhcnR1cChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikNCiAJaWYgKHIp DQogCQlyZXR1cm4gcjsNCiANCi0JcjYwMF9tY19wcm9ncmFtKHJkZXYpOw0KIAlpZiAocmRldi0+ ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSB7DQogCQlyNjAwX2FncF9lbmFibGUocmRldik7DQogCX0g ZWxzZSB7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ydjc3MC5jIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9ydjc3MC5jDQppbmRleCA2M2RiNzVkLi4zZTcyMDc0IDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ydjc3MC5jDQorKysgYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3J2NzcwLmMNCkBAIC0xMDU3LDYgKzEwNTcsOCBAQCBzdGF0aWMgaW50IHJ2 NzcwX3N0YXJ0dXAoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpDQogCS8qIGVuYWJsZSBwY2ll IGdlbjIgbGluayAqLw0KIAlydjc3MF9wY2llX2dlbjJfZW5hYmxlKHJkZXYpOw0KIA0KKwlydjc3 MF9tY19wcm9ncmFtKHJkZXYpOw0KKw0KIAlpZiAoIXJkZXYtPm1lX2Z3IHx8ICFyZGV2LT5wZnBf ZncgfHwgIXJkZXYtPnJsY19mdykgew0KIAkJciA9IHI2MDBfaW5pdF9taWNyb2NvZGUocmRldik7 DQogCQlpZiAocikgew0KQEAgLTEwNjksNyArMTA3MSw2IEBAIHN0YXRpYyBpbnQgcnY3NzBfc3Rh cnR1cChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikNCiAJaWYgKHIpDQogCQlyZXR1cm4gcjsN CiANCi0JcnY3NzBfbWNfcHJvZ3JhbShyZGV2KTsNCiAJaWYgKHJkZXYtPmZsYWdzICYgUkFERU9O X0lTX0FHUCkgew0KIAkJcnY3NzBfYWdwX2VuYWJsZShyZGV2KTsNCiAJfSBlbHNlIHsNCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9nbXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X2dtci5jDQppbmRleCBjNDEyMjZhLi4yOTUyMjQ5IDEwMDY0NA0K LS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZ21yLmMNCisrKyBiL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2dtci5jDQpAQCAtMjksNyArMjksOSBAQA0KICNpbmNsdWRl ICJkcm1QLmgiDQogI2luY2x1ZGUgInR0bS90dG1fYm9fZHJpdmVyLmgiDQogDQotI2RlZmluZSBW TVdfUFBOX1NJWkUgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpDQorI2RlZmluZSBWTVdfUFBOX1NJWkUg KHNpemVvZih1bnNpZ25lZCBsb25nKSkNCisvKiBBIGZ1dHVyZSBzYWZlIG1heGltdW0gcmVtYXAg c2l6ZS4gKi8NCisjZGVmaW5lIFZNV19QUE5fUEVSX1JFTUFQICgoMzEgKiAxMDI0KSAvIFZNV19Q UE5fU0laRSkNCiANCiBzdGF0aWMgaW50IHZtd19nbXIyX2JpbmQoc3RydWN0IHZtd19wcml2YXRl ICpkZXZfcHJpdiwNCiAJCQkgc3RydWN0IHBhZ2UgKnBhZ2VzW10sDQpAQCAtMzgsNDMgKzQwLDYx IEBAIHN0YXRpYyBpbnQgdm13X2dtcjJfYmluZChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2 LA0KIHsNCiAJU1ZHQUZpZm9DbWREZWZpbmVHTVIyIGRlZmluZV9jbWQ7DQogCVNWR0FGaWZvQ21k UmVtYXBHTVIyIHJlbWFwX2NtZDsNCi0JdWludDMyX3QgZGVmaW5lX3NpemUgPSBzaXplb2YoZGVm aW5lX2NtZCkgKyA0Ow0KLQl1aW50MzJfdCByZW1hcF9zaXplID0gVk1XX1BQTl9TSVpFICogbnVt X3BhZ2VzICsgc2l6ZW9mKHJlbWFwX2NtZCkgKyA0Ow0KIAl1aW50MzJfdCAqY21kOw0KIAl1aW50 MzJfdCAqY21kX29yaWc7DQorCXVpbnQzMl90IGRlZmluZV9zaXplID0gc2l6ZW9mKGRlZmluZV9j bWQpICsgc2l6ZW9mKCpjbWQpOw0KKwl1aW50MzJfdCByZW1hcF9udW0gPSBudW1fcGFnZXMgLyBW TVdfUFBOX1BFUl9SRU1BUCArICgobnVtX3BhZ2VzICUgVk1XX1BQTl9QRVJfUkVNQVApID4gMCk7 DQorCXVpbnQzMl90IHJlbWFwX3NpemUgPSBWTVdfUFBOX1NJWkUgKiBudW1fcGFnZXMgKyAoc2l6 ZW9mKHJlbWFwX2NtZCkgKyBzaXplb2YoKmNtZCkpICogcmVtYXBfbnVtOw0KKwl1aW50MzJfdCBy ZW1hcF9wb3MgPSAwOw0KKwl1aW50MzJfdCBjbWRfc2l6ZSA9IGRlZmluZV9zaXplICsgcmVtYXBf c2l6ZTsNCiAJdWludDMyX3QgaTsNCiANCi0JY21kX29yaWcgPSBjbWQgPSB2bXdfZmlmb19yZXNl cnZlKGRldl9wcml2LCBkZWZpbmVfc2l6ZSArIHJlbWFwX3NpemUpOw0KKwljbWRfb3JpZyA9IGNt ZCA9IHZtd19maWZvX3Jlc2VydmUoZGV2X3ByaXYsIGNtZF9zaXplKTsNCiAJaWYgKHVubGlrZWx5 KGNtZCA9PSBOVUxMKSkNCiAJCXJldHVybiAtRU5PTUVNOw0KIA0KIAlkZWZpbmVfY21kLmdtcklk ID0gZ21yX2lkOw0KIAlkZWZpbmVfY21kLm51bVBhZ2VzID0gbnVtX3BhZ2VzOw0KIA0KKwkqY21k KysgPSBTVkdBX0NNRF9ERUZJTkVfR01SMjsNCisJbWVtY3B5KGNtZCwgJmRlZmluZV9jbWQsIHNp emVvZihkZWZpbmVfY21kKSk7DQorCWNtZCArPSBzaXplb2YoZGVmaW5lX2NtZCkgLyBzaXplb2Yo KmNtZCk7DQorDQorCS8qDQorCSAqIE5lZWQgdG8gc3BsaXQgdGhlIGNvbW1hbmQgaWYgdGhlcmUg YXJlIHRvbyBtYW55DQorCSAqIHBhZ2VzIHRoYXQgZ29lcyBpbnRvIHRoZSBnbXIuDQorCSAqLw0K Kw0KIAlyZW1hcF9jbWQuZ21ySWQgPSBnbXJfaWQ7DQogCXJlbWFwX2NtZC5mbGFncyA9IChWTVdf UFBOX1NJWkUgPiBzaXplb2YoKmNtZCkpID8NCiAJCVNWR0FfUkVNQVBfR01SMl9QUE42NCA6IFNW R0FfUkVNQVBfR01SMl9QUE4zMjsNCi0JcmVtYXBfY21kLm9mZnNldFBhZ2VzID0gMDsNCi0JcmVt YXBfY21kLm51bVBhZ2VzID0gbnVtX3BhZ2VzOw0KIA0KLQkqY21kKysgPSBTVkdBX0NNRF9ERUZJ TkVfR01SMjsNCi0JbWVtY3B5KGNtZCwgJmRlZmluZV9jbWQsIHNpemVvZihkZWZpbmVfY21kKSk7 DQotCWNtZCArPSBzaXplb2YoZGVmaW5lX2NtZCkgLyBzaXplb2YodWludDMyKTsNCisJd2hpbGUg KG51bV9wYWdlcyA+IDApIHsNCisJCXVuc2lnbmVkIGxvbmcgbnIgPSBtaW4obnVtX3BhZ2VzLCAo dW5zaWduZWQgbG9uZylWTVdfUFBOX1BFUl9SRU1BUCk7DQorDQorCQlyZW1hcF9jbWQub2Zmc2V0 UGFnZXMgPSByZW1hcF9wb3M7DQorCQlyZW1hcF9jbWQubnVtUGFnZXMgPSBucjsNCiANCi0JKmNt ZCsrID0gU1ZHQV9DTURfUkVNQVBfR01SMjsNCi0JbWVtY3B5KGNtZCwgJnJlbWFwX2NtZCwgc2l6 ZW9mKHJlbWFwX2NtZCkpOw0KLQljbWQgKz0gc2l6ZW9mKHJlbWFwX2NtZCkgLyBzaXplb2YodWlu dDMyKTsNCisJCSpjbWQrKyA9IFNWR0FfQ01EX1JFTUFQX0dNUjI7DQorCQltZW1jcHkoY21kLCAm cmVtYXBfY21kLCBzaXplb2YocmVtYXBfY21kKSk7DQorCQljbWQgKz0gc2l6ZW9mKHJlbWFwX2Nt ZCkgLyBzaXplb2YoKmNtZCk7DQogDQotCWZvciAoaSA9IDA7IGkgPCBudW1fcGFnZXM7ICsraSkg ew0KLQkJaWYgKFZNV19QUE5fU0laRSA8PSA0KQ0KLQkJCSpjbWQgPSBwYWdlX3RvX3BmbigqcGFn ZXMrKyk7DQotCQllbHNlDQotCQkJKigodWludDY0X3QgKiljbWQpID0gcGFnZV90b19wZm4oKnBh Z2VzKyspOw0KKwkJZm9yIChpID0gMDsgaSA8IG5yOyArK2kpIHsNCisJCQlpZiAoVk1XX1BQTl9T SVpFIDw9IDQpDQorCQkJCSpjbWQgPSBwYWdlX3RvX3BmbigqcGFnZXMrKyk7DQorCQkJZWxzZQ0K KwkJCQkqKCh1aW50NjRfdCAqKWNtZCkgPSBwYWdlX3RvX3BmbigqcGFnZXMrKyk7DQogDQotCQlj bWQgKz0gVk1XX1BQTl9TSVpFIC8gc2l6ZW9mKCpjbWQpOw0KKwkJCWNtZCArPSBWTVdfUFBOX1NJ WkUgLyBzaXplb2YoKmNtZCk7DQorCQl9DQorDQorCQludW1fcGFnZXMgLT0gbnI7DQorCQlyZW1h cF9wb3MgKz0gbnI7DQogCX0NCiANCi0Jdm13X2ZpZm9fY29tbWl0KGRldl9wcml2LCBkZWZpbmVf c2l6ZSArIHJlbWFwX3NpemUpOw0KKwlCVUdfT04oY21kICE9IGNtZF9vcmlnICsgY21kX3NpemUg LyBzaXplb2YoKmNtZCkpOw0KKw0KKwl2bXdfZmlmb19jb21taXQoZGV2X3ByaXYsIGNtZF9zaXpl KTsNCiANCiAJcmV0dXJuIDA7DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vYWR0NzQ3 MC5jIGIvZHJpdmVycy9od21vbi9hZHQ3NDcwLmMNCmluZGV4IGM2ZDFjZTAuLmE5NzI2YzEgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL2h3bW9uL2FkdDc0NzAuYw0KKysrIGIvZHJpdmVycy9od21vbi9h ZHQ3NDcwLmMNCkBAIC0yMTUsNyArMjE1LDcgQEAgc3RhdGljIGlubGluZSBpbnQgYWR0NzQ3MF93 cml0ZV93b3JkX2RhdGEoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgdTggcmVnLA0KIAkJCQkJ ICB1MTYgdmFsdWUpDQogew0KIAlyZXR1cm4gaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShjbGll bnQsIHJlZywgdmFsdWUgJiAweEZGKQ0KLQkgICAgICAgJiYgaTJjX3NtYnVzX3dyaXRlX2J5dGVf ZGF0YShjbGllbnQsIHJlZyArIDEsIHZhbHVlID4+IDgpOw0KKwkgICAgICAgfHwgaTJjX3NtYnVz X3dyaXRlX2J5dGVfZGF0YShjbGllbnQsIHJlZyArIDEsIHZhbHVlID4+IDgpOw0KIH0NCiANCiBz dGF0aWMgdm9pZCBhZHQ3NDcwX2luaXRfY2xpZW50KHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQp DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9yYWlkMS5jIGIvZHJpdmVycy9tZC9yYWlkMS5jDQpp bmRleCAyOThlMDJhLi5jNzA2YTdiIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZC9yYWlkMS5jDQor KysgYi9kcml2ZXJzL21kL3JhaWQxLmMNCkBAIC0xMTM5LDcgKzExMzksNyBAQCByZWFkX2FnYWlu Og0KIAkJCSAqIGtub3cgdGhlIG9yaWdpbmFsIGJpX2lkeCwgc28gd2UganVzdCBmcmVlDQogCQkJ ICogdGhlbSBhbGwNCiAJCQkgKi8NCi0JCQlfX2Jpb19mb3JfZWFjaF9zZWdtZW50KGJ2ZWMsIG1i aW8sIGosIDApDQorCQkJYmlvX2Zvcl9lYWNoX3NlZ21lbnRfYWxsKGJ2ZWMsIG1iaW8sIGopDQog CQkJCWJ2ZWMtPmJ2X3BhZ2UgPSByMV9iaW8tPmJlaGluZF9idmVjc1tqXS5idl9wYWdlOw0KIAkJ CWlmICh0ZXN0X2JpdChXcml0ZU1vc3RseSwgJmNvbmYtPm1pcnJvcnNbaV0ucmRldi0+ZmxhZ3Mp KQ0KIAkJCQlhdG9taWNfaW5jKCZyMV9iaW8tPmJlaGluZF9yZW1haW5pbmcpOw0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2FyY25ldC9hcmNuZXQuYyBiL2RyaXZlcnMvbmV0L2FyY25ldC9hcmNu ZXQuYw0KaW5kZXggYTc0NmJhMi4uYTk1NjA1MyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2Fy Y25ldC9hcmNuZXQuYw0KKysrIGIvZHJpdmVycy9uZXQvYXJjbmV0L2FyY25ldC5jDQpAQCAtMTAw Nyw3ICsxMDA3LDcgQEAgc3RhdGljIHZvaWQgYXJjbmV0X3J4KHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYsIGludCBidWZudW0pDQogDQogCXNvZnQgPSAmcGt0LnNvZnQucmZjMTIwMTsNCiANCi0JbHAt Pmh3LmNvcHlfZnJvbV9jYXJkKGRldiwgYnVmbnVtLCAwLCAmcGt0LCBzaXplb2YoQVJDX0hEUl9T SVpFKSk7DQorCWxwLT5ody5jb3B5X2Zyb21fY2FyZChkZXYsIGJ1Zm51bSwgMCwgJnBrdCwgQVJD X0hEUl9TSVpFKTsNCiAJaWYgKHBrdC5oYXJkLm9mZnNldFswXSkgew0KIAkJb2ZzID0gcGt0Lmhh cmQub2Zmc2V0WzBdOw0KIAkJbGVuZ3RoID0gMjU2IC0gb2ZzOw0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX2RjYl84MjU5OC5jIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfZGNiXzgyNTk4LmMNCmluZGV4IGZjZDBlNDcu LjJhN2QwOTEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9p eGdiZV9kY2JfODI1OTguYw0KKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUv aXhnYmVfZGNiXzgyNTk4LmMNCkBAIC0xMDgsOSArMTA4LDggQEAgczMyIGl4Z2JlX2RjYl9jb25m aWdfdHhfZGVzY19hcmJpdGVyXzgyNTk4KHN0cnVjdCBpeGdiZV9odyAqaHcsDQogDQogCS8qIEVu YWJsZSBhcmJpdGVyICovDQogCXJlZyAmPSB+SVhHQkVfRFBNQ1NfQVJCRElTOw0KLQkvKiBFbmFi bGUgREZQIGFuZCBSZWN5Y2xlIG1vZGUgKi8NCi0JcmVnIHw9IChJWEdCRV9EUE1DU19URFBBQyB8 IElYR0JFX0RQTUNTX1RSTSk7DQogCXJlZyB8PSBJWEdCRV9EUE1DU19UU09FRjsNCisNCiAJLyog Q29uZmlndXJlIE1heCBUU08gcGFja2V0IHNpemUgMzRLQiBpbmNsdWRpbmcgcGF5bG9hZCBhbmQg aGVhZGVycyAqLw0KIAlyZWcgfD0gKDB4NCA8PCBJWEdCRV9EUE1DU19NVFNPU19TSElGVCk7DQog DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaWZiLmMgYi9kcml2ZXJzL25ldC9pZmIuYw0KaW5k ZXggYjE5ODQxYS4uMDBmMTM2NyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2lmYi5jDQorKysg Yi9kcml2ZXJzL25ldC9pZmIuYw0KQEAgLTM0LDYgKzM0LDcgQEANCiAjaW5jbHVkZSA8bGludXgv aW5pdC5oPg0KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4NCiAjaW5jbHVkZSA8bGludXgv bW9kdWxlcGFyYW0uaD4NCisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4NCiAjaW5jbHVkZSA8bmV0 L3BrdF9zY2hlZC5oPg0KICNpbmNsdWRlIDxuZXQvbmV0X25hbWVzcGFjZS5oPg0KIA0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9zbXNjNzV4eC5jIGIvZHJpdmVycy9uZXQvdXNiL3Ntc2M3 NXh4LmMNCmluZGV4IGYzZDE3ZjguLmE4ZTQ2NDAgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC91 c2Ivc21zYzc1eHguYw0KKysrIGIvZHJpdmVycy9uZXQvdXNiL3Ntc2M3NXh4LmMNCkBAIC00Myw3 ICs0Myw2IEBADQogI2RlZmluZSBFRVBST01fTUFDX09GRlNFVAkJKDB4MDEpDQogI2RlZmluZSBE RUZBVUxUX1RYX0NTVU1fRU5BQkxFCQkodHJ1ZSkNCiAjZGVmaW5lIERFRkFVTFRfUlhfQ1NVTV9F TkFCTEUJCSh0cnVlKQ0KLSNkZWZpbmUgREVGQVVMVF9UU09fRU5BQkxFCQkodHJ1ZSkNCiAjZGVm aW5lIFNNU0M3NVhYX0lOVEVSTkFMX1BIWV9JRAkoMSkNCiAjZGVmaW5lIFNNU0M3NVhYX1RYX09W RVJIRUFECQkoOCkNCiAjZGVmaW5lIE1BWF9SWF9GSUZPX1NJWkUJCSgyMCAqIDEwMjQpDQpAQCAt MTAzNSwxNyArMTAzNCwxNCBAQCBzdGF0aWMgaW50IHNtc2M3NXh4X2JpbmQoc3RydWN0IHVzYm5l dCAqZGV2LCBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZikNCiANCiAJSU5JVF9XT1JLKCZwZGF0 YS0+c2V0X211bHRpY2FzdCwgc21zYzc1eHhfZGVmZXJyZWRfbXVsdGljYXN0X3dyaXRlKTsNCiAN Ci0JaWYgKERFRkFVTFRfVFhfQ1NVTV9FTkFCTEUpIHsNCisJaWYgKERFRkFVTFRfVFhfQ1NVTV9F TkFCTEUpDQogCQlkZXYtPm5ldC0+ZmVhdHVyZXMgfD0gTkVUSUZfRl9JUF9DU1VNIHwgTkVUSUZf Rl9JUFY2X0NTVU07DQotCQlpZiAoREVGQVVMVF9UU09fRU5BQkxFKQ0KLQkJCWRldi0+bmV0LT5m ZWF0dXJlcyB8PSBORVRJRl9GX1NHIHwNCi0JCQkJTkVUSUZfRl9UU08gfCBORVRJRl9GX1RTTzY7 DQotCX0NCisNCiAJaWYgKERFRkFVTFRfUlhfQ1NVTV9FTkFCTEUpDQogCQlkZXYtPm5ldC0+ZmVh dHVyZXMgfD0gTkVUSUZfRl9SWENTVU07DQogDQogCWRldi0+bmV0LT5od19mZWF0dXJlcyA9IE5F VElGX0ZfSVBfQ1NVTSB8IE5FVElGX0ZfSVBWNl9DU1VNIHwNCi0JCU5FVElGX0ZfU0cgfCBORVRJ Rl9GX1RTTyB8IE5FVElGX0ZfVFNPNiB8IE5FVElGX0ZfUlhDU1VNOw0KKwkJCQlORVRJRl9GX1JY Q1NVTTsNCiANCiAJLyogSW5pdCBhbGwgcmVnaXN0ZXJzICovDQogCXJldCA9IHNtc2M3NXh4X3Jl c2V0KGRldik7DQpAQCAtMTE3MCw4ICsxMTY2LDYgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpz bXNjNzV4eF90eF9maXh1cChzdHJ1Y3QgdXNibmV0ICpkZXYsDQogew0KIAl1MzIgdHhfY21kX2Es IHR4X2NtZF9iOw0KIA0KLQlza2JfbGluZWFyaXplKHNrYik7DQotDQogCWlmIChza2JfaGVhZHJv b20oc2tiKSA8IFNNU0M3NVhYX1RYX09WRVJIRUFEKSB7DQogCQlzdHJ1Y3Qgc2tfYnVmZiAqc2ti MiA9DQogCQkJc2tiX2NvcHlfZXhwYW5kKHNrYiwgU01TQzc1WFhfVFhfT1ZFUkhFQUQsIDAsIGZs YWdzKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Ry dl9pbml0LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Rydl9pbml0LmMN CmluZGV4IDg0ODkwZDUuLmVmOTIxZTEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVz cy9hdGgvYXRoOWsvaHRjX2Rydl9pbml0LmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0 aC9hdGg5ay9odGNfZHJ2X2luaXQuYw0KQEAgLTg1MSw2ICs4NTEsNyBAQCBzdGF0aWMgaW50IGF0 aDlrX2luaXRfZGV2aWNlKHN0cnVjdCBhdGg5a19odGNfcHJpdiAqcHJpdiwNCiAJaWYgKGVycm9y ICE9IDApDQogCQlnb3RvIGVycl9yeDsNCiANCisJYXRoOWtfaHdfZGlzYWJsZShwcml2LT5haCk7 DQogI2lmZGVmIENPTkZJR19NQUM4MDIxMV9MRURTDQogCS8qIG11c3QgYmUgaW5pdGlhbGl6ZWQg YmVmb3JlIGllZWU4MDIxMV9yZWdpc3Rlcl9odyAqLw0KIAlwcml2LT5sZWRfY2Rldi5kZWZhdWx0 X3RyaWdnZXIgPSBpZWVlODAyMTFfY3JlYXRlX3RwdF9sZWRfdHJpZ2dlcihwcml2LT5odywNCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Rydl90eHJ4LmMg Yi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHRjX2Rydl90eHJ4LmMNCmluZGV4IGE0 OGJiODMuLjlhNTcxNDkgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo OWsvaHRjX2Rydl90eHJ4LmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9o dGNfZHJ2X3R4cnguYw0KQEAgLTQ0OCw2ICs0NDgsNyBAQCBzdGF0aWMgdm9pZCBhdGg5a19odGNf dHhfcHJvY2VzcyhzdHJ1Y3QgYXRoOWtfaHRjX3ByaXYgKnByaXYsDQogCXN0cnVjdCBpZWVlODAy MTFfY29uZiAqY3VyX2NvbmYgPSAmcHJpdi0+aHctPmNvbmY7DQogCWJvb2wgdHhvazsNCiAJaW50 IHNsb3Q7DQorCWludCBoZHJsZW4sIHBhZHNpemU7DQogDQogCXNsb3QgPSBzdHJpcF9kcnZfaGVh ZGVyKHByaXYsIHNrYik7DQogCWlmIChzbG90IDwgMCkgew0KQEAgLTUwNCw2ICs1MDUsMTUgQEAg c2VuZF9tYWM4MDIxMToNCiANCiAJYXRoOWtfaHRjX3R4X2NsZWFyX3Nsb3QocHJpdiwgc2xvdCk7 DQogDQorCS8qIFJlbW92ZSBwYWRkaW5nIGJlZm9yZSBoYW5kaW5nIGZyYW1lIGJhY2sgdG8gbWFj ODAyMTEgKi8NCisJaGRybGVuID0gaWVlZTgwMjExX2dldF9oZHJsZW5fZnJvbV9za2Ioc2tiKTsN CisNCisJcGFkc2l6ZSA9IGhkcmxlbiAmIDM7DQorCWlmIChwYWRzaXplICYmIHNrYi0+bGVuID4g aGRybGVuICsgcGFkc2l6ZSkgew0KKwkJbWVtbW92ZShza2ItPmRhdGEgKyBwYWRzaXplLCBza2It PmRhdGEsIGhkcmxlbik7DQorCQlza2JfcHVsbChza2IsIHBhZHNpemUpOw0KKwl9DQorDQogCS8q IFNlbmQgc3RhdHVzIHRvIG1hYzgwMjExICovDQogCWllZWU4MDIxMV90eF9zdGF0dXMocHJpdi0+ aHcsIHNrYik7DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9o b3N0YXBfaW9jdGwuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfaW9jdGwu Yw0KaW5kZXggMDQ1YTkzNi4uMjcxZTgxOCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL2hvc3RhcC9ob3N0YXBfaW9jdGwuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaG9z dGFwL2hvc3RhcF9pb2N0bC5jDQpAQCAtNTIyLDkgKzUyMiw5IEBAIHN0YXRpYyBpbnQgcHJpc20y X2lvY3RsX2dpd2FwbGlzdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LA0KIA0KIAlkYXRhLT5sZW5n dGggPSBwcmlzbTJfYXBfZ2V0X3N0YV9xdWFsKGxvY2FsLCBhZGRyLCBxdWFsLCBJV19NQVhfQVAs IDEpOw0KIA0KLQltZW1jcHkoZXh0cmEsICZhZGRyLCBzaXplb2Yoc3RydWN0IHNvY2thZGRyKSAq IGRhdGEtPmxlbmd0aCk7DQorCW1lbWNweShleHRyYSwgYWRkciwgc2l6ZW9mKHN0cnVjdCBzb2Nr YWRkcikgKiBkYXRhLT5sZW5ndGgpOw0KIAlkYXRhLT5mbGFncyA9IDE7IC8qIGhhcyBxdWFsaXR5 IGluZm9ybWF0aW9uICovDQotCW1lbWNweShleHRyYSArIHNpemVvZihzdHJ1Y3Qgc29ja2FkZHIp ICogZGF0YS0+bGVuZ3RoLCAmcXVhbCwNCisJbWVtY3B5KGV4dHJhICsgc2l6ZW9mKHN0cnVjdCBz b2NrYWRkcikgKiBkYXRhLT5sZW5ndGgsIHF1YWwsDQogCSAgICAgICBzaXplb2Yoc3RydWN0IGl3 X3F1YWxpdHkpICogZGF0YS0+bGVuZ3RoKTsNCiANCiAJa2ZyZWUoYWRkcik7DQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsZWdhY3kvaXdsLWNvcmUuYyBiL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2l3bGVnYWN5L2l3bC1jb3JlLmMNCmluZGV4IDFiYjY0YzkuLjA5ODkxZTUgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2xlZ2FjeS9pd2wtY29yZS5jDQorKysg Yi9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2xlZ2FjeS9pd2wtY29yZS5jDQpAQCAtMTc1Nyw2ICsx NzU3LDcgQEAgaW50IGl3bF9sZWdhY3lfZm9yY2VfcmVzZXQoc3RydWN0IGl3bF9wcml2ICpwcml2 LCBib29sIGV4dGVybmFsKQ0KIA0KIAlyZXR1cm4gMDsNCiB9DQorRVhQT1JUX1NZTUJPTChpd2xf bGVnYWN5X2ZvcmNlX3Jlc2V0KTsNCiANCiBpbnQNCiBpd2xfbGVnYWN5X21hY19jaGFuZ2VfaW50 ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2l3bGVnYWN5L2l3bDQ5NjUtYmFzZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mv aXdsZWdhY3kvaXdsNDk2NS1iYXNlLmMNCmluZGV4IGQyZmJhOWUuLjZlMjVjN2IgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2xlZ2FjeS9pd2w0OTY1LWJhc2UuYw0KKysrIGIv ZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsZWdhY3kvaXdsNDk2NS1iYXNlLmMNCkBAIC04NjgsMTMg Kzg2OCwxMyBAQCBzdGF0aWMgdm9pZCBpd2w0OTY1X2lycV90YXNrbGV0KHN0cnVjdCBpd2xfcHJp diAqcHJpdikNCiAJCSAqIGlzIGtpbGxlZC4gSGVuY2UgdXBkYXRlIHRoZSBraWxsc3dpdGNoIHN0 YXRlIGhlcmUuIFRoZQ0KIAkJICogcmZraWxsIGhhbmRsZXIgd2lsbCBjYXJlIGFib3V0IHJlc3Rh cnRpbmcgaWYgbmVlZGVkLg0KIAkJICovDQotCQlpZiAoIXRlc3RfYml0KFNUQVRVU19BTElWRSwg JnByaXYtPnN0YXR1cykpIHsNCi0JCQlpZiAoaHdfcmZfa2lsbCkNCi0JCQkJc2V0X2JpdChTVEFU VVNfUkZfS0lMTF9IVywgJnByaXYtPnN0YXR1cyk7DQotCQkJZWxzZQ0KLQkJCQljbGVhcl9iaXQo U1RBVFVTX1JGX0tJTExfSFcsICZwcml2LT5zdGF0dXMpOw0KLQkJCXdpcGh5X3Jma2lsbF9zZXRf aHdfc3RhdGUocHJpdi0+aHctPndpcGh5LCBod19yZl9raWxsKTsNCisJCWlmIChod19yZl9raWxs KSB7DQorCQkJc2V0X2JpdChTVEFUVVNfUkZfS0lMTF9IVywgJnByaXYtPnN0YXR1cyk7DQorCQl9 IGVsc2Ugew0KKwkJCWNsZWFyX2JpdChTVEFUVVNfUkZfS0lMTF9IVywgJnByaXYtPnN0YXR1cyk7 DQorCQkJaXdsX2xlZ2FjeV9mb3JjZV9yZXNldChwcml2LCB0cnVlKTsNCiAJCX0NCisJCXdpcGh5 X3Jma2lsbF9zZXRfaHdfc3RhdGUocHJpdi0+aHctPndpcGh5LCBod19yZl9raWxsKTsNCiANCiAJ CWhhbmRsZWQgfD0gQ1NSX0lOVF9CSVRfUkZfS0lMTDsNCiAJfQ0KQEAgLTE3NjQsNiArMTc2NCw5 IEBAIHN0YXRpYyB2b2lkIGl3bDQ5NjVfYWxpdmVfc3RhcnQoc3RydWN0IGl3bF9wcml2ICpwcml2 KQ0KIA0KIAlwcml2LT5hY3RpdmVfcmF0ZSA9IElXTF9SQVRFU19NQVNLOw0KIA0KKwlpd2xfbGVn YWN5X3Bvd2VyX3VwZGF0ZV9tb2RlKHByaXYsIHRydWUpOw0KKwlJV0xfREVCVUdfSU5GTyhwcml2 LCAiVXBkYXRlZCBwb3dlciBtb2RlXG4iKTsNCisNCiAJaWYgKGl3bF9sZWdhY3lfaXNfYXNzb2Np YXRlZF9jdHgoY3R4KSkgew0KIAkJc3RydWN0IGl3bF9sZWdhY3lfcnhvbl9jbWQgKmFjdGl2ZV9y eG9uID0NCiAJCQkJKHN0cnVjdCBpd2xfbGVnYWN5X3J4b25fY21kICopJmN0eC0+YWN0aXZlOw0K QEAgLTE3OTYsOSArMTc5OSw2IEBAIHN0YXRpYyB2b2lkIGl3bDQ5NjVfYWxpdmVfc3RhcnQoc3Ry dWN0IGl3bF9wcml2ICpwcml2KQ0KIAlJV0xfREVCVUdfSU5GTyhwcml2LCAiQUxJVkUgcHJvY2Vz c2luZyBjb21wbGV0ZS5cbiIpOw0KIAl3YWtlX3VwKCZwcml2LT53YWl0X2NvbW1hbmRfcXVldWUp Ow0KIA0KLQlpd2xfbGVnYWN5X3Bvd2VyX3VwZGF0ZV9tb2RlKHByaXYsIHRydWUpOw0KLQlJV0xf REVCVUdfSU5GTyhwcml2LCAiVXBkYXRlZCBwb3dlciBtb2RlXG4iKTsNCi0NCiAJcmV0dXJuOw0K IA0KICByZXN0YXJ0Og0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkv aXdsLWFnbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtYWduLmMNCmluZGV4 IDE2Y2RkMTIuLjk0ZDM1YWQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3 aWZpL2l3bC1hZ24uYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtYWdu LmMNCkBAIC0xMjk3LDcgKzEyOTcsNyBAQCBpbnQgaXdsX2FsaXZlX3N0YXJ0KHN0cnVjdCBpd2xf cHJpdiAqcHJpdikNCiAJCQkJCSBCVF9DT0VYX1BSSU9fVEJMX0VWVF9JTklUX0NBTElCMik7DQog CQlpZiAocmV0KQ0KIAkJCXJldHVybiByZXQ7DQotCX0gZWxzZSB7DQorCX0gZWxzZSBpZiAocHJp di0+Y2ZnLT5idF9wYXJhbXMpIHsNCiAJCS8qDQogCQkgKiBkZWZhdWx0IGlzIDItd2lyZSBCVCBj b2V4ZXhpc3RlbmNlIHN1cHBvcnQNCiAJCSAqLw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2l3bHdpZmkvaXdsLWNvcmUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkv aXdsLWNvcmUuYw0KaW5kZXggODMyZWM0ZC4uNWVmMTc2YSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv bmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLWNvcmUuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxl c3MvaXdsd2lmaS9pd2wtY29yZS5jDQpAQCAtODA4LDggKzgwOCwxMSBAQCB2b2lkIGl3bF9jaHN3 aXRjaF9kb25lKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgYm9vbCBpc19zdWNjZXNzKQ0KIAlpZiAo dGVzdF9iaXQoU1RBVFVTX0VYSVRfUEVORElORywgJnByaXYtPnNocmQtPnN0YXR1cykpDQogCQly ZXR1cm47DQogDQotCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoU1RBVFVTX0NIQU5ORUxfU1dJVENI X1BFTkRJTkcsDQorCWlmICghdGVzdF9hbmRfY2xlYXJfYml0KFNUQVRVU19DSEFOTkVMX1NXSVRD SF9QRU5ESU5HLA0KIAkJCQkmcHJpdi0+c2hyZC0+c3RhdHVzKSkNCisJCXJldHVybjsNCisNCisJ aWYgKGN0eC0+dmlmKQ0KIAkJaWVlZTgwMjExX2Noc3dpdGNoX2RvbmUoY3R4LT52aWYsIGlzX3N1 Y2Nlc3MpOw0KIH0NCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZp L2l3bC1wY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLXBjaS5jDQppbmRl eCAxODAwMDI5Li4zNDZkYzliIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXds d2lmaS9pd2wtcGNpLmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLXBj aS5jDQpAQCAtMjI3LDYgKzIyNyw3IEBAIHN0YXRpYyBERUZJTkVfUENJX0RFVklDRV9UQUJMRShp d2xfaHdfY2FyZF9pZHMpID0gew0KIAl7SVdMX1BDSV9ERVZJQ0UoMHg0MjNDLCAweDEzMDYsIGl3 bDUxNTBfYWJnX2NmZyl9LCAvKiBIYWxmIE1pbmkgQ2FyZCAqLw0KIAl7SVdMX1BDSV9ERVZJQ0Uo MHg0MjNDLCAweDEyMjEsIGl3bDUxNTBfYWduX2NmZyl9LCAvKiBNaW5pIENhcmQgKi8NCiAJe0lX TF9QQ0lfREVWSUNFKDB4NDIzQywgMHgxMzIxLCBpd2w1MTUwX2Fnbl9jZmcpfSwgLyogSGFsZiBN aW5pIENhcmQgKi8NCisJe0lXTF9QQ0lfREVWSUNFKDB4NDIzQywgMHgxMzI2LCBpd2w1MTUwX2Fi Z19jZmcpfSwgLyogSGFsZiBNaW5pIENhcmQgKi8NCiANCiAJe0lXTF9QQ0lfREVWSUNFKDB4NDIz RCwgMHgxMjExLCBpd2w1MTUwX2Fnbl9jZmcpfSwgLyogTWluaSBDYXJkICovDQogCXtJV0xfUENJ X0RFVklDRSgweDQyM0QsIDB4MTMxMSwgaXdsNTE1MF9hZ25fY2ZnKX0sIC8qIEhhbGYgTWluaSBD YXJkICovDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC9zZGlvLmMg Yi9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L3NkaW8uYw0KaW5kZXggMzU3OWE2OC4uMTdm ODcyMCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL213aWZpZXgvc2Rpby5jDQor KysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L3NkaW8uYw0KQEAgLTE0MjksOCArMTQy OSw4IEBAIHN0YXRpYyBpbnQgbXdpZmlleF9zZGlvX2hvc3RfdG9fY2FyZChzdHJ1Y3QgbXdpZmll eF9hZGFwdGVyICphZGFwdGVyLA0KIAkvKiBBbGxvY2F0ZSBidWZmZXIgYW5kIGNvcHkgcGF5bG9h ZCAqLw0KIAlibGtfc2l6ZSA9IE1XSUZJRVhfU0RJT19CTE9DS19TSVpFOw0KIAlidWZfYmxvY2tf bGVuID0gKHBrdF9sZW4gKyBibGtfc2l6ZSAtIDEpIC8gYmxrX3NpemU7DQotCSoodTE2ICopICZw YXlsb2FkWzBdID0gKHUxNikgcGt0X2xlbjsNCi0JKih1MTYgKikgJnBheWxvYWRbMl0gPSB0eXBl Ow0KKwkqKF9fbGUxNiAqKSZwYXlsb2FkWzBdID0gY3B1X3RvX2xlMTYoKHUxNilwa3RfbGVuKTsN CisJKihfX2xlMTYgKikmcGF5bG9hZFsyXSA9IGNwdV90b19sZTE2KHR5cGUpOw0KIA0KIAkvKg0K IAkgKiBUaGlzIGlzIFNESU8gc3BlY2lmaWMgaGVhZGVyDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMHF1ZXVlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9y dDJ4MDAvcnQyeDAwcXVldWUuYw0KaW5kZXggNTBmOTJkNS4uNGQ3OTJhMiAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDBxdWV1ZS5jDQorKysgYi9kcml2ZXJz L25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwcXVldWUuYw0KQEAgLTg1NiwxMyArODU2LDggQEAg dm9pZCBydDJ4MDBxdWV1ZV9pbmRleF9pbmMoc3RydWN0IHF1ZXVlX2VudHJ5ICplbnRyeSwgZW51 bSBxdWV1ZV9pbmRleCBpbmRleCkNCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcXVldWUtPmlu ZGV4X2xvY2ssIGlycWZsYWdzKTsNCiB9DQogDQotdm9pZCBydDJ4MDBxdWV1ZV9wYXVzZV9xdWV1 ZShzdHJ1Y3QgZGF0YV9xdWV1ZSAqcXVldWUpDQordm9pZCBydDJ4MDBxdWV1ZV9wYXVzZV9xdWV1 ZV9ub2NoZWNrKHN0cnVjdCBkYXRhX3F1ZXVlICpxdWV1ZSkNCiB7DQotCWlmICghdGVzdF9iaXQo REVWSUNFX1NUQVRFX1BSRVNFTlQsICZxdWV1ZS0+cnQyeDAwZGV2LT5mbGFncykgfHwNCi0JICAg ICF0ZXN0X2JpdChRVUVVRV9TVEFSVEVELCAmcXVldWUtPmZsYWdzKSB8fA0KLQkgICAgdGVzdF9h bmRfc2V0X2JpdChRVUVVRV9QQVVTRUQsICZxdWV1ZS0+ZmxhZ3MpKQ0KLQkJcmV0dXJuOw0KLQ0K IAlzd2l0Y2ggKHF1ZXVlLT5xaWQpIHsNCiAJY2FzZSBRSURfQUNfVk86DQogCWNhc2UgUUlEX0FD X1ZJOg0KQEAgLTg3OCw2ICs4NzMsMTUgQEAgdm9pZCBydDJ4MDBxdWV1ZV9wYXVzZV9xdWV1ZShz dHJ1Y3QgZGF0YV9xdWV1ZSAqcXVldWUpDQogCQlicmVhazsNCiAJfQ0KIH0NCit2b2lkIHJ0Mngw MHF1ZXVlX3BhdXNlX3F1ZXVlKHN0cnVjdCBkYXRhX3F1ZXVlICpxdWV1ZSkNCit7DQorCWlmICgh dGVzdF9iaXQoREVWSUNFX1NUQVRFX1BSRVNFTlQsICZxdWV1ZS0+cnQyeDAwZGV2LT5mbGFncykg fHwNCisJICAgICF0ZXN0X2JpdChRVUVVRV9TVEFSVEVELCAmcXVldWUtPmZsYWdzKSB8fA0KKwkg ICAgdGVzdF9hbmRfc2V0X2JpdChRVUVVRV9QQVVTRUQsICZxdWV1ZS0+ZmxhZ3MpKQ0KKwkJcmV0 dXJuOw0KKw0KKwlydDJ4MDBxdWV1ZV9wYXVzZV9xdWV1ZV9ub2NoZWNrKHF1ZXVlKTsNCit9DQog RVhQT1JUX1NZTUJPTF9HUEwocnQyeDAwcXVldWVfcGF1c2VfcXVldWUpOw0KIA0KIHZvaWQgcnQy eDAwcXVldWVfdW5wYXVzZV9xdWV1ZShzdHJ1Y3QgZGF0YV9xdWV1ZSAqcXVldWUpDQpAQCAtOTM5 LDcgKzk0Myw3IEBAIHZvaWQgcnQyeDAwcXVldWVfc3RvcF9xdWV1ZShzdHJ1Y3QgZGF0YV9xdWV1 ZSAqcXVldWUpDQogCQlyZXR1cm47DQogCX0NCiANCi0JcnQyeDAwcXVldWVfcGF1c2VfcXVldWUo cXVldWUpOw0KKwlydDJ4MDBxdWV1ZV9wYXVzZV9xdWV1ZV9ub2NoZWNrKHF1ZXVlKTsNCiANCiAJ cXVldWUtPnJ0MngwMGRldi0+b3BzLT5saWItPnN0b3BfcXVldWUocXVldWUpOw0KIA0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3pkMTIwMS5jIGIvZHJpdmVycy9uZXQvd2lyZWxl c3MvemQxMjAxLmMNCmluZGV4IDhlZmEyZjIuLmY4YzMxOWMgMTAwNjQ0DQotLS0gYS9kcml2ZXJz L25ldC93aXJlbGVzcy96ZDEyMDEuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjAx LmMNCkBAIC05OCwxMCArOTgsMTIgQEAgc3RhdGljIGludCB6ZDEyMDFfZndfdXBsb2FkKHN0cnVj dCB1c2JfZGV2aWNlICpkZXYsIGludCBhcGZ3KQ0KIAkJZ290byBleGl0Ow0KIA0KIAllcnIgPSB1 c2JfY29udHJvbF9tc2coZGV2LCB1c2JfcmN2Y3RybHBpcGUoZGV2LCAwKSwgMHg0LA0KLQkgICAg VVNCX0RJUl9JTiB8IDB4NDAsIDAsMCwgJnJldCwgc2l6ZW9mKHJldCksIFpEMTIwMV9GV19USU1F T1VUKTsNCisJICAgIFVTQl9ESVJfSU4gfCAweDQwLCAwLCAwLCBidWYsIHNpemVvZihyZXQpLCBa RDEyMDFfRldfVElNRU9VVCk7DQogCWlmIChlcnIgPCAwKQ0KIAkJZ290byBleGl0Ow0KIA0KKwlt ZW1jcHkoJnJldCwgYnVmLCBzaXplb2YocmV0KSk7DQorDQogCWlmIChyZXQgJiAweDgwKSB7DQog CQllcnIgPSAtRUlPOw0KIAkJZ290byBleGl0Ow0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvb2YvZmR0 LmMgYi9kcml2ZXJzL29mL2ZkdC5jDQppbmRleCBmZDg1ZmEyLi5iNzc4MDhjIDEwMDY0NA0KLS0t IGEvZHJpdmVycy9vZi9mZHQuYw0KKysrIGIvZHJpdmVycy9vZi9mZHQuYw0KQEAgLTM4OSw2ICsz ODksOCBAQCBzdGF0aWMgdm9pZCBfX3VuZmxhdHRlbl9kZXZpY2VfdHJlZShzdHJ1Y3QgYm9vdF9w YXJhbV9oZWFkZXIgKmJsb2IsDQogCW1lbSA9ICh1bnNpZ25lZCBsb25nKQ0KIAkJZHRfYWxsb2Mo c2l6ZSArIDQsIF9fYWxpZ25vZl9fKHN0cnVjdCBkZXZpY2Vfbm9kZSkpOw0KIA0KKwltZW1zZXQo KHZvaWQgKiltZW0sIDAsIHNpemUpOw0KKw0KIAkoKF9fYmUzMiAqKW1lbSlbc2l6ZSAvIDRdID0g Y3B1X3RvX2JlMzIoMHhkZWFkYmVlZik7DQogDQogCXByX2RlYnVnKCIgIHVuZmxhdHRlbmluZyAl bHguLi5cbiIsIG1lbSk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wYXJpc2MvaW9tbXUtaGVscGVy cy5oIGIvZHJpdmVycy9wYXJpc2MvaW9tbXUtaGVscGVycy5oDQppbmRleCBhOWM0NmNjLi44YzMz NDkxIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9wYXJpc2MvaW9tbXUtaGVscGVycy5oDQorKysgYi9k cml2ZXJzL3BhcmlzYy9pb21tdS1oZWxwZXJzLmgNCkBAIC0xLDMgKzEsNSBAQA0KKyNpbmNsdWRl IDxsaW51eC9wcmVmZXRjaC5oPg0KKw0KIC8qKg0KICAqIGlvbW11X2ZpbGxfcGRpciAtIEluc2Vy dCBjb2FsZXNjZWQgc2NhdHRlci9nYXRoZXIgY2h1bmtzIGludG8gdGhlIEkvTyBQZGlyLg0KICAq IEBpb2M6IFRoZSBJL08gQ29udHJvbGxlci4NCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9NYWtl ZmlsZSBiL2RyaXZlcnMvcGNpL01ha2VmaWxlDQppbmRleCAwODNhNDlmLi4xNjUyNzRjIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9wY2kvTWFrZWZpbGUNCisrKyBiL2RyaXZlcnMvcGNpL01ha2VmaWxl DQpAQCAtNDIsNiArNDIsNyBAQCBvYmotJChDT05GSUdfVU5JQ09SRTMyKSArPSBzZXR1cC1idXMu byBzZXR1cC1pcnEubw0KIG9iai0kKENPTkZJR19QQVJJU0MpICs9IHNldHVwLWJ1cy5vDQogb2Jq LSQoQ09ORklHX1NVUEVSSCkgKz0gc2V0dXAtYnVzLm8gc2V0dXAtaXJxLm8NCiBvYmotJChDT05G SUdfUFBDKSArPSBzZXR1cC1idXMubw0KK29iai0kKENPTkZJR19GUlYpICs9IHNldHVwLWJ1cy5v DQogb2JqLSQoQ09ORklHX01JUFMpICs9IHNldHVwLWJ1cy5vIHNldHVwLWlycS5vDQogb2JqLSQo Q09ORklHX1g4Nl9WSVNXUykgKz0gc2V0dXAtaXJxLm8NCiBvYmotJChDT05GSUdfTU4xMDMwMCkg Kz0gc2V0dXAtYnVzLm8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvc2NzaS96ZmNwX2VycC5j IGIvZHJpdmVycy9zMzkwL3Njc2kvemZjcF9lcnAuYw0KaW5kZXggZTFiNGY4MC4uNWM4NzI3MCAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvczM5MC9zY3NpL3pmY3BfZXJwLmMNCisrKyBiL2RyaXZlcnMv czM5MC9zY3NpL3pmY3BfZXJwLmMNCkBAIC0xMDIsMTAgKzEwMiwxMyBAQCBzdGF0aWMgdm9pZCB6 ZmNwX2VycF9hY3Rpb25fZGlzbWlzc19wb3J0KHN0cnVjdCB6ZmNwX3BvcnQgKnBvcnQpDQogDQog CWlmIChhdG9taWNfcmVhZCgmcG9ydC0+c3RhdHVzKSAmIFpGQ1BfU1RBVFVTX0NPTU1PTl9FUlBf SU5VU0UpDQogCQl6ZmNwX2VycF9hY3Rpb25fZGlzbWlzcygmcG9ydC0+ZXJwX2FjdGlvbik7DQot CWVsc2UNCi0JCXNob3N0X2Zvcl9lYWNoX2RldmljZShzZGV2LCBwb3J0LT5hZGFwdGVyLT5zY3Np X2hvc3QpDQorCWVsc2Ugew0KKwkJc3Bpbl9sb2NrKHBvcnQtPmFkYXB0ZXItPnNjc2lfaG9zdC0+ aG9zdF9sb2NrKTsNCisJCV9fc2hvc3RfZm9yX2VhY2hfZGV2aWNlKHNkZXYsIHBvcnQtPmFkYXB0 ZXItPnNjc2lfaG9zdCkNCiAJCQlpZiAoc2Rldl90b196ZmNwKHNkZXYpLT5wb3J0ID09IHBvcnQp DQogCQkJCXpmY3BfZXJwX2FjdGlvbl9kaXNtaXNzX2x1bihzZGV2KTsNCisJCXNwaW5fdW5sb2Nr KHBvcnQtPmFkYXB0ZXItPnNjc2lfaG9zdC0+aG9zdF9sb2NrKTsNCisJfQ0KIH0NCiANCiBzdGF0 aWMgdm9pZCB6ZmNwX2VycF9hY3Rpb25fZGlzbWlzc19hZGFwdGVyKHN0cnVjdCB6ZmNwX2FkYXB0 ZXIgKmFkYXB0ZXIpDQpAQCAtNTkyLDkgKzU5NSwxMSBAQCBzdGF0aWMgdm9pZCBfemZjcF9lcnBf bHVuX3Jlb3Blbl9hbGwoc3RydWN0IHpmY3BfcG9ydCAqcG9ydCwgaW50IGNsZWFyLA0KIHsNCiAJ c3RydWN0IHNjc2lfZGV2aWNlICpzZGV2Ow0KIA0KLQlzaG9zdF9mb3JfZWFjaF9kZXZpY2Uoc2Rl diwgcG9ydC0+YWRhcHRlci0+c2NzaV9ob3N0KQ0KKwlzcGluX2xvY2socG9ydC0+YWRhcHRlci0+ c2NzaV9ob3N0LT5ob3N0X2xvY2spOw0KKwlfX3Nob3N0X2Zvcl9lYWNoX2RldmljZShzZGV2LCBw b3J0LT5hZGFwdGVyLT5zY3NpX2hvc3QpDQogCQlpZiAoc2Rldl90b196ZmNwKHNkZXYpLT5wb3J0 ID09IHBvcnQpDQogCQkJX3pmY3BfZXJwX2x1bl9yZW9wZW4oc2RldiwgY2xlYXIsIGlkLCAwKTsN CisJc3Bpbl91bmxvY2socG9ydC0+YWRhcHRlci0+c2NzaV9ob3N0LT5ob3N0X2xvY2spOw0KIH0N CiANCiBzdGF0aWMgdm9pZCB6ZmNwX2VycF9zdHJhdGVneV9mb2xsb3d1cF9mYWlsZWQoc3RydWN0 IHpmY3BfZXJwX2FjdGlvbiAqYWN0KQ0KQEAgLTE0MzUsOCArMTQ0MCwxMCBAQCB2b2lkIHpmY3Bf ZXJwX3NldF9hZGFwdGVyX3N0YXR1cyhzdHJ1Y3QgemZjcF9hZGFwdGVyICphZGFwdGVyLCB1MzIg bWFzaykNCiAJCWF0b21pY19zZXRfbWFzayhjb21tb25fbWFzaywgJnBvcnQtPnN0YXR1cyk7DQog CXJlYWRfdW5sb2NrX2lycXJlc3RvcmUoJmFkYXB0ZXItPnBvcnRfbGlzdF9sb2NrLCBmbGFncyk7 DQogDQotCXNob3N0X2Zvcl9lYWNoX2RldmljZShzZGV2LCBhZGFwdGVyLT5zY3NpX2hvc3QpDQor CXNwaW5fbG9ja19pcnFzYXZlKGFkYXB0ZXItPnNjc2lfaG9zdC0+aG9zdF9sb2NrLCBmbGFncyk7 DQorCV9fc2hvc3RfZm9yX2VhY2hfZGV2aWNlKHNkZXYsIGFkYXB0ZXItPnNjc2lfaG9zdCkNCiAJ CWF0b21pY19zZXRfbWFzayhjb21tb25fbWFzaywgJnNkZXZfdG9femZjcChzZGV2KS0+c3RhdHVz KTsNCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShhZGFwdGVyLT5zY3NpX2hvc3QtPmhvc3RfbG9j aywgZmxhZ3MpOw0KIH0NCiANCiAvKioNCkBAIC0xNDcwLDExICsxNDc3LDEzIEBAIHZvaWQgemZj cF9lcnBfY2xlYXJfYWRhcHRlcl9zdGF0dXMoc3RydWN0IHpmY3BfYWRhcHRlciAqYWRhcHRlciwg dTMyIG1hc2spDQogCX0NCiAJcmVhZF91bmxvY2tfaXJxcmVzdG9yZSgmYWRhcHRlci0+cG9ydF9s aXN0X2xvY2ssIGZsYWdzKTsNCiANCi0Jc2hvc3RfZm9yX2VhY2hfZGV2aWNlKHNkZXYsIGFkYXB0 ZXItPnNjc2lfaG9zdCkgew0KKwlzcGluX2xvY2tfaXJxc2F2ZShhZGFwdGVyLT5zY3NpX2hvc3Qt Pmhvc3RfbG9jaywgZmxhZ3MpOw0KKwlfX3Nob3N0X2Zvcl9lYWNoX2RldmljZShzZGV2LCBhZGFw dGVyLT5zY3NpX2hvc3QpIHsNCiAJCWF0b21pY19jbGVhcl9tYXNrKGNvbW1vbl9tYXNrLCAmc2Rl dl90b196ZmNwKHNkZXYpLT5zdGF0dXMpOw0KIAkJaWYgKGNsZWFyX2NvdW50ZXIpDQogCQkJYXRv bWljX3NldCgmc2Rldl90b196ZmNwKHNkZXYpLT5lcnBfY291bnRlciwgMCk7DQogCX0NCisJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZShhZGFwdGVyLT5zY3NpX2hvc3QtPmhvc3RfbG9jaywgZmxhZ3Mp Ow0KIH0NCiANCiAvKioNCkBAIC0xNDg4LDE2ICsxNDk3LDE5IEBAIHZvaWQgemZjcF9lcnBfc2V0 X3BvcnRfc3RhdHVzKHN0cnVjdCB6ZmNwX3BvcnQgKnBvcnQsIHUzMiBtYXNrKQ0KIHsNCiAJc3Ry dWN0IHNjc2lfZGV2aWNlICpzZGV2Ow0KIAl1MzIgY29tbW9uX21hc2sgPSBtYXNrICYgWkZDUF9D T01NT05fRkxBR1M7DQorCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQogDQogCWF0b21pY19zZXRfbWFz ayhtYXNrLCAmcG9ydC0+c3RhdHVzKTsNCiANCiAJaWYgKCFjb21tb25fbWFzaykNCiAJCXJldHVy bjsNCiANCi0Jc2hvc3RfZm9yX2VhY2hfZGV2aWNlKHNkZXYsIHBvcnQtPmFkYXB0ZXItPnNjc2lf aG9zdCkNCisJc3Bpbl9sb2NrX2lycXNhdmUocG9ydC0+YWRhcHRlci0+c2NzaV9ob3N0LT5ob3N0 X2xvY2ssIGZsYWdzKTsNCisJX19zaG9zdF9mb3JfZWFjaF9kZXZpY2Uoc2RldiwgcG9ydC0+YWRh cHRlci0+c2NzaV9ob3N0KQ0KIAkJaWYgKHNkZXZfdG9femZjcChzZGV2KS0+cG9ydCA9PSBwb3J0 KQ0KIAkJCWF0b21pY19zZXRfbWFzayhjb21tb25fbWFzaywNCiAJCQkJCSZzZGV2X3RvX3pmY3Ao c2RldiktPnN0YXR1cyk7DQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUocG9ydC0+YWRhcHRlci0+ c2NzaV9ob3N0LT5ob3N0X2xvY2ssIGZsYWdzKTsNCiB9DQogDQogLyoqDQpAQCAtMTUxMiw2ICsx NTI0LDcgQEAgdm9pZCB6ZmNwX2VycF9jbGVhcl9wb3J0X3N0YXR1cyhzdHJ1Y3QgemZjcF9wb3J0 ICpwb3J0LCB1MzIgbWFzaykNCiAJc3RydWN0IHNjc2lfZGV2aWNlICpzZGV2Ow0KIAl1MzIgY29t bW9uX21hc2sgPSBtYXNrICYgWkZDUF9DT01NT05fRkxBR1M7DQogCXUzMiBjbGVhcl9jb3VudGVy ID0gbWFzayAmIFpGQ1BfU1RBVFVTX0NPTU1PTl9FUlBfRkFJTEVEOw0KKwl1bnNpZ25lZCBsb25n IGZsYWdzOw0KIA0KIAlhdG9taWNfY2xlYXJfbWFzayhtYXNrLCAmcG9ydC0+c3RhdHVzKTsNCiAN CkBAIC0xNTIxLDEzICsxNTM0LDE1IEBAIHZvaWQgemZjcF9lcnBfY2xlYXJfcG9ydF9zdGF0dXMo c3RydWN0IHpmY3BfcG9ydCAqcG9ydCwgdTMyIG1hc2spDQogCWlmIChjbGVhcl9jb3VudGVyKQ0K IAkJYXRvbWljX3NldCgmcG9ydC0+ZXJwX2NvdW50ZXIsIDApOw0KIA0KLQlzaG9zdF9mb3JfZWFj aF9kZXZpY2Uoc2RldiwgcG9ydC0+YWRhcHRlci0+c2NzaV9ob3N0KQ0KKwlzcGluX2xvY2tfaXJx c2F2ZShwb3J0LT5hZGFwdGVyLT5zY3NpX2hvc3QtPmhvc3RfbG9jaywgZmxhZ3MpOw0KKwlfX3No b3N0X2Zvcl9lYWNoX2RldmljZShzZGV2LCBwb3J0LT5hZGFwdGVyLT5zY3NpX2hvc3QpDQogCQlp ZiAoc2Rldl90b196ZmNwKHNkZXYpLT5wb3J0ID09IHBvcnQpIHsNCiAJCQlhdG9taWNfY2xlYXJf bWFzayhjb21tb25fbWFzaywNCiAJCQkJCSAgJnNkZXZfdG9femZjcChzZGV2KS0+c3RhdHVzKTsN CiAJCQlpZiAoY2xlYXJfY291bnRlcikNCiAJCQkJYXRvbWljX3NldCgmc2Rldl90b196ZmNwKHNk ZXYpLT5lcnBfY291bnRlciwgMCk7DQogCQl9DQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUocG9y dC0+YWRhcHRlci0+c2NzaV9ob3N0LT5ob3N0X2xvY2ssIGZsYWdzKTsNCiB9DQogDQogLyoqDQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL3Njc2kvemZjcF9xZGlvLmMgYi9kcml2ZXJzL3MzOTAv c2NzaS96ZmNwX3FkaW8uYw0KaW5kZXggZTc2ZDAwMy4uNTJjNmI1OSAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvczM5MC9zY3NpL3pmY3BfcWRpby5jDQorKysgYi9kcml2ZXJzL3MzOTAvc2NzaS96ZmNw X3FkaW8uYw0KQEAgLTIyNCwxMSArMjI0LDkgQEAgaW50IHpmY3BfcWRpb19zYmFsc19mcm9tX3Nn KHN0cnVjdCB6ZmNwX3FkaW8gKnFkaW8sIHN0cnVjdCB6ZmNwX3FkaW9fcmVxICpxX3JlcSwNCiAN CiBzdGF0aWMgaW50IHpmY3BfcWRpb19zYmFsX2NoZWNrKHN0cnVjdCB6ZmNwX3FkaW8gKnFkaW8p DQogew0KLQlzcGluX2xvY2tfaXJxKCZxZGlvLT5yZXFfcV9sb2NrKTsNCiAJaWYgKGF0b21pY19y ZWFkKCZxZGlvLT5yZXFfcV9mcmVlKSB8fA0KIAkgICAgIShhdG9taWNfcmVhZCgmcWRpby0+YWRh cHRlci0+c3RhdHVzKSAmIFpGQ1BfU1RBVFVTX0FEQVBURVJfUURJT1VQKSkNCiAJCXJldHVybiAx Ow0KLQlzcGluX3VubG9ja19pcnEoJnFkaW8tPnJlcV9xX2xvY2spOw0KIAlyZXR1cm4gMDsNCiB9 DQogDQpAQCAtMjQ2LDkgKzI0NCw4IEBAIGludCB6ZmNwX3FkaW9fc2JhbF9nZXQoc3RydWN0IHpm Y3BfcWRpbyAqcWRpbykNCiB7DQogCWxvbmcgcmV0Ow0KIA0KLQlzcGluX3VubG9ja19pcnEoJnFk aW8tPnJlcV9xX2xvY2spOw0KLQlyZXQgPSB3YWl0X2V2ZW50X2ludGVycnVwdGlibGVfdGltZW91 dChxZGlvLT5yZXFfcV93cSwNCi0JCQkgICAgICAgemZjcF9xZGlvX3NiYWxfY2hlY2socWRpbyks IDUgKiBIWik7DQorCXJldCA9IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZV9sb2NrX2lycV90aW1l b3V0KHFkaW8tPnJlcV9xX3dxLA0KKwkJICAgICAgIHpmY3BfcWRpb19zYmFsX2NoZWNrKHFkaW8p LCBxZGlvLT5yZXFfcV9sb2NrLCA1ICogSFopOw0KIA0KIAlpZiAoIShhdG9taWNfcmVhZCgmcWRp by0+YWRhcHRlci0+c3RhdHVzKSAmIFpGQ1BfU1RBVFVTX0FEQVBURVJfUURJT1VQKSkNCiAJCXJl dHVybiAtRUlPOw0KQEAgLTI2Miw3ICsyNTksNiBAQCBpbnQgemZjcF9xZGlvX3NiYWxfZ2V0KHN0 cnVjdCB6ZmNwX3FkaW8gKnFkaW8pDQogCQl6ZmNwX2VycF9hZGFwdGVyX3Jlb3BlbihxZGlvLT5h ZGFwdGVyLCAwLCAicWRzYmdfMSIpOw0KIAl9DQogDQotCXNwaW5fbG9ja19pcnEoJnFkaW8tPnJl cV9xX2xvY2spOw0KIAlyZXR1cm4gLUVJTzsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9z Y3NpL21lZ2FyYWlkL21lZ2FyYWlkX3Nhc19iYXNlLmMgYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQv bWVnYXJhaWRfc2FzX2Jhc2UuYw0KaW5kZXggZmM1YTJlZi4uYjAxODk5NyAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9zYXNfYmFzZS5jDQorKysgYi9kcml2ZXJz L3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfc2FzX2Jhc2UuYw0KQEAgLTM1NDcsMTEgKzM1NDcsMjEg QEAgc3RhdGljIGludCBtZWdhc2FzX2luaXRfZncoc3RydWN0IG1lZ2FzYXNfaW5zdGFuY2UgKmlu c3RhbmNlKQ0KIAkJYnJlYWs7DQogCX0NCiANCi0JLyoNCi0JICogV2UgZXhwZWN0IHRoZSBGVyBz dGF0ZSB0byBiZSBSRUFEWQ0KLQkgKi8NCi0JaWYgKG1lZ2FzYXNfdHJhbnNpdGlvbl90b19yZWFk eShpbnN0YW5jZSwgMCkpDQotCQlnb3RvIGZhaWxfcmVhZHlfc3RhdGU7DQorCWlmIChtZWdhc2Fz X3RyYW5zaXRpb25fdG9fcmVhZHkoaW5zdGFuY2UsIDApKSB7DQorCQlhdG9taWNfc2V0KCZpbnN0 YW5jZS0+ZndfcmVzZXRfbm9fcGNpX2FjY2VzcywgMSk7DQorCQlpbnN0YW5jZS0+aW5zdGFuY2V0 LT5hZHBfcmVzZXQNCisJCQkoaW5zdGFuY2UsIGluc3RhbmNlLT5yZWdfc2V0KTsNCisJCWF0b21p Y19zZXQoJmluc3RhbmNlLT5md19yZXNldF9ub19wY2lfYWNjZXNzLCAwKTsNCisJCWRldl9pbmZv KCZpbnN0YW5jZS0+cGRldi0+ZGV2LA0KKwkJCSJtZWdhc2FzOiBGVyByZXN0YXJ0ZWQgc3VjY2Vz c2Z1bGx5IGZyb20gJXMhXG4iLA0KKwkJCV9fZnVuY19fKTsNCisNCisJCS8qd2FpdHRpbmcgZm9y IGFib3V0IDMwIHNlY29uZCBiZWZvcmUgcmV0cnkqLw0KKwkJc3NsZWVwKDMwKTsNCisNCisJCWlm IChtZWdhc2FzX3RyYW5zaXRpb25fdG9fcmVhZHkoaW5zdGFuY2UsIDApKQ0KKwkJCWdvdG8gZmFp bF9yZWFkeV9zdGF0ZTsNCisJfQ0KIA0KIAkvKiBDaGVjayBpZiBNU0ktWCBpcyBzdXBwb3J0ZWQg d2hpbGUgaW4gcmVhZHkgc3RhdGUgKi8NCiAJbXNpeF9lbmFibGUgPSAoaW5zdGFuY2UtPmluc3Rh bmNldC0+cmVhZF9md19zdGF0dXNfcmVnKHJlZ19zZXQpICYNCmRpZmYgLS1naXQgYS9kcml2ZXJz L3Njc2kvbnNwMzIuYyBiL2RyaXZlcnMvc2NzaS9uc3AzMi5jDQppbmRleCBmNmE1MGM5Li5iZmIw NWI4IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zY3NpL25zcDMyLmMNCisrKyBiL2RyaXZlcnMvc2Nz aS9uc3AzMi5jDQpAQCAtMjkyNyw3ICsyOTI3LDcgQEAgc3RhdGljIHZvaWQgbnNwMzJfZG9fYnVz X3Jlc2V0KG5zcDMyX2h3X2RhdGEgKmRhdGEpDQogCSAqIHJlc2V0IFNDU0kgYnVzDQogCSAqLw0K IAluc3AzMl93cml0ZTEoYmFzZSwgU0NTSV9CVVNfQ09OVFJPTCwgQlVTQ1RMX1JTVCk7DQotCXVk ZWxheShSRVNFVF9IT0xEX1RJTUUpOw0KKwltZGVsYXkoUkVTRVRfSE9MRF9USU1FIC8gMTAwMCk7 DQogCW5zcDMyX3dyaXRlMShiYXNlLCBTQ1NJX0JVU19DT05UUk9MLCAwKTsNCiAJZm9yKGkgPSAw OyBpIDwgNTsgaSsrKSB7DQogCQlpbnRyZGF0ID0gbnNwMzJfcmVhZDIoYmFzZSwgSVJRX1NUQVRV Uyk7IC8qIGR1bW15IHJlYWQgKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RhcmdldC90YXJnZXRf Y29yZV9jZGIuYyBiL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX2NkYi5jDQppbmRleCA3MTdh OGQ0Li45MDNiMmY1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfY2Ri LmMNCisrKyBiL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX2NkYi5jDQpAQCAtMTI3LDExICsx MjcsMTIgQEAgdGFyZ2V0X2VtdWxhdGVfaW5xdWlyeV9zdGQoc3RydWN0IHNlX2NtZCAqY21kKQ0K IAkJZ290byBvdXQ7DQogCX0NCiANCi0Jc25wcmludGYoKHVuc2lnbmVkIGNoYXIgKikmYnVmWzhd LCA4LCAiTElPLU9SRyIpOw0KLQlzbnByaW50ZigodW5zaWduZWQgY2hhciAqKSZidWZbMTZdLCAx NiwgIiVzIiwNCi0JCSAmZGV2LT5zZV9zdWJfZGV2LT50MTBfd3duLm1vZGVsWzBdKTsNCi0Jc25w cmludGYoKHVuc2lnbmVkIGNoYXIgKikmYnVmWzMyXSwgNCwgIiVzIiwNCi0JCSAmZGV2LT5zZV9z dWJfZGV2LT50MTBfd3duLnJldmlzaW9uWzBdKTsNCisJbWVtY3B5KCZidWZbOF0sICJMSU8tT1JH ICIsIDgpOw0KKwltZW1zZXQoJmJ1ZlsxNl0sIDB4MjAsIDE2KTsNCisJbWVtY3B5KCZidWZbMTZd LCBkZXYtPnNlX3N1Yl9kZXYtPnQxMF93d24ubW9kZWwsDQorCSAgICAgICBtaW5fdChzaXplX3Qs IHN0cmxlbihkZXYtPnNlX3N1Yl9kZXYtPnQxMF93d24ubW9kZWwpLCAxNikpOw0KKwltZW1jcHko JmJ1ZlszMl0sIGRldi0+c2Vfc3ViX2Rldi0+dDEwX3d3bi5yZXZpc2lvbiwNCisJICAgICAgIG1p bl90KHNpemVfdCwgc3RybGVuKGRldi0+c2Vfc3ViX2Rldi0+dDEwX3d3bi5yZXZpc2lvbiksIDQp KTsNCiAJYnVmWzRdID0gMzE7IC8qIFNldCBhZGRpdGlvbmFsIGxlbmd0aCB0byAzMSAqLw0KIA0K IG91dDoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS9odmMvaHZzaV9saWIuYyBiL2RyaXZlcnMv dHR5L2h2Yy9odnNpX2xpYi5jDQppbmRleCA2ZjRkZDgzLi4zNzQ5Njg4IDEwMDY0NA0KLS0tIGEv ZHJpdmVycy90dHkvaHZjL2h2c2lfbGliLmMNCisrKyBiL2RyaXZlcnMvdHR5L2h2Yy9odnNpX2xp Yi5jDQpAQCAtMzQxLDggKzM0MSw4IEBAIHZvaWQgaHZzaWxpYl9lc3RhYmxpc2goc3RydWN0IGh2 c2lfcHJpdiAqcHYpDQogDQogCXByX2RldmVsKCJIVlNJQCV4OiAgIC4uLiB3YWl0aW5nIGhhbmRz aGFrZVxuIiwgcHYtPnRlcm1ubyk7DQogDQotCS8qIFRyeSBmb3IgdXAgdG8gMjAwcyAqLw0KLQlm b3IgKHRpbWVvdXQgPSAwOyB0aW1lb3V0IDwgMjA7IHRpbWVvdXQrKykgew0KKwkvKiBUcnkgZm9y IHVwIHRvIDQwMG1zICovDQorCWZvciAodGltZW91dCA9IDA7IHRpbWVvdXQgPCA0MDsgdGltZW91 dCsrKSB7DQogCQlpZiAocHYtPmVzdGFibGlzaGVkKQ0KIAkJCWdvdG8gZXN0YWJsaXNoZWQ7DQog CQlpZiAoIWh2c2lfZ2V0X3BhY2tldChwdikpDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvc2Vy aWFsL214cy1hdWFydC5jIGIvZHJpdmVycy90dHkvc2VyaWFsL214cy1hdWFydC5jDQppbmRleCA1 YjNkMDYzLi5hYjdkMTFlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy90dHkvc2VyaWFsL214cy1hdWFy dC5jDQorKysgYi9kcml2ZXJzL3R0eS9zZXJpYWwvbXhzLWF1YXJ0LmMNCkBAIC0zNzQsMTEgKzM3 NCwxOCBAQCBzdGF0aWMgdm9pZCBteHNfYXVhcnRfc2V0dGVybWlvcyhzdHJ1Y3QgdWFydF9wb3J0 ICp1LA0KIA0KIHN0YXRpYyBpcnFyZXR1cm5fdCBteHNfYXVhcnRfaXJxX2hhbmRsZShpbnQgaXJx LCB2b2lkICpjb250ZXh0KQ0KIHsNCi0JdTMyIGlzdGF0dXMsIGlzdGF0Ow0KKwl1MzIgaXN0YXQ7 DQogCXN0cnVjdCBteHNfYXVhcnRfcG9ydCAqcyA9IGNvbnRleHQ7DQogCXUzMiBzdGF0ID0gcmVh ZGwocy0+cG9ydC5tZW1iYXNlICsgQVVBUlRfU1RBVCk7DQogDQotCWlzdGF0dXMgPSBpc3RhdCA9 IHJlYWRsKHMtPnBvcnQubWVtYmFzZSArIEFVQVJUX0lOVFIpOw0KKwlpc3RhdCA9IHJlYWRsKHMt PnBvcnQubWVtYmFzZSArIEFVQVJUX0lOVFIpOw0KKw0KKwkvKiBhY2sgaXJxICovDQorCXdyaXRl bChpc3RhdCAmIChBVUFSVF9JTlRSX1JUSVMNCisJCXwgQVVBUlRfSU5UUl9UWElTDQorCQl8IEFV QVJUX0lOVFJfUlhJUw0KKwkJfCBBVUFSVF9JTlRSX0NUU01JUyksDQorCQkJcy0+cG9ydC5tZW1i YXNlICsgQVVBUlRfSU5UUl9DTFIpOw0KIA0KIAlpZiAoaXN0YXQgJiBBVUFSVF9JTlRSX0NUU01J Uykgew0KIAkJdWFydF9oYW5kbGVfY3RzX2NoYW5nZSgmcy0+cG9ydCwgc3RhdCAmIEFVQVJUX1NU QVRfQ1RTKTsNCkBAIC0zOTcsMTIgKzQwNCw2IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBteHNfYXVh cnRfaXJxX2hhbmRsZShpbnQgaXJxLCB2b2lkICpjb250ZXh0KQ0KIAkJaXN0YXQgJj0gfkFVQVJU X0lOVFJfVFhJUzsNCiAJfQ0KIA0KLQl3cml0ZWwoaXN0YXR1cyAmIChBVUFSVF9JTlRSX1JUSVMN Ci0JCXwgQVVBUlRfSU5UUl9UWElTDQotCQl8IEFVQVJUX0lOVFJfUlhJUw0KLQkJfCBBVUFSVF9J TlRSX0NUU01JUyksDQotCQkJcy0+cG9ydC5tZW1iYXNlICsgQVVBUlRfSU5UUl9DTFIpOw0KLQ0K IAlyZXR1cm4gSVJRX0hBTkRMRUQ7DQogfQ0KIA0KQEAgLTU0Miw3ICs1NDMsNyBAQCBhdWFydF9j b25zb2xlX3dyaXRlKHN0cnVjdCBjb25zb2xlICpjbywgY29uc3QgY2hhciAqc3RyLCB1bnNpZ25l ZCBpbnQgY291bnQpDQogCXN0cnVjdCBteHNfYXVhcnRfcG9ydCAqczsNCiAJc3RydWN0IHVhcnRf cG9ydCAqcG9ydDsNCiAJdW5zaWduZWQgaW50IG9sZF9jdHJsMCwgb2xkX2N0cmwyOw0KLQl1bnNp Z25lZCBpbnQgdG8gPSAxMDAwOw0KKwl1bnNpZ25lZCBpbnQgdG8gPSAyMDAwMDsNCiANCiAJaWYg KGNvLT5pbmRleCA+CU1YU19BVUFSVF9QT1JUUyB8fCBjby0+aW5kZXggPCAwKQ0KIAkJcmV0dXJu Ow0KQEAgLTU2MywxOCArNTY0LDIzIEBAIGF1YXJ0X2NvbnNvbGVfd3JpdGUoc3RydWN0IGNvbnNv bGUgKmNvLCBjb25zdCBjaGFyICpzdHIsIHVuc2lnbmVkIGludCBjb3VudCkNCiANCiAJdWFydF9j b25zb2xlX3dyaXRlKHBvcnQsIHN0ciwgY291bnQsIG14c19hdWFydF9jb25zb2xlX3B1dGNoYXIp Ow0KIA0KLQkvKg0KLQkgKiBGaW5hbGx5LCB3YWl0IGZvciB0cmFuc21pdHRlciB0byBiZWNvbWUg ZW1wdHkNCi0JICogYW5kIHJlc3RvcmUgdGhlIFRDUg0KLQkgKi8NCisJLyogRmluYWxseSwgd2Fp dCBmb3IgdHJhbnNtaXR0ZXIgdG8gYmVjb21lIGVtcHR5IC4uLiAqLw0KIAl3aGlsZSAocmVhZGwo cG9ydC0+bWVtYmFzZSArIEFVQVJUX1NUQVQpICYgQVVBUlRfU1RBVF9CVVNZKSB7DQorCQl1ZGVs YXkoMSk7DQogCQlpZiAoIXRvLS0pDQogCQkJYnJlYWs7DQotCQl1ZGVsYXkoMSk7DQogCX0NCiAN Ci0Jd3JpdGVsKG9sZF9jdHJsMCwgcG9ydC0+bWVtYmFzZSArIEFVQVJUX0NUUkwwKTsNCi0Jd3Jp dGVsKG9sZF9jdHJsMiwgcG9ydC0+bWVtYmFzZSArIEFVQVJUX0NUUkwyKTsNCisJLyoNCisJICog Li4uIGFuZCByZXN0b3JlIHRoZSBUQ1IgaWYgd2Ugd2FpdGVkIGxvbmcgZW5vdWdoIGZvciB0aGUg dHJhbnNtaXR0ZXINCisJICogdG8gYmUgaWRsZS4gVGhpcyBtaWdodCBrZWVwIHRoZSB0cmFuc21p dHRlciBlbmFibGVkIGFsdGhvdWdoIGl0IGlzDQorCSAqIHVudXNlZCwgYnV0IHRoYXQgaXMgYmV0 dGVyIHRoYW4gdG8gZGlzYWJsZSBpdCB3aGlsZSBpdCBpcyBzdGlsbA0KKwkgKiB0cmFuc21pdHRp bmcuDQorCSAqLw0KKwlpZiAoIShyZWFkbChwb3J0LT5tZW1iYXNlICsgQVVBUlRfU1RBVCkgJiBB VUFSVF9TVEFUX0JVU1kpKSB7DQorCQl3cml0ZWwob2xkX2N0cmwwLCBwb3J0LT5tZW1iYXNlICsg QVVBUlRfQ1RSTDApOw0KKwkJd3JpdGVsKG9sZF9jdHJsMiwgcG9ydC0+bWVtYmFzZSArIEFVQVJU X0NUUkwyKTsNCisJfQ0KIA0KIAljbGtfZGlzYWJsZShzLT5jbGspOw0KIH0NCmRpZmYgLS1naXQg YS9kcml2ZXJzL3VzYi9jb3JlL3F1aXJrcy5jIGIvZHJpdmVycy91c2IvY29yZS9xdWlya3MuYw0K aW5kZXggMmZiY2I3NS4uZjUyMTgyZCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvcXVp cmtzLmMNCisrKyBiL2RyaXZlcnMvdXNiL2NvcmUvcXVpcmtzLmMNCkBAIC03OCw2ICs3OCwxMiBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgdXNiX3F1aXJrX2xpc3RbXSA9IHsN CiAJeyBVU0JfREVWSUNFKDB4MDRkOCwgMHgwMDBjKSwgLmRyaXZlcl9pbmZvID0NCiAJCQlVU0Jf UVVJUktfQ09ORklHX0lOVEZfU1RSSU5HUyB9LA0KIA0KKwkvKiBDYXJyb2xUb3VjaCA0MDAwVSAq Lw0KKwl7IFVTQl9ERVZJQ0UoMHgwNGU3LCAweDAwMDkpLCAuZHJpdmVyX2luZm8gPSBVU0JfUVVJ UktfUkVTRVRfUkVTVU1FIH0sDQorDQorCS8qIENhcnJvbFRvdWNoIDQ1MDBVICovDQorCXsgVVNC X0RFVklDRSgweDA0ZTcsIDB4MDAzMCksIC5kcml2ZXJfaW5mbyA9IFVTQl9RVUlSS19SRVNFVF9S RVNVTUUgfSwNCisNCiAJLyogU2Ftc3VuZyBBbmRyb2lkIHBob25lIG1vZGVtIC0gSUQgY29uZmxp Y3Qgd2l0aCBTUEgtSTUwMCAqLw0KIAl7IFVTQl9ERVZJQ0UoMHgwNGU4LCAweDY2MDEpLCAuZHJp dmVyX2luZm8gPQ0KIAkJCVVTQl9RVUlSS19DT05GSUdfSU5URl9TVFJJTkdTIH0sDQpkaWZmIC0t Z2l0IGEvZHJpdmVycy91c2IvbWlzYy9hZHV0dXguYyBiL2RyaXZlcnMvdXNiL21pc2MvYWR1dHV4 LmMNCmluZGV4IGZlODU4NzEuLmRiNTEyOGI3ZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL21p c2MvYWR1dHV4LmMNCisrKyBiL2RyaXZlcnMvdXNiL21pc2MvYWR1dHV4LmMNCkBAIC04MjksNyAr ODI5LDcgQEAgc3RhdGljIGludCBhZHVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVy ZmFjZSwNCiANCiAJLyogbGV0IHRoZSB1c2VyIGtub3cgd2hhdCBub2RlIHRoaXMgZGV2aWNlIGlz IG5vdyBhdHRhY2hlZCB0byAqLw0KIAlkZXZfaW5mbygmaW50ZXJmYWNlLT5kZXYsICJBRFUlZCAl cyBub3cgYXR0YWNoZWQgdG8gL2Rldi91c2IvYWR1dHV4JWRcbiIsDQotCQkgdWRldi0+ZGVzY3Jp cHRvci5pZFByb2R1Y3QsIGRldi0+c2VyaWFsX251bWJlciwNCisJCSBsZTE2X3RvX2NwdSh1ZGV2 LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCksIGRldi0+c2VyaWFsX251bWJlciwNCiAJCSAoZGV2LT5t aW5vciAtIEFEVV9NSU5PUl9CQVNFKSk7DQogZXhpdDoNCiAJZGJnKDIsIiAlcyA6IGxlYXZlLCBy ZXR1cm4gdmFsdWUgJXAgKGRldikiLCBfX2Z1bmNfXywgZGV2KTsNCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW8uYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5j DQppbmRleCBjZTlmODdmLi5hM2Y2ZmUwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFs L2Z0ZGlfc2lvLmMNCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jDQpAQCAtNzQz LDkgKzc0MywzNCBAQCBzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVfY29tYmlu ZWQgW10gPSB7DQogCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9ORElfQVVST1JBX1NDVV9Q SUQpLA0KIAkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZmdGRpX05ESV9kZXZpY2Vf cXVpcmsgfSwNCiAJeyBVU0JfREVWSUNFKFRFTExEVVNfVklELCBURUxMRFVTX1RFTExTVElDS19Q SUQpIH0sDQotCXsgVVNCX0RFVklDRShSVFNZU1RFTVNfVklELCBSVFNZU1RFTVNfU0VSSUFMX1ZY N19QSUQpIH0sDQotCXsgVVNCX0RFVklDRShSVFNZU1RFTVNfVklELCBSVFNZU1RFTVNfQ1QyOUJf UElEKSB9LA0KLQl7IFVTQl9ERVZJQ0UoUlRTWVNURU1TX1ZJRCwgUlRTWVNURU1TX1JUUzAxX1BJ RCkgfSwNCisJeyBVU0JfREVWSUNFKFJUU1lTVEVNU19WSUQsIFJUU1lTVEVNU19VU0JfUzAzX1BJ RCkgfSwNCisJeyBVU0JfREVWSUNFKFJUU1lTVEVNU19WSUQsIFJUU1lTVEVNU19VU0JfNTlfUElE KSB9LA0KKwl7IFVTQl9ERVZJQ0UoUlRTWVNURU1TX1ZJRCwgUlRTWVNURU1TX1VTQl81N0FfUElE KSB9LA0KKwl7IFVTQl9ERVZJQ0UoUlRTWVNURU1TX1ZJRCwgUlRTWVNURU1TX1VTQl81N0JfUElE KSB9LA0KKwl7IFVTQl9ERVZJQ0UoUlRTWVNURU1TX1ZJRCwgUlRTWVNURU1TX1VTQl8yOUFfUElE KSB9LA0KKwl7IFVTQl9ERVZJQ0UoUlRTWVNURU1TX1ZJRCwgUlRTWVNURU1TX1VTQl8yOUJfUElE KSB9LA0KKwl7IFVTQl9ERVZJQ0UoUlRTWVNURU1TX1ZJRCwgUlRTWVNURU1TX1VTQl8yOUZfUElE KSB9LA0KKwl7IFVTQl9ERVZJQ0UoUlRTWVNURU1TX1ZJRCwgUlRTWVNURU1TX1VTQl82MkJfUElE KSB9LA0KKwl7IFVTQl9ERVZJQ0UoUlRTWVNURU1TX1ZJRCwgUlRTWVNURU1TX1VTQl9TMDFfUElE KSB9LA0KKwl7IFVTQl9ERVZJQ0UoUlRTWVNURU1TX1ZJRCwgUlRTWVNURU1TX1VTQl82M19QSUQp IH0sDQorCXsgVVNCX0RFVklDRShSVFNZU1RFTVNfVklELCBSVFNZU1RFTVNfVVNCXzI5Q19QSUQp IH0sDQorCXsgVVNCX0RFVklDRShSVFNZU1RFTVNfVklELCBSVFNZU1RFTVNfVVNCXzgxQl9QSUQp IH0sDQorCXsgVVNCX0RFVklDRShSVFNZU1RFTVNfVklELCBSVFNZU1RFTVNfVVNCXzgyQl9QSUQp IH0sDQorCXsgVVNCX0RFVklDRShSVFNZU1RFTVNfVklELCBSVFNZU1RFTVNfVVNCX0s1RF9QSUQp IH0sDQorCXsgVVNCX0RFVklDRShSVFNZU1RFTVNfVklELCBSVFNZU1RFTVNfVVNCX0s0WV9QSUQp IH0sDQorCXsgVVNCX0RFVklDRShSVFNZU1RFTVNfVklELCBSVFNZU1RFTVNfVVNCX0s1R19QSUQp IH0sDQorCXsgVVNCX0RFVklDRShSVFNZU1RFTVNfVklELCBSVFNZU1RFTVNfVVNCX1MwNV9QSUQp IH0sDQorCXsgVVNCX0RFVklDRShSVFNZU1RFTVNfVklELCBSVFNZU1RFTVNfVVNCXzYwX1BJRCkg fSwNCisJeyBVU0JfREVWSUNFKFJUU1lTVEVNU19WSUQsIFJUU1lTVEVNU19VU0JfNjFfUElEKSB9 LA0KKwl7IFVTQl9ERVZJQ0UoUlRTWVNURU1TX1ZJRCwgUlRTWVNURU1TX1VTQl82Ml9QSUQpIH0s DQorCXsgVVNCX0RFVklDRShSVFNZU1RFTVNfVklELCBSVFNZU1RFTVNfVVNCXzYzQl9QSUQpIH0s DQorCXsgVVNCX0RFVklDRShSVFNZU1RFTVNfVklELCBSVFNZU1RFTVNfVVNCXzY0X1BJRCkgfSwN CisJeyBVU0JfREVWSUNFKFJUU1lTVEVNU19WSUQsIFJUU1lTVEVNU19VU0JfNjVfUElEKSB9LA0K Kwl7IFVTQl9ERVZJQ0UoUlRTWVNURU1TX1ZJRCwgUlRTWVNURU1TX1VTQl85Ml9QSUQpIH0sDQor CXsgVVNCX0RFVklDRShSVFNZU1RFTVNfVklELCBSVFNZU1RFTVNfVVNCXzkyRF9QSUQpIH0sDQor CXsgVVNCX0RFVklDRShSVFNZU1RFTVNfVklELCBSVFNZU1RFTVNfVVNCX1c1Ul9QSUQpIH0sDQor CXsgVVNCX0RFVklDRShSVFNZU1RFTVNfVklELCBSVFNZU1RFTVNfVVNCX0E1Ul9QSUQpIH0sDQor CXsgVVNCX0RFVklDRShSVFNZU1RFTVNfVklELCBSVFNZU1RFTVNfVVNCX1BXMV9QSUQpIH0sDQog CXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9NQVhTVFJFQU1fUElEKSB9LA0KIAl7IFVTQl9E RVZJQ0UoRlRESV9WSUQsIEZURElfUEhJX0ZJU0NPX1BJRCkgfSwNCiAJeyBVU0JfREVWSUNFKFRN TF9WSUQsIFRNTF9VU0JfU0VSSUFMX1BJRCkgfSwNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9z ZXJpYWwvZnRkaV9zaW9faWRzLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW9faWRzLmgN CmluZGV4IDVkMjVlMjYuLjYxNjg1ZWQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwv ZnRkaV9zaW9faWRzLmgNCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npb19pZHMuaA0K QEAgLTgxNSwxMSArODE1LDM1IEBADQogLyoNCiAgKiBSVCBTeXN0ZW1zIHByb2dyYW1taW5nIGNh YmxlcyBmb3IgdmFyaW91cyBoYW0gcmFkaW9zDQogICovDQotI2RlZmluZSBSVFNZU1RFTVNfVklE CQkJMHgyMTAwCS8qIFZlbmRvciBJRCAqLw0KLSNkZWZpbmUgUlRTWVNURU1TX1NFUklBTF9WWDdf UElECTB4OWU1MgkvKiBTZXJpYWwgY29udmVydGVyIGZvciBWWC03IFJhZGlvcyB1c2luZyBGVDIz MlJMICovDQotI2RlZmluZSBSVFNZU1RFTVNfQ1QyOUJfUElECQkweDllNTQJLyogQ1QyOUIgUmFk aW8gQ2FibGUgKi8NCi0jZGVmaW5lIFJUU1lTVEVNU19SVFMwMV9QSUQJCTB4OWU1NwkvKiBVU0It UlRTMDEgUmFkaW8gQ2FibGUgKi8NCi0NCisjZGVmaW5lIFJUU1lTVEVNU19WSUQJCTB4MjEwMAkv KiBWZW5kb3IgSUQgKi8NCisjZGVmaW5lIFJUU1lTVEVNU19VU0JfUzAzX1BJRAkweDkwMDEJLyog UlRTLTAzIFVTQiB0byBTZXJpYWwgQWRhcHRlciAqLw0KKyNkZWZpbmUgUlRTWVNURU1TX1VTQl81 OV9QSUQJMHg5ZTUwCS8qIFVTQi01OSBVU0IgdG8gOCBwaW4gcGx1ZyAqLw0KKyNkZWZpbmUgUlRT WVNURU1TX1VTQl81N0FfUElECTB4OWU1MQkvKiBVU0ItNTdBIFVTQiB0byA0cGluIDMuNW1tIHBs dWcgKi8NCisjZGVmaW5lIFJUU1lTVEVNU19VU0JfNTdCX1BJRAkweDllNTIJLyogVVNCLTU3QiBV U0IgdG8gZXh0ZW5kZWQgNHBpbiAzLjVtbSBwbHVnICovDQorI2RlZmluZSBSVFNZU1RFTVNfVVNC XzI5QV9QSUQJMHg5ZTUzCS8qIFVTQi0yOUEgVVNCIHRvIDMuNW1tIHN0ZXJlbyBwbHVnICovDQor I2RlZmluZSBSVFNZU1RFTVNfVVNCXzI5Ql9QSUQJMHg5ZTU0CS8qIFVTQi0yOUIgVVNCIHRvIDYg cGluIG1pbmkgZGluICovDQorI2RlZmluZSBSVFNZU1RFTVNfVVNCXzI5Rl9QSUQJMHg5ZTU1CS8q IFVTQi0yOUYgVVNCIHRvIDYgcGluIG1vZHVsYXIgcGx1ZyAqLw0KKyNkZWZpbmUgUlRTWVNURU1T X1VTQl82MkJfUElECTB4OWU1NgkvKiBVU0ItNjJCIFVTQiB0byA4IHBpbiBtaW5pIGRpbiBwbHVn Ki8NCisjZGVmaW5lIFJUU1lTVEVNU19VU0JfUzAxX1BJRAkweDllNTcJLyogVVNCLVJUUzAxIFVT QiB0byAzLjUgbW0gc3RlcmVvIHBsdWcqLw0KKyNkZWZpbmUgUlRTWVNURU1TX1VTQl82M19QSUQJ MHg5ZTU4CS8qIFVTQi02MyBVU0IgdG8gOSBwaW4gZmVtYWxlKi8NCisjZGVmaW5lIFJUU1lTVEVN U19VU0JfMjlDX1BJRAkweDllNTkJLyogVVNCLTI5QyBVU0IgdG8gNCBwaW4gbW9kdWxhciBwbHVn Ki8NCisjZGVmaW5lIFJUU1lTVEVNU19VU0JfODFCX1BJRAkweDllNUEJLyogVVNCLTgxIFVTQiB0 byA4IHBpbiBtaW5pIGRpbiBwbHVnKi8NCisjZGVmaW5lIFJUU1lTVEVNU19VU0JfODJCX1BJRAkw eDllNUIJLyogVVNCLTgyIFVTQiB0byAyLjUgbW0gc3RlcmVvIHBsdWcqLw0KKyNkZWZpbmUgUlRT WVNURU1TX1VTQl9LNURfUElECTB4OWU1QwkvKiBVU0ItSzVEIFVTQiB0byA4IHBpbiBtb2R1bGFy IHBsdWcqLw0KKyNkZWZpbmUgUlRTWVNURU1TX1VTQl9LNFlfUElECTB4OWU1RAkvKiBVU0ItSzRZ IFVTQiB0byAyLjUvMy41IG1tIHBsdWdzKi8NCisjZGVmaW5lIFJUU1lTVEVNU19VU0JfSzVHX1BJ RAkweDllNUUJLyogVVNCLUs1RyBVU0IgdG8gOCBwaW4gbW9kdWxhciBwbHVnKi8NCisjZGVmaW5l IFJUU1lTVEVNU19VU0JfUzA1X1BJRAkweDllNUYJLyogVVNCLVJUUzA1IFVTQiB0byAyLjUgbW0g c3RlcmVvIHBsdWcqLw0KKyNkZWZpbmUgUlRTWVNURU1TX1VTQl82MF9QSUQJMHg5ZTYwCS8qIFVT Qi02MCBVU0IgdG8gNiBwaW4gZGluKi8NCisjZGVmaW5lIFJUU1lTVEVNU19VU0JfNjFfUElECTB4 OWU2MQkvKiBVU0ItNjEgVVNCIHRvIDYgcGluIG1pbmkgZGluKi8NCisjZGVmaW5lIFJUU1lTVEVN U19VU0JfNjJfUElECTB4OWU2MgkvKiBVU0ItNjIgVVNCIHRvIDggcGluIG1pbmkgZGluKi8NCisj ZGVmaW5lIFJUU1lTVEVNU19VU0JfNjNCX1BJRAkweDllNjMJLyogVVNCLTYzIFVTQiB0byA5IHBp biBmZW1hbGUqLw0KKyNkZWZpbmUgUlRTWVNURU1TX1VTQl82NF9QSUQJMHg5ZTY0CS8qIFVTQi02 NCBVU0IgdG8gOSBwaW4gbWFsZSovDQorI2RlZmluZSBSVFNZU1RFTVNfVVNCXzY1X1BJRAkweDll NjUJLyogVVNCLTY1IFVTQiB0byA5IHBpbiBmZW1hbGUgbnVsbCBtb2RlbSovDQorI2RlZmluZSBS VFNZU1RFTVNfVVNCXzkyX1BJRAkweDllNjYJLyogVVNCLTkyIFVTQiB0byAxMiBwaW4gcGx1Zyov DQorI2RlZmluZSBSVFNZU1RFTVNfVVNCXzkyRF9QSUQJMHg5ZTY3CS8qIFVTQi05MkQgVVNCIHRv IDEyIHBpbiBwbHVnIGRhdGEqLw0KKyNkZWZpbmUgUlRTWVNURU1TX1VTQl9XNVJfUElECTB4OWU2 OAkvKiBVU0ItVzVSIFVTQiB0byA4IHBpbiBtb2R1bGFyIHBsdWcqLw0KKyNkZWZpbmUgUlRTWVNU RU1TX1VTQl9BNVJfUElECTB4OWU2OQkvKiBVU0ItQTVSIFVTQiB0byA4IHBpbiBtb2R1bGFyIHBs dWcqLw0KKyNkZWZpbmUgUlRTWVNURU1TX1VTQl9QVzFfUElECTB4OWU2QQkvKiBVU0ItUFcxIFVT QiB0byA4IHBpbiBtb2R1bGFyIHBsdWcqLw0KIA0KIC8qDQogICogUGh5c2lrIEluc3RydW1lbnRl DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW4uYyBiL2RyaXZlcnMvdXNi L3NlcmlhbC9rZXlzcGFuLmMNCmluZGV4IDRmNDE1ZTI4Li5iNjY4MDY5IDEwMDY0NA0KLS0tIGEv ZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW4uYw0KKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tl eXNwYW4uYw0KQEAgLTI2MjAsNyArMjYyMCw3IEBAIHN0YXRpYyBpbnQga2V5c3Bhbl9zdGFydHVw KHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpDQogCWlmIChkX2RldGFpbHMgPT0gTlVMTCkgew0K IAkJZGV2X2Vycigmc2VyaWFsLT5kZXYtPmRldiwgIiVzIC0gdW5rbm93biBwcm9kdWN0IGlkICV4 XG4iLA0KIAkJICAgIF9fZnVuY19fLCBsZTE2X3RvX2NwdShzZXJpYWwtPmRldi0+ZGVzY3JpcHRv ci5pZFByb2R1Y3QpKTsNCi0JCXJldHVybiAxOw0KKwkJcmV0dXJuIC1FTk9ERVY7DQogCX0NCiAN CiAJLyogU2V0dXAgcHJpdmF0ZSBkYXRhIGZvciBzZXJpYWwgZHJpdmVyICovDQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy91c2Ivc2VyaWFsL21vczc3MjAuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9tb3M3 NzIwLmMNCmluZGV4IDk1ODA2NzkuLjkyNzBkNWMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9z ZXJpYWwvbW9zNzcyMC5jDQorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvbW9zNzcyMC5jDQpAQCAt OTcsNiArOTcsNyBAQCBzdHJ1Y3QgdXJidHJhY2tlciB7DQogCXN0cnVjdCBsaXN0X2hlYWQgICAg ICAgIHVyYmxpc3RfZW50cnk7DQogCXN0cnVjdCBrcmVmICAgICAgICAgICAgIHJlZl9jb3VudDsN CiAJc3RydWN0IHVyYiAgICAgICAgICAgICAgKnVyYjsNCisJc3RydWN0IHVzYl9jdHJscmVxdWVz dAkqc2V0dXA7DQogfTsNCiANCiBlbnVtIG1vczc3MTVfcHBfbW9kZXMgew0KQEAgLTI3OSw2ICsy ODAsNyBAQCBzdGF0aWMgdm9pZCBkZXN0cm95X3VyYnRyYWNrZXIoc3RydWN0IGtyZWYgKmtyZWYp DQogCXN0cnVjdCBtb3M3NzE1X3BhcnBvcnQgKm1vc19wYXJwb3J0ID0gdXJidHJhY2stPm1vc19w YXJwb3J0Ow0KIAlkYmcoIiVzIGNhbGxlZCIsIF9fZnVuY19fKTsNCiAJdXNiX2ZyZWVfdXJiKHVy YnRyYWNrLT51cmIpOw0KKwlrZnJlZSh1cmJ0cmFjay0+c2V0dXApOw0KIAlrZnJlZSh1cmJ0cmFj ayk7DQogCWtyZWZfcHV0KCZtb3NfcGFycG9ydC0+cmVmX2NvdW50LCBkZXN0cm95X21vc19wYXJw b3J0KTsNCiB9DQpAQCAtMzYzLDcgKzM2NSw2IEBAIHN0YXRpYyBpbnQgd3JpdGVfcGFycG9ydF9y ZWdfbm9uYmxvY2soc3RydWN0IG1vczc3MTVfcGFycG9ydCAqbW9zX3BhcnBvcnQsDQogCXN0cnVj dCB1cmJ0cmFja2VyICp1cmJ0cmFjazsNCiAJaW50IHJldF92YWw7DQogCXVuc2lnbmVkIGxvbmcg ZmxhZ3M7DQotCXN0cnVjdCB1c2JfY3RybHJlcXVlc3Qgc2V0dXA7DQogCXN0cnVjdCB1c2Jfc2Vy aWFsICpzZXJpYWwgPSBtb3NfcGFycG9ydC0+c2VyaWFsOw0KIAlzdHJ1Y3QgdXNiX2RldmljZSAq dXNiZGV2ID0gc2VyaWFsLT5kZXY7DQogCWRiZygiJXMgY2FsbGVkIiwgX19mdW5jX18pOw0KQEAg LTM4MiwxNCArMzgzLDIwIEBAIHN0YXRpYyBpbnQgd3JpdGVfcGFycG9ydF9yZWdfbm9uYmxvY2so c3RydWN0IG1vczc3MTVfcGFycG9ydCAqbW9zX3BhcnBvcnQsDQogCQlrZnJlZSh1cmJ0cmFjayk7 DQogCQlyZXR1cm4gLUVOT01FTTsNCiAJfQ0KLQlzZXR1cC5iUmVxdWVzdFR5cGUgPSAoX191OCkw eDQwOw0KLQlzZXR1cC5iUmVxdWVzdCA9IChfX3U4KTB4MGU7DQotCXNldHVwLndWYWx1ZSA9IGdl dF9yZWdfdmFsdWUocmVnLCBkdW1teSk7DQotCXNldHVwLndJbmRleCA9IGdldF9yZWdfaW5kZXgo cmVnKTsNCi0Jc2V0dXAud0xlbmd0aCA9IDA7DQorCXVyYnRyYWNrLT5zZXR1cCA9IGttYWxsb2Mo c2l6ZW9mKCp1cmJ0cmFjay0+c2V0dXApLCBHRlBfS0VSTkVMKTsNCisJaWYgKCF1cmJ0cmFjay0+ c2V0dXApIHsNCisJCXVzYl9mcmVlX3VyYih1cmJ0cmFjay0+dXJiKTsNCisJCWtmcmVlKHVyYnRy YWNrKTsNCisJCXJldHVybiAtRU5PTUVNOw0KKwl9DQorCXVyYnRyYWNrLT5zZXR1cC0+YlJlcXVl c3RUeXBlID0gKF9fdTgpMHg0MDsNCisJdXJidHJhY2stPnNldHVwLT5iUmVxdWVzdCA9IChfX3U4 KTB4MGU7DQorCXVyYnRyYWNrLT5zZXR1cC0+d1ZhbHVlID0gZ2V0X3JlZ192YWx1ZShyZWcsIGR1 bW15KTsNCisJdXJidHJhY2stPnNldHVwLT53SW5kZXggPSBnZXRfcmVnX2luZGV4KHJlZyk7DQor CXVyYnRyYWNrLT5zZXR1cC0+d0xlbmd0aCA9IDA7DQogCXVzYl9maWxsX2NvbnRyb2xfdXJiKHVy YnRyYWNrLT51cmIsIHVzYmRldiwNCiAJCQkgICAgIHVzYl9zbmRjdHJscGlwZSh1c2JkZXYsIDAp LA0KLQkJCSAgICAgKHVuc2lnbmVkIGNoYXIgKikmc2V0dXAsDQorCQkJICAgICAodW5zaWduZWQg Y2hhciAqKXVyYnRyYWNrLT5zZXR1cCwNCiAJCQkgICAgIE5VTEwsIDAsIGFzeW5jX2NvbXBsZXRl LCB1cmJ0cmFjayk7DQogCWtyZWZfaW5pdCgmdXJidHJhY2stPnJlZl9jb3VudCk7DQogCUlOSVRf TElTVF9IRUFEKCZ1cmJ0cmFjay0+dXJibGlzdF9lbnRyeSk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy91c2Ivc2VyaWFsL21vczc4NDAuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9tb3M3ODQwLmMNCmlu ZGV4IDVlOGM3MzYuLjVkMjUwMWUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvbW9z Nzg0MC5jDQorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvbW9zNzg0MC5jDQpAQCAtMTg1LDYgKzE4 NSwxMCBAQA0KICNkZWZpbmUgVVJCX1RSQU5TRkVSX0JVRkZFUl9TSVpFICAgICAgICAzMgkvKiBV UkIgU2l6ZSAgKi8NCiANCiANCitlbnVtIG1vczc4NDBfZmxhZyB7DQorCU1PUzc4NDBfRkxBR19D VFJMX0JVU1ksDQorfTsNCisNCiBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgbW9z Y2hpcF9wb3J0X2lkX3RhYmxlW10gPSB7DQogCXtVU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfTU9T Q0hJUCwgTU9TQ0hJUF9ERVZJQ0VfSURfNzg0MCl9LA0KIAl7VVNCX0RFVklDRShVU0JfVkVORE9S X0lEX01PU0NISVAsIE1PU0NISVBfREVWSUNFX0lEXzc4MjApfSwNCkBAIC0yNTgsNiArMjYyLDgg QEAgc3RydWN0IG1vc2NoaXBfcG9ydCB7DQogCXN0cnVjdCB1cmIgKndyaXRlX3VyYl9wb29sW05V TV9VUkJTXTsNCiAJY2hhciBidXN5W05VTV9VUkJTXTsNCiAJYm9vbCByZWFkX3VyYl9idXN5Ow0K Kw0KKwl1bnNpZ25lZCBsb25nIGZsYWdzOw0KIH07DQogDQogDQpAQCAtNTE5LDExICs1MjUsMTEg QEAgc3RhdGljIHZvaWQgbW9zNzg0MF9jb250cm9sX2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYikN CiAJCS8qIHRoaXMgdXJiIGlzIHRlcm1pbmF0ZWQsIGNsZWFuIHVwICovDQogCQlkYmcoIiVzIC0g dXJiIHNodXR0aW5nIGRvd24gd2l0aCBzdGF0dXM6ICVkIiwgX19mdW5jX18sDQogCQkgICAgc3Rh dHVzKTsNCi0JCXJldHVybjsNCisJCWdvdG8gb3V0Ow0KIAlkZWZhdWx0Og0KIAkJZGJnKCIlcyAt IG5vbnplcm8gdXJiIHN0YXR1cyByZWNlaXZlZDogJWQiLCBfX2Z1bmNfXywNCiAJCSAgICBzdGF0 dXMpOw0KLQkJcmV0dXJuOw0KKwkJZ290byBvdXQ7DQogCX0NCiANCiAJZGJnKCIlcyB1cmIgYnVm ZmVyIHNpemUgaXMgJWQiLCBfX2Z1bmNfXywgdXJiLT5hY3R1YWxfbGVuZ3RoKTsNCkBAIC01MzYs NiArNTQyLDggQEAgc3RhdGljIHZvaWQgbW9zNzg0MF9jb250cm9sX2NhbGxiYWNrKHN0cnVjdCB1 cmIgKnVyYikNCiAJCW1vczc4NDBfaGFuZGxlX25ld19tc3IobW9zNzg0MF9wb3J0LCByZWd2YWwp Ow0KIAllbHNlIGlmIChtb3M3ODQwX3BvcnQtPk1zckxzciA9PSAxKQ0KIAkJbW9zNzg0MF9oYW5k bGVfbmV3X2xzcihtb3M3ODQwX3BvcnQsIHJlZ3ZhbCk7DQorb3V0Og0KKwljbGVhcl9iaXRfdW5s b2NrKE1PUzc4NDBfRkxBR19DVFJMX0JVU1ksICZtb3M3ODQwX3BvcnQtPmZsYWdzKTsNCiB9DQog DQogc3RhdGljIGludCBtb3M3ODQwX2dldF9yZWcoc3RydWN0IG1vc2NoaXBfcG9ydCAqbWNzLCBf X3UxNiBXdmFsLCBfX3UxNiByZWcsDQpAQCAtNTQ2LDYgKzU1NCw5IEBAIHN0YXRpYyBpbnQgbW9z Nzg0MF9nZXRfcmVnKHN0cnVjdCBtb3NjaGlwX3BvcnQgKm1jcywgX191MTYgV3ZhbCwgX191MTYg cmVnLA0KIAl1bnNpZ25lZCBjaGFyICpidWZmZXIgPSBtY3MtPmN0cmxfYnVmOw0KIAlpbnQgcmV0 Ow0KIA0KKwlpZiAodGVzdF9hbmRfc2V0X2JpdF9sb2NrKE1PUzc4NDBfRkxBR19DVFJMX0JVU1ks ICZtY3MtPmZsYWdzKSkNCisJCXJldHVybiAtRUJVU1k7DQorDQogCWRyLT5iUmVxdWVzdFR5cGUg PSBNQ1NfUkRfUlRZUEU7DQogCWRyLT5iUmVxdWVzdCA9IE1DU19SRFJFUTsNCiAJZHItPndWYWx1 ZSA9IGNwdV90b19sZTE2KFd2YWwpOwkvKiAwICovDQpAQCAtNTU3LDYgKzU2OCw5IEBAIHN0YXRp YyBpbnQgbW9zNzg0MF9nZXRfcmVnKHN0cnVjdCBtb3NjaGlwX3BvcnQgKm1jcywgX191MTYgV3Zh bCwgX191MTYgcmVnLA0KIAkJCSAgICAgbW9zNzg0MF9jb250cm9sX2NhbGxiYWNrLCBtY3MpOw0K IAltY3MtPmNvbnRyb2xfdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoID0gMjsNCiAJcmV0ID0g dXNiX3N1Ym1pdF91cmIobWNzLT5jb250cm9sX3VyYiwgR0ZQX0FUT01JQyk7DQorCWlmIChyZXQp DQorCQljbGVhcl9iaXRfdW5sb2NrKE1PUzc4NDBfRkxBR19DVFJMX0JVU1ksICZtY3MtPmZsYWdz KTsNCisNCiAJcmV0dXJuIHJldDsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2Vy aWFsL3RpX3VzYl8zNDEwXzUwNTIuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC90aV91c2JfMzQxMF81 MDUyLmMNCmluZGV4IDQyMDM4YmEuLjg4NWQxNWQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9z ZXJpYWwvdGlfdXNiXzM0MTBfNTA1Mi5jDQorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvdGlfdXNi XzM0MTBfNTA1Mi5jDQpAQCAtMTcxMywxMiArMTcxMywxMyBAQCBzdGF0aWMgaW50IHRpX2Rvd25s b2FkX2Zpcm13YXJlKHN0cnVjdCB0aV9kZXZpY2UgKnRkZXYpDQogDQogCWRiZygiJXNcbiIsIF9f ZnVuY19fKTsNCiAJLyogdHJ5IElEIHNwZWNpZmljIGZpcm13YXJlIGZpcnN0LCB0aGVuIHRyeSBn ZW5lcmljIGZpcm13YXJlICovDQotCXNwcmludGYoYnVmLCAidGlfdXNiLXYlMDR4LXAlMDR4LmZ3 IiwgZGV2LT5kZXNjcmlwdG9yLmlkVmVuZG9yLA0KLQkgICAgZGV2LT5kZXNjcmlwdG9yLmlkUHJv ZHVjdCk7DQorCXNwcmludGYoYnVmLCAidGlfdXNiLXYlMDR4LXAlMDR4LmZ3IiwNCisJCQlsZTE2 X3RvX2NwdShkZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IpLA0KKwkJCWxlMTZfdG9fY3B1KGRldi0+ ZGVzY3JpcHRvci5pZFByb2R1Y3QpKTsNCiAJaWYgKChzdGF0dXMgPSByZXF1ZXN0X2Zpcm13YXJl KCZmd19wLCBidWYsICZkZXYtPmRldikpICE9IDApIHsNCiAJCWJ1ZlswXSA9ICdcMCc7DQotCQlp ZiAoZGV2LT5kZXNjcmlwdG9yLmlkVmVuZG9yID09IE1UU19WRU5ET1JfSUQpIHsNCi0JCQlzd2l0 Y2ggKGRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QpIHsNCisJCWlmIChsZTE2X3RvX2NwdShkZXYt PmRlc2NyaXB0b3IuaWRWZW5kb3IpID09IE1UU19WRU5ET1JfSUQpIHsNCisJCQlzd2l0Y2ggKGxl MTZfdG9fY3B1KGRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QpKSB7DQogCQkJY2FzZSBNVFNfQ0RN QV9QUk9EVUNUX0lEOg0KIAkJCQlzdHJjcHkoYnVmLCAibXRzX2NkbWEuZnciKTsNCiAJCQkJYnJl YWs7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vZXZlbnRzLmMgYi9kcml2ZXJzL3hlbi9ldmVu dHMuYw0KaW5kZXggMTFkN2I2NC4uZjYyMjdjYyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMveGVuL2V2 ZW50cy5jDQorKysgYi9kcml2ZXJzL3hlbi9ldmVudHMuYw0KQEAgLTMxNiw3ICszMTYsNyBAQCBz dGF0aWMgdm9pZCBpbml0X2V2dGNobl9jcHVfYmluZGluZ3Modm9pZCkNCiANCiAJZm9yX2VhY2hf cG9zc2libGVfY3B1KGkpDQogCQltZW1zZXQocGVyX2NwdShjcHVfZXZ0Y2huX21hc2ssIGkpLA0K LQkJICAgICAgIChpID09IDApID8gfjAgOiAwLCBzaXplb2YoKnBlcl9jcHUoY3B1X2V2dGNobl9t YXNrLCBpKSkpOw0KKwkJICAgICAgIChpID09IDApID8gfjAgOiAwLCBOUl9FVkVOVF9DSEFOTkVM Uy84KTsNCiB9DQogDQogc3RhdGljIGlubGluZSB2b2lkIGNsZWFyX2V2dGNobihpbnQgcG9ydCkN CkBAIC0xMzQwLDggKzEzNDAsMTAgQEAgdm9pZCByZWJpbmRfZXZ0Y2huX2lycShpbnQgZXZ0Y2hu LCBpbnQgaXJxKQ0KIC8qIFJlYmluZCBhbiBldnRjaG4gc28gdGhhdCBpdCBnZXRzIGRlbGl2ZXJl ZCB0byBhIHNwZWNpZmljIGNwdSAqLw0KIHN0YXRpYyBpbnQgcmViaW5kX2lycV90b19jcHUodW5z aWduZWQgaXJxLCB1bnNpZ25lZCB0Y3B1KQ0KIHsNCisJc3RydWN0IHNoYXJlZF9pbmZvICpzID0g SFlQRVJWSVNPUl9zaGFyZWRfaW5mbzsNCiAJc3RydWN0IGV2dGNobl9iaW5kX3ZjcHUgYmluZF92 Y3B1Ow0KIAlpbnQgZXZ0Y2huID0gZXZ0Y2huX2Zyb21faXJxKGlycSk7DQorCWludCBtYXNrZWQ7 DQogDQogCWlmICghVkFMSURfRVZUQ0hOKGV2dGNobikpDQogCQlyZXR1cm4gLTE7DQpAQCAtMTM1 OCw2ICsxMzYwLDEyIEBAIHN0YXRpYyBpbnQgcmViaW5kX2lycV90b19jcHUodW5zaWduZWQgaXJx LCB1bnNpZ25lZCB0Y3B1KQ0KIAliaW5kX3ZjcHUudmNwdSA9IHRjcHU7DQogDQogCS8qDQorCSAq IE1hc2sgdGhlIGV2ZW50IHdoaWxlIGNoYW5naW5nIHRoZSBWQ1BVIGJpbmRpbmcgdG8gcHJldmVu dA0KKwkgKiBpdCBiZWluZyBkZWxpdmVyZWQgb24gYW4gdW5leHBlY3RlZCBWQ1BVLg0KKwkgKi8N CisJbWFza2VkID0gc3luY190ZXN0X2FuZF9zZXRfYml0KGV2dGNobiwgcy0+ZXZ0Y2huX21hc2sp Ow0KKw0KKwkvKg0KIAkgKiBJZiB0aGlzIGZhaWxzLCBpdCB1c3VhbGx5IGp1c3QgaW5kaWNhdGVz IHRoYXQgd2UncmUgZGVhbGluZyB3aXRoIGENCiAJICogdmlycSBvciBJUEkgY2hhbm5lbCwgd2hp Y2ggZG9uJ3QgYWN0dWFsbHkgbmVlZCB0byBiZSByZWJvdW5kLiBJZ25vcmUNCiAJICogaXQsIGJ1 dCBkb24ndCBkbyB0aGUgeGVubGludXgtbGV2ZWwgcmViaW5kIGluIHRoYXQgY2FzZS4NCkBAIC0x MzY1LDYgKzEzNzMsOSBAQCBzdGF0aWMgaW50IHJlYmluZF9pcnFfdG9fY3B1KHVuc2lnbmVkIGly cSwgdW5zaWduZWQgdGNwdSkNCiAJaWYgKEhZUEVSVklTT1JfZXZlbnRfY2hhbm5lbF9vcChFVlRD SE5PUF9iaW5kX3ZjcHUsICZiaW5kX3ZjcHUpID49IDApDQogCQliaW5kX2V2dGNobl90b19jcHUo ZXZ0Y2huLCB0Y3B1KTsNCiANCisJaWYgKCFtYXNrZWQpDQorCQl1bm1hc2tfZXZ0Y2huKGV2dGNo bik7DQorDQogCXJldHVybiAwOw0KIH0NCiANCmRpZmYgLS1naXQgYS9mcy9iaW8uYyBiL2ZzL2Jp by5jDQppbmRleCA0ZmM0ZGJiLi5iODRkODUxIDEwMDY0NA0KLS0tIGEvZnMvYmlvLmMNCisrKyBi L2ZzL2Jpby5jDQpAQCAtNzM0LDcgKzczNCw3IEBAIHN0YXRpYyBpbnQgX19iaW9fY29weV9pb3Yo c3RydWN0IGJpbyAqYmlvLCBzdHJ1Y3QgYmlvX3ZlYyAqaW92ZWNzLA0KIAlpbnQgaW92X2lkeCA9 IDA7DQogCXVuc2lnbmVkIGludCBpb3Zfb2ZmID0gMDsNCiANCi0JX19iaW9fZm9yX2VhY2hfc2Vn bWVudChidmVjLCBiaW8sIGksIDApIHsNCisJYmlvX2Zvcl9lYWNoX3NlZ21lbnRfYWxsKGJ2ZWMs IGJpbywgaSkgew0KIAkJY2hhciAqYnZfYWRkciA9IHBhZ2VfYWRkcmVzcyhidmVjLT5idl9wYWdl KTsNCiAJCXVuc2lnbmVkIGludCBidl9sZW4gPSBpb3ZlY3NbaV0uYnZfbGVuOw0KIA0KQEAgLTc4 NywxMiArNzg3LDIyIEBAIHN0YXRpYyBpbnQgX19iaW9fY29weV9pb3Yoc3RydWN0IGJpbyAqYmlv LCBzdHJ1Y3QgYmlvX3ZlYyAqaW92ZWNzLA0KIGludCBiaW9fdW5jb3B5X3VzZXIoc3RydWN0IGJp byAqYmlvKQ0KIHsNCiAJc3RydWN0IGJpb19tYXBfZGF0YSAqYm1kID0gYmlvLT5iaV9wcml2YXRl Ow0KLQlpbnQgcmV0ID0gMDsNCisJc3RydWN0IGJpb192ZWMgKmJ2ZWM7DQorCWludCByZXQgPSAw LCBpOw0KIA0KLQlpZiAoIWJpb19mbGFnZ2VkKGJpbywgQklPX05VTExfTUFQUEVEKSkNCi0JCXJl dCA9IF9fYmlvX2NvcHlfaW92KGJpbywgYm1kLT5pb3ZlY3MsIGJtZC0+c2d2ZWNzLA0KLQkJCQkg ICAgIGJtZC0+bnJfc2d2ZWNzLCBiaW9fZGF0YV9kaXIoYmlvKSA9PSBSRUFELA0KLQkJCQkgICAg IDAsIGJtZC0+aXNfb3VyX3BhZ2VzKTsNCisJaWYgKCFiaW9fZmxhZ2dlZChiaW8sIEJJT19OVUxM X01BUFBFRCkpIHsNCisJCS8qDQorCQkgKiBpZiB3ZSdyZSBpbiBhIHdvcmtxdWV1ZSwgdGhlIHJl cXVlc3QgaXMgb3JwaGFuZWQsIHNvDQorCQkgKiBkb24ndCBjb3B5IGludG8gYSByYW5kb20gdXNl ciBhZGRyZXNzIHNwYWNlLCBqdXN0IGZyZWUuDQorCQkgKi8NCisJCWlmIChjdXJyZW50LT5tbSkN CisJCQlyZXQgPSBfX2Jpb19jb3B5X2lvdihiaW8sIGJtZC0+aW92ZWNzLCBibWQtPnNndmVjcywN CisJCQkJCSAgICAgYm1kLT5ucl9zZ3ZlY3MsIGJpb19kYXRhX2RpcihiaW8pID09IFJFQUQsDQor CQkJCQkgICAgIDAsIGJtZC0+aXNfb3VyX3BhZ2VzKTsNCisJCWVsc2UgaWYgKGJtZC0+aXNfb3Vy X3BhZ2VzKQ0KKwkJCWJpb19mb3JfZWFjaF9zZWdtZW50X2FsbChidmVjLCBiaW8sIGkpDQorCQkJ CV9fZnJlZV9wYWdlKGJ2ZWMtPmJ2X3BhZ2UpOw0KKwl9DQogCWJpb19mcmVlX21hcF9kYXRhKGJt ZCk7DQogCWJpb19wdXQoYmlvKTsNCiAJcmV0dXJuIHJldDsNCkBAIC05MTYsNyArOTI2LDcgQEAg c3RydWN0IGJpbyAqYmlvX2NvcHlfdXNlcl9pb3Yoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsDQog CXJldHVybiBiaW87DQogY2xlYW51cDoNCiAJaWYgKCFtYXBfZGF0YSkNCi0JCWJpb19mb3JfZWFj aF9zZWdtZW50KGJ2ZWMsIGJpbywgaSkNCisJCWJpb19mb3JfZWFjaF9zZWdtZW50X2FsbChidmVj LCBiaW8sIGkpDQogCQkJX19mcmVlX3BhZ2UoYnZlYy0+YnZfcGFnZSk7DQogDQogCWJpb19wdXQo YmlvKTsNCkBAIC0xMTMwLDcgKzExNDAsNyBAQCBzdGF0aWMgdm9pZCBfX2Jpb191bm1hcF91c2Vy KHN0cnVjdCBiaW8gKmJpbykNCiAJLyoNCiAJICogbWFrZSBzdXJlIHdlIGRpcnR5IHBhZ2VzIHdl IHdyb3RlIHRvDQogCSAqLw0KLQlfX2Jpb19mb3JfZWFjaF9zZWdtZW50KGJ2ZWMsIGJpbywgaSwg MCkgew0KKwliaW9fZm9yX2VhY2hfc2VnbWVudF9hbGwoYnZlYywgYmlvLCBpKSB7DQogCQlpZiAo YmlvX2RhdGFfZGlyKGJpbykgPT0gUkVBRCkNCiAJCQlzZXRfcGFnZV9kaXJ0eV9sb2NrKGJ2ZWMt PmJ2X3BhZ2UpOw0KIA0KQEAgLTEyMzYsNyArMTI0Niw3IEBAIHN0YXRpYyB2b2lkIGJpb19jb3B5 X2tlcm5fZW5kaW8oc3RydWN0IGJpbyAqYmlvLCBpbnQgZXJyKQ0KIAlpbnQgaTsNCiAJY2hhciAq cCA9IGJtZC0+c2d2ZWNzWzBdLmlvdl9iYXNlOw0KIA0KLQlfX2Jpb19mb3JfZWFjaF9zZWdtZW50 KGJ2ZWMsIGJpbywgaSwgMCkgew0KKwliaW9fZm9yX2VhY2hfc2VnbWVudF9hbGwoYnZlYywgYmlv LCBpKSB7DQogCQljaGFyICphZGRyID0gcGFnZV9hZGRyZXNzKGJ2ZWMtPmJ2X3BhZ2UpOw0KIAkJ aW50IGxlbiA9IGJtZC0+aW92ZWNzW2ldLmJ2X2xlbjsNCiANCkBAIC0xMjc2LDcgKzEyODYsNyBA QCBzdHJ1Y3QgYmlvICpiaW9fY29weV9rZXJuKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCB2b2lk ICpkYXRhLCB1bnNpZ25lZCBpbnQgbGVuLA0KIAlpZiAoIXJlYWRpbmcpIHsNCiAJCXZvaWQgKnAg PSBkYXRhOw0KIA0KLQkJYmlvX2Zvcl9lYWNoX3NlZ21lbnQoYnZlYywgYmlvLCBpKSB7DQorCQli aW9fZm9yX2VhY2hfc2VnbWVudF9hbGwoYnZlYywgYmlvLCBpKSB7DQogCQkJY2hhciAqYWRkciA9 IHBhZ2VfYWRkcmVzcyhidmVjLT5idl9wYWdlKTsNCiANCiAJCQltZW1jcHkoYWRkciwgcCwgYnZl Yy0+YnZfbGVuKTsNCkBAIC0xNTU2LDcgKzE1NjYsNyBAQCBzZWN0b3JfdCBiaW9fc2VjdG9yX29m ZnNldChzdHJ1Y3QgYmlvICpiaW8sIHVuc2lnbmVkIHNob3J0IGluZGV4LA0KIAlpZiAoaW5kZXgg Pj0gYmlvLT5iaV9pZHgpDQogCQlpbmRleCA9IGJpby0+YmlfdmNudCAtIDE7DQogDQotCV9fYmlv X2Zvcl9lYWNoX3NlZ21lbnQoYnYsIGJpbywgaSwgMCkgew0KKwliaW9fZm9yX2VhY2hfc2VnbWVu dF9hbGwoYnYsIGJpbywgaSkgew0KIAkJaWYgKGkgPT0gaW5kZXgpIHsNCiAJCQlpZiAob2Zmc2V0 ID4gYnYtPmJ2X29mZnNldCkNCiAJCQkJc2VjdG9ycyArPSAob2Zmc2V0IC0gYnYtPmJ2X29mZnNl dCkgLyBzZWN0b3Jfc3o7DQpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9jaWZzZW5jcnlwdC5jIGIvZnMv Y2lmcy9jaWZzZW5jcnlwdC5jDQppbmRleCBjZGNkNjY1Li5iNDY3NWJkIDEwMDY0NA0KLS0tIGEv ZnMvY2lmcy9jaWZzZW5jcnlwdC5jDQorKysgYi9mcy9jaWZzL2NpZnNlbmNyeXB0LmMNCkBAIC0z NjksNyArMzY5LDcgQEAgZmluZF9kb21haW5fbmFtZShzdHJ1Y3QgY2lmc19zZXMgKnNlcywgY29u c3Qgc3RydWN0IG5sc190YWJsZSAqbmxzX2NwKQ0KIAkJaWYgKGJsb2JwdHIgKyBhdHRyc2l6ZSA+ IGJsb2JlbmQpDQogCQkJYnJlYWs7DQogCQlpZiAodHlwZSA9PSBOVExNU1NQX0FWX05CX0RPTUFJ Tl9OQU1FKSB7DQotCQkJaWYgKCFhdHRyc2l6ZSkNCisJCQlpZiAoIWF0dHJzaXplIHx8IGF0dHJz aXplID49IENJRlNfTUFYX0RPTUFJTk5BTUVfTEVOKQ0KIAkJCQlicmVhazsNCiAJCQlpZiAoIXNl cy0+ZG9tYWluTmFtZSkgew0KIAkJCQlzZXMtPmRvbWFpbk5hbWUgPQ0KZGlmZiAtLWdpdCBhL2Zz L2NpZnMvY2lmc2dsb2IuaCBiL2ZzL2NpZnMvY2lmc2dsb2IuaA0KaW5kZXggMmYzZmY1OS4uN2I2 ODA4OCAxMDA2NDQNCi0tLSBhL2ZzL2NpZnMvY2lmc2dsb2IuaA0KKysrIGIvZnMvY2lmcy9jaWZz Z2xvYi5oDQpAQCAtMzgsNiArMzgsNyBAQA0KICNkZWZpbmUgTUFYX1RSRUVfU0laRSAoMiArIE1B WF9TRVJWRVJfU0laRSArIDEgKyBNQVhfU0hBUkVfU0laRSArIDEpDQogI2RlZmluZSBNQVhfU0VS VkVSX1NJWkUgMTUNCiAjZGVmaW5lIE1BWF9TSEFSRV9TSVpFIDgwDQorI2RlZmluZSBDSUZTX01B WF9ET01BSU5OQU1FX0xFTiAyNTYgLyogbWF4IGRvbWFpbiBuYW1lIGxlbmd0aCAqLw0KICNkZWZp bmUgTUFYX1VTRVJOQU1FX1NJWkUgMjU2CS8qIHJlYXNvbmFibGUgbWF4aW11bSBmb3IgY3VycmVu dCBzZXJ2ZXJzICovDQogI2RlZmluZSBNQVhfUEFTU1dPUkRfU0laRSA1MTIJLyogbWF4IGZvciB3 aW5kb3dzIHNlZW1zIHRvIGJlIDI1NiB3aWRlIGNoYXJzICovDQogDQpkaWZmIC0tZ2l0IGEvZnMv Y2lmcy9yZWFkZGlyLmMgYi9mcy9jaWZzL3JlYWRkaXIuYw0KaW5kZXggNGMzN2VkNC4uNTJhODIw YSAxMDA2NDQNCi0tLSBhL2ZzL2NpZnMvcmVhZGRpci5jDQorKysgYi9mcy9jaWZzL3JlYWRkaXIu Yw0KQEAgLTk2LDYgKzk2LDE0IEBAIGNpZnNfcmVhZGRpcl9sb29rdXAoc3RydWN0IGRlbnRyeSAq cGFyZW50LCBzdHJ1Y3QgcXN0ciAqbmFtZSwNCiAJCWRwdXQoZGVudHJ5KTsNCiAJfQ0KIA0KKwkv Kg0KKwkgKiBJZiB3ZSBrbm93IHRoYXQgdGhlIGlub2RlIHdpbGwgbmVlZCB0byBiZSByZXZhbGlk YXRlZCBpbW1lZGlhdGVseSwNCisJICogdGhlbiBkb24ndCBjcmVhdGUgYSBuZXcgZGVudHJ5IGZv ciBpdC4gV2UnbGwgZW5kIHVwIGRvaW5nIGFuIG9uDQorCSAqIHRoZSB3aXJlIGNhbGwgZWl0aGVy IHdheSBhbmQgdGhpcyBzcGFyZXMgdXMgYW4gaW52YWxpZGF0aW9uLg0KKwkgKi8NCisJaWYgKGZh dHRyLT5jZl9mbGFncyAmIENJRlNfRkFUVFJfTkVFRF9SRVZBTCkNCisJCXJldHVybiBOVUxMOw0K Kw0KIAlkZW50cnkgPSBkX2FsbG9jKHBhcmVudCwgbmFtZSk7DQogCWlmIChkZW50cnkgPT0gTlVM TCkNCiAJCXJldHVybiBOVUxMOw0KZGlmZiAtLWdpdCBhL2ZzL2NpZnMvc2Vzcy5jIGIvZnMvY2lm cy9zZXNzLmMNCmluZGV4IDI1MDQ4MDkuLmQzNjI2MjYgMTAwNjQ0DQotLS0gYS9mcy9jaWZzL3Nl c3MuYw0KKysrIGIvZnMvY2lmcy9zZXNzLmMNCkBAIC0xOTgsNyArMTk4LDcgQEAgc3RhdGljIHZv aWQgdW5pY29kZV9kb21haW5fc3RyaW5nKGNoYXIgKipwYmNjX2FyZWEsIHN0cnVjdCBjaWZzX3Nl cyAqc2VzLA0KIAkJYnl0ZXNfcmV0ID0gMDsNCiAJfSBlbHNlDQogCQlieXRlc19yZXQgPSBjaWZz X3N0cnRvVUNTKChfX2xlMTYgKikgYmNjX3B0ciwgc2VzLT5kb21haW5OYW1lLA0KLQkJCQkJICAy NTYsIG5sc19jcCk7DQorCQkJCQkgIENJRlNfTUFYX0RPTUFJTk5BTUVfTEVOLCBubHNfY3ApOw0K IAliY2NfcHRyICs9IDIgKiBieXRlc19yZXQ7DQogCWJjY19wdHIgKz0gMjsgIC8qIGFjY291bnQg Zm9yIG51bGwgdGVybWluYXRvciAqLw0KIA0KQEAgLTI1Niw4ICsyNTYsOCBAQCBzdGF0aWMgdm9p ZCBhc2NpaV9zc2V0dXBfc3RyaW5ncyhjaGFyICoqcGJjY19hcmVhLCBzdHJ1Y3QgY2lmc19zZXMg KnNlcywNCiANCiAJLyogY29weSBkb21haW4gKi8NCiAJaWYgKHNlcy0+ZG9tYWluTmFtZSAhPSBO VUxMKSB7DQotCQlzdHJuY3B5KGJjY19wdHIsIHNlcy0+ZG9tYWluTmFtZSwgMjU2KTsNCi0JCWJj Y19wdHIgKz0gc3RybmxlbihzZXMtPmRvbWFpbk5hbWUsIDI1Nik7DQorCQlzdHJuY3B5KGJjY19w dHIsIHNlcy0+ZG9tYWluTmFtZSwgQ0lGU19NQVhfRE9NQUlOTkFNRV9MRU4pOw0KKwkJYmNjX3B0 ciArPSBzdHJubGVuKHNlcy0+ZG9tYWluTmFtZSwgQ0lGU19NQVhfRE9NQUlOTkFNRV9MRU4pOw0K IAl9IC8qIGVsc2Ugd2Ugd2lsbCBzZW5kIGEgbnVsbCBkb21haW4gbmFtZQ0KIAkgICAgIHNvIHRo ZSBzZXJ2ZXIgd2lsbCBkZWZhdWx0IHRvIGl0cyBvd24gZG9tYWluICovDQogCSpiY2NfcHRyID0g MDsNCmRpZmYgLS1naXQgYS9mcy9leG9mcy9vcmUuYyBiL2ZzL2V4b2ZzL29yZS5jDQppbmRleCAx NTg1ZGIxLi4yNmJiNTEyIDEwMDY0NA0KLS0tIGEvZnMvZXhvZnMvb3JlLmMNCisrKyBiL2ZzL2V4 b2ZzL29yZS5jDQpAQCAtNDAxLDcgKzQwMSw3IEBAIHN0YXRpYyB2b2lkIF9jbGVhcl9iaW8oc3Ry dWN0IGJpbyAqYmlvKQ0KIAlzdHJ1Y3QgYmlvX3ZlYyAqYnY7DQogCXVuc2lnbmVkIGk7DQogDQot CV9fYmlvX2Zvcl9lYWNoX3NlZ21lbnQoYnYsIGJpbywgaSwgMCkgew0KKwliaW9fZm9yX2VhY2hf c2VnbWVudF9hbGwoYnYsIGJpbywgaSkgew0KIAkJdW5zaWduZWQgdGhpc19jb3VudCA9IGJ2LT5i dl9sZW47DQogDQogCQlpZiAobGlrZWx5KFBBR0VfU0laRSA9PSB0aGlzX2NvdW50KSkNCmRpZmYg LS1naXQgYS9mcy9leG9mcy9vcmVfcmFpZC5jIGIvZnMvZXhvZnMvb3JlX3JhaWQuYw0KaW5kZXgg ZmZmMjA3MC4uMmM2NDgyNiAxMDA2NDQNCi0tLSBhL2ZzL2V4b2ZzL29yZV9yYWlkLmMNCisrKyBi L2ZzL2V4b2ZzL29yZV9yYWlkLmMNCkBAIC00MzIsNyArNDMyLDcgQEAgc3RhdGljIHZvaWQgX21h cmtfcmVhZDR3cml0ZV9wYWdlc191cHRvZGF0ZShzdHJ1Y3Qgb3JlX2lvX3N0YXRlICppb3MsIGlu dCByZXQpDQogCQlpZiAoIWJpbykNCiAJCQljb250aW51ZTsNCiANCi0JCV9fYmlvX2Zvcl9lYWNo X3NlZ21lbnQoYnYsIGJpbywgaSwgMCkgew0KKwkJYmlvX2Zvcl9lYWNoX3NlZ21lbnRfYWxsKGJ2 LCBiaW8sIGkpIHsNCiAJCQlzdHJ1Y3QgcGFnZSAqcGFnZSA9IGJ2LT5idl9wYWdlOw0KIA0KIAkJ CVNldFBhZ2VVcHRvZGF0ZShwYWdlKTsNCmRpZmYgLS1naXQgYS9mcy9leHQ0L2V4dDRfamJkMi5j IGIvZnMvZXh0NC9leHQ0X2piZDIuYw0KaW5kZXggYWNhMTc5MC4uZDBiOGY5OCAxMDA2NDQNCi0t LSBhL2ZzL2V4dDQvZXh0NF9qYmQyLmMNCisrKyBiL2ZzL2V4dDQvZXh0NF9qYmQyLmMNCkBAIC0x MDksMTAgKzEwOSwxMCBAQCBpbnQgX19leHQ0X2hhbmRsZV9kaXJ0eV9tZXRhZGF0YShjb25zdCBj aGFyICp3aGVyZSwgdW5zaWduZWQgaW50IGxpbmUsDQogDQogCWlmIChleHQ0X2hhbmRsZV92YWxp ZChoYW5kbGUpKSB7DQogCQllcnIgPSBqYmQyX2pvdXJuYWxfZGlydHlfbWV0YWRhdGEoaGFuZGxl LCBiaCk7DQotCQlpZiAoZXJyKSB7DQotCQkJLyogRXJyb3JzIGNhbiBvbmx5IGhhcHBlbiBpZiB0 aGVyZSBpcyBhIGJ1ZyAqLw0KLQkJCWhhbmRsZS0+aF9lcnIgPSBlcnI7DQotCQkJX19leHQ0X2pv dXJuYWxfc3RvcCh3aGVyZSwgbGluZSwgaGFuZGxlKTsNCisJCS8qIEVycm9ycyBjYW4gb25seSBo YXBwZW4gaWYgdGhlcmUgaXMgYSBidWcgKi8NCisJCWlmIChXQVJOX09OX09OQ0UoZXJyKSkgew0K KwkJCWV4dDRfam91cm5hbF9hYm9ydF9oYW5kbGUod2hlcmUsIGxpbmUsIF9fZnVuY19fLCBiaCwN CisJCQkJCQkgIGhhbmRsZSwgZXJyKTsNCiAJCX0NCiAJfSBlbHNlIHsNCiAJCWlmIChpbm9kZSkN CmRpZmYgLS1naXQgYS9mcy9leHQ0L3N1cGVyLmMgYi9mcy9leHQ0L3N1cGVyLmMNCmluZGV4IDI1 OWU5NTAuLjg0Zjg0YmYgMTAwNjQ0DQotLS0gYS9mcy9leHQ0L3N1cGVyLmMNCisrKyBiL2ZzL2V4 dDQvc3VwZXIuYw0KQEAgLTMzNzIsNyArMzM3Miw3IEBAIHN0YXRpYyBpbnQgZXh0NF9maWxsX3N1 cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpDQogCQl9 DQogCQlpZiAodGVzdF9vcHQoc2IsIERJT1JFQURfTk9MT0NLKSkgew0KIAkJCWV4dDRfbXNnKHNi LCBLRVJOX0VSUiwgImNhbid0IG1vdW50IHdpdGggIg0KLQkJCQkgImJvdGggZGF0YT1qb3VybmFs IGFuZCBkZWxhbGxvYyIpOw0KKwkJCQkgImJvdGggZGF0YT1qb3VybmFsIGFuZCBkaW9yZWFkX25v bG9jayIpOw0KIAkJCWdvdG8gZmFpbGVkX21vdW50Ow0KIAkJfQ0KIAkJaWYgKHRlc3Rfb3B0KHNi LCBERUxBTExPQykpDQpAQCAtNDUzOSw2ICs0NTM5LDIxIEBAIHN0YXRpYyBpbnQgZXh0NF9yZW1v dW50KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCAqZmxhZ3MsIGNoYXIgKmRhdGEpDQogCQln b3RvIHJlc3RvcmVfb3B0czsNCiAJfQ0KIA0KKwlpZiAodGVzdF9vcHQoc2IsIERBVEFfRkxBR1Mp ID09IEVYVDRfTU9VTlRfSk9VUk5BTF9EQVRBKSB7DQorCQlpZiAodGVzdF9vcHQyKHNiLCBFWFBM SUNJVF9ERUxBTExPQykpIHsNCisJCQlleHQ0X21zZyhzYiwgS0VSTl9FUlIsICJjYW4ndCBtb3Vu dCB3aXRoICINCisJCQkJICJib3RoIGRhdGE9am91cm5hbCBhbmQgZGVsYWxsb2MiKTsNCisJCQll cnIgPSAtRUlOVkFMOw0KKwkJCWdvdG8gcmVzdG9yZV9vcHRzOw0KKwkJfQ0KKwkJaWYgKHRlc3Rf b3B0KHNiLCBESU9SRUFEX05PTE9DSykpIHsNCisJCQlleHQ0X21zZyhzYiwgS0VSTl9FUlIsICJj YW4ndCBtb3VudCB3aXRoICINCisJCQkJICJib3RoIGRhdGE9am91cm5hbCBhbmQgZGlvcmVhZF9u b2xvY2siKTsNCisJCQllcnIgPSAtRUlOVkFMOw0KKwkJCWdvdG8gcmVzdG9yZV9vcHRzOw0KKwkJ fQ0KKwl9DQorDQogCWlmIChzYmktPnNfbW91bnRfZmxhZ3MgJiBFWFQ0X01GX0ZTX0FCT1JURUQp DQogCQlleHQ0X2Fib3J0KHNiLCAiQWJvcnQgZm9yY2VkIGJ5IHVzZXIiKTsNCiANCmRpZmYgLS1n aXQgYS9mcy9qZnMvamZzX2R0cmVlLmMgYi9mcy9qZnMvamZzX2R0cmVlLmMNCmluZGV4IDkxOTdh MWIuLjlmN2M3NTggMTAwNjQ0DQotLS0gYS9mcy9qZnMvamZzX2R0cmVlLmMNCisrKyBiL2ZzL2pm cy9qZnNfZHRyZWUuYw0KQEAgLTMwNDcsNiArMzA0NywxNCBAQCBpbnQgamZzX3JlYWRkaXIoc3Ry dWN0IGZpbGUgKmZpbHAsIHZvaWQgKmRpcmVudCwgZmlsbGRpcl90IGZpbGxkaXIpDQogDQogCQlk aXJfaW5kZXggPSAodTMyKSBmaWxwLT5mX3BvczsNCiANCisJCS8qDQorCQkgKiBORlN2NCByZXNl cnZlcyBjb29raWVzIDEgYW5kIDIgZm9yIC4gYW5kIC4uIHNvIHRoZSB2YWx1ZQ0KKwkJICogd2Ug cmV0dXJuIHRvIHRoZSB2ZnMgaXMgb25lIGdyZWF0ZXIgdGhhbiB0aGUgb25lIHdlIHVzZQ0KKwkJ ICogaW50ZXJuYWxseS4NCisJCSAqLw0KKwkJaWYgKGRpcl9pbmRleCkNCisJCQlkaXJfaW5kZXgt LTsNCisNCiAJCWlmIChkaXJfaW5kZXggPiAxKSB7DQogCQkJc3RydWN0IGRpcl90YWJsZV9zbG90 IGRpcnRhYl9zbG90Ow0KIA0KQEAgLTMwODYsNyArMzA5NCw3IEBAIGludCBqZnNfcmVhZGRpcihz dHJ1Y3QgZmlsZSAqZmlscCwgdm9pZCAqZGlyZW50LCBmaWxsZGlyX3QgZmlsbGRpcikNCiAJCQlp ZiAocC0+aGVhZGVyLmZsYWcgJiBCVF9JTlRFUk5BTCkgew0KIAkJCQlqZnNfZXJyKCJqZnNfcmVh ZGRpcjogYmFkIGluZGV4IHRhYmxlIik7DQogCQkJCURUX1BVVFBBR0UobXApOw0KLQkJCQlmaWxw LT5mX3BvcyA9IC0xOw0KKwkJCQlmaWxwLT5mX3BvcyA9IERJUkVORDsNCiAJCQkJcmV0dXJuIDA7 DQogCQkJfQ0KIAkJfSBlbHNlIHsNCkBAIC0zMDk0LDcgKzMxMDIsNyBAQCBpbnQgamZzX3JlYWRk aXIoc3RydWN0IGZpbGUgKmZpbHAsIHZvaWQgKmRpcmVudCwgZmlsbGRpcl90IGZpbGxkaXIpDQog CQkJCS8qDQogCQkJCSAqIHNlbGYgIi4iDQogCQkJCSAqLw0KLQkJCQlmaWxwLT5mX3BvcyA9IDA7 DQorCQkJCWZpbHAtPmZfcG9zID0gMTsNCiAJCQkJaWYgKGZpbGxkaXIoZGlyZW50LCAiLiIsIDEs IDAsIGlwLT5pX2lubywNCiAJCQkJCSAgICBEVF9ESVIpKQ0KIAkJCQkJcmV0dXJuIDA7DQpAQCAt MzEwMiw3ICszMTEwLDcgQEAgaW50IGpmc19yZWFkZGlyKHN0cnVjdCBmaWxlICpmaWxwLCB2b2lk ICpkaXJlbnQsIGZpbGxkaXJfdCBmaWxsZGlyKQ0KIAkJCS8qDQogCQkJICogcGFyZW50ICIuLiIN CiAJCQkgKi8NCi0JCQlmaWxwLT5mX3BvcyA9IDE7DQorCQkJZmlscC0+Zl9wb3MgPSAyOw0KIAkJ CWlmIChmaWxsZGlyKGRpcmVudCwgIi4uIiwgMiwgMSwgUEFSRU5UKGlwKSwgRFRfRElSKSkNCiAJ CQkJcmV0dXJuIDA7DQogDQpAQCAtMzEyMywyNCArMzEzMSwyNSBAQCBpbnQgamZzX3JlYWRkaXIo c3RydWN0IGZpbGUgKmZpbHAsIHZvaWQgKmRpcmVudCwgZmlsbGRpcl90IGZpbGxkaXIpDQogCQkv Kg0KIAkJICogTGVnYWN5IGZpbGVzeXN0ZW0gLSBPUy8yICYgTGludXggSkZTIDwgMC4zLjYNCiAJ CSAqDQotCQkgKiBwbiA9IGluZGV4ID0gMDoJRmlyc3QgZW50cnkgIi4iDQotCQkgKiBwbiA9IDA7 IGluZGV4ID0gMToJU2Vjb25kIGVudHJ5ICIuLiINCisJCSAqIHBuID0gMDsgaW5kZXggPSAxOglG aXJzdCBlbnRyeSAiLiINCisJCSAqIHBuID0gMDsgaW5kZXggPSAyOglTZWNvbmQgZW50cnkgIi4u Ig0KIAkJICogcG4gPiAwOgkJUmVhbCBlbnRyaWVzLCBwbj0xIC0+IGxlZnRtb3N0IHBhZ2UNCiAJ CSAqIHBuID0gaW5kZXggPSAtMToJTm8gbW9yZSBlbnRyaWVzDQogCQkgKi8NCiAJCWR0cG9zID0g ZmlscC0+Zl9wb3M7DQotCQlpZiAoZHRwb3MgPT0gMCkgew0KKwkJaWYgKGR0cG9zIDwgMikgew0K IAkJCS8qIGJ1aWxkICIuIiBlbnRyeSAqLw0KIA0KKwkJCWZpbHAtPmZfcG9zID0gMTsNCiAJCQlp ZiAoZmlsbGRpcihkaXJlbnQsICIuIiwgMSwgZmlscC0+Zl9wb3MsIGlwLT5pX2lubywNCiAJCQkJ ICAgIERUX0RJUikpDQogCQkJCXJldHVybiAwOw0KLQkJCWR0b2Zmc2V0LT5pbmRleCA9IDE7DQor CQkJZHRvZmZzZXQtPmluZGV4ID0gMjsNCiAJCQlmaWxwLT5mX3BvcyA9IGR0cG9zOw0KIAkJfQ0K IA0KIAkJaWYgKGR0b2Zmc2V0LT5wbiA9PSAwKSB7DQotCQkJaWYgKGR0b2Zmc2V0LT5pbmRleCA9 PSAxKSB7DQorCQkJaWYgKGR0b2Zmc2V0LT5pbmRleCA9PSAyKSB7DQogCQkJCS8qIGJ1aWxkICIu LiIgZW50cnkgKi8NCiANCiAJCQkJaWYgKGZpbGxkaXIoZGlyZW50LCAiLi4iLCAyLCBmaWxwLT5m X3BvcywNCkBAIC0zMjMzLDYgKzMyNDIsMTIgQEAgaW50IGpmc19yZWFkZGlyKHN0cnVjdCBmaWxl ICpmaWxwLCB2b2lkICpkaXJlbnQsIGZpbGxkaXJfdCBmaWxsZGlyKQ0KIAkJCQkJfQ0KIAkJCQkJ amZzX2RpcmVudC0+cG9zaXRpb24gPSB1bmlxdWVfcG9zKys7DQogCQkJCX0NCisJCQkJLyoNCisJ CQkJICogV2UgYWRkIDEgdG8gdGhlIGluZGV4IGJlY2F1c2Ugd2UgbWF5DQorCQkJCSAqIHVzZSBh IHZhbHVlIG9mIDIgaW50ZXJuYWxseSwgYW5kIE5GU3Y0DQorCQkJCSAqIGRvZXNuJ3QgbGlrZSB0 aGF0Lg0KKwkJCQkgKi8NCisJCQkJamZzX2RpcmVudC0+cG9zaXRpb24rKzsNCiAJCQl9IGVsc2Ug ew0KIAkJCQlqZnNfZGlyZW50LT5wb3NpdGlvbiA9IGR0cG9zOw0KIAkJCQlsZW4gPSBtaW4oZF9u YW1sZWZ0LCBEVExIRFJEQVRBTEVOX0xFR0FDWSk7DQpkaWZmIC0tZ2l0IGEvZnMvbmZzL2NhbGxi YWNrX3hkci5jIGIvZnMvbmZzL2NhbGxiYWNrX3hkci5jDQppbmRleCAxNjhjYjkzLi4zZmRlMDU1 IDEwMDY0NA0KLS0tIGEvZnMvbmZzL2NhbGxiYWNrX3hkci5jDQorKysgYi9mcy9uZnMvY2FsbGJh Y2tfeGRyLmMNCkBAIC00NTEsOSArNDUxLDkgQEAgc3RhdGljIF9fYmUzMiBkZWNvZGVfY2Jfc2Vx dWVuY2VfYXJncyhzdHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLA0KIAlhcmdzLT5jc2FfbnJjbGlzdHMg PSBudG9obCgqcCsrKTsNCiAJYXJncy0+Y3NhX3JjbGlzdHMgPSBOVUxMOw0KIAlpZiAoYXJncy0+ Y3NhX25yY2xpc3RzKSB7DQotCQlhcmdzLT5jc2FfcmNsaXN0cyA9IGttYWxsb2MoYXJncy0+Y3Nh X25yY2xpc3RzICoNCi0JCQkJCSAgICBzaXplb2YoKmFyZ3MtPmNzYV9yY2xpc3RzKSwNCi0JCQkJ CSAgICBHRlBfS0VSTkVMKTsNCisJCWFyZ3MtPmNzYV9yY2xpc3RzID0ga21hbGxvY19hcnJheShh cmdzLT5jc2FfbnJjbGlzdHMsDQorCQkJCQkJICBzaXplb2YoKmFyZ3MtPmNzYV9yY2xpc3RzKSwN CisJCQkJCQkgIEdGUF9LRVJORUwpOw0KIAkJaWYgKHVubGlrZWx5KGFyZ3MtPmNzYV9yY2xpc3Rz ID09IE5VTEwpKQ0KIAkJCWdvdG8gb3V0Ow0KIA0KZGlmZiAtLWdpdCBhL2ZzL25pbGZzMi9zZWdi dWYuYyBiL2ZzL25pbGZzMi9zZWdidWYuYw0KaW5kZXggODUwYTdjMC4uMDdhNjY2YSAxMDA2NDQN Ci0tLSBhL2ZzL25pbGZzMi9zZWdidWYuYw0KKysrIGIvZnMvbmlsZnMyL3NlZ2J1Zi5jDQpAQCAt MzQ1LDggKzM0NSw3IEBAIHN0YXRpYyB2b2lkIG5pbGZzX2VuZF9iaW9fd3JpdGUoc3RydWN0IGJp byAqYmlvLCBpbnQgZXJyKQ0KIA0KIAlpZiAoZXJyID09IC1FT1BOT1RTVVBQKSB7DQogCQlzZXRf Yml0KEJJT19FT1BOT1RTVVBQLCAmYmlvLT5iaV9mbGFncyk7DQotCQliaW9fcHV0KGJpbyk7DQot CQkvKiB0byBiZSBkZXRlY3RlZCBieSBzdWJtaXRfc2VnX2JpbygpICovDQorCQkvKiB0byBiZSBk ZXRlY3RlZCBieSBuaWxmc19zZWdidWZfc3VibWl0X2JpbygpICovDQogCX0NCiANCiAJaWYgKCF1 cHRvZGF0ZSkNCkBAIC0zNzcsMTIgKzM3NiwxMiBAQCBzdGF0aWMgaW50IG5pbGZzX3NlZ2J1Zl9z dWJtaXRfYmlvKHN0cnVjdCBuaWxmc19zZWdtZW50X2J1ZmZlciAqc2VnYnVmLA0KIAliaW8tPmJp X3ByaXZhdGUgPSBzZWdidWY7DQogCWJpb19nZXQoYmlvKTsNCiAJc3VibWl0X2Jpbyhtb2RlLCBi aW8pOw0KKwlzZWdidWYtPnNiX25iaW8rKzsNCiAJaWYgKGJpb19mbGFnZ2VkKGJpbywgQklPX0VP UE5PVFNVUFApKSB7DQogCQliaW9fcHV0KGJpbyk7DQogCQllcnIgPSAtRU9QTk9UU1VQUDsNCiAJ CWdvdG8gZmFpbGVkOw0KIAl9DQotCXNlZ2J1Zi0+c2JfbmJpbysrOw0KIAliaW9fcHV0KGJpbyk7 DQogDQogCXdpLT5iaW8gPSBOVUxMOw0KZGlmZiAtLWdpdCBhL2ZzL3Byb2MvdGFza19tbXUuYyBi L2ZzL3Byb2MvdGFza19tbXUuYw0KaW5kZXggM2VmYTcyNS4uZWYxNzQwZCAxMDA2NDQNCi0tLSBh L2ZzL3Byb2MvdGFza19tbXUuYw0KKysrIGIvZnMvcHJvYy90YXNrX21tdS5jDQpAQCAtNjA0LDcg KzYwNCw3IEBAIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcHJvY19jbGVhcl9yZWZzX29w ZXJhdGlvbnMgPSB7DQogfTsNCiANCiBzdHJ1Y3QgcGFnZW1hcHJlYWQgew0KLQlpbnQgcG9zLCBs ZW47DQorCWludCBwb3MsIGxlbjsJCS8qIHVuaXRzOiBQTV9FTlRSWV9CWVRFUywgbm90IGJ5dGVz ICovDQogCXU2NCAqYnVmZmVyOw0KIH07DQogDQpAQCAtNzkyLDggKzc5Miw4IEBAIHN0YXRpYyBz c2l6ZV90IHBhZ2VtYXBfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKmJ1ZiwN CiAJaWYgKCFjb3VudCkNCiAJCWdvdG8gb3V0X3Rhc2s7DQogDQotCXBtLmxlbiA9IFBNX0VOVFJZ X0JZVEVTICogKFBBR0VNQVBfV0FMS19TSVpFID4+IFBBR0VfU0hJRlQpOw0KLQlwbS5idWZmZXIg PSBrbWFsbG9jKHBtLmxlbiwgR0ZQX1RFTVBPUkFSWSk7DQorCXBtLmxlbiA9IChQQUdFTUFQX1dB TEtfU0laRSA+PiBQQUdFX1NISUZUKTsNCisJcG0uYnVmZmVyID0ga21hbGxvYyhwbS5sZW4gKiBQ TV9FTlRSWV9CWVRFUywgR0ZQX1RFTVBPUkFSWSk7DQogCXJldCA9IC1FTk9NRU07DQogCWlmICgh cG0uYnVmZmVyKQ0KIAkJZ290byBvdXRfdGFzazsNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4 L2Jpby5oIGIvaW5jbHVkZS9saW51eC9iaW8uaA0KaW5kZXggODQ3OTk0YS4uZTg2ODU1NCAxMDA2 NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvYmlvLmgNCisrKyBiL2luY2x1ZGUvbGludXgvYmlvLmgN CkBAIC0xMzUsMTYgKzEzNSwyNyBAQCBzdGF0aWMgaW5saW5lIGludCBiaW9faGFzX2FsbG9jYXRl ZF92ZWMoc3RydWN0IGJpbyAqYmlvKQ0KICNkZWZpbmUgYmlvX2lvX2Vycm9yKGJpbykgYmlvX2Vu ZGlvKChiaW8pLCAtRUlPKQ0KIA0KIC8qDQotICogZHJpdmVycyBzaG91bGQgbm90IHVzZSB0aGUg X18gdmVyc2lvbiB1bmxlc3MgdGhleSBfcmVhbGx5XyB3YW50IHRvDQotICogcnVuIHRocm91Z2gg dGhlIGVudGlyZSBiaW8gYW5kIG5vdCBqdXN0IHBlbmRpbmcgcGllY2VzDQorICogZHJpdmVycyBz aG91bGQgbm90IHVzZSB0aGUgX18gdmVyc2lvbiB1bmxlc3MgdGhleSBfcmVhbGx5XyBrbm93IHdo YXQNCisgKiB0aGV5J3JlIGRvaW5nDQogICovDQogI2RlZmluZSBfX2Jpb19mb3JfZWFjaF9zZWdt ZW50KGJ2bCwgYmlvLCBpLCBzdGFydF9pZHgpCQkJXA0KIAlmb3IgKGJ2bCA9IGJpb19pb3ZlY19p ZHgoKGJpbyksIChzdGFydF9pZHgpKSwgaSA9IChzdGFydF9pZHgpOwlcDQogCSAgICAgaSA8IChi aW8pLT5iaV92Y250OwkJCQkJXA0KIAkgICAgIGJ2bCsrLCBpKyspDQogDQorLyoNCisgKiBkcml2 ZXJzIHNob3VsZCBfbmV2ZXJfIHVzZSB0aGUgYWxsIHZlcnNpb24gLSB0aGUgYmlvIG1heSBoYXZl IGJlZW4gc3BsaXQNCisgKiBiZWZvcmUgaXQgZ290IHRvIHRoZSBkcml2ZXIgYW5kIHRoZSBkcml2 ZXIgd29uJ3Qgb3duIGFsbCBvZiBpdA0KKyAqLw0KKyNkZWZpbmUgYmlvX2Zvcl9lYWNoX3NlZ21l bnRfYWxsKGJ2bCwgYmlvLCBpKQkJCQlcDQorCWZvciAoaSA9IDA7CQkJCQkJCVwNCisJICAgICBi dmwgPSBiaW9faW92ZWNfaWR4KChiaW8pLCAoaSkpLCBpIDwgKGJpbyktPmJpX3ZjbnQ7CVwNCisJ ICAgICBpKyspDQorDQogI2RlZmluZSBiaW9fZm9yX2VhY2hfc2VnbWVudChidmwsIGJpbywgaSkJ CQkJXA0KLQlfX2Jpb19mb3JfZWFjaF9zZWdtZW50KGJ2bCwgYmlvLCBpLCAoYmlvKS0+YmlfaWR4 KQ0KKwlmb3IgKGkgPSAoYmlvKS0+YmlfaWR4OwkJCQkJCVwNCisJICAgICBidmwgPSBiaW9faW92 ZWNfaWR4KChiaW8pLCAoaSkpLCBpIDwgKGJpbyktPmJpX3ZjbnQ7CVwNCisJICAgICBpKyspDQog DQogLyoNCiAgKiBnZXQgYSByZWZlcmVuY2UgdG8gYSBiaW8sIHNvIGl0IHdvbid0IGRpc2FwcGVh ci4gdGhlIGludGVuZGVkIHVzZSBpcw0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZnRyYWNl X2V2ZW50LmggYi9pbmNsdWRlL2xpbnV4L2Z0cmFjZV9ldmVudC5oDQppbmRleCBjM2RhNDJkLi44 MjkyNGJmIDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9mdHJhY2VfZXZlbnQuaA0KKysrIGIv aW5jbHVkZS9saW51eC9mdHJhY2VfZXZlbnQuaA0KQEAgLTcxLDYgKzcxLDggQEAgc3RydWN0IHRy YWNlX2l0ZXJhdG9yIHsNCiAJLyogdHJhY2Vfc2VxIGZvciBfX3ByaW50X2ZsYWdzKCkgYW5kIF9f cHJpbnRfc3ltYm9saWMoKSBldGMuICovDQogCXN0cnVjdCB0cmFjZV9zZXEJdG1wX3NlcTsNCiAN CisJY3B1bWFza192YXJfdAkJc3RhcnRlZDsNCisNCiAJLyogVGhlIGJlbG93IGlzIHplcm9lZCBv dXQgaW4gcGlwZV9yZWFkICovDQogCXN0cnVjdCB0cmFjZV9zZXEJc2VxOw0KIAlzdHJ1Y3QgdHJh Y2VfZW50cnkJKmVudDsNCkBAIC04Myw3ICs4NSw3IEBAIHN0cnVjdCB0cmFjZV9pdGVyYXRvciB7 DQogCWxvZmZfdAkJCXBvczsNCiAJbG9uZwkJCWlkeDsNCiANCi0JY3B1bWFza192YXJfdAkJc3Rh cnRlZDsNCisJLyogQWxsIG5ldyBmaWVsZCBoZXJlIHdpbGwgYmUgemVyb2VkIG91dCBpbiBwaXBl X3JlYWQgKi8NCiB9Ow0KIA0KIA0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW1fdHlwZXMu aCBiL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaA0KaW5kZXggNWI0MmYxYi4uZGUzYTMyMSAxMDA2 NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaA0KKysrIGIvaW5jbHVkZS9saW51eC9t bV90eXBlcy5oDQpAQCAtMjk3LDYgKzI5Nyw3IEBAIHN0cnVjdCBtbV9zdHJ1Y3Qgew0KIAl2b2lk ICgqdW5tYXBfYXJlYSkgKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIp Ow0KICNlbmRpZg0KIAl1bnNpZ25lZCBsb25nIG1tYXBfYmFzZTsJCS8qIGJhc2Ugb2YgbW1hcCBh cmVhICovDQorCXVuc2lnbmVkIGxvbmcgbW1hcF9sZWdhY3lfYmFzZTsgICAgICAgICAvKiBiYXNl IG9mIG1tYXAgYXJlYSBpbiBib3R0b20tdXAgYWxsb2NhdGlvbnMgKi8NCiAJdW5zaWduZWQgbG9u ZyB0YXNrX3NpemU7CQkvKiBzaXplIG9mIHRhc2sgdm0gc3BhY2UgKi8NCiAJdW5zaWduZWQgbG9u ZyBjYWNoZWRfaG9sZV9zaXplOyAJLyogaWYgbm9uLXplcm8sIHRoZSBsYXJnZXN0IGhvbGUgYmVs b3cgZnJlZV9hcmVhX2NhY2hlICovDQogCXVuc2lnbmVkIGxvbmcgZnJlZV9hcmVhX2NhY2hlOwkJ LyogZmlyc3QgaG9sZSBvZiBzaXplIGNhY2hlZF9ob2xlX3NpemUgb3IgbGFyZ2VyICovDQpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zbGFiLmggYi9pbmNsdWRlL2xpbnV4L3NsYWIuaA0KaW5k ZXggNTczYzgwOS4uYTU5NWRjZSAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvc2xhYi5oDQor KysgYi9pbmNsdWRlL2xpbnV4L3NsYWIuaA0KQEAgLTE5MCw3ICsxOTAsNyBAQCBzaXplX3Qga3Np emUoY29uc3Qgdm9pZCAqKTsNCiAjZW5kaWYNCiANCiAvKioNCi0gKiBrY2FsbG9jIC0gYWxsb2Nh dGUgbWVtb3J5IGZvciBhbiBhcnJheS4gVGhlIG1lbW9yeSBpcyBzZXQgdG8gemVyby4NCisgKiBr bWFsbG9jX2FycmF5IC0gYWxsb2NhdGUgbWVtb3J5IGZvciBhbiBhcnJheS4NCiAgKiBAbjogbnVt YmVyIG9mIGVsZW1lbnRzLg0KICAqIEBzaXplOiBlbGVtZW50IHNpemUuDQogICogQGZsYWdzOiB0 aGUgdHlwZSBvZiBtZW1vcnkgdG8gYWxsb2NhdGUuDQpAQCAtMjQwLDExICsyNDAsMjIgQEAgc2l6 ZV90IGtzaXplKGNvbnN0IHZvaWQgKik7DQogICogZm9yIGdlbmVyYWwgdXNlLCBhbmQgc28gYXJl IG5vdCBkb2N1bWVudGVkIGhlcmUuIEZvciBhIGZ1bGwgbGlzdCBvZg0KICAqIHBvdGVudGlhbCBm bGFncywgYWx3YXlzIHJlZmVyIHRvIGxpbnV4L2dmcC5oLg0KICAqLw0KLXN0YXRpYyBpbmxpbmUg dm9pZCAqa2NhbGxvYyhzaXplX3Qgbiwgc2l6ZV90IHNpemUsIGdmcF90IGZsYWdzKQ0KK3N0YXRp YyBpbmxpbmUgdm9pZCAqa21hbGxvY19hcnJheShzaXplX3Qgbiwgc2l6ZV90IHNpemUsIGdmcF90 IGZsYWdzKQ0KIHsNCiAJaWYgKHNpemUgIT0gMCAmJiBuID4gVUxPTkdfTUFYIC8gc2l6ZSkNCiAJ CXJldHVybiBOVUxMOw0KLQlyZXR1cm4gX19rbWFsbG9jKG4gKiBzaXplLCBmbGFncyB8IF9fR0ZQ X1pFUk8pOw0KKwlyZXR1cm4gX19rbWFsbG9jKG4gKiBzaXplLCBmbGFncyk7DQorfQ0KKw0KKy8q Kg0KKyAqIGtjYWxsb2MgLSBhbGxvY2F0ZSBtZW1vcnkgZm9yIGFuIGFycmF5LiBUaGUgbWVtb3J5 IGlzIHNldCB0byB6ZXJvLg0KKyAqIEBuOiBudW1iZXIgb2YgZWxlbWVudHMuDQorICogQHNpemU6 IGVsZW1lbnQgc2l6ZS4NCisgKiBAZmxhZ3M6IHRoZSB0eXBlIG9mIG1lbW9yeSB0byBhbGxvY2F0 ZSAoc2VlIGttYWxsb2MpLg0KKyAqLw0KK3N0YXRpYyBpbmxpbmUgdm9pZCAqa2NhbGxvYyhzaXpl X3Qgbiwgc2l6ZV90IHNpemUsIGdmcF90IGZsYWdzKQ0KK3sNCisJcmV0dXJuIGttYWxsb2NfYXJy YXkobiwgc2l6ZSwgZmxhZ3MgfCBfX0dGUF9aRVJPKTsNCiB9DQogDQogI2lmICFkZWZpbmVkKENP TkZJR19OVU1BKSAmJiAhZGVmaW5lZChDT05GSUdfU0xPQikNCmRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L3dhaXQuaCBiL2luY2x1ZGUvbGludXgvd2FpdC5oDQppbmRleCBiZWE3YWQ1Li5lMDA3 Zjc2IDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC93YWl0LmgNCisrKyBiL2luY2x1ZGUvbGlu dXgvd2FpdC5oDQpAQCAtNTMwLDYgKzUzMCw2MyBAQCBkbyB7CQkJCQkJCQkJXA0KIAkgPyAwIDog X193YWl0X2V2ZW50X2ludGVycnVwdGlibGVfbG9ja2VkKHdxLCBjb25kaXRpb24sIDEsIDEpKQ0K IA0KIA0KKyNkZWZpbmUgX193YWl0X2V2ZW50X2ludGVycnVwdGlibGVfbG9ja19pcnFfdGltZW91 dCh3cSwgY29uZGl0aW9uLAlcDQorCQkJCQkJICAgIGxvY2ssIHJldCkJCVwNCitkbyB7CQkJCQkJ CQkJXA0KKwlERUZJTkVfV0FJVChfX3dhaXQpOwkJCQkJCVwNCisJCQkJCQkJCQlcDQorCWZvciAo OzspIHsJCQkJCQkJXA0KKwkJcHJlcGFyZV90b193YWl0KCZ3cSwgJl9fd2FpdCwgVEFTS19JTlRF UlJVUFRJQkxFKTsJXA0KKwkJaWYgKGNvbmRpdGlvbikJCQkJCQlcDQorCQkJYnJlYWs7CQkJCQkJ XA0KKwkJaWYgKHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKSB7CQkJCVwNCisJCQlyZXQgPSAtRVJF U1RBUlRTWVM7CQkJCVwNCisJCQlicmVhazsJCQkJCQlcDQorCQl9CQkJCQkJCVwNCisJCXNwaW5f dW5sb2NrX2lycSgmbG9jayk7CQkJCQlcDQorCQlyZXQgPSBzY2hlZHVsZV90aW1lb3V0KHJldCk7 CQkJCVwNCisJCXNwaW5fbG9ja19pcnEoJmxvY2spOwkJCQkJXA0KKwkJaWYgKCFyZXQpCQkJCQkJ XA0KKwkJCWJyZWFrOwkJCQkJCVwNCisJfQkJCQkJCQkJXA0KKwlmaW5pc2hfd2FpdCgmd3EsICZf X3dhaXQpOwkJCQkJXA0KK30gd2hpbGUgKDApDQorDQorLyoqDQorICogd2FpdF9ldmVudF9pbnRl cnJ1cHRpYmxlX2xvY2tfaXJxX3RpbWVvdXQgLSBzbGVlcCB1bnRpbCBhIGNvbmRpdGlvbiBnZXRz IHRydWUgb3IgYSB0aW1lb3V0IGVsYXBzZXMuDQorICoJCVRoZSBjb25kaXRpb24gaXMgY2hlY2tl ZCB1bmRlciB0aGUgbG9jay4gVGhpcyBpcyBleHBlY3RlZA0KKyAqCQl0byBiZSBjYWxsZWQgd2l0 aCB0aGUgbG9jayB0YWtlbi4NCisgKiBAd3E6IHRoZSB3YWl0cXVldWUgdG8gd2FpdCBvbg0KKyAq IEBjb25kaXRpb246IGEgQyBleHByZXNzaW9uIGZvciB0aGUgZXZlbnQgdG8gd2FpdCBmb3INCisg KiBAbG9jazogYSBsb2NrZWQgc3BpbmxvY2tfdCwgd2hpY2ggd2lsbCBiZSByZWxlYXNlZCBiZWZv cmUgc2NoZWR1bGUoKQ0KKyAqCSAgYW5kIHJlYWNxdWlyZWQgYWZ0ZXJ3YXJkcy4NCisgKiBAdGlt ZW91dDogdGltZW91dCwgaW4gamlmZmllcw0KKyAqDQorICogVGhlIHByb2Nlc3MgaXMgcHV0IHRv IHNsZWVwIChUQVNLX0lOVEVSUlVQVElCTEUpIHVudGlsIHRoZQ0KKyAqIEBjb25kaXRpb24gZXZh bHVhdGVzIHRvIHRydWUgb3Igc2lnbmFsIGlzIHJlY2VpdmVkLiBUaGUgQGNvbmRpdGlvbiBpcw0K KyAqIGNoZWNrZWQgZWFjaCB0aW1lIHRoZSB3YWl0cXVldWUgQHdxIGlzIHdva2VuIHVwLg0KKyAq DQorICogd2FrZV91cCgpIGhhcyB0byBiZSBjYWxsZWQgYWZ0ZXIgY2hhbmdpbmcgYW55IHZhcmlh YmxlIHRoYXQgY291bGQNCisgKiBjaGFuZ2UgdGhlIHJlc3VsdCBvZiB0aGUgd2FpdCBjb25kaXRp b24uDQorICoNCisgKiBUaGlzIGlzIHN1cHBvc2VkIHRvIGJlIGNhbGxlZCB3aGlsZSBob2xkaW5n IHRoZSBsb2NrLiBUaGUgbG9jayBpcw0KKyAqIGRyb3BwZWQgYmVmb3JlIGdvaW5nIHRvIHNsZWVw IGFuZCBpcyByZWFjcXVpcmVkIGFmdGVyd2FyZHMuDQorICoNCisgKiBUaGUgZnVuY3Rpb24gcmV0 dXJucyAwIGlmIHRoZSBAdGltZW91dCBlbGFwc2VkLCAtRVJFU1RBUlRTWVMgaWYgaXQNCisgKiB3 YXMgaW50ZXJydXB0ZWQgYnkgYSBzaWduYWwsIGFuZCB0aGUgcmVtYWluaW5nIGppZmZpZXMgb3Ro ZXJ3aXNlDQorICogaWYgdGhlIGNvbmRpdGlvbiBldmFsdWF0ZWQgdG8gdHJ1ZSBiZWZvcmUgdGhl IHRpbWVvdXQgZWxhcHNlZC4NCisgKi8NCisjZGVmaW5lIHdhaXRfZXZlbnRfaW50ZXJydXB0aWJs ZV9sb2NrX2lycV90aW1lb3V0KHdxLCBjb25kaXRpb24sIGxvY2ssCVwNCisJCQkJCQkgIHRpbWVv dXQpCQlcDQorKHsJCQkJCQkJCQlcDQorCWludCBfX3JldCA9IHRpbWVvdXQ7CQkJCQkJXA0KKwkJ CQkJCQkJCVwNCisJaWYgKCEoY29uZGl0aW9uKSkJCQkJCQlcDQorCQlfX3dhaXRfZXZlbnRfaW50 ZXJydXB0aWJsZV9sb2NrX2lycV90aW1lb3V0KAkJXA0KKwkJCQkJd3EsIGNvbmRpdGlvbiwgbG9j aywgX19yZXQpOwlcDQorCV9fcmV0OwkJCQkJCQkJXA0KK30pDQorDQogDQogI2RlZmluZSBfX3dh aXRfZXZlbnRfa2lsbGFibGUod3EsIGNvbmRpdGlvbiwgcmV0KQkJCVwNCiBkbyB7CQkJCQkJCQkJ XA0KZGlmZiAtLWdpdCBhL2tlcm5lbC9ldmVudHMvY29yZS5jIGIva2VybmVsL2V2ZW50cy9jb3Jl LmMNCmluZGV4IDhiZTliNzQ2Li41YmJlNDQzIDEwMDY0NA0KLS0tIGEva2VybmVsL2V2ZW50cy9j b3JlLmMNCisrKyBiL2tlcm5lbC9ldmVudHMvY29yZS5jDQpAQCAtOTAwLDYgKzkwMCwxNSBAQCBs aXN0X2FkZF9ldmVudChzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQsIHN0cnVjdCBwZXJmX2V2ZW50 X2NvbnRleHQgKmN0eCkNCiB9DQogDQogLyoNCisgKiBJbml0aWFsaXplIGV2ZW50IHN0YXRlIGJh c2VkIG9uIHRoZSBwZXJmX2V2ZW50X2F0dHI6OmRpc2FibGVkLg0KKyAqLw0KK3N0YXRpYyBpbmxp bmUgdm9pZCBwZXJmX2V2ZW50X19zdGF0ZV9pbml0KHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkN Cit7DQorCWV2ZW50LT5zdGF0ZSA9IGV2ZW50LT5hdHRyLmRpc2FibGVkID8gUEVSRl9FVkVOVF9T VEFURV9PRkYgOg0KKwkJCQkJICAgICAgUEVSRl9FVkVOVF9TVEFURV9JTkFDVElWRTsNCit9DQor DQorLyoNCiAgKiBDYWxsZWQgYXQgcGVyZl9ldmVudCBjcmVhdGlvbiBhbmQgd2hlbiBldmVudHMg YXJlIGF0dGFjaGVkL2RldGFjaGVkIGZyb20gYQ0KICAqIGdyb3VwLg0KICAqLw0KQEAgLTYwNTAs OCArNjA1OSw3IEBAIHBlcmZfZXZlbnRfYWxsb2Moc3RydWN0IHBlcmZfZXZlbnRfYXR0ciAqYXR0 ciwgaW50IGNwdSwNCiAJZXZlbnQtPm92ZXJmbG93X2hhbmRsZXIJPSBvdmVyZmxvd19oYW5kbGVy Ow0KIAlldmVudC0+b3ZlcmZsb3dfaGFuZGxlcl9jb250ZXh0ID0gY29udGV4dDsNCiANCi0JaWYg KGF0dHItPmRpc2FibGVkKQ0KLQkJZXZlbnQtPnN0YXRlID0gUEVSRl9FVkVOVF9TVEFURV9PRkY7 DQorCXBlcmZfZXZlbnRfX3N0YXRlX2luaXQoZXZlbnQpOw0KIA0KIAlwbXUgPSBOVUxMOw0KIA0K QEAgLTY0MzMsOSArNjQ0MSwxNyBAQCBTWVNDQUxMX0RFRklORTUocGVyZl9ldmVudF9vcGVuLA0K IA0KIAkJbXV0ZXhfbG9jaygmZ2N0eC0+bXV0ZXgpOw0KIAkJcGVyZl9yZW1vdmVfZnJvbV9jb250 ZXh0KGdyb3VwX2xlYWRlcik7DQorDQorCQkvKg0KKwkJICogUmVtb3ZpbmcgZnJvbSB0aGUgY29u dGV4dCBlbmRzIHVwIHdpdGggZGlzYWJsZWQNCisJCSAqIGV2ZW50LiBXaGF0IHdlIHdhbnQgaGVy ZSBpcyBldmVudCBpbiB0aGUgaW5pdGlhbA0KKwkJICogc3RhcnR1cCBzdGF0ZSwgcmVhZHkgdG8g YmUgYWRkIGludG8gbmV3IGNvbnRleHQuDQorCQkgKi8NCisJCXBlcmZfZXZlbnRfX3N0YXRlX2lu aXQoZ3JvdXBfbGVhZGVyKTsNCiAJCWxpc3RfZm9yX2VhY2hfZW50cnkoc2libGluZywgJmdyb3Vw X2xlYWRlci0+c2libGluZ19saXN0LA0KIAkJCQkgICAgZ3JvdXBfZW50cnkpIHsNCiAJCQlwZXJm X3JlbW92ZV9mcm9tX2NvbnRleHQoc2libGluZyk7DQorCQkJcGVyZl9ldmVudF9fc3RhdGVfaW5p dChzaWJsaW5nKTsNCiAJCQlwdXRfY3R4KGdjdHgpOw0KIAkJfQ0KIAkJbXV0ZXhfdW5sb2NrKCZn Y3R4LT5tdXRleCk7DQpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkX2ZhaXIuYyBiL2tlcm5lbC9z Y2hlZF9mYWlyLmMNCmluZGV4IDY2ZTQ1NzYuLjU5NDc0YzUgMTAwNjQ0DQotLS0gYS9rZXJuZWwv c2NoZWRfZmFpci5jDQorKysgYi9rZXJuZWwvc2NoZWRfZmFpci5jDQpAQCAtNTAzMyw3ICs1MDMz LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBnZXRfcnJfaW50ZXJ2YWxfZmFpcihzdHJ1Y3QgcnEg KnJxLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2sNCiAJICogaWRsZSBydW5xdWV1ZToNCiAJICov DQogCWlmIChycS0+Y2ZzLmxvYWQud2VpZ2h0KQ0KLQkJcnJfaW50ZXJ2YWwgPSBOU19UT19KSUZG SUVTKHNjaGVkX3NsaWNlKCZycS0+Y2ZzLCBzZSkpOw0KKwkJcnJfaW50ZXJ2YWwgPSBOU19UT19K SUZGSUVTKHNjaGVkX3NsaWNlKGNmc19ycV9vZihzZSksIHNlKSk7DQogDQogCXJldHVybiBycl9p bnRlcnZhbDsNCiB9DQpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL3RyYWNlLmMgYi9rZXJuZWwv dHJhY2UvdHJhY2UuYw0KaW5kZXggYTU4NGFkOS4uY2UxMDY3ZiAxMDA2NDQNCi0tLSBhL2tlcm5l bC90cmFjZS90cmFjZS5jDQorKysgYi9rZXJuZWwvdHJhY2UvdHJhY2UuYw0KQEAgLTMzNzUsNiAr MzM3NSw3IEBAIHdhaXRhZ2FpbjoNCiAJbWVtc2V0KCZpdGVyLT5zZXEsIDAsDQogCSAgICAgICBz aXplb2Yoc3RydWN0IHRyYWNlX2l0ZXJhdG9yKSAtDQogCSAgICAgICBvZmZzZXRvZihzdHJ1Y3Qg dHJhY2VfaXRlcmF0b3IsIHNlcSkpOw0KKwljcHVtYXNrX2NsZWFyKGl0ZXItPnN0YXJ0ZWQpOw0K IAlpdGVyLT5wb3MgPSAtMTsNCiANCiAJdHJhY2VfZXZlbnRfcmVhZF9sb2NrKCk7DQpkaWZmIC0t Z2l0IGEva2VybmVsL3dvcmtxdWV1ZS5jIGIva2VybmVsL3dvcmtxdWV1ZS5jDQppbmRleCAwYWQy NDIwLi4wYmM5ZmYwIDEwMDY0NA0KLS0tIGEva2VybmVsL3dvcmtxdWV1ZS5jDQorKysgYi9rZXJu ZWwvd29ya3F1ZXVlLmMNCkBAIC0xOTIwLDYgKzE5MjAsMTUgQEAgX19hY3F1aXJlcygmZ2N3cS0+ bG9jaykNCiAJCWR1bXBfc3RhY2soKTsNCiAJfQ0KIA0KKwkvKg0KKwkgKiBUaGUgZm9sbG93aW5n IHByZXZlbnRzIGEga3dvcmtlciBmcm9tIGhvZ2dpbmcgQ1BVIG9uICFQUkVFTVBUDQorCSAqIGtl cm5lbHMsIHdoZXJlIGEgcmVxdWV1ZWluZyB3b3JrIGl0ZW0gd2FpdGluZyBmb3Igc29tZXRoaW5n IHRvDQorCSAqIGhhcHBlbiBjb3VsZCBkZWFkbG9jayB3aXRoIHN0b3BfbWFjaGluZSBhcyBzdWNo IHdvcmsgaXRlbSBjb3VsZA0KKwkgKiBpbmRlZmluaXRlbHkgcmVxdWV1ZSBpdHNlbGYgd2hpbGUg YWxsIG90aGVyIENQVXMgYXJlIHRyYXBwZWQgaW4NCisJICogc3RvcF9tYWNoaW5lLg0KKwkgKi8N CisJY29uZF9yZXNjaGVkKCk7DQorDQogCXNwaW5fbG9ja19pcnEoJmdjd3EtPmxvY2spOw0KIA0K IAkvKiBjbGVhciBjcHUgaW50ZW5zaXZlIHN0YXR1cyAqLw0KZGlmZiAtLWdpdCBhL21tL2JvdW5j ZS5jIGIvbW0vYm91bmNlLmMNCmluZGV4IDRlOWFlNzIuLmY3MWEzYjM0IDEwMDY0NA0KLS0tIGEv bW0vYm91bmNlLmMNCisrKyBiL21tL2JvdW5jZS5jDQpAQCAtMTMyLDcgKzEzMiw3IEBAIHN0YXRp YyB2b2lkIGJvdW5jZV9lbmRfaW8oc3RydWN0IGJpbyAqYmlvLCBtZW1wb29sX3QgKnBvb2wsIGlu dCBlcnIpDQogCS8qDQogCSAqIGZyZWUgdXAgYm91bmNlIGluZGlyZWN0IHBhZ2VzIHVzZWQNCiAJ ICovDQotCV9fYmlvX2Zvcl9lYWNoX3NlZ21lbnQoYnZlYywgYmlvLCBpLCAwKSB7DQorCWJpb19m b3JfZWFjaF9zZWdtZW50X2FsbChidmVjLCBiaW8sIGkpIHsNCiAJCW9yZ192ZWMgPSBiaW9fb3Jp Zy0+YmlfaW9fdmVjICsgaTsNCiAJCWlmIChidmVjLT5idl9wYWdlID09IG9yZ192ZWMtPmJ2X3Bh Z2UpDQogCQkJY29udGludWU7DQpkaWZmIC0tZ2l0IGEvbW0vbm9tbXUuYyBiL21tL25vbW11LmMN CmluZGV4IGYwY2Q3YWIuLjFkYjc5NzEgMTAwNjQ0DQotLS0gYS9tbS9ub21tdS5jDQorKysgYi9t bS9ub21tdS5jDQpAQCAtMTgyNSw2ICsxODI1LDE2IEBAIGludCByZW1hcF9wZm5fcmFuZ2Uoc3Ry dWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkciwNCiB9DQogRVhQT1JU X1NZTUJPTChyZW1hcF9wZm5fcmFuZ2UpOw0KIA0KK2ludCB2bV9pb21hcF9tZW1vcnkoc3RydWN0 IHZtX2FyZWFfc3RydWN0ICp2bWEsIHBoeXNfYWRkcl90IHN0YXJ0LCB1bnNpZ25lZCBsb25nIGxl bikNCit7DQorCXVuc2lnbmVkIGxvbmcgcGZuID0gc3RhcnQgPj4gUEFHRV9TSElGVDsNCisJdW5z aWduZWQgbG9uZyB2bV9sZW4gPSB2bWEtPnZtX2VuZCAtIHZtYS0+dm1fc3RhcnQ7DQorDQorCXBm biArPSB2bWEtPnZtX3Bnb2ZmOw0KKwlyZXR1cm4gaW9fcmVtYXBfcGZuX3JhbmdlKHZtYSwgdm1h LT52bV9zdGFydCwgcGZuLCB2bV9sZW4sIHZtYS0+dm1fcGFnZV9wcm90KTsNCit9DQorRVhQT1JU X1NZTUJPTCh2bV9pb21hcF9tZW1vcnkpOw0KKw0KIGludCByZW1hcF92bWFsbG9jX3JhbmdlKHN0 cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB2b2lkICphZGRyLA0KIAkJCXVuc2lnbmVkIGxvbmcg cGdvZmYpDQogew0KZGlmZiAtLWdpdCBhL21tL3BhZ2VfYWxsb2MuYyBiL21tL3BhZ2VfYWxsb2Mu Yw0KaW5kZXggNWMwMjhlMi4uYjVhZmVhMiAxMDA2NDQNCi0tLSBhL21tL3BhZ2VfYWxsb2MuYw0K KysrIGIvbW0vcGFnZV9hbGxvYy5jDQpAQCAtNTc3Nyw2ICs1Nzc3LDEwIEBAIF9fb2ZmbGluZV9p c29sYXRlZF9wYWdlcyh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBlbmRf cGZuKQ0KIAkJem9uZS0+ZnJlZV9hcmVhW29yZGVyXS5ucl9mcmVlLS07DQogCQlfX21vZF96b25l X3BhZ2Vfc3RhdGUoem9uZSwgTlJfRlJFRV9QQUdFUywNCiAJCQkJICAgICAgLSAoMVVMIDw8IG9y ZGVyKSk7DQorI2lmZGVmIENPTkZJR19ISUdITUVNDQorCQlpZiAoUGFnZUhpZ2hNZW0ocGFnZSkp DQorCQkJdG90YWxoaWdoX3BhZ2VzIC09IDEgPDwgb3JkZXI7DQorI2VuZGlmDQogCQlmb3IgKGkg PSAwOyBpIDwgKDEgPDwgb3JkZXIpOyBpKyspDQogCQkJU2V0UGFnZVJlc2VydmVkKChwYWdlK2kp KTsNCiAJCXBmbiArPSAoMSA8PCBvcmRlcik7DQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvc3lzY3Rs X25ldF9pcHY0LmMgYi9uZXQvaXB2NC9zeXNjdGxfbmV0X2lwdjQuYw0KaW5kZXggNTQ4NTA3Ny4u NzM5YjA3MyAxMDA2NDQNCi0tLSBhL25ldC9pcHY0L3N5c2N0bF9uZXRfaXB2NC5jDQorKysgYi9u ZXQvaXB2NC9zeXNjdGxfbmV0X2lwdjQuYw0KQEAgLTMyLDYgKzMyLDggQEAgc3RhdGljIGludCB0 Y3BfYWR2X3dpbl9zY2FsZV9taW4gPSAtMzE7DQogc3RhdGljIGludCB0Y3BfYWR2X3dpbl9zY2Fs ZV9tYXggPSAzMTsNCiBzdGF0aWMgaW50IGlwX3R0bF9taW4gPSAxOw0KIHN0YXRpYyBpbnQgaXBf dHRsX21heCA9IDI1NTsNCitzdGF0aWMgaW50IHRjcF9zeW5fcmV0cmllc19taW4gPSAxOw0KK3N0 YXRpYyBpbnQgdGNwX3N5bl9yZXRyaWVzX21heCA9IE1BWF9UQ1BfU1lOQ05UOw0KIHN0YXRpYyBp bnQgaXBfcGluZ19ncm91cF9yYW5nZV9taW5bXSA9IHsgMCwgMCB9Ow0KIHN0YXRpYyBpbnQgaXBf cGluZ19ncm91cF9yYW5nZV9tYXhbXSA9IHsgR0lEX1RfTUFYLCBHSURfVF9NQVggfTsNCiANCkBA IC0yMzEsNyArMjMzLDkgQEAgc3RhdGljIHN0cnVjdCBjdGxfdGFibGUgaXB2NF90YWJsZVtdID0g ew0KIAkJLmRhdGEJCT0gJnN5c2N0bF90Y3Bfc3luX3JldHJpZXMsDQogCQkubWF4bGVuCQk9IHNp emVvZihpbnQpLA0KIAkJLm1vZGUJCT0gMDY0NCwNCi0JCS5wcm9jX2hhbmRsZXIJPSBwcm9jX2Rv aW50dmVjDQorCQkucHJvY19oYW5kbGVyCT0gcHJvY19kb2ludHZlY19taW5tYXgsDQorCQkuZXh0 cmExCQk9ICZ0Y3Bfc3luX3JldHJpZXNfbWluLA0KKwkJLmV4dHJhMgkJPSAmdGNwX3N5bl9yZXRy aWVzX21heA0KIAl9LA0KIAl7DQogCQkucHJvY25hbWUJPSAidGNwX3N5bmFja19yZXRyaWVzIiwN CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZtci5jIGIvbmV0L2lwdjYvaXA2bXIuYw0KaW5kZXgg NDQ5YTkxOC4uZjVhZjI1OSAxMDA2NDQNCi0tLSBhL25ldC9pcHY2L2lwNm1yLmMNCisrKyBiL25l dC9pcHY2L2lwNm1yLmMNCkBAIC0yNTcsMTAgKzI1NywxMiBAQCBzdGF0aWMgdm9pZCBfX25ldF9l eGl0IGlwNm1yX3J1bGVzX2V4aXQoc3RydWN0IG5ldCAqbmV0KQ0KIHsNCiAJc3RydWN0IG1yNl90 YWJsZSAqbXJ0LCAqbmV4dDsNCiANCisJcnRubF9sb2NrKCk7DQogCWxpc3RfZm9yX2VhY2hfZW50 cnlfc2FmZShtcnQsIG5leHQsICZuZXQtPmlwdjYubXI2X3RhYmxlcywgbGlzdCkgew0KIAkJbGlz dF9kZWwoJm1ydC0+bGlzdCk7DQogCQlpcDZtcl9mcmVlX3RhYmxlKG1ydCk7DQogCX0NCisJcnRu bF91bmxvY2soKTsNCiAJZmliX3J1bGVzX3VucmVnaXN0ZXIobmV0LT5pcHY2Lm1yNl9ydWxlc19v cHMpOw0KIH0NCiAjZWxzZQ0KQEAgLTI4Nyw3ICsyODksMTAgQEAgc3RhdGljIGludCBfX25ldF9p bml0IGlwNm1yX3J1bGVzX2luaXQoc3RydWN0IG5ldCAqbmV0KQ0KIA0KIHN0YXRpYyB2b2lkIF9f bmV0X2V4aXQgaXA2bXJfcnVsZXNfZXhpdChzdHJ1Y3QgbmV0ICpuZXQpDQogew0KKwlydG5sX2xv Y2soKTsNCiAJaXA2bXJfZnJlZV90YWJsZShuZXQtPmlwdjYubXJ0Nik7DQorCW5ldC0+aXB2Ni5t cnQ2ID0gTlVMTDsNCisJcnRubF91bmxvY2soKTsNCiB9DQogI2VuZGlmDQogDQpkaWZmIC0tZ2l0 IGEvbmV0L2tleS9hZl9rZXkuYyBiL25ldC9rZXkvYWZfa2V5LmMNCmluZGV4IDZmZWZkZmMuLjhk YmRiOGUgMTAwNjQ0DQotLS0gYS9uZXQva2V5L2FmX2tleS5jDQorKysgYi9uZXQva2V5L2FmX2tl eS5jDQpAQCAtMjA3Myw2ICsyMDczLDcgQEAgc3RhdGljIGludCBwZmtleV94ZnJtX3BvbGljeTJt c2coc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHhmcm1fcG9saWN5ICoNCiAJCQlw b2wtPnNhZGJfeF9wb2xpY3lfdHlwZSA9IElQU0VDX1BPTElDWV9OT05FOw0KIAl9DQogCXBvbC0+ c2FkYl94X3BvbGljeV9kaXIgPSBkaXIrMTsNCisJcG9sLT5zYWRiX3hfcG9saWN5X3Jlc2VydmVk ID0gMDsNCiAJcG9sLT5zYWRiX3hfcG9saWN5X2lkID0geHAtPmluZGV4Ow0KIAlwb2wtPnNhZGJf eF9wb2xpY3lfcHJpb3JpdHkgPSB4cC0+cHJpb3JpdHk7DQogDQpAQCAtMjY4Niw2ICsyNjg3LDcg QEAgc3RhdGljIGludCBrZXlfbm90aWZ5X3BvbGljeV9mbHVzaChjb25zdCBzdHJ1Y3Qga21fZXZl bnQgKmMpDQogCWhkci0+c2FkYl9tc2dfcGlkID0gYy0+cGlkOw0KIAloZHItPnNhZGJfbXNnX3Zl cnNpb24gPSBQRl9LRVlfVjI7DQogCWhkci0+c2FkYl9tc2dfZXJybm8gPSAodWludDhfdCkgMDsN CisJaGRyLT5zYWRiX21zZ19zYXR5cGUgPSBTQURCX1NBVFlQRV9VTlNQRUM7DQogCWhkci0+c2Fk Yl9tc2dfbGVuID0gKHNpemVvZihzdHJ1Y3Qgc2FkYl9tc2cpIC8gc2l6ZW9mKHVpbnQ2NF90KSk7 DQogCWhkci0+c2FkYl9tc2dfcmVzZXJ2ZWQgPSAwOw0KIAlwZmtleV9icm9hZGNhc3Qoc2tiX291 dCwgR0ZQX0FUT01JQywgQlJPQURDQVNUX0FMTCwgTlVMTCwgYy0+bmV0KTsNCkBAIC0zMTA4LDcg KzMxMTAsOSBAQCBzdGF0aWMgaW50IHBma2V5X3NlbmRfYWNxdWlyZShzdHJ1Y3QgeGZybV9zdGF0 ZSAqeCwgc3RydWN0IHhmcm1fdG1wbCAqdCwgc3RydWN0DQogCXBvbC0+c2FkYl94X3BvbGljeV9l eHR0eXBlID0gU0FEQl9YX0VYVF9QT0xJQ1k7DQogCXBvbC0+c2FkYl94X3BvbGljeV90eXBlID0g SVBTRUNfUE9MSUNZX0lQU0VDOw0KIAlwb2wtPnNhZGJfeF9wb2xpY3lfZGlyID0gZGlyKzE7DQor CXBvbC0+c2FkYl94X3BvbGljeV9yZXNlcnZlZCA9IDA7DQogCXBvbC0+c2FkYl94X3BvbGljeV9p ZCA9IHhwLT5pbmRleDsNCisJcG9sLT5zYWRiX3hfcG9saWN5X3ByaW9yaXR5ID0geHAtPnByaW9y aXR5Ow0KIA0KIAkvKiBTZXQgc2FkYl9jb21iJ3MuICovDQogCWlmICh4LT5pZC5wcm90byA9PSBJ UFBST1RPX0FIKQ0KQEAgLTM0OTYsNiArMzUwMCw3IEBAIHN0YXRpYyBpbnQgcGZrZXlfc2VuZF9t aWdyYXRlKGNvbnN0IHN0cnVjdCB4ZnJtX3NlbGVjdG9yICpzZWwsIHU4IGRpciwgdTggdHlwZSwN CiAJcG9sLT5zYWRiX3hfcG9saWN5X2V4dHR5cGUgPSBTQURCX1hfRVhUX1BPTElDWTsNCiAJcG9s LT5zYWRiX3hfcG9saWN5X3R5cGUgPSBJUFNFQ19QT0xJQ1lfSVBTRUM7DQogCXBvbC0+c2FkYl94 X3BvbGljeV9kaXIgPSBkaXIgKyAxOw0KKwlwb2wtPnNhZGJfeF9wb2xpY3lfcmVzZXJ2ZWQgPSAw Ow0KIAlwb2wtPnNhZGJfeF9wb2xpY3lfaWQgPSAwOw0KIAlwb2wtPnNhZGJfeF9wb2xpY3lfcHJp b3JpdHkgPSAwOw0KIA0KZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9yeC5jIGIvbmV0L21hYzgw MjExL3J4LmMNCmluZGV4IGNkNmNiZGIuLjdkODgyZmMgMTAwNjQ0DQotLS0gYS9uZXQvbWFjODAy MTEvcnguYw0KKysrIGIvbmV0L21hYzgwMjExL3J4LmMNCkBAIC04MjEsOCArODIxLDE0IEBAIGll ZWU4MDIxMV9yeF9oX2NoZWNrKHN0cnVjdCBpZWVlODAyMTFfcnhfZGF0YSAqcngpDQogCXN0cnVj dCBpZWVlODAyMTFfaGRyICpoZHIgPSAoc3RydWN0IGllZWU4MDIxMV9oZHIgKilyeC0+c2tiLT5k YXRhOw0KIAlzdHJ1Y3QgaWVlZTgwMjExX3J4X3N0YXR1cyAqc3RhdHVzID0gSUVFRTgwMjExX1NL Ql9SWENCKHJ4LT5za2IpOw0KIA0KLQkvKiBEcm9wIGR1cGxpY2F0ZSA4MDIuMTEgcmV0cmFuc21p c3Npb25zIChJRUVFIDgwMi4xMSBDaGFwLiA5LjIuOSkgKi8NCi0JaWYgKHJ4LT5zdGEgJiYgIWlz X211bHRpY2FzdF9ldGhlcl9hZGRyKGhkci0+YWRkcjEpKSB7DQorCS8qDQorCSAqIERyb3AgZHVw bGljYXRlIDgwMi4xMSByZXRyYW5zbWlzc2lvbnMNCisJICogKElFRUUgODAyLjExLTIwMTI6IDku My4yLjEwICJEdXBsaWNhdGUgZGV0ZWN0aW9uIGFuZCByZWNvdmVyeSIpDQorCSAqLw0KKwlpZiAo cngtPnNrYi0+bGVuID49IDI0ICYmIHJ4LT5zdGEgJiYNCisJICAgICFpZWVlODAyMTFfaXNfY3Rs KGhkci0+ZnJhbWVfY29udHJvbCkgJiYNCisJICAgICFpZWVlODAyMTFfaXNfcW9zX251bGxmdW5j KGhkci0+ZnJhbWVfY29udHJvbCkgJiYNCisJICAgICFpc19tdWx0aWNhc3RfZXRoZXJfYWRkciho ZHItPmFkZHIxKSkgew0KIAkJaWYgKHVubGlrZWx5KGllZWU4MDIxMV9oYXNfcmV0cnkoaGRyLT5m cmFtZV9jb250cm9sKSAmJg0KIAkJCSAgICAgcngtPnN0YS0+bGFzdF9zZXFfY3RybFtyeC0+c2Vx bm9faWR4XSA9PQ0KIAkJCSAgICAgaGRyLT5zZXFfY3RybCkpIHsNCmRpZmYgLS1naXQgYS9uZXQv c2NoZWQvc2NoX2F0bS5jIGIvbmV0L3NjaGVkL3NjaF9hdG0uYw0KaW5kZXggZTI1ZTQ5MC4uNmUz OGVmMCAxMDA2NDQNCi0tLSBhL25ldC9zY2hlZC9zY2hfYXRtLmMNCisrKyBiL25ldC9zY2hlZC9z Y2hfYXRtLmMNCkBAIC02MDYsNiArNjA2LDcgQEAgc3RhdGljIGludCBhdG1fdGNfZHVtcF9jbGFz cyhzdHJ1Y3QgUWRpc2MgKnNjaCwgdW5zaWduZWQgbG9uZyBjbCwNCiAJCXN0cnVjdCBzb2NrYWRk cl9hdG1wdmMgcHZjOw0KIAkJaW50IHN0YXRlOw0KIA0KKwkJbWVtc2V0KCZwdmMsIDAsIHNpemVv ZihwdmMpKTsNCiAJCXB2Yy5zYXBfZmFtaWx5ID0gQUZfQVRNUFZDOw0KIAkJcHZjLnNhcF9hZGRy Lml0ZiA9IGZsb3ctPnZjYy0+ZGV2ID8gZmxvdy0+dmNjLT5kZXYtPm51bWJlciA6IC0xOw0KIAkJ cHZjLnNhcF9hZGRyLnZwaSA9IGZsb3ctPnZjYy0+dnBpOw0KZGlmZiAtLWdpdCBhL25ldC9zY2hl ZC9zY2hfY2JxLmMgYi9uZXQvc2NoZWQvc2NoX2NicS5jDQppbmRleCBiN2NkZGI5Li43ZjU5OTQ0 IDEwMDY0NA0KLS0tIGEvbmV0L3NjaGVkL3NjaF9jYnEuYw0KKysrIGIvbmV0L3NjaGVkL3NjaF9j YnEuYw0KQEAgLTE0NjcsNiArMTQ2Nyw3IEBAIHN0YXRpYyBpbnQgY2JxX2R1bXBfd3JyKHN0cnVj dCBza19idWZmICpza2IsIHN0cnVjdCBjYnFfY2xhc3MgKmNsKQ0KIAl1bnNpZ25lZCBjaGFyICpi ID0gc2tiX3RhaWxfcG9pbnRlcihza2IpOw0KIAlzdHJ1Y3QgdGNfY2JxX3dycm9wdCBvcHQ7DQog DQorCW1lbXNldCgmb3B0LCAwLCBzaXplb2Yob3B0KSk7DQogCW9wdC5mbGFncyA9IDA7DQogCW9w dC5hbGxvdCA9IGNsLT5hbGxvdDsNCiAJb3B0LnByaW9yaXR5ID0gY2wtPnByaW9yaXR5ICsgMTsN CmRpZmYgLS1naXQgYS9uZXQvc2N0cC9vdXRxdWV1ZS5jIGIvbmV0L3NjdHAvb3V0cXVldWUuYw0K aW5kZXggOTZlYjE2OC4uM2RkNzIwNyAxMDA2NDQNCi0tLSBhL25ldC9zY3RwL291dHF1ZXVlLmMN CisrKyBiL25ldC9zY3RwL291dHF1ZXVlLmMNCkBAIC0yMDUsNiArMjA1LDggQEAgc3RhdGljIGlu bGluZSBpbnQgc2N0cF9jYWNjX3NraXAoc3RydWN0IHNjdHBfdHJhbnNwb3J0ICpwcmltYXJ5LA0K ICAqLw0KIHZvaWQgc2N0cF9vdXRxX2luaXQoc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2Ms IHN0cnVjdCBzY3RwX291dHEgKnEpDQogew0KKwltZW1zZXQocSwgMCwgc2l6ZW9mKHN0cnVjdCBz Y3RwX291dHEpKTsNCisNCiAJcS0+YXNvYyA9IGFzb2M7DQogCUlOSVRfTElTVF9IRUFEKCZxLT5v dXRfY2h1bmtfbGlzdCk7DQogCUlOSVRfTElTVF9IRUFEKCZxLT5jb250cm9sX2NodW5rX2xpc3Qp Ow0KQEAgLTIxMiwxMyArMjE0LDcgQEAgdm9pZCBzY3RwX291dHFfaW5pdChzdHJ1Y3Qgc2N0cF9h c3NvY2lhdGlvbiAqYXNvYywgc3RydWN0IHNjdHBfb3V0cSAqcSkNCiAJSU5JVF9MSVNUX0hFQUQo JnEtPnNhY2tlZCk7DQogCUlOSVRfTElTVF9IRUFEKCZxLT5hYmFuZG9uZWQpOw0KIA0KLQlxLT5m YXN0X3J0eCA9IDA7DQotCXEtPm91dHN0YW5kaW5nX2J5dGVzID0gMDsNCiAJcS0+ZW1wdHkgPSAx Ow0KLQlxLT5jb3JrICA9IDA7DQotDQotCXEtPm1hbGxvY2VkID0gMDsNCi0JcS0+b3V0X3FsZW4g PSAwOw0KIH0NCiANCiAvKiBGcmVlIHRoZSBvdXRxdWV1ZSBzdHJ1Y3R1cmUgYW5kIGFueSByZWxh dGVkIHBlbmRpbmcgY2h1bmtzLg0KZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMvYXV0aF9nc3MvZ3Nz X2tyYjVfd3JhcC5jIGIvbmV0L3N1bnJwYy9hdXRoX2dzcy9nc3Nfa3JiNV93cmFwLmMNCmluZGV4 IDI3NjNlM2UuLjM4ZjM4OGMgMTAwNjQ0DQotLS0gYS9uZXQvc3VucnBjL2F1dGhfZ3NzL2dzc19r cmI1X3dyYXAuYw0KKysrIGIvbmV0L3N1bnJwYy9hdXRoX2dzcy9nc3Nfa3JiNV93cmFwLmMNCkBA IC04Miw5ICs4Miw5IEBAIGdzc19rcmI1X3JlbW92ZV9wYWRkaW5nKHN0cnVjdCB4ZHJfYnVmICpi dWYsIGludCBibG9ja3NpemUpDQogCQkJCQk+PlBBR0VfQ0FDSEVfU0hJRlQ7DQogCQl1bnNpZ25l ZCBpbnQgb2Zmc2V0ID0gKGJ1Zi0+cGFnZV9iYXNlICsgbGVuIC0gMSkNCiAJCQkJCSYgKFBBR0Vf Q0FDSEVfU0laRSAtIDEpOw0KLQkJcHRyID0ga21hcF9hdG9taWMoYnVmLT5wYWdlc1tsYXN0XSwg S01fVVNFUjApOw0KKwkJcHRyID0ga21hcF9hdG9taWMoYnVmLT5wYWdlc1tsYXN0XSk7DQogCQlw YWQgPSAqKHB0ciArIG9mZnNldCk7DQotCQlrdW5tYXBfYXRvbWljKHB0ciwgS01fVVNFUjApOw0K KwkJa3VubWFwX2F0b21pYyhwdHIpOw0KIAkJZ290byBvdXQ7DQogCX0gZWxzZQ0KIAkJbGVuIC09 IGJ1Zi0+cGFnZV9sZW47DQpkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy9zb2NrbGliLmMgYi9uZXQv c3VucnBjL3NvY2tsaWIuYw0KaW5kZXggMTQ1ZTY3ODQuLjBhNjQ4YzUgMTAwNjQ0DQotLS0gYS9u ZXQvc3VucnBjL3NvY2tsaWIuYw0KKysrIGIvbmV0L3N1bnJwYy9zb2NrbGliLmMNCkBAIC0xMTQs NyArMTE0LDcgQEAgc3NpemVfdCB4ZHJfcGFydGlhbF9jb3B5X2Zyb21fc2tiKHN0cnVjdCB4ZHJf YnVmICp4ZHIsIHVuc2lnbmVkIGludCBiYXNlLCBzdHJ1Y3QNCiAJCX0NCiANCiAJCWxlbiA9IFBB R0VfQ0FDSEVfU0laRTsNCi0JCWthZGRyID0ga21hcF9hdG9taWMoKnBwYWdlLCBLTV9TS0JfU1VO UlBDX0RBVEEpOw0KKwkJa2FkZHIgPSBrbWFwX2F0b21pYygqcHBhZ2UpOw0KIAkJaWYgKGJhc2Up IHsNCiAJCQlsZW4gLT0gYmFzZTsNCiAJCQlpZiAocGdsZW4gPCBsZW4pDQpAQCAtMTI3LDcgKzEy Nyw3IEBAIHNzaXplX3QgeGRyX3BhcnRpYWxfY29weV9mcm9tX3NrYihzdHJ1Y3QgeGRyX2J1ZiAq eGRyLCB1bnNpZ25lZCBpbnQgYmFzZSwgc3RydWN0DQogCQkJcmV0ID0gY29weV9hY3RvcihkZXNj LCBrYWRkciwgbGVuKTsNCiAJCX0NCiAJCWZsdXNoX2RjYWNoZV9wYWdlKCpwcGFnZSk7DQotCQlr dW5tYXBfYXRvbWljKGthZGRyLCBLTV9TS0JfU1VOUlBDX0RBVEEpOw0KKwkJa3VubWFwX2F0b21p YyhrYWRkcik7DQogCQljb3BpZWQgKz0gcmV0Ow0KIAkJaWYgKHJldCAhPSBsZW4gfHwgIWRlc2Mt PmNvdW50KQ0KIAkJCWdvdG8gb3V0Ow0KZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMveGRyLmMgYi9u ZXQvc3VucnBjL3hkci5jDQppbmRleCA1OTNmNGM2Li42OTk3Y2RkIDEwMDY0NA0KLS0tIGEvbmV0 L3N1bnJwYy94ZHIuYw0KKysrIGIvbmV0L3N1bnJwYy94ZHIuYw0KQEAgLTEyMiw5ICsxMjIsOSBA QCB4ZHJfdGVybWluYXRlX3N0cmluZyhzdHJ1Y3QgeGRyX2J1ZiAqYnVmLCBjb25zdCB1MzIgbGVu KQ0KIHsNCiAJY2hhciAqa2FkZHI7DQogDQotCWthZGRyID0ga21hcF9hdG9taWMoYnVmLT5wYWdl c1swXSwgS01fVVNFUjApOw0KKwlrYWRkciA9IGttYXBfYXRvbWljKGJ1Zi0+cGFnZXNbMF0pOw0K IAlrYWRkcltidWYtPnBhZ2VfYmFzZSArIGxlbl0gPSAnXDAnOw0KLQlrdW5tYXBfYXRvbWljKGth ZGRyLCBLTV9VU0VSMCk7DQorCWt1bm1hcF9hdG9taWMoa2FkZHIpOw0KIH0NCiBFWFBPUlRfU1lN Qk9MX0dQTCh4ZHJfdGVybWluYXRlX3N0cmluZyk7DQogDQpAQCAtMjMyLDEyICsyMzIsMTUgQEAg X3NoaWZ0X2RhdGFfcmlnaHRfcGFnZXMoc3RydWN0IHBhZ2UgKipwYWdlcywgc2l6ZV90IHBndG9f YmFzZSwNCiAJCXBndG9fYmFzZSAtPSBjb3B5Ow0KIAkJcGdmcm9tX2Jhc2UgLT0gY29weTsNCiAN Ci0JCXZ0byA9IGttYXBfYXRvbWljKCpwZ3RvLCBLTV9VU0VSMCk7DQotCQl2ZnJvbSA9IGttYXBf YXRvbWljKCpwZ2Zyb20sIEtNX1VTRVIxKTsNCi0JCW1lbW1vdmUodnRvICsgcGd0b19iYXNlLCB2 ZnJvbSArIHBnZnJvbV9iYXNlLCBjb3B5KTsNCisJCXZ0byA9IGttYXBfYXRvbWljKCpwZ3RvKTsN CisJCWlmICgqcGd0byAhPSAqcGdmcm9tKSB7DQorCQkJdmZyb20gPSBrbWFwX2F0b21pYygqcGdm cm9tKTsNCisJCQltZW1jcHkodnRvICsgcGd0b19iYXNlLCB2ZnJvbSArIHBnZnJvbV9iYXNlLCBj b3B5KTsNCisJCQlrdW5tYXBfYXRvbWljKHZmcm9tKTsNCisJCX0gZWxzZQ0KKwkJCW1lbW1vdmUo dnRvICsgcGd0b19iYXNlLCB2dG8gKyBwZ2Zyb21fYmFzZSwgY29weSk7DQogCQlmbHVzaF9kY2Fj aGVfcGFnZSgqcGd0byk7DQotCQlrdW5tYXBfYXRvbWljKHZmcm9tLCBLTV9VU0VSMSk7DQotCQlr dW5tYXBfYXRvbWljKHZ0bywgS01fVVNFUjApOw0KKwkJa3VubWFwX2F0b21pYyh2dG8pOw0KIA0K IAl9IHdoaWxlICgobGVuIC09IGNvcHkpICE9IDApOw0KIH0NCkBAIC0yNjcsOSArMjcwLDkgQEAg X2NvcHlfdG9fcGFnZXMoc3RydWN0IHBhZ2UgKipwYWdlcywgc2l6ZV90IHBnYmFzZSwgY29uc3Qg Y2hhciAqcCwgc2l6ZV90IGxlbikNCiAJCWlmIChjb3B5ID4gbGVuKQ0KIAkJCWNvcHkgPSBsZW47 DQogDQotCQl2dG8gPSBrbWFwX2F0b21pYygqcGd0bywgS01fVVNFUjApOw0KKwkJdnRvID0ga21h cF9hdG9taWMoKnBndG8pOw0KIAkJbWVtY3B5KHZ0byArIHBnYmFzZSwgcCwgY29weSk7DQotCQlr dW5tYXBfYXRvbWljKHZ0bywgS01fVVNFUjApOw0KKwkJa3VubWFwX2F0b21pYyh2dG8pOw0KIA0K IAkJbGVuIC09IGNvcHk7DQogCQlpZiAobGVuID09IDApDQpAQCAtMzExLDkgKzMxNCw5IEBAIF9j b3B5X2Zyb21fcGFnZXMoY2hhciAqcCwgc3RydWN0IHBhZ2UgKipwYWdlcywgc2l6ZV90IHBnYmFz ZSwgc2l6ZV90IGxlbikNCiAJCWlmIChjb3B5ID4gbGVuKQ0KIAkJCWNvcHkgPSBsZW47DQogDQot CQl2ZnJvbSA9IGttYXBfYXRvbWljKCpwZ2Zyb20sIEtNX1VTRVIwKTsNCisJCXZmcm9tID0ga21h cF9hdG9taWMoKnBnZnJvbSk7DQogCQltZW1jcHkocCwgdmZyb20gKyBwZ2Jhc2UsIGNvcHkpOw0K LQkJa3VubWFwX2F0b21pYyh2ZnJvbSwgS01fVVNFUjApOw0KKwkJa3VubWFwX2F0b21pYyh2ZnJv bSk7DQogDQogCQlwZ2Jhc2UgKz0gY29weTsNCiAJCWlmIChwZ2Jhc2UgPT0gUEFHRV9DQUNIRV9T SVpFKSB7DQpkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy94cHJ0cmRtYS9ycGNfcmRtYS5jIGIvbmV0 L3N1bnJwYy94cHJ0cmRtYS9ycGNfcmRtYS5jDQppbmRleCA1NTRkMDgxLi4xNzc2ZTU3IDEwMDY0 NA0KLS0tIGEvbmV0L3N1bnJwYy94cHJ0cmRtYS9ycGNfcmRtYS5jDQorKysgYi9uZXQvc3VucnBj L3hwcnRyZG1hL3JwY19yZG1hLmMNCkBAIC0zMzgsOSArMzM4LDkgQEAgcnBjcmRtYV9pbmxpbmVf cHVsbHVwKHN0cnVjdCBycGNfcnFzdCAqcnFzdCwgaW50IHBhZCkNCiAJCQljdXJsZW4gPSBjb3B5 X2xlbjsNCiAJCWRwcmludGsoIlJQQzogICAgICAgJXM6IHBhZ2UgJWQgZGVzdHAgMHglcCBsZW4g JWQgY3VybGVuICVkXG4iLA0KIAkJCV9fZnVuY19fLCBpLCBkZXN0cCwgY29weV9sZW4sIGN1cmxl bik7DQotCQlzcmNwID0ga21hcF9hdG9taWMocHBhZ2VzW2ldLCBLTV9TS0JfU1VOUlBDX0RBVEEp Ow0KKwkJc3JjcCA9IGttYXBfYXRvbWljKHBwYWdlc1tpXSk7DQogCQltZW1jcHkoZGVzdHAsIHNy Y3ArcGFnZV9iYXNlLCBjdXJsZW4pOw0KLQkJa3VubWFwX2F0b21pYyhzcmNwLCBLTV9TS0JfU1VO UlBDX0RBVEEpOw0KKwkJa3VubWFwX2F0b21pYyhzcmNwKTsNCiAJCXJxc3QtPnJxX3N2ZWNbMF0u aW92X2xlbiArPSBjdXJsZW47DQogCQlkZXN0cCArPSBjdXJsZW47DQogCQljb3B5X2xlbiAtPSBj dXJsZW47DQpAQCAtNjM5LDEwICs2MzksMTAgQEAgcnBjcmRtYV9pbmxpbmVfZml4dXAoc3RydWN0 IHJwY19ycXN0ICpycXN0LCBjaGFyICpzcmNwLCBpbnQgY29weV9sZW4sIGludCBwYWQpDQogCQkJ ZHByaW50aygiUlBDOiAgICAgICAlczogcGFnZSAlZCINCiAJCQkJIiBzcmNwIDB4JXAgbGVuICVk IGN1cmxlbiAlZFxuIiwNCiAJCQkJX19mdW5jX18sIGksIHNyY3AsIGNvcHlfbGVuLCBjdXJsZW4p Ow0KLQkJCWRlc3RwID0ga21hcF9hdG9taWMocHBhZ2VzW2ldLCBLTV9TS0JfU1VOUlBDX0RBVEEp Ow0KKwkJCWRlc3RwID0ga21hcF9hdG9taWMocHBhZ2VzW2ldKTsNCiAJCQltZW1jcHkoZGVzdHAg KyBwYWdlX2Jhc2UsIHNyY3AsIGN1cmxlbik7DQogCQkJZmx1c2hfZGNhY2hlX3BhZ2UocHBhZ2Vz W2ldKTsNCi0JCQlrdW5tYXBfYXRvbWljKGRlc3RwLCBLTV9TS0JfU1VOUlBDX0RBVEEpOw0KKwkJ CWt1bm1hcF9hdG9taWMoZGVzdHApOw0KIAkJCXNyY3AgKz0gY3VybGVuOw0KIAkJCWNvcHlfbGVu IC09IGN1cmxlbjsNCiAJCQlpZiAoY29weV9sZW4gPT0gMCkNCmRpZmYgLS1naXQgYS9uZXQvd2ly ZWxlc3Mvbmw4MDIxMS5jIGIvbmV0L3dpcmVsZXNzL25sODAyMTEuYw0KaW5kZXggYzA2YzM2NS4u NmQ0ZDI2MyAxMDA2NDQNCi0tLSBhL25ldC93aXJlbGVzcy9ubDgwMjExLmMNCisrKyBiL25ldC93 aXJlbGVzcy9ubDgwMjExLmMNCkBAIC00ODI2LDEyICs0ODI2LDE0IEBAIEVYUE9SVF9TWU1CT0wo Y2ZnODAyMTFfdGVzdG1vZGVfYWxsb2NfZXZlbnRfc2tiKTsNCiANCiB2b2lkIGNmZzgwMjExX3Rl c3Rtb2RlX2V2ZW50KHN0cnVjdCBza19idWZmICpza2IsIGdmcF90IGdmcCkNCiB7DQorCXN0cnVj dCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldiA9ICgodm9pZCAqKilza2ItPmNiKVsw XTsNCiAJdm9pZCAqaGRyID0gKCh2b2lkICoqKXNrYi0+Y2IpWzFdOw0KIAlzdHJ1Y3QgbmxhdHRy ICpkYXRhID0gKCh2b2lkICoqKXNrYi0+Y2IpWzJdOw0KIA0KIAlubGFfbmVzdF9lbmQoc2tiLCBk YXRhKTsNCiAJZ2VubG1zZ19lbmQoc2tiLCBoZHIpOw0KLQlnZW5sbXNnX211bHRpY2FzdChza2Is IDAsIG5sODAyMTFfdGVzdG1vZGVfbWNncnAuaWQsIGdmcCk7DQorCWdlbmxtc2dfbXVsdGljYXN0 X25ldG5zKHdpcGh5X25ldCgmcmRldi0+d2lwaHkpLCBza2IsIDAsDQorCQkJCW5sODAyMTFfdGVz dG1vZGVfbWNncnAuaWQsIGdmcCk7DQogfQ0KIEVYUE9SVF9TWU1CT0woY2ZnODAyMTFfdGVzdG1v ZGVfZXZlbnQpOw0KICNlbmRpZg0KQEAgLTcyODIsNyArNzI4NCw4IEBAIHZvaWQgbmw4MDIxMV9z ZW5kX21nbXRfdHhfc3RhdHVzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRl diwNCiAJCXJldHVybjsNCiAJfQ0KIA0KLQlnZW5sbXNnX211bHRpY2FzdChtc2csIDAsIG5sODAy MTFfbWxtZV9tY2dycC5pZCwgZ2ZwKTsNCisJZ2VubG1zZ19tdWx0aWNhc3RfbmV0bnMod2lwaHlf bmV0KCZyZGV2LT53aXBoeSksIG1zZywgMCwNCisJCQkJbmw4MDIxMV9tbG1lX21jZ3JwLmlkLCBn ZnApOw0KIAlyZXR1cm47DQogDQogIG5sYV9wdXRfZmFpbHVyZToNCmRpZmYgLS1naXQgYS9zb3Vu ZC9pMmMvb3RoZXIvYWs0eHh4LWFkZGEuYyBiL3NvdW5kL2kyYy9vdGhlci9hazR4eHgtYWRkYS5j DQppbmRleCBjZWY4MTNkLi5lZDcyNmQxIDEwMDY0NA0KLS0tIGEvc291bmQvaTJjL290aGVyL2Fr NHh4eC1hZGRhLmMNCisrKyBiL3NvdW5kL2kyYy9vdGhlci9hazR4eHgtYWRkYS5jDQpAQCAtNTcx LDcgKzU3MSw3IEBAIHN0YXRpYyBpbnQgYWs0eHh4X2NhcHR1cmVfc291cmNlX2luZm8oc3RydWN0 IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsDQogCXN0cnVjdCBzbmRfYWttNHh4eCAqYWsgPSBzbmRf a2NvbnRyb2xfY2hpcChrY29udHJvbCk7DQogCWludCBtaXhlcl9jaCA9IEFLX0dFVF9TSElGVChr Y29udHJvbC0+cHJpdmF0ZV92YWx1ZSk7DQogCWNvbnN0IGNoYXIgKippbnB1dF9uYW1lczsNCi0J aW50ICBudW1fbmFtZXMsIGlkeDsNCisJdW5zaWduZWQgaW50IG51bV9uYW1lcywgaWR4Ow0KIA0K IAludW1fbmFtZXMgPSBhazR4eHhfY2FwdHVyZV9udW1faW5wdXRzKGFrLCBtaXhlcl9jaCk7DQog CWlmICghbnVtX25hbWVzKQ0KZGlmZiAtLWdpdCBhL3NvdW5kL2lzYS9vcHRpOXh4L29wdGk5Mngt YWQxODQ4LmMgYi9zb3VuZC9pc2Evb3B0aTl4eC9vcHRpOTJ4LWFkMTg0OC5jDQppbmRleCA5Nzg3 MWJlLi5jYmE4NGVmIDEwMDY0NA0KLS0tIGEvc291bmQvaXNhL29wdGk5eHgvb3B0aTkyeC1hZDE4 NDguYw0KKysrIGIvc291bmQvaXNhL29wdGk5eHgvb3B0aTkyeC1hZDE4NDguYw0KQEAgLTE3Mywx MSArMTczLDcgQEAgTU9EVUxFX0RFVklDRV9UQUJMRShwbnBfY2FyZCwgc25kX29wdGk5eHhfcG5w aWRzKTsNCiANCiAjZW5kaWYJLyogQ09ORklHX1BOUCAqLw0KIA0KLSNpZmRlZiBPUFRpOTNYDQot I2RlZmluZSBERVZfTkFNRSAib3B0aTkzeCINCi0jZWxzZQ0KLSNkZWZpbmUgREVWX05BTUUgIm9w dGk5MngiDQotI2VuZGlmDQorI2RlZmluZSBERVZfTkFNRSBLQlVJTERfTU9ETkFNRQ0KIA0KIHN0 YXRpYyBjaGFyICogc25kX29wdGk5eHhfbmFtZXNbXSA9IHsNCiAJInVua25vd24iLA0KQEAgLTEx MjYsNyArMTEyMiw3IEBAIHN0YXRpYyB2b2lkIF9fZGV2ZXhpdCBzbmRfb3B0aTl4eF9wbnBfcmVt b3ZlKHN0cnVjdCBwbnBfY2FyZF9saW5rICogcGNhcmQpDQogDQogc3RhdGljIHN0cnVjdCBwbnBf Y2FyZF9kcml2ZXIgb3B0aTl4eF9wbnBjX2RyaXZlciA9IHsNCiAJLmZsYWdzCQk9IFBOUF9EUklW RVJfUkVTX0RJU0FCTEUsDQotCS5uYW1lCQk9ICJvcHRpOXh4IiwNCisJLm5hbWUJCT0gREVWX05B TUUsDQogCS5pZF90YWJsZQk9IHNuZF9vcHRpOXh4X3BucGlkcywNCiAJLnByb2JlCQk9IHNuZF9v cHRpOXh4X3BucF9wcm9iZSwNCiAJLnJlbW92ZQkJPSBfX2RldmV4aXRfcChzbmRfb3B0aTl4eF9w bnBfcmVtb3ZlKSwNCmRpZmYgLS1naXQgYS9zb3VuZC9vc3MvS2NvbmZpZyBiL3NvdW5kL29zcy9L Y29uZmlnDQppbmRleCA2YzllOGU4Li4xZmMyOGY1IDEwMDY0NA0KLS0tIGEvc291bmQvb3NzL0tj b25maWcNCisrKyBiL3NvdW5kL29zcy9LY29uZmlnDQpAQCAtMjUwLDYgKzI1MCw3IEBAIGNvbmZp ZyBNU05EX0ZJRk9TSVpFDQogbWVudWNvbmZpZyBTT1VORF9PU1MNCiAJdHJpc3RhdGUgIk9TUyBz b3VuZCBtb2R1bGVzIg0KIAlkZXBlbmRzIG9uIElTQV9ETUFfQVBJICYmIFZJUlRfVE9fQlVTDQor CWRlcGVuZHMgb24gIUdFTkVSSUNfSVNBX0RNQV9TVVBQT1JUX0JST0tFTg0KIAloZWxwDQogCSAg T1NTIGlzIHRoZSBPcGVuIFNvdW5kIFN5c3RlbSBzdWl0ZSBvZiBzb3VuZCBjYXJkIGRyaXZlcnMu ICBUaGV5IG1ha2UNCiAJICBzb3VuZCBwcm9ncmFtbWluZyBlYXNpZXIgc2luY2UgdGhleSBwcm92 aWRlIGEgY29tbW9uIEFQSS4gIFNheSBZIG9yDQpkaWZmIC0tZ2l0IGEvc291bmQvdXNiLzZmaXJl L2NvbW0uYyBiL3NvdW5kL3VzYi82ZmlyZS9jb21tLmMNCmluZGV4IGM5OTRkYWEuLmFmNmVjOGQg MTAwNjQ0DQotLS0gYS9zb3VuZC91c2IvNmZpcmUvY29tbS5jDQorKysgYi9zb3VuZC91c2IvNmZp cmUvY29tbS5jDQpAQCAtMTExLDE5ICsxMTEsMzcgQEAgc3RhdGljIGludCB1c2I2ZmlyZV9jb21t X3NlbmRfYnVmZmVyKHU4ICpidWZmZXIsIHN0cnVjdCB1c2JfZGV2aWNlICpkZXYpDQogc3RhdGlj IGludCB1c2I2ZmlyZV9jb21tX3dyaXRlOChzdHJ1Y3QgY29tbV9ydW50aW1lICpydCwgdTggcmVx dWVzdCwNCiAJCXU4IHJlZywgdTggdmFsdWUpDQogew0KLQl1OCBidWZmZXJbMTNdOyAvKiAxMzog bWF4aW11bSBsZW5ndGggb2YgbWVzc2FnZSAqLw0KKwl1OCAqYnVmZmVyOw0KKwlpbnQgcmV0Ow0K Kw0KKwkvKiAxMzogbWF4aW11bSBsZW5ndGggb2YgbWVzc2FnZSAqLw0KKwlidWZmZXIgPSBrbWFs bG9jKDEzLCBHRlBfS0VSTkVMKTsNCisJaWYgKCFidWZmZXIpDQorCQlyZXR1cm4gLUVOT01FTTsN CiANCiAJdXNiNmZpcmVfY29tbV9pbml0X2J1ZmZlcihidWZmZXIsIDB4MDAsIHJlcXVlc3QsIHJl ZywgdmFsdWUsIDB4MDApOw0KLQlyZXR1cm4gdXNiNmZpcmVfY29tbV9zZW5kX2J1ZmZlcihidWZm ZXIsIHJ0LT5jaGlwLT5kZXYpOw0KKwlyZXQgPSB1c2I2ZmlyZV9jb21tX3NlbmRfYnVmZmVyKGJ1 ZmZlciwgcnQtPmNoaXAtPmRldik7DQorDQorCWtmcmVlKGJ1ZmZlcik7DQorCXJldHVybiByZXQ7 DQogfQ0KIA0KIHN0YXRpYyBpbnQgdXNiNmZpcmVfY29tbV93cml0ZTE2KHN0cnVjdCBjb21tX3J1 bnRpbWUgKnJ0LCB1OCByZXF1ZXN0LA0KIAkJdTggcmVnLCB1OCB2bCwgdTggdmgpDQogew0KLQl1 OCBidWZmZXJbMTNdOyAvKiAxMzogbWF4aW11bSBsZW5ndGggb2YgbWVzc2FnZSAqLw0KKwl1OCAq YnVmZmVyOw0KKwlpbnQgcmV0Ow0KKw0KKwkvKiAxMzogbWF4aW11bSBsZW5ndGggb2YgbWVzc2Fn ZSAqLw0KKwlidWZmZXIgPSBrbWFsbG9jKDEzLCBHRlBfS0VSTkVMKTsNCisJaWYgKCFidWZmZXIp DQorCQlyZXR1cm4gLUVOT01FTTsNCiANCiAJdXNiNmZpcmVfY29tbV9pbml0X2J1ZmZlcihidWZm ZXIsIDB4MDAsIHJlcXVlc3QsIHJlZywgdmwsIHZoKTsNCi0JcmV0dXJuIHVzYjZmaXJlX2NvbW1f c2VuZF9idWZmZXIoYnVmZmVyLCBydC0+Y2hpcC0+ZGV2KTsNCisJcmV0ID0gdXNiNmZpcmVfY29t bV9zZW5kX2J1ZmZlcihidWZmZXIsIHJ0LT5jaGlwLT5kZXYpOw0KKw0KKwlrZnJlZShidWZmZXIp Ow0KKwlyZXR1cm4gcmV0Ow0KIH0NCiANCiBpbnQgX19kZXZpbml0IHVzYjZmaXJlX2NvbW1faW5p dChzdHJ1Y3Qgc2ZpcmVfY2hpcCAqY2hpcCkNCkBAIC0xMzYsNiArMTU0LDEyIEBAIGludCBfX2Rl dmluaXQgdXNiNmZpcmVfY29tbV9pbml0KHN0cnVjdCBzZmlyZV9jaGlwICpjaGlwKQ0KIAlpZiAo IXJ0KQ0KIAkJcmV0dXJuIC1FTk9NRU07DQogDQorCXJ0LT5yZWNlaXZlcl9idWZmZXIgPSBremFs bG9jKENPTU1fUkVDRUlWRVJfQlVGU0laRSwgR0ZQX0tFUk5FTCk7DQorCWlmICghcnQtPnJlY2Vp dmVyX2J1ZmZlcikgew0KKwkJa2ZyZWUocnQpOw0KKwkJcmV0dXJuIC1FTk9NRU07DQorCX0NCisN CiAJcnQtPnNlcmlhbCA9IDE7DQogCXJ0LT5jaGlwID0gY2hpcDsNCiAJdXNiX2luaXRfdXJiKHVy Yik7DQpAQCAtMTUzLDYgKzE3Nyw3IEBAIGludCBfX2RldmluaXQgdXNiNmZpcmVfY29tbV9pbml0 KHN0cnVjdCBzZmlyZV9jaGlwICpjaGlwKQ0KIAl1cmItPmludGVydmFsID0gMTsNCiAJcmV0ID0g dXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfS0VSTkVMKTsNCiAJaWYgKHJldCA8IDApIHsNCisJCWtm cmVlKHJ0LT5yZWNlaXZlcl9idWZmZXIpOw0KIAkJa2ZyZWUocnQpOw0KIAkJc25kX3ByaW50ayhL RVJOX0VSUiBQUkVGSVggImNhbm5vdCBjcmVhdGUgY29tbSBkYXRhIHJlY2VpdmVyLiIpOw0KIAkJ cmV0dXJuIHJldDsNCkBAIC0xNzEsNiArMTk2LDkgQEAgdm9pZCB1c2I2ZmlyZV9jb21tX2Fib3J0 KHN0cnVjdCBzZmlyZV9jaGlwICpjaGlwKQ0KIA0KIHZvaWQgdXNiNmZpcmVfY29tbV9kZXN0cm95 KHN0cnVjdCBzZmlyZV9jaGlwICpjaGlwKQ0KIHsNCi0Ja2ZyZWUoY2hpcC0+Y29tbSk7DQorCXN0 cnVjdCBjb21tX3J1bnRpbWUgKnJ0ID0gY2hpcC0+Y29tbTsNCisNCisJa2ZyZWUocnQtPnJlY2Vp dmVyX2J1ZmZlcik7DQorCWtmcmVlKHJ0KTsNCiAJY2hpcC0+Y29tbSA9IE5VTEw7DQogfQ0KZGlm ZiAtLWdpdCBhL3NvdW5kL3VzYi82ZmlyZS9jb21tLmggYi9zb3VuZC91c2IvNmZpcmUvY29tbS5o DQppbmRleCBlZGM1ZGM4Li4xOWUyZjkyIDEwMDY0NA0KLS0tIGEvc291bmQvdXNiLzZmaXJlL2Nv bW0uaA0KKysrIGIvc291bmQvdXNiLzZmaXJlL2NvbW0uaA0KQEAgLTI1LDcgKzI1LDcgQEAgc3Ry dWN0IGNvbW1fcnVudGltZSB7DQogCXN0cnVjdCBzZmlyZV9jaGlwICpjaGlwOw0KIA0KIAlzdHJ1 Y3QgdXJiIHJlY2VpdmVyOw0KLQl1OCByZWNlaXZlcl9idWZmZXJbQ09NTV9SRUNFSVZFUl9CVUZT SVpFXTsNCisJdTggKnJlY2VpdmVyX2J1ZmZlcjsNCiANCiAJdTggc2VyaWFsOyAvKiB1cmIgc2Vy aWFsICovDQogDQpkaWZmIC0tZ2l0IGEvc291bmQvdXNiLzZmaXJlL21pZGkuYyBiL3NvdW5kL3Vz Yi82ZmlyZS9taWRpLmMNCmluZGV4IDEzZjQ1MDkuLjgyODNjNWQgMTAwNjQ0DQotLS0gYS9zb3Vu ZC91c2IvNmZpcmUvbWlkaS5jDQorKysgYi9zb3VuZC91c2IvNmZpcmUvbWlkaS5jDQpAQCAtMjAs NiArMjAsMTAgQEANCiAjaW5jbHVkZSAiY2hpcC5oIg0KICNpbmNsdWRlICJjb21tLmgiDQogDQor ZW51bSB7DQorCU1JRElfQlVGU0laRSA9IDY0DQorfTsNCisNCiBzdGF0aWMgdm9pZCB1c2I2Zmly ZV9taWRpX291dF9oYW5kbGVyKHN0cnVjdCB1cmIgKnVyYikNCiB7DQogCXN0cnVjdCBtaWRpX3J1 bnRpbWUgKnJ0ID0gdXJiLT5jb250ZXh0Ow0KQEAgLTE1Nyw2ICsxNjEsMTIgQEAgaW50IF9fZGV2 aW5pdCB1c2I2ZmlyZV9taWRpX2luaXQoc3RydWN0IHNmaXJlX2NoaXAgKmNoaXApDQogCWlmICgh cnQpDQogCQlyZXR1cm4gLUVOT01FTTsNCiANCisJcnQtPm91dF9idWZmZXIgPSBremFsbG9jKE1J RElfQlVGU0laRSwgR0ZQX0tFUk5FTCk7DQorCWlmICghcnQtPm91dF9idWZmZXIpIHsNCisJCWtm cmVlKHJ0KTsNCisJCXJldHVybiAtRU5PTUVNOw0KKwl9DQorDQogCXJ0LT5jaGlwID0gY2hpcDsN CiAJcnQtPmluX3JlY2VpdmVkID0gdXNiNmZpcmVfbWlkaV9pbl9yZWNlaXZlZDsNCiAJcnQtPm91 dF9idWZmZXJbMF0gPSAweDgwOyAvKiAnc2VuZCBtaWRpJyBjb21tYW5kICovDQpAQCAtMTcwLDYg KzE4MCw3IEBAIGludCBfX2RldmluaXQgdXNiNmZpcmVfbWlkaV9pbml0KHN0cnVjdCBzZmlyZV9j aGlwICpjaGlwKQ0KIA0KIAlyZXQgPSBzbmRfcmF3bWlkaV9uZXcoY2hpcC0+Y2FyZCwgIjZGaXJl VVNCIiwgMCwgMSwgMSwgJnJ0LT5pbnN0YW5jZSk7DQogCWlmIChyZXQgPCAwKSB7DQorCQlrZnJl ZShydC0+b3V0X2J1ZmZlcik7DQogCQlrZnJlZShydCk7DQogCQlzbmRfcHJpbnRrKEtFUk5fRVJS IFBSRUZJWCAidW5hYmxlIHRvIGNyZWF0ZSBtaWRpLlxuIik7DQogCQlyZXR1cm4gcmV0Ow0KQEAg LTE5OCw2ICsyMDksOSBAQCB2b2lkIHVzYjZmaXJlX21pZGlfYWJvcnQoc3RydWN0IHNmaXJlX2No aXAgKmNoaXApDQogDQogdm9pZCB1c2I2ZmlyZV9taWRpX2Rlc3Ryb3koc3RydWN0IHNmaXJlX2No aXAgKmNoaXApDQogew0KLQlrZnJlZShjaGlwLT5taWRpKTsNCisJc3RydWN0IG1pZGlfcnVudGlt ZSAqcnQgPSBjaGlwLT5taWRpOw0KKw0KKwlrZnJlZShydC0+b3V0X2J1ZmZlcik7DQorCWtmcmVl KHJ0KTsNCiAJY2hpcC0+bWlkaSA9IE5VTEw7DQogfQ0KZGlmZiAtLWdpdCBhL3NvdW5kL3VzYi82 ZmlyZS9taWRpLmggYi9zb3VuZC91c2IvNmZpcmUvbWlkaS5oDQppbmRleCA5N2E3YmY2Li43Zjhm NDQ4IDEwMDY0NA0KLS0tIGEvc291bmQvdXNiLzZmaXJlL21pZGkuaA0KKysrIGIvc291bmQvdXNi LzZmaXJlL21pZGkuaA0KQEAgLTE3LDEwICsxNyw2IEBADQogDQogI2luY2x1ZGUgImNvbW1vbi5o Ig0KIA0KLWVudW0gew0KLQlNSURJX0JVRlNJWkUgPSA2NA0KLX07DQotDQogc3RydWN0IG1pZGlf cnVudGltZSB7DQogCXN0cnVjdCBzZmlyZV9jaGlwICpjaGlwOw0KIAlzdHJ1Y3Qgc25kX3Jhd21p ZGkgKmluc3RhbmNlOw0KQEAgLTMzLDcgKzI5LDcgQEAgc3RydWN0IG1pZGlfcnVudGltZSB7DQog CXN0cnVjdCBzbmRfcmF3bWlkaV9zdWJzdHJlYW0gKm91dDsNCiAJc3RydWN0IHVyYiBvdXRfdXJi Ow0KIAl1OCBvdXRfc2VyaWFsOyAvKiBzZXJpYWwgbnVtYmVyIG9mIG91dCBwYWNrZXQgKi8NCi0J dTggb3V0X2J1ZmZlcltNSURJX0JVRlNJWkVdOw0KKwl1OCAqb3V0X2J1ZmZlcjsNCiAJaW50IGJ1 ZmZlcl9vZmZzZXQ7DQogDQogCXZvaWQgKCppbl9yZWNlaXZlZCkoc3RydWN0IG1pZGlfcnVudGlt ZSAqcnQsIHU4ICpkYXRhLCBpbnQgbGVuZ3RoKTsNCmRpZmYgLS1naXQgYS9zb3VuZC91c2IvNmZp cmUvcGNtLmMgYi9zb3VuZC91c2IvNmZpcmUvcGNtLmMNCmluZGV4IDg4OGE3YzcuLjg2MDljNzQg MTAwNjQ0DQotLS0gYS9zb3VuZC91c2IvNmZpcmUvcGNtLmMNCisrKyBiL3NvdW5kL3VzYi82Zmly ZS9wY20uYw0KQEAgLTU3OSw2ICs1NzksMzMgQEAgc3RhdGljIHZvaWQgX19kZXZpbml0IHVzYjZm aXJlX3BjbV9pbml0X3VyYihzdHJ1Y3QgcGNtX3VyYiAqdXJiLA0KIAl1cmItPmluc3RhbmNlLm51 bWJlcl9vZl9wYWNrZXRzID0gUENNX05fUEFDS0VUU19QRVJfVVJCOw0KIH0NCiANCitzdGF0aWMg aW50IHVzYjZmaXJlX3BjbV9idWZmZXJzX2luaXQoc3RydWN0IHBjbV9ydW50aW1lICpydCkNCit7 DQorCWludCBpOw0KKw0KKwlmb3IgKGkgPSAwOyBpIDwgUENNX05fVVJCUzsgaSsrKSB7DQorCQly dC0+b3V0X3VyYnNbaV0uYnVmZmVyID0ga3phbGxvYyhQQ01fTl9QQUNLRVRTX1BFUl9VUkINCisJ CQkJKiBQQ01fTUFYX1BBQ0tFVF9TSVpFLCBHRlBfS0VSTkVMKTsNCisJCWlmICghcnQtPm91dF91 cmJzW2ldLmJ1ZmZlcikNCisJCQlyZXR1cm4gLUVOT01FTTsNCisJCXJ0LT5pbl91cmJzW2ldLmJ1 ZmZlciA9IGt6YWxsb2MoUENNX05fUEFDS0VUU19QRVJfVVJCDQorCQkJCSogUENNX01BWF9QQUNL RVRfU0laRSwgR0ZQX0tFUk5FTCk7DQorCQlpZiAoIXJ0LT5pbl91cmJzW2ldLmJ1ZmZlcikNCisJ CQlyZXR1cm4gLUVOT01FTTsNCisJfQ0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIHZvaWQg dXNiNmZpcmVfcGNtX2J1ZmZlcnNfZGVzdHJveShzdHJ1Y3QgcGNtX3J1bnRpbWUgKnJ0KQ0KK3sN CisJaW50IGk7DQorDQorCWZvciAoaSA9IDA7IGkgPCBQQ01fTl9VUkJTOyBpKyspIHsNCisJCWtm cmVlKHJ0LT5vdXRfdXJic1tpXS5idWZmZXIpOw0KKwkJa2ZyZWUocnQtPmluX3VyYnNbaV0uYnVm ZmVyKTsNCisJfQ0KK30NCisNCiBpbnQgX19kZXZpbml0IHVzYjZmaXJlX3BjbV9pbml0KHN0cnVj dCBzZmlyZV9jaGlwICpjaGlwKQ0KIHsNCiAJaW50IGk7DQpAQCAtNTkwLDYgKzYxNywxMyBAQCBp bnQgX19kZXZpbml0IHVzYjZmaXJlX3BjbV9pbml0KHN0cnVjdCBzZmlyZV9jaGlwICpjaGlwKQ0K IAlpZiAoIXJ0KQ0KIAkJcmV0dXJuIC1FTk9NRU07DQogDQorCXJldCA9IHVzYjZmaXJlX3BjbV9i dWZmZXJzX2luaXQocnQpOw0KKwlpZiAocmV0KSB7DQorCQl1c2I2ZmlyZV9wY21fYnVmZmVyc19k ZXN0cm95KHJ0KTsNCisJCWtmcmVlKHJ0KTsNCisJCXJldHVybiByZXQ7DQorCX0NCisNCiAJcnQt PmNoaXAgPSBjaGlwOw0KIAlydC0+c3RyZWFtX3N0YXRlID0gU1RSRUFNX0RJU0FCTEVEOw0KIAly dC0+cmF0ZSA9IEFSUkFZX1NJWkUocmF0ZXMpOw0KQEAgLTYxMSw2ICs2NDUsNyBAQCBpbnQgX19k ZXZpbml0IHVzYjZmaXJlX3BjbV9pbml0KHN0cnVjdCBzZmlyZV9jaGlwICpjaGlwKQ0KIA0KIAly ZXQgPSBzbmRfcGNtX25ldyhjaGlwLT5jYXJkLCAiRE1YNkZpcmVVU0IiLCAwLCAxLCAxLCAmcGNt KTsNCiAJaWYgKHJldCA8IDApIHsNCisJCXVzYjZmaXJlX3BjbV9idWZmZXJzX2Rlc3Ryb3kocnQp Ow0KIAkJa2ZyZWUocnQpOw0KIAkJc25kX3ByaW50ayhLRVJOX0VSUiBQUkVGSVggImNhbm5vdCBj cmVhdGUgcGNtIGluc3RhbmNlLlxuIik7DQogCQlyZXR1cm4gcmV0Ow0KQEAgLTYyNiw2ICs2NjEs NyBAQCBpbnQgX19kZXZpbml0IHVzYjZmaXJlX3BjbV9pbml0KHN0cnVjdCBzZmlyZV9jaGlwICpj aGlwKQ0KIAkJCXNuZF9kbWFfY29udGludW91c19kYXRhKEdGUF9LRVJORUwpLA0KIAkJCU1BWF9C VUZTSVpFLCBNQVhfQlVGU0laRSk7DQogCWlmIChyZXQpIHsNCisJCXVzYjZmaXJlX3BjbV9idWZm ZXJzX2Rlc3Ryb3kocnQpOw0KIAkJa2ZyZWUocnQpOw0KIAkJc25kX3ByaW50ayhLRVJOX0VSUiBQ UkVGSVgNCiAJCQkJImVycm9yIHByZWFsbG9jYXRpbmcgcGNtIGJ1ZmZlcnMuXG4iKTsNCkBAIC02 NzAsNiArNzA2LDkgQEAgdm9pZCB1c2I2ZmlyZV9wY21fYWJvcnQoc3RydWN0IHNmaXJlX2NoaXAg KmNoaXApDQogDQogdm9pZCB1c2I2ZmlyZV9wY21fZGVzdHJveShzdHJ1Y3Qgc2ZpcmVfY2hpcCAq Y2hpcCkNCiB7DQotCWtmcmVlKGNoaXAtPnBjbSk7DQorCXN0cnVjdCBwY21fcnVudGltZSAqcnQg PSBjaGlwLT5wY207DQorDQorCXVzYjZmaXJlX3BjbV9idWZmZXJzX2Rlc3Ryb3kocnQpOw0KKwlr ZnJlZShydCk7DQogCWNoaXAtPnBjbSA9IE5VTEw7DQogfQ0KZGlmZiAtLWdpdCBhL3NvdW5kL3Vz Yi82ZmlyZS9wY20uaCBiL3NvdW5kL3VzYi82ZmlyZS9wY20uaA0KaW5kZXggMmJlZTgxMy4uYThl ODg5OSAxMDA2NDQNCi0tLSBhL3NvdW5kL3VzYi82ZmlyZS9wY20uaA0KKysrIGIvc291bmQvdXNi LzZmaXJlL3BjbS5oDQpAQCAtMzMsNyArMzMsNyBAQCBzdHJ1Y3QgcGNtX3VyYiB7DQogCXN0cnVj dCB1cmIgaW5zdGFuY2U7DQogCXN0cnVjdCB1c2JfaXNvX3BhY2tldF9kZXNjcmlwdG9yIHBhY2tl dHNbUENNX05fUEFDS0VUU19QRVJfVVJCXTsNCiAJLyogRU5EIERPIE5PVCBTRVBBUkFURSAqLw0K LQl1OCBidWZmZXJbUENNX05fUEFDS0VUU19QRVJfVVJCICogUENNX01BWF9QQUNLRVRfU0laRV07 DQorCXU4ICpidWZmZXI7DQogDQogCXN0cnVjdCBwY21fdXJiICpwZWVyOw0KIH07DQpkaWZmIC0t Z2l0IGEvc291bmQvdXNiL21peGVyLmMgYi9zb3VuZC91c2IvbWl4ZXIuYw0KaW5kZXggYWViMjZl Yi4uNDFiOWZlMCAxMDA2NDQNCi0tLSBhL3NvdW5kL3VzYi9taXhlci5jDQorKysgYi9zb3VuZC91 c2IvbWl4ZXIuYw0KQEAgLTcyMCw4ICs3MjAsMjAgQEAgc3RhdGljIGludCBjaGVja19pbnB1dF90 ZXJtKHN0cnVjdCBtaXhlcl9idWlsZCAqc3RhdGUsIGludCBpZCwgc3RydWN0IHVzYl9hdWRpb18N CiAJCQlyZXR1cm4gMDsNCiAJCX0NCiAJCWNhc2UgVUFDMV9QUk9DRVNTSU5HX1VOSVQ6DQotCQlj YXNlIFVBQzFfRVhURU5TSU9OX1VOSVQ6IHsNCisJCWNhc2UgVUFDMV9FWFRFTlNJT05fVU5JVDoN CisJCS8qIFVBQzJfUFJPQ0VTU0lOR19VTklUX1YyICovDQorCQkvKiBVQUMyX0VGRkVDVF9VTklU ICovDQorCQljYXNlIFVBQzJfRVhURU5TSU9OX1VOSVRfVjI6IHsNCiAJCQlzdHJ1Y3QgdWFjX3By b2Nlc3NpbmdfdW5pdF9kZXNjcmlwdG9yICpkID0gcDE7DQorDQorCQkJaWYgKHN0YXRlLT5taXhl ci0+cHJvdG9jb2wgPT0gVUFDX1ZFUlNJT05fMiAmJg0KKwkJCQloZHJbMl0gPT0gVUFDMl9FRkZF Q1RfVU5JVCkgew0KKwkJCQkvKiBVQUMyL1VBQzEgdW5pdCBJRHMgb3ZlcmxhcCBoZXJlIGluIGFu DQorCQkJCSAqIHVuY29tcGF0aWJsZSB3YXkuIElnbm9yZSB0aGlzIHVuaXQgZm9yIG5vdy4NCisJ CQkJICovDQorCQkJCXJldHVybiAwOw0KKwkJCX0NCisNCiAJCQlpZiAoZC0+Yk5ySW5QaW5zKSB7 DQogCQkJCWlkID0gZC0+YmFTb3VyY2VJRFswXTsNCiAJCQkJYnJlYWs7IC8qIGNvbnRpbnVlIHRv IHBhcnNlICovDQpAQCAtMTk1Niw2ICsxOTY4LDggQEAgc3RhdGljIGludCBwYXJzZV9hdWRpb191 bml0KHN0cnVjdCBtaXhlcl9idWlsZCAqc3RhdGUsIGludCB1bml0aWQpDQogCQkJcmV0dXJuIHBh cnNlX2F1ZGlvX2V4dGVuc2lvbl91bml0KHN0YXRlLCB1bml0aWQsIHAxKTsNCiAJCWVsc2UgLyog VUFDX1ZFUlNJT05fMiAqLw0KIAkJCXJldHVybiBwYXJzZV9hdWRpb19wcm9jZXNzaW5nX3VuaXQo c3RhdGUsIHVuaXRpZCwgcDEpOw0KKwljYXNlIFVBQzJfRVhURU5TSU9OX1VOSVRfVjI6DQorCQly ZXR1cm4gcGFyc2VfYXVkaW9fZXh0ZW5zaW9uX3VuaXQoc3RhdGUsIHVuaXRpZCwgcDEpOw0KIAlk ZWZhdWx0Og0KIAkJc25kX3ByaW50ayhLRVJOX0VSUiAidXNiYXVkaW86IHVuaXQgJXU6IHVuZXhw ZWN0ZWQgdHlwZSAweCUwMnhcbiIsIHVuaXRpZCwgcDFbMl0pOw0KIAkJcmV0dXJuIC1FSU5WQUw7 DQpkaWZmIC0tZ2l0IGEvdG9vbHMvcGVyZi91dGlsL21hcC5jIGIvdG9vbHMvcGVyZi91dGlsL21h cC5jDQppbmRleCA3ODI4NGIxLi40MmRmZmEwIDEwMDY0NA0KLS0tIGEvdG9vbHMvcGVyZi91dGls L21hcC5jDQorKysgYi90b29scy9wZXJmL3V0aWwvbWFwLmMNCkBAIC0xNSw3ICsxNSw4IEBAIGNv bnN0IGNoYXIgKm1hcF90eXBlX19uYW1lW01BUF9fTlJfVFlQRVNdID0gew0KIA0KIHN0YXRpYyBp bmxpbmUgaW50IGlzX2Fub25fbWVtb3J5KGNvbnN0IGNoYXIgKmZpbGVuYW1lKQ0KIHsNCi0JcmV0 dXJuIHN0cmNtcChmaWxlbmFtZSwgIi8vYW5vbiIpID09IDA7DQorCXJldHVybiAhc3RyY21wKGZp bGVuYW1lLCAiLy9hbm9uIikgfHwNCisJICAgICAgICFzdHJjbXAoZmlsZW5hbWUsICIvYW5vbl9o dWdlcGFnZSAoZGVsZXRlZCkiKTsNCiB9DQogDQogc3RhdGljIGlubGluZSBpbnQgaXNfbm9fZHNv X21lbW9yeShjb25zdCBjaGFyICpmaWxlbmFtZSkNCm== --=-gvKlMCWreGUlmooMFaEH-- --=-kxFCAiISnnsdrcOAYHRe Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.14 (GNU/Linux) iQIVAwUAUiv0vee/yOyVhhEJAQre3g//SUWsfq1oP6yc7fD18izMa1XGg7cfXkMZ B1FSP8ChOGWCCw059TXQyPFZxB3txyj4wvt34i8nq9YZOrQ88Eg1QQK4UZCKb33G aohP9XbCg/bPyxxlO0YyO/+WMJNiVONcTy91SVHh67EcKwCb44JiuxVVo1LcWH9F dT2SpnlcLVBIjyNvj4GvwRA3xCsOBOcXut/6eCdiYDJBqw4rA+O1Eo4LxIm9BmZF Mh9K2Se/eCavvQhLEnhQ6nNPc4n/HpOGXAk1UaMOAKkW16/UvTdpC96JfayKskKZ SB1xHkcwgwZyI4/ryvingOPJk4G6nS5MjOZ5tHCjRGcY7d84cYOuSdzi/d464q0z k+eGA2M/nIvywFtVD0A1BSksFbLWphZbnSDjKzu2iamDkwCJeUYD3DwV7g61wxBU VMlmCEj+LYL5Hl5X2cI7dLD8RNSqy3UrbCJY6RhqCNU6434VdbFzemrzU5v5WrY6 mb8FntcScR+gbrKEJ6870OKE7JP909jHNpfmbRgfnG9Ww3Iu3Xdf8JxVjwypXcdi ncUaJBSrW6MA6/Z4gEFwl2rBG6J1CqbcwFm64kqAYFJySwgTr7rhl7gLknVOSEOH MqcOu0E4qRaXoyngFilprzmUTI489LP09k9W8IXtny5A043atAqROEFJFvRXf24n tZy1FPcyBsE= =+doO -----END PGP SIGNATURE----- --=-kxFCAiISnnsdrcOAYHRe-- -- 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/