From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754180AbaCaAmD (ORCPT ); Sun, 30 Mar 2014 20:42:03 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:37645 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753854AbaCaAlv (ORCPT ); Sun, 30 Mar 2014 20:41:51 -0400 Message-ID: <1396226501.1241.35.camel@deadeye.wl.decadent.org.uk> Subject: Re: [PATCH 3.2 000/200] 3.2.56-rc1 review From: Ben Hutchings To: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, torvalds@linux-foundation.org, Satoru Takeuchi , akpm@linux-foundation.org Date: Mon, 31 Mar 2014 01:41:41 +0100 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-cSnobo8XwxbC+gNeUR5D" X-Mailer: Evolution 3.8.5-2+b3 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 192.168.4.249 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 --=-cSnobo8XwxbC+gNeUR5D Content-Type: multipart/mixed; boundary="=-1Myk5thztbGwpyfglO1V" --=-1Myk5thztbGwpyfglO1V Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.56-rc1 relative to 3.2.55. Ben. --=20 Ben Hutchings friends: People who know you well, but like you anyway. --=-1Myk5thztbGwpyfglO1V Content-Disposition: attachment; filename="linux-3.2.56-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.56-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvcHJvYy50eHQgYi9Eb2N1bWVu dGF0aW9uL2ZpbGVzeXN0ZW1zL3Byb2MudHh0DQppbmRleCAwZWM5MWYwLi40MDRhMDk3IDEwMDY0 NA0KLS0tIGEvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9wcm9jLnR4dA0KKysrIGIvRG9jdW1l bnRhdGlvbi9maWxlc3lzdGVtcy9wcm9jLnR4dA0KQEAgLTEyOTMsOCArMTI5Myw4IEBAIG1heSBh bGxvY2F0ZSBmcm9tIGJhc2VkIG9uIGFuIGVzdGltYXRpb24gb2YgaXRzIGN1cnJlbnQgbWVtb3J5 IGFuZCBzd2FwIHVzZS4NCiBGb3IgZXhhbXBsZSwgaWYgYSB0YXNrIGlzIHVzaW5nIGFsbCBhbGxv d2VkIG1lbW9yeSwgaXRzIGJhZG5lc3Mgc2NvcmUgd2lsbCBiZQ0KIDEwMDAuICBJZiBpdCBpcyB1 c2luZyBoYWxmIG9mIGl0cyBhbGxvd2VkIG1lbW9yeSwgaXRzIHNjb3JlIHdpbGwgYmUgNTAwLg0K IA0KLVRoZXJlIGlzIGFuIGFkZGl0aW9uYWwgZmFjdG9yIGluY2x1ZGVkIGluIHRoZSBiYWRuZXNz IHNjb3JlOiByb290DQotcHJvY2Vzc2VzIGFyZSBnaXZlbiAzJSBleHRyYSBtZW1vcnkgb3ZlciBv dGhlciB0YXNrcy4NCitUaGVyZSBpcyBhbiBhZGRpdGlvbmFsIGZhY3RvciBpbmNsdWRlZCBpbiB0 aGUgYmFkbmVzcyBzY29yZTogdGhlIGN1cnJlbnQgbWVtb3J5DQorYW5kIHN3YXAgdXNhZ2UgaXMg ZGlzY291bnRlZCBieSAzJSBmb3Igcm9vdCBwcm9jZXNzZXMuDQogDQogVGhlIGFtb3VudCBvZiAi YWxsb3dlZCIgbWVtb3J5IGRlcGVuZHMgb24gdGhlIGNvbnRleHQgaW4gd2hpY2ggdGhlIG9vbSBr aWxsZXINCiB3YXMgY2FsbGVkLiAgSWYgaXQgaXMgZHVlIHRvIHRoZSBtZW1vcnkgYXNzaWduZWQg dG8gdGhlIGFsbG9jYXRpbmcgdGFzaydzIGNwdXNldA0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRp b24vaTJjL2J1c3Nlcy9pMmMtcGlpeDQgYi9Eb2N1bWVudGF0aW9uL2kyYy9idXNzZXMvaTJjLXBp aXg0DQppbmRleCA2NWRhMTU3Li4wOTgyZTcyIDEwMDY0NA0KLS0tIGEvRG9jdW1lbnRhdGlvbi9p MmMvYnVzc2VzL2kyYy1waWl4NA0KKysrIGIvRG9jdW1lbnRhdGlvbi9pMmMvYnVzc2VzL2kyYy1w aWl4NA0KQEAgLTgsNyArOCw3IEBAIFN1cHBvcnRlZCBhZGFwdGVyczoNCiAgICAgRGF0YXNoZWV0 OiBPbmx5IGF2YWlsYWJsZSB2aWEgTkRBIGZyb20gU2VydmVyV29ya3MNCiAgICogQVRJIElYUDIw MCwgSVhQMzAwLCBJWFA0MDAsIFNCNjAwLCBTQjcwMCBhbmQgU0I4MDAgc291dGhicmlkZ2VzDQog ICAgIERhdGFzaGVldDogTm90IHB1YmxpY2x5IGF2YWlsYWJsZQ0KLSAgKiBBTUQgSHVkc29uLTIs IENaDQorICAqIEFNRCBIdWRzb24tMiwgTUwsIENaDQogICAgIERhdGFzaGVldDogTm90IHB1Ymxp Y2x5IGF2YWlsYWJsZQ0KICAgKiBTdGFuZGFyZCBNaWNyb3N5c3RlbXMgKFNNU0MpIFNMQzkwRTY2 IChWaWN0b3J5NjYpIHNvdXRoYnJpZGdlDQogICAgIERhdGFzaGVldDogUHVibGljbHkgYXZhaWxh YmxlIGF0IHRoZSBTTVNDIHdlYnNpdGUgaHR0cDovL3d3dy5zbXNjLmNvbQ0KZGlmZiAtLWdpdCBh L01ha2VmaWxlIGIvTWFrZWZpbGUNCmluZGV4IDUzODQ2M2UuLjRiMzUzZjYgMTAwNjQ0DQotLS0g YS9NYWtlZmlsZQ0KKysrIGIvTWFrZWZpbGUNCkBAIC0xLDcgKzEsNyBAQA0KIFZFUlNJT04gPSAz DQogUEFUQ0hMRVZFTCA9IDINCi1TVUJMRVZFTCA9IDU1DQotRVhUUkFWRVJTSU9OID0NCitTVUJM RVZFTCA9IDU2DQorRVhUUkFWRVJTSU9OID0gLXJjMQ0KIE5BTUUgPSBTYWJlci10b290aGVkIFNx dWlycmVsDQogDQogIyAqRE9DVU1FTlRBVElPTioNCmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2xp Yi9jc3VtX3BhcnRpYWxfY29weS5jIGIvYXJjaC9hbHBoYS9saWIvY3N1bV9wYXJ0aWFsX2NvcHku Yw0KaW5kZXggNDA3MzZkYS4uMWQyZWY1YSAxMDA2NDQNCi0tLSBhL2FyY2gvYWxwaGEvbGliL2Nz dW1fcGFydGlhbF9jb3B5LmMNCisrKyBiL2FyY2gvYWxwaGEvbGliL2NzdW1fcGFydGlhbF9jb3B5 LmMNCkBAIC0zNzMsNiArMzczLDExIEBAIGNzdW1fcGFydGlhbF9jb3B5X2Zyb21fdXNlcihjb25z dCB2b2lkIF9fdXNlciAqc3JjLCB2b2lkICpkc3QsIGludCBsZW4sDQogX193c3VtDQogY3N1bV9w YXJ0aWFsX2NvcHlfbm9jaGVjayhjb25zdCB2b2lkICpzcmMsIHZvaWQgKmRzdCwgaW50IGxlbiwg X193c3VtIHN1bSkNCiB7DQotCXJldHVybiBjc3VtX3BhcnRpYWxfY29weV9mcm9tX3VzZXIoKF9f Zm9yY2UgY29uc3Qgdm9pZCBfX3VzZXIgKilzcmMsDQotCQkJZHN0LCBsZW4sIHN1bSwgTlVMTCk7 DQorCV9fd3N1bSBjaGVja3N1bTsNCisJbW1fc2VnbWVudF90IG9sZGZzID0gZ2V0X2ZzKCk7DQor CXNldF9mcyhLRVJORUxfRFMpOw0KKwljaGVja3N1bSA9IGNzdW1fcGFydGlhbF9jb3B5X2Zyb21f dXNlcigoX19mb3JjZSBjb25zdCB2b2lkIF9fdXNlciAqKXNyYywNCisJCQkJCQlkc3QsIGxlbiwg c3VtLCBOVUxMKTsNCisJc2V0X2ZzKG9sZGZzKTsNCisJcmV0dXJuIGNoZWNrc3VtOw0KIH0NCmRp ZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9jYWNoZWZsdXNoLmggYi9hcmNoL2FybS9p bmNsdWRlL2FzbS9jYWNoZWZsdXNoLmgNCmluZGV4IDEzOTc0MDguLmIxZTBlMDcgMTAwNjQ0DQot LS0gYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9jYWNoZWZsdXNoLmgNCisrKyBiL2FyY2gvYXJtL2lu Y2x1ZGUvYXNtL2NhY2hlZmx1c2guaA0KQEAgLTIwMiw2ICsyMDIsNyBAQCBleHRlcm4gdm9pZCBj b3B5X3RvX3VzZXJfcGFnZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKiwgc3RydWN0IHBhZ2UgKiwN CiBzdGF0aWMgaW5saW5lIHZvaWQgX19mbHVzaF9pY2FjaGVfYWxsKHZvaWQpDQogew0KIAlfX2Zs dXNoX2ljYWNoZV9wcmVmZXJyZWQoKTsNCisJZHNiKCk7DQogfQ0KIA0KICNkZWZpbmUgZmx1c2hf Y2FjaGVfYWxsKCkJCV9fY3B1Y19mbHVzaF9rZXJuX2FsbCgpDQpkaWZmIC0tZ2l0IGEvYXJjaC9h cm0vaW5jbHVkZS9hc20vc3BpbmxvY2suaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3NwaW5sb2Nr LmgNCmluZGV4IDY1ZmEzYzguLjA5NWE5YTMgMTAwNjQ0DQotLS0gYS9hcmNoL2FybS9pbmNsdWRl L2FzbS9zcGlubG9jay5oDQorKysgYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9zcGlubG9jay5oDQpA QCAtNDQsMTggKzQ0LDkgQEANCiANCiBzdGF0aWMgaW5saW5lIHZvaWQgZHNiX3Nldih2b2lkKQ0K IHsNCi0jaWYgX19MSU5VWF9BUk1fQVJDSF9fID49IDcNCi0JX19hc21fXyBfX3ZvbGF0aWxlX18g KA0KLQkJImRzYlxuIg0KLQkJU0VWDQotCSk7DQotI2Vsc2UNCi0JX19hc21fXyBfX3ZvbGF0aWxl X18gKA0KLQkJIm1jciBwMTUsIDAsICUwLCBjNywgYzEwLCA0XG4iDQotCQlTRVYNCi0JCTogOiAi ciIgKDApDQotCSk7DQotI2VuZGlmDQorDQorCWRzYigpOw0KKwlfX2FzbV9fKFNFVik7DQogfQ0K IA0KIC8qDQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbW0vcHJvYy12Ni5TIGIvYXJjaC9hcm0vbW0v cHJvYy12Ni5TDQppbmRleCA4MTY4ZDk5Li44NWE1MzQ4IDEwMDY0NA0KLS0tIGEvYXJjaC9hcm0v bW0vcHJvYy12Ni5TDQorKysgYi9hcmNoL2FybS9tbS9wcm9jLXY2LlMNCkBAIC0xOTksNyArMTk5 LDYgQEAgX192Nl9zZXR1cDoNCiAJbWNyCXAxNSwgMCwgcjAsIGM3LCBjMTQsIDAJCUAgY2xlYW4r aW52YWxpZGF0ZSBEIGNhY2hlDQogCW1jcglwMTUsIDAsIHIwLCBjNywgYzUsIDAJCUAgaW52YWxp ZGF0ZSBJIGNhY2hlDQogCW1jcglwMTUsIDAsIHIwLCBjNywgYzE1LCAwCQlAIGNsZWFuK2ludmFs aWRhdGUgY2FjaGUNCi0JbWNyCXAxNSwgMCwgcjAsIGM3LCBjMTAsIDQJCUAgZHJhaW4gd3JpdGUg YnVmZmVyDQogI2lmZGVmIENPTkZJR19NTVUNCiAJbWNyCXAxNSwgMCwgcjAsIGM4LCBjNywgMAkJ QCBpbnZhbGlkYXRlIEkgKyBEIFRMQnMNCiAJbWNyCXAxNSwgMCwgcjAsIGMyLCBjMCwgMgkJQCBU VEIgY29udHJvbCByZWdpc3Rlcg0KQEAgLTIwOSw2ICsyMDgsOCBAQCBfX3Y2X3NldHVwOg0KIAlB TFRfVVAob3JyCXI4LCByOCwgI1RUQl9GTEFHU19VUCkNCiAJbWNyCXAxNSwgMCwgcjgsIGMyLCBj MCwgMQkJQCBsb2FkIFRUQjENCiAjZW5kaWYgLyogQ09ORklHX01NVSAqLw0KKwltY3IJcDE1LCAw LCByMCwgYzcsIGMxMCwgNAkJQCBkcmFpbiB3cml0ZSBidWZmZXIgYW5kDQorCQkJCQkJQCBjb21w bGV0ZSBpbnZhbGlkYXRpb25zDQogCWFkcglyNSwgdjZfY3J2YWwNCiAJbGRtaWEJcjUsIHtyNSwg cjZ9DQogI2lmZGVmIENPTkZJR19DUFVfRU5ESUFOX0JFOA0KZGlmZiAtLWdpdCBhL2FyY2gvYXJt L21tL3Byb2MtdjcuUyBiL2FyY2gvYXJtL21tL3Byb2MtdjcuUw0KaW5kZXggNzg1MzY1ZS4uMTlk MjFmZiAxMDA2NDQNCi0tLSBhL2FyY2gvYXJtL21tL3Byb2MtdjcuUw0KKysrIGIvYXJjaC9hcm0v bW0vcHJvYy12Ny5TDQpAQCAtMzY4LDcgKzM2OCw2IEBAIF9fdjdfc2V0dXA6DQogDQogMzoJbW92 CXIxMCwgIzANCiAJbWNyCXAxNSwgMCwgcjEwLCBjNywgYzUsIDAJCUAgSStCVEIgY2FjaGUgaW52 YWxpZGF0ZQ0KLQlkc2INCiAjaWZkZWYgQ09ORklHX01NVQ0KIAltY3IJcDE1LCAwLCByMTAsIGM4 LCBjNywgMAkJQCBpbnZhbGlkYXRlIEkgKyBEIFRMQnMNCiAJbWNyCXAxNSwgMCwgcjEwLCBjMiwg YzAsIDIJCUAgVFRCIGNvbnRyb2wgcmVnaXN0ZXINCkBAIC0zODIsNiArMzgxLDcgQEAgX192N19z ZXR1cDoNCiAJbWNyCXAxNSwgMCwgcjUsIGMxMCwgYzIsIDAJCUAgd3JpdGUgUFJSUg0KIAltY3IJ cDE1LCAwLCByNiwgYzEwLCBjMiwgMQkJQCB3cml0ZSBOTVJSDQogI2VuZGlmDQorCWRzYgkJCQkJ QCBDb21wbGV0ZSBpbnZhbGlkYXRpb25zDQogI2lmbmRlZiBDT05GSUdfQVJNX1RIVU1CRUUNCiAJ bXJjCXAxNSwgMCwgcjAsIGMwLCBjMSwgMAkJQCByZWFkIElEX1BGUjAgZm9yIFRodW1iRUUNCiAJ YW5kCXIwLCByMCwgIygweGYgPDwgMTIpCQlAIFRodW1iRUUgZW5hYmxlZCBmaWVsZA0KZGlmZiAt LWdpdCBhL2FyY2gvYXZyMzIvTWFrZWZpbGUgYi9hcmNoL2F2cjMyL01ha2VmaWxlDQppbmRleCAy MmZiNjY1Li5kYmE0OGE1IDEwMDY0NA0KLS0tIGEvYXJjaC9hdnIzMi9NYWtlZmlsZQ0KKysrIGIv YXJjaC9hdnIzMi9NYWtlZmlsZQ0KQEAgLTExLDcgKzExLDcgQEAgYWxsOiB1SW1hZ2Ugdm1saW51 eC5lbGYNCiANCiBLQlVJTERfREVGQ09ORklHCTo9IGF0c3RrMTAwMl9kZWZjb25maWcNCiANCi1L QlVJTERfQ0ZMQUdTCSs9IC1waXBlIC1mbm8tYnVpbHRpbiAtbW5vLXBpYw0KK0tCVUlMRF9DRkxB R1MJKz0gLXBpcGUgLWZuby1idWlsdGluIC1tbm8tcGljIC1EX19saW51eF9fDQogS0JVSUxEX0FG TEFHUwkrPSAtbXJlbGF4IC1tbm8tcGljDQogS0JVSUxEX0NGTEFHU19NT0RVTEUgKz0gLW1uby1y ZWxheA0KIExERkxBR1Nfdm1saW51eAkrPSAtLXJlbGF4DQpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIz Mi9ib2FyZHMvbWltYzIwMC9mcmFtLmMgYi9hcmNoL2F2cjMyL2JvYXJkcy9taW1jMjAwL2ZyYW0u Yw0KaW5kZXggOTc2NGExYS4uYzE0NjZhOCAxMDA2NDQNCi0tLSBhL2FyY2gvYXZyMzIvYm9hcmRz L21pbWMyMDAvZnJhbS5jDQorKysgYi9hcmNoL2F2cjMyL2JvYXJkcy9taW1jMjAwL2ZyYW0uYw0K QEAgLTExLDYgKzExLDcgQEANCiAjZGVmaW5lIEZSQU1fVkVSU0lPTgkiMS4wIg0KIA0KICNpbmNs dWRlIDxsaW51eC9taXNjZGV2aWNlLmg+DQorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KICNp bmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+DQogI2luY2x1ZGUgPGxpbnV4L21tLmg+DQogI2luY2x1 ZGUgPGxpbnV4L2lvLmg+DQpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL21tL2MtcjRrLmMgYi9hcmNo L21pcHMvbW0vYy1yNGsuYw0KaW5kZXggYTc5ZmU5YS4uN2Q1YWMwYiAxMDA2NDQNCi0tLSBhL2Fy Y2gvbWlwcy9tbS9jLXI0ay5jDQorKysgYi9hcmNoL21pcHMvbW0vYy1yNGsuYw0KQEAgLTYzMyw5 ICs2MzMsNiBAQCBzdGF0aWMgdm9pZCByNGtfZG1hX2NhY2hlX2ludih1bnNpZ25lZCBsb25nIGFk ZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSkNCiAJCWlmIChzaXplID49IHNjYWNoZV9zaXplKQ0KIAkJ CXI0a19ibGFzdF9zY2FjaGUoKTsNCiAJCWVsc2Ugew0KLQkJCXVuc2lnbmVkIGxvbmcgbHNpemUg PSBjcHVfc2NhY2hlX2xpbmVfc2l6ZSgpOw0KLQkJCXVuc2lnbmVkIGxvbmcgYWxtYXNrID0gfihs c2l6ZSAtIDEpOw0KLQ0KIAkJCS8qDQogCQkJICogVGhlcmUgaXMgbm8gY2xlYXJseSBkb2N1bWVu dGVkIGFsaWdubWVudCByZXF1aXJlbWVudA0KIAkJCSAqIGZvciB0aGUgY2FjaGUgaW5zdHJ1Y3Rp b24gb24gTUlQUyBwcm9jZXNzb3JzIGFuZA0KQEAgLTY0NCw5ICs2NDEsNiBAQCBzdGF0aWMgdm9p ZCByNGtfZG1hX2NhY2hlX2ludih1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6 ZSkNCiAJCQkgKiBoaXQgb3BzIHdpdGggaW5zdWZmaWNpZW50IGFsaWdubWVudC4gIFNvbHZlZCBi eQ0KIAkJCSAqIGFsaWduaW5nIHRoZSBhZGRyZXNzIHRvIGNhY2hlIGxpbmUgc2l6ZS4NCiAJCQkg Ki8NCi0JCQljYWNoZV9vcChIaXRfV3JpdGViYWNrX0ludl9TRCwgYWRkciAmIGFsbWFzayk7DQot CQkJY2FjaGVfb3AoSGl0X1dyaXRlYmFja19JbnZfU0QsDQotCQkJCSAoYWRkciArIHNpemUgLSAx KSAmIGFsbWFzayk7DQogCQkJYmxhc3RfaW52X3NjYWNoZV9yYW5nZShhZGRyLCBhZGRyICsgc2l6 ZSk7DQogCQl9DQogCQlfX3N5bmMoKTsNCkBAIC02NTYsMTIgKzY1MCw3IEBAIHN0YXRpYyB2b2lk IHI0a19kbWFfY2FjaGVfaW52KHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBzaXpl KQ0KIAlpZiAoY3B1X2hhc19zYWZlX2luZGV4X2NhY2hlb3BzICYmIHNpemUgPj0gZGNhY2hlX3Np emUpIHsNCiAJCXI0a19ibGFzdF9kY2FjaGUoKTsNCiAJfSBlbHNlIHsNCi0JCXVuc2lnbmVkIGxv bmcgbHNpemUgPSBjcHVfZGNhY2hlX2xpbmVfc2l6ZSgpOw0KLQkJdW5zaWduZWQgbG9uZyBhbG1h c2sgPSB+KGxzaXplIC0gMSk7DQotDQogCQlSNDYwMF9ISVRfQ0FDSEVPUF9XQVJfSU1QTDsNCi0J CWNhY2hlX29wKEhpdF9Xcml0ZWJhY2tfSW52X0QsIGFkZHIgJiBhbG1hc2spOw0KLQkJY2FjaGVf b3AoSGl0X1dyaXRlYmFja19JbnZfRCwgKGFkZHIgKyBzaXplIC0gMSkgICYgYWxtYXNrKTsNCiAJ CWJsYXN0X2ludl9kY2FjaGVfcmFuZ2UoYWRkciwgYWRkciArIHNpemUpOw0KIAl9DQogDQpkaWZm IC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9jYWNoZWluZm8uYyBiL2FyY2gvcG93ZXJwYy9r ZXJuZWwvY2FjaGVpbmZvLmMNCmluZGV4IGEzYzY4NGIuLjAyZWJlMWEgMTAwNjQ0DQotLS0gYS9h cmNoL3Bvd2VycGMva2VybmVsL2NhY2hlaW5mby5jDQorKysgYi9hcmNoL3Bvd2VycGMva2VybmVs L2NhY2hlaW5mby5jDQpAQCAtNzg4LDYgKzc4OCw5IEBAIHN0YXRpYyB2b2lkIHJlbW92ZV9jYWNo ZV9kaXIoc3RydWN0IGNhY2hlX2RpciAqY2FjaGVfZGlyKQ0KIHsNCiAJcmVtb3ZlX2luZGV4X2Rp cnMoY2FjaGVfZGlyKTsNCiANCisJLyogUmVtb3ZlIGNhY2hlIGRpciBmcm9tIHN5c2ZzICovDQor CWtvYmplY3RfZGVsKGNhY2hlX2Rpci0+a29iaik7DQorDQogCWtvYmplY3RfcHV0KGNhY2hlX2Rp ci0+a29iaik7DQogDQogCWtmcmVlKGNhY2hlX2Rpcik7DQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dl cnBjL2tlcm5lbC9jcmFzaF9kdW1wLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL2NyYXNoX2R1bXAu Yw0KaW5kZXggNDI0YWZiNi4uMzk3ODdjOSAxMDA2NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9rZXJu ZWwvY3Jhc2hfZHVtcC5jDQorKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL2NyYXNoX2R1bXAuYw0K QEAgLTEwOCwxNyArMTA4LDE5IEBAIHNzaXplX3QgY29weV9vbGRtZW1fcGFnZSh1bnNpZ25lZCBs b25nIHBmbiwgY2hhciAqYnVmLA0KIAkJCXNpemVfdCBjc2l6ZSwgdW5zaWduZWQgbG9uZyBvZmZz ZXQsIGludCB1c2VyYnVmKQ0KIHsNCiAJdm9pZCAgKnZhZGRyOw0KKwlwaHlzX2FkZHJfdCBwYWRk cjsNCiANCiAJaWYgKCFjc2l6ZSkNCiAJCXJldHVybiAwOw0KIA0KIAljc2l6ZSA9IG1pbl90KHNp emVfdCwgY3NpemUsIFBBR0VfU0laRSk7DQorCXBhZGRyID0gcGZuIDw8IFBBR0VfU0hJRlQ7DQog DQotCWlmICgobWluX2xvd19wZm4gPCBwZm4pICYmIChwZm4gPCBtYXhfcGZuKSkgew0KLQkJdmFk ZHIgPSBfX3ZhKHBmbiA8PCBQQUdFX1NISUZUKTsNCisJaWYgKG1lbWJsb2NrX2lzX3JlZ2lvbl9t ZW1vcnkocGFkZHIsIGNzaXplKSkgew0KKwkJdmFkZHIgPSBfX3ZhKHBhZGRyKTsNCiAJCWNzaXpl ID0gY29weV9vbGRtZW1fdmFkZHIodmFkZHIsIGJ1ZiwgY3NpemUsIG9mZnNldCwgdXNlcmJ1Zik7 DQogCX0gZWxzZSB7DQotCQl2YWRkciA9IF9faW9yZW1hcChwZm4gPDwgUEFHRV9TSElGVCwgUEFH RV9TSVpFLCAwKTsNCisJCXZhZGRyID0gX19pb3JlbWFwKHBhZGRyLCBQQUdFX1NJWkUsIDApOw0K IAkJY3NpemUgPSBjb3B5X29sZG1lbV92YWRkcih2YWRkciwgYnVmLCBjc2l6ZSwgb2Zmc2V0LCB1 c2VyYnVmKTsNCiAJCWlvdW5tYXAodmFkZHIpOw0KIAl9DQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dl cnBjL2tlcm5lbC9yZWxvY182NC5TIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9yZWxvY182NC5TDQpp bmRleCBiNDdhMGUxLi5jNzEyZWNlIDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9y ZWxvY182NC5TDQorKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3JlbG9jXzY0LlMNCkBAIC04MSw2 ICs4MSw3IEBAIF9HTE9CQUwocmVsb2NhdGUpDQogDQogNjoJYmxyDQogDQorLmJhbGlnbiA4DQog cF9keW46CS5sbG9uZwlfX2R5bmFtaWNfc3RhcnQgLSAwYg0KIHBfcmVsYToJLmxsb25nCV9fcmVs YV9keW5fc3RhcnQgLSAwYg0KIHBfc3Q6CS5sbG9uZwlfc3RleHQgLSAwYg0KZGlmZiAtLWdpdCBh L2FyY2gvcG93ZXJwYy9rdm0vZTUwMF90bGIuYyBiL2FyY2gvcG93ZXJwYy9rdm0vZTUwMF90bGIu Yw0KaW5kZXggMTNjNDMyZS4uODQ0ZmM4MyAxMDA2NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9rdm0v ZTUwMF90bGIuYw0KKysrIGIvYXJjaC9wb3dlcnBjL2t2bS9lNTAwX3RsYi5jDQpAQCAtNDgxLDcg KzQ4MSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBrdm1wcGNfZTUwMF9wcml2X3JlbGVhc2Uoc3Ry dWN0IHRsYmVfcHJpdiAqcHJpdikNCiB9DQogDQogc3RhdGljIGlubGluZSB2b2lkIGt2bXBwY19l NTAwX2RlbGl2ZXJfdGxiX21pc3Moc3RydWN0IGt2bV92Y3B1ICp2Y3B1LA0KLQkJdW5zaWduZWQg aW50IGVhZGRyLCBpbnQgYXMpDQorCQlndmFfdCBlYWRkciwgaW50IGFzKQ0KIHsNCiAJc3RydWN0 IGt2bXBwY192Y3B1X2U1MDAgKnZjcHVfZTUwMCA9IHRvX2U1MDAodmNwdSk7DQogCXVuc2lnbmVk IGludCB2aWN0aW0sIHBpZHNlbCwgdHNpemVkOw0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9w bGF0Zm9ybXMvcHNlcmllcy9ob3RwbHVnLWNwdS5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9w c2VyaWVzL2hvdHBsdWctY3B1LmMNCmluZGV4IGM5ODZkMDguLjNhNTczZTQgMTAwNjQ0DQotLS0g YS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvaG90cGx1Zy1jcHUuYw0KKysrIGIvYXJj aC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL2hvdHBsdWctY3B1LmMNCkBAIC0zNSwxMiArMzUs NyBAQA0KICNpbmNsdWRlICJvZmZsaW5lX3N0YXRlcy5oIg0KIA0KIC8qIFRoaXMgdmVyc2lvbiBj YW4ndCB0YWtlIHRoZSBzcGlubG9jaywgYmVjYXVzZSBpdCBuZXZlciByZXR1cm5zICovDQotc3Rh dGljIHN0cnVjdCBydGFzX2FyZ3MgcnRhc19zdG9wX3NlbGZfYXJncyA9IHsNCi0JLnRva2VuID0g UlRBU19VTktOT1dOX1NFUlZJQ0UsDQotCS5uYXJncyA9IDAsDQotCS5ucmV0ID0gMSwNCi0JLnJl dHMgPSAmcnRhc19zdG9wX3NlbGZfYXJncy5hcmdzWzBdLA0KLX07DQorc3RhdGljIGludCBydGFz X3N0b3Bfc2VsZl90b2tlbiA9IFJUQVNfVU5LTk9XTl9TRVJWSUNFOw0KIA0KIHN0YXRpYyBERUZJ TkVfUEVSX0NQVShlbnVtIGNwdV9zdGF0ZV92YWxzLCBwcmVmZXJyZWRfb2ZmbGluZV9zdGF0ZSkg PQ0KIAkJCQkJCQlDUFVfU1RBVEVfT0ZGTElORTsNCkBAIC05MywxNSArODgsMjAgQEAgdm9pZCBz ZXRfZGVmYXVsdF9vZmZsaW5lX3N0YXRlKGludCBjcHUpDQogDQogc3RhdGljIHZvaWQgcnRhc19z dG9wX3NlbGYodm9pZCkNCiB7DQotCXN0cnVjdCBydGFzX2FyZ3MgKmFyZ3MgPSAmcnRhc19zdG9w X3NlbGZfYXJnczsNCisJc3RydWN0IHJ0YXNfYXJncyBhcmdzID0gew0KKwkJLnRva2VuID0gY3B1 X3RvX2JlMzIocnRhc19zdG9wX3NlbGZfdG9rZW4pLA0KKwkJLm5hcmdzID0gMCwNCisJCS5ucmV0 ID0gMSwNCisJCS5yZXRzID0gJmFyZ3MuYXJnc1swXSwNCisJfTsNCiANCiAJbG9jYWxfaXJxX2Rp c2FibGUoKTsNCiANCi0JQlVHX09OKGFyZ3MtPnRva2VuID09IFJUQVNfVU5LTk9XTl9TRVJWSUNF KTsNCisJQlVHX09OKHJ0YXNfc3RvcF9zZWxmX3Rva2VuID09IFJUQVNfVU5LTk9XTl9TRVJWSUNF KTsNCiANCiAJcHJpbnRrKCJjcHUgJXUgKGh3aWQgJXUpIFJlYWR5IHRvIGRpZS4uLlxuIiwNCiAJ ICAgICAgIHNtcF9wcm9jZXNzb3JfaWQoKSwgaGFyZF9zbXBfcHJvY2Vzc29yX2lkKCkpOw0KLQll bnRlcl9ydGFzKF9fcGEoYXJncykpOw0KKwllbnRlcl9ydGFzKF9fcGEoJmFyZ3MpKTsNCiANCiAJ cGFuaWMoIkFsYXMsIEkgc3Vydml2ZWQuXG4iKTsNCiB9DQpAQCAtMzg0LDEwICszODQsMTAgQEAg c3RhdGljIGludCBfX2luaXQgcHNlcmllc19jcHVfaG90cGx1Z19pbml0KHZvaWQpDQogCQl9DQog CX0NCiANCi0JcnRhc19zdG9wX3NlbGZfYXJncy50b2tlbiA9IHJ0YXNfdG9rZW4oInN0b3Atc2Vs ZiIpOw0KKwlydGFzX3N0b3Bfc2VsZl90b2tlbiA9IHJ0YXNfdG9rZW4oInN0b3Atc2VsZiIpOw0K IAlxY3NzX3RvayA9IHJ0YXNfdG9rZW4oInF1ZXJ5LWNwdS1zdG9wcGVkLXN0YXRlIik7DQogDQot CWlmIChydGFzX3N0b3Bfc2VsZl9hcmdzLnRva2VuID09IFJUQVNfVU5LTk9XTl9TRVJWSUNFIHx8 DQorCWlmIChydGFzX3N0b3Bfc2VsZl90b2tlbiA9PSBSVEFTX1VOS05PV05fU0VSVklDRSB8fA0K IAkJCXFjc3NfdG9rID09IFJUQVNfVU5LTk9XTl9TRVJWSUNFKSB7DQogCQlwcmludGsoS0VSTl9J TkZPICJDUFUgSG90cGx1ZyBub3Qgc3VwcG9ydGVkIGJ5IGZpcm13YXJlICINCiAJCQkJIi0gZGlz YWJsaW5nLlxuIik7DQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2NyeXB0by9hZXNfczM5MC5jIGIv YXJjaC9zMzkwL2NyeXB0by9hZXNfczM5MC5jDQppbmRleCAzZWM4YjM5Li41MWZiMWVmIDEwMDY0 NA0KLS0tIGEvYXJjaC9zMzkwL2NyeXB0by9hZXNfczM5MC5jDQorKysgYi9hcmNoL3MzOTAvY3J5 cHRvL2Flc19zMzkwLmMNCkBAIC0yNSw2ICsyNSw3IEBADQogI2luY2x1ZGUgPGxpbnV4L2Vyci5o Pg0KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPg0K KyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPg0KICNpbmNsdWRlICJjcnlwdF9zMzkwLmgiDQog DQogI2RlZmluZSBBRVNfS0VZTEVOXzEyOAkJMQ0KQEAgLTMyLDYgKzMzLDcgQEANCiAjZGVmaW5l IEFFU19LRVlMRU5fMjU2CQk0DQogDQogc3RhdGljIHU4ICpjdHJibGs7DQorc3RhdGljIERFRklO RV9TUElOTE9DSyhjdHJibGtfbG9jayk7DQogc3RhdGljIGNoYXIga2V5bGVuX2ZsYWc7DQogDQog c3RydWN0IHMzOTBfYWVzX2N0eCB7DQpAQCAtMzI0LDcgKzMyNiw4IEBAIHN0YXRpYyBpbnQgZWNi X2Flc19jcnlwdChzdHJ1Y3QgYmxrY2lwaGVyX2Rlc2MgKmRlc2MsIGxvbmcgZnVuYywgdm9pZCAq cGFyYW0sDQogCQl1OCAqaW4gPSB3YWxrLT5zcmMudmlydC5hZGRyOw0KIA0KIAkJcmV0ID0gY3J5 cHRfczM5MF9rbShmdW5jLCBwYXJhbSwgb3V0LCBpbiwgbik7DQotCQlCVUdfT04oKHJldCA8IDAp IHx8IChyZXQgIT0gbikpOw0KKwkJaWYgKHJldCA8IDAgfHwgcmV0ICE9IG4pDQorCQkJcmV0dXJu IC1FSU87DQogDQogCQluYnl0ZXMgJj0gQUVTX0JMT0NLX1NJWkUgLSAxOw0KIAkJcmV0ID0gYmxr Y2lwaGVyX3dhbGtfZG9uZShkZXNjLCB3YWxrLCBuYnl0ZXMpOw0KQEAgLTQ2Myw3ICs0NjYsOCBA QCBzdGF0aWMgaW50IGNiY19hZXNfY3J5cHQoc3RydWN0IGJsa2NpcGhlcl9kZXNjICpkZXNjLCBs b25nIGZ1bmMsDQogCQl1OCAqaW4gPSB3YWxrLT5zcmMudmlydC5hZGRyOw0KIA0KIAkJcmV0ID0g Y3J5cHRfczM5MF9rbWMoZnVuYywgJnBhcmFtLCBvdXQsIGluLCBuKTsNCi0JCUJVR19PTigocmV0 IDwgMCkgfHwgKHJldCAhPSBuKSk7DQorCQlpZiAocmV0IDwgMCB8fCByZXQgIT0gbikNCisJCQly ZXR1cm4gLUVJTzsNCiANCiAJCW5ieXRlcyAmPSBBRVNfQkxPQ0tfU0laRSAtIDE7DQogCQlyZXQg PSBibGtjaXBoZXJfd2Fsa19kb25lKGRlc2MsIHdhbGssIG5ieXRlcyk7DQpAQCAtNjM2LDcgKzY0 MCw4IEBAIHN0YXRpYyBpbnQgeHRzX2Flc19jcnlwdChzdHJ1Y3QgYmxrY2lwaGVyX2Rlc2MgKmRl c2MsIGxvbmcgZnVuYywNCiAJbWVtY3B5KHBjY19wYXJhbS50d2Vhaywgd2Fsay0+aXYsIHNpemVv ZihwY2NfcGFyYW0udHdlYWspKTsNCiAJbWVtY3B5KHBjY19wYXJhbS5rZXksIHh0c19jdHgtPnBj Y19rZXksIDMyKTsNCiAJcmV0ID0gY3J5cHRfczM5MF9wY2MoZnVuYywgJnBjY19wYXJhbS5rZXlb b2Zmc2V0XSk7DQotCUJVR19PTihyZXQgPCAwKTsNCisJaWYgKHJldCA8IDApDQorCQlyZXR1cm4g LUVJTzsNCiANCiAJbWVtY3B5KHh0c19wYXJhbS5rZXksIHh0c19jdHgtPmtleSwgMzIpOw0KIAlt ZW1jcHkoeHRzX3BhcmFtLmluaXQsIHBjY19wYXJhbS54dHMsIDE2KTsNCkBAIC02NDcsNyArNjUy LDggQEAgc3RhdGljIGludCB4dHNfYWVzX2NyeXB0KHN0cnVjdCBibGtjaXBoZXJfZGVzYyAqZGVz YywgbG9uZyBmdW5jLA0KIAkJaW4gPSB3YWxrLT5zcmMudmlydC5hZGRyOw0KIA0KIAkJcmV0ID0g Y3J5cHRfczM5MF9rbShmdW5jLCAmeHRzX3BhcmFtLmtleVtvZmZzZXRdLCBvdXQsIGluLCBuKTsN Ci0JCUJVR19PTihyZXQgPCAwIHx8IHJldCAhPSBuKTsNCisJCWlmIChyZXQgPCAwIHx8IHJldCAh PSBuKQ0KKwkJCXJldHVybiAtRUlPOw0KIA0KIAkJbmJ5dGVzICY9IEFFU19CTE9DS19TSVpFIC0g MTsNCiAJCXJldCA9IGJsa2NpcGhlcl93YWxrX2RvbmUoZGVzYywgd2FsaywgbmJ5dGVzKTsNCkBA IC03NTYsNDIgKzc2Miw2NyBAQCBzdGF0aWMgaW50IGN0cl9hZXNfc2V0X2tleShzdHJ1Y3QgY3J5 cHRvX3RmbSAqdGZtLCBjb25zdCB1OCAqaW5fa2V5LA0KIAlyZXR1cm4gYWVzX3NldF9rZXkodGZt LCBpbl9rZXksIGtleV9sZW4pOw0KIH0NCiANCitzdGF0aWMgdW5zaWduZWQgaW50IF9fY3RyYmxr X2luaXQodTggKmN0cnB0ciwgdW5zaWduZWQgaW50IG5ieXRlcykNCit7DQorCXVuc2lnbmVkIGlu dCBpLCBuOw0KKw0KKwkvKiBvbmx5IHVzZSBjb21wbGV0ZSBibG9ja3MsIG1heC4gUEFHRV9TSVpF ICovDQorCW4gPSAobmJ5dGVzID4gUEFHRV9TSVpFKSA/IFBBR0VfU0laRSA6IG5ieXRlcyAmIH4o QUVTX0JMT0NLX1NJWkUgLSAxKTsNCisJZm9yIChpID0gQUVTX0JMT0NLX1NJWkU7IGkgPCBuOyBp ICs9IEFFU19CTE9DS19TSVpFKSB7DQorCQltZW1jcHkoY3RycHRyICsgaSwgY3RycHRyICsgaSAt IEFFU19CTE9DS19TSVpFLA0KKwkJICAgICAgIEFFU19CTE9DS19TSVpFKTsNCisJCWNyeXB0b19p bmMoY3RycHRyICsgaSwgQUVTX0JMT0NLX1NJWkUpOw0KKwl9DQorCXJldHVybiBuOw0KK30NCisN CiBzdGF0aWMgaW50IGN0cl9hZXNfY3J5cHQoc3RydWN0IGJsa2NpcGhlcl9kZXNjICpkZXNjLCBs b25nIGZ1bmMsDQogCQkJIHN0cnVjdCBzMzkwX2Flc19jdHggKnNjdHgsIHN0cnVjdCBibGtjaXBo ZXJfd2FsayAqd2FsaykNCiB7DQogCWludCByZXQgPSBibGtjaXBoZXJfd2Fsa192aXJ0X2Jsb2Nr KGRlc2MsIHdhbGssIEFFU19CTE9DS19TSVpFKTsNCi0JdW5zaWduZWQgaW50IGksIG4sIG5ieXRl czsNCi0JdTggYnVmW0FFU19CTE9DS19TSVpFXTsNCi0JdTggKm91dCwgKmluOw0KKwl1bnNpZ25l ZCBpbnQgbiwgbmJ5dGVzOw0KKwl1OCBidWZbQUVTX0JMT0NLX1NJWkVdLCBjdHJidWZbQUVTX0JM T0NLX1NJWkVdOw0KKwl1OCAqb3V0LCAqaW4sICpjdHJwdHIgPSBjdHJidWY7DQogDQogCWlmICgh d2Fsay0+bmJ5dGVzKQ0KIAkJcmV0dXJuIHJldDsNCiANCi0JbWVtY3B5KGN0cmJsaywgd2Fsay0+ aXYsIEFFU19CTE9DS19TSVpFKTsNCisJaWYgKHNwaW5fdHJ5bG9jaygmY3RyYmxrX2xvY2spKQ0K KwkJY3RycHRyID0gY3RyYmxrOw0KKw0KKwltZW1jcHkoY3RycHRyLCB3YWxrLT5pdiwgQUVTX0JM T0NLX1NJWkUpOw0KIAl3aGlsZSAoKG5ieXRlcyA9IHdhbGstPm5ieXRlcykgPj0gQUVTX0JMT0NL X1NJWkUpIHsNCiAJCW91dCA9IHdhbGstPmRzdC52aXJ0LmFkZHI7DQogCQlpbiA9IHdhbGstPnNy Yy52aXJ0LmFkZHI7DQogCQl3aGlsZSAobmJ5dGVzID49IEFFU19CTE9DS19TSVpFKSB7DQotCQkJ Lyogb25seSB1c2UgY29tcGxldGUgYmxvY2tzLCBtYXguIFBBR0VfU0laRSAqLw0KLQkJCW4gPSAo bmJ5dGVzID4gUEFHRV9TSVpFKSA/IFBBR0VfU0laRSA6DQotCQkJCQkJIG5ieXRlcyAmIH4oQUVT X0JMT0NLX1NJWkUgLSAxKTsNCi0JCQlmb3IgKGkgPSBBRVNfQkxPQ0tfU0laRTsgaSA8IG47IGkg Kz0gQUVTX0JMT0NLX1NJWkUpIHsNCi0JCQkJbWVtY3B5KGN0cmJsayArIGksIGN0cmJsayArIGkg LSBBRVNfQkxPQ0tfU0laRSwNCi0JCQkJICAgICAgIEFFU19CTE9DS19TSVpFKTsNCi0JCQkJY3J5 cHRvX2luYyhjdHJibGsgKyBpLCBBRVNfQkxPQ0tfU0laRSk7DQorCQkJaWYgKGN0cnB0ciA9PSBj dHJibGspDQorCQkJCW4gPSBfX2N0cmJsa19pbml0KGN0cnB0ciwgbmJ5dGVzKTsNCisJCQllbHNl DQorCQkJCW4gPSBBRVNfQkxPQ0tfU0laRTsNCisJCQlyZXQgPSBjcnlwdF9zMzkwX2ttY3RyKGZ1 bmMsIHNjdHgtPmtleSwgb3V0LCBpbiwNCisJCQkJCSAgICAgICBuLCBjdHJwdHIpOw0KKwkJCWlm IChyZXQgPCAwIHx8IHJldCAhPSBuKSB7DQorCQkJCWlmIChjdHJwdHIgPT0gY3RyYmxrKQ0KKwkJ CQkJc3Bpbl91bmxvY2soJmN0cmJsa19sb2NrKTsNCisJCQkJcmV0dXJuIC1FSU87DQogCQkJfQ0K LQkJCXJldCA9IGNyeXB0X3MzOTBfa21jdHIoZnVuYywgc2N0eC0+a2V5LCBvdXQsIGluLCBuLCBj dHJibGspOw0KLQkJCUJVR19PTihyZXQgPCAwIHx8IHJldCAhPSBuKTsNCiAJCQlpZiAobiA+IEFF U19CTE9DS19TSVpFKQ0KLQkJCQltZW1jcHkoY3RyYmxrLCBjdHJibGsgKyBuIC0gQUVTX0JMT0NL X1NJWkUsDQorCQkJCW1lbWNweShjdHJwdHIsIGN0cnB0ciArIG4gLSBBRVNfQkxPQ0tfU0laRSwN CiAJCQkJICAgICAgIEFFU19CTE9DS19TSVpFKTsNCi0JCQljcnlwdG9faW5jKGN0cmJsaywgQUVT X0JMT0NLX1NJWkUpOw0KKwkJCWNyeXB0b19pbmMoY3RycHRyLCBBRVNfQkxPQ0tfU0laRSk7DQog CQkJb3V0ICs9IG47DQogCQkJaW4gKz0gbjsNCiAJCQluYnl0ZXMgLT0gbjsNCiAJCX0NCiAJCXJl dCA9IGJsa2NpcGhlcl93YWxrX2RvbmUoZGVzYywgd2FsaywgbmJ5dGVzKTsNCiAJfQ0KKwlpZiAo Y3RycHRyID09IGN0cmJsaykgew0KKwkJaWYgKG5ieXRlcykNCisJCQltZW1jcHkoY3RyYnVmLCBj dHJwdHIsIEFFU19CTE9DS19TSVpFKTsNCisJCWVsc2UNCisJCQltZW1jcHkod2Fsay0+aXYsIGN0 cnB0ciwgQUVTX0JMT0NLX1NJWkUpOw0KKwkJc3Bpbl91bmxvY2soJmN0cmJsa19sb2NrKTsNCisJ fQ0KIAkvKg0KIAkgKiBmaW5hbCBibG9jayBtYXkgYmUgPCBBRVNfQkxPQ0tfU0laRSwgY29weSBv bmx5IG5ieXRlcw0KIAkgKi8NCkBAIC03OTksMTMgKzgzMCwxNSBAQCBzdGF0aWMgaW50IGN0cl9h ZXNfY3J5cHQoc3RydWN0IGJsa2NpcGhlcl9kZXNjICpkZXNjLCBsb25nIGZ1bmMsDQogCQlvdXQg PSB3YWxrLT5kc3QudmlydC5hZGRyOw0KIAkJaW4gPSB3YWxrLT5zcmMudmlydC5hZGRyOw0KIAkJ cmV0ID0gY3J5cHRfczM5MF9rbWN0cihmdW5jLCBzY3R4LT5rZXksIGJ1ZiwgaW4sDQotCQkJCSAg ICAgICBBRVNfQkxPQ0tfU0laRSwgY3RyYmxrKTsNCi0JCUJVR19PTihyZXQgPCAwIHx8IHJldCAh PSBBRVNfQkxPQ0tfU0laRSk7DQorCQkJCSAgICAgICBBRVNfQkxPQ0tfU0laRSwgY3RyYnVmKTsN CisJCWlmIChyZXQgPCAwIHx8IHJldCAhPSBBRVNfQkxPQ0tfU0laRSkNCisJCQlyZXR1cm4gLUVJ TzsNCiAJCW1lbWNweShvdXQsIGJ1ZiwgbmJ5dGVzKTsNCi0JCWNyeXB0b19pbmMoY3RyYmxrLCBB RVNfQkxPQ0tfU0laRSk7DQorCQljcnlwdG9faW5jKGN0cmJ1ZiwgQUVTX0JMT0NLX1NJWkUpOw0K IAkJcmV0ID0gYmxrY2lwaGVyX3dhbGtfZG9uZShkZXNjLCB3YWxrLCAwKTsNCisJCW1lbWNweSh3 YWxrLT5pdiwgY3RyYnVmLCBBRVNfQkxPQ0tfU0laRSk7DQogCX0NCi0JbWVtY3B5KHdhbGstPml2 LCBjdHJibGssIEFFU19CTE9DS19TSVpFKTsNCisNCiAJcmV0dXJuIHJldDsNCiB9DQogDQpkaWZm IC0tZ2l0IGEvYXJjaC9zMzkwL2NyeXB0by9kZXNfczM5MC5jIGIvYXJjaC9zMzkwL2NyeXB0by9k ZXNfczM5MC5jDQppbmRleCBhNTJiZmQxLi45OTFmYjdkIDEwMDY0NA0KLS0tIGEvYXJjaC9zMzkw L2NyeXB0by9kZXNfczM5MC5jDQorKysgYi9hcmNoL3MzOTAvY3J5cHRvL2Rlc19zMzkwLmMNCkBA IC0yNSw2ICsyNSw3IEBADQogI2RlZmluZSBERVMzX0tFWV9TSVpFCSgzICogREVTX0tFWV9TSVpF KQ0KIA0KIHN0YXRpYyB1OCAqY3RyYmxrOw0KK3N0YXRpYyBERUZJTkVfU1BJTkxPQ0soY3RyYmxr X2xvY2spOw0KIA0KIHN0cnVjdCBzMzkwX2Rlc19jdHggew0KIAl1OCBpdltERVNfQkxPQ0tfU0la RV07DQpAQCAtOTUsNyArOTYsOCBAQCBzdGF0aWMgaW50IGVjYl9kZXNhbGxfY3J5cHQoc3RydWN0 IGJsa2NpcGhlcl9kZXNjICpkZXNjLCBsb25nIGZ1bmMsDQogCQl1OCAqaW4gPSB3YWxrLT5zcmMu dmlydC5hZGRyOw0KIA0KIAkJcmV0ID0gY3J5cHRfczM5MF9rbShmdW5jLCBrZXksIG91dCwgaW4s IG4pOw0KLQkJQlVHX09OKChyZXQgPCAwKSB8fCAocmV0ICE9IG4pKTsNCisJCWlmIChyZXQgPCAw IHx8IHJldCAhPSBuKQ0KKwkJCXJldHVybiAtRUlPOw0KIA0KIAkJbmJ5dGVzICY9IERFU19CTE9D S19TSVpFIC0gMTsNCiAJCXJldCA9IGJsa2NpcGhlcl93YWxrX2RvbmUoZGVzYywgd2FsaywgbmJ5 dGVzKTsNCkBAIC0xMDUsMjggKzEwNywzNSBAQCBzdGF0aWMgaW50IGVjYl9kZXNhbGxfY3J5cHQo c3RydWN0IGJsa2NpcGhlcl9kZXNjICpkZXNjLCBsb25nIGZ1bmMsDQogfQ0KIA0KIHN0YXRpYyBp bnQgY2JjX2Rlc2FsbF9jcnlwdChzdHJ1Y3QgYmxrY2lwaGVyX2Rlc2MgKmRlc2MsIGxvbmcgZnVu YywNCi0JCQkgICAgdTggKml2LCBzdHJ1Y3QgYmxrY2lwaGVyX3dhbGsgKndhbGspDQorCQkJICAg IHN0cnVjdCBibGtjaXBoZXJfd2FsayAqd2FsaykNCiB7DQorCXN0cnVjdCBzMzkwX2Rlc19jdHgg KmN0eCA9IGNyeXB0b19ibGtjaXBoZXJfY3R4KGRlc2MtPnRmbSk7DQogCWludCByZXQgPSBibGtj aXBoZXJfd2Fsa192aXJ0KGRlc2MsIHdhbGspOw0KIAl1bnNpZ25lZCBpbnQgbmJ5dGVzID0gd2Fs ay0+bmJ5dGVzOw0KKwlzdHJ1Y3Qgew0KKwkJdTggaXZbREVTX0JMT0NLX1NJWkVdOw0KKwkJdTgg a2V5W0RFUzNfS0VZX1NJWkVdOw0KKwl9IHBhcmFtOw0KIA0KIAlpZiAoIW5ieXRlcykNCiAJCWdv dG8gb3V0Ow0KIA0KLQltZW1jcHkoaXYsIHdhbGstPml2LCBERVNfQkxPQ0tfU0laRSk7DQorCW1l bWNweShwYXJhbS5pdiwgd2Fsay0+aXYsIERFU19CTE9DS19TSVpFKTsNCisJbWVtY3B5KHBhcmFt LmtleSwgY3R4LT5rZXksIERFUzNfS0VZX1NJWkUpOw0KIAlkbyB7DQogCQkvKiBvbmx5IHVzZSBj b21wbGV0ZSBibG9ja3MgKi8NCiAJCXVuc2lnbmVkIGludCBuID0gbmJ5dGVzICYgfihERVNfQkxP Q0tfU0laRSAtIDEpOw0KIAkJdTggKm91dCA9IHdhbGstPmRzdC52aXJ0LmFkZHI7DQogCQl1OCAq aW4gPSB3YWxrLT5zcmMudmlydC5hZGRyOw0KIA0KLQkJcmV0ID0gY3J5cHRfczM5MF9rbWMoZnVu YywgaXYsIG91dCwgaW4sIG4pOw0KLQkJQlVHX09OKChyZXQgPCAwKSB8fCAocmV0ICE9IG4pKTsN CisJCXJldCA9IGNyeXB0X3MzOTBfa21jKGZ1bmMsICZwYXJhbSwgb3V0LCBpbiwgbik7DQorCQlp ZiAocmV0IDwgMCB8fCByZXQgIT0gbikNCisJCQlyZXR1cm4gLUVJTzsNCiANCiAJCW5ieXRlcyAm PSBERVNfQkxPQ0tfU0laRSAtIDE7DQogCQlyZXQgPSBibGtjaXBoZXJfd2Fsa19kb25lKGRlc2Ms IHdhbGssIG5ieXRlcyk7DQogCX0gd2hpbGUgKChuYnl0ZXMgPSB3YWxrLT5uYnl0ZXMpKTsNCi0J bWVtY3B5KHdhbGstPml2LCBpdiwgREVTX0JMT0NLX1NJWkUpOw0KKwltZW1jcHkod2Fsay0+aXYs IHBhcmFtLml2LCBERVNfQkxPQ0tfU0laRSk7DQogDQogb3V0Og0KIAlyZXR1cm4gcmV0Ow0KQEAg LTE3OSwyMiArMTg4LDIwIEBAIHN0YXRpYyBpbnQgY2JjX2Rlc19lbmNyeXB0KHN0cnVjdCBibGtj aXBoZXJfZGVzYyAqZGVzYywNCiAJCQkgICBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKmRzdCwgc3RydWN0 IHNjYXR0ZXJsaXN0ICpzcmMsDQogCQkJICAgdW5zaWduZWQgaW50IG5ieXRlcykNCiB7DQotCXN0 cnVjdCBzMzkwX2Rlc19jdHggKmN0eCA9IGNyeXB0b19ibGtjaXBoZXJfY3R4KGRlc2MtPnRmbSk7 DQogCXN0cnVjdCBibGtjaXBoZXJfd2FsayB3YWxrOw0KIA0KIAlibGtjaXBoZXJfd2Fsa19pbml0 KCZ3YWxrLCBkc3QsIHNyYywgbmJ5dGVzKTsNCi0JcmV0dXJuIGNiY19kZXNhbGxfY3J5cHQoZGVz YywgS01DX0RFQV9FTkNSWVBULCBjdHgtPml2LCAmd2Fsayk7DQorCXJldHVybiBjYmNfZGVzYWxs X2NyeXB0KGRlc2MsIEtNQ19ERUFfRU5DUllQVCwgJndhbGspOw0KIH0NCiANCiBzdGF0aWMgaW50 IGNiY19kZXNfZGVjcnlwdChzdHJ1Y3QgYmxrY2lwaGVyX2Rlc2MgKmRlc2MsDQogCQkJICAgc3Ry dWN0IHNjYXR0ZXJsaXN0ICpkc3QsIHN0cnVjdCBzY2F0dGVybGlzdCAqc3JjLA0KIAkJCSAgIHVu c2lnbmVkIGludCBuYnl0ZXMpDQogew0KLQlzdHJ1Y3QgczM5MF9kZXNfY3R4ICpjdHggPSBjcnlw dG9fYmxrY2lwaGVyX2N0eChkZXNjLT50Zm0pOw0KIAlzdHJ1Y3QgYmxrY2lwaGVyX3dhbGsgd2Fs azsNCiANCiAJYmxrY2lwaGVyX3dhbGtfaW5pdCgmd2FsaywgZHN0LCBzcmMsIG5ieXRlcyk7DQot CXJldHVybiBjYmNfZGVzYWxsX2NyeXB0KGRlc2MsIEtNQ19ERUFfREVDUllQVCwgY3R4LT5pdiwg JndhbGspOw0KKwlyZXR1cm4gY2JjX2Rlc2FsbF9jcnlwdChkZXNjLCBLTUNfREVBX0RFQ1JZUFQs ICZ3YWxrKTsNCiB9DQogDQogc3RhdGljIHN0cnVjdCBjcnlwdG9fYWxnIGNiY19kZXNfYWxnID0g ew0KQEAgLTMzMSwyMiArMzM4LDIwIEBAIHN0YXRpYyBpbnQgY2JjX2RlczNfZW5jcnlwdChzdHJ1 Y3QgYmxrY2lwaGVyX2Rlc2MgKmRlc2MsDQogCQkJICAgIHN0cnVjdCBzY2F0dGVybGlzdCAqZHN0 LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNyYywNCiAJCQkgICAgdW5zaWduZWQgaW50IG5ieXRlcykN CiB7DQotCXN0cnVjdCBzMzkwX2Rlc19jdHggKmN0eCA9IGNyeXB0b19ibGtjaXBoZXJfY3R4KGRl c2MtPnRmbSk7DQogCXN0cnVjdCBibGtjaXBoZXJfd2FsayB3YWxrOw0KIA0KIAlibGtjaXBoZXJf d2Fsa19pbml0KCZ3YWxrLCBkc3QsIHNyYywgbmJ5dGVzKTsNCi0JcmV0dXJuIGNiY19kZXNhbGxf Y3J5cHQoZGVzYywgS01DX1RERUFfMTkyX0VOQ1JZUFQsIGN0eC0+aXYsICZ3YWxrKTsNCisJcmV0 dXJuIGNiY19kZXNhbGxfY3J5cHQoZGVzYywgS01DX1RERUFfMTkyX0VOQ1JZUFQsICZ3YWxrKTsN CiB9DQogDQogc3RhdGljIGludCBjYmNfZGVzM19kZWNyeXB0KHN0cnVjdCBibGtjaXBoZXJfZGVz YyAqZGVzYywNCiAJCQkgICAgc3RydWN0IHNjYXR0ZXJsaXN0ICpkc3QsIHN0cnVjdCBzY2F0dGVy bGlzdCAqc3JjLA0KIAkJCSAgICB1bnNpZ25lZCBpbnQgbmJ5dGVzKQ0KIHsNCi0Jc3RydWN0IHMz OTBfZGVzX2N0eCAqY3R4ID0gY3J5cHRvX2Jsa2NpcGhlcl9jdHgoZGVzYy0+dGZtKTsNCiAJc3Ry dWN0IGJsa2NpcGhlcl93YWxrIHdhbGs7DQogDQogCWJsa2NpcGhlcl93YWxrX2luaXQoJndhbGss IGRzdCwgc3JjLCBuYnl0ZXMpOw0KLQlyZXR1cm4gY2JjX2Rlc2FsbF9jcnlwdChkZXNjLCBLTUNf VERFQV8xOTJfREVDUllQVCwgY3R4LT5pdiwgJndhbGspOw0KKwlyZXR1cm4gY2JjX2Rlc2FsbF9j cnlwdChkZXNjLCBLTUNfVERFQV8xOTJfREVDUllQVCwgJndhbGspOw0KIH0NCiANCiBzdGF0aWMg c3RydWN0IGNyeXB0b19hbGcgY2JjX2RlczNfYWxnID0gew0KQEAgLTM3Miw1MiArMzc3LDgwIEBA IHN0YXRpYyBzdHJ1Y3QgY3J5cHRvX2FsZyBjYmNfZGVzM19hbGcgPSB7DQogCX0NCiB9Ow0KIA0K K3N0YXRpYyB1bnNpZ25lZCBpbnQgX19jdHJibGtfaW5pdCh1OCAqY3RycHRyLCB1bnNpZ25lZCBp bnQgbmJ5dGVzKQ0KK3sNCisJdW5zaWduZWQgaW50IGksIG47DQorDQorCS8qIGFsaWduIHRvIGJs b2NrIHNpemUsIG1heC4gUEFHRV9TSVpFICovDQorCW4gPSAobmJ5dGVzID4gUEFHRV9TSVpFKSA/ IFBBR0VfU0laRSA6IG5ieXRlcyAmIH4oREVTX0JMT0NLX1NJWkUgLSAxKTsNCisJZm9yIChpID0g REVTX0JMT0NLX1NJWkU7IGkgPCBuOyBpICs9IERFU19CTE9DS19TSVpFKSB7DQorCQltZW1jcHko Y3RycHRyICsgaSwgY3RycHRyICsgaSAtIERFU19CTE9DS19TSVpFLCBERVNfQkxPQ0tfU0laRSk7 DQorCQljcnlwdG9faW5jKGN0cnB0ciArIGksIERFU19CTE9DS19TSVpFKTsNCisJfQ0KKwlyZXR1 cm4gbjsNCit9DQorDQogc3RhdGljIGludCBjdHJfZGVzYWxsX2NyeXB0KHN0cnVjdCBibGtjaXBo ZXJfZGVzYyAqZGVzYywgbG9uZyBmdW5jLA0KLQkJCSAgICBzdHJ1Y3QgczM5MF9kZXNfY3R4ICpj dHgsIHN0cnVjdCBibGtjaXBoZXJfd2FsayAqd2FsaykNCisJCQkgICAgc3RydWN0IHMzOTBfZGVz X2N0eCAqY3R4LA0KKwkJCSAgICBzdHJ1Y3QgYmxrY2lwaGVyX3dhbGsgKndhbGspDQogew0KIAlp bnQgcmV0ID0gYmxrY2lwaGVyX3dhbGtfdmlydF9ibG9jayhkZXNjLCB3YWxrLCBERVNfQkxPQ0tf U0laRSk7DQotCXVuc2lnbmVkIGludCBpLCBuLCBuYnl0ZXM7DQotCXU4IGJ1ZltERVNfQkxPQ0tf U0laRV07DQotCXU4ICpvdXQsICppbjsNCisJdW5zaWduZWQgaW50IG4sIG5ieXRlczsNCisJdTgg YnVmW0RFU19CTE9DS19TSVpFXSwgY3RyYnVmW0RFU19CTE9DS19TSVpFXTsNCisJdTggKm91dCwg KmluLCAqY3RycHRyID0gY3RyYnVmOw0KKw0KKwlpZiAoIXdhbGstPm5ieXRlcykNCisJCXJldHVy biByZXQ7DQorDQorCWlmIChzcGluX3RyeWxvY2soJmN0cmJsa19sb2NrKSkNCisJCWN0cnB0ciA9 IGN0cmJsazsNCiANCi0JbWVtY3B5KGN0cmJsaywgd2Fsay0+aXYsIERFU19CTE9DS19TSVpFKTsN CisJbWVtY3B5KGN0cnB0ciwgd2Fsay0+aXYsIERFU19CTE9DS19TSVpFKTsNCiAJd2hpbGUgKChu Ynl0ZXMgPSB3YWxrLT5uYnl0ZXMpID49IERFU19CTE9DS19TSVpFKSB7DQogCQlvdXQgPSB3YWxr LT5kc3QudmlydC5hZGRyOw0KIAkJaW4gPSB3YWxrLT5zcmMudmlydC5hZGRyOw0KIAkJd2hpbGUg KG5ieXRlcyA+PSBERVNfQkxPQ0tfU0laRSkgew0KLQkJCS8qIGFsaWduIHRvIGJsb2NrIHNpemUs IG1heC4gUEFHRV9TSVpFICovDQotCQkJbiA9IChuYnl0ZXMgPiBQQUdFX1NJWkUpID8gUEFHRV9T SVpFIDoNCi0JCQkJbmJ5dGVzICYgfihERVNfQkxPQ0tfU0laRSAtIDEpOw0KLQkJCWZvciAoaSA9 IERFU19CTE9DS19TSVpFOyBpIDwgbjsgaSArPSBERVNfQkxPQ0tfU0laRSkgew0KLQkJCQltZW1j cHkoY3RyYmxrICsgaSwgY3RyYmxrICsgaSAtIERFU19CTE9DS19TSVpFLA0KLQkJCQkgICAgICAg REVTX0JMT0NLX1NJWkUpOw0KLQkJCQljcnlwdG9faW5jKGN0cmJsayArIGksIERFU19CTE9DS19T SVpFKTsNCisJCQlpZiAoY3RycHRyID09IGN0cmJsaykNCisJCQkJbiA9IF9fY3RyYmxrX2luaXQo Y3RycHRyLCBuYnl0ZXMpOw0KKwkJCWVsc2UNCisJCQkJbiA9IERFU19CTE9DS19TSVpFOw0KKwkJ CXJldCA9IGNyeXB0X3MzOTBfa21jdHIoZnVuYywgY3R4LT5rZXksIG91dCwgaW4sDQorCQkJCQkg ICAgICAgbiwgY3RycHRyKTsNCisJCQlpZiAocmV0IDwgMCB8fCByZXQgIT0gbikgew0KKwkJCQlp ZiAoY3RycHRyID09IGN0cmJsaykNCisJCQkJCXNwaW5fdW5sb2NrKCZjdHJibGtfbG9jayk7DQor CQkJCXJldHVybiAtRUlPOw0KIAkJCX0NCi0JCQlyZXQgPSBjcnlwdF9zMzkwX2ttY3RyKGZ1bmMs IGN0eC0+a2V5LCBvdXQsIGluLCBuLCBjdHJibGspOw0KLQkJCUJVR19PTigocmV0IDwgMCkgfHwg KHJldCAhPSBuKSk7DQogCQkJaWYgKG4gPiBERVNfQkxPQ0tfU0laRSkNCi0JCQkJbWVtY3B5KGN0 cmJsaywgY3RyYmxrICsgbiAtIERFU19CTE9DS19TSVpFLA0KKwkJCQltZW1jcHkoY3RycHRyLCBj dHJwdHIgKyBuIC0gREVTX0JMT0NLX1NJWkUsDQogCQkJCSAgICAgICBERVNfQkxPQ0tfU0laRSk7 DQotCQkJY3J5cHRvX2luYyhjdHJibGssIERFU19CTE9DS19TSVpFKTsNCisJCQljcnlwdG9faW5j KGN0cnB0ciwgREVTX0JMT0NLX1NJWkUpOw0KIAkJCW91dCArPSBuOw0KIAkJCWluICs9IG47DQog CQkJbmJ5dGVzIC09IG47DQogCQl9DQogCQlyZXQgPSBibGtjaXBoZXJfd2Fsa19kb25lKGRlc2Ms IHdhbGssIG5ieXRlcyk7DQogCX0NCi0NCisJaWYgKGN0cnB0ciA9PSBjdHJibGspIHsNCisJCWlm IChuYnl0ZXMpDQorCQkJbWVtY3B5KGN0cmJ1ZiwgY3RycHRyLCBERVNfQkxPQ0tfU0laRSk7DQor CQllbHNlDQorCQkJbWVtY3B5KHdhbGstPml2LCBjdHJwdHIsIERFU19CTE9DS19TSVpFKTsNCisJ CXNwaW5fdW5sb2NrKCZjdHJibGtfbG9jayk7DQorCX0NCiAJLyogZmluYWwgYmxvY2sgbWF5IGJl IDwgREVTX0JMT0NLX1NJWkUsIGNvcHkgb25seSBuYnl0ZXMgKi8NCiAJaWYgKG5ieXRlcykgew0K IAkJb3V0ID0gd2Fsay0+ZHN0LnZpcnQuYWRkcjsNCiAJCWluID0gd2Fsay0+c3JjLnZpcnQuYWRk cjsNCiAJCXJldCA9IGNyeXB0X3MzOTBfa21jdHIoZnVuYywgY3R4LT5rZXksIGJ1ZiwgaW4sDQot CQkJCSAgICAgICBERVNfQkxPQ0tfU0laRSwgY3RyYmxrKTsNCi0JCUJVR19PTihyZXQgPCAwIHx8 IHJldCAhPSBERVNfQkxPQ0tfU0laRSk7DQorCQkJCSAgICAgICBERVNfQkxPQ0tfU0laRSwgY3Ry YnVmKTsNCisJCWlmIChyZXQgPCAwIHx8IHJldCAhPSBERVNfQkxPQ0tfU0laRSkNCisJCQlyZXR1 cm4gLUVJTzsNCiAJCW1lbWNweShvdXQsIGJ1ZiwgbmJ5dGVzKTsNCi0JCWNyeXB0b19pbmMoY3Ry YmxrLCBERVNfQkxPQ0tfU0laRSk7DQorCQljcnlwdG9faW5jKGN0cmJ1ZiwgREVTX0JMT0NLX1NJ WkUpOw0KIAkJcmV0ID0gYmxrY2lwaGVyX3dhbGtfZG9uZShkZXNjLCB3YWxrLCAwKTsNCisJCW1l bWNweSh3YWxrLT5pdiwgY3RyYnVmLCBERVNfQkxPQ0tfU0laRSk7DQogCX0NCi0JbWVtY3B5KHdh bGstPml2LCBjdHJibGssIERFU19CTE9DS19TSVpFKTsNCiAJcmV0dXJuIHJldDsNCiB9DQogDQpk aWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2NyeXB0by9naGFzaF9zMzkwLmMgYi9hcmNoL3MzOTAvY3J5 cHRvL2doYXNoX3MzOTAuYw0KaW5kZXggYjFiZDE3MC4uZjYzNzNmMCAxMDA2NDQNCi0tLSBhL2Fy Y2gvczM5MC9jcnlwdG8vZ2hhc2hfczM5MC5jDQorKysgYi9hcmNoL3MzOTAvY3J5cHRvL2doYXNo X3MzOTAuYw0KQEAgLTcyLDE0ICs3MiwxNiBAQCBzdGF0aWMgaW50IGdoYXNoX3VwZGF0ZShzdHJ1 Y3Qgc2hhc2hfZGVzYyAqZGVzYywNCiAJCWlmICghZGN0eC0+Ynl0ZXMpIHsNCiAJCQlyZXQgPSBj cnlwdF9zMzkwX2tpbWQoS0lNRF9HSEFTSCwgY3R4LCBidWYsDQogCQkJCQkgICAgICBHSEFTSF9C TE9DS19TSVpFKTsNCi0JCQlCVUdfT04ocmV0ICE9IEdIQVNIX0JMT0NLX1NJWkUpOw0KKwkJCWlm IChyZXQgIT0gR0hBU0hfQkxPQ0tfU0laRSkNCisJCQkJcmV0dXJuIC1FSU87DQogCQl9DQogCX0N CiANCiAJbiA9IHNyY2xlbiAmIH4oR0hBU0hfQkxPQ0tfU0laRSAtIDEpOw0KIAlpZiAobikgew0K IAkJcmV0ID0gY3J5cHRfczM5MF9raW1kKEtJTURfR0hBU0gsIGN0eCwgc3JjLCBuKTsNCi0JCUJV R19PTihyZXQgIT0gbik7DQorCQlpZiAocmV0ICE9IG4pDQorCQkJcmV0dXJuIC1FSU87DQogCQlz cmMgKz0gbjsNCiAJCXNyY2xlbiAtPSBuOw0KIAl9DQpAQCAtOTIsNyArOTQsNyBAQCBzdGF0aWMg aW50IGdoYXNoX3VwZGF0ZShzdHJ1Y3Qgc2hhc2hfZGVzYyAqZGVzYywNCiAJcmV0dXJuIDA7DQog fQ0KIA0KLXN0YXRpYyB2b2lkIGdoYXNoX2ZsdXNoKHN0cnVjdCBnaGFzaF9jdHggKmN0eCwgc3Ry dWN0IGdoYXNoX2Rlc2NfY3R4ICpkY3R4KQ0KK3N0YXRpYyBpbnQgZ2hhc2hfZmx1c2goc3RydWN0 IGdoYXNoX2N0eCAqY3R4LCBzdHJ1Y3QgZ2hhc2hfZGVzY19jdHggKmRjdHgpDQogew0KIAl1OCAq YnVmID0gZGN0eC0+YnVmZmVyOw0KIAlpbnQgcmV0Ow0KQEAgLTEwMywyMSArMTA1LDI0IEBAIHN0 YXRpYyB2b2lkIGdoYXNoX2ZsdXNoKHN0cnVjdCBnaGFzaF9jdHggKmN0eCwgc3RydWN0IGdoYXNo X2Rlc2NfY3R4ICpkY3R4KQ0KIAkJbWVtc2V0KHBvcywgMCwgZGN0eC0+Ynl0ZXMpOw0KIA0KIAkJ cmV0ID0gY3J5cHRfczM5MF9raW1kKEtJTURfR0hBU0gsIGN0eCwgYnVmLCBHSEFTSF9CTE9DS19T SVpFKTsNCi0JCUJVR19PTihyZXQgIT0gR0hBU0hfQkxPQ0tfU0laRSk7DQorCQlpZiAocmV0ICE9 IEdIQVNIX0JMT0NLX1NJWkUpDQorCQkJcmV0dXJuIC1FSU87DQogCX0NCiANCiAJZGN0eC0+Ynl0 ZXMgPSAwOw0KKwlyZXR1cm4gMDsNCiB9DQogDQogc3RhdGljIGludCBnaGFzaF9maW5hbChzdHJ1 Y3Qgc2hhc2hfZGVzYyAqZGVzYywgdTggKmRzdCkNCiB7DQogCXN0cnVjdCBnaGFzaF9kZXNjX2N0 eCAqZGN0eCA9IHNoYXNoX2Rlc2NfY3R4KGRlc2MpOw0KIAlzdHJ1Y3QgZ2hhc2hfY3R4ICpjdHgg PSBjcnlwdG9fc2hhc2hfY3R4KGRlc2MtPnRmbSk7DQorCWludCByZXQ7DQogDQotCWdoYXNoX2Zs dXNoKGN0eCwgZGN0eCk7DQotCW1lbWNweShkc3QsIGN0eC0+aWN2LCBHSEFTSF9CTE9DS19TSVpF KTsNCi0NCi0JcmV0dXJuIDA7DQorCXJldCA9IGdoYXNoX2ZsdXNoKGN0eCwgZGN0eCk7DQorCWlm ICghcmV0KQ0KKwkJbWVtY3B5KGRzdCwgY3R4LT5pY3YsIEdIQVNIX0JMT0NLX1NJWkUpOw0KKwly ZXR1cm4gcmV0Ow0KIH0NCiANCiBzdGF0aWMgc3RydWN0IHNoYXNoX2FsZyBnaGFzaF9hbGcgPSB7 DQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2NyeXB0by9zaGFfY29tbW9uLmMgYi9hcmNoL3MzOTAv Y3J5cHRvL3NoYV9jb21tb24uYw0KaW5kZXggYmQzN2QwOS4uODYyMGIwZSAxMDA2NDQNCi0tLSBh L2FyY2gvczM5MC9jcnlwdG8vc2hhX2NvbW1vbi5jDQorKysgYi9hcmNoL3MzOTAvY3J5cHRvL3No YV9jb21tb24uYw0KQEAgLTM2LDcgKzM2LDggQEAgaW50IHMzOTBfc2hhX3VwZGF0ZShzdHJ1Y3Qg c2hhc2hfZGVzYyAqZGVzYywgY29uc3QgdTggKmRhdGEsIHVuc2lnbmVkIGludCBsZW4pDQogCWlm IChpbmRleCkgew0KIAkJbWVtY3B5KGN0eC0+YnVmICsgaW5kZXgsIGRhdGEsIGJzaXplIC0gaW5k ZXgpOw0KIAkJcmV0ID0gY3J5cHRfczM5MF9raW1kKGN0eC0+ZnVuYywgY3R4LT5zdGF0ZSwgY3R4 LT5idWYsIGJzaXplKTsNCi0JCUJVR19PTihyZXQgIT0gYnNpemUpOw0KKwkJaWYgKHJldCAhPSBi c2l6ZSkNCisJCQlyZXR1cm4gLUVJTzsNCiAJCWRhdGEgKz0gYnNpemUgLSBpbmRleDsNCiAJCWxl biAtPSBic2l6ZSAtIGluZGV4Ow0KIAkJaW5kZXggPSAwOw0KQEAgLTQ2LDcgKzQ3LDggQEAgaW50 IHMzOTBfc2hhX3VwZGF0ZShzdHJ1Y3Qgc2hhc2hfZGVzYyAqZGVzYywgY29uc3QgdTggKmRhdGEs IHVuc2lnbmVkIGludCBsZW4pDQogCWlmIChsZW4gPj0gYnNpemUpIHsNCiAJCXJldCA9IGNyeXB0 X3MzOTBfa2ltZChjdHgtPmZ1bmMsIGN0eC0+c3RhdGUsIGRhdGEsDQogCQkJCSAgICAgIGxlbiAm IH4oYnNpemUgLSAxKSk7DQotCQlCVUdfT04ocmV0ICE9IChsZW4gJiB+KGJzaXplIC0gMSkpKTsN CisJCWlmIChyZXQgIT0gKGxlbiAmIH4oYnNpemUgLSAxKSkpDQorCQkJcmV0dXJuIC1FSU87DQog CQlkYXRhICs9IHJldDsNCiAJCWxlbiAtPSByZXQ7DQogCX0NCkBAIC04OCw3ICs5MCw4IEBAIGlu dCBzMzkwX3NoYV9maW5hbChzdHJ1Y3Qgc2hhc2hfZGVzYyAqZGVzYywgdTggKm91dCkNCiAJbWVt Y3B5KGN0eC0+YnVmICsgZW5kIC0gOCwgJmJpdHMsIHNpemVvZihiaXRzKSk7DQogDQogCXJldCA9 IGNyeXB0X3MzOTBfa2ltZChjdHgtPmZ1bmMsIGN0eC0+c3RhdGUsIGN0eC0+YnVmLCBlbmQpOw0K LQlCVUdfT04ocmV0ICE9IGVuZCk7DQorCWlmIChyZXQgIT0gZW5kKQ0KKwkJcmV0dXJuIC1FSU87 DQogDQogCS8qIGNvcHkgZGlnZXN0IHRvIG91dCAqLw0KIAltZW1jcHkob3V0LCBjdHgtPnN0YXRl LCBjcnlwdG9fc2hhc2hfZGlnZXN0c2l6ZShkZXNjLT50Zm0pKTsNCmRpZmYgLS1naXQgYS9hcmNo L3MzOTAvbW0vcGFnZS1zdGF0ZXMuYyBiL2FyY2gvczM5MC9tbS9wYWdlLXN0YXRlcy5jDQppbmRl eCBhOTBkNDVlLi4yN2M1MGY0IDEwMDY0NA0KLS0tIGEvYXJjaC9zMzkwL21tL3BhZ2Utc3RhdGVz LmMNCisrKyBiL2FyY2gvczM5MC9tbS9wYWdlLXN0YXRlcy5jDQpAQCAtMTIsNiArMTIsOCBAQA0K ICNpbmNsdWRlIDxsaW51eC9tbS5oPg0KICNpbmNsdWRlIDxsaW51eC9nZnAuaD4NCiAjaW5jbHVk ZSA8bGludXgvaW5pdC5oPg0KKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4NCisjaW5jbHVkZSA8YXNt L2lwbC5oPg0KIA0KICNkZWZpbmUgRVNTQV9TRVRfU1RBQkxFCQkxDQogI2RlZmluZSBFU1NBX1NF VF9VTlVTRUQJCTINCkBAIC00MSw2ICs0MywxNCBAQCB2b2lkIF9faW5pdCBjbW1hX2luaXQodm9p ZCkNCiANCiAJaWYgKCFjbW1hX2ZsYWcpDQogCQlyZXR1cm47DQorCS8qDQorCSAqIERpc2FibGUg Q01NIGZvciBkdW1wLCBvdGhlcndpc2UgIHRoZSB0cHJvdCBiYXNlZCBtZW1vcnkNCisJICogZGV0 ZWN0aW9uIGNhbiBmYWlsIGJlY2F1c2Ugb2YgdW5zdGFibGUgcGFnZXMuDQorCSAqLw0KKwlpZiAo T0xETUVNX0JBU0UgfHwgaXBsX2luZm8udHlwZSA9PSBJUExfVFlQRV9GQ1BfRFVNUCkgew0KKwkJ Y21tYV9mbGFnID0gMDsNCisJCXJldHVybjsNCisJfQ0KIAlhc20gdm9sYXRpbGUoDQogCQkiICAg ICAgIC5pbnNuIHJyZiwweGI5YWIwMDAwLCUxLCUxLDAsMFxuIg0KIAkJIjA6ICAgICBsYSAgICAg ICUwLDBcbiINCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9pcnEuaCBiL2FyY2gv eDg2L2luY2x1ZGUvYXNtL2lycS5oDQppbmRleCBiYTg3MGJiLi5mOTcxMzRhIDEwMDY0NA0KLS0t IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vaXJxLmgNCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNt L2lycS5oDQpAQCAtMjUsNiArMjUsNyBAQCBleHRlcm4gdm9pZCBpcnFfY3R4X2luaXQoaW50IGNw dSk7DQogDQogI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVQ0KICNpbmNsdWRlIDxsaW51eC9jcHVt YXNrLmg+DQorZXh0ZXJuIGludCBjaGVja19pcnFfdmVjdG9yc19mb3JfY3B1X2Rpc2FibGUodm9p ZCk7DQogZXh0ZXJuIHZvaWQgZml4dXBfaXJxcyh2b2lkKTsNCiBleHRlcm4gdm9pZCBpcnFfZm9y Y2VfY29tcGxldGVfbW92ZShpbnQpOw0KICNlbmRpZg0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tl cm5lbC9jcHUvcGVyZl9ldmVudC5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9wZXJmX2V2ZW50LmMN CmluZGV4IDJiZGEyMTIuLjFjMDQxZTAgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1 L3BlcmZfZXZlbnQuYw0KKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9wZXJmX2V2ZW50LmMNCkBA IC05NzEsNiArOTcxLDkgQEAgc3RhdGljIHZvaWQgeDg2X3BtdV9kZWwoc3RydWN0IHBlcmZfZXZl bnQgKmV2ZW50LCBpbnQgZmxhZ3MpDQogCWZvciAoaSA9IDA7IGkgPCBjcHVjLT5uX2V2ZW50czsg aSsrKSB7DQogCQlpZiAoZXZlbnQgPT0gY3B1Yy0+ZXZlbnRfbGlzdFtpXSkgew0KIA0KKwkJCWlm IChpID49IGNwdWMtPm5fZXZlbnRzIC0gY3B1Yy0+bl9hZGRlZCkNCisJCQkJLS1jcHVjLT5uX2Fk ZGVkOw0KKw0KIAkJCWlmICh4ODZfcG11LnB1dF9ldmVudF9jb25zdHJhaW50cykNCiAJCQkJeDg2 X3BtdS5wdXRfZXZlbnRfY29uc3RyYWludHMoY3B1YywgZXZlbnQpOw0KIA0KZGlmZiAtLWdpdCBh L2FyY2gveDg2L2tlcm5lbC9pcnEuYyBiL2FyY2gveDg2L2tlcm5lbC9pcnEuYw0KaW5kZXggZmIy ZWIzMi4uNjg3NjM3YiAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9pcnEuYw0KKysrIGIv YXJjaC94ODYva2VybmVsL2lycS5jDQpAQCAtMjIyLDYgKzIyMiw3NiBAQCB2b2lkIHNtcF94ODZf cGxhdGZvcm1faXBpKHN0cnVjdCBwdF9yZWdzICpyZWdzKQ0KIEVYUE9SVF9TWU1CT0xfR1BMKHZl Y3Rvcl91c2VkX2J5X3BlcmNwdV9pcnEpOw0KIA0KICNpZmRlZiBDT05GSUdfSE9UUExVR19DUFUN CisvKg0KKyAqIFRoaXMgY3B1IGlzIGdvaW5nIHRvIGJlIHJlbW92ZWQgYW5kIGl0cyB2ZWN0b3Jz IG1pZ3JhdGVkIHRvIHRoZSByZW1haW5pbmcNCisgKiBvbmxpbmUgY3B1cy4gIENoZWNrIHRvIHNl ZSBpZiB0aGVyZSBhcmUgZW5vdWdoIHZlY3RvcnMgaW4gdGhlIHJlbWFpbmluZyBjcHVzLg0KKyAq IFRoaXMgZnVuY3Rpb24gaXMgcHJvdGVjdGVkIGJ5IHN0b3BfbWFjaGluZSgpLg0KKyAqLw0KK2lu dCBjaGVja19pcnFfdmVjdG9yc19mb3JfY3B1X2Rpc2FibGUodm9pZCkNCit7DQorCWludCBpcnEs IGNwdTsNCisJdW5zaWduZWQgaW50IHRoaXNfY3B1LCB2ZWN0b3IsIHRoaXNfY291bnQsIGNvdW50 Ow0KKwlzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2M7DQorCXN0cnVjdCBpcnFfZGF0YSAqZGF0YTsNCisJ c3RydWN0IGNwdW1hc2sgYWZmaW5pdHlfbmV3LCBvbmxpbmVfbmV3Ow0KKw0KKwl0aGlzX2NwdSA9 IHNtcF9wcm9jZXNzb3JfaWQoKTsNCisJY3B1bWFza19jb3B5KCZvbmxpbmVfbmV3LCBjcHVfb25s aW5lX21hc2spOw0KKwljcHVfY2xlYXIodGhpc19jcHUsIG9ubGluZV9uZXcpOw0KKw0KKwl0aGlz X2NvdW50ID0gMDsNCisJZm9yICh2ZWN0b3IgPSBGSVJTVF9FWFRFUk5BTF9WRUNUT1I7IHZlY3Rv ciA8IE5SX1ZFQ1RPUlM7IHZlY3RvcisrKSB7DQorCQlpcnEgPSBfX3RoaXNfY3B1X3JlYWQodmVj dG9yX2lycVt2ZWN0b3JdKTsNCisJCWlmIChpcnEgPj0gMCkgew0KKwkJCWRlc2MgPSBpcnFfdG9f ZGVzYyhpcnEpOw0KKwkJCWRhdGEgPSBpcnFfZGVzY19nZXRfaXJxX2RhdGEoZGVzYyk7DQorCQkJ Y3B1bWFza19jb3B5KCZhZmZpbml0eV9uZXcsIGRhdGEtPmFmZmluaXR5KTsNCisJCQljcHVfY2xl YXIodGhpc19jcHUsIGFmZmluaXR5X25ldyk7DQorDQorCQkJLyogRG8gbm90IGNvdW50IGluYWN0 aXZlIG9yIHBlci1jcHUgaXJxcy4gKi8NCisJCQlpZiAoIWlycV9oYXNfYWN0aW9uKGlycSkgfHwg aXJxZF9pc19wZXJfY3B1KGRhdGEpKQ0KKwkJCQljb250aW51ZTsNCisNCisJCQkvKg0KKwkJCSAq IEEgc2luZ2xlIGlycSBtYXkgYmUgbWFwcGVkIHRvIG11bHRpcGxlDQorCQkJICogY3B1J3MgdmVj dG9yX2lycVtdIChmb3IgZXhhbXBsZSBJT0FQSUMgY2x1c3Rlcg0KKwkJCSAqIG1vZGUpLiAgSW4g dGhpcyBjYXNlIHdlIGhhdmUgdHdvDQorCQkJICogcG9zc2liaWxpdGllczoNCisJCQkgKg0KKwkJ CSAqIDEpIHRoZSByZXN1bHRpbmcgYWZmaW5pdHkgbWFzayBpcyBlbXB0eTsgdGhhdCBpcw0KKwkJ CSAqIHRoaXMgdGhlIGRvd24nZCBjcHUgaXMgdGhlIGxhc3QgY3B1IGluIHRoZSBpcnEncw0KKwkJ CSAqIGFmZmluaXR5IG1hc2ssIG9yDQorCQkJICoNCisJCQkgKiAyKSB0aGUgcmVzdWx0aW5nIGFm ZmluaXR5IG1hc2sgaXMgbm8gbG9uZ2VyDQorCQkJICogYSBzdWJzZXQgb2YgdGhlIG9ubGluZSBj cHVzIGJ1dCB0aGUgYWZmaW5pdHkNCisJCQkgKiBtYXNrIGlzIG5vdCB6ZXJvOyB0aGF0IGlzIHRo ZSBkb3duJ2QgY3B1IGlzIHRoZQ0KKwkJCSAqIGxhc3Qgb25saW5lIGNwdSBpbiBhIHVzZXIgc2V0 IGFmZmluaXR5IG1hc2suDQorCQkJICovDQorCQkJaWYgKGNwdW1hc2tfZW1wdHkoJmFmZmluaXR5 X25ldykgfHwNCisJCQkgICAgIWNwdW1hc2tfc3Vic2V0KCZhZmZpbml0eV9uZXcsICZvbmxpbmVf bmV3KSkNCisJCQkJdGhpc19jb3VudCsrOw0KKwkJfQ0KKwl9DQorDQorCWNvdW50ID0gMDsNCisJ Zm9yX2VhY2hfb25saW5lX2NwdShjcHUpIHsNCisJCWlmIChjcHUgPT0gdGhpc19jcHUpDQorCQkJ Y29udGludWU7DQorCQlmb3IgKHZlY3RvciA9IEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUjsgdmVjdG9y IDwgTlJfVkVDVE9SUzsNCisJCSAgICAgdmVjdG9yKyspIHsNCisJCQlpZiAocGVyX2NwdSh2ZWN0 b3JfaXJxLCBjcHUpW3ZlY3Rvcl0gPCAwKQ0KKwkJCQljb3VudCsrOw0KKwkJfQ0KKwl9DQorDQor CWlmIChjb3VudCA8IHRoaXNfY291bnQpIHsNCisJCXByX3dhcm4oIkNQVSAlZCBkaXNhYmxlIGZh aWxlZDogQ1BVIGhhcyAldSB2ZWN0b3JzIGFzc2lnbmVkIGFuZCB0aGVyZSBhcmUgb25seSAldSBh dmFpbGFibGUuXG4iLA0KKwkJCXRoaXNfY3B1LCB0aGlzX2NvdW50LCBjb3VudCk7DQorCQlyZXR1 cm4gLUVSQU5HRTsNCisJfQ0KKwlyZXR1cm4gMDsNCit9DQorDQogLyogQSBjcHUgaGFzIGJlZW4g cmVtb3ZlZCBmcm9tIGNwdV9vbmxpbmVfbWFzay4gIFJlc2V0IGlycSBhZmZpbml0aWVzLiAqLw0K IHZvaWQgZml4dXBfaXJxcyh2b2lkKQ0KIHsNCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwv cXVpcmtzLmMgYi9hcmNoL3g4Ni9rZXJuZWwvcXVpcmtzLmMNCmluZGV4IDAzOTIwYTEuLjI4YTNl NjIgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcXVpcmtzLmMNCisrKyBiL2FyY2gveDg2 L2tlcm5lbC9xdWlya3MuYw0KQEAgLTUyNSw3ICs1MjUsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQg cXVpcmtfYW1kX25iX25vZGUoc3RydWN0IHBjaV9kZXYgKmRldikNCiAJCXJldHVybjsNCiANCiAJ cGNpX3JlYWRfY29uZmlnX2R3b3JkKG5iX2h0LCAweDYwLCAmdmFsKTsNCi0Jbm9kZSA9IHZhbCAm IDc7DQorCW5vZGUgPSBwY2lidXNfdG9fbm9kZShkZXYtPmJ1cykgfCAodmFsICYgNyk7DQogCS8q DQogCSAqIFNvbWUgaGFyZHdhcmUgbWF5IHJldHVybiBhbiBpbnZhbGlkIG5vZGUgSUQsDQogCSAq IHNvIGNoZWNrIGl0IGZpcnN0Og0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9zbXBib290 LmMgYi9hcmNoL3g4Ni9rZXJuZWwvc21wYm9vdC5jDQppbmRleCA5ZjU0OGNiLi5iODhlYWRiIDEw MDY0NA0KLS0tIGEvYXJjaC94ODYva2VybmVsL3NtcGJvb3QuYw0KKysrIGIvYXJjaC94ODYva2Vy bmVsL3NtcGJvb3QuYw0KQEAgLTEyNzgsNiArMTI3OCw3IEBAIHZvaWQgY3B1X2Rpc2FibGVfY29t bW9uKHZvaWQpDQogaW50IG5hdGl2ZV9jcHVfZGlzYWJsZSh2b2lkKQ0KIHsNCiAJaW50IGNwdSA9 IHNtcF9wcm9jZXNzb3JfaWQoKTsNCisJaW50IHJldDsNCiANCiAJLyoNCiAJICogUGVyaGFwcyB1 c2UgY3B1ZnJlcSB0byBkcm9wIGZyZXF1ZW5jeSwgYnV0IHRoYXQgY291bGQgZ28NCkBAIC0xMjkw LDYgKzEyOTEsMTAgQEAgaW50IG5hdGl2ZV9jcHVfZGlzYWJsZSh2b2lkKQ0KIAlpZiAoY3B1ID09 IDApDQogCQlyZXR1cm4gLUVCVVNZOw0KIA0KKwlyZXQgPSBjaGVja19pcnFfdmVjdG9yc19mb3Jf Y3B1X2Rpc2FibGUoKTsNCisJaWYgKHJldCkNCisJCXJldHVybiByZXQ7DQorDQogCWNsZWFyX2xv Y2FsX0FQSUMoKTsNCiANCiAJY3B1X2Rpc2FibGVfY29tbW9uKCk7DQpkaWZmIC0tZ2l0IGEvYXJj aC94ODYva3ZtL2k4MjU0LmMgYi9hcmNoL3g4Ni9rdm0vaTgyNTQuYw0KaW5kZXggNDA1ZjI2Mi4u MTM5NDE1ZSAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L2t2bS9pODI1NC5jDQorKysgYi9hcmNoL3g4 Ni9rdm0vaTgyNTQuYw0KQEAgLTM4LDYgKzM4LDcgQEANCiANCiAjaW5jbHVkZSAiaXJxLmgiDQog I2luY2x1ZGUgImk4MjU0LmgiDQorI2luY2x1ZGUgIng4Ni5oIg0KIA0KICNpZm5kZWYgQ09ORklH X1g4Nl82NA0KICNkZWZpbmUgbW9kXzY0KHgsIHkpICgoeCkgLSAoeSkgKiBkaXY2NF91NjQoeCwg eSkpDQpAQCAtMzY0LDYgKzM2NSwyMyBAQCBzdGF0aWMgdm9pZCBjcmVhdGVfcGl0X3RpbWVyKHN0 cnVjdCBrdm0gKmt2bSwgdTMyIHZhbCwgaW50IGlzX3BlcmlvZCkNCiAJYXRvbWljX3NldCgmcHQt PnBlbmRpbmcsIDApOw0KIAlwcy0+aXJxX2FjayA9IDE7DQogDQorCS8qDQorCSAqIERvIG5vdCBh bGxvdyB0aGUgZ3Vlc3QgdG8gcHJvZ3JhbSBwZXJpb2RpYyB0aW1lcnMgd2l0aCBzbWFsbA0KKwkg KiBpbnRlcnZhbCwgc2luY2UgdGhlIGhydGltZXJzIGFyZSBub3QgdGhyb3R0bGVkIGJ5IHRoZSBo b3N0DQorCSAqIHNjaGVkdWxlci4NCisJICovDQorCWlmIChwcy0+aXNfcGVyaW9kaWMpIHsNCisJ CXM2NCBtaW5fcGVyaW9kID0gbWluX3RpbWVyX3BlcmlvZF91cyAqIDEwMDBMTDsNCisNCisJCWlm IChwdC0+cGVyaW9kIDwgbWluX3BlcmlvZCkgew0KKwkJCXByX2luZm9fcmF0ZWxpbWl0ZWQoDQor CQkJICAgICJrdm06IHJlcXVlc3RlZCAlbGxkIG5zICINCisJCQkgICAgImk4MjU0IHRpbWVyIHBl cmlvZCBsaW1pdGVkIHRvICVsbGQgbnNcbiIsDQorCQkJICAgIHB0LT5wZXJpb2QsIG1pbl9wZXJp b2QpOw0KKwkJCXB0LT5wZXJpb2QgPSBtaW5fcGVyaW9kOw0KKwkJfQ0KKwl9DQorDQogCWhydGlt ZXJfc3RhcnQoJnB0LT50aW1lciwga3RpbWVfYWRkX25zKGt0aW1lX2dldCgpLCBpbnRlcnZhbCks DQogCQkgICAgICBIUlRJTUVSX01PREVfQUJTKTsNCiB9DQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYv a3ZtL2xhcGljLmMgYi9hcmNoL3g4Ni9rdm0vbGFwaWMuYw0KaW5kZXggNzU3YzcxNi4uMTc2MjA1 YSAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L2t2bS9sYXBpYy5jDQorKysgYi9hcmNoL3g4Ni9rdm0v bGFwaWMuYw0KQEAgLTY4LDkgKzY4LDYgQEANCiAjZGVmaW5lIFZFQ19QT1ModikgKCh2KSAmICgz MiAtIDEpKQ0KICNkZWZpbmUgUkVHX1BPUyh2KSAoKCh2KSA+PiA1KSA8PCA0KQ0KIA0KLXN0YXRp YyB1bnNpZ25lZCBpbnQgbWluX3RpbWVyX3BlcmlvZF91cyA9IDUwMDsNCi1tb2R1bGVfcGFyYW0o bWluX3RpbWVyX3BlcmlvZF91cywgdWludCwgU19JUlVHTyB8IFNfSVdVU1IpOw0KLQ0KIHN0YXRp YyBpbmxpbmUgdTMyIGFwaWNfZ2V0X3JlZyhzdHJ1Y3Qga3ZtX2xhcGljICphcGljLCBpbnQgcmVn X29mZikNCiB7DQogCXJldHVybiAqKCh1MzIgKikgKGFwaWMtPnJlZ3MgKyByZWdfb2ZmKSk7DQpk aWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3N2bS5jIGIvYXJjaC94ODYva3ZtL3N2bS5jDQppbmRl eCA5NGE0NjcyLi4yMTAyYTE3IDEwMDY0NA0KLS0tIGEvYXJjaC94ODYva3ZtL3N2bS5jDQorKysg Yi9hcmNoL3g4Ni9rdm0vc3ZtLmMNCkBAIC0yOTA0LDEwICsyOTA0LDggQEAgc3RhdGljIGludCBj cjhfd3JpdGVfaW50ZXJjZXB0aW9uKHN0cnVjdCB2Y3B1X3N2bSAqc3ZtKQ0KIAl1OCBjcjhfcHJl diA9IGt2bV9nZXRfY3I4KCZzdm0tPnZjcHUpOw0KIAkvKiBpbnN0cnVjdGlvbiBlbXVsYXRpb24g Y2FsbHMga3ZtX3NldF9jcjgoKSAqLw0KIAlyID0gY3JfaW50ZXJjZXB0aW9uKHN2bSk7DQotCWlm IChpcnFjaGlwX2luX2tlcm5lbChzdm0tPnZjcHUua3ZtKSkgew0KLQkJY2xyX2NyX2ludGVyY2Vw dChzdm0sIElOVEVSQ0VQVF9DUjhfV1JJVEUpOw0KKwlpZiAoaXJxY2hpcF9pbl9rZXJuZWwoc3Zt LT52Y3B1Lmt2bSkpDQogCQlyZXR1cm4gcjsNCi0JfQ0KIAlpZiAoY3I4X3ByZXYgPD0ga3ZtX2dl dF9jcjgoJnN2bS0+dmNwdSkpDQogCQlyZXR1cm4gcjsNCiAJa3ZtX3J1bi0+ZXhpdF9yZWFzb24g PSBLVk1fRVhJVF9TRVRfVFBSOw0KQEAgLTM0NjIsNiArMzQ2MCw4IEBAIHN0YXRpYyB2b2lkIHVw ZGF0ZV9jcjhfaW50ZXJjZXB0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgaW50IHRwciwgaW50IGly cikNCiAJaWYgKGlzX2d1ZXN0X21vZGUodmNwdSkgJiYgKHZjcHUtPmFyY2guaGZsYWdzICYgSEZf VklOVFJfTUFTSykpDQogCQlyZXR1cm47DQogDQorCWNscl9jcl9pbnRlcmNlcHQoc3ZtLCBJTlRF UkNFUFRfQ1I4X1dSSVRFKTsNCisNCiAJaWYgKGlyciA9PSAtMSkNCiAJCXJldHVybjsNCiANCmRp ZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmMNCmluZGV4 IDc3NzRjY2EuLmI5ZmVmYWYgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmMNCisrKyBi L2FyY2gveDg2L2t2bS94ODYuYw0KQEAgLTkyLDYgKzkyLDkgQEAgRVhQT1JUX1NZTUJPTF9HUEwo a3ZtX3g4Nl9vcHMpOw0KIGludCBpZ25vcmVfbXNycyA9IDA7DQogbW9kdWxlX3BhcmFtX25hbWVk KGlnbm9yZV9tc3JzLCBpZ25vcmVfbXNycywgYm9vbCwgU19JUlVHTyB8IFNfSVdVU1IpOw0KIA0K K3Vuc2lnbmVkIGludCBtaW5fdGltZXJfcGVyaW9kX3VzID0gNTAwOw0KK21vZHVsZV9wYXJhbSht aW5fdGltZXJfcGVyaW9kX3VzLCB1aW50LCBTX0lSVUdPIHwgU19JV1VTUik7DQorDQogYm9vbCBr dm1faGFzX3RzY19jb250cm9sOw0KIEVYUE9SVF9TWU1CT0xfR1BMKGt2bV9oYXNfdHNjX2NvbnRy b2wpOw0KIHUzMiAga3ZtX21heF9ndWVzdF90c2Nfa2h6Ow0KZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2t2bS94ODYuaCBiL2FyY2gveDg2L2t2bS94ODYuaA0KaW5kZXggZDM2ZmUyMy4uMGUyMmY2NCAx MDA2NDQNCi0tLSBhL2FyY2gveDg2L2t2bS94ODYuaA0KKysrIGIvYXJjaC94ODYva3ZtL3g4Ni5o DQpAQCAtMTI1LDQgKzEyNSw2IEBAIGludCBrdm1fd3JpdGVfZ3Vlc3RfdmlydF9zeXN0ZW0oc3Ry dWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQsDQogCWd2YV90IGFkZHIsIHZvaWQgKnZhbCwgdW5z aWduZWQgaW50IGJ5dGVzLA0KIAlzdHJ1Y3QgeDg2X2V4Y2VwdGlvbiAqZXhjZXB0aW9uKTsNCiAN CitleHRlcm4gdW5zaWduZWQgaW50IG1pbl90aW1lcl9wZXJpb2RfdXM7DQorDQogI2VuZGlmDQpk aWZmIC0tZ2l0IGEvYXJjaC94ODYvcGxhdGZvcm0vZWZpL2VmaS5jIGIvYXJjaC94ODYvcGxhdGZv cm0vZWZpL2VmaS5jDQppbmRleCBiZWU3NWE2Li5lNTZkYTc3IDEwMDY0NA0KLS0tIGEvYXJjaC94 ODYvcGxhdGZvcm0vZWZpL2VmaS5jDQorKysgYi9hcmNoL3g4Ni9wbGF0Zm9ybS9lZmkvZWZpLmMN CkBAIC00MjQsNyArNDI0LDcgQEAgdm9pZCBfX2luaXQgZWZpX3Jlc2VydmVfYm9vdF9zZXJ2aWNl cyh2b2lkKQ0KIAkJICogLSBOb3Qgd2l0aGluIGFueSBwYXJ0IG9mIHRoZSBrZXJuZWwNCiAJCSAq IC0gTm90IHRoZSBiaW9zIHJlc2VydmVkIGFyZWENCiAJCSovDQotCQlpZiAoKHN0YXJ0K3NpemUg Pj0gdmlydF90b19waHlzKF90ZXh0KQ0KKwkJaWYgKChzdGFydCArIHNpemUgPiB2aXJ0X3RvX3Bo eXMoX3RleHQpDQogCQkJCSYmIHN0YXJ0IDw9IHZpcnRfdG9fcGh5cyhfZW5kKSkgfHwNCiAJCQkh ZTgyMF9hbGxfbWFwcGVkKHN0YXJ0LCBzdGFydCtzaXplLCBFODIwX1JBTSkgfHwNCiAJCQltZW1i bG9ja194ODZfY2hlY2tfcmVzZXJ2ZWRfc2l6ZSgmc3RhcnQsICZzaXplLA0KZGlmZiAtLWdpdCBh L2Jsb2NrL2Jsay1saWIuYyBiL2Jsb2NrL2Jsay1saWIuYw0KaW5kZXggMmI0NjFiNC4uMzY3NTFl MiAxMDA2NDQNCi0tLSBhL2Jsb2NrL2Jsay1saWIuYw0KKysrIGIvYmxvY2svYmxrLWxpYi5jDQpA QCAtMTAxLDYgKzEwMSwxNCBAQCBpbnQgYmxrZGV2X2lzc3VlX2Rpc2NhcmQoc3RydWN0IGJsb2Nr X2RldmljZSAqYmRldiwgc2VjdG9yX3Qgc2VjdG9yLA0KIA0KIAkJYXRvbWljX2luYygmYmIuZG9u ZSk7DQogCQlzdWJtaXRfYmlvKHR5cGUsIGJpbyk7DQorDQorCQkvKg0KKwkJICogV2UgY2FuIGxv b3AgZm9yIGEgbG9uZyB0aW1lIGluIGhlcmUsIGlmIHNvbWVvbmUgZG9lcw0KKwkJICogZnVsbCBk ZXZpY2UgZGlzY2FyZHMgKGxpa2UgbWtmcykuIEJlIG5pY2UgYW5kIGFsbG93DQorCQkgKiB1cyB0 byBzY2hlZHVsZSBvdXQgdG8gYXZvaWQgc29mdGxvY2tpbmcgaWYgcHJlZW1wdA0KKwkJICogaXMg ZGlzYWJsZWQuDQorCQkgKi8NCisJCWNvbmRfcmVzY2hlZCgpOw0KIAl9DQogDQogCS8qIFdhaXQg Zm9yIGJpb3MgaW4tZmxpZ2h0ICovDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2J1cy5jIGIv ZHJpdmVycy9hY3BpL2J1cy5jDQppbmRleCA1MDE2ZGU1Li5mMzI0NDI5IDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9hY3BpL2J1cy5jDQorKysgYi9kcml2ZXJzL2FjcGkvYnVzLmMNCkBAIC0zMyw2ICsz Myw3IEBADQogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4NCiAjaW5jbHVkZSA8bGludXgvYWNw aS5oPg0KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+DQorI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRv ci9tYWNoaW5lLmg+DQogI2lmZGVmIENPTkZJR19YODYNCiAjaW5jbHVkZSA8YXNtL21wc3BlYy5o Pg0KICNlbmRpZg0KQEAgLTkxNyw2ICs5MTgsMTQgQEAgdm9pZCBfX2luaXQgYWNwaV9lYXJseV9p bml0KHZvaWQpDQogCQlnb3RvIGVycm9yMDsNCiAJfQ0KIA0KKwkvKg0KKwkgKiBJZiB0aGUgc3lz dGVtIGlzIHVzaW5nIEFDUEkgdGhlbiB3ZSBjYW4gYmUgcmVhc29uYWJseQ0KKwkgKiBjb25maWRl bnQgdGhhdCBhbnkgcmVndWxhdG9ycyBhcmUgbWFuYWdlZCBieSB0aGUgZmlybXdhcmUNCisJICog c28gdGVsbCB0aGUgcmVndWxhdG9yIGNvcmUgaXQgaGFzIGV2ZXJ5dGhpbmcgaXQgbmVlZHMgdG8N CisJICoga25vdy4NCisJICovDQorCXJlZ3VsYXRvcl9oYXNfZnVsbF9jb25zdHJhaW50cygpOw0K Kw0KIAlyZXR1cm47DQogDQogICAgICAgZXJyb3IwOg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNw aS9lYy5jIGIvZHJpdmVycy9hY3BpL2VjLmMNCmluZGV4IDgxNzZiODIuLmY5Y2YyOGEgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL2FjcGkvZWMuYw0KKysrIGIvZHJpdmVycy9hY3BpL2VjLmMNCkBAIC03 MCw2ICs3MCw4IEBAIGVudW0gZWNfY29tbWFuZCB7DQogI2RlZmluZSBBQ1BJX0VDX0RFTEFZCQk1 MDAJLyogV2FpdCA1MDBtcyBtYXguIGR1cmluZyBFQyBvcHMgKi8NCiAjZGVmaW5lIEFDUElfRUNf VURFTEFZX0dMSwkxMDAwCS8qIFdhaXQgMW1zIG1heC4gdG8gZ2V0IGdsb2JhbCBsb2NrICovDQog I2RlZmluZSBBQ1BJX0VDX01TSV9VREVMQVkJNTUwCS8qIFdhaXQgNTUwdXMgZm9yIE1TSSBFQyAq Lw0KKyNkZWZpbmUgQUNQSV9FQ19DTEVBUl9NQVgJMTAwCS8qIE1heGltdW0gbnVtYmVyIG9mIGV2 ZW50cyB0byBxdWVyeQ0KKwkJCQkJICogd2hlbiB0cnlpbmcgdG8gY2xlYXIgdGhlIEVDICovDQog DQogZW51bSB7DQogCUVDX0ZMQUdTX1FVRVJZX1BFTkRJTkcsCQkvKiBRdWVyeSBpcyBwZW5kaW5n ICovDQpAQCAtMTIzLDYgKzEyNSw3IEBAIEVYUE9SVF9TWU1CT0woZmlyc3RfZWMpOw0KIHN0YXRp YyBpbnQgRUNfRkxBR1NfTVNJOyAvKiBPdXQtb2Ytc3BlYyBNU0kgY29udHJvbGxlciAqLw0KIHN0 YXRpYyBpbnQgRUNfRkxBR1NfVkFMSURBVEVfRUNEVDsgLyogQVNVU3RlYyBFQ0RUcyBuZWVkIHRv IGJlIHZhbGlkYXRlZCAqLw0KIHN0YXRpYyBpbnQgRUNfRkxBR1NfU0tJUF9EU0RUX1NDQU47IC8q IE5vdCBhbGwgQklPUyBzdXJ2aXZlIGVhcmx5IERTRFQgc2NhbiAqLw0KK3N0YXRpYyBpbnQgRUNf RkxBR1NfQ0xFQVJfT05fUkVTVU1FOyAvKiBOZWVkcyBhY3BpX2VjX2NsZWFyKCkgb24gYm9vdC9y ZXN1bWUgKi8NCiANCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVHJhbnNhY3Rpb24gTWFuYWdlbWVudA0KQEAgLTQ0OSw2ICs0NTIsMjkgQEAgaW50 IGVjX3RyYW5zYWN0aW9uKHU4IGNvbW1hbmQsDQogDQogRVhQT1JUX1NZTUJPTChlY190cmFuc2Fj dGlvbik7DQogDQorc3RhdGljIGludCBhY3BpX2VjX3F1ZXJ5X3VubG9ja2VkKHN0cnVjdCBhY3Bp X2VjICplYywgdTggKmRhdGEpOw0KKw0KKy8qDQorICogQ2xlYXJzIHN0YWxlIF9RIGV2ZW50cyB0 aGF0IG1pZ2h0IGhhdmUgYWNjdW11bGF0ZWQgaW4gdGhlIEVDLg0KKyAqIFJ1biB3aXRoIGxvY2tl ZCBlYyBtdXRleC4NCisgKi8NCitzdGF0aWMgdm9pZCBhY3BpX2VjX2NsZWFyKHN0cnVjdCBhY3Bp X2VjICplYykNCit7DQorCWludCBpLCBzdGF0dXM7DQorCXU4IHZhbHVlID0gMDsNCisNCisJZm9y IChpID0gMDsgaSA8IEFDUElfRUNfQ0xFQVJfTUFYOyBpKyspIHsNCisJCXN0YXR1cyA9IGFjcGlf ZWNfcXVlcnlfdW5sb2NrZWQoZWMsICZ2YWx1ZSk7DQorCQlpZiAoc3RhdHVzIHx8ICF2YWx1ZSkN CisJCQlicmVhazsNCisJfQ0KKw0KKwlpZiAodW5saWtlbHkoaSA9PSBBQ1BJX0VDX0NMRUFSX01B WCkpDQorCQlwcl93YXJuKCJXYXJuaW5nOiBNYXhpbXVtIG9mICVkIHN0YWxlIEVDIGV2ZW50cyBj bGVhcmVkXG4iLCBpKTsNCisJZWxzZQ0KKwkJcHJfaW5mbygiJWQgc3RhbGUgRUMgZXZlbnRzIGNs ZWFyZWRcbiIsIGkpOw0KK30NCisNCiB2b2lkIGFjcGlfZWNfYmxvY2tfdHJhbnNhY3Rpb25zKHZv aWQpDQogew0KIAlzdHJ1Y3QgYWNwaV9lYyAqZWMgPSBmaXJzdF9lYzsNCkBAIC00NzIsNiArNDk4 LDEwIEBAIHZvaWQgYWNwaV9lY191bmJsb2NrX3RyYW5zYWN0aW9ucyh2b2lkKQ0KIAltdXRleF9s b2NrKCZlYy0+bG9jayk7DQogCS8qIEFsbG93IHRyYW5zYWN0aW9ucyB0byBiZSBjYXJyaWVkIG91 dCBhZ2FpbiAqLw0KIAljbGVhcl9iaXQoRUNfRkxBR1NfQkxPQ0tFRCwgJmVjLT5mbGFncyk7DQor DQorCWlmIChFQ19GTEFHU19DTEVBUl9PTl9SRVNVTUUpDQorCQlhY3BpX2VjX2NsZWFyKGVjKTsN CisNCiAJbXV0ZXhfdW5sb2NrKCZlYy0+bG9jayk7DQogfQ0KIA0KQEAgLTgyOCw2ICs4NTgsMTMg QEAgc3RhdGljIGludCBhY3BpX2VjX2FkZChzdHJ1Y3QgYWNwaV9kZXZpY2UgKmRldmljZSkNCiAN CiAJLyogRUMgaXMgZnVsbHkgb3BlcmF0aW9uYWwsIGFsbG93IHF1ZXJpZXMgKi8NCiAJY2xlYXJf Yml0KEVDX0ZMQUdTX1FVRVJZX1BFTkRJTkcsICZlYy0+ZmxhZ3MpOw0KKw0KKwkvKiBDbGVhciBz dGFsZSBfUSBldmVudHMgaWYgaGFyZHdhcmUgbWlnaHQgcmVxdWlyZSB0aGF0ICovDQorCWlmIChF Q19GTEFHU19DTEVBUl9PTl9SRVNVTUUpIHsNCisJCW11dGV4X2xvY2soJmVjLT5sb2NrKTsNCisJ CWFjcGlfZWNfY2xlYXIoZWMpOw0KKwkJbXV0ZXhfdW5sb2NrKCZlYy0+bG9jayk7DQorCX0NCiAJ cmV0dXJuIHJldDsNCiB9DQogDQpAQCAtOTI5LDYgKzk2NiwzMCBAQCBzdGF0aWMgaW50IGVjX2Vu bGFyZ2Vfc3Rvcm1fdGhyZXNob2xkKGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICppZCkNCiAJ cmV0dXJuIDA7DQogfQ0KIA0KKy8qDQorICogT24gc29tZSBoYXJkd2FyZSBpdCBpcyBuZWNlc3Nh cnkgdG8gY2xlYXIgZXZlbnRzIGFjY3VtdWxhdGVkIGJ5IHRoZSBFQyBkdXJpbmcNCisgKiBzbGVl cC4gVGhlc2UgRUNzIHN0b3AgcmVwb3J0aW5nIEdQRXMgdW50aWwgdGhleSBhcmUgbWFudWFsbHkg cG9sbGVkLCBpZiB0b28NCisgKiBtYW55IGV2ZW50cyBhcmUgYWNjdW11bGF0ZWQuIChlLmcuIFNh bXN1bmcgU2VyaWVzIDUvOSBub3RlYm9va3MpDQorICoNCisgKiBodHRwczovL2J1Z3ppbGxhLmtl cm5lbC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MTYxDQorICoNCisgKiBJZGVhbGx5LCB0aGUgRUMg c2hvdWxkIGFsc28gYmUgaW5zdHJ1Y3RlZCBOT1QgdG8gYWNjdW11bGF0ZSBldmVudHMgZHVyaW5n DQorICogc2xlZXAgKHdoaWNoIFdpbmRvd3Mgc2VlbXMgdG8gZG8gc29tZWhvdyksIGJ1dCB0aGUg aW50ZXJmYWNlIHRvIGNvbnRyb2wgdGhpcw0KKyAqIGJlaGF2aW91ciBpcyBub3Qga25vd24gYXQg dGhpcyB0aW1lLg0KKyAqDQorICogTW9kZWxzIGtub3duIHRvIGJlIGFmZmVjdGVkIGFyZSBTYW1z dW5nIDUzMFV4eC81MzVVeHgvNTQwVXh4LzU1MFB4eC85MDBYeHgsDQorICogaG93ZXZlciBpdCBp cyB2ZXJ5IGxpa2VseSB0aGF0IG90aGVyIFNhbXN1bmcgbW9kZWxzIGFyZSBhZmZlY3RlZC4NCisg Kg0KKyAqIE9uIHN5c3RlbXMgd2hpY2ggZG9uJ3QgYWNjdW11bGF0ZSBfUSBldmVudHMgZHVyaW5n IHNsZWVwLCB0aGlzIGV4dHJhIGNoZWNrDQorICogc2hvdWxkIGJlIGhhcm1sZXNzLg0KKyAqLw0K K3N0YXRpYyBpbnQgZWNfY2xlYXJfb25fcmVzdW1lKGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lk ICppZCkNCit7DQorCXByX2RlYnVnKCJEZXRlY3RlZCBzeXN0ZW0gbmVlZGluZyBFQyBwb2xsIG9u IHJlc3VtZS5cbiIpOw0KKwlFQ19GTEFHU19DTEVBUl9PTl9SRVNVTUUgPSAxOw0KKwlyZXR1cm4g MDsNCit9DQorDQogc3RhdGljIHN0cnVjdCBkbWlfc3lzdGVtX2lkIF9faW5pdGRhdGEgZWNfZG1p X3RhYmxlW10gPSB7DQogCXsNCiAJZWNfc2tpcF9kc2R0X3NjYW4sICJDb21wYWwgSkZMOTIiLCB7 DQpAQCAtOTY4LDYgKzEwMjksOSBAQCBzdGF0aWMgc3RydWN0IGRtaV9zeXN0ZW1faWQgX19pbml0 ZGF0YSBlY19kbWlfdGFibGVbXSA9IHsNCiAJZWNfdmFsaWRhdGVfZWNkdCwgIkFTVVMgaGFyZHdh cmUiLCB7DQogCURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIkFTVVNUZWsgQ29tcHV0ZXIgSW5j LiIpLA0KIAlETUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIkw0UiIpLH0sIE5VTEx9LA0KKwl7 DQorCWVjX2NsZWFyX29uX3Jlc3VtZSwgIlNhbXN1bmcgaGFyZHdhcmUiLCB7DQorCURNSV9NQVRD SChETUlfU1lTX1ZFTkRPUiwgIlNBTVNVTkcgRUxFQ1RST05JQ1MgQ08uLCBMVEQuIil9LCBOVUxM fSwNCiAJe30sDQogfTsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvcHJvY2Vzc29yX3Ro cm90dGxpbmcuYyBiL2RyaXZlcnMvYWNwaS9wcm9jZXNzb3JfdGhyb3R0bGluZy5jDQppbmRleCA2 MDVhMjk1Li5hYmU0NWNiIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9hY3BpL3Byb2Nlc3Nvcl90aHJv dHRsaW5nLmMNCisrKyBiL2RyaXZlcnMvYWNwaS9wcm9jZXNzb3JfdGhyb3R0bGluZy5jDQpAQCAt NTksNiArNTksMTIgQEAgc3RydWN0IHRocm90dGxpbmdfdHN0YXRlIHsNCiAJaW50IHRhcmdldF9z dGF0ZTsJCS8qIHRhcmdldCBULXN0YXRlICovDQogfTsNCiANCitzdHJ1Y3QgYWNwaV9wcm9jZXNz b3JfdGhyb3R0bGluZ19hcmcgew0KKwlzdHJ1Y3QgYWNwaV9wcm9jZXNzb3IgKnByOw0KKwlpbnQg dGFyZ2V0X3N0YXRlOw0KKwlib29sIGZvcmNlOw0KK307DQorDQogI2RlZmluZSBUSFJPVFRMSU5H X1BSRUNIQU5HRSAgICAgICAoMSkNCiAjZGVmaW5lIFRIUk9UVExJTkdfUE9TVENIQU5HRSAgICAg ICgyKQ0KIA0KQEAgLTEwNjMsMTYgKzEwNjksMjQgQEAgc3RhdGljIGludCBhY3BpX3Byb2Nlc3Nv cl9zZXRfdGhyb3R0bGluZ19wdGMoc3RydWN0IGFjcGlfcHJvY2Vzc29yICpwciwNCiAJcmV0dXJu IDA7DQogfQ0KIA0KK3N0YXRpYyBsb25nIGFjcGlfcHJvY2Vzc29yX3Rocm90dGxpbmdfZm4odm9p ZCAqZGF0YSkNCit7DQorCXN0cnVjdCBhY3BpX3Byb2Nlc3Nvcl90aHJvdHRsaW5nX2FyZyAqYXJn ID0gZGF0YTsNCisJc3RydWN0IGFjcGlfcHJvY2Vzc29yICpwciA9IGFyZy0+cHI7DQorDQorCXJl dHVybiBwci0+dGhyb3R0bGluZy5hY3BpX3Byb2Nlc3Nvcl9zZXRfdGhyb3R0bGluZyhwciwNCisJ CQlhcmctPnRhcmdldF9zdGF0ZSwgYXJnLT5mb3JjZSk7DQorfQ0KKw0KIGludCBhY3BpX3Byb2Nl c3Nvcl9zZXRfdGhyb3R0bGluZyhzdHJ1Y3QgYWNwaV9wcm9jZXNzb3IgKnByLA0KIAkJCQkJCWlu dCBzdGF0ZSwgYm9vbCBmb3JjZSkNCiB7DQotCWNwdW1hc2tfdmFyX3Qgc2F2ZWRfbWFzazsNCiAJ aW50IHJldCA9IDA7DQogCXVuc2lnbmVkIGludCBpOw0KIAlzdHJ1Y3QgYWNwaV9wcm9jZXNzb3Ig Km1hdGNoX3ByOw0KIAlzdHJ1Y3QgYWNwaV9wcm9jZXNzb3JfdGhyb3R0bGluZyAqcF90aHJvdHRs aW5nOw0KKwlzdHJ1Y3QgYWNwaV9wcm9jZXNzb3JfdGhyb3R0bGluZ19hcmcgYXJnOw0KIAlzdHJ1 Y3QgdGhyb3R0bGluZ190c3RhdGUgdF9zdGF0ZTsNCi0JY3B1bWFza192YXJfdCBvbmxpbmVfdGhy b3R0bGluZ19jcHVzOw0KIA0KIAlpZiAoIXByKQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQpAQCAtMTA4 MywxNCArMTA5Nyw2IEBAIGludCBhY3BpX3Byb2Nlc3Nvcl9zZXRfdGhyb3R0bGluZyhzdHJ1Y3Qg YWNwaV9wcm9jZXNzb3IgKnByLA0KIAlpZiAoKHN0YXRlIDwgMCkgfHwgKHN0YXRlID4gKHByLT50 aHJvdHRsaW5nLnN0YXRlX2NvdW50IC0gMSkpKQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQogDQotCWlm ICghYWxsb2NfY3B1bWFza192YXIoJnNhdmVkX21hc2ssIEdGUF9LRVJORUwpKQ0KLQkJcmV0dXJu IC1FTk9NRU07DQotDQotCWlmICghYWxsb2NfY3B1bWFza192YXIoJm9ubGluZV90aHJvdHRsaW5n X2NwdXMsIEdGUF9LRVJORUwpKSB7DQotCQlmcmVlX2NwdW1hc2tfdmFyKHNhdmVkX21hc2spOw0K LQkJcmV0dXJuIC1FTk9NRU07DQotCX0NCi0NCiAJaWYgKGNwdV9pc19vZmZsaW5lKHByLT5pZCkp IHsNCiAJCS8qDQogCQkgKiB0aGUgY3B1IHBvaW50ZWQgYnkgcHItPmlkIGlzIG9mZmxpbmUuIFVu bmVjZXNzYXJ5IHRvIGNoYW5nZQ0KQEAgLTEwOTksMTcgKzExMDUsMTUgQEAgaW50IGFjcGlfcHJv Y2Vzc29yX3NldF90aHJvdHRsaW5nKHN0cnVjdCBhY3BpX3Byb2Nlc3NvciAqcHIsDQogCQlyZXR1 cm4gLUVOT0RFVjsNCiAJfQ0KIA0KLQljcHVtYXNrX2NvcHkoc2F2ZWRfbWFzaywgJmN1cnJlbnQt PmNwdXNfYWxsb3dlZCk7DQogCXRfc3RhdGUudGFyZ2V0X3N0YXRlID0gc3RhdGU7DQogCXBfdGhy b3R0bGluZyA9ICYocHItPnRocm90dGxpbmcpOw0KLQljcHVtYXNrX2FuZChvbmxpbmVfdGhyb3R0 bGluZ19jcHVzLCBjcHVfb25saW5lX21hc2ssDQotCQkgICAgcF90aHJvdHRsaW5nLT5zaGFyZWRf Y3B1X21hcCk7DQorDQogCS8qDQogCSAqIFRoZSB0aHJvdHRsaW5nIG5vdGlmaWVyIHdpbGwgYmUg Y2FsbGVkIGZvciBldmVyeQ0KIAkgKiBhZmZlY3RlZCBjcHUgaW4gb3JkZXIgdG8gZ2V0IG9uZSBw cm9wZXIgVC1zdGF0ZS4NCiAJICogVGhlIG5vdGlmaWVyIGV2ZW50IGlzIFRIUk9UVExJTkdfUFJF Q0hBTkdFLg0KIAkgKi8NCi0JZm9yX2VhY2hfY3B1KGksIG9ubGluZV90aHJvdHRsaW5nX2NwdXMp IHsNCisJZm9yX2VhY2hfY3B1X2FuZChpLCBjcHVfb25saW5lX21hc2ssIHBfdGhyb3R0bGluZy0+ c2hhcmVkX2NwdV9tYXApIHsNCiAJCXRfc3RhdGUuY3B1ID0gaTsNCiAJCWFjcGlfcHJvY2Vzc29y X3Rocm90dGxpbmdfbm90aWZpZXIoVEhST1RUTElOR19QUkVDSEFOR0UsDQogCQkJCQkJCSZ0X3N0 YXRlKTsNCkBAIC0xMTIxLDIxICsxMTI1LDE4IEBAIGludCBhY3BpX3Byb2Nlc3Nvcl9zZXRfdGhy b3R0bGluZyhzdHJ1Y3QgYWNwaV9wcm9jZXNzb3IgKnByLA0KIAkgKiBpdCBjYW4gYmUgY2FsbGVk IG9ubHkgZm9yIHRoZSBjcHUgcG9pbnRlZCBieSBwci4NCiAJICovDQogCWlmIChwX3Rocm90dGxp bmctPnNoYXJlZF90eXBlID09IERPTUFJTl9DT09SRF9UWVBFX1NXX0FOWSkgew0KLQkJLyogRklY TUU6IHVzZSB3b3JrX29uX2NwdSgpICovDQotCQlpZiAoc2V0X2NwdXNfYWxsb3dlZF9wdHIoY3Vy cmVudCwgY3B1bWFza19vZihwci0+aWQpKSkgew0KLQkJCS8qIENhbid0IG1pZ3JhdGUgdG8gdGhl IHByLT5pZCBDUFUuIEV4aXQgKi8NCi0JCQlyZXQgPSAtRU5PREVWOw0KLQkJCWdvdG8gZXhpdDsN Ci0JCX0NCi0JCXJldCA9IHBfdGhyb3R0bGluZy0+YWNwaV9wcm9jZXNzb3Jfc2V0X3Rocm90dGxp bmcocHIsDQotCQkJCQkJdF9zdGF0ZS50YXJnZXRfc3RhdGUsIGZvcmNlKTsNCisJCWFyZy5wciA9 IHByOw0KKwkJYXJnLnRhcmdldF9zdGF0ZSA9IHN0YXRlOw0KKwkJYXJnLmZvcmNlID0gZm9yY2U7 DQorCQlyZXQgPSB3b3JrX29uX2NwdShwci0+aWQsIGFjcGlfcHJvY2Vzc29yX3Rocm90dGxpbmdf Zm4sICZhcmcpOw0KIAl9IGVsc2Ugew0KIAkJLyoNCiAJCSAqIFdoZW4gdGhlIFQtc3RhdGUgY29v cmRpbmF0aW9uIGlzIFNXX0FMTCBvciBIV19BTEwsDQogCQkgKiBpdCBpcyBuZWNlc3NhcnkgdG8g c2V0IFQtc3RhdGUgZm9yIGV2ZXJ5IGFmZmVjdGVkDQogCQkgKiBjcHVzLg0KIAkJICovDQotCQlm b3JfZWFjaF9jcHUoaSwgb25saW5lX3Rocm90dGxpbmdfY3B1cykgew0KKwkJZm9yX2VhY2hfY3B1 X2FuZChpLCBjcHVfb25saW5lX21hc2ssDQorCQkgICAgcF90aHJvdHRsaW5nLT5zaGFyZWRfY3B1 X21hcCkgew0KIAkJCW1hdGNoX3ByID0gcGVyX2NwdShwcm9jZXNzb3JzLCBpKTsNCiAJCQkvKg0K IAkJCSAqIElmIHRoZSBwb2ludGVyIGlzIGludmFsaWQsIHdlIHdpbGwgcmVwb3J0IHRoZQ0KQEAg LTExNTYsMTMgKzExNTcsMTIgQEAgaW50IGFjcGlfcHJvY2Vzc29yX3NldF90aHJvdHRsaW5nKHN0 cnVjdCBhY3BpX3Byb2Nlc3NvciAqcHIsDQogCQkJCQkib24gQ1BVICVkXG4iLCBpKSk7DQogCQkJ CWNvbnRpbnVlOw0KIAkJCX0NCi0JCQl0X3N0YXRlLmNwdSA9IGk7DQotCQkJLyogRklYTUU6IHVz ZSB3b3JrX29uX2NwdSgpICovDQotCQkJaWYgKHNldF9jcHVzX2FsbG93ZWRfcHRyKGN1cnJlbnQs IGNwdW1hc2tfb2YoaSkpKQ0KLQkJCQljb250aW51ZTsNCi0JCQlyZXQgPSBtYXRjaF9wci0+dGhy b3R0bGluZy4NCi0JCQkJYWNwaV9wcm9jZXNzb3Jfc2V0X3Rocm90dGxpbmcoDQotCQkJCW1hdGNo X3ByLCB0X3N0YXRlLnRhcmdldF9zdGF0ZSwgZm9yY2UpOw0KKw0KKwkJCWFyZy5wciA9IG1hdGNo X3ByOw0KKwkJCWFyZy50YXJnZXRfc3RhdGUgPSBzdGF0ZTsNCisJCQlhcmcuZm9yY2UgPSBmb3Jj ZTsNCisJCQlyZXQgPSB3b3JrX29uX2NwdShwci0+aWQsIGFjcGlfcHJvY2Vzc29yX3Rocm90dGxp bmdfZm4sDQorCQkJCSZhcmcpOw0KIAkJfQ0KIAl9DQogCS8qDQpAQCAtMTE3MSwxNyArMTE3MSwx MiBAQCBpbnQgYWNwaV9wcm9jZXNzb3Jfc2V0X3Rocm90dGxpbmcoc3RydWN0IGFjcGlfcHJvY2Vz c29yICpwciwNCiAJICogYWZmZWN0ZWQgY3B1IHRvIHVwZGF0ZSB0aGUgVC1zdGF0ZXMuDQogCSAq IFRoZSBub3RpZmllciBldmVudCBpcyBUSFJPVFRMSU5HX1BPU1RDSEFOR0UNCiAJICovDQotCWZv cl9lYWNoX2NwdShpLCBvbmxpbmVfdGhyb3R0bGluZ19jcHVzKSB7DQorCWZvcl9lYWNoX2NwdV9h bmQoaSwgY3B1X29ubGluZV9tYXNrLCBwX3Rocm90dGxpbmctPnNoYXJlZF9jcHVfbWFwKSB7DQog CQl0X3N0YXRlLmNwdSA9IGk7DQogCQlhY3BpX3Byb2Nlc3Nvcl90aHJvdHRsaW5nX25vdGlmaWVy KFRIUk9UVExJTkdfUE9TVENIQU5HRSwNCiAJCQkJCQkJJnRfc3RhdGUpOw0KIAl9DQotCS8qIHJl c3RvcmUgdGhlIHByZXZpb3VzIHN0YXRlICovDQotCS8qIEZJWE1FOiB1c2Ugd29ya19vbl9jcHUo KSAqLw0KLQlzZXRfY3B1c19hbGxvd2VkX3B0cihjdXJyZW50LCBzYXZlZF9tYXNrKTsNCi1leGl0 Og0KLQlmcmVlX2NwdW1hc2tfdmFyKG9ubGluZV90aHJvdHRsaW5nX2NwdXMpOw0KLQlmcmVlX2Nw dW1hc2tfdmFyKHNhdmVkX21hc2spOw0KKw0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2FjcGkvdmlkZW8uYyBiL2RyaXZlcnMvYWNwaS92aWRlby5jDQppbmRleCBl MTk4OThkLi4yZWJmZGQyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9hY3BpL3ZpZGVvLmMNCisrKyBi L2RyaXZlcnMvYWNwaS92aWRlby5jDQpAQCAtNjQ2LDYgKzY0Niw3IEBAIGFjcGlfdmlkZW9faW5p dF9icmlnaHRuZXNzKHN0cnVjdCBhY3BpX3ZpZGVvX2RldmljZSAqZGV2aWNlKQ0KIAl1bmlvbiBh Y3BpX29iamVjdCAqbzsNCiAJc3RydWN0IGFjcGlfdmlkZW9fZGV2aWNlX2JyaWdodG5lc3MgKmJy ID0gTlVMTDsNCiAJaW50IHJlc3VsdCA9IC1FSU5WQUw7DQorCXUzMiB2YWx1ZTsNCiANCiAJaWYg KCFBQ1BJX1NVQ0NFU1MoYWNwaV92aWRlb19kZXZpY2VfbGNkX3F1ZXJ5X2xldmVscyhkZXZpY2Us ICZvYmopKSkgew0KIAkJQUNQSV9ERUJVR19QUklOVCgoQUNQSV9EQl9JTkZPLCAiQ291bGQgbm90 IHF1ZXJ5IGF2YWlsYWJsZSAiDQpAQCAtNjc2LDcgKzY3NywxMiBAQCBhY3BpX3ZpZGVvX2luaXRf YnJpZ2h0bmVzcyhzdHJ1Y3QgYWNwaV92aWRlb19kZXZpY2UgKmRldmljZSkNCiAJCQlwcmludGso S0VSTl9FUlIgUFJFRklYICJJbnZhbGlkIGRhdGFcbiIpOw0KIAkJCWNvbnRpbnVlOw0KIAkJfQ0K LQkJYnItPmxldmVsc1tjb3VudF0gPSAodTMyKSBvLT5pbnRlZ2VyLnZhbHVlOw0KKwkJdmFsdWUg PSAodTMyKSBvLT5pbnRlZ2VyLnZhbHVlOw0KKwkJLyogU2tpcCBkdXBsaWNhdGUgZW50cmllcyAq Lw0KKwkJaWYgKGNvdW50ID4gMiAmJiBici0+bGV2ZWxzW2NvdW50IC0gMV0gPT0gdmFsdWUpDQor CQkJY29udGludWU7DQorDQorCQlici0+bGV2ZWxzW2NvdW50XSA9IHZhbHVlOw0KIA0KIAkJaWYg KGJyLT5sZXZlbHNbY291bnRdID4gbWF4X2xldmVsKQ0KIAkJCW1heF9sZXZlbCA9IGJyLT5sZXZl bHNbY291bnRdOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2FoY2kuYyBiL2RyaXZlcnMvYXRh L2FoY2kuYw0KaW5kZXggZjQwMDBlZS4uMGZlZmZjMyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYXRh L2FoY2kuYw0KKysrIGIvZHJpdmVycy9hdGEvYWhjaS5jDQpAQCAtNjEsNiArNjEsNyBAQCBlbnVt IGJvYXJkX2lkcyB7DQogCS8qIGJvYXJkIElEcyBieSBmZWF0dXJlIGluIGFscGhhYmV0aWNhbCBv cmRlciAqLw0KIAlib2FyZF9haGNpLA0KIAlib2FyZF9haGNpX2lnbl9pZmVyciwNCisJYm9hcmRf YWhjaV9ub25jcSwNCiAJYm9hcmRfYWhjaV9ub3NudGYsDQogCWJvYXJkX2FoY2lfeWVzX2ZicywN CiANCkBAIC0xMjMsNiArMTI0LDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRhX3BvcnRfaW5m byBhaGNpX3BvcnRfaW5mb1tdID0gew0KIAkJLnVkbWFfbWFzawk9IEFUQV9VRE1BNiwNCiAJCS5w b3J0X29wcwk9ICZhaGNpX29wcywNCiAJfSwNCisJW2JvYXJkX2FoY2lfbm9uY3FdID0gew0KKwkJ QUhDSV9IRkxBR1MJKEFIQ0lfSEZMQUdfTk9fTkNRKSwNCisJCS5mbGFncwkJPSBBSENJX0ZMQUdf Q09NTU9OLA0KKwkJLnBpb19tYXNrCT0gQVRBX1BJTzQsDQorCQkudWRtYV9tYXNrCT0gQVRBX1VE TUE2LA0KKwkJLnBvcnRfb3BzCT0gJmFoY2lfb3BzLA0KKwl9LA0KIAlbYm9hcmRfYWhjaV9ub3Nu dGZdID0NCiAJew0KIAkJQUhDSV9IRkxBR1MJKEFIQ0lfSEZMQUdfTk9fU05URiksDQpAQCAtNDU4 LDYgKzQ2NiwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgYWhjaV9wY2lf dGJsW10gPSB7DQogCXsgUENJX1ZERVZJQ0UoQVNNRURJQSwgMHgwNjExKSwgYm9hcmRfYWhjaSB9 LAkvKiBBU00xMDYxICovDQogCXsgUENJX1ZERVZJQ0UoQVNNRURJQSwgMHgwNjEyKSwgYm9hcmRf YWhjaSB9LAkvKiBBU00xMDYyICovDQogDQorCS8qDQorCSAqIFNhbXN1bmcgU1NEcyBmb3VuZCBv biBzb21lIG1hY2Jvb2tzLiAgTkNRIHRpbWVzIG91dC4NCisJICogaHR0cHM6Ly9idWd6aWxsYS5r ZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD02MDczMQ0KKwkgKi8NCisJeyBQQ0lfVkRFVklDRShT QU1TVU5HLCAweDE2MDApLCBib2FyZF9haGNpX25vbmNxIH0sDQorDQogCS8qIEVubW90dXMgKi8N CiAJeyBQQ0lfREVWSUNFKDB4MWM0NCwgMHg4MDAwKSwgYm9hcmRfYWhjaSB9LA0KIA0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvYXRhL2xpYmF0YS1jb3JlLmMgYi9kcml2ZXJzL2F0YS9saWJhdGEtY29y ZS5jDQppbmRleCA3MmJiYjVlLi5iM2YwZjVhIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9hdGEvbGli YXRhLWNvcmUuYw0KKysrIGIvZHJpdmVycy9hdGEvbGliYXRhLWNvcmUuYw0KQEAgLTIxODgsNiAr MjE4OCwxNiBAQCBpbnQgYXRhX2Rldl9jb25maWd1cmUoc3RydWN0IGF0YV9kZXZpY2UgKmRldikN CiAJaWYgKHJjKQ0KIAkJcmV0dXJuIHJjOw0KIA0KKwkvKiBzb21lIFdEIFNBVEEtMSBkcml2ZXMg aGF2ZSBpc3N1ZXMgd2l0aCBMUE0sIHR1cm4gb24gTk9MUE0gZm9yIHRoZW0gKi8NCisJaWYgKChk ZXYtPmhvcmthZ2UgJiBBVEFfSE9SS0FHRV9XRF9CUk9LRU5fTFBNKSAmJg0KKwkgICAgKGlkWzc2 XSAmIDB4ZSkgPT0gMHgyKQ0KKwkJZGV2LT5ob3JrYWdlIHw9IEFUQV9IT1JLQUdFX05PTFBNOw0K Kw0KKwlpZiAoZGV2LT5ob3JrYWdlICYgQVRBX0hPUktBR0VfTk9MUE0pIHsNCisJCWF0YV9kZXZf d2FybihkZXYsICJMUE0gc3VwcG9ydCBicm9rZW4sIGZvcmNpbmcgbWF4X3Bvd2VyXG4iKTsNCisJ CWRldi0+bGluay0+YXAtPnRhcmdldF9scG1fcG9saWN5ID0gQVRBX0xQTV9NQVhfUE9XRVI7DQor CX0NCisNCiAJLyogbGV0IEFDUEkgd29yayBpdHMgbWFnaWMgKi8NCiAJcmMgPSBhdGFfYWNwaV9v bl9kZXZjZmcoZGV2KTsNCiAJaWYgKHJjKQ0KQEAgLTQwOTksNiArNDEwOSw3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgYXRhX2JsYWNrbGlzdF9lbnRyeSBhdGFfZGV2aWNlX2JsYWNrbGlzdCBbXSA9 IHsNCiANCiAJLyogU2VhZ2F0ZSBNb21lbnR1cyBTcGluUG9pbnQgTTggc2VlbSB0byBoYXZlIEZQ TURBX0FBIGlzc3VlcyAqLw0KIAl7ICJTVDEwMDBMTTAyNCBITi1NMTAxTUJCIiwgIjJBUjEwMDAx IiwJQVRBX0hPUktBR0VfQlJPS0VOX0ZQRE1BX0FBIH0sDQorCXsgIlNUMTAwMExNMDI0IEhOLU0x MDFNQkIiLCAiMkJBMzAwMDEiLAlBVEFfSE9SS0FHRV9CUk9LRU5fRlBETUFfQUEgfSwNCiANCiAJ LyogQmxhY2tsaXN0IGVudHJpZXMgdGFrZW4gZnJvbSBTaWxpY29uIEltYWdlIDMxMjQvMzEzMg0K IAkgICBXaW5kb3dzIGRyaXZlciAuaW5mIGZpbGUgLSBhbHNvIHNldmVyYWwgTGludXggcHJvYmxl bSByZXBvcnRzICovDQpAQCAtNDE0Myw2ICs0MTU0LDIzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg YXRhX2JsYWNrbGlzdF9lbnRyeSBhdGFfZGV2aWNlX2JsYWNrbGlzdCBbXSA9IHsNCiAJeyAiUElP TkVFUiBEVkQtUlcgIERWUi0yMTJEIiwJTlVMTCwJQVRBX0hPUktBR0VfTk9TRVRYRkVSIH0sDQog CXsgIlBJT05FRVIgRFZELVJXICBEVlItMjE2RCIsCU5VTEwsCUFUQV9IT1JLQUdFX05PU0VUWEZF UiB9LA0KIA0KKwkvKg0KKwkgKiBTb21lIFdEIFNBVEEtSSBkcml2ZXMgc3BpbiB1cCBhbmQgZG93 biBlcnJhdGljYWxseSB3aGVuIHRoZSBsaW5rDQorCSAqIGlzIHB1dCBpbnRvIHRoZSBzbHVtYmVy IG1vZGUuICBXZSBkb24ndCBoYXZlIGZ1bGwgbGlzdCBvZiB0aGUNCisJICogYWZmZWN0ZWQgZGV2 aWNlcy4gIERpc2FibGUgTFBNIGlmIHRoZSBkZXZpY2UgbWF0Y2hlcyBvbmUgb2YgdGhlDQorCSAq IGtub3duIHByZWZpeGVzIGFuZCBpcyBTQVRBLTEuICBBcyBhIHNpZGUgZWZmZWN0IExQTSBwYXJ0 aWFsIGlzDQorCSAqIGxvc3QgdG9vLg0KKwkgKg0KKwkgKiBodHRwczovL2J1Z3ppbGxhLmtlcm5l bC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MjExDQorCSAqLw0KKwl7ICJXREMgV0Q4MDBKRC0qIiwJ CU5VTEwsCUFUQV9IT1JLQUdFX1dEX0JST0tFTl9MUE0gfSwNCisJeyAiV0RDIFdEMTIwMEpELSoi LAkJTlVMTCwJQVRBX0hPUktBR0VfV0RfQlJPS0VOX0xQTSB9LA0KKwl7ICJXREMgV0QxNjAwSkQt KiIsCQlOVUxMLAlBVEFfSE9SS0FHRV9XRF9CUk9LRU5fTFBNIH0sDQorCXsgIldEQyBXRDIwMDBK RC0qIiwJCU5VTEwsCUFUQV9IT1JLQUdFX1dEX0JST0tFTl9MUE0gfSwNCisJeyAiV0RDIFdEMjUw MEpELSoiLAkJTlVMTCwJQVRBX0hPUktBR0VfV0RfQlJPS0VOX0xQTSB9LA0KKwl7ICJXREMgV0Qz MDAwSkQtKiIsCQlOVUxMLAlBVEFfSE9SS0FHRV9XRF9CUk9LRU5fTFBNIH0sDQorCXsgIldEQyBX RDMyMDBKRC0qIiwJCU5VTEwsCUFUQV9IT1JLQUdFX1dEX0JST0tFTl9MUE0gfSwNCisNCiAJLyog RW5kIE1hcmtlciAqLw0KIAl7IH0NCiB9Ow0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2xpYmF0 YS1wbXAuYyBiL2RyaXZlcnMvYXRhL2xpYmF0YS1wbXAuYw0KaW5kZXggZjVjMzViZS4uMGJhMzJm ZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYXRhL2xpYmF0YS1wbXAuYw0KKysrIGIvZHJpdmVycy9h dGEvbGliYXRhLXBtcC5jDQpAQCAtNDQ3LDggKzQ0NywxMSBAQCBzdGF0aWMgdm9pZCBzYXRhX3Bt cF9xdWlya3Moc3RydWN0IGF0YV9wb3J0ICphcCkNCiAJCSAqIG90aGVyd2lzZS4gIERvbid0IHRy eSBoYXJkIHRvIHJlY292ZXIgaXQuDQogCQkgKi8NCiAJCWFwLT5wbXBfbGlua1thcC0+bnJfcG1w X2xpbmtzIC0gMV0uZmxhZ3MgfD0gQVRBX0xGTEFHX05PX1JFVFJZOw0KLQl9IGVsc2UgaWYgKHZl bmRvciA9PSAweDE5N2IgJiYgZGV2aWQgPT0gMHgyMzUyKSB7DQotCQkvKiBjaGlwIGZvdW5kIGlu IFRoZXJtYWx0YWtlIEJsYWNrWCBEdWV0LCBqbWljcm9uIEpNQjM1MD8gKi8NCisJfSBlbHNlIGlm ICh2ZW5kb3IgPT0gMHgxOTdiICYmIChkZXZpZCA9PSAweDIzNTIgfHwgZGV2aWQgPT0gMHgwMzI1 KSkgew0KKwkJLyoNCisJCSAqIDB4MjM1MjogZm91bmQgaW4gVGhlcm1hbHRha2UgQmxhY2tYIER1 ZXQsIGptaWNyb24gSk1CMzUwPw0KKwkJICogMHgwMzI1OiBqbWljcm9uIEpNQjM5NC4NCisJCSAq Lw0KIAkJYXRhX2Zvcl9lYWNoX2xpbmsobGluaywgYXAsIEVER0UpIHsNCiAJCQkvKiBTUlNUIGJy ZWFrcyBkZXRlY3Rpb24gYW5kIGRpc2tzIGdldCBtaXNjbGFzc2lmaWVkDQogCQkJICogTFBNIGRp c2FibGVkIHRvIGF2b2lkIHBvdGVudGlhbCBwcm9ibGVtcw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv YXRhL2xpYmF0YS1zY3NpLmMgYi9kcml2ZXJzL2F0YS9saWJhdGEtc2NzaS5jDQppbmRleCBkZDMz MmU1Li44NDYwZTYyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9hdGEvbGliYXRhLXNjc2kuYw0KKysr IGIvZHJpdmVycy9hdGEvbGliYXRhLXNjc2kuYw0KQEAgLTExMSwxMiArMTExLDE0IEBAIHN0YXRp YyBjb25zdCBjaGFyICphdGFfbHBtX3BvbGljeV9uYW1lc1tdID0gew0KIAlbQVRBX0xQTV9NSU5f UE9XRVJdCT0gIm1pbl9wb3dlciIsDQogfTsNCiANCi1zdGF0aWMgc3NpemVfdCBhdGFfc2NzaV9s cG1fc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LA0KK3N0YXRpYyBzc2l6ZV90IGF0YV9zY3NpX2xw bV9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXZpY2UsDQogCQkJCSAgc3RydWN0IGRldmljZV9hdHRy aWJ1dGUgKmF0dHIsDQogCQkJCSAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpDQogew0K LQlzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCA9IGNsYXNzX3RvX3Nob3N0KGRldik7DQorCXN0cnVj dCBTY3NpX0hvc3QgKnNob3N0ID0gY2xhc3NfdG9fc2hvc3QoZGV2aWNlKTsNCiAJc3RydWN0IGF0 YV9wb3J0ICphcCA9IGF0YV9zaG9zdF90b19wb3J0KHNob3N0KTsNCisJc3RydWN0IGF0YV9saW5r ICpsaW5rOw0KKwlzdHJ1Y3QgYXRhX2RldmljZSAqZGV2Ow0KIAllbnVtIGF0YV9scG1fcG9saWN5 IHBvbGljeTsNCiAJdW5zaWduZWQgbG9uZyBmbGFnczsNCiANCkBAIC0xMzIsMTAgKzEzNCwyMCBA QCBzdGF0aWMgc3NpemVfdCBhdGFfc2NzaV9scG1fc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LA0K IAkJcmV0dXJuIC1FSU5WQUw7DQogDQogCXNwaW5fbG9ja19pcnFzYXZlKGFwLT5sb2NrLCBmbGFn cyk7DQorDQorCWF0YV9mb3JfZWFjaF9saW5rKGxpbmssIGFwLCBFREdFKSB7DQorCQlhdGFfZm9y X2VhY2hfZGV2KGRldiwgJmFwLT5saW5rLCBFTkFCTEVEKSB7DQorCQkJaWYgKGRldi0+aG9ya2Fn ZSAmIEFUQV9IT1JLQUdFX05PTFBNKSB7DQorCQkJCWNvdW50ID0gLUVPUE5PVFNVUFA7DQorCQkJ CWdvdG8gb3V0X3VubG9jazsNCisJCQl9DQorCQl9DQorCX0NCisNCiAJYXAtPnRhcmdldF9scG1f cG9saWN5ID0gcG9saWN5Ow0KIAlhdGFfcG9ydF9zY2hlZHVsZV9laChhcCk7DQorb3V0X3VubG9j azoNCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShhcC0+bG9jaywgZmxhZ3MpOw0KLQ0KIAlyZXR1 cm4gY291bnQ7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL3NhdGFfc2lsLmMgYi9k cml2ZXJzL2F0YS9zYXRhX3NpbC5jDQppbmRleCA5ZGZiNDBiLi4wYzRlZDg5IDEwMDY0NA0KLS0t IGEvZHJpdmVycy9hdGEvc2F0YV9zaWwuYw0KKysrIGIvZHJpdmVycy9hdGEvc2F0YV9zaWwuYw0K QEAgLTE1Nyw2ICsxNTcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNpbF9kcml2ZWxpc3Qgew0K IAl7ICJTVDM4MDAxMUFTTCIsCVNJTF9RVUlSS19NT0QxNVdSSVRFIH0sDQogCXsgIlNUMzEyMDAy MkFTTCIsCVNJTF9RVUlSS19NT0QxNVdSSVRFIH0sDQogCXsgIlNUMzE2MDAyMUFTTCIsCVNJTF9R VUlSS19NT0QxNVdSSVRFIH0sDQorCXsgIlRPU0hJQkEgTUsyNTYxR1NZTiIsCVNJTF9RVUlSS19N T0QxNVdSSVRFIH0sDQogCXsgIk1heHRvciA0RDA2MEgzIiwJU0lMX1FVSVJLX1VETUE1TUFYIH0s DQogCXsgfQ0KIH07DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYyBi L2RyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250LmMNCmluZGV4IDdiMmVjNTkuLjk2YjhjYjcgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtmcm9udC5jDQorKysgYi9kcml2ZXJzL2Js b2NrL3hlbi1ibGtmcm9udC5jDQpAQCAtMTI4MSwxMyArMTI4MSwxNiBAQCBzdGF0aWMgdm9pZCBi bGtiYWNrX2NoYW5nZWQoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwNCiAJY2FzZSBYZW5idXNT dGF0ZVJlY29uZmlndXJpbmc6DQogCWNhc2UgWGVuYnVzU3RhdGVSZWNvbmZpZ3VyZWQ6DQogCWNh c2UgWGVuYnVzU3RhdGVVbmtub3duOg0KLQljYXNlIFhlbmJ1c1N0YXRlQ2xvc2VkOg0KIAkJYnJl YWs7DQogDQogCWNhc2UgWGVuYnVzU3RhdGVDb25uZWN0ZWQ6DQogCQlibGtmcm9udF9jb25uZWN0 KGluZm8pOw0KIAkJYnJlYWs7DQogDQorCWNhc2UgWGVuYnVzU3RhdGVDbG9zZWQ6DQorCQlpZiAo ZGV2LT5zdGF0ZSA9PSBYZW5idXNTdGF0ZUNsb3NlZCkNCisJCQlicmVhazsNCisJCS8qIE1pc3Nl ZCB0aGUgYmFja2VuZCdzIENsb3Npbmcgc3RhdGUgLS0gZmFsbHRocm91Z2ggKi8NCiAJY2FzZSBY ZW5idXNTdGF0ZUNsb3Npbmc6DQogCQlibGtmcm9udF9jbG9zaW5nKGluZm8pOw0KIAkJYnJlYWs7 DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3Jhdy5jIGIvZHJpdmVycy9jaGFyL3Jhdy5jDQpp bmRleCBiNmRlMmMwLi41ZGVkMWE1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9jaGFyL3Jhdy5jDQor KysgYi9kcml2ZXJzL2NoYXIvcmF3LmMNCkBAIC0xOTAsNyArMTkwLDcgQEAgc3RhdGljIGludCBi aW5kX2dldChpbnQgbnVtYmVyLCBkZXZfdCAqZGV2KQ0KIAlzdHJ1Y3QgcmF3X2RldmljZV9kYXRh ICpyYXdkZXY7DQogCXN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXY7DQogDQotCWlmIChudW1iZXIg PD0gMCB8fCBudW1iZXIgPj0gTUFYX1JBV19NSU5PUlMpDQorCWlmIChudW1iZXIgPD0gMCB8fCBu dW1iZXIgPj0gbWF4X3Jhd19taW5vcnMpDQogCQlyZXR1cm4gLUVJTlZBTDsNCiANCiAJcmF3ZGV2 ID0gJnJhd19kZXZpY2VzW251bWJlcl07DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEvaW9hdC9k bWEuYyBiL2RyaXZlcnMvZG1hL2lvYXQvZG1hLmMNCmluZGV4IDY1OTUxODAuLjNmODkzODYgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL2RtYS9pb2F0L2RtYS5jDQorKysgYi9kcml2ZXJzL2RtYS9pb2F0 L2RtYS5jDQpAQCAtNzUsNyArNzUsOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaW9hdF9kbWFfZG9f aW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRhdGEpDQogCWF0dG5zdGF0dXMgPSByZWFkbChpbnN0 YW5jZS0+cmVnX2Jhc2UgKyBJT0FUX0FUVE5TVEFUVVNfT0ZGU0VUKTsNCiAJZm9yX2VhY2hfc2V0 X2JpdChiaXQsICZhdHRuc3RhdHVzLCBCSVRTX1BFUl9MT05HKSB7DQogCQljaGFuID0gaW9hdF9j aGFuX2J5X2luZGV4KGluc3RhbmNlLCBiaXQpOw0KLQkJdGFza2xldF9zY2hlZHVsZSgmY2hhbi0+ Y2xlYW51cF90YXNrKTsNCisJCWlmICh0ZXN0X2JpdChJT0FUX1JVTiwgJmNoYW4tPnN0YXRlKSkN CisJCQl0YXNrbGV0X3NjaGVkdWxlKCZjaGFuLT5jbGVhbnVwX3Rhc2spOw0KIAl9DQogDQogCXdy aXRlYihpbnRyY3RybCwgaW5zdGFuY2UtPnJlZ19iYXNlICsgSU9BVF9JTlRSQ1RSTF9PRkZTRVQp Ow0KQEAgLTkxLDcgKzkyLDggQEAgc3RhdGljIGlycXJldHVybl90IGlvYXRfZG1hX2RvX2ludGVy cnVwdF9tc2l4KGludCBpcnEsIHZvaWQgKmRhdGEpDQogew0KIAlzdHJ1Y3QgaW9hdF9jaGFuX2Nv bW1vbiAqY2hhbiA9IGRhdGE7DQogDQotCXRhc2tsZXRfc2NoZWR1bGUoJmNoYW4tPmNsZWFudXBf dGFzayk7DQorCWlmICh0ZXN0X2JpdChJT0FUX1JVTiwgJmNoYW4tPnN0YXRlKSkNCisJCXRhc2ts ZXRfc2NoZWR1bGUoJmNoYW4tPmNsZWFudXBfdGFzayk7DQogDQogCXJldHVybiBJUlFfSEFORExF RDsNCiB9DQpAQCAtMTEzLDcgKzExNSw2IEBAIHZvaWQgaW9hdF9pbml0X2NoYW5uZWwoc3RydWN0 IGlvYXRkbWFfZGV2aWNlICpkZXZpY2UsIHN0cnVjdCBpb2F0X2NoYW5fY29tbW9uICpjDQogCWNo YW4tPnRpbWVyLmZ1bmN0aW9uID0gZGV2aWNlLT50aW1lcl9mbjsNCiAJY2hhbi0+dGltZXIuZGF0 YSA9IGRhdGE7DQogCXRhc2tsZXRfaW5pdCgmY2hhbi0+Y2xlYW51cF90YXNrLCBkZXZpY2UtPmNs ZWFudXBfZm4sIGRhdGEpOw0KLQl0YXNrbGV0X2Rpc2FibGUoJmNoYW4tPmNsZWFudXBfdGFzayk7 DQogfQ0KIA0KIC8qKg0KQEAgLTM1NiwxMyArMzU3LDQzIEBAIHN0YXRpYyBpbnQgaW9hdDFfZG1h X2FsbG9jX2NoYW5fcmVzb3VyY2VzKHN0cnVjdCBkbWFfY2hhbiAqYykNCiAJd3JpdGVsKCgodTY0 KSBjaGFuLT5jb21wbGV0aW9uX2RtYSkgPj4gMzIsDQogCSAgICAgICBjaGFuLT5yZWdfYmFzZSAr IElPQVRfQ0hBTkNNUF9PRkZTRVRfSElHSCk7DQogDQotCXRhc2tsZXRfZW5hYmxlKCZjaGFuLT5j bGVhbnVwX3Rhc2spOw0KKwlzZXRfYml0KElPQVRfUlVOLCAmY2hhbi0+c3RhdGUpOw0KIAlpb2F0 MV9kbWFfc3RhcnRfbnVsbF9kZXNjKGlvYXQpOyAgLyogZ2l2ZSBjaGFpbiB0byBkbWEgZGV2aWNl ICovDQogCWRldl9kYmcodG9fZGV2KGNoYW4pLCAiJXM6IGFsbG9jYXRlZCAlZCBkZXNjcmlwdG9y c1xuIiwNCiAJCV9fZnVuY19fLCBpb2F0LT5kZXNjY291bnQpOw0KIAlyZXR1cm4gaW9hdC0+ZGVz Y2NvdW50Ow0KIH0NCiANCit2b2lkIGlvYXRfc3RvcChzdHJ1Y3QgaW9hdF9jaGFuX2NvbW1vbiAq Y2hhbikNCit7DQorCXN0cnVjdCBpb2F0ZG1hX2RldmljZSAqZGV2aWNlID0gY2hhbi0+ZGV2aWNl Ow0KKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldmljZS0+cGRldjsNCisJaW50IGNoYW5faWQg PSBjaGFuX251bShjaGFuKTsNCisNCisJLyogMS8gc3RvcCBpcnEgZnJvbSBmaXJpbmcgdGFza2xl dHMNCisJICogMi8gc3RvcCB0aGUgdGFza2xldCBmcm9tIHJlLWFybWluZyBpcnFzDQorCSAqLw0K KwljbGVhcl9iaXQoSU9BVF9SVU4sICZjaGFuLT5zdGF0ZSk7DQorDQorCS8qIGZsdXNoIGluZmxp Z2h0IGludGVycnVwdHMgKi8NCisjaWZkZWYgQ09ORklHX1BDSV9NU0kNCisJaWYgKHBkZXYtPm1z aXhfZW5hYmxlZCkgew0KKwkJc3RydWN0IG1zaXhfZW50cnkgKm1zaXggPSAmZGV2aWNlLT5tc2l4 X2VudHJpZXNbY2hhbl9pZF07DQorCQlzeW5jaHJvbml6ZV9pcnEobXNpeC0+dmVjdG9yKTsNCisJ fSBlbHNlDQorI2VuZGlmDQorCQlzeW5jaHJvbml6ZV9pcnEocGRldi0+aXJxKTsNCisNCisJLyog Zmx1c2ggaW5mbGlnaHQgdGltZXJzICovDQorCWRlbF90aW1lcl9zeW5jKCZjaGFuLT50aW1lcik7 DQorDQorCS8qIGZsdXNoIGluZmxpZ2h0IHRhc2tsZXQgcnVucyAqLw0KKwl0YXNrbGV0X2tpbGwo JmNoYW4tPmNsZWFudXBfdGFzayk7DQorDQorCS8qIGZpbmFsIGNsZWFudXAgbm93IHRoYXQgZXZl cnl0aGluZyBpcyBxdWllc2NlZCBhbmQgY2FuJ3QgcmUtYXJtICovDQorCWRldmljZS0+Y2xlYW51 cF9mbigodW5zaWduZWQgbG9uZykgJmNoYW4tPmNvbW1vbik7DQorfQ0KKw0KIC8qKg0KICAqIGlv YXQxX2RtYV9mcmVlX2NoYW5fcmVzb3VyY2VzIC0gcmVsZWFzZSBhbGwgdGhlIGRlc2NyaXB0b3Jz DQogICogQGNoYW46IHRoZSBjaGFubmVsIHRvIGJlIGNsZWFuZWQNCkBAIC0zODEsOSArNDEyLDcg QEAgc3RhdGljIHZvaWQgaW9hdDFfZG1hX2ZyZWVfY2hhbl9yZXNvdXJjZXMoc3RydWN0IGRtYV9j aGFuICpjKQ0KIAlpZiAoaW9hdC0+ZGVzY2NvdW50ID09IDApDQogCQlyZXR1cm47DQogDQotCXRh c2tsZXRfZGlzYWJsZSgmY2hhbi0+Y2xlYW51cF90YXNrKTsNCi0JZGVsX3RpbWVyX3N5bmMoJmNo YW4tPnRpbWVyKTsNCi0JaW9hdDFfY2xlYW51cChpb2F0KTsNCisJaW9hdF9zdG9wKGNoYW4pOw0K IA0KIAkvKiBEZWxheSAxMDBtcyBhZnRlciByZXNldCB0byBhbGxvdyBpbnRlcm5hbCBETUEgbG9n aWMgdG8gcXVpZXNjZQ0KIAkgKiBiZWZvcmUgcmVtb3ZpbmcgRE1BIGRlc2NyaXB0b3IgcmVzb3Vy Y2VzLg0KQEAgLTUyOCw4ICs1NTcsMTEgQEAgaW9hdDFfZG1hX3ByZXBfbWVtY3B5KHN0cnVjdCBk bWFfY2hhbiAqYywgZG1hX2FkZHJfdCBkbWFfZGVzdCwNCiBzdGF0aWMgdm9pZCBpb2F0MV9jbGVh bnVwX2V2ZW50KHVuc2lnbmVkIGxvbmcgZGF0YSkNCiB7DQogCXN0cnVjdCBpb2F0X2RtYV9jaGFu ICppb2F0ID0gdG9faW9hdF9jaGFuKCh2b2lkICopIGRhdGEpOw0KKwlzdHJ1Y3QgaW9hdF9jaGFu X2NvbW1vbiAqY2hhbiA9ICZpb2F0LT5iYXNlOw0KIA0KIAlpb2F0MV9jbGVhbnVwKGlvYXQpOw0K KwlpZiAoIXRlc3RfYml0KElPQVRfUlVOLCAmY2hhbi0+c3RhdGUpKQ0KKwkJcmV0dXJuOw0KIAl3 cml0ZXcoSU9BVF9DSEFOQ1RSTF9SVU4sIGlvYXQtPmJhc2UucmVnX2Jhc2UgKyBJT0FUX0NIQU5D VFJMX09GRlNFVCk7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1hL2lvYXQvZG1hLmgg Yi9kcml2ZXJzL2RtYS9pb2F0L2RtYS5oDQppbmRleCA4YmViZGRkLi40NjZlMGYzNGMgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL2RtYS9pb2F0L2RtYS5oDQorKysgYi9kcml2ZXJzL2RtYS9pb2F0L2Rt YS5oDQpAQCAtMzQ0LDYgKzM0NCw3IEBAIGJvb2wgaW9hdF9jbGVhbnVwX3ByZWFtYmxlKHN0cnVj dCBpb2F0X2NoYW5fY29tbW9uICpjaGFuLA0KIAkJCSAgIGRtYV9hZGRyX3QgKnBoeXNfY29tcGxl dGUpOw0KIHZvaWQgaW9hdF9rb2JqZWN0X2FkZChzdHJ1Y3QgaW9hdGRtYV9kZXZpY2UgKmRldmlj ZSwgc3RydWN0IGtvYmpfdHlwZSAqdHlwZSk7DQogdm9pZCBpb2F0X2tvYmplY3RfZGVsKHN0cnVj dCBpb2F0ZG1hX2RldmljZSAqZGV2aWNlKTsNCit2b2lkIGlvYXRfc3RvcChzdHJ1Y3QgaW9hdF9j aGFuX2NvbW1vbiAqY2hhbik7DQogZXh0ZXJuIGNvbnN0IHN0cnVjdCBzeXNmc19vcHMgaW9hdF9z eXNmc19vcHM7DQogZXh0ZXJuIHN0cnVjdCBpb2F0X3N5c2ZzX2VudHJ5IGlvYXRfdmVyc2lvbl9h dHRyOw0KIGV4dGVybiBzdHJ1Y3QgaW9hdF9zeXNmc19lbnRyeSBpb2F0X2NhcF9hdHRyOw0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZG1hL2lvYXQvZG1hX3YyLmMgYi9kcml2ZXJzL2RtYS9pb2F0L2Rt YV92Mi5jDQppbmRleCBjYjg4NjRkLi5lNjA5MzNlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9kbWEv aW9hdC9kbWFfdjIuYw0KKysrIGIvZHJpdmVycy9kbWEvaW9hdC9kbWFfdjIuYw0KQEAgLTE4OSw4 ICsxODksMTEgQEAgc3RhdGljIHZvaWQgaW9hdDJfY2xlYW51cChzdHJ1Y3QgaW9hdDJfZG1hX2No YW4gKmlvYXQpDQogdm9pZCBpb2F0Ml9jbGVhbnVwX2V2ZW50KHVuc2lnbmVkIGxvbmcgZGF0YSkN CiB7DQogCXN0cnVjdCBpb2F0Ml9kbWFfY2hhbiAqaW9hdCA9IHRvX2lvYXQyX2NoYW4oKHZvaWQg KikgZGF0YSk7DQorCXN0cnVjdCBpb2F0X2NoYW5fY29tbW9uICpjaGFuID0gJmlvYXQtPmJhc2U7 DQogDQogCWlvYXQyX2NsZWFudXAoaW9hdCk7DQorCWlmICghdGVzdF9iaXQoSU9BVF9SVU4sICZj aGFuLT5zdGF0ZSkpDQorCQlyZXR1cm47DQogCXdyaXRldyhJT0FUX0NIQU5DVFJMX1JVTiwgaW9h dC0+YmFzZS5yZWdfYmFzZSArIElPQVRfQ0hBTkNUUkxfT0ZGU0VUKTsNCiB9DQogDQpAQCAtNTQy LDEwICs1NDUsMTAgQEAgaW50IGlvYXQyX2FsbG9jX2NoYW5fcmVzb3VyY2VzKHN0cnVjdCBkbWFf Y2hhbiAqYykNCiAJaW9hdC0+aXNzdWVkID0gMDsNCiAJaW9hdC0+dGFpbCA9IDA7DQogCWlvYXQt PmFsbG9jX29yZGVyID0gb3JkZXI7DQorCXNldF9iaXQoSU9BVF9SVU4sICZjaGFuLT5zdGF0ZSk7 DQogCXNwaW5fdW5sb2NrX2JoKCZpb2F0LT5wcmVwX2xvY2spOw0KIAlzcGluX3VubG9ja19iaCgm Y2hhbi0+Y2xlYW51cF9sb2NrKTsNCiANCi0JdGFza2xldF9lbmFibGUoJmNoYW4tPmNsZWFudXBf dGFzayk7DQogCWlvYXQyX3N0YXJ0X251bGxfZGVzYyhpb2F0KTsNCiANCiAJLyogY2hlY2sgdGhh dCB3ZSBnb3Qgb2ZmIHRoZSBncm91bmQgKi8NCkBAIC01NTUsNyArNTU4LDYgQEAgaW50IGlvYXQy X2FsbG9jX2NoYW5fcmVzb3VyY2VzKHN0cnVjdCBkbWFfY2hhbiAqYykNCiAJfSB3aGlsZSAoaSsr IDwgMjAgJiYgIWlzX2lvYXRfYWN0aXZlKHN0YXR1cykgJiYgIWlzX2lvYXRfaWRsZShzdGF0dXMp KTsNCiANCiAJaWYgKGlzX2lvYXRfYWN0aXZlKHN0YXR1cykgfHwgaXNfaW9hdF9pZGxlKHN0YXR1 cykpIHsNCi0JCXNldF9iaXQoSU9BVF9SVU4sICZjaGFuLT5zdGF0ZSk7DQogCQlyZXR1cm4gMSA8 PCBpb2F0LT5hbGxvY19vcmRlcjsNCiAJfSBlbHNlIHsNCiAJCXUzMiBjaGFuZXJyID0gcmVhZGwo Y2hhbi0+cmVnX2Jhc2UgKyBJT0FUX0NIQU5FUlJfT0ZGU0VUKTsNCkBAIC03OTgsMTEgKzgwMCw4 IEBAIHZvaWQgaW9hdDJfZnJlZV9jaGFuX3Jlc291cmNlcyhzdHJ1Y3QgZG1hX2NoYW4gKmMpDQog CWlmICghaW9hdC0+cmluZykNCiAJCXJldHVybjsNCiANCi0JdGFza2xldF9kaXNhYmxlKCZjaGFu LT5jbGVhbnVwX3Rhc2spOw0KLQlkZWxfdGltZXJfc3luYygmY2hhbi0+dGltZXIpOw0KLQlkZXZp Y2UtPmNsZWFudXBfZm4oKHVuc2lnbmVkIGxvbmcpIGMpOw0KKwlpb2F0X3N0b3AoY2hhbik7DQog CWRldmljZS0+cmVzZXRfaHcoY2hhbik7DQotCWNsZWFyX2JpdChJT0FUX1JVTiwgJmNoYW4tPnN0 YXRlKTsNCiANCiAJc3Bpbl9sb2NrX2JoKCZjaGFuLT5jbGVhbnVwX2xvY2spOw0KIAlzcGluX2xv Y2tfYmgoJmlvYXQtPnByZXBfbG9jayk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEvaW9hdC9k bWFfdjMuYyBiL2RyaXZlcnMvZG1hL2lvYXQvZG1hX3YzLmMNCmluZGV4IDcxNDU2MGYuLjg2ODAw MzEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2RtYS9pb2F0L2RtYV92My5jDQorKysgYi9kcml2ZXJz L2RtYS9pb2F0L2RtYV92My5jDQpAQCAtMzI1LDggKzMyNSwxMSBAQCBzdGF0aWMgdm9pZCBpb2F0 M19jbGVhbnVwKHN0cnVjdCBpb2F0Ml9kbWFfY2hhbiAqaW9hdCkNCiBzdGF0aWMgdm9pZCBpb2F0 M19jbGVhbnVwX2V2ZW50KHVuc2lnbmVkIGxvbmcgZGF0YSkNCiB7DQogCXN0cnVjdCBpb2F0Ml9k bWFfY2hhbiAqaW9hdCA9IHRvX2lvYXQyX2NoYW4oKHZvaWQgKikgZGF0YSk7DQorCXN0cnVjdCBp b2F0X2NoYW5fY29tbW9uICpjaGFuID0gJmlvYXQtPmJhc2U7DQogDQogCWlvYXQzX2NsZWFudXAo aW9hdCk7DQorCWlmICghdGVzdF9iaXQoSU9BVF9SVU4sICZjaGFuLT5zdGF0ZSkpDQorCQlyZXR1 cm47DQogCXdyaXRldyhJT0FUX0NIQU5DVFJMX1JVTiwgaW9hdC0+YmFzZS5yZWdfYmFzZSArIElP QVRfQ0hBTkNUUkxfT0ZGU0VUKTsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEvc3Rl X2RtYTQwLmMgYi9kcml2ZXJzL2RtYS9zdGVfZG1hNDAuYw0KaW5kZXggMTMyNTljYS4uNGIyN2M1 NCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZG1hL3N0ZV9kbWE0MC5jDQorKysgYi9kcml2ZXJzL2Rt YS9zdGVfZG1hNDAuYw0KQEAgLTEyMDIsNiArMTIwMiw3IEBAIHN0YXRpYyB2b2lkIGRtYV90YXNr bGV0KHVuc2lnbmVkIGxvbmcgZGF0YSkNCiAJc3RydWN0IGQ0MF9jaGFuICpkNDBjID0gKHN0cnVj dCBkNDBfY2hhbiAqKSBkYXRhOw0KIAlzdHJ1Y3QgZDQwX2Rlc2MgKmQ0MGQ7DQogCXVuc2lnbmVk IGxvbmcgZmxhZ3M7DQorCWJvb2wgY2FsbGJhY2tfYWN0aXZlOw0KIAlkbWFfYXN5bmNfdHhfY2Fs bGJhY2sgY2FsbGJhY2s7DQogCXZvaWQgKmNhbGxiYWNrX3BhcmFtOw0KIA0KQEAgLTEyMjUsNiAr MTIyNiw3IEBAIHN0YXRpYyB2b2lkIGRtYV90YXNrbGV0KHVuc2lnbmVkIGxvbmcgZGF0YSkNCiAJ fQ0KIA0KIAkvKiBDYWxsYmFjayB0byBjbGllbnQgKi8NCisJY2FsbGJhY2tfYWN0aXZlID0gISEo ZDQwZC0+dHhkLmZsYWdzICYgRE1BX1BSRVBfSU5URVJSVVBUKTsNCiAJY2FsbGJhY2sgPSBkNDBk LT50eGQuY2FsbGJhY2s7DQogCWNhbGxiYWNrX3BhcmFtID0gZDQwZC0+dHhkLmNhbGxiYWNrX3Bh cmFtOw0KIA0KQEAgLTEyNDksNyArMTI1MSw3IEBAIHN0YXRpYyB2b2lkIGRtYV90YXNrbGV0KHVu c2lnbmVkIGxvbmcgZGF0YSkNCiANCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZDQwYy0+bG9j aywgZmxhZ3MpOw0KIA0KLQlpZiAoY2FsbGJhY2sgJiYgKGQ0MGQtPnR4ZC5mbGFncyAmIERNQV9Q UkVQX0lOVEVSUlVQVCkpDQorCWlmIChjYWxsYmFja19hY3RpdmUgJiYgY2FsbGJhY2spDQogCQlj YWxsYmFjayhjYWxsYmFja19wYXJhbSk7DQogDQogCXJldHVybjsNCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2VkYWMvZWRhY19tYy5jIGIvZHJpdmVycy9lZGFjL2VkYWNfbWMuYw0KaW5kZXggZDY5MTQ0 YS4uN2RiMTAxYiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZWRhYy9lZGFjX21jLmMNCisrKyBiL2Ry aXZlcnMvZWRhYy9lZGFjX21jLmMNCkBAIC0zMjMsNyArMzIzLDggQEAgc3RhdGljIHZvaWQgZWRh Y19tY193b3JrcV9mdW5jdGlvbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmtfcmVxKQ0KICAqDQog ICoJCWNhbGxlZCB3aXRoIHRoZSBtZW1fY3Rsc19tdXRleCBoZWxkDQogICovDQotc3RhdGljIHZv aWQgZWRhY19tY193b3JrcV9zZXR1cChzdHJ1Y3QgbWVtX2N0bF9pbmZvICptY2ksIHVuc2lnbmVk IG1zZWMpDQorc3RhdGljIHZvaWQgZWRhY19tY193b3JrcV9zZXR1cChzdHJ1Y3QgbWVtX2N0bF9p bmZvICptY2ksIHVuc2lnbmVkIG1zZWMsDQorCQkJCWJvb2wgaW5pdCkNCiB7DQogCWRlYnVnZjAo IiVzKClcbiIsIF9fZnVuY19fKTsNCiANCkBAIC0zMzEsNyArMzMyLDkgQEAgc3RhdGljIHZvaWQg ZWRhY19tY193b3JrcV9zZXR1cChzdHJ1Y3QgbWVtX2N0bF9pbmZvICptY2ksIHVuc2lnbmVkIG1z ZWMpDQogCWlmIChtY2ktPm9wX3N0YXRlICE9IE9QX1JVTk5JTkdfUE9MTCkNCiAJCXJldHVybjsN CiANCi0JSU5JVF9ERUxBWUVEX1dPUksoJm1jaS0+d29yaywgZWRhY19tY193b3JrcV9mdW5jdGlv bik7DQorCWlmIChpbml0KQ0KKwkJSU5JVF9ERUxBWUVEX1dPUksoJm1jaS0+d29yaywgZWRhY19t Y193b3JrcV9mdW5jdGlvbik7DQorDQogCXF1ZXVlX2RlbGF5ZWRfd29yayhlZGFjX3dvcmtxdWV1 ZSwgJm1jaS0+d29yaywgbXNlY3NfdG9famlmZmllcyhtc2VjKSk7DQogfQ0KIA0KQEAgLTM5MSw3 ICszOTQsNyBAQCB2b2lkIGVkYWNfbWNfcmVzZXRfZGVsYXlfcGVyaW9kKGludCB2YWx1ZSkNCiAJ bGlzdF9mb3JfZWFjaChpdGVtLCAmbWNfZGV2aWNlcykgew0KIAkJbWNpID0gbGlzdF9lbnRyeShp dGVtLCBzdHJ1Y3QgbWVtX2N0bF9pbmZvLCBsaW5rKTsNCiANCi0JCWVkYWNfbWNfd29ya3Ffc2V0 dXAobWNpLCAodW5zaWduZWQgbG9uZykgdmFsdWUpOw0KKwkJZWRhY19tY193b3JrcV9zZXR1cCht Y2ksIHZhbHVlLCBmYWxzZSk7DQogCX0NCiANCiAJbXV0ZXhfdW5sb2NrKCZtZW1fY3Rsc19tdXRl eCk7DQpAQCAtNTM5LDcgKzU0Miw3IEBAIGludCBlZGFjX21jX2FkZF9tYyhzdHJ1Y3QgbWVtX2N0 bF9pbmZvICptY2kpDQogCQkvKiBUaGlzIGluc3RhbmNlIGlzIE5PVyBSVU5OSU5HICovDQogCQlt Y2ktPm9wX3N0YXRlID0gT1BfUlVOTklOR19QT0xMOw0KIA0KLQkJZWRhY19tY193b3JrcV9zZXR1 cChtY2ksIGVkYWNfbWNfZ2V0X3BvbGxfbXNlYygpKTsNCisJCWVkYWNfbWNfd29ya3Ffc2V0dXAo bWNpLCBlZGFjX21jX2dldF9wb2xsX21zZWMoKSwgdHJ1ZSk7DQogCX0gZWxzZSB7DQogCQltY2kt Pm9wX3N0YXRlID0gT1BfUlVOTklOR19JTlRFUlJVUFQ7DQogCX0NCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2VkYWMvaTczMDBfZWRhYy5jIGIvZHJpdmVycy9lZGFjL2k3MzAwX2VkYWMuYw0KaW5kZXgg MjI0NGRmMC4uMWUwODQyNiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZWRhYy9pNzMwMF9lZGFjLmMN CisrKyBiL2RyaXZlcnMvZWRhYy9pNzMwMF9lZGFjLmMNCkBAIC05NjIsMzMgKzk2MiwzNSBAQCBz dGF0aWMgaW50IF9fZGV2aW5pdCBpNzMwMF9nZXRfZGV2aWNlcyhzdHJ1Y3QgbWVtX2N0bF9pbmZv ICptY2kpDQogDQogCS8qIEF0dGVtcHQgdG8gJ2dldCcgdGhlIE1DSCByZWdpc3RlciB3ZSB3YW50 ICovDQogCXBkZXYgPSBOVUxMOw0KLQl3aGlsZSAoIXB2dC0+cGNpX2Rldl8xNl8xX2ZzYl9hZGRy X21hcCB8fA0KLQkgICAgICAgIXB2dC0+cGNpX2Rldl8xNl8yX2ZzYl9lcnJfcmVncykgew0KLQkJ cGRldiA9IHBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfSU5URUwsDQotCQkJCSAgICAgIFBD SV9ERVZJQ0VfSURfSU5URUxfSTczMDBfTUNIX0VSUiwgcGRldik7DQotCQlpZiAoIXBkZXYpIHsN Ci0JCQkvKiBFbmQgb2YgbGlzdCwgbGVhdmUgKi8NCi0JCQlpNzMwMF9wcmludGsoS0VSTl9FUlIs DQotCQkJCSInc3lzdGVtIGFkZHJlc3MsUHJvY2VzcyBCdXMnICINCi0JCQkJImRldmljZSBub3Qg Zm91bmQ6Ig0KLQkJCQkidmVuZG9yIDB4JXggZGV2aWNlIDB4JXggRVJSIGZ1bmNzICINCi0JCQkJ Iihicm9rZW4gQklPUz8pXG4iLA0KLQkJCQlQQ0lfVkVORE9SX0lEX0lOVEVMLA0KLQkJCQlQQ0lf REVWSUNFX0lEX0lOVEVMX0k3MzAwX01DSF9FUlIpOw0KLQkJCWdvdG8gZXJyb3I7DQotCQl9DQot DQorCXdoaWxlICgocGRldiA9IHBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfSU5URUwsDQor CQkJCSAgICAgIFBDSV9ERVZJQ0VfSURfSU5URUxfSTczMDBfTUNIX0VSUiwNCisJCQkJICAgICAg cGRldikpKSB7DQogCQkvKiBTdG9yZSBkZXZpY2UgMTYgZnVuY3MgMSBhbmQgMiAqLw0KIAkJc3dp dGNoIChQQ0lfRlVOQyhwZGV2LT5kZXZmbikpIHsNCiAJCWNhc2UgMToNCi0JCQlwdnQtPnBjaV9k ZXZfMTZfMV9mc2JfYWRkcl9tYXAgPSBwZGV2Ow0KKwkJCWlmICghcHZ0LT5wY2lfZGV2XzE2XzFf ZnNiX2FkZHJfbWFwKQ0KKwkJCQlwdnQtPnBjaV9kZXZfMTZfMV9mc2JfYWRkcl9tYXAgPQ0KKwkJ CQkJCQlwY2lfZGV2X2dldChwZGV2KTsNCiAJCQlicmVhazsNCiAJCWNhc2UgMjoNCi0JCQlwdnQt PnBjaV9kZXZfMTZfMl9mc2JfZXJyX3JlZ3MgPSBwZGV2Ow0KKwkJCWlmICghcHZ0LT5wY2lfZGV2 XzE2XzJfZnNiX2Vycl9yZWdzKQ0KKwkJCQlwdnQtPnBjaV9kZXZfMTZfMl9mc2JfZXJyX3JlZ3Mg PQ0KKwkJCQkJCQlwY2lfZGV2X2dldChwZGV2KTsNCiAJCQlicmVhazsNCiAJCX0NCiAJfQ0KIA0K KwlpZiAoIXB2dC0+cGNpX2Rldl8xNl8xX2ZzYl9hZGRyX21hcCB8fA0KKwkgICAgIXB2dC0+cGNp X2Rldl8xNl8yX2ZzYl9lcnJfcmVncykgew0KKwkJLyogQXQgbGVhc3Qgb25lIGRldmljZSB3YXMg bm90IGZvdW5kICovDQorCQlpNzMwMF9wcmludGsoS0VSTl9FUlIsDQorCQkJIidzeXN0ZW0gYWRk cmVzcyxQcm9jZXNzIEJ1cycgZGV2aWNlIG5vdCBmb3VuZDoiDQorCQkJInZlbmRvciAweCV4IGRl dmljZSAweCV4IEVSUiBmdW5jcyAoYnJva2VuIEJJT1M/KVxuIiwNCisJCQlQQ0lfVkVORE9SX0lE X0lOVEVMLA0KKwkJCVBDSV9ERVZJQ0VfSURfSU5URUxfSTczMDBfTUNIX0VSUik7DQorCQlnb3Rv IGVycm9yOw0KKwl9DQorDQogCWRlYnVnZjEoIlN5c3RlbSBBZGRyZXNzLCBwcm9jZXNzb3IgYnVz LSBQQ0kgQnVzIElEOiAlcyAgJXg6JXhcbiIsDQogCQlwY2lfbmFtZShwdnQtPnBjaV9kZXZfMTZf MF9mc2JfY3RsciksDQogCQlwdnQtPnBjaV9kZXZfMTZfMF9mc2JfY3Rsci0+dmVuZG9yLA0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZWRhYy9pN2NvcmVfZWRhYy5jIGIvZHJpdmVycy9lZGFjL2k3Y29y ZV9lZGFjLmMNCmluZGV4IGIzY2NlZmEuLjRjMThiM2MgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2Vk YWMvaTdjb3JlX2VkYWMuYw0KKysrIGIvZHJpdmVycy9lZGFjL2k3Y29yZV9lZGFjLmMNCkBAIC0x MzY1LDE0ICsxMzY1LDE5IEBAIHN0YXRpYyBpbnQgaTdjb3JlX2dldF9vbmVkZXZpY2Uoc3RydWN0 IHBjaV9kZXYgKipwcmV2LA0KIAkgKiBpcyBhdCBhZGRyIDgwODY6MmM0MCwgaW5zdGVhZCBvZiA4 MDg2OjJjNDEuIFNvLCB3ZSBuZWVkDQogCSAqIHRvIHByb2JlIGZvciB0aGUgYWx0ZXJuYXRlIGFk ZHJlc3MgaW4gY2FzZSBvZiBmYWlsdXJlDQogCSAqLw0KLQlpZiAoZGV2X2Rlc2NyLT5kZXZfaWQg PT0gUENJX0RFVklDRV9JRF9JTlRFTF9JN19OT05DT1JFICYmICFwZGV2KQ0KKwlpZiAoZGV2X2Rl c2NyLT5kZXZfaWQgPT0gUENJX0RFVklDRV9JRF9JTlRFTF9JN19OT05DT1JFICYmICFwZGV2KSB7 DQorCQlwY2lfZGV2X2dldCgqcHJldik7CS8qIHBjaV9nZXRfZGV2aWNlIHdpbGwgcHV0IGl0ICov DQogCQlwZGV2ID0gcGNpX2dldF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9JTlRFTCwNCiAJCQkJICAg ICAgUENJX0RFVklDRV9JRF9JTlRFTF9JN19OT05DT1JFX0FMVCwgKnByZXYpOw0KKwl9DQogDQot CWlmIChkZXZfZGVzY3ItPmRldl9pZCA9PSBQQ0lfREVWSUNFX0lEX0lOVEVMX0xZTk5GSUVMRF9O T05DT1JFICYmICFwZGV2KQ0KKwlpZiAoZGV2X2Rlc2NyLT5kZXZfaWQgPT0gUENJX0RFVklDRV9J RF9JTlRFTF9MWU5ORklFTERfTk9OQ09SRSAmJg0KKwkgICAgIXBkZXYpIHsNCisJCXBjaV9kZXZf Z2V0KCpwcmV2KTsJLyogcGNpX2dldF9kZXZpY2Ugd2lsbCBwdXQgaXQgKi8NCiAJCXBkZXYgPSBw Y2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX0lOVEVMLA0KIAkJCQkgICAgICBQQ0lfREVWSUNF X0lEX0lOVEVMX0xZTk5GSUVMRF9OT05DT1JFX0FMVCwNCiAJCQkJICAgICAgKnByZXYpOw0KKwl9 DQogDQogCWlmICghcGRldikgew0KIAkJaWYgKCpwcmV2KSB7DQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jDQppbmRleCA2MWI3MDhiLi4yZWE4YTk2IDEwMDY0NA0KLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMNCkBAIC03MjUyLDYgKzcyNTIsMjAgQEAgc3RhdGljIGludCBpbnRl bF9nZW43X3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCiAJCWdvdG8gZXJyX3Vu cGluOw0KIAl9DQogDQorCS8qDQorCSAqIEJTcGVjIE1JX0RJU1BMQVlfRkxJUCBmb3IgSVZCOg0K KwkgKiAiVGhlIGZ1bGwgcGFja2V0IG11c3QgYmUgY29udGFpbmVkIHdpdGhpbiB0aGUgc2FtZSBj YWNoZSBsaW5lLiINCisJICoNCisJICogQ3VycmVudGx5IHRoZSBMUkkrU1JNK01JX0RJU1BMQVlf RkxJUCBhbGwgZml0IHdpdGhpbiB0aGUgc2FtZQ0KKwkgKiBjYWNoZWxpbmUsIGlmIHdlIGV2ZXIg c3RhcnQgZW1pdHRpbmcgbW9yZSBjb21tYW5kcyBiZWZvcmUNCisJICogdGhlIE1JX0RJU1BMQVlf RkxJUCB3ZSBtYXkgbmVlZCB0byBmaXJzdCBlbWl0IGV2ZXJ5dGhpbmcgZWxzZSwNCisJICogdGhl biBkbyB0aGUgY2FjaGVsaW5lIGFsaWdubWVudCwgYW5kIGZpbmFsbHkgZW1pdCB0aGUNCisJICog TUlfRElTUExBWV9GTElQLg0KKwkgKi8NCisJcmV0ID0gaW50ZWxfcmluZ19jYWNoZWxpbmVfYWxp Z24ocmluZyk7DQorCWlmIChyZXQpDQorCQlnb3RvIGVycl91bnBpbjsNCisNCiAJcmV0ID0gaW50 ZWxfcmluZ19iZWdpbihyaW5nLCA0KTsNCiAJaWYgKHJldCkNCiAJCWdvdG8gZXJyX3VucGluOw0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jDQppbmRleCA3MjE2M2U4Li5jYTc1MDc2IDEwMDY0NA0KLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYw0KQEAgLTQ4Myw2ICs0ODMsNyBAQCBpbnRlbF9kcF9hdXhfbmF0aXZl X3dyaXRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsDQogCXVpbnQ4X3QJbXNnWzIwXTsNCiAJ aW50IG1zZ19ieXRlczsNCiAJdWludDhfdAlhY2s7DQorCWludCByZXRyeTsNCiANCiAJaW50ZWxf ZHBfY2hlY2tfZWRwKGludGVsX2RwKTsNCiAJaWYgKHNlbmRfYnl0ZXMgPiAxNikNCkBAIC00OTMs MTggKzQ5NCwyMCBAQCBpbnRlbF9kcF9hdXhfbmF0aXZlX3dyaXRlKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAsDQogCW1zZ1szXSA9IHNlbmRfYnl0ZXMgLSAxOw0KIAltZW1jcHkoJm1zZ1s0XSwg c2VuZCwgc2VuZF9ieXRlcyk7DQogCW1zZ19ieXRlcyA9IHNlbmRfYnl0ZXMgKyA0Ow0KLQlmb3Ig KDs7KSB7DQorCWZvciAocmV0cnkgPSAwOyByZXRyeSA8IDc7IHJldHJ5KyspIHsNCiAJCXJldCA9 IGludGVsX2RwX2F1eF9jaChpbnRlbF9kcCwgbXNnLCBtc2dfYnl0ZXMsICZhY2ssIDEpOw0KIAkJ aWYgKHJldCA8IDApDQogCQkJcmV0dXJuIHJldDsNCiAJCWlmICgoYWNrICYgQVVYX05BVElWRV9S RVBMWV9NQVNLKSA9PSBBVVhfTkFUSVZFX1JFUExZX0FDSykNCi0JCQlicmVhazsNCisJCQlyZXR1 cm4gc2VuZF9ieXRlczsNCiAJCWVsc2UgaWYgKChhY2sgJiBBVVhfTkFUSVZFX1JFUExZX01BU0sp ID09IEFVWF9OQVRJVkVfUkVQTFlfREVGRVIpDQotCQkJdWRlbGF5KDEwMCk7DQorCQkJdXNsZWVw X3JhbmdlKDQwMCwgNTAwKTsNCiAJCWVsc2UNCiAJCQlyZXR1cm4gLUVJTzsNCiAJfQ0KLQlyZXR1 cm4gc2VuZF9ieXRlczsNCisNCisJRFJNX0VSUk9SKCJ0b28gbWFueSByZXRyaWVzLCBnaXZpbmcg dXBcbiIpOw0KKwlyZXR1cm4gLUVJTzsNCiB9DQogDQogLyogV3JpdGUgYSBzaW5nbGUgYnl0ZSB0 byB0aGUgYXV4IGNoYW5uZWwgaW4gbmF0aXZlIG1vZGUgKi8NCkBAIC01MjYsNiArNTI5LDcgQEAg aW50ZWxfZHBfYXV4X25hdGl2ZV9yZWFkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsDQogCWlu dCByZXBseV9ieXRlczsNCiAJdWludDhfdCBhY2s7DQogCWludCByZXQ7DQorCWludCByZXRyeTsN CiANCiAJaW50ZWxfZHBfY2hlY2tfZWRwKGludGVsX2RwKTsNCiAJbXNnWzBdID0gQVVYX05BVElW RV9SRUFEIDw8IDQ7DQpAQCAtNTM2LDcgKzU0MCw3IEBAIGludGVsX2RwX2F1eF9uYXRpdmVfcmVh ZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLA0KIAltc2dfYnl0ZXMgPSA0Ow0KIAlyZXBseV9i eXRlcyA9IHJlY3ZfYnl0ZXMgKyAxOw0KIA0KLQlmb3IgKDs7KSB7DQorCWZvciAocmV0cnkgPSAw OyByZXRyeSA8IDc7IHJldHJ5KyspIHsNCiAJCXJldCA9IGludGVsX2RwX2F1eF9jaChpbnRlbF9k cCwgbXNnLCBtc2dfYnl0ZXMsDQogCQkJCSAgICAgIHJlcGx5LCByZXBseV9ieXRlcyk7DQogCQlp ZiAocmV0ID09IDApDQpAQCAtNTQ5LDEwICs1NTMsMTMgQEAgaW50ZWxfZHBfYXV4X25hdGl2ZV9y ZWFkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsDQogCQkJcmV0dXJuIHJldCAtIDE7DQogCQl9 DQogCQllbHNlIGlmICgoYWNrICYgQVVYX05BVElWRV9SRVBMWV9NQVNLKSA9PSBBVVhfTkFUSVZF X1JFUExZX0RFRkVSKQ0KLQkJCXVkZWxheSgxMDApOw0KKwkJCXVzbGVlcF9yYW5nZSg0MDAsIDUw MCk7DQogCQllbHNlDQogCQkJcmV0dXJuIC1FSU87DQogCX0NCisNCisJRFJNX0VSUk9SKCJ0b28g bWFueSByZXRyaWVzLCBnaXZpbmcgdXBcbiIpOw0KKwlyZXR1cm4gLUVJTzsNCiB9DQogDQogc3Rh dGljIGludA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYw0KaW5kZXggM2M1 NWNmNi4uOGVlMDY4ZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5j DQpAQCAtMTIxMyw2ICsxMjEzLDI3IEBAIGludCBpbnRlbF9yaW5nX2JlZ2luKHN0cnVjdCBpbnRl bF9yaW5nX2J1ZmZlciAqcmluZywNCiAJcmV0dXJuIDA7DQogfQ0KIA0KKy8qIEFsaWduIHRoZSBy aW5nIHRhaWwgdG8gYSBjYWNoZWxpbmUgYm91bmRhcnkgKi8NCitpbnQgaW50ZWxfcmluZ19jYWNo ZWxpbmVfYWxpZ24oc3RydWN0IGludGVsX3JpbmdfYnVmZmVyICpyaW5nKQ0KK3sNCisJaW50IG51 bV9kd29yZHMgPSAoNjQgLSAocmluZy0+dGFpbCAmIDYzKSkgLyBzaXplb2YodWludDMyX3QpOw0K KwlpbnQgcmV0Ow0KKw0KKwlpZiAobnVtX2R3b3JkcyA9PSAwKQ0KKwkJcmV0dXJuIDA7DQorDQor CXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmluZywgbnVtX2R3b3Jkcyk7DQorCWlmIChyZXQpDQor CQlyZXR1cm4gcmV0Ow0KKw0KKwl3aGlsZSAobnVtX2R3b3Jkcy0tKQ0KKwkJaW50ZWxfcmluZ19l bWl0KHJpbmcsIE1JX05PT1ApOw0KKw0KKwlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7DQorDQor CXJldHVybiAwOw0KK30NCisNCiB2b2lkIGludGVsX3JpbmdfYWR2YW5jZShzdHJ1Y3QgaW50ZWxf cmluZ19idWZmZXIgKnJpbmcpDQogew0KIAlyaW5nLT50YWlsICY9IHJpbmctPnNpemUgLSAxOw0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaA0KaW5kZXggNjgyODFjOS4uZDgz Y2M5NyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu aA0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oDQpAQCAtMTc0 LDYgKzE3NCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGludGVsX3dhaXRfcmluZ19pZGxlKHN0cnVj dCBpbnRlbF9yaW5nX2J1ZmZlciAqcmluZykNCiB9DQogDQogaW50IF9fbXVzdF9jaGVjayBpbnRl bF9yaW5nX2JlZ2luKHN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZlciAqcmluZywgaW50IG4pOw0KK2lu dCBfX211c3RfY2hlY2sgaW50ZWxfcmluZ19jYWNoZWxpbmVfYWxpZ24oc3RydWN0IGludGVsX3Jp bmdfYnVmZmVyICpyaW5nKTsNCiANCiBzdGF0aWMgaW5saW5lIHZvaWQgaW50ZWxfcmluZ19lbWl0 KHN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZlciAqcmluZywNCiAJCQkJICAgdTMyIGRhdGEpDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19jcnRjLmMgYi9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYw0KaW5kZXggMDM4NTcwYS4uY2Q5OGMwNiAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vYXRvbWJpb3NfY3J0Yy5jDQorKysg Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYw0KQEAgLTk1NiwxMCArOTU2 LDEzIEBAIHN0YXRpYyB2b2lkIGF0b21iaW9zX2NydGNfc2V0X3BsbChzdHJ1Y3QgZHJtX2NydGMg KmNydGMsIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlDQogCQkJCQkJc3NfZW5hYmxlZCA9DQogCQkJ CQkJCXJhZGVvbl9hdG9tYmlvc19nZXRfcHBsbF9zc19pbmZvKHJkZXYsICZzcywNCiAJCQkJCQkJ CQkJCSBBVE9NX0RQX1NTX0lEMSk7DQotCQkJCX0gZWxzZQ0KKwkJCQl9IGVsc2Ugew0KIAkJCQkJ c3NfZW5hYmxlZCA9DQogCQkJCQkJcmFkZW9uX2F0b21iaW9zX2dldF9wcGxsX3NzX2luZm8ocmRl diwgJnNzLA0KIAkJCQkJCQkJCQkgQVRPTV9EUF9TU19JRDEpOw0KKwkJCQl9DQorCQkJCS8qIGRp c2FibGUgc3ByZWFkIHNwZWN0cnVtIG9uIERDRTMgRFAgKi8NCisJCQkJc3NfZW5hYmxlZCA9IGZh bHNlOw0KIAkJCX0NCiAJCQlicmVhazsNCiAJCWNhc2UgQVRPTV9FTkNPREVSX01PREVfTFZEUzoN CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDAuYyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcjYwMC5jDQppbmRleCA1N2U0NWM2Li5mN2UzY2MwIDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcjYwMC5jDQpAQCAtMjMxNSwxNCArMjMxNSwxOCBAQCBpbnQgcjYwMF9yaW5nX3Rlc3Qoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpDQogdm9pZCByNjAwX2ZlbmNlX3JpbmdfZW1pdChzdHJ1 Y3QgcmFkZW9uX2RldmljZSAqcmRldiwNCiAJCQkgIHN0cnVjdCByYWRlb25fZmVuY2UgKmZlbmNl KQ0KIHsNCisJdTMyIGNwX2NvaGVyX2NudGwgPSBQQUNLRVQzX1RDX0FDVElPTl9FTkEgfCBQQUNL RVQzX1ZDX0FDVElPTl9FTkEgfA0KKwkJUEFDS0VUM19TSF9BQ1RJT05fRU5BOw0KKw0KKwlpZiAo cmRldi0+ZmFtaWx5ID49IENISVBfUlY3NzApDQorCQljcF9jb2hlcl9jbnRsIHw9IFBBQ0tFVDNf RlVMTF9DQUNIRV9FTkE7DQorDQogCWlmIChyZGV2LT53Yi51c2VfZXZlbnQpIHsNCiAJCXU2NCBh ZGRyID0gcmRldi0+d2IuZ3B1X2FkZHIgKyBSNjAwX1dCX0VWRU5UX09GRlNFVCArDQogCQkJKHU2 NCkocmRldi0+ZmVuY2VfZHJ2LnNjcmF0Y2hfcmVnIC0gcmRldi0+c2NyYXRjaC5yZWdfYmFzZSk7 DQogCQkvKiBmbHVzaCByZWFkIGNhY2hlIG92ZXIgZ2FydCAqLw0KIAkJcmFkZW9uX3Jpbmdfd3Jp dGUocmRldiwgUEFDS0VUMyhQQUNLRVQzX1NVUkZBQ0VfU1lOQywgMykpOw0KLQkJcmFkZW9uX3Jp bmdfd3JpdGUocmRldiwgUEFDS0VUM19UQ19BQ1RJT05fRU5BIHwNCi0JCQkJCVBBQ0tFVDNfVkNf QUNUSU9OX0VOQSB8DQotCQkJCQlQQUNLRVQzX1NIX0FDVElPTl9FTkEpOw0KKwkJcmFkZW9uX3Jp bmdfd3JpdGUocmRldiwgY3BfY29oZXJfY250bCk7DQogCQlyYWRlb25fcmluZ193cml0ZShyZGV2 LCAweEZGRkZGRkZGKTsNCiAJCXJhZGVvbl9yaW5nX3dyaXRlKHJkZXYsIDApOw0KIAkJcmFkZW9u X3Jpbmdfd3JpdGUocmRldiwgMTApOyAvKiBwb2xsIGludGVydmFsICovDQpAQCAtMjMzNiw5ICsy MzQwLDcgQEAgdm9pZCByNjAwX2ZlbmNlX3JpbmdfZW1pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldiwNCiAJfSBlbHNlIHsNCiAJCS8qIGZsdXNoIHJlYWQgY2FjaGUgb3ZlciBnYXJ0ICovDQog CQlyYWRlb25fcmluZ193cml0ZShyZGV2LCBQQUNLRVQzKFBBQ0tFVDNfU1VSRkFDRV9TWU5DLCAz KSk7DQotCQlyYWRlb25fcmluZ193cml0ZShyZGV2LCBQQUNLRVQzX1RDX0FDVElPTl9FTkEgfA0K LQkJCQkJUEFDS0VUM19WQ19BQ1RJT05fRU5BIHwNCi0JCQkJCVBBQ0tFVDNfU0hfQUNUSU9OX0VO QSk7DQorCQlyYWRlb25fcmluZ193cml0ZShyZGV2LCBjcF9jb2hlcl9jbnRsKTsNCiAJCXJhZGVv bl9yaW5nX3dyaXRlKHJkZXYsIDB4RkZGRkZGRkYpOw0KIAkJcmFkZW9uX3Jpbmdfd3JpdGUocmRl diwgMCk7DQogCQlyYWRlb25fcmluZ193cml0ZShyZGV2LCAxMCk7IC8qIHBvbGwgaW50ZXJ2YWwg Ki8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBkLmggYi9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3I2MDBkLmgNCmluZGV4IGQ0ZDIzYThkLi5jYjI5NDgwIDEwMDY0NA0K LS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwZC5oDQorKysgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3I2MDBkLmgNCkBAIC04MzgsNiArODM4LDcgQEANCiAjZGVmaW5lCVBBQ0tFVDNf SU5ESVJFQ1RfQlVGRkVSCQkJCTB4MzINCiAjZGVmaW5lCVBBQ0tFVDNfU1VSRkFDRV9TWU5DCQkJ CTB4NDMNCiAjICAgICAgICAgICAgICBkZWZpbmUgUEFDS0VUM19DQjBfREVTVF9CQVNFX0VOQSAg ICAoMSA8PCA2KQ0KKyMgICAgICAgICAgICAgIGRlZmluZSBQQUNLRVQzX0ZVTExfQ0FDSEVfRU5B ICAgICAgICgxIDw8IDIwKSAvKiByN3h4KyBvbmx5ICovDQogIyAgICAgICAgICAgICAgZGVmaW5l IFBBQ0tFVDNfVENfQUNUSU9OX0VOQSAgICAgICAgKDEgPDwgMjMpDQogIyAgICAgICAgICAgICAg ZGVmaW5lIFBBQ0tFVDNfVkNfQUNUSU9OX0VOQSAgICAgICAgKDEgPDwgMjQpDQogIyAgICAgICAg ICAgICAgZGVmaW5lIFBBQ0tFVDNfQ0JfQUNUSU9OX0VOQSAgICAgICAgKDEgPDwgMjUpDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXRvbWJpb3MuYyBiL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2F0b21iaW9zLmMNCmluZGV4IGNkYTg5YzZiLi5lNGU0 NTVlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXRvbWJpb3Mu Yw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXRvbWJpb3MuYw0KQEAgLTI3 MzUsNiArMjczNSwxMCBAQCB2b2lkIHJhZGVvbl9hdG9tX2luaXRpYWxpemVfYmlvc19zY3JhdGNo X3JlZ3Moc3RydWN0IGRybV9kZXZpY2UgKmRldikNCiAJLyogdGVsbCB0aGUgYmlvcyBub3QgdG8g aGFuZGxlIG1vZGUgc3dpdGNoaW5nICovDQogCWJpb3NfNl9zY3JhdGNoIHw9IEFUT01fUzZfQUND X0JMT0NLX0RJU1BMQVlfU1dJVENIOw0KIA0KKwkvKiBjbGVhciB0aGUgdmJpb3MgZHBtcyBzdGF0 ZSAqLw0KKwlpZiAoQVNJQ19JU19EQ0U0KHJkZXYpKQ0KKwkJYmlvc18yX3NjcmF0Y2ggJj0gfkFU T01fUzJfREVWSUNFX0RQTVNfU1RBVEU7DQorDQogCWlmIChyZGV2LT5mYW1pbHkgPj0gQ0hJUF9S NjAwKSB7DQogCQlXUkVHMzIoUjYwMF9CSU9TXzJfU0NSQVRDSCwgYmlvc18yX3NjcmF0Y2gpOw0K IAkJV1JFRzMyKFI2MDBfQklPU182X1NDUkFUQ0gsIGJpb3NfNl9zY3JhdGNoKTsNCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9pMmMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX2kyYy5jDQppbmRleCBjZjIwMzUxLi44OTRiNWYwIDEwMDY0NA0KLS0t IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25faTJjLmMNCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2kyYy5jDQpAQCAtOTk4LDYgKzk5OCw5IEBAIHZvaWQgcmFkZW9u X2kyY19kZXN0cm95KHN0cnVjdCByYWRlb25faTJjX2NoYW4gKmkyYykNCiAvKiBBZGQgdGhlIGRl ZmF1bHQgYnVzZXMgKi8NCiB2b2lkIHJhZGVvbl9pMmNfaW5pdChzdHJ1Y3QgcmFkZW9uX2Rldmlj ZSAqcmRldikNCiB7DQorCWlmIChyYWRlb25faHdfaTJjKQ0KKwkJRFJNX0lORk8oImh3X2kyYyBm b3JjZWQgb24sIHlvdSBtYXkgZXhwZXJpZW5jZSBkaXNwbGF5IGRldGVjdGlvbiBwcm9ibGVtcyFc biIpOw0KKw0KIAlpZiAocmRldi0+aXNfYXRvbV9iaW9zKQ0KIAkJcmFkZW9uX2F0b21iaW9zX2ky Y19pbml0KHJkZXYpOw0KIAllbHNlDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3BtLmMNCmluZGV4 IGQ1OGVjY2IuLmIwYTBlZTQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9wbS5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9wbS5jDQpAQCAt NTczLDggKzU3MywxMCBAQCB2b2lkIHJhZGVvbl9wbV9yZXN1bWUoc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYpDQogCXJkZXYtPnBtLmN1cnJlbnRfY2xvY2tfbW9kZV9pbmRleCA9IDA7DQogCXJk ZXYtPnBtLmN1cnJlbnRfc2NsayA9IHJkZXYtPnBtLmRlZmF1bHRfc2NsazsNCiAJcmRldi0+cG0u Y3VycmVudF9tY2xrID0gcmRldi0+cG0uZGVmYXVsdF9tY2xrOw0KLQlyZGV2LT5wbS5jdXJyZW50 X3ZkZGMgPSByZGV2LT5wbS5wb3dlcl9zdGF0ZVtyZGV2LT5wbS5kZWZhdWx0X3Bvd2VyX3N0YXRl X2luZGV4XS5jbG9ja19pbmZvWzBdLnZvbHRhZ2Uudm9sdGFnZTsNCi0JcmRldi0+cG0uY3VycmVu dF92ZGRjaSA9IHJkZXYtPnBtLnBvd2VyX3N0YXRlW3JkZXYtPnBtLmRlZmF1bHRfcG93ZXJfc3Rh dGVfaW5kZXhdLmNsb2NrX2luZm9bMF0udm9sdGFnZS52ZGRjaTsNCisJaWYgKHJkZXYtPnBtLnBv d2VyX3N0YXRlKSB7DQorCQlyZGV2LT5wbS5jdXJyZW50X3ZkZGMgPSByZGV2LT5wbS5wb3dlcl9z dGF0ZVtyZGV2LT5wbS5kZWZhdWx0X3Bvd2VyX3N0YXRlX2luZGV4XS5jbG9ja19pbmZvWzBdLnZv bHRhZ2Uudm9sdGFnZTsNCisJCXJkZXYtPnBtLmN1cnJlbnRfdmRkY2kgPSByZGV2LT5wbS5wb3dl cl9zdGF0ZVtyZGV2LT5wbS5kZWZhdWx0X3Bvd2VyX3N0YXRlX2luZGV4XS5jbG9ja19pbmZvWzBd LnZvbHRhZ2UudmRkY2k7DQorCX0NCiAJaWYgKHJkZXYtPnBtLnBtX21ldGhvZCA9PSBQTV9NRVRI T0RfRFlOUE0NCiAJICAgICYmIHJkZXYtPnBtLmR5bnBtX3N0YXRlID09IERZTlBNX1NUQVRFX1NV U1BFTkRFRCkgew0KIAkJcmRldi0+cG0uZHlucG1fc3RhdGUgPSBEWU5QTV9TVEFURV9BQ1RJVkU7 DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9odi9jb25uZWN0aW9uLmMgYi9kcml2ZXJzL2h2L2Nvbm5l Y3Rpb24uYw0KaW5kZXggNjUwYzlmMC4uZDdmM2RmOSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaHYv Y29ubmVjdGlvbi5jDQorKysgYi9kcml2ZXJzL2h2L2Nvbm5lY3Rpb24uYw0KQEAgLTQ1LDcgKzQ1 LDYgQEAgc3RydWN0IHZtYnVzX2Nvbm5lY3Rpb24gdm1idXNfY29ubmVjdGlvbiA9IHsNCiBpbnQg dm1idXNfY29ubmVjdCh2b2lkKQ0KIHsNCiAJaW50IHJldCA9IDA7DQotCWludCB0Ow0KIAlzdHJ1 Y3Qgdm1idXNfY2hhbm5lbF9tc2dpbmZvICptc2dpbmZvID0gTlVMTDsNCiAJc3RydWN0IHZtYnVz X2NoYW5uZWxfaW5pdGlhdGVfY29udGFjdCAqbXNnOw0KIAl1bnNpZ25lZCBsb25nIGZsYWdzOw0K QEAgLTEzMiwxNiArMTMxLDcgQEAgaW50IHZtYnVzX2Nvbm5lY3Qodm9pZCkNCiAJfQ0KIA0KIAkv KiBXYWl0IGZvciB0aGUgY29ubmVjdGlvbiByZXNwb25zZSAqLw0KLQl0ID0gIHdhaXRfZm9yX2Nv bXBsZXRpb25fdGltZW91dCgmbXNnaW5mby0+d2FpdGV2ZW50LCA1KkhaKTsNCi0JaWYgKHQgPT0g MCkgew0KLQkJc3Bpbl9sb2NrX2lycXNhdmUoJnZtYnVzX2Nvbm5lY3Rpb24uY2hhbm5lbG1zZ19s b2NrLA0KLQkJCQlmbGFncyk7DQotCQlsaXN0X2RlbCgmbXNnaW5mby0+bXNnbGlzdGVudHJ5KTsN Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZtYnVzX2Nvbm5lY3Rpb24uY2hhbm5lbG1zZ19s b2NrLA0KLQkJCQkJZmxhZ3MpOw0KLQkJcmV0ID0gLUVUSU1FRE9VVDsNCi0JCWdvdG8gY2xlYW51 cDsNCi0JfQ0KKwl3YWl0X2Zvcl9jb21wbGV0aW9uKCZtc2dpbmZvLT53YWl0ZXZlbnQpOw0KIA0K IAlzcGluX2xvY2tfaXJxc2F2ZSgmdm1idXNfY29ubmVjdGlvbi5jaGFubmVsbXNnX2xvY2ssIGZs YWdzKTsNCiAJbGlzdF9kZWwoJm1zZ2luZm8tPm1zZ2xpc3RlbnRyeSk7DQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9od21vbi9tYXgxNjY4LmMgYi9kcml2ZXJzL2h3bW9uL21heDE2NjguYw0KaW5kZXgg MjBkMWIyZC4uZTE5ZmVmNyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaHdtb24vbWF4MTY2OC5jDQor KysgYi9kcml2ZXJzL2h3bW9uL21heDE2NjguYw0KQEAgLTI0Myw3ICsyNDMsNyBAQCBzdGF0aWMg c3NpemVfdCBzZXRfdGVtcF9taW4oc3RydWN0IGRldmljZSAqZGV2LA0KIAlkYXRhLT50ZW1wX21p bltpbmRleF0gPSBTRU5TT1JTX0xJTUlUKHRlbXAvMTAwMCwgLTEyOCwgMTI3KTsNCiAJaWYgKGky Y19zbWJ1c193cml0ZV9ieXRlX2RhdGEoY2xpZW50LA0KIAkJCQkJTUFYMTY2OF9SRUdfTElNTF9X UihpbmRleCksDQotCQkJCQlkYXRhLT50ZW1wX21heFtpbmRleF0pKQ0KKwkJCQkJZGF0YS0+dGVt cF9taW5baW5kZXhdKSkNCiAJCWNvdW50ID0gLUVJTzsNCiAJbXV0ZXhfdW5sb2NrKCZkYXRhLT51 cGRhdGVfbG9jayk7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL0tjb25maWcg Yi9kcml2ZXJzL2kyYy9idXNzZXMvS2NvbmZpZw0KaW5kZXggZGJkNGZhNS4uOTQ5ZWE2NDAgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvS2NvbmZpZw0KKysrIGIvZHJpdmVycy9pMmMv YnVzc2VzL0tjb25maWcNCkBAIC0xMzcsNiArMTM3LDcgQEAgY29uZmlnIEkyQ19QSUlYNA0KIAkg ICAgQVRJIFNCNzAwDQogCSAgICBBVEkgU0I4MDANCiAJICAgIEFNRCBIdWRzb24tMg0KKwkgICAg QU1EIE1MDQogCSAgICBBTUQgQ1oNCiAJICAgIFNlcnZlcndvcmtzIE9TQjQNCiAJICAgIFNlcnZl cndvcmtzIENTQjUNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXBpaXg0LmMg Yi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXBpaXg0LmMNCmluZGV4IDE0YjU4OGMuLmM2MGY4ZTEg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXBpaXg0LmMNCisrKyBiL2RyaXZl cnMvaTJjL2J1c3Nlcy9pMmMtcGlpeDQuYw0KQEAgLTIyLDcgKzIyLDcgQEANCiAJSW50ZWwgUElJ WDQsIDQ0ME1YDQogCVNlcnZlcndvcmtzIE9TQjQsIENTQjUsIENTQjYsIEhULTEwMDAsIEhULTEx MDANCiAJQVRJIElYUDIwMCwgSVhQMzAwLCBJWFA0MDAsIFNCNjAwLCBTQjcwMCwgU0I4MDANCi0J QU1EIEh1ZHNvbi0yLCBDWg0KKwlBTUQgSHVkc29uLTIsIE1MLCBDWg0KIAlTTVNDIFZpY3Rvcnk2 Ng0KIA0KICAgIE5vdGU6IHdlIGFzc3VtZSB0aGVyZSBjYW4gb25seSBiZSBvbmUgZGV2aWNlLCB3 aXRoIG9uZSBTTUJ1cyBpbnRlcmZhY2UuDQpAQCAtMjMxLDcgKzIzMSw4IEBAIHN0YXRpYyBpbnQg X19kZXZpbml0IHBpaXg0X3NldHVwX3NiODAwKHN0cnVjdCBwY2lfZGV2ICpQSUlYNF9kZXYsDQog CQkJCWNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkNCiB7DQogCXVuc2lnbmVkIHNob3J0 IHNtYmFfaWR4ID0gMHhjZDY7DQotCXU4IHNtYmFfZW5fbG8sIHNtYmFfZW5faGksIGkyY2NmZywg aTJjY2ZnX29mZnNldCA9IDB4MTAsIHNtYl9lbiA9IDB4MmM7DQorCXU4IHNtYmFfZW5fbG8sIHNt YmFfZW5faGksIHNtYl9lbiwgc21iX2VuX3N0YXR1czsNCisJdTggaTJjY2ZnLCBpMmNjZmdfb2Zm c2V0ID0gMHgxMDsNCiANCiAJLyogU0I4MDAgYW5kIGxhdGVyIFNNQnVzIGRvZXMgbm90IHN1cHBv cnQgZm9yY2luZyBhZGRyZXNzICovDQogCWlmIChmb3JjZSB8fCBmb3JjZV9hZGRyKSB7DQpAQCAt MjQxLDYgKzI0MiwxNiBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCBwaWl4NF9zZXR1cF9zYjgwMChz dHJ1Y3QgcGNpX2RldiAqUElJWDRfZGV2LA0KIAl9DQogDQogCS8qIERldGVybWluZSB0aGUgYWRk cmVzcyBvZiB0aGUgU01CdXMgYXJlYXMgKi8NCisJaWYgKChQSUlYNF9kZXYtPnZlbmRvciA9PSBQ Q0lfVkVORE9SX0lEX0FNRCAmJg0KKwkgICAgIFBJSVg0X2Rldi0+ZGV2aWNlID09IFBDSV9ERVZJ Q0VfSURfQU1EX0hVRFNPTjJfU01CVVMgJiYNCisJICAgICBQSUlYNF9kZXYtPnJldmlzaW9uID49 IDB4NDEpIHx8DQorCSAgICAoUElJWDRfZGV2LT52ZW5kb3IgPT0gUENJX1ZFTkRPUl9JRF9BTUQg JiYNCisJICAgICBQSUlYNF9kZXYtPmRldmljZSA9PSAweDc5MGIgJiYNCisJICAgICBQSUlYNF9k ZXYtPnJldmlzaW9uID49IDB4NDkpKQ0KKwkJc21iX2VuID0gMHgwMDsNCisJZWxzZQ0KKwkJc21i X2VuID0gMHgyYzsNCisNCiAJaWYgKCFyZXF1ZXN0X3JlZ2lvbihzbWJhX2lkeCwgMiwgInNtYmFf aWR4IikpIHsNCiAJCWRldl9lcnIoJlBJSVg0X2Rldi0+ZGV2LCAiU01CdXMgYmFzZSBhZGRyZXNz IGluZGV4IHJlZ2lvbiAiDQogCQkJIjB4JXggYWxyZWFkeSBpbiB1c2UhXG4iLCBzbWJhX2lkeCk7 DQpAQCAtMjUyLDEzICsyNjMsMjAgQEAgc3RhdGljIGludCBfX2RldmluaXQgcGlpeDRfc2V0dXBf c2I4MDAoc3RydWN0IHBjaV9kZXYgKlBJSVg0X2RldiwNCiAJc21iYV9lbl9oaSA9IGluYl9wKHNt YmFfaWR4ICsgMSk7DQogCXJlbGVhc2VfcmVnaW9uKHNtYmFfaWR4LCAyKTsNCiANCi0JaWYgKChz bWJhX2VuX2xvICYgMSkgPT0gMCkgew0KKwlpZiAoIXNtYl9lbikgew0KKwkJc21iX2VuX3N0YXR1 cyA9IHNtYmFfZW5fbG8gJiAweDEwOw0KKwkJcGlpeDRfc21iYSA9IHNtYmFfZW5faGkgPDwgODsN CisJfSBlbHNlIHsNCisJCXNtYl9lbl9zdGF0dXMgPSBzbWJhX2VuX2xvICYgMHgwMTsNCisJCXBp aXg0X3NtYmEgPSAoKHNtYmFfZW5faGkgPDwgOCkgfCBzbWJhX2VuX2xvKSAmIDB4ZmZlMDsNCisJ fQ0KKw0KKwlpZiAoIXNtYl9lbl9zdGF0dXMpIHsNCiAJCWRldl9lcnIoJlBJSVg0X2Rldi0+ZGV2 LA0KIAkJCSJIb3N0IFNNQnVzIGNvbnRyb2xsZXIgbm90IGVuYWJsZWQhXG4iKTsNCiAJCXJldHVy biAtRU5PREVWOw0KIAl9DQogDQotCXBpaXg0X3NtYmEgPSAoKHNtYmFfZW5faGkgPDwgOCkgfCBz bWJhX2VuX2xvKSAmIDB4ZmZlMDsNCiAJaWYgKGFjcGlfY2hlY2tfcmVnaW9uKHBpaXg0X3NtYmEs IFNNQklPU0laRSwgcGlpeDRfZHJpdmVyLm5hbWUpKQ0KIAkJcmV0dXJuIC1FTk9ERVY7DQogDQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9pZGxlL2ludGVsX2lkbGUuYyBiL2RyaXZlcnMvaWRsZS9pbnRl bF9pZGxlLmMNCmluZGV4IDRmYTJiMTEuLjQ0ZmRlNDMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2lk bGUvaW50ZWxfaWRsZS5jDQorKysgYi9kcml2ZXJzL2lkbGUvaW50ZWxfaWRsZS5jDQpAQCAtNTg0 LDggKzU4NCw5IEBAIHN0YXRpYyBpbnQgX19pbml0IGludGVsX2lkbGVfaW5pdCh2b2lkKQ0KIAlp bnRlbF9pZGxlX2NwdWlkbGVfZHJpdmVyX2luaXQoKTsNCiAJcmV0dmFsID0gY3B1aWRsZV9yZWdp c3Rlcl9kcml2ZXIoJmludGVsX2lkbGVfZHJpdmVyKTsNCiAJaWYgKHJldHZhbCkgew0KKwkJc3Ry dWN0IGNwdWlkbGVfZHJpdmVyICpkcnYgPSBjcHVpZGxlX2dldF9kcml2ZXIoKTsNCiAJCXByaW50 ayhLRVJOX0RFQlVHIFBSRUZJWCAiaW50ZWxfaWRsZSB5aWVsZGluZyB0byAlcyIsDQotCQkJY3B1 aWRsZV9nZXRfZHJpdmVyKCktPm5hbWUpOw0KKwkJCWRydiA/IGRydi0+bmFtZSA6ICJub25lIik7 DQogCQlyZXR1cm4gcmV0dmFsOw0KIAl9DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmli YW5kL2h3L3FpYi9xaWJfaWJhNzMyMi5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L3FpYi9xaWJf aWJhNzMyMi5jDQppbmRleCA1YTA3MGU4Li5kODUxN2ZjIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9p bmZpbmliYW5kL2h3L3FpYi9xaWJfaWJhNzMyMi5jDQorKysgYi9kcml2ZXJzL2luZmluaWJhbmQv aHcvcWliL3FpYl9pYmE3MzIyLmMNCkBAIC0yMjc5LDYgKzIyNzksMTEgQEAgc3RhdGljIGludCBx aWJfNzMyMl9icmluZ3VwX3NlcmRlcyhzdHJ1Y3QgcWliX3Bwb3J0ZGF0YSAqcHBkKQ0KIAlxaWJf d3JpdGVfa3JlZ19wb3J0KHBwZCwga3JwX2liY2N0cmxfYSwgcHBkLT5jcHNwZWMtPmliY2N0cmxf YSk7DQogCXFpYl93cml0ZV9rcmVnKGRkLCBrcl9zY3JhdGNoLCAwVUxMKTsNCiANCisJLyogZW5z dXJlIHByZXZpb3VzIFR4IHBhcmFtZXRlcnMgYXJlIG5vdCBzdGlsbCBmb3JjZWQgKi8NCisJcWli X3dyaXRlX2tyZWdfcG9ydChwcGQsIGtycF90eF9kZWVtcGhfb3ZlcnJpZGUsDQorCQlTWU1fTUFT SyhJQlNEX1RYX0RFRU1QSEFTSVNfT1ZFUlJJREVfMCwNCisJCXJlc2V0X3R4X2RlZW1waGFzaXNf b3ZlcnJpZGUpKTsNCisNCiAJaWYgKHFpYl9jb21wYXRfZGRyX25lZ290aWF0ZSkgew0KIAkJcHBk LT5jcHNwZWMtPmliZGVsdGFpbnByb2cgPSAxOw0KIAkJcHBkLT5jcHNwZWMtPmlic3ltc25hcCA9 IHJlYWRfNzMyMl9jcmVnMzJfcG9ydChwcGQsDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmli YW5kL2h3L3FpYi9xaWJfdWQuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9xaWIvcWliX3VkLmMN CmluZGV4IDgyODYwOWYuLmMwZDkzZDQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQv aHcvcWliL3FpYl91ZC5jDQorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvcWliL3FpYl91ZC5j DQpAQCAtNTcsMTMgKzU3LDIwIEBAIHN0YXRpYyB2b2lkIHFpYl91ZF9sb29wYmFjayhzdHJ1Y3Qg cWliX3FwICpzcXAsIHN0cnVjdCBxaWJfc3dxZSAqc3dxZSkNCiAJc3RydWN0IHFpYl9zZ2UgKnNn ZTsNCiAJc3RydWN0IGliX3djIHdjOw0KIAl1MzIgbGVuZ3RoOw0KKwllbnVtIGliX3FwX3R5cGUg c3FwdHlwZSwgZHFwdHlwZTsNCiANCiAJcXAgPSBxaWJfbG9va3VwX3FwbihpYnAsIHN3cWUtPndy LndyLnVkLnJlbW90ZV9xcG4pOw0KIAlpZiAoIXFwKSB7DQogCQlpYnAtPm5fcGt0X2Ryb3BzKys7 DQogCQlyZXR1cm47DQogCX0NCi0JaWYgKHFwLT5pYnFwLnFwX3R5cGUgIT0gc3FwLT5pYnFwLnFw X3R5cGUgfHwNCisNCisJc3FwdHlwZSA9IHNxcC0+aWJxcC5xcF90eXBlID09IElCX1FQVF9HU0kg Pw0KKwkJCUlCX1FQVF9VRCA6IHNxcC0+aWJxcC5xcF90eXBlOw0KKwlkcXB0eXBlID0gcXAtPmli cXAucXBfdHlwZSA9PSBJQl9RUFRfR1NJID8NCisJCQlJQl9RUFRfVUQgOiBxcC0+aWJxcC5xcF90 eXBlOw0KKw0KKwlpZiAoZHFwdHlwZSAhPSBzcXB0eXBlIHx8DQogCSAgICAhKGliX3FpYl9zdGF0 ZV9vcHNbcXAtPnN0YXRlXSAmIFFJQl9QUk9DRVNTX1JFQ1ZfT0spKSB7DQogCQlpYnAtPm5fcGt0 X2Ryb3BzKys7DQogCQlnb3RvIGRyb3A7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9pbnRl bC1pb21tdS5jIGIvZHJpdmVycy9pb21tdS9pbnRlbC1pb21tdS5jDQppbmRleCBiNGE0YWFmLi4x YTUxYjNkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9pb21tdS9pbnRlbC1pb21tdS5jDQorKysgYi9k cml2ZXJzL2lvbW11L2ludGVsLWlvbW11LmMNCkBAIC04ODQsNyArODg0LDcgQEAgc3RhdGljIHZv aWQgZG1hX3B0ZV9mcmVlX2xldmVsKHN0cnVjdCBkbWFyX2RvbWFpbiAqZG9tYWluLCBpbnQgbGV2 ZWwsDQogDQogCQkvKiBJZiByYW5nZSBjb3ZlcnMgZW50aXJlIHBhZ2V0YWJsZSwgZnJlZSBpdCAq Lw0KIAkJaWYgKCEoc3RhcnRfcGZuID4gbGV2ZWxfcGZuIHx8DQotCQkgICAgICBsYXN0X3BmbiA8 IGxldmVsX3BmbiArIGxldmVsX3NpemUobGV2ZWwpKSkgew0KKwkJICAgICAgbGFzdF9wZm4gPCBs ZXZlbF9wZm4gKyBsZXZlbF9zaXplKGxldmVsKSAtIDEpKSB7DQogCQkJZG1hX2NsZWFyX3B0ZShw dGUpOw0KIAkJCWRvbWFpbl9mbHVzaF9jYWNoZShkb21haW4sIHB0ZSwgc2l6ZW9mKCpwdGUpKTsN CiAJCQlmcmVlX3BndGFibGVfcGFnZShsZXZlbF9wdGUpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv bWQvS2NvbmZpZyBiL2RyaXZlcnMvbWQvS2NvbmZpZw0KaW5kZXggZmFhNDc0MS4uZTEwYjZiYiAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvbWQvS2NvbmZpZw0KKysrIGIvZHJpdmVycy9tZC9LY29uZmln DQpAQCAtMTg1LDggKzE4NSwxMiBAQCBjb25maWcgTURfRkFVTFRZDQogDQogCSAgSW4gdW5zdXJl LCBzYXkgTi4NCiANCitjb25maWcgQkxLX0RFVl9ETV9CVUlMVElODQorCWJvb2xlYW4NCisNCiBj b25maWcgQkxLX0RFVl9ETQ0KIAl0cmlzdGF0ZSAiRGV2aWNlIG1hcHBlciBzdXBwb3J0Ig0KKwlz ZWxlY3QgQkxLX0RFVl9ETV9CVUlMVElODQogCS0tLWhlbHAtLS0NCiAJICBEZXZpY2UtbWFwcGVy IGlzIGEgbG93IGxldmVsIHZvbHVtZSBtYW5hZ2VyLiAgSXQgd29ya3MgYnkgYWxsb3dpbmcNCiAJ ICBwZW9wbGUgdG8gc3BlY2lmeSBtYXBwaW5ncyBmb3IgcmFuZ2VzIG9mIGxvZ2ljYWwgc2VjdG9y cy4gIFZhcmlvdXMNCmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL01ha2VmaWxlIGIvZHJpdmVycy9t ZC9NYWtlZmlsZQ0KaW5kZXggMDQ2ODYwYy4uZjY3ZGVjMyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv bWQvTWFrZWZpbGUNCisrKyBiL2RyaXZlcnMvbWQvTWFrZWZpbGUNCkBAIC0yOCw2ICsyOCw3IEBA IG9iai0kKENPTkZJR19NRF9NVUxUSVBBVEgpCSs9IG11bHRpcGF0aC5vDQogb2JqLSQoQ09ORklH X01EX0ZBVUxUWSkJCSs9IGZhdWx0eS5vDQogb2JqLSQoQ09ORklHX0JMS19ERVZfTUQpCSs9IG1k LW1vZC5vDQogb2JqLSQoQ09ORklHX0JMS19ERVZfRE0pCSs9IGRtLW1vZC5vDQorb2JqLSQoQ09O RklHX0JMS19ERVZfRE1fQlVJTFRJTikgKz0gZG0tYnVpbHRpbi5vDQogb2JqLSQoQ09ORklHX0RN X0JVRklPKQkJKz0gZG0tYnVmaW8ubw0KIG9iai0kKENPTkZJR19ETV9DUllQVCkJCSs9IGRtLWNy eXB0Lm8NCiBvYmotJChDT05GSUdfRE1fREVMQVkpCQkrPSBkbS1kZWxheS5vDQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9tZC9kbS1idWlsdGluLmMgYi9kcml2ZXJzL21kL2RtLWJ1aWx0aW4uYw0KbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjhiODI3ODgNCi0tLSAvZGV2L251bGwN CisrKyBiL2RyaXZlcnMvbWQvZG0tYnVpbHRpbi5jDQpAQCAtMCwwICsxLDQ5IEBADQorI2luY2x1 ZGUgPGxpbnV4L2V4cG9ydC5oPg0KKyNpbmNsdWRlICJkbS5oIg0KKw0KKy8qDQorICogVGhlIGtv YmplY3QgcmVsZWFzZSBtZXRob2QgbXVzdCBub3QgYmUgcGxhY2VkIGluIHRoZSBtb2R1bGUgaXRz ZWxmLA0KKyAqIG90aGVyd2lzZSB3ZSBhcmUgc3ViamVjdCB0byBtb2R1bGUgdW5sb2FkIHJhY2Vz Lg0KKyAqDQorICogVGhlIHJlbGVhc2UgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIHRoZSBsYXN0IHJl ZmVyZW5jZSB0byB0aGUga29iamVjdCBpcw0KKyAqIGRyb3BwZWQuIEl0IG1heSBiZSBjYWxsZWQg YnkgYW55IG90aGVyIGtlcm5lbCBjb2RlIHRoYXQgZHJvcHMgdGhlIGxhc3QNCisgKiByZWZlcmVu Y2UuDQorICoNCisgKiBUaGUgcmVsZWFzZSBtZXRob2Qgc3VmZmVycyBmcm9tIG1vZHVsZSB1bmxv YWQgcmFjZS4gV2UgbWF5IHByZXZlbnQgdGhlDQorICogbW9kdWxlIGZyb20gYmVpbmcgdW5sb2Fk ZWQgYXQgdGhlIHN0YXJ0IG9mIHRoZSByZWxlYXNlIG1ldGhvZCAodXNpbmcNCisgKiBpbmNyZWFz ZWQgbW9kdWxlIHJlZmVyZW5jZSBjb3VudCBvciBzeW5jaHJvbml6aW5nIGFnYWluc3QgdGhlIHJl bGVhc2UNCisgKiBtZXRob2QpLCBob3dldmVyIHRoZXJlIGlzIG5vIHdheSB0byBwcmV2ZW50IHRo ZSBtb2R1bGUgZnJvbSBiZWluZw0KKyAqIHVubG9hZGVkIGF0IHRoZSBlbmQgb2YgdGhlIHJlbGVh c2UgbWV0aG9kLg0KKyAqDQorICogSWYgdGhpcyBjb2RlIHdlcmUgcGxhY2VkIGluIHRoZSBkbSBt b2R1bGUsIHRoZSBmb2xsb3dpbmcgcmFjZSBtYXkNCisgKiBoYXBwZW46DQorICogIDEuIFNvbWUg b3RoZXIgcHJvY2VzcyB0YWtlcyBhIHJlZmVyZW5jZSB0byBkbSBrb2JqZWN0DQorICogIDIuIFRo ZSB1c2VyIGlzc3VlcyBpb2N0bCBmdW5jdGlvbiB0byB1bmxvYWQgdGhlIGRtIGRldmljZQ0KKyAq ICAzLiBkbV9zeXNmc19leGl0IGNhbGxzIGtvYmplY3RfcHV0LCBob3dldmVyIHRoZSBvYmplY3Qg aXMgbm90IHJlbGVhc2VkDQorICogICAgIGJlY2F1c2Ugb2YgdGhlIG90aGVyIHJlZmVyZW5jZSB0 YWtlbiBhdCBzdGVwIDENCisgKiAgNC4gZG1fc3lzZnNfZXhpdCB3YWl0cyBvbiB0aGUgY29tcGxl dGlvbg0KKyAqICA1LiBUaGUgb3RoZXIgcHJvY2VzcyB0aGF0IHRvb2sgdGhlIHJlZmVyZW5jZSBp biBzdGVwIDEgZHJvcHMgaXQsDQorICogICAgIGRtX2tvYmplY3RfcmVsZWFzZSBpcyBjYWxsZWQg ZnJvbSB0aGlzIHByb2Nlc3MNCisgKiAgNi4gZG1fa29iamVjdF9yZWxlYXNlIGNhbGxzIGNvbXBs ZXRlKCkNCisgKiAgNy4gYSByZXNjaGVkdWxlIGhhcHBlbnMgYmVmb3JlIGRtX2tvYmplY3RfcmVs ZWFzZSByZXR1cm5zDQorICogIDguIGRtX3N5c2ZzX2V4aXQgY29udGludWVzLCB0aGUgZG0gZGV2 aWNlIGlzIHVubG9hZGVkLCBtb2R1bGUgcmVmZXJlbmNlDQorICogICAgIGNvdW50IGlzIGRlY3Jl bWVudGVkDQorICogIDkuIFRoZSB1c2VyIHVubG9hZHMgdGhlIGRtIG1vZHVsZQ0KKyAqIDEwLiBU aGUgb3RoZXIgcHJvY2VzcyB0aGF0IHdhcyByZXNjaGVkdWxlZCBpbiBzdGVwIDcgY29udGludWVz IHRvIHJ1biwNCisgKiAgICAgaXQgaXMgbm93IGV4ZWN1dGluZyBjb2RlIGluIHVubG9hZGVkIG1v ZHVsZSwgc28gaXQgY3Jhc2hlcw0KKyAqDQorICogTm90ZSB0aGF0IGlmIHRoZSBwcm9jZXNzIHRo YXQgdGFrZXMgdGhlIGZvcmVpZ24gcmVmZXJlbmNlIHRvIGRtIGtvYmplY3QNCisgKiBoYXMgYSBs b3cgcHJpb3JpdHkgYW5kIHRoZSBzeXN0ZW0gaXMgc3VmZmljaWVudGx5IGxvYWRlZCB3aXRoDQor ICogaGlnaGVyLXByaW9yaXR5IHByb2Nlc3NlcyB0aGF0IHByZXZlbnQgdGhlIGxvdy1wcmlvcml0 eSBwcm9jZXNzIGZyb20NCisgKiBiZWluZyBzY2hlZHVsZWQgbG9uZyBlbm91Z2gsIHRoaXMgYnVn IG1heSByZWFsbHkgaGFwcGVuLg0KKyAqDQorICogSW4gb3JkZXIgdG8gZml4IHRoaXMgbW9kdWxl IHVubG9hZCByYWNlLCB3ZSBwbGFjZSB0aGUgcmVsZWFzZSBtZXRob2QNCisgKiBpbnRvIGEgaGVs cGVyIGNvZGUgdGhhdCBpcyBjb21waWxlZCBkaXJlY3RseSBpbnRvIHRoZSBrZXJuZWwuDQorICov DQorDQordm9pZCBkbV9rb2JqZWN0X3JlbGVhc2Uoc3RydWN0IGtvYmplY3QgKmtvYmopDQorew0K Kwljb21wbGV0ZShkbV9nZXRfY29tcGxldGlvbl9mcm9tX2tvYmplY3Qoa29iaikpOw0KK30NCisN CitFWFBPUlRfU1lNQk9MKGRtX2tvYmplY3RfcmVsZWFzZSk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZC9kbS1zeXNmcy5jIGIvZHJpdmVycy9tZC9kbS1zeXNmcy5jDQppbmRleCA4NGQyYjkxLi5j NjJjNWFiIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZC9kbS1zeXNmcy5jDQorKysgYi9kcml2ZXJz L21kL2RtLXN5c2ZzLmMNCkBAIC04Niw2ICs4Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3lz ZnNfb3BzIGRtX3N5c2ZzX29wcyA9IHsNCiBzdGF0aWMgc3RydWN0IGtvYmpfdHlwZSBkbV9rdHlw ZSA9IHsNCiAJLnN5c2ZzX29wcwk9ICZkbV9zeXNmc19vcHMsDQogCS5kZWZhdWx0X2F0dHJzCT0g ZG1fYXR0cnMsDQorCS5yZWxlYXNlCT0gZG1fa29iamVjdF9yZWxlYXNlLA0KIH07DQogDQogLyoN CkBAIC0xMDQsNSArMTA1LDcgQEAgaW50IGRtX3N5c2ZzX2luaXQoc3RydWN0IG1hcHBlZF9kZXZp Y2UgKm1kKQ0KICAqLw0KIHZvaWQgZG1fc3lzZnNfZXhpdChzdHJ1Y3QgbWFwcGVkX2RldmljZSAq bWQpDQogew0KLQlrb2JqZWN0X3B1dChkbV9rb2JqZWN0KG1kKSk7DQorCXN0cnVjdCBrb2JqZWN0 ICprb2JqID0gZG1fa29iamVjdChtZCk7DQorCWtvYmplY3RfcHV0KGtvYmopOw0KKwl3YWl0X2Zv cl9jb21wbGV0aW9uKGRtX2dldF9jb21wbGV0aW9uX2Zyb21fa29iamVjdChrb2JqKSk7DQogfQ0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvZG0uYyBiL2RyaXZlcnMvbWQvZG0uYw0KaW5kZXggODk1 MzYzMC4uN2VhZDA2NSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbWQvZG0uYw0KKysrIGIvZHJpdmVy cy9tZC9kbS5jDQpAQCAtMTkyLDggKzE5Miw4IEBAIHN0cnVjdCBtYXBwZWRfZGV2aWNlIHsNCiAJ LyogZm9yY2VkIGdlb21ldHJ5IHNldHRpbmdzICovDQogCXN0cnVjdCBoZF9nZW9tZXRyeSBnZW9t ZXRyeTsNCiANCi0JLyogc3lzZnMgaGFuZGxlICovDQotCXN0cnVjdCBrb2JqZWN0IGtvYmo7DQor CS8qIGtvYmplY3QgYW5kIGNvbXBsZXRpb24gKi8NCisJc3RydWN0IGRtX2tvYmplY3RfaG9sZGVy IGtvYmpfaG9sZGVyOw0KIA0KIAkvKiB6ZXJvLWxlbmd0aCBmbHVzaCB0aGF0IHdpbGwgYmUgY2xv bmVkIGFuZCBzdWJtaXR0ZWQgdG8gdGFyZ2V0cyAqLw0KIAlzdHJ1Y3QgYmlvIGZsdXNoX2JpbzsN CkBAIC0xODkxLDYgKzE4OTEsNyBAQCBzdGF0aWMgc3RydWN0IG1hcHBlZF9kZXZpY2UgKmFsbG9j X2RldihpbnQgbWlub3IpDQogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJm1kLT53YWl0KTsNCiAJSU5J VF9XT1JLKCZtZC0+d29yaywgZG1fd3Ffd29yayk7DQogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJm1k LT5ldmVudHEpOw0KKwlpbml0X2NvbXBsZXRpb24oJm1kLT5rb2JqX2hvbGRlci5jb21wbGV0aW9u KTsNCiANCiAJbWQtPmRpc2stPm1ham9yID0gX21ham9yOw0KIAltZC0+ZGlzay0+Zmlyc3RfbWlu b3IgPSBtaW5vcjsNCkBAIC0yNjgyLDcgKzI2ODMsNyBAQCBzdHJ1Y3QgZ2VuZGlzayAqZG1fZGlz ayhzdHJ1Y3QgbWFwcGVkX2RldmljZSAqbWQpDQogDQogc3RydWN0IGtvYmplY3QgKmRtX2tvYmpl Y3Qoc3RydWN0IG1hcHBlZF9kZXZpY2UgKm1kKQ0KIHsNCi0JcmV0dXJuICZtZC0+a29iajsNCisJ cmV0dXJuICZtZC0+a29ial9ob2xkZXIua29iajsNCiB9DQogDQogLyoNCkBAIC0yNjkzLDkgKzI2 OTQsNyBAQCBzdHJ1Y3QgbWFwcGVkX2RldmljZSAqZG1fZ2V0X2Zyb21fa29iamVjdChzdHJ1Y3Qg a29iamVjdCAqa29iaikNCiB7DQogCXN0cnVjdCBtYXBwZWRfZGV2aWNlICptZDsNCiANCi0JbWQg PSBjb250YWluZXJfb2Yoa29iaiwgc3RydWN0IG1hcHBlZF9kZXZpY2UsIGtvYmopOw0KLQlpZiAo Jm1kLT5rb2JqICE9IGtvYmopDQotCQlyZXR1cm4gTlVMTDsNCisJbWQgPSBjb250YWluZXJfb2Yo a29iaiwgc3RydWN0IG1hcHBlZF9kZXZpY2UsIGtvYmpfaG9sZGVyLmtvYmopOw0KIA0KIAlpZiAo dGVzdF9iaXQoRE1GX0ZSRUVJTkcsICZtZC0+ZmxhZ3MpIHx8DQogCSAgICBkbV9kZWxldGluZ19t ZChtZCkpDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS5oIGIvZHJpdmVycy9tZC9kbS5oDQpp bmRleCBiN2RhY2Q1Li45ZGI4MGM5IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZC9kbS5oDQorKysg Yi9kcml2ZXJzL21kL2RtLmgNCkBAIC0xNSw2ICsxNSw4IEBADQogI2luY2x1ZGUgPGxpbnV4L2xp c3QuaD4NCiAjaW5jbHVkZSA8bGludXgvYmxrZGV2Lmg+DQogI2luY2x1ZGUgPGxpbnV4L2hkcmVn Lmg+DQorI2luY2x1ZGUgPGxpbnV4L2NvbXBsZXRpb24uaD4NCisjaW5jbHVkZSA8bGludXgva29i amVjdC5oPg0KIA0KIC8qDQogICogU3VzcGVuZCBmZWF0dXJlIGZsYWdzDQpAQCAtMTE5LDEyICsx MjEsMjcgQEAgdm9pZCBkbV9pbnRlcmZhY2VfZXhpdCh2b2lkKTsNCiAvKg0KICAqIHN5c2ZzIGlu dGVyZmFjZQ0KICAqLw0KK3N0cnVjdCBkbV9rb2JqZWN0X2hvbGRlciB7DQorCXN0cnVjdCBrb2Jq ZWN0IGtvYmo7DQorCXN0cnVjdCBjb21wbGV0aW9uIGNvbXBsZXRpb247DQorfTsNCisNCitzdGF0 aWMgaW5saW5lIHN0cnVjdCBjb21wbGV0aW9uICpkbV9nZXRfY29tcGxldGlvbl9mcm9tX2tvYmpl Y3Qoc3RydWN0IGtvYmplY3QgKmtvYmopDQorew0KKwlyZXR1cm4gJmNvbnRhaW5lcl9vZihrb2Jq LCBzdHJ1Y3QgZG1fa29iamVjdF9ob2xkZXIsIGtvYmopLT5jb21wbGV0aW9uOw0KK30NCisNCiBp bnQgZG1fc3lzZnNfaW5pdChzdHJ1Y3QgbWFwcGVkX2RldmljZSAqbWQpOw0KIHZvaWQgZG1fc3lz ZnNfZXhpdChzdHJ1Y3QgbWFwcGVkX2RldmljZSAqbWQpOw0KIHN0cnVjdCBrb2JqZWN0ICpkbV9r b2JqZWN0KHN0cnVjdCBtYXBwZWRfZGV2aWNlICptZCk7DQogc3RydWN0IG1hcHBlZF9kZXZpY2Ug KmRtX2dldF9mcm9tX2tvYmplY3Qoc3RydWN0IGtvYmplY3QgKmtvYmopOw0KIA0KIC8qDQorICog VGhlIGtvYmplY3QgaGVscGVyDQorICovDQordm9pZCBkbV9rb2JqZWN0X3JlbGVhc2Uoc3RydWN0 IGtvYmplY3QgKmtvYmopOw0KKw0KKy8qDQogICogVGFyZ2V0cyBmb3IgbGluZWFyIGFuZCBzdHJp cGVkIG1hcHBpbmdzDQogICovDQogaW50IGRtX2xpbmVhcl9pbml0KHZvaWQpOw0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvbWQvcGVyc2lzdGVudC1kYXRhL2RtLXNwYWNlLW1hcC1jb21tb24uYyBiL2Ry aXZlcnMvbWQvcGVyc2lzdGVudC1kYXRhL2RtLXNwYWNlLW1hcC1jb21tb24uYw0KaW5kZXggZGYy NDk0Yy4uOGM1YjgyNCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbWQvcGVyc2lzdGVudC1kYXRhL2Rt LXNwYWNlLW1hcC1jb21tb24uYw0KKysrIGIvZHJpdmVycy9tZC9wZXJzaXN0ZW50LWRhdGEvZG0t c3BhY2UtbWFwLWNvbW1vbi5jDQpAQCAtMjQ0LDYgKzI0NCwxMCBAQCBpbnQgc21fbGxfZXh0ZW5k KHN0cnVjdCBsbF9kaXNrICpsbCwgZG1fYmxvY2tfdCBleHRyYV9ibG9ja3MpDQogCQlyZXR1cm4g LUVJTlZBTDsNCiAJfQ0KIA0KKwkvKg0KKwkgKiBXZSBuZWVkIHRvIHNldCB0aGlzIGJlZm9yZSB0 aGUgZG1fdG1fbmV3X2Jsb2NrKCkgY2FsbCBiZWxvdy4NCisJICovDQorCWxsLT5ucl9ibG9ja3Mg PSBucl9ibG9ja3M7DQogCWZvciAoaSA9IG9sZF9ibG9ja3M7IGkgPCBibG9ja3M7IGkrKykgew0K IAkJc3RydWN0IGRtX2Jsb2NrICpiOw0KIAkJc3RydWN0IGRpc2tfaW5kZXhfZW50cnkgaWR4Ow0K QEAgLTI1MSw2ICsyNTUsNyBAQCBpbnQgc21fbGxfZXh0ZW5kKHN0cnVjdCBsbF9kaXNrICpsbCwg ZG1fYmxvY2tfdCBleHRyYV9ibG9ja3MpDQogCQlyID0gZG1fdG1fbmV3X2Jsb2NrKGxsLT50bSwg JmRtX3NtX2JpdG1hcF92YWxpZGF0b3IsICZiKTsNCiAJCWlmIChyIDwgMCkNCiAJCQlyZXR1cm4g cjsNCisNCiAJCWlkeC5ibG9ja25yID0gY3B1X3RvX2xlNjQoZG1fYmxvY2tfbG9jYXRpb24oYikp Ow0KIA0KIAkJciA9IGRtX3RtX3VubG9jayhsbC0+dG0sIGIpOw0KQEAgLTI2NSw3ICsyNzAsNiBA QCBpbnQgc21fbGxfZXh0ZW5kKHN0cnVjdCBsbF9kaXNrICpsbCwgZG1fYmxvY2tfdCBleHRyYV9i bG9ja3MpDQogCQkJcmV0dXJuIHI7DQogCX0NCiANCi0JbGwtPm5yX2Jsb2NrcyA9IG5yX2Jsb2Nr czsNCiAJcmV0dXJuIDA7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvcmFpZDUuYyBi L2RyaXZlcnMvbWQvcmFpZDUuYw0KaW5kZXggZmI2NzgzMy4uN2M5NjNjNCAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvbWQvcmFpZDUuYw0KKysrIGIvZHJpdmVycy9tZC9yYWlkNS5jDQpAQCAtMTY5Myw2 ICsxNjkzLDcgQEAgc3RhdGljIHZvaWQgcmFpZDVfZW5kX3dyaXRlX3JlcXVlc3Qoc3RydWN0IGJp byAqYmksIGludCBlcnJvcikNCiAJfQ0KIA0KIAlpZiAoIXVwdG9kYXRlKSB7DQorCQlzZXRfYml0 KFNUUklQRV9ERUdSQURFRCwgJnNoLT5zdGF0ZSk7DQogCQlzZXRfYml0KFdyaXRlRXJyb3JTZWVu LCAmY29uZi0+ZGlza3NbaV0ucmRldi0+ZmxhZ3MpOw0KIAkJc2V0X2JpdChSNV9Xcml0ZUVycm9y LCAmc2gtPmRldltpXS5mbGFncyk7DQogCX0gZWxzZSBpZiAoaXNfYmFkYmxvY2soY29uZi0+ZGlz a3NbaV0ucmRldiwgc2gtPnNlY3RvciwgU1RSSVBFX1NFQ1RPUlMsDQpAQCAtNDQ0OSwyMyArNDQ1 MCw0MyBAQCByYWlkNV9zaXplKHN0cnVjdCBtZGRldiAqbWRkZXYsIHNlY3Rvcl90IHNlY3RvcnMs IGludCByYWlkX2Rpc2tzKQ0KIAlyZXR1cm4gc2VjdG9ycyAqIChyYWlkX2Rpc2tzIC0gY29uZi0+ bWF4X2RlZ3JhZGVkKTsNCiB9DQogDQorc3RhdGljIHZvaWQgZnJlZV9zY3JhdGNoX2J1ZmZlcihz dHJ1Y3QgcjVjb25mICpjb25mLCBzdHJ1Y3QgcmFpZDVfcGVyY3B1ICpwZXJjcHUpDQorew0KKwlz YWZlX3B1dF9wYWdlKHBlcmNwdS0+c3BhcmVfcGFnZSk7DQorCWtmcmVlKHBlcmNwdS0+c2NyaWJi bGUpOw0KKwlwZXJjcHUtPnNwYXJlX3BhZ2UgPSBOVUxMOw0KKwlwZXJjcHUtPnNjcmliYmxlID0g TlVMTDsNCit9DQorDQorc3RhdGljIGludCBhbGxvY19zY3JhdGNoX2J1ZmZlcihzdHJ1Y3QgcjVj b25mICpjb25mLCBzdHJ1Y3QgcmFpZDVfcGVyY3B1ICpwZXJjcHUpDQorew0KKwlpZiAoY29uZi0+ bGV2ZWwgPT0gNiAmJiAhcGVyY3B1LT5zcGFyZV9wYWdlKQ0KKwkJcGVyY3B1LT5zcGFyZV9wYWdl ID0gYWxsb2NfcGFnZShHRlBfS0VSTkVMKTsNCisJaWYgKCFwZXJjcHUtPnNjcmliYmxlKQ0KKwkJ cGVyY3B1LT5zY3JpYmJsZSA9IGttYWxsb2MoY29uZi0+c2NyaWJibGVfbGVuLCBHRlBfS0VSTkVM KTsNCisNCisJaWYgKCFwZXJjcHUtPnNjcmliYmxlIHx8IChjb25mLT5sZXZlbCA9PSA2ICYmICFw ZXJjcHUtPnNwYXJlX3BhZ2UpKSB7DQorCQlmcmVlX3NjcmF0Y2hfYnVmZmVyKGNvbmYsIHBlcmNw dSk7DQorCQlyZXR1cm4gLUVOT01FTTsNCisJfQ0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQogc3Rh dGljIHZvaWQgcmFpZDVfZnJlZV9wZXJjcHUoc3RydWN0IHI1Y29uZiAqY29uZikNCiB7DQotCXN0 cnVjdCByYWlkNV9wZXJjcHUgKnBlcmNwdTsNCiAJdW5zaWduZWQgbG9uZyBjcHU7DQogDQogCWlm ICghY29uZi0+cGVyY3B1KQ0KIAkJcmV0dXJuOw0KIA0KLQlnZXRfb25saW5lX2NwdXMoKTsNCi0J Zm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkgew0KLQkJcGVyY3B1ID0gcGVyX2NwdV9wdHIoY29u Zi0+cGVyY3B1LCBjcHUpOw0KLQkJc2FmZV9wdXRfcGFnZShwZXJjcHUtPnNwYXJlX3BhZ2UpOw0K LQkJa2ZyZWUocGVyY3B1LT5zY3JpYmJsZSk7DQotCX0NCiAjaWZkZWYgQ09ORklHX0hPVFBMVUdf Q1BVDQogCXVucmVnaXN0ZXJfY3B1X25vdGlmaWVyKCZjb25mLT5jcHVfbm90aWZ5KTsNCiAjZW5k aWYNCisNCisJZ2V0X29ubGluZV9jcHVzKCk7DQorCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUp DQorCQlmcmVlX3NjcmF0Y2hfYnVmZmVyKGNvbmYsIHBlcl9jcHVfcHRyKGNvbmYtPnBlcmNwdSwg Y3B1KSk7DQogCXB1dF9vbmxpbmVfY3B1cygpOw0KIA0KIAlmcmVlX3BlcmNwdShjb25mLT5wZXJj cHUpOw0KQEAgLTQ0OTEsMTUgKzQ1MTIsNyBAQCBzdGF0aWMgaW50IHJhaWQ0NTZfY3B1X25vdGlm eShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5mYiwgdW5zaWduZWQgbG9uZyBhY3Rpb24sDQogCXN3 aXRjaCAoYWN0aW9uKSB7DQogCWNhc2UgQ1BVX1VQX1BSRVBBUkU6DQogCWNhc2UgQ1BVX1VQX1BS RVBBUkVfRlJPWkVOOg0KLQkJaWYgKGNvbmYtPmxldmVsID09IDYgJiYgIXBlcmNwdS0+c3BhcmVf cGFnZSkNCi0JCQlwZXJjcHUtPnNwYXJlX3BhZ2UgPSBhbGxvY19wYWdlKEdGUF9LRVJORUwpOw0K LQkJaWYgKCFwZXJjcHUtPnNjcmliYmxlKQ0KLQkJCXBlcmNwdS0+c2NyaWJibGUgPSBrbWFsbG9j KGNvbmYtPnNjcmliYmxlX2xlbiwgR0ZQX0tFUk5FTCk7DQotDQotCQlpZiAoIXBlcmNwdS0+c2Ny aWJibGUgfHwNCi0JCSAgICAoY29uZi0+bGV2ZWwgPT0gNiAmJiAhcGVyY3B1LT5zcGFyZV9wYWdl KSkgew0KLQkJCXNhZmVfcHV0X3BhZ2UocGVyY3B1LT5zcGFyZV9wYWdlKTsNCi0JCQlrZnJlZShw ZXJjcHUtPnNjcmliYmxlKTsNCisJCWlmIChhbGxvY19zY3JhdGNoX2J1ZmZlcihjb25mLCBwZXJj cHUpKSB7DQogCQkJcHJfZXJyKCIlczogZmFpbGVkIG1lbW9yeSBhbGxvY2F0aW9uIGZvciBjcHUl bGRcbiIsDQogCQkJICAgICAgIF9fZnVuY19fLCBjcHUpOw0KIAkJCXJldHVybiBub3RpZmllcl9m cm9tX2Vycm5vKC1FTk9NRU0pOw0KQEAgLTQ1MDcsMTAgKzQ1MjAsNyBAQCBzdGF0aWMgaW50IHJh aWQ0NTZfY3B1X25vdGlmeShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5mYiwgdW5zaWduZWQgbG9u ZyBhY3Rpb24sDQogCQlicmVhazsNCiAJY2FzZSBDUFVfREVBRDoNCiAJY2FzZSBDUFVfREVBRF9G Uk9aRU46DQotCQlzYWZlX3B1dF9wYWdlKHBlcmNwdS0+c3BhcmVfcGFnZSk7DQotCQlrZnJlZShw ZXJjcHUtPnNjcmliYmxlKTsNCi0JCXBlcmNwdS0+c3BhcmVfcGFnZSA9IE5VTEw7DQotCQlwZXJj cHUtPnNjcmliYmxlID0gTlVMTDsNCisJCWZyZWVfc2NyYXRjaF9idWZmZXIoY29uZiwgcGVyX2Nw dV9wdHIoY29uZi0+cGVyY3B1LCBjcHUpKTsNCiAJCWJyZWFrOw0KIAlkZWZhdWx0Og0KIAkJYnJl YWs7DQpAQCAtNDUyMiw0MCArNDUzMiwyOSBAQCBzdGF0aWMgaW50IHJhaWQ0NTZfY3B1X25vdGlm eShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5mYiwgdW5zaWduZWQgbG9uZyBhY3Rpb24sDQogc3Rh dGljIGludCByYWlkNV9hbGxvY19wZXJjcHUoc3RydWN0IHI1Y29uZiAqY29uZikNCiB7DQogCXVu c2lnbmVkIGxvbmcgY3B1Ow0KLQlzdHJ1Y3QgcGFnZSAqc3BhcmVfcGFnZTsNCi0Jc3RydWN0IHJh aWQ1X3BlcmNwdSBfX3BlcmNwdSAqYWxsY3B1czsNCi0Jdm9pZCAqc2NyaWJibGU7DQotCWludCBl cnI7DQorCWludCBlcnIgPSAwOw0KIA0KLQlhbGxjcHVzID0gYWxsb2NfcGVyY3B1KHN0cnVjdCBy YWlkNV9wZXJjcHUpOw0KLQlpZiAoIWFsbGNwdXMpDQorCWNvbmYtPnBlcmNwdSA9IGFsbG9jX3Bl cmNwdShzdHJ1Y3QgcmFpZDVfcGVyY3B1KTsNCisJaWYgKCFjb25mLT5wZXJjcHUpDQogCQlyZXR1 cm4gLUVOT01FTTsNCi0JY29uZi0+cGVyY3B1ID0gYWxsY3B1czsNCisNCisjaWZkZWYgQ09ORklH X0hPVFBMVUdfQ1BVDQorCWNvbmYtPmNwdV9ub3RpZnkubm90aWZpZXJfY2FsbCA9IHJhaWQ0NTZf Y3B1X25vdGlmeTsNCisJY29uZi0+Y3B1X25vdGlmeS5wcmlvcml0eSA9IDA7DQorCWVyciA9IHJl Z2lzdGVyX2NwdV9ub3RpZmllcigmY29uZi0+Y3B1X25vdGlmeSk7DQorCWlmIChlcnIpDQorCQly ZXR1cm4gZXJyOw0KKyNlbmRpZg0KIA0KIAlnZXRfb25saW5lX2NwdXMoKTsNCi0JZXJyID0gMDsN CiAJZm9yX2VhY2hfcHJlc2VudF9jcHUoY3B1KSB7DQotCQlpZiAoY29uZi0+bGV2ZWwgPT0gNikg ew0KLQkJCXNwYXJlX3BhZ2UgPSBhbGxvY19wYWdlKEdGUF9LRVJORUwpOw0KLQkJCWlmICghc3Bh cmVfcGFnZSkgew0KLQkJCQllcnIgPSAtRU5PTUVNOw0KLQkJCQlicmVhazsNCi0JCQl9DQotCQkJ cGVyX2NwdV9wdHIoY29uZi0+cGVyY3B1LCBjcHUpLT5zcGFyZV9wYWdlID0gc3BhcmVfcGFnZTsN Ci0JCX0NCi0JCXNjcmliYmxlID0ga21hbGxvYyhjb25mLT5zY3JpYmJsZV9sZW4sIEdGUF9LRVJO RUwpOw0KLQkJaWYgKCFzY3JpYmJsZSkgew0KLQkJCWVyciA9IC1FTk9NRU07DQorCQllcnIgPSBh bGxvY19zY3JhdGNoX2J1ZmZlcihjb25mLCBwZXJfY3B1X3B0cihjb25mLT5wZXJjcHUsIGNwdSkp Ow0KKwkJaWYgKGVycikgew0KKwkJCXByX2VycigiJXM6IGZhaWxlZCBtZW1vcnkgYWxsb2NhdGlv biBmb3IgY3B1JWxkXG4iLA0KKwkJCSAgICAgICBfX2Z1bmNfXywgY3B1KTsNCiAJCQlicmVhazsN CiAJCX0NCi0JCXBlcl9jcHVfcHRyKGNvbmYtPnBlcmNwdSwgY3B1KS0+c2NyaWJibGUgPSBzY3Jp YmJsZTsNCiAJfQ0KLSNpZmRlZiBDT05GSUdfSE9UUExVR19DUFUNCi0JY29uZi0+Y3B1X25vdGlm eS5ub3RpZmllcl9jYWxsID0gcmFpZDQ1Nl9jcHVfbm90aWZ5Ow0KLQljb25mLT5jcHVfbm90aWZ5 LnByaW9yaXR5ID0gMDsNCi0JaWYgKGVyciA9PSAwKQ0KLQkJZXJyID0gcmVnaXN0ZXJfY3B1X25v dGlmaWVyKCZjb25mLT5jcHVfbm90aWZ5KTsNCi0jZW5kaWYNCiAJcHV0X29ubGluZV9jcHVzKCk7 DQogDQogCXJldHVybiBlcnI7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVz Yi9teGwxMTFzZi10dW5lci5oIGIvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9teGwxMTFzZi10 dW5lci5oDQppbmRleCBmZjMzMzk2Li4xMGI5M2M0IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZWRp YS9kdmIvZHZiLXVzYi9teGwxMTFzZi10dW5lci5oDQorKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9k dmItdXNiL214bDExMXNmLXR1bmVyLmgNCkBAIC02OSw3ICs2OSw3IEBAIHN0cnVjdCBkdmJfZnJv bnRlbmQgKm14bDExMXNmX3R1bmVyX2F0dGFjaChzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSwNCiAj ZWxzZQ0KIHN0YXRpYyBpbmxpbmUNCiBzdHJ1Y3QgZHZiX2Zyb250ZW5kICpteGwxMTFzZl90dW5l cl9hdHRhY2goc3RydWN0IGR2Yl9mcm9udGVuZCAqZmUsDQotCQkJCQkgICBzdHJ1Y3QgbXhsMTEx c2Zfc3RhdGUgKm14bF9zdGF0ZQ0KKwkJCQkJICAgc3RydWN0IG14bDExMXNmX3N0YXRlICpteGxf c3RhdGUsDQogCQkJCQkgICBzdHJ1Y3QgbXhsMTExc2ZfdHVuZXJfY29uZmlnICpjZmcpDQogew0K IAlwcmludGsoS0VSTl9XQVJOSU5HICIlczogZHJpdmVyIGRpc2FibGVkIGJ5IEtjb25maWdcbiIs IF9fZnVuY19fKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvZGli ODAwMC5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL2RpYjgwMDAuYw0KaW5kZXggZmUy ODRkNS4uYTU0MmRiMSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9k aWI4MDAwLmMNCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9kaWI4MDAwLmMNCkBA IC0xMTQsMTUgKzExNCwxMCBAQCBzdGF0aWMgdTE2IGRpYjgwMDBfaTJjX3JlYWQxNihzdHJ1Y3Qg aTJjX2RldmljZSAqaTJjLCB1MTYgcmVnKQ0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCi1zdGF0aWMg dTE2IGRpYjgwMDBfcmVhZF93b3JkKHN0cnVjdCBkaWI4MDAwX3N0YXRlICpzdGF0ZSwgdTE2IHJl ZykNCitzdGF0aWMgdTE2IF9fZGliODAwMF9yZWFkX3dvcmQoc3RydWN0IGRpYjgwMDBfc3RhdGUg KnN0YXRlLCB1MTYgcmVnKQ0KIHsNCiAJdTE2IHJldDsNCiANCi0JaWYgKG11dGV4X2xvY2tfaW50 ZXJydXB0aWJsZSgmc3RhdGUtPmkyY19idWZmZXJfbG9jaykgPCAwKSB7DQotCQlkcHJpbnRrKCJj b3VsZCBub3QgYWNxdWlyZSBsb2NrIik7DQotCQlyZXR1cm4gMDsNCi0JfQ0KLQ0KIAlzdGF0ZS0+ aTJjX3dyaXRlX2J1ZmZlclswXSA9IHJlZyA+PiA4Ow0KIAlzdGF0ZS0+aTJjX3dyaXRlX2J1ZmZl clsxXSA9IHJlZyAmIDB4ZmY7DQogDQpAQCAtMTQwLDYgKzEzNSwyMSBAQCBzdGF0aWMgdTE2IGRp YjgwMDBfcmVhZF93b3JkKHN0cnVjdCBkaWI4MDAwX3N0YXRlICpzdGF0ZSwgdTE2IHJlZykNCiAJ CWRwcmludGsoImkyYyByZWFkIGVycm9yIG9uICVkIiwgcmVnKTsNCiANCiAJcmV0ID0gKHN0YXRl LT5pMmNfcmVhZF9idWZmZXJbMF0gPDwgOCkgfCBzdGF0ZS0+aTJjX3JlYWRfYnVmZmVyWzFdOw0K Kw0KKwlyZXR1cm4gcmV0Ow0KK30NCisNCitzdGF0aWMgdTE2IGRpYjgwMDBfcmVhZF93b3JkKHN0 cnVjdCBkaWI4MDAwX3N0YXRlICpzdGF0ZSwgdTE2IHJlZykNCit7DQorCXUxNiByZXQ7DQorDQor CWlmIChtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJnN0YXRlLT5pMmNfYnVmZmVyX2xvY2spIDwg MCkgew0KKwkJZHByaW50aygiY291bGQgbm90IGFjcXVpcmUgbG9jayIpOw0KKwkJcmV0dXJuIDA7 DQorCX0NCisNCisJcmV0ID0gX19kaWI4MDAwX3JlYWRfd29yZChzdGF0ZSwgcmVnKTsNCisNCiAJ bXV0ZXhfdW5sb2NrKCZzdGF0ZS0+aTJjX2J1ZmZlcl9sb2NrKTsNCiANCiAJcmV0dXJuIHJldDsN CkBAIC0xNDksOCArMTU5LDE1IEBAIHN0YXRpYyB1MzIgZGliODAwMF9yZWFkMzIoc3RydWN0IGRp YjgwMDBfc3RhdGUgKnN0YXRlLCB1MTYgcmVnKQ0KIHsNCiAJdTE2IHJ3WzJdOw0KIA0KLQlyd1sw XSA9IGRpYjgwMDBfcmVhZF93b3JkKHN0YXRlLCByZWcgKyAwKTsNCi0JcndbMV0gPSBkaWI4MDAw X3JlYWRfd29yZChzdGF0ZSwgcmVnICsgMSk7DQorCWlmIChtdXRleF9sb2NrX2ludGVycnVwdGli bGUoJnN0YXRlLT5pMmNfYnVmZmVyX2xvY2spIDwgMCkgew0KKwkJZHByaW50aygiY291bGQgbm90 IGFjcXVpcmUgbG9jayIpOw0KKwkJcmV0dXJuIDA7DQorCX0NCisNCisJcndbMF0gPSBfX2RpYjgw MDBfcmVhZF93b3JkKHN0YXRlLCByZWcgKyAwKTsNCisJcndbMV0gPSBfX2RpYjgwMDBfcmVhZF93 b3JkKHN0YXRlLCByZWcgKyAxKTsNCisNCisJbXV0ZXhfdW5sb2NrKCZzdGF0ZS0+aTJjX2J1ZmZl cl9sb2NrKTsNCiANCiAJcmV0dXJuICgocndbMF0gPDwgMTYpIHwgKHJ3WzFdKSk7DQogfQ0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWFsc2EuYyBiL2Ry aXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWFsc2EuYw0KaW5kZXggMTA0NjBmZC4u ZGJjZGZiZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0 LWFsc2EuYw0KKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtYWxzYS5j DQpAQCAtMTcyLDcgKzE3Miw5IEBAIHN0YXRpYyB2b2lkIHNhYTcxMzRfaXJxX2Fsc2FfZG9uZShz dHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiwNCiAJCWRwcmludGsoImlycTogb3ZlcnJ1biBbZnVsbD0l ZC8lZF0gLSBCbG9ja3MgaW4gJWRcbiIsZGV2LT5kbWFzb3VuZC5yZWFkX2NvdW50LA0KIAkJCWRl di0+ZG1hc291bmQuYnVmc2l6ZSwgZGV2LT5kbWFzb3VuZC5ibG9ja3MpOw0KIAkJc3Bpbl91bmxv Y2soJmRldi0+c2xvY2spOw0KKwkJc25kX3BjbV9zdHJlYW1fbG9jayhkZXYtPmRtYXNvdW5kLnN1 YnN0cmVhbSk7DQogCQlzbmRfcGNtX3N0b3AoZGV2LT5kbWFzb3VuZC5zdWJzdHJlYW0sU05EUlZf UENNX1NUQVRFX1hSVU4pOw0KKwkJc25kX3BjbV9zdHJlYW1fdW5sb2NrKGRldi0+ZG1hc291bmQu c3Vic3RyZWFtKTsNCiAJCXJldHVybjsNCiAJfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1j L2hvc3QvYXRtZWwtbWNpLmMgYi9kcml2ZXJzL21tYy9ob3N0L2F0bWVsLW1jaS5jDQppbmRleCA4 Mzc5MGYyLi5mZDYxZjYzIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2ku Yw0KKysrIGIvZHJpdmVycy9tbWMvaG9zdC9hdG1lbC1tY2kuYw0KQEAgLTEwMTQsMTEgKzEwMTQs MjIgQEAgc3RhdGljIHZvaWQgYXRtY2lfc3RhcnRfcmVxdWVzdChzdHJ1Y3QgYXRtZWxfbWNpICpo b3N0LA0KIAlpZmxhZ3MgfD0gQVRNQ0lfQ01EUkRZOw0KIAljbWQgPSBtcnEtPmNtZDsNCiAJY21k ZmxhZ3MgPSBhdG1jaV9wcmVwYXJlX2NvbW1hbmQoc2xvdC0+bW1jLCBjbWQpOw0KLQlhdG1jaV9z ZW5kX2NvbW1hbmQoaG9zdCwgY21kLCBjbWRmbGFncyk7DQorDQorCS8qDQorCSAqIERNQSB0cmFu c2ZlciBzaG91bGQgYmUgc3RhcnRlZCBiZWZvcmUgc2VuZGluZyB0aGUgY29tbWFuZCB0byBhdm9p ZA0KKwkgKiB1bmV4cGVjdGVkIGVycm9ycyBlc3BlY2lhbGx5IGZvciByZWFkIG9wZXJhdGlvbnMg aW4gU0RJTyBtb2RlLg0KKwkgKiBVbmZvcnR1bmF0ZWx5LCBpbiBQREMgbW9kZSwgY29tbWFuZCBo YXMgdG8gYmUgc2VudCBiZWZvcmUgc3RhcnRpbmcNCisJICogdGhlIHRyYW5zZmVyLg0KKwkgKi8N CisJaWYgKGhvc3QtPnN1Ym1pdF9kYXRhICE9ICZhdG1jaV9zdWJtaXRfZGF0YV9kbWEpDQorCQlh dG1jaV9zZW5kX2NvbW1hbmQoaG9zdCwgY21kLCBjbWRmbGFncyk7DQogDQogCWlmIChkYXRhKQ0K IAkJaG9zdC0+c3VibWl0X2RhdGEoaG9zdCwgZGF0YSk7DQogDQorCWlmIChob3N0LT5zdWJtaXRf ZGF0YSA9PSAmYXRtY2lfc3VibWl0X2RhdGFfZG1hKQ0KKwkJYXRtY2lfc2VuZF9jb21tYW5kKGhv c3QsIGNtZCwgY21kZmxhZ3MpOw0KKw0KIAlpZiAobXJxLT5zdG9wKSB7DQogCQlob3N0LT5zdG9w X2NtZHIgPSBhdG1jaV9wcmVwYXJlX2NvbW1hbmQoc2xvdC0+bW1jLCBtcnEtPnN0b3ApOw0KIAkJ aG9zdC0+c3RvcF9jbWRyIHw9IEFUTUNJX0NNRFJfU1RPUF9YRkVSOw0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbW1jL2hvc3Qvc2RoY2kuYyBiL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2kuYw0KaW5kZXgg YWFlYWZmMi4uOWY2OGI4MiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2kuYw0K KysrIGIvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS5jDQpAQCAtMTY3MCwxMiArMTY3MCwxMiBAQCBz dGF0aWMgaW50IHNkaGNpX2V4ZWN1dGVfdHVuaW5nKHN0cnVjdCBtbWNfaG9zdCAqbW1jKQ0KIAlp bnQgdHVuaW5nX2xvb3BfY291bnRlciA9IE1BWF9UVU5JTkdfTE9PUDsNCiAJdW5zaWduZWQgbG9u ZyB0aW1lb3V0Ow0KIAlpbnQgZXJyID0gMDsNCisJdW5zaWduZWQgbG9uZyBmbGFnczsNCiANCiAJ aG9zdCA9IG1tY19wcml2KG1tYyk7DQogDQogCXNkaGNpX3J1bnRpbWVfcG1fZ2V0KGhvc3QpOw0K LQlkaXNhYmxlX2lycShob3N0LT5pcnEpOw0KLQlzcGluX2xvY2soJmhvc3QtPmxvY2spOw0KKwlz cGluX2xvY2tfaXJxc2F2ZSgmaG9zdC0+bG9jaywgZmxhZ3MpOw0KIA0KIAljdHJsID0gc2RoY2lf cmVhZHcoaG9zdCwgU0RIQ0lfSE9TVF9DT05UUk9MMik7DQogDQpAQCAtMTY4OSw4ICsxNjg5LDcg QEAgc3RhdGljIGludCBzZGhjaV9leGVjdXRlX3R1bmluZyhzdHJ1Y3QgbW1jX2hvc3QgKm1tYykN CiAJICAgIChob3N0LT5mbGFncyAmIFNESENJX1NEUjUwX05FRURTX1RVTklORykpKQ0KIAkJY3Ry bCB8PSBTREhDSV9DVFJMX0VYRUNfVFVOSU5HOw0KIAllbHNlIHsNCi0JCXNwaW5fdW5sb2NrKCZo b3N0LT5sb2NrKTsNCi0JCWVuYWJsZV9pcnEoaG9zdC0+aXJxKTsNCisJCXNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJmhvc3QtPmxvY2ssIGZsYWdzKTsNCiAJCXNkaGNpX3J1bnRpbWVfcG1fcHV0KGhv c3QpOw0KIAkJcmV0dXJuIDA7DQogCX0NCkBAIC0xNzUyLDE1ICsxNzUxLDEyIEBAIHN0YXRpYyBp bnQgc2RoY2lfZXhlY3V0ZV90dW5pbmcoc3RydWN0IG1tY19ob3N0ICptbWMpDQogCQlob3N0LT5j bWQgPSBOVUxMOw0KIAkJaG9zdC0+bXJxID0gTlVMTDsNCiANCi0JCXNwaW5fdW5sb2NrKCZob3N0 LT5sb2NrKTsNCi0JCWVuYWJsZV9pcnEoaG9zdC0+aXJxKTsNCi0NCisJCXNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJmhvc3QtPmxvY2ssIGZsYWdzKTsNCiAJCS8qIFdhaXQgZm9yIEJ1ZmZlciBSZWFk IFJlYWR5IGludGVycnVwdCAqLw0KIAkJd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlX3RpbWVvdXQo aG9zdC0+YnVmX3JlYWR5X2ludCwNCiAJCQkJCShob3N0LT50dW5pbmdfZG9uZSA9PSAxKSwNCiAJ CQkJCW1zZWNzX3RvX2ppZmZpZXMoNTApKTsNCi0JCWRpc2FibGVfaXJxKGhvc3QtPmlycSk7DQot CQlzcGluX2xvY2soJmhvc3QtPmxvY2spOw0KKwkJc3Bpbl9sb2NrX2lycXNhdmUoJmhvc3QtPmxv Y2ssIGZsYWdzKTsNCiANCiAJCWlmICghaG9zdC0+dHVuaW5nX2RvbmUpIHsNCiAJCQlwcl9pbmZv KERSSVZFUl9OQU1FICI6IFRpbWVvdXQgd2FpdGluZyBmb3IgIg0KQEAgLTE4MzMsOCArMTgyOSw3 IEBAIG91dDoNCiAJCWVyciA9IDA7DQogDQogCXNkaGNpX2NsZWFyX3NldF9pcnFzKGhvc3QsIFNE SENJX0lOVF9EQVRBX0FWQUlMLCBpZXIpOw0KLQlzcGluX3VubG9jaygmaG9zdC0+bG9jayk7DQot CWVuYWJsZV9pcnEoaG9zdC0+aXJxKTsNCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaG9zdC0+ bG9jaywgZmxhZ3MpOw0KIAlzZGhjaV9ydW50aW1lX3BtX3B1dChob3N0KTsNCiANCiAJcmV0dXJu IGVycjsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL214Y19uYW5kLmMgYi9kcml2ZXJz L210ZC9uYW5kL214Y19uYW5kLmMNCmluZGV4IDc0YTQzYjguLmJhZjgzNTYgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL210ZC9uYW5kL214Y19uYW5kLmMNCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvbXhj X25hbmQuYw0KQEAgLTU5Niw3ICs1OTYsNiBAQCBzdGF0aWMgaW50IG14Y19uYW5kX2NvcnJlY3Rf ZGF0YV92Ml92MyhzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgdV9jaGFyICpkYXQsDQogCQllY2Nfc3Rh dCA+Pj0gNDsNCiAJfSB3aGlsZSAoLS1ub19zdWJwYWdlcyk7DQogDQotCW10ZC0+ZWNjX3N0YXRz LmNvcnJlY3RlZCArPSByZXQ7DQogCXByX2RlYnVnKCIlZCBTeW1ib2wgQ29ycmVjdGFibGUgUlMt RUNDIEVycm9yXG4iLCByZXQpOw0KIA0KIAlyZXR1cm4gcmV0Ow0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2JvbmRpbmcvYm9uZF8zYWQuYyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF8zYWQu Yw0KaW5kZXggMGFlMGQ3Yy4uYWFhNzk5OSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2JvbmRp bmcvYm9uZF8zYWQuYw0KKysrIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kXzNhZC5jDQpAQCAt MTg1NCw4ICsxODU0LDYgQEAgdm9pZCBib25kXzNhZF9pbml0aWF0ZV9hZ2dfc2VsZWN0aW9uKHN0 cnVjdCBib25kaW5nICpib25kLCBpbnQgdGltZW91dCkNCiAJQk9ORF9BRF9JTkZPKGJvbmQpLmFn Z19zZWxlY3RfdGltZXIgPSB0aW1lb3V0Ow0KIH0NCiANCi1zdGF0aWMgdTE2IGFnZ3JlZ2F0b3Jf aWRlbnRpZmllcjsNCi0NCiAvKioNCiAgKiBib25kXzNhZF9pbml0aWFsaXplIC0gaW5pdGlhbGl6 ZSBhIGJvbmQncyA4MDIuM2FkIHBhcmFtZXRlcnMgYW5kIHN0cnVjdHVyZXMNCiAgKiBAYm9uZDog Ym9uZGluZyBzdHJ1Y3QgdG8gd29yayBvbg0KQEAgLTE4NjksNyArMTg2Nyw3IEBAIHZvaWQgYm9u ZF8zYWRfaW5pdGlhbGl6ZShzdHJ1Y3QgYm9uZGluZyAqYm9uZCwgdTE2IHRpY2tfcmVzb2x1dGlv bikNCiAJaWYgKE1BQ19BRERSRVNTX0NPTVBBUkUoJihCT05EX0FEX0lORk8oYm9uZCkuc3lzdGVt LnN5c19tYWNfYWRkciksDQogCQkJCWJvbmQtPmRldi0+ZGV2X2FkZHIpKSB7DQogDQotCQlhZ2dy ZWdhdG9yX2lkZW50aWZpZXIgPSAwOw0KKwkJQk9ORF9BRF9JTkZPKGJvbmQpLmFnZ3JlZ2F0b3Jf aWRlbnRpZmllciA9IDA7DQogDQogCQlCT05EX0FEX0lORk8oYm9uZCkuc3lzdGVtLnN5c19wcmlv cml0eSA9IDB4RkZGRjsNCiAJCUJPTkRfQURfSU5GTyhib25kKS5zeXN0ZW0uc3lzX21hY19hZGRy ID0gKigoc3RydWN0IG1hY19hZGRyICopYm9uZC0+ZGV2LT5kZXZfYWRkcik7DQpAQCAtMTk0MSw3 ICsxOTM5LDcgQEAgaW50IGJvbmRfM2FkX2JpbmRfc2xhdmUoc3RydWN0IHNsYXZlICpzbGF2ZSkN CiAJCWFkX2luaXRpYWxpemVfYWdnKGFnZ3JlZ2F0b3IpOw0KIA0KIAkJYWdncmVnYXRvci0+YWdn cmVnYXRvcl9tYWNfYWRkcmVzcyA9ICooKHN0cnVjdCBtYWNfYWRkciAqKWJvbmQtPmRldi0+ZGV2 X2FkZHIpOw0KLQkJYWdncmVnYXRvci0+YWdncmVnYXRvcl9pZGVudGlmaWVyID0gKCsrYWdncmVn YXRvcl9pZGVudGlmaWVyKTsNCisJCWFnZ3JlZ2F0b3ItPmFnZ3JlZ2F0b3JfaWRlbnRpZmllciA9 ICsrQk9ORF9BRF9JTkZPKGJvbmQpLmFnZ3JlZ2F0b3JfaWRlbnRpZmllcjsNCiAJCWFnZ3JlZ2F0 b3ItPnNsYXZlID0gc2xhdmU7DQogCQlhZ2dyZWdhdG9yLT5pc19hY3RpdmUgPSAwOw0KIAkJYWdn cmVnYXRvci0+bnVtX29mX3BvcnRzID0gMDsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ib25k aW5nL2JvbmRfM2FkLmggYi9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfM2FkLmgNCmluZGV4IDIz NWIyY2MuLjIwZDljNzggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfM2Fk LmgNCisrKyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF8zYWQuaA0KQEAgLTI1Myw2ICsyNTMs NyBAQCBzdHJ1Y3QgYWRfc3lzdGVtIHsNCiBzdHJ1Y3QgYWRfYm9uZF9pbmZvIHsNCiAJc3RydWN0 IGFkX3N5c3RlbSBzeXN0ZW07CSAgICAvKiA4MDIuM2FkIHN5c3RlbSBzdHJ1Y3R1cmUgKi8NCiAJ dTMyIGFnZ19zZWxlY3RfdGltZXI7CSAgICAvLyBUaW1lciB0byBzZWxlY3QgYWdncmVnYXRvciBh ZnRlciBhbGwgYWRhcHRlcidzIGhhbmQgc2hha2VzDQorCXUxNiBhZ2dyZWdhdG9yX2lkZW50aWZp ZXI7DQogfTsNCiANCiBzdHJ1Y3QgYWRfc2xhdmVfaW5mbyB7DQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvY2FuL2ZsZXhjYW4uYyBiL2RyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuLmMNCmluZGV4IGJi ODI4YzIuLjdjNmJiNWEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9jYW4vZmxleGNhbi5jDQor KysgYi9kcml2ZXJzL25ldC9jYW4vZmxleGNhbi5jDQpAQCAtNzc3LDE0ICs3NzcsMTYgQEAgc3Rh dGljIHZvaWQgZmxleGNhbl9jaGlwX3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKmRldikNCiAJc3Ry dWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi0+YmFzZTsNCiAJdTMyIHJlZzsN CiANCi0JLyogRGlzYWJsZSBhbGwgaW50ZXJydXB0cyAqLw0KLQlmbGV4Y2FuX3dyaXRlKDAsICZy ZWdzLT5pbWFzazEpOw0KLQ0KIAkvKiBEaXNhYmxlICsgaGFsdCBtb2R1bGUgKi8NCiAJcmVnID0g ZmxleGNhbl9yZWFkKCZyZWdzLT5tY3IpOw0KIAlyZWcgfD0gRkxFWENBTl9NQ1JfTURJUyB8IEZM RVhDQU5fTUNSX0hBTFQ7DQogCWZsZXhjYW5fd3JpdGUocmVnLCAmcmVncy0+bWNyKTsNCiANCisJ LyogRGlzYWJsZSBhbGwgaW50ZXJydXB0cyAqLw0KKwlmbGV4Y2FuX3dyaXRlKDAsICZyZWdzLT5p bWFzazEpOw0KKwlmbGV4Y2FuX3dyaXRlKHByaXYtPnJlZ19jdHJsX2RlZmF1bHQgJiB+RkxFWENB Tl9DVFJMX0VSUl9BTEwsDQorCQkgICAgICAmcmVncy0+Y3RybCk7DQorDQogCWZsZXhjYW5fdHJh bnNjZWl2ZXJfc3dpdGNoKHByaXYsIDApOw0KIAlwcml2LT5jYW4uc3RhdGUgPSBDQU5fU1RBVEVf U1RPUFBFRDsNCiANCkBAIC04MDksMTIgKzgxMSwxNCBAQCBzdGF0aWMgaW50IGZsZXhjYW5fb3Bl bihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQ0KIAkvKiBzdGFydCBjaGlwIGFuZCBxdWV1aW5nICov DQogCWVyciA9IGZsZXhjYW5fY2hpcF9zdGFydChkZXYpOw0KIAlpZiAoZXJyKQ0KLQkJZ290byBv dXRfY2xvc2U7DQorCQlnb3RvIG91dF9mcmVlX2lycTsNCiAJbmFwaV9lbmFibGUoJnByaXYtPm5h cGkpOw0KIAluZXRpZl9zdGFydF9xdWV1ZShkZXYpOw0KIA0KIAlyZXR1cm4gMDsNCiANCisgb3V0 X2ZyZWVfaXJxOg0KKwlmcmVlX2lycShkZXYtPmlycSwgZGV2KTsNCiAgb3V0X2Nsb3NlOg0KIAlj bG9zZV9jYW5kZXYoZGV2KTsNCiAgb3V0Og0KQEAgLTEwMjMsNiArMTAyNyw3IEBAIHN0YXRpYyBp bnQgX19kZXZleGl0IGZsZXhjYW5fcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp DQogCXN0cnVjdCByZXNvdXJjZSAqbWVtOw0KIA0KIAl1bnJlZ2lzdGVyX2ZsZXhjYW5kZXYoZGV2 KTsNCisJbmV0aWZfbmFwaV9kZWwoJnByaXYtPm5hcGkpOw0KIAlwbGF0Zm9ybV9zZXRfZHJ2ZGF0 YShwZGV2LCBOVUxMKTsNCiAJaW91bm1hcChwcml2LT5iYXNlKTsNCiANCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2Jyb2FkY29tL3RnMy5jDQppbmRleCBkNTc5M2QzLi5jNzdjNDYyIDEwMDY0NA0KLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmMNCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2Jyb2FkY29tL3RnMy5jDQpAQCAtNTYzNyw4ICs1NjM3LDcgQEAgc3RhdGljIGludCB0ZzNf cngoc3RydWN0IHRnM19uYXBpICp0bmFwaSwgaW50IGJ1ZGdldCkNCiANCiAJCXdvcmtfbWFzayB8 PSBvcGFxdWVfa2V5Ow0KIA0KLQkJaWYgKChkZXNjLT5lcnJfdmxhbiAmIFJYRF9FUlJfTUFTSykg IT0gMCAmJg0KLQkJICAgIChkZXNjLT5lcnJfdmxhbiAhPSBSWERfRVJSX09ERF9OSUJCTEVfUkNW RF9NSUkpKSB7DQorCQlpZiAoZGVzYy0+ZXJyX3ZsYW4gJiBSWERfRVJSX01BU0spIHsNCiAJCWRy b3BfaXQ6DQogCQkJdGczX3JlY3ljbGVfcngodG5hcGksIHRwciwgb3BhcXVlX2tleSwNCiAJCQkJ ICAgICAgIGRlc2NfaWR4LCAqcG9zdF9wdHIpOw0KQEAgLTcxMDMsMTIgKzcxMDIsMTIgQEAgc3Rh dGljIGludCB0ZzNfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgbmV3X210 dSkNCiANCiAJdGczX25ldGlmX3N0b3AodHApOw0KIA0KKwl0ZzNfc2V0X210dShkZXYsIHRwLCBu ZXdfbXR1KTsNCisNCiAJdGczX2Z1bGxfbG9jayh0cCwgMSk7DQogDQogCXRnM19oYWx0KHRwLCBS RVNFVF9LSU5EX1NIVVRET1dOLCAxKTsNCiANCi0JdGczX3NldF9tdHUoZGV2LCB0cCwgbmV3X210 dSk7DQotDQogCWVyciA9IHRnM19yZXN0YXJ0X2h3KHRwLCAwKTsNCiANCiAJaWYgKCFlcnIpDQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmggYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuaA0KaW5kZXggZGE5MGJhNS4uYTM5OGE2ZiAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3RnMy5oDQorKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS90ZzMuaA0KQEAgLTI0NzcsNyArMjQ3NywxMSBAQCBz dHJ1Y3QgdGczX3J4X2J1ZmZlcl9kZXNjIHsNCiAjZGVmaW5lIFJYRF9FUlJfVE9PX1NNQUxMCQkw eDAwNDAwMDAwDQogI2RlZmluZSBSWERfRVJSX05PX1JFU09VUkNFUwkJMHgwMDgwMDAwMA0KICNk ZWZpbmUgUlhEX0VSUl9IVUdFX0ZSQU1FCQkweDAxMDAwMDAwDQotI2RlZmluZSBSWERfRVJSX01B U0sJCQkweGZmZmYwMDAwDQorDQorI2RlZmluZSBSWERfRVJSX01BU0sJKFJYRF9FUlJfQkFEX0NS QyB8IFJYRF9FUlJfQ09MTElTSU9OIHwJCVwNCisJCQkgUlhEX0VSUl9MSU5LX0xPU1QgfCBSWERf RVJSX1BIWV9ERUNPREUgfAlcDQorCQkJIFJYRF9FUlJfTUFDX0FCUlQgfCBSWERfRVJSX1RPT19T TUFMTCB8CQlcDQorCQkJIFJYRF9FUlJfTk9fUkVTT1VSQ0VTIHwgUlhEX0VSUl9IVUdFX0ZSQU1F KQ0KIA0KIAl1MzIJCQkJcmVzZXJ2ZWQ7DQogCXUzMgkJCQlvcGFxdWU7DQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvdXNiL2dsNjIwYS5jIGIvZHJpdmVycy9uZXQvdXNiL2dsNjIwYS5jDQppbmRl eCBjNGNmZDFkLi43NWQ5MDQwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvdXNiL2dsNjIwYS5j DQorKysgYi9kcml2ZXJzL25ldC91c2IvZ2w2MjBhLmMNCkBAIC04Niw2ICs4NiwxMCBAQCBzdGF0 aWMgaW50IGdlbmVsaW5rX3J4X2ZpeHVwKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNrX2J1 ZmYgKnNrYikNCiAJdTMyCQkJc2l6ZTsNCiAJdTMyCQkJY291bnQ7DQogDQorCS8qIFRoaXMgY2hl Y2sgaXMgbm8gbG9uZ2VyIGRvbmUgYnkgdXNibmV0ICovDQorCWlmIChza2ItPmxlbiA8IGRldi0+ bmV0LT5oYXJkX2hlYWRlcl9sZW4pDQorCQlyZXR1cm4gMDsNCisNCiAJaGVhZGVyID0gKHN0cnVj dCBnbF9oZWFkZXIgKikgc2tiLT5kYXRhOw0KIA0KIAkvLyBnZXQgdGhlIHBhY2tldCBjb3VudCBv ZiB0aGUgcmVjZWl2ZWQgc2tiDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL21jczc4MzAu YyBiL2RyaXZlcnMvbmV0L3VzYi9tY3M3ODMwLmMNCmluZGV4IGRiMmNiNzQuLmEyZjc1NzkgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL25ldC91c2IvbWNzNzgzMC5jDQorKysgYi9kcml2ZXJzL25ldC91 c2IvbWNzNzgzMC5jDQpAQCAtNjAxLDggKzYwMSw5IEBAIHN0YXRpYyBpbnQgbWNzNzgzMF9yeF9m aXh1cChzdHJ1Y3QgdXNibmV0ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpDQogew0KIAl1OCBz dGF0dXM7DQogDQotCWlmIChza2ItPmxlbiA9PSAwKSB7DQotCQlkZXZfZXJyKCZkZXYtPnVkZXYt PmRldiwgInVuZXhwZWN0ZWQgZW1wdHkgcnggZnJhbWVcbiIpOw0KKwkvKiBUaGlzIGNoZWNrIGlz IG5vIGxvbmdlciBkb25lIGJ5IHVzYm5ldCAqLw0KKwlpZiAoc2tiLT5sZW4gPCBkZXYtPm5ldC0+ aGFyZF9oZWFkZXJfbGVuKSB7DQorCQlkZXZfZXJyKCZkZXYtPnVkZXYtPmRldiwgInVuZXhwZWN0 ZWQgdGlueSByeCBmcmFtZVxuIik7DQogCQlyZXR1cm4gMDsNCiAJfQ0KIA0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L3VzYi9uZXQxMDgwLmMgYi9kcml2ZXJzL25ldC91c2IvbmV0MTA4MC5jDQpp bmRleCAwMWRiNDYwLi5jOWUzMjc4IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvdXNiL25ldDEw ODAuYw0KKysrIGIvZHJpdmVycy9uZXQvdXNiL25ldDEwODAuYw0KQEAgLTQxOSw2ICs0MTksMTAg QEAgc3RhdGljIGludCBuZXQxMDgwX3J4X2ZpeHVwKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0 IHNrX2J1ZmYgKnNrYikNCiAJc3RydWN0IG5jX3RyYWlsZXIJKnRyYWlsZXI7DQogCXUxNgkJCWhk cl9sZW4sIHBhY2tldF9sZW47DQogDQorCS8qIFRoaXMgY2hlY2sgaXMgbm8gbG9uZ2VyIGRvbmUg YnkgdXNibmV0ICovDQorCWlmIChza2ItPmxlbiA8IGRldi0+bmV0LT5oYXJkX2hlYWRlcl9sZW4p DQorCQlyZXR1cm4gMDsNCisNCiAJaWYgKCEoc2tiLT5sZW4gJiAweDAxKSkgew0KICNpZmRlZiBE RUJVRw0KIAkJc3RydWN0IG5ldF9kZXZpY2UJKm5ldCA9IGRldi0+bmV0Ow0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L3VzYi9ybmRpc19ob3N0LmMgYi9kcml2ZXJzL25ldC91c2Ivcm5kaXNfaG9z dC5jDQppbmRleCAyNTVkNmE0Li4xM2I0MGUzIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvdXNi L3JuZGlzX2hvc3QuYw0KKysrIGIvZHJpdmVycy9uZXQvdXNiL3JuZGlzX2hvc3QuYw0KQEAgLTQ5 MCw2ICs0OTAsMTAgQEAgRVhQT1JUX1NZTUJPTF9HUEwocm5kaXNfdW5iaW5kKTsNCiAgKi8NCiBp bnQgcm5kaXNfcnhfZml4dXAoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2ti KQ0KIHsNCisJLyogVGhpcyBjaGVjayBpcyBubyBsb25nZXIgZG9uZSBieSB1c2JuZXQgKi8NCisJ aWYgKHNrYi0+bGVuIDwgZGV2LT5uZXQtPmhhcmRfaGVhZGVyX2xlbikNCisJCXJldHVybiAwOw0K Kw0KIAkvKiBwZXJpcGhlcmFsIG1heSBoYXZlIGJhdGNoZWQgcGFja2V0cyB0byB1cy4uLiAqLw0K IAl3aGlsZSAobGlrZWx5KHNrYi0+bGVuKSkgew0KIAkJc3RydWN0IHJuZGlzX2RhdGFfaGRyCSpo ZHIgPSAodm9pZCAqKXNrYi0+ZGF0YTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2Ivc21z Yzc1eHguYyBiL2RyaXZlcnMvbmV0L3VzYi9zbXNjNzV4eC5jDQppbmRleCBhOGU0NjQwLi5jNDFi NDJiIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvdXNiL3Ntc2M3NXh4LmMNCisrKyBiL2RyaXZl cnMvbmV0L3VzYi9zbXNjNzV4eC5jDQpAQCAtMTA3OSw2ICsxMDc5LDEwIEBAIHN0YXRpYyB2b2lk IHNtc2M3NXh4X3J4X2NzdW1fb2ZmbG9hZChzdHJ1Y3QgdXNibmV0ICpkZXYsIHN0cnVjdCBza19i dWZmICpza2IsDQogDQogc3RhdGljIGludCBzbXNjNzV4eF9yeF9maXh1cChzdHJ1Y3QgdXNibmV0 ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpDQogew0KKwkvKiBUaGlzIGNoZWNrIGlzIG5vIGxv bmdlciBkb25lIGJ5IHVzYm5ldCAqLw0KKwlpZiAoc2tiLT5sZW4gPCBkZXYtPm5ldC0+aGFyZF9o ZWFkZXJfbGVuKQ0KKwkJcmV0dXJuIDA7DQorDQogCXdoaWxlIChza2ItPmxlbiA+IDApIHsNCiAJ CXUzMiByeF9jbWRfYSwgcnhfY21kX2IsIGFsaWduX2NvdW50LCBzaXplOw0KIAkJc3RydWN0IHNr X2J1ZmYgKmF4X3NrYjsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2Ivc21zYzk1eHguYyBi L2RyaXZlcnMvbmV0L3VzYi9zbXNjOTV4eC5jDQppbmRleCA1NWIzMjE4Li42NjE3MzI1IDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9uZXQvdXNiL3Ntc2M5NXh4LmMNCisrKyBiL2RyaXZlcnMvbmV0L3Vz Yi9zbXNjOTV4eC5jDQpAQCAtMTAzOSw2ICsxMDM5LDEwIEBAIHN0YXRpYyB2b2lkIHNtc2M5NXh4 X3J4X2NzdW1fb2ZmbG9hZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KIA0KIHN0YXRpYyBpbnQgc21z Yzk1eHhfcnhfZml4dXAoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0K IHsNCisJLyogVGhpcyBjaGVjayBpcyBubyBsb25nZXIgZG9uZSBieSB1c2JuZXQgKi8NCisJaWYg KHNrYi0+bGVuIDwgZGV2LT5uZXQtPmhhcmRfaGVhZGVyX2xlbikNCisJCXJldHVybiAwOw0KKw0K IAl3aGlsZSAoc2tiLT5sZW4gPiAwKSB7DQogCQl1MzIgaGVhZGVyLCBhbGlnbl9jb3VudDsNCiAJ CXN0cnVjdCBza19idWZmICpheF9za2I7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL3Vz Ym5ldC5jIGIvZHJpdmVycy9uZXQvdXNiL3VzYm5ldC5jDQppbmRleCBkYzUzYThmLi4zZDIxNzQy IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvdXNiL3VzYm5ldC5jDQorKysgYi9kcml2ZXJzL25l dC91c2IvdXNibmV0LmMNCkBAIC00MTQsMTcgKzQxNCwxOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQg cnhfcHJvY2VzcyAoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KIAl9 DQogCS8vIGVsc2UgbmV0d29yayBzdGFjayByZW1vdmVzIGV4dHJhIGJ5dGUgaWYgd2UgZm9yY2Vk IGEgc2hvcnQgcGFja2V0DQogDQotCWlmIChza2ItPmxlbikgew0KLQkJLyogYWxsIGRhdGEgd2Fz IGFscmVhZHkgY2xvbmVkIGZyb20gc2tiIGluc2lkZSB0aGUgZHJpdmVyICovDQotCQlpZiAoZGV2 LT5kcml2ZXJfaW5mby0+ZmxhZ3MgJiBGTEFHX01VTFRJX1BBQ0tFVCkNCi0JCQlkZXZfa2ZyZWVf c2tiX2FueShza2IpOw0KLQkJZWxzZQ0KLQkJCXVzYm5ldF9za2JfcmV0dXJuKGRldiwgc2tiKTsN CisJLyogYWxsIGRhdGEgd2FzIGFscmVhZHkgY2xvbmVkIGZyb20gc2tiIGluc2lkZSB0aGUgZHJp dmVyICovDQorCWlmIChkZXYtPmRyaXZlcl9pbmZvLT5mbGFncyAmIEZMQUdfTVVMVElfUEFDS0VU KQ0KKwkJZ290byBkb25lOw0KKw0KKwlpZiAoc2tiLT5sZW4gPCBFVEhfSExFTikgew0KKwkJZGV2 LT5uZXQtPnN0YXRzLnJ4X2Vycm9ycysrOw0KKwkJZGV2LT5uZXQtPnN0YXRzLnJ4X2xlbmd0aF9l cnJvcnMrKzsNCisJCW5ldGlmX2RiZyhkZXYsIHJ4X2VyciwgZGV2LT5uZXQsICJyeCBsZW5ndGgg JWRcbiIsIHNrYi0+bGVuKTsNCisJfSBlbHNlIHsNCisJCXVzYm5ldF9za2JfcmV0dXJuKGRldiwg c2tiKTsNCiAJCXJldHVybjsNCiAJfQ0KIA0KLQluZXRpZl9kYmcoZGV2LCByeF9lcnIsIGRldi0+ bmV0LCAiZHJvcFxuIik7DQotCWRldi0+bmV0LT5zdGF0cy5yeF9lcnJvcnMrKzsNCiBkb25lOg0K IAlza2JfcXVldWVfdGFpbCgmZGV2LT5kb25lLCBza2IpOw0KIH0NCkBAIC00NDYsMTMgKzQ0OCw2 IEBAIHN0YXRpYyB2b2lkIHJ4X2NvbXBsZXRlIChzdHJ1Y3QgdXJiICp1cmIpDQogCXN3aXRjaCAo dXJiX3N0YXR1cykgew0KIAkvKiBzdWNjZXNzICovDQogCWNhc2UgMDoNCi0JCWlmIChza2ItPmxl biA8IGRldi0+bmV0LT5oYXJkX2hlYWRlcl9sZW4pIHsNCi0JCQlzdGF0ZSA9IHJ4X2NsZWFudXA7 DQotCQkJZGV2LT5uZXQtPnN0YXRzLnJ4X2Vycm9ycysrOw0KLQkJCWRldi0+bmV0LT5zdGF0cy5y eF9sZW5ndGhfZXJyb3JzKys7DQotCQkJbmV0aWZfZGJnKGRldiwgcnhfZXJyLCBkZXYtPm5ldCwN Ci0JCQkJICAicnggbGVuZ3RoICVkXG4iLCBza2ItPmxlbik7DQotCQl9DQogCQlicmVhazsNCiAN CiAJLyogc3RhbGxzIG5lZWQgbWFudWFsIHJlc2V0LiB0aGlzIGlzIHJhcmUgLi4uIGV4Y2VwdCB0 aGF0DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jIGIvZHJpdmVycy9uZXQv dmlydGlvX25ldC5jDQppbmRleCA0M2E2YTExLi5mMTNhNjczIDEwMDY0NA0KLS0tIGEvZHJpdmVy cy9uZXQvdmlydGlvX25ldC5jDQorKysgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMNCkBAIC0x MDI5LDcgKzEwMjksOCBAQCBzdGF0aWMgaW50IHZpcnRuZXRfcHJvYmUoc3RydWN0IHZpcnRpb19k ZXZpY2UgKnZkZXYpDQogCS8qIElmIHdlIGNhbiByZWNlaXZlIEFOWSBHU08gcGFja2V0cywgd2Ug bXVzdCBhbGxvY2F0ZSBsYXJnZSBvbmVzLiAqLw0KIAlpZiAodmlydGlvX2hhc19mZWF0dXJlKHZk ZXYsIFZJUlRJT19ORVRfRl9HVUVTVF9UU080KSB8fA0KIAkgICAgdmlydGlvX2hhc19mZWF0dXJl KHZkZXYsIFZJUlRJT19ORVRfRl9HVUVTVF9UU082KSB8fA0KLQkgICAgdmlydGlvX2hhc19mZWF0 dXJlKHZkZXYsIFZJUlRJT19ORVRfRl9HVUVTVF9FQ04pKQ0KKwkgICAgdmlydGlvX2hhc19mZWF0 dXJlKHZkZXYsIFZJUlRJT19ORVRfRl9HVUVTVF9FQ04pIHx8DQorCSAgICB2aXJ0aW9faGFzX2Zl YXR1cmUodmRldiwgVklSVElPX05FVF9GX0dVRVNUX1VGTykpDQogCQl2aS0+YmlnX3BhY2tldHMg PSB0cnVlOw0KIA0KIAlpZiAodmlydGlvX2hhc19mZWF0dXJlKHZkZXYsIFZJUlRJT19ORVRfRl9N UkdfUlhCVUYpKQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19kcnYu YyBiL2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19kcnYuYw0KaW5kZXggZDQyNjI2MS4uMjhj ZWVmMiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19kcnYuYw0KKysr IGIvZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2Rydi5jDQpAQCAtMTczNCwxMSArMTczNCwy MCBAQCB2bXhuZXQzX25ldHBvbGwoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikNCiB7DQogCXN0 cnVjdCB2bXhuZXQzX2FkYXB0ZXIgKmFkYXB0ZXIgPSBuZXRkZXZfcHJpdihuZXRkZXYpOw0KIA0K LQlpZiAoYWRhcHRlci0+aW50ci5tYXNrX21vZGUgPT0gVk1YTkVUM19JTU1fQUNUSVZFKQ0KLQkJ dm14bmV0M19kaXNhYmxlX2FsbF9pbnRycyhhZGFwdGVyKTsNCi0NCi0Jdm14bmV0M19kb19wb2xs KGFkYXB0ZXIsIGFkYXB0ZXItPnJ4X3F1ZXVlWzBdLnJ4X3JpbmdbMF0uc2l6ZSk7DQotCXZteG5l dDNfZW5hYmxlX2FsbF9pbnRycyhhZGFwdGVyKTsNCisJc3dpdGNoIChhZGFwdGVyLT5pbnRyLnR5 cGUpIHsNCisjaWZkZWYgQ09ORklHX1BDSV9NU0kNCisJY2FzZSBWTVhORVQzX0lUX01TSVg6IHsN CisJCWludCBpOw0KKwkJZm9yIChpID0gMDsgaSA8IGFkYXB0ZXItPm51bV9yeF9xdWV1ZXM7IGkr KykNCisJCQl2bXhuZXQzX21zaXhfcngoMCwgJmFkYXB0ZXItPnJ4X3F1ZXVlW2ldKTsNCisJCWJy ZWFrOw0KKwl9DQorI2VuZGlmDQorCWNhc2UgVk1YTkVUM19JVF9NU0k6DQorCWRlZmF1bHQ6DQor CQl2bXhuZXQzX2ludHIoMCwgYWRhcHRlci0+bmV0ZGV2KTsNCisJCWJyZWFrOw0KKwl9DQogDQog fQ0KICNlbmRpZgkvKiBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiAqLw0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjk0NjJfMnAwX2luaXR2YWxzLmggYi9k cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5NDYyXzJwMF9pbml0dmFscy5oDQppbmRl eCA5YzUxYjM5Li5lYWJmMzc0IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRo L2F0aDlrL2FyOTQ2Ml8ycDBfaW5pdHZhbHMuaA0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mv YXRoL2F0aDlrL2FyOTQ2Ml8ycDBfaW5pdHZhbHMuaA0KQEAgLTU1LDcgKzU1LDcgQEAgc3RhdGlj IGNvbnN0IHUzMiBhcjk0NjJfMnAwX2Jhc2ViYW5kX3Bvc3RhbWJsZVtdWzVdID0gew0KIAl7MHgw MDAwOWUxNCwgMHgzN2I5NWQ1ZSwgMHgzN2I5NjA1ZSwgMHgzMDM5NjA1ZSwgMHgzMzc5NWQ1ZX0s DQogCXsweDAwMDA5ZTE4LCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAw MDAwMDAwfSwNCiAJezB4MDAwMDllMWMsIDB4MDAwMWNmOWMsIDB4MDAwMWNmOWMsIDB4MDAwMjFm OWMsIDB4MDAwMjFmOWN9LA0KLQl7MHgwMDAwOWUyMCwgMHgwMDAwMDNiNSwgMHgwMDAwMDNiNSwg MHgwMDAwMDNjZSwgMHgwMDAwMDNjZX0sDQorCXsweDAwMDA5ZTIwLCAweDAwMDAwM2E1LCAweDAw MDAwM2E1LCAweDAwMDAwM2E1LCAweDAwMDAwM2E1fSwNCiAJezB4MDAwMDllMmMsIDB4MDAwMDAw MWMsIDB4MDAwMDAwMWMsIDB4MDAwMDAwMjEsIDB4MDAwMDAwMjF9LA0KIAl7MHgwMDAwOWUzYywg MHhjZjk0NjIyMCwgMHhjZjk0NjIyMCwgMHhjZmQ1Yzc4MiwgMHhjZmQ1Yzc4Mn0sDQogCXsweDAw MDA5ZTQ0LCAweGZlMzIxZTI3LCAweGZlMzIxZTI3LCAweGZlMjkxZTI3LCAweGZlMjkxZTI3fSwN CkBAIC04NSw3ICs4NSw3IEBAIHN0YXRpYyBjb25zdCB1MzIgYXI5NDYyXzJwMF9iYXNlYmFuZF9w b3N0YW1ibGVbXVs1XSA9IHsNCiAJezB4MDAwMGFlMDQsIDB4MDAxYzAwMDAsIDB4MDAxYzAwMDAs IDB4MDAxYzAwMDAsIDB4MDAxMDAwMDB9LA0KIAl7MHgwMDAwYWUxOCwgMHgwMDAwMDAwMCwgMHgw MDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMH0sDQogCXsweDAwMDBhZTFjLCAweDAwMDAw MTljLCAweDAwMDAwMTljLCAweDAwMDAwMTljLCAweDAwMDAwMTljfSwNCi0JezB4MDAwMGFlMjAs IDB4MDAwMDAxYjUsIDB4MDAwMDAxYjUsIDB4MDAwMDAxY2UsIDB4MDAwMDAxY2V9LA0KKwl7MHgw MDAwYWUyMCwgMHgwMDAwMDFhNiwgMHgwMDAwMDFhNiwgMHgwMDAwMDFhYSwgMHgwMDAwMDFhYX0s DQogCXsweDAwMDBiMjg0LCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwNTUwLCAweDAw MDAwNTUwfSwNCiB9Ow0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9h dGg5ay9odGNfZHJ2X2luaXQuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9odGNf ZHJ2X2luaXQuYw0KaW5kZXggZWY5MjFlMS4uYzZjM2UxYyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv bmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9odGNfZHJ2X2luaXQuYw0KKysrIGIvZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDlrL2h0Y19kcnZfaW5pdC5jDQpAQCAtMjgsNiArMjgsMTAgQEAgaW50 IGh0Y19tb2RwYXJhbV9ub2h3Y3J5cHQ7DQogbW9kdWxlX3BhcmFtX25hbWVkKG5vaHdjcnlwdCwg aHRjX21vZHBhcmFtX25vaHdjcnlwdCwgaW50LCAwNDQ0KTsNCiBNT0RVTEVfUEFSTV9ERVNDKG5v aHdjcnlwdCwgIkRpc2FibGUgaGFyZHdhcmUgZW5jcnlwdGlvbiIpOw0KIA0KK3N0YXRpYyBpbnQg YXRoOWtfcHNfZW5hYmxlOw0KK21vZHVsZV9wYXJhbV9uYW1lZChwc19lbmFibGUsIGF0aDlrX3Bz X2VuYWJsZSwgaW50LCAwNDQ0KTsNCitNT0RVTEVfUEFSTV9ERVNDKHBzX2VuYWJsZSwgIkVuYWJs ZSBXTEFOIFBvd2VyU2F2ZSIpOw0KKw0KICNkZWZpbmUgQ0hBTjJHKF9mcmVxLCBfaWR4KSAgeyBc DQogCS5jZW50ZXJfZnJlcSA9IChfZnJlcSksIFwNCiAJLmh3X3ZhbHVlID0gKF9pZHgpLCBcDQpA QCAtNzI5LDExICs3MzMsMTMgQEAgc3RhdGljIHZvaWQgYXRoOWtfc2V0X2h3X2NhcGFiKHN0cnVj dCBhdGg5a19odGNfcHJpdiAqcHJpdiwNCiAJCUlFRUU4MDIxMV9IV19TUEVDVFJVTV9NR01UIHwN CiAJCUlFRUU4MDIxMV9IV19IQVNfUkFURV9DT05UUk9MIHwNCiAJCUlFRUU4MDIxMV9IV19SWF9J TkNMVURFU19GQ1MgfA0KLQkJSUVFRTgwMjExX0hXX1NVUFBPUlRTX1BTIHwNCiAJCUlFRUU4MDIx MV9IV19QU19OVUxMRlVOQ19TVEFDSyB8DQogCQlJRUVFODAyMTFfSFdfUkVQT1JUU19UWF9BQ0tf U1RBVFVTIHwNCiAJCUlFRUU4MDIxMV9IV19IT1NUX0JST0FEQ0FTVF9QU19CVUZGRVJJTkc7DQog DQorCWlmIChhdGg5a19wc19lbmFibGUpDQorCQlody0+ZmxhZ3MgfD0gSUVFRTgwMjExX0hXX1NV UFBPUlRTX1BTOw0KKw0KIAlody0+d2lwaHktPmludGVyZmFjZV9tb2RlcyA9DQogCQlCSVQoTkw4 MDIxMV9JRlRZUEVfU1RBVElPTikgfA0KIAkJQklUKE5MODAyMTFfSUZUWVBFX0FESE9DKSB8DQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2luaXQuYyBiL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9pbml0LmMNCmluZGV4IGJhNmE0OWMuLjEzNTVkNzEg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jDQorKysg Yi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaW5pdC5jDQpAQCAtNDQsNiArNDQsMTAg QEAgc3RhdGljIGludCBhdGg5a19idGNvZXhfZW5hYmxlOw0KIG1vZHVsZV9wYXJhbV9uYW1lZChi dGNvZXhfZW5hYmxlLCBhdGg5a19idGNvZXhfZW5hYmxlLCBpbnQsIDA0NDQpOw0KIE1PRFVMRV9Q QVJNX0RFU0MoYnRjb2V4X2VuYWJsZSwgIkVuYWJsZSB3aWZpLUJUIGNvZXhpc3RlbmNlIik7DQog DQorc3RhdGljIGludCBhdGg5a19wc19lbmFibGU7DQorbW9kdWxlX3BhcmFtX25hbWVkKHBzX2Vu YWJsZSwgYXRoOWtfcHNfZW5hYmxlLCBpbnQsIDA0NDQpOw0KK01PRFVMRV9QQVJNX0RFU0MocHNf ZW5hYmxlLCAiRW5hYmxlIFdMQU4gUG93ZXJTYXZlIik7DQorDQogYm9vbCBpc19hdGg5a191bmxv YWRlZDsNCiAvKiBXZSB1c2UgdGhlIGh3X3ZhbHVlIGFzIGFuIGluZGV4IGludG8gb3VyIHByaXZh dGUgY2hhbm5lbCBzdHJ1Y3R1cmUgKi8NCiANCkBAIC02NzEsMTEgKzY3NSwxMyBAQCB2b2lkIGF0 aDlrX3NldF9od19jYXBhYihzdHJ1Y3QgYXRoX3NvZnRjICpzYywgc3RydWN0IGllZWU4MDIxMV9o dyAqaHcpDQogCWh3LT5mbGFncyA9IElFRUU4MDIxMV9IV19SWF9JTkNMVURFU19GQ1MgfA0KIAkJ SUVFRTgwMjExX0hXX0hPU1RfQlJPQURDQVNUX1BTX0JVRkZFUklORyB8DQogCQlJRUVFODAyMTFf SFdfU0lHTkFMX0RCTSB8DQotCQlJRUVFODAyMTFfSFdfU1VQUE9SVFNfUFMgfA0KIAkJSUVFRTgw MjExX0hXX1BTX05VTExGVU5DX1NUQUNLIHwNCiAJCUlFRUU4MDIxMV9IV19TUEVDVFJVTV9NR01U IHwNCiAJCUlFRUU4MDIxMV9IV19SRVBPUlRTX1RYX0FDS19TVEFUVVM7DQogDQorCWlmIChhdGg5 a19wc19lbmFibGUpDQorCQlody0+ZmxhZ3MgfD0gSUVFRTgwMjExX0hXX1NVUFBPUlRTX1BTOw0K Kw0KIAlpZiAoc2MtPnNjX2FoLT5jYXBzLmh3X2NhcHMgJiBBVEg5S19IV19DQVBfSFQpDQogCQkg aHctPmZsYWdzIHw9IElFRUU4MDIxMV9IV19BTVBEVV9BR0dSRUdBVElPTjsNCiANCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsveG1pdC5jIGIvZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYw0KaW5kZXggMTI2ZWQzMS4uMmU4OGFmMSAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMNCisrKyBiL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMNCkBAIC0xMTc2LDE0ICsxMTc2LDE2IEBA IHZvaWQgYXRoX3R4X2FnZ3Jfc2xlZXAoc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwgc3RydWN0 IGF0aF9zb2Z0YyAqc2MsDQogCWZvciAodGlkbm8gPSAwLCB0aWQgPSAmYW4tPnRpZFt0aWRub107 DQogCSAgICAgdGlkbm8gPCBXTUVfTlVNX1RJRDsgdGlkbm8rKywgdGlkKyspIHsNCiANCi0JCWlm ICghdGlkLT5zY2hlZCkNCi0JCQljb250aW51ZTsNCi0NCiAJCWFjID0gdGlkLT5hYzsNCiAJCXR4 cSA9IGFjLT50eHE7DQogDQogCQlzcGluX2xvY2tfYmgoJnR4cS0+YXhxX2xvY2spOw0KIA0KKwkJ aWYgKCF0aWQtPnNjaGVkKSB7DQorCQkJc3Bpbl91bmxvY2tfYmgoJnR4cS0+YXhxX2xvY2spOw0K KwkJCWNvbnRpbnVlOw0KKwkJfQ0KKw0KIAkJYnVmZmVyZWQgPSAhc2tiX3F1ZXVlX2VtcHR5KCZ0 aWQtPmJ1Zl9xKTsNCiANCiAJCXRpZC0+c2NoZWQgPSBmYWxzZTsNCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9iNDMveG1pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL3ht aXQuYw0KaW5kZXggNWY3N2NiZS4uYzZjMzRiZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dp cmVsZXNzL2I0My94bWl0LmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My94bWl0LmMN CkBAIC04MTksMTAgKzgxOSwxMCBAQCB2b2lkIGI0M19yeChzdHJ1Y3QgYjQzX3dsZGV2ICpkZXYs IHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHZvaWQgKl9yeGhkcikNCiAJCSAqIGNoYW5uZWwg bnVtYmVyIGluIGI0My4gKi8NCiAJCWlmIChjaGFuc3RhdCAmIEI0M19SWF9DSEFOXzVHSFopIHsN CiAJCQlzdGF0dXMuYmFuZCA9IElFRUU4MDIxMV9CQU5EXzVHSFo7DQotCQkJc3RhdHVzLmZyZXEg PSBiNDNfZnJlcV90b19jaGFubmVsXzVnaHooY2hhbmlkKTsNCisJCQlzdGF0dXMuZnJlcSA9IGI0 M19jaGFubmVsX3RvX2ZyZXFfNWdoeihjaGFuaWQpOw0KIAkJfSBlbHNlIHsNCiAJCQlzdGF0dXMu YmFuZCA9IElFRUU4MDIxMV9CQU5EXzJHSFo7DQotCQkJc3RhdHVzLmZyZXEgPSBiNDNfZnJlcV90 b19jaGFubmVsXzJnaHooY2hhbmlkKTsNCisJCQlzdGF0dXMuZnJlcSA9IGI0M19jaGFubmVsX3Rv X2ZyZXFfMmdoeihjaGFuaWQpOw0KIAkJfQ0KIAkJYnJlYWs7DQogCWRlZmF1bHQ6DQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtYWduLXR4LmMgYi9kcml2ZXJz L25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC1hZ24tdHguYw0KaW5kZXggZGYxNTQwYy4uNWZlNDYw MiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLWFnbi10eC5j DQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC1hZ24tdHguYw0KQEAgLTg1 NCw4ICs4NTQsNiBAQCBpbnQgaXdsYWduX3J4X3JlcGx5X2NvbXByZXNzZWRfYmEoc3RydWN0IGl3 bF9wcml2ICpwcml2LA0KIAlzdHJ1Y3QgaXdsX2NvbXByZXNzZWRfYmFfcmVzcCAqYmFfcmVzcCA9 ICZwa3QtPnUuY29tcHJlc3NlZF9iYTsNCiAJc3RydWN0IGl3bF9odF9hZ2cgKmFnZzsNCiAJc3Ry dWN0IHNrX2J1ZmZfaGVhZCByZWNsYWltZWRfc2ticzsNCi0Jc3RydWN0IGllZWU4MDIxMV90eF9p bmZvICppbmZvOw0KLQlzdHJ1Y3QgaWVlZTgwMjExX2hkciAqaGRyOw0KIAlzdHJ1Y3Qgc2tfYnVm ZiAqc2tiOw0KIAl1bnNpZ25lZCBsb25nIGZsYWdzOw0KIAlpbnQgc3RhX2lkOw0KQEAgLTk0MSwy NCArOTM5LDMyIEBAIGludCBpd2xhZ25fcnhfcmVwbHlfY29tcHJlc3NlZF9iYShzdHJ1Y3QgaXds X3ByaXYgKnByaXYsDQogCQkJICAwLCAmcmVjbGFpbWVkX3NrYnMpOw0KIAlmcmVlZCA9IDA7DQog CXdoaWxlICghc2tiX3F1ZXVlX2VtcHR5KCZyZWNsYWltZWRfc2ticykpIHsNCisJCXN0cnVjdCBp ZWVlODAyMTFfaGRyICpoZHI7DQorCQlzdHJ1Y3QgaWVlZTgwMjExX3R4X2luZm8gKmluZm87DQog DQogCQlza2IgPSBfX3NrYl9kZXF1ZXVlKCZyZWNsYWltZWRfc2ticyk7DQotCQloZHIgPSAoc3Ry dWN0IGllZWU4MDIxMV9oZHIgKilza2ItPmRhdGE7DQorCQloZHIgPSAodm9pZCAqKXNrYi0+ZGF0 YTsNCisJCWluZm8gPSBJRUVFODAyMTFfU0tCX0NCKHNrYik7DQogDQogCQlpZiAoaWVlZTgwMjEx X2lzX2RhdGFfcW9zKGhkci0+ZnJhbWVfY29udHJvbCkpDQogCQkJZnJlZWQrKzsNCiAJCWVsc2UN CiAJCQlXQVJOX09OX09OQ0UoMSk7DQogDQotCQlpbmZvID0gSUVFRTgwMjExX1NLQl9DQihza2Ip Ow0KIAkJa21lbV9jYWNoZV9mcmVlKHByaXYtPnR4X2NtZF9wb29sLCAoaW5mby0+ZHJpdmVyX2Rh dGFbMV0pKTsNCiANCisJCW1lbXNldCgmaW5mby0+c3RhdHVzLCAwLCBzaXplb2YoaW5mby0+c3Rh dHVzKSk7DQorCQkvKiBQYWNrZXQgd2FzIHRyYW5zbWl0dGVkIHN1Y2Nlc3NmdWxseSwgZmFpbHVy ZXMgY29tZSBhcyBzaW5nbGUNCisJCSAqIGZyYW1lcyBiZWNhdXNlIGJlZm9yZSBmYWlsaW5nIGEg ZnJhbWUgdGhlIGZpcm13YXJlIHRyYW5zbWl0cw0KKwkJICogaXQgd2l0aG91dCBhZ2dyZWdhdGlv biBhdCBsZWFzdCBvbmNlLg0KKwkJICovDQorCQlpbmZvLT5mbGFncyB8PSBJRUVFODAyMTFfVFhf U1RBVF9BQ0s7DQorDQogCQlpZiAoZnJlZWQgPT0gMSkgew0KIAkJCS8qIHRoaXMgaXMgdGhlIGZp cnN0IHNrYiB3ZSBkZWxpdmVyIGluIHRoaXMgYmF0Y2ggKi8NCiAJCQkvKiBwdXQgdGhlIHJhdGUg c2NhbGluZyBkYXRhIHRoZXJlICovDQogCQkJaW5mbyA9IElFRUU4MDIxMV9TS0JfQ0Ioc2tiKTsN CiAJCQltZW1zZXQoJmluZm8tPnN0YXR1cywgMCwgc2l6ZW9mKGluZm8tPnN0YXR1cykpOw0KLQkJ CWluZm8tPmZsYWdzIHw9IElFRUU4MDIxMV9UWF9TVEFUX0FDSzsNCiAJCQlpbmZvLT5mbGFncyB8 PSBJRUVFODAyMTFfVFhfU1RBVF9BTVBEVTsNCiAJCQlpbmZvLT5zdGF0dXMuYW1wZHVfYWNrX2xl biA9IGJhX3Jlc3AtPnR4ZWRfMl9kb25lOw0KIAkJCWluZm8tPnN0YXR1cy5hbXBkdV9sZW4gPSBi YV9yZXNwLT50eGVkOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL213aWZpZXgv MTFuLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9td2lmaWV4LzExbi5jDQppbmRleCAzNGJiYTUy Li42NTQzZjRmIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC8xMW4u Yw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdpZmlleC8xMW4uYw0KQEAgLTM0Myw4ICsz NDMsNyBAQCBtd2lmaWV4X2NtZF9hcHBlbmRfMTFuX3RsdihzdHJ1Y3QgbXdpZmlleF9wcml2YXRl ICpwcml2LA0KIAkJaHRfY2FwLT5oZWFkZXIubGVuID0NCiAJCQkJY3B1X3RvX2xlMTYoc2l6ZW9m KHN0cnVjdCBpZWVlODAyMTFfaHRfY2FwKSk7DQogCQltZW1jcHkoKHU4ICopIGh0X2NhcCArIHNp emVvZihzdHJ1Y3QgbXdpZmlleF9pZV90eXBlc19oZWFkZXIpLA0KLQkJICAgICAgICh1OCAqKSBi c3NfZGVzYy0+YmNuX2h0X2NhcCArDQotCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBpZWVlX3R5cGVz X2hlYWRlciksDQorCQkgICAgICAgKHU4ICopYnNzX2Rlc2MtPmJjbl9odF9jYXAsDQogCQkgICAg ICAgbGUxNl90b19jcHUoaHRfY2FwLT5oZWFkZXIubGVuKSk7DQogDQogCQltd2lmaWV4X2ZpbGxf Y2FwX2luZm8ocHJpdiwgcmFkaW9fdHlwZSwgaHRfY2FwKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC93aXJlbGVzcy9ydGw4MTh4L3J0bDgxODcvcnRsODE4Ny5oIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvcnRsODE4eC9ydGw4MTg3L3J0bDgxODcuaA0KaW5kZXggZjFjYzkwNy4uNmQzZDY1MyAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bDgxOHgvcnRsODE4Ny9ydGw4MTg3 LmgNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bDgxOHgvcnRsODE4Ny9ydGw4MTg3LmgN CkBAIC0xNSw2ICsxNSw4IEBADQogI2lmbmRlZiBSVEw4MTg3X0gNCiAjZGVmaW5lIFJUTDgxODdf SA0KIA0KKyNpbmNsdWRlIDxsaW51eC9jYWNoZS5oPg0KKw0KICNpbmNsdWRlICJydGw4MTh4Lmgi DQogI2luY2x1ZGUgImxlZHMuaCINCiANCkBAIC0xMzEsNyArMTMzLDEwIEBAIHN0cnVjdCBydGw4 MTg3X3ByaXYgew0KIAl1OCBhaWZzbls0XTsNCiAJdTggcmZraWxsX21hc2s7DQogCXN0cnVjdCB7 DQotCQlfX2xlNjQgYnVmOw0KKwkJdW5pb24gew0KKwkJCV9fbGU2NCBidWY7DQorCQkJdTggZHVt bXkxW0wxX0NBQ0hFX0JZVEVTXTsNCisJCX0gX19fX2NhY2hlbGluZV9hbGlnbmVkOw0KIAkJc3Ry dWN0IHNrX2J1ZmZfaGVhZCBxdWV1ZTsNCiAJfSBiX3R4X3N0YXR1czsgLyogVGhpcyBxdWV1ZSBp cyB1c2VkIGJ5IGJvdGggLWIgYW5kIG5vbi1iIGRldmljZXMgKi8NCiAJc3RydWN0IG11dGV4IGlv X211dGV4Ow0KQEAgLTEzOSw3ICsxNDQsOCBAQCBzdHJ1Y3QgcnRsODE4N19wcml2IHsNCiAJCXU4 IGJpdHM4Ow0KIAkJX19sZTE2IGJpdHMxNjsNCiAJCV9fbGUzMiBiaXRzMzI7DQotCX0gKmlvX2Rt YWJ1ZjsNCisJCXU4IGR1bW15MltMMV9DQUNIRV9CWVRFU107DQorCX0gKmlvX2RtYWJ1ZiBfX19f Y2FjaGVsaW5lX2FsaWduZWQ7DQogCWJvb2wgcmZraWxsX29mZjsNCiB9Ow0KIA0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkvY29yZS5jIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvcnRsd2lmaS9jb3JlLmMNCmluZGV4IDNmMGYwNTYuLjRmYTk4N2IgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL2NvcmUuYw0KKysrIGIvZHJpdmVycy9uZXQv d2lyZWxlc3MvcnRsd2lmaS9jb3JlLmMNCkBAIC0xMzEsNiArMTMxLDcgQEAgc3RhdGljIGludCBy dGxfb3BfYWRkX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywNCiAJCQkJCXJ0bHBy aXYtPmNmZy0+bWFwcw0KIAkJCQkJW1JUTF9JQlNTX0lOVF9NQVNLU10pOw0KIAkJfQ0KKwkJbWFj LT5saW5rX3N0YXRlID0gTUFDODAyMTFfTElOS0VEOw0KIAkJYnJlYWs7DQogCWNhc2UgTkw4MDIx MV9JRlRZUEVfQURIT0M6DQogCQlSVF9UUkFDRShydGxwcml2LCBDT01QX01BQzgwMjExLCBEQkdf TE9VRCwNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJj ZS9ody5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTkyY2UvaHcuYw0KaW5k ZXggY2I0ODBkOC4uY2UxZmRiZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0 bHdpZmkvcnRsODE5MmNlL2h3LmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkv cnRsODE5MmNlL2h3LmMNCkBAIC05MDUsMTQgKzkwNSwyNiBAQCBpbnQgcnRsOTJjZV9od19pbml0 KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KQ0KIAlib29sIGlzOTJjOw0KIAlpbnQgZXJyOw0KIAl1 OCB0bXBfdTFiOw0KKwl1bnNpZ25lZCBsb25nIGZsYWdzOw0KIA0KIAlydGxwY2ktPmJlaW5nX2lu aXRfYWRhcHRlciA9IHRydWU7DQorDQorCS8qIFNpbmNlIHRoaXMgZnVuY3Rpb24gY2FuIHRha2Ug YSB2ZXJ5IGxvbmcgdGltZSAodXAgdG8gMzUwIG1zKQ0KKwkgKiBhbmQgY2FuIGJlIGNhbGxlZCB3 aXRoIGlycXMgZGlzYWJsZWQsIHJlZW5hYmxlIHRoZSBpcnFzDQorCSAqIHRvIGxldCB0aGUgb3Ro ZXIgZGV2aWNlcyBjb250aW51ZSBiZWluZyBzZXJ2aWNlZC4NCisJICoNCisJICogSXQgaXMgc2Fm ZSBkb2luZyBzbyBzaW5jZSBvdXIgb3duIGludGVycnVwdHMgd2lsbCBvbmx5IGJlIGVuYWJsZWQN CisJICogaW4gYSBzdWJzZXF1ZW50IHN0ZXAuDQorCSAqLw0KKwlsb2NhbF9zYXZlX2ZsYWdzKGZs YWdzKTsNCisJbG9jYWxfaXJxX2VuYWJsZSgpOw0KKw0KIAlydGxwcml2LT5pbnRmX29wcy0+ZGlz YWJsZV9hc3BtKGh3KTsNCiAJcnRzdGF0dXMgPSBfcnRsOTJjZV9pbml0X21hYyhodyk7DQogCWlm IChydHN0YXR1cyAhPSB0cnVlKSB7DQogCQlSVF9UUkFDRShydGxwcml2LCBDT01QX0VSUiwgREJH X0VNRVJHLCAoIkluaXQgTUFDIGZhaWxlZFxuIikpOw0KIAkJZXJyID0gMTsNCi0JCXJldHVybiBl cnI7DQorCQlnb3RvIGV4aXQ7DQogCX0NCiANCiAJZXJyID0gcnRsOTJjX2Rvd25sb2FkX2Z3KGh3 KTsNCkBAIC05MjIsNyArOTM0LDcgQEAgaW50IHJ0bDkyY2VfaHdfaW5pdChzdHJ1Y3QgaWVlZTgw MjExX2h3ICpodykNCiAJCQkgICJ3aXRob3V0IEZXIG5vdy4uXG4iKSk7DQogCQllcnIgPSAxOw0K IAkJcnRsaGFsLT5md19yZWFkeSA9IGZhbHNlOw0KLQkJcmV0dXJuIGVycjsNCisJCWdvdG8gZXhp dDsNCiAJfSBlbHNlIHsNCiAJCXJ0bGhhbC0+ZndfcmVhZHkgPSB0cnVlOw0KIAl9DQpAQCAtOTg1 LDYgKzk5Nyw4IEBAIGludCBydGw5MmNlX2h3X2luaXQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcp DQogCQlSVF9UUkFDRShydGxwcml2LCBDT01QX0lOSVQsIERCR19UUkFDRSwgKCJ1bmRlciAxLjVW XG4iKSk7DQogCX0NCiAJcnRsOTJjX2RtX2luaXQoaHcpOw0KK2V4aXQ6DQorCWxvY2FsX2lycV9y ZXN0b3JlKGZsYWdzKTsNCiAJcnRscGNpLT5iZWluZ19pbml0X2FkYXB0ZXIgPSBmYWxzZTsNCiAJ cmV0dXJuIGVycjsNCiB9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lm aS9ydGw4MTkyY3UvcmYuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkvcnRsODE5MmN1 L3JmLmMNCmluZGV4IDE3YThlOTYuLmQ5ODQ4NjcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93 aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJjdS9yZi5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVz cy9ydGx3aWZpL3J0bDgxOTJjdS9yZi5jDQpAQCAtODUsMTcgKzg1LDE1IEBAIHZvaWQgcnRsOTJj dV9waHlfcmY2MDUyX3NldF9jY2tfdHhwb3dlcihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywNCiAJ aWYgKG1hYy0+YWN0X3NjYW5uaW5nKSB7DQogCQl0eF9hZ2NbUkY5MF9QQVRIX0FdID0gMHgzZjNm M2YzZjsNCiAJCXR4X2FnY1tSRjkwX1BBVEhfQl0gPSAweDNmM2YzZjNmOw0KLQkJaWYgKHR1cmJv X3NjYW5vZmYpIHsNCi0JCQlmb3IgKGlkeDEgPSBSRjkwX1BBVEhfQTsgaWR4MSA8PSBSRjkwX1BB VEhfQjsgaWR4MSsrKSB7DQotCQkJCXR4X2FnY1tpZHgxXSA9IHBwb3dlcmxldmVsW2lkeDFdIHwN Ci0JCQkJICAgIChwcG93ZXJsZXZlbFtpZHgxXSA8PCA4KSB8DQotCQkJCSAgICAocHBvd2VybGV2 ZWxbaWR4MV0gPDwgMTYpIHwNCi0JCQkJICAgIChwcG93ZXJsZXZlbFtpZHgxXSA8PCAyNCk7DQot CQkJCWlmIChydGxoYWwtPmludGVyZmFjZSA9PSBJTlRGX1VTQikgew0KLQkJCQkJaWYgKHR4X2Fn Y1tpZHgxXSA+IDB4MjAgJiYNCi0JCQkJCSAgICBydGxlZnVzZS0+ZXh0ZXJuYWxfcGEpDQotCQkJ CQkJdHhfYWdjW2lkeDFdID0gMHgyMDsNCi0JCQkJfQ0KKwkJZm9yIChpZHgxID0gUkY5MF9QQVRI X0E7IGlkeDEgPD0gUkY5MF9QQVRIX0I7IGlkeDErKykgew0KKwkJCXR4X2FnY1tpZHgxXSA9IHBw b3dlcmxldmVsW2lkeDFdIHwNCisJCQkgICAgKHBwb3dlcmxldmVsW2lkeDFdIDw8IDgpIHwNCisJ CQkgICAgKHBwb3dlcmxldmVsW2lkeDFdIDw8IDE2KSB8DQorCQkJICAgIChwcG93ZXJsZXZlbFtp ZHgxXSA8PCAyNCk7DQorCQkJaWYgKHJ0bGhhbC0+aW50ZXJmYWNlID09IElOVEZfVVNCKSB7DQor CQkJCWlmICh0eF9hZ2NbaWR4MV0gPiAweDIwICYmDQorCQkJCSAgICBydGxlZnVzZS0+ZXh0ZXJu YWxfcGEpDQorCQkJCQl0eF9hZ2NbaWR4MV0gPSAweDIwOw0KIAkJCX0NCiAJCX0NCiAJfSBlbHNl IHsNCkBAIC0xMDcsNyArMTA1LDcgQEAgdm9pZCBydGw5MmN1X3BoeV9yZjYwNTJfc2V0X2Nja190 eHBvd2VyKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LA0KIAkJCSAgIFRYSElHSFBXUkxFVkVMX0xF VkVMMikgew0KIAkJCXR4X2FnY1tSRjkwX1BBVEhfQV0gPSAweDAwMDAwMDAwOw0KIAkJCXR4X2Fn Y1tSRjkwX1BBVEhfQl0gPSAweDAwMDAwMDAwOw0KLQkJfSBlbHNlew0KKwkJfSBlbHNlIHsNCiAJ CQlmb3IgKGlkeDEgPSBSRjkwX1BBVEhfQTsgaWR4MSA8PSBSRjkwX1BBVEhfQjsgaWR4MSsrKSB7 DQogCQkJCXR4X2FnY1tpZHgxXSA9IHBwb3dlcmxldmVsW2lkeDFdIHwNCiAJCQkJICAgIChwcG93 ZXJsZXZlbFtpZHgxXSA8PCA4KSB8DQpAQCAtMzgwLDcgKzM3OCwxMiBAQCBzdGF0aWMgdm9pZCBf cnRsOTJjX3dyaXRlX29mZG1fcG93ZXJfcmVnKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LA0KIAkJ CSAgICByZWdvZmZzZXQgPT0gUlRYQUdDX0JfTUNTMDdfTUNTMDQpDQogCQkJCXJlZ29mZnNldCA9 IDB4Yzk4Ow0KIAkJCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsNCi0JCQkJd3JpdGVWYWwgPSAo d3JpdGVWYWwgPiA2KSA/ICh3cml0ZVZhbCAtIDYpIDogMDsNCisJCQkJaWYgKGkgIT0gMikNCisJ CQkJCXdyaXRlVmFsID0gKHdyaXRlVmFsID4gOCkgPw0KKwkJCQkJCSAgICh3cml0ZVZhbCAtIDgp IDogMDsNCisJCQkJZWxzZQ0KKwkJCQkJd3JpdGVWYWwgPSAod3JpdGVWYWwgPiA2KSA/DQorCQkJ CQkJICAgKHdyaXRlVmFsIC0gNikgOiAwOw0KIAkJCQlydGxfd3JpdGVfYnl0ZShydGxwcml2LCAo dTMyKShyZWdvZmZzZXQgKyBpKSwNCiAJCQkJCSAgICAgICh1OCl3cml0ZVZhbCk7DQogCQkJfQ0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bHdpZmkvcnRsODE5MmN1L3N3LmMg Yi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3J0bDgxOTJjdS9zdy5jDQppbmRleCAwMTZl Zjg2Li5jMTg0MjUzIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9y dGw4MTkyY3Uvc3cuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTky Y3Uvc3cuYw0KQEAgLTMxNiw2ICszMTYsNyBAQCBzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQg cnRsODE5MmNfdXNiX2lkc1tdID0gew0KIAl7UlRMX1VTQl9ERVZJQ0UoMHgwYmRhLCAweDUwODgs IHJ0bDkyY3VfaGFsX2NmZyl9LCAvKlRoaW5rd2FyZS1DQyZDKi8NCiAJe1JUTF9VU0JfREVWSUNF KDB4MGRmNiwgMHgwMDUyLCBydGw5MmN1X2hhbF9jZmcpfSwgLypTaXRlY29tIC0gRWRpbWF4Ki8N CiAJe1JUTF9VU0JfREVWSUNFKDB4MGRmNiwgMHgwMDVjLCBydGw5MmN1X2hhbF9jZmcpfSwgLypT aXRlY29tIC0gRWRpbWF4Ki8NCisJe1JUTF9VU0JfREVWSUNFKDB4MGRmNiwgMHgwMDc3LCBydGw5 MmN1X2hhbF9jZmcpfSwgLypTaXRlY29tLVdMQTIxMDBWMiovDQogCXtSVExfVVNCX0RFVklDRSgw eDBlYjAsIDB4OTA3MSwgcnRsOTJjdV9oYWxfY2ZnKX0sIC8qTk8gQnJhbmQgLSBFdG9wKi8NCiAJ e1JUTF9VU0JfREVWSUNFKDB4NDg1NiwgMHgwMDkxLCBydGw5MmN1X2hhbF9jZmcpfSwgLypOZXR3 ZWVOIC0gRmVpeHVuKi8NCiAJLyogSFAgLSBMaXRlLU9uICw4MTg4Q1VTIFNsaW0gQ29tYm8gKi8N CmRpZmYgLS1naXQgYS9kcml2ZXJzL29mL2FkZHJlc3MuYyBiL2RyaXZlcnMvb2YvYWRkcmVzcy5j DQppbmRleCA3MmMzM2ZiLi40NWMxNzI3IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9vZi9hZGRyZXNz LmMNCisrKyBiL2RyaXZlcnMvb2YvYWRkcmVzcy5jDQpAQCAtOTcsOCArOTcsMTMgQEAgc3RhdGlj IHVuc2lnbmVkIGludCBvZl9idXNfZGVmYXVsdF9nZXRfZmxhZ3MoY29uc3QgX19iZTMyICphZGRy KQ0KIA0KIHN0YXRpYyBpbnQgb2ZfYnVzX3BjaV9tYXRjaChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5w KQ0KIHsNCi0JLyogInZjaSIgaXMgZm9yIHRoZSAvY2hhb3MgYnJpZGdlIG9uIDFzdC1nZW4gUENJ IHBvd2VybWFjcyAqLw0KLQlyZXR1cm4gIXN0cmNtcChucC0+dHlwZSwgInBjaSIpIHx8ICFzdHJj bXAobnAtPnR5cGUsICJ2Y2kiKTsNCisJLyoNCisgCSAqICJwY2lleCIgaXMgUENJIEV4cHJlc3MN CisJICogInZjaSIgaXMgZm9yIHRoZSAvY2hhb3MgYnJpZGdlIG9uIDFzdC1nZW4gUENJIHBvd2Vy bWFjcw0KKwkgKiAiaHQiIGlzIGh5cGVydHJhbnNwb3J0DQorCSAqLw0KKwlyZXR1cm4gIXN0cmNt cChucC0+dHlwZSwgInBjaSIpIHx8ICFzdHJjbXAobnAtPnR5cGUsICJwY2lleCIpIHx8DQorCQkh c3RyY21wKG5wLT50eXBlLCAidmNpIikgfHwgIXN0cmNtcChucC0+dHlwZSwgImh0Iik7DQogfQ0K IA0KIHN0YXRpYyB2b2lkIG9mX2J1c19wY2lfY291bnRfY2VsbHMoc3RydWN0IGRldmljZV9ub2Rl ICpucCwNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BhcnBvcnQvcGFycG9ydF9wYy5jIGIvZHJpdmVy cy9wYXJwb3J0L3BhcnBvcnRfcGMuYw0KaW5kZXggZDBiNTk3Yi4uNWE0NDMyZCAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvcGFycG9ydC9wYXJwb3J0X3BjLmMNCisrKyBiL2RyaXZlcnMvcGFycG9ydC9w YXJwb3J0X3BjLmMNCkBAIC0yODc1LDggKzI4NzUsNiBAQCBlbnVtIHBhcnBvcnRfcGNfcGNpX2Nh cmRzIHsNCiAJc3liYV8ycF9lcHAsDQogCXN5YmFfMXBfZWNwLA0KIAl0aXRhbl8wMTBsLA0KLQl0 aXRhbl8xMjg0cDEsDQotCXRpdGFuXzEyODRwMiwNCiAJYXZsYWJfMXAsDQogCWF2bGFiXzJwLA0K IAlveHNlbWlfOTUyLA0KQEAgLTI5MzUsOCArMjkzMyw2IEBAIHN0YXRpYyBzdHJ1Y3QgcGFycG9y dF9wY19wY2kgew0KIAkvKiBzeWJhXzJwX2VwcCBBUDEzOEIgKi8JeyAyLCB7IHsgMCwgMHgwNzgg fSwgeyAwLCAweDE3OCB9LCB9IH0sDQogCS8qIHN5YmFfMXBfZWNwIFc4Mzc4NyAqLwl7IDEsIHsg eyAwLCAweDA3OCB9LCB9IH0sDQogCS8qIHRpdGFuXzAxMGwgKi8JCXsgMSwgeyB7IDMsIC0xIH0s IH0gfSwNCi0JLyogdGl0YW5fMTI4NHAxICovICAgICAgICAgICAgICB7IDEsIHsgeyAwLCAxIH0s IH0gfSwNCi0JLyogdGl0YW5fMTI4NHAyICovCQl7IDIsIHsgeyAwLCAxIH0sIHsgMiwgMyB9LCB9 IH0sDQogCS8qIGF2bGFiXzFwCQkqLwl7IDEsIHsgeyAwLCAxfSwgfSB9LA0KIAkvKiBhdmxhYl8y cAkJKi8JeyAyLCB7IHsgMCwgMX0sIHsgMiwgMyB9LH0gfSwNCiAJLyogVGhlIE94Zm9yZCBTZW1p IGNhcmRzIGFyZSB1bnVzdWFsOiA5NTQgZG9lc24ndCBzdXBwb3J0IEVDUCwNCkBAIC0yOTUyLDgg KzI5NDgsOCBAQCBzdGF0aWMgc3RydWN0IHBhcnBvcnRfcGNfcGNpIHsNCiAJLyogbmV0bW9zXzk3 MDUgKi8gICAgICAgICAgICAgICB7IDEsIHsgeyAwLCAtMSB9LCB9IH0sDQogCS8qIG5ldG1vc185 NzE1ICovICAgICAgICAgICAgICAgeyAyLCB7IHsgMCwgMSB9LCB7IDIsIDMgfSx9IH0sDQogCS8q IG5ldG1vc185NzU1ICovICAgICAgICAgICAgICAgeyAyLCB7IHsgMCwgMSB9LCB7IDIsIDMgfSx9 IH0sDQotCS8qIG5ldG1vc185ODA1ICovICAgICAgICAgICAgICAgeyAxLCB7IHsgMCwgLTEgfSwg fSB9LA0KLQkvKiBuZXRtb3NfOTgxNSAqLyAgICAgICAgICAgICAgIHsgMiwgeyB7IDAsIC0xIH0s IHsgMiwgLTEgfSwgfSB9LA0KKwkvKiBuZXRtb3NfOTgwNSAqLwkJeyAxLCB7IHsgMCwgMSB9LCB9 IH0sDQorCS8qIG5ldG1vc185ODE1ICovCQl7IDIsIHsgeyAwLCAxIH0sIHsgMiwgMyB9LCB9IH0s DQogCS8qIG5ldG1vc185OTAxICovICAgICAgICAgICAgICAgeyAxLCB7IHsgMCwgLTEgfSwgfSB9 LA0KIAkvKiBuZXRtb3NfOTg2NSAqLyAgICAgICAgICAgICAgIHsgMSwgeyB7IDAsIC0xIH0sIH0g fSwNCiAJLyogcXVhdGVjaF9zcHB4cDEwMCAqLwkJeyAxLCB7IHsgMCwgMSB9LCB9IH0sDQpAQCAt Mjk5Nyw4ICsyOTkzLDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHBhcnBv cnRfcGNfcGNpX3RibFtdID0gew0KIAkgIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIHN5 YmFfMXBfZWNwIH0sDQogCXsgUENJX1ZFTkRPUl9JRF9USVRBTiwgUENJX0RFVklDRV9JRF9USVRB Tl8wMTBMLA0KIAkgIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIHRpdGFuXzAxMGwgfSwN Ci0JeyAweDk3MTAsIDB4OTgwNSwgMHgxMDAwLCAweDAwMTAsIDAsIDAsIHRpdGFuXzEyODRwMSB9 LA0KLQl7IDB4OTcxMCwgMHg5ODE1LCAweDEwMDAsIDB4MDAyMCwgMCwgMCwgdGl0YW5fMTI4NHAy IH0sDQogCS8qIFBDSV9WRU5ET1JfSURfQVZMQUIvSW50ZWsyMSBoYXMgYW5vdGhlciBidW5jaCBv ZiBjYXJkcyAuLi4qLw0KIAkvKiBBRkFWTEFCX1RLOTkwMiAqLw0KIAl7IDB4MTRkYiwgMHgyMTIw LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBhdmxhYl8xcH0sDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9wY2kvcGNpLmMgYi9kcml2ZXJzL3BjaS9wY2kuYw0KaW5kZXggOWYxZmVjMS4uZmQ0 YjgyNSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvcGNpL3BjaS5jDQorKysgYi9kcml2ZXJzL3BjaS9w Y2kuYw0KQEAgLTEwNzgsNiArMTA3OCw4IEBAIEVYUE9SVF9TWU1CT0xfR1BMKHBjaV9sb2FkX2Fu ZF9mcmVlX3NhdmVkX3N0YXRlKTsNCiBzdGF0aWMgaW50IGRvX3BjaV9lbmFibGVfZGV2aWNlKHN0 cnVjdCBwY2lfZGV2ICpkZXYsIGludCBiYXJzKQ0KIHsNCiAJaW50IGVycjsNCisJdTE2IGNtZDsN CisJdTggcGluOw0KIA0KIAllcnIgPSBwY2lfc2V0X3Bvd2VyX3N0YXRlKGRldiwgUENJX0QwKTsN CiAJaWYgKGVyciA8IDAgJiYgZXJyICE9IC1FSU8pDQpAQCAtMTA4Nyw2ICsxMDg5LDE0IEBAIHN0 YXRpYyBpbnQgZG9fcGNpX2VuYWJsZV9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IGJh cnMpDQogCQlyZXR1cm4gZXJyOw0KIAlwY2lfZml4dXBfZGV2aWNlKHBjaV9maXh1cF9lbmFibGUs IGRldik7DQogDQorCXBjaV9yZWFkX2NvbmZpZ19ieXRlKGRldiwgUENJX0lOVEVSUlVQVF9QSU4s ICZwaW4pOw0KKwlpZiAocGluKSB7DQorCQlwY2lfcmVhZF9jb25maWdfd29yZChkZXYsIFBDSV9D T01NQU5ELCAmY21kKTsNCisJCWlmIChjbWQgJiBQQ0lfQ09NTUFORF9JTlRYX0RJU0FCTEUpDQor CQkJcGNpX3dyaXRlX2NvbmZpZ193b3JkKGRldiwgUENJX0NPTU1BTkQsDQorCQkJCQkgICAgICBj bWQgJiB+UENJX0NPTU1BTkRfSU5UWF9ESVNBQkxFKTsNCisJfQ0KKw0KIAlyZXR1cm4gMDsNCiB9 DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wbGF0Zm9ybS94ODYvaHBfYWNjZWwuYyBiL2RyaXZl cnMvcGxhdGZvcm0veDg2L2hwX2FjY2VsLmMNCmluZGV4IGZkYWNmY2UuLjAwNzZmZWEgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL3BsYXRmb3JtL3g4Ni9ocF9hY2NlbC5jDQorKysgYi9kcml2ZXJzL3Bs YXRmb3JtL3g4Ni9ocF9hY2NlbC5jDQpAQCAtNzcsNiArNzcsNyBAQCBzdGF0aWMgaW5saW5lIHZv aWQgZGVsYXllZF9zeXNmc19zZXQoc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYsDQogc3Rh dGljIHN0cnVjdCBhY3BpX2RldmljZV9pZCBsaXMzbHYwMmRfZGV2aWNlX2lkc1tdID0gew0KIAl7 IkhQUTAwMDQiLCAwfSwgLyogSFAgTW9iaWxlIERhdGEgUHJvdGVjdGlvbiBTeXN0ZW0gUE5QICov DQogCXsiSFBRNjAwMCIsIDB9LCAvKiBIUCBNb2JpbGUgRGF0YSBQcm90ZWN0aW9uIFN5c3RlbSBQ TlAgKi8NCisJeyJIUFE2MDA3IiwgMH0sIC8qIEhQIE1vYmlsZSBEYXRhIFByb3RlY3Rpb24gU3lz dGVtIFBOUCAqLw0KIAl7IiIsIDB9LA0KIH07DQogTU9EVUxFX0RFVklDRV9UQUJMRShhY3BpLCBs aXMzbHYwMmRfZGV2aWNlX2lkcyk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wb3dlci9tYXgxNzA0 MF9iYXR0ZXJ5LmMgYi9kcml2ZXJzL3Bvd2VyL21heDE3MDQwX2JhdHRlcnkuYw0KaW5kZXggMmYy ZjlhNi4uMzlkMzY5NyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvcG93ZXIvbWF4MTcwNDBfYmF0dGVy eS5jDQorKysgYi9kcml2ZXJzL3Bvd2VyL21heDE3MDQwX2JhdHRlcnkuYw0KQEAgLTE0OCw3ICsx NDgsNyBAQCBzdGF0aWMgdm9pZCBtYXgxNzA0MF9nZXRfb25saW5lKHN0cnVjdCBpMmNfY2xpZW50 ICpjbGllbnQpDQogew0KIAlzdHJ1Y3QgbWF4MTcwNDBfY2hpcCAqY2hpcCA9IGkyY19nZXRfY2xp ZW50ZGF0YShjbGllbnQpOw0KIA0KLQlpZiAoY2hpcC0+cGRhdGEtPmJhdHRlcnlfb25saW5lKQ0K KwlpZiAoY2hpcC0+cGRhdGEgJiYgY2hpcC0+cGRhdGEtPmJhdHRlcnlfb25saW5lKQ0KIAkJY2hp cC0+b25saW5lID0gY2hpcC0+cGRhdGEtPmJhdHRlcnlfb25saW5lKCk7DQogCWVsc2UNCiAJCWNo aXAtPm9ubGluZSA9IDE7DQpAQCAtMTU4LDcgKzE1OCw4IEBAIHN0YXRpYyB2b2lkIG1heDE3MDQw X2dldF9zdGF0dXMoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkNCiB7DQogCXN0cnVjdCBtYXgx NzA0MF9jaGlwICpjaGlwID0gaTJjX2dldF9jbGllbnRkYXRhKGNsaWVudCk7DQogDQotCWlmICgh Y2hpcC0+cGRhdGEtPmNoYXJnZXJfb25saW5lIHx8ICFjaGlwLT5wZGF0YS0+Y2hhcmdlcl9lbmFi bGUpIHsNCisJaWYgKCFjaGlwLT5wZGF0YSB8fCAhY2hpcC0+cGRhdGEtPmNoYXJnZXJfb25saW5l DQorCQkJfHwgIWNoaXAtPnBkYXRhLT5jaGFyZ2VyX2VuYWJsZSkgew0KIAkJY2hpcC0+c3RhdHVz ID0gUE9XRVJfU1VQUExZX1NUQVRVU19VTktOT1dOOw0KIAkJcmV0dXJuOw0KIAl9DQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ydGMvcnRjLWNtb3MuYyBiL2RyaXZlcnMvcnRjL3J0Yy1jbW9zLmMNCmlu ZGV4IGUzZWVkMTguLmNhZTg5ODUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtY21vcy5j DQorKysgYi9kcml2ZXJzL3J0Yy9ydGMtY21vcy5jDQpAQCAtMzQsMTEgKzM0LDExIEBADQogI2lu Y2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPg0KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPg0K ICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCi0jaW5jbHVkZSA8bGludXgvbW9k X2RldmljZXRhYmxlLmg+DQogI2luY2x1ZGUgPGxpbnV4L2xvZzIuaD4NCiAjaW5jbHVkZSA8bGlu dXgvcG0uaD4NCiAjaW5jbHVkZSA8bGludXgvb2YuaD4NCiAjaW5jbHVkZSA8bGludXgvb2ZfcGxh dGZvcm0uaD4NCisjaW5jbHVkZSA8bGludXgvZG1pLmg+DQogDQogLyogdGhpcyBpcyBmb3IgImdl bmVyaWMgYWNjZXNzIHRvIFBDLXN0eWxlIFJUQyIgdXNpbmcgQ01PU19SRUFEL0NNT1NfV1JJVEUg Ki8NCiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvcnRjLmg+DQpAQCAtMzc3LDYgKzM3Nyw1MSBAQCBz dGF0aWMgaW50IGNtb3Nfc2V0X2FsYXJtKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y193 a2Fscm0gKnQpDQogCXJldHVybiAwOw0KIH0NCiANCisvKg0KKyAqIERvIG5vdCBkaXNhYmxlIFJU QyBhbGFybSBvbiBzaHV0ZG93biAtIHdvcmthcm91bmQgZm9yIGIwcmtlZCBCSU9TZXMuDQorICov DQorc3RhdGljIGJvb2wgYWxhcm1fZGlzYWJsZV9xdWlyazsNCisNCitzdGF0aWMgaW50IF9faW5p dCBzZXRfYWxhcm1fZGlzYWJsZV9xdWlyayhjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqaWQp DQorew0KKwlhbGFybV9kaXNhYmxlX3F1aXJrID0gdHJ1ZTsNCisJcHJfaW5mbygicnRjLWNtb3M6 IEJJT1MgaGFzIGFsYXJtLWRpc2FibGUgcXVpcmsuICIpOw0KKwlwcl9pbmZvKCJSVEMgYWxhcm1z IGRpc2FibGVkXG4iKTsNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg ZG1pX3N5c3RlbV9pZCBydGNfcXVpcmtzW10gX19pbml0Y29uc3QgPSB7DQorCS8qIGh0dHBzOi8v YnVnemlsbGEubm92ZWxsLmNvbS9zaG93X2J1Zy5jZ2k/aWQ9ODA1NzQwICovDQorCXsNCisJCS5j YWxsYmFjayA9IHNldF9hbGFybV9kaXNhYmxlX3F1aXJrLA0KKwkJLmlkZW50ICAgID0gIklCTSBU cnVtYW4iLA0KKwkJLm1hdGNoZXMgID0gew0KKwkJCURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwg IlRPU0hJQkEiKSwNCisJCQlETUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIjQ4NTI1NzAiKSwN CisJCX0sDQorCX0sDQorCS8qIGh0dHBzOi8vYnVnemlsbGEubm92ZWxsLmNvbS9zaG93X2J1Zy5j Z2k/aWQ9ODEyNTkyICovDQorCXsNCisJCS5jYWxsYmFjayA9IHNldF9hbGFybV9kaXNhYmxlX3F1 aXJrLA0KKwkJLmlkZW50ICAgID0gIkdpZ2FieXRlIEdBLTk5MFhBLVVEMyIsDQorCQkubWF0Y2hl cyAgPSB7DQorCQkJRE1JX01BVENIKERNSV9TWVNfVkVORE9SLA0KKwkJCQkJIkdpZ2FieXRlIFRl Y2hub2xvZ3kgQ28uLCBMdGQuIiksDQorCQkJRE1JX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJH QS05OTBYQS1VRDMiKSwNCisJCX0sDQorCX0sDQorCS8qIGh0dHA6Ly9wZXJtYWxpbmsuZ21hbmUu b3JnL2dtYW5lLmxpbnV4Lmtlcm5lbC8xNjA0NDc0ICovDQorCXsNCisJCS5jYWxsYmFjayA9IHNl dF9hbGFybV9kaXNhYmxlX3F1aXJrLA0KKwkJLmlkZW50ICAgID0gIlRvc2hpYmEgU2F0ZWxsaXRl IEwzMDAiLA0KKwkJLm1hdGNoZXMgID0gew0KKwkJCURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwg IlRPU0hJQkEiKSwNCisJCQlETUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIlNhdGVsbGl0ZSBM MzAwIiksDQorCQl9LA0KKwl9LA0KKwl7fQ0KK307DQorDQogc3RhdGljIGludCBjbW9zX2FsYXJt X2lycV9lbmFibGUoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgZW5hYmxlZCkNCiB7 DQogCXN0cnVjdCBjbW9zX3J0YwkqY21vcyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KQEAgLTM4 NSw2ICs0MzAsOSBAQCBzdGF0aWMgaW50IGNtb3NfYWxhcm1faXJxX2VuYWJsZShzdHJ1Y3QgZGV2 aWNlICpkZXYsIHVuc2lnbmVkIGludCBlbmFibGVkKQ0KIAlpZiAoIWlzX3ZhbGlkX2lycShjbW9z LT5pcnEpKQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQogDQorCWlmIChhbGFybV9kaXNhYmxlX3F1aXJr KQ0KKwkJcmV0dXJuIDA7DQorDQogCXNwaW5fbG9ja19pcnFzYXZlKCZydGNfbG9jaywgZmxhZ3Mp Ow0KIA0KIAlpZiAoZW5hYmxlZCkNCkBAIC0xMTY2LDYgKzEyMTQsOCBAQCBzdGF0aWMgaW50IF9f aW5pdCBjbW9zX2luaXQodm9pZCkNCiAJCQlwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXJlZCA9IHRy dWU7DQogCX0NCiANCisJZG1pX2NoZWNrX3N5c3RlbShydGNfcXVpcmtzKTsNCisNCiAJaWYgKHJl dHZhbCA9PSAwKQ0KIAkJcmV0dXJuIDA7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2Jm YS9iZmFkLmMgYi9kcml2ZXJzL3Njc2kvYmZhL2JmYWQuYw0KaW5kZXggNjZmYjcyNS4uNjMzMDQ4 YiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc2NzaS9iZmEvYmZhZC5jDQorKysgYi9kcml2ZXJzL3Nj c2kvYmZhL2JmYWQuYw0KQEAgLTE2MTMsNyArMTYxMyw3IEBAIG91dDoNCiBzdGF0aWMgdTMyICoN CiBiZmFkX2xvYWRfZndpbWcoc3RydWN0IHBjaV9kZXYgKnBkZXYpDQogew0KLQlpZiAocGRldi0+ ZGV2aWNlID09IEJGQV9QQ0lfREVWSUNFX0lEX0NUMikgew0KKwlpZiAoYmZhX2FzaWNfaWRfY3Qy KHBkZXYtPmRldmljZSkpIHsNCiAJCWlmIChiZmlfaW1hZ2VfY3QyX3NpemUgPT0gMCkNCiAJCQli ZmFkX3JlYWRfZmlybXdhcmUocGRldiwgJmJmaV9pbWFnZV9jdDIsDQogCQkJCSZiZmlfaW1hZ2Vf Y3QyX3NpemUsIEJGQURfRldfRklMRV9DVDIpOw0KQEAgLTE2MjMsMTIgKzE2MjMsMTQgQEAgYmZh ZF9sb2FkX2Z3aW1nKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KIAkJCWJmYWRfcmVhZF9maXJtd2Fy ZShwZGV2LCAmYmZpX2ltYWdlX2N0LA0KIAkJCQkmYmZpX2ltYWdlX2N0X3NpemUsIEJGQURfRldf RklMRV9DVCk7DQogCQlyZXR1cm4gYmZpX2ltYWdlX2N0Ow0KLQl9IGVsc2Ugew0KKwl9IGVsc2Ug aWYgKGJmYV9hc2ljX2lkX2NiKHBkZXYtPmRldmljZSkpIHsNCiAJCWlmIChiZmlfaW1hZ2VfY2Jf c2l6ZSA9PSAwKQ0KIAkJCWJmYWRfcmVhZF9maXJtd2FyZShwZGV2LCAmYmZpX2ltYWdlX2NiLA0K IAkJCQkmYmZpX2ltYWdlX2NiX3NpemUsIEJGQURfRldfRklMRV9DQik7DQogCQlyZXR1cm4gYmZp X2ltYWdlX2NiOw0KIAl9DQorDQorCXJldHVybiBOVUxMOw0KIH0NCiANCiBzdGF0aWMgdm9pZA0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9pc2NpL2hvc3QuaCBiL2RyaXZlcnMvc2NzaS9pc2Np L2hvc3QuaA0KaW5kZXggNjQ2MDUxYS4uZWY4NDc3OCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc2Nz aS9pc2NpL2hvc3QuaA0KKysrIGIvZHJpdmVycy9zY3NpL2lzY2kvaG9zdC5oDQpAQCAtMzA5LDkg KzMwOSw4IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGlzY2lfcGNpX2luZm8gKnRvX3BjaV9pbmZv KHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KIH0NCiANCiAjZGVmaW5lIGZvcl9lYWNoX2lzY2lfaG9z dChpZCwgaWhvc3QsIHBkZXYpIFwNCi0JZm9yIChpZCA9IDAsIGlob3N0ID0gdG9fcGNpX2luZm8o cGRldiktPmhvc3RzW2lkXTsgXA0KLQkgICAgIGlkIDwgQVJSQVlfU0laRSh0b19wY2lfaW5mbyhw ZGV2KS0+aG9zdHMpICYmIGlob3N0OyBcDQotCSAgICAgaWhvc3QgPSB0b19wY2lfaW5mbyhwZGV2 KS0+aG9zdHNbKytpZF0pDQorCWZvciAoaWQgPSAwOyBpZCA8IFNDSV9NQVhfQ09OVFJPTExFUlMg JiYgXA0KKwkgICAgIChpaG9zdCA9IHRvX3BjaV9pbmZvKHBkZXYpLT5ob3N0c1tpZF0pOyBpZCsr KQ0KIA0KIHN0YXRpYyBpbmxpbmUgZW51bSBpc2NpX3N0YXR1cyBpc2NpX2hvc3RfZ2V0X3N0YXRl KHN0cnVjdCBpc2NpX2hvc3QgKmlzY2lfaG9zdCkNCiB7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9z Y3NpL2lzY2kvcG9ydF9jb25maWcuYyBiL2RyaXZlcnMvc2NzaS9pc2NpL3BvcnRfY29uZmlnLmMN CmluZGV4IDM4YTk5ZDIuLjIxYTY3NjkgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3Njc2kvaXNjaS9w b3J0X2NvbmZpZy5jDQorKysgYi9kcml2ZXJzL3Njc2kvaXNjaS9wb3J0X2NvbmZpZy5jDQpAQCAt NjEwLDEzICs2MTAsNiBAQCBzdGF0aWMgdm9pZCBzY2lfYXBjX2FnZW50X2xpbmtfdXAoc3RydWN0 IGlzY2lfaG9zdCAqaWhvc3QsDQogCQlzY2lfYXBjX2FnZW50X2NvbmZpZ3VyZV9wb3J0cyhpaG9z dCwgcG9ydF9hZ2VudCwgaXBoeSwgdHJ1ZSk7DQogCX0gZWxzZSB7DQogCQkvKiB0aGUgcGh5IGlz IGFscmVhZHkgdGhlIHBhcnQgb2YgdGhlIHBvcnQgKi8NCi0JCXUzMiBwb3J0X3N0YXRlID0gaXBv cnQtPnNtLmN1cnJlbnRfc3RhdGVfaWQ7DQotDQotCQkvKiBpZiB0aGUgUE9SVCdTIHN0YXRlIGlz IHJlc2V0dGluZyB0aGVuIHRoZSBsaW5rIHVwIGlzIGZyb20NCi0JCSAqIHBvcnQgaGFyZCByZXNl dCBpbiB0aGlzIGNhc2UsIHdlIG5lZWQgdG8gdGVsbCB0aGUgcG9ydA0KLQkJICogdGhhdCBsaW5r IHVwIGlzIHJlY2lldmVkDQotCQkgKi8NCi0JCUJVR19PTihwb3J0X3N0YXRlICE9IFNDSV9QT1JU X1JFU0VUVElORyk7DQogCQlwb3J0X2FnZW50LT5waHlfcmVhZHlfbWFzayB8PSAxIDw8IHBoeV9p bmRleDsNCiAJCXNjaV9wb3J0X2xpbmtfdXAoaXBvcnQsIGlwaHkpOw0KIAl9DQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9zY3NpL2lzY2kvdGFzay5jIGIvZHJpdmVycy9zY3NpL2lzY2kvdGFzay5jDQpp bmRleCBlMjk0ZDExLi42MGE1MzBmIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zY3NpL2lzY2kvdGFz ay5jDQorKysgYi9kcml2ZXJzL3Njc2kvaXNjaS90YXNrLmMNCkBAIC0xMzkwLDcgKzEzOTAsNyBA QCBpbnQgaXNjaV90YXNrX0lfVF9uZXh1c19yZXNldChzdHJ1Y3QgZG9tYWluX2RldmljZSAqZGV2 KQ0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpaG9zdC0+c2NpY19sb2NrLCBmbGFncyk7DQog DQogCWlmICghaWRldiB8fCAhdGVzdF9iaXQoSURFVl9FSCwgJmlkZXYtPmZsYWdzKSkgew0KLQkJ cmV0ID0gVE1GX1JFU1BfRlVOQ19DT01QTEVURTsNCisJCXJldCA9IC1FTk9ERVY7DQogCQlnb3Rv IG91dDsNCiAJfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9kZWYu aCBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9kZWYuaA0KaW5kZXggZmNmMDUyYy4uYzQ5MWE5 NCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9kZWYuaA0KKysrIGIvZHJp dmVycy9zY3NpL3FsYTJ4eHgvcWxhX2RlZi5oDQpAQCAtMjU2OCw4ICsyNTY4LDcgQEAgc3RydWN0 IHFsYV9od19kYXRhIHsNCiAJCQkJSVNfUUxBMjVYWChoYSkgfHwgSVNfUUxBODFYWChoYSkgfHwg XA0KIAkJCQlJU19RTEE4MlhYKGhhKSkNCiAjZGVmaW5lIElTX01TSVhfTkFDS19DQVBBQkxFKGhh KSAoSVNfUUxBODFYWChoYSkpDQotI2RlZmluZSBJU19OT1BPTExJTkdfVFlQRShoYSkJKChJU19R TEEyNVhYKGhhKSB8fCBJU19RTEE4MVhYKGhhKSkgJiYgXA0KLQkJCQkoaGEpLT5mbGFncy5tc2l4 X2VuYWJsZWQpDQorI2RlZmluZSBJU19OT1BPTExJTkdfVFlQRShoYSkJKElTX1FMQTgxWFgoaGEp ICYmIChoYSktPmZsYWdzLm1zaXhfZW5hYmxlZCkNCiAjZGVmaW5lIElTX0ZBQ19SRVFVSVJFRCho YSkJKElTX1FMQTgxWFgoaGEpKQ0KICNkZWZpbmUgSVNfTk9DQUNIRV9WUERfVFlQRShoYSkJKElT X1FMQTgxWFgoaGEpKQ0KICNkZWZpbmUgSVNfQUxPR0lPX0NBUEFCTEUoaGEpCShJU19RTEEyM1hY KGhhKSB8fCBJU19GV0kyX0NBUEFCTEUoaGEpKQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2lu Zy9jb21lZGkvZHJpdmVycy9hZHZfcGNpMTcxMC5jIGIvZHJpdmVycy9zdGFnaW5nL2NvbWVkaS9k cml2ZXJzL2Fkdl9wY2kxNzEwLmMNCmluZGV4IGRhMmI3NWIuLjY3MjUzOGUgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL3N0YWdpbmcvY29tZWRpL2RyaXZlcnMvYWR2X3BjaTE3MTAuYw0KKysrIGIvZHJp dmVycy9zdGFnaW5nL2NvbWVkaS9kcml2ZXJzL2Fkdl9wY2kxNzEwLmMNCkBAIC00MTQsNiArNDE0 LDcgQEAgc3RhdGljIGludCBwY2kxNzF4X2luc25fd3JpdGVfYW8oc3RydWN0IGNvbWVkaV9kZXZp Y2UgKmRldiwNCiAJCQkJIHN0cnVjdCBjb21lZGlfc3ViZGV2aWNlICpzLA0KIAkJCQkgc3RydWN0 IGNvbWVkaV9pbnNuICppbnNuLCB1bnNpZ25lZCBpbnQgKmRhdGEpDQogew0KKwl1bnNpZ25lZCBp bnQgdmFsOw0KIAlpbnQgbiwgY2hhbiwgcmFuZ2UsIG9mczsNCiANCiAJY2hhbiA9IENSX0NIQU4o aW5zbi0+Y2hhbnNwZWMpOw0KQEAgLTQyOSwxMSArNDMwLDE0IEBAIHN0YXRpYyBpbnQgcGNpMTcx eF9pbnNuX3dyaXRlX2FvKHN0cnVjdCBjb21lZGlfZGV2aWNlICpkZXYsDQogCQlvdXR3KGRldnBy aXYtPmRhX3JhbmdlcywgZGV2LT5pb2Jhc2UgKyBQQ0kxNzF4X0RBUkVGKTsNCiAJCW9mcyA9IFBD STE3MXhfREExOw0KIAl9DQorCXZhbCA9IGRldnByaXYtPmFvX2RhdGFbY2hhbl07DQogDQotCWZv ciAobiA9IDA7IG4gPCBpbnNuLT5uOyBuKyspDQotCQlvdXR3KGRhdGFbbl0sIGRldi0+aW9iYXNl ICsgb2ZzKTsNCisJZm9yIChuID0gMDsgbiA8IGluc24tPm47IG4rKykgew0KKwkJdmFsID0gZGF0 YVtuXTsNCisJCW91dHcodmFsLCBkZXYtPmlvYmFzZSArIG9mcyk7DQorCX0NCiANCi0JZGV2cHJp di0+YW9fZGF0YVtjaGFuXSA9IGRhdGFbbl07DQorCWRldnByaXYtPmFvX2RhdGFbY2hhbl0gPSB2 YWw7DQogDQogCXJldHVybiBuOw0KIA0KQEAgLTU4Miw2ICs1ODYsNyBAQCBzdGF0aWMgaW50IHBj aTE3MjBfaW5zbl93cml0ZV9hbyhzdHJ1Y3QgY29tZWRpX2RldmljZSAqZGV2LA0KIAkJCQkgc3Ry dWN0IGNvbWVkaV9zdWJkZXZpY2UgKnMsDQogCQkJCSBzdHJ1Y3QgY29tZWRpX2luc24gKmluc24s IHVuc2lnbmVkIGludCAqZGF0YSkNCiB7DQorCXVuc2lnbmVkIGludCB2YWw7DQogCWludCBuLCBy YW5nZXJlZywgY2hhbjsNCiANCiAJY2hhbiA9IENSX0NIQU4oaW5zbi0+Y2hhbnNwZWMpOw0KQEAg LTU5MSwxMyArNTk2LDE1IEBAIHN0YXRpYyBpbnQgcGNpMTcyMF9pbnNuX3dyaXRlX2FvKHN0cnVj dCBjb21lZGlfZGV2aWNlICpkZXYsDQogCQlvdXRiKHJhbmdlcmVnLCBkZXYtPmlvYmFzZSArIFBD STE3MjBfUkFOR0UpOw0KIAkJZGV2cHJpdi0+ZGFfcmFuZ2VzID0gcmFuZ2VyZWc7DQogCX0NCisJ dmFsID0gZGV2cHJpdi0+YW9fZGF0YVtjaGFuXTsNCiANCiAJZm9yIChuID0gMDsgbiA8IGluc24t Pm47IG4rKykgew0KLQkJb3V0dyhkYXRhW25dLCBkZXYtPmlvYmFzZSArIFBDSTE3MjBfREEwICsg KGNoYW4gPDwgMSkpOw0KKwkJdmFsID0gZGF0YVtuXTsNCisJCW91dHcodmFsLCBkZXYtPmlvYmFz ZSArIFBDSTE3MjBfREEwICsgKGNoYW4gPDwgMSkpOw0KIAkJb3V0YigwLCBkZXYtPmlvYmFzZSAr IFBDSTE3MjBfU1lOQ09VVCk7CS8qICB1cGRhdGUgb3V0cHV0cyAqLw0KIAl9DQogDQotCWRldnBy aXYtPmFvX2RhdGFbY2hhbl0gPSBkYXRhW25dOw0KKwlkZXZwcml2LT5hb19kYXRhW2NoYW5dID0g dmFsOw0KIA0KIAlyZXR1cm4gbjsNCiB9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL2Nv bWVkaS9kcml2ZXJzL3BjbXVpby5jIGIvZHJpdmVycy9zdGFnaW5nL2NvbWVkaS9kcml2ZXJzL3Bj bXVpby5jDQppbmRleCBiMmMyYzg5Li42YzI1YmQzIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zdGFn aW5nL2NvbWVkaS9kcml2ZXJzL3BjbXVpby5jDQorKysgYi9kcml2ZXJzL3N0YWdpbmcvY29tZWRp L2RyaXZlcnMvcGNtdWlvLmMNCkBAIC00NjQsMTMgKzQ2NCwxMyBAQCBzdGF0aWMgaW50IHBjbXVp b19kZXRhY2goc3RydWN0IGNvbWVkaV9kZXZpY2UgKmRldikNCiAJaWYgKGRldi0+aW9iYXNlKQ0K IAkJcmVsZWFzZV9yZWdpb24oZGV2LT5pb2Jhc2UsIEFTSUNfSU9TSVpFICogdGhpc2JvYXJkLT5u dW1fYXNpY3MpOw0KIA0KLQlmb3IgKGkgPSAwOyBpIDwgTUFYX0FTSUNTOyArK2kpIHsNCi0JCWlm IChkZXZwcml2LT5hc2ljc1tpXS5pcnEpDQotCQkJZnJlZV9pcnEoZGV2cHJpdi0+YXNpY3NbaV0u aXJxLCBkZXYpOw0KLQl9DQotDQotCWlmIChkZXZwcml2ICYmIGRldnByaXYtPnNwcml2cykNCisJ aWYgKGRldnByaXYpIHsNCisJCWZvciAoaSA9IDA7IGkgPCBNQVhfQVNJQ1M7ICsraSkgew0KKwkJ CWlmIChkZXZwcml2LT5hc2ljc1tpXS5pcnEpDQorCQkJCWZyZWVfaXJxKGRldnByaXYtPmFzaWNz W2ldLmlycSwgZGV2KTsNCisJCX0NCiAJCWtmcmVlKGRldnByaXYtPnNwcml2cyk7DQorCX0NCiAN CiAJcmV0dXJuIDA7DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9jb21lZGkvZHJp dmVycy9zc3ZfZG5wLmMgYi9kcml2ZXJzL3N0YWdpbmcvY29tZWRpL2RyaXZlcnMvc3N2X2RucC5j DQppbmRleCA1MjZkZTJlLi4wMzE2NzgwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zdGFnaW5nL2Nv bWVkaS9kcml2ZXJzL3Nzdl9kbnAuYw0KKysrIGIvZHJpdmVycy9zdGFnaW5nL2NvbWVkaS9kcml2 ZXJzL3Nzdl9kbnAuYw0KQEAgLTI1MSwxMSArMjUxLDExIEBAIHN0YXRpYyBpbnQgZG5wX2Rpb19p bnNuX2JpdHMoc3RydWN0IGNvbWVkaV9kZXZpY2UgKmRldiwNCiANCiAJLyogb24gcmV0dXJuLCBk YXRhWzFdIGNvbnRhaW5zIHRoZSB2YWx1ZSBvZiB0aGUgZGlnaXRhbCBpbnB1dCBsaW5lcy4gKi8N CiAJb3V0YihQQURSLCBDU0NJUik7DQotCWRhdGFbMF0gPSBpbmIoQ1NDRFIpOw0KKwlkYXRhWzFd ID0gaW5iKENTQ0RSKTsNCiAJb3V0YihQQkRSLCBDU0NJUik7DQotCWRhdGFbMF0gKz0gaW5iKENT Q0RSKSA8PCA4Ow0KKwlkYXRhWzFdICs9IGluYihDU0NEUikgPDwgODsNCiAJb3V0YihQQ0RSLCBD U0NJUik7DQotCWRhdGFbMF0gKz0gKChpbmIoQ1NDRFIpICYgMHhGMCkgPDwgMTIpOw0KKwlkYXRh WzFdICs9ICgoaW5iKENTQ0RSKSAmIDB4RjApIDw8IDEyKTsNCiANCiAJcmV0dXJuIDI7DQogDQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL2lpby9hZGMvYWQ3OTl4X2NvcmUuYyBiL2RyaXZl cnMvc3RhZ2luZy9paW8vYWRjL2FkNzk5eF9jb3JlLmMNCmluZGV4IGVlNmNkNzkuLmY3OWQwY2Ig MTAwNjQ0DQotLS0gYS9kcml2ZXJzL3N0YWdpbmcvaWlvL2FkYy9hZDc5OXhfY29yZS5jDQorKysg Yi9kcml2ZXJzL3N0YWdpbmcvaWlvL2FkYy9hZDc5OXhfY29yZS5jDQpAQCAtODczLDcgKzg3Myw4 IEBAIHN0YXRpYyBpbnQgX19kZXZpbml0IGFkNzk5eF9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAq Y2xpZW50LA0KIAlyZXR1cm4gMDsNCiANCiBlcnJvcl9mcmVlX2lycToNCi0JZnJlZV9pcnEoY2xp ZW50LT5pcnEsIGluZGlvX2Rldik7DQorCWlmIChjbGllbnQtPmlycSA+IDApDQorCQlmcmVlX2ly cShjbGllbnQtPmlycSwgaW5kaW9fZGV2KTsNCiBlcnJvcl9jbGVhbnVwX3Jpbmc6DQogCWFkNzk5 eF9yaW5nX2NsZWFudXAoaW5kaW9fZGV2KTsNCiBlcnJvcl9kaXNhYmxlX3JlZzoNCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3N0YWdpbmcvcnRsODcxMi91c2JfaW50Zi5jIGIvZHJpdmVycy9zdGFnaW5n L3J0bDg3MTIvdXNiX2ludGYuYw0KaW5kZXggODhkMWQzNS4uYTc0ZTgzZCAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvc3RhZ2luZy9ydGw4NzEyL3VzYl9pbnRmLmMNCisrKyBiL2RyaXZlcnMvc3RhZ2lu Zy9ydGw4NzEyL3VzYl9pbnRmLmMNCkBAIC0zNjMsNiArMzYzLDEwIEBAIHN0YXRpYyB1OCBrZXlf MmNoYXIybnVtKHU4IGhjaCwgdTggbGNoKQ0KIAlyZXR1cm4gKGhleF90b19iaW4oaGNoKSA8PCA0 KSB8IGhleF90b19iaW4obGNoKTsNCiB9DQogDQorc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZpY2Vf dHlwZSB3bGFuX3R5cGUgPSB7DQorCS5uYW1lID0gIndsYW4iLA0KK307DQorDQogLyoNCiAgKiBk cnZfaW5pdCgpIC0gYSBkZXZpY2UgcG90ZW50aWFsbHkgZm9yIHVzDQogICoNCkBAIC0zOTgsNiAr NDAyLDcgQEAgc3RhdGljIGludCByODcxeHVfZHJ2X2luaXQoc3RydWN0IHVzYl9pbnRlcmZhY2Ug KnB1c2JfaW50ZiwNCiAJcGFkYXB0ZXItPnB1c2JfaW50ZiA9IHB1c2JfaW50ZjsNCiAJdXNiX3Nl dF9pbnRmZGF0YShwdXNiX2ludGYsIHBuZXRkZXYpOw0KIAlTRVRfTkVUREVWX0RFVihwbmV0ZGV2 LCAmcHVzYl9pbnRmLT5kZXYpOw0KKwlwbmV0ZGV2LT5kZXYudHlwZSA9ICZ3bGFuX3R5cGU7DQog CS8qIHN0ZXAgMi4gKi8NCiAJcGFkYXB0ZXItPmR2b2JqX2luaXQgPSAmcjg3MTJfdXNiX2R2b2Jq X2luaXQ7DQogCXBhZGFwdGVyLT5kdm9ial9kZWluaXQgPSAmcjg3MTJfdXNiX2R2b2JqX2RlaW5p dDsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvdnQ2NjU2L2Jhc2ViYW5kLmMgYi9kcml2 ZXJzL3N0YWdpbmcvdnQ2NjU2L2Jhc2ViYW5kLmMNCmluZGV4IDBkMTExNDcuLjU5Y2Y2NzQgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL3N0YWdpbmcvdnQ2NjU2L2Jhc2ViYW5kLmMNCisrKyBiL2RyaXZl cnMvc3RhZ2luZy92dDY2NTYvYmFzZWJhbmQuYw0KQEAgLTE2NTYsNyArMTY1Niw2IEBAIEJCdlVw ZGF0ZVByZUVEVGhyZXNob2xkKA0KIA0KICAgICAgICAgICAgIGlmKCBiU2Nhbm5pbmcgKQ0KICAg ICAgICAgICAgIHsgICAvLyBuZWVkIE1heCBzZW5zaXRpdml0eSAvL1JTU0kgLTY5LCAtNzAsLi4u Lg0KLSAgICAgICAgICAgICAgICBpZihwRGV2aWNlLT5ieUJCUHJlRURJbmRleCA9PSAwKSBicmVh azsNCiAgICAgICAgICAgICAgICAgcERldmljZS0+YnlCQlByZUVESW5kZXggPSAwOw0KICAgICAg ICAgICAgICAgICBDb250cm9sdldyaXRlQnl0ZShwRGV2aWNlLCBNRVNTQUdFX1JFUVVFU1RfQkJS RUcsIDB4QzksIDB4MDApOyAvL0NSMjAxKDB4QzkpDQogICAgICAgICAgICAgICAgIENvbnRyb2x2 V3JpdGVCeXRlKHBEZXZpY2UsIE1FU1NBR0VfUkVRVUVTVF9CQlJFRywgMHhDRSwgMHgzMCk7IC8v Q1IyMDYoMHhDRSkNCkBAIC0xNzk5LDcgKzE3OTgsNiBAQCBCQnZVcGRhdGVQcmVFRFRocmVzaG9s ZCgNCiANCiAgICAgICAgICAgICBpZiggYlNjYW5uaW5nICkNCiAgICAgICAgICAgICB7ICAgLy8g bmVlZCBNYXggc2Vuc2l0aXZpdHkgIC8vUlNTSSAtNjksIC03MCwgLi4uDQotICAgICAgICAgICAg ICAgIGlmKHBEZXZpY2UtPmJ5QkJQcmVFREluZGV4ID09IDApIGJyZWFrOw0KICAgICAgICAgICAg ICAgICBwRGV2aWNlLT5ieUJCUHJlRURJbmRleCA9IDA7DQogICAgICAgICAgICAgICAgIENvbnRy b2x2V3JpdGVCeXRlKHBEZXZpY2UsIE1FU1NBR0VfUkVRVUVTVF9CQlJFRywgMHhDOSwgMHgwMCk7 IC8vQ1IyMDEoMHhDOSkNCiAgICAgICAgICAgICAgICAgQ29udHJvbHZXcml0ZUJ5dGUocERldmlj ZSwgTUVTU0FHRV9SRVFVRVNUX0JCUkVHLCAweENFLCAweDI0KTsgLy9DUjIwNigweENFKQ0KQEAg LTE5NTEsNyArMTk0OSw2IEBAIEJCdlVwZGF0ZVByZUVEVGhyZXNob2xkKA0KICAgICAgICAgY2Fz ZSBSRl9WVDMzNDJBMDogLy9Sb2JlcnRZdToyMDA2MDYyNywgdGVzdGluZyB0YWJsZQ0KICAgICAg ICAgICAgIGlmKCBiU2Nhbm5pbmcgKQ0KICAgICAgICAgICAgIHsgICAvLyBuZWVkIE1heCBzZW5z aXRpdml0eSAgLy9SU1NJIC02NywgLTY4LCAuLi4NCi0gICAgICAgICAgICAgICAgaWYocERldmlj ZS0+YnlCQlByZUVESW5kZXggPT0gMCkgYnJlYWs7DQogICAgICAgICAgICAgICAgIHBEZXZpY2Ut PmJ5QkJQcmVFREluZGV4ID0gMDsNCiAgICAgICAgICAgICAgICAgQ29udHJvbHZXcml0ZUJ5dGUo cERldmljZSwgTUVTU0FHRV9SRVFVRVNUX0JCUkVHLCAweEM5LCAweDAwKTsgLy9DUjIwMSgweEM5 KQ0KICAgICAgICAgICAgICAgICBDb250cm9sdldyaXRlQnl0ZShwRGV2aWNlLCBNRVNTQUdFX1JF UVVFU1RfQkJSRUcsIDB4Q0UsIDB4MzgpOyAvL0NSMjA2KDB4Q0UpDQpkaWZmIC0tZ2l0IGEvZHJp dmVycy90YXJnZXQvaXNjc2kvaXNjc2lfdGFyZ2V0LmMgYi9kcml2ZXJzL3RhcmdldC9pc2NzaS9p c2NzaV90YXJnZXQuYw0KaW5kZXggNDVjMTNhNi4uNGE4OGVlYSAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvdGFyZ2V0L2lzY3NpL2lzY3NpX3RhcmdldC5jDQorKysgYi9kcml2ZXJzL3RhcmdldC9pc2Nz aS9pc2NzaV90YXJnZXQuYw0KQEAgLTUwLDcgKzUwLDcgQEANCiBzdGF0aWMgTElTVF9IRUFEKGdf dGlxbl9saXN0KTsNCiBzdGF0aWMgTElTVF9IRUFEKGdfbnBfbGlzdCk7DQogc3RhdGljIERFRklO RV9TUElOTE9DSyh0aXFuX2xvY2spOw0KLXN0YXRpYyBERUZJTkVfU1BJTkxPQ0sobnBfbG9jayk7 DQorc3RhdGljIERFRklORV9NVVRFWChucF9sb2NrKTsNCiANCiBzdGF0aWMgc3RydWN0IGlkciB0 aXFuX2lkcjsNCiBzdHJ1Y3QgaWRyIHNlc3NfaWRyOw0KQEAgLTI2Miw2ICsyNjIsOSBAQCBpbnQg aXNjc2l0X2RlYWNjZXNzX25wKHN0cnVjdCBpc2NzaV9ucCAqbnAsIHN0cnVjdCBpc2NzaV9wb3J0 YWxfZ3JvdXAgKnRwZykNCiAJcmV0dXJuIDA7DQogfQ0KIA0KKy8qDQorICogQ2FsbGVkIHdpdGgg bXV0ZXggbnBfbG9jayBoZWxkDQorICovDQogc3RhdGljIHN0cnVjdCBpc2NzaV9ucCAqaXNjc2l0 X2dldF9ucCgNCiAJc3RydWN0IF9fa2VybmVsX3NvY2thZGRyX3N0b3JhZ2UgKnNvY2thZGRyLA0K IAlpbnQgbmV0d29ya190cmFuc3BvcnQpDQpAQCAtMjcyLDExICsyNzUsMTAgQEAgc3RhdGljIHN0 cnVjdCBpc2NzaV9ucCAqaXNjc2l0X2dldF9ucCgNCiAJaW50IGlwX21hdGNoID0gMDsNCiAJdTE2 IHBvcnQ7DQogDQotCXNwaW5fbG9ja19iaCgmbnBfbG9jayk7DQogCWxpc3RfZm9yX2VhY2hfZW50 cnkobnAsICZnX25wX2xpc3QsIG5wX2xpc3QpIHsNCi0JCXNwaW5fbG9jaygmbnAtPm5wX3RocmVh ZF9sb2NrKTsNCisJCXNwaW5fbG9ja19iaCgmbnAtPm5wX3RocmVhZF9sb2NrKTsNCiAJCWlmIChu cC0+bnBfdGhyZWFkX3N0YXRlICE9IElTQ1NJX05QX1RIUkVBRF9BQ1RJVkUpIHsNCi0JCQlzcGlu X3VubG9jaygmbnAtPm5wX3RocmVhZF9sb2NrKTsNCisJCQlzcGluX3VubG9ja19iaCgmbnAtPm5w X3RocmVhZF9sb2NrKTsNCiAJCQljb250aW51ZTsNCiAJCX0NCiANCkBAIC0zMDksMTMgKzMxMSwx MSBAQCBzdGF0aWMgc3RydWN0IGlzY3NpX25wICppc2NzaXRfZ2V0X25wKA0KIAkJCSAqIHdoaWxl IGlzY3NpX3RwZ19hZGRfbmV0d29ya19wb3J0YWwoKSBpcyBjYWxsZWQuDQogCQkJICovDQogCQkJ bnAtPm5wX2V4cG9ydHMrKzsNCi0JCQlzcGluX3VubG9jaygmbnAtPm5wX3RocmVhZF9sb2NrKTsN Ci0JCQlzcGluX3VubG9ja19iaCgmbnBfbG9jayk7DQorCQkJc3Bpbl91bmxvY2tfYmgoJm5wLT5u cF90aHJlYWRfbG9jayk7DQogCQkJcmV0dXJuIG5wOw0KIAkJfQ0KLQkJc3Bpbl91bmxvY2soJm5w LT5ucF90aHJlYWRfbG9jayk7DQorCQlzcGluX3VubG9ja19iaCgmbnAtPm5wX3RocmVhZF9sb2Nr KTsNCiAJfQ0KLQlzcGluX3VubG9ja19iaCgmbnBfbG9jayk7DQogDQogCXJldHVybiBOVUxMOw0K IH0NCkBAIC0zMjksMTYgKzMyOSwyMiBAQCBzdHJ1Y3QgaXNjc2lfbnAgKmlzY3NpdF9hZGRfbnAo DQogCXN0cnVjdCBzb2NrYWRkcl9pbjYgKnNvY2tfaW42Ow0KIAlzdHJ1Y3QgaXNjc2lfbnAgKm5w Ow0KIAlpbnQgcmV0Ow0KKw0KKwltdXRleF9sb2NrKCZucF9sb2NrKTsNCisNCiAJLyoNCiAJICog TG9jYXRlIHRoZSBleGlzdGluZyBzdHJ1Y3QgaXNjc2lfbnAgaWYgYWxyZWFkeSBhY3RpdmUuLg0K IAkgKi8NCiAJbnAgPSBpc2NzaXRfZ2V0X25wKHNvY2thZGRyLCBuZXR3b3JrX3RyYW5zcG9ydCk7 DQotCWlmIChucCkNCisJaWYgKG5wKSB7DQorCQltdXRleF91bmxvY2soJm5wX2xvY2spOw0KIAkJ cmV0dXJuIG5wOw0KKwl9DQogDQogCW5wID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGlzY3NpX25w KSwgR0ZQX0tFUk5FTCk7DQogCWlmICghbnApIHsNCiAJCXByX2VycigiVW5hYmxlIHRvIGFsbG9j YXRlIG1lbW9yeSBmb3Igc3RydWN0IGlzY3NpX25wXG4iKTsNCisJCW11dGV4X3VubG9jaygmbnBf bG9jayk7DQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsNCiAJfQ0KIA0KQEAgLTM2MSw2ICsz NjcsNyBAQCBzdHJ1Y3QgaXNjc2lfbnAgKmlzY3NpdF9hZGRfbnAoDQogCXJldCA9IGlzY3NpX3Rh cmdldF9zZXR1cF9sb2dpbl9zb2NrZXQobnAsIHNvY2thZGRyKTsNCiAJaWYgKHJldCAhPSAwKSB7 DQogCQlrZnJlZShucCk7DQorCQltdXRleF91bmxvY2soJm5wX2xvY2spOw0KIAkJcmV0dXJuIEVS Ul9QVFIocmV0KTsNCiAJfQ0KIA0KQEAgLTM2OSw2ICszNzYsNyBAQCBzdHJ1Y3QgaXNjc2lfbnAg KmlzY3NpdF9hZGRfbnAoDQogCQlwcl9lcnIoIlVuYWJsZSB0byBjcmVhdGUga3RocmVhZDogaXNj c2lfbnBcbiIpOw0KIAkJcmV0ID0gUFRSX0VSUihucC0+bnBfdGhyZWFkKTsNCiAJCWtmcmVlKG5w KTsNCisJCW11dGV4X3VubG9jaygmbnBfbG9jayk7DQogCQlyZXR1cm4gRVJSX1BUUihyZXQpOw0K IAl9DQogCS8qDQpAQCAtMzc5LDEwICszODcsMTAgQEAgc3RydWN0IGlzY3NpX25wICppc2NzaXRf YWRkX25wKA0KIAkgKiBwb2ludCBiZWNhdXNlIGlzY3NpX25wIGhhcyBub3QgYmVlbiBhZGRlZCB0 byBnX25wX2xpc3QgeWV0Lg0KIAkgKi8NCiAJbnAtPm5wX2V4cG9ydHMgPSAxOw0KKwlucC0+bnBf dGhyZWFkX3N0YXRlID0gSVNDU0lfTlBfVEhSRUFEX0FDVElWRTsNCiANCi0Jc3Bpbl9sb2NrX2Jo KCZucF9sb2NrKTsNCiAJbGlzdF9hZGRfdGFpbCgmbnAtPm5wX2xpc3QsICZnX25wX2xpc3QpOw0K LQlzcGluX3VubG9ja19iaCgmbnBfbG9jayk7DQorCW11dGV4X3VubG9jaygmbnBfbG9jayk7DQog DQogCXByX2RlYnVnKCJDT1JFWzBdIC0gQWRkZWQgTmV0d29yayBQb3J0YWw6ICVzOiVodSBvbiAl c1xuIiwNCiAJCW5wLT5ucF9pcCwgbnAtPm5wX3BvcnQsIChucC0+bnBfbmV0d29ya190cmFuc3Bv cnQgPT0gSVNDU0lfVENQKSA/DQpAQCAtNDUzLDkgKzQ2MSw5IEBAIGludCBpc2NzaXRfZGVsX25w KHN0cnVjdCBpc2NzaV9ucCAqbnApDQogCX0NCiAJaXNjc2l0X2RlbF9ucF9jb21tKG5wKTsNCiAN Ci0Jc3Bpbl9sb2NrX2JoKCZucF9sb2NrKTsNCisJbXV0ZXhfbG9jaygmbnBfbG9jayk7DQogCWxp c3RfZGVsKCZucC0+bnBfbGlzdCk7DQotCXNwaW5fdW5sb2NrX2JoKCZucF9sb2NrKTsNCisJbXV0 ZXhfdW5sb2NrKCZucF9sb2NrKTsNCiANCiAJcHJfZGVidWcoIkNPUkVbMF0gLSBSZW1vdmVkIE5l dHdvcmsgUG9ydGFsOiAlczolaHUgb24gJXNcbiIsDQogCQlucC0+bnBfaXAsIG5wLT5ucF9wb3J0 LCAobnAtPm5wX25ldHdvcmtfdHJhbnNwb3J0ID09IElTQ1NJX1RDUCkgPw0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvdHR5L25fZ3NtLmMgYi9kcml2ZXJzL3R0eS9uX2dzbS5jDQppbmRleCBkMTkwMjY5 Li42NDNhMGEwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy90dHkvbl9nc20uYw0KKysrIGIvZHJpdmVy cy90dHkvbl9nc20uYw0KQEAgLTEwOTAsNiArMTA5MCw3IEBAIHN0YXRpYyB2b2lkIGdzbV9jb250 cm9sX21vZGVtKHN0cnVjdCBnc21fbXV4ICpnc20sIHU4ICpkYXRhLCBpbnQgY2xlbikNCiB7DQog CXVuc2lnbmVkIGludCBhZGRyID0gMDsNCiAJdW5zaWduZWQgaW50IG1vZGVtID0gMDsNCisJdW5z aWduZWQgaW50IGJyayA9IDA7DQogCXN0cnVjdCBnc21fZGxjaSAqZGxjaTsNCiAJaW50IGxlbiA9 IGNsZW47DQogCXU4ICpkcCA9IGRhdGE7DQpAQCAtMTExNiw2ICsxMTE3LDE2IEBAIHN0YXRpYyB2 b2lkIGdzbV9jb250cm9sX21vZGVtKHN0cnVjdCBnc21fbXV4ICpnc20sIHU4ICpkYXRhLCBpbnQg Y2xlbikNCiAJCWlmIChsZW4gPT0gMCkNCiAJCQlyZXR1cm47DQogCX0NCisJbGVuLS07DQorCWlm IChsZW4gPiAwKSB7DQorCQl3aGlsZSAoZ3NtX3JlYWRfZWEoJmJyaywgKmRwKyspID09IDApIHsN CisJCQlsZW4tLTsNCisJCQlpZiAobGVuID09IDApDQorCQkJCXJldHVybjsNCisJCX0NCisJCW1v ZGVtIDw8PSA3Ow0KKwkJbW9kZW0gfD0gKGJyayAmIDB4N2YpOw0KKwl9DQogCXR0eSA9IHR0eV9w b3J0X3R0eV9nZXQoJmRsY2ktPnBvcnQpOw0KIAlnc21fcHJvY2Vzc19tb2RlbSh0dHksIGRsY2ks IG1vZGVtLCBjbGVuKTsNCiAJaWYgKHR0eSkgew0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3Nl cmlhbC84MjUwLmMgYi9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC5jDQppbmRleCBjZmYwM2U1Li4z MzYwMWY4IDEwMDY0NA0KLS0tIGEvZHJpdmVycy90dHkvc2VyaWFsLzgyNTAuYw0KKysrIGIvZHJp dmVycy90dHkvc2VyaWFsLzgyNTAuYw0KQEAgLTI3MDEsNiArMjcwMSwxMCBAQCBzdGF0aWMgdm9p ZCBzZXJpYWw4MjUwX2NvbmZpZ19wb3J0KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIGludCBmbGFn cykNCiAJaWYgKHVwLT5wb3J0LnR5cGUgPT0gUE9SVF8xNjU1MEEgJiYgdXAtPnBvcnQuaW90eXBl ID09IFVQSU9fQVUpDQogCQl1cC0+YnVncyB8PSBVQVJUX0JVR19OT01TUjsNCiANCisJLyogSFcg YnVncyBtYXkgdHJpZ2dlciBJUlEgd2hpbGUgSUlSID09IE5PX0lOVCAqLw0KKwlpZiAodXAtPnBv cnQudHlwZSA9PSBQT1JUX1RFR1JBKQ0KKwkJdXAtPmJ1Z3MgfD0gVUFSVF9CVUdfTk9NU1I7DQor DQogCWlmICh1cC0+cG9ydC50eXBlICE9IFBPUlRfVU5LTk9XTiAmJiBmbGFncyAmIFVBUlRfQ09O RklHX0lSUSkNCiAJCWF1dG9jb25maWdfaXJxKHVwKTsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJz L3R0eS9zZXJpYWwvODI1MF9wY2kuYyBiL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwX3BjaS5jDQpp bmRleCA2YzliY2RmLi5lZjI0ZTk2IDEwMDY0NA0KLS0tIGEvZHJpdmVycy90dHkvc2VyaWFsLzgy NTBfcGNpLmMNCisrKyBiL2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwX3BjaS5jDQpAQCAtMTE0Nyw2 ICsxMTQ3LDExIEBAIHBjaV94cjE3YzE1NF9zZXR1cChzdHJ1Y3Qgc2VyaWFsX3ByaXZhdGUgKnBy aXYsDQogI2RlZmluZSBQQ0lfREVWSUNFX0lEX1RJVEFOXzgwMEUJMHhBMDE0DQogI2RlZmluZSBQ Q0lfREVWSUNFX0lEX1RJVEFOXzIwMEVJCTB4QTAxNg0KICNkZWZpbmUgUENJX0RFVklDRV9JRF9U SVRBTl8yMDBFSVNJCTB4QTAxNw0KKyNkZWZpbmUgUENJX0RFVklDRV9JRF9USVRBTl8yMDBWMwkw eEEzMDYNCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfVElUQU5fNDAwVjMJMHhBMzEwDQorI2RlZmlu ZSBQQ0lfREVWSUNFX0lEX1RJVEFOXzQxMFYzCTB4QTMxMg0KKyNkZWZpbmUgUENJX0RFVklDRV9J RF9USVRBTl84MDBWMwkweEEzMTQNCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfVElUQU5fODAwVjNC CTB4QTMxNQ0KICNkZWZpbmUgUENJX0RFVklDRV9JRF9PWFNFTUlfMTZQQ0k5NTgJMHg5NTM4DQog I2RlZmluZSBQQ0lFX0RFVklDRV9JRF9ORU9fMl9PWF9JQk0JMHgwMEY2DQogI2RlZmluZSBQQ0lf REVWSUNFX0lEX1BMWF9DUk9OWVhfT01FR0EJMHhjMDAxDQpAQCAtMzQ2NSw2ICszNDcwLDIxIEBA IHN0YXRpYyBzdHJ1Y3QgcGNpX2RldmljZV9pZCBzZXJpYWxfcGNpX3RibFtdID0gew0KIAl7CVBD SV9WRU5ET1JfSURfVElUQU4sIFBDSV9ERVZJQ0VfSURfVElUQU5fMjAwRUlTSSwNCiAJCVBDSV9B TllfSUQsIFBDSV9BTllfSUQsIDAsIDAsDQogCQlwYm5fb3hzZW1pXzJfNDAwMDAwMCB9LA0KKwl7 CVBDSV9WRU5ET1JfSURfVElUQU4sIFBDSV9ERVZJQ0VfSURfVElUQU5fMjAwVjMsDQorCQlQQ0lf QU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLA0KKwkJcGJuX2IwX2J0XzJfOTIxNjAwIH0sDQorCXsJ UENJX1ZFTkRPUl9JRF9USVRBTiwgUENJX0RFVklDRV9JRF9USVRBTl80MDBWMywNCisJCVBDSV9B TllfSUQsIFBDSV9BTllfSUQsIDAsIDAsDQorCQlwYm5fYjBfNF85MjE2MDAgfSwNCisJewlQQ0lf VkVORE9SX0lEX1RJVEFOLCBQQ0lfREVWSUNFX0lEX1RJVEFOXzQxMFYzLA0KKwkJUENJX0FOWV9J RCwgUENJX0FOWV9JRCwgMCwgMCwNCisJCXBibl9iMF80XzkyMTYwMCB9LA0KKwl7CVBDSV9WRU5E T1JfSURfVElUQU4sIFBDSV9ERVZJQ0VfSURfVElUQU5fODAwVjMsDQorCQlQQ0lfQU5ZX0lELCBQ Q0lfQU5ZX0lELCAwLCAwLA0KKwkJcGJuX2IwXzRfOTIxNjAwIH0sDQorCXsJUENJX1ZFTkRPUl9J RF9USVRBTiwgUENJX0RFVklDRV9JRF9USVRBTl84MDBWM0IsDQorCQlQQ0lfQU5ZX0lELCBQQ0lf QU5ZX0lELCAwLCAwLA0KKwkJcGJuX2IwXzRfOTIxNjAwIH0sDQogDQogCXsJUENJX1ZFTkRPUl9J RF9TSUlHLCBQQ0lfREVWSUNFX0lEX1NJSUdfMVNfMTB4XzU1MCwNCiAJCVBDSV9BTllfSUQsIFBD SV9BTllfSUQsIDAsIDAsDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvc2VyaWFsL3BtYWNfemls b2cuYyBiL2RyaXZlcnMvdHR5L3NlcmlhbC9wbWFjX3ppbG9nLmMNCmluZGV4IDA4NmY3ZmUuLmE2 Y2FmNjIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3R0eS9zZXJpYWwvcG1hY196aWxvZy5jDQorKysg Yi9kcml2ZXJzL3R0eS9zZXJpYWwvcG1hY196aWxvZy5jDQpAQCAtMjE5OCw2ICsyMTk4LDkgQEAg c3RhdGljIGludCBfX2luaXQgcG16X2NvbnNvbGVfaW5pdCh2b2lkKQ0KIAkvKiBQcm9iZSBwb3J0 cyAqLw0KIAlwbXpfcHJvYmUoKTsNCiANCisJaWYgKHBtel9wb3J0c19jb3VudCA9PSAwKQ0KKwkJ cmV0dXJuIC1FTk9ERVY7DQorDQogCS8qIFRPRE86IEF1dG9wcm9iZSBjb25zb2xlIGJhc2VkIG9u IE9GICovDQogCS8qIHBtel9jb25zb2xlLmluZGV4ID0gaTsgKi8NCiAJcmVnaXN0ZXJfY29uc29s ZSgmcG16X2NvbnNvbGUpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvY29uZmlnLmMg Yi9kcml2ZXJzL3VzYi9jb3JlL2NvbmZpZy5jDQppbmRleCA3ODYwOWQzLi4xZTNlMjExIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy91c2IvY29yZS9jb25maWcuYw0KKysrIGIvZHJpdmVycy91c2IvY29y ZS9jb25maWcuYw0KQEAgLTcyMiw2ICs3MjIsMTAgQEAgaW50IHVzYl9nZXRfY29uZmlndXJhdGlv bihzdHJ1Y3QgdXNiX2RldmljZSAqZGV2KQ0KIAkJCXJlc3VsdCA9IC1FTk9NRU07DQogCQkJZ290 byBlcnI7DQogCQl9DQorDQorCQlpZiAoZGV2LT5xdWlya3MgJiBVU0JfUVVJUktfREVMQVlfSU5J VCkNCisJCQltc2xlZXAoMTAwKTsNCisNCiAJCXJlc3VsdCA9IHVzYl9nZXRfZGVzY3JpcHRvcihk ZXYsIFVTQl9EVF9DT05GSUcsIGNmZ25vLA0KIAkJICAgIGJpZ2J1ZmZlciwgbGVuZ3RoKTsNCiAJ CWlmIChyZXN1bHQgPCAwKSB7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29yZS9xdWlya3Mu YyBiL2RyaXZlcnMvdXNiL2NvcmUvcXVpcmtzLmMNCmluZGV4IGJjZGU2ZjYuLjM2NzdkMjIgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9jb3JlL3F1aXJrcy5jDQorKysgYi9kcml2ZXJzL3VzYi9j b3JlL3F1aXJrcy5jDQpAQCAtNDYsNiArNDYsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2Jf ZGV2aWNlX2lkIHVzYl9xdWlya19saXN0W10gPSB7DQogCS8qIE1pY3Jvc29mdCBMaWZlQ2FtLVZY NzAwIHYyLjAgKi8NCiAJeyBVU0JfREVWSUNFKDB4MDQ1ZSwgMHgwNzcwKSwgLmRyaXZlcl9pbmZv ID0gVVNCX1FVSVJLX1JFU0VUX1JFU1VNRSB9LA0KIA0KKwkvKiBMb2dpdGVjaCBIRCBQcm8gV2Vi Y2FtcyBDOTIwIGFuZCBDOTMwZSAqLw0KKwl7IFVTQl9ERVZJQ0UoMHgwNDZkLCAweDA4MmQpLCAu ZHJpdmVyX2luZm8gPSBVU0JfUVVJUktfREVMQVlfSU5JVCB9LA0KKwl7IFVTQl9ERVZJQ0UoMHgw NDZkLCAweDA4NDMpLCAuZHJpdmVyX2luZm8gPSBVU0JfUVVJUktfREVMQVlfSU5JVCB9LA0KKw0K IAkvKiBMb2dpdGVjaCBRdWlja2NhbSBGdXNpb24gKi8NCiAJeyBVU0JfREVWSUNFKDB4MDQ2ZCwg MHgwOGMxKSwgLmRyaXZlcl9pbmZvID0gVVNCX1FVSVJLX1JFU0VUX1JFU1VNRSB9LA0KIA0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1oY2QuYyBiL2RyaXZlcnMvdXNiL2hvc3Qv ZWhjaS1oY2QuYw0KaW5kZXggMzM5YmUxMC4uMmFiZGFkNiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv dXNiL2hvc3QvZWhjaS1oY2QuYw0KKysrIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLWhjZC5jDQpA QCAtODA3LDggKzgwNywxNSBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZWhjaV9pcnEgKHN0cnVjdCB1 c2JfaGNkICpoY2QpDQogCXN0cnVjdCBlaGNpX2hjZAkJKmVoY2kgPSBoY2RfdG9fZWhjaSAoaGNk KTsNCiAJdTMyCQkJc3RhdHVzLCBtYXNrZWRfc3RhdHVzLCBwY2Rfc3RhdHVzID0gMCwgY21kOw0K IAlpbnQJCQliaDsNCisJdW5zaWduZWQgbG9uZwkJZmxhZ3M7DQogDQotCXNwaW5fbG9jayAoJmVo Y2ktPmxvY2spOw0KKwkvKg0KKwkgKiBGb3IgdGhyZWFkaXJxcyBvcHRpb24gd2UgdXNlIHNwaW5f bG9ja19pcnFzYXZlKCkgdmFyaWFudCB0byBwcmV2ZW50DQorCSAqIGRlYWRsb2NrIHdpdGggZWhj aSBocnRpbWVyIGNhbGxiYWNrLCBiZWNhdXNlIGhydGltZXIgY2FsbGJhY2tzIHJ1bg0KKwkgKiBp biBpbnRlcnJ1cHQgY29udGV4dCBldmVuIHdoZW4gdGhyZWFkaXJxcyBpcyBzcGVjaWZpZWQuIFdl IGNhbiBnbw0KKwkgKiBiYWNrIHRvIHNwaW5fbG9jaygpIHZhcmlhbnQgd2hlbiBocnRpbWVyIGNh bGxiYWNrcyBiZWNvbWUgdGhyZWFkZWQuDQorCSAqLw0KKwlzcGluX2xvY2tfaXJxc2F2ZSgmZWhj aS0+bG9jaywgZmxhZ3MpOw0KIA0KIAlzdGF0dXMgPSBlaGNpX3JlYWRsKGVoY2ksICZlaGNpLT5y ZWdzLT5zdGF0dXMpOw0KIA0KQEAgLTgyNiw3ICs4MzMsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3Qg ZWhjaV9pcnEgKHN0cnVjdCB1c2JfaGNkICpoY2QpDQogDQogCS8qIFNoYXJlZCBJUlE/ICovDQog CWlmICghbWFza2VkX3N0YXR1cyB8fCB1bmxpa2VseShlaGNpLT5yaF9zdGF0ZSA9PSBFSENJX1JI X0hBTFRFRCkpIHsNCi0JCXNwaW5fdW5sb2NrKCZlaGNpLT5sb2NrKTsNCisJCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJmVoY2ktPmxvY2ssIGZsYWdzKTsNCiAJCXJldHVybiBJUlFfTk9ORTsNCiAJ fQ0KIA0KQEAgLTkyOSw3ICs5MzYsNyBAQCBkZWFkOg0KIA0KIAlpZiAoYmgpDQogCQllaGNpX3dv cmsgKGVoY2kpOw0KLQlzcGluX3VubG9jayAoJmVoY2ktPmxvY2spOw0KKwlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZlaGNpLT5sb2NrLCBmbGFncyk7DQogCWlmIChwY2Rfc3RhdHVzKQ0KIAkJdXNi X2hjZF9wb2xsX3JoX3N0YXR1cyhoY2QpOw0KIAlyZXR1cm4gSVJRX0hBTkRMRUQ7DQpkaWZmIC0t Z2l0IGEvZHJpdmVycy91c2IvaG9zdC9laGNpLWh1Yi5jIGIvZHJpdmVycy91c2IvaG9zdC9laGNp LWh1Yi5jDQppbmRleCA3N2JiYjIzLi40NTI3YjkwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2Iv aG9zdC9laGNpLWh1Yi5jDQorKysgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktaHViLmMNCkBAIC0y MDcsNiArMjA3LDcgQEAgc3RhdGljIGludCBlaGNpX2J1c19zdXNwZW5kIChzdHJ1Y3QgdXNiX2hj ZCAqaGNkKQ0KIAlpbnQJCQlwb3J0Ow0KIAlpbnQJCQltYXNrOw0KIAlpbnQJCQljaGFuZ2VkOw0K Kwlib29sCQkJZnNfaWRsZV9kZWxheTsNCiANCiAJZWhjaV9kYmcoZWhjaSwgInN1c3BlbmQgcm9v dCBodWJcbiIpOw0KIA0KQEAgLTI0OSw2ICsyNTAsNyBAQCBzdGF0aWMgaW50IGVoY2lfYnVzX3N1 c3BlbmQgKHN0cnVjdCB1c2JfaGNkICpoY2QpDQogCWVoY2ktPmJ1c19zdXNwZW5kZWQgPSAwOw0K IAllaGNpLT5vd25lZF9wb3J0cyA9IDA7DQogCWNoYW5nZWQgPSAwOw0KKwlmc19pZGxlX2RlbGF5 ID0gZmFsc2U7DQogCXBvcnQgPSBIQ1NfTl9QT1JUUyhlaGNpLT5oY3NfcGFyYW1zKTsNCiAJd2hp bGUgKHBvcnQtLSkgew0KIAkJdTMyIF9faW9tZW0JKnJlZyA9ICZlaGNpLT5yZWdzLT5wb3J0X3N0 YXR1cyBbcG9ydF07DQpAQCAtMjc5LDE2ICsyODEsMzQgQEAgc3RhdGljIGludCBlaGNpX2J1c19z dXNwZW5kIChzdHJ1Y3QgdXNiX2hjZCAqaGNkKQ0KIAkJaWYgKHQxICE9IHQyKSB7DQogCQkJZWhj aV92ZGJnIChlaGNpLCAicG9ydCAlZCwgJTA4eCAtPiAlMDh4XG4iLA0KIAkJCQlwb3J0ICsgMSwg dDEsIHQyKTsNCisJCQkvKg0KKwkJCSAqIE9uIHNvbWUgY29udHJvbGxlcnMsIFdha2UtT24tRGlz Y29ubmVjdCB3aWxsDQorCQkJICogZ2VuZXJhdGUgZmFsc2Ugd2FrZXVwIHNpZ25hbHMgdW50aWwg dGhlIGJ1cw0KKwkJCSAqIHN3aXRjaGVzIG92ZXIgdG8gZnVsbC1zcGVlZCBpZGxlLiAgRm9yIHRo ZWlyDQorCQkJICogc2FrZSwgYWRkIGEgZGVsYXkgaWYgd2UgbmVlZCBvbmUuDQorCQkJICovDQor CQkJaWYgKCh0MiAmIFBPUlRfV0tESVNDX0UpICYmDQorCQkJCQllaGNpX3BvcnRfc3BlZWQoZWhj aSwgdDIpID09DQorCQkJCQkJVVNCX1BPUlRfU1RBVF9ISUdIX1NQRUVEKQ0KKwkJCQlmc19pZGxl X2RlbGF5ID0gdHJ1ZTsNCiAJCQllaGNpX3dyaXRlbChlaGNpLCB0MiwgcmVnKTsNCiAJCQljaGFu Z2VkID0gMTsNCiAJCX0NCiAJfQ0KKwlzcGluX3VubG9ja19pcnEoJmVoY2ktPmxvY2spOw0KKw0K KwlpZiAoKGNoYW5nZWQgJiYgZWhjaS0+aGFzX2hvc3RwYykgfHwgZnNfaWRsZV9kZWxheSkgew0K KwkJLyoNCisJCSAqIFdhaXQgZm9yIEhDRCB0byBlbnRlciBsb3ctcG93ZXIgbW9kZSBvciBmb3Ig dGhlIGJ1cw0KKwkJICogdG8gc3dpdGNoIHRvIGZ1bGwtc3BlZWQgaWRsZS4NCisJCSAqLw0KKwkJ dXNsZWVwX3JhbmdlKDUwMDAsIDU1MDApOw0KKwl9DQorDQorCXNwaW5fbG9ja19pcnEoJmVoY2kt PmxvY2spOw0KIA0KIAlpZiAoY2hhbmdlZCAmJiBlaGNpLT5oYXNfaG9zdHBjKSB7DQotCQlzcGlu X3VubG9ja19pcnEoJmVoY2ktPmxvY2spOw0KLQkJbXNsZWVwKDUpOwkvKiA1IG1zIGZvciBIQ0Qg dG8gZW50ZXIgbG93LXBvd2VyIG1vZGUgKi8NCiAJCXNwaW5fbG9ja19pcnEoJmVoY2ktPmxvY2sp Ow0KLQ0KIAkJcG9ydCA9IEhDU19OX1BPUlRTKGVoY2ktPmhjc19wYXJhbXMpOw0KIAkJd2hpbGUg KHBvcnQtLSkgew0KIAkJCXUzMiBfX2lvbWVtCSpob3N0cGNfcmVnOw0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdXNiL2hvc3QvZWhjaS5oIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLmgNCmluZGV4IDBh NWZkYTcuLmI2NTkxMmQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L2VoY2kuaA0KKysr IGIvZHJpdmVycy91c2IvaG9zdC9laGNpLmgNCkBAIC0xNDcsNiArMTQ3LDcgQEAgc3RydWN0IGVo Y2lfaGNkIHsJCQkvKiBvbmUgcGVyIGNvbnRyb2xsZXIgKi8NCiAJdW5zaWduZWQJCXVzZV9kdW1t eV9xaDoxOwkvKiBBTUQgRnJhbWUgTGlzdCB0YWJsZSBxdWlyayovDQogCXVuc2lnbmVkCQloYXNf c3lub3BzeXNfaGNfYnVnOjE7IC8qIFN5bm9wc3lzIEhDICovDQogCXVuc2lnbmVkCQlmcmFtZV9p bmRleF9idWc6MTsgLyogTW9zQ2hpcCAoQUtBIE5ldE1vcykgKi8NCisJdW5zaWduZWQJCWlteDI4 X3dyaXRlX2ZpeDoxOyAvKiBGb3IgRnJlZXNjYWxlIGkuTVgyOCAqLw0KIA0KIAkvKiByZXF1aXJl ZCBmb3IgdXNiMzIgcXVpcmsgKi8NCiAJI2RlZmluZSBPSENJX0NUUkxfSENGUyAgICAgICAgICAo MyA8PCA2KQ0KQEAgLTY1NCw2ICs2NTUsMTggQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQg ZWhjaV9yZWFkbChjb25zdCBzdHJ1Y3QgZWhjaV9oY2QgKmVoY2ksDQogI2VuZGlmDQogfQ0KIA0K KyNpZmRlZiBDT05GSUdfU09DX0lNWDI4DQorc3RhdGljIGlubGluZSB2b2lkIGlteDI4X2VoY2lf d3JpdGVsKGNvbnN0IHVuc2lnbmVkIGludCB2YWwsDQorCQl2b2xhdGlsZSBfX3UzMiBfX2lvbWVt ICphZGRyKQ0KK3sNCisJX19hc21fXyAoInN3cCAlMCwgJTAsIFslMV0iIDogOiAiciIodmFsKSwg InIiKGFkZHIpKTsNCit9DQorI2Vsc2UNCitzdGF0aWMgaW5saW5lIHZvaWQgaW14MjhfZWhjaV93 cml0ZWwoY29uc3QgdW5zaWduZWQgaW50IHZhbCwNCisJCXZvbGF0aWxlIF9fdTMyIF9faW9tZW0g KmFkZHIpDQorew0KK30NCisjZW5kaWYNCiBzdGF0aWMgaW5saW5lIHZvaWQgZWhjaV93cml0ZWwo Y29uc3Qgc3RydWN0IGVoY2lfaGNkICplaGNpLA0KIAkJY29uc3QgdW5zaWduZWQgaW50IHZhbCwg X191MzIgX19pb21lbSAqcmVncykNCiB7DQpAQCAtNjYyLDcgKzY3NSwxMCBAQCBzdGF0aWMgaW5s aW5lIHZvaWQgZWhjaV93cml0ZWwoY29uc3Qgc3RydWN0IGVoY2lfaGNkICplaGNpLA0KIAkJd3Jp dGVsX2JlKHZhbCwgcmVncykgOg0KIAkJd3JpdGVsKHZhbCwgcmVncyk7DQogI2Vsc2UNCi0Jd3Jp dGVsKHZhbCwgcmVncyk7DQorCWlmIChlaGNpLT5pbXgyOF93cml0ZV9maXgpDQorCQlpbXgyOF9l aGNpX3dyaXRlbCh2YWwsIHJlZ3MpOw0KKwllbHNlDQorCQl3cml0ZWwodmFsLCByZWdzKTsNCiAj ZW5kaWYNCiB9DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2N5cHJlc3NfbTgu aCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9jeXByZXNzX204LmgNCmluZGV4IGI0NjEzMTEuLmNlMTNl NjEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvY3lwcmVzc19tOC5oDQorKysgYi9k cml2ZXJzL3VzYi9zZXJpYWwvY3lwcmVzc19tOC5oDQpAQCAtNjMsNyArNjMsNyBAQA0KICNkZWZp bmUgVUFSVF9EU1IJMHgyMAkvKiBkYXRhIHNldCByZWFkeSAtIGZsb3cgY29udHJvbCAtIGRldmlj ZSB0byBob3N0ICovDQogI2RlZmluZSBDT05UUk9MX1JUUwkweDEwCS8qIHJlcXVlc3QgdG8gc2Vu ZCAtIGZsb3cgY29udHJvbCAtIGhvc3QgdG8gZGV2aWNlICovDQogI2RlZmluZSBVQVJUX0NUUwkw eDEwCS8qIGNsZWFyIHRvIHNlbmQgLSBmbG93IGNvbnRyb2wgLSBkZXZpY2UgdG8gaG9zdCAqLw0K LSNkZWZpbmUgVUFSVF9SSQkJMHgxMAkvKiByaW5nIGluZGljYXRvciAtIG1vZGVtIC0gZGV2aWNl IHRvIGhvc3QgKi8NCisjZGVmaW5lIFVBUlRfUkkJCTB4ODAJLyogcmluZyBpbmRpY2F0b3IgLSBt b2RlbSAtIGRldmljZSB0byBob3N0ICovDQogI2RlZmluZSBVQVJUX0NECQkweDQwCS8qIGNhcnJp ZXIgZGV0ZWN0IC0gbW9kZW0gLSBkZXZpY2UgdG8gaG9zdCAqLw0KICNkZWZpbmUgQ1lQX0VSUk9S CTB4MDgJLyogcmVjZWl2ZWQgZnJvbSBpbnB1dCByZXBvcnQgLSBkZXZpY2UgdG8gaG9zdCAqLw0K IC8qIE5vdGUgLSB0aGUgYmVsb3cgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB0aGUgImZlYXR1cmUg cmVwb3J0IiByZXNldCAqLw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Np by5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMNCmluZGV4IDg1NTA0YmIuLjVjOTdk OWYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW8uYw0KKysrIGIvZHJp dmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMNCkBAIC0xNjMsNiArMTYzLDcgQEAgc3RhdGljIHN0 cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlX2NvbWJpbmVkIFtdID0gew0KIAl7IFVTQl9ERVZJ Q0UoRlRESV9WSUQsIEZURElfQ0FOVVNCX1BJRCkgfSwNCiAJeyBVU0JfREVWSUNFKEZURElfVklE LCBGVERJX0NBTkRBUFRFUl9QSUQpIH0sDQogCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9O WFRDQU1fUElEKSB9LA0KKwl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfRVYzQ09OX1BJRCkg fSwNCiAJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX1NDU19ERVZJQ0VfMF9QSUQpIH0sDQog CXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9TQ1NfREVWSUNFXzFfUElEKSB9LA0KIAl7IFVT Ql9ERVZJQ0UoRlRESV9WSUQsIEZURElfU0NTX0RFVklDRV8yX1BJRCkgfSwNCkBAIC0yMDIsNiAr MjAzLDggQEAgc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlX2NvbWJpbmVkIFtd ID0gew0KIAl7IFVTQl9ERVZJQ0UoSU5URVJCSU9NRVRSSUNTX1ZJRCwgSU5URVJCSU9NRVRSSUNT X0lPQk9BUkRfUElEKSB9LA0KIAl7IFVTQl9ERVZJQ0UoSU5URVJCSU9NRVRSSUNTX1ZJRCwgSU5U RVJCSU9NRVRSSUNTX01JTklfSU9CT0FSRF9QSUQpIH0sDQogCXsgVVNCX0RFVklDRShGVERJX1ZJ RCwgRlRESV9TUFJPR19JSSkgfSwNCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX1RBR1NZ U19MUDEwMV9QSUQpIH0sDQorCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9UQUdTWVNfUDIw MFhfUElEKSB9LA0KIAl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfTEVOWl9MSVVTQl9QSUQp IH0sDQogCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9YRl82MzJfUElEKSB9LA0KIAl7IFVT Ql9ERVZJQ0UoRlRESV9WSUQsIEZURElfWEZfNjM0X1BJRCkgfSwNCkBAIC05MTQsNiArOTE3LDkg QEAgc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlX2NvbWJpbmVkIFtdID0gew0K IAl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfTFVNRUxfUEQxMl9QSUQpIH0sDQogCS8qIENy dWNpYmxlIERldmljZXMgKi8NCiAJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX0NUX0NPTUVU X1BJRCkgfSwNCisJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX1ozWF9QSUQpIH0sDQorCS8q IENyZXNzaSBEZXZpY2VzICovDQorCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9DUkVTU0lf UElEKSB9LA0KIAl7IH0sCQkJCQkvKiBPcHRpb25hbCBwYXJhbWV0ZXIgZW50cnkgKi8NCiAJeyB9 CQkJCQkvKiBUZXJtaW5hdGluZyBlbnRyeSAqLw0KIH07DQpAQCAtMjE5MywxMCArMjE5OSwyMCBA QCBzdGF0aWMgdm9pZCBmdGRpX3NldF90ZXJtaW9zKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksDQog CX0NCiANCiAJLyoNCi0JICogQWxsIEZUREkgVUFSVCBjaGlwcyBhcmUgbGltaXRlZCB0byBDUzcv OC4gV2Ugd29uJ3QgcHJldGVuZCB0bw0KKwkgKiBBbGwgRlRESSBVQVJUIGNoaXBzIGFyZSBsaW1p dGVkIHRvIENTNy84LiBXZSBzaG91bGRuJ3QgcHJldGVuZCB0bw0KIAkgKiBzdXBwb3J0IENTNS82 IGFuZCByZXZlcnQgdGhlIENTSVpFIHNldHRpbmcgaW5zdGVhZC4NCisJICoNCisJICogQ1M1IGhv d2V2ZXIgaXMgdXNlZCB0byBjb250cm9sIHNvbWUgc21hcnRjYXJkIHJlYWRlcnMgd2hpY2ggYWJ1 c2UNCisJICogdGhpcyBsaW1pdGF0aW9uIHRvIHN3aXRjaCBtb2Rlcy4gT3JpZ2luYWwgRlRESSBj aGlwcyBmYWxsIGJhY2sgdG8NCisJICogZWlnaHQgZGF0YSBiaXRzLg0KKwkgKg0KKwkgKiBUT0RP OiBJbXBsZW1lbnQgYSBxdWlyayB0byBvbmx5IGFsbG93IHRoaXMgd2l0aCBtZW50aW9uZWQNCisJ ICogICAgICAgcmVhZGVycy4gT25lIEkga25vdyBvZiAoQXJnb2xpcyBTbWFydHJlYWRlciBWMSkN CisJICogICAgICAgcmV0dXJucyAiVVNCIHNtYXJ0Y2FyZCBzZXJ2ZXIiIGFzIGlJbnRlcmZhY2Ug c3RyaW5nLg0KKwkgKiAgICAgICBUaGUgdmVuZG9yIGRpZG4ndCBib3RoZXIgd2l0aCBhIGN1c3Rv bSBWSUQvUElEIG9mDQorCSAqICAgICAgIGNvdXJzZS4NCiAJICovDQotCWlmICgoQ19DU0laRSh0 dHkpICE9IENTOCkgJiYgKENfQ1NJWkUodHR5KSAhPSBDUzcpKSB7DQorCWlmIChDX0NTSVpFKHR0 eSkgPT0gQ1M2KSB7DQogCQlkZXZfd2FybigmcG9ydC0+ZGV2LCAicmVxdWVzdGVkIENTSVpFIHNl dHRpbmcgbm90IHN1cHBvcnRlZFxuIik7DQogDQogCQl0ZXJtaW9zLT5jX2NmbGFnICY9IH5DU0la RTsNCkBAIC0yMjQzLDYgKzIyNTksOSBAQCBub19za2lwOg0KIAkJdXJiX3ZhbHVlIHw9IEZURElf U0lPX1NFVF9EQVRBX1BBUklUWV9OT05FOw0KIAl9DQogCXN3aXRjaCAoY2ZsYWcgJiBDU0laRSkg ew0KKwljYXNlIENTNToNCisJCWRldl9kYmcoJnBvcnQtPmRldiwgIlNldHRpbmcgQ1M1IHF1aXJr XG4iKTsNCisJCWJyZWFrOw0KIAljYXNlIENTNzoNCiAJCXVyYl92YWx1ZSB8PSA3Ow0KIAkJZGV2 X2RiZygmcG9ydC0+ZGV2LCAiU2V0dGluZyBDUzdcbiIpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv dXNiL3NlcmlhbC9mdGRpX3Npb19pZHMuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npb19p ZHMuaA0KaW5kZXggNjE2ODVlZC4uNzFmZTJkZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3Nl cmlhbC9mdGRpX3Npb19pZHMuaA0KKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvX2lk cy5oDQpAQCAtNTAsNiArNTAsNyBAQA0KICNkZWZpbmUgVElfWERTMTAwVjJfUElECQkweGE2ZDAN CiANCiAjZGVmaW5lIEZURElfTlhUQ0FNX1BJRAkJMHhBQkI4IC8qIE5YVENhbSBmb3IgTWluZHN0 b3JtcyBOWFQgKi8NCisjZGVmaW5lIEZURElfRVYzQ09OX1BJRAkJMHhBQkI5IC8qIE1pbmRzdG9y bXMgRVYzIENvbnNvbGUgQWRhcHRlciAqLw0KIA0KIC8qIFVTIEludGVyZmFjZSBOYXZpZ2F0b3Ig KGh0dHA6Ly93d3cudXNpbnRlcmZhY2UuY29tLykgKi8NCiAjZGVmaW5lIEZURElfVVNJTlRfQ0FU X1BJRAkweGI4MTAJLyogTmF2aWdhdG9yIENBVCBhbmQgMm5kIFBUVCBsaW5lcyAqLw0KQEAgLTM2 Myw2ICszNjQsMTIgQEANCiAvKiBTcHJvZyBJSSAoQW5kcmV3IENyb3NsYW5kJ3MgU3Byb2dJSSBE Q0MgaW50ZXJmYWNlKSAqLw0KICNkZWZpbmUgRlRESV9TUFJPR19JSQkJMHhGMEM4DQogDQorLyoN CisgKiBUd28gb2YgdGhlIFRhZ3N5cyBSRklEIFJlYWRlcnMNCisgKi8NCisjZGVmaW5lIEZURElf VEFHU1lTX0xQMTAxX1BJRAkweEYwRTkJLyogVGFnc3lzIEwtUDEwMSBSRklEKi8NCisjZGVmaW5l IEZURElfVEFHU1lTX1AyMDBYX1BJRAkweEYwRUUJLyogVGFnc3lzIE1lZGlvIFAyMDB4IFJGSUQq Lw0KKw0KIC8qIGFuIGluZnJhcmVkIHJlY2VpdmVyIGZvciB1c2VyIGFjY2VzcyBjb250cm9sIHdp dGggSVIgdGFncyAqLw0KICNkZWZpbmUgRlRESV9QSUVHUk9VUF9QSUQJMHhGMjA4CS8qIFByb2R1 Y3QgSWQgKi8NCiANCkBAIC0xMzA3LDMgKzEzMTQsMTUgQEANCiAgKiBNYW51ZmFjdHVyZXI6IENy dWNpYmxlIFRlY2hub2xvZ2llcw0KICAqLw0KICNkZWZpbmUgRlRESV9DVF9DT01FVF9QSUQJMHg4 ZTA4DQorDQorLyoNCisgKiBQcm9kdWN0OiBaM1ggQm94DQorICogTWFudWZhY3R1cmVyOiBTbWFy dCBHU00gVGVhbQ0KKyAqLw0KKyNkZWZpbmUgRlRESV9aM1hfUElECQkweDAwMTENCisNCisvKg0K KyAqIFByb2R1Y3Q6IENyZXNzaSBQQyBJbnRlcmZhY2UNCisgKiBNYW51ZmFjdHVyZXI6IENyZXNz aQ0KKyAqLw0KKyNkZWZpbmUgRlRESV9DUkVTU0lfUElECQkweDg3ZDANCmRpZmYgLS1naXQgYS9k cml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMN CmluZGV4IGQ2ZDBmYjQuLjVmNTA0N2YgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwv b3B0aW9uLmMNCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYw0KQEAgLTMyNSw2ICsz MjUsOSBAQCBzdGF0aWMgdm9pZCBvcHRpb25faW5zdGF0X2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVy Yik7DQogICogSXQgc2VlbXMgdG8gY29udGFpbiBhIFF1YWxjb21tIFFTQzYyNDAvNjI5MCBjaGlw c2V0ICAgICAgICAgICAgKi8NCiAjZGVmaW5lIEZPVVJfR19TWVNURU1TX1BST0RVQ1RfVzE0CQkw eDk2MDMNCiANCisvKiBpQmFsbCAzLjVHIGNvbm5lY3Qgd2lyZWxlc3MgbW9kZW0gKi8NCisjZGVm aW5lIElCQUxMXzNfNUdfQ09OTkVDVAkJCTB4OTYwNQ0KKw0KIC8qIFpvb20gKi8NCiAjZGVmaW5l IFpPT01fUFJPRFVDVF80NTk3CQkJMHg5NjA3DQogDQpAQCAtMTM3Myw3ICsxMzc2LDggQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG9wdGlvbl9pZHNbXSA9IHsNCiAJeyBVU0Jf REVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDEyNjcsIDB4ZmYsIDB4 ZmYsIDB4ZmYpIH0sDQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRP Ul9JRCwgMHgxMjY4LCAweGZmLCAweGZmLCAweGZmKSB9LA0KIAl7IFVTQl9ERVZJQ0VfQU5EX0lO VEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4MTI2OSwgMHhmZiwgMHhmZiwgMHhmZikgfSwN Ci0JeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDEyNzAs IDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8o WlRFX1ZFTkRPUl9JRCwgMHgxMjcwLCAweGZmLCAweGZmLCAweGZmKSwNCisJICAuZHJpdmVyX2lu Zm8gPSAoa2VybmVsX3Vsb25nX3QpJm5ldF9pbnRmNV9ibGFja2xpc3QgfSwNCiAJeyBVU0JfREVW SUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDEyNzEsIDB4ZmYsIDB4ZmYs IDB4ZmYpIH0sDQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9J RCwgMHgxMjcyLCAweGZmLCAweGZmLCAweGZmKSB9LA0KIAl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVS RkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4MTI3MywgMHhmZiwgMHhmZiwgMHhmZikgfSwNCkBA IC0xNDYxLDYgKzE0NjUsMTcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG9w dGlvbl9pZHNbXSA9IHsNCiAJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkmbmV0X2lu dGYzX2JsYWNrbGlzdCB9LA0KIAl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFpURV9W RU5ET1JfSUQsIDB4MDE3OCwgMHhmZiwgMHhmZiwgMHhmZiksDQogCQkuZHJpdmVyX2luZm8gPSAo a2VybmVsX3Vsb25nX3QpJm5ldF9pbnRmM19ibGFja2xpc3QgfSwNCisJeyBVU0JfREVWSUNFX0FO RF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweGZmZTksIDB4ZmYsIDB4ZmYsIDB4ZmYp IH0sDQorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHhm ZjhiLCAweGZmLCAweGZmLCAweGZmKSB9LA0KKwl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9J TkZPKFpURV9WRU5ET1JfSUQsIDB4ZmY4YywgMHhmZiwgMHhmZiwgMHhmZikgfSwNCisJeyBVU0Jf REVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweGZmOGQsIDB4ZmYsIDB4 ZmYsIDB4ZmYpIH0sDQorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRP Ul9JRCwgMHhmZjhlLCAweGZmLCAweGZmLCAweGZmKSB9LA0KKwl7IFVTQl9ERVZJQ0VfQU5EX0lO VEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4ZmY4ZiwgMHhmZiwgMHhmZiwgMHhmZikgfSwN CisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweGZmOTAs IDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8o WlRFX1ZFTkRPUl9JRCwgMHhmZjkxLCAweGZmLCAweGZmLCAweGZmKSB9LA0KKwl7IFVTQl9ERVZJ Q0VfQU5EX0lOVEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4ZmY5MiwgMHhmZiwgMHhmZiwg MHhmZikgfSwNCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lE LCAweGZmOTMsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJG QUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHhmZjk0LCAweGZmLCAweGZmLCAweGZmKSB9LA0KIA0K IAl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIFpURV9QUk9E VUNUX0NETUFfVEVDSCwgMHhmZiwgMHhmZiwgMHhmZikgfSwNCiAJeyBVU0JfREVWSUNFX0FORF9J TlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCBaVEVfUFJPRFVDVF9BQzg3MTAsIDB4ZmYsIDB4 ZmYsIDB4ZmYpIH0sDQpAQCAtMTUwOSw2ICsxNTI0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1 c2JfZGV2aWNlX2lkIG9wdGlvbl9pZHNbXSA9IHsNCiAgIAkgIC5kcml2ZXJfaW5mbyA9IChrZXJu ZWxfdWxvbmdfdCkmZm91cl9nX3cxNF9ibGFja2xpc3QNCiAgIAl9LA0KIAl7IFVTQl9ERVZJQ0Uo TE9OR0NIRUVSX1ZFTkRPUl9JRCwgWk9PTV9QUk9EVUNUXzQ1OTcpIH0sDQorCXsgVVNCX0RFVklD RShMT05HQ0hFRVJfVkVORE9SX0lELCBJQkFMTF8zXzVHX0NPTk5FQ1QpIH0sDQogCXsgVVNCX0RF VklDRShIQUlFUl9WRU5ET1JfSUQsIEhBSUVSX1BST0RVQ1RfQ0UxMDApIH0sDQogCS8qIFBpcmVs bGkgICovDQogCXsgVVNCX0RFVklDRShQSVJFTExJX1ZFTkRPUl9JRCwgUElSRUxMSV9QUk9EVUNU X0MxMDBfMSl9LA0KQEAgLTE1MzAsNyArMTU0Niw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNi X2RldmljZV9pZCBvcHRpb25faWRzW10gPSB7DQogCS8qIENpbnRlcmlvbiAqLw0KIAl7IFVTQl9E RVZJQ0UoQ0lOVEVSSU9OX1ZFTkRPUl9JRCwgQ0lOVEVSSU9OX1BST0RVQ1RfRVUzX0UpIH0sDQog CXsgVVNCX0RFVklDRShDSU5URVJJT05fVkVORE9SX0lELCBDSU5URVJJT05fUFJPRFVDVF9FVTNf UCkgfSwNCi0JeyBVU0JfREVWSUNFKENJTlRFUklPTl9WRU5ET1JfSUQsIENJTlRFUklPTl9QUk9E VUNUX1BIOCkgfSwNCisJeyBVU0JfREVWSUNFKENJTlRFUklPTl9WRU5ET1JfSUQsIENJTlRFUklP Tl9QUk9EVUNUX1BIOCksDQorCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJm5ldF9p bnRmNF9ibGFja2xpc3QgfSwNCiAJeyBVU0JfREVWSUNFKENJTlRFUklPTl9WRU5ET1JfSUQsIENJ TlRFUklPTl9QUk9EVUNUX0FIWFgpIH0sDQogCXsgVVNCX0RFVklDRShDSU5URVJJT05fVkVORE9S X0lELCBDSU5URVJJT05fUFJPRFVDVF9QTFhYKSwNCiAJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxf dWxvbmdfdCkmbmV0X2ludGY0X2JsYWNrbGlzdCB9LA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNi L3NlcmlhbC9wbDIzMDMuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYw0KaW5kZXggZTM5 MzZjMS4uN2IyOTMxNyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYw0K KysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jDQpAQCAtMTUzLDYgKzE1Myw4IEBAIHN0 cnVjdCBwbDIzMDNfcHJpdmF0ZSB7DQogCXU4IGxpbmVfY29udHJvbDsNCiAJdTggbGluZV9zdGF0 dXM7DQogCWVudW0gcGwyMzAzX3R5cGUgdHlwZTsNCisNCisJdTggbGluZV9zZXR0aW5nc1s3XTsN CiB9Ow0KIA0KIHN0YXRpYyBpbnQgcGwyMzAzX3ZlbmRvcl9yZWFkKF9fdTE2IHZhbHVlLCBfX3Ux NiBpbmRleCwNCkBAIC0yNjYsMTAgKzI2OCw2IEBAIHN0YXRpYyB2b2lkIHBsMjMwM19zZXRfdGVy bWlvcyhzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LA0KIA0KIAlkYmcoIiVzIC0gIHBvcnQgJWQiLCBf X2Z1bmNfXywgcG9ydC0+bnVtYmVyKTsNCiANCi0JLyogVGhlIFBMMjMwMyBpcyByZXBvcnRlZCB0 byBsb3NlIGJ5dGVzIGlmIHlvdSBjaGFuZ2UNCi0JICAgc2VyaWFsIHNldHRpbmdzIGV2ZW4gdG8g dGhlIHNhbWUgdmFsdWVzIGFzIGJlZm9yZS4gVGh1cw0KLQkgICB3ZSBhY3R1YWxseSBuZWVkIHRv IGZpbHRlciBpbiB0aGlzIHNwZWNpZmljIGNhc2UgKi8NCi0NCiAJaWYgKG9sZF90ZXJtaW9zICYm ICF0dHlfdGVybWlvc19od19jaGFuZ2UodHR5LT50ZXJtaW9zLCBvbGRfdGVybWlvcykpDQogCQly ZXR1cm47DQogDQpAQCAtNDA3LDEwICs0MDUsMjkgQEAgc3RhdGljIHZvaWQgcGwyMzAzX3NldF90 ZXJtaW9zKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksDQogCQlkYmcoIiVzIC0gcGFyaXR5ID0gbm9u ZSIsIF9fZnVuY19fKTsNCiAJfQ0KIA0KLQlpID0gdXNiX2NvbnRyb2xfbXNnKHNlcmlhbC0+ZGV2 LCB1c2Jfc25kY3RybHBpcGUoc2VyaWFsLT5kZXYsIDApLA0KLQkJCSAgICBTRVRfTElORV9SRVFV RVNULCBTRVRfTElORV9SRVFVRVNUX1RZUEUsDQotCQkJICAgIDAsIDAsIGJ1ZiwgNywgMTAwKTsN Ci0JZGJnKCIweDIxOjB4MjA6MDowICAlZCIsIGkpOw0KKwkvKg0KKwkgKiBTb21lIFBMMjMwMyBh cmUga25vd24gdG8gbG9zZSBieXRlcyBpZiB5b3UgY2hhbmdlIHNlcmlhbCBzZXR0aW5ncw0KKwkg KiBldmVuIHRvIHRoZSBzYW1lIHZhbHVlcyBhcyBiZWZvcmUuIFRodXMgd2UgYWN0dWFsbHkgbmVl ZCB0byBmaWx0ZXINCisJICogaW4gdGhpcyBzcGVjaWZpYyBjYXNlLg0KKwkgKg0KKwkgKiBOb3Rl IHRoYXQgdGhlIHR0eV90ZXJtaW9zX2h3X2NoYW5nZSBjaGVjayBhYm92ZSBpcyBub3Qgc3VmZmlj aWVudA0KKwkgKiBhcyBhIHByZXZpb3VzbHkgcmVxdWVzdGVkIGJhdWQgcmF0ZSBtYXkgZGlmZmVy IGZyb20gdGhlIG9uZQ0KKwkgKiBhY3R1YWxseSB1c2VkIChhbmQgc3RvcmVkIGluIG9sZF90ZXJt aW9zKS4NCisJICoNCisJICogTk9URTogTm8gYWRkaXRpb25hbCBsb2NraW5nIG5lZWRlZCBmb3Ig bGluZV9zZXR0aW5ncyBhcyBpdCBpcw0KKwkgKiAgICAgICBvbmx5IHVzZWQgaW4gc2V0X3Rlcm1p b3MsIHdoaWNoIGlzIHNlcmlhbGlzZWQgYWdhaW5zdCBpdHNlbGYuDQorCSAqLw0KKwlpZiAoIW9s ZF90ZXJtaW9zIHx8IG1lbWNtcChidWYsIHByaXYtPmxpbmVfc2V0dGluZ3MsIDcpKSB7DQorCQlp ID0gdXNiX2NvbnRyb2xfbXNnKHNlcmlhbC0+ZGV2LA0KKwkJCQkgICAgdXNiX3NuZGN0cmxwaXBl KHNlcmlhbC0+ZGV2LCAwKSwNCisJCQkJICAgIFNFVF9MSU5FX1JFUVVFU1QsIFNFVF9MSU5FX1JF UVVFU1RfVFlQRSwNCisJCQkJICAgIDAsIDAsIGJ1ZiwgNywgMTAwKTsNCisNCisJCWRiZygiMHgy MToweDIwOjA6MCAgJWQiLCBpKTsNCisNCisJCWlmIChpID09IDcpDQorCQkJbWVtY3B5KHByaXYt PmxpbmVfc2V0dGluZ3MsIGJ1ZiwgNyk7DQorCX0NCiANCiAJLyogY2hhbmdlIGNvbnRyb2wgbGlu ZXMgaWYgd2UgYXJlIHN3aXRjaGluZyB0byBvciBmcm9tIEIwICovDQogCXNwaW5fbG9ja19pcnFz YXZlKCZwcml2LT5sb2NrLCBmbGFncyk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc3RvcmFn ZS9LY29uZmlnIGIvZHJpdmVycy91c2Ivc3RvcmFnZS9LY29uZmlnDQppbmRleCAzMDNjMzRiLi4z NDYwZWU4IDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2Ivc3RvcmFnZS9LY29uZmlnDQorKysgYi9k cml2ZXJzL3VzYi9zdG9yYWdlL0tjb25maWcNCkBAIC0xOSw3ICsxOSw5IEBAIGNvbmZpZyBVU0Jf U1RPUkFHRQ0KIA0KIAkgIFRoaXMgb3B0aW9uIGRlcGVuZHMgb24gJ1NDU0knIHN1cHBvcnQgYmVp bmcgZW5hYmxlZCwgYnV0IHlvdQ0KIAkgIHByb2JhYmx5IGFsc28gbmVlZCAnU0NTSSBkZXZpY2Ug c3VwcG9ydDogU0NTSSBkaXNrIHN1cHBvcnQnDQotCSAgKEJMS19ERVZfU0QpIGZvciBtb3N0IFVT QiBzdG9yYWdlIGRldmljZXMuDQorCSAgKEJMS19ERVZfU0QpIGZvciBtb3N0IFVTQiBzdG9yYWdl IGRldmljZXMuICBTb21lIGRldmljZXMgYWxzbw0KKwkgIHdpbGwgcmVxdWlyZSAnUHJvYmUgYWxs IExVTnMgb24gZWFjaCBTQ1NJIGRldmljZScNCisJICAoU0NTSV9NVUxUSV9MVU4pLg0KIA0KIAkg IFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQ0K IAkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCB1c2Itc3RvcmFnZS4NCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3VzYi9zdG9yYWdlL3Njc2lnbHVlLmMgYi9kcml2ZXJzL3VzYi9zdG9yYWdlL3Njc2lnbHVl LmMNCmluZGV4IDEzYjhiY2QuLmViNjYwYmIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9zdG9y YWdlL3Njc2lnbHVlLmMNCisrKyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2Uvc2NzaWdsdWUuYw0KQEAg LTExNiw2ICsxMTYsMTAgQEAgc3RhdGljIGludCBzbGF2ZV9hbGxvYyAoc3RydWN0IHNjc2lfZGV2 aWNlICpzZGV2KQ0KIAlpZiAodXMtPnN1YmNsYXNzID09IFVTQl9TQ19VRkkpDQogCQlzZGV2LT5z ZGV2X3RhcmdldC0+cGR0XzFmX2Zvcl9ub19sdW4gPSAxOw0KIA0KKwkvKiBUZWxsIHRoZSBTQ1NJ IGxheWVyIGlmIHdlIGtub3cgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSBMVU4gKi8NCisJaWYgKHVz LT5wcm90b2NvbCA9PSBVU0JfUFJfQlVMSyAmJiB1cy0+bWF4X2x1biA+IDApDQorCQlzZGV2LT5z ZGV2X2JmbGFncyB8PSBCTElTVF9GT1JDRUxVTjsNCisNCiAJcmV0dXJuIDA7DQogfQ0KIA0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvdW51c3VhbF9jeXByZXNzLmggYi9kcml2ZXJz L3VzYi9zdG9yYWdlL3VudXN1YWxfY3lwcmVzcy5oDQppbmRleCA2NWE2YTc1Li44MmU4ZWQwIDEw MDY0NA0KLS0tIGEvZHJpdmVycy91c2Ivc3RvcmFnZS91bnVzdWFsX2N5cHJlc3MuaA0KKysrIGIv ZHJpdmVycy91c2Ivc3RvcmFnZS91bnVzdWFsX2N5cHJlc3MuaA0KQEAgLTMxLDcgKzMxLDcgQEAg VU5VU1VBTF9ERVYoICAweDA0YjQsIDB4NjgzMSwgMHgwMDAwLCAweDk5OTksDQogCQkiQ3lwcmVz cyBJU0QtMzAwTFAiLA0KIAkJVVNCX1NDX0NZUF9BVEFDQiwgVVNCX1BSX0RFVklDRSwgTlVMTCwg MCksDQogDQotVU5VU1VBTF9ERVYoIDB4MTRjZCwgMHg2MTE2LCAweDAwMDAsIDB4MDIxOSwNCitV TlVTVUFMX0RFViggMHgxNGNkLCAweDYxMTYsIDB4MDE2MCwgMHgwMTYwLA0KIAkJIlN1cGVyIFRv cCIsDQogCQkiVVNCIDIuMCAgU0FUQSBCUklER0UiLA0KIAkJVVNCX1NDX0NZUF9BVEFDQiwgVVNC X1BSX0RFVklDRSwgTlVMTCwgMCksDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc3RvcmFnZS91 bnVzdWFsX2RldnMuaCBiL2RyaXZlcnMvdXNiL3N0b3JhZ2UvdW51c3VhbF9kZXZzLmgNCmluZGV4 IDhhM2I1MzEuLjA4NzExYmMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9zdG9yYWdlL3VudXN1 YWxfZGV2cy5oDQorKysgYi9kcml2ZXJzL3VzYi9zdG9yYWdlL3VudXN1YWxfZGV2cy5oDQpAQCAt MjI2LDYgKzIyNiwxMyBAQCBVTlVTVUFMX0RFViggIDB4MDQyMSwgMHgwNDk1LCAweDAzNzAsIDB4 MDM3MCwNCiAJCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIE5VTEwsDQogCQlVU19GTF9N QVhfU0VDVE9SU182NCApLA0KIA0KKy8qIFBhdGNoIHN1Ym1pdHRlZCBieSBNaWtoYWlsIFpvbG90 YXJ5b3YgPGxlYm9uQGxlYm9uLm9yZy51YT4gKi8NCitVTlVTVUFMX0RFViggIDB4MDQyMSwgMHgw NmFhLCAweDExMTAsIDB4MTExMCwNCisJCSJOb2tpYSIsDQorCQkiNTAyIiwNCisJCVVTQl9TQ19E RVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIE5VTEwsDQorCQlVU19GTF9NQVhfU0VDVE9SU182NCApLA0K Kw0KICNpZmRlZiBOT19TRERSMDkNCiBVTlVTVUFMX0RFViggIDB4MDQzNiwgMHgwMDA1LCAweDAx MDAsIDB4MDEwMCwNCiAJCSJNaWNyb3RlY2giLA0KQEAgLTE0MzQsNiArMTQ0MSwxMyBAQCBVTlVT VUFMX0RFViggMHgwZjg4LCAweDA0MmUsIDB4MDEwMCwgMHgwMTAwLA0KIAkJVVNCX1NDX0RFVklD RSwgVVNCX1BSX0RFVklDRSwgTlVMTCwNCiAJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSApLA0KIA0KKy8q IFJlcG9ydGVkIGJ5IE1vcml0eiBNb2VsbGVyLUhlcnJtYW5uIDxtb3JpdHota2VybmVsQG1vZWxs ZXItaGVycm1hbm4uZGU+ICovDQorVU5VU1VBTF9ERVYoICAweDBmY2EsIDB4ODAwNCwgMHgwMjAx LCAweDAyMDEsDQorCQkiUmVzZWFyY2ggSW4gTW90aW9uIiwNCisJCSJCbGFja0JlcnJ5IEJvbGQg OTAwMCIsDQorCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCBOVUxMLA0KKwkJVVNfRkxf TUFYX1NFQ1RPUlNfNjQgKSwNCisNCiAvKiBSZXBvcnRlZCBieSBNaWNoYWVsIFN0YXR0bWFubiA8 bWljaGFlbEBzdGF0dG1hbm4uY29tPiAqLw0KIFVOVVNVQUxfREVWKCAgMHgwZmNlLCAweGQwMDgs IDB4MDAwMCwgMHgwMDAwLA0KIAkJIlNvbnkgRXJpY3Nzb24iLA0KZGlmZiAtLWdpdCBhL2ZzL2J0 cmZzL2V4dGVudC10cmVlLmMgYi9mcy9idHJmcy9leHRlbnQtdHJlZS5jDQppbmRleCA0OWVlZmRi Li5mNjM3MTlhIDEwMDY0NA0KLS0tIGEvZnMvYnRyZnMvZXh0ZW50LXRyZWUuYw0KKysrIGIvZnMv YnRyZnMvZXh0ZW50LXRyZWUuYw0KQEAgLTY3MjUsNyArNjcyNSw3IEBAIG91dDoNCiAJICovDQog CWlmIChyb290X2Ryb3BwZWQgPT0gZmFsc2UpDQogCQlidHJmc19hZGRfZGVhZF9yb290KHJvb3Qp Ow0KLQlpZiAoZXJyKQ0KKwlpZiAoZXJyICYmIGVyciAhPSAtRUFHQUlOKQ0KIAkJYnRyZnNfc3Rk X2Vycm9yKHJvb3QtPmZzX2luZm8sIGVycik7DQogCXJldHVybjsNCiB9DQpkaWZmIC0tZ2l0IGEv ZnMvYnRyZnMvaW5vZGUuYyBiL2ZzL2J0cmZzL2lub2RlLmMNCmluZGV4IDEzNzI2MzQuLjYyMmQz MjIgMTAwNjQ0DQotLS0gYS9mcy9idHJmcy9pbm9kZS5jDQorKysgYi9mcy9idHJmcy9pbm9kZS5j DQpAQCAtNTYsNyArNTYsNyBAQA0KICNpbmNsdWRlICJpbm9kZS1tYXAuaCINCiANCiBzdHJ1Y3Qg YnRyZnNfaWdldF9hcmdzIHsNCi0JdTY0IGlubzsNCisJc3RydWN0IGJ0cmZzX2tleSAqbG9jYXRp b247DQogCXN0cnVjdCBidHJmc19yb290ICpyb290Ow0KIH07DQogDQpAQCAtMzg0Nyw3ICszODQ3 LDkgQEAgYWdhaW46DQogc3RhdGljIGludCBidHJmc19pbml0X2xvY2tlZF9pbm9kZShzdHJ1Y3Qg aW5vZGUgKmlub2RlLCB2b2lkICpwKQ0KIHsNCiAJc3RydWN0IGJ0cmZzX2lnZXRfYXJncyAqYXJn cyA9IHA7DQotCWlub2RlLT5pX2lubyA9IGFyZ3MtPmlubzsNCisJaW5vZGUtPmlfaW5vID0gYXJn cy0+bG9jYXRpb24tPm9iamVjdGlkOw0KKwltZW1jcHkoJkJUUkZTX0koaW5vZGUpLT5sb2NhdGlv biwgYXJncy0+bG9jYXRpb24sDQorCSAgICAgICBzaXplb2YoKmFyZ3MtPmxvY2F0aW9uKSk7DQog CUJUUkZTX0koaW5vZGUpLT5yb290ID0gYXJncy0+cm9vdDsNCiAJYnRyZnNfc2V0X2lub2RlX3Nw YWNlX2luZm8oYXJncy0+cm9vdCwgaW5vZGUpOw0KIAlyZXR1cm4gMDsNCkBAIC0zODU2LDIwICsz ODU4LDIwIEBAIHN0YXRpYyBpbnQgYnRyZnNfaW5pdF9sb2NrZWRfaW5vZGUoc3RydWN0IGlub2Rl ICppbm9kZSwgdm9pZCAqcCkNCiBzdGF0aWMgaW50IGJ0cmZzX2ZpbmRfYWN0b3Ioc3RydWN0IGlu b2RlICppbm9kZSwgdm9pZCAqb3BhcXVlKQ0KIHsNCiAJc3RydWN0IGJ0cmZzX2lnZXRfYXJncyAq YXJncyA9IG9wYXF1ZTsNCi0JcmV0dXJuIGFyZ3MtPmlubyA9PSBidHJmc19pbm8oaW5vZGUpICYm DQorCXJldHVybiBhcmdzLT5sb2NhdGlvbi0+b2JqZWN0aWQgPT0gQlRSRlNfSShpbm9kZSktPmxv Y2F0aW9uLm9iamVjdGlkICYmDQogCQlhcmdzLT5yb290ID09IEJUUkZTX0koaW5vZGUpLT5yb290 Ow0KIH0NCiANCiBzdGF0aWMgc3RydWN0IGlub2RlICpidHJmc19pZ2V0X2xvY2tlZChzdHJ1Y3Qg c3VwZXJfYmxvY2sgKnMsDQotCQkJCSAgICAgICB1NjQgb2JqZWN0aWQsDQorCQkJCSAgICAgICBz dHJ1Y3QgYnRyZnNfa2V5ICpsb2NhdGlvbiwNCiAJCQkJICAgICAgIHN0cnVjdCBidHJmc19yb290 ICpyb290KQ0KIHsNCiAJc3RydWN0IGlub2RlICppbm9kZTsNCiAJc3RydWN0IGJ0cmZzX2lnZXRf YXJncyBhcmdzOw0KLQlhcmdzLmlubyA9IG9iamVjdGlkOw0KKwlhcmdzLmxvY2F0aW9uID0gbG9j YXRpb247DQogCWFyZ3Mucm9vdCA9IHJvb3Q7DQogDQotCWlub2RlID0gaWdldDVfbG9ja2VkKHMs IG9iamVjdGlkLCBidHJmc19maW5kX2FjdG9yLA0KKwlpbm9kZSA9IGlnZXQ1X2xvY2tlZChzLCBs b2NhdGlvbi0+b2JqZWN0aWQsIGJ0cmZzX2ZpbmRfYWN0b3IsDQogCQkJICAgICBidHJmc19pbml0 X2xvY2tlZF9pbm9kZSwNCiAJCQkgICAgICh2b2lkICopJmFyZ3MpOw0KIAlyZXR1cm4gaW5vZGU7 DQpAQCAtMzg4MywxMyArMzg4NSwxMSBAQCBzdHJ1Y3QgaW5vZGUgKmJ0cmZzX2lnZXQoc3RydWN0 IHN1cGVyX2Jsb2NrICpzLCBzdHJ1Y3QgYnRyZnNfa2V5ICpsb2NhdGlvbiwNCiB7DQogCXN0cnVj dCBpbm9kZSAqaW5vZGU7DQogDQotCWlub2RlID0gYnRyZnNfaWdldF9sb2NrZWQocywgbG9jYXRp b24tPm9iamVjdGlkLCByb290KTsNCisJaW5vZGUgPSBidHJmc19pZ2V0X2xvY2tlZChzLCBsb2Nh dGlvbiwgcm9vdCk7DQogCWlmICghaW5vZGUpDQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsN CiANCiAJaWYgKGlub2RlLT5pX3N0YXRlICYgSV9ORVcpIHsNCi0JCUJUUkZTX0koaW5vZGUpLT5y b290ID0gcm9vdDsNCi0JCW1lbWNweSgmQlRSRlNfSShpbm9kZSktPmxvY2F0aW9uLCBsb2NhdGlv biwgc2l6ZW9mKCpsb2NhdGlvbikpOw0KIAkJYnRyZnNfcmVhZF9sb2NrZWRfaW5vZGUoaW5vZGUp Ow0KIAkJaWYgKCFpc19iYWRfaW5vZGUoaW5vZGUpKSB7DQogCQkJaW5vZGVfdHJlZV9hZGQoaW5v ZGUpOw0KZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL2lvY3RsLmMgYi9mcy9idHJmcy9pb2N0bC5jDQpp bmRleCA2MThhZTZmLi43Y2JlMmY4IDEwMDY0NA0KLS0tIGEvZnMvYnRyZnMvaW9jdGwuYw0KKysr IGIvZnMvYnRyZnMvaW9jdGwuYw0KQEAgLTEzMjcsMTIgKzEzMjcsMTcgQEAgc3RhdGljIG5vaW5s aW5lIGludCBidHJmc19pb2N0bF9zbmFwX2NyZWF0ZV90cmFuc2lkKHN0cnVjdCBmaWxlICpmaWxl LA0KIAkJCXByaW50ayhLRVJOX0lORk8gImJ0cmZzOiBTbmFwc2hvdCBzcmMgZnJvbSAiDQogCQkJ ICAgICAgICJhbm90aGVyIEZTXG4iKTsNCiAJCQlyZXQgPSAtRUlOVkFMOw0KLQkJCWZwdXQoc3Jj X2ZpbGUpOw0KLQkJCWdvdG8gb3V0Ow0KKwkJfSBlbHNlIGlmICghaW5vZGVfb3duZXJfb3JfY2Fw YWJsZShzcmNfaW5vZGUpKSB7DQorCQkJLyoNCisJCQkgKiBTdWJ2b2x1bWUgY3JlYXRpb24gaXMg bm90IHJlc3RyaWN0ZWQsIGJ1dCBzbmFwc2hvdHMNCisJCQkgKiBhcmUgbGltaXRlZCB0byBvd24g c3Vidm9sdW1lcyBvbmx5DQorCQkJICovDQorCQkJcmV0ID0gLUVQRVJNOw0KKwkJfSBlbHNlIHsN CisJCQlyZXQgPSBidHJmc19ta3N1YnZvbCgmZmlsZS0+Zl9wYXRoLCBuYW1lLCBuYW1lbGVuLA0K KwkJCQkJICAgICBCVFJGU19JKHNyY19pbm9kZSktPnJvb3QsDQorCQkJCQkgICAgIHRyYW5zaWQs IHJlYWRvbmx5KTsNCiAJCX0NCi0JCXJldCA9IGJ0cmZzX21rc3Vidm9sKCZmaWxlLT5mX3BhdGgs IG5hbWUsIG5hbWVsZW4sDQotCQkJCSAgICAgQlRSRlNfSShzcmNfaW5vZGUpLT5yb290LA0KLQkJ CQkgICAgIHRyYW5zaWQsIHJlYWRvbmx5KTsNCiAJCWZwdXQoc3JjX2ZpbGUpOw0KIAl9DQogb3V0 Og0KZGlmZiAtLWdpdCBhL2ZzL2J1ZmZlci5jIGIvZnMvYnVmZmVyLmMNCmluZGV4IDE5YTRmMGIu LjVmNGJkZTIgMTAwNjQ0DQotLS0gYS9mcy9idWZmZXIuYw0KKysrIGIvZnMvYnVmZmVyLmMNCkBA IC02NjMsMTQgKzY2MywxNiBAQCBFWFBPUlRfU1lNQk9MKG1hcmtfYnVmZmVyX2RpcnR5X2lub2Rl KTsNCiBzdGF0aWMgdm9pZCBfX3NldF9wYWdlX2RpcnR5KHN0cnVjdCBwYWdlICpwYWdlLA0KIAkJ c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGludCB3YXJuKQ0KIHsNCi0Jc3Bpbl9sb2Nr X2lycSgmbWFwcGluZy0+dHJlZV9sb2NrKTsNCisJdW5zaWduZWQgbG9uZyBmbGFnczsNCisNCisJ c3Bpbl9sb2NrX2lycXNhdmUoJm1hcHBpbmctPnRyZWVfbG9jaywgZmxhZ3MpOw0KIAlpZiAocGFn ZS0+bWFwcGluZykgewkvKiBSYWNlIHdpdGggdHJ1bmNhdGU/ICovDQogCQlXQVJOX09OX09OQ0Uo d2FybiAmJiAhUGFnZVVwdG9kYXRlKHBhZ2UpKTsNCiAJCWFjY291bnRfcGFnZV9kaXJ0aWVkKHBh Z2UsIG1hcHBpbmcpOw0KIAkJcmFkaXhfdHJlZV90YWdfc2V0KCZtYXBwaW5nLT5wYWdlX3RyZWUs DQogCQkJCXBhZ2VfaW5kZXgocGFnZSksIFBBR0VDQUNIRV9UQUdfRElSVFkpOw0KIAl9DQotCXNw aW5fdW5sb2NrX2lycSgmbWFwcGluZy0+dHJlZV9sb2NrKTsNCisJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmbWFwcGluZy0+dHJlZV9sb2NrLCBmbGFncyk7DQogCV9fbWFya19pbm9kZV9kaXJ0eSht YXBwaW5nLT5ob3N0LCBJX0RJUlRZX1BBR0VTKTsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvZnMvY2lm cy9jb25uZWN0LmMgYi9mcy9jaWZzL2Nvbm5lY3QuYw0KaW5kZXggNTZjMTUyZC4uNDlkNmUyMSAx MDA2NDQNCi0tLSBhL2ZzL2NpZnMvY29ubmVjdC5jDQorKysgYi9mcy9jaWZzL2Nvbm5lY3QuYw0K QEAgLTExMTMsNyArMTExMyw4IEBAIGNpZnNfcGFyc2VfbW91bnRfb3B0aW9ucyhjb25zdCBjaGFy ICptb3VudGRhdGEsIGNvbnN0IGNoYXIgKmRldm5hbWUsDQogCQkJCWNFUlJPUigxLCAiS3JiNSBj aWZzIHByaXZhY3kgbm90IHN1cHBvcnRlZCIpOw0KIAkJCQlnb3RvIGNpZnNfcGFyc2VfbW91bnRf ZXJyOw0KIAkJCX0gZWxzZSBpZiAoc3RybmljbXAodmFsdWUsICJrcmI1IiwgNCkgPT0gMCkgew0K LQkJCQl2b2wtPnNlY0ZsZyB8PSBDSUZTU0VDX01BWV9LUkI1Ow0KKwkJCQl2b2wtPnNlY0ZsZyB8 PSBDSUZTU0VDX01BWV9LUkI1IHwgDQorCQkJCQlDSUZTU0VDX01BWV9TSUdOOw0KIAkJCX0gZWxz ZSBpZiAoc3RybmljbXAodmFsdWUsICJudGxtc3NwaSIsIDgpID09IDApIHsNCiAJCQkJdm9sLT5z ZWNGbGcgfD0gQ0lGU1NFQ19NQVlfTlRMTVNTUCB8DQogCQkJCQlDSUZTU0VDX01VU1RfU0lHTjsN CmRpZmYgLS1naXQgYS9mcy9leG9mcy9vcmUuYyBiL2ZzL2V4b2ZzL29yZS5jDQppbmRleCAyNmJi NTEyLi5kZjRhMTBmIDEwMDY0NA0KLS0tIGEvZnMvZXhvZnMvb3JlLmMNCisrKyBiL2ZzL2V4b2Zz L29yZS5jDQpAQCAtMTAzLDcgKzEwMyw3IEBAIGludCBvcmVfdmVyaWZ5X2xheW91dCh1bnNpZ25l ZCB0b3RhbF9jb21wcywgc3RydWN0IG9yZV9sYXlvdXQgKmxheW91dCkNCiANCiAJbGF5b3V0LT5t YXhfaW9fbGVuZ3RoID0NCiAJCShCSU9fTUFYX1BBR0VTX0tNQUxMT0MgKiBQQUdFX1NJWkUgLSBs YXlvdXQtPnN0cmlwZV91bml0KSAqDQotCQkJCQkJCWxheW91dC0+Z3JvdXBfd2lkdGg7DQorCQkJ CQkobGF5b3V0LT5ncm91cF93aWR0aCAtIGxheW91dC0+cGFyaXR5KTsNCiAJaWYgKGxheW91dC0+ cGFyaXR5KSB7DQogCQl1bnNpZ25lZCBzdHJpcGVfbGVuZ3RoID0NCiAJCQkJKGxheW91dC0+Z3Jv dXBfd2lkdGggLSBsYXlvdXQtPnBhcml0eSkgKg0KQEAgLTI4Niw3ICsyODYsOCBAQCBpbnQgIG9y ZV9nZXRfcndfc3RhdGUoc3RydWN0IG9yZV9sYXlvdXQgKmxheW91dCwgc3RydWN0IG9yZV9jb21w b25lbnRzICpvYywNCiAJaWYgKGxlbmd0aCkgew0KIAkJb3JlX2NhbGNfc3RyaXBlX2luZm8obGF5 b3V0LCBvZmZzZXQsIGxlbmd0aCwgJmlvcy0+c2kpOw0KIAkJaW9zLT5sZW5ndGggPSBpb3MtPnNp Lmxlbmd0aDsNCi0JCWlvcy0+bnJfcGFnZXMgPSAoaW9zLT5sZW5ndGggKyBQQUdFX1NJWkUgLSAx KSAvIFBBR0VfU0laRTsNCisJCWlvcy0+bnJfcGFnZXMgPSAoKGlvcy0+b2Zmc2V0ICYgKFBBR0Vf U0laRSAtIDEpKSArDQorCQkJCSBpb3MtPmxlbmd0aCArIFBBR0VfU0laRSAtIDEpIC8gUEFHRV9T SVpFOw0KIAkJaWYgKGxheW91dC0+cGFyaXR5KQ0KIAkJCV9vcmVfcG9zdF9hbGxvY19yYWlkX3N0 dWZmKGlvcyk7DQogCX0NCkBAIC01MzYsNiArNTM3LDcgQEAgdm9pZCBvcmVfY2FsY19zdHJpcGVf aW5mbyhzdHJ1Y3Qgb3JlX2xheW91dCAqbGF5b3V0LCB1NjQgZmlsZV9vZmZzZXQsDQogCXU2NAlI ID0gTG1vZFMgLSBHICogVDsNCiANCiAJdTMyCU4gPSBkaXZfdTY0KEgsIFUpOw0KKwl1MzIJTmxh c3Q7DQogDQogCS8qICJIIC0gKE4gKiBVKSIgaXMganVzdCAiSCAlIFUiIHNvIGl0J3MgYm91bmQg dG8gdTMyICovDQogCXUzMglDID0gKHUzMikoSCAtIChOICogVSkpIC8gc3RyaXBlX3VuaXQgKyBH ICogZ3JvdXBfd2lkdGg7DQpAQCAtNTY4LDYgKzU3MCwxMCBAQCB2b2lkIG9yZV9jYWxjX3N0cmlw ZV9pbmZvKHN0cnVjdCBvcmVfbGF5b3V0ICpsYXlvdXQsIHU2NCBmaWxlX29mZnNldCwNCiAJc2kt Pmxlbmd0aCA9IFQgLSBIOw0KIAlpZiAoc2ktPmxlbmd0aCA+IGxlbmd0aCkNCiAJCXNpLT5sZW5n dGggPSBsZW5ndGg7DQorDQorCU5sYXN0ID0gZGl2X3U2NChIICsgc2ktPmxlbmd0aCArIFUgLSAx LCBVKTsNCisJc2ktPm1heGRldlVuaXRzID0gTmxhc3QgLSBOOw0KKw0KIAlzaS0+TSA9IE07DQog fQ0KIEVYUE9SVF9TWU1CT0wob3JlX2NhbGNfc3RyaXBlX2luZm8pOw0KQEAgLTU4MywxMyArNTg5 LDE2IEBAIGludCBfb3JlX2FkZF9zdHJpcGVfdW5pdChzdHJ1Y3Qgb3JlX2lvX3N0YXRlICppb3Ms ICB1bnNpZ25lZCAqY3VyX3BnLA0KIAlpbnQgcmV0Ow0KIA0KIAlpZiAocGVyX2Rldi0+YmlvID09 IE5VTEwpIHsNCi0JCXVuc2lnbmVkIHBhZ2VzX2luX3N0cmlwZSA9IGlvcy0+bGF5b3V0LT5ncm91 cF93aWR0aCAqDQotCQkJCQkoaW9zLT5sYXlvdXQtPnN0cmlwZV91bml0IC8gUEFHRV9TSVpFKTsN Ci0JCXVuc2lnbmVkIG5yX3BhZ2VzID0gaW9zLT5ucl9wYWdlcyAqIGlvcy0+bGF5b3V0LT5ncm91 cF93aWR0aCAvDQotCQkJCQkoaW9zLT5sYXlvdXQtPmdyb3VwX3dpZHRoIC0NCi0JCQkJCSBpb3Mt PmxheW91dC0+cGFyaXR5KTsNCi0JCXVuc2lnbmVkIGJpb19zaXplID0gKG5yX3BhZ2VzICsgcGFn ZXNfaW5fc3RyaXBlKSAvDQotCQkJCQlpb3MtPmxheW91dC0+Z3JvdXBfd2lkdGg7DQorCQl1bnNp Z25lZCBiaW9fc2l6ZTsNCisNCisJCWlmICghaW9zLT5yZWFkaW5nKSB7DQorCQkJYmlvX3NpemUg PSBpb3MtPnNpLm1heGRldlVuaXRzOw0KKwkJfSBlbHNlIHsNCisJCQliaW9fc2l6ZSA9IChpb3Mt PnNpLm1heGRldlVuaXRzICsgMSkgKg0KKwkJCSAgICAgKGlvcy0+bGF5b3V0LT5ncm91cF93aWR0 aCAtIGlvcy0+bGF5b3V0LT5wYXJpdHkpIC8NCisJCQkgICAgIGlvcy0+bGF5b3V0LT5ncm91cF93 aWR0aDsNCisJCX0NCisJCWJpb19zaXplICo9IChpb3MtPmxheW91dC0+c3RyaXBlX3VuaXQgLyBQ QUdFX1NJWkUpOw0KIA0KIAkJcGVyX2Rldi0+YmlvID0gYmlvX2ttYWxsb2MoR0ZQX0tFUk5FTCwg YmlvX3NpemUpOw0KIAkJaWYgKHVubGlrZWx5KCFwZXJfZGV2LT5iaW8pKSB7DQpAQCAtNjA5LDgg KzYxOCwxMiBAQCBpbnQgX29yZV9hZGRfc3RyaXBlX3VuaXQoc3RydWN0IG9yZV9pb19zdGF0ZSAq aW9zLCAgdW5zaWduZWQgKmN1cl9wZywNCiAJCWFkZGVkX2xlbiA9IGJpb19hZGRfcGNfcGFnZShx LCBwZXJfZGV2LT5iaW8sIHBhZ2VzW3BnXSwNCiAJCQkJCSAgICBwZ2xlbiwgcGdiYXNlKTsNCiAJ CWlmICh1bmxpa2VseShwZ2xlbiAhPSBhZGRlZF9sZW4pKSB7DQotCQkJT1JFX0RCR01TRygiRmFp bGVkIGJpb19hZGRfcGNfcGFnZSBiaV92Y250PSV1XG4iLA0KLQkJCQkgICBwZXJfZGV2LT5iaW8t PmJpX3ZjbnQpOw0KKwkJCS8qIElmIGJpX3ZjbnQgPT0gYmlfbWF4IHRoZW4gdGhpcyBpcyBhIFNX IEJVRyAqLw0KKwkJCU9SRV9EQkdNU0coIkZhaWxlZCBiaW9fYWRkX3BjX3BhZ2UgYmlfdmNudD0w eCV4ICINCisJCQkJICAgImJpX21heD0weCV4IEJJT19NQVg9MHgleCBjdXJfbGVuPTB4JXhcbiIs DQorCQkJCSAgIHBlcl9kZXYtPmJpby0+YmlfdmNudCwNCisJCQkJICAgcGVyX2Rldi0+YmlvLT5i aV9tYXhfdmVjcywNCisJCQkJICAgQklPX01BWF9QQUdFU19LTUFMTE9DLCBjdXJfbGVuKTsNCiAJ CQlyZXQgPSAtRU5PTUVNOw0KIAkJCWdvdG8gb3V0Ow0KIAkJfQ0KQEAgLTEwOTksNyArMTExMiw3 IEBAIGludCBvcmVfdHJ1bmNhdGUoc3RydWN0IG9yZV9sYXlvdXQgKmxheW91dCwgc3RydWN0IG9y ZV9jb21wb25lbnRzICpvYywNCiAJCXNpemVfYXR0ci0+YXR0ciA9IGdfYXR0cl9sb2dpY2FsX2xl bmd0aDsNCiAJCXNpemVfYXR0ci0+YXR0ci52YWxfcHRyID0gJnNpemVfYXR0ci0+bmV3c2l6ZTsN CiANCi0JCU9SRV9EQkdNU0coInRydW5jKDB4JWxseCkgb2JqX29mZnNldD0weCVsbHggZGV2PSVk XG4iLA0KKwkJT1JFX0RCR01TRzIoInRydW5jKDB4JWxseCkgb2JqX29mZnNldD0weCVsbHggZGV2 PSVkXG4iLA0KIAkJCSAgICAgX0xMVShvYy0+Y29tcHMtPm9iai5pZCksIF9MTFUob2JqX3NpemUp LCBpKTsNCiAJCXJldCA9IF90cnVuY2F0ZV9taXJyb3JzKGlvcywgaSAqIGlvcy0+bGF5b3V0LT5t aXJyb3JzX3AxLA0KIAkJCQkJJnNpemVfYXR0ci0+YXR0cik7DQpkaWZmIC0tZ2l0IGEvZnMvZXh0 NC9leHQ0LmggYi9mcy9leHQ0L2V4dDQuaA0KaW5kZXggNjhiMTYwMi4uNDBmNGQwNiAxMDA2NDQN Ci0tLSBhL2ZzL2V4dDQvZXh0NC5oDQorKysgYi9mcy9leHQ0L2V4dDQuaA0KQEAgLTc0NSw2ICs3 NDUsOCBAQCBkbyB7CQkJCQkJCQkJICAgICAgIFwNCiAJaWYgKEVYVDRfRklUU19JTl9JTk9ERShy YXdfaW5vZGUsIGVpbm9kZSwgeHRpbWUpKQkJICAgICAgIFwNCiAJCShlaW5vZGUpLT54dGltZS50 dl9zZWMgPSAJCQkJICAgICAgIFwNCiAJCQkoc2lnbmVkKWxlMzJfdG9fY3B1KChyYXdfaW5vZGUp LT54dGltZSk7CSAgICAgICBcDQorCWVsc2UJCQkJCQkJCSAgICAgICBcDQorCQkoZWlub2RlKS0+ eHRpbWUudHZfc2VjID0gMDsJCQkJICAgICAgIFwNCiAJaWYgKEVYVDRfRklUU19JTl9JTk9ERShy YXdfaW5vZGUsIGVpbm9kZSwgeHRpbWUgIyMgX2V4dHJhKSkJICAgICAgIFwNCiAJCWV4dDRfZGVj b2RlX2V4dHJhX3RpbWUoJihlaW5vZGUpLT54dGltZSwJCSAgICAgICBcDQogCQkJCSAgICAgICBy YXdfaW5vZGUtPnh0aW1lICMjIF9leHRyYSk7CSAgICAgICBcDQpkaWZmIC0tZ2l0IGEvZnMvZmls ZS5jIGIvZnMvZmlsZS5jDQppbmRleCA0YzY5OTJkLi4zMGJmYzk5IDEwMDY0NA0KLS0tIGEvZnMv ZmlsZS5jDQorKysgYi9mcy9maWxlLmMNCkBAIC00Nyw3ICs0Nyw3IEBAIHN0YXRpYyB2b2lkICph bGxvY19mZG1lbSh1bnNpZ25lZCBpbnQgc2l6ZSkNCiAJICogdm1hbGxvYygpIGlmIHRoZSBhbGxv Y2F0aW9uIHNpemUgd2lsbCBiZSBjb25zaWRlcmVkICJsYXJnZSIgYnkgdGhlIFZNLg0KIAkgKi8N CiAJaWYgKHNpemUgPD0gKFBBR0VfU0laRSA8PCBQQUdFX0FMTE9DX0NPU1RMWV9PUkRFUikpIHsN Ci0JCXZvaWQgKmRhdGEgPSBrbWFsbG9jKHNpemUsIEdGUF9LRVJORUx8X19HRlBfTk9XQVJOKTsN CisJCXZvaWQgKmRhdGEgPSBrbWFsbG9jKHNpemUsIEdGUF9LRVJORUx8X19HRlBfTk9XQVJOfF9f R0ZQX05PUkVUUlkpOw0KIAkJaWYgKGRhdGEgIT0gTlVMTCkNCiAJCQlyZXR1cm4gZGF0YTsNCiAJ fQ0KZGlmZiAtLWdpdCBhL2ZzL2Z1c2UvZGV2LmMgYi9mcy9mdXNlL2Rldi5jDQppbmRleCA1YzAy OWZiLi5jZjAwOThkIDEwMDY0NA0KLS0tIGEvZnMvZnVzZS9kZXYuYw0KKysrIGIvZnMvZnVzZS9k ZXYuYw0KQEAgLTExOTksMjIgKzExOTksNiBAQCBzdGF0aWMgc3NpemVfdCBmdXNlX2Rldl9yZWFk KHN0cnVjdCBraW9jYiAqaW9jYiwgY29uc3Qgc3RydWN0IGlvdmVjICppb3YsDQogCXJldHVybiBm dXNlX2Rldl9kb19yZWFkKGZjLCBmaWxlLCAmY3MsIGlvdl9sZW5ndGgoaW92LCBucl9zZWdzKSk7 DQogfQ0KIA0KLXN0YXRpYyBpbnQgZnVzZV9kZXZfcGlwZV9idWZfc3RlYWwoc3RydWN0IHBpcGVf aW5vZGVfaW5mbyAqcGlwZSwNCi0JCQkJICAgc3RydWN0IHBpcGVfYnVmZmVyICpidWYpDQotew0K LQlyZXR1cm4gMTsNCi19DQotDQotc3RhdGljIGNvbnN0IHN0cnVjdCBwaXBlX2J1Zl9vcGVyYXRp b25zIGZ1c2VfZGV2X3BpcGVfYnVmX29wcyA9IHsNCi0JLmNhbl9tZXJnZSA9IDAsDQotCS5tYXAg PSBnZW5lcmljX3BpcGVfYnVmX21hcCwNCi0JLnVubWFwID0gZ2VuZXJpY19waXBlX2J1Zl91bm1h cCwNCi0JLmNvbmZpcm0gPSBnZW5lcmljX3BpcGVfYnVmX2NvbmZpcm0sDQotCS5yZWxlYXNlID0g Z2VuZXJpY19waXBlX2J1Zl9yZWxlYXNlLA0KLQkuc3RlYWwgPSBmdXNlX2Rldl9waXBlX2J1Zl9z dGVhbCwNCi0JLmdldCA9IGdlbmVyaWNfcGlwZV9idWZfZ2V0LA0KLX07DQotDQogc3RhdGljIHNz aXplX3QgZnVzZV9kZXZfc3BsaWNlX3JlYWQoc3RydWN0IGZpbGUgKmluLCBsb2ZmX3QgKnBwb3Ms DQogCQkJCSAgICBzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLA0KIAkJCQkgICAgc2l6ZV90 IGxlbiwgdW5zaWduZWQgaW50IGZsYWdzKQ0KQEAgLTEyNjEsNyArMTI0NSwxMSBAQCBzdGF0aWMg c3NpemVfdCBmdXNlX2Rldl9zcGxpY2VfcmVhZChzdHJ1Y3QgZmlsZSAqaW4sIGxvZmZfdCAqcHBv cywNCiAJCWJ1Zi0+cGFnZSA9IGJ1ZnNbcGFnZV9ucl0ucGFnZTsNCiAJCWJ1Zi0+b2Zmc2V0ID0g YnVmc1twYWdlX25yXS5vZmZzZXQ7DQogCQlidWYtPmxlbiA9IGJ1ZnNbcGFnZV9ucl0ubGVuOw0K LQkJYnVmLT5vcHMgPSAmZnVzZV9kZXZfcGlwZV9idWZfb3BzOw0KKwkJLyoNCisJCSAqIE5lZWQg dG8gYmUgY2FyZWZ1bCBhYm91dCB0aGlzLiAgSGF2aW5nIGJ1Zi0+b3BzIGluIG1vZHVsZQ0KKwkJ ICogY29kZSBjYW4gT29wcyBpZiB0aGUgYnVmZmVyIHBlcnNpc3RzIGFmdGVyIG1vZHVsZSB1bmxv YWQuDQorCQkgKi8NCisJCWJ1Zi0+b3BzID0gJm5vc3RlYWxfcGlwZV9idWZfb3BzOw0KIA0KIAkJ cGlwZS0+bnJidWZzKys7DQogCQlwYWdlX25yKys7DQpkaWZmIC0tZ2l0IGEvZnMvaHBmcy9hbGxv Yy5jIGIvZnMvaHBmcy9hbGxvYy5jDQppbmRleCA3YTVlYjJjLi5lMGQ1N2MwIDEwMDY0NA0KLS0t IGEvZnMvaHBmcy9hbGxvYy5jDQorKysgYi9mcy9ocGZzL2FsbG9jLmMNCkBAIC04LDYgKzgsNTgg QEANCiANCiAjaW5jbHVkZSAiaHBmc19mbi5oIg0KIA0KK3N0YXRpYyB2b2lkIGhwZnNfY2xhaW1f YWxsb2Moc3RydWN0IHN1cGVyX2Jsb2NrICpzLCBzZWNubyBzZWMpDQorew0KKwlzdHJ1Y3QgaHBm c19zYl9pbmZvICpzYmkgPSBocGZzX3NiKHMpOw0KKwlpZiAoc2JpLT5zYl9uX2ZyZWUgIT0gKHVu c2lnbmVkKS0xKSB7DQorCQlpZiAodW5saWtlbHkoIXNiaS0+c2Jfbl9mcmVlKSkgew0KKwkJCWhw ZnNfZXJyb3IocywgImZyZWUgY291bnQgdW5kZXJmbG93LCBhbGxvY2F0aW5nIHNlY3RvciAlMDh4 Iiwgc2VjKTsNCisJCQlzYmktPnNiX25fZnJlZSA9IC0xOw0KKwkJCXJldHVybjsNCisJCX0NCisJ CXNiaS0+c2Jfbl9mcmVlLS07DQorCX0NCit9DQorDQorc3RhdGljIHZvaWQgaHBmc19jbGFpbV9m cmVlKHN0cnVjdCBzdXBlcl9ibG9jayAqcywgc2Vjbm8gc2VjKQ0KK3sNCisJc3RydWN0IGhwZnNf c2JfaW5mbyAqc2JpID0gaHBmc19zYihzKTsNCisJaWYgKHNiaS0+c2Jfbl9mcmVlICE9ICh1bnNp Z25lZCktMSkgew0KKwkJaWYgKHVubGlrZWx5KHNiaS0+c2Jfbl9mcmVlID49IHNiaS0+c2JfZnNf c2l6ZSkpIHsNCisJCQlocGZzX2Vycm9yKHMsICJmcmVlIGNvdW50IG92ZXJmbG93LCBmcmVlaW5n IHNlY3RvciAlMDh4Iiwgc2VjKTsNCisJCQlzYmktPnNiX25fZnJlZSA9IC0xOw0KKwkJCXJldHVy bjsNCisJCX0NCisJCXNiaS0+c2Jfbl9mcmVlKys7DQorCX0NCit9DQorDQorc3RhdGljIHZvaWQg aHBmc19jbGFpbV9kaXJiYW5kX2FsbG9jKHN0cnVjdCBzdXBlcl9ibG9jayAqcywgc2Vjbm8gc2Vj KQ0KK3sNCisJc3RydWN0IGhwZnNfc2JfaW5mbyAqc2JpID0gaHBmc19zYihzKTsNCisJaWYgKHNi aS0+c2Jfbl9mcmVlX2Rub2RlcyAhPSAodW5zaWduZWQpLTEpIHsNCisJCWlmICh1bmxpa2VseSgh c2JpLT5zYl9uX2ZyZWVfZG5vZGVzKSkgew0KKwkJCWhwZnNfZXJyb3IocywgImRpcmJhbmQgZnJl ZSBjb3VudCB1bmRlcmZsb3csIGFsbG9jYXRpbmcgc2VjdG9yICUwOHgiLCBzZWMpOw0KKwkJCXNi aS0+c2Jfbl9mcmVlX2Rub2RlcyA9IC0xOw0KKwkJCXJldHVybjsNCisJCX0NCisJCXNiaS0+c2Jf bl9mcmVlX2Rub2Rlcy0tOw0KKwl9DQorfQ0KKw0KK3N0YXRpYyB2b2lkIGhwZnNfY2xhaW1fZGly YmFuZF9mcmVlKHN0cnVjdCBzdXBlcl9ibG9jayAqcywgc2Vjbm8gc2VjKQ0KK3sNCisJc3RydWN0 IGhwZnNfc2JfaW5mbyAqc2JpID0gaHBmc19zYihzKTsNCisJaWYgKHNiaS0+c2Jfbl9mcmVlX2Ru b2RlcyAhPSAodW5zaWduZWQpLTEpIHsNCisJCWlmICh1bmxpa2VseShzYmktPnNiX25fZnJlZV9k bm9kZXMgPj0gc2JpLT5zYl9kaXJiYW5kX3NpemUgLyA0KSkgew0KKwkJCWhwZnNfZXJyb3Iocywg ImRpcmJhbmQgZnJlZSBjb3VudCBvdmVyZmxvdywgZnJlZWluZyBzZWN0b3IgJTA4eCIsIHNlYyk7 DQorCQkJc2JpLT5zYl9uX2ZyZWVfZG5vZGVzID0gLTE7DQorCQkJcmV0dXJuOw0KKwkJfQ0KKwkJ c2JpLT5zYl9uX2ZyZWVfZG5vZGVzKys7DQorCX0NCit9DQorDQogLyoNCiAgKiBDaGVjayBpZiBh IHNlY3RvciBpcyBhbGxvY2F0ZWQgaW4gYml0bWFwDQogICogVGhpcyBpcyByZWFsbHkgc2xvdy4g VHVybmVkIG9uIG9ubHkgaWYgY2hrPT0yDQpAQCAtMjAzLDkgKzI1NSwxNSBAQCBzZWNubyBocGZz X2FsbG9jX3NlY3RvcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIHNlY25vIG5lYXIsIHVuc2lnbmVk IG4sIGludCBmb3J3YQ0KIAl9DQogCXNlYyA9IDA7DQogCXJldDoNCisJaWYgKHNlYykgew0KKwkJ aSA9IDA7DQorCQlkbw0KKwkJCWhwZnNfY2xhaW1fYWxsb2Mocywgc2VjICsgaSk7DQorCQl3aGls ZSAodW5saWtlbHkoKytpIDwgbikpOw0KKwl9DQogCWlmIChzZWMgJiYgZl9wKSB7DQogCQlmb3Ig KGkgPSAwOyBpIDwgZm9yd2FyZDsgaSsrKSB7DQotCQkJaWYgKCFocGZzX2FsbG9jX2lmX3Bvc3Np YmxlKHMsIHNlYyArIGkgKyAxKSkgew0KKwkJCWlmICghaHBmc19hbGxvY19pZl9wb3NzaWJsZShz LCBzZWMgKyBuICsgaSkpIHsNCiAJCQkJaHBmc19lcnJvcihzLCAiUHJlYWxsb2MgZG9lc24ndCB3 b3JrISBXYW50ZWQgJWQsIGFsbG9jYXRlZCBhdCAlMDh4LCBjYW4ndCBhbGxvY2F0ZSAlZCIsIGZv cndhcmQsIHNlYywgaSk7DQogCQkJCXNlYyA9IDA7DQogCQkJCWJyZWFrOw0KQEAgLTIyOCw2ICsy ODYsNyBAQCBzdGF0aWMgc2Vjbm8gYWxsb2NfaW5fZGlyYmFuZChzdHJ1Y3Qgc3VwZXJfYmxvY2sg KnMsIHNlY25vIG5lYXIpDQogCW5yID4+PSAyOw0KIAlzZWMgPSBhbGxvY19pbl9ibXAocywgKH4w eDNmZmYpIHwgbnIsIDEsIDApOw0KIAlpZiAoIXNlYykgcmV0dXJuIDA7DQorCWhwZnNfY2xhaW1f ZGlyYmFuZF9hbGxvYyhzLCBzZWMpOw0KIAlyZXR1cm4gKChzZWMgJiAweDNmZmYpIDw8IDIpICsg c2JpLT5zYl9kaXJiYW5kX3N0YXJ0Ow0KIH0NCiANCkBAIC0yNDIsNiArMzAxLDcgQEAgaW50IGhw ZnNfYWxsb2NfaWZfcG9zc2libGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzLCBzZWNubyBzZWMpDQog CQlibXBbKHNlYyAmIDB4M2ZmZikgPj4gNV0gJj0gY3B1X3RvX2xlMzIofigxIDw8IChzZWMgJiAw eDFmKSkpOw0KIAkJaHBmc19tYXJrXzRidWZmZXJzX2RpcnR5KCZxYmgpOw0KIAkJaHBmc19icmVs c2U0KCZxYmgpOw0KKwkJaHBmc19jbGFpbV9hbGxvYyhzLCBzZWMpOw0KIAkJcmV0dXJuIDE7DQog CX0NCiAJaHBmc19icmVsc2U0KCZxYmgpOw0KQEAgLTI3NSw2ICszMzUsNyBAQCB2b2lkIGhwZnNf ZnJlZV9zZWN0b3JzKHN0cnVjdCBzdXBlcl9ibG9jayAqcywgc2Vjbm8gc2VjLCB1bnNpZ25lZCBu KQ0KIAkJcmV0dXJuOw0KIAl9DQogCWJtcFsoc2VjICYgMHgzZmZmKSA+PiA1XSB8PSBjcHVfdG9f bGUzMigxIDw8IChzZWMgJiAweDFmKSk7DQorCWhwZnNfY2xhaW1fZnJlZShzLCBzZWMpOw0KIAlp ZiAoIS0tbikgew0KIAkJaHBmc19tYXJrXzRidWZmZXJzX2RpcnR5KCZxYmgpOw0KIAkJaHBmc19i cmVsc2U0KCZxYmgpOw0KQEAgLTM1OSw2ICs0MjAsNyBAQCB2b2lkIGhwZnNfZnJlZV9kbm9kZShz dHJ1Y3Qgc3VwZXJfYmxvY2sgKnMsIGRub2RlX3NlY25vIGRubykNCiAJCWJtcFtzc2VjID4+IDVd IHw9IGNwdV90b19sZTMyKDEgPDwgKHNzZWMgJiAweDFmKSk7DQogCQlocGZzX21hcmtfNGJ1ZmZl cnNfZGlydHkoJnFiaCk7DQogCQlocGZzX2JyZWxzZTQoJnFiaCk7DQorCQlocGZzX2NsYWltX2Rp cmJhbmRfZnJlZShzLCBkbm8pOw0KIAl9DQogfQ0KIA0KQEAgLTM2Niw3ICs0MjgsNyBAQCBzdHJ1 Y3QgZG5vZGUgKmhwZnNfYWxsb2NfZG5vZGUoc3RydWN0IHN1cGVyX2Jsb2NrICpzLCBzZWNubyBu ZWFyLA0KIAkJCSBkbm9kZV9zZWNubyAqZG5vLCBzdHJ1Y3QgcXVhZF9idWZmZXJfaGVhZCAqcWJo KQ0KIHsNCiAJc3RydWN0IGRub2RlICpkOw0KLQlpZiAoaHBmc19jb3VudF9vbmVfYml0bWFwKHMs IGhwZnNfc2IocyktPnNiX2RtYXApID4gRlJFRV9ETk9ERVNfQUREKSB7DQorCWlmIChocGZzX2dl dF9mcmVlX2Rub2RlcyhzKSA+IEZSRUVfRE5PREVTX0FERCkgew0KIAkJaWYgKCEoKmRubyA9IGFs bG9jX2luX2RpcmJhbmQocywgbmVhcikpKQ0KIAkJCWlmICghKCpkbm8gPSBocGZzX2FsbG9jX3Nl Y3RvcihzLCBuZWFyLCA0LCAwKSkpIHJldHVybiBOVUxMOw0KIAl9IGVsc2Ugew0KZGlmZiAtLWdp dCBhL2ZzL2hwZnMvZGlyLmMgYi9mcy9ocGZzL2Rpci5jDQppbmRleCAyZmEwMDg5Li40NjU0OWM3 IDEwMDY0NA0KLS0tIGEvZnMvaHBmcy9kaXIuYw0KKysrIGIvZnMvaHBmcy9kaXIuYw0KQEAgLTMz LDI1ICszMywyNyBAQCBzdGF0aWMgbG9mZl90IGhwZnNfZGlyX2xzZWVrKHN0cnVjdCBmaWxlICpm aWxwLCBsb2ZmX3Qgb2ZmLCBpbnQgd2hlbmNlKQ0KIAlpZiAod2hlbmNlID09IFNFRUtfREFUQSB8 fCB3aGVuY2UgPT0gU0VFS19IT0xFKQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQogDQorCW11dGV4X2xv Y2soJmktPmlfbXV0ZXgpOw0KIAlocGZzX2xvY2socyk7DQogDQogCS8qcHJpbnRrKCJkaXIgbHNl ZWtcbiIpOyovDQogCWlmIChuZXdfb2ZmID09IDAgfHwgbmV3X29mZiA9PSAxIHx8IG5ld19vZmYg PT0gMTEgfHwgbmV3X29mZiA9PSAxMiB8fCBuZXdfb2ZmID09IDEzKSBnb3RvIG9rOw0KLQltdXRl eF9sb2NrKCZpLT5pX211dGV4KTsNCiAJcG9zID0gKChsb2ZmX3QpIGhwZnNfZGVfYXNfZG93bl9h c19wb3NzaWJsZShzLCBocGZzX2lub2RlLT5pX2RubykgPDwgNCkgKyAxOw0KIAl3aGlsZSAocG9z ICE9IG5ld19vZmYpIHsNCiAJCWlmIChtYXBfcG9zX2RpcmVudChpLCAmcG9zLCAmcWJoKSkgaHBm c19icmVsc2U0KCZxYmgpOw0KIAkJZWxzZSBnb3RvIGZhaWw7DQogCQlpZiAocG9zID09IDEyKSBn b3RvIGZhaWw7DQogCX0NCi0JbXV0ZXhfdW5sb2NrKCZpLT5pX211dGV4KTsNCisJaHBmc19hZGRf cG9zKGksICZmaWxwLT5mX3Bvcyk7DQogb2s6DQorCWZpbHAtPmZfcG9zID0gbmV3X29mZjsNCiAJ aHBmc191bmxvY2socyk7DQotCXJldHVybiBmaWxwLT5mX3BvcyA9IG5ld19vZmY7DQotZmFpbDoN CiAJbXV0ZXhfdW5sb2NrKCZpLT5pX211dGV4KTsNCisJcmV0dXJuIG5ld19vZmY7DQorZmFpbDoN CiAJLypwcmludGsoImlsbGVnYWwgbHNlZWs6ICUwMTZsbHhcbiIsIG5ld19vZmYpOyovDQogCWhw ZnNfdW5sb2NrKHMpOw0KKwltdXRleF91bmxvY2soJmktPmlfbXV0ZXgpOw0KIAlyZXR1cm4gLUVT UElQRTsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvZnMvaHBmcy9ocGZzX2ZuLmggYi9mcy9ocGZzL2hw ZnNfZm4uaA0KaW5kZXggZGU5NDYxNy4uZjFmMmNhNyAxMDA2NDQNCi0tLSBhL2ZzL2hwZnMvaHBm c19mbi5oDQorKysgYi9mcy9ocGZzL2hwZnNfZm4uaA0KQEAgLTMxNCw3ICszMTQsNyBAQCBzdGF0 aWMgaW5saW5lIHN0cnVjdCBocGZzX3NiX2luZm8gKmhwZnNfc2Ioc3RydWN0IHN1cGVyX2Jsb2Nr ICpzYikNCiBfX3ByaW50ZigyLCAzKQ0KIHZvaWQgaHBmc19lcnJvcihzdHJ1Y3Qgc3VwZXJfYmxv Y2sgKiwgY29uc3QgY2hhciAqLCAuLi4pOw0KIGludCBocGZzX3N0b3BfY3ljbGVzKHN0cnVjdCBz dXBlcl9ibG9jayAqLCBpbnQsIGludCAqLCBpbnQgKiwgY2hhciAqKTsNCi11bnNpZ25lZCBocGZz X2NvdW50X29uZV9iaXRtYXAoc3RydWN0IHN1cGVyX2Jsb2NrICosIHNlY25vKTsNCit1bnNpZ25l ZCBocGZzX2dldF9mcmVlX2Rub2RlcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKik7DQogDQogLyoNCiAg KiBsb2NhbCB0aW1lIChIUEZTKSB0byBHTVQgKFVuaXgpDQpkaWZmIC0tZ2l0IGEvZnMvaHBmcy9z dXBlci5jIGIvZnMvaHBmcy9zdXBlci5jDQppbmRleCBmNzYwYzE1Li5iMDNlNzY2IDEwMDY0NA0K LS0tIGEvZnMvaHBmcy9zdXBlci5jDQorKysgYi9mcy9ocGZzL3N1cGVyLmMNCkBAIC0xMTUsNyAr MTE1LDcgQEAgc3RhdGljIHZvaWQgaHBmc19wdXRfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpz KQ0KIAlrZnJlZShzYmkpOw0KIH0NCiANCi11bnNpZ25lZCBocGZzX2NvdW50X29uZV9iaXRtYXAo c3RydWN0IHN1cGVyX2Jsb2NrICpzLCBzZWNubyBzZWNubykNCitzdGF0aWMgdW5zaWduZWQgaHBm c19jb3VudF9vbmVfYml0bWFwKHN0cnVjdCBzdXBlcl9ibG9jayAqcywgc2Vjbm8gc2Vjbm8pDQog ew0KIAlzdHJ1Y3QgcXVhZF9idWZmZXJfaGVhZCBxYmg7DQogCXVuc2lnbmVkIGxvbmcgKmJpdHM7 DQpAQCAtMTIzLDcgKzEyMyw3IEBAIHVuc2lnbmVkIGhwZnNfY291bnRfb25lX2JpdG1hcChzdHJ1 Y3Qgc3VwZXJfYmxvY2sgKnMsIHNlY25vIHNlY25vKQ0KIA0KIAliaXRzID0gaHBmc19tYXBfNHNl Y3RvcnMocywgc2Vjbm8sICZxYmgsIDQpOw0KIAlpZiAoIWJpdHMpDQotCQlyZXR1cm4gMDsNCisJ CXJldHVybiAodW5zaWduZWQpLTE7DQogCWNvdW50ID0gYml0bWFwX3dlaWdodChiaXRzLCAyMDQ4 ICogQklUU19QRVJfQllURSk7DQogCWhwZnNfYnJlbHNlNCgmcWJoKTsNCiAJcmV0dXJuIGNvdW50 Ow0KQEAgLTEzNCwyOSArMTM0LDQ1IEBAIHN0YXRpYyB1bnNpZ25lZCBjb3VudF9iaXRtYXBzKHN0 cnVjdCBzdXBlcl9ibG9jayAqcykNCiAJdW5zaWduZWQgbiwgY291bnQsIG5fYmFuZHM7DQogCW5f YmFuZHMgPSAoaHBmc19zYihzKS0+c2JfZnNfc2l6ZSArIDB4M2ZmZikgPj4gMTQ7DQogCWNvdW50 ID0gMDsNCi0JZm9yIChuID0gMDsgbiA8IG5fYmFuZHM7IG4rKykNCi0JCWNvdW50ICs9IGhwZnNf Y291bnRfb25lX2JpdG1hcChzLCBsZTMyX3RvX2NwdShocGZzX3NiKHMpLT5zYl9ibXBfZGlyW25d KSk7DQorCWZvciAobiA9IDA7IG4gPCBuX2JhbmRzOyBuKyspIHsNCisJCXVuc2lnbmVkIGM7DQor CQljID0gaHBmc19jb3VudF9vbmVfYml0bWFwKHMsIGxlMzJfdG9fY3B1KGhwZnNfc2IocyktPnNi X2JtcF9kaXJbbl0pKTsNCisJCWlmIChjICE9ICh1bnNpZ25lZCktMSkNCisJCQljb3VudCArPSBj Ow0KKwl9DQogCXJldHVybiBjb3VudDsNCiB9DQogDQordW5zaWduZWQgaHBmc19nZXRfZnJlZV9k bm9kZXMoc3RydWN0IHN1cGVyX2Jsb2NrICpzKQ0KK3sNCisJc3RydWN0IGhwZnNfc2JfaW5mbyAq c2JpID0gaHBmc19zYihzKTsNCisJaWYgKHNiaS0+c2Jfbl9mcmVlX2Rub2RlcyA9PSAodW5zaWdu ZWQpLTEpIHsNCisJCXVuc2lnbmVkIGMgPSBocGZzX2NvdW50X29uZV9iaXRtYXAocywgc2JpLT5z Yl9kbWFwKTsNCisJCWlmIChjID09ICh1bnNpZ25lZCktMSkNCisJCQlyZXR1cm4gMDsNCisJCXNi aS0+c2Jfbl9mcmVlX2Rub2RlcyA9IGM7DQorCX0NCisJcmV0dXJuIHNiaS0+c2Jfbl9mcmVlX2Ru b2RlczsNCit9DQorDQogc3RhdGljIGludCBocGZzX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50 cnksIHN0cnVjdCBrc3RhdGZzICpidWYpDQogew0KIAlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnMgPSBk ZW50cnktPmRfc2I7DQogCXN0cnVjdCBocGZzX3NiX2luZm8gKnNiaSA9IGhwZnNfc2Iocyk7DQog CXU2NCBpZCA9IGh1Z2VfZW5jb2RlX2RldihzLT5zX2JkZXYtPmJkX2Rldik7DQorDQogCWhwZnNf bG9jayhzKTsNCiANCi0JLyppZiAoc2JpLT5zYl9uX2ZyZWUgPT0gLTEpIHsqLw0KKwlpZiAoc2Jp LT5zYl9uX2ZyZWUgPT0gKHVuc2lnbmVkKS0xKQ0KIAkJc2JpLT5zYl9uX2ZyZWUgPSBjb3VudF9i aXRtYXBzKHMpOw0KLQkJc2JpLT5zYl9uX2ZyZWVfZG5vZGVzID0gaHBmc19jb3VudF9vbmVfYml0 bWFwKHMsIHNiaS0+c2JfZG1hcCk7DQotCS8qfSovDQorDQogCWJ1Zi0+Zl90eXBlID0gcy0+c19t YWdpYzsNCiAJYnVmLT5mX2JzaXplID0gNTEyOw0KIAlidWYtPmZfYmxvY2tzID0gc2JpLT5zYl9m c19zaXplOw0KIAlidWYtPmZfYmZyZWUgPSBzYmktPnNiX25fZnJlZTsNCiAJYnVmLT5mX2JhdmFp bCA9IHNiaS0+c2Jfbl9mcmVlOw0KIAlidWYtPmZfZmlsZXMgPSBzYmktPnNiX2RpcmJhbmRfc2l6 ZSAvIDQ7DQotCWJ1Zi0+Zl9mZnJlZSA9IHNiaS0+c2Jfbl9mcmVlX2Rub2RlczsNCisJYnVmLT5m X2ZmcmVlID0gaHBmc19nZXRfZnJlZV9kbm9kZXMocyk7DQogCWJ1Zi0+Zl9mc2lkLnZhbFswXSA9 ICh1MzIpaWQ7DQogCWJ1Zi0+Zl9mc2lkLnZhbFsxXSA9ICh1MzIpKGlkID4+IDMyKTsNCiAJYnVm LT5mX25hbWVsZW4gPSAyNTQ7DQpkaWZmIC0tZ2l0IGEvZnMvbG9ja2Qvc3ZjbG9jay5jIGIvZnMv bG9ja2Qvc3ZjbG9jay5jDQppbmRleCBjZDg3MDNkLi5jYjdiMTg2IDEwMDY0NA0KLS0tIGEvZnMv bG9ja2Qvc3ZjbG9jay5jDQorKysgYi9mcy9sb2NrZC9zdmNsb2NrLmMNCkBAIC03NDEsNiArNzQx LDcgQEAgbmxtc3ZjX2dyYW50X2Jsb2NrZWQoc3RydWN0IG5sbV9ibG9jayAqYmxvY2spDQogCXN0 cnVjdCBubG1fZmlsZQkJKmZpbGUgPSBibG9jay0+Yl9maWxlOw0KIAlzdHJ1Y3QgbmxtX2xvY2sJ CSpsb2NrID0gJmJsb2NrLT5iX2NhbGwtPmFfYXJncy5sb2NrOw0KIAlpbnQJCQllcnJvcjsNCisJ bG9mZl90CQkJZmxfc3RhcnQsIGZsX2VuZDsNCiANCiAJZHByaW50aygibG9ja2Q6IGdyYW50IGJs b2NrZWQgbG9jayAlcFxuIiwgYmxvY2spOw0KIA0KQEAgLTc1OCw5ICs3NTksMTYgQEAgbmxtc3Zj X2dyYW50X2Jsb2NrZWQoc3RydWN0IG5sbV9ibG9jayAqYmxvY2spDQogCX0NCiANCiAJLyogVHJ5 IHRoZSBsb2NrIG9wZXJhdGlvbiBhZ2FpbiAqLw0KKwkvKiB2ZnNfbG9ja19maWxlKCkgY2FuIG1h bmdsZSBmbF9zdGFydCBhbmQgZmxfZW5kLCBidXQgd2UgbmVlZA0KKwkgKiB0aGVtIHVuY2hhbmdl ZCBmb3IgdGhlIEdSQU5UX01TRw0KKwkgKi8NCiAJbG9jay0+ZmwuZmxfZmxhZ3MgfD0gRkxfU0xF RVA7DQorCWZsX3N0YXJ0ID0gbG9jay0+ZmwuZmxfc3RhcnQ7DQorCWZsX2VuZCA9IGxvY2stPmZs LmZsX2VuZDsNCiAJZXJyb3IgPSB2ZnNfbG9ja19maWxlKGZpbGUtPmZfZmlsZSwgRl9TRVRMSywg JmxvY2stPmZsLCBOVUxMKTsNCiAJbG9jay0+ZmwuZmxfZmxhZ3MgJj0gfkZMX1NMRUVQOw0KKwls b2NrLT5mbC5mbF9zdGFydCA9IGZsX3N0YXJ0Ow0KKwlsb2NrLT5mbC5mbF9lbmQgPSBmbF9lbmQ7 DQogDQogCXN3aXRjaCAoZXJyb3IpIHsNCiAJY2FzZSAwOg0KZGlmZiAtLWdpdCBhL2ZzL25mcy9i bG9ja2xheW91dC9leHRlbnRzLmMgYi9mcy9uZnMvYmxvY2tsYXlvdXQvZXh0ZW50cy5jDQppbmRl eCA0ZTJlZTk5Li5iYjE1Y2NjIDEwMDY0NA0KLS0tIGEvZnMvbmZzL2Jsb2NrbGF5b3V0L2V4dGVu dHMuYw0KKysrIGIvZnMvbmZzL2Jsb2NrbGF5b3V0L2V4dGVudHMuYw0KQEAgLTQ0LDcgKzQ0LDcg QEANCiBzdGF0aWMgaW5saW5lIHNlY3Rvcl90IG5vcm1hbGl6ZShzZWN0b3JfdCBzLCBpbnQgYmFz ZSkNCiB7DQogCXNlY3Rvcl90IHRtcCA9IHM7IC8qIFNpbmNlIGRvX2RpdiBtb2RpZmllcyBpdHMg YXJndW1lbnQgKi8NCi0JcmV0dXJuIHMgLSBkb19kaXYodG1wLCBiYXNlKTsNCisJcmV0dXJuIHMg LSBzZWN0b3JfZGl2KHRtcCwgYmFzZSk7DQogfQ0KIA0KIHN0YXRpYyBpbmxpbmUgc2VjdG9yX3Qg bm9ybWFsaXplX3VwKHNlY3Rvcl90IHMsIGludCBiYXNlKQ0KZGlmZiAtLWdpdCBhL2ZzL25mcy9u ZnM0cHJvYy5jIGIvZnMvbmZzL25mczRwcm9jLmMNCmluZGV4IDNkMDI5MzEuLjVhZWEzMGEgMTAw NjQ0DQotLS0gYS9mcy9uZnMvbmZzNHByb2MuYw0KKysrIGIvZnMvbmZzL25mczRwcm9jLmMNCkBA IC02MTk3LDcgKzYxOTcsNyBAQCBuZnM0MV9wcm9jX3NlY2luZm9fbm9fbmFtZShzdHJ1Y3QgbmZz X3NlcnZlciAqc2VydmVyLCBzdHJ1Y3QgbmZzX2ZoICpmaGFuZGxlLA0KIAkJc3dpdGNoIChlcnIp IHsNCiAJCWNhc2UgMDoNCiAJCWNhc2UgLU5GUzRFUlJfV1JPTkdTRUM6DQotCQljYXNlIC1ORlM0 RVJSX05PVFNVUFA6DQorCQljYXNlIC1FTk9UU1VQUDoNCiAJCQlnb3RvIG91dDsNCiAJCWRlZmF1 bHQ6DQogCQkJZXJyID0gbmZzNF9oYW5kbGVfZXhjZXB0aW9uKHNlcnZlciwgZXJyLCAmZXhjZXB0 aW9uKTsNCkBAIC02MjI5LDcgKzYyMjksNyBAQCBuZnM0MV9maW5kX3Jvb3Rfc2VjKHN0cnVjdCBu ZnNfc2VydmVyICpzZXJ2ZXIsIHN0cnVjdCBuZnNfZmggKmZoYW5kbGUsDQogCSAqIEZhbGwgYmFj ayBvbiAiZ3Vlc3MgYW5kIGNoZWNrIiBtZXRob2QgaWYNCiAJICogdGhlIHNlcnZlciBkb2Vzbid0 IHN1cHBvcnQgU0VDSU5GT19OT19OQU1FDQogCSAqLw0KLQlpZiAoZXJyID09IC1ORlM0RVJSX1dS T05HU0VDIHx8IGVyciA9PSAtTkZTNEVSUl9OT1RTVVBQKSB7DQorCWlmIChlcnIgPT0gLU5GUzRF UlJfV1JPTkdTRUMgfHwgZXJyID09IC1FTk9UU1VQUCkgew0KIAkJZXJyID0gbmZzNF9maW5kX3Jv b3Rfc2VjKHNlcnZlciwgZmhhbmRsZSwgaW5mbyk7DQogCQlnb3RvIG91dF9mcmVlcGFnZTsNCiAJ fQ0KZGlmZiAtLWdpdCBhL2ZzL25mcy9uZnM0eGRyLmMgYi9mcy9uZnMvbmZzNHhkci5jDQppbmRl eCAwMDgxOGM4Li40NDc5ZjY2IDEwMDY0NA0KLS0tIGEvZnMvbmZzL25mczR4ZHIuYw0KKysrIGIv ZnMvbmZzL25mczR4ZHIuYw0KQEAgLTMwNTYsNyArMzA1Niw4IEBAIG91dF9vdmVyZmxvdzoNCiAJ cmV0dXJuIC1FSU87DQogfQ0KIA0KLXN0YXRpYyBpbnQgZGVjb2RlX29wX2hkcihzdHJ1Y3QgeGRy X3N0cmVhbSAqeGRyLCBlbnVtIG5mc19vcG51bTQgZXhwZWN0ZWQpDQorc3RhdGljIGJvb2wgX19k ZWNvZGVfb3BfaGRyKHN0cnVjdCB4ZHJfc3RyZWFtICp4ZHIsIGVudW0gbmZzX29wbnVtNCBleHBl Y3RlZCwNCisJCWludCAqbmZzX3JldHZhbCkNCiB7DQogCV9fYmUzMiAqcDsNCiAJdWludDMyX3Qg b3BudW07DQpAQCAtMzA2NiwxOSArMzA2NywzMiBAQCBzdGF0aWMgaW50IGRlY29kZV9vcF9oZHIo c3RydWN0IHhkcl9zdHJlYW0gKnhkciwgZW51bSBuZnNfb3BudW00IGV4cGVjdGVkKQ0KIAlpZiAo dW5saWtlbHkoIXApKQ0KIAkJZ290byBvdXRfb3ZlcmZsb3c7DQogCW9wbnVtID0gYmUzMl90b19j cHVwKHArKyk7DQotCWlmIChvcG51bSAhPSBleHBlY3RlZCkgew0KLQkJZHByaW50aygibmZzOiBT ZXJ2ZXIgcmV0dXJuZWQgb3BlcmF0aW9uIg0KLQkJCSIgJWQgYnV0IHdlIGlzc3VlZCBhIHJlcXVl c3QgZm9yICVkXG4iLA0KLQkJCQlvcG51bSwgZXhwZWN0ZWQpOw0KLQkJcmV0dXJuIC1FSU87DQot CX0NCisJaWYgKHVubGlrZWx5KG9wbnVtICE9IGV4cGVjdGVkKSkNCisJCWdvdG8gb3V0X2JhZF9v cGVyYXRpb247DQogCW5mc2VyciA9IGJlMzJfdG9fY3B1cChwKTsNCi0JaWYgKG5mc2VyciAhPSBO RlNfT0spDQotCQlyZXR1cm4gbmZzNF9zdGF0X3RvX2Vycm5vKG5mc2Vycik7DQotCXJldHVybiAw Ow0KKwlpZiAobmZzZXJyID09IE5GU19PSykNCisJCSpuZnNfcmV0dmFsID0gMDsNCisJZWxzZQ0K KwkJKm5mc19yZXR2YWwgPSBuZnM0X3N0YXRfdG9fZXJybm8obmZzZXJyKTsNCisJcmV0dXJuIHRy dWU7DQorb3V0X2JhZF9vcGVyYXRpb246DQorCWRwcmludGsoIm5mczogU2VydmVyIHJldHVybmVk IG9wZXJhdGlvbiINCisJCSIgJWQgYnV0IHdlIGlzc3VlZCBhIHJlcXVlc3QgZm9yICVkXG4iLA0K KwkJCW9wbnVtLCBleHBlY3RlZCk7DQorCSpuZnNfcmV0dmFsID0gLUVSRU1PVEVJTzsNCisJcmV0 dXJuIGZhbHNlOw0KIG91dF9vdmVyZmxvdzoNCiAJcHJpbnRfb3ZlcmZsb3dfbXNnKF9fZnVuY19f LCB4ZHIpOw0KLQlyZXR1cm4gLUVJTzsNCisJKm5mc19yZXR2YWwgPSAtRUlPOw0KKwlyZXR1cm4g ZmFsc2U7DQorfQ0KKw0KK3N0YXRpYyBpbnQgZGVjb2RlX29wX2hkcihzdHJ1Y3QgeGRyX3N0cmVh bSAqeGRyLCBlbnVtIG5mc19vcG51bTQgZXhwZWN0ZWQpDQorew0KKwlpbnQgcmV0dmFsOw0KKw0K KwlfX2RlY29kZV9vcF9oZHIoeGRyLCBleHBlY3RlZCwgJnJldHZhbCk7DQorCXJldHVybiByZXR2 YWw7DQogfQ0KIA0KIC8qIER1bW15IHJvdXRpbmUgKi8NCkBAIC00NzQ0LDExICs0NzU4LDEyIEBA IHN0YXRpYyBpbnQgZGVjb2RlX29wZW4oc3RydWN0IHhkcl9zdHJlYW0gKnhkciwgc3RydWN0IG5m c19vcGVucmVzICpyZXMpDQogCXVpbnQzMl90IHNhdmV3b3JkcywgYm1sZW4sIGk7DQogCWludCBz dGF0dXM7DQogDQotCXN0YXR1cyA9IGRlY29kZV9vcF9oZHIoeGRyLCBPUF9PUEVOKTsNCi0JaWYg KHN0YXR1cyAhPSAtRUlPKQ0KLQkJbmZzX2luY3JlbWVudF9vcGVuX3NlcWlkKHN0YXR1cywgcmVz LT5zZXFpZCk7DQotCWlmICghc3RhdHVzKQ0KLQkJc3RhdHVzID0gZGVjb2RlX3N0YXRlaWQoeGRy LCAmcmVzLT5zdGF0ZWlkKTsNCisJaWYgKCFfX2RlY29kZV9vcF9oZHIoeGRyLCBPUF9PUEVOLCAm c3RhdHVzKSkNCisJCXJldHVybiBzdGF0dXM7DQorCW5mc19pbmNyZW1lbnRfb3Blbl9zZXFpZChz dGF0dXMsIHJlcy0+c2VxaWQpOw0KKwlpZiAoc3RhdHVzKQ0KKwkJcmV0dXJuIHN0YXR1czsNCisJ c3RhdHVzID0gZGVjb2RlX3N0YXRlaWQoeGRyLCAmcmVzLT5zdGF0ZWlkKTsNCiAJaWYgKHVubGlr ZWx5KHN0YXR1cykpDQogCQlyZXR1cm4gc3RhdHVzOw0KIA0KZGlmZiAtLWdpdCBhL2ZzL29jZnMy L2ZpbGUuYyBiL2ZzL29jZnMyL2ZpbGUuYw0KaW5kZXggMWM3ZDQ1ZS4uZDIwZDY0YyAxMDA2NDQN Ci0tLSBhL2ZzL29jZnMyL2ZpbGUuYw0KKysrIGIvZnMvb2NmczIvZmlsZS5jDQpAQCAtMjM4OSw4 ICsyMzg5LDggQEAgb3V0X2RpbzoNCiANCiAJaWYgKCgoZmlsZS0+Zl9mbGFncyAmIE9fRFNZTkMp ICYmICFkaXJlY3RfaW8pIHx8IElTX1NZTkMoaW5vZGUpIHx8DQogCSAgICAoKGZpbGUtPmZfZmxh Z3MgJiBPX0RJUkVDVCkgJiYgIWRpcmVjdF9pbykpIHsNCi0JCXJldCA9IGZpbGVtYXBfZmRhdGF3 cml0ZV9yYW5nZShmaWxlLT5mX21hcHBpbmcsIHBvcywNCi0JCQkJCSAgICAgICBwb3MgKyBjb3Vu dCAtIDEpOw0KKwkJcmV0ID0gZmlsZW1hcF9mZGF0YXdyaXRlX3JhbmdlKGZpbGUtPmZfbWFwcGlu ZywgKnBwb3MsDQorCQkJCQkgICAgICAgKnBwb3MgKyBjb3VudCAtIDEpOw0KIAkJaWYgKHJldCA8 IDApDQogCQkJd3JpdHRlbiA9IHJldDsNCiANCkBAIC0yNDAzLDggKzI0MDMsOCBAQCBvdXRfZGlv Og0KIAkJfQ0KIA0KIAkJaWYgKCFyZXQpDQotCQkJcmV0ID0gZmlsZW1hcF9mZGF0YXdhaXRfcmFu Z2UoZmlsZS0+Zl9tYXBwaW5nLCBwb3MsDQotCQkJCQkJICAgICAgcG9zICsgY291bnQgLSAxKTsN CisJCQlyZXQgPSBmaWxlbWFwX2ZkYXRhd2FpdF9yYW5nZShmaWxlLT5mX21hcHBpbmcsICpwcG9z LA0KKwkJCQkJCSAgICAgICpwcG9zICsgY291bnQgLSAxKTsNCiAJfQ0KIA0KIAkvKg0KZGlmZiAt LWdpdCBhL2ZzL29jZnMyL3F1b3RhX2dsb2JhbC5jIGIvZnMvb2NmczIvcXVvdGFfZ2xvYmFsLmMN CmluZGV4IDkyZmNkNTcuLmE0MGU1Y2UgMTAwNjQ0DQotLS0gYS9mcy9vY2ZzMi9xdW90YV9nbG9i YWwuYw0KKysrIGIvZnMvb2NmczIvcXVvdGFfZ2xvYmFsLmMNCkBAIC03MTIsNiArNzEyLDEyIEBA IHN0YXRpYyBpbnQgb2NmczJfcmVsZWFzZV9kcXVvdChzdHJ1Y3QgZHF1b3QgKmRxdW90KQ0KIAkg Ki8NCiAJaWYgKHN0YXR1cyA8IDApDQogCQltbG9nX2Vycm5vKHN0YXR1cyk7DQorCS8qDQorCSAq IENsZWFyIGRxX29mZiBzbyB0aGF0IHdlIHNlYXJjaCBmb3IgdGhlIHN0cnVjdHVyZSBpbiBxdW90 YSBmaWxlIG5leHQNCisJICogdGltZSB3ZSBhY3F1aXJlIGl0LiBUaGUgc3RydWN0dXJlIG1pZ2h0 IGJlIGRlbGV0ZWQgYW5kIHJlYWxsb2NhdGVkDQorCSAqIGVsc2V3aGVyZSBieSBhbm90aGVyIG5v ZGUgd2hpbGUgb3VyIGRxdW90IHN0cnVjdHVyZSBpcyBvbiBmcmVlbGlzdC4NCisJICovDQorCWRx dW90LT5kcV9vZmYgPSAwOw0KIAljbGVhcl9iaXQoRFFfQUNUSVZFX0IsICZkcXVvdC0+ZHFfZmxh Z3MpOw0KIG91dF90cmFuczoNCiAJb2NmczJfY29tbWl0X3RyYW5zKG9zYiwgaGFuZGxlKTsNCkBA IC03NTAsMTYgKzc1NiwxNyBAQCBzdGF0aWMgaW50IG9jZnMyX2FjcXVpcmVfZHF1b3Qoc3RydWN0 IGRxdW90ICpkcXVvdCkNCiAJc3RhdHVzID0gb2NmczJfbG9ja19nbG9iYWxfcWYoaW5mbywgMSk7 DQogCWlmIChzdGF0dXMgPCAwKQ0KIAkJZ290byBvdXQ7DQotCWlmICghdGVzdF9iaXQoRFFfUkVB RF9CLCAmZHF1b3QtPmRxX2ZsYWdzKSkgew0KLQkJc3RhdHVzID0gb2NmczJfcWluZm9fbG9jayhp bmZvLCAwKTsNCi0JCWlmIChzdGF0dXMgPCAwKQ0KLQkJCWdvdG8gb3V0X2RxOw0KLQkJc3RhdHVz ID0gcXRyZWVfcmVhZF9kcXVvdCgmaW5mby0+ZHFpX2dpLCBkcXVvdCk7DQotCQlvY2ZzMl9xaW5m b191bmxvY2soaW5mbywgMCk7DQotCQlpZiAoc3RhdHVzIDwgMCkNCi0JCQlnb3RvIG91dF9kcTsN Ci0JfQ0KLQlzZXRfYml0KERRX1JFQURfQiwgJmRxdW90LT5kcV9mbGFncyk7DQorCXN0YXR1cyA9 IG9jZnMyX3FpbmZvX2xvY2soaW5mbywgMCk7DQorCWlmIChzdGF0dXMgPCAwKQ0KKwkJZ290byBv dXRfZHE7DQorCS8qDQorCSAqIFdlIGFsd2F5cyB3YW50IHRvIHJlYWQgZHF1b3Qgc3RydWN0dXJl IGZyb20gZGlzayBiZWNhdXNlIHdlIGRvbid0DQorCSAqIGtub3cgd2hhdCBoYXBwZW5lZCB3aXRo IGl0IHdoaWxlIGl0IHdhcyBvbiBmcmVlbGlzdC4NCisJICovDQorCXN0YXR1cyA9IHF0cmVlX3Jl YWRfZHF1b3QoJmluZm8tPmRxaV9naSwgZHF1b3QpOw0KKwlvY2ZzMl9xaW5mb191bmxvY2soaW5m bywgMCk7DQorCWlmIChzdGF0dXMgPCAwKQ0KKwkJZ290byBvdXRfZHE7DQogDQogCU9DRlMyX0RR VU9UKGRxdW90KS0+ZHFfdXNlX2NvdW50Kys7DQogCU9DRlMyX0RRVU9UKGRxdW90KS0+ZHFfb3Jp Z3NwYWNlID0gZHF1b3QtPmRxX2RxYi5kcWJfY3Vyc3BhY2U7DQpkaWZmIC0tZ2l0IGEvZnMvb2Nm czIvcXVvdGFfbG9jYWwuYyBiL2ZzL29jZnMyL3F1b3RhX2xvY2FsLmMNCmluZGV4IGYxMDBiZjcu LmI2Y2ZjZjIgMTAwNjQ0DQotLS0gYS9mcy9vY2ZzMi9xdW90YV9sb2NhbC5jDQorKysgYi9mcy9v Y2ZzMi9xdW90YV9sb2NhbC5jDQpAQCAtMTMwMCwxMCArMTMwMCw2IEBAIGludCBvY2ZzMl9sb2Nh bF9yZWxlYXNlX2RxdW90KGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBkcXVvdCAqZHF1b3QpDQog CW9jZnMyX2pvdXJuYWxfZGlydHkoaGFuZGxlLCBvZC0+ZHFfY2h1bmstPnFjX2hlYWRlcmJoKTsN CiANCiBvdXQ6DQotCS8qIENsZWFyIHRoZSByZWFkIGJpdCBzbyB0aGF0IG5leHQgdGltZSBzb21l b25lIHVzZXMgdGhpcw0KLQkgKiBkcXVvdCBoZSByZWFkcyBmcmVzaCBpbmZvIGZyb20gZGlzayBh bmQgYWxsb2NhdGVzIGxvY2FsDQotCSAqIGRxdW90IHN0cnVjdHVyZSAqLw0KLQljbGVhcl9iaXQo RFFfUkVBRF9CLCAmZHF1b3QtPmRxX2ZsYWdzKTsNCiAJcmV0dXJuIHN0YXR1czsNCiB9DQogDQpk aWZmIC0tZ2l0IGEvZnMvcXVvdGEvZHF1b3QuYyBiL2ZzL3F1b3RhL2RxdW90LmMNCmluZGV4IDVi NTcyYzguLjNkNWQ3MTcgMTAwNjQ0DQotLS0gYS9mcy9xdW90YS9kcXVvdC5jDQorKysgYi9mcy9x dW90YS9kcXVvdC5jDQpAQCAtNTgwLDkgKzU4MCwxNyBAQCBpbnQgZHF1b3Rfc2Nhbl9hY3RpdmUo c3RydWN0IHN1cGVyX2Jsb2NrICpzYiwNCiAJCWRxc3RhdHNfaW5jKERRU1RfTE9PS1VQUyk7DQog CQlkcXB1dChvbGRfZHF1b3QpOw0KIAkJb2xkX2RxdW90ID0gZHF1b3Q7DQotCQlyZXQgPSBmbihk cXVvdCwgcHJpdik7DQotCQlpZiAocmV0IDwgMCkNCi0JCQlnb3RvIG91dDsNCisJCS8qDQorCQkg KiAtPnJlbGVhc2VfZHF1b3QoKSBjYW4gYmUgcmFjaW5nIHdpdGggdXMuIE91ciByZWZlcmVuY2UN CisJCSAqIHByb3RlY3RzIHVzIGZyb20gbmV3IGNhbGxzIHRvIGl0IHNvIGp1c3Qgd2FpdCBmb3Ig YW55DQorCQkgKiBvdXRzdGFuZGluZyBjYWxsIGFuZCByZWNoZWNrIHRoZSBEUV9BQ1RJVkVfQiBh ZnRlciB0aGF0Lg0KKwkJICovDQorCQl3YWl0X29uX2RxdW90KGRxdW90KTsNCisJCWlmICh0ZXN0 X2JpdChEUV9BQ1RJVkVfQiwgJmRxdW90LT5kcV9mbGFncykpIHsNCisJCQlyZXQgPSBmbihkcXVv dCwgcHJpdik7DQorCQkJaWYgKHJldCA8IDApDQorCQkJCWdvdG8gb3V0Ow0KKwkJfQ0KIAkJc3Bp bl9sb2NrKCZkcV9saXN0X2xvY2spOw0KIAkJLyogV2UgYXJlIHNhZmUgdG8gY29udGludWUgbm93 IGJlY2F1c2Ugb3VyIGRxdW90IGNvdWxkIG5vdA0KIAkJICogYmUgbW92ZWQgb3V0IG9mIHRoZSBp bnVzZSBsaXN0IHdoaWxlIHdlIGhvbGQgdGhlIHJlZmVyZW5jZSAqLw0KZGlmZiAtLWdpdCBhL2Zz L3NwbGljZS5jIGIvZnMvc3BsaWNlLmMNCmluZGV4IDU4YWI5MTguLjcxNDQ3MWQgMTAwNjQ0DQot LS0gYS9mcy9zcGxpY2UuYw0KKysrIGIvZnMvc3BsaWNlLmMNCkBAIC01NTQsNiArNTU0LDI0IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGlwZV9idWZfb3BlcmF0aW9ucyBkZWZhdWx0X3BpcGVfYnVm X29wcyA9IHsNCiAJLmdldCA9IGdlbmVyaWNfcGlwZV9idWZfZ2V0LA0KIH07DQogDQorc3RhdGlj IGludCBnZW5lcmljX3BpcGVfYnVmX25vc3RlYWwoc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlw ZSwNCisJCQkJICAgIHN0cnVjdCBwaXBlX2J1ZmZlciAqYnVmKQ0KK3sNCisJcmV0dXJuIDE7DQor fQ0KKw0KKy8qIFBpcGUgYnVmZmVyIG9wZXJhdGlvbnMgZm9yIGEgc29ja2V0IGFuZCBzaW1pbGFy LiAqLw0KK2NvbnN0IHN0cnVjdCBwaXBlX2J1Zl9vcGVyYXRpb25zIG5vc3RlYWxfcGlwZV9idWZf b3BzID0gew0KKwkuY2FuX21lcmdlID0gMCwNCisJLm1hcCA9IGdlbmVyaWNfcGlwZV9idWZfbWFw LA0KKwkudW5tYXAgPSBnZW5lcmljX3BpcGVfYnVmX3VubWFwLA0KKwkuY29uZmlybSA9IGdlbmVy aWNfcGlwZV9idWZfY29uZmlybSwNCisJLnJlbGVhc2UgPSBnZW5lcmljX3BpcGVfYnVmX3JlbGVh c2UsDQorCS5zdGVhbCA9IGdlbmVyaWNfcGlwZV9idWZfbm9zdGVhbCwNCisJLmdldCA9IGdlbmVy aWNfcGlwZV9idWZfZ2V0LA0KK307DQorRVhQT1JUX1NZTUJPTChub3N0ZWFsX3BpcGVfYnVmX29w cyk7DQorDQogc3RhdGljIHNzaXplX3Qga2VybmVsX3JlYWR2KHN0cnVjdCBmaWxlICpmaWxlLCBj b25zdCBzdHJ1Y3QgaW92ZWMgKnZlYywNCiAJCQkgICAgdW5zaWduZWQgbG9uZyB2bGVuLCBsb2Zm X3Qgb2Zmc2V0KQ0KIHsNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLWdjYzQu aCBiL2luY2x1ZGUvbGludXgvY29tcGlsZXItZ2NjNC5oDQppbmRleCA2NDNkNmM0Li5lMmEzNjBh IDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9jb21waWxlci1nY2M0LmgNCisrKyBiL2luY2x1 ZGUvbGludXgvY29tcGlsZXItZ2NjNC5oDQpAQCAtMzksMTEgKzM5LDcgQEANCiAgKg0KICAqIChh c20gZ290byBpcyBhdXRvbWF0aWNhbGx5IHZvbGF0aWxlIC0gdGhlIG5hbWluZyByZWZsZWN0cyB0 aGlzLikNCiAgKi8NCi0jaWYgR0NDX1ZFUlNJT04gPD0gNDA4MDENCi0jIGRlZmluZSBhc21fdm9s YXRpbGVfZ290byh4Li4uKQlkbyB7IGFzbSBnb3RvKHgpOyBhc20gKCIiKTsgfSB3aGlsZSAoMCkN Ci0jZWxzZQ0KLSMgZGVmaW5lIGFzbV92b2xhdGlsZV9nb3RvKHguLi4pCWRvIHsgYXNtIGdvdG8o eCk7IH0gd2hpbGUgKDApDQotI2VuZGlmDQorI2RlZmluZSBhc21fdm9sYXRpbGVfZ290byh4Li4u KQlkbyB7IGFzbSBnb3RvKHgpOyBhc20gKCIiKTsgfSB3aGlsZSAoMCkNCiANCiAjaWYgX19HTlVD X01JTk9SX18gPj0gNQ0KIC8qDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9qaWZmaWVzLmgg Yi9pbmNsdWRlL2xpbnV4L2ppZmZpZXMuaA0KaW5kZXggMjY1ZTJjMy4uZjVkZjNkYyAxMDA2NDQN Ci0tLSBhL2luY2x1ZGUvbGludXgvamlmZmllcy5oDQorKysgYi9pbmNsdWRlL2xpbnV4L2ppZmZp ZXMuaA0KQEAgLTEwNiwxMyArMTA2LDEzIEBAIHN0YXRpYyBpbmxpbmUgdTY0IGdldF9qaWZmaWVz XzY0KHZvaWQpDQogI2RlZmluZSB0aW1lX2FmdGVyKGEsYikJCVwNCiAJKHR5cGVjaGVjayh1bnNp Z25lZCBsb25nLCBhKSAmJiBcDQogCSB0eXBlY2hlY2sodW5zaWduZWQgbG9uZywgYikgJiYgXA0K LQkgKChsb25nKShiKSAtIChsb25nKShhKSA8IDApKQ0KKwkgKChsb25nKSgoYikgLSAoYSkpIDwg MCkpDQogI2RlZmluZSB0aW1lX2JlZm9yZShhLGIpCXRpbWVfYWZ0ZXIoYixhKQ0KIA0KICNkZWZp bmUgdGltZV9hZnRlcl9lcShhLGIpCVwNCiAJKHR5cGVjaGVjayh1bnNpZ25lZCBsb25nLCBhKSAm JiBcDQogCSB0eXBlY2hlY2sodW5zaWduZWQgbG9uZywgYikgJiYgXA0KLQkgKChsb25nKShhKSAt IChsb25nKShiKSA+PSAwKSkNCisJICgobG9uZykoKGEpIC0gKGIpKSA+PSAwKSkNCiAjZGVmaW5l IHRpbWVfYmVmb3JlX2VxKGEsYikJdGltZV9hZnRlcl9lcShiLGEpDQogDQogLyoNCkBAIC0xMzUs MTMgKzEzNSwxMyBAQCBzdGF0aWMgaW5saW5lIHU2NCBnZXRfamlmZmllc182NCh2b2lkKQ0KICNk ZWZpbmUgdGltZV9hZnRlcjY0KGEsYikJXA0KIAkodHlwZWNoZWNrKF9fdTY0LCBhKSAmJglcDQog CSB0eXBlY2hlY2soX191NjQsIGIpICYmIFwNCi0JICgoX19zNjQpKGIpIC0gKF9fczY0KShhKSA8 IDApKQ0KKwkgKChfX3M2NCkoKGIpIC0gKGEpKSA8IDApKQ0KICNkZWZpbmUgdGltZV9iZWZvcmU2 NChhLGIpCXRpbWVfYWZ0ZXI2NChiLGEpDQogDQogI2RlZmluZSB0aW1lX2FmdGVyX2VxNjQoYSxi KQlcDQogCSh0eXBlY2hlY2soX191NjQsIGEpICYmIFwNCiAJIHR5cGVjaGVjayhfX3U2NCwgYikg JiYgXA0KLQkgKChfX3M2NCkoYSkgLSAoX19zNjQpKGIpID49IDApKQ0KKwkgKChfX3M2NCkoKGEp IC0gKGIpKSA+PSAwKSkNCiAjZGVmaW5lIHRpbWVfYmVmb3JlX2VxNjQoYSxiKQl0aW1lX2FmdGVy X2VxNjQoYixhKQ0KIA0KIC8qDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9saWJhdGEuaCBi L2luY2x1ZGUvbGludXgvbGliYXRhLmgNCmluZGV4IDYyNDY3Y2EuLmIxZmNkYmEgMTAwNjQ0DQot LS0gYS9pbmNsdWRlL2xpbnV4L2xpYmF0YS5oDQorKysgYi9pbmNsdWRlL2xpbnV4L2xpYmF0YS5o DQpAQCAtMzkzLDYgKzM5Myw4IEBAIGVudW0gew0KIAlBVEFfSE9SS0FHRV9CUk9LRU5fRlBETUFf QUEJPSAoMSA8PCAxNSksCS8qIHNraXAgQUEgKi8NCiAJQVRBX0hPUktBR0VfRFVNUF9JRAk9ICgx IDw8IDE2KSwJLyogZHVtcCBJREVOVElGWSBkYXRhICovDQogCUFUQV9IT1JLQUdFX01BWF9TRUNf TEJBNDggPSAoMSA8PCAxNyksCS8qIFNldCBtYXggc2VjdHMgdG8gNjU1MzUgKi8NCisJQVRBX0hP UktBR0VfTk9MUE0JPSAoMSA8PCAyMCksCS8qIGRvbid0IHVzZSBMUE0gKi8NCisJQVRBX0hPUktB R0VfV0RfQlJPS0VOX0xQTSA9ICgxIDw8IDIxKSwJLyogc29tZSBXRHMgaGF2ZSBicm9rZW4gTFBN ICovDQogDQogCSAvKiBETUEgbWFzayBmb3IgdXNlciBETUEgY29udHJvbDogVXNlciB2aXNpYmxl IHZhbHVlczsgRE8gTk9UDQogCSAgICByZW51bWJlciAqLw0KZGlmZiAtLWdpdCBhL2luY2x1ZGUv bGludXgvcGlwZV9mc19pLmggYi9pbmNsdWRlL2xpbnV4L3BpcGVfZnNfaS5oDQppbmRleCAwMDcy YTUzLi44Nzc4YzI2IDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9waXBlX2ZzX2kuaA0KKysr IGIvaW5jbHVkZS9saW51eC9waXBlX2ZzX2kuaA0KQEAgLTE2MCw2ICsxNjAsOCBAQCBpbnQgZ2Vu ZXJpY19waXBlX2J1Zl9jb25maXJtKHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKiwgc3RydWN0IHBp cGVfYnVmZmVyICopOw0KIGludCBnZW5lcmljX3BpcGVfYnVmX3N0ZWFsKHN0cnVjdCBwaXBlX2lu b2RlX2luZm8gKiwgc3RydWN0IHBpcGVfYnVmZmVyICopOw0KIHZvaWQgZ2VuZXJpY19waXBlX2J1 Zl9yZWxlYXNlKHN0cnVjdCBwaXBlX2lub2RlX2luZm8gKiwgc3RydWN0IHBpcGVfYnVmZmVyICop Ow0KIA0KK2V4dGVybiBjb25zdCBzdHJ1Y3QgcGlwZV9idWZfb3BlcmF0aW9ucyBub3N0ZWFsX3Bp cGVfYnVmX29wczsNCisNCiAvKiBmb3IgRl9TRVRQSVBFX1NaIGFuZCBGX0dFVFBJUEVfU1ogKi8N CiBsb25nIHBpcGVfZmNudGwoc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBs b25nIGFyZyk7DQogc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqZ2V0X3BpcGVfaW5mbyhzdHJ1Y3Qg ZmlsZSAqZmlsZSk7DQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC90cmFjZXBvaW50LmggYi9p bmNsdWRlL2xpbnV4L3RyYWNlcG9pbnQuaA0KaW5kZXggZGYwYTc3OS4uZjM2ODBhYSAxMDA2NDQN Ci0tLSBhL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oDQorKysgYi9pbmNsdWRlL2xpbnV4L3Ry YWNlcG9pbnQuaA0KQEAgLTYwLDYgKzYwLDEyIEBAIHN0cnVjdCB0cF9tb2R1bGUgew0KIAl1bnNp Z25lZCBpbnQgbnVtX3RyYWNlcG9pbnRzOw0KIAlzdHJ1Y3QgdHJhY2Vwb2ludCAqIGNvbnN0ICp0 cmFjZXBvaW50c19wdHJzOw0KIH07DQorYm9vbCB0cmFjZV9tb2R1bGVfaGFzX2JhZF90YWludChz dHJ1Y3QgbW9kdWxlICptb2QpOw0KKyNlbHNlDQorc3RhdGljIGlubGluZSBib29sIHRyYWNlX21v ZHVsZV9oYXNfYmFkX3RhaW50KHN0cnVjdCBtb2R1bGUgKm1vZCkNCit7DQorCXJldHVybiBmYWxz ZTsNCit9DQogI2VuZGlmIC8qIENPTkZJR19NT0RVTEVTICovDQogDQogc3RydWN0IHRyYWNlcG9p bnRfaXRlciB7DQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zY3NpL29zZF9vcmUuaCBiL2luY2x1ZGUv c2NzaS9vc2Rfb3JlLmgNCmluZGV4IGYwNWZhODIuLjQ3YjQ1OGMgMTAwNjQ0DQotLS0gYS9pbmNs dWRlL3Njc2kvb3NkX29yZS5oDQorKysgYi9pbmNsdWRlL3Njc2kvb3NkX29yZS5oDQpAQCAtMTAx LDYgKzEwMSw3IEBAIHN0cnVjdCBvcmVfc3RyaXBpbmdfaW5mbyB7DQogCXVuc2lnbmVkIHVuaXRf b2ZmOw0KIAl1bnNpZ25lZCBjdXJfcGc7DQogCXVuc2lnbmVkIGN1cl9jb21wOw0KKwl1bnNpZ25l ZCBtYXhkZXZVbml0czsNCiB9Ow0KIA0KIHN0cnVjdCBvcmVfaW9fc3RhdGU7DQpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS94ZW4vS2J1aWxkIGIvaW5jbHVkZS94ZW4vS2J1aWxkDQppbmRleCA4NGFkOGYw Li41NjMxNjFhIDEwMDY0NA0KLS0tIGEvaW5jbHVkZS94ZW4vS2J1aWxkDQorKysgYi9pbmNsdWRl L3hlbi9LYnVpbGQNCkBAIC0xLDIgKzEsNCBAQA0KIGhlYWRlci15ICs9IGV2dGNobi5oDQoraGVh ZGVyLXkgKz0gZ250YWxsb2MuaA0KK2hlYWRlci15ICs9IGdudGRldi5oDQogaGVhZGVyLXkgKz0g cHJpdmNtZC5oDQpkaWZmIC0tZ2l0IGEva2VybmVsL2Nncm91cC5jIGIva2VybmVsL2Nncm91cC5j DQppbmRleCAyYTFmZmI3Li45M2ZjMTVlIDEwMDY0NA0KLS0tIGEva2VybmVsL2Nncm91cC5jDQor KysgYi9rZXJuZWwvY2dyb3VwLmMNCkBAIC0yNzg1LDkgKzI3ODUsMTQgQEAgc3RhdGljIHZvaWQg Y2dyb3VwX2VuYWJsZV90YXNrX2NnX2xpc3RzKHZvaWQpDQogCQkgKiBXZSBzaG91bGQgY2hlY2sg aWYgdGhlIHByb2Nlc3MgaXMgZXhpdGluZywgb3RoZXJ3aXNlDQogCQkgKiBpdCB3aWxsIHJhY2Ug d2l0aCBjZ3JvdXBfZXhpdCgpIGluIHRoYXQgdGhlIGxpc3QNCiAJCSAqIGVudHJ5IHdvbid0IGJl IGRlbGV0ZWQgdGhvdWdoIHRoZSBwcm9jZXNzIGhhcyBleGl0ZWQuDQorCQkgKiBEbyBpdCB3aGls ZSBob2xkaW5nIHNpZ2xvY2sgc28gdGhhdCB3ZSBkb24ndCBlbmQgdXANCisJCSAqIHJhY2luZyBh Z2FpbnN0IGNncm91cF9leGl0KCkuDQogCQkgKi8NCisJCXNwaW5fbG9ja19pcnEoJnAtPnNpZ2hh bmQtPnNpZ2xvY2spOw0KIAkJaWYgKCEocC0+ZmxhZ3MgJiBQRl9FWElUSU5HKSAmJiBsaXN0X2Vt cHR5KCZwLT5jZ19saXN0KSkNCiAJCQlsaXN0X2FkZCgmcC0+Y2dfbGlzdCwgJnAtPmNncm91cHMt PnRhc2tzKTsNCisJCXNwaW5fdW5sb2NrX2lycSgmcC0+c2lnaGFuZC0+c2lnbG9jayk7DQorDQog CQl0YXNrX3VubG9jayhwKTsNCiAJfSB3aGlsZV9lYWNoX3RocmVhZChnLCBwKTsNCiAJd3JpdGVf dW5sb2NrKCZjc3Nfc2V0X2xvY2spOw0KZGlmZiAtLWdpdCBhL2tlcm5lbC9jcHVzZXQuYyBiL2tl cm5lbC9jcHVzZXQuYw0KaW5kZXggNTdlYjk4ZC4uMWUyYzVmMCAxMDA2NDQNCi0tLSBhL2tlcm5l bC9jcHVzZXQuYw0KKysrIGIva2VybmVsL2NwdXNldC5jDQpAQCAtMjM2Niw5ICsyMzY2LDkgQEAg aW50IF9fY3B1c2V0X25vZGVfYWxsb3dlZF9zb2Z0d2FsbChpbnQgbm9kZSwgZ2ZwX3QgZ2ZwX21h c2spDQogDQogCXRhc2tfbG9jayhjdXJyZW50KTsNCiAJY3MgPSBuZWFyZXN0X2hhcmR3YWxsX2Fu Y2VzdG9yKHRhc2tfY3MoY3VycmVudCkpOw0KKwlhbGxvd2VkID0gbm9kZV9pc3NldChub2RlLCBj cy0+bWVtc19hbGxvd2VkKTsNCiAJdGFza191bmxvY2soY3VycmVudCk7DQogDQotCWFsbG93ZWQg PSBub2RlX2lzc2V0KG5vZGUsIGNzLT5tZW1zX2FsbG93ZWQpOw0KIAltdXRleF91bmxvY2soJmNh bGxiYWNrX211dGV4KTsNCiAJcmV0dXJuIGFsbG93ZWQ7DQogfQ0KZGlmZiAtLWdpdCBhL2tlcm5l bC9ldmVudHMvY29yZS5jIGIva2VybmVsL2V2ZW50cy9jb3JlLmMNCmluZGV4IDgzZDU2MjEuLmIx NWI0ZjcgMTAwNjQ0DQotLS0gYS9rZXJuZWwvZXZlbnRzL2NvcmUuYw0KKysrIGIva2VybmVsL2V2 ZW50cy9jb3JlLmMNCkBAIC03MTAxLDE0ICs3MTAxLDE0IEBAIHN0YXRpYyB2b2lkIHBlcmZfcG11 X3JvdGF0ZV9zdG9wKHN0cnVjdCBwbXUgKnBtdSkNCiBzdGF0aWMgdm9pZCBfX3BlcmZfZXZlbnRf ZXhpdF9jb250ZXh0KHZvaWQgKl9faW5mbykNCiB7DQogCXN0cnVjdCBwZXJmX2V2ZW50X2NvbnRl eHQgKmN0eCA9IF9faW5mbzsNCi0Jc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50LCAqdG1wOw0KKwlz dHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQ7DQogDQogCXBlcmZfcG11X3JvdGF0ZV9zdG9wKGN0eC0+ cG11KTsNCiANCi0JbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGV2ZW50LCB0bXAsICZjdHgtPnBp bm5lZF9ncm91cHMsIGdyb3VwX2VudHJ5KQ0KLQkJX19wZXJmX3JlbW92ZV9mcm9tX2NvbnRleHQo ZXZlbnQpOw0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZXZlbnQsIHRtcCwgJmN0eC0+Zmxl eGlibGVfZ3JvdXBzLCBncm91cF9lbnRyeSkNCisJcmN1X3JlYWRfbG9jaygpOw0KKwlsaXN0X2Zv cl9lYWNoX2VudHJ5X3JjdShldmVudCwgJmN0eC0+ZXZlbnRfbGlzdCwgZXZlbnRfZW50cnkpDQog CQlfX3BlcmZfcmVtb3ZlX2Zyb21fY29udGV4dChldmVudCk7DQorCXJjdV9yZWFkX3VubG9jaygp Ow0KIH0NCiANCiBzdGF0aWMgdm9pZCBwZXJmX2V2ZW50X2V4aXRfY3B1X2NvbnRleHQoaW50IGNw dSkNCkBAIC03MTMyLDExICs3MTMyLDExIEBAIHN0YXRpYyB2b2lkIHBlcmZfZXZlbnRfZXhpdF9j cHUoaW50IGNwdSkNCiB7DQogCXN0cnVjdCBzd2V2ZW50X2h0YWJsZSAqc3doYXNoID0gJnBlcl9j cHUoc3dldmVudF9odGFibGUsIGNwdSk7DQogDQorCXBlcmZfZXZlbnRfZXhpdF9jcHVfY29udGV4 dChjcHUpOw0KKw0KIAltdXRleF9sb2NrKCZzd2hhc2gtPmhsaXN0X211dGV4KTsNCiAJc3dldmVu dF9obGlzdF9yZWxlYXNlKHN3aGFzaCk7DQogCW11dGV4X3VubG9jaygmc3doYXNoLT5obGlzdF9t dXRleCk7DQotDQotCXBlcmZfZXZlbnRfZXhpdF9jcHVfY29udGV4dChjcHUpOw0KIH0NCiAjZWxz ZQ0KIHN0YXRpYyBpbmxpbmUgdm9pZCBwZXJmX2V2ZW50X2V4aXRfY3B1KGludCBjcHUpIHsgfQ0K ZGlmZiAtLWdpdCBhL2tlcm5lbC9pcnEvbWFuYWdlLmMgYi9rZXJuZWwvaXJxL21hbmFnZS5jDQpp bmRleCA1MmJkZDU4Li40Nzc1MjI5IDEwMDY0NA0KLS0tIGEva2VybmVsL2lycS9tYW5hZ2UuYw0K KysrIGIva2VybmVsL2lycS9tYW5hZ2UuYw0KQEAgLTgxOSw3ICs4MTksNyBAQCBzdGF0aWMgaW50 IGlycV90aHJlYWQodm9pZCAqZGF0YSkNCiANCiAJCXdha2UgPSBhdG9taWNfZGVjX2FuZF90ZXN0 KCZkZXNjLT50aHJlYWRzX2FjdGl2ZSk7DQogDQotCQlpZiAod2FrZSAmJiB3YWl0cXVldWVfYWN0 aXZlKCZkZXNjLT53YWl0X2Zvcl90aHJlYWRzKSkNCisJCWlmICh3YWtlKQ0KIAkJCXdha2VfdXAo JmRlc2MtPndhaXRfZm9yX3RocmVhZHMpOw0KIAl9DQogDQpkaWZmIC0tZ2l0IGEva2VybmVsL3By aW50ay5jIGIva2VybmVsL3ByaW50ay5jDQppbmRleCAxNjY4OGVjLi44ZmFjNDM0IDEwMDY0NA0K LS0tIGEva2VybmVsL3ByaW50ay5jDQorKysgYi9rZXJuZWwvcHJpbnRrLmMNCkBAIC0xMTY1LDcg KzExNjUsNiBAQCBzdGF0aWMgaW50IF9fY3B1aW5pdCBjb25zb2xlX2NwdV9ub3RpZnkoc3RydWN0 IG5vdGlmaWVyX2Jsb2NrICpzZWxmLA0KIAlzd2l0Y2ggKGFjdGlvbikgew0KIAljYXNlIENQVV9P TkxJTkU6DQogCWNhc2UgQ1BVX0RFQUQ6DQotCWNhc2UgQ1BVX0RZSU5HOg0KIAljYXNlIENQVV9E T1dOX0ZBSUxFRDoNCiAJY2FzZSBDUFVfVVBfQ0FOQ0VMRUQ6DQogCQljb25zb2xlX2xvY2soKTsN CmRpZmYgLS1naXQgYS9rZXJuZWwvc2NoZWRfZmFpci5jIGIva2VybmVsL3NjaGVkX2ZhaXIuYw0K aW5kZXggMzdmM2YzOS4uNGM2ZGFlMSAxMDA2NDQNCi0tLSBhL2tlcm5lbC9zY2hlZF9mYWlyLmMN CisrKyBiL2tlcm5lbC9zY2hlZF9mYWlyLmMNCkBAIC00OTUzLDE1ICs0OTUzLDE1IEBAIHN0YXRp YyB2b2lkIHN3aXRjaGVkX2Zyb21fZmFpcihzdHJ1Y3QgcnEgKnJxLCBzdHJ1Y3QgdGFza19zdHJ1 Y3QgKnApDQogCXN0cnVjdCBjZnNfcnEgKmNmc19ycSA9IGNmc19ycV9vZihzZSk7DQogDQogCS8q DQotCSAqIEVuc3VyZSB0aGUgdGFzaydzIHZydW50aW1lIGlzIG5vcm1hbGl6ZWQsIHNvIHRoYXQg d2hlbiBpdHMNCisJICogRW5zdXJlIHRoZSB0YXNrJ3MgdnJ1bnRpbWUgaXMgbm9ybWFsaXplZCwg c28gdGhhdCB3aGVuIGl0J3MNCiAJICogc3dpdGNoZWQgYmFjayB0byB0aGUgZmFpciBjbGFzcyB0 aGUgZW5xdWV1ZV9lbnRpdHkoLmZsYWdzPTApIHdpbGwNCiAJICogZG8gdGhlIHJpZ2h0IHRoaW5n Lg0KIAkgKg0KLQkgKiBJZiBpdCB3YXMgb25fcnEsIHRoZW4gdGhlIGRlcXVldWVfZW50aXR5KC5m bGFncz0wKSB3aWxsIGFscmVhZHkNCi0JICogaGF2ZSBub3JtYWxpemVkIHRoZSB2cnVudGltZSwg aWYgaXQgd2FzICFvbl9ycSwgdGhlbiBvbmx5IHdoZW4NCisJICogSWYgaXQncyBvbl9ycSwgdGhl biB0aGUgZGVxdWV1ZV9lbnRpdHkoLmZsYWdzPTApIHdpbGwgYWxyZWFkeQ0KKwkgKiBoYXZlIG5v cm1hbGl6ZWQgdGhlIHZydW50aW1lLCBpZiBpdCdzICFvbl9ycSwgdGhlbiBvbmx5IHdoZW4NCiAJ ICogdGhlIHRhc2sgaXMgc2xlZXBpbmcgd2lsbCBpdCBzdGlsbCBoYXZlIG5vbi1ub3JtYWxpemVk IHZydW50aW1lLg0KIAkgKi8NCi0JaWYgKCFzZS0+b25fcnEgJiYgcC0+c3RhdGUgIT0gVEFTS19S VU5OSU5HKSB7DQorCWlmICghcC0+b25fcnEgJiYgcC0+c3RhdGUgIT0gVEFTS19SVU5OSU5HKSB7 DQogCQkvKg0KIAkJICogRml4IHVwIG91ciB2cnVudGltZSBzbyB0aGF0IHRoZSBjdXJyZW50IHNs ZWVwIGRvZXNuJ3QNCiAJCSAqIGNhdXNlICd1bmxpbWl0ZWQnIHNsZWVwIGJvbnVzLg0KZGlmZiAt LWdpdCBhL2tlcm5lbC90aW1lL2ppZmZpZXMuYyBiL2tlcm5lbC90aW1lL2ppZmZpZXMuYw0KaW5k ZXggYTQ3MDE1NC4uOTU1NTYwZSAxMDA2NDQNCi0tLSBhL2tlcm5lbC90aW1lL2ppZmZpZXMuYw0K KysrIGIva2VybmVsL3RpbWUvamlmZmllcy5jDQpAQCAtNTEsNyArNTEsMTMgQEANCiAgKiBIWiBz aHJpbmtzLCBzbyB2YWx1ZXMgZ3JlYXRlciB0aGFuIDggb3ZlcmZsb3cgMzJiaXRzIHdoZW4NCiAg KiBIWj0xMDAuDQogICovDQorI2lmIEhaIDwgMzQNCisjZGVmaW5lIEpJRkZJRVNfU0hJRlQJNg0K KyNlbGlmIEhaIDwgNjcNCisjZGVmaW5lIEpJRkZJRVNfU0hJRlQJNw0KKyNlbHNlDQogI2RlZmlu ZSBKSUZGSUVTX1NISUZUCTgNCisjZW5kaWYNCiANCiBzdGF0aWMgY3ljbGVfdCBqaWZmaWVzX3Jl YWQoc3RydWN0IGNsb2Nrc291cmNlICpjcykNCiB7DQpkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWUv dGltZWtlZXBpbmcuYyBiL2tlcm5lbC90aW1lL3RpbWVrZWVwaW5nLmMNCmluZGV4IGNiN2YzM2Uu LjA2OGMwOTIgMTAwNjQ0DQotLS0gYS9rZXJuZWwvdGltZS90aW1la2VlcGluZy5jDQorKysgYi9r ZXJuZWwvdGltZS90aW1la2VlcGluZy5jDQpAQCAtMTE2MSw3ICsxMTYxLDcgQEAgdm9pZCBnZXRf bW9ub3RvbmljX2Jvb3R0aW1lKHN0cnVjdCB0aW1lc3BlYyAqdHMpDQogCX0gd2hpbGUgKHJlYWRf c2VxcmV0cnkoJnh0aW1lX2xvY2ssIHNlcSkpOw0KIA0KIAlzZXRfbm9ybWFsaXplZF90aW1lc3Bl Yyh0cywgdHMtPnR2X3NlYyArIHRvbW9uby50dl9zZWMgKyBzbGVlcC50dl9zZWMsDQotCQkJdHMt PnR2X25zZWMgKyB0b21vbm8udHZfbnNlYyArIHNsZWVwLnR2X25zZWMgKyBuc2Vjcyk7DQorCQko czY0KXRzLT50dl9uc2VjICsgdG9tb25vLnR2X25zZWMgKyBzbGVlcC50dl9uc2VjICsgbnNlY3Mp Ow0KIH0NCiBFWFBPUlRfU1lNQk9MX0dQTChnZXRfbW9ub3RvbmljX2Jvb3R0aW1lKTsNCiANCmRp ZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvZnRyYWNlLmMgYi9rZXJuZWwvdHJhY2UvZnRyYWNlLmMN CmluZGV4IGNmOGI0MzkuLmE2NWZhMzYgMTAwNjQ0DQotLS0gYS9rZXJuZWwvdHJhY2UvZnRyYWNl LmMNCisrKyBiL2tlcm5lbC90cmFjZS9mdHJhY2UuYw0KQEAgLTE5MCw2ICsxOTAsMTIgQEAgc3Rh dGljIHZvaWQgdXBkYXRlX2dsb2JhbF9vcHModm9pZCkNCiAJZ2xvYmFsX29wcy5mdW5jID0gZnVu YzsNCiB9DQogDQorI2lmZGVmIENPTkZJR19GVU5DVElPTl9HUkFQSF9UUkFDRVINCitzdGF0aWMg dm9pZCB1cGRhdGVfZnVuY3Rpb25fZ3JhcGhfZnVuYyh2b2lkKTsNCisjZWxzZQ0KK3N0YXRpYyBp bmxpbmUgdm9pZCB1cGRhdGVfZnVuY3Rpb25fZ3JhcGhfZnVuYyh2b2lkKSB7IH0NCisjZW5kaWYN CisNCiBzdGF0aWMgdm9pZCB1cGRhdGVfZnRyYWNlX2Z1bmN0aW9uKHZvaWQpDQogew0KIAlmdHJh Y2VfZnVuY190IGZ1bmM7DQpAQCAtMjM3LDYgKzI0Myw4IEBAIHN0YXRpYyBpbnQgcmVtb3ZlX2Z0 cmFjZV9vcHMoc3RydWN0IGZ0cmFjZV9vcHMgKipsaXN0LCBzdHJ1Y3QgZnRyYWNlX29wcyAqb3Bz KQ0KIHsNCiAJc3RydWN0IGZ0cmFjZV9vcHMgKipwOw0KIA0KKwl1cGRhdGVfZnVuY3Rpb25fZ3Jh cGhfZnVuYygpOw0KKw0KIAkvKg0KIAkgKiBJZiB3ZSBhcmUgcmVtb3ZpbmcgdGhlIGxhc3QgZnVu Y3Rpb24sIHRoZW4gc2ltcGx5IHBvaW50DQogCSAqIHRvIHRoZSBmdHJhY2Vfc3R1Yi4NCkBAIC0y ODMsNiArMjkxLDE3IEBAIHN0YXRpYyBpbnQgX19yZWdpc3Rlcl9mdHJhY2VfZnVuY3Rpb24oc3Ry dWN0IGZ0cmFjZV9vcHMgKm9wcykNCiAJcmV0dXJuIDA7DQogfQ0KIA0KK3N0YXRpYyB2b2lkIGZ0 cmFjZV9zeW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCit7DQorCS8qDQorCSAqIFRoaXMg ZnVuY3Rpb24gaXMganVzdCBhIHN0dWIgdG8gaW1wbGVtZW50IGEgaGFyZCBmb3JjZQ0KKwkgKiBv ZiBzeW5jaHJvbml6ZV9zY2hlZCgpLiBUaGlzIHJlcXVpcmVzIHN5bmNocm9uaXppbmcNCisJICog dGFza3MgZXZlbiBpbiB1c2Vyc3BhY2UgYW5kIGlkbGUuDQorCSAqDQorCSAqIFllcywgZnVuY3Rp b24gdHJhY2luZyBpcyBydWRlLg0KKwkgKi8NCit9DQorDQogc3RhdGljIGludCBfX3VucmVnaXN0 ZXJfZnRyYWNlX2Z1bmN0aW9uKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMpDQogew0KIAlpbnQgcmV0 Ow0KQEAgLTMwOCwxMyArMzI3LDYgQEAgc3RhdGljIGludCBfX3VucmVnaXN0ZXJfZnRyYWNlX2Z1 bmN0aW9uKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMpDQogCWlmIChmdHJhY2VfZW5hYmxlZCkNCiAJ CXVwZGF0ZV9mdHJhY2VfZnVuY3Rpb24oKTsNCiANCi0JLyoNCi0JICogRHluYW1pYyBvcHMgbWF5 IGJlIGZyZWVkLCB3ZSBtdXN0IG1ha2Ugc3VyZSB0aGF0IGFsbA0KLQkgKiBjYWxsZXJzIGFyZSBk b25lIGJlZm9yZSBsZWF2aW5nIHRoaXMgZnVuY3Rpb24uDQotCSAqLw0KLQlpZiAob3BzLT5mbGFn cyAmIEZUUkFDRV9PUFNfRkxfRFlOQU1JQykNCi0JCXN5bmNocm9uaXplX3NjaGVkKCk7DQotDQog CXJldHVybiAwOw0KIH0NCiANCkBAIC0xNzc1LDYgKzE3ODcsMjQgQEAgc3RhdGljIGludCBmdHJh Y2Vfc2h1dGRvd24oc3RydWN0IGZ0cmFjZV9vcHMgKm9wcywgaW50IGNvbW1hbmQpDQogCQlyZXR1 cm4gMDsNCiANCiAJZnRyYWNlX3J1bl91cGRhdGVfY29kZShjb21tYW5kKTsNCisNCisJLyoNCisJ ICogRHluYW1pYyBvcHMgbWF5IGJlIGZyZWVkLCB3ZSBtdXN0IG1ha2Ugc3VyZSB0aGF0IGFsbA0K KwkgKiBjYWxsZXJzIGFyZSBkb25lIGJlZm9yZSBsZWF2aW5nIHRoaXMgZnVuY3Rpb24uDQorCSAq IFRoZSBzYW1lIGdvZXMgZm9yIGZyZWVpbmcgdGhlIHBlcl9jcHUgZGF0YSBvZiB0aGUgY29udHJv bA0KKwkgKiBvcHMuDQorCSAqDQorCSAqIEFnYWluLCBub3JtYWwgc3luY2hyb25pemVfc2NoZWQo KSBpcyBub3QgZ29vZCBlbm91Z2guDQorCSAqIFdlIG5lZWQgdG8gZG8gYSBoYXJkIGZvcmNlIG9m IHNjaGVkIHN5bmNocm9uaXphdGlvbi4NCisJICogVGhpcyBpcyBiZWNhdXNlIHdlIHVzZSBwcmVl bXB0X2Rpc2FibGUoKSB0byBkbyBSQ1UsIGJ1dA0KKwkgKiB0aGUgZnVuY3Rpb24gdHJhY2VycyBj YW4gYmUgY2FsbGVkIHdoZXJlIFJDVSBpcyBub3Qgd2F0Y2hpbmcNCisJICogKGxpa2UgYmVmb3Jl IHVzZXJfZXhpdCgpKS4gV2UgY2FuIG5vdCByZWx5IG9uIHRoZSBSQ1UNCisJICogaW5mcmFzdHJ1 Y3R1cmUgdG8gZG8gdGhlIHN5bmNocm9uaXphdGlvbiwgdGh1cyB3ZSBtdXN0IGRvIGl0DQorCSAq IG91cnNlbHZlcy4NCisJICovDQorCWlmIChvcHMtPmZsYWdzICYgKEZUUkFDRV9PUFNfRkxfRFlO QU1JQykpDQorCQlzY2hlZHVsZV9vbl9lYWNoX2NwdShmdHJhY2Vfc3luYyk7DQorDQogCXJldHVy biAwOw0KIH0NCiANCkBAIC00MDQ1LDYgKzQwNzUsNyBAQCBpbnQgZnRyYWNlX2dyYXBoX2VudHJ5 X3N0dWIoc3RydWN0IGZ0cmFjZV9ncmFwaF9lbnQgKnRyYWNlKQ0KIHRyYWNlX2Z1bmNfZ3JhcGhf cmV0X3QgZnRyYWNlX2dyYXBoX3JldHVybiA9DQogCQkJKHRyYWNlX2Z1bmNfZ3JhcGhfcmV0X3Qp ZnRyYWNlX3N0dWI7DQogdHJhY2VfZnVuY19ncmFwaF9lbnRfdCBmdHJhY2VfZ3JhcGhfZW50cnkg PSBmdHJhY2VfZ3JhcGhfZW50cnlfc3R1YjsNCitzdGF0aWMgdHJhY2VfZnVuY19ncmFwaF9lbnRf dCBfX2Z0cmFjZV9ncmFwaF9lbnRyeSA9IGZ0cmFjZV9ncmFwaF9lbnRyeV9zdHViOw0KIA0KIC8q IFRyeSB0byBhc3NpZ24gYSByZXR1cm4gc3RhY2sgYXJyYXkgb24gRlRSQUNFX1JFVFNUQUNLX0FM TE9DX1NJWkUgdGFza3MuICovDQogc3RhdGljIGludCBhbGxvY19yZXRzdGFja190YXNrbGlzdChz dHJ1Y3QgZnRyYWNlX3JldF9zdGFjayAqKnJldF9zdGFja19saXN0KQ0KQEAgLTQxODUsNiArNDIx NiwzMCBAQCBzdGF0aWMgc3RydWN0IGZ0cmFjZV9vcHMgZmdyYXBoX29wcyBfX3JlYWRfbW9zdGx5 ID0gew0KIAkuZmxhZ3MJCT0gRlRSQUNFX09QU19GTF9HTE9CQUwsDQogfTsNCiANCitzdGF0aWMg aW50IGZ0cmFjZV9ncmFwaF9lbnRyeV90ZXN0KHN0cnVjdCBmdHJhY2VfZ3JhcGhfZW50ICp0cmFj ZSkNCit7DQorCWlmICghZnRyYWNlX29wc190ZXN0KCZnbG9iYWxfb3BzLCB0cmFjZS0+ZnVuYykp DQorCQlyZXR1cm4gMDsNCisJcmV0dXJuIF9fZnRyYWNlX2dyYXBoX2VudHJ5KHRyYWNlKTsNCit9 DQorDQorLyoNCisgKiBUaGUgZnVuY3Rpb24gZ3JhcGggdHJhY2VyIHNob3VsZCBvbmx5IHRyYWNl IHRoZSBmdW5jdGlvbnMgZGVmaW5lZA0KKyAqIGJ5IHNldF9mdHJhY2VfZmlsdGVyIGFuZCBzZXRf ZnRyYWNlX25vdHJhY2UuIElmIGFub3RoZXIgZnVuY3Rpb24NCisgKiB0cmFjZXIgb3BzIGlzIHJl Z2lzdGVyZWQsIHRoZSBncmFwaCB0cmFjZXIgcmVxdWlyZXMgdGVzdGluZyB0aGUNCisgKiBmdW5j dGlvbiBhZ2FpbnN0IHRoZSBnbG9iYWwgb3BzLCBhbmQgbm90IGp1c3QgdHJhY2UgYW55IGZ1bmN0 aW9uDQorICogdGhhdCBhbnkgZnRyYWNlX29wcyByZWdpc3RlcmVkLg0KKyAqLw0KK3N0YXRpYyB2 b2lkIHVwZGF0ZV9mdW5jdGlvbl9ncmFwaF9mdW5jKHZvaWQpDQorew0KKwlpZiAoZnRyYWNlX29w c19saXN0ID09ICZmdHJhY2VfbGlzdF9lbmQgfHwNCisJICAgIChmdHJhY2Vfb3BzX2xpc3QgPT0g Jmdsb2JhbF9vcHMgJiYNCisJICAgICBnbG9iYWxfb3BzLm5leHQgPT0gJmZ0cmFjZV9saXN0X2Vu ZCkpDQorCQlmdHJhY2VfZ3JhcGhfZW50cnkgPSBfX2Z0cmFjZV9ncmFwaF9lbnRyeTsNCisJZWxz ZQ0KKwkJZnRyYWNlX2dyYXBoX2VudHJ5ID0gZnRyYWNlX2dyYXBoX2VudHJ5X3Rlc3Q7DQorfQ0K Kw0KIGludCByZWdpc3Rlcl9mdHJhY2VfZ3JhcGgodHJhY2VfZnVuY19ncmFwaF9yZXRfdCByZXRm dW5jLA0KIAkJCXRyYWNlX2Z1bmNfZ3JhcGhfZW50X3QgZW50cnlmdW5jKQ0KIHsNCkBAIC00MjA5 LDcgKzQyNjQsMTYgQEAgaW50IHJlZ2lzdGVyX2Z0cmFjZV9ncmFwaCh0cmFjZV9mdW5jX2dyYXBo X3JldF90IHJldGZ1bmMsDQogCX0NCiANCiAJZnRyYWNlX2dyYXBoX3JldHVybiA9IHJldGZ1bmM7 DQotCWZ0cmFjZV9ncmFwaF9lbnRyeSA9IGVudHJ5ZnVuYzsNCisNCisJLyoNCisJICogVXBkYXRl IHRoZSBpbmRpcmVjdCBmdW5jdGlvbiB0byB0aGUgZW50cnlmdW5jLCBhbmQgdGhlDQorCSAqIGZ1 bmN0aW9uIHRoYXQgZ2V0cyBjYWxsZWQgdG8gdGhlIGVudHJ5X3Rlc3QgZmlyc3QuIFRoZW4NCisJ ICogY2FsbCB0aGUgdXBkYXRlIGZncmFwaCBlbnRyeSBmdW5jdGlvbiB0byBkZXRlcm1pbmUgaWYN CisJICogdGhlIGVudHJ5ZnVuYyBzaG91bGQgYmUgY2FsbGVkIGRpcmVjdGx5IG9yIG5vdC4NCisJ ICovDQorCV9fZnRyYWNlX2dyYXBoX2VudHJ5ID0gZW50cnlmdW5jOw0KKwlmdHJhY2VfZ3JhcGhf ZW50cnkgPSBmdHJhY2VfZ3JhcGhfZW50cnlfdGVzdDsNCisJdXBkYXRlX2Z1bmN0aW9uX2dyYXBo X2Z1bmMoKTsNCiANCiAJcmV0ID0gZnRyYWNlX3N0YXJ0dXAoJmZncmFwaF9vcHMsIEZUUkFDRV9T VEFSVF9GVU5DX1JFVCk7DQogDQpAQCAtNDIyOCw2ICs0MjkyLDcgQEAgdm9pZCB1bnJlZ2lzdGVy X2Z0cmFjZV9ncmFwaCh2b2lkKQ0KIAlmdHJhY2VfZ3JhcGhfYWN0aXZlLS07DQogCWZ0cmFjZV9n cmFwaF9yZXR1cm4gPSAodHJhY2VfZnVuY19ncmFwaF9yZXRfdClmdHJhY2Vfc3R1YjsNCiAJZnRy YWNlX2dyYXBoX2VudHJ5ID0gZnRyYWNlX2dyYXBoX2VudHJ5X3N0dWI7DQorCV9fZnRyYWNlX2dy YXBoX2VudHJ5ID0gZnRyYWNlX2dyYXBoX2VudHJ5X3N0dWI7DQogCWZ0cmFjZV9zaHV0ZG93bigm ZmdyYXBoX29wcywgRlRSQUNFX1NUT1BfRlVOQ19SRVQpOw0KIAl1bnJlZ2lzdGVyX3BtX25vdGlm aWVyKCZmdHJhY2Vfc3VzcGVuZF9ub3RpZmllcik7DQogCXVucmVnaXN0ZXJfdHJhY2Vfc2NoZWRf c3dpdGNoKGZ0cmFjZV9ncmFwaF9wcm9iZV9zY2hlZF9zd2l0Y2gsIE5VTEwpOw0KZGlmZiAtLWdp dCBhL2tlcm5lbC90cmFjZS9yaW5nX2J1ZmZlci5jIGIva2VybmVsL3RyYWNlL3JpbmdfYnVmZmVy LmMNCmluZGV4IDZmZGM2MjkuLjY0OGYyNWEgMTAwNjQ0DQotLS0gYS9rZXJuZWwvdHJhY2Uvcmlu Z19idWZmZXIuYw0KKysrIGIva2VybmVsL3RyYWNlL3JpbmdfYnVmZmVyLmMNCkBAIC0yMDQwLDYg KzIwNDAsMTMgQEAgX19yYl9yZXNlcnZlX25leHQoc3RydWN0IHJpbmdfYnVmZmVyX3Blcl9jcHUg KmNwdV9idWZmZXIsDQogCXdyaXRlICY9IFJCX1dSSVRFX01BU0s7DQogCXRhaWwgPSB3cml0ZSAt IGxlbmd0aDsNCiANCisJLyoNCisJICogSWYgdGhpcyBpcyB0aGUgZmlyc3QgY29tbWl0IG9uIHRo ZSBwYWdlLCB0aGVuIGl0IGhhcyB0aGUgc2FtZQ0KKwkgKiB0aW1lc3RhbXAgYXMgdGhlIHBhZ2Ug aXRzZWxmLg0KKwkgKi8NCisJaWYgKCF0YWlsKQ0KKwkJZGVsdGEgPSAwOw0KKw0KIAkvKiBTZWUg aWYgd2Ugc2hvdCBwYXNzIHRoZSBlbmQgb2YgdGhpcyBidWZmZXIgcGFnZSAqLw0KIAlpZiAodW5s aWtlbHkod3JpdGUgPiBCVUZfUEFHRV9TSVpFKSkNCiAJCXJldHVybiByYl9tb3ZlX3RhaWwoY3B1 X2J1ZmZlciwgbGVuZ3RoLCB0YWlsLA0KZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZV9l dmVudHMuYyBiL2tlcm5lbC90cmFjZS90cmFjZV9ldmVudHMuYw0KaW5kZXggYzIxMmE3Zi4uODc1 ZmVkNCAxMDA2NDQNCi0tLSBhL2tlcm5lbC90cmFjZS90cmFjZV9ldmVudHMuYw0KKysrIGIva2Vy bmVsL3RyYWNlL3RyYWNlX2V2ZW50cy5jDQpAQCAtMTM0NSw2ICsxMzQ1LDE2IEBAIHN0YXRpYyB2 b2lkIHRyYWNlX21vZHVsZV9hZGRfZXZlbnRzKHN0cnVjdCBtb2R1bGUgKm1vZCkNCiAJc3RydWN0 IGZ0cmFjZV9tb2R1bGVfZmlsZV9vcHMgKmZpbGVfb3BzID0gTlVMTDsNCiAJc3RydWN0IGZ0cmFj ZV9ldmVudF9jYWxsICoqY2FsbCwgKipzdGFydCwgKiplbmQ7DQogDQorCWlmICghbW9kLT5udW1f dHJhY2VfZXZlbnRzKQ0KKwkJcmV0dXJuOw0KKw0KKwkvKiBEb24ndCBhZGQgaW5mcmFzdHJ1Y3R1 cmUgZm9yIG1vZHMgd2l0aG91dCB0cmFjZXBvaW50cyAqLw0KKwlpZiAodHJhY2VfbW9kdWxlX2hh c19iYWRfdGFpbnQobW9kKSkgew0KKwkJcHJfZXJyKCIlczogbW9kdWxlIGhhcyBiYWQgdGFpbnQs IG5vdCBjcmVhdGluZyB0cmFjZSBldmVudHNcbiIsDQorCQkgICAgICAgbW9kLT5uYW1lKTsNCisJ CXJldHVybjsNCisJfQ0KKw0KIAlzdGFydCA9IG1vZC0+dHJhY2VfZXZlbnRzOw0KIAllbmQgPSBt b2QtPnRyYWNlX2V2ZW50cyArIG1vZC0+bnVtX3RyYWNlX2V2ZW50czsNCiANCmRpZmYgLS1naXQg YS9rZXJuZWwvdHJhY2Vwb2ludC5jIGIva2VybmVsL3RyYWNlcG9pbnQuYw0KaW5kZXggZjE1Mzlk ZS4uNDFiMjVhMCAxMDA2NDQNCi0tLSBhL2tlcm5lbC90cmFjZXBvaW50LmMNCisrKyBiL2tlcm5l bC90cmFjZXBvaW50LmMNCkBAIC02MjgsNiArNjI4LDExIEBAIHZvaWQgdHJhY2Vwb2ludF9pdGVy X3Jlc2V0KHN0cnVjdCB0cmFjZXBvaW50X2l0ZXIgKml0ZXIpDQogRVhQT1JUX1NZTUJPTF9HUEwo dHJhY2Vwb2ludF9pdGVyX3Jlc2V0KTsNCiANCiAjaWZkZWYgQ09ORklHX01PRFVMRVMNCitib29s IHRyYWNlX21vZHVsZV9oYXNfYmFkX3RhaW50KHN0cnVjdCBtb2R1bGUgKm1vZCkNCit7DQorCXJl dHVybiBtb2QtPnRhaW50cyAmIH4oKDEgPDwgVEFJTlRfT09UX01PRFVMRSkgfCAoMSA8PCBUQUlO VF9DUkFQKSk7DQorfQ0KKw0KIHN0YXRpYyBpbnQgdHJhY2Vwb2ludF9tb2R1bGVfY29taW5nKHN0 cnVjdCBtb2R1bGUgKm1vZCkNCiB7DQogCXN0cnVjdCB0cF9tb2R1bGUgKnRwX21vZCwgKml0ZXI7 DQpAQCAtNjM4LDcgKzY0Myw3IEBAIHN0YXRpYyBpbnQgdHJhY2Vwb2ludF9tb2R1bGVfY29taW5n KHN0cnVjdCBtb2R1bGUgKm1vZCkNCiAJICogbW9kdWxlIGhlYWRlcnMgKGZvciBmb3JjZWQgbG9h ZCksIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBjYXVzZSBhIGNyYXNoLg0KIAkgKiBTdGFnaW5nIGFu ZCBvdXQtb2YtdHJlZSBHUEwgbW9kdWxlcyBhcmUgZmluZS4NCiAJICovDQotCWlmIChtb2QtPnRh aW50cyAmIH4oKDEgPDwgVEFJTlRfT09UX01PRFVMRSkgfCAoMSA8PCBUQUlOVF9DUkFQKSkpDQor CWlmICh0cmFjZV9tb2R1bGVfaGFzX2JhZF90YWludChtb2QpKQ0KIAkJcmV0dXJuIDA7DQogCW11 dGV4X2xvY2soJnRyYWNlcG9pbnRzX211dGV4KTsNCiAJdHBfbW9kID0ga21hbGxvYyhzaXplb2Yo c3RydWN0IHRwX21vZHVsZSksIEdGUF9LRVJORUwpOw0KZGlmZiAtLWdpdCBhL2tlcm5lbC93b3Jr cXVldWUuYyBiL2tlcm5lbC93b3JrcXVldWUuYw0KaW5kZXggMGJjOWZmMC4uNTYzODIwYyAxMDA2 NDQNCi0tLSBhL2tlcm5lbC93b3JrcXVldWUuYw0KKysrIGIva2VybmVsL3dvcmtxdWV1ZS5jDQpA QCAtMTQ3NCwxMiArMTQ3NCwxOSBAQCBzdGF0aWMgdm9pZCBkZXN0cm95X3dvcmtlcihzdHJ1Y3Qg d29ya2VyICp3b3JrZXIpDQogCWlmICh3b3JrZXItPmZsYWdzICYgV09SS0VSX0lETEUpDQogCQln Y3dxLT5ucl9pZGxlLS07DQogDQorCS8qDQorCSAqIE9uY2UgV09SS0VSX0RJRSBpcyBzZXQsIHRo ZSBrd29ya2VyIG1heSBkZXN0cm95IGl0c2VsZiBhdCBhbnkNCisJICogcG9pbnQuICBQaW4gdG8g ZW5zdXJlIHRoZSB0YXNrIHN0YXlzIHVudGlsIHdlJ3JlIGRvbmUgd2l0aCBpdC4NCisJICovDQor CWdldF90YXNrX3N0cnVjdCh3b3JrZXItPnRhc2spOw0KKw0KIAlsaXN0X2RlbF9pbml0KCZ3b3Jr ZXItPmVudHJ5KTsNCiAJd29ya2VyLT5mbGFncyB8PSBXT1JLRVJfRElFOw0KIA0KIAlzcGluX3Vu bG9ja19pcnEoJmdjd3EtPmxvY2spOw0KIA0KIAlrdGhyZWFkX3N0b3Aod29ya2VyLT50YXNrKTsN CisJcHV0X3Rhc2tfc3RydWN0KHdvcmtlci0+dGFzayk7DQogCWtmcmVlKHdvcmtlcik7DQogDQog CXNwaW5fbG9ja19pcnEoJmdjd3EtPmxvY2spOw0KZGlmZiAtLWdpdCBhL2xpYi9NYWtlZmlsZSBi L2xpYi9NYWtlZmlsZQ0KaW5kZXggYTRkYTI4My4uYzA2ZWZjYSAxMDA2NDQNCi0tLSBhL2xpYi9N YWtlZmlsZQ0KKysrIGIvbGliL01ha2VmaWxlDQpAQCAtNDAsNiArNDAsNyBAQCBvYmotJChDT05G SUdfREVCVUdfU1BJTkxPQ0spICs9IHNwaW5sb2NrX2RlYnVnLm8NCiBsaWItJChDT05GSUdfUldT RU1fR0VORVJJQ19TUElOTE9DSykgKz0gcndzZW0tc3BpbmxvY2subw0KIGxpYi0kKENPTkZJR19S V1NFTV9YQ0hHQUREX0FMR09SSVRITSkgKz0gcndzZW0ubw0KIA0KK0dDT1ZfUFJPRklMRV9od2Vp Z2h0Lm8gOj0gbg0KIENGTEFHU19od2VpZ2h0Lm8gPSAkKHN1YnN0ICQocXVvdGUpLCwkKENPTkZJ R19BUkNIX0hXRUlHSFRfQ0ZMQUdTKSkNCiBvYmotJChDT05GSUdfR0VORVJJQ19IV0VJR0hUKSAr PSBod2VpZ2h0Lm8NCiANCmRpZmYgLS1naXQgYS9tbS9vb21fa2lsbC5jIGIvbW0vb29tX2tpbGwu Yw0KaW5kZXggMDY5YjY0ZS4uNGRkYTk0OCAxMDA2NDQNCi0tLSBhL21tL29vbV9raWxsLmMNCisr KyBiL21tL29vbV9raWxsLmMNCkBAIC0yMTMsNyArMjEzLDcgQEAgdW5zaWduZWQgaW50IG9vbV9i YWRuZXNzKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IG1lbV9jZ3JvdXAgKm1lbSwNCiAJ ICogaW1wbGVtZW50YXRpb24gdXNlZCBieSBMU01zLg0KIAkgKi8NCiAJaWYgKGhhc19jYXBhYmls aXR5X25vYXVkaXQocCwgQ0FQX1NZU19BRE1JTikpDQotCQlwb2ludHMgLT0gMzA7DQorCQlwb2lu dHMgLT0gKHBvaW50cyAqIDMpIC8gMTAwOw0KIA0KIAkvKg0KIAkgKiAvcHJvYy9waWQvb29tX3Nj b3JlX2FkaiByYW5nZXMgZnJvbSAtMTAwMCB0byArMTAwMCBzdWNoIHRoYXQgaXQgbWF5DQpkaWZm IC0tZ2l0IGEvbW0vcGFnZS13cml0ZWJhY2suYyBiL21tL3BhZ2Utd3JpdGViYWNrLmMNCmluZGV4 IGVhM2Y4M2IuLmI1Y2Q3OTYgMTAwNjQ0DQotLS0gYS9tbS9wYWdlLXdyaXRlYmFjay5jDQorKysg Yi9tbS9wYWdlLXdyaXRlYmFjay5jDQpAQCAtMTc3NiwxMSArMTc3NiwxMiBAQCBpbnQgX19zZXRf cGFnZV9kaXJ0eV9ub2J1ZmZlcnMoc3RydWN0IHBhZ2UgKnBhZ2UpDQogCWlmICghVGVzdFNldFBh Z2VEaXJ0eShwYWdlKSkgew0KIAkJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBwYWdl X21hcHBpbmcocGFnZSk7DQogCQlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZzI7DQorCQl1 bnNpZ25lZCBsb25nIGZsYWdzOw0KIA0KIAkJaWYgKCFtYXBwaW5nKQ0KIAkJCXJldHVybiAxOw0K IA0KLQkJc3Bpbl9sb2NrX2lycSgmbWFwcGluZy0+dHJlZV9sb2NrKTsNCisJCXNwaW5fbG9ja19p cnFzYXZlKCZtYXBwaW5nLT50cmVlX2xvY2ssIGZsYWdzKTsNCiAJCW1hcHBpbmcyID0gcGFnZV9t YXBwaW5nKHBhZ2UpOw0KIAkJaWYgKG1hcHBpbmcyKSB7IC8qIFJhY2Ugd2l0aCB0cnVuY2F0ZT8g Ki8NCiAJCQlCVUdfT04obWFwcGluZzIgIT0gbWFwcGluZyk7DQpAQCAtMTc4OSw3ICsxNzkwLDcg QEAgaW50IF9fc2V0X3BhZ2VfZGlydHlfbm9idWZmZXJzKHN0cnVjdCBwYWdlICpwYWdlKQ0KIAkJ CXJhZGl4X3RyZWVfdGFnX3NldCgmbWFwcGluZy0+cGFnZV90cmVlLA0KIAkJCQlwYWdlX2luZGV4 KHBhZ2UpLCBQQUdFQ0FDSEVfVEFHX0RJUlRZKTsNCiAJCX0NCi0JCXNwaW5fdW5sb2NrX2lycSgm bWFwcGluZy0+dHJlZV9sb2NrKTsNCisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm1hcHBpbmct PnRyZWVfbG9jaywgZmxhZ3MpOw0KIAkJaWYgKG1hcHBpbmctPmhvc3QpIHsNCiAJCQkvKiAhUGFn ZUFub24gJiYgIXN3YXBwZXJfc3BhY2UgKi8NCiAJCQlfX21hcmtfaW5vZGVfZGlydHkobWFwcGlu Zy0+aG9zdCwgSV9ESVJUWV9QQUdFUyk7DQpkaWZmIC0tZ2l0IGEvbW0vcm1hcC5jIGIvbW0vcm1h cC5jDQppbmRleCA4Njg1Njk3Li41MmEyZjM2IDEwMDY0NA0KLS0tIGEvbW0vcm1hcC5jDQorKysg Yi9tbS9ybWFwLmMNCkBAIC01ODEsNyArNTgxLDExIEBAIHB0ZV90ICpfX3BhZ2VfY2hlY2tfYWRk cmVzcyhzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IG1tX3N0cnVjdCAqbW0sDQogCXNwaW5sb2Nr X3QgKnB0bDsNCiANCiAJaWYgKHVubGlrZWx5KFBhZ2VIdWdlKHBhZ2UpKSkgew0KKwkJLyogd2hl biBwdWQgaXMgbm90IHByZXNlbnQsIHB0ZSB3aWxsIGJlIE5VTEwgKi8NCiAJCXB0ZSA9IGh1Z2Vf cHRlX29mZnNldChtbSwgYWRkcmVzcyk7DQorCQlpZiAoIXB0ZSkNCisJCQlyZXR1cm4gTlVMTDsN CisNCiAJCXB0bCA9ICZtbS0+cGFnZV90YWJsZV9sb2NrOw0KIAkJZ290byBjaGVjazsNCiAJfQ0K ZGlmZiAtLWdpdCBhL21tL3NsdWIuYyBiL21tL3NsdWIuYw0KaW5kZXggNTcxMDc4OC4uZmM3MTlm NyAxMDA2NDQNCi0tLSBhL21tL3NsdWIuYw0KKysrIGIvbW0vc2x1Yi5jDQpAQCAtNDQ4Myw3ICs0 NDgzLDEzIEBAIHN0YXRpYyBzc2l6ZV90IHNob3dfc2xhYl9vYmplY3RzKHN0cnVjdCBrbWVtX2Nh Y2hlICpzLA0KIAkJCXBhZ2UgPSBjLT5wYXJ0aWFsOw0KIA0KIAkJCWlmIChwYWdlKSB7DQotCQkJ CXggPSBwYWdlLT5wb2JqZWN0czsNCisJCQkJbm9kZSA9IHBhZ2VfdG9fbmlkKHBhZ2UpOw0KKwkJ CQlpZiAoZmxhZ3MgJiBTT19UT1RBTCkNCisJCQkJCVdBUk5fT05fT05DRSgxKTsNCisJCQkJZWxz ZSBpZiAoZmxhZ3MgJiBTT19PQkpFQ1RTKQ0KKwkJCQkJV0FSTl9PTl9PTkNFKDEpOw0KKwkJCQll bHNlDQorCQkJCQl4ID0gcGFnZS0+cGFnZXM7DQogCQkJCXRvdGFsICs9IHg7DQogCQkJCW5vZGVz W25vZGVdICs9IHg7DQogCQkJfQ0KZGlmZiAtLWdpdCBhL21tL3N3YXBmaWxlLmMgYi9tbS9zd2Fw ZmlsZS5jDQppbmRleCBmYWQxODMwLi5kYmQyYjY3IDEwMDY0NA0KLS0tIGEvbW0vc3dhcGZpbGUu Yw0KKysrIGIvbW0vc3dhcGZpbGUuYw0KQEAgLTE2NDksNyArMTY0OSw2IEBAIFNZU0NBTExfREVG SU5FMShzd2Fwb2ZmLCBjb25zdCBjaGFyIF9fdXNlciAqLCBzcGVjaWFsZmlsZSkNCiAJcC0+bWF4 ID0gMDsNCiAJc3dhcF9tYXAgPSBwLT5zd2FwX21hcDsNCiAJcC0+c3dhcF9tYXAgPSBOVUxMOw0K LQlwLT5mbGFncyA9IDA7DQogCXNwaW5fdW5sb2NrKCZzd2FwX2xvY2spOw0KIAltdXRleF91bmxv Y2soJnN3YXBvbl9tdXRleCk7DQogCXZmcmVlKHN3YXBfbWFwKTsNCkBAIC0xNjY3LDYgKzE2NjYs MTYgQEAgU1lTQ0FMTF9ERUZJTkUxKHN3YXBvZmYsIGNvbnN0IGNoYXIgX191c2VyICosIHNwZWNp YWxmaWxlKQ0KIAkJbXV0ZXhfdW5sb2NrKCZpbm9kZS0+aV9tdXRleCk7DQogCX0NCiAJZmlscF9j bG9zZShzd2FwX2ZpbGUsIE5VTEwpOw0KKw0KKwkvKg0KKwkgKiBDbGVhciB0aGUgU1dQX1VTRUQg ZmxhZyBhZnRlciBhbGwgcmVzb3VyY2VzIGFyZSBmcmVlZCBzbyB0aGF0IHN3YXBvbg0KKwkgKiBj YW4gcmV1c2UgdGhpcyBzd2FwX2luZm8gaW4gYWxsb2Nfc3dhcF9pbmZvKCkgc2FmZWx5LiAgSXQg aXMgb2sgdG8NCisJICogbm90IGhvbGQgcC0+bG9jayBhZnRlciB3ZSBjbGVhcmVkIGl0cyBTV1Bf V1JJVEVPSy4NCisJICovDQorCXNwaW5fbG9jaygmc3dhcF9sb2NrKTsNCisJcC0+ZmxhZ3MgPSAw Ow0KKwlzcGluX3VubG9jaygmc3dhcF9sb2NrKTsNCisNCiAJZXJyID0gMDsNCiAJYXRvbWljX2lu YygmcHJvY19wb2xsX2V2ZW50KTsNCiAJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZwcm9jX3BvbGxf d2FpdCk7DQpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZmliX3J1bGVzLmMgYi9uZXQvY29yZS9maWJf cnVsZXMuYw0KaW5kZXggYzBjMjFiMS4uNmFmNTRmMiAxMDA2NDQNCi0tLSBhL25ldC9jb3JlL2Zp Yl9ydWxlcy5jDQorKysgYi9uZXQvY29yZS9maWJfcnVsZXMuYw0KQEAgLTcxOCw2ICs3MTgsMTMg QEAgc3RhdGljIGludCBmaWJfcnVsZXNfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp0aGlz LCB1bnNpZ25lZCBsb25nIGV2ZW50LA0KIAkJCWF0dGFjaF9ydWxlcygmb3BzLT5ydWxlc19saXN0 LCBkZXYpOw0KIAkJYnJlYWs7DQogDQorCWNhc2UgTkVUREVWX0NIQU5HRU5BTUU6DQorCQlsaXN0 X2Zvcl9lYWNoX2VudHJ5KG9wcywgJm5ldC0+cnVsZXNfb3BzLCBsaXN0KSB7DQorCQkJZGV0YWNo X3J1bGVzKCZvcHMtPnJ1bGVzX2xpc3QsIGRldik7DQorCQkJYXR0YWNoX3J1bGVzKCZvcHMtPnJ1 bGVzX2xpc3QsIGRldik7DQorCQl9DQorCQlicmVhazsNCisNCiAJY2FzZSBORVRERVZfVU5SRUdJ U1RFUjoNCiAJCWxpc3RfZm9yX2VhY2hfZW50cnkob3BzLCAmbmV0LT5ydWxlc19vcHMsIGxpc3Qp DQogCQkJZGV0YWNoX3J1bGVzKCZvcHMtPnJ1bGVzX2xpc3QsIGRldik7DQpkaWZmIC0tZ2l0IGEv bmV0L2NvcmUvc2tidWZmLmMgYi9uZXQvY29yZS9za2J1ZmYuYw0KaW5kZXggYWY5YzNjNi4uNWQ2 Y2I1NCAxMDA2NDQNCi0tLSBhL25ldC9jb3JlL3NrYnVmZi5jDQorKysgYi9uZXQvY29yZS9za2J1 ZmYuYw0KQEAgLTc0LDM2ICs3NCw2IEBADQogc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hlICpza2J1 ZmZfaGVhZF9jYWNoZSBfX3JlYWRfbW9zdGx5Ow0KIHN0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAq c2tidWZmX2ZjbG9uZV9jYWNoZSBfX3JlYWRfbW9zdGx5Ow0KIA0KLXN0YXRpYyB2b2lkIHNvY2tf cGlwZV9idWZfcmVsZWFzZShzdHJ1Y3QgcGlwZV9pbm9kZV9pbmZvICpwaXBlLA0KLQkJCQkgIHN0 cnVjdCBwaXBlX2J1ZmZlciAqYnVmKQ0KLXsNCi0JcHV0X3BhZ2UoYnVmLT5wYWdlKTsNCi19DQot DQotc3RhdGljIHZvaWQgc29ja19waXBlX2J1Zl9nZXQoc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAq cGlwZSwNCi0JCQkJc3RydWN0IHBpcGVfYnVmZmVyICpidWYpDQotew0KLQlnZXRfcGFnZShidWYt PnBhZ2UpOw0KLX0NCi0NCi1zdGF0aWMgaW50IHNvY2tfcGlwZV9idWZfc3RlYWwoc3RydWN0IHBp cGVfaW5vZGVfaW5mbyAqcGlwZSwNCi0JCQkgICAgICAgc3RydWN0IHBpcGVfYnVmZmVyICpidWYp DQotew0KLQlyZXR1cm4gMTsNCi19DQotDQotDQotLyogUGlwZSBidWZmZXIgb3BlcmF0aW9ucyBm b3IgYSBzb2NrZXQuICovDQotc3RhdGljIGNvbnN0IHN0cnVjdCBwaXBlX2J1Zl9vcGVyYXRpb25z IHNvY2tfcGlwZV9idWZfb3BzID0gew0KLQkuY2FuX21lcmdlID0gMCwNCi0JLm1hcCA9IGdlbmVy aWNfcGlwZV9idWZfbWFwLA0KLQkudW5tYXAgPSBnZW5lcmljX3BpcGVfYnVmX3VubWFwLA0KLQku Y29uZmlybSA9IGdlbmVyaWNfcGlwZV9idWZfY29uZmlybSwNCi0JLnJlbGVhc2UgPSBzb2NrX3Bp cGVfYnVmX3JlbGVhc2UsDQotCS5zdGVhbCA9IHNvY2tfcGlwZV9idWZfc3RlYWwsDQotCS5nZXQg PSBzb2NrX3BpcGVfYnVmX2dldCwNCi19Ow0KLQ0KIC8qDQogICoJS2VlcCBvdXQtb2YtbGluZSB0 byBwcmV2ZW50IGtlcm5lbCBibG9hdC4NCiAgKglfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MgaXMg bm90IHVzZWQgYmVjYXVzZSBpdCBpcyBub3QgYWx3YXlzDQpAQCAtMTY2NSw3ICsxNjM1LDcgQEAg aW50IHNrYl9zcGxpY2VfYml0cyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1bnNpZ25lZCBpbnQgb2Zm c2V0LA0KIAkJLnBhcnRpYWwgPSBwYXJ0aWFsLA0KIAkJLm5yX3BhZ2VzX21heCA9IE1BWF9TS0Jf RlJBR1MsDQogCQkuZmxhZ3MgPSBmbGFncywNCi0JCS5vcHMgPSAmc29ja19waXBlX2J1Zl9vcHMs DQorCQkub3BzID0gJm5vc3RlYWxfcGlwZV9idWZfb3BzLA0KIAkJLnNwZF9yZWxlYXNlID0gc29j a19zcGRfcmVsZWFzZSwNCiAJfTsNCiAJc3RydWN0IHNrX2J1ZmYgKmZyYWdfaXRlcjsNCmRpZmYg LS1naXQgYS9uZXQvbWFjODAyMTEvc3RhX2luZm8uYyBiL25ldC9tYWM4MDIxMS9zdGFfaW5mby5j DQppbmRleCA0ODg2MDBjLi4xOTE0ZjVhIDEwMDY0NA0KLS0tIGEvbmV0L21hYzgwMjExL3N0YV9p bmZvLmMNCisrKyBiL25ldC9tYWM4MDIxMS9zdGFfaW5mby5jDQpAQCAtMjkyLDYgKzI5Miw3IEBA IHN0cnVjdCBzdGFfaW5mbyAqc3RhX2luZm9fYWxsb2Moc3RydWN0IGllZWU4MDIxMV9zdWJfaWZf ZGF0YSAqc2RhdGEsDQogCQlyZXR1cm4gTlVMTDsNCiANCiAJc3Bpbl9sb2NrX2luaXQoJnN0YS0+ bG9jayk7DQorCXNwaW5fbG9ja19pbml0KCZzdGEtPnBzX2xvY2spOw0KIAlJTklUX1dPUksoJnN0 YS0+ZHJ2X3VuYmxvY2tfd2ssIHN0YV91bmJsb2NrKTsNCiAJSU5JVF9XT1JLKCZzdGEtPmFtcGR1 X21sbWUud29yaywgaWVlZTgwMjExX2JhX3Nlc3Npb25fd29yayk7DQogCW11dGV4X2luaXQoJnN0 YS0+YW1wZHVfbWxtZS5tdHgpOw0KQEAgLTExNDEsNiArMTE0Miw4IEBAIHZvaWQgaWVlZTgwMjEx X3N0YV9wc19kZWxpdmVyX3dha2V1cChzdHJ1Y3Qgc3RhX2luZm8gKnN0YSkNCiANCiAJc2tiX3F1 ZXVlX2hlYWRfaW5pdCgmcGVuZGluZyk7DQogDQorCS8qIHN5bmMgd2l0aCBpZWVlODAyMTFfdHhf aF91bmljYXN0X3BzX2J1ZiAqLw0KKwlzcGluX2xvY2soJnN0YS0+cHNfbG9jayk7DQogCS8qIFNl bmQgYWxsIGJ1ZmZlcmVkIGZyYW1lcyB0byB0aGUgc3RhdGlvbiAqLw0KIAlmb3IgKGFjID0gMDsg YWMgPCBJRUVFODAyMTFfTlVNX0FDUzsgYWMrKykgew0KIAkJaW50IGNvdW50ID0gc2tiX3F1ZXVl X2xlbigmcGVuZGluZyksIHRtcDsNCkBAIC0xMTYwLDYgKzExNjMsNyBAQCB2b2lkIGllZWU4MDIx MV9zdGFfcHNfZGVsaXZlcl93YWtldXAoc3RydWN0IHN0YV9pbmZvICpzdGEpDQogCX0NCiANCiAJ aWVlZTgwMjExX2FkZF9wZW5kaW5nX3NrYnNfZm4obG9jYWwsICZwZW5kaW5nLCBjbGVhcl9zdGFf cHNfZmxhZ3MsIHN0YSk7DQorCXNwaW5fdW5sb2NrKCZzdGEtPnBzX2xvY2spOw0KIA0KIAlsb2Nh bC0+dG90YWxfcHNfYnVmZmVyZWQgLT0gYnVmZmVyZWQ7DQogDQpAQCAtMTIwNyw2ICsxMjExLDcg QEAgc3RhdGljIHZvaWQgaWVlZTgwMjExX3NlbmRfbnVsbF9yZXNwb25zZShzdHJ1Y3QgaWVlZTgw MjExX3N1Yl9pZl9kYXRhICpzZGF0YSwNCiAJbWVtY3B5KG51bGxmdW5jLT5hZGRyMSwgc3RhLT5z dGEuYWRkciwgRVRIX0FMRU4pOw0KIAltZW1jcHkobnVsbGZ1bmMtPmFkZHIyLCBzZGF0YS0+dmlm LmFkZHIsIEVUSF9BTEVOKTsNCiAJbWVtY3B5KG51bGxmdW5jLT5hZGRyMywgc2RhdGEtPnZpZi5h ZGRyLCBFVEhfQUxFTik7DQorCW51bGxmdW5jLT5zZXFfY3RybCA9IDA7DQogDQogCXNrYi0+cHJp b3JpdHkgPSB0aWQ7DQogCXNrYl9zZXRfcXVldWVfbWFwcGluZyhza2IsIGllZWU4MDJfMWRfdG9f YWNbdGlkXSk7DQpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3N0YV9pbmZvLmggYi9uZXQvbWFj ODAyMTEvc3RhX2luZm8uaA0KaW5kZXggOGM4Y2UwNS4uYTY4MTU1ZiAxMDA2NDQNCi0tLSBhL25l dC9tYWM4MDIxMS9zdGFfaW5mby5oDQorKysgYi9uZXQvbWFjODAyMTEvc3RhX2luZm8uaA0KQEAg LTIxNiw2ICsyMTYsNyBAQCBzdHJ1Y3Qgc3RhX2FtcGR1X21sbWUgew0KICAqIEBkcnZfdW5ibG9j a193azogdXNlZCBmb3IgZHJpdmVyIFBTIHVuYmxvY2tpbmcNCiAgKiBAbGlzdGVuX2ludGVydmFs OiBsaXN0ZW4gaW50ZXJ2YWwgb2YgdGhpcyBzdGF0aW9uLCB3aGVuIHdlJ3JlIGFjdGluZyBhcyBB UA0KICAqIEBfZmxhZ3M6IFNUQSBmbGFncywgc2VlICZlbnVtIGllZWU4MDIxMV9zdGFfaW5mb19m bGFncywgZG8gbm90IHVzZSBkaXJlY3RseQ0KKyAqIEBwc19sb2NrOiB1c2VkIGZvciBwb3dlcnNh dmUgKHdoZW4gbWFjODAyMTEgaXMgdGhlIEFQKSByZWxhdGVkIGxvY2tpbmcNCiAgKiBAcHNfdHhf YnVmOiBidWZmZXJzIChwZXIgQUMpIG9mIGZyYW1lcyB0byB0cmFuc21pdCB0byB0aGlzIHN0YXRp b24NCiAgKgl3aGVuIGl0IGxlYXZlcyBwb3dlciBzYXZpbmcgc3RhdGUgb3IgcG9sbHMNCiAgKiBA dHhfZmlsdGVyZWQ6IGJ1ZmZlcnMgKHBlciBBQykgb2YgZnJhbWVzIHdlIGFscmVhZHkgdHJpZWQg dG8NCkBAIC0yODQsMTAgKzI4NSw4IEBAIHN0cnVjdCBzdGFfaW5mbyB7DQogCS8qIHVzZSB0aGUg YWNjZXNzb3JzIGRlZmluZWQgYmVsb3cgKi8NCiAJdW5zaWduZWQgbG9uZyBfZmxhZ3M7DQogDQot CS8qDQotCSAqIFNUQSBwb3dlcnNhdmUgZnJhbWUgcXVldWVzLCBubyBtb3JlIHRoYW4gdGhlIGlu dGVybmFsDQotCSAqIGxvY2tpbmcgcmVxdWlyZWQuDQotCSAqLw0KKwkvKiBTVEEgcG93ZXJzYXZl IGxvY2sgYW5kIGZyYW1lIHF1ZXVlcyAqLw0KKwlzcGlubG9ja190IHBzX2xvY2s7DQogCXN0cnVj dCBza19idWZmX2hlYWQgcHNfdHhfYnVmW0lFRUU4MDIxMV9OVU1fQUNTXTsNCiAJc3RydWN0IHNr X2J1ZmZfaGVhZCB0eF9maWx0ZXJlZFtJRUVFODAyMTFfTlVNX0FDU107DQogCXVuc2lnbmVkIGxv bmcgZHJpdmVyX2J1ZmZlcmVkX3RpZHM7DQpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3R4LmMg Yi9uZXQvbWFjODAyMTEvdHguYw0KaW5kZXggNGZmMzViZi4uMjViYmIyZSAxMDA2NDQNCi0tLSBh L25ldC9tYWM4MDIxMS90eC5jDQorKysgYi9uZXQvbWFjODAyMTEvdHguYw0KQEAgLTQ2NCw2ICs0 NjQsMjAgQEAgaWVlZTgwMjExX3R4X2hfdW5pY2FzdF9wc19idWYoc3RydWN0IGllZWU4MDIxMV90 eF9kYXRhICp0eCkNCiAjZW5kaWYgLyogQ09ORklHX01BQzgwMjExX1ZFUkJPU0VfUFNfREVCVUcg Ki8NCiAJCWlmICh0eC0+bG9jYWwtPnRvdGFsX3BzX2J1ZmZlcmVkID49IFRPVEFMX01BWF9UWF9C VUZGRVIpDQogCQkJcHVyZ2Vfb2xkX3BzX2J1ZmZlcnModHgtPmxvY2FsKTsNCisNCisJCS8qIHN5 bmMgd2l0aCBpZWVlODAyMTFfc3RhX3BzX2RlbGl2ZXJfd2FrZXVwICovDQorCQlzcGluX2xvY2so JnN0YS0+cHNfbG9jayk7DQorCQkvKg0KKwkJICogU1RBIHdva2UgdXAgdGhlIG1lYW50aW1lIGFu ZCBhbGwgdGhlIGZyYW1lcyBvbiBwc190eF9idWYgaGF2ZQ0KKwkJICogYmVlbiBxdWV1ZWQgdG8g cGVuZGluZyBxdWV1ZS4gTm8gcmVvcmRlcmluZyBjYW4gaGFwcGVuLCBnbw0KKwkJICogYWhlYWQg YW5kIFR4IHRoZSBwYWNrZXQuDQorCQkgKi8NCisJCWlmICghdGVzdF9zdGFfZmxhZyhzdGEsIFdM QU5fU1RBX1BTX1NUQSkgJiYNCisJCSAgICAhdGVzdF9zdGFfZmxhZyhzdGEsIFdMQU5fU1RBX1BT X0RSSVZFUikpIHsNCisJCQlzcGluX3VubG9jaygmc3RhLT5wc19sb2NrKTsNCisJCQlyZXR1cm4g VFhfQ09OVElOVUU7DQorCQl9DQorDQogCQlpZiAoc2tiX3F1ZXVlX2xlbigmc3RhLT5wc190eF9i dWZbYWNdKSA+PSBTVEFfTUFYX1RYX0JVRkZFUikgew0KIAkJCXN0cnVjdCBza19idWZmICpvbGQg PSBza2JfZGVxdWV1ZSgmc3RhLT5wc190eF9idWZbYWNdKTsNCiAjaWZkZWYgQ09ORklHX01BQzgw MjExX1ZFUkJPU0VfUFNfREVCVUcNCkBAIC00ODAsNiArNDk0LDcgQEAgaWVlZTgwMjExX3R4X2hf dW5pY2FzdF9wc19idWYoc3RydWN0IGllZWU4MDIxMV90eF9kYXRhICp0eCkNCiAJCWluZm8tPmNv bnRyb2wudmlmID0gJnR4LT5zZGF0YS0+dmlmOw0KIAkJaW5mby0+ZmxhZ3MgfD0gSUVFRTgwMjEx X1RYX0lOVEZMX05FRURfVFhQUk9DRVNTSU5HOw0KIAkJc2tiX3F1ZXVlX3RhaWwoJnN0YS0+cHNf dHhfYnVmW2FjXSwgdHgtPnNrYik7DQorCQlzcGluX3VubG9jaygmc3RhLT5wc19sb2NrKTsNCiAN CiAJCWlmICghdGltZXJfcGVuZGluZygmbG9jYWwtPnN0YV9jbGVhbnVwKSkNCiAJCQltb2RfdGlt ZXIoJmxvY2FsLT5zdGFfY2xlYW51cCwNCkBAIC04ODQsNyArODk5LDcgQEAgc3RhdGljIGludCBp ZWVlODAyMTFfZnJhZ21lbnQoc3RydWN0IGllZWU4MDIxMV9sb2NhbCAqbG9jYWwsDQogCQlwb3Mg Kz0gZnJhZ2xlbjsNCiAJfQ0KIA0KLQlza2ItPmxlbiA9IGhkcmxlbiArIHBlcl9mcmFnbTsNCisJ c2tiX3RyaW0oc2tiLCBoZHJsZW4gKyBwZXJfZnJhZ20pOw0KIAlyZXR1cm4gMDsNCiB9DQogDQpk aWZmIC0tZ2l0IGEvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1 bnMuYw0KaW5kZXggY2IxYzQzMC4uZjEzMWNhZiAxMDA2NDQNCi0tLSBhL25ldC9zY3RwL3NtX3N0 YXRlZnVucy5jDQorKysgYi9uZXQvc2N0cC9zbV9zdGF0ZWZ1bnMuYw0KQEAgLTc0Nyw2ICs3NDcs MTMgQEAgc2N0cF9kaXNwb3NpdGlvbl90IHNjdHBfc2ZfZG9fNV8xRF9jZShjb25zdCBzdHJ1Y3Qg c2N0cF9lbmRwb2ludCAqZXAsDQogCQlzdHJ1Y3Qgc2N0cF9jaHVuayBhdXRoOw0KIAkJc2N0cF9p ZXJyb3JfdCByZXQ7DQogDQorCQkvKiBNYWtlIHN1cmUgdGhhdCB3ZSBhbmQgdGhlIHBlZXIgYXJl IEFVVEggY2FwYWJsZSAqLw0KKwkJaWYgKCFzY3RwX2F1dGhfZW5hYmxlIHx8ICFuZXdfYXNvYy0+ cGVlci5hdXRoX2NhcGFibGUpIHsNCisJCQlrZnJlZV9za2IoY2h1bmstPmF1dGhfY2h1bmspOw0K KwkJCXNjdHBfYXNzb2NpYXRpb25fZnJlZShuZXdfYXNvYyk7DQorCQkJcmV0dXJuIHNjdHBfc2Zf cGRpc2NhcmQoZXAsIGFzb2MsIHR5cGUsIGFyZywgY29tbWFuZHMpOw0KKwkJfQ0KKw0KIAkJLyog c2V0LXVwIG91ciBmYWtlIGNodW5rIHNvIHRoYXQgd2UgY2FuIHByb2Nlc3MgaXQgKi8NCiAJCWF1 dGguc2tiID0gY2h1bmstPmF1dGhfY2h1bms7DQogCQlhdXRoLmFzb2MgPSBjaHVuay0+YXNvYzsN CmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jDQppbmRl eCBjNTNkMDFlLi5jMjhlYjdiIDEwMDY0NA0KLS0tIGEvbmV0L3NjdHAvc29ja2V0LmMNCisrKyBi L25ldC9zY3RwL3NvY2tldC5jDQpAQCAtNzAsNiArNzAsNyBAQA0KICNpbmNsdWRlIDxsaW51eC9p bml0Lmg+DQogI2luY2x1ZGUgPGxpbnV4L2NyeXB0by5oPg0KICNpbmNsdWRlIDxsaW51eC9zbGFi Lmg+DQorI2luY2x1ZGUgPGxpbnV4L2NvbXBhdC5oPg0KIA0KICNpbmNsdWRlIDxuZXQvaXAuaD4N CiAjaW5jbHVkZSA8bmV0L2ljbXAuaD4NCkBAIC0xMzc2LDExICsxMzc3LDE5IEBAIFNDVFBfU1RB VElDIGludCBzY3RwX3NldHNvY2tvcHRfY29ubmVjdHgoc3RydWN0IHNvY2sqIHNrLA0KIC8qDQog ICogTmV3IChob3BlZnVsbHkgZmluYWwpIGludGVyZmFjZSBmb3IgdGhlIEFQSS4NCiAgKiBXZSB1 c2UgdGhlIHNjdHBfZ2V0YWRkcnNfb2xkIHN0cnVjdHVyZSBzbyB0aGF0IHVzZS1zcGFjZSBsaWJy YXJ5DQotICogY2FuIGF2b2lkIGFueSB1bm5lY2Vzc2FyeSBhbGxvY2F0aW9ucy4gICBUaGUgb25s eSBkZWZmZXJlbnQgcGFydA0KKyAqIGNhbiBhdm9pZCBhbnkgdW5uZWNlc3NhcnkgYWxsb2NhdGlv bnMuIFRoZSBvbmx5IGRpZmZlcmVudCBwYXJ0DQogICogaXMgdGhhdCB3ZSBzdG9yZSB0aGUgYWN0 dWFsIGxlbmd0aCBvZiB0aGUgYWRkcmVzcyBidWZmZXIgaW50byB0aGUNCi0gKiBhZGRyc19udW0g c3RydWN0dXJlIG1lbWJlci4gIFRoYXQgd2F5IHdlIGNhbiByZS11c2UgdGhlIGV4aXN0aW5nDQor ICogYWRkcnNfbnVtIHN0cnVjdHVyZSBtZW1iZXIuIFRoYXQgd2F5IHdlIGNhbiByZS11c2UgdGhl IGV4aXN0aW5nDQogICogY29kZS4NCiAgKi8NCisjaWZkZWYgQ09ORklHX0NPTVBBVA0KK3N0cnVj dCBjb21wYXRfc2N0cF9nZXRhZGRyc19vbGQgew0KKwlzY3RwX2Fzc29jX3QJYXNzb2NfaWQ7DQor CXMzMgkJYWRkcl9udW07DQorCWNvbXBhdF91cHRyX3QJYWRkcnM7CQkvKiBzdHJ1Y3Qgc29ja2Fk ZHIgKiAqLw0KK307DQorI2VuZGlmDQorDQogU0NUUF9TVEFUSUMgaW50IHNjdHBfZ2V0c29ja29w dF9jb25uZWN0eDMoc3RydWN0IHNvY2sqIHNrLCBpbnQgbGVuLA0KIAkJCQkJY2hhciBfX3VzZXIg Km9wdHZhbCwNCiAJCQkJCWludCBfX3VzZXIgKm9wdGxlbikNCkBAIC0xMzg5LDE2ICsxMzk4LDMw IEBAIFNDVFBfU1RBVElDIGludCBzY3RwX2dldHNvY2tvcHRfY29ubmVjdHgzKHN0cnVjdCBzb2Nr KiBzaywgaW50IGxlbiwNCiAJc2N0cF9hc3NvY190IGFzc29jX2lkID0gMDsNCiAJaW50IGVyciA9 IDA7DQogDQotCWlmIChsZW4gPCBzaXplb2YocGFyYW0pKQ0KLQkJcmV0dXJuIC1FSU5WQUw7DQor I2lmZGVmIENPTkZJR19DT01QQVQNCisJaWYgKGlzX2NvbXBhdF90YXNrKCkpIHsNCisJCXN0cnVj dCBjb21wYXRfc2N0cF9nZXRhZGRyc19vbGQgcGFyYW0zMjsNCiANCi0JaWYgKGNvcHlfZnJvbV91 c2VyKCZwYXJhbSwgb3B0dmFsLCBzaXplb2YocGFyYW0pKSkNCi0JCXJldHVybiAtRUZBVUxUOw0K KwkJaWYgKGxlbiA8IHNpemVvZihwYXJhbTMyKSkNCisJCQlyZXR1cm4gLUVJTlZBTDsNCisJCWlm IChjb3B5X2Zyb21fdXNlcigmcGFyYW0zMiwgb3B0dmFsLCBzaXplb2YocGFyYW0zMikpKQ0KKwkJ CXJldHVybiAtRUZBVUxUOw0KIA0KLQllcnIgPSBfX3NjdHBfc2V0c29ja29wdF9jb25uZWN0eChz aywNCi0JCQkoc3RydWN0IHNvY2thZGRyIF9fdXNlciAqKXBhcmFtLmFkZHJzLA0KLQkJCXBhcmFt LmFkZHJfbnVtLCAmYXNzb2NfaWQpOw0KKwkJcGFyYW0uYXNzb2NfaWQgPSBwYXJhbTMyLmFzc29j X2lkOw0KKwkJcGFyYW0uYWRkcl9udW0gPSBwYXJhbTMyLmFkZHJfbnVtOw0KKwkJcGFyYW0uYWRk cnMgPSBjb21wYXRfcHRyKHBhcmFtMzIuYWRkcnMpOw0KKwl9IGVsc2UNCisjZW5kaWYNCisJew0K KwkJaWYgKGxlbiA8IHNpemVvZihwYXJhbSkpDQorCQkJcmV0dXJuIC1FSU5WQUw7DQorCQlpZiAo Y29weV9mcm9tX3VzZXIoJnBhcmFtLCBvcHR2YWwsIHNpemVvZihwYXJhbSkpKQ0KKwkJCXJldHVy biAtRUZBVUxUOw0KKwl9DQogDQorCWVyciA9IF9fc2N0cF9zZXRzb2Nrb3B0X2Nvbm5lY3R4KHNr LCAoc3RydWN0IHNvY2thZGRyIF9fdXNlciAqKQ0KKwkJCQkJIHBhcmFtLmFkZHJzLCBwYXJhbS5h ZGRyX251bSwNCisJCQkJCSAmYXNzb2NfaWQpOw0KIAlpZiAoZXJyID09IDAgfHwgZXJyID09IC1F SU5QUk9HUkVTUykgew0KIAkJaWYgKGNvcHlfdG9fdXNlcihvcHR2YWwsICZhc3NvY19pZCwgc2l6 ZW9mKGFzc29jX2lkKSkpDQogCQkJcmV0dXJuIC1FRkFVTFQ7DQpkaWZmIC0tZ2l0IGEvbmV0L3N1 bnJwYy9jbG50LmMgYi9uZXQvc3VucnBjL2NsbnQuYw0KaW5kZXggYjIyNTBkYS4uYTBlNTVlNSAx MDA2NDQNCi0tLSBhL25ldC9zdW5ycGMvY2xudC5jDQorKysgYi9uZXQvc3VucnBjL2NsbnQuYw0K QEAgLTEwMDIsOSArMTAwMiwxMyBAQCBjYWxsX3JlZnJlc2hyZXN1bHQoc3RydWN0IHJwY190YXNr ICp0YXNrKQ0KIAl0YXNrLT50a19hY3Rpb24gPSBjYWxsX3JlZnJlc2g7DQogCXN3aXRjaCAoc3Rh dHVzKSB7DQogCWNhc2UgMDoNCi0JCWlmIChycGNhdXRoX3VwdG9kYXRlY3JlZCh0YXNrKSkNCisJ CWlmIChycGNhdXRoX3VwdG9kYXRlY3JlZCh0YXNrKSkgew0KIAkJCXRhc2stPnRrX2FjdGlvbiA9 IGNhbGxfYWxsb2NhdGU7DQotCQlyZXR1cm47DQorCQkJcmV0dXJuOw0KKwkJfQ0KKwkJLyogVXNl IHJhdGUtbGltaXRpbmcgYW5kIGEgbWF4IG51bWJlciBvZiByZXRyaWVzIGlmIHJlZnJlc2gNCisJ CSAqIGhhZCBzdGF0dXMgMCBidXQgZmFpbGVkIHRvIHVwZGF0ZSB0aGUgY3JlZC4NCisJCSAqLw0K IAljYXNlIC1FVElNRURPVVQ6DQogCQlycGNfZGVsYXkodGFzaywgMypIWik7DQogCWNhc2UgLUVB R0FJTjoNCmRpZmYgLS1naXQgYS9uZXQvc3VucnBjL3hwcnRzb2NrLmMgYi9uZXQvc3VucnBjL3hw cnRzb2NrLmMNCmluZGV4IGJmYjc4ZmEuLmQ3N2E0ZjAgMTAwNjQ0DQotLS0gYS9uZXQvc3VucnBj L3hwcnRzb2NrLmMNCisrKyBiL25ldC9zdW5ycGMveHBydHNvY2suYw0KQEAgLTUwMSw2ICs1MDEs NyBAQCBzdGF0aWMgaW50IHhzX25vc3BhY2Uoc3RydWN0IHJwY190YXNrICp0YXNrKQ0KIAlzdHJ1 Y3QgcnBjX3Jxc3QgKnJlcSA9IHRhc2stPnRrX3Jxc3RwOw0KIAlzdHJ1Y3QgcnBjX3hwcnQgKnhw cnQgPSByZXEtPnJxX3hwcnQ7DQogCXN0cnVjdCBzb2NrX3hwcnQgKnRyYW5zcG9ydCA9IGNvbnRh aW5lcl9vZih4cHJ0LCBzdHJ1Y3Qgc29ja194cHJ0LCB4cHJ0KTsNCisJc3RydWN0IHNvY2sgKnNr ID0gdHJhbnNwb3J0LT5pbmV0Ow0KIAlpbnQgcmV0ID0gLUVBR0FJTjsNCiANCiAJZHByaW50aygi UlBDOiAlNXUgeG1pdCBpbmNvbXBsZXRlICgldSBsZWZ0IG9mICV1KVxuIiwNCkBAIC01MTgsNyAr NTE5LDcgQEAgc3RhdGljIGludCB4c19ub3NwYWNlKHN0cnVjdCBycGNfdGFzayAqdGFzaykNCiAJ CQkgKiB3aW5kb3cgc2l6ZQ0KIAkJCSAqLw0KIAkJCXNldF9iaXQoU09DS19OT1NQQUNFLCAmdHJh bnNwb3J0LT5zb2NrLT5mbGFncyk7DQotCQkJdHJhbnNwb3J0LT5pbmV0LT5za193cml0ZV9wZW5k aW5nKys7DQorCQkJc2stPnNrX3dyaXRlX3BlbmRpbmcrKzsNCiAJCQkvKiAuLi5hbmQgd2FpdCBm b3IgbW9yZSBidWZmZXIgc3BhY2UgKi8NCiAJCQl4cHJ0X3dhaXRfZm9yX2J1ZmZlcl9zcGFjZSh0 YXNrLCB4c19ub3NwYWNlX2NhbGxiYWNrKTsNCiAJCX0NCkBAIC01MjgsNiArNTI5LDkgQEAgc3Rh dGljIGludCB4c19ub3NwYWNlKHN0cnVjdCBycGNfdGFzayAqdGFzaykNCiAJfQ0KIA0KIAlzcGlu X3VubG9ja19iaCgmeHBydC0+dHJhbnNwb3J0X2xvY2spOw0KKw0KKwkvKiBSYWNlIGJyZWFrZXIg aW4gY2FzZSBtZW1vcnkgaXMgZnJlZWQgYmVmb3JlIGFib3ZlIGNvZGUgaXMgY2FsbGVkICovDQor CXNrLT5za193cml0ZV9zcGFjZShzayk7DQogCXJldHVybiByZXQ7DQogfQ0KIA0KZGlmZiAtLWdp dCBhL25ldC91bml4L2FmX3VuaXguYyBiL25ldC91bml4L2FmX3VuaXguYw0KaW5kZXggZWRkZmRl Yy4uNTRmYzkwYiAxMDA2NDQNCi0tLSBhL25ldC91bml4L2FmX3VuaXguYw0KKysrIGIvbmV0L3Vu aXgvYWZfdW5peC5jDQpAQCAtMTQ5LDggKzE0OSw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB1bml4 X3NldF9zZWNkYXRhKHN0cnVjdCBzY21fY29va2llICpzY20sIHN0cnVjdCBza19idWZmICpza2Ip DQogDQogc3RhdGljIGlubGluZSB1bnNpZ25lZCB1bml4X2hhc2hfZm9sZChfX3dzdW0gbikNCiB7 DQotCXVuc2lnbmVkIGhhc2ggPSAoX19mb3JjZSB1bnNpZ25lZCluOw0KLQloYXNoIF49IGhhc2g+ PjE2Ow0KKwl1bnNpZ25lZCBpbnQgaGFzaCA9IChfX2ZvcmNlIHVuc2lnbmVkIGludCljc3VtX2Zv bGQobik7DQorDQogCWhhc2ggXj0gaGFzaD4+ODsNCiAJcmV0dXJuIGhhc2gmKFVOSVhfSEFTSF9T SVpFLTEpOw0KIH0NCmRpZmYgLS1naXQgYS9zY3JpcHRzL21vZC9maWxlMmFsaWFzLmMgYi9zY3Jp cHRzL21vZC9maWxlMmFsaWFzLmMNCmluZGV4IGQxZDBhZTguLjk4ZmYzMzEgMTAwNjQ0DQotLS0g YS9zY3JpcHRzL21vZC9maWxlMmFsaWFzLmMNCisrKyBiL3NjcmlwdHMvbW9kL2ZpbGUyYWxpYXMu Yw0KQEAgLTEzMCw4ICsxMzAsOCBAQCBzdGF0aWMgdm9pZCBkb191c2JfZW50cnkoc3RydWN0IHVz Yl9kZXZpY2VfaWQgKmlkLA0KIAkJCQlyYW5nZV9sbyA8IDB4OSA/ICJbJVgtOSIgOiAiWyVYIiwN CiAJCQkJcmFuZ2VfbG8pOw0KIAkJCXNwcmludGYoYWxpYXMgKyBzdHJsZW4oYWxpYXMpLA0KLQkJ CQlyYW5nZV9oaSA+IDB4QSA/ICJhLSVYXSIgOiAiJVhdIiwNCi0JCQkJcmFuZ2VfbG8pOw0KKwkJ CQlyYW5nZV9oaSA+IDB4QSA/ICJBLSVYXSIgOiAiJVhdIiwNCisJCQkJcmFuZ2VfaGkpOw0KIAkJ fQ0KIAl9DQogCWlmIChiY2REZXZpY2VfaW5pdGlhbF9kaWdpdHMgPCAoc2l6ZW9mKGlkLT5iY2RE ZXZpY2VfbG8pICogMiAtIDEpKQ0KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvaG9va3Mu YyBiL3NlY3VyaXR5L3NlbGludXgvaG9va3MuYw0KaW5kZXggYmNmMWQ3My4uNGZhNzkzOSAxMDA2 NDQNCi0tLSBhL3NlY3VyaXR5L3NlbGludXgvaG9va3MuYw0KKysrIGIvc2VjdXJpdHkvc2VsaW51 eC9ob29rcy5jDQpAQCAtNDY3NiwyMiArNDY3NiwzMSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHNl bGludXhfaXBfcG9zdHJvdXRlKHN0cnVjdCBza19idWZmICpza2IsIGludCBpZmluZGV4LA0KIAkg KiBhcyBmYXN0IGFuZCBhcyBjbGVhbiBhcyBwb3NzaWJsZS4gKi8NCiAJaWYgKCFzZWxpbnV4X3Bv bGljeWNhcF9uZXRwZWVyKQ0KIAkJcmV0dXJuIHNlbGludXhfaXBfcG9zdHJvdXRlX2NvbXBhdChz a2IsIGlmaW5kZXgsIGZhbWlseSk7DQorDQorCXNlY21hcmtfYWN0aXZlID0gc2VsaW51eF9zZWNt YXJrX2VuYWJsZWQoKTsNCisJcGVlcmxibF9hY3RpdmUgPSBuZXRsYmxfZW5hYmxlZCgpIHx8IHNl bGludXhfeGZybV9lbmFibGVkKCk7DQorCWlmICghc2VjbWFya19hY3RpdmUgJiYgIXBlZXJsYmxf YWN0aXZlKQ0KKwkJcmV0dXJuIE5GX0FDQ0VQVDsNCisNCisJc2sgPSBza2ItPnNrOw0KKw0KICNp ZmRlZiBDT05GSUdfWEZSTQ0KIAkvKiBJZiBza2ItPmRzdC0+eGZybSBpcyBub24tTlVMTCB0aGVu IHRoZSBwYWNrZXQgaXMgdW5kZXJnb2luZyBhbiBJUHNlYw0KIAkgKiBwYWNrZXQgdHJhbnNmb3Jt YXRpb24gc28gYWxsb3cgdGhlIHBhY2tldCB0byBwYXNzIHdpdGhvdXQgYW55IGNoZWNrcw0KIAkg KiBzaW5jZSB3ZSdsbCBoYXZlIGFub3RoZXIgY2hhbmNlIHRvIHBlcmZvcm0gYWNjZXNzIGNvbnRy b2wgY2hlY2tzDQogCSAqIHdoZW4gdGhlIHBhY2tldCBpcyBvbiBpdCdzIGZpbmFsIHdheSBvdXQu DQogCSAqIE5PVEU6IHRoZXJlIGFwcGVhciB0byBiZSBzb21lIElQdjYgbXVsdGljYXN0IGNhc2Vz IHdoZXJlIHNrYi0+ZHN0DQotCSAqICAgICAgIGlzIE5VTEwsIGluIHRoaXMgY2FzZSBnbyBhaGVh ZCBhbmQgYXBwbHkgYWNjZXNzIGNvbnRyb2wuICovDQotCWlmIChza2JfZHN0KHNrYikgIT0gTlVM TCAmJiBza2JfZHN0KHNrYiktPnhmcm0gIT0gTlVMTCkNCisJICogICAgICAgaXMgTlVMTCwgaW4g dGhpcyBjYXNlIGdvIGFoZWFkIGFuZCBhcHBseSBhY2Nlc3MgY29udHJvbC4NCisJICogTk9URTog aWYgdGhpcyBpcyBhIGxvY2FsIHNvY2tldCAoc2tiLT5zayAhPSBOVUxMKSB0aGF0IGlzIGluIHRo ZQ0KKwkgKiAgICAgICBUQ1AgbGlzdGVuaW5nIHN0YXRlIHdlIGNhbm5vdCB3YWl0IHVudGlsIHRo ZSBYRlJNIHByb2Nlc3NpbmcNCisJICogICAgICAgaXMgZG9uZSBhcyB3ZSB3aWxsIG1pc3Mgb3V0 IG9uIHRoZSBTQSBsYWJlbCBpZiB3ZSBkbzsNCisJICogICAgICAgdW5mb3J0dW5hdGVseSwgdGhp cyBtZWFucyBtb3JlIHdvcmssIGJ1dCBpdCBpcyBvbmx5IG9uY2UgcGVyDQorCSAqICAgICAgIGNv bm5lY3Rpb24uICovDQorCWlmIChza2JfZHN0KHNrYikgIT0gTlVMTCAmJiBza2JfZHN0KHNrYikt Pnhmcm0gIT0gTlVMTCAmJg0KKwkgICAgIShzayAhPSBOVUxMICYmIHNrLT5za19zdGF0ZSA9PSBU Q1BfTElTVEVOKSkNCiAJCXJldHVybiBORl9BQ0NFUFQ7DQogI2VuZGlmDQotCXNlY21hcmtfYWN0 aXZlID0gc2VsaW51eF9zZWNtYXJrX2VuYWJsZWQoKTsNCi0JcGVlcmxibF9hY3RpdmUgPSBuZXRs YmxfZW5hYmxlZCgpIHx8IHNlbGludXhfeGZybV9lbmFibGVkKCk7DQotCWlmICghc2VjbWFya19h Y3RpdmUgJiYgIXBlZXJsYmxfYWN0aXZlKQ0KLQkJcmV0dXJuIE5GX0FDQ0VQVDsNCiANCi0Jc2sg PSBza2ItPnNrOw0KIAlpZiAoc2sgPT0gTlVMTCkgew0KIAkJLyogV2l0aG91dCBhbiBhc3NvY2lh dGVkIHNvY2tldCB0aGUgcGFja2V0IGlzIGVpdGhlciBjb21pbmcNCiAJCSAqIGZyb20gdGhlIGtl cm5lbCBvciBpdCBpcyBiZWluZyBmb3J3YXJkZWQ7IGNoZWNrIHRoZSBwYWNrZXQNCkBAIC00NzE5 LDYgKzQ3MjgsMjUgQEAgc3RhdGljIHVuc2lnbmVkIGludCBzZWxpbnV4X2lwX3Bvc3Ryb3V0ZShz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgaWZpbmRleCwNCiAJCXN0cnVjdCBza19zZWN1cml0eV9z dHJ1Y3QgKnNrc2VjID0gc2stPnNrX3NlY3VyaXR5Ow0KIAkJaWYgKHNlbGludXhfc2tiX3BlZXJs Ymxfc2lkKHNrYiwgZmFtaWx5LCAmc2tiX3NpZCkpDQogCQkJcmV0dXJuIE5GX0RST1A7DQorCQkv KiBBdCB0aGlzIHBvaW50LCBpZiB0aGUgcmV0dXJuZWQgc2tiIHBlZXJsYmwgaXMgU0VDU0lEX05V TEwNCisJCSAqIGFuZCB0aGUgcGFja2V0IGhhcyBiZWVuIHRocm91Z2ggYXQgbGVhc3Qgb25lIFhG Uk0NCisJCSAqIHRyYW5zZm9ybWF0aW9uIHRoZW4gd2UgbXVzdCBiZSBkZWFsaW5nIHdpdGggdGhl ICJmaW5hbCINCisJCSAqIGZvcm0gb2YgbGFiZWxlZCBJUHNlYyBwYWNrZXQ7IHNpbmNlIHdlJ3Zl IGFscmVhZHkgYXBwbGllZA0KKwkJICogYWxsIG9mIG91ciBhY2Nlc3MgY29udHJvbHMgb24gdGhp cyBwYWNrZXQgd2UgY2FuIHNhZmVseQ0KKwkJICogcGFzcyB0aGUgcGFja2V0LiAqLw0KKwkJaWYg KHNrYl9zaWQgPT0gU0VDU0lEX05VTEwpIHsNCisJCQlzd2l0Y2ggKGZhbWlseSkgew0KKwkJCWNh c2UgUEZfSU5FVDoNCisJCQkJaWYgKElQQ0Ioc2tiKS0+ZmxhZ3MgJiBJUFNLQl9YRlJNX1RSQU5T Rk9STUVEKQ0KKwkJCQkJcmV0dXJuIE5GX0FDQ0VQVDsNCisJCQkJYnJlYWs7DQorCQkJY2FzZSBQ Rl9JTkVUNjoNCisJCQkJaWYgKElQNkNCKHNrYiktPmZsYWdzICYgSVA2U0tCX1hGUk1fVFJBTlNG T1JNRUQpDQorCQkJCQlyZXR1cm4gTkZfQUNDRVBUOw0KKwkJCWRlZmF1bHQ6DQorCQkJCXJldHVy biBORl9EUk9QX0VSUigtRUNPTk5SRUZVU0VEKTsNCisJCQl9DQorCQl9DQogCQlpZiAoc2VsaW51 eF9jb25uX3NpZChza3NlYy0+c2lkLCBza2Jfc2lkLCAmcGVlcl9zaWQpKQ0KIAkJCXJldHVybiBO Rl9EUk9QOw0KIAkJc2VjbWFya19wZXJtID0gUEFDS0VUX19TRU5EOw0KZGlmZiAtLWdpdCBhL3Nl Y3VyaXR5L3NlbGludXgvc3MvcG9saWN5ZGIuYyBiL3NlY3VyaXR5L3NlbGludXgvc3MvcG9saWN5 ZGIuYw0KaW5kZXggYTdmNjFkNS4uMjNlOWNiYSAxMDA2NDQNCi0tLSBhL3NlY3VyaXR5L3NlbGlu dXgvc3MvcG9saWN5ZGIuYw0KKysrIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9wb2xpY3lkYi5jDQpA QCAtMTkxNCw3ICsxOTE0LDE5IEBAIHN0YXRpYyBpbnQgZmlsZW5hbWVfdHJhbnNfcmVhZChzdHJ1 Y3QgcG9saWN5ZGIgKnAsIHZvaWQgKmZwKQ0KIAkJaWYgKHJjKQ0KIAkJCWdvdG8gb3V0Ow0KIA0K LQkJaGFzaHRhYl9pbnNlcnQocC0+ZmlsZW5hbWVfdHJhbnMsIGZ0LCBvdHlwZSk7DQorCQlyYyA9 IGhhc2h0YWJfaW5zZXJ0KHAtPmZpbGVuYW1lX3RyYW5zLCBmdCwgb3R5cGUpOw0KKwkJaWYgKHJj KSB7DQorCQkJLyoNCisJCQkgKiBEbyBub3QgcmV0dXJuIC1FRVhJU1QgdG8gdGhlIGNhbGxlciwg b3IgdGhlIHN5c3RlbQ0KKwkJCSAqIHdpbGwgbm90IGJvb3QuDQorCQkJICovDQorCQkJaWYgKHJj ICE9IC1FRVhJU1QpDQorCQkJCWdvdG8gb3V0Ow0KKwkJCS8qIEJ1dCBmcmVlIG1lbW9yeSB0byBh dm9pZCBtZW1vcnkgbGVhay4gKi8NCisJCQlrZnJlZShmdCk7DQorCQkJa2ZyZWUobmFtZSk7DQor CQkJa2ZyZWUob3R5cGUpOw0KKwkJfQ0KIAl9DQogCWhhc2hfZXZhbChwLT5maWxlbmFtZV90cmFu cywgImZpbGVuYW1ldHIiKTsNCiAJcmV0dXJuIDA7DQpAQCAtMzIwMiwxMCArMzIxNCwxMCBAQCBz dGF0aWMgaW50IGZpbGVuYW1lX3dyaXRlX2hlbHBlcih2b2lkICprZXksIHZvaWQgKmRhdGEsIHZv aWQgKnB0cikNCiAJaWYgKHJjKQ0KIAkJcmV0dXJuIHJjOw0KIA0KLQlidWZbMF0gPSBmdC0+c3R5 cGU7DQotCWJ1ZlsxXSA9IGZ0LT50dHlwZTsNCi0JYnVmWzJdID0gZnQtPnRjbGFzczsNCi0JYnVm WzNdID0gb3R5cGUtPm90eXBlOw0KKwlidWZbMF0gPSBjcHVfdG9fbGUzMihmdC0+c3R5cGUpOw0K KwlidWZbMV0gPSBjcHVfdG9fbGUzMihmdC0+dHR5cGUpOw0KKwlidWZbMl0gPSBjcHVfdG9fbGUz MihmdC0+dGNsYXNzKTsNCisJYnVmWzNdID0gY3B1X3RvX2xlMzIob3R5cGUtPm90eXBlKTsNCiAN CiAJcmMgPSBwdXRfZW50cnkoYnVmLCBzaXplb2YodTMyKSwgNCwgZnApOw0KIAlpZiAocmMpDQpk aWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9zcy9zZXJ2aWNlcy5jIGIvc2VjdXJpdHkvc2Vs aW51eC9zcy9zZXJ2aWNlcy5jDQppbmRleCAxODVmODQ5Li43MmIyMGIxIDEwMDY0NA0KLS0tIGEv c2VjdXJpdHkvc2VsaW51eC9zcy9zZXJ2aWNlcy5jDQorKysgYi9zZWN1cml0eS9zZWxpbnV4L3Nz L3NlcnZpY2VzLmMNCkBAIC0xMjI5LDYgKzEyMjksMTAgQEAgc3RhdGljIGludCBzZWN1cml0eV9j b250ZXh0X3RvX3NpZF9jb3JlKGNvbnN0IGNoYXIgKnNjb250ZXh0LCB1MzIgc2NvbnRleHRfbGVu LA0KIAlzdHJ1Y3QgY29udGV4dCBjb250ZXh0Ow0KIAlpbnQgcmMgPSAwOw0KIA0KKwkvKiBBbiBl bXB0eSBzZWN1cml0eSBjb250ZXh0IGlzIG5ldmVyIHZhbGlkLiAqLw0KKwlpZiAoIXNjb250ZXh0 X2xlbikNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KIAlpZiAoIXNzX2luaXRpYWxpemVkKSB7DQog CQlpbnQgaTsNCiANCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvS2NvbmZpZyBiL3NvdW5kL3BjaS9L Y29uZmlnDQppbmRleCA4ODE2ODA0Li5lNzI0NGFjIDEwMDY0NA0KLS0tIGEvc291bmQvcGNpL0tj b25maWcNCisrKyBiL3NvdW5kL3BjaS9LY29uZmlnDQpAQCAtMzAsNiArMzAsNyBAQCBjb25maWcg U05EX0FMUzMwMA0KIAlzZWxlY3QgU05EX1BDTQ0KIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMNCiAJ c2VsZWN0IFNORF9PUEwzX0xJQg0KKwlzZWxlY3QgWk9ORV9ETUENCiAJaGVscA0KIAkgIFNheSAn WScgb3IgJ00nIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgQXZhbmNlIExvZ2ljIEFMUzMwMC9BTFMz MDArDQogDQpAQCAtNTQsNiArNTUsNyBAQCBjb25maWcgU05EX0FMSTU0NTENCiAJdHJpc3RhdGUg IkFMaSBNNTQ1MSBQQ0kgQXVkaW8gQ29udHJvbGxlciINCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFS VA0KIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMNCisJc2VsZWN0IFpPTkVfRE1BDQogCWhlbHANCiAJ ICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIGludGVncmF0ZWQgQUM5NyBz b3VuZA0KIAkgIGRldmljZSBvbiBtb3RoZXJib2FyZHMgdXNpbmcgdGhlIEFMaSBNNTQ1MSBBdWRp byBDb250cm9sbGVyDQpAQCAtMTU4LDYgKzE2MCw3IEBAIGNvbmZpZyBTTkRfQVpUMzMyOA0KIAlz ZWxlY3QgU05EX1BDTQ0KIAlzZWxlY3QgU05EX1JBV01JREkNCiAJc2VsZWN0IFNORF9BQzk3X0NP REVDDQorCXNlbGVjdCBaT05FX0RNQQ0KIAloZWxwDQogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRl IHN1cHBvcnQgZm9yIEF6dGVjaCBBWkYzMzI4IChQQ0kxNjgpDQogCSAgc291bmRjYXJkcy4NCkBA IC00NjMsNiArNDY2LDcgQEAgY29uZmlnIFNORF9FTVUxMEsxDQogCXNlbGVjdCBTTkRfSFdERVAN CiAJc2VsZWN0IFNORF9SQVdNSURJDQogCXNlbGVjdCBTTkRfQUM5N19DT0RFQw0KKwlzZWxlY3Qg Wk9ORV9ETUENCiAJaGVscA0KIAkgIFNheSBZIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgU291bmQg Qmxhc3RlciBQQ0kgNTEyLCBMaXZlISwNCiAJICBBdWRpZ3kgYW5kIEUtbXUgQVBTIChwYXJ0aWFs bHkgc3VwcG9ydGVkKSBzb3VuZGNhcmRzLg0KQEAgLTQ3OCw2ICs0ODIsNyBAQCBjb25maWcgU05E X0VNVTEwSzFYDQogCXRyaXN0YXRlICJFbXUxMGsxWCAoRGVsbCBPRU0gVmVyc2lvbikiDQogCXNl bGVjdCBTTkRfQUM5N19DT0RFQw0KIAlzZWxlY3QgU05EX1JBV01JREkNCisJc2VsZWN0IFpPTkVf RE1BDQogCWhlbHANCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIERl bGwgT0VNIHZlcnNpb24gb2YgdGhlDQogCSAgU291bmQgQmxhc3RlciBMaXZlIS4NCkBAIC01MTEs NiArNTE2LDcgQEAgY29uZmlnIFNORF9FUzE5MzgNCiAJc2VsZWN0IFNORF9PUEwzX0xJQg0KIAlz ZWxlY3QgU05EX01QVTQwMV9VQVJUDQogCXNlbGVjdCBTTkRfQUM5N19DT0RFQw0KKwlzZWxlY3Qg Wk9ORV9ETUENCiAJaGVscA0KIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBz b3VuZGNhcmRzIGJhc2VkIG9uIEVTUyBTb2xvLTENCiAJICAoRVMxOTM4LCBFUzE5NDYsIEVTMTk2 OSkgY2hpcHMuDQpAQCAtNTIyLDYgKzUyOCw3IEBAIGNvbmZpZyBTTkRfRVMxOTY4DQogCXRyaXN0 YXRlICJFU1MgRVMxOTY4LzE5NzggKE1hZXN0cm8tMS8yLzJFKSINCiAJc2VsZWN0IFNORF9NUFU0 MDFfVUFSVA0KIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMNCisJc2VsZWN0IFpPTkVfRE1BDQogCWhl bHANCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3Igc291bmRjYXJkcyBiYXNl ZCBvbiBFU1MgTWFlc3Rybw0KIAkgIDEvMi8yRSBjaGlwcy4NCkBAIC02MDIsNiArNjA5LDcgQEAg Y29uZmlnIFNORF9JQ0UxNzEyDQogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQNCiAJc2VsZWN0IFNO RF9BQzk3X0NPREVDDQogCXNlbGVjdCBCSVRSRVZFUlNFDQorCXNlbGVjdCBaT05FX0RNQQ0KIAlo ZWxwDQogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHNvdW5kY2FyZHMgYmFz ZWQgb24gdGhlDQogCSAgSUNFMTcxMiAoRW52eTI0KSBjaGlwLg0KQEAgLTY4OCw2ICs2OTYsNyBA QCBjb25maWcgU05EX0xYNjQ2NEVTDQogY29uZmlnIFNORF9NQUVTVFJPMw0KIAl0cmlzdGF0ZSAi RVNTIEFsbGVncm8vTWFlc3RybzMiDQogCXNlbGVjdCBTTkRfQUM5N19DT0RFQw0KKwlzZWxlY3Qg Wk9ORV9ETUENCiAJaGVscA0KIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBz b3VuZGNhcmRzIGJhc2VkIG9uIEVTUyBNYWVzdHJvIDMNCiAJICAoQWxsZWdybykgY2hpcHMuDQpA QCAtNzgyLDYgKzc5MSw3IEBAIGNvbmZpZyBTTkRfU0lTNzAxOQ0KIAl0cmlzdGF0ZSAiU2lTIDcw MTkgQXVkaW8gQWNjZWxlcmF0b3IiDQogCWRlcGVuZHMgb24gWDg2ICYmICFYODZfNjQNCiAJc2Vs ZWN0IFNORF9BQzk3X0NPREVDDQorCXNlbGVjdCBaT05FX0RNQQ0KIAloZWxwDQogCSAgU2F5IFkg aGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHRoZSBTaVMgNzAxOSBBdWRpbyBBY2NlbGVyYXRv ci4NCiANCkBAIC03OTMsNiArODAzLDcgQEAgY29uZmlnIFNORF9TT05JQ1ZJQkVTDQogCXNlbGVj dCBTTkRfT1BMM19MSUINCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVA0KIAlzZWxlY3QgU05EX0FD OTdfQ09ERUMNCisJc2VsZWN0IFpPTkVfRE1BDQogCWhlbHANCiAJICBTYXkgWSBoZXJlIHRvIGlu Y2x1ZGUgc3VwcG9ydCBmb3Igc291bmRjYXJkcyBiYXNlZCBvbiB0aGUgUzMNCiAJICBTb25pY1Zp YmVzIGNoaXAuDQpAQCAtODA0LDYgKzgxNSw3IEBAIGNvbmZpZyBTTkRfVFJJREVOVA0KIAl0cmlz dGF0ZSAiVHJpZGVudCA0RC1XYXZlIERYL05YOyBTaVMgNzAxOCINCiAJc2VsZWN0IFNORF9NUFU0 MDFfVUFSVA0KIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMNCisJc2VsZWN0IFpPTkVfRE1BDQogCWhl bHANCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3Igc291bmRjYXJkcyBiYXNl ZCBvbiBUcmlkZW50DQogCSAgNEQtV2F2ZSBEWC9OWCBvciBTaVMgNzAxOCBjaGlwcy4NCmRpZmYg LS1naXQgYS9zb3VuZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsuYyBiL3NvdW5kL3BjaS9oZGEvcGF0 Y2hfcmVhbHRlay5jDQppbmRleCAxZjc4Y2E2Li4zNmJjZTY4IDEwMDY0NA0KLS0tIGEvc291bmQv cGNpL2hkYS9wYXRjaF9yZWFsdGVrLmMNCisrKyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfcmVhbHRl ay5jDQpAQCAtNTE1Nyw2ICs1MTU3LDkgQEAgc3RhdGljIGludCBhbGMyNjlfZmlsbF9jb2VmKHN0 cnVjdCBoZGFfY29kZWMgKmNvZGVjKQ0KIA0KIAlpZiAoc3BlYy0+Y29kZWNfdmFyaWFudCAhPSBB TEMyNjlfVFlQRV9BTEMyNjlWQikNCiAJCXJldHVybiAwOw0KKwkvKiBBTEMyNzFYIGRvZXNuJ3Qg c2VlbSB0byBzdXBwb3J0IHRoZXNlIENPRUZzIChia28jNTIxODEpICovDQorCWlmICghc3RyY21w KGNvZGVjLT5jaGlwX25hbWUsICJBTEMyNzFYIikpDQorCQlyZXR1cm4gMDsNCiANCiAJaWYgKChh bGNfZ2V0X2NvZWYwKGNvZGVjKSAmIDB4MDBmZikgPCAweDAxNSkgew0KIAkJYWxjX3dyaXRlX2Nv ZWZfaWR4KGNvZGVjLCAweGYsIDB4OTYwYik7DQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL294eWdl bi94b25hcl9kZy5jIGIvc291bmQvcGNpL294eWdlbi94b25hcl9kZy5jDQppbmRleCBiYzZlYjU4 Li41OWVkYTBhIDEwMDY0NA0KLS0tIGEvc291bmQvcGNpL294eWdlbi94b25hcl9kZy5jDQorKysg Yi9zb3VuZC9wY2kvb3h5Z2VuL3hvbmFyX2RnLmMNCkBAIC0yOTQsNiArMjk0LDE2IEBAIHN0YXRp YyBpbnQgb3V0cHV0X3N3aXRjaF9wdXQoc3RydWN0IHNuZF9rY29udHJvbCAqY3RsLA0KIAkJb3h5 Z2VuX3dyaXRlMTZfbWFza2VkKGNoaXAsIE9YWUdFTl9HUElPX0RBVEEsDQogCQkJCSAgICAgIGRh dGEtPm91dHB1dF9zZWwgPT0gMSA/IEdQSU9fSFBfUkVBUiA6IDAsDQogCQkJCSAgICAgIEdQSU9f SFBfUkVBUik7DQorCQlveHlnZW5fd3JpdGU4X21hc2tlZChjaGlwLCBPWFlHRU5fUExBWV9ST1VU SU5HLA0KKwkJCQkgICAgIGRhdGEtPm91dHB1dF9zZWwgPT0gMCA/DQorCQkJCSAgICAgT1hZR0VO X1BMQVlfTVVURTAxIDoNCisJCQkJICAgICBPWFlHRU5fUExBWV9NVVRFMjMgfA0KKwkJCQkgICAg IE9YWUdFTl9QTEFZX01VVEU0NSB8DQorCQkJCSAgICAgT1hZR0VOX1BMQVlfTVVURTY3LA0KKwkJ CQkgICAgIE9YWUdFTl9QTEFZX01VVEUwMSB8DQorCQkJCSAgICAgT1hZR0VOX1BMQVlfTVVURTIz IHwNCisJCQkJICAgICBPWFlHRU5fUExBWV9NVVRFNDUgfA0KKwkJCQkgICAgIE9YWUdFTl9QTEFZ X01VVEU2Nyk7DQogCX0NCiAJbXV0ZXhfdW5sb2NrKCZjaGlwLT5tdXRleCk7DQogCXJldHVybiBj aGFuZ2VkOw0KQEAgLTU5Nyw3ICs2MDcsNyBAQCBzdHJ1Y3Qgb3h5Z2VuX21vZGVsIG1vZGVsX3hv bmFyX2RnID0gew0KIAkubW9kZWxfZGF0YV9zaXplID0gc2l6ZW9mKHN0cnVjdCBkZyksDQogCS5k ZXZpY2VfY29uZmlnID0gUExBWUJBQ0tfMF9UT19JMlMgfA0KIAkJCSBQTEFZQkFDS18xX1RPX1NQ RElGIHwNCi0JCQkgQ0FQVFVSRV8wX0ZST01fSTJTXzIsDQorCQkJIENBUFRVUkVfMF9GUk9NX0ky U18xLA0KIAkuZGFjX2NoYW5uZWxzX3BjbSA9IDYsDQogCS5kYWNfY2hhbm5lbHNfbWl4ZXIgPSAw LA0KIAkuZnVuY3Rpb25fZmxhZ3MgPSBPWFlHRU5fRlVOQ1RJT05fU1BJLA0KZGlmZiAtLWdpdCBh L3NvdW5kL3BjaS9ybWU5NjUyL3JtZTk2NTIuYyBiL3NvdW5kL3BjaS9ybWU5NjUyL3JtZTk2NTIu Yw0KaW5kZXggNzMyYzVlOC4uMWIzNTg2NCAxMDA2NDQNCi0tLSBhL3NvdW5kL3BjaS9ybWU5NjUy L3JtZTk2NTIuYw0KKysrIGIvc291bmQvcGNpL3JtZTk2NTIvcm1lOTY1Mi5jDQpAQCAtMjg1LDcg KzI4NSw3IEBAIHN0YXRpYyBjaGFyIGNoYW5uZWxfbWFwXzk2MzZfZHNbMjZdID0gew0KIAkvKiBB REFUIGNoYW5uZWxzIGFyZSByZW1hcHBlZCAqLw0KIAkxLCAzLCA1LCA3LCA5LCAxMSwgMTMsIDE1 LA0KIAkvKiBjaGFubmVscyA4IGFuZCA5IGFyZSBTL1BESUYgKi8NCi0JMjQsIDI1DQorCTI0LCAy NSwNCiAJLyogb3RoZXJzIGRvbid0IGV4aXN0ICovDQogCS0xLCAtMSwgLTEsIC0xLCAtMSwgLTEs IC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTENCiB9Ow0KZGlmZiAtLWdpdCBhL3Nv dW5kL3NvYy9jb2RlY3MvYWRhdTE3MDEuYyBiL3NvdW5kL3NvYy9jb2RlY3MvYWRhdTE3MDEuYw0K aW5kZXggOGI3ZTFjNS4uM2NjYTU1OCAxMDA2NDQNCi0tLSBhL3NvdW5kL3NvYy9jb2RlY3MvYWRh dTE3MDEuYw0KKysrIGIvc291bmQvc29jL2NvZGVjcy9hZGF1MTcwMS5jDQpAQCAtNjQsNyArNjQs NyBAQA0KIA0KICNkZWZpbmUgQURBVTE3MDFfU0VST0NUTF9XT1JEX0xFTl8yNAkweDAwMDANCiAj ZGVmaW5lIEFEQVUxNzAxX1NFUk9DVExfV09SRF9MRU5fMjAJMHgwMDAxDQotI2RlZmluZSBBREFV MTcwMV9TRVJPQ1RMX1dPUkRfTEVOXzE2CTB4MDAxMA0KKyNkZWZpbmUgQURBVTE3MDFfU0VST0NU TF9XT1JEX0xFTl8xNgkweDAwMDINCiAjZGVmaW5lIEFEQVUxNzAxX1NFUk9DVExfV09SRF9MRU5f TUFTSwkweDAwMDMNCiANCiAjZGVmaW5lIEFEQVUxNzAxX0FVWE5QT1dfVkJQRAkJMHg0MA0KZGlm ZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvc3RhMzJ4LmMgYi9zb3VuZC9zb2MvY29kZWNzL3N0 YTMyeC5jDQppbmRleCBkMmYzNzE1Li4yNWFlMDU5IDEwMDY0NA0KLS0tIGEvc291bmQvc29jL2Nv ZGVjcy9zdGEzMnguYw0KKysrIGIvc291bmQvc29jL2NvZGVjcy9zdGEzMnguYw0KQEAgLTE0Myw0 MiArMTQzLDQyIEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgc3RhMzJ4X2xpbWl0ZXJfZHJj X3JlbGVhc2VfdGx2W10gPSB7DQogCTEzLCAxNiwgVExWX0RCX1NDQUxFX0lURU0oLTE1MDAsIDMw MCwgMCksDQogfTsNCiANCi1zdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIHN0YTMyeF9kcmNf YWNfZW51bSA9DQotCVNPQ19FTlVNX1NJTkdMRShTVEEzMlhfQ09ORkQsIFNUQTMyWF9DT05GRF9E UkNfU0hJRlQsDQotCQkJMiwgc3RhMzJ4X2RyY19hYyk7DQotc3RhdGljIGNvbnN0IHN0cnVjdCBz b2NfZW51bSBzdGEzMnhfYXV0b19lcV9lbnVtID0NCi0JU09DX0VOVU1fU0lOR0xFKFNUQTMyWF9B VVRPMSwgU1RBMzJYX0FVVE8xX0FNRVFfU0hJRlQsDQotCQkJMywgc3RhMzJ4X2F1dG9fZXFfbW9k ZSk7DQotc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSBzdGEzMnhfYXV0b19nY19lbnVtID0N Ci0JU09DX0VOVU1fU0lOR0xFKFNUQTMyWF9BVVRPMSwgU1RBMzJYX0FVVE8xX0FNR0NfU0hJRlQs DQotCQkJNCwgc3RhMzJ4X2F1dG9fZ2NfbW9kZSk7DQotc3RhdGljIGNvbnN0IHN0cnVjdCBzb2Nf ZW51bSBzdGEzMnhfYXV0b194b19lbnVtID0NCi0JU09DX0VOVU1fU0lOR0xFKFNUQTMyWF9BVVRP MiwgU1RBMzJYX0FVVE8yX1hPX1NISUZULA0KLQkJCTE2LCBzdGEzMnhfYXV0b194b19tb2RlKTsN Ci1zdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIHN0YTMyeF9wcmVzZXRfZXFfZW51bSA9DQot CVNPQ19FTlVNX1NJTkdMRShTVEEzMlhfQVVUTzMsIFNUQTMyWF9BVVRPM19QRVFfU0hJRlQsDQot CQkJMzIsIHN0YTMyeF9wcmVzZXRfZXFfbW9kZSk7DQotc3RhdGljIGNvbnN0IHN0cnVjdCBzb2Nf ZW51bSBzdGEzMnhfbGltaXRlcl9jaDFfZW51bSA9DQotCVNPQ19FTlVNX1NJTkdMRShTVEEzMlhf QzFDRkcsIFNUQTMyWF9DeENGR19MU19TSElGVCwNCi0JCQkzLCBzdGEzMnhfbGltaXRlcl9zZWxl Y3QpOw0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gc3RhMzJ4X2xpbWl0ZXJfY2gyX2Vu dW0gPQ0KLQlTT0NfRU5VTV9TSU5HTEUoU1RBMzJYX0MyQ0ZHLCBTVEEzMlhfQ3hDRkdfTFNfU0hJ RlQsDQotCQkJMywgc3RhMzJ4X2xpbWl0ZXJfc2VsZWN0KTsNCi1zdGF0aWMgY29uc3Qgc3RydWN0 IHNvY19lbnVtIHN0YTMyeF9saW1pdGVyX2NoM19lbnVtID0NCi0JU09DX0VOVU1fU0lOR0xFKFNU QTMyWF9DM0NGRywgU1RBMzJYX0N4Q0ZHX0xTX1NISUZULA0KLQkJCTMsIHN0YTMyeF9saW1pdGVy X3NlbGVjdCk7DQotc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSBzdGEzMnhfbGltaXRlcjFf YXR0YWNrX3JhdGVfZW51bSA9DQotCVNPQ19FTlVNX1NJTkdMRShTVEEzMlhfTDFBUiwgU1RBMzJY X0x4QV9TSElGVCwNCi0JCQkxNiwgc3RhMzJ4X2xpbWl0ZXJfYXR0YWNrX3JhdGUpOw0KLXN0YXRp YyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gc3RhMzJ4X2xpbWl0ZXIyX2F0dGFja19yYXRlX2VudW0g PQ0KLQlTT0NfRU5VTV9TSU5HTEUoU1RBMzJYX0wyQVIsIFNUQTMyWF9MeEFfU0hJRlQsDQotCQkJ MTYsIHN0YTMyeF9saW1pdGVyX2F0dGFja19yYXRlKTsNCi1zdGF0aWMgY29uc3Qgc3RydWN0IHNv Y19lbnVtIHN0YTMyeF9saW1pdGVyMV9yZWxlYXNlX3JhdGVfZW51bSA9DQotCVNPQ19FTlVNX1NJ TkdMRShTVEEzMlhfTDFBUiwgU1RBMzJYX0x4Ul9TSElGVCwNCi0JCQkxNiwgc3RhMzJ4X2xpbWl0 ZXJfcmVsZWFzZV9yYXRlKTsNCi1zdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIHN0YTMyeF9s aW1pdGVyMl9yZWxlYXNlX3JhdGVfZW51bSA9DQotCVNPQ19FTlVNX1NJTkdMRShTVEEzMlhfTDJB UiwgU1RBMzJYX0x4Ul9TSElGVCwNCi0JCQkxNiwgc3RhMzJ4X2xpbWl0ZXJfcmVsZWFzZV9yYXRl KTsNCitzdGF0aWMgU09DX0VOVU1fU0lOR0xFX0RFQ0woc3RhMzJ4X2RyY19hY19lbnVtLA0KKwkJ CSAgICBTVEEzMlhfQ09ORkQsIFNUQTMyWF9DT05GRF9EUkNfU0hJRlQsDQorCQkJICAgIHN0YTMy eF9kcmNfYWMpOw0KK3N0YXRpYyBTT0NfRU5VTV9TSU5HTEVfREVDTChzdGEzMnhfYXV0b19lcV9l bnVtLA0KKwkJCSAgICBTVEEzMlhfQVVUTzEsIFNUQTMyWF9BVVRPMV9BTUVRX1NISUZULA0KKwkJ CSAgICBzdGEzMnhfYXV0b19lcV9tb2RlKTsNCitzdGF0aWMgU09DX0VOVU1fU0lOR0xFX0RFQ0wo c3RhMzJ4X2F1dG9fZ2NfZW51bSwNCisJCQkgICAgU1RBMzJYX0FVVE8xLCBTVEEzMlhfQVVUTzFf QU1HQ19TSElGVCwNCisJCQkgICAgc3RhMzJ4X2F1dG9fZ2NfbW9kZSk7DQorc3RhdGljIFNPQ19F TlVNX1NJTkdMRV9ERUNMKHN0YTMyeF9hdXRvX3hvX2VudW0sDQorCQkJICAgIFNUQTMyWF9BVVRP MiwgU1RBMzJYX0FVVE8yX1hPX1NISUZULA0KKwkJCSAgICBzdGEzMnhfYXV0b194b19tb2RlKTsN CitzdGF0aWMgU09DX0VOVU1fU0lOR0xFX0RFQ0woc3RhMzJ4X3ByZXNldF9lcV9lbnVtLA0KKwkJ CSAgICBTVEEzMlhfQVVUTzMsIFNUQTMyWF9BVVRPM19QRVFfU0hJRlQsDQorCQkJICAgIHN0YTMy eF9wcmVzZXRfZXFfbW9kZSk7DQorc3RhdGljIFNPQ19FTlVNX1NJTkdMRV9ERUNMKHN0YTMyeF9s aW1pdGVyX2NoMV9lbnVtLA0KKwkJCSAgICBTVEEzMlhfQzFDRkcsIFNUQTMyWF9DeENGR19MU19T SElGVCwNCisJCQkgICAgc3RhMzJ4X2xpbWl0ZXJfc2VsZWN0KTsNCitzdGF0aWMgU09DX0VOVU1f U0lOR0xFX0RFQ0woc3RhMzJ4X2xpbWl0ZXJfY2gyX2VudW0sDQorCQkJICAgIFNUQTMyWF9DMkNG RywgU1RBMzJYX0N4Q0ZHX0xTX1NISUZULA0KKwkJCSAgICBzdGEzMnhfbGltaXRlcl9zZWxlY3Qp Ow0KK3N0YXRpYyBTT0NfRU5VTV9TSU5HTEVfREVDTChzdGEzMnhfbGltaXRlcl9jaDNfZW51bSwN CisJCQkgICAgU1RBMzJYX0MzQ0ZHLCBTVEEzMlhfQ3hDRkdfTFNfU0hJRlQsDQorCQkJICAgIHN0 YTMyeF9saW1pdGVyX3NlbGVjdCk7DQorc3RhdGljIFNPQ19FTlVNX1NJTkdMRV9ERUNMKHN0YTMy eF9saW1pdGVyMV9hdHRhY2tfcmF0ZV9lbnVtLA0KKwkJCSAgICBTVEEzMlhfTDFBUiwgU1RBMzJY X0x4QV9TSElGVCwNCisJCQkgICAgc3RhMzJ4X2xpbWl0ZXJfYXR0YWNrX3JhdGUpOw0KK3N0YXRp YyBTT0NfRU5VTV9TSU5HTEVfREVDTChzdGEzMnhfbGltaXRlcjJfYXR0YWNrX3JhdGVfZW51bSwN CisJCQkgICAgU1RBMzJYX0wyQVIsIFNUQTMyWF9MeEFfU0hJRlQsDQorCQkJICAgIHN0YTMyeF9s aW1pdGVyX2F0dGFja19yYXRlKTsNCitzdGF0aWMgU09DX0VOVU1fU0lOR0xFX0RFQ0woc3RhMzJ4 X2xpbWl0ZXIxX3JlbGVhc2VfcmF0ZV9lbnVtLA0KKwkJCSAgICBTVEEzMlhfTDFBUiwgU1RBMzJY X0x4Ul9TSElGVCwNCisJCQkgICAgc3RhMzJ4X2xpbWl0ZXJfcmVsZWFzZV9yYXRlKTsNCitzdGF0 aWMgU09DX0VOVU1fU0lOR0xFX0RFQ0woc3RhMzJ4X2xpbWl0ZXIyX3JlbGVhc2VfcmF0ZV9lbnVt LA0KKwkJCSAgICBTVEEzMlhfTDJBUiwgU1RBMzJYX0x4Ul9TSElGVCwNCisJCQkgICAgc3RhMzJ4 X2xpbWl0ZXJfcmVsZWFzZV9yYXRlKTsNCiANCiAvKiBieXRlIGFycmF5IGNvbnRyb2xzIGZvciBz ZXR0aW5nIGJpcXVhZCwgbWl4ZXIsIHNjYWxpbmcgY29lZmZpY2llbnRzOw0KICAqIGZvciBiaXF1 YWRzIGFsbCBmaXZlIGNvZWZmaWNpZW50cyBuZWVkIHRvIGJlIHNldCBpbiBvbmUgZ28sDQpAQCAt MzUwLDcgKzM1MCw3IEBAIFNPQ19TSU5HTEVfVExWKCJUcmVibGUgVG9uZSBDb250cm9sIiwgU1RB MzJYX1RPTkUsIFNUQTMyWF9UT05FX1RUQ19TSElGVCwgMTUsIDAsDQogU09DX0VOVU0oIkxpbWl0 ZXIxIEF0dGFjayBSYXRlIChkQi9tcykiLCBzdGEzMnhfbGltaXRlcjFfYXR0YWNrX3JhdGVfZW51 bSksDQogU09DX0VOVU0oIkxpbWl0ZXIyIEF0dGFjayBSYXRlIChkQi9tcykiLCBzdGEzMnhfbGlt aXRlcjJfYXR0YWNrX3JhdGVfZW51bSksDQogU09DX0VOVU0oIkxpbWl0ZXIxIFJlbGVhc2UgUmF0 ZSAoZEIvbXMpIiwgc3RhMzJ4X2xpbWl0ZXIxX3JlbGVhc2VfcmF0ZV9lbnVtKSwNCi1TT0NfRU5V TSgiTGltaXRlcjIgUmVsZWFzZSBSYXRlIChkQi9tcykiLCBzdGEzMnhfbGltaXRlcjFfcmVsZWFz ZV9yYXRlX2VudW0pLA0KK1NPQ19FTlVNKCJMaW1pdGVyMiBSZWxlYXNlIFJhdGUgKGRCL21zKSIs IHN0YTMyeF9saW1pdGVyMl9yZWxlYXNlX3JhdGVfZW51bSksDQogDQogLyogZGVwZW5kaW5nIG9u IG1vZGUsIHRoZSBhdHRhY2svcmVsZWFzZSB0aHJlc2hvbGRzIGhhdmUNCiAgKiB0d28gZGlmZmVy ZW50IGVudW0gZGVmaW5pdGlvbnM7IHByb3ZpZGUgYm90aA0KZGlmZiAtLWdpdCBhL3NvdW5kL3Nv Yy9jb2RlY3Mvd204NzcwLmMgYi9zb3VuZC9zb2MvY29kZWNzL3dtODc3MC5jDQppbmRleCBhYTA1 ZTY1Li5kNWY3ZDhkIDEwMDY0NA0KLS0tIGEvc291bmQvc29jL2NvZGVjcy93bTg3NzAuYw0KKysr IGIvc291bmQvc29jL2NvZGVjcy93bTg3NzAuYw0KQEAgLTE2Myw4ICsxNjMsOCBAQCBzdGF0aWMg Y29uc3QgY2hhciAqYWluX3RleHRbXSA9IHsNCiAJIkFJTjUiLCAiQUlONiIsICJBSU43IiwgIkFJ TjgiDQogfTsNCiANCi1zdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIGFpbl9lbnVtID0NCi0J U09DX0VOVU1fRE9VQkxFKFdNODc3MF9BRENNVVgsIDAsIDQsIDgsIGFpbl90ZXh0KTsNCitzdGF0 aWMgU09DX0VOVU1fRE9VQkxFX0RFQ0woYWluX2VudW0sDQorCQkJICAgIFdNODc3MF9BRENNVVgs IDAsIDQsIGFpbl90ZXh0KTsNCiANCiBzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9u ZXcgYWluX211eCA9DQogCVNPQ19EQVBNX0VOVU0oIkNhcHR1cmUgTXV4IiwgYWluX2VudW0pOw0K ZGlmZiAtLWdpdCBhL3NvdW5kL3VzYi9taXhlci5jIGIvc291bmQvdXNiL21peGVyLmMNCmluZGV4 IDQxYjlmZTAuLjRmN2IzMzAgMTAwNjQ0DQotLS0gYS9zb3VuZC91c2IvbWl4ZXIuYw0KKysrIGIv c291bmQvdXNiL21peGVyLmMNCkBAIC04MzEsNiArODMxLDcgQEAgc3RhdGljIHZvaWQgdm9sdW1l X2NvbnRyb2xfcXVpcmtzKHN0cnVjdCB1c2JfbWl4ZXJfZWxlbV9pbmZvICpjdmFsLA0KIAkJfQ0K IAkJYnJlYWs7DQogDQorCWNhc2UgVVNCX0lEKDB4MDQ2ZCwgMHgwODA3KTogLyogTG9naXRlY2gg V2ViY2FtIEM1MDAgKi8NCiAJY2FzZSBVU0JfSUQoMHgwNDZkLCAweDA4MDgpOg0KIAljYXNlIFVT Ql9JRCgweDA0NmQsIDB4MDgwOSk6DQogCWNhc2UgVVNCX0lEKDB4MDQ2ZCwgMHgwODFiKTogLyog SEQgV2ViY2FtIGMzMTAgKi8NCmRpZmYgLS1naXQgYS9zb3VuZC91c2IvbWl4ZXJfbWFwcy5jIGIv c291bmQvdXNiL21peGVyX21hcHMuYw0KaW5kZXggZjEzMjRjNC4uMGU0ZTkwOSAxMDA2NDQNCi0t LSBhL3NvdW5kL3VzYi9taXhlcl9tYXBzLmMNCisrKyBiL3NvdW5kL3VzYi9taXhlcl9tYXBzLmMN CkBAIC0zMDQsNiArMzA0LDExIEBAIHN0YXRpYyBzdHJ1Y3QgdXNibWl4X25hbWVfbWFwIGhlcmN1 bGVzX3VzYjUxX21hcFtdID0gew0KIAl7IDAgfQkJCQkvKiB0ZXJtaW5hdG9yICovDQogfTsNCiAN CitzdGF0aWMgY29uc3Qgc3RydWN0IHVzYm1peF9uYW1lX21hcCBrZWZfeDMwMGFfbWFwW10gPSB7 DQorCXsgMTAsIE5VTEwgfSwgLyogZmlybXdhcmUgbG9ja3MgdXAgKD8pIHdoZW4gd2UgdHJ5IHRv IGFjY2VzcyB0aGlzIEZVICovDQorCXsgMCB9DQorfTsNCisNCiAvKg0KICAqIENvbnRyb2wgbWFw IGVudHJpZXMNCiAgKi8NCkBAIC0zNzEsNiArMzc2LDEwIEBAIHN0YXRpYyBzdHJ1Y3QgdXNibWl4 X2N0bF9tYXAgdXNibWl4X2N0bF9tYXBzW10gPSB7DQogCQkubWFwID0gc2NyYXRjaF9saXZlX21h cCwNCiAJCS5pZ25vcmVfY3RsX2Vycm9yID0gMSwNCiAJfSwNCisJew0KKwkJLmlkID0gVVNCX0lE KDB4MjdhYywgMHgxMDAwKSwNCisJCS5tYXAgPSBrZWZfeDMwMGFfbWFwLA0KKwl9LA0KIAl7IDAg fSAvKiB0ZXJtaW5hdG9yICovDQogfTsNCiANCmRpZmYgLS1naXQgYS90b29scy9wb3dlci94ODYv dHVyYm9zdGF0L3R1cmJvc3RhdC5jIGIvdG9vbHMvcG93ZXIveDg2L3R1cmJvc3RhdC90dXJib3N0 YXQuYw0KaW5kZXggM2M2Zjc4MC4uMjc5YTJmMSAxMDA2NDQNCi0tLSBhL3Rvb2xzL3Bvd2VyL3g4 Ni90dXJib3N0YXQvdHVyYm9zdGF0LmMNCisrKyBiL3Rvb2xzL3Bvd2VyL3g4Ni90dXJib3N0YXQv dHVyYm9zdGF0LmMNCkBAIC0zMiw2ICszMiw3IEBADQogI2luY2x1ZGUgPGRpcmVudC5oPg0KICNp bmNsdWRlIDxzdHJpbmcuaD4NCiAjaW5jbHVkZSA8Y3R5cGUuaD4NCisjaW5jbHVkZSA8Y3B1aWQu aD4NCiANCiAjZGVmaW5lIE1TUl9UU0MJMHgxMA0KICNkZWZpbmUgTVNSX05FSEFMRU1fUExBVEZP Uk1fSU5GTwkweENFDQpAQCAtODQ3LDcgKzg0OCw3IEBAIHZvaWQgY2hlY2tfY3B1aWQoKQ0KIA0K IAllYXggPSBlYnggPSBlY3ggPSBlZHggPSAwOw0KIA0KLQlhc20oImNwdWlkIiA6ICI9YSIgKG1h eF9sZXZlbCksICI9YiIgKGVieCksICI9YyIgKGVjeCksICI9ZCIgKGVkeCkgOiAiYSIgKDApKTsN CisJX19nZXRfY3B1aWQoMCwgJm1heF9sZXZlbCwgJmVieCwgJmVjeCwgJmVkeCk7DQogDQogCWlm IChlYnggPT0gMHg3NTZlNjU0NyAmJiBlZHggPT0gMHg0OTY1NmU2OSAmJiBlY3ggPT0gMHg2YzY1 NzQ2ZSkNCiAJCWdlbnVpbmVfaW50ZWwgPSAxOw0KQEAgLTg1Niw3ICs4NTcsNyBAQCB2b2lkIGNo ZWNrX2NwdWlkKCkNCiAJCWZwcmludGYoc3RkZXJyLCAiJS40cyUuNHMlLjRzICIsDQogCQkJKGNo YXIgKikmZWJ4LCAoY2hhciAqKSZlZHgsIChjaGFyICopJmVjeCk7DQogDQotCWFzbSgiY3B1aWQi IDogIj1hIiAoZm1zKSwgIj1jIiAoZWN4KSwgIj1kIiAoZWR4KSA6ICJhIiAoMSkgOiAiZWJ4Iik7 DQorCV9fZ2V0X2NwdWlkKDEsICZmbXMsICZlYngsICZlY3gsICZlZHgpOw0KIAlmYW1pbHkgPSAo Zm1zID4+IDgpICYgMHhmOw0KIAltb2RlbCA9IChmbXMgPj4gNCkgJiAweGY7DQogCXN0ZXBwaW5n ID0gZm1zICYgMHhmOw0KQEAgLTg3OCw3ICs4NzksNyBAQCB2b2lkIGNoZWNrX2NwdWlkKCkNCiAJ ICogVGhpcyBjaGVjayBpcyB2YWxpZCBmb3IgYm90aCBJbnRlbCBhbmQgQU1ELg0KIAkgKi8NCiAJ ZWJ4ID0gZWN4ID0gZWR4ID0gMDsNCi0JYXNtKCJjcHVpZCIgOiAiPWEiIChtYXhfbGV2ZWwpLCAi PWIiIChlYngpLCAiPWMiIChlY3gpLCAiPWQiIChlZHgpIDogImEiICgweDgwMDAwMDAwKSk7DQor CV9fZ2V0X2NwdWlkKDB4ODAwMDAwMDAsICZtYXhfbGV2ZWwsICZlYngsICZlY3gsICZlZHgpOw0K IA0KIAlpZiAobWF4X2xldmVsIDwgMHg4MDAwMDAwNykgew0KIAkJZnByaW50ZihzdGRlcnIsICJD UFVJRDogbm8gaW52YXJpYW50IFRTQyAobWF4X2xldmVsIDB4JXgpXG4iLCBtYXhfbGV2ZWwpOw0K QEAgLTg4OSw3ICs4OTAsNyBAQCB2b2lkIGNoZWNrX2NwdWlkKCkNCiAJICogTm9uLVN0b3AgVFND IGlzIGFkdmVydGlzZWQgYnkgQ1BVSUQuRUFYPTB4ODAwMDAwMDc6IEVEWC5iaXQ4DQogCSAqIHRo aXMgY2hlY2sgaXMgdmFsaWQgZm9yIGJvdGggSW50ZWwgYW5kIEFNRA0KIAkgKi8NCi0JYXNtKCJj cHVpZCIgOiAiPWEiIChlYXgpLCAiPWIiIChlYngpLCAiPWMiIChlY3gpLCAiPWQiIChlZHgpIDog ImEiICgweDgwMDAwMDA3KSk7DQorCV9fZ2V0X2NwdWlkKDB4ODAwMDAwMDcsICZlYXgsICZlYngs ICZlY3gsICZlZHgpOw0KIAloYXNfaW52YXJpYW50X3RzYyA9IGVkeCAmICgxIDw8IDgpOw0KIA0K IAlpZiAoIWhhc19pbnZhcmlhbnRfdHNjKSB7DQpAQCAtOTAyLDcgKzkwMyw3IEBAIHZvaWQgY2hl Y2tfY3B1aWQoKQ0KIAkgKiB0aGlzIGNoZWNrIGlzIHZhbGlkIGZvciBib3RoIEludGVsIGFuZCBB TUQNCiAJICovDQogDQotCWFzbSgiY3B1aWQiIDogIj1hIiAoZWF4KSwgIj1iIiAoZWJ4KSwgIj1j IiAoZWN4KSwgIj1kIiAoZWR4KSA6ICJhIiAoMHg2KSk7DQorCV9fZ2V0X2NwdWlkKDB4NiwgJmVh eCwgJmVieCwgJmVjeCwgJmVkeCk7DQogCWhhc19hcGVyZiA9IGVjeCAmICgxIDw8IDApOw0KIAlp ZiAoIWhhc19hcGVyZikgew0KIAkJZnByaW50ZihzdGRlcnIsICJObyBBUEVSRiBNU1JcbiIpOw0K ZGlmZiAtLWdpdCBhL3ZpcnQva3ZtL2NvYWxlc2NlZF9tbWlvLmMgYi92aXJ0L2t2bS9jb2FsZXNj ZWRfbW1pby5jDQppbmRleCBhNmVjMjA2Li5lNTZiMjQwIDEwMDY0NA0KLS0tIGEvdmlydC9rdm0v Y29hbGVzY2VkX21taW8uYw0KKysrIGIvdmlydC9rdm0vY29hbGVzY2VkX21taW8uYw0KQEAgLTE0 OCwxNyArMTQ4LDEzIEBAIGludCBrdm1fdm1faW9jdGxfcmVnaXN0ZXJfY29hbGVzY2VkX21taW8o c3RydWN0IGt2bSAqa3ZtLA0KIAlsaXN0X2FkZF90YWlsKCZkZXYtPmxpc3QsICZrdm0tPmNvYWxl c2NlZF96b25lcyk7DQogCW11dGV4X3VubG9jaygma3ZtLT5zbG90c19sb2NrKTsNCiANCi0JcmV0 dXJuIHJldDsNCisJcmV0dXJuIDA7DQogDQogb3V0X2ZyZWVfZGV2Og0KIAltdXRleF91bmxvY2so Jmt2bS0+c2xvdHNfbG9jayk7DQotDQogCWtmcmVlKGRldik7DQogDQotCWlmIChkZXYgPT0gTlVM TCkNCi0JCXJldHVybiAtRU5YSU87DQotDQotCXJldHVybiAwOw0KKwlyZXR1cm4gcmV0Ow0KIH0N CiANCiBpbnQga3ZtX3ZtX2lvY3RsX3VucmVnaXN0ZXJfY29hbGVzY2VkX21taW8oc3RydWN0IGt2 bSAqa3ZtLA0K --=-1Myk5thztbGwpyfglO1V-- --=-cSnobo8XwxbC+gNeUR5D Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIVAwUAUzi5xee/yOyVhhEJAQrcdQ/8DF6c/aCmE1qdlkfBZ4e+O3L77k0b+c8X fCpu1CPOGqJVzEDzmynOtgeXFtOpCqJvxmoQudrYanoL1MbH/LWIY/Znz6KwkKSC 1hm/YItQxWrHda7Xu4NVk9LT0p9i/52Qzip+//vLvjeKQG0OR+bBbKdg+DKSNc8o IrIw2ACfgw8uGbzAD1BIxGt9rNTqST8Q4fXIrr9gHkxHayZMKNSxoFGz5u8zwDPG LtLVOWKXmOVhrWj/5SafzP73oxePZPzbE/kEHCqNQNRtasXX1N4o6P6RgyHjy1SP jkV4CWa3ixyVaKZDnmY30b38HnlNsd6cgtdMW4ca4jq/xYR9SvA1aKWbX8VLH+tN pkSc7vIwNeI88pHzHt74kLxTBRiY6dWuw+FRVFBx/BmlhCe6q1940Ipz2Jro3w71 5uIbAKWaXGByYKvX6bej7s14Go52KWPiukzI7OUZlXDbXSKkAFVIZxM+RG4V58sx 82B0IC1vpqvyQsu24eFf1yFQOQG27e458Ag7+aNOTecqo5l1wVLXX1HOOnYYmcjA 9eGOxDSI3q2mwoSKJwOVneNduDCJ7AJJ9/SeWAjdBA1tfR8IQiosi/1Ty5T4Prxn byNrU+2F+ALEOS6lKZMYyHXB/JOtm72zrbnflgHEZunnMb5y97buEPNrDw+Tb8Y8 hLX3jxHGZww= =Gttb -----END PGP SIGNATURE----- --=-cSnobo8XwxbC+gNeUR5D--