From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756718Ab3BRACt (ORCPT ); Sun, 17 Feb 2013 19:02:49 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:46398 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755123Ab3BRACq (ORCPT ); Sun, 17 Feb 2013 19:02:46 -0500 Message-ID: <1361145753.5374.532.camel@deadeye.wl.decadent.org.uk> Subject: Re: [ 00/66] 3.2.39-stable review From: Ben Hutchings To: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, torvalds@linux-foundation.org, akpm@linux-foundation.org Date: Mon, 18 Feb 2013 00:02:33 +0000 In-Reply-To: <20130217225001.621306883@decadent.org.uk> References: <20130217225001.621306883@decadent.org.uk> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-teBX00k/Jlom8EVyMUZ4" X-Mailer: Evolution 3.4.4-1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 2001:470:1f08:1539:a11:96ff:fec6:70c4 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 --=-teBX00k/Jlom8EVyMUZ4 Content-Type: multipart/mixed; boundary="=-+LjbgAFvRLkQP6+vRdnN" --=-+LjbgAFvRLkQP6+vRdnN Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.39-rc1 relative to 3.2.38. Ben. --=20 Ben Hutchings Sturgeon's Law: Ninety percent of everything is crap. --=-+LjbgAFvRLkQP6+vRdnN Content-Disposition: attachment; filename="linux-3.2.39-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.39-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMNCmluZGV4IDgyZDdmYTYuLjgz ZjE1NmUgMTAwNjQ0DQotLS0gYS9NQUlOVEFJTkVSUw0KKysrIGIvTUFJTlRBSU5FUlMNCkBAIC0y NTg0LDcgKzI1ODQsNyBAQCBTOglNYWludGFpbmVkDQogRjoJZHJpdmVycy9uZXQvZXRoZXJuZXQv aTgyNXh4L2VleHByZXNzLioNCiANCiBFVEhFUk5FVCBCUklER0UNCi1NOglTdGVwaGVuIEhlbW1p bmdlciA8c2hlbW1pbmdlckB2eWF0dGEuY29tPg0KK006CVN0ZXBoZW4gSGVtbWluZ2VyIDxzdGVw aGVuQG5ldHdvcmtwbHVtYmVyLm9yZz4NCiBMOglicmlkZ2VAbGlzdHMubGludXgtZm91bmRhdGlv bi5vcmcNCiBMOgluZXRkZXZAdmdlci5rZXJuZWwub3JnDQogVzoJaHR0cDovL3d3dy5saW51eGZv dW5kYXRpb24ub3JnL2VuL05ldDpCcmlkZ2UNCkBAIC00NDc1LDcgKzQ0NzUsNyBAQCBTOglTdXBw b3J0ZWQNCiBGOglkcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzLw0KIA0KIE5FVEVNIE5FVFdPUksg RU1VTEFUT1INCi1NOglTdGVwaGVuIEhlbW1pbmdlciA8c2hlbW1pbmdlckB2eWF0dGEuY29tPg0K K006CVN0ZXBoZW4gSGVtbWluZ2VyIDxzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZz4NCiBMOglu ZXRlbUBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZw0KIFM6CU1haW50YWluZWQNCiBGOgluZXQv c2NoZWQvc2NoX25ldGVtLmMNCkBAIC01OTkzLDcgKzU5OTMsNyBAQCBTOglNYWludGFpbmVkDQog RjoJZHJpdmVycy91c2IvbWlzYy9zaXN1c2J2Z2EvDQogDQogU0tHRSwgU0tZMiAxMC8xMDAvMTAw MCBHSUdBQklUIEVUSEVSTkVUIERSSVZFUlMNCi1NOglTdGVwaGVuIEhlbW1pbmdlciA8c2hlbW1p bmdlckB2eWF0dGEuY29tPg0KK006CVN0ZXBoZW4gSGVtbWluZ2VyIDxzdGVwaGVuQG5ldHdvcmtw bHVtYmVyLm9yZz4NCiBMOgluZXRkZXZAdmdlci5rZXJuZWwub3JnDQogUzoJTWFpbnRhaW5lZA0K IEY6CWRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvc2sqDQpkaWZmIC0tZ2l0IGEvTWFrZWZp bGUgYi9NYWtlZmlsZQ0KaW5kZXggYzhjOWQwMi4uZDEwN2FmMyAxMDA2NDQNCi0tLSBhL01ha2Vm aWxlDQorKysgYi9NYWtlZmlsZQ0KQEAgLTEsNyArMSw3IEBADQogVkVSU0lPTiA9IDMNCiBQQVRD SExFVkVMID0gMg0KLVNVQkxFVkVMID0gMzgNCi1FWFRSQVZFUlNJT04gPQ0KK1NVQkxFVkVMID0g MzkNCitFWFRSQVZFUlNJT04gPSAtcmMxDQogTkFNRSA9IFNhYmVyLXRvb3RoZWQgU3F1aXJyZWwN CiANCiAjICpET0NVTUVOVEFUSU9OKg0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2lhMzIvaWEzMmVu dHJ5LlMgYi9hcmNoL3g4Ni9pYTMyL2lhMzJlbnRyeS5TDQppbmRleCBhNjI1M2VjLi45NWI0ZWIz IDEwMDY0NA0KLS0tIGEvYXJjaC94ODYvaWEzMi9pYTMyZW50cnkuUw0KKysrIGIvYXJjaC94ODYv aWEzMi9pYTMyZW50cnkuUw0KQEAgLTIwOCw3ICsyMDgsNyBAQCBzeXNleGl0X2Zyb21fc3lzX2Nh bGw6DQogCXRlc3RsICQoX1RJRl9BTExXT1JLX01BU0sgJiB+X1RJRl9TWVNDQUxMX0FVRElUKSxU SV9mbGFncyglcjEwKQ0KIAlqbnogaWEzMl9yZXRfZnJvbV9zeXNfY2FsbA0KIAlUUkFDRV9JUlFT X09ODQotCXN0aQ0KKwlFTkFCTEVfSU5URVJSVVBUUyhDTEJSX05PTkUpDQogCW1vdmwgJWVheCwl ZXNpCQkvKiBzZWNvbmQgYXJnLCBzeXNjYWxsIHJldHVybiB2YWx1ZSAqLw0KIAljbXBsICQwLCVl YXgJCS8qIGlzIGl0IDwgMD8gKi8NCiAJc2V0bCAlYWwJCS8qIDEgaWYgc28sIDAgaWYgbm90ICov DQpAQCAtMjE4LDcgKzIxOCw3IEBAIHN5c2V4aXRfZnJvbV9zeXNfY2FsbDoNCiAJR0VUX1RIUkVB RF9JTkZPKCVyMTApDQogCW1vdmwgUkFYLUFSR09GRlNFVCglcnNwKSwlZWF4CS8qIHJlbG9hZCBz eXNjYWxsIHJldHVybiB2YWx1ZSAqLw0KIAltb3ZsICQoX1RJRl9BTExXT1JLX01BU0sgJiB+X1RJ Rl9TWVNDQUxMX0FVRElUKSwlZWRpDQotCWNsaQ0KKwlESVNBQkxFX0lOVEVSUlVQVFMoQ0xCUl9O T05FKQ0KIAlUUkFDRV9JUlFTX09GRg0KIAl0ZXN0bCAlZWRpLFRJX2ZsYWdzKCVyMTApDQogCWp6 IFxleGl0DQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3N0ZXAuYyBiL2FyY2gveDg2L2tl cm5lbC9zdGVwLmMNCmluZGV4IGMzNDZkMTEuLmQ0ZjI3OGUgMTAwNjQ0DQotLS0gYS9hcmNoL3g4 Ni9rZXJuZWwvc3RlcC5jDQorKysgYi9hcmNoL3g4Ni9rZXJuZWwvc3RlcC5jDQpAQCAtMTU3LDYg KzE1NywzNCBAQCBzdGF0aWMgaW50IGVuYWJsZV9zaW5nbGVfc3RlcChzdHJ1Y3QgdGFza19zdHJ1 Y3QgKmNoaWxkKQ0KIAlyZXR1cm4gMTsNCiB9DQogDQorc3RhdGljIHZvaWQgc2V0X3Rhc2tfYmxv Y2tzdGVwKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgYm9vbCBvbikNCit7DQorCXVuc2lnbmVk IGxvbmcgZGVidWdjdGw7DQorDQorCS8qDQorCSAqIEVuc3VyZSBpcnEvcHJlZW1wdGlvbiBjYW4n dCBjaGFuZ2UgZGVidWdjdGwgaW4gYmV0d2Vlbi4NCisJICogTm90ZSBhbHNvIHRoYXQgYm90aCBU SUZfQkxPQ0tTVEVQIGFuZCBkZWJ1Z2N0bCBzaG91bGQNCisJICogYmUgY2hhbmdlZCBhdG9taWNh bGx5IHdydCBwcmVlbXB0aW9uLg0KKwkgKg0KKwkgKiBOT1RFOiB0aGlzIG1lYW5zIHRoYXQgc2V0 L2NsZWFyIFRJRl9CTE9DS1NURVAgaXMgb25seSBzYWZlIGlmDQorCSAqIHRhc2sgaXMgY3VycmVu dCBvciBpdCBjYW4ndCBiZSBydW5uaW5nLCBvdGhlcndpc2Ugd2UgY2FuIHJhY2UNCisJICogd2l0 aCBfX3N3aXRjaF90b194dHJhKCkuIFdlIHJlbHkgb24gcHRyYWNlX2ZyZWV6ZV90cmFjZWQoKSBi dXQNCisJICogUFRSQUNFX0tJTEwgaXMgbm90IHNhZmUuDQorCSAqLw0KKwlsb2NhbF9pcnFfZGlz YWJsZSgpOw0KKwlkZWJ1Z2N0bCA9IGdldF9kZWJ1Z2N0bG1zcigpOw0KKwlpZiAob24pIHsNCisJ CWRlYnVnY3RsIHw9IERFQlVHQ1RMTVNSX0JURjsNCisJCXNldF90c2tfdGhyZWFkX2ZsYWcodGFz aywgVElGX0JMT0NLU1RFUCk7DQorCX0gZWxzZSB7DQorCQlkZWJ1Z2N0bCAmPSB+REVCVUdDVExN U1JfQlRGOw0KKwkJY2xlYXJfdHNrX3RocmVhZF9mbGFnKHRhc2ssIFRJRl9CTE9DS1NURVApOw0K Kwl9DQorCWlmICh0YXNrID09IGN1cnJlbnQpDQorCQl1cGRhdGVfZGVidWdjdGxtc3IoZGVidWdj dGwpOw0KKwlsb2NhbF9pcnFfZW5hYmxlKCk7DQorfQ0KKw0KIC8qDQogICogRW5hYmxlIHNpbmds ZSBvciBibG9jayBzdGVwLg0KICAqLw0KQEAgLTE2OSwxOSArMTk3LDEwIEBAIHN0YXRpYyB2b2lk IGVuYWJsZV9zdGVwKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsIGJvb2wgYmxvY2spDQogCSAq IFNvIG5vIG9uZSBzaG91bGQgdHJ5IHRvIHVzZSBkZWJ1Z2dlciBibG9jayBzdGVwcGluZyBpbiBh IHByb2dyYW0NCiAJICogdGhhdCB1c2VzIHVzZXItbW9kZSBzaW5nbGUgc3RlcHBpbmcgaXRzZWxm Lg0KIAkgKi8NCi0JaWYgKGVuYWJsZV9zaW5nbGVfc3RlcChjaGlsZCkgJiYgYmxvY2spIHsNCi0J CXVuc2lnbmVkIGxvbmcgZGVidWdjdGwgPSBnZXRfZGVidWdjdGxtc3IoKTsNCi0NCi0JCWRlYnVn Y3RsIHw9IERFQlVHQ1RMTVNSX0JURjsNCi0JCXVwZGF0ZV9kZWJ1Z2N0bG1zcihkZWJ1Z2N0bCk7 DQotCQlzZXRfdHNrX3RocmVhZF9mbGFnKGNoaWxkLCBUSUZfQkxPQ0tTVEVQKTsNCi0JfSBlbHNl IGlmICh0ZXN0X3Rza190aHJlYWRfZmxhZyhjaGlsZCwgVElGX0JMT0NLU1RFUCkpIHsNCi0JCXVu c2lnbmVkIGxvbmcgZGVidWdjdGwgPSBnZXRfZGVidWdjdGxtc3IoKTsNCi0NCi0JCWRlYnVnY3Rs ICY9IH5ERUJVR0NUTE1TUl9CVEY7DQotCQl1cGRhdGVfZGVidWdjdGxtc3IoZGVidWdjdGwpOw0K LQkJY2xlYXJfdHNrX3RocmVhZF9mbGFnKGNoaWxkLCBUSUZfQkxPQ0tTVEVQKTsNCi0JfQ0KKwlp ZiAoZW5hYmxlX3NpbmdsZV9zdGVwKGNoaWxkKSAmJiBibG9jaykNCisJCXNldF90YXNrX2Jsb2Nr c3RlcChjaGlsZCwgdHJ1ZSk7DQorCWVsc2UgaWYgKHRlc3RfdHNrX3RocmVhZF9mbGFnKGNoaWxk LCBUSUZfQkxPQ0tTVEVQKSkNCisJCXNldF90YXNrX2Jsb2Nrc3RlcChjaGlsZCwgZmFsc2UpOw0K IH0NCiANCiB2b2lkIHVzZXJfZW5hYmxlX3NpbmdsZV9zdGVwKHN0cnVjdCB0YXNrX3N0cnVjdCAq Y2hpbGQpDQpAQCAtMTk5LDEzICsyMTgsOCBAQCB2b2lkIHVzZXJfZGlzYWJsZV9zaW5nbGVfc3Rl cChzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkKQ0KIAkvKg0KIAkgKiBNYWtlIHN1cmUgYmxvY2sg c3RlcHBpbmcgKEJURikgaXMgZGlzYWJsZWQuDQogCSAqLw0KLQlpZiAodGVzdF90c2tfdGhyZWFk X2ZsYWcoY2hpbGQsIFRJRl9CTE9DS1NURVApKSB7DQotCQl1bnNpZ25lZCBsb25nIGRlYnVnY3Rs ID0gZ2V0X2RlYnVnY3RsbXNyKCk7DQotDQotCQlkZWJ1Z2N0bCAmPSB+REVCVUdDVExNU1JfQlRG Ow0KLQkJdXBkYXRlX2RlYnVnY3RsbXNyKGRlYnVnY3RsKTsNCi0JCWNsZWFyX3Rza190aHJlYWRf ZmxhZyhjaGlsZCwgVElGX0JMT0NLU1RFUCk7DQotCX0NCisJaWYgKHRlc3RfdHNrX3RocmVhZF9m bGFnKGNoaWxkLCBUSUZfQkxPQ0tTVEVQKSkNCisJCXNldF90YXNrX2Jsb2Nrc3RlcChjaGlsZCwg ZmFsc2UpOw0KIA0KIAkvKiBBbHdheXMgY2xlYXIgVElGX1NJTkdMRVNURVAuLi4gKi8NCiAJY2xl YXJfdHNrX3RocmVhZF9mbGFnKGNoaWxkLCBUSUZfU0lOR0xFU1RFUCk7DQpkaWZmIC0tZ2l0IGEv YXJjaC94ODYveGVuL3hlbi1hc21fMzIuUyBiL2FyY2gveDg2L3hlbi94ZW4tYXNtXzMyLlMNCmlu ZGV4IGIwNDBiMGUuLjczMjhmNzEgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni94ZW4veGVuLWFzbV8z Mi5TDQorKysgYi9hcmNoL3g4Ni94ZW4veGVuLWFzbV8zMi5TDQpAQCAtODgsMTEgKzg4LDExIEBA IEVOVFJZKHhlbl9pcmV0KQ0KIAkgKi8NCiAjaWZkZWYgQ09ORklHX1NNUA0KIAlHRVRfVEhSRUFE X0lORk8oJWVheCkNCi0JbW92bCBUSV9jcHUoJWVheCksICVlYXgNCi0JbW92bCBfX3Blcl9jcHVf b2Zmc2V0KCwlZWF4LDQpLCAlZWF4DQotCW1vdiB4ZW5fdmNwdSglZWF4KSwgJWVheA0KKwltb3Zs ICVzczpUSV9jcHUoJWVheCksICVlYXgNCisJbW92bCAlc3M6X19wZXJfY3B1X29mZnNldCgsJWVh eCw0KSwgJWVheA0KKwltb3YgJXNzOnhlbl92Y3B1KCVlYXgpLCAlZWF4DQogI2Vsc2UNCi0JbW92 bCB4ZW5fdmNwdSwgJWVheA0KKwltb3ZsICVzczp4ZW5fdmNwdSwgJWVheA0KICNlbmRpZg0KIA0K IAkvKiBjaGVjayBJRiBzdGF0ZSB3ZSdyZSByZXN0b3JpbmcgKi8NCkBAIC0xMDUsMTEgKzEwNSwx MSBAQCBFTlRSWSh4ZW5faXJldCkNCiAJICogcmVzdW1pbmcgdGhlIGNvZGUsIHNvIHdlIGRvbid0 IGhhdmUgdG8gYmUgd29ycmllZCBhYm91dA0KIAkgKiBiZWluZyBwcmVlbXB0ZWQgdG8gYW5vdGhl ciBDUFUuDQogCSAqLw0KLQlzZXR6IFhFTl92Y3B1X2luZm9fbWFzayglZWF4KQ0KKwlzZXR6ICVz czpYRU5fdmNwdV9pbmZvX21hc2soJWVheCkNCiB4ZW5faXJldF9zdGFydF9jcml0Og0KIA0KIAkv KiBjaGVjayBmb3IgdW5tYXNrZWQgYW5kIHBlbmRpbmcgKi8NCi0JY21wdyAkMHgwMDAxLCBYRU5f dmNwdV9pbmZvX3BlbmRpbmcoJWVheCkNCisJY21wdyAkMHgwMDAxLCAlc3M6WEVOX3ZjcHVfaW5m b19wZW5kaW5nKCVlYXgpDQogDQogCS8qDQogCSAqIElmIHRoZXJlJ3Mgc29tZXRoaW5nIHBlbmRp bmcsIG1hc2sgZXZlbnRzIGFnYWluIHNvIHdlIGNhbg0KQEAgLTExNyw3ICsxMTcsNyBAQCB4ZW5f aXJldF9zdGFydF9jcml0Og0KIAkgKiB0b3VjaCBYRU5fdmNwdV9pbmZvX21hc2suDQogCSAqLw0K IAlqbmUgMWYNCi0JbW92YiAkMSwgWEVOX3ZjcHVfaW5mb19tYXNrKCVlYXgpDQorCW1vdmIgJDEs ICVzczpYRU5fdmNwdV9pbmZvX21hc2soJWVheCkNCiANCiAxOglwb3BsICVlYXgNCiANCmRpZmYg LS1naXQgYS9kcml2ZXJzL2F0YS9haGNpLmMgYi9kcml2ZXJzL2F0YS9haGNpLmMNCmluZGV4IGIw N2VkYzQuLjYyYzEzMjUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2F0YS9haGNpLmMNCisrKyBiL2Ry aXZlcnMvYXRhL2FoY2kuYw0KQEAgLTUyLDcgKzUyLDkgQEANCiAjZGVmaW5lIERSVl9WRVJTSU9O CSIzLjAiDQogDQogZW51bSB7DQotCUFIQ0lfUENJX0JBUgkJPSA1LA0KKwlBSENJX1BDSV9CQVJf U1RBMlgxMQk9IDAsDQorCUFIQ0lfUENJX0JBUl9FTk1PVFVTCT0gMiwNCisJQUhDSV9QQ0lfQkFS X1NUQU5EQVJECT0gNSwNCiB9Ow0KIA0KIGVudW0gYm9hcmRfaWRzIHsNCkBAIC0zNzUsNiArMzc3 LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGFoY2lfcGNpX3RibFtdID0g ew0KIAl7IFBDSV9WREVWSUNFKFNJLCAweDExODUpLCBib2FyZF9haGNpIH0sCQkvKiBTaVMgOTY4 ICovDQogCXsgUENJX1ZERVZJQ0UoU0ksIDB4MDE4NiksIGJvYXJkX2FoY2kgfSwJCS8qIFNpUyA5 NjggKi8NCiANCisJLyogU1QgTWljcm9lbGVjdHJvbmljcyAqLw0KKwl7IFBDSV9WREVWSUNFKFNU TUlDUk8sIDB4Q0MwNiksIGJvYXJkX2FoY2kgfSwJCS8qIFNUIENvbm5lWHQgKi8NCisNCiAJLyog TWFydmVsbCAqLw0KIAl7IFBDSV9WREVWSUNFKE1BUlZFTEwsIDB4NjE0NSksIGJvYXJkX2FoY2lf bXYgfSwJLyogNjE0NSAqLw0KIAl7IFBDSV9WREVWSUNFKE1BUlZFTEwsIDB4NjEyMSksIGJvYXJk X2FoY2lfbXYgfSwJLyogNjEyMSAqLw0KQEAgLTQwMCw2ICs0MDUsOSBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHBjaV9kZXZpY2VfaWQgYWhjaV9wY2lfdGJsW10gPSB7DQogCXsgUENJX1ZERVZJQ0Uo QVNNRURJQSwgMHgwNjExKSwgYm9hcmRfYWhjaSB9LAkvKiBBU00xMDYxICovDQogCXsgUENJX1ZE RVZJQ0UoQVNNRURJQSwgMHgwNjEyKSwgYm9hcmRfYWhjaSB9LAkvKiBBU00xMDYyICovDQogDQor CS8qIEVubW90dXMgKi8NCisJeyBQQ0lfREVWSUNFKDB4MWM0NCwgMHg4MDAwKSwgYm9hcmRfYWhj aSB9LA0KKw0KIAkvKiBHZW5lcmljLCBQQ0kgY2xhc3MgY29kZSBmb3IgQUhDSSAqLw0KIAl7IFBD SV9BTllfSUQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsDQogCSAgUENJX0NM QVNTX1NUT1JBR0VfU0FUQV9BSENJLCAweGZmZmZmZiwgYm9hcmRfYWhjaSB9LA0KQEAgLTYyOSw2 ICs2MzcsMTMgQEAgc3RhdGljIGludCBhaGNpX2NvbmZpZ3VyZV9kbWFfbWFza3Moc3RydWN0IHBj aV9kZXYgKnBkZXYsIGludCB1c2luZ19kYWMpDQogew0KIAlpbnQgcmM7DQogDQorCS8qDQorCSAq IElmIHRoZSBkZXZpY2UgZml4dXAgYWxyZWFkeSBzZXQgdGhlIGRtYV9tYXNrIHRvIHNvbWUgbm9u LXN0YW5kYXJkDQorCSAqIHZhbHVlLCBkb24ndCBleHRlbmQgaXQgaGVyZS4gVGhpcyBoYXBwZW5z IG9uIFNUQTJYMTEsIGZvciBleGFtcGxlLg0KKwkgKi8NCisJaWYgKHBkZXYtPmRtYV9tYXNrICYm IHBkZXYtPmRtYV9tYXNrIDwgRE1BX0JJVF9NQVNLKDMyKSkNCisJCXJldHVybiAwOw0KKw0KIAlp ZiAodXNpbmdfZGFjICYmDQogCSAgICAhcGNpX3NldF9kbWFfbWFzayhwZGV2LCBETUFfQklUX01B U0soNjQpKSkgew0KIAkJcmMgPSBwY2lfc2V0X2NvbnNpc3RlbnRfZG1hX21hc2socGRldiwgRE1B X0JJVF9NQVNLKDY0KSk7DQpAQCAtMTAzMyw2ICsxMDQ4LDcgQEAgc3RhdGljIGludCBhaGNpX2lu aXRfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAq ZW50KQ0KIAlzdHJ1Y3QgYWhjaV9ob3N0X3ByaXYgKmhwcml2Ow0KIAlzdHJ1Y3QgYXRhX2hvc3Qg Kmhvc3Q7DQogCWludCBuX3BvcnRzLCBpLCByYzsNCisJaW50IGFoY2lfcGNpX2JhciA9IEFIQ0lf UENJX0JBUl9TVEFOREFSRDsNCiANCiAJVlBSSU5USygiRU5URVJcbiIpOw0KIA0KQEAgLTEwNjQs NiArMTA4MCwxMiBAQCBzdGF0aWMgaW50IGFoY2lfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKnBk ZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpDQogCQlkZXZfaW5mbygmcGRldi0+ ZGV2LA0KIAkJCSAiUERDNDI4MTkgY2FuIG9ubHkgZHJpdmUgU0FUQSBkZXZpY2VzIHdpdGggdGhp cyBkcml2ZXJcbiIpOw0KIA0KKwkvKiBCb3RoIENvbm5leHQgYW5kIEVubW90dXMgZGV2aWNlcyB1 c2Ugbm9uLXN0YW5kYXJkIEJBUnMgKi8NCisJaWYgKHBkZXYtPnZlbmRvciA9PSBQQ0lfVkVORE9S X0lEX1NUTUlDUk8gJiYgcGRldi0+ZGV2aWNlID09IDB4Q0MwNikNCisJCWFoY2lfcGNpX2JhciA9 IEFIQ0lfUENJX0JBUl9TVEEyWDExOw0KKwllbHNlIGlmIChwZGV2LT52ZW5kb3IgPT0gMHgxYzQ0 ICYmIHBkZXYtPmRldmljZSA9PSAweDgwMDApDQorCQlhaGNpX3BjaV9iYXIgPSBBSENJX1BDSV9C QVJfRU5NT1RVUzsNCisNCiAJLyogYWNxdWlyZSByZXNvdXJjZXMgKi8NCiAJcmMgPSBwY2ltX2Vu YWJsZV9kZXZpY2UocGRldik7DQogCWlmIChyYykNCkBAIC0xMDcyLDcgKzEwOTQsNyBAQCBzdGF0 aWMgaW50IGFoY2lfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBw Y2lfZGV2aWNlX2lkICplbnQpDQogCS8qIEFIQ0kgY29udHJvbGxlcnMgb2Z0ZW4gaW1wbGVtZW50 IFNGRiBjb21wYXRpYmxlIGludGVyZmFjZS4NCiAJICogR3JhYiBhbGwgUENJIEJBUnMganVzdCBp biBjYXNlLg0KIAkgKi8NCi0JcmMgPSBwY2ltX2lvbWFwX3JlZ2lvbnNfcmVxdWVzdF9hbGwocGRl diwgMSA8PCBBSENJX1BDSV9CQVIsIERSVl9OQU1FKTsNCisJcmMgPSBwY2ltX2lvbWFwX3JlZ2lv bnNfcmVxdWVzdF9hbGwocGRldiwgMSA8PCBhaGNpX3BjaV9iYXIsIERSVl9OQU1FKTsNCiAJaWYg KHJjID09IC1FQlVTWSkNCiAJCXBjaW1fcGluX2RldmljZShwZGV2KTsNCiAJaWYgKHJjKQ0KQEAg LTExMTUsNyArMTEzNyw3IEBAIHN0YXRpYyBpbnQgYWhjaV9pbml0X29uZShzdHJ1Y3QgcGNpX2Rl diAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkNCiAJaWYgKChocHJpdi0+ ZmxhZ3MgJiBBSENJX0hGTEFHX05PX01TSSkgfHwgcGNpX2VuYWJsZV9tc2kocGRldikpDQogCQlw Y2lfaW50eChwZGV2LCAxKTsNCiANCi0JaHByaXYtPm1taW8gPSBwY2ltX2lvbWFwX3RhYmxlKHBk ZXYpW0FIQ0lfUENJX0JBUl07DQorCWhwcml2LT5tbWlvID0gcGNpbV9pb21hcF90YWJsZShwZGV2 KVthaGNpX3BjaV9iYXJdOw0KIA0KIAkvKiBzYXZlIGluaXRpYWwgY29uZmlnICovDQogCWFoY2lf cGNpX3NhdmVfaW5pdGlhbF9jb25maWcocGRldiwgaHByaXYpOw0KQEAgLTExNzksOCArMTIwMSw4 IEBAIHN0YXRpYyBpbnQgYWhjaV9pbml0X29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qg c3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkNCiAJZm9yIChpID0gMDsgaSA8IGhvc3QtPm5fcG9y dHM7IGkrKykgew0KIAkJc3RydWN0IGF0YV9wb3J0ICphcCA9IGhvc3QtPnBvcnRzW2ldOw0KIA0K LQkJYXRhX3BvcnRfcGJhcl9kZXNjKGFwLCBBSENJX1BDSV9CQVIsIC0xLCAiYWJhciIpOw0KLQkJ YXRhX3BvcnRfcGJhcl9kZXNjKGFwLCBBSENJX1BDSV9CQVIsDQorCQlhdGFfcG9ydF9wYmFyX2Rl c2MoYXAsIGFoY2lfcGNpX2JhciwgLTEsICJhYmFyIik7DQorCQlhdGFfcG9ydF9wYmFyX2Rlc2Mo YXAsIGFoY2lfcGNpX2JhciwNCiAJCQkJICAgMHgxMDAgKyBhcC0+cG9ydF9ubyAqIDB4ODAsICJw b3J0Iik7DQogDQogCQkvKiBzZXQgZW5jbG9zdXJlIG1hbmFnZW1lbnQgbWVzc2FnZSB0eXBlICov DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdG0vaXBoYXNlLmggYi9kcml2ZXJzL2F0bS9pcGhhc2Uu aA0KaW5kZXggNmEwOTU1ZS4uNTNlY2FjNSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYXRtL2lwaGFz ZS5oDQorKysgYi9kcml2ZXJzL2F0bS9pcGhhc2UuaA0KQEAgLTYzNiw4MiArNjM2LDgyIEBAIHN0 cnVjdCByeF9idWZfZGVzYyB7DQogI2RlZmluZSBTRUdfQkFTRSBJUEhBU0U1NTc1X0ZSQUdfQ09O VFJPTF9SRUdfQkFTRSAgDQogI2RlZmluZSBSRUFTU19CQVNFIElQSEFTRTU1NzVfUkVBU1NfQ09O VFJPTF9SRUdfQkFTRSAgDQogDQotdHlwZWRlZiB2b2xhdGlsZSB1X2ludCAgZnJlZ190Ow0KK3R5 cGVkZWYgdm9sYXRpbGUgdV9pbnQJZmZyZWdfdDsNCiB0eXBlZGVmIHVfaW50ICAgcnJlZ190Ow0K IA0KIHR5cGVkZWYgc3RydWN0IF9mZnJlZG5fdCB7DQotICAgICAgICBmcmVnX3QgIGlkbGVoZWFk X2hpZ2g7ICAvKiBJZGxlIGNlbGwgaGVhZGVyIChoaWdoKSAgICAgICAgICAgICAgKi8NCi0gICAg ICAgIGZyZWdfdCAgaWRsZWhlYWRfbG93OyAgIC8qIElkbGUgY2VsbCBoZWFkZXIgKGxvdykgICAg ICAgICAgICAgICAqLw0KLSAgICAgICAgZnJlZ190ICBtYXhyYXRlOyAgICAgICAgLyogTWF4aW11 bSByYXRlICAgICAgICAgICAgICAgICAgICAgICAgICovDQotICAgICAgICBmcmVnX3QgIHN0cGFy bXM7ICAgICAgICAvKiBUcmFmZmljIE1hbmFnZW1lbnQgUGFyYW1ldGVycyAgICAgICAgKi8NCi0g ICAgICAgIGZyZWdfdCAgYWJydWJyX2FicjsgICAgIC8qIEFCUlVCUiBQcmlvcml0eSBCeXRlIDEs IFRDUiBCeXRlIDAgICAqLw0KLSAgICAgICAgZnJlZ190ICBybV90eXBlOyAgICAgICAgLyogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQotICAgICAgICB1X2ludCAgIGZp bGxlcjVbMHgxNyAtIDB4MDZdOw0KLSAgICAgICAgZnJlZ190ICBjbWRfcmVnOyAgICAgICAgLyog Q29tbWFuZCByZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICovDQotICAgICAgICB1X2ludCAg IGZpbGxlcjE4WzB4MjAgLSAweDE4XTsNCi0gICAgICAgIGZyZWdfdCAgY2JyX2Jhc2U7ICAgICAg IC8qIENCUiBQb2ludGVyIEJhc2UgICAgICAgICAgICAgICAgICAgICAqLw0KLSAgICAgICAgZnJl Z190ICB2YnJfYmFzZTsgICAgICAgLyogVkJSIFBvaW50ZXIgQmFzZSAgICAgICAgICAgICAgICAg ICAgICovDQotICAgICAgICBmcmVnX3QgIGFicl9iYXNlOyAgICAgICAvKiBBQlIgUG9pbnRlciBC YXNlICAgICAgICAgICAgICAgICAgICAgKi8NCi0gICAgICAgIGZyZWdfdCAgdWJyX2Jhc2U7ICAg ICAgIC8qIFVCUiBQb2ludGVyIEJhc2UgICAgICAgICAgICAgICAgICAgICAqLw0KLSAgICAgICAg dV9pbnQgICBmaWxsZXIyNDsNCi0gICAgICAgIGZyZWdfdCAgdmJyd3FfYmFzZTsgICAgIC8qIFZC UiBXYWl0IFF1ZXVlIEJhc2UgICAgICAgICAgICAgICAgICAqLw0KLSAgICAgICAgZnJlZ190ICBh YnJ3cV9iYXNlOyAgICAgLyogQUJSIFdhaXQgUXVldWUgQmFzZSAgICAgICAgICAgICAgICAgICov DQotICAgICAgICBmcmVnX3QgIHVicndxX2Jhc2U7ICAgICAvKiBVQlIgV2FpdCBRdWV1ZSBCYXNl ICAgICAgICAgICAgICAgICAgKi8NCi0gICAgICAgIGZyZWdfdCAgdmN0X2Jhc2U7ICAgICAgIC8q IE1haW4gVkMgVGFibGUgQmFzZSAgICAgICAgICAgICAgICAgICAqLw0KLSAgICAgICAgZnJlZ190 ICB2Y3RlX2Jhc2U7ICAgICAgLyogRXh0ZW5kZWQgTWFpbiBWQyBUYWJsZSBCYXNlICAgICAgICAg ICovDQotICAgICAgICB1X2ludCAgIGZpbGxlcjJhWzB4MkMgLSAweDJBXTsNCi0gICAgICAgIGZy ZWdfdCAgY2JyX3RhYl9iZWc7ICAgIC8qIENCUiBUYWJsZSBCZWdpbiAgICAgICAgICAgICAgICAg ICAgICAqLw0KLSAgICAgICAgZnJlZ190ICBjYnJfdGFiX2VuZDsgICAgLyogQ0JSIFRhYmxlIEVu ZCAgICAgICAgICAgICAgICAgICAgICAgICovDQotICAgICAgICBmcmVnX3QgIGNicl9wb2ludGVy OyAgICAvKiBDQlIgUG9pbnRlciAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCi0gICAgICAg IHVfaW50ICAgZmlsbGVyMmZbMHgzMCAtIDB4MkZdOw0KLSAgICAgICAgZnJlZ190ICBwcnFfc3Rf YWRyOyAgICAgLyogUGFja2V0IFJlYWR5IFF1ZXVlIFN0YXJ0IEFkZHJlc3MgICAgICovDQotICAg ICAgICBmcmVnX3QgIHBycV9lZF9hZHI7ICAgICAvKiBQYWNrZXQgUmVhZHkgUXVldWUgRW5kIEFk ZHJlc3MgICAgICAgKi8NCi0gICAgICAgIGZyZWdfdCAgcHJxX3JkX3B0cjsgICAgIC8qIFBhY2tl dCBSZWFkeSBRdWV1ZSByZWFkIHBvaW50ZXIgICAgICAqLw0KLSAgICAgICAgZnJlZ190ICBwcnFf d3JfcHRyOyAgICAgLyogUGFja2V0IFJlYWR5IFF1ZXVlIHdyaXRlIHBvaW50ZXIgICAgICovDQot ICAgICAgICBmcmVnX3QgIHRjcV9zdF9hZHI7ICAgICAvKiBUcmFuc21pdCBDb21wbGV0ZSBRdWV1 ZSBTdGFydCBBZGRyZXNzKi8NCi0gICAgICAgIGZyZWdfdCAgdGNxX2VkX2FkcjsgICAgIC8qIFRy YW5zbWl0IENvbXBsZXRlIFF1ZXVlIEVuZCBBZGRyZXNzICAqLw0KLSAgICAgICAgZnJlZ190ICB0 Y3FfcmRfcHRyOyAgICAgLyogVHJhbnNtaXQgQ29tcGxldGUgUXVldWUgcmVhZCBwb2ludGVyICov DQotICAgICAgICBmcmVnX3QgIHRjcV93cl9wdHI7ICAgICAvKiBUcmFuc21pdCBDb21wbGV0ZSBR dWV1ZSB3cml0ZSBwb2ludGVyKi8NCi0gICAgICAgIHVfaW50ICAgZmlsbGVyMzhbMHg0MCAtIDB4 MzhdOw0KLSAgICAgICAgZnJlZ190ICBxdWV1ZV9iYXNlOyAgICAgLyogQmFzZSBhZGRyZXNzIGZv ciBQUlEgYW5kIFRDUSAgICAgICAgICovDQotICAgICAgICBmcmVnX3QgIGRlc2NfYmFzZTsgICAg ICAvKiBCYXNlIGFkZHJlc3Mgb2YgZGVzY3JpcHRvciB0YWJsZSAgICAgKi8NCi0gICAgICAgIHVf aW50ICAgZmlsbGVyNDJbMHg0NSAtIDB4NDJdOw0KLSAgICAgICAgZnJlZ190ICBtb2RlX3JlZ18w OyAgICAgLyogTW9kZSByZWdpc3RlciAwICAgICAgICAgICAgICAgICAgICAgICovDQotICAgICAg ICBmcmVnX3QgIG1vZGVfcmVnXzE7ICAgICAvKiBNb2RlIHJlZ2lzdGVyIDEgICAgICAgICAgICAg ICAgICAgICAgKi8NCi0gICAgICAgIGZyZWdfdCAgaW50cl9zdGF0dXNfcmVnOy8qIEludGVycnVw dCBTdGF0dXMgcmVnaXN0ZXIgICAgICAgICAgICAqLw0KLSAgICAgICAgZnJlZ190ICBtYXNrX3Jl ZzsgICAgICAgLyogTWFzayBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICovDQotICAg ICAgICBmcmVnX3QgIGNlbGxfY3RyX2hpZ2gxOyAvKiBUb3RhbCBjZWxsIHRyYW5zZmVyIGNvdW50 IChoaWdoKSAgICAgKi8NCi0gICAgICAgIGZyZWdfdCAgY2VsbF9jdHJfbG8xOyAgIC8qIFRvdGFs IGNlbGwgdHJhbnNmZXIgY291bnQgKGxvdykgICAgICAqLw0KLSAgICAgICAgZnJlZ190ICBzdGF0 ZV9yZWc7ICAgICAgLyogU3RhdHVzIHJlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgICovDQot ICAgICAgICB1X2ludCAgIGZpbGxlcjRjWzB4NTggLSAweDRjXTsNCi0gICAgICAgIGZyZWdfdCAg Y3Vycl9kZXNjX251bTsgIC8qIENvbnRhaW5zIHRoZSBjdXJyZW50IGRlc2NyaXB0b3IgbnVtICAq Lw0KLSAgICAgICAgZnJlZ190ICBuZXh0X2Rlc2M7ICAgICAgLyogTmV4dCBkZXNjcmlwdG9yICAg ICAgICAgICAgICAgICAgICAgICovDQotICAgICAgICBmcmVnX3QgIG5leHRfdmM7ICAgICAgICAv KiBOZXh0IFZDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCi0gICAgICAgIHVfaW50 ICAgZmlsbGVyNWJbMHg1ZCAtIDB4NWJdOw0KLSAgICAgICAgZnJlZ190ICBwcmVzZW50X3Nsb3Rf Y250Oy8qIFByZXNlbnQgc2xvdCBjb3VudCAgICAgICAgICAgICAgICAgICovDQotICAgICAgICB1 X2ludCAgIGZpbGxlcjVlWzB4NmEgLSAweDVlXTsNCi0gICAgICAgIGZyZWdfdCAgbmV3X2Rlc2Nf bnVtOyAgIC8qIE5ldyBkZXNjcmlwdG9yIG51bWJlciAgICAgICAgICAgICAgICAqLw0KLSAgICAg ICAgZnJlZ190ICBuZXdfdmM7ICAgICAgICAgLyogTmV3IFZDICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICovDQotICAgICAgICBmcmVnX3QgIHNjaGVkX3RibF9wdHI7ICAvKiBTY2hlZHVs ZSB0YWJsZSBwb2ludGVyICAgICAgICAgICAgICAgKi8NCi0gICAgICAgIGZyZWdfdCAgdmJyd3Ff d3B0cjsgICAgIC8qIFZCUiB3YWl0IHF1ZXVlIHdyaXRlIHBvaW50ZXIgICAgICAgICAqLw0KLSAg ICAgICAgZnJlZ190ICB2YnJ3cV9ycHRyOyAgICAgLyogVkJSIHdhaXQgcXVldWUgcmVhZCBwb2lu dGVyICAgICAgICAgICovDQotICAgICAgICBmcmVnX3QgIGFicndxX3dwdHI7ICAgICAvKiBBQlIg d2FpdCBxdWV1ZSB3cml0ZSBwb2ludGVyICAgICAgICAgKi8NCi0gICAgICAgIGZyZWdfdCAgYWJy d3FfcnB0cjsgICAgIC8qIEFCUiB3YWl0IHF1ZXVlIHJlYWQgcG9pbnRlciAgICAgICAgICAqLw0K LSAgICAgICAgZnJlZ190ICB1YnJ3cV93cHRyOyAgICAgLyogVUJSIHdhaXQgcXVldWUgd3JpdGUg cG9pbnRlciAgICAgICAgICovDQotICAgICAgICBmcmVnX3QgIHVicndxX3JwdHI7ICAgICAvKiBV QlIgd2FpdCBxdWV1ZSByZWFkIHBvaW50ZXIgICAgICAgICAgKi8NCi0gICAgICAgIGZyZWdfdCAg Y2JyX3ZjOyAgICAgICAgIC8qIENCUiBWQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq Lw0KLSAgICAgICAgZnJlZ190ICB2YnJfc2JfdmM7ICAgICAgLyogVkJSIFNCIFZDICAgICAgICAg ICAgICAgICAgICAgICAgICAgICovDQotICAgICAgICBmcmVnX3QgIGFicl9zYl92YzsgICAgICAv KiBBQlIgU0IgVkMgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8NCi0gICAgICAgIGZyZWdf dCAgdWJyX3NiX3ZjOyAgICAgIC8qIFVCUiBTQiBWQyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAqLw0KLSAgICAgICAgZnJlZ190ICB2YnJfbmV4dF9saW5rOyAgLyogVkJSIG5leHQgbGluayAg ICAgICAgICAgICAgICAgICAgICAgICovDQotICAgICAgICBmcmVnX3QgIGFicl9uZXh0X2xpbms7 ICAvKiBBQlIgbmV4dCBsaW5rICAgICAgICAgICAgICAgICAgICAgICAgKi8NCi0gICAgICAgIGZy ZWdfdCAgdWJyX25leHRfbGluazsgIC8qIFVCUiBuZXh0IGxpbmsgICAgICAgICAgICAgICAgICAg ICAgICAqLw0KLSAgICAgICAgdV9pbnQgICBmaWxsZXI3YVsweDdjLTB4N2FdOw0KLSAgICAgICAg ZnJlZ190ICBvdXRfcmF0ZV9oZWFkOyAgLyogT3V0IG9mIHJhdGUgaGVhZCAgICAgICAgICAgICAg ICAgICAgICovDQotICAgICAgICB1X2ludCAgIGZpbGxlcjdkWzB4Y2EtMHg3ZF07IC8qIHBhZCBv dXQgdG8gZnVsbCBhZGRyZXNzIHNwYWNlICAgKi8NCi0gICAgICAgIGZyZWdfdCAgY2VsbF9jdHJf aGlnaDFfbmM7LyogVG90YWwgY2VsbCB0cmFuc2ZlciBjb3VudCAoaGlnaCkgICAqLw0KLSAgICAg ICAgZnJlZ190ICBjZWxsX2N0cl9sbzFfbmM7LyogVG90YWwgY2VsbCB0cmFuc2ZlciBjb3VudCAo bG93KSAgICAgICovDQotICAgICAgICB1X2ludCAgIGZpbGxlcmNjWzB4MTAwLTB4Y2NdOyAvKiBw YWQgb3V0IHRvIGZ1bGwgYWRkcmVzcyBzcGFjZSAgICovDQorCWZmcmVnX3QJaWRsZWhlYWRfaGln aDsJLyogSWRsZSBjZWxsIGhlYWRlciAoaGlnaCkJCSovDQorCWZmcmVnX3QJaWRsZWhlYWRfbG93 OwkvKiBJZGxlIGNlbGwgaGVhZGVyIChsb3cpCQkqLw0KKwlmZnJlZ190CW1heHJhdGU7CS8qIE1h eGltdW0gcmF0ZQkJCQkqLw0KKwlmZnJlZ190CXN0cGFybXM7CS8qIFRyYWZmaWMgTWFuYWdlbWVu dCBQYXJhbWV0ZXJzCSovDQorCWZmcmVnX3QJYWJydWJyX2FicjsJLyogQUJSVUJSIFByaW9yaXR5 IEJ5dGUgMSwgVENSIEJ5dGUgMAkqLw0KKwlmZnJlZ190CXJtX3R5cGU7CS8qCQkJCQkqLw0KKwl1 X2ludAlmaWxsZXI1WzB4MTcgLSAweDA2XTsNCisJZmZyZWdfdAljbWRfcmVnOwkvKiBDb21tYW5k IHJlZ2lzdGVyCQkJKi8NCisJdV9pbnQJZmlsbGVyMThbMHgyMCAtIDB4MThdOw0KKwlmZnJlZ190 CWNicl9iYXNlOwkvKiBDQlIgUG9pbnRlciBCYXNlCQkJKi8NCisJZmZyZWdfdAl2YnJfYmFzZTsJ LyogVkJSIFBvaW50ZXIgQmFzZQkJCSovDQorCWZmcmVnX3QJYWJyX2Jhc2U7CS8qIEFCUiBQb2lu dGVyIEJhc2UJCQkqLw0KKwlmZnJlZ190CXVicl9iYXNlOwkvKiBVQlIgUG9pbnRlciBCYXNlCQkJ Ki8NCisJdV9pbnQJZmlsbGVyMjQ7DQorCWZmcmVnX3QJdmJyd3FfYmFzZTsJLyogVkJSIFdhaXQg UXVldWUgQmFzZQkJCSovDQorCWZmcmVnX3QJYWJyd3FfYmFzZTsJLyogQUJSIFdhaXQgUXVldWUg QmFzZQkJCSovDQorCWZmcmVnX3QJdWJyd3FfYmFzZTsJLyogVUJSIFdhaXQgUXVldWUgQmFzZQkJ CSovDQorCWZmcmVnX3QJdmN0X2Jhc2U7CS8qIE1haW4gVkMgVGFibGUgQmFzZQkJCSovDQorCWZm cmVnX3QJdmN0ZV9iYXNlOwkvKiBFeHRlbmRlZCBNYWluIFZDIFRhYmxlIEJhc2UJCSovDQorCXVf aW50CWZpbGxlcjJhWzB4MkMgLSAweDJBXTsNCisJZmZyZWdfdAljYnJfdGFiX2JlZzsJLyogQ0JS IFRhYmxlIEJlZ2luCQkJKi8NCisJZmZyZWdfdAljYnJfdGFiX2VuZDsJLyogQ0JSIFRhYmxlIEVu ZAkJCSovDQorCWZmcmVnX3QJY2JyX3BvaW50ZXI7CS8qIENCUiBQb2ludGVyCQkJCSovDQorCXVf aW50CWZpbGxlcjJmWzB4MzAgLSAweDJGXTsNCisJZmZyZWdfdAlwcnFfc3RfYWRyOwkvKiBQYWNr ZXQgUmVhZHkgUXVldWUgU3RhcnQgQWRkcmVzcwkqLw0KKwlmZnJlZ190CXBycV9lZF9hZHI7CS8q IFBhY2tldCBSZWFkeSBRdWV1ZSBFbmQgQWRkcmVzcwkqLw0KKwlmZnJlZ190CXBycV9yZF9wdHI7 CS8qIFBhY2tldCBSZWFkeSBRdWV1ZSByZWFkIHBvaW50ZXIJKi8NCisJZmZyZWdfdAlwcnFfd3Jf cHRyOwkvKiBQYWNrZXQgUmVhZHkgUXVldWUgd3JpdGUgcG9pbnRlcgkqLw0KKwlmZnJlZ190CXRj cV9zdF9hZHI7CS8qIFRyYW5zbWl0IENvbXBsZXRlIFF1ZXVlIFN0YXJ0IEFkZHJlc3MqLw0KKwlm ZnJlZ190CXRjcV9lZF9hZHI7CS8qIFRyYW5zbWl0IENvbXBsZXRlIFF1ZXVlIEVuZCBBZGRyZXNz CSovDQorCWZmcmVnX3QJdGNxX3JkX3B0cjsJLyogVHJhbnNtaXQgQ29tcGxldGUgUXVldWUgcmVh ZCBwb2ludGVyICovDQorCWZmcmVnX3QJdGNxX3dyX3B0cjsJLyogVHJhbnNtaXQgQ29tcGxldGUg UXVldWUgd3JpdGUgcG9pbnRlciovDQorCXVfaW50CWZpbGxlcjM4WzB4NDAgLSAweDM4XTsNCisJ ZmZyZWdfdAlxdWV1ZV9iYXNlOwkvKiBCYXNlIGFkZHJlc3MgZm9yIFBSUSBhbmQgVENRCQkqLw0K KwlmZnJlZ190CWRlc2NfYmFzZTsJLyogQmFzZSBhZGRyZXNzIG9mIGRlc2NyaXB0b3IgdGFibGUJ Ki8NCisJdV9pbnQJZmlsbGVyNDJbMHg0NSAtIDB4NDJdOw0KKwlmZnJlZ190CW1vZGVfcmVnXzA7 CS8qIE1vZGUgcmVnaXN0ZXIgMAkJCSovDQorCWZmcmVnX3QJbW9kZV9yZWdfMTsJLyogTW9kZSBy ZWdpc3RlciAxCQkJKi8NCisJZmZyZWdfdAlpbnRyX3N0YXR1c19yZWc7LyogSW50ZXJydXB0IFN0 YXR1cyByZWdpc3RlcgkJKi8NCisJZmZyZWdfdAltYXNrX3JlZzsJLyogTWFzayBSZWdpc3RlcgkJ CSovDQorCWZmcmVnX3QJY2VsbF9jdHJfaGlnaDE7IC8qIFRvdGFsIGNlbGwgdHJhbnNmZXIgY291 bnQgKGhpZ2gpCSovDQorCWZmcmVnX3QJY2VsbF9jdHJfbG8xOwkvKiBUb3RhbCBjZWxsIHRyYW5z ZmVyIGNvdW50IChsb3cpCSovDQorCWZmcmVnX3QJc3RhdGVfcmVnOwkvKiBTdGF0dXMgcmVnaXN0 ZXIJCQkqLw0KKwl1X2ludAlmaWxsZXI0Y1sweDU4IC0gMHg0Y107DQorCWZmcmVnX3QJY3Vycl9k ZXNjX251bTsJLyogQ29udGFpbnMgdGhlIGN1cnJlbnQgZGVzY3JpcHRvciBudW0JKi8NCisJZmZy ZWdfdAluZXh0X2Rlc2M7CS8qIE5leHQgZGVzY3JpcHRvcgkJCSovDQorCWZmcmVnX3QJbmV4dF92 YzsJLyogTmV4dCBWQwkJCQkqLw0KKwl1X2ludAlmaWxsZXI1YlsweDVkIC0gMHg1Yl07DQorCWZm cmVnX3QJcHJlc2VudF9zbG90X2NudDsvKiBQcmVzZW50IHNsb3QgY291bnQJCQkqLw0KKwl1X2lu dAlmaWxsZXI1ZVsweDZhIC0gMHg1ZV07DQorCWZmcmVnX3QJbmV3X2Rlc2NfbnVtOwkvKiBOZXcg ZGVzY3JpcHRvciBudW1iZXIJCSovDQorCWZmcmVnX3QJbmV3X3ZjOwkJLyogTmV3IFZDCQkJCSov DQorCWZmcmVnX3QJc2NoZWRfdGJsX3B0cjsJLyogU2NoZWR1bGUgdGFibGUgcG9pbnRlcgkJKi8N CisJZmZyZWdfdAl2YnJ3cV93cHRyOwkvKiBWQlIgd2FpdCBxdWV1ZSB3cml0ZSBwb2ludGVyCQkq Lw0KKwlmZnJlZ190CXZicndxX3JwdHI7CS8qIFZCUiB3YWl0IHF1ZXVlIHJlYWQgcG9pbnRlcgkJ Ki8NCisJZmZyZWdfdAlhYnJ3cV93cHRyOwkvKiBBQlIgd2FpdCBxdWV1ZSB3cml0ZSBwb2ludGVy CQkqLw0KKwlmZnJlZ190CWFicndxX3JwdHI7CS8qIEFCUiB3YWl0IHF1ZXVlIHJlYWQgcG9pbnRl cgkJKi8NCisJZmZyZWdfdAl1YnJ3cV93cHRyOwkvKiBVQlIgd2FpdCBxdWV1ZSB3cml0ZSBwb2lu dGVyCQkqLw0KKwlmZnJlZ190CXVicndxX3JwdHI7CS8qIFVCUiB3YWl0IHF1ZXVlIHJlYWQgcG9p bnRlcgkJKi8NCisJZmZyZWdfdAljYnJfdmM7CQkvKiBDQlIgVkMJCQkJKi8NCisJZmZyZWdfdAl2 YnJfc2JfdmM7CS8qIFZCUiBTQiBWQwkJCQkqLw0KKwlmZnJlZ190CWFicl9zYl92YzsJLyogQUJS IFNCIFZDCQkJCSovDQorCWZmcmVnX3QJdWJyX3NiX3ZjOwkvKiBVQlIgU0IgVkMJCQkJKi8NCisJ ZmZyZWdfdAl2YnJfbmV4dF9saW5rOwkvKiBWQlIgbmV4dCBsaW5rCQkJKi8NCisJZmZyZWdfdAlh YnJfbmV4dF9saW5rOwkvKiBBQlIgbmV4dCBsaW5rCQkJKi8NCisJZmZyZWdfdAl1YnJfbmV4dF9s aW5rOwkvKiBVQlIgbmV4dCBsaW5rCQkJKi8NCisJdV9pbnQJZmlsbGVyN2FbMHg3Yy0weDdhXTsN CisJZmZyZWdfdAlvdXRfcmF0ZV9oZWFkOwkvKiBPdXQgb2YgcmF0ZSBoZWFkCQkJKi8NCisJdV9p bnQJZmlsbGVyN2RbMHhjYS0weDdkXTsgLyogcGFkIG91dCB0byBmdWxsIGFkZHJlc3Mgc3BhY2UJ Ki8NCisJZmZyZWdfdAljZWxsX2N0cl9oaWdoMV9uYzsvKiBUb3RhbCBjZWxsIHRyYW5zZmVyIGNv dW50IChoaWdoKQkqLw0KKwlmZnJlZ190CWNlbGxfY3RyX2xvMV9uYzsvKiBUb3RhbCBjZWxsIHRy YW5zZmVyIGNvdW50IChsb3cpCSovDQorCXVfaW50CWZpbGxlcmNjWzB4MTAwLTB4Y2NdOyAvKiBw YWQgb3V0IHRvIGZ1bGwgYWRkcmVzcyBzcGFjZQkgKi8NCiB9IGZmcmVkbl90Ow0KIA0KIHR5cGVk ZWYgc3RydWN0IF9yZnJlZG5fdCB7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3ZpcnRpb19j b25zb2xlLmMgYi9kcml2ZXJzL2NoYXIvdmlydGlvX2NvbnNvbGUuYw0KaW5kZXggOGUzYzQ2ZC4u Nzc5NWQxZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvY2hhci92aXJ0aW9fY29uc29sZS5jDQorKysg Yi9kcml2ZXJzL2NoYXIvdmlydGlvX2NvbnNvbGUuYw0KQEAgLTE3ODksNyArMTc4OSw4IEBAIHN0 YXRpYyB2b2lkIHZpcnRjb25zX3JlbW92ZShzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldikNCiAJ LyogRGlzYWJsZSBpbnRlcnJ1cHRzIGZvciB2cXMgKi8NCiAJdmRldi0+Y29uZmlnLT5yZXNldCh2 ZGV2KTsNCiAJLyogRmluaXNoIHVwIHdvcmsgdGhhdCdzIGxpbmVkIHVwICovDQotCWNhbmNlbF93 b3JrX3N5bmMoJnBvcnRkZXYtPmNvbnRyb2xfd29yayk7DQorCWlmICh1c2VfbXVsdGlwb3J0KHBv cnRkZXYpKQ0KKwkJY2FuY2VsX3dvcmtfc3luYygmcG9ydGRldi0+Y29udHJvbF93b3JrKTsNCiAN CiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBvcnQsIHBvcnQyLCAmcG9ydGRldi0+cG9ydHMs IGxpc3QpDQogCQl1bnBsdWdfcG9ydChwb3J0KTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMNCmluZGV4IGMwNWU4MjUuLjc4MTc0MjkgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYw0KQEAgLTcxNTYsOCArNzE1Niw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2VuNF9x dWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsDQogCU9VVF9SSU5HKHBmIHwgcGlwZXNy Yyk7DQogDQogCWludGVsX21hcmtfcGFnZV9mbGlwX2FjdGl2ZShpbnRlbF9jcnRjKTsNCi0NCi0J aW50ZWxfbWFya19wYWdlX2ZsaXBfYWN0aXZlKGludGVsX2NydGMpOw0KIAlBRFZBTkNFX0xQX1JJ TkcoKTsNCiAJcmV0dXJuIDA7DQogDQpAQCAtNzE5Myw2ICs3MTkxLDggQEAgc3RhdGljIGludCBp bnRlbF9nZW42X3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCiAJcGYgPSBJOTE1 X1JFQUQoUEZfQ1RMKGludGVsX2NydGMtPnBpcGUpKSAmIFBGX0VOQUJMRTsNCiAJcGlwZXNyYyA9 IEk5MTVfUkVBRChQSVBFU1JDKGludGVsX2NydGMtPnBpcGUpKSAmIDB4MGZmZjBmZmY7DQogCU9V VF9SSU5HKHBmIHwgcGlwZXNyYyk7DQorDQorCWludGVsX21hcmtfcGFnZV9mbGlwX2FjdGl2ZShp bnRlbF9jcnRjKTsNCiAJQURWQU5DRV9MUF9SSU5HKCk7DQogCXJldHVybiAwOw0KIA0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NvbWJpb3MuYyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX2NvbWJpb3MuYw0KaW5kZXggMWI5ODMzOC4uZWMzNmRkOSAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NvbWJpb3MuYw0KKysr IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fY29tYmlvcy5jDQpAQCAtMjQ1NSw2ICsy NDU1LDE0IEBAIGJvb2wgcmFkZW9uX2dldF9sZWdhY3lfY29ubmVjdG9yX2luZm9fZnJvbV9iaW9z KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpDQogCQkJCQkJCQkgICAxKSwNCiAJCQkJCQkJCSAgQVRP TV9ERVZJQ0VfQ1JUMV9TVVBQT1JUKTsNCiAJCQkJfQ0KKwkJCQkvKiBSVjEwMCBib2FyZCB3aXRo IGV4dGVybmFsIFRETVMgYml0IG1pcy1zZXQuDQorCQkJCSAqIEFjdHVhbGx5IHVzZXMgaW50ZXJu YWwgVE1EUywgY2xlYXIgdGhlIGJpdC4NCisJCQkJICovDQorCQkJCWlmIChkZXYtPnBkZXYtPmRl dmljZSA9PSAweDUxNTkgJiYNCisJCQkJICAgIGRldi0+cGRldi0+c3Vic3lzdGVtX3ZlbmRvciA9 PSAweDEwMTQgJiYNCisJCQkJICAgIGRldi0+cGRldi0+c3Vic3lzdGVtX2RldmljZSA9PSAweDAy OUEpIHsNCisJCQkJCXRtcCAmPSB+KDEgPDwgNCk7DQorCQkJCX0NCiAJCQkJaWYgKCh0bXAgPj4g NCkgJiAweDEpIHsNCiAJCQkJCWRldmljZXMgfD0gQVRPTV9ERVZJQ0VfREZQMl9TVVBQT1JUOw0K IAkJCQkJcmFkZW9uX2FkZF9sZWdhY3lfZW5jb2RlcihkZXYsDQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fZGlzcGxheS5jDQppbmRleCBhZWM4ZTBjLi42M2U3MTQzIDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jDQorKysgYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9kaXNwbGF5LmMNCkBAIC0xMTEwLDggKzExMTAsMTAgQEAgcmFk ZW9uX3VzZXJfZnJhbWVidWZmZXJfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsDQogCX0N CiANCiAJcmFkZW9uX2ZiID0ga3phbGxvYyhzaXplb2YoKnJhZGVvbl9mYiksIEdGUF9LRVJORUwp Ow0KLQlpZiAocmFkZW9uX2ZiID09IE5VTEwpDQorCWlmIChyYWRlb25fZmIgPT0gTlVMTCkgew0K KwkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQob2JqKTsNCiAJCXJldHVybiBF UlJfUFRSKC1FTk9NRU0pOw0KKwl9DQogDQogCXJhZGVvbl9mcmFtZWJ1ZmZlcl9pbml0KGRldiwg cmFkZW9uX2ZiLCBtb2RlX2NtZCwgb2JqKTsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9yaW5nLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9y aW5nLmMNCmluZGV4IDQ5ZDU4MjAuLjY1YmU1ZTggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9yaW5nLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX3JpbmcuYw0KQEAgLTMwNiw2ICszMDYsOSBAQCBpbnQgcmFkZW9uX3JpbmdfYWxsb2Moc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHVuc2lnbmVkIG5kdykNCiB7DQogCWludCByOw0KIA0K KwkvKiBtYWtlIHN1cmUgd2UgYXJlbid0IHRyeWluZyB0byBhbGxvY2F0ZSBtb3JlIHNwYWNlIHRo YW4gdGhlcmUgaXMgb24gdGhlIHJpbmcgKi8NCisJaWYgKG5kdyA+IChyZGV2LT5jcC5yaW5nX3Np emUgLyA0KSkNCisJCXJldHVybiAtRU5PTUVNOw0KIAkvKiBBbGlnbiByZXF1ZXN0ZWQgc2l6ZSB3 aXRoIHBhZGRpbmcgc28gdW5sb2NrX2NvbW1pdCBjYW4NCiAJICogcGFkIHNhZmVseSAqLw0KIAlu ZHcgPSAobmR3ICsgcmRldi0+Y3AuYWxpZ25fbWFzaykgJiB+cmRldi0+Y3AuYWxpZ25fbWFzazsN CmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQtaWRzLmggYi9kcml2ZXJzL2hpZC9oaWQtaWRz LmgNCmluZGV4IDJkNDEzMzYuLmMxNWMzOGUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2hpZC9oaWQt aWRzLmgNCisrKyBiL2RyaXZlcnMvaGlkL2hpZC1pZHMuaA0KQEAgLTI3OCw2ICsyNzgsOSBAQA0K ICNkZWZpbmUgVVNCX1ZFTkRPUl9JRF9FWktFWQkJMHgwNTE4DQogI2RlZmluZSBVU0JfREVWSUNF X0lEX0JUQ184MTkzCQkweDAwMDINCiANCisjZGVmaW5lIFVTQl9WRU5ET1JfSURfRk9STU9TQSAg ICAgICAgICAweDE0N2ENCisjZGVmaW5lIFVTQl9ERVZJQ0VfSURfRk9STU9TQV9JUl9SRUNFSVZF UiAgICAgIDB4ZTAzZQ0KKw0KICNkZWZpbmUgVVNCX1ZFTkRPUl9JRF9GUkVFU0NBTEUJCTB4MTVB Mg0KICNkZWZpbmUgVVNCX0RFVklDRV9JRF9GUkVFU0NBTEVfTVgyOAkweDAwNEYNCiANCmRpZmYg LS1naXQgYS9kcml2ZXJzL2hpZC91c2JoaWQvaGlkLXF1aXJrcy5jIGIvZHJpdmVycy9oaWQvdXNi aGlkL2hpZC1xdWlya3MuYw0KaW5kZXggYWVjM2ZhMy4uZTI2ZWRkZiAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvaGlkL3VzYmhpZC9oaWQtcXVpcmtzLmMNCisrKyBiL2RyaXZlcnMvaGlkL3VzYmhpZC9o aWQtcXVpcmtzLmMNCkBAIC02OCw2ICs2OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGlkX2Js YWNrbGlzdCB7DQogCXsgVVNCX1ZFTkRPUl9JRF9DSCwgVVNCX0RFVklDRV9JRF9DSF9BWElTXzI5 NSwgSElEX1FVSVJLX05PR0VUIH0sDQogCXsgVVNCX1ZFTkRPUl9JRF9ETUksIFVTQl9ERVZJQ0Vf SURfRE1JX0VOQywgSElEX1FVSVJLX05PR0VUIH0sDQogCXsgVVNCX1ZFTkRPUl9JRF9FTE8sIFVT Ql9ERVZJQ0VfSURfRUxPX1RTMjcwMCwgSElEX1FVSVJLX05PR0VUIH0sDQorCXsgVVNCX1ZFTkRP Ul9JRF9GT1JNT1NBLCBVU0JfREVWSUNFX0lEX0ZPUk1PU0FfSVJfUkVDRUlWRVIsIEhJRF9RVUlS S19OT19JTklUX1JFUE9SVFMgfSwNCiAJeyBVU0JfVkVORE9SX0lEX0ZSRUVTQ0FMRSwgVVNCX0RF VklDRV9JRF9GUkVFU0NBTEVfTVgyOCwgSElEX1FVSVJLX05PR0VUIH0sDQogCXsgVVNCX1ZFTkRP Ul9JRF9NR0UsIFVTQl9ERVZJQ0VfSURfTUdFX1VQUywgSElEX1FVSVJLX05PR0VUIH0sDQogCXsg VVNCX1ZFTkRPUl9JRF9QSVhBUlQsIFVTQl9ERVZJQ0VfSURfUElYQVJUX09QVElDQUxfVE9VQ0hf U0NSRUVOLCBISURfUVVJUktfTk9fSU5JVF9SRVBPUlRTIH0sDQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9pc2RuL2dpZ2FzZXQvY2FwaS5jIGIvZHJpdmVycy9pc2RuL2dpZ2FzZXQvY2FwaS5jDQppbmRl eCBmZDE3YmIzLi4wOGMyMzI5IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9pc2RuL2dpZ2FzZXQvY2Fw aS5jDQorKysgYi9kcml2ZXJzL2lzZG4vZ2lnYXNldC9jYXBpLmMNCkBAIC0yNjQsNiArMjY0LDgg QEAgc3RhdGljIGlubGluZSB2b2lkIGR1bXBfcmF3bXNnKGVudW0gZGVidWdsZXZlbCBsZXZlbCwg Y29uc3QgY2hhciAqdGFnLA0KIAkJQ0FQSU1TR19BUFBJRChkYXRhKSwgQ0FQSU1TR19NU0dJRChk YXRhKSwgbCwNCiAJCUNBUElNU0dfQ09OVFJPTChkYXRhKSk7DQogCWwgLT0gMTI7DQorCWlmIChs IDw9IDApDQorCQlyZXR1cm47DQogCWRiZ2xpbmUgPSBrbWFsbG9jKDMqbCwgR0ZQX0FUT01JQyk7 DQogCWlmICghZGJnbGluZSkNCiAJCXJldHVybjsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlh L3ZpZGVvL2dzcGNhL2tpbmVjdC5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9nc3BjYS9raW5lY3Qu Yw0KaW5kZXggNGZlNTFmZC4uYWNhZWY2NiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbWVkaWEvdmlk ZW8vZ3NwY2Eva2luZWN0LmMNCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZ3NwY2Eva2luZWN0 LmMNCkBAIC0zOTAsNiArMzkwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzZF9kZXNjIHNkX2Rl c2MgPSB7DQogLyogLS0gbW9kdWxlIGluaXRpYWxpc2F0aW9uIC0tICovDQogc3RhdGljIGNvbnN0 IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGRldmljZV90YWJsZVtdID0gew0KIAl7VVNCX0RFVklDRSgw eDA0NWUsIDB4MDJhZSl9LA0KKwl7VVNCX0RFVklDRSgweDA0NWUsIDB4MDJiZil9LA0KIAl7fQ0K IH07DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL2NfY2FuL2NfY2FuLmMgYi9kcml2 ZXJzL25ldC9jYW4vY19jYW4vY19jYW4uYw0KaW5kZXggMjFhM2Q3Ny4uNjQ2NDdkNCAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvbmV0L2Nhbi9jX2Nhbi9jX2Nhbi5jDQorKysgYi9kcml2ZXJzL25ldC9j YW4vY19jYW4vY19jYW4uYw0KQEAgLTQ0Niw4ICs0NDYsMTIgQEAgc3RhdGljIHZvaWQgY19jYW5f c2V0dXBfcmVjZWl2ZV9vYmplY3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IGlmYWNlLA0K IA0KIAlwcml2LT53cml0ZV9yZWcocHJpdiwgJnByaXYtPnJlZ3MtPmlmcmVnc1tpZmFjZV0ubWFz azEsDQogCQkJSUZYX1dSSVRFX0xPV18xNkJJVChtYXNrKSk7DQorDQorCS8qIEFjY29yZGluZyB0 byBDX0NBTiBkb2N1bWVudGF0aW9uLCB0aGUgcmVzZXJ2ZWQgYml0DQorCSAqIGluIElGeF9NQVNL MiByZWdpc3RlciBpcyBmaXhlZCAxDQorCSAqLw0KIAlwcml2LT53cml0ZV9yZWcocHJpdiwgJnBy aXYtPnJlZ3MtPmlmcmVnc1tpZmFjZV0ubWFzazIsDQotCQkJSUZYX1dSSVRFX0hJR0hfMTZCSVQo bWFzaykpOw0KKwkJCUlGWF9XUklURV9ISUdIXzE2QklUKG1hc2spIHwgQklUKDEzKSk7DQogDQog CXByaXYtPndyaXRlX3JlZyhwcml2LCAmcHJpdi0+cmVncy0+aWZyZWdzW2lmYWNlXS5hcmIxLA0K IAkJCUlGWF9XUklURV9MT1dfMTZCSVQoaWQpKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS90ZzMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL3Rn My5jDQppbmRleCAwMWJjMTAyLi5jODZmYTUwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvYnJvYWRjb20vdGczLmMNCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29t L3RnMy5jDQpAQCAtMTEzNSwxNCArMTEzNSwyNiBAQCBzdGF0aWMgaW50IHRnM19waHlfYXV4Y3Rs X3dyaXRlKHN0cnVjdCB0ZzMgKnRwLCBpbnQgcmVnLCB1MzIgc2V0KQ0KIAlyZXR1cm4gdGczX3dy aXRlcGh5KHRwLCBNSUlfVEczX0FVWF9DVFJMLCBzZXQgfCByZWcpOw0KIH0NCiANCi0jZGVmaW5l IFRHM19QSFlfQVVYQ1RMX1NNRFNQX0VOQUJMRSh0cCkgXA0KLQl0ZzNfcGh5X2F1eGN0bF93cml0 ZSgodHApLCBNSUlfVEczX0FVWENUTF9TSERXU0VMX0FVWENUTCwgXA0KLQkJCSAgICAgTUlJX1RH M19BVVhDVExfQUNUTF9TTURTUF9FTkEgfCBcDQotCQkJICAgICBNSUlfVEczX0FVWENUTF9BQ1RM X1RYXzZEQikNCitzdGF0aWMgaW50IHRnM19waHlfdG9nZ2xlX2F1eGN0bF9zbWRzcChzdHJ1Y3Qg dGczICp0cCwgYm9vbCBlbmFibGUpDQorew0KKwl1MzIgdmFsOw0KKwlpbnQgZXJyOw0KIA0KLSNk ZWZpbmUgVEczX1BIWV9BVVhDVExfU01EU1BfRElTQUJMRSh0cCkgXA0KLQl0ZzNfcGh5X2F1eGN0 bF93cml0ZSgodHApLCBNSUlfVEczX0FVWENUTF9TSERXU0VMX0FVWENUTCwgXA0KLQkJCSAgICAg TUlJX1RHM19BVVhDVExfQUNUTF9UWF82REIpOw0KKwllcnIgPSB0ZzNfcGh5X2F1eGN0bF9yZWFk KHRwLCBNSUlfVEczX0FVWENUTF9TSERXU0VMX0FVWENUTCwgJnZhbCk7DQorDQorCWlmIChlcnIp DQorCQlyZXR1cm4gZXJyOw0KKwlpZiAoZW5hYmxlKQ0KKw0KKwkJdmFsIHw9IE1JSV9URzNfQVVY Q1RMX0FDVExfU01EU1BfRU5BOw0KKwllbHNlDQorCQl2YWwgJj0gfk1JSV9URzNfQVVYQ1RMX0FD VExfU01EU1BfRU5BOw0KKw0KKwllcnIgPSB0ZzNfcGh5X2F1eGN0bF93cml0ZSgodHApLCBNSUlf VEczX0FVWENUTF9TSERXU0VMX0FVWENUTCwNCisJCQkJICAgdmFsIHwgTUlJX1RHM19BVVhDVExf QUNUTF9UWF82REIpOw0KKw0KKwlyZXR1cm4gZXJyOw0KK30NCiANCiBzdGF0aWMgaW50IHRnM19i bWNyX3Jlc2V0KHN0cnVjdCB0ZzMgKnRwKQ0KIHsNCkBAIC0yMDg3LDcgKzIwOTksNyBAQCBzdGF0 aWMgdm9pZCB0ZzNfcGh5X2FwcGx5X290cChzdHJ1Y3QgdGczICp0cCkNCiANCiAJb3RwID0gdHAt PnBoeV9vdHA7DQogDQotCWlmIChURzNfUEhZX0FVWENUTF9TTURTUF9FTkFCTEUodHApKQ0KKwlp ZiAodGczX3BoeV90b2dnbGVfYXV4Y3RsX3NtZHNwKHRwLCB0cnVlKSkNCiAJCXJldHVybjsNCiAN CiAJcGh5ID0gKChvdHAgJiBURzNfT1RQX0FHQ1RHVF9NQVNLKSA+PiBURzNfT1RQX0FHQ1RHVF9T SElGVCk7DQpAQCAtMjExMiw3ICsyMTI0LDcgQEAgc3RhdGljIHZvaWQgdGczX3BoeV9hcHBseV9v dHAoc3RydWN0IHRnMyAqdHApDQogCSAgICAgICgob3RwICYgVEczX09UUF9SQ09GRl9NQVNLKSA+ PiBURzNfT1RQX1JDT0ZGX1NISUZUKTsNCiAJdGczX3BoeWRzcF93cml0ZSh0cCwgTUlJX1RHM19E U1BfRVhQOTcsIHBoeSk7DQogDQotCVRHM19QSFlfQVVYQ1RMX1NNRFNQX0RJU0FCTEUodHApOw0K Kwl0ZzNfcGh5X3RvZ2dsZV9hdXhjdGxfc21kc3AodHAsIGZhbHNlKTsNCiB9DQogDQogc3RhdGlj IHZvaWQgdGczX3BoeV9lZWVfYWRqdXN0KHN0cnVjdCB0ZzMgKnRwLCB1MzIgY3VycmVudF9saW5r X3VwKQ0KQEAgLTIxNDgsOSArMjE2MCw5IEBAIHN0YXRpYyB2b2lkIHRnM19waHlfZWVlX2FkanVz dChzdHJ1Y3QgdGczICp0cCwgdTMyIGN1cnJlbnRfbGlua191cCkNCiANCiAJaWYgKCF0cC0+c2V0 bHBpY250KSB7DQogCQlpZiAoY3VycmVudF9saW5rX3VwID09IDEgJiYNCi0JCSAgICFURzNfUEhZ X0FVWENUTF9TTURTUF9FTkFCTEUodHApKSB7DQorCQkgICAhdGczX3BoeV90b2dnbGVfYXV4Y3Rs X3NtZHNwKHRwLCB0cnVlKSkgew0KIAkJCXRnM19waHlkc3Bfd3JpdGUodHAsIE1JSV9URzNfRFNQ X1RBUDI2LCAweDAwMDApOw0KLQkJCVRHM19QSFlfQVVYQ1RMX1NNRFNQX0RJU0FCTEUodHApOw0K KwkJCXRnM19waHlfdG9nZ2xlX2F1eGN0bF9zbWRzcCh0cCwgZmFsc2UpOw0KIAkJfQ0KIA0KIAkJ dmFsID0gdHIzMihURzNfQ1BNVV9FRUVfTU9ERSk7DQpAQCAtMjE2NiwxMSArMjE3OCwxMSBAQCBz dGF0aWMgdm9pZCB0ZzNfcGh5X2VlZV9lbmFibGUoc3RydWN0IHRnMyAqdHApDQogCSAgICAoR0VU X0FTSUNfUkVWKHRwLT5wY2lfY2hpcF9yZXZfaWQpID09IEFTSUNfUkVWXzU3MTcgfHwNCiAJICAg ICBHRVRfQVNJQ19SRVYodHAtPnBjaV9jaGlwX3Jldl9pZCkgPT0gQVNJQ19SRVZfNTcxOSB8fA0K IAkgICAgIEdFVF9BU0lDX1JFVih0cC0+cGNpX2NoaXBfcmV2X2lkKSA9PSBBU0lDX1JFVl81Nzc2 NSkgJiYNCi0JICAgICFURzNfUEhZX0FVWENUTF9TTURTUF9FTkFCTEUodHApKSB7DQorCSAgICAh dGczX3BoeV90b2dnbGVfYXV4Y3RsX3NtZHNwKHRwLCB0cnVlKSkgew0KIAkJdmFsID0gTUlJX1RH M19EU1BfVEFQMjZfQUxOT0tPIHwNCiAJCSAgICAgIE1JSV9URzNfRFNQX1RBUDI2X1JNUlhTVE87 DQogCQl0ZzNfcGh5ZHNwX3dyaXRlKHRwLCBNSUlfVEczX0RTUF9UQVAyNiwgdmFsKTsNCi0JCVRH M19QSFlfQVVYQ1RMX1NNRFNQX0RJU0FCTEUodHApOw0KKwkJdGczX3BoeV90b2dnbGVfYXV4Y3Rs X3NtZHNwKHRwLCBmYWxzZSk7DQogCX0NCiANCiAJdmFsID0gdHIzMihURzNfQ1BNVV9FRUVfTU9E RSk7DQpAQCAtMjMxNCw3ICsyMzI2LDcgQEAgc3RhdGljIGludCB0ZzNfcGh5X3Jlc2V0XzU3MDNf NF81KHN0cnVjdCB0ZzMgKnRwKQ0KIAkJdGczX3dyaXRlcGh5KHRwLCBNSUlfQ1RSTDEwMDAsDQog CQkJICAgICBDVEwxMDAwX0FTX01BU1RFUiB8IENUTDEwMDBfRU5BQkxFX01BU1RFUik7DQogDQot CQllcnIgPSBURzNfUEhZX0FVWENUTF9TTURTUF9FTkFCTEUodHApOw0KKwkJZXJyID0gdGczX3Bo eV90b2dnbGVfYXV4Y3RsX3NtZHNwKHRwLCB0cnVlKTsNCiAJCWlmIChlcnIpDQogCQkJcmV0dXJu IGVycjsNCiANCkBAIC0yMzM1LDcgKzIzNDcsNyBAQCBzdGF0aWMgaW50IHRnM19waHlfcmVzZXRf NTcwM180XzUoc3RydWN0IHRnMyAqdHApDQogCXRnM193cml0ZXBoeSh0cCwgTUlJX1RHM19EU1Bf QUREUkVTUywgMHg4MjAwKTsNCiAJdGczX3dyaXRlcGh5KHRwLCBNSUlfVEczX0RTUF9DT05UUk9M LCAweDAwMDApOw0KIA0KLQlURzNfUEhZX0FVWENUTF9TTURTUF9ESVNBQkxFKHRwKTsNCisJdGcz X3BoeV90b2dnbGVfYXV4Y3RsX3NtZHNwKHRwLCBmYWxzZSk7DQogDQogCXRnM193cml0ZXBoeSh0 cCwgTUlJX0NUUkwxMDAwLCBwaHk5X29yaWcpOw0KIA0KQEAgLTI0MjQsMTAgKzI0MzYsMTAgQEAg c3RhdGljIGludCB0ZzNfcGh5X3Jlc2V0KHN0cnVjdCB0ZzMgKnRwKQ0KIA0KIG91dDoNCiAJaWYg KCh0cC0+cGh5X2ZsYWdzICYgVEczX1BIWUZMR19BRENfQlVHKSAmJg0KLQkgICAgIVRHM19QSFlf QVVYQ1RMX1NNRFNQX0VOQUJMRSh0cCkpIHsNCisJICAgICF0ZzNfcGh5X3RvZ2dsZV9hdXhjdGxf c21kc3AodHAsIHRydWUpKSB7DQogCQl0ZzNfcGh5ZHNwX3dyaXRlKHRwLCAweDIwMWYsIDB4MmFh YSk7DQogCQl0ZzNfcGh5ZHNwX3dyaXRlKHRwLCAweDAwMGEsIDB4MDMyMyk7DQotCQlURzNfUEhZ X0FVWENUTF9TTURTUF9ESVNBQkxFKHRwKTsNCisJCXRnM19waHlfdG9nZ2xlX2F1eGN0bF9zbWRz cCh0cCwgZmFsc2UpOw0KIAl9DQogDQogCWlmICh0cC0+cGh5X2ZsYWdzICYgVEczX1BIWUZMR181 NzA0X0EwX0JVRykgew0KQEAgLTI0MzYsMTQgKzI0NDgsMTQgQEAgb3V0Og0KIAl9DQogDQogCWlm ICh0cC0+cGh5X2ZsYWdzICYgVEczX1BIWUZMR19CRVJfQlVHKSB7DQotCQlpZiAoIVRHM19QSFlf QVVYQ1RMX1NNRFNQX0VOQUJMRSh0cCkpIHsNCisJCWlmICghdGczX3BoeV90b2dnbGVfYXV4Y3Rs X3NtZHNwKHRwLCB0cnVlKSkgew0KIAkJCXRnM19waHlkc3Bfd3JpdGUodHAsIDB4MDAwYSwgMHgz MTBiKTsNCiAJCQl0ZzNfcGh5ZHNwX3dyaXRlKHRwLCAweDIwMWYsIDB4OTUwNik7DQogCQkJdGcz X3BoeWRzcF93cml0ZSh0cCwgMHg0MDFmLCAweDE0ZTIpOw0KLQkJCVRHM19QSFlfQVVYQ1RMX1NN RFNQX0RJU0FCTEUodHApOw0KKwkJCXRnM19waHlfdG9nZ2xlX2F1eGN0bF9zbWRzcCh0cCwgZmFs c2UpOw0KIAkJfQ0KIAl9IGVsc2UgaWYgKHRwLT5waHlfZmxhZ3MgJiBURzNfUEhZRkxHX0pJVFRF Ul9CVUcpIHsNCi0JCWlmICghVEczX1BIWV9BVVhDVExfU01EU1BfRU5BQkxFKHRwKSkgew0KKwkJ aWYgKCF0ZzNfcGh5X3RvZ2dsZV9hdXhjdGxfc21kc3AodHAsIHRydWUpKSB7DQogCQkJdGczX3dy aXRlcGh5KHRwLCBNSUlfVEczX0RTUF9BRERSRVNTLCAweDAwMGEpOw0KIAkJCWlmICh0cC0+cGh5 X2ZsYWdzICYgVEczX1BIWUZMR19BREpVU1RfVFJJTSkgew0KIAkJCQl0ZzNfd3JpdGVwaHkodHAs IE1JSV9URzNfRFNQX1JXX1BPUlQsIDB4MTEwYik7DQpAQCAtMjQ1Miw3ICsyNDY0LDcgQEAgb3V0 Og0KIAkJCX0gZWxzZQ0KIAkJCQl0ZzNfd3JpdGVwaHkodHAsIE1JSV9URzNfRFNQX1JXX1BPUlQs IDB4MDEwYik7DQogDQotCQkJVEczX1BIWV9BVVhDVExfU01EU1BfRElTQUJMRSh0cCk7DQorCQkJ dGczX3BoeV90b2dnbGVfYXV4Y3RsX3NtZHNwKHRwLCBmYWxzZSk7DQogCQl9DQogCX0NCiANCkBA IC0zNjM5LDcgKzM2NTEsNyBAQCBzdGF0aWMgaW50IHRnM19waHlfYXV0b25lZ19jZmcoc3RydWN0 IHRnMyAqdHAsIHUzMiBhZHZlcnRpc2UsIHUzMiBmbG93Y3RybCkNCiAJdHczMihURzNfQ1BNVV9F RUVfTU9ERSwNCiAJICAgICB0cjMyKFRHM19DUE1VX0VFRV9NT0RFKSAmIH5URzNfQ1BNVV9FRUVN RF9MUElfRU5BQkxFKTsNCiANCi0JZXJyID0gVEczX1BIWV9BVVhDVExfU01EU1BfRU5BQkxFKHRw KTsNCisJZXJyID0gdGczX3BoeV90b2dnbGVfYXV4Y3RsX3NtZHNwKHRwLCB0cnVlKTsNCiAJaWYg KCFlcnIpIHsNCiAJCXUzMiBlcnIyOw0KIA0KQEAgLTM2NzEsNyArMzY4Myw3IEBAIHN0YXRpYyBp bnQgdGczX3BoeV9hdXRvbmVnX2NmZyhzdHJ1Y3QgdGczICp0cCwgdTMyIGFkdmVydGlzZSwgdTMy IGZsb3djdHJsKQ0KIAkJCQkJCSBNSUlfVEczX0RTUF9DSDM0VFAyX0hJQlcwMSk7DQogCQl9DQog DQotCQllcnIyID0gVEczX1BIWV9BVVhDVExfU01EU1BfRElTQUJMRSh0cCk7DQorCQllcnIyID0g dGczX3BoeV90b2dnbGVfYXV4Y3RsX3NtZHNwKHRwLCBmYWxzZSk7DQogCQlpZiAoIWVycikNCiAJ CQllcnIgPSBlcnIyOw0KIAl9DQpAQCAtNjM1Myw2ICs2MzY1LDkgQEAgc3RhdGljIHZvaWQgdGcz X3BvbGxfY29udHJvbGxlcihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQ0KIAlpbnQgaTsNCiAJc3Ry dWN0IHRnMyAqdHAgPSBuZXRkZXZfcHJpdihkZXYpOw0KIA0KKwlpZiAodGczX2lycV9zeW5jKHRw KSkNCisJCXJldHVybjsNCisNCiAJZm9yIChpID0gMDsgaSA8IHRwLT5pcnFfY250OyBpKyspDQog CQl0ZzNfaW50ZXJydXB0KHRwLT5uYXBpW2ldLmlycV92ZWMsICZ0cC0+bmFwaVtpXSk7DQogfQ0K QEAgLTE1Mzg4LDYgKzE1NDAzLDcgQEAgc3RhdGljIGludCBfX2RldmluaXQgdGczX2luaXRfb25l KHN0cnVjdCBwY2lfZGV2ICpwZGV2LA0KIAl0cC0+cG1fY2FwID0gcG1fY2FwOw0KIAl0cC0+cnhf bW9kZSA9IFRHM19ERUZfUlhfTU9ERTsNCiAJdHAtPnR4X21vZGUgPSBURzNfREVGX1RYX01PREU7 DQorCXRwLT5pcnFfc3luYyA9IDE7DQogDQogCWlmICh0ZzNfZGVidWcgPiAwKQ0KIAkJdHAtPm1z Z19lbmFibGUgPSB0ZzNfZGVidWc7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv cWxvZ2ljL25ldHhlbi9uZXR4ZW5fbmljX2luaXQuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fs b2dpYy9uZXR4ZW4vbmV0eGVuX25pY19pbml0LmMNCmluZGV4IGE4MjU5Y2MuLjU2NzQxNDUgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvbmV0eGVuL25ldHhlbl9uaWNf aW5pdC5jDQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvbmV0eGVuL25ldHhlbl9u aWNfaW5pdC5jDQpAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQgbmV0eGVuX3JlbGVhc2VfdHhfYnVm ZmVycyhzdHJ1Y3QgbmV0eGVuX2FkYXB0ZXIgKmFkYXB0ZXIpDQogCQkJCQkgYnVmZnJhZy0+bGVu Z3RoLCBQQ0lfRE1BX1RPREVWSUNFKTsNCiAJCQlidWZmcmFnLT5kbWEgPSAwVUxMOw0KIAkJfQ0K LQkJZm9yIChqID0gMDsgaiA8IGNtZF9idWYtPmZyYWdfY291bnQ7IGorKykgew0KKwkJZm9yIChq ID0gMTsgaiA8IGNtZF9idWYtPmZyYWdfY291bnQ7IGorKykgew0KIAkJCWJ1ZmZyYWcrKzsNCiAJ CQlpZiAoYnVmZnJhZy0+ZG1hKSB7DQogCQkJCXBjaV91bm1hcF9wYWdlKGFkYXB0ZXItPnBkZXYs IGJ1ZmZyYWctPmRtYSwNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMv bmV0eGVuL25ldHhlbl9uaWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcWxvZ2ljL25l dHhlbi9uZXR4ZW5fbmljX21haW4uYw0KaW5kZXggZGE1MjA0ZC4uNGEyMzhhNCAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9uZXR4ZW4vbmV0eGVuX25pY19tYWluLmMN CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3Fsb2dpYy9uZXR4ZW4vbmV0eGVuX25pY19tYWlu LmMNCkBAIC0xOTI0LDEwICsxOTI0LDEyIEBAIHVud2luZDoNCiAJd2hpbGUgKC0taSA+PSAwKSB7 DQogCQluZiA9ICZwYnVmLT5mcmFnX2FycmF5W2krMV07DQogCQlwY2lfdW5tYXBfcGFnZShwZGV2 LCBuZi0+ZG1hLCBuZi0+bGVuZ3RoLCBQQ0lfRE1BX1RPREVWSUNFKTsNCisJCW5mLT5kbWEgPSAw VUxMOw0KIAl9DQogDQogCW5mID0gJnBidWYtPmZyYWdfYXJyYXlbMF07DQogCXBjaV91bm1hcF9z aW5nbGUocGRldiwgbmYtPmRtYSwgc2tiX2hlYWRsZW4oc2tiKSwgUENJX0RNQV9UT0RFVklDRSk7 DQorCW5mLT5kbWEgPSAwVUxMOw0KIA0KIG91dF9lcnI6DQogCXJldHVybiAtRU5PTUVNOw0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYw0KaW5kZXggYjhkYjRjZC4uYTYxNTNmMSAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjkuYw0KKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OS5jDQpAQCAtNTgyOSwxMyArNTgyOSw2IEBA IHN0YXRpYyBpbnQgcnRsODE2OV9yeF9pbnRlcnJ1cHQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwN CiAJCQlkZXYtPnN0YXRzLnJ4X2J5dGVzICs9IHBrdF9zaXplOw0KIAkJCWRldi0+c3RhdHMucnhf cGFja2V0cysrOw0KIAkJfQ0KLQ0KLQkJLyogV29yayBhcm91bmQgZm9yIEFNRCBwbGF0ZWZvcm0u ICovDQotCQlpZiAoKGRlc2MtPm9wdHMyICYgY3B1X3RvX2xlMzIoMHhmZmZlMDAwKSkgJiYNCi0J CSAgICAodHAtPm1hY192ZXJzaW9uID09IFJUTF9HSUdBX01BQ19WRVJfMDUpKSB7DQotCQkJZGVz Yy0+b3B0czIgPSAwOw0KLQkJCWN1cl9yeCsrOw0KLQkJfQ0KIAl9DQogDQogCWNvdW50ID0gY3Vy X3J4IC0gdHAtPmN1cl9yeDsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9sb29wYmFjay5jIGIv ZHJpdmVycy9uZXQvbG9vcGJhY2suYw0KaW5kZXggNGNlOWU1Zi4uZDA4OTNlNCAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvbmV0L2xvb3BiYWNrLmMNCisrKyBiL2RyaXZlcnMvbmV0L2xvb3BiYWNrLmMN CkBAIC03OCw2ICs3OCwxMSBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgbG9vcGJhY2tfeG1pdChzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLA0KIA0KIAlza2Jfb3JwaGFuKHNrYik7DQogDQorCS8qIEJlZm9yZSBx dWV1ZWluZyB0aGlzIHBhY2tldCB0byBuZXRpZl9yeCgpLA0KKwkgKiBtYWtlIHN1cmUgZHN0IGlz IHJlZmNvdW50ZWQuDQorCSAqLw0KKwlza2JfZHN0X2ZvcmNlKHNrYik7DQorDQogCXNrYi0+cHJv dG9jb2wgPSBldGhfdHlwZV90cmFucyhza2IsIGRldik7DQogDQogCS8qIGl0J3MgT0sgdG8gdXNl IHBlcl9jcHVfcHRyKCkgYmVjYXVzZSBCSHMgYXJlIG9mZiAqLw0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3dpcmVsZXNzL213aWZpZXgvc2Nhbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbXdp ZmlleC9zY2FuLmMNCmluZGV4IDhkM2FiMzcuLjY2MThkZDYgMTAwNjQ0DQotLS0gYS9kcml2ZXJz L25ldC93aXJlbGVzcy9td2lmaWV4L3NjYW4uYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mv bXdpZmlleC9zY2FuLmMNCkBAIC0xNTk0LDcgKzE1OTQsNyBAQCBpbnQgbXdpZmlleF9yZXRfODAy XzExX3NjYW4oc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdiwNCiAJCWRldl9lcnIoYWRhcHRl ci0+ZGV2LCAiU0NBTl9SRVNQOiB0b28gbWFueSBBUCByZXR1cm5lZCAoJWQpXG4iLA0KIAkJICAg ICAgIHNjYW5fcnNwLT5udW1iZXJfb2Zfc2V0cyk7DQogCQlyZXQgPSAtMTsNCi0JCWdvdG8gZG9u ZTsNCisJCWdvdG8gY2hlY2tfbmV4dF9zY2FuOw0KIAl9DQogDQogCWJ5dGVzX2xlZnQgPSBsZTE2 X3RvX2NwdShzY2FuX3JzcC0+YnNzX2Rlc2NyaXB0X3NpemUpOw0KQEAgLTE2NjMsNyArMTY2Myw4 IEBAIGludCBtd2lmaWV4X3JldF84MDJfMTFfc2NhbihzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpw cml2LA0KIAkJaWYgKCFiZWFjb25fc2l6ZSB8fCBiZWFjb25fc2l6ZSA+IGJ5dGVzX2xlZnQpIHsN CiAJCQlic3NfaW5mbyArPSBieXRlc19sZWZ0Ow0KIAkJCWJ5dGVzX2xlZnQgPSAwOw0KLQkJCXJl dHVybiAtMTsNCisJCQlyZXQgPSAtMTsNCisJCQlnb3RvIGNoZWNrX25leHRfc2NhbjsNCiAJCX0N CiANCiAJCS8qIEluaXRpYWxpemUgdGhlIGN1cnJlbnQgd29ya2luZyBiZWFjb24gcG9pbnRlciBm b3IgdGhpcyBCU1MNCkBAIC0xNzE2LDcgKzE3MTcsNyBAQCBpbnQgbXdpZmlleF9yZXRfODAyXzEx X3NjYW4oc3RydWN0IG13aWZpZXhfcHJpdmF0ZSAqcHJpdiwNCiAJCQkJZGV2X2Vycihwcml2LT5h ZGFwdGVyLT5kZXYsICIlczogaW4gcHJvY2Vzc2luZyINCiAJCQkJCSIgSUUsIGJ5dGVzIGxlZnQg PCBJRSBsZW5ndGhcbiIsDQogCQkJCQlfX2Z1bmNfXyk7DQotCQkJCWdvdG8gZG9uZTsNCisJCQkJ Z290byBjaGVja19uZXh0X3NjYW47DQogCQkJfQ0KIAkJCWlmIChlbGVtZW50X2lkID09IFdMQU5f RUlEX0RTX1BBUkFNUykgew0KIAkJCQljaGFubmVsID0gKih1OCAqKSAoY3VycmVudF9wdHIgKw0K QEAgLTE3ODIsNiArMTc4Myw3IEBAIGludCBtd2lmaWV4X3JldF84MDJfMTFfc2NhbihzdHJ1Y3Qg bXdpZmlleF9wcml2YXRlICpwcml2LA0KIAkJfQ0KIAl9DQogDQorY2hlY2tfbmV4dF9zY2FuOg0K IAlzcGluX2xvY2tfaXJxc2F2ZSgmYWRhcHRlci0+c2Nhbl9wZW5kaW5nX3FfbG9jaywgZmxhZ3Mp Ow0KIAlpZiAobGlzdF9lbXB0eSgmYWRhcHRlci0+c2Nhbl9wZW5kaW5nX3EpKSB7DQogCQlzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZhZGFwdGVyLT5zY2FuX3BlbmRpbmdfcV9sb2NrLCBmbGFncyk7 DQpAQCAtMTgxMiw3ICsxODE0LDYgQEAgaW50IG13aWZpZXhfcmV0XzgwMl8xMV9zY2FuKHN0cnVj dCBtd2lmaWV4X3ByaXZhdGUgKnByaXYsDQogCQltd2lmaWV4X2luc2VydF9jbWRfdG9fcGVuZGlu Z19xKGFkYXB0ZXIsIGNtZF9ub2RlLCB0cnVlKTsNCiAJfQ0KIA0KLWRvbmU6DQogCXJldHVybiBy ZXQ7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI1 MDB1c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI1MDB1c2IuYw0KaW5kZXgg MjJlZDZkZi4uMmJlOTg4MCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0Mngw MC9ydDI1MDB1c2IuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MjUwMHVz Yi5jDQpAQCAtMTkyMSw3ICsxOTIxLDcgQEAgc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIHJ0 MjUwMHVzYl9kZXZpY2VfdGFibGVbXSA9IHsNCiAJeyBVU0JfREVWSUNFKDB4MGIwNSwgMHgxNzA2 KSB9LA0KIAl7IFVTQl9ERVZJQ0UoMHgwYjA1LCAweDE3MDcpIH0sDQogCS8qIEJlbGtpbiAqLw0K LQl7IFVTQl9ERVZJQ0UoMHgwNTBkLCAweDcwNTApIH0sDQorCXsgVVNCX0RFVklDRSgweDA1MGQs IDB4NzA1MCkgfSwJLyogRkNDIElEOiBLN1NGNUQ3MDUwQSB2ZXIuIDIueCAqLw0KIAl7IFVTQl9E RVZJQ0UoMHgwNTBkLCAweDcwNTEpIH0sDQogCS8qIENpc2NvIFN5c3RlbXMgKi8NCiAJeyBVU0Jf REVWSUNFKDB4MTNiMSwgMHgwMDBkKSB9LA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL3J0MngwMC9ydDI4MDB1c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI4 MDB1c2IuYw0KaW5kZXggYjY2YTYxYi4uM2Q0ZWExZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL3J0MngwMC9ydDI4MDB1c2IuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mv cnQyeDAwL3J0MjgwMHVzYi5jDQpAQCAtOTU5LDYgKzk1OSw3IEBAIHN0YXRpYyBzdHJ1Y3QgdXNi X2RldmljZV9pZCBydDI4MDB1c2JfZGV2aWNlX3RhYmxlW10gPSB7DQogCXsgVVNCX0RFVklDRSgw eDA3ZDEsIDB4M2MxNSkgfSwNCiAJeyBVU0JfREVWSUNFKDB4MDdkMSwgMHgzYzE2KSB9LA0KIAl7 IFVTQl9ERVZJQ0UoMHgyMDAxLCAweDNjMWIpIH0sDQorCXsgVVNCX0RFVklDRSgweDIwMDEsIDB4 M2MxZSkgfSwNCiAJLyogRHJheXRlayAqLw0KIAl7IFVTQl9ERVZJQ0UoMHgwN2ZhLCAweDc3MTIp IH0sDQogCS8qIERWSUNPICovDQpAQCAtMTA5MCw2ICsxMDkxLDcgQEAgc3RhdGljIHN0cnVjdCB1 c2JfZGV2aWNlX2lkIHJ0MjgwMHVzYl9kZXZpY2VfdGFibGVbXSA9IHsNCiAJeyBVU0JfREVWSUNF KDB4MTc3ZiwgMHgwMTUzKSB9LA0KIAl7IFVTQl9ERVZJQ0UoMHgxNzdmLCAweDAzMDIpIH0sDQog CXsgVVNCX0RFVklDRSgweDE3N2YsIDB4MDMxMykgfSwNCisJeyBVU0JfREVWSUNFKDB4MTc3Ziwg MHgwMzIzKSB9LA0KIAkvKiBVLU1lZGlhICovDQogCXsgVVNCX0RFVklDRSgweDE1N2UsIDB4MzAw ZSkgfSwNCiAJeyBVU0JfREVWSUNFKDB4MTU3ZSwgMHgzMDEzKSB9LA0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDczdXNiLmMgYi9kcml2ZXJzL25ldC93aXJlbGVz cy9ydDJ4MDAvcnQ3M3VzYi5jDQppbmRleCAyYWQ0NjhkLi45ZTcyNGViIDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0NzN1c2IuYw0KKysrIGIvZHJpdmVycy9uZXQv d2lyZWxlc3MvcnQyeDAwL3J0NzN1c2IuYw0KQEAgLTI0MjEsNiArMjQyMSw3IEBAIHN0YXRpYyBz dHJ1Y3QgdXNiX2RldmljZV9pZCBydDczdXNiX2RldmljZV90YWJsZVtdID0gew0KIAl7IFVTQl9E RVZJQ0UoMHgwYjA1LCAweDE3MjMpIH0sDQogCXsgVVNCX0RFVklDRSgweDBiMDUsIDB4MTcyNCkg fSwNCiAJLyogQmVsa2luICovDQorCXsgVVNCX0RFVklDRSgweDA1MGQsIDB4NzA1MCkgfSwJLyog RkNDIElEOiBLN1NGNUQ3MDUwQiB2ZXIuIDMueCAqLw0KIAl7IFVTQl9ERVZJQ0UoMHgwNTBkLCAw eDcwNWEpIH0sDQogCXsgVVNCX0RFVklDRSgweDA1MGQsIDB4OTA1YikgfSwNCiAJeyBVU0JfREVW SUNFKDB4MDUwZCwgMHg5MDVjKSB9LA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNz L3J0bHdpZmkvdXNiLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3aWZpL3VzYi5jDQppbmRl eCBhNDllODQ4Li4zMGRkMGE5IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRs d2lmaS91c2IuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS91c2IuYw0KQEAg LTUwMyw4ICs1MDMsOCBAQCBzdGF0aWMgdm9pZCBfcnRsX3J4X3ByZV9wcm9jZXNzKHN0cnVjdCBp ZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KIAlXQVJOX09OKHNrYl9xdWV1 ZV9lbXB0eSgmcnhfcXVldWUpKTsNCiAJd2hpbGUgKCFza2JfcXVldWVfZW1wdHkoJnJ4X3F1ZXVl KSkgew0KIAkJX3NrYiA9IHNrYl9kZXF1ZXVlKCZyeF9xdWV1ZSk7DQotCQlfcnRsX3VzYl9yeF9w cm9jZXNzX2FnZyhodywgc2tiKTsNCi0JCWllZWU4MDIxMV9yeF9pcnFzYWZlKGh3LCBza2IpOw0K KwkJX3J0bF91c2JfcnhfcHJvY2Vzc19hZ2coaHcsIF9za2IpOw0KKwkJaWVlZTgwMjExX3J4X2ly cXNhZmUoaHcsIF9za2IpOw0KIAl9DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3hl bi1uZXRiYWNrL2NvbW1vbi5oIGIvZHJpdmVycy9uZXQveGVuLW5ldGJhY2svY29tbW9uLmgNCmlu ZGV4IDk0Yjc5YzMuLjlkN2YxNzIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC94ZW4tbmV0YmFj ay9jb21tb24uaA0KKysrIGIvZHJpdmVycy9uZXQveGVuLW5ldGJhY2svY29tbW9uLmgNCkBAIC0x NTEsNiArMTUxLDkgQEAgdm9pZCB4ZW5fbmV0YmtfcXVldWVfdHhfc2tiKHN0cnVjdCB4ZW52aWYg KnZpZiwgc3RydWN0IHNrX2J1ZmYgKnNrYik7DQogLyogTm90aWZ5IHhlbnZpZiB0aGF0IHJpbmcg bm93IGhhcyBzcGFjZSB0byBzZW5kIGFuIHNrYiB0byB0aGUgZnJvbnRlbmQgKi8NCiB2b2lkIHhl bnZpZl9ub3RpZnlfdHhfY29tcGxldGlvbihzdHJ1Y3QgeGVudmlmICp2aWYpOw0KIA0KKy8qIFBy ZXZlbnQgdGhlIGRldmljZSBmcm9tIGdlbmVyYXRpbmcgYW55IGZ1cnRoZXIgdHJhZmZpYy4gKi8N Cit2b2lkIHhlbnZpZl9jYXJyaWVyX29mZihzdHJ1Y3QgeGVudmlmICp2aWYpOw0KKw0KIC8qIFJl dHVybnMgbnVtYmVyIG9mIHJpbmcgc2xvdHMgcmVxdWlyZWQgdG8gc2VuZCBhbiBza2IgdG8gdGhl IGZyb250ZW5kICovDQogdW5zaWduZWQgaW50IHhlbl9uZXRia19jb3VudF9za2Jfc2xvdHMoc3Ry dWN0IHhlbnZpZiAqdmlmLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsNCiANCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC94ZW4tbmV0YmFjay9pbnRlcmZhY2UuYyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRi YWNrL2ludGVyZmFjZS5jDQppbmRleCAxODI1NjI5Li41OTI1ZTBiIDEwMDY0NA0KLS0tIGEvZHJp dmVycy9uZXQveGVuLW5ldGJhY2svaW50ZXJmYWNlLmMNCisrKyBiL2RyaXZlcnMvbmV0L3hlbi1u ZXRiYWNrL2ludGVyZmFjZS5jDQpAQCAtMzQyLDE3ICszNDIsMjIgQEAgZXJyOg0KIAlyZXR1cm4g ZXJyOw0KIH0NCiANCi12b2lkIHhlbnZpZl9kaXNjb25uZWN0KHN0cnVjdCB4ZW52aWYgKnZpZikN Cit2b2lkIHhlbnZpZl9jYXJyaWVyX29mZihzdHJ1Y3QgeGVudmlmICp2aWYpDQogew0KIAlzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2ID0gdmlmLT5kZXY7DQotCWlmIChuZXRpZl9jYXJyaWVyX29rKGRl dikpIHsNCi0JCXJ0bmxfbG9jaygpOw0KLQkJbmV0aWZfY2Fycmllcl9vZmYoZGV2KTsgLyogZGlz Y2FyZCBxdWV1ZWQgcGFja2V0cyAqLw0KLQkJaWYgKG5ldGlmX3J1bm5pbmcoZGV2KSkNCi0JCQl4 ZW52aWZfZG93bih2aWYpOw0KLQkJcnRubF91bmxvY2soKTsNCi0JCXhlbnZpZl9wdXQodmlmKTsN Ci0JfQ0KKw0KKwlydG5sX2xvY2soKTsNCisJbmV0aWZfY2Fycmllcl9vZmYoZGV2KTsgLyogZGlz Y2FyZCBxdWV1ZWQgcGFja2V0cyAqLw0KKwlpZiAobmV0aWZfcnVubmluZyhkZXYpKQ0KKwkJeGVu dmlmX2Rvd24odmlmKTsNCisJcnRubF91bmxvY2soKTsNCisJeGVudmlmX3B1dCh2aWYpOw0KK30N CisNCit2b2lkIHhlbnZpZl9kaXNjb25uZWN0KHN0cnVjdCB4ZW52aWYgKnZpZikNCit7DQorCWlm IChuZXRpZl9jYXJyaWVyX29rKHZpZi0+ZGV2KSkNCisJCXhlbnZpZl9jYXJyaWVyX29mZih2aWYp Ow0KIA0KIAlhdG9taWNfZGVjKCZ2aWYtPnJlZmNudCk7DQogCXdhaXRfZXZlbnQodmlmLT53YWl0 aW5nX3RvX2ZyZWUsIGF0b21pY19yZWFkKCZ2aWYtPnJlZmNudCkgPT0gMCk7DQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQveGVuLW5ldGJhY2svbmV0YmFjay5jIGIvZHJpdmVycy9uZXQveGVuLW5l dGJhY2svbmV0YmFjay5jDQppbmRleCAxNWUzMzJkLi5iODAyYmIzIDEwMDY0NA0KLS0tIGEvZHJp dmVycy9uZXQveGVuLW5ldGJhY2svbmV0YmFjay5jDQorKysgYi9kcml2ZXJzL25ldC94ZW4tbmV0 YmFjay9uZXRiYWNrLmMNCkBAIC0xNDYsNyArMTQ2LDggQEAgdm9pZCB4ZW5fbmV0YmtfcmVtb3Zl X3hlbnZpZihzdHJ1Y3QgeGVudmlmICp2aWYpDQogCWF0b21pY19kZWMoJm5ldGJrLT5uZXRmcm9u dF9jb3VudCk7DQogfQ0KIA0KLXN0YXRpYyB2b2lkIHhlbl9uZXRia19pZHhfcmVsZWFzZShzdHJ1 Y3QgeGVuX25ldGJrICpuZXRiaywgdTE2IHBlbmRpbmdfaWR4KTsNCitzdGF0aWMgdm9pZCB4ZW5f bmV0YmtfaWR4X3JlbGVhc2Uoc3RydWN0IHhlbl9uZXRiayAqbmV0YmssIHUxNiBwZW5kaW5nX2lk eCwNCisJCQkJICB1OCBzdGF0dXMpOw0KIHN0YXRpYyB2b2lkIG1ha2VfdHhfcmVzcG9uc2Uoc3Ry dWN0IHhlbnZpZiAqdmlmLA0KIAkJCSAgICAgc3RydWN0IHhlbl9uZXRpZl90eF9yZXF1ZXN0ICp0 eHAsDQogCQkJICAgICBzOCAgICAgICBzdCk7DQpAQCAtODUxLDcgKzg1Miw3IEBAIHN0YXRpYyB2 b2lkIG5ldGJrX3R4X2VycihzdHJ1Y3QgeGVudmlmICp2aWYsDQogDQogCWRvIHsNCiAJCW1ha2Vf dHhfcmVzcG9uc2UodmlmLCB0eHAsIFhFTl9ORVRJRl9SU1BfRVJST1IpOw0KLQkJaWYgKGNvbnMg Pj0gZW5kKQ0KKwkJaWYgKGNvbnMgPT0gZW5kKQ0KIAkJCWJyZWFrOw0KIAkJdHhwID0gUklOR19H RVRfUkVRVUVTVCgmdmlmLT50eCwgY29ucysrKTsNCiAJfSB3aGlsZSAoMSk7DQpAQCAtODYwLDYg Kzg2MSwxMyBAQCBzdGF0aWMgdm9pZCBuZXRia190eF9lcnIoc3RydWN0IHhlbnZpZiAqdmlmLA0K IAl4ZW52aWZfcHV0KHZpZik7DQogfQ0KIA0KK3N0YXRpYyB2b2lkIG5ldGJrX2ZhdGFsX3R4X2Vy cihzdHJ1Y3QgeGVudmlmICp2aWYpDQorew0KKwluZXRkZXZfZXJyKHZpZi0+ZGV2LCAiZmF0YWwg ZXJyb3I7IGRpc2FibGluZyBkZXZpY2VcbiIpOw0KKwl4ZW52aWZfY2Fycmllcl9vZmYodmlmKTsN CisJeGVudmlmX3B1dCh2aWYpOw0KK30NCisNCiBzdGF0aWMgaW50IG5ldGJrX2NvdW50X3JlcXVl c3RzKHN0cnVjdCB4ZW52aWYgKnZpZiwNCiAJCQkJc3RydWN0IHhlbl9uZXRpZl90eF9yZXF1ZXN0 ICpmaXJzdCwNCiAJCQkJc3RydWN0IHhlbl9uZXRpZl90eF9yZXF1ZXN0ICp0eHAsDQpAQCAtODcz LDE5ICs4ODEsMjIgQEAgc3RhdGljIGludCBuZXRia19jb3VudF9yZXF1ZXN0cyhzdHJ1Y3QgeGVu dmlmICp2aWYsDQogDQogCWRvIHsNCiAJCWlmIChmcmFncyA+PSB3b3JrX3RvX2RvKSB7DQotCQkJ bmV0ZGV2X2RiZyh2aWYtPmRldiwgIk5lZWQgbW9yZSBmcmFnc1xuIik7DQorCQkJbmV0ZGV2X2Vy cih2aWYtPmRldiwgIk5lZWQgbW9yZSBmcmFnc1xuIik7DQorCQkJbmV0YmtfZmF0YWxfdHhfZXJy KHZpZik7DQogCQkJcmV0dXJuIC1mcmFnczsNCiAJCX0NCiANCiAJCWlmICh1bmxpa2VseShmcmFn cyA+PSBNQVhfU0tCX0ZSQUdTKSkgew0KLQkJCW5ldGRldl9kYmcodmlmLT5kZXYsICJUb28gbWFu eSBmcmFnc1xuIik7DQorCQkJbmV0ZGV2X2Vycih2aWYtPmRldiwgIlRvbyBtYW55IGZyYWdzXG4i KTsNCisJCQluZXRia19mYXRhbF90eF9lcnIodmlmKTsNCiAJCQlyZXR1cm4gLWZyYWdzOw0KIAkJ fQ0KIA0KIAkJbWVtY3B5KHR4cCwgUklOR19HRVRfUkVRVUVTVCgmdmlmLT50eCwgY29ucyArIGZy YWdzKSwNCiAJCSAgICAgICBzaXplb2YoKnR4cCkpOw0KIAkJaWYgKHR4cC0+c2l6ZSA+IGZpcnN0 LT5zaXplKSB7DQotCQkJbmV0ZGV2X2RiZyh2aWYtPmRldiwgIkZyYWdzIGdhbG9yZVxuIik7DQor CQkJbmV0ZGV2X2Vycih2aWYtPmRldiwgIkZyYWcgaXMgYmlnZ2VyIHRoYW4gZnJhbWUuXG4iKTsN CisJCQluZXRia19mYXRhbF90eF9lcnIodmlmKTsNCiAJCQlyZXR1cm4gLWZyYWdzOw0KIAkJfQ0K IA0KQEAgLTg5Myw4ICs5MDQsOSBAQCBzdGF0aWMgaW50IG5ldGJrX2NvdW50X3JlcXVlc3RzKHN0 cnVjdCB4ZW52aWYgKnZpZiwNCiAJCWZyYWdzKys7DQogDQogCQlpZiAodW5saWtlbHkoKHR4cC0+ b2Zmc2V0ICsgdHhwLT5zaXplKSA+IFBBR0VfU0laRSkpIHsNCi0JCQluZXRkZXZfZGJnKHZpZi0+ ZGV2LCAidHhwLT5vZmZzZXQ6ICV4LCBzaXplOiAldVxuIiwNCisJCQluZXRkZXZfZXJyKHZpZi0+ ZGV2LCAidHhwLT5vZmZzZXQ6ICV4LCBzaXplOiAldVxuIiwNCiAJCQkJIHR4cC0+b2Zmc2V0LCB0 eHAtPnNpemUpOw0KKwkJCW5ldGJrX2ZhdGFsX3R4X2Vycih2aWYpOw0KIAkJCXJldHVybiAtZnJh Z3M7DQogCQl9DQogCX0gd2hpbGUgKCh0eHArKyktPmZsYWdzICYgWEVOX05FVFRYRl9tb3JlX2Rh dGEpOw0KQEAgLTkzOCw3ICs5NTAsNyBAQCBzdGF0aWMgc3RydWN0IGdudHRhYl9jb3B5ICp4ZW5f bmV0YmtfZ2V0X3JlcXVlc3RzKHN0cnVjdCB4ZW5fbmV0YmsgKm5ldGJrLA0KIAkJcGVuZGluZ19p ZHggPSBuZXRiay0+cGVuZGluZ19yaW5nW2luZGV4XTsNCiAJCXBhZ2UgPSB4ZW5fbmV0YmtfYWxs b2NfcGFnZShuZXRiaywgc2tiLCBwZW5kaW5nX2lkeCk7DQogCQlpZiAoIXBhZ2UpDQotCQkJcmV0 dXJuIE5VTEw7DQorCQkJZ290byBlcnI7DQogDQogCQluZXRiay0+bW1hcF9wYWdlc1twZW5kaW5n X2lkeF0gPSBwYWdlOw0KIA0KQEAgLTk2Miw2ICs5NzQsMTcgQEAgc3RhdGljIHN0cnVjdCBnbnR0 YWJfY29weSAqeGVuX25ldGJrX2dldF9yZXF1ZXN0cyhzdHJ1Y3QgeGVuX25ldGJrICpuZXRiaywN CiAJfQ0KIA0KIAlyZXR1cm4gZ29wOw0KK2VycjoNCisJLyogVW53aW5kLCBmcmVlaW5nIGFsbCBw YWdlcyBhbmQgc2VuZGluZyBlcnJvciByZXNwb25zZXMuICovDQorCXdoaWxlIChpLS0gPiBzdGFy dCkgew0KKwkJeGVuX25ldGJrX2lkeF9yZWxlYXNlKG5ldGJrLCBmcmFnX2dldF9wZW5kaW5nX2lk eCgmZnJhZ3NbaV0pLA0KKwkJCQkgICAgICBYRU5fTkVUSUZfUlNQX0VSUk9SKTsNCisJfQ0KKwkv KiBUaGUgaGVhZCB0b28sIGlmIG5lY2Vzc2FyeS4gKi8NCisJaWYgKHN0YXJ0KQ0KKwkJeGVuX25l dGJrX2lkeF9yZWxlYXNlKG5ldGJrLCBwZW5kaW5nX2lkeCwgWEVOX05FVElGX1JTUF9FUlJPUik7 DQorDQorCXJldHVybiBOVUxMOw0KIH0NCiANCiBzdGF0aWMgaW50IHhlbl9uZXRia190eF9jaGVj a19nb3Aoc3RydWN0IHhlbl9uZXRiayAqbmV0YmssDQpAQCAtOTcwLDMwICs5OTMsMjAgQEAgc3Rh dGljIGludCB4ZW5fbmV0YmtfdHhfY2hlY2tfZ29wKHN0cnVjdCB4ZW5fbmV0YmsgKm5ldGJrLA0K IHsNCiAJc3RydWN0IGdudHRhYl9jb3B5ICpnb3AgPSAqZ29wcDsNCiAJdTE2IHBlbmRpbmdfaWR4 ID0gKigodTE2ICopc2tiLT5kYXRhKTsNCi0Jc3RydWN0IHBlbmRpbmdfdHhfaW5mbyAqcGVuZGlu Z190eF9pbmZvID0gbmV0YmstPnBlbmRpbmdfdHhfaW5mbzsNCi0Jc3RydWN0IHhlbnZpZiAqdmlm ID0gcGVuZGluZ190eF9pbmZvW3BlbmRpbmdfaWR4XS52aWY7DQotCXN0cnVjdCB4ZW5fbmV0aWZf dHhfcmVxdWVzdCAqdHhwOw0KIAlzdHJ1Y3Qgc2tiX3NoYXJlZF9pbmZvICpzaGluZm8gPSBza2Jf c2hpbmZvKHNrYik7DQogCWludCBucl9mcmFncyA9IHNoaW5mby0+bnJfZnJhZ3M7DQogCWludCBp LCBlcnIsIHN0YXJ0Ow0KIA0KIAkvKiBDaGVjayBzdGF0dXMgb2YgaGVhZGVyLiAqLw0KIAllcnIg PSBnb3AtPnN0YXR1czsNCi0JaWYgKHVubGlrZWx5KGVycikpIHsNCi0JCXBlbmRpbmdfcmluZ19p ZHhfdCBpbmRleDsNCi0JCWluZGV4ID0gcGVuZGluZ19pbmRleChuZXRiay0+cGVuZGluZ19wcm9k KyspOw0KLQkJdHhwID0gJnBlbmRpbmdfdHhfaW5mb1twZW5kaW5nX2lkeF0ucmVxOw0KLQkJbWFr ZV90eF9yZXNwb25zZSh2aWYsIHR4cCwgWEVOX05FVElGX1JTUF9FUlJPUik7DQotCQluZXRiay0+ cGVuZGluZ19yaW5nW2luZGV4XSA9IHBlbmRpbmdfaWR4Ow0KLQkJeGVudmlmX3B1dCh2aWYpOw0K LQl9DQorCWlmICh1bmxpa2VseShlcnIpKQ0KKwkJeGVuX25ldGJrX2lkeF9yZWxlYXNlKG5ldGJr LCBwZW5kaW5nX2lkeCwgWEVOX05FVElGX1JTUF9FUlJPUik7DQogDQogCS8qIFNraXAgZmlyc3Qg c2tiIGZyYWdtZW50IGlmIGl0IGlzIG9uIHNhbWUgcGFnZSBhcyBoZWFkZXIgZnJhZ21lbnQuICov DQogCXN0YXJ0ID0gKGZyYWdfZ2V0X3BlbmRpbmdfaWR4KCZzaGluZm8tPmZyYWdzWzBdKSA9PSBw ZW5kaW5nX2lkeCk7DQogDQogCWZvciAoaSA9IHN0YXJ0OyBpIDwgbnJfZnJhZ3M7IGkrKykgew0K IAkJaW50IGosIG5ld2VycjsNCi0JCXBlbmRpbmdfcmluZ19pZHhfdCBpbmRleDsNCiANCiAJCXBl bmRpbmdfaWR4ID0gZnJhZ19nZXRfcGVuZGluZ19pZHgoJnNoaW5mby0+ZnJhZ3NbaV0pOw0KIA0K QEAgLTEwMDIsMTYgKzEwMTUsMTIgQEAgc3RhdGljIGludCB4ZW5fbmV0YmtfdHhfY2hlY2tfZ29w KHN0cnVjdCB4ZW5fbmV0YmsgKm5ldGJrLA0KIAkJaWYgKGxpa2VseSghbmV3ZXJyKSkgew0KIAkJ CS8qIEhhZCBhIHByZXZpb3VzIGVycm9yPyBJbnZhbGlkYXRlIHRoaXMgZnJhZ21lbnQuICovDQog CQkJaWYgKHVubGlrZWx5KGVycikpDQotCQkJCXhlbl9uZXRia19pZHhfcmVsZWFzZShuZXRiaywg cGVuZGluZ19pZHgpOw0KKwkJCQl4ZW5fbmV0YmtfaWR4X3JlbGVhc2UobmV0YmssIHBlbmRpbmdf aWR4LCBYRU5fTkVUSUZfUlNQX09LQVkpOw0KIAkJCWNvbnRpbnVlOw0KIAkJfQ0KIA0KIAkJLyog RXJyb3Igb24gdGhpcyBmcmFnbWVudDogcmVzcG9uZCB0byBjbGllbnQgd2l0aCBhbiBlcnJvci4g Ki8NCi0JCXR4cCA9ICZuZXRiay0+cGVuZGluZ190eF9pbmZvW3BlbmRpbmdfaWR4XS5yZXE7DQot CQltYWtlX3R4X3Jlc3BvbnNlKHZpZiwgdHhwLCBYRU5fTkVUSUZfUlNQX0VSUk9SKTsNCi0JCWlu ZGV4ID0gcGVuZGluZ19pbmRleChuZXRiay0+cGVuZGluZ19wcm9kKyspOw0KLQkJbmV0YmstPnBl bmRpbmdfcmluZ1tpbmRleF0gPSBwZW5kaW5nX2lkeDsNCi0JCXhlbnZpZl9wdXQodmlmKTsNCisJ CXhlbl9uZXRia19pZHhfcmVsZWFzZShuZXRiaywgcGVuZGluZ19pZHgsIFhFTl9ORVRJRl9SU1Bf RVJST1IpOw0KIA0KIAkJLyogTm90IHRoZSBmaXJzdCBlcnJvcj8gUHJlY2VkaW5nIGZyYWdzIGFs cmVhZHkgaW52YWxpZGF0ZWQuICovDQogCQlpZiAoZXJyKQ0KQEAgLTEwMTksMTAgKzEwMjgsMTAg QEAgc3RhdGljIGludCB4ZW5fbmV0YmtfdHhfY2hlY2tfZ29wKHN0cnVjdCB4ZW5fbmV0YmsgKm5l dGJrLA0KIA0KIAkJLyogRmlyc3QgZXJyb3I6IGludmFsaWRhdGUgaGVhZGVyIGFuZCBwcmVjZWRp bmcgZnJhZ21lbnRzLiAqLw0KIAkJcGVuZGluZ19pZHggPSAqKCh1MTYgKilza2ItPmRhdGEpOw0K LQkJeGVuX25ldGJrX2lkeF9yZWxlYXNlKG5ldGJrLCBwZW5kaW5nX2lkeCk7DQorCQl4ZW5fbmV0 YmtfaWR4X3JlbGVhc2UobmV0YmssIHBlbmRpbmdfaWR4LCBYRU5fTkVUSUZfUlNQX09LQVkpOw0K IAkJZm9yIChqID0gc3RhcnQ7IGogPCBpOyBqKyspIHsNCiAJCQlwZW5kaW5nX2lkeCA9IGZyYWdf Z2V0X3BlbmRpbmdfaWR4KCZzaGluZm8tPmZyYWdzW2pdKTsNCi0JCQl4ZW5fbmV0YmtfaWR4X3Jl bGVhc2UobmV0YmssIHBlbmRpbmdfaWR4KTsNCisJCQl4ZW5fbmV0YmtfaWR4X3JlbGVhc2UobmV0 YmssIHBlbmRpbmdfaWR4LCBYRU5fTkVUSUZfUlNQX09LQVkpOw0KIAkJfQ0KIA0KIAkJLyogUmVt ZW1iZXIgdGhlIGVycm9yOiBpbnZhbGlkYXRlIGFsbCBzdWJzZXF1ZW50IGZyYWdtZW50cy4gKi8N CkBAIC0xMDU2LDcgKzEwNjUsNyBAQCBzdGF0aWMgdm9pZCB4ZW5fbmV0YmtfZmlsbF9mcmFncyhz dHJ1Y3QgeGVuX25ldGJrICpuZXRiaywgc3RydWN0IHNrX2J1ZmYgKnNrYikNCiANCiAJCS8qIFRh a2UgYW4gZXh0cmEgcmVmZXJlbmNlIHRvIG9mZnNldCB4ZW5fbmV0YmtfaWR4X3JlbGVhc2UgKi8N CiAJCWdldF9wYWdlKG5ldGJrLT5tbWFwX3BhZ2VzW3BlbmRpbmdfaWR4XSk7DQotCQl4ZW5fbmV0 YmtfaWR4X3JlbGVhc2UobmV0YmssIHBlbmRpbmdfaWR4KTsNCisJCXhlbl9uZXRia19pZHhfcmVs ZWFzZShuZXRiaywgcGVuZGluZ19pZHgsIFhFTl9ORVRJRl9SU1BfT0tBWSk7DQogCX0NCiB9DQog DQpAQCAtMTA2OSw3ICsxMDc4LDggQEAgc3RhdGljIGludCB4ZW5fbmV0YmtfZ2V0X2V4dHJhcyhz dHJ1Y3QgeGVudmlmICp2aWYsDQogDQogCWRvIHsNCiAJCWlmICh1bmxpa2VseSh3b3JrX3RvX2Rv LS0gPD0gMCkpIHsNCi0JCQluZXRkZXZfZGJnKHZpZi0+ZGV2LCAiTWlzc2luZyBleHRyYSBpbmZv XG4iKTsNCisJCQluZXRkZXZfZXJyKHZpZi0+ZGV2LCAiTWlzc2luZyBleHRyYSBpbmZvXG4iKTsN CisJCQluZXRia19mYXRhbF90eF9lcnIodmlmKTsNCiAJCQlyZXR1cm4gLUVCQURSOw0KIAkJfQ0K IA0KQEAgLTEwNzgsOCArMTA4OCw5IEBAIHN0YXRpYyBpbnQgeGVuX25ldGJrX2dldF9leHRyYXMo c3RydWN0IHhlbnZpZiAqdmlmLA0KIAkJaWYgKHVubGlrZWx5KCFleHRyYS50eXBlIHx8DQogCQkJ ICAgICBleHRyYS50eXBlID49IFhFTl9ORVRJRl9FWFRSQV9UWVBFX01BWCkpIHsNCiAJCQl2aWYt PnR4LnJlcV9jb25zID0gKytjb25zOw0KLQkJCW5ldGRldl9kYmcodmlmLT5kZXYsDQorCQkJbmV0 ZGV2X2Vycih2aWYtPmRldiwNCiAJCQkJICAgIkludmFsaWQgZXh0cmEgdHlwZTogJWRcbiIsIGV4 dHJhLnR5cGUpOw0KKwkJCW5ldGJrX2ZhdGFsX3R4X2Vycih2aWYpOw0KIAkJCXJldHVybiAtRUlO VkFMOw0KIAkJfQ0KIA0KQEAgLTEwOTUsMTMgKzExMDYsMTUgQEAgc3RhdGljIGludCBuZXRia19z ZXRfc2tiX2dzbyhzdHJ1Y3QgeGVudmlmICp2aWYsDQogCQkJICAgICBzdHJ1Y3QgeGVuX25ldGlm X2V4dHJhX2luZm8gKmdzbykNCiB7DQogCWlmICghZ3NvLT51Lmdzby5zaXplKSB7DQotCQluZXRk ZXZfZGJnKHZpZi0+ZGV2LCAiR1NPIHNpemUgbXVzdCBub3QgYmUgemVyby5cbiIpOw0KKwkJbmV0 ZGV2X2Vycih2aWYtPmRldiwgIkdTTyBzaXplIG11c3Qgbm90IGJlIHplcm8uXG4iKTsNCisJCW5l dGJrX2ZhdGFsX3R4X2Vycih2aWYpOw0KIAkJcmV0dXJuIC1FSU5WQUw7DQogCX0NCiANCiAJLyog Q3VycmVudGx5IG9ubHkgVENQdjQgUy5PLiBpcyBzdXBwb3J0ZWQuICovDQogCWlmIChnc28tPnUu Z3NvLnR5cGUgIT0gWEVOX05FVElGX0dTT19UWVBFX1RDUFY0KSB7DQotCQluZXRkZXZfZGJnKHZp Zi0+ZGV2LCAiQmFkIEdTTyB0eXBlICVkLlxuIiwgZ3NvLT51Lmdzby50eXBlKTsNCisJCW5ldGRl dl9lcnIodmlmLT5kZXYsICJCYWQgR1NPIHR5cGUgJWQuXG4iLCBnc28tPnUuZ3NvLnR5cGUpOw0K KwkJbmV0YmtfZmF0YWxfdHhfZXJyKHZpZik7DQogCQlyZXR1cm4gLUVJTlZBTDsNCiAJfQ0KIA0K QEAgLTEyMzgsOSArMTI1MSwyNSBAQCBzdGF0aWMgdW5zaWduZWQgeGVuX25ldGJrX3R4X2J1aWxk X2dvcHMoc3RydWN0IHhlbl9uZXRiayAqbmV0YmspDQogDQogCQkvKiBHZXQgYSBuZXRpZiBmcm9t IHRoZSBsaXN0IHdpdGggd29yayB0byBkby4gKi8NCiAJCXZpZiA9IHBvbGxfbmV0X3NjaGVkdWxl X2xpc3QobmV0YmspOw0KKwkJLyogVGhpcyBjYW4gc29tZXRpbWVzIGhhcHBlbiBiZWNhdXNlIHRo ZSB0ZXN0IG9mDQorCQkgKiBsaXN0X2VtcHR5KG5ldF9zY2hlZHVsZV9saXN0KSBhdCB0aGUgdG9w IG9mIHRoZQ0KKwkJICogbG9vcCBpcyB1bmxvY2tlZC4gIEp1c3QgZ28gYmFjayBhbmQgaGF2ZSBh bm90aGVyDQorCQkgKiBsb29rLg0KKwkJICovDQogCQlpZiAoIXZpZikNCiAJCQljb250aW51ZTsN CiANCisJCWlmICh2aWYtPnR4LnNyaW5nLT5yZXFfcHJvZCAtIHZpZi0+dHgucmVxX2NvbnMgPg0K KwkJICAgIFhFTl9ORVRJRl9UWF9SSU5HX1NJWkUpIHsNCisJCQluZXRkZXZfZXJyKHZpZi0+ZGV2 LA0KKwkJCQkgICAiSW1wb3NzaWJsZSBudW1iZXIgb2YgcmVxdWVzdHMuICINCisJCQkJICAgInJl cV9wcm9kICVkLCByZXFfY29ucyAlZCwgc2l6ZSAlbGRcbiIsDQorCQkJCSAgIHZpZi0+dHguc3Jp bmctPnJlcV9wcm9kLCB2aWYtPnR4LnJlcV9jb25zLA0KKwkJCQkgICBYRU5fTkVUSUZfVFhfUklO R19TSVpFKTsNCisJCQluZXRia19mYXRhbF90eF9lcnIodmlmKTsNCisJCQljb250aW51ZTsNCisJ CX0NCisNCiAJCVJJTkdfRklOQUxfQ0hFQ0tfRk9SX1JFUVVFU1RTKCZ2aWYtPnR4LCB3b3JrX3Rv X2RvKTsNCiAJCWlmICghd29ya190b19kbykgew0KIAkJCXhlbnZpZl9wdXQodmlmKTsNCkBAIC0x MjY4LDE3ICsxMjk3LDE0IEBAIHN0YXRpYyB1bnNpZ25lZCB4ZW5fbmV0YmtfdHhfYnVpbGRfZ29w cyhzdHJ1Y3QgeGVuX25ldGJrICpuZXRiaykNCiAJCQl3b3JrX3RvX2RvID0geGVuX25ldGJrX2dl dF9leHRyYXModmlmLCBleHRyYXMsDQogCQkJCQkJCSAgd29ya190b19kbyk7DQogCQkJaWR4ID0g dmlmLT50eC5yZXFfY29uczsNCi0JCQlpZiAodW5saWtlbHkod29ya190b19kbyA8IDApKSB7DQot CQkJCW5ldGJrX3R4X2Vycih2aWYsICZ0eHJlcSwgaWR4KTsNCisJCQlpZiAodW5saWtlbHkod29y a190b19kbyA8IDApKQ0KIAkJCQljb250aW51ZTsNCi0JCQl9DQogCQl9DQogDQogCQlyZXQgPSBu ZXRia19jb3VudF9yZXF1ZXN0cyh2aWYsICZ0eHJlcSwgdHhmcmFncywgd29ya190b19kbyk7DQot CQlpZiAodW5saWtlbHkocmV0IDwgMCkpIHsNCi0JCQluZXRia190eF9lcnIodmlmLCAmdHhyZXEs IGlkeCAtIHJldCk7DQorCQlpZiAodW5saWtlbHkocmV0IDwgMCkpDQogCQkJY29udGludWU7DQot CQl9DQorDQogCQlpZHggKz0gcmV0Ow0KIA0KIAkJaWYgKHVubGlrZWx5KHR4cmVxLnNpemUgPCBF VEhfSExFTikpIHsNCkBAIC0xMjkwLDExICsxMzE2LDExIEBAIHN0YXRpYyB1bnNpZ25lZCB4ZW5f bmV0YmtfdHhfYnVpbGRfZ29wcyhzdHJ1Y3QgeGVuX25ldGJrICpuZXRiaykNCiANCiAJCS8qIE5v IGNyb3NzaW5nIGEgcGFnZSBhcyB0aGUgcGF5bG9hZCBtdXN0bid0IGZyYWdtZW50LiAqLw0KIAkJ aWYgKHVubGlrZWx5KCh0eHJlcS5vZmZzZXQgKyB0eHJlcS5zaXplKSA+IFBBR0VfU0laRSkpIHsN Ci0JCQluZXRkZXZfZGJnKHZpZi0+ZGV2LA0KKwkJCW5ldGRldl9lcnIodmlmLT5kZXYsDQogCQkJ CSAgICJ0eHJlcS5vZmZzZXQ6ICV4LCBzaXplOiAldSwgZW5kOiAlbHVcbiIsDQogCQkJCSAgIHR4 cmVxLm9mZnNldCwgdHhyZXEuc2l6ZSwNCiAJCQkJICAgKHR4cmVxLm9mZnNldCZ+UEFHRV9NQVNL KSArIHR4cmVxLnNpemUpOw0KLQkJCW5ldGJrX3R4X2Vycih2aWYsICZ0eHJlcSwgaWR4KTsNCisJ CQluZXRia19mYXRhbF90eF9lcnIodmlmKTsNCiAJCQljb250aW51ZTsNCiAJCX0NCiANCkBAIC0x MzIyLDggKzEzNDgsOCBAQCBzdGF0aWMgdW5zaWduZWQgeGVuX25ldGJrX3R4X2J1aWxkX2dvcHMo c3RydWN0IHhlbl9uZXRiayAqbmV0YmspDQogCQkJZ3NvID0gJmV4dHJhc1tYRU5fTkVUSUZfRVhU UkFfVFlQRV9HU08gLSAxXTsNCiANCiAJCQlpZiAobmV0Ymtfc2V0X3NrYl9nc28odmlmLCBza2Is IGdzbykpIHsNCisJCQkJLyogRmFpbHVyZSBpbiBuZXRia19zZXRfc2tiX2dzbyBpcyBmYXRhbC4g Ki8NCiAJCQkJa2ZyZWVfc2tiKHNrYik7DQotCQkJCW5ldGJrX3R4X2Vycih2aWYsICZ0eHJlcSwg aWR4KTsNCiAJCQkJY29udGludWU7DQogCQkJfQ0KIAkJfQ0KQEAgLTE0MjQsNyArMTQ1MCw3IEBA IHN0YXRpYyB2b2lkIHhlbl9uZXRia190eF9zdWJtaXQoc3RydWN0IHhlbl9uZXRiayAqbmV0Ymsp DQogCQkJdHhwLT5zaXplIC09IGRhdGFfbGVuOw0KIAkJfSBlbHNlIHsNCiAJCQkvKiBTY2hlZHVs ZSBhIHJlc3BvbnNlIGltbWVkaWF0ZWx5LiAqLw0KLQkJCXhlbl9uZXRia19pZHhfcmVsZWFzZShu ZXRiaywgcGVuZGluZ19pZHgpOw0KKwkJCXhlbl9uZXRia19pZHhfcmVsZWFzZShuZXRiaywgcGVu ZGluZ19pZHgsIFhFTl9ORVRJRl9SU1BfT0tBWSk7DQogCQl9DQogDQogCQlpZiAodHhwLT5mbGFn cyAmIFhFTl9ORVRUWEZfY3N1bV9ibGFuaykNCkBAIC0xNDc5LDcgKzE1MDUsOCBAQCBzdGF0aWMg dm9pZCB4ZW5fbmV0YmtfdHhfYWN0aW9uKHN0cnVjdCB4ZW5fbmV0YmsgKm5ldGJrKQ0KIA0KIH0N CiANCi1zdGF0aWMgdm9pZCB4ZW5fbmV0YmtfaWR4X3JlbGVhc2Uoc3RydWN0IHhlbl9uZXRiayAq bmV0YmssIHUxNiBwZW5kaW5nX2lkeCkNCitzdGF0aWMgdm9pZCB4ZW5fbmV0YmtfaWR4X3JlbGVh c2Uoc3RydWN0IHhlbl9uZXRiayAqbmV0YmssIHUxNiBwZW5kaW5nX2lkeCwNCisJCQkJICB1OCBz dGF0dXMpDQogew0KIAlzdHJ1Y3QgeGVudmlmICp2aWY7DQogCXN0cnVjdCBwZW5kaW5nX3R4X2lu Zm8gKnBlbmRpbmdfdHhfaW5mbzsNCkBAIC0xNDkzLDcgKzE1MjAsNyBAQCBzdGF0aWMgdm9pZCB4 ZW5fbmV0YmtfaWR4X3JlbGVhc2Uoc3RydWN0IHhlbl9uZXRiayAqbmV0YmssIHUxNiBwZW5kaW5n X2lkeCkNCiANCiAJdmlmID0gcGVuZGluZ190eF9pbmZvLT52aWY7DQogDQotCW1ha2VfdHhfcmVz cG9uc2UodmlmLCAmcGVuZGluZ190eF9pbmZvLT5yZXEsIFhFTl9ORVRJRl9SU1BfT0tBWSk7DQor CW1ha2VfdHhfcmVzcG9uc2UodmlmLCAmcGVuZGluZ190eF9pbmZvLT5yZXEsIHN0YXR1cyk7DQog DQogCWluZGV4ID0gcGVuZGluZ19pbmRleChuZXRiay0+cGVuZGluZ19wcm9kKyspOw0KIAluZXRi ay0+cGVuZGluZ19yaW5nW2luZGV4XSA9IHBlbmRpbmdfaWR4Ow0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvcnRjL3J0Yy1pc2wxMjA4LmMgYi9kcml2ZXJzL3J0Yy9ydGMtaXNsMTIwOC5jDQppbmRleCBk YThiZWI4Li42MjdiNjZhIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ydGMvcnRjLWlzbDEyMDguYw0K KysrIGIvZHJpdmVycy9ydGMvcnRjLWlzbDEyMDguYw0KQEAgLTQ5NCw2ICs0OTQsNyBAQCBpc2wx MjA4X3J0Y19pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGF0YSkNCiB7DQogCXVuc2lnbmVkIGxv bmcgdGltZW91dCA9IGppZmZpZXMgKyBtc2Vjc190b19qaWZmaWVzKDEwMDApOw0KIAlzdHJ1Y3Qg aTJjX2NsaWVudCAqY2xpZW50ID0gZGF0YTsNCisJc3RydWN0IHJ0Y19kZXZpY2UgKnJ0YyA9IGky Y19nZXRfY2xpZW50ZGF0YShjbGllbnQpOw0KIAlpbnQgaGFuZGxlZCA9IDAsIHNyLCBlcnI7DQog DQogCS8qDQpAQCAtNTE2LDYgKzUxNyw4IEBAIGlzbDEyMDhfcnRjX2ludGVycnVwdChpbnQgaXJx LCB2b2lkICpkYXRhKQ0KIAlpZiAoc3IgJiBJU0wxMjA4X1JFR19TUl9BTE0pIHsNCiAJCWRldl9k YmcoJmNsaWVudC0+ZGV2LCAiYWxhcm0hXG4iKTsNCiANCisJCXJ0Y191cGRhdGVfaXJxKHJ0Yywg MSwgUlRDX0lSUUYgfCBSVENfQUYpOw0KKw0KIAkJLyogQ2xlYXIgdGhlIGFsYXJtICovDQogCQlz ciAmPSB+SVNMMTIwOF9SRUdfU1JfQUxNOw0KIAkJc3IgPSBpMmNfc21idXNfd3JpdGVfYnl0ZV9k YXRhKGNsaWVudCwgSVNMMTIwOF9SRUdfU1IsIHNyKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0 Yy9ydGMtcGwwMzEuYyBiL2RyaXZlcnMvcnRjL3J0Yy1wbDAzMS5jDQppbmRleCAxZTgwYTQ4Li43 MzgxNmQ4IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ydGMvcnRjLXBsMDMxLmMNCisrKyBiL2RyaXZl cnMvcnRjL3J0Yy1wbDAzMS5jDQpAQCAtNDQsNiArNDQsNyBAQA0KICNkZWZpbmUgUlRDX1lNUgkJ MHgzNAkvKiBZZWFyIG1hdGNoIHJlZ2lzdGVyICovDQogI2RlZmluZSBSVENfWUxSCQkweDM4CS8q IFllYXIgZGF0YSBsb2FkIHJlZ2lzdGVyICovDQogDQorI2RlZmluZSBSVENfQ1JfRU4JKDEgPDwg MCkJLyogY291bnRlciBlbmFibGUgYml0ICovDQogI2RlZmluZSBSVENfQ1JfQ1dFTgkoMSA8PCAy NikJLyogQ2xvY2t3YXRjaCBlbmFibGUgYml0ICovDQogDQogI2RlZmluZSBSVENfVENSX0VOCSgx IDw8IDEpIC8qIFBlcmlvZGljIHRpbWVyIGVuYWJsZSBiaXQgKi8NCkBAIC0zMTIsNyArMzEzLDcg QEAgc3RhdGljIGludCBwbDAzMV9wcm9iZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmFkZXYsIGNvbnN0 IHN0cnVjdCBhbWJhX2lkICppZCkNCiAJaW50IHJldDsNCiAJc3RydWN0IHBsMDMxX2xvY2FsICps ZGF0YTsNCiAJc3RydWN0IHJ0Y19jbGFzc19vcHMgKm9wcyA9IGlkLT5kYXRhOw0KLQl1bnNpZ25l ZCBsb25nIHRpbWU7DQorCXVuc2lnbmVkIGxvbmcgdGltZSwgZGF0YTsNCiANCiAJcmV0ID0gYW1i YV9yZXF1ZXN0X3JlZ2lvbnMoYWRldiwgTlVMTCk7DQogCWlmIChyZXQpDQpAQCAtMzM5LDEwICsz NDAsMTEgQEAgc3RhdGljIGludCBwbDAzMV9wcm9iZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmFkZXYs IGNvbnN0IHN0cnVjdCBhbWJhX2lkICppZCkNCiAJZGV2X2RiZygmYWRldi0+ZGV2LCAiZGVzaWdu ZXIgSUQgPSAweCUwMnhcbiIsIGxkYXRhLT5od19kZXNpZ25lcik7DQogCWRldl9kYmcoJmFkZXYt PmRldiwgInJldmlzaW9uID0gMHglMDF4XG4iLCBsZGF0YS0+aHdfcmV2aXNpb24pOw0KIA0KKwlk YXRhID0gcmVhZGwobGRhdGEtPmJhc2UgKyBSVENfQ1IpOw0KIAkvKiBFbmFibGUgdGhlIGNsb2Nr d2F0Y2ggb24gU1QgVmFyaWFudHMgKi8NCiAJaWYgKGxkYXRhLT5od19kZXNpZ25lciA9PSBBTUJB X1ZFTkRPUl9TVCkNCi0JCXdyaXRlbChyZWFkbChsZGF0YS0+YmFzZSArIFJUQ19DUikgfCBSVENf Q1JfQ1dFTiwNCi0JCSAgICAgICBsZGF0YS0+YmFzZSArIFJUQ19DUik7DQorCQlkYXRhIHw9IFJU Q19DUl9DV0VOOw0KKwl3cml0ZWwoZGF0YSB8IFJUQ19DUl9FTiwgbGRhdGEtPmJhc2UgKyBSVENf Q1IpOw0KIA0KIAkvKg0KIAkgKiBPbiBTVCBQTDAzMSB2YXJpYW50cywgdGhlIFJUQyByZXNldCB2 YWx1ZSBkb2VzIG5vdCBwcm92aWRlIGNvcnJlY3QNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9o b3N0L2VoY2ktc2NoZWQuYyBiL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1zY2hlZC5jDQppbmRleCAz NDY1NWQwLi4wOGU0NzBmIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2IvaG9zdC9laGNpLXNjaGVk LmMNCisrKyBiL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1zY2hlZC5jDQpAQCAtMjM2LDcgKzIzNiw3 IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciB0dF9zdGFydF91ZnJhbWUoc3RydWN0IGVo Y2lfaGNkICplaGNpLCBfX2hjMzIgbWFzaykNCiB9DQogDQogc3RhdGljIGNvbnN0IHVuc2lnbmVk IGNoYXINCi1tYXhfdHRfdXNlY3NbXSA9IHsgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwg MzAsIDAgfTsNCittYXhfdHRfdXNlY3NbXSA9IHsgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEy NSwgMTI1LCAyNSB9Ow0KIA0KIC8qIGNhcnJ5b3ZlciBsb3cvZnVsbHNwZWVkIGJhbmR3aWR0aCB0 aGF0IGNyb3NzZXMgdWZyYW1lIGJvdW5kcmllcyAqLw0KIHN0YXRpYyBpbmxpbmUgdm9pZCBjYXJy eW92ZXJfdHRfYmFuZHdpZHRoKHVuc2lnbmVkIHNob3J0IHR0X3VzZWNzWzhdKQ0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvdXNiL2hvc3QvcGNpLXF1aXJrcy5jIGIvZHJpdmVycy91c2IvaG9zdC9wY2kt cXVpcmtzLmMNCmluZGV4IDVjYzQwMWIuLmM3Y2ZiY2UgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3Vz Yi9ob3N0L3BjaS1xdWlya3MuYw0KKysrIGIvZHJpdmVycy91c2IvaG9zdC9wY2ktcXVpcmtzLmMN CkBAIC03ODAsNiArNzgwLDcgQEAgdm9pZCB1c2JfZW5hYmxlX3hoY2lfcG9ydHMoc3RydWN0IHBj aV9kZXYgKnhoY2lfcGRldikNCiAJCQkJImRlZmF1bHRpbmcgdG8gRUhDSS5cbiIpOw0KIAkJZGV2 X3dhcm4oJnhoY2lfcGRldi0+ZGV2LA0KIAkJCQkiVVNCIDMuMCBkZXZpY2VzIHdpbGwgd29yayBh dCBVU0IgMi4wIHNwZWVkcy5cbiIpOw0KKwkJdXNiX2Rpc2FibGVfeGhjaV9wb3J0cyh4aGNpX3Bk ZXYpOw0KIAkJcmV0dXJuOw0KIAl9DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94 aGNpLXJpbmcuYyBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1yaW5nLmMNCmluZGV4IDJlZDU5MWQu LjVjMWY5ZTcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcmluZy5jDQorKysg Yi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcmluZy5jDQpAQCAtMjUwNCw2ICsyNTA0LDggQEAgY2xl YW51cDoNCiAJCQkJKHRyYl9jb21wX2NvZGUgIT0gQ09NUF9TVEFMTCAmJg0KIAkJCQkJdHJiX2Nv bXBfY29kZSAhPSBDT01QX0JBQkJMRSkpDQogCQkJCXhoY2lfdXJiX2ZyZWVfcHJpdih4aGNpLCB1 cmJfcHJpdik7DQorCQkJZWxzZQ0KKwkJCQlrZnJlZSh1cmJfcHJpdik7DQogDQogCQkJdXNiX2hj ZF91bmxpbmtfdXJiX2Zyb21fZXAoYnVzX3RvX2hjZCh1cmItPmRldi0+YnVzKSwgdXJiKTsNCiAJ CQlpZiAoKHVyYi0+YWN0dWFsX2xlbmd0aCAhPSB1cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGgg JiYNCkBAIC0zMDMyLDcgKzMwMzQsNyBAQCBzdGF0aWMgdTMyIHhoY2lfdjFfMF90ZF9yZW1haW5k ZXIoaW50IHJ1bm5pbmdfdG90YWwsIGludCB0cmJfYnVmZl9sZW4sDQogCSAqIHJ1bm5pbmdfdG90 YWwuDQogCSAqLw0KIAlwYWNrZXRzX3RyYW5zZmVycmVkID0gKHJ1bm5pbmdfdG90YWwgKyB0cmJf YnVmZl9sZW4pIC8NCi0JCXVzYl9lbmRwb2ludF9tYXhwKCZ1cmItPmVwLT5kZXNjKTsNCisJCUdF VF9NQVhfUEFDS0VUKHVzYl9lbmRwb2ludF9tYXhwKCZ1cmItPmVwLT5kZXNjKSk7DQogDQogCWlm ICgodG90YWxfcGFja2V0X2NvdW50IC0gcGFja2V0c190cmFuc2ZlcnJlZCkgPiAzMSkNCiAJCXJl dHVybiAzMSA8PCAxNzsNCkBAIC0zNTk0LDcgKzM1OTYsOCBAQCBzdGF0aWMgaW50IHhoY2lfcXVl dWVfaXNvY190eChzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksIGdmcF90IG1lbV9mbGFncywNCiAJCXRk X2xlbiA9IHVyYi0+aXNvX2ZyYW1lX2Rlc2NbaV0ubGVuZ3RoOw0KIAkJdGRfcmVtYWluX2xlbiA9 IHRkX2xlbjsNCiAJCXRvdGFsX3BhY2tldF9jb3VudCA9IERJVl9ST1VORF9VUCh0ZF9sZW4sDQot CQkJCXVzYl9lbmRwb2ludF9tYXhwKCZ1cmItPmVwLT5kZXNjKSk7DQorCQkJCUdFVF9NQVhfUEFD S0VUKA0KKwkJCQkJdXNiX2VuZHBvaW50X21heHAoJnVyYi0+ZXAtPmRlc2MpKSk7DQogCQkvKiBB IHplcm8tbGVuZ3RoIHRyYW5zZmVyIHN0aWxsIGludm9sdmVzIGF0IGxlYXN0IG9uZSBwYWNrZXQu ICovDQogCQlpZiAodG90YWxfcGFja2V0X2NvdW50ID09IDApDQogCQkJdG90YWxfcGFja2V0X2Nv dW50Kys7DQpAQCAtMzYxNyw5ICszNjIwLDExIEBAIHN0YXRpYyBpbnQgeGhjaV9xdWV1ZV9pc29j X3R4KHN0cnVjdCB4aGNpX2hjZCAqeGhjaSwgZ2ZwX3QgbWVtX2ZsYWdzLA0KIAkJdGQgPSB1cmJf cHJpdi0+dGRbaV07DQogCQlmb3IgKGogPSAwOyBqIDwgdHJic19wZXJfdGQ7IGorKykgew0KIAkJ CXUzMiByZW1haW5kZXIgPSAwOw0KLQkJCWZpZWxkID0gVFJCX1RCQyhidXJzdF9jb3VudCkgfCBU UkJfVExCUEMocmVzaWR1ZSk7DQorCQkJZmllbGQgPSAwOw0KIA0KIAkJCWlmIChmaXJzdF90cmIp IHsNCisJCQkJZmllbGQgPSBUUkJfVEJDKGJ1cnN0X2NvdW50KSB8DQorCQkJCQlUUkJfVExCUEMo cmVzaWR1ZSk7DQogCQkJCS8qIFF1ZXVlIHRoZSBpc29jIFRSQiAqLw0KIAkJCQlmaWVsZCB8PSBU UkJfVFlQRShUUkJfSVNPQyk7DQogCQkJCS8qIEFzc3VtZSBVUkJfSVNPX0FTQVAgaXMgc2V0ICov DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMgYi9kcml2ZXJzL3Vz Yi9zZXJpYWwvZnRkaV9zaW8uYw0KaW5kZXggMmNjN2MxOC4uZDY0NGE2NiAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jDQorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwv ZnRkaV9zaW8uYw0KQEAgLTU5MCw2ICs1OTAsNyBAQCBzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2Vf aWQgaWRfdGFibGVfY29tYmluZWQgW10gPSB7DQogCS8qDQogCSAqIEVMViBkZXZpY2VzOg0KIAkg Ki8NCisJeyBVU0JfREVWSUNFKEZURElfRUxWX1ZJRCwgRlRESV9FTFZfV1MzMDBfUElEKSB9LA0K IAl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfRUxWX1VTUl9QSUQpIH0sDQogCXsgVVNCX0RF VklDRShGVERJX1ZJRCwgRlRESV9FTFZfTVNNMV9QSUQpIH0sDQogCXsgVVNCX0RFVklDRShGVERJ X1ZJRCwgRlRESV9FTFZfS0wxMDBfUElEKSB9LA0KQEAgLTY3Niw2ICs2NzcsNyBAQCBzdGF0aWMg c3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVfY29tYmluZWQgW10gPSB7DQogCXsgVVNCX0RF VklDRShGVERJX1ZJRCwgWFNFTlNfQ09OVkVSVEVSXzVfUElEKSB9LA0KIAl7IFVTQl9ERVZJQ0Uo RlRESV9WSUQsIFhTRU5TX0NPTlZFUlRFUl82X1BJRCkgfSwNCiAJeyBVU0JfREVWSUNFKEZURElf VklELCBYU0VOU19DT05WRVJURVJfN19QSUQpIH0sDQorCXsgVVNCX0RFVklDRShGVERJX1ZJRCwg RlRESV9PTU5JMTUwOSkgfSwNCiAJeyBVU0JfREVWSUNFKE1PQklMSVRZX1ZJRCwgTU9CSUxJVFlf VVNCX1NFUklBTF9QSUQpIH0sDQogCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9BQ1RJVkVf Uk9CT1RTX1BJRCkgfSwNCiAJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX01IQU1fS1dfUElE KSB9LA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npb19pZHMuaCBiL2Ry aXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npb19pZHMuaA0KaW5kZXggZGQ2ZWRmOC4uOTdlMGE2YiAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npb19pZHMuaA0KKysrIGIvZHJp dmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvX2lkcy5oDQpAQCAtMTQ3LDYgKzE0NywxMSBAQA0KICNk ZWZpbmUgWFNFTlNfQ09OVkVSVEVSXzZfUElECTB4RDM4RQ0KICNkZWZpbmUgWFNFTlNfQ09OVkVS VEVSXzdfUElECTB4RDM4Rg0KIA0KKy8qKg0KKyAqIFpvbGl4ICh3d3cuem9saXguY29tLmNiKSBw cm9kdWN0IGlkcw0KKyAqLw0KKyNkZWZpbmUgRlRESV9PTU5JMTUwOQkJCTB4RDQ5MQkvKiBPbW5p MTUwOSBlbWJlZGRlZCBVU0Itc2VyaWFsICovDQorDQogLyoNCiAgKiBOREkgKHd3dy5uZGlnaXRh bC5jb20pIHByb2R1Y3QgaWRzDQogICovDQpAQCAtMjA0LDcgKzIwOSw3IEBADQogDQogLyoNCiAg KiBFTFYgVVNCIGRldmljZXMgc3VibWl0dGVkIGJ5IENocmlzdGlhbiBBYnQgb2YgRUxWICh3d3cu ZWx2LmRlKS4NCi0gKiBBbGwgb2YgdGhlc2UgZGV2aWNlcyB1c2UgRlRESSdzIHZlbmRvciBJRCAo MHgwNDAzKS4NCisgKiBBbG1vc3QgYWxsIG9mIHRoZXNlIGRldmljZXMgdXNlIEZUREkncyB2ZW5k b3IgSUQgKDB4MDQwMykuDQogICogRnVydGhlciBJRHMgdGFrZW4gZnJvbSBFTFYgV2luZG93cyAu aW5mIGZpbGUuDQogICoNCiAgKiBUaGUgcHJldmlvdXNseSBpbmNsdWRlZCBQSUQgZm9yIHRoZSBV TyAxMDAgbW9kdWxlIHdhcyBpbmNvcnJlY3QuDQpAQCAtMjEyLDYgKzIxNyw4IEBADQogICoNCiAg KiBBcm1pbiBMYWV1Z2VyIG9yaWdpbmFsbHkgc2VudCB0aGUgUElEIGZvciB0aGUgVU0gMTAwIG1v ZHVsZS4NCiAgKi8NCisjZGVmaW5lIEZURElfRUxWX1ZJRAkweDFCMUYJLyogRUxWIEFHICovDQor I2RlZmluZSBGVERJX0VMVl9XUzMwMF9QSUQJMHhDMDA2CS8qIGVRMyBXUyAzMDAgUEMgSUkgKi8N CiAjZGVmaW5lIEZURElfRUxWX1VTUl9QSUQJMHhFMDAwCS8qIEVMViBVbml2ZXJzYWwtU291bmQt UmVjb3JkZXIgKi8NCiAjZGVmaW5lIEZURElfRUxWX01TTTFfUElECTB4RTAwMQkvKiBFTFYgTWlu aS1Tb3VuZC1Nb2R1bCAqLw0KICNkZWZpbmUgRlRESV9FTFZfS0wxMDBfUElECTB4RTAwMgkvKiBF TFYgS2Z6LUxlaXN0dW5nc21lc3NlciBLTCAxMDAgKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Vz Yi9zZXJpYWwvb3B0aW9uLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMNCmluZGV4IDlk YjNlMjMuLjUyY2Q4MTQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMN CisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYw0KQEAgLTI0Miw2ICsyNDIsNyBAQCBz dGF0aWMgdm9pZCBvcHRpb25faW5zdGF0X2NhbGxiYWNrKHN0cnVjdCB1cmIgKnVyYik7DQogI2Rl ZmluZSBURUxJVF9QUk9EVUNUX0NDODY0X0RVQUwJCTB4MTAwNQ0KICNkZWZpbmUgVEVMSVRfUFJP RFVDVF9DQzg2NF9TSU5HTEUJCTB4MTAwNg0KICNkZWZpbmUgVEVMSVRfUFJPRFVDVF9ERTkxMF9E VUFMCQkweDEwMTANCisjZGVmaW5lIFRFTElUX1BST0RVQ1RfTEU5MjAJCQkweDEyMDANCiANCiAv KiBaVEUgUFJPRFVDVFMgKi8NCiAjZGVmaW5lIFpURV9WRU5ET1JfSUQJCQkJMHgxOWQyDQpAQCAt NDUzLDYgKzQ1NCwxMCBAQCBzdGF0aWMgdm9pZCBvcHRpb25faW5zdGF0X2NhbGxiYWNrKHN0cnVj dCB1cmIgKnVyYik7DQogI2RlZmluZSBUUExJTktfVkVORE9SX0lECQkJMHgyMzU3DQogI2RlZmlu ZSBUUExJTktfUFJPRFVDVF9NQTE4MAkJCTB4MDIwMQ0KIA0KKy8qIENoYW5naG9uZyBwcm9kdWN0 cyAqLw0KKyNkZWZpbmUgQ0hBTkdIT05HX1ZFTkRPUl9JRAkJCTB4MjA3Nw0KKyNkZWZpbmUgQ0hB TkdIT05HX1BST0RVQ1RfQ0g2OTAJCQkweDcwMDENCisNCiAvKiBzb21lIGRldmljZXMgaW50ZXJm YWNlcyBuZWVkIHNwZWNpYWwgaGFuZGxpbmcgZHVlIHRvIGEgbnVtYmVyIG9mIHJlYXNvbnMgKi8N CiBlbnVtIG9wdGlvbl9ibGFja2xpc3RfcmVhc29uIHsNCiAJCU9QVElPTl9CTEFDS0xJU1RfTk9O RSA9IDAsDQpAQCAtNTM0LDYgKzUzOSwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbl9i bGFja2xpc3RfaW5mbyB6dGVfMTI1NV9ibGFja2xpc3QgPSB7DQogCS5yZXNlcnZlZCA9IEJJVCgz KSB8IEJJVCg0KSwNCiB9Ow0KIA0KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb3B0aW9uX2JsYWNrbGlz dF9pbmZvIHRlbGl0X2xlOTIwX2JsYWNrbGlzdCA9IHsNCisJLnNlbmRzZXR1cCA9IEJJVCgwKSwN CisJLnJlc2VydmVkID0gQklUKDEpIHwgQklUKDUpLA0KK307DQorDQogc3RhdGljIGNvbnN0IHN0 cnVjdCB1c2JfZGV2aWNlX2lkIG9wdGlvbl9pZHNbXSA9IHsNCiAJeyBVU0JfREVWSUNFKE9QVElP Tl9WRU5ET1JfSUQsIE9QVElPTl9QUk9EVUNUX0NPTFQpIH0sDQogCXsgVVNCX0RFVklDRShPUFRJ T05fVkVORE9SX0lELCBPUFRJT05fUFJPRFVDVF9SSUNPTEEpIH0sDQpAQCAtNzg0LDYgKzc5NCw4 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBvcHRpb25faWRzW10gPSB7DQog CXsgVVNCX0RFVklDRShURUxJVF9WRU5ET1JfSUQsIFRFTElUX1BST0RVQ1RfQ0M4NjRfRFVBTCkg fSwNCiAJeyBVU0JfREVWSUNFKFRFTElUX1ZFTkRPUl9JRCwgVEVMSVRfUFJPRFVDVF9DQzg2NF9T SU5HTEUpIH0sDQogCXsgVVNCX0RFVklDRShURUxJVF9WRU5ET1JfSUQsIFRFTElUX1BST0RVQ1Rf REU5MTBfRFVBTCkgfSwNCisJeyBVU0JfREVWSUNFKFRFTElUX1ZFTkRPUl9JRCwgVEVMSVRfUFJP RFVDVF9MRTkyMCksDQorCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJnRlbGl0X2xl OTIwX2JsYWNrbGlzdCB9LA0KIAl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFpURV9W RU5ET1JfSUQsIFpURV9QUk9EVUNUX01GNjIyLCAweGZmLCAweGZmLCAweGZmKSB9LCAvKiBaVEUg V0NETUEgcHJvZHVjdHMgKi8NCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVf VkVORE9SX0lELCAweDAwMDIsIDB4ZmYsIDB4ZmYsIDB4ZmYpLA0KIAkJLmRyaXZlcl9pbmZvID0g KGtlcm5lbF91bG9uZ190KSZuZXRfaW50ZjFfYmxhY2tsaXN0IH0sDQpAQCAtMTMxOCw2ICsxMzMw LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG9wdGlvbl9pZHNbXSA9IHsN CiAJeyBVU0JfREVWSUNFKFBFVEFURUxfVkVORE9SX0lELCBQRVRBVEVMX1BST0RVQ1RfTlAxMFQp IH0sDQogCXsgVVNCX0RFVklDRShUUExJTktfVkVORE9SX0lELCBUUExJTktfUFJPRFVDVF9NQTE4 MCksDQogCSAgLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZuZXRfaW50ZjRfYmxhY2ts aXN0IH0sDQorCXsgVVNCX0RFVklDRShDSEFOR0hPTkdfVkVORE9SX0lELCBDSEFOR0hPTkdfUFJP RFVDVF9DSDY5MCkgfSwNCiAJeyB9IC8qIFRlcm1pbmF0aW5nIGVudHJ5ICovDQogfTsNCiBNT0RV TEVfREVWSUNFX1RBQkxFKHVzYiwgb3B0aW9uX2lkcyk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91 c2Ivc2VyaWFsL3Fjc2VyaWFsLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvcWNzZXJpYWwuYw0KaW5k ZXggNjYzNDQ3Ny4uMTRjNGE4MiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9xY3Nl cmlhbC5jDQorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvcWNzZXJpYWwuYw0KQEAgLTU1LDYgKzU1 LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlW10gPSB7DQog CXtERVZJQ0VfRzFLKDB4MDVjNiwgMHg5MjIxKX0sCS8qIEdlbmVyaWMgR29iaSBRREwgZGV2aWNl ICovDQogCXtERVZJQ0VfRzFLKDB4MDVjNiwgMHg5MjMxKX0sCS8qIEdlbmVyaWMgR29iaSBRREwg ZGV2aWNlICovDQogCXtERVZJQ0VfRzFLKDB4MWY0NSwgMHgwMDAxKX0sCS8qIFVua25vd24gR29i aSBRREwgZGV2aWNlICovDQorCXtERVZJQ0VfRzFLKDB4MWJjNywgMHg5MDBlKX0sCS8qIFRlbGl0 IEdvYmkgUURMIGRldmljZSAqLw0KIA0KIAkvKiBHb2JpIDIwMDAgZGV2aWNlcyAqLw0KIAl7VVNC X0RFVklDRSgweDE0MTAsIDB4YTAxMCl9LAkvKiBOb3ZhdGVsIEdvYmkgMjAwMCBRREwgZGV2aWNl ICovDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc3RvcmFnZS9pbml0aWFsaXplcnMuYyBiL2Ry aXZlcnMvdXNiL3N0b3JhZ2UvaW5pdGlhbGl6ZXJzLmMNCmluZGV4IDEwNWQ5MDAuLjE2YjBiZjAg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9zdG9yYWdlL2luaXRpYWxpemVycy5jDQorKysgYi9k cml2ZXJzL3VzYi9zdG9yYWdlL2luaXRpYWxpemVycy5jDQpAQCAtOTIsOCArOTIsOCBAQCBpbnQg dXNiX3N0b3JfdWNyNjFzMmJfaW5pdChzdHJ1Y3QgdXNfZGF0YSAqdXMpDQogCXJldHVybiAwOw0K IH0NCiANCi0vKiBUaGlzIHBsYWNlcyB0aGUgSFVBV0VJIEUyMjAgZGV2aWNlcyBpbiBtdWx0aS1w b3J0IG1vZGUgKi8NCi1pbnQgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdChzdHJ1Y3QgdXNfZGF0 YSAqdXMpDQorLyogVGhpcyBwbGFjZXMgdGhlIEhVQVdFSSB1c2IgZG9uZ2xlcyBpbiBtdWx0aS1w b3J0IG1vZGUgKi8NCitzdGF0aWMgaW50IHVzYl9zdG9yX2h1YXdlaV9mZWF0dXJlX2luaXQoc3Ry dWN0IHVzX2RhdGEgKnVzKQ0KIHsNCiAJaW50IHJlc3VsdDsNCiANCkBAIC0xMDQsMyArMTA0LDc1 IEBAIGludCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0KHN0cnVjdCB1c19kYXRhICp1cykNCiAJ VVNfREVCVUdQKCJIdWF3ZWkgbW9kZSBzZXQgcmVzdWx0IGlzICVkXG4iLCByZXN1bHQpOw0KIAly ZXR1cm4gMDsNCiB9DQorDQorLyoNCisgKiBJdCB3aWxsIHNlbmQgYSBzY3NpIHN3aXRjaCBjb21t YW5kIGNhbGxlZCByZXdpbmQnIHRvIGh1YXdlaSBkb25nbGUuDQorICogV2hlbiB0aGUgZG9uZ2xl IHJlY2VpdmVzIHRoaXMgY29tbWFuZCBhdCB0aGUgZmlyc3QgdGltZSwNCisgKiBpdCB3aWxsIHJl Ym9vdCBpbW1lZGlhdGVseS4gQWZ0ZXIgcmVib290ZWQsIGl0IHdpbGwgaWdub3JlIHRoaXMgY29t bWFuZC4NCisgKiBTbyBpdCBpcyAgdW5uZWNlc3NhcnkgdG8gcmVhZCBpdHMgcmVzcG9uc2UuDQor ICovDQorc3RhdGljIGludCB1c2Jfc3Rvcl9odWF3ZWlfc2NzaV9pbml0KHN0cnVjdCB1c19kYXRh ICp1cykNCit7DQorCWludCByZXN1bHQgPSAwOw0KKwlpbnQgYWN0X2xlbiA9IDA7DQorCXN0cnVj dCBidWxrX2NiX3dyYXAgKmJjYncgPSAoc3RydWN0IGJ1bGtfY2Jfd3JhcCAqKSB1cy0+aW9idWY7 DQorCWNoYXIgcmV3aW5kX2NtZFtdID0gezB4MTEsIDB4MDYsIDB4MjAsIDB4MDAsIDB4MDAsIDB4 MDEsIDB4MDEsIDB4MDAsDQorCQkJMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMH07DQorDQorCWJjYnctPlNpZ25hdHVyZSA9IGNwdV90b19sZTMyKFVTX0JVTEtf Q0JfU0lHTik7DQorCWJjYnctPlRhZyA9IDA7DQorCWJjYnctPkRhdGFUcmFuc2Zlckxlbmd0aCA9 IDA7DQorCWJjYnctPkZsYWdzID0gYmNidy0+THVuID0gMDsNCisJYmNidy0+TGVuZ3RoID0gc2l6 ZW9mKHJld2luZF9jbWQpOw0KKwltZW1zZXQoYmNidy0+Q0RCLCAwLCBzaXplb2YoYmNidy0+Q0RC KSk7DQorCW1lbWNweShiY2J3LT5DREIsIHJld2luZF9jbWQsIHNpemVvZihyZXdpbmRfY21kKSk7 DQorDQorCXJlc3VsdCA9IHVzYl9zdG9yX2J1bGtfdHJhbnNmZXJfYnVmKHVzLCB1cy0+c2VuZF9i dWxrX3BpcGUsIGJjYncsDQorCQkJCQlVU19CVUxLX0NCX1dSQVBfTEVOLCAmYWN0X2xlbik7DQor CVVTX0RFQlVHUCgidHJhbnNmZXIgYWN0dWFsIGxlbmd0aD0lZCwgcmVzdWx0PSVkXG4iLCBhY3Rf bGVuLCByZXN1bHQpOw0KKwlyZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKg0KKyAqIEl0IHRyaWVz IHRvIGZpbmQgdGhlIHN1cHBvcnRlZCBIdWF3ZWkgVVNCIGRvbmdsZXMuDQorICogSW4gSHVhd2Vp LCB0aGV5IGFzc2lnbiB0aGUgZm9sbG93aW5nIHByb2R1Y3QgSURzDQorICogZm9yIGFsbCBvZiB0 aGVpciBtb2JpbGUgYnJvYWRiYW5kIGRvbmdsZXMsDQorICogaW5jbHVkaW5nIHRoZSBuZXcgZG9u Z2xlcyBpbiB0aGUgZnV0dXJlLg0KKyAqIFNvIGlmIHRoZSBwcm9kdWN0IElEIGlzIG5vdCBpbmNs dWRlZCBpbiB0aGlzIGxpc3QsDQorICogaXQgbWVhbnMgaXQgaXMgbm90IEh1YXdlaSdzIG1vYmls ZSBicm9hZGJhbmQgZG9uZ2xlcy4NCisgKi8NCitzdGF0aWMgaW50IHVzYl9zdG9yX2h1YXdlaV9k b25nbGVzX3BpZChzdHJ1Y3QgdXNfZGF0YSAqdXMpDQorew0KKwlzdHJ1Y3QgdXNiX2ludGVyZmFj ZV9kZXNjcmlwdG9yICppZGVzYzsNCisJaW50IGlkUHJvZHVjdDsNCisNCisJaWRlc2MgPSAmdXMt PnB1c2JfaW50Zi0+Y3VyX2FsdHNldHRpbmctPmRlc2M7DQorCWlkUHJvZHVjdCA9IHVzLT5wdXNi X2Rldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3Q7DQorCS8qIFRoZSBmaXJzdCBwb3J0IGlzIENEUk9N LA0KKwkgKiBtZWFucyB0aGUgZG9uZ2xlIGluIHRoZSBzaW5nbGUgcG9ydCBtb2RlLA0KKwkgKiBh bmQgYSBzd2l0Y2ggY29tbWFuZCBpcyByZXF1aXJlZCB0byBiZSBzZW50LiAqLw0KKwlpZiAoaWRl c2MgJiYgaWRlc2MtPmJJbnRlcmZhY2VOdW1iZXIgPT0gMCkgew0KKwkJaWYgKChpZFByb2R1Y3Qg PT0gMHgxMDAxKQ0KKwkJCXx8IChpZFByb2R1Y3QgPT0gMHgxMDAzKQ0KKwkJCXx8IChpZFByb2R1 Y3QgPT0gMHgxMDA0KQ0KKwkJCXx8IChpZFByb2R1Y3QgPj0gMHgxNDAxICYmIGlkUHJvZHVjdCA8 PSAweDE1MDApDQorCQkJfHwgKGlkUHJvZHVjdCA+PSAweDE1MDUgJiYgaWRQcm9kdWN0IDw9IDB4 MTYwMCkNCisJCQl8fCAoaWRQcm9kdWN0ID49IDB4MWMwMiAmJiBpZFByb2R1Y3QgPD0gMHgyMjAy KSkgew0KKwkJCXJldHVybiAxOw0KKwkJfQ0KKwl9DQorCXJldHVybiAwOw0KK30NCisNCitpbnQg dXNiX3N0b3JfaHVhd2VpX2luaXQoc3RydWN0IHVzX2RhdGEgKnVzKQ0KK3sNCisJaW50IHJlc3Vs dCA9IDA7DQorDQorCWlmICh1c2Jfc3Rvcl9odWF3ZWlfZG9uZ2xlc19waWQodXMpKSB7DQorCQlp ZiAodXMtPnB1c2JfZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCA+PSAweDE0NDYpDQorCQkJcmVz dWx0ID0gdXNiX3N0b3JfaHVhd2VpX3Njc2lfaW5pdCh1cyk7DQorCQllbHNlDQorCQkJcmVzdWx0 ID0gdXNiX3N0b3JfaHVhd2VpX2ZlYXR1cmVfaW5pdCh1cyk7DQorCX0NCisJcmV0dXJuIHJlc3Vs dDsNCit9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc3RvcmFnZS9pbml0aWFsaXplcnMuaCBi L2RyaXZlcnMvdXNiL3N0b3JhZ2UvaW5pdGlhbGl6ZXJzLmgNCmluZGV4IDUyOTMyN2YuLjUzNzZk NGYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9zdG9yYWdlL2luaXRpYWxpemVycy5oDQorKysg Yi9kcml2ZXJzL3VzYi9zdG9yYWdlL2luaXRpYWxpemVycy5oDQpAQCAtNDYsNSArNDYsNSBAQCBp bnQgdXNiX3N0b3JfZXVzY3NpX2luaXQoc3RydWN0IHVzX2RhdGEgKnVzKTsNCiAgKiBmbGFzaCBy ZWFkZXIgKi8NCiBpbnQgdXNiX3N0b3JfdWNyNjFzMmJfaW5pdChzdHJ1Y3QgdXNfZGF0YSAqdXMp Ow0KIA0KLS8qIFRoaXMgcGxhY2VzIHRoZSBIVUFXRUkgRTIyMCBkZXZpY2VzIGluIG11bHRpLXBv cnQgbW9kZSAqLw0KLWludCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0KHN0cnVjdCB1c19kYXRh ICp1cyk7DQorLyogVGhpcyBwbGFjZXMgdGhlIEhVQVdFSSB1c2IgZG9uZ2xlcyBpbiBtdWx0aS1w b3J0IG1vZGUgKi8NCitpbnQgdXNiX3N0b3JfaHVhd2VpX2luaXQoc3RydWN0IHVzX2RhdGEgKnVz KTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zdG9yYWdlL3VudXN1YWxfZGV2cy5oIGIvZHJp dmVycy91c2Ivc3RvcmFnZS91bnVzdWFsX2RldnMuaA0KaW5kZXggZmE4YTFiMi4uMTI2NDBlZiAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvdW51c3VhbF9kZXZzLmgNCisrKyBiL2Ry aXZlcnMvdXNiL3N0b3JhZ2UvdW51c3VhbF9kZXZzLmgNCkBAIC0xNTE1LDMzNSArMTUxNSwxMCBA QCBVTlVTVUFMX0RFViggIDB4MTIxMCwgMHgwMDAzLCAweDAxMDAsIDB4MDEwMCwNCiAvKiBSZXBv cnRlZCBieSBmYW5neGlhb3poaSA8aHVhbmFuaHVAaHVhd2VpLmNvbT4NCiAgKiBUaGlzIGJyaW5n cyB0aGUgSFVBV0VJIGRhdGEgY2FyZCBkZXZpY2VzIGludG8gbXVsdGktcG9ydCBtb2RlDQogICov DQotVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTAwMSwgMHgwMDAwLCAweDAwMDAsDQorVU5VU1VB TF9WRU5ET1JfSU5URigweDEyZDEsIDB4MDgsIDB4MDYsIDB4NTAsDQogCQkiSFVBV0VJIE1PQklM RSIsDQogCQkiTWFzcyBTdG9yYWdlIiwNCi0JCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0Us IHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQotCQkwKSwNCi1VTlVTVUFMX0RFViggIDB4MTJk MSwgMHgxMDAzLCAweDAwMDAsIDB4MDAwMCwNCi0JCSJIVUFXRUkgTU9CSUxFIiwNCi0JCSJNYXNz IFN0b3JhZ2UiLA0KLQkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVh d2VpX2UyMjBfaW5pdCwNCi0JCTApLA0KLVVOVVNVQUxfREVWKCAgMHgxMmQxLCAweDEwMDQsIDB4 MDAwMCwgMHgwMDAwLA0KLQkJIkhVQVdFSSBNT0JJTEUiLA0KLQkJIk1hc3MgU3RvcmFnZSIsDQot CQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0 LA0KLQkJMCksDQotVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQwMSwgMHgwMDAwLCAweDAwMDAs DQotCQkiSFVBV0VJIE1PQklMRSIsDQotCQkiTWFzcyBTdG9yYWdlIiwNCi0JCVVTQl9TQ19ERVZJ Q0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQotCQkwKSwNCi1V TlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDAyLCAweDAwMDAsIDB4MDAwMCwNCi0JCSJIVUFXRUkg TU9CSUxFIiwNCi0JCSJNYXNzIFN0b3JhZ2UiLA0KLQkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RF VklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCi0JCTApLA0KLVVOVVNVQUxfREVWKCAg MHgxMmQxLCAweDE0MDMsIDB4MDAwMCwgMHgwMDAwLA0KLQkJIkhVQVdFSSBNT0JJTEUiLA0KLQkJ Ik1hc3MgU3RvcmFnZSIsDQotCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rv cl9odWF3ZWlfZTIyMF9pbml0LA0KLQkJMCksDQotVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQw NCwgMHgwMDAwLCAweDAwMDAsDQotCQkiSFVBV0VJIE1PQklMRSIsDQotCQkiTWFzcyBTdG9yYWdl IiwNCi0JCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIw X2luaXQsDQotCQkwKSwNCi1VTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDA1LCAweDAwMDAsIDB4 MDAwMCwNCi0JCSJIVUFXRUkgTU9CSUxFIiwNCi0JCSJNYXNzIFN0b3JhZ2UiLA0KLQkJVVNCX1ND X0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCi0JCTAp LA0KLVVOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MDYsIDB4MDAwMCwgMHgwMDAwLA0KLQkJIkhV QVdFSSBNT0JJTEUiLA0KLQkJIk1hc3MgU3RvcmFnZSIsDQotCQlVU0JfU0NfREVWSUNFLCBVU0Jf UFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KLQkJMCksDQotVU5VU1VBTF9E RVYoICAweDEyZDEsIDB4MTQwNywgMHgwMDAwLCAweDAwMDAsDQotCQkiSFVBV0VJIE1PQklMRSIs DQotCQkiTWFzcyBTdG9yYWdlIiwNCi0JCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVz Yl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQotCQkwKSwNCi1VTlVTVUFMX0RFViggIDB4MTJkMSwg MHgxNDA4LCAweDAwMDAsIDB4MDAwMCwNCi0JCSJIVUFXRUkgTU9CSUxFIiwNCi0JCSJNYXNzIFN0 b3JhZ2UiLA0KLQkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2Vp X2UyMjBfaW5pdCwNCi0JCTApLA0KLVVOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MDksIDB4MDAw MCwgMHgwMDAwLA0KLQkJIkhVQVdFSSBNT0JJTEUiLA0KLQkJIk1hc3MgU3RvcmFnZSIsDQotCQlV U0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0K LQkJMCksDQotVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQwQSwgMHgwMDAwLCAweDAwMDAsDQot CQkiSFVBV0VJIE1PQklMRSIsDQotCQkiTWFzcyBTdG9yYWdlIiwNCi0JCVVTQl9TQ19ERVZJQ0Us IFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQotCQkwKSwNCi1VTlVT VUFMX0RFViggIDB4MTJkMSwgMHgxNDBCLCAweDAwMDAsIDB4MDAwMCwNCi0JCSJIVUFXRUkgTU9C SUxFIiwNCi0JCSJNYXNzIFN0b3JhZ2UiLA0KLQkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklD RSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCi0JCTApLA0KLVVOVVNVQUxfREVWKCAgMHgx MmQxLCAweDE0MEMsIDB4MDAwMCwgMHgwMDAwLA0KLQkJIkhVQVdFSSBNT0JJTEUiLA0KLQkJIk1h c3MgU3RvcmFnZSIsDQotCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9o dWF3ZWlfZTIyMF9pbml0LA0KLQkJMCksDQotVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQwRCwg MHgwMDAwLCAweDAwMDAsDQotCQkiSFVBV0VJIE1PQklMRSIsDQotCQkiTWFzcyBTdG9yYWdlIiwN Ci0JCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2lu aXQsDQotCQkwKSwNCi1VTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDBFLCAweDAwMDAsIDB4MDAw MCwNCi0JCSJIVUFXRUkgTU9CSUxFIiwNCi0JCSJNYXNzIFN0b3JhZ2UiLA0KLQkJVVNCX1NDX0RF VklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCi0JCTApLA0K LVVOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MEYsIDB4MDAwMCwgMHgwMDAwLA0KLQkJIkhVQVdF SSBNT0JJTEUiLA0KLQkJIk1hc3MgU3RvcmFnZSIsDQotCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJf REVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KLQkJMCksDQotVU5VU1VBTF9ERVYo ICAweDEyZDEsIDB4MTQxMCwgMHgwMDAwLCAweDAwMDAsDQotCQkiSFVBV0VJIE1PQklMRSIsDQot CQkiTWFzcyBTdG9yYWdlIiwNCi0JCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9z dG9yX2h1YXdlaV9lMjIwX2luaXQsDQotCQkwKSwNCi1VTlVTVUFMX0RFViggIDB4MTJkMSwgMHgx NDExLCAweDAwMDAsIDB4MDAwMCwNCi0JCSJIVUFXRUkgTU9CSUxFIiwNCi0JCSJNYXNzIFN0b3Jh Z2UiLA0KLQkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2Uy MjBfaW5pdCwNCi0JCTApLA0KLVVOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MTIsIDB4MDAwMCwg MHgwMDAwLA0KLQkJIkhVQVdFSSBNT0JJTEUiLA0KLQkJIk1hc3MgU3RvcmFnZSIsDQotCQlVU0Jf U0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KLQkJ MCksDQotVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQxMywgMHgwMDAwLCAweDAwMDAsDQotCQki SFVBV0VJIE1PQklMRSIsDQotCQkiTWFzcyBTdG9yYWdlIiwNCi0JCVVTQl9TQ19ERVZJQ0UsIFVT Ql9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQotCQkwKSwNCi1VTlVTVUFM X0RFViggIDB4MTJkMSwgMHgxNDE0LCAweDAwMDAsIDB4MDAwMCwNCi0JCSJIVUFXRUkgTU9CSUxF IiwNCi0JCSJNYXNzIFN0b3JhZ2UiLA0KLQkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwg dXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCi0JCTApLA0KLVVOVVNVQUxfREVWKCAgMHgxMmQx LCAweDE0MTUsIDB4MDAwMCwgMHgwMDAwLA0KLQkJIkhVQVdFSSBNT0JJTEUiLA0KLQkJIk1hc3Mg U3RvcmFnZSIsDQotCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3 ZWlfZTIyMF9pbml0LA0KLQkJMCksDQotVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQxNiwgMHgw MDAwLCAweDAwMDAsDQotCQkiSFVBV0VJIE1PQklMRSIsDQotCQkiTWFzcyBTdG9yYWdlIiwNCi0J CVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQs DQotCQkwKSwNCi1VTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDE3LCAweDAwMDAsIDB4MDAwMCwN Ci0JCSJIVUFXRUkgTU9CSUxFIiwNCi0JCSJNYXNzIFN0b3JhZ2UiLA0KLQkJVVNCX1NDX0RFVklD RSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCi0JCTApLA0KLVVO VVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MTgsIDB4MDAwMCwgMHgwMDAwLA0KLQkJIkhVQVdFSSBN T0JJTEUiLA0KLQkJIk1hc3MgU3RvcmFnZSIsDQotCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVW SUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KLQkJMCksDQotVU5VU1VBTF9ERVYoICAw eDEyZDEsIDB4MTQxOSwgMHgwMDAwLCAweDAwMDAsDQotCQkiSFVBV0VJIE1PQklMRSIsDQotCQki TWFzcyBTdG9yYWdlIiwNCi0JCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9y X2h1YXdlaV9lMjIwX2luaXQsDQotCQkwKSwNCi1VTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDFB LCAweDAwMDAsIDB4MDAwMCwNCi0JCSJIVUFXRUkgTU9CSUxFIiwNCi0JCSJNYXNzIFN0b3JhZ2Ui LA0KLQkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBf aW5pdCwNCi0JCTApLA0KLVVOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MUIsIDB4MDAwMCwgMHgw MDAwLA0KLQkJIkhVQVdFSSBNT0JJTEUiLA0KLQkJIk1hc3MgU3RvcmFnZSIsDQotCQlVU0JfU0Nf REVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KLQkJMCks DQotVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQxQywgMHgwMDAwLCAweDAwMDAsDQotCQkiSFVB V0VJIE1PQklMRSIsDQotCQkiTWFzcyBTdG9yYWdlIiwNCi0JCVVTQl9TQ19ERVZJQ0UsIFVTQl9Q Ul9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQotCQkwKSwNCi1VTlVTVUFMX0RF ViggIDB4MTJkMSwgMHgxNDFELCAweDAwMDAsIDB4MDAwMCwNCi0JCSJIVUFXRUkgTU9CSUxFIiwN Ci0JCSJNYXNzIFN0b3JhZ2UiLA0KLQkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNi X3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCi0JCTApLA0KLVVOVVNVQUxfREVWKCAgMHgxMmQxLCAw eDE0MUUsIDB4MDAwMCwgMHgwMDAwLA0KLQkJIkhVQVdFSSBNT0JJTEUiLA0KLQkJIk1hc3MgU3Rv cmFnZSIsDQotCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlf ZTIyMF9pbml0LA0KLQkJMCksDQotVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQxRiwgMHgwMDAw LCAweDAwMDAsDQotCQkiSFVBV0VJIE1PQklMRSIsDQotCQkiTWFzcyBTdG9yYWdlIiwNCi0JCVVT Ql9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQot CQkwKSwNCi1VTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDIwLCAweDAwMDAsIDB4MDAwMCwNCi0J CSJIVUFXRUkgTU9CSUxFIiwNCi0JCSJNYXNzIFN0b3JhZ2UiLA0KLQkJVVNCX1NDX0RFVklDRSwg VVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCi0JCTApLA0KLVVOVVNV QUxfREVWKCAgMHgxMmQxLCAweDE0MjEsIDB4MDAwMCwgMHgwMDAwLA0KLQkJIkhVQVdFSSBNT0JJ TEUiLA0KLQkJIk1hc3MgU3RvcmFnZSIsDQotCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNF LCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KLQkJMCksDQotVU5VU1VBTF9ERVYoICAweDEy ZDEsIDB4MTQyMiwgMHgwMDAwLCAweDAwMDAsDQotCQkiSFVBV0VJIE1PQklMRSIsDQotCQkiTWFz cyBTdG9yYWdlIiwNCi0JCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1 YXdlaV9lMjIwX2luaXQsDQotCQkwKSwNCi1VTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDIzLCAw eDAwMDAsIDB4MDAwMCwNCi0JCSJIVUFXRUkgTU9CSUxFIiwNCi0JCSJNYXNzIFN0b3JhZ2UiLA0K LQkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5p dCwNCi0JCTApLA0KLVVOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MjQsIDB4MDAwMCwgMHgwMDAw LA0KLQkJIkhVQVdFSSBNT0JJTEUiLA0KLQkJIk1hc3MgU3RvcmFnZSIsDQotCQlVU0JfU0NfREVW SUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KLQkJMCksDQot VU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQyNSwgMHgwMDAwLCAweDAwMDAsDQotCQkiSFVBV0VJ IE1PQklMRSIsDQotCQkiTWFzcyBTdG9yYWdlIiwNCi0JCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9E RVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQotCQkwKSwNCi1VTlVTVUFMX0RFVigg IDB4MTJkMSwgMHgxNDI2LCAweDAwMDAsIDB4MDAwMCwNCi0JCSJIVUFXRUkgTU9CSUxFIiwNCi0J CSJNYXNzIFN0b3JhZ2UiLA0KLQkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0 b3JfaHVhd2VpX2UyMjBfaW5pdCwNCi0JCTApLA0KLVVOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0 MjcsIDB4MDAwMCwgMHgwMDAwLA0KLQkJIkhVQVdFSSBNT0JJTEUiLA0KLQkJIk1hc3MgU3RvcmFn ZSIsDQotCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIy MF9pbml0LA0KLQkJMCksDQotVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQyOCwgMHgwMDAwLCAw eDAwMDAsDQotCQkiSFVBV0VJIE1PQklMRSIsDQotCQkiTWFzcyBTdG9yYWdlIiwNCi0JCVVTQl9T Q19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQotCQkw KSwNCi1VTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDI5LCAweDAwMDAsIDB4MDAwMCwNCi0JCSJI VUFXRUkgTU9CSUxFIiwNCi0JCSJNYXNzIFN0b3JhZ2UiLA0KLQkJVVNCX1NDX0RFVklDRSwgVVNC X1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCi0JCTApLA0KLVVOVVNVQUxf REVWKCAgMHgxMmQxLCAweDE0MkEsIDB4MDAwMCwgMHgwMDAwLA0KLQkJIkhVQVdFSSBNT0JJTEUi LA0KLQkJIk1hc3MgU3RvcmFnZSIsDQotCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1 c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KLQkJMCksDQotVU5VU1VBTF9ERVYoICAweDEyZDEs IDB4MTQyQiwgMHgwMDAwLCAweDAwMDAsDQotCQkiSFVBV0VJIE1PQklMRSIsDQotCQkiTWFzcyBT dG9yYWdlIiwNCi0JCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdl aV9lMjIwX2luaXQsDQotCQkwKSwNCi1VTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDJDLCAweDAw MDAsIDB4MDAwMCwNCi0JCSJIVUFXRUkgTU9CSUxFIiwNCi0JCSJNYXNzIFN0b3JhZ2UiLA0KLQkJ VVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwN Ci0JCTApLA0KLVVOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MkQsIDB4MDAwMCwgMHgwMDAwLA0K LQkJIkhVQVdFSSBNT0JJTEUiLA0KLQkJIk1hc3MgU3RvcmFnZSIsDQotCQlVU0JfU0NfREVWSUNF LCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KLQkJMCksDQotVU5V U1VBTF9ERVYoICAweDEyZDEsIDB4MTQyRSwgMHgwMDAwLCAweDAwMDAsDQotCQkiSFVBV0VJIE1P QklMRSIsDQotCQkiTWFzcyBTdG9yYWdlIiwNCi0JCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJ Q0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQotCQkwKSwNCi1VTlVTVUFMX0RFViggIDB4 MTJkMSwgMHgxNDJGLCAweDAwMDAsIDB4MDAwMCwNCi0JCSJIVUFXRUkgTU9CSUxFIiwNCi0JCSJN YXNzIFN0b3JhZ2UiLA0KLQkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3Jf aHVhd2VpX2UyMjBfaW5pdCwNCi0JCTApLA0KLVVOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MzAs IDB4MDAwMCwgMHgwMDAwLA0KLQkJIkhVQVdFSSBNT0JJTEUiLA0KLQkJIk1hc3MgU3RvcmFnZSIs DQotCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9p bml0LA0KLQkJMCksDQotVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQzMSwgMHgwMDAwLCAweDAw MDAsDQotCQkiSFVBV0VJIE1PQklMRSIsDQotCQkiTWFzcyBTdG9yYWdlIiwNCi0JCVVTQl9TQ19E RVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQotCQkwKSwN Ci1VTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDMyLCAweDAwMDAsIDB4MDAwMCwNCi0JCSJIVUFX RUkgTU9CSUxFIiwNCi0JCSJNYXNzIFN0b3JhZ2UiLA0KLQkJVVNCX1NDX0RFVklDRSwgVVNCX1BS X0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCi0JCTApLA0KLVVOVVNVQUxfREVW KCAgMHgxMmQxLCAweDE0MzMsIDB4MDAwMCwgMHgwMDAwLA0KLQkJIkhVQVdFSSBNT0JJTEUiLA0K LQkJIk1hc3MgU3RvcmFnZSIsDQotCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jf c3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KLQkJMCksDQotVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4 MTQzNCwgMHgwMDAwLCAweDAwMDAsDQotCQkiSFVBV0VJIE1PQklMRSIsDQotCQkiTWFzcyBTdG9y YWdlIiwNCi0JCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9l MjIwX2luaXQsDQotCQkwKSwNCi1VTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDM1LCAweDAwMDAs IDB4MDAwMCwNCi0JCSJIVUFXRUkgTU9CSUxFIiwNCi0JCSJNYXNzIFN0b3JhZ2UiLA0KLQkJVVNC X1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCi0J CTApLA0KLVVOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MzYsIDB4MDAwMCwgMHgwMDAwLA0KLQkJ IkhVQVdFSSBNT0JJTEUiLA0KLQkJIk1hc3MgU3RvcmFnZSIsDQotCQlVU0JfU0NfREVWSUNFLCBV U0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KLQkJMCksDQotVU5VU1VB TF9ERVYoICAweDEyZDEsIDB4MTQzNywgMHgwMDAwLCAweDAwMDAsDQotCQkiSFVBV0VJIE1PQklM RSIsDQotCQkiTWFzcyBTdG9yYWdlIiwNCi0JCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0Us IHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQotCQkwKSwNCi1VTlVTVUFMX0RFViggIDB4MTJk MSwgMHgxNDM4LCAweDAwMDAsIDB4MDAwMCwNCi0JCSJIVUFXRUkgTU9CSUxFIiwNCi0JCSJNYXNz IFN0b3JhZ2UiLA0KLQkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVh d2VpX2UyMjBfaW5pdCwNCi0JCTApLA0KLVVOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MzksIDB4 MDAwMCwgMHgwMDAwLA0KLQkJIkhVQVdFSSBNT0JJTEUiLA0KLQkJIk1hc3MgU3RvcmFnZSIsDQot CQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0 LA0KLQkJMCksDQotVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQzQSwgMHgwMDAwLCAweDAwMDAs DQotCQkiSFVBV0VJIE1PQklMRSIsDQotCQkiTWFzcyBTdG9yYWdlIiwNCi0JCVVTQl9TQ19ERVZJ Q0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQotCQkwKSwNCi1V TlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDNCLCAweDAwMDAsIDB4MDAwMCwNCi0JCSJIVUFXRUkg TU9CSUxFIiwNCi0JCSJNYXNzIFN0b3JhZ2UiLA0KLQkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RF VklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCi0JCTApLA0KLVVOVVNVQUxfREVWKCAg MHgxMmQxLCAweDE0M0MsIDB4MDAwMCwgMHgwMDAwLA0KLQkJIkhVQVdFSSBNT0JJTEUiLA0KLQkJ Ik1hc3MgU3RvcmFnZSIsDQotCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rv cl9odWF3ZWlfZTIyMF9pbml0LA0KLQkJMCksDQotVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQz RCwgMHgwMDAwLCAweDAwMDAsDQotCQkiSFVBV0VJIE1PQklMRSIsDQotCQkiTWFzcyBTdG9yYWdl IiwNCi0JCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIw X2luaXQsDQotCQkwKSwNCi1VTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDNFLCAweDAwMDAsIDB4 MDAwMCwNCi0JCSJIVUFXRUkgTU9CSUxFIiwNCi0JCSJNYXNzIFN0b3JhZ2UiLA0KLQkJVVNCX1ND X0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCi0JCTAp LA0KLVVOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0M0YsIDB4MDAwMCwgMHgwMDAwLA0KLQkJIkhV QVdFSSBNT0JJTEUiLA0KLQkJIk1hc3MgU3RvcmFnZSIsDQotCQlVU0JfU0NfREVWSUNFLCBVU0Jf UFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KKwkJVVNCX1NDX0RFVklDRSwg VVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2luaXQsDQogCQkwKSwNCiANCiAvKiBSZXBv cnRlZCBieSBWaWxpdXMgQmlsaW5rZXZpY2l1cyA8dmlsaXNhcyBBVCB4eHggRE9UIGx0KSAqLw0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvdXNiLmMgYi9kcml2ZXJzL3VzYi9zdG9y YWdlL3VzYi5jDQppbmRleCBkYjUxYmExLi5kNTgyYWY0IDEwMDY0NA0KLS0tIGEvZHJpdmVycy91 c2Ivc3RvcmFnZS91c2IuYw0KKysrIGIvZHJpdmVycy91c2Ivc3RvcmFnZS91c2IuYw0KQEAgLTEy MCw2ICsxMjAsMTcgQEAgTU9EVUxFX1BBUk1fREVTQyhxdWlya3MsICJzdXBwbGVtZW50YWwgbGlz dCBvZiBkZXZpY2UgSURzIGFuZCB0aGVpciBxdWlya3MiKTsNCiAJLnVzZVRyYW5zcG9ydCA9IHVz ZV90cmFuc3BvcnQsCVwNCiB9DQogDQorI2RlZmluZSBVTlVTVUFMX1ZFTkRPUl9JTlRGKGlkVmVu ZG9yLCBjbCwgc2MsIHByLCBcDQorCQl2ZW5kb3JfbmFtZSwgcHJvZHVjdF9uYW1lLCB1c2VfcHJv dG9jb2wsIHVzZV90cmFuc3BvcnQsIFwNCisJCWluaXRfZnVuY3Rpb24sIEZsYWdzKSBcDQoreyBc DQorCS52ZW5kb3JOYW1lID0gdmVuZG9yX25hbWUsCVwNCisJLnByb2R1Y3ROYW1lID0gcHJvZHVj dF9uYW1lLAlcDQorCS51c2VQcm90b2NvbCA9IHVzZV9wcm90b2NvbCwJXA0KKwkudXNlVHJhbnNw b3J0ID0gdXNlX3RyYW5zcG9ydCwJXA0KKwkuaW5pdEZ1bmN0aW9uID0gaW5pdF9mdW5jdGlvbiwJ XA0KK30NCisNCiBzdGF0aWMgc3RydWN0IHVzX3VudXN1YWxfZGV2IHVzX3VudXN1YWxfZGV2X2xp c3RbXSA9IHsNCiAjCWluY2x1ZGUgInVudXN1YWxfZGV2cy5oIiANCiAJeyB9CQkvKiBUZXJtaW5h dGluZyBlbnRyeSAqLw0KQEAgLTEyOCw2ICsxMzksNyBAQCBzdGF0aWMgc3RydWN0IHVzX3VudXN1 YWxfZGV2IHVzX3VudXN1YWxfZGV2X2xpc3RbXSA9IHsNCiAjdW5kZWYgVU5VU1VBTF9ERVYNCiAj dW5kZWYgQ09NUExJQU5UX0RFVg0KICN1bmRlZiBVU1VBTF9ERVYNCisjdW5kZWYgVU5VU1VBTF9W RU5ET1JfSU5URg0KIA0KIA0KICNpZmRlZiBDT05GSUdfUE0JLyogTWluaW1hbCBzdXBwb3J0IGZv ciBzdXNwZW5kIGFuZCByZXN1bWUgKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zdG9yYWdl L3VzdWFsLXRhYmxlcy5jIGIvZHJpdmVycy91c2Ivc3RvcmFnZS91c3VhbC10YWJsZXMuYw0KaW5k ZXggYjk2OTI3OS4uYTliNWYyZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvdXN1 YWwtdGFibGVzLmMNCisrKyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2UvdXN1YWwtdGFibGVzLmMNCkBA IC00Niw2ICs0NiwyMCBAQA0KIHsgVVNCX0lOVEVSRkFDRV9JTkZPKFVTQl9DTEFTU19NQVNTX1NU T1JBR0UsIHVzZVByb3RvLCB1c2VUcmFucyksIFwNCiAgIC5kcml2ZXJfaW5mbyA9ICgodXNlVHlw ZSk8PDI0KSB9DQogDQorLyogRGVmaW5lIHRoZSBkZXZpY2UgaXMgbWF0Y2hlZCB3aXRoIFZlbmRv ciBJRCBhbmQgaW50ZXJmYWNlIGRlc2NyaXB0b3JzICovDQorI2RlZmluZSBVTlVTVUFMX1ZFTkRP Ul9JTlRGKGlkX3ZlbmRvciwgY2wsIHNjLCBwciwgXA0KKwkJCXZlbmRvck5hbWUsIHByb2R1Y3RO YW1lLCB1c2VQcm90b2NvbCwgdXNlVHJhbnNwb3J0LCBcDQorCQkJaW5pdEZ1bmN0aW9uLCBmbGFn cykgXA0KK3sgXA0KKwkubWF0Y2hfZmxhZ3MgPSBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZP IFwNCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX1ZFTkRPUiwgXA0KKwkuaWRWZW5kb3IgICAg PSAoaWRfdmVuZG9yKSwgXA0KKwkuYkludGVyZmFjZUNsYXNzID0gKGNsKSwgXA0KKwkuYkludGVy ZmFjZVN1YkNsYXNzID0gKHNjKSwgXA0KKwkuYkludGVyZmFjZVByb3RvY29sID0gKHByKSwgXA0K KwkuZHJpdmVyX2luZm8gPSAoZmxhZ3MpIFwNCit9DQorDQogc3RydWN0IHVzYl9kZXZpY2VfaWQg dXNiX3N0b3JhZ2VfdXNiX2lkc1tdID0gew0KICMJaW5jbHVkZSAidW51c3VhbF9kZXZzLmgiDQog CXsgfQkJLyogVGVybWluYXRpbmcgZW50cnkgKi8NCkBAIC01Nyw2ICs3MSw3IEBAIE1PRFVMRV9E RVZJQ0VfVEFCTEUodXNiLCB1c2Jfc3RvcmFnZV91c2JfaWRzKTsNCiAjdW5kZWYgVU5VU1VBTF9E RVYNCiAjdW5kZWYgQ09NUExJQU5UX0RFVg0KICN1bmRlZiBVU1VBTF9ERVYNCisjdW5kZWYgVU5V U1VBTF9WRU5ET1JfSU5URg0KIA0KIA0KIC8qDQpkaWZmIC0tZ2l0IGEvZnMvbmlsZnMyL2lvY3Rs LmMgYi9mcy9uaWxmczIvaW9jdGwuYw0KaW5kZXggYzU5OGNmYi4uMmI1ZTY5NSAxMDA2NDQNCi0t LSBhL2ZzL25pbGZzMi9pb2N0bC5jDQorKysgYi9mcy9uaWxmczIvaW9jdGwuYw0KQEAgLTY2NCw4 ICs2NjQsMTEgQEAgc3RhdGljIGludCBuaWxmc19pb2N0bF9jbGVhbl9zZWdtZW50cyhzdHJ1Y3Qg aW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCwNCiAJaWYgKHJldCA8IDApDQogCQlwcmlu dGsoS0VSTl9FUlIgIk5JTEZTOiBHQyBmYWlsZWQgZHVyaW5nIHByZXBhcmF0aW9uOiAiDQogCQkJ ImNhbm5vdCByZWFkIHNvdXJjZSBibG9ja3M6IGVycj0lZFxuIiwgcmV0KTsNCi0JZWxzZQ0KKwll bHNlIHsNCisJCWlmIChuaWxmc19zYl9uZWVkX3VwZGF0ZShuaWxmcykpDQorCQkJc2V0X25pbGZz X2Rpc2NvbnRpbnVlZChuaWxmcyk7DQogCQlyZXQgPSBuaWxmc19jbGVhbl9zZWdtZW50cyhpbm9k ZS0+aV9zYiwgYXJndiwga2J1ZnMpOw0KKwl9DQogDQogCW5pbGZzX3JlbW92ZV9hbGxfZ2Npbm9k ZXMobmlsZnMpOw0KIAljbGVhcl9uaWxmc19nY19ydW5uaW5nKG5pbGZzKTsNCmRpZmYgLS1naXQg YS9mcy9zcGxpY2UuYyBiL2ZzL3NwbGljZS5jDQppbmRleCAwMTRmY2I0Li41OGFiOTE4IDEwMDY0 NA0KLS0tIGEvZnMvc3BsaWNlLmMNCisrKyBiL2ZzL3NwbGljZS5jDQpAQCAtNjk3LDggKzY5Nywx MCBAQCBzdGF0aWMgaW50IHBpcGVfdG9fc2VuZHBhZ2Uoc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAq cGlwZSwNCiAJCXJldHVybiAtRUlOVkFMOw0KIA0KIAltb3JlID0gKHNkLT5mbGFncyAmIFNQTElD RV9GX01PUkUpID8gTVNHX01PUkUgOiAwOw0KLQlpZiAoc2QtPmxlbiA8IHNkLT50b3RhbF9sZW4p DQorDQorCWlmIChzZC0+bGVuIDwgc2QtPnRvdGFsX2xlbiAmJiBwaXBlLT5ucmJ1ZnMgPiAxKQ0K IAkJbW9yZSB8PSBNU0dfU0VORFBBR0VfTk9UTEFTVDsNCisNCiAJcmV0dXJuIGZpbGUtPmZfb3At PnNlbmRwYWdlKGZpbGUsIGJ1Zi0+cGFnZSwgYnVmLT5vZmZzZXQsDQogCQkJCSAgICBzZC0+bGVu LCAmcG9zLCBtb3JlKTsNCiB9DQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zY2hlZC5oIGIv aW5jbHVkZS9saW51eC9zY2hlZC5oDQppbmRleCAxZTg2YmI0Li44MjA0ODk4IDEwMDY0NA0KLS0t IGEvaW5jbHVkZS9saW51eC9zY2hlZC5oDQorKysgYi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgNCkBA IC0yNTk3LDcgKzI1OTcsMTYgQEAgc3RhdGljIGlubGluZSB2b2lkIHRocmVhZF9ncm91cF9jcHV0 aW1lX2luaXQoc3RydWN0IHNpZ25hbF9zdHJ1Y3QgKnNpZykNCiBleHRlcm4gdm9pZCByZWNhbGNf c2lncGVuZGluZ19hbmRfd2FrZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQpOw0KIGV4dGVybiB2b2lk IHJlY2FsY19zaWdwZW5kaW5nKHZvaWQpOw0KIA0KLWV4dGVybiB2b2lkIHNpZ25hbF93YWtlX3Vw KHN0cnVjdCB0YXNrX3N0cnVjdCAqdCwgaW50IHJlc3VtZV9zdG9wcGVkKTsNCitleHRlcm4gdm9p ZCBzaWduYWxfd2FrZV91cF9zdGF0ZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQsIHVuc2lnbmVkIGlu dCBzdGF0ZSk7DQorDQorc3RhdGljIGlubGluZSB2b2lkIHNpZ25hbF93YWtlX3VwKHN0cnVjdCB0 YXNrX3N0cnVjdCAqdCwgYm9vbCByZXN1bWUpDQorew0KKwlzaWduYWxfd2FrZV91cF9zdGF0ZSh0 LCByZXN1bWUgPyBUQVNLX1dBS0VLSUxMIDogMCk7DQorfQ0KK3N0YXRpYyBpbmxpbmUgdm9pZCBw dHJhY2Vfc2lnbmFsX3dha2VfdXAoc3RydWN0IHRhc2tfc3RydWN0ICp0LCBib29sIHJlc3VtZSkN Cit7DQorCXNpZ25hbF93YWtlX3VwX3N0YXRlKHQsIHJlc3VtZSA/IF9fVEFTS19UUkFDRUQgOiAw KTsNCit9DQogDQogLyoNCiAgKiBXcmFwcGVycyBmb3IgcC0+dGhyZWFkX2luZm8tPmNwdSBhY2Nl c3MuIE5vLW9wIG9uIFVQLg0KZGlmZiAtLWdpdCBhL2tlcm5lbC9wdHJhY2UuYyBiL2tlcm5lbC9w dHJhY2UuYw0KaW5kZXggNzhhYjI0YS4uNjdmZWRhZCAxMDA2NDQNCi0tLSBhL2tlcm5lbC9wdHJh Y2UuYw0KKysrIGIva2VybmVsL3B0cmFjZS5jDQpAQCAtMTE3LDExICsxMTcsNDUgQEAgdm9pZCBf X3B0cmFjZV91bmxpbmsoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkNCiAJICogVEFTS19LSUxM QUJMRSBzbGVlcHMuDQogCSAqLw0KIAlpZiAoY2hpbGQtPmpvYmN0bCAmIEpPQkNUTF9TVE9QX1BF TkRJTkcgfHwgdGFza19pc190cmFjZWQoY2hpbGQpKQ0KLQkJc2lnbmFsX3dha2VfdXAoY2hpbGQs IHRhc2tfaXNfdHJhY2VkKGNoaWxkKSk7DQorCQlwdHJhY2Vfc2lnbmFsX3dha2VfdXAoY2hpbGQs IHRydWUpOw0KIA0KIAlzcGluX3VubG9jaygmY2hpbGQtPnNpZ2hhbmQtPnNpZ2xvY2spOw0KIH0N CiANCisvKiBFbnN1cmUgdGhhdCBub3RoaW5nIGNhbiB3YWtlIGl0IHVwLCBldmVuIFNJR0tJTEwg Ki8NCitzdGF0aWMgYm9vbCBwdHJhY2VfZnJlZXplX3RyYWNlZChzdHJ1Y3QgdGFza19zdHJ1Y3Qg KnRhc2spDQorew0KKwlib29sIHJldCA9IGZhbHNlOw0KKw0KKwkvKiBMb2NrbGVzcywgbm9ib2R5 IGJ1dCB1cyBjYW4gc2V0IHRoaXMgZmxhZyAqLw0KKwlpZiAodGFzay0+am9iY3RsICYgSk9CQ1RM X0xJU1RFTklORykNCisJCXJldHVybiByZXQ7DQorDQorCXNwaW5fbG9ja19pcnEoJnRhc2stPnNp Z2hhbmQtPnNpZ2xvY2spOw0KKwlpZiAodGFza19pc190cmFjZWQodGFzaykgJiYgIV9fZmF0YWxf c2lnbmFsX3BlbmRpbmcodGFzaykpIHsNCisJCXRhc2stPnN0YXRlID0gX19UQVNLX1RSQUNFRDsN CisJCXJldCA9IHRydWU7DQorCX0NCisJc3Bpbl91bmxvY2tfaXJxKCZ0YXNrLT5zaWdoYW5kLT5z aWdsb2NrKTsNCisNCisJcmV0dXJuIHJldDsNCit9DQorDQorc3RhdGljIHZvaWQgcHRyYWNlX3Vu ZnJlZXplX3RyYWNlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spDQorew0KKwlpZiAodGFzay0+ c3RhdGUgIT0gX19UQVNLX1RSQUNFRCkNCisJCXJldHVybjsNCisNCisJV0FSTl9PTighdGFzay0+ cHRyYWNlIHx8IHRhc2stPnBhcmVudCAhPSBjdXJyZW50KTsNCisNCisJc3Bpbl9sb2NrX2lycSgm dGFzay0+c2lnaGFuZC0+c2lnbG9jayk7DQorCWlmIChfX2ZhdGFsX3NpZ25hbF9wZW5kaW5nKHRh c2spKQ0KKwkJd2FrZV91cF9zdGF0ZSh0YXNrLCBfX1RBU0tfVFJBQ0VEKTsNCisJZWxzZQ0KKwkJ dGFzay0+c3RhdGUgPSBUQVNLX1RSQUNFRDsNCisJc3Bpbl91bmxvY2tfaXJxKCZ0YXNrLT5zaWdo YW5kLT5zaWdsb2NrKTsNCit9DQorDQogLyoqDQogICogcHRyYWNlX2NoZWNrX2F0dGFjaCAtIGNo ZWNrIHdoZXRoZXIgcHRyYWNlZSBpcyByZWFkeSBmb3IgcHRyYWNlIG9wZXJhdGlvbg0KICAqIEBj aGlsZDogcHRyYWNlZSB0byBjaGVjayBmb3INCkBAIC0xNTEsMjQgKzE4NSwyOSBAQCBpbnQgcHRy YWNlX2NoZWNrX2F0dGFjaChzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLCBib29sIGlnbm9yZV9z dGF0ZSkNCiAJICogYmUgY2hhbmdlZCBieSB1cyBzbyBpdCdzIG5vdCBjaGFuZ2luZyByaWdodCBh ZnRlciB0aGlzLg0KIAkgKi8NCiAJcmVhZF9sb2NrKCZ0YXNrbGlzdF9sb2NrKTsNCi0JaWYgKChj aGlsZC0+cHRyYWNlICYgUFRfUFRSQUNFRCkgJiYgY2hpbGQtPnBhcmVudCA9PSBjdXJyZW50KSB7 DQorCWlmIChjaGlsZC0+cHRyYWNlICYmIGNoaWxkLT5wYXJlbnQgPT0gY3VycmVudCkgew0KKwkJ V0FSTl9PTihjaGlsZC0+c3RhdGUgPT0gX19UQVNLX1RSQUNFRCk7DQogCQkvKg0KIAkJICogY2hp bGQtPnNpZ2hhbmQgY2FuJ3QgYmUgTlVMTCwgcmVsZWFzZV90YXNrKCkNCiAJCSAqIGRvZXMgcHRy YWNlX3VubGluaygpIGJlZm9yZSBfX2V4aXRfc2lnbmFsKCkuDQogCQkgKi8NCi0JCXNwaW5fbG9j a19pcnEoJmNoaWxkLT5zaWdoYW5kLT5zaWdsb2NrKTsNCi0JCVdBUk5fT05fT05DRSh0YXNrX2lz X3N0b3BwZWQoY2hpbGQpKTsNCi0JCWlmIChpZ25vcmVfc3RhdGUgfHwgKHRhc2tfaXNfdHJhY2Vk KGNoaWxkKSAmJg0KLQkJCQkgICAgICEoY2hpbGQtPmpvYmN0bCAmIEpPQkNUTF9MSVNURU5JTkcp KSkNCisJCWlmIChpZ25vcmVfc3RhdGUgfHwgcHRyYWNlX2ZyZWV6ZV90cmFjZWQoY2hpbGQpKQ0K IAkJCXJldCA9IDA7DQotCQlzcGluX3VubG9ja19pcnEoJmNoaWxkLT5zaWdoYW5kLT5zaWdsb2Nr KTsNCiAJfQ0KIAlyZWFkX3VubG9jaygmdGFza2xpc3RfbG9jayk7DQogDQotCWlmICghcmV0ICYm ICFpZ25vcmVfc3RhdGUpDQotCQlyZXQgPSB3YWl0X3Rhc2tfaW5hY3RpdmUoY2hpbGQsIFRBU0tf VFJBQ0VEKSA/IDAgOiAtRVNSQ0g7DQorCWlmICghcmV0ICYmICFpZ25vcmVfc3RhdGUpIHsNCisJ CWlmICghd2FpdF90YXNrX2luYWN0aXZlKGNoaWxkLCBfX1RBU0tfVFJBQ0VEKSkgew0KKwkJCS8q DQorCQkJICogVGhpcyBjYW4gb25seSBoYXBwZW4gaWYgbWF5X3B0cmFjZV9zdG9wKCkgZmFpbHMg YW5kDQorCQkJICogcHRyYWNlX3N0b3AoKSBjaGFuZ2VzIC0+c3RhdGUgYmFjayB0byBUQVNLX1JV Tk5JTkcsDQorCQkJICogc28gd2Ugc2hvdWxkIG5vdCB3b3JyeSBhYm91dCBsZWFraW5nIF9fVEFT S19UUkFDRUQuDQorCQkJICovDQorCQkJV0FSTl9PTihjaGlsZC0+c3RhdGUgPT0gX19UQVNLX1RS QUNFRCk7DQorCQkJcmV0ID0gLUVTUkNIOw0KKwkJfQ0KKwl9DQogDQotCS8qIEFsbCBzeXN0ZW1z IGdvLi4gKi8NCiAJcmV0dXJuIHJldDsNCiB9DQogDQpAQCAtMzA3LDcgKzM0Niw3IEBAIHN0YXRp YyBpbnQgcHRyYWNlX2F0dGFjaChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIGxvbmcgcmVxdWVz dCwNCiAJICovDQogCWlmICh0YXNrX2lzX3N0b3BwZWQodGFzaykgJiYNCiAJICAgIHRhc2tfc2V0 X2pvYmN0bF9wZW5kaW5nKHRhc2ssIEpPQkNUTF9UUkFQX1NUT1AgfCBKT0JDVExfVFJBUFBJTkcp KQ0KLQkJc2lnbmFsX3dha2VfdXAodGFzaywgMSk7DQorCQlzaWduYWxfd2FrZV91cF9zdGF0ZSh0 YXNrLCBfX1RBU0tfU1RPUFBFRCk7DQogDQogCXNwaW5fdW5sb2NrKCZ0YXNrLT5zaWdoYW5kLT5z aWdsb2NrKTsNCiANCkBAIC03MzYsNyArNzc1LDcgQEAgaW50IHB0cmFjZV9yZXF1ZXN0KHN0cnVj dCB0YXNrX3N0cnVjdCAqY2hpbGQsIGxvbmcgcmVxdWVzdCwNCiAJCSAqIHRyYWNlZSBpbnRvIFNU T1AuDQogCQkgKi8NCiAJCWlmIChsaWtlbHkodGFza19zZXRfam9iY3RsX3BlbmRpbmcoY2hpbGQs IEpPQkNUTF9UUkFQX1NUT1ApKSkNCi0JCQlzaWduYWxfd2FrZV91cChjaGlsZCwgY2hpbGQtPmpv YmN0bCAmIEpPQkNUTF9MSVNURU5JTkcpOw0KKwkJCXB0cmFjZV9zaWduYWxfd2FrZV91cChjaGls ZCwgY2hpbGQtPmpvYmN0bCAmIEpPQkNUTF9MSVNURU5JTkcpOw0KIA0KIAkJdW5sb2NrX3Rhc2tf c2lnaGFuZChjaGlsZCwgJmZsYWdzKTsNCiAJCXJldCA9IDA7DQpAQCAtNzYyLDcgKzgwMSw3IEBA IGludCBwdHJhY2VfcmVxdWVzdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLCBsb25nIHJlcXVl c3QsDQogCQkJICogc3RhcnQgb2YgdGhpcyB0cmFwIGFuZCBub3cuICBUcmlnZ2VyIHJlLXRyYXAu DQogCQkJICovDQogCQkJaWYgKGNoaWxkLT5qb2JjdGwgJiBKT0JDVExfVFJBUF9OT1RJRlkpDQot CQkJCXNpZ25hbF93YWtlX3VwKGNoaWxkLCB0cnVlKTsNCisJCQkJcHRyYWNlX3NpZ25hbF93YWtl X3VwKGNoaWxkLCB0cnVlKTsNCiAJCQlyZXQgPSAwOw0KIAkJfQ0KIAkJdW5sb2NrX3Rhc2tfc2ln aGFuZChjaGlsZCwgJmZsYWdzKTsNCkBAIC04OTksNiArOTM4LDggQEAgU1lTQ0FMTF9ERUZJTkU0 KHB0cmFjZSwgbG9uZywgcmVxdWVzdCwgbG9uZywgcGlkLCB1bnNpZ25lZCBsb25nLCBhZGRyLA0K IAkJZ290byBvdXRfcHV0X3Rhc2tfc3RydWN0Ow0KIA0KIAlyZXQgPSBhcmNoX3B0cmFjZShjaGls ZCwgcmVxdWVzdCwgYWRkciwgZGF0YSk7DQorCWlmIChyZXQgfHwgcmVxdWVzdCAhPSBQVFJBQ0Vf REVUQUNIKQ0KKwkJcHRyYWNlX3VuZnJlZXplX3RyYWNlZChjaGlsZCk7DQogDQogIG91dF9wdXRf dGFza19zdHJ1Y3Q6DQogCXB1dF90YXNrX3N0cnVjdChjaGlsZCk7DQpAQCAtMTAzOCw4ICsxMDc5 LDExIEBAIGFzbWxpbmthZ2UgbG9uZyBjb21wYXRfc3lzX3B0cmFjZShjb21wYXRfbG9uZ190IHJl cXVlc3QsIGNvbXBhdF9sb25nX3QgcGlkLA0KIA0KIAlyZXQgPSBwdHJhY2VfY2hlY2tfYXR0YWNo KGNoaWxkLCByZXF1ZXN0ID09IFBUUkFDRV9LSUxMIHx8DQogCQkJCSAgcmVxdWVzdCA9PSBQVFJB Q0VfSU5URVJSVVBUKTsNCi0JaWYgKCFyZXQpDQorCWlmICghcmV0KSB7DQogCQlyZXQgPSBjb21w YXRfYXJjaF9wdHJhY2UoY2hpbGQsIHJlcXVlc3QsIGFkZHIsIGRhdGEpOw0KKwkJaWYgKHJldCB8 fCByZXF1ZXN0ICE9IFBUUkFDRV9ERVRBQ0gpDQorCQkJcHRyYWNlX3VuZnJlZXplX3RyYWNlZChj aGlsZCk7DQorCX0NCiANCiAgb3V0X3B1dF90YXNrX3N0cnVjdDoNCiAJcHV0X3Rhc2tfc3RydWN0 KGNoaWxkKTsNCmRpZmYgLS1naXQgYS9rZXJuZWwvcmVzb3VyY2UuYyBiL2tlcm5lbC9yZXNvdXJj ZS5jDQppbmRleCA3NjQwYjNhLi4wOGFhMjhlIDEwMDY0NA0KLS0tIGEva2VybmVsL3Jlc291cmNl LmMNCisrKyBiL2tlcm5lbC9yZXNvdXJjZS5jDQpAQCAtNzU3LDYgKzc1Nyw3IEBAIHN0YXRpYyB2 b2lkIF9faW5pdCBfX3Jlc2VydmVfcmVnaW9uX3dpdGhfc3BsaXQoc3RydWN0IHJlc291cmNlICpy b290LA0KIAlzdHJ1Y3QgcmVzb3VyY2UgKnBhcmVudCA9IHJvb3Q7DQogCXN0cnVjdCByZXNvdXJj ZSAqY29uZmxpY3Q7DQogCXN0cnVjdCByZXNvdXJjZSAqcmVzID0ga3phbGxvYyhzaXplb2YoKnJl cyksIEdGUF9BVE9NSUMpOw0KKwlzdHJ1Y3QgcmVzb3VyY2UgKm5leHRfcmVzID0gTlVMTDsNCiAN CiAJaWYgKCFyZXMpDQogCQlyZXR1cm47DQpAQCAtNzY2LDIxICs3NjcsNDYgQEAgc3RhdGljIHZv aWQgX19pbml0IF9fcmVzZXJ2ZV9yZWdpb25fd2l0aF9zcGxpdChzdHJ1Y3QgcmVzb3VyY2UgKnJv b3QsDQogCXJlcy0+ZW5kID0gZW5kOw0KIAlyZXMtPmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZOw0K IA0KLQljb25mbGljdCA9IF9fcmVxdWVzdF9yZXNvdXJjZShwYXJlbnQsIHJlcyk7DQotCWlmICgh Y29uZmxpY3QpDQotCQlyZXR1cm47DQorCXdoaWxlICgxKSB7DQogDQotCS8qIGZhaWxlZCwgc3Bs aXQgYW5kIHRyeSBhZ2FpbiAqLw0KLQlrZnJlZShyZXMpOw0KKwkJY29uZmxpY3QgPSBfX3JlcXVl c3RfcmVzb3VyY2UocGFyZW50LCByZXMpOw0KKwkJaWYgKCFjb25mbGljdCkgew0KKwkJCWlmICgh bmV4dF9yZXMpDQorCQkJCWJyZWFrOw0KKwkJCXJlcyA9IG5leHRfcmVzOw0KKwkJCW5leHRfcmVz ID0gTlVMTDsNCisJCQljb250aW51ZTsNCisJCX0NCiANCi0JLyogY29uZmxpY3QgY292ZXJlZCB3 aG9sZSBhcmVhICovDQotCWlmIChjb25mbGljdC0+c3RhcnQgPD0gc3RhcnQgJiYgY29uZmxpY3Qt PmVuZCA+PSBlbmQpDQotCQlyZXR1cm47DQorCQkvKiBjb25mbGljdCBjb3ZlcmVkIHdob2xlIGFy ZWEgKi8NCisJCWlmIChjb25mbGljdC0+c3RhcnQgPD0gcmVzLT5zdGFydCAmJg0KKwkJCQljb25m bGljdC0+ZW5kID49IHJlcy0+ZW5kKSB7DQorCQkJa2ZyZWUocmVzKTsNCisJCQlXQVJOX09OKG5l eHRfcmVzKTsNCisJCQlicmVhazsNCisJCX0NCisNCisJCS8qIGZhaWxlZCwgc3BsaXQgYW5kIHRy eSBhZ2FpbiAqLw0KKwkJaWYgKGNvbmZsaWN0LT5zdGFydCA+IHJlcy0+c3RhcnQpIHsNCisJCQll bmQgPSByZXMtPmVuZDsNCisJCQlyZXMtPmVuZCA9IGNvbmZsaWN0LT5zdGFydCAtIDE7DQorCQkJ aWYgKGNvbmZsaWN0LT5lbmQgPCBlbmQpIHsNCisJCQkJbmV4dF9yZXMgPSBremFsbG9jKHNpemVv ZigqbmV4dF9yZXMpLA0KKwkJCQkJCUdGUF9BVE9NSUMpOw0KKwkJCQlpZiAoIW5leHRfcmVzKSB7 DQorCQkJCQlrZnJlZShyZXMpOw0KKwkJCQkJYnJlYWs7DQorCQkJCX0NCisJCQkJbmV4dF9yZXMt Pm5hbWUgPSBuYW1lOw0KKwkJCQluZXh0X3Jlcy0+c3RhcnQgPSBjb25mbGljdC0+ZW5kICsgMTsN CisJCQkJbmV4dF9yZXMtPmVuZCA9IGVuZDsNCisJCQkJbmV4dF9yZXMtPmZsYWdzID0gSU9SRVNP VVJDRV9CVVNZOw0KKwkJCX0NCisJCX0gZWxzZSB7DQorCQkJcmVzLT5zdGFydCA9IGNvbmZsaWN0 LT5lbmQgKyAxOw0KKwkJfQ0KKwl9DQogDQotCWlmIChjb25mbGljdC0+c3RhcnQgPiBzdGFydCkN Ci0JCV9fcmVzZXJ2ZV9yZWdpb25fd2l0aF9zcGxpdChyb290LCBzdGFydCwgY29uZmxpY3QtPnN0 YXJ0LTEsIG5hbWUpOw0KLQlpZiAoY29uZmxpY3QtPmVuZCA8IGVuZCkNCi0JCV9fcmVzZXJ2ZV9y ZWdpb25fd2l0aF9zcGxpdChyb290LCBjb25mbGljdC0+ZW5kKzEsIGVuZCwgbmFtZSk7DQogfQ0K IA0KIHZvaWQgX19pbml0IHJlc2VydmVfcmVnaW9uX3dpdGhfc3BsaXQoc3RydWN0IHJlc291cmNl ICpyb290LA0KZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZC5jIGIva2VybmVsL3NjaGVkLmMNCmlu ZGV4IGZjYzg5M2YuLmVlZWVjNGUgMTAwNjQ0DQotLS0gYS9rZXJuZWwvc2NoZWQuYw0KKysrIGIv a2VybmVsL3NjaGVkLmMNCkBAIC0yOTI0LDcgKzI5MjQsOCBAQCBvdXQ6DQogICovDQogaW50IHdh a2VfdXBfcHJvY2VzcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApDQogew0KLQlyZXR1cm4gdHJ5X3Rv X3dha2VfdXAocCwgVEFTS19BTEwsIDApOw0KKwlXQVJOX09OKHRhc2tfaXNfc3RvcHBlZF9vcl90 cmFjZWQocCkpOw0KKwlyZXR1cm4gdHJ5X3RvX3dha2VfdXAocCwgVEFTS19OT1JNQUwsIDApOw0K IH0NCiBFWFBPUlRfU1lNQk9MKHdha2VfdXBfcHJvY2Vzcyk7DQogDQpkaWZmIC0tZ2l0IGEva2Vy bmVsL3NjaGVkX3J0LmMgYi9rZXJuZWwvc2NoZWRfcnQuYw0KaW5kZXggNzhmY2FjZi4uNmFkNGZi MyAxMDA2NDQNCi0tLSBhL2tlcm5lbC9zY2hlZF9ydC5jDQorKysgYi9rZXJuZWwvc2NoZWRfcnQu Yw0KQEAgLTM4NCw3ICszODQsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBydF9iYW5kd2lkdGgg KnNjaGVkX3J0X2JhbmR3aWR0aChzdHJ1Y3QgcnRfcnEgKnJ0X3JxKQ0KIHN0YXRpYyBpbnQgZG9f YmFsYW5jZV9ydW50aW1lKHN0cnVjdCBydF9ycSAqcnRfcnEpDQogew0KIAlzdHJ1Y3QgcnRfYmFu ZHdpZHRoICpydF9iID0gc2NoZWRfcnRfYmFuZHdpZHRoKHJ0X3JxKTsNCi0Jc3RydWN0IHJvb3Rf ZG9tYWluICpyZCA9IGNwdV9ycShzbXBfcHJvY2Vzc29yX2lkKCkpLT5yZDsNCisJc3RydWN0IHJv b3RfZG9tYWluICpyZCA9IHJxX29mX3J0X3JxKHJ0X3JxKS0+cmQ7DQogCWludCBpLCB3ZWlnaHQs IG1vcmUgPSAwOw0KIAl1NjQgcnRfcGVyaW9kOw0KIA0KZGlmZiAtLWdpdCBhL2tlcm5lbC9zaWdu YWwuYyBiL2tlcm5lbC9zaWduYWwuYw0KaW5kZXggMDhlMGI5Ny4uZDJmNTVlYSAxMDA2NDQNCi0t LSBhL2tlcm5lbC9zaWduYWwuYw0KKysrIGIva2VybmVsL3NpZ25hbC5jDQpAQCAtNjc2LDIzICs2 NzYsMTcgQEAgaW50IGRlcXVldWVfc2lnbmFsKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzaWdz ZXRfdCAqbWFzaywgc2lnaW5mb190ICppbmZvKQ0KICAqIE5vIG5lZWQgdG8gc2V0IG5lZWRfcmVz Y2hlZCBzaW5jZSBzaWduYWwgZXZlbnQgcGFzc2luZw0KICAqIGdvZXMgdGhyb3VnaCAtPmJsb2Nr ZWQNCiAgKi8NCi12b2lkIHNpZ25hbF93YWtlX3VwKHN0cnVjdCB0YXNrX3N0cnVjdCAqdCwgaW50 IHJlc3VtZSkNCit2b2lkIHNpZ25hbF93YWtlX3VwX3N0YXRlKHN0cnVjdCB0YXNrX3N0cnVjdCAq dCwgdW5zaWduZWQgaW50IHN0YXRlKQ0KIHsNCi0JdW5zaWduZWQgaW50IG1hc2s7DQotDQogCXNl dF90c2tfdGhyZWFkX2ZsYWcodCwgVElGX1NJR1BFTkRJTkcpOw0KLQ0KIAkvKg0KLQkgKiBGb3Ig U0lHS0lMTCwgd2Ugd2FudCB0byB3YWtlIGl0IHVwIGluIHRoZSBzdG9wcGVkL3RyYWNlZC9raWxs YWJsZQ0KKwkgKiBUQVNLX1dBS0VLSUxMIGFsc28gbWVhbnMgd2FrZSBpdCB1cCBpbiB0aGUgc3Rv cHBlZC90cmFjZWQva2lsbGFibGUNCiAJICogY2FzZS4gV2UgZG9uJ3QgY2hlY2sgdC0+c3RhdGUg aGVyZSBiZWNhdXNlIHRoZXJlIGlzIGEgcmFjZSB3aXRoIGl0DQogCSAqIGV4ZWN1dGluZyBhbm90 aGVyIHByb2Nlc3NvciBhbmQganVzdCBub3cgZW50ZXJpbmcgc3RvcHBlZCBzdGF0ZS4NCiAJICog QnkgdXNpbmcgd2FrZV91cF9zdGF0ZSwgd2UgZW5zdXJlIHRoZSBwcm9jZXNzIHdpbGwgd2FrZSB1 cCBhbmQNCiAJICogaGFuZGxlIGl0cyBkZWF0aCBzaWduYWwuDQogCSAqLw0KLQltYXNrID0gVEFT S19JTlRFUlJVUFRJQkxFOw0KLQlpZiAocmVzdW1lKQ0KLQkJbWFzayB8PSBUQVNLX1dBS0VLSUxM Ow0KLQlpZiAoIXdha2VfdXBfc3RhdGUodCwgbWFzaykpDQorCWlmICghd2FrZV91cF9zdGF0ZSh0 LCBzdGF0ZSB8IFRBU0tfSU5URVJSVVBUSUJMRSkpDQogCQlraWNrX3Byb2Nlc3ModCk7DQogfQ0K IA0KQEAgLTg0MSw3ICs4MzUsNyBAQCBzdGF0aWMgdm9pZCBwdHJhY2VfdHJhcF9ub3RpZnkoc3Ry dWN0IHRhc2tfc3RydWN0ICp0KQ0KIAlhc3NlcnRfc3Bpbl9sb2NrZWQoJnQtPnNpZ2hhbmQtPnNp Z2xvY2spOw0KIA0KIAl0YXNrX3NldF9qb2JjdGxfcGVuZGluZyh0LCBKT0JDVExfVFJBUF9OT1RJ RlkpOw0KLQlzaWduYWxfd2FrZV91cCh0LCB0LT5qb2JjdGwgJiBKT0JDVExfTElTVEVOSU5HKTsN CisJcHRyYWNlX3NpZ25hbF93YWtlX3VwKHQsIHQtPmpvYmN0bCAmIEpPQkNUTF9MSVNURU5JTkcp Ow0KIH0NCiANCiAvKg0KQEAgLTE3NjUsNiArMTc1OSwxMCBAQCBzdGF0aWMgaW5saW5lIGludCBt YXlfcHRyYWNlX3N0b3Aodm9pZCkNCiAJICogSWYgU0lHS0lMTCB3YXMgYWxyZWFkeSBzZW50IGJl Zm9yZSB0aGUgY2FsbGVyIHVubG9ja2VkDQogCSAqIC0+c2lnbG9jayB3ZSBtdXN0IHNlZSAtPmNv cmVfc3RhdGUgIT0gTlVMTC4gT3RoZXJ3aXNlIGl0DQogCSAqIGlzIHNhZmUgdG8gZW50ZXIgc2No ZWR1bGUoKS4NCisJICoNCisJICogVGhpcyBpcyBhbG1vc3Qgb3V0ZGF0ZWQsIGEgdGFzayB3aXRo IHRoZSBwZW5kaW5nIFNJR0tJTEwgY2FuJ3QNCisJICogYmxvY2sgaW4gVEFTS19UUkFDRUQuIEJ1 dCBQVFJBQ0VfRVZFTlRfRVhJVCBjYW4gYmUgcmVwb3J0ZWQNCisJICogYWZ0ZXIgU0lHS0lMTCB3 YXMgYWxyZWFkeSBkZXF1ZXVlZC4NCiAJICovDQogCWlmICh1bmxpa2VseShjdXJyZW50LT5tbS0+ Y29yZV9zdGF0ZSkgJiYNCiAJICAgIHVubGlrZWx5KGN1cnJlbnQtPm1tID09IGN1cnJlbnQtPnBh cmVudC0+bW0pKQ0KQEAgLTE4OTAsNiArMTg4OCw3IEBAIHN0YXRpYyB2b2lkIHB0cmFjZV9zdG9w KGludCBleGl0X2NvZGUsIGludCB3aHksIGludCBjbGVhcl9jb2RlLCBzaWdpbmZvX3QgKmluZm8p DQogCQlpZiAoZ3N0b3BfZG9uZSkNCiAJCQlkb19ub3RpZnlfcGFyZW50X2NsZHN0b3AoY3VycmVu dCwgZmFsc2UsIHdoeSk7DQogDQorCQkvKiB0YXNrbGlzdCBwcm90ZWN0cyB1cyBmcm9tIHB0cmFj ZV9mcmVlemVfdHJhY2VkKCkgKi8NCiAJCV9fc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19SVU5OSU5H KTsNCiAJCWlmIChjbGVhcl9jb2RlKQ0KIAkJCWN1cnJlbnQtPmV4aXRfY29kZSA9IDA7DQpkaWZm IC0tZ2l0IGEvbmV0L2JsdWV0b290aC9oY2lfZXZlbnQuYyBiL25ldC9ibHVldG9vdGgvaGNpX2V2 ZW50LmMNCmluZGV4IDYwMzNmMDIuLjdhMTU3YjMgMTAwNjQ0DQotLS0gYS9uZXQvYmx1ZXRvb3Ro L2hjaV9ldmVudC5jDQorKysgYi9uZXQvYmx1ZXRvb3RoL2hjaV9ldmVudC5jDQpAQCAtMTk3Miw3 ICsxOTcyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGhjaV9jbWRfY29tcGxldGVfZXZ0KHN0cnVj dCBoY2lfZGV2ICpoZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2sNCiAJaWYgKGV2LT5vcGNvZGUgIT0g SENJX09QX05PUCkNCiAJCWRlbF90aW1lcigmaGRldi0+Y21kX3RpbWVyKTsNCiANCi0JaWYgKGV2 LT5uY21kKSB7DQorCWlmIChldi0+bmNtZCAmJiAhdGVzdF9iaXQoSENJX1JFU0VULCAmaGRldi0+ ZmxhZ3MpKSB7DQogCQlhdG9taWNfc2V0KCZoZGV2LT5jbWRfY250LCAxKTsNCiAJCWlmICghc2ti X3F1ZXVlX2VtcHR5KCZoZGV2LT5jbWRfcSkpDQogCQkJdGFza2xldF9zY2hlZHVsZSgmaGRldi0+ Y21kX3Rhc2spOw0KZGlmZiAtLWdpdCBhL25ldC9ibHVldG9vdGgvc21wLmMgYi9uZXQvYmx1ZXRv b3RoL3NtcC5jDQppbmRleCAxODQ5ZWUwLi45YWI2MGU2IDEwMDY0NA0KLS0tIGEvbmV0L2JsdWV0 b290aC9zbXAuYw0KKysrIGIvbmV0L2JsdWV0b290aC9zbXAuYw0KQEAgLTY0Miw2ICs2NDIsMTkg QEAgaW50IHNtcF9zaWdfY2hhbm5lbChzdHJ1Y3QgbDJjYXBfY29ubiAqY29ubiwgc3RydWN0IHNr X2J1ZmYgKnNrYikNCiANCiAJc2tiX3B1bGwoc2tiLCBzaXplb2YoY29kZSkpOw0KIA0KKwkvKg0K KwkgKiBUaGUgU01QIGNvbnRleHQgbXVzdCBiZSBpbml0aWFsaXplZCBmb3IgYWxsIG90aGVyIFBE VXMgZXhjZXB0DQorCSAqIHBhaXJpbmcgYW5kIHNlY3VyaXR5IHJlcXVlc3RzLiBJZiB3ZSBnZXQg YW55IG90aGVyIFBEVSB3aGVuDQorCSAqIG5vdCBpbml0aWFsaXplZCBzaW1wbHkgZGlzY29ubmVj dCAoZG9uZSBpZiB0aGlzIGZ1bmN0aW9uDQorCSAqIHJldHVybnMgYW4gZXJyb3IpLg0KKwkgKi8N CisJaWYgKGNvZGUgIT0gU01QX0NNRF9QQUlSSU5HX1JFUSAmJiBjb2RlICE9IFNNUF9DTURfU0VD VVJJVFlfUkVRICYmDQorCSAgICAhY29ubi0+c21wX2NoYW4pIHsNCisJCUJUX0VSUigiVW5leHBl Y3RlZCBTTVAgY29tbWFuZCAweCUwMnguIERpc2Nvbm5lY3RpbmcuIiwgY29kZSk7DQorCQlrZnJl ZV9za2Ioc2tiKTsNCisJCXJldHVybiAtRU5PVFNVUFA7DQorCX0NCisNCiAJc3dpdGNoIChjb2Rl KSB7DQogCWNhc2UgU01QX0NNRF9QQUlSSU5HX1JFUToNCiAJCXJlYXNvbiA9IHNtcF9jbWRfcGFp cmluZ19yZXEoY29ubiwgc2tiKTsNCmRpZmYgLS1naXQgYS9uZXQvYnJpZGdlL2JyX25ldGZpbHRl ci5jIGIvbmV0L2JyaWRnZS9icl9uZXRmaWx0ZXIuYw0KaW5kZXggNTc3ZWE1ZC4uN2MxNzQ1ZCAx MDA2NDQNCi0tLSBhL25ldC9icmlkZ2UvYnJfbmV0ZmlsdGVyLmMNCisrKyBiL25ldC9icmlkZ2Uv YnJfbmV0ZmlsdGVyLmMNCkBAIC0yNDUsNiArMjQ1LDkgQEAgc3RhdGljIGludCBicl9wYXJzZV9p cF9vcHRpb25zKHN0cnVjdCBza19idWZmICpza2IpDQogCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYg PSBza2ItPmRldjsNCiAJdTMyIGxlbjsNCiANCisJaWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6 ZW9mKHN0cnVjdCBpcGhkcikpKQ0KKwkJZ290byBpbmhkcl9lcnJvcjsNCisNCiAJaXBoID0gaXBf aGRyKHNrYik7DQogCW9wdCA9ICYoSVBDQihza2IpLT5vcHQpOw0KIA0KZGlmZiAtLWdpdCBhL25l dC9jb3JlL3BrdGdlbi5jIGIvbmV0L2NvcmUvcGt0Z2VuLmMNCmluZGV4IDdiYzk5OTEuLjJlZjdk YTAgMTAwNjQ0DQotLS0gYS9uZXQvY29yZS9wa3RnZW4uYw0KKysrIGIvbmV0L2NvcmUvcGt0Z2Vu LmMNCkBAIC0xODAzLDEwICsxODAzLDEzIEBAIHN0YXRpYyBzc2l6ZV90IHBrdGdlbl90aHJlYWRf d3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsDQogCQkJcmV0dXJuIC1FRkFVTFQ7DQogCQlpICs9IGxl bjsNCiAJCW11dGV4X2xvY2soJnBrdGdlbl90aHJlYWRfbG9jayk7DQotCQlwa3RnZW5fYWRkX2Rl dmljZSh0LCBmKTsNCisJCXJldCA9IHBrdGdlbl9hZGRfZGV2aWNlKHQsIGYpOw0KIAkJbXV0ZXhf dW5sb2NrKCZwa3RnZW5fdGhyZWFkX2xvY2spOw0KLQkJcmV0ID0gY291bnQ7DQotCQlzcHJpbnRm KHBnX3Jlc3VsdCwgIk9LOiBhZGRfZGV2aWNlPSVzIiwgZik7DQorCQlpZiAoIXJldCkgew0KKwkJ CXJldCA9IGNvdW50Ow0KKwkJCXNwcmludGYocGdfcmVzdWx0LCAiT0s6IGFkZF9kZXZpY2U9JXMi LCBmKTsNCisJCX0gZWxzZQ0KKwkJCXNwcmludGYocGdfcmVzdWx0LCAiRVJST1I6IGNhbiBub3Qg YWRkIGRldmljZSAlcyIsIGYpOw0KIAkJZ290byBvdXQ7DQogCX0NCiANCmRpZmYgLS1naXQgYS9u ZXQvaXB2NC9pcF9zb2NrZ2x1ZS5jIGIvbmV0L2lwdjQvaXBfc29ja2dsdWUuYw0KaW5kZXggMDEw NmQyNS4uM2IzNjAwMiAxMDA2NDQNCi0tLSBhL25ldC9pcHY0L2lwX3NvY2tnbHVlLmMNCisrKyBi L25ldC9pcHY0L2lwX3NvY2tnbHVlLmMNCkBAIC02MDAsNyArNjAwLDcgQEAgc3RhdGljIGludCBk b19pcF9zZXRzb2Nrb3B0KHN0cnVjdCBzb2NrICpzaywgaW50IGxldmVsLA0KIAljYXNlIElQX1RU TDoNCiAJCWlmIChvcHRsZW4gPCAxKQ0KIAkJCWdvdG8gZV9pbnZhbDsNCi0JCWlmICh2YWwgIT0g LTEgJiYgKHZhbCA8IDAgfHwgdmFsID4gMjU1KSkNCisJCWlmICh2YWwgIT0gLTEgJiYgKHZhbCA8 IDEgfHwgdmFsID4gMjU1KSkNCiAJCQlnb3RvIGVfaW52YWw7DQogCQlpbmV0LT51Y190dGwgPSB2 YWw7DQogCQlicmVhazsNCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfaW5wdXQuYyBiL25ldC9p cHY0L3RjcF9pbnB1dC5jDQppbmRleCBhYWI4ZjA4Li5lODY1ZWQxIDEwMDY0NA0KLS0tIGEvbmV0 L2lwdjQvdGNwX2lucHV0LmMNCisrKyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jDQpAQCAtMzY1NSw2 ICszNjU1LDExIEBAIHN0YXRpYyBpbnQgdGNwX3Byb2Nlc3NfZnJ0byhzdHJ1Y3Qgc29jayAqc2ss IGludCBmbGFnKQ0KIAkJfQ0KIAl9IGVsc2Ugew0KIAkJaWYgKCEoZmxhZyAmIEZMQUdfREFUQV9B Q0tFRCkgJiYgKHRwLT5mcnRvX2NvdW50ZXIgPT0gMSkpIHsNCisJCQlpZiAoIXRjcF9wYWNrZXRz X2luX2ZsaWdodCh0cCkpIHsNCisJCQkJdGNwX2VudGVyX2ZydG9fbG9zcyhzaywgMiwgZmxhZyk7 DQorCQkJCXJldHVybiB0cnVlOw0KKwkJCX0NCisNCiAJCQkvKiBQcmV2ZW50IHNlbmRpbmcgb2Yg bmV3IGRhdGEuICovDQogCQkJdHAtPnNuZF9jd25kID0gbWluKHRwLT5zbmRfY3duZCwNCiAJCQkJ CSAgIHRjcF9wYWNrZXRzX2luX2ZsaWdodCh0cCkpOw0KZGlmZiAtLWdpdCBhL25ldC9pcHY2L2Fk ZHJjb25mLmMgYi9uZXQvaXB2Ni9hZGRyY29uZi5jDQppbmRleCBhZWY4MGQ3Li5iMjdiYWVkIDEw MDY0NA0KLS0tIGEvbmV0L2lwdjYvYWRkcmNvbmYuYw0KKysrIGIvbmV0L2lwdjYvYWRkcmNvbmYu Yw0KQEAgLTE3MzksNyArMTczOSw3IEBAIHN0YXRpYyBzdHJ1Y3QgcnQ2X2luZm8gKmFkZHJjb25m X2dldF9wcmVmaXhfcm91dGUoY29uc3Qgc3RydWN0IGluNl9hZGRyICpwZngsDQogCQkJY29udGlu dWU7DQogCQlpZiAoKHJ0LT5ydDZpX2ZsYWdzICYgZmxhZ3MpICE9IGZsYWdzKQ0KIAkJCWNvbnRp bnVlOw0KLQkJaWYgKChub2ZsYWdzICE9IDApICYmICgocnQtPnJ0NmlfZmxhZ3MgJiBmbGFncykg IT0gMCkpDQorCQlpZiAoKHJ0LT5ydDZpX2ZsYWdzICYgbm9mbGFncykgIT0gMCkNCiAJCQljb250 aW51ZTsNCiAJCWRzdF9ob2xkKCZydC0+ZHN0KTsNCiAJCWJyZWFrOw0KZGlmZiAtLWdpdCBhL25l dC9pcHY2L2lwNl9vdXRwdXQuYyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYw0KaW5kZXggYWU5OGUw OS4uM2NjZDliMiAxMDA2NDQNCi0tLSBhL25ldC9pcHY2L2lwNl9vdXRwdXQuYw0KKysrIGIvbmV0 L2lwdjYvaXA2X291dHB1dC5jDQpAQCAtMTI4NCwxMCArMTI4NCwxMCBAQCBpbnQgaXA2X2FwcGVu ZF9kYXRhKHN0cnVjdCBzb2NrICpzaywgaW50IGdldGZyYWcodm9pZCAqZnJvbSwgY2hhciAqdG8s DQogCQljb3JrLT5sZW5ndGggPSAwOw0KIAkJc2stPnNrX3NuZG1zZ19wYWdlID0gTlVMTDsNCiAJ CXNrLT5za19zbmRtc2dfb2ZmID0gMDsNCi0JCWV4dGhkcmxlbiA9IChvcHQgPyBvcHQtPm9wdF9m bGVuIDogMCkgLSBydC0+cnQ2aV9uZmhlYWRlcl9sZW47DQorCQlleHRoZHJsZW4gPSAob3B0ID8g b3B0LT5vcHRfZmxlbiA6IDApOw0KIAkJbGVuZ3RoICs9IGV4dGhkcmxlbjsNCiAJCXRyYW5zaGRy bGVuICs9IGV4dGhkcmxlbjsNCi0JCWRzdF9leHRoZHJsZW4gPSBydC0+ZHN0LmhlYWRlcl9sZW47 DQorCQlkc3RfZXh0aGRybGVuID0gcnQtPmRzdC5oZWFkZXJfbGVuIC0gcnQtPnJ0NmlfbmZoZWFk ZXJfbGVuOw0KIAl9IGVsc2Ugew0KIAkJcnQgPSAoc3RydWN0IHJ0Nl9pbmZvICopY29yay0+ZHN0 Ow0KIAkJZmw2ID0gJmluZXQtPmNvcmsuZmwudS5pcDY7DQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYv cm91dGUuYyBiL25ldC9pcHY2L3JvdXRlLmMNCmluZGV4IDE5NzI0YmQuLjc5MWMxZmEgMTAwNjQ0 DQotLS0gYS9uZXQvaXB2Ni9yb3V0ZS5jDQorKysgYi9uZXQvaXB2Ni9yb3V0ZS5jDQpAQCAtODE5 LDcgKzgxOSw4IEBAIHJlc3RhcnQ6DQogCWRzdF9ob2xkKCZydC0+ZHN0KTsNCiAJcmVhZF91bmxv Y2tfYmgoJnRhYmxlLT50YjZfbG9jayk7DQogDQotCWlmICghZHN0X2dldF9uZWlnaGJvdXJfcmF3 KCZydC0+ZHN0KSAmJiAhKHJ0LT5ydDZpX2ZsYWdzICYgUlRGX05PTkVYVEhPUCkpDQorCWlmICgh ZHN0X2dldF9uZWlnaGJvdXJfcmF3KCZydC0+ZHN0KQ0KKwkgICAgJiYgIShydC0+cnQ2aV9mbGFn cyAmIChSVEZfTk9ORVhUSE9QIHwgUlRGX0xPQ0FMKSkpDQogCQlucnQgPSBydDZfYWxsb2NfY293 KHJ0LCAmZmw2LT5kYWRkciwgJmZsNi0+c2FkZHIpOw0KIAllbHNlIGlmICghKHJ0LT5kc3QuZmxh Z3MgJiBEU1RfSE9TVCkpDQogCQlucnQgPSBydDZfYWxsb2NfY2xvbmUocnQsICZmbDYtPmRhZGRy KTsNCmRpZmYgLS1naXQgYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jIGIvbmV0L3BhY2tldC9hZl9w YWNrZXQuYw0KaW5kZXggODVhZmMxMy4uODM1ZmNlYSAxMDA2NDQNCi0tLSBhL25ldC9wYWNrZXQv YWZfcGFja2V0LmMNCisrKyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMNCkBAIC0yNDIyLDEzICsy NDIyLDE1IEBAIHN0YXRpYyBpbnQgcGFja2V0X3JlbGVhc2Uoc3RydWN0IHNvY2tldCAqc29jaykN CiANCiAJcGFja2V0X2ZsdXNoX21jbGlzdChzayk7DQogDQotCW1lbXNldCgmcmVxX3UsIDAsIHNp emVvZihyZXFfdSkpOw0KLQ0KLQlpZiAocG8tPnJ4X3JpbmcucGdfdmVjKQ0KKwlpZiAocG8tPnJ4 X3JpbmcucGdfdmVjKSB7DQorCQltZW1zZXQoJnJlcV91LCAwLCBzaXplb2YocmVxX3UpKTsNCiAJ CXBhY2tldF9zZXRfcmluZyhzaywgJnJlcV91LCAxLCAwKTsNCisJfQ0KIA0KLQlpZiAocG8tPnR4 X3JpbmcucGdfdmVjKQ0KKwlpZiAocG8tPnR4X3JpbmcucGdfdmVjKSB7DQorCQltZW1zZXQoJnJl cV91LCAwLCBzaXplb2YocmVxX3UpKTsNCiAJCXBhY2tldF9zZXRfcmluZyhzaywgJnJlcV91LCAx LCAxKTsNCisJfQ0KIA0KIAlmYW5vdXRfcmVsZWFzZShzayk7DQogDQpkaWZmIC0tZ2l0IGEvbmV0 L3NjdHAvZW5kcG9pbnRvbGEuYyBiL25ldC9zY3RwL2VuZHBvaW50b2xhLmMNCmluZGV4IGM4Y2My NGUuLmRiZTU4NzBhIDEwMDY0NA0KLS0tIGEvbmV0L3NjdHAvZW5kcG9pbnRvbGEuYw0KKysrIGIv bmV0L3NjdHAvZW5kcG9pbnRvbGEuYw0KQEAgLTI0OCw2ICsyNDgsOCBAQCB2b2lkIHNjdHBfZW5k cG9pbnRfZnJlZShzdHJ1Y3Qgc2N0cF9lbmRwb2ludCAqZXApDQogLyogRmluYWwgZGVzdHJ1Y3Rv ciBmb3IgZW5kcG9pbnQuICAqLw0KIHN0YXRpYyB2b2lkIHNjdHBfZW5kcG9pbnRfZGVzdHJveShz dHJ1Y3Qgc2N0cF9lbmRwb2ludCAqZXApDQogew0KKwlpbnQgaTsNCisNCiAJU0NUUF9BU1NFUlQo ZXAtPmJhc2UuZGVhZCwgIkVuZHBvaW50IGlzIG5vdCBkZWFkIiwgcmV0dXJuKTsNCiANCiAJLyog RnJlZSB1cCB0aGUgSE1BQyB0cmFuc2Zvcm0uICovDQpAQCAtMjcwLDYgKzI3Miw5IEBAIHN0YXRp YyB2b2lkIHNjdHBfZW5kcG9pbnRfZGVzdHJveShzdHJ1Y3Qgc2N0cF9lbmRwb2ludCAqZXApDQog CXNjdHBfaW5xX2ZyZWUoJmVwLT5iYXNlLmlucXVldWUpOw0KIAlzY3RwX2JpbmRfYWRkcl9mcmVl KCZlcC0+YmFzZS5iaW5kX2FkZHIpOw0KIA0KKwlmb3IgKGkgPSAwOyBpIDwgU0NUUF9IT1dfTUFO WV9TRUNSRVRTOyArK2kpDQorCQltZW1zZXQoJmVwLT5zZWNyZXRfa2V5W2ldLCAwLCBTQ1RQX1NF Q1JFVF9TSVpFKTsNCisNCiAJLyogUmVtb3ZlIGFuZCBmcmVlIHRoZSBwb3J0ICovDQogCWlmIChz Y3RwX3NrKGVwLT5iYXNlLnNrKS0+YmluZF9oYXNoKQ0KIAkJc2N0cF9wdXRfcG9ydChlcC0+YmFz ZS5zayk7DQpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvb3V0cXVldWUuYyBiL25ldC9zY3RwL291dHF1 ZXVlLmMNCmluZGV4IGNmZWIxZDQuLjk2ZWIxNjggMTAwNjQ0DQotLS0gYS9uZXQvc2N0cC9vdXRx dWV1ZS5jDQorKysgYi9uZXQvc2N0cC9vdXRxdWV1ZS5jDQpAQCAtMjIzLDcgKzIyMyw3IEBAIHZv aWQgc2N0cF9vdXRxX2luaXQoc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsIHN0cnVjdCBz Y3RwX291dHEgKnEpDQogDQogLyogRnJlZSB0aGUgb3V0cXVldWUgc3RydWN0dXJlIGFuZCBhbnkg cmVsYXRlZCBwZW5kaW5nIGNodW5rcy4NCiAgKi8NCi12b2lkIHNjdHBfb3V0cV90ZWFyZG93bihz dHJ1Y3Qgc2N0cF9vdXRxICpxKQ0KK3N0YXRpYyB2b2lkIF9fc2N0cF9vdXRxX3RlYXJkb3duKHN0 cnVjdCBzY3RwX291dHEgKnEpDQogew0KIAlzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnRyYW5zcG9y dDsNCiAJc3RydWN0IGxpc3RfaGVhZCAqbGNodW5rLCAqdGVtcDsNCkBAIC0yNzYsOCArMjc2LDYg QEAgdm9pZCBzY3RwX291dHFfdGVhcmRvd24oc3RydWN0IHNjdHBfb3V0cSAqcSkNCiAJCXNjdHBf Y2h1bmtfZnJlZShjaHVuayk7DQogCX0NCiANCi0JcS0+ZXJyb3IgPSAwOw0KLQ0KIAkvKiBUaHJv dyBhd2F5IGFueSBsZWZ0b3ZlciBjb250cm9sIGNodW5rcy4gKi8NCiAJbGlzdF9mb3JfZWFjaF9l bnRyeV9zYWZlKGNodW5rLCB0bXAsICZxLT5jb250cm9sX2NodW5rX2xpc3QsIGxpc3QpIHsNCiAJ CWxpc3RfZGVsX2luaXQoJmNodW5rLT5saXN0KTsNCkBAIC0yODUsMTEgKzI4MywxNyBAQCB2b2lk IHNjdHBfb3V0cV90ZWFyZG93bihzdHJ1Y3Qgc2N0cF9vdXRxICpxKQ0KIAl9DQogfQ0KIA0KK3Zv aWQgc2N0cF9vdXRxX3RlYXJkb3duKHN0cnVjdCBzY3RwX291dHEgKnEpDQorew0KKwlfX3NjdHBf b3V0cV90ZWFyZG93bihxKTsNCisJc2N0cF9vdXRxX2luaXQocS0+YXNvYywgcSk7DQorfQ0KKw0K IC8qIEZyZWUgdGhlIG91dHF1ZXVlIHN0cnVjdHVyZSBhbmQgYW55IHJlbGF0ZWQgcGVuZGluZyBj aHVua3MuICAqLw0KIHZvaWQgc2N0cF9vdXRxX2ZyZWUoc3RydWN0IHNjdHBfb3V0cSAqcSkNCiB7 DQogCS8qIFRocm93IGF3YXkgbGVmdG92ZXIgY2h1bmtzLiAqLw0KLQlzY3RwX291dHFfdGVhcmRv d24ocSk7DQorCV9fc2N0cF9vdXRxX3RlYXJkb3duKHEpOw0KIA0KIAkvKiBJZiB3ZSB3ZXJlIGtt YWxsb2MoKSdkLCBmcmVlIHRoZSBtZW1vcnkuICAqLw0KIAlpZiAocS0+bWFsbG9jZWQpDQpkaWZm IC0tZ2l0IGEvbmV0L3NjdHAvc29ja2V0LmMgYi9uZXQvc2N0cC9zb2NrZXQuYw0KaW5kZXggZmE4 MzMzYi4uNWUwZDg2ZSAxMDA2NDQNCi0tLSBhL25ldC9zY3RwL3NvY2tldC5jDQorKysgYi9uZXQv c2N0cC9zb2NrZXQuYw0KQEAgLTMzNzUsNyArMzM3NSw3IEBAIHN0YXRpYyBpbnQgc2N0cF9zZXRz b2Nrb3B0X2F1dGhfa2V5KHN0cnVjdCBzb2NrICpzaywNCiANCiAJcmV0ID0gc2N0cF9hdXRoX3Nl dF9rZXkoc2N0cF9zayhzayktPmVwLCBhc29jLCBhdXRoa2V5KTsNCiBvdXQ6DQotCWtmcmVlKGF1 dGhrZXkpOw0KKwlremZyZWUoYXV0aGtleSk7DQogCXJldHVybiByZXQ7DQogfQ0KIA0K --=-+LjbgAFvRLkQP6+vRdnN-- --=-teBX00k/Jlom8EVyMUZ4 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIVAwUAUSFvmee/yOyVhhEJAQrsSQ/8DK3tdYJSKhwrthDD2x+DxH7LYlw/y9pQ IvQo1cbciGuoLv8XvPvV8c0yXVZEl4QZGraP1LaeZ1mfAz8I8+EHqJYwGoB1DB3g TORtHR5nTUNqwNWI7Yo/FBEnXhEbAqmZ8iqxL9hXIe3JK5vOg78Qr7A1nmSyiF9J dWBl2m+bbgNvTZgVXhVvnugeJ65Je8AeItCzNP+S1U8MYzbIwv7jIWuL65TLanyf 78o4l8hOtGmejSn3CJTnsfu/xgZn5dStDTQIFOjz1X02+gjJ+y3AoIOpeaFCgWvp wxrxzc7fYuk3mzI+44GxA0BZic/iCrSQPqshkrdhhm6h2py+3BG6hISrn22sMCxn 9j1JOQyjL73YHVS87BGDg/aPbO3lEM8KDK59vFyF8awW/G5VlG9wjDaWrtC3ZWqA ktiOSunIXSmw3VHD3E1S+3NvM50nGXGRORS09r00vljaMIHVhYPqr/T7SbZ9ue1m OaARnbLmCg5iozLg13hfn5K5BIWQVlhOMuobqWwzm1H/GDtECjoOjWsBcITEcnxw lfC9xzlxQhfCGEPN1Ekm7az1w4PDrYkK8Y1VoM4fFekySIo/EV/Z2SKBqoIFzbdK wPWpDXYopJnh7rzvCFgi9eYa2mpWMuInR3KIDUZOQyiamri+O8XMBSbwAnDfl+69 MT2g75AkvgM= =DvAU -----END PGP SIGNATURE----- --=-teBX00k/Jlom8EVyMUZ4--