From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753586Ab2LCPKG (ORCPT ); Mon, 3 Dec 2012 10:10:06 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:44389 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752813Ab2LCPKA (ORCPT ); Mon, 3 Dec 2012 10:10:00 -0500 Message-ID: <1354547382.17107.9.camel@deadeye.wl.decadent.org.uk> Subject: Re: [ 00/89] 3.2.35-stable review From: Ben Hutchings To: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, torvalds@linux-foundation.org, akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk Date: Mon, 03 Dec 2012 15:09:42 +0000 In-Reply-To: <20121203143146.549859007@decadent.org.uk> References: <20121203143146.549859007@decadent.org.uk> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-Uhm1UoTh6tZW5uzkSeiL" X-Mailer: Evolution 3.4.4-1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 2001:470:1f08:1539:21c:bfff:fe03:f805 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 --=-Uhm1UoTh6tZW5uzkSeiL Content-Type: multipart/mixed; boundary="=-eFfEqEtqve6tEVuuNygF" --=-eFfEqEtqve6tEVuuNygF Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.35-rc1 relative to 3.2.34. Ben. --=20 Ben Hutchings Always try to do things in chronological order; it's less confusing that way. --=-eFfEqEtqve6tEVuuNygF Content-Disposition: attachment; filename="linux-3.2.35-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.35-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vY2dyb3Vwcy9tZW1vcnkudHh0IGIvRG9jdW1lbnRh dGlvbi9jZ3JvdXBzL21lbW9yeS50eHQNCmluZGV4IGNjMGViYzUuLmZkMTI5ZjYgMTAwNjQ0DQot LS0gYS9Eb2N1bWVudGF0aW9uL2Nncm91cHMvbWVtb3J5LnR4dA0KKysrIGIvRG9jdW1lbnRhdGlv bi9jZ3JvdXBzL21lbW9yeS50eHQNCkBAIC00NDAsNiArNDQwLDEwIEBAIE5vdGU6DQogNS4zIHN3 YXBwaW5lc3MNCiANCiBTaW1pbGFyIHRvIC9wcm9jL3N5cy92bS9zd2FwcGluZXNzLCBidXQgYWZm ZWN0aW5nIGEgaGllcmFyY2h5IG9mIGdyb3VwcyBvbmx5Lg0KK1BsZWFzZSBub3RlIHRoYXQgdW5s aWtlIHRoZSBnbG9iYWwgc3dhcHBpbmVzcywgbWVtY2cga25vYiBzZXQgdG8gMA0KK3JlYWxseSBw cmV2ZW50cyBmcm9tIGFueSBzd2FwcGluZyBldmVuIGlmIHRoZXJlIGlzIGEgc3dhcCBzdG9yYWdl DQorYXZhaWxhYmxlLiBUaGlzIG1pZ2h0IGxlYWQgdG8gbWVtY2cgT09NIGtpbGxlciBpZiB0aGVy ZSBhcmUgbm8gZmlsZQ0KK3BhZ2VzIHRvIHJlY2xhaW0uDQogDQogRm9sbG93aW5nIGNncm91cHMn IHN3YXBwaW5lc3MgY2FuJ3QgYmUgY2hhbmdlZC4NCiAtIHJvb3QgY2dyb3VwICh1c2VzIC9wcm9j L3N5cy92bS9zd2FwcGluZXNzKS4NCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2R2Yi9nZXRf ZHZiX2Zpcm13YXJlIGIvRG9jdW1lbnRhdGlvbi9kdmIvZ2V0X2R2Yl9maXJtd2FyZQ0KaW5kZXgg ZTY3YmU3YS4uNDhkMjVlYSAxMDA3NTUNCi0tLSBhL0RvY3VtZW50YXRpb24vZHZiL2dldF9kdmJf ZmlybXdhcmUNCisrKyBiL0RvY3VtZW50YXRpb24vZHZiL2dldF9kdmJfZmlybXdhcmUNCkBAIC0x MTUsNyArMTE1LDcgQEAgc3ViIHRkYTEwMDQ1IHsNCiANCiBzdWIgdGRhMTAwNDYgew0KIAlteSAk c291cmNlZmlsZSA9ICJUVF9QQ0lfMi4xOWhfMjhfMTFfMjAwNi56aXAiOw0KLQlteSAkdXJsID0g Imh0dHA6Ly93d3cudHQtZG93bmxvYWQuY29tL2Rvd25sb2FkL3VwZGF0ZXMvMjE5LyRzb3VyY2Vm aWxlIjsNCisJbXkgJHVybCA9ICJodHRwOi8vdGVjaG5vdHJlbmQuY29tLnVhL2Rvd25sb2FkL3Nv ZnR3YXJlLzIxOS8kc291cmNlZmlsZSI7DQogCW15ICRoYXNoID0gIjZhN2UxZTJmMjY0NGIxNjJm ZjA1MDIzNjc1NTNjNzJkIjsNCiAJbXkgJG91dGZpbGUgPSAiZHZiLWZlLXRkYTEwMDQ2LmZ3IjsN CiAJbXkgJHRtcGRpciA9IHRlbXBkaXIoRElSID0+ICIvdG1wIiwgQ0xFQU5VUCA9PiAxKTsNCmRp ZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlDQppbmRleCAxNGViYWNmLi5mMDBhYTdjIDEw MDY0NA0KLS0tIGEvTWFrZWZpbGUNCisrKyBiL01ha2VmaWxlDQpAQCAtMSw3ICsxLDcgQEANCiBW RVJTSU9OID0gMw0KIFBBVENITEVWRUwgPSAyDQotU1VCTEVWRUwgPSAzNA0KLUVYVFJBVkVSU0lP TiA9DQorU1VCTEVWRUwgPSAzNQ0KK0VYVFJBVkVSU0lPTiA9IC1yYzENCiBOQU1FID0gU2FiZXIt dG9vdGhlZCBTcXVpcnJlbA0KIA0KICMgKkRPQ1VNRU5UQVRJT04qDQpkaWZmIC0tZ2l0IGEvYXJj aC9hcm0vS2NvbmZpZyBiL2FyY2gvYXJtL0tjb25maWcNCmluZGV4IDlmZGMxNTEuLjI3YmNkMTIg MTAwNjQ0DQotLS0gYS9hcmNoL2FybS9LY29uZmlnDQorKysgYi9hcmNoL2FybS9LY29uZmlnDQpA QCAtNTQyLDYgKzU0Miw3IEBAIGNvbmZpZyBBUkNIX0tJUktXT09EDQogCWJvb2wgIk1hcnZlbGwg S2lya3dvb2QiDQogCXNlbGVjdCBDUFVfRkVST0NFT04NCiAJc2VsZWN0IFBDSQ0KKwlzZWxlY3Qg UENJX1FVSVJLUw0KIAlzZWxlY3QgQVJDSF9SRVFVSVJFX0dQSU9MSUINCiAJc2VsZWN0IEdFTkVS SUNfQ0xPQ0tFVkVOVFMNCiAJc2VsZWN0IFBMQVRfT1JJT04NCmRpZmYgLS1naXQgYS9hcmNoL2Fy bS9tYWNoLWRvdmUvaW5jbHVkZS9tYWNoL3BtLmggYi9hcmNoL2FybS9tYWNoLWRvdmUvaW5jbHVk ZS9tYWNoL3BtLmgNCmluZGV4IDNhZDlmOTQuLjExNzk5YzMgMTAwNjQ0DQotLS0gYS9hcmNoL2Fy bS9tYWNoLWRvdmUvaW5jbHVkZS9tYWNoL3BtLmgNCisrKyBiL2FyY2gvYXJtL21hY2gtZG92ZS9p bmNsdWRlL21hY2gvcG0uaA0KQEAgLTQ1LDcgKzQ1LDcgQEAgc3RhdGljIGlubGluZSBpbnQgcG11 X3RvX2lycShpbnQgcGluKQ0KIA0KIHN0YXRpYyBpbmxpbmUgaW50IGlycV90b19wbXUoaW50IGly cSkNCiB7DQotCWlmIChJUlFfRE9WRV9QTVVfU1RBUlQgPCBpcnEgJiYgaXJxIDwgTlJfSVJRUykN CisJaWYgKElSUV9ET1ZFX1BNVV9TVEFSVCA8PSBpcnEgJiYgaXJxIDwgTlJfSVJRUykNCiAJCXJl dHVybiBpcnEgLSBJUlFfRE9WRV9QTVVfU1RBUlQ7DQogDQogCXJldHVybiAtRUlOVkFMOw0KZGlm ZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtZG92ZS9pcnEuYyBiL2FyY2gvYXJtL21hY2gtZG92ZS9p cnEuYw0KaW5kZXggZjA3ZmQxNi4uOWYyZmQxMCAxMDA2NDQNCi0tLSBhL2FyY2gvYXJtL21hY2gt ZG92ZS9pcnEuYw0KKysrIGIvYXJjaC9hcm0vbWFjaC1kb3ZlL2lycS5jDQpAQCAtNjEsOCArNjEs MjAgQEAgc3RhdGljIHZvaWQgcG11X2lycV9hY2soc3RydWN0IGlycV9kYXRhICpkKQ0KIAlpbnQg cGluID0gaXJxX3RvX3BtdShkLT5pcnEpOw0KIAl1MzIgdTsNCiANCisJLyoNCisJICogVGhlIFBN VSBtYXNrIHJlZ2lzdGVyIGlzIG5vdCBSVzBDOiBpdCBpcyBSVy4gIFRoaXMgbWVhbnMgdGhhdA0K KwkgKiB0aGUgYml0cyB0YWtlIHdoYXRldmVyIHZhbHVlIGlzIHdyaXR0ZW4gdG8gdGhlbTsgaWYg eW91IHdyaXRlDQorCSAqIGEgJzEnLCB5b3Ugd2lsbCBzZXQgdGhlIGludGVycnVwdC4NCisJICoN CisJICogVW5mb3J0dW5hdGVseSB0aGlzIG1lYW5zIHRoZXJlIGlzIE5PIHJhY2UgZnJlZSB3YXkg dG8gY2xlYXINCisJICogdGhlc2UgaW50ZXJydXB0cy4NCisJICoNCisJICogU28sIGxldCdzIHN0 cnVjdHVyZSB0aGUgY29kZSBzbyB0aGF0IHRoZSB3aW5kb3cgaXMgYXMgc21hbGwgYXMNCisJICog cG9zc2libGUuDQorCSAqLw0KIAl1ID0gfigxIDw8IChwaW4gJiAzMSkpOw0KLQl3cml0ZWwodSwg UE1VX0lOVEVSUlVQVF9DQVVTRSk7DQorCXUgJj0gcmVhZGxfcmVsYXhlZChQTVVfSU5URVJSVVBU X0NBVVNFKTsNCisJd3JpdGVsX3JlbGF4ZWQodSwgUE1VX0lOVEVSUlVQVF9DQVVTRSk7DQogfQ0K IA0KIHN0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgcG11X2lycV9jaGlwID0gew0KZGlmZiAtLWdpdCBh L2FyY2gvYXJtL21hY2gta2lya3dvb2QvcGNpZS5jIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9w Y2llLmMNCmluZGV4IDc0Yjk5MmQuLmE4ODFjNTQgMTAwNjQ0DQotLS0gYS9hcmNoL2FybS9tYWNo LWtpcmt3b29kL3BjaWUuYw0KKysrIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9wY2llLmMNCkBA IC0yMTMsMTQgKzIxMywxOSBAQCBzdGF0aWMgaW50IF9faW5pdCBraXJrd29vZF9wY2llX3NldHVw KGludCBuciwgc3RydWN0IHBjaV9zeXNfZGF0YSAqc3lzKQ0KIAlyZXR1cm4gMTsNCiB9DQogDQor LyoNCisgKiBUaGUgcm9vdCBjb21wbGV4IGhhcyBhIGhhcmR3aXJlZCBjbGFzcyBvZiBQQ0lfQ0xB U1NfTUVNT1JZX09USEVSLCB3aGVuIGl0DQorICogaXMgb3BlcmF0aW5nIGFzIGEgcm9vdCBjb21w bGV4IHRoaXMgbmVlZHMgdG8gYmUgc3dpdGNoZWQgdG8NCisgKiBQQ0lfQ0xBU1NfQlJJREdFX0hP U1Qgb3IgTGludXggd2lsbCBlcnJhbnRseSB0cnkgdG8gcHJvY2VzcyB0aGUgQkFSJ3Mgb24NCisg KiB0aGUgZGV2aWNlLiBEZWNvZGluZyBzZXR1cCBpcyBoYW5kbGVkIGJ5IHRoZSBvcmlvbiBjb2Rl Lg0KKyAqLw0KIHN0YXRpYyB2b2lkIF9fZGV2aW5pdCByY19wY2lfZml4dXAoc3RydWN0IHBjaV9k ZXYgKmRldikNCiB7DQotCS8qDQotCSAqIFByZXZlbnQgZW51bWVyYXRpb24gb2Ygcm9vdCBjb21w bGV4Lg0KLQkgKi8NCiAJaWYgKGRldi0+YnVzLT5wYXJlbnQgPT0gTlVMTCAmJiBkZXYtPmRldmZu ID09IDApIHsNCiAJCWludCBpOw0KIA0KKwkJZGV2LT5jbGFzcyAmPSAweGZmOw0KKwkJZGV2LT5j bGFzcyB8PSBQQ0lfQ0xBU1NfQlJJREdFX0hPU1QgPDwgODsNCiAJCWZvciAoaSA9IDA7IGkgPCBE RVZJQ0VfQ09VTlRfUkVTT1VSQ0U7IGkrKykgew0KIAkJCWRldi0+cmVzb3VyY2VbaV0uc3RhcnQg PSAwOw0KIAkJCWRldi0+cmVzb3VyY2VbaV0uZW5kICAgPSAwOw0KZGlmZiAtLWdpdCBhL2FyY2gv bTY4ay9pbmNsdWRlL2FzbS9zaWduYWwuaCBiL2FyY2gvbTY4ay9pbmNsdWRlL2FzbS9zaWduYWwu aA0KaW5kZXggNjBlODg2Ni4uOTNmZTgzZSAxMDA2NDQNCi0tLSBhL2FyY2gvbTY4ay9pbmNsdWRl L2FzbS9zaWduYWwuaA0KKysrIGIvYXJjaC9tNjhrL2luY2x1ZGUvYXNtL3NpZ25hbC5oDQpAQCAt MTU2LDcgKzE1Niw3IEBAIHR5cGVkZWYgc3RydWN0IHNpZ2FsdHN0YWNrIHsNCiBzdGF0aWMgaW5s aW5lIHZvaWQgc2lnYWRkc2V0KHNpZ3NldF90ICpzZXQsIGludCBfc2lnKQ0KIHsNCiAJYXNtICgi YmZzZXQgJTB7JTEsIzF9Ig0KLQkJOiAiK29kIiAoKnNldCkNCisJCTogIitvIiAoKnNldCkNCiAJ CTogImlkIiAoKF9zaWcgLSAxKSBeIDMxKQ0KIAkJOiAiY2MiKTsNCiB9DQpAQCAtMTY0LDcgKzE2 NCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzaWdhZGRzZXQoc2lnc2V0X3QgKnNldCwgaW50IF9z aWcpDQogc3RhdGljIGlubGluZSB2b2lkIHNpZ2RlbHNldChzaWdzZXRfdCAqc2V0LCBpbnQgX3Np ZykNCiB7DQogCWFzbSAoImJmY2xyICUweyUxLCMxfSINCi0JCTogIitvZCIgKCpzZXQpDQorCQk6 ICIrbyIgKCpzZXQpDQogCQk6ICJpZCIgKChfc2lnIC0gMSkgXiAzMSkNCiAJCTogImNjIik7DQog fQ0KQEAgLTE4MCw3ICsxODAsNyBAQCBzdGF0aWMgaW5saW5lIGludCBfX2dlbl9zaWdpc21lbWJl cihzaWdzZXRfdCAqc2V0LCBpbnQgX3NpZykNCiAJaW50IHJldDsNCiAJYXNtICgiYmZleHR1ICUx eyUyLCMxfSwlMCINCiAJCTogIj1kIiAocmV0KQ0KLQkJOiAib2QiICgqc2V0KSwgImlkIiAoKF9z aWctMSkgXiAzMSkNCisJCTogIm8iICgqc2V0KSwgImlkIiAoKF9zaWctMSkgXiAzMSkNCiAJCTog ImNjIik7DQogCXJldHVybiByZXQ7DQogfQ0KZGlmZiAtLWdpdCBhL2FyY2gvcGFyaXNjL2tlcm5l bC9zaWduYWwzMi5jIGIvYXJjaC9wYXJpc2Mva2VybmVsL3NpZ25hbDMyLmMNCmluZGV4IGUxNDEz MjQuLmQwZWEwNTQgMTAwNjQ0DQotLS0gYS9hcmNoL3BhcmlzYy9rZXJuZWwvc2lnbmFsMzIuYw0K KysrIGIvYXJjaC9wYXJpc2Mva2VybmVsL3NpZ25hbDMyLmMNCkBAIC02Nyw3ICs2Nyw4IEBAIHB1 dF9zaWdzZXQzMihjb21wYXRfc2lnc2V0X3QgX191c2VyICp1cCwgc2lnc2V0X3QgKnNldCwgc2l6 ZV90IHN6KQ0KIHsNCiAJY29tcGF0X3NpZ3NldF90IHM7DQogDQotCWlmIChzeiAhPSBzaXplb2Yg KnNldCkgcGFuaWMoInB1dF9zaWdzZXQzMigpIik7DQorCWlmIChzeiAhPSBzaXplb2YgKnNldCkN CisJCXJldHVybiAtRUlOVkFMOw0KIAlzaWdzZXRfNjR0bzMyKCZzLCBzZXQpOw0KIA0KIAlyZXR1 cm4gY29weV90b191c2VyKHVwLCAmcywgc2l6ZW9mIHMpOw0KQEAgLTc5LDcgKzgwLDggQEAgZ2V0 X3NpZ3NldDMyKGNvbXBhdF9zaWdzZXRfdCBfX3VzZXIgKnVwLCBzaWdzZXRfdCAqc2V0LCBzaXpl X3Qgc3opDQogCWNvbXBhdF9zaWdzZXRfdCBzOw0KIAlpbnQgcjsNCiANCi0JaWYgKHN6ICE9IHNp emVvZiAqc2V0KSBwYW5pYygicHV0X3NpZ3NldDMyKCkiKTsNCisJaWYgKHN6ICE9IHNpemVvZiAq c2V0KQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQogDQogCWlmICgociA9IGNvcHlfZnJvbV91c2VyKCZz LCB1cCwgc3opKSA9PSAwKSB7DQogCQlzaWdzZXRfMzJ0bzY0KHNldCwgJnMpOw0KZGlmZiAtLWdp dCBhL2FyY2gvcGFyaXNjL2tlcm5lbC9zeXNfcGFyaXNjLmMgYi9hcmNoL3BhcmlzYy9rZXJuZWwv c3lzX3BhcmlzYy5jDQppbmRleCBjOWI5MzIyLi43ZWE3NWQxIDEwMDY0NA0KLS0tIGEvYXJjaC9w YXJpc2Mva2VybmVsL3N5c19wYXJpc2MuYw0KKysrIGIvYXJjaC9wYXJpc2Mva2VybmVsL3N5c19w YXJpc2MuYw0KQEAgLTczLDYgKzczLDggQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgZ2V0X3NoYXJl ZF9hcmVhKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAlzdHJ1Y3Qgdm1fYXJlYV9z dHJ1Y3QgKnZtYTsNCiAJaW50IG9mZnNldCA9IG1hcHBpbmcgPyBnZXRfb2Zmc2V0KG1hcHBpbmcp IDogMDsNCiANCisJb2Zmc2V0ID0gKG9mZnNldCArIChwZ29mZiA8PCBQQUdFX1NISUZUKSkgJiAw eDNGRjAwMDsNCisNCiAJYWRkciA9IERDQUNIRV9BTElHTihhZGRyIC0gb2Zmc2V0KSArIG9mZnNl dDsNCiANCiAJZm9yICh2bWEgPSBmaW5kX3ZtYShjdXJyZW50LT5tbSwgYWRkcik7IDsgdm1hID0g dm1hLT52bV9uZXh0KSB7DQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2NvbXBh dC5oIGIvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2NvbXBhdC5oDQppbmRleCAyMzRmMWQ4Li4yZTBh MTViIDEwMDY0NA0KLS0tIGEvYXJjaC9zMzkwL2luY2x1ZGUvYXNtL2NvbXBhdC5oDQorKysgYi9h cmNoL3MzOTAvaW5jbHVkZS9hc20vY29tcGF0LmgNCkBAIC0yMCw3ICsyMCw3IEBADQogI2RlZmlu ZSBQU1czMl9NQVNLX0NDCQkweDAwMDAzMDAwVUwNCiAjZGVmaW5lIFBTVzMyX01BU0tfUE0JCTB4 MDAwMDBmMDBVTA0KIA0KLSNkZWZpbmUgUFNXMzJfTUFTS19VU0VSCQkweDAwMDAzRjAwVUwNCisj ZGVmaW5lIFBTVzMyX01BU0tfVVNFUgkJMHgwMDAwRkYwMFVMDQogDQogI2RlZmluZSBQU1czMl9B RERSX0FNT0RFCTB4ODAwMDAwMDBVTA0KICNkZWZpbmUgUFNXMzJfQUREUl9JTlNOCQkweDdGRkZG RkZGVUwNCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vcHRyYWNlLmggYi9hcmNo L3MzOTAvaW5jbHVkZS9hc20vcHRyYWNlLmgNCmluZGV4IGE2NTg0NjMuLmE1YjRjNDggMTAwNjQ0 DQotLS0gYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vcHRyYWNlLmgNCisrKyBiL2FyY2gvczM5MC9p bmNsdWRlL2FzbS9wdHJhY2UuaA0KQEAgLTI0MCw3ICsyNDAsNyBAQCB0eXBlZGVmIHN0cnVjdA0K ICNkZWZpbmUgUFNXX01BU0tfRUEJCTB4MDAwMDAwMDBVTA0KICNkZWZpbmUgUFNXX01BU0tfQkEJ CTB4MDAwMDAwMDBVTA0KIA0KLSNkZWZpbmUgUFNXX01BU0tfVVNFUgkJMHgwMDAwM0YwMFVMDQor I2RlZmluZSBQU1dfTUFTS19VU0VSCQkweDAwMDBGRjAwVUwNCiANCiAjZGVmaW5lIFBTV19BRERS X0FNT0RFCQkweDgwMDAwMDAwVUwNCiAjZGVmaW5lIFBTV19BRERSX0lOU04JCTB4N0ZGRkZGRkZV TA0KQEAgLTI2OSw3ICsyNjksNyBAQCB0eXBlZGVmIHN0cnVjdA0KICNkZWZpbmUgUFNXX01BU0tf RUEJCTB4MDAwMDAwMDEwMDAwMDAwMFVMDQogI2RlZmluZSBQU1dfTUFTS19CQQkJMHgwMDAwMDAw MDgwMDAwMDAwVUwNCiANCi0jZGVmaW5lIFBTV19NQVNLX1VTRVIJCTB4MDAwMDNGMDE4MDAwMDAw MFVMDQorI2RlZmluZSBQU1dfTUFTS19VU0VSCQkweDAwMDBGRjAxODAwMDAwMDBVTA0KIA0KICNk ZWZpbmUgUFNXX0FERFJfQU1PREUJCTB4MDAwMDAwMDAwMDAwMDAwMFVMDQogI2RlZmluZSBQU1df QUREUl9JTlNOCQkweEZGRkZGRkZGRkZGRkZGRkZVTA0KZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9r ZXJuZWwvY29tcGF0X3NpZ25hbC5jIGIvYXJjaC9zMzkwL2tlcm5lbC9jb21wYXRfc2lnbmFsLmMN CmluZGV4IDRmNjhjODEuLjlmZGQwNWQgMTAwNjQ0DQotLS0gYS9hcmNoL3MzOTAva2VybmVsL2Nv bXBhdF9zaWduYWwuYw0KKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9jb21wYXRfc2lnbmFsLmMNCkBA IC0zMTIsNiArMzEyLDEwIEBAIHN0YXRpYyBpbnQgcmVzdG9yZV9zaWdyZWdzMzIoc3RydWN0IHB0 X3JlZ3MgKnJlZ3MsX3NpZ3JlZ3MzMiBfX3VzZXIgKnNyZWdzKQ0KIAlyZWdzLT5wc3cubWFzayA9 IChyZWdzLT5wc3cubWFzayAmIH5QU1dfTUFTS19VU0VSKSB8DQogCQkoX191NjQpKHJlZ3MzMi5w c3cubWFzayAmIFBTVzMyX01BU0tfVVNFUikgPDwgMzIgfA0KIAkJKF9fdTY0KShyZWdzMzIucHN3 LmFkZHIgJiBQU1czMl9BRERSX0FNT0RFKTsNCisJLyogQ2hlY2sgZm9yIGludmFsaWQgdXNlciBh ZGRyZXNzIHNwYWNlIGNvbnRyb2wuICovDQorCWlmICgocmVncy0+cHN3Lm1hc2sgJiBQU1dfTUFT S19BU0MpID49IChwc3dfa2VybmVsX2JpdHMgJiBQU1dfTUFTS19BU0MpKQ0KKwkJcmVncy0+cHN3 Lm1hc2sgPSAocHN3X3VzZXJfYml0cyAmIFBTV19NQVNLX0FTQykgfA0KKwkJCShyZWdzLT5wc3cu bWFzayAmIH5QU1dfTUFTS19BU0MpOw0KIAlyZWdzLT5wc3cuYWRkciA9IChfX3U2NCkocmVnczMy LnBzdy5hZGRyICYgUFNXMzJfQUREUl9JTlNOKTsNCiAJZm9yIChpID0gMDsgaSA8IE5VTV9HUFJT OyBpKyspDQogCQlyZWdzLT5ncHJzW2ldID0gKF9fdTY0KSByZWdzMzIuZ3Byc1tpXTsNCkBAIC00 OTMsNyArNDk3LDEwIEBAIHN0YXRpYyBpbnQgc2V0dXBfZnJhbWUzMihpbnQgc2lnLCBzdHJ1Y3Qg a19zaWdhY3Rpb24gKmthLA0KIA0KIAkvKiBTZXQgdXAgcmVnaXN0ZXJzIGZvciBzaWduYWwgaGFu ZGxlciAqLw0KIAlyZWdzLT5ncHJzWzE1XSA9IChfX2ZvcmNlIF9fdTY0KSBmcmFtZTsNCi0JcmVn cy0+cHN3Lm1hc2sgfD0gUFNXX01BU0tfQkE7CQkvKiBmb3JjZSBhbW9kZSAzMSAqLw0KKwkvKiBG b3JjZSAzMSBiaXQgYW1vZGUgYW5kIGRlZmF1bHQgdXNlciBhZGRyZXNzIHNwYWNlIGNvbnRyb2wu ICovDQorCXJlZ3MtPnBzdy5tYXNrID0gUFNXX01BU0tfQkEgfA0KKwkJKHBzd191c2VyX2JpdHMg JiBQU1dfTUFTS19BU0MpIHwNCisJCShyZWdzLT5wc3cubWFzayAmIH5QU1dfTUFTS19BU0MpOw0K IAlyZWdzLT5wc3cuYWRkciA9IChfX2ZvcmNlIF9fdTY0KSBrYS0+c2Euc2FfaGFuZGxlcjsNCiAN CiAJcmVncy0+Z3Byc1syXSA9IG1hcF9zaWduYWwoc2lnKTsNCkBAIC01NTcsNyArNTY0LDEwIEBA IHN0YXRpYyBpbnQgc2V0dXBfcnRfZnJhbWUzMihpbnQgc2lnLCBzdHJ1Y3Qga19zaWdhY3Rpb24g KmthLCBzaWdpbmZvX3QgKmluZm8sDQogDQogCS8qIFNldCB1cCByZWdpc3RlcnMgZm9yIHNpZ25h bCBoYW5kbGVyICovDQogCXJlZ3MtPmdwcnNbMTVdID0gKF9fZm9yY2UgX191NjQpIGZyYW1lOw0K LQlyZWdzLT5wc3cubWFzayB8PSBQU1dfTUFTS19CQTsJCS8qIGZvcmNlIGFtb2RlIDMxICovDQor CS8qIEZvcmNlIDMxIGJpdCBhbW9kZSBhbmQgZGVmYXVsdCB1c2VyIGFkZHJlc3Mgc3BhY2UgY29u dHJvbC4gKi8NCisJcmVncy0+cHN3Lm1hc2sgPSBQU1dfTUFTS19CQSB8DQorCQkocHN3X3VzZXJf Yml0cyAmIFBTV19NQVNLX0FTQykgfA0KKwkJKHJlZ3MtPnBzdy5tYXNrICYgflBTV19NQVNLX0FT Qyk7DQogCXJlZ3MtPnBzdy5hZGRyID0gKF9fdTY0KSBrYS0+c2Euc2FfaGFuZGxlcjsNCiANCiAJ cmVncy0+Z3Byc1syXSA9IG1hcF9zaWduYWwoc2lnKTsNCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAv a2VybmVsL3NpZ25hbC5jIGIvYXJjaC9zMzkwL2tlcm5lbC9zaWduYWwuYw0KaW5kZXggNTA4NjU1 My4uZDU0ZDQ3NSAxMDA2NDQNCi0tLSBhL2FyY2gvczM5MC9rZXJuZWwvc2lnbmFsLmMNCisrKyBi L2FyY2gvczM5MC9rZXJuZWwvc2lnbmFsLmMNCkBAIC0xNDcsNiArMTQ3LDEwIEBAIHN0YXRpYyBp bnQgcmVzdG9yZV9zaWdyZWdzKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBfc2lncmVncyBfX3VzZXIg KnNyZWdzKQ0KIAkvKiBVc2UgcmVncy0+cHN3Lm1hc2sgaW5zdGVhZCBvZiBwc3dfdXNlcl9iaXRz IHRvIHByZXNlcnZlIFBFUiBiaXQuICovDQogCXJlZ3MtPnBzdy5tYXNrID0gKHJlZ3MtPnBzdy5t YXNrICYgflBTV19NQVNLX1VTRVIpIHwNCiAJCSh1c2VyX3NyZWdzLnJlZ3MucHN3Lm1hc2sgJiBQ U1dfTUFTS19VU0VSKTsNCisJLyogQ2hlY2sgZm9yIGludmFsaWQgdXNlciBhZGRyZXNzIHNwYWNl IGNvbnRyb2wuICovDQorCWlmICgocmVncy0+cHN3Lm1hc2sgJiBQU1dfTUFTS19BU0MpID49IChw c3dfa2VybmVsX2JpdHMgJiBQU1dfTUFTS19BU0MpKQ0KKwkJcmVncy0+cHN3Lm1hc2sgPSAocHN3 X3VzZXJfYml0cyAmIFBTV19NQVNLX0FTQykgfA0KKwkJCShyZWdzLT5wc3cubWFzayAmIH5QU1df TUFTS19BU0MpOw0KIAkvKiBDaGVjayBmb3IgaW52YWxpZCBhbW9kZSAqLw0KIAlpZiAocmVncy0+ cHN3Lm1hc2sgJiBQU1dfTUFTS19FQSkNCiAJCXJlZ3MtPnBzdy5tYXNrIHw9IFBTV19NQVNLX0JB Ow0KQEAgLTI5Myw3ICsyOTcsMTAgQEAgc3RhdGljIGludCBzZXR1cF9mcmFtZShpbnQgc2lnLCBz dHJ1Y3Qga19zaWdhY3Rpb24gKmthLA0KIA0KIAkvKiBTZXQgdXAgcmVnaXN0ZXJzIGZvciBzaWdu YWwgaGFuZGxlciAqLw0KIAlyZWdzLT5ncHJzWzE1XSA9ICh1bnNpZ25lZCBsb25nKSBmcmFtZTsN Ci0JcmVncy0+cHN3Lm1hc2sgfD0gUFNXX01BU0tfRUEgfCBQU1dfTUFTS19CQTsJLyogNjQgYml0 IGFtb2RlICovDQorCS8qIEZvcmNlIGRlZmF1bHQgYW1vZGUgYW5kIGRlZmF1bHQgdXNlciBhZGRy ZXNzIHNwYWNlIGNvbnRyb2wuICovDQorCXJlZ3MtPnBzdy5tYXNrID0gUFNXX01BU0tfRUEgfCBQ U1dfTUFTS19CQSB8DQorCQkocHN3X3VzZXJfYml0cyAmIFBTV19NQVNLX0FTQykgfA0KKwkJKHJl Z3MtPnBzdy5tYXNrICYgflBTV19NQVNLX0FTQyk7DQogCXJlZ3MtPnBzdy5hZGRyID0gKHVuc2ln bmVkIGxvbmcpIGthLT5zYS5zYV9oYW5kbGVyIHwgUFNXX0FERFJfQU1PREU7DQogDQogCXJlZ3Mt PmdwcnNbMl0gPSBtYXBfc2lnbmFsKHNpZyk7DQpAQCAtMzYyLDcgKzM2OSwxMCBAQCBzdGF0aWMg aW50IHNldHVwX3J0X2ZyYW1lKGludCBzaWcsIHN0cnVjdCBrX3NpZ2FjdGlvbiAqa2EsIHNpZ2lu Zm9fdCAqaW5mbywNCiANCiAJLyogU2V0IHVwIHJlZ2lzdGVycyBmb3Igc2lnbmFsIGhhbmRsZXIg Ki8NCiAJcmVncy0+Z3Byc1sxNV0gPSAodW5zaWduZWQgbG9uZykgZnJhbWU7DQotCXJlZ3MtPnBz dy5tYXNrIHw9IFBTV19NQVNLX0VBIHwgUFNXX01BU0tfQkE7CS8qIDY0IGJpdCBhbW9kZSAqLw0K KwkvKiBGb3JjZSBkZWZhdWx0IGFtb2RlIGFuZCBkZWZhdWx0IHVzZXIgYWRkcmVzcyBzcGFjZSBj b250cm9sLiAqLw0KKwlyZWdzLT5wc3cubWFzayA9IFBTV19NQVNLX0VBIHwgUFNXX01BU0tfQkEg fA0KKwkJKHBzd191c2VyX2JpdHMgJiBQU1dfTUFTS19BU0MpIHwNCisJCShyZWdzLT5wc3cubWFz ayAmIH5QU1dfTUFTS19BU0MpOw0KIAlyZWdzLT5wc3cuYWRkciA9ICh1bnNpZ25lZCBsb25nKSBr YS0+c2Euc2FfaGFuZGxlciB8IFBTV19BRERSX0FNT0RFOw0KIA0KIAlyZWdzLT5ncHJzWzJdID0g bWFwX3NpZ25hbChzaWcpOw0KZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9tbS9ndXAuYyBiL2FyY2gv czM5MC9tbS9ndXAuYw0KaW5kZXggNjVjYjA2ZS4uNGNjZjlmNSAxMDA2NDQNCi0tLSBhL2FyY2gv czM5MC9tbS9ndXAuYw0KKysrIGIvYXJjaC9zMzkwL21tL2d1cC5jDQpAQCAtMTgzLDcgKzE4Myw3 IEBAIGludCBnZXRfdXNlcl9wYWdlc19mYXN0KHVuc2lnbmVkIGxvbmcgc3RhcnQsIGludCBucl9w YWdlcywgaW50IHdyaXRlLA0KIAlhZGRyID0gc3RhcnQ7DQogCWxlbiA9ICh1bnNpZ25lZCBsb25n KSBucl9wYWdlcyA8PCBQQUdFX1NISUZUOw0KIAllbmQgPSBzdGFydCArIGxlbjsNCi0JaWYgKGVu ZCA8IHN0YXJ0KQ0KKwlpZiAoKGVuZCA8IHN0YXJ0KSB8fCAoZW5kID4gVEFTS19TSVpFKSkNCiAJ CWdvdG8gc2xvd19pcnFvbjsNCiANCiAJLyoNCmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2tlcm5l bC9zaWduYWxfNjQuYyBiL2FyY2gvc3BhcmMva2VybmVsL3NpZ25hbF82NC5jDQppbmRleCBmMDgz NmNkLi5kNThkM2VkIDEwMDY0NA0KLS0tIGEvYXJjaC9zcGFyYy9rZXJuZWwvc2lnbmFsXzY0LmMN CisrKyBiL2FyY2gvc3BhcmMva2VybmVsL3NpZ25hbF82NC5jDQpAQCAtMzA3LDkgKzMwNyw3IEBA IHZvaWQgZG9fcnRfc2lncmV0dXJuKHN0cnVjdCBwdF9yZWdzICpyZWdzKQ0KIAkJZXJyIHw9IHJl c3RvcmVfZnB1X3N0YXRlKHJlZ3MsIGZwdV9zYXZlKTsNCiANCiAJZXJyIHw9IF9fY29weV9mcm9t X3VzZXIoJnNldCwgJnNmLT5tYXNrLCBzaXplb2Yoc2lnc2V0X3QpKTsNCi0JZXJyIHw9IGRvX3Np Z2FsdHN0YWNrKCZzZi0+c3RhY2ssIE5VTEwsICh1bnNpZ25lZCBsb25nKXNmKTsNCi0NCi0JaWYg KGVycikNCisJaWYgKGVyciB8fCBkb19zaWdhbHRzdGFjaygmc2YtPnN0YWNrLCBOVUxMLCAodW5z aWduZWQgbG9uZylzZikgPT0gLUVGQVVMVCkNCiAJCWdvdG8gc2VndjsNCiANCiAJZXJyIHw9IF9f Z2V0X3VzZXIocndpbl9zYXZlLCAmc2YtPnJ3aW5fc2F2ZSk7DQpkaWZmIC0tZ2l0IGEvYXJjaC94 ODYvaW5jbHVkZS9hc20vcHRyYWNlLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wdHJhY2UuaA0K aW5kZXggMzU2NjQ1NC4uM2I5NmZkNCAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNt L3B0cmFjZS5oDQorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wdHJhY2UuaA0KQEAgLTIwNiwy MSArMjA2LDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB1c2VyXzY0Yml0X21vZGUoc3RydWN0IHB0 X3JlZ3MgKnJlZ3MpDQogfQ0KICNlbmRpZg0KIA0KLS8qDQotICogWDg2XzMyIENQVXMgZG9uJ3Qg c2F2ZSBzcyBhbmQgZXNwIGlmIHRoZSBDUFUgaXMgYWxyZWFkeSBpbiBrZXJuZWwgbW9kZQ0KLSAq IHdoZW4gaXQgdHJhcHMuICBUaGUgcHJldmlvdXMgc3RhY2sgd2lsbCBiZSBkaXJlY3RseSB1bmRl cm5lYXRoIHRoZSBzYXZlZA0KLSAqIHJlZ2lzdGVycywgYW5kICdzcC9zcycgd29uJ3QgZXZlbiBo YXZlIGJlZW4gc2F2ZWQuIFRodXMgdGhlICcmcmVncy0+c3AnLg0KLSAqDQotICogVGhpcyBpcyB2 YWxpZCBvbmx5IGZvciBrZXJuZWwgbW9kZSB0cmFwcy4NCi0gKi8NCi1zdGF0aWMgaW5saW5lIHVu c2lnbmVkIGxvbmcga2VybmVsX3N0YWNrX3BvaW50ZXIoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpDQot ew0KICNpZmRlZiBDT05GSUdfWDg2XzMyDQotCXJldHVybiAodW5zaWduZWQgbG9uZykoJnJlZ3Mt PnNwKTsNCitleHRlcm4gdW5zaWduZWQgbG9uZyBrZXJuZWxfc3RhY2tfcG9pbnRlcihzdHJ1Y3Qg cHRfcmVncyAqcmVncyk7DQogI2Vsc2UNCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcga2Vy bmVsX3N0YWNrX3BvaW50ZXIoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpDQorew0KIAlyZXR1cm4gcmVn cy0+c3A7DQotI2VuZGlmDQogfQ0KKyNlbmRpZg0KIA0KICNkZWZpbmUgR0VUX0lQKHJlZ3MpICgo cmVncyktPmlwKQ0KICNkZWZpbmUgR0VUX0ZQKHJlZ3MpICgocmVncyktPmJwKQ0KZGlmZiAtLWdp dCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvYW1kLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2FtZC5j DQppbmRleCBmZjg1NTdlLi5mMDdiZWNjIDEwMDY0NA0KLS0tIGEvYXJjaC94ODYva2VybmVsL2Nw dS9hbWQuYw0KKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9hbWQuYw0KQEAgLTU4Nyw2ICs1ODcs MjAgQEAgc3RhdGljIHZvaWQgX19jcHVpbml0IGluaXRfYW1kKHN0cnVjdCBjcHVpbmZvX3g4NiAq YykNCiAJCX0NCiAJfQ0KIA0KKwkvKg0KKwkgKiBUaGUgd2F5IGFjY2VzcyBmaWx0ZXIgaGFzIGEg cGVyZm9ybWFuY2UgcGVuYWx0eSBvbiBzb21lIHdvcmtsb2Fkcy4NCisJICogRGlzYWJsZSBpdCBv biB0aGUgYWZmZWN0ZWQgQ1BVcy4NCisJICovDQorCWlmICgoYy0+eDg2ID09IDB4MTUpICYmDQor CSAgICAoYy0+eDg2X21vZGVsID49IDB4MDIpICYmIChjLT54ODZfbW9kZWwgPCAweDIwKSkgew0K KwkJdTY0IHZhbDsNCisNCisJCWlmICghcmRtc3JsX3NhZmUoMHhjMDAxMTAyMSwgJnZhbCkgJiYg ISh2YWwgJiAweDFFKSkgew0KKwkJCXZhbCB8PSAweDFFOw0KKwkJCWNoZWNraW5nX3dybXNybCgw eGMwMDExMDIxLCB2YWwpOw0KKwkJfQ0KKwl9DQorDQogCWNwdV9kZXRlY3RfY2FjaGVfc2l6ZXMo Yyk7DQogDQogCS8qIE11bHRpIGNvcmUgQ1BVPyAqLw0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tl cm5lbC9jcHUvbWNoZWNrL3RoZXJtX3Rocm90LmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jaGVj ay90aGVybV90aHJvdC5jDQppbmRleCA3ODdlMDZjLi5jZTA0YjU4IDEwMDY0NA0KLS0tIGEvYXJj aC94ODYva2VybmVsL2NwdS9tY2hlY2svdGhlcm1fdGhyb3QuYw0KKysrIGIvYXJjaC94ODYva2Vy bmVsL2NwdS9tY2hlY2svdGhlcm1fdGhyb3QuYw0KQEAgLTMyMywxNyArMzIzLDYgQEAgZGV2aWNl X2luaXRjYWxsKHRoZXJtYWxfdGhyb3R0bGVfaW5pdF9kZXZpY2UpOw0KIA0KICNlbmRpZiAvKiBD T05GSUdfU1lTRlMgKi8NCiANCi0vKg0KLSAqIFNldCB1cCB0aGUgbW9zdCB0d28gc2lnbmlmaWNh bnQgYml0IHRvIG5vdGlmeSBtY2UgbG9nIHRoYXQgdGhpcyB0aGVybWFsDQotICogZXZlbnQgdHlw ZS4NCi0gKiBUaGlzIGlzIGEgdGVtcCBzb2x1dGlvbi4gTWF5IGJlIGNoYW5nZWQgaW4gdGhlIGZ1 dHVyZSB3aXRoIG1jZSBsb2cNCi0gKiBpbmZyYXN0dXJlLg0KLSAqLw0KLSNkZWZpbmUgQ09SRV9U SFJPVFRMRUQJCSgwKQ0KLSNkZWZpbmUgQ09SRV9QT1dFUl9MSU1JVAkoKF9fdTY0KTEgPDwgNjIp DQotI2RlZmluZSBQQUNLQUdFX1RIUk9UVExFRAkoKF9fdTY0KTIgPDwgNjIpDQotI2RlZmluZSBQ QUNLQUdFX1BPV0VSX0xJTUlUCSgoX191NjQpMyA8PCA2MikNCi0NCiBzdGF0aWMgdm9pZCBub3Rp ZnlfdGhyZXNob2xkcyhfX3U2NCBtc3JfdmFsKQ0KIHsNCiAJLyogY2hlY2sgd2hldGhlciB0aGUg aW50ZXJydXB0IGhhbmRsZXIgaXMgZGVmaW5lZDsNCkBAIC0zNjMsMjcgKzM1MiwyMyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF90aGVybWFsX2ludGVycnVwdCh2b2lkKQ0KIAlpZiAodGhlcm1fdGhyb3Rf cHJvY2Vzcyhtc3JfdmFsICYgVEhFUk1fU1RBVFVTX1BST0NIT1QsDQogCQkJCVRIRVJNQUxfVEhS T1RUTElOR19FVkVOVCwNCiAJCQkJQ09SRV9MRVZFTCkgIT0gMCkNCi0JCW1jZV9sb2dfdGhlcm1f dGhyb3RfZXZlbnQoQ09SRV9USFJPVFRMRUQgfCBtc3JfdmFsKTsNCisJCW1jZV9sb2dfdGhlcm1f dGhyb3RfZXZlbnQobXNyX3ZhbCk7DQogDQogCWlmICh0aGlzX2NwdV9oYXMoWDg2X0ZFQVRVUkVf UExOKSkNCi0JCWlmICh0aGVybV90aHJvdF9wcm9jZXNzKG1zcl92YWwgJiBUSEVSTV9TVEFUVVNf UE9XRVJfTElNSVQsDQorCQl0aGVybV90aHJvdF9wcm9jZXNzKG1zcl92YWwgJiBUSEVSTV9TVEFU VVNfUE9XRVJfTElNSVQsDQogCQkJCQlQT1dFUl9MSU1JVF9FVkVOVCwNCi0JCQkJCUNPUkVfTEVW RUwpICE9IDApDQotCQkJbWNlX2xvZ190aGVybV90aHJvdF9ldmVudChDT1JFX1BPV0VSX0xJTUlU IHwgbXNyX3ZhbCk7DQorCQkJCQlDT1JFX0xFVkVMKTsNCiANCiAJaWYgKHRoaXNfY3B1X2hhcyhY ODZfRkVBVFVSRV9QVFMpKSB7DQogCQlyZG1zcmwoTVNSX0lBMzJfUEFDS0FHRV9USEVSTV9TVEFU VVMsIG1zcl92YWwpOw0KLQkJaWYgKHRoZXJtX3Rocm90X3Byb2Nlc3MobXNyX3ZhbCAmIFBBQ0tB R0VfVEhFUk1fU1RBVFVTX1BST0NIT1QsDQorCQl0aGVybV90aHJvdF9wcm9jZXNzKG1zcl92YWwg JiBQQUNLQUdFX1RIRVJNX1NUQVRVU19QUk9DSE9ULA0KIAkJCQkJVEhFUk1BTF9USFJPVFRMSU5H X0VWRU5ULA0KLQkJCQkJUEFDS0FHRV9MRVZFTCkgIT0gMCkNCi0JCQltY2VfbG9nX3RoZXJtX3Ro cm90X2V2ZW50KFBBQ0tBR0VfVEhST1RUTEVEIHwgbXNyX3ZhbCk7DQorCQkJCQlQQUNLQUdFX0xF VkVMKTsNCiAJCWlmICh0aGlzX2NwdV9oYXMoWDg2X0ZFQVRVUkVfUExOKSkNCi0JCQlpZiAodGhl cm1fdGhyb3RfcHJvY2Vzcyhtc3JfdmFsICYNCisJCQl0aGVybV90aHJvdF9wcm9jZXNzKG1zcl92 YWwgJg0KIAkJCQkJUEFDS0FHRV9USEVSTV9TVEFUVVNfUE9XRVJfTElNSVQsDQogCQkJCQlQT1dF Ul9MSU1JVF9FVkVOVCwNCi0JCQkJCVBBQ0tBR0VfTEVWRUwpICE9IDApDQotCQkJCW1jZV9sb2df dGhlcm1fdGhyb3RfZXZlbnQoUEFDS0FHRV9QT1dFUl9MSU1JVA0KLQkJCQkJCQkgIHwgbXNyX3Zh bCk7DQorCQkJCQlQQUNLQUdFX0xFVkVMKTsNCiAJfQ0KIH0NCiANCmRpZmYgLS1naXQgYS9hcmNo L3g4Ni9rZXJuZWwvbWljcm9jb2RlX2FtZC5jIGIvYXJjaC94ODYva2VybmVsL21pY3JvY29kZV9h bWQuYw0KaW5kZXggYWM1MmMxNS4uMWVmOTYyYiAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L2tlcm5l bC9taWNyb2NvZGVfYW1kLmMNCisrKyBiL2FyY2gveDg2L2tlcm5lbC9taWNyb2NvZGVfYW1kLmMN CkBAIC0xNjMsNiArMTYzLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCB2ZXJpZnlfdWNvZGVfc2l6 ZShpbnQgY3B1LCBjb25zdCB1OCAqYnVmLCB1bnNpZ25lZCBpbnQgc2l6ZSkNCiAjZGVmaW5lIEYx WEhfTVBCX01BWF9TSVpFIDIwNDgNCiAjZGVmaW5lIEYxNEhfTVBCX01BWF9TSVpFIDE4MjQNCiAj ZGVmaW5lIEYxNUhfTVBCX01BWF9TSVpFIDQwOTYNCisjZGVmaW5lIEYxNkhfTVBCX01BWF9TSVpF IDM0NTgNCiANCiAJc3dpdGNoIChjLT54ODYpIHsNCiAJY2FzZSAweDE0Og0KQEAgLTE3MSw2ICsx NzIsOSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHZlcmlmeV91Y29kZV9zaXplKGludCBjcHUsIGNv bnN0IHU4ICpidWYsIHVuc2lnbmVkIGludCBzaXplKQ0KIAljYXNlIDB4MTU6DQogCQltYXhfc2l6 ZSA9IEYxNUhfTVBCX01BWF9TSVpFOw0KIAkJYnJlYWs7DQorCWNhc2UgMHgxNjoNCisJCW1heF9z aXplID0gRjE2SF9NUEJfTUFYX1NJWkU7DQorCQlicmVhazsNCiAJZGVmYXVsdDoNCiAJCW1heF9z aXplID0gRjFYSF9NUEJfTUFYX1NJWkU7DQogCQlicmVhazsNCmRpZmYgLS1naXQgYS9hcmNoL3g4 Ni9rZXJuZWwvcHRyYWNlLmMgYi9hcmNoL3g4Ni9rZXJuZWwvcHRyYWNlLmMNCmluZGV4IDgyNTI4 NzkuLjJkYzQxMjEgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcHRyYWNlLmMNCisrKyBi L2FyY2gveDg2L2tlcm5lbC9wdHJhY2UuYw0KQEAgLTIxLDYgKzIxLDcgQEANCiAjaW5jbHVkZSA8 bGludXgvc2lnbmFsLmg+DQogI2luY2x1ZGUgPGxpbnV4L3BlcmZfZXZlbnQuaD4NCiAjaW5jbHVk ZSA8bGludXgvaHdfYnJlYWtwb2ludC5oPg0KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCiAN CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4NCiAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4NCkBA IC0xNjQsNiArMTY1LDM1IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpbnZhbGlkX3NlbGVjdG9yKHUx NiB2YWx1ZSkNCiANCiAjZGVmaW5lIEZMQUdfTUFTSwkJRkxBR19NQVNLXzMyDQogDQorLyoNCisg KiBYODZfMzIgQ1BVcyBkb24ndCBzYXZlIHNzIGFuZCBlc3AgaWYgdGhlIENQVSBpcyBhbHJlYWR5 IGluIGtlcm5lbCBtb2RlDQorICogd2hlbiBpdCB0cmFwcy4gIFRoZSBwcmV2aW91cyBzdGFjayB3 aWxsIGJlIGRpcmVjdGx5IHVuZGVybmVhdGggdGhlIHNhdmVkDQorICogcmVnaXN0ZXJzLCBhbmQg J3NwL3NzJyB3b24ndCBldmVuIGhhdmUgYmVlbiBzYXZlZC4gVGh1cyB0aGUgJyZyZWdzLT5zcCcu DQorICoNCisgKiBOb3csIGlmIHRoZSBzdGFjayBpcyBlbXB0eSwgJyZyZWdzLT5zcCcgaXMgb3V0 IG9mIHJhbmdlLiBJbiB0aGlzDQorICogY2FzZSB3ZSB0cnkgdG8gdGFrZSB0aGUgcHJldmlvdXMg c3RhY2suIFRvIGFsd2F5cyByZXR1cm4gYSBub24tbnVsbA0KKyAqIHN0YWNrIHBvaW50ZXIgd2Ug ZmFsbCBiYWNrIHRvIHJlZ3MgYXMgc3RhY2sgaWYgbm8gcHJldmlvdXMgc3RhY2sNCisgKiBleGlz dHMuDQorICoNCisgKiBUaGlzIGlzIHZhbGlkIG9ubHkgZm9yIGtlcm5lbCBtb2RlIHRyYXBzLg0K KyAqLw0KK3Vuc2lnbmVkIGxvbmcga2VybmVsX3N0YWNrX3BvaW50ZXIoc3RydWN0IHB0X3JlZ3Mg KnJlZ3MpDQorew0KKwl1bnNpZ25lZCBsb25nIGNvbnRleHQgPSAodW5zaWduZWQgbG9uZylyZWdz ICYgfihUSFJFQURfU0laRSAtIDEpOw0KKwl1bnNpZ25lZCBsb25nIHNwID0gKHVuc2lnbmVkIGxv bmcpJnJlZ3MtPnNwOw0KKwlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpbmZvOw0KKw0KKwlpZiAoY29u dGV4dCA9PSAoc3AgJiB+KFRIUkVBRF9TSVpFIC0gMSkpKQ0KKwkJcmV0dXJuIHNwOw0KKw0KKwl0 aW5mbyA9IChzdHJ1Y3QgdGhyZWFkX2luZm8gKiljb250ZXh0Ow0KKwlpZiAodGluZm8tPnByZXZp b3VzX2VzcCkNCisJCXJldHVybiB0aW5mby0+cHJldmlvdXNfZXNwOw0KKw0KKwlyZXR1cm4gKHVu c2lnbmVkIGxvbmcpcmVnczsNCit9DQorRVhQT1JUX1NZTUJPTF9HUEwoa2VybmVsX3N0YWNrX3Bv aW50ZXIpOw0KKw0KIHN0YXRpYyB1bnNpZ25lZCBsb25nICpwdF9yZWdzX2FjY2VzcyhzdHJ1Y3Qg cHRfcmVncyAqcmVncywgdW5zaWduZWQgbG9uZyByZWdubykNCiB7DQogCUJVSUxEX0JVR19PTihv ZmZzZXRvZihzdHJ1Y3QgcHRfcmVncywgYngpICE9IDApOw0KZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2tlcm5lbC9zZXR1cC5jIGIvYXJjaC94ODYva2VybmVsL3NldHVwLmMNCmluZGV4IGNmMGVmOTgu LjBkNDAzYWEgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvc2V0dXAuYw0KKysrIGIvYXJj aC94ODYva2VybmVsL3NldHVwLmMNCkBAIC05MzcsOCArOTM3LDIxIEBAIHZvaWQgX19pbml0IHNl dHVwX2FyY2goY2hhciAqKmNtZGxpbmVfcCkNCiANCiAjaWZkZWYgQ09ORklHX1g4Nl82NA0KIAlp ZiAobWF4X3BmbiA+IG1heF9sb3dfcGZuKSB7DQotCQltYXhfcGZuX21hcHBlZCA9IGluaXRfbWVt b3J5X21hcHBpbmcoMVVMPDwzMiwNCi0JCQkJCQkgICAgIG1heF9wZm48PFBBR0VfU0hJRlQpOw0K KwkJaW50IGk7DQorCQlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgew0KKwkJCXN0 cnVjdCBlODIwZW50cnkgKmVpID0gJmU4MjAubWFwW2ldOw0KKw0KKwkJCWlmIChlaS0+YWRkciAr IGVpLT5zaXplIDw9IDFVTCA8PCAzMikNCisJCQkJY29udGludWU7DQorDQorCQkJaWYgKGVpLT50 eXBlID09IEU4MjBfUkVTRVJWRUQpDQorCQkJCWNvbnRpbnVlOw0KKw0KKwkJCW1heF9wZm5fbWFw cGVkID0gaW5pdF9tZW1vcnlfbWFwcGluZygNCisJCQkJZWktPmFkZHIgPCAxVUwgPDwgMzIgPyAx VUwgPDwgMzIgOiBlaS0+YWRkciwNCisJCQkJZWktPmFkZHIgKyBlaS0+c2l6ZSk7DQorCQl9DQor DQogCQkvKiBjYW4gd2UgcHJlc2V2ZSBtYXhfbG93X3BmbiA/Ki8NCiAJCW1heF9sb3dfcGZuID0g bWF4X3BmbjsNCiAJfQ0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL2luaXQuYyBiL2FyY2gveDg2 L21tL2luaXQuYw0KaW5kZXggODc0ODhiOS4uMzRhN2Y0MCAxMDA2NDQNCi0tLSBhL2FyY2gveDg2 L21tL2luaXQuYw0KKysrIGIvYXJjaC94ODYvbW0vaW5pdC5jDQpAQCAtMjgsMzYgKzI4LDUwIEBA IGludCBkaXJlY3RfZ2JwYWdlcw0KICNlbmRpZg0KIDsNCiANCi1zdGF0aWMgdm9pZCBfX2luaXQg ZmluZF9lYXJseV90YWJsZV9zcGFjZSh1bnNpZ25lZCBsb25nIGVuZCwgaW50IHVzZV9wc2UsDQot CQkJCQkgIGludCB1c2VfZ2JwYWdlcykNCitzdHJ1Y3QgbWFwX3JhbmdlIHsNCisJdW5zaWduZWQg bG9uZyBzdGFydDsNCisJdW5zaWduZWQgbG9uZyBlbmQ7DQorCXVuc2lnbmVkIHBhZ2Vfc2l6ZV9t YXNrOw0KK307DQorDQorLyoNCisgKiBGaXJzdCBjYWxjdWxhdGUgc3BhY2UgbmVlZGVkIGZvciBr ZXJuZWwgZGlyZWN0IG1hcHBpbmcgcGFnZSB0YWJsZXMgdG8gY292ZXINCisgKiBtclswXS5zdGFy dCB0byBtcltucl9yYW5nZSAtIDFdLmVuZCwgd2hpbGUgYWNjb3VudGluZyBmb3IgcG9zc2libGUg Mk0gYW5kIDFHQg0KKyAqIHBhZ2VzLiBUaGVuIGZpbmQgZW5vdWdoIGNvbnRpZ3VvdXMgc3BhY2Ug Zm9yIHRob3NlIHBhZ2UgdGFibGVzLg0KKyAqLw0KK3N0YXRpYyB2b2lkIF9faW5pdCBmaW5kX2Vh cmx5X3RhYmxlX3NwYWNlKHN0cnVjdCBtYXBfcmFuZ2UgKm1yLCBpbnQgbnJfcmFuZ2UpDQogew0K LQl1bnNpZ25lZCBsb25nIHB1ZHMsIHBtZHMsIHB0ZXMsIHRhYmxlcywgc3RhcnQgPSAwLCBnb29k X2VuZCA9IGVuZDsNCisJaW50IGk7DQorCXVuc2lnbmVkIGxvbmcgcHVkcyA9IDAsIHBtZHMgPSAw LCBwdGVzID0gMCwgdGFibGVzOw0KKwl1bnNpZ25lZCBsb25nIHN0YXJ0ID0gMCwgZ29vZF9lbmQ7 DQogCXBoeXNfYWRkcl90IGJhc2U7DQogDQotCXB1ZHMgPSAoZW5kICsgUFVEX1NJWkUgLSAxKSA+ PiBQVURfU0hJRlQ7DQotCXRhYmxlcyA9IHJvdW5kdXAocHVkcyAqIHNpemVvZihwdWRfdCksIFBB R0VfU0laRSk7DQorCWZvciAoaSA9IDA7IGkgPCBucl9yYW5nZTsgaSsrKSB7DQorCQl1bnNpZ25l ZCBsb25nIHJhbmdlLCBleHRyYTsNCiANCi0JaWYgKHVzZV9nYnBhZ2VzKSB7DQotCQl1bnNpZ25l ZCBsb25nIGV4dHJhOw0KKwkJcmFuZ2UgPSBtcltpXS5lbmQgLSBtcltpXS5zdGFydDsNCisJCXB1 ZHMgKz0gKHJhbmdlICsgUFVEX1NJWkUgLSAxKSA+PiBQVURfU0hJRlQ7DQogDQotCQlleHRyYSA9 IGVuZCAtICgoZW5kPj5QVURfU0hJRlQpIDw8IFBVRF9TSElGVCk7DQotCQlwbWRzID0gKGV4dHJh ICsgUE1EX1NJWkUgLSAxKSA+PiBQTURfU0hJRlQ7DQotCX0gZWxzZQ0KLQkJcG1kcyA9IChlbmQg KyBQTURfU0laRSAtIDEpID4+IFBNRF9TSElGVDsNCi0NCi0JdGFibGVzICs9IHJvdW5kdXAocG1k cyAqIHNpemVvZihwbWRfdCksIFBBR0VfU0laRSk7DQorCQlpZiAobXJbaV0ucGFnZV9zaXplX21h c2sgJiAoMSA8PCBQR19MRVZFTF8xRykpIHsNCisJCQlleHRyYSA9IHJhbmdlIC0gKChyYW5nZSA+ PiBQVURfU0hJRlQpIDw8IFBVRF9TSElGVCk7DQorCQkJcG1kcyArPSAoZXh0cmEgKyBQTURfU0la RSAtIDEpID4+IFBNRF9TSElGVDsNCisJCX0gZWxzZSB7DQorCQkJcG1kcyArPSAocmFuZ2UgKyBQ TURfU0laRSAtIDEpID4+IFBNRF9TSElGVDsNCisJCX0NCiANCi0JaWYgKHVzZV9wc2UpIHsNCi0J CXVuc2lnbmVkIGxvbmcgZXh0cmE7DQotDQotCQlleHRyYSA9IGVuZCAtICgoZW5kPj5QTURfU0hJ RlQpIDw8IFBNRF9TSElGVCk7DQorCQlpZiAobXJbaV0ucGFnZV9zaXplX21hc2sgJiAoMSA8PCBQ R19MRVZFTF8yTSkpIHsNCisJCQlleHRyYSA9IHJhbmdlIC0gKChyYW5nZSA+PiBQTURfU0hJRlQp IDw8IFBNRF9TSElGVCk7DQogI2lmZGVmIENPTkZJR19YODZfMzINCi0JCWV4dHJhICs9IFBNRF9T SVpFOw0KKwkJCWV4dHJhICs9IFBNRF9TSVpFOw0KICNlbmRpZg0KLQkJcHRlcyA9IChleHRyYSAr IFBBR0VfU0laRSAtIDEpID4+IFBBR0VfU0hJRlQ7DQotCX0gZWxzZQ0KLQkJcHRlcyA9IChlbmQg KyBQQUdFX1NJWkUgLSAxKSA+PiBQQUdFX1NISUZUOw0KKwkJCXB0ZXMgKz0gKGV4dHJhICsgUEFH RV9TSVpFIC0gMSkgPj4gUEFHRV9TSElGVDsNCisJCX0gZWxzZSB7DQorCQkJcHRlcyArPSAocmFu Z2UgKyBQQUdFX1NJWkUgLSAxKSA+PiBQQUdFX1NISUZUOw0KKwkJfQ0KKwl9DQogDQorCXRhYmxl cyA9IHJvdW5kdXAocHVkcyAqIHNpemVvZihwdWRfdCksIFBBR0VfU0laRSk7DQorCXRhYmxlcyAr PSByb3VuZHVwKHBtZHMgKiBzaXplb2YocG1kX3QpLCBQQUdFX1NJWkUpOw0KIAl0YWJsZXMgKz0g cm91bmR1cChwdGVzICogc2l6ZW9mKHB0ZV90KSwgUEFHRV9TSVpFKTsNCiANCiAjaWZkZWYgQ09O RklHX1g4Nl8zMg0KQEAgLTc1LDcgKzg5LDggQEAgc3RhdGljIHZvaWQgX19pbml0IGZpbmRfZWFy bHlfdGFibGVfc3BhY2UodW5zaWduZWQgbG9uZyBlbmQsIGludCB1c2VfcHNlLA0KIAlwZ3RfYnVm X3RvcCA9IHBndF9idWZfc3RhcnQgKyAodGFibGVzID4+IFBBR0VfU0hJRlQpOw0KIA0KIAlwcmlu dGsoS0VSTl9ERUJVRyAia2VybmVsIGRpcmVjdCBtYXBwaW5nIHRhYmxlcyB1cCB0byAlbHggQCAl bHgtJWx4XG4iLA0KLQkJZW5kLCBwZ3RfYnVmX3N0YXJ0IDw8IFBBR0VfU0hJRlQsIHBndF9idWZf dG9wIDw8IFBBR0VfU0hJRlQpOw0KKwkJbXJbbnJfcmFuZ2UgLSAxXS5lbmQsIHBndF9idWZfc3Rh cnQgPDwgUEFHRV9TSElGVCwNCisJCXBndF9idWZfdG9wIDw8IFBBR0VfU0hJRlQpOw0KIH0NCiAN CiB2b2lkIF9faW5pdCBuYXRpdmVfcGFnZXRhYmxlX3Jlc2VydmUodTY0IHN0YXJ0LCB1NjQgZW5k KQ0KQEAgLTgzLDEyICs5OCw2IEBAIHZvaWQgX19pbml0IG5hdGl2ZV9wYWdldGFibGVfcmVzZXJ2 ZSh1NjQgc3RhcnQsIHU2NCBlbmQpDQogCW1lbWJsb2NrX3g4Nl9yZXNlcnZlX3JhbmdlKHN0YXJ0 LCBlbmQsICJQR1RBQkxFIik7DQogfQ0KIA0KLXN0cnVjdCBtYXBfcmFuZ2Ugew0KLQl1bnNpZ25l ZCBsb25nIHN0YXJ0Ow0KLQl1bnNpZ25lZCBsb25nIGVuZDsNCi0JdW5zaWduZWQgcGFnZV9zaXpl X21hc2s7DQotfTsNCi0NCiAjaWZkZWYgQ09ORklHX1g4Nl8zMg0KICNkZWZpbmUgTlJfUkFOR0Vf TVIgMw0KICNlbHNlIC8qIENPTkZJR19YODZfNjQgKi8NCkBAIC0yNjAsNyArMjY5LDcgQEAgdW5z aWduZWQgbG9uZyBfX2luaXRfcmVmb2sgaW5pdF9tZW1vcnlfbWFwcGluZyh1bnNpZ25lZCBsb25n IHN0YXJ0LA0KIAkgKiBub2RlcyBhcmUgZGlzY292ZXJlZC4NCiAJICovDQogCWlmICghYWZ0ZXJf Ym9vdG1lbSkNCi0JCWZpbmRfZWFybHlfdGFibGVfc3BhY2UoZW5kLCB1c2VfcHNlLCB1c2VfZ2Jw YWdlcyk7DQorCQlmaW5kX2Vhcmx5X3RhYmxlX3NwYWNlKG1yLCBucl9yYW5nZSk7DQogDQogCWZv ciAoaSA9IDA7IGkgPCBucl9yYW5nZTsgaSsrKQ0KIAkJcmV0ID0ga2VybmVsX3BoeXNpY2FsX21h cHBpbmdfaW5pdChtcltpXS5zdGFydCwgbXJbaV0uZW5kLA0KZGlmZiAtLWdpdCBhL2Jsb2NrL2Js ay1leGVjLmMgYi9ibG9jay9ibGstZXhlYy5jDQppbmRleCA2MDUzMjg1Li5hYzJjNmU3IDEwMDY0 NA0KLS0tIGEvYmxvY2svYmxrLWV4ZWMuYw0KKysrIGIvYmxvY2svYmxrLWV4ZWMuYw0KQEAgLTQ5 LDYgKzQ5LDcgQEAgdm9pZCBibGtfZXhlY3V0ZV9ycV9ub3dhaXQoc3RydWN0IHJlcXVlc3RfcXVl dWUgKnEsIHN0cnVjdCBnZW5kaXNrICpiZF9kaXNrLA0KIAkJCSAgIHJxX2VuZF9pb19mbiAqZG9u ZSkNCiB7DQogCWludCB3aGVyZSA9IGF0X2hlYWQgPyBFTEVWQVRPUl9JTlNFUlRfRlJPTlQgOiBF TEVWQVRPUl9JTlNFUlRfQkFDSzsNCisJYm9vbCBpc19wbV9yZXN1bWU7DQogDQogCWlmICh1bmxp a2VseShibGtfcXVldWVfZGVhZChxKSkpIHsNCiAJCXJxLT5lcnJvcnMgPSAtRU5YSU87DQpAQCAt NTksMTIgKzYwLDE4IEBAIHZvaWQgYmxrX2V4ZWN1dGVfcnFfbm93YWl0KHN0cnVjdCByZXF1ZXN0 X3F1ZXVlICpxLCBzdHJ1Y3QgZ2VuZGlzayAqYmRfZGlzaywNCiANCiAJcnEtPnJxX2Rpc2sgPSBi ZF9kaXNrOw0KIAlycS0+ZW5kX2lvID0gZG9uZTsNCisJLyoNCisJICogbmVlZCB0byBjaGVjayB0 aGlzIGJlZm9yZSBfX2Jsa19ydW5fcXVldWUoKSwgYmVjYXVzZSBycSBjYW4NCisJICogYmUgZnJl ZWQgYmVmb3JlIHRoYXQgcmV0dXJucy4NCisJICovDQorCWlzX3BtX3Jlc3VtZSA9IHJxLT5jbWRf dHlwZSA9PSBSRVFfVFlQRV9QTV9SRVNVTUU7DQorDQogCVdBUk5fT04oaXJxc19kaXNhYmxlZCgp KTsNCiAJc3Bpbl9sb2NrX2lycShxLT5xdWV1ZV9sb2NrKTsNCiAJX19lbHZfYWRkX3JlcXVlc3Qo cSwgcnEsIHdoZXJlKTsNCiAJX19ibGtfcnVuX3F1ZXVlKHEpOw0KIAkvKiB0aGUgcXVldWUgaXMg c3RvcHBlZCBzbyBpdCB3b24ndCBiZSBydW4gKi8NCi0JaWYgKHJxLT5jbWRfdHlwZSA9PSBSRVFf VFlQRV9QTV9SRVNVTUUpDQorCWlmIChpc19wbV9yZXN1bWUpDQogCQlxLT5yZXF1ZXN0X2ZuKHEp Ow0KIAlzcGluX3VubG9ja19pcnEocS0+cXVldWVfbG9jayk7DQogfQ0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oDQppbmRleCBjMzY0MzU4Li43OTFkZjQ2IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaA0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aA0KQEAgLTM3NCw2ICszNzQsOCBAQCB0eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsN CiAJdW5zaWduZWQgaW50IGx2ZHNfdXNlX3NzYzoxOw0KIAl1bnNpZ25lZCBpbnQgZGlzcGxheV9j bG9ja19tb2RlOjE7DQogCWludCBsdmRzX3NzY19mcmVxOw0KKwl1bnNpZ25lZCBpbnQgYmlvc19s dmRzX3ZhbDsgLyogaW5pdGlhbCBbUENIX11MVkRTIHJlZyB2YWwgaW4gVkJJT1MgKi8NCisJdW5z aWduZWQgaW50IGx2ZHNfdmFsOyAvKiB1c2VkIGZvciBjaGVja2luZyBMVkRTIGNoYW5uZWwgbW9k ZSAqLw0KIAlzdHJ1Y3Qgew0KIAkJaW50IHJhdGU7DQogCQlpbnQgbGFuZXM7DQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYmlvcy5jDQppbmRleCAyMmVmYjA4Li44N2JiODdiIDEwMDY0NA0KLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9iaW9zLmMNCkBAIC0xNzQsNiArMTc0LDI4IEBAIGdldF9sdmRzX2R2b190aW1pbmco Y29uc3Qgc3RydWN0IGJkYl9sdmRzX2xmcF9kYXRhICpsdmRzX2xmcF9kYXRhLA0KIAlyZXR1cm4g KHN0cnVjdCBsdmRzX2R2b190aW1pbmcgKikoZW50cnkgKyBkdm9fdGltaW5nX29mZnNldCk7DQog fQ0KIA0KKy8qIGdldCBsdmRzX2ZwX3RpbWluZyBlbnRyeQ0KKyAqIHRoaXMgZnVuY3Rpb24gbWF5 IHJldHVybiBOVUxMIGlmIHRoZSBjb3JyZXNwb25kaW5nIGVudHJ5IGlzIGludmFsaWQNCisgKi8N CitzdGF0aWMgY29uc3Qgc3RydWN0IGx2ZHNfZnBfdGltaW5nICoNCitnZXRfbHZkc19mcF90aW1p bmcoY29uc3Qgc3RydWN0IGJkYl9oZWFkZXIgKmJkYiwNCisJCSAgIGNvbnN0IHN0cnVjdCBiZGJf bHZkc19sZnBfZGF0YSAqZGF0YSwNCisJCSAgIGNvbnN0IHN0cnVjdCBiZGJfbHZkc19sZnBfZGF0 YV9wdHJzICpwdHJzLA0KKwkJICAgaW50IGluZGV4KQ0KK3sNCisJc2l6ZV90IGRhdGFfb2ZzID0g KGNvbnN0IHU4ICopZGF0YSAtIChjb25zdCB1OCAqKWJkYjsNCisJdTE2IGRhdGFfc2l6ZSA9ICgo Y29uc3QgdTE2ICopZGF0YSlbLTFdOyAvKiBzdG9yZWQgaW4gaGVhZGVyICovDQorCXNpemVfdCBv ZnM7DQorDQorCWlmIChpbmRleCA+PSBBUlJBWV9TSVpFKHB0cnMtPnB0cikpDQorCQlyZXR1cm4g TlVMTDsNCisJb2ZzID0gcHRycy0+cHRyW2luZGV4XS5mcF90aW1pbmdfb2Zmc2V0Ow0KKwlpZiAo b2ZzIDwgZGF0YV9vZnMgfHwNCisJICAgIG9mcyArIHNpemVvZihzdHJ1Y3QgbHZkc19mcF90aW1p bmcpID4gZGF0YV9vZnMgKyBkYXRhX3NpemUpDQorCQlyZXR1cm4gTlVMTDsNCisJcmV0dXJuIChj b25zdCBzdHJ1Y3QgbHZkc19mcF90aW1pbmcgKikoKGNvbnN0IHU4ICopYmRiICsgb2ZzKTsNCit9 DQorDQogLyogVHJ5IHRvIGZpbmQgaW50ZWdyYXRlZCBwYW5lbCBkYXRhICovDQogc3RhdGljIHZv aWQNCiBwYXJzZV9sZnBfcGFuZWxfZGF0YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsDQpAQCAtMTgzLDYgKzIwNSw3IEBAIHBhcnNlX2xmcF9wYW5lbF9kYXRhKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwNCiAJY29uc3Qgc3RydWN0IGJkYl9sdmRzX2xmcF9kYXRh ICpsdmRzX2xmcF9kYXRhOw0KIAljb25zdCBzdHJ1Y3QgYmRiX2x2ZHNfbGZwX2RhdGFfcHRycyAq bHZkc19sZnBfZGF0YV9wdHJzOw0KIAljb25zdCBzdHJ1Y3QgbHZkc19kdm9fdGltaW5nICpwYW5l bF9kdm9fdGltaW5nOw0KKwljb25zdCBzdHJ1Y3QgbHZkc19mcF90aW1pbmcgKmZwX3RpbWluZzsN CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnBhbmVsX2ZpeGVkX21vZGU7DQogCWludCBpLCBk b3duY2xvY2s7DQogDQpAQCAtMjQ0LDYgKzI2NywxOSBAQCBwYXJzZV9sZnBfcGFuZWxfZGF0YShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsDQogCQkJICAgICAgIk5vcm1hbCBDbG9j ayAlZEtIeiwgZG93bmNsb2NrICVkS0h6XG4iLA0KIAkJCSAgICAgIHBhbmVsX2ZpeGVkX21vZGUt PmNsb2NrLCAxMCpkb3duY2xvY2spOw0KIAl9DQorDQorCWZwX3RpbWluZyA9IGdldF9sdmRzX2Zw X3RpbWluZyhiZGIsIGx2ZHNfbGZwX2RhdGEsDQorCQkJCSAgICAgICBsdmRzX2xmcF9kYXRhX3B0 cnMsDQorCQkJCSAgICAgICBsdmRzX29wdGlvbnMtPnBhbmVsX3R5cGUpOw0KKwlpZiAoZnBfdGlt aW5nKSB7DQorCQkvKiBjaGVjayB0aGUgcmVzb2x1dGlvbiwganVzdCB0byBiZSBzdXJlICovDQor CQlpZiAoZnBfdGltaW5nLT54X3JlcyA9PSBwYW5lbF9maXhlZF9tb2RlLT5oZGlzcGxheSAmJg0K KwkJICAgIGZwX3RpbWluZy0+eV9yZXMgPT0gcGFuZWxfZml4ZWRfbW9kZS0+dmRpc3BsYXkpIHsN CisJCQlkZXZfcHJpdi0+Ymlvc19sdmRzX3ZhbCA9IGZwX3RpbWluZy0+bHZkc19yZWdfdmFsOw0K KwkJCURSTV9ERUJVR19LTVMoIlZCVCBpbml0aWFsIExWRFMgdmFsdWUgJXhcbiIsDQorCQkJCSAg ICAgIGRldl9wcml2LT5iaW9zX2x2ZHNfdmFsKTsNCisJCX0NCisJfQ0KIH0NCiANCiAvKiBUcnkg dG8gZmluZCBzZHZvIHBhbmVsIGRhdGEgKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMNCmluZGV4IGFkYWMwZGQuLmZkYWU2MWYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYw0KQEAgLTM1Niw2ICszNTYsMjcgQEAgc3RhdGljIGNvbnN0IGludGVsX2xpbWl0X3Qg aW50ZWxfbGltaXRzX2lyb25sYWtlX2Rpc3BsYXlfcG9ydCA9IHsNCiAJLmZpbmRfcGxsID0gaW50 ZWxfZmluZF9wbGxfaXJvbmxha2VfZHAsDQogfTsNCiANCitzdGF0aWMgYm9vbCBpc19kdWFsX2xp bmtfbHZkcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsDQorCQkJICAgICAgdW5z aWduZWQgaW50IHJlZykNCit7DQorCXVuc2lnbmVkIGludCB2YWw7DQorDQorCWlmIChkZXZfcHJp di0+bHZkc192YWwpDQorCQl2YWwgPSBkZXZfcHJpdi0+bHZkc192YWw7DQorCWVsc2Ugew0KKwkJ LyogQklPUyBzaG91bGQgc2V0IHRoZSBwcm9wZXIgTFZEUyByZWdpc3RlciB2YWx1ZSBhdCBib290 LCBidXQNCisJCSAqIGluIHJlYWxpdHksIGl0IGRvZXNuJ3Qgc2V0IHRoZSB2YWx1ZSB3aGVuIHRo ZSBsaWQgaXMgY2xvc2VkOw0KKwkJICogd2UgbmVlZCB0byBjaGVjayAidGhlIHZhbHVlIHRvIGJl IHNldCIgaW4gVkJUIHdoZW4gTFZEUw0KKwkJICogcmVnaXN0ZXIgaXMgdW5pbml0aWFsaXplZC4N CisJCSAqLw0KKwkJdmFsID0gSTkxNV9SRUFEKHJlZyk7DQorCQlpZiAoISh2YWwgJiB+TFZEU19E RVRFQ1RFRCkpDQorCQkJdmFsID0gZGV2X3ByaXYtPmJpb3NfbHZkc192YWw7DQorCQlkZXZfcHJp di0+bHZkc192YWwgPSB2YWw7DQorCX0NCisJcmV0dXJuICh2YWwgJiBMVkRTX0NMS0JfUE9XRVJf TUFTSykgPT0gTFZEU19DTEtCX1BPV0VSX1VQOw0KK30NCisNCiBzdGF0aWMgY29uc3QgaW50ZWxf bGltaXRfdCAqaW50ZWxfaXJvbmxha2VfbGltaXQoc3RydWN0IGRybV9jcnRjICpjcnRjLA0KIAkJ CQkJCWludCByZWZjbGspDQogew0KQEAgLTM2NCw4ICszODUsNyBAQCBzdGF0aWMgY29uc3QgaW50 ZWxfbGltaXRfdCAqaW50ZWxfaXJvbmxha2VfbGltaXQoc3RydWN0IGRybV9jcnRjICpjcnRjLA0K IAljb25zdCBpbnRlbF9saW1pdF90ICpsaW1pdDsNCiANCiAJaWYgKGludGVsX3BpcGVfaGFzX3R5 cGUoY3J0YywgSU5URUxfT1VUUFVUX0xWRFMpKSB7DQotCQlpZiAoKEk5MTVfUkVBRChQQ0hfTFZE UykgJiBMVkRTX0NMS0JfUE9XRVJfTUFTSykgPT0NCi0JCSAgICBMVkRTX0NMS0JfUE9XRVJfVVAp IHsNCisJCWlmIChpc19kdWFsX2xpbmtfbHZkcyhkZXZfcHJpdiwgUENIX0xWRFMpKSB7DQogCQkJ LyogTFZEUyBkdWFsIGNoYW5uZWwgKi8NCiAJCQlpZiAocmVmY2xrID09IDEwMDAwMCkNCiAJCQkJ bGltaXQgPSAmaW50ZWxfbGltaXRzX2lyb25sYWtlX2R1YWxfbHZkc18xMDBtOw0KQEAgLTM5Myw4 ICs0MTMsNyBAQCBzdGF0aWMgY29uc3QgaW50ZWxfbGltaXRfdCAqaW50ZWxfZzR4X2xpbWl0KHN0 cnVjdCBkcm1fY3J0YyAqY3J0YykNCiAJY29uc3QgaW50ZWxfbGltaXRfdCAqbGltaXQ7DQogDQog CWlmIChpbnRlbF9waXBlX2hhc190eXBlKGNydGMsIElOVEVMX09VVFBVVF9MVkRTKSkgew0KLQkJ aWYgKChJOTE1X1JFQUQoTFZEUykgJiBMVkRTX0NMS0JfUE9XRVJfTUFTSykgPT0NCi0JCSAgICBM VkRTX0NMS0JfUE9XRVJfVVApDQorCQlpZiAoaXNfZHVhbF9saW5rX2x2ZHMoZGV2X3ByaXYsIExW RFMpKQ0KIAkJCS8qIExWRFMgd2l0aCBkdWFsIGNoYW5uZWwgKi8NCiAJCQlsaW1pdCA9ICZpbnRl bF9saW1pdHNfZzR4X2R1YWxfY2hhbm5lbF9sdmRzOw0KIAkJZWxzZQ0KQEAgLTUzMSw4ICs1NTAs NyBAQCBpbnRlbF9maW5kX2Jlc3RfUExMKGNvbnN0IGludGVsX2xpbWl0X3QgKmxpbWl0LCBzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsDQogCQkgKiByZWxpYWJseSBzZXQgdXAgZGlmZmVyZW50IHNpbmds ZS9kdWFsIGNoYW5uZWwgc3RhdGUsIGlmIHdlDQogCQkgKiBldmVuIGNhbi4NCiAJCSAqLw0KLQkJ aWYgKChJOTE1X1JFQUQoTFZEUykgJiBMVkRTX0NMS0JfUE9XRVJfTUFTSykgPT0NCi0JCSAgICBM VkRTX0NMS0JfUE9XRVJfVVApDQorCQlpZiAoaXNfZHVhbF9saW5rX2x2ZHMoZGV2X3ByaXYsIExW RFMpKQ0KIAkJCWNsb2NrLnAyID0gbGltaXQtPnAyLnAyX2Zhc3Q7DQogCQllbHNlDQogCQkJY2xv Y2sucDIgPSBsaW1pdC0+cDIucDJfc2xvdzsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9zZHZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMNCmlu ZGV4IDNmNGFmYmEuLjllMjQ2NzAgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9zZHZvLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYw0KQEAg LTIyNjQsNiArMjI2NCwxOCBAQCBpbnRlbF9zZHZvX291dHB1dF9zZXR1cChzdHJ1Y3QgaW50ZWxf c2R2byAqaW50ZWxfc2R2bywgdWludDE2X3QgZmxhZ3MpDQogCXJldHVybiB0cnVlOw0KIH0NCiAN CitzdGF0aWMgdm9pZCBpbnRlbF9zZHZvX291dHB1dF9jbGVhbnVwKHN0cnVjdCBpbnRlbF9zZHZv ICppbnRlbF9zZHZvKQ0KK3sNCisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX3Nkdm8t PmJhc2UuYmFzZS5kZXY7DQorCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsICp0bXA7 DQorDQorCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShjb25uZWN0b3IsIHRtcCwNCisJCQkJICZk ZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBoZWFkKSB7DQorCQlpZiAoaW50ZWxfYXR0 YWNoZWRfZW5jb2Rlcihjb25uZWN0b3IpID09ICZpbnRlbF9zZHZvLT5iYXNlKQ0KKwkJCWludGVs X3Nkdm9fZGVzdHJveShjb25uZWN0b3IpOw0KKwl9DQorfQ0KKw0KIHN0YXRpYyBib29sIGludGVs X3Nkdm9fdHZfY3JlYXRlX3Byb3BlcnR5KHN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvLA0K IAkJCQkJICBzdHJ1Y3QgaW50ZWxfc2R2b19jb25uZWN0b3IgKmludGVsX3Nkdm9fY29ubmVjdG9y LA0KIAkJCQkJICBpbnQgdHlwZSkNCkBAIC0yNTk2LDcgKzI2MDgsOCBAQCBib29sIGludGVsX3Nk dm9faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgc2R2b19yZWcpDQogCQkJCSAgICBp bnRlbF9zZHZvLT5jYXBzLm91dHB1dF9mbGFncykgIT0gdHJ1ZSkgew0KIAkJRFJNX0RFQlVHX0tN UygiU0RWTyBvdXRwdXQgZmFpbGVkIHRvIHNldHVwIG9uIFNEVk8lY1xuIiwNCiAJCQkgICAgICBJ U19TRFZPQihzZHZvX3JlZykgPyAnQicgOiAnQycpOw0KLQkJZ290byBlcnI7DQorCQkvKiBPdXRw dXRfc2V0dXAgY2FuIGxlYXZlIGJlaGluZCBjb25uZWN0b3JzISAqLw0KKwkJZ290byBlcnJfb3V0 cHV0Ow0KIAl9DQogDQogCS8qIE9ubHkgZW5hYmxlIHRoZSBob3RwbHVnIGlycSBpZiB3ZSBuZWVk IGl0LCB0byB3b3JrIGFyb3VuZCBub2lzeQ0KQEAgLTI2MDksMTIgKzI2MjIsMTIgQEAgYm9vbCBp bnRlbF9zZHZvX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHNkdm9fcmVnKQ0KIA0K IAkvKiBTZXQgdGhlIGlucHV0IHRpbWluZyB0byB0aGUgc2NyZWVuLiBBc3N1bWUgYWx3YXlzIGlu cHV0IDAuICovDQogCWlmICghaW50ZWxfc2R2b19zZXRfdGFyZ2V0X2lucHV0KGludGVsX3Nkdm8p KQ0KLQkJZ290byBlcnI7DQorCQlnb3RvIGVycl9vdXRwdXQ7DQogDQogCWlmICghaW50ZWxfc2R2 b19nZXRfaW5wdXRfcGl4ZWxfY2xvY2tfcmFuZ2UoaW50ZWxfc2R2bywNCiAJCQkJCQkgICAgJmlu dGVsX3Nkdm8tPnBpeGVsX2Nsb2NrX21pbiwNCiAJCQkJCQkgICAgJmludGVsX3Nkdm8tPnBpeGVs X2Nsb2NrX21heCkpDQotCQlnb3RvIGVycjsNCisJCWdvdG8gZXJyX291dHB1dDsNCiANCiAJRFJN X0RFQlVHX0tNUygiJXMgZGV2aWNlIFZJRC9ESUQ6ICUwMlg6JTAyWC4lMDJYLCAiDQogCQkJImNs b2NrIHJhbmdlICVkTUh6IC0gJWRNSHosICINCkBAIC0yNjM0LDYgKzI2NDcsOSBAQCBib29sIGlu dGVsX3Nkdm9faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgc2R2b19yZWcpDQogCQkJ KFNEVk9fT1VUUFVUX1RNRFMxIHwgU0RWT19PVVRQVVRfUkdCMSkgPyAnWScgOiAnTicpOw0KIAly ZXR1cm4gdHJ1ZTsNCiANCitlcnJfb3V0cHV0Og0KKwlpbnRlbF9zZHZvX291dHB1dF9jbGVhbnVw KGludGVsX3Nkdm8pOw0KKw0KIGVycjoNCiAJZHJtX2VuY29kZXJfY2xlYW51cCgmaW50ZWxfZW5j b2Rlci0+YmFzZSk7DQogCWkyY19kZWxfYWRhcHRlcigmaW50ZWxfc2R2by0+ZGRjKTsNCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2VuY29kZXJzLmMgYi9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2VuY29kZXJzLmMNCmluZGV4IDM4MmUxNDEuLmFj YTQ3NTUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2VuY29k ZXJzLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vYXRvbWJpb3NfZW5jb2RlcnMuYw0K QEAgLTEzODYsNyArMTM4Niw3IEBAIHJhZGVvbl9hdG9tX2VuY29kZXJfZHBtc19kaWcoc3RydWN0 IGRybV9lbmNvZGVyICplbmNvZGVyLCBpbnQgbW9kZSkNCiAJCQlhdG9tYmlvc19kaWdfdHJhbnNt aXR0ZXJfc2V0dXAoZW5jb2RlciwgQVRPTV9UUkFOU01JVFRFUl9BQ1RJT05fU0VUVVAsIDAsIDAp Ow0KIAkJCWF0b21iaW9zX2RpZ190cmFuc21pdHRlcl9zZXR1cChlbmNvZGVyLCBBVE9NX1RSQU5T TUlUVEVSX0FDVElPTl9FTkFCTEUsIDAsIDApOw0KIAkJCS8qIHNvbWUgZWFybHkgZGNlMy4yIGJv YXJkcyBoYXZlIGEgYnVnIGluIHRoZWlyIHRyYW5zbWl0dGVyIGNvbnRyb2wgdGFibGUgKi8NCi0J CQlpZiAoKHJkZXYtPmZhbWlseSAhPSBDSElQX1JWNzEwKSB8fCAocmRldi0+ZmFtaWx5ICE9IENI SVBfUlY3MzApKQ0KKwkJCWlmICgocmRldi0+ZmFtaWx5ICE9IENISVBfUlY3MTApICYmIChyZGV2 LT5mYW1pbHkgIT0gQ0hJUF9SVjczMCkpDQogCQkJCWF0b21iaW9zX2RpZ190cmFuc21pdHRlcl9z ZXR1cChlbmNvZGVyLCBBVE9NX1RSQU5TTUlUVEVSX0FDVElPTl9FTkFCTEVfT1VUUFVULCAwLCAw KTsNCiAJCX0NCiAJCWlmIChFTkNPREVSX01PREVfSVNfRFAoYXRvbWJpb3NfZ2V0X2VuY29kZXJf bW9kZShlbmNvZGVyKSkgJiYgY29ubmVjdG9yKSB7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9ldmVyZ3JlZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVu LmMNCmluZGV4IGNhOTRlMjMuLmI5MTliMTEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL2V2ZXJncmVlbi5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVl bi5jDQpAQCAtMTEyMiw2ICsxMTIyLDggQEAgdm9pZCBldmVyZ3JlZW5fbWNfc3RvcChzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IGV2ZXJncmVlbl9tY19zYXZlICpzYXYNCiAJCQkJ CWJyZWFrOw0KIAkJCQl1ZGVsYXkoMSk7DQogCQkJfQ0KKwkJfSBlbHNlIHsNCisJCQlzYXZlLT5j cnRjX2VuYWJsZWRbaV0gPSBmYWxzZTsNCiAJCX0NCiAJfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2FncC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb25fYWdwLmMNCmluZGV4IGJkMmYzM2UuLmJjNmI2NGYgMTAwNjQ0DQotLS0gYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hZ3AuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fYWdwLmMNCkBAIC03MCw5ICs3MCwxMiBAQCBzdGF0aWMgc3RydWN0IHJhZGVvbl9h Z3Btb2RlX3F1aXJrIHJhZGVvbl9hZ3Btb2RlX3F1aXJrX2xpc3RbXSA9IHsNCiAJLyogSW50ZWwg ODI4MzAgODMwIENoaXBzZXQgSG9zdCBCcmlkZ2UgLyBNb2JpbGl0eSBNNiBMWSBOZWVkcyBBR1BN b2RlIDIgKGZkbyAjMTczNjApKi8NCiAJeyBQQ0lfVkVORE9SX0lEX0lOVEVMLCAweDM1NzUsIFBD SV9WRU5ET1JfSURfQVRJLCAweDRjNTksDQogCQlQQ0lfVkVORE9SX0lEX0RFTEwsIDB4MDBlMywg Mn0sDQotCS8qIEludGVsIDgyODUyLzgyODU1IGhvc3QgYnJpZGdlIC8gTW9iaWxpdHkgRmlyZUdM IDkwMDAgUjI1MCBOZWVkcyBBR1BNb2RlIDEgKGxwICMyOTY2MTcpICovDQorCS8qIEludGVsIDgy ODUyLzgyODU1IGhvc3QgYnJpZGdlIC8gTW9iaWxpdHkgRmlyZUdMIDkwMDAgUlYyNTAgTmVlZHMg QUdQTW9kZSAxIChscCAjMjk2NjE3KSAqLw0KIAl7IFBDSV9WRU5ET1JfSURfSU5URUwsIDB4MzU4 MCwgUENJX1ZFTkRPUl9JRF9BVEksIDB4NGM2NiwNCiAJCVBDSV9WRU5ET1JfSURfREVMTCwgMHgw MTQ5LCAxfSwNCisJLyogSW50ZWwgODI4NTVQTSBob3N0IGJyaWRnZSAvIE1vYmlsaXR5IEZpcmVH TCA5MDAwIFJWMjUwIE5lZWRzIEFHUE1vZGUgMSBmb3Igc3VzcGVuZC9yZXN1bWUgKi8NCisJeyBQ Q0lfVkVORE9SX0lEX0lOVEVMLCAweDMzNDAsIFBDSV9WRU5ET1JfSURfQVRJLCAweDRjNjYsDQor CQlQQ0lfVkVORE9SX0lEX0lCTSwgMHgwNTMxLCAxfSwNCiAJLyogSW50ZWwgODI4NTIvODI4NTUg aG9zdCBicmlkZ2UgLyBNb2JpbGl0eSA5NjAwIE0xMCBSVjM1MCBOZWVkcyBBR1BNb2RlIDEgKGRl YiAjNDY3NDYwKSAqLw0KIAl7IFBDSV9WRU5ET1JfSURfSU5URUwsIDB4MzU4MCwgUENJX1ZFTkRP Ul9JRF9BVEksIDB4NGU1MCwNCiAJCTB4MTAyNSwgMHgwMDYxLCAxfSwNCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wYWdlX2FsbG9jLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9wYWdlX2FsbG9jLmMNCmluZGV4IDcyN2U5M2QuLjllNDMxM2UgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wYWdlX2FsbG9jLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS90dG0vdHRtX3BhZ2VfYWxsb2MuYw0KQEAgLTcwOCw3ICs3MDgsMTAgQEAgaW50IHR0bV9nZXRf cGFnZXMoc3RydWN0IGxpc3RfaGVhZCAqcGFnZXMsIGludCBmbGFncywNCiAJLyogY2xlYXIgdGhl IHBhZ2VzIGNvbWluZyBmcm9tIHRoZSBwb29sIGlmIHJlcXVlc3RlZCAqLw0KIAlpZiAoZmxhZ3Mg JiBUVE1fUEFHRV9GTEFHX1pFUk9fQUxMT0MpIHsNCiAJCWxpc3RfZm9yX2VhY2hfZW50cnkocCwg cGFnZXMsIGxydSkgew0KLQkJCWNsZWFyX3BhZ2UocGFnZV9hZGRyZXNzKHApKTsNCisJCQlpZiAo UGFnZUhpZ2hNZW0ocCkpDQorCQkJCWNsZWFyX2hpZ2hwYWdlKHApOw0KKwkJCWVsc2UNCisJCQkJ Y2xlYXJfcGFnZShwYWdlX2FkZHJlc3MocCkpOw0KIAkJfQ0KIAl9DQogDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9oaWQvaGlkLWlkcy5oIGIvZHJpdmVycy9oaWQvaGlkLWlkcy5oDQppbmRleCBhYjc1 YTRlLi42NTJmMjMwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9oaWQvaGlkLWlkcy5oDQorKysgYi9k cml2ZXJzL2hpZC9oaWQtaWRzLmgNCkBAIC0yNzcsNiArMjc3LDkgQEANCiAjZGVmaW5lIFVTQl9W RU5ET1JfSURfRVpLRVkJCTB4MDUxOA0KICNkZWZpbmUgVVNCX0RFVklDRV9JRF9CVENfODE5MwkJ MHgwMDAyDQogDQorI2RlZmluZSBVU0JfVkVORE9SX0lEX0ZSRUVTQ0FMRQkJMHgxNUEyDQorI2Rl ZmluZSBVU0JfREVWSUNFX0lEX0ZSRUVTQ0FMRV9NWDI4CTB4MDA0Rg0KKw0KICNkZWZpbmUgVVNC X1ZFTkRPUl9JRF9HQU1FUk9OCQkweDA4MTANCiAjZGVmaW5lIFVTQl9ERVZJQ0VfSURfR0FNRVJP Tl9EVUFMX1BTWF9BREFQVE9SCTB4MDAwMQ0KICNkZWZpbmUgVVNCX0RFVklDRV9JRF9HQU1FUk9O X0RVQUxfUENTX0FEQVBUT1IJMHgwMDAyDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvdXNiaGlk L2hpZC1xdWlya3MuYyBiL2RyaXZlcnMvaGlkL3VzYmhpZC9oaWQtcXVpcmtzLmMNCmluZGV4IGFm YjczYWYuLmFlYzNmYTMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2hpZC91c2JoaWQvaGlkLXF1aXJr cy5jDQorKysgYi9kcml2ZXJzL2hpZC91c2JoaWQvaGlkLXF1aXJrcy5jDQpAQCAtNjgsNiArNjgs NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhpZF9ibGFja2xpc3Qgew0KIAl7IFVTQl9WRU5ET1Jf SURfQ0gsIFVTQl9ERVZJQ0VfSURfQ0hfQVhJU18yOTUsIEhJRF9RVUlSS19OT0dFVCB9LA0KIAl7 IFVTQl9WRU5ET1JfSURfRE1JLCBVU0JfREVWSUNFX0lEX0RNSV9FTkMsIEhJRF9RVUlSS19OT0dF VCB9LA0KIAl7IFVTQl9WRU5ET1JfSURfRUxPLCBVU0JfREVWSUNFX0lEX0VMT19UUzI3MDAsIEhJ RF9RVUlSS19OT0dFVCB9LA0KKwl7IFVTQl9WRU5ET1JfSURfRlJFRVNDQUxFLCBVU0JfREVWSUNF X0lEX0ZSRUVTQ0FMRV9NWDI4LCBISURfUVVJUktfTk9HRVQgfSwNCiAJeyBVU0JfVkVORE9SX0lE X01HRSwgVVNCX0RFVklDRV9JRF9NR0VfVVBTLCBISURfUVVJUktfTk9HRVQgfSwNCiAJeyBVU0Jf VkVORE9SX0lEX1BJWEFSVCwgVVNCX0RFVklDRV9JRF9QSVhBUlRfT1BUSUNBTF9UT1VDSF9TQ1JF RU4sIEhJRF9RVUlSS19OT19JTklUX1JFUE9SVFMgfSwNCiAJeyBVU0JfVkVORE9SX0lEX1BJWEFS VCwgVVNCX0RFVklDRV9JRF9QSVhBUlRfT1BUSUNBTF9UT1VDSF9TQ1JFRU4xLCBISURfUVVJUktf Tk9fSU5JVF9SRVBPUlRTIH0sDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGxlL2ludGVsX2lkbGUu YyBiL2RyaXZlcnMvaWRsZS9pbnRlbF9pZGxlLmMNCmluZGV4IDViMzkyMTYuLjNmMjgyOTAgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL2lkbGUvaW50ZWxfaWRsZS5jDQorKysgYi9kcml2ZXJzL2lkbGUv aW50ZWxfaWRsZS5jDQpAQCAtMTYzLDYgKzE2MywzOCBAQCBzdGF0aWMgc3RydWN0IGNwdWlkbGVf c3RhdGUgc25iX2NzdGF0ZXNbTVdBSVRfTUFYX05VTV9DU1RBVEVTXSA9IHsNCiAJCS5lbnRlciA9 ICZpbnRlbF9pZGxlIH0sDQogfTsNCiANCitzdGF0aWMgc3RydWN0IGNwdWlkbGVfc3RhdGUgaXZi X2NzdGF0ZXNbTVdBSVRfTUFYX05VTV9DU1RBVEVTXSA9IHsNCisJeyAvKiBNV0FJVCBDMCAqLyB9 LA0KKwl7IC8qIE1XQUlUIEMxICovDQorCQkubmFtZSA9ICJDMS1JVkIiLA0KKwkJLmRlc2MgPSAi TVdBSVQgMHgwMCIsDQorCQkuZmxhZ3MgPSBDUFVJRExFX0ZMQUdfVElNRV9WQUxJRCwNCisJCS5l eGl0X2xhdGVuY3kgPSAxLA0KKwkJLnRhcmdldF9yZXNpZGVuY3kgPSAxLA0KKwkJLmVudGVyID0g JmludGVsX2lkbGUgfSwNCisJeyAvKiBNV0FJVCBDMiAqLw0KKwkJLm5hbWUgPSAiQzMtSVZCIiwN CisJCS5kZXNjID0gIk1XQUlUIDB4MTAiLA0KKwkJLmZsYWdzID0gQ1BVSURMRV9GTEFHX1RJTUVf VkFMSUQgfCBDUFVJRExFX0ZMQUdfVExCX0ZMVVNIRUQsDQorCQkuZXhpdF9sYXRlbmN5ID0gNTks DQorCQkudGFyZ2V0X3Jlc2lkZW5jeSA9IDE1NiwNCisJCS5lbnRlciA9ICZpbnRlbF9pZGxlIH0s DQorCXsgLyogTVdBSVQgQzMgKi8NCisJCS5uYW1lID0gIkM2LUlWQiIsDQorCQkuZGVzYyA9ICJN V0FJVCAweDIwIiwNCisJCS5mbGFncyA9IENQVUlETEVfRkxBR19USU1FX1ZBTElEIHwgQ1BVSURM RV9GTEFHX1RMQl9GTFVTSEVELA0KKwkJLmV4aXRfbGF0ZW5jeSA9IDgwLA0KKwkJLnRhcmdldF9y ZXNpZGVuY3kgPSAzMDAsDQorCQkuZW50ZXIgPSAmaW50ZWxfaWRsZSB9LA0KKwl7IC8qIE1XQUlU IEM0ICovDQorCQkubmFtZSA9ICJDNy1JVkIiLA0KKwkJLmRlc2MgPSAiTVdBSVQgMHgzMCIsDQor CQkuZmxhZ3MgPSBDUFVJRExFX0ZMQUdfVElNRV9WQUxJRCB8IENQVUlETEVfRkxBR19UTEJfRkxV U0hFRCwNCisJCS5leGl0X2xhdGVuY3kgPSA4NywNCisJCS50YXJnZXRfcmVzaWRlbmN5ID0gMzAw LA0KKwkJLmVudGVyID0gJmludGVsX2lkbGUgfSwNCit9Ow0KKw0KIHN0YXRpYyBzdHJ1Y3QgY3B1 aWRsZV9zdGF0ZSBhdG9tX2NzdGF0ZXNbTVdBSVRfTUFYX05VTV9DU1RBVEVTXSA9IHsNCiAJeyAv KiBNV0FJVCBDMCAqLyB9LA0KIAl7IC8qIE1XQUlUIEMxICovDQpAQCAtMzg2LDYgKzQxOCwxMSBA QCBzdGF0aWMgaW50IGludGVsX2lkbGVfcHJvYmUodm9pZCkNCiAJCWNwdWlkbGVfc3RhdGVfdGFi bGUgPSBzbmJfY3N0YXRlczsNCiAJCWJyZWFrOw0KIA0KKwljYXNlIDB4M0E6CS8qIElWQiAqLw0K KwljYXNlIDB4M0U6CS8qIElWQiBYZW9uICovDQorCQljcHVpZGxlX3N0YXRlX3RhYmxlID0gaXZi X2NzdGF0ZXM7DQorCQlicmVhazsNCisNCiAJZGVmYXVsdDoNCiAJCXByX2RlYnVnKFBSRUZJWCAi ZG9lcyBub3QgcnVuIG9uIGZhbWlseSAlZCBtb2RlbCAlZFxuIiwNCiAJCQlib290X2NwdV9kYXRh Lng4NiwgYm9vdF9jcHVfZGF0YS54ODZfbW9kZWwpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5w dXQvbW91c2UvYmNtNTk3NC5jIGIvZHJpdmVycy9pbnB1dC9tb3VzZS9iY201OTc0LmMNCmluZGV4 IGVjNThmNDguLjE1MTJiZDggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2lucHV0L21vdXNlL2JjbTU5 NzQuYw0KKysrIGIvZHJpdmVycy9pbnB1dC9tb3VzZS9iY201OTc0LmMNCkBAIC00NTMsNiArNDUz LDkgQEAgc3RhdGljIHZvaWQgc2V0dXBfZXZlbnRzX3RvX3JlcG9ydChzdHJ1Y3QgaW5wdXRfZGV2 ICppbnB1dF9kZXYsDQogCV9fc2V0X2JpdChCVE5fVE9PTF9RVUFEVEFQLCBpbnB1dF9kZXYtPmtl eWJpdCk7DQogCV9fc2V0X2JpdChCVE5fTEVGVCwgaW5wdXRfZGV2LT5rZXliaXQpOw0KIA0KKwlp ZiAoY2ZnLT5jYXBzICYgSEFTX0lOVEVHUkFURURfQlVUVE9OKQ0KKwkJX19zZXRfYml0KElOUFVU X1BST1BfQlVUVE9OUEFELCBpbnB1dF9kZXYtPnByb3BiaXQpOw0KKw0KIAlpbnB1dF9zZXRfZXZl bnRzX3Blcl9wYWNrZXQoaW5wdXRfZGV2LCA2MCk7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvaW5wdXQvc2VyaW8vaTgwNDIuYyBiL2RyaXZlcnMvaW5wdXQvc2VyaW8vaTgwNDIuYw0KaW5k ZXggZDM3YTQ4ZS4uODY1NjQ0MSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaW5wdXQvc2VyaW8vaTgw NDIuYw0KKysrIGIvZHJpdmVycy9pbnB1dC9zZXJpby9pODA0Mi5jDQpAQCAtOTkxLDcgKzk5MSw3 IEBAIHN0YXRpYyBpbnQgaTgwNDJfY29udHJvbGxlcl9pbml0KHZvaWQpDQogICogUmVzZXQgdGhl IGNvbnRyb2xsZXIgYW5kIHJlc2V0IENSVCB0byB0aGUgb3JpZ2luYWwgdmFsdWUgc2V0IGJ5IEJJ T1MuDQogICovDQogDQotc3RhdGljIHZvaWQgaTgwNDJfY29udHJvbGxlcl9yZXNldCh2b2lkKQ0K K3N0YXRpYyB2b2lkIGk4MDQyX2NvbnRyb2xsZXJfcmVzZXQoYm9vbCBmb3JjZV9yZXNldCkNCiB7 DQogCWk4MDQyX2ZsdXNoKCk7DQogDQpAQCAtMTAxNiw3ICsxMDE2LDcgQEAgc3RhdGljIHZvaWQg aTgwNDJfY29udHJvbGxlcl9yZXNldCh2b2lkKQ0KICAqIFJlc2V0IHRoZSBjb250cm9sbGVyIGlm IHJlcXVlc3RlZC4NCiAgKi8NCiANCi0JaWYgKGk4MDQyX3Jlc2V0KQ0KKwlpZiAoaTgwNDJfcmVz ZXQgfHwgZm9yY2VfcmVzZXQpDQogCQlpODA0Ml9jb250cm9sbGVyX3NlbGZ0ZXN0KCk7DQogDQog LyoNCkBAIC0xMTM5LDkgKzExMzksOSBAQCBzdGF0aWMgaW50IGk4MDQyX2NvbnRyb2xsZXJfcmVz dW1lKGJvb2wgZm9yY2VfcmVzZXQpDQogICogdXBzZXR0aW5nIGl0Lg0KICAqLw0KIA0KLXN0YXRp YyBpbnQgaTgwNDJfcG1fcmVzZXQoc3RydWN0IGRldmljZSAqZGV2KQ0KK3N0YXRpYyBpbnQgaTgw NDJfcG1fc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpDQogew0KLQlpODA0Ml9jb250cm9sbGVy X3Jlc2V0KCk7DQorCWk4MDQyX2NvbnRyb2xsZXJfcmVzZXQodHJ1ZSk7DQogDQogCXJldHVybiAw Ow0KIH0NCkBAIC0xMTYzLDEzICsxMTYzLDIwIEBAIHN0YXRpYyBpbnQgaTgwNDJfcG1fdGhhdyhz dHJ1Y3QgZGV2aWNlICpkZXYpDQogCXJldHVybiAwOw0KIH0NCiANCitzdGF0aWMgaW50IGk4MDQy X3BtX3Jlc2V0KHN0cnVjdCBkZXZpY2UgKmRldikNCit7DQorCWk4MDQyX2NvbnRyb2xsZXJfcmVz ZXQoZmFsc2UpOw0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQogc3RhdGljIGludCBpODA0Ml9wbV9y ZXN0b3JlKHN0cnVjdCBkZXZpY2UgKmRldikNCiB7DQogCXJldHVybiBpODA0Ml9jb250cm9sbGVy X3Jlc3VtZShmYWxzZSk7DQogfQ0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBp ODA0Ml9wbV9vcHMgPSB7DQotCS5zdXNwZW5kCT0gaTgwNDJfcG1fcmVzZXQsDQorCS5zdXNwZW5k CT0gaTgwNDJfcG1fc3VzcGVuZCwNCiAJLnJlc3VtZQkJPSBpODA0Ml9wbV9yZXN1bWUsDQogCS50 aGF3CQk9IGk4MDQyX3BtX3RoYXcsDQogCS5wb3dlcm9mZgk9IGk4MDQyX3BtX3Jlc2V0LA0KQEAg LTExODUsNyArMTE5Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBpODA0Ml9w bV9vcHMgPSB7DQogDQogc3RhdGljIHZvaWQgaTgwNDJfc2h1dGRvd24oc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqZGV2KQ0KIHsNCi0JaTgwNDJfY29udHJvbGxlcl9yZXNldCgpOw0KKwlpODA0Ml9j b250cm9sbGVyX3Jlc2V0KGZhbHNlKTsNCiB9DQogDQogc3RhdGljIGludCBfX2luaXQgaTgwNDJf Y3JlYXRlX2tiZF9wb3J0KHZvaWQpDQpAQCAtMTQyNCw3ICsxNDMxLDcgQEAgc3RhdGljIGludCBf X2luaXQgaTgwNDJfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQ0KICBvdXRfZmFp bDoNCiAJaTgwNDJfZnJlZV9hdXhfcG9ydHMoKTsJLyogaW4gY2FzZSBLQkQgZmFpbGVkIGJ1dCBB VVggbm90ICovDQogCWk4MDQyX2ZyZWVfaXJxcygpOw0KLQlpODA0Ml9jb250cm9sbGVyX3Jlc2V0 KCk7DQorCWk4MDQyX2NvbnRyb2xsZXJfcmVzZXQoZmFsc2UpOw0KIAlpODA0Ml9wbGF0Zm9ybV9k ZXZpY2UgPSBOVUxMOw0KIA0KIAlyZXR1cm4gZXJyb3I7DQpAQCAtMTQzNCw3ICsxNDQxLDcgQEAg c3RhdGljIGludCBfX2RldmV4aXQgaTgwNDJfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KmRldikNCiB7DQogCWk4MDQyX3VucmVnaXN0ZXJfcG9ydHMoKTsNCiAJaTgwNDJfZnJlZV9pcnFz KCk7DQotCWk4MDQyX2NvbnRyb2xsZXJfcmVzZXQoKTsNCisJaTgwNDJfY29udHJvbGxlcl9yZXNl dChmYWxzZSk7DQogCWk4MDQyX3BsYXRmb3JtX2RldmljZSA9IE5VTEw7DQogDQogCXJldHVybiAw Ow0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXNkbi9naWdhc2V0L2Jhcy1naWdhc2V0LmMgYi9kcml2 ZXJzL2lzZG4vZ2lnYXNldC9iYXMtZ2lnYXNldC5jDQppbmRleCAzOTEzZjQ3Li40OTJhYTUyIDEw MDY0NA0KLS0tIGEvZHJpdmVycy9pc2RuL2dpZ2FzZXQvYmFzLWdpZ2FzZXQuYw0KKysrIGIvZHJp dmVycy9pc2RuL2dpZ2FzZXQvYmFzLWdpZ2FzZXQuYw0KQEAgLTYxNiw3ICs2MTYsMTMgQEAgc3Rh dGljIHZvaWQgaW50X2luX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQ0KIAlpZiAocmMg PT0gMCkNCiAJCS8qIHN1Y2Nlc3MsIHJlc3VibWl0IGludGVycnVwdCByZWFkIFVSQiAqLw0KIAkJ cmMgPSB1c2Jfc3VibWl0X3VyYih1cmIsIEdGUF9BVE9NSUMpOw0KLQlpZiAocmMgIT0gMCAmJiBy YyAhPSAtRU5PREVWKSB7DQorDQorCXN3aXRjaCAocmMpIHsNCisJY2FzZSAwOgkJLyogc3VjY2Vz cyAqLw0KKwljYXNlIC1FTk9ERVY6CS8qIGRldmljZSBnb25lICovDQorCWNhc2UgLUVJTlZBTDoJ LyogVVJCIGFscmVhZHkgcmVzdWJtaXR0ZWQsIG9yIHRlcm1pbmFsIGJhZG5lc3MgKi8NCisJCWJy ZWFrOw0KKwlkZWZhdWx0OgkvKiBmYWlsdXJlOiB0cnkgdG8gcmVjb3ZlciBieSByZXNldHRpbmcg dGhlIGRldmljZSAqLw0KIAkJZGV2X2Vycihjcy0+ZGV2LCAiY2xlYXIgaGFsdCBmYWlsZWQ6ICVz XG4iLCBnZXRfdXNiX3JjbXNnKHJjKSk7DQogCQlyYyA9IHVzYl9sb2NrX2RldmljZV9mb3JfcmVz ZXQodWNzLT51ZGV2LCB1Y3MtPmludGVyZmFjZSk7DQogCQlpZiAocmMgPT0gMCkgew0KQEAgLTI0 MzcsNyArMjQ0Myw5IEBAIHN0YXRpYyB2b2lkIGdpZ2FzZXRfZGlzY29ubmVjdChzdHJ1Y3QgdXNi X2ludGVyZmFjZSAqaW50ZXJmYWNlKQ0KIH0NCiANCiAvKiBnaWdhc2V0X3N1c3BlbmQNCi0gKiBU aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBiZWZvcmUgdGhlIFVTQiBjb25uZWN0aW9uIGlzIHN1c3Bl bmRlZC4NCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBiZWZvcmUgdGhlIFVTQiBjb25uZWN0 aW9uIGlzIHN1c3BlbmRlZA0KKyAqIG9yIGJlZm9yZSB0aGUgVVNCIGRldmljZSBpcyByZXNldC4N CisgKiBJbiB0aGUgbGF0dGVyIGNhc2UsIG1lc3NhZ2UgPT0gUE1TR19PTi4NCiAgKi8NCiBzdGF0 aWMgaW50IGdpZ2FzZXRfc3VzcGVuZChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgcG1fbWVz c2FnZV90IG1lc3NhZ2UpDQogew0KQEAgLTI0OTMsNyArMjUwMSwxMiBAQCBzdGF0aWMgaW50IGdp Z2FzZXRfc3VzcGVuZChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgcG1fbWVzc2FnZV90IG1l c3NhZ2UpDQogCWRlbF90aW1lcl9zeW5jKCZ1Y3MtPnRpbWVyX2F0cmR5KTsNCiAJZGVsX3RpbWVy X3N5bmMoJnVjcy0+dGltZXJfY21kX2luKTsNCiAJZGVsX3RpbWVyX3N5bmMoJnVjcy0+dGltZXJf aW50X2luKTsNCi0JY2FuY2VsX3dvcmtfc3luYygmdWNzLT5pbnRfaW5fd3EpOw0KKw0KKwkvKiBk b24ndCB0cnkgdG8gY2FuY2VsIGludF9pbl93cSBmcm9tIHdpdGhpbiByZXNldCBhcyBpdA0KKwkg KiBtaWdodCBiZSB0aGUgb25lIHJlcXVlc3RpbmcgdGhlIHJlc2V0DQorCSAqLw0KKwlpZiAobWVz c2FnZS5ldmVudCAhPSBQTV9FVkVOVF9PTikNCisJCWNhbmNlbF93b3JrX3N5bmMoJnVjcy0+aW50 X2luX3dxKTsNCiANCiAJZ2lnX2RiZyhERUJVR19TVVNQRU5ELCAic3VzcGVuZCBjb21wbGV0ZSIp Ow0KIAlyZXR1cm4gMDsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLmMgYi9kcml2ZXJzL21k L2RtLmMNCmluZGV4IDUwMmRjZjcuLjg5NTM2MzAgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL21kL2Rt LmMNCisrKyBiL2RyaXZlcnMvbWQvZG0uYw0KQEAgLTc1NSw4ICs3NTUsMTQgQEAgc3RhdGljIHZv aWQgcnFfY29tcGxldGVkKHN0cnVjdCBtYXBwZWRfZGV2aWNlICptZCwgaW50IHJ3LCBpbnQgcnVu X3F1ZXVlKQ0KIAlpZiAoIW1kX2luX2ZsaWdodChtZCkpDQogCQl3YWtlX3VwKCZtZC0+d2FpdCk7 DQogDQorCS8qDQorCSAqIFJ1biB0aGlzIG9mZiB0aGlzIGNhbGxwYXRoLCBhcyBkcml2ZXJzIGNv dWxkIGludm9rZSBlbmRfaW8gd2hpbGUNCisJICogaW5zaWRlIHRoZWlyIHJlcXVlc3RfZm4gKGFu ZCBob2xkaW5nIHRoZSBxdWV1ZSBsb2NrKS4gQ2FsbGluZw0KKwkgKiBiYWNrIGludG8gLT5yZXF1 ZXN0X2ZuKCkgY291bGQgZGVhZGxvY2sgYXR0ZW1wdGluZyB0byBncmFiIHRoZQ0KKwkgKiBxdWV1 ZSBsb2NrIGFnYWluLg0KKwkgKi8NCiAJaWYgKHJ1bl9xdWV1ZSkNCi0JCWJsa19ydW5fcXVldWUo bWQtPnF1ZXVlKTsNCisJCWJsa19ydW5fcXVldWVfYXN5bmMobWQtPnF1ZXVlKTsNCiANCiAJLyoN CiAJICogZG1fcHV0KCkgbXVzdCBiZSBhdCB0aGUgZW5kIG9mIHRoaXMgZnVuY3Rpb24uIFNlZSB0 aGUgY29tbWVudCBhYm92ZQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvbWQuYyBiL2RyaXZlcnMv bWQvbWQuYw0KaW5kZXggMjg4N2YyMi4uMTQ1ZTM3OGUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL21k L21kLmMNCisrKyBiL2RyaXZlcnMvbWQvbWQuYw0KQEAgLTE4MDEsMTAgKzE4MDEsMTAgQEAgcmV0 cnk6DQogCQkJbWVtc2V0KGJicCwgMHhmZiwgUEFHRV9TSVpFKTsNCiANCiAJCQlmb3IgKGkgPSAw IDsgaSA8IGJiLT5jb3VudCA7IGkrKykgew0KLQkJCQl1NjQgaW50ZXJuYWxfYmIgPSAqcCsrOw0K KwkJCQl1NjQgaW50ZXJuYWxfYmIgPSBwW2ldOw0KIAkJCQl1NjQgc3RvcmVfYmIgPSAoKEJCX09G RlNFVChpbnRlcm5hbF9iYikgPDwgMTApDQogCQkJCQkJfCBCQl9MRU4oaW50ZXJuYWxfYmIpKTsN Ci0JCQkJKmJicCsrID0gY3B1X3RvX2xlNjQoc3RvcmVfYmIpOw0KKwkJCQliYnBbaV0gPSBjcHVf dG9fbGU2NChzdG9yZV9iYik7DQogCQkJfQ0KIAkJCWJiLT5jaGFuZ2VkID0gMDsNCiAJCQlpZiAo cmVhZF9zZXFyZXRyeSgmYmItPmxvY2ssIHNlcSkpDQpAQCAtNzY1MCw5ICs3NjUwLDkgQEAgaW50 IG1kX2lzX2JhZGJsb2NrKHN0cnVjdCBiYWRibG9ja3MgKmJiLCBzZWN0b3JfdCBzLCBpbnQgc2Vj dG9ycywNCiAJCSAgIHNlY3Rvcl90ICpmaXJzdF9iYWQsIGludCAqYmFkX3NlY3RvcnMpDQogew0K IAlpbnQgaGk7DQotCWludCBsbyA9IDA7DQorCWludCBsbzsNCiAJdTY0ICpwID0gYmItPnBhZ2U7 DQotCWludCBydiA9IDA7DQorCWludCBydjsNCiAJc2VjdG9yX3QgdGFyZ2V0ID0gcyArIHNlY3Rv cnM7DQogCXVuc2lnbmVkIHNlcTsNCiANCkBAIC03NjY3LDcgKzc2NjcsOCBAQCBpbnQgbWRfaXNf YmFkYmxvY2soc3RydWN0IGJhZGJsb2NrcyAqYmIsIHNlY3Rvcl90IHMsIGludCBzZWN0b3JzLA0K IA0KIHJldHJ5Og0KIAlzZXEgPSByZWFkX3NlcWJlZ2luKCZiYi0+bG9jayk7DQotDQorCWxvID0g MDsNCisJcnYgPSAwOw0KIAloaSA9IGJiLT5jb3VudDsNCiANCiAJLyogQmluYXJ5IHNlYXJjaCBi ZXR3ZWVuIGxvIGFuZCBoaSBmb3IgJ3RhcmdldCcNCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9k ZXZpY2VzL3NscmFtLmMgYi9kcml2ZXJzL210ZC9kZXZpY2VzL3NscmFtLmMNCmluZGV4IGU1ODUy NjMuLmYzOGMzNDggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL210ZC9kZXZpY2VzL3NscmFtLmMNCisr KyBiL2RyaXZlcnMvbXRkL2RldmljZXMvc2xyYW0uYw0KQEAgLTI2Niw3ICsyNjYsNyBAQCBzdGF0 aWMgaW50IHBhcnNlX2NtZGxpbmUoY2hhciAqZGV2bmFtZSwgY2hhciAqc3pzdGFydCwgY2hhciAq c3psZW5ndGgpDQogDQogCWlmICgqKHN6bGVuZ3RoKSAhPSAnKycpIHsNCiAJCWRldmxlbmd0aCA9 IHNpbXBsZV9zdHJ0b3VsKHN6bGVuZ3RoLCAmYnVmZmVyLCAwKTsNCi0JCWRldmxlbmd0aCA9IGhh bmRsZV91bml0KGRldmxlbmd0aCwgYnVmZmVyKSAtIGRldnN0YXJ0Ow0KKwkJZGV2bGVuZ3RoID0g aGFuZGxlX3VuaXQoZGV2bGVuZ3RoLCBidWZmZXIpOw0KIAkJaWYgKGRldmxlbmd0aCA8IGRldnN0 YXJ0KQ0KIAkJCWdvdG8gZXJyX291dDsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9vZnBh cnQuYyBiL2RyaXZlcnMvbXRkL29mcGFydC5jDQppbmRleCA2NGJlOGYwLi5kOTEyN2UyIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9tdGQvb2ZwYXJ0LmMNCisrKyBiL2RyaXZlcnMvbXRkL29mcGFydC5j DQpAQCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRpYyBpbnQgcGFyc2Vfb2ZvbGRwYXJ0X3BhcnRpdGlv bnMoc3RydWN0IG10ZF9pbmZvICptYXN0ZXIsDQogCW5yX3BhcnRzID0gcGxlbiAvIHNpemVvZihw YXJ0WzBdKTsNCiANCiAJKnBwYXJ0cyA9IGt6YWxsb2MobnJfcGFydHMgKiBzaXplb2YoKigqcHBh cnRzKSksIEdGUF9LRVJORUwpOw0KLQlpZiAoIXBwYXJ0cykNCisJaWYgKCEqcHBhcnRzKQ0KIAkJ cmV0dXJuIC1FTk9NRU07DQogDQogCW5hbWVzID0gb2ZfZ2V0X3Byb3BlcnR5KGRwLCAicGFydGl0 aW9uLW5hbWVzIiwgJnBsZW4pOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2lu dGVsL2l4Z2JlL2l4Z2JlXzgyNTk5LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdi ZS9peGdiZV84MjU5OS5jDQppbmRleCA0YWUyNmE3Li43NzIwNzIxIDEwMDY0NA0KLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfODI1OTkuYw0KKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfODI1OTkuYw0KQEAgLTM1Niw2ICszNTYs NyBAQCBzdGF0aWMgZW51bSBpeGdiZV9tZWRpYV90eXBlIGl4Z2JlX2dldF9tZWRpYV90eXBlXzgy NTk5KHN0cnVjdCBpeGdiZV9odyAqaHcpDQogCWNhc2UgSVhHQkVfREVWX0lEXzgyNTk5X1NGUF9G Q09FOg0KIAljYXNlIElYR0JFX0RFVl9JRF84MjU5OV9TRlBfRU06DQogCWNhc2UgSVhHQkVfREVW X0lEXzgyNTk5X1NGUF9TRjI6DQorCWNhc2UgSVhHQkVfREVWX0lEXzgyNTk5X1NGUF9TRl9RUDoN CiAJY2FzZSBJWEdCRV9ERVZfSURfODI1OTlFTl9TRlA6DQogCQltZWRpYV90eXBlID0gaXhnYmVf bWVkaWFfdHlwZV9maWJlcjsNCiAJCWJyZWFrOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX2NvbW1vbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv aW50ZWwvaXhnYmUvaXhnYmVfY29tbW9uLmMNCmluZGV4IGYxMzY1ZmUuLjJjMTRlODUgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV9jb21tb24uYw0K KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaXhnYmUvaXhnYmVfY29tbW9uLmMNCkBA IC0zMTU3LDYgKzMxNTcsNyBAQCBzdGF0aWMgczMyIGl4Z2JlX2RldmljZV9zdXBwb3J0c19hdXRv bmVnX2ZjKHN0cnVjdCBpeGdiZV9odyAqaHcpDQogDQogCXN3aXRjaCAoaHctPmRldmljZV9pZCkg ew0KIAljYXNlIElYR0JFX0RFVl9JRF9YNTQwVDoNCisJY2FzZSBJWEdCRV9ERVZfSURfWDU0MFQx Og0KIAkJcmV0dXJuIDA7DQogCWNhc2UgSVhHQkVfREVWX0lEXzgyNTk5X1QzX0xPTToNCiAJCXJl dHVybiAwOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4 Z2JlX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4u Yw0KaW5kZXggOGVmOTJkMS4uY2M5NmE1YSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2ludGVsL2l4Z2JlL2l4Z2JlX21haW4uYw0KKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv aW50ZWwvaXhnYmUvaXhnYmVfbWFpbi5jDQpAQCAtMTA2LDYgKzEwNiw4IEBAIHN0YXRpYyBERUZJ TkVfUENJX0RFVklDRV9UQUJMRShpeGdiZV9wY2lfdGJsKSA9IHsNCiAJe1BDSV9WREVWSUNFKElO VEVMLCBJWEdCRV9ERVZfSURfODI1OTlfU0ZQX1NGMiksIGJvYXJkXzgyNTk5IH0sDQogCXtQQ0lf VkRFVklDRShJTlRFTCwgSVhHQkVfREVWX0lEXzgyNTk5X0xTKSwgYm9hcmRfODI1OTkgfSwNCiAJ e1BDSV9WREVWSUNFKElOVEVMLCBJWEdCRV9ERVZfSURfODI1OTlFTl9TRlApLCBib2FyZF84MjU5 OSB9LA0KKwl7UENJX1ZERVZJQ0UoSU5URUwsIElYR0JFX0RFVl9JRF84MjU5OV9TRlBfU0ZfUVAp LCBib2FyZF84MjU5OSB9LA0KKwl7UENJX1ZERVZJQ0UoSU5URUwsIElYR0JFX0RFVl9JRF9YNTQw VDEpLCBib2FyZF9YNTQwIH0sDQogCS8qIHJlcXVpcmVkIGxhc3QgZW50cnkgKi8NCiAJezAsIH0N CiB9Ow0KQEAgLTc2MTEsNiArNzYxMyw3IEBAIHN0YXRpYyBpbnQgX19kZXZpbml0IGl4Z2JlX3By b2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LA0KIAkJYWRhcHRlci0+d29sID0gSVhHQkVfV1VGQ19N QUc7DQogCQlicmVhazsNCiAJY2FzZSBJWEdCRV9ERVZfSURfWDU0MFQ6DQorCWNhc2UgSVhHQkVf REVWX0lEX1g1NDBUMToNCiAJCS8qIENoZWNrIGVlcHJvbSB0byBzZWUgaWYgaXQgaXMgZW5hYmxl ZCAqLw0KIAkJaHctPmVlcHJvbS5vcHMucmVhZChodywgMHgyYywgJmFkYXB0ZXItPmVlcHJvbV9j YXApOw0KIAkJd29sX2NhcCA9IGFkYXB0ZXItPmVlcHJvbV9jYXAgJiBJWEdCRV9ERVZJQ0VfQ0FQ U19XT0xfTUFTSzsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdi ZS9peGdiZV90eXBlLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV90 eXBlLmgNCmluZGV4IDZjNWNjYTguLmYwMGQ2ZDUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9pbnRlbC9peGdiZS9peGdiZV90eXBlLmgNCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2ludGVsL2l4Z2JlL2l4Z2JlX3R5cGUuaA0KQEAgLTY1LDYgKzY1LDggQEANCiAjZGVmaW5l IElYR0JFX1NVQkRFVl9JRF84MjU5OV9LWDRfS1JfTUVaWiAgMHgwMDBDDQogI2RlZmluZSBJWEdC RV9ERVZfSURfODI1OTlfTFMgICAgICAgICAgICAweDE1NEYNCiAjZGVmaW5lIElYR0JFX0RFVl9J RF9YNTQwVCAgICAgICAgICAgICAgIDB4MTUyOA0KKyNkZWZpbmUgSVhHQkVfREVWX0lEXzgyNTk5 X1NGUF9TRl9RUCAgICAgMHgxNTRBDQorI2RlZmluZSBJWEdCRV9ERVZfSURfWDU0MFQxICAgICAg ICAgICAgICAweDE1NjANCiANCiAvKiBWRiBEZXZpY2UgSURzICovDQogI2RlZmluZSBJWEdCRV9E RVZfSURfODI1OTlfVkYgICAgICAgICAgIDB4MTBFRA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2JyY204MDIxMS9icmNtc21hYy9hbXBkdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxl c3MvYnJjbTgwMjExL2JyY21zbWFjL2FtcGR1LmMNCmluZGV4IDA1MTU4NjIuLjg1OGE3NjIgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icmNtODAyMTEvYnJjbXNtYWMvYW1wZHUu Yw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJjbTgwMjExL2JyY21zbWFjL2FtcGR1LmMN CkBAIC0xMDcyLDkgKzEwNzIsOSBAQCBicmNtc19jX2FtcGR1X2RvdHhzdGF0dXNfY29tcGxldGUo c3RydWN0IGFtcGR1X2luZm8gKmFtcGR1LCBzdHJ1Y3Qgc2NiICpzY2IsDQogCQkJCSAgICBJRUVF ODAyMTFfVFhfU1RBVF9BTVBEVV9OT19CQUNLOw0KIAkJCQlza2JfcHVsbChwLCBEMTFfUEhZX0hE Ul9MRU4pOw0KIAkJCQlza2JfcHVsbChwLCBEMTFfVFhIX0xFTik7DQotCQkJCXdpcGh5X2Vycih3 aXBoeSwgIiVzOiBCQSBUaW1lb3V0LCBzZXEgJWQsIGluXyINCi0JCQkJCSJ0cmFuc2l0ICVkXG4i LCAiQU1QRFUgc3RhdHVzIiwgc2VxLA0KLQkJCQkJaW5pLT50eF9pbl90cmFuc2l0KTsNCisJCQkJ QkNNTVNHKHdpcGh5LA0KKwkJCQkgICAgICAgIkJBIFRpbWVvdXQsIHNlcSAlZCwgaW5fdHJhbnNp dCAlZFxuIiwNCisJCQkJICAgICAgIHNlcSwgaW5pLT50eF9pbl90cmFuc2l0KTsNCiAJCQkJaWVl ZTgwMjExX3R4X3N0YXR1c19pcnFzYWZlKHdsYy0+cHViLT5pZWVlX2h3LA0KIAkJCQkJCQkgICAg cCk7DQogCQkJfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL213aWZpZXgvY21k ZXZ0LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L2NtZGV2dC5jDQppbmRleCA2ZTBh M2VhLi41YTI1ZGQyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC9j bWRldnQuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC9jbWRldnQuYw0KQEAg LTgxNiw5ICs4MTYsNiBAQCBtd2lmaWV4X2NtZF90aW1lb3V0X2Z1bmModW5zaWduZWQgbG9uZyBm dW5jdGlvbl9jb250ZXh0KQ0KIAkJcmV0dXJuOw0KIAl9DQogCWNtZF9ub2RlID0gYWRhcHRlci0+ Y3Vycl9jbWQ7DQotCWlmIChjbWRfbm9kZS0+d2FpdF9xX2VuYWJsZWQpDQotCQlhZGFwdGVyLT5j bWRfd2FpdF9xLnN0YXR1cyA9IC1FVElNRURPVVQ7DQotDQogCWlmIChjbWRfbm9kZSkgew0KIAkJ YWRhcHRlci0+ZGJnLnRpbWVvdXRfY21kX2lkID0NCiAJCQlhZGFwdGVyLT5kYmcubGFzdF9jbWRf aWRbYWRhcHRlci0+ZGJnLmxhc3RfY21kX2luZGV4XTsNCkBAIC04NjMsNiArODYwLDE0IEBAIG13 aWZpZXhfY21kX3RpbWVvdXRfZnVuYyh1bnNpZ25lZCBsb25nIGZ1bmN0aW9uX2NvbnRleHQpDQog DQogCQlkZXZfZXJyKGFkYXB0ZXItPmRldiwgInBzX21vZGU9JWQgcHNfc3RhdGU9JWRcbiIsDQog CQkJCWFkYXB0ZXItPnBzX21vZGUsIGFkYXB0ZXItPnBzX3N0YXRlKTsNCisNCisJCWlmIChjbWRf bm9kZS0+d2FpdF9xX2VuYWJsZWQpIHsNCisJCQlhZGFwdGVyLT5jbWRfd2FpdF9xLnN0YXR1cyA9 IC1FVElNRURPVVQ7DQorCQkJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZhZGFwdGVyLT5jbWRfd2Fp dF9xLndhaXQpOw0KKwkJCW13aWZpZXhfY2FuY2VsX3BlbmRpbmdfaW9jdGwoYWRhcHRlcik7DQor CQkJLyogcmVzZXQgY21kX3NlbnQgZmxhZyB0byB1bmJsb2NrIG5ldyBjb21tYW5kcyAqLw0KKwkJ CWFkYXB0ZXItPmNtZF9zZW50ID0gZmFsc2U7DQorCQl9DQogCX0NCiAJaWYgKGFkYXB0ZXItPmh3 X3N0YXR1cyA9PSBNV0lGSUVYX0hXX1NUQVRVU19JTklUSUFMSVpJTkcpDQogCQltd2lmaWV4X2lu aXRfZndfY29tcGxldGUoYWRhcHRlcik7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxl c3MvbXdpZmlleC9zZGlvLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L3NkaW8uYw0K aW5kZXggMjgzMTcxYi4uMzU3OWE2OCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNz L213aWZpZXgvc2Rpby5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4L3NkaW8u Yw0KQEAgLTE2Miw3ICsxNjIsNiBAQCBzdGF0aWMgaW50IG13aWZpZXhfc2Rpb19zdXNwZW5kKHN0 cnVjdCBkZXZpY2UgKmRldikNCiAJc3RydWN0IHNkaW9fbW1jX2NhcmQgKmNhcmQ7DQogCXN0cnVj dCBtd2lmaWV4X2FkYXB0ZXIgKmFkYXB0ZXI7DQogCW1tY19wbV9mbGFnX3QgcG1fZmxhZyA9IDA7 DQotCWludCBoc19hY3RpdmVkID0gMDsNCiAJaW50IGk7DQogCWludCByZXQgPSAwOw0KIA0KQEAg LTE4OSwxMiArMTg4LDE0IEBAIHN0YXRpYyBpbnQgbXdpZmlleF9zZGlvX3N1c3BlbmQoc3RydWN0 IGRldmljZSAqZGV2KQ0KIAlhZGFwdGVyID0gY2FyZC0+YWRhcHRlcjsNCiANCiAJLyogRW5hYmxl IHRoZSBIb3N0IFNsZWVwICovDQotCWhzX2FjdGl2ZWQgPSBtd2lmaWV4X2VuYWJsZV9ocyhhZGFw dGVyKTsNCi0JaWYgKGhzX2FjdGl2ZWQpIHsNCi0JCXByX2RlYnVnKCJjbWQ6IHN1c3BlbmQgd2l0 aCBNTUNfUE1fS0VFUF9QT1dFUlxuIik7DQotCQlyZXQgPSBzZGlvX3NldF9ob3N0X3BtX2ZsYWdz KGZ1bmMsIE1NQ19QTV9LRUVQX1BPV0VSKTsNCisJaWYgKCFtd2lmaWV4X2VuYWJsZV9ocyhhZGFw dGVyKSkgew0KKwkJZGV2X2VycihhZGFwdGVyLT5kZXYsICJjbWQ6IGZhaWxlZCB0byBzdXNwZW5k XG4iKTsNCisJCXJldHVybiAtRUZBVUxUOw0KIAl9DQogDQorCWRldl9kYmcoYWRhcHRlci0+ZGV2 LCAiY21kOiBzdXNwZW5kIHdpdGggTU1DX1BNX0tFRVBfUE9XRVJcbiIpOw0KKwlyZXQgPSBzZGlv X3NldF9ob3N0X3BtX2ZsYWdzKGZ1bmMsIE1NQ19QTV9LRUVQX1BPV0VSKTsNCisNCiAJLyogSW5k aWNhdGUgZGV2aWNlIHN1c3BlbmRlZCAqLw0KIAlhZGFwdGVyLT5pc19zdXNwZW5kZWQgPSB0cnVl Ow0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkvcnRsODE5MmN1 L3N3LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJjdS9zdy5jDQppbmRl eCAwMzAyMTQ4Li5hOTliZTJkMCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0 bHdpZmkvcnRsODE5MmN1L3N3LmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkv cnRsODE5MmN1L3N3LmMNCkBAIC0zMDcsNiArMzA3LDcgQEAgc3RhdGljIHN0cnVjdCB1c2JfZGV2 aWNlX2lkIHJ0bDgxOTJjX3VzYl9pZHNbXSA9IHsNCiAJLyo9PT0gQ3VzdG9tZXIgSUQgPT09Ki8N CiAJLyoqKioqKiA4MTg4Q1UgKioqKioqKiovDQogCXtSVExfVVNCX0RFVklDRSgweDA1MGQsIDB4 MTEwMiwgcnRsOTJjdV9oYWxfY2ZnKX0sIC8qQmVsa2luIC0gRWRpbWF4Ki8NCisJe1JUTF9VU0Jf REVWSUNFKDB4MDUwZCwgMHgxMWYyLCBydGw5MmN1X2hhbF9jZmcpfSwgLypCZWxraW4gLSBJU1kq Lw0KIAl7UlRMX1VTQl9ERVZJQ0UoMHgwNmY4LCAweGUwMzMsIHJ0bDkyY3VfaGFsX2NmZyl9LCAv KkhlcmN1bGVzIC0gRWRpbWF4Ki8NCiAJe1JUTF9VU0JfREVWSUNFKDB4MDdiOCwgMHg4MTg4LCBy dGw5MmN1X2hhbF9jZmcpfSwgLypBYm9jb20gLSBBYm9jb20qLw0KIAl7UlRMX1VTQl9ERVZJQ0Uo MHgwN2I4LCAweDgxODksIHJ0bDkyY3VfaGFsX2NmZyl9LCAvKkZ1bmFpIC0gQWJvY29tKi8NCmRp ZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9zZXR1cC1idXMuYyBiL2RyaXZlcnMvcGNpL3NldHVwLWJ1 cy5jDQppbmRleCA4NmI2OWY4NS4uOWQ5MzJmNCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvcGNpL3Nl dHVwLWJ1cy5jDQorKysgYi9kcml2ZXJzL3BjaS9zZXR1cC1idXMuYw0KQEAgLTYxMiw3ICs2MTIs NyBAQCBzdGF0aWMgdm9pZCBwYnVzX3NpemVfaW8oc3RydWN0IHBjaV9idXMgKmJ1cywgcmVzb3Vy Y2Vfc2l6ZV90IG1pbl9zaXplLA0KIAlpZiAoY2hpbGRyZW5fYWRkX3NpemUgPiBhZGRfc2l6ZSkN CiAJCWFkZF9zaXplID0gY2hpbGRyZW5fYWRkX3NpemU7DQogCXNpemUxID0gKCFyZWFsbG9jX2hl YWQgfHwgKHJlYWxsb2NfaGVhZCAmJiAhYWRkX3NpemUpKSA/IHNpemUwIDoNCi0JCWNhbGN1bGF0 ZV9pb3NpemUoc2l6ZSwgbWluX3NpemUrYWRkX3NpemUsIHNpemUxLA0KKwkJY2FsY3VsYXRlX2lv c2l6ZShzaXplLCBtaW5fc2l6ZSwgYWRkX3NpemUgKyBzaXplMSwNCiAJCQlyZXNvdXJjZV9zaXpl KGJfcmVzKSwgNDA5Nik7DQogCWlmICghc2l6ZTAgJiYgIXNpemUxKSB7DQogCQlpZiAoYl9yZXMt PnN0YXJ0IHx8IGJfcmVzLT5lbmQpDQpAQCAtNzI2LDcgKzcyNiw3IEBAIHN0YXRpYyBpbnQgcGJ1 c19zaXplX21lbShzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBsb25nIG1hc2ssDQogCWlm IChjaGlsZHJlbl9hZGRfc2l6ZSA+IGFkZF9zaXplKQ0KIAkJYWRkX3NpemUgPSBjaGlsZHJlbl9h ZGRfc2l6ZTsNCiAJc2l6ZTEgPSAoIXJlYWxsb2NfaGVhZCB8fCAocmVhbGxvY19oZWFkICYmICFh ZGRfc2l6ZSkpID8gc2l6ZTAgOg0KLQkJY2FsY3VsYXRlX21lbXNpemUoc2l6ZSwgbWluX3NpemUr YWRkX3NpemUsIDAsDQorCQljYWxjdWxhdGVfbWVtc2l6ZShzaXplLCBtaW5fc2l6ZSwgYWRkX3Np emUsDQogCQkJCXJlc291cmNlX3NpemUoYl9yZXMpLCBtaW5fYWxpZ24pOw0KIAlpZiAoIXNpemUw ICYmICFzaXplMSkgew0KIAkJaWYgKGJfcmVzLT5zdGFydCB8fCBiX3Jlcy0+ZW5kKQ0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvcGNpL3NldHVwLXJlcy5jIGIvZHJpdmVycy9wY2kvc2V0dXAtcmVzLmMN CmluZGV4IDU3MTc1MDliLi44YjI1ZjljIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9wY2kvc2V0dXAt cmVzLmMNCisrKyBiL2RyaXZlcnMvcGNpL3NldHVwLXJlcy5jDQpAQCAtMjMzLDExICsyMzMsMTIg QEAgaW50IHBjaV9yZWFzc2lnbl9yZXNvdXJjZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgcmVz bm8sIHJlc291cmNlX3NpemVfdCBhZGRzaXoNCiAJCXJldHVybiAtRUlOVkFMOw0KIAl9DQogDQot CW5ld19zaXplID0gcmVzb3VyY2Vfc2l6ZShyZXMpICsgYWRkc2l6ZSArIG1pbl9hbGlnbjsNCisJ LyogYWxyZWFkeSBhbGlnbmVkIHdpdGggbWluX2FsaWduICovDQorCW5ld19zaXplID0gcmVzb3Vy Y2Vfc2l6ZShyZXMpICsgYWRkc2l6ZTsNCiAJcmV0ID0gX3BjaV9hc3NpZ25fcmVzb3VyY2UoZGV2 LCByZXNubywgbmV3X3NpemUsIG1pbl9hbGlnbik7DQogCWlmICghcmV0KSB7DQogCQlyZXMtPmZs YWdzICY9IH5JT1JFU09VUkNFX1NUQVJUQUxJR047DQotCQlkZXZfaW5mbygmZGV2LT5kZXYsICJC QVIgJWQ6IGFzc2lnbmVkICVwUlxuIiwgcmVzbm8sIHJlcyk7DQorCQlkZXZfaW5mbygmZGV2LT5k ZXYsICJCQVIgJWQ6IHJlYXNzaWduZWQgJXBSXG4iLCByZXNubywgcmVzKTsNCiAJCWlmIChyZXNu byA8IFBDSV9CUklER0VfUkVTT1VSQ0VTKQ0KIAkJCXBjaV91cGRhdGVfcmVzb3VyY2UoZGV2LCBy ZXNubyk7DQogCX0NCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9hY2VyLXdtaS5j IGIvZHJpdmVycy9wbGF0Zm9ybS94ODYvYWNlci13bWkuYw0KaW5kZXggMTEwZTRhZi4uN2Q0NzQz NCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvcGxhdGZvcm0veDg2L2FjZXItd21pLmMNCisrKyBiL2Ry aXZlcnMvcGxhdGZvcm0veDg2L2FjZXItd21pLmMNCkBAIC0xMDUsNiArMTA1LDcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBrZXlfZW50cnkgYWNlcl93bWlfa2V5bWFwW10gPSB7DQogCXtLRV9LRVks IDB4MjIsIHtLRVlfUFJPRzJ9IH0sICAgIC8qIEFyY2FkZSAqLw0KIAl7S0VfS0VZLCAweDIzLCB7 S0VZX1BST0czfSB9LCAgICAvKiBQX0tleSAqLw0KIAl7S0VfS0VZLCAweDI0LCB7S0VZX1BST0c0 fSB9LCAgICAvKiBTb2NpYWwgbmV0d29ya2luZ19LZXkgKi8NCisJe0tFX0tFWSwgMHgyOSwge0tF WV9QUk9HM30gfSwgICAgLyogUF9LZXkgZm9yIFRNODM3MiAqLw0KIAl7S0VfSUdOT1JFLCAweDQx LCB7S0VZX01VVEV9IH0sDQogCXtLRV9JR05PUkUsIDB4NDIsIHtLRVlfUFJFVklPVVNTT05HfSB9 LA0KIAl7S0VfSUdOT1JFLCAweDQzLCB7S0VZX05FWFRTT05HfSB9LA0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvc2NzaS9pc2NpL3JlcXVlc3QuYyBiL2RyaXZlcnMvc2NzaS9pc2NpL3JlcXVlc3QuYw0K aW5kZXggMTkyY2I0OC4uZjNjYmVjYyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc2NzaS9pc2NpL3Jl cXVlc3QuYw0KKysrIGIvZHJpdmVycy9zY3NpL2lzY2kvcmVxdWVzdC5jDQpAQCAtMTg0OSw3ICsx ODQ5LDcgQEAgc2NpX2lvX3JlcXVlc3RfZnJhbWVfaGFuZGxlcihzdHJ1Y3QgaXNjaV9yZXF1ZXN0 ICppcmVxLA0KIAkJCQkJCQkJICAgICAgZnJhbWVfaW5kZXgsDQogCQkJCQkJCQkgICAgICAodm9p ZCAqKikmZnJhbWVfYnVmZmVyKTsNCiANCi0JCQlzY2lfY29udHJvbGxlcl9jb3B5X3NhdGFfcmVz cG9uc2UoJmlyZXEtPnN0cC5yZXEsDQorCQkJc2NpX2NvbnRyb2xsZXJfY29weV9zYXRhX3Jlc3Bv bnNlKCZpcmVxLT5zdHAucnNwLA0KIAkJCQkJCQkgICAgICAgZnJhbWVfaGVhZGVyLA0KIAkJCQkJ CQkgICAgICAgZnJhbWVfYnVmZmVyKTsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0 L3hoY2ktcmluZy5jIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLXJpbmcuYw0KaW5kZXggMGM2ZmIx OS4uN2RlOTk5MyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1yaW5nLmMNCisr KyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1yaW5nLmMNCkBAIC0xOTM0LDcgKzE5MzQsNiBAQCBz dGF0aWMgaW50IHByb2Nlc3NfY3RybF90ZChzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksIHN0cnVjdCB4 aGNpX3RkICp0ZCwNCiAJCX0NCiAJCWJyZWFrOw0KIAljYXNlIENPTVBfU0hPUlRfVFg6DQotCQl4 aGNpX3dhcm4oeGhjaSwgIldBUk46IHNob3J0IHRyYW5zZmVyIG9uIGNvbnRyb2wgZXBcbiIpOw0K IAkJaWYgKHRkLT51cmItPnRyYW5zZmVyX2ZsYWdzICYgVVJCX1NIT1JUX05PVF9PSykNCiAJCQkq c3RhdHVzID0gLUVSRU1PVEVJTzsNCiAJCWVsc2UNCkBAIC0yMjkxLDcgKzIyOTAsNyBAQCBzdGF0 aWMgaW50IGhhbmRsZV90eF9ldmVudChzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksDQogCQl4aGNpX2Ri Zyh4aGNpLCAiU3RvcHBlZCBvbiBOby1vcCBvciBMaW5rIFRSQlxuIik7DQogCQlicmVhazsNCiAJ Y2FzZSBDT01QX1NUQUxMOg0KLQkJeGhjaV93YXJuKHhoY2ksICJXQVJOOiBTdGFsbGVkIGVuZHBv aW50XG4iKTsNCisJCXhoY2lfZGJnKHhoY2ksICJTdGFsbGVkIGVuZHBvaW50XG4iKTsNCiAJCWVw LT5lcF9zdGF0ZSB8PSBFUF9IQUxURUQ7DQogCQlzdGF0dXMgPSAtRVBJUEU7DQogCQlicmVhazsN CkBAIC0yMzAxLDExICsyMzAwLDExIEBAIHN0YXRpYyBpbnQgaGFuZGxlX3R4X2V2ZW50KHN0cnVj dCB4aGNpX2hjZCAqeGhjaSwNCiAJCWJyZWFrOw0KIAljYXNlIENPTVBfU1BMSVRfRVJSOg0KIAlj YXNlIENPTVBfVFhfRVJSOg0KLQkJeGhjaV93YXJuKHhoY2ksICJXQVJOOiB0cmFuc2ZlciBlcnJv ciBvbiBlbmRwb2ludFxuIik7DQorCQl4aGNpX2RiZyh4aGNpLCAiVHJhbnNmZXIgZXJyb3Igb24g ZW5kcG9pbnRcbiIpOw0KIAkJc3RhdHVzID0gLUVQUk9UTzsNCiAJCWJyZWFrOw0KIAljYXNlIENP TVBfQkFCQkxFOg0KLQkJeGhjaV93YXJuKHhoY2ksICJXQVJOOiBiYWJibGUgZXJyb3Igb24gZW5k cG9pbnRcbiIpOw0KKwkJeGhjaV9kYmcoeGhjaSwgIkJhYmJsZSBlcnJvciBvbiBlbmRwb2ludFxu Iik7DQogCQlzdGF0dXMgPSAtRU9WRVJGTE9XOw0KIAkJYnJlYWs7DQogCWNhc2UgQ09NUF9EQl9F UlI6DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNpLmMgYi9kcml2ZXJzL3VzYi9o b3N0L3hoY2kuYw0KaW5kZXggNWEyM2Y0ZC4uZGFiMDVkMSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv dXNiL2hvc3QveGhjaS5jDQorKysgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2kuYw0KQEAgLTIwNiwx NCArMjA2LDE0IEBAIHN0YXRpYyBpbnQgeGhjaV9zZXR1cF9tc2koc3RydWN0IHhoY2lfaGNkICp4 aGNpKQ0KIA0KIAlyZXQgPSBwY2lfZW5hYmxlX21zaShwZGV2KTsNCiAJaWYgKHJldCkgew0KLQkJ eGhjaV9lcnIoeGhjaSwgImZhaWxlZCB0byBhbGxvY2F0ZSBNU0kgZW50cnlcbiIpOw0KKwkJeGhj aV9kYmcoeGhjaSwgImZhaWxlZCB0byBhbGxvY2F0ZSBNU0kgZW50cnlcbiIpOw0KIAkJcmV0dXJu IHJldDsNCiAJfQ0KIA0KIAlyZXQgPSByZXF1ZXN0X2lycShwZGV2LT5pcnEsIChpcnFfaGFuZGxl cl90KXhoY2lfbXNpX2lycSwNCiAJCQkJMCwgInhoY2lfaGNkIiwgeGhjaV90b19oY2QoeGhjaSkp Ow0KIAlpZiAocmV0KSB7DQotCQl4aGNpX2Vycih4aGNpLCAiZGlzYWJsZSBNU0kgaW50ZXJydXB0 XG4iKTsNCisJCXhoY2lfZGJnKHhoY2ksICJkaXNhYmxlIE1TSSBpbnRlcnJ1cHRcbiIpOw0KIAkJ cGNpX2Rpc2FibGVfbXNpKHBkZXYpOw0KIAl9DQogDQpAQCAtMjc2LDcgKzI3Niw3IEBAIHN0YXRp YyBpbnQgeGhjaV9zZXR1cF9tc2l4KHN0cnVjdCB4aGNpX2hjZCAqeGhjaSkNCiANCiAJcmV0ID0g cGNpX2VuYWJsZV9tc2l4KHBkZXYsIHhoY2ktPm1zaXhfZW50cmllcywgeGhjaS0+bXNpeF9jb3Vu dCk7DQogCWlmIChyZXQpIHsNCi0JCXhoY2lfZXJyKHhoY2ksICJGYWlsZWQgdG8gZW5hYmxlIE1T SS1YXG4iKTsNCisJCXhoY2lfZGJnKHhoY2ksICJGYWlsZWQgdG8gZW5hYmxlIE1TSS1YXG4iKTsN CiAJCWdvdG8gZnJlZV9lbnRyaWVzOw0KIAl9DQogDQpAQCAtMjkyLDcgKzI5Miw3IEBAIHN0YXRp YyBpbnQgeGhjaV9zZXR1cF9tc2l4KHN0cnVjdCB4aGNpX2hjZCAqeGhjaSkNCiAJcmV0dXJuIHJl dDsNCiANCiBkaXNhYmxlX21zaXg6DQotCXhoY2lfZXJyKHhoY2ksICJkaXNhYmxlIE1TSS1YIGlu dGVycnVwdFxuIik7DQorCXhoY2lfZGJnKHhoY2ksICJkaXNhYmxlIE1TSS1YIGludGVycnVwdFxu Iik7DQogCXhoY2lfZnJlZV9pcnEoeGhjaSk7DQogCXBjaV9kaXNhYmxlX21zaXgocGRldik7DQog ZnJlZV9lbnRyaWVzOg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYyBi L2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYw0KaW5kZXggYzMzNDY3MC4uYTVmODc1ZCAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYw0KKysrIGIvZHJpdmVycy91c2Iv c2VyaWFsL29wdGlvbi5jDQpAQCAtMTU3LDYgKzE1Nyw3IEBAIHN0YXRpYyB2b2lkIG9wdGlvbl9p bnN0YXRfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiKTsNCiAjZGVmaW5lIE5PVkFURUxXSVJFTEVT U19QUk9EVUNUX0VWRE9fRU1CRURERURfSElHSFNQRUVECTB4ODAwMQ0KICNkZWZpbmUgTk9WQVRF TFdJUkVMRVNTX1BST0RVQ1RfSFNQQV9FTUJFRERFRF9GVUxMU1BFRUQJMHg5MDAwDQogI2RlZmlu ZSBOT1ZBVEVMV0lSRUxFU1NfUFJPRFVDVF9IU1BBX0VNQkVEREVEX0hJR0hTUEVFRAkweDkwMDEN CisjZGVmaW5lIE5PVkFURUxXSVJFTEVTU19QUk9EVUNUX0UzNjIJCTB4OTAxMA0KICNkZWZpbmUg Tk9WQVRFTFdJUkVMRVNTX1BST0RVQ1RfRzEJCTB4QTAwMQ0KICNkZWZpbmUgTk9WQVRFTFdJUkVM RVNTX1BST0RVQ1RfRzFfTQkJMHhBMDAyDQogI2RlZmluZSBOT1ZBVEVMV0lSRUxFU1NfUFJPRFVD VF9HMgkJMHhBMDEwDQpAQCAtMTkyLDYgKzE5Myw5IEBAIHN0YXRpYyB2b2lkIG9wdGlvbl9pbnN0 YXRfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiKTsNCiAjZGVmaW5lIERFTExfUFJPRFVDVF81NzMw X01JTklDQVJEX1RFTFVTCTB4ODE4MQ0KICNkZWZpbmUgREVMTF9QUk9EVUNUXzU3MzBfTUlOSUNB UkRfVlpXCQkweDgxODINCiANCisjZGVmaW5lIERFTExfUFJPRFVDVF81ODAwX01JTklDQVJEX1Za VwkJMHg4MTk1ICAvKiBOb3ZhdGVsIEUzNjIgKi8NCisjZGVmaW5lIERFTExfUFJPRFVDVF81ODAw X1YyX01JTklDQVJEX1ZaVwkweDgxOTYgIC8qIE5vdmF0ZWwgRTM2MiAqLw0KKw0KICNkZWZpbmUg S1lPQ0VSQV9WRU5ET1JfSUQJCQkweDBjODgNCiAjZGVmaW5lIEtZT0NFUkFfUFJPRFVDVF9LUEM2 NTAJCQkweDE3ZGENCiAjZGVmaW5lIEtZT0NFUkFfUFJPRFVDVF9LUEM2ODAJCQkweDE4MGENCkBA IC0yODIsNiArMjg2LDcgQEAgc3RhdGljIHZvaWQgb3B0aW9uX2luc3RhdF9jYWxsYmFjayhzdHJ1 Y3QgdXJiICp1cmIpOw0KIC8qIEFMQ0FURUwgUFJPRFVDVFMgKi8NCiAjZGVmaW5lIEFMQ0FURUxf VkVORE9SX0lECQkJMHgxYmJiDQogI2RlZmluZSBBTENBVEVMX1BST0RVQ1RfWDA2MFNfWDIwMAkJ MHgwMDAwDQorI2RlZmluZSBBTENBVEVMX1BST0RVQ1RfWDIyMF9YNTAwRAkJMHgwMDE3DQogDQog I2RlZmluZSBQSVJFTExJX1ZFTkRPUl9JRAkJCTB4MTI2Ng0KICNkZWZpbmUgUElSRUxMSV9QUk9E VUNUX0MxMDBfMQkJCTB4MTAwMg0KQEAgLTcwNSw2ICs3MTAsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHVzYl9kZXZpY2VfaWQgb3B0aW9uX2lkc1tdID0gew0KIAl7IFVTQl9ERVZJQ0UoTk9WQVRF TFdJUkVMRVNTX1ZFTkRPUl9JRCwgTk9WQVRFTFdJUkVMRVNTX1BST0RVQ1RfRzIpIH0sDQogCS8q IE5vdmF0ZWwgT3ZhdGlvbiBNQzU1MSBhLmsuYS4gVmVyaXpvbiBVU0I1NTFMICovDQogCXsgVVNC X0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oTk9WQVRFTFdJUkVMRVNTX1ZFTkRPUl9JRCwgTk9W QVRFTFdJUkVMRVNTX1BST0RVQ1RfTUM1NTEsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQorCXsgVVNC X0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oTk9WQVRFTFdJUkVMRVNTX1ZFTkRPUl9JRCwgTk9W QVRFTFdJUkVMRVNTX1BST0RVQ1RfRTM2MiwgMHhmZiwgMHhmZiwgMHhmZikgfSwNCiANCiAJeyBV U0JfREVWSUNFKEFNT0lfVkVORE9SX0lELCBBTU9JX1BST0RVQ1RfSDAxKSB9LA0KIAl7IFVTQl9E RVZJQ0UoQU1PSV9WRU5ET1JfSUQsIEFNT0lfUFJPRFVDVF9IMDFBKSB9LA0KQEAgLTcyNyw2ICs3 MzMsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgb3B0aW9uX2lkc1tdID0g ew0KIAl7IFVTQl9ERVZJQ0UoREVMTF9WRU5ET1JfSUQsIERFTExfUFJPRFVDVF81NzMwX01JTklD QVJEX1NQUklOVCkgfSwJLyogRGVsbCBXaXJlbGVzcyA1NzMwIE1vYmlsZSBCcm9hZGJhbmQgRVZE Ty9IU1BBIE1pbmktQ2FyZCAqLw0KIAl7IFVTQl9ERVZJQ0UoREVMTF9WRU5ET1JfSUQsIERFTExf UFJPRFVDVF81NzMwX01JTklDQVJEX1RFTFVTKSB9LAkvKiBEZWxsIFdpcmVsZXNzIDU3MzAgTW9i aWxlIEJyb2FkYmFuZCBFVkRPL0hTUEEgTWluaS1DYXJkICovDQogCXsgVVNCX0RFVklDRShERUxM X1ZFTkRPUl9JRCwgREVMTF9QUk9EVUNUXzU3MzBfTUlOSUNBUkRfVlpXKSB9LCAJLyogRGVsbCBX aXJlbGVzcyA1NzMwIE1vYmlsZSBCcm9hZGJhbmQgRVZETy9IU1BBIE1pbmktQ2FyZCAqLw0KKwl7 IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKERFTExfVkVORE9SX0lELCBERUxMX1BST0RV Q1RfNTgwMF9NSU5JQ0FSRF9WWlcsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQorCXsgVVNCX0RFVklD RV9BTkRfSU5URVJGQUNFX0lORk8oREVMTF9WRU5ET1JfSUQsIERFTExfUFJPRFVDVF81ODAwX1Yy X01JTklDQVJEX1ZaVywgMHhmZiwgMHhmZiwgMHhmZikgfSwNCiAJeyBVU0JfREVWSUNFKEFOWURB VEFfVkVORE9SX0lELCBBTllEQVRBX1BST0RVQ1RfQURVX0UxMDBBKSB9LAkvKiBBRFUtRTEwMCwg QURVLTMxMCAqLw0KIAl7IFVTQl9ERVZJQ0UoQU5ZREFUQV9WRU5ET1JfSUQsIEFOWURBVEFfUFJP RFVDVF9BRFVfNTAwQSkgfSwNCiAJeyBVU0JfREVWSUNFKEFOWURBVEFfVkVORE9SX0lELCBBTllE QVRBX1BST0RVQ1RfQURVXzYyMFVXKSB9LA0KQEAgLTExNTYsNiArMTE2NCw3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBvcHRpb25faWRzW10gPSB7DQogCXsgVVNCX0RFVklD RShBTENBVEVMX1ZFTkRPUl9JRCwgQUxDQVRFTF9QUk9EVUNUX1gwNjBTX1gyMDApLA0KIAkgIC5k cml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkmYWxjYXRlbF94MjAwX2JsYWNrbGlzdA0KIAl9 LA0KKwl7IFVTQl9ERVZJQ0UoQUxDQVRFTF9WRU5ET1JfSUQsIEFMQ0FURUxfUFJPRFVDVF9YMjIw X1g1MDBEKSB9LA0KIAl7IFVTQl9ERVZJQ0UoQUlSUExVU19WRU5ET1JfSUQsIEFJUlBMVVNfUFJP RFVDVF9NQ0Q2NTApIH0sDQogCXsgVVNCX0RFVklDRShUTEFZVEVDSF9WRU5ET1JfSUQsIFRMQVlU RUNIX1BST0RVQ1RfVEVVODAwKSB9LA0KIAl7IFVTQl9ERVZJQ0UoTE9OR0NIRUVSX1ZFTkRPUl9J RCwgRk9VUl9HX1NZU1RFTVNfUFJPRFVDVF9XMTQpLA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNi L3NlcmlhbC91c2Itc2VyaWFsLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvdXNiLXNlcmlhbC5jDQpp bmRleCA4YmVhNDVjLi5lNTIwNmRlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL3Vz Yi1zZXJpYWwuYw0KKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3VzYi1zZXJpYWwuYw0KQEAgLTc2 NCw3ICs3NjQsNyBAQCBpbnQgdXNiX3NlcmlhbF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAq aW50ZXJmYWNlLA0KIA0KIAkJaWYgKHJldHZhbCkgew0KIAkJCWRiZygic3ViIGRyaXZlciByZWpl Y3RlZCBkZXZpY2UiKTsNCi0JCQlrZnJlZShzZXJpYWwpOw0KKwkJCXVzYl9zZXJpYWxfcHV0KHNl cmlhbCk7DQogCQkJbW9kdWxlX3B1dCh0eXBlLT5kcml2ZXIub3duZXIpOw0KIAkJCXJldHVybiBy ZXR2YWw7DQogCQl9DQpAQCAtODM2LDcgKzgzNiw3IEBAIGludCB1c2Jfc2VyaWFsX3Byb2JlKHN0 cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UsDQogCQkgKi8NCiAJCWlmIChudW1fYnVsa19p biA9PSAwIHx8IG51bV9idWxrX291dCA9PSAwKSB7DQogCQkJZGV2X2luZm8oJmludGVyZmFjZS0+ ZGV2LCAiUEwtMjMwMyBoYWNrOiBkZXNjcmlwdG9ycyBtYXRjaGVkIGJ1dCBlbmRwb2ludHMgZGlk IG5vdFxuIik7DQotCQkJa2ZyZWUoc2VyaWFsKTsNCisJCQl1c2Jfc2VyaWFsX3B1dChzZXJpYWwp Ow0KIAkJCW1vZHVsZV9wdXQodHlwZS0+ZHJpdmVyLm93bmVyKTsNCiAJCQlyZXR1cm4gLUVOT0RF VjsNCiAJCX0NCkBAIC04NTAsNyArODUwLDcgQEAgaW50IHVzYl9zZXJpYWxfcHJvYmUoc3RydWN0 IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSwNCiAJCWlmIChudW1fcG9ydHMgPT0gMCkgew0KIAkJ CWRldl9lcnIoJmludGVyZmFjZS0+ZGV2LA0KIAkJCSAgICAiR2VuZXJpYyBkZXZpY2Ugd2l0aCBu byBidWxrIG91dCwgbm90IGFsbG93ZWQuXG4iKTsNCi0JCQlrZnJlZShzZXJpYWwpOw0KKwkJCXVz Yl9zZXJpYWxfcHV0KHNlcmlhbCk7DQogCQkJbW9kdWxlX3B1dCh0eXBlLT5kcml2ZXIub3duZXIp Ow0KIAkJCXJldHVybiAtRUlPOw0KIAkJfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvd2F0Y2hkb2cv aVRDT193ZHQuYyBiL2RyaXZlcnMvd2F0Y2hkb2cvaVRDT193ZHQuYw0KaW5kZXggOTk3OTZjNS4u YmRmNDAxYiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvd2F0Y2hkb2cvaVRDT193ZHQuYw0KKysrIGIv ZHJpdmVycy93YXRjaGRvZy9pVENPX3dkdC5jDQpAQCAtMzYsNiArMzYsNyBAQA0KICAqCWRvY3Vt ZW50IG51bWJlciBUQkQgICAgICAgICAgICAgICAgICAgOiBQYXRzYnVyZyAoUEJHKQ0KICAqCWRv Y3VtZW50IG51bWJlciBUQkQgICAgICAgICAgICAgICAgICAgOiBESDg5eHhDQw0KICAqCWRvY3Vt ZW50IG51bWJlciBUQkQgICAgICAgICAgICAgICAgICAgOiBQYW50aGVyIFBvaW50DQorICoJZG9j dW1lbnQgbnVtYmVyIFRCRCAgICAgICAgICAgICAgICAgICA6IEx5bnggUG9pbnQNCiAgKi8NCiAN CiAvKg0KQEAgLTEyNiw2ICsxMjcsNyBAQCBlbnVtIGlUQ09fY2hpcHNldHMgew0KIAlUQ09fUEJH LAkvKiBQYXRzYnVyZyAqLw0KIAlUQ09fREg4OVhYQ0MsCS8qIERIODl4eENDICovDQogCVRDT19Q UFQsCS8qIFBhbnRoZXIgUG9pbnQgKi8NCisJVENPX0xQVCwJLyogTHlueCBQb2ludCAqLw0KIH07 DQogDQogc3RhdGljIHN0cnVjdCB7DQpAQCAtMTg5LDYgKzE5MSw3IEBAIHN0YXRpYyBzdHJ1Y3Qg ew0KIAl7IlBhdHNidXJnIiwgMn0sDQogCXsiREg4OXh4Q0MiLCAyfSwNCiAJeyJQYW50aGVyIFBv aW50IiwgMn0sDQorCXsiTHlueCBQb2ludCIsIDJ9LA0KIAl7TlVMTCwgMH0NCiB9Ow0KIA0KQEAg LTMzMSw2ICszMzQsMzggQEAgc3RhdGljIERFRklORV9QQ0lfREVWSUNFX1RBQkxFKGlUQ09fd2R0 X3BjaV90YmwpID0gew0KIAl7IFBDSV9WREVWSUNFKElOVEVMLCAweDFlNWQpLCBUQ09fUFBUfSwN CiAJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgxZTVlKSwgVENPX1BQVH0sDQogCXsgUENJX1ZERVZJ Q0UoSU5URUwsIDB4MWU1ZiksIFRDT19QUFR9LA0KKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweDhj NDApLCBUQ09fTFBUfSwNCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg4YzQxKSwgVENPX0xQVH0s DQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OGM0MiksIFRDT19MUFR9LA0KKwl7IFBDSV9WREVW SUNFKElOVEVMLCAweDhjNDMpLCBUQ09fTFBUfSwNCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg4 YzQ0KSwgVENPX0xQVH0sDQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OGM0NSksIFRDT19MUFR9 LA0KKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweDhjNDYpLCBUQ09fTFBUfSwNCisJeyBQQ0lfVkRF VklDRShJTlRFTCwgMHg4YzQ3KSwgVENPX0xQVH0sDQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4 OGM0OCksIFRDT19MUFR9LA0KKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweDhjNDkpLCBUQ09fTFBU fSwNCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg4YzRhKSwgVENPX0xQVH0sDQorCXsgUENJX1ZE RVZJQ0UoSU5URUwsIDB4OGM0YiksIFRDT19MUFR9LA0KKwl7IFBDSV9WREVWSUNFKElOVEVMLCAw eDhjNGMpLCBUQ09fTFBUfSwNCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg4YzRkKSwgVENPX0xQ VH0sDQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OGM0ZSksIFRDT19MUFR9LA0KKwl7IFBDSV9W REVWSUNFKElOVEVMLCAweDhjNGYpLCBUQ09fTFBUfSwNCisJeyBQQ0lfVkRFVklDRShJTlRFTCwg MHg4YzUwKSwgVENPX0xQVH0sDQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OGM1MSksIFRDT19M UFR9LA0KKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweDhjNTIpLCBUQ09fTFBUfSwNCisJeyBQQ0lf VkRFVklDRShJTlRFTCwgMHg4YzUzKSwgVENPX0xQVH0sDQorCXsgUENJX1ZERVZJQ0UoSU5URUws IDB4OGM1NCksIFRDT19MUFR9LA0KKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweDhjNTUpLCBUQ09f TFBUfSwNCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg4YzU2KSwgVENPX0xQVH0sDQorCXsgUENJ X1ZERVZJQ0UoSU5URUwsIDB4OGM1NyksIFRDT19MUFR9LA0KKwl7IFBDSV9WREVWSUNFKElOVEVM LCAweDhjNTgpLCBUQ09fTFBUfSwNCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg4YzU5KSwgVENP X0xQVH0sDQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OGM1YSksIFRDT19MUFR9LA0KKwl7IFBD SV9WREVWSUNFKElOVEVMLCAweDhjNWIpLCBUQ09fTFBUfSwNCisJeyBQQ0lfVkRFVklDRShJTlRF TCwgMHg4YzVjKSwgVENPX0xQVH0sDQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OGM1ZCksIFRD T19MUFR9LA0KKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweDhjNWUpLCBUQ09fTFBUfSwNCisJeyBQ Q0lfVkRFVklDRShJTlRFTCwgMHg4YzVmKSwgVENPX0xQVH0sDQogCXsgMCwgfSwJCQkvKiBFbmQg b2YgbGlzdCAqLw0KIH07DQogTU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGlUQ09fd2R0X3BjaV90 YmwpOw0KZGlmZiAtLWdpdCBhL2ZzL2dmczIvbG9wcy5jIGIvZnMvZ2ZzMi9sb3BzLmMNCmluZGV4 IDAzMDFiZTYuLjQ2NWU0OWEgMTAwNjQ0DQotLS0gYS9mcy9nZnMyL2xvcHMuYw0KKysrIGIvZnMv Z2ZzMi9sb3BzLmMNCkBAIC0xNjUsMTYgKzE2NSwxNCBAQCBzdGF0aWMgdm9pZCBidWZfbG9fYWRk KHN0cnVjdCBnZnMyX3NiZCAqc2RwLCBzdHJ1Y3QgZ2ZzMl9sb2dfZWxlbWVudCAqbGUpDQogCXN0 cnVjdCBnZnMyX21ldGFfaGVhZGVyICptaDsNCiAJc3RydWN0IGdmczJfdHJhbnMgKnRyOw0KIA0K LQlsb2NrX2J1ZmZlcihiZC0+YmRfYmgpOw0KLQlnZnMyX2xvZ19sb2NrKHNkcCk7DQogCWlmICgh bGlzdF9lbXB0eSgmYmQtPmJkX2xpc3RfdHIpKQ0KLQkJZ290byBvdXQ7DQorCQlyZXR1cm47DQog CXRyID0gY3VycmVudC0+am91cm5hbF9pbmZvOw0KIAl0ci0+dHJfdG91Y2hlZCA9IDE7DQogCXRy LT50cl9udW1fYnVmKys7DQogCWxpc3RfYWRkKCZiZC0+YmRfbGlzdF90ciwgJnRyLT50cl9saXN0 X2J1Zik7DQogCWlmICghbGlzdF9lbXB0eSgmbGUtPmxlX2xpc3QpKQ0KLQkJZ290byBvdXQ7DQor CQlyZXR1cm47DQogCXNldF9iaXQoR0xGX0xGTFVTSCwgJmJkLT5iZF9nbC0+Z2xfZmxhZ3MpOw0K IAlzZXRfYml0KEdMRl9ESVJUWSwgJmJkLT5iZF9nbC0+Z2xfZmxhZ3MpOw0KIAlnZnMyX21ldGFf Y2hlY2soc2RwLCBiZC0+YmRfYmgpOw0KQEAgLTE4NSw5ICsxODMsNiBAQCBzdGF0aWMgdm9pZCBi dWZfbG9fYWRkKHN0cnVjdCBnZnMyX3NiZCAqc2RwLCBzdHJ1Y3QgZ2ZzMl9sb2dfZWxlbWVudCAq bGUpDQogCXNkcC0+c2RfbG9nX251bV9idWYrKzsNCiAJbGlzdF9hZGQoJmxlLT5sZV9saXN0LCAm c2RwLT5zZF9sb2dfbGVfYnVmKTsNCiAJdHItPnRyX251bV9idWZfbmV3Kys7DQotb3V0Og0KLQln ZnMyX2xvZ191bmxvY2soc2RwKTsNCi0JdW5sb2NrX2J1ZmZlcihiZC0+YmRfYmgpOw0KIH0NCiAN CiBzdGF0aWMgdm9pZCBidWZfbG9fYmVmb3JlX2NvbW1pdChzdHJ1Y3QgZ2ZzMl9zYmQgKnNkcCkN CkBAIC01MTgsMTEgKzUxMyw5IEBAIHN0YXRpYyB2b2lkIGRhdGFidWZfbG9fYWRkKHN0cnVjdCBn ZnMyX3NiZCAqc2RwLCBzdHJ1Y3QgZ2ZzMl9sb2dfZWxlbWVudCAqbGUpDQogCXN0cnVjdCBhZGRy ZXNzX3NwYWNlICptYXBwaW5nID0gYmQtPmJkX2JoLT5iX3BhZ2UtPm1hcHBpbmc7DQogCXN0cnVj dCBnZnMyX2lub2RlICppcCA9IEdGUzJfSShtYXBwaW5nLT5ob3N0KTsNCiANCi0JbG9ja19idWZm ZXIoYmQtPmJkX2JoKTsNCi0JZ2ZzMl9sb2dfbG9jayhzZHApOw0KIAlpZiAodHIpIHsNCiAJCWlm ICghbGlzdF9lbXB0eSgmYmQtPmJkX2xpc3RfdHIpKQ0KLQkJCWdvdG8gb3V0Ow0KKwkJCXJldHVy bjsNCiAJCXRyLT50cl90b3VjaGVkID0gMTsNCiAJCWlmIChnZnMyX2lzX2pkYXRhKGlwKSkgew0K IAkJCXRyLT50cl9udW1fYnVmKys7DQpAQCAtNTMwLDcgKzUyMyw3IEBAIHN0YXRpYyB2b2lkIGRh dGFidWZfbG9fYWRkKHN0cnVjdCBnZnMyX3NiZCAqc2RwLCBzdHJ1Y3QgZ2ZzMl9sb2dfZWxlbWVu dCAqbGUpDQogCQl9DQogCX0NCiAJaWYgKCFsaXN0X2VtcHR5KCZsZS0+bGVfbGlzdCkpDQotCQln b3RvIG91dDsNCisJCXJldHVybjsNCiANCiAJc2V0X2JpdChHTEZfTEZMVVNILCAmYmQtPmJkX2ds LT5nbF9mbGFncyk7DQogCXNldF9iaXQoR0xGX0RJUlRZLCAmYmQtPmJkX2dsLT5nbF9mbGFncyk7 DQpAQCAtNTQyLDkgKzUzNSw2IEBAIHN0YXRpYyB2b2lkIGRhdGFidWZfbG9fYWRkKHN0cnVjdCBn ZnMyX3NiZCAqc2RwLCBzdHJ1Y3QgZ2ZzMl9sb2dfZWxlbWVudCAqbGUpDQogCX0gZWxzZSB7DQog CQlsaXN0X2FkZF90YWlsKCZsZS0+bGVfbGlzdCwgJnNkcC0+c2RfbG9nX2xlX29yZGVyZWQpOw0K IAl9DQotb3V0Og0KLQlnZnMyX2xvZ191bmxvY2soc2RwKTsNCi0JdW5sb2NrX2J1ZmZlcihiZC0+ YmRfYmgpOw0KIH0NCiANCiBzdGF0aWMgdm9pZCBnZnMyX2NoZWNrX21hZ2ljKHN0cnVjdCBidWZm ZXJfaGVhZCAqYmgpDQpkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi90cmFucy5jIGIvZnMvZ2ZzMi90cmFu cy5jDQppbmRleCA4NmFjNzVkLi42YWIyYTc3IDEwMDY0NA0KLS0tIGEvZnMvZ2ZzMi90cmFucy5j DQorKysgYi9mcy9nZnMyL3RyYW5zLmMNCkBAIC0xNDUsMTQgKzE0NSwyMiBAQCB2b2lkIGdmczJf dHJhbnNfYWRkX2JoKHN0cnVjdCBnZnMyX2dsb2NrICpnbCwgc3RydWN0IGJ1ZmZlcl9oZWFkICpi aCwgaW50IG1ldGEpDQogCXN0cnVjdCBnZnMyX3NiZCAqc2RwID0gZ2wtPmdsX3NiZDsNCiAJc3Ry dWN0IGdmczJfYnVmZGF0YSAqYmQ7DQogDQorCWxvY2tfYnVmZmVyKGJoKTsNCisJZ2ZzMl9sb2df bG9jayhzZHApOw0KIAliZCA9IGJoLT5iX3ByaXZhdGU7DQogCWlmIChiZCkNCiAJCWdmczJfYXNz ZXJ0KHNkcCwgYmQtPmJkX2dsID09IGdsKTsNCiAJZWxzZSB7DQorCQlnZnMyX2xvZ191bmxvY2so c2RwKTsNCisJCXVubG9ja19idWZmZXIoYmgpOw0KIAkJZ2ZzMl9hdHRhY2hfYnVmZGF0YShnbCwg YmgsIG1ldGEpOw0KIAkJYmQgPSBiaC0+Yl9wcml2YXRlOw0KKwkJbG9ja19idWZmZXIoYmgpOw0K KwkJZ2ZzMl9sb2dfbG9jayhzZHApOw0KIAl9DQogCWxvcHNfYWRkKHNkcCwgJmJkLT5iZF9sZSk7 DQorCWdmczJfbG9nX3VubG9jayhzZHApOw0KKwl1bmxvY2tfYnVmZmVyKGJoKTsNCiB9DQogDQog dm9pZCBnZnMyX3RyYW5zX2FkZF9yZXZva2Uoc3RydWN0IGdmczJfc2JkICpzZHAsIHN0cnVjdCBn ZnMyX2J1ZmRhdGEgKmJkKQ0KZGlmZiAtLWdpdCBhL2ZzL2piZC90cmFuc2FjdGlvbi5jIGIvZnMv amJkL3RyYW5zYWN0aW9uLmMNCmluZGV4IGVkYWMwMDQuLjdjODZiMzcgMTAwNjQ0DQotLS0gYS9m cy9qYmQvdHJhbnNhY3Rpb24uYw0KKysrIGIvZnMvamJkL3RyYW5zYWN0aW9uLmMNCkBAIC0xOTU3 LDcgKzE5NTcsOSBAQCByZXRyeToNCiAJCQlzcGluX3VubG9jaygmam91cm5hbC0+al9saXN0X2xv Y2spOw0KIAkJCWpiZF91bmxvY2tfYmhfc3RhdGUoYmgpOw0KIAkJCXNwaW5fdW5sb2NrKCZqb3Vy bmFsLT5qX3N0YXRlX2xvY2spOw0KKwkJCXVubG9ja19idWZmZXIoYmgpOw0KIAkJCWxvZ193YWl0 X2NvbW1pdChqb3VybmFsLCB0aWQpOw0KKwkJCWxvY2tfYnVmZmVyKGJoKTsNCiAJCQlnb3RvIHJl dHJ5Ow0KIAkJfQ0KIAkJLyoNCmRpZmYgLS1naXQgYS9mcy9qZmZzMi9maWxlLmMgYi9mcy9qZmZz Mi9maWxlLmMNCmluZGV4IDYxZTY3MjMuLjAwOTVhNzAgMTAwNjQ0DQotLS0gYS9mcy9qZmZzMi9m aWxlLmMNCisrKyBiL2ZzL2pmZnMyL2ZpbGUuYw0KQEAgLTEzNSwzMyArMTM1LDM5IEBAIHN0YXRp YyBpbnQgamZmczJfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBhZGRyZXNz X3NwYWNlICptYXBwaW5nLA0KIAlzdHJ1Y3QgcGFnZSAqcGc7DQogCXN0cnVjdCBpbm9kZSAqaW5v ZGUgPSBtYXBwaW5nLT5ob3N0Ow0KIAlzdHJ1Y3QgamZmczJfaW5vZGVfaW5mbyAqZiA9IEpGRlMy X0lOT0RFX0lORk8oaW5vZGUpOw0KKwlzdHJ1Y3QgamZmczJfc2JfaW5mbyAqYyA9IEpGRlMyX1NC X0lORk8oaW5vZGUtPmlfc2IpOw0KKwlzdHJ1Y3QgamZmczJfcmF3X2lub2RlIHJpOw0KKwl1aW50 MzJfdCBhbGxvY19sZW4gPSAwOw0KIAlwZ29mZl90IGluZGV4ID0gcG9zID4+IFBBR0VfQ0FDSEVf U0hJRlQ7DQogCXVpbnQzMl90IHBhZ2VvZnMgPSBpbmRleCA8PCBQQUdFX0NBQ0hFX1NISUZUOw0K IAlpbnQgcmV0ID0gMDsNCiANCisJRDEocHJpbnRrKEtFUk5fREVCVUcgIiVzKClcbiIsIF9fZnVu Y19fKSk7DQorDQorCWlmIChwYWdlb2ZzID4gaW5vZGUtPmlfc2l6ZSkgew0KKwkJcmV0ID0gamZm czJfcmVzZXJ2ZV9zcGFjZShjLCBzaXplb2YocmkpLCAmYWxsb2NfbGVuLA0KKwkJCQkJICBBTExP Q19OT1JNQUwsIEpGRlMyX1NVTU1BUllfSU5PREVfU0laRSk7DQorCQlpZiAocmV0KQ0KKwkJCXJl dHVybiByZXQ7DQorCX0NCisNCisJbXV0ZXhfbG9jaygmZi0+c2VtKTsNCiAJcGcgPSBncmFiX2Nh Y2hlX3BhZ2Vfd3JpdGVfYmVnaW4obWFwcGluZywgaW5kZXgsIGZsYWdzKTsNCi0JaWYgKCFwZykN CisJaWYgKCFwZykgew0KKwkJaWYgKGFsbG9jX2xlbikNCisJCQlqZmZzMl9jb21wbGV0ZV9yZXNl cnZhdGlvbihjKTsNCisJCW11dGV4X3VubG9jaygmZi0+c2VtKTsNCiAJCXJldHVybiAtRU5PTUVN Ow0KKwl9DQogCSpwYWdlcCA9IHBnOw0KIA0KLQlEMShwcmludGsoS0VSTl9ERUJVRyAiamZmczJf d3JpdGVfYmVnaW4oKVxuIikpOw0KLQ0KLQlpZiAocGFnZW9mcyA+IGlub2RlLT5pX3NpemUpIHsN CisJaWYgKGFsbG9jX2xlbikgew0KIAkJLyogTWFrZSBuZXcgaG9sZSBmcmFnIGZyb20gb2xkIEVP RiB0byBuZXcgcGFnZSAqLw0KLQkJc3RydWN0IGpmZnMyX3NiX2luZm8gKmMgPSBKRkZTMl9TQl9J TkZPKGlub2RlLT5pX3NiKTsNCi0JCXN0cnVjdCBqZmZzMl9yYXdfaW5vZGUgcmk7DQogCQlzdHJ1 Y3QgamZmczJfZnVsbF9kbm9kZSAqZm47DQotCQl1aW50MzJfdCBhbGxvY19sZW47DQogDQogCQlE MShwcmludGsoS0VSTl9ERUJVRyAiV3JpdGluZyBuZXcgaG9sZSBmcmFnIDB4JXgtMHgleCBiZXR3 ZWVuIGN1cnJlbnQgRU9GIGFuZCBuZXcgcGFnZVxuIiwNCiAJCQkgICh1bnNpZ25lZCBpbnQpaW5v ZGUtPmlfc2l6ZSwgcGFnZW9mcykpOw0KIA0KLQkJcmV0ID0gamZmczJfcmVzZXJ2ZV9zcGFjZShj LCBzaXplb2YocmkpLCAmYWxsb2NfbGVuLA0KLQkJCQkJICBBTExPQ19OT1JNQUwsIEpGRlMyX1NV TU1BUllfSU5PREVfU0laRSk7DQotCQlpZiAocmV0KQ0KLQkJCWdvdG8gb3V0X3BhZ2U7DQotDQot CQltdXRleF9sb2NrKCZmLT5zZW0pOw0KIAkJbWVtc2V0KCZyaSwgMCwgc2l6ZW9mKHJpKSk7DQog DQogCQlyaS5tYWdpYyA9IGNwdV90b19qZTE2KEpGRlMyX01BR0lDX0JJVE1BU0spOw0KQEAgLTE4 OCw3ICsxOTQsNiBAQCBzdGF0aWMgaW50IGpmZnMyX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpm aWxwLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCWlmIChJU19FUlIoZm4pKSB7 DQogCQkJcmV0ID0gUFRSX0VSUihmbik7DQogCQkJamZmczJfY29tcGxldGVfcmVzZXJ2YXRpb24o Yyk7DQotCQkJbXV0ZXhfdW5sb2NrKCZmLT5zZW0pOw0KIAkJCWdvdG8gb3V0X3BhZ2U7DQogCQl9 DQogCQlyZXQgPSBqZmZzMl9hZGRfZnVsbF9kbm9kZV90b19pbm9kZShjLCBmLCBmbik7DQpAQCAt MjAyLDEyICsyMDcsMTAgQEAgc3RhdGljIGludCBqZmZzMl93cml0ZV9iZWdpbihzdHJ1Y3QgZmls ZSAqZmlscCwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCQkJamZmczJfbWFya19u b2RlX29ic29sZXRlKGMsIGZuLT5yYXcpOw0KIAkJCWpmZnMyX2ZyZWVfZnVsbF9kbm9kZShmbik7 DQogCQkJamZmczJfY29tcGxldGVfcmVzZXJ2YXRpb24oYyk7DQotCQkJbXV0ZXhfdW5sb2NrKCZm LT5zZW0pOw0KIAkJCWdvdG8gb3V0X3BhZ2U7DQogCQl9DQogCQlqZmZzMl9jb21wbGV0ZV9yZXNl cnZhdGlvbihjKTsNCiAJCWlub2RlLT5pX3NpemUgPSBwYWdlb2ZzOw0KLQkJbXV0ZXhfdW5sb2Nr KCZmLT5zZW0pOw0KIAl9DQogDQogCS8qDQpAQCAtMjE2LDE4ICsyMTksMTggQEAgc3RhdGljIGlu dCBqZmZzMl93cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGFkZHJlc3Nfc3Bh Y2UgKm1hcHBpbmcsDQogCSAqIGNhc2Ugb2YgYSBzaG9ydC1jb3B5Lg0KIAkgKi8NCiAJaWYgKCFQ YWdlVXB0b2RhdGUocGcpKSB7DQotCQltdXRleF9sb2NrKCZmLT5zZW0pOw0KIAkJcmV0ID0gamZm czJfZG9fcmVhZHBhZ2Vfbm9sb2NrKGlub2RlLCBwZyk7DQotCQltdXRleF91bmxvY2soJmYtPnNl bSk7DQogCQlpZiAocmV0KQ0KIAkJCWdvdG8gb3V0X3BhZ2U7DQogCX0NCisJbXV0ZXhfdW5sb2Nr KCZmLT5zZW0pOw0KIAlEMShwcmludGsoS0VSTl9ERUJVRyAiZW5kIHdyaXRlX2JlZ2luKCkuIHBn LT5mbGFncyAlbHhcbiIsIHBnLT5mbGFncykpOw0KIAlyZXR1cm4gcmV0Ow0KIA0KIG91dF9wYWdl Og0KIAl1bmxvY2tfcGFnZShwZyk7DQogCXBhZ2VfY2FjaGVfcmVsZWFzZShwZyk7DQorCW11dGV4 X3VubG9jaygmZi0+c2VtKTsNCiAJcmV0dXJuIHJldDsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvZnMv cmVpc2VyZnMvaW5vZGUuYyBiL2ZzL3JlaXNlcmZzL2lub2RlLmMNCmluZGV4IDU4MDlhYmIuLmZl Njc3YzAgMTAwNjQ0DQotLS0gYS9mcy9yZWlzZXJmcy9pbm9kZS5jDQorKysgYi9mcy9yZWlzZXJm cy9pbm9kZS5jDQpAQCAtMTc4OCw4ICsxNzg4LDkgQEAgaW50IHJlaXNlcmZzX25ld19pbm9kZShz dHJ1Y3QgcmVpc2VyZnNfdHJhbnNhY3Rpb25faGFuZGxlICp0aCwNCiANCiAJQlVHX09OKCF0aC0+ dF90cmFuc19pZCk7DQogDQotCWRxdW90X2luaXRpYWxpemUoaW5vZGUpOw0KKwlyZWlzZXJmc193 cml0ZV91bmxvY2soaW5vZGUtPmlfc2IpOw0KIAllcnIgPSBkcXVvdF9hbGxvY19pbm9kZShpbm9k ZSk7DQorCXJlaXNlcmZzX3dyaXRlX2xvY2soaW5vZGUtPmlfc2IpOw0KIAlpZiAoZXJyKQ0KIAkJ Z290byBvdXRfZW5kX3RyYW5zOw0KIAlpZiAoIWRpci0+aV9ubGluaykgew0KQEAgLTE5ODUsOCAr MTk4NiwxMCBAQCBpbnQgcmVpc2VyZnNfbmV3X2lub2RlKHN0cnVjdCByZWlzZXJmc190cmFuc2Fj dGlvbl9oYW5kbGUgKnRoLA0KIA0KICAgICAgIG91dF9lbmRfdHJhbnM6DQogCWpvdXJuYWxfZW5k KHRoLCB0aC0+dF9zdXBlciwgdGgtPnRfYmxvY2tzX2FsbG9jYXRlZCk7DQorCXJlaXNlcmZzX3dy aXRlX3VubG9jayhpbm9kZS0+aV9zYik7DQogCS8qIERyb3AgY2FuIGJlIG91dHNpZGUgYW5kIGl0 IG5lZWRzIG1vcmUgY3JlZGl0cyBzbyBpdCdzIGJldHRlciB0byBoYXZlIGl0IG91dHNpZGUgKi8N CiAJZHF1b3RfZHJvcChpbm9kZSk7DQorCXJlaXNlcmZzX3dyaXRlX2xvY2soaW5vZGUtPmlfc2Ip Ow0KIAlpbm9kZS0+aV9mbGFncyB8PSBTX05PUVVPVEE7DQogCW1ha2VfYmFkX2lub2RlKGlub2Rl KTsNCiANCkBAIC0zMTA5LDEwICszMTEyLDkgQEAgaW50IHJlaXNlcmZzX3NldGF0dHIoc3RydWN0 IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaWF0dHIgKmF0dHIpDQogCS8qIG11c3QgYmUgdHVybmVk IG9mZiBmb3IgcmVjdXJzaXZlIG5vdGlmeV9jaGFuZ2UgY2FsbHMgKi8NCiAJaWFfdmFsaWQgPSBh dHRyLT5pYV92YWxpZCAmPSB+KEFUVFJfS0lMTF9TVUlEfEFUVFJfS0lMTF9TR0lEKTsNCiANCi0J ZGVwdGggPSByZWlzZXJmc193cml0ZV9sb2NrX29uY2UoaW5vZGUtPmlfc2IpOw0KIAlpZiAoaXNf cXVvdGFfbW9kaWZpY2F0aW9uKGlub2RlLCBhdHRyKSkNCiAJCWRxdW90X2luaXRpYWxpemUoaW5v ZGUpOw0KLQ0KKwlkZXB0aCA9IHJlaXNlcmZzX3dyaXRlX2xvY2tfb25jZShpbm9kZS0+aV9zYik7 DQogCWlmIChhdHRyLT5pYV92YWxpZCAmIEFUVFJfU0laRSkgew0KIAkJLyogdmVyc2lvbiAyIGl0 ZW1zIHdpbGwgYmUgY2F1Z2h0IGJ5IHRoZSBzX21heGJ5dGVzIGNoZWNrDQogCQkgKiogZG9uZSBm b3IgdXMgaW4gdm10cnVuY2F0ZQ0KQEAgLTMxNzYsNyArMzE3OCw5IEBAIGludCByZWlzZXJmc19z ZXRhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlhdHRyICphdHRyKQ0KIAkJZXJy b3IgPSBqb3VybmFsX2JlZ2luKCZ0aCwgaW5vZGUtPmlfc2IsIGpiZWdpbl9jb3VudCk7DQogCQlp ZiAoZXJyb3IpDQogCQkJZ290byBvdXQ7DQorCQlyZWlzZXJmc193cml0ZV91bmxvY2tfb25jZShp bm9kZS0+aV9zYiwgZGVwdGgpOw0KIAkJZXJyb3IgPSBkcXVvdF90cmFuc2Zlcihpbm9kZSwgYXR0 cik7DQorCQlkZXB0aCA9IHJlaXNlcmZzX3dyaXRlX2xvY2tfb25jZShpbm9kZS0+aV9zYik7DQog CQlpZiAoZXJyb3IpIHsNCiAJCQlqb3VybmFsX2VuZCgmdGgsIGlub2RlLT5pX3NiLCBqYmVnaW5f Y291bnQpOw0KIAkJCWdvdG8gb3V0Ow0KZGlmZiAtLWdpdCBhL2ZzL3JlaXNlcmZzL3N0cmVlLmMg Yi9mcy9yZWlzZXJmcy9zdHJlZS5jDQppbmRleCAzMTNkMzlkLi4zYWU5OTI2IDEwMDY0NA0KLS0t IGEvZnMvcmVpc2VyZnMvc3RyZWUuYw0KKysrIGIvZnMvcmVpc2VyZnMvc3RyZWUuYw0KQEAgLTE5 NjgsNyArMTk2OCw5IEBAIGludCByZWlzZXJmc19wYXN0ZV9pbnRvX2l0ZW0oc3RydWN0IHJlaXNl cmZzX3RyYW5zYWN0aW9uX2hhbmRsZSAqdGgsIHN0cnVjdCB0cmVlDQogCQkgICAgICAga2V5MnR5 cGUoJihrZXktPm9uX2Rpc2tfa2V5KSkpOw0KICNlbmRpZg0KIA0KKwlyZWlzZXJmc193cml0ZV91 bmxvY2soaW5vZGUtPmlfc2IpOw0KIAlyZXR2YWwgPSBkcXVvdF9hbGxvY19zcGFjZV9ub2RpcnR5 KGlub2RlLCBwYXN0ZWRfc2l6ZSk7DQorCXJlaXNlcmZzX3dyaXRlX2xvY2soaW5vZGUtPmlfc2Ip Ow0KIAlpZiAocmV0dmFsKSB7DQogCQlwYXRocmVsc2Uoc2VhcmNoX3BhdGgpOw0KIAkJcmV0dXJu IHJldHZhbDsNCkBAIC0yMDYxLDkgKzIwNjMsMTEgQEAgaW50IHJlaXNlcmZzX2luc2VydF9pdGVt KHN0cnVjdCByZWlzZXJmc190cmFuc2FjdGlvbl9oYW5kbGUgKnRoLA0KIAkJCSAgICAgICAicmVp c2VycXVvdGEgaW5zZXJ0X2l0ZW0oKTogYWxsb2NhdGluZyAldSBpZD0ldSB0eXBlPSVjIiwNCiAJ CQkgICAgICAgcXVvdGFfYnl0ZXMsIGlub2RlLT5pX3VpZCwgaGVhZDJ0eXBlKGloKSk7DQogI2Vu ZGlmDQorCQlyZWlzZXJmc193cml0ZV91bmxvY2soaW5vZGUtPmlfc2IpOw0KIAkJLyogV2UgY2Fu J3QgZGlydHkgaW5vZGUgaGVyZS4gSXQgd291bGQgYmUgaW1tZWRpYXRlbHkgd3JpdHRlbiBidXQN CiAJCSAqIGFwcHJvcHJpYXRlIHN0YXQgaXRlbSBpc24ndCBpbnNlcnRlZCB5ZXQuLi4gKi8NCiAJ CXJldHZhbCA9IGRxdW90X2FsbG9jX3NwYWNlX25vZGlydHkoaW5vZGUsIHF1b3RhX2J5dGVzKTsN CisJCXJlaXNlcmZzX3dyaXRlX2xvY2soaW5vZGUtPmlfc2IpOw0KIAkJaWYgKHJldHZhbCkgew0K IAkJCXBhdGhyZWxzZShwYXRoKTsNCiAJCQlyZXR1cm4gcmV0dmFsOw0KZGlmZiAtLWdpdCBhL2Zz L3JlaXNlcmZzL3N1cGVyLmMgYi9mcy9yZWlzZXJmcy9zdXBlci5jDQppbmRleCA1ZTM1MjdiLi41 Njk0OThhIDEwMDY0NA0KLS0tIGEvZnMvcmVpc2VyZnMvc3VwZXIuYw0KKysrIGIvZnMvcmVpc2Vy ZnMvc3VwZXIuYw0KQEAgLTI1NCw3ICsyNTQsOSBAQCBzdGF0aWMgaW50IGZpbmlzaF91bmZpbmlz aGVkKHN0cnVjdCBzdXBlcl9ibG9jayAqcykNCiAJCQlyZXR2YWwgPSByZW1vdmVfc2F2ZV9saW5r X29ubHkocywgJnNhdmVfbGlua19rZXksIDApOw0KIAkJCWNvbnRpbnVlOw0KIAkJfQ0KKwkJcmVp c2VyZnNfd3JpdGVfdW5sb2NrKHMpOw0KIAkJZHF1b3RfaW5pdGlhbGl6ZShpbm9kZSk7DQorCQly ZWlzZXJmc193cml0ZV9sb2NrKHMpOw0KIA0KIAkJaWYgKHRydW5jYXRlICYmIFNfSVNESVIoaW5v ZGUtPmlfbW9kZSkpIHsNCiAJCQkvKiBXZSBnb3QgYSB0cnVuY2F0ZSByZXF1ZXN0IGZvciBhIGRp ciB3aGljaCBpcyBpbXBvc3NpYmxlLg0KQEAgLTEyMDcsNyArMTIwOSw3IEBAIHN0YXRpYyBpbnQg cmVpc2VyZnNfcmVtb3VudChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIGludCAqbW91bnRfZmxhZ3Ms IGNoYXIgKmFyZykNCiAJCQkJa2ZyZWUocWZfbmFtZXNbaV0pOw0KICNlbmRpZg0KIAkJZXJyID0g LUVJTlZBTDsNCi0JCWdvdG8gb3V0X2VycjsNCisJCWdvdG8gb3V0X3VubG9jazsNCiAJfQ0KICNp ZmRlZiBDT05GSUdfUVVPVEENCiAJaGFuZGxlX3F1b3RhX2ZpbGVzKHMsIHFmX25hbWVzLCAmcWZt dCk7DQpAQCAtMTI1MCw3ICsxMjUyLDcgQEAgc3RhdGljIGludCByZWlzZXJmc19yZW1vdW50KHN0 cnVjdCBzdXBlcl9ibG9jayAqcywgaW50ICptb3VudF9mbGFncywgY2hhciAqYXJnKQ0KIAlpZiAo YmxvY2tzKSB7DQogCQllcnIgPSByZWlzZXJmc19yZXNpemUocywgYmxvY2tzKTsNCiAJCWlmIChl cnIgIT0gMCkNCi0JCQlnb3RvIG91dF9lcnI7DQorCQkJZ290byBvdXRfdW5sb2NrOw0KIAl9DQog DQogCWlmICgqbW91bnRfZmxhZ3MgJiBNU19SRE9OTFkpIHsNCkBAIC0xMjYwLDkgKzEyNjIsMTUg QEAgc3RhdGljIGludCByZWlzZXJmc19yZW1vdW50KHN0cnVjdCBzdXBlcl9ibG9jayAqcywgaW50 ICptb3VudF9mbGFncywgY2hhciAqYXJnKQ0KIAkJCS8qIGl0IGlzIHJlYWQtb25seSBhbHJlYWR5 ICovDQogCQkJZ290byBvdXRfb2s7DQogDQorCQkvKg0KKwkJICogRHJvcCB3cml0ZSBsb2NrLiBR dW90YSB3aWxsIHJldGFrZSBpdCB3aGVuIG5lZWRlZCBhbmQgbG9jaw0KKwkJICogb3JkZXJpbmcg cmVxdWlyZXMgY2FsbGluZyBkcXVvdF9zdXNwZW5kKCkgd2l0aG91dCBpdC4NCisJCSAqLw0KKwkJ cmVpc2VyZnNfd3JpdGVfdW5sb2NrKHMpOw0KIAkJZXJyID0gZHF1b3Rfc3VzcGVuZChzLCAtMSk7 DQogCQlpZiAoZXJyIDwgMCkNCiAJCQlnb3RvIG91dF9lcnI7DQorCQlyZWlzZXJmc193cml0ZV9s b2NrKHMpOw0KIA0KIAkJLyogdHJ5IHRvIHJlbW91bnQgZmlsZSBzeXN0ZW0gd2l0aCByZWFkLW9u bHkgcGVybWlzc2lvbnMgKi8NCiAJCWlmIChzYl91bW91bnRfc3RhdGUocnMpID09IFJFSVNFUkZT X1ZBTElEX0ZTDQpAQCAtMTI3Miw3ICsxMjgwLDcgQEAgc3RhdGljIGludCByZWlzZXJmc19yZW1v dW50KHN0cnVjdCBzdXBlcl9ibG9jayAqcywgaW50ICptb3VudF9mbGFncywgY2hhciAqYXJnKQ0K IA0KIAkJZXJyID0gam91cm5hbF9iZWdpbigmdGgsIHMsIDEwKTsNCiAJCWlmIChlcnIpDQotCQkJ Z290byBvdXRfZXJyOw0KKwkJCWdvdG8gb3V0X3VubG9jazsNCiANCiAJCS8qIE1vdW50aW5nIGEg cncgcGFydGl0aW9uIHJlYWQtb25seS4gKi8NCiAJCXJlaXNlcmZzX3ByZXBhcmVfZm9yX2pvdXJu YWwocywgU0JfQlVGRkVSX1dJVEhfU0IocyksIDEpOw0KQEAgLTEyODcsNyArMTI5NSw3IEBAIHN0 YXRpYyBpbnQgcmVpc2VyZnNfcmVtb3VudChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIGludCAqbW91 bnRfZmxhZ3MsIGNoYXIgKmFyZykNCiANCiAJCWlmIChyZWlzZXJmc19pc19qb3VybmFsX2Fib3J0 ZWQoam91cm5hbCkpIHsNCiAJCQllcnIgPSBqb3VybmFsLT5qX2Vycm5vOw0KLQkJCWdvdG8gb3V0 X2VycjsNCisJCQlnb3RvIG91dF91bmxvY2s7DQogCQl9DQogDQogCQloYW5kbGVfZGF0YV9tb2Rl KHMsIG1vdW50X29wdGlvbnMpOw0KQEAgLTEyOTYsNyArMTMwNCw3IEBAIHN0YXRpYyBpbnQgcmVp c2VyZnNfcmVtb3VudChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIGludCAqbW91bnRfZmxhZ3MsIGNo YXIgKmFyZykNCiAJCXMtPnNfZmxhZ3MgJj0gfk1TX1JET05MWTsJLyogbm93IGl0IGlzIHNhZmUg dG8gY2FsbCBqb3VybmFsX2JlZ2luICovDQogCQllcnIgPSBqb3VybmFsX2JlZ2luKCZ0aCwgcywg MTApOw0KIAkJaWYgKGVycikNCi0JCQlnb3RvIG91dF9lcnI7DQorCQkJZ290byBvdXRfdW5sb2Nr Ow0KIA0KIAkJLyogTW91bnQgYSBwYXJ0aXRpb24gd2hpY2ggaXMgcmVhZC1vbmx5LCByZWFkLXdy aXRlICovDQogCQlyZWlzZXJmc19wcmVwYXJlX2Zvcl9qb3VybmFsKHMsIFNCX0JVRkZFUl9XSVRI X1NCKHMpLCAxKTsNCkBAIC0xMzEzLDExICsxMzIxLDE3IEBAIHN0YXRpYyBpbnQgcmVpc2VyZnNf cmVtb3VudChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIGludCAqbW91bnRfZmxhZ3MsIGNoYXIgKmFy ZykNCiAJU0JfSk9VUk5BTChzKS0+al9tdXN0X3dhaXQgPSAxOw0KIAllcnIgPSBqb3VybmFsX2Vu ZCgmdGgsIHMsIDEwKTsNCiAJaWYgKGVycikNCi0JCWdvdG8gb3V0X2VycjsNCisJCWdvdG8gb3V0 X3VubG9jazsNCiAJcy0+c19kaXJ0ID0gMDsNCiANCiAJaWYgKCEoKm1vdW50X2ZsYWdzICYgTVNf UkRPTkxZKSkgew0KKwkJLyoNCisJCSAqIERyb3Agd3JpdGUgbG9jay4gUXVvdGEgd2lsbCByZXRh a2UgaXQgd2hlbiBuZWVkZWQgYW5kIGxvY2sNCisJCSAqIG9yZGVyaW5nIHJlcXVpcmVzIGNhbGxp bmcgZHF1b3RfcmVzdW1lKCkgd2l0aG91dCBpdC4NCisJCSAqLw0KKwkJcmVpc2VyZnNfd3JpdGVf dW5sb2NrKHMpOw0KIAkJZHF1b3RfcmVzdW1lKHMsIC0xKTsNCisJCXJlaXNlcmZzX3dyaXRlX2xv Y2socyk7DQogCQlmaW5pc2hfdW5maW5pc2hlZChzKTsNCiAJCXJlaXNlcmZzX3hhdHRyX2luaXQo cywgKm1vdW50X2ZsYWdzKTsNCiAJfQ0KQEAgLTEzMjcsOSArMTM0MSwxMCBAQCBvdXRfb2s6DQog CXJlaXNlcmZzX3dyaXRlX3VubG9jayhzKTsNCiAJcmV0dXJuIDA7DQogDQorb3V0X3VubG9jazoN CisJcmVpc2VyZnNfd3JpdGVfdW5sb2NrKHMpOw0KIG91dF9lcnI6DQogCWtmcmVlKG5ld19vcHRz KTsNCi0JcmVpc2VyZnNfd3JpdGVfdW5sb2NrKHMpOw0KIAlyZXR1cm4gZXJyOw0KIH0NCiANCkBA IC0xOTUzLDEzICsxOTY4LDE1IEBAIHN0YXRpYyBpbnQgcmVpc2VyZnNfd3JpdGVfZHF1b3Qoc3Ry dWN0IGRxdW90ICpkcXVvdCkNCiAJCQkgIFJFSVNFUkZTX1FVT1RBX1RSQU5TX0JMT0NLUyhkcXVv dC0+ZHFfc2IpKTsNCiAJaWYgKHJldCkNCiAJCWdvdG8gb3V0Ow0KKwlyZWlzZXJmc193cml0ZV91 bmxvY2soZHF1b3QtPmRxX3NiKTsNCiAJcmV0ID0gZHF1b3RfY29tbWl0KGRxdW90KTsNCisJcmVp c2VyZnNfd3JpdGVfbG9jayhkcXVvdC0+ZHFfc2IpOw0KIAllcnIgPQ0KIAkgICAgam91cm5hbF9l bmQoJnRoLCBkcXVvdC0+ZHFfc2IsDQogCQkJUkVJU0VSRlNfUVVPVEFfVFJBTlNfQkxPQ0tTKGRx dW90LT5kcV9zYikpOw0KIAlpZiAoIXJldCAmJiBlcnIpDQogCQlyZXQgPSBlcnI7DQotICAgICAg b3V0Og0KK291dDoNCiAJcmVpc2VyZnNfd3JpdGVfdW5sb2NrKGRxdW90LT5kcV9zYik7DQogCXJl dHVybiByZXQ7DQogfQ0KQEAgLTE5NzUsMTMgKzE5OTIsMTUgQEAgc3RhdGljIGludCByZWlzZXJm c19hY3F1aXJlX2RxdW90KHN0cnVjdCBkcXVvdCAqZHF1b3QpDQogCQkJICBSRUlTRVJGU19RVU9U QV9JTklUX0JMT0NLUyhkcXVvdC0+ZHFfc2IpKTsNCiAJaWYgKHJldCkNCiAJCWdvdG8gb3V0Ow0K KwlyZWlzZXJmc193cml0ZV91bmxvY2soZHF1b3QtPmRxX3NiKTsNCiAJcmV0ID0gZHF1b3RfYWNx dWlyZShkcXVvdCk7DQorCXJlaXNlcmZzX3dyaXRlX2xvY2soZHF1b3QtPmRxX3NiKTsNCiAJZXJy ID0NCiAJICAgIGpvdXJuYWxfZW5kKCZ0aCwgZHF1b3QtPmRxX3NiLA0KIAkJCVJFSVNFUkZTX1FV T1RBX0lOSVRfQkxPQ0tTKGRxdW90LT5kcV9zYikpOw0KIAlpZiAoIXJldCAmJiBlcnIpDQogCQly ZXQgPSBlcnI7DQotICAgICAgb3V0Og0KK291dDoNCiAJcmVpc2VyZnNfd3JpdGVfdW5sb2NrKGRx dW90LT5kcV9zYik7DQogCXJldHVybiByZXQ7DQogfQ0KQEAgLTE5OTUsMTkgKzIwMTQsMjEgQEAg c3RhdGljIGludCByZWlzZXJmc19yZWxlYXNlX2RxdW90KHN0cnVjdCBkcXVvdCAqZHF1b3QpDQog CXJldCA9DQogCSAgICBqb3VybmFsX2JlZ2luKCZ0aCwgZHF1b3QtPmRxX3NiLA0KIAkJCSAgUkVJ U0VSRlNfUVVPVEFfREVMX0JMT0NLUyhkcXVvdC0+ZHFfc2IpKTsNCisJcmVpc2VyZnNfd3JpdGVf dW5sb2NrKGRxdW90LT5kcV9zYik7DQogCWlmIChyZXQpIHsNCiAJCS8qIFJlbGVhc2UgZHF1b3Qg YW55d2F5IHRvIGF2b2lkIGVuZGxlc3MgY3ljbGUgaW4gZHFwdXQoKSAqLw0KIAkJZHF1b3RfcmVs ZWFzZShkcXVvdCk7DQogCQlnb3RvIG91dDsNCiAJfQ0KIAlyZXQgPSBkcXVvdF9yZWxlYXNlKGRx dW90KTsNCisJcmVpc2VyZnNfd3JpdGVfbG9jayhkcXVvdC0+ZHFfc2IpOw0KIAllcnIgPQ0KIAkg ICAgam91cm5hbF9lbmQoJnRoLCBkcXVvdC0+ZHFfc2IsDQogCQkJUkVJU0VSRlNfUVVPVEFfREVM X0JMT0NLUyhkcXVvdC0+ZHFfc2IpKTsNCiAJaWYgKCFyZXQgJiYgZXJyKQ0KIAkJcmV0ID0gZXJy Ow0KLSAgICAgIG91dDoNCiAJcmVpc2VyZnNfd3JpdGVfdW5sb2NrKGRxdW90LT5kcV9zYik7DQor b3V0Og0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCkBAIC0yMDMyLDExICsyMDUzLDEzIEBAIHN0YXRp YyBpbnQgcmVpc2VyZnNfd3JpdGVfaW5mbyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgdHlw ZSkNCiAJcmV0ID0gam91cm5hbF9iZWdpbigmdGgsIHNiLCAyKTsNCiAJaWYgKHJldCkNCiAJCWdv dG8gb3V0Ow0KKwlyZWlzZXJmc193cml0ZV91bmxvY2soc2IpOw0KIAlyZXQgPSBkcXVvdF9jb21t aXRfaW5mbyhzYiwgdHlwZSk7DQorCXJlaXNlcmZzX3dyaXRlX2xvY2soc2IpOw0KIAllcnIgPSBq b3VybmFsX2VuZCgmdGgsIHNiLCAyKTsNCiAJaWYgKCFyZXQgJiYgZXJyKQ0KIAkJcmV0ID0gZXJy Ow0KLSAgICAgIG91dDoNCitvdXQ6DQogCXJlaXNlcmZzX3dyaXRlX3VubG9jayhzYik7DQogCXJl dHVybiByZXQ7DQogfQ0KQEAgLTIwNjAsOCArMjA4MywxMSBAQCBzdGF0aWMgaW50IHJlaXNlcmZz X3F1b3RhX29uKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCB0eXBlLCBpbnQgZm9ybWF0X2lk LA0KIAlzdHJ1Y3QgaW5vZGUgKmlub2RlOw0KIAlzdHJ1Y3QgcmVpc2VyZnNfdHJhbnNhY3Rpb25f aGFuZGxlIHRoOw0KIA0KLQlpZiAoIShSRUlTRVJGU19TQihzYiktPnNfbW91bnRfb3B0ICYgKDEg PDwgUkVJU0VSRlNfUVVPVEEpKSkNCi0JCXJldHVybiAtRUlOVkFMOw0KKwlyZWlzZXJmc193cml0 ZV9sb2NrKHNiKTsNCisJaWYgKCEoUkVJU0VSRlNfU0Ioc2IpLT5zX21vdW50X29wdCAmICgxIDw8 IFJFSVNFUkZTX1FVT1RBKSkpIHsNCisJCWVyciA9IC1FSU5WQUw7DQorCQlnb3RvIG91dDsNCisJ fQ0KIA0KIAkvKiBRdW90YWZpbGUgbm90IG9uIHRoZSBzYW1lIGZpbGVzeXN0ZW0/ICovDQogCWlm IChwYXRoLT5tbnQtPm1udF9zYiAhPSBzYikgew0KQEAgLTIxMDMsOCArMjEyOSwxMCBAQCBzdGF0 aWMgaW50IHJlaXNlcmZzX3F1b3RhX29uKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCB0eXBl LCBpbnQgZm9ybWF0X2lkLA0KIAkJaWYgKGVycikNCiAJCQlnb3RvIG91dDsNCiAJfQ0KLQllcnIg PSBkcXVvdF9xdW90YV9vbihzYiwgdHlwZSwgZm9ybWF0X2lkLCBwYXRoKTsNCisJcmVpc2VyZnNf d3JpdGVfdW5sb2NrKHNiKTsNCisJcmV0dXJuIGRxdW90X3F1b3RhX29uKHNiLCB0eXBlLCBmb3Jt YXRfaWQsIHBhdGgpOw0KIG91dDoNCisJcmVpc2VyZnNfd3JpdGVfdW5sb2NrKHNiKTsNCiAJcmV0 dXJuIGVycjsNCiB9DQogDQpAQCAtMjE3OCw3ICsyMjA2LDkgQEAgc3RhdGljIHNzaXplX3QgcmVp c2VyZnNfcXVvdGFfd3JpdGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IHR5cGUsDQogCQl0 b2NvcHkgPSBzYi0+c19ibG9ja3NpemUgLSBvZmZzZXQgPCB0b3dyaXRlID8NCiAJCSAgICBzYi0+ c19ibG9ja3NpemUgLSBvZmZzZXQgOiB0b3dyaXRlOw0KIAkJdG1wX2JoLmJfc3RhdGUgPSAwOw0K KwkJcmVpc2VyZnNfd3JpdGVfbG9jayhzYik7DQogCQllcnIgPSByZWlzZXJmc19nZXRfYmxvY2so aW5vZGUsIGJsaywgJnRtcF9iaCwgR0VUX0JMT0NLX0NSRUFURSk7DQorCQlyZWlzZXJmc193cml0 ZV91bmxvY2soc2IpOw0KIAkJaWYgKGVycikNCiAJCQlnb3RvIG91dDsNCiAJCWlmIChvZmZzZXQg fHwgdG9jb3B5ICE9IHNiLT5zX2Jsb2Nrc2l6ZSkNCkBAIC0yMTk0LDEwICsyMjI0LDEyIEBAIHN0 YXRpYyBzc2l6ZV90IHJlaXNlcmZzX3F1b3RhX3dyaXRlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2Is IGludCB0eXBlLA0KIAkJZmx1c2hfZGNhY2hlX3BhZ2UoYmgtPmJfcGFnZSk7DQogCQlzZXRfYnVm ZmVyX3VwdG9kYXRlKGJoKTsNCiAJCXVubG9ja19idWZmZXIoYmgpOw0KKwkJcmVpc2VyZnNfd3Jp dGVfbG9jayhzYik7DQogCQlyZWlzZXJmc19wcmVwYXJlX2Zvcl9qb3VybmFsKHNiLCBiaCwgMSk7 DQogCQlqb3VybmFsX21hcmtfZGlydHkoY3VycmVudC0+am91cm5hbF9pbmZvLCBzYiwgYmgpOw0K IAkJaWYgKCFqb3VybmFsX3F1b3RhKQ0KIAkJCXJlaXNlcmZzX2FkZF9vcmRlcmVkX2xpc3QoaW5v ZGUsIGJoKTsNCisJCXJlaXNlcmZzX3dyaXRlX3VubG9jayhzYik7DQogCQlicmVsc2UoYmgpOw0K IAkJb2Zmc2V0ID0gMDsNCiAJCXRvd3JpdGUgLT0gdG9jb3B5Ow0KZGlmZiAtLWdpdCBhL2ZzL3Vi aWZzL2ZpbmQuYyBiL2ZzL3ViaWZzL2ZpbmQuYw0KaW5kZXggMjU1OWQxNy4uNWRjNDhjYSAxMDA2 NDQNCi0tLSBhL2ZzL3ViaWZzL2ZpbmQuYw0KKysrIGIvZnMvdWJpZnMvZmluZC5jDQpAQCAtNjgx LDggKzY4MSwxNiBAQCBpbnQgdWJpZnNfZmluZF9mcmVlX2xlYl9mb3JfaWR4KHN0cnVjdCB1Ymlm c19pbmZvICpjKQ0KIAlpZiAoIWxwcm9wcykgew0KIAkJbHByb3BzID0gdWJpZnNfZmFzdF9maW5k X2ZyZWVhYmxlKGMpOw0KIAkJaWYgKCFscHJvcHMpIHsNCi0JCQl1Ymlmc19hc3NlcnQoYy0+ZnJl ZWFibGVfY250ID09IDApOw0KLQkJCWlmIChjLT5sc3QuZW1wdHlfbGVicyAtIGMtPmxzdC50YWtl bl9lbXB0eV9sZWJzID4gMCkgew0KKwkJCS8qDQorCQkJICogVGhlIGZpcnN0IGNvbmRpdGlvbiBt ZWFucyB0aGUgZm9sbG93aW5nOiBnbyBzY2FuIHRoZQ0KKwkJCSAqIExQVCBpZiB0aGVyZSBhcmUg dW5jYXRlZ29yaXplZCBscHJvcHMsIHdoaWNoIG1lYW5zDQorCQkJICogdGhlcmUgbWF5IGJlIGZy ZWVhYmxlIExFQnMgdGhlcmUgKFVCSUZTIGRvZXMgbm90DQorCQkJICogc3RvcmUgdGhlIGluZm9y bWF0aW9uIGFib3V0IGZyZWVhYmxlIExFQnMgaW4gdGhlDQorCQkJICogbWFzdGVyIG5vZGUpLg0K KwkJCSAqLw0KKwkJCWlmIChjLT5pbl9hX2NhdGVnb3J5X2NudCAhPSBjLT5tYWluX2xlYnMgfHwN CisJCQkgICAgYy0+bHN0LmVtcHR5X2xlYnMgLSBjLT5sc3QudGFrZW5fZW1wdHlfbGVicyA+IDAp IHsNCisJCQkJdWJpZnNfYXNzZXJ0KGMtPmZyZWVhYmxlX2NudCA9PSAwKTsNCiAJCQkJbHByb3Bz ID0gc2Nhbl9mb3JfbGViX2Zvcl9pZHgoYyk7DQogCQkJCWlmIChJU19FUlIobHByb3BzKSkgew0K IAkJCQkJZXJyID0gUFRSX0VSUihscHJvcHMpOw0KZGlmZiAtLWdpdCBhL2ZzL3ViaWZzL2xwcm9w cy5jIGIvZnMvdWJpZnMvbHByb3BzLmMNCmluZGV4IGY4YTE4MWUuLmVhOWQ0OTEgMTAwNjQ0DQot LS0gYS9mcy91Ymlmcy9scHJvcHMuYw0KKysrIGIvZnMvdWJpZnMvbHByb3BzLmMNCkBAIC0zMDAs OCArMzAwLDExIEBAIHZvaWQgdWJpZnNfYWRkX3RvX2NhdChzdHJ1Y3QgdWJpZnNfaW5mbyAqYywg c3RydWN0IHViaWZzX2xwcm9wcyAqbHByb3BzLA0KIAlkZWZhdWx0Og0KIAkJdWJpZnNfYXNzZXJ0 KDApOw0KIAl9DQorDQogCWxwcm9wcy0+ZmxhZ3MgJj0gfkxQUk9QU19DQVRfTUFTSzsNCiAJbHBy b3BzLT5mbGFncyB8PSBjYXQ7DQorCWMtPmluX2FfY2F0ZWdvcnlfY250ICs9IDE7DQorCXViaWZz X2Fzc2VydChjLT5pbl9hX2NhdGVnb3J5X2NudCA8PSBjLT5tYWluX2xlYnMpOw0KIH0NCiANCiAv KioNCkBAIC0zMzQsNiArMzM3LDkgQEAgc3RhdGljIHZvaWQgdWJpZnNfcmVtb3ZlX2Zyb21fY2F0 KHN0cnVjdCB1Ymlmc19pbmZvICpjLA0KIAlkZWZhdWx0Og0KIAkJdWJpZnNfYXNzZXJ0KDApOw0K IAl9DQorDQorCWMtPmluX2FfY2F0ZWdvcnlfY250IC09IDE7DQorCXViaWZzX2Fzc2VydChjLT5p bl9hX2NhdGVnb3J5X2NudCA+PSAwKTsNCiB9DQogDQogLyoqDQpkaWZmIC0tZ2l0IGEvZnMvdWJp ZnMvdWJpZnMuaCBiL2ZzL3ViaWZzL3ViaWZzLmgNCmluZGV4IDI3ZjIyNTUuLjhiYmM5OWUgMTAw NjQ0DQotLS0gYS9mcy91Ymlmcy91Ymlmcy5oDQorKysgYi9mcy91Ymlmcy91Ymlmcy5oDQpAQCAt MTE4Nyw2ICsxMTg3LDggQEAgc3RydWN0IHViaWZzX2RlYnVnX2luZm87DQogICogQGZyZWVhYmxl X2xpc3Q6IGxpc3Qgb2YgZnJlZWFibGUgbm9uLWluZGV4IExFQnMgKGZyZWUgKyBkaXJ0eSA9PSBA bGViX3NpemUpDQogICogQGZyZGlfaWR4X2xpc3Q6IGxpc3Qgb2YgZnJlZWFibGUgaW5kZXggTEVC cyAoZnJlZSArIGRpcnR5ID09IEBsZWJfc2l6ZSkNCiAgKiBAZnJlZWFibGVfY250OiBudW1iZXIg b2YgZnJlZWFibGUgTEVCcyBpbiBAZnJlZWFibGVfbGlzdA0KKyAqIEBpbl9hX2NhdGVnb3J5X2Nu dDogY291bnQgb2YgbHByb3BzIHdoaWNoIGFyZSBpbiBhIGNlcnRhaW4gY2F0ZWdvcnksIHdoaWNo DQorICogICAgICAgICAgICAgICAgICAgICBiYXNpY2FsbHkgbWVhbnRzIHRoYXQgdGhleSB3ZXJl IGxvYWRlZCBmcm9tIHRoZSBmbGFzaA0KICAqDQogICogQGx0YWJfbG51bTogTEVCIG51bWJlciBv ZiBMUFQncyBvd24gbHByb3BzIHRhYmxlDQogICogQGx0YWJfb2Zmczogb2Zmc2V0IG9mIExQVCdz IG93biBscHJvcHMgdGFibGUNCkBAIC0xNDE2LDYgKzE0MTgsNyBAQCBzdHJ1Y3QgdWJpZnNfaW5m byB7DQogCXN0cnVjdCBsaXN0X2hlYWQgZnJlZWFibGVfbGlzdDsNCiAJc3RydWN0IGxpc3RfaGVh ZCBmcmRpX2lkeF9saXN0Ow0KIAlpbnQgZnJlZWFibGVfY250Ow0KKwlpbnQgaW5fYV9jYXRlZ29y eV9jbnQ7DQogDQogCWludCBsdGFiX2xudW07DQogCWludCBsdGFiX29mZnM7DQpkaWZmIC0tZ2l0 IGEvZnMveGZzL3hmc19idWYuYyBiL2ZzL3hmcy94ZnNfYnVmLmMNCmluZGV4IGNmMGFjMDUuLjJm NWE4ZjcgMTAwNjQ0DQotLS0gYS9mcy94ZnMveGZzX2J1Zi5jDQorKysgYi9mcy94ZnMveGZzX2J1 Zi5jDQpAQCAtMTE2Nyw5ICsxMTY3LDE0IEBAIHhmc19idWZfYmlvX2VuZF9pbygNCiB7DQogCXhm c19idWZfdAkJKmJwID0gKHhmc19idWZfdCAqKWJpby0+YmlfcHJpdmF0ZTsNCiANCi0JeGZzX2J1 Zl9pb2Vycm9yKGJwLCAtZXJyb3IpOw0KKwkvKg0KKwkgKiBkb24ndCBvdmVyd3JpdGUgZXhpc3Rp bmcgZXJyb3JzIC0gb3RoZXJ3aXNlIHdlIGNhbiBsb3NlIGVycm9ycyBvbg0KKwkgKiBidWZmZXJz IHRoYXQgcmVxdWlyZSBtdWx0aXBsZSBiaW9zIHRvIGNvbXBsZXRlLg0KKwkgKi8NCisJaWYgKCFi cC0+Yl9lcnJvcikNCisJCXhmc19idWZfaW9lcnJvcihicCwgLWVycm9yKTsNCiANCi0JaWYgKCFl cnJvciAmJiB4ZnNfYnVmX2lzX3ZtYXBwZWQoYnApICYmIChicC0+Yl9mbGFncyAmIFhCRl9SRUFE KSkNCisJaWYgKCFicC0+Yl9lcnJvciAmJiB4ZnNfYnVmX2lzX3ZtYXBwZWQoYnApICYmIChicC0+ Yl9mbGFncyAmIFhCRl9SRUFEKSkNCiAJCWludmFsaWRhdGVfa2VybmVsX3ZtYXBfcmFuZ2UoYnAt PmJfYWRkciwgeGZzX2J1Zl92bWFwX2xlbihicCkpOw0KIA0KIAlfeGZzX2J1Zl9pb2VuZChicCwg MSk7DQpAQCAtMTI0NSw2ICsxMjUwLDExIEBAIG5leHRfY2h1bms6DQogCQlpZiAoc2l6ZSkNCiAJ CQlnb3RvIG5leHRfY2h1bms7DQogCX0gZWxzZSB7DQorCQkvKg0KKwkJICogVGhpcyBpcyBndWFy YW50ZWVkIG5vdCB0byBiZSB0aGUgbGFzdCBpbyByZWZlcmVuY2UgY291bnQNCisJCSAqIGJlY2F1 c2UgdGhlIGNhbGxlciAoeGZzX2J1Zl9pb3JlcXVlc3QpIGhvbGRzIGEgY291bnQgaXRzZWxmLg0K KwkJICovDQorCQlhdG9taWNfZGVjKCZicC0+Yl9pb19yZW1haW5pbmcpOw0KIAkJeGZzX2J1Zl9p b2Vycm9yKGJwLCBFSU8pOw0KIAkJYmlvX3B1dChiaW8pOw0KIAl9DQpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9saW51eC9wdHBfY2xvY2tfa2VybmVsLmggYi9pbmNsdWRlL2xpbnV4L3B0cF9jbG9ja19r ZXJuZWwuaA0KaW5kZXggZGQyZTQ0Zi4uOWQ3MDlkMSAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGlu dXgvcHRwX2Nsb2NrX2tlcm5lbC5oDQorKysgYi9pbmNsdWRlL2xpbnV4L3B0cF9jbG9ja19rZXJu ZWwuaA0KQEAgLTUwLDcgKzUwLDggQEAgc3RydWN0IHB0cF9jbG9ja19yZXF1ZXN0IHsNCiAgKiBj bG9jayBvcGVyYXRpb25zDQogICoNCiAgKiBAYWRqZnJlcTogIEFkanVzdHMgdGhlIGZyZXF1ZW5j eSBvZiB0aGUgaGFyZHdhcmUgY2xvY2suDQotICogICAgICAgICAgICBwYXJhbWV0ZXIgZGVsdGE6 IERlc2lyZWQgcGVyaW9kIGNoYW5nZSBpbiBwYXJ0cyBwZXIgYmlsbGlvbi4NCisgKiAgICAgICAg ICAgIHBhcmFtZXRlciBkZWx0YTogRGVzaXJlZCBmcmVxdWVuY3kgb2Zmc2V0IGZyb20gbm9taW5h bCBmcmVxdWVuY3kNCisgKiAgICAgICAgICAgIGluIHBhcnRzIHBlciBiaWxsaW9uDQogICoNCiAg KiBAYWRqdGltZTogIFNoaWZ0cyB0aGUgdGltZSBvZiB0aGUgaGFyZHdhcmUgY2xvY2suDQogICog ICAgICAgICAgICBwYXJhbWV0ZXIgZGVsdGE6IERlc2lyZWQgY2hhbmdlIGluIG5hbm9zZWNvbmRz Lg0KZGlmZiAtLWdpdCBhL2tlcm5lbC9mdXRleC5jIGIva2VybmVsL2Z1dGV4LmMNCmluZGV4IDgw ZmIxYzYuLjc3YmNjZmMgMTAwNjQ0DQotLS0gYS9rZXJuZWwvZnV0ZXguYw0KKysrIGIva2VybmVs L2Z1dGV4LmMNCkBAIC03MTYsNyArNzE2LDcgQEAgc3RhdGljIGludCBmdXRleF9sb2NrX3BpX2F0 b21pYyh1MzIgX191c2VyICp1YWRkciwgc3RydWN0IGZ1dGV4X2hhc2hfYnVja2V0ICpoYiwNCiAJ CQkJc3RydWN0IGZ1dGV4X3BpX3N0YXRlICoqcHMsDQogCQkJCXN0cnVjdCB0YXNrX3N0cnVjdCAq dGFzaywgaW50IHNldF93YWl0ZXJzKQ0KIHsNCi0JaW50IGxvY2tfdGFrZW4sIHJldCwgb3duZXJk aWVkID0gMDsNCisJaW50IGxvY2tfdGFrZW4sIHJldCwgZm9yY2VfdGFrZSA9IDA7DQogCXUzMiB1 dmFsLCBuZXd2YWwsIGN1cnZhbCwgdnBpZCA9IHRhc2tfcGlkX3Zucih0YXNrKTsNCiANCiByZXRy eToNCkBAIC03NTUsMTcgKzc1NSwxNSBAQCByZXRyeToNCiAJbmV3dmFsID0gY3VydmFsIHwgRlVU RVhfV0FJVEVSUzsNCiANCiAJLyoNCi0JICogVGhlcmUgYXJlIHR3byBjYXNlcywgd2hlcmUgYSBm dXRleCBtaWdodCBoYXZlIG5vIG93bmVyICh0aGUNCi0JICogb3duZXIgVElEIGlzIDApOiBPV05F Ul9ESUVELiBXZSB0YWtlIG92ZXIgdGhlIGZ1dGV4IGluIHRoaXMNCi0JICogY2FzZS4gV2UgYWxz byBkbyBhbiB1bmNvbmRpdGlvbmFsIHRha2Ugb3Zlciwgd2hlbiB0aGUgb3duZXINCi0JICogb2Yg dGhlIGZ1dGV4IGRpZWQuDQotCSAqDQotCSAqIFRoaXMgaXMgc2FmZSBhcyB3ZSBhcmUgcHJvdGVj dGVkIGJ5IHRoZSBoYXNoIGJ1Y2tldCBsb2NrICENCisJICogU2hvdWxkIHdlIGZvcmNlIHRha2Ug dGhlIGZ1dGV4PyBTZWUgYmVsb3cuDQogCSAqLw0KLQlpZiAodW5saWtlbHkob3duZXJkaWVkIHx8 ICEoY3VydmFsICYgRlVURVhfVElEX01BU0spKSkgew0KLQkJLyogS2VlcCB0aGUgT1dORVJfRElF RCBiaXQgKi8NCisJaWYgKHVubGlrZWx5KGZvcmNlX3Rha2UpKSB7DQorCQkvKg0KKwkJICogS2Vl cCB0aGUgT1dORVJfRElFRCBhbmQgdGhlIFdBSVRFUlMgYml0IGFuZCBzZXQgdGhlDQorCQkgKiBu ZXcgVElEIHZhbHVlLg0KKwkJICovDQogCQluZXd2YWwgPSAoY3VydmFsICYgfkZVVEVYX1RJRF9N QVNLKSB8IHZwaWQ7DQotCQlvd25lcmRpZWQgPSAwOw0KKwkJZm9yY2VfdGFrZSA9IDA7DQogCQls b2NrX3Rha2VuID0gMTsNCiAJfQ0KIA0KQEAgLTc3NSw3ICs3NzMsNyBAQCByZXRyeToNCiAJCWdv dG8gcmV0cnk7DQogDQogCS8qDQotCSAqIFdlIHRvb2sgdGhlIGxvY2sgZHVlIHRvIG93bmVyIGRp ZWQgdGFrZSBvdmVyLg0KKwkgKiBXZSB0b29rIHRoZSBsb2NrIGR1ZSB0byBmb3JjZWQgdGFrZSBv dmVyLg0KIAkgKi8NCiAJaWYgKHVubGlrZWx5KGxvY2tfdGFrZW4pKQ0KIAkJcmV0dXJuIDE7DQpA QCAtNzkwLDIwICs3ODgsMjUgQEAgcmV0cnk6DQogCQlzd2l0Y2ggKHJldCkgew0KIAkJY2FzZSAt RVNSQ0g6DQogCQkJLyoNCi0JCQkgKiBObyBvd25lciBmb3VuZCBmb3IgdGhpcyBmdXRleC4gQ2hl Y2sgaWYgdGhlDQotCQkJICogT1dORVJfRElFRCBiaXQgaXMgc2V0IHRvIGZpZ3VyZSBvdXQgd2hl dGhlcg0KLQkJCSAqIHRoaXMgaXMgYSByb2J1c3QgZnV0ZXggb3Igbm90Lg0KKwkJCSAqIFdlIGZh aWxlZCB0byBmaW5kIGFuIG93bmVyIGZvciB0aGlzDQorCQkJICogZnV0ZXguIFNvIHdlIGhhdmUg bm8gcGlfc3RhdGUgdG8gYmxvY2sNCisJCQkgKiBvbi4gVGhpcyBjYW4gaGFwcGVuIGluIHR3byBj YXNlczoNCisJCQkgKg0KKwkJCSAqIDEpIFRoZSBvd25lciBkaWVkDQorCQkJICogMikgQSBzdGFs ZSBGVVRFWF9XQUlURVJTIGJpdA0KKwkJCSAqDQorCQkJICogUmUtcmVhZCB0aGUgZnV0ZXggdmFs dWUuDQogCQkJICovDQogCQkJaWYgKGdldF9mdXRleF92YWx1ZV9sb2NrZWQoJmN1cnZhbCwgdWFk ZHIpKQ0KIAkJCQlyZXR1cm4gLUVGQVVMVDsNCiANCiAJCQkvKg0KLQkJCSAqIFdlIHNpbXBseSBz dGFydCBvdmVyIGluIGNhc2Ugb2YgYSByb2J1c3QNCi0JCQkgKiBmdXRleC4gVGhlIGNvZGUgYWJv dmUgd2lsbCB0YWtlIHRoZSBmdXRleA0KLQkJCSAqIGFuZCByZXR1cm4gaGFwcHkuDQorCQkJICog SWYgdGhlIG93bmVyIGRpZWQgb3Igd2UgaGF2ZSBhIHN0YWxlDQorCQkJICogV0FJVEVSUyBiaXQg dGhlIG93bmVyIFRJRCBpbiB0aGUgdXNlciBzcGFjZQ0KKwkJCSAqIGZ1dGV4IGlzIDAuDQogCQkJ ICovDQotCQkJaWYgKGN1cnZhbCAmIEZVVEVYX09XTkVSX0RJRUQpIHsNCi0JCQkJb3duZXJkaWVk ID0gMTsNCisJCQlpZiAoIShjdXJ2YWwgJiBGVVRFWF9USURfTUFTSykpIHsNCisJCQkJZm9yY2Vf dGFrZSA9IDE7DQogCQkJCWdvdG8gcmV0cnk7DQogCQkJfQ0KIAkJZGVmYXVsdDoNCkBAIC04NDAs NiArODQzLDkgQEAgc3RhdGljIHZvaWQgd2FrZV9mdXRleChzdHJ1Y3QgZnV0ZXhfcSAqcSkNCiB7 DQogCXN0cnVjdCB0YXNrX3N0cnVjdCAqcCA9IHEtPnRhc2s7DQogDQorCWlmIChXQVJOKHEtPnBp X3N0YXRlIHx8IHEtPnJ0X3dhaXRlciwgInJlZnVzaW5nIHRvIHdha2UgUEkgZnV0ZXhcbiIpKQ0K KwkJcmV0dXJuOw0KKw0KIAkvKg0KIAkgKiBXZSBzZXQgcS0+bG9ja19wdHIgPSBOVUxMIF9iZWZv cmVfIHdlIHdha2UgdXAgdGhlIHRhc2suIElmDQogCSAqIGEgbm9uLWZ1dGV4IHdha2UgdXAgaGFw cGVucyBvbiBhbm90aGVyIENQVSB0aGVuIHRoZSB0YXNrDQpAQCAtMTA3NSw2ICsxMDgxLDEwIEBA IHJldHJ5X3ByaXZhdGU6DQogDQogCXBsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodGhpcywgbmV4 dCwgaGVhZCwgbGlzdCkgew0KIAkJaWYgKG1hdGNoX2Z1dGV4ICgmdGhpcy0+a2V5LCAma2V5MSkp IHsNCisJCQlpZiAodGhpcy0+cGlfc3RhdGUgfHwgdGhpcy0+cnRfd2FpdGVyKSB7DQorCQkJCXJl dCA9IC1FSU5WQUw7DQorCQkJCWdvdG8gb3V0X3VubG9jazsNCisJCQl9DQogCQkJd2FrZV9mdXRl eCh0aGlzKTsNCiAJCQlpZiAoKytyZXQgPj0gbnJfd2FrZSkNCiAJCQkJYnJlYWs7DQpAQCAtMTA4 Nyw2ICsxMDk3LDEwIEBAIHJldHJ5X3ByaXZhdGU6DQogCQlvcF9yZXQgPSAwOw0KIAkJcGxpc3Rf Zm9yX2VhY2hfZW50cnlfc2FmZSh0aGlzLCBuZXh0LCBoZWFkLCBsaXN0KSB7DQogCQkJaWYgKG1h dGNoX2Z1dGV4ICgmdGhpcy0+a2V5LCAma2V5MikpIHsNCisJCQkJaWYgKHRoaXMtPnBpX3N0YXRl IHx8IHRoaXMtPnJ0X3dhaXRlcikgew0KKwkJCQkJcmV0ID0gLUVJTlZBTDsNCisJCQkJCWdvdG8g b3V0X3VubG9jazsNCisJCQkJfQ0KIAkJCQl3YWtlX2Z1dGV4KHRoaXMpOw0KIAkJCQlpZiAoKytv cF9yZXQgPj0gbnJfd2FrZTIpDQogCQkJCQlicmVhazsNCkBAIC0xMDk1LDYgKzExMDksNyBAQCBy ZXRyeV9wcml2YXRlOg0KIAkJcmV0ICs9IG9wX3JldDsNCiAJfQ0KIA0KK291dF91bmxvY2s6DQog CWRvdWJsZV91bmxvY2tfaGIoaGIxLCBoYjIpOw0KIG91dF9wdXRfa2V5czoNCiAJcHV0X2Z1dGV4 X2tleSgma2V5Mik7DQpAQCAtMTM4NCw5ICsxMzk5LDEzIEBAIHJldHJ5X3ByaXZhdGU6DQogCQkv Kg0KIAkJICogRlVURVhfV0FJVF9SRVFFVUVfUEkgYW5kIEZVVEVYX0NNUF9SRVFVRVVFX1BJIHNo b3VsZCBhbHdheXMNCiAJCSAqIGJlIHBhaXJlZCB3aXRoIGVhY2ggb3RoZXIgYW5kIG5vIG90aGVy IGZ1dGV4IG9wcy4NCisJCSAqDQorCQkgKiBXZSBzaG91bGQgbmV2ZXIgYmUgcmVxdWV1ZWluZyBh IGZ1dGV4X3Egd2l0aCBhIHBpX3N0YXRlLA0KKwkJICogd2hpY2ggaXMgYXdhaXRpbmcgYSBmdXRl eF91bmxvY2tfcGkoKS4NCiAJCSAqLw0KIAkJaWYgKChyZXF1ZXVlX3BpICYmICF0aGlzLT5ydF93 YWl0ZXIpIHx8DQotCQkgICAgKCFyZXF1ZXVlX3BpICYmIHRoaXMtPnJ0X3dhaXRlcikpIHsNCisJ CSAgICAoIXJlcXVldWVfcGkgJiYgdGhpcy0+cnRfd2FpdGVyKSB8fA0KKwkJICAgIHRoaXMtPnBp X3N0YXRlKSB7DQogCQkJcmV0ID0gLUVJTlZBTDsNCiAJCQlicmVhazsNCiAJCX0NCmRpZmYgLS1n aXQgYS9rZXJuZWwvd2F0Y2hkb2cuYyBiL2tlcm5lbC93YXRjaGRvZy5jDQppbmRleCAxZDdiY2E3 Li5hOGJjNGQ5IDEwMDY0NA0KLS0tIGEva2VybmVsL3dhdGNoZG9nLmMNCisrKyBiL2tlcm5lbC93 YXRjaGRvZy5jDQpAQCAtMTEzLDcgKzExMyw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGdldF90 aW1lc3RhbXAoaW50IHRoaXNfY3B1KQ0KIAlyZXR1cm4gY3B1X2Nsb2NrKHRoaXNfY3B1KSA+PiAz MExMOyAgLyogMl4zMCB+PSAxMF45ICovDQogfQ0KIA0KLXN0YXRpYyB1bnNpZ25lZCBsb25nIGdl dF9zYW1wbGVfcGVyaW9kKHZvaWQpDQorc3RhdGljIHU2NCBnZXRfc2FtcGxlX3BlcmlvZCh2b2lk KQ0KIHsNCiAJLyoNCiAJICogY29udmVydCB3YXRjaGRvZ190aHJlc2ggZnJvbSBzZWNvbmRzIHRv IG5zDQpAQCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGdldF9zYW1wbGVf cGVyaW9kKHZvaWQpDQogCSAqIGluY3JlbWVudCBiZWZvcmUgdGhlIGhhcmRsb2NrdXAgZGV0ZWN0 b3IgZ2VuZXJhdGVzDQogCSAqIGEgd2FybmluZw0KIAkgKi8NCi0JcmV0dXJuIGdldF9zb2Z0bG9j a3VwX3RocmVzaCgpICogKE5TRUNfUEVSX1NFQyAvIDUpOw0KKwlyZXR1cm4gZ2V0X3NvZnRsb2Nr dXBfdGhyZXNoKCkgKiAoKHU2NClOU0VDX1BFUl9TRUMgLyA1KTsNCiB9DQogDQogLyogQ29tbWFu ZHMgZm9yIHJlc2V0dGluZyB0aGUgd2F0Y2hkb2cgKi8NCmRpZmYgLS1naXQgYS9rZXJuZWwvd29y a3F1ZXVlLmMgYi9rZXJuZWwvd29ya3F1ZXVlLmMNCmluZGV4IDQzYTE5YzUuLmQ1NTFkNWYgMTAw NjQ0DQotLS0gYS9rZXJuZWwvd29ya3F1ZXVlLmMNCisrKyBiL2tlcm5lbC93b3JrcXVldWUuYw0K QEAgLTIwNTIsOCArMjA1MiwxMCBAQCBzdGF0aWMgaW50IHJlc2N1ZXJfdGhyZWFkKHZvaWQgKl9f d3EpDQogcmVwZWF0Og0KIAlzZXRfY3VycmVudF9zdGF0ZShUQVNLX0lOVEVSUlVQVElCTEUpOw0K IA0KLQlpZiAoa3RocmVhZF9zaG91bGRfc3RvcCgpKQ0KKwlpZiAoa3RocmVhZF9zaG91bGRfc3Rv cCgpKSB7DQorCQlfX3NldF9jdXJyZW50X3N0YXRlKFRBU0tfUlVOTklORyk7DQogCQlyZXR1cm4g MDsNCisJfQ0KIA0KIAkvKg0KIAkgKiBTZWUgd2hldGhlciBhbnkgY3B1IGlzIGFza2luZyBmb3Ig aGVscC4gIFVuYm91bmRlZA0KZGlmZiAtLWdpdCBhL21tL21lbWNvbnRyb2wuYyBiL21tL21lbWNv bnRyb2wuYw0KaW5kZXggYzg0MjViMS4uZDAyN2EyNCAxMDA2NDQNCi0tLSBhL21tL21lbWNvbnRy b2wuYw0KKysrIGIvbW0vbWVtY29udHJvbC5jDQpAQCAtMTQ1NywxNyArMTQ1NywyNiBAQCBzdGF0 aWMgaW50IG1lbV9jZ3JvdXBfY291bnRfY2hpbGRyZW4oc3RydWN0IG1lbV9jZ3JvdXAgKm1lbWNn KQ0KIHU2NCBtZW1fY2dyb3VwX2dldF9saW1pdChzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtY2cpDQog ew0KIAl1NjQgbGltaXQ7DQotCXU2NCBtZW1zdzsNCiANCiAJbGltaXQgPSByZXNfY291bnRlcl9y ZWFkX3U2NCgmbWVtY2ctPnJlcywgUkVTX0xJTUlUKTsNCi0JbGltaXQgKz0gdG90YWxfc3dhcF9w YWdlcyA8PCBQQUdFX1NISUZUOw0KIA0KLQltZW1zdyA9IHJlc19jb3VudGVyX3JlYWRfdTY0KCZt ZW1jZy0+bWVtc3csIFJFU19MSU1JVCk7DQogCS8qDQotCSAqIElmIG1lbXN3IGlzIGZpbml0ZSBh bmQgbGltaXRzIHRoZSBhbW91bnQgb2Ygc3dhcCBzcGFjZSBhdmFpbGFibGUNCi0JICogdG8gdGhp cyBtZW1jZywgcmV0dXJuIHRoYXQgbGltaXQuDQorCSAqIERvIG5vdCBjb25zaWRlciBzd2FwIHNw YWNlIGlmIHdlIGNhbm5vdCBzd2FwIGR1ZSB0byBzd2FwcGluZXNzDQogCSAqLw0KLQlyZXR1cm4g bWluKGxpbWl0LCBtZW1zdyk7DQorCWlmIChtZW1fY2dyb3VwX3N3YXBwaW5lc3MobWVtY2cpKSB7 DQorCQl1NjQgbWVtc3c7DQorDQorCQlsaW1pdCArPSB0b3RhbF9zd2FwX3BhZ2VzIDw8IFBBR0Vf U0hJRlQ7DQorCQltZW1zdyA9IHJlc19jb3VudGVyX3JlYWRfdTY0KCZtZW1jZy0+bWVtc3csIFJF U19MSU1JVCk7DQorDQorCQkvKg0KKwkJICogSWYgbWVtc3cgaXMgZmluaXRlIGFuZCBsaW1pdHMg dGhlIGFtb3VudCBvZiBzd2FwIHNwYWNlDQorCQkgKiBhdmFpbGFibGUgdG8gdGhpcyBtZW1jZywg cmV0dXJuIHRoYXQgbGltaXQuDQorCQkgKi8NCisJCWxpbWl0ID0gbWluKGxpbWl0LCBtZW1zdyk7 DQorCX0NCisNCisJcmV0dXJuIGxpbWl0Ow0KIH0NCiANCiAvKg0KZGlmZiAtLWdpdCBhL21tL21l bW9yeS1mYWlsdXJlLmMgYi9tbS9tZW1vcnktZmFpbHVyZS5jDQppbmRleCA1YmQ1YmIxLi4xYjAz ODc4IDEwMDY0NA0KLS0tIGEvbW0vbWVtb3J5LWZhaWx1cmUuYw0KKysrIGIvbW0vbWVtb3J5LWZh aWx1cmUuYw0KQEAgLTE0NzUsOSArMTQ3NSwxNyBAQCBpbnQgc29mdF9vZmZsaW5lX3BhZ2Uoc3Ry dWN0IHBhZ2UgKnBhZ2UsIGludCBmbGFncykNCiB7DQogCWludCByZXQ7DQogCXVuc2lnbmVkIGxv bmcgcGZuID0gcGFnZV90b19wZm4ocGFnZSk7DQorCXN0cnVjdCBwYWdlICpocGFnZSA9IGNvbXBv dW5kX3RyYW5zX2hlYWQocGFnZSk7DQogDQogCWlmIChQYWdlSHVnZShwYWdlKSkNCiAJCXJldHVy biBzb2Z0X29mZmxpbmVfaHVnZV9wYWdlKHBhZ2UsIGZsYWdzKTsNCisJaWYgKFBhZ2VUcmFuc0h1 Z2UoaHBhZ2UpKSB7DQorCQlpZiAoUGFnZUFub24oaHBhZ2UpICYmIHVubGlrZWx5KHNwbGl0X2h1 Z2VfcGFnZShocGFnZSkpKSB7DQorCQkJcHJfaW5mbygic29mdCBvZmZsaW5lOiAlI2x4OiBmYWls ZWQgdG8gc3BsaXQgVEhQXG4iLA0KKwkJCQlwZm4pOw0KKwkJCXJldHVybiAtRUJVU1k7DQorCQl9 DQorCX0NCiANCiAJcmV0ID0gZ2V0X2FueV9wYWdlKHBhZ2UsIHBmbiwgZmxhZ3MpOw0KIAlpZiAo cmV0IDwgMCkNCmRpZmYgLS1naXQgYS9tbS9zaG1lbS5jIGIvbW0vc2htZW0uYw0KaW5kZXggMTI2 Y2EzNS4uMmQ0NmUyMyAxMDA2NDQNCi0tLSBhL21tL3NobWVtLmMNCisrKyBiL21tL3NobWVtLmMN CkBAIC01OTUsNyArNTk1LDcgQEAgc3RhdGljIHZvaWQgc2htZW1fZXZpY3RfaW5vZGUoc3RydWN0 IGlub2RlICppbm9kZSkNCiAJCWtmcmVlKHhhdHRyLT5uYW1lKTsNCiAJCWtmcmVlKHhhdHRyKTsN CiAJfQ0KLQlCVUdfT04oaW5vZGUtPmlfYmxvY2tzKTsNCisJV0FSTl9PTihpbm9kZS0+aV9ibG9j a3MpOw0KIAlzaG1lbV9mcmVlX2lub2RlKGlub2RlLT5pX3NiKTsNCiAJZW5kX3dyaXRlYmFjayhp bm9kZSk7DQogfQ0KZGlmZiAtLWdpdCBhL21tL3NwYXJzZS5jIGIvbW0vc3BhcnNlLmMNCmluZGV4 IGJmN2QzY2MuLjQyOTM1YjUgMTAwNjQ0DQotLS0gYS9tbS9zcGFyc2UuYw0KKysrIGIvbW0vc3Bh cnNlLmMNCkBAIC02MjIsNyArNjIyLDcgQEAgc3RhdGljIHZvaWQgX19rZnJlZV9zZWN0aW9uX21l bW1hcChzdHJ1Y3QgcGFnZSAqbWVtbWFwLCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzKQ0KIHsNCiAJ cmV0dXJuOyAvKiBYWFg6IE5vdCBpbXBsZW1lbnRlZCB5ZXQgKi8NCiB9DQotc3RhdGljIHZvaWQg ZnJlZV9tYXBfYm9vdG1lbShzdHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgbG9uZyBucl9wYWdl cykNCitzdGF0aWMgdm9pZCBmcmVlX21hcF9ib290bWVtKHN0cnVjdCBwYWdlICptZW1tYXAsIHVu c2lnbmVkIGxvbmcgbnJfcGFnZXMpDQogew0KIH0NCiAjZWxzZQ0KQEAgLTY2MywxMCArNjYzLDEx IEBAIHN0YXRpYyB2b2lkIF9fa2ZyZWVfc2VjdGlvbl9tZW1tYXAoc3RydWN0IHBhZ2UgKm1lbW1h cCwgdW5zaWduZWQgbG9uZyBucl9wYWdlcykNCiAJCQkgICBnZXRfb3JkZXIoc2l6ZW9mKHN0cnVj dCBwYWdlKSAqIG5yX3BhZ2VzKSk7DQogfQ0KIA0KLXN0YXRpYyB2b2lkIGZyZWVfbWFwX2Jvb3Rt ZW0oc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMpDQorc3RhdGljIHZv aWQgZnJlZV9tYXBfYm9vdG1lbShzdHJ1Y3QgcGFnZSAqbWVtbWFwLCB1bnNpZ25lZCBsb25nIG5y X3BhZ2VzKQ0KIHsNCiAJdW5zaWduZWQgbG9uZyBtYXBzX3NlY3Rpb25fbnIsIHJlbW92aW5nX3Nl Y3Rpb25fbnIsIGk7DQogCXVuc2lnbmVkIGxvbmcgbWFnaWM7DQorCXN0cnVjdCBwYWdlICpwYWdl ID0gdmlydF90b19wYWdlKG1lbW1hcCk7DQogDQogCWZvciAoaSA9IDA7IGkgPCBucl9wYWdlczsg aSsrLCBwYWdlKyspIHsNCiAJCW1hZ2ljID0gKHVuc2lnbmVkIGxvbmcpIHBhZ2UtPmxydS5uZXh0 Ow0KQEAgLTcxNSwxMyArNzE2LDEwIEBAIHN0YXRpYyB2b2lkIGZyZWVfc2VjdGlvbl91c2VtYXAo c3RydWN0IHBhZ2UgKm1lbW1hcCwgdW5zaWduZWQgbG9uZyAqdXNlbWFwKQ0KIAkgKi8NCiANCiAJ aWYgKG1lbW1hcCkgew0KLQkJc3RydWN0IHBhZ2UgKm1lbW1hcF9wYWdlOw0KLQkJbWVtbWFwX3Bh Z2UgPSB2aXJ0X3RvX3BhZ2UobWVtbWFwKTsNCi0NCiAJCW5yX3BhZ2VzID0gUEFHRV9BTElHTihQ QUdFU19QRVJfU0VDVElPTiAqIHNpemVvZihzdHJ1Y3QgcGFnZSkpDQogCQkJPj4gUEFHRV9TSElG VDsNCiANCi0JCWZyZWVfbWFwX2Jvb3RtZW0obWVtbWFwX3BhZ2UsIG5yX3BhZ2VzKTsNCisJCWZy ZWVfbWFwX2Jvb3RtZW0obWVtbWFwLCBucl9wYWdlcyk7DQogCX0NCiB9DQogDQpkaWZmIC0tZ2l0 IGEvbW0vdm1zY2FuLmMgYi9tbS92bXNjYW4uYw0KaW5kZXggMzEzMzgxYy4uMWU0ZWUxYSAxMDA2 NDQNCi0tLSBhL21tL3Ztc2Nhbi5jDQorKysgYi9tbS92bXNjYW4uYw0KQEAgLTI0OTIsNiArMjQ5 MiwxOSBAQCB1bnNpZ25lZCBsb25nIHRyeV90b19mcmVlX21lbV9jZ3JvdXBfcGFnZXMoc3RydWN0 IG1lbV9jZ3JvdXAgKm1lbV9jb250LA0KIH0NCiAjZW5kaWYNCiANCitzdGF0aWMgYm9vbCB6b25l X2JhbGFuY2VkKHN0cnVjdCB6b25lICp6b25lLCBpbnQgb3JkZXIsDQorCQkJICB1bnNpZ25lZCBs b25nIGJhbGFuY2VfZ2FwLCBpbnQgY2xhc3N6b25lX2lkeCkNCit7DQorCWlmICghem9uZV93YXRl cm1hcmtfb2tfc2FmZSh6b25lLCBvcmRlciwgaGlnaF93bWFya19wYWdlcyh6b25lKSArDQorCQkJ CSAgICBiYWxhbmNlX2dhcCwgY2xhc3N6b25lX2lkeCwgMCkpDQorCQlyZXR1cm4gZmFsc2U7DQor DQorCWlmIChDT01QQUNUSU9OX0JVSUxEICYmIG9yZGVyICYmICFjb21wYWN0aW9uX3N1aXRhYmxl KHpvbmUsIG9yZGVyKSkNCisJCXJldHVybiBmYWxzZTsNCisNCisJcmV0dXJuIHRydWU7DQorfQ0K Kw0KIC8qDQogICogcGdkYXRfYmFsYW5jZWQgaXMgdXNlZCB3aGVuIGNoZWNraW5nIGlmIGEgbm9k ZSBpcyBiYWxhbmNlZCBmb3IgaGlnaC1vcmRlcg0KICAqIGFsbG9jYXRpb25zLiBPbmx5IHpvbmVz IHRoYXQgbWVldCB3YXRlcm1hcmtzIGFuZCBhcmUgaW4gYSB6b25lIGFsbG93ZWQNCkBAIC0yNTUx LDggKzI1NjQsNyBAQCBzdGF0aWMgYm9vbCBzbGVlcGluZ19wcmVtYXR1cmVseShwZ19kYXRhX3Qg KnBnZGF0LCBpbnQgb3JkZXIsIGxvbmcgcmVtYWluaW5nLA0KIAkJCWNvbnRpbnVlOw0KIAkJfQ0K IA0KLQkJaWYgKCF6b25lX3dhdGVybWFya19va19zYWZlKHpvbmUsIG9yZGVyLCBoaWdoX3dtYXJr X3BhZ2VzKHpvbmUpLA0KLQkJCQkJCQlpLCAwKSkNCisJCWlmICghem9uZV9iYWxhbmNlZCh6b25l LCBvcmRlciwgMCwgaSkpDQogCQkJYWxsX3pvbmVzX29rID0gZmFsc2U7DQogCQllbHNlDQogCQkJ YmFsYW5jZWQgKz0gem9uZS0+cHJlc2VudF9wYWdlczsNCkBAIC0yNjU1LDggKzI2NjcsNyBAQCBs b29wX2FnYWluOg0KIAkJCQlzaHJpbmtfYWN0aXZlX2xpc3QoU1dBUF9DTFVTVEVSX01BWCwgem9u ZSwNCiAJCQkJCQkJJnNjLCBwcmlvcml0eSwgMCk7DQogDQotCQkJaWYgKCF6b25lX3dhdGVybWFy a19va19zYWZlKHpvbmUsIG9yZGVyLA0KLQkJCQkJaGlnaF93bWFya19wYWdlcyh6b25lKSwgMCwg MCkpIHsNCisJCQlpZiAoIXpvbmVfYmFsYW5jZWQoem9uZSwgb3JkZXIsIDAsIDApKSB7DQogCQkJ CWVuZF96b25lID0gaTsNCiAJCQkJYnJlYWs7DQogCQkJfSBlbHNlIHsNCkBAIC0yNzE3LDkgKzI3 MjgsOCBAQCBsb29wX2FnYWluOg0KIAkJCQkoem9uZS0+cHJlc2VudF9wYWdlcyArDQogCQkJCQlL U1dBUERfWk9ORV9CQUxBTkNFX0dBUF9SQVRJTy0xKSAvDQogCQkJCUtTV0FQRF9aT05FX0JBTEFO Q0VfR0FQX1JBVElPKTsNCi0JCQlpZiAoIXpvbmVfd2F0ZXJtYXJrX29rX3NhZmUoem9uZSwgb3Jk ZXIsDQotCQkJCQloaWdoX3dtYXJrX3BhZ2VzKHpvbmUpICsgYmFsYW5jZV9nYXAsDQotCQkJCQll bmRfem9uZSwgMCkpIHsNCisJCQlpZiAoIXpvbmVfYmFsYW5jZWQoem9uZSwgb3JkZXIsDQorCQkJ CQkgICBiYWxhbmNlX2dhcCwgZW5kX3pvbmUpKSB7DQogCQkJCXNocmlua196b25lKHByaW9yaXR5 LCB6b25lLCAmc2MpOw0KIA0KIAkJCQlyZWNsYWltX3N0YXRlLT5yZWNsYWltZWRfc2xhYiA9IDA7 DQpAQCAtMjc0Niw4ICsyNzU2LDcgQEAgbG9vcF9hZ2FpbjoNCiAJCQkJY29udGludWU7DQogCQkJ fQ0KIA0KLQkJCWlmICghem9uZV93YXRlcm1hcmtfb2tfc2FmZSh6b25lLCBvcmRlciwNCi0JCQkJ CWhpZ2hfd21hcmtfcGFnZXMoem9uZSksIGVuZF96b25lLCAwKSkgew0KKwkJCWlmICghem9uZV9i YWxhbmNlZCh6b25lLCBvcmRlciwgMCwgZW5kX3pvbmUpKSB7DQogCQkJCWFsbF96b25lc19vayA9 IDA7DQogCQkJCS8qDQogCQkJCSAqIFdlIGFyZSBzdGlsbCB1bmRlciBtaW4gd2F0ZXIgbWFyay4g IFRoaXMNCmRpZmYgLS1naXQgYS9uZXQvY2FuL2JjbS5jIGIvbmV0L2Nhbi9iY20uYw0KaW5kZXgg MTUxYjc3My4uMzkxMGMxZiAxMDA2NDQNCi0tLSBhL25ldC9jYW4vYmNtLmMNCisrKyBiL25ldC9j YW4vYmNtLmMNCkBAIC0xMDg0LDYgKzEwODQsOSBAQCBzdGF0aWMgaW50IGJjbV9yeF9zZXR1cChz dHJ1Y3QgYmNtX21zZ19oZWFkICptc2dfaGVhZCwgc3RydWN0IG1zZ2hkciAqbXNnLA0KIAkJb3At PnNrID0gc2s7DQogCQlvcC0+aWZpbmRleCA9IGlmaW5kZXg7DQogDQorCQkvKiBpZmluZGV4IGZv ciB0aW1lb3V0IGV2ZW50cyB3L28gcHJldmlvdXMgZnJhbWUgcmVjZXB0aW9uICovDQorCQlvcC0+ cnhfaWZpbmRleCA9IGlmaW5kZXg7DQorDQogCQkvKiBpbml0aWFsaXplIHVuaW5pdGlhbGl6ZWQg KGt6YWxsb2MpIHN0cnVjdHVyZSAqLw0KIAkJaHJ0aW1lcl9pbml0KCZvcC0+dGltZXIsIENMT0NL X01PTk9UT05JQywgSFJUSU1FUl9NT0RFX1JFTCk7DQogCQlvcC0+dGltZXIuZnVuY3Rpb24gPSBi Y21fcnhfdGltZW91dF9oYW5kbGVyOw0KZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rldi5jIGIvbmV0 L2NvcmUvZGV2LmMNCmluZGV4IDQ4MGJlNzIuLjJhYWM0ZWMgMTAwNjQ0DQotLS0gYS9uZXQvY29y ZS9kZXYuYw0KKysrIGIvbmV0L2NvcmUvZGV2LmMNCkBAIC0yODI5LDggKzI4MjksMTAgQEAgc3Rh dGljIGludCBnZXRfcnBzX2NwdShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLA0KIAkJaWYgKHVubGlrZWx5KHRjcHUgIT0gbmV4dF9jcHUpICYmDQogCQkgICAgKHRj cHUgPT0gUlBTX05PX0NQVSB8fCAhY3B1X29ubGluZSh0Y3B1KSB8fA0KIAkJICAgICAoKGludCko cGVyX2NwdShzb2Z0bmV0X2RhdGEsIHRjcHUpLmlucHV0X3F1ZXVlX2hlYWQgLQ0KLQkJICAgICAg cmZsb3ctPmxhc3RfcXRhaWwpKSA+PSAwKSkNCisJCSAgICAgIHJmbG93LT5sYXN0X3F0YWlsKSkg Pj0gMCkpIHsNCisJCQl0Y3B1ID0gbmV4dF9jcHU7DQogCQkJcmZsb3cgPSBzZXRfcnBzX2NwdShk ZXYsIHNrYiwgcmZsb3csIG5leHRfY3B1KTsNCisJCX0NCiANCiAJCWlmICh0Y3B1ICE9IFJQU19O T19DUFUgJiYgY3B1X29ubGluZSh0Y3B1KSkgew0KIAkJCSpyZmxvd3AgPSByZmxvdzsNCmRpZmYg LS1naXQgYS9uZXQvY29yZS9kZXZfYWRkcl9saXN0cy5jIGIvbmV0L2NvcmUvZGV2X2FkZHJfbGlz dHMuYw0KaW5kZXggMjc3ZmFlZi4uMDM4N2RhMCAxMDA2NDQNCi0tLSBhL25ldC9jb3JlL2Rldl9h ZGRyX2xpc3RzLmMNCisrKyBiL25ldC9jb3JlL2Rldl9hZGRyX2xpc3RzLmMNCkBAIC0zMDgsNyAr MzA4LDggQEAgaW50IGRldl9hZGRyX2RlbChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1bnNpZ25l ZCBjaGFyICphZGRyLA0KIAkgKi8NCiAJaGEgPSBsaXN0X2ZpcnN0X2VudHJ5KCZkZXYtPmRldl9h ZGRycy5saXN0LA0KIAkJCSAgICAgIHN0cnVjdCBuZXRkZXZfaHdfYWRkciwgbGlzdCk7DQotCWlm IChoYS0+YWRkciA9PSBkZXYtPmRldl9hZGRyICYmIGhhLT5yZWZjb3VudCA9PSAxKQ0KKwlpZiAo IW1lbWNtcChoYS0+YWRkciwgYWRkciwgZGV2LT5hZGRyX2xlbikgJiYNCisJICAgIGhhLT50eXBl ID09IGFkZHJfdHlwZSAmJiBoYS0+cmVmY291bnQgPT0gMSkNCiAJCXJldHVybiAtRU5PRU5UOw0K IA0KIAllcnIgPSBfX2h3X2FkZHJfZGVsKCZkZXYtPmRldl9hZGRycywgYWRkciwgZGV2LT5hZGRy X2xlbiwNCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pcF9zb2NrZ2x1ZS5jIGIvbmV0L2lwdjQvaXBf c29ja2dsdWUuYw0KaW5kZXggMDlmZjUxYi4uMDEwNmQyNSAxMDA2NDQNCi0tLSBhL25ldC9pcHY0 L2lwX3NvY2tnbHVlLmMNCisrKyBiL25ldC9pcHY0L2lwX3NvY2tnbHVlLmMNCkBAIC00NjgsMTgg KzQ2OCwyNyBAQCBzdGF0aWMgaW50IGRvX2lwX3NldHNvY2tvcHQoc3RydWN0IHNvY2sgKnNrLCBp bnQgbGV2ZWwsDQogCXN0cnVjdCBpbmV0X3NvY2sgKmluZXQgPSBpbmV0X3NrKHNrKTsNCiAJaW50 IHZhbCA9IDAsIGVycjsNCiANCi0JaWYgKCgoMTw8b3B0bmFtZSkgJiAoKDE8PElQX1BLVElORk8p IHwgKDE8PElQX1JFQ1ZUVEwpIHwNCi0JCQkgICAgICgxPDxJUF9SRUNWT1BUUykgfCAoMTw8SVBf UkVDVlRPUykgfA0KLQkJCSAgICAgKDE8PElQX1JFVE9QVFMpIHwgKDE8PElQX1RPUykgfA0KLQkJ CSAgICAgKDE8PElQX1RUTCkgfCAoMTw8SVBfSERSSU5DTCkgfA0KLQkJCSAgICAgKDE8PElQX01U VV9ESVNDT1ZFUikgfCAoMTw8SVBfUkVDVkVSUikgfA0KLQkJCSAgICAgKDE8PElQX1JPVVRFUl9B TEVSVCkgfCAoMTw8SVBfRlJFRUJJTkQpIHwNCi0JCQkgICAgICgxPDxJUF9QQVNTU0VDKSB8ICgx PDxJUF9UUkFOU1BBUkVOVCkgfA0KLQkJCSAgICAgKDE8PElQX01JTlRUTCkgfCAoMTw8SVBfTk9E RUZSQUcpKSkgfHwNCi0JICAgIG9wdG5hbWUgPT0gSVBfTVVMVElDQVNUX1RUTCB8fA0KLQkgICAg b3B0bmFtZSA9PSBJUF9NVUxUSUNBU1RfQUxMIHx8DQotCSAgICBvcHRuYW1lID09IElQX01VTFRJ Q0FTVF9MT09QIHx8DQotCSAgICBvcHRuYW1lID09IElQX1JFQ1ZPUklHRFNUQUREUikgew0KKwlz d2l0Y2ggKG9wdG5hbWUpIHsNCisJY2FzZSBJUF9QS1RJTkZPOg0KKwljYXNlIElQX1JFQ1ZUVEw6 DQorCWNhc2UgSVBfUkVDVk9QVFM6DQorCWNhc2UgSVBfUkVDVlRPUzoNCisJY2FzZSBJUF9SRVRP UFRTOg0KKwljYXNlIElQX1RPUzoNCisJY2FzZSBJUF9UVEw6DQorCWNhc2UgSVBfSERSSU5DTDoN CisJY2FzZSBJUF9NVFVfRElTQ09WRVI6DQorCWNhc2UgSVBfUkVDVkVSUjoNCisJY2FzZSBJUF9S T1VURVJfQUxFUlQ6DQorCWNhc2UgSVBfRlJFRUJJTkQ6DQorCWNhc2UgSVBfUEFTU1NFQzoNCisJ Y2FzZSBJUF9UUkFOU1BBUkVOVDoNCisJY2FzZSBJUF9NSU5UVEw6DQorCWNhc2UgSVBfTk9ERUZS QUc6DQorCWNhc2UgSVBfTVVMVElDQVNUX1RUTDoNCisJY2FzZSBJUF9NVUxUSUNBU1RfQUxMOg0K KwljYXNlIElQX01VTFRJQ0FTVF9MT09QOg0KKwljYXNlIElQX1JFQ1ZPUklHRFNUQUREUjoNCiAJ CWlmIChvcHRsZW4gPj0gc2l6ZW9mKGludCkpIHsNCiAJCQlpZiAoZ2V0X3VzZXIodmFsLCAoaW50 IF9fdXNlciAqKSBvcHR2YWwpKQ0KIAkJCQlyZXR1cm4gLUVGQVVMVDsNCmRpZmYgLS1naXQgYS9u ZXQvaXB2NC9uZXRmaWx0ZXIvbmZfbmF0X3N0YW5kYWxvbmUuYyBiL25ldC9pcHY0L25ldGZpbHRl ci9uZl9uYXRfc3RhbmRhbG9uZS5jDQppbmRleCA5MjkwMDQ4Li5lMzJiNTQyIDEwMDY0NA0KLS0t IGEvbmV0L2lwdjQvbmV0ZmlsdGVyL25mX25hdF9zdGFuZGFsb25lLmMNCisrKyBiL25ldC9pcHY0 L25ldGZpbHRlci9uZl9uYXRfc3RhbmRhbG9uZS5jDQpAQCAtMTk0LDcgKzE5NCw4IEBAIG5mX25h dF9vdXQodW5zaWduZWQgaW50IGhvb2tudW0sDQogDQogCQlpZiAoKGN0LT50dXBsZWhhc2hbZGly XS50dXBsZS5zcmMudTMuaXAgIT0NCiAJCSAgICAgY3QtPnR1cGxlaGFzaFshZGlyXS50dXBsZS5k c3QudTMuaXApIHx8DQotCQkgICAgKGN0LT50dXBsZWhhc2hbZGlyXS50dXBsZS5zcmMudS5hbGwg IT0NCisJCSAgICAoY3QtPnR1cGxlaGFzaFtkaXJdLnR1cGxlLmRzdC5wcm90b251bSAhPSBJUFBS T1RPX0lDTVAgJiYNCisJCSAgICAgY3QtPnR1cGxlaGFzaFtkaXJdLnR1cGxlLnNyYy51LmFsbCAh PQ0KIAkJICAgICBjdC0+dHVwbGVoYXNoWyFkaXJdLnR1cGxlLmRzdC51LmFsbCkNCiAJCSAgICkN CiAJCQlyZXR1cm4gaXBfeGZybV9tZV9oYXJkZXIoc2tiKSA9PSAwID8gcmV0IDogTkZfRFJPUDsN CkBAIC0yMzAsNyArMjMxLDggQEAgbmZfbmF0X2xvY2FsX2ZuKHVuc2lnbmVkIGludCBob29rbnVt LA0KIAkJCQlyZXQgPSBORl9EUk9QOw0KIAkJfQ0KICNpZmRlZiBDT05GSUdfWEZSTQ0KLQkJZWxz ZSBpZiAoY3QtPnR1cGxlaGFzaFtkaXJdLnR1cGxlLmRzdC51LmFsbCAhPQ0KKwkJZWxzZSBpZiAo Y3QtPnR1cGxlaGFzaFtkaXJdLnR1cGxlLmRzdC5wcm90b251bSAhPSBJUFBST1RPX0lDTVAgJiYN CisJCQkgY3QtPnR1cGxlaGFzaFtkaXJdLnR1cGxlLmRzdC51LmFsbCAhPQ0KIAkJCSBjdC0+dHVw bGVoYXNoWyFkaXJdLnR1cGxlLnNyYy51LmFsbCkNCiAJCQlpZiAoaXBfeGZybV9tZV9oYXJkZXIo c2tiKSkNCiAJCQkJcmV0ID0gTkZfRFJPUDsNCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcHY2X3Nv Y2tnbHVlLmMgYi9uZXQvaXB2Ni9pcHY2X3NvY2tnbHVlLmMNCmluZGV4IDI2Y2IwOGMuLmIyMDRk ZjggMTAwNjQ0DQotLS0gYS9uZXQvaXB2Ni9pcHY2X3NvY2tnbHVlLmMNCisrKyBiL25ldC9pcHY2 L2lwdjZfc29ja2dsdWUuYw0KQEAgLTc5OCw2ICs3OTgsNyBAQCBwcmVmX3NraXBfY29hOg0KIAkJ aWYgKHZhbCA8IDAgfHwgdmFsID4gMjU1KQ0KIAkJCWdvdG8gZV9pbnZhbDsNCiAJCW5wLT5taW5f aG9wY291bnQgPSB2YWw7DQorCQlyZXR2ID0gMDsNCiAJCWJyZWFrOw0KIAljYXNlIElQVjZfRE9O VEZSQUc6DQogCQlucC0+ZG9udGZyYWcgPSB2YWxib29sOw0KZGlmZiAtLWdpdCBhL25ldC9tYWM4 MDIxMS9pYnNzLmMgYi9uZXQvbWFjODAyMTEvaWJzcy5jDQppbmRleCA4YzczNjRiLi45ZTIwY2I4 IDEwMDY0NA0KLS0tIGEvbmV0L21hYzgwMjExL2lic3MuYw0KKysrIGIvbmV0L21hYzgwMjExL2li c3MuYw0KQEAgLTk2NSwxMCArOTY1LDYgQEAgaW50IGllZWU4MDIxMV9pYnNzX2xlYXZlKHN0cnVj dCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhKQ0KIA0KIAltdXRleF9sb2NrKCZzZGF0YS0+ dS5pYnNzLm10eCk7DQogDQotCXNkYXRhLT51Lmlic3Muc3RhdGUgPSBJRUVFODAyMTFfSUJTU19N TE1FX1NFQVJDSDsNCi0JbWVtc2V0KHNkYXRhLT51Lmlic3MuYnNzaWQsIDAsIEVUSF9BTEVOKTsN Ci0Jc2RhdGEtPnUuaWJzcy5zc2lkX2xlbiA9IDA7DQotDQogCWFjdGl2ZV9pYnNzID0gaWVlZTgw MjExX3N0YV9hY3RpdmVfaWJzcyhzZGF0YSk7DQogDQogCWlmICghYWN0aXZlX2lic3MgJiYgIWlz X3plcm9fZXRoZXJfYWRkcihpZmlic3MtPmJzc2lkKSkgew0KQEAgLTk4OSw2ICs5ODUsMTAgQEAg aW50IGllZWU4MDIxMV9pYnNzX2xlYXZlKHN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNk YXRhKQ0KIAkJfQ0KIAl9DQogDQorCWlmaWJzcy0+c3RhdGUgPSBJRUVFODAyMTFfSUJTU19NTE1F X1NFQVJDSDsNCisJbWVtc2V0KGlmaWJzcy0+YnNzaWQsIDAsIEVUSF9BTEVOKTsNCisJaWZpYnNz LT5zc2lkX2xlbiA9IDA7DQorDQogCXN0YV9pbmZvX2ZsdXNoKHNkYXRhLT5sb2NhbCwgc2RhdGEp Ow0KIA0KIAkvKiByZW1vdmUgYmVhY29uICovDQpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3N0 YV9pbmZvLmMgYi9uZXQvbWFjODAyMTEvc3RhX2luZm8uYw0KaW5kZXggMWZkZDhmZi4uMWM3NzVm MCAxMDA2NDQNCi0tLSBhL25ldC9tYWM4MDIxMS9zdGFfaW5mby5jDQorKysgYi9uZXQvbWFjODAy MTEvc3RhX2luZm8uYw0KQEAgLTExMjksNiArMTEyOSw3IEBAIHZvaWQgaWVlZTgwMjExX3N0YV9w c19kZWxpdmVyX3dha2V1cChzdHJ1Y3Qgc3RhX2luZm8gKnN0YSkNCiAJc3RydWN0IGllZWU4MDIx MV9sb2NhbCAqbG9jYWwgPSBzZGF0YS0+bG9jYWw7DQogCXN0cnVjdCBza19idWZmX2hlYWQgcGVu ZGluZzsNCiAJaW50IGZpbHRlcmVkID0gMCwgYnVmZmVyZWQgPSAwLCBhYzsNCisJdW5zaWduZWQg bG9uZyBmbGFnczsNCiANCiAJY2xlYXJfc3RhX2ZsYWcoc3RhLCBXTEFOX1NUQV9TUCk7DQogDQpA QCAtMTE0NCwxMiArMTE0NSwxNiBAQCB2b2lkIGllZWU4MDIxMV9zdGFfcHNfZGVsaXZlcl93YWtl dXAoc3RydWN0IHN0YV9pbmZvICpzdGEpDQogCWZvciAoYWMgPSAwOyBhYyA8IElFRUU4MDIxMV9O VU1fQUNTOyBhYysrKSB7DQogCQlpbnQgY291bnQgPSBza2JfcXVldWVfbGVuKCZwZW5kaW5nKSwg dG1wOw0KIA0KKwkJc3Bpbl9sb2NrX2lycXNhdmUoJnN0YS0+dHhfZmlsdGVyZWRbYWNdLmxvY2ss IGZsYWdzKTsNCiAJCXNrYl9xdWV1ZV9zcGxpY2VfdGFpbF9pbml0KCZzdGEtPnR4X2ZpbHRlcmVk W2FjXSwgJnBlbmRpbmcpOw0KKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc3RhLT50eF9maWx0 ZXJlZFthY10ubG9jaywgZmxhZ3MpOw0KIAkJdG1wID0gc2tiX3F1ZXVlX2xlbigmcGVuZGluZyk7 DQogCQlmaWx0ZXJlZCArPSB0bXAgLSBjb3VudDsNCiAJCWNvdW50ID0gdG1wOw0KIA0KKwkJc3Bp bl9sb2NrX2lycXNhdmUoJnN0YS0+cHNfdHhfYnVmW2FjXS5sb2NrLCBmbGFncyk7DQogCQlza2Jf cXVldWVfc3BsaWNlX3RhaWxfaW5pdCgmc3RhLT5wc190eF9idWZbYWNdLCAmcGVuZGluZyk7DQor CQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzdGEtPnBzX3R4X2J1ZlthY10ubG9jaywgZmxhZ3Mp Ow0KIAkJdG1wID0gc2tiX3F1ZXVlX2xlbigmcGVuZGluZyk7DQogCQlidWZmZXJlZCArPSB0bXAg LSBjb3VudDsNCiAJfQ0KZGlmZiAtLWdpdCBhL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3By b3RvX3RjcC5jIGIvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmMNCmluZGV4 IDgyMzViODYuLjU3YWQ0NjYgMTAwNjQ0DQotLS0gYS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFj a19wcm90b190Y3AuYw0KKysrIGIvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNw LmMNCkBAIC0xNTksMjEgKzE1OSwxOCBAQCBzdGF0aWMgY29uc3QgdTggdGNwX2Nvbm50cmFja3Nb Ml1bNl1bVENQX0NPTk5UUkFDS19NQVhdID0gew0KICAqCXNDTCAtPiBzU1MNCiAgKi8NCiAvKiAJ ICAgICBzTk8sIHNTUywgc1NSLCBzRVMsIHNGVywgc0NXLCBzTEEsIHNUVywgc0NMLCBzUzIJKi8N Ci0vKnN5bmFjayovIHsgc0lWLCBzSVYsIHNJRywgc0lHLCBzSUcsIHNJRywgc0lHLCBzSUcsIHNJ Rywgc1NSIH0sDQorLypzeW5hY2sqLyB7IHNJViwgc0lWLCBzU1IsIHNJViwgc0lWLCBzSVYsIHNJ Viwgc0lWLCBzSVYsIHNTUiB9LA0KIC8qDQogICoJc05PIC0+IHNJVglUb28gbGF0ZSBhbmQgbm8g cmVhc29uIHRvIGRvIGFueXRoaW5nDQogICoJc1NTIC0+IHNJVglDbGllbnQgY2FuJ3Qgc2VuZCBT WU4gYW5kIHRoZW4gU1lOL0FDSw0KICAqCXNTMiAtPiBzU1IJU1lOL0FDSyBzZW50IHRvIFNZTjIg aW4gc2ltdWx0YW5lb3VzIG9wZW4NCi0gKglzU1IgLT4gc0lHDQotICoJc0VTIC0+IHNJRwlFcnJv cjogU1lOcyBpbiB3aW5kb3cgb3V0c2lkZSB0aGUgU1lOX1NFTlQgc3RhdGUNCi0gKgkJCWFyZSBl cnJvcnMuIFJlY2VpdmVyIHdpbGwgcmVwbHkgd2l0aCBSU1QNCi0gKgkJCWFuZCBjbG9zZSB0aGUg Y29ubmVjdGlvbi4NCi0gKgkJCU9yIHdlIGFyZSBub3QgaW4gc3luYyBhbmQgaG9sZCBhIGRlYWQg Y29ubmVjdGlvbi4NCi0gKglzRlcgLT4gc0lHDQotICoJc0NXIC0+IHNJRw0KLSAqCXNMQSAtPiBz SUcNCi0gKglzVFcgLT4gc0lHDQotICoJc0NMIC0+IHNJRw0KKyAqCXNTUiAtPiBzU1IJTGF0ZSBy ZXRyYW5zbWl0dGVkIFNZTi9BQ0sgaW4gc2ltdWx0YW5lb3VzIG9wZW4NCisgKglzRVMgLT4gc0lW CUludmFsaWQgU1lOL0FDSyBwYWNrZXRzIHNlbnQgYnkgdGhlIGNsaWVudA0KKyAqCXNGVyAtPiBz SVYNCisgKglzQ1cgLT4gc0lWDQorICoJc0xBIC0+IHNJVg0KKyAqCXNUVyAtPiBzSVYNCisgKglz Q0wgLT4gc0lWDQogICovDQogLyogCSAgICAgc05PLCBzU1MsIHNTUiwgc0VTLCBzRlcsIHNDVywg c0xBLCBzVFcsIHNDTCwgc1MyCSovDQogLypmaW4qLyAgICB7IHNJViwgc0lWLCBzRlcsIHNGVywg c0xBLCBzTEEsIHNMQSwgc1RXLCBzQ0wsIHNJViB9LA0KQEAgLTYyOCwxNSArNjI1LDkgQEAgc3Rh dGljIGJvb2wgdGNwX2luX3dpbmRvdyhjb25zdCBzdHJ1Y3QgbmZfY29ubiAqY3QsDQogCQlhY2sg PSBzYWNrID0gcmVjZWl2ZXItPnRkX2VuZDsNCiAJfQ0KIA0KLQlpZiAoc2VxID09IGVuZA0KLQkg ICAgJiYgKCF0Y3BoLT5yc3QNCi0JCXx8IChzZXEgPT0gMCAmJiBzdGF0ZS0+c3RhdGUgPT0gVENQ X0NPTk5UUkFDS19TWU5fU0VOVCkpKQ0KKwlpZiAodGNwaC0+cnN0ICYmIHNlcSA9PSAwICYmIHN0 YXRlLT5zdGF0ZSA9PSBUQ1BfQ09OTlRSQUNLX1NZTl9TRU5UKQ0KIAkJLyoNCi0JCSAqIFBhY2tl dHMgY29udGFpbnMgbm8gZGF0YTogd2UgYXNzdW1lIGl0IGlzIHZhbGlkDQotCQkgKiBhbmQgY2hl Y2sgdGhlIGFjayB2YWx1ZSBvbmx5Lg0KLQkJICogSG93ZXZlciBSU1Qgc2VnbWVudHMgYXJlIGFs d2F5cyB2YWxpZGF0ZWQgYnkgdGhlaXINCi0JCSAqIFNFUSBudW1iZXIsIGV4Y2VwdCB3aGVuIHNl cSA9PSAwIChyZXNldCBzZW50IGFuc3dlcmluZw0KLQkJICogU1lOLg0KKwkJICogUlNUIHNlbnQg YW5zd2VyaW5nIFNZTi4NCiAJCSAqLw0KIAkJc2VxID0gZW5kID0gc2VuZGVyLT50ZF9lbmQ7DQog DQpkaWZmIC0tZ2l0IGEvbmV0L3dpcmVsZXNzL3JlZy5jIGIvbmV0L3dpcmVsZXNzL3JlZy5jDQpp bmRleCBmYTM5NzMxLi4wYjA4OTA1IDEwMDY0NA0KLS0tIGEvbmV0L3dpcmVsZXNzL3JlZy5jDQor KysgYi9uZXQvd2lyZWxlc3MvcmVnLmMNCkBAIC0xMjUsOSArMTI1LDggQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBpZWVlODAyMTFfcmVnZG9tYWluIHdvcmxkX3JlZ2RvbSA9IHsNCiAJLnJlZ19ydWxl cyA9IHsNCiAJCS8qIElFRUUgODAyLjExYi9nLCBjaGFubmVscyAxLi4xMSAqLw0KIAkJUkVHX1JV TEUoMjQxMi0xMCwgMjQ2MisxMCwgNDAsIDYsIDIwLCAwKSwNCi0JCS8qIElFRUUgODAyLjExYi9n LCBjaGFubmVscyAxMi4uMTMuIE5vIEhUNDANCi0JCSAqIGNoYW5uZWwgZml0cyBoZXJlLiAqLw0K LQkJUkVHX1JVTEUoMjQ2Ny0xMCwgMjQ3MisxMCwgMjAsIDYsIDIwLA0KKwkJLyogSUVFRSA4MDIu MTFiL2csIGNoYW5uZWxzIDEyLi4xMy4gKi8NCisJCVJFR19SVUxFKDI0NjctMTAsIDI0NzIrMTAs IDQwLCA2LCAyMCwNCiAJCQlOTDgwMjExX1JSRl9QQVNTSVZFX1NDQU4gfA0KIAkJCU5MODAyMTFf UlJGX05PX0lCU1MpLA0KIAkJLyogSUVFRSA4MDIuMTEgY2hhbm5lbCAxNCAtIE9ubHkgSlAgZW5h Ymxlcw0KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2RldmljZV9jZ3JvdXAuYyBiL3NlY3VyaXR5L2Rl dmljZV9jZ3JvdXAuYw0KaW5kZXggNDQ1MGZiZS4uOTJlMjRiYiAxMDA2NDQNCi0tLSBhL3NlY3Vy aXR5L2RldmljZV9jZ3JvdXAuYw0KKysrIGIvc2VjdXJpdHkvZGV2aWNlX2Nncm91cC5jDQpAQCAt MjAyLDggKzIwMiw4IEBAIHN0YXRpYyB2b2lkIGRldmNncm91cF9kZXN0cm95KHN0cnVjdCBjZ3Jv dXBfc3Vic3lzICpzcywNCiANCiAJZGV2X2Nncm91cCA9IGNncm91cF90b19kZXZjZ3JvdXAoY2dy b3VwKTsNCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHdoLCB0bXAsICZkZXZfY2dyb3VwLT53 aGl0ZWxpc3QsIGxpc3QpIHsNCi0JCWxpc3RfZGVsKCZ3aC0+bGlzdCk7DQotCQlrZnJlZSh3aCk7 DQorCQlsaXN0X2RlbF9yY3UoJndoLT5saXN0KTsNCisJCWtmcmVlX3JjdSh3aCwgcmN1KTsNCiAJ fQ0KIAlrZnJlZShkZXZfY2dyb3VwKTsNCiB9DQpAQCAtMjc4LDcgKzI3OCw3IEBAIHN0YXRpYyBp bnQgbWF5X2FjY2Vzc193aGl0ZWxpc3Qoc3RydWN0IGRldl9jZ3JvdXAgKmMsDQogew0KIAlzdHJ1 Y3QgZGV2X3doaXRlbGlzdF9pdGVtICp3aGl0ZW07DQogDQotCWxpc3RfZm9yX2VhY2hfZW50cnko d2hpdGVtLCAmYy0+d2hpdGVsaXN0LCBsaXN0KSB7DQorCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1 KHdoaXRlbSwgJmMtPndoaXRlbGlzdCwgbGlzdCkgew0KIAkJaWYgKHdoaXRlbS0+dHlwZSAmIERF Vl9BTEwpDQogCQkJcmV0dXJuIDE7DQogCQlpZiAoKHJlZndoLT50eXBlICYgREVWX0JMT0NLKSAm JiAhKHdoaXRlbS0+dHlwZSAmIERFVl9CTE9DSykpDQpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2Vs aW51eC9uZXRub2RlLmMgYi9zZWN1cml0eS9zZWxpbnV4L25ldG5vZGUuYw0KaW5kZXggM2JmNDZh Yi4uNDZhNWI4MSAxMDA2NDQNCi0tLSBhL3NlY3VyaXR5L3NlbGludXgvbmV0bm9kZS5jDQorKysg Yi9zZWN1cml0eS9zZWxpbnV4L25ldG5vZGUuYw0KQEAgLTE3NCw3ICsxNzQsOCBAQCBzdGF0aWMg dm9pZCBzZWxfbmV0bm9kZV9pbnNlcnQoc3RydWN0IHNlbF9uZXRub2RlICpub2RlKQ0KIAlpZiAo c2VsX25ldG5vZGVfaGFzaFtpZHhdLnNpemUgPT0gU0VMX05FVE5PREVfSEFTSF9CS1RfTElNSVQp IHsNCiAJCXN0cnVjdCBzZWxfbmV0bm9kZSAqdGFpbDsNCiAJCXRhaWwgPSBsaXN0X2VudHJ5KA0K LQkJCXJjdV9kZXJlZmVyZW5jZShzZWxfbmV0bm9kZV9oYXNoW2lkeF0ubGlzdC5wcmV2KSwNCisJ CQlyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKHNlbF9uZXRub2RlX2hhc2hbaWR4XS5saXN0LnBy ZXYsDQorCQkJCQkJICBsb2NrZGVwX2lzX2hlbGQoJnNlbF9uZXRub2RlX2xvY2spKSwNCiAJCQlz dHJ1Y3Qgc2VsX25ldG5vZGUsIGxpc3QpOw0KIAkJbGlzdF9kZWxfcmN1KCZ0YWlsLT5saXN0KTsN CiAJCWtmcmVlX3JjdSh0YWlsLCByY3UpOw0KZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvcGF0 Y2hfcmVhbHRlay5jIGIvc291bmQvcGNpL2hkYS9wYXRjaF9yZWFsdGVrLmMNCmluZGV4IDNjZTJk YTIuLjFhMDlmYmYgMTAwNjQ0DQotLS0gYS9zb3VuZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsuYw0K KysrIGIvc291bmQvcGNpL2hkYS9wYXRjaF9yZWFsdGVrLmMNCkBAIC02MDI2LDYgKzYwMjYsOSBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGhkYV9jb2RlY19wcmVzZXQgc25kX2hkYV9wcmVzZXRfcmVh bHRla1tdID0gew0KIAl7IC5pZCA9IDB4MTBlYzAyNzYsIC5uYW1lID0gIkFMQzI3NiIsIC5wYXRj aCA9IHBhdGNoX2FsYzI2OSB9LA0KIAl7IC5pZCA9IDB4MTBlYzAyODAsIC5uYW1lID0gIkFMQzI4 MCIsIC5wYXRjaCA9IHBhdGNoX2FsYzI2OSB9LA0KIAl7IC5pZCA9IDB4MTBlYzAyODIsIC5uYW1l ID0gIkFMQzI4MiIsIC5wYXRjaCA9IHBhdGNoX2FsYzI2OSB9LA0KKwl7IC5pZCA9IDB4MTBlYzAy ODMsIC5uYW1lID0gIkFMQzI4MyIsIC5wYXRjaCA9IHBhdGNoX2FsYzI2OSB9LA0KKwl7IC5pZCA9 IDB4MTBlYzAyOTAsIC5uYW1lID0gIkFMQzI5MCIsIC5wYXRjaCA9IHBhdGNoX2FsYzI2OSB9LA0K Kwl7IC5pZCA9IDB4MTBlYzAyOTIsIC5uYW1lID0gIkFMQzI5MiIsIC5wYXRjaCA9IHBhdGNoX2Fs YzI2OSB9LA0KIAl7IC5pZCA9IDB4MTBlYzA4NjEsIC5yZXYgPSAweDEwMDM0MCwgLm5hbWUgPSAi QUxDNjYwIiwNCiAJICAucGF0Y2ggPSBwYXRjaF9hbGM4NjEgfSwNCiAJeyAuaWQgPSAweDEwZWMw NjYwLCAubmFtZSA9ICJBTEM2NjAtVkQiLCAucGF0Y2ggPSBwYXRjaF9hbGM4NjF2ZCB9LA0KZGlm ZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204OTc4LmMgYi9zb3VuZC9zb2MvY29kZWNzL3dt ODk3OC5jDQppbmRleCA0MWNhNGQ5Li5mODFiMTg1IDEwMDY0NA0KLS0tIGEvc291bmQvc29jL2Nv ZGVjcy93bTg5NzguYw0KKysrIGIvc291bmQvc29jL2NvZGVjcy93bTg5NzguYw0KQEAgLTc0OSw3 ICs3NDksNyBAQCBzdGF0aWMgaW50IHdtODk3OF9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vi c3RyZWFtICpzdWJzdHJlYW0sDQogCQl3bTg5NzgtPm1jbGtfaWR4ID0gLTE7DQogCQlmX3NlbCA9 IHdtODk3OC0+Zl9tY2xrOw0KIAl9IGVsc2Ugew0KLQkJaWYgKCF3bTg5NzgtPmZfcGxsb3V0KSB7 DQorCQlpZiAoIXdtODk3OC0+Zl9vcGNsaykgew0KIAkJCS8qIFdlIG9ubHkgZW50ZXIgaGVyZSwg aWYgT1BDTEsgaXMgbm90IHVzZWQgKi8NCiAJCQlpbnQgcmV0ID0gd204OTc4X2NvbmZpZ3VyZV9w bGwoY29kZWMpOw0KIAkJCWlmIChyZXQgPCAwKQ0KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zb2Mt ZGFwbS5jIGIvc291bmQvc29jL3NvYy1kYXBtLmMNCmluZGV4IDBkYzQ0MWMuLmI1MTY0ODggMTAw NjQ0DQotLS0gYS9zb3VuZC9zb2Mvc29jLWRhcG0uYw0KKysrIGIvc291bmQvc29jL3NvYy1kYXBt LmMNCkBAIC0zMDA5LDcgKzMwMDksNyBAQCB2b2lkIHNuZF9zb2NfZGFwbV9zaHV0ZG93bihzdHJ1 Y3Qgc25kX3NvY19jYXJkICpjYXJkKQ0KIHsNCiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVj Ow0KIA0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvZGVjLCAmY2FyZC0+Y29kZWNfZGV2X2xpc3Qs IGxpc3QpIHsNCisJbGlzdF9mb3JfZWFjaF9lbnRyeShjb2RlYywgJmNhcmQtPmNvZGVjX2Rldl9s aXN0LCBjYXJkX2xpc3QpIHsNCiAJCXNvY19kYXBtX3NodXRkb3duX2NvZGVjKCZjb2RlYy0+ZGFw bSk7DQogCQlpZiAoY29kZWMtPmRhcG0uYmlhc19sZXZlbCA9PSBTTkRfU09DX0JJQVNfU1RBTkRC WSkNCiAJCQlzbmRfc29jX2RhcG1fc2V0X2JpYXNfbGV2ZWwoJmNvZGVjLT5kYXBtLA0KZGlmZiAt LWdpdCBhL3NvdW5kL3VzYi9taWRpLmMgYi9zb3VuZC91c2IvbWlkaS5jDQppbmRleCBjODNmNjE0 Li5lZWVmYmNlIDEwMDY0NA0KLS0tIGEvc291bmQvdXNiL21pZGkuYw0KKysrIGIvc291bmQvdXNi L21pZGkuYw0KQEAgLTE0OCw2ICsxNDgsNyBAQCBzdHJ1Y3Qgc25kX3VzYl9taWRpX291dF9lbmRw b2ludCB7DQogCQlzdHJ1Y3Qgc25kX3VzYl9taWRpX291dF9lbmRwb2ludCogZXA7DQogCQlzdHJ1 Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzdWJzdHJlYW07DQogCQlpbnQgYWN0aXZlOw0KKwkJ Ym9vbCBhdXRvcG1fcmVmZXJlbmNlOw0KIAkJdWludDhfdCBjYWJsZTsJCS8qIGNhYmxlIG51bWJl ciA8PCA0ICovDQogCQl1aW50OF90IHN0YXRlOw0KICNkZWZpbmUgU1RBVEVfVU5LTk9XTgkwDQpA QCAtMTA3Niw3ICsxMDc3LDggQEAgc3RhdGljIGludCBzbmRfdXNibWlkaV9vdXRwdXRfb3Blbihz dHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzdWJzdHJlYW0pDQogCQlyZXR1cm4gLUVOWElP Ow0KIAl9DQogCWVyciA9IHVzYl9hdXRvcG1fZ2V0X2ludGVyZmFjZSh1bWlkaS0+aWZhY2UpOw0K LQlpZiAoZXJyIDwgMCkNCisJcG9ydC0+YXV0b3BtX3JlZmVyZW5jZSA9IGVyciA+PSAwOw0KKwlp ZiAoZXJyIDwgMCAmJiBlcnIgIT0gLUVBQ0NFUykNCiAJCXJldHVybiAtRUlPOw0KIAlzdWJzdHJl YW0tPnJ1bnRpbWUtPnByaXZhdGVfZGF0YSA9IHBvcnQ7DQogCXBvcnQtPnN0YXRlID0gU1RBVEVf VU5LTk9XTjsNCkBAIC0xMDg3LDkgKzEwODksMTEgQEAgc3RhdGljIGludCBzbmRfdXNibWlkaV9v dXRwdXRfb3BlbihzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzdWJzdHJlYW0pDQogc3Rh dGljIGludCBzbmRfdXNibWlkaV9vdXRwdXRfY2xvc2Uoc3RydWN0IHNuZF9yYXdtaWRpX3N1YnN0 cmVhbSAqc3Vic3RyZWFtKQ0KIHsNCiAJc3RydWN0IHNuZF91c2JfbWlkaSogdW1pZGkgPSBzdWJz dHJlYW0tPnJtaWRpLT5wcml2YXRlX2RhdGE7DQorCXN0cnVjdCB1c2JtaWRpX291dF9wb3J0ICpw b3J0ID0gc3Vic3RyZWFtLT5ydW50aW1lLT5wcml2YXRlX2RhdGE7DQogDQogCXN1YnN0cmVhbV9v cGVuKHN1YnN0cmVhbSwgMCk7DQotCXVzYl9hdXRvcG1fcHV0X2ludGVyZmFjZSh1bWlkaS0+aWZh Y2UpOw0KKwlpZiAocG9ydC0+YXV0b3BtX3JlZmVyZW5jZSkNCisJCXVzYl9hdXRvcG1fcHV0X2lu dGVyZmFjZSh1bWlkaS0+aWZhY2UpOw0KIAlyZXR1cm4gMDsNCiB9DQogDQo= --=-eFfEqEtqve6tEVuuNygF-- --=-Uhm1UoTh6tZW5uzkSeiL Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIVAwUAULzAtue/yOyVhhEJAQq5ThAAkEuBjWMnLT+VkJY6vUpq6APJ5Zs7l7DO 0LSnxpuTOl+hUuXRbAbRMZasjMcNvADEj87qOUoPiz3/eLUbLSrBedghL8/Kvxm8 Oo6g9RDs+LislHIUsoUR8tBcdVuDJPDEh7jRZBzXE18KY9iDY0ECuq5NxaVVXuB8 JZepz2wP9cFknk0bvyEb1ubTbV8h0N3HK5Z+wUvqpIRS6La0StDcs3racP4p7bCJ Yt818wMha0wJdvVpJaNtN+nJ6GJBsutvzsszfAJvIuZJdGSF4khmAJpwipUPirAs DY2u+mmKt6AGtFxniu/73l9uMFTq0HtU02idd5otHlBsj4uth2fymxZ1/hLucm5y bSCMiKgQoIf5fX+9muk8hW+CPd6RucIEBI7wiuO8ajfkyVbXvmIBmpnJdXLkhmLd 3t0qJh+Kclr/p0a4ejkSPwC3cYkJUHw6ACwuvts3l0v3vvAC/Zg4664orqjPgiLt cfJtnQkWPuNzq0gTwcWqvQXK+s7n4dsx4LIDD1t6H8pEwEEcXj/vddG22CoRkfi2 FKYWFIX4PFO4uO3pWJW+Q9LrOcX+6IiXMniMrkhEuw0vQRmyED93rG2oExzwaUol RuJd6BfDjOD61gPuOZYf8JE8WAHZK3Jm+54zCkpOUu45rRfYr8+zARvLJOaL14NZ eyQOyL7RMxM= =IStB -----END PGP SIGNATURE----- --=-Uhm1UoTh6tZW5uzkSeiL--