From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([184.105.139.130]:42218 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751669AbdF2QTK (ORCPT ); Thu, 29 Jun 2017 12:19:10 -0400 Received: from localhost (unknown [38.140.131.194]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 125F6124802E6 for ; Thu, 29 Jun 2017 08:37:21 -0700 (PDT) Date: Thu, 29 Jun 2017 12:19:07 -0400 (EDT) Message-Id: <20170629.121907.304654744986946881.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Thu_Jun_29_12_19_07_2017_387)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Thu_Jun_29_12_19_07_2017_387)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.9 and v4.11 -stable, respectively. Thank you! ----Next_Part(Thu_Jun_29_12_19_07_2017_387)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_49.mbox" RnJvbSBmYWQxMDFiMWQxZmRiYjIzZTE3MDgwNDM5YmMzYWRkMzBlMzQ5NmYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgUG90YXBlbmtvIDxnbGlkZXJAZ29vZ2xlLmNv bT4KRGF0ZTogVHVlLCA2IEp1biAyMDE3IDE1OjU2OjU0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAw MS8yNF0gbmV0OiBkb24ndCBjYWxsIHN0cmxlbiBvbiBub24tdGVybWluYXRlZCBzdHJpbmcgaW4K IGRldl9zZXRfYWxpYXMoKQoKWyBVcHN0cmVhbSBjb21taXQgYzI4Mjk0Yjk0MTIzMjkzMWZiZDcx NDA5OTc5OGViN2FhN2U4NjVkNyBdCgpLTVNBTiByZXBvcnRlZCBhIHVzZSBvZiB1bmluaXRpYWxp emVkIG1lbW9yeSBpbiBkZXZfc2V0X2FsaWFzKCksCndoaWNoIHdhcyBjYXVzZWQgYnkgY2FsbGlu ZyBzdHJsY3B5KCkgKHdoaWNoIGluIHR1cm4gY2FsbGVkIHN0cmxlbigpKQpvbiB0aGUgdXNlci1z dXBwbGllZCBub24tdGVybWluYXRlZCBzdHJpbmcuCgpTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIg UG90YXBlbmtvIDxnbGlkZXJAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2Rldi5jIHwgMyArKy0KIDEg ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9uZXQvY29yZS9kZXYuYyBiL25ldC9jb3JlL2Rldi5jCmluZGV4IDJlMDRmZDEuLjk3ZjgwNjEg MTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Rldi5jCisrKyBiL25ldC9jb3JlL2Rldi5jCkBAIC0xMjUw LDggKzEyNTAsOSBAQCBpbnQgZGV2X3NldF9hbGlhcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBj b25zdCBjaGFyICphbGlhcywgc2l6ZV90IGxlbikKIAlpZiAoIW5ld19pZmFsaWFzKQogCQlyZXR1 cm4gLUVOT01FTTsKIAlkZXYtPmlmYWxpYXMgPSBuZXdfaWZhbGlhczsKKwltZW1jcHkoZGV2LT5p ZmFsaWFzLCBhbGlhcywgbGVuKTsKKwlkZXYtPmlmYWxpYXNbbGVuXSA9IDA7CiAKLQlzdHJsY3B5 KGRldi0+aWZhbGlhcywgYWxpYXMsIGxlbisxKTsKIAlyZXR1cm4gbGVuOwogfQogCi0tIAoyLjQu MTEKCgpGcm9tIGNkOTRlNjkxMGQ0Y2QxMDEzYmFhZjUwZTExMjUyYTJiMTVhYjEzMzkgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hdGV1c3ogSnVyY3p5ayA8bWp1cmN6eWtAZ29vZ2xl LmNvbT4KRGF0ZTogV2VkLCA3IEp1biAyMDE3IDE2OjE0OjI5ICswMjAwClN1YmplY3Q6IFtQQVRD SCAwMi8yNF0gZGVjbmV0OiBkbl9ydG1zZzogSW1wcm92ZSBpbnB1dCBsZW5ndGggc2FuaXRpemF0 aW9uIGluCiBkbnJtZ19yZWNlaXZlX3VzZXJfc2tiCgpbIFVwc3RyZWFtIGNvbW1pdCBkZDBkYTE3 YjIwOWVkOTFmMzk4NzI3NjY2MzRjYTk2N2MxNzBhZGExIF0KClZlcmlmeSB0aGF0IHRoZSBsZW5n dGggb2YgdGhlIHNvY2tldCBidWZmZXIgaXMgc3VmZmljaWVudCB0byBjb3ZlciB0aGUKbmxtc2do ZHIgc3RydWN0dXJlIGJlZm9yZSBhY2Nlc3NpbmcgdGhlIG5saC0+bmxtc2dfbGVuIGZpZWxkIGZv ciBmdXJ0aGVyCmlucHV0IHNhbml0aXphdGlvbi4gSWYgdGhlIGNsaWVudCBvbmx5IHN1cHBsaWVz IDEtMyBieXRlcyBvZiBkYXRhIGluCnNrX2J1ZmYsIHRoZW4gbmxoLT5ubG1zZ19sZW4gcmVtYWlu cyBwYXJ0aWFsbHkgdW5pbml0aWFsaXplZCBhbmQKY29udGFpbnMgbGVmdG92ZXIgbWVtb3J5IGZy b20gdGhlIGNvcnJlc3BvbmRpbmcga2VybmVsIGFsbG9jYXRpb24uCk9wZXJhdGluZyBvbiBzdWNo IGRhdGEgbWF5IHJlc3VsdCBpbiBpbmRldGVybWluYXRlIGV2YWx1YXRpb24gb2YgdGhlCm5sbXNn X2xlbiA8IHNpemVvZigqbmxoKSBleHByZXNzaW9uLgoKVGhlIGJ1ZyB3YXMgZGlzY292ZXJlZCBi eSBhIHJ1bnRpbWUgaW5zdHJ1bWVudGF0aW9uIGRlc2lnbmVkIHRvIGRldGVjdAp1c2Ugb2YgdW5p bml0aWFsaXplZCBtZW1vcnkgaW4gdGhlIGtlcm5lbC4gVGhlIHBhdGNoIHByZXZlbnRzIHRoaXMg YW5kCm90aGVyIHNpbWlsYXIgdG9vbHMgKGUuZy4gS01TQU4pIGZyb20gZmxhZ2dpbmcgdGhpcyBi ZWhhdmlvciBpbiB0aGUgZnV0dXJlLgoKU2lnbmVkLW9mZi1ieTogTWF0ZXVzeiBKdXJjenlrIDxt anVyY3p5a0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2RlY25ldC9uZXRmaWx0ZXIvZG5fcnRtc2cuYyB8IDQg KysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL25ldC9kZWNuZXQvbmV0ZmlsdGVyL2RuX3J0bXNnLmMgYi9uZXQvZGVjbmV0L25l dGZpbHRlci9kbl9ydG1zZy5jCmluZGV4IDg1ZjJmZGMuLjI5MjQ2YmMgMTAwNjQ0Ci0tLSBhL25l dC9kZWNuZXQvbmV0ZmlsdGVyL2RuX3J0bXNnLmMKKysrIGIvbmV0L2RlY25ldC9uZXRmaWx0ZXIv ZG5fcnRtc2cuYwpAQCAtMTAyLDcgKzEwMiw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkbnJtZ19y ZWNlaXZlX3VzZXJfc2tiKHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJc3RydWN0IG5sbXNnaGRy ICpubGggPSBubG1zZ19oZHIoc2tiKTsKIAotCWlmIChubGgtPm5sbXNnX2xlbiA8IHNpemVvZigq bmxoKSB8fCBza2ItPmxlbiA8IG5saC0+bmxtc2dfbGVuKQorCWlmIChza2ItPmxlbiA8IHNpemVv ZigqbmxoKSB8fAorCSAgICBubGgtPm5sbXNnX2xlbiA8IHNpemVvZigqbmxoKSB8fAorCSAgICBz a2ItPmxlbiA8IG5saC0+bmxtc2dfbGVuKQogCQlyZXR1cm47CiAKIAlpZiAoIW5ldGxpbmtfY2Fw YWJsZShza2IsIENBUF9ORVRfQURNSU4pKQotLSAKMi40LjExCgoKRnJvbSAwYmMyY2JjODE1NDll OTU3YjJhZTkwZTVjNDgwNTFiNmE1MmVjM2Y4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiAiTWludHosIFl1dmFsIiA8WXV2YWwuTWludHpAY2F2aXVtLmNvbT4KRGF0ZTogV2VkLCA3IEp1 biAyMDE3IDIxOjAwOjMzICswMzAwClN1YmplY3Q6IFtQQVRDSCAwMy8yNF0gbmV0OiBaZXJvIGlm bGFfdmZfaW5mbyBpbiBydG5sX2ZpbGxfdmZpbmZvKCkKClsgVXBzdHJlYW0gY29tbWl0IDBlZWQ5 Y2Y1ODQ0NmIyOGIyMzMzODhiN2YyMjRjYmNhMjY4YjY5ODYgXQoKU29tZSBvZiB0aGUgc3RydWN0 dXJlJ3MgZmllbGRzIGFyZSBub3QgaW5pdGlhbGl6ZWQgYnkgdGhlCnJ0bmV0bGluay4gSWYgZHJp dmVyIGRvZXNuJ3Qgc2V0IHRob3NlIGluIG5kb19nZXRfdmZfY29uZmlnKCksCnRoZXknZCBsZWFr IG1lbW9yeSB0byB1c2VyLgoKU2lnbmVkLW9mZi1ieTogWXV2YWwgTWludHogPFl1dmFsLk1pbnR6 QGNhdml1bS5jb20+CkNDOiBNaWNoYWwgU2NobWlkdCA8bXNjaG1pZHRAcmVkaGF0LmNvbT4KUmV2 aWV3ZWQtYnk6IEdyZWcgUm9zZSA8Z3Zyb3NlODE5MkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9ydG5l dGxpbmsuYyB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvcnRuZXRsaW5rLmMgYi9uZXQvY29yZS9ydG5l dGxpbmsuYwppbmRleCAxZDkxNjA3Li5kNTc0NDA5IDEwMDY0NAotLS0gYS9uZXQvY29yZS9ydG5l dGxpbmsuYworKysgYi9uZXQvY29yZS9ydG5ldGxpbmsuYwpAQCAtMTEzMCw2ICsxMTMwLDggQEAg c3RhdGljIG5vaW5saW5lX2Zvcl9zdGFjayBpbnQgcnRubF9maWxsX3ZmaW5mbyhzdHJ1Y3Qgc2tf YnVmZiAqc2tiLAogCXN0cnVjdCBpZmxhX3ZmX21hYyB2Zl9tYWM7CiAJc3RydWN0IGlmbGFfdmZf aW5mbyBpdmk7CiAKKwltZW1zZXQoJml2aSwgMCwgc2l6ZW9mKGl2aSkpOworCiAJLyogTm90IGFs bCBTUi1JT1YgY2FwYWJsZSBkcml2ZXJzIHN1cHBvcnQgdGhlCiAJICogc3Bvb2ZjaGVjayBhbmQg IlJTUyBxdWVyeSBlbmFibGUiIHF1ZXJ5LiAgUHJlc2V0IHRvCiAJICogLTEgc28gdGhlIHVzZXIg c3BhY2UgdG9vbCBjYW4gZGV0ZWN0IHRoYXQgdGhlIGRyaXZlcgpAQCAtMTEzOCw3ICsxMTQwLDYg QEAgc3RhdGljIG5vaW5saW5lX2Zvcl9zdGFjayBpbnQgcnRubF9maWxsX3ZmaW5mbyhzdHJ1Y3Qg c2tfYnVmZiAqc2tiLAogCWl2aS5zcG9vZmNoayA9IC0xOwogCWl2aS5yc3NfcXVlcnlfZW4gPSAt MTsKIAlpdmkudHJ1c3RlZCA9IC0xOwotCW1lbXNldChpdmkubWFjLCAwLCBzaXplb2YoaXZpLm1h YykpOwogCS8qIFRoZSBkZWZhdWx0IHZhbHVlIGZvciBWRiBsaW5rIHN0YXRlIGlzICJhdXRvIgog CSAqIElGTEFfVkZfTElOS19TVEFURV9BVVRPIHdoaWNoIGVxdWFscyB6ZXJvCiAJICovCi0tIAoy LjQuMTEKCgpGcm9tIDYxYmE0Yjk3NGIyOGUxNmNmMDg1NDM1Mzg3OGNkY2NlZDI1ODExOGQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNv bT4KRGF0ZTogVGh1LCA4IEp1biAyMDE3IDExOjMxOjExIC0wNjAwClN1YmplY3Q6IFtQQVRDSCAw NC8yNF0gbmV0OiB2cmY6IE1ha2UgYWRkX2ZpYl9ydWxlcyBwZXIgbmV0d29yayBuYW1lc3BhY2Ug ZmxhZwoKWyBVcHN0cmVhbSBjb21taXQgMDk3ZDNjOTUwOGRjNTgyODYzNDRlNGEyMmIzMDAwOThj ZjBjMTU2NiBdCgpDb21taXQgMWFhNmM0ZjZiOGNkOCAoIm5ldDogdnJmOiBBZGQgbDNtZGV2IHJ1 bGVzIG9uIGZpcnN0IGRldmljZSBjcmVhdGUiKQphZGRzIHRoZSBsM21kZXYgRklCIHJ1bGUgdGhl IGZpcnN0IHRpbWUgYSBWUkYgZGV2aWNlIGlzIGNyZWF0ZWQuIEhvd2V2ZXIsCml0IG9ubHkgY3Jl YXRlcyB0aGUgcnVsZSBvbmNlIGFuZCBvbmx5IGluIHRoZSBuYW1lc3BhY2UgdGhlIGZpcnN0IGRl dmljZQppcyBjcmVhdGVkIC0gd2hpY2ggbWF5IG5vdCBiZSBpbml0X25ldC4gRml4IGJ5IHVzaW5n IHRoZSBuZXRfZ2VuZXJpYwpjYXBhYmlsaXR5IHRvIG1ha2UgdGhlIGFkZF9maWJfcnVsZXMgZmxh ZyBwZXIgbmV0d29yayBuYW1lc3BhY2UuCgpGaXhlczogMWFhNmM0ZjZiOGNkOCAoIm5ldDogdnJm OiBBZGQgbDNtZGV2IHJ1bGVzIG9uIGZpcnN0IGRldmljZSBjcmVhdGUiKQpSZXBvcnRlZC1ieTog UGV0ciBNYWNoYXRhIDxwZXRybUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIEFo ZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3ZyZi5jIHwgMzYgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzIgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92cmYuYyBiL2Ry aXZlcnMvbmV0L3ZyZi5jCmluZGV4IGVlMDI2MDUuLjY0MmRmOTMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L3ZyZi5jCisrKyBiL2RyaXZlcnMvbmV0L3ZyZi5jCkBAIC0zNiwxMiArMzYsMTQgQEAK ICNpbmNsdWRlIDxuZXQvYWRkcmNvbmYuaD4KICNpbmNsdWRlIDxuZXQvbDNtZGV2Lmg+CiAjaW5j bHVkZSA8bmV0L2ZpYl9ydWxlcy5oPgorI2luY2x1ZGUgPG5ldC9uZXRucy9nZW5lcmljLmg+CiAK ICNkZWZpbmUgRFJWX05BTUUJInZyZiIKICNkZWZpbmUgRFJWX1ZFUlNJT04JIjEuMCIKIAogI2Rl ZmluZSBGSUJfUlVMRV9QUkVGICAxMDAwICAgICAgIC8qIGRlZmF1bHQgcHJlZmVyZW5jZSBmb3Ig RklCIHJ1bGVzICovCi1zdGF0aWMgYm9vbCBhZGRfZmliX3J1bGVzID0gdHJ1ZTsKKworc3RhdGlj IHVuc2lnbmVkIGludCB2cmZfbmV0X2lkOwogCiBzdHJ1Y3QgbmV0X3ZyZiB7CiAJc3RydWN0IHJ0 YWJsZSBfX3JjdQkqcnRoOwpAQCAtMTIzNyw2ICsxMjM5LDggQEAgc3RhdGljIGludCB2cmZfbmV3 bGluayhzdHJ1Y3QgbmV0ICpzcmNfbmV0LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQkgICAg ICAgc3RydWN0IG5sYXR0ciAqdGJbXSwgc3RydWN0IG5sYXR0ciAqZGF0YVtdKQogewogCXN0cnVj dCBuZXRfdnJmICp2cmYgPSBuZXRkZXZfcHJpdihkZXYpOworCWJvb2wgKmFkZF9maWJfcnVsZXM7 CisJc3RydWN0IG5ldCAqbmV0OwogCWludCBlcnI7CiAKIAlpZiAoIWRhdGEgfHwgIWRhdGFbSUZM QV9WUkZfVEFCTEVdKQpAQCAtMTI1MiwxMyArMTI1NiwxNSBAQCBzdGF0aWMgaW50IHZyZl9uZXds aW5rKHN0cnVjdCBuZXQgKnNyY19uZXQsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJaWYgKGVy cikKIAkJZ290byBvdXQ7CiAKLQlpZiAoYWRkX2ZpYl9ydWxlcykgeworCW5ldCA9IGRldl9uZXQo ZGV2KTsKKwlhZGRfZmliX3J1bGVzID0gbmV0X2dlbmVyaWMobmV0LCB2cmZfbmV0X2lkKTsKKwlp ZiAoKmFkZF9maWJfcnVsZXMpIHsKIAkJZXJyID0gdnJmX2FkZF9maWJfcnVsZXMoZGV2KTsKIAkJ aWYgKGVycikgewogCQkJdW5yZWdpc3Rlcl9uZXRkZXZpY2UoZGV2KTsKIAkJCWdvdG8gb3V0Owog CQl9Ci0JCWFkZF9maWJfcnVsZXMgPSBmYWxzZTsKKwkJKmFkZF9maWJfcnVsZXMgPSBmYWxzZTsK IAl9CiAKIG91dDoKQEAgLTEzNDEsMTYgKzEzNDcsMzggQEAgc3RhdGljIHN0cnVjdCBub3RpZmll cl9ibG9jayB2cmZfbm90aWZpZXJfYmxvY2sgX19yZWFkX21vc3RseSA9IHsKIAkubm90aWZpZXJf Y2FsbCA9IHZyZl9kZXZpY2VfZXZlbnQsCiB9OwogCisvKiBJbml0aWFsaXplIHBlciBuZXR3b3Jr IG5hbWVzcGFjZSBzdGF0ZSAqLworc3RhdGljIGludCBfX25ldF9pbml0IHZyZl9uZXRuc19pbml0 KHN0cnVjdCBuZXQgKm5ldCkKK3sKKwlib29sICphZGRfZmliX3J1bGVzID0gbmV0X2dlbmVyaWMo bmV0LCB2cmZfbmV0X2lkKTsKKworCSphZGRfZmliX3J1bGVzID0gdHJ1ZTsKKworCXJldHVybiAw OworfQorCitzdGF0aWMgc3RydWN0IHBlcm5ldF9vcGVyYXRpb25zIHZyZl9uZXRfb3BzIF9fbmV0 X2luaXRkYXRhID0geworCS5pbml0ID0gdnJmX25ldG5zX2luaXQsCisJLmlkICAgPSAmdnJmX25l dF9pZCwKKwkuc2l6ZSA9IHNpemVvZihib29sKSwKK307CisKIHN0YXRpYyBpbnQgX19pbml0IHZy Zl9pbml0X21vZHVsZSh2b2lkKQogewogCWludCByYzsKIAogCXJlZ2lzdGVyX25ldGRldmljZV9u b3RpZmllcigmdnJmX25vdGlmaWVyX2Jsb2NrKTsKIAotCXJjID0gcnRubF9saW5rX3JlZ2lzdGVy KCZ2cmZfbGlua19vcHMpOworCXJjID0gcmVnaXN0ZXJfcGVybmV0X3N1YnN5cygmdnJmX25ldF9v cHMpOwogCWlmIChyYyA8IDApCiAJCWdvdG8gZXJyb3I7CiAKKwlyYyA9IHJ0bmxfbGlua19yZWdp c3RlcigmdnJmX2xpbmtfb3BzKTsKKwlpZiAocmMgPCAwKSB7CisJCXVucmVnaXN0ZXJfcGVybmV0 X3N1YnN5cygmdnJmX25ldF9vcHMpOworCQlnb3RvIGVycm9yOworCX0KKwogCXJldHVybiAwOwog CiBlcnJvcjoKLS0gCjIuNC4xMQoKCkZyb20gMWY1YzMzMWZjZGExYWNmMmU5NTg2OTMxNmVjNjhj NzkxZmI2NTUwMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWF0ZXVzeiBKdXJjenlr IDxtanVyY3p5a0Bnb29nbGUuY29tPgpEYXRlOiBUaHUsIDggSnVuIDIwMTcgMTE6MTM6MzYgKzAy MDAKU3ViamVjdDogW1BBVENIIDA1LzI0XSBhZl91bml4OiBBZGQgc29ja2FkZHIgbGVuZ3RoIGNo ZWNrcyBiZWZvcmUgYWNjZXNzaW5nCiBzYV9mYW1pbHkgaW4gYmluZCBhbmQgY29ubmVjdCBoYW5k bGVycwoKWyBVcHN0cmVhbSBjb21taXQgZGVmYmNmMmRlY2M5MDNhMjhkODM5OGFhNDc3YjY4ODFl NzExZTNlYSBdCgpWZXJpZnkgdGhhdCB0aGUgY2FsbGVyLXByb3ZpZGVkIHNvY2thZGRyIHN0cnVj dHVyZSBpcyBsYXJnZSBlbm91Z2ggdG8KY29udGFpbiB0aGUgc2FfZmFtaWx5IGZpZWxkLCBiZWZv cmUgYWNjZXNzaW5nIGl0IGluIGJpbmQoKSBhbmQgY29ubmVjdCgpCmhhbmRsZXJzIG9mIHRoZSBB Rl9VTklYIHNvY2tldC4gU2luY2UgbmVpdGhlciBzeXNjYWxsIGVuZm9yY2VzIGEgbWluaW11bQpz aXplIG9mIHRoZSBjb3JyZXNwb25kaW5nIG1lbW9yeSByZWdpb24sIHZlcnkgc2hvcnQgc29ja2Fk ZHJzICh6ZXJvIG9yCm9uZSBieXRlIGxvbmcpIHJlc3VsdCBpbiBvcGVyYXRpbmcgb24gdW5pbml0 aWFsaXplZCBtZW1vcnkgd2hpbGUKcmVmZXJlbmNpbmcgLnNhX2ZhbWlseS4KClNpZ25lZC1vZmYt Ynk6IE1hdGV1c3ogSnVyY3p5ayA8bWp1cmN6eWtAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC91bml4L2FmX3Vu aXguYyB8IDcgKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC91bml4L2FmX3VuaXguYyBiL25ldC91bml4L2FmX3Vu aXguYwppbmRleCAyZDAzZDViLi45MTVhYmU5IDEwMDY0NAotLS0gYS9uZXQvdW5peC9hZl91bml4 LmMKKysrIGIvbmV0L3VuaXgvYWZfdW5peC5jCkBAIC05OTgsNyArOTk4LDggQEAgc3RhdGljIGlu dCB1bml4X2JpbmQoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwg aW50IGFkZHJfbGVuKQogCXN0cnVjdCBwYXRoIHBhdGggPSB7IE5VTEwsIE5VTEwgfTsKIAogCWVy ciA9IC1FSU5WQUw7Ci0JaWYgKHN1bmFkZHItPnN1bl9mYW1pbHkgIT0gQUZfVU5JWCkKKwlpZiAo YWRkcl9sZW4gPCBvZmZzZXRvZmVuZChzdHJ1Y3Qgc29ja2FkZHJfdW4sIHN1bl9mYW1pbHkpIHx8 CisJICAgIHN1bmFkZHItPnN1bl9mYW1pbHkgIT0gQUZfVU5JWCkKIAkJZ290byBvdXQ7CiAKIAlp ZiAoYWRkcl9sZW4gPT0gc2l6ZW9mKHNob3J0KSkgewpAQCAtMTEwOSw2ICsxMTEwLDEwIEBAIHN0 YXRpYyBpbnQgdW5peF9kZ3JhbV9jb25uZWN0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBz b2NrYWRkciAqYWRkciwKIAl1bnNpZ25lZCBpbnQgaGFzaDsKIAlpbnQgZXJyOwogCisJZXJyID0g LUVJTlZBTDsKKwlpZiAoYWxlbiA8IG9mZnNldG9mZW5kKHN0cnVjdCBzb2NrYWRkciwgc2FfZmFt aWx5KSkKKwkJZ290byBvdXQ7CisKIAlpZiAoYWRkci0+c2FfZmFtaWx5ICE9IEFGX1VOU1BFQykg ewogCQllcnIgPSB1bml4X21rbmFtZShzdW5hZGRyLCBhbGVuLCAmaGFzaCk7CiAJCWlmIChlcnIg PCAwKQotLSAKMi40LjExCgoKRnJvbSAwZTRiNzE3YzAyM2JlMDcxMjJjY2Q2Y2E1ZmZiMTI4NDZj MGQ5ODg4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLcmlzdGVyIEpvaGFuc2VuIDxr amx4QHRlbXBsZW9mc3R1cGlkLmNvbT4KRGF0ZTogVGh1LCA4IEp1biAyMDE3IDEzOjEyOjM4IC0w NzAwClN1YmplY3Q6IFtQQVRDSCAwNi8yNF0gRml4IGFuIGludGVybWl0dGVudCBwcl9lbWVyZyB3 YXJuaW5nIGFib3V0IGxvIGJlY29taW5nCiBmcmVlLgoKWyBVcHN0cmVhbSBjb21taXQgZjE4NmNl NjFiYjgyMzVkODAwNjhjMzkwZGMyYWFkN2NhNDI3YTRjMiBdCgpJdCBsb29rcyBsaWtlIHRoaXM6 CgpNZXNzYWdlIGZyb20gc3lzbG9nZEBmbGFtaW5nbyBhdCBBcHIgMjYgMDA6NDU6MDAgLi4uCiBr ZXJuZWw6dW5yZWdpc3Rlcl9uZXRkZXZpY2U6IHdhaXRpbmcgZm9yIGxvIHRvIGJlY29tZSBmcmVl LiBVc2FnZSBjb3VudCA9IDQKClRoZXkgc2VlbSB0byBjb2luY2lkZSB3aXRoIG5ldCBuYW1lc3Bh Y2UgdGVhcmRvd24uCgpUaGUgbWVzc2FnZSBpcyBlbWl0dGVkIGJ5IG5ldGRldl93YWl0X2FsbHJl ZnMoKS4KCkZvcmNlZCBhIGtkdW1wIGluIG5ldGRldl9ydW5fdG9kbywgYnV0IGZvdW5kIHRoYXQg dGhlIHJlZmNvdW50IG9uIHRoZSBsbwpkZXZpY2Ugd2FzIGFscmVhZHkgMCBhdCB0aGUgdGltZSB3 ZSBnb3QgdG8gdGhlIHBhbmljLgoKVXNlZCBiY2MgdG8gY2hlY2sgdGhlIGJsb2NraW5nIGluIG5l dGRldl9ydW5fdG9kby4gIFRoZSBvbmx5IHBsYWNlcwp3aGVyZSB3ZSdyZSBvZmYgY3B1IHRoZXJl IGFyZSBpbiB0aGUgcmN1X2JhcnJpZXIoKSBhbmQgbXNsZWVwKCkgY2FsbHMuClRoYXQgYmVoYXZp b3IgaXMgZXhwZWN0ZWQuICBUaGUgbXNsZWVwIHRpbWUgY29pbmNpZGVzIHdpdGggdGhlIGFtb3Vu dCBvZgp0aW1lIHdlIHNwZW5kIHdhaXRpbmcgZm9yIHRoZSByZWZjb3VudCB0byByZWFjaCB6ZXJv OyB0aGUgcmN1X2JhcnJpZXIoKQp3YWl0IHRpbWVzIGFyZSBub3QgZXhjZXNzaXZlLgoKQWZ0ZXIg bG9va2luZyB0aHJvdWdoIHRoZSBsaXN0IG9mIGNhbGxiYWNrcyB0aGF0IHRoZSBuZXRkZXZpY2Ug bm90aWZpZXJzCmludm9rZSBpbiB0aGlzIHBhdGgsIGl0IGFwcGVhcnMgdGhhdCB0aGUgZHN0X2Rl dl9ldmVudCBpcyB0aGUgbW9zdAppbnRlcmVzdGluZy4gIFRoZSBkc3RfaWZkb3duIHBhdGggcGxh Y2VzIGEgaG9sZCBvbiB0aGUgbG9vcGJhY2tfZGV2IGFzCnBhcnQgb2YgcmVsZWFzaW5nIHRoZSBk ZXYgYXNzb2NpYXRlZCB3aXRoIHRoZSBvcmlnaW5hbCBkc3QgY2FjaGUgZW50cnkuCk1vc3Qgb2Yg b3VyIG5vdGlmaWVyIGNhbGxiYWNrcyBhcmUgc3RyYWlnaHQtZm9yd2FyZCwgYnV0IHRoaXMgb25l IGEpCmxvb2tzIGNvbXBsZXgsIGFuZCBiKSBwbGFjZXMgYSBob2xkIG9uIHRoZSBuZXR3b3JrIGlu dGVyZmFjZSBpbgpxdWVzdGlvbi4KCkkgY29uc3RydWN0ZWQgYSBuZXcgYmNjIHNjcmlwdCB0aGF0 IHdhdGNoZXMgdmFyaW91cyBldmVudHMgaW4gdGhlCmxpZnRpbWUgb2YgYSBkc3QgY2FjaGUgZW50 cnkuICBOb3RlIHRoYXQgZHN0X2lmZG93biB3aWxsIHRha2UgYSBob2xkIG9uCnRoZSBsb29wYmFj ayBkZXZpY2UgdW50aWwgdGhlIGludmFsaWRhdGVkIGRzdCBlbnRyeSBnZXRzIGZyZWVkLgoKWyAg ICAgIF9fZHN0X2ZyZWVdIG9uIERTVDogZmZmZjg4M2NjYWJiNzkwMCBJRiB0YXAxMDA4MzAwZXRo MCBpbnZva2VkIGF0IDEyODIxMTU2NzcwMzYxODMKICAgIF9fZHN0X2ZyZWUKICAgIHJjdV9ub2Ni X2t0aHJlYWQKICAgIGt0aHJlYWQKICAgIHJldF9mcm9tX2ZvcmsKQWNrZWQtYnk6IEVyaWMgRHVt YXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9kc3QuYyB8IDE0ICsrKysrKysr KysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25l dC9jb3JlL2RzdC5jIGIvbmV0L2NvcmUvZHN0LmMKaW5kZXggNjU2YjcwZC4uMzljYzExOSAxMDA2 NDQKLS0tIGEvbmV0L2NvcmUvZHN0LmMKKysrIGIvbmV0L2NvcmUvZHN0LmMKQEAgLTQ3MCw2ICs0 NzAsMjAgQEAgc3RhdGljIGludCBkc3RfZGV2X2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAq dGhpcywgdW5zaWduZWQgbG9uZyBldmVudCwKIAkJc3Bpbl9sb2NrX2JoKCZkc3RfZ2FyYmFnZS5s b2NrKTsKIAkJZHN0ID0gZHN0X2dhcmJhZ2UubGlzdDsKIAkJZHN0X2dhcmJhZ2UubGlzdCA9IE5V TEw7CisJCS8qIFRoZSBjb2RlIGluIGRzdF9pZmRvd24gcGxhY2VzIGEgaG9sZCBvbiB0aGUgbG9v cGJhY2sgZGV2aWNlLgorCQkgKiBJZiB0aGUgZ2MgZW50cnkgcHJvY2Vzc2luZyBpcyBzZXQgdG8g ZXhwaXJlIGFmdGVyIGEgbGVuZ3RoeQorCQkgKiBpbnRlcnZhbCwgdGhpcyBob2xkIGNhbiBjYXVz ZSBuZXRkZXZfd2FpdF9hbGxyZWZzKCkgdG8gaGFuZworCQkgKiBvdXQgYW5kIHdhaXQgZm9yIGEg bG9uZyB0aW1lIC0tIHVudGlsIHRoZSB0aGUgbG9vcGJhY2sKKwkJICogaW50ZXJmYWNlIGlzIHJl bGVhc2VkLiAgSWYgd2UncmUgcmVhbGx5IHVubHVja3ksIGl0J2xsIGVtaXQKKwkJICogcHJfZW1l cmcgbWVzc2FnZXMgdG8gY29uc29sZSB0b28uICBSZXNldCB0aGUgaW50ZXJ2YWwgaGVyZSwKKwkJ ICogc28gZHN0IGNsZWFudXBzIG9jY3VyIGluIGEgbW9yZSB0aW1lbHkgZmFzaGlvbi4KKwkJICov CisJCWlmIChkc3RfZ2FyYmFnZS50aW1lcl9pbmMgPiBEU1RfR0NfSU5DKSB7CisJCQlkc3RfZ2Fy YmFnZS50aW1lcl9pbmMgPSBEU1RfR0NfSU5DOworCQkJZHN0X2dhcmJhZ2UudGltZXJfZXhwaXJl cyA9IERTVF9HQ19NSU47CisJCQltb2RfZGVsYXllZF93b3JrKHN5c3RlbV93cSwgJmRzdF9nY193 b3JrLAorCQkJCQkgZHN0X2dhcmJhZ2UudGltZXJfZXhwaXJlcyk7CisJCX0KIAkJc3Bpbl91bmxv Y2tfYmgoJmRzdF9nYXJiYWdlLmxvY2spOwogCiAJCWlmIChsYXN0KQotLSAKMi40LjExCgoKRnJv bSA1YmY3OWY1ZjNmMjFjMGJhZTdjZmI0YWQ0OWRlMjkzMDFhZDk3MzA3IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFNh dCwgMTAgSnVuIDIwMTcgMTQ6NDg6MTQgKzA4MDAKU3ViamVjdDogW1BBVENIIDA3LzI0XSBzY3Rw OiBkaXNhYmxlIEJIIGluIHNjdHBfZm9yX2VhY2hfZW5kcG9pbnQKClsgVXBzdHJlYW0gY29tbWl0 IDU4MTQwOWRhY2M5MTc2YjBkZTFmNmM0Y2E4ZDY2ZTEzYWE4ZTFiMjkgXQoKTm93IHNjdHAgaG9s ZHMgcmVhZF9sb2NrIHdoZW4gZm9yZWFjaCBzY3RwX2VwX2hhc2h0YWJsZSB3aXRob3V0IGRpc2Fi bGluZwpCSC4gSWYgQ1BVIHNjaGVkdWxlcyB0byBhbm90aGVyIHRocmVhZCBBIGF0IHRoaXMgbW9t ZW50LCB0aGUgdGhyZWFkIEEgbWF5CmJlIHRyeWluZyB0byBob2xkIHRoZSB3cml0ZV9sb2NrIHdp dGggZGlzYWJsaW5nIEJILgoKQXMgQkggaXMgZGlzYWJsZWQgYW5kIENQVSBjYW5ub3Qgc2NoZWR1 bGUgYmFjayB0byB0aGUgdGhyZWFkIGhvbGRpbmcgdGhlCnJlYWRfbG9jaywgd2hpbGUgdGhlIHRo cmVhZCBBIGtlZXBzIHdhaXRpbmcgZm9yIHRoZSByZWFkX2xvY2suIEEgZGVhZApsb2NrIHdvdWxk IGJlIHRyaWdnZXJlZCBieSB0aGlzLgoKVGhpcyBwYXRjaCBpcyB0byBmaXggdGhpcyBkZWFkIGxv Y2sgYnkgY2FsbGluZyByZWFkX2xvY2tfYmggaW5zdGVhZCB0bwpkaXNhYmxlIEJIIHdoZW4gaG9s ZGluZyB0aGUgcmVhZF9sb2NrIGluIHNjdHBfZm9yX2VhY2hfZW5kcG9pbnQuCgpGaXhlczogNjI2 ZDE2ZjUwZjM5ICgic2N0cDogZXhwb3J0IHNvbWUgYXBpcyBvciB2YXJpYWJsZXMgZm9yIHNjdHBf ZGlhZyBhbmQgcmV1c2Ugc29tZSBmb3IgcHJvYyIpClJlcG9ydGVkLWJ5OiBYaXVtZWkgTXUgPHht dUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5j b20+CkFja2VkLWJ5OiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVyQGdt YWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9zY3RwL3NvY2tldC5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NvY2tl dC5jIGIvbmV0L3NjdHAvc29ja2V0LmMKaW5kZXggZTE3MTljNi4uMGM1MjU3ZSAxMDA2NDQKLS0t IGEvbmV0L3NjdHAvc29ja2V0LmMKKysrIGIvbmV0L3NjdHAvc29ja2V0LmMKQEAgLTQ0NjAsMTMg KzQ0NjAsMTMgQEAgaW50IHNjdHBfZm9yX2VhY2hfZW5kcG9pbnQoaW50ICgqY2IpKHN0cnVjdCBz Y3RwX2VuZHBvaW50ICosIHZvaWQgKiksCiAKIAlmb3IgKGhlYWQgPSBzY3RwX2VwX2hhc2h0YWJs ZTsgaGFzaCA8IHNjdHBfZXBfaGFzaHNpemU7CiAJICAgICBoYXNoKyssIGhlYWQrKykgewotCQly ZWFkX2xvY2soJmhlYWQtPmxvY2spOworCQlyZWFkX2xvY2tfYmgoJmhlYWQtPmxvY2spOwogCQlz Y3RwX2Zvcl9lYWNoX2hlbnRyeShlcGIsICZoZWFkLT5jaGFpbikgewogCQkJZXJyID0gY2Ioc2N0 cF9lcChlcGIpLCBwKTsKIAkJCWlmIChlcnIpCiAJCQkJYnJlYWs7CiAJCX0KLQkJcmVhZF91bmxv Y2soJmhlYWQtPmxvY2spOworCQlyZWFkX3VubG9ja19iaCgmaGVhZC0+bG9jayk7CiAJfQogCiAJ cmV0dXJuIGVycjsKLS0gCjIuNC4xMQoKCkZyb20gNTRiZTYyM2VkYTQ2ZGUyMzlmZWMzNTNkZjBm M2Q1MDFhNzAzMzJkNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmlhLUp1IEJhaSA8 YmFpamlhanUxOTkwQDE2My5jb20+CkRhdGU6IFNhdCwgMTAgSnVuIDIwMTcgMTY6NDk6MzkgKzA4 MDAKU3ViamVjdDogW1BBVENIIDA4LzI0XSBuZXQ6IGNhaWY6IEZpeCBhIHNsZWVwLWluLWF0b21p YyBidWcgaW4KIGNmcGt0X2NyZWF0ZV9wZngKClsgVXBzdHJlYW0gY29tbWl0IGYxNDZlODcyZWIx MmViYmU5MmQ4ZTU4M2IyNjM3ZTA3NDE0NDBkYjMgXQoKVGhlIGtlcm5lbCBtYXkgc2xlZXAgdW5k ZXIgYSByY3UgcmVhZCBsb2NrIGluIGNmcGt0X2NyZWF0ZV9wZngsIGFuZCB0aGUKZnVuY3Rpb24g Y2FsbCBwYXRoIGlzOgpjZmNuZmdfbGlua3VwX3JzcCAoYWNxdWlyZSB0aGUgbG9jayBieSByY3Vf cmVhZF9sb2NrKQogIGNmY3RybF9saW5rZG93bl9yZXEKICAgIGNmcGt0X2NyZWF0ZQogICAgICBj ZnBrdF9jcmVhdGVfcGZ4CiAgICAgICAgYWxsb2Nfc2tiKEdGUF9LRVJORUwpIC0tPiBtYXkgc2xl ZXAKY2ZzZXJsX3JlY2VpdmUgKGFjcXVpcmUgdGhlIGxvY2sgYnkgcmN1X3JlYWRfbG9jaykKICBj ZnBrdF9zcGxpdAogICAgY2Zwa3RfY3JlYXRlX3BmeAogICAgICBhbGxvY19za2IoR0ZQX0tFUk5F TCkgLS0+IG1heSBzbGVlcAoKVGhlcmUgaXMgImluX2ludGVycnVwdCIgaW4gY2Zwa3RfY3JlYXRl X3BmeCB0byBkZWNpZGUgdXNlICJHRlBfS0VSTkVMIiBvcgoiR0ZQX0FUT01JQyIuIEluIHRoaXMg c2l0dWF0aW9uLCAiR0ZQX0tFUk5FTCIgaXMgdXNlZCBiZWNhdXNlIHRoZSBmdW5jdGlvbgppcyBj YWxsZWQgdW5kZXIgYSByY3UgcmVhZCBsb2NrLCBpbnN0ZWFkIGluIGludGVycnVwdC4KClRvIGZp eCBpdCwgb25seSAiR0ZQX0FUT01JQyIgaXMgdXNlZCBpbiBjZnBrdF9jcmVhdGVfcGZ4LgoKU2ln bmVkLW9mZi1ieTogSmlhLUp1IEJhaSA8YmFpamlhanUxOTkwQDE2My5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY2FpZi9j ZnBrdF9za2J1ZmYuYyB8IDYgKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyks IDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NhaWYvY2Zwa3Rfc2tidWZmLmMgYi9u ZXQvY2FpZi9jZnBrdF9za2J1ZmYuYwppbmRleCA1OWNlMWZjLi43MWI2YWIyIDEwMDY0NAotLS0g YS9uZXQvY2FpZi9jZnBrdF9za2J1ZmYuYworKysgYi9uZXQvY2FpZi9jZnBrdF9za2J1ZmYuYwpA QCAtODEsMTEgKzgxLDcgQEAgc3RhdGljIHN0cnVjdCBjZnBrdCAqY2Zwa3RfY3JlYXRlX3BmeCh1 MTYgbGVuLCB1MTYgcGZ4KQogewogCXN0cnVjdCBza19idWZmICpza2I7CiAKLQlpZiAobGlrZWx5 KGluX2ludGVycnVwdCgpKSkKLQkJc2tiID0gYWxsb2Nfc2tiKGxlbiArIHBmeCwgR0ZQX0FUT01J Qyk7Ci0JZWxzZQotCQlza2IgPSBhbGxvY19za2IobGVuICsgcGZ4LCBHRlBfS0VSTkVMKTsKLQor CXNrYiA9IGFsbG9jX3NrYihsZW4gKyBwZngsIEdGUF9BVE9NSUMpOwogCWlmICh1bmxpa2VseShz a2IgPT0gTlVMTCkpCiAJCXJldHVybiBOVUxMOwogCi0tIAoyLjQuMTEKCgpGcm9tIDRkYmZhNjg3 MDgyODEwYWNhOGYyMThlMmFjN2M4ZWY4NmRiZjZlYTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEppYS1KdSBCYWkgPGJhaWppYWp1MTk5MEAxNjMuY29tPgpEYXRlOiBTYXQsIDEwIEp1 biAyMDE3IDE3OjAzOjM1ICswODAwClN1YmplY3Q6IFtQQVRDSCAwOS8yNF0gbmV0OiB0aXBjOiBG aXggYSBzbGVlcC1pbi1hdG9taWMgYnVnIGluCiB0aXBjX21zZ19yZXZlcnNlCgpbIFVwc3RyZWFt IGNvbW1pdCAzNDNlYmE2OWM2OTY4MTkwZDg2NTRiODU3YWVhOTUyZmVkOWE2NzQ5IF0KClRoZSBr ZXJuZWwgbWF5IHNsZWVwIHVuZGVyIGEgcmN1IHJlYWQgbG9jayBpbiB0aXBjX21zZ19yZXZlcnNl LCBhbmQgdGhlCmZ1bmN0aW9uIGNhbGwgcGF0aCBpczoKdGlwY19sMl9yY3ZfbXNnIChhY3F1aXJl IHRoZSBsb2NrIGJ5IHJjdV9yZWFkX2xvY2spCiAgdGlwY19yY3YKICAgIHRpcGNfc2tfcmN2CiAg ICAgIHRpcGNfbXNnX3JldmVyc2UKICAgICAgICBwc2tiX2V4cGFuZF9oZWFkKEdGUF9LRVJORUwp IC0tPiBtYXkgc2xlZXAKdGlwY19ub2RlX2Jyb2FkY2FzdAogIHRpcGNfbm9kZV94bWl0X3NrYgog ICAgdGlwY19ub2RlX3htaXQKICAgICAgdGlwY19za19yY3YKICAgICAgICB0aXBjX21zZ19yZXZl cnNlCiAgICAgICAgICBwc2tiX2V4cGFuZF9oZWFkKEdGUF9LRVJORUwpIC0tPiBtYXkgc2xlZXAK ClRvIGZpeCBpdCwgIkdGUF9LRVJORUwiIGlzIHJlcGxhY2VkIHdpdGggIkdGUF9BVE9NSUMiLgoK U2lnbmVkLW9mZi1ieTogSmlhLUp1IEJhaSA8YmFpamlhanUxOTkwQDE2My5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGlw Yy9tc2cuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL25ldC90aXBjL21zZy5jIGIvbmV0L3RpcGMvbXNnLmMKaW5kZXgg MTcyMDFhYS4uMWJkOTgxNyAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvbXNnLmMKKysrIGIvbmV0L3Rp cGMvbXNnLmMKQEAgLTUwOCw3ICs1MDgsNyBAQCBib29sIHRpcGNfbXNnX3JldmVyc2UodTMyIG93 bl9ub2RlLCAgc3RydWN0IHNrX2J1ZmYgKipza2IsIGludCBlcnIpCiAJfQogCiAJaWYgKHNrYl9j bG9uZWQoX3NrYikgJiYKLQkgICAgcHNrYl9leHBhbmRfaGVhZChfc2tiLCBCVUZfSEVBRFJPT00s IEJVRl9UQUlMUk9PTSwgR0ZQX0tFUk5FTCkpCisJICAgIHBza2JfZXhwYW5kX2hlYWQoX3NrYiwg QlVGX0hFQURST09NLCBCVUZfVEFJTFJPT00sIEdGUF9BVE9NSUMpKQogCQlnb3RvIGV4aXQ7CiAK IAkvKiBOb3cgcmV2ZXJzZSB0aGUgY29uY2VybmVkIGZpZWxkcyAqLwotLSAKMi40LjExCgoKRnJv bSA3MDRmMjRjZThkZmM0MjgzYzcwMTdjYzRkYzlhMDhmYTc0MWMzZDFjIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBUYWwgR2lsYm9hIDx0YWxnaUBtZWxsYW5veC5jb20+CkRhdGU6IE1v biwgMTUgTWF5IDIwMTcgMTQ6MTM6MTYgKzAzMDAKU3ViamVjdDogW1BBVENIIDEwLzI0XSBuZXQv bWx4NWU6IEFkZGVkIEJXIGNoZWNrIGZvciBESU0gZGVjaXNpb24gbWVjaGFuaXNtCgpbIFVwc3Ry ZWFtIGNvbW1pdCBjMzE2NGQyZmM0OGZkNGZhMDQ3N2FiNjU4YjY0NDU1OWMzZmU5MDczIF0KCkRJ TSAoRHluYW1pY2FsbHktdHVuZWQgSW50ZXJydXB0IE1vZGVyYXRpb24pIGlzIGEgbWVjaGFuaXNt IGRlc2lnbmVkIGZvcgpjaGFuZ2luZyB0aGUgY2hhbm5lbCBpbnRlcnJ1cHQgbW9kZXJhdGlvbiB2 YWx1ZXMgaW4gb3JkZXIgdG8gcmVkdWNlIENQVQpvdmVyaGVhZCBmb3IgYWxsIHRyYWZmaWMgdHlw ZXMuClVudGlsIG5vdyBvbmx5IGludGVycnVwdCBhbmQgcGFja2V0IHJhdGUgd2VyZSBzYW1wbGVk LgpXZSBmb3VuZCBhIHNjZW5hcmlvIG9uIHdoaWNoIHdlIGdldCBhIGZhbHNlIGluZGljYXRpb24g c2luY2UgYSBjaGFuZ2UgaW4KRElNIGNhdXNlZCBtb3JlIGFnZ3JlZ2F0aW9uIGFuZCByZWR1Y2Vk IHBhY2tldCByYXRlIHdoaWxlIGluY3JlYXNpbmcgQlcuCgpXZSBub3cgcmVnYXJkIGEgY2hhbmdl IGFzIHN1Y2Nlc2Z1bGwgaWZmOgpjdXJyZW50X0JXID4gKHByZXZfQlcgKyB0aHJlc2hvbGQpIG9y CmN1cnJlbnRfQlcgfj0gcHJldl9CVyBhbmQgY3VycmVudF9QUiA+IChwcmV2X1BSICsgdGhyZXNo b2xkKSBvcgpjdXJyZW50X0JXIH49IHByZXZfQlcgYW5kIGN1cnJlbnRfUFIgfj0gcHJldl9QUiBh bmQKICAgIGN1cnJlbnRfSVIgPCAocHJldl9JUiAtIHRocmVzaG9sZCkKV2hlcmUgQlcgPSBCYW5k d2lkdGgsIFBSID0gUGFja2V0IHJhdGUgYW5kIElSID0gSW50ZXJydXB0IHJhdGUKCkltcHJvdmVt ZW50cyAoQ29ubmVjdFgtNEx4IDI1R2JFLCBzaW5nbGUgUlggcXVldWUsIExSTyBvZmYpCiAgICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgcGFj a2V0IHNpemUgfCBiZWZvcmVbTWIvc10gfCBhZnRlcltNYi9zXSB8IGdhaW4gIHwKICAgIDJCICAg ICAgICAgIHwgMzQzLjQgICAgICAgIHwgMzU5LjQgICAgICAgfCAgNC41JSB8CiAgICAxNkIgICAg ICAgICB8IDI3MzkuNyAgICAgICB8IDI4MTQuOCAgICAgIHwgIDIuNyUgfAogICAgNjRCICAgICAg ICAgfCA5NzM5ICAgICAgICAgfCAxMDE4NS4zICAgICB8ICA0LjUlIHwKCkZpeGVzOiBjYjNjN2Zk NGY4MzkgKCJuZXQvbWx4NWU6IFN1cHBvcnQgYWRhcHRpdmUgUlggY29hbGVzY2luZyIpClNpZ25l ZC1vZmYtYnk6IFRhbCBHaWxib2EgPHRhbGdpQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTog U2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmggICAgICAgfCAgMiArKwogZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4X2FtLmMgfCAzNyArKysrKysrKysrKyst LS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgKaW5k ZXggMjFjZTBiNy4uNmVkYzhiMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuLmgKQEAgLTI4MywxMiArMjgzLDE0IEBAIHN0cnVjdCBtbHg1ZV9kbWFfaW5m byB7CiAKIHN0cnVjdCBtbHg1ZV9yeF9hbV9zdGF0cyB7CiAJaW50IHBwbXM7IC8qIHBhY2tldHMg cGVyIG1zZWMgKi8KKwlpbnQgYnBtczsgLyogYnl0ZXMgcGVyIG1zZWMgKi8KIAlpbnQgZXBtczsg LyogZXZlbnRzIHBlciBtc2VjICovCiB9OwogCiBzdHJ1Y3QgbWx4NWVfcnhfYW1fc2FtcGxlIHsK IAlrdGltZV90CQl0aW1lOwogCXVuc2lnbmVkIGludAlwa3RfY3RyOworCXVuc2lnbmVkIGludCAg ICBieXRlX2N0cjsKIAl1MTYJCWV2ZW50X2N0cjsKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yeF9hbS5jIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4X2FtLmMKaW5kZXggY2JmYWMwNi4uMTc1 MDM4OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuX3J4X2FtLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuX3J4X2FtLmMKQEAgLTE4MywyOCArMTgzLDI3IEBAIHN0YXRpYyB2b2lkIG1seDVlX2FtX2V4 aXRfcGFya2luZyhzdHJ1Y3QgbWx4NWVfcnhfYW0gKmFtKQogCW1seDVlX2FtX3N0ZXAoYW0pOwog fQogCisjZGVmaW5lIElTX1NJR05JRklDQU5UX0RJRkYodmFsLCByZWYpIFwKKwkoKCgxMDAgKiBh YnMoKHZhbCkgLSAocmVmKSkpIC8gKHJlZikpID4gMTApIC8qIG1vcmUgdGhhbiAxMCUgZGlmZmVy ZW5jZSAqLworCiBzdGF0aWMgaW50IG1seDVlX2FtX3N0YXRzX2NvbXBhcmUoc3RydWN0IG1seDVl X3J4X2FtX3N0YXRzICpjdXJyLAogCQkJCSAgc3RydWN0IG1seDVlX3J4X2FtX3N0YXRzICpwcmV2 KQogewotCWludCBkaWZmOwotCi0JaWYgKCFwcmV2LT5wcG1zKQotCQlyZXR1cm4gY3Vyci0+cHBt cyA/IE1MWDVFX0FNX1NUQVRTX0JFVFRFUiA6CisJaWYgKCFwcmV2LT5icG1zKQorCQlyZXR1cm4g Y3Vyci0+YnBtcyA/IE1MWDVFX0FNX1NUQVRTX0JFVFRFUiA6CiAJCQkJICAgIE1MWDVFX0FNX1NU QVRTX1NBTUU7CiAKLQlkaWZmID0gY3Vyci0+cHBtcyAtIHByZXYtPnBwbXM7Ci0JaWYgKCgoMTAw ICogYWJzKGRpZmYpKSAvIHByZXYtPnBwbXMpID4gMTApIC8qIG1vcmUgdGhhbiAxMCUgZGlmZiAq LwotCQlyZXR1cm4gKGRpZmYgPiAwKSA/IE1MWDVFX0FNX1NUQVRTX0JFVFRFUiA6Ci0JCQkJICAg IE1MWDVFX0FNX1NUQVRTX1dPUlNFOworCWlmIChJU19TSUdOSUZJQ0FOVF9ESUZGKGN1cnItPmJw bXMsIHByZXYtPmJwbXMpKQorCQlyZXR1cm4gKGN1cnItPmJwbXMgPiBwcmV2LT5icG1zKSA/IE1M WDVFX0FNX1NUQVRTX0JFVFRFUiA6CisJCQkJCQkgICBNTFg1RV9BTV9TVEFUU19XT1JTRTsKIAot CWlmICghcHJldi0+ZXBtcykKLQkJcmV0dXJuIGN1cnItPmVwbXMgPyBNTFg1RV9BTV9TVEFUU19X T1JTRSA6Ci0JCQkJICAgIE1MWDVFX0FNX1NUQVRTX1NBTUU7CisJaWYgKElTX1NJR05JRklDQU5U X0RJRkYoY3Vyci0+cHBtcywgcHJldi0+cHBtcykpCisJCXJldHVybiAoY3Vyci0+cHBtcyA+IHBy ZXYtPnBwbXMpID8gTUxYNUVfQU1fU1RBVFNfQkVUVEVSIDoKKwkJCQkJCSAgIE1MWDVFX0FNX1NU QVRTX1dPUlNFOwogCi0JZGlmZiA9IGN1cnItPmVwbXMgLSBwcmV2LT5lcG1zOwotCWlmICgoKDEw MCAqIGFicyhkaWZmKSkgLyBwcmV2LT5lcG1zKSA+IDEwKSAvKiBtb3JlIHRoYW4gMTAlIGRpZmYg Ki8KLQkJcmV0dXJuIChkaWZmIDwgMCkgPyBNTFg1RV9BTV9TVEFUU19CRVRURVIgOgotCQkJCSAg ICBNTFg1RV9BTV9TVEFUU19XT1JTRTsKKwlpZiAoSVNfU0lHTklGSUNBTlRfRElGRihjdXJyLT5l cG1zLCBwcmV2LT5lcG1zKSkKKwkJcmV0dXJuIChjdXJyLT5lcG1zIDwgcHJldi0+ZXBtcykgPyBN TFg1RV9BTV9TVEFUU19CRVRURVIgOgorCQkJCQkJICAgTUxYNUVfQU1fU1RBVFNfV09SU0U7CiAK IAlyZXR1cm4gTUxYNUVfQU1fU1RBVFNfU0FNRTsKIH0KQEAgLTI2Niw2ICsyNjUsNyBAQCBzdGF0 aWMgdm9pZCBtbHg1ZV9hbV9zYW1wbGUoc3RydWN0IG1seDVlX3JxICpycSwKIHsKIAlzLT50aW1l CSAgICAgPSBrdGltZV9nZXQoKTsKIAlzLT5wa3RfY3RyICAgPSBycS0+c3RhdHMucGFja2V0czsK KwlzLT5ieXRlX2N0ciAgPSBycS0+c3RhdHMuYnl0ZXM7CiAJcy0+ZXZlbnRfY3RyID0gcnEtPmNx LmV2ZW50X2N0cjsKIH0KIApAQCAtMjc4LDEyICsyNzgsMTUgQEAgc3RhdGljIHZvaWQgbWx4NWVf YW1fY2FsY19zdGF0cyhzdHJ1Y3QgbWx4NWVfcnhfYW1fc2FtcGxlICpzdGFydCwKIAkvKiB1MzIg aG9sZHMgdXAgdG8gNzEgbWludXRlcywgc2hvdWxkIGJlIGVub3VnaCAqLwogCXUzMiBkZWx0YV91 cyA9IGt0aW1lX3VzX2RlbHRhKGVuZC0+dGltZSwgc3RhcnQtPnRpbWUpOwogCXVuc2lnbmVkIGlu dCBucGt0cyA9IGVuZC0+cGt0X2N0ciAtIHN0YXJ0LT5wa3RfY3RyOworCXVuc2lnbmVkIGludCBu Ynl0ZXMgPSBlbmQtPmJ5dGVfY3RyIC0gc3RhcnQtPmJ5dGVfY3RyOwogCiAJaWYgKCFkZWx0YV91 cykKIAkJcmV0dXJuOwogCi0JY3Vycl9zdGF0cy0+cHBtcyA9ICAgICAgICAgICAgKG5wa3RzICog VVNFQ19QRVJfTVNFQykgLyBkZWx0YV91czsKLQljdXJyX3N0YXRzLT5lcG1zID0gKE1MWDVFX0FN X05FVkVOVFMgKiBVU0VDX1BFUl9NU0VDKSAvIGRlbHRhX3VzOworCWN1cnJfc3RhdHMtPnBwbXMg PSBESVZfUk9VTkRfVVAobnBrdHMgKiBVU0VDX1BFUl9NU0VDLCBkZWx0YV91cyk7CisJY3Vycl9z dGF0cy0+YnBtcyA9IERJVl9ST1VORF9VUChuYnl0ZXMgKiBVU0VDX1BFUl9NU0VDLCBkZWx0YV91 cyk7CisJY3Vycl9zdGF0cy0+ZXBtcyA9IERJVl9ST1VORF9VUChNTFg1RV9BTV9ORVZFTlRTICog VVNFQ19QRVJfTVNFQywKKwkJCQkJZGVsdGFfdXMpOwogfQogCiB2b2lkIG1seDVlX3J4X2FtX3dv cmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQotLSAKMi40LjExCgoKRnJvbSBkZDljMzA2ODE2 ZjEyMWU4ZTU2MjA3Mzg3MGRmMTVlMzhhODJjZmE3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBUYWwgR2lsYm9hIDx0YWxnaUBtZWxsYW5veC5jb20+CkRhdGU6IE1vbiwgMjkgTWF5IDIw MTcgMTc6MDI6NTUgKzAzMDAKU3ViamVjdDogW1BBVENIIDExLzI0XSBuZXQvbWx4NWU6IEZpeCB3 cm9uZyBpbmRpY2F0aW9ucyBpbiBESU0gZHVlIHRvIGNvdW50ZXIKIHdyYXBhcm91bmQKClsgVXBz dHJlYW0gY29tbWl0IDUzYWNkNzZjZTU3MWUzYjcxZjkyMDVmMmQ0OWFiMjg1YTlmMWFhZDggXQoK RElNIChEeW5hbWljYWxseS10dW5lZCBJbnRlcnJ1cHQgTW9kZXJhdGlvbikgaXMgYSBtZWNoYW5p c20gZGVzaWduZWQgZm9yCmNoYW5naW5nIHRoZSBjaGFubmVsIGludGVycnVwdCBtb2RlcmF0aW9u IHZhbHVlcyBpbiBvcmRlciB0byByZWR1Y2UgQ1BVCm92ZXJoZWFkIGZvciBhbGwgdHJhZmZpYyB0 eXBlcy4KRWFjaCBpdGVyYXRpb24gb2YgdGhlIGFsZ29yaXRobSwgRElNIGNhbGN1bGF0ZXMgdGhl IGRpZmZlcmVuY2UgaW4KdGhyb3VnaHB1dCwgcGFja2V0IHJhdGUgYW5kIGludGVycnVwdCByYXRl IGZyb20gbGFzdCBpdGVyYXRpb24gaW4gb3JkZXIKdG8gbWFrZSBhIGRlY2lzaW9uLiBESU0gcmVs aWVzIG9uIGNvdW50ZXJzIGZvciBlYWNoIG1ldHJpYy4gV2hlbiB0aGVzZQpjb3VudGVycyBnZXQg dG8gdGhlaXIgdHlwZSdzIG1heCB2YWx1ZSB0aGV5IHdyYXBhcm91bmQuIEluIHRoaXMgY2FzZQp0 aGUgZGVsdGEgYmV0d2VlbiAnZW5kJyBhbmQgJ3N0YXJ0JyBzYW1wbGVzIGlzIG5lZ2F0aXZlIGFu ZCB3aGVuCnRyYW5zbGF0ZWQgdG8gdW5zaWduZWQgaW50ZWdlcnMgLSB2ZXJ5IGhpZ2guIFRoaXMg cmVzdWx0cyBpbiBhIGZhbHNlCmluZGljYXRpb24gdG8gdGhlIGFsZ29yaXRobSBhbmQgbWlnaHQg cmVzdWx0IGluIGEgd3JvbmcgZGVjaXNpb24uCgpUaGUgZml4IGNhbGN1bGF0ZXMgdGhlICdkaXN0 YW5jZScgYmV0d2VlbiAnZW5kJyBhbmQgJ3N0YXJ0JyBzYW1wbGVzIGluIGEKY3ljbGljIHdheSBh cm91bmQgdGhlIHJlbGV2YW50IHR5cGUncyBtYXggdmFsdWUuIEl0IGNhbiBhbHNvIGJlIHZpZXdl ZCBhcwphbiBhYnNvbHV0ZSB2YWx1ZSBhcm91bmQgdGhlIHR5cGUncyBtYXggdmFsdWUgaW5zdGVh ZCBvZiBhcm91bmQgMC4KClRlc3Rpbmcgc2hvdyBoaWdoZXIgc3RhYmlsaXR5IGluIERJTSBwcm9m aWxlIHNlbGVjdGlvbiBhbmQgbm8gd3JhcGFyb3VuZAppc3N1ZXMuCgpGaXhlczogY2IzYzdmZDRm ODM5ICgibmV0L21seDVlOiBTdXBwb3J0IGFkYXB0aXZlIFJYIGNvYWxlc2NpbmciKQpTaWduZWQt b2ZmLWJ5OiBUYWwgR2lsYm9hIDx0YWxnaUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNh ZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oICAgICAgIHwgIDggKysrKy0tLS0KIGRyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yeF9hbS5jIHwgMTAgKysrKysrKy0t LQogMiBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgKaW5kZXggNmVkYzhi Mi4uNjE4MGFkNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2VuLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuLmgKQEAgLTI4OCwxMCArMjg4LDEwIEBAIHN0cnVjdCBtbHg1ZV9yeF9hbV9zdGF0cyB7CiB9 OwogCiBzdHJ1Y3QgbWx4NWVfcnhfYW1fc2FtcGxlIHsKLQlrdGltZV90CQl0aW1lOwotCXVuc2ln bmVkIGludAlwa3RfY3RyOwotCXVuc2lnbmVkIGludCAgICBieXRlX2N0cjsKLQl1MTYJCWV2ZW50 X2N0cjsKKwlrdGltZV90CXRpbWU7CisJdTMyCXBrdF9jdHI7CisJdTMyCWJ5dGVfY3RyOworCXUx NglldmVudF9jdHI7CiB9OwogCiBzdHJ1Y3QgbWx4NWVfcnhfYW0geyAvKiBBZGFwdGl2ZSBNb2Rl cmF0aW9uICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW5fcnhfYW0uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbl9yeF9hbS5jCmluZGV4IDE3NTAzODguLjIzY2NlYzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yeF9hbS5jCisrKyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yeF9hbS5jCkBAIC0yNzAsNiArMjcw LDggQEAgc3RhdGljIHZvaWQgbWx4NWVfYW1fc2FtcGxlKHN0cnVjdCBtbHg1ZV9ycSAqcnEsCiB9 CiAKICNkZWZpbmUgTUxYNUVfQU1fTkVWRU5UUyA2NAorI2RlZmluZSBCSVRTX1BFUl9UWVBFKHR5 cGUpIChzaXplb2YodHlwZSkgKiBCSVRTX1BFUl9CWVRFKQorI2RlZmluZSBCSVRfR0FQKGJpdHMs IGVuZCwgc3RhcnQpICgoKChlbmQpIC0gKHN0YXJ0KSkgKyBCSVRfVUxMKGJpdHMpKSAmIChCSVRf VUxMKGJpdHMpIC0gMSkpCiAKIHN0YXRpYyB2b2lkIG1seDVlX2FtX2NhbGNfc3RhdHMoc3RydWN0 IG1seDVlX3J4X2FtX3NhbXBsZSAqc3RhcnQsCiAJCQkJc3RydWN0IG1seDVlX3J4X2FtX3NhbXBs ZSAqZW5kLApAQCAtMjc3LDggKzI3OSw5IEBAIHN0YXRpYyB2b2lkIG1seDVlX2FtX2NhbGNfc3Rh dHMoc3RydWN0IG1seDVlX3J4X2FtX3NhbXBsZSAqc3RhcnQsCiB7CiAJLyogdTMyIGhvbGRzIHVw IHRvIDcxIG1pbnV0ZXMsIHNob3VsZCBiZSBlbm91Z2ggKi8KIAl1MzIgZGVsdGFfdXMgPSBrdGlt ZV91c19kZWx0YShlbmQtPnRpbWUsIHN0YXJ0LT50aW1lKTsKLQl1bnNpZ25lZCBpbnQgbnBrdHMg PSBlbmQtPnBrdF9jdHIgLSBzdGFydC0+cGt0X2N0cjsKLQl1bnNpZ25lZCBpbnQgbmJ5dGVzID0g ZW5kLT5ieXRlX2N0ciAtIHN0YXJ0LT5ieXRlX2N0cjsKKwl1MzIgbnBrdHMgPSBCSVRfR0FQKEJJ VFNfUEVSX1RZUEUodTMyKSwgZW5kLT5wa3RfY3RyLCBzdGFydC0+cGt0X2N0cik7CisJdTMyIG5i eXRlcyA9IEJJVF9HQVAoQklUU19QRVJfVFlQRSh1MzIpLCBlbmQtPmJ5dGVfY3RyLAorCQkJICAg ICBzdGFydC0+Ynl0ZV9jdHIpOwogCiAJaWYgKCFkZWx0YV91cykKIAkJcmV0dXJuOwpAQCAtMzEx LDcgKzMxNCw4IEBAIHZvaWQgbWx4NWVfcnhfYW0oc3RydWN0IG1seDVlX3JxICpycSkKIAogCXN3 aXRjaCAoYW0tPnN0YXRlKSB7CiAJY2FzZSBNTFg1RV9BTV9NRUFTVVJFX0lOX1BST0dSRVNTOgot CQluZXZlbnRzID0gcnEtPmNxLmV2ZW50X2N0ciAtIGFtLT5zdGFydF9zYW1wbGUuZXZlbnRfY3Ry OworCQluZXZlbnRzID0gQklUX0dBUChCSVRTX1BFUl9UWVBFKHUxNiksIHJxLT5jcS5ldmVudF9j dHIsCisJCQkJICBhbS0+c3RhcnRfc2FtcGxlLmV2ZW50X2N0cik7CiAJCWlmIChuZXZlbnRzIDwg TUxYNUVfQU1fTkVWRU5UUykKIAkJCWJyZWFrOwogCQltbHg1ZV9hbV9zYW1wbGUocnEsICZlbmRf c2FtcGxlKTsKLS0gCjIuNC4xMQoKCkZyb20gM2U3YTE3Zjk0YWI4NGQxNjA3NDQ4YzVmN2NmYmNl NzM0Nzk5OWY3YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2hyaXN0aWFuIFBlcmxl IDxjaHJpc3RpYW4ucGVybGVAc2VjdW5ldC5jb20+CkRhdGU6IE1vbiwgMTIgSnVuIDIwMTcgMTA6 MDY6NTcgKzAyMDAKU3ViamVjdDogW1BBVENIIDEyLzI0XSBwcm9jOiBzbm1wNjogVXNlIGNvcnJl Y3QgdHlwZSBpbiBtZW1zZXQKClsgVXBzdHJlYW0gY29tbWl0IDM1MDBjZDczZGZmNDhmMjhmNGJh ODBjMTcxYzRjODAwMzRkNDBmNzYgXQoKUmVhZGluZyAvcHJvYy9uZXQvc25tcDYgeWllbGRzIGJv Z3VzIHZhbHVlcyBvbiAzMiBiaXQga2VybmVscy4KVXNlICJ1NjQiIGluc3RlYWQgb2YgInVuc2ln bmVkIGxvbmciIGluIHNpemVvZigpLgoKRml4ZXM6IDRhNDg1N2IxYzgxZSAoInByb2M6IFJlZHVj ZSBjYWNoZSBtaXNzIGluIHNubXA2X3NlcV9zaG93IikKU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFu IFBlcmxlIDxjaHJpc3RpYW4ucGVybGVAc2VjdW5ldC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9wcm9jLmMgfCAy ICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgYS9uZXQvaXB2Ni9wcm9jLmMgYi9uZXQvaXB2Ni9wcm9jLmMKaW5kZXggY2M4ZTNhZS4u ZTg4YmNiOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcHJvYy5jCisrKyBiL25ldC9pcHY2L3Byb2Mu YwpAQCAtMjE5LDcgKzIxOSw3IEBAIHN0YXRpYyB2b2lkIHNubXA2X3NlcV9zaG93X2l0ZW02NChz dHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCBfX3BlcmNwdSAqbWliLAogCXU2NCBidWZmNjRbU05N UF9NSUJfTUFYXTsKIAlpbnQgaTsKIAotCW1lbXNldChidWZmNjQsIDAsIHNpemVvZih1bnNpZ25l ZCBsb25nKSAqIFNOTVBfTUlCX01BWCk7CisJbWVtc2V0KGJ1ZmY2NCwgMCwgc2l6ZW9mKHU2NCkg KiBTTk1QX01JQl9NQVgpOwogCiAJc25tcF9nZXRfY3B1X2ZpZWxkNjRfYmF0Y2goYnVmZjY0LCBp dGVtbGlzdCwgbWliLCBzeW5jcG9mZik7CiAJZm9yIChpID0gMDsgaXRlbWxpc3RbaV0ubmFtZTsg aSsrKQotLSAKMi40LjExCgoKRnJvbSBmMGQyNDgxNzcxNTI5ZDcyMzQ0MDZiY2JmMWU0ZjgxMmE0 ZDllYzAyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXQU5HIENvbmcgPHhpeW91Lndh bmdjb25nQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxMiBKdW4gMjAxNyAwOTo1MjoyNiAtMDcwMApT dWJqZWN0OiBbUEFUQ0ggMTMvMjRdIGlnbXA6IGFjcXVpcmUgcG1jIGxvY2sgZm9yIGlwX21jX2Ns ZWFyX3NyYygpCgpbIFVwc3RyZWFtIGNvbW1pdCBjMzhiN2QzMjdhYWZkMWUzYWQ3ZmY1M2VlZmFj OTkwNjczYjY1NjY3IF0KCkFuZHJleSByZXBvcnRlZCBhIHVzZS1hZnRlci1mcmVlIGluIGFkZF9n cmVjKCk6CgogICAgICAgIGZvciAocHNmID0gKnBzZl9saXN0OyBwc2Y7IHBzZiA9IHBzZl9uZXh0 KSB7CgkJLi4uCiAgICAgICAgICAgICAgICBwc2ZfbmV4dCA9IHBzZi0+c2ZfbmV4dDsKCndoZXJl IHRoZSBzdHJ1Y3QgaXBfc2ZfbGlzdCdzIHdlcmUgYWxyZWFkeSBmcmVlZCBieToKCiBrZnJlZSsw eGU4LzB4MmIwIG1tL3NsdWIuYzozODgyCiBpcF9tY19jbGVhcl9zcmMrMHg2OS8weDFjMCBuZXQv aXB2NC9pZ21wLmM6MjA3OAogaXBfbWNfZGVjX2dyb3VwKzB4MTlhLzB4NDcwIG5ldC9pcHY0L2ln bXAuYzoxNjE4CiBpcF9tY19kcm9wX3NvY2tldCsweDE0NS8weDIzMCBuZXQvaXB2NC9pZ21wLmM6 MjYwOQogaW5ldF9yZWxlYXNlKzB4NGUvMHgxYzAgbmV0L2lwdjQvYWZfaW5ldC5jOjQxMQogc29j a19yZWxlYXNlKzB4OGQvMHgxZTAgbmV0L3NvY2tldC5jOjU5Nwogc29ja19jbG9zZSsweDE2LzB4 MjAgbmV0L3NvY2tldC5jOjEwNzIKClRoaXMgaGFwcGVucyBiZWNhdXNlIHdlIGRvbid0IGhvbGQg cG1jLT5sb2NrIGluIGlwX21jX2NsZWFyX3NyYygpCmFuZCBhIHBhcmFsbGVsIG1yX2lmY190aW1l ciB0aW1lciBjb3VsZCBqdW1wIGluIGFuZCBhY2Nlc3MgdGhlbS4KClRoZSBSQ1UgbG9jayBpcyB0 aGVyZSBidXQgaXQgaXMgbWVyZWx5IGZvciBwbWMgaXRzZWxmLCB0aGlzCnNwaW5sb2NrIGNvdWxk IGFjdHVhbGx5IGVuc3VyZSB3ZSBkb24ndCBhY2Nlc3MgdGhlbSBpbiBwYXJhbGxlbC4KClRoYW5r cyB0byBFcmljIGFuZCBMb25nIGZvciBkaXNjdXNzaW9uIG9uIHRoaXMgYnVnLgoKUmVwb3J0ZWQt Ynk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29vZ2xlLmNvbT4KQ2M6IEVyaWMgRHVt YXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWls LmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ ClJldmlld2VkLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9p Z21wLmMgfCAyMSArKysrKysrKysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNl cnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lnbXAuYyBi L25ldC9pcHY0L2lnbXAuYwppbmRleCAxYmM2MjNkLi44NTIwZWZmIDEwMDY0NAotLS0gYS9uZXQv aXB2NC9pZ21wLmMKKysrIGIvbmV0L2lwdjQvaWdtcC5jCkBAIC0yMDcxLDIxICsyMDcxLDI2IEBA IHN0YXRpYyBpbnQgaXBfbWNfYWRkX3NyYyhzdHJ1Y3QgaW5fZGV2aWNlICppbl9kZXYsIF9fYmUz MiAqcG1jYSwgaW50IHNmbW9kZSwKIAogc3RhdGljIHZvaWQgaXBfbWNfY2xlYXJfc3JjKHN0cnVj dCBpcF9tY19saXN0ICpwbWMpCiB7Ci0Jc3RydWN0IGlwX3NmX2xpc3QgKnBzZiwgKm5leHRwc2Y7 CisJc3RydWN0IGlwX3NmX2xpc3QgKnBzZiwgKm5leHRwc2YsICp0b21iLCAqc291cmNlczsKIAot CWZvciAocHNmID0gcG1jLT50b21iOyBwc2Y7IHBzZiA9IG5leHRwc2YpIHsKKwlzcGluX2xvY2tf YmgoJnBtYy0+bG9jayk7CisJdG9tYiA9IHBtYy0+dG9tYjsKKwlwbWMtPnRvbWIgPSBOVUxMOwor CXNvdXJjZXMgPSBwbWMtPnNvdXJjZXM7CisJcG1jLT5zb3VyY2VzID0gTlVMTDsKKwlwbWMtPnNm bW9kZSA9IE1DQVNUX0VYQ0xVREU7CisJcG1jLT5zZmNvdW50W01DQVNUX0lOQ0xVREVdID0gMDsK KwlwbWMtPnNmY291bnRbTUNBU1RfRVhDTFVERV0gPSAxOworCXNwaW5fdW5sb2NrX2JoKCZwbWMt PmxvY2spOworCisJZm9yIChwc2YgPSB0b21iOyBwc2Y7IHBzZiA9IG5leHRwc2YpIHsKIAkJbmV4 dHBzZiA9IHBzZi0+c2ZfbmV4dDsKIAkJa2ZyZWUocHNmKTsKIAl9Ci0JcG1jLT50b21iID0gTlVM TDsKLQlmb3IgKHBzZiA9IHBtYy0+c291cmNlczsgcHNmOyBwc2YgPSBuZXh0cHNmKSB7CisJZm9y IChwc2YgPSBzb3VyY2VzOyBwc2Y7IHBzZiA9IG5leHRwc2YpIHsKIAkJbmV4dHBzZiA9IHBzZi0+ c2ZfbmV4dDsKIAkJa2ZyZWUocHNmKTsKIAl9Ci0JcG1jLT5zb3VyY2VzID0gTlVMTDsKLQlwbWMt PnNmbW9kZSA9IE1DQVNUX0VYQ0xVREU7Ci0JcG1jLT5zZmNvdW50W01DQVNUX0lOQ0xVREVdID0g MDsKLQlwbWMtPnNmY291bnRbTUNBU1RfRVhDTFVERV0gPSAxOwogfQogCiAvKiBKb2luIGEgbXVs dGljYXN0IGdyb3VwCi0tIAoyLjQuMTEKCgpGcm9tIDY2YjA2ZjBjN2Y1MmZkNDM5ZDg4OTFmZjEx MDUxMjlmZTQ2M2M5NzggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdBTkcgQ29uZyA8 eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBUdWUsIDIwIEp1biAyMDE3IDEwOjQ2OjI3 IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxNC8yNF0gaWdtcDogYWRkIGEgbWlzc2luZyBzcGluX2xv Y2tfaW5pdCgpCgpbIFVwc3RyZWFtIGNvbW1pdCBiNDg0NmZjM2M4NTU5NjQ5Mjc3ZTNlNGU2YjVj ZWM1MzQ4YThkMjA4IF0KCkFuZHJleSByZXBvcnRlZCBhIGxvY2tkZXAgd2FybmluZyBvbiBub24t aW5pdGlhbGl6ZWQKc3BpbmxvY2s6CgogSU5GTzogdHJ5aW5nIHRvIHJlZ2lzdGVyIG5vbi1zdGF0 aWMga2V5LgogdGhlIGNvZGUgaXMgZmluZSBidXQgbmVlZHMgbG9ja2RlcCBhbm5vdGF0aW9uLgog dHVybmluZyBvZmYgdGhlIGxvY2tpbmcgY29ycmVjdG5lc3MgdmFsaWRhdG9yLgogQ1BVOiAxIFBJ RDogNDA5OSBDb21tOiBhLm91dCBOb3QgdGFpbnRlZCA0LjEyLjAtcmM2KyAjOQogSGFyZHdhcmUg bmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5NiksIEJJT1MgQm9jaHMg MDEvMDEvMjAxMQogQ2FsbCBUcmFjZToKICBfX2R1bXBfc3RhY2sgbGliL2R1bXBfc3RhY2suYzox NgogIGR1bXBfc3RhY2srMHgyOTIvMHgzOTUgbGliL2R1bXBfc3RhY2suYzo1MgogIHJlZ2lzdGVy X2xvY2tfY2xhc3MrMHg3MTcvMHgxYWEwIGtlcm5lbC9sb2NraW5nL2xvY2tkZXAuYzo3NTUKICA/ IDB4ZmZmZmZmZmZhMDAwMDAwMAogIF9fbG9ja19hY3F1aXJlKzB4MjY5LzB4MzY5MCBrZXJuZWwv bG9ja2luZy9sb2NrZGVwLmM6MzI1NQogIGxvY2tfYWNxdWlyZSsweDIyZC8weDU2MCBrZXJuZWwv bG9ja2luZy9sb2NrZGVwLmM6Mzg1NQogIF9fcmF3X3NwaW5fbG9ja19iaCAuL2luY2x1ZGUvbGlu dXgvc3BpbmxvY2tfYXBpX3NtcC5oOjEzNQogIF9yYXdfc3Bpbl9sb2NrX2JoKzB4MzYvMHg1MCBr ZXJuZWwvbG9ja2luZy9zcGlubG9jay5jOjE3NQogIHNwaW5fbG9ja19iaCAuL2luY2x1ZGUvbGlu dXgvc3BpbmxvY2suaDozMDQKICBpcF9tY19jbGVhcl9zcmMrMHgyNy8weDFlMCBuZXQvaXB2NC9p Z21wLmM6MjA3NgogIGlnbXB2M19jbGVhcl9kZWxyZWMrMHhlZS8weDRmMCBuZXQvaXB2NC9pZ21w LmM6MTE5NAogIGlwX21jX2Rlc3Ryb3lfZGV2KzB4NGUvMHgxOTAgbmV0L2lwdjQvaWdtcC5jOjE3 MzYKCldlIG1pc3MgYSBzcGluX2xvY2tfaW5pdCgpIGluIGlnbXB2M19hZGRfZGVscmVjKCksIHBy b2JhYmx5CmJlY2F1c2UgcHJldmlvdXNseSB3ZSBuZXZlciB1c2UgaXQgb24gdGhpcyBjb2RlIHBh dGguIFNpbmNlCndlIGFscmVhZHkgdW5saW5rIGl0IGZyb20gdGhlIGdsb2JhbCBtY190b21iIGxp c3QsIGl0IGlzCnByb2JhYmx5IHNhZmUgbm90IHRvIGFjcXVpcmUgdGhpcyBzcGlubG9jayBoZXJl LiBJdCBkb2VzIG5vdApoYXJtIHRvIGhhdmUgaXQgYWx0aG91Z2gsIHRvIGF2b2lkIGNvbmRpdGlv bmFsIGxvY2tpbmcuCgpGaXhlczogYzM4YjdkMzI3YWFmICgiaWdtcDogYWNxdWlyZSBwbWMgbG9j ayBmb3IgaXBfbWNfY2xlYXJfc3JjKCkiKQpSZXBvcnRlZC1ieTogQW5kcmV5IEtvbm92YWxvdiA8 YW5kcmV5a252bEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndh bmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L2lnbXAuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaWdtcC5jIGIvbmV0L2lwdjQv aWdtcC5jCmluZGV4IDg1MjBlZmYuLjE5OTMwZGEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lnbXAu YworKysgYi9uZXQvaXB2NC9pZ21wLmMKQEAgLTExMTIsNiArMTExMiw3IEBAIHN0YXRpYyB2b2lk IGlnbXB2M19hZGRfZGVscmVjKHN0cnVjdCBpbl9kZXZpY2UgKmluX2Rldiwgc3RydWN0IGlwX21j X2xpc3QgKmltKQogCXBtYyA9IGt6YWxsb2Moc2l6ZW9mKCpwbWMpLCBHRlBfS0VSTkVMKTsKIAlp ZiAoIXBtYykKIAkJcmV0dXJuOworCXNwaW5fbG9ja19pbml0KCZwbWMtPmxvY2spOwogCXNwaW5f bG9ja19iaCgmaW0tPmxvY2spOwogCXBtYy0+aW50ZXJmYWNlID0gaW0tPmludGVyZmFjZTsKIAlp bl9kZXZfaG9sZChpbl9kZXYpOwotLSAKMi40LjExCgoKRnJvbSBmMWU0MTkzZDExNTZkYWYwYjc5 NGIzYzU4OGUyZGU3MzZmNGU0ZDBhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4g TG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFRodSwgMTUgSnVuIDIwMTcgMTY6MzM6 NTggKzA4MDAKU3ViamVjdDogW1BBVENIIDE1LzI0XSBpcHY2OiBmaXggY2FsbGluZyBpbjZfaWZh X2hvbGQgaW5jb3JyZWN0bHkgZm9yIGRhZCB3b3JrCgpbIFVwc3RyZWFtIGNvbW1pdCBmOGE4OTRi MjE4MTM4ODg4NTQyYTUwNThkMGU5MDIzNzhmZDBkNGVjIF0KCk5vdyB3aGVuIHN0YXJ0aW5nIHRo ZSBkYWQgd29yayBpbiBhZGRyY29uZl9tb2RfZGFkX3dvcmssIGlmIHRoZSBkYWQgd29yawppcyBp ZGxlIGFuZCBxdWV1ZWQsIGl0IG5lZWRzIHRvIGhvbGQgaWZhLgoKVGhlIHByb2JsZW0gaXMgdGhl cmUncyBvbmUgZ2FwIGluIFsxXSwgZHVyaW5nIHdoaWNoIGlmIHRoZSBwZW5kaW5nIGRhZCB3b3Jr CmlzIHJlbW92ZWQgZWxzZXdoZXJlLiBJdCB3aWxsIG1pc3MgdG8gaG9sZCBpZmEsIGJ1dCB0aGUg ZGFkIHdvcmQgaXMgc3RpbGwKaWRlYSBhbmQgcXVldWUuCgogICAgICAgIGlmICghZGVsYXllZF93 b3JrX3BlbmRpbmcoJmlmcC0+ZGFkX3dvcmspKQogICAgICAgICAgICAgICAgaW42X2lmYV9ob2xk KGlmcCk7CiAgICAgICAgICAgICAgICAgICAgPC0tLS0tLS0tLS0tLS0tWzFdCiAgICAgICAgbW9k X2RlbGF5ZWRfd29yayhhZGRyY29uZl93cSwgJmlmcC0+ZGFkX3dvcmssIGRlbGF5KTsKCkFuIHVz ZS1hZnRlci1mcmVlIGlzc3VlIGNhbiBiZSBjYXVzZWQgYnkgdGhpcy4KCkNoZW4gV2VpIGZvdW5k IHRoaXMgaXNzdWUgd2hlbiBXQVJOX09OKCFobGlzdF91bmhhc2hlZCgmaWZwLT5hZGRyX2xzdCkp IGluCm5ldDZfaWZhX2ZpbmlzaF9kZXN0cm95IHdhcyBoaXQgYmVjYXVzZSBvZiBpdC4KCkFzIEhh bm5lcycgc3VnZ2VzdGlvbiwgdGhpcyBwYXRjaCBpcyB0byBmaXggaXQgYnkgaG9sZGluZyBpZmEg Zmlyc3QgaW4KYWRkcmNvbmZfbW9kX2RhZF93b3JrLCB0aGVuIGNhbGxpbmcgbW9kX2RlbGF5ZWRf d29yayBhbmQgcHV0dGluZyBpZmEgaWYKdGhlIGRhZF93b3JrIGlzIGFscmVhZHkgaW4gcXVldWUu CgpOb3RlIHRoYXQgdGhpcyBwYXRjaCBkaWQgbm90IGNob29zZSB0byBmaXggaXQgd2l0aDoKCiAg aWYgKCFtb2RfZGVsYXllZF93b3JrKGRlbGF5KSkKICAgICAgICAgIGluNl9pZmFfaG9sZChpZnAp OwoKQXMgd2l0aCBpdCwgd2hlbiBkZWxheSA9PSAwLCBkYWRfd29yayB3b3VsZCBiZSBzY2hlZHVs ZWQgaW1tZWRpYXRlbHksIGFsbAphZGRyY29uZl9tb2RfZGFkX3dvcmsoMCkgY2FsbGluZ3MgaGFk IHRvIGJlIG1vdmVkIHVuZGVyIGlmcC0+bG9jay4KClJlcG9ydGVkLWJ5OiBXZWkgQ2hlbiA8d2Vp Y2hlbkByZWRoYXQuY29tPgpTdWdnZXN0ZWQtYnk6IEhhbm5lcyBGcmVkZXJpYyBTb3dhIDxoYW5u ZXNAc3RyZXNzaW5kdWt0aW9uLm9yZz4KQWNrZWQtYnk6IEhhbm5lcyBGcmVkZXJpYyBTb3dhIDxo YW5uZXNAc3RyZXNzaW5kdWt0aW9uLm9yZz4KU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2ll bi54aW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvYWRkcmNvbmYuYyB8IDYgKysrLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25l dC9pcHY2L2FkZHJjb25mLmMgYi9uZXQvaXB2Ni9hZGRyY29uZi5jCmluZGV4IDA0NTczODMuLmI2 ZjRjNDIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2FkZHJjb25mLmMKKysrIGIvbmV0L2lwdjYvYWRk cmNvbmYuYwpAQCAtMzE1LDkgKzMxNSw5IEBAIHN0YXRpYyB2b2lkIGFkZHJjb25mX21vZF9yc190 aW1lcihzdHJ1Y3QgaW5ldDZfZGV2ICppZGV2LAogc3RhdGljIHZvaWQgYWRkcmNvbmZfbW9kX2Rh ZF93b3JrKHN0cnVjdCBpbmV0Nl9pZmFkZHIgKmlmcCwKIAkJCQkgICB1bnNpZ25lZCBsb25nIGRl bGF5KQogewotCWlmICghZGVsYXllZF93b3JrX3BlbmRpbmcoJmlmcC0+ZGFkX3dvcmspKQotCQlp bjZfaWZhX2hvbGQoaWZwKTsKLQltb2RfZGVsYXllZF93b3JrKGFkZHJjb25mX3dxLCAmaWZwLT5k YWRfd29yaywgZGVsYXkpOworCWluNl9pZmFfaG9sZChpZnApOworCWlmIChtb2RfZGVsYXllZF93 b3JrKGFkZHJjb25mX3dxLCAmaWZwLT5kYWRfd29yaywgZGVsYXkpKQorCQlpbjZfaWZhX3B1dChp ZnApOwogfQogCiBzdGF0aWMgaW50IHNubXA2X2FsbG9jX2RldihzdHJ1Y3QgaW5ldDZfZGV2ICpp ZGV2KQotLSAKMi40LjExCgoKRnJvbSAxMGIwNjY3NDhmM2FlMjEwNmRjODA1OGNiYmFlMDNjZWVi MmQ5ODJmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhp bkBnbWFpbC5jb20+CkRhdGU6IFRodSwgMTUgSnVuIDIwMTcgMTc6NDk6MDggKzA4MDAKU3ViamVj dDogW1BBVENIIDE2LzI0XSBzY3RwOiByZXR1cm4gbmV4dCBvYmogYnkgcGFzc2luZyBwb3MgKyAx IGludG8KIHNjdHBfdHJhbnNwb3J0X2dldF9pZHgKClsgVXBzdHJlYW0gY29tbWl0IDk4OGM3MzIy MTE2OTcwNjk2MjExZTkwMmI0NjhhZWZlYzk1YjZlYzQgXQoKSW4gc2N0cF9mb3JfZWFjaF90cmFu c3BvcnQsIHBvcyBpcyB1c2VkIHRvIHNhdmUgaG93IG1hbnkgb2JqcyBpdCBoYXMKZHVtcGVkLiBO b3cgaXQgZ2V0cyB0aGUgbGFzdCBvYmogYnkgc2N0cF90cmFuc3BvcnRfZ2V0X2lkeCwgdGhlbiBn ZXRzCnRoZSBuZXh0IG9iaiBieSBzY3RwX3RyYW5zcG9ydF9nZXRfbmV4dC4KClRoZSBpc3N1ZSBp cyB0aGF0IGluIHRoZSBtZWFud2hpbGUgaWYgc29tZSBvYmpzIGluIHRyYW5zcG9ydCBoYXNodGFi bGUKYXJlIHJlbW92ZWQgYW5kIHRoZSBvYmpzIG51bXMgYXJlIGxlc3MgdGhhbiBwb3MsIHNjdHBf dHJhbnNwb3J0X2dldF9pZHgKd291bGQgcmV0dXJuIE5VTEwgYW5kIGh0aS53YWxrZXIudGJsIGlz IE5VTEwgYXMgd2VsbC4gQXQgdGhpcyBtb21lbnQKaXQgc2hvdWxkIHN0b3AgaHRpLCBpbnN0ZWFk IG9mIGNvbnRpbnVlIGdldHRpbmcgdGhlIG5leHQgb2JqLiBPciBpdAp3b3VsZCBjYXVzZSBhIE5V TEwgcG9pbnRlciBkZXJlZmVyZW5jZSBpbiBzY3RwX3RyYW5zcG9ydF9nZXRfbmV4dC4KClRoaXMg cGF0Y2ggaXMgdG8gcGFzcyBwb3MgKyAxIGludG8gc2N0cF90cmFuc3BvcnRfZ2V0X2lkeCB0byBn ZXQgdGhlCm5leHQgb2JqIGRpcmVjdGx5LCBldmVuIGlmIHBvcyA+IG9ianMgbnVtcywgaXQgd291 bGQgcmV0dXJuIE5VTEwgYW5kCnN0b3AgaHRpLgoKRml4ZXM6IDYyNmQxNmY1MGYzOSAoInNjdHA6 IGV4cG9ydCBzb21lIGFwaXMgb3IgdmFyaWFibGVzIGZvciBzY3RwX2RpYWcgYW5kIHJldXNlIHNv bWUgZm9yIHByb2MiKQpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvc2N0cC9zb2NrZXQuYyB8IDUgKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc29ja2V0LmMg Yi9uZXQvc2N0cC9zb2NrZXQuYwppbmRleCAwYzUyNTdlLi40ODdjMTI3IDEwMDY0NAotLS0gYS9u ZXQvc2N0cC9zb2NrZXQuYworKysgYi9uZXQvc2N0cC9zb2NrZXQuYwpAQCAtNDUwNiw5ICs0NTA2 LDggQEAgaW50IHNjdHBfZm9yX2VhY2hfdHJhbnNwb3J0KGludCAoKmNiKShzdHJ1Y3Qgc2N0cF90 cmFuc3BvcnQgKiwgdm9pZCAqKSwKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCi0Jc2N0cF90 cmFuc3BvcnRfZ2V0X2lkeChuZXQsICZodGksIHBvcyk7Ci0Jb2JqID0gc2N0cF90cmFuc3BvcnRf Z2V0X25leHQobmV0LCAmaHRpKTsKLQlmb3IgKDsgb2JqICYmICFJU19FUlIob2JqKTsgb2JqID0g c2N0cF90cmFuc3BvcnRfZ2V0X25leHQobmV0LCAmaHRpKSkgeworCW9iaiA9IHNjdHBfdHJhbnNw b3J0X2dldF9pZHgobmV0LCAmaHRpLCBwb3MgKyAxKTsKKwlmb3IgKDsgIUlTX0VSUl9PUl9OVUxM KG9iaik7IG9iaiA9IHNjdHBfdHJhbnNwb3J0X2dldF9uZXh0KG5ldCwgJmh0aSkpIHsKIAkJc3Ry dWN0IHNjdHBfdHJhbnNwb3J0ICp0cmFuc3BvcnQgPSBvYmo7CiAKIAkJaWYgKCFzY3RwX3RyYW5z cG9ydF9ob2xkKHRyYW5zcG9ydCkpCi0tIAoyLjQuMTEKCgpGcm9tIDgzNTc1Y2VkMWE5ZGU5MDhi ZDcyYzA1MmQyYjQ5ZWFjNjFjZjUwMzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE9y IEdlcmxpdHogPG9nZXJsaXR6QG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCAxNSBKdW4gMjAxNyAy MDowODozMiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMjRdIG5ldC9tbHg1ZTogQXZvaWQgZG9p bmcgYSBjbGVhbnVwIGNhbGwgaWYgdGhlIHByb2ZpbGUKIGRvZXNuJ3QgaGF2ZSBpdAoKWyBVcHN0 cmVhbSBjb21taXQgMzFhYzkzMzg2ZDEzNWE2Yzk2ZGU5YzhiYWI0MDZmNWNjYWJmNWE0ZCBdCgpU aGUgZXJyb3IgZmxvdyBvZiBtbHg1ZV9jcmVhdGVfbmV0ZGV2IGNhbGxzIHRoZSBjbGVhbnVwIGNh bGwKb2YgdGhlIGdpdmVuIHByb2ZpbGUgd2l0aG91dCBjaGVja2luZyBpZiBpdCBleGlzdHMsIGZp eCB0aGF0LgoKQ3VycmVudGx5IHRoZSBWRiByZXBzIGRvbid0IHJlZ2lzdGVyIHRoYXQgY2FsbGJh Y2sgYW5kIHdlIGNyYXNoCmlmIGdldHRpbmcgaW50byBlcnJvciAtLSBjYW4gYmUgcmVwcm9kdWNl ZCBieSB0aGUgdXNlciBkb2luZyBjdHJsXkMKd2hpbGUgYXR0ZW1wdGluZyB0byBjaGFuZ2UgdGhl IHNyaW92IG1vZGUgZnJvbSBsZWdhY3kgdG8gc3dpdGNoZGV2LgoKRml4ZXM6IDI2ZTU5ZDgwNzdh MyAnKG5ldC9tbHg1ZTogSW1wbGVtZW50IG1seDVlIGludGVyZmFjZSBhdHRhY2gvZGV0YWNoIGNh bGxiYWNrcycpClNpZ25lZC1vZmYtYnk6IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1lbGxhbm94LmNv bT4KUmVwb3J0ZWQtYnk6IFNhYnJpbmEgRHVicm9jYSA8c2R1YnJvY2FAcmVkaGF0LmNvbT4KU2ln bmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyB8IDMgKystCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMKaW5kZXggZDRm YTg1MS4uZWE1ODIzNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW5fbWFpbi5jCkBAIC0zODQ2LDcgKzM4NDYsOCBAQCBzdHJ1Y3QgbmV0X2Rldmlj ZSAqbWx4NWVfY3JlYXRlX25ldGRldihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwKIAlyZXR1 cm4gbmV0ZGV2OwogCiBlcnJfY2xlYW51cF9uaWM6Ci0JcHJvZmlsZS0+Y2xlYW51cChwcml2KTsK KwlpZiAocHJvZmlsZS0+Y2xlYW51cCkKKwkJcHJvZmlsZS0+Y2xlYW51cChwcml2KTsKIAlmcmVl X25ldGRldihuZXRkZXYpOwogCiAJcmV0dXJuIE5VTEw7Ci0tIAoyLjQuMTEKCgpGcm9tIDBiYTI5 OWM1MGQ5ZjMwYTZlZGJjOTc2ZjEwMzBjZDY0MjkzNTNiZDIgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEVsaSBDb2hlbiA8ZWxpQG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCA4IEp1biAy MDE3IDExOjMzOjE2IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAxOC8yNF0gbmV0L21seDU6IFdhaXQg Zm9yIEZXIHJlYWRpbmVzcyBiZWZvcmUgaW5pdGlhbGl6aW5nCiBjb21tYW5kIGludGVyZmFjZQoK WyBVcHN0cmVhbSBjb21taXQgNmM3ODBhMDI2N2I4YTEwNzVmNDBiMzk4NTExMzJlZWFlZmVmY2Zm NSBdCgpCZWZvcmUgYXR0ZW1wdGluZyB0byBpbml0aWFsaXplIHRoZSBjb21tYW5kIGludGVyZmFj ZSB3ZSBtdXN0IHdhaXQgdGlsbAp0aGUgZndfaW5pdGlhbGl6aW5nIGJpdCBpcyBjbGVhci4KCklm IHdlIGZhaWwgdG8gbWVldCB0aGlzIGNvbmRpdGlvbiB0aGUgaGFyZHdhcmUgd2lsbCBkcm9wIG91 cgpjb25maWd1cmF0aW9uLCBzcGVjaWZpY2FsbHkgdGhlIGRlc2NyaXB0b3JzIHBhZ2UgYWRkcmVz cy4gIFRoaXMgc2NlbmFyaW8KY2FuIGhhcHBlbiB3aGVuIHRoZSBmaXJtd2FyZSBpcyBzdGlsbCBl eGVjdXRpbmcgYW4gRkxSIGZsb3cgYW5kIGRpZCBub3QKZmluaXNoIHlldCBzbyB0aGUgZHJpdmVy IG5lZWRzIHRvIHdhaXQgZm9yIHRoYXQgdG8gZmluaXNoLgoKRml4ZXM6IGUzMjk3MjQ2YzJjOCAo J25ldC9tbHg1X2NvcmU6IFdhaXQgZm9yIEZXIHJlYWRpbmVzcyBvbiBzdGFydHVwJykKU2lnbmVk LW9mZi1ieTogRWxpIENvaGVuIDxlbGlAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVl ZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jIHwgMTQgKysrKysrKysrKysrLS0KIDEgZmlsZSBj aGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jCmluZGV4IGQ3NzZkYjcuLjViZWEw YmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9t YWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4u YwpAQCAtMTU1LDggKzE1NSw5IEBAIHN0YXRpYyBzdHJ1Y3QgbWx4NV9wcm9maWxlIHByb2ZpbGVb XSA9IHsKIAl9LAogfTsKIAotI2RlZmluZSBGV19JTklUX1RJTUVPVVRfTUlMSQkyMDAwCi0jZGVm aW5lIEZXX0lOSVRfV0FJVF9NUwkJMgorI2RlZmluZSBGV19JTklUX1RJTUVPVVRfTUlMSQkJMjAw MAorI2RlZmluZSBGV19JTklUX1dBSVRfTVMJCQkyCisjZGVmaW5lIEZXX1BSRV9JTklUX1RJTUVP VVRfTUlMSQkxMDAwMAogCiBzdGF0aWMgaW50IHdhaXRfZndfaW5pdChzdHJ1Y3QgbWx4NV9jb3Jl X2RldiAqZGV2LCB1MzIgbWF4X3dhaXRfbWlsaSkKIHsKQEAgLTk1Niw2ICs5NTcsMTUgQEAgc3Rh dGljIGludCBtbHg1X2xvYWRfb25lKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBt bHg1X3ByaXYgKnByaXYsCiAJICovCiAJZGV2LT5zdGF0ZSA9IE1MWDVfREVWSUNFX1NUQVRFX1VQ OwogCisJLyogd2FpdCBmb3IgZmlybXdhcmUgdG8gYWNjZXB0IGluaXRpYWxpemF0aW9uIHNlZ21l bnRzIGNvbmZpZ3VyYXRpb25zCisJICovCisJZXJyID0gd2FpdF9md19pbml0KGRldiwgRldfUFJF X0lOSVRfVElNRU9VVF9NSUxJKTsKKwlpZiAoZXJyKSB7CisJCWRldl9lcnIoJmRldi0+cGRldi0+ ZGV2LCAiRmlybXdhcmUgb3ZlciAlZCBNUyBpbiBwcmUtaW5pdGlhbGl6aW5nIHN0YXRlLCBhYm9y dGluZ1xuIiwKKwkJCUZXX1BSRV9JTklUX1RJTUVPVVRfTUlMSSk7CisJCWdvdG8gb3V0OworCX0K KwogCWVyciA9IG1seDVfY21kX2luaXQoZGV2KTsKIAlpZiAoZXJyKSB7CiAJCWRldl9lcnIoJnBk ZXYtPmRldiwgIkZhaWxlZCBpbml0aWFsaXppbmcgY29tbWFuZCBpbnRlcmZhY2UsIGFib3J0aW5n XG4iKTsKLS0gCjIuNC4xMQoKCkZyb20gZTllYmZhYzdiYjU3ZTBmMGI3ZGYzMzhjNWQ4MzY2NzA3 YWNmYTc5OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFvciBEaWNrbWFuIDxtYW9y ZEBtZWxsYW5veC5jb20+CkRhdGU6IFRodSwgMTggTWF5IDIwMTcgMTU6MTU6MDggKzAzMDAKU3Vi amVjdDogW1BBVENIIDE5LzI0XSBuZXQvbWx4NWU6IEZpeCB0aW1lc3RhbXBpbmcgY2FwYWJpbGl0 aWVzIHJlcG9ydGluZwoKWyBVcHN0cmVhbSBjb21taXQgZjBiMzgxMTc4YjAxYjgzMWY5OTA3ZDcy ZjQ2N2Q2NDQzYWZkZWE2NyBdCgpNaXN1c2Ugb2YgKEJJVCkgbWFjcm8gY2F1c2VkIHRvIHJlcG9y dCB3cm9uZyBmbGFncyBmb3IKIkhhcmR3YXJlIFRyYW5zbWl0IFRpbWVzdGFtcCBNb2RlcyIgYW5k ICJIYXJkd2FyZSBSZWNlaXZlCkZpbHRlciBNb2RlcyIKCkZpeGVzOiBlZjk4MTRkZWFmZDAgKCdu ZXQvbWx4NWU6IEFkZCBIVyB0aW1lc3RhbXBpbmcgKFRTKSBzdXBwb3J0JykKU2lnbmVkLW9mZi1i eTogTWFvciBEaWNrbWFuIDxtYW9yZEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVk IE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0b29sLmMgfCA4ICsrKystLS0tCiAxIGZpbGUgY2hh bmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0b29sLmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZXRodG9vbC5jCmluZGV4IDM3NDRl MmYuLmRhMWQ3M2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbl9ldGh0b29sLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuX2V0aHRvb2wuYwpAQCAtMTE4MywxMSArMTE4MywxMSBAQCBzdGF0aWMgaW50 IG1seDVlX2dldF90c19pbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkJIFNPRl9USU1F U1RBTVBJTkdfUlhfSEFSRFdBUkUgfAogCQkJCSBTT0ZfVElNRVNUQU1QSU5HX1JBV19IQVJEV0FS RTsKIAotCWluZm8tPnR4X3R5cGVzID0gKEJJVCgxKSA8PCBIV1RTVEFNUF9UWF9PRkYpIHwKLQkJ CSAoQklUKDEpIDw8IEhXVFNUQU1QX1RYX09OKTsKKwlpbmZvLT50eF90eXBlcyA9IEJJVChIV1RT VEFNUF9UWF9PRkYpIHwKKwkJCSBCSVQoSFdUU1RBTVBfVFhfT04pOwogCi0JaW5mby0+cnhfZmls dGVycyA9IChCSVQoMSkgPDwgSFdUU1RBTVBfRklMVEVSX05PTkUpIHwKLQkJCSAgIChCSVQoMSkg PDwgSFdUU1RBTVBfRklMVEVSX0FMTCk7CisJaW5mby0+cnhfZmlsdGVycyA9IEJJVChIV1RTVEFN UF9GSUxURVJfTk9ORSkgfAorCQkJICAgQklUKEhXVFNUQU1QX0ZJTFRFUl9BTEwpOwogCiAJcmV0 dXJuIDA7CiB9Ci0tIAoyLjQuMTEKCgpGcm9tIGJiOWY1YTJiYjIwNWVmMzJmOWIxZGMzNzdiZGFl MDU3ZDA2ZmY5MmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdlaSBXYW5nIDx3ZWl3 YW5AZ29vZ2xlLmNvbT4KRGF0ZTogRnJpLCAxNiBKdW4gMjAxNyAxMDo0NjozNyAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMjAvMjRdIGRlY25ldDogYWx3YXlzIG5vdCB0YWtlIGRzdC0+X19yZWZjbnQg d2hlbiBpbnNlcnRpbmcKIGRzdCBpbnRvIGhhc2ggdGFibGUKClsgVXBzdHJlYW0gY29tbWl0IDc2 MzcxZDJlM2FkMWY4NDQyNmEzMGViY2Q4YzNiOWI5OGY0YzcyNGYgXQoKSW4gdGhlIGV4aXN0aW5n IGRuX3JvdXRlLmMgY29kZSwgZG5fcm91dGVfb3V0cHV0X3Nsb3coKSB0YWtlcwpkc3QtPl9fcmVm Y250IGJlZm9yZSBjYWxsaW5nIGRuX2luc2VydF9yb3V0ZSgpIHdoaWxlIGRuX3JvdXRlX2lucHV0 X3Nsb3coKQpkb2VzIG5vdCB0YWtlIGRzdC0+X19yZWZjbnQgYmVmb3JlIGNhbGxpbmcgZG5faW5z ZXJ0X3JvdXRlKCkuClRoaXMgbWFrZXMgdGhlIHdob2xlIHJvdXRpbmcgY29kZSB2ZXJ5IGJ1Z2d5 LgpJbiBkbl9kc3RfY2hlY2tfZXhwaXJlKCksIGRucnRfZnJlZSgpIGlzIGNhbGxlZCB3aGVuIHJ0 IGV4cGlyZXMuIFRoaXMKbWFrZXMgdGhlIHJvdXRlcyBpbnNlcnRlZCBieSBkbl9yb3V0ZV9vdXRw dXRfc2xvdygpIG5vdCBhYmxlIHRvIGJlCmZyZWVkIGFzIHRoZSByZWZjbnQgaXMgbm90IHJlbGVh c2VkLgpJbiBkbl9kc3RfZ2MoKSwgZG5ydF9kcm9wKCkgaXMgY2FsbGVkIHRvIHJlbGVhc2UgcnQg d2hpY2ggY291bGQKcG90ZW50aWFsbHkgY2F1c2UgdGhlIGRzdC0+X19yZWZjbnQgdG8gYmUgZHJv cHBlZCB0byAtMS4KSW4gZG5fcnVuX2ZsdXNoKCksIGRzdF9mcmVlKCkgaXMgY2FsbGVkIHRvIHJl bGVhc2UgYWxsIHRoZSBkc3QuIEFnYWluLAppdCBtYWtlcyB0aGUgZHN0IGluc2VydGVkIGJ5IGRu X3JvdXRlX291dHB1dF9zbG93KCkgbm90IGFibGUgdG8gYmUKcmVsZWFzZWQgYW5kIGFsc28sIGl0 IGRvZXMgbm90IHdhaXQgb24gdGhlIHJjdSBhbmQgY291bGQgcG90ZW50aWFsbHkKY2F1c2UgY3Jh c2ggaW4gdGhlIHBhdGggd2hlcmUgb3RoZXIgdXNlcnMgc3RpbGwgcmVmZXIgdG8gdGhpcyBkc3Qu CgpUaGlzIHBhdGNoIG1ha2VzIHN1cmUgYm90aCBpbnB1dCBhbmQgb3V0cHV0IHBhdGggZG8gbm90 IHRha2UKZHN0LT5fX3JlZmNudCBiZWZvcmUgY2FsbGluZyBkbl9pbnNlcnRfcm91dGUoKSBhbmQg YWxzbyBtYWtlcyBzdXJlCmRucnRfZnJlZSgpL2RzdF9mcmVlKCkgaXMgY2FsbGVkIHdoZW4gcmVt b3ZpbmcgZHN0IGZyb20gdGhlIGhhc2ggdGFibGUuClRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2Vl biB0aG9zZSAyIGNhbGxzIGlzIHRoYXQgZG5ydF9mcmVlKCkgd2FpdHMgb24KdGhlIHJjdSB3aGls ZSBkc3RfZnJlZSgpIGRvZXMgbm90LgoKU2lnbmVkLW9mZi1ieTogV2VpIFdhbmcgPHdlaXdhbkBn b29nbGUuY29tPgpBY2tlZC1ieTogTWFydGluIEthRmFpIExhdSA8a2FmYWlAZmIuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2RlY25ldC9kbl9yb3V0ZS5jIHwgMTQgKysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0 IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9kZWNuZXQv ZG5fcm91dGUuYyBiL25ldC9kZWNuZXQvZG5fcm91dGUuYwppbmRleCBiMWRjMDk2Li40MDM1OTNi IDEwMDY0NAotLS0gYS9uZXQvZGVjbmV0L2RuX3JvdXRlLmMKKysrIGIvbmV0L2RlY25ldC9kbl9y b3V0ZS5jCkBAIC0xODgsMTIgKzE4OCw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkbnJ0X2ZyZWUo c3RydWN0IGRuX3JvdXRlICpydCkKIAljYWxsX3JjdV9iaCgmcnQtPmRzdC5yY3VfaGVhZCwgZHN0 X3JjdV9mcmVlKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGRucnRfZHJvcChzdHJ1Y3QgZG5f cm91dGUgKnJ0KQotewotCWRzdF9yZWxlYXNlKCZydC0+ZHN0KTsKLQljYWxsX3JjdV9iaCgmcnQt PmRzdC5yY3VfaGVhZCwgZHN0X3JjdV9mcmVlKTsKLX0KLQogc3RhdGljIHZvaWQgZG5fZHN0X2No ZWNrX2V4cGlyZSh1bnNpZ25lZCBsb25nIGR1bW15KQogewogCWludCBpOwpAQCAtMjQ4LDcgKzI0 Miw3IEBAIHN0YXRpYyBpbnQgZG5fZHN0X2djKHN0cnVjdCBkc3Rfb3BzICpvcHMpCiAJCQl9CiAJ CQkqcnRwID0gcnQtPmRzdC5kbl9uZXh0OwogCQkJcnQtPmRzdC5kbl9uZXh0ID0gTlVMTDsKLQkJ CWRucnRfZHJvcChydCk7CisJCQlkbnJ0X2ZyZWUocnQpOwogCQkJYnJlYWs7CiAJCX0KIAkJc3Bp bl91bmxvY2tfYmgoJmRuX3J0X2hhc2hfdGFibGVbaV0ubG9jayk7CkBAIC0zNTAsNyArMzQ0LDcg QEAgc3RhdGljIGludCBkbl9pbnNlcnRfcm91dGUoc3RydWN0IGRuX3JvdXRlICpydCwgdW5zaWdu ZWQgaW50IGhhc2gsIHN0cnVjdCBkbl9yb3UKIAkJCWRzdF91c2UoJnJ0aC0+ZHN0LCBub3cpOwog CQkJc3Bpbl91bmxvY2tfYmgoJmRuX3J0X2hhc2hfdGFibGVbaGFzaF0ubG9jayk7CiAKLQkJCWRu cnRfZHJvcChydCk7CisJCQlkc3RfZnJlZSgmcnQtPmRzdCk7CiAJCQkqcnAgPSBydGg7CiAJCQly ZXR1cm4gMDsKIAkJfQpAQCAtMzgwLDcgKzM3NCw3IEBAIHN0YXRpYyB2b2lkIGRuX3J1bl9mbHVz aCh1bnNpZ25lZCBsb25nIGR1bW15KQogCQlmb3IoOyBydDsgcnQgPSBuZXh0KSB7CiAJCQluZXh0 ID0gcmN1X2RlcmVmZXJlbmNlX3JhdyhydC0+ZHN0LmRuX25leHQpOwogCQkJUkNVX0lOSVRfUE9J TlRFUihydC0+ZHN0LmRuX25leHQsIE5VTEwpOwotCQkJZHN0X2ZyZWUoKHN0cnVjdCBkc3RfZW50 cnkgKilydCk7CisJCQlkbnJ0X2ZyZWUocnQpOwogCQl9CiAKIG5vdGhpbmdfdG9fZGVjbGFyZToK QEAgLTExODcsNyArMTE4MSw3IEBAIHN0YXRpYyBpbnQgZG5fcm91dGVfb3V0cHV0X3Nsb3coc3Ry dWN0IGRzdF9lbnRyeSAqKnBwcnQsIGNvbnN0IHN0cnVjdCBmbG93aWRuICpvCiAJaWYgKGRldl9v dXQtPmZsYWdzICYgSUZGX0xPT1BCQUNLKQogCQlmbGFncyB8PSBSVENGX0xPQ0FMOwogCi0JcnQg PSBkc3RfYWxsb2MoJmRuX2RzdF9vcHMsIGRldl9vdXQsIDEsIERTVF9PQlNPTEVURV9OT05FLCBE U1RfSE9TVCk7CisJcnQgPSBkc3RfYWxsb2MoJmRuX2RzdF9vcHMsIGRldl9vdXQsIDAsIERTVF9P QlNPTEVURV9OT05FLCBEU1RfSE9TVCk7CiAJaWYgKHJ0ID09IE5VTEwpCiAJCWdvdG8gZV9ub2J1 ZnM7CiAKLS0gCjIuNC4xMQoKCkZyb20gYjkzYWZmNGQwZjMyZGMyNWQ1MTUwNzlkZmIwOGUzODYw NDg3MTdhZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR2FvIEZlbmcgPGdmcmVlLndp bmRAdmlwLjE2My5jb20+CkRhdGU6IEZyaSwgMTYgSnVuIDIwMTcgMTU6MDA6MDIgKzA4MDAKU3Vi amVjdDogW1BBVENIIDIxLzI0XSBuZXQ6IDgwMjFxOiBGaXggb25lIHBvc3NpYmxlIHBhbmljIGNh dXNlZCBieSBCVUdfT04gaW4KIGZyZWVfbmV0ZGV2CgpbIFVwc3RyZWFtIGNvbW1pdCA5NzQ1ZTM2 MmFkZDg5NDMyZDJjOTUxMjcyYTk5YjBhNWZlNDM0OGE5IF0KClRoZSByZWdpc3Rlcl92bGFuX2Rl dmljZSB3b3VsZCBpbnZva2UgZnJlZV9uZXRkZXYgZGlyZWN0bHksIHdoZW4KcmVnaXN0ZXJfdmxh bl9kZXYgZmFpbGVkLiBJdCB3b3VsZCB0cmlnZ2VyIHRoZSBCVUdfT04gaW4gZnJlZV9uZXRkZXYK aWYgdGhlIGRldiB3YXMgYWxyZWFkeSByZWdpc3RlcmVkLiBJbiB0aGlzIGNhc2UsIHRoZSBuZXRk ZXYgd291bGQgYmUKZnJlZWQgaW4gbmV0ZGV2X3J1bl90b2RvIGxhdGVyLgoKU28gYWRkIG9uZSBj b25kaXRpb24gY2hlY2sgbm93LiBPbmx5IHdoZW4gZGV2IGlzIG5vdCByZWdpc3RlcmVkLCB0aGVu CmZyZWUgaXQgZGlyZWN0bHkuCgpUaGUgZm9sbG93aW5nIGlzIHRoZSBwYXJ0IGNvcmVkdW1wIHdo ZW4gbmV0ZGV2X3VwcGVyX2Rldl9saW5rIGZhaWxlZAppbiByZWdpc3Rlcl92bGFuX2Rldi4gSSBy ZW1vdmVkIHRoZSBsaW5lcyB3aGljaCBhcmUgdG9vIGxvbmcuCgpbICA0MTEuMjM3NDU3XSAtLS0t LS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0tLS0KWyAgNDExLjIzNzQ1OF0ga2VybmVsIEJV RyBhdCBuZXQvY29yZS9kZXYuYzo3OTk4IQpbICA0MTEuMjM3NDg0XSBpbnZhbGlkIG9wY29kZTog MDAwMCBbIzFdIFNNUApbICA0MTEuMjM3NzA1XSAgW2xhc3QgdW5sb2FkZWQ6IDgwMjFxXQpbICA0 MTEuMjM3NzE4XSBDUFU6IDEgUElEOiAxMjg0NSBDb21tOiB2Y29uZmlnIFRhaW50ZWQ6IEcgICAg ICAgICAgICBFICAgNC4xMi4wLXJjNSsgIzYKWyAgNDExLjIzNzczN10gSGFyZHdhcmUgbmFtZTog Vk13YXJlLCBJbmMuIFZNd2FyZSBWaXJ0dWFsIFBsYXRmb3JtLzQ0MEJYIERlc2t0b3AgUmVmZXJl bmNlIFBsYXRmb3JtLCBCSU9TIDYuMDAgMDcvMDIvMjAxNQpbICA0MTEuMjM3NzY0XSB0YXNrOiBm ZmZmOWNiZWI2Njg1NTgwIHRhc2suc3RhY2s6IGZmZmZhN2QyODA3ZDgwMDAKWyAgNDExLjIzNzc4 Ml0gUklQOiAwMDEwOmZyZWVfbmV0ZGV2KzB4MTE2LzB4MTIwClsgIDQxMS4yMzc3OTRdIFJTUDog MDAxODpmZmZmYTdkMjgwN2RiZGIwIEVGTEFHUzogMDAwMTAyOTcKWyAgNDExLjIzNzgwOF0gUkFY OiAwMDAwMDAwMDAwMDAwMDAyIFJCWDogZmZmZjljYmViNmJhOGZkOCBSQ1g6IDAwMDAwMDAwMDAw MDE4NzgKWyAgNDExLjIzNzgyNl0gUkRYOiAwMDAwMDAwMDAwMDAwMDAxIFJTSTogMDAwMDAwMDAw MDAwMDI4MiBSREk6IDAwMDAwMDAwMDAwMDAwMDAKWyAgNDExLjIzNzg0NF0gUkJQOiBmZmZmYTdk MjgwN2RiZGM4IFIwODogMDAwMjk4NjEwMDAyOTg0MSBSMDk6IDAwMDI5ODIxMDAwMjk4MDEKWyAg NDExLjIzNzg2MV0gUjEwOiAwMDA0MDAwMTAwMDI5OTgwIFIxMTogMDAwNDAwMDEwMDAyOTk4MCBS MTI6IGZmZmY5Y2JlYjZiYTkwMDAKWyAgNDExLjIzODc2MV0gUjEzOiBmZmZmOWNiZWI2YmE5MDYw IFIxNDogZmZmZjljYmU2MGYxYTAwMCBSMTU6IGZmZmY5Y2JlYjZiYTkwMDAKWyAgNDExLjIzOTUx OF0gRlM6ICAwMDAwN2ZiNjkwZDgxNzAwKDAwMDApIEdTOmZmZmY5Y2JlYmI2NDAwMDAoMDAwMCkg a25sR1M6MDAwMDAwMDAwMDAwMDAwMApbICA0MTEuMjM5OTQ5XSBDUzogIDAwMTAgRFM6IDAwMDAg RVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzClsgIDQxMS4yNDA0NTRdIENSMjogMDAwMDdm NzExNTYyNDAwMCBDUjM6IDAwMDAwMDAwNzdjZGYwMDAgQ1I0OiAwMDAwMDAwMDAwMzQwNmUwClsg IDQxMS4yNDA5MzZdIENhbGwgVHJhY2U6ClsgIDQxMS4yNDE0NjJdICB2bGFuX2lvY3RsX2hhbmRs ZXIrMHgzZjEvMHg0MDAgWzgwMjFxXQpbICA0MTEuMjQxOTEwXSAgc29ja19pb2N0bCsweDE4Yi8w eDJjMApbICA0MTEuMjQyMzk0XSAgZG9fdmZzX2lvY3RsKzB4YTEvMHg1ZDAKWyAgNDExLjI0Mjg1 M10gID8gc29ja19hbGxvY19maWxlKzB4YTYvMHgxMzAKWyAgNDExLjI0MzQ2NV0gIFN5U19pb2N0 bCsweDc5LzB4OTAKWyAgNDExLjI0MzkwMF0gIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgx ZS8weGE5ClsgIDQxMS4yNDQ0MjVdIFJJUDogMDAzMzoweDdmYjY5MDg5YTM1NwpbICA0MTEuMjQ0 ODYzXSBSU1A6IDAwMmI6MDAwMDdmZmNkMDRlMGZjOCBFRkxBR1M6IDAwMDAwMjAyIE9SSUdfUkFY OiAwMDAwMDAwMDAwMDAwMDEwClsgIDQxMS4yNDU0NDVdIFJBWDogZmZmZmZmZmZmZmZmZmZkYSBS Qlg6IDAwMDA3ZmZjZDA0ZTI4ODQgUkNYOiAwMDAwN2ZiNjkwODlhMzU3ClsgIDQxMS4yNDU5MDNd IFJEWDogMDAwMDdmZmNkMDRlMGZkMCBSU0k6IDAwMDAwMDAwMDAwMDg5ODMgUkRJOiAwMDAwMDAw MDAwMDAwMDAzClsgIDQxMS4yNDY1MjddIFJCUDogMDAwMDdmZmNkMDRlMGZkMCBSMDg6IDAwMDAw MDAwMDAwMDAwMDAgUjA5OiAxOTk5OTk5OTk5OTk5OTk5ClsgIDQxMS4yNDY5NzZdIFIxMDogMDAw MDAwMDAwMDAwMDUzZiBSMTE6IDAwMDAwMDAwMDAwMDAyMDIgUjEyOiAwMDAwMDAwMDAwMDAwMDA0 ClsgIDQxMS4yNDc0MTRdIFIxMzogMDAwMDdmZmNkMDRlMTEyOCBSMTQ6IDAwMDA3ZmZjZDA0ZTI4 ODggUjE1OiAwMDAwMDAwMDAwMDAwMDAxClsgIDQxMS4yNDkxMjldIFJJUDogZnJlZV9uZXRkZXYr MHgxMTYvMHgxMjAgUlNQOiBmZmZmYTdkMjgwN2RiZGIwCgpTaWduZWQtb2ZmLWJ5OiBHYW8gRmVu ZyA8Z2ZyZWUud2luZEB2aXAuMTYzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC84MDIxcS92bGFuLmMgfCAzICsrLQogMSBm aWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L25ldC84MDIxcS92bGFuLmMgYi9uZXQvODAyMXEvdmxhbi5jCmluZGV4IGYyNTMxYWQuLjhkMjEz ZjkgMTAwNjQ0Ci0tLSBhL25ldC84MDIxcS92bGFuLmMKKysrIGIvbmV0LzgwMjFxL3ZsYW4uYwpA QCAtMjc3LDcgKzI3Nyw4IEBAIHN0YXRpYyBpbnQgcmVnaXN0ZXJfdmxhbl9kZXZpY2Uoc3RydWN0 IG5ldF9kZXZpY2UgKnJlYWxfZGV2LCB1MTYgdmxhbl9pZCkKIAlyZXR1cm4gMDsKIAogb3V0X2Zy ZWVfbmV3ZGV2OgotCWZyZWVfbmV0ZGV2KG5ld19kZXYpOworCWlmIChuZXdfZGV2LT5yZWdfc3Rh dGUgPT0gTkVUUkVHX1VOSU5JVElBTElaRUQpCisJCWZyZWVfbmV0ZGV2KG5ld19kZXYpOwogCXJl dHVybiBlcnI7CiB9CiAKLS0gCjIuNC4xMQoKCkZyb20gNGEwMzEwZDI5NDJiYjA3YTc1YzA2NWRi YzAyOTQ3N2QwNjFjYWU0ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQmVydCBLZW53 YXJkIDxia2Vud2FyZEBzb2xhcmZsYXJlLmNvbT4KRGF0ZTogRnJpLCAxNiBKdW4gMjAxNyAwOTo0 NTowOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjIvMjRdIHNmYzogcHJvdmlkZSBkdW1teSBkZWZp bml0aW9ucyBvZiB2c3dpdGNoIGZ1bmN0aW9ucwoKZWZ4X3Byb2JlX2FsbCgpIGNhbGxzIGVmeC0+ dHlwZS0+dnN3aXRjaGluZ19wcm9iZSBkdXJpbmcgcHJvYmUuIEZvcgpTRkM0MDAwIChGYWxjb24p IE5JQ3MgdGhpcyBmdW5jdGlvbiBpcyBub3QgZGVmaW5lZCwgbGVhZGluZyB0byBhIEJVRwp3aXRo IHRoZSB0b3Agb2YgdGhlIGNhbGwgc3RhY2sgc2ltaWxhciB0bzoKICA/IGVmeF9wY2lfcHJvYmVf bWFpbisweDI5YS8weDgzMAogIGVmeF9wY2lfcHJvYmUrMHg3ZDMvMHhlNzAKCnZzd2l0Y2hpbmdf cmVzdG9yZSBhbmQgdnN3aXRjaGluZ19yZW1vdmUgYWxzbyBuZWVkIHRvIGJlIGRlZmluZWQuCgpG aXhlZCBpbiBtYWlubGluZSBieToKY29tbWl0IDVhNjY4MWUyMmMxNCAoInNmYzogc2VwYXJhdGUg b3V0IFNGQzQwMDAgKCJGYWxjb24iKSBzdXBwb3J0IGludG8gbmV3IHNmYy1mYWxjb24gZHJpdmVy IikKCkZpeGVzOiA2ZDhhYWFmNmY3OTggKCJzZmM6IGNyZWF0ZSBWRUIgdnN3aXRjaCBhbmQgdnBv cnQgYWJvdmUgZGVmYXVsdCBmaXJtd2FyZSBzZXR1cCIpClNpZ25lZC1vZmYtYnk6IEJlcnQgS2Vu d2FyZCA8YmtlbndhcmRAc29sYXJmbGFyZS5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQv c2ZjL2ZhbGNvbi5jIHwgMTAgKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uLmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uLmMKaW5kZXggMWE3MDkyNi4uMWJmYjIxNCAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24uYwpAQCAtMjgwMSw2ICsyODAxLDExIEBAIGNvbnN0 IHN0cnVjdCBlZnhfbmljX3R5cGUgZmFsY29uX2ExX25pY190eXBlID0gewogCS50aW1lcl9wZXJp b2RfbWF4ID0gIDEgPDwgRlJGX0FCX1RDX1RJTUVSX1ZBTF9XSURUSCwKIAkub2ZmbG9hZF9mZWF0 dXJlcyA9IE5FVElGX0ZfSVBfQ1NVTSwKIAkubWNkaV9tYXhfdmVyID0gLTEsCisjaWZkZWYgQ09O RklHX1NGQ19TUklPVgorCS52c3dpdGNoaW5nX3Byb2JlID0gZWZ4X3BvcnRfZHVtbXlfb3BfaW50 LAorCS52c3dpdGNoaW5nX3Jlc3RvcmUgPSBlZnhfcG9ydF9kdW1teV9vcF9pbnQsCisJLnZzd2l0 Y2hpbmdfcmVtb3ZlID0gZWZ4X3BvcnRfZHVtbXlfb3Bfdm9pZCwKKyNlbmRpZgogfTsKIAogY29u c3Qgc3RydWN0IGVmeF9uaWNfdHlwZSBmYWxjb25fYjBfbmljX3R5cGUgPSB7CkBAIC0yOTAyLDQg KzI5MDcsOSBAQCBjb25zdCBzdHJ1Y3QgZWZ4X25pY190eXBlIGZhbGNvbl9iMF9uaWNfdHlwZSA9 IHsKIAkub2ZmbG9hZF9mZWF0dXJlcyA9IE5FVElGX0ZfSVBfQ1NVTSB8IE5FVElGX0ZfUlhIQVNI IHwgTkVUSUZfRl9OVFVQTEUsCiAJLm1jZGlfbWF4X3ZlciA9IC0xLAogCS5tYXhfcnhfaXBfZmls dGVycyA9IEZSX0JaX1JYX0ZJTFRFUl9UQkwwX1JPV1MsCisjaWZkZWYgQ09ORklHX1NGQ19TUklP VgorCS52c3dpdGNoaW5nX3Byb2JlID0gZWZ4X3BvcnRfZHVtbXlfb3BfaW50LAorCS52c3dpdGNo aW5nX3Jlc3RvcmUgPSBlZnhfcG9ydF9kdW1teV9vcF9pbnQsCisJLnZzd2l0Y2hpbmdfcmVtb3Zl ID0gZWZ4X3BvcnRfZHVtbXlfb3Bfdm9pZCwKKyNlbmRpZgogfTsKLS0gCjIuNC4xMQoKCkZyb20g N2E0ZTQ3NWVhZjdmMWU3NTQyNjY1Yjc1Yjk3OWE4MGIzNWU5OTQwZSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogU2VyaGV5IFBvcG92eWNoIDxzZXJoZS5wb3BvdnljaEBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMjAgSnVuIDIwMTcgMTM6Mjk6MjUgKzAzMDAKU3ViamVjdDogW1BBVENIIDIz LzI0XSBpcHY2OiBEbyBub3QgbGVhayB0aHJvdyByb3V0ZSByZWZlcmVuY2VzCgpbIFVwc3RyZWFt IGNvbW1pdCAwN2Y2MTU1NzRmOGFjNDk5ODc1YjIxYzExNDJmMjYzMDgyMzRhOTJjIF0KCldoaWxl IGNvbW1pdCA3M2JhNTdiZmFlNGEgKCJpcHY2OiBmaXggYmFja3RyYWNraW5nIGZvciB0aHJvdyBy b3V0ZXMiKQpkb2VzIGdvb2Qgam9iIG9uIGVycm9yIHByb3BhZ2F0aW9uIHRvIHRoZSBmaWJfcnVs ZXNfbG9va3VwKCkKaW4gZmliIHJ1bGVzIGNvcmUgZnJhbWV3b3JrIHRoYXQgYWxzbyBjb3JyZWN0 cyB0aHJvdyByb3V0ZXMKaGFuZGxpbmcsIGl0IGRvZXMgbm90IHNvbHZlIHJvdXRlIHJlZmVyZW5j ZSBsZWFrYWdlIHByb2JsZW0KaGFwcGVuZWQgd2hlbiB3ZSByZXR1cm4gLUVBR0FJTiB0byB0aGUg ZmliX3J1bGVzX2xvb2t1cCgpCmFuZCBsZWF2ZSByb3V0aW5nIHRhYmxlIGVudHJ5IHJlZmVyZW5j ZWQgaW4gYXJnLT5yZXN1bHQuCgpJZiBydWxlIHdpdGggbWF0Y2hlZCB0aHJvdyByb3V0ZSBpc24n dCBsYXN0IG1hdGNoZWQgaW4gdGhlCmxpc3Qgd2Ugb3ZlcndyaXRlIGFyZy0+cmVzdWx0IGxvc2lu ZyByZWZlcmVuY2Ugb24gdGhyb3cKcm91dGUgc3RvcmVkIHByZXZpb3VzbHkgZm9yZXZlci4KCldl IGFsc28gcGFydGlhbGx5IHJldmVydCBjb21taXQgYWI5OTdhZDQwODM5ICgiaXB2NjogZml4IHRo ZQppbmNvcnJlY3QgcmV0dXJuIHZhbHVlIG9mIHRocm93IHJvdXRlIikgc2luY2Ugd2UgbmV2ZXIg cmV0dXJuCnJvdXRpbmcgdGFibGUgZW50cnkgd2l0aCBkc3QuZXJyb3IgPT0gLUVBR0FJTiB3aGVu CkNPTkZJR19JUFY2X01VTFRJUExFX1RBQkxFUyBpcyBvbi4gQWxzbyB0aGVyZSBpcyBubyBwb2lu dAp0byBjaGVjayBmb3IgUlRGX1JFSkVDVCBmbGFnIHNpbmNlIGl0IGlzIGFsd2F5cyBzZXQgdGhy b3cKcm91dGUuCgpGaXhlczogNzNiYTU3YmZhZTRhICgiaXB2NjogZml4IGJhY2t0cmFja2luZyBm b3IgdGhyb3cgcm91dGVzIikKU2lnbmVkLW9mZi1ieTogU2VyaGV5IFBvcG92eWNoIDxzZXJoZS5w b3BvdnljaEBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9maWI2X3J1bGVzLmMgfCAyMiArKysrKystLS0t LS0tLS0tLS0tLS0tCiBuZXQvaXB2Ni9pcDZfZmliLmMgICAgfCAgMyArLS0KIDIgZmlsZXMgY2hh bmdlZCwgNyBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv aXB2Ni9maWI2X3J1bGVzLmMgYi9uZXQvaXB2Ni9maWI2X3J1bGVzLmMKaW5kZXggZWVhMjNiNS4u ZWM4NDlkOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvZmliNl9ydWxlcy5jCisrKyBiL25ldC9pcHY2 L2ZpYjZfcnVsZXMuYwpAQCAtMzIsNyArMzIsNiBAQCBzdHJ1Y3QgZmliNl9ydWxlIHsKIHN0cnVj dCBkc3RfZW50cnkgKmZpYjZfcnVsZV9sb29rdXAoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgZmxv d2k2ICpmbDYsCiAJCQkJICAgaW50IGZsYWdzLCBwb2xfbG9va3VwX3QgbG9va3VwKQogewotCXN0 cnVjdCBydDZfaW5mbyAqcnQ7CiAJc3RydWN0IGZpYl9sb29rdXBfYXJnIGFyZyA9IHsKIAkJLmxv b2t1cF9wdHIgPSBsb29rdXAsCiAJCS5mbGFncyA9IEZJQl9MT09LVVBfTk9SRUYsCkBAIC00NCwy MSArNDMsMTEgQEAgc3RydWN0IGRzdF9lbnRyeSAqZmliNl9ydWxlX2xvb2t1cChzdHJ1Y3QgbmV0 ICpuZXQsIHN0cnVjdCBmbG93aTYgKmZsNiwKIAlmaWJfcnVsZXNfbG9va3VwKG5ldC0+aXB2Ni5m aWI2X3J1bGVzX29wcywKIAkJCSBmbG93aTZfdG9fZmxvd2koZmw2KSwgZmxhZ3MsICZhcmcpOwog Ci0JcnQgPSBhcmcucmVzdWx0OworCWlmIChhcmcucmVzdWx0KQorCQlyZXR1cm4gYXJnLnJlc3Vs dDsKIAotCWlmICghcnQpIHsKLQkJZHN0X2hvbGQoJm5ldC0+aXB2Ni5pcDZfbnVsbF9lbnRyeS0+ ZHN0KTsKLQkJcmV0dXJuICZuZXQtPmlwdjYuaXA2X251bGxfZW50cnktPmRzdDsKLQl9Ci0KLQlp ZiAocnQtPnJ0NmlfZmxhZ3MgJiBSVEZfUkVKRUNUICYmCi0JICAgIHJ0LT5kc3QuZXJyb3IgPT0g LUVBR0FJTikgewotCQlpcDZfcnRfcHV0KHJ0KTsKLQkJcnQgPSBuZXQtPmlwdjYuaXA2X251bGxf ZW50cnk7Ci0JCWRzdF9ob2xkKCZydC0+ZHN0KTsKLQl9Ci0KLQlyZXR1cm4gJnJ0LT5kc3Q7CisJ ZHN0X2hvbGQoJm5ldC0+aXB2Ni5pcDZfbnVsbF9lbnRyeS0+ZHN0KTsKKwlyZXR1cm4gJm5ldC0+ aXB2Ni5pcDZfbnVsbF9lbnRyeS0+ZHN0OwogfQogCiBzdGF0aWMgaW50IGZpYjZfcnVsZV9hY3Rp b24oc3RydWN0IGZpYl9ydWxlICpydWxlLCBzdHJ1Y3QgZmxvd2kgKmZscCwKQEAgLTEyMSw3ICsx MTAsOCBAQCBzdGF0aWMgaW50IGZpYjZfcnVsZV9hY3Rpb24oc3RydWN0IGZpYl9ydWxlICpydWxl LCBzdHJ1Y3QgZmxvd2kgKmZscCwKIAkJCWZscDYtPnNhZGRyID0gc2FkZHI7CiAJCX0KIAkJZXJy ID0gcnQtPmRzdC5lcnJvcjsKLQkJZ290byBvdXQ7CisJCWlmIChlcnIgIT0gLUVBR0FJTikKKwkJ CWdvdG8gb3V0OwogCX0KIGFnYWluOgogCWlwNl9ydF9wdXQocnQpOwpkaWZmIC0tZ2l0IGEvbmV0 L2lwdjYvaXA2X2ZpYi5jIGIvbmV0L2lwdjYvaXA2X2ZpYi5jCmluZGV4IDhjODhhMzcuLjYzNmQ0 ZDggMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9maWIuYworKysgYi9uZXQvaXB2Ni9pcDZfZmli LmMKQEAgLTI4OSw4ICsyODksNyBAQCBzdHJ1Y3QgZHN0X2VudHJ5ICpmaWI2X3J1bGVfbG9va3Vw KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGZsb3dpNiAqZmw2LAogCXN0cnVjdCBydDZfaW5mbyAq cnQ7CiAKIAlydCA9IGxvb2t1cChuZXQsIG5ldC0+aXB2Ni5maWI2X21haW5fdGJsLCBmbDYsIGZs YWdzKTsKLQlpZiAocnQtPnJ0NmlfZmxhZ3MgJiBSVEZfUkVKRUNUICYmCi0JICAgIHJ0LT5kc3Qu ZXJyb3IgPT0gLUVBR0FJTikgeworCWlmIChydC0+ZHN0LmVycm9yID09IC1FQUdBSU4pIHsKIAkJ aXA2X3J0X3B1dChydCk7CiAJCXJ0ID0gbmV0LT5pcHY2LmlwNl9udWxsX2VudHJ5OwogCQlkc3Rf aG9sZCgmcnQtPmRzdCk7Ci0tIAoyLjQuMTEKCgpGcm9tIDk2MWRmZjJiYzc1ZGE2OTljMWI5MmVj OTU5NTg3Y2I2ZWQ4YzFiMDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNlcmhleSBQ b3BvdnljaCA8c2VyaGUucG9wb3Z5Y2hAZ21haWwuY29tPgpEYXRlOiBUdWUsIDIwIEp1biAyMDE3 IDE0OjM1OjIzICswMzAwClN1YmplY3Q6IFtQQVRDSCAyNC8yNF0gcnRuZXRsaW5rOiBhZGQgSUZM QV9HUk9VUCB0byBpZmxhX3BvbGljeQoKWyBVcHN0cmVhbSBjb21taXQgZGI4MzNkNDBhZDMyNjNi MmVlM2I1OWExYmExNjhiYjNjZmVkODEzNyBdCgpOZXR3b3JrIGludGVyZmFjZSBncm91cHMgc3Vw cG9ydCBhZGRlZCB3aGlsZSBhZ28sIGhvd2V2ZXIKdGhlcmUgaXMgbm8gSUZMQV9HUk9VUCBhdHRy aWJ1dGUgZGVzY3JpcHRpb24gaW4gcG9saWN5CmFuZCBuZXRsaW5rIG1lc3NhZ2Ugc2l6ZSBjYWxj dWxhdGlvbnMgdW50aWwgbm93LgoKQWRkIElGTEFfR1JPVVAgYXR0cmlidXRlIHRvIHRoZSBwb2xp Y3kuCgpGaXhlczogY2JkYTEwZmE5N2Q3ICgibmV0X2RldmljZTogYWRkIHN1cHBvcnQgZm9yIG5l dHdvcmsgZGV2aWNlIGdyb3VwcyIpClNpZ25lZC1vZmYtYnk6IFNlcmhleSBQb3BvdnljaCA8c2Vy aGUucG9wb3Z5Y2hAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvcnRuZXRsaW5rLmMgfCAyICsrCiAxIGZp bGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvcnRuZXRs aW5rLmMgYi9uZXQvY29yZS9ydG5ldGxpbmsuYwppbmRleCBkNTc0NDA5Li45YzZmZDdmIDEwMDY0 NAotLS0gYS9uZXQvY29yZS9ydG5ldGxpbmsuYworKysgYi9uZXQvY29yZS9ydG5ldGxpbmsuYwpA QCAtOTM3LDYgKzkzNyw3IEBAIHN0YXRpYyBub2lubGluZSBzaXplX3QgaWZfbmxtc2dfc2l6ZShj b25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCSAgICAgICArIG5sYV90b3RhbF9zaXplKDEp IC8qIElGTEFfTElOS01PREUgKi8KIAkgICAgICAgKyBubGFfdG90YWxfc2l6ZSg0KSAvKiBJRkxB X0NBUlJJRVJfQ0hBTkdFUyAqLwogCSAgICAgICArIG5sYV90b3RhbF9zaXplKDQpIC8qIElGTEFf TElOS19ORVROU0lEICovCisJICAgICAgICsgbmxhX3RvdGFsX3NpemUoNCkgLyogSUZMQV9HUk9V UCAqLwogCSAgICAgICArIG5sYV90b3RhbF9zaXplKGV4dF9maWx0ZXJfbWFzawogCQkJICAgICAg ICAmIFJURVhUX0ZJTFRFUl9WRiA/IDQgOiAwKSAvKiBJRkxBX05VTV9WRiAqLwogCSAgICAgICAr IHJ0bmxfdmZpbmZvX3NpemUoZGV2LCBleHRfZmlsdGVyX21hc2spIC8qIElGTEFfVkZJTkZPX0xJ U1QgKi8KQEAgLTE0NjUsNiArMTQ2Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGlj eSBpZmxhX3BvbGljeVtJRkxBX01BWCsxXSA9IHsKIAlbSUZMQV9MSU5LX05FVE5TSURdCT0geyAu dHlwZSA9IE5MQV9TMzIgfSwKIAlbSUZMQV9QUk9UT19ET1dOXQk9IHsgLnR5cGUgPSBOTEFfVTgg fSwKIAlbSUZMQV9YRFBdCQk9IHsgLnR5cGUgPSBOTEFfTkVTVEVEIH0sCisJW0lGTEFfR1JPVVBd CQk9IHsgLnR5cGUgPSBOTEFfVTMyIH0sCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9w b2xpY3kgaWZsYV9pbmZvX3BvbGljeVtJRkxBX0lORk9fTUFYKzFdID0gewotLSAKMi40LjExCgo= ----Next_Part(Thu_Jun_29_12_19_07_2017_387)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_411.mbox" RnJvbSA0YTM0NTg5YWU5MWViZDRjMzc0NjZhNDMyYjQ3MDJkM2M1MzUzODNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgUG90YXBlbmtvIDxnbGlkZXJAZ29vZ2xlLmNv bT4KRGF0ZTogVHVlLCA2IEp1biAyMDE3IDE1OjU2OjU0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAw MS8zMl0gbmV0OiBkb24ndCBjYWxsIHN0cmxlbiBvbiBub24tdGVybWluYXRlZCBzdHJpbmcgaW4K IGRldl9zZXRfYWxpYXMoKQoKWyBVcHN0cmVhbSBjb21taXQgYzI4Mjk0Yjk0MTIzMjkzMWZiZDcx NDA5OTc5OGViN2FhN2U4NjVkNyBdCgpLTVNBTiByZXBvcnRlZCBhIHVzZSBvZiB1bmluaXRpYWxp emVkIG1lbW9yeSBpbiBkZXZfc2V0X2FsaWFzKCksCndoaWNoIHdhcyBjYXVzZWQgYnkgY2FsbGlu ZyBzdHJsY3B5KCkgKHdoaWNoIGluIHR1cm4gY2FsbGVkIHN0cmxlbigpKQpvbiB0aGUgdXNlci1z dXBwbGllZCBub24tdGVybWluYXRlZCBzdHJpbmcuCgpTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIg UG90YXBlbmtvIDxnbGlkZXJAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL2Rldi5jIHwgMyArKy0KIDEg ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9uZXQvY29yZS9kZXYuYyBiL25ldC9jb3JlL2Rldi5jCmluZGV4IDliNTg3NTMuLjg1YzYyNmIg MTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Rldi5jCisrKyBiL25ldC9jb3JlL2Rldi5jCkBAIC0xMjUx LDggKzEyNTEsOSBAQCBpbnQgZGV2X3NldF9hbGlhcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBj b25zdCBjaGFyICphbGlhcywgc2l6ZV90IGxlbikKIAlpZiAoIW5ld19pZmFsaWFzKQogCQlyZXR1 cm4gLUVOT01FTTsKIAlkZXYtPmlmYWxpYXMgPSBuZXdfaWZhbGlhczsKKwltZW1jcHkoZGV2LT5p ZmFsaWFzLCBhbGlhcywgbGVuKTsKKwlkZXYtPmlmYWxpYXNbbGVuXSA9IDA7CiAKLQlzdHJsY3B5 KGRldi0+aWZhbGlhcywgYWxpYXMsIGxlbisxKTsKIAlyZXR1cm4gbGVuOwogfQogCi0tIAoyLjQu MTEKCgpGcm9tIDU0YzcyOWVjNzJhMmVlM2Q0NDdmYjkyNGUzMzU0MTM5ZTRmMjAwZGQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206ICJEYXZpZCBTLiBNaWxsZXIiIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgpEYXRlOiBNb24sIDggTWF5IDIwMTcgMTI6NTI6NTYgLTA0MDAKU3ViamVjdDogW1BB VENIIDAyLzMyXSBuZXQ6IEZpeCBpbmNvbnNpc3RlbnQgdGVhcmRvd24gYW5kIHJlbGVhc2Ugb2Yg cHJpdmF0ZQogbmV0ZGV2IHN0YXRlLgoKWyBVcHN0cmVhbSBjb21taXQgY2YxMjRkYjU2NmU2YjAz NmI4YmNiZThkZWNiZWQ3NDBiZGZhYzhjNiBdCgpOZXR3b3JrIGRldmljZXMgY2FuIGFsbG9jYXRl IHJlYXNvdXJjZXMgYW5kIHByaXZhdGUgbWVtb3J5IHVzaW5nCm5ldGRldl9vcHMtPm5kb19pbml0 KCkuICBIb3dldmVyLCB0aGUgcmVsZWFzZSBvZiB0aGVzZSByZXNvdXJjZXMKY2FuIG9jY3VyIGlu IG9uZSBvZiB0d28gZGlmZmVyZW50IHBsYWNlcy4KCkVpdGhlciBuZXRkZXZfb3BzLT5uZG9fdW5p bml0KCkgb3IgbmV0ZGV2LT5kZXN0cnVjdG9yKCkuCgpUaGUgZGVjaXNpb24gb2Ygd2hpY2ggb3Bl cmF0aW9uIGZyZWVzIHRoZSByZXNvdXJjZXMgZGVwZW5kcyB1cG9uCndoZXRoZXIgaXQgaXMgbmVj ZXNzYXJ5IGZvciBhbGwgbmV0ZGV2IHJlZnMgdG8gYmUgcmVsZWFzZWQgYmVmb3JlIGl0CmlzIHNh ZmUgdG8gcGVyZm9ybSB0aGUgZnJlZWluZy4KCm5ldGRldl9vcHMtPm5kb191bmluaXQoKSBwcmVz dW1hYmx5IGNhbiBvY2N1ciByaWdodCBhZnRlciB0aGUKTkVUREVWX1VOUkVHSVNURVIgbm90aWZp ZXIgY29tcGxldGVzIGFuZCB0aGUgdW5pY2FzdCBhbmQgbXVsdGljYXN0CmFkZHJlc3MgbGlzdHMg YXJlIGZsdXNoZWQuCgpuZXRkZXYtPmRlc3RydWN0b3IoKSwgb24gdGhlIG90aGVyIGhhbmQsIGRv ZXMgbm90IHJ1biB1bnRpbCB0aGUKbmV0ZGV2IHJlZmVyZW5jZXMgYWxsIGdvIGF3YXkuCgpGdXJ0 aGVyIGNvbXBsaWNhdGluZyB0aGUgc2l0dWF0aW9uIGlzIHRoYXQgbmV0ZGV2LT5kZXN0cnVjdG9y KCkKYWxtb3N0IHVuaXZlcnNhbGx5IGRvZXMgYWxzbyBhIGZyZWVfbmV0ZGV2KCkuCgpUaGlzIGNy ZWF0ZXMgYSBwcm9ibGVtIGZvciB0aGUgbG9naWMgaW4gcmVnaXN0ZXJfbmV0ZGV2aWNlKCkuCkJl Y2F1c2UgYWxsIGNhbGxlcnMgb2YgcmVnaXN0ZXJfbmV0ZGV2aWNlKCkgbWFuYWdlIHRoZSBmcmVl aW5nCm9mIHRoZSBuZXRkZXYsIGFuZCBpbnZva2UgZnJlZV9uZXRkZXYoZGV2KSBpZiByZWdpc3Rl cl9uZXRkZXZpY2UoKQpmYWlscy4KCklmIG5ldGRldl9vcHMtPm5kb19pbml0KCkgc3VjY2VlZHMs IGJ1dCBzb21ldGhpbmcgZWxzZSBmYWlscyBpbnNpZGUKb2YgcmVnaXN0ZXJfbmV0ZGV2aWNlKCks IGl0IGRvZXMgY2FsbCBuZG9fb3BzLT5uZG9fdW5pbml0KCkuICBCdXQKaXQgaXMgbm90IGFibGUg dG8gaW52b2tlIG5ldGRldi0+ZGVzdHJ1Y3RvcigpLgoKVGhpcyBpcyBiZWNhdXNlIG5ldGRldi0+ ZGVzdHJ1Y3RvcigpIHdpbGwgZG8gYSBmcmVlX25ldGRldigpIGFuZAp0aGVuIHRoZSBjYWxsZXIg b2YgcmVnaXN0ZXJfbmV0ZGV2aWNlKCkgd2lsbCBkbyB0aGUgc2FtZS4KCkhvd2V2ZXIsIHRoaXMg bWVhbnMgdGhhdCB0aGUgcmVzb3VyY2VzIHRoYXQgd291bGQgbm9ybWFsbHkgYmUgcmVsZWFzZWQK YnkgbmV0ZGV2LT5kZXN0cnVjdG9yKCkgd2lsbCBub3QgYmUuCgpPdmVyIHRoZSB5ZWFycyBkcml2 ZXJzIGhhdmUgYWRkZWQgbG9jYWwgaGFja3MgdG8gZGVhbCB3aXRoIHRoaXMsIGJ5Cmludm9raW5n IHRoZWlyIGRlc3RydWN0b3IgcGFydHMgYnkgaGFuZCB3aGVuIHJlZ2lzdGVyX25ldGRldmljZSgp CmZhaWxzLgoKTWFueSBkcml2ZXJzIGRvIG5vdCB0cnkgdG8gZGVhbCB3aXRoIHRoaXMsIGFuZCBp bnN0ZWFkIHdlIGhhdmUgbGVha3MuCgpMZXQncyBjbG9zZSB0aGlzIGhvbGUgYnkgZm9ybWFsaXpp bmcgdGhlIGRpc3RpbmN0aW9uIGJldHdlZW4gd2hhdApwcml2YXRlIHRoaW5ncyBuZWVkIHRvIGJl IGZyZWVkIHVwIGJ5IG5ldGRldi0+ZGVzdHJ1Y3RvcigpIGFuZCB3aGV0aGVyCnRoZSBkcml2ZXIg bmVlZHMgdW5yZWdpc3Rlcl9uZXRkZXZpY2UoKSB0byBwZXJmb3JtIHRoZSBmcmVlX25ldGRldigp LgoKbmV0ZGV2LT5wcml2X2Rlc3RydWN0b3IoKSBwZXJmb3JtcyBhbGwgYWN0aW9ucyB0byBmcmVl IHVwIHRoZSBwcml2YXRlCnJlc291cmNlcyB0aGF0IHVzZWQgdG8gYmUgZnJlZWQgYnkgbmV0ZGV2 LT5kZXN0cnVjdG9yKCksIGV4Y2VwdCBmb3IKZnJlZV9uZXRkZXYoKS4KCm5ldGRldi0+bmVlZHNf ZnJlZV9uZXRkZXYgaXMgYSBib29sZWFuIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIKZnJlZV9uZXRk ZXYoKSBzaG91bGQgYmUgZG9uZSBhdCB0aGUgZW5kIG9mIHVucmVnaXN0ZXJfbmV0ZGV2aWNlKCku CgpOb3csIHJlZ2lzdGVyX25ldGRldmljZSgpIGNhbiBzYW5lbHkgcmVsZWFzZSBhbGwgcmVzb3Vy Y2VzIGFmdGVyCm5kb19vcHMtPm5kb19pbml0KCkgc3VjY2VlZHMsIGJ5IGludm9raW5nIGJvdGgg bmRvX29wcy0+bmRvX3VuaW5pdCgpCmFuZCBuZXRkZXYtPnByaXZfZGVzdHJ1Y3RvcigpLgoKQW5k IGF0IHRoZSBlbmQgb2YgdW5yZWdpc3Rlcl9uZXRkZXZpY2UoKSwgd2UgaW52b2tlCm5ldGRldi0+ cHJpdl9kZXN0cnVjdG9yKCkgYW5kIG9wdGlvbmFsbHkgY2FsbCBmcmVlX25ldGRldigpLgoKU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgNiArKystLS0KIGRyaXZlcnMvbmV0L2NhaWYvY2FpZl9oc2kuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy9uZXQvY2FpZi9jYWlmX3NlcmlhbC5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL25ldC9jYWlmL2NhaWZf c3BpLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMvbmV0 L2NhaWYvY2FpZl92aXJ0aW8uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQog ZHJpdmVycy9uZXQvY2FuL3NsY2FuLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCA3ICsrKy0tLS0KIGRyaXZlcnMvbmV0L2Nhbi92Y2FuLmMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy9uZXQvZHVtbXkuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0ICsrLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfbWFpbi5jICAgICAgICAgICAgIHwgMiArLQogZHJpdmVy cy9uZXQvZ2VuZXZlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAy ICstCiBkcml2ZXJzL25ldC9ndHAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDIgKy0KIGRyaXZlcnMvbmV0L2hhbXJhZGlvLzZwYWNrLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy9uZXQvaGFtcmFkaW8vYnBxZXRoZXIu YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL25ldC9pZmIuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQgKystLQogZHJpdmVy cy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAy ICstCiBkcml2ZXJzL25ldC9sb29wYmFjay5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDQgKystLQogZHJpdmVycy9uZXQvbWFjc2VjLmMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCA0ICsrLS0KIGRyaXZlcnMvbmV0L21hY3ZsYW4uYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy9uZXQvbmxt b24uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2 ZXJzL25ldC9zbGlwL3NsaXAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDcgKysrLS0tLQogZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCA0ICsrLS0KIGRyaXZlcnMvbmV0L3R1bi5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNCArKy0tCiBkcml2ZXJzL25ldC91c2IvY2Rj LXBob25ldC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMv bmV0L3ZldGguYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNCAr Ky0tCiBkcml2ZXJzL25ldC92cmYuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDIgKy0KIGRyaXZlcnMvbmV0L3Z4bGFuLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgMiArLQogZHJpdmVycy9uZXQvd2FuL2RsY2kuYyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL25ldC93YW4vaGRs Y19mci5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGRyaXZlcnMv bmV0L3dhbi9sYXBiZXRoZXIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiAr LQogZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmMgICAgICAgICAgICAgICAg ICAgICAgfCAyICstCiBkcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNtODAyMTEvYnJj bWZtYWMvY2ZnODAyMTEuYyB8IDEgLQogZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJj bTgwMjExL2JyY21mbWFjL2NvcmUuYyAgICAgfCAzICsrLQogZHJpdmVycy9uZXQvd2lyZWxlc3Mv aW50ZXJzaWwvaG9zdGFwL2hvc3RhcF9tYWluLmMgICAgICAgICAgfCAyICstCiBkcml2ZXJzL25l dC93aXJlbGVzcy9tYWM4MDIxMV9od3NpbS5jICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0K IGRyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmMgICAgICAgICAgICAg ICAgIHwgMiArLQogZHJpdmVycy9zdGFnaW5nL3J0bDgxODhldS9vc19kZXAvbW9uLmMgICAgICAg ICAgICAgICAgICAgICAgfCAyICstCiBkcml2ZXJzL3VzYi9nYWRnZXQvZnVuY3Rpb24vZl9waG9u ZXQuYyAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIGluY2x1ZGUvbGludXgvbmV0ZGV2aWNl LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNyArKysrLS0tCiBuZXQvODAy MXEvdmxhbl9kZXYuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQg KystLQogbmV0L2JhdG1hbi1hZHYvc29mdC1pbnRlcmZhY2UuYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCA1ICsrLS0tCiBuZXQvYmx1ZXRvb3RoLzZsb3dwYW4uYyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIG5ldC9icmlkZ2UvYnJfZGV2aWNlLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQogbmV0L2NhaWYvY2hubF9u ZXQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0ICsrLS0KIG5l dC9jb3JlL2Rldi5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgOCArKysrKystLQogbmV0L2hzci9oc3JfZGV2aWNlLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCA0ICsrLS0KIG5ldC9pZWVlODAyMTU0LzZsb3dwYW4vY29yZS5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQogbmV0L2lwdjQvaXBfdHVubmVs LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0ICsrLS0KIG5ldC9p cHY0L2lwbXIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg MiArLQogbmV0L2lwdjYvaXA2X2dyZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCA5ICsrKysrLS0tLQogbmV0L2lwdjYvaXA2X3R1bm5lbC5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4ICsrKystLS0tCiBuZXQvaXB2Ni9pcDZfdnRp LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDggKysrKy0tLS0K IG5ldC9pcHY2L2lwNm1yLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMiArLQogbmV0L2lwdjYvc2l0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCA2ICsrKy0tLQogbmV0L2lyZGEvaXJsYW4vaXJsYW5fZXRoLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCiBuZXQvbDJ0cC9sMnRwX2V0aC5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KIG5ldC9tYWM4 MDIxMS9pZmFjZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNiAr KystLS0KIG5ldC9tYWM4MDIxNTQvaWZhY2UuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgNyArKystLS0tCiBuZXQvb3BlbnZzd2l0Y2gvdnBvcnQtaW50ZXJuYWxfZGV2 LmMgICAgICAgICAgICAgICAgICAgICAgICB8IDQgKystLQogbmV0L3Bob25ldC9wZXAtZ3Bycy5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCiA1OSBmaWxlcyBj aGFuZ2VkLCAxMDIgaW5zZXJ0aW9ucygrKSwgMTAwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMgYi9kcml2ZXJzL25ldC9ib25kaW5nL2Jv bmRfbWFpbi5jCmluZGV4IDM0NDgxYzkuLjZkODAwNjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2JvbmRpbmcvYm9uZF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4u YwpAQCAtNDE2Myw3ICs0MTYzLDYgQEAgc3RhdGljIHZvaWQgYm9uZF9kZXN0cnVjdG9yKHN0cnVj dCBuZXRfZGV2aWNlICpib25kX2RldikKIAlzdHJ1Y3QgYm9uZGluZyAqYm9uZCA9IG5ldGRldl9w cml2KGJvbmRfZGV2KTsKIAlpZiAoYm9uZC0+d3EpCiAJCWRlc3Ryb3lfd29ya3F1ZXVlKGJvbmQt PndxKTsKLQlmcmVlX25ldGRldihib25kX2Rldik7CiB9CiAKIHZvaWQgYm9uZF9zZXR1cChzdHJ1 Y3QgbmV0X2RldmljZSAqYm9uZF9kZXYpCkBAIC00MTgzLDcgKzQxODIsOCBAQCB2b2lkIGJvbmRf c2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmJvbmRfZGV2KQogCWJvbmRfZGV2LT5uZXRkZXZfb3Bz ID0gJmJvbmRfbmV0ZGV2X29wczsKIAlib25kX2Rldi0+ZXRodG9vbF9vcHMgPSAmYm9uZF9ldGh0 b29sX29wczsKIAotCWJvbmRfZGV2LT5kZXN0cnVjdG9yID0gYm9uZF9kZXN0cnVjdG9yOworCWJv bmRfZGV2LT5uZWVkc19mcmVlX25ldGRldiA9IHRydWU7CisJYm9uZF9kZXYtPnByaXZfZGVzdHJ1 Y3RvciA9IGJvbmRfZGVzdHJ1Y3RvcjsKIAogCVNFVF9ORVRERVZfREVWVFlQRShib25kX2Rldiwg JmJvbmRfdHlwZSk7CiAKQEAgLTQ2ODksNyArNDY4OSw3IEBAIGludCBib25kX2NyZWF0ZShzdHJ1 Y3QgbmV0ICpuZXQsIGNvbnN0IGNoYXIgKm5hbWUpCiAKIAlydG5sX3VubG9jaygpOwogCWlmIChy ZXMgPCAwKQotCQlib25kX2Rlc3RydWN0b3IoYm9uZF9kZXYpOworCQlmcmVlX25ldGRldihib25k X2Rldik7CiAJcmV0dXJuIHJlczsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FpZi9j YWlmX2hzaS5jIGIvZHJpdmVycy9uZXQvY2FpZi9jYWlmX2hzaS5jCmluZGV4IGRkYWJjZTcuLjcx YTdjM2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2NhaWYvY2FpZl9oc2kuYworKysgYi9kcml2 ZXJzL25ldC9jYWlmL2NhaWZfaHNpLmMKQEAgLTExMjEsNyArMTEyMSw3IEBAIHN0YXRpYyB2b2lk IGNmaHNpX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJZGV2LT5mbGFncyA9IElGRl9Q T0lOVE9QT0lOVCB8IElGRl9OT0FSUDsKIAlkZXYtPm10dSA9IENGSFNJX01BWF9DQUlGX0ZSQU1F X1NaOwogCWRldi0+cHJpdl9mbGFncyB8PSBJRkZfTk9fUVVFVUU7Ci0JZGV2LT5kZXN0cnVjdG9y ID0gZnJlZV9uZXRkZXY7CisJZGV2LT5uZWVkc19mcmVlX25ldGRldiA9IHRydWU7CiAJZGV2LT5u ZXRkZXZfb3BzID0gJmNmaHNpX25ldGRldm9wczsKIAlmb3IgKGkgPSAwOyBpIDwgQ0ZIU0lfUFJJ T19MQVNUOyArK2kpCiAJCXNrYl9xdWV1ZV9oZWFkX2luaXQoJmNmaHNpLT5xaGVhZFtpXSk7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9jYWlmL2NhaWZfc2VyaWFsLmMgYi9kcml2ZXJzL25ldC9j YWlmL2NhaWZfc2VyaWFsLmMKaW5kZXggYzJkZWE0OS4uNzZlMWQzNSAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvY2FpZi9jYWlmX3NlcmlhbC5jCisrKyBiL2RyaXZlcnMvbmV0L2NhaWYvY2FpZl9z ZXJpYWwuYwpAQCAtNDI4LDcgKzQyOCw3IEBAIHN0YXRpYyB2b2lkIGNhaWZkZXZfc2V0dXAoc3Ry dWN0IG5ldF9kZXZpY2UgKmRldikKIAlkZXYtPmZsYWdzID0gSUZGX1BPSU5UT1BPSU5UIHwgSUZG X05PQVJQOwogCWRldi0+bXR1ID0gQ0FJRl9NQVhfTVRVOwogCWRldi0+cHJpdl9mbGFncyB8PSBJ RkZfTk9fUVVFVUU7Ci0JZGV2LT5kZXN0cnVjdG9yID0gZnJlZV9uZXRkZXY7CisJZGV2LT5uZWVk c19mcmVlX25ldGRldiA9IHRydWU7CiAJc2tiX3F1ZXVlX2hlYWRfaW5pdCgmc2VyZGV2LT5oZWFk KTsKIAlzZXJkZXYtPmNvbW1vbi5saW5rX3NlbGVjdCA9IENBSUZfTElOS19MT1dfTEFURU5DWTsK IAlzZXJkZXYtPmNvbW1vbi51c2VfZnJhZyA9IHRydWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9jYWlmL2NhaWZfc3BpLmMgYi9kcml2ZXJzL25ldC9jYWlmL2NhaWZfc3BpLmMKaW5kZXggM2E1 MjlmYi4uZmMyMWFmZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvY2FpZi9jYWlmX3NwaS5jCisr KyBiL2RyaXZlcnMvbmV0L2NhaWYvY2FpZl9zcGkuYwpAQCAtNzEyLDcgKzcxMiw3IEBAIHN0YXRp YyB2b2lkIGNmc3BpX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJZGV2LT5mbGFncyA9 IElGRl9OT0FSUCB8IElGRl9QT0lOVE9QT0lOVDsKIAlkZXYtPnByaXZfZmxhZ3MgfD0gSUZGX05P X1FVRVVFOwogCWRldi0+bXR1ID0gU1BJX01BWF9QQVlMT0FEX1NJWkU7Ci0JZGV2LT5kZXN0cnVj dG9yID0gZnJlZV9uZXRkZXY7CisJZGV2LT5uZWVkc19mcmVlX25ldGRldiA9IHRydWU7CiAJc2ti X3F1ZXVlX2hlYWRfaW5pdCgmY2ZzcGktPnFoZWFkKTsKIAlza2JfcXVldWVfaGVhZF9pbml0KCZj ZnNwaS0+Y2hlYWQpOwogCWNmc3BpLT5jZmRldi5saW5rX3NlbGVjdCA9IENBSUZfTElOS19ISUdI X0JBTkRXOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FpZi9jYWlmX3ZpcnRpby5jIGIvZHJp dmVycy9uZXQvY2FpZi9jYWlmX3ZpcnRpby5jCmluZGV4IGJjMGViNDcuLjhiZmZkMjUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2NhaWYvY2FpZl92aXJ0aW8uYworKysgYi9kcml2ZXJzL25ldC9j YWlmL2NhaWZfdmlydGlvLmMKQEAgLTYxNyw3ICs2MTcsNyBAQCBzdGF0aWMgdm9pZCBjZnZfbmV0 ZGV2X3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAJbmV0ZGV2LT50eF9xdWV1ZV9s ZW4gPSAxMDA7CiAJbmV0ZGV2LT5mbGFncyA9IElGRl9QT0lOVE9QT0lOVCB8IElGRl9OT0FSUDsK IAluZXRkZXYtPm10dSA9IENGVl9ERUZfTVRVX1NJWkU7Ci0JbmV0ZGV2LT5kZXN0cnVjdG9yID0g ZnJlZV9uZXRkZXY7CisJbmV0ZGV2LT5uZWVkc19mcmVlX25ldGRldiA9IHRydWU7CiB9CiAKIC8q IENyZWF0ZSBkZWJ1Z2ZzIGNvdW50ZXJzIGZvciB0aGUgZGV2aWNlICovCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9jYW4vc2xjYW4uYyBiL2RyaXZlcnMvbmV0L2Nhbi9zbGNhbi5jCmluZGV4IGVi NzE3MzcuLjZhNmU4OTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2Nhbi9zbGNhbi5jCisrKyBi L2RyaXZlcnMvbmV0L2Nhbi9zbGNhbi5jCkBAIC00MTcsNyArNDE3LDcgQEAgc3RhdGljIGludCBz bGNfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogc3RhdGljIHZvaWQgc2xjX2ZyZWVfbmV0 ZGV2KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CiAJaW50IGkgPSBkZXYtPmJhc2VfYWRkcjsK LQlmcmVlX25ldGRldihkZXYpOworCiAJc2xjYW5fZGV2c1tpXSA9IE5VTEw7CiB9CiAKQEAgLTQz Niw3ICs0MzYsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHNsY19uZXRk ZXZfb3BzID0gewogc3RhdGljIHZvaWQgc2xjX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYp CiB7CiAJZGV2LT5uZXRkZXZfb3BzCQk9ICZzbGNfbmV0ZGV2X29wczsKLQlkZXYtPmRlc3RydWN0 b3IJCT0gc2xjX2ZyZWVfbmV0ZGV2OworCWRldi0+bmVlZHNfZnJlZV9uZXRkZXYJPSB0cnVlOwor CWRldi0+cHJpdl9kZXN0cnVjdG9yCT0gc2xjX2ZyZWVfbmV0ZGV2OwogCiAJZGV2LT5oYXJkX2hl YWRlcl9sZW4JPSAwOwogCWRldi0+YWRkcl9sZW4JCT0gMDsKQEAgLTc2MSw4ICs3NjIsNiBAQCBz dGF0aWMgdm9pZCBfX2V4aXQgc2xjYW5fZXhpdCh2b2lkKQogCQlpZiAoc2wtPnR0eSkgewogCQkJ cHJpbnRrKEtFUk5fRVJSICIlczogdHR5IGRpc2NpcGxpbmUgc3RpbGwgcnVubmluZ1xuIiwKIAkJ CSAgICAgICBkZXYtPm5hbWUpOwotCQkJLyogSW50ZW50aW9uYWxseSBsZWFrIHRoZSBjb250cm9s IGJsb2NrLiAqLwotCQkJZGV2LT5kZXN0cnVjdG9yID0gTlVMTDsKIAkJfQogCiAJCXVucmVnaXN0 ZXJfbmV0ZGV2KGRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9jYW4vdmNhbi5jIGIvZHJp dmVycy9uZXQvY2FuL3ZjYW4uYwppbmRleCA2NzRmMzY3Li4yNWQxMjA5IDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9jYW4vdmNhbi5jCisrKyBiL2RyaXZlcnMvbmV0L2Nhbi92Y2FuLmMKQEAgLTE2 MCw3ICsxNjAsNyBAQCBzdGF0aWMgdm9pZCB2Y2FuX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYpCiAJCWRldi0+ZmxhZ3MgfD0gSUZGX0VDSE87CiAKIAlkZXYtPm5ldGRldl9vcHMJCT0gJnZj YW5fbmV0ZGV2X29wczsKLQlkZXYtPmRlc3RydWN0b3IJCT0gZnJlZV9uZXRkZXY7CisJZGV2LT5u ZWVkc19mcmVlX25ldGRldgk9IHRydWU7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgcnRubF9saW5rX29w cyB2Y2FuX2xpbmtfb3BzIF9fcmVhZF9tb3N0bHkgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9kdW1teS5jIGIvZHJpdmVycy9uZXQvZHVtbXkuYwppbmRleCAyYzgwNjExLi5iNjZmYmU1IDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9kdW1teS5jCisrKyBiL2RyaXZlcnMvbmV0L2R1bW15LmMK QEAgLTMxMyw3ICszMTMsNiBAQCBzdGF0aWMgdm9pZCBkdW1teV9mcmVlX25ldGRldihzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2KQogCXN0cnVjdCBkdW1teV9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYo ZGV2KTsKIAogCWtmcmVlKHByaXYtPnZmaW5mbyk7Ci0JZnJlZV9uZXRkZXYoZGV2KTsKIH0KIAog c3RhdGljIHZvaWQgZHVtbXlfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKQEAgLTMyMyw3 ICszMjIsOCBAQCBzdGF0aWMgdm9pZCBkdW1teV9zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 KQogCS8qIEluaXRpYWxpemUgdGhlIGRldmljZSBzdHJ1Y3R1cmUuICovCiAJZGV2LT5uZXRkZXZf b3BzID0gJmR1bW15X25ldGRldl9vcHM7CiAJZGV2LT5ldGh0b29sX29wcyA9ICZkdW1teV9ldGh0 b29sX29wczsKLQlkZXYtPmRlc3RydWN0b3IgPSBkdW1teV9mcmVlX25ldGRldjsKKwlkZXYtPm5l ZWRzX2ZyZWVfbmV0ZGV2ID0gdHJ1ZTsKKwlkZXYtPnByaXZfZGVzdHJ1Y3RvciA9IGR1bW15X2Zy ZWVfbmV0ZGV2OwogCiAJLyogRmlsbCBpbiBkZXZpY2Ugc3RydWN0dXJlIHdpdGggZXRoZXJuZXQt Z2VuZXJpYyB2YWx1ZXMuICovCiAJZGV2LT5mbGFncyB8PSBJRkZfTk9BUlA7CmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X21haW4uYyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfbWFpbi5jCmluZGV4IDAxMjE5NGIu LjZlOWY4MmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQv Y3hnYjRfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hn YjRfbWFpbi5jCkBAIC00NTI4LDcgKzQ1MjgsNyBAQCBzdGF0aWMgdm9pZCBkdW1teV9zZXR1cChz dHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCS8qIEluaXRpYWxpemUgdGhlIGRldmljZSBzdHJ1Y3R1 cmUuICovCiAJZGV2LT5uZXRkZXZfb3BzID0gJmN4Z2I0X21nbXRfbmV0ZGV2X29wczsKIAlkZXYt PmV0aHRvb2xfb3BzID0gJmN4Z2I0X21nbXRfZXRodG9vbF9vcHM7Ci0JZGV2LT5kZXN0cnVjdG9y ID0gZnJlZV9uZXRkZXY7CisJZGV2LT5uZWVkc19mcmVlX25ldGRldiA9IHRydWU7CiB9CiAKIHN0 YXRpYyBpbnQgY29uZmlnX21nbXRfZGV2KHN0cnVjdCBwY2lfZGV2ICpwZGV2KQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZ2VuZXZlLmMgYi9kcml2ZXJzL25ldC9nZW5ldmUuYwppbmRleCA2ZWJi MGY1Li4xOTk0NTliIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9nZW5ldmUuYworKysgYi9kcml2 ZXJzL25ldC9nZW5ldmUuYwpAQCAtMTAwNyw3ICsxMDA3LDcgQEAgc3RhdGljIHZvaWQgZ2VuZXZl X3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAKIAlkZXYtPm5ldGRldl9vcHMgPSAmZ2Vu ZXZlX25ldGRldl9vcHM7CiAJZGV2LT5ldGh0b29sX29wcyA9ICZnZW5ldmVfZXRodG9vbF9vcHM7 Ci0JZGV2LT5kZXN0cnVjdG9yID0gZnJlZV9uZXRkZXY7CisJZGV2LT5uZWVkc19mcmVlX25ldGRl diA9IHRydWU7CiAKIAlTRVRfTkVUREVWX0RFVlRZUEUoZGV2LCAmZ2VuZXZlX3R5cGUpOwogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ndHAuYyBiL2RyaXZlcnMvbmV0L2d0cC5jCmluZGV4IDg5 Njk4NzQuLjQyOTM4NzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2d0cC5jCisrKyBiL2RyaXZl cnMvbmV0L2d0cC5jCkBAIC02MTgsNyArNjE4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRf ZGV2aWNlX29wcyBndHBfbmV0ZGV2X29wcyA9IHsKIHN0YXRpYyB2b2lkIGd0cF9saW5rX3NldHVw KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CiAJZGV2LT5uZXRkZXZfb3BzCQk9ICZndHBfbmV0 ZGV2X29wczsKLQlkZXYtPmRlc3RydWN0b3IJCT0gZnJlZV9uZXRkZXY7CisJZGV2LT5uZWVkc19m cmVlX25ldGRldgk9IHRydWU7CiAKIAlkZXYtPmhhcmRfaGVhZGVyX2xlbiA9IDA7CiAJZGV2LT5h ZGRyX2xlbiA9IDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9oYW1yYWRpby82cGFjay5jIGIv ZHJpdmVycy9uZXQvaGFtcmFkaW8vNnBhY2suYwppbmRleCA5MjJiZjQ0Li4wMjFhOGVjIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9oYW1yYWRpby82cGFjay5jCisrKyBiL2RyaXZlcnMvbmV0L2hh bXJhZGlvLzZwYWNrLmMKQEAgLTMxMSw3ICszMTEsNyBAQCBzdGF0aWMgdm9pZCBzcF9zZXR1cChz dHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCS8qIEZpbmlzaCBzZXR0aW5nIHVwIHRoZSBERVZJ Q0UgaW5mby4gKi8KIAlkZXYtPm5ldGRldl9vcHMJCT0gJnNwX25ldGRldl9vcHM7Ci0JZGV2LT5k ZXN0cnVjdG9yCQk9IGZyZWVfbmV0ZGV2OworCWRldi0+bmVlZHNfZnJlZV9uZXRkZXYJPSB0cnVl OwogCWRldi0+bXR1CQk9IFNJWFBfTVRVOwogCWRldi0+aGFyZF9oZWFkZXJfbGVuCT0gQVgyNV9N QVhfSEVBREVSX0xFTjsKIAlkZXYtPmhlYWRlcl9vcHMgCT0gJmF4MjVfaGVhZGVyX29wczsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2hhbXJhZGlvL2JwcWV0aGVyLmMgYi9kcml2ZXJzL25ldC9o YW1yYWRpby9icHFldGhlci5jCmluZGV4IGY2MmU3ZjMuLjc4YTY0MTQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2hhbXJhZGlvL2JwcWV0aGVyLmMKKysrIGIvZHJpdmVycy9uZXQvaGFtcmFkaW8v YnBxZXRoZXIuYwpAQCAtNDc2LDcgKzQ3Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2Rl dmljZV9vcHMgYnBxX25ldGRldl9vcHMgPSB7CiBzdGF0aWMgdm9pZCBicHFfc2V0dXAoc3RydWN0 IG5ldF9kZXZpY2UgKmRldikKIHsKIAlkZXYtPm5ldGRldl9vcHMJICAgICA9ICZicHFfbmV0ZGV2 X29wczsKLQlkZXYtPmRlc3RydWN0b3IJICAgICA9IGZyZWVfbmV0ZGV2OworCWRldi0+bmVlZHNf ZnJlZV9uZXRkZXYgPSB0cnVlOwogCiAJbWVtY3B5KGRldi0+YnJvYWRjYXN0LCAmYXgyNV9iY2Fz dCwgQVgyNV9BRERSX0xFTik7CiAJbWVtY3B5KGRldi0+ZGV2X2FkZHIsICAmYXgyNV9kZWZhZGRy LCBBWDI1X0FERFJfTEVOKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lmYi5jIGIvZHJpdmVy cy9uZXQvaWZiLmMKaW5kZXggMzEyZmNlNy4uMTQ0ZWE1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvaWZiLmMKKysrIGIvZHJpdmVycy9uZXQvaWZiLmMKQEAgLTIwNyw3ICsyMDcsNiBAQCBzdGF0 aWMgdm9pZCBpZmJfZGV2X2ZyZWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkJX19za2JfcXVl dWVfcHVyZ2UoJnR4cC0+dHEpOwogCX0KIAlrZnJlZShkcC0+dHhfcHJpdmF0ZSk7Ci0JZnJlZV9u ZXRkZXYoZGV2KTsKIH0KIAogc3RhdGljIHZvaWQgaWZiX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYpCkBAIC0yMzAsNyArMjI5LDggQEAgc3RhdGljIHZvaWQgaWZiX3NldHVwKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYpCiAJZGV2LT5wcml2X2ZsYWdzICY9IH5JRkZfVFhfU0tCX1NIQVJJTkc7 CiAJbmV0aWZfa2VlcF9kc3QoZGV2KTsKIAlldGhfaHdfYWRkcl9yYW5kb20oZGV2KTsKLQlkZXYt PmRlc3RydWN0b3IgPSBpZmJfZGV2X2ZyZWU7CisJZGV2LT5uZWVkc19mcmVlX25ldGRldiA9IHRy dWU7CisJZGV2LT5wcml2X2Rlc3RydWN0b3IgPSBpZmJfZGV2X2ZyZWU7CiB9CiAKIHN0YXRpYyBu ZXRkZXZfdHhfdCBpZmJfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMgYi9k cml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYwppbmRleCBhYTg1NzVjLi40OGU2YzRlIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYworKysgYi9kcml2ZXJz L25ldC9pcHZsYW4vaXB2bGFuX21haW4uYwpAQCAtNjIxLDcgKzYyMSw3IEBAIHZvaWQgaXB2bGFu X2xpbmtfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlkZXYtPnByaXZfZmxhZ3MgJj0g fihJRkZfWE1JVF9EU1RfUkVMRUFTRSB8IElGRl9UWF9TS0JfU0hBUklORyk7CiAJZGV2LT5wcml2 X2ZsYWdzIHw9IElGRl9VTklDQVNUX0ZMVCB8IElGRl9OT19RVUVVRTsKIAlkZXYtPm5ldGRldl9v cHMgPSAmaXB2bGFuX25ldGRldl9vcHM7Ci0JZGV2LT5kZXN0cnVjdG9yID0gZnJlZV9uZXRkZXY7 CisJZGV2LT5uZWVkc19mcmVlX25ldGRldiA9IHRydWU7CiAJZGV2LT5oZWFkZXJfb3BzID0gJmlw dmxhbl9oZWFkZXJfb3BzOwogCWRldi0+ZXRodG9vbF9vcHMgPSAmaXB2bGFuX2V0aHRvb2xfb3Bz OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbG9vcGJhY2suYyBiL2RyaXZlcnMvbmV0L2xv b3BiYWNrLmMKaW5kZXggYjIzYjcxOS4uODBlM2FjZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv bG9vcGJhY2suYworKysgYi9kcml2ZXJzL25ldC9sb29wYmFjay5jCkBAIC0xNDUsNyArMTQ1LDYg QEAgc3RhdGljIHZvaWQgbG9vcGJhY2tfZGV2X2ZyZWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldikK IHsKIAlkZXZfbmV0KGRldiktPmxvb3BiYWNrX2RldiA9IE5VTEw7CiAJZnJlZV9wZXJjcHUoZGV2 LT5sc3RhdHMpOwotCWZyZWVfbmV0ZGV2KGRldik7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg bmV0X2RldmljZV9vcHMgbG9vcGJhY2tfb3BzID0gewpAQCAtMTgzLDcgKzE4Miw4IEBAIHN0YXRp YyB2b2lkIGxvb3BiYWNrX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJZGV2LT5ldGh0 b29sX29wcwk9ICZsb29wYmFja19ldGh0b29sX29wczsKIAlkZXYtPmhlYWRlcl9vcHMJCT0gJmV0 aF9oZWFkZXJfb3BzOwogCWRldi0+bmV0ZGV2X29wcwkJPSAmbG9vcGJhY2tfb3BzOwotCWRldi0+ ZGVzdHJ1Y3RvcgkJPSBsb29wYmFja19kZXZfZnJlZTsKKwlkZXYtPm5lZWRzX2ZyZWVfbmV0ZGV2 CT0gdHJ1ZTsKKwlkZXYtPnByaXZfZGVzdHJ1Y3Rvcgk9IGxvb3BiYWNrX2Rldl9mcmVlOwogfQog CiAvKiBTZXR1cCBhbmQgcmVnaXN0ZXIgdGhlIGxvb3BiYWNrIGRldmljZS4gKi8KZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L21hY3NlYy5jIGIvZHJpdmVycy9uZXQvbWFjc2VjLmMKaW5kZXggNDlj ZTRlOS4uNDNmM2UxYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbWFjc2VjLmMKKysrIGIvZHJp dmVycy9uZXQvbWFjc2VjLmMKQEAgLTI5OTQsNyArMjk5NCw2IEBAIHN0YXRpYyB2b2lkIG1hY3Nl Y19mcmVlX25ldGRldihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWZyZWVfcGVyY3B1KG1hY3Nl Yy0+c2VjeS50eF9zYy5zdGF0cyk7CiAKIAlkZXZfcHV0KHJlYWxfZGV2KTsKLQlmcmVlX25ldGRl dihkZXYpOwogfQogCiBzdGF0aWMgdm9pZCBtYWNzZWNfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2Ug KmRldikKQEAgLTMwMDQsNyArMzAwMyw4IEBAIHN0YXRpYyB2b2lkIG1hY3NlY19zZXR1cChzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2KQogCWRldi0+bWF4X210dSA9IEVUSF9NQVhfTVRVOwogCWRldi0+ cHJpdl9mbGFncyB8PSBJRkZfTk9fUVVFVUU7CiAJZGV2LT5uZXRkZXZfb3BzID0gJm1hY3NlY19u ZXRkZXZfb3BzOwotCWRldi0+ZGVzdHJ1Y3RvciA9IG1hY3NlY19mcmVlX25ldGRldjsKKwlkZXYt Pm5lZWRzX2ZyZWVfbmV0ZGV2ID0gdHJ1ZTsKKwlkZXYtPnByaXZfZGVzdHJ1Y3RvciA9IG1hY3Nl Y19mcmVlX25ldGRldjsKIAlTRVRfTkVUREVWX0RFVlRZUEUoZGV2LCAmbWFjc2VjX3R5cGUpOwog CiAJZXRoX3plcm9fYWRkcihkZXYtPmJyb2FkY2FzdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9tYWN2bGFuLmMgYi9kcml2ZXJzL25ldC9tYWN2bGFuLmMKaW5kZXggYjM0ZWFhYS4uYjhjZWM1 MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jCisrKyBiL2RyaXZlcnMvbmV0L21h Y3ZsYW4uYwpAQCAtMTA4OSw3ICsxMDg5LDcgQEAgdm9pZCBtYWN2bGFuX2NvbW1vbl9zZXR1cChz dHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCW5ldGlmX2tlZXBfZHN0KGRldik7CiAJZGV2LT5wcml2 X2ZsYWdzCSAgICAgICB8PSBJRkZfVU5JQ0FTVF9GTFQ7CiAJZGV2LT5uZXRkZXZfb3BzCQk9ICZt YWN2bGFuX25ldGRldl9vcHM7Ci0JZGV2LT5kZXN0cnVjdG9yCQk9IGZyZWVfbmV0ZGV2OworCWRl di0+bmVlZHNfZnJlZV9uZXRkZXYJPSB0cnVlOwogCWRldi0+aGVhZGVyX29wcwkJPSAmbWFjdmxh bl9oYXJkX2hlYWRlcl9vcHM7CiAJZGV2LT5ldGh0b29sX29wcwk9ICZtYWN2bGFuX2V0aHRvb2xf b3BzOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmxtb24uYyBiL2RyaXZlcnMvbmV0L25s bW9uLmMKaW5kZXggYjkxNjAzOC4uYzRiMzM2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbmxt b24uYworKysgYi9kcml2ZXJzL25ldC9ubG1vbi5jCkBAIC0xMTMsNyArMTEzLDcgQEAgc3RhdGlj IHZvaWQgbmxtb25fc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAogCWRldi0+bmV0ZGV2 X29wcwk9ICZubG1vbl9vcHM7CiAJZGV2LT5ldGh0b29sX29wcyA9ICZubG1vbl9ldGh0b29sX29w czsKLQlkZXYtPmRlc3RydWN0b3IJPSBmcmVlX25ldGRldjsKKwlkZXYtPm5lZWRzX2ZyZWVfbmV0 ZGV2ID0gdHJ1ZTsKIAogCWRldi0+ZmVhdHVyZXMgPSBORVRJRl9GX1NHIHwgTkVUSUZfRl9GUkFH TElTVCB8CiAJCQlORVRJRl9GX0hJR0hETUEgfCBORVRJRl9GX0xMVFg7CmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9zbGlwL3NsaXAuYyBiL2RyaXZlcnMvbmV0L3NsaXAvc2xpcC5jCmluZGV4IDFk YTMxZGMuLjc0YjkwNzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3NsaXAvc2xpcC5jCisrKyBi L2RyaXZlcnMvbmV0L3NsaXAvc2xpcC5jCkBAIC02MjksNyArNjI5LDcgQEAgc3RhdGljIHZvaWQg c2xfdW5pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiBzdGF0aWMgdm9pZCBzbF9mcmVlX25l dGRldihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCWludCBpID0gZGV2LT5iYXNlX2FkZHI7 Ci0JZnJlZV9uZXRkZXYoZGV2KTsKKwogCXNsaXBfZGV2c1tpXSA9IE5VTEw7CiB9CiAKQEAgLTY1 MSw3ICs2NTEsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHNsX25ldGRl dl9vcHMgPSB7CiBzdGF0aWMgdm9pZCBzbF9zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQog ewogCWRldi0+bmV0ZGV2X29wcwkJPSAmc2xfbmV0ZGV2X29wczsKLQlkZXYtPmRlc3RydWN0b3IJ CT0gc2xfZnJlZV9uZXRkZXY7CisJZGV2LT5uZWVkc19mcmVlX25ldGRldgk9IHRydWU7CisJZGV2 LT5wcml2X2Rlc3RydWN0b3IJPSBzbF9mcmVlX25ldGRldjsKIAogCWRldi0+aGFyZF9oZWFkZXJf bGVuCT0gMDsKIAlkZXYtPmFkZHJfbGVuCQk9IDA7CkBAIC0xMzY5LDggKzEzNzAsNiBAQCBzdGF0 aWMgdm9pZCBfX2V4aXQgc2xpcF9leGl0KHZvaWQpCiAJCWlmIChzbC0+dHR5KSB7CiAJCQlwcmlu dGsoS0VSTl9FUlIgIiVzOiB0dHkgZGlzY2lwbGluZSBzdGlsbCBydW5uaW5nXG4iLAogCQkJICAg ICAgIGRldi0+bmFtZSk7Ci0JCQkvKiBJbnRlbnRpb25hbGx5IGxlYWsgdGhlIGNvbnRyb2wgYmxv Y2suICovCi0JCQlkZXYtPmRlc3RydWN0b3IgPSBOVUxMOwogCQl9CiAKIAkJdW5yZWdpc3Rlcl9u ZXRkZXYoZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5jIGIvZHJpdmVy cy9uZXQvdGVhbS90ZWFtLmMKaW5kZXggODVjMDEyNC4uZWFhNmVlNyAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvdGVhbS90ZWFtLmMKKysrIGIvZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMKQEAgLTE2 NDMsNyArMTY0Myw2IEBAIHN0YXRpYyB2b2lkIHRlYW1fZGVzdHJ1Y3RvcihzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2KQogCXN0cnVjdCB0ZWFtICp0ZWFtID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAogCWZy ZWVfcGVyY3B1KHRlYW0tPnBjcHVfc3RhdHMpOwotCWZyZWVfbmV0ZGV2KGRldik7CiB9CiAKIHN0 YXRpYyBpbnQgdGVhbV9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCkBAIC0yMDc5LDcgKzIw NzgsOCBAQCBzdGF0aWMgdm9pZCB0ZWFtX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAK IAlkZXYtPm5ldGRldl9vcHMgPSAmdGVhbV9uZXRkZXZfb3BzOwogCWRldi0+ZXRodG9vbF9vcHMg PSAmdGVhbV9ldGh0b29sX29wczsKLQlkZXYtPmRlc3RydWN0b3IJPSB0ZWFtX2Rlc3RydWN0b3I7 CisJZGV2LT5uZWVkc19mcmVlX25ldGRldiA9IHRydWU7CisJZGV2LT5wcml2X2Rlc3RydWN0b3Ig PSB0ZWFtX2Rlc3RydWN0b3I7CiAJZGV2LT5wcml2X2ZsYWdzICY9IH4oSUZGX1hNSVRfRFNUX1JF TEVBU0UgfCBJRkZfVFhfU0tCX1NIQVJJTkcpOwogCWRldi0+cHJpdl9mbGFncyB8PSBJRkZfTk9f UVVFVUU7CiAJZGV2LT5wcml2X2ZsYWdzIHw9IElGRl9URUFNOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvdHVuLmMgYi9kcml2ZXJzL25ldC90dW4uYwppbmRleCBjYzg4Y2Q3Li43ZjNkYjQ5IDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC90dW4uYworKysgYi9kcml2ZXJzL25ldC90dW4uYwpAQCAt MTU2MCw3ICsxNTYwLDYgQEAgc3RhdGljIHZvaWQgdHVuX2ZyZWVfbmV0ZGV2KHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYpCiAJZnJlZV9wZXJjcHUodHVuLT5wY3B1X3N0YXRzKTsKIAl0dW5fZmxvd191 bmluaXQodHVuKTsKIAlzZWN1cml0eV90dW5fZGV2X2ZyZWVfc2VjdXJpdHkodHVuLT5zZWN1cml0 eSk7Ci0JZnJlZV9uZXRkZXYoZGV2KTsKIH0KIAogc3RhdGljIHZvaWQgdHVuX3NldHVwKHN0cnVj dCBuZXRfZGV2aWNlICpkZXYpCkBAIC0xNTcxLDcgKzE1NzAsOCBAQCBzdGF0aWMgdm9pZCB0dW5f c2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAl0dW4tPmdyb3VwID0gSU5WQUxJRF9HSUQ7 CiAKIAlkZXYtPmV0aHRvb2xfb3BzID0gJnR1bl9ldGh0b29sX29wczsKLQlkZXYtPmRlc3RydWN0 b3IgPSB0dW5fZnJlZV9uZXRkZXY7CisJZGV2LT5uZWVkc19mcmVlX25ldGRldiA9IHRydWU7CisJ ZGV2LT5wcml2X2Rlc3RydWN0b3IgPSB0dW5fZnJlZV9uZXRkZXY7CiAJLyogV2UgcHJlZmVyIG91 ciBvd24gcXVldWUgbGVuZ3RoICovCiAJZGV2LT50eF9xdWV1ZV9sZW4gPSBUVU5fUkVBRFFfU0la RTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9jZGMtcGhvbmV0LmMgYi9kcml2ZXJz L25ldC91c2IvY2RjLXBob25ldC5jCmluZGV4IGViNTJkZTguLmM3YTM1MGIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L3VzYi9jZGMtcGhvbmV0LmMKKysrIGIvZHJpdmVycy9uZXQvdXNiL2NkYy1w aG9uZXQuYwpAQCAtMjk4LDcgKzI5OCw3IEBAIHN0YXRpYyB2b2lkIHVzYnBuX3NldHVwKHN0cnVj dCBuZXRfZGV2aWNlICpkZXYpCiAJZGV2LT5hZGRyX2xlbgkJPSAxOwogCWRldi0+dHhfcXVldWVf bGVuCT0gMzsKIAotCWRldi0+ZGVzdHJ1Y3RvcgkJPSBmcmVlX25ldGRldjsKKwlkZXYtPm5lZWRz X2ZyZWVfbmV0ZGV2CT0gdHJ1ZTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Zl dGguYyBiL2RyaXZlcnMvbmV0L3ZldGguYwppbmRleCA4YzM5ZDZkLi4yZWZiZTk4IDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC92ZXRoLmMKKysrIGIvZHJpdmVycy9uZXQvdmV0aC5jCkBAIC0yMjcs NyArMjI3LDYgQEAgc3RhdGljIGludCB2ZXRoX2Rldl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYpCiBzdGF0aWMgdm9pZCB2ZXRoX2Rldl9mcmVlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7 CiAJZnJlZV9wZXJjcHUoZGV2LT52c3RhdHMpOwotCWZyZWVfbmV0ZGV2KGRldik7CiB9CiAKICNp ZmRlZiBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUgpAQCAtMzIyLDcgKzMyMSw4IEBAIHN0YXRp YyB2b2lkIHZldGhfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkJCSAgICAgICBORVRJ Rl9GX0hXX1ZMQU5fU1RBR19UWCB8CiAJCQkgICAgICAgTkVUSUZfRl9IV19WTEFOX0NUQUdfUlgg fAogCQkJICAgICAgIE5FVElGX0ZfSFdfVkxBTl9TVEFHX1JYKTsKLQlkZXYtPmRlc3RydWN0b3Ig PSB2ZXRoX2Rldl9mcmVlOworCWRldi0+bmVlZHNfZnJlZV9uZXRkZXYgPSB0cnVlOworCWRldi0+ cHJpdl9kZXN0cnVjdG9yID0gdmV0aF9kZXZfZnJlZTsKIAlkZXYtPm1heF9tdHUgPSBFVEhfTUFY X01UVTsKIAogCWRldi0+aHdfZmVhdHVyZXMgPSBWRVRIX0ZFQVRVUkVTOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvdnJmLmMgYi9kcml2ZXJzL25ldC92cmYuYwppbmRleCBkZjc0ZWZjLi5lNjY5 MzcyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC92cmYuYworKysgYi9kcml2ZXJzL25ldC92cmYu YwpAQCAtMTIwNiw3ICsxMjA2LDcgQEAgc3RhdGljIHZvaWQgdnJmX3NldHVwKHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYpCiAJZGV2LT5uZXRkZXZfb3BzID0gJnZyZl9uZXRkZXZfb3BzOwogCWRldi0+ bDNtZGV2X29wcyA9ICZ2cmZfbDNtZGV2X29wczsKIAlkZXYtPmV0aHRvb2xfb3BzID0gJnZyZl9l dGh0b29sX29wczsKLQlkZXYtPmRlc3RydWN0b3IgPSBmcmVlX25ldGRldjsKKwlkZXYtPm5lZWRz X2ZyZWVfbmV0ZGV2ID0gdHJ1ZTsKIAogCS8qIEZpbGwgaW4gZGV2aWNlIHN0cnVjdHVyZSB3aXRo IGV0aGVybmV0LWdlbmVyaWMgdmFsdWVzLiAqLwogCWV0aF9od19hZGRyX3JhbmRvbShkZXYpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdnhsYW4uYyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKaW5k ZXggNzBkYmQ1YS4uNDU3NGI5NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdnhsYW4uYworKysg Yi9kcml2ZXJzL25ldC92eGxhbi5jCkBAIC0yNjA3LDcgKzI2MDcsNyBAQCBzdGF0aWMgdm9pZCB2 eGxhbl9zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWV0aF9od19hZGRyX3JhbmRvbShk ZXYpOwogCWV0aGVyX3NldHVwKGRldik7CiAKLQlkZXYtPmRlc3RydWN0b3IgPSBmcmVlX25ldGRl djsKKwlkZXYtPm5lZWRzX2ZyZWVfbmV0ZGV2ID0gdHJ1ZTsKIAlTRVRfTkVUREVWX0RFVlRZUEUo ZGV2LCAmdnhsYW5fdHlwZSk7CiAKIAlkZXYtPmZlYXR1cmVzCXw9IE5FVElGX0ZfTExUWDsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dhbi9kbGNpLmMgYi9kcml2ZXJzL25ldC93YW4vZGxjaS5j CmluZGV4IDY1ZWUyYTYuLmEwZDc2ZjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dhbi9kbGNp LmMKKysrIGIvZHJpdmVycy9uZXQvd2FuL2RsY2kuYwpAQCAtNDc1LDcgKzQ3NSw3IEBAIHN0YXRp YyB2b2lkIGRsY2lfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlkZXYtPmZsYWdzCQk9 IDA7CiAJZGV2LT5oZWFkZXJfb3BzCQk9ICZkbGNpX2hlYWRlcl9vcHM7CiAJZGV2LT5uZXRkZXZf b3BzCQk9ICZkbGNpX25ldGRldl9vcHM7Ci0JZGV2LT5kZXN0cnVjdG9yCQk9IGZyZWVfbmV0ZGV2 OworCWRldi0+bmVlZHNfZnJlZV9uZXRkZXYJPSB0cnVlOwogCiAJZGxwLT5yZWNlaXZlCQk9IGRs Y2lfcmVjZWl2ZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2FuL2hkbGNfZnIuYyBiL2Ry aXZlcnMvbmV0L3dhbi9oZGxjX2ZyLmMKaW5kZXggZWI5MTUyOC4uNzg1OTZlNCAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvd2FuL2hkbGNfZnIuYworKysgYi9kcml2ZXJzL25ldC93YW4vaGRsY19m ci5jCkBAIC0xMTA2LDcgKzExMDYsNyBAQCBzdGF0aWMgaW50IGZyX2FkZF9wdmMoc3RydWN0IG5l dF9kZXZpY2UgKmZyYWQsIHVuc2lnbmVkIGludCBkbGNpLCBpbnQgdHlwZSkKIAkJcmV0dXJuIC1F SU87CiAJfQogCi0JZGV2LT5kZXN0cnVjdG9yID0gZnJlZV9uZXRkZXY7CisJZGV2LT5uZWVkc19m cmVlX25ldGRldiA9IHRydWU7CiAJKmdldF9kZXZfcChwdmMsIHR5cGUpID0gZGV2OwogCWlmICgh dXNlZCkgewogCQlzdGF0ZShoZGxjKS0+ZGNlX2NoYW5nZWQgPSAxOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvd2FuL2xhcGJldGhlci5jIGIvZHJpdmVycy9uZXQvd2FuL2xhcGJldGhlci5jCmlu ZGV4IDlkZjllZDYuLjYzZjc0OTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dhbi9sYXBiZXRo ZXIuYworKysgYi9kcml2ZXJzL25ldC93YW4vbGFwYmV0aGVyLmMKQEAgLTMwNiw3ICszMDYsNyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGxhcGJldGhfbmV0ZGV2X29wcyA9 IHsKIHN0YXRpYyB2b2lkIGxhcGJldGhfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsK IAlkZXYtPm5ldGRldl9vcHMJICAgICA9ICZsYXBiZXRoX25ldGRldl9vcHM7Ci0JZGV2LT5kZXN0 cnVjdG9yCSAgICAgPSBmcmVlX25ldGRldjsKKwlkZXYtPm5lZWRzX2ZyZWVfbmV0ZGV2ID0gdHJ1 ZTsKIAlkZXYtPnR5cGUgICAgICAgICAgICA9IEFSUEhSRF9YMjU7CiAJZGV2LT5oYXJkX2hlYWRl cl9sZW4gPSAzOwogCWRldi0+bXR1ICAgICAgICAgICAgID0gMTAwMDsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg2a2wvbWFpbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxl c3MvYXRoL2F0aDZrbC9tYWluLmMKaW5kZXggOTFlZTU0Mi4uYjkwYzc3ZSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDZrbC9tYWluLmMKQEAgLTEyODcsNyArMTI4Nyw3IEBAIHZvaWQgaW5p dF9uZXRkZXYoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlzdHJ1Y3QgYXRoNmtsICphciA9IGF0 aDZrbF9wcml2KGRldik7CiAKIAlkZXYtPm5ldGRldl9vcHMgPSAmYXRoNmtsX25ldGRldl9vcHM7 Ci0JZGV2LT5kZXN0cnVjdG9yID0gZnJlZV9uZXRkZXY7CisJZGV2LT5uZWVkc19mcmVlX25ldGRl diA9IHRydWU7CiAJZGV2LT53YXRjaGRvZ190aW1lbyA9IEFUSDZLTF9UWF9USU1FT1VUOwogCiAJ ZGV2LT5uZWVkZWRfaGVhZHJvb20gPSBFVEhfSExFTjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jZmc4MDIxMS5jIGIvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMKaW5k ZXggOTQ0YjgzYy4uMDE3ZTIwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJv YWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMKKysrIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL2NmZzgwMjExLmMKQEAgLTUyMDksNyAr NTIwOSw2IEBAIHZvaWQgYnJjbWZfY2ZnODAyMTFfZnJlZV9uZXRkZXYoc3RydWN0IG5ldF9kZXZp Y2UgKm5kZXYpCiAKIAlpZiAodmlmKQogCQlicmNtZl9mcmVlX3ZpZih2aWYpOwotCWZyZWVfbmV0 ZGV2KG5kZXYpOwogfQogCiBzdGF0aWMgYm9vbCBicmNtZl9pc19saW5rdXAoY29uc3Qgc3RydWN0 IGJyY21mX2V2ZW50X21zZyAqZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jy b2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9jb3JlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9i cm9hZGNvbS9icmNtODAyMTEvYnJjbWZtYWMvY29yZS5jCmluZGV4IGY2YjE3ZmIuLmQwMmU3ZjYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Jyb2FkY29tL2JyY204MDIxMS9icmNt Zm1hYy9jb3JlLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjEx L2JyY21mbWFjL2NvcmUuYwpAQCAtNjUyLDcgKzY1Miw4IEBAIHN0cnVjdCBicmNtZl9pZiAqYnJj bWZfYWRkX2lmKHN0cnVjdCBicmNtZl9wdWIgKmRydnIsIHMzMiBic3NjZmdpZHgsIHMzMiBpZmlk eCwKIAkJaWYgKCFuZGV2KQogCQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKLQkJbmRldi0+ ZGVzdHJ1Y3RvciA9IGJyY21mX2NmZzgwMjExX2ZyZWVfbmV0ZGV2OworCQluZGV2LT5uZWVkc19m cmVlX25ldGRldiA9IHRydWU7CisJCW5kZXYtPnByaXZfZGVzdHJ1Y3RvciA9IGJyY21mX2NmZzgw MjExX2ZyZWVfbmV0ZGV2OwogCQlpZnAgPSBuZXRkZXZfcHJpdihuZGV2KTsKIAkJaWZwLT5uZGV2 ID0gbmRldjsKIAkJLyogc3RvcmUgbWFwcGluZyBpZmlkeCB0byBic3NjZmdpZHggKi8KZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVyc2lsL2hvc3RhcC9ob3N0YXBfbWFpbi5j IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZXJzaWwvaG9zdGFwL2hvc3RhcF9tYWluLmMKaW5k ZXggNTQ0ZmMwOS4uMTM3MmIyMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50 ZXJzaWwvaG9zdGFwL2hvc3RhcF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50 ZXJzaWwvaG9zdGFwL2hvc3RhcF9tYWluLmMKQEAgLTczLDcgKzczLDcgQEAgc3RydWN0IG5ldF9k ZXZpY2UgKiBob3N0YXBfYWRkX2ludGVyZmFjZShzdHJ1Y3QgbG9jYWxfaW5mbyAqbG9jYWwsCiAJ ZGV2LT5tZW1fZW5kID0gbWRldi0+bWVtX2VuZDsKIAogCWhvc3RhcF9zZXR1cF9kZXYoZGV2LCBs b2NhbCwgdHlwZSk7Ci0JZGV2LT5kZXN0cnVjdG9yID0gZnJlZV9uZXRkZXY7CisJZGV2LT5uZWVk c19mcmVlX25ldGRldiA9IHRydWU7CiAKIAlzcHJpbnRmKGRldi0+bmFtZSwgIiVzJXMiLCBwcmVm aXgsIG5hbWUpOwogCWlmICghcnRubF9sb2NrZWQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93 aXJlbGVzcy9tYWM4MDIxMV9od3NpbS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFjODAyMTFf aHdzaW0uYwppbmRleCA1MGMyMTlmLi4yYWE1Y2M2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93 aXJlbGVzcy9tYWM4MDIxMV9od3NpbS5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hYzgw MjExX2h3c2ltLmMKQEAgLTI4MDcsNyArMjgwNyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0 X2RldmljZV9vcHMgaHdzaW1fbmV0ZGV2X29wcyA9IHsKIHN0YXRpYyB2b2lkIGh3c2ltX21vbl9z ZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCWRldi0+bmV0ZGV2X29wcyA9ICZod3Np bV9uZXRkZXZfb3BzOwotCWRldi0+ZGVzdHJ1Y3RvciA9IGZyZWVfbmV0ZGV2OworCWRldi0+bmVl ZHNfZnJlZV9uZXRkZXYgPSB0cnVlOwogCWV0aGVyX3NldHVwKGRldik7CiAJZGV2LT5wcml2X2Zs YWdzIHw9IElGRl9OT19RVUVVRTsKIAlkZXYtPnR5cGUgPSBBUlBIUkRfSUVFRTgwMjExX1JBRElP VEFQOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L21h aW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdpZmlleC9tYWluLmMKaW5kZXgg YjYyZTAzZC4uNDYwNzNiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVs bC9td2lmaWV4L21haW4uYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZp ZXgvbWFpbi5jCkBAIC0xMjc3LDcgKzEyNzcsNyBAQCB2b2lkIG13aWZpZXhfaW5pdF9wcml2X3Bh cmFtcyhzdHJ1Y3QgbXdpZmlleF9wcml2YXRlICpwcml2LAogCQkJICAgICAgc3RydWN0IG5ldF9k ZXZpY2UgKmRldikKIHsKIAlkZXYtPm5ldGRldl9vcHMgPSAmbXdpZmlleF9uZXRkZXZfb3BzOwot CWRldi0+ZGVzdHJ1Y3RvciA9IGZyZWVfbmV0ZGV2OworCWRldi0+bmVlZHNfZnJlZV9uZXRkZXYg PSB0cnVlOwogCS8qIEluaXRpYWxpemUgcHJpdmF0ZSBzdHJ1Y3R1cmUgKi8KIAlwcml2LT5jdXJy ZW50X2tleV9pbmRleCA9IDA7CiAJcHJpdi0+bWVkaWFfY29ubmVjdGVkID0gZmFsc2U7CmRpZmYg LS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvcnRsODE4OGV1L29zX2RlcC9tb24uYyBiL2RyaXZlcnMv c3RhZ2luZy9ydGw4MTg4ZXUvb3NfZGVwL21vbi5jCmluZGV4IGNmZTM3ZWIuLjg1OWQwZDYgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy9ydGw4MTg4ZXUvb3NfZGVwL21vbi5jCisrKyBiL2Ry aXZlcnMvc3RhZ2luZy9ydGw4MTg4ZXUvb3NfZGVwL21vbi5jCkBAIC0xNTIsNyArMTUyLDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBtb25fbmV0ZGV2X29wcyA9IHsKIHN0 YXRpYyB2b2lkIG1vbl9zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCWRldi0+bmV0 ZGV2X29wcyA9ICZtb25fbmV0ZGV2X29wczsKLQlkZXYtPmRlc3RydWN0b3IgPSBmcmVlX25ldGRl djsKKwlkZXYtPm5lZWRzX2ZyZWVfbmV0ZGV2ID0gdHJ1ZTsKIAlldGhlcl9zZXR1cChkZXYpOwog CWRldi0+cHJpdl9mbGFncyB8PSBJRkZfTk9fUVVFVUU7CiAJZGV2LT50eXBlID0gQVJQSFJEX0lF RUU4MDIxMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9mdW5jdGlvbi9mX3Bob25l dC5jIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfcGhvbmV0LmMKaW5kZXggYjQwNThm MC4uNmExY2U2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfcGhv bmV0LmMKKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2Z1bmN0aW9uL2ZfcGhvbmV0LmMKQEAgLTI4 MSw3ICsyODEsNyBAQCBzdGF0aWMgdm9pZCBwbl9uZXRfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2Ug KmRldikKIAlkZXYtPnR4X3F1ZXVlX2xlbgk9IDE7CiAKIAlkZXYtPm5ldGRldl9vcHMJCT0gJnBu X25ldGRldl9vcHM7Ci0JZGV2LT5kZXN0cnVjdG9yCQk9IGZyZWVfbmV0ZGV2OworCWRldi0+bmVl ZHNfZnJlZV9uZXRkZXYJPSB0cnVlOwogCWRldi0+aGVhZGVyX29wcwkJPSAmcGhvbmV0X2hlYWRl cl9vcHM7CiB9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmggYi9pbmNs dWRlL2xpbnV4L25ldGRldmljZS5oCmluZGV4IDk3NDU2YjI1Li4zY2NhYmI0IDEwMDY0NAotLS0g YS9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oCisrKyBiL2luY2x1ZGUvbGludXgvbmV0ZGV2aWNl LmgKQEAgLTE1ODEsOCArMTU4MSw4IEBAIGVudW0gbmV0ZGV2X3ByaXZfZmxhZ3MgewogICoJQHJ0 bmxfbGlua19zdGF0ZToJVGhpcyBlbnVtIHJlcHJlc2VudHMgdGhlIHBoYXNlcyBvZiBjcmVhdGlu ZwogICoJCQkJYSBuZXcgbGluawogICoKLSAqCUBkZXN0cnVjdG9yOgkJQ2FsbGVkIGZyb20gdW5y ZWdpc3RlciwKLSAqCQkJCWNhbiBiZSB1c2VkIHRvIGNhbGwgZnJlZV9uZXRkZXYKKyAqCUBuZWVk c19mcmVlX25ldGRldjoJU2hvdWxkIHVucmVnaXN0ZXIgcGVyZm9ybSBmcmVlX25ldGRldj8KKyAq CUBwcml2X2Rlc3RydWN0b3I6CUNhbGxlZCBmcm9tIHVucmVnaXN0ZXIKICAqCUBucGluZm86CQlY WFg6IG5lZWQgY29tbWVudHMgb24gdGhpcyBvbmUKICAqIAlAbmRfbmV0OgkJTmV0d29yayBuYW1l c3BhY2UgdGhpcyBuZXR3b3JrIGRldmljZSBpcyBpbnNpZGUKICAqCkBAIC0xODM4LDcgKzE4Mzgs OCBAQCBzdHJ1Y3QgbmV0X2RldmljZSB7CiAJCVJUTkxfTElOS19JTklUSUFMSVpJTkcsCiAJfSBy dG5sX2xpbmtfc3RhdGU6MTY7CiAKLQl2b2lkICgqZGVzdHJ1Y3Rvcikoc3RydWN0IG5ldF9kZXZp Y2UgKmRldik7CisJYm9vbCBuZWVkc19mcmVlX25ldGRldjsKKwl2b2lkICgqcHJpdl9kZXN0cnVj dG9yKShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsKIAogI2lmZGVmIENPTkZJR19ORVRQT0xMCiAJ c3RydWN0IG5ldHBvbGxfaW5mbyBfX3JjdQkqbnBpbmZvOwpkaWZmIC0tZ2l0IGEvbmV0LzgwMjFx L3ZsYW5fZGV2LmMgYi9uZXQvODAyMXEvdmxhbl9kZXYuYwppbmRleCBlOTdhYjgyLi4wMDY0ZGZk IDEwMDY0NAotLS0gYS9uZXQvODAyMXEvdmxhbl9kZXYuYworKysgYi9uZXQvODAyMXEvdmxhbl9k ZXYuYwpAQCAtODA3LDcgKzgwNyw2IEBAIHN0YXRpYyB2b2lkIHZsYW5fZGV2X2ZyZWUoc3RydWN0 IG5ldF9kZXZpY2UgKmRldikKIAogCWZyZWVfcGVyY3B1KHZsYW4tPnZsYW5fcGNwdV9zdGF0cyk7 CiAJdmxhbi0+dmxhbl9wY3B1X3N0YXRzID0gTlVMTDsKLQlmcmVlX25ldGRldihkZXYpOwogfQog CiB2b2lkIHZsYW5fc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKQEAgLTgyMCw3ICs4MTks OCBAQCB2b2lkIHZsYW5fc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAluZXRpZl9rZWVw X2RzdChkZXYpOwogCiAJZGV2LT5uZXRkZXZfb3BzCQk9ICZ2bGFuX25ldGRldl9vcHM7Ci0JZGV2 LT5kZXN0cnVjdG9yCQk9IHZsYW5fZGV2X2ZyZWU7CisJZGV2LT5uZWVkc19mcmVlX25ldGRldgk9 IHRydWU7CisJZGV2LT5wcml2X2Rlc3RydWN0b3IJPSB2bGFuX2Rldl9mcmVlOwogCWRldi0+ZXRo dG9vbF9vcHMJPSAmdmxhbl9ldGh0b29sX29wczsKIAogCWRldi0+bWluX210dQkJPSAwOwpkaWZm IC0tZ2l0IGEvbmV0L2JhdG1hbi1hZHYvc29mdC1pbnRlcmZhY2UuYyBiL25ldC9iYXRtYW4tYWR2 L3NvZnQtaW50ZXJmYWNlLmMKaW5kZXggZDA0MmM5OS4uMDdjYTBlOCAxMDA2NDQKLS0tIGEvbmV0 L2JhdG1hbi1hZHYvc29mdC1pbnRlcmZhY2UuYworKysgYi9uZXQvYmF0bWFuLWFkdi9zb2Z0LWlu dGVyZmFjZS5jCkBAIC05NjEsOCArOTYxLDYgQEAgc3RhdGljIHZvaWQgYmF0YWR2X3NvZnRpZl9m cmVlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJICogbmV0ZGV2IGFuZCBpdHMgcHJpdmF0ZSBk YXRhIChiYXRfcHJpdikKIAkgKi8KIAlyY3VfYmFycmllcigpOwotCi0JZnJlZV9uZXRkZXYoZGV2 KTsKIH0KIAogLyoqCkBAIC05NzYsNyArOTc0LDggQEAgc3RhdGljIHZvaWQgYmF0YWR2X3NvZnRp Zl9pbml0X2Vhcmx5KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJZXRoZXJfc2V0dXAoZGV2KTsK IAogCWRldi0+bmV0ZGV2X29wcyA9ICZiYXRhZHZfbmV0ZGV2X29wczsKLQlkZXYtPmRlc3RydWN0 b3IgPSBiYXRhZHZfc29mdGlmX2ZyZWU7CisJZGV2LT5uZWVkc19mcmVlX25ldGRldiA9IHRydWU7 CisJZGV2LT5wcml2X2Rlc3RydWN0b3IgPSBiYXRhZHZfc29mdGlmX2ZyZWU7CiAJZGV2LT5mZWF0 dXJlcyB8PSBORVRJRl9GX0hXX1ZMQU5fQ1RBR19GSUxURVIgfCBORVRJRl9GX05FVE5TX0xPQ0FM OwogCWRldi0+cHJpdl9mbGFncyB8PSBJRkZfTk9fUVVFVUU7CiAKZGlmZiAtLWdpdCBhL25ldC9i bHVldG9vdGgvNmxvd3Bhbi5jIGIvbmV0L2JsdWV0b290aC82bG93cGFuLmMKaW5kZXggZDQ5MTUy OS4uN2ZmZWNhNyAxMDA2NDQKLS0tIGEvbmV0L2JsdWV0b290aC82bG93cGFuLmMKKysrIGIvbmV0 L2JsdWV0b290aC82bG93cGFuLmMKQEAgLTY1Myw3ICs2NTMsNyBAQCBzdGF0aWMgdm9pZCBuZXRk ZXZfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAogCWRldi0+bmV0ZGV2X29wcwkJPSAm bmV0ZGV2X29wczsKIAlkZXYtPmhlYWRlcl9vcHMJCT0gJmhlYWRlcl9vcHM7Ci0JZGV2LT5kZXN0 cnVjdG9yCQk9IGZyZWVfbmV0ZGV2OworCWRldi0+bmVlZHNfZnJlZV9uZXRkZXYJPSB0cnVlOwog fQogCiBzdGF0aWMgc3RydWN0IGRldmljZV90eXBlIGJ0X3R5cGUgPSB7CmRpZmYgLS1naXQgYS9u ZXQvYnJpZGdlL2JyX2RldmljZS5jIGIvbmV0L2JyaWRnZS9icl9kZXZpY2UuYwppbmRleCA0MzBi NTNlLi5mMGYzNDQ3IDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX2RldmljZS5jCisrKyBiL25l dC9icmlkZ2UvYnJfZGV2aWNlLmMKQEAgLTM3OSw3ICszNzksNyBAQCB2b2lkIGJyX2Rldl9zZXR1 cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWV0aGVyX3NldHVwKGRldik7CiAKIAlkZXYtPm5l dGRldl9vcHMgPSAmYnJfbmV0ZGV2X29wczsKLQlkZXYtPmRlc3RydWN0b3IgPSBmcmVlX25ldGRl djsKKwlkZXYtPm5lZWRzX2ZyZWVfbmV0ZGV2ID0gdHJ1ZTsKIAlkZXYtPmV0aHRvb2xfb3BzID0g JmJyX2V0aHRvb2xfb3BzOwogCVNFVF9ORVRERVZfREVWVFlQRShkZXYsICZicl90eXBlKTsKIAlk ZXYtPnByaXZfZmxhZ3MgPSBJRkZfRUJSSURHRSB8IElGRl9OT19RVUVVRTsKZGlmZiAtLWdpdCBh L25ldC9jYWlmL2NobmxfbmV0LmMgYi9uZXQvY2FpZi9jaG5sX25ldC5jCmluZGV4IDE4MTZmYzku LmZlM2M1M2UgMTAwNjQ0Ci0tLSBhL25ldC9jYWlmL2NobmxfbmV0LmMKKysrIGIvbmV0L2NhaWYv Y2hubF9uZXQuYwpAQCAtMzkyLDE0ICszOTIsMTQgQEAgc3RhdGljIHZvaWQgY2hubF9uZXRfZGVz dHJ1Y3RvcihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCXN0cnVjdCBjaG5sX25ldCAqcHJp diA9IG5ldGRldl9wcml2KGRldik7CiAJY2FpZl9mcmVlX2NsaWVudCgmcHJpdi0+Y2hubCk7Ci0J ZnJlZV9uZXRkZXYoZGV2KTsKIH0KIAogc3RhdGljIHZvaWQgaXBjYWlmX25ldF9zZXR1cChzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2KQogewogCXN0cnVjdCBjaG5sX25ldCAqcHJpdjsKIAlkZXYtPm5l dGRldl9vcHMgPSAmbmV0ZGV2X29wczsKLQlkZXYtPmRlc3RydWN0b3IgPSBjaG5sX25ldF9kZXN0 cnVjdG9yOworCWRldi0+bmVlZHNfZnJlZV9uZXRkZXYgPSB0cnVlOworCWRldi0+cHJpdl9kZXN0 cnVjdG9yID0gY2hubF9uZXRfZGVzdHJ1Y3RvcjsKIAlkZXYtPmZsYWdzIHw9IElGRl9OT0FSUDsK IAlkZXYtPmZsYWdzIHw9IElGRl9QT0lOVE9QT0lOVDsKIAlkZXYtPm10dSA9IEdQUlNfUERQX01U VTsKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rldi5jIGIvbmV0L2NvcmUvZGV2LmMKaW5kZXggODVj NjI2Yi4uOWRlYmMxYiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2LmMKKysrIGIvbmV0L2NvcmUv ZGV2LmMKQEAgLTczNDYsNiArNzM0Niw4IEBAIGludCByZWdpc3Rlcl9uZXRkZXZpY2Uoc3RydWN0 IG5ldF9kZXZpY2UgKmRldikKIGVycl91bmluaXQ6CiAJaWYgKGRldi0+bmV0ZGV2X29wcy0+bmRv X3VuaW5pdCkKIAkJZGV2LT5uZXRkZXZfb3BzLT5uZG9fdW5pbml0KGRldik7CisJaWYgKGRldi0+ cHJpdl9kZXN0cnVjdG9yKQorCQlkZXYtPnByaXZfZGVzdHJ1Y3RvcihkZXYpOwogCWdvdG8gb3V0 OwogfQogRVhQT1JUX1NZTUJPTChyZWdpc3Rlcl9uZXRkZXZpY2UpOwpAQCAtNzU1Myw4ICs3NTU1 LDEwIEBAIHZvaWQgbmV0ZGV2X3J1bl90b2RvKHZvaWQpCiAJCVdBUk5fT04ocmN1X2FjY2Vzc19w b2ludGVyKGRldi0+aXA2X3B0cikpOwogCQlXQVJOX09OKGRldi0+ZG5fcHRyKTsKIAotCQlpZiAo ZGV2LT5kZXN0cnVjdG9yKQotCQkJZGV2LT5kZXN0cnVjdG9yKGRldik7CisJCWlmIChkZXYtPnBy aXZfZGVzdHJ1Y3RvcikKKwkJCWRldi0+cHJpdl9kZXN0cnVjdG9yKGRldik7CisJCWlmIChkZXYt Pm5lZWRzX2ZyZWVfbmV0ZGV2KQorCQkJZnJlZV9uZXRkZXYoZGV2KTsKIAogCQkvKiBSZXBvcnQg YSBuZXR3b3JrIGRldmljZSBoYXMgYmVlbiB1bnJlZ2lzdGVyZWQgKi8KIAkJcnRubF9sb2NrKCk7 CmRpZmYgLS1naXQgYS9uZXQvaHNyL2hzcl9kZXZpY2UuYyBiL25ldC9oc3IvaHNyX2RldmljZS5j CmluZGV4IGM3MzE2MGYuLjBhMGEzOTIgMTAwNjQ0Ci0tLSBhL25ldC9oc3IvaHNyX2RldmljZS5j CisrKyBiL25ldC9oc3IvaHNyX2RldmljZS5jCkBAIC0zNzgsNyArMzc4LDYgQEAgc3RhdGljIHZv aWQgaHNyX2Rldl9kZXN0cm95KHN0cnVjdCBuZXRfZGV2aWNlICpoc3JfZGV2KQogCWRlbF90aW1l cl9zeW5jKCZoc3ItPmFubm91bmNlX3RpbWVyKTsKIAogCXN5bmNocm9uaXplX3JjdSgpOwotCWZy ZWVfbmV0ZGV2KGhzcl9kZXYpOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vf b3BzIGhzcl9kZXZpY2Vfb3BzID0gewpAQCAtNDA0LDcgKzQwMyw4IEBAIHZvaWQgaHNyX2Rldl9z ZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCVNFVF9ORVRERVZfREVWVFlQRShkZXYsICZo c3JfdHlwZSk7CiAJZGV2LT5wcml2X2ZsYWdzIHw9IElGRl9OT19RVUVVRTsKIAotCWRldi0+ZGVz dHJ1Y3RvciA9IGhzcl9kZXZfZGVzdHJveTsKKwlkZXYtPm5lZWRzX2ZyZWVfbmV0ZGV2ID0gdHJ1 ZTsKKwlkZXYtPnByaXZfZGVzdHJ1Y3RvciA9IGhzcl9kZXZfZGVzdHJveTsKIAogCWRldi0+aHdf ZmVhdHVyZXMgPSBORVRJRl9GX1NHIHwgTkVUSUZfRl9GUkFHTElTVCB8IE5FVElGX0ZfSElHSERN QSB8CiAJCQkgICBORVRJRl9GX0dTT19NQVNLIHwgTkVUSUZfRl9IV19DU1VNIHwKZGlmZiAtLWdp dCBhL25ldC9pZWVlODAyMTU0LzZsb3dwYW4vY29yZS5jIGIvbmV0L2llZWU4MDIxNTQvNmxvd3Bh bi9jb3JlLmMKaW5kZXggZDdlZmJmMC4uMGE4NjZmMzMgMTAwNjQ0Ci0tLSBhL25ldC9pZWVlODAy MTU0LzZsb3dwYW4vY29yZS5jCisrKyBiL25ldC9pZWVlODAyMTU0LzZsb3dwYW4vY29yZS5jCkBA IC0xMDcsNyArMTA3LDcgQEAgc3RhdGljIHZvaWQgbG93cGFuX3NldHVwKHN0cnVjdCBuZXRfZGV2 aWNlICpsZGV2KQogCiAJbGRldi0+bmV0ZGV2X29wcwk9ICZsb3dwYW5fbmV0ZGV2X29wczsKIAls ZGV2LT5oZWFkZXJfb3BzCT0gJmxvd3Bhbl9oZWFkZXJfb3BzOwotCWxkZXYtPmRlc3RydWN0b3IJ PSBmcmVlX25ldGRldjsKKwlsZGV2LT5uZWVkc19mcmVlX25ldGRldgk9IHRydWU7CiAJbGRldi0+ ZmVhdHVyZXMJCXw9IE5FVElGX0ZfTkVUTlNfTE9DQUw7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9p cHY0L2lwX3R1bm5lbC5jIGIvbmV0L2lwdjQvaXBfdHVubmVsLmMKaW5kZXggODIzYWJhZS4uYjJk MWJlNSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfdHVubmVsLmMKKysrIGIvbmV0L2lwdjQvaXBf dHVubmVsLmMKQEAgLTk2MSw3ICs5NjEsNiBAQCBzdGF0aWMgdm9pZCBpcF90dW5uZWxfZGV2X2Zy ZWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlncm9fY2VsbHNfZGVzdHJveSgmdHVubmVsLT5n cm9fY2VsbHMpOwogCWRzdF9jYWNoZV9kZXN0cm95KCZ0dW5uZWwtPmRzdF9jYWNoZSk7CiAJZnJl ZV9wZXJjcHUoZGV2LT50c3RhdHMpOwotCWZyZWVfbmV0ZGV2KGRldik7CiB9CiAKIHZvaWQgaXBf dHVubmVsX2RlbGxpbmsoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGxpc3RfaGVhZCAq aGVhZCkKQEAgLTExNDgsNyArMTE0Nyw4IEBAIGludCBpcF90dW5uZWxfaW5pdChzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2KQogCXN0cnVjdCBpcGhkciAqaXBoID0gJnR1bm5lbC0+cGFybXMuaXBoOwog CWludCBlcnI7CiAKLQlkZXYtPmRlc3RydWN0b3IJPSBpcF90dW5uZWxfZGV2X2ZyZWU7CisJZGV2 LT5uZWVkc19mcmVlX25ldGRldiA9IHRydWU7CisJZGV2LT5wcml2X2Rlc3RydWN0b3IgPSBpcF90 dW5uZWxfZGV2X2ZyZWU7CiAJZGV2LT50c3RhdHMgPSBuZXRkZXZfYWxsb2NfcGNwdV9zdGF0cyhz dHJ1Y3QgcGNwdV9zd19uZXRzdGF0cyk7CiAJaWYgKCFkZXYtPnRzdGF0cykKIAkJcmV0dXJuIC1F Tk9NRU07CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pcG1yLmMgYi9uZXQvaXB2NC9pcG1yLmMKaW5k ZXggYjAzNmU4NS4uOTZjNTY4MSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBtci5jCisrKyBiL25l dC9pcHY0L2lwbXIuYwpAQCAtNTAxLDcgKzUwMSw3IEBAIHN0YXRpYyB2b2lkIHJlZ192aWZfc2V0 dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlkZXYtPm10dQkJPSBFVEhfREFUQV9MRU4gLSBz aXplb2Yoc3RydWN0IGlwaGRyKSAtIDg7CiAJZGV2LT5mbGFncwkJPSBJRkZfTk9BUlA7CiAJZGV2 LT5uZXRkZXZfb3BzCQk9ICZyZWdfdmlmX25ldGRldl9vcHM7Ci0JZGV2LT5kZXN0cnVjdG9yCQk9 IGZyZWVfbmV0ZGV2OworCWRldi0+bmVlZHNfZnJlZV9uZXRkZXYJPSB0cnVlOwogCWRldi0+ZmVh dHVyZXMJCXw9IE5FVElGX0ZfTkVUTlNfTE9DQUw7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY2 L2lwNl9ncmUuYyBiL25ldC9pcHY2L2lwNl9ncmUuYwppbmRleCA0ZDYwMTY0Li4wZjFjMjQ5IDEw MDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfZ3JlLmMKKysrIGIvbmV0L2lwdjYvaXA2X2dyZS5jCkBA IC05ODYsMTMgKzk4NiwxMyBAQCBzdGF0aWMgdm9pZCBpcDZncmVfZGV2X2ZyZWUoc3RydWN0IG5l dF9kZXZpY2UgKmRldikKIAogCWRzdF9jYWNoZV9kZXN0cm95KCZ0LT5kc3RfY2FjaGUpOwogCWZy ZWVfcGVyY3B1KGRldi0+dHN0YXRzKTsKLQlmcmVlX25ldGRldihkZXYpOwogfQogCiBzdGF0aWMg dm9pZCBpcDZncmVfdHVubmVsX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CiAJZGV2 LT5uZXRkZXZfb3BzID0gJmlwNmdyZV9uZXRkZXZfb3BzOwotCWRldi0+ZGVzdHJ1Y3RvciA9IGlw NmdyZV9kZXZfZnJlZTsKKwlkZXYtPm5lZWRzX2ZyZWVfbmV0ZGV2ID0gdHJ1ZTsKKwlkZXYtPnBy aXZfZGVzdHJ1Y3RvciA9IGlwNmdyZV9kZXZfZnJlZTsKIAogCWRldi0+dHlwZSA9IEFSUEhSRF9J UDZHUkU7CiAKQEAgLTExNDMsNyArMTE0Myw3IEBAIHN0YXRpYyBpbnQgX19uZXRfaW5pdCBpcDZn cmVfaW5pdF9uZXQoc3RydWN0IG5ldCAqbmV0KQogCXJldHVybiAwOwogCiBlcnJfcmVnX2RldjoK LQlpcDZncmVfZGV2X2ZyZWUoaWduLT5mYl90dW5uZWxfZGV2KTsKKwlmcmVlX25ldGRldihpZ24t PmZiX3R1bm5lbF9kZXYpOwogZXJyX2FsbG9jX2RldjoKIAlyZXR1cm4gZXJyOwogfQpAQCAtMTI5 Miw3ICsxMjkyLDggQEAgc3RhdGljIHZvaWQgaXA2Z3JlX3RhcF9zZXR1cChzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2KQogCWV0aGVyX3NldHVwKGRldik7CiAKIAlkZXYtPm5ldGRldl9vcHMgPSAmaXA2 Z3JlX3RhcF9uZXRkZXZfb3BzOwotCWRldi0+ZGVzdHJ1Y3RvciA9IGlwNmdyZV9kZXZfZnJlZTsK KwlkZXYtPm5lZWRzX2ZyZWVfbmV0ZGV2ID0gdHJ1ZTsKKwlkZXYtPnByaXZfZGVzdHJ1Y3RvciA9 IGlwNmdyZV9kZXZfZnJlZTsKIAogCWRldi0+ZmVhdHVyZXMgfD0gTkVUSUZfRl9ORVROU19MT0NB TDsKIAlkZXYtPnByaXZfZmxhZ3MgJj0gfklGRl9UWF9TS0JfU0hBUklORzsKZGlmZiAtLWdpdCBh L25ldC9pcHY2L2lwNl90dW5uZWwuYyBiL25ldC9pcHY2L2lwNl90dW5uZWwuYwppbmRleCBlMmQ3 ODY3Li4yOTJmMjRjIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfdHVubmVsLmMKKysrIGIvbmV0 L2lwdjYvaXA2X3R1bm5lbC5jCkBAIC0yNTQsNyArMjU0LDYgQEAgc3RhdGljIHZvaWQgaXA2X2Rl dl9mcmVlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJZ3JvX2NlbGxzX2Rlc3Ryb3koJnQtPmdy b19jZWxscyk7CiAJZHN0X2NhY2hlX2Rlc3Ryb3koJnQtPmRzdF9jYWNoZSk7CiAJZnJlZV9wZXJj cHUoZGV2LT50c3RhdHMpOwotCWZyZWVfbmV0ZGV2KGRldik7CiB9CiAKIHN0YXRpYyBpbnQgaXA2 X3RubF9jcmVhdGUyKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCkBAIC0zMjIsNyArMzIxLDcgQEAg c3RhdGljIHN0cnVjdCBpcDZfdG5sICppcDZfdG5sX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0 cnVjdCBfX2lwNl90bmxfcGFybSAqcCkKIAlyZXR1cm4gdDsKIAogZmFpbGVkX2ZyZWU6Ci0JaXA2 X2Rldl9mcmVlKGRldik7CisJZnJlZV9uZXRkZXYoZGV2KTsKIGZhaWxlZDoKIAlyZXR1cm4gRVJS X1BUUihlcnIpOwogfQpAQCAtMTc3Miw3ICsxNzcxLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBu ZXRfZGV2aWNlX29wcyBpcDZfdG5sX25ldGRldl9vcHMgPSB7CiBzdGF0aWMgdm9pZCBpcDZfdG5s X2Rldl9zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCWRldi0+bmV0ZGV2X29wcyA9 ICZpcDZfdG5sX25ldGRldl9vcHM7Ci0JZGV2LT5kZXN0cnVjdG9yID0gaXA2X2Rldl9mcmVlOwor CWRldi0+bmVlZHNfZnJlZV9uZXRkZXYgPSB0cnVlOworCWRldi0+cHJpdl9kZXN0cnVjdG9yID0g aXA2X2Rldl9mcmVlOwogCiAJZGV2LT50eXBlID0gQVJQSFJEX1RVTk5FTDY7CiAJZGV2LT5mbGFn cyB8PSBJRkZfTk9BUlA7CkBAIC0yMjExLDcgKzIyMTEsNyBAQCBzdGF0aWMgaW50IF9fbmV0X2lu aXQgaXA2X3RubF9pbml0X25ldChzdHJ1Y3QgbmV0ICpuZXQpCiAJcmV0dXJuIDA7CiAKIGVycl9y ZWdpc3RlcjoKLQlpcDZfZGV2X2ZyZWUoaXA2bi0+ZmJfdG5sX2Rldik7CisJZnJlZV9uZXRkZXYo aXA2bi0+ZmJfdG5sX2Rldik7CiBlcnJfYWxsb2NfZGV2OgogCXJldHVybiBlcnI7CiB9CmRpZmYg LS1naXQgYS9uZXQvaXB2Ni9pcDZfdnRpLmMgYi9uZXQvaXB2Ni9pcDZfdnRpLmMKaW5kZXggM2Q4 YTNiNi4uNTY1OWY0YSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X3Z0aS5jCisrKyBiL25ldC9p cHY2L2lwNl92dGkuYwpAQCAtMTgwLDcgKzE4MCw2IEBAIHZ0aTZfdG5sX3VubGluayhzdHJ1Y3Qg dnRpNl9uZXQgKmlwNm4sIHN0cnVjdCBpcDZfdG5sICp0KQogc3RhdGljIHZvaWQgdnRpNl9kZXZf ZnJlZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCWZyZWVfcGVyY3B1KGRldi0+dHN0YXRz KTsKLQlmcmVlX25ldGRldihkZXYpOwogfQogCiBzdGF0aWMgaW50IHZ0aTZfdG5sX2NyZWF0ZTIo c3RydWN0IG5ldF9kZXZpY2UgKmRldikKQEAgLTIzNSw3ICsyMzQsNyBAQCBzdGF0aWMgc3RydWN0 IGlwNl90bmwgKnZ0aTZfdG5sX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBfX2lwNl90 bmxfcGFybSAqcAogCXJldHVybiB0OwogCiBmYWlsZWRfZnJlZToKLQl2dGk2X2Rldl9mcmVlKGRl dik7CisJZnJlZV9uZXRkZXYoZGV2KTsKIGZhaWxlZDoKIAlyZXR1cm4gTlVMTDsKIH0KQEAgLTg0 MSw3ICs4NDAsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIHZ0aTZfbmV0 ZGV2X29wcyA9IHsKIHN0YXRpYyB2b2lkIHZ0aTZfZGV2X3NldHVwKHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYpCiB7CiAJZGV2LT5uZXRkZXZfb3BzID0gJnZ0aTZfbmV0ZGV2X29wczsKLQlkZXYtPmRl c3RydWN0b3IgPSB2dGk2X2Rldl9mcmVlOworCWRldi0+bmVlZHNfZnJlZV9uZXRkZXYgPSB0cnVl OworCWRldi0+cHJpdl9kZXN0cnVjdG9yID0gdnRpNl9kZXZfZnJlZTsKIAogCWRldi0+dHlwZSA9 IEFSUEhSRF9UVU5ORUw2OwogCWRldi0+aGFyZF9oZWFkZXJfbGVuID0gTExfTUFYX0hFQURFUiAr IHNpemVvZihzdHJ1Y3QgaXB2Nmhkcik7CkBAIC0xMDkyLDcgKzEwOTIsNyBAQCBzdGF0aWMgaW50 IF9fbmV0X2luaXQgdnRpNl9pbml0X25ldChzdHJ1Y3QgbmV0ICpuZXQpCiAJcmV0dXJuIDA7CiAK IGVycl9yZWdpc3RlcjoKLQl2dGk2X2Rldl9mcmVlKGlwNm4tPmZiX3RubF9kZXYpOworCWZyZWVf bmV0ZGV2KGlwNm4tPmZiX3RubF9kZXYpOwogZXJyX2FsbG9jX2RldjoKIAlyZXR1cm4gZXJyOwog fQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2bXIuYyBiL25ldC9pcHY2L2lwNm1yLmMKaW5kZXgg YmYzNGQwOS4uNTc2ZmQ5MyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2bXIuYworKysgYi9uZXQv aXB2Ni9pcDZtci5jCkBAIC03MzMsNyArNzMzLDcgQEAgc3RhdGljIHZvaWQgcmVnX3ZpZl9zZXR1 cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWRldi0+bXR1CQk9IDE1MDAgLSBzaXplb2Yoc3Ry dWN0IGlwdjZoZHIpIC0gODsKIAlkZXYtPmZsYWdzCQk9IElGRl9OT0FSUDsKIAlkZXYtPm5ldGRl dl9vcHMJCT0gJnJlZ192aWZfbmV0ZGV2X29wczsKLQlkZXYtPmRlc3RydWN0b3IJCT0gZnJlZV9u ZXRkZXY7CisJZGV2LT5uZWVkc19mcmVlX25ldGRldgk9IHRydWU7CiAJZGV2LT5mZWF0dXJlcwkJ fD0gTkVUSUZfRl9ORVROU19MT0NBTDsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvc2l0LmMg Yi9uZXQvaXB2Ni9zaXQuYwppbmRleCA5OTg1M2M2Li40ZjA3YTIxIDEwMDY0NAotLS0gYS9uZXQv aXB2Ni9zaXQuYworKysgYi9uZXQvaXB2Ni9zaXQuYwpAQCAtMjY1LDcgKzI2NSw3IEBAIHN0YXRp YyBzdHJ1Y3QgaXBfdHVubmVsICppcGlwNl90dW5uZWxfbG9jYXRlKHN0cnVjdCBuZXQgKm5ldCwK IAlyZXR1cm4gbnQ7CiAKIGZhaWxlZF9mcmVlOgotCWlwaXA2X2Rldl9mcmVlKGRldik7CisJZnJl ZV9uZXRkZXYoZGV2KTsKIGZhaWxlZDoKIAlyZXR1cm4gTlVMTDsKIH0KQEAgLTEzMzMsNyArMTMz Myw2IEBAIHN0YXRpYyB2b2lkIGlwaXA2X2Rldl9mcmVlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYp CiAKIAlkc3RfY2FjaGVfZGVzdHJveSgmdHVubmVsLT5kc3RfY2FjaGUpOwogCWZyZWVfcGVyY3B1 KGRldi0+dHN0YXRzKTsKLQlmcmVlX25ldGRldihkZXYpOwogfQogCiAjZGVmaW5lIFNJVF9GRUFU VVJFUyAoTkVUSUZfRl9TRwkgICB8IFwKQEAgLTEzNDgsNyArMTM0Nyw4IEBAIHN0YXRpYyB2b2lk IGlwaXA2X3R1bm5lbF9zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWludCB0X2hsZW4g PSB0dW5uZWwtPmhsZW4gKyBzaXplb2Yoc3RydWN0IGlwaGRyKTsKIAogCWRldi0+bmV0ZGV2X29w cwkJPSAmaXBpcDZfbmV0ZGV2X29wczsKLQlkZXYtPmRlc3RydWN0b3IJCT0gaXBpcDZfZGV2X2Zy ZWU7CisJZGV2LT5uZWVkc19mcmVlX25ldGRldgk9IHRydWU7CisJZGV2LT5wcml2X2Rlc3RydWN0 b3IJPSBpcGlwNl9kZXZfZnJlZTsKIAogCWRldi0+dHlwZQkJPSBBUlBIUkRfU0lUOwogCWRldi0+ aGFyZF9oZWFkZXJfbGVuCT0gTExfTUFYX0hFQURFUiArIHRfaGxlbjsKZGlmZiAtLWdpdCBhL25l dC9pcmRhL2lybGFuL2lybGFuX2V0aC5jIGIvbmV0L2lyZGEvaXJsYW4vaXJsYW5fZXRoLmMKaW5k ZXggNzRkMDlmOS4uM2JlODUyOCAxMDA2NDQKLS0tIGEvbmV0L2lyZGEvaXJsYW4vaXJsYW5fZXRo LmMKKysrIGIvbmV0L2lyZGEvaXJsYW4vaXJsYW5fZXRoLmMKQEAgLTY1LDcgKzY1LDcgQEAgc3Rh dGljIHZvaWQgaXJsYW5fZXRoX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJZXRoZXJf c2V0dXAoZGV2KTsKIAogCWRldi0+bmV0ZGV2X29wcwkJPSAmaXJsYW5fZXRoX25ldGRldl9vcHM7 Ci0JZGV2LT5kZXN0cnVjdG9yCQk9IGZyZWVfbmV0ZGV2OworCWRldi0+bmVlZHNfZnJlZV9uZXRk ZXYJPSB0cnVlOwogCWRldi0+bWluX210dQkJPSAwOwogCWRldi0+bWF4X210dQkJPSBFVEhfTUFY X01UVTsKIApkaWZmIC0tZ2l0IGEvbmV0L2wydHAvbDJ0cF9ldGguYyBiL25ldC9sMnRwL2wydHBf ZXRoLmMKaW5kZXggNmZkNDFkNy4uY2FmYjY2NyAxMDA2NDQKLS0tIGEvbmV0L2wydHAvbDJ0cF9l dGguYworKysgYi9uZXQvbDJ0cC9sMnRwX2V0aC5jCkBAIC0xMzMsNyArMTMzLDcgQEAgc3RhdGlj IHZvaWQgbDJ0cF9ldGhfZGV2X3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJZGV2LT5w cml2X2ZsYWdzCQkmPSB+SUZGX1RYX1NLQl9TSEFSSU5HOwogCWRldi0+ZmVhdHVyZXMJCXw9IE5F VElGX0ZfTExUWDsKIAlkZXYtPm5ldGRldl9vcHMJCT0gJmwydHBfZXRoX25ldGRldl9vcHM7Ci0J ZGV2LT5kZXN0cnVjdG9yCQk9IGZyZWVfbmV0ZGV2OworCWRldi0+bmVlZHNfZnJlZV9uZXRkZXYJ PSB0cnVlOwogfQogCiBzdGF0aWMgdm9pZCBsMnRwX2V0aF9kZXZfcmVjdihzdHJ1Y3QgbDJ0cF9z ZXNzaW9uICpzZXNzaW9uLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgZGF0YV9sZW4pCmRpZmYg LS1naXQgYS9uZXQvbWFjODAyMTEvaWZhY2UuYyBiL25ldC9tYWM4MDIxMS9pZmFjZS5jCmluZGV4 IDViYjBjNTAuLjZkMjM0MjcgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9pZmFjZS5jCisrKyBi L25ldC9tYWM4MDIxMS9pZmFjZS5jCkBAIC0xMTk4LDcgKzExOTgsNiBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IG5ldF9kZXZpY2Vfb3BzIGllZWU4MDIxMV9tb25pdG9yaWZfb3BzID0gewogc3RhdGlj IHZvaWQgaWVlZTgwMjExX2lmX2ZyZWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKIAlmcmVl X3BlcmNwdShkZXYtPnRzdGF0cyk7Ci0JZnJlZV9uZXRkZXYoZGV2KTsKIH0KIAogc3RhdGljIHZv aWQgaWVlZTgwMjExX2lmX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCkBAIC0xMjA2LDcg KzEyMDUsOCBAQCBzdGF0aWMgdm9pZCBpZWVlODAyMTFfaWZfc2V0dXAoc3RydWN0IG5ldF9kZXZp Y2UgKmRldikKIAlldGhlcl9zZXR1cChkZXYpOwogCWRldi0+cHJpdl9mbGFncyAmPSB+SUZGX1RY X1NLQl9TSEFSSU5HOwogCWRldi0+bmV0ZGV2X29wcyA9ICZpZWVlODAyMTFfZGF0YWlmX29wczsK LQlkZXYtPmRlc3RydWN0b3IgPSBpZWVlODAyMTFfaWZfZnJlZTsKKwlkZXYtPm5lZWRzX2ZyZWVf bmV0ZGV2ID0gdHJ1ZTsKKwlkZXYtPnByaXZfZGVzdHJ1Y3RvciA9IGllZWU4MDIxMV9pZl9mcmVl OwogfQogCiBzdGF0aWMgdm9pZCBpZWVlODAyMTFfaWZfc2V0dXBfbm9fcXVldWUoc3RydWN0IG5l dF9kZXZpY2UgKmRldikKQEAgLTE4OTksNyArMTg5OSw3IEBAIGludCBpZWVlODAyMTFfaWZfYWRk KHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLCBjb25zdCBjaGFyICpuYW1lLAogCiAJCXJl dCA9IHJlZ2lzdGVyX25ldGRldmljZShuZGV2KTsKIAkJaWYgKHJldCkgewotCQkJaWVlZTgwMjEx X2lmX2ZyZWUobmRldik7CisJCQlmcmVlX25ldGRldihuZGV2KTsKIAkJCXJldHVybiByZXQ7CiAJ CX0KIAl9CmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTU0L2lmYWNlLmMgYi9uZXQvbWFjODAyMTU0 L2lmYWNlLmMKaW5kZXggMDYwMTlkYi4uYmQ4OGE5YiAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjE1 NC9pZmFjZS5jCisrKyBiL25ldC9tYWM4MDIxNTQvaWZhY2UuYwpAQCAtNTI2LDggKzUyNiw2IEBA IHN0YXRpYyB2b2lkIG1hYzgwMjE1NF93cGFuX2ZyZWUoc3RydWN0IG5ldF9kZXZpY2UgKmRldikK IAlzdHJ1Y3QgaWVlZTgwMjE1NF9zdWJfaWZfZGF0YSAqc2RhdGEgPSBJRUVFODAyMTU0X0RFVl9U T19TVUJfSUYoZGV2KTsKIAogCW1hYzgwMjE1NF9sbHNlY19kZXN0cm95KCZzZGF0YS0+c2VjKTsK LQotCWZyZWVfbmV0ZGV2KGRldik7CiB9CiAKIHN0YXRpYyB2b2lkIGllZWU4MDIxNTRfaWZfc2V0 dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKQEAgLTU5Myw3ICs1OTEsOCBAQCBpZWVlODAyMTU0 X3NldHVwX3NkYXRhKHN0cnVjdCBpZWVlODAyMTU0X3N1Yl9pZl9kYXRhICpzZGF0YSwKIAkJCQkJ c2RhdGEtPmRldi0+ZGV2X2FkZHIpOwogCiAJCXNkYXRhLT5kZXYtPmhlYWRlcl9vcHMgPSAmbWFj ODAyMTU0X2hlYWRlcl9vcHM7Ci0JCXNkYXRhLT5kZXYtPmRlc3RydWN0b3IgPSBtYWM4MDIxNTRf d3Bhbl9mcmVlOworCQlzZGF0YS0+ZGV2LT5uZWVkc19mcmVlX25ldGRldiA9IHRydWU7CisJCXNk YXRhLT5kZXYtPnByaXZfZGVzdHJ1Y3RvciA9IG1hYzgwMjE1NF93cGFuX2ZyZWU7CiAJCXNkYXRh LT5kZXYtPm5ldGRldl9vcHMgPSAmbWFjODAyMTU0X3dwYW5fb3BzOwogCQlzZGF0YS0+ZGV2LT5t bF9wcml2ID0gJm1hYzgwMjE1NF9tbG1lX3dwYW47CiAJCXdwYW5fZGV2LT5wcm9taXNjdW91c19t b2RlID0gZmFsc2U7CkBAIC02MDgsNyArNjA3LDcgQEAgaWVlZTgwMjE1NF9zZXR1cF9zZGF0YShz dHJ1Y3QgaWVlZTgwMjE1NF9zdWJfaWZfZGF0YSAqc2RhdGEsCiAKIAkJYnJlYWs7CiAJY2FzZSBO TDgwMjE1NF9JRlRZUEVfTU9OSVRPUjoKLQkJc2RhdGEtPmRldi0+ZGVzdHJ1Y3RvciA9IGZyZWVf bmV0ZGV2OworCQlzZGF0YS0+ZGV2LT5uZWVkc19mcmVlX25ldGRldiA9IHRydWU7CiAJCXNkYXRh LT5kZXYtPm5ldGRldl9vcHMgPSAmbWFjODAyMTU0X21vbml0b3Jfb3BzOwogCQl3cGFuX2Rldi0+ cHJvbWlzY3VvdXNfbW9kZSA9IHRydWU7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvbmV0L29wZW52 c3dpdGNoL3Zwb3J0LWludGVybmFsX2Rldi5jIGIvbmV0L29wZW52c3dpdGNoL3Zwb3J0LWludGVy bmFsX2Rldi5jCmluZGV4IDg5MTkzYTYuLjA0YTMxMjggMTAwNjQ0Ci0tLSBhL25ldC9vcGVudnN3 aXRjaC92cG9ydC1pbnRlcm5hbF9kZXYuYworKysgYi9uZXQvb3BlbnZzd2l0Y2gvdnBvcnQtaW50 ZXJuYWxfZGV2LmMKQEAgLTk0LDcgKzk0LDYgQEAgc3RhdGljIHZvaWQgaW50ZXJuYWxfZGV2X2Rl c3RydWN0b3Ioc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlzdHJ1Y3QgdnBvcnQgKnZwb3J0ID0g b3ZzX2ludGVybmFsX2Rldl9nZXRfdnBvcnQoZGV2KTsKIAogCW92c192cG9ydF9mcmVlKHZwb3J0 KTsKLQlmcmVlX25ldGRldihkZXYpOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMTU2LDcgKzE1NSw4 IEBAIHN0YXRpYyB2b2lkIGRvX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAJbmV0 ZGV2LT5wcml2X2ZsYWdzICY9IH5JRkZfVFhfU0tCX1NIQVJJTkc7CiAJbmV0ZGV2LT5wcml2X2Zs YWdzIHw9IElGRl9MSVZFX0FERFJfQ0hBTkdFIHwgSUZGX09QRU5WU1dJVENIIHwKIAkJCSAgICAg IElGRl9QSE9OWV9IRUFEUk9PTSB8IElGRl9OT19RVUVVRTsKLQluZXRkZXYtPmRlc3RydWN0b3Ig PSBpbnRlcm5hbF9kZXZfZGVzdHJ1Y3RvcjsKKwluZXRkZXYtPm5lZWRzX2ZyZWVfbmV0ZGV2ID0g dHJ1ZTsKKwluZXRkZXYtPnByaXZfZGVzdHJ1Y3RvciA9IGludGVybmFsX2Rldl9kZXN0cnVjdG9y OwogCW5ldGRldi0+ZXRodG9vbF9vcHMgPSAmaW50ZXJuYWxfZGV2X2V0aHRvb2xfb3BzOwogCW5l dGRldi0+cnRubF9saW5rX29wcyA9ICZpbnRlcm5hbF9kZXZfbGlua19vcHM7CiAKZGlmZiAtLWdp dCBhL25ldC9waG9uZXQvcGVwLWdwcnMuYyBiL25ldC9waG9uZXQvcGVwLWdwcnMuYwppbmRleCAy MWMyOGI1Li4yYzkzMzc5IDEwMDY0NAotLS0gYS9uZXQvcGhvbmV0L3BlcC1ncHJzLmMKKysrIGIv bmV0L3Bob25ldC9wZXAtZ3Bycy5jCkBAIC0yMzYsNyArMjM2LDcgQEAgc3RhdGljIHZvaWQgZ3By c19zZXR1cChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCWRldi0+dHhfcXVldWVfbGVuCT0gMTA7 CiAKIAlkZXYtPm5ldGRldl9vcHMJCT0gJmdwcnNfbmV0ZGV2X29wczsKLQlkZXYtPmRlc3RydWN0 b3IJCT0gZnJlZV9uZXRkZXY7CisJZGV2LT5uZWVkc19mcmVlX25ldGRldgk9IHRydWU7CiB9CiAK IC8qCi0tIAoyLjQuMTEKCgpGcm9tIGE0NjUwMzYwOWRjMzljN2M1YWU1NzY2MmZkM2Y4NmZmZDY1 NWUwNjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZXBoZW4gUm90aHdlbGwgPHNm ckBjYW5iLmF1dWcub3JnLmF1PgpEYXRlOiBUaHUsIDggSnVuIDIwMTcgMTk6MDY6MjkgKzEwMDAK U3ViamVjdDogW1BBVENIIDAzLzMyXSBuZXQ6IHMzOTA6IGZpeCB1cCBmb3IgIkZpeCBpbmNvbnNp c3RlbnQgdGVhcmRvd24gYW5kCiByZWxlYXNlIG9mIHByaXZhdGUgbmV0ZGV2IHN0YXRlIgoKWyBV cHN0cmVhbSBjb21taXQgY2QxOTk3ZjZjMTE0ODNkYTgxOWE3NzE5YWEwMTMwOTNiODAwMzc0MyBd CgpTaWduZWQtb2ZmLWJ5OiBTdGVwaGVuIFJvdGh3ZWxsIDxzZnJAY2FuYi5hdXVnLm9yZy5hdT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvczM5MC9uZXQvbmV0aXVjdi5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9u ZXQvbmV0aXVjdi5jIGIvZHJpdmVycy9zMzkwL25ldC9uZXRpdWN2LmMKaW5kZXggM2Y4NWI5Ny4u NmQzNDk0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9uZXRpdWN2LmMKKysrIGIvZHJp dmVycy9zMzkwL25ldC9uZXRpdWN2LmMKQEAgLTE5NTQsNyArMTk1NCw2IEBAIHN0YXRpYyB2b2lk IG5ldGl1Y3ZfZnJlZV9uZXRkZXZpY2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkJcHJpdnB0 ci0+Y29ubiA9IE5VTEw7IHByaXZwdHItPmZzbSA9IE5VTEw7CiAJCS8qIHByaXZwdHIgZ2V0cyBm cmVlZCBieSBmcmVlX25ldGRldigpICovCiAJfQotCWZyZWVfbmV0ZGV2KGRldik7CiB9CiAKIC8q KgpAQCAtMTk3Miw3ICsxOTcxLDggQEAgc3RhdGljIHZvaWQgbmV0aXVjdl9zZXR1cF9uZXRkZXZp Y2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlkZXYtPm10dQkgICAgICAgICA9IE5FVElVQ1Zf TVRVX0RFRkFVTFQ7CiAJZGV2LT5taW5fbXR1CQkgPSA1NzY7CiAJZGV2LT5tYXhfbXR1CQkgPSBO RVRJVUNWX01UVV9NQVg7Ci0JZGV2LT5kZXN0cnVjdG9yICAgICAgICAgID0gbmV0aXVjdl9mcmVl X25ldGRldmljZTsKKwlkZXYtPm5lZWRzX2ZyZWVfbmV0ZGV2ICAgPSB0cnVlOworCWRldi0+cHJp dl9kZXN0cnVjdG9yICAgICA9IG5ldGl1Y3ZfZnJlZV9uZXRkZXZpY2U7CiAJZGV2LT5oYXJkX2hl YWRlcl9sZW4gICAgID0gTkVUSVVDVl9IRFJMRU47CiAJZGV2LT5hZGRyX2xlbiAgICAgICAgICAg ID0gMDsKIAlkZXYtPnR5cGUgICAgICAgICAgICAgICAgPSBBUlBIUkRfU0xJUDsKLS0gCjIuNC4x MQoKCkZyb20gMzA3Yjk3MGZhNWQyYzkwYWUwNDgyOTZiMTAwNmIwNGRlMzhiOGNhMSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9oYW5uZXMgQmVyZyA8am9oYW5uZXMuYmVyZ0BpbnRl bC5jb20+CkRhdGU6IEZyaSwgOSBKdW4gMjAxNyAyMTozMzowOSArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDQvMzJdIG1hYzgwMjExOiBmcmVlIG5ldGRldiBvbiBkZXZfYWxsb2NfbmFtZSgpIGVycm9y CgpbIFVwc3RyZWFtIGNvbW1pdCBjN2E2MWNiYTcxZmQxNTFjYzdkOWViZTUzYTA5MGUwZTYxZWVl YmYzIF0KClRoZSBjaGFuZ2UgdG8gcmVtb3ZlIGZyZWVfbmV0ZGV2KCkgZnJvbSBpZWVlODAyMTFf aWZfZnJlZSgpCmVycm9uZW91c2x5IGRpZG4ndCBhZGQgdGhlIG5lY2Vzc2FyeSBmcmVlX25ldGRl digpIGZvciB3aGVuCmllZWU4MDIxMV9pZl9mcmVlKCkgaXMgY2FsbGVkIGRpcmVjdGx5IGluIG9u ZSBwbGFjZSwgcmF0aGVyCnRoYW4gYXMgdGhlIHByaXZfZGVzdHJ1Y3Rvci4gQWRkIHRoZSBtaXNz aW5nIGNhbGwuCgpGaXhlczogY2YxMjRkYjU2NmU2ICgibmV0OiBGaXggaW5jb25zaXN0ZW50IHRl YXJkb3duIGFuZCByZWxlYXNlIG9mIHByaXZhdGUgbmV0ZGV2IHN0YXRlLiIpClNpZ25lZC1vZmYt Ynk6IEpvaGFubmVzIEJlcmcgPGpvaGFubmVzLmJlcmdAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L21hYzgwMjEx L2lmYWNlLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdp dCBhL25ldC9tYWM4MDIxMS9pZmFjZS5jIGIvbmV0L21hYzgwMjExL2lmYWNlLmMKaW5kZXggNmQy MzQyNy4uOGY3ODNkNSAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL2lmYWNlLmMKKysrIGIvbmV0 L21hYzgwMjExL2lmYWNlLmMKQEAgLTE4MTAsNiArMTgxMCw3IEBAIGludCBpZWVlODAyMTFfaWZf YWRkKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLCBjb25zdCBjaGFyICpuYW1lLAogCQly ZXQgPSBkZXZfYWxsb2NfbmFtZShuZGV2LCBuZGV2LT5uYW1lKTsKIAkJaWYgKHJldCA8IDApIHsK IAkJCWllZWU4MDIxMV9pZl9mcmVlKG5kZXYpOworCQkJZnJlZV9uZXRkZXYobmRldik7CiAJCQly ZXR1cm4gcmV0OwogCQl9CiAKLS0gCjIuNC4xMQoKCkZyb20gOTE2OWM2NzM0NDZhNjdhYjljNDEx ODA4MzdkNzBiNjUwZjQ3NjM2MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWF0ZXVz eiBKdXJjenlrIDxtanVyY3p5a0Bnb29nbGUuY29tPgpEYXRlOiBXZWQsIDcgSnVuIDIwMTcgMTY6 MTQ6MjkgKzAyMDAKU3ViamVjdDogW1BBVENIIDA1LzMyXSBkZWNuZXQ6IGRuX3J0bXNnOiBJbXBy b3ZlIGlucHV0IGxlbmd0aCBzYW5pdGl6YXRpb24gaW4KIGRucm1nX3JlY2VpdmVfdXNlcl9za2IK ClsgVXBzdHJlYW0gY29tbWl0IGRkMGRhMTdiMjA5ZWQ5MWYzOTg3Mjc2NjYzNGNhOTY3YzE3MGFk YTEgXQoKVmVyaWZ5IHRoYXQgdGhlIGxlbmd0aCBvZiB0aGUgc29ja2V0IGJ1ZmZlciBpcyBzdWZm aWNpZW50IHRvIGNvdmVyIHRoZQpubG1zZ2hkciBzdHJ1Y3R1cmUgYmVmb3JlIGFjY2Vzc2luZyB0 aGUgbmxoLT5ubG1zZ19sZW4gZmllbGQgZm9yIGZ1cnRoZXIKaW5wdXQgc2FuaXRpemF0aW9uLiBJ ZiB0aGUgY2xpZW50IG9ubHkgc3VwcGxpZXMgMS0zIGJ5dGVzIG9mIGRhdGEgaW4Kc2tfYnVmZiwg dGhlbiBubGgtPm5sbXNnX2xlbiByZW1haW5zIHBhcnRpYWxseSB1bmluaXRpYWxpemVkIGFuZApj b250YWlucyBsZWZ0b3ZlciBtZW1vcnkgZnJvbSB0aGUgY29ycmVzcG9uZGluZyBrZXJuZWwgYWxs b2NhdGlvbi4KT3BlcmF0aW5nIG9uIHN1Y2ggZGF0YSBtYXkgcmVzdWx0IGluIGluZGV0ZXJtaW5h dGUgZXZhbHVhdGlvbiBvZiB0aGUKbmxtc2dfbGVuIDwgc2l6ZW9mKCpubGgpIGV4cHJlc3Npb24u CgpUaGUgYnVnIHdhcyBkaXNjb3ZlcmVkIGJ5IGEgcnVudGltZSBpbnN0cnVtZW50YXRpb24gZGVz aWduZWQgdG8gZGV0ZWN0CnVzZSBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSBpbiB0aGUga2VybmVs LiBUaGUgcGF0Y2ggcHJldmVudHMgdGhpcyBhbmQKb3RoZXIgc2ltaWxhciB0b29scyAoZS5nLiBL TVNBTikgZnJvbSBmbGFnZ2luZyB0aGlzIGJlaGF2aW9yIGluIHRoZSBmdXR1cmUuCgpTaWduZWQt b2ZmLWJ5OiBNYXRldXN6IEp1cmN6eWsgPG1qdXJjenlrQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvZGVjbmV0 L25ldGZpbHRlci9kbl9ydG1zZy5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2RlY25ldC9uZXRmaWx0ZXIv ZG5fcnRtc2cuYyBiL25ldC9kZWNuZXQvbmV0ZmlsdGVyL2RuX3J0bXNnLmMKaW5kZXggODVmMmZk Yy4uMjkyNDZiYyAxMDA2NDQKLS0tIGEvbmV0L2RlY25ldC9uZXRmaWx0ZXIvZG5fcnRtc2cuYwor KysgYi9uZXQvZGVjbmV0L25ldGZpbHRlci9kbl9ydG1zZy5jCkBAIC0xMDIsNyArMTAyLDkgQEAg c3RhdGljIGlubGluZSB2b2lkIGRucm1nX3JlY2VpdmVfdXNlcl9za2Ioc3RydWN0IHNrX2J1ZmYg KnNrYikKIHsKIAlzdHJ1Y3Qgbmxtc2doZHIgKm5saCA9IG5sbXNnX2hkcihza2IpOwogCi0JaWYg KG5saC0+bmxtc2dfbGVuIDwgc2l6ZW9mKCpubGgpIHx8IHNrYi0+bGVuIDwgbmxoLT5ubG1zZ19s ZW4pCisJaWYgKHNrYi0+bGVuIDwgc2l6ZW9mKCpubGgpIHx8CisJICAgIG5saC0+bmxtc2dfbGVu IDwgc2l6ZW9mKCpubGgpIHx8CisJICAgIHNrYi0+bGVuIDwgbmxoLT5ubG1zZ19sZW4pCiAJCXJl dHVybjsKIAogCWlmICghbmV0bGlua19jYXBhYmxlKHNrYiwgQ0FQX05FVF9BRE1JTikpCi0tIAoy LjQuMTEKCgpGcm9tIDg5MTkyOWY1NzA4ZmZkMjVjMmEwNmM1ZjBiMGE1MDYzYjliOWEyZTYgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ICJNaW50eiwgWXV2YWwiIDxZdXZhbC5NaW50ekBj YXZpdW0uY29tPgpEYXRlOiBXZWQsIDcgSnVuIDIwMTcgMjE6MDA6MzMgKzAzMDAKU3ViamVjdDog W1BBVENIIDA2LzMyXSBuZXQ6IFplcm8gaWZsYV92Zl9pbmZvIGluIHJ0bmxfZmlsbF92ZmluZm8o KQoKWyBVcHN0cmVhbSBjb21taXQgMGVlZDljZjU4NDQ2YjI4YjIzMzM4OGI3ZjIyNGNiY2EyNjhi Njk4NiBdCgpTb21lIG9mIHRoZSBzdHJ1Y3R1cmUncyBmaWVsZHMgYXJlIG5vdCBpbml0aWFsaXpl ZCBieSB0aGUKcnRuZXRsaW5rLiBJZiBkcml2ZXIgZG9lc24ndCBzZXQgdGhvc2UgaW4gbmRvX2dl dF92Zl9jb25maWcoKSwKdGhleSdkIGxlYWsgbWVtb3J5IHRvIHVzZXIuCgpTaWduZWQtb2ZmLWJ5 OiBZdXZhbCBNaW50eiA8WXV2YWwuTWludHpAY2F2aXVtLmNvbT4KQ0M6IE1pY2hhbCBTY2htaWR0 IDxtc2NobWlkdEByZWRoYXQuY29tPgpSZXZpZXdlZC1ieTogR3JlZyBSb3NlIDxndnJvc2U4MTky QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9jb3JlL3J0bmV0bGluay5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2Vk LCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9y dG5ldGxpbmsuYyBiL25ldC9jb3JlL3J0bmV0bGluay5jCmluZGV4IDhkNGExODUuLmEyNjEwZTEg MTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3J0bmV0bGluay5jCisrKyBiL25ldC9jb3JlL3J0bmV0bGlu ay5jCkBAIC0xMTI3LDYgKzExMjcsOCBAQCBzdGF0aWMgbm9pbmxpbmVfZm9yX3N0YWNrIGludCBy dG5sX2ZpbGxfdmZpbmZvKHN0cnVjdCBza19idWZmICpza2IsCiAJc3RydWN0IGlmbGFfdmZfbWFj IHZmX21hYzsKIAlzdHJ1Y3QgaWZsYV92Zl9pbmZvIGl2aTsKIAorCW1lbXNldCgmaXZpLCAwLCBz aXplb2YoaXZpKSk7CisKIAkvKiBOb3QgYWxsIFNSLUlPViBjYXBhYmxlIGRyaXZlcnMgc3VwcG9y dCB0aGUKIAkgKiBzcG9vZmNoZWNrIGFuZCAiUlNTIHF1ZXJ5IGVuYWJsZSIgcXVlcnkuICBQcmVz ZXQgdG8KIAkgKiAtMSBzbyB0aGUgdXNlciBzcGFjZSB0b29sIGNhbiBkZXRlY3QgdGhhdCB0aGUg ZHJpdmVyCkBAIC0xMTM1LDcgKzExMzcsNiBAQCBzdGF0aWMgbm9pbmxpbmVfZm9yX3N0YWNrIGlu dCBydG5sX2ZpbGxfdmZpbmZvKHN0cnVjdCBza19idWZmICpza2IsCiAJaXZpLnNwb29mY2hrID0g LTE7CiAJaXZpLnJzc19xdWVyeV9lbiA9IC0xOwogCWl2aS50cnVzdGVkID0gLTE7Ci0JbWVtc2V0 KGl2aS5tYWMsIDAsIHNpemVvZihpdmkubWFjKSk7CiAJLyogVGhlIGRlZmF1bHQgdmFsdWUgZm9y IFZGIGxpbmsgc3RhdGUgaXMgImF1dG8iCiAJICogSUZMQV9WRl9MSU5LX1NUQVRFX0FVVE8gd2hp Y2ggZXF1YWxzIHplcm8KIAkgKi8KLS0gCjIuNC4xMQoKCkZyb20gY2RhMGJmMDk1MDQ3NTgxNDU0 ZGNmZjFmMGU3ZTBhOWQ5MTBiMTMzMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2 aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpEYXRlOiBXZWQsIDcgSnVuIDIwMTcgMTI6MjY6 MjMgLTA2MDAKU3ViamVjdDogW1BBVENIIDA3LzMyXSBuZXQ6IGlwdjY6IFJlbGVhc2Ugcm91dGUg d2hlbiBkZXZpY2UgaXMgdW5yZWdpc3RlcmluZwoKWyBVcHN0cmVhbSBjb21taXQgODM5N2VkMzZi N2M1ODVmOGQzZTA2YzQzMWY0MTM3MzA5MTI0Zjc4ZiBdCgpSb29wYSByZXBvcnRlZCBhdHRlbXB0 cyB0byBkZWxldGUgYSBib25kIGRldmljZSB0aGF0IGlzIHJlZmVyZW5jZWQgaW4gYQptdWx0aXBh dGggcm91dGUgaXMgaGFuZ2luZzoKCiQgaWZkb3duIGJvbmQyICAgICMgaWZ1cGRvd24yIGNvbW1h bmQgdGhhdCBkZWxldGVzIHZpcnR1YWwgZGV2aWNlcwp1bnJlZ2lzdGVyX25ldGRldmljZTogd2Fp dGluZyBmb3IgYm9uZDIgdG8gYmVjb21lIGZyZWUuIFVzYWdlIGNvdW50ID0gMgoKU3RlcHMgdG8g cmVwcm9kdWNlOgogICAgZWNobyAxID4gL3Byb2Mvc3lzL25ldC9pcHY2L2NvbmYvYWxsL2lnbm9y ZV9yb3V0ZXNfd2l0aF9saW5rZG93bgogICAgaXAgbGluayBhZGQgZGV2IGJvbmQxMiB0eXBlIGJv bmQKICAgIGlwIGxpbmsgYWRkIGRldiBib25kMTMgdHlwZSBib25kCiAgICBpcCBhZGRyIGFkZCAy MDAxOmRiODoyOjowLzY0IGRldiBib25kMTIKICAgIGlwIGFkZHIgYWRkIDIwMDE6ZGI4OjM6OjAv NjQgZGV2IGJvbmQxMwogICAgaXAgcm91dGUgYWRkIDIwMDE6ZGI4OjMzOjowLzY0IG5leHRob3Ag dmlhIDIwMDE6ZGI4OjI6OjIgbmV4dGhvcCB2aWEgMjAwMTpkYjg6Mzo6MgogICAgaXAgbGluayBk ZWwgZGV2IGJvbmQxMgogICAgaXAgbGluayBkZWwgZGV2IGJvbmQxMwoKVGhlIHJvb3QgY2F1c2Ug aXMgdGhlIHJlY2VudCBjaGFuZ2UgdG8ga2VlcCByb3V0ZXMgb24gYSBsaW5rZG93bi4gVXBkYXRl CnRoZSBjaGVjayB0byBkZXRlY3Qgd2hlbiB0aGUgZGV2aWNlIGlzIHVucmVnaXN0ZXJpbmcgYW5k IHJlbGVhc2UgdGhlCnJvdXRlIGZvciB0aGF0IGNhc2UuCgpGaXhlczogYTFhMjJjMTIwNjBlNCAo Im5ldDogaXB2NjogS2VlcCBuZXh0aG9wIG9mIG11bHRpcGF0aCByb3V0ZSBvbiBhZG1pbiBkb3du IikKUmVwb3J0ZWQtYnk6IFJvb3BhIFByYWJodSA8cm9vcGFAY3VtdWx1c25ldHdvcmtzLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpBY2tlZC1ieTog Um9vcGEgUHJhYmh1IDxyb29wYUBjdW11bHVzbmV0d29ya3MuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9saW51eC9u ZXRkZXZpY2UuaCB8IDUgKysrKysKIG5ldC9pcHY2L3JvdXRlLmMgICAgICAgICAgfCAxICsKIDIg ZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC9uZXRkZXZpY2UuaCBiL2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgKaW5kZXggM2NjYWJiNC4u YWEzOGJiMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaAorKysgYi9pbmNs dWRlL2xpbnV4L25ldGRldmljZS5oCkBAIC00MjMyLDYgKzQyMzIsMTEgQEAgc3RhdGljIGlubGlu ZSBjb25zdCBjaGFyICpuZXRkZXZfbmFtZShjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQog CXJldHVybiBkZXYtPm5hbWU7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBuZXRkZXZfdW5yZWdp c3RlcmluZyhjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQoreworCXJldHVybiBkZXYtPnJl Z19zdGF0ZSA9PSBORVRSRUdfVU5SRUdJU1RFUklORzsKK30KKwogc3RhdGljIGlubGluZSBjb25z dCBjaGFyICpuZXRkZXZfcmVnX3N0YXRlKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7 CiAJc3dpdGNoIChkZXYtPnJlZ19zdGF0ZSkgewpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvcm91dGUu YyBiL25ldC9pcHY2L3JvdXRlLmMKaW5kZXggZDMxNmQwMC4uMTA3MmZjMSAxMDA2NDQKLS0tIGEv bmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2Ni9yb3V0ZS5jCkBAIC0yODA0LDYgKzI4MDQs NyBAQCBzdGF0aWMgaW50IGZpYjZfaWZkb3duKHN0cnVjdCBydDZfaW5mbyAqcnQsIHZvaWQgKmFy ZykKIAlpZiAoKHJ0LT5kc3QuZGV2ID09IGRldiB8fCAhZGV2KSAmJgogCSAgICBydCAhPSBhZG4t Pm5ldC0+aXB2Ni5pcDZfbnVsbF9lbnRyeSAmJgogCSAgICAocnQtPnJ0NmlfbnNpYmxpbmdzID09 IDAgfHwKKwkgICAgIChkZXYgJiYgbmV0ZGV2X3VucmVnaXN0ZXJpbmcoZGV2KSkgfHwKIAkgICAg ICFydC0+cnQ2aV9pZGV2LT5jbmYuaWdub3JlX3JvdXRlc193aXRoX2xpbmtkb3duKSkKIAkJcmV0 dXJuIC0xOwogCi0tIAoyLjQuMTEKCgpGcm9tIGNiZWE4YzE4MTEwZWU1ZGI3NDQzNjBiYjkxYjZm Y2E5MTVmNDkzNmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhdmlkIEFoZXJuIDxk c2FoZXJuQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCA4IEp1biAyMDE3IDExOjMxOjExIC0wNjAwClN1 YmplY3Q6IFtQQVRDSCAwOC8zMl0gbmV0OiB2cmY6IE1ha2UgYWRkX2ZpYl9ydWxlcyBwZXIgbmV0 d29yayBuYW1lc3BhY2UgZmxhZwoKWyBVcHN0cmVhbSBjb21taXQgMDk3ZDNjOTUwOGRjNTgyODYz NDRlNGEyMmIzMDAwOThjZjBjMTU2NiBdCgpDb21taXQgMWFhNmM0ZjZiOGNkOCAoIm5ldDogdnJm OiBBZGQgbDNtZGV2IHJ1bGVzIG9uIGZpcnN0IGRldmljZSBjcmVhdGUiKQphZGRzIHRoZSBsM21k ZXYgRklCIHJ1bGUgdGhlIGZpcnN0IHRpbWUgYSBWUkYgZGV2aWNlIGlzIGNyZWF0ZWQuIEhvd2V2 ZXIsCml0IG9ubHkgY3JlYXRlcyB0aGUgcnVsZSBvbmNlIGFuZCBvbmx5IGluIHRoZSBuYW1lc3Bh Y2UgdGhlIGZpcnN0IGRldmljZQppcyBjcmVhdGVkIC0gd2hpY2ggbWF5IG5vdCBiZSBpbml0X25l dC4gRml4IGJ5IHVzaW5nIHRoZSBuZXRfZ2VuZXJpYwpjYXBhYmlsaXR5IHRvIG1ha2UgdGhlIGFk ZF9maWJfcnVsZXMgZmxhZyBwZXIgbmV0d29yayBuYW1lc3BhY2UuCgpGaXhlczogMWFhNmM0ZjZi OGNkOCAoIm5ldDogdnJmOiBBZGQgbDNtZGV2IHJ1bGVzIG9uIGZpcnN0IGRldmljZSBjcmVhdGUi KQpSZXBvcnRlZC1ieTogUGV0ciBNYWNoYXRhIDxwZXRybUBtZWxsYW5veC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3ZyZi5j IHwgMzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMzIgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC92cmYuYyBiL2RyaXZlcnMvbmV0L3ZyZi5jCmluZGV4IGU2NjkzNzIuLjJlNjJjNGQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3ZyZi5jCisrKyBiL2RyaXZlcnMvbmV0L3ZyZi5jCkBAIC0z NiwxMiArMzYsMTQgQEAKICNpbmNsdWRlIDxuZXQvYWRkcmNvbmYuaD4KICNpbmNsdWRlIDxuZXQv bDNtZGV2Lmg+CiAjaW5jbHVkZSA8bmV0L2ZpYl9ydWxlcy5oPgorI2luY2x1ZGUgPG5ldC9uZXRu cy9nZW5lcmljLmg+CiAKICNkZWZpbmUgRFJWX05BTUUJInZyZiIKICNkZWZpbmUgRFJWX1ZFUlNJ T04JIjEuMCIKIAogI2RlZmluZSBGSUJfUlVMRV9QUkVGICAxMDAwICAgICAgIC8qIGRlZmF1bHQg cHJlZmVyZW5jZSBmb3IgRklCIHJ1bGVzICovCi1zdGF0aWMgYm9vbCBhZGRfZmliX3J1bGVzID0g dHJ1ZTsKKworc3RhdGljIHVuc2lnbmVkIGludCB2cmZfbmV0X2lkOwogCiBzdHJ1Y3QgbmV0X3Zy ZiB7CiAJc3RydWN0IHJ0YWJsZSBfX3JjdQkqcnRoOwpAQCAtMTI1Miw2ICsxMjU0LDggQEAgc3Rh dGljIGludCB2cmZfbmV3bGluayhzdHJ1Y3QgbmV0ICpzcmNfbmV0LCBzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LAogCQkgICAgICAgc3RydWN0IG5sYXR0ciAqdGJbXSwgc3RydWN0IG5sYXR0ciAqZGF0 YVtdKQogewogCXN0cnVjdCBuZXRfdnJmICp2cmYgPSBuZXRkZXZfcHJpdihkZXYpOworCWJvb2wg KmFkZF9maWJfcnVsZXM7CisJc3RydWN0IG5ldCAqbmV0OwogCWludCBlcnI7CiAKIAlpZiAoIWRh dGEgfHwgIWRhdGFbSUZMQV9WUkZfVEFCTEVdKQpAQCAtMTI2NywxMyArMTI3MSwxNSBAQCBzdGF0 aWMgaW50IHZyZl9uZXdsaW5rKHN0cnVjdCBuZXQgKnNyY19uZXQsIHN0cnVjdCBuZXRfZGV2aWNl ICpkZXYsCiAJaWYgKGVycikKIAkJZ290byBvdXQ7CiAKLQlpZiAoYWRkX2ZpYl9ydWxlcykgewor CW5ldCA9IGRldl9uZXQoZGV2KTsKKwlhZGRfZmliX3J1bGVzID0gbmV0X2dlbmVyaWMobmV0LCB2 cmZfbmV0X2lkKTsKKwlpZiAoKmFkZF9maWJfcnVsZXMpIHsKIAkJZXJyID0gdnJmX2FkZF9maWJf cnVsZXMoZGV2KTsKIAkJaWYgKGVycikgewogCQkJdW5yZWdpc3Rlcl9uZXRkZXZpY2UoZGV2KTsK IAkJCWdvdG8gb3V0OwogCQl9Ci0JCWFkZF9maWJfcnVsZXMgPSBmYWxzZTsKKwkJKmFkZF9maWJf cnVsZXMgPSBmYWxzZTsKIAl9CiAKIG91dDoKQEAgLTEzNTYsMTYgKzEzNjIsMzggQEAgc3RhdGlj IHN0cnVjdCBub3RpZmllcl9ibG9jayB2cmZfbm90aWZpZXJfYmxvY2sgX19yZWFkX21vc3RseSA9 IHsKIAkubm90aWZpZXJfY2FsbCA9IHZyZl9kZXZpY2VfZXZlbnQsCiB9OwogCisvKiBJbml0aWFs aXplIHBlciBuZXR3b3JrIG5hbWVzcGFjZSBzdGF0ZSAqLworc3RhdGljIGludCBfX25ldF9pbml0 IHZyZl9uZXRuc19pbml0KHN0cnVjdCBuZXQgKm5ldCkKK3sKKwlib29sICphZGRfZmliX3J1bGVz ID0gbmV0X2dlbmVyaWMobmV0LCB2cmZfbmV0X2lkKTsKKworCSphZGRfZmliX3J1bGVzID0gdHJ1 ZTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHBlcm5ldF9vcGVyYXRpb25zIHZy Zl9uZXRfb3BzIF9fbmV0X2luaXRkYXRhID0geworCS5pbml0ID0gdnJmX25ldG5zX2luaXQsCisJ LmlkICAgPSAmdnJmX25ldF9pZCwKKwkuc2l6ZSA9IHNpemVvZihib29sKSwKK307CisKIHN0YXRp YyBpbnQgX19pbml0IHZyZl9pbml0X21vZHVsZSh2b2lkKQogewogCWludCByYzsKIAogCXJlZ2lz dGVyX25ldGRldmljZV9ub3RpZmllcigmdnJmX25vdGlmaWVyX2Jsb2NrKTsKIAotCXJjID0gcnRu bF9saW5rX3JlZ2lzdGVyKCZ2cmZfbGlua19vcHMpOworCXJjID0gcmVnaXN0ZXJfcGVybmV0X3N1 YnN5cygmdnJmX25ldF9vcHMpOwogCWlmIChyYyA8IDApCiAJCWdvdG8gZXJyb3I7CiAKKwlyYyA9 IHJ0bmxfbGlua19yZWdpc3RlcigmdnJmX2xpbmtfb3BzKTsKKwlpZiAocmMgPCAwKSB7CisJCXVu cmVnaXN0ZXJfcGVybmV0X3N1YnN5cygmdnJmX25ldF9vcHMpOworCQlnb3RvIGVycm9yOworCX0K KwogCXJldHVybiAwOwogCiBlcnJvcjoKLS0gCjIuNC4xMQoKCkZyb20gMDM0YjQxYzQ0Y2E3OTA0 ZDc1YzljZGFiOTFhN2JhNDQ3MTMyMDQxZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog TWF0ZXVzeiBKdXJjenlrIDxtanVyY3p5a0Bnb29nbGUuY29tPgpEYXRlOiBUaHUsIDggSnVuIDIw MTcgMTE6MTM6MzYgKzAyMDAKU3ViamVjdDogW1BBVENIIDA5LzMyXSBhZl91bml4OiBBZGQgc29j a2FkZHIgbGVuZ3RoIGNoZWNrcyBiZWZvcmUgYWNjZXNzaW5nCiBzYV9mYW1pbHkgaW4gYmluZCBh bmQgY29ubmVjdCBoYW5kbGVycwoKWyBVcHN0cmVhbSBjb21taXQgZGVmYmNmMmRlY2M5MDNhMjhk ODM5OGFhNDc3YjY4ODFlNzExZTNlYSBdCgpWZXJpZnkgdGhhdCB0aGUgY2FsbGVyLXByb3ZpZGVk IHNvY2thZGRyIHN0cnVjdHVyZSBpcyBsYXJnZSBlbm91Z2ggdG8KY29udGFpbiB0aGUgc2FfZmFt aWx5IGZpZWxkLCBiZWZvcmUgYWNjZXNzaW5nIGl0IGluIGJpbmQoKSBhbmQgY29ubmVjdCgpCmhh bmRsZXJzIG9mIHRoZSBBRl9VTklYIHNvY2tldC4gU2luY2UgbmVpdGhlciBzeXNjYWxsIGVuZm9y Y2VzIGEgbWluaW11bQpzaXplIG9mIHRoZSBjb3JyZXNwb25kaW5nIG1lbW9yeSByZWdpb24sIHZl cnkgc2hvcnQgc29ja2FkZHJzICh6ZXJvIG9yCm9uZSBieXRlIGxvbmcpIHJlc3VsdCBpbiBvcGVy YXRpbmcgb24gdW5pbml0aWFsaXplZCBtZW1vcnkgd2hpbGUKcmVmZXJlbmNpbmcgLnNhX2ZhbWls eS4KClNpZ25lZC1vZmYtYnk6IE1hdGV1c3ogSnVyY3p5ayA8bWp1cmN6eWtAZ29vZ2xlLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC91bml4L2FmX3VuaXguYyB8IDcgKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC91bml4L2FmX3VuaXguYyBi L25ldC91bml4L2FmX3VuaXguYwppbmRleCA5Mjg2OTFjLi40NzVlMTE3MCAxMDA2NDQKLS0tIGEv bmV0L3VuaXgvYWZfdW5peC5jCisrKyBiL25ldC91bml4L2FmX3VuaXguYwpAQCAtOTk5LDcgKzk5 OSw4IEBAIHN0YXRpYyBpbnQgdW5peF9iaW5kKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBz b2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbikKIAlzdHJ1Y3QgcGF0aCBwYXRoID0geyBOVUxM LCBOVUxMIH07CiAKIAllcnIgPSAtRUlOVkFMOwotCWlmIChzdW5hZGRyLT5zdW5fZmFtaWx5ICE9 IEFGX1VOSVgpCisJaWYgKGFkZHJfbGVuIDwgb2Zmc2V0b2ZlbmQoc3RydWN0IHNvY2thZGRyX3Vu LCBzdW5fZmFtaWx5KSB8fAorCSAgICBzdW5hZGRyLT5zdW5fZmFtaWx5ICE9IEFGX1VOSVgpCiAJ CWdvdG8gb3V0OwogCiAJaWYgKGFkZHJfbGVuID09IHNpemVvZihzaG9ydCkpIHsKQEAgLTExMTAs NiArMTExMSwxMCBAQCBzdGF0aWMgaW50IHVuaXhfZGdyYW1fY29ubmVjdChzdHJ1Y3Qgc29ja2V0 ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIsCiAJdW5zaWduZWQgaW50IGhhc2g7CiAJaW50 IGVycjsKIAorCWVyciA9IC1FSU5WQUw7CisJaWYgKGFsZW4gPCBvZmZzZXRvZmVuZChzdHJ1Y3Qg c29ja2FkZHIsIHNhX2ZhbWlseSkpCisJCWdvdG8gb3V0OworCiAJaWYgKGFkZHItPnNhX2ZhbWls eSAhPSBBRl9VTlNQRUMpIHsKIAkJZXJyID0gdW5peF9ta25hbWUoc3VuYWRkciwgYWxlbiwgJmhh c2gpOwogCQlpZiAoZXJyIDwgMCkKLS0gCjIuNC4xMQoKCkZyb20gZjg2NDIyODAwNDY3YTkxZmQ3 ZmY3YTdhMTk5YTEzMjM0ZThkYjFkNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogS3Jp c3RlciBKb2hhbnNlbiA8a2pseEB0ZW1wbGVvZnN0dXBpZC5jb20+CkRhdGU6IFRodSwgOCBKdW4g MjAxNyAxMzoxMjozOCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMzJdIEZpeCBhbiBpbnRlcm1p dHRlbnQgcHJfZW1lcmcgd2FybmluZyBhYm91dCBsbyBiZWNvbWluZwogZnJlZS4KClsgVXBzdHJl YW0gY29tbWl0IGYxODZjZTYxYmI4MjM1ZDgwMDY4YzM5MGRjMmFhZDdjYTQyN2E0YzIgXQoKSXQg bG9va3MgbGlrZSB0aGlzOgoKTWVzc2FnZSBmcm9tIHN5c2xvZ2RAZmxhbWluZ28gYXQgQXByIDI2 IDAwOjQ1OjAwIC4uLgoga2VybmVsOnVucmVnaXN0ZXJfbmV0ZGV2aWNlOiB3YWl0aW5nIGZvciBs byB0byBiZWNvbWUgZnJlZS4gVXNhZ2UgY291bnQgPSA0CgpUaGV5IHNlZW0gdG8gY29pbmNpZGUg d2l0aCBuZXQgbmFtZXNwYWNlIHRlYXJkb3duLgoKVGhlIG1lc3NhZ2UgaXMgZW1pdHRlZCBieSBu ZXRkZXZfd2FpdF9hbGxyZWZzKCkuCgpGb3JjZWQgYSBrZHVtcCBpbiBuZXRkZXZfcnVuX3RvZG8s IGJ1dCBmb3VuZCB0aGF0IHRoZSByZWZjb3VudCBvbiB0aGUgbG8KZGV2aWNlIHdhcyBhbHJlYWR5 IDAgYXQgdGhlIHRpbWUgd2UgZ290IHRvIHRoZSBwYW5pYy4KClVzZWQgYmNjIHRvIGNoZWNrIHRo ZSBibG9ja2luZyBpbiBuZXRkZXZfcnVuX3RvZG8uICBUaGUgb25seSBwbGFjZXMKd2hlcmUgd2Un cmUgb2ZmIGNwdSB0aGVyZSBhcmUgaW4gdGhlIHJjdV9iYXJyaWVyKCkgYW5kIG1zbGVlcCgpIGNh bGxzLgpUaGF0IGJlaGF2aW9yIGlzIGV4cGVjdGVkLiAgVGhlIG1zbGVlcCB0aW1lIGNvaW5jaWRl cyB3aXRoIHRoZSBhbW91bnQgb2YKdGltZSB3ZSBzcGVuZCB3YWl0aW5nIGZvciB0aGUgcmVmY291 bnQgdG8gcmVhY2ggemVybzsgdGhlIHJjdV9iYXJyaWVyKCkKd2FpdCB0aW1lcyBhcmUgbm90IGV4 Y2Vzc2l2ZS4KCkFmdGVyIGxvb2tpbmcgdGhyb3VnaCB0aGUgbGlzdCBvZiBjYWxsYmFja3MgdGhh dCB0aGUgbmV0ZGV2aWNlIG5vdGlmaWVycwppbnZva2UgaW4gdGhpcyBwYXRoLCBpdCBhcHBlYXJz IHRoYXQgdGhlIGRzdF9kZXZfZXZlbnQgaXMgdGhlIG1vc3QKaW50ZXJlc3RpbmcuICBUaGUgZHN0 X2lmZG93biBwYXRoIHBsYWNlcyBhIGhvbGQgb24gdGhlIGxvb3BiYWNrX2RldiBhcwpwYXJ0IG9m IHJlbGVhc2luZyB0aGUgZGV2IGFzc29jaWF0ZWQgd2l0aCB0aGUgb3JpZ2luYWwgZHN0IGNhY2hl IGVudHJ5LgpNb3N0IG9mIG91ciBub3RpZmllciBjYWxsYmFja3MgYXJlIHN0cmFpZ2h0LWZvcndh cmQsIGJ1dCB0aGlzIG9uZSBhKQpsb29rcyBjb21wbGV4LCBhbmQgYikgcGxhY2VzIGEgaG9sZCBv biB0aGUgbmV0d29yayBpbnRlcmZhY2UgaW4KcXVlc3Rpb24uCgpJIGNvbnN0cnVjdGVkIGEgbmV3 IGJjYyBzY3JpcHQgdGhhdCB3YXRjaGVzIHZhcmlvdXMgZXZlbnRzIGluIHRoZQpsaWZ0aW1lIG9m IGEgZHN0IGNhY2hlIGVudHJ5LiAgTm90ZSB0aGF0IGRzdF9pZmRvd24gd2lsbCB0YWtlIGEgaG9s ZCBvbgp0aGUgbG9vcGJhY2sgZGV2aWNlIHVudGlsIHRoZSBpbnZhbGlkYXRlZCBkc3QgZW50cnkg Z2V0cyBmcmVlZC4KClsgICAgICBfX2RzdF9mcmVlXSBvbiBEU1Q6IGZmZmY4ODNjY2FiYjc5MDAg SUYgdGFwMTAwODMwMGV0aDAgaW52b2tlZCBhdCAxMjgyMTE1Njc3MDM2MTgzCiAgICBfX2RzdF9m cmVlCiAgICByY3Vfbm9jYl9rdGhyZWFkCiAgICBrdGhyZWFkCiAgICByZXRfZnJvbV9mb3JrCkFj a2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvZHN0 LmMgfCAxNCArKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9uZXQvY29yZS9kc3QuYyBiL25ldC9jb3JlL2RzdC5jCmluZGV4IDYxOTJm MTEuLjEzYmE0YTAgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2RzdC5jCisrKyBiL25ldC9jb3JlL2Rz dC5jCkBAIC00NjksNiArNDY5LDIwIEBAIHN0YXRpYyBpbnQgZHN0X2Rldl9ldmVudChzdHJ1Y3Qg bm90aWZpZXJfYmxvY2sgKnRoaXMsIHVuc2lnbmVkIGxvbmcgZXZlbnQsCiAJCXNwaW5fbG9ja19i aCgmZHN0X2dhcmJhZ2UubG9jayk7CiAJCWRzdCA9IGRzdF9nYXJiYWdlLmxpc3Q7CiAJCWRzdF9n YXJiYWdlLmxpc3QgPSBOVUxMOworCQkvKiBUaGUgY29kZSBpbiBkc3RfaWZkb3duIHBsYWNlcyBh IGhvbGQgb24gdGhlIGxvb3BiYWNrIGRldmljZS4KKwkJICogSWYgdGhlIGdjIGVudHJ5IHByb2Nl c3NpbmcgaXMgc2V0IHRvIGV4cGlyZSBhZnRlciBhIGxlbmd0aHkKKwkJICogaW50ZXJ2YWwsIHRo aXMgaG9sZCBjYW4gY2F1c2UgbmV0ZGV2X3dhaXRfYWxscmVmcygpIHRvIGhhbmcKKwkJICogb3V0 IGFuZCB3YWl0IGZvciBhIGxvbmcgdGltZSAtLSB1bnRpbCB0aGUgdGhlIGxvb3BiYWNrCisJCSAq IGludGVyZmFjZSBpcyByZWxlYXNlZC4gIElmIHdlJ3JlIHJlYWxseSB1bmx1Y2t5LCBpdCdsbCBl bWl0CisJCSAqIHByX2VtZXJnIG1lc3NhZ2VzIHRvIGNvbnNvbGUgdG9vLiAgUmVzZXQgdGhlIGlu dGVydmFsIGhlcmUsCisJCSAqIHNvIGRzdCBjbGVhbnVwcyBvY2N1ciBpbiBhIG1vcmUgdGltZWx5 IGZhc2hpb24uCisJCSAqLworCQlpZiAoZHN0X2dhcmJhZ2UudGltZXJfaW5jID4gRFNUX0dDX0lO QykgeworCQkJZHN0X2dhcmJhZ2UudGltZXJfaW5jID0gRFNUX0dDX0lOQzsKKwkJCWRzdF9nYXJi YWdlLnRpbWVyX2V4cGlyZXMgPSBEU1RfR0NfTUlOOworCQkJbW9kX2RlbGF5ZWRfd29yayhzeXN0 ZW1fd3EsICZkc3RfZ2Nfd29yaywKKwkJCQkJIGRzdF9nYXJiYWdlLnRpbWVyX2V4cGlyZXMpOwor CQl9CiAJCXNwaW5fdW5sb2NrX2JoKCZkc3RfZ2FyYmFnZS5sb2NrKTsKIAogCQlpZiAobGFzdCkK LS0gCjIuNC4xMQoKCkZyb20gMWUzODAyMzg4MmJlMTkxYTUzMzlhY2QxN2RlNGIwNjkyN2QwMTk2 OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDEwIEp1biAyMDE3IDE0OjQ4OjE0ICswODAwClN1YmplY3Q6IFtQ QVRDSCAxMS8zMl0gc2N0cDogZGlzYWJsZSBCSCBpbiBzY3RwX2Zvcl9lYWNoX2VuZHBvaW50Cgpb IFVwc3RyZWFtIGNvbW1pdCA1ODE0MDlkYWNjOTE3NmIwZGUxZjZjNGNhOGQ2NmUxM2FhOGUxYjI5 IF0KCk5vdyBzY3RwIGhvbGRzIHJlYWRfbG9jayB3aGVuIGZvcmVhY2ggc2N0cF9lcF9oYXNodGFi bGUgd2l0aG91dCBkaXNhYmxpbmcKQkguIElmIENQVSBzY2hlZHVsZXMgdG8gYW5vdGhlciB0aHJl YWQgQSBhdCB0aGlzIG1vbWVudCwgdGhlIHRocmVhZCBBIG1heQpiZSB0cnlpbmcgdG8gaG9sZCB0 aGUgd3JpdGVfbG9jayB3aXRoIGRpc2FibGluZyBCSC4KCkFzIEJIIGlzIGRpc2FibGVkIGFuZCBD UFUgY2Fubm90IHNjaGVkdWxlIGJhY2sgdG8gdGhlIHRocmVhZCBob2xkaW5nIHRoZQpyZWFkX2xv Y2ssIHdoaWxlIHRoZSB0aHJlYWQgQSBrZWVwcyB3YWl0aW5nIGZvciB0aGUgcmVhZF9sb2NrLiBB IGRlYWQKbG9jayB3b3VsZCBiZSB0cmlnZ2VyZWQgYnkgdGhpcy4KClRoaXMgcGF0Y2ggaXMgdG8g Zml4IHRoaXMgZGVhZCBsb2NrIGJ5IGNhbGxpbmcgcmVhZF9sb2NrX2JoIGluc3RlYWQgdG8KZGlz YWJsZSBCSCB3aGVuIGhvbGRpbmcgdGhlIHJlYWRfbG9jayBpbiBzY3RwX2Zvcl9lYWNoX2VuZHBv aW50LgoKRml4ZXM6IDYyNmQxNmY1MGYzOSAoInNjdHA6IGV4cG9ydCBzb21lIGFwaXMgb3IgdmFy aWFibGVzIGZvciBzY3RwX2RpYWcgYW5kIHJldXNlIHNvbWUgZm9yIHByb2MiKQpSZXBvcnRlZC1i eTogWGl1bWVpIE11IDx4bXVAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1 Y2llbi54aW5AZ21haWwuY29tPgpBY2tlZC1ieTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIgPG1h cmNlbG8ubGVpdG5lckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2N0cC9zb2NrZXQuYyB8IDQgKystLQogMSBm aWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jCmluZGV4IGQ5ZDRjOTIuLjk1 NmExN2QgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NvY2tldC5jCisrKyBiL25ldC9zY3RwL3NvY2tl dC5jCkBAIC00NTg2LDEzICs0NTg2LDEzIEBAIGludCBzY3RwX2Zvcl9lYWNoX2VuZHBvaW50KGlu dCAoKmNiKShzdHJ1Y3Qgc2N0cF9lbmRwb2ludCAqLCB2b2lkICopLAogCiAJZm9yIChoZWFkID0g c2N0cF9lcF9oYXNodGFibGU7IGhhc2ggPCBzY3RwX2VwX2hhc2hzaXplOwogCSAgICAgaGFzaCsr LCBoZWFkKyspIHsKLQkJcmVhZF9sb2NrKCZoZWFkLT5sb2NrKTsKKwkJcmVhZF9sb2NrX2JoKCZo ZWFkLT5sb2NrKTsKIAkJc2N0cF9mb3JfZWFjaF9oZW50cnkoZXBiLCAmaGVhZC0+Y2hhaW4pIHsK IAkJCWVyciA9IGNiKHNjdHBfZXAoZXBiKSwgcCk7CiAJCQlpZiAoZXJyKQogCQkJCWJyZWFrOwog CQl9Ci0JCXJlYWRfdW5sb2NrKCZoZWFkLT5sb2NrKTsKKwkJcmVhZF91bmxvY2tfYmgoJmhlYWQt PmxvY2spOwogCX0KIAogCXJldHVybiBlcnI7Ci0tIAoyLjQuMTEKCgpGcm9tIGEwODJjZjc2NjQ1 NGFmNGI5MGI0NWZjY2RjNDMyMDUxNmM2YzMyOWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEppYS1KdSBCYWkgPGJhaWppYWp1MTk5MEAxNjMuY29tPgpEYXRlOiBTYXQsIDEwIEp1biAy MDE3IDE2OjQ5OjM5ICswODAwClN1YmplY3Q6IFtQQVRDSCAxMi8zMl0gbmV0OiBjYWlmOiBGaXgg YSBzbGVlcC1pbi1hdG9taWMgYnVnIGluCiBjZnBrdF9jcmVhdGVfcGZ4CgpbIFVwc3RyZWFtIGNv bW1pdCBmMTQ2ZTg3MmViMTJlYmJlOTJkOGU1ODNiMjYzN2UwNzQxNDQwZGIzIF0KClRoZSBrZXJu ZWwgbWF5IHNsZWVwIHVuZGVyIGEgcmN1IHJlYWQgbG9jayBpbiBjZnBrdF9jcmVhdGVfcGZ4LCBh bmQgdGhlCmZ1bmN0aW9uIGNhbGwgcGF0aCBpczoKY2ZjbmZnX2xpbmt1cF9yc3AgKGFjcXVpcmUg dGhlIGxvY2sgYnkgcmN1X3JlYWRfbG9jaykKICBjZmN0cmxfbGlua2Rvd25fcmVxCiAgICBjZnBr dF9jcmVhdGUKICAgICAgY2Zwa3RfY3JlYXRlX3BmeAogICAgICAgIGFsbG9jX3NrYihHRlBfS0VS TkVMKSAtLT4gbWF5IHNsZWVwCmNmc2VybF9yZWNlaXZlIChhY3F1aXJlIHRoZSBsb2NrIGJ5IHJj dV9yZWFkX2xvY2spCiAgY2Zwa3Rfc3BsaXQKICAgIGNmcGt0X2NyZWF0ZV9wZngKICAgICAgYWxs b2Nfc2tiKEdGUF9LRVJORUwpIC0tPiBtYXkgc2xlZXAKClRoZXJlIGlzICJpbl9pbnRlcnJ1cHQi IGluIGNmcGt0X2NyZWF0ZV9wZnggdG8gZGVjaWRlIHVzZSAiR0ZQX0tFUk5FTCIgb3IKIkdGUF9B VE9NSUMiLiBJbiB0aGlzIHNpdHVhdGlvbiwgIkdGUF9LRVJORUwiIGlzIHVzZWQgYmVjYXVzZSB0 aGUgZnVuY3Rpb24KaXMgY2FsbGVkIHVuZGVyIGEgcmN1IHJlYWQgbG9jaywgaW5zdGVhZCBpbiBp bnRlcnJ1cHQuCgpUbyBmaXggaXQsIG9ubHkgIkdGUF9BVE9NSUMiIGlzIHVzZWQgaW4gY2Zwa3Rf Y3JlYXRlX3BmeC4KClNpZ25lZC1vZmYtYnk6IEppYS1KdSBCYWkgPGJhaWppYWp1MTk5MEAxNjMu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogbmV0L2NhaWYvY2Zwa3Rfc2tidWZmLmMgfCA2ICstLS0tLQogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jYWlmL2Nm cGt0X3NrYnVmZi5jIGIvbmV0L2NhaWYvY2Zwa3Rfc2tidWZmLmMKaW5kZXggNTljZTFmYy4uNzFi NmFiMiAxMDA2NDQKLS0tIGEvbmV0L2NhaWYvY2Zwa3Rfc2tidWZmLmMKKysrIGIvbmV0L2NhaWYv Y2Zwa3Rfc2tidWZmLmMKQEAgLTgxLDExICs4MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2Zwa3QgKmNm cGt0X2NyZWF0ZV9wZngodTE2IGxlbiwgdTE2IHBmeCkKIHsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2ti OwogCi0JaWYgKGxpa2VseShpbl9pbnRlcnJ1cHQoKSkpCi0JCXNrYiA9IGFsbG9jX3NrYihsZW4g KyBwZngsIEdGUF9BVE9NSUMpOwotCWVsc2UKLQkJc2tiID0gYWxsb2Nfc2tiKGxlbiArIHBmeCwg R0ZQX0tFUk5FTCk7Ci0KKwlza2IgPSBhbGxvY19za2IobGVuICsgcGZ4LCBHRlBfQVRPTUlDKTsK IAlpZiAodW5saWtlbHkoc2tiID09IE5VTEwpKQogCQlyZXR1cm4gTlVMTDsKIAotLSAKMi40LjEx CgoKRnJvbSAzN2Q3ZmYxNDYyN2Y5ODFlNjNkNGMxMTI0ZTNmNmMzMTMxNDliNWIxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaWEtSnUgQmFpIDxiYWlqaWFqdTE5OTBAMTYzLmNvbT4K RGF0ZTogU2F0LCAxMCBKdW4gMjAxNyAxNzowMzozNSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTMv MzJdIG5ldDogdGlwYzogRml4IGEgc2xlZXAtaW4tYXRvbWljIGJ1ZyBpbgogdGlwY19tc2dfcmV2 ZXJzZQoKWyBVcHN0cmVhbSBjb21taXQgMzQzZWJhNjljNjk2ODE5MGQ4NjU0Yjg1N2FlYTk1MmZl ZDlhNjc0OSBdCgpUaGUga2VybmVsIG1heSBzbGVlcCB1bmRlciBhIHJjdSByZWFkIGxvY2sgaW4g dGlwY19tc2dfcmV2ZXJzZSwgYW5kIHRoZQpmdW5jdGlvbiBjYWxsIHBhdGggaXM6CnRpcGNfbDJf cmN2X21zZyAoYWNxdWlyZSB0aGUgbG9jayBieSByY3VfcmVhZF9sb2NrKQogIHRpcGNfcmN2CiAg ICB0aXBjX3NrX3JjdgogICAgICB0aXBjX21zZ19yZXZlcnNlCiAgICAgICAgcHNrYl9leHBhbmRf aGVhZChHRlBfS0VSTkVMKSAtLT4gbWF5IHNsZWVwCnRpcGNfbm9kZV9icm9hZGNhc3QKICB0aXBj X25vZGVfeG1pdF9za2IKICAgIHRpcGNfbm9kZV94bWl0CiAgICAgIHRpcGNfc2tfcmN2CiAgICAg ICAgdGlwY19tc2dfcmV2ZXJzZQogICAgICAgICAgcHNrYl9leHBhbmRfaGVhZChHRlBfS0VSTkVM KSAtLT4gbWF5IHNsZWVwCgpUbyBmaXggaXQsICJHRlBfS0VSTkVMIiBpcyByZXBsYWNlZCB3aXRo ICJHRlBfQVRPTUlDIi4KClNpZ25lZC1vZmYtYnk6IEppYS1KdSBCYWkgPGJhaWppYWp1MTk5MEAx NjMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L3RpcGMvbXNnLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9tc2cuYyBiL25ldC90 aXBjL21zZy5jCmluZGV4IDMxMmVmN2QuLmFiMzA4NzYgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL21z Zy5jCisrKyBiL25ldC90aXBjL21zZy5jCkBAIC01MDgsNyArNTA4LDcgQEAgYm9vbCB0aXBjX21z Z19yZXZlcnNlKHUzMiBvd25fbm9kZSwgIHN0cnVjdCBza19idWZmICoqc2tiLCBpbnQgZXJyKQog CX0KIAogCWlmIChza2JfY2xvbmVkKF9za2IpICYmCi0JICAgIHBza2JfZXhwYW5kX2hlYWQoX3Nr YiwgQlVGX0hFQURST09NLCBCVUZfVEFJTFJPT00sIEdGUF9LRVJORUwpKQorCSAgICBwc2tiX2V4 cGFuZF9oZWFkKF9za2IsIEJVRl9IRUFEUk9PTSwgQlVGX1RBSUxST09NLCBHRlBfQVRPTUlDKSkK IAkJZ290byBleGl0OwogCiAJLyogTm93IHJldmVyc2UgdGhlIGNvbmNlcm5lZCBmaWVsZHMgKi8K LS0gCjIuNC4xMQoKCkZyb20gMGJkMDQyNjhiMDdhMDI3ZTg4OTY4NmYxM2ZmZjI0YjE0NTUzNmQ1 NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSHV5IE5ndXllbiA8aHV5bkBtZWxsYW5v eC5jb20+CkRhdGU6IE1vbiwgOCBNYXkgMjAxNyAxMTo0Njo1MCAtMDUwMApTdWJqZWN0OiBbUEFU Q0ggMTQvMzJdIG5ldC9tbHg1OiBSZW1vdmUgc2V2ZXJhbCBtb2R1bGUgZXZlbnRzIG91dCBvZiBl dGh0b29sCiBzdGF0cwoKWyBVcHN0cmVhbSBjb21taXQgZjcyOTg2MGExNzdkMDk3YWM0NDMyMWZi MmY3ZDkyN2EwYzU0YzVhMyBdCgpSZW1vdmUgdGhlIGZvbGxvd2luZyBtb2R1bGUgZXZlbnQgY291 bnRlcnMgb3V0IG9mIGV0aHRvb2wgc3RhdHMuIFRoZQpyZWFzb24gZm9yIHJlbW92aW5nIHRoZXNl IGV2ZW50IGNvdW50ZXJzIGlzIHRoYXQgdGhlc2UgZXZlbnRzIGRvIG5vdApvY2N1ciB3aXRob3V0 IHRlY2hpbmljaWFuJ3MgaW50ZXJ2ZW50aW9uLgogIG1vZHVsZV9wd3JfYnVkZ2V0X2V4ZAogIG1v ZHVsZV9sb25nX3JhbmdlCiAgbW9kdWxlX25vX2VlcHJvbQogIG1vZHVsZV9lbmZvcmNlX3BhcnQK ICBtb2R1bGVfdW5rbm93bl9pZAogIG1vZHVsZV91bmtub3duX3N0YXR1cwogIG1vZHVsZV9wbHVn CgpGaXhlczogYmVkYjdjOTA5YzE5ICgibmV0L21seDVlOiBBZGQgcG9ydCBtb2R1bGUgZXZlbnQg Y291bnRlcnMgdG8gZXRodG9vbCBzdGF0cyIpClNpZ25lZC1vZmYtYnk6IEh1eSBOZ3V5ZW4gPGh1 eW5AbWVsbGFub3guY29tPgpSZXZpZXdlZCBieTogR2FsIFByZXNzbWFuIDxnYWxwQG1lbGxhbm94 LmNvbT4KClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29t PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5o IHwgMTEgKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDkgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2VuX3N0YXRzLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW5fc3RhdHMuaAppbmRleCA1M2U0OTkyLi5mODFjM2FhIDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuaAorKysgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuaApAQCAtNDE3LDIwICs0 MTcsMTMgQEAgc3RydWN0IG1seDVlX3N0YXRzIHsKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg Y291bnRlcl9kZXNjIG1seDVlX3BtZV9zdGF0dXNfZGVzY1tdID0gewotCXsgIm1vZHVsZV9wbHVn IiwgMCB9LAogCXsgIm1vZHVsZV91bnBsdWciLCA4IH0sCiB9OwogCiBzdGF0aWMgY29uc3Qgc3Ry dWN0IGNvdW50ZXJfZGVzYyBtbHg1ZV9wbWVfZXJyb3JfZGVzY1tdID0gewotCXsgIm1vZHVsZV9w d3JfYnVkZ2V0X2V4ZCIsIDAgfSwgIC8qIHBvd2VyIGJ1ZGdldCBleGNlZWQgKi8KLQl7ICJtb2R1 bGVfbG9uZ19yYW5nZSIsIDggfSwgICAgICAvKiBsb25nIHJhbmdlIGZvciBub24gTUxOWCBjYWJs ZSAqLwotCXsgIm1vZHVsZV9idXNfc3R1Y2siLCAxNiB9LCAgICAgIC8qIGJ1cyBzdHVjayAoSTJD IG9yIGRhdGEgc2hvcnRlZCkgKi8KLQl7ICJtb2R1bGVfbm9fZWVwcm9tIiwgMjQgfSwgICAgICAv KiBubyBlZXByb20vcmV0cnkgdGltZSBvdXQgKi8KLQl7ICJtb2R1bGVfZW5mb3JjZV9wYXJ0Iiwg MzIgfSwgICAvKiBlbmZvcmNlIHBhcnQgbnVtYmVyIGxpc3QgKi8KLQl7ICJtb2R1bGVfdW5rbm93 bl9pZCIsIDQwIH0sICAgICAvKiB1bmtub3duIGlkZW50aWZpZXIgKi8KLQl7ICJtb2R1bGVfaGln aF90ZW1wIiwgNDggfSwgICAgICAvKiBoaWdoIHRlbXBlcmF0dXJlICovCisJeyAibW9kdWxlX2J1 c19zdHVjayIsIDE2IH0sICAgICAgIC8qIGJ1cyBzdHVjayAoSTJDIG9yIGRhdGEgc2hvcnRlZCkg Ki8KKwl7ICJtb2R1bGVfaGlnaF90ZW1wIiwgNDggfSwgICAgICAgLyogaGlnaCB0ZW1wZXJhdHVy ZSAqLwogCXsgIm1vZHVsZV9iYWRfc2hvcnRlZCIsIDU2IH0sICAgIC8qIGJhZCBvciBzaG9ydGVk IGNhYmxlL21vZHVsZSAqLwotCXsgIm1vZHVsZV91bmtub3duX3N0YXR1cyIsIDY0IH0sCiB9Owog CiAjZW5kaWYgLyogX19NTFg1X0VOX1NUQVRTX0hfXyAqLwotLSAKMi40LjExCgoKRnJvbSAyYjJk ZDMwYmNlZjcxMmNkYmU5NmE3ODY4MWVmNmZlODk2Y2Q3ZjVjIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBUYWwgR2lsYm9hIDx0YWxnaUBtZWxsYW5veC5jb20+CkRhdGU6IE1vbiwgMTUg TWF5IDIwMTcgMTQ6MTM6MTYgKzAzMDAKU3ViamVjdDogW1BBVENIIDE1LzMyXSBuZXQvbWx4NWU6 IEFkZGVkIEJXIGNoZWNrIGZvciBESU0gZGVjaXNpb24gbWVjaGFuaXNtCgpbIFVwc3RyZWFtIGNv bW1pdCBjMzE2NGQyZmM0OGZkNGZhMDQ3N2FiNjU4YjY0NDU1OWMzZmU5MDczIF0KCkRJTSAoRHlu YW1pY2FsbHktdHVuZWQgSW50ZXJydXB0IE1vZGVyYXRpb24pIGlzIGEgbWVjaGFuaXNtIGRlc2ln bmVkIGZvcgpjaGFuZ2luZyB0aGUgY2hhbm5lbCBpbnRlcnJ1cHQgbW9kZXJhdGlvbiB2YWx1ZXMg aW4gb3JkZXIgdG8gcmVkdWNlIENQVQpvdmVyaGVhZCBmb3IgYWxsIHRyYWZmaWMgdHlwZXMuClVu dGlsIG5vdyBvbmx5IGludGVycnVwdCBhbmQgcGFja2V0IHJhdGUgd2VyZSBzYW1wbGVkLgpXZSBm b3VuZCBhIHNjZW5hcmlvIG9uIHdoaWNoIHdlIGdldCBhIGZhbHNlIGluZGljYXRpb24gc2luY2Ug YSBjaGFuZ2UgaW4KRElNIGNhdXNlZCBtb3JlIGFnZ3JlZ2F0aW9uIGFuZCByZWR1Y2VkIHBhY2tl dCByYXRlIHdoaWxlIGluY3JlYXNpbmcgQlcuCgpXZSBub3cgcmVnYXJkIGEgY2hhbmdlIGFzIHN1 Y2Nlc2Z1bGwgaWZmOgpjdXJyZW50X0JXID4gKHByZXZfQlcgKyB0aHJlc2hvbGQpIG9yCmN1cnJl bnRfQlcgfj0gcHJldl9CVyBhbmQgY3VycmVudF9QUiA+IChwcmV2X1BSICsgdGhyZXNob2xkKSBv cgpjdXJyZW50X0JXIH49IHByZXZfQlcgYW5kIGN1cnJlbnRfUFIgfj0gcHJldl9QUiBhbmQKICAg IGN1cnJlbnRfSVIgPCAocHJldl9JUiAtIHRocmVzaG9sZCkKV2hlcmUgQlcgPSBCYW5kd2lkdGgs IFBSID0gUGFja2V0IHJhdGUgYW5kIElSID0gSW50ZXJydXB0IHJhdGUKCkltcHJvdmVtZW50cyAo Q29ubmVjdFgtNEx4IDI1R2JFLCBzaW5nbGUgUlggcXVldWUsIExSTyBvZmYpCiAgICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgcGFja2V0IHNp emUgfCBiZWZvcmVbTWIvc10gfCBhZnRlcltNYi9zXSB8IGdhaW4gIHwKICAgIDJCICAgICAgICAg IHwgMzQzLjQgICAgICAgIHwgMzU5LjQgICAgICAgfCAgNC41JSB8CiAgICAxNkIgICAgICAgICB8 IDI3MzkuNyAgICAgICB8IDI4MTQuOCAgICAgIHwgIDIuNyUgfAogICAgNjRCICAgICAgICAgfCA5 NzM5ICAgICAgICAgfCAxMDE4NS4zICAgICB8ICA0LjUlIHwKCkZpeGVzOiBjYjNjN2ZkNGY4Mzkg KCJuZXQvbWx4NWU6IFN1cHBvcnQgYWRhcHRpdmUgUlggY29hbGVzY2luZyIpClNpZ25lZC1vZmYt Ynk6IFRhbCBHaWxib2EgPHRhbGdpQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQg TWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuLmggICAgICAgfCAgMiArKwogZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4X2FtLmMgfCAzNyArKysrKysrKysrKystLS0tLS0t LS0tCiAyIGZpbGVzIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5o IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgKaW5kZXggM2Q5 NDkwYy4uZmFkMDU5NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuLmgKQEAgLTMxMywxMiArMzEzLDE0IEBAIHN0cnVjdCBtbHg1ZV9kbWFfaW5mbyB7CiAK IHN0cnVjdCBtbHg1ZV9yeF9hbV9zdGF0cyB7CiAJaW50IHBwbXM7IC8qIHBhY2tldHMgcGVyIG1z ZWMgKi8KKwlpbnQgYnBtczsgLyogYnl0ZXMgcGVyIG1zZWMgKi8KIAlpbnQgZXBtczsgLyogZXZl bnRzIHBlciBtc2VjICovCiB9OwogCiBzdHJ1Y3QgbWx4NWVfcnhfYW1fc2FtcGxlIHsKIAlrdGlt ZV90CQl0aW1lOwogCXVuc2lnbmVkIGludAlwa3RfY3RyOworCXVuc2lnbmVkIGludCAgICBieXRl X2N0cjsKIAl1MTYJCWV2ZW50X2N0cjsKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yeF9hbS5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4X2FtLmMKaW5kZXggY2JmYWMwNi4uMTc1MDM4OCAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4 X2FtLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3J4 X2FtLmMKQEAgLTE4MywyOCArMTgzLDI3IEBAIHN0YXRpYyB2b2lkIG1seDVlX2FtX2V4aXRfcGFy a2luZyhzdHJ1Y3QgbWx4NWVfcnhfYW0gKmFtKQogCW1seDVlX2FtX3N0ZXAoYW0pOwogfQogCisj ZGVmaW5lIElTX1NJR05JRklDQU5UX0RJRkYodmFsLCByZWYpIFwKKwkoKCgxMDAgKiBhYnMoKHZh bCkgLSAocmVmKSkpIC8gKHJlZikpID4gMTApIC8qIG1vcmUgdGhhbiAxMCUgZGlmZmVyZW5jZSAq LworCiBzdGF0aWMgaW50IG1seDVlX2FtX3N0YXRzX2NvbXBhcmUoc3RydWN0IG1seDVlX3J4X2Ft X3N0YXRzICpjdXJyLAogCQkJCSAgc3RydWN0IG1seDVlX3J4X2FtX3N0YXRzICpwcmV2KQogewot CWludCBkaWZmOwotCi0JaWYgKCFwcmV2LT5wcG1zKQotCQlyZXR1cm4gY3Vyci0+cHBtcyA/IE1M WDVFX0FNX1NUQVRTX0JFVFRFUiA6CisJaWYgKCFwcmV2LT5icG1zKQorCQlyZXR1cm4gY3Vyci0+ YnBtcyA/IE1MWDVFX0FNX1NUQVRTX0JFVFRFUiA6CiAJCQkJICAgIE1MWDVFX0FNX1NUQVRTX1NB TUU7CiAKLQlkaWZmID0gY3Vyci0+cHBtcyAtIHByZXYtPnBwbXM7Ci0JaWYgKCgoMTAwICogYWJz KGRpZmYpKSAvIHByZXYtPnBwbXMpID4gMTApIC8qIG1vcmUgdGhhbiAxMCUgZGlmZiAqLwotCQly ZXR1cm4gKGRpZmYgPiAwKSA/IE1MWDVFX0FNX1NUQVRTX0JFVFRFUiA6Ci0JCQkJICAgIE1MWDVF X0FNX1NUQVRTX1dPUlNFOworCWlmIChJU19TSUdOSUZJQ0FOVF9ESUZGKGN1cnItPmJwbXMsIHBy ZXYtPmJwbXMpKQorCQlyZXR1cm4gKGN1cnItPmJwbXMgPiBwcmV2LT5icG1zKSA/IE1MWDVFX0FN X1NUQVRTX0JFVFRFUiA6CisJCQkJCQkgICBNTFg1RV9BTV9TVEFUU19XT1JTRTsKIAotCWlmICgh cHJldi0+ZXBtcykKLQkJcmV0dXJuIGN1cnItPmVwbXMgPyBNTFg1RV9BTV9TVEFUU19XT1JTRSA6 Ci0JCQkJICAgIE1MWDVFX0FNX1NUQVRTX1NBTUU7CisJaWYgKElTX1NJR05JRklDQU5UX0RJRkYo Y3Vyci0+cHBtcywgcHJldi0+cHBtcykpCisJCXJldHVybiAoY3Vyci0+cHBtcyA+IHByZXYtPnBw bXMpID8gTUxYNUVfQU1fU1RBVFNfQkVUVEVSIDoKKwkJCQkJCSAgIE1MWDVFX0FNX1NUQVRTX1dP UlNFOwogCi0JZGlmZiA9IGN1cnItPmVwbXMgLSBwcmV2LT5lcG1zOwotCWlmICgoKDEwMCAqIGFi cyhkaWZmKSkgLyBwcmV2LT5lcG1zKSA+IDEwKSAvKiBtb3JlIHRoYW4gMTAlIGRpZmYgKi8KLQkJ cmV0dXJuIChkaWZmIDwgMCkgPyBNTFg1RV9BTV9TVEFUU19CRVRURVIgOgotCQkJCSAgICBNTFg1 RV9BTV9TVEFUU19XT1JTRTsKKwlpZiAoSVNfU0lHTklGSUNBTlRfRElGRihjdXJyLT5lcG1zLCBw cmV2LT5lcG1zKSkKKwkJcmV0dXJuIChjdXJyLT5lcG1zIDwgcHJldi0+ZXBtcykgPyBNTFg1RV9B TV9TVEFUU19CRVRURVIgOgorCQkJCQkJICAgTUxYNUVfQU1fU1RBVFNfV09SU0U7CiAKIAlyZXR1 cm4gTUxYNUVfQU1fU1RBVFNfU0FNRTsKIH0KQEAgLTI2Niw2ICsyNjUsNyBAQCBzdGF0aWMgdm9p ZCBtbHg1ZV9hbV9zYW1wbGUoc3RydWN0IG1seDVlX3JxICpycSwKIHsKIAlzLT50aW1lCSAgICAg PSBrdGltZV9nZXQoKTsKIAlzLT5wa3RfY3RyICAgPSBycS0+c3RhdHMucGFja2V0czsKKwlzLT5i eXRlX2N0ciAgPSBycS0+c3RhdHMuYnl0ZXM7CiAJcy0+ZXZlbnRfY3RyID0gcnEtPmNxLmV2ZW50 X2N0cjsKIH0KIApAQCAtMjc4LDEyICsyNzgsMTUgQEAgc3RhdGljIHZvaWQgbWx4NWVfYW1fY2Fs Y19zdGF0cyhzdHJ1Y3QgbWx4NWVfcnhfYW1fc2FtcGxlICpzdGFydCwKIAkvKiB1MzIgaG9sZHMg dXAgdG8gNzEgbWludXRlcywgc2hvdWxkIGJlIGVub3VnaCAqLwogCXUzMiBkZWx0YV91cyA9IGt0 aW1lX3VzX2RlbHRhKGVuZC0+dGltZSwgc3RhcnQtPnRpbWUpOwogCXVuc2lnbmVkIGludCBucGt0 cyA9IGVuZC0+cGt0X2N0ciAtIHN0YXJ0LT5wa3RfY3RyOworCXVuc2lnbmVkIGludCBuYnl0ZXMg PSBlbmQtPmJ5dGVfY3RyIC0gc3RhcnQtPmJ5dGVfY3RyOwogCiAJaWYgKCFkZWx0YV91cykKIAkJ cmV0dXJuOwogCi0JY3Vycl9zdGF0cy0+cHBtcyA9ICAgICAgICAgICAgKG5wa3RzICogVVNFQ19Q RVJfTVNFQykgLyBkZWx0YV91czsKLQljdXJyX3N0YXRzLT5lcG1zID0gKE1MWDVFX0FNX05FVkVO VFMgKiBVU0VDX1BFUl9NU0VDKSAvIGRlbHRhX3VzOworCWN1cnJfc3RhdHMtPnBwbXMgPSBESVZf Uk9VTkRfVVAobnBrdHMgKiBVU0VDX1BFUl9NU0VDLCBkZWx0YV91cyk7CisJY3Vycl9zdGF0cy0+ YnBtcyA9IERJVl9ST1VORF9VUChuYnl0ZXMgKiBVU0VDX1BFUl9NU0VDLCBkZWx0YV91cyk7CisJ Y3Vycl9zdGF0cy0+ZXBtcyA9IERJVl9ST1VORF9VUChNTFg1RV9BTV9ORVZFTlRTICogVVNFQ19Q RVJfTVNFQywKKwkJCQkJZGVsdGFfdXMpOwogfQogCiB2b2lkIG1seDVlX3J4X2FtX3dvcmsoc3Ry dWN0IHdvcmtfc3RydWN0ICp3b3JrKQotLSAKMi40LjExCgoKRnJvbSA5ZjA5MWViYWU4MjFhY2Uz MGRhNDY2MDBiMWVlZDFkYzlkOTE2NTlhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBU YWwgR2lsYm9hIDx0YWxnaUBtZWxsYW5veC5jb20+CkRhdGU6IE1vbiwgMjkgTWF5IDIwMTcgMTc6 MDI6NTUgKzAzMDAKU3ViamVjdDogW1BBVENIIDE2LzMyXSBuZXQvbWx4NWU6IEZpeCB3cm9uZyBp bmRpY2F0aW9ucyBpbiBESU0gZHVlIHRvIGNvdW50ZXIKIHdyYXBhcm91bmQKClsgVXBzdHJlYW0g Y29tbWl0IDUzYWNkNzZjZTU3MWUzYjcxZjkyMDVmMmQ0OWFiMjg1YTlmMWFhZDggXQoKRElNIChE eW5hbWljYWxseS10dW5lZCBJbnRlcnJ1cHQgTW9kZXJhdGlvbikgaXMgYSBtZWNoYW5pc20gZGVz aWduZWQgZm9yCmNoYW5naW5nIHRoZSBjaGFubmVsIGludGVycnVwdCBtb2RlcmF0aW9uIHZhbHVl cyBpbiBvcmRlciB0byByZWR1Y2UgQ1BVCm92ZXJoZWFkIGZvciBhbGwgdHJhZmZpYyB0eXBlcy4K RWFjaCBpdGVyYXRpb24gb2YgdGhlIGFsZ29yaXRobSwgRElNIGNhbGN1bGF0ZXMgdGhlIGRpZmZl cmVuY2UgaW4KdGhyb3VnaHB1dCwgcGFja2V0IHJhdGUgYW5kIGludGVycnVwdCByYXRlIGZyb20g bGFzdCBpdGVyYXRpb24gaW4gb3JkZXIKdG8gbWFrZSBhIGRlY2lzaW9uLiBESU0gcmVsaWVzIG9u IGNvdW50ZXJzIGZvciBlYWNoIG1ldHJpYy4gV2hlbiB0aGVzZQpjb3VudGVycyBnZXQgdG8gdGhl aXIgdHlwZSdzIG1heCB2YWx1ZSB0aGV5IHdyYXBhcm91bmQuIEluIHRoaXMgY2FzZQp0aGUgZGVs dGEgYmV0d2VlbiAnZW5kJyBhbmQgJ3N0YXJ0JyBzYW1wbGVzIGlzIG5lZ2F0aXZlIGFuZCB3aGVu CnRyYW5zbGF0ZWQgdG8gdW5zaWduZWQgaW50ZWdlcnMgLSB2ZXJ5IGhpZ2guIFRoaXMgcmVzdWx0 cyBpbiBhIGZhbHNlCmluZGljYXRpb24gdG8gdGhlIGFsZ29yaXRobSBhbmQgbWlnaHQgcmVzdWx0 IGluIGEgd3JvbmcgZGVjaXNpb24uCgpUaGUgZml4IGNhbGN1bGF0ZXMgdGhlICdkaXN0YW5jZScg YmV0d2VlbiAnZW5kJyBhbmQgJ3N0YXJ0JyBzYW1wbGVzIGluIGEKY3ljbGljIHdheSBhcm91bmQg dGhlIHJlbGV2YW50IHR5cGUncyBtYXggdmFsdWUuIEl0IGNhbiBhbHNvIGJlIHZpZXdlZCBhcwph biBhYnNvbHV0ZSB2YWx1ZSBhcm91bmQgdGhlIHR5cGUncyBtYXggdmFsdWUgaW5zdGVhZCBvZiBh cm91bmQgMC4KClRlc3Rpbmcgc2hvdyBoaWdoZXIgc3RhYmlsaXR5IGluIERJTSBwcm9maWxlIHNl bGVjdGlvbiBhbmQgbm8gd3JhcGFyb3VuZAppc3N1ZXMuCgpGaXhlczogY2IzYzdmZDRmODM5ICgi bmV0L21seDVlOiBTdXBwb3J0IGFkYXB0aXZlIFJYIGNvYWxlc2NpbmciKQpTaWduZWQtb2ZmLWJ5 OiBUYWwgR2lsYm9hIDx0YWxnaUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1h aGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lbi5oICAgICAgIHwgIDggKysrKy0tLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yeF9hbS5jIHwgMTAgKysrKysrKy0tLQogMiBm aWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgKaW5kZXggZmFkMDU5NC4uOGY3 MTA4YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgK QEAgLTMxOCwxMCArMzE4LDEwIEBAIHN0cnVjdCBtbHg1ZV9yeF9hbV9zdGF0cyB7CiB9OwogCiBz dHJ1Y3QgbWx4NWVfcnhfYW1fc2FtcGxlIHsKLQlrdGltZV90CQl0aW1lOwotCXVuc2lnbmVkIGlu dAlwa3RfY3RyOwotCXVuc2lnbmVkIGludCAgICBieXRlX2N0cjsKLQl1MTYJCWV2ZW50X2N0cjsK KwlrdGltZV90CXRpbWU7CisJdTMyCXBrdF9jdHI7CisJdTMyCWJ5dGVfY3RyOworCXUxNglldmVu dF9jdHI7CiB9OwogCiBzdHJ1Y3QgbWx4NWVfcnhfYW0geyAvKiBBZGFwdGl2ZSBNb2RlcmF0aW9u ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW5fcnhfYW0uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9y eF9hbS5jCmluZGV4IDE3NTAzODguLjIzY2NlYzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yeF9hbS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yeF9hbS5jCkBAIC0yNzAsNiArMjcwLDggQEAg c3RhdGljIHZvaWQgbWx4NWVfYW1fc2FtcGxlKHN0cnVjdCBtbHg1ZV9ycSAqcnEsCiB9CiAKICNk ZWZpbmUgTUxYNUVfQU1fTkVWRU5UUyA2NAorI2RlZmluZSBCSVRTX1BFUl9UWVBFKHR5cGUpIChz aXplb2YodHlwZSkgKiBCSVRTX1BFUl9CWVRFKQorI2RlZmluZSBCSVRfR0FQKGJpdHMsIGVuZCwg c3RhcnQpICgoKChlbmQpIC0gKHN0YXJ0KSkgKyBCSVRfVUxMKGJpdHMpKSAmIChCSVRfVUxMKGJp dHMpIC0gMSkpCiAKIHN0YXRpYyB2b2lkIG1seDVlX2FtX2NhbGNfc3RhdHMoc3RydWN0IG1seDVl X3J4X2FtX3NhbXBsZSAqc3RhcnQsCiAJCQkJc3RydWN0IG1seDVlX3J4X2FtX3NhbXBsZSAqZW5k LApAQCAtMjc3LDggKzI3OSw5IEBAIHN0YXRpYyB2b2lkIG1seDVlX2FtX2NhbGNfc3RhdHMoc3Ry dWN0IG1seDVlX3J4X2FtX3NhbXBsZSAqc3RhcnQsCiB7CiAJLyogdTMyIGhvbGRzIHVwIHRvIDcx IG1pbnV0ZXMsIHNob3VsZCBiZSBlbm91Z2ggKi8KIAl1MzIgZGVsdGFfdXMgPSBrdGltZV91c19k ZWx0YShlbmQtPnRpbWUsIHN0YXJ0LT50aW1lKTsKLQl1bnNpZ25lZCBpbnQgbnBrdHMgPSBlbmQt PnBrdF9jdHIgLSBzdGFydC0+cGt0X2N0cjsKLQl1bnNpZ25lZCBpbnQgbmJ5dGVzID0gZW5kLT5i eXRlX2N0ciAtIHN0YXJ0LT5ieXRlX2N0cjsKKwl1MzIgbnBrdHMgPSBCSVRfR0FQKEJJVFNfUEVS X1RZUEUodTMyKSwgZW5kLT5wa3RfY3RyLCBzdGFydC0+cGt0X2N0cik7CisJdTMyIG5ieXRlcyA9 IEJJVF9HQVAoQklUU19QRVJfVFlQRSh1MzIpLCBlbmQtPmJ5dGVfY3RyLAorCQkJICAgICBzdGFy dC0+Ynl0ZV9jdHIpOwogCiAJaWYgKCFkZWx0YV91cykKIAkJcmV0dXJuOwpAQCAtMzExLDcgKzMx NCw4IEBAIHZvaWQgbWx4NWVfcnhfYW0oc3RydWN0IG1seDVlX3JxICpycSkKIAogCXN3aXRjaCAo YW0tPnN0YXRlKSB7CiAJY2FzZSBNTFg1RV9BTV9NRUFTVVJFX0lOX1BST0dSRVNTOgotCQluZXZl bnRzID0gcnEtPmNxLmV2ZW50X2N0ciAtIGFtLT5zdGFydF9zYW1wbGUuZXZlbnRfY3RyOworCQlu ZXZlbnRzID0gQklUX0dBUChCSVRTX1BFUl9UWVBFKHUxNiksIHJxLT5jcS5ldmVudF9jdHIsCisJ CQkJICBhbS0+c3RhcnRfc2FtcGxlLmV2ZW50X2N0cik7CiAJCWlmIChuZXZlbnRzIDwgTUxYNUVf QU1fTkVWRU5UUykKIAkJCWJyZWFrOwogCQltbHg1ZV9hbV9zYW1wbGUocnEsICZlbmRfc2FtcGxl KTsKLS0gCjIuNC4xMQoKCkZyb20gOWI3NTU4ZDQwNTlmNmRiYjIyZWEzMTZlMGRhZDg5YTRiMGJj MjA2MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFqZCBEaWJiaW55IDxtYWpkQG1l bGxhbm94LmNvbT4KRGF0ZTogU3VuLCAyOCBNYXkgMjAxNyAxNDo0Nzo1NiArMDMwMApTdWJqZWN0 OiBbUEFUQ0ggMTcvMzJdIG5ldC9tbHg1OiBFbmFibGUgNEsgVUFSIG9ubHkgd2hlbiBwYWdlIHNp emUgaXMgYmlnZ2VyCiB0aGFuIDRLCgpbIFVwc3RyZWFtIGNvbW1pdCA5MTgyOGJkODk5NDBlODE0 NWY5MTc1MWEwMTViYzExYmM0ODZhYWQwIF0KCldoZW4gdGhlIHBhZ2Ugc2l6ZSBpc24ndCBiaWdn ZXIgdGhhbiA0SywgdGhlcmUgaXMgbm8gYWRkZWQgdmFsdWUgb2YgZW5hYmxpbmcgNEsKVUFSIGZl YXR1cmUgaW4gdGhlIEZpcm13YXJlLgoKTW9kaWZpZWQgdGhlIGNvbmRpdGlvbiBvZiBlbmFibGlu ZyB0aGUgNEsgVUFSIGFjY29yZGluZ2x5LgoKRml4ZXM6IGY1MDJkODM0OTUwYSAoIm5ldC9tbHg1 OiBBY3RpdmF0ZSBzdXBwb3J0IGZvciA0SyBVQVJzIikKU2lnbmVkLW9mZi1ieTogTWFqZCBEaWJi aW55IDxtYWpkQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNh ZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL21haW4uYyB8IDYgKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvbWFpbi5jCmluZGV4IDBhZDY2MzIuLjRkN2U0ZTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYwpAQCAtNTM3LDggKzUzNywxMCBAQCBz dGF0aWMgaW50IGhhbmRsZV9oY2FfY2FwKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpCiAJLyog ZGlzYWJsZSBjbWRpZiBjaGVja3N1bSAqLwogCU1MWDVfU0VUKGNtZF9oY2FfY2FwLCBzZXRfaGNh X2NhcCwgY21kaWZfY2hlY2tzdW0sIDApOwogCi0JLyogSWYgdGhlIEhDQSBzdXBwb3J0cyA0SyBV QVJzIHVzZSBpdCAqLwotCWlmIChNTFg1X0NBUF9HRU5fTUFYKGRldiwgdWFyXzRrKSkKKwkvKiBF bmFibGUgNEsgVUFSIG9ubHkgd2hlbiBIQ0Egc3VwcG9ydHMgaXQgYW5kIHBhZ2Ugc2l6ZSBpcyBi aWdnZXIKKwkgKiB0aGFuIDRLLgorCSAqLworCWlmIChNTFg1X0NBUF9HRU5fTUFYKGRldiwgdWFy XzRrKSAmJiBQQUdFX1NJWkUgPiA0MDk2KQogCQlNTFg1X1NFVChjbWRfaGNhX2NhcCwgc2V0X2hj YV9jYXAsIHVhcl80aywgMSk7CiAKIAlNTFg1X1NFVChjbWRfaGNhX2NhcCwgc2V0X2hjYV9jYXAs IGxvZ191YXJfcGFnZV9zeiwgUEFHRV9TSElGVCAtIDEyKTsKLS0gCjIuNC4xMQoKCkZyb20gNTk4 YTk3MmMxN2UyYjExZTBhNjYxMjM4MzM3NzhlMWU2NjFlMmExZSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogQ2hyaXN0aWFuIFBlcmxlIDxjaHJpc3RpYW4ucGVybGVAc2VjdW5ldC5jb20+ CkRhdGU6IE1vbiwgMTIgSnVuIDIwMTcgMTA6MDY6NTcgKzAyMDAKU3ViamVjdDogW1BBVENIIDE4 LzMyXSBwcm9jOiBzbm1wNjogVXNlIGNvcnJlY3QgdHlwZSBpbiBtZW1zZXQKClsgVXBzdHJlYW0g Y29tbWl0IDM1MDBjZDczZGZmNDhmMjhmNGJhODBjMTcxYzRjODAwMzRkNDBmNzYgXQoKUmVhZGlu ZyAvcHJvYy9uZXQvc25tcDYgeWllbGRzIGJvZ3VzIHZhbHVlcyBvbiAzMiBiaXQga2VybmVscy4K VXNlICJ1NjQiIGluc3RlYWQgb2YgInVuc2lnbmVkIGxvbmciIGluIHNpemVvZigpLgoKRml4ZXM6 IDRhNDg1N2IxYzgxZSAoInByb2M6IFJlZHVjZSBjYWNoZSBtaXNzIGluIHNubXA2X3NlcV9zaG93 IikKU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIFBlcmxlIDxjaHJpc3RpYW4ucGVybGVAc2VjdW5l dC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvaXB2Ni9wcm9jLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9wcm9jLmMgYi9uZXQv aXB2Ni9wcm9jLmMKaW5kZXggY2M4ZTNhZS4uZTg4YmNiOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYv cHJvYy5jCisrKyBiL25ldC9pcHY2L3Byb2MuYwpAQCAtMjE5LDcgKzIxOSw3IEBAIHN0YXRpYyB2 b2lkIHNubXA2X3NlcV9zaG93X2l0ZW02NChzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCBfX3Bl cmNwdSAqbWliLAogCXU2NCBidWZmNjRbU05NUF9NSUJfTUFYXTsKIAlpbnQgaTsKIAotCW1lbXNl dChidWZmNjQsIDAsIHNpemVvZih1bnNpZ25lZCBsb25nKSAqIFNOTVBfTUlCX01BWCk7CisJbWVt c2V0KGJ1ZmY2NCwgMCwgc2l6ZW9mKHU2NCkgKiBTTk1QX01JQl9NQVgpOwogCiAJc25tcF9nZXRf Y3B1X2ZpZWxkNjRfYmF0Y2goYnVmZjY0LCBpdGVtbGlzdCwgbWliLCBzeW5jcG9mZik7CiAJZm9y IChpID0gMDsgaXRlbWxpc3RbaV0ubmFtZTsgaSsrKQotLSAKMi40LjExCgoKRnJvbSA5Yzc3YTVl Mzc0NDI0YzU0MDc3NTFjMDE2NTMxNWM2YTAyZWEwNzk0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBXQU5HIENvbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAx MiBKdW4gMjAxNyAwOTo1MjoyNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTkvMzJdIGlnbXA6IGFj cXVpcmUgcG1jIGxvY2sgZm9yIGlwX21jX2NsZWFyX3NyYygpCgpbIFVwc3RyZWFtIGNvbW1pdCBj MzhiN2QzMjdhYWZkMWUzYWQ3ZmY1M2VlZmFjOTkwNjczYjY1NjY3IF0KCkFuZHJleSByZXBvcnRl ZCBhIHVzZS1hZnRlci1mcmVlIGluIGFkZF9ncmVjKCk6CgogICAgICAgIGZvciAocHNmID0gKnBz Zl9saXN0OyBwc2Y7IHBzZiA9IHBzZl9uZXh0KSB7CgkJLi4uCiAgICAgICAgICAgICAgICBwc2Zf bmV4dCA9IHBzZi0+c2ZfbmV4dDsKCndoZXJlIHRoZSBzdHJ1Y3QgaXBfc2ZfbGlzdCdzIHdlcmUg YWxyZWFkeSBmcmVlZCBieToKCiBrZnJlZSsweGU4LzB4MmIwIG1tL3NsdWIuYzozODgyCiBpcF9t Y19jbGVhcl9zcmMrMHg2OS8weDFjMCBuZXQvaXB2NC9pZ21wLmM6MjA3OAogaXBfbWNfZGVjX2dy b3VwKzB4MTlhLzB4NDcwIG5ldC9pcHY0L2lnbXAuYzoxNjE4CiBpcF9tY19kcm9wX3NvY2tldCsw eDE0NS8weDIzMCBuZXQvaXB2NC9pZ21wLmM6MjYwOQogaW5ldF9yZWxlYXNlKzB4NGUvMHgxYzAg bmV0L2lwdjQvYWZfaW5ldC5jOjQxMQogc29ja19yZWxlYXNlKzB4OGQvMHgxZTAgbmV0L3NvY2tl dC5jOjU5Nwogc29ja19jbG9zZSsweDE2LzB4MjAgbmV0L3NvY2tldC5jOjEwNzIKClRoaXMgaGFw cGVucyBiZWNhdXNlIHdlIGRvbid0IGhvbGQgcG1jLT5sb2NrIGluIGlwX21jX2NsZWFyX3NyYygp CmFuZCBhIHBhcmFsbGVsIG1yX2lmY190aW1lciB0aW1lciBjb3VsZCBqdW1wIGluIGFuZCBhY2Nl c3MgdGhlbS4KClRoZSBSQ1UgbG9jayBpcyB0aGVyZSBidXQgaXQgaXMgbWVyZWx5IGZvciBwbWMg aXRzZWxmLCB0aGlzCnNwaW5sb2NrIGNvdWxkIGFjdHVhbGx5IGVuc3VyZSB3ZSBkb24ndCBhY2Nl c3MgdGhlbSBpbiBwYXJhbGxlbC4KClRoYW5rcyB0byBFcmljIGFuZCBMb25nIGZvciBkaXNjdXNz aW9uIG9uIHRoaXMgYnVnLgoKUmVwb3J0ZWQtYnk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtu dmxAZ29vZ2xlLmNvbT4KQ2M6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6 IFhpbiBMb25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogQ29uZyBXYW5n IDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBYaW4gTG9uZyA8bHVjaWVu LnhpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9pZ21wLmMgfCAyMSArKysrKysrKysrKysrLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL25ldC9pcHY0L2lnbXAuYyBiL25ldC9pcHY0L2lnbXAuYwppbmRleCA0NGZkODZk Li44ZjZiNWJiIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pZ21wLmMKKysrIGIvbmV0L2lwdjQvaWdt cC5jCkBAIC0yMDcxLDIxICsyMDcxLDI2IEBAIHN0YXRpYyBpbnQgaXBfbWNfYWRkX3NyYyhzdHJ1 Y3QgaW5fZGV2aWNlICppbl9kZXYsIF9fYmUzMiAqcG1jYSwgaW50IHNmbW9kZSwKIAogc3RhdGlj IHZvaWQgaXBfbWNfY2xlYXJfc3JjKHN0cnVjdCBpcF9tY19saXN0ICpwbWMpCiB7Ci0Jc3RydWN0 IGlwX3NmX2xpc3QgKnBzZiwgKm5leHRwc2Y7CisJc3RydWN0IGlwX3NmX2xpc3QgKnBzZiwgKm5l eHRwc2YsICp0b21iLCAqc291cmNlczsKIAotCWZvciAocHNmID0gcG1jLT50b21iOyBwc2Y7IHBz ZiA9IG5leHRwc2YpIHsKKwlzcGluX2xvY2tfYmgoJnBtYy0+bG9jayk7CisJdG9tYiA9IHBtYy0+ dG9tYjsKKwlwbWMtPnRvbWIgPSBOVUxMOworCXNvdXJjZXMgPSBwbWMtPnNvdXJjZXM7CisJcG1j LT5zb3VyY2VzID0gTlVMTDsKKwlwbWMtPnNmbW9kZSA9IE1DQVNUX0VYQ0xVREU7CisJcG1jLT5z ZmNvdW50W01DQVNUX0lOQ0xVREVdID0gMDsKKwlwbWMtPnNmY291bnRbTUNBU1RfRVhDTFVERV0g PSAxOworCXNwaW5fdW5sb2NrX2JoKCZwbWMtPmxvY2spOworCisJZm9yIChwc2YgPSB0b21iOyBw c2Y7IHBzZiA9IG5leHRwc2YpIHsKIAkJbmV4dHBzZiA9IHBzZi0+c2ZfbmV4dDsKIAkJa2ZyZWUo cHNmKTsKIAl9Ci0JcG1jLT50b21iID0gTlVMTDsKLQlmb3IgKHBzZiA9IHBtYy0+c291cmNlczsg cHNmOyBwc2YgPSBuZXh0cHNmKSB7CisJZm9yIChwc2YgPSBzb3VyY2VzOyBwc2Y7IHBzZiA9IG5l eHRwc2YpIHsKIAkJbmV4dHBzZiA9IHBzZi0+c2ZfbmV4dDsKIAkJa2ZyZWUocHNmKTsKIAl9Ci0J cG1jLT5zb3VyY2VzID0gTlVMTDsKLQlwbWMtPnNmbW9kZSA9IE1DQVNUX0VYQ0xVREU7Ci0JcG1j LT5zZmNvdW50W01DQVNUX0lOQ0xVREVdID0gMDsKLQlwbWMtPnNmY291bnRbTUNBU1RfRVhDTFVE RV0gPSAxOwogfQogCiAvKiBKb2luIGEgbXVsdGljYXN0IGdyb3VwCi0tIAoyLjQuMTEKCgpGcm9t IDExOWJkMDdlZWRjZGUyNzZhYjk3YTQ5NDFiZWM5OWE0ZTNmMzdjYzggTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFdBTkcgQ29uZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRl OiBUdWUsIDIwIEp1biAyMDE3IDEwOjQ2OjI3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyMC8zMl0g aWdtcDogYWRkIGEgbWlzc2luZyBzcGluX2xvY2tfaW5pdCgpCgpbIFVwc3RyZWFtIGNvbW1pdCBi NDg0NmZjM2M4NTU5NjQ5Mjc3ZTNlNGU2YjVjZWM1MzQ4YThkMjA4IF0KCkFuZHJleSByZXBvcnRl ZCBhIGxvY2tkZXAgd2FybmluZyBvbiBub24taW5pdGlhbGl6ZWQKc3BpbmxvY2s6CgogSU5GTzog dHJ5aW5nIHRvIHJlZ2lzdGVyIG5vbi1zdGF0aWMga2V5LgogdGhlIGNvZGUgaXMgZmluZSBidXQg bmVlZHMgbG9ja2RlcCBhbm5vdGF0aW9uLgogdHVybmluZyBvZmYgdGhlIGxvY2tpbmcgY29ycmVj dG5lc3MgdmFsaWRhdG9yLgogQ1BVOiAxIFBJRDogNDA5OSBDb21tOiBhLm91dCBOb3QgdGFpbnRl ZCA0LjEyLjAtcmM2KyAjOQogSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZY ICsgUElJWCwgMTk5NiksIEJJT1MgQm9jaHMgMDEvMDEvMjAxMQogQ2FsbCBUcmFjZToKICBfX2R1 bXBfc3RhY2sgbGliL2R1bXBfc3RhY2suYzoxNgogIGR1bXBfc3RhY2srMHgyOTIvMHgzOTUgbGli L2R1bXBfc3RhY2suYzo1MgogIHJlZ2lzdGVyX2xvY2tfY2xhc3MrMHg3MTcvMHgxYWEwIGtlcm5l bC9sb2NraW5nL2xvY2tkZXAuYzo3NTUKICA/IDB4ZmZmZmZmZmZhMDAwMDAwMAogIF9fbG9ja19h Y3F1aXJlKzB4MjY5LzB4MzY5MCBrZXJuZWwvbG9ja2luZy9sb2NrZGVwLmM6MzI1NQogIGxvY2tf YWNxdWlyZSsweDIyZC8weDU2MCBrZXJuZWwvbG9ja2luZy9sb2NrZGVwLmM6Mzg1NQogIF9fcmF3 X3NwaW5fbG9ja19iaCAuL2luY2x1ZGUvbGludXgvc3BpbmxvY2tfYXBpX3NtcC5oOjEzNQogIF9y YXdfc3Bpbl9sb2NrX2JoKzB4MzYvMHg1MCBrZXJuZWwvbG9ja2luZy9zcGlubG9jay5jOjE3NQog IHNwaW5fbG9ja19iaCAuL2luY2x1ZGUvbGludXgvc3BpbmxvY2suaDozMDQKICBpcF9tY19jbGVh cl9zcmMrMHgyNy8weDFlMCBuZXQvaXB2NC9pZ21wLmM6MjA3NgogIGlnbXB2M19jbGVhcl9kZWxy ZWMrMHhlZS8weDRmMCBuZXQvaXB2NC9pZ21wLmM6MTE5NAogIGlwX21jX2Rlc3Ryb3lfZGV2KzB4 NGUvMHgxOTAgbmV0L2lwdjQvaWdtcC5jOjE3MzYKCldlIG1pc3MgYSBzcGluX2xvY2tfaW5pdCgp IGluIGlnbXB2M19hZGRfZGVscmVjKCksIHByb2JhYmx5CmJlY2F1c2UgcHJldmlvdXNseSB3ZSBu ZXZlciB1c2UgaXQgb24gdGhpcyBjb2RlIHBhdGguIFNpbmNlCndlIGFscmVhZHkgdW5saW5rIGl0 IGZyb20gdGhlIGdsb2JhbCBtY190b21iIGxpc3QsIGl0IGlzCnByb2JhYmx5IHNhZmUgbm90IHRv IGFjcXVpcmUgdGhpcyBzcGlubG9jayBoZXJlLiBJdCBkb2VzIG5vdApoYXJtIHRvIGhhdmUgaXQg YWx0aG91Z2gsIHRvIGF2b2lkIGNvbmRpdGlvbmFsIGxvY2tpbmcuCgpGaXhlczogYzM4YjdkMzI3 YWFmICgiaWdtcDogYWNxdWlyZSBwbWMgbG9jayBmb3IgaXBfbWNfY2xlYXJfc3JjKCkiKQpSZXBv cnRlZC1ieTogQW5kcmV5IEtvbm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUuY29tPgpTaWduZWQt b2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L2ln bXAuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEv bmV0L2lwdjQvaWdtcC5jIGIvbmV0L2lwdjQvaWdtcC5jCmluZGV4IDhmNmI1YmIuLmVjOWEzOTYg MTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2lnbXAuYworKysgYi9uZXQvaXB2NC9pZ21wLmMKQEAgLTEx MTIsNiArMTExMiw3IEBAIHN0YXRpYyB2b2lkIGlnbXB2M19hZGRfZGVscmVjKHN0cnVjdCBpbl9k ZXZpY2UgKmluX2Rldiwgc3RydWN0IGlwX21jX2xpc3QgKmltKQogCXBtYyA9IGt6YWxsb2Moc2l6 ZW9mKCpwbWMpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXBtYykKIAkJcmV0dXJuOworCXNwaW5fbG9j a19pbml0KCZwbWMtPmxvY2spOwogCXNwaW5fbG9ja19iaCgmaW0tPmxvY2spOwogCXBtYy0+aW50 ZXJmYWNlID0gaW0tPmludGVyZmFjZTsKIAlpbl9kZXZfaG9sZChpbl9kZXYpOwotLSAKMi40LjEx CgoKRnJvbSAxOTVlZmE3ODc3NjBmNzI0NDZhZTgzM2Y0NThhODE0NTUzNzFmM2U4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Qmo9QzM9Qjhybj0yME1vcms/PSA8Ympv cm5AbW9yay5ubz4KRGF0ZTogVHVlLCAxMyBKdW4gMjAxNyAxOToxMDoxOCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMjEvMzJdIHFtaV93d2FuOiBuZXcgVGVsZXdlbGwgYW5kIFNpZXJyYSBkZXZpY2Ug SURzCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1V VEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCA2 MGNmZTFlYWNjYjhhZjU5OGViZTFiZGM0NGUxNTdlYTMwZmNkZDgxIF0KCkEgbmV3IFNpZXJyYSBX aXJlbGVzcyBFTTczMDUgZGV2aWNlIElEIHVzZWQgaW4gYSBUb3NoaWJhIGxhcHRvcCwKYW5kIHR3 byBMb25nY2hlZXIgZGV2aWNlIElEcyBlbnRyaWVzIHVzZWQgYnkgVGVsZXdlbGwgVFctM0cgSFNQ QSsKYnJhbmRlZCBtb2RlbXMuCgpSZXBvcnRlZC1ieTogUGV0ciBLbG9jIDxwZXRyX2tsb2NAeWFo b28uY29tPgpSZXBvcnRlZC1ieTogVGVlbXUgTGlrb25lbiA8dGxpa29uZW5AaWtpLmZpPgpTaWdu ZWQtb2ZmLWJ5OiBCasO4cm4gTW9yayA8Ympvcm5AbW9yay5ubz4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3VzYi9x bWlfd3dhbi5jIHwgNCArKysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMgYi9kcml2ZXJzL25ldC91c2IvcW1p X3d3YW4uYwppbmRleCA4Nzc0NmMyLi5kNGM4Yzk2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91 c2IvcW1pX3d3YW4uYworKysgYi9kcml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYwpAQCAtODk4LDYg Kzg5OCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBwcm9kdWN0c1tdID0g ewogCXtRTUlfRklYRURfSU5URigweDExOTksIDB4OTA1NiwgOCl9LAkvKiBTaWVycmEgV2lyZWxl c3MgTW9kZW0gKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgxMTk5LCAweDkwNTcsIDgpfSwKIAl7UU1J X0ZJWEVEX0lOVEYoMHgxMTk5LCAweDkwNjEsIDgpfSwJLyogU2llcnJhIFdpcmVsZXNzIE1vZGVt ICovCisJe1FNSV9GSVhFRF9JTlRGKDB4MTE5OSwgMHg5MDYzLCA4KX0sCS8qIFNpZXJyYSBXaXJl bGVzcyBFTTczMDUgKi8KKwl7UU1JX0ZJWEVEX0lOVEYoMHgxMTk5LCAweDkwNjMsIDEwKX0sCS8q IFNpZXJyYSBXaXJlbGVzcyBFTTczMDUgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgxMTk5LCAweDkw NzEsIDgpfSwJLyogU2llcnJhIFdpcmVsZXNzIE1DNzR4eCAqLwogCXtRTUlfRklYRURfSU5URigw eDExOTksIDB4OTA3MSwgMTApfSwJLyogU2llcnJhIFdpcmVsZXNzIE1DNzR4eCAqLwogCXtRTUlf RklYRURfSU5URigweDExOTksIDB4OTA3OSwgOCl9LAkvKiBTaWVycmEgV2lyZWxlc3MgRU03NHh4 ICovCkBAIC05MTIsNiArOTE0LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lk IHByb2R1Y3RzW10gPSB7CiAJe1FNSV9GSVhFRF9JTlRGKDB4MWJjNywgMHgxMTAwLCAzKX0sCS8q IFRlbGl0IE1FOTEwICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4MWJjNywgMHgxMjAwLCA1KX0sCS8q IFRlbGl0IExFOTIwICovCiAJe1FNSV9RVUlSS19TRVRfRFRSKDB4MWJjNywgMHgxMjAxLCAyKX0s CS8qIFRlbGl0IExFOTIwLCBMRTkyMEE0ICovCisJe1FNSV9GSVhFRF9JTlRGKDB4MWM5ZSwgMHg5 ODAxLCAzKX0sCS8qIFRlbGV3ZWxsIFRXLTNHIEhTUEErICovCisJe1FNSV9GSVhFRF9JTlRGKDB4 MWM5ZSwgMHg5ODAzLCA0KX0sCS8qIFRlbGV3ZWxsIFRXLTNHIEhTUEErICovCiAJe1FNSV9GSVhF RF9JTlRGKDB4MWM5ZSwgMHg5YjAxLCAzKX0sCS8qIFhTIFN0aWNrIFcxMDAtMiBmcm9tIDRHIFN5 c3RlbXMgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgwYjNjLCAweGMwMDAsIDQpfSwJLyogT2xpdmV0 dGkgT2xpY2FyZCAxMDAgKi8KIAl7UU1JX0ZJWEVEX0lOVEYoMHgwYjNjLCAweGMwMDEsIDQpfSwJ LyogT2xpdmV0dGkgT2xpY2FyZCAxMjAgKi8KLS0gCjIuNC4xMQoKCkZyb20gOTk5NTFkYjVlODQ0 NDQ2Y2M3NDViMjVjNjZmOGFjNmE1Nzg3M2M4NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogSmVzcGVyIERhbmdhYXJkIEJyb3VlciA8YnJvdWVyQHJlZGhhdC5jb20+CkRhdGU6IFdlZCwg MTQgSnVuIDIwMTcgMTM6Mjc6MzcgKzAyMDAKU3ViamVjdDogW1BBVENIIDIyLzMyXSBuZXQ6IGRv bid0IGdsb2JhbCBJQ01QIHJhdGUgbGltaXQgcGFja2V0cyBvcmlnaW5hdGluZwogZnJvbSBsb29w YmFjawoKWyBVcHN0cmVhbSBjb21taXQgODQ5YTQ0ZGU5MTYzNmMyNGNlYTc5OWNiOGFkOGMzNjQz M2ZlYjkxMyBdCgpGbG9yaWFuIFdlaW1lciBzZWVtcyB0byBoYXZlIGEgZ2xpYmMgdGVzdC1jYXNl IHdoaWNoIHJlcXVpcmVzIHRoYXQKbG9vcGJhY2sgaW50ZXJmYWNlcyBkb2VzIG5vdCBnZXQgSUNN UCByYXRlbGltaXRlZC4gIFRoaXMgd2FzIGJyb2tlbiBieQpjb21taXQgYzAzMDNlZmVhYjczICgi bmV0OiByZWR1Y2UgY3ljbGVzIHNwZW5kIG9uIElDTVAgcmVwbGllcyB0aGF0CmdldHMgcmF0ZSBs aW1pdGVkIikuCgpBbiBJQ01QIHJlc3BvbnNlIHdpbGwgdXN1YWxseSBiZSByb3V0ZWQgYmFjay1v dXQgdGhlIHNhbWUgaW5jb21pbmcKaW50ZXJmYWNlLiAgVGh1cywgdGFrZSBhZHZhbnRhZ2Ugb2Yg dGhpcyBhbmQgc2tpcCBnbG9iYWwgSUNNUApyYXRlbGltaXQgd2hlbiB0aGUgaW5jb21pbmcgZGV2 aWNlIGlzIGxvb3BiYWNrLiAgSW4gdGhlIHVubGlrZWx5IGV2ZW50CnRoYXQgdGhlIG91dGdvaW5n IGl0IG5vdCBsb29wYmFjaywgZHVlIHRvIHN0cmFuZ2Ugcm91dGluZyBwb2xpY3kKcnVsZXMsIElD TVAgcmF0ZSBsaW1pdGluZyBzdGlsbCB3b3JrcyB2aWEgcGVlciByYXRlbGltaXRpbmcgdmlhCmlj bXB2NF94cmxpbV9hbGxvdygpLiAgVGh1cywgd2Ugc2hvdWxkIHN0aWxsIGNvbXBseSB3aXRoIFJG QzE4MTIKKHNlY3Rpb24gNC4zLjIuOCAiUmF0ZSBMaW1pdGluZyIpLgoKVGhpcyBzZWVtcyB0byBm aXggdGhlIHJlcHJvZHVjZXIgZ2l2ZW4gYnkgRmxvcmlhbi4gIFdoaWxlIHN0aWxsCmF2b2lkaW5n IHRvIHBlcmZvcm0gZXhwZW5zaXZlIGFuZCB1bm5lZWRlZCBvdXRnb2luZyByb3V0ZSBsb29rdXAg Zm9yCnJhdGUgbGltaXRlZCBwYWNrZXRzIChpbiB0aGUgbm9uLWxvb3BiYWNrIGNhc2UpLgoKRml4 ZXM6IGMwMzAzZWZlYWI3MyAoIm5ldDogcmVkdWNlIGN5Y2xlcyBzcGVuZCBvbiBJQ01QIHJlcGxp ZXMgdGhhdCBnZXRzIHJhdGUgbGltaXRlZCIpClJlcG9ydGVkLWJ5OiBGbG9yaWFuIFdlaW1lciA8 ZndlaW1lckByZWRoYXQuY29tPgpSZXBvcnRlZC1ieTogIkguSi4gTHUiIDxoamwudG9vbHNAZ21h aWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyIDxicm91ZXJAcmVk aGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9pcHY0L2ljbXAuYyB8IDggKysrKysrLS0KIG5ldC9pcHY2L2ljbXAuYyB8 IDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL25ldC9pcHY0L2ljbXAuYyBiL25ldC9pcHY0L2ljbXAuYwppbmRleCBmYzMx MGRiLi43NjAzMTFmIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pY21wLmMKKysrIGIvbmV0L2lwdjQv aWNtcC5jCkBAIC02NzQsOCArNjc0LDEyIEBAIHZvaWQgaWNtcF9zZW5kKHN0cnVjdCBza19idWZm ICpza2JfaW4sIGludCB0eXBlLCBpbnQgY29kZSwgX19iZTMyIGluZm8pCiAJLyogTmVlZGVkIGJ5 IGJvdGggaWNtcF9nbG9iYWxfYWxsb3cgYW5kIGljbXBfeG1pdF9sb2NrICovCiAJbG9jYWxfYmhf ZGlzYWJsZSgpOwogCi0JLyogQ2hlY2sgZ2xvYmFsIHN5c2N0bF9pY21wX21zZ3NfcGVyX3NlYyBy YXRlbGltaXQgKi8KLQlpZiAoIWljbXB2NF9nbG9iYWxfYWxsb3cobmV0LCB0eXBlLCBjb2RlKSkK KwkvKiBDaGVjayBnbG9iYWwgc3lzY3RsX2ljbXBfbXNnc19wZXJfc2VjIHJhdGVsaW1pdCwgdW5s ZXNzCisJICogaW5jb21pbmcgZGV2IGlzIGxvb3BiYWNrLiAgSWYgb3V0Z29pbmcgZGV2IGNoYW5n ZSB0byBub3QgYmUKKwkgKiBsb29wYmFjaywgdGhlbiBwZWVyIHJhdGVsaW1pdCBzdGlsbCB3b3Jr IChpbiBpY21wdjRfeHJsaW1fYWxsb3cpCisJICovCisJaWYgKCEoc2tiX2luLT5kZXYgJiYgKHNr Yl9pbi0+ZGV2LT5mbGFncyZJRkZfTE9PUEJBQ0spKSAmJgorCSAgICAgICFpY21wdjRfZ2xvYmFs X2FsbG93KG5ldCwgdHlwZSwgY29kZSkpCiAJCWdvdG8gb3V0X2JoX2VuYWJsZTsKIAogCXNrID0g aWNtcF94bWl0X2xvY2sobmV0KTsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2ljbXAuYyBiL25ldC9p cHY2L2ljbXAuYwppbmRleCAyMzBiNWFhLi44ZDdiMTEzIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9p Y21wLmMKKysrIGIvbmV0L2lwdjYvaWNtcC5jCkBAIC00OTEsNyArNDkxLDcgQEAgc3RhdGljIHZv aWQgaWNtcDZfc2VuZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1OCB0eXBlLCB1OCBjb2RlLCBfX3Uz MiBpbmZvLAogCWxvY2FsX2JoX2Rpc2FibGUoKTsKIAogCS8qIENoZWNrIGdsb2JhbCBzeXNjdGxf aWNtcF9tc2dzX3Blcl9zZWMgcmF0ZWxpbWl0ICovCi0JaWYgKCFpY21wdjZfZ2xvYmFsX2FsbG93 KHR5cGUpKQorCWlmICghKHNrYi0+ZGV2LT5mbGFncyZJRkZfTE9PUEJBQ0spICYmICFpY21wdjZf Z2xvYmFsX2FsbG93KHR5cGUpKQogCQlnb3RvIG91dF9iaF9lbmFibGU7CiAKIAltaXA2X2FkZHJf c3dhcChza2IpOwotLSAKMi40LjExCgoKRnJvbSA3YmM2YjExN2NjNTVhZWQzODllYjFhODkyYTIz YTVhNTlkNDJmNDgyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVj aWVuLnhpbkBnbWFpbC5jb20+CkRhdGU6IFRodSwgMTUgSnVuIDIwMTcgMTY6MzM6NTggKzA4MDAK U3ViamVjdDogW1BBVENIIDIzLzMyXSBpcHY2OiBmaXggY2FsbGluZyBpbjZfaWZhX2hvbGQgaW5j b3JyZWN0bHkgZm9yIGRhZCB3b3JrCgpbIFVwc3RyZWFtIGNvbW1pdCBmOGE4OTRiMjE4MTM4ODg4 NTQyYTUwNThkMGU5MDIzNzhmZDBkNGVjIF0KCk5vdyB3aGVuIHN0YXJ0aW5nIHRoZSBkYWQgd29y ayBpbiBhZGRyY29uZl9tb2RfZGFkX3dvcmssIGlmIHRoZSBkYWQgd29yawppcyBpZGxlIGFuZCBx dWV1ZWQsIGl0IG5lZWRzIHRvIGhvbGQgaWZhLgoKVGhlIHByb2JsZW0gaXMgdGhlcmUncyBvbmUg Z2FwIGluIFsxXSwgZHVyaW5nIHdoaWNoIGlmIHRoZSBwZW5kaW5nIGRhZCB3b3JrCmlzIHJlbW92 ZWQgZWxzZXdoZXJlLiBJdCB3aWxsIG1pc3MgdG8gaG9sZCBpZmEsIGJ1dCB0aGUgZGFkIHdvcmQg aXMgc3RpbGwKaWRlYSBhbmQgcXVldWUuCgogICAgICAgIGlmICghZGVsYXllZF93b3JrX3BlbmRp bmcoJmlmcC0+ZGFkX3dvcmspKQogICAgICAgICAgICAgICAgaW42X2lmYV9ob2xkKGlmcCk7CiAg ICAgICAgICAgICAgICAgICAgPC0tLS0tLS0tLS0tLS0tWzFdCiAgICAgICAgbW9kX2RlbGF5ZWRf d29yayhhZGRyY29uZl93cSwgJmlmcC0+ZGFkX3dvcmssIGRlbGF5KTsKCkFuIHVzZS1hZnRlci1m cmVlIGlzc3VlIGNhbiBiZSBjYXVzZWQgYnkgdGhpcy4KCkNoZW4gV2VpIGZvdW5kIHRoaXMgaXNz dWUgd2hlbiBXQVJOX09OKCFobGlzdF91bmhhc2hlZCgmaWZwLT5hZGRyX2xzdCkpIGluCm5ldDZf aWZhX2ZpbmlzaF9kZXN0cm95IHdhcyBoaXQgYmVjYXVzZSBvZiBpdC4KCkFzIEhhbm5lcycgc3Vn Z2VzdGlvbiwgdGhpcyBwYXRjaCBpcyB0byBmaXggaXQgYnkgaG9sZGluZyBpZmEgZmlyc3QgaW4K YWRkcmNvbmZfbW9kX2RhZF93b3JrLCB0aGVuIGNhbGxpbmcgbW9kX2RlbGF5ZWRfd29yayBhbmQg cHV0dGluZyBpZmEgaWYKdGhlIGRhZF93b3JrIGlzIGFscmVhZHkgaW4gcXVldWUuCgpOb3RlIHRo YXQgdGhpcyBwYXRjaCBkaWQgbm90IGNob29zZSB0byBmaXggaXQgd2l0aDoKCiAgaWYgKCFtb2Rf ZGVsYXllZF93b3JrKGRlbGF5KSkKICAgICAgICAgIGluNl9pZmFfaG9sZChpZnApOwoKQXMgd2l0 aCBpdCwgd2hlbiBkZWxheSA9PSAwLCBkYWRfd29yayB3b3VsZCBiZSBzY2hlZHVsZWQgaW1tZWRp YXRlbHksIGFsbAphZGRyY29uZl9tb2RfZGFkX3dvcmsoMCkgY2FsbGluZ3MgaGFkIHRvIGJlIG1v dmVkIHVuZGVyIGlmcC0+bG9jay4KClJlcG9ydGVkLWJ5OiBXZWkgQ2hlbiA8d2VpY2hlbkByZWRo YXQuY29tPgpTdWdnZXN0ZWQtYnk6IEhhbm5lcyBGcmVkZXJpYyBTb3dhIDxoYW5uZXNAc3RyZXNz aW5kdWt0aW9uLm9yZz4KQWNrZWQtYnk6IEhhbm5lcyBGcmVkZXJpYyBTb3dhIDxoYW5uZXNAc3Ry ZXNzaW5kdWt0aW9uLm9yZz4KU2lnbmVkLW9mZi1ieTogWGluIExvbmcgPGx1Y2llbi54aW5AZ21h aWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2lwdjYvYWRkcmNvbmYuYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2Fk ZHJjb25mLmMgYi9uZXQvaXB2Ni9hZGRyY29uZi5jCmluZGV4IDMxMWY0NTYuLjk3MjVlOGYgMTAw NjQ0Ci0tLSBhL25ldC9pcHY2L2FkZHJjb25mLmMKKysrIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwpA QCAtMzI4LDkgKzMyOCw5IEBAIHN0YXRpYyB2b2lkIGFkZHJjb25mX21vZF9yc190aW1lcihzdHJ1 Y3QgaW5ldDZfZGV2ICppZGV2LAogc3RhdGljIHZvaWQgYWRkcmNvbmZfbW9kX2RhZF93b3JrKHN0 cnVjdCBpbmV0Nl9pZmFkZHIgKmlmcCwKIAkJCQkgICB1bnNpZ25lZCBsb25nIGRlbGF5KQogewot CWlmICghZGVsYXllZF93b3JrX3BlbmRpbmcoJmlmcC0+ZGFkX3dvcmspKQotCQlpbjZfaWZhX2hv bGQoaWZwKTsKLQltb2RfZGVsYXllZF93b3JrKGFkZHJjb25mX3dxLCAmaWZwLT5kYWRfd29yaywg ZGVsYXkpOworCWluNl9pZmFfaG9sZChpZnApOworCWlmIChtb2RfZGVsYXllZF93b3JrKGFkZHJj b25mX3dxLCAmaWZwLT5kYWRfd29yaywgZGVsYXkpKQorCQlpbjZfaWZhX3B1dChpZnApOwogfQog CiBzdGF0aWMgaW50IHNubXA2X2FsbG9jX2RldihzdHJ1Y3QgaW5ldDZfZGV2ICppZGV2KQotLSAK Mi40LjExCgoKRnJvbSA0MzQ4NTJiNTlhZTFhMmU2ODk4MDNmMmFmZDc3MjllMDEwODUzZTk4IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5j b20+CkRhdGU6IFRodSwgMTUgSnVuIDIwMTcgMTc6NDk6MDggKzA4MDAKU3ViamVjdDogW1BBVENI IDI0LzMyXSBzY3RwOiByZXR1cm4gbmV4dCBvYmogYnkgcGFzc2luZyBwb3MgKyAxIGludG8KIHNj dHBfdHJhbnNwb3J0X2dldF9pZHgKClsgVXBzdHJlYW0gY29tbWl0IDk4OGM3MzIyMTE2OTcwNjk2 MjExZTkwMmI0NjhhZWZlYzk1YjZlYzQgXQoKSW4gc2N0cF9mb3JfZWFjaF90cmFuc3BvcnQsIHBv cyBpcyB1c2VkIHRvIHNhdmUgaG93IG1hbnkgb2JqcyBpdCBoYXMKZHVtcGVkLiBOb3cgaXQgZ2V0 cyB0aGUgbGFzdCBvYmogYnkgc2N0cF90cmFuc3BvcnRfZ2V0X2lkeCwgdGhlbiBnZXRzCnRoZSBu ZXh0IG9iaiBieSBzY3RwX3RyYW5zcG9ydF9nZXRfbmV4dC4KClRoZSBpc3N1ZSBpcyB0aGF0IGlu IHRoZSBtZWFud2hpbGUgaWYgc29tZSBvYmpzIGluIHRyYW5zcG9ydCBoYXNodGFibGUKYXJlIHJl bW92ZWQgYW5kIHRoZSBvYmpzIG51bXMgYXJlIGxlc3MgdGhhbiBwb3MsIHNjdHBfdHJhbnNwb3J0 X2dldF9pZHgKd291bGQgcmV0dXJuIE5VTEwgYW5kIGh0aS53YWxrZXIudGJsIGlzIE5VTEwgYXMg d2VsbC4gQXQgdGhpcyBtb21lbnQKaXQgc2hvdWxkIHN0b3AgaHRpLCBpbnN0ZWFkIG9mIGNvbnRp bnVlIGdldHRpbmcgdGhlIG5leHQgb2JqLiBPciBpdAp3b3VsZCBjYXVzZSBhIE5VTEwgcG9pbnRl ciBkZXJlZmVyZW5jZSBpbiBzY3RwX3RyYW5zcG9ydF9nZXRfbmV4dC4KClRoaXMgcGF0Y2ggaXMg dG8gcGFzcyBwb3MgKyAxIGludG8gc2N0cF90cmFuc3BvcnRfZ2V0X2lkeCB0byBnZXQgdGhlCm5l eHQgb2JqIGRpcmVjdGx5LCBldmVuIGlmIHBvcyA+IG9ianMgbnVtcywgaXQgd291bGQgcmV0dXJu IE5VTEwgYW5kCnN0b3AgaHRpLgoKRml4ZXM6IDYyNmQxNmY1MGYzOSAoInNjdHA6IGV4cG9ydCBz b21lIGFwaXMgb3IgdmFyaWFibGVzIGZvciBzY3RwX2RpYWcgYW5kIHJldXNlIHNvbWUgZm9yIHBy b2MiKQpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv c2N0cC9zb2NrZXQuYyB8IDUgKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc29ja2V0LmMgYi9uZXQvc2N0 cC9zb2NrZXQuYwppbmRleCA5NTZhMTdkLi43NGY3NjEwIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9z b2NrZXQuYworKysgYi9uZXQvc2N0cC9zb2NrZXQuYwpAQCAtNDYzMCw5ICs0NjMwLDggQEAgaW50 IHNjdHBfZm9yX2VhY2hfdHJhbnNwb3J0KGludCAoKmNiKShzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQg Kiwgdm9pZCAqKSwKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCi0Jc2N0cF90cmFuc3BvcnRf Z2V0X2lkeChuZXQsICZodGksIHBvcyk7Ci0Jb2JqID0gc2N0cF90cmFuc3BvcnRfZ2V0X25leHQo bmV0LCAmaHRpKTsKLQlmb3IgKDsgb2JqICYmICFJU19FUlIob2JqKTsgb2JqID0gc2N0cF90cmFu c3BvcnRfZ2V0X25leHQobmV0LCAmaHRpKSkgeworCW9iaiA9IHNjdHBfdHJhbnNwb3J0X2dldF9p ZHgobmV0LCAmaHRpLCBwb3MgKyAxKTsKKwlmb3IgKDsgIUlTX0VSUl9PUl9OVUxMKG9iaik7IG9i aiA9IHNjdHBfdHJhbnNwb3J0X2dldF9uZXh0KG5ldCwgJmh0aSkpIHsKIAkJc3RydWN0IHNjdHBf dHJhbnNwb3J0ICp0cmFuc3BvcnQgPSBvYmo7CiAKIAkJaWYgKCFzY3RwX3RyYW5zcG9ydF9ob2xk KHRyYW5zcG9ydCkpCi0tIAoyLjQuMTEKCgpGcm9tIDA3Yzk4NTRhNjZkYTM5ODllYzhhNzlkZjEy NTM2MDYzODI3YjlkMzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENocmlzIE1pIDxj aHJpc21AbWVsbGFub3guY29tPgpEYXRlOiBUdWUsIDE2IE1heSAyMDE3IDA3OjA3OjExIC0wNDAw ClN1YmplY3Q6IFtQQVRDSCAyNS8zMl0gbmV0L21seDVlOiBGaXggbWluIGlubGluZSB2YWx1ZSBm b3IgVkYgcmVwIFNRcwoKWyBVcHN0cmVhbSBjb21taXQgNWYxOTVjMmM1Y2JhNjAyNDEwMDQxNDZj ZDEyZDcxNDUxZDZiMGZjNCBdCgpUaGUgb2ZmZW5kaW5nIGNvbW1pdCBvbmx5IGNoYW5nZWQgdGhl IGNvZGUgcGF0aCBmb3IgUEYvVkYsIGJ1dCBpdApkaWRuJ3QgdGFrZSBjYXJlIG9mIFZGIHJlcHJl c2VudG9ycy4gQXMgYSByZXN1bHQsIHNpbmNlCnBhcmFtcy0+dHhfbWluX2lubGluZV9tb2RlIGZv ciBWRiByZXByZXNlbnRvcnMgaXMga3phbGxvY2VkIHRvIDAKKE1MWDVfSU5MSU5FX01PREVfTk9O RSksIGFsbCBWRiByZXBzIFNRcyB3ZXJlIHNldCB0byB0aGF0IG1vZGUuCgpUaGlzIGFjdHVhbGx5 IHdvcmtzIG9uIENYNSBieSBkZWZhdWx0IGJ1dCBicm9rZSBDWDQuIEZpeCB0aGF0IGJ5CmFkZGlu ZyBhIGNhbGwgdG8gcXVlcnkgdGhlIG1pbiBpbmxpbmUgbW9kZSBmcm9tIHRoZSBWRiByZXAgYnVp bGQgdXAgY29kZS4KCkZpeGVzOiBhNmY0MDJlNDk5MDEgKCJuZXQvbWx4NWU6IFR4LCBubyBpbmxp bmUgY29weSBvbiBDb25uZWN0WC01IikKU2lnbmVkLW9mZi1ieTogQ2hyaXMgTWkgPGNocmlzbUBt ZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBPciBHZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5veC5j b20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgot LS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9yZXAuYyB8IDIg KysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcmVwLmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcmVwLmMKaW5kZXggZjYyMTM3My4uNGJlNmIz NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vu X3JlcC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9y ZXAuYwpAQCAtNDI0LDYgKzQyNCw4IEBAIHN0YXRpYyB2b2lkIG1seDVlX2J1aWxkX3JlcF9uZXRk ZXZfcHJpdihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwKIAlwcml2LT5wYXJhbXMubHJvX3dx ZV9zeiAgICAgICAgICAgID0KIAkJTUxYNUVfUEFSQU1TX0RFRkFVTFRfTFJPX1dRRV9TWjsKIAor CW1seDVfcXVlcnlfbWluX2lubGluZShtZGV2LCAmcHJpdi0+cGFyYW1zLnR4X21pbl9pbmxpbmVf bW9kZSk7CisKIAlwcml2LT5tZGV2ICAgICAgICAgICAgICAgICAgICAgICAgID0gbWRldjsKIAlw cml2LT5uZXRkZXYgICAgICAgICAgICAgICAgICAgICAgID0gbmV0ZGV2OwogCXByaXYtPnBhcmFt cy5udW1fY2hhbm5lbHMgICAgICAgICAgPSBwcm9maWxlLT5tYXhfbmNoKG1kZXYpOwotLSAKMi40 LjExCgoKRnJvbSBiODUxOTY1NWFjYzhjZTQyYzM5ODhkYTE4ZmQxN2E5NzI4NTIzYWE5IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBPciBHZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5veC5j b20+CkRhdGU6IFRodSwgMTUgSnVuIDIwMTcgMjA6MDg6MzIgKzAzMDAKU3ViamVjdDogW1BBVENI IDI2LzMyXSBuZXQvbWx4NWU6IEF2b2lkIGRvaW5nIGEgY2xlYW51cCBjYWxsIGlmIHRoZSBwcm9m aWxlCiBkb2Vzbid0IGhhdmUgaXQKClsgVXBzdHJlYW0gY29tbWl0IDMxYWM5MzM4NmQxMzVhNmM5 NmRlOWM4YmFiNDA2ZjVjY2FiZjVhNGQgXQoKVGhlIGVycm9yIGZsb3cgb2YgbWx4NWVfY3JlYXRl X25ldGRldiBjYWxscyB0aGUgY2xlYW51cCBjYWxsCm9mIHRoZSBnaXZlbiBwcm9maWxlIHdpdGhv dXQgY2hlY2tpbmcgaWYgaXQgZXhpc3RzLCBmaXggdGhhdC4KCkN1cnJlbnRseSB0aGUgVkYgcmVw cyBkb24ndCByZWdpc3RlciB0aGF0IGNhbGxiYWNrIGFuZCB3ZSBjcmFzaAppZiBnZXR0aW5nIGlu dG8gZXJyb3IgLS0gY2FuIGJlIHJlcHJvZHVjZWQgYnkgdGhlIHVzZXIgZG9pbmcgY3RybF5DCndo aWxlIGF0dGVtcHRpbmcgdG8gY2hhbmdlIHRoZSBzcmlvdiBtb2RlIGZyb20gbGVnYWN5IHRvIHN3 aXRjaGRldi4KCkZpeGVzOiAyNmU1OWQ4MDc3YTMgJyhuZXQvbWx4NWU6IEltcGxlbWVudCBtbHg1 ZSBpbnRlcmZhY2UgYXR0YWNoL2RldGFjaCBjYWxsYmFja3MnKQpTaWduZWQtb2ZmLWJ5OiBPciBH ZXJsaXR6IDxvZ2VybGl0ekBtZWxsYW5veC5jb20+ClJlcG9ydGVkLWJ5OiBTYWJyaW5hIER1YnJv Y2EgPHNkdWJyb2NhQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxz YWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbl9tYWluLmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9lbl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW5fbWFpbi5jCmluZGV4IDE1Y2M3YjQuLmY3Nzg0MzYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYwpAQCAtMzg4NSw3 ICszODg1LDggQEAgc3RydWN0IG5ldF9kZXZpY2UgKm1seDVlX2NyZWF0ZV9uZXRkZXYoc3RydWN0 IG1seDVfY29yZV9kZXYgKm1kZXYsCiAJcmV0dXJuIG5ldGRldjsKIAogZXJyX2NsZWFudXBfbmlj OgotCXByb2ZpbGUtPmNsZWFudXAocHJpdik7CisJaWYgKHByb2ZpbGUtPmNsZWFudXApCisJCXBy b2ZpbGUtPmNsZWFudXAocHJpdik7CiAJZnJlZV9uZXRkZXYobmV0ZGV2KTsKIAogCXJldHVybiBO VUxMOwotLSAKMi40LjExCgoKRnJvbSBiOWZmZjIxYzAyMmY3MTcxNmY2Y2Q2MzQzYzA5YjFlNmVh MzU3NWU2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFbGkgQ29oZW4gPGVsaUBtZWxs YW5veC5jb20+CkRhdGU6IFRodSwgOCBKdW4gMjAxNyAxMTozMzoxNiAtMDUwMApTdWJqZWN0OiBb UEFUQ0ggMjcvMzJdIG5ldC9tbHg1OiBXYWl0IGZvciBGVyByZWFkaW5lc3MgYmVmb3JlIGluaXRp YWxpemluZwogY29tbWFuZCBpbnRlcmZhY2UKClsgVXBzdHJlYW0gY29tbWl0IDZjNzgwYTAyNjdi OGExMDc1ZjQwYjM5ODUxMTMyZWVhZWZlZmNmZjUgXQoKQmVmb3JlIGF0dGVtcHRpbmcgdG8gaW5p dGlhbGl6ZSB0aGUgY29tbWFuZCBpbnRlcmZhY2Ugd2UgbXVzdCB3YWl0IHRpbGwKdGhlIGZ3X2lu aXRpYWxpemluZyBiaXQgaXMgY2xlYXIuCgpJZiB3ZSBmYWlsIHRvIG1lZXQgdGhpcyBjb25kaXRp b24gdGhlIGhhcmR3YXJlIHdpbGwgZHJvcCBvdXIKY29uZmlndXJhdGlvbiwgc3BlY2lmaWNhbGx5 IHRoZSBkZXNjcmlwdG9ycyBwYWdlIGFkZHJlc3MuICBUaGlzIHNjZW5hcmlvCmNhbiBoYXBwZW4g d2hlbiB0aGUgZmlybXdhcmUgaXMgc3RpbGwgZXhlY3V0aW5nIGFuIEZMUiBmbG93IGFuZCBkaWQg bm90CmZpbmlzaCB5ZXQgc28gdGhlIGRyaXZlciBuZWVkcyB0byB3YWl0IGZvciB0aGF0IHRvIGZp bmlzaC4KCkZpeGVzOiBlMzI5NzI0NmMyYzggKCduZXQvbWx4NV9jb3JlOiBXYWl0IGZvciBGVyBy ZWFkaW5lc3Mgb24gc3RhcnR1cCcpClNpZ25lZC1vZmYtYnk6IEVsaSBDb2hlbiA8ZWxpQG1lbGxh bm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5j b20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYyB8 IDE0ICsrKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L21haW4uYwppbmRleCA0ZDdlNGU2Li45ODYyYTc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMKQEAgLTE3NSw4ICsxNzUsOSBAQCBzdGF0aWMg c3RydWN0IG1seDVfcHJvZmlsZSBwcm9maWxlW10gPSB7CiAJfSwKIH07CiAKLSNkZWZpbmUgRldf SU5JVF9USU1FT1VUX01JTEkJMjAwMAotI2RlZmluZSBGV19JTklUX1dBSVRfTVMJCTIKKyNkZWZp bmUgRldfSU5JVF9USU1FT1VUX01JTEkJCTIwMDAKKyNkZWZpbmUgRldfSU5JVF9XQUlUX01TCQkJ MgorI2RlZmluZSBGV19QUkVfSU5JVF9USU1FT1VUX01JTEkJMTAwMDAKIAogc3RhdGljIGludCB3 YWl0X2Z3X2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTMyIG1heF93YWl0X21pbGkp CiB7CkBAIC0xMDIxLDYgKzEwMjIsMTUgQEAgc3RhdGljIGludCBtbHg1X2xvYWRfb25lKHN0cnVj dCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X3ByaXYgKnByaXYsCiAJICovCiAJZGV2 LT5zdGF0ZSA9IE1MWDVfREVWSUNFX1NUQVRFX1VQOwogCisJLyogd2FpdCBmb3IgZmlybXdhcmUg dG8gYWNjZXB0IGluaXRpYWxpemF0aW9uIHNlZ21lbnRzIGNvbmZpZ3VyYXRpb25zCisJICovCisJ ZXJyID0gd2FpdF9md19pbml0KGRldiwgRldfUFJFX0lOSVRfVElNRU9VVF9NSUxJKTsKKwlpZiAo ZXJyKSB7CisJCWRldl9lcnIoJmRldi0+cGRldi0+ZGV2LCAiRmlybXdhcmUgb3ZlciAlZCBNUyBp biBwcmUtaW5pdGlhbGl6aW5nIHN0YXRlLCBhYm9ydGluZ1xuIiwKKwkJCUZXX1BSRV9JTklUX1RJ TUVPVVRfTUlMSSk7CisJCWdvdG8gb3V0OworCX0KKwogCWVyciA9IG1seDVfY21kX2luaXQoZGV2 KTsKIAlpZiAoZXJyKSB7CiAJCWRldl9lcnIoJnBkZXYtPmRldiwgIkZhaWxlZCBpbml0aWFsaXpp bmcgY29tbWFuZCBpbnRlcmZhY2UsIGFib3J0aW5nXG4iKTsKLS0gCjIuNC4xMQoKCkZyb20gZTZl NWZlOTZmNTMwNWEwYmQ2OTlhMDAwOTEzNzU5MDEzOWI3ZGJhMyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogTWFvciBEaWNrbWFuIDxtYW9yZEBtZWxsYW5veC5jb20+CkRhdGU6IFRodSwg MTggTWF5IDIwMTcgMTU6MTU6MDggKzAzMDAKU3ViamVjdDogW1BBVENIIDI4LzMyXSBuZXQvbWx4 NWU6IEZpeCB0aW1lc3RhbXBpbmcgY2FwYWJpbGl0aWVzIHJlcG9ydGluZwoKWyBVcHN0cmVhbSBj b21taXQgZjBiMzgxMTc4YjAxYjgzMWY5OTA3ZDcyZjQ2N2Q2NDQzYWZkZWE2NyBdCgpNaXN1c2Ug b2YgKEJJVCkgbWFjcm8gY2F1c2VkIHRvIHJlcG9ydCB3cm9uZyBmbGFncyBmb3IKIkhhcmR3YXJl IFRyYW5zbWl0IFRpbWVzdGFtcCBNb2RlcyIgYW5kICJIYXJkd2FyZSBSZWNlaXZlCkZpbHRlciBN b2RlcyIKCkZpeGVzOiBlZjk4MTRkZWFmZDAgKCduZXQvbWx4NWU6IEFkZCBIVyB0aW1lc3RhbXBp bmcgKFRTKSBzdXBwb3J0JykKU2lnbmVkLW9mZi1ieTogTWFvciBEaWNrbWFuIDxtYW9yZEBtZWxs YW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3gu Y29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0 b29sLmMgfCA4ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbl9ldGh0b29sLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW5fZXRodG9vbC5jCmluZGV4IDk0OWZiYWQuLmFhZThiNmMwIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZXRodG9vbC5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0b29sLmMKQEAg LTEyMDUsMTEgKzEyMDUsMTEgQEAgc3RhdGljIGludCBtbHg1ZV9nZXRfdHNfaW5mbyhzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LAogCQkJCSBTT0ZfVElNRVNUQU1QSU5HX1JYX0hBUkRXQVJFIHwKIAkJ CQkgU09GX1RJTUVTVEFNUElOR19SQVdfSEFSRFdBUkU7CiAKLQlpbmZvLT50eF90eXBlcyA9IChC SVQoMSkgPDwgSFdUU1RBTVBfVFhfT0ZGKSB8Ci0JCQkgKEJJVCgxKSA8PCBIV1RTVEFNUF9UWF9P Tik7CisJaW5mby0+dHhfdHlwZXMgPSBCSVQoSFdUU1RBTVBfVFhfT0ZGKSB8CisJCQkgQklUKEhX VFNUQU1QX1RYX09OKTsKIAotCWluZm8tPnJ4X2ZpbHRlcnMgPSAoQklUKDEpIDw8IEhXVFNUQU1Q X0ZJTFRFUl9OT05FKSB8Ci0JCQkgICAoQklUKDEpIDw8IEhXVFNUQU1QX0ZJTFRFUl9BTEwpOwor CWluZm8tPnJ4X2ZpbHRlcnMgPSBCSVQoSFdUU1RBTVBfRklMVEVSX05PTkUpIHwKKwkJCSAgIEJJ VChIV1RTVEFNUF9GSUxURVJfQUxMKTsKIAogCXJldHVybiAwOwogfQotLSAKMi40LjExCgoKRnJv bSBiMmI1NzU0NTI1ZDBmOWU1MzNhOWU5MDE3OWJhNTQ4NWVmOTU3MDUyIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBXZWkgV2FuZyA8d2Vpd2FuQGdvb2dsZS5jb20+CkRhdGU6IEZyaSwg MTYgSnVuIDIwMTcgMTA6NDY6MzcgLTA3MDAKU3ViamVjdDogW1BBVENIIDI5LzMyXSBkZWNuZXQ6 IGFsd2F5cyBub3QgdGFrZSBkc3QtPl9fcmVmY250IHdoZW4gaW5zZXJ0aW5nCiBkc3QgaW50byBo YXNoIHRhYmxlCgpbIFVwc3RyZWFtIGNvbW1pdCA3NjM3MWQyZTNhZDFmODQ0MjZhMzBlYmNkOGMz YjliOThmNGM3MjRmIF0KCkluIHRoZSBleGlzdGluZyBkbl9yb3V0ZS5jIGNvZGUsIGRuX3JvdXRl X291dHB1dF9zbG93KCkgdGFrZXMKZHN0LT5fX3JlZmNudCBiZWZvcmUgY2FsbGluZyBkbl9pbnNl cnRfcm91dGUoKSB3aGlsZSBkbl9yb3V0ZV9pbnB1dF9zbG93KCkKZG9lcyBub3QgdGFrZSBkc3Qt Pl9fcmVmY250IGJlZm9yZSBjYWxsaW5nIGRuX2luc2VydF9yb3V0ZSgpLgpUaGlzIG1ha2VzIHRo ZSB3aG9sZSByb3V0aW5nIGNvZGUgdmVyeSBidWdneS4KSW4gZG5fZHN0X2NoZWNrX2V4cGlyZSgp LCBkbnJ0X2ZyZWUoKSBpcyBjYWxsZWQgd2hlbiBydCBleHBpcmVzLiBUaGlzCm1ha2VzIHRoZSBy b3V0ZXMgaW5zZXJ0ZWQgYnkgZG5fcm91dGVfb3V0cHV0X3Nsb3coKSBub3QgYWJsZSB0byBiZQpm cmVlZCBhcyB0aGUgcmVmY250IGlzIG5vdCByZWxlYXNlZC4KSW4gZG5fZHN0X2djKCksIGRucnRf ZHJvcCgpIGlzIGNhbGxlZCB0byByZWxlYXNlIHJ0IHdoaWNoIGNvdWxkCnBvdGVudGlhbGx5IGNh dXNlIHRoZSBkc3QtPl9fcmVmY250IHRvIGJlIGRyb3BwZWQgdG8gLTEuCkluIGRuX3J1bl9mbHVz aCgpLCBkc3RfZnJlZSgpIGlzIGNhbGxlZCB0byByZWxlYXNlIGFsbCB0aGUgZHN0LiBBZ2FpbiwK aXQgbWFrZXMgdGhlIGRzdCBpbnNlcnRlZCBieSBkbl9yb3V0ZV9vdXRwdXRfc2xvdygpIG5vdCBh YmxlIHRvIGJlCnJlbGVhc2VkIGFuZCBhbHNvLCBpdCBkb2VzIG5vdCB3YWl0IG9uIHRoZSByY3Ug YW5kIGNvdWxkIHBvdGVudGlhbGx5CmNhdXNlIGNyYXNoIGluIHRoZSBwYXRoIHdoZXJlIG90aGVy IHVzZXJzIHN0aWxsIHJlZmVyIHRvIHRoaXMgZHN0LgoKVGhpcyBwYXRjaCBtYWtlcyBzdXJlIGJv dGggaW5wdXQgYW5kIG91dHB1dCBwYXRoIGRvIG5vdCB0YWtlCmRzdC0+X19yZWZjbnQgYmVmb3Jl IGNhbGxpbmcgZG5faW5zZXJ0X3JvdXRlKCkgYW5kIGFsc28gbWFrZXMgc3VyZQpkbnJ0X2ZyZWUo KS9kc3RfZnJlZSgpIGlzIGNhbGxlZCB3aGVuIHJlbW92aW5nIGRzdCBmcm9tIHRoZSBoYXNoIHRh YmxlLgpUaGUgb25seSBkaWZmZXJlbmNlIGJldHdlZW4gdGhvc2UgMiBjYWxscyBpcyB0aGF0IGRu cnRfZnJlZSgpIHdhaXRzIG9uCnRoZSByY3Ugd2hpbGUgZHN0X2ZyZWUoKSBkb2VzIG5vdC4KClNp Z25lZC1vZmYtYnk6IFdlaSBXYW5nIDx3ZWl3YW5AZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IE1hcnRp biBLYUZhaSBMYXUgPGthZmFpQGZiLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9kZWNuZXQvZG5fcm91dGUuYyB8IDE0ICsr KystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvZGVjbmV0L2RuX3JvdXRlLmMgYi9uZXQvZGVjbmV0L2Ru X3JvdXRlLmMKaW5kZXggYjFkYzA5Ni4uNDAzNTkzYiAxMDA2NDQKLS0tIGEvbmV0L2RlY25ldC9k bl9yb3V0ZS5jCisrKyBiL25ldC9kZWNuZXQvZG5fcm91dGUuYwpAQCAtMTg4LDEyICsxODgsNiBA QCBzdGF0aWMgaW5saW5lIHZvaWQgZG5ydF9mcmVlKHN0cnVjdCBkbl9yb3V0ZSAqcnQpCiAJY2Fs bF9yY3VfYmgoJnJ0LT5kc3QucmN1X2hlYWQsIGRzdF9yY3VfZnJlZSk7CiB9CiAKLXN0YXRpYyBp bmxpbmUgdm9pZCBkbnJ0X2Ryb3Aoc3RydWN0IGRuX3JvdXRlICpydCkKLXsKLQlkc3RfcmVsZWFz ZSgmcnQtPmRzdCk7Ci0JY2FsbF9yY3VfYmgoJnJ0LT5kc3QucmN1X2hlYWQsIGRzdF9yY3VfZnJl ZSk7Ci19Ci0KIHN0YXRpYyB2b2lkIGRuX2RzdF9jaGVja19leHBpcmUodW5zaWduZWQgbG9uZyBk dW1teSkKIHsKIAlpbnQgaTsKQEAgLTI0OCw3ICsyNDIsNyBAQCBzdGF0aWMgaW50IGRuX2RzdF9n YyhzdHJ1Y3QgZHN0X29wcyAqb3BzKQogCQkJfQogCQkJKnJ0cCA9IHJ0LT5kc3QuZG5fbmV4dDsK IAkJCXJ0LT5kc3QuZG5fbmV4dCA9IE5VTEw7Ci0JCQlkbnJ0X2Ryb3AocnQpOworCQkJZG5ydF9m cmVlKHJ0KTsKIAkJCWJyZWFrOwogCQl9CiAJCXNwaW5fdW5sb2NrX2JoKCZkbl9ydF9oYXNoX3Rh YmxlW2ldLmxvY2spOwpAQCAtMzUwLDcgKzM0NCw3IEBAIHN0YXRpYyBpbnQgZG5faW5zZXJ0X3Jv dXRlKHN0cnVjdCBkbl9yb3V0ZSAqcnQsIHVuc2lnbmVkIGludCBoYXNoLCBzdHJ1Y3QgZG5fcm91 CiAJCQlkc3RfdXNlKCZydGgtPmRzdCwgbm93KTsKIAkJCXNwaW5fdW5sb2NrX2JoKCZkbl9ydF9o YXNoX3RhYmxlW2hhc2hdLmxvY2spOwogCi0JCQlkbnJ0X2Ryb3AocnQpOworCQkJZHN0X2ZyZWUo JnJ0LT5kc3QpOwogCQkJKnJwID0gcnRoOwogCQkJcmV0dXJuIDA7CiAJCX0KQEAgLTM4MCw3ICsz NzQsNyBAQCBzdGF0aWMgdm9pZCBkbl9ydW5fZmx1c2godW5zaWduZWQgbG9uZyBkdW1teSkKIAkJ Zm9yKDsgcnQ7IHJ0ID0gbmV4dCkgewogCQkJbmV4dCA9IHJjdV9kZXJlZmVyZW5jZV9yYXcocnQt PmRzdC5kbl9uZXh0KTsKIAkJCVJDVV9JTklUX1BPSU5URVIocnQtPmRzdC5kbl9uZXh0LCBOVUxM KTsKLQkJCWRzdF9mcmVlKChzdHJ1Y3QgZHN0X2VudHJ5ICopcnQpOworCQkJZG5ydF9mcmVlKHJ0 KTsKIAkJfQogCiBub3RoaW5nX3RvX2RlY2xhcmU6CkBAIC0xMTg3LDcgKzExODEsNyBAQCBzdGF0 aWMgaW50IGRuX3JvdXRlX291dHB1dF9zbG93KHN0cnVjdCBkc3RfZW50cnkgKipwcHJ0LCBjb25z dCBzdHJ1Y3QgZmxvd2lkbiAqbwogCWlmIChkZXZfb3V0LT5mbGFncyAmIElGRl9MT09QQkFDSykK IAkJZmxhZ3MgfD0gUlRDRl9MT0NBTDsKIAotCXJ0ID0gZHN0X2FsbG9jKCZkbl9kc3Rfb3BzLCBk ZXZfb3V0LCAxLCBEU1RfT0JTT0xFVEVfTk9ORSwgRFNUX0hPU1QpOworCXJ0ID0gZHN0X2FsbG9j KCZkbl9kc3Rfb3BzLCBkZXZfb3V0LCAwLCBEU1RfT0JTT0xFVEVfTk9ORSwgRFNUX0hPU1QpOwog CWlmIChydCA9PSBOVUxMKQogCQlnb3RvIGVfbm9idWZzOwogCi0tIAoyLjQuMTEKCgpGcm9tIDBm ZGIyYjRjYTA3NDE5OGVjMGIxNDZiY2YyYjkyM2NmYjdmOWU0OTQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEdhbyBGZW5nIDxnZnJlZS53aW5kQHZpcC4xNjMuY29tPgpEYXRlOiBGcmks IDE2IEp1biAyMDE3IDE1OjAwOjAyICswODAwClN1YmplY3Q6IFtQQVRDSCAzMC8zMl0gbmV0OiA4 MDIxcTogRml4IG9uZSBwb3NzaWJsZSBwYW5pYyBjYXVzZWQgYnkgQlVHX09OIGluCiBmcmVlX25l dGRldgoKWyBVcHN0cmVhbSBjb21taXQgOTc0NWUzNjJhZGQ4OTQzMmQyYzk1MTI3MmE5OWIwYTVm ZTQzNDhhOSBdCgpUaGUgcmVnaXN0ZXJfdmxhbl9kZXZpY2Ugd291bGQgaW52b2tlIGZyZWVfbmV0 ZGV2IGRpcmVjdGx5LCB3aGVuCnJlZ2lzdGVyX3ZsYW5fZGV2IGZhaWxlZC4gSXQgd291bGQgdHJp Z2dlciB0aGUgQlVHX09OIGluIGZyZWVfbmV0ZGV2CmlmIHRoZSBkZXYgd2FzIGFscmVhZHkgcmVn aXN0ZXJlZC4gSW4gdGhpcyBjYXNlLCB0aGUgbmV0ZGV2IHdvdWxkIGJlCmZyZWVkIGluIG5ldGRl dl9ydW5fdG9kbyBsYXRlci4KClNvIGFkZCBvbmUgY29uZGl0aW9uIGNoZWNrIG5vdy4gT25seSB3 aGVuIGRldiBpcyBub3QgcmVnaXN0ZXJlZCwgdGhlbgpmcmVlIGl0IGRpcmVjdGx5LgoKVGhlIGZv bGxvd2luZyBpcyB0aGUgcGFydCBjb3JlZHVtcCB3aGVuIG5ldGRldl91cHBlcl9kZXZfbGluayBm YWlsZWQKaW4gcmVnaXN0ZXJfdmxhbl9kZXYuIEkgcmVtb3ZlZCB0aGUgbGluZXMgd2hpY2ggYXJl IHRvbyBsb25nLgoKWyAgNDExLjIzNzQ1N10gLS0tLS0tLS0tLS0tWyBjdXQgaGVyZSBdLS0tLS0t LS0tLS0tClsgIDQxMS4yMzc0NThdIGtlcm5lbCBCVUcgYXQgbmV0L2NvcmUvZGV2LmM6Nzk5OCEK WyAgNDExLjIzNzQ4NF0gaW52YWxpZCBvcGNvZGU6IDAwMDAgWyMxXSBTTVAKWyAgNDExLjIzNzcw NV0gIFtsYXN0IHVubG9hZGVkOiA4MDIxcV0KWyAgNDExLjIzNzcxOF0gQ1BVOiAxIFBJRDogMTI4 NDUgQ29tbTogdmNvbmZpZyBUYWludGVkOiBHICAgICAgICAgICAgRSAgIDQuMTIuMC1yYzUrICM2 ClsgIDQxMS4yMzc3MzddIEhhcmR3YXJlIG5hbWU6IFZNd2FyZSwgSW5jLiBWTXdhcmUgVmlydHVh bCBQbGF0Zm9ybS80NDBCWCBEZXNrdG9wIFJlZmVyZW5jZSBQbGF0Zm9ybSwgQklPUyA2LjAwIDA3 LzAyLzIwMTUKWyAgNDExLjIzNzc2NF0gdGFzazogZmZmZjljYmViNjY4NTU4MCB0YXNrLnN0YWNr OiBmZmZmYTdkMjgwN2Q4MDAwClsgIDQxMS4yMzc3ODJdIFJJUDogMDAxMDpmcmVlX25ldGRldisw eDExNi8weDEyMApbICA0MTEuMjM3Nzk0XSBSU1A6IDAwMTg6ZmZmZmE3ZDI4MDdkYmRiMCBFRkxB R1M6IDAwMDEwMjk3ClsgIDQxMS4yMzc4MDhdIFJBWDogMDAwMDAwMDAwMDAwMDAwMiBSQlg6IGZm ZmY5Y2JlYjZiYThmZDggUkNYOiAwMDAwMDAwMDAwMDAxODc4ClsgIDQxMS4yMzc4MjZdIFJEWDog MDAwMDAwMDAwMDAwMDAwMSBSU0k6IDAwMDAwMDAwMDAwMDAyODIgUkRJOiAwMDAwMDAwMDAwMDAw MDAwClsgIDQxMS4yMzc4NDRdIFJCUDogZmZmZmE3ZDI4MDdkYmRjOCBSMDg6IDAwMDI5ODYxMDAw Mjk4NDEgUjA5OiAwMDAyOTgyMTAwMDI5ODAxClsgIDQxMS4yMzc4NjFdIFIxMDogMDAwNDAwMDEw MDAyOTk4MCBSMTE6IDAwMDQwMDAxMDAwMjk5ODAgUjEyOiBmZmZmOWNiZWI2YmE5MDAwClsgIDQx MS4yMzg3NjFdIFIxMzogZmZmZjljYmViNmJhOTA2MCBSMTQ6IGZmZmY5Y2JlNjBmMWEwMDAgUjE1 OiBmZmZmOWNiZWI2YmE5MDAwClsgIDQxMS4yMzk1MThdIEZTOiAgMDAwMDdmYjY5MGQ4MTcwMCgw MDAwKSBHUzpmZmZmOWNiZWJiNjQwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAg NDExLjIzOTk0OV0gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1 MDAzMwpbICA0MTEuMjQwNDU0XSBDUjI6IDAwMDA3ZjcxMTU2MjQwMDAgQ1IzOiAwMDAwMDAwMDc3 Y2RmMDAwIENSNDogMDAwMDAwMDAwMDM0MDZlMApbICA0MTEuMjQwOTM2XSBDYWxsIFRyYWNlOgpb ICA0MTEuMjQxNDYyXSAgdmxhbl9pb2N0bF9oYW5kbGVyKzB4M2YxLzB4NDAwIFs4MDIxcV0KWyAg NDExLjI0MTkxMF0gIHNvY2tfaW9jdGwrMHgxOGIvMHgyYzAKWyAgNDExLjI0MjM5NF0gIGRvX3Zm c19pb2N0bCsweGExLzB4NWQwClsgIDQxMS4yNDI4NTNdICA/IHNvY2tfYWxsb2NfZmlsZSsweGE2 LzB4MTMwClsgIDQxMS4yNDM0NjVdICBTeVNfaW9jdGwrMHg3OS8weDkwClsgIDQxMS4yNDM5MDBd ICBlbnRyeV9TWVNDQUxMXzY0X2Zhc3RwYXRoKzB4MWUvMHhhOQpbICA0MTEuMjQ0NDI1XSBSSVA6 IDAwMzM6MHg3ZmI2OTA4OWEzNTcKWyAgNDExLjI0NDg2M10gUlNQOiAwMDJiOjAwMDA3ZmZjZDA0 ZTBmYzggRUZMQUdTOiAwMDAwMDIwMiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAxMApbICA0MTEu MjQ1NDQ1XSBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwN2ZmY2QwNGUyODg0IFJDWDog MDAwMDdmYjY5MDg5YTM1NwpbICA0MTEuMjQ1OTAzXSBSRFg6IDAwMDA3ZmZjZDA0ZTBmZDAgUlNJ OiAwMDAwMDAwMDAwMDA4OTgzIFJESTogMDAwMDAwMDAwMDAwMDAwMwpbICA0MTEuMjQ2NTI3XSBS QlA6IDAwMDA3ZmZjZDA0ZTBmZDAgUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTogMTk5OTk5OTk5 OTk5OTk5OQpbICA0MTEuMjQ2OTc2XSBSMTA6IDAwMDAwMDAwMDAwMDA1M2YgUjExOiAwMDAwMDAw MDAwMDAwMjAyIFIxMjogMDAwMDAwMDAwMDAwMDAwNApbICA0MTEuMjQ3NDE0XSBSMTM6IDAwMDA3 ZmZjZDA0ZTExMjggUjE0OiAwMDAwN2ZmY2QwNGUyODg4IFIxNTogMDAwMDAwMDAwMDAwMDAwMQpb ICA0MTEuMjQ5MTI5XSBSSVA6IGZyZWVfbmV0ZGV2KzB4MTE2LzB4MTIwIFJTUDogZmZmZmE3ZDI4 MDdkYmRiMAoKU2lnbmVkLW9mZi1ieTogR2FvIEZlbmcgPGdmcmVlLndpbmRAdmlwLjE2My5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvODAyMXEvdmxhbi5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvODAyMXEvdmxhbi5jIGIvbmV0Lzgw MjFxL3ZsYW4uYwppbmRleCA0NjcwNjliLi45NjQ5NTc5IDEwMDY0NAotLS0gYS9uZXQvODAyMXEv dmxhbi5jCisrKyBiL25ldC84MDIxcS92bGFuLmMKQEAgLTI3Nyw3ICsyNzcsOCBAQCBzdGF0aWMg aW50IHJlZ2lzdGVyX3ZsYW5fZGV2aWNlKHN0cnVjdCBuZXRfZGV2aWNlICpyZWFsX2RldiwgdTE2 IHZsYW5faWQpCiAJcmV0dXJuIDA7CiAKIG91dF9mcmVlX25ld2RldjoKLQlmcmVlX25ldGRldihu ZXdfZGV2KTsKKwlpZiAobmV3X2Rldi0+cmVnX3N0YXRlID09IE5FVFJFR19VTklOSVRJQUxJWkVE KQorCQlmcmVlX25ldGRldihuZXdfZGV2KTsKIAlyZXR1cm4gZXJyOwogfQogCi0tIAoyLjQuMTEK CgpGcm9tIDY2NzgyZGNjOGE5M2E5MTM3ZjNiYjhhYTY1Mzg1ZGUyNWZmNGU5MzggTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFNlcmhleSBQb3BvdnljaCA8c2VyaGUucG9wb3Z5Y2hAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIwIEp1biAyMDE3IDEzOjI5OjI1ICswMzAwClN1YmplY3Q6IFtQ QVRDSCAzMS8zMl0gaXB2NjogRG8gbm90IGxlYWsgdGhyb3cgcm91dGUgcmVmZXJlbmNlcwoKWyBV cHN0cmVhbSBjb21taXQgMDdmNjE1NTc0ZjhhYzQ5OTg3NWIyMWMxMTQyZjI2MzA4MjM0YTkyYyBd CgpXaGlsZSBjb21taXQgNzNiYTU3YmZhZTRhICgiaXB2NjogZml4IGJhY2t0cmFja2luZyBmb3Ig dGhyb3cgcm91dGVzIikKZG9lcyBnb29kIGpvYiBvbiBlcnJvciBwcm9wYWdhdGlvbiB0byB0aGUg ZmliX3J1bGVzX2xvb2t1cCgpCmluIGZpYiBydWxlcyBjb3JlIGZyYW1ld29yayB0aGF0IGFsc28g Y29ycmVjdHMgdGhyb3cgcm91dGVzCmhhbmRsaW5nLCBpdCBkb2VzIG5vdCBzb2x2ZSByb3V0ZSBy ZWZlcmVuY2UgbGVha2FnZSBwcm9ibGVtCmhhcHBlbmVkIHdoZW4gd2UgcmV0dXJuIC1FQUdBSU4g dG8gdGhlIGZpYl9ydWxlc19sb29rdXAoKQphbmQgbGVhdmUgcm91dGluZyB0YWJsZSBlbnRyeSBy ZWZlcmVuY2VkIGluIGFyZy0+cmVzdWx0LgoKSWYgcnVsZSB3aXRoIG1hdGNoZWQgdGhyb3cgcm91 dGUgaXNuJ3QgbGFzdCBtYXRjaGVkIGluIHRoZQpsaXN0IHdlIG92ZXJ3cml0ZSBhcmctPnJlc3Vs dCBsb3NpbmcgcmVmZXJlbmNlIG9uIHRocm93CnJvdXRlIHN0b3JlZCBwcmV2aW91c2x5IGZvcmV2 ZXIuCgpXZSBhbHNvIHBhcnRpYWxseSByZXZlcnQgY29tbWl0IGFiOTk3YWQ0MDgzOSAoImlwdjY6 IGZpeCB0aGUKaW5jb3JyZWN0IHJldHVybiB2YWx1ZSBvZiB0aHJvdyByb3V0ZSIpIHNpbmNlIHdl IG5ldmVyIHJldHVybgpyb3V0aW5nIHRhYmxlIGVudHJ5IHdpdGggZHN0LmVycm9yID09IC1FQUdB SU4gd2hlbgpDT05GSUdfSVBWNl9NVUxUSVBMRV9UQUJMRVMgaXMgb24uIEFsc28gdGhlcmUgaXMg bm8gcG9pbnQKdG8gY2hlY2sgZm9yIFJURl9SRUpFQ1QgZmxhZyBzaW5jZSBpdCBpcyBhbHdheXMg c2V0IHRocm93CnJvdXRlLgoKRml4ZXM6IDczYmE1N2JmYWU0YSAoImlwdjY6IGZpeCBiYWNrdHJh Y2tpbmcgZm9yIHRocm93IHJvdXRlcyIpClNpZ25lZC1vZmYtYnk6IFNlcmhleSBQb3BvdnljaCA8 c2VyaGUucG9wb3Z5Y2hAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvZmliNl9ydWxlcy5jIHwgMjIgKysr KysrLS0tLS0tLS0tLS0tLS0tLQogbmV0L2lwdjYvaXA2X2ZpYi5jICAgIHwgIDMgKy0tCiAyIGZp bGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L2lwdjYvZmliNl9ydWxlcy5jIGIvbmV0L2lwdjYvZmliNl9ydWxlcy5jCmluZGV4IGVl YTIzYjUuLmVjODQ5ZDggMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2ZpYjZfcnVsZXMuYworKysgYi9u ZXQvaXB2Ni9maWI2X3J1bGVzLmMKQEAgLTMyLDcgKzMyLDYgQEAgc3RydWN0IGZpYjZfcnVsZSB7 CiBzdHJ1Y3QgZHN0X2VudHJ5ICpmaWI2X3J1bGVfbG9va3VwKHN0cnVjdCBuZXQgKm5ldCwgc3Ry dWN0IGZsb3dpNiAqZmw2LAogCQkJCSAgIGludCBmbGFncywgcG9sX2xvb2t1cF90IGxvb2t1cCkK IHsKLQlzdHJ1Y3QgcnQ2X2luZm8gKnJ0OwogCXN0cnVjdCBmaWJfbG9va3VwX2FyZyBhcmcgPSB7 CiAJCS5sb29rdXBfcHRyID0gbG9va3VwLAogCQkuZmxhZ3MgPSBGSUJfTE9PS1VQX05PUkVGLApA QCAtNDQsMjEgKzQzLDExIEBAIHN0cnVjdCBkc3RfZW50cnkgKmZpYjZfcnVsZV9sb29rdXAoc3Ry dWN0IG5ldCAqbmV0LCBzdHJ1Y3QgZmxvd2k2ICpmbDYsCiAJZmliX3J1bGVzX2xvb2t1cChuZXQt PmlwdjYuZmliNl9ydWxlc19vcHMsCiAJCQkgZmxvd2k2X3RvX2Zsb3dpKGZsNiksIGZsYWdzLCAm YXJnKTsKIAotCXJ0ID0gYXJnLnJlc3VsdDsKKwlpZiAoYXJnLnJlc3VsdCkKKwkJcmV0dXJuIGFy Zy5yZXN1bHQ7CiAKLQlpZiAoIXJ0KSB7Ci0JCWRzdF9ob2xkKCZuZXQtPmlwdjYuaXA2X251bGxf ZW50cnktPmRzdCk7Ci0JCXJldHVybiAmbmV0LT5pcHY2LmlwNl9udWxsX2VudHJ5LT5kc3Q7Ci0J fQotCi0JaWYgKHJ0LT5ydDZpX2ZsYWdzICYgUlRGX1JFSkVDVCAmJgotCSAgICBydC0+ZHN0LmVy cm9yID09IC1FQUdBSU4pIHsKLQkJaXA2X3J0X3B1dChydCk7Ci0JCXJ0ID0gbmV0LT5pcHY2Lmlw Nl9udWxsX2VudHJ5OwotCQlkc3RfaG9sZCgmcnQtPmRzdCk7Ci0JfQotCi0JcmV0dXJuICZydC0+ ZHN0OworCWRzdF9ob2xkKCZuZXQtPmlwdjYuaXA2X251bGxfZW50cnktPmRzdCk7CisJcmV0dXJu ICZuZXQtPmlwdjYuaXA2X251bGxfZW50cnktPmRzdDsKIH0KIAogc3RhdGljIGludCBmaWI2X3J1 bGVfYWN0aW9uKHN0cnVjdCBmaWJfcnVsZSAqcnVsZSwgc3RydWN0IGZsb3dpICpmbHAsCkBAIC0x MjEsNyArMTEwLDggQEAgc3RhdGljIGludCBmaWI2X3J1bGVfYWN0aW9uKHN0cnVjdCBmaWJfcnVs ZSAqcnVsZSwgc3RydWN0IGZsb3dpICpmbHAsCiAJCQlmbHA2LT5zYWRkciA9IHNhZGRyOwogCQl9 CiAJCWVyciA9IHJ0LT5kc3QuZXJyb3I7Ci0JCWdvdG8gb3V0OworCQlpZiAoZXJyICE9IC1FQUdB SU4pCisJCQlnb3RvIG91dDsKIAl9CiBhZ2FpbjoKIAlpcDZfcnRfcHV0KHJ0KTsKZGlmZiAtLWdp dCBhL25ldC9pcHY2L2lwNl9maWIuYyBiL25ldC9pcHY2L2lwNl9maWIuYwppbmRleCBkNGJmMmM2 Li5lNmI3OGJhIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9pcDZfZmliLmMKKysrIGIvbmV0L2lwdjYv aXA2X2ZpYi5jCkBAIC0yODksOCArMjg5LDcgQEAgc3RydWN0IGRzdF9lbnRyeSAqZmliNl9ydWxl X2xvb2t1cChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBmbG93aTYgKmZsNiwKIAlzdHJ1Y3QgcnQ2 X2luZm8gKnJ0OwogCiAJcnQgPSBsb29rdXAobmV0LCBuZXQtPmlwdjYuZmliNl9tYWluX3RibCwg Zmw2LCBmbGFncyk7Ci0JaWYgKHJ0LT5ydDZpX2ZsYWdzICYgUlRGX1JFSkVDVCAmJgotCSAgICBy dC0+ZHN0LmVycm9yID09IC1FQUdBSU4pIHsKKwlpZiAocnQtPmRzdC5lcnJvciA9PSAtRUFHQUlO KSB7CiAJCWlwNl9ydF9wdXQocnQpOwogCQlydCA9IG5ldC0+aXB2Ni5pcDZfbnVsbF9lbnRyeTsK IAkJZHN0X2hvbGQoJnJ0LT5kc3QpOwotLSAKMi40LjExCgoKRnJvbSAxY2VhZjlmYzUxYjcyNWYz ODQ1YTliYWYxN2YzNTJiMGE0NzA4ZTVkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBT ZXJoZXkgUG9wb3Z5Y2ggPHNlcmhlLnBvcG92eWNoQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyMCBK dW4gMjAxNyAxNDozNToyMyArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMzIvMzJdIHJ0bmV0bGluazog YWRkIElGTEFfR1JPVVAgdG8gaWZsYV9wb2xpY3kKClsgVXBzdHJlYW0gY29tbWl0IGRiODMzZDQw YWQzMjYzYjJlZTNiNTlhMWJhMTY4YmIzY2ZlZDgxMzcgXQoKTmV0d29yayBpbnRlcmZhY2UgZ3Jv dXBzIHN1cHBvcnQgYWRkZWQgd2hpbGUgYWdvLCBob3dldmVyCnRoZXJlIGlzIG5vIElGTEFfR1JP VVAgYXR0cmlidXRlIGRlc2NyaXB0aW9uIGluIHBvbGljeQphbmQgbmV0bGluayBtZXNzYWdlIHNp emUgY2FsY3VsYXRpb25zIHVudGlsIG5vdy4KCkFkZCBJRkxBX0dST1VQIGF0dHJpYnV0ZSB0byB0 aGUgcG9saWN5LgoKRml4ZXM6IGNiZGExMGZhOTdkNyAoIm5ldF9kZXZpY2U6IGFkZCBzdXBwb3J0 IGZvciBuZXR3b3JrIGRldmljZSBncm91cHMiKQpTaWduZWQtb2ZmLWJ5OiBTZXJoZXkgUG9wb3Z5 Y2ggPHNlcmhlLnBvcG92eWNoQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL3J0bmV0bGluay5jIHwgMiAr KwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9jb3Jl L3J0bmV0bGluay5jIGIvbmV0L2NvcmUvcnRuZXRsaW5rLmMKaW5kZXggYTI2MTBlMS4uMDU0MzZj MCAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvcnRuZXRsaW5rLmMKKysrIGIvbmV0L2NvcmUvcnRuZXRs aW5rLmMKQEAgLTkzNCw2ICs5MzQsNyBAQCBzdGF0aWMgbm9pbmxpbmUgc2l6ZV90IGlmX25sbXNn X3NpemUoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkgICAgICAgKyBubGFfdG90YWxf c2l6ZSgxKSAvKiBJRkxBX0xJTktNT0RFICovCiAJICAgICAgICsgbmxhX3RvdGFsX3NpemUoNCkg LyogSUZMQV9DQVJSSUVSX0NIQU5HRVMgKi8KIAkgICAgICAgKyBubGFfdG90YWxfc2l6ZSg0KSAv KiBJRkxBX0xJTktfTkVUTlNJRCAqLworCSAgICAgICArIG5sYV90b3RhbF9zaXplKDQpIC8qIElG TEFfR1JPVVAgKi8KIAkgICAgICAgKyBubGFfdG90YWxfc2l6ZShleHRfZmlsdGVyX21hc2sKIAkJ CSAgICAgICAgJiBSVEVYVF9GSUxURVJfVkYgPyA0IDogMCkgLyogSUZMQV9OVU1fVkYgKi8KIAkg ICAgICAgKyBydG5sX3ZmaW5mb19zaXplKGRldiwgZXh0X2ZpbHRlcl9tYXNrKSAvKiBJRkxBX1ZG SU5GT19MSVNUICovCkBAIC0xNDYyLDYgKzE0NjMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5s YV9wb2xpY3kgaWZsYV9wb2xpY3lbSUZMQV9NQVgrMV0gPSB7CiAJW0lGTEFfTElOS19ORVROU0lE XQk9IHsgLnR5cGUgPSBOTEFfUzMyIH0sCiAJW0lGTEFfUFJPVE9fRE9XTl0JPSB7IC50eXBlID0g TkxBX1U4IH0sCiAJW0lGTEFfWERQXQkJPSB7IC50eXBlID0gTkxBX05FU1RFRCB9LAorCVtJRkxB X0dST1VQXQkJPSB7IC50eXBlID0gTkxBX1UzMiB9LAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVj dCBubGFfcG9saWN5IGlmbGFfaW5mb19wb2xpY3lbSUZMQV9JTkZPX01BWCsxXSA9IHsKLS0gCjIu NC4xMQoK ----Next_Part(Thu_Jun_29_12_19_07_2017_387)----