From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932507AbcC2UTb (ORCPT ); Tue, 29 Mar 2016 16:19:31 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:45456 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932436AbcC2UTZ (ORCPT ); Tue, 29 Mar 2016 16:19:25 -0400 Message-ID: <1459282750.19588.3.camel@decadent.org.uk> Subject: Re: [PATCH 3.2 00/62] 3.2.79-rc1 review From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: torvalds@linux-foundation.org, Guenter Roeck , Phil Jensen , akpm@linux-foundation.org Date: Tue, 29 Mar 2016 21:19:10 +0100 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-glO5QPaS00pR8juiHoWr" X-Mailer: Evolution 3.18.5.1-1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 213.146.164.225 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 --=-glO5QPaS00pR8juiHoWr Content-Type: multipart/mixed; boundary="=-9knMWN7Z4YBmP2N/5yS0" --=-9knMWN7Z4YBmP2N/5yS0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined diff for 3.2.79-rc1 relative to 3.2.78. Ben. --=20 Ben Hutchings Tomorrow will be cancelled due to lack of interest. --=-9knMWN7Z4YBmP2N/5yS0 Content-Disposition: attachment; filename="linux-3.2.79-rc1.patch" Content-Type: text/x-patch; name="linux-3.2.79-rc1.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggZTQzYjg2ZWM3MmJmLi4zNWM5 ZmZiYWY3MTkgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisrKyBiL01ha2VmaWxlCkBAIC0xLDcgKzEs NyBAQAogVkVSU0lPTiA9IDMKIFBBVENITEVWRUwgPSAyCi1TVUJMRVZFTCA9IDc4Ci1FWFRSQVZF UlNJT04gPQorU1VCTEVWRUwgPSA3OQorRVhUUkFWRVJTSU9OID0gLXJjMQogTkFNRSA9IFNhYmVy LXRvb3RoZWQgU3F1aXJyZWwKIAogIyAqRE9DVU1FTlRBVElPTioKZGlmZiAtLWdpdCBhL2FyY2gv bWlwcy9rZXJuZWwvdHJhcHMuYyBiL2FyY2gvbWlwcy9rZXJuZWwvdHJhcHMuYwppbmRleCA1Yzhh NDlkNTUwNTQuLmUwZWU3NWQ0Yzk2ZiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2tlcm5lbC90cmFw cy5jCisrKyBiL2FyY2gvbWlwcy9rZXJuZWwvdHJhcHMuYwpAQCAtNjU2LDE0ICs2NTYsMTQgQEAg c3RhdGljIGludCBzaW11bGF0ZV9zeW5jKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBp bnQgb3Bjb2RlKQogCiBhc21saW5rYWdlIHZvaWQgZG9fb3Yoc3RydWN0IHB0X3JlZ3MgKnJlZ3Mp CiB7Ci0Jc2lnaW5mb190IGluZm87CisJc2lnaW5mb190IGluZm8gPSB7CisJCS5zaV9zaWdubyA9 IFNJR0ZQRSwKKwkJLnNpX2NvZGUgPSBGUEVfSU5UT1ZGLAorCQkuc2lfYWRkciA9ICh2b2lkIF9f dXNlciAqKXJlZ3MtPmNwMF9lcGMsCisJfTsKIAogCWRpZV9pZl9rZXJuZWwoIkludGVnZXIgb3Zl cmZsb3ciLCByZWdzKTsKIAotCWluZm8uc2lfY29kZSA9IEZQRV9JTlRPVkY7Ci0JaW5mby5zaV9z aWdubyA9IFNJR0ZQRTsKLQlpbmZvLnNpX2Vycm5vID0gMDsKLQlpbmZvLnNpX2FkZHIgPSAodm9p ZCBfX3VzZXIgKikgcmVncy0+Y3AwX2VwYzsKIAlmb3JjZV9zaWdfaW5mbyhTSUdGUEUsICZpbmZv LCBjdXJyZW50KTsKIH0KIApAQCAtNzU4LDcgKzc1OCw3IEBAIGFzbWxpbmthZ2Ugdm9pZCBkb19m cGUoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgZmNyMzEpCiBzdGF0aWMgdm9p ZCBkb190cmFwX29yX2JwKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBpbnQgY29kZSwK IAljb25zdCBjaGFyICpzdHIpCiB7Ci0Jc2lnaW5mb190IGluZm87CisJc2lnaW5mb190IGluZm8g PSB7IDAgfTsKIAljaGFyIGJbNDBdOwogCiAjaWZkZWYgQ09ORklHX0tHREJfTE9XX0xFVkVMX1RS QVAKQEAgLTc4NSw3ICs3ODUsNiBAQCBzdGF0aWMgdm9pZCBkb190cmFwX29yX2JwKHN0cnVjdCBw dF9yZWdzICpyZWdzLCB1bnNpZ25lZCBpbnQgY29kZSwKIAkJZWxzZQogCQkJaW5mby5zaV9jb2Rl ID0gRlBFX0lOVE9WRjsKIAkJaW5mby5zaV9zaWdubyA9IFNJR0ZQRTsKLQkJaW5mby5zaV9lcnJu byA9IDA7CiAJCWluZm8uc2lfYWRkciA9ICh2b2lkIF9fdXNlciAqKSByZWdzLT5jcDBfZXBjOwog CQlmb3JjZV9zaWdfaW5mbyhTSUdGUEUsICZpbmZvLCBjdXJyZW50KTsKIAkJYnJlYWs7CmRpZmYg LS1naXQgYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vbW11X2NvbnRleHQuaCBiL2FyY2gvczM5MC9p bmNsdWRlL2FzbS9tbXVfY29udGV4dC5oCmluZGV4IDIwZjBlMDFhMDk4ZS4uODAzZWQxNDJkMDkx IDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vbW11X2NvbnRleHQuaAorKysgYi9h cmNoL3MzOTAvaW5jbHVkZS9hc20vbW11X2NvbnRleHQuaApAQCAtMTYsMTIgKzE2LDExIEBACiBz dGF0aWMgaW5saW5lIGludCBpbml0X25ld19jb250ZXh0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNr LAogCQkJCSAgIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQogeworCXNwaW5fbG9ja19pbml0KCZtbS0+ Y29udGV4dC5saXN0X2xvY2spOworCUlOSVRfTElTVF9IRUFEKCZtbS0+Y29udGV4dC5wZ3RhYmxl X2xpc3QpOworCUlOSVRfTElTVF9IRUFEKCZtbS0+Y29udGV4dC5nbWFwX2xpc3QpOwogCWF0b21p Y19zZXQoJm1tLT5jb250ZXh0LmF0dGFjaF9jb3VudCwgMCk7CiAJbW0tPmNvbnRleHQuZmx1c2hf bW0gPSAwOwotCW1tLT5jb250ZXh0LmFzY2VfYml0cyA9IF9BU0NFX1RBQkxFX0xFTkdUSCB8IF9B U0NFX1VTRVJfQklUUzsKLSNpZmRlZiBDT05GSUdfNjRCSVQKLQltbS0+Y29udGV4dC5hc2NlX2Jp dHMgfD0gX0FTQ0VfVFlQRV9SRUdJT04zOwotI2VuZGlmCiAJaWYgKGN1cnJlbnQtPm1tICYmIGN1 cnJlbnQtPm1tLT5jb250ZXh0LmFsbG9jX3Bnc3RlKSB7CiAJCS8qCiAJCSAqIGFsbG9jX3Bnc3Rl IGluZGljYXRlcywgdGhhdCBhbnkgTkVXIGNvbnRleHQgd2lsbCBiZSBjcmVhdGVkCkBAIC00MCw3 ICszOSwxNCBAQCBzdGF0aWMgaW5saW5lIGludCBpbml0X25ld19jb250ZXh0KHN0cnVjdCB0YXNr X3N0cnVjdCAqdHNrLAogCQltbS0+Y29udGV4dC5oYXNfcGdzdGUgPSAwOwogCQltbS0+Y29udGV4 dC5hbGxvY19wZ3N0ZSA9IDA7CiAJfQotCW1tLT5jb250ZXh0LmFzY2VfbGltaXQgPSBTVEFDS19U T1BfTUFYOworCWlmIChtbS0+Y29udGV4dC5hc2NlX2xpbWl0ID09IDApIHsKKwkJLyogY29udGV4 dCBjcmVhdGVkIGJ5IGV4ZWMsIHNldCBhc2NlIGxpbWl0IHRvIDRUQiAqLworCQltbS0+Y29udGV4 dC5hc2NlX2JpdHMgPSBfQVNDRV9UQUJMRV9MRU5HVEggfCBfQVNDRV9VU0VSX0JJVFM7CisjaWZk ZWYgQ09ORklHXzY0QklUCisJCW1tLT5jb250ZXh0LmFzY2VfYml0cyB8PSBfQVNDRV9UWVBFX1JF R0lPTjM7CisjZW5kaWYKKwkJbW0tPmNvbnRleHQuYXNjZV9saW1pdCA9IFNUQUNLX1RPUF9NQVg7 CisJfQogCWNyc3RfdGFibGVfaW5pdCgodW5zaWduZWQgbG9uZyAqKSBtbS0+cGdkLCBwZ2RfZW50 cnlfdHlwZShtbSkpOwogCXJldHVybiAwOwogfQpAQCAtOTQsMTAgKzEwMCw2IEBAIHN0YXRpYyBp bmxpbmUgdm9pZCBhY3RpdmF0ZV9tbShzdHJ1Y3QgbW1fc3RydWN0ICpwcmV2LAogc3RhdGljIGlu bGluZSB2b2lkIGFyY2hfZHVwX21tYXAoc3RydWN0IG1tX3N0cnVjdCAqb2xkbW0sCiAJCQkJIHN0 cnVjdCBtbV9zdHJ1Y3QgKm1tKQogewotI2lmZGVmIENPTkZJR182NEJJVAotCWlmIChvbGRtbS0+ Y29udGV4dC5hc2NlX2xpbWl0IDwgbW0tPmNvbnRleHQuYXNjZV9saW1pdCkKLQkJY3JzdF90YWJs ZV9kb3duZ3JhZGUobW0sIG9sZG1tLT5jb250ZXh0LmFzY2VfbGltaXQpOwotI2VuZGlmCiB9CiAK IHN0YXRpYyBpbmxpbmUgdm9pZCBhcmNoX2V4aXRfbW1hcChzdHJ1Y3QgbW1fc3RydWN0ICptbSkK ZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9pbmNsdWRlL2FzbS9wZ2FsbG9jLmggYi9hcmNoL3MzOTAv aW5jbHVkZS9hc20vcGdhbGxvYy5oCmluZGV4IDc4ZTMwNDE5MTlkZS4uMjcyYzA2OTRkZGI3IDEw MDY0NAotLS0gYS9hcmNoL3MzOTAvaW5jbHVkZS9hc20vcGdhbGxvYy5oCisrKyBiL2FyY2gvczM5 MC9pbmNsdWRlL2FzbS9wZ2FsbG9jLmgKQEAgLTExMCw5ICsxMTAsNiBAQCBzdGF0aWMgaW5saW5l IHZvaWQgcHVkX3BvcHVsYXRlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwdWRfdCAqcHVkLCBwbWRf dCAqcG1kKQogCiBzdGF0aWMgaW5saW5lIHBnZF90ICpwZ2RfYWxsb2Moc3RydWN0IG1tX3N0cnVj dCAqbW0pCiB7Ci0Jc3Bpbl9sb2NrX2luaXQoJm1tLT5jb250ZXh0Lmxpc3RfbG9jayk7Ci0JSU5J VF9MSVNUX0hFQUQoJm1tLT5jb250ZXh0LnBndGFibGVfbGlzdCk7Ci0JSU5JVF9MSVNUX0hFQUQo Jm1tLT5jb250ZXh0LmdtYXBfbGlzdCk7CiAJcmV0dXJuIChwZ2RfdCAqKSBjcnN0X3RhYmxlX2Fs bG9jKG1tKTsKIH0KICNkZWZpbmUgcGdkX2ZyZWUobW0sIHBnZCkgY3JzdF90YWJsZV9mcmVlKG1t LCAodW5zaWduZWQgbG9uZyAqKSBwZ2QpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYWNw aS9zbGVlcC5jIGIvYXJjaC94ODYva2VybmVsL2FjcGkvc2xlZXAuYwppbmRleCAxMDNiNmFiMzY4 ZDMuLjBkNTZlYWE2MjlmZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2FjcGkvc2xlZXAu YworKysgYi9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9zbGVlcC5jCkBAIC0xNSw2ICsxNSw3IEBACiAj aW5jbHVkZSA8YXNtL3BndGFibGUuaD4KICNpbmNsdWRlIDxhc20vY2FjaGVmbHVzaC5oPgogCisj aW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CiAjaW5jbHVkZSAicmVhbG1vZGUvd2FrZXVwLmgiCiAj aW5jbHVkZSAic2xlZXAuaCIKIApAQCAtMTAyLDcgKzEwMywxMyBAQCBpbnQgYWNwaV9zdXNwZW5k X2xvd2xldmVsKHZvaWQpCiAgICAgICAgc2F2ZWRfbWFnaWMgPSAweDEyMzQ1Njc4OWFiY2RlZjBM OwogI2VuZGlmIC8qIENPTkZJR182NEJJVCAqLwogCisJLyoKKwkgKiBQYXVzZS91bnBhdXNlIGdy YXBoIHRyYWNpbmcgYXJvdW5kIGRvX3N1c3BlbmRfbG93bGV2ZWwgYXMgaXQgaGFzCisJICogaW5j b25zaXN0ZW50IGNhbGwvcmV0dXJuIGluZm8gYWZ0ZXIgaXQganVtcHMgdG8gdGhlIHdha2V1cCB2 ZWN0b3IuCisJICovCisJcGF1c2VfZ3JhcGhfdHJhY2luZygpOwogCWRvX3N1c3BlbmRfbG93bGV2 ZWwoKTsKKwl1bnBhdXNlX2dyYXBoX3RyYWNpbmcoKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0t Z2l0IGEvYXJjaC94ODYvbGliL2NvcHlfdXNlcl9ub2NhY2hlXzY0LlMgYi9hcmNoL3g4Ni9saWIv Y29weV91c2VyX25vY2FjaGVfNjQuUwppbmRleCBjYjBjMTEyMzg2ZmIuLjJhYWMzYjIzNmVkZiAx MDA2NDQKLS0tIGEvYXJjaC94ODYvbGliL2NvcHlfdXNlcl9ub2NhY2hlXzY0LlMKKysrIGIvYXJj aC94ODYvbGliL2NvcHlfdXNlcl9ub2NhY2hlXzY0LlMKQEAgLTE0LDYgKzE0LDcgQEAKICNpbmNs dWRlIDxhc20vY3VycmVudC5oPgogI2luY2x1ZGUgPGFzbS9hc20tb2Zmc2V0cy5oPgogI2luY2x1 ZGUgPGFzbS90aHJlYWRfaW5mby5oPgorI2luY2x1ZGUgPGFzbS9hc20uaD4KIAogCS5tYWNybyBB TElHTl9ERVNUSU5BVElPTgogI2lmZGVmIEZJWF9BTElHTk1FTlQKQEAgLTM2LDI3ICszNywzOCBA QAogCWptcCBjb3B5X3VzZXJfaGFuZGxlX3RhaWwKIAkucHJldmlvdXMKIAotCS5zZWN0aW9uIF9f ZXhfdGFibGUsImEiCi0JLmFsaWduIDgKLQkucXVhZCAxMDBiLDEwM2IKLQkucXVhZCAxMDFiLDEw M2IKLQkucHJldmlvdXMKKwlfQVNNX0VYVEFCTEUoMTAwYiwxMDNiKQorCV9BU01fRVhUQUJMRSgx MDFiLDEwM2IpCiAjZW5kaWYKIAkuZW5kbQogCiAvKgogICogY29weV91c2VyX25vY2FjaGUgLSBV bmNhY2hlZCBtZW1vcnkgY29weSB3aXRoIGV4Y2VwdGlvbiBoYW5kbGluZwotICogVGhpcyB3aWxs IGZvcmNlIGRlc3RpbmF0aW9uL3NvdXJjZSBvdXQgb2YgY2FjaGUgZm9yIG1vcmUgcGVyZm9ybWFu Y2UuCisgKiBUaGlzIHdpbGwgZm9yY2UgZGVzdGluYXRpb24gb3V0IG9mIGNhY2hlIGZvciBtb3Jl IHBlcmZvcm1hbmNlLgorICoKKyAqIE5vdGU6IENhY2hlZCBtZW1vcnkgY29weSBpcyB1c2VkIHdo ZW4gZGVzdGluYXRpb24gb3Igc2l6ZSBpcyBub3QKKyAqIG5hdHVyYWxseSBhbGlnbmVkLiBUaGF0 IGlzOgorICogIC0gUmVxdWlyZSA4LWJ5dGUgYWxpZ25tZW50IHdoZW4gc2l6ZSBpcyA4IGJ5dGVz IG9yIGxhcmdlci4KKyAqICAtIFJlcXVpcmUgNC1ieXRlIGFsaWdubWVudCB3aGVuIHNpemUgaXMg NCBieXRlcy4KICAqLwogRU5UUlkoX19jb3B5X3VzZXJfbm9jYWNoZSkKIAlDRklfU1RBUlRQUk9D CisKKwkvKiBJZiBzaXplIGlzIGxlc3MgdGhhbiA4IGJ5dGVzLCBnbyB0byA0LWJ5dGUgY29weSAq LwogCWNtcGwgJDgsJWVkeAotCWpiIDIwZgkJLyogbGVzcyB0aGVuIDggYnl0ZXMsIGdvIHRvIGJ5 dGUgY29weSBsb29wICovCisJamIgLkxfNGJfbm9jYWNoZV9jb3B5X2VudHJ5CisKKwkvKiBJZiBk ZXN0aW5hdGlvbiBpcyBub3QgOC1ieXRlIGFsaWduZWQsICJjYWNoZSIgY29weSB0byBhbGlnbiBp dCAqLwogCUFMSUdOX0RFU1RJTkFUSU9OCisKKwkvKiBTZXQgNHg4LWJ5dGUgY29weSBjb3VudCBh bmQgcmVtYWluZGVyICovCiAJbW92bCAlZWR4LCVlY3gKIAlhbmRsICQ2MywlZWR4CiAJc2hybCAk NiwlZWN4Ci0JanogMTdmCisJanogLkxfOGJfbm9jYWNoZV9jb3B5X2VudHJ5CS8qIGp1bXAgaWYg Y291bnQgaXMgMCAqLworCisJLyogUGVyZm9ybSA0eDgtYnl0ZSBub2NhY2hlIGxvb3AtY29weSAq LworLkxfNHg4Yl9ub2NhY2hlX2NvcHlfbG9vcDoKIDE6CW1vdnEgKCVyc2kpLCVyOAogMjoJbW92 cSAxKjgoJXJzaSksJXI5CiAzOgltb3ZxIDIqOCglcnNpKSwlcjEwCkBAIC03Niw2MiArODgsMTA2 IEBAIEVOVFJZKF9fY29weV91c2VyX25vY2FjaGUpCiAJbGVhcSA2NCglcnNpKSwlcnNpCiAJbGVh cSA2NCglcmRpKSwlcmRpCiAJZGVjbCAlZWN4Ci0Jam56IDFiCi0xNzoJbW92bCAlZWR4LCVlY3gK KwlqbnogLkxfNHg4Yl9ub2NhY2hlX2NvcHlfbG9vcAorCisJLyogU2V0IDgtYnl0ZSBjb3B5IGNv dW50IGFuZCByZW1haW5kZXIgKi8KKy5MXzhiX25vY2FjaGVfY29weV9lbnRyeToKKwltb3ZsICVl ZHgsJWVjeAogCWFuZGwgJDcsJWVkeAogCXNocmwgJDMsJWVjeAotCWp6IDIwZgotMTg6CW1vdnEg KCVyc2kpLCVyOAotMTk6CW1vdm50aSAlcjgsKCVyZGkpCisJanogLkxfNGJfbm9jYWNoZV9jb3B5 X2VudHJ5CS8qIGp1bXAgaWYgY291bnQgaXMgMCAqLworCisJLyogUGVyZm9ybSA4LWJ5dGUgbm9j YWNoZSBsb29wLWNvcHkgKi8KKy5MXzhiX25vY2FjaGVfY29weV9sb29wOgorMjA6CW1vdnEgKCVy c2kpLCVyOAorMjE6CW1vdm50aSAlcjgsKCVyZGkpCiAJbGVhcSA4KCVyc2kpLCVyc2kKIAlsZWFx IDgoJXJkaSksJXJkaQogCWRlY2wgJWVjeAotCWpueiAxOGIKLTIwOglhbmRsICVlZHgsJWVkeAot CWp6IDIzZgorCWpueiAuTF84Yl9ub2NhY2hlX2NvcHlfbG9vcAorCisJLyogSWYgbm8gYnl0ZSBs ZWZ0LCB3ZSdyZSBkb25lICovCisuTF80Yl9ub2NhY2hlX2NvcHlfZW50cnk6CisJYW5kbCAlZWR4 LCVlZHgKKwlqeiAuTF9maW5pc2hfY29weQorCisJLyogSWYgZGVzdGluYXRpb24gaXMgbm90IDQt Ynl0ZSBhbGlnbmVkLCBnbyB0byBieXRlIGNvcHk6ICovCisJbW92bCAlZWRpLCVlY3gKKwlhbmRs ICQzLCVlY3gKKwlqbnogLkxfMWJfY2FjaGVfY29weV9lbnRyeQorCisJLyogU2V0IDQtYnl0ZSBj b3B5IGNvdW50ICgxIG9yIDApIGFuZCByZW1haW5kZXIgKi8KKwltb3ZsICVlZHgsJWVjeAorCWFu ZGwgJDMsJWVkeAorCXNocmwgJDIsJWVjeAorCWp6IC5MXzFiX2NhY2hlX2NvcHlfZW50cnkJLyog anVtcCBpZiBjb3VudCBpcyAwICovCisKKwkvKiBQZXJmb3JtIDQtYnl0ZSBub2NhY2hlIGNvcHk6 ICovCiszMDoJbW92bCAoJXJzaSksJXI4ZAorMzE6CW1vdm50aSAlcjhkLCglcmRpKQorCWxlYXEg NCglcnNpKSwlcnNpCisJbGVhcSA0KCVyZGkpLCVyZGkKKworCS8qIElmIG5vIGJ5dGVzIGxlZnQs IHdlJ3JlIGRvbmU6ICovCisJYW5kbCAlZWR4LCVlZHgKKwlqeiAuTF9maW5pc2hfY29weQorCisJ LyogUGVyZm9ybSBieXRlICJjYWNoZSIgbG9vcC1jb3B5IGZvciB0aGUgcmVtYWluZGVyICovCisu TF8xYl9jYWNoZV9jb3B5X2VudHJ5OgogCW1vdmwgJWVkeCwlZWN4Ci0yMToJbW92YiAoJXJzaSks JWFsCi0yMjoJbW92YiAlYWwsKCVyZGkpCisuTF8xYl9jYWNoZV9jb3B5X2xvb3A6Cis0MDoJbW92 YiAoJXJzaSksJWFsCis0MToJbW92YiAlYWwsKCVyZGkpCiAJaW5jcSAlcnNpCiAJaW5jcSAlcmRp CiAJZGVjbCAlZWN4Ci0Jam56IDIxYgotMjM6CXhvcmwgJWVheCwlZWF4CisJam56IC5MXzFiX2Nh Y2hlX2NvcHlfbG9vcAorCisJLyogRmluaXNoZWQgY29weWluZzsgZmVuY2UgdGhlIHByaW9yIHN0 b3JlcyAqLworLkxfZmluaXNoX2NvcHk6CisJeG9ybCAlZWF4LCVlYXgKIAlzZmVuY2UKIAlyZXQK IAogCS5zZWN0aW9uIC5maXh1cCwiYXgiCi0zMDoJc2hsbCAkNiwlZWN4CisuTF9maXh1cF80eDhi X2NvcHk6CisJc2hsbCAkNiwlZWN4CiAJYWRkbCAlZWN4LCVlZHgKLQlqbXAgNjBmCi00MDoJbGVh ICglcmR4LCVyY3gsOCksJXJkeAotCWptcCA2MGYKLTUwOgltb3ZsICVlY3gsJWVkeAotNjA6CXNm ZW5jZQorCWptcCAuTF9maXh1cF9oYW5kbGVfdGFpbAorLkxfZml4dXBfOGJfY29weToKKwlsZWEg KCVyZHgsJXJjeCw4KSwlcmR4CisJam1wIC5MX2ZpeHVwX2hhbmRsZV90YWlsCisuTF9maXh1cF80 Yl9jb3B5OgorCWxlYSAoJXJkeCwlcmN4LDQpLCVyZHgKKwlqbXAgLkxfZml4dXBfaGFuZGxlX3Rh aWwKKy5MX2ZpeHVwXzFiX2NvcHk6CisJbW92bCAlZWN4LCVlZHgKKy5MX2ZpeHVwX2hhbmRsZV90 YWlsOgorCXNmZW5jZQogCWptcCBjb3B5X3VzZXJfaGFuZGxlX3RhaWwKIAkucHJldmlvdXMKIAot CS5zZWN0aW9uIF9fZXhfdGFibGUsImEiCi0JLnF1YWQgMWIsMzBiCi0JLnF1YWQgMmIsMzBiCi0J LnF1YWQgM2IsMzBiCi0JLnF1YWQgNGIsMzBiCi0JLnF1YWQgNWIsMzBiCi0JLnF1YWQgNmIsMzBi Ci0JLnF1YWQgN2IsMzBiCi0JLnF1YWQgOGIsMzBiCi0JLnF1YWQgOWIsMzBiCi0JLnF1YWQgMTBi LDMwYgotCS5xdWFkIDExYiwzMGIKLQkucXVhZCAxMmIsMzBiCi0JLnF1YWQgMTNiLDMwYgotCS5x dWFkIDE0YiwzMGIKLQkucXVhZCAxNWIsMzBiCi0JLnF1YWQgMTZiLDMwYgotCS5xdWFkIDE4Yiw0 MGIKLQkucXVhZCAxOWIsNDBiCi0JLnF1YWQgMjFiLDUwYgotCS5xdWFkIDIyYiw1MGIKLQkucHJl dmlvdXMKKwlfQVNNX0VYVEFCTEUoMWIsLkxfZml4dXBfNHg4Yl9jb3B5KQorCV9BU01fRVhUQUJM RSgyYiwuTF9maXh1cF80eDhiX2NvcHkpCisJX0FTTV9FWFRBQkxFKDNiLC5MX2ZpeHVwXzR4OGJf Y29weSkKKwlfQVNNX0VYVEFCTEUoNGIsLkxfZml4dXBfNHg4Yl9jb3B5KQorCV9BU01fRVhUQUJM RSg1YiwuTF9maXh1cF80eDhiX2NvcHkpCisJX0FTTV9FWFRBQkxFKDZiLC5MX2ZpeHVwXzR4OGJf Y29weSkKKwlfQVNNX0VYVEFCTEUoN2IsLkxfZml4dXBfNHg4Yl9jb3B5KQorCV9BU01fRVhUQUJM RSg4YiwuTF9maXh1cF80eDhiX2NvcHkpCisJX0FTTV9FWFRBQkxFKDliLC5MX2ZpeHVwXzR4OGJf Y29weSkKKwlfQVNNX0VYVEFCTEUoMTBiLC5MX2ZpeHVwXzR4OGJfY29weSkKKwlfQVNNX0VYVEFC TEUoMTFiLC5MX2ZpeHVwXzR4OGJfY29weSkKKwlfQVNNX0VYVEFCTEUoMTJiLC5MX2ZpeHVwXzR4 OGJfY29weSkKKwlfQVNNX0VYVEFCTEUoMTNiLC5MX2ZpeHVwXzR4OGJfY29weSkKKwlfQVNNX0VY VEFCTEUoMTRiLC5MX2ZpeHVwXzR4OGJfY29weSkKKwlfQVNNX0VYVEFCTEUoMTViLC5MX2ZpeHVw XzR4OGJfY29weSkKKwlfQVNNX0VYVEFCTEUoMTZiLC5MX2ZpeHVwXzR4OGJfY29weSkKKwlfQVNN X0VYVEFCTEUoMjBiLC5MX2ZpeHVwXzhiX2NvcHkpCisJX0FTTV9FWFRBQkxFKDIxYiwuTF9maXh1 cF84Yl9jb3B5KQorCV9BU01fRVhUQUJMRSgzMGIsLkxfZml4dXBfNGJfY29weSkKKwlfQVNNX0VY VEFCTEUoMzFiLC5MX2ZpeHVwXzRiX2NvcHkpCisJX0FTTV9FWFRBQkxFKDQwYiwuTF9maXh1cF8x Yl9jb3B5KQorCV9BU01fRVhUQUJMRSg0MWIsLkxfZml4dXBfMWJfY29weSkKIAlDRklfRU5EUFJP QwogRU5EUFJPQyhfX2NvcHlfdXNlcl9ub2NhY2hlKQpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FibGtj aXBoZXIuYyBiL2NyeXB0by9hYmxrY2lwaGVyLmMKaW5kZXggNjYwMGEyYTE1YjZiLi4zYWQ0M2Fk NjU4NmUgMTAwNjQ0Ci0tLSBhL2NyeXB0by9hYmxrY2lwaGVyLmMKKysrIGIvY3J5cHRvL2FibGtj aXBoZXIuYwpAQCAtNDYxLDYgKzQ2MSw3IEBAIHN0YXRpYyBpbnQgY3J5cHRvX2luaXRfZ2l2Y2lw aGVyX29wcyhzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtLCB1MzIgdHlwZSwKIAljcnQtPmdpdmRlY3J5 cHQgPSBhbGctPmdpdmRlY3J5cHQgPzogbm9fZ2l2ZGVjcnlwdDsKIAljcnQtPmJhc2UgPSBfX2Ny eXB0b19hYmxrY2lwaGVyX2Nhc3QodGZtKTsKIAljcnQtPml2c2l6ZSA9IGFsZy0+aXZzaXplOwor CWNydC0+aGFzX3NldGtleSA9IGFsZy0+bWF4X2tleXNpemU7CiAKIAlyZXR1cm4gMDsKIH0KZGlm ZiAtLWdpdCBhL2NyeXB0by9hbGdpZl9za2NpcGhlci5jIGIvY3J5cHRvL2FsZ2lmX3NrY2lwaGVy LmMKaW5kZXggZGE1ZDRlZDIzOGUyLi40NWZhNmJkOTE4N2IgMTAwNjQ0Ci0tLSBhL2NyeXB0by9h bGdpZl9za2NpcGhlci5jCisrKyBiL2NyeXB0by9hbGdpZl9za2NpcGhlci5jCkBAIC0yNDksMTEg KzI0OSw4IEBAIHN0YXRpYyBpbnQgc2tjaXBoZXJfc2VuZG1zZyhzdHJ1Y3Qga2lvY2IgKnVudXNl ZCwgc3RydWN0IHNvY2tldCAqc29jaywKIHsKIAlzdHJ1Y3Qgc29jayAqc2sgPSBzb2NrLT5zazsK IAlzdHJ1Y3QgYWxnX3NvY2sgKmFzayA9IGFsZ19zayhzayk7Ci0Jc3RydWN0IHNvY2sgKnBzayA9 IGFzay0+cGFyZW50OwotCXN0cnVjdCBhbGdfc29jayAqcGFzayA9IGFsZ19zayhwc2spOwogCXN0 cnVjdCBza2NpcGhlcl9jdHggKmN0eCA9IGFzay0+cHJpdmF0ZTsKLQlzdHJ1Y3QgYWJsa2NpcGhl cl90Zm0gKnNrYyA9IHBhc2stPnByaXZhdGU7Ci0Jc3RydWN0IGNyeXB0b19hYmxrY2lwaGVyICp0 Zm0gPSBza2MtPmJhc2U7CisJc3RydWN0IGNyeXB0b19hYmxrY2lwaGVyICp0Zm0gPSBjcnlwdG9f YWJsa2NpcGhlcl9yZXF0Zm0oJmN0eC0+cmVxKTsKIAl1bnNpZ25lZCBpdnNpemUgPSBjcnlwdG9f YWJsa2NpcGhlcl9pdnNpemUodGZtKTsKIAlzdHJ1Y3Qgc2tjaXBoZXJfc2dfbGlzdCAqc2dsOwog CXN0cnVjdCBhZl9hbGdfY29udHJvbCBjb24gPSB7fTsKZGlmZiAtLWdpdCBhL2NyeXB0by9ibGtj aXBoZXIuYyBiL2NyeXB0by9ibGtjaXBoZXIuYwppbmRleCAzMDQxNTA0MzcwYjEuLjdiNjlkN2E5 MDJhOSAxMDA2NDQKLS0tIGEvY3J5cHRvL2Jsa2NpcGhlci5jCisrKyBiL2NyeXB0by9ibGtjaXBo ZXIuYwpAQCAtNDU4LDYgKzQ1OCw3IEBAIHN0YXRpYyBpbnQgY3J5cHRvX2luaXRfYmxrY2lwaGVy X29wc19hc3luYyhzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQogCX0KIAljcnQtPmJhc2UgPSBfX2Ny eXB0b19hYmxrY2lwaGVyX2Nhc3QodGZtKTsKIAljcnQtPml2c2l6ZSA9IGFsZy0+aXZzaXplOwor CWNydC0+aGFzX3NldGtleSA9IGFsZy0+bWF4X2tleXNpemU7CiAKIAlyZXR1cm4gMDsKIH0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2FoY2kuYyBiL2RyaXZlcnMvYXRhL2FoY2kuYwppbmRleCBm MmZkNmE3MzkyZmMuLmJhZWVlODMyNDEzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvYWhjaS5j CisrKyBiL2RyaXZlcnMvYXRhL2FoY2kuYwpAQCAtMzc3LDE1ICszNzcsMjEgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGFoY2lfcGNpX3RibFtdID0gewogCXsgUENJX1ZERVZJ Q0UoSU5URUwsIDB4YTEwNyksIGJvYXJkX2FoY2kgfSwgLyogU3VucmlzZSBQb2ludC1IIFJBSUQg Ki8KIAl7IFBDSV9WREVWSUNFKElOVEVMLCAweGExMGYpLCBib2FyZF9haGNpIH0sIC8qIFN1bnJp c2UgUG9pbnQtSCBSQUlEICovCiAJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgyODIyKSwgYm9hcmRf YWhjaSB9LCAvKiBMZXdpc2J1cmcgUkFJRCovCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgyODIz KSwgYm9hcmRfYWhjaSB9LCAvKiBMZXdpc2J1cmcgQUhDSSovCiAJeyBQQ0lfVkRFVklDRShJTlRF TCwgMHgyODI2KSwgYm9hcmRfYWhjaSB9LCAvKiBMZXdpc2J1cmcgUkFJRCovCisJeyBQQ0lfVkRF VklDRShJTlRFTCwgMHgyODI3KSwgYm9hcmRfYWhjaSB9LCAvKiBMZXdpc2J1cmcgUkFJRCovCiAJ eyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMTgyKSwgYm9hcmRfYWhjaSB9LCAvKiBMZXdpc2J1cmcg QUhDSSovCiAJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMTg0KSwgYm9hcmRfYWhjaSB9LCAvKiBM ZXdpc2J1cmcgUkFJRCovCiAJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMTg2KSwgYm9hcmRfYWhj aSB9LCAvKiBMZXdpc2J1cmcgUkFJRCovCiAJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMThlKSwg Ym9hcmRfYWhjaSB9LCAvKiBMZXdpc2J1cmcgUkFJRCovCisJeyBQQ0lfVkRFVklDRShJTlRFTCwg MHhhMWQyKSwgYm9hcmRfYWhjaSB9LCAvKiBMZXdpc2J1cmcgUkFJRCovCisJeyBQQ0lfVkRFVklD RShJTlRFTCwgMHhhMWQ2KSwgYm9hcmRfYWhjaSB9LCAvKiBMZXdpc2J1cmcgUkFJRCovCiAJeyBQ Q0lfVkRFVklDRShJTlRFTCwgMHhhMjAyKSwgYm9hcmRfYWhjaSB9LCAvKiBMZXdpc2J1cmcgQUhD SSovCiAJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMjA0KSwgYm9hcmRfYWhjaSB9LCAvKiBMZXdp c2J1cmcgUkFJRCovCiAJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMjA2KSwgYm9hcmRfYWhjaSB9 LCAvKiBMZXdpc2J1cmcgUkFJRCovCiAJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhhMjBlKSwgYm9h cmRfYWhjaSB9LCAvKiBMZXdpc2J1cmcgUkFJRCovCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHhh MjUyKSwgYm9hcmRfYWhjaSB9LCAvKiBMZXdpc2J1cmcgUkFJRCovCisJeyBQQ0lfVkRFVklDRShJ TlRFTCwgMHhhMjU2KSwgYm9hcmRfYWhjaSB9LCAvKiBMZXdpc2J1cmcgUkFJRCovCiAKIAkvKiBK TWljcm9uIDM2MC8xLzMvNS82LCBtYXRjaCBjbGFzcyB0byBhdm9pZCBJREUgZnVuY3Rpb24gKi8K IAl7IFBDSV9WRU5ET1JfSURfSk1JQ1JPTiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgUENJX0FO WV9JRCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2xpYmF0YS1zY3NpLmMgYi9kcml2ZXJzL2F0 YS9saWJhdGEtc2NzaS5jCmluZGV4IDBhYzdhNWU2OTkxYi4uZWVhZGY4Zjk5MDNmIDEwMDY0NAot LS0gYS9kcml2ZXJzL2F0YS9saWJhdGEtc2NzaS5jCisrKyBiL2RyaXZlcnMvYXRhL2xpYmF0YS1z Y3NpLmMKQEAgLTY3MiwxOSArNjcyLDE4IEBAIHN0YXRpYyBpbnQgYXRhX2lvYzMyKHN0cnVjdCBh dGFfcG9ydCAqYXApCiBpbnQgYXRhX3Nhc19zY3NpX2lvY3RsKHN0cnVjdCBhdGFfcG9ydCAqYXAs IHN0cnVjdCBzY3NpX2RldmljZSAqc2NzaWRldiwKIAkJICAgICBpbnQgY21kLCB2b2lkIF9fdXNl ciAqYXJnKQogewotCWludCB2YWwgPSAtRUlOVkFMLCByYyA9IC1FSU5WQUw7CisJdW5zaWduZWQg bG9uZyB2YWw7CisJaW50IHJjID0gLUVJTlZBTDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJ c3dpdGNoIChjbWQpIHsKLQljYXNlIEFUQV9JT0NfR0VUX0lPMzI6CisJY2FzZSBIRElPX0dFVF8z MkJJVDoKIAkJc3Bpbl9sb2NrX2lycXNhdmUoYXAtPmxvY2ssIGZsYWdzKTsKIAkJdmFsID0gYXRh X2lvYzMyKGFwKTsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShhcC0+bG9jaywgZmxhZ3MpOwot CQlpZiAoY29weV90b191c2VyKGFyZywgJnZhbCwgMSkpCi0JCQlyZXR1cm4gLUVGQVVMVDsKLQkJ cmV0dXJuIDA7CisJCXJldHVybiBwdXRfdXNlcih2YWwsICh1bnNpZ25lZCBsb25nIF9fdXNlciAq KWFyZyk7CiAKLQljYXNlIEFUQV9JT0NfU0VUX0lPMzI6CisJY2FzZSBIRElPX1NFVF8zMkJJVDoK IAkJdmFsID0gKHVuc2lnbmVkIGxvbmcpIGFyZzsKIAkJcmMgPSAwOwogCQlzcGluX2xvY2tfaXJx c2F2ZShhcC0+bG9jaywgZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfaTJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9pMmMuYwppbmRleCBkMzBj Y2NjYjlkNzMuLmUwMzVlYWY4ODQ1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfaTJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaTJjLmMKQEAgLTQx MCw3ICs0MTAsNyBAQCBpbnQgaW50ZWxfc2V0dXBfZ21idXMoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIAlyZXR1cm4gMDsKIAogZXJyOgotCXdoaWxlICgtLWkpIHsKKwl3aGlsZSAoaS0tKSB7CiAJ CXN0cnVjdCBpbnRlbF9nbWJ1cyAqYnVzID0gJmRldl9wcml2LT5nbWJ1c1tpXTsKIAkJaTJjX2Rl bF9hZGFwdGVyKCZidXMtPmFkYXB0ZXIpOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f ZGV2aWNlLmMKaW5kZXggZTUxZjA5ZjdhMTc1Li44Y2RlODRiNjY2ZDUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2RldmljZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX2RldmljZS5jCkBAIC05NjAsNyArOTYwLDYgQEAgaW50IHJhZGVvbl9y ZXN1bWVfa21zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJfQogCiAJZHJtX2ttc19oZWxwZXJf cG9sbF9lbmFibGUoZGV2KTsKLQlkcm1faGVscGVyX2hwZF9pcnFfZXZlbnQoZGV2KTsKIAlyZXR1 cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvdXNiaGlkL2hpZC1jb3JlLmMgYi9k cml2ZXJzL2hpZC91c2JoaWQvaGlkLWNvcmUuYwppbmRleCBiNDAzZmNlZjBiODYuLjgzMWUyMGRk NzdhNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9oaWQvdXNiaGlkL2hpZC1jb3JlLmMKKysrIGIvZHJp dmVycy9oaWQvdXNiaGlkL2hpZC1jb3JlLmMKQEAgLTQ0OCw4ICs0NDgsNiBAQCBzdGF0aWMgdm9p ZCBoaWRfY3RybChzdHJ1Y3QgdXJiICp1cmIpCiAJc3RydWN0IHVzYmhpZF9kZXZpY2UgKnVzYmhp ZCA9IGhpZC0+ZHJpdmVyX2RhdGE7CiAJaW50IHVucGx1ZyA9IDAsIHN0YXR1cyA9IHVyYi0+c3Rh dHVzOwogCi0Jc3Bpbl9sb2NrKCZ1c2JoaWQtPmxvY2spOwotCiAJc3dpdGNoIChzdGF0dXMpIHsK IAljYXNlIDA6CQkJLyogc3VjY2VzcyAqLwogCQlpZiAodXNiaGlkLT5jdHJsW3VzYmhpZC0+Y3Ry bHRhaWxdLmRpciA9PSBVU0JfRElSX0lOKQpAQCAtNDY5LDYgKzQ2Nyw4IEBAIHN0YXRpYyB2b2lk IGhpZF9jdHJsKHN0cnVjdCB1cmIgKnVyYikKIAkJaGlkX3dhcm4odXJiLT5kZXYsICJjdHJsIHVy YiBzdGF0dXMgJWQgcmVjZWl2ZWRcbiIsIHN0YXR1cyk7CiAJfQogCisJc3Bpbl9sb2NrKCZ1c2Jo aWQtPmxvY2spOworCiAJaWYgKHVucGx1ZykKIAkJdXNiaGlkLT5jdHJsdGFpbCA9IHVzYmhpZC0+ Y3RybGhlYWQ7CiAJZWxzZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvc2Ff cXVlcnkuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3NhX3F1ZXJ5LmMKaW5kZXggZmJiZmEy NGNmNTcyLi5mNDFmMTUxOWJiZjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3Jl L3NhX3F1ZXJ5LmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvc2FfcXVlcnkuYwpAQCAt NTA4LDcgKzUwOCw3IEBAIGludCBpYl9pbml0X2FoX2Zyb21fcGF0aChzdHJ1Y3QgaWJfZGV2aWNl ICpkZXZpY2UsIHU4IHBvcnRfbnVtLAogCiAJZm9yY2VfZ3JoID0gcmRtYV9wb3J0X2dldF9saW5r X2xheWVyKGRldmljZSwgcG9ydF9udW0pID09IElCX0xJTktfTEFZRVJfRVRIRVJORVQ7CiAKLQlp ZiAocmVjLT5ob3BfbGltaXQgPiAxIHx8IGZvcmNlX2dyaCkgeworCWlmIChyZWMtPmhvcF9saW1p dCA+IDAgfHwgZm9yY2VfZ3JoKSB7CiAJCWFoX2F0dHItPmFoX2ZsYWdzID0gSUJfQUhfR1JIOwog CQlhaF9hdHRyLT5ncmguZGdpZCA9IHJlYy0+ZGdpZDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9p bnB1dC90YWJsZXQvYWlwdGVrLmMgYi9kcml2ZXJzL2lucHV0L3RhYmxldC9haXB0ZWsuYwppbmRl eCA2ZDg5ZmQxODQyYzMuLjU2NTcwMTg3MDAwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC90 YWJsZXQvYWlwdGVrLmMKKysrIGIvZHJpdmVycy9pbnB1dC90YWJsZXQvYWlwdGVrLmMKQEAgLTE4 MTAsNiArMTgxMCwxNCBAQCBhaXB0ZWtfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYs IGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkKIAlpbnB1dF9zZXRfYWJzX3BhcmFtcyhp bnB1dGRldiwgQUJTX1RJTFRfWSwgQUlQVEVLX1RJTFRfTUlOLCBBSVBURUtfVElMVF9NQVgsIDAs IDApOwogCWlucHV0X3NldF9hYnNfcGFyYW1zKGlucHV0ZGV2LCBBQlNfV0hFRUwsIEFJUFRFS19X SEVFTF9NSU4sIEFJUFRFS19XSEVFTF9NQVggLSAxLCAwLCAwKTsKIAorCS8qIFZlcmlmeSB0aGF0 IGEgZGV2aWNlIHJlYWxseSBoYXMgYW4gZW5kcG9pbnQgKi8KKwlpZiAoaW50Zi0+YWx0c2V0dGlu Z1swXS5kZXNjLmJOdW1FbmRwb2ludHMgPCAxKSB7CisJCWRldl9lcnIoJmludGYtPmRldiwKKwkJ CSJpbnRlcmZhY2UgaGFzICVkIGVuZHBvaW50cywgYnV0IG11c3QgaGF2ZSBtaW5pbXVtIDFcbiIs CisJCQlpbnRmLT5hbHRzZXR0aW5nWzBdLmRlc2MuYk51bUVuZHBvaW50cyk7CisJCWVyciA9IC1F SU5WQUw7CisJCWdvdG8gZmFpbDM7CisJfQogCWVuZHBvaW50ID0gJmludGYtPmFsdHNldHRpbmdb MF0uZW5kcG9pbnRbMF0uZGVzYzsKIAogCS8qIEdvIHNldCB1cCBvdXIgVVJCLCB3aGljaCBpcyBj YWxsZWQgd2hlbiB0aGUgdGFibGV0IHJlY2VpdmVzCkBAIC0xODUyLDYgKzE4NjAsNyBAQCBhaXB0 ZWtfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsIGNvbnN0IHN0cnVjdCB1c2JfZGV2 aWNlX2lkICppZCkKIAlpZiAoaSA9PSBBUlJBWV9TSVpFKHNwZWVkcykpIHsKIAkJZGV2X2luZm8o JmludGYtPmRldiwKIAkJCSAiQWlwdGVrIHRyaWVkIGFsbCBzcGVlZHMsIG5vIHNhbmUgcmVzcG9u c2VcbiIpOworCQllcnIgPSAtRUlOVkFMOwogCQlnb3RvIGZhaWwyOwogCX0KIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9pb21tdS9kbWFyLmMgYi9kcml2ZXJzL2lvbW11L2RtYXIuYwppbmRleCBjZjA2 NWRmOWJiMTguLmZjZTRlMmRjZDU5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pb21tdS9kbWFyLmMK KysrIGIvZHJpdmVycy9pb21tdS9kbWFyLmMKQEAgLTkyMyw3ICs5MjMsNyBAQCB2b2lkIGRtYXJf ZGlzYWJsZV9xaShzdHJ1Y3QgaW50ZWxfaW9tbXUgKmlvbW11KQogCiAJcmF3X3NwaW5fbG9ja19p cnFzYXZlKCZpb21tdS0+cmVnaXN0ZXJfbG9jaywgZmxhZ3MpOwogCi0Jc3RzID0gIGRtYXJfcmVh ZHEoaW9tbXUtPnJlZyArIERNQVJfR1NUU19SRUcpOworCXN0cyA9ICByZWFkbChpb21tdS0+cmVn ICsgRE1BUl9HU1RTX1JFRyk7CiAJaWYgKCEoc3RzICYgRE1BX0dTVFNfUUlFUykpCiAJCWdvdG8g ZW5kOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lvbW11L2ludHJfcmVtYXBwaW5nLmMgYi9kcml2 ZXJzL2lvbW11L2ludHJfcmVtYXBwaW5nLmMKaW5kZXggNzNjYTMyMWYzMzBhLi5jYzJjN2I0NjVk NGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW9tbXUvaW50cl9yZW1hcHBpbmcuYworKysgYi9kcml2 ZXJzL2lvbW11L2ludHJfcmVtYXBwaW5nLmMKQEAgLTQ5Niw3ICs0OTYsNyBAQCBzdGF0aWMgdm9p ZCBpb21tdV9kaXNhYmxlX2ludHJfcmVtYXBwaW5nKHN0cnVjdCBpbnRlbF9pb21tdSAqaW9tbXUp CiAKIAlyYXdfc3Bpbl9sb2NrX2lycXNhdmUoJmlvbW11LT5yZWdpc3Rlcl9sb2NrLCBmbGFncyk7 CiAKLQlzdHMgPSBkbWFyX3JlYWRxKGlvbW11LT5yZWcgKyBETUFSX0dTVFNfUkVHKTsKKwlzdHMg PSByZWFkbChpb21tdS0+cmVnICsgRE1BUl9HU1RTX1JFRyk7CiAJaWYgKCEoc3RzICYgRE1BX0dT VFNfSVJFUykpCiAJCWdvdG8gZW5kOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC91YmkvdXBk LmMgYi9kcml2ZXJzL210ZC91YmkvdXBkLmMKaW5kZXggMDY4YTI0NjZkMDYwLi5kMTgwMmIwNTRi ZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL3ViaS91cGQuYworKysgYi9kcml2ZXJzL210ZC91 YmkvdXBkLmMKQEAgLTE5Nyw3ICsxOTcsNyBAQCBpbnQgdWJpX3N0YXJ0X2xlYl9jaGFuZ2Uoc3Ry dWN0IHViaV9kZXZpY2UgKnViaSwgc3RydWN0IHViaV92b2x1bWUgKnZvbCwKIAl2b2wtPmNoX2xu dW0gPSByZXEtPmxudW07CiAJdm9sLT5jaF9kdHlwZSA9IHJlcS0+ZHR5cGU7CiAKLQl2b2wtPnVw ZF9idWYgPSB2bWFsbG9jKHJlcS0+Ynl0ZXMpOworCXZvbC0+dXBkX2J1ZiA9IHZtYWxsb2MoQUxJ R04oKGludClyZXEtPmJ5dGVzLCB1YmktPm1pbl9pb19zaXplKSk7CiAJaWYgKCF2b2wtPnVwZF9i dWYpCiAJCXJldHVybiAtRU5PTUVNOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9jYW4vdXNi L2Vtc191c2IuYyBiL2RyaXZlcnMvbmV0L2Nhbi91c2IvZW1zX3VzYi5jCmluZGV4IGE3MmM3YmZi NDA5MC4uM2I4YzRkYTExZjNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9jYW4vdXNiL2Vtc191 c2IuYworKysgYi9kcml2ZXJzL25ldC9jYW4vdXNiL2Vtc191c2IuYwpAQCAtMTE4LDYgKzExOCw5 IEBAIE1PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKICAqLwogI2RlZmluZSBFTVNfVVNCX0FSTTdf Q0xPQ0sgODAwMDAwMAogCisjZGVmaW5lIENQQ19UWF9RVUVVRV9UUklHR0VSX0xPVwkyNQorI2Rl ZmluZSBDUENfVFhfUVVFVUVfVFJJR0dFUl9ISUdICTM1CisKIC8qCiAgKiBDQU4tTWVzc2FnZSBy ZXByZXNlbnRhdGlvbiBpbiBhIENQQ19NU0cuIE1lc3NhZ2Ugb2JqZWN0IHR5cGUgaXMKICAqIENQ Q19NU0dfVFlQRV9DQU5fRlJBTUUgb3IgQ1BDX01TR19UWVBFX1JUUl9GUkFNRSBvcgpAQCAtMjgw LDYgKzI4MywxMSBAQCBzdGF0aWMgdm9pZCBlbXNfdXNiX3JlYWRfaW50ZXJydXB0X2NhbGxiYWNr KHN0cnVjdCB1cmIgKnVyYikKIAlzd2l0Y2ggKHVyYi0+c3RhdHVzKSB7CiAJY2FzZSAwOgogCQlk ZXYtPmZyZWVfc2xvdHMgPSBkZXYtPmludHJfaW5fYnVmZmVyWzFdOworCQlpZihkZXYtPmZyZWVf c2xvdHMgPiBDUENfVFhfUVVFVUVfVFJJR0dFUl9ISUdIKXsKKwkJCWlmIChuZXRpZl9xdWV1ZV9z dG9wcGVkKG5ldGRldikpeworCQkJCW5ldGlmX3dha2VfcXVldWUobmV0ZGV2KTsKKwkJCX0KKwkJ fQogCQlicmVhazsKIAogCWNhc2UgLUVDT05OUkVTRVQ6IC8qIHVubGluayAqLwpAQCAtNTM1LDgg KzU0Myw2IEBAIHN0YXRpYyB2b2lkIGVtc191c2Jfd3JpdGVfYnVsa19jYWxsYmFjayhzdHJ1Y3Qg dXJiICp1cmIpCiAJLyogUmVsZWFzZSBjb250ZXh0ICovCiAJY29udGV4dC0+ZWNob19pbmRleCA9 IE1BWF9UWF9VUkJTOwogCi0JaWYgKG5ldGlmX3F1ZXVlX3N0b3BwZWQobmV0ZGV2KSkKLQkJbmV0 aWZfd2FrZV9xdWV1ZShuZXRkZXYpOwogfQogCiAvKgpAQCAtNTk2LDcgKzYwMiw3IEBAIHN0YXRp YyBpbnQgZW1zX3VzYl9zdGFydChzdHJ1Y3QgZW1zX3VzYiAqZGV2KQogCWludCBlcnIsIGk7CiAK IAlkZXYtPmludHJfaW5fYnVmZmVyWzBdID0gMDsKLQlkZXYtPmZyZWVfc2xvdHMgPSAxNTsgLyog aW5pdGlhbCBzaXplICovCisJZGV2LT5mcmVlX3Nsb3RzID0gNTA7IC8qIGluaXRpYWwgc2l6ZSAq LwogCiAJZm9yIChpID0gMDsgaSA8IE1BWF9SWF9VUkJTOyBpKyspIHsKIAkJc3RydWN0IHVyYiAq dXJiID0gTlVMTDsKQEAgLTg1OCw3ICs4NjQsNyBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgZW1zX3Vz Yl9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZQog CiAJCS8qIFNsb3cgZG93biB0eCBwYXRoICovCiAJCWlmIChhdG9taWNfcmVhZCgmZGV2LT5hY3Rp dmVfdHhfdXJicykgPj0gTUFYX1RYX1VSQlMgfHwKLQkJICAgIGRldi0+ZnJlZV9zbG90cyA8IDUp IHsKKwkJICAgIGRldi0+ZnJlZV9zbG90cyA8IENQQ19UWF9RVUVVRV9UUklHR0VSX0xPVykgewog CQkJbmV0aWZfc3RvcF9xdWV1ZShuZXRkZXYpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9wb3J0LmMgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg0L2VuX3BvcnQuYwppbmRleCAwM2M4NGNkNzhjZGUuLjAxNTg3OTk4 MzljYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9w b3J0LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9lbl9wb3J0LmMK QEAgLTI0OCwxMSArMjQ4LDExIEBAIGludCBtbHg0X2VuX0RVTVBfRVRIX1NUQVRTKHN0cnVjdCBt bHg0X2VuX2RldiAqbWRldiwgdTggcG9ydCwgdTggcmVzZXQpCiAJCQkgICBiZTY0X3RvX2NwdSht bHg0X2VuX3N0YXRzLT5NQ0FTVF9ub3ZsYW4pOwogCXN0YXRzLT5jb2xsaXNpb25zID0gMDsKIAlz dGF0cy0+cnhfbGVuZ3RoX2Vycm9ycyA9IGJlMzJfdG9fY3B1KG1seDRfZW5fc3RhdHMtPlJkcm9w TGVuZ3RoKTsKLQlzdGF0cy0+cnhfb3Zlcl9lcnJvcnMgPSBiZTMyX3RvX2NwdShtbHg0X2VuX3N0 YXRzLT5SZHJvcE92Zmx3KTsKKwlzdGF0cy0+cnhfb3Zlcl9lcnJvcnMgPSAwOwogCXN0YXRzLT5y eF9jcmNfZXJyb3JzID0gYmUzMl90b19jcHUobWx4NF9lbl9zdGF0cy0+UkNSQyk7CiAJc3RhdHMt PnJ4X2ZyYW1lX2Vycm9ycyA9IDA7CiAJc3RhdHMtPnJ4X2ZpZm9fZXJyb3JzID0gYmUzMl90b19j cHUobWx4NF9lbl9zdGF0cy0+UmRyb3BPdmZsdyk7Ci0Jc3RhdHMtPnJ4X21pc3NlZF9lcnJvcnMg PSBiZTMyX3RvX2NwdShtbHg0X2VuX3N0YXRzLT5SZHJvcE92Zmx3KTsKKwlzdGF0cy0+cnhfbWlz c2VkX2Vycm9ycyA9IDA7CiAJc3RhdHMtPnR4X2Fib3J0ZWRfZXJyb3JzID0gMDsKIAlzdGF0cy0+ dHhfY2Fycmllcl9lcnJvcnMgPSAwOwogCXN0YXRzLT50eF9maWZvX2Vycm9ycyA9IDA7CmRpZmYg LS1naXQgYS9kcml2ZXJzL3BjaS94ZW4tcGNpZnJvbnQuYyBiL2RyaXZlcnMvcGNpL3hlbi1wY2lm cm9udC5jCmluZGV4IDkwODMyYTk1NTk5MS4uMTBkNGNhMmI0MTk3IDEwMDY0NAotLS0gYS9kcml2 ZXJzL3BjaS94ZW4tcGNpZnJvbnQuYworKysgYi9kcml2ZXJzL3BjaS94ZW4tcGNpZnJvbnQuYwpA QCAtNTAsNyArNTAsNyBAQCBzdHJ1Y3QgcGNpZnJvbnRfZGV2aWNlIHsKIH07CiAKIHN0cnVjdCBw Y2lmcm9udF9zZCB7Ci0JaW50IGRvbWFpbjsKKwlzdHJ1Y3QgcGNpX3N5c2RhdGEgc2Q7CiAJc3Ry dWN0IHBjaWZyb250X2RldmljZSAqcGRldjsKIH07CiAKQEAgLTY0LDcgKzY0LDkgQEAgc3RhdGlj IGlubGluZSB2b2lkIHBjaWZyb250X2luaXRfc2Qoc3RydWN0IHBjaWZyb250X3NkICpzZCwKIAkJ CQkgICAgdW5zaWduZWQgaW50IGRvbWFpbiwgdW5zaWduZWQgaW50IGJ1cywKIAkJCQkgICAgc3Ry dWN0IHBjaWZyb250X2RldmljZSAqcGRldikKIHsKLQlzZC0+ZG9tYWluID0gZG9tYWluOworCS8q IEJlY2F1c2Ugd2UgZG8gbm90IGV4cG9zZSB0aGF0IGluZm9ybWF0aW9uIHZpYSBYZW5CdXMuICov CisJc2QtPnNkLm5vZGUgPSBmaXJzdF9vbmxpbmVfbm9kZTsKKwlzZC0+c2QuZG9tYWluID0gZG9t YWluOwogCXNkLT5wZGV2ID0gcGRldjsKIH0KIApAQCAtNDYxLDggKzQ2Myw4IEBAIHN0YXRpYyBp bnQgX19kZXZpbml0IHBjaWZyb250X3NjYW5fcm9vdChzdHJ1Y3QgcGNpZnJvbnRfZGV2aWNlICpw ZGV2LAogCWRldl9pbmZvKCZwZGV2LT54ZGV2LT5kZXYsICJDcmVhdGluZyBQQ0kgRnJvbnRlbmQg QnVzICUwNHg6JTAyeFxuIiwKIAkJIGRvbWFpbiwgYnVzKTsKIAotCWJ1c19lbnRyeSA9IGttYWxs b2Moc2l6ZW9mKCpidXNfZW50cnkpLCBHRlBfS0VSTkVMKTsKLQlzZCA9IGttYWxsb2Moc2l6ZW9m KCpzZCksIEdGUF9LRVJORUwpOworCWJ1c19lbnRyeSA9IGt6YWxsb2Moc2l6ZW9mKCpidXNfZW50 cnkpLCBHRlBfS0VSTkVMKTsKKwlzZCA9IGt6YWxsb2Moc2l6ZW9mKCpzZCksIEdGUF9LRVJORUwp OwogCWlmICghYnVzX2VudHJ5IHx8ICFzZCkgewogCQllcnIgPSAtRU5PTUVNOwogCQlnb3RvIGVy cl9vdXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZF9hbGlhcy5jIGIvZHJp dmVycy9zMzkwL2Jsb2NrL2Rhc2RfYWxpYXMuYwppbmRleCBjMzg4ZWRhMWUyYjEuLjg4YTAxMmU5 M2JiNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfYWxpYXMuYworKysgYi9k cml2ZXJzL3MzOTAvYmxvY2svZGFzZF9hbGlhcy5jCkBAIC0zMjYsOCArMzI2LDEwIEBAIHZvaWQg ZGFzZF9hbGlhc19kaXNjb25uZWN0X2RldmljZV9mcm9tX2xjdShzdHJ1Y3QgZGFzZF9kZXZpY2Ug KmRldmljZSkKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbGN1LT5sb2NrLCBmbGFncyk7CiAJ CWNhbmNlbF93b3JrX3N5bmMoJmxjdS0+c3VjX2RhdGEud29ya2VyKTsKIAkJc3Bpbl9sb2NrX2ly cXNhdmUoJmxjdS0+bG9jaywgZmxhZ3MpOwotCQlpZiAoZGV2aWNlID09IGxjdS0+c3VjX2RhdGEu ZGV2aWNlKQorCQlpZiAoZGV2aWNlID09IGxjdS0+c3VjX2RhdGEuZGV2aWNlKSB7CisJCQlkYXNk X3B1dF9kZXZpY2UoZGV2aWNlKTsKIAkJCWxjdS0+c3VjX2RhdGEuZGV2aWNlID0gTlVMTDsKKwkJ fQogCX0KIAl3YXNfcGVuZGluZyA9IDA7CiAJaWYgKGRldmljZSA9PSBsY3UtPnJ1YWNfZGF0YS5k ZXZpY2UpIHsKQEAgLTMzNSw4ICszMzcsMTAgQEAgdm9pZCBkYXNkX2FsaWFzX2Rpc2Nvbm5lY3Rf ZGV2aWNlX2Zyb21fbGN1KHN0cnVjdCBkYXNkX2RldmljZSAqZGV2aWNlKQogCQl3YXNfcGVuZGlu ZyA9IDE7CiAJCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmbGN1LT5ydWFjX2RhdGEuZHdvcmsp OwogCQlzcGluX2xvY2tfaXJxc2F2ZSgmbGN1LT5sb2NrLCBmbGFncyk7Ci0JCWlmIChkZXZpY2Ug PT0gbGN1LT5ydWFjX2RhdGEuZGV2aWNlKQorCQlpZiAoZGV2aWNlID09IGxjdS0+cnVhY19kYXRh LmRldmljZSkgeworCQkJZGFzZF9wdXRfZGV2aWNlKGRldmljZSk7CiAJCQlsY3UtPnJ1YWNfZGF0 YS5kZXZpY2UgPSBOVUxMOworCQl9CiAJfQogCXByaXZhdGUtPmxjdSA9IE5VTEw7CiAJc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmbGN1LT5sb2NrLCBmbGFncyk7CkBAIC01ODYsOCArNTkwLDEwIEBA IHN0YXRpYyB2b2lkIGxjdV91cGRhdGVfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJ aWYgKHJjIHx8IChsY3UtPmZsYWdzICYgTkVFRF9VQUNfVVBEQVRFKSkgewogCQlEQkZfREVWX0VW RU5UKERCRl9XQVJOSU5HLCBkZXZpY2UsICJjb3VsZCBub3QgdXBkYXRlIgogCQkJICAgICIgYWxp YXMgZGF0YSBpbiBsY3UgKHJjID0gJWQpLCByZXRyeSBsYXRlciIsIHJjKTsKLQkJc2NoZWR1bGVf ZGVsYXllZF93b3JrKCZsY3UtPnJ1YWNfZGF0YS5kd29yaywgMzAqSFopOworCQlpZiAoIXNjaGVk dWxlX2RlbGF5ZWRfd29yaygmbGN1LT5ydWFjX2RhdGEuZHdvcmssIDMwKkhaKSkKKwkJCWRhc2Rf cHV0X2RldmljZShkZXZpY2UpOwogCX0gZWxzZSB7CisJCWRhc2RfcHV0X2RldmljZShkZXZpY2Up OwogCQlsY3UtPnJ1YWNfZGF0YS5kZXZpY2UgPSBOVUxMOwogCQlsY3UtPmZsYWdzICY9IH5VUERB VEVfUEVORElORzsKIAl9CkBAIC02MzAsOCArNjM2LDEwIEBAIHN0YXRpYyBpbnQgX3NjaGVkdWxl X2xjdV91cGRhdGUoc3RydWN0IGFsaWFzX2xjdSAqbGN1LAogCSAqLwogCWlmICghdXNlZGV2KQog CQlyZXR1cm4gLUVJTlZBTDsKKwlkYXNkX2dldF9kZXZpY2UodXNlZGV2KTsKIAlsY3UtPnJ1YWNf ZGF0YS5kZXZpY2UgPSB1c2VkZXY7Ci0Jc2NoZWR1bGVfZGVsYXllZF93b3JrKCZsY3UtPnJ1YWNf ZGF0YS5kd29yaywgMCk7CisJaWYgKCFzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmxjdS0+cnVhY19k YXRhLmR3b3JrLCAwKSkKKwkJZGFzZF9wdXRfZGV2aWNlKHVzZWRldik7CiAJcmV0dXJuIDA7CiB9 CiAKQEAgLTc0OSw3ICs3NTcsNyBAQCBzdGF0aWMgaW50IHJlc2V0X3N1bW1hcnlfdW5pdF9jaGVj ayhzdHJ1Y3QgYWxpYXNfbGN1ICpsY3UsCiAJQVNDRUJDKChjaGFyICopICZjcXItPm1hZ2ljLCA0 KTsKIAljY3cgPSBjcXItPmNwYWRkcjsKIAljY3ctPmNtZF9jb2RlID0gREFTRF9FQ0tEX0NDV19S U0NLOwotCWNjdy0+ZmxhZ3MgPSAwIDsKKwljY3ctPmZsYWdzID0gQ0NXX0ZMQUdfU0xJOwogCWNj dy0+Y291bnQgPSAxNjsKIAljY3ctPmNkYSA9IChfX3UzMikoYWRkcl90KSBjcXItPmRhdGE7CiAJ KChjaGFyICopY3FyLT5kYXRhKVswXSA9IHJlYXNvbjsKQEAgLTk1Myw2ICs5NjEsNyBAQCBzdGF0 aWMgdm9pZCBzdW1tYXJ5X3VuaXRfY2hlY2tfaGFuZGxpbmdfd29yayhzdHJ1Y3Qgd29ya19zdHJ1 Y3QgKndvcmspCiAJLyogMy4gcmVhZCBuZXcgYWxpYXMgY29uZmlndXJhdGlvbiAqLwogCV9zY2hl ZHVsZV9sY3VfdXBkYXRlKGxjdSwgZGV2aWNlKTsKIAlsY3UtPnN1Y19kYXRhLmRldmljZSA9IE5V TEw7CisJZGFzZF9wdXRfZGV2aWNlKGRldmljZSk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm bGN1LT5sb2NrLCBmbGFncyk7CiB9CiAKQEAgLTEwMTIsNiArMTAyMSw4IEBAIHZvaWQgZGFzZF9h bGlhc19oYW5kbGVfc3VtbWFyeV91bml0X2NoZWNrKHN0cnVjdCBkYXNkX2RldmljZSAqZGV2aWNl LAogCX0KIAlsY3UtPnN1Y19kYXRhLnJlYXNvbiA9IHJlYXNvbjsKIAlsY3UtPnN1Y19kYXRhLmRl dmljZSA9IGRldmljZTsKKwlkYXNkX2dldF9kZXZpY2UoZGV2aWNlKTsKIAlzcGluX3VubG9jaygm bGN1LT5sb2NrKTsKLQlzY2hlZHVsZV93b3JrKCZsY3UtPnN1Y19kYXRhLndvcmtlcik7CisJaWYg KCFzY2hlZHVsZV93b3JrKCZsY3UtPnN1Y19kYXRhLndvcmtlcikpCisJCWRhc2RfcHV0X2Rldmlj ZShkZXZpY2UpOwogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9pcHIuYyBiL2RyaXZlcnMv c2NzaS9pcHIuYwppbmRleCBmZDg2MGQ5NTJiMjguLjE3ZjkzZWUwZmY0NiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9zY3NpL2lwci5jCisrKyBiL2RyaXZlcnMvc2NzaS9pcHIuYwpAQCAtMzczNiwxMyAr MzczNiwxNyBAQCBzdGF0aWMgc3NpemVfdCBpcHJfc3RvcmVfdXBkYXRlX2Z3KHN0cnVjdCBkZXZp Y2UgKmRldiwKIAlzdHJ1Y3QgaXByX3NnbGlzdCAqc2dsaXN0OwogCWNoYXIgZm5hbWVbMTAwXTsK IAljaGFyICpzcmM7Ci0JaW50IGxlbiwgcmVzdWx0LCBkbmxkX3NpemU7CisJY2hhciAqZW5kbGlu ZTsKKwlpbnQgcmVzdWx0LCBkbmxkX3NpemU7CiAKIAlpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1J TikpCiAJCXJldHVybiAtRUFDQ0VTOwogCi0JbGVuID0gc25wcmludGYoZm5hbWUsIDk5LCAiJXMi LCBidWYpOwotCWZuYW1lW2xlbi0xXSA9ICdcMCc7CisJc25wcmludGYoZm5hbWUsIHNpemVvZihm bmFtZSksICIlcyIsIGJ1Zik7CisKKwllbmRsaW5lID0gc3RyY2hyKGZuYW1lLCAnXG4nKTsKKwlp ZiAoZW5kbGluZSkKKwkJKmVuZGxpbmUgPSAnXDAnOwogCiAJaWYocmVxdWVzdF9maXJtd2FyZSgm ZndfZW50cnksIGZuYW1lLCAmaW9hX2NmZy0+cGRldi0+ZGV2KSkgewogCQlkZXZfZXJyKCZpb2Ff Y2ZnLT5wZGV2LT5kZXYsICJGaXJtd2FyZSBmaWxlICVzIG5vdCBmb3VuZFxuIiwgZm5hbWUpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZHdjMy9jb3JlLmggYi9kcml2ZXJzL3VzYi9kd2MzL2Nv cmUuaAppbmRleCBhZTJiNzYzNjUwZDguLmIwNWU0YTU4NDk1MyAxMDA2NDQKLS0tIGEvZHJpdmVy cy91c2IvZHdjMy9jb3JlLmgKKysrIGIvZHJpdmVycy91c2IvZHdjMy9jb3JlLmgKQEAgLTYxMCw3 ICs2MTAsNiBAQCBzdHJ1Y3QgZHdjMyB7CiAJdW5zaWduZWQJCWVwMF9zdGF0dXNfcGVuZGluZzox OwogCXVuc2lnbmVkCQllcDBfYm91bmNlZDoxOwogCXVuc2lnbmVkCQllcDBfZXhwZWN0X2luOjE7 Ci0JdW5zaWduZWQJCXN0YXJ0X2NvbmZpZ19pc3N1ZWQ6MTsKIAogCWVudW0gZHdjM19lcDBfbmV4 dAllcDBfbmV4dF9ldmVudDsKIAllbnVtIGR3YzNfZXAwX3N0YXRlCWVwMHN0YXRlOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy91c2IvZHdjMy9lcDAuYyBiL2RyaXZlcnMvdXNiL2R3YzMvZXAwLmMKaW5k ZXggMjQ4NjRkNGQyYjE0Li41MjkxODZiY2Y3YzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2R3 YzMvZXAwLmMKKysrIGIvZHJpdmVycy91c2IvZHdjMy9lcDAuYwpAQCAtNDQ5LDcgKzQ0OSw2IEBA IHN0YXRpYyBpbnQgZHdjM19lcDBfc2V0X2NvbmZpZyhzdHJ1Y3QgZHdjMyAqZHdjLCBzdHJ1Y3Qg dXNiX2N0cmxyZXF1ZXN0ICpjdHJsKQogCXUzMiBjZmc7CiAJaW50IHJldDsKIAotCWR3Yy0+c3Rh cnRfY29uZmlnX2lzc3VlZCA9IGZhbHNlOwogCWNmZyA9IGxlMTZfdG9fY3B1KGN0cmwtPndWYWx1 ZSk7CiAKIAlzd2l0Y2ggKGR3Yy0+ZGV2X3N0YXRlKSB7CkBAIC00OTgsMTAgKzQ5Nyw2IEBAIHN0 YXRpYyBpbnQgZHdjM19lcDBfc3RkX3JlcXVlc3Qoc3RydWN0IGR3YzMgKmR3Yywgc3RydWN0IHVz Yl9jdHJscmVxdWVzdCAqY3RybCkKIAkJZGV2X3ZkYmcoZHdjLT5kZXYsICJVU0JfUkVRX1NFVF9D T05GSUdVUkFUSU9OXG4iKTsKIAkJcmV0ID0gZHdjM19lcDBfc2V0X2NvbmZpZyhkd2MsIGN0cmwp OwogCQlicmVhazsKLQljYXNlIFVTQl9SRVFfU0VUX0lOVEVSRkFDRToKLQkJZGV2X3ZkYmcoZHdj LT5kZXYgLCJVU0JfUkVRX1NFVF9JTlRFUkZBQ0UiKTsKLQkJZHdjLT5zdGFydF9jb25maWdfaXNz dWVkID0gZmFsc2U7Ci0JCS8qIEZhbGwgdGhyb3VnaCAqLwogCWRlZmF1bHQ6CiAJCWRldl92ZGJn KGR3Yy0+ZGV2LCAiRm9yd2FyZGluZyB0byBnYWRnZXQgZHJpdmVyXG4iKTsKIAkJcmV0ID0gZHdj M19lcDBfZGVsZWdhdGVfcmVxKGR3YywgY3RybCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9k d2MzL2dhZGdldC5jIGIvZHJpdmVycy91c2IvZHdjMy9nYWRnZXQuYwppbmRleCBiNDYyM2YxYWMx NmYuLjM5MjIyMmJhMjhiNyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZHdjMy9nYWRnZXQuYwor KysgYi9kcml2ZXJzL3VzYi9kd2MzL2dhZGdldC5jCkBAIC0yMjksMjQgKzIyOSw2NiBAQCBzdGF0 aWMgdm9pZCBkd2MzX2ZyZWVfdHJiX3Bvb2woc3RydWN0IGR3YzNfZXAgKmRlcCkKIAlkZXAtPnRy Yl9wb29sX2RtYSA9IDA7CiB9CiAKK3N0YXRpYyBpbnQgZHdjM19nYWRnZXRfc2V0X3hmZXJfcmVz b3VyY2Uoc3RydWN0IGR3YzMgKmR3Yywgc3RydWN0IGR3YzNfZXAgKmRlcCk7CisKKy8qKgorICog ZHdjM19nYWRnZXRfc3RhcnRfY29uZmlnIC0gQ29uZmlndXJlIEVQIHJlc291cmNlcworICogQGR3 YzogcG9pbnRlciB0byBvdXIgY29udHJvbGxlciBjb250ZXh0IHN0cnVjdHVyZQorICogQGRlcDog ZW5kcG9pbnQgdGhhdCBpcyBiZWluZyBlbmFibGVkCisgKgorICogVGhlIGFzc2lnbm1lbnQgb2Yg dHJhbnNmZXIgcmVzb3VyY2VzIGNhbm5vdCBwZXJmZWN0bHkgZm9sbG93IHRoZQorICogZGF0YSBi b29rIGR1ZSB0byB0aGUgZmFjdCB0aGF0IHRoZSBjb250cm9sbGVyIGRyaXZlciBkb2VzIG5vdCBo YXZlCisgKiBhbGwga25vd2xlZGdlIG9mIHRoZSBjb25maWd1cmF0aW9uIGluIGFkdmFuY2UuIEl0 IGlzIGdpdmVuIHRoaXMKKyAqIGluZm9ybWF0aW9uIHBpZWNlbWVhbCBieSB0aGUgY29tcG9zaXRl IGdhZGdldCBmcmFtZXdvcmsgYWZ0ZXIgZXZlcnkKKyAqIFNFVF9DT05GSUdVUkFUSU9OIGFuZCBT RVRfSU5URVJGQUNFLiBUcnlpbmcgdG8gZm9sbG93IHRoZSBkYXRhYm9vaworICogcHJvZ3JhbW1p bmcgbW9kZWwgaW4gdGhpcyBzY2VuYXJpbyBjYW4gY2F1c2UgZXJyb3JzLiBGb3IgdHdvCisgKiBy ZWFzb25zOgorICoKKyAqIDEpIFRoZSBkYXRhYm9vayBzYXlzIHRvIGRvIERFUFNUQVJUQ0ZHIGZv ciBldmVyeSBTRVRfQ09ORklHVVJBVElPTgorICogYW5kIFNFVF9JTlRFUkZBQ0UgKDguMS41KS4g VGhpcyBpcyBpbmNvcnJlY3QgaW4gdGhlIHNjZW5hcmlvIG9mCisgKiBtdWx0aXBsZSBpbnRlcmZh Y2VzLgorICoKKyAqIDIpIFRoZSBkYXRhYm9vayBkb2VzIG5vdCBtZW50aW9uIGRvaW5nIG1vcmUg REVQWEZFUkNGRyBmb3IgbmV3CisgKiBlbmRwb2ludCBvbiBhbHQgc2V0dGluZyAoOC4xLjYpLgor ICoKKyAqIFRoZSBmb2xsb3dpbmcgc2ltcGxpZmllZCBtZXRob2QgaXMgdXNlZCBpbnN0ZWFkOgor ICoKKyAqIEFsbCBoYXJkd2FyZSBlbmRwb2ludHMgY2FuIGJlIGFzc2lnbmVkIGEgdHJhbnNmZXIg cmVzb3VyY2UgYW5kIHRoaXMKKyAqIHNldHRpbmcgd2lsbCBzdGF5IHBlcnNpc3RlbnQgdW50aWwg ZWl0aGVyIGEgY29yZSByZXNldCBvcgorICogaGliZXJuYXRpb24uIFNvIHdoZW5ldmVyIHdlIGRv IGEgREVQU1RBUlRDRkcoMCkgd2UgY2FuIGdvIGFoZWFkIGFuZAorICogZG8gREVQWEZFUkNGRyBm b3IgZXZlcnkgaGFyZHdhcmUgZW5kcG9pbnQgYXMgd2VsbC4gV2UgYXJlCisgKiBndWFyYW50ZWVk IHRoYXQgdGhlcmUgYXJlIGFzIG1hbnkgdHJhbnNmZXIgcmVzb3VyY2VzIGFzIGVuZHBvaW50cy4K KyAqCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmb3IgZWFjaCBlbmRwb2ludCB3aGVuIGl0 IGlzIGJlaW5nIGVuYWJsZWQKKyAqIGJ1dCBpcyB0cmlnZ2VyZWQgb25seSB3aGVuIGNhbGxlZCBm b3IgRVAwLW91dCwgd2hpY2ggYWx3YXlzIGhhcHBlbnMKKyAqIGZpcnN0LCBhbmQgd2hpY2ggc2hv dWxkIG9ubHkgaGFwcGVuIGluIG9uZSBvZiB0aGUgYWJvdmUgY29uZGl0aW9ucy4KKyAqLwogc3Rh dGljIGludCBkd2MzX2dhZGdldF9zdGFydF9jb25maWcoc3RydWN0IGR3YzMgKmR3Yywgc3RydWN0 IGR3YzNfZXAgKmRlcCkKIHsKIAlzdHJ1Y3QgZHdjM19nYWRnZXRfZXBfY21kX3BhcmFtcyBwYXJh bXM7CiAJdTMyCQkJY21kOworCWludAkJCWk7CisJaW50CQkJcmV0OworCisJaWYgKGRlcC0+bnVt YmVyKQorCQlyZXR1cm4gMDsKIAogCW1lbXNldCgmcGFyYW1zLCAweDAwLCBzaXplb2YocGFyYW1z KSk7CisJY21kID0gRFdDM19ERVBDTURfREVQU1RBUlRDRkc7CiAKLQlpZiAoZGVwLT5udW1iZXIg IT0gMSkgewotCQljbWQgPSBEV0MzX0RFUENNRF9ERVBTVEFSVENGRzsKLQkJLyogWGZlclJzY0lk eCA9PSAwIGZvciBlcDAgYW5kIDIgZm9yIHRoZSByZW1haW5pbmcgKi8KLQkJaWYgKGRlcC0+bnVt YmVyID4gMSkgewotCQkJaWYgKGR3Yy0+c3RhcnRfY29uZmlnX2lzc3VlZCkKLQkJCQlyZXR1cm4g MDsKLQkJCWR3Yy0+c3RhcnRfY29uZmlnX2lzc3VlZCA9IHRydWU7Ci0JCQljbWQgfD0gRFdDM19E RVBDTURfUEFSQU0oMik7Ci0JCX0KKwlyZXQgPSBkd2MzX3NlbmRfZ2FkZ2V0X2VwX2NtZChkd2Ms IDAsIGNtZCwgJnBhcmFtcyk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKIAotCQlyZXR1cm4g ZHdjM19zZW5kX2dhZGdldF9lcF9jbWQoZHdjLCAwLCBjbWQsICZwYXJhbXMpOworCWZvciAoaSA9 IDA7IGkgPCBEV0MzX0VORFBPSU5UU19OVU07IGkrKykgeworCQlzdHJ1Y3QgZHdjM19lcCAqZGVw ID0gZHdjLT5lcHNbaV07CisKKwkJaWYgKCFkZXApCisJCQljb250aW51ZTsKKworCQlyZXQgPSBk d2MzX2dhZGdldF9zZXRfeGZlcl9yZXNvdXJjZShkd2MsIGRlcCk7CisJCWlmIChyZXQpCisJCQly ZXR1cm4gcmV0OwogCX0KIAogCXJldHVybiAwOwpAQCAtMzQwLDEwICszODIsNiBAQCBzdGF0aWMg aW50IF9fZHdjM19nYWRnZXRfZXBfZW5hYmxlKHN0cnVjdCBkd2MzX2VwICpkZXAsCiAJCXN0cnVj dCBkd2MzX3RyYl9odwkqdHJiX2xpbmtfaHc7CiAJCXN0cnVjdCBkd2MzX3RyYgkJdHJiX2xpbms7 CiAKLQkJcmV0ID0gZHdjM19nYWRnZXRfc2V0X3hmZXJfcmVzb3VyY2UoZHdjLCBkZXApOwotCQlp ZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQogCQlkZXAtPmRlc2MgPSBkZXNjOwogCQlkZXAtPnR5 cGUgPSB1c2JfZW5kcG9pbnRfdHlwZShkZXNjKTsKIAkJZGVwLT5mbGFncyB8PSBEV0MzX0VQX0VO QUJMRUQ7CkBAIC0xMTg1LDggKzEyMjMsNiBAQCBzdGF0aWMgaW50IGR3YzNfZ2FkZ2V0X3N0YXJ0 KHN0cnVjdCB1c2JfZ2FkZ2V0ICpnLAogCXJlZyB8PSBEV0MzX0RDRkdfU1VQRVJTUEVFRDsKIAlk d2MzX3dyaXRlbChkd2MtPnJlZ3MsIERXQzNfRENGRywgcmVnKTsKIAotCWR3Yy0+c3RhcnRfY29u ZmlnX2lzc3VlZCA9IGZhbHNlOwotCiAJLyogU3RhcnQgd2l0aCBTdXBlclNwZWVkIERlZmF1bHQg Ki8KIAlkd2MzX2dhZGdldF9lcDBfZGVzYy53TWF4UGFja2V0U2l6ZSA9IGNwdV90b19sZTE2KDUx Mik7CiAKQEAgLTE2NDAsNyArMTY3Niw2IEBAIHN0YXRpYyB2b2lkIGR3YzNfZ2FkZ2V0X2Rpc2Nv bm5lY3RfaW50ZXJydXB0KHN0cnVjdCBkd2MzICpkd2MpCiAKIAlkd2MzX3N0b3BfYWN0aXZlX3Ry YW5zZmVycyhkd2MpOwogCWR3YzNfZGlzY29ubmVjdF9nYWRnZXQoZHdjKTsKLQlkd2MtPnN0YXJ0 X2NvbmZpZ19pc3N1ZWQgPSBmYWxzZTsKIAogCWR3Yy0+Z2FkZ2V0LnNwZWVkID0gVVNCX1NQRUVE X1VOS05PV047CiB9CkBAIC0xNjkyLDcgKzE3MjcsNiBAQCBzdGF0aWMgdm9pZCBkd2MzX2dhZGdl dF9yZXNldF9pbnRlcnJ1cHQoc3RydWN0IGR3YzMgKmR3YykKIAogCWR3YzNfc3RvcF9hY3RpdmVf dHJhbnNmZXJzKGR3Yyk7CiAJZHdjM19jbGVhcl9zdGFsbF9hbGxfZXAoZHdjKTsKLQlkd2MtPnN0 YXJ0X2NvbmZpZ19pc3N1ZWQgPSBmYWxzZTsKIAogCS8qIFJlc2V0IGRldmljZSBhZGRyZXNzIHRv IHplcm8gKi8KIAlyZWcgPSBkd2MzX3JlYWRsKGR3Yy0+cmVncywgRFdDM19EQ0ZHKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9jcDIxMHguYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9j cDIxMHguYwppbmRleCBhMzBiMTg4ZjkxNGEuLjliNDM1MzVjZDE4MiAxMDA2NDQKLS0tIGEvZHJp dmVycy91c2Ivc2VyaWFsL2NwMjEweC5jCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9jcDIxMHgu YwpAQCAtMTY4LDYgKzE2OCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBp ZF90YWJsZVtdID0gewogCXsgVVNCX0RFVklDRSgweDE4NDMsIDB4MDIwMCkgfSwgLyogVmFpc2Fs YSBVU0IgSW5zdHJ1bWVudCBDYWJsZSAqLwogCXsgVVNCX0RFVklDRSgweDE4RUYsIDB4RTAwRikg fSwgLyogRUxWIFVTQi1JMkMtSW50ZXJmYWNlICovCiAJeyBVU0JfREVWSUNFKDB4MThFRiwgMHhF MDI1KSB9LCAvKiBFTFYgTWFyYmxlIFNvdW5kIEJvYXJkIDEgKi8KKwl7IFVTQl9ERVZJQ0UoMHgx OTAxLCAweDAxOTApIH0sIC8qIEdFIEI4NTAgQ1AyMTA1IFJlY29yZGVyIGludGVyZmFjZSAqLwor CXsgVVNCX0RFVklDRSgweDE5MDEsIDB4MDE5MykgfSwgLyogR0UgQjY1MCBDUDIxMDQgUE1DIGlu dGVyZmFjZSAqLworCXsgVVNCX0RFVklDRSgweDE5Q0YsIDB4MzAwMCkgfSwgLyogUGFycm90IE5N RUEgR1BTIEZsaWdodCBSZWNvcmRlciAqLwogCXsgVVNCX0RFVklDRSgweDFBREIsIDB4MDAwMSkg fSwgLyogU2Nod2VpdHplciBFbmdpbmVlcmluZyBDNjYyIENhYmxlICovCiAJeyBVU0JfREVWSUNF KDB4MUIxQywgMHgxQzAwKSB9LCAvKiBDb3JzYWlyIFVTQiBEb25nbGUgKi8KIAl7IFVTQl9ERVZJ Q0UoMHgxQkE0LCAweDAwMDIpIH0sCS8qIFNpbGljb24gTGFicyAzNTh4IGZhY3RvcnkgZGVmYXVs dCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jIGIvZHJpdmVycy91 c2Ivc2VyaWFsL29wdGlvbi5jCmluZGV4IDBhYTAyNWYxZDVmZC4uZThhYmYxOTEyOWI2IDEwMDY0 NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMKKysrIGIvZHJpdmVycy91c2Ivc2Vy aWFsL29wdGlvbi5jCkBAIC0zMTYsNiArMzE2LDcgQEAgc3RhdGljIHZvaWQgb3B0aW9uX2luc3Rh dF9jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIpOwogI2RlZmluZSBUT1NISUJBX1BST0RVQ1RfRzQ1 MAkJCTB4MGQ0NQogCiAjZGVmaW5lIEFMSU5LX1ZFTkRPUl9JRAkJCQkweDFlMGUKKyNkZWZpbmUg U0lNQ09NX1BST0RVQ1RfU0lNNzEwMEUJCQkweDkwMDEgLyogWWVzLCBBTElOS19WRU5ET1JfSUQg Ki8KICNkZWZpbmUgQUxJTktfUFJPRFVDVF9QSDMwMAkJCTB4OTEwMAogI2RlZmluZSBBTElOS19Q Uk9EVUNUXzNHVQkJCTB4OTIwMAogCkBAIC02MTMsNiArNjE0LDEwIEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3Qgb3B0aW9uX2JsYWNrbGlzdF9pbmZvIHp0ZV8xMjU1X2JsYWNrbGlzdCA9IHsKIAkucmVz ZXJ2ZWQgPSBCSVQoMykgfCBCSVQoNCksCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlv bl9ibGFja2xpc3RfaW5mbyBzaW1jb21fc2ltNzEwMGVfYmxhY2tsaXN0ID0geworCS5yZXNlcnZl ZCA9IEJJVCg1KSB8IEJJVCg2KSwKK307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb3B0aW9uX2Js YWNrbGlzdF9pbmZvIHRlbGl0X2xlOTEwX2JsYWNrbGlzdCA9IHsKIAkuc2VuZHNldHVwID0gQklU KDApLAogCS5yZXNlcnZlZCA9IEJJVCgxKSB8IEJJVCgyKSwKQEAgLTExMjgsOSArMTEzMywxMyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgb3B0aW9uX2lkc1tdID0gewogCXsg VVNCX0RFVklDRShLWU9DRVJBX1ZFTkRPUl9JRCwgS1lPQ0VSQV9QUk9EVUNUX0tQQzY1MCkgfSwK IAl7IFVTQl9ERVZJQ0UoS1lPQ0VSQV9WRU5ET1JfSUQsIEtZT0NFUkFfUFJPRFVDVF9LUEM2ODAp IH0sCiAJeyBVU0JfREVWSUNFKFFVQUxDT01NX1ZFTkRPUl9JRCwgMHg2MDAwKX0sIC8qIFpURSBB Qzg3MDAgKi8KKwl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFFVQUxDT01NX1ZFTkRP Ul9JRCwgMHg2MDAxLCAweGZmLCAweGZmLCAweGZmKSwgLyogNEcgTFRFIHVzYi1tb2RlbSBVOTAx ICovCisJICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJm5ldF9pbnRmM19ibGFja2xp c3QgfSwKIAl7IFVTQl9ERVZJQ0UoUVVBTENPTU1fVkVORE9SX0lELCAweDY2MTMpfSwgLyogT25k YSBINjAwL1pURSBNRjMzMCAqLwogCXsgVVNCX0RFVklDRShRVUFMQ09NTV9WRU5ET1JfSUQsIDB4 MDAyMyl9LCAvKiBPTllYIDNHIGRldmljZSAqLwogCXsgVVNCX0RFVklDRShRVUFMQ09NTV9WRU5E T1JfSUQsIDB4OTAwMCl9LCAvKiBTSU1Db20gU0lNNTIxOCAqLworCXsgVVNCX0RFVklDRShRVUFM Q09NTV9WRU5ET1JfSUQsIDB4OTAwMyksIC8qIFF1ZWN0ZWwgVUMyMCAqLworCSAgLmRyaXZlcl9p bmZvID0gKGtlcm5lbF91bG9uZ190KSZuZXRfaW50ZjRfYmxhY2tsaXN0IH0sCiAJeyBVU0JfREVW SUNFKENNT1RFQ0hfVkVORE9SX0lELCBDTU9URUNIX1BST0RVQ1RfNjAwMSkgfSwKIAl7IFVTQl9E RVZJQ0UoQ01PVEVDSF9WRU5ET1JfSUQsIENNT1RFQ0hfUFJPRFVDVF9DTVVfMzAwKSB9LAogCXsg VVNCX0RFVklDRShDTU9URUNIX1ZFTkRPUl9JRCwgQ01PVEVDSF9QUk9EVUNUXzYwMDMpLApAQCAt MTY0NCw2ICsxNjUzLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG9wdGlv bl9pZHNbXSA9IHsKIAl7IFVTQl9ERVZJQ0UoQUxJTktfVkVORE9SX0lELCAweDkwMDApIH0sCiAJ eyBVU0JfREVWSUNFKEFMSU5LX1ZFTkRPUl9JRCwgQUxJTktfUFJPRFVDVF9QSDMwMCkgfSwKIAl7 IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKEFMSU5LX1ZFTkRPUl9JRCwgQUxJTktfUFJP RFVDVF8zR1UsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sCisJeyBVU0JfREVWSUNFKEFMSU5LX1ZFTkRP Ul9JRCwgU0lNQ09NX1BST0RVQ1RfU0lNNzEwMEUpLAorCSAgLmRyaXZlcl9pbmZvID0gKGtlcm5l bF91bG9uZ190KSZzaW1jb21fc2ltNzEwMGVfYmxhY2tsaXN0IH0sCiAJeyBVU0JfREVWSUNFKEFM Q0FURUxfVkVORE9SX0lELCBBTENBVEVMX1BST0RVQ1RfWDA2MFNfWDIwMCksCiAJICAuZHJpdmVy X2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJmFsY2F0ZWxfeDIwMF9ibGFja2xpc3QKIAl9LApkaWZm IC0tZ2l0IGEvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svcGNpYmFja19vcHMuYyBiL2RyaXZlcnMv eGVuL3hlbi1wY2liYWNrL3BjaWJhY2tfb3BzLmMKaW5kZXggMzFjODU4MGNlZWNjLi5jZWVkMTc3 OTE0YTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaWJhY2tfb3BzLmMK KysrIGIvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svcGNpYmFja19vcHMuYwpAQCAtMjI1LDggKzIy NSw5IEBAIGludCB4ZW5fcGNpYmtfZW5hYmxlX21zaXgoc3RydWN0IHhlbl9wY2lia19kZXZpY2Ug KnBkZXYsCiAJLyoKIAkgKiBQQ0lfQ09NTUFORF9NRU1PUlkgbXVzdCBiZSBlbmFibGVkLCBvdGhl cndpc2Ugd2UgbWF5IG5vdCBiZSBhYmxlCiAJICogdG8gYWNjZXNzIHRoZSBCQVJzIHdoZXJlIHRo ZSBNU0ktWCBlbnRyaWVzIHJlc2lkZS4KKwkgKiBCdXQgVkYgZGV2aWNlcyBhcmUgdW5pcXVlIGlu IHdoaWNoIHRoZSBQRiBuZWVkcyB0byBiZSBjaGVja2VkLgogCSAqLwotCXBjaV9yZWFkX2NvbmZp Z193b3JkKGRldiwgUENJX0NPTU1BTkQsICZjbWQpOworCXBjaV9yZWFkX2NvbmZpZ193b3JkKHBj aV9waHlzZm4oZGV2KSwgUENJX0NPTU1BTkQsICZjbWQpOwogCWlmIChkZXYtPm1zaV9lbmFibGVk IHx8ICEoY21kICYgUENJX0NPTU1BTkRfTUVNT1JZKSkKIAkJcmV0dXJuIC1FTlhJTzsKIApAQCAt MzMwLDYgKzMzMSw5IEBAIHZvaWQgeGVuX3BjaWJrX2RvX29wKHN0cnVjdCB3b3JrX3N0cnVjdCAq ZGF0YSkKIAlzdHJ1Y3QgeGVuX3BjaWJrX2Rldl9kYXRhICpkZXZfZGF0YSA9IE5VTEw7CiAJc3Ry dWN0IHhlbl9wY2lfb3AgKm9wID0gJnBkZXYtPm9wOwogCWludCB0ZXN0X2ludHggPSAwOworI2lm ZGVmIENPTkZJR19QQ0lfTVNJCisJdW5zaWduZWQgaW50IG5yID0gMDsKKyNlbmRpZgogCiAJKm9w ID0gcGRldi0+c2hfaW5mby0+b3A7CiAJYmFycmllcigpOwpAQCAtMzU4LDYgKzM2Miw3IEBAIHZv aWQgeGVuX3BjaWJrX2RvX29wKHN0cnVjdCB3b3JrX3N0cnVjdCAqZGF0YSkKIAkJCW9wLT5lcnIg PSB4ZW5fcGNpYmtfZGlzYWJsZV9tc2kocGRldiwgZGV2LCBvcCk7CiAJCQlicmVhazsKIAkJY2Fz ZSBYRU5fUENJX09QX2VuYWJsZV9tc2l4OgorCQkJbnIgPSBvcC0+dmFsdWU7CiAJCQlvcC0+ZXJy ID0geGVuX3BjaWJrX2VuYWJsZV9tc2l4KHBkZXYsIGRldiwgb3ApOwogCQkJYnJlYWs7CiAJCWNh c2UgWEVOX1BDSV9PUF9kaXNhYmxlX21zaXg6CkBAIC0zODAsNyArMzg1LDcgQEAgdm9pZCB4ZW5f cGNpYmtfZG9fb3Aoc3RydWN0IHdvcmtfc3RydWN0ICpkYXRhKQogCWlmIChvcC0+Y21kID09IFhF Tl9QQ0lfT1BfZW5hYmxlX21zaXggJiYgb3AtPmVyciA9PSAwKSB7CiAJCXVuc2lnbmVkIGludCBp OwogCi0JCWZvciAoaSA9IDA7IGkgPCBvcC0+dmFsdWU7IGkrKykKKwkJZm9yIChpID0gMDsgaSA8 IG5yOyBpKyspCiAJCQlwZGV2LT5zaF9pbmZvLT5vcC5tc2l4X2VudHJpZXNbaV0udmVjdG9yID0K IAkJCQlvcC0+bXNpeF9lbnRyaWVzW2ldLnZlY3RvcjsKIAl9CmRpZmYgLS1naXQgYS9mcy9jaWZz L2NpZnNlbmNyeXB0LmMgYi9mcy9jaWZzL2NpZnNlbmNyeXB0LmMKaW5kZXggYWY5NTM4NjUwNTY2 Li4xMmNjZTU5NWYwMjYgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvY2lmc2VuY3J5cHQuYworKysgYi9m cy9jaWZzL2NpZnNlbmNyeXB0LmMKQEAgLTYxNiw3ICs2MTYsNyBAQCBzZXR1cF9udGxtdjJfcnNw KHN0cnVjdCBjaWZzX3NlcyAqc2VzLCBjb25zdCBzdHJ1Y3QgbmxzX3RhYmxlICpubHNfY3ApCiAK IAlzZXMtPmF1dGhfa2V5LnJlc3BvbnNlID0ga21hbGxvYyhiYXNlbGVuICsgdGlsZW4sIEdGUF9L RVJORUwpOwogCWlmICghc2VzLT5hdXRoX2tleS5yZXNwb25zZSkgewotCQlyYyA9IEVOT01FTTsK KwkJcmMgPSAtRU5PTUVNOwogCQlzZXMtPmF1dGhfa2V5LmxlbiA9IDA7CiAJCWNFUlJPUigxLCAi JXM6IENhbid0IGFsbG9jYXRlIGF1dGggYmxvYiIsIF9fZnVuY19fKTsKIAkJZ290byBzZXR1cF9u dGxtdjJfcnNwX3JldDsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvaW5vZGUuYyBiL2ZzL2V4dDQvaW5v ZGUuYwppbmRleCAwNjEwNzY2MmFjNTMuLjBkZThjNmRkZjU4MCAxMDA2NDQKLS0tIGEvZnMvZXh0 NC9pbm9kZS5jCisrKyBiL2ZzL2V4dDQvaW5vZGUuYwpAQCAtNTk1LDYgKzU5NSwzNCBAQCBpbnQg ZXh0NF9tYXBfYmxvY2tzKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJ cmV0dXJuIHJldHZhbDsKIH0KIAorLyoKKyAqIFVwZGF0ZSBFWFQ0X01BUF9GTEFHUyBpbiBiaC0+ Yl9zdGF0ZS4gRm9yIGJ1ZmZlciBoZWFkcyBhdHRhY2hlZCB0byBwYWdlcworICogd2UgaGF2ZSB0 byBiZSBjYXJlZnVsIGFzIHNvbWVvbmUgZWxzZSBtYXkgYmUgbWFuaXB1bGF0aW5nIGJfc3RhdGUg YXMgd2VsbC4KKyAqLworc3RhdGljIHZvaWQgZXh0NF91cGRhdGVfYmhfc3RhdGUoc3RydWN0IGJ1 ZmZlcl9oZWFkICpiaCwgdW5zaWduZWQgbG9uZyBmbGFncykKK3sKKwl1bnNpZ25lZCBsb25nIG9s ZF9zdGF0ZTsKKwl1bnNpZ25lZCBsb25nIG5ld19zdGF0ZTsKKworCWZsYWdzICY9IEVYVDRfTUFQ X0ZMQUdTOworCisJLyogRHVtbXkgYnVmZmVyX2hlYWQ/IFNldCBub24tYXRvbWljYWxseS4gKi8K KwlpZiAoIWJoLT5iX3BhZ2UpIHsKKwkJYmgtPmJfc3RhdGUgPSAoYmgtPmJfc3RhdGUgJiB+RVhU NF9NQVBfRkxBR1MpIHwgZmxhZ3M7CisJCXJldHVybjsKKwl9CisJLyoKKwkgKiBTb21lb25lIGVs c2UgbWF5IGJlIG1vZGlmeWluZyBiX3N0YXRlLiBCZSBjYXJlZnVsISBUaGlzIGlzIHVnbHkgYnV0 CisJICogb25jZSB3ZSBnZXQgcmlkIG9mIHVzaW5nIGJoIGFzIGEgY29udGFpbmVyIGZvciBtYXBw aW5nIGluZm9ybWF0aW9uCisJICogdG8gcGFzcyB0byAvIGZyb20gZ2V0X2Jsb2NrIGZ1bmN0aW9u cywgdGhpcyBjYW4gZ28gYXdheS4KKwkgKi8KKwlkbyB7CisJCW9sZF9zdGF0ZSA9IEFDQ0VTU19P TkNFKGJoLT5iX3N0YXRlKTsKKwkJbmV3X3N0YXRlID0gKG9sZF9zdGF0ZSAmIH5FWFQ0X01BUF9G TEFHUykgfCBmbGFnczsKKwl9IHdoaWxlICh1bmxpa2VseSgKKwkJIGNtcHhjaGcoJmJoLT5iX3N0 YXRlLCBvbGRfc3RhdGUsIG5ld19zdGF0ZSkgIT0gb2xkX3N0YXRlKSk7Cit9CisKIC8qIE1heGlt dW0gbnVtYmVyIG9mIGJsb2NrcyB3ZSBtYXAgZm9yIGRpcmVjdCBJTyBhdCBvbmNlLiAqLwogI2Rl ZmluZSBESU9fTUFYX0JMT0NLUyA0MDk2CiAKQEAgLTYyNSw3ICs2NTMsNyBAQCBzdGF0aWMgaW50 IF9leHQ0X2dldF9ibG9jayhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzZWN0b3JfdCBpYmxvY2ssCiAJ cmV0ID0gZXh0NF9tYXBfYmxvY2tzKGhhbmRsZSwgaW5vZGUsICZtYXAsIGZsYWdzKTsKIAlpZiAo cmV0ID4gMCkgewogCQltYXBfYmgoYmgsIGlub2RlLT5pX3NiLCBtYXAubV9wYmxrKTsKLQkJYmgt PmJfc3RhdGUgPSAoYmgtPmJfc3RhdGUgJiB+RVhUNF9NQVBfRkxBR1MpIHwgbWFwLm1fZmxhZ3M7 CisJCWV4dDRfdXBkYXRlX2JoX3N0YXRlKGJoLCBtYXAubV9mbGFncyk7CiAJCWJoLT5iX3NpemUg PSBpbm9kZS0+aV9zYi0+c19ibG9ja3NpemUgKiBtYXAubV9sZW47CiAJCXJldCA9IDA7CiAJfQpA QCAtMTc4Nyw3ICsxODE1LDcgQEAgc3RhdGljIGludCBleHQ0X2RhX2dldF9ibG9ja19wcmVwKHN0 cnVjdCBpbm9kZSAqaW5vZGUsIHNlY3Rvcl90IGlibG9jaywKIAkJcmV0dXJuIHJldDsKIAogCW1h cF9iaChiaCwgaW5vZGUtPmlfc2IsIG1hcC5tX3BibGspOwotCWJoLT5iX3N0YXRlID0gKGJoLT5i X3N0YXRlICYgfkVYVDRfTUFQX0ZMQUdTKSB8IG1hcC5tX2ZsYWdzOworCWV4dDRfdXBkYXRlX2Jo X3N0YXRlKGJoLCBtYXAubV9mbGFncyk7CiAKIAlpZiAoYnVmZmVyX3Vud3JpdHRlbihiaCkpIHsK IAkJLyogQSBkZWxheWVkIHdyaXRlIHRvIHVud3JpdHRlbiBiaCBzaG91bGQgYmUgbWFya2VkCmRp ZmYgLS1naXQgYS9mcy9ocGZzL25hbWVpLmMgYi9mcy9ocGZzL25hbWVpLmMKaW5kZXggZWE5MWZj YjBlZjliLi45MDJkOTQ4MjliNWMgMTAwNjQ0Ci0tLSBhL2ZzL2hwZnMvbmFtZWkuYworKysgYi9m cy9ocGZzL25hbWVpLmMKQEAgLTM2MiwxMiArMzYyLDExIEBAIHN0YXRpYyBpbnQgaHBmc191bmxp bmsoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIAlzdHJ1Y3QgaW5v ZGUgKmlub2RlID0gZGVudHJ5LT5kX2lub2RlOwogCWRub2RlX3NlY25vIGRubzsKIAlpbnQgcjsK LQlpbnQgcmVwID0gMDsKIAlpbnQgZXJyOwogCiAJaHBmc19sb2NrKGRpci0+aV9zYik7CiAJaHBm c19hZGp1c3RfbGVuZ3RoKG5hbWUsICZsZW4pOwotYWdhaW46CisKIAllcnIgPSAtRU5PRU5UOwog CWRlID0gbWFwX2RpcmVudChkaXIsIGhwZnNfaShkaXIpLT5pX2RubywgbmFtZSwgbGVuLCAmZG5v LCAmcWJoKTsKIAlpZiAoIWRlKQpAQCAtMzg3LDMzICszODYsOSBAQCBhZ2FpbjoKIAkJaHBmc19l cnJvcihkaXItPmlfc2IsICJ0aGVyZSB3YXMgZXJyb3Igd2hlbiByZW1vdmluZyBkaXJlbnQiKTsK IAkJZXJyID0gLUVGU0VSUk9SOwogCQlicmVhazsKLQljYXNlIDI6CQkvKiBubyBzcGFjZSBmb3Ig ZGVsZXRpbmcsIHRyeSB0byB0cnVuY2F0ZSBmaWxlICovCi0KKwljYXNlIDI6CQkvKiBubyBzcGFj ZSBmb3IgZGVsZXRpbmcgKi8KIAkJZXJyID0gLUVOT1NQQzsKLQkJaWYgKHJlcCsrKQotCQkJYnJl YWs7Ci0KLQkJZGVudHJ5X3VuaGFzaChkZW50cnkpOwotCQlpZiAoIWRfdW5oYXNoZWQoZGVudHJ5 KSkgewotCQkJaHBmc191bmxvY2soZGlyLT5pX3NiKTsKLQkJCXJldHVybiAtRU5PU1BDOwotCQl9 Ci0JCWlmIChnZW5lcmljX3Blcm1pc3Npb24oaW5vZGUsIE1BWV9XUklURSkgfHwKLQkJICAgICFT X0lTUkVHKGlub2RlLT5pX21vZGUpIHx8Ci0JCSAgICBnZXRfd3JpdGVfYWNjZXNzKGlub2RlKSkg ewotCQkJZF9yZWhhc2goZGVudHJ5KTsKLQkJfSBlbHNlIHsKLQkJCXN0cnVjdCBpYXR0ciBuZXdh dHRyczsKLQkJCS8qcHJpbnRrKCJIUEZTOiB0cnVuY2F0aW5nIGZpbGUgYmVmb3JlIGRlbGV0ZS5c biIpOyovCi0JCQluZXdhdHRycy5pYV9zaXplID0gMDsKLQkJCW5ld2F0dHJzLmlhX3ZhbGlkID0g QVRUUl9TSVpFIHwgQVRUUl9DVElNRTsKLQkJCWVyciA9IG5vdGlmeV9jaGFuZ2UoZGVudHJ5LCAm bmV3YXR0cnMpOwotCQkJcHV0X3dyaXRlX2FjY2Vzcyhpbm9kZSk7Ci0JCQlpZiAoIWVycikKLQkJ CQlnb3RvIGFnYWluOwotCQl9Ci0JCWhwZnNfdW5sb2NrKGRpci0+aV9zYik7Ci0JCXJldHVybiAt RU5PU1BDOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlkcm9wX25saW5rKGlub2RlKTsKIAkJZXJy ID0gMDsKZGlmZiAtLWdpdCBhL2ZzL2pmZnMyL1JFQURNRS5Mb2NraW5nIGIvZnMvamZmczIvUkVB RE1FLkxvY2tpbmcKaW5kZXggM2VhMzY1NTQxMDdmLi44OTE4YWM5MDVhM2IgMTAwNjQ0Ci0tLSBh L2ZzL2pmZnMyL1JFQURNRS5Mb2NraW5nCisrKyBiL2ZzL2pmZnMyL1JFQURNRS5Mb2NraW5nCkBA IC0yLDEwICsyLDYgQEAKIAlKRkZTMiBMT0NLSU5HIERPQ1VNRU5UQVRJT04KIAktLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIAotQXQgbGVhc3QgdGhlb3JldGljYWxseSwgSkZGUzIgZG9lcyBu b3QgcmVxdWlyZSB0aGUgQmlnIEtlcm5lbCBMb2NrCi0oQktMKSwgd2hpY2ggd2FzIGFsd2F5cyBo ZWxwZnVsbHkgb2J0YWluZWQgZm9yIGl0IGJ5IExpbnV4IDIuNCBWRlMKLWNvZGUuIEl0IGhhcyBp dHMgb3duIGxvY2tpbmcsIGFzIGRlc2NyaWJlZCBiZWxvdy4KLQogVGhpcyBkb2N1bWVudCBhdHRl bXB0cyB0byBkZXNjcmliZSB0aGUgZXhpc3RpbmcgbG9ja2luZyBydWxlcyBmb3IKIEpGRlMyLiBJ dCBpcyBub3QgZXhwZWN0ZWQgdG8gcmVtYWluIHBlcmZlY3RseSB1cCB0byBkYXRlLCBidXQgb3Vn aHQgdG8KIGJlIGZhaXJseSBjbG9zZS4KQEAgLTY5LDYgKzY1LDcgQEAgT3JkZXJpbmcgY29uc3Ry YWludHM6CiAJICAgYW55IGYtPnNlbSBoZWxkLgogCTIuIE5ldmVyIGF0dGVtcHQgdG8gbG9jayB0 d28gZmlsZSBtdXRleGVzIGluIG9uZSB0aHJlYWQuCiAJICAgTm8gb3JkZXJpbmcgcnVsZXMgaGF2 ZSBiZWVuIG1hZGUgZm9yIGRvaW5nIHNvLgorCTMuIE5ldmVyIGxvY2sgYSBwYWdlIGNhY2hlIHBh Z2Ugd2l0aCBmLT5zZW0gaGVsZC4KIAogCiAJZXJhc2VfY29tcGxldGlvbl9sb2NrIHNwaW5sb2Nr CmRpZmYgLS1naXQgYS9mcy9qZmZzMi9idWlsZC5jIGIvZnMvamZmczIvYnVpbGQuYwppbmRleCAz MDA1ZWM0NTIwYWQuLjk5ZjBlYWE3YWI4MiAxMDA2NDQKLS0tIGEvZnMvamZmczIvYnVpbGQuYwor KysgYi9mcy9qZmZzMi9idWlsZC5jCkBAIC00Nyw3ICs0Nyw4IEBAIG5leHRfaW5vZGUoaW50ICpp LCBzdHJ1Y3QgamZmczJfaW5vZGVfY2FjaGUgKmljLCBzdHJ1Y3QgamZmczJfc2JfaW5mbyAqYykK IAogCiBzdGF0aWMgdm9pZCBqZmZzMl9idWlsZF9pbm9kZV9wYXNzMShzdHJ1Y3QgamZmczJfc2Jf aW5mbyAqYywKLQkJCQkgICAgc3RydWN0IGpmZnMyX2lub2RlX2NhY2hlICppYykKKwkJCQkgICAg c3RydWN0IGpmZnMyX2lub2RlX2NhY2hlICppYywKKwkJCQkgICAgaW50ICpkaXJfaGFyZGxpbmtz KQogewogCXN0cnVjdCBqZmZzMl9mdWxsX2RpcmVudCAqZmQ7CiAKQEAgLTY2LDE5ICs2NywyMSBA QCBzdGF0aWMgdm9pZCBqZmZzMl9idWlsZF9pbm9kZV9wYXNzMShzdHJ1Y3QgamZmczJfc2JfaW5m byAqYywKIAkJCWRiZ19mc2J1aWxkKCJjaGlsZCBcIiVzXCIgKGlubyAjJXUpIG9mIGRpciBpbm8g IyV1IGRvZXNuJ3QgZXhpc3QhXG4iLAogCQkJCSAgZmQtPm5hbWUsIGZkLT5pbm8sIGljLT5pbm8p OwogCQkJamZmczJfbWFya19ub2RlX29ic29sZXRlKGMsIGZkLT5yYXcpOworCQkJLyogQ2xlYXIg dGhlIGljL3JhdyB1bmlvbiBzbyBpdCBkb2Vzbid0IGNhdXNlIHByb2JsZW1zIGxhdGVyLiAqLwor CQkJZmQtPmljID0gTlVMTDsKIAkJCWNvbnRpbnVlOwogCQl9CiAKKwkJLyogRnJvbSB0aGlzIHBv aW50LCBmZC0+cmF3IGlzIG5vIGxvbmdlciB1c2VkIHNvIHdlIGNhbiBzZXQgZmQtPmljICovCisJ CWZkLT5pYyA9IGNoaWxkX2ljOworCQljaGlsZF9pYy0+cGlub19ubGluaysrOworCQkvKiBJZiB3 ZSBhcHBlYXIgKGF0IHRoaXMgc3RhZ2UpIHRvIGhhdmUgaGFyZC1saW5rZWQgZGlyZWN0b3JpZXMs CisJCSAqIHNldCBhIGZsYWcgdG8gdHJpZ2dlciBhIHNjYW4gbGF0ZXIgKi8KIAkJaWYgKGZkLT50 eXBlID09IERUX0RJUikgewotCQkJaWYgKGNoaWxkX2ljLT5waW5vX25saW5rKSB7Ci0JCQkJSkZG UzJfRVJST1IoImNoaWxkIGRpciBcIiVzXCIgKGlubyAjJXUpIG9mIGRpciBpbm8gIyV1IGFwcGVh cnMgdG8gYmUgYSBoYXJkIGxpbmtcbiIsCi0JCQkJCSAgICBmZC0+bmFtZSwgZmQtPmlubywgaWMt Pmlubyk7Ci0JCQkJLyogVE9ETzogV2hhdCBkbyB3ZSBkbyBhYm91dCBpdD8gKi8KLQkJCX0gZWxz ZSB7Ci0JCQkJY2hpbGRfaWMtPnBpbm9fbmxpbmsgPSBpYy0+aW5vOwotCQkJfQotCQl9IGVsc2UK LQkJCWNoaWxkX2ljLT5waW5vX25saW5rKys7CisJCQljaGlsZF9pYy0+ZmxhZ3MgfD0gSU5PX0ZM QUdTX0lTX0RJUjsKKwkJCWlmIChjaGlsZF9pYy0+cGlub19ubGluayA+IDEpCisJCQkJKmRpcl9o YXJkbGlua3MgPSAxOworCQl9CiAKIAkJZGJnX2ZzYnVpbGQoImluY3JlYXNlZCBubGluayBmb3Ig Y2hpbGQgXCIlc1wiIChpbm8gIyV1KVxuIiwgZmQtPm5hbWUsIGZkLT5pbm8pOwogCQkvKiBDYW4n dCBmcmVlIHNjYW5fZGVudHMgc28gZmFyLiBXZSBtaWdodCBuZWVkIHRoZW0gaW4gcGFzcyAyICov CkBAIC05Miw4ICs5NSw3IEBAIHN0YXRpYyB2b2lkIGpmZnMyX2J1aWxkX2lub2RlX3Bhc3MxKHN0 cnVjdCBqZmZzMl9zYl9pbmZvICpjLAogKi8KIHN0YXRpYyBpbnQgamZmczJfYnVpbGRfZmlsZXN5 c3RlbShzdHJ1Y3QgamZmczJfc2JfaW5mbyAqYykKIHsKLQlpbnQgcmV0OwotCWludCBpOworCWlu dCByZXQsIGksIGRpcl9oYXJkbGlua3MgPSAwOwogCXN0cnVjdCBqZmZzMl9pbm9kZV9jYWNoZSAq aWM7CiAJc3RydWN0IGpmZnMyX2Z1bGxfZGlyZW50ICpmZDsKIAlzdHJ1Y3QgamZmczJfZnVsbF9k aXJlbnQgKmRlYWRfZmRzID0gTlVMTDsKQEAgLTExNyw3ICsxMTksNyBAQCBzdGF0aWMgaW50IGpm ZnMyX2J1aWxkX2ZpbGVzeXN0ZW0oc3RydWN0IGpmZnMyX3NiX2luZm8gKmMpCiAJLyogTm93IHNj YW4gdGhlIGRpcmVjdG9yeSB0cmVlLCBpbmNyZWFzaW5nIG5saW5rIGFjY29yZGluZyB0byBldmVy eSBkaXJlbnQgZm91bmQuICovCiAJZm9yX2VhY2hfaW5vZGUoaSwgYywgaWMpIHsKIAkJaWYgKGlj LT5zY2FuX2RlbnRzKSB7Ci0JCQlqZmZzMl9idWlsZF9pbm9kZV9wYXNzMShjLCBpYyk7CisJCQlq ZmZzMl9idWlsZF9pbm9kZV9wYXNzMShjLCBpYywgJmRpcl9oYXJkbGlua3MpOwogCQkJY29uZF9y ZXNjaGVkKCk7CiAJCX0KIAl9CkBAIC0xNTMsNiArMTU1LDIwIEBAIHN0YXRpYyBpbnQgamZmczJf YnVpbGRfZmlsZXN5c3RlbShzdHJ1Y3QgamZmczJfc2JfaW5mbyAqYykKIAl9CiAKIAlkYmdfZnNi dWlsZCgicGFzcyAyYSBjb21wbGV0ZVxuIik7CisKKwlpZiAoZGlyX2hhcmRsaW5rcykgeworCQkv KiBJZiB3ZSBkZXRlY3RlZCBkaXJlY3RvcnkgaGFyZGxpbmtzIGVhcmxpZXIsICpob3BlZnVsbHkq CisJCSAqIHRoZXkgYXJlIGdvbmUgbm93IGJlY2F1c2Ugc29tZSBvZiB0aGUgbGlua3Mgd2VyZSBm cm9tCisJCSAqIGRlYWQgZGlyZWN0b3JpZXMgd2hpY2ggc3RpbGwgaGFkIHNvbWUgb2xkIGRpcmVu dHMgbHlpbmcKKwkJICogYXJvdW5kIGFuZCBub3QgeWV0IGdhcmJhZ2UtY29sbGVjdGVkLCBidXQg d2hpY2ggaGF2ZQorCQkgKiBiZWVuIGRpc2NhcmRlZCBhYm92ZS4gU28gY2xlYXIgdGhlIHBpbm9f bmxpbmsgZmllbGQKKwkJICogaW4gZWFjaCBkaXJlY3RvcnksIHNvIHRoYXQgdGhlIGZpbmFsIHNj YW4gYmVsb3cgY2FuCisJCSAqIHByaW50IGFwcHJvcHJpYXRlIHdhcm5pbmdzLiAqLworCQlmb3Jf ZWFjaF9pbm9kZShpLCBjLCBpYykgeworCQkJaWYgKGljLT5mbGFncyAmIElOT19GTEFHU19JU19E SVIpCisJCQkJaWMtPnBpbm9fbmxpbmsgPSAwOworCQl9CisJfQogCWRiZ19mc2J1aWxkKCJmcmVl aW5nIHRlbXBvcmFyeSBkYXRhIHN0cnVjdHVyZXNcbiIpOwogCiAJLyogRmluYWxseSwgd2UgY2Fu IHNjYW4gYWdhaW4gYW5kIGZyZWUgdGhlIGRpcmVudCBzdHJ1Y3RzICovCkBAIC0xNjAsNiArMTc2 LDMzIEBAIHN0YXRpYyBpbnQgamZmczJfYnVpbGRfZmlsZXN5c3RlbShzdHJ1Y3QgamZmczJfc2Jf aW5mbyAqYykKIAkJd2hpbGUoaWMtPnNjYW5fZGVudHMpIHsKIAkJCWZkID0gaWMtPnNjYW5fZGVu dHM7CiAJCQlpYy0+c2Nhbl9kZW50cyA9IGZkLT5uZXh0OworCQkJLyogV2UgZG8gdXNlIHRoZSBw aW5vX25saW5rIGZpZWxkIHRvIGNvdW50IG5saW5rIG9mCisJCQkgKiBkaXJlY3RvcmllcyBkdXJp bmcgZnMgYnVpbGQsIHNvIHNldCBpdCB0byB0aGUKKwkJCSAqIHBhcmVudCBpbm8jIG5vdy4gTm93 IHRoYXQgdGhlcmUncyBob3BlZnVsbHkgb25seQorCQkJICogb25lLiAqLworCQkJaWYgKGZkLT50 eXBlID09IERUX0RJUikgeworCQkJCWlmICghZmQtPmljKSB7CisJCQkJCS8qIFdlJ2xsIGhhdmUg Y29tcGxhaW5lZCBhYm91dCBpdCBhbmQgbWFya2VkIHRoZSBjb3Jlc3BvbmRpbmcKKwkJCQkJICAg cmF3IG5vZGUgb2Jzb2xldGUgYWxyZWFkeS4gSnVzdCBza2lwIGl0LiAqLworCQkJCQljb250aW51 ZTsKKwkJCQl9CisKKwkJCQkvKiBXZSAqaGF2ZSogdG8gaGF2ZSBzZXQgdGhpcyBpbiBqZmZzMl9i dWlsZF9pbm9kZV9wYXNzMSgpICovCisJCQkJQlVHX09OKCEoZmQtPmljLT5mbGFncyAmIElOT19G TEFHU19JU19ESVIpKTsKKworCQkJCS8qIFdlIGNsZWFyIGljLT5waW5vX25saW5rIOKIgCBkaXJl Y3RvcmllcycgaWMgKm9ubHkqIGlmIGRpcl9oYXJkbGlua3MKKwkJCQkgKiBpcyBzZXQuIE90aGVy d2lzZSwgd2Uga25vdyB0aGlzIHNob3VsZCBuZXZlciB0cmlnZ2VyIGFueXdheSwgc28KKwkJCQkg KiB3ZSBkb24ndCBkbyB0aGUgY2hlY2suIEFuZCBpYy0+cGlub19ubGluayBzdGlsbCBjb250YWlu cyB0aGUgbmxpbmsKKwkJCQkgKiB2YWx1ZSAod2hpY2ggaXMgMSkuICovCisJCQkJaWYgKGRpcl9o YXJkbGlua3MgJiYgZmQtPmljLT5waW5vX25saW5rKSB7CisJCQkJCUpGRlMyX0VSUk9SKCJjaGls ZCBkaXIgXCIlc1wiIChpbm8gIyV1KSBvZiBkaXIgaW5vICMldSBpcyBhbHNvIGhhcmQgbGlua2Vk IGZyb20gZGlyIGlubyAjJXVcbiIsCisJCQkJCQkgICAgZmQtPm5hbWUsIGZkLT5pbm8sIGljLT5p bm8sIGZkLT5pYy0+cGlub19ubGluayk7CisJCQkJCS8qIFNob3VsZCB3ZSB1bmxpbmsgaXQgZnJv bSBpdHMgcHJldmlvdXMgcGFyZW50PyAqLworCQkJCX0KKworCQkJCS8qIEZvciBkaXJlY3Rvcmll cywgaWMtPnBpbm9fbmxpbmsgaG9sZHMgdGhhdCBwYXJlbnQgaW5vZGUgIyAqLworCQkJCWZkLT5p Yy0+cGlub19ubGluayA9IGljLT5pbm87CisJCQl9CiAJCQlqZmZzMl9mcmVlX2Z1bGxfZGlyZW50 KGZkKTsKIAkJfQogCQlpYy0+c2Nhbl9kZW50cyA9IE5VTEw7CkBAIC0yMzgsMTEgKzI4MSw3IEBA IHN0YXRpYyB2b2lkIGpmZnMyX2J1aWxkX3JlbW92ZV91bmxpbmtlZF9pbm9kZShzdHJ1Y3QgamZm czJfc2JfaW5mbyAqYywKIAogCQkJLyogUmVkdWNlIG5saW5rIG9mIHRoZSBjaGlsZC4gSWYgaXQn cyBub3cgemVybywgc3RpY2sgaXQgb24gdGhlCiAJCQkgICBkZWFkX2ZkcyBsaXN0IHRvIGJlIGNs ZWFuZWQgdXAgbGF0ZXIuIEVsc2UganVzdCBmcmVlIHRoZSBmZCAqLwotCi0JCQlpZiAoZmQtPnR5 cGUgPT0gRFRfRElSKQotCQkJCWNoaWxkX2ljLT5waW5vX25saW5rID0gMDsKLQkJCWVsc2UKLQkJ CQljaGlsZF9pYy0+cGlub19ubGluay0tOworCQkJY2hpbGRfaWMtPnBpbm9fbmxpbmstLTsKIAog CQkJaWYgKCFjaGlsZF9pYy0+cGlub19ubGluaykgewogCQkJCWRiZ19mc2J1aWxkKCJpbm9kZSAj JXUgKFwiJXNcIikgbm93IGhhcyBubyBsaW5rczsgYWRkaW5nIHRvIGRlYWRfZmRzIGxpc3QuXG4i LApkaWZmIC0tZ2l0IGEvZnMvamZmczIvZmlsZS5jIGIvZnMvamZmczIvZmlsZS5jCmluZGV4IDAw OTVhNzBhMzQyNi4uNDk2NGE1YmQyZDI2IDEwMDY0NAotLS0gYS9mcy9qZmZzMi9maWxlLmMKKysr IGIvZnMvamZmczIvZmlsZS5jCkBAIC0xMzUsMzkgKzEzNSwzMyBAQCBzdGF0aWMgaW50IGpmZnMy X3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw cGluZywKIAlzdHJ1Y3QgcGFnZSAqcGc7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmct Pmhvc3Q7CiAJc3RydWN0IGpmZnMyX2lub2RlX2luZm8gKmYgPSBKRkZTMl9JTk9ERV9JTkZPKGlu b2RlKTsKLQlzdHJ1Y3QgamZmczJfc2JfaW5mbyAqYyA9IEpGRlMyX1NCX0lORk8oaW5vZGUtPmlf c2IpOwotCXN0cnVjdCBqZmZzMl9yYXdfaW5vZGUgcmk7Ci0JdWludDMyX3QgYWxsb2NfbGVuID0g MDsKIAlwZ29mZl90IGluZGV4ID0gcG9zID4+IFBBR0VfQ0FDSEVfU0hJRlQ7CiAJdWludDMyX3Qg cGFnZW9mcyA9IGluZGV4IDw8IFBBR0VfQ0FDSEVfU0hJRlQ7CiAJaW50IHJldCA9IDA7CiAKLQlE MShwcmludGsoS0VSTl9ERUJVRyAiJXMoKVxuIiwgX19mdW5jX18pKTsKLQotCWlmIChwYWdlb2Zz ID4gaW5vZGUtPmlfc2l6ZSkgewotCQlyZXQgPSBqZmZzMl9yZXNlcnZlX3NwYWNlKGMsIHNpemVv ZihyaSksICZhbGxvY19sZW4sCi0JCQkJCSAgQUxMT0NfTk9STUFMLCBKRkZTMl9TVU1NQVJZX0lO T0RFX1NJWkUpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQl9Ci0KLQltdXRleF9sb2Nr KCZmLT5zZW0pOwogCXBnID0gZ3JhYl9jYWNoZV9wYWdlX3dyaXRlX2JlZ2luKG1hcHBpbmcsIGlu ZGV4LCBmbGFncyk7Ci0JaWYgKCFwZykgewotCQlpZiAoYWxsb2NfbGVuKQotCQkJamZmczJfY29t cGxldGVfcmVzZXJ2YXRpb24oYyk7Ci0JCW11dGV4X3VubG9jaygmZi0+c2VtKTsKKwlpZiAoIXBn KQogCQlyZXR1cm4gLUVOT01FTTsKLQl9CiAJKnBhZ2VwID0gcGc7CiAKLQlpZiAoYWxsb2NfbGVu KSB7CisJRDEocHJpbnRrKEtFUk5fREVCVUcgIiVzKClcbiIsIF9fZnVuY19fKSk7CisKKwlpZiAo cGFnZW9mcyA+IGlub2RlLT5pX3NpemUpIHsKIAkJLyogTWFrZSBuZXcgaG9sZSBmcmFnIGZyb20g b2xkIEVPRiB0byBuZXcgcGFnZSAqLworCQlzdHJ1Y3QgamZmczJfc2JfaW5mbyAqYyA9IEpGRlMy X1NCX0lORk8oaW5vZGUtPmlfc2IpOworCQlzdHJ1Y3QgamZmczJfcmF3X2lub2RlIHJpOwogCQlz dHJ1Y3QgamZmczJfZnVsbF9kbm9kZSAqZm47CisJCXVpbnQzMl90IGFsbG9jX2xlbjsKIAogCQlE MShwcmludGsoS0VSTl9ERUJVRyAiV3JpdGluZyBuZXcgaG9sZSBmcmFnIDB4JXgtMHgleCBiZXR3 ZWVuIGN1cnJlbnQgRU9GIGFuZCBuZXcgcGFnZVxuIiwKIAkJCSAgKHVuc2lnbmVkIGludClpbm9k ZS0+aV9zaXplLCBwYWdlb2ZzKSk7CiAKKwkJcmV0ID0gamZmczJfcmVzZXJ2ZV9zcGFjZShjLCBz aXplb2YocmkpLCAmYWxsb2NfbGVuLAorCQkJCQkgIEFMTE9DX05PUk1BTCwgSkZGUzJfU1VNTUFS WV9JTk9ERV9TSVpFKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gb3V0X3BhZ2U7CisKKwkJbXV0ZXhf bG9jaygmZi0+c2VtKTsKIAkJbWVtc2V0KCZyaSwgMCwgc2l6ZW9mKHJpKSk7CiAKIAkJcmkubWFn aWMgPSBjcHVfdG9famUxNihKRkZTMl9NQUdJQ19CSVRNQVNLKTsKQEAgLTE5NCw2ICsxODgsNyBA QCBzdGF0aWMgaW50IGpmZnMyX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qg YWRkcmVzc19zcGFjZSAqbWFwcGluZywKIAkJaWYgKElTX0VSUihmbikpIHsKIAkJCXJldCA9IFBU Ul9FUlIoZm4pOwogCQkJamZmczJfY29tcGxldGVfcmVzZXJ2YXRpb24oYyk7CisJCQltdXRleF91 bmxvY2soJmYtPnNlbSk7CiAJCQlnb3RvIG91dF9wYWdlOwogCQl9CiAJCXJldCA9IGpmZnMyX2Fk ZF9mdWxsX2Rub2RlX3RvX2lub2RlKGMsIGYsIGZuKTsKQEAgLTIwNywxMCArMjAyLDEyIEBAIHN0 YXRpYyBpbnQgamZmczJfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBhZGRy ZXNzX3NwYWNlICptYXBwaW5nLAogCQkJamZmczJfbWFya19ub2RlX29ic29sZXRlKGMsIGZuLT5y YXcpOwogCQkJamZmczJfZnJlZV9mdWxsX2Rub2RlKGZuKTsKIAkJCWpmZnMyX2NvbXBsZXRlX3Jl c2VydmF0aW9uKGMpOworCQkJbXV0ZXhfdW5sb2NrKCZmLT5zZW0pOwogCQkJZ290byBvdXRfcGFn ZTsKIAkJfQogCQlqZmZzMl9jb21wbGV0ZV9yZXNlcnZhdGlvbihjKTsKIAkJaW5vZGUtPmlfc2l6 ZSA9IHBhZ2VvZnM7CisJCW11dGV4X3VubG9jaygmZi0+c2VtKTsKIAl9CiAKIAkvKgpAQCAtMjE5 LDE4ICsyMTYsMTggQEAgc3RhdGljIGludCBqZmZzMl93cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAq ZmlscCwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCiAJICogY2FzZSBvZiBhIHNob3J0 LWNvcHkuCiAJICovCiAJaWYgKCFQYWdlVXB0b2RhdGUocGcpKSB7CisJCW11dGV4X2xvY2soJmYt PnNlbSk7CiAJCXJldCA9IGpmZnMyX2RvX3JlYWRwYWdlX25vbG9jayhpbm9kZSwgcGcpOworCQlt dXRleF91bmxvY2soJmYtPnNlbSk7CiAJCWlmIChyZXQpCiAJCQlnb3RvIG91dF9wYWdlOwogCX0K LQltdXRleF91bmxvY2soJmYtPnNlbSk7CiAJRDEocHJpbnRrKEtFUk5fREVCVUcgImVuZCB3cml0 ZV9iZWdpbigpLiBwZy0+ZmxhZ3MgJWx4XG4iLCBwZy0+ZmxhZ3MpKTsKIAlyZXR1cm4gcmV0Owog CiBvdXRfcGFnZToKIAl1bmxvY2tfcGFnZShwZyk7CiAJcGFnZV9jYWNoZV9yZWxlYXNlKHBnKTsK LQltdXRleF91bmxvY2soJmYtPnNlbSk7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEv ZnMvamZmczIvZ2MuYyBiL2ZzL2pmZnMyL2djLmMKaW5kZXggNGJiZDUyMTFiYjMyLi40MmI3ZmNh MDg4OWUgMTAwNjQ0Ci0tLSBhL2ZzL2pmZnMyL2djLmMKKysrIGIvZnMvamZmczIvZ2MuYwpAQCAt MTI0NiwxNCArMTI0NiwxNyBAQCBzdGF0aWMgaW50IGpmZnMyX2dhcmJhZ2VfY29sbGVjdF9kbm9k ZShzdHJ1Y3QgamZmczJfc2JfaW5mbyAqYywgc3RydWN0IGpmZnMyX2VyYQogCQlCVUdfT04oc3Rh cnQgPiBvcmlnX3N0YXJ0KTsKIAl9CiAKLQkvKiBGaXJzdCwgdXNlIHJlYWRwYWdlKCkgdG8gcmVh ZCB0aGUgYXBwcm9wcmlhdGUgcGFnZSBpbnRvIHRoZSBwYWdlIGNhY2hlICovCi0JLyogUTogV2hh dCBoYXBwZW5zIGlmIHdlIGFjdHVhbGx5IHRyeSB0byBHQyB0aGUgX3NhbWVfIHBhZ2UgZm9yIHdo aWNoIGNvbW1pdF93cml0ZSgpCi0JICogICAgdHJpZ2dlcmVkIGdhcmJhZ2UgY29sbGVjdGlvbiBp biB0aGUgZmlyc3QgcGxhY2U/Ci0JICogQTogSSBfdGhpbmtfIGl0J3MgT0suIHJlYWRfY2FjaGVf cGFnZSBzaG91bGRuJ3QgZGVhZGxvY2ssIHdlJ2xsIHdyaXRlIG91dCB0aGUKLQkgKiAgICBwYWdl IE9LLiBXZSdsbCBhY3R1YWxseSB3cml0ZSBpdCBvdXQgYWdhaW4gaW4gY29tbWl0X3dyaXRlLCB3 aGljaCBpcyBhIGxpdHRsZQotCSAqICAgIHN1Ym9wdGltYWwsIGJ1dCBhdCBsZWFzdCB3ZSdyZSBj b3JyZWN0LgotCSAqLworCS8qIFRoZSBydWxlcyBzdGF0ZSB0aGF0IHdlIG11c3Qgb2J0YWluIHRo ZSBwYWdlIGxvY2sgKmJlZm9yZSogZi0+c2VtLCBzbworCSAqIGRyb3AgZi0+c2VtIHRlbXBvcmFy aWx5LiBTaW5jZSB3ZSBhbHNvIGhvbGQgYy0+YWxsb2Nfc2VtLCBub3RoaW5nJ3MKKwkgKiBhY3R1 YWxseSBnb2luZyB0byAqY2hhbmdlKiBzbyB3ZSdyZSBzYWZlOyB3ZSBvbmx5IGFsbG93IHJlYWRp bmcuCisJICoKKwkgKiBJdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IGpmZnMyX3dyaXRlX2Jl Z2luKCkgd2lsbCBlbnN1cmUgdGhhdCBpdHMKKwkgKiBwYWdlIGlzIG1hcmtlZCBVcHRvZGF0ZSBi ZWZvcmUgYWxsb2NhdGluZyBzcGFjZS4gVGhhdCBtZWFucyB0aGF0IGlmIHdlCisJICogZW5kIHVw IGhlcmUgdHJ5aW5nIHRvIEdDIHRoZSAqc2FtZSogcGFnZSB0aGF0IGpmZnMyX3dyaXRlX2JlZ2lu KCkgaXMKKwkgKiB0cnlpbmcgdG8gd3JpdGUgb3V0LCByZWFkX2NhY2hlX3BhZ2UoKSB3aWxsIG5v dCBkZWFkbG9jay4gKi8KKwltdXRleF91bmxvY2soJmYtPnNlbSk7CiAJcGdfcHRyID0gamZmczJf Z2NfZmV0Y2hfcGFnZShjLCBmLCBzdGFydCwgJnBnKTsKKwltdXRleF9sb2NrKCZmLT5zZW0pOwog CiAJaWYgKElTX0VSUihwZ19wdHIpKSB7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcgInJlYWRfY2Fj aGVfcGFnZSgpIHJldHVybmVkIGVycm9yOiAlbGRcbiIsIFBUUl9FUlIocGdfcHRyKSk7CmRpZmYg LS1naXQgYS9mcy9qZmZzMi9ub2RlbGlzdC5oIGIvZnMvamZmczIvbm9kZWxpc3QuaAppbmRleCBm YTM1ZmY3OWFiMzUuLjA2MzcyNzFmMzc3MCAxMDA2NDQKLS0tIGEvZnMvamZmczIvbm9kZWxpc3Qu aAorKysgYi9mcy9qZmZzMi9ub2RlbGlzdC5oCkBAIC0xOTQsNiArMTk0LDcgQEAgc3RydWN0IGpm ZnMyX2lub2RlX2NhY2hlIHsKICNkZWZpbmUgSU5PX1NUQVRFX0NMRUFSSU5HCTYJLyogSW4gY2xl YXJfaW5vZGUoKSAqLwogCiAjZGVmaW5lIElOT19GTEFHU19YQVRUUl9DSEVDS0VECTB4MDEJLyog aGFzIG5vIGR1cGxpY2F0ZSB4YXR0cl9yZWYgKi8KKyNkZWZpbmUgSU5PX0ZMQUdTX0lTX0RJUgkw eDAyCS8qIGlzIGEgZGlyZWN0b3J5ICovCiAKICNkZWZpbmUgUkFXTk9ERV9DTEFTU19JTk9ERV9D QUNIRQkwCiAjZGVmaW5lIFJBV05PREVfQ0xBU1NfWEFUVFJfREFUVU0JMQpAQCAtMjQ5LDcgKzI1 MCwxMCBAQCBzdHJ1Y3QgamZmczJfcmVhZGlub2RlX2luZm8KIAogc3RydWN0IGpmZnMyX2Z1bGxf ZGlyZW50CiB7Ci0Jc3RydWN0IGpmZnMyX3Jhd19ub2RlX3JlZiAqcmF3OworCXVuaW9uIHsKKwkJ c3RydWN0IGpmZnMyX3Jhd19ub2RlX3JlZiAqcmF3OworCQlzdHJ1Y3QgamZmczJfaW5vZGVfY2Fj aGUgKmljOyAvKiBKdXN0IGR1cmluZyBwYXJ0IG9mIGJ1aWxkICovCisJfTsKIAlzdHJ1Y3QgamZm czJfZnVsbF9kaXJlbnQgKm5leHQ7CiAJdWludDMyX3QgdmVyc2lvbjsKIAl1aW50MzJfdCBpbm87 IC8qID09IHplcm8gZm9yIHVubGluayAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9hdGEu aCBiL2luY2x1ZGUvbGludXgvYXRhLmgKaW5kZXggNTg1NmM5ZTAyMTkyLi5hYmRmMGQ3ZDFiYzQg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvYXRhLmgKKysrIGIvaW5jbHVkZS9saW51eC9hdGEu aApAQCAtNDY0LDggKzQ2NCw4IEBAIGVudW0gYXRhX3RmX3Byb3RvY29scyB7CiB9OwogCiBlbnVt IGF0YV9pb2N0bHMgewotCUFUQV9JT0NfR0VUX0lPMzIJPSAweDMwOSwKLQlBVEFfSU9DX1NFVF9J TzMyCT0gMHgzMjQsCisJQVRBX0lPQ19HRVRfSU8zMgk9IDB4MzA5LCAvKiBIRElPX0dFVF8zMkJJ VCAqLworCUFUQV9JT0NfU0VUX0lPMzIJPSAweDMyNCwgLyogSERJT19TRVRfMzJCSVQgKi8KIH07 CiAKIC8qIGNvcmUgc3RydWN0dXJlcyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jb21w aWxlci5oIGIvaW5jbHVkZS9saW51eC9jb21waWxlci5oCmluZGV4IDY1YzhiNzhmYzlhZi4uMDFi NmQwNjVkNjA5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmgKKysrIGIvaW5j bHVkZS9saW51eC9jb21waWxlci5oCkBAIC0xMjUsNyArMTI1LDcgQEAgdm9pZCBmdHJhY2VfbGlr ZWx5X3VwZGF0ZShzdHJ1Y3QgZnRyYWNlX2JyYW5jaF9kYXRhICpmLCBpbnQgdmFsLCBpbnQgZXhw ZWN0KTsKICAqLwogI2RlZmluZSBpZihjb25kLCAuLi4pIF9fdHJhY2VfaWYoIChjb25kICwgIyMg X19WQV9BUkdTX18pICkKICNkZWZpbmUgX190cmFjZV9pZihjb25kKSBcCi0JaWYgKF9fYnVpbHRp bl9jb25zdGFudF9wKChjb25kKSkgPyAhIShjb25kKSA6CQkJXAorCWlmIChfX2J1aWx0aW5fY29u c3RhbnRfcCghIShjb25kKSkgPyAhIShjb25kKSA6CQkJXAogCSh7CQkJCQkJCQlcCiAJCWludCBf X19fX19yOwkJCQkJCVwKIAkJc3RhdGljIHN0cnVjdCBmdHJhY2VfYnJhbmNoX2RhdGEJCQlcCmRp ZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2xpYmF0YS5oIGIvaW5jbHVkZS9saW51eC9saWJhdGEu aAppbmRleCAwMDA0MzRlZjZmZmYuLjEwZjU2NDM3YWU0ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9s aW51eC9saWJhdGEuaAorKysgYi9pbmNsdWRlL2xpbnV4L2xpYmF0YS5oCkBAIC02NjIsNyArNjYy LDcgQEAgc3RydWN0IGF0YV9kZXZpY2UgewogCXVuaW9uIHsKIAkJdTE2CQlpZFtBVEFfSURfV09S RFNdOyAvKiBJREVOVElGWSB4eHggREVWSUNFIGRhdGEgKi8KIAkJdTMyCQlnc2NyW1NBVEFfUE1Q X0dTQ1JfRFdPUkRTXTsgLyogUE1QIEdTQ1IgYmxvY2sgKi8KLQl9OworCX0gX19fX2NhY2hlbGlu ZV9hbGlnbmVkOwogCiAJLyogZXJyb3IgaGlzdG9yeSAqLwogCWludAkJCXNwZG5fY250OwpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9uZnNfZnMuaCBiL2luY2x1ZGUvbGludXgvbmZzX2ZzLmgK aW5kZXggMzNjNTJhMjJkNTk4Li4wMTgxNjRjYjMyZjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGlu dXgvbmZzX2ZzLmgKKysrIGIvaW5jbHVkZS9saW51eC9uZnNfZnMuaApAQCAtNTg4LDkgKzU4OCw3 IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBuZnMzX2ZvcmdldF9jYWNoZWRfYWNscyhzdHJ1Y3QgaW5v ZGUgKmlub2RlKQogCiBzdGF0aWMgaW5saW5lIGxvZmZfdCBuZnNfc2l6ZV90b19sb2ZmX3QoX191 NjQgc2l6ZSkKIHsKLQlpZiAoc2l6ZSA+IChfX3U2NCkgT0ZGU0VUX01BWCAtIDEpCi0JCXJldHVy biBPRkZTRVRfTUFYIC0gMTsKLQlyZXR1cm4gKGxvZmZfdCkgc2l6ZTsKKwlyZXR1cm4gbWluX3Qo dTY0LCBzaXplLCBPRkZTRVRfTUFYKTsKIH0KIAogc3RhdGljIGlubGluZSBpbm9fdApkaWZmIC0t Z2l0IGEvaW5jbHVkZS9saW51eC9wb2lzb24uaCBiL2luY2x1ZGUvbGludXgvcG9pc29uLmgKaW5k ZXggNzkxNTlkZTBlMzQxLi5lYWU5YzM4M2U3Y2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgv cG9pc29uLmgKKysrIGIvaW5jbHVkZS9saW51eC9wb2lzb24uaApAQCAtMTksOCArMTksOCBAQAog ICogdW5kZXIgbm9ybWFsIGNpcmN1bXN0YW5jZXMsIHVzZWQgdG8gdmVyaWZ5IHRoYXQgbm9ib2R5 IHVzZXMKICAqIG5vbi1pbml0aWFsaXplZCBsaXN0IGVudHJpZXMuCiAgKi8KLSNkZWZpbmUgTElT VF9QT0lTT04xICAoKHZvaWQgKikgMHgwMDEwMDEwMCArIFBPSVNPTl9QT0lOVEVSX0RFTFRBKQot I2RlZmluZSBMSVNUX1BPSVNPTjIgICgodm9pZCAqKSAweDAwMjAwMjAwICsgUE9JU09OX1BPSU5U RVJfREVMVEEpCisjZGVmaW5lIExJU1RfUE9JU09OMSAgKCh2b2lkICopIDB4MTAwICsgUE9JU09O X1BPSU5URVJfREVMVEEpCisjZGVmaW5lIExJU1RfUE9JU09OMiAgKCh2b2lkICopIDB4MjAwICsg UE9JU09OX1BPSU5URVJfREVMVEEpCiAKIC8qKioqKioqKioqIGluY2x1ZGUvbGludXgvdGltZXIu aCAqKioqKioqKioqLwogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2tidWZmLmggYi9p bmNsdWRlL2xpbnV4L3NrYnVmZi5oCmluZGV4IGQ5YzRhNjAzYzI1ZS4uMDRlZGEyOGM5MjAzIDEw MDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oCisrKyBiL2luY2x1ZGUvbGludXgvc2ti dWZmLmgKQEAgLTEzNzcsNiArMTM3NywzMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2tiX3Jlc2Vy dmUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IGxlbikKIAlza2ItPnRhaWwgKz0gbGVuOwogfQog CisvKioKKyAqCXNrYl90YWlscm9vbV9yZXNlcnZlIC0gYWRqdXN0IHJlc2VydmVkX3RhaWxyb29t CisgKglAc2tiOiBidWZmZXIgdG8gYWx0ZXIKKyAqCUBtdHU6IG1heGltdW0gYW1vdW50IG9mIGhl YWRsZW4gcGVybWl0dGVkCisgKglAbmVlZGVkX3RhaWxyb29tOiBtaW5pbXVtIGFtb3VudCBvZiBy ZXNlcnZlZF90YWlscm9vbQorICoKKyAqCVNldCByZXNlcnZlZF90YWlscm9vbSBzbyB0aGF0IGhl YWRsZW4gY2FuIGJlIGFzIGxhcmdlIGFzIHBvc3NpYmxlIGJ1dAorICoJbm90IGxhcmdlciB0aGFu IG10dSBhbmQgdGFpbHJvb20gY2Fubm90IGJlIHNtYWxsZXIgdGhhbgorICoJbmVlZGVkX3RhaWxy b29tLgorICoJVGhlIHJlcXVpcmVkIGhlYWRyb29tIHNob3VsZCBhbHJlYWR5IGhhdmUgYmVlbiBy ZXNlcnZlZCBiZWZvcmUgdXNpbmcKKyAqCXRoaXMgZnVuY3Rpb24uCisgKi8KK3N0YXRpYyBpbmxp bmUgdm9pZCBza2JfdGFpbHJvb21fcmVzZXJ2ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1bnNpZ25l ZCBpbnQgbXR1LAorCQkJCQl1bnNpZ25lZCBpbnQgbmVlZGVkX3RhaWxyb29tKQoreworCVNLQl9M SU5FQVJfQVNTRVJUKHNrYik7CisJaWYgKG10dSA8IHNrYl90YWlscm9vbShza2IpIC0gbmVlZGVk X3RhaWxyb29tKQorCQkvKiB1c2UgYXQgbW9zdCBtdHUgKi8KKwkJc2tiLT5yZXNlcnZlZF90YWls cm9vbSA9IHNrYl90YWlscm9vbShza2IpIC0gbXR1OworCWVsc2UKKwkJLyogdXNlIHVwIHRvIGFs bCBhdmFpbGFibGUgc3BhY2UgKi8KKwkJc2tiLT5yZXNlcnZlZF90YWlscm9vbSA9IG5lZWRlZF90 YWlscm9vbTsKK30KKwogc3RhdGljIGlubGluZSB2b2lkIHNrYl9yZXNldF9tYWNfbGVuKHN0cnVj dCBza19idWZmICpza2IpCiB7CiAJc2tiLT5tYWNfbGVuID0gc2tiLT5uZXR3b3JrX2hlYWRlciAt IHNrYi0+bWFjX2hlYWRlcjsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5o IGIvaW5jbHVkZS9saW51eC90cmFjZXBvaW50LmgKaW5kZXggZjM2ODBhYTg5NWJjLi40MWQxNzU2 MmZhMzIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdHJhY2Vwb2ludC5oCisrKyBiL2luY2x1 ZGUvbGludXgvdHJhY2Vwb2ludC5oCkBAIC0xNCw4ICsxNCwxMCBAQAogICogU2VlIHRoZSBmaWxl IENPUFlJTkcgZm9yIG1vcmUgZGV0YWlscy4KICAqLwogCisjaW5jbHVkZSA8bGludXgvc21wLmg+ CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2lu Y2x1ZGUgPGxpbnV4L2NwdW1hc2suaD4KICNpbmNsdWRlIDxsaW51eC9yY3VwZGF0ZS5oPgogI2lu Y2x1ZGUgPGxpbnV4L2p1bXBfbGFiZWwuaD4KIApAQCAtMTI2LDYgKzEyOCw5IEBAIHN0YXRpYyBp bmxpbmUgdm9pZCB0cmFjZXBvaW50X3N5bmNocm9uaXplX3VucmVnaXN0ZXIodm9pZCkKIAkJdm9p ZCAqaXRfZnVuYzsJCQkJCQlcCiAJCXZvaWQgKl9fZGF0YTsJCQkJCQlcCiAJCQkJCQkJCQlcCisJ CWlmICghY3B1X29ubGluZShyYXdfc21wX3Byb2Nlc3Nvcl9pZCgpKSkJCVwKKwkJCXJldHVybjsJ CQkJCQlcCisJCQkJCQkJCQlcCiAJCWlmICghKGNvbmQpKQkJCQkJCVwKIAkJCXJldHVybjsJCQkJ CQlcCiAJCXJjdV9yZWFkX2xvY2tfc2NoZWRfbm90cmFjZSgpOwkJCQlcCmRpZmYgLS1naXQgYS9p bmNsdWRlL25ldC9pd19oYW5kbGVyLmggYi9pbmNsdWRlL25ldC9pd19oYW5kbGVyLmgKaW5kZXgg NWQ1YTZhNDczMmVmLi4xYjU5ODRhNDZmZTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2l3X2hh bmRsZXIuaAorKysgYi9pbmNsdWRlL25ldC9pd19oYW5kbGVyLmgKQEAgLTQ0Miw2ICs0NDIsMTIg QEAgZXh0ZXJuIHZvaWQgd2lyZWxlc3Nfc2VuZF9ldmVudChzdHJ1Y3QgbmV0X2RldmljZSAqCWRl diwKIAkJCQl1bnNpZ25lZCBpbnQJCWNtZCwKIAkJCQl1bmlvbiBpd3JlcV9kYXRhICoJd3JxdSwK IAkJCQljb25zdCBjaGFyICoJCWV4dHJhKTsKKyNpZmRlZiBDT05GSUdfV0VYVF9DT1JFCisvKiBm bHVzaCBhbGwgcHJldmlvdXMgd2V4dCBldmVudHMgLSBpZiB3b3JrIGlzIGRvbmUgZnJvbSBuZXRk ZXYgbm90aWZpZXJzICovCit2b2lkIHdpcmVsZXNzX25sZXZlbnRfZmx1c2godm9pZCk7CisjZWxz ZQorc3RhdGljIGlubGluZSB2b2lkIHdpcmVsZXNzX25sZXZlbnRfZmx1c2godm9pZCkge30KKyNl bmRpZgogCiAvKiBXZSBtYXkgbmVlZCBhIGZ1bmN0aW9uIHRvIHNlbmQgYSBzdHJlYW0gb2YgZXZl bnRzIHRvIHVzZXIgc3BhY2UuCiAgKiBNb3JlIG9uIHRoYXQgbGF0ZXIuLi4gKi8KZGlmZiAtLWdp dCBhL2tlcm5lbC9yZXNvdXJjZS5jIGIva2VybmVsL3Jlc291cmNlLmMKaW5kZXggMDhhYTI4ZTIz YWJiLi4yNDBlMjZlZTRhMjMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9yZXNvdXJjZS5jCisrKyBiL2tl cm5lbC9yZXNvdXJjZS5jCkBAIC04ODYsOSArODg2LDEwIEBAIHN0cnVjdCByZXNvdXJjZSAqIF9f cmVxdWVzdF9yZWdpb24oc3RydWN0IHJlc291cmNlICpwYXJlbnQsCiAJCWlmICghY29uZmxpY3Qp CiAJCQlicmVhazsKIAkJaWYgKGNvbmZsaWN0ICE9IHBhcmVudCkgewotCQkJcGFyZW50ID0gY29u ZmxpY3Q7Ci0JCQlpZiAoIShjb25mbGljdC0+ZmxhZ3MgJiBJT1JFU09VUkNFX0JVU1kpKQorCQkJ aWYgKCEoY29uZmxpY3QtPmZsYWdzICYgSU9SRVNPVVJDRV9CVVNZKSkgeworCQkJCXBhcmVudCA9 IGNvbmZsaWN0OwogCQkJCWNvbnRpbnVlOworCQkJfQogCQl9CiAJCWlmIChjb25mbGljdC0+Zmxh Z3MgJiBmbGFncyAmIElPUkVTT1VSQ0VfTVVYRUQpIHsKIAkJCWFkZF93YWl0X3F1ZXVlKCZtdXhl ZF9yZXNvdXJjZV93YWl0LCAmd2FpdCk7CmRpZmYgLS1naXQgYS9tbS9tZW1vcnkuYyBiL21tL21l bW9yeS5jCmluZGV4IDc3NjJiMWQ1OWEyOS4uNjc1YjIxMTI5NmZkIDEwMDY0NAotLS0gYS9tbS9t ZW1vcnkuYworKysgYi9tbS9tZW1vcnkuYwpAQCAtMzU4Myw4ICszNTgzLDE4IEBAIHJldHJ5Ogog CSAqLwogCWlmICh1bmxpa2VseShwbWRfbm9uZSgqcG1kKSkgJiYgX19wdGVfYWxsb2MobW0sIHZt YSwgcG1kLCBhZGRyZXNzKSkKIAkJcmV0dXJuIFZNX0ZBVUxUX09PTTsKLQkvKiBpZiBhbiBodWdl IHBtZCBtYXRlcmlhbGl6ZWQgZnJvbSB1bmRlciB1cyBqdXN0IHJldHJ5IGxhdGVyICovCi0JaWYg KHVubGlrZWx5KHBtZF90cmFuc19odWdlKCpwbWQpKSkKKwkvKgorCSAqIElmIGEgaHVnZSBwbWQg bWF0ZXJpYWxpemVkIHVuZGVyIHVzIGp1c3QgcmV0cnkgbGF0ZXIuICBVc2UKKwkgKiBwbWRfdHJh bnNfdW5zdGFibGUoKSBpbnN0ZWFkIG9mIHBtZF90cmFuc19odWdlKCkgdG8gZW5zdXJlIHRoZSBw bWQKKwkgKiBkaWRuJ3QgYmVjb21lIHBtZF90cmFuc19odWdlIHVuZGVyIHVzIGFuZCB0aGVuIGJh Y2sgdG8gcG1kX25vbmUsIGFzCisJICogYSByZXN1bHQgb2YgTUFEVl9ET05UTkVFRCBydW5uaW5n IGltbWVkaWF0ZWx5IGFmdGVyIGEgaHVnZSBwbWQgZmF1bHQKKwkgKiBpbiBhIGRpZmZlcmVudCB0 aHJlYWQgb2YgdGhpcyBtbSwgaW4gdHVybiBsZWFkaW5nIHRvIGEgbWlzbGVhZGluZworCSAqIHBt ZF90cmFuc19odWdlKCkgcmV0dmFsLiAgQWxsIHdlIGhhdmUgdG8gZW5zdXJlIGlzIHRoYXQgaXQg aXMgYQorCSAqIHJlZ3VsYXIgcG1kIHRoYXQgd2UgY2FuIHdhbGsgd2l0aCBwdGVfb2Zmc2V0X21h cCgpIGFuZCB3ZSBjYW4gZG8gdGhhdAorCSAqIHRocm91Z2ggYW4gYXRvbWljIHJlYWQgaW4gQywg d2hpY2ggaXMgd2hhdCBwbWRfdHJhbnNfdW5zdGFibGUoKQorCSAqIHByb3ZpZGVzLgorCSAqLwor CWlmICh1bmxpa2VseShwbWRfdHJhbnNfdW5zdGFibGUocG1kKSkpCiAJCXJldHVybiAwOwogCS8q CiAJICogQSByZWd1bGFyIHBtZCBpcyBlc3RhYmxpc2hlZCBhbmQgaXQgY2FuJ3QgbW9ycGggaW50 byBhIGh1Z2UgcG1kCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pZ21wLmMgYi9uZXQvaXB2NC9pZ21w LmMKaW5kZXggZDljMWQ1ODlmMTMxLi4yNGY2OWEwY2ViZmEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0 L2lnbXAuYworKysgYi9uZXQvaXB2NC9pZ21wLmMKQEAgLTMyNyw5ICszMjcsOCBAQCBzdGF0aWMg c3RydWN0IHNrX2J1ZmYgKmlnbXB2M19uZXdwYWNrKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHVu c2lnbmVkIGludCBtdHUpCiAJc2tiX2RzdF9zZXQoc2tiLCAmcnQtPmRzdCk7CiAJc2tiLT5kZXYg PSBkZXY7CiAKLQlza2ItPnJlc2VydmVkX3RhaWxyb29tID0gc2tiX2VuZF9vZmZzZXQoc2tiKSAt Ci0JCQkJIG1pbihtdHUsIHNrYl9lbmRfb2Zmc2V0KHNrYikpOwogCXNrYl9yZXNlcnZlKHNrYiwg aGxlbik7CisJc2tiX3RhaWxyb29tX3Jlc2VydmUoc2tiLCBtdHUsIHRsZW4pOwogCiAJc2tiX3Jl c2V0X25ldHdvcmtfaGVhZGVyKHNrYik7CiAJcGlwID0gaXBfaGRyKHNrYik7CmRpZmYgLS1naXQg YS9uZXQvaXB2Ni9tY2FzdC5jIGIvbmV0L2lwdjYvbWNhc3QuYwppbmRleCA5MTI5YTdjOGZlMzYu LmJlNTQ2NmUzYjU0ZiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvbWNhc3QuYworKysgYi9uZXQvaXB2 Ni9tY2FzdC5jCkBAIC0xMzU5LDkgKzEzNTksOCBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKm1s ZF9uZXdwYWNrKHN0cnVjdCBpbmV0Nl9kZXYgKmlkZXYsIHVuc2lnbmVkIGludCBtdHUpCiAJaWYg KCFza2IpCiAJCXJldHVybiBOVUxMOwogCi0Jc2tiLT5yZXNlcnZlZF90YWlscm9vbSA9IHNrYl9l bmRfb2Zmc2V0KHNrYikgLQotCQkJCSBtaW4obXR1LCBza2JfZW5kX29mZnNldChza2IpKTsKIAlz a2JfcmVzZXJ2ZShza2IsIGhsZW4pOworCXNrYl90YWlscm9vbV9yZXNlcnZlKHNrYiwgbXR1LCB0 bGVuKTsKIAogCWlmIChfX2lwdjZfZ2V0X2xsYWRkcihpZGV2LCAmYWRkcl9idWYsIElGQV9GX1RF TlRBVElWRSkpIHsKIAkJLyogPGRyYWZ0LWlldGYtbWFnbWEtbWxkLXNvdXJjZS0wNS50eHQ+Ogpk aWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2FnZy1yeC5jIGIvbmV0L21hYzgwMjExL2FnZy1yeC5j CmluZGV4IDYxNzQ3ODVmZTlmMy4uNjM1ZmE4MDRmYzNiIDEwMDY0NAotLS0gYS9uZXQvbWFjODAy MTEvYWdnLXJ4LmMKKysrIGIvbmV0L21hYzgwMjExL2FnZy1yeC5jCkBAIC0yODAsNyArMjgwLDcg QEAgdm9pZCBpZWVlODAyMTFfcHJvY2Vzc19hZGRiYV9yZXF1ZXN0KHN0cnVjdCBpZWVlODAyMTFf bG9jYWwgKmxvY2FsLAogCX0KIAogCS8qIHByZXBhcmUgQS1NUERVIE1MTUUgZm9yIFJ4IGFnZ3Jl Z2F0aW9uICovCi0JdGlkX2FnZ19yeCA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCB0aWRfYW1wZHVf cngpLCBHRlBfS0VSTkVMKTsKKwl0aWRfYWdnX3J4ID0ga3phbGxvYyhzaXplb2YoKnRpZF9hZ2df cngpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXRpZF9hZ2dfcngpCiAJCWdvdG8gZW5kOwogCmRpZmYg LS1naXQgYS9uZXQvbWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5jIGIvbmV0L21hYzgwMjEx L3JjODAyMTFfbWluc3RyZWxfaHQuYwppbmRleCBjZGIyODUzNTcxNmIuLjJmZTIwYzk4MWE2ZSAx MDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL3JjODAyMTFfbWluc3RyZWxfaHQuYworKysgYi9uZXQv bWFjODAyMTEvcmM4MDIxMV9taW5zdHJlbF9odC5jCkBAIC0zNzYsNyArMzc2LDcgQEAgbWluc3Ry ZWxfYWdncl9jaGVjayhzdHJ1Y3QgbWluc3RyZWxfcHJpdiAqbXAsIHN0cnVjdCBpZWVlODAyMTFf c3RhICpwdWJzdGEsIHN0cnUKIAlpZiAoc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNrYikgPT0gSUVF RTgwMjExX0FDX1ZPKQogCQlyZXR1cm47CiAKLQlpZWVlODAyMTFfc3RhcnRfdHhfYmFfc2Vzc2lv bihwdWJzdGEsIHRpZCwgNTAwMCk7CisJaWVlZTgwMjExX3N0YXJ0X3R4X2JhX3Nlc3Npb24ocHVi c3RhLCB0aWQsIDApOwogfQogCiBzdGF0aWMgdm9pZApkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy9j YWNoZS5jIGIvbmV0L3N1bnJwYy9jYWNoZS5jCmluZGV4IDdkZTkzNWEyMjM1My4uNTFiMjNiYzAx NTQyIDEwMDY0NAotLS0gYS9uZXQvc3VucnBjL2NhY2hlLmMKKysrIGIvbmV0L3N1bnJwYy9jYWNo ZS5jCkBAIC0xMjExLDcgKzEyMTEsNyBAQCBpbnQgcXdvcmRfZ2V0KGNoYXIgKipicHAsIGNoYXIg KmRlc3QsIGludCBidWZzaXplKQogCWlmIChicFswXSA9PSAnXFwnICYmIGJwWzFdID09ICd4Jykg ewogCQkvKiBIRVggU1RSSU5HICovCiAJCWJwICs9IDI7Ci0JCXdoaWxlIChsZW4gPCBidWZzaXpl KSB7CisJCXdoaWxlIChsZW4gPCBidWZzaXplIC0gMSkgewogCQkJaW50IGgsIGw7CiAKIAkJCWgg PSBoZXhfdG9fYmluKGJwWzBdKTsKZGlmZiAtLWdpdCBhL25ldC91bml4L2FmX3VuaXguYyBiL25l dC91bml4L2FmX3VuaXguYwppbmRleCAzOTBlMDc5OTEzZjQuLjhkMGI4MDNiYjdjYSAxMDA2NDQK LS0tIGEvbmV0L3VuaXgvYWZfdW5peC5jCisrKyBiL25ldC91bml4L2FmX3VuaXguYwpAQCAtMTY5 NCw3ICsxNjk0LDEyIEBAIHJlc3RhcnRfbG9ja2VkOgogCQkJZ290byBvdXRfdW5sb2NrOwogCX0K IAotCWlmICh1bmxpa2VseSh1bml4X3BlZXIob3RoZXIpICE9IHNrICYmIHVuaXhfcmVjdnFfZnVs bChvdGhlcikpKSB7CisJLyogb3RoZXIgPT0gc2sgJiYgdW5peF9wZWVyKG90aGVyKSAhPSBzayBp ZgorCSAqIC0gdW5peF9wZWVyKHNrKSA9PSBOVUxMLCBkZXN0aW5hdGlvbiBhZGRyZXNzIGJvdW5k IHRvIHNrCisJICogLSB1bml4X3BlZXIoc2spID09IHNrIGJ5IHRpbWUgb2YgZ2V0IGJ1dCBkaXNj b25uZWN0ZWQgYmVmb3JlIGxvY2sKKwkgKi8KKwlpZiAob3RoZXIgIT0gc2sgJiYKKwkgICAgdW5s aWtlbHkodW5peF9wZWVyKG90aGVyKSAhPSBzayAmJiB1bml4X3JlY3ZxX2Z1bGwob3RoZXIpKSkg ewogCQlpZiAodGltZW8pIHsKIAkJCXRpbWVvID0gdW5peF93YWl0X2Zvcl9wZWVyKG90aGVyLCB0 aW1lbyk7CiAKQEAgLTIwNTksMTMgKzIwNjQsMTUgQEAgc3RhdGljIGludCB1bml4X3N0cmVhbV9y ZWN2bXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2tldCAqc29jaywKIAlpbnQgZXJy ID0gMDsKIAlsb25nIHRpbWVvOwogCi0JZXJyID0gLUVJTlZBTDsKLQlpZiAoc2stPnNrX3N0YXRl ICE9IFRDUF9FU1RBQkxJU0hFRCkKKwlpZiAodW5saWtlbHkoc2stPnNrX3N0YXRlICE9IFRDUF9F U1RBQkxJU0hFRCkpIHsKKwkJZXJyID0gLUVJTlZBTDsKIAkJZ290byBvdXQ7CisJfQogCi0JZXJy ID0gLUVPUE5PVFNVUFA7Ci0JaWYgKGZsYWdzJk1TR19PT0IpCisJaWYgKHVubGlrZWx5KGZsYWdz ICYgTVNHX09PQikpIHsKKwkJZXJyID0gLUVPUE5PVFNVUFA7CiAJCWdvdG8gb3V0OworCX0KIAog CXRhcmdldCA9IHNvY2tfcmN2bG93YXQoc2ssIGZsYWdzJk1TR19XQUlUQUxMLCBzaXplKTsKIAl0 aW1lbyA9IHNvY2tfcmN2dGltZW8oc2ssIG5vYmxvY2spOwpAQCAtMjEwNyw5ICsyMTE0LDExIEBA IHN0YXRpYyBpbnQgdW5peF9zdHJlYW1fcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVj dCBzb2NrZXQgKnNvY2ssCiAJCQkJZ290byB1bmxvY2s7CiAKIAkJCXVuaXhfc3RhdGVfdW5sb2Nr KHNrKTsKLQkJCWVyciA9IC1FQUdBSU47Ci0JCQlpZiAoIXRpbWVvKQorCQkJaWYgKCF0aW1lbykg eworCQkJCWVyciA9IC1FQUdBSU47CiAJCQkJYnJlYWs7CisJCQl9CisKIAkJCW11dGV4X3VubG9j aygmdS0+cmVhZGxvY2spOwogCiAJCQl0aW1lbyA9IHVuaXhfc3RyZWFtX2RhdGFfd2FpdChzaywg dGltZW8pOwpkaWZmIC0tZ2l0IGEvbmV0L3dpcmVsZXNzL2NvcmUuYyBiL25ldC93aXJlbGVzcy9j b3JlLmMKaW5kZXggZWE5M2Y0YmY0ZDM5Li40MDQzZjcxNzkyY2QgMTAwNjQ0Ci0tLSBhL25ldC93 aXJlbGVzcy9jb3JlLmMKKysrIGIvbmV0L3dpcmVsZXNzL2NvcmUuYwpAQCAtOTg1LDggKzk4NSwx MiBAQCBzdGF0aWMgaW50IGNmZzgwMjExX25ldGRldl9ub3RpZmllcl9jYWxsKHN0cnVjdCBub3Rp Zmllcl9ibG9jayAqIG5iLAogCQlpZiAocmV0KQogCQkJcmV0dXJuIG5vdGlmaWVyX2Zyb21fZXJy bm8ocmV0KTsKIAkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIE5PVElGWV9ET05FOwogCX0K IAorCXdpcmVsZXNzX25sZXZlbnRfZmx1c2goKTsKKwogCXJldHVybiBOT1RJRllfRE9ORTsKIH0K IApkaWZmIC0tZ2l0IGEvbmV0L3dpcmVsZXNzL3dleHQtY29yZS5jIGIvbmV0L3dpcmVsZXNzL3dl eHQtY29yZS5jCmluZGV4IDBhZjdmNTRlNGY2MS4uMjg5NDE5MGE2OTdjIDEwMDY0NAotLS0gYS9u ZXQvd2lyZWxlc3Mvd2V4dC1jb3JlLmMKKysrIGIvbmV0L3dpcmVsZXNzL3dleHQtY29yZS5jCkBA IC0zNDIsNiArMzQyLDQwIEBAIHN0YXRpYyBjb25zdCBpbnQgY29tcGF0X2V2ZW50X3R5cGVfc2l6 ZVtdID0gewogCiAvKiBJVyBldmVudCBjb2RlICovCiAKK3ZvaWQgd2lyZWxlc3NfbmxldmVudF9m bHVzaCh2b2lkKQoreworCXN0cnVjdCBza19idWZmICpza2I7CisJc3RydWN0IG5ldCAqbmV0Owor CisJQVNTRVJUX1JUTkwoKTsKKworCWZvcl9lYWNoX25ldChuZXQpIHsKKwkJd2hpbGUgKChza2Ig PSBza2JfZGVxdWV1ZSgmbmV0LT53ZXh0X25sZXZlbnRzKSkpCisJCQlydG5sX25vdGlmeShza2Is IG5ldCwgMCwgUlROTEdSUF9MSU5LLCBOVUxMLAorCQkJCSAgICBHRlBfS0VSTkVMKTsKKwl9Cit9 CitFWFBPUlRfU1lNQk9MX0dQTCh3aXJlbGVzc19ubGV2ZW50X2ZsdXNoKTsKKworc3RhdGljIGlu dCB3ZXh0X25ldGRldl9ub3RpZmllcl9jYWxsKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsCisJ CQkJICAgICB1bnNpZ25lZCBsb25nIHN0YXRlLCB2b2lkICpwdHIpCit7CisJLyoKKwkgKiBXaGVu IGEgbmV0ZGV2IGNoYW5nZXMgc3RhdGUgaW4gYW55IHdheSwgZmx1c2ggYWxsIHBlbmRpbmcgbWVz c2FnZXMKKwkgKiB0byBhdm9pZCB0aGVtIGdvaW5nIG91dCBpbiBhIHN0cmFuZ2Ugb3JkZXIsIGUu Zy4gUlRNX05FV0xJTksgYWZ0ZXIKKwkgKiBSVE1fREVMTElOSywgb3Igd2l0aCBJRkZfVVAgYWZ0 ZXIgd2l0aG91dCBJRkZfVVAgZHVyaW5nIGRldl9jbG9zZSgpCisJICogb3Igc2ltaWxhciAtIGFs bCBvZiB3aGljaCBjb3VsZCBvdGhlcndpc2UgaGFwcGVuIGR1ZSB0byBkZWxheXMgZnJvbQorCSAq IHNjaGVkdWxlX3dvcmsoKS4KKwkgKi8KKwl3aXJlbGVzc19ubGV2ZW50X2ZsdXNoKCk7CisKKwly ZXR1cm4gTk9USUZZX09LOworfQorCitzdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIHdleHRf bmV0ZGV2X25vdGlmaWVyID0geworCS5ub3RpZmllcl9jYWxsID0gd2V4dF9uZXRkZXZfbm90aWZp ZXJfY2FsbCwKK307CisKIHN0YXRpYyBpbnQgX19uZXRfaW5pdCB3ZXh0X3Blcm5ldF9pbml0KHN0 cnVjdCBuZXQgKm5ldCkKIHsKIAlza2JfcXVldWVfaGVhZF9pbml0KCZuZXQtPndleHRfbmxldmVu dHMpOwpAQCAtMzYwLDcgKzM5NCwxMiBAQCBzdGF0aWMgc3RydWN0IHBlcm5ldF9vcGVyYXRpb25z IHdleHRfcGVybmV0X29wcyA9IHsKIAogc3RhdGljIGludCBfX2luaXQgd2lyZWxlc3NfbmxldmVu dF9pbml0KHZvaWQpCiB7Ci0JcmV0dXJuIHJlZ2lzdGVyX3Blcm5ldF9zdWJzeXMoJndleHRfcGVy bmV0X29wcyk7CisJaW50IGVyciA9IHJlZ2lzdGVyX3Blcm5ldF9zdWJzeXMoJndleHRfcGVybmV0 X29wcyk7CisKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJcmV0dXJuIHJlZ2lzdGVyX25l dGRldmljZV9ub3RpZmllcigmd2V4dF9uZXRkZXZfbm90aWZpZXIpOwogfQogCiBzdWJzeXNfaW5p dGNhbGwod2lyZWxlc3NfbmxldmVudF9pbml0KTsKQEAgLTM2OCwxNyArNDA3LDggQEAgc3Vic3lz X2luaXRjYWxsKHdpcmVsZXNzX25sZXZlbnRfaW5pdCk7CiAvKiBQcm9jZXNzIGV2ZW50cyBnZW5l cmF0ZWQgYnkgdGhlIHdpcmVsZXNzIGxheWVyIG9yIHRoZSBkcml2ZXIuICovCiBzdGF0aWMgdm9p ZCB3aXJlbGVzc19ubGV2ZW50X3Byb2Nlc3Moc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewot CXN0cnVjdCBza19idWZmICpza2I7Ci0Jc3RydWN0IG5ldCAqbmV0OwotCiAJcnRubF9sb2NrKCk7 Ci0KLQlmb3JfZWFjaF9uZXQobmV0KSB7Ci0JCXdoaWxlICgoc2tiID0gc2tiX2RlcXVldWUoJm5l dC0+d2V4dF9ubGV2ZW50cykpKQotCQkJcnRubF9ub3RpZnkoc2tiLCBuZXQsIDAsIFJUTkxHUlBf TElOSywgTlVMTCwKLQkJCQkgICAgR0ZQX0tFUk5FTCk7Ci0JfQotCisJd2lyZWxlc3NfbmxldmVu dF9mbHVzaCgpOwogCXJ0bmxfdW5sb2NrKCk7CiB9CiAKZGlmZiAtLWdpdCBhL3NvdW5kL2NvcmUv c2VxL29zcy9zZXFfb3NzLmMgYi9zb3VuZC9jb3JlL3NlcS9vc3Mvc2VxX29zcy5jCmluZGV4IDhk NGQ1ZTg1M2VmZS4uYWI3NzQ5NTRjOTg1IDEwMDY0NAotLS0gYS9zb3VuZC9jb3JlL3NlcS9vc3Mv c2VxX29zcy5jCisrKyBiL3NvdW5kL2NvcmUvc2VxL29zcy9zZXFfb3NzLmMKQEAgLTE1MCw4ICsx NTAsNiBAQCBvZGV2X3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZp bGUpCiAJaWYgKChkcCA9IGZpbGUtPnByaXZhdGVfZGF0YSkgPT0gTlVMTCkKIAkJcmV0dXJuIDA7 CiAKLQlzbmRfc2VxX29zc19kcmFpbl93cml0ZShkcCk7Ci0KIAltdXRleF9sb2NrKCZyZWdpc3Rl cl9tdXRleCk7CiAJc25kX3NlcV9vc3NfcmVsZWFzZShkcCk7CiAJbXV0ZXhfdW5sb2NrKCZyZWdp c3Rlcl9tdXRleCk7CmRpZmYgLS1naXQgYS9zb3VuZC9jb3JlL3NlcS9vc3Mvc2VxX29zc19kZXZp Y2UuaCBiL3NvdW5kL2NvcmUvc2VxL29zcy9zZXFfb3NzX2RldmljZS5oCmluZGV4IGMwMTU0YTk1 OWQ1NS4uMjQ2NDExMmIwOGFkIDEwMDY0NAotLS0gYS9zb3VuZC9jb3JlL3NlcS9vc3Mvc2VxX29z c19kZXZpY2UuaAorKysgYi9zb3VuZC9jb3JlL3NlcS9vc3Mvc2VxX29zc19kZXZpY2UuaApAQCAt MTMxLDcgKzEzMSw2IEBAIGludCBzbmRfc2VxX29zc193cml0ZShzdHJ1Y3Qgc2VxX29zc19kZXZp bmZvICpkcCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwgaW50IGNvCiB1bnNpZ25lZCBpbnQgc25k X3NlcV9vc3NfcG9sbChzdHJ1Y3Qgc2VxX29zc19kZXZpbmZvICpkcCwgc3RydWN0IGZpbGUgKmZp bGUsIHBvbGxfdGFibGUgKiB3YWl0KTsKIAogdm9pZCBzbmRfc2VxX29zc19yZXNldChzdHJ1Y3Qg c2VxX29zc19kZXZpbmZvICpkcCk7Ci12b2lkIHNuZF9zZXFfb3NzX2RyYWluX3dyaXRlKHN0cnVj dCBzZXFfb3NzX2RldmluZm8gKmRwKTsKIAogLyogKi8KIHZvaWQgc25kX3NlcV9vc3NfcHJvY2Vz c19xdWV1ZShzdHJ1Y3Qgc2VxX29zc19kZXZpbmZvICpkcCwgYWJzdGltZV90IHRpbWUpOwpkaWZm IC0tZ2l0IGEvc291bmQvY29yZS9zZXEvb3NzL3NlcV9vc3NfaW5pdC5jIGIvc291bmQvY29yZS9z ZXEvb3NzL3NlcV9vc3NfaW5pdC5jCmluZGV4IDk2NmQwZGM1Mzg1Yi4uZWQxYjAyYzM2ZjRmIDEw MDY0NAotLS0gYS9zb3VuZC9jb3JlL3NlcS9vc3Mvc2VxX29zc19pbml0LmMKKysrIGIvc291bmQv Y29yZS9zZXEvb3NzL3NlcV9vc3NfaW5pdC5jCkBAIC00NDcsMjMgKzQ0Nyw2IEBAIHNuZF9zZXFf b3NzX3JlbGVhc2Uoc3RydWN0IHNlcV9vc3NfZGV2aW5mbyAqZHApCiAKIAogLyoKLSAqIFdhaXQg dW50aWwgdGhlIHF1ZXVlIGlzIGVtcHR5IChpZiB3ZSBkb24ndCBoYXZlIG5vbmJsb2NrKQotICov Ci12b2lkCi1zbmRfc2VxX29zc19kcmFpbl93cml0ZShzdHJ1Y3Qgc2VxX29zc19kZXZpbmZvICpk cCkKLXsKLQlpZiAoISBkcC0+dGltZXItPnJ1bm5pbmcpCi0JCXJldHVybjsKLQlpZiAoaXNfd3Jp dGVfbW9kZShkcC0+ZmlsZV9tb2RlKSAmJiAhaXNfbm9uYmxvY2tfbW9kZShkcC0+ZmlsZV9tb2Rl KSAmJgotCSAgICBkcC0+d3JpdGVxKSB7Ci0JCWRlYnVnX3ByaW50aygoInN5bmNpbmcuLlxuIikp OwotCQl3aGlsZSAoc25kX3NlcV9vc3Nfd3JpdGVxX3N5bmMoZHAtPndyaXRlcSkpCi0JCQk7Ci0J fQotfQotCi0KLS8qCiAgKiByZXNldCBzZXF1ZW5jZXIgZGV2aWNlcwogICovCiB2b2lkCmRpZmYg LS1naXQgYS9zb3VuZC9jb3JlL3NlcS9zZXFfbWVtb3J5LmMgYi9zb3VuZC9jb3JlL3NlcS9zZXFf bWVtb3J5LmMKaW5kZXggZjQ3OGY3NzBiZjUyLi5lMGU2ODNjZDM5MjYgMTAwNjQ0Ci0tLSBhL3Nv dW5kL2NvcmUvc2VxL3NlcV9tZW1vcnkuYworKysgYi9zb3VuZC9jb3JlL3NlcS9zZXFfbWVtb3J5 LmMKQEAgLTM4MywxNyArMzgzLDIyIEBAIGludCBzbmRfc2VxX3Bvb2xfaW5pdChzdHJ1Y3Qgc25k X3NlcV9wb29sICpwb29sKQogCiAJaWYgKHNuZF9CVUdfT04oIXBvb2wpKQogCQlyZXR1cm4gLUVJ TlZBTDsKLQlpZiAocG9vbC0+cHRyKQkJCS8qIHNob3VsZCBiZSBhdG9taWM/ICovCi0JCXJldHVy biAwOwogCi0JcG9vbC0+cHRyID0gdm1hbGxvYyhzaXplb2Yoc3RydWN0IHNuZF9zZXFfZXZlbnRf Y2VsbCkgKiBwb29sLT5zaXplKTsKLQlpZiAocG9vbC0+cHRyID09IE5VTEwpIHsKKwljZWxscHRy ID0gdm1hbGxvYyhzaXplb2Yoc3RydWN0IHNuZF9zZXFfZXZlbnRfY2VsbCkgKiBwb29sLT5zaXpl KTsKKwlpZiAoIWNlbGxwdHIpIHsKIAkJc25kX3ByaW50ZCgic2VxOiBtYWxsb2MgZm9yIHNlcXVl bmNlciBldmVudHMgZmFpbGVkXG4iKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCiAJLyogYWRk IG5ldyBjZWxscyB0byB0aGUgZnJlZSBjZWxsIGxpc3QgKi8KIAlzcGluX2xvY2tfaXJxc2F2ZSgm cG9vbC0+bG9jaywgZmxhZ3MpOworCWlmIChwb29sLT5wdHIpIHsKKwkJc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmcG9vbC0+bG9jaywgZmxhZ3MpOworCQl2ZnJlZShjZWxscHRyKTsKKwkJcmV0dXJu IDA7CisJfQorCisJcG9vbC0+cHRyID0gY2VsbHB0cjsKIAlwb29sLT5mcmVlID0gTlVMTDsKIAog CWZvciAoY2VsbCA9IDA7IGNlbGwgPCBwb29sLT5zaXplOyBjZWxsKyspIHsKZGlmZiAtLWdpdCBh L3NvdW5kL2NvcmUvc2VxL3NlcV9wb3J0cy5jIGIvc291bmQvY29yZS9zZXEvc2VxX3BvcnRzLmMK aW5kZXggNjdjOTFkMjI2NTUyLi5lZTA1MjJhOGY3MzAgMTAwNjQ0Ci0tLSBhL3NvdW5kL2NvcmUv c2VxL3NlcV9wb3J0cy5jCisrKyBiL3NvdW5kL2NvcmUvc2VxL3NlcV9wb3J0cy5jCkBAIC01NDAs MTkgKzU0MCwyMiBAQCBzdGF0aWMgdm9pZCBkZWxldGVfYW5kX3Vuc3Vic2NyaWJlX3BvcnQoc3Ry dWN0IHNuZF9zZXFfY2xpZW50ICpjbGllbnQsCiAJCQkJCWJvb2wgaXNfc3JjLCBib29sIGFjaykK IHsKIAlzdHJ1Y3Qgc25kX3NlcV9wb3J0X3N1YnNfaW5mbyAqZ3JwOworCXN0cnVjdCBsaXN0X2hl YWQgKmxpc3Q7CisJYm9vbCBlbXB0eTsKIAogCWdycCA9IGlzX3NyYyA/ICZwb3J0LT5jX3NyYyA6 ICZwb3J0LT5jX2Rlc3Q7CisJbGlzdCA9IGlzX3NyYyA/ICZzdWJzLT5zcmNfbGlzdCA6ICZzdWJz LT5kZXN0X2xpc3Q7CiAJZG93bl93cml0ZSgmZ3JwLT5saXN0X211dGV4KTsKIAl3cml0ZV9sb2Nr X2lycSgmZ3JwLT5saXN0X2xvY2spOwotCWlmIChpc19zcmMpCi0JCWxpc3RfZGVsKCZzdWJzLT5z cmNfbGlzdCk7Ci0JZWxzZQotCQlsaXN0X2RlbCgmc3Vicy0+ZGVzdF9saXN0KTsKKwllbXB0eSA9 IGxpc3RfZW1wdHkobGlzdCk7CisJaWYgKCFlbXB0eSkKKwkJbGlzdF9kZWxfaW5pdChsaXN0KTsK IAlncnAtPmV4Y2x1c2l2ZSA9IDA7CiAJd3JpdGVfdW5sb2NrX2lycSgmZ3JwLT5saXN0X2xvY2sp OwogCXVwX3dyaXRlKCZncnAtPmxpc3RfbXV0ZXgpOwogCi0JdW5zdWJzY3JpYmVfcG9ydChjbGll bnQsIHBvcnQsIGdycCwgJnN1YnMtPmluZm8sIGFjayk7CisJaWYgKCFlbXB0eSkKKwkJdW5zdWJz Y3JpYmVfcG9ydChjbGllbnQsIHBvcnQsIGdycCwgJnN1YnMtPmluZm8sIGFjayk7CiB9CiAKIC8q IGNvbm5lY3QgdHdvIHBvcnRzICovCmRpZmYgLS1naXQgYS9zb3VuZC9jb3JlL3RpbWVyX2NvbXBh dC5jIGIvc291bmQvY29yZS90aW1lcl9jb21wYXQuYwppbmRleCBlMDU4MDJhZTZlMWIuLjhlN2Vk ZGYzNWM2YSAxMDA2NDQKLS0tIGEvc291bmQvY29yZS90aW1lcl9jb21wYXQuYworKysgYi9zb3Vu ZC9jb3JlL3RpbWVyX2NvbXBhdC5jCkBAIC03MCwxMyArNzAsMTQgQEAgc3RhdGljIGludCBzbmRf dGltZXJfdXNlcl9zdGF0dXNfY29tcGF0KHN0cnVjdCBmaWxlICpmaWxlLAogCQkJCQlzdHJ1Y3Qg c25kX3RpbWVyX3N0YXR1czMyIF9fdXNlciAqX3N0YXR1cykKIHsKIAlzdHJ1Y3Qgc25kX3RpbWVy X3VzZXIgKnR1OwotCXN0cnVjdCBzbmRfdGltZXJfc3RhdHVzIHN0YXR1czsKKwlzdHJ1Y3Qgc25k X3RpbWVyX3N0YXR1czMyIHN0YXR1czsKIAkKIAl0dSA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAlp ZiAoc25kX0JVR19PTighdHUtPnRpbWVyaSkpCiAJCXJldHVybiAtRU5YSU87CiAJbWVtc2V0KCZz dGF0dXMsIDAsIHNpemVvZihzdGF0dXMpKTsKLQlzdGF0dXMudHN0YW1wID0gdHUtPnRzdGFtcDsK KwlzdGF0dXMudHN0YW1wLnR2X3NlYyA9IHR1LT50c3RhbXAudHZfc2VjOworCXN0YXR1cy50c3Rh bXAudHZfbnNlYyA9IHR1LT50c3RhbXAudHZfbnNlYzsKIAlzdGF0dXMucmVzb2x1dGlvbiA9IHNu ZF90aW1lcl9yZXNvbHV0aW9uKHR1LT50aW1lcmkpOwogCXN0YXR1cy5sb3N0ID0gdHUtPnRpbWVy aS0+bG9zdDsKIAlzdGF0dXMub3ZlcnJ1biA9IHR1LT5vdmVycnVuOwpkaWZmIC0tZ2l0IGEvc291 bmQvcGNpL3JtZTk2NTIvaGRzcC5jIGIvc291bmQvcGNpL3JtZTk2NTIvaGRzcC5jCmluZGV4IGYy YTM3NThkYWM1Mi4uNzBhZDEyODQ1YTgyIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvcm1lOTY1Mi9o ZHNwLmMKKysrIGIvc291bmQvcGNpL3JtZTk2NTIvaGRzcC5jCkBAIC0zMTYzLDcgKzMxNjMsNyBA QCBzdGF0aWMgaW50IHNuZF9oZHNwX2dldF9kZHNfb2Zmc2V0KHN0cnVjdCBzbmRfa2NvbnRyb2wg Kmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bAogewogCXN0cnVjdCBoZHNwICpoZHNwID0gc25kX2tj b250cm9sX2NoaXAoa2NvbnRyb2wpOwogCi0JdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRl bVswXSA9IGhkc3BfZGRzX29mZnNldChoZHNwKTsKKwl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52 YWx1ZVswXSA9IGhkc3BfZGRzX29mZnNldChoZHNwKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMzE3 NSw3ICszMTc1LDcgQEAgc3RhdGljIGludCBzbmRfaGRzcF9wdXRfZGRzX29mZnNldChzdHJ1Y3Qg c25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGwKIAogCWlmICghc25kX2hkc3Bf dXNlX2lzX2V4Y2x1c2l2ZShoZHNwKSkKIAkJcmV0dXJuIC1FQlVTWTsKLQl2YWwgPSB1Y29udHJv bC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBdOworCXZhbCA9IHVjb250cm9sLT52YWx1ZS5pbnRl Z2VyLnZhbHVlWzBdOwogCXNwaW5fbG9ja19pcnEoJmhkc3AtPmxvY2spOwogCWlmICh2YWwgIT0g aGRzcF9kZHNfb2Zmc2V0KGhkc3ApKQogCQljaGFuZ2UgPSAoaGRzcF9zZXRfZGRzX29mZnNldCho ZHNwLCB2YWwpID09IDApID8gMSA6IDA7CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvcm1lOTY1Mi9o ZHNwbS5jIGIvc291bmQvcGNpL3JtZTk2NTIvaGRzcG0uYwppbmRleCA3MWEzZDUyNzQxYmIuLjQ1 MTkyY2VkODBhYiAxMDA2NDQKLS0tIGEvc291bmQvcGNpL3JtZTk2NTIvaGRzcG0uYworKysgYi9z b3VuZC9wY2kvcm1lOTY1Mi9oZHNwbS5jCkBAIC00Mzg2LDcgKzQzODYsNyBAQCBzdGF0aWMgaW50 IHNuZF9oZHNwbV9nZXRfdGNvX3dvcmRfdGVybShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJv bCwKIHsKIAlzdHJ1Y3QgaGRzcG0gKmhkc3BtID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wp OwogCi0JdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVswXSA9IGhkc3BtLT50Y28tPnRl cm07CisJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSBoZHNwbS0+dGNvLT50ZXJt OwogCiAJcmV0dXJuIDA7CiB9CkBAIC00Mzk3LDggKzQzOTcsOCBAQCBzdGF0aWMgaW50IHNuZF9o ZHNwbV9wdXRfdGNvX3dvcmRfdGVybShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKIHsK IAlzdHJ1Y3QgaGRzcG0gKmhkc3BtID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOwogCi0J aWYgKGhkc3BtLT50Y28tPnRlcm0gIT0gdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVsw XSkgewotCQloZHNwbS0+dGNvLT50ZXJtID0gdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRl bVswXTsKKwlpZiAoaGRzcG0tPnRjby0+dGVybSAhPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52 YWx1ZVswXSkgeworCQloZHNwbS0+dGNvLT50ZXJtID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIu dmFsdWVbMF07CiAKIAkJaGRzcG1fdGNvX3dyaXRlKGhkc3BtKTsKIApkaWZmIC0tZ2l0IGEvc291 bmQvc29jL2NvZGVjcy93bTg5NTgtZHNwMi5jIGIvc291bmQvc29jL2NvZGVjcy93bTg5NTgtZHNw Mi5jCmluZGV4IDVhMTRkNWMwZTBlMS4uYmIxOTgyMDc1MjAwIDEwMDY0NAotLS0gYS9zb3VuZC9z b2MvY29kZWNzL3dtODk1OC1kc3AyLmMKKysrIGIvc291bmQvc29jL2NvZGVjcy93bTg5NTgtZHNw Mi5jCkBAIC00NTgsNyArNDU4LDcgQEAgc3RhdGljIGludCB3bTg5NThfcHV0X21iY19lbnVtKHN0 cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2Rl YyA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKIAlzdHJ1Y3Qgd204OTk0X3ByaXYgKndt ODk5NCA9IHNuZF9zb2NfY29kZWNfZ2V0X2RydmRhdGEoY29kZWMpOwogCXN0cnVjdCB3bTg5OTRf cGRhdGEgKnBkYXRhID0gd204OTk0LT5wZGF0YTsKLQlpbnQgdmFsdWUgPSB1Y29udHJvbC0+dmFs dWUuaW50ZWdlci52YWx1ZVswXTsKKwlpbnQgdmFsdWUgPSB1Y29udHJvbC0+dmFsdWUuZW51bWVy YXRlZC5pdGVtWzBdOwogCWludCByZWc7CiAKIAkvKiBEb24ndCBhbGxvdyBvbiB0aGUgZmx5IHJl Y29uZmlndXJhdGlvbiAqLwpAQCAtNTQ4LDcgKzU0OCw3IEBAIHN0YXRpYyBpbnQgd204OTU4X3B1 dF92c3NfZW51bShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKIAlzdHJ1Y3Qgc25kX3Nv Y19jb2RlYyAqY29kZWMgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CiAJc3RydWN0IHdt ODk5NF9wcml2ICp3bTg5OTQgPSBzbmRfc29jX2NvZGVjX2dldF9kcnZkYXRhKGNvZGVjKTsKIAlz dHJ1Y3Qgd204OTk0X3BkYXRhICpwZGF0YSA9IHdtODk5NC0+cGRhdGE7Ci0JaW50IHZhbHVlID0g dWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF07CisJaW50IHZhbHVlID0gdWNvbnRyb2wt PnZhbHVlLmVudW1lcmF0ZWQuaXRlbVswXTsKIAlpbnQgcmVnOwogCiAJLyogRG9uJ3QgYWxsb3cg b24gdGhlIGZseSByZWNvbmZpZ3VyYXRpb24gKi8KQEAgLTU4MSw3ICs1ODEsNyBAQCBzdGF0aWMg aW50IHdtODk1OF9wdXRfdnNzX2hwZl9lbnVtKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9s LAogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250 cm9sKTsKIAlzdHJ1Y3Qgd204OTk0X3ByaXYgKndtODk5NCA9IHNuZF9zb2NfY29kZWNfZ2V0X2Ry dmRhdGEoY29kZWMpOwogCXN0cnVjdCB3bTg5OTRfcGRhdGEgKnBkYXRhID0gd204OTk0LT5wZGF0 YTsKLQlpbnQgdmFsdWUgPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXTsKKwlpbnQg dmFsdWUgPSB1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBdOwogCWludCByZWc7CiAK IAkvKiBEb24ndCBhbGxvdyBvbiB0aGUgZmx5IHJlY29uZmlndXJhdGlvbiAqLwpAQCAtNzQ4LDcg Kzc0OCw3IEBAIHN0YXRpYyBpbnQgd204OTU4X3B1dF9lbmhfZXFfZW51bShzdHJ1Y3Qgc25kX2tj b250cm9sICprY29udHJvbCwKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzbmRfa2Nv bnRyb2xfY2hpcChrY29udHJvbCk7CiAJc3RydWN0IHdtODk5NF9wcml2ICp3bTg5OTQgPSBzbmRf c29jX2NvZGVjX2dldF9kcnZkYXRhKGNvZGVjKTsKIAlzdHJ1Y3Qgd204OTk0X3BkYXRhICpwZGF0 YSA9IHdtODk5NC0+cGRhdGE7Ci0JaW50IHZhbHVlID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIu dmFsdWVbMF07CisJaW50IHZhbHVlID0gdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVsw XTsKIAlpbnQgcmVnOwogCiAJLyogRG9uJ3QgYWxsb3cgb24gdGhlIGZseSByZWNvbmZpZ3VyYXRp b24gKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204OTk0LmMgYi9zb3VuZC9zb2Mv Y29kZWNzL3dtODk5NC5jCmluZGV4IDlhNTY3OTgwNzQ1NC4uYTAwODhjOTc5MTJlIDEwMDY0NAot LS0gYS9zb3VuZC9zb2MvY29kZWNzL3dtODk5NC5jCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204 OTk0LmMKQEAgLTM4Niw3ICszODYsNyBAQCBzdGF0aWMgaW50IHdtODk5NF9wdXRfZHJjX2VudW0o c3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCiAJc3RydWN0IHdtODk5NF9wcml2ICp3bTg5 OTQgPSBzbmRfc29jX2NvZGVjX2dldF9kcnZkYXRhKGNvZGVjKTsKIAlzdHJ1Y3Qgd204OTk0X3Bk YXRhICpwZGF0YSA9IHdtODk5NC0+cGRhdGE7CiAJaW50IGRyYyA9IHdtODk5NF9nZXRfZHJjKGtj b250cm9sLT5pZC5uYW1lKTsKLQlpbnQgdmFsdWUgPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52 YWx1ZVswXTsKKwlpbnQgdmFsdWUgPSB1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBd OwogCiAJaWYgKGRyYyA8IDApCiAJCXJldHVybiBkcmM7CkBAIC00ODksNyArNDg5LDcgQEAgc3Rh dGljIGludCB3bTg5OTRfcHV0X3JldHVuZV9tb2JpbGVfZW51bShzdHJ1Y3Qgc25kX2tjb250cm9s ICprY29udHJvbCwKIAlzdHJ1Y3Qgd204OTk0X3ByaXYgKndtODk5NCA9IHNuZF9zb2NfY29kZWNf Z2V0X2RydmRhdGEoY29kZWMpOwogCXN0cnVjdCB3bTg5OTRfcGRhdGEgKnBkYXRhID0gd204OTk0 LT5wZGF0YTsKIAlpbnQgYmxvY2sgPSB3bTg5OTRfZ2V0X3JldHVuZV9tb2JpbGVfYmxvY2soa2Nv bnRyb2wtPmlkLm5hbWUpOwotCWludCB2YWx1ZSA9IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZh bHVlWzBdOworCWludCB2YWx1ZSA9IHVjb250cm9sLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1bMF07 CiAKIAlpZiAoYmxvY2sgPCAwKQogCQlyZXR1cm4gYmxvY2s7CmRpZmYgLS1naXQgYS92aXJ0L2t2 bS9hc3luY19wZi5jIGIvdmlydC9rdm0vYXN5bmNfcGYuYwppbmRleCBiZGQyYzBkNjkwZDYuLjU0 MWYwMzA4MmI5NiAxMDA2NDQKLS0tIGEvdmlydC9rdm0vYXN5bmNfcGYuYworKysgYi92aXJ0L2t2 bS9hc3luY19wZi5jCkBAIC0xNTksNyArMTU5LDcgQEAgaW50IGt2bV9zZXR1cF9hc3luY19wZihz dHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGd2YV90IGd2YSwgZ2ZuX3QgZ2ZuLAogCSAqIGRvIGFsbG9j IG5vd2FpdCBzaW5jZSBpZiB3ZSBhcmUgZ29pbmcgdG8gc2xlZXAgYW55d2F5IHdlCiAJICogbWF5 IGFzIHdlbGwgc2xlZXAgZmF1bHRpbmcgaW4gcGFnZQogCSAqLwotCXdvcmsgPSBrbWVtX2NhY2hl X3phbGxvYyhhc3luY19wZl9jYWNoZSwgR0ZQX05PV0FJVCk7CisJd29yayA9IGttZW1fY2FjaGVf emFsbG9jKGFzeW5jX3BmX2NhY2hlLCBHRlBfTk9XQUlUIHwgX19HRlBfTk9XQVJOKTsKIAlpZiAo IXdvcmspCiAJCXJldHVybiAwOwogCj== --=-9knMWN7Z4YBmP2N/5yS0-- --=-glO5QPaS00pR8juiHoWr Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAABCgAGBQJW+uM+AAoJEOe/yOyVhhEJNHYQAJZvmmhOvesyUus6wTljAjCS lpg/jL/C5N2FhrXr87S1FYnYtYrGsBligY8pDjrnmx/1jBXrqcAf7ZaghLvEtgOC /bpHyF6mrcKqLyHvrm/lJk/bsSKROOnUc41IONJZLsrqeZ/2OeYLhL1Y5n2y+nC/ mNWd3IGpJoV4ACXTaSwpnjQ3GSQa9wByPGDttUFCuHvnMBfzKPpKiyLbR7u7Y13R dfT0G7V/eeF3zv7Jjnf3cm2J63EegnUisAYp4fbP/Q4qQzi7/yixk5FkQQx8gyB3 ZEK30Oic58T0VSWRaQhY1QLInRHokaVkDaHZXMbC6kkLjhXedenpH7stwFy5/XLl w35PjAJZZ00VeCKHVnMHu2+E9a6mEhso6giyPMASHwkY2VD6XC8OKrOYLNwZTVOz yTeA5RH4tr74KvJyArOgy+w9BJTkM/O1ndejG3VLijcoX8r+mG+tPZvH2ThHdAQX ocz6ph4fUtZ0SWS+LJ51YYBlxYbMFidmq+jiWk9oloOsDMXuSHRRYWkxCyN61R/S JK2Sl1y8fzRpqWAeGt0suX8tVOY2H7YHl8atrO7uB3Tc9tgBWfCaPYBWQF/8C4rj OmZNqvhlRSWQGTelUfaQ7uiVeX61L6reXscdkah2qvN+Ud0szMMSw4VyE0ewnBbA aBD7jYb0AO5TORyHvrDl =M2vG -----END PGP SIGNATURE----- --=-glO5QPaS00pR8juiHoWr--